diff --git a/.github/ISSUE_TEMPLATE/design-review-request.yml b/.github/ISSUE_TEMPLATE/design-review-request.yml new file mode 100644 index 0000000..7580a19 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/design-review-request.yml @@ -0,0 +1,118 @@ +name: Design Review Request +description: >- + Request review of a design BEFORE starting layout/routing or writing/refactoring + code. The goal is to catch requirement + gaps before time is spent on implementation. +title: "[Design Review]: " +labels: + - design-review + - needs-review +body: + - type: markdown + attributes: + value: | + Fill this out **before** starting the work, not after it's done. "Not yet" is a + fine answer on the checklist below, just meaning a reviewer will help close + the gap before implementation starts. + + - type: input + id: subsystem + attributes: + label: Subsystem + placeholder: e.g. EPS, ADCS, COMMS + validations: + required: true + + - type: dropdown + id: work-type + attributes: + label: Type of work + options: + - Schematic + - Layout + - New firmware service + - Firmware refactor + - Other + validations: + required: true + + - type: input + id: target-start-date + attributes: + label: Target start date + placeholder: e.g. 2026-07-15 + validations: + required: false + + - type: input + id: reviewers + attributes: + label: Reviewer(s) requested + placeholder: "@username, @username" + validations: + required: false + + - type: textarea + id: description + attributes: + label: What you're about to build + description: One paragraph description of the change. + validations: + required: true + + - type: textarea + id: requirements + attributes: + label: Which requirement(s) does this satisfy? + description: >- + Reference the subsystem information document. If no requirement exists yet for this + work, write it first. + validations: + required: true + + - type: checkboxes + id: prework-checklist + attributes: + label: Pre-work checklist + description: Evaluate what's true right now. + options: + - label: >- + Relevant subsystem information doc section (mission context, electrical requirements, + part tradeoffs) exists and covers this work + - label: >- + (Hardware) Relevant part(s) selected with a documented tradeoff, or + reusing an already-approved part + - label: >- + (Hardware) Derating requirements for any new part identified before + layout begins + - label: >- + (Hardware) If this touches envelope, mass, power architecture, RBF, + deployment switches, or RF: CDS-compliance checklist reviewed + - label: >- + (Firmware) Interface sketched out and classified into Question/Command/Loop + per the event-driven refactor guideline + - label: >- + (Firmware) Proposed event UID(s) checked against the existing UID + registry for collisions + - label: Known open questions or risks are listed below + + - type: textarea + id: open-questions + attributes: + label: Open questions / risks + description: >- + This is the most useful field for a you and the reviewer. List any questions here + validations: + required: false + + - type: markdown + attributes: + value: | + --- + ### For reviewers + Leave the review decision as a comment on this issue, not in the form above: + - **Gaps identified:** + - **Action items before work starts:** + - **Cleared to proceed?** Yes / Yes with action items / No — revisit after action items resolved + + Apply the `cleared-to-proceed` label and close the issue once resolved. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..5a0e395 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,103 @@ + + +## Summary + +**What changed and why:** + + +**Related issue/ticket (if any):** + + +## Type of Change + +- [ ] Hardware - schematic +- [ ] Hardware - layout +- [ ] Firmware - new service/module +- [ ] Firmware - refactor of existing service/module +- [ ] Documentation only +- [ ] Other: + +**Affected subsystem(s):** + +## Requirements Traceability + +- [ ] This change is covered by an existing requirement in the subsystem's information doc +- [ ] This change requires a **new or updated** requirement in the information doc (link/describe below) +- [ ] This change requires an update to the CDS-compliance checklist (see [the Preliminary Hardware Design Guidelines](../documentation/design_guidelines/preliminary_hardware_design.md)) + +--- + +## Hardware Checklist +*(delete this section if the PR is firmware/docs only)* + +Reference: [Preliminary Hardware Design Guidelines](../documentation/design_guidelines/preliminary_hardware_design.md), [Schematic & Layout Design Guidelines](../documentation/design_guidelines/schematic_layout_design.md) + +**Schematic** +- [ ] All nets labeled, no floating/unlabeled nets +- [ ] Decoupling capacitors placed per datasheet for every new/changed IC +- [ ] Pull-up/pull-down resistors present on shared buses (I2C, reset, boot) +- [ ] Test points/headers added for key signals (UART, RESET, SWD/JTAG, I2C, SPI) if newly introduced +- [ ] Protection added where applicable (fuses, TVS, reverse-polarity, ESD) on any new external interface +- [ ] Components derated per team policy (voltage/current/power margin applied, not just worst-case survival) +- [ ] ERC is clean: no errors, no unresolved warnings +- [ ] Peer schematic review completed by someone other than the author + +**Layout** +- [ ] Stackup/impedance requirements unaffected, or explicitly re-verified if changed +- [ ] Return paths remain short/continuous; ground plane not split +- [ ] Decoupling caps placed close to their ICs +- [ ] Trace widths verified against current requirements (via KiCad calculator or equivalent) +- [ ] Silkscreen updated: polarity marks, orientation dots, version/revision number bumped +- [ ] Assembly file exported and spot-checked for obvious placement errors +- [ ] DFM check: in-stock parts used, no exotic footprints introduced without discussion + +**CDS / Mission Compliance** *(only if this change affects envelope, mass, power architecture, RBF, deployment switches, or RF)* +- [ ] Reviewed against CDS-compliance checklist in [Preliminary Hardware Design Guidelines](../documentation/design_guidelines/preliminary_hardware_design.md) +- [ ] No new CDS deviation introduced, or deviation documented and routed for approval + +--- + +## Firmware Checklist +*(delete this section if the PR is hardware/docs only)* + +Reference: [Refactoring Polling-Based Modules to be Event Driven](../documentation/design_guidelines/refactoring_polling_services.md), [Keeping the HAL Policy Free](../documentation/design_guidelines/keeping_the_hal_policy_free.md) + +- [ ] New/changed service interfaces classified into Question / Command / Loop per [Refactoring Polling-Based Modules to be Event Driven](../documentation/design_guidelines/refactoring_polling_services.md), with Questions removed in favor of events +- [ ] Unique event UID chosen and confirmed non-colliding with existing services +- [ ] Service does not poll for state and subscribes to events or system tick as appropriate +- [ ] HAL layer changes do not publish to the event bus directly (callback-based reporting only, per [Keeping the HAL Policy Free](../documentation/design_guidelines/keeping_the_hal_policy_free.md)) +- [ ] No new blocking or long-running calls introduced inside ISR-context or tick-handler code paths +- [ ] Watchdog/fault-handling behavior considered for this service (does a stall or fault get detected upstream?) +- [ ] Unit tested and/or tested on hardware; results summarized below + +**Test summary:** + + +--- + +## ATP / Bring-Up Impact + +- [ ] This change affects a board/unit that already has a released ATP: ATP updated or flagged for update +- [ ] This change was verified via bring-up/test procedure (attach results or link) +- [ ] No impact to existing ATP + +## Deviations + +List any deviation from the design guideline docs introduced by this PR, with justification. Leave blank if none. + +| Guideline doc | Deviation | Justification | Approved by | +|---|---|---|---| +| | | | | + + +## Reviewer Sign-off + +- [ ] I reviewed this PR against the relevant checklist section(s) above, not just the diff +- [ ] Any checked-but-not-actually-verified items were flagged and discussed with the author +- [ ] No open anomalies/deviations without an approver diff --git a/.github/workflows/build_and_docs.yml b/.github/workflows/build_and_docs.yml index 4636806..0e1a638 100644 --- a/.github/workflows/build_and_docs.yml +++ b/.github/workflows/build_and_docs.yml @@ -1,4 +1,4 @@ -name: EPS Build and Generate Documentation +name: Subsystem Build and Generate Documentation on: push: @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 @@ -22,64 +22,48 @@ jobs: run: | sudo apt-get update sudo apt-get install -y gcc-arm-none-eabi doxygen python3-pip cmake make g++ - pip3 install -r eps/documentation/sphinx/requirements.txt - - name: Configure CMake for ARM - run: cmake -B eps/firmware/build_arm -S eps/firmware -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/eps/firmware/arm-none-eabi-toolchain.cmake + - name: Run builds, tests, and documentation generation + env: + GITHUB_EVENT_NAME: ${{ github.event_name }} + GITHUB_BASE_REF: ${{ github.base_ref }} + GITHUB_EVENT_BEFORE: ${{ github.event.before }} + GITHUB_SHA: ${{ github.sha }} + GITHUB_EVENT_NUMBER: ${{ github.event.number }} + run: ./.github/workflows/build_and_test.sh - - name: Build firmware for ARM - run: cmake --build eps/firmware/build_arm - - - name: Configure CMake for Host/HITL - run: cmake -B eps/firmware/build_hitl -S eps/firmware -DTARGET_ARCH=HOST -DBUILD_HITL=ON - - - name: Build Host/HITL Tests - run: cmake --build eps/firmware/build_hitl - - - name: Run CTest - run: | - cd eps/firmware/build_hitl - ctest --output-on-failure - - - name: Generate documentation - # documentation is generated from the main firmware build (ARM in this case) - run: cmake --build eps/firmware/build_arm --target docs - - - name: Upload Doxygen documentation + - name: Upload Generated Documentation uses: actions/upload-artifact@v4 with: - name: doxygen-documentation - path: eps/documentation/doxygen_output/ - - - name: Upload Sphinx documentation - uses: actions/upload-artifact@v4 - with: - name: sphinx-documentation - path: eps/firmware/build_arm/documentation/sphinx/ + name: generated-documentation + path: docs_out/ + if-no-files-found: ignore - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v4 - if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request' + if: (github.ref == 'refs/heads/main' || github.event_name == 'pull_request') with: github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: eps/firmware/build_arm/documentation/sphinx/ + publish_dir: docs_out/ destination_dir: ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || '.' }} keep_files: true - - name: Post Preview Link + - name: Post Preview Links if: github.event_name == 'pull_request' uses: actions/github-script@v7 with: script: | - const prNumber = context.issue.number; - const repo = context.repo.repo; - const owner = context.repo.owner; - - const pageUrl = `https://${owner}.github.io/${repo}/pr-${prNumber}/`; - - github.rest.issues.createComment({ - owner, - repo, - issue_number: prNumber, - body: `**Documentation Preview:** [View Here](${pageUrl})` - }); + const fs = require('fs'); + if (fs.existsSync('pr_comment.md')) { + const body = fs.readFileSync('pr_comment.md', 'utf8'); + const prNumber = context.issue.number; + const repo = context.repo.repo; + const owner = context.repo.owner; + + github.rest.issues.createComment({ + owner, + repo, + issue_number: prNumber, + body: body + }); + } diff --git a/.github/workflows/build_and_test.sh b/.github/workflows/build_and_test.sh new file mode 100755 index 0000000..48f1c5c --- /dev/null +++ b/.github/workflows/build_and_test.sh @@ -0,0 +1,196 @@ +#!/usr/bin/env bash +set -euo pipefail + +# initialize PR comment file if running in a pull request +if [ "${GITHUB_EVENT_NAME:-}" = "pull_request" ]; then + echo "**Documentation Previews:**" > pr_comment.md +fi + +# 1. identify changed files +CHANGED_FILES=() +if [ "${GITHUB_EVENT_NAME:-}" = "pull_request" ]; then + # fetch base ref to make sure it's available for diffing + git fetch origin "${GITHUB_BASE_REF}" --depth=1 || true + base_ref="origin/${GITHUB_BASE_REF}" + + echo "Comparing against base branch: ${base_ref}" + + mapfile -t CHANGED_FILES < <(git diff --name-only "${base_ref}...HEAD" || git diff --name-only "${base_ref}" HEAD || true) +elif [ -n "${GITHUB_SHA:-}" ]; then + # for pushes, compare against the previous commit + before_sha="${GITHUB_EVENT_BEFORE:-}" + + if [ -z "$before_sha" ] || [ "$before_sha" = "0000000000000000000000000000000000000000" ]; then + echo "New branch/tag push or no before SHA, comparing against parent commit HEAD~1" + + mapfile -t CHANGED_FILES < <(git diff --name-only HEAD~1 HEAD || true) + else + echo "Comparing ${before_sha} to ${GITHUB_SHA}" + + mapfile -t CHANGED_FILES < <(git diff --name-only "${before_sha}" "${GITHUB_SHA}" || true) + fi +else + # local run or fallback + echo "Local run, comparing against HEAD~1" + + mapfile -t CHANGED_FILES < <(git diff --name-only HEAD~1 HEAD || true) +fi + +echo "Changed files:" +for file in "${CHANGED_FILES[@]}"; do + echo " $file" +done + +# determine if we should build everything +BUILD_ALL=false +if [ ${#CHANGED_FILES[@]} -eq 0 ]; then + echo "No changed files detected. Fallback: building all subsystems." + + BUILD_ALL=true +else + for file in "${CHANGED_FILES[@]}"; do + # if workflow itself, docs, or top-level files changed, build everything + if [[ "$file" =~ ^\.github/ ]] || [[ ! "$file" =~ / ]]; then + echo "Global file or workflow changed: $file. Building all subsystems." + + BUILD_ALL=true + + break + fi + done +fi + +# 2. find all firmware directories containing a CMakeLists.txt +firmware_dirs=$(find . -maxdepth 4 -name "CMakeLists.txt" | grep "/firmware/CMakeLists.txt" | sed 's|/CMakeLists.txt||' | sort -u) + +# create documentation output directory +mkdir -p docs_out + +for fw_dir in $firmware_dirs; do + # remove leading ./ + fw_dir="${fw_dir#./}" + + # get the parent subsystem directory (e.g. eps/v1 or obc/v1) + subsystem_dir=$(dirname "$fw_dir") + + # check if this subsystem is affected + is_affected=false + if [ "$BUILD_ALL" = true ]; then + is_affected=true + else + for file in "${CHANGED_FILES[@]}"; do + if [[ "$file" == "$subsystem_dir"* ]]; then + is_affected=true + + echo "Subsystem ${subsystem_dir} is affected by change in ${file}" + + break + fi + done + fi + + if [ "$is_affected" = false ]; then + echo "Skipping unaffected subsystem: ${subsystem_dir}" + continue + fi + + echo "::group::Building and testing ${subsystem_dir}" + echo "Processing subsystem: ${subsystem_dir} in directory: ${fw_dir}" + + # install Python requirements if they exist + req_file="" + if [ -f "${subsystem_dir}/documentation/sphinx/requirements.txt" ]; then + req_file="${subsystem_dir}/documentation/sphinx/requirements.txt" + elif [ -f "${fw_dir}/documentation/sphinx/requirements.txt" ]; then + req_file="${fw_dir}/documentation/sphinx/requirements.txt" + fi + + if [ -n "$req_file" ]; then + echo "Installing Python dependencies from $req_file" + + if pip3 install --help | grep -q "break-system-packages"; then + pip3 install --break-system-packages -r "$req_file" + else + pip3 install -r "$req_file" + fi + fi + + # configure CMake for ARM + toolchain_args="" + if [ -f "${fw_dir}/arm-none-eabi-toolchain.cmake" ]; then + toolchain_args="-DCMAKE_TOOLCHAIN_FILE=${PWD}/${fw_dir}/arm-none-eabi-toolchain.cmake" + fi + + echo "Configuring CMake for ARM..." + cmake -B "${fw_dir}/build_arm" -S "${fw_dir}" $toolchain_args + + echo "Building ARM firmware..." + cmake --build "${fw_dir}/build_arm" + + # run host/HITL tests if they exist + if [ -f "${fw_dir}/tests/CMakeLists.txt" ]; then + echo "Tests found. Configuring CMake for Host/HITL..." + cmake -B "${fw_dir}/build_hitl" -S "${fw_dir}" -DTARGET_ARCH=HOST -DBUILD_HITL=ON + + echo "Building Host/HITL Tests..." + cmake --build "${fw_dir}/build_hitl" + + echo "Running CTest..." + (cd "${fw_dir}/build_hitl" && ctest --output-on-failure) + else + echo "No unit tests found for ${subsystem_dir}." + fi + + # build documentation if target exists + if grep -q "add_custom_target.*docs" "${fw_dir}/CMakeLists.txt"; then + echo "Generating documentation..." + + cmake --build "${fw_dir}/build_arm" --target docs + + # copy Doxygen output if it exists + doxy_dir="" + if [ -d "${subsystem_dir}/documentation/doxygen_output" ]; then + doxy_dir="${subsystem_dir}/documentation/doxygen_output" + elif [ -d "${fw_dir}/build_arm/documentation/doxygen" ]; then + doxy_dir="${fw_dir}/build_arm/documentation/doxygen" + fi + + if [ -n "$doxy_dir" ] && [ "$(ls -A "$doxy_dir" 2>/dev/null)" ]; then + mkdir -p "docs_out/${subsystem_dir}/doxygen" + cp -R "$doxy_dir"/* "docs_out/${subsystem_dir}/doxygen/" + echo "Copied Doxygen docs from $doxy_dir to docs_out/${subsystem_dir}/doxygen/" + fi + + # copy Sphinx output if it exists + sphinx_dir="" + if [ -d "${fw_dir}/build_arm/documentation/sphinx" ]; then + sphinx_dir="${fw_dir}/build_arm/documentation/sphinx" + fi + + if [ -n "$sphinx_dir" ] && [ "$(ls -A "$sphinx_dir" 2>/dev/null)" ]; then + mkdir -p "docs_out/${subsystem_dir}/sphinx" + cp -R "$sphinx_dir"/* "docs_out/${subsystem_dir}/sphinx/" + echo "Copied Sphinx docs from $sphinx_dir to docs_out/${subsystem_dir}/sphinx/" + + # generate preview links for PR comments + if [ "${GITHUB_EVENT_NAME:-}" = "pull_request" ]; then + owner_repo="${GITHUB_REPOSITORY}" + owner="${owner_repo%/*}" + repo="${owner_repo#*/}" + pr_num="${GITHUB_EVENT_NUMBER:-}" + + url="https://${owner}.github.io/${repo}/pr-${pr_num}/${subsystem_dir}/sphinx/index.html" + echo "- **${subsystem_dir^^} Sphinx Documentation:** [View Here]($url)" >> pr_comment.md + + if [ -d "docs_out/${subsystem_dir}/doxygen" ]; then + url_doxy="https://${owner}.github.io/${repo}/pr-${pr_num}/${subsystem_dir}/doxygen/index.html" + echo "- **${subsystem_dir^^} Doxygen API Docs:** [View Here]($url_doxy)" >> pr_comment.md + fi + fi + fi + else + echo "No documentation target found for ${subsystem_dir}." + fi + + echo "::endgroup::" +done diff --git a/.gitignore b/.gitignore index 14944bd..f820fea 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ eps/*.lck eps/fp-info-cache eps/symbols/*.bak .history +docs_out/ +pr_comment.md + diff --git a/.gitmodules b/.gitmodules index 7e5d2c3..7b7ac44 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,9 +7,10 @@ [submodule "obc/tests/lora-packet-transmission/lib/rp2x_rfm69"] path = obc/tests/lora-packet-transmission/lib/rp2x_rfm69 url = https://github.com/e-mo/rp2x_rfm69 -[submodule "eps/firmware/lib/messaging"] - path = eps/firmware/lib/messaging +[submodule "eps/v1/firmware/lib/messaging"] + path = eps/v1/firmware/lib/messaging url = https://github.com/osusat/messaging -[submodule "eps/firmware/lib/core"] - path = eps/firmware/lib/core +[submodule "eps/v1/firmware/lib/core"] + path = eps/v1/firmware/lib/core url = https://github.com/osusat/core + diff --git a/README.md b/README.md index 19932e1..badd9dd 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,185 @@ -# scrt-cubesat +# Oregon State University (OSU) AIAA/SCRT Climate Science CubeSat -OSU SCRT climate science cubesat +Welcome to the central repository for the **OSU SCRT Climate Science CubeSat** project. This repository contains the hardware designs, firmware, and documentation for the sub-systems comprising the satellite. + +--- + +## Mission Context & Goals + +The **SCRT Climate Science CubeSat** is a low-Earth orbit (LEO) satellite designed to capture high-resolution imagery and scientific data for climate science research. + +### Mission Objectives +1. **Earth Observations**: Capture multispectral or high-resolution imagery using a dual-camera payload to study atmospheric conditions, cloud formations, and regional surface changes. +2. **Reliable Power Delivery (EPS)**: Harvest solar power from 6 body-mounted solar panels, manage charge for 4x 18650 Li-ion batteries, and regulate power rails to prevent overcurrent/overvoltage events. +3. **Command & Telemetry (OBC)**: Orchestrate system operations, manage communication buses (UART, CANBus, I2C, SPI), process ground commands, and monitor satellite health. + +--- + +## System Architecture + +The satellite is divided into five primary subsystems interconnected via a shared backplane connector (exposing power rails and UART/CAN control buses): + +```mermaid +graph TD + Solar[Solar Panels & Batteries] --> EPS[Electrical Power System - EPS] + + EPS -->|Power| OBC[On-Board Computer - OBC] + EPS -->|Power| Payload[Science Camera Payload] + EPS -->|Power| ADCS[Attitude Determination & Control - ADCS] + EPS -->|Power| Comms[UHF Communications] + + OBC <-->|Control Bus| EPS + OBC <-->|Control Bus| Payload + OBC <-->|Control Bus| ADCS + OBC <-->|Control Bus| Comms + + Comms <-->|Radio Link| Ground[Ground Station] +``` + +### 1. Electrical Power System (EPS) + +* **Microcontroller**: NXP S32K3 Series / STM32L496xx (ARM Cortex-M4) +* **Responsibilities**: + * Solar energy harvesting with Maximum Power Point Tracking (MPPT). + * Battery charge/discharge management (2 independent packs of 2x 18650 cells). + * Voltage regulation (3.3V & 5V rails) with software-controllable load switches. + * Fast hardware-level and software-level overcurrent protection. + * Hardware watchdog monitoring. + * Broad mission context management using the MCU + + +### 2. On-Board Computer (OBC) + +* **Microcontroller**: Main MCU + STM32H743xx (ARM Cortex-M7) +* **Responsibilities**: + * Master command parsing and state management. + * Health heartbeats and telemetry collection. + * Orbital calculations and scheduling payload imaging windows. + * Ground station radio communication interface. + +### 3. Payload + +* **Processor**: Raspberry Pi Compute Module 4 (CM4) +* **Responsibilities**: + * High-speed dual-camera scientific imaging. + * Actuator/motor driver control (e.g., lens shutters, filter wheels) (V1 Only). + * Image compression and storage before downlink. + +### 4. Attitude Determination and Control System (ADCS) + +* **Responsibilities**: Detumbling the spacecraft, aligning the imaging payload to nadir pointing, and tracking target orientations. + +### 5. UHF Communications (Comms) + +* **Responsibilities**: Uplinking commands and telemetry requests from ground stations, and downlinking collected science data and telemetry beacons. + +--- + +## Repository Structure + +The project uses a versioned directory structure separating hardware and firmware iterations: + +``` +. +├── .github/ # GitHub Workflows & Issue/PR Templates +│ └── workflows/ +│ ├── build_and_docs.yml # CI/CD action defining the pipeline +│ └── build_and_test.sh # Dynamic build script runner +│ +├── adcs/ # Attitude Determination and Control System +│ ├── v1/ +│ └── v2/ +│ +├── eps/ # Electrical Power System Subsystem +│ ├── v1/ # Version 1 (Prototype Model) +│ │ ├── firmware/ # STM32L4 firmware (CMake, CUnit tests, mocks) +│ │ ├── hardware/ # KiCad schematic, layout, symbols, & footprints +│ │ └── documentation/ # Doxygen, Sphinx configuration & spec files +│ ├── v2/ # Version 2 (Placeholder for v2 development) +│ └── documentation/ # Bootflows, subsystem specifications, & kickoff info +│ +├── obc/ # On-Board Computer Subsystem +│ ├── v1/ # Version 1 (Prototype Model) +│ │ ├── firmware/ # STM32H7 firmware (CMake) +│ │ ├── hardware/ # KiCad schematic and layout +│ │ └── tests/ # Pico-based LoRa packet transmission test +│ ├── v2/ # Version 2 (Placeholder for v2 development) +│ └── documentation/ # OBC specific documentation +│ +├── payload/ # Science Camera Payload +│ ├── v1/ # Version 1 (Prototype Model) +│ │ └── hardware/ # KiCad CM4 baseboard schematic and layout +│ ├── v2/ # Version 2 (Placeholder for v2 development) +│ └── documentation/ # Payload specific documentation +│ +├── comms/ # UHF Communications Subsystem (Planned) +│ ├── v1/ +│ └── v2/ +│ +└── documentation/ # Global guidelines & Quality Assurance process + ├── checklists/ # Bringup, layout, schematic & firmware service templates + └── design_guidelines/ # Writing ATPs, Hardware Design, HITL, Polling/Interrupts +``` + +--- + +## Getting Started & Building + +### 1. Prerequisite Toolchains + +Ensure you have the following installed on your host system: +* **ARM Cross Compiler**: `gcc-arm-none-eabi` +* **Build System Tools**: `cmake`, `make`, `g++` +* **Documentation Generators**: `doxygen`, Python 3 + `sphinx` + +### 2. Fetching Submodules + +This repository utilizes submodules (such as `osusat/core` and `osusat/messaging`). Clone with submodules or initialize them: +```bash +git submodule update --init --recursive +``` + +### 3. Compilation Guide + +#### Building for the ARM Target (e.g., EPS v1) +To build the firmware binaries to flash onto the MCU: + +```bash +cd eps/v1/firmware +cmake -B build_arm -S . -DCMAKE_TOOLCHAIN_FILE=arm-none-eabi-toolchain.cmake +cmake --build build_arm +``` + +*Outputs: `.elf`, `.hex`, and `.bin` files will be generated under `build_arm/`.* + +#### Building Host Tests / Hardware-in-the-Loop (HITL) Mocks + +To build and execute unit tests on your local machine: + +```bash +cd eps/v1/firmware +cmake -B build_hitl -S . -DTARGET_ARCH=HOST -DBUILD_HITL=ON +cmake --build build_hitl +cd build_hitl && ctest --output-on-failure +``` + +--- + +## CI/CD Pipeline + +The repository uses a generalized GitHub Actions workflow: +* **Scope-Based Execution**: Uses git diffs to detect which subsystem version has been modified (e.g. `eps/v1/` vs `obc/v1/`) and builds only the affected firmware. +* **Continuous Integration**: Runs host-based CTests automatically to verify changes. +* **Documentation Deployments**: Generates Doxygen API listings and Sphinx documentation on successful builds. Pull Requests automatically receive a comment with links to Pages-hosted previews of the documentation. + +--- + +## Quality Assurance & Contributions + +Before submitting a Pull Request, contributors must follow the project's QA procedures found in `/documentation`: + +1. **Issue Checkout:** Before work or contributions begin, ensure your changes are encapsulated by an issue in the GitHub project +2. **Design Guidelines:** For any and all changes, follow the [design guidelines.](./documentation/design_guidelines/) +3. **Design Reviews**: Complete the [Schematic Review Checklist](./documentation/checklists/schematic_review.md) and [Layout Review Checklist](./documentation/checklists/layout_review.md) checklists before fabricating PCBs. +4. **Firmware Guidelines**: Adhere to the [HITL Guidelines](./documentation/design_guidelines/hitl.md) and [Keeping the HAL Policy Free](./documentation/design_guidelines/keeping_the_hal_policy_free.md) design rules. +5. **Acceptance Tests**: All hardware deliverables require a formal [ATP (Acceptance Test Procedure)](./documentation/design_guidelines/writing_atps.md). diff --git a/adcs/documentation/subsystem_info.md b/adcs/documentation/subsystem_info.md new file mode 100644 index 0000000..0653501 --- /dev/null +++ b/adcs/documentation/subsystem_info.md @@ -0,0 +1,92 @@ +# Subsystem Info + +# ADCS Subsystem + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +Status: DRAFT - not yet scoped or reviewed. This is a proposed starting point intended to be reviewed and revised before committing to any meaningful work. + +# Background and context + +The Attitude Determination and Control Subsystem (ADCS) is responsible for sensing and controlling the satellite's orientation. The mission's imaging payload (NDVI, cloud formation observation, etc.) needs some deliberate attitude control; a fully passive, uncontrolled system (permanent magnet + hysteresis rods alone) aligns the satellite to the local geomagnetic field line, not to nadir, and only coincidentally points at Earth for parts of the orbit near the magnetic poles. That isn't sufficient for a payload that needs to point roughly at the ground on a repeatable basis to capture usable imagery. + +This document instead proposes **magnetorquer-assisted coarse nadir pointing** as the v1 baseline: passive hysteresis damping for detumble, plus driven magnetorquer coils and a lightweight control loop for coarse Earth-pointing. This sits between pure-passive (too little control for an imaging mission) and full active control with reaction wheels (too much hardware/firmware/testing effort for a first flight unit from a small team). Fine pointing via reaction wheels remains an explicit v2+ possibility only if the payload's actual requirements demand better than what magnetic-only control can deliver. + +# A note on achievable pointing accuracy + +Magnetorquers can only produce torque perpendicular to the local magnetic field at any given instant, so full 3-axis control authority is never available all at once. A controller converges toward nadir over the course of an orbit as the field direction rotates, rather than correcting all axes immediately. Published magnetorquer-only nadir-pointing results are generally in the range of roughly 10-20° mean pointing accuracy. + +At a typical CubeSat LEO altitude (~500-600 km), a 15° pointing error translates to a ground miss distance on the order of 130+ km (altitude * tan(error)). Whether that's acceptable depends entirely on the camera's field of view and the imaging concept of operations, not on the NDVI math itself (NDVI has no inherent precision-pointing requirement). This baseline is only workable if the payload commits to: + +- A wide FOV lens, wide enough that a 100+ km ground-track miss still lands inside the frame +- **Attitude-gated capture**: triggering the shutter based on the live attitude estimate (only imaging when within some acceptable cone of nadir) rather than on a blind timer +- An opportunistic-sampling mission concept (periodically capturing vegetation/cloud data across whatever ground track results) rather than a repeat-pass, precisely-targeted change-detection concept + +If the mission concept actually requires reliably re-imaging a specific target on demand, this baseline is not sufficient and reaction wheels should be pulled forward from the deferred list. + +# ADCS Responsibilities (v1 — Magnetorquer-Assisted Coarse Pointing) + +1. Damps residual rotational energy after deployment using hysteresis rods (retained from the passive design) so the satellite detumbles without needing active control immediately after release +2. Provides attitude knowledge via: + 1. 3-axis magnetometer for magnetic field vector measurement + 2. 3-axis MEMS rate gyroscope for short-term angular rate/propagation between updates + 3. Coarse sun sensors (photodiodes per face) for a rough sun-vector estimate +3. Runs a lightweight attitude control law (e.g., B-dot for detumble, a cross-product/PD-style controller for coarse nadir pointing) on the ADCS MCU +4. Drives magnetorquer coils to actuate coarse pointing: + 1. Individually wound air-core (or ferrite-core, if sizing requires it) coils for X, Y, and Z axes, mounted against/near their respective faces for maximum loop area. A central driver PCB hosts the H-bridges, current sensing, and protection, with each wound coil wired back to it over a per-axis connector + 2. The Z-axis coil is wound on the same rod-core hardware used for passive hysteresis damping, where practical +5. Publishes a live "within pointing cone" flag alongside the attitude estimate, so the payload can gate image capture on actual attitude rather than firing on a blind timer +6. Logs attitude knowledge and control performance data for downlink to characterize actual on-orbit pointing accuracy and validate (or correct) the assumptions this scope is based on +7. Hands off attitude state and mode transitions (detumble -> coarse point -> safe) to the OBC over the shared messaging standard + +# Deferred (v2+ candidate scope) + +- Reaction wheels for fine 3-axis pointing, if the payload's actual pointing requirement turns out to be tighter than magnetorquer-only control can deliver +- Star tracker or other high-precision attitude determination hardware +- GPS-based real-time orbit/field-vector estimation (v1 can use an onboard field model e.g., IGRF, combined with ground-uploaded orbital elements, rather than a dedicated GPS receiver, to keep hardware scope down) + +These are intentionally left out of v1. If on-orbit characterization data (see responsibility 5 above) shows magnetorquer-only pointing isn't sufficient for the payload, that's the trigger to revisit this list with the full team and faculty advisors, rather than a default assumption to design around now. + +# Scope and deliverables + + +| Deliverable | Description | +| :---- | :---- | +| Pointing requirement confirmation | Define Camera FOV, required pointing accuracy/knowledge, and confirm if attitude-gated, opportunistic-capture is an acceptable concept of operations for mission imagery requirements | +| Magnetic torque & damping sizing analysis | Sizing calculation/simulation for hysteresis rod configuration, magnetorquer dipole moment (all 3 wound coils), and expected disturbance/control torques | +| Wound coil design (X, Y, Z) | Design/winding of individual coils for each axis (air-core or ferrite-core as sizing requires), sized for target dipole moment and mounted for maximum loop area on/near their respective faces; Z-axis coil shares core hardware with the passive hysteresis rod where practical | +| Torquer driver board | Single PCB hosting H-bridge drivers, current sensing, and protection circuitry for all three axes, with a per-axis connector wiring out to each wound coil | +| Attitude-gated capture interface | Define and implement the "within pointing cone" signal/flag published to the payload/OBC so image capture can be gated on live attitude rather than a timer | +| Attitude knowledge sensor PCB design | Schematic/layout for magnetometer, gyroscope, and sun sensors, with an interface to the OBC/ADCS MCU | +| Control law firmware | Detumble (B-dot) and coarse nadir-pointing control law implementation | +| Sensor fusion firmware | Basic filtering (e.g., complementary or simple Kalman filter) to combine magnetometer/gyro/sun-sensor data into an attitude estimate | +| On-orbit characterization plan | Plan for verifying actual pointing performance on-orbit using downlinked attitude knowledge and control performance data | + +# Resources + +- Magnetorquer-only attitude control literature for CubeSats: background on achievable pointing accuracy and the underactuation limitation: https://www.ri.cmu.edu/app/uploads/2020/06/magnetorquer_only.pdf +- Reference example of a commercial wound-coil magnetorquer board (single PCB driver + separate wound coils per axis, similar to the approach proposed here): https://nanoavionics.com/cubesat-components/cubesat-magnetorquer-satbus-mtq/ +- CSSWE passive magnetic attitude control system — reference for hysteresis rod/detumble sizing, still relevant even though v1 adds active control on top: https://lasp.colorado.edu/csswe/system/subsystems/adcs/ +- The CubeSat Design Specification, for any magnetic material or deployable constraints: [CDS spec](../spec/CDS+REV14_1+2022-02-09.pdf) +- Low Cost Self-Wound Magnetorquer Guide: [ResearchGate](https://www.researchgate.net/publication/361548818_A_Guide_to_Self-Built_Low-Cost_Magnetorquers_as_will_be_used_in_the_3U_CubeSat_SOURCE) +- Low Cost ADCS System: [ResearchGate](https://www.researchgate.net/publication/363862530_Low-Cost_Attitude_Determination_and_Control_System_of_the_Student-Built_3U_CubeSat_SOURCE) + +# Next steps + +- [ ] Confirm camera FOV and required pointing accuracy/knowledge with the payload team; confirm attitude-gated opportunistic capture is an acceptable concept of operations +- [ ] Size hysteresis rods, permanent magnet (if retained), and magnetorquer dipole moments against satellite mass properties and disturbance torques +- [ ] Select magnetometer, gyroscope, and sun sensor parts +- [ ] Design and wind X, Y, Z coils; determine mounting locations for maximum loop area +- [ ] Design the central torquer driver board (H-bridges, current sense, protection) and per-axis coil connectors +- [ ] Design and lay out attitude knowledge sensor PCB +- [ ] Implement detumble (B-dot) control law firmware +- [ ] Implement coarse nadir-pointing control law and sensor fusion firmware +- [ ] Implement and expose the "within pointing cone" attitude-gating flag for the payload +- [ ] Write on-orbit characterization/downlink plan +- [ ] Write kickoff doc requirements once scope above is confirmed with the team diff --git a/backplane/documentation/subsystem_info.md b/backplane/documentation/subsystem_info.md new file mode 100644 index 0000000..34f3648 --- /dev/null +++ b/backplane/documentation/subsystem_info.md @@ -0,0 +1,64 @@ +# Subsystem Info + +# Backplane Subsystem + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +Status: DRAFT - not yet scoped or reviewed. This is a proposed starting point intended to be reviewed and revised before committing to any meaningful work. + +# Background and context + +The backplane is the shared physical and electrical board that every other subsystem board plugs into for power distribution and inter-board communication, replacing the direct board-to-board stacking approach with a dedicated backplane PCB that all boards mate into independently. This gives up some of the simplicity of self-stacking in exchange for the benefit that any single board can be pulled and reseated without disturbing the rest of the stack, which matters when doing a lot of iterative bring-up and debugging and integration. + +**RF:** will be kept off the backplane entirely and routed via coax/harnessing instead of a backplane microstrip. + +# Backplane Responsibilities + +1. Defines a single connector standard used identically by every subsystem board, and documents its pinout convention in an Interface Control Document (ICD) +2. Distributes power rail(s) from the EPS to every subsystem board through the backplane, with power pins gauged/paralleled to the current budget of each rail (a single small-pitch contact is typically rated for a modest current, but high-current rails may need multiple gathered pins rather than one) +3. Carries the CAN bus between every subsystem board +4. Defines a per-board connector count and pin budget methodology (see below), so each subsystem team can determine how many connector instances their board needs without guessing +5. Defines a keying/orientation scheme that makes reversed or misaligned insertion physically difficult or impossible +6. Provides mechanical retention adequate for the launch vibration environment, verified by test rather than assumed +7. Maintains version control over the pinout ICD and per-board connector count across hardware revisions + +# Connector & Pin Budget Sizing Methodology + +1. Inventory the signals every board needs access to: communications, power rail(s), a shared ground reference, and a small number of spare/reserved pins for future use +2. Add margin pins for power based on current budget per rail (parallel pins as needed, per current rating of the chosen connector's contacts) +3. Divide the total pin count needed by the pin count of the chosen single connector variant to get the number of connector instances required per board + +# Scope and deliverables + +| Deliverable | Description | +| :---- | :---- | +| Connector standard selection | Select a single pin-and-socket connector family (e.g., a small-pitch board-to-board connector) used identically across every subsystem board | +| Pin budget & connector count worksheet | Documented methodology and per-subsystem results for how many connector instances each board requires | +| Pinout ICD | Interface Control Document defining the single connector's pin assignment (CAN, power, ground, spares), current rating per pin/gang, and revision history | +| Keying/orientation scheme | Mechanical or connector-level keying that prevents reversed/misaligned insertion | +| Retention hardware design & vibration test plan | Card guides, edge clamps, staking, or connector-integrated locking, verified against the team's expected launch vibration environment by test | +| Backplane PCB design | Physical layout of the backplane PCB itself, including repeated connector footprints per board slot | + + +# Resources + +- NASA review of the CompactPCI card-edge connector family in spaceflight applications: precedent for connector vibration risk in a launch environment: https://nepp.nasa.gov/docuploads/1B921377-60B3-423F-82CDD7CC44080A3E/CompactPCI%20Report,%208-3-07.pdf +- General guidance on connector selection for CubeSats, including latching/locking variants under launch vibration: https://www.harwin.com/blog/how-to-choose-connectors-for-space +- Other backplane architectures used by other university CubeSat teams: UWE-3/Kyutech backplane approach, OreSat backplane +- The CubeSat Design Specification, for any connector/mechanical constraints tied to the deployer envelope: [spec/CDS+REV14_1+2022-02-09.pdf](../../documentation/spec/CDS+REV14_1+2022-02-09.pdf) + +# Next steps + +- [ ] Revise subsystem doc requirements once scope above is confirmed +- [ ] Select a single connector standard and specific part/pitch +- [ ] Build the pin budget report and determine connector-instance count per subsystem board +- [ ] Draft the pinout ICD +- [ ] Define keying/orientation scheme +- [ ] Design retention hardware and plan a vibration test to verify it +- [ ] Design the backplane PCB diff --git a/comms/documentation/subsystem_info.md b/comms/documentation/subsystem_info.md new file mode 100644 index 0000000..577735d --- /dev/null +++ b/comms/documentation/subsystem_info.md @@ -0,0 +1,70 @@ +# Subsystem Info + +# UHF Comms Subsystem + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +Status: DRAFT - not yet scoped or reviewed. This is a proposed starting point intended to be reviewed and revised before committing to any meaningful work. + +# Background and context + +The UHF Comms subsystem is responsible for uplink (commands from ground station) and downlink (telemetry, beacon, and payload data) over the amateur UHF band. Most university-class CubeSats, especially first missions, use low-cost, well-documented amateur UHF systems rather than higher-frequency or higher-data-rate commercial links, because amateur UHF hardware is cheap, widely available, well-understood by ham radio operators who can help with ground station operations, and doesn't require the same regulatory/licensing complexity as commercial spectrum. This document proposes a simple, half-duplex beacon + command/telemetry link as the v1 baseline, deferring anything higher-throughput to a later revision if the payload's data volume actually requires it. + +# UHF Comms Responsibilities (v1, baseline) + +1. Transmits a low-rate beacon at a fixed interval containing basic housekeeping telemetry (battery voltage, temperature, subsystem health), so we and the amateur radio community can track satellite health without needing to command it +2. Receives uplinked commands from the ground station and passes them to the OBC over CAN using the packet messaging standard +3. Transmits downlinked telemetry and payload data queued by the OBC +4. Operates half-duplex in the amateur UHF band (435-438 MHz), using AX.25 framing at 1200 bps AFSK as the baseline data rate/protocol, since it's widely supported by ground station software and amateur operators + 1. 9600 bps GMSK considered as a stretch goal once the basic link is proven, if payload data volume requires faster downlink +5. Implements basic ACK/retry per the packet messaging standard so dropped packets are re-requested rather than silently lost +6. Enforces the CDS-mandated RF inhibit, preventing any transmission until the post-deployment timer set by the launch provider has elapsed + +# Explicitly Deferred (v2+ candidate scope) + +- Higher-throughput downlink (9600+ bps GMSK, or S-band/higher-frequency links) - only pursue if payload data volume shows that the 1200 bps baseline is a bottleneck +- Onboard encryption/authentication of the command uplink beyond what's needed for amateur band compliance +- Custom RF front-end / antenna design beyond a simple deployable dipole or monopole, unless link budget analysis shows it's necessary + +# Scope and deliverables + + +| Deliverable | Description | +| :---- | :---- | +| Link budget analysis | Analysis confirming 1200 bps AFSK at chosen transmit power closes the link for the mission's orbit and ground station setup and is enough to downlink the required experimental data | +| Frequency coordination | Amateur frequency coordination through IARU (International Amateur Radio Union) satellite frequency coordination panel. Should be started early, as it can take significant lead time | +| UHF transceiver hardware selection or design | Evaluate off-the-shelf amateur CubeSat transceiver modules vs. an in-house design | +| Antenna design & deployment mechanism | Deployable dipole/monopole antenna design and its release mechanism | +| RF inhibit implementation | Hardware/firmware implementation of the CDS-mandated post-deployment RF inhibit timer | +| Beacon firmware | Firmware to assemble and transmit the periodic housekeeping beacon | +| Command/telemetry firmware | Firmware to receive uplinked commands, hand off to OBC, and transmit queued downlink data with ACK/retry | +| Ground station compatibility testing | Verification that the downlink is receivable/decodable with common amateur ground station software | + +# Resources + +- CubeSat Design Specification Rev 14.1 — RF inhibit and deployment timer requirements: [spec/CDS+REV14_1+2022-02-09.pdf](../../documentation/spec/CDS+REV14_1+2022-02-09.pdf) +- IARU Amateur Satellite Frequency Coordination: https://www.iaru.org/satellite/ + +# Next steps + +- [ ] Confirm expected payload data volume to validate if 1200 bps baseline is sufficient +- [ ] Start IARU frequency coordination process (long lead time, start this early regardless of hardware progress) +- [ ] Decide: off-the-shelf transceiver module vs. in-house design, based on team bandwidth and budget +- [ ] Perform link budget analysis for chosen orbit and ground station +- [ ] Design/select antenna and deployment mechanism +- [ ] Design RF inhibit circuit and firmware timer logic +- [ ] Implement beacon and command/telemetry firmware +- [ ] Test against ground station hardware/software before integration +- [ ] Finish subsystem info doc requirements once scope above is confirmed + +# Project team + +| Team members | Roles | Experience Level/Description | +| :---- | :---- | :---- | +| | | | diff --git a/documentation/checklists/bringup_test.md b/documentation/checklists/bringup_test.md new file mode 100644 index 0000000..3c99e02 --- /dev/null +++ b/documentation/checklists/bringup_test.md @@ -0,0 +1,40 @@ +# Bring-Up / Test Checklist +*One page. Pass/fail only. Full context: [Schematic & Layout Design Guidelines](../design_guidelines/schematic_layout_design.md), [Writing Acceptance Test Procedures](../design_guidelines/writing_atps.md)* + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +## Before Power + +- [ ] ATP & testing procedure present +- [ ] Visual inspection: component orientation, no shorts/debris, correct rev on silkscreen +- [ ] Continuity checks: no unintended shorts to ground +- [ ] ESD precautions in place (strap, mat) +- [ ] RBF/inhibit state confirmed correct for this test + +## Power-On + +- [ ] Bench supply current-limited before first power-up +- [ ] In-rush current observed and within expected bounds +- [ ] Regulator outputs measured before connecting sensitive downstream components (MCU, sensors) + +## Functional + +- [ ] Every voltage rail measured against spec (no-load and rated-load) +- [ ] Current draw measured against power budget (quiescent, nominal, peak) +- [ ] Communication lines validated with logic analyzer/scope (UART, I2C, SPI as applicable) +- [ ] Loads enabled incrementally, not all at once +- [ ] Protection circuits verified (OCP trip point, RBF cutoff, deployment switch inhibit) + +## Records + +- [ ] Results logged (not just observed, written down) +- [ ] Any anomaly logged with disposition (rework / waiver / reject) +- [ ] If this is a flight/deliverable unit: formal ATP run and signed, not just informal bring-up + +**Tested by:** _______________ **Date:** _______________ **Result:** ☐ Pass ☐ Pass with action items ☐ Fail diff --git a/documentation/checklists/firmware_service.md b/documentation/checklists/firmware_service.md new file mode 100644 index 0000000..f295055 --- /dev/null +++ b/documentation/checklists/firmware_service.md @@ -0,0 +1,43 @@ +# Firmware Service Checklist +*One page. Pass/fail only. Full context: [Refactoring Polling-Based Modules to be Event Driven](../design_guidelines/refactoring_polling_services.md), [Keeping the HAL Policy Free](../design_guidelines/keeping_the_hal_policy_free.md)* + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +## Interface Classification (if refactoring) + +- [ ] Every function/type classified as Question, Command, or Loop +- [ ] Questions removed, replaced with events pushed by the service +- [ ] Commands kept, but application requests changes over the event bus rather than calling commands directly +- [ ] Loop functions hidden behind a static implementation called from a system tick handler + +## Event Design + +- [ ] Unique 16-bit service UID chosen, checked against the existing UID registry for collisions +- [ ] Local event codes defined as an enum +- [ ] Composite event IDs built with `OSUSAT_BUILD_EVENT_ID` +- [ ] Public state struct exposes only a read-only snapshot, not internal implementation state + +## HAL Boundary + +- [ ] HAL layer does not publish directly to the event bus +- [ ] HAL error reporting uses an error enum + registered callback, not a service UID +- [ ] No event-system dependency introduced into ISR code + +## Timing & Safety + +- [ ] No blocking or long-running calls introduced inside ISR or tick-handler paths +- [ ] Watchdog/fault-detection behavior considered +- [ ] Prescaler/update rate documented if this service runs on a divided tick + +## Verification + +- [ ] Tested on hardware or in simulation, not just compiled +- [ ] Behavior during fault/safe-mode transition considered (does this service need to quiet down?) + +**Reviewed by:** _______________ **Date:** _______________ **Result:** ☐ Pass ☐ Pass with action items ☐ Fail diff --git a/documentation/checklists/layout_review.md b/documentation/checklists/layout_review.md new file mode 100644 index 0000000..b928084 --- /dev/null +++ b/documentation/checklists/layout_review.md @@ -0,0 +1,58 @@ +# Layout Review Checklist +*One page. Pass/fail only. Full context: [Schematic & Layout Design Guidelines](../design_guidelines/schematic_layout_design.md)* + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +## Stackup & Routing + +- [ ] Stackup matches spec (4-layer SGPS/SGGS or approved alternative) +- [ ] Ground plane continuous, not split +- [ ] Impedance-matched for high-speed lines (USB, CAN, RF) +- [ ] Trace widths verified against current requirements (calculator used, not eyeballed) +- [ ] No 90° corners on high-speed/high-current traces +- [ ] Clocks/oscillators routed away from switching signals +- [ ] Via ordering considered on decoupling/GND paths + +## Placement + +- [ ] Mechanically constrained components placed first +- [ ] Functional grouping applied (power, RF, logic, analog) +- [ ] Decoupling caps as close as possible to their ICs + +## RF (if applicable) + +- [ ] Impedance-matched, coplanar waveguide/microstrip used +- [ ] Stitching vias present per frequency/wavelength + +## Thermal & Mechanical + +- [ ] Thermal vias under hot components +- [ ] Thermal reliefs on relevant pads + +## Fabrication & Assembly + +- [ ] Manufacturer design rules imported/followed +- [ ] Manufacturer part numbers attached to symbols +- [ ] In-stock parts used, exotic footprints avoided +- [ ] Fiducials present, asymmetric, orientation-correct + +## Silkscreen + +- [ ] Polarity marks on caps/inductors/diodes +- [ ] Orientation dots on ICs +- [ ] Version/revision number printed and bumped +- [ ] Silkscreen not overlapping pads + +## Documentation + +- [ ] Schematic + layout committed to version control +- [ ] Assembly file exported +- [ ] BOM and revision history updated + +**Reviewed by:** _______________ **Date:** _______________ **Result:** ☐ Pass ☐ Pass with action items ☐ Fail diff --git a/documentation/checklists/schematic_review.md b/documentation/checklists/schematic_review.md new file mode 100644 index 0000000..f0dd539 --- /dev/null +++ b/documentation/checklists/schematic_review.md @@ -0,0 +1,49 @@ +# Schematic Review Checklist +*One page. Pass/fail only. Full context: [Schematic & Layout Design Guidelines](../design_guidelines/schematic_layout_design.md)* + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +## Organization + +- [ ] Hierarchical sheets used, each with title/version/revision date +- [ ] All nets labeled +- [ ] Critical notes present where needed +- [ ] Tolerances on passives, max voltage on caps, saturation current on inductors +- [ ] Inter-sheet references enabled +- [ ] IC Datasheets present in `documentation/datasheets/` folder + +## Power & Ground + +- [ ] Fuses/TVS/reverse-polarity/filtering on external power inputs +- [ ] Decoupling capacitors present per datasheet on every IC + +## Signals + +- [ ] Pull-up/pull-down on shared buses (I2C, reset, boot) +- [ ] Test points/headers on UART TX/RX, RESET, SWD/JTAG, I2C, SPI +- [ ] Level shifting present on mixed-voltage domains + +## Protection + +- [ ] ESD protection on external connectors +- [ ] Current sense resistors + ADC on key rails/lines +- [ ] Redundancy applied where the subsystem info doc requires it +- [ ] DNP/solder-bridge options used where appropriate + +## Derating + +- [ ] Every new part's operating point checked against team derating policy (not just worst-case survival) + +## Readiness + +- [ ] ERC clean: zero errors, zero unresolved warnings +- [ ] Peer review completed by someone other than the author +- [ ] Sub-circuits simulated if time allows + +**Reviewed by:** _______________ **Date:** _______________ **Result:** ☐ Pass ☐ Pass with action items ☐ Fail diff --git a/documentation/design_guidelines/hitl.md b/documentation/design_guidelines/hitl.md index fe29c6f..a32ebcd 100644 --- a/documentation/design_guidelines/hitl.md +++ b/documentation/design_guidelines/hitl.md @@ -1,5 +1,13 @@ # Hardware-In-The-Loop Testing (HITL) +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 11/5/2025 +- Approval Status: Unapproved + # Overview Hardware in-the-loop testing (HITL) is a technique used for testing embedded firmware by running real hardware and firmware components against simulated system components. For example, the firmware could be run on the actual microcontroller with some hardware components, but most of the system is simulated. diff --git a/documentation/design_guidelines/keeping_the_hal_policy_free.md b/documentation/design_guidelines/keeping_the_hal_policy_free.md new file mode 100644 index 0000000..2d42683 --- /dev/null +++ b/documentation/design_guidelines/keeping_the_hal_policy_free.md @@ -0,0 +1,32 @@ +# Keeping the HAL Policy Free + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +## Overview + +When working with services in firmware you may find that some need signals from the HAL for error reporting, state tracking, or hardware events in general (e.g., an error reporting service wanting signals for CANBus faults). Your first instinct might be to create a new service ID for the HAL and integrate it with the event bus, but this introduces a few different architecture smells: + +- The HAL (lowest level interface) now depends on the event system, which would have been previously reserved for higher level applications and services +- ISR timing sensitive code paths now may end up blocking or queuing to publish an event +- The HAL UID space starts to mirror the service UID space, which is a leaky abstraction +- The HAL now encodes "policy," saying that "this failure matters" instead of just reporting a signal + +The HAL should not rely on the event bus to report facts or signals to higher level layers. + +## Solution + +Instead of using the event bus to publish signals, each HAL that needs error reporting functionality should instead implement three features into its interface: + +1. An error enum (e.g., `uart_error_t` that contains different failure modes for UART operations) +2. A callback function type the HAL can call to report an error +3. A function to register an error callback with the HAL, so services can hook into HAL signals + +Then, add to the HAL's global state the new callback function & any context. In each scenario where an error signal must be published, simply determine the error cause and call the callback. + +For some HALs like communication protocols, you can also add callback function types for TX and RX events, and follow the same pattern for publishing error signals. diff --git a/documentation/design_guidelines/preliminary_hardware_design.md b/documentation/design_guidelines/preliminary_hardware_design.md new file mode 100644 index 0000000..238ddc5 --- /dev/null +++ b/documentation/design_guidelines/preliminary_hardware_design.md @@ -0,0 +1,94 @@ +# Preliminary Hardware Design Guidelines + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + + +## Overview + +These guidelines outline the process and requirements for ALL OSUSat hardware design before CAD tools like KiCad are ever touched. All preliminary design information should primarily live in a `subsystem_info.md` document like [eps/documentation/subsystem_info.md](../../eps/documentation/subsystem_info.md), where system requirements, procedures, deliverables, and other important information about the design of the subsystem are listed. + +## Subsystem Info Contents & Considerations + +### Mission & System Context + +- The subsystem's purpose and required interfaces (e.g., power, data, mechanical) should all be clearly documented and defined + - Also list the requirements of each interface, like voltage requirements, current limits, connectors, pinouts, logic levels, and more +- Identify and document mission phases (e.g., integration, launch, deployment, nominal operation, fault) + - Furthermore, identify the effect these phases have on the electrical state of the subsystem (current draw, power sequencing) +- Identify and document PCB failure modes, mitigations, and solutions + - Emphasis on external connections + +### Functional -> Concrete Electrical Requirements + +- Once the system's functional requirements are defined, those requirements must be translated into measurable electrical requirements. List: + - Supply voltage ranges & nominal voltage + - Peak and average current draw + - Consider how vias affect current draw + - Worst-case power budgets + - Sensor ranges, ADC requirements, signal speeds + - Temperature, vibration, radiation, EMC, EMI, ESD + +### Deliverables + +- In most cases, the following deliverables should be present: + - Failure mode identification documents + - Block diagram + - Schematic + - Layout + - Manufacturing files + - Includes gerbers, assembly files, schematic, documentation + - Firmware block diagram (if required) + - Firmware implementation (if required) + - Integration and testing documentation + +### CubeSat Design Specification Compliance + +- Evaluate functional, mechanical & electrical requirements against the [CubeSat Design Standard](../spec/CDS+REV14_1+2022-02-09.pdf) + - **Envelope & mass** - confirm the subsystem's footprint and mass fit within the allocated U-slice of the bus mass budget (1U ≤ 2 kg, 3U ≤ 6 kg, 6U ≤ 12 kg, 12U ≤ 24 kg) [^1] + - No components may protrude more than 6.5 mm normal to the rail plane on the constrained (yellow-shaded) faces + - Deployables must be constrained by the CubeSat itself, not the dispenser + - **Rails** - if the subsystem board contacts or mounts near the rail system, confirm compatibility with: + - Minimum rail width of 8.5 mm, surface roughness < 1.6 µm, edges rounded to > 1 mm radius + - At least 75% rail contact with the dispenser rails + - Hard-anodized aluminum finish on any rail/standoff surfaces to prevent cold welding + - **RBF (Remove Before Flight) pin** - the subsystem's power architecture must support a hard power cutoff via RBF pin + - RBF pin shall cut all power to the satellite when inserted, and protrude no more than 6 mm from the rail surface when fully inserted + - Determine whether the RBF is accessible via a dispenser access port, or must be removed prior to integration (affects power-on/boot sequence design) + - **Deployment switches** - identify which rail-mounted deployment switches turn off this subsystem's power rails, and document the inhibit logic (typically 2+ independent inhibits between battery and any deployable/RF/actuation circuit) + - **RF inhibit** - if the subsystem includes a radio, document the RF inhibit mechanism and timer that prevents transmission until the launch-provider-specified post-deployment delay has elapsed + - **Real-time clock circuits** (if used) - must be isolated from the main power system, current-limited to < 10 mA, and operate below 320 kHz + - **Center of gravity** - flag any subsystem placement decisions that could push the overall bus CG outside the allowed offset from geometric center (guideline: within 2 cm per axis) + - **Materials & outgassing** - restrict material selection to low-outgassing per NASA-STD outgassing limits (TML < 1%, CVCM < 0.1%); avoid pure tin finishes (tin whisker risk) + - Best surface finish choices are Leaded HASL or ENIG + - **Testing philosophy** - identify which CDS-mandated environmental tests apply to this subsystem's design (random vibration, thermal vacuum bakeout); shock testing is typically not required for CubeSats per CDS Rev 14.1 §3.3.1.1 [^1] + - Document any planned deviations from the CDS as a formal deviation request, including justification and risk assessment, for review with the Launch Provider/Mission Integrator + +### Component Derating + +- When selecting components (e.g., resistors, capacitors), follow derating guidelines outlined in the [NASA EEE Part Selection guidelines](../spec/EEE-INST-002_add1.pdf) [^2]. +- Per the [NASA GSFC CubeSat Success Handbook](../spec/gsfc-hdbk-8007.pdf), if resources for radiation hardened parts aren't available, parts should be derated below EEE-INST-002 levels [^1], [^2]. + +### Part Feasibility Studies + +- The system info document should also have a section for key part tradeoffs, documenting pros/cons of each part, as well as the general decision-making process and result for each part +- Some example tradeoffs: + - MCU/Compute - compare reliability mechanisms, radiation tolerance, current draw, temperature range, peripherals + - Communication interfaces - CAN, UART, I2C, SPI + - Power architecture - noise tolerance, rail pinout/requirements, regulator efficiencies + - Packaging - mechanical constraints, positioning within the bus + - Radiation mitigation & redundancy - decide which parts need redundancy, and consider watchdogs, ECC memory +- Always select parts compliant with [NASA EEE (Electrical, Electronic, Electromechanical)](../spec/EEE-INST-002_add1.pdf) guidelines [^2] + - This means matching temperature coefficients, failure rates, derating, etc. + +## References + +[^1]: The Cubesat Program, Cal Poly (2022). *CubeSat Design Specification Rev. 14.1* +[^2]: NASA (2003). EEE-INST-002: Instructions for EEE Parts Selection, Screening, Qualification, +and Derating + diff --git a/documentation/design_guidelines/refactoring_polling_services.md b/documentation/design_guidelines/refactoring_polling_services.md new file mode 100644 index 0000000..504e2b4 --- /dev/null +++ b/documentation/design_guidelines/refactoring_polling_services.md @@ -0,0 +1,159 @@ +# Refactoring Polling-Based Modules to be Event Driven + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +## Overview + +These guidelines outline a general decision framework for converting polling-based firmware modules into event-driven modules using the OSUSat core libraries. + +## Auditing Non-Refactored Modules + +To begin refactoring a polling module, we first need to audit it and classify its interface into several categories. + +1. Read over the current interface & its corresponding documentation +2. Classify every function or type into 3 categories: + +| Type | Example | Action | +|---|---|---| +| Question | `is_data_ready()`, `get_status()`, `check_error()` | Delete and replace with an event pushed by the service | +| Command | `start_process()`, `set_config()`, `reset()` | Keep these, since they are a specific instruction. However, create a new event subscription in the service that listens for requested changes from the application. The application won't directly command services, and instead requests changes over the event bus. Then individual services will call their commands to move towards the requested state. | +| Loop | `update()`, `process_logic()` | Hide these in the implementation. Make a similar or equivalent function static in the source file and call it from a new system tick handler. | + +## Refactoring Headers + +This is a general guideline for refactoring headers: + +```c +/** + * @file [service_name].h + */ +#ifndef [SERVICE]_H +#define [SERVICE]_H + +#include "osusat_event_bus.h" + +// 1. PICK A UNIQUE ID (16-bit Hex) +// Examples: 0xBA77 (Batt), 0x5014 (Solar), or just random +#define [SERVICE]_UID 0x____ + +// 2. DEFINE LOCAL EVENTS (Enum) +typedef enum { + [SERVICE]_STATUS_CHANGE = 0x10, + [SERVICE]_ERROR, + [SERVICE]_TASK_COMPLETE +} [service]_code_t; + +// 3. BUILD PUBLIC COMPOSITE IDs +#define [SERVICE]_EVENT_STATUS_CHANGE OSUSAT_BUILD_EVENT_ID([SERVICE]_UID, [SERVICE]_STATUS_CHANGE) +#define [SERVICE]_EVENT_ERROR OSUSAT_BUILD_EVENT_ID([SERVICE]_UID, [SERVICE]_ERROR) +#define [SERVICE]_EVENT_TASK_COMPLETE OSUSAT_BUILD_EVENT_ID([SERVICE]_UID, [SERVICE]_TASK_COMPLETE) + +// 4. DEFINE STATE STRUCT +typedef struct { + // Public read-only state (snapshot) + float data; + bool is_busy; +} [service]_status_t; + +typedef struct { + [service]_status_t status; + bool initialized; +} [service]_t; + +// 5. DEFINE API (here, just keep the init and commands) +void [service]_init([service]_t *self); +void [service]_start_action([service]_t *self); +void [service]_stop_action([service]_t *self); + +#endif +``` + +## Implementation + +This is a simple template for the implementation of a service, updated for an event driven architecture: + +```c +/** + * @file [service_name].c + */ +#include "[service_name].h" +#include + +// 1. CONFIG: Frequency Prescaler +// How many System Ticks to skip? +// Example: If SysTick is 100Hz and we want 10Hz update -> 10. +#define UPDATE_PRESCALER 10 + +// 2. PRIVATE PROTOTYPES +static void handle_tick(const osusat_event_t *e, void *ctx); +static void perform_update([service]_t *self); + +// 3. PUBLIC API +void [service]_init([service]_t *self) { + if (!self) return; + + // clear state + memset(self, 0, sizeof([service]_t)); + + // hardware actions (HAL) + // hal_gpio_init(...); + + self->initialized = true; + + // subscribe to the heartbeat. + // pass 'self' as context so we know which struct to update. + osusat_event_bus_subscribe(EVENT_SYSTICK, handle_tick, self); +} + +void [service]_start_action([service]_t *self) { + if (!self || !self->initialized) return; + + // 1. perform hardware action + // hal_gpio_write(PIN_START, 1); + + // 2. update internal state + self->status.is_busy = true; + + // 3. notify system + osusat_event_bus_publish([SERVICE]_EVENT_STATUS_CHANGE, + &self->status, + sizeof([service]_status_t)); +} + +// 4. PRIVATE LOGIC +static void handle_tick(const osusat_event_t *e, void *ctx) { + (void)e; + [service]_t *self = ([service]_t *)ctx; + if (!self || !self->initialized) return; + + // Prescaler Logic + static uint32_t tick_count = 0; // Initialize to offset if needed + tick_count++; + + if (tick_count >= UPDATE_PRESCALER) { + tick_count = 0; + perform_update(self); + } +} + +static void perform_update([service]_t *self) { + // 1. READ SENSORS + // float val = hal_adc_read(...); + + // 2. UPDATE STATE + // self->status.data = val; + + // 3. CHECK THRESHOLDS & PUBLISH + // if (val > LIMIT) { + // osusat_event_bus_publish([SERVICE]_EVENT_ERROR, &val, sizeof(float)); + // } +} +``` + +exit diff --git a/documentation/design_guidelines/schematic_layout_design.md b/documentation/design_guidelines/schematic_layout_design.md new file mode 100644 index 0000000..fcde0ad --- /dev/null +++ b/documentation/design_guidelines/schematic_layout_design.md @@ -0,0 +1,164 @@ +# Schematic & Layout Design Guidelines + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: Nick Alves +- Last Revised date: 07/5/2026 +- Approval Status: Approved + + +## Overview + +This document outlines general guidelines that must be followed when designing PCB schematics and layouts. + +## Schematic Design + +### Organization + +- Use hierarchical sheets + - Follow the block diagram/flowchart here. It lays out the logical sections for the system. + - Each sheet should also have a title, version, and revision date +- Label nets clearly + - Before moving to layout, make sure that all important nets are labelled +- Include text and images for critical notes like resistor selection, layout, etc. +- Include tolerances on passives like resistors +- Include breakdown voltage for capacitors +- Include saturation current for inductors +- Toggle on inter-sheet-references +- IC Component datasheets included in `documentation/datasheets/` + +### Power & Ground + +- Include fuses, TVS diodes, reverse-polarity and current protection, filtering if necessary on external power inputs +- Decoupling capacitors must be included per component datasheets + +### Signals + +- Include pull-up/pull-down resistors on shared buses (I2C lines, reset/boot) +- For each key signal, include test pads/headers. At least: + - CANBus TX/RX + - UART TX/RX + - RESET + - SWD/JTAG + - I2C + - SPI +- Add level shifting for mixed-voltage domains (e.g., 3.3V MCU driving 5V sensors) + +### Protections + +- Use ESD protection on external connectors +- Consider current sense resistors on key rails/lines + - Add ADCs to read and send data to MCU +- Use redundancy as necessary, as defined in the subsystem info document +- 0 ohm resistors/solder-bridges on key lines +- Utilize DNP (do-not-populate) + - Especially use them in places that may be useful for the flight model but maybe not on the bench (e.g., slew rate control) + +### Connectors + +- When possible, use connectors with flight heritage or are part of a space-rated line + +### Accessibility + +- Add test points for the following: + - Main system power rails + - Key signals + +### Inhibits + +- Every subsystem design must include at least one inhibit mechanism that disables the hardware when inserted + - Pin jumpers offer a good solution for most applications + - Deployment switches are necessary for the EPS and may be used for other subsystems as well + +### Readiness Review + +- Ensure ERC is clean + - Clear out errors AND warnings +- Peer & design review before moving to the next stage +- Simulate subcircuits (regulators, etc.) if time allows +- Review the schematic for all of the above near release + +## PCB Layout + +### Stackup + +- Prefer 4-layer SGPS (signal-ground-power-signal) or SGGS (signal-ground-ground-signal) stackup +- Keep return paths short and continuous; never split the ground plane +- Match impedance for higher speed lines like USB, CAN, RF + +### Component Placement + +- First, place mechanically constrained components +- Then, group by function as necessary (power, RF, logic, analog) +- Place decoupling capacitors as close as possible to relevant ICs +- Place MOSFETs, diodes, and resistors in-line with direct current paths, using thick traces + +### Routing + +- Trace width vs. current rule of thumb + - 1A continuous = 1mm trace with 1oz copper, 10°C temperature rise +- Use KiCad's calculator tools +- Avoid 90 degree corners on high-speed or high-current traces +- Route clocks and oscillators away from switching signals +- Use thick traces between power components +- Consider via ordering + - E.g., MCU GND pin -> via, decoupling capacitor uses a direct trace on the signal layer to connect the MCU GND pin +- Ensure all RF signals are properly impedance matched + - Prefer grounded coplanar waveguide or microstrip routing + - Add stitching vias to ground in accordance with frequency and wavelength + +### Thermal & Mechanical + +- Add thermal vias beneath hot components +- Add thermal reliefs to pads and ground pads + +### Fabrication + +- Follow manufacturers' design constraints. You can find design rules online for popular board manufacturers that can be imported into KiCad. +- Populate component symbols with manufacturer library part numbers +- Never select a pure-tin finish (e.g., lead free HASL) + - Tin whiskers run the risk of shorting in a vacuum + - Select an alternative like leaded HASL or ENIG +- Check material outgassing properties against launch provider requirements for flight revisions + +### Silkscreen + +- Add polarity indicators for polarized components like capacitors +- Add polarity indicators for inductors +- Add diode symbol silkscreen next to diode footprints +- Mark switch positions and pinouts with silkscreen +- Label jumpers for inhibits +- Always add a version & revision number + +### Manufacturing & Assembly + +- Choose in-stock parts +- Minimize exotic footprints - try to stick to packages like 0402 and 0603 +- Provide fiducials for pick & place + - Must be asymmetric in different parts of the board to identify orientation. Prefer a triangle shape +- Ensure silkscreen is visible and not on pads +- Orientation dots for ICs + - Consider making pin one longer for orientation purposes + +### Bring-Up + +- Always start with a visual inspection of component orientations +- Perform continuity checks on components like diodes and power rail shorts to ground +- Power using bench supply and watch for in-rush currents + - Keep supply current low on the power supply +- Measure regulator outputs before connecting sensitive components like MCU +- Validate communications lines with logic analyzer/oscilloscope +- Incrementally enable loads +- After the design is stable, fill out an [ATP](./writing_atps.md) and put it in Git + +### Documentation + +- All schematics and layouts must be in version control +- Export assembly file + - Contains orientations of all components and outlines, but no traces + - Good for early identification of hard-to-catch mistakes +- Maintain BOM, revision histories, assembly/test procedures +- Print version number on silkscreen +- Create a Git release with production files diff --git a/documentation/design_guidelines/writing_atps.md b/documentation/design_guidelines/writing_atps.md new file mode 100644 index 0000000..bc1e8f2 --- /dev/null +++ b/documentation/design_guidelines/writing_atps.md @@ -0,0 +1,89 @@ +# Writing Acceptance Test Procedures (ATPs) + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +## Overview + +An Acceptance Test Procedure (ATP) is a formal document used to verify that a specific, serial-numbered unit (a PCB, assembly, or subsystem) meets its requirements before it is accepted into the next level of integration (e.g., subsystem board -> bus integration, or bus -> flight readiness). + +This is distinct from the informal bring-up procedure described in [the hardware design guidelines](./schematic_layout_design.md). Bring-up happens once, on a prototype, to find and fix problems. An ATP happens on every unit you build, including flight units, spares, and engineering qualification models (EQMs), to prove that unit, specifically, is good. + +## When to Write One + +- After the schematic/layout is frozen and bring-up debugging is complete on at least one prototype +- Before the formal integration & testing process begins +- Typically one ATP per board/subsystem, plus a separate ATP at full bus/system level once subsystems are integrated +- The ATP should be baselined (reviewed & released as a controlled document) before it is run against real hardware, so that results are traceable against an unchanging procedure + +## Document Structure + +### 1. Document Control Header + +- Title, subsystem name, document number, revision +- Unit under test: serial number, board revision, date of fabrication +- Author, approver, date of release +- Reference to the ATP's parent requirements documents (e.g., the subsystem's info doc, decision making docs, checklists) + +### 2. Scope & Applicable Documents + +- State which unit(s) and which requirements this ATP verifies +- List all documents this procedure derives from or must remain consistent with (requirements doc, interface control document, schematic revision) + +### 3. Test Equipment & Setup + +- List every piece of test equipment needed, with required accuracy/resolution (e.g., "multimeter, +-0.1% accuracy or better", "bench PSU, current-limited, 0-30V/0-3A") +- List fixtures, cables, harnesses, and any test-specific jigs +- Describe the physical setup (ESD-safe bench, grounding, current limiting on power supply, etc.) + +### 4. Safety & Handling Notes + +- ESD precautions (wrist strap, mat) +- Power sequencing precautions +- Any lithium battery handling precautions if battery is under test +- RBF/inhibit switch state required before test begins + +### 5. Test Procedure + +Structure each test as a numbered step with: + +| Step | Action | Expected Result / Pass Criteria | Actual Result | Pass/Fail | +|---|---|---|---|---| +| 1 | [Action taken, e.g., "Apply 3.3V to J1 pin 2, measure current draw"] | [Expected value + tolerance, e.g., "< 50 mA"] | [blank, filled during test] | ☐ | + +Common test categories to include, in rough execution order: + +1. **Visual inspection** - solder joints, component orientation, no shorts/debris, silkscreen/rev number correct +2. **Continuity & isolation checks** - verify no shorts to ground/power on unpowered board, verify isolation between isolated domains +3. **Power-on sequencing** - apply power per the documented sequence, confirm in-rush current and rail rise times are within expected bounds +4. **Voltage rail verification** - measure every regulated rail against its spec (nominal ± tolerance) under no-load and rated-load conditions +5. **Current draw verification** - measure quiescent, nominal, and peak current draw against the power budget from the kickoff doc +6. **Protection circuit verification** - verify overcurrent protection trip points, confirm RBF/deployment-switch inhibit logic actually cuts power, verify any load switch enable/disable behavior +7. **Functional/interface tests** - exercise every external interface (CAN, I2C, SPI, ADC channels, GPIOs) against expected behavior, using known-good test equipment or a golden reference unit +8. **Communication bus verification** - confirm the unit responds correctly on the spacecraft bus/event system per its defined protocol +9. **Thermal spot-check** (if applicable at this level) - confirm no component exceeds derated thermal limits during rated-load operation + +### 6. Anomaly / Discrepancy Log + +- Any step that fails or produces an unexpected result gets logged here with: + - Description of the anomaly + - Root cause (if known) + - Disposition: rework and retest, use-as-is with waiver, or reject + - Sign-off on the disposition +- No unit should be "accepted" with an open, undispositioned anomaly + +### 7. Final Sign-Off + +- Test conductor signature/date +- Witness signature/date (if required by program policy) +- Subsystem lead / quality signature/date +- Overall unit disposition: ACCEPT / ACCEPT WITH WAIVER / REJECT + +## Traceability + +Each test step should trace back to a specific requirement (from the subsystem's kickoff doc, interface spec, or CDS-compliance checklist) so that acceptance test coverage can be checked against requirements during a design review. A simple traceability table (requirement ID -> ATP step number) at the end of the document is often sufficient. diff --git a/documentation/design_guidelines/writing_icds.md b/documentation/design_guidelines/writing_icds.md new file mode 100644 index 0000000..feab53e --- /dev/null +++ b/documentation/design_guidelines/writing_icds.md @@ -0,0 +1,82 @@ +# Writing Interface Control Documents (ICDs) + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +## Overview + +An Interface Control Document (ICD) defines and freezes the interface between two or more subsystems, or between a subsystem and an external system, like a ground station or launch vehicle. Each side can be built independently without constantly re-coordinating on every detail. This is different from a subsystem info doc: the info doc describes one subsystem's internal requirements, while an ICD describes only what crosses the boundary between subsystems. + +The core idea: an ICD is a pre-agreed contract. If it gets written after both sides are already implemented, most of its value is already gone: the whole point is that both sides can develop against it in parallel without surprises. + +## When to Write One + +- Any time two or more subsystems (or a subsystem and an external system) share a physical connector, a power rail, or a data protocol +- Before both sides start building against the interface +- Examples already in this project: the backplane connector pinout, the packet standard, and (eventually) the ground station uplink/downlink protocol + +## Document Structure + +### 1. Document Control Header + +- ICD number, revision, date, author +- Owning/primary-maintainer subsystem, and every other subsystem that consumes this interface and must approve changes to it +- Approval signatures from every consuming subsystem + +### 2. Scope + +- Which systems this ICD governs, specifically +- What's explicitly **not** covered, preventing scope-creep arguments down the line + +### 3. Physical Interface *(if applicable)* + +- Connector type, part number, pin/contact count +- Full pinout table: pin number, signal name, direction, voltage/current rating, notes +- Mechanical reference (mounting, keying, orientation) if relevant + +### 4. Electrical Interface + +- Voltage levels (logic high/low, absolute max, nominal) +- Current ratings/limits, per pin or per rail +- Protection responsibility: which side of the interface is responsible for ESD, reverse-polarity, overcurrent protection, etc. +- Timing characteristics if relevant (rise/fall time, setup/hold) + +### 5. Protocol / Data Interface *(if applicable)* + +- Packet/message format, byte order, framing +- Command/response tables, or a reference to the shared messaging standard if this ICD just adopts it +- Error handling and retry behavior +- Reference to the specific protocol version in use, and where the definition is maintained + +### 6. Sequencing & Timing + +- Power-up/power-down order across the interface, if sequence matters +- Required handshaking: who initializes first, who waits on whom + +### 7. Change Control + +- How to propose a change: who reviews, who must approve +- No unilateral changes +- Revision history table: version, date, author, summary of change, approvers + +### 8. Traceability + +- Which system-level or subsystem-level requirements this ICD satisfies +- Reference to the subsystem info doc(s) of every subsystem it governs + +## Common Pitfalls + +- Writing the ICD as after-the-fact documentation of an interface that's already built, instead of a pre-agreed contract both sides build against +- One subsystem changing a pin assignment, voltage, or timing detail without re-circulating for sign-off from everyone else who depends on it +- No revision history, so nobody can tell what changed between hardware or firmware runs +- No "out of scope" section, which just moves the scope-creep argument to later, when it's more expensive to resolve + +## Maintenance + +- ICDs are controlled documents and live in version control and go through the same review process as normal work PRs +- Any executed test or bring-up procedure that depends on an ICD (e.g., ATP steps) should cite the ICD's specific revision number such that a mismatch between what was tested and what's currently defined is traceable diff --git a/documentation/process/self_review.md b/documentation/process/self_review.md new file mode 100644 index 0000000..8e3edbc --- /dev/null +++ b/documentation/process/self_review.md @@ -0,0 +1,30 @@ +# Self-Review Log + +## How to Use This + +Before submitting any of your own PRs, design review requests, or ATP sign-offs: + +1. Run the relevant one-page checklist against your own work, honestly. +2. Add one short entry below. +3. Get one other person (co-lead, faculty advisor, or a peer team member) to actually look at it and countersign. + +## Log + + +| Date | Item (PR/design/ATP) | Checklist used | Self-check notes (what passed, what's N/A and why, what's still open) | Countersigned by | +|---|---|---|---|---| +| | | | | | + + +### Example entry + + +| Date | Item | Checklist used | Self-check notes | Countersigned by | +|---|---|---|---|---| +| 2026-07-05 | EPS board Rev C layout | checklist-layout.md | All items pass except thermal vias | J. Doe (faculty advisor) | + + +## Guidance for Notes + +- "N/A because X" is a fine answer +- Don't skip this even under time pressure; checking yourself will catch mistakes diff --git a/documentation/spec/CDS+REV14_1+2022-02-09.pdf b/documentation/spec/CDS+REV14_1+2022-02-09.pdf new file mode 100644 index 0000000..544c982 Binary files /dev/null and b/documentation/spec/CDS+REV14_1+2022-02-09.pdf differ diff --git a/documentation/spec/EEE-INST-002_add1.pdf b/documentation/spec/EEE-INST-002_add1.pdf new file mode 100644 index 0000000..8144d38 Binary files /dev/null and b/documentation/spec/EEE-INST-002_add1.pdf differ diff --git a/documentation/spec/gsfc-hdbk-8007.pdf b/documentation/spec/gsfc-hdbk-8007.pdf new file mode 100644 index 0000000..a17e2eb Binary files /dev/null and b/documentation/spec/gsfc-hdbk-8007.pdf differ diff --git a/documentation/templates/atp.md b/documentation/templates/atp.md new file mode 100644 index 0000000..7cc0134 --- /dev/null +++ b/documentation/templates/atp.md @@ -0,0 +1,173 @@ +# Acceptance Test Procedure (ATP) + +*Full guidance: [Writing Acceptance Test Procedures](../design_guidelines/writing_atps.md). Delete any test category below that doesn't apply* + +## 1. Document Control Header + + +| Field | Value | +| :---- | :---- | +| Title | | +| Subsystem | | +| Document Number | | +| Revision | | +| Unit Under Test: Serial Number | | +| Unit Under Test: Board Revision | | +| Date of Fabrication | | +| Author | | +| Approver | | +| Date of Release | | + + +**Parent requirements documents referenced by this ATP:** + + +## 2. Scope & Applicable Documents + +**Unit(s) and requirements this ATP verifies:** + + +**Applicable documents (requirements doc, ICD, schematic revision):** + + +| Document | Revision | +| :---- | :---- | +| | | + + +## 3. Test Equipment & Setup + + +| Equipment | Required Accuracy/Resolution | +| :---- | :---- | +| | | + + +**Fixtures, cables, harnesses, jigs:** + + +**Physical setup notes** (ESD-safe bench, grounding, current limiting): + + +## 4. Safety & Handling Notes + +- [ ] ESD precautions confirmed (wrist strap, mat) +- [ ] Power sequencing precautions reviewed +- [ ] Lithium battery handling precautions reviewed (if applicable) +- [ ] RBF/inhibit switch state confirmed correct before test begins + +**Additional notes:** + + +## 5. Test Procedure + +*Copy the step table into each category that applies. Delete categories that don't apply to this unit.* + +### 5.1 Visual Inspection + + +| Step | Action | Expected Result / Pass Criteria | Actual Result | Pass/Fail | +| :---- | :---- | :---- | :---- | :---- | +| | | | | ☐ | + + +### 5.2 Continuity & Isolation Checks + + +| Step | Action | Expected Result / Pass Criteria | Actual Result | Pass/Fail | +| :---- | :---- | :---- | :---- | :---- | +| | | | | ☐ | + + +### 5.3 Power-On Sequencing + + +| Step | Action | Expected Result / Pass Criteria | Actual Result | Pass/Fail | +| :---- | :---- | :---- | :---- | :---- | +| | | | | ☐ | + + +### 5.4 Voltage Rail Verification + + +| Step | Rail | Load Condition | Expected Value ± Tolerance | Actual Result | Pass/Fail | +| :---- | :---- | :---- | :---- | :---- | :---- | +| | | No load | | | ☐ | +| | | Rated load | | | ☐ | + + +### 5.5 Current Draw Verification + + +| Step | Condition | Expected Value ± Tolerance | Actual Result | Pass/Fail | +| :---- | :---- | :---- | :---- | :---- | +| | Quiescent | | | ☐ | +| | Nominal | | | ☐ | +| | Peak | | | ☐ | + + +### 5.6 Protection Circuit Verification + + +| Step | Action | Expected Result / Pass Criteria | Actual Result | Pass/Fail | +| :---- | :---- | :---- | :---- | :---- | +| | Overcurrent trip point | | | ☐ | +| | RBF/deployment switch inhibit cutoff | | | ☐ | +| | Load switch enable/disable | | | ☐ | + + +### 5.7 Functional / Interface Tests + + +| Step | Interface | Action | Expected Result / Pass Criteria | Actual Result | Pass/Fail | +| :---- | :---- | :---- | :---- | :---- | :---- | +| | CAN | | | | ☐ | +| | I2C | | | | ☐ | +| | SPI | | | | ☐ | +| | ADC channel | | | | ☐ | +| | GPIO | | | | ☐ | + + +### 5.8 Communication Bus Verification + + +| Step | Action | Expected Result / Pass Criteria | Actual Result | Pass/Fail | +| :---- | :---- | :---- | :---- | :---- | +| | | | | ☐ | + + +### 5.9 Thermal Spot-Check *(if applicable)* + + +| Step | Component | Condition | Expected Max Temp (derated) | Actual Result | Pass/Fail | +| :---- | :---- | :---- | :---- | :---- | :---- | +| | | | | | ☐ | + + +## 6. Anomaly / Discrepancy Log + + +| # | Description | Root Cause (if known) | Disposition | Approved By | +| :---- | :---- | :---- | :---- | :---- | +| | | | ☐ Rework & retest ☐ Waiver ☐ Reject | | + + +*No unit should be accepted with an undispositioned anomaly.* + +## 7. Final Sign-Off + + +| Role | Signature | Date | +| :---- | :---- | :---- | +| Test Conductor | | | +| Witness (if required) | | | +| Subsystem Lead / Quality | | | + +**Overall unit disposition:** ☐ ACCEPT ☐ ACCEPT WITH WAIVER ☐ REJECT + +## 8. Traceability + + +| Requirement ID | Source Document | ATP Step(s) | +| :---- | :---- | :---- | +| | | | diff --git a/documentation/templates/icd.md b/documentation/templates/icd.md new file mode 100644 index 0000000..11f04f3 --- /dev/null +++ b/documentation/templates/icd.md @@ -0,0 +1,108 @@ +# Interface Control Document (ICD) + +*Full guidance: [Writing Interface Control Documents](../design_guidelines/writing_atps.md). Delete any section that doesn't apply* + +## 1. Document Control + +| Field | Value | +| :---- | :---- | +| ICD Title | | +| ICD Number | | +| Revision | | +| Primary Maintainer (subsystem) | | +| Consuming Subsystems (must approve changes) | | +| Status | ☐ Draft ☐ Under Review ☐ Approved | + + +**Approvals:** + +| Subsystem | Approver | Date | +| :---- | :---- | :---- | +| | | | +| | | | + +## 2. Scope + +**This ICD governs the interface between:** + + +**Explicitly out of scope:** + + +## 3. Physical Interface + +**Connector type / part number:** + +**Pin count:** + +**Pinout table:** + +| Pin | Signal Name | Direction | Voltage/Current Rating | Notes | +| :---- | :---- | :---- | :---- | :---- | +| | | | | | + +**Mechanical notes (mounting, keying, orientation):** + + +## 4. Electrical Interface + +| Parameter | Value | Notes | +| :---- | :---- | :---- | +| Logic high / low levels | | | +| Absolute max voltage | | | +| Nominal voltage | | | +| Current rating (per pin / per rail) | | | +| Rise/fall time | | (if applicable) | +| Setup/hold time | | (if applicable) | + + +**Protection responsibility** (which side owns ESD, reverse-polarity, overcurrent protection): + + +## 5. Protocol / Data Interface + +**Packet/message format reference:** +*(link to the shared messaging standard, or define inline if this interface is unique)* + +**Byte order / framing:** + + +**Command/response table** *(or reference to shared command table)*: + +| Command ID | Name | Direction | Payload | Notes | +| :---- | :---- | :---- | :---- | :---- | +| | | | | | + + +**Error handling / retry behavior:** + + +**Protocol version in use:** + + +## 6. Sequencing & Timing + +**Power-up/power-down order (if it matters):** + + +**Required handshaking (who initializes first, who waits):** + + +## 7. Change Control + +**Process to propose a change:** + + +**Revision history:** + +| Version | Date | Author | Summary of Change | Approved By | +| :---- | :---- | :---- | :---- | :---- | +| | | | | | + + +## 8. Traceability + +**Requirements this ICD satisfies** (reference kickoff doc section(s)): + + +**Subsystems whose kickoff docs reference this ICD:** diff --git a/eps/documentation/subsystem_info.md b/eps/documentation/subsystem_info.md new file mode 100644 index 0000000..73460b1 --- /dev/null +++ b/eps/documentation/subsystem_info.md @@ -0,0 +1,105 @@ +# Subsystem Info + +# EPS Subsystem + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +# Background and context + +The EPS subsystem is responsible for battery management and power delivery throughout the system, as well as offering a high level of protection against over/under voltage and current events. The EPS also needs to ensure a stable level of charge in the batteries when possible, along with allowing easily toggleable power rails via software commands to and from a microcontroller. Due to the critical nature of the EPS, redundancy, robustness, and reliability are key design considerations to ensure the system maintains a consistent power state. + +# EPS Responsibilities + +1. Takes electrical power from up to 6 solar faces +2. Charges the batteries using solar input + MPPT or a USB-C passthrough for bench work +3. Exposes general 3.3v and 5v power rails + 1. Expose subsystem and circuit-specific power rails as branches of the system rails for more granular control +4. Charges up to 4 18650 battery cells configured in 2 independent packs +5. Each power rail should have a software-controllable load switch that can be toggled via software commands +6. Each power rail must have fast-response hardware-level current monitoring & load switch control +7. Maintain a high level of reliability using hardware protections like watchdog timers, fuses, TVS and ESD protections, and robust current monitoring + +# Scope and deliverables + +| Deliverable | Description | +| :---- | :---- | +| Solar face cable connection design | Design for the physical connections from solar face \-\> EPS board | +| EPS block diagram | Block diagram for the EPS hardware | +| EPS hardware schematic | Schematic for the EPS PCB | +| EPS PCB layout and manufacturing | Layout and manufacturing for the EPS PCB | +| EPS firmware design and block diagram | Preliminary design for the EPS control firmware | +| EPS firmware implementation | Implementation of the EPS firmware to control power rails and overall system power delivery | +| EPS hardware & firmware testing (throughout project) | Continuous testing plan and harness for testing EPS functionality | + +# Resources + +- [https://www.cubesat.org/cubesatinfo](https://www.cubesat.org/cubesatinfo) +- [https://github.com/rgw3d/1KCubeSat\_Hardware/tree/master/eps\_board](https://github.com/rgw3d/1KCubeSat_Hardware/tree/master/eps_board) +- [https://github.com/rgw3d/1KCubeSat\_Software/blob/main/eps/src/main.rs](https://github.com/rgw3d/1KCubeSat_Software/blob/main/eps/src/main.rs) +- [https://github.com/oresat/oresat-batteries](https://github.com/oresat/oresat-batteries) +- [https://codeberg.org/buildacubesat-project/bac-hardware](https://codeberg.org/buildacubesat-project/bac-hardware) + +# Next steps (v1r1) + +- [X] Design EPS hardware and schematics + +- [X] Design EPS firmware controller + +- [X] Implement EPS firmware functionality + +- [X] Test framework and planning + +- [X] Integration + +# Next steps (v2r1) + +- [ ] Account for all v1r1 bugs and justify all proposed changes + +- [ ] Design EPS v2 schematic + +- [ ] Design EPS v2 PCB layout + +- [ ] Implement EPS firmware functionality + +- [ ] Integration + +- [ ] Continuous testing (ongoing) + +# EPS boot flow + +# Pre-Integration + +1. EPS inhibit jumper is present, rendering the satellite electrically inert +2. EPS deployment switch is actuated, rendering the satellite electrically inert [^1] +3. OPS inhibit jumper is present, preventing OBC power rail from flowing to downstream loads even if power is enabled + +# Deployment Activation + +1. EPS jumper is removed & deployment switch is deactivated + 1. Enables solar input and battery connection + 2. EPS begins internal power sequence but keeps rails turned off +2. EPS self-check + 1. Internal regulators stabilize VBUS + 3. EPS MCU comes online + 1. Software activated rails are off, besides OBC +3. OBC inhibit jumper is removed + 1. The OBC is allowed to draw power from OBC power rail + 2. Only the core rails are enabled at this time + 1. Non-required software rails are still turned off +4. OBC procedurally enables software rails + 1. OBC after performing general checks and booting will continuously send commands to the EPS to enable software power rails + 2. EPS verifies system health before rails are latched on +5. Nominal operations + 1. EPS continuously manages power generation, battery charging, and power distribution + 2. EPS handles fault events by triggering load switches + 1. OBC should pick up on these events inadvertently given a failure to respond to heartbeat packets + +# References + +[^1]: The Cubesat Program, Cal Poly (2022). *CubeSat Design Specification Rev. 14.1*, section 2.3.2 diff --git a/eps/.gitignore b/eps/v1/.gitignore similarity index 100% rename from eps/.gitignore rename to eps/v1/.gitignore diff --git a/eps/battery_contact_l/.gitignore b/eps/v1/battery_contact_l/.gitignore similarity index 100% rename from eps/battery_contact_l/.gitignore rename to eps/v1/battery_contact_l/.gitignore diff --git a/eps/battery_contact_l/battery_contact.kicad_pcb b/eps/v1/battery_contact_l/battery_contact.kicad_pcb similarity index 100% rename from eps/battery_contact_l/battery_contact.kicad_pcb rename to eps/v1/battery_contact_l/battery_contact.kicad_pcb diff --git a/eps/battery_contact_l/battery_contact.kicad_prl b/eps/v1/battery_contact_l/battery_contact.kicad_prl similarity index 100% rename from eps/battery_contact_l/battery_contact.kicad_prl rename to eps/v1/battery_contact_l/battery_contact.kicad_prl diff --git a/eps/battery_contact_l/battery_contact.kicad_pro b/eps/v1/battery_contact_l/battery_contact.kicad_pro similarity index 100% rename from eps/battery_contact_l/battery_contact.kicad_pro rename to eps/v1/battery_contact_l/battery_contact.kicad_pro diff --git a/eps/battery_contact_l/battery_contact.kicad_sch b/eps/v1/battery_contact_l/battery_contact.kicad_sch similarity index 100% rename from eps/battery_contact_l/battery_contact.kicad_sch rename to eps/v1/battery_contact_l/battery_contact.kicad_sch diff --git a/eps/battery_contact_l/fabrication-toolkit-options.json b/eps/v1/battery_contact_l/fabrication-toolkit-options.json similarity index 100% rename from eps/battery_contact_l/fabrication-toolkit-options.json rename to eps/v1/battery_contact_l/fabrication-toolkit-options.json diff --git a/eps/battery_contact_l/footprints/BAT_FB07.kicad_mod b/eps/v1/battery_contact_l/footprints/BAT_FB07.kicad_mod similarity index 100% rename from eps/battery_contact_l/footprints/BAT_FB07.kicad_mod rename to eps/v1/battery_contact_l/footprints/BAT_FB07.kicad_mod diff --git a/eps/battery_contact_l/fp-lib-table b/eps/v1/battery_contact_l/fp-lib-table similarity index 100% rename from eps/battery_contact_l/fp-lib-table rename to eps/v1/battery_contact_l/fp-lib-table diff --git a/eps/battery_contact_l/sym-lib-table b/eps/v1/battery_contact_l/sym-lib-table similarity index 100% rename from eps/battery_contact_l/sym-lib-table rename to eps/v1/battery_contact_l/sym-lib-table diff --git a/eps/battery_contact_l/symbols/FB07.kicad_sym b/eps/v1/battery_contact_l/symbols/FB07.kicad_sym similarity index 100% rename from eps/battery_contact_l/symbols/FB07.kicad_sym rename to eps/v1/battery_contact_l/symbols/FB07.kicad_sym diff --git a/eps/battery_contact_panel/.gitignore b/eps/v1/battery_contact_panel/.gitignore similarity index 100% rename from eps/battery_contact_panel/.gitignore rename to eps/v1/battery_contact_panel/.gitignore diff --git a/eps/battery_contact_panel/battery_contact_panel.kicad_dru b/eps/v1/battery_contact_panel/battery_contact_panel.kicad_dru similarity index 100% rename from eps/battery_contact_panel/battery_contact_panel.kicad_dru rename to eps/v1/battery_contact_panel/battery_contact_panel.kicad_dru diff --git a/eps/battery_contact_panel/battery_contact_panel.kicad_pcb b/eps/v1/battery_contact_panel/battery_contact_panel.kicad_pcb similarity index 100% rename from eps/battery_contact_panel/battery_contact_panel.kicad_pcb rename to eps/v1/battery_contact_panel/battery_contact_panel.kicad_pcb diff --git a/eps/battery_contact_panel/battery_contact_panel.kicad_prl b/eps/v1/battery_contact_panel/battery_contact_panel.kicad_prl similarity index 100% rename from eps/battery_contact_panel/battery_contact_panel.kicad_prl rename to eps/v1/battery_contact_panel/battery_contact_panel.kicad_prl diff --git a/eps/battery_contact_panel/battery_contact_panel.kicad_pro b/eps/v1/battery_contact_panel/battery_contact_panel.kicad_pro similarity index 100% rename from eps/battery_contact_panel/battery_contact_panel.kicad_pro rename to eps/v1/battery_contact_panel/battery_contact_panel.kicad_pro diff --git a/eps/battery_contact_panel/fabrication-toolkit-options.json b/eps/v1/battery_contact_panel/fabrication-toolkit-options.json similarity index 100% rename from eps/battery_contact_panel/fabrication-toolkit-options.json rename to eps/v1/battery_contact_panel/fabrication-toolkit-options.json diff --git a/eps/battery_contact_panel/panel.json b/eps/v1/battery_contact_panel/panel.json similarity index 100% rename from eps/battery_contact_panel/panel.json rename to eps/v1/battery_contact_panel/panel.json diff --git a/eps/battery_contact_r/.gitignore b/eps/v1/battery_contact_r/.gitignore similarity index 100% rename from eps/battery_contact_r/.gitignore rename to eps/v1/battery_contact_r/.gitignore diff --git a/eps/battery_contact_r/battery_contact.kicad_pcb b/eps/v1/battery_contact_r/battery_contact.kicad_pcb similarity index 100% rename from eps/battery_contact_r/battery_contact.kicad_pcb rename to eps/v1/battery_contact_r/battery_contact.kicad_pcb diff --git a/eps/battery_contact_r/battery_contact.kicad_prl b/eps/v1/battery_contact_r/battery_contact.kicad_prl similarity index 100% rename from eps/battery_contact_r/battery_contact.kicad_prl rename to eps/v1/battery_contact_r/battery_contact.kicad_prl diff --git a/eps/battery_contact_r/battery_contact.kicad_pro b/eps/v1/battery_contact_r/battery_contact.kicad_pro similarity index 100% rename from eps/battery_contact_r/battery_contact.kicad_pro rename to eps/v1/battery_contact_r/battery_contact.kicad_pro diff --git a/eps/battery_contact_r/battery_contact.kicad_sch b/eps/v1/battery_contact_r/battery_contact.kicad_sch similarity index 100% rename from eps/battery_contact_r/battery_contact.kicad_sch rename to eps/v1/battery_contact_r/battery_contact.kicad_sch diff --git a/eps/battery_contact_r/fabrication-toolkit-options.json b/eps/v1/battery_contact_r/fabrication-toolkit-options.json similarity index 100% rename from eps/battery_contact_r/fabrication-toolkit-options.json rename to eps/v1/battery_contact_r/fabrication-toolkit-options.json diff --git a/eps/battery_contact_r/footprints/BAT_FB07.kicad_mod b/eps/v1/battery_contact_r/footprints/BAT_FB07.kicad_mod similarity index 100% rename from eps/battery_contact_r/footprints/BAT_FB07.kicad_mod rename to eps/v1/battery_contact_r/footprints/BAT_FB07.kicad_mod diff --git a/eps/battery_contact_r/fp-lib-table b/eps/v1/battery_contact_r/fp-lib-table similarity index 100% rename from eps/battery_contact_r/fp-lib-table rename to eps/v1/battery_contact_r/fp-lib-table diff --git a/eps/battery_contact_r/sym-lib-table b/eps/v1/battery_contact_r/sym-lib-table similarity index 100% rename from eps/battery_contact_r/sym-lib-table rename to eps/v1/battery_contact_r/sym-lib-table diff --git a/eps/battery_contact_r/symbols/FB07.kicad_sym b/eps/v1/battery_contact_r/symbols/FB07.kicad_sym similarity index 100% rename from eps/battery_contact_r/symbols/FB07.kicad_sym rename to eps/v1/battery_contact_r/symbols/FB07.kicad_sym diff --git a/eps/v1/documentation/datasheets/74LVC1G07.pdf b/eps/v1/documentation/datasheets/74LVC1G07.pdf new file mode 100644 index 0000000..2cd9e7c Binary files /dev/null and b/eps/v1/documentation/datasheets/74LVC1G07.pdf differ diff --git a/eps/v1/documentation/datasheets/LTC3130.pdf b/eps/v1/documentation/datasheets/LTC3130.pdf new file mode 100644 index 0000000..2f15e82 Binary files /dev/null and b/eps/v1/documentation/datasheets/LTC3130.pdf differ diff --git a/eps/v1/documentation/datasheets/LTC4162-L.pdf b/eps/v1/documentation/datasheets/LTC4162-L.pdf new file mode 100644 index 0000000..1012311 Binary files /dev/null and b/eps/v1/documentation/datasheets/LTC4162-L.pdf differ diff --git a/eps/v1/documentation/datasheets/LTC4415.pdf b/eps/v1/documentation/datasheets/LTC4415.pdf new file mode 100644 index 0000000..d7f3a4e Binary files /dev/null and b/eps/v1/documentation/datasheets/LTC4415.pdf differ diff --git a/eps/v1/documentation/datasheets/MAX6369.pdf b/eps/v1/documentation/datasheets/MAX6369.pdf new file mode 100644 index 0000000..bd9dcfa Binary files /dev/null and b/eps/v1/documentation/datasheets/MAX6369.pdf differ diff --git a/eps/v1/documentation/datasheets/MCP65R46.pdf b/eps/v1/documentation/datasheets/MCP65R46.pdf new file mode 100644 index 0000000..0ee6151 Binary files /dev/null and b/eps/v1/documentation/datasheets/MCP65R46.pdf differ diff --git a/eps/v1/documentation/datasheets/MP28167GQ-A.pdf b/eps/v1/documentation/datasheets/MP28167GQ-A.pdf new file mode 100644 index 0000000..1a757df Binary files /dev/null and b/eps/v1/documentation/datasheets/MP28167GQ-A.pdf differ diff --git a/eps/v1/documentation/datasheets/NCS210R-D.PDF b/eps/v1/documentation/datasheets/NCS210R-D.PDF new file mode 100644 index 0000000..656f76c Binary files /dev/null and b/eps/v1/documentation/datasheets/NCS210R-D.PDF differ diff --git a/eps/v1/documentation/datasheets/SN65HVD230.pdf b/eps/v1/documentation/datasheets/SN65HVD230.pdf new file mode 100644 index 0000000..c930031 Binary files /dev/null and b/eps/v1/documentation/datasheets/SN65HVD230.pdf differ diff --git a/eps/v1/documentation/datasheets/STM32L496ZGT.pdf b/eps/v1/documentation/datasheets/STM32L496ZGT.pdf new file mode 100644 index 0000000..2d01b54 Binary files /dev/null and b/eps/v1/documentation/datasheets/STM32L496ZGT.pdf differ diff --git a/eps/v1/documentation/datasheets/TPS22810DRV.pdf b/eps/v1/documentation/datasheets/TPS22810DRV.pdf new file mode 100644 index 0000000..65c46f8 Binary files /dev/null and b/eps/v1/documentation/datasheets/TPS22810DRV.pdf differ diff --git a/eps/v1/documentation/design_reviews/EPS Design Review - Problems.csv b/eps/v1/documentation/design_reviews/EPS Design Review - Problems.csv new file mode 100644 index 0000000..e87f42c --- /dev/null +++ b/eps/v1/documentation/design_reviews/EPS Design Review - Problems.csv @@ -0,0 +1,1015 @@ +Problem,Description,Proposed Solution,Implemented Solution,Resolved,Notes,Identified By +Watchdog configuration,The watchdog pins are floating on boot,Add pullups/pulldowns,Added pullups,TRUE,,Max Leibowitz +SWTRACE not connected,SWO/SWTRACE isn't connected on the debug header,Connect it if you've got room,,TRUE,,Max Leibowitz +Reset could trigger in flight,Acceleration or vibration could push the reset button,Add a removable series jumper,,TRUE,,Max Leibowitz +Very thin wires in MPPT,The SW1 and SW2 lines on the LTC3130 are very thin until they get to the boot capacitors,Extend the pour downwards,Pours,TRUE,,Max Leibowitz +Thin pour on battery charger 0,The SW1 pour narrows to 0.3mm wide,Change the pour geometry,Expanded vertical height,TRUE,,Max Leibowitz +Thin SW1 and SW2 pours on 3.3V regulator,SW2 narrows to about the width of the pad,Change the pour geometry,Redrew pours,TRUE,,Max Leibowitz +Gap in SW1 and SW2 pours on 5V regulator,SW1 and SW2 don't connect properly to the pins,Figure out why it's doing that,Redrew pours,TRUE,,Max Leibowitz +STAT1 and STAT2 aren't connected,Both power path ideal diodes don't have STAT1 or STAT2 connected to the pin,Connect it or get rid of it,Got rid of it,TRUE,,Max Leibowitz +Some 100 nF capacitors are listed as 0.1 uF,,Change them,Changed to 100n,TRUE,,Max Leibowitz +USB data isn't connected,"Not an issue exactly, but your MCU has USB, you may as well",,"Didn't connect, just flashing over SWD",TRUE,,Max Leibowitz +Could reinforce vias by adding teardrops,Not an issue but adds mechanical strength to via-trace connections,Pretty easy to add teardrops in kicad,Didn't,TRUE,,Nicholas Alves +DRC spacing errors,,Fix them,,TRUE,,Max Leibowitz +Extra items in layout,"Check test for parity between PCB and schematic in DRC, there's 10 extra footprints",Remove them? Re-add to schematic?,Removed,TRUE,,Max Leibowitz +Q1 and Q3 orientation,"I would check the orientation of Q1 and Q3 in the battery charger schematics, looks flipped relative to what the datasheet shows.",Flip Q1 and Q3 if its an issue,"Confirmed the pinout, it's correct",TRUE,,Nicholas Alves +VBUS trace,Is there a reason VBUS is routed that way between A4 and A9? Just interesting how it goes so thin and then thick and then thing again.,,Changed to 0.2mm,TRUE,,Nicholas Alves +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, +,,,,FALSE,, \ No newline at end of file diff --git a/eps/documentation/v1r1_bugs.md b/eps/v1/documentation/design_reviews/v1r1_bugs.md similarity index 100% rename from eps/documentation/v1r1_bugs.md rename to eps/v1/documentation/design_reviews/v1r1_bugs.md diff --git a/eps/documentation/doxygen/Doxyfile b/eps/v1/documentation/doxygen/Doxyfile similarity index 100% rename from eps/documentation/doxygen/Doxyfile rename to eps/v1/documentation/doxygen/Doxyfile diff --git a/eps/v1/documentation/guides/an4555-getting-started-with-stm32l4-series-and-stm32l4-series-hardware-development-stmicroelectronics-5.pdf b/eps/v1/documentation/guides/an4555-getting-started-with-stm32l4-series-and-stm32l4-series-hardware-development-stmicroelectronics-5.pdf new file mode 100644 index 0000000..e7aa330 Binary files /dev/null and b/eps/v1/documentation/guides/an4555-getting-started-with-stm32l4-series-and-stm32l4-series-hardware-development-stmicroelectronics-5.pdf differ diff --git a/eps/documentation/EPS Block Diagram.excalidraw.png b/eps/v1/documentation/spec/EPS Block Diagram.excalidraw.png similarity index 100% rename from eps/documentation/EPS Block Diagram.excalidraw.png rename to eps/v1/documentation/spec/EPS Block Diagram.excalidraw.png diff --git a/eps/documentation/EPS Project Kickoff.md b/eps/v1/documentation/spec/EPS Project Kickoff.md similarity index 100% rename from eps/documentation/EPS Project Kickoff.md rename to eps/v1/documentation/spec/EPS Project Kickoff.md diff --git a/eps/documentation/sphinx/Makefile b/eps/v1/documentation/sphinx/Makefile similarity index 100% rename from eps/documentation/sphinx/Makefile rename to eps/v1/documentation/sphinx/Makefile diff --git a/eps/documentation/sphinx/make.bat b/eps/v1/documentation/sphinx/make.bat similarity index 95% rename from eps/documentation/sphinx/make.bat rename to eps/v1/documentation/sphinx/make.bat index 747ffb7..dc1312a 100644 --- a/eps/documentation/sphinx/make.bat +++ b/eps/v1/documentation/sphinx/make.bat @@ -1,35 +1,35 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=source -set BUILDDIR=build - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.https://www.sphinx-doc.org/ - exit /b 1 -) - -if "%1" == "" goto help - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/eps/documentation/sphinx/requirements.txt b/eps/v1/documentation/sphinx/requirements.txt similarity index 100% rename from eps/documentation/sphinx/requirements.txt rename to eps/v1/documentation/sphinx/requirements.txt diff --git a/eps/documentation/sphinx/source/applications/command_handler.rst b/eps/v1/documentation/sphinx/source/applications/command_handler.rst similarity index 100% rename from eps/documentation/sphinx/source/applications/command_handler.rst rename to eps/v1/documentation/sphinx/source/applications/command_handler.rst diff --git a/eps/documentation/sphinx/source/applications/events.rst b/eps/v1/documentation/sphinx/source/applications/events.rst similarity index 100% rename from eps/documentation/sphinx/source/applications/events.rst rename to eps/v1/documentation/sphinx/source/applications/events.rst diff --git a/eps/documentation/sphinx/source/applications/power_policies.rst b/eps/v1/documentation/sphinx/source/applications/power_policies.rst similarity index 100% rename from eps/documentation/sphinx/source/applications/power_policies.rst rename to eps/v1/documentation/sphinx/source/applications/power_policies.rst diff --git a/eps/documentation/sphinx/source/conf.py b/eps/v1/documentation/sphinx/source/conf.py similarity index 100% rename from eps/documentation/sphinx/source/conf.py rename to eps/v1/documentation/sphinx/source/conf.py diff --git a/eps/documentation/sphinx/source/index.rst b/eps/v1/documentation/sphinx/source/index.rst similarity index 100% rename from eps/documentation/sphinx/source/index.rst rename to eps/v1/documentation/sphinx/source/index.rst diff --git a/eps/documentation/sphinx/source/services/battery_management.rst b/eps/v1/documentation/sphinx/source/services/battery_management.rst similarity index 100% rename from eps/documentation/sphinx/source/services/battery_management.rst rename to eps/v1/documentation/sphinx/source/services/battery_management.rst diff --git a/eps/documentation/sphinx/source/services/logging.rst b/eps/v1/documentation/sphinx/source/services/logging.rst similarity index 100% rename from eps/documentation/sphinx/source/services/logging.rst rename to eps/v1/documentation/sphinx/source/services/logging.rst diff --git a/eps/documentation/sphinx/source/services/mppt_controller.rst b/eps/v1/documentation/sphinx/source/services/mppt_controller.rst similarity index 100% rename from eps/documentation/sphinx/source/services/mppt_controller.rst rename to eps/v1/documentation/sphinx/source/services/mppt_controller.rst diff --git a/eps/documentation/sphinx/source/services/power_profiles.rst b/eps/v1/documentation/sphinx/source/services/power_profiles.rst similarity index 100% rename from eps/documentation/sphinx/source/services/power_profiles.rst rename to eps/v1/documentation/sphinx/source/services/power_profiles.rst diff --git a/eps/documentation/sphinx/source/services/rail_controller.rst b/eps/v1/documentation/sphinx/source/services/rail_controller.rst similarity index 100% rename from eps/documentation/sphinx/source/services/rail_controller.rst rename to eps/v1/documentation/sphinx/source/services/rail_controller.rst diff --git a/eps/documentation/sphinx/source/services/redundancy_manager.rst b/eps/v1/documentation/sphinx/source/services/redundancy_manager.rst similarity index 100% rename from eps/documentation/sphinx/source/services/redundancy_manager.rst rename to eps/v1/documentation/sphinx/source/services/redundancy_manager.rst diff --git a/eps/documentation/sphinx/source/services/telemetry.rst b/eps/v1/documentation/sphinx/source/services/telemetry.rst similarity index 100% rename from eps/documentation/sphinx/source/services/telemetry.rst rename to eps/v1/documentation/sphinx/source/services/telemetry.rst diff --git a/eps/documentation/sphinx/source/services/uart_events.rst b/eps/v1/documentation/sphinx/source/services/uart_events.rst similarity index 100% rename from eps/documentation/sphinx/source/services/uart_events.rst rename to eps/v1/documentation/sphinx/source/services/uart_events.rst diff --git a/eps/documentation/sphinx/source/services/watchdog.rst b/eps/v1/documentation/sphinx/source/services/watchdog.rst similarity index 100% rename from eps/documentation/sphinx/source/services/watchdog.rst rename to eps/v1/documentation/sphinx/source/services/watchdog.rst diff --git a/eps/firmware/.clang-format b/eps/v1/firmware/.clang-format similarity index 100% rename from eps/firmware/.clang-format rename to eps/v1/firmware/.clang-format diff --git a/eps/firmware/.gitignore b/eps/v1/firmware/.gitignore similarity index 100% rename from eps/firmware/.gitignore rename to eps/v1/firmware/.gitignore diff --git a/eps/firmware/CMakeLists.txt b/eps/v1/firmware/CMakeLists.txt similarity index 100% rename from eps/firmware/CMakeLists.txt rename to eps/v1/firmware/CMakeLists.txt diff --git a/eps/firmware/README.md b/eps/v1/firmware/README.md similarity index 100% rename from eps/firmware/README.md rename to eps/v1/firmware/README.md diff --git a/eps/firmware/app/command_handler.c b/eps/v1/firmware/app/command_handler.c similarity index 100% rename from eps/firmware/app/command_handler.c rename to eps/v1/firmware/app/command_handler.c diff --git a/eps/firmware/app/command_handler.h b/eps/v1/firmware/app/command_handler.h similarity index 100% rename from eps/firmware/app/command_handler.h rename to eps/v1/firmware/app/command_handler.h diff --git a/eps/firmware/app/events.h b/eps/v1/firmware/app/events.h similarity index 100% rename from eps/firmware/app/events.h rename to eps/v1/firmware/app/events.h diff --git a/eps/firmware/app/power_policies.c b/eps/v1/firmware/app/power_policies.c similarity index 100% rename from eps/firmware/app/power_policies.c rename to eps/v1/firmware/app/power_policies.c diff --git a/eps/firmware/app/power_policies.h b/eps/v1/firmware/app/power_policies.h similarity index 100% rename from eps/firmware/app/power_policies.h rename to eps/v1/firmware/app/power_policies.h diff --git a/eps/firmware/arm-none-eabi-toolchain.cmake b/eps/v1/firmware/arm-none-eabi-toolchain.cmake similarity index 100% rename from eps/firmware/arm-none-eabi-toolchain.cmake rename to eps/v1/firmware/arm-none-eabi-toolchain.cmake diff --git a/eps/firmware/bootstrap/.mxproject b/eps/v1/firmware/bootstrap/.mxproject similarity index 99% rename from eps/firmware/bootstrap/.mxproject rename to eps/v1/firmware/bootstrap/.mxproject index ff39c2f..aee6823 100644 --- a/eps/firmware/bootstrap/.mxproject +++ b/eps/v1/firmware/bootstrap/.mxproject @@ -1,39 +1,39 @@ -[PreviousLibFiles] -LibFiles=Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_adc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_iwdg.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_iwdg.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_adc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_iwdg.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_iwdg.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l496xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm35p.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_armv81mml.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/cmsis_armclang_ltm.h; - -[PreviousUsedMakefileFiles] -SourceFiles=Core/Src/main.c;Core/Src/gpio.c;Core/Src/adc.c;Core/Src/dma.c;Core/Src/i2c.c;Core/Src/iwdg.c;Core/Src/tim.c;Core/Src/usart.c;Core/Src/stm32l4xx_it.c;Core/Src/stm32l4xx_hal_msp.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Core/Src/system_stm32l4xx.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Core/Src/system_stm32l4xx.c;;; -HeaderPath=Drivers/STM32L4xx_HAL_Driver/Inc;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy;Drivers/CMSIS/Device/ST/STM32L4xx/Include;Drivers/CMSIS/Include;Core/Inc; -CDefines=USE_HAL_DRIVER;STM32L496xx;USE_HAL_DRIVER;USE_HAL_DRIVER; - -[PreviousGenFiles] -AdvancedFolderStructure=true -HeaderFileListSize=10 -HeaderFiles#0=../Core/Inc/gpio.h -HeaderFiles#1=../Core/Inc/adc.h -HeaderFiles#2=../Core/Inc/dma.h -HeaderFiles#3=../Core/Inc/i2c.h -HeaderFiles#4=../Core/Inc/iwdg.h -HeaderFiles#5=../Core/Inc/tim.h -HeaderFiles#6=../Core/Inc/usart.h -HeaderFiles#7=../Core/Inc/stm32l4xx_it.h -HeaderFiles#8=../Core/Inc/stm32l4xx_hal_conf.h -HeaderFiles#9=../Core/Inc/main.h -HeaderFolderListSize=1 -HeaderPath#0=../Core/Inc -HeaderFiles=; -SourceFileListSize=10 -SourceFiles#0=../Core/Src/gpio.c -SourceFiles#1=../Core/Src/adc.c -SourceFiles#2=../Core/Src/dma.c -SourceFiles#3=../Core/Src/i2c.c -SourceFiles#4=../Core/Src/iwdg.c -SourceFiles#5=../Core/Src/tim.c -SourceFiles#6=../Core/Src/usart.c -SourceFiles#7=../Core/Src/stm32l4xx_it.c -SourceFiles#8=../Core/Src/stm32l4xx_hal_msp.c -SourceFiles#9=../Core/Src/main.c -SourceFolderListSize=1 -SourcePath#0=../Core/Src -SourceFiles=; - +[PreviousLibFiles] +LibFiles=Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_adc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_iwdg.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_iwdg.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_adc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_iwdg.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_iwdg.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l496xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm35p.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_armv81mml.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/cmsis_armclang_ltm.h; + +[PreviousUsedMakefileFiles] +SourceFiles=Core/Src/main.c;Core/Src/gpio.c;Core/Src/adc.c;Core/Src/dma.c;Core/Src/i2c.c;Core/Src/iwdg.c;Core/Src/tim.c;Core/Src/usart.c;Core/Src/stm32l4xx_it.c;Core/Src/stm32l4xx_hal_msp.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Core/Src/system_stm32l4xx.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Core/Src/system_stm32l4xx.c;;; +HeaderPath=Drivers/STM32L4xx_HAL_Driver/Inc;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy;Drivers/CMSIS/Device/ST/STM32L4xx/Include;Drivers/CMSIS/Include;Core/Inc; +CDefines=USE_HAL_DRIVER;STM32L496xx;USE_HAL_DRIVER;USE_HAL_DRIVER; + +[PreviousGenFiles] +AdvancedFolderStructure=true +HeaderFileListSize=10 +HeaderFiles#0=../Core/Inc/gpio.h +HeaderFiles#1=../Core/Inc/adc.h +HeaderFiles#2=../Core/Inc/dma.h +HeaderFiles#3=../Core/Inc/i2c.h +HeaderFiles#4=../Core/Inc/iwdg.h +HeaderFiles#5=../Core/Inc/tim.h +HeaderFiles#6=../Core/Inc/usart.h +HeaderFiles#7=../Core/Inc/stm32l4xx_it.h +HeaderFiles#8=../Core/Inc/stm32l4xx_hal_conf.h +HeaderFiles#9=../Core/Inc/main.h +HeaderFolderListSize=1 +HeaderPath#0=../Core/Inc +HeaderFiles=; +SourceFileListSize=10 +SourceFiles#0=../Core/Src/gpio.c +SourceFiles#1=../Core/Src/adc.c +SourceFiles#2=../Core/Src/dma.c +SourceFiles#3=../Core/Src/i2c.c +SourceFiles#4=../Core/Src/iwdg.c +SourceFiles#5=../Core/Src/tim.c +SourceFiles#6=../Core/Src/usart.c +SourceFiles#7=../Core/Src/stm32l4xx_it.c +SourceFiles#8=../Core/Src/stm32l4xx_hal_msp.c +SourceFiles#9=../Core/Src/main.c +SourceFolderListSize=1 +SourcePath#0=../Core/Src +SourceFiles=; + diff --git a/eps/firmware/bootstrap/Core/Inc/adc.h b/eps/v1/firmware/bootstrap/Core/Inc/adc.h similarity index 96% rename from eps/firmware/bootstrap/Core/Inc/adc.h rename to eps/v1/firmware/bootstrap/Core/Inc/adc.h index 797598d..1947cd0 100644 --- a/eps/firmware/bootstrap/Core/Inc/adc.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/adc.h @@ -1,52 +1,52 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file adc.h - * @brief This file contains all the function prototypes for - * the adc.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __ADC_H__ -#define __ADC_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern ADC_HandleTypeDef hadc2; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_ADC2_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ADC_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file adc.h + * @brief This file contains all the function prototypes for + * the adc.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __ADC_H__ +#define __ADC_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern ADC_HandleTypeDef hadc2; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_ADC2_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ADC_H__ */ + diff --git a/eps/firmware/bsp/mcu/Inc/dma.h b/eps/v1/firmware/bootstrap/Core/Inc/dma.h similarity index 96% rename from eps/firmware/bsp/mcu/Inc/dma.h rename to eps/v1/firmware/bootstrap/Core/Inc/dma.h index cbf3957..afad30d 100644 --- a/eps/firmware/bsp/mcu/Inc/dma.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/dma.h @@ -1,52 +1,52 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file dma.h - * @brief This file contains all the function prototypes for - * the dma.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __DMA_H__ -#define __DMA_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* DMA memory to memory transfer handles -------------------------------------*/ - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_DMA_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __DMA_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.h + * @brief This file contains all the function prototypes for + * the dma.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __DMA_H__ +#define __DMA_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* DMA memory to memory transfer handles -------------------------------------*/ + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_DMA_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __DMA_H__ */ + diff --git a/eps/firmware/bsp/mcu/Inc/gpio.h b/eps/v1/firmware/bootstrap/Core/Inc/gpio.h similarity index 96% rename from eps/firmware/bsp/mcu/Inc/gpio.h rename to eps/v1/firmware/bootstrap/Core/Inc/gpio.h index 1204b1d..3c91c4d 100644 --- a/eps/firmware/bsp/mcu/Inc/gpio.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/gpio.h @@ -1,49 +1,49 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file gpio.h - * @brief This file contains all the function prototypes for - * the gpio.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __GPIO_H__ -#define __GPIO_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_GPIO_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif -#endif /*__ GPIO_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file gpio.h + * @brief This file contains all the function prototypes for + * the gpio.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __GPIO_H__ +#define __GPIO_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_GPIO_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif +#endif /*__ GPIO_H__ */ + diff --git a/eps/firmware/bsp/mcu/Inc/i2c.h b/eps/v1/firmware/bootstrap/Core/Inc/i2c.h similarity index 96% rename from eps/firmware/bsp/mcu/Inc/i2c.h rename to eps/v1/firmware/bootstrap/Core/Inc/i2c.h index b56d4be..e543037 100644 --- a/eps/firmware/bsp/mcu/Inc/i2c.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/i2c.h @@ -1,61 +1,61 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file i2c.h - * @brief This file contains all the function prototypes for - * the i2c.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __I2C_H__ -#define __I2C_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern I2C_HandleTypeDef hi2c1; - -extern I2C_HandleTypeDef hi2c2; - -extern I2C_HandleTypeDef hi2c3; - -extern I2C_HandleTypeDef hi2c4; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_I2C1_Init(void); -void MX_I2C2_Init(void); -void MX_I2C3_Init(void); -void MX_I2C4_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __I2C_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file i2c.h + * @brief This file contains all the function prototypes for + * the i2c.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __I2C_H__ +#define __I2C_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern I2C_HandleTypeDef hi2c1; + +extern I2C_HandleTypeDef hi2c2; + +extern I2C_HandleTypeDef hi2c3; + +extern I2C_HandleTypeDef hi2c4; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_I2C1_Init(void); +void MX_I2C2_Init(void); +void MX_I2C3_Init(void); +void MX_I2C4_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __I2C_H__ */ + diff --git a/eps/firmware/bsp/mcu/Inc/iwdg.h b/eps/v1/firmware/bootstrap/Core/Inc/iwdg.h similarity index 96% rename from eps/firmware/bsp/mcu/Inc/iwdg.h rename to eps/v1/firmware/bootstrap/Core/Inc/iwdg.h index 94c0595..474e114 100644 --- a/eps/firmware/bsp/mcu/Inc/iwdg.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/iwdg.h @@ -1,52 +1,52 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file iwdg.h - * @brief This file contains all the function prototypes for - * the iwdg.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __IWDG_H__ -#define __IWDG_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern IWDG_HandleTypeDef hiwdg; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_IWDG_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __IWDG_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file iwdg.h + * @brief This file contains all the function prototypes for + * the iwdg.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __IWDG_H__ +#define __IWDG_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern IWDG_HandleTypeDef hiwdg; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_IWDG_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IWDG_H__ */ + diff --git a/eps/firmware/bootstrap/Core/Inc/main.h b/eps/v1/firmware/bootstrap/Core/Inc/main.h similarity index 96% rename from eps/firmware/bootstrap/Core/Inc/main.h rename to eps/v1/firmware/bootstrap/Core/Inc/main.h index 852965c..08fe599 100644 --- a/eps/firmware/bootstrap/Core/Inc/main.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/main.h @@ -1,69 +1,69 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file : main.h - * @brief : Header for main.c file. - * This file contains the common defines of the application. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __MAIN_H -#define __MAIN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32l4xx_hal.h" - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* Exported types ------------------------------------------------------------*/ -/* USER CODE BEGIN ET */ - -/* USER CODE END ET */ - -/* Exported constants --------------------------------------------------------*/ -/* USER CODE BEGIN EC */ - -/* USER CODE END EC */ - -/* Exported macro ------------------------------------------------------------*/ -/* USER CODE BEGIN EM */ - -/* USER CODE END EM */ - -/* Exported functions prototypes ---------------------------------------------*/ -void Error_Handler(void); - -/* USER CODE BEGIN EFP */ - -/* USER CODE END EFP */ - -/* Private defines -----------------------------------------------------------*/ - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -#ifdef __cplusplus -} -#endif - -#endif /* __MAIN_H */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l4xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ diff --git a/eps/firmware/bootstrap/Core/Inc/stm32l4xx_hal_conf.h b/eps/v1/firmware/bootstrap/Core/Inc/stm32l4xx_hal_conf.h similarity index 97% rename from eps/firmware/bootstrap/Core/Inc/stm32l4xx_hal_conf.h rename to eps/v1/firmware/bootstrap/Core/Inc/stm32l4xx_hal_conf.h index 50fef43..6bb9e75 100644 --- a/eps/firmware/bootstrap/Core/Inc/stm32l4xx_hal_conf.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/stm32l4xx_hal_conf.h @@ -1,482 +1,482 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file stm32l4xx_hal_conf.h - * @author MCD Application Team - * @brief HAL configuration template file. - * This file should be copied to the application folder and renamed - * to stm32l4xx_hal_conf.h. - ****************************************************************************** - * @attention - * - * Copyright (c) 2017 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef STM32L4xx_HAL_CONF_H -#define STM32L4xx_HAL_CONF_H - -#ifdef __cplusplus - extern "C" { -#endif - -/* Exported types ------------------------------------------------------------*/ -/* Exported constants --------------------------------------------------------*/ - -/* ########################## Module Selection ############################## */ -/** - * @brief This is the list of modules to be used in the HAL driver - */ -#define HAL_MODULE_ENABLED -#define HAL_ADC_MODULE_ENABLED -/*#define HAL_CRYP_MODULE_ENABLED */ -/*#define HAL_CAN_MODULE_ENABLED */ -/*#define HAL_COMP_MODULE_ENABLED */ -#define HAL_I2C_MODULE_ENABLED -/*#define HAL_CRC_MODULE_ENABLED */ -/*#define HAL_CRYP_MODULE_ENABLED */ -/*#define HAL_DAC_MODULE_ENABLED */ -/*#define HAL_DCMI_MODULE_ENABLED */ -/*#define HAL_DMA2D_MODULE_ENABLED */ -/*#define HAL_DFSDM_MODULE_ENABLED */ -/*#define HAL_DSI_MODULE_ENABLED */ -/*#define HAL_FIREWALL_MODULE_ENABLED */ -/*#define HAL_GFXMMU_MODULE_ENABLED */ -/*#define HAL_HCD_MODULE_ENABLED */ -/*#define HAL_HASH_MODULE_ENABLED */ -/*#define HAL_I2S_MODULE_ENABLED */ -/*#define HAL_IRDA_MODULE_ENABLED */ -#define HAL_IWDG_MODULE_ENABLED -/*#define HAL_LTDC_MODULE_ENABLED */ -/*#define HAL_LCD_MODULE_ENABLED */ -/*#define HAL_LPTIM_MODULE_ENABLED */ -/*#define HAL_MMC_MODULE_ENABLED */ -/*#define HAL_NAND_MODULE_ENABLED */ -/*#define HAL_NOR_MODULE_ENABLED */ -/*#define HAL_OPAMP_MODULE_ENABLED */ -/*#define HAL_OSPI_MODULE_ENABLED */ -/*#define HAL_OSPI_MODULE_ENABLED */ -/*#define HAL_PCD_MODULE_ENABLED */ -/*#define HAL_PKA_MODULE_ENABLED */ -/*#define HAL_QSPI_MODULE_ENABLED */ -/*#define HAL_QSPI_MODULE_ENABLED */ -/*#define HAL_RNG_MODULE_ENABLED */ -/*#define HAL_RTC_MODULE_ENABLED */ -/*#define HAL_SAI_MODULE_ENABLED */ -/*#define HAL_SD_MODULE_ENABLED */ -/*#define HAL_SMBUS_MODULE_ENABLED */ -/*#define HAL_SMARTCARD_MODULE_ENABLED */ -/*#define HAL_SPI_MODULE_ENABLED */ -/*#define HAL_SRAM_MODULE_ENABLED */ -/*#define HAL_SWPMI_MODULE_ENABLED */ -#define HAL_TIM_MODULE_ENABLED -/*#define HAL_TSC_MODULE_ENABLED */ -#define HAL_UART_MODULE_ENABLED -/*#define HAL_USART_MODULE_ENABLED */ -/*#define HAL_WWDG_MODULE_ENABLED */ -/*#define HAL_EXTI_MODULE_ENABLED */ -/*#define HAL_PSSI_MODULE_ENABLED */ -#define HAL_GPIO_MODULE_ENABLED -#define HAL_EXTI_MODULE_ENABLED -#define HAL_DMA_MODULE_ENABLED -#define HAL_RCC_MODULE_ENABLED -#define HAL_FLASH_MODULE_ENABLED -#define HAL_PWR_MODULE_ENABLED -#define HAL_CORTEX_MODULE_ENABLED - -/* ########################## Oscillator Values adaptation ####################*/ -/** - * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. - * This value is used by the RCC HAL module to compute the system frequency - * (when HSE is used as system clock source, directly or through the PLL). - */ -#if !defined (HSE_VALUE) - #define HSE_VALUE ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */ -#endif /* HSE_VALUE */ - -#if !defined (HSE_STARTUP_TIMEOUT) - #define HSE_STARTUP_TIMEOUT ((uint32_t)100U) /*!< Time out for HSE start up, in ms */ -#endif /* HSE_STARTUP_TIMEOUT */ - -/** - * @brief Internal Multiple Speed oscillator (MSI) default value. - * This value is the default MSI range value after Reset. - */ -#if !defined (MSI_VALUE) - #define MSI_VALUE ((uint32_t)4000000U) /*!< Value of the Internal oscillator in Hz*/ -#endif /* MSI_VALUE */ -/** - * @brief Internal High Speed oscillator (HSI) value. - * This value is used by the RCC HAL module to compute the system frequency - * (when HSI is used as system clock source, directly or through the PLL). - */ -#if !defined (HSI_VALUE) - #define HSI_VALUE ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/ -#endif /* HSI_VALUE */ - -/** - * @brief Internal High Speed oscillator (HSI48) value for USB FS, SDMMC and RNG. - * This internal oscillator is mainly dedicated to provide a high precision clock to - * the USB peripheral by means of a special Clock Recovery System (CRS) circuitry. - * When the CRS is not used, the HSI48 RC oscillator runs on it default frequency - * which is subject to manufacturing process variations. - */ -#if !defined (HSI48_VALUE) - #define HSI48_VALUE ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz. - The real value my vary depending on manufacturing process variations.*/ -#endif /* HSI48_VALUE */ - -/** - * @brief Internal Low Speed oscillator (LSI) value. - */ -#if !defined (LSI_VALUE) - #define LSI_VALUE 32000U /*!< LSI Typical Value in Hz*/ -#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz - The real value may vary depending on the variations - in voltage and temperature.*/ - -/** - * @brief External Low Speed oscillator (LSE) value. - * This value is used by the UART, RTC HAL module to compute the system frequency - */ -#if !defined (LSE_VALUE) - #define LSE_VALUE 32768U /*!< Value of the External oscillator in Hz*/ -#endif /* LSE_VALUE */ - -#if !defined (LSE_STARTUP_TIMEOUT) - #define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */ -#endif /* HSE_STARTUP_TIMEOUT */ - -/** - * @brief External clock source for SAI1 peripheral - * This value is used by the RCC HAL module to compute the SAI1 & SAI2 clock source - * frequency. - */ -#if !defined (EXTERNAL_SAI1_CLOCK_VALUE) - #define EXTERNAL_SAI1_CLOCK_VALUE 2097000U /*!< Value of the SAI1 External clock source in Hz*/ -#endif /* EXTERNAL_SAI1_CLOCK_VALUE */ - -/** - * @brief External clock source for SAI2 peripheral - * This value is used by the RCC HAL module to compute the SAI1 & SAI2 clock source - * frequency. - */ -#if !defined (EXTERNAL_SAI2_CLOCK_VALUE) - #define EXTERNAL_SAI2_CLOCK_VALUE 2097000U /*!< Value of the SAI2 External clock source in Hz*/ -#endif /* EXTERNAL_SAI2_CLOCK_VALUE */ - -/* Tip: To avoid modifying this file each time you need to use different HSE, - === you can define the HSE value in your toolchain compiler preprocessor. */ - -/* ########################### System Configuration ######################### */ -/** - * @brief This is the HAL system configuration section - */ - -#define VDD_VALUE 3300U /*!< Value of VDD in mv */ -#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority */ -#define USE_RTOS 0U -#define PREFETCH_ENABLE 0U -#define INSTRUCTION_CACHE_ENABLE 1U -#define DATA_CACHE_ENABLE 1U - -/* ########################## Assert Selection ############################## */ -/** - * @brief Uncomment the line below to expanse the "assert_param" macro in the - * HAL drivers code - */ -/* #define USE_FULL_ASSERT 1U */ - -/* ################## Register callback feature configuration ############### */ -/** - * @brief Set below the peripheral configuration to "1U" to add the support - * of HAL callback registration/deregistration feature for the HAL - * driver(s). This allows user application to provide specific callback - * functions thanks to HAL_PPP_RegisterCallback() rather than overwriting - * the default weak callback functions (see each stm32l4xx_hal_ppp.h file - * for possible callback identifiers defined in HAL_PPP_CallbackIDTypeDef - * for each PPP peripheral). - */ -#define USE_HAL_ADC_REGISTER_CALLBACKS 0U -#define USE_HAL_CAN_REGISTER_CALLBACKS 0U -#define USE_HAL_COMP_REGISTER_CALLBACKS 0U -#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U -#define USE_HAL_DAC_REGISTER_CALLBACKS 0U -#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U -#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U -#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U -#define USE_HAL_DSI_REGISTER_CALLBACKS 0U -#define USE_HAL_GFXMMU_REGISTER_CALLBACKS 0U -#define USE_HAL_HASH_REGISTER_CALLBACKS 0U -#define USE_HAL_HCD_REGISTER_CALLBACKS 0U -#define USE_HAL_I2C_REGISTER_CALLBACKS 0U -#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U -#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U -#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U -#define USE_HAL_MMC_REGISTER_CALLBACKS 0U -#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U -#define USE_HAL_OSPI_REGISTER_CALLBACKS 0U -#define USE_HAL_PCD_REGISTER_CALLBACKS 0U -#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U -#define USE_HAL_RNG_REGISTER_CALLBACKS 0U -#define USE_HAL_RTC_REGISTER_CALLBACKS 0U -#define USE_HAL_SAI_REGISTER_CALLBACKS 0U -#define USE_HAL_SD_REGISTER_CALLBACKS 0U -#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U -#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U -#define USE_HAL_SPI_REGISTER_CALLBACKS 0U -#define USE_HAL_SWPMI_REGISTER_CALLBACKS 0U -#define USE_HAL_TIM_REGISTER_CALLBACKS 0U -#define USE_HAL_TSC_REGISTER_CALLBACKS 0U -#define USE_HAL_UART_REGISTER_CALLBACKS 0U -#define USE_HAL_USART_REGISTER_CALLBACKS 0U -#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U - -/* ################## SPI peripheral configuration ########################## */ - -/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver - * Activated: CRC code is present inside driver - * Deactivated: CRC code cleaned from driver - */ - -#define USE_SPI_CRC 0U - -/* Includes ------------------------------------------------------------------*/ -/** - * @brief Include module's header file - */ - -#ifdef HAL_RCC_MODULE_ENABLED - #include "stm32l4xx_hal_rcc.h" -#endif /* HAL_RCC_MODULE_ENABLED */ - -#ifdef HAL_GPIO_MODULE_ENABLED - #include "stm32l4xx_hal_gpio.h" -#endif /* HAL_GPIO_MODULE_ENABLED */ - -#ifdef HAL_DMA_MODULE_ENABLED - #include "stm32l4xx_hal_dma.h" -#endif /* HAL_DMA_MODULE_ENABLED */ - -#ifdef HAL_DFSDM_MODULE_ENABLED - #include "stm32l4xx_hal_dfsdm.h" -#endif /* HAL_DFSDM_MODULE_ENABLED */ - -#ifdef HAL_CORTEX_MODULE_ENABLED - #include "stm32l4xx_hal_cortex.h" -#endif /* HAL_CORTEX_MODULE_ENABLED */ - -#ifdef HAL_ADC_MODULE_ENABLED - #include "stm32l4xx_hal_adc.h" -#endif /* HAL_ADC_MODULE_ENABLED */ - -#ifdef HAL_CAN_MODULE_ENABLED - #include "stm32l4xx_hal_can.h" -#endif /* HAL_CAN_MODULE_ENABLED */ - -#ifdef HAL_CAN_LEGACY_MODULE_ENABLED - #include "Legacy/stm32l4xx_hal_can_legacy.h" -#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ - -#ifdef HAL_COMP_MODULE_ENABLED - #include "stm32l4xx_hal_comp.h" -#endif /* HAL_COMP_MODULE_ENABLED */ - -#ifdef HAL_CRC_MODULE_ENABLED - #include "stm32l4xx_hal_crc.h" -#endif /* HAL_CRC_MODULE_ENABLED */ - -#ifdef HAL_CRYP_MODULE_ENABLED - #include "stm32l4xx_hal_cryp.h" -#endif /* HAL_CRYP_MODULE_ENABLED */ - -#ifdef HAL_DAC_MODULE_ENABLED - #include "stm32l4xx_hal_dac.h" -#endif /* HAL_DAC_MODULE_ENABLED */ - -#ifdef HAL_DCMI_MODULE_ENABLED - #include "stm32l4xx_hal_dcmi.h" -#endif /* HAL_DCMI_MODULE_ENABLED */ - -#ifdef HAL_DMA2D_MODULE_ENABLED - #include "stm32l4xx_hal_dma2d.h" -#endif /* HAL_DMA2D_MODULE_ENABLED */ - -#ifdef HAL_DSI_MODULE_ENABLED - #include "stm32l4xx_hal_dsi.h" -#endif /* HAL_DSI_MODULE_ENABLED */ - -#ifdef HAL_EXTI_MODULE_ENABLED - #include "stm32l4xx_hal_exti.h" -#endif /* HAL_EXTI_MODULE_ENABLED */ - -#ifdef HAL_GFXMMU_MODULE_ENABLED - #include "stm32l4xx_hal_gfxmmu.h" -#endif /* HAL_GFXMMU_MODULE_ENABLED */ - -#ifdef HAL_FIREWALL_MODULE_ENABLED - #include "stm32l4xx_hal_firewall.h" -#endif /* HAL_FIREWALL_MODULE_ENABLED */ - -#ifdef HAL_FLASH_MODULE_ENABLED - #include "stm32l4xx_hal_flash.h" -#endif /* HAL_FLASH_MODULE_ENABLED */ - -#ifdef HAL_HASH_MODULE_ENABLED - #include "stm32l4xx_hal_hash.h" -#endif /* HAL_HASH_MODULE_ENABLED */ - -#ifdef HAL_HCD_MODULE_ENABLED - #include "stm32l4xx_hal_hcd.h" -#endif /* HAL_HCD_MODULE_ENABLED */ - -#ifdef HAL_I2C_MODULE_ENABLED - #include "stm32l4xx_hal_i2c.h" -#endif /* HAL_I2C_MODULE_ENABLED */ - -#ifdef HAL_IRDA_MODULE_ENABLED - #include "stm32l4xx_hal_irda.h" -#endif /* HAL_IRDA_MODULE_ENABLED */ - -#ifdef HAL_IWDG_MODULE_ENABLED - #include "stm32l4xx_hal_iwdg.h" -#endif /* HAL_IWDG_MODULE_ENABLED */ - -#ifdef HAL_LCD_MODULE_ENABLED - #include "stm32l4xx_hal_lcd.h" -#endif /* HAL_LCD_MODULE_ENABLED */ - -#ifdef HAL_LPTIM_MODULE_ENABLED - #include "stm32l4xx_hal_lptim.h" -#endif /* HAL_LPTIM_MODULE_ENABLED */ - -#ifdef HAL_LTDC_MODULE_ENABLED - #include "stm32l4xx_hal_ltdc.h" -#endif /* HAL_LTDC_MODULE_ENABLED */ - -#ifdef HAL_MMC_MODULE_ENABLED - #include "stm32l4xx_hal_mmc.h" -#endif /* HAL_MMC_MODULE_ENABLED */ - -#ifdef HAL_NAND_MODULE_ENABLED - #include "stm32l4xx_hal_nand.h" -#endif /* HAL_NAND_MODULE_ENABLED */ - -#ifdef HAL_NOR_MODULE_ENABLED - #include "stm32l4xx_hal_nor.h" -#endif /* HAL_NOR_MODULE_ENABLED */ - -#ifdef HAL_OPAMP_MODULE_ENABLED - #include "stm32l4xx_hal_opamp.h" -#endif /* HAL_OPAMP_MODULE_ENABLED */ - -#ifdef HAL_OSPI_MODULE_ENABLED - #include "stm32l4xx_hal_ospi.h" -#endif /* HAL_OSPI_MODULE_ENABLED */ - -#ifdef HAL_PCD_MODULE_ENABLED - #include "stm32l4xx_hal_pcd.h" -#endif /* HAL_PCD_MODULE_ENABLED */ - -#ifdef HAL_PKA_MODULE_ENABLED - #include "stm32l4xx_hal_pka.h" -#endif /* HAL_PKA_MODULE_ENABLED */ - -#ifdef HAL_PSSI_MODULE_ENABLED - #include "stm32l4xx_hal_pssi.h" -#endif /* HAL_PSSI_MODULE_ENABLED */ - -#ifdef HAL_PWR_MODULE_ENABLED - #include "stm32l4xx_hal_pwr.h" -#endif /* HAL_PWR_MODULE_ENABLED */ - -#ifdef HAL_QSPI_MODULE_ENABLED - #include "stm32l4xx_hal_qspi.h" -#endif /* HAL_QSPI_MODULE_ENABLED */ - -#ifdef HAL_RNG_MODULE_ENABLED - #include "stm32l4xx_hal_rng.h" -#endif /* HAL_RNG_MODULE_ENABLED */ - -#ifdef HAL_RTC_MODULE_ENABLED - #include "stm32l4xx_hal_rtc.h" -#endif /* HAL_RTC_MODULE_ENABLED */ - -#ifdef HAL_SAI_MODULE_ENABLED - #include "stm32l4xx_hal_sai.h" -#endif /* HAL_SAI_MODULE_ENABLED */ - -#ifdef HAL_SD_MODULE_ENABLED - #include "stm32l4xx_hal_sd.h" -#endif /* HAL_SD_MODULE_ENABLED */ - -#ifdef HAL_SMARTCARD_MODULE_ENABLED - #include "stm32l4xx_hal_smartcard.h" -#endif /* HAL_SMARTCARD_MODULE_ENABLED */ - -#ifdef HAL_SMBUS_MODULE_ENABLED - #include "stm32l4xx_hal_smbus.h" -#endif /* HAL_SMBUS_MODULE_ENABLED */ - -#ifdef HAL_SPI_MODULE_ENABLED - #include "stm32l4xx_hal_spi.h" -#endif /* HAL_SPI_MODULE_ENABLED */ - -#ifdef HAL_SRAM_MODULE_ENABLED - #include "stm32l4xx_hal_sram.h" -#endif /* HAL_SRAM_MODULE_ENABLED */ - -#ifdef HAL_SWPMI_MODULE_ENABLED - #include "stm32l4xx_hal_swpmi.h" -#endif /* HAL_SWPMI_MODULE_ENABLED */ - -#ifdef HAL_TIM_MODULE_ENABLED - #include "stm32l4xx_hal_tim.h" -#endif /* HAL_TIM_MODULE_ENABLED */ - -#ifdef HAL_TSC_MODULE_ENABLED - #include "stm32l4xx_hal_tsc.h" -#endif /* HAL_TSC_MODULE_ENABLED */ - -#ifdef HAL_UART_MODULE_ENABLED - #include "stm32l4xx_hal_uart.h" -#endif /* HAL_UART_MODULE_ENABLED */ - -#ifdef HAL_USART_MODULE_ENABLED - #include "stm32l4xx_hal_usart.h" -#endif /* HAL_USART_MODULE_ENABLED */ - -#ifdef HAL_WWDG_MODULE_ENABLED - #include "stm32l4xx_hal_wwdg.h" -#endif /* HAL_WWDG_MODULE_ENABLED */ - -/* Exported macro ------------------------------------------------------------*/ -#ifdef USE_FULL_ASSERT -/** - * @brief The assert_param macro is used for function's parameters check. - * @param expr If expr is false, it calls assert_failed function - * which reports the name of the source file and the source - * line number of the call that failed. - * If expr is true, it returns no value. - * @retval None - */ - #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) -/* Exported functions ------------------------------------------------------- */ - void assert_failed(uint8_t *file, uint32_t line); -#else - #define assert_param(expr) ((void)0U) -#endif /* USE_FULL_ASSERT */ - -#ifdef __cplusplus -} -#endif - -#endif /* STM32L4xx_HAL_CONF_H */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_hal_conf.h + * @author MCD Application Team + * @brief HAL configuration template file. + * This file should be copied to the application folder and renamed + * to stm32l4xx_hal_conf.h. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32L4xx_HAL_CONF_H +#define STM32L4xx_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED +#define HAL_ADC_MODULE_ENABLED +/*#define HAL_CRYP_MODULE_ENABLED */ +/*#define HAL_CAN_MODULE_ENABLED */ +/*#define HAL_COMP_MODULE_ENABLED */ +#define HAL_I2C_MODULE_ENABLED +/*#define HAL_CRC_MODULE_ENABLED */ +/*#define HAL_CRYP_MODULE_ENABLED */ +/*#define HAL_DAC_MODULE_ENABLED */ +/*#define HAL_DCMI_MODULE_ENABLED */ +/*#define HAL_DMA2D_MODULE_ENABLED */ +/*#define HAL_DFSDM_MODULE_ENABLED */ +/*#define HAL_DSI_MODULE_ENABLED */ +/*#define HAL_FIREWALL_MODULE_ENABLED */ +/*#define HAL_GFXMMU_MODULE_ENABLED */ +/*#define HAL_HCD_MODULE_ENABLED */ +/*#define HAL_HASH_MODULE_ENABLED */ +/*#define HAL_I2S_MODULE_ENABLED */ +/*#define HAL_IRDA_MODULE_ENABLED */ +#define HAL_IWDG_MODULE_ENABLED +/*#define HAL_LTDC_MODULE_ENABLED */ +/*#define HAL_LCD_MODULE_ENABLED */ +/*#define HAL_LPTIM_MODULE_ENABLED */ +/*#define HAL_MMC_MODULE_ENABLED */ +/*#define HAL_NAND_MODULE_ENABLED */ +/*#define HAL_NOR_MODULE_ENABLED */ +/*#define HAL_OPAMP_MODULE_ENABLED */ +/*#define HAL_OSPI_MODULE_ENABLED */ +/*#define HAL_OSPI_MODULE_ENABLED */ +/*#define HAL_PCD_MODULE_ENABLED */ +/*#define HAL_PKA_MODULE_ENABLED */ +/*#define HAL_QSPI_MODULE_ENABLED */ +/*#define HAL_QSPI_MODULE_ENABLED */ +/*#define HAL_RNG_MODULE_ENABLED */ +/*#define HAL_RTC_MODULE_ENABLED */ +/*#define HAL_SAI_MODULE_ENABLED */ +/*#define HAL_SD_MODULE_ENABLED */ +/*#define HAL_SMBUS_MODULE_ENABLED */ +/*#define HAL_SMARTCARD_MODULE_ENABLED */ +/*#define HAL_SPI_MODULE_ENABLED */ +/*#define HAL_SRAM_MODULE_ENABLED */ +/*#define HAL_SWPMI_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED +/*#define HAL_TSC_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/*#define HAL_USART_MODULE_ENABLED */ +/*#define HAL_WWDG_MODULE_ENABLED */ +/*#define HAL_EXTI_MODULE_ENABLED */ +/*#define HAL_PSSI_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## Oscillator Values adaptation ####################*/ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100U) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal Multiple Speed oscillator (MSI) default value. + * This value is the default MSI range value after Reset. + */ +#if !defined (MSI_VALUE) + #define MSI_VALUE ((uint32_t)4000000U) /*!< Value of the Internal oscillator in Hz*/ +#endif /* MSI_VALUE */ +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal High Speed oscillator (HSI48) value for USB FS, SDMMC and RNG. + * This internal oscillator is mainly dedicated to provide a high precision clock to + * the USB peripheral by means of a special Clock Recovery System (CRS) circuitry. + * When the CRS is not used, the HSI48 RC oscillator runs on it default frequency + * which is subject to manufacturing process variations. + */ +#if !defined (HSI48_VALUE) + #define HSI48_VALUE ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz. + The real value my vary depending on manufacturing process variations.*/ +#endif /* HSI48_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE 32000U /*!< LSI Typical Value in Hz*/ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature.*/ + +/** + * @brief External Low Speed oscillator (LSE) value. + * This value is used by the UART, RTC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE 32768U /*!< Value of the External oscillator in Hz*/ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for SAI1 peripheral + * This value is used by the RCC HAL module to compute the SAI1 & SAI2 clock source + * frequency. + */ +#if !defined (EXTERNAL_SAI1_CLOCK_VALUE) + #define EXTERNAL_SAI1_CLOCK_VALUE 2097000U /*!< Value of the SAI1 External clock source in Hz*/ +#endif /* EXTERNAL_SAI1_CLOCK_VALUE */ + +/** + * @brief External clock source for SAI2 peripheral + * This value is used by the RCC HAL module to compute the SAI1 & SAI2 clock source + * frequency. + */ +#if !defined (EXTERNAL_SAI2_CLOCK_VALUE) + #define EXTERNAL_SAI2_CLOCK_VALUE 2097000U /*!< Value of the SAI2 External clock source in Hz*/ +#endif /* EXTERNAL_SAI2_CLOCK_VALUE */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ + +#define VDD_VALUE 3300U /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority */ +#define USE_RTOS 0U +#define PREFETCH_ENABLE 0U +#define INSTRUCTION_CACHE_ENABLE 1U +#define DATA_CACHE_ENABLE 1U + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## Register callback feature configuration ############### */ +/** + * @brief Set below the peripheral configuration to "1U" to add the support + * of HAL callback registration/deregistration feature for the HAL + * driver(s). This allows user application to provide specific callback + * functions thanks to HAL_PPP_RegisterCallback() rather than overwriting + * the default weak callback functions (see each stm32l4xx_hal_ppp.h file + * for possible callback identifiers defined in HAL_PPP_CallbackIDTypeDef + * for each PPP peripheral). + */ +#define USE_HAL_ADC_REGISTER_CALLBACKS 0U +#define USE_HAL_CAN_REGISTER_CALLBACKS 0U +#define USE_HAL_COMP_REGISTER_CALLBACKS 0U +#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U +#define USE_HAL_DAC_REGISTER_CALLBACKS 0U +#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U +#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U +#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U +#define USE_HAL_DSI_REGISTER_CALLBACKS 0U +#define USE_HAL_GFXMMU_REGISTER_CALLBACKS 0U +#define USE_HAL_HASH_REGISTER_CALLBACKS 0U +#define USE_HAL_HCD_REGISTER_CALLBACKS 0U +#define USE_HAL_I2C_REGISTER_CALLBACKS 0U +#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U +#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U +#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U +#define USE_HAL_MMC_REGISTER_CALLBACKS 0U +#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U +#define USE_HAL_OSPI_REGISTER_CALLBACKS 0U +#define USE_HAL_PCD_REGISTER_CALLBACKS 0U +#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U +#define USE_HAL_RNG_REGISTER_CALLBACKS 0U +#define USE_HAL_RTC_REGISTER_CALLBACKS 0U +#define USE_HAL_SAI_REGISTER_CALLBACKS 0U +#define USE_HAL_SD_REGISTER_CALLBACKS 0U +#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U +#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U +#define USE_HAL_SPI_REGISTER_CALLBACKS 0U +#define USE_HAL_SWPMI_REGISTER_CALLBACKS 0U +#define USE_HAL_TIM_REGISTER_CALLBACKS 0U +#define USE_HAL_TSC_REGISTER_CALLBACKS 0U +#define USE_HAL_UART_REGISTER_CALLBACKS 0U +#define USE_HAL_USART_REGISTER_CALLBACKS 0U +#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U + +/* ################## SPI peripheral configuration ########################## */ + +/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver + * Activated: CRC code is present inside driver + * Deactivated: CRC code cleaned from driver + */ + +#define USE_SPI_CRC 0U + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "stm32l4xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32l4xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32l4xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_DFSDM_MODULE_ENABLED + #include "stm32l4xx_hal_dfsdm.h" +#endif /* HAL_DFSDM_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32l4xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32l4xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32l4xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CAN_LEGACY_MODULE_ENABLED + #include "Legacy/stm32l4xx_hal_can_legacy.h" +#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED + #include "stm32l4xx_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32l4xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED + #include "stm32l4xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32l4xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_DCMI_MODULE_ENABLED + #include "stm32l4xx_hal_dcmi.h" +#endif /* HAL_DCMI_MODULE_ENABLED */ + +#ifdef HAL_DMA2D_MODULE_ENABLED + #include "stm32l4xx_hal_dma2d.h" +#endif /* HAL_DMA2D_MODULE_ENABLED */ + +#ifdef HAL_DSI_MODULE_ENABLED + #include "stm32l4xx_hal_dsi.h" +#endif /* HAL_DSI_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32l4xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GFXMMU_MODULE_ENABLED + #include "stm32l4xx_hal_gfxmmu.h" +#endif /* HAL_GFXMMU_MODULE_ENABLED */ + +#ifdef HAL_FIREWALL_MODULE_ENABLED + #include "stm32l4xx_hal_firewall.h" +#endif /* HAL_FIREWALL_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32l4xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_HASH_MODULE_ENABLED + #include "stm32l4xx_hal_hash.h" +#endif /* HAL_HASH_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED + #include "stm32l4xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32l4xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32l4xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32l4xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_LCD_MODULE_ENABLED + #include "stm32l4xx_hal_lcd.h" +#endif /* HAL_LCD_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "stm32l4xx_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_LTDC_MODULE_ENABLED + #include "stm32l4xx_hal_ltdc.h" +#endif /* HAL_LTDC_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED + #include "stm32l4xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32l4xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32l4xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_OPAMP_MODULE_ENABLED + #include "stm32l4xx_hal_opamp.h" +#endif /* HAL_OPAMP_MODULE_ENABLED */ + +#ifdef HAL_OSPI_MODULE_ENABLED + #include "stm32l4xx_hal_ospi.h" +#endif /* HAL_OSPI_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32l4xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_PKA_MODULE_ENABLED + #include "stm32l4xx_hal_pka.h" +#endif /* HAL_PKA_MODULE_ENABLED */ + +#ifdef HAL_PSSI_MODULE_ENABLED + #include "stm32l4xx_hal_pssi.h" +#endif /* HAL_PSSI_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32l4xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_QSPI_MODULE_ENABLED + #include "stm32l4xx_hal_qspi.h" +#endif /* HAL_QSPI_MODULE_ENABLED */ + +#ifdef HAL_RNG_MODULE_ENABLED + #include "stm32l4xx_hal_rng.h" +#endif /* HAL_RNG_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32l4xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SAI_MODULE_ENABLED + #include "stm32l4xx_hal_sai.h" +#endif /* HAL_SAI_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED + #include "stm32l4xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32l4xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED + #include "stm32l4xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32l4xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32l4xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_SWPMI_MODULE_ENABLED + #include "stm32l4xx_hal_swpmi.h" +#endif /* HAL_SWPMI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32l4xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_TSC_MODULE_ENABLED + #include "stm32l4xx_hal_tsc.h" +#endif /* HAL_TSC_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32l4xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32l4xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32l4xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t *file, uint32_t line); +#else + #define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32L4xx_HAL_CONF_H */ diff --git a/eps/firmware/bootstrap/Core/Inc/stm32l4xx_it.h b/eps/v1/firmware/bootstrap/Core/Inc/stm32l4xx_it.h similarity index 96% rename from eps/firmware/bootstrap/Core/Inc/stm32l4xx_it.h rename to eps/v1/firmware/bootstrap/Core/Inc/stm32l4xx_it.h index f619cf3..3f3c093 100644 --- a/eps/firmware/bootstrap/Core/Inc/stm32l4xx_it.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/stm32l4xx_it.h @@ -1,78 +1,78 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file stm32l4xx_it.h - * @brief This file contains the headers of the interrupt handlers. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32L4xx_IT_H -#define __STM32L4xx_IT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* Exported types ------------------------------------------------------------*/ -/* USER CODE BEGIN ET */ - -/* USER CODE END ET */ - -/* Exported constants --------------------------------------------------------*/ -/* USER CODE BEGIN EC */ - -/* USER CODE END EC */ - -/* Exported macro ------------------------------------------------------------*/ -/* USER CODE BEGIN EM */ - -/* USER CODE END EM */ - -/* Exported functions prototypes ---------------------------------------------*/ -void NMI_Handler(void); -void HardFault_Handler(void); -void MemManage_Handler(void); -void BusFault_Handler(void); -void UsageFault_Handler(void); -void SVC_Handler(void); -void DebugMon_Handler(void); -void PendSV_Handler(void); -void SysTick_Handler(void); -void DMA1_Channel2_IRQHandler(void); -void DMA1_Channel3_IRQHandler(void); -void DMA1_Channel5_IRQHandler(void); -void ADC1_2_IRQHandler(void); -void I2C1_EV_IRQHandler(void); -void I2C1_ER_IRQHandler(void); -void I2C2_EV_IRQHandler(void); -void I2C2_ER_IRQHandler(void); -void I2C3_EV_IRQHandler(void); -void I2C3_ER_IRQHandler(void); -void I2C4_EV_IRQHandler(void); -void I2C4_ER_IRQHandler(void); -/* USER CODE BEGIN EFP */ - -/* USER CODE END EFP */ - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32L4xx_IT_H */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L4xx_IT_H +#define __STM32L4xx_IT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +void DMA1_Channel2_IRQHandler(void); +void DMA1_Channel3_IRQHandler(void); +void DMA1_Channel5_IRQHandler(void); +void ADC1_2_IRQHandler(void); +void I2C1_EV_IRQHandler(void); +void I2C1_ER_IRQHandler(void); +void I2C2_EV_IRQHandler(void); +void I2C2_ER_IRQHandler(void); +void I2C3_EV_IRQHandler(void); +void I2C3_ER_IRQHandler(void); +void I2C4_EV_IRQHandler(void); +void I2C4_ER_IRQHandler(void); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L4xx_IT_H */ diff --git a/eps/firmware/bootstrap/Core/Inc/tim.h b/eps/v1/firmware/bootstrap/Core/Inc/tim.h similarity index 96% rename from eps/firmware/bootstrap/Core/Inc/tim.h rename to eps/v1/firmware/bootstrap/Core/Inc/tim.h index 77b3d8d..4f8003f 100644 --- a/eps/firmware/bootstrap/Core/Inc/tim.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/tim.h @@ -1,52 +1,52 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file tim.h - * @brief This file contains all the function prototypes for - * the tim.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __TIM_H__ -#define __TIM_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern TIM_HandleTypeDef htim1; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_TIM1_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __TIM_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file tim.h + * @brief This file contains all the function prototypes for + * the tim.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __TIM_H__ +#define __TIM_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern TIM_HandleTypeDef htim1; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_TIM1_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __TIM_H__ */ + diff --git a/eps/firmware/bsp/mcu/Inc/usart.h b/eps/v1/firmware/bootstrap/Core/Inc/usart.h similarity index 96% rename from eps/firmware/bsp/mcu/Inc/usart.h rename to eps/v1/firmware/bootstrap/Core/Inc/usart.h index c4e5050..dd17ca7 100644 --- a/eps/firmware/bsp/mcu/Inc/usart.h +++ b/eps/v1/firmware/bootstrap/Core/Inc/usart.h @@ -1,55 +1,55 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file usart.h - * @brief This file contains all the function prototypes for - * the usart.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __USART_H__ -#define __USART_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern UART_HandleTypeDef huart1; - -extern UART_HandleTypeDef huart3; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_USART1_UART_Init(void); -void MX_USART3_UART_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __USART_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file usart.h + * @brief This file contains all the function prototypes for + * the usart.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USART_H__ +#define __USART_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern UART_HandleTypeDef huart1; + +extern UART_HandleTypeDef huart3; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_USART1_UART_Init(void); +void MX_USART3_UART_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USART_H__ */ + diff --git a/eps/firmware/bootstrap/Core/Src/adc.c b/eps/v1/firmware/bootstrap/Core/Src/adc.c similarity index 96% rename from eps/firmware/bootstrap/Core/Src/adc.c rename to eps/v1/firmware/bootstrap/Core/Src/adc.c index c35d844..999dbc6 100644 --- a/eps/firmware/bootstrap/Core/Src/adc.c +++ b/eps/v1/firmware/bootstrap/Core/Src/adc.c @@ -1,309 +1,309 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file adc.c - * @brief This file provides code for the configuration - * of the ADC instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "adc.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -ADC_HandleTypeDef hadc2; -DMA_HandleTypeDef hdma_adc2; - -/* ADC2 init function */ -void MX_ADC2_Init(void) -{ - - /* USER CODE BEGIN ADC2_Init 0 */ - - /* USER CODE END ADC2_Init 0 */ - - ADC_ChannelConfTypeDef sConfig = {0}; - - /* USER CODE BEGIN ADC2_Init 1 */ - - /* USER CODE END ADC2_Init 1 */ - - /** Common config - */ - hadc2.Instance = ADC2; - hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV4; - hadc2.Init.Resolution = ADC_RESOLUTION_12B; - hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT; - hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE; - hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV; - hadc2.Init.LowPowerAutoWait = DISABLE; - hadc2.Init.ContinuousConvMode = DISABLE; - hadc2.Init.NbrOfConversion = 11; - hadc2.Init.DiscontinuousConvMode = DISABLE; - hadc2.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T1_TRGO; - hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING; - hadc2.Init.DMAContinuousRequests = DISABLE; - hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED; - hadc2.Init.OversamplingMode = DISABLE; - if (HAL_ADC_Init(&hadc2) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_3; - sConfig.Rank = ADC_REGULAR_RANK_1; - sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; - sConfig.SingleDiff = ADC_SINGLE_ENDED; - sConfig.OffsetNumber = ADC_OFFSET_NONE; - sConfig.Offset = 0; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_4; - sConfig.Rank = ADC_REGULAR_RANK_2; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_5; - sConfig.Rank = ADC_REGULAR_RANK_3; - sConfig.SamplingTime = ADC_SAMPLETIME_92CYCLES_5; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_6; - sConfig.Rank = ADC_REGULAR_RANK_4; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_7; - sConfig.Rank = ADC_REGULAR_RANK_5; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_8; - sConfig.Rank = ADC_REGULAR_RANK_6; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_9; - sConfig.Rank = ADC_REGULAR_RANK_7; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_10; - sConfig.Rank = ADC_REGULAR_RANK_8; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_11; - sConfig.Rank = ADC_REGULAR_RANK_9; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_12; - sConfig.Rank = ADC_REGULAR_RANK_10; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_15; - sConfig.Rank = ADC_REGULAR_RANK_11; - sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN ADC2_Init 2 */ - - /* USER CODE END ADC2_Init 2 */ - -} - -void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle) -{ - - GPIO_InitTypeDef GPIO_InitStruct = {0}; - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - if(adcHandle->Instance==ADC2) - { - /* USER CODE BEGIN ADC2_MspInit 0 */ - - /* USER CODE END ADC2_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; - PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_PLLSAI1; - PeriphClkInit.PLLSAI1.PLLSAI1Source = RCC_PLLSOURCE_HSE; - PeriphClkInit.PLLSAI1.PLLSAI1M = 1; - PeriphClkInit.PLLSAI1.PLLSAI1N = 8; - PeriphClkInit.PLLSAI1.PLLSAI1P = RCC_PLLP_DIV2; - PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2; - PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2; - PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_ADC1CLK; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - /* ADC2 clock enable */ - __HAL_RCC_ADC_CLK_ENABLE(); - - __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_GPIOA_CLK_ENABLE(); - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**ADC2 GPIO Configuration - PC2 ------> ADC2_IN3 - PC3 ------> ADC2_IN4 - PA0 ------> ADC2_IN5 - PA1 ------> ADC2_IN6 - PA2 ------> ADC2_IN7 - PA3 ------> ADC2_IN8 - PA4 ------> ADC2_IN9 - PA5 ------> ADC2_IN10 - PA6 ------> ADC2_IN11 - PA7 ------> ADC2_IN12 - PB0 ------> ADC2_IN15 - */ - GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 - |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_0; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* ADC2 DMA Init */ - /* ADC2 Init */ - hdma_adc2.Instance = DMA1_Channel2; - hdma_adc2.Init.Request = DMA_REQUEST_0; - hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY; - hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_adc2.Init.MemInc = DMA_MINC_ENABLE; - hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; - hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; - hdma_adc2.Init.Mode = DMA_CIRCULAR; - hdma_adc2.Init.Priority = DMA_PRIORITY_LOW; - if (HAL_DMA_Init(&hdma_adc2) != HAL_OK) - { - Error_Handler(); - } - - __HAL_LINKDMA(adcHandle,DMA_Handle,hdma_adc2); - - /* ADC2 interrupt Init */ - HAL_NVIC_SetPriority(ADC1_2_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(ADC1_2_IRQn); - /* USER CODE BEGIN ADC2_MspInit 1 */ - - /* USER CODE END ADC2_MspInit 1 */ - } -} - -void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle) -{ - - if(adcHandle->Instance==ADC2) - { - /* USER CODE BEGIN ADC2_MspDeInit 0 */ - - /* USER CODE END ADC2_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_ADC_CLK_DISABLE(); - - /**ADC2 GPIO Configuration - PC2 ------> ADC2_IN3 - PC3 ------> ADC2_IN4 - PA0 ------> ADC2_IN5 - PA1 ------> ADC2_IN6 - PA2 ------> ADC2_IN7 - PA3 ------> ADC2_IN8 - PA4 ------> ADC2_IN9 - PA5 ------> ADC2_IN10 - PA6 ------> ADC2_IN11 - PA7 ------> ADC2_IN12 - PB0 ------> ADC2_IN15 - */ - HAL_GPIO_DeInit(GPIOC, GPIO_PIN_2|GPIO_PIN_3); - - HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 - |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); - - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0); - - /* ADC2 DMA DeInit */ - HAL_DMA_DeInit(adcHandle->DMA_Handle); - - /* ADC2 interrupt Deinit */ - HAL_NVIC_DisableIRQ(ADC1_2_IRQn); - /* USER CODE BEGIN ADC2_MspDeInit 1 */ - - /* USER CODE END ADC2_MspDeInit 1 */ - } -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file adc.c + * @brief This file provides code for the configuration + * of the ADC instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "adc.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +ADC_HandleTypeDef hadc2; +DMA_HandleTypeDef hdma_adc2; + +/* ADC2 init function */ +void MX_ADC2_Init(void) +{ + + /* USER CODE BEGIN ADC2_Init 0 */ + + /* USER CODE END ADC2_Init 0 */ + + ADC_ChannelConfTypeDef sConfig = {0}; + + /* USER CODE BEGIN ADC2_Init 1 */ + + /* USER CODE END ADC2_Init 1 */ + + /** Common config + */ + hadc2.Instance = ADC2; + hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV4; + hadc2.Init.Resolution = ADC_RESOLUTION_12B; + hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT; + hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE; + hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + hadc2.Init.LowPowerAutoWait = DISABLE; + hadc2.Init.ContinuousConvMode = DISABLE; + hadc2.Init.NbrOfConversion = 11; + hadc2.Init.DiscontinuousConvMode = DISABLE; + hadc2.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T1_TRGO; + hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING; + hadc2.Init.DMAContinuousRequests = DISABLE; + hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED; + hadc2.Init.OversamplingMode = DISABLE; + if (HAL_ADC_Init(&hadc2) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_3; + sConfig.Rank = ADC_REGULAR_RANK_1; + sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; + sConfig.SingleDiff = ADC_SINGLE_ENDED; + sConfig.OffsetNumber = ADC_OFFSET_NONE; + sConfig.Offset = 0; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_4; + sConfig.Rank = ADC_REGULAR_RANK_2; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_5; + sConfig.Rank = ADC_REGULAR_RANK_3; + sConfig.SamplingTime = ADC_SAMPLETIME_92CYCLES_5; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_6; + sConfig.Rank = ADC_REGULAR_RANK_4; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_7; + sConfig.Rank = ADC_REGULAR_RANK_5; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_8; + sConfig.Rank = ADC_REGULAR_RANK_6; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_9; + sConfig.Rank = ADC_REGULAR_RANK_7; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_10; + sConfig.Rank = ADC_REGULAR_RANK_8; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_11; + sConfig.Rank = ADC_REGULAR_RANK_9; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_12; + sConfig.Rank = ADC_REGULAR_RANK_10; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_15; + sConfig.Rank = ADC_REGULAR_RANK_11; + sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN ADC2_Init 2 */ + + /* USER CODE END ADC2_Init 2 */ + +} + +void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(adcHandle->Instance==ADC2) + { + /* USER CODE BEGIN ADC2_MspInit 0 */ + + /* USER CODE END ADC2_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; + PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_PLLSAI1; + PeriphClkInit.PLLSAI1.PLLSAI1Source = RCC_PLLSOURCE_HSE; + PeriphClkInit.PLLSAI1.PLLSAI1M = 1; + PeriphClkInit.PLLSAI1.PLLSAI1N = 8; + PeriphClkInit.PLLSAI1.PLLSAI1P = RCC_PLLP_DIV2; + PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2; + PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2; + PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_ADC1CLK; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* ADC2 clock enable */ + __HAL_RCC_ADC_CLK_ENABLE(); + + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**ADC2 GPIO Configuration + PC2 ------> ADC2_IN3 + PC3 ------> ADC2_IN4 + PA0 ------> ADC2_IN5 + PA1 ------> ADC2_IN6 + PA2 ------> ADC2_IN7 + PA3 ------> ADC2_IN8 + PA4 ------> ADC2_IN9 + PA5 ------> ADC2_IN10 + PA6 ------> ADC2_IN11 + PA7 ------> ADC2_IN12 + PB0 ------> ADC2_IN15 + */ + GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 + |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_0; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* ADC2 DMA Init */ + /* ADC2 Init */ + hdma_adc2.Instance = DMA1_Channel2; + hdma_adc2.Init.Request = DMA_REQUEST_0; + hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_adc2.Init.MemInc = DMA_MINC_ENABLE; + hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; + hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; + hdma_adc2.Init.Mode = DMA_CIRCULAR; + hdma_adc2.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_adc2) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(adcHandle,DMA_Handle,hdma_adc2); + + /* ADC2 interrupt Init */ + HAL_NVIC_SetPriority(ADC1_2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(ADC1_2_IRQn); + /* USER CODE BEGIN ADC2_MspInit 1 */ + + /* USER CODE END ADC2_MspInit 1 */ + } +} + +void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle) +{ + + if(adcHandle->Instance==ADC2) + { + /* USER CODE BEGIN ADC2_MspDeInit 0 */ + + /* USER CODE END ADC2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_ADC_CLK_DISABLE(); + + /**ADC2 GPIO Configuration + PC2 ------> ADC2_IN3 + PC3 ------> ADC2_IN4 + PA0 ------> ADC2_IN5 + PA1 ------> ADC2_IN6 + PA2 ------> ADC2_IN7 + PA3 ------> ADC2_IN8 + PA4 ------> ADC2_IN9 + PA5 ------> ADC2_IN10 + PA6 ------> ADC2_IN11 + PA7 ------> ADC2_IN12 + PB0 ------> ADC2_IN15 + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_2|GPIO_PIN_3); + + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 + |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0); + + /* ADC2 DMA DeInit */ + HAL_DMA_DeInit(adcHandle->DMA_Handle); + + /* ADC2 interrupt Deinit */ + HAL_NVIC_DisableIRQ(ADC1_2_IRQn); + /* USER CODE BEGIN ADC2_MspDeInit 1 */ + + /* USER CODE END ADC2_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bootstrap/Core/Src/dma.c b/eps/v1/firmware/bootstrap/Core/Src/dma.c similarity index 96% rename from eps/firmware/bootstrap/Core/Src/dma.c rename to eps/v1/firmware/bootstrap/Core/Src/dma.c index 5c4be92..83b6519 100644 --- a/eps/firmware/bootstrap/Core/Src/dma.c +++ b/eps/v1/firmware/bootstrap/Core/Src/dma.c @@ -1,61 +1,61 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file dma.c - * @brief This file provides code for the configuration - * of all the requested memory to memory DMA transfers. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "dma.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/*----------------------------------------------------------------------------*/ -/* Configure DMA */ -/*----------------------------------------------------------------------------*/ - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ - -/** - * Enable DMA controller clock - */ -void MX_DMA_Init(void) -{ - - /* DMA controller clock enable */ - __HAL_RCC_DMA1_CLK_ENABLE(); - - /* DMA interrupt init */ - /* DMA1_Channel2_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn); - /* DMA1_Channel3_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn); - /* DMA1_Channel5_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); - -} - -/* USER CODE BEGIN 2 */ - -/* USER CODE END 2 */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.c + * @brief This file provides code for the configuration + * of all the requested memory to memory DMA transfers. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "dma.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/*----------------------------------------------------------------------------*/ +/* Configure DMA */ +/*----------------------------------------------------------------------------*/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/** + * Enable DMA controller clock + */ +void MX_DMA_Init(void) +{ + + /* DMA controller clock enable */ + __HAL_RCC_DMA1_CLK_ENABLE(); + + /* DMA interrupt init */ + /* DMA1_Channel2_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn); + /* DMA1_Channel3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn); + /* DMA1_Channel5_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); + +} + +/* USER CODE BEGIN 2 */ + +/* USER CODE END 2 */ + diff --git a/eps/firmware/bootstrap/Core/Src/gpio.c b/eps/v1/firmware/bootstrap/Core/Src/gpio.c similarity index 96% rename from eps/firmware/bootstrap/Core/Src/gpio.c rename to eps/v1/firmware/bootstrap/Core/Src/gpio.c index aa68410..ed851d7 100644 --- a/eps/firmware/bootstrap/Core/Src/gpio.c +++ b/eps/v1/firmware/bootstrap/Core/Src/gpio.c @@ -1,58 +1,58 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file gpio.c - * @brief This file provides code for the configuration - * of all used GPIO pins. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "gpio.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/*----------------------------------------------------------------------------*/ -/* Configure GPIO */ -/*----------------------------------------------------------------------------*/ -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ - -/** Configure pins as - * Analog - * Input - * Output - * EVENT_OUT - * EXTI -*/ -void MX_GPIO_Init(void) -{ - - /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_GPIOF_CLK_ENABLE(); - __HAL_RCC_GPIOH_CLK_ENABLE(); - __HAL_RCC_GPIOA_CLK_ENABLE(); - __HAL_RCC_GPIOB_CLK_ENABLE(); - __HAL_RCC_GPIOG_CLK_ENABLE(); - HAL_PWREx_EnableVddIO2(); - -} - -/* USER CODE BEGIN 2 */ - -/* USER CODE END 2 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file gpio.c + * @brief This file provides code for the configuration + * of all used GPIO pins. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "gpio.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/*----------------------------------------------------------------------------*/ +/* Configure GPIO */ +/*----------------------------------------------------------------------------*/ +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/** Configure pins as + * Analog + * Input + * Output + * EVENT_OUT + * EXTI +*/ +void MX_GPIO_Init(void) +{ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOF_CLK_ENABLE(); + __HAL_RCC_GPIOH_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + __HAL_RCC_GPIOG_CLK_ENABLE(); + HAL_PWREx_EnableVddIO2(); + +} + +/* USER CODE BEGIN 2 */ + +/* USER CODE END 2 */ diff --git a/eps/firmware/bootstrap/Core/Src/i2c.c b/eps/v1/firmware/bootstrap/Core/Src/i2c.c similarity index 96% rename from eps/firmware/bootstrap/Core/Src/i2c.c rename to eps/v1/firmware/bootstrap/Core/Src/i2c.c index fde8074..bd78c12 100644 --- a/eps/firmware/bootstrap/Core/Src/i2c.c +++ b/eps/v1/firmware/bootstrap/Core/Src/i2c.c @@ -1,467 +1,467 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file i2c.c - * @brief This file provides code for the configuration - * of the I2C instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "i2c.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -I2C_HandleTypeDef hi2c1; -I2C_HandleTypeDef hi2c2; -I2C_HandleTypeDef hi2c3; -I2C_HandleTypeDef hi2c4; - -/* I2C1 init function */ -void MX_I2C1_Init(void) -{ - - /* USER CODE BEGIN I2C1_Init 0 */ - - /* USER CODE END I2C1_Init 0 */ - - /* USER CODE BEGIN I2C1_Init 1 */ - - /* USER CODE END I2C1_Init 1 */ - hi2c1.Instance = I2C1; - hi2c1.Init.Timing = 0x10D19CE4; - hi2c1.Init.OwnAddress1 = 0; - hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - hi2c1.Init.OwnAddress2 = 0; - hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - if (HAL_I2C_Init(&hi2c1) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN I2C1_Init 2 */ - - /* USER CODE END I2C1_Init 2 */ - -} -/* I2C2 init function */ -void MX_I2C2_Init(void) -{ - - /* USER CODE BEGIN I2C2_Init 0 */ - - /* USER CODE END I2C2_Init 0 */ - - /* USER CODE BEGIN I2C2_Init 1 */ - - /* USER CODE END I2C2_Init 1 */ - hi2c2.Instance = I2C2; - hi2c2.Init.Timing = 0x10D19CE4; - hi2c2.Init.OwnAddress1 = 0; - hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - hi2c2.Init.OwnAddress2 = 0; - hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - if (HAL_I2C_Init(&hi2c2) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c2, I2C_ANALOGFILTER_ENABLE) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c2, 0) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN I2C2_Init 2 */ - - /* USER CODE END I2C2_Init 2 */ - -} -/* I2C3 init function */ -void MX_I2C3_Init(void) -{ - - /* USER CODE BEGIN I2C3_Init 0 */ - - /* USER CODE END I2C3_Init 0 */ - - /* USER CODE BEGIN I2C3_Init 1 */ - - /* USER CODE END I2C3_Init 1 */ - hi2c3.Instance = I2C3; - hi2c3.Init.Timing = 0x10D19CE4; - hi2c3.Init.OwnAddress1 = 0; - hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - hi2c3.Init.OwnAddress2 = 0; - hi2c3.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - if (HAL_I2C_Init(&hi2c3) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN I2C3_Init 2 */ - - /* USER CODE END I2C3_Init 2 */ - -} -/* I2C4 init function */ -void MX_I2C4_Init(void) -{ - - /* USER CODE BEGIN I2C4_Init 0 */ - - /* USER CODE END I2C4_Init 0 */ - - /* USER CODE BEGIN I2C4_Init 1 */ - - /* USER CODE END I2C4_Init 1 */ - hi2c4.Instance = I2C4; - hi2c4.Init.Timing = 0x10D19CE4; - hi2c4.Init.OwnAddress1 = 0; - hi2c4.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - hi2c4.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - hi2c4.Init.OwnAddress2 = 0; - hi2c4.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - hi2c4.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - hi2c4.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - if (HAL_I2C_Init(&hi2c4) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c4, I2C_ANALOGFILTER_ENABLE) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c4, 0) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN I2C4_Init 2 */ - - /* USER CODE END I2C4_Init 2 */ - -} - -void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle) -{ - - GPIO_InitTypeDef GPIO_InitStruct = {0}; - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - if(i2cHandle->Instance==I2C1) - { - /* USER CODE BEGIN I2C1_MspInit 0 */ - - /* USER CODE END I2C1_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; - PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - __HAL_RCC_GPIOG_CLK_ENABLE(); - /**I2C1 GPIO Configuration - PG14 ------> I2C1_SCL - PG13 ------> I2C1_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; - HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - - /* I2C1 clock enable */ - __HAL_RCC_I2C1_CLK_ENABLE(); - - /* I2C1 interrupt Init */ - HAL_NVIC_SetPriority(I2C1_EV_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C1_EV_IRQn); - HAL_NVIC_SetPriority(I2C1_ER_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C1_ER_IRQn); - /* USER CODE BEGIN I2C1_MspInit 1 */ - - /* USER CODE END I2C1_MspInit 1 */ - } - else if(i2cHandle->Instance==I2C2) - { - /* USER CODE BEGIN I2C2_MspInit 0 */ - - /* USER CODE END I2C2_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C2; - PeriphClkInit.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**I2C2 GPIO Configuration - PB10 ------> I2C2_SCL - PB11 ------> I2C2_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C2; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* I2C2 clock enable */ - __HAL_RCC_I2C2_CLK_ENABLE(); - - /* I2C2 interrupt Init */ - HAL_NVIC_SetPriority(I2C2_EV_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C2_EV_IRQn); - HAL_NVIC_SetPriority(I2C2_ER_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C2_ER_IRQn); - /* USER CODE BEGIN I2C2_MspInit 1 */ - - /* USER CODE END I2C2_MspInit 1 */ - } - else if(i2cHandle->Instance==I2C3) - { - /* USER CODE BEGIN I2C3_MspInit 0 */ - - /* USER CODE END I2C3_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C3; - PeriphClkInit.I2c3ClockSelection = RCC_I2C3CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - __HAL_RCC_GPIOG_CLK_ENABLE(); - /**I2C3 GPIO Configuration - PG7 ------> I2C3_SCL - PG8 ------> I2C3_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; - HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - - /* I2C3 clock enable */ - __HAL_RCC_I2C3_CLK_ENABLE(); - - /* I2C3 interrupt Init */ - HAL_NVIC_SetPriority(I2C3_EV_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C3_EV_IRQn); - HAL_NVIC_SetPriority(I2C3_ER_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C3_ER_IRQn); - /* USER CODE BEGIN I2C3_MspInit 1 */ - - /* USER CODE END I2C3_MspInit 1 */ - } - else if(i2cHandle->Instance==I2C4) - { - /* USER CODE BEGIN I2C4_MspInit 0 */ - - /* USER CODE END I2C4_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C4; - PeriphClkInit.I2c4ClockSelection = RCC_I2C4CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - __HAL_RCC_GPIOF_CLK_ENABLE(); - /**I2C4 GPIO Configuration - PF14 ------> I2C4_SCL - PF15 ------> I2C4_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C4; - HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - - /* I2C4 clock enable */ - __HAL_RCC_I2C4_CLK_ENABLE(); - - /* I2C4 interrupt Init */ - HAL_NVIC_SetPriority(I2C4_EV_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C4_EV_IRQn); - HAL_NVIC_SetPriority(I2C4_ER_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C4_ER_IRQn); - /* USER CODE BEGIN I2C4_MspInit 1 */ - - /* USER CODE END I2C4_MspInit 1 */ - } -} - -void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle) -{ - - if(i2cHandle->Instance==I2C1) - { - /* USER CODE BEGIN I2C1_MspDeInit 0 */ - - /* USER CODE END I2C1_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_I2C1_CLK_DISABLE(); - - /**I2C1 GPIO Configuration - PG14 ------> I2C1_SCL - PG13 ------> I2C1_SDA - */ - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_13); - - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14); - - /* I2C1 interrupt Deinit */ - HAL_NVIC_DisableIRQ(I2C1_EV_IRQn); - HAL_NVIC_DisableIRQ(I2C1_ER_IRQn); - /* USER CODE BEGIN I2C1_MspDeInit 1 */ - - /* USER CODE END I2C1_MspDeInit 1 */ - } - else if(i2cHandle->Instance==I2C2) - { - /* USER CODE BEGIN I2C2_MspDeInit 0 */ - - /* USER CODE END I2C2_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_I2C2_CLK_DISABLE(); - - /**I2C2 GPIO Configuration - PB10 ------> I2C2_SCL - PB11 ------> I2C2_SDA - */ - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10); - - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11); - - /* I2C2 interrupt Deinit */ - HAL_NVIC_DisableIRQ(I2C2_EV_IRQn); - HAL_NVIC_DisableIRQ(I2C2_ER_IRQn); - /* USER CODE BEGIN I2C2_MspDeInit 1 */ - - /* USER CODE END I2C2_MspDeInit 1 */ - } - else if(i2cHandle->Instance==I2C3) - { - /* USER CODE BEGIN I2C3_MspDeInit 0 */ - - /* USER CODE END I2C3_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_I2C3_CLK_DISABLE(); - - /**I2C3 GPIO Configuration - PG7 ------> I2C3_SCL - PG8 ------> I2C3_SDA - */ - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_7); - - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_8); - - /* I2C3 interrupt Deinit */ - HAL_NVIC_DisableIRQ(I2C3_EV_IRQn); - HAL_NVIC_DisableIRQ(I2C3_ER_IRQn); - /* USER CODE BEGIN I2C3_MspDeInit 1 */ - - /* USER CODE END I2C3_MspDeInit 1 */ - } - else if(i2cHandle->Instance==I2C4) - { - /* USER CODE BEGIN I2C4_MspDeInit 0 */ - - /* USER CODE END I2C4_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_I2C4_CLK_DISABLE(); - - /**I2C4 GPIO Configuration - PF14 ------> I2C4_SCL - PF15 ------> I2C4_SDA - */ - HAL_GPIO_DeInit(GPIOF, GPIO_PIN_14); - - HAL_GPIO_DeInit(GPIOF, GPIO_PIN_15); - - /* I2C4 interrupt Deinit */ - HAL_NVIC_DisableIRQ(I2C4_EV_IRQn); - HAL_NVIC_DisableIRQ(I2C4_ER_IRQn); - /* USER CODE BEGIN I2C4_MspDeInit 1 */ - - /* USER CODE END I2C4_MspDeInit 1 */ - } -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file i2c.c + * @brief This file provides code for the configuration + * of the I2C instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "i2c.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +I2C_HandleTypeDef hi2c1; +I2C_HandleTypeDef hi2c2; +I2C_HandleTypeDef hi2c3; +I2C_HandleTypeDef hi2c4; + +/* I2C1 init function */ +void MX_I2C1_Init(void) +{ + + /* USER CODE BEGIN I2C1_Init 0 */ + + /* USER CODE END I2C1_Init 0 */ + + /* USER CODE BEGIN I2C1_Init 1 */ + + /* USER CODE END I2C1_Init 1 */ + hi2c1.Instance = I2C1; + hi2c1.Init.Timing = 0x10D19CE4; + hi2c1.Init.OwnAddress1 = 0; + hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c1.Init.OwnAddress2 = 0; + hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c1) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN I2C1_Init 2 */ + + /* USER CODE END I2C1_Init 2 */ + +} +/* I2C2 init function */ +void MX_I2C2_Init(void) +{ + + /* USER CODE BEGIN I2C2_Init 0 */ + + /* USER CODE END I2C2_Init 0 */ + + /* USER CODE BEGIN I2C2_Init 1 */ + + /* USER CODE END I2C2_Init 1 */ + hi2c2.Instance = I2C2; + hi2c2.Init.Timing = 0x10D19CE4; + hi2c2.Init.OwnAddress1 = 0; + hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c2.Init.OwnAddress2 = 0; + hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c2) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c2, I2C_ANALOGFILTER_ENABLE) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c2, 0) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN I2C2_Init 2 */ + + /* USER CODE END I2C2_Init 2 */ + +} +/* I2C3 init function */ +void MX_I2C3_Init(void) +{ + + /* USER CODE BEGIN I2C3_Init 0 */ + + /* USER CODE END I2C3_Init 0 */ + + /* USER CODE BEGIN I2C3_Init 1 */ + + /* USER CODE END I2C3_Init 1 */ + hi2c3.Instance = I2C3; + hi2c3.Init.Timing = 0x10D19CE4; + hi2c3.Init.OwnAddress1 = 0; + hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c3.Init.OwnAddress2 = 0; + hi2c3.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c3) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN I2C3_Init 2 */ + + /* USER CODE END I2C3_Init 2 */ + +} +/* I2C4 init function */ +void MX_I2C4_Init(void) +{ + + /* USER CODE BEGIN I2C4_Init 0 */ + + /* USER CODE END I2C4_Init 0 */ + + /* USER CODE BEGIN I2C4_Init 1 */ + + /* USER CODE END I2C4_Init 1 */ + hi2c4.Instance = I2C4; + hi2c4.Init.Timing = 0x10D19CE4; + hi2c4.Init.OwnAddress1 = 0; + hi2c4.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c4.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c4.Init.OwnAddress2 = 0; + hi2c4.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c4.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c4.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c4) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c4, I2C_ANALOGFILTER_ENABLE) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c4, 0) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN I2C4_Init 2 */ + + /* USER CODE END I2C4_Init 2 */ + +} + +void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(i2cHandle->Instance==I2C1) + { + /* USER CODE BEGIN I2C1_MspInit 0 */ + + /* USER CODE END I2C1_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; + PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + __HAL_RCC_GPIOG_CLK_ENABLE(); + /**I2C1 GPIO Configuration + PG14 ------> I2C1_SCL + PG13 ------> I2C1_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + + /* I2C1 clock enable */ + __HAL_RCC_I2C1_CLK_ENABLE(); + + /* I2C1 interrupt Init */ + HAL_NVIC_SetPriority(I2C1_EV_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C1_EV_IRQn); + HAL_NVIC_SetPriority(I2C1_ER_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C1_ER_IRQn); + /* USER CODE BEGIN I2C1_MspInit 1 */ + + /* USER CODE END I2C1_MspInit 1 */ + } + else if(i2cHandle->Instance==I2C2) + { + /* USER CODE BEGIN I2C2_MspInit 0 */ + + /* USER CODE END I2C2_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C2; + PeriphClkInit.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**I2C2 GPIO Configuration + PB10 ------> I2C2_SCL + PB11 ------> I2C2_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C2; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* I2C2 clock enable */ + __HAL_RCC_I2C2_CLK_ENABLE(); + + /* I2C2 interrupt Init */ + HAL_NVIC_SetPriority(I2C2_EV_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C2_EV_IRQn); + HAL_NVIC_SetPriority(I2C2_ER_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C2_ER_IRQn); + /* USER CODE BEGIN I2C2_MspInit 1 */ + + /* USER CODE END I2C2_MspInit 1 */ + } + else if(i2cHandle->Instance==I2C3) + { + /* USER CODE BEGIN I2C3_MspInit 0 */ + + /* USER CODE END I2C3_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C3; + PeriphClkInit.I2c3ClockSelection = RCC_I2C3CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + __HAL_RCC_GPIOG_CLK_ENABLE(); + /**I2C3 GPIO Configuration + PG7 ------> I2C3_SCL + PG8 ------> I2C3_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; + HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + + /* I2C3 clock enable */ + __HAL_RCC_I2C3_CLK_ENABLE(); + + /* I2C3 interrupt Init */ + HAL_NVIC_SetPriority(I2C3_EV_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C3_EV_IRQn); + HAL_NVIC_SetPriority(I2C3_ER_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C3_ER_IRQn); + /* USER CODE BEGIN I2C3_MspInit 1 */ + + /* USER CODE END I2C3_MspInit 1 */ + } + else if(i2cHandle->Instance==I2C4) + { + /* USER CODE BEGIN I2C4_MspInit 0 */ + + /* USER CODE END I2C4_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C4; + PeriphClkInit.I2c4ClockSelection = RCC_I2C4CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + __HAL_RCC_GPIOF_CLK_ENABLE(); + /**I2C4 GPIO Configuration + PF14 ------> I2C4_SCL + PF15 ------> I2C4_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C4; + HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); + + /* I2C4 clock enable */ + __HAL_RCC_I2C4_CLK_ENABLE(); + + /* I2C4 interrupt Init */ + HAL_NVIC_SetPriority(I2C4_EV_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C4_EV_IRQn); + HAL_NVIC_SetPriority(I2C4_ER_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C4_ER_IRQn); + /* USER CODE BEGIN I2C4_MspInit 1 */ + + /* USER CODE END I2C4_MspInit 1 */ + } +} + +void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle) +{ + + if(i2cHandle->Instance==I2C1) + { + /* USER CODE BEGIN I2C1_MspDeInit 0 */ + + /* USER CODE END I2C1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C1_CLK_DISABLE(); + + /**I2C1 GPIO Configuration + PG14 ------> I2C1_SCL + PG13 ------> I2C1_SDA + */ + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_13); + + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14); + + /* I2C1 interrupt Deinit */ + HAL_NVIC_DisableIRQ(I2C1_EV_IRQn); + HAL_NVIC_DisableIRQ(I2C1_ER_IRQn); + /* USER CODE BEGIN I2C1_MspDeInit 1 */ + + /* USER CODE END I2C1_MspDeInit 1 */ + } + else if(i2cHandle->Instance==I2C2) + { + /* USER CODE BEGIN I2C2_MspDeInit 0 */ + + /* USER CODE END I2C2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C2_CLK_DISABLE(); + + /**I2C2 GPIO Configuration + PB10 ------> I2C2_SCL + PB11 ------> I2C2_SDA + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11); + + /* I2C2 interrupt Deinit */ + HAL_NVIC_DisableIRQ(I2C2_EV_IRQn); + HAL_NVIC_DisableIRQ(I2C2_ER_IRQn); + /* USER CODE BEGIN I2C2_MspDeInit 1 */ + + /* USER CODE END I2C2_MspDeInit 1 */ + } + else if(i2cHandle->Instance==I2C3) + { + /* USER CODE BEGIN I2C3_MspDeInit 0 */ + + /* USER CODE END I2C3_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C3_CLK_DISABLE(); + + /**I2C3 GPIO Configuration + PG7 ------> I2C3_SCL + PG8 ------> I2C3_SDA + */ + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_7); + + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_8); + + /* I2C3 interrupt Deinit */ + HAL_NVIC_DisableIRQ(I2C3_EV_IRQn); + HAL_NVIC_DisableIRQ(I2C3_ER_IRQn); + /* USER CODE BEGIN I2C3_MspDeInit 1 */ + + /* USER CODE END I2C3_MspDeInit 1 */ + } + else if(i2cHandle->Instance==I2C4) + { + /* USER CODE BEGIN I2C4_MspDeInit 0 */ + + /* USER CODE END I2C4_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C4_CLK_DISABLE(); + + /**I2C4 GPIO Configuration + PF14 ------> I2C4_SCL + PF15 ------> I2C4_SDA + */ + HAL_GPIO_DeInit(GPIOF, GPIO_PIN_14); + + HAL_GPIO_DeInit(GPIOF, GPIO_PIN_15); + + /* I2C4 interrupt Deinit */ + HAL_NVIC_DisableIRQ(I2C4_EV_IRQn); + HAL_NVIC_DisableIRQ(I2C4_ER_IRQn); + /* USER CODE BEGIN I2C4_MspDeInit 1 */ + + /* USER CODE END I2C4_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bootstrap/Core/Src/iwdg.c b/eps/v1/firmware/bootstrap/Core/Src/iwdg.c similarity index 96% rename from eps/firmware/bootstrap/Core/Src/iwdg.c rename to eps/v1/firmware/bootstrap/Core/Src/iwdg.c index a10b07e..201213a 100644 --- a/eps/firmware/bootstrap/Core/Src/iwdg.c +++ b/eps/v1/firmware/bootstrap/Core/Src/iwdg.c @@ -1,56 +1,56 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file iwdg.c - * @brief This file provides code for the configuration - * of the IWDG instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "iwdg.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -IWDG_HandleTypeDef hiwdg; - -/* IWDG init function */ -void MX_IWDG_Init(void) -{ - - /* USER CODE BEGIN IWDG_Init 0 */ - - /* USER CODE END IWDG_Init 0 */ - - /* USER CODE BEGIN IWDG_Init 1 */ - - /* USER CODE END IWDG_Init 1 */ - hiwdg.Instance = IWDG; - hiwdg.Init.Prescaler = IWDG_PRESCALER_4; - hiwdg.Init.Window = 4095; - hiwdg.Init.Reload = 4095; - if (HAL_IWDG_Init(&hiwdg) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN IWDG_Init 2 */ - - /* USER CODE END IWDG_Init 2 */ - -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file iwdg.c + * @brief This file provides code for the configuration + * of the IWDG instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "iwdg.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +IWDG_HandleTypeDef hiwdg; + +/* IWDG init function */ +void MX_IWDG_Init(void) +{ + + /* USER CODE BEGIN IWDG_Init 0 */ + + /* USER CODE END IWDG_Init 0 */ + + /* USER CODE BEGIN IWDG_Init 1 */ + + /* USER CODE END IWDG_Init 1 */ + hiwdg.Instance = IWDG; + hiwdg.Init.Prescaler = IWDG_PRESCALER_4; + hiwdg.Init.Window = 4095; + hiwdg.Init.Reload = 4095; + if (HAL_IWDG_Init(&hiwdg) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN IWDG_Init 2 */ + + /* USER CODE END IWDG_Init 2 */ + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bootstrap/Core/Src/main.c b/eps/v1/firmware/bootstrap/Core/Src/main.c similarity index 96% rename from eps/firmware/bootstrap/Core/Src/main.c rename to eps/v1/firmware/bootstrap/Core/Src/main.c index f73be58..76d380c 100644 --- a/eps/firmware/bootstrap/Core/Src/main.c +++ b/eps/v1/firmware/bootstrap/Core/Src/main.c @@ -1,201 +1,201 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file : main.c - * @brief : Main program body - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "main.h" -#include "adc.h" -#include "dma.h" -#include "i2c.h" -#include "iwdg.h" -#include "tim.h" -#include "usart.h" -#include "gpio.h" - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN PTD */ - -/* USER CODE END PTD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN PD */ - -/* USER CODE END PD */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN PM */ - -/* USER CODE END PM */ - -/* Private variables ---------------------------------------------------------*/ - -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -void SystemClock_Config(void); -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* Private user code ---------------------------------------------------------*/ -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/** - * @brief The application entry point. - * @retval int - */ -int main(void) -{ - - /* USER CODE BEGIN 1 */ - - /* USER CODE END 1 */ - - /* MCU Configuration--------------------------------------------------------*/ - - /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); - - /* USER CODE BEGIN Init */ - - /* USER CODE END Init */ - - /* Configure the system clock */ - SystemClock_Config(); - - /* USER CODE BEGIN SysInit */ - - /* USER CODE END SysInit */ - - /* Initialize all configured peripherals */ - MX_GPIO_Init(); - MX_DMA_Init(); - MX_ADC2_Init(); - MX_I2C1_Init(); - MX_I2C2_Init(); - MX_I2C3_Init(); - MX_I2C4_Init(); - MX_IWDG_Init(); - MX_USART1_UART_Init(); - MX_USART3_UART_Init(); - MX_TIM1_Init(); - /* USER CODE BEGIN 2 */ - - /* USER CODE END 2 */ - - /* Infinite loop */ - /* USER CODE BEGIN WHILE */ - while (1) { - /* USER CODE END WHILE */ - - /* USER CODE BEGIN 3 */ - } - /* USER CODE END 3 */ -} - -/** - * @brief System Clock Configuration - * @retval None - */ -void SystemClock_Config(void) -{ - RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - - /** Configure the main internal regulator output voltage - */ - if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) - { - Error_Handler(); - } - - /** Initializes the RCC Oscillators according to the specified parameters - * in the RCC_OscInitTypeDef structure. - */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; - RCC_OscInitStruct.HSEState = RCC_HSE_ON; - RCC_OscInitStruct.LSIState = RCC_LSI_ON; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; - RCC_OscInitStruct.PLL.PLLM = 1; - RCC_OscInitStruct.PLL.PLLN = 20; - RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; - RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2; - RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - { - Error_Handler(); - } - - /** Initializes the CPU, AHB and APB buses clocks - */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) - { - Error_Handler(); - } -} - -/* USER CODE BEGIN 4 */ - -/* USER CODE END 4 */ - -/** - * @brief This function is executed in case of error occurrence. - * @retval None - */ -void Error_Handler(void) -{ - /* USER CODE BEGIN Error_Handler_Debug */ - /* User can add his own implementation to report the HAL error return state */ - __disable_irq(); - while (1) { - } - /* USER CODE END Error_Handler_Debug */ -} -#ifdef USE_FULL_ASSERT -/** - * @brief Reports the name of the source file and the source line number - * where the assert_param error has occurred. - * @param file: pointer to the source file name - * @param line: assert_param error line source number - * @retval None - */ -void assert_failed(uint8_t *file, uint32_t line) -{ - /* USER CODE BEGIN 6 */ - /* User can add his own implementation to report the file name and line - number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, - line) */ - /* USER CODE END 6 */ -} -#endif /* USE_FULL_ASSERT */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "adc.h" +#include "dma.h" +#include "i2c.h" +#include "iwdg.h" +#include "tim.h" +#include "usart.h" +#include "gpio.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_DMA_Init(); + MX_ADC2_Init(); + MX_I2C1_Init(); + MX_I2C2_Init(); + MX_I2C3_Init(); + MX_I2C4_Init(); + MX_IWDG_Init(); + MX_USART1_UART_Init(); + MX_USART3_UART_Init(); + MX_TIM1_Init(); + /* USER CODE BEGIN 2 */ + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) + { + Error_Handler(); + } + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.LSIState = RCC_LSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 1; + RCC_OscInitStruct.PLL.PLLN = 20; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2; + RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) + { + Error_Handler(); + } +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) { + } + /* USER CODE END Error_Handler_Debug */ +} +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line + number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, + line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ diff --git a/eps/firmware/bootstrap/Core/Src/stm32l4xx_hal_msp.c b/eps/v1/firmware/bootstrap/Core/Src/stm32l4xx_hal_msp.c similarity index 96% rename from eps/firmware/bootstrap/Core/Src/stm32l4xx_hal_msp.c rename to eps/v1/firmware/bootstrap/Core/Src/stm32l4xx_hal_msp.c index 07de14e..62249e4 100644 --- a/eps/firmware/bootstrap/Core/Src/stm32l4xx_hal_msp.c +++ b/eps/v1/firmware/bootstrap/Core/Src/stm32l4xx_hal_msp.c @@ -1,82 +1,82 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file stm32l4xx_hal_msp.c - * @brief This file provides code for the MSP Initialization - * and de-Initialization codes. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN TD */ - -/* USER CODE END TD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN Define */ - -/* USER CODE END Define */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN Macro */ - -/* USER CODE END Macro */ - -/* Private variables ---------------------------------------------------------*/ -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* External functions --------------------------------------------------------*/ -/* USER CODE BEGIN ExternalFunctions */ - -/* USER CODE END ExternalFunctions */ - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ -/** - * Initializes the Global MSP. - */ -void HAL_MspInit(void) -{ - - /* USER CODE BEGIN MspInit 0 */ - - /* USER CODE END MspInit 0 */ - - __HAL_RCC_SYSCFG_CLK_ENABLE(); - __HAL_RCC_PWR_CLK_ENABLE(); - - /* System interrupt init*/ - - /* USER CODE BEGIN MspInit 1 */ - - /* USER CODE END MspInit 1 */ -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_hal_msp.c + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bootstrap/Core/Src/stm32l4xx_it.c b/eps/v1/firmware/bootstrap/Core/Src/stm32l4xx_it.c similarity index 95% rename from eps/firmware/bootstrap/Core/Src/stm32l4xx_it.c rename to eps/v1/firmware/bootstrap/Core/Src/stm32l4xx_it.c index 70077bf..392aa39 100644 --- a/eps/firmware/bootstrap/Core/Src/stm32l4xx_it.c +++ b/eps/v1/firmware/bootstrap/Core/Src/stm32l4xx_it.c @@ -1,378 +1,378 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file stm32l4xx_it.c - * @brief Interrupt Service Routines. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" -#include "stm32l4xx_it.h" -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ -/* USER CODE END Includes */ - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN TD */ - -/* USER CODE END TD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN PD */ - -/* USER CODE END PD */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN PM */ - -/* USER CODE END PM */ - -/* Private variables ---------------------------------------------------------*/ -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* Private user code ---------------------------------------------------------*/ -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/* External variables --------------------------------------------------------*/ -extern DMA_HandleTypeDef hdma_adc2; -extern ADC_HandleTypeDef hadc2; -extern I2C_HandleTypeDef hi2c1; -extern I2C_HandleTypeDef hi2c2; -extern I2C_HandleTypeDef hi2c3; -extern I2C_HandleTypeDef hi2c4; -extern DMA_HandleTypeDef hdma_usart1_rx; -extern DMA_HandleTypeDef hdma_usart3_rx; -/* USER CODE BEGIN EV */ - -/* USER CODE END EV */ - -/******************************************************************************/ -/* Cortex-M4 Processor Interruption and Exception Handlers */ -/******************************************************************************/ -/** - * @brief This function handles Non maskable interrupt. - */ -void NMI_Handler(void) -{ - /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ - - /* USER CODE END NonMaskableInt_IRQn 0 */ - /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ - while (1) - { - } - /* USER CODE END NonMaskableInt_IRQn 1 */ -} - -/** - * @brief This function handles Hard fault interrupt. - */ -void HardFault_Handler(void) -{ - /* USER CODE BEGIN HardFault_IRQn 0 */ - - /* USER CODE END HardFault_IRQn 0 */ - while (1) - { - /* USER CODE BEGIN W1_HardFault_IRQn 0 */ - /* USER CODE END W1_HardFault_IRQn 0 */ - } -} - -/** - * @brief This function handles Memory management fault. - */ -void MemManage_Handler(void) -{ - /* USER CODE BEGIN MemoryManagement_IRQn 0 */ - - /* USER CODE END MemoryManagement_IRQn 0 */ - while (1) - { - /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ - /* USER CODE END W1_MemoryManagement_IRQn 0 */ - } -} - -/** - * @brief This function handles Prefetch fault, memory access fault. - */ -void BusFault_Handler(void) -{ - /* USER CODE BEGIN BusFault_IRQn 0 */ - - /* USER CODE END BusFault_IRQn 0 */ - while (1) - { - /* USER CODE BEGIN W1_BusFault_IRQn 0 */ - /* USER CODE END W1_BusFault_IRQn 0 */ - } -} - -/** - * @brief This function handles Undefined instruction or illegal state. - */ -void UsageFault_Handler(void) -{ - /* USER CODE BEGIN UsageFault_IRQn 0 */ - - /* USER CODE END UsageFault_IRQn 0 */ - while (1) - { - /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ - /* USER CODE END W1_UsageFault_IRQn 0 */ - } -} - -/** - * @brief This function handles System service call via SWI instruction. - */ -void SVC_Handler(void) -{ - /* USER CODE BEGIN SVCall_IRQn 0 */ - - /* USER CODE END SVCall_IRQn 0 */ - /* USER CODE BEGIN SVCall_IRQn 1 */ - - /* USER CODE END SVCall_IRQn 1 */ -} - -/** - * @brief This function handles Debug monitor. - */ -void DebugMon_Handler(void) -{ - /* USER CODE BEGIN DebugMonitor_IRQn 0 */ - - /* USER CODE END DebugMonitor_IRQn 0 */ - /* USER CODE BEGIN DebugMonitor_IRQn 1 */ - - /* USER CODE END DebugMonitor_IRQn 1 */ -} - -/** - * @brief This function handles Pendable request for system service. - */ -void PendSV_Handler(void) -{ - /* USER CODE BEGIN PendSV_IRQn 0 */ - - /* USER CODE END PendSV_IRQn 0 */ - /* USER CODE BEGIN PendSV_IRQn 1 */ - - /* USER CODE END PendSV_IRQn 1 */ -} - -/** - * @brief This function handles System tick timer. - */ -void SysTick_Handler(void) -{ - /* USER CODE BEGIN SysTick_IRQn 0 */ - - /* USER CODE END SysTick_IRQn 0 */ - HAL_IncTick(); - /* USER CODE BEGIN SysTick_IRQn 1 */ - - /* USER CODE END SysTick_IRQn 1 */ -} - -/******************************************************************************/ -/* STM32L4xx Peripheral Interrupt Handlers */ -/* Add here the Interrupt Handlers for the used peripherals. */ -/* For the available peripheral interrupt handler names, */ -/* please refer to the startup file (startup_stm32l4xx.s). */ -/******************************************************************************/ - -/** - * @brief This function handles DMA1 channel2 global interrupt. - */ -void DMA1_Channel2_IRQHandler(void) -{ - /* USER CODE BEGIN DMA1_Channel2_IRQn 0 */ - - /* USER CODE END DMA1_Channel2_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_adc2); - /* USER CODE BEGIN DMA1_Channel2_IRQn 1 */ - - /* USER CODE END DMA1_Channel2_IRQn 1 */ -} - -/** - * @brief This function handles DMA1 channel3 global interrupt. - */ -void DMA1_Channel3_IRQHandler(void) -{ - /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */ - - /* USER CODE END DMA1_Channel3_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_usart3_rx); - /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */ - - /* USER CODE END DMA1_Channel3_IRQn 1 */ -} - -/** - * @brief This function handles DMA1 channel5 global interrupt. - */ -void DMA1_Channel5_IRQHandler(void) -{ - /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */ - - /* USER CODE END DMA1_Channel5_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_usart1_rx); - /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */ - - /* USER CODE END DMA1_Channel5_IRQn 1 */ -} - -/** - * @brief This function handles ADC1 and ADC2 interrupts. - */ -void ADC1_2_IRQHandler(void) -{ - /* USER CODE BEGIN ADC1_2_IRQn 0 */ - - /* USER CODE END ADC1_2_IRQn 0 */ - HAL_ADC_IRQHandler(&hadc2); - /* USER CODE BEGIN ADC1_2_IRQn 1 */ - - /* USER CODE END ADC1_2_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 event interrupt. - */ -void I2C1_EV_IRQHandler(void) -{ - /* USER CODE BEGIN I2C1_EV_IRQn 0 */ - - /* USER CODE END I2C1_EV_IRQn 0 */ - HAL_I2C_EV_IRQHandler(&hi2c1); - /* USER CODE BEGIN I2C1_EV_IRQn 1 */ - - /* USER CODE END I2C1_EV_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 error interrupt. - */ -void I2C1_ER_IRQHandler(void) -{ - /* USER CODE BEGIN I2C1_ER_IRQn 0 */ - - /* USER CODE END I2C1_ER_IRQn 0 */ - HAL_I2C_ER_IRQHandler(&hi2c1); - /* USER CODE BEGIN I2C1_ER_IRQn 1 */ - - /* USER CODE END I2C1_ER_IRQn 1 */ -} - -/** - * @brief This function handles I2C2 event interrupt. - */ -void I2C2_EV_IRQHandler(void) -{ - /* USER CODE BEGIN I2C2_EV_IRQn 0 */ - - /* USER CODE END I2C2_EV_IRQn 0 */ - HAL_I2C_EV_IRQHandler(&hi2c2); - /* USER CODE BEGIN I2C2_EV_IRQn 1 */ - - /* USER CODE END I2C2_EV_IRQn 1 */ -} - -/** - * @brief This function handles I2C2 error interrupt. - */ -void I2C2_ER_IRQHandler(void) -{ - /* USER CODE BEGIN I2C2_ER_IRQn 0 */ - - /* USER CODE END I2C2_ER_IRQn 0 */ - HAL_I2C_ER_IRQHandler(&hi2c2); - /* USER CODE BEGIN I2C2_ER_IRQn 1 */ - - /* USER CODE END I2C2_ER_IRQn 1 */ -} - -/** - * @brief This function handles I2C3 event interrupt. - */ -void I2C3_EV_IRQHandler(void) -{ - /* USER CODE BEGIN I2C3_EV_IRQn 0 */ - - /* USER CODE END I2C3_EV_IRQn 0 */ - HAL_I2C_EV_IRQHandler(&hi2c3); - /* USER CODE BEGIN I2C3_EV_IRQn 1 */ - - /* USER CODE END I2C3_EV_IRQn 1 */ -} - -/** - * @brief This function handles I2C3 error interrupt. - */ -void I2C3_ER_IRQHandler(void) -{ - /* USER CODE BEGIN I2C3_ER_IRQn 0 */ - - /* USER CODE END I2C3_ER_IRQn 0 */ - HAL_I2C_ER_IRQHandler(&hi2c3); - /* USER CODE BEGIN I2C3_ER_IRQn 1 */ - - /* USER CODE END I2C3_ER_IRQn 1 */ -} - -/** - * @brief This function handles I2C4 event interrupt. - */ -void I2C4_EV_IRQHandler(void) -{ - /* USER CODE BEGIN I2C4_EV_IRQn 0 */ - - /* USER CODE END I2C4_EV_IRQn 0 */ - HAL_I2C_EV_IRQHandler(&hi2c4); - /* USER CODE BEGIN I2C4_EV_IRQn 1 */ - - /* USER CODE END I2C4_EV_IRQn 1 */ -} - -/** - * @brief This function handles I2C4 error interrupt. - */ -void I2C4_ER_IRQHandler(void) -{ - /* USER CODE BEGIN I2C4_ER_IRQn 0 */ - - /* USER CODE END I2C4_ER_IRQn 0 */ - HAL_I2C_ER_IRQHandler(&hi2c4); - /* USER CODE BEGIN I2C4_ER_IRQn 1 */ - - /* USER CODE END I2C4_ER_IRQn 1 */ -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32l4xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ +extern DMA_HandleTypeDef hdma_adc2; +extern ADC_HandleTypeDef hadc2; +extern I2C_HandleTypeDef hi2c1; +extern I2C_HandleTypeDef hi2c2; +extern I2C_HandleTypeDef hi2c3; +extern I2C_HandleTypeDef hi2c4; +extern DMA_HandleTypeDef hdma_usart1_rx; +extern DMA_HandleTypeDef hdma_usart3_rx; +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + while (1) + { + } + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32L4xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32l4xx.s). */ +/******************************************************************************/ + +/** + * @brief This function handles DMA1 channel2 global interrupt. + */ +void DMA1_Channel2_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel2_IRQn 0 */ + + /* USER CODE END DMA1_Channel2_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_adc2); + /* USER CODE BEGIN DMA1_Channel2_IRQn 1 */ + + /* USER CODE END DMA1_Channel2_IRQn 1 */ +} + +/** + * @brief This function handles DMA1 channel3 global interrupt. + */ +void DMA1_Channel3_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */ + + /* USER CODE END DMA1_Channel3_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart3_rx); + /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */ + + /* USER CODE END DMA1_Channel3_IRQn 1 */ +} + +/** + * @brief This function handles DMA1 channel5 global interrupt. + */ +void DMA1_Channel5_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */ + + /* USER CODE END DMA1_Channel5_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart1_rx); + /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */ + + /* USER CODE END DMA1_Channel5_IRQn 1 */ +} + +/** + * @brief This function handles ADC1 and ADC2 interrupts. + */ +void ADC1_2_IRQHandler(void) +{ + /* USER CODE BEGIN ADC1_2_IRQn 0 */ + + /* USER CODE END ADC1_2_IRQn 0 */ + HAL_ADC_IRQHandler(&hadc2); + /* USER CODE BEGIN ADC1_2_IRQn 1 */ + + /* USER CODE END ADC1_2_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 event interrupt. + */ +void I2C1_EV_IRQHandler(void) +{ + /* USER CODE BEGIN I2C1_EV_IRQn 0 */ + + /* USER CODE END I2C1_EV_IRQn 0 */ + HAL_I2C_EV_IRQHandler(&hi2c1); + /* USER CODE BEGIN I2C1_EV_IRQn 1 */ + + /* USER CODE END I2C1_EV_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 error interrupt. + */ +void I2C1_ER_IRQHandler(void) +{ + /* USER CODE BEGIN I2C1_ER_IRQn 0 */ + + /* USER CODE END I2C1_ER_IRQn 0 */ + HAL_I2C_ER_IRQHandler(&hi2c1); + /* USER CODE BEGIN I2C1_ER_IRQn 1 */ + + /* USER CODE END I2C1_ER_IRQn 1 */ +} + +/** + * @brief This function handles I2C2 event interrupt. + */ +void I2C2_EV_IRQHandler(void) +{ + /* USER CODE BEGIN I2C2_EV_IRQn 0 */ + + /* USER CODE END I2C2_EV_IRQn 0 */ + HAL_I2C_EV_IRQHandler(&hi2c2); + /* USER CODE BEGIN I2C2_EV_IRQn 1 */ + + /* USER CODE END I2C2_EV_IRQn 1 */ +} + +/** + * @brief This function handles I2C2 error interrupt. + */ +void I2C2_ER_IRQHandler(void) +{ + /* USER CODE BEGIN I2C2_ER_IRQn 0 */ + + /* USER CODE END I2C2_ER_IRQn 0 */ + HAL_I2C_ER_IRQHandler(&hi2c2); + /* USER CODE BEGIN I2C2_ER_IRQn 1 */ + + /* USER CODE END I2C2_ER_IRQn 1 */ +} + +/** + * @brief This function handles I2C3 event interrupt. + */ +void I2C3_EV_IRQHandler(void) +{ + /* USER CODE BEGIN I2C3_EV_IRQn 0 */ + + /* USER CODE END I2C3_EV_IRQn 0 */ + HAL_I2C_EV_IRQHandler(&hi2c3); + /* USER CODE BEGIN I2C3_EV_IRQn 1 */ + + /* USER CODE END I2C3_EV_IRQn 1 */ +} + +/** + * @brief This function handles I2C3 error interrupt. + */ +void I2C3_ER_IRQHandler(void) +{ + /* USER CODE BEGIN I2C3_ER_IRQn 0 */ + + /* USER CODE END I2C3_ER_IRQn 0 */ + HAL_I2C_ER_IRQHandler(&hi2c3); + /* USER CODE BEGIN I2C3_ER_IRQn 1 */ + + /* USER CODE END I2C3_ER_IRQn 1 */ +} + +/** + * @brief This function handles I2C4 event interrupt. + */ +void I2C4_EV_IRQHandler(void) +{ + /* USER CODE BEGIN I2C4_EV_IRQn 0 */ + + /* USER CODE END I2C4_EV_IRQn 0 */ + HAL_I2C_EV_IRQHandler(&hi2c4); + /* USER CODE BEGIN I2C4_EV_IRQn 1 */ + + /* USER CODE END I2C4_EV_IRQn 1 */ +} + +/** + * @brief This function handles I2C4 error interrupt. + */ +void I2C4_ER_IRQHandler(void) +{ + /* USER CODE BEGIN I2C4_ER_IRQn 0 */ + + /* USER CODE END I2C4_ER_IRQn 0 */ + HAL_I2C_ER_IRQHandler(&hi2c4); + /* USER CODE BEGIN I2C4_ER_IRQn 1 */ + + /* USER CODE END I2C4_ER_IRQn 1 */ +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bootstrap/Core/Src/syscalls.c b/eps/v1/firmware/bootstrap/Core/Src/syscalls.c similarity index 100% rename from eps/firmware/bootstrap/Core/Src/syscalls.c rename to eps/v1/firmware/bootstrap/Core/Src/syscalls.c diff --git a/eps/firmware/bootstrap/Core/Src/sysmem.c b/eps/v1/firmware/bootstrap/Core/Src/sysmem.c similarity index 100% rename from eps/firmware/bootstrap/Core/Src/sysmem.c rename to eps/v1/firmware/bootstrap/Core/Src/sysmem.c diff --git a/eps/firmware/bootstrap/Core/Src/system_stm32l4xx.c b/eps/v1/firmware/bootstrap/Core/Src/system_stm32l4xx.c similarity index 100% rename from eps/firmware/bootstrap/Core/Src/system_stm32l4xx.c rename to eps/v1/firmware/bootstrap/Core/Src/system_stm32l4xx.c diff --git a/eps/firmware/bootstrap/Core/Src/tim.c b/eps/v1/firmware/bootstrap/Core/Src/tim.c similarity index 96% rename from eps/firmware/bootstrap/Core/Src/tim.c rename to eps/v1/firmware/bootstrap/Core/Src/tim.c index 58bdfc8..1a34f83 100644 --- a/eps/firmware/bootstrap/Core/Src/tim.c +++ b/eps/v1/firmware/bootstrap/Core/Src/tim.c @@ -1,106 +1,106 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file tim.c - * @brief This file provides code for the configuration - * of the TIM instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "tim.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -TIM_HandleTypeDef htim1; - -/* TIM1 init function */ -void MX_TIM1_Init(void) -{ - - /* USER CODE BEGIN TIM1_Init 0 */ - - /* USER CODE END TIM1_Init 0 */ - - TIM_ClockConfigTypeDef sClockSourceConfig = {0}; - TIM_MasterConfigTypeDef sMasterConfig = {0}; - - /* USER CODE BEGIN TIM1_Init 1 */ - - /* USER CODE END TIM1_Init 1 */ - htim1.Instance = TIM1; - htim1.Init.Prescaler = 7999; - htim1.Init.CounterMode = TIM_COUNTERMODE_UP; - htim1.Init.Period = 999; - htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; - htim1.Init.RepetitionCounter = 0; - htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - if (HAL_TIM_Base_Init(&htim1) != HAL_OK) - { - Error_Handler(); - } - sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; - if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) - { - Error_Handler(); - } - sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; - sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET; - sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; - if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN TIM1_Init 2 */ - - /* USER CODE END TIM1_Init 2 */ - -} - -void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) -{ - - if(tim_baseHandle->Instance==TIM1) - { - /* USER CODE BEGIN TIM1_MspInit 0 */ - - /* USER CODE END TIM1_MspInit 0 */ - /* TIM1 clock enable */ - __HAL_RCC_TIM1_CLK_ENABLE(); - /* USER CODE BEGIN TIM1_MspInit 1 */ - - /* USER CODE END TIM1_MspInit 1 */ - } -} - -void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) -{ - - if(tim_baseHandle->Instance==TIM1) - { - /* USER CODE BEGIN TIM1_MspDeInit 0 */ - - /* USER CODE END TIM1_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM1_CLK_DISABLE(); - /* USER CODE BEGIN TIM1_MspDeInit 1 */ - - /* USER CODE END TIM1_MspDeInit 1 */ - } -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file tim.c + * @brief This file provides code for the configuration + * of the TIM instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "tim.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +TIM_HandleTypeDef htim1; + +/* TIM1 init function */ +void MX_TIM1_Init(void) +{ + + /* USER CODE BEGIN TIM1_Init 0 */ + + /* USER CODE END TIM1_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + + /* USER CODE BEGIN TIM1_Init 1 */ + + /* USER CODE END TIM1_Init 1 */ + htim1.Instance = TIM1; + htim1.Init.Prescaler = 7999; + htim1.Init.CounterMode = TIM_COUNTERMODE_UP; + htim1.Init.Period = 999; + htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim1.Init.RepetitionCounter = 0; + htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim1) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; + sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM1_Init 2 */ + + /* USER CODE END TIM1_Init 2 */ + +} + +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) +{ + + if(tim_baseHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspInit 0 */ + + /* USER CODE END TIM1_MspInit 0 */ + /* TIM1 clock enable */ + __HAL_RCC_TIM1_CLK_ENABLE(); + /* USER CODE BEGIN TIM1_MspInit 1 */ + + /* USER CODE END TIM1_MspInit 1 */ + } +} + +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) +{ + + if(tim_baseHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspDeInit 0 */ + + /* USER CODE END TIM1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM1_CLK_DISABLE(); + /* USER CODE BEGIN TIM1_MspDeInit 1 */ + + /* USER CODE END TIM1_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bsp/mcu/Src/usart.c b/eps/v1/firmware/bootstrap/Core/Src/usart.c similarity index 96% rename from eps/firmware/bsp/mcu/Src/usart.c rename to eps/v1/firmware/bootstrap/Core/Src/usart.c index 3b74441..9e789ef 100644 --- a/eps/firmware/bsp/mcu/Src/usart.c +++ b/eps/v1/firmware/bootstrap/Core/Src/usart.c @@ -1,254 +1,254 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file usart.c - * @brief This file provides code for the configuration - * of the USART instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "usart.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -UART_HandleTypeDef huart1; -UART_HandleTypeDef huart3; -DMA_HandleTypeDef hdma_usart1_rx; -DMA_HandleTypeDef hdma_usart3_rx; - -/* USART1 init function */ - -void MX_USART1_UART_Init(void) -{ - - /* USER CODE BEGIN USART1_Init 0 */ - - /* USER CODE END USART1_Init 0 */ - - /* USER CODE BEGIN USART1_Init 1 */ - - /* USER CODE END USART1_Init 1 */ - huart1.Instance = USART1; - huart1.Init.BaudRate = 115200; - huart1.Init.WordLength = UART_WORDLENGTH_8B; - huart1.Init.StopBits = UART_STOPBITS_1; - huart1.Init.Parity = UART_PARITY_NONE; - huart1.Init.Mode = UART_MODE_TX_RX; - huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart1.Init.OverSampling = UART_OVERSAMPLING_16; - huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - if (HAL_UART_Init(&huart1) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN USART1_Init 2 */ - - /* USER CODE END USART1_Init 2 */ - -} -/* USART3 init function */ - -void MX_USART3_UART_Init(void) -{ - - /* USER CODE BEGIN USART3_Init 0 */ - - /* USER CODE END USART3_Init 0 */ - - /* USER CODE BEGIN USART3_Init 1 */ - - /* USER CODE END USART3_Init 1 */ - huart3.Instance = USART3; - huart3.Init.BaudRate = 115200; - huart3.Init.WordLength = UART_WORDLENGTH_8B; - huart3.Init.StopBits = UART_STOPBITS_1; - huart3.Init.Parity = UART_PARITY_NONE; - huart3.Init.Mode = UART_MODE_TX_RX; - huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart3.Init.OverSampling = UART_OVERSAMPLING_16; - huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - if (HAL_UART_Init(&huart3) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN USART3_Init 2 */ - - /* USER CODE END USART3_Init 2 */ - -} - -void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) -{ - - GPIO_InitTypeDef GPIO_InitStruct = {0}; - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - if(uartHandle->Instance==USART1) - { - /* USER CODE BEGIN USART1_MspInit 0 */ - - /* USER CODE END USART1_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1; - PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - /* USART1 clock enable */ - __HAL_RCC_USART1_CLK_ENABLE(); - - __HAL_RCC_GPIOG_CLK_ENABLE(); - HAL_PWREx_EnableVddIO2(); - /**USART1 GPIO Configuration - PG9 ------> USART1_TX - PG10 ------> USART1_RX - */ - GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF7_USART1; - HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - - /* USART1 DMA Init */ - /* USART1_RX Init */ - hdma_usart1_rx.Instance = DMA1_Channel5; - hdma_usart1_rx.Init.Request = DMA_REQUEST_2; - hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; - hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE; - hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - hdma_usart1_rx.Init.Mode = DMA_CIRCULAR; - hdma_usart1_rx.Init.Priority = DMA_PRIORITY_HIGH; - if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK) - { - Error_Handler(); - } - - __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart1_rx); - - /* USER CODE BEGIN USART1_MspInit 1 */ - - /* USER CODE END USART1_MspInit 1 */ - } - else if(uartHandle->Instance==USART3) - { - /* USER CODE BEGIN USART3_MspInit 0 */ - - /* USER CODE END USART3_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART3; - PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - /* USART3 clock enable */ - __HAL_RCC_USART3_CLK_ENABLE(); - - __HAL_RCC_GPIOC_CLK_ENABLE(); - /**USART3 GPIO Configuration - PC4 ------> USART3_TX - PC5 ------> USART3_RX - */ - GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF7_USART3; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - - /* USART3 DMA Init */ - /* USART3_RX Init */ - hdma_usart3_rx.Instance = DMA1_Channel3; - hdma_usart3_rx.Init.Request = DMA_REQUEST_2; - hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; - hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE; - hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - hdma_usart3_rx.Init.Mode = DMA_CIRCULAR; - hdma_usart3_rx.Init.Priority = DMA_PRIORITY_HIGH; - if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK) - { - Error_Handler(); - } - - __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart3_rx); - - /* USER CODE BEGIN USART3_MspInit 1 */ - - /* USER CODE END USART3_MspInit 1 */ - } -} - -void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) -{ - - if(uartHandle->Instance==USART1) - { - /* USER CODE BEGIN USART1_MspDeInit 0 */ - - /* USER CODE END USART1_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_USART1_CLK_DISABLE(); - - /**USART1 GPIO Configuration - PG9 ------> USART1_TX - PG10 ------> USART1_RX - */ - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_9|GPIO_PIN_10); - - /* USART1 DMA DeInit */ - HAL_DMA_DeInit(uartHandle->hdmarx); - /* USER CODE BEGIN USART1_MspDeInit 1 */ - - /* USER CODE END USART1_MspDeInit 1 */ - } - else if(uartHandle->Instance==USART3) - { - /* USER CODE BEGIN USART3_MspDeInit 0 */ - - /* USER CODE END USART3_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_USART3_CLK_DISABLE(); - - /**USART3 GPIO Configuration - PC4 ------> USART3_TX - PC5 ------> USART3_RX - */ - HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5); - - /* USART3 DMA DeInit */ - HAL_DMA_DeInit(uartHandle->hdmarx); - /* USER CODE BEGIN USART3_MspDeInit 1 */ - - /* USER CODE END USART3_MspDeInit 1 */ - } -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file usart.c + * @brief This file provides code for the configuration + * of the USART instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "usart.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +UART_HandleTypeDef huart1; +UART_HandleTypeDef huart3; +DMA_HandleTypeDef hdma_usart1_rx; +DMA_HandleTypeDef hdma_usart3_rx; + +/* USART1 init function */ + +void MX_USART1_UART_Init(void) +{ + + /* USER CODE BEGIN USART1_Init 0 */ + + /* USER CODE END USART1_Init 0 */ + + /* USER CODE BEGIN USART1_Init 1 */ + + /* USER CODE END USART1_Init 1 */ + huart1.Instance = USART1; + huart1.Init.BaudRate = 115200; + huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.StopBits = UART_STOPBITS_1; + huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Mode = UART_MODE_TX_RX; + huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart1.Init.OverSampling = UART_OVERSAMPLING_16; + huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART1_Init 2 */ + + /* USER CODE END USART1_Init 2 */ + +} +/* USART3 init function */ + +void MX_USART3_UART_Init(void) +{ + + /* USER CODE BEGIN USART3_Init 0 */ + + /* USER CODE END USART3_Init 0 */ + + /* USER CODE BEGIN USART3_Init 1 */ + + /* USER CODE END USART3_Init 1 */ + huart3.Instance = USART3; + huart3.Init.BaudRate = 115200; + huart3.Init.WordLength = UART_WORDLENGTH_8B; + huart3.Init.StopBits = UART_STOPBITS_1; + huart3.Init.Parity = UART_PARITY_NONE; + huart3.Init.Mode = UART_MODE_TX_RX; + huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart3.Init.OverSampling = UART_OVERSAMPLING_16; + huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart3) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART3_Init 2 */ + + /* USER CODE END USART3_Init 2 */ + +} + +void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(uartHandle->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspInit 0 */ + + /* USER CODE END USART1_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1; + PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* USART1 clock enable */ + __HAL_RCC_USART1_CLK_ENABLE(); + + __HAL_RCC_GPIOG_CLK_ENABLE(); + HAL_PWREx_EnableVddIO2(); + /**USART1 GPIO Configuration + PG9 ------> USART1_TX + PG10 ------> USART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + + /* USART1 DMA Init */ + /* USART1_RX Init */ + hdma_usart1_rx.Instance = DMA1_Channel5; + hdma_usart1_rx.Init.Request = DMA_REQUEST_2; + hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_usart1_rx.Init.Mode = DMA_CIRCULAR; + hdma_usart1_rx.Init.Priority = DMA_PRIORITY_HIGH; + if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart1_rx); + + /* USER CODE BEGIN USART1_MspInit 1 */ + + /* USER CODE END USART1_MspInit 1 */ + } + else if(uartHandle->Instance==USART3) + { + /* USER CODE BEGIN USART3_MspInit 0 */ + + /* USER CODE END USART3_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART3; + PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* USART3 clock enable */ + __HAL_RCC_USART3_CLK_ENABLE(); + + __HAL_RCC_GPIOC_CLK_ENABLE(); + /**USART3 GPIO Configuration + PC4 ------> USART3_TX + PC5 ------> USART3_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART3; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + /* USART3 DMA Init */ + /* USART3_RX Init */ + hdma_usart3_rx.Instance = DMA1_Channel3; + hdma_usart3_rx.Init.Request = DMA_REQUEST_2; + hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_usart3_rx.Init.Mode = DMA_CIRCULAR; + hdma_usart3_rx.Init.Priority = DMA_PRIORITY_HIGH; + if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart3_rx); + + /* USER CODE BEGIN USART3_MspInit 1 */ + + /* USER CODE END USART3_MspInit 1 */ + } +} + +void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) +{ + + if(uartHandle->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspDeInit 0 */ + + /* USER CODE END USART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART1_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PG9 ------> USART1_TX + PG10 ------> USART1_RX + */ + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_9|GPIO_PIN_10); + + /* USART1 DMA DeInit */ + HAL_DMA_DeInit(uartHandle->hdmarx); + /* USER CODE BEGIN USART1_MspDeInit 1 */ + + /* USER CODE END USART1_MspDeInit 1 */ + } + else if(uartHandle->Instance==USART3) + { + /* USER CODE BEGIN USART3_MspDeInit 0 */ + + /* USER CODE END USART3_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART3_CLK_DISABLE(); + + /**USART3 GPIO Configuration + PC4 ------> USART3_TX + PC5 ------> USART3_RX + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5); + + /* USART3 DMA DeInit */ + HAL_DMA_DeInit(uartHandle->hdmarx); + /* USER CODE BEGIN USART3_MspDeInit 1 */ + + /* USER CODE END USART3_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l496xx.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l496xx.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l496xx.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l496xx.h diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/LICENSE.txt b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/LICENSE.txt similarity index 100% rename from eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/LICENSE.txt rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/LICENSE.txt diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/License.md b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/License.md similarity index 100% rename from eps/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/License.md rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32L4xx/License.md diff --git a/eps/firmware/bsp/cmsis/Include/cmsis_armcc.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h similarity index 96% rename from eps/firmware/bsp/cmsis/Include/cmsis_armcc.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h index da9d654..59f173a 100644 --- a/eps/firmware/bsp/cmsis/Include/cmsis_armcc.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h @@ -1,894 +1,894 @@ -/**************************************************************************//** - * @file cmsis_armcc.h - * @brief CMSIS compiler ARMCC (Arm Compiler 5) header file - * @version V5.1.0 - * @date 08. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __CMSIS_ARMCC_H -#define __CMSIS_ARMCC_H - - -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 400677) - #error "Please use Arm Compiler Toolchain V4.0.677 or later!" -#endif - -/* CMSIS compiler control architecture macros */ -#if ((defined (__TARGET_ARCH_6_M ) && (__TARGET_ARCH_6_M == 1)) || \ - (defined (__TARGET_ARCH_6S_M ) && (__TARGET_ARCH_6S_M == 1)) ) - #define __ARM_ARCH_6M__ 1 -#endif - -#if (defined (__TARGET_ARCH_7_M ) && (__TARGET_ARCH_7_M == 1)) - #define __ARM_ARCH_7M__ 1 -#endif - -#if (defined (__TARGET_ARCH_7E_M) && (__TARGET_ARCH_7E_M == 1)) - #define __ARM_ARCH_7EM__ 1 -#endif - - /* __ARM_ARCH_8M_BASE__ not applicable */ - /* __ARM_ARCH_8M_MAIN__ not applicable */ - -/* CMSIS compiler control DSP macros */ -#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - #define __ARM_FEATURE_DSP 1 -#endif - -/* CMSIS compiler specific defines */ -#ifndef __ASM - #define __ASM __asm -#endif -#ifndef __INLINE - #define __INLINE __inline -#endif -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static __inline -#endif -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE static __forceinline -#endif -#ifndef __NO_RETURN - #define __NO_RETURN __declspec(noreturn) -#endif -#ifndef __USED - #define __USED __attribute__((used)) -#endif -#ifndef __WEAK - #define __WEAK __attribute__((weak)) -#endif -#ifndef __PACKED - #define __PACKED __attribute__((packed)) -#endif -#ifndef __PACKED_STRUCT - #define __PACKED_STRUCT __packed struct -#endif -#ifndef __PACKED_UNION - #define __PACKED_UNION __packed union -#endif -#ifndef __UNALIGNED_UINT32 /* deprecated */ - #define __UNALIGNED_UINT32(x) (*((__packed uint32_t *)(x))) -#endif -#ifndef __UNALIGNED_UINT16_WRITE - #define __UNALIGNED_UINT16_WRITE(addr, val) ((*((__packed uint16_t *)(addr))) = (val)) -#endif -#ifndef __UNALIGNED_UINT16_READ - #define __UNALIGNED_UINT16_READ(addr) (*((const __packed uint16_t *)(addr))) -#endif -#ifndef __UNALIGNED_UINT32_WRITE - #define __UNALIGNED_UINT32_WRITE(addr, val) ((*((__packed uint32_t *)(addr))) = (val)) -#endif -#ifndef __UNALIGNED_UINT32_READ - #define __UNALIGNED_UINT32_READ(addr) (*((const __packed uint32_t *)(addr))) -#endif -#ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) -#endif -#ifndef __RESTRICT - #define __RESTRICT __restrict -#endif -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __memory_changed() -#endif - -/* ######################### Startup and Lowlevel Init ######################## */ - -#ifndef __PROGRAM_START -#define __PROGRAM_START __main -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __Vectors -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) -#endif - -/* ########################### Core Function Access ########################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions - @{ - */ - -/** - \brief Enable IRQ Interrupts - \details Enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __enable_irq(); */ - - -/** - \brief Disable IRQ Interrupts - \details Disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __disable_irq(); */ - -/** - \brief Get Control Register - \details Returns the content of the Control Register. - \return Control Register value - */ -__STATIC_INLINE uint32_t __get_CONTROL(void) -{ - register uint32_t __regControl __ASM("control"); - return(__regControl); -} - - -/** - \brief Set Control Register - \details Writes the given value to the Control Register. - \param [in] control Control Register value to set - */ -__STATIC_INLINE void __set_CONTROL(uint32_t control) -{ - register uint32_t __regControl __ASM("control"); - __regControl = control; -} - - -/** - \brief Get IPSR Register - \details Returns the content of the IPSR Register. - \return IPSR Register value - */ -__STATIC_INLINE uint32_t __get_IPSR(void) -{ - register uint32_t __regIPSR __ASM("ipsr"); - return(__regIPSR); -} - - -/** - \brief Get APSR Register - \details Returns the content of the APSR Register. - \return APSR Register value - */ -__STATIC_INLINE uint32_t __get_APSR(void) -{ - register uint32_t __regAPSR __ASM("apsr"); - return(__regAPSR); -} - - -/** - \brief Get xPSR Register - \details Returns the content of the xPSR Register. - \return xPSR Register value - */ -__STATIC_INLINE uint32_t __get_xPSR(void) -{ - register uint32_t __regXPSR __ASM("xpsr"); - return(__regXPSR); -} - - -/** - \brief Get Process Stack Pointer - \details Returns the current value of the Process Stack Pointer (PSP). - \return PSP Register value - */ -__STATIC_INLINE uint32_t __get_PSP(void) -{ - register uint32_t __regProcessStackPointer __ASM("psp"); - return(__regProcessStackPointer); -} - - -/** - \brief Set Process Stack Pointer - \details Assigns the given value to the Process Stack Pointer (PSP). - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) -{ - register uint32_t __regProcessStackPointer __ASM("psp"); - __regProcessStackPointer = topOfProcStack; -} - - -/** - \brief Get Main Stack Pointer - \details Returns the current value of the Main Stack Pointer (MSP). - \return MSP Register value - */ -__STATIC_INLINE uint32_t __get_MSP(void) -{ - register uint32_t __regMainStackPointer __ASM("msp"); - return(__regMainStackPointer); -} - - -/** - \brief Set Main Stack Pointer - \details Assigns the given value to the Main Stack Pointer (MSP). - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) -{ - register uint32_t __regMainStackPointer __ASM("msp"); - __regMainStackPointer = topOfMainStack; -} - - -/** - \brief Get Priority Mask - \details Returns the current state of the priority mask bit from the Priority Mask Register. - \return Priority Mask value - */ -__STATIC_INLINE uint32_t __get_PRIMASK(void) -{ - register uint32_t __regPriMask __ASM("primask"); - return(__regPriMask); -} - - -/** - \brief Set Priority Mask - \details Assigns the given value to the Priority Mask Register. - \param [in] priMask Priority Mask - */ -__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) -{ - register uint32_t __regPriMask __ASM("primask"); - __regPriMask = (priMask); -} - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - -/** - \brief Enable FIQ - \details Enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __enable_fault_irq __enable_fiq - - -/** - \brief Disable FIQ - \details Disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __disable_fault_irq __disable_fiq - - -/** - \brief Get Base Priority - \details Returns the current value of the Base Priority register. - \return Base Priority register value - */ -__STATIC_INLINE uint32_t __get_BASEPRI(void) -{ - register uint32_t __regBasePri __ASM("basepri"); - return(__regBasePri); -} - - -/** - \brief Set Base Priority - \details Assigns the given value to the Base Priority register. - \param [in] basePri Base Priority value to set - */ -__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) -{ - register uint32_t __regBasePri __ASM("basepri"); - __regBasePri = (basePri & 0xFFU); -} - - -/** - \brief Set Base Priority with condition - \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, - or the new value increases the BASEPRI priority level. - \param [in] basePri Base Priority value to set - */ -__STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri) -{ - register uint32_t __regBasePriMax __ASM("basepri_max"); - __regBasePriMax = (basePri & 0xFFU); -} - - -/** - \brief Get Fault Mask - \details Returns the current value of the Fault Mask register. - \return Fault Mask register value - */ -__STATIC_INLINE uint32_t __get_FAULTMASK(void) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - return(__regFaultMask); -} - - -/** - \brief Set Fault Mask - \details Assigns the given value to the Fault Mask register. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - __regFaultMask = (faultMask & (uint32_t)1U); -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ - - -/** - \brief Get FPSCR - \details Returns the current value of the Floating Point Status/Control register. - \return Floating Point Status/Control register value - */ -__STATIC_INLINE uint32_t __get_FPSCR(void) -{ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) - register uint32_t __regfpscr __ASM("fpscr"); - return(__regfpscr); -#else - return(0U); -#endif -} - - -/** - \brief Set FPSCR - \details Assigns the given value to the Floating Point Status/Control register. - \param [in] fpscr Floating Point Status/Control value to set - */ -__STATIC_INLINE void __set_FPSCR(uint32_t fpscr) -{ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) - register uint32_t __regfpscr __ASM("fpscr"); - __regfpscr = (fpscr); -#else - (void)fpscr; -#endif -} - - -/*@} end of CMSIS_Core_RegAccFunctions */ - - -/* ########################## Core Instruction Access ######################### */ -/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface - Access to dedicated instructions - @{ -*/ - -/** - \brief No Operation - \details No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP __nop - - -/** - \brief Wait For Interrupt - \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. - */ -#define __WFI __wfi - - -/** - \brief Wait For Event - \details Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -#define __WFE __wfe - - -/** - \brief Send Event - \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -#define __SEV __sev - - -/** - \brief Instruction Synchronization Barrier - \details Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or memory, - after the instruction has been completed. - */ -#define __ISB() do {\ - __schedule_barrier();\ - __isb(0xF);\ - __schedule_barrier();\ - } while (0U) - -/** - \brief Data Synchronization Barrier - \details Acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -#define __DSB() do {\ - __schedule_barrier();\ - __dsb(0xF);\ - __schedule_barrier();\ - } while (0U) - -/** - \brief Data Memory Barrier - \details Ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -#define __DMB() do {\ - __schedule_barrier();\ - __dmb(0xF);\ - __schedule_barrier();\ - } while (0U) - - -/** - \brief Reverse byte order (32 bit) - \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV __rev - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. - \param [in] value Value to reverse - \return Reversed value - */ -#ifndef __NO_EMBEDDED_ASM -__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) -{ - rev16 r0, r0 - bx lr -} -#endif - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. - \param [in] value Value to reverse - \return Reversed value - */ -#ifndef __NO_EMBEDDED_ASM -__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int16_t __REVSH(int16_t value) -{ - revsh r0, r0 - bx lr -} -#endif - - -/** - \brief Rotate Right in unsigned value (32 bit) - \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. - \param [in] op1 Value to rotate - \param [in] op2 Number of Bits to rotate - \return Rotated value - */ -#define __ROR __ror - - -/** - \brief Breakpoint - \details Causes the processor to enter Debug state. - Debug tools can use this to investigate system state when the instruction at a particular address is reached. - \param [in] value is ignored by the processor. - If required, a debugger can use it to store additional information about the breakpoint. - */ -#define __BKPT(value) __breakpoint(value) - - -/** - \brief Reverse bit order of value - \details Reverses the bit order of the given value. - \param [in] value Value to reverse - \return Reversed value - */ -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - #define __RBIT __rbit -#else -__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) -{ - uint32_t result; - uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ - - result = value; /* r will be reversed bits of v; first get LSB of v */ - for (value >>= 1U; value != 0U; value >>= 1U) - { - result <<= 1U; - result |= value & 1U; - s--; - } - result <<= s; /* shift when v's highest bits are zero */ - return result; -} -#endif - - -/** - \brief Count leading zeros - \details Counts the number of leading zeros of a data value. - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -#define __CLZ __clz - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - -/** - \brief LDR Exclusive (8 bit) - \details Executes a exclusive LDR instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr)) -#else - #define __LDREXB(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint8_t ) __ldrex(ptr)) _Pragma("pop") -#endif - - -/** - \brief LDR Exclusive (16 bit) - \details Executes a exclusive LDR instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __LDREXH(ptr) ((uint16_t) __ldrex(ptr)) -#else - #define __LDREXH(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint16_t) __ldrex(ptr)) _Pragma("pop") -#endif - - -/** - \brief LDR Exclusive (32 bit) - \details Executes a exclusive LDR instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr)) -#else - #define __LDREXW(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint32_t ) __ldrex(ptr)) _Pragma("pop") -#endif - - -/** - \brief STR Exclusive (8 bit) - \details Executes a exclusive STR instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __STREXB(value, ptr) __strex(value, ptr) -#else - #define __STREXB(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") -#endif - - -/** - \brief STR Exclusive (16 bit) - \details Executes a exclusive STR instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __STREXH(value, ptr) __strex(value, ptr) -#else - #define __STREXH(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") -#endif - - -/** - \brief STR Exclusive (32 bit) - \details Executes a exclusive STR instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __STREXW(value, ptr) __strex(value, ptr) -#else - #define __STREXW(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") -#endif - - -/** - \brief Remove the exclusive lock - \details Removes the exclusive lock which is created by LDREX. - */ -#define __CLREX __clrex - - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT __ssat - - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT __usat - - -/** - \brief Rotate Right with Extend (32 bit) - \details Moves each bit of a bitstring right by one bit. - The carry input is shifted in at the left end of the bitstring. - \param [in] value Value to rotate - \return Rotated value - */ -#ifndef __NO_EMBEDDED_ASM -__attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value) -{ - rrx r0, r0 - bx lr -} -#endif - - -/** - \brief LDRT Unprivileged (8 bit) - \details Executes a Unprivileged LDRT instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDRBT(ptr) ((uint8_t ) __ldrt(ptr)) - - -/** - \brief LDRT Unprivileged (16 bit) - \details Executes a Unprivileged LDRT instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDRHT(ptr) ((uint16_t) __ldrt(ptr)) - - -/** - \brief LDRT Unprivileged (32 bit) - \details Executes a Unprivileged LDRT instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDRT(ptr) ((uint32_t ) __ldrt(ptr)) - - -/** - \brief STRT Unprivileged (8 bit) - \details Executes a Unprivileged STRT instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -#define __STRBT(value, ptr) __strt(value, ptr) - - -/** - \brief STRT Unprivileged (16 bit) - \details Executes a Unprivileged STRT instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -#define __STRHT(value, ptr) __strt(value, ptr) - - -/** - \brief STRT Unprivileged (32 bit) - \details Executes a Unprivileged STRT instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -#define __STRT(value, ptr) __strt(value, ptr) - -#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -__attribute__((always_inline)) __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) -{ - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; -} - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -__attribute__((always_inline)) __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) -{ - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ - -/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ - - -/* ################### Compiler specific Intrinsics ########################### */ -/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics - Access to dedicated SIMD instructions - @{ -*/ - -#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - -#define __SADD8 __sadd8 -#define __QADD8 __qadd8 -#define __SHADD8 __shadd8 -#define __UADD8 __uadd8 -#define __UQADD8 __uqadd8 -#define __UHADD8 __uhadd8 -#define __SSUB8 __ssub8 -#define __QSUB8 __qsub8 -#define __SHSUB8 __shsub8 -#define __USUB8 __usub8 -#define __UQSUB8 __uqsub8 -#define __UHSUB8 __uhsub8 -#define __SADD16 __sadd16 -#define __QADD16 __qadd16 -#define __SHADD16 __shadd16 -#define __UADD16 __uadd16 -#define __UQADD16 __uqadd16 -#define __UHADD16 __uhadd16 -#define __SSUB16 __ssub16 -#define __QSUB16 __qsub16 -#define __SHSUB16 __shsub16 -#define __USUB16 __usub16 -#define __UQSUB16 __uqsub16 -#define __UHSUB16 __uhsub16 -#define __SASX __sasx -#define __QASX __qasx -#define __SHASX __shasx -#define __UASX __uasx -#define __UQASX __uqasx -#define __UHASX __uhasx -#define __SSAX __ssax -#define __QSAX __qsax -#define __SHSAX __shsax -#define __USAX __usax -#define __UQSAX __uqsax -#define __UHSAX __uhsax -#define __USAD8 __usad8 -#define __USADA8 __usada8 -#define __SSAT16 __ssat16 -#define __USAT16 __usat16 -#define __UXTB16 __uxtb16 -#define __UXTAB16 __uxtab16 -#define __SXTB16 __sxtb16 -#define __SXTAB16 __sxtab16 -#define __SMUAD __smuad -#define __SMUADX __smuadx -#define __SMLAD __smlad -#define __SMLADX __smladx -#define __SMLALD __smlald -#define __SMLALDX __smlaldx -#define __SMUSD __smusd -#define __SMUSDX __smusdx -#define __SMLSD __smlsd -#define __SMLSDX __smlsdx -#define __SMLSLD __smlsld -#define __SMLSLDX __smlsldx -#define __SEL __sel -#define __QADD __qadd -#define __QSUB __qsub - -#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ - ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) - -#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ - ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) - -#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \ - ((int64_t)(ARG3) << 32U) ) >> 32U)) - -#endif /* ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ -/*@} end of group CMSIS_SIMD_intrinsics */ - - -#endif /* __CMSIS_ARMCC_H */ +/**************************************************************************//** + * @file cmsis_armcc.h + * @brief CMSIS compiler ARMCC (Arm Compiler 5) header file + * @version V5.1.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_ARMCC_H +#define __CMSIS_ARMCC_H + + +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 400677) + #error "Please use Arm Compiler Toolchain V4.0.677 or later!" +#endif + +/* CMSIS compiler control architecture macros */ +#if ((defined (__TARGET_ARCH_6_M ) && (__TARGET_ARCH_6_M == 1)) || \ + (defined (__TARGET_ARCH_6S_M ) && (__TARGET_ARCH_6S_M == 1)) ) + #define __ARM_ARCH_6M__ 1 +#endif + +#if (defined (__TARGET_ARCH_7_M ) && (__TARGET_ARCH_7_M == 1)) + #define __ARM_ARCH_7M__ 1 +#endif + +#if (defined (__TARGET_ARCH_7E_M) && (__TARGET_ARCH_7E_M == 1)) + #define __ARM_ARCH_7EM__ 1 +#endif + + /* __ARM_ARCH_8M_BASE__ not applicable */ + /* __ARM_ARCH_8M_MAIN__ not applicable */ + +/* CMSIS compiler control DSP macros */ +#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + #define __ARM_FEATURE_DSP 1 +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE static __forceinline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __declspec(noreturn) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed)) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT __packed struct +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION __packed union +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #define __UNALIGNED_UINT32(x) (*((__packed uint32_t *)(x))) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #define __UNALIGNED_UINT16_WRITE(addr, val) ((*((__packed uint16_t *)(addr))) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #define __UNALIGNED_UINT16_READ(addr) (*((const __packed uint16_t *)(addr))) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #define __UNALIGNED_UINT32_WRITE(addr, val) ((*((__packed uint32_t *)(addr))) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #define __UNALIGNED_UINT32_READ(addr) (*((const __packed uint32_t *)(addr))) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __memory_changed() +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START +#define __PROGRAM_START __main +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); */ + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_INLINE uint32_t __get_CONTROL(void) +{ + register uint32_t __regControl __ASM("control"); + return(__regControl); +} + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + register uint32_t __regControl __ASM("control"); + __regControl = control; +} + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_INLINE uint32_t __get_IPSR(void) +{ + register uint32_t __regIPSR __ASM("ipsr"); + return(__regIPSR); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_INLINE uint32_t __get_APSR(void) +{ + register uint32_t __regAPSR __ASM("apsr"); + return(__regAPSR); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_INLINE uint32_t __get_xPSR(void) +{ + register uint32_t __regXPSR __ASM("xpsr"); + return(__regXPSR); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + return(__regProcessStackPointer); +} + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + __regProcessStackPointer = topOfProcStack; +} + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + return(__regMainStackPointer); +} + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + __regMainStackPointer = topOfMainStack; +} + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + register uint32_t __regPriMask __ASM("primask"); + return(__regPriMask); +} + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + register uint32_t __regPriMask __ASM("primask"); + __regPriMask = (priMask); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + register uint32_t __regBasePri __ASM("basepri"); + return(__regBasePri); +} + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) +{ + register uint32_t __regBasePri __ASM("basepri"); + __regBasePri = (basePri & 0xFFU); +} + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + register uint32_t __regBasePriMax __ASM("basepri_max"); + __regBasePriMax = (basePri & 0xFFU); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + return(__regFaultMask); +} + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + __regFaultMask = (faultMask & (uint32_t)1U); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + register uint32_t __regfpscr __ASM("fpscr"); + return(__regfpscr); +#else + return(0U); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + register uint32_t __regfpscr __ASM("fpscr"); + __regfpscr = (fpscr); +#else + (void)fpscr; +#endif +} + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __nop + + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() do {\ + __schedule_barrier();\ + __isb(0xF);\ + __schedule_barrier();\ + } while (0U) + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() do {\ + __schedule_barrier();\ + __dsb(0xF);\ + __schedule_barrier();\ + } while (0U) + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() do {\ + __schedule_barrier();\ + __dmb(0xF);\ + __schedule_barrier();\ + } while (0U) + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV __rev + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) +{ + rev16 r0, r0 + bx lr +} +#endif + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int16_t __REVSH(int16_t value) +{ + revsh r0, r0 + bx lr +} +#endif + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +#define __ROR __ror + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __breakpoint(value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + #define __RBIT __rbit +#else +__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ + return result; +} +#endif + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +#define __CLZ __clz + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr)) +#else + #define __LDREXB(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint8_t ) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXH(ptr) ((uint16_t) __ldrex(ptr)) +#else + #define __LDREXH(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint16_t) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr)) +#else + #define __LDREXW(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint32_t ) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXB(value, ptr) __strex(value, ptr) +#else + #define __STREXB(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXH(value, ptr) __strex(value, ptr) +#else + #define __STREXH(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXW(value, ptr) __strex(value, ptr) +#else + #define __STREXW(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __clrex + + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value) +{ + rrx r0, r0 + bx lr +} +#endif + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDRBT(ptr) ((uint8_t ) __ldrt(ptr)) + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDRHT(ptr) ((uint16_t) __ldrt(ptr)) + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDRT(ptr) ((uint32_t ) __ldrt(ptr)) + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRBT(value, ptr) __strt(value, ptr) + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRHT(value, ptr) __strt(value, ptr) + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRT(value, ptr) __strt(value, ptr) + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__attribute__((always_inline)) __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +#define __SADD8 __sadd8 +#define __QADD8 __qadd8 +#define __SHADD8 __shadd8 +#define __UADD8 __uadd8 +#define __UQADD8 __uqadd8 +#define __UHADD8 __uhadd8 +#define __SSUB8 __ssub8 +#define __QSUB8 __qsub8 +#define __SHSUB8 __shsub8 +#define __USUB8 __usub8 +#define __UQSUB8 __uqsub8 +#define __UHSUB8 __uhsub8 +#define __SADD16 __sadd16 +#define __QADD16 __qadd16 +#define __SHADD16 __shadd16 +#define __UADD16 __uadd16 +#define __UQADD16 __uqadd16 +#define __UHADD16 __uhadd16 +#define __SSUB16 __ssub16 +#define __QSUB16 __qsub16 +#define __SHSUB16 __shsub16 +#define __USUB16 __usub16 +#define __UQSUB16 __uqsub16 +#define __UHSUB16 __uhsub16 +#define __SASX __sasx +#define __QASX __qasx +#define __SHASX __shasx +#define __UASX __uasx +#define __UQASX __uqasx +#define __UHASX __uhasx +#define __SSAX __ssax +#define __QSAX __qsax +#define __SHSAX __shsax +#define __USAX __usax +#define __UQSAX __uqsax +#define __UHSAX __uhsax +#define __USAD8 __usad8 +#define __USADA8 __usada8 +#define __SSAT16 __ssat16 +#define __USAT16 __usat16 +#define __UXTB16 __uxtb16 +#define __UXTAB16 __uxtab16 +#define __SXTB16 __sxtb16 +#define __SXTAB16 __sxtab16 +#define __SMUAD __smuad +#define __SMUADX __smuadx +#define __SMLAD __smlad +#define __SMLADX __smladx +#define __SMLALD __smlald +#define __SMLALDX __smlaldx +#define __SMUSD __smusd +#define __SMUSDX __smusdx +#define __SMLSD __smlsd +#define __SMLSDX __smlsdx +#define __SMLSLD __smlsld +#define __SMLSLDX __smlsldx +#define __SEL __sel +#define __QADD __qadd +#define __QSUB __qsub + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \ + ((int64_t)(ARG3) << 32U) ) >> 32U)) + +#endif /* ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCC_H */ diff --git a/eps/firmware/bsp/cmsis/Include/cmsis_armclang.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h similarity index 96% rename from eps/firmware/bsp/cmsis/Include/cmsis_armclang.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h index 478f75b..e917f35 100644 --- a/eps/firmware/bsp/cmsis/Include/cmsis_armclang.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h @@ -1,1444 +1,1444 @@ -/**************************************************************************//** - * @file cmsis_armclang.h - * @brief CMSIS compiler armclang (Arm Compiler 6) header file - * @version V5.2.0 - * @date 08. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ - -#ifndef __CMSIS_ARMCLANG_H -#define __CMSIS_ARMCLANG_H - -#pragma clang system_header /* treat file as system include file */ - -#ifndef __ARM_COMPAT_H -#include /* Compatibility header for Arm Compiler 5 intrinsics */ -#endif - -/* CMSIS compiler specific defines */ -#ifndef __ASM - #define __ASM __asm -#endif -#ifndef __INLINE - #define __INLINE __inline -#endif -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static __inline -#endif -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline -#endif -#ifndef __NO_RETURN - #define __NO_RETURN __attribute__((__noreturn__)) -#endif -#ifndef __USED - #define __USED __attribute__((used)) -#endif -#ifndef __WEAK - #define __WEAK __attribute__((weak)) -#endif -#ifndef __PACKED - #define __PACKED __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_UNION - #define __PACKED_UNION union __attribute__((packed, aligned(1))) -#endif -#ifndef __UNALIGNED_UINT32 /* deprecated */ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ - struct __attribute__((packed)) T_UINT32 { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) -#endif -#ifndef __UNALIGNED_UINT16_WRITE - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT16_READ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) -#endif -#ifndef __UNALIGNED_UINT32_WRITE - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT32_READ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) -#endif -#ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) -#endif -#ifndef __RESTRICT - #define __RESTRICT __restrict -#endif -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __ASM volatile("":::"memory") -#endif - -/* ######################### Startup and Lowlevel Init ######################## */ - -#ifndef __PROGRAM_START -#define __PROGRAM_START __main -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __Vectors -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) -#endif - -/* ########################### Core Function Access ########################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions - @{ - */ - -/** - \brief Enable IRQ Interrupts - \details Enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __enable_irq(); see arm_compat.h */ - - -/** - \brief Disable IRQ Interrupts - \details Disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __disable_irq(); see arm_compat.h */ - - -/** - \brief Get Control Register - \details Returns the content of the Control Register. - \return Control Register value - */ -__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Control Register (non-secure) - \details Returns the content of the non-secure Control Register when in secure mode. - \return non-secure Control Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Control Register - \details Writes the given value to the Control Register. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) -{ - __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Control Register (non-secure) - \details Writes the given value to the non-secure Control Register when in secure state. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) -{ - __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); -} -#endif - - -/** - \brief Get IPSR Register - \details Returns the content of the IPSR Register. - \return IPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_IPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get APSR Register - \details Returns the content of the APSR Register. - \return APSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_APSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, apsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get xPSR Register - \details Returns the content of the xPSR Register. - \return xPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_xPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get Process Stack Pointer - \details Returns the current value of the Process Stack Pointer (PSP). - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer (non-secure) - \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Process Stack Pointer - \details Assigns the given value to the Process Stack Pointer (PSP). - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); -} -#endif - - -/** - \brief Get Main Stack Pointer - \details Returns the current value of the Main Stack Pointer (MSP). - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer (non-secure) - \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Main Stack Pointer - \details Assigns the given value to the Main Stack Pointer (MSP). - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); -} -#endif - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Stack Pointer (non-secure) - \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. - \return SP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); - return(result); -} - - -/** - \brief Set Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. - \param [in] topOfStack Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) -{ - __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); -} -#endif - - -/** - \brief Get Priority Mask - \details Returns the current state of the priority mask bit from the Priority Mask Register. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Priority Mask (non-secure) - \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Priority Mask - \details Assigns the given value to the Priority Mask Register. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) -{ - __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Priority Mask (non-secure) - \details Assigns the given value to the non-secure Priority Mask Register when in secure state. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) -{ - __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); -} -#endif - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) -/** - \brief Enable FIQ - \details Enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ - - -/** - \brief Disable FIQ - \details Disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ - - -/** - \brief Get Base Priority - \details Returns the current value of the Base Priority register. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Base Priority (non-secure) - \details Returns the current value of the non-secure Base Priority register when in secure state. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Base Priority - \details Assigns the given value to the Base Priority register. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) -{ - __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Base Priority (non-secure) - \details Assigns the given value to the non-secure Base Priority register when in secure state. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); -} -#endif - - -/** - \brief Set Base Priority with condition - \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, - or the new value increases the BASEPRI priority level. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); -} - - -/** - \brief Get Fault Mask - \details Returns the current value of the Fault Mask register. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Fault Mask (non-secure) - \details Returns the current value of the non-secure Fault Mask register when in secure state. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Fault Mask - \details Assigns the given value to the Fault Mask register. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Fault Mask (non-secure) - \details Assigns the given value to the non-secure Fault Mask register when in secure state. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); -} -#endif - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - -/** - \brief Get Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim" : "=r" (result) ); - return result; -#endif -} - -#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); -#endif -} -#endif - - -/** - \brief Get Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim" : "=r" (result) ); - return result; -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). - \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. - \param [in] MainStackPtrLimit Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); -#endif -} -#endif - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/** - \brief Get FPSCR - \details Returns the current value of the Floating Point Status/Control register. - \return Floating Point Status/Control register value - */ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr -#else -#define __get_FPSCR() ((uint32_t)0U) -#endif - -/** - \brief Set FPSCR - \details Assigns the given value to the Floating Point Status/Control register. - \param [in] fpscr Floating Point Status/Control value to set - */ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#define __set_FPSCR __builtin_arm_set_fpscr -#else -#define __set_FPSCR(x) ((void)(x)) -#endif - - -/*@} end of CMSIS_Core_RegAccFunctions */ - - -/* ########################## Core Instruction Access ######################### */ -/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface - Access to dedicated instructions - @{ -*/ - -/* Define macros for porting to both thumb1 and thumb2. - * For thumb1, use low register (r0-r7), specified by constraint "l" - * Otherwise, use general registers, specified by constraint "r" */ -#if defined (__thumb__) && !defined (__thumb2__) -#define __CMSIS_GCC_OUT_REG(r) "=l" (r) -#define __CMSIS_GCC_RW_REG(r) "+l" (r) -#define __CMSIS_GCC_USE_REG(r) "l" (r) -#else -#define __CMSIS_GCC_OUT_REG(r) "=r" (r) -#define __CMSIS_GCC_RW_REG(r) "+r" (r) -#define __CMSIS_GCC_USE_REG(r) "r" (r) -#endif - -/** - \brief No Operation - \details No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP __builtin_arm_nop - -/** - \brief Wait For Interrupt - \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. - */ -#define __WFI __builtin_arm_wfi - - -/** - \brief Wait For Event - \details Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -#define __WFE __builtin_arm_wfe - - -/** - \brief Send Event - \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -#define __SEV __builtin_arm_sev - - -/** - \brief Instruction Synchronization Barrier - \details Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or memory, - after the instruction has been completed. - */ -#define __ISB() __builtin_arm_isb(0xF) - -/** - \brief Data Synchronization Barrier - \details Acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -#define __DSB() __builtin_arm_dsb(0xF) - - -/** - \brief Data Memory Barrier - \details Ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -#define __DMB() __builtin_arm_dmb(0xF) - - -/** - \brief Reverse byte order (32 bit) - \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV(value) __builtin_bswap32(value) - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV16(value) __ROR(__REV(value), 16) - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REVSH(value) (int16_t)__builtin_bswap16(value) - - -/** - \brief Rotate Right in unsigned value (32 bit) - \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. - \param [in] op1 Value to rotate - \param [in] op2 Number of Bits to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) -{ - op2 %= 32U; - if (op2 == 0U) - { - return op1; - } - return (op1 >> op2) | (op1 << (32U - op2)); -} - - -/** - \brief Breakpoint - \details Causes the processor to enter Debug state. - Debug tools can use this to investigate system state when the instruction at a particular address is reached. - \param [in] value is ignored by the processor. - If required, a debugger can use it to store additional information about the breakpoint. - */ -#define __BKPT(value) __ASM volatile ("bkpt "#value) - - -/** - \brief Reverse bit order of value - \details Reverses the bit order of the given value. - \param [in] value Value to reverse - \return Reversed value - */ -#define __RBIT __builtin_arm_rbit - -/** - \brief Count leading zeros - \details Counts the number of leading zeros of a data value. - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) -{ - /* Even though __builtin_clz produces a CLZ instruction on ARM, formally - __builtin_clz(0) is undefined behaviour, so handle this case specially. - This guarantees ARM-compatible results if happening to compile on a non-ARM - target, and ensures the compiler doesn't decide to activate any - optimisations using the logic "value was passed to __builtin_clz, so it - is non-zero". - ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a - single CLZ instruction. - */ - if (value == 0U) - { - return 32U; - } - return __builtin_clz(value); -} - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief LDR Exclusive (8 bit) - \details Executes a exclusive LDR instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDREXB (uint8_t)__builtin_arm_ldrex - - -/** - \brief LDR Exclusive (16 bit) - \details Executes a exclusive LDR instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDREXH (uint16_t)__builtin_arm_ldrex - - -/** - \brief LDR Exclusive (32 bit) - \details Executes a exclusive LDR instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDREXW (uint32_t)__builtin_arm_ldrex - - -/** - \brief STR Exclusive (8 bit) - \details Executes a exclusive STR instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXB (uint32_t)__builtin_arm_strex - - -/** - \brief STR Exclusive (16 bit) - \details Executes a exclusive STR instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXH (uint32_t)__builtin_arm_strex - - -/** - \brief STR Exclusive (32 bit) - \details Executes a exclusive STR instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXW (uint32_t)__builtin_arm_strex - - -/** - \brief Remove the exclusive lock - \details Removes the exclusive lock which is created by LDREX. - */ -#define __CLREX __builtin_arm_clrex - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT __builtin_arm_ssat - - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT __builtin_arm_usat - - -/** - \brief Rotate Right with Extend (32 bit) - \details Moves each bit of a bitstring right by one bit. - The carry input is shifted in at the left end of the bitstring. - \param [in] value Value to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return(result); -} - - -/** - \brief LDRT Unprivileged (8 bit) - \details Executes a Unprivileged LDRT instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (16 bit) - \details Executes a Unprivileged LDRT instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (32 bit) - \details Executes a Unprivileged LDRT instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief STRT Unprivileged (8 bit) - \details Executes a Unprivileged STRT instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (16 bit) - \details Executes a Unprivileged STRT instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (32 bit) - \details Executes a Unprivileged STRT instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); -} - -#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) -{ - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; -} - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) -{ - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief Load-Acquire (8 bit) - \details Executes a LDAB instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); -} - - -/** - \brief Load-Acquire (16 bit) - \details Executes a LDAH instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); -} - - -/** - \brief Load-Acquire (32 bit) - \details Executes a LDA instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief Store-Release (8 bit) - \details Executes a STLB instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (16 bit) - \details Executes a STLH instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (32 bit) - \details Executes a STL instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Load-Acquire Exclusive (8 bit) - \details Executes a LDAB exclusive instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDAEXB (uint8_t)__builtin_arm_ldaex - - -/** - \brief Load-Acquire Exclusive (16 bit) - \details Executes a LDAH exclusive instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDAEXH (uint16_t)__builtin_arm_ldaex - - -/** - \brief Load-Acquire Exclusive (32 bit) - \details Executes a LDA exclusive instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDAEX (uint32_t)__builtin_arm_ldaex - - -/** - \brief Store-Release Exclusive (8 bit) - \details Executes a STLB exclusive instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEXB (uint32_t)__builtin_arm_stlex - - -/** - \brief Store-Release Exclusive (16 bit) - \details Executes a STLH exclusive instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEXH (uint32_t)__builtin_arm_stlex - - -/** - \brief Store-Release Exclusive (32 bit) - \details Executes a STL exclusive instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEX (uint32_t)__builtin_arm_stlex - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ - - -/* ################### Compiler specific Intrinsics ########################### */ -/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics - Access to dedicated SIMD instructions - @{ -*/ - -#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) - -#define __SADD8 __builtin_arm_sadd8 -#define __QADD8 __builtin_arm_qadd8 -#define __SHADD8 __builtin_arm_shadd8 -#define __UADD8 __builtin_arm_uadd8 -#define __UQADD8 __builtin_arm_uqadd8 -#define __UHADD8 __builtin_arm_uhadd8 -#define __SSUB8 __builtin_arm_ssub8 -#define __QSUB8 __builtin_arm_qsub8 -#define __SHSUB8 __builtin_arm_shsub8 -#define __USUB8 __builtin_arm_usub8 -#define __UQSUB8 __builtin_arm_uqsub8 -#define __UHSUB8 __builtin_arm_uhsub8 -#define __SADD16 __builtin_arm_sadd16 -#define __QADD16 __builtin_arm_qadd16 -#define __SHADD16 __builtin_arm_shadd16 -#define __UADD16 __builtin_arm_uadd16 -#define __UQADD16 __builtin_arm_uqadd16 -#define __UHADD16 __builtin_arm_uhadd16 -#define __SSUB16 __builtin_arm_ssub16 -#define __QSUB16 __builtin_arm_qsub16 -#define __SHSUB16 __builtin_arm_shsub16 -#define __USUB16 __builtin_arm_usub16 -#define __UQSUB16 __builtin_arm_uqsub16 -#define __UHSUB16 __builtin_arm_uhsub16 -#define __SASX __builtin_arm_sasx -#define __QASX __builtin_arm_qasx -#define __SHASX __builtin_arm_shasx -#define __UASX __builtin_arm_uasx -#define __UQASX __builtin_arm_uqasx -#define __UHASX __builtin_arm_uhasx -#define __SSAX __builtin_arm_ssax -#define __QSAX __builtin_arm_qsax -#define __SHSAX __builtin_arm_shsax -#define __USAX __builtin_arm_usax -#define __UQSAX __builtin_arm_uqsax -#define __UHSAX __builtin_arm_uhsax -#define __USAD8 __builtin_arm_usad8 -#define __USADA8 __builtin_arm_usada8 -#define __SSAT16 __builtin_arm_ssat16 -#define __USAT16 __builtin_arm_usat16 -#define __UXTB16 __builtin_arm_uxtb16 -#define __UXTAB16 __builtin_arm_uxtab16 -#define __SXTB16 __builtin_arm_sxtb16 -#define __SXTAB16 __builtin_arm_sxtab16 -#define __SMUAD __builtin_arm_smuad -#define __SMUADX __builtin_arm_smuadx -#define __SMLAD __builtin_arm_smlad -#define __SMLADX __builtin_arm_smladx -#define __SMLALD __builtin_arm_smlald -#define __SMLALDX __builtin_arm_smlaldx -#define __SMUSD __builtin_arm_smusd -#define __SMUSDX __builtin_arm_smusdx -#define __SMLSD __builtin_arm_smlsd -#define __SMLSDX __builtin_arm_smlsdx -#define __SMLSLD __builtin_arm_smlsld -#define __SMLSLDX __builtin_arm_smlsldx -#define __SEL __builtin_arm_sel -#define __QADD __builtin_arm_qadd -#define __QSUB __builtin_arm_qsub - -#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ - ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) - -#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ - ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) - -__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) -{ - int32_t result; - - __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#endif /* (__ARM_FEATURE_DSP == 1) */ -/*@} end of group CMSIS_SIMD_intrinsics */ - - -#endif /* __CMSIS_ARMCLANG_H */ +/**************************************************************************//** + * @file cmsis_armclang.h + * @brief CMSIS compiler armclang (Arm Compiler 6) header file + * @version V5.2.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ + +#ifndef __CMSIS_ARMCLANG_H +#define __CMSIS_ARMCLANG_H + +#pragma clang system_header /* treat file as system include file */ + +#ifndef __ARM_COMPAT_H +#include /* Compatibility header for Arm Compiler 5 intrinsics */ +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START +#define __PROGRAM_START __main +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); see arm_compat.h */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); see arm_compat.h */ + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr +#else +#define __get_FPSCR() ((uint32_t)0U) +#endif + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __set_FPSCR __builtin_arm_set_fpscr +#else +#define __set_FPSCR(x) ((void)(x)) +#endif + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_RW_REG(r) "+l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_RW_REG(r) "+r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __builtin_arm_nop + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __builtin_arm_wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __builtin_arm_wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __builtin_arm_sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() __builtin_arm_isb(0xF) + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __builtin_arm_dsb(0xF) + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __builtin_arm_dmb(0xF) + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV(value) __builtin_bswap32(value) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV16(value) __ROR(__REV(value), 16) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REVSH(value) (int16_t)__builtin_bswap16(value) + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __builtin_arm_rbit + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDREXB (uint8_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDREXH (uint16_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDREXW (uint32_t)__builtin_arm_ldrex + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXB (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXH (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXW (uint32_t)__builtin_arm_strex + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __builtin_arm_clrex + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __builtin_arm_ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __builtin_arm_usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDAEXB (uint8_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDAEXH (uint16_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDAEX (uint32_t)__builtin_arm_ldaex + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXB (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXH (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEX (uint32_t)__builtin_arm_stlex + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +#define __SADD8 __builtin_arm_sadd8 +#define __QADD8 __builtin_arm_qadd8 +#define __SHADD8 __builtin_arm_shadd8 +#define __UADD8 __builtin_arm_uadd8 +#define __UQADD8 __builtin_arm_uqadd8 +#define __UHADD8 __builtin_arm_uhadd8 +#define __SSUB8 __builtin_arm_ssub8 +#define __QSUB8 __builtin_arm_qsub8 +#define __SHSUB8 __builtin_arm_shsub8 +#define __USUB8 __builtin_arm_usub8 +#define __UQSUB8 __builtin_arm_uqsub8 +#define __UHSUB8 __builtin_arm_uhsub8 +#define __SADD16 __builtin_arm_sadd16 +#define __QADD16 __builtin_arm_qadd16 +#define __SHADD16 __builtin_arm_shadd16 +#define __UADD16 __builtin_arm_uadd16 +#define __UQADD16 __builtin_arm_uqadd16 +#define __UHADD16 __builtin_arm_uhadd16 +#define __SSUB16 __builtin_arm_ssub16 +#define __QSUB16 __builtin_arm_qsub16 +#define __SHSUB16 __builtin_arm_shsub16 +#define __USUB16 __builtin_arm_usub16 +#define __UQSUB16 __builtin_arm_uqsub16 +#define __UHSUB16 __builtin_arm_uhsub16 +#define __SASX __builtin_arm_sasx +#define __QASX __builtin_arm_qasx +#define __SHASX __builtin_arm_shasx +#define __UASX __builtin_arm_uasx +#define __UQASX __builtin_arm_uqasx +#define __UHASX __builtin_arm_uhasx +#define __SSAX __builtin_arm_ssax +#define __QSAX __builtin_arm_qsax +#define __SHSAX __builtin_arm_shsax +#define __USAX __builtin_arm_usax +#define __UQSAX __builtin_arm_uqsax +#define __UHSAX __builtin_arm_uhsax +#define __USAD8 __builtin_arm_usad8 +#define __USADA8 __builtin_arm_usada8 +#define __SSAT16 __builtin_arm_ssat16 +#define __USAT16 __builtin_arm_usat16 +#define __UXTB16 __builtin_arm_uxtb16 +#define __UXTAB16 __builtin_arm_uxtab16 +#define __SXTB16 __builtin_arm_sxtb16 +#define __SXTAB16 __builtin_arm_sxtab16 +#define __SMUAD __builtin_arm_smuad +#define __SMUADX __builtin_arm_smuadx +#define __SMLAD __builtin_arm_smlad +#define __SMLADX __builtin_arm_smladx +#define __SMLALD __builtin_arm_smlald +#define __SMLALDX __builtin_arm_smlaldx +#define __SMUSD __builtin_arm_smusd +#define __SMUSDX __builtin_arm_smusdx +#define __SMLSD __builtin_arm_smlsd +#define __SMLSDX __builtin_arm_smlsdx +#define __SMLSLD __builtin_arm_smlsld +#define __SMLSLDX __builtin_arm_smlsldx +#define __SEL __builtin_arm_sel +#define __QADD __builtin_arm_qadd +#define __QSUB __builtin_arm_qsub + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCLANG_H */ diff --git a/eps/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h similarity index 96% rename from eps/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h index 1b5a965..feec324 100644 --- a/eps/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h @@ -1,1891 +1,1891 @@ -/**************************************************************************//** - * @file cmsis_armclang_ltm.h - * @brief CMSIS compiler armclang (Arm Compiler 6) header file - * @version V1.2.0 - * @date 08. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2018-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ - -#ifndef __CMSIS_ARMCLANG_H -#define __CMSIS_ARMCLANG_H - -#pragma clang system_header /* treat file as system include file */ - -#ifndef __ARM_COMPAT_H -#include /* Compatibility header for Arm Compiler 5 intrinsics */ -#endif - -/* CMSIS compiler specific defines */ -#ifndef __ASM - #define __ASM __asm -#endif -#ifndef __INLINE - #define __INLINE __inline -#endif -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static __inline -#endif -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline -#endif -#ifndef __NO_RETURN - #define __NO_RETURN __attribute__((__noreturn__)) -#endif -#ifndef __USED - #define __USED __attribute__((used)) -#endif -#ifndef __WEAK - #define __WEAK __attribute__((weak)) -#endif -#ifndef __PACKED - #define __PACKED __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_UNION - #define __PACKED_UNION union __attribute__((packed, aligned(1))) -#endif -#ifndef __UNALIGNED_UINT32 /* deprecated */ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ - struct __attribute__((packed)) T_UINT32 { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) -#endif -#ifndef __UNALIGNED_UINT16_WRITE - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT16_READ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) -#endif -#ifndef __UNALIGNED_UINT32_WRITE - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT32_READ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) -#endif -#ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) -#endif -#ifndef __RESTRICT - #define __RESTRICT __restrict -#endif -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __ASM volatile("":::"memory") -#endif - -/* ######################### Startup and Lowlevel Init ######################## */ - -#ifndef __PROGRAM_START -#define __PROGRAM_START __main -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __Vectors -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) -#endif - - -/* ########################### Core Function Access ########################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions - @{ - */ - -/** - \brief Enable IRQ Interrupts - \details Enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __enable_irq(); see arm_compat.h */ - - -/** - \brief Disable IRQ Interrupts - \details Disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __disable_irq(); see arm_compat.h */ - - -/** - \brief Get Control Register - \details Returns the content of the Control Register. - \return Control Register value - */ -__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Control Register (non-secure) - \details Returns the content of the non-secure Control Register when in secure mode. - \return non-secure Control Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Control Register - \details Writes the given value to the Control Register. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) -{ - __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Control Register (non-secure) - \details Writes the given value to the non-secure Control Register when in secure state. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) -{ - __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); -} -#endif - - -/** - \brief Get IPSR Register - \details Returns the content of the IPSR Register. - \return IPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_IPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get APSR Register - \details Returns the content of the APSR Register. - \return APSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_APSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, apsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get xPSR Register - \details Returns the content of the xPSR Register. - \return xPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_xPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get Process Stack Pointer - \details Returns the current value of the Process Stack Pointer (PSP). - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer (non-secure) - \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Process Stack Pointer - \details Assigns the given value to the Process Stack Pointer (PSP). - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); -} -#endif - - -/** - \brief Get Main Stack Pointer - \details Returns the current value of the Main Stack Pointer (MSP). - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer (non-secure) - \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Main Stack Pointer - \details Assigns the given value to the Main Stack Pointer (MSP). - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); -} -#endif - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Stack Pointer (non-secure) - \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. - \return SP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); - return(result); -} - - -/** - \brief Set Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. - \param [in] topOfStack Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) -{ - __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); -} -#endif - - -/** - \brief Get Priority Mask - \details Returns the current state of the priority mask bit from the Priority Mask Register. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Priority Mask (non-secure) - \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Priority Mask - \details Assigns the given value to the Priority Mask Register. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) -{ - __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Priority Mask (non-secure) - \details Assigns the given value to the non-secure Priority Mask Register when in secure state. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) -{ - __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); -} -#endif - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) -/** - \brief Enable FIQ - \details Enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ - - -/** - \brief Disable FIQ - \details Disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ - - -/** - \brief Get Base Priority - \details Returns the current value of the Base Priority register. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Base Priority (non-secure) - \details Returns the current value of the non-secure Base Priority register when in secure state. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Base Priority - \details Assigns the given value to the Base Priority register. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) -{ - __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Base Priority (non-secure) - \details Assigns the given value to the non-secure Base Priority register when in secure state. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); -} -#endif - - -/** - \brief Set Base Priority with condition - \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, - or the new value increases the BASEPRI priority level. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); -} - - -/** - \brief Get Fault Mask - \details Returns the current value of the Fault Mask register. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Fault Mask (non-secure) - \details Returns the current value of the non-secure Fault Mask register when in secure state. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Fault Mask - \details Assigns the given value to the Fault Mask register. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Fault Mask (non-secure) - \details Assigns the given value to the non-secure Fault Mask register when in secure state. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); -} -#endif - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - -/** - \brief Get Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim" : "=r" (result) ); - return result; -#endif -} - -#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); -#endif -} -#endif - - -/** - \brief Get Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim" : "=r" (result) ); - return result; -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). - \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. - \param [in] MainStackPtrLimit Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); -#endif -} -#endif - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/** - \brief Get FPSCR - \details Returns the current value of the Floating Point Status/Control register. - \return Floating Point Status/Control register value - */ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr -#else -#define __get_FPSCR() ((uint32_t)0U) -#endif - -/** - \brief Set FPSCR - \details Assigns the given value to the Floating Point Status/Control register. - \param [in] fpscr Floating Point Status/Control value to set - */ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#define __set_FPSCR __builtin_arm_set_fpscr -#else -#define __set_FPSCR(x) ((void)(x)) -#endif - - -/*@} end of CMSIS_Core_RegAccFunctions */ - - -/* ########################## Core Instruction Access ######################### */ -/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface - Access to dedicated instructions - @{ -*/ - -/* Define macros for porting to both thumb1 and thumb2. - * For thumb1, use low register (r0-r7), specified by constraint "l" - * Otherwise, use general registers, specified by constraint "r" */ -#if defined (__thumb__) && !defined (__thumb2__) -#define __CMSIS_GCC_OUT_REG(r) "=l" (r) -#define __CMSIS_GCC_USE_REG(r) "l" (r) -#else -#define __CMSIS_GCC_OUT_REG(r) "=r" (r) -#define __CMSIS_GCC_USE_REG(r) "r" (r) -#endif - -/** - \brief No Operation - \details No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP __builtin_arm_nop - -/** - \brief Wait For Interrupt - \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. - */ -#define __WFI __builtin_arm_wfi - - -/** - \brief Wait For Event - \details Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -#define __WFE __builtin_arm_wfe - - -/** - \brief Send Event - \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -#define __SEV __builtin_arm_sev - - -/** - \brief Instruction Synchronization Barrier - \details Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or memory, - after the instruction has been completed. - */ -#define __ISB() __builtin_arm_isb(0xF) - -/** - \brief Data Synchronization Barrier - \details Acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -#define __DSB() __builtin_arm_dsb(0xF) - - -/** - \brief Data Memory Barrier - \details Ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -#define __DMB() __builtin_arm_dmb(0xF) - - -/** - \brief Reverse byte order (32 bit) - \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV(value) __builtin_bswap32(value) - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV16(value) __ROR(__REV(value), 16) - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REVSH(value) (int16_t)__builtin_bswap16(value) - - -/** - \brief Rotate Right in unsigned value (32 bit) - \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. - \param [in] op1 Value to rotate - \param [in] op2 Number of Bits to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) -{ - op2 %= 32U; - if (op2 == 0U) - { - return op1; - } - return (op1 >> op2) | (op1 << (32U - op2)); -} - - -/** - \brief Breakpoint - \details Causes the processor to enter Debug state. - Debug tools can use this to investigate system state when the instruction at a particular address is reached. - \param [in] value is ignored by the processor. - If required, a debugger can use it to store additional information about the breakpoint. - */ -#define __BKPT(value) __ASM volatile ("bkpt "#value) - - -/** - \brief Reverse bit order of value - \details Reverses the bit order of the given value. - \param [in] value Value to reverse - \return Reversed value - */ -#define __RBIT __builtin_arm_rbit - -/** - \brief Count leading zeros - \details Counts the number of leading zeros of a data value. - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) -{ - /* Even though __builtin_clz produces a CLZ instruction on ARM, formally - __builtin_clz(0) is undefined behaviour, so handle this case specially. - This guarantees ARM-compatible results if happening to compile on a non-ARM - target, and ensures the compiler doesn't decide to activate any - optimisations using the logic "value was passed to __builtin_clz, so it - is non-zero". - ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a - single CLZ instruction. - */ - if (value == 0U) - { - return 32U; - } - return __builtin_clz(value); -} - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief LDR Exclusive (8 bit) - \details Executes a exclusive LDR instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDREXB (uint8_t)__builtin_arm_ldrex - - -/** - \brief LDR Exclusive (16 bit) - \details Executes a exclusive LDR instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDREXH (uint16_t)__builtin_arm_ldrex - - -/** - \brief LDR Exclusive (32 bit) - \details Executes a exclusive LDR instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDREXW (uint32_t)__builtin_arm_ldrex - - -/** - \brief STR Exclusive (8 bit) - \details Executes a exclusive STR instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXB (uint32_t)__builtin_arm_strex - - -/** - \brief STR Exclusive (16 bit) - \details Executes a exclusive STR instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXH (uint32_t)__builtin_arm_strex - - -/** - \brief STR Exclusive (32 bit) - \details Executes a exclusive STR instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXW (uint32_t)__builtin_arm_strex - - -/** - \brief Remove the exclusive lock - \details Removes the exclusive lock which is created by LDREX. - */ -#define __CLREX __builtin_arm_clrex - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT __builtin_arm_ssat - - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT __builtin_arm_usat - - -/** - \brief Rotate Right with Extend (32 bit) - \details Moves each bit of a bitstring right by one bit. - The carry input is shifted in at the left end of the bitstring. - \param [in] value Value to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return(result); -} - - -/** - \brief LDRT Unprivileged (8 bit) - \details Executes a Unprivileged LDRT instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (16 bit) - \details Executes a Unprivileged LDRT instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (32 bit) - \details Executes a Unprivileged LDRT instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief STRT Unprivileged (8 bit) - \details Executes a Unprivileged STRT instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (16 bit) - \details Executes a Unprivileged STRT instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (32 bit) - \details Executes a Unprivileged STRT instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); -} - -#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) -{ - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; -} - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) -{ - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief Load-Acquire (8 bit) - \details Executes a LDAB instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); -} - - -/** - \brief Load-Acquire (16 bit) - \details Executes a LDAH instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); -} - - -/** - \brief Load-Acquire (32 bit) - \details Executes a LDA instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief Store-Release (8 bit) - \details Executes a STLB instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (16 bit) - \details Executes a STLH instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (32 bit) - \details Executes a STL instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Load-Acquire Exclusive (8 bit) - \details Executes a LDAB exclusive instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDAEXB (uint8_t)__builtin_arm_ldaex - - -/** - \brief Load-Acquire Exclusive (16 bit) - \details Executes a LDAH exclusive instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDAEXH (uint16_t)__builtin_arm_ldaex - - -/** - \brief Load-Acquire Exclusive (32 bit) - \details Executes a LDA exclusive instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDAEX (uint32_t)__builtin_arm_ldaex - - -/** - \brief Store-Release Exclusive (8 bit) - \details Executes a STLB exclusive instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEXB (uint32_t)__builtin_arm_stlex - - -/** - \brief Store-Release Exclusive (16 bit) - \details Executes a STLH exclusive instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEXH (uint32_t)__builtin_arm_stlex - - -/** - \brief Store-Release Exclusive (32 bit) - \details Executes a STL exclusive instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEX (uint32_t)__builtin_arm_stlex - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ - - -/* ################### Compiler specific Intrinsics ########################### */ -/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics - Access to dedicated SIMD instructions - @{ -*/ - -#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) - -__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - - -__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - - -__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#define __SSAT16(ARG1,ARG2) \ -({ \ - int32_t __RES, __ARG1 = (ARG1); \ - __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - -#define __USAT16(ARG1,ARG2) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1); \ - __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - -__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) -{ - uint32_t result; - - __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) -{ - uint32_t result; - - __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) -{ - int32_t result; - - __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) -{ - int32_t result; - - __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ - ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) - -#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ - ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) - -__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) -{ - int32_t result; - - __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#endif /* (__ARM_FEATURE_DSP == 1) */ -/*@} end of group CMSIS_SIMD_intrinsics */ - - -#endif /* __CMSIS_ARMCLANG_H */ +/**************************************************************************//** + * @file cmsis_armclang_ltm.h + * @brief CMSIS compiler armclang (Arm Compiler 6) header file + * @version V1.2.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2018-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ + +#ifndef __CMSIS_ARMCLANG_H +#define __CMSIS_ARMCLANG_H + +#pragma clang system_header /* treat file as system include file */ + +#ifndef __ARM_COMPAT_H +#include /* Compatibility header for Arm Compiler 5 intrinsics */ +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START +#define __PROGRAM_START __main +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) +#endif + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); see arm_compat.h */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); see arm_compat.h */ + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr +#else +#define __get_FPSCR() ((uint32_t)0U) +#endif + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __set_FPSCR __builtin_arm_set_fpscr +#else +#define __set_FPSCR(x) ((void)(x)) +#endif + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __builtin_arm_nop + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __builtin_arm_wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __builtin_arm_wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __builtin_arm_sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() __builtin_arm_isb(0xF) + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __builtin_arm_dsb(0xF) + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __builtin_arm_dmb(0xF) + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV(value) __builtin_bswap32(value) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV16(value) __ROR(__REV(value), 16) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REVSH(value) (int16_t)__builtin_bswap16(value) + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __builtin_arm_rbit + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDREXB (uint8_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDREXH (uint16_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDREXW (uint32_t)__builtin_arm_ldrex + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXB (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXH (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXW (uint32_t)__builtin_arm_strex + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __builtin_arm_clrex + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __builtin_arm_ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __builtin_arm_usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDAEXB (uint8_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDAEXH (uint16_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDAEX (uint32_t)__builtin_arm_ldaex + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXB (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXH (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEX (uint32_t)__builtin_arm_stlex + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCLANG_H */ diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h similarity index 96% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h index 1e08e7e..3ddcc58 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h @@ -1,2168 +1,2168 @@ -/**************************************************************************//** - * @file cmsis_gcc.h - * @brief CMSIS compiler GCC header file - * @version V5.2.0 - * @date 08. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __CMSIS_GCC_H -#define __CMSIS_GCC_H - -/* ignore some GCC warnings */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wsign-conversion" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-parameter" - -/* Fallback for __has_builtin */ -#ifndef __has_builtin - #define __has_builtin(x) (0) -#endif - -/* CMSIS compiler specific defines */ -#ifndef __ASM - #define __ASM __asm -#endif -#ifndef __INLINE - #define __INLINE inline -#endif -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline -#endif -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline -#endif -#ifndef __NO_RETURN - #define __NO_RETURN __attribute__((__noreturn__)) -#endif -#ifndef __USED - #define __USED __attribute__((used)) -#endif -#ifndef __WEAK - #define __WEAK __attribute__((weak)) -#endif -#ifndef __PACKED - #define __PACKED __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_UNION - #define __PACKED_UNION union __attribute__((packed, aligned(1))) -#endif -#ifndef __UNALIGNED_UINT32 /* deprecated */ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - struct __attribute__((packed)) T_UINT32 { uint32_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) -#endif -#ifndef __UNALIGNED_UINT16_WRITE - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT16_READ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) -#endif -#ifndef __UNALIGNED_UINT32_WRITE - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT32_READ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) -#endif -#ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) -#endif -#ifndef __RESTRICT - #define __RESTRICT __restrict -#endif -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __ASM volatile("":::"memory") -#endif - -/* ######################### Startup and Lowlevel Init ######################## */ - -#ifndef __PROGRAM_START - -/** - \brief Initializes data and bss sections - \details This default implementations initialized all data and additional bss - sections relying on .copy.table and .zero.table specified properly - in the used linker script. - - */ -__STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) -{ - extern void _start(void) __NO_RETURN; - - typedef struct { - uint32_t const* src; - uint32_t* dest; - uint32_t wlen; - } __copy_table_t; - - typedef struct { - uint32_t* dest; - uint32_t wlen; - } __zero_table_t; - - extern const __copy_table_t __copy_table_start__; - extern const __copy_table_t __copy_table_end__; - extern const __zero_table_t __zero_table_start__; - extern const __zero_table_t __zero_table_end__; - - for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable) { - for(uint32_t i=0u; iwlen; ++i) { - pTable->dest[i] = pTable->src[i]; - } - } - - for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable) { - for(uint32_t i=0u; iwlen; ++i) { - pTable->dest[i] = 0u; - } - } - - _start(); -} - -#define __PROGRAM_START __cmsis_start -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP __StackTop -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT __StackLimit -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __Vectors -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) -#endif - -/* ########################### Core Function Access ########################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions - @{ - */ - -/** - \brief Enable IRQ Interrupts - \details Enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__STATIC_FORCEINLINE void __enable_irq(void) -{ - __ASM volatile ("cpsie i" : : : "memory"); -} - - -/** - \brief Disable IRQ Interrupts - \details Disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__STATIC_FORCEINLINE void __disable_irq(void) -{ - __ASM volatile ("cpsid i" : : : "memory"); -} - - -/** - \brief Get Control Register - \details Returns the content of the Control Register. - \return Control Register value - */ -__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Control Register (non-secure) - \details Returns the content of the non-secure Control Register when in secure mode. - \return non-secure Control Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Control Register - \details Writes the given value to the Control Register. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) -{ - __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Control Register (non-secure) - \details Writes the given value to the non-secure Control Register when in secure state. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) -{ - __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); -} -#endif - - -/** - \brief Get IPSR Register - \details Returns the content of the IPSR Register. - \return IPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_IPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get APSR Register - \details Returns the content of the APSR Register. - \return APSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_APSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, apsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get xPSR Register - \details Returns the content of the xPSR Register. - \return xPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_xPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get Process Stack Pointer - \details Returns the current value of the Process Stack Pointer (PSP). - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer (non-secure) - \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Process Stack Pointer - \details Assigns the given value to the Process Stack Pointer (PSP). - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); -} -#endif - - -/** - \brief Get Main Stack Pointer - \details Returns the current value of the Main Stack Pointer (MSP). - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer (non-secure) - \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Main Stack Pointer - \details Assigns the given value to the Main Stack Pointer (MSP). - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); -} -#endif - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Stack Pointer (non-secure) - \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. - \return SP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); - return(result); -} - - -/** - \brief Set Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. - \param [in] topOfStack Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) -{ - __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); -} -#endif - - -/** - \brief Get Priority Mask - \details Returns the current state of the priority mask bit from the Priority Mask Register. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Priority Mask (non-secure) - \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); - return(result); -} -#endif - - -/** - \brief Set Priority Mask - \details Assigns the given value to the Priority Mask Register. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) -{ - __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Priority Mask (non-secure) - \details Assigns the given value to the non-secure Priority Mask Register when in secure state. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) -{ - __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); -} -#endif - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) -/** - \brief Enable FIQ - \details Enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__STATIC_FORCEINLINE void __enable_fault_irq(void) -{ - __ASM volatile ("cpsie f" : : : "memory"); -} - - -/** - \brief Disable FIQ - \details Disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__STATIC_FORCEINLINE void __disable_fault_irq(void) -{ - __ASM volatile ("cpsid f" : : : "memory"); -} - - -/** - \brief Get Base Priority - \details Returns the current value of the Base Priority register. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Base Priority (non-secure) - \details Returns the current value of the non-secure Base Priority register when in secure state. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Base Priority - \details Assigns the given value to the Base Priority register. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) -{ - __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Base Priority (non-secure) - \details Assigns the given value to the non-secure Base Priority register when in secure state. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); -} -#endif - - -/** - \brief Set Base Priority with condition - \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, - or the new value increases the BASEPRI priority level. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); -} - - -/** - \brief Get Fault Mask - \details Returns the current value of the Fault Mask register. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Fault Mask (non-secure) - \details Returns the current value of the non-secure Fault Mask register when in secure state. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Fault Mask - \details Assigns the given value to the Fault Mask register. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Fault Mask (non-secure) - \details Assigns the given value to the non-secure Fault Mask register when in secure state. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); -} -#endif - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - -/** - \brief Get Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim" : "=r" (result) ); - return result; -#endif -} - -#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); -#endif -} -#endif - - -/** - \brief Get Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim" : "=r" (result) ); - return result; -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). - \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. - \param [in] MainStackPtrLimit Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); -#endif -} -#endif - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - - -/** - \brief Get FPSCR - \details Returns the current value of the Floating Point Status/Control register. - \return Floating Point Status/Control register value - */ -__STATIC_FORCEINLINE uint32_t __get_FPSCR(void) -{ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#if __has_builtin(__builtin_arm_get_fpscr) -// Re-enable using built-in when GCC has been fixed -// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) - /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ - return __builtin_arm_get_fpscr(); -#else - uint32_t result; - - __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); - return(result); -#endif -#else - return(0U); -#endif -} - - -/** - \brief Set FPSCR - \details Assigns the given value to the Floating Point Status/Control register. - \param [in] fpscr Floating Point Status/Control value to set - */ -__STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) -{ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#if __has_builtin(__builtin_arm_set_fpscr) -// Re-enable using built-in when GCC has been fixed -// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) - /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ - __builtin_arm_set_fpscr(fpscr); -#else - __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); -#endif -#else - (void)fpscr; -#endif -} - - -/*@} end of CMSIS_Core_RegAccFunctions */ - - -/* ########################## Core Instruction Access ######################### */ -/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface - Access to dedicated instructions - @{ -*/ - -/* Define macros for porting to both thumb1 and thumb2. - * For thumb1, use low register (r0-r7), specified by constraint "l" - * Otherwise, use general registers, specified by constraint "r" */ -#if defined (__thumb__) && !defined (__thumb2__) -#define __CMSIS_GCC_OUT_REG(r) "=l" (r) -#define __CMSIS_GCC_RW_REG(r) "+l" (r) -#define __CMSIS_GCC_USE_REG(r) "l" (r) -#else -#define __CMSIS_GCC_OUT_REG(r) "=r" (r) -#define __CMSIS_GCC_RW_REG(r) "+r" (r) -#define __CMSIS_GCC_USE_REG(r) "r" (r) -#endif - -/** - \brief No Operation - \details No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP() __ASM volatile ("nop") - -/** - \brief Wait For Interrupt - \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. - */ -#define __WFI() __ASM volatile ("wfi") - - -/** - \brief Wait For Event - \details Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -#define __WFE() __ASM volatile ("wfe") - - -/** - \brief Send Event - \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -#define __SEV() __ASM volatile ("sev") - - -/** - \brief Instruction Synchronization Barrier - \details Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or memory, - after the instruction has been completed. - */ -__STATIC_FORCEINLINE void __ISB(void) -{ - __ASM volatile ("isb 0xF":::"memory"); -} - - -/** - \brief Data Synchronization Barrier - \details Acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -__STATIC_FORCEINLINE void __DSB(void) -{ - __ASM volatile ("dsb 0xF":::"memory"); -} - - -/** - \brief Data Memory Barrier - \details Ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -__STATIC_FORCEINLINE void __DMB(void) -{ - __ASM volatile ("dmb 0xF":::"memory"); -} - - -/** - \brief Reverse byte order (32 bit) - \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. - \param [in] value Value to reverse - \return Reversed value - */ -__STATIC_FORCEINLINE uint32_t __REV(uint32_t value) -{ -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) - return __builtin_bswap32(value); -#else - uint32_t result; - - __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return result; -#endif -} - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. - \param [in] value Value to reverse - \return Reversed value - */ -__STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return result; -} - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. - \param [in] value Value to reverse - \return Reversed value - */ -__STATIC_FORCEINLINE int16_t __REVSH(int16_t value) -{ -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - return (int16_t)__builtin_bswap16(value); -#else - int16_t result; - - __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return result; -#endif -} - - -/** - \brief Rotate Right in unsigned value (32 bit) - \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. - \param [in] op1 Value to rotate - \param [in] op2 Number of Bits to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) -{ - op2 %= 32U; - if (op2 == 0U) - { - return op1; - } - return (op1 >> op2) | (op1 << (32U - op2)); -} - - -/** - \brief Breakpoint - \details Causes the processor to enter Debug state. - Debug tools can use this to investigate system state when the instruction at a particular address is reached. - \param [in] value is ignored by the processor. - If required, a debugger can use it to store additional information about the breakpoint. - */ -#define __BKPT(value) __ASM volatile ("bkpt "#value) - - -/** - \brief Reverse bit order of value - \details Reverses the bit order of the given value. - \param [in] value Value to reverse - \return Reversed value - */ -__STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) -{ - uint32_t result; - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) - __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); -#else - uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ - - result = value; /* r will be reversed bits of v; first get LSB of v */ - for (value >>= 1U; value != 0U; value >>= 1U) - { - result <<= 1U; - result |= value & 1U; - s--; - } - result <<= s; /* shift when v's highest bits are zero */ -#endif - return result; -} - - -/** - \brief Count leading zeros - \details Counts the number of leading zeros of a data value. - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) -{ - /* Even though __builtin_clz produces a CLZ instruction on ARM, formally - __builtin_clz(0) is undefined behaviour, so handle this case specially. - This guarantees ARM-compatible results if happening to compile on a non-ARM - target, and ensures the compiler doesn't decide to activate any - optimisations using the logic "value was passed to __builtin_clz, so it - is non-zero". - ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a - single CLZ instruction. - */ - if (value == 0U) - { - return 32U; - } - return __builtin_clz(value); -} - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief LDR Exclusive (8 bit) - \details Executes a exclusive LDR instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) -{ - uint32_t result; - -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); -#else - /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not - accepted by assembler. So has to use following less efficient pattern. - */ - __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); -#endif - return ((uint8_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDR Exclusive (16 bit) - \details Executes a exclusive LDR instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) -{ - uint32_t result; - -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); -#else - /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not - accepted by assembler. So has to use following less efficient pattern. - */ - __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); -#endif - return ((uint16_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDR Exclusive (32 bit) - \details Executes a exclusive LDR instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - return(result); -} - - -/** - \brief STR Exclusive (8 bit) - \details Executes a exclusive STR instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) -{ - uint32_t result; - - __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); - return(result); -} - - -/** - \brief STR Exclusive (16 bit) - \details Executes a exclusive STR instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) -{ - uint32_t result; - - __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); - return(result); -} - - -/** - \brief STR Exclusive (32 bit) - \details Executes a exclusive STR instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - return(result); -} - - -/** - \brief Remove the exclusive lock - \details Removes the exclusive lock which is created by LDREX. - */ -__STATIC_FORCEINLINE void __CLREX(void) -{ - __ASM volatile ("clrex" ::: "memory"); -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] ARG1 Value to be saturated - \param [in] ARG2 Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT(ARG1,ARG2) \ -__extension__ \ -({ \ - int32_t __RES, __ARG1 = (ARG1); \ - __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] ARG1 Value to be saturated - \param [in] ARG2 Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT(ARG1,ARG2) \ - __extension__ \ -({ \ - uint32_t __RES, __ARG1 = (ARG1); \ - __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - - -/** - \brief Rotate Right with Extend (32 bit) - \details Moves each bit of a bitstring right by one bit. - The carry input is shifted in at the left end of the bitstring. - \param [in] value Value to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return(result); -} - - -/** - \brief LDRT Unprivileged (8 bit) - \details Executes a Unprivileged LDRT instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) -{ - uint32_t result; - -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); -#else - /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not - accepted by assembler. So has to use following less efficient pattern. - */ - __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); -#endif - return ((uint8_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (16 bit) - \details Executes a Unprivileged LDRT instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) -{ - uint32_t result; - -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); -#else - /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not - accepted by assembler. So has to use following less efficient pattern. - */ - __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); -#endif - return ((uint16_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (32 bit) - \details Executes a Unprivileged LDRT instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief STRT Unprivileged (8 bit) - \details Executes a Unprivileged STRT instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (16 bit) - \details Executes a Unprivileged STRT instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (32 bit) - \details Executes a Unprivileged STRT instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); -} - -#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) -{ - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; -} - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) -{ - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief Load-Acquire (8 bit) - \details Executes a LDAB instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); -} - - -/** - \brief Load-Acquire (16 bit) - \details Executes a LDAH instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); -} - - -/** - \brief Load-Acquire (32 bit) - \details Executes a LDA instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief Store-Release (8 bit) - \details Executes a STLB instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (16 bit) - \details Executes a STLH instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (32 bit) - \details Executes a STL instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Load-Acquire Exclusive (8 bit) - \details Executes a LDAB exclusive instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDAEXB(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldaexb %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); -} - - -/** - \brief Load-Acquire Exclusive (16 bit) - \details Executes a LDAH exclusive instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldaexh %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); -} - - -/** - \brief Load-Acquire Exclusive (32 bit) - \details Executes a LDA exclusive instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDAEX(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldaex %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief Store-Release Exclusive (8 bit) - \details Executes a STLB exclusive instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("stlexb %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); - return(result); -} - - -/** - \brief Store-Release Exclusive (16 bit) - \details Executes a STLH exclusive instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("stlexh %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); - return(result); -} - - -/** - \brief Store-Release Exclusive (32 bit) - \details Executes a STL exclusive instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("stlex %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); - return(result); -} - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ - - -/* ################### Compiler specific Intrinsics ########################### */ -/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics - Access to dedicated SIMD instructions - @{ -*/ - -#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) - -__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - - -__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - - -__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#define __SSAT16(ARG1,ARG2) \ -({ \ - int32_t __RES, __ARG1 = (ARG1); \ - __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - -#define __USAT16(ARG1,ARG2) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1); \ - __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - -__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) -{ - uint32_t result; - - __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) -{ - uint32_t result; - - __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) -{ - int32_t result; - - __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) -{ - int32_t result; - - __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -#if 0 -#define __PKHBT(ARG1,ARG2,ARG3) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ - __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ - __RES; \ - }) - -#define __PKHTB(ARG1,ARG2,ARG3) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ - if (ARG3 == 0) \ - __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ - else \ - __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ - __RES; \ - }) -#endif - -#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ - ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) - -#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ - ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) - -__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) -{ - int32_t result; - - __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#endif /* (__ARM_FEATURE_DSP == 1) */ -/*@} end of group CMSIS_SIMD_intrinsics */ - - -#pragma GCC diagnostic pop - -#endif /* __CMSIS_GCC_H */ +/**************************************************************************//** + * @file cmsis_gcc.h + * @brief CMSIS compiler GCC header file + * @version V5.2.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_GCC_H +#define __CMSIS_GCC_H + +/* ignore some GCC warnings */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wunused-parameter" + +/* Fallback for __has_builtin */ +#ifndef __has_builtin + #define __has_builtin(x) (0) +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START + +/** + \brief Initializes data and bss sections + \details This default implementations initialized all data and additional bss + sections relying on .copy.table and .zero.table specified properly + in the used linker script. + + */ +__STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) +{ + extern void _start(void) __NO_RETURN; + + typedef struct { + uint32_t const* src; + uint32_t* dest; + uint32_t wlen; + } __copy_table_t; + + typedef struct { + uint32_t* dest; + uint32_t wlen; + } __zero_table_t; + + extern const __copy_table_t __copy_table_start__; + extern const __copy_table_t __copy_table_end__; + extern const __zero_table_t __zero_table_start__; + extern const __zero_table_t __zero_table_end__; + + for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable) { + for(uint32_t i=0u; iwlen; ++i) { + pTable->dest[i] = pTable->src[i]; + } + } + + for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable) { + for(uint32_t i=0u; iwlen; ++i) { + pTable->dest[i] = 0u; + } + } + + _start(); +} + +#define __PROGRAM_START __cmsis_start +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP __StackTop +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT __StackLimit +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__STATIC_FORCEINLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_get_fpscr) +// Re-enable using built-in when GCC has been fixed +// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + return __builtin_arm_get_fpscr(); +#else + uint32_t result; + + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + return(result); +#endif +#else + return(0U); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_set_fpscr) +// Re-enable using built-in when GCC has been fixed +// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + __builtin_arm_set_fpscr(fpscr); +#else + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); +#endif +#else + (void)fpscr; +#endif +} + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_RW_REG(r) "+l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_RW_REG(r) "+r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP() __ASM volatile ("nop") + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI() __ASM volatile ("wfi") + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE() __ASM volatile ("wfe") + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV() __ASM volatile ("sev") + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +__STATIC_FORCEINLINE void __ISB(void) +{ + __ASM volatile ("isb 0xF":::"memory"); +} + + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__STATIC_FORCEINLINE void __DSB(void) +{ + __ASM volatile ("dsb 0xF":::"memory"); +} + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__STATIC_FORCEINLINE void __DMB(void) +{ + __ASM volatile ("dmb 0xF":::"memory"); +} + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV(uint32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + return __builtin_bswap32(value); +#else + uint32_t result; + + __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (int16_t)__builtin_bswap16(value); +#else + int16_t result; + + __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); +#else + uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ +#endif + return result; +} + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + return(result); +} + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +__STATIC_FORCEINLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT(ARG1,ARG2) \ +__extension__ \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT(ARG1,ARG2) \ + __extension__ \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAEXB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexb %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexh %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDAEX(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaex %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexb %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexh %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlex %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#if 0 +#define __PKHBT(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) + +#define __PKHTB(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + if (ARG3 == 0) \ + __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ + else \ + __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) +#endif + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#pragma GCC diagnostic pop + +#endif /* __CMSIS_GCC_H */ diff --git a/eps/firmware/bsp/cmsis/Include/cmsis_iccarm.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h similarity index 96% rename from eps/firmware/bsp/cmsis/Include/cmsis_iccarm.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h index 7af7562..12d68fd 100644 --- a/eps/firmware/bsp/cmsis/Include/cmsis_iccarm.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h @@ -1,964 +1,964 @@ -/**************************************************************************//** - * @file cmsis_iccarm.h - * @brief CMSIS compiler ICCARM (IAR Compiler for Arm) header file - * @version V5.1.0 - * @date 08. May 2019 - ******************************************************************************/ - -//------------------------------------------------------------------------------ -// -// Copyright (c) 2017-2019 IAR Systems -// Copyright (c) 2017-2019 Arm Limited. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License") -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//------------------------------------------------------------------------------ - - -#ifndef __CMSIS_ICCARM_H__ -#define __CMSIS_ICCARM_H__ - -#ifndef __ICCARM__ - #error This file should only be compiled by ICCARM -#endif - -#pragma system_include - -#define __IAR_FT _Pragma("inline=forced") __intrinsic - -#if (__VER__ >= 8000000) - #define __ICCARM_V8 1 -#else - #define __ICCARM_V8 0 -#endif - -#ifndef __ALIGNED - #if __ICCARM_V8 - #define __ALIGNED(x) __attribute__((aligned(x))) - #elif (__VER__ >= 7080000) - /* Needs IAR language extensions */ - #define __ALIGNED(x) __attribute__((aligned(x))) - #else - #warning No compiler specific solution for __ALIGNED.__ALIGNED is ignored. - #define __ALIGNED(x) - #endif -#endif - - -/* Define compiler macros for CPU architecture, used in CMSIS 5. - */ -#if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__ || __ARM_ARCH_8M_BASE__ || __ARM_ARCH_8M_MAIN__ -/* Macros already defined */ -#else - #if defined(__ARM8M_MAINLINE__) || defined(__ARM8EM_MAINLINE__) - #define __ARM_ARCH_8M_MAIN__ 1 - #elif defined(__ARM8M_BASELINE__) - #define __ARM_ARCH_8M_BASE__ 1 - #elif defined(__ARM_ARCH_PROFILE) && __ARM_ARCH_PROFILE == 'M' - #if __ARM_ARCH == 6 - #define __ARM_ARCH_6M__ 1 - #elif __ARM_ARCH == 7 - #if __ARM_FEATURE_DSP - #define __ARM_ARCH_7EM__ 1 - #else - #define __ARM_ARCH_7M__ 1 - #endif - #endif /* __ARM_ARCH */ - #endif /* __ARM_ARCH_PROFILE == 'M' */ -#endif - -/* Alternativ core deduction for older ICCARM's */ -#if !defined(__ARM_ARCH_6M__) && !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7EM__) && \ - !defined(__ARM_ARCH_8M_BASE__) && !defined(__ARM_ARCH_8M_MAIN__) - #if defined(__ARM6M__) && (__CORE__ == __ARM6M__) - #define __ARM_ARCH_6M__ 1 - #elif defined(__ARM7M__) && (__CORE__ == __ARM7M__) - #define __ARM_ARCH_7M__ 1 - #elif defined(__ARM7EM__) && (__CORE__ == __ARM7EM__) - #define __ARM_ARCH_7EM__ 1 - #elif defined(__ARM8M_BASELINE__) && (__CORE == __ARM8M_BASELINE__) - #define __ARM_ARCH_8M_BASE__ 1 - #elif defined(__ARM8M_MAINLINE__) && (__CORE == __ARM8M_MAINLINE__) - #define __ARM_ARCH_8M_MAIN__ 1 - #elif defined(__ARM8EM_MAINLINE__) && (__CORE == __ARM8EM_MAINLINE__) - #define __ARM_ARCH_8M_MAIN__ 1 - #else - #error "Unknown target." - #endif -#endif - - - -#if defined(__ARM_ARCH_6M__) && __ARM_ARCH_6M__==1 - #define __IAR_M0_FAMILY 1 -#elif defined(__ARM_ARCH_8M_BASE__) && __ARM_ARCH_8M_BASE__==1 - #define __IAR_M0_FAMILY 1 -#else - #define __IAR_M0_FAMILY 0 -#endif - - -#ifndef __ASM - #define __ASM __asm -#endif - -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __ASM volatile("":::"memory") -#endif - -#ifndef __INLINE - #define __INLINE inline -#endif - -#ifndef __NO_RETURN - #if __ICCARM_V8 - #define __NO_RETURN __attribute__((__noreturn__)) - #else - #define __NO_RETURN _Pragma("object_attribute=__noreturn") - #endif -#endif - -#ifndef __PACKED - #if __ICCARM_V8 - #define __PACKED __attribute__((packed, aligned(1))) - #else - /* Needs IAR language extensions */ - #define __PACKED __packed - #endif -#endif - -#ifndef __PACKED_STRUCT - #if __ICCARM_V8 - #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) - #else - /* Needs IAR language extensions */ - #define __PACKED_STRUCT __packed struct - #endif -#endif - -#ifndef __PACKED_UNION - #if __ICCARM_V8 - #define __PACKED_UNION union __attribute__((packed, aligned(1))) - #else - /* Needs IAR language extensions */ - #define __PACKED_UNION __packed union - #endif -#endif - -#ifndef __RESTRICT - #if __ICCARM_V8 - #define __RESTRICT __restrict - #else - /* Needs IAR language extensions */ - #define __RESTRICT restrict - #endif -#endif - -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline -#endif - -#ifndef __FORCEINLINE - #define __FORCEINLINE _Pragma("inline=forced") -#endif - -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __FORCEINLINE __STATIC_INLINE -#endif - -#ifndef __UNALIGNED_UINT16_READ -#pragma language=save -#pragma language=extended -__IAR_FT uint16_t __iar_uint16_read(void const *ptr) -{ - return *(__packed uint16_t*)(ptr); -} -#pragma language=restore -#define __UNALIGNED_UINT16_READ(PTR) __iar_uint16_read(PTR) -#endif - - -#ifndef __UNALIGNED_UINT16_WRITE -#pragma language=save -#pragma language=extended -__IAR_FT void __iar_uint16_write(void const *ptr, uint16_t val) -{ - *(__packed uint16_t*)(ptr) = val;; -} -#pragma language=restore -#define __UNALIGNED_UINT16_WRITE(PTR,VAL) __iar_uint16_write(PTR,VAL) -#endif - -#ifndef __UNALIGNED_UINT32_READ -#pragma language=save -#pragma language=extended -__IAR_FT uint32_t __iar_uint32_read(void const *ptr) -{ - return *(__packed uint32_t*)(ptr); -} -#pragma language=restore -#define __UNALIGNED_UINT32_READ(PTR) __iar_uint32_read(PTR) -#endif - -#ifndef __UNALIGNED_UINT32_WRITE -#pragma language=save -#pragma language=extended -__IAR_FT void __iar_uint32_write(void const *ptr, uint32_t val) -{ - *(__packed uint32_t*)(ptr) = val;; -} -#pragma language=restore -#define __UNALIGNED_UINT32_WRITE(PTR,VAL) __iar_uint32_write(PTR,VAL) -#endif - -#ifndef __UNALIGNED_UINT32 /* deprecated */ -#pragma language=save -#pragma language=extended -__packed struct __iar_u32 { uint32_t v; }; -#pragma language=restore -#define __UNALIGNED_UINT32(PTR) (((struct __iar_u32 *)(PTR))->v) -#endif - -#ifndef __USED - #if __ICCARM_V8 - #define __USED __attribute__((used)) - #else - #define __USED _Pragma("__root") - #endif -#endif - -#ifndef __WEAK - #if __ICCARM_V8 - #define __WEAK __attribute__((weak)) - #else - #define __WEAK _Pragma("__weak") - #endif -#endif - -#ifndef __PROGRAM_START -#define __PROGRAM_START __iar_program_start -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP CSTACK$$Limit -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT CSTACK$$Base -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __vector_table -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE @".intvec" -#endif - -#ifndef __ICCARM_INTRINSICS_VERSION__ - #define __ICCARM_INTRINSICS_VERSION__ 0 -#endif - -#if __ICCARM_INTRINSICS_VERSION__ == 2 - - #if defined(__CLZ) - #undef __CLZ - #endif - #if defined(__REVSH) - #undef __REVSH - #endif - #if defined(__RBIT) - #undef __RBIT - #endif - #if defined(__SSAT) - #undef __SSAT - #endif - #if defined(__USAT) - #undef __USAT - #endif - - #include "iccarm_builtin.h" - - #define __disable_fault_irq __iar_builtin_disable_fiq - #define __disable_irq __iar_builtin_disable_interrupt - #define __enable_fault_irq __iar_builtin_enable_fiq - #define __enable_irq __iar_builtin_enable_interrupt - #define __arm_rsr __iar_builtin_rsr - #define __arm_wsr __iar_builtin_wsr - - - #define __get_APSR() (__arm_rsr("APSR")) - #define __get_BASEPRI() (__arm_rsr("BASEPRI")) - #define __get_CONTROL() (__arm_rsr("CONTROL")) - #define __get_FAULTMASK() (__arm_rsr("FAULTMASK")) - - #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) - #define __get_FPSCR() (__arm_rsr("FPSCR")) - #define __set_FPSCR(VALUE) (__arm_wsr("FPSCR", (VALUE))) - #else - #define __get_FPSCR() ( 0 ) - #define __set_FPSCR(VALUE) ((void)VALUE) - #endif - - #define __get_IPSR() (__arm_rsr("IPSR")) - #define __get_MSP() (__arm_rsr("MSP")) - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - #define __get_MSPLIM() (0U) - #else - #define __get_MSPLIM() (__arm_rsr("MSPLIM")) - #endif - #define __get_PRIMASK() (__arm_rsr("PRIMASK")) - #define __get_PSP() (__arm_rsr("PSP")) - - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - #define __get_PSPLIM() (0U) - #else - #define __get_PSPLIM() (__arm_rsr("PSPLIM")) - #endif - - #define __get_xPSR() (__arm_rsr("xPSR")) - - #define __set_BASEPRI(VALUE) (__arm_wsr("BASEPRI", (VALUE))) - #define __set_BASEPRI_MAX(VALUE) (__arm_wsr("BASEPRI_MAX", (VALUE))) - #define __set_CONTROL(VALUE) (__arm_wsr("CONTROL", (VALUE))) - #define __set_FAULTMASK(VALUE) (__arm_wsr("FAULTMASK", (VALUE))) - #define __set_MSP(VALUE) (__arm_wsr("MSP", (VALUE))) - - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - #define __set_MSPLIM(VALUE) ((void)(VALUE)) - #else - #define __set_MSPLIM(VALUE) (__arm_wsr("MSPLIM", (VALUE))) - #endif - #define __set_PRIMASK(VALUE) (__arm_wsr("PRIMASK", (VALUE))) - #define __set_PSP(VALUE) (__arm_wsr("PSP", (VALUE))) - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - #define __set_PSPLIM(VALUE) ((void)(VALUE)) - #else - #define __set_PSPLIM(VALUE) (__arm_wsr("PSPLIM", (VALUE))) - #endif - - #define __TZ_get_CONTROL_NS() (__arm_rsr("CONTROL_NS")) - #define __TZ_set_CONTROL_NS(VALUE) (__arm_wsr("CONTROL_NS", (VALUE))) - #define __TZ_get_PSP_NS() (__arm_rsr("PSP_NS")) - #define __TZ_set_PSP_NS(VALUE) (__arm_wsr("PSP_NS", (VALUE))) - #define __TZ_get_MSP_NS() (__arm_rsr("MSP_NS")) - #define __TZ_set_MSP_NS(VALUE) (__arm_wsr("MSP_NS", (VALUE))) - #define __TZ_get_SP_NS() (__arm_rsr("SP_NS")) - #define __TZ_set_SP_NS(VALUE) (__arm_wsr("SP_NS", (VALUE))) - #define __TZ_get_PRIMASK_NS() (__arm_rsr("PRIMASK_NS")) - #define __TZ_set_PRIMASK_NS(VALUE) (__arm_wsr("PRIMASK_NS", (VALUE))) - #define __TZ_get_BASEPRI_NS() (__arm_rsr("BASEPRI_NS")) - #define __TZ_set_BASEPRI_NS(VALUE) (__arm_wsr("BASEPRI_NS", (VALUE))) - #define __TZ_get_FAULTMASK_NS() (__arm_rsr("FAULTMASK_NS")) - #define __TZ_set_FAULTMASK_NS(VALUE)(__arm_wsr("FAULTMASK_NS", (VALUE))) - - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - #define __TZ_get_PSPLIM_NS() (0U) - #define __TZ_set_PSPLIM_NS(VALUE) ((void)(VALUE)) - #else - #define __TZ_get_PSPLIM_NS() (__arm_rsr("PSPLIM_NS")) - #define __TZ_set_PSPLIM_NS(VALUE) (__arm_wsr("PSPLIM_NS", (VALUE))) - #endif - - #define __TZ_get_MSPLIM_NS() (__arm_rsr("MSPLIM_NS")) - #define __TZ_set_MSPLIM_NS(VALUE) (__arm_wsr("MSPLIM_NS", (VALUE))) - - #define __NOP __iar_builtin_no_operation - - #define __CLZ __iar_builtin_CLZ - #define __CLREX __iar_builtin_CLREX - - #define __DMB __iar_builtin_DMB - #define __DSB __iar_builtin_DSB - #define __ISB __iar_builtin_ISB - - #define __LDREXB __iar_builtin_LDREXB - #define __LDREXH __iar_builtin_LDREXH - #define __LDREXW __iar_builtin_LDREX - - #define __RBIT __iar_builtin_RBIT - #define __REV __iar_builtin_REV - #define __REV16 __iar_builtin_REV16 - - __IAR_FT int16_t __REVSH(int16_t val) - { - return (int16_t) __iar_builtin_REVSH(val); - } - - #define __ROR __iar_builtin_ROR - #define __RRX __iar_builtin_RRX - - #define __SEV __iar_builtin_SEV - - #if !__IAR_M0_FAMILY - #define __SSAT __iar_builtin_SSAT - #endif - - #define __STREXB __iar_builtin_STREXB - #define __STREXH __iar_builtin_STREXH - #define __STREXW __iar_builtin_STREX - - #if !__IAR_M0_FAMILY - #define __USAT __iar_builtin_USAT - #endif - - #define __WFE __iar_builtin_WFE - #define __WFI __iar_builtin_WFI - - #if __ARM_MEDIA__ - #define __SADD8 __iar_builtin_SADD8 - #define __QADD8 __iar_builtin_QADD8 - #define __SHADD8 __iar_builtin_SHADD8 - #define __UADD8 __iar_builtin_UADD8 - #define __UQADD8 __iar_builtin_UQADD8 - #define __UHADD8 __iar_builtin_UHADD8 - #define __SSUB8 __iar_builtin_SSUB8 - #define __QSUB8 __iar_builtin_QSUB8 - #define __SHSUB8 __iar_builtin_SHSUB8 - #define __USUB8 __iar_builtin_USUB8 - #define __UQSUB8 __iar_builtin_UQSUB8 - #define __UHSUB8 __iar_builtin_UHSUB8 - #define __SADD16 __iar_builtin_SADD16 - #define __QADD16 __iar_builtin_QADD16 - #define __SHADD16 __iar_builtin_SHADD16 - #define __UADD16 __iar_builtin_UADD16 - #define __UQADD16 __iar_builtin_UQADD16 - #define __UHADD16 __iar_builtin_UHADD16 - #define __SSUB16 __iar_builtin_SSUB16 - #define __QSUB16 __iar_builtin_QSUB16 - #define __SHSUB16 __iar_builtin_SHSUB16 - #define __USUB16 __iar_builtin_USUB16 - #define __UQSUB16 __iar_builtin_UQSUB16 - #define __UHSUB16 __iar_builtin_UHSUB16 - #define __SASX __iar_builtin_SASX - #define __QASX __iar_builtin_QASX - #define __SHASX __iar_builtin_SHASX - #define __UASX __iar_builtin_UASX - #define __UQASX __iar_builtin_UQASX - #define __UHASX __iar_builtin_UHASX - #define __SSAX __iar_builtin_SSAX - #define __QSAX __iar_builtin_QSAX - #define __SHSAX __iar_builtin_SHSAX - #define __USAX __iar_builtin_USAX - #define __UQSAX __iar_builtin_UQSAX - #define __UHSAX __iar_builtin_UHSAX - #define __USAD8 __iar_builtin_USAD8 - #define __USADA8 __iar_builtin_USADA8 - #define __SSAT16 __iar_builtin_SSAT16 - #define __USAT16 __iar_builtin_USAT16 - #define __UXTB16 __iar_builtin_UXTB16 - #define __UXTAB16 __iar_builtin_UXTAB16 - #define __SXTB16 __iar_builtin_SXTB16 - #define __SXTAB16 __iar_builtin_SXTAB16 - #define __SMUAD __iar_builtin_SMUAD - #define __SMUADX __iar_builtin_SMUADX - #define __SMMLA __iar_builtin_SMMLA - #define __SMLAD __iar_builtin_SMLAD - #define __SMLADX __iar_builtin_SMLADX - #define __SMLALD __iar_builtin_SMLALD - #define __SMLALDX __iar_builtin_SMLALDX - #define __SMUSD __iar_builtin_SMUSD - #define __SMUSDX __iar_builtin_SMUSDX - #define __SMLSD __iar_builtin_SMLSD - #define __SMLSDX __iar_builtin_SMLSDX - #define __SMLSLD __iar_builtin_SMLSLD - #define __SMLSLDX __iar_builtin_SMLSLDX - #define __SEL __iar_builtin_SEL - #define __QADD __iar_builtin_QADD - #define __QSUB __iar_builtin_QSUB - #define __PKHBT __iar_builtin_PKHBT - #define __PKHTB __iar_builtin_PKHTB - #endif - -#else /* __ICCARM_INTRINSICS_VERSION__ == 2 */ - - #if __IAR_M0_FAMILY - /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ - #define __CLZ __cmsis_iar_clz_not_active - #define __SSAT __cmsis_iar_ssat_not_active - #define __USAT __cmsis_iar_usat_not_active - #define __RBIT __cmsis_iar_rbit_not_active - #define __get_APSR __cmsis_iar_get_APSR_not_active - #endif - - - #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) - #define __get_FPSCR __cmsis_iar_get_FPSR_not_active - #define __set_FPSCR __cmsis_iar_set_FPSR_not_active - #endif - - #ifdef __INTRINSICS_INCLUDED - #error intrinsics.h is already included previously! - #endif - - #include - - #if __IAR_M0_FAMILY - /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ - #undef __CLZ - #undef __SSAT - #undef __USAT - #undef __RBIT - #undef __get_APSR - - __STATIC_INLINE uint8_t __CLZ(uint32_t data) - { - if (data == 0U) { return 32U; } - - uint32_t count = 0U; - uint32_t mask = 0x80000000U; - - while ((data & mask) == 0U) - { - count += 1U; - mask = mask >> 1U; - } - return count; - } - - __STATIC_INLINE uint32_t __RBIT(uint32_t v) - { - uint8_t sc = 31U; - uint32_t r = v; - for (v >>= 1U; v; v >>= 1U) - { - r <<= 1U; - r |= v & 1U; - sc--; - } - return (r << sc); - } - - __STATIC_INLINE uint32_t __get_APSR(void) - { - uint32_t res; - __asm("MRS %0,APSR" : "=r" (res)); - return res; - } - - #endif - - #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) - #undef __get_FPSCR - #undef __set_FPSCR - #define __get_FPSCR() (0) - #define __set_FPSCR(VALUE) ((void)VALUE) - #endif - - #pragma diag_suppress=Pe940 - #pragma diag_suppress=Pe177 - - #define __enable_irq __enable_interrupt - #define __disable_irq __disable_interrupt - #define __NOP __no_operation - - #define __get_xPSR __get_PSR - - #if (!defined(__ARM_ARCH_6M__) || __ARM_ARCH_6M__==0) - - __IAR_FT uint32_t __LDREXW(uint32_t volatile *ptr) - { - return __LDREX((unsigned long *)ptr); - } - - __IAR_FT uint32_t __STREXW(uint32_t value, uint32_t volatile *ptr) - { - return __STREX(value, (unsigned long *)ptr); - } - #endif - - - /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ - #if (__CORTEX_M >= 0x03) - - __IAR_FT uint32_t __RRX(uint32_t value) - { - uint32_t result; - __ASM("RRX %0, %1" : "=r"(result) : "r" (value) : "cc"); - return(result); - } - - __IAR_FT void __set_BASEPRI_MAX(uint32_t value) - { - __asm volatile("MSR BASEPRI_MAX,%0"::"r" (value)); - } - - - #define __enable_fault_irq __enable_fiq - #define __disable_fault_irq __disable_fiq - - - #endif /* (__CORTEX_M >= 0x03) */ - - __IAR_FT uint32_t __ROR(uint32_t op1, uint32_t op2) - { - return (op1 >> op2) | (op1 << ((sizeof(op1)*8)-op2)); - } - - #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - - __IAR_FT uint32_t __get_MSPLIM(void) - { - uint32_t res; - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - res = 0U; - #else - __asm volatile("MRS %0,MSPLIM" : "=r" (res)); - #endif - return res; - } - - __IAR_FT void __set_MSPLIM(uint32_t value) - { - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)value; - #else - __asm volatile("MSR MSPLIM,%0" :: "r" (value)); - #endif - } - - __IAR_FT uint32_t __get_PSPLIM(void) - { - uint32_t res; - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - res = 0U; - #else - __asm volatile("MRS %0,PSPLIM" : "=r" (res)); - #endif - return res; - } - - __IAR_FT void __set_PSPLIM(uint32_t value) - { - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)value; - #else - __asm volatile("MSR PSPLIM,%0" :: "r" (value)); - #endif - } - - __IAR_FT uint32_t __TZ_get_CONTROL_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,CONTROL_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_CONTROL_NS(uint32_t value) - { - __asm volatile("MSR CONTROL_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_PSP_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,PSP_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_PSP_NS(uint32_t value) - { - __asm volatile("MSR PSP_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_MSP_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,MSP_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_MSP_NS(uint32_t value) - { - __asm volatile("MSR MSP_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_SP_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,SP_NS" : "=r" (res)); - return res; - } - __IAR_FT void __TZ_set_SP_NS(uint32_t value) - { - __asm volatile("MSR SP_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_PRIMASK_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,PRIMASK_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_PRIMASK_NS(uint32_t value) - { - __asm volatile("MSR PRIMASK_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_BASEPRI_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,BASEPRI_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_BASEPRI_NS(uint32_t value) - { - __asm volatile("MSR BASEPRI_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_FAULTMASK_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,FAULTMASK_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_FAULTMASK_NS(uint32_t value) - { - __asm volatile("MSR FAULTMASK_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_PSPLIM_NS(void) - { - uint32_t res; - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - res = 0U; - #else - __asm volatile("MRS %0,PSPLIM_NS" : "=r" (res)); - #endif - return res; - } - - __IAR_FT void __TZ_set_PSPLIM_NS(uint32_t value) - { - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)value; - #else - __asm volatile("MSR PSPLIM_NS,%0" :: "r" (value)); - #endif - } - - __IAR_FT uint32_t __TZ_get_MSPLIM_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,MSPLIM_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_MSPLIM_NS(uint32_t value) - { - __asm volatile("MSR MSPLIM_NS,%0" :: "r" (value)); - } - - #endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ - -#endif /* __ICCARM_INTRINSICS_VERSION__ == 2 */ - -#define __BKPT(value) __asm volatile ("BKPT %0" : : "i"(value)) - -#if __IAR_M0_FAMILY - __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) - { - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; - } - - __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) - { - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; - } -#endif - -#if (__CORTEX_M >= 0x03) /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ - - __IAR_FT uint8_t __LDRBT(volatile uint8_t *addr) - { - uint32_t res; - __ASM("LDRBT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); - return ((uint8_t)res); - } - - __IAR_FT uint16_t __LDRHT(volatile uint16_t *addr) - { - uint32_t res; - __ASM("LDRHT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); - return ((uint16_t)res); - } - - __IAR_FT uint32_t __LDRT(volatile uint32_t *addr) - { - uint32_t res; - __ASM("LDRT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); - return res; - } - - __IAR_FT void __STRBT(uint8_t value, volatile uint8_t *addr) - { - __ASM("STRBT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); - } - - __IAR_FT void __STRHT(uint16_t value, volatile uint16_t *addr) - { - __ASM("STRHT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); - } - - __IAR_FT void __STRT(uint32_t value, volatile uint32_t *addr) - { - __ASM("STRT %1, [%0]" : : "r" (addr), "r" (value) : "memory"); - } - -#endif /* (__CORTEX_M >= 0x03) */ - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - - - __IAR_FT uint8_t __LDAB(volatile uint8_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return ((uint8_t)res); - } - - __IAR_FT uint16_t __LDAH(volatile uint16_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return ((uint16_t)res); - } - - __IAR_FT uint32_t __LDA(volatile uint32_t *ptr) - { - uint32_t res; - __ASM volatile ("LDA %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return res; - } - - __IAR_FT void __STLB(uint8_t value, volatile uint8_t *ptr) - { - __ASM volatile ("STLB %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); - } - - __IAR_FT void __STLH(uint16_t value, volatile uint16_t *ptr) - { - __ASM volatile ("STLH %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); - } - - __IAR_FT void __STL(uint32_t value, volatile uint32_t *ptr) - { - __ASM volatile ("STL %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); - } - - __IAR_FT uint8_t __LDAEXB(volatile uint8_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAEXB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return ((uint8_t)res); - } - - __IAR_FT uint16_t __LDAEXH(volatile uint16_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAEXH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return ((uint16_t)res); - } - - __IAR_FT uint32_t __LDAEX(volatile uint32_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAEX %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return res; - } - - __IAR_FT uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) - { - uint32_t res; - __ASM volatile ("STLEXB %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); - return res; - } - - __IAR_FT uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) - { - uint32_t res; - __ASM volatile ("STLEXH %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); - return res; - } - - __IAR_FT uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) - { - uint32_t res; - __ASM volatile ("STLEX %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); - return res; - } - -#endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ - -#undef __IAR_FT -#undef __IAR_M0_FAMILY -#undef __ICCARM_V8 - -#pragma diag_default=Pe940 -#pragma diag_default=Pe177 - -#endif /* __CMSIS_ICCARM_H__ */ +/**************************************************************************//** + * @file cmsis_iccarm.h + * @brief CMSIS compiler ICCARM (IAR Compiler for Arm) header file + * @version V5.1.0 + * @date 08. May 2019 + ******************************************************************************/ + +//------------------------------------------------------------------------------ +// +// Copyright (c) 2017-2019 IAR Systems +// Copyright (c) 2017-2019 Arm Limited. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License") +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//------------------------------------------------------------------------------ + + +#ifndef __CMSIS_ICCARM_H__ +#define __CMSIS_ICCARM_H__ + +#ifndef __ICCARM__ + #error This file should only be compiled by ICCARM +#endif + +#pragma system_include + +#define __IAR_FT _Pragma("inline=forced") __intrinsic + +#if (__VER__ >= 8000000) + #define __ICCARM_V8 1 +#else + #define __ICCARM_V8 0 +#endif + +#ifndef __ALIGNED + #if __ICCARM_V8 + #define __ALIGNED(x) __attribute__((aligned(x))) + #elif (__VER__ >= 7080000) + /* Needs IAR language extensions */ + #define __ALIGNED(x) __attribute__((aligned(x))) + #else + #warning No compiler specific solution for __ALIGNED.__ALIGNED is ignored. + #define __ALIGNED(x) + #endif +#endif + + +/* Define compiler macros for CPU architecture, used in CMSIS 5. + */ +#if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__ || __ARM_ARCH_8M_BASE__ || __ARM_ARCH_8M_MAIN__ +/* Macros already defined */ +#else + #if defined(__ARM8M_MAINLINE__) || defined(__ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM_ARCH_PROFILE) && __ARM_ARCH_PROFILE == 'M' + #if __ARM_ARCH == 6 + #define __ARM_ARCH_6M__ 1 + #elif __ARM_ARCH == 7 + #if __ARM_FEATURE_DSP + #define __ARM_ARCH_7EM__ 1 + #else + #define __ARM_ARCH_7M__ 1 + #endif + #endif /* __ARM_ARCH */ + #endif /* __ARM_ARCH_PROFILE == 'M' */ +#endif + +/* Alternativ core deduction for older ICCARM's */ +#if !defined(__ARM_ARCH_6M__) && !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7EM__) && \ + !defined(__ARM_ARCH_8M_BASE__) && !defined(__ARM_ARCH_8M_MAIN__) + #if defined(__ARM6M__) && (__CORE__ == __ARM6M__) + #define __ARM_ARCH_6M__ 1 + #elif defined(__ARM7M__) && (__CORE__ == __ARM7M__) + #define __ARM_ARCH_7M__ 1 + #elif defined(__ARM7EM__) && (__CORE__ == __ARM7EM__) + #define __ARM_ARCH_7EM__ 1 + #elif defined(__ARM8M_BASELINE__) && (__CORE == __ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM8M_MAINLINE__) && (__CORE == __ARM8M_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8EM_MAINLINE__) && (__CORE == __ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #else + #error "Unknown target." + #endif +#endif + + + +#if defined(__ARM_ARCH_6M__) && __ARM_ARCH_6M__==1 + #define __IAR_M0_FAMILY 1 +#elif defined(__ARM_ARCH_8M_BASE__) && __ARM_ARCH_8M_BASE__==1 + #define __IAR_M0_FAMILY 1 +#else + #define __IAR_M0_FAMILY 0 +#endif + + +#ifndef __ASM + #define __ASM __asm +#endif + +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +#ifndef __INLINE + #define __INLINE inline +#endif + +#ifndef __NO_RETURN + #if __ICCARM_V8 + #define __NO_RETURN __attribute__((__noreturn__)) + #else + #define __NO_RETURN _Pragma("object_attribute=__noreturn") + #endif +#endif + +#ifndef __PACKED + #if __ICCARM_V8 + #define __PACKED __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED __packed + #endif +#endif + +#ifndef __PACKED_STRUCT + #if __ICCARM_V8 + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_STRUCT __packed struct + #endif +#endif + +#ifndef __PACKED_UNION + #if __ICCARM_V8 + #define __PACKED_UNION union __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_UNION __packed union + #endif +#endif + +#ifndef __RESTRICT + #if __ICCARM_V8 + #define __RESTRICT __restrict + #else + /* Needs IAR language extensions */ + #define __RESTRICT restrict + #endif +#endif + +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif + +#ifndef __FORCEINLINE + #define __FORCEINLINE _Pragma("inline=forced") +#endif + +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __FORCEINLINE __STATIC_INLINE +#endif + +#ifndef __UNALIGNED_UINT16_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint16_t __iar_uint16_read(void const *ptr) +{ + return *(__packed uint16_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT16_READ(PTR) __iar_uint16_read(PTR) +#endif + + +#ifndef __UNALIGNED_UINT16_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint16_write(void const *ptr, uint16_t val) +{ + *(__packed uint16_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT16_WRITE(PTR,VAL) __iar_uint16_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint32_t __iar_uint32_read(void const *ptr) +{ + return *(__packed uint32_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT32_READ(PTR) __iar_uint32_read(PTR) +#endif + +#ifndef __UNALIGNED_UINT32_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint32_write(void const *ptr, uint32_t val) +{ + *(__packed uint32_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT32_WRITE(PTR,VAL) __iar_uint32_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32 /* deprecated */ +#pragma language=save +#pragma language=extended +__packed struct __iar_u32 { uint32_t v; }; +#pragma language=restore +#define __UNALIGNED_UINT32(PTR) (((struct __iar_u32 *)(PTR))->v) +#endif + +#ifndef __USED + #if __ICCARM_V8 + #define __USED __attribute__((used)) + #else + #define __USED _Pragma("__root") + #endif +#endif + +#ifndef __WEAK + #if __ICCARM_V8 + #define __WEAK __attribute__((weak)) + #else + #define __WEAK _Pragma("__weak") + #endif +#endif + +#ifndef __PROGRAM_START +#define __PROGRAM_START __iar_program_start +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP CSTACK$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT CSTACK$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __vector_table +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE @".intvec" +#endif + +#ifndef __ICCARM_INTRINSICS_VERSION__ + #define __ICCARM_INTRINSICS_VERSION__ 0 +#endif + +#if __ICCARM_INTRINSICS_VERSION__ == 2 + + #if defined(__CLZ) + #undef __CLZ + #endif + #if defined(__REVSH) + #undef __REVSH + #endif + #if defined(__RBIT) + #undef __RBIT + #endif + #if defined(__SSAT) + #undef __SSAT + #endif + #if defined(__USAT) + #undef __USAT + #endif + + #include "iccarm_builtin.h" + + #define __disable_fault_irq __iar_builtin_disable_fiq + #define __disable_irq __iar_builtin_disable_interrupt + #define __enable_fault_irq __iar_builtin_enable_fiq + #define __enable_irq __iar_builtin_enable_interrupt + #define __arm_rsr __iar_builtin_rsr + #define __arm_wsr __iar_builtin_wsr + + + #define __get_APSR() (__arm_rsr("APSR")) + #define __get_BASEPRI() (__arm_rsr("BASEPRI")) + #define __get_CONTROL() (__arm_rsr("CONTROL")) + #define __get_FAULTMASK() (__arm_rsr("FAULTMASK")) + + #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + #define __get_FPSCR() (__arm_rsr("FPSCR")) + #define __set_FPSCR(VALUE) (__arm_wsr("FPSCR", (VALUE))) + #else + #define __get_FPSCR() ( 0 ) + #define __set_FPSCR(VALUE) ((void)VALUE) + #endif + + #define __get_IPSR() (__arm_rsr("IPSR")) + #define __get_MSP() (__arm_rsr("MSP")) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __get_MSPLIM() (0U) + #else + #define __get_MSPLIM() (__arm_rsr("MSPLIM")) + #endif + #define __get_PRIMASK() (__arm_rsr("PRIMASK")) + #define __get_PSP() (__arm_rsr("PSP")) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __get_PSPLIM() (0U) + #else + #define __get_PSPLIM() (__arm_rsr("PSPLIM")) + #endif + + #define __get_xPSR() (__arm_rsr("xPSR")) + + #define __set_BASEPRI(VALUE) (__arm_wsr("BASEPRI", (VALUE))) + #define __set_BASEPRI_MAX(VALUE) (__arm_wsr("BASEPRI_MAX", (VALUE))) + #define __set_CONTROL(VALUE) (__arm_wsr("CONTROL", (VALUE))) + #define __set_FAULTMASK(VALUE) (__arm_wsr("FAULTMASK", (VALUE))) + #define __set_MSP(VALUE) (__arm_wsr("MSP", (VALUE))) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __set_MSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_MSPLIM(VALUE) (__arm_wsr("MSPLIM", (VALUE))) + #endif + #define __set_PRIMASK(VALUE) (__arm_wsr("PRIMASK", (VALUE))) + #define __set_PSP(VALUE) (__arm_wsr("PSP", (VALUE))) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __set_PSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_PSPLIM(VALUE) (__arm_wsr("PSPLIM", (VALUE))) + #endif + + #define __TZ_get_CONTROL_NS() (__arm_rsr("CONTROL_NS")) + #define __TZ_set_CONTROL_NS(VALUE) (__arm_wsr("CONTROL_NS", (VALUE))) + #define __TZ_get_PSP_NS() (__arm_rsr("PSP_NS")) + #define __TZ_set_PSP_NS(VALUE) (__arm_wsr("PSP_NS", (VALUE))) + #define __TZ_get_MSP_NS() (__arm_rsr("MSP_NS")) + #define __TZ_set_MSP_NS(VALUE) (__arm_wsr("MSP_NS", (VALUE))) + #define __TZ_get_SP_NS() (__arm_rsr("SP_NS")) + #define __TZ_set_SP_NS(VALUE) (__arm_wsr("SP_NS", (VALUE))) + #define __TZ_get_PRIMASK_NS() (__arm_rsr("PRIMASK_NS")) + #define __TZ_set_PRIMASK_NS(VALUE) (__arm_wsr("PRIMASK_NS", (VALUE))) + #define __TZ_get_BASEPRI_NS() (__arm_rsr("BASEPRI_NS")) + #define __TZ_set_BASEPRI_NS(VALUE) (__arm_wsr("BASEPRI_NS", (VALUE))) + #define __TZ_get_FAULTMASK_NS() (__arm_rsr("FAULTMASK_NS")) + #define __TZ_set_FAULTMASK_NS(VALUE)(__arm_wsr("FAULTMASK_NS", (VALUE))) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __TZ_get_PSPLIM_NS() (0U) + #define __TZ_set_PSPLIM_NS(VALUE) ((void)(VALUE)) + #else + #define __TZ_get_PSPLIM_NS() (__arm_rsr("PSPLIM_NS")) + #define __TZ_set_PSPLIM_NS(VALUE) (__arm_wsr("PSPLIM_NS", (VALUE))) + #endif + + #define __TZ_get_MSPLIM_NS() (__arm_rsr("MSPLIM_NS")) + #define __TZ_set_MSPLIM_NS(VALUE) (__arm_wsr("MSPLIM_NS", (VALUE))) + + #define __NOP __iar_builtin_no_operation + + #define __CLZ __iar_builtin_CLZ + #define __CLREX __iar_builtin_CLREX + + #define __DMB __iar_builtin_DMB + #define __DSB __iar_builtin_DSB + #define __ISB __iar_builtin_ISB + + #define __LDREXB __iar_builtin_LDREXB + #define __LDREXH __iar_builtin_LDREXH + #define __LDREXW __iar_builtin_LDREX + + #define __RBIT __iar_builtin_RBIT + #define __REV __iar_builtin_REV + #define __REV16 __iar_builtin_REV16 + + __IAR_FT int16_t __REVSH(int16_t val) + { + return (int16_t) __iar_builtin_REVSH(val); + } + + #define __ROR __iar_builtin_ROR + #define __RRX __iar_builtin_RRX + + #define __SEV __iar_builtin_SEV + + #if !__IAR_M0_FAMILY + #define __SSAT __iar_builtin_SSAT + #endif + + #define __STREXB __iar_builtin_STREXB + #define __STREXH __iar_builtin_STREXH + #define __STREXW __iar_builtin_STREX + + #if !__IAR_M0_FAMILY + #define __USAT __iar_builtin_USAT + #endif + + #define __WFE __iar_builtin_WFE + #define __WFI __iar_builtin_WFI + + #if __ARM_MEDIA__ + #define __SADD8 __iar_builtin_SADD8 + #define __QADD8 __iar_builtin_QADD8 + #define __SHADD8 __iar_builtin_SHADD8 + #define __UADD8 __iar_builtin_UADD8 + #define __UQADD8 __iar_builtin_UQADD8 + #define __UHADD8 __iar_builtin_UHADD8 + #define __SSUB8 __iar_builtin_SSUB8 + #define __QSUB8 __iar_builtin_QSUB8 + #define __SHSUB8 __iar_builtin_SHSUB8 + #define __USUB8 __iar_builtin_USUB8 + #define __UQSUB8 __iar_builtin_UQSUB8 + #define __UHSUB8 __iar_builtin_UHSUB8 + #define __SADD16 __iar_builtin_SADD16 + #define __QADD16 __iar_builtin_QADD16 + #define __SHADD16 __iar_builtin_SHADD16 + #define __UADD16 __iar_builtin_UADD16 + #define __UQADD16 __iar_builtin_UQADD16 + #define __UHADD16 __iar_builtin_UHADD16 + #define __SSUB16 __iar_builtin_SSUB16 + #define __QSUB16 __iar_builtin_QSUB16 + #define __SHSUB16 __iar_builtin_SHSUB16 + #define __USUB16 __iar_builtin_USUB16 + #define __UQSUB16 __iar_builtin_UQSUB16 + #define __UHSUB16 __iar_builtin_UHSUB16 + #define __SASX __iar_builtin_SASX + #define __QASX __iar_builtin_QASX + #define __SHASX __iar_builtin_SHASX + #define __UASX __iar_builtin_UASX + #define __UQASX __iar_builtin_UQASX + #define __UHASX __iar_builtin_UHASX + #define __SSAX __iar_builtin_SSAX + #define __QSAX __iar_builtin_QSAX + #define __SHSAX __iar_builtin_SHSAX + #define __USAX __iar_builtin_USAX + #define __UQSAX __iar_builtin_UQSAX + #define __UHSAX __iar_builtin_UHSAX + #define __USAD8 __iar_builtin_USAD8 + #define __USADA8 __iar_builtin_USADA8 + #define __SSAT16 __iar_builtin_SSAT16 + #define __USAT16 __iar_builtin_USAT16 + #define __UXTB16 __iar_builtin_UXTB16 + #define __UXTAB16 __iar_builtin_UXTAB16 + #define __SXTB16 __iar_builtin_SXTB16 + #define __SXTAB16 __iar_builtin_SXTAB16 + #define __SMUAD __iar_builtin_SMUAD + #define __SMUADX __iar_builtin_SMUADX + #define __SMMLA __iar_builtin_SMMLA + #define __SMLAD __iar_builtin_SMLAD + #define __SMLADX __iar_builtin_SMLADX + #define __SMLALD __iar_builtin_SMLALD + #define __SMLALDX __iar_builtin_SMLALDX + #define __SMUSD __iar_builtin_SMUSD + #define __SMUSDX __iar_builtin_SMUSDX + #define __SMLSD __iar_builtin_SMLSD + #define __SMLSDX __iar_builtin_SMLSDX + #define __SMLSLD __iar_builtin_SMLSLD + #define __SMLSLDX __iar_builtin_SMLSLDX + #define __SEL __iar_builtin_SEL + #define __QADD __iar_builtin_QADD + #define __QSUB __iar_builtin_QSUB + #define __PKHBT __iar_builtin_PKHBT + #define __PKHTB __iar_builtin_PKHTB + #endif + +#else /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #define __CLZ __cmsis_iar_clz_not_active + #define __SSAT __cmsis_iar_ssat_not_active + #define __USAT __cmsis_iar_usat_not_active + #define __RBIT __cmsis_iar_rbit_not_active + #define __get_APSR __cmsis_iar_get_APSR_not_active + #endif + + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #define __get_FPSCR __cmsis_iar_get_FPSR_not_active + #define __set_FPSCR __cmsis_iar_set_FPSR_not_active + #endif + + #ifdef __INTRINSICS_INCLUDED + #error intrinsics.h is already included previously! + #endif + + #include + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #undef __CLZ + #undef __SSAT + #undef __USAT + #undef __RBIT + #undef __get_APSR + + __STATIC_INLINE uint8_t __CLZ(uint32_t data) + { + if (data == 0U) { return 32U; } + + uint32_t count = 0U; + uint32_t mask = 0x80000000U; + + while ((data & mask) == 0U) + { + count += 1U; + mask = mask >> 1U; + } + return count; + } + + __STATIC_INLINE uint32_t __RBIT(uint32_t v) + { + uint8_t sc = 31U; + uint32_t r = v; + for (v >>= 1U; v; v >>= 1U) + { + r <<= 1U; + r |= v & 1U; + sc--; + } + return (r << sc); + } + + __STATIC_INLINE uint32_t __get_APSR(void) + { + uint32_t res; + __asm("MRS %0,APSR" : "=r" (res)); + return res; + } + + #endif + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #undef __get_FPSCR + #undef __set_FPSCR + #define __get_FPSCR() (0) + #define __set_FPSCR(VALUE) ((void)VALUE) + #endif + + #pragma diag_suppress=Pe940 + #pragma diag_suppress=Pe177 + + #define __enable_irq __enable_interrupt + #define __disable_irq __disable_interrupt + #define __NOP __no_operation + + #define __get_xPSR __get_PSR + + #if (!defined(__ARM_ARCH_6M__) || __ARM_ARCH_6M__==0) + + __IAR_FT uint32_t __LDREXW(uint32_t volatile *ptr) + { + return __LDREX((unsigned long *)ptr); + } + + __IAR_FT uint32_t __STREXW(uint32_t value, uint32_t volatile *ptr) + { + return __STREX(value, (unsigned long *)ptr); + } + #endif + + + /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + #if (__CORTEX_M >= 0x03) + + __IAR_FT uint32_t __RRX(uint32_t value) + { + uint32_t result; + __ASM("RRX %0, %1" : "=r"(result) : "r" (value) : "cc"); + return(result); + } + + __IAR_FT void __set_BASEPRI_MAX(uint32_t value) + { + __asm volatile("MSR BASEPRI_MAX,%0"::"r" (value)); + } + + + #define __enable_fault_irq __enable_fiq + #define __disable_fault_irq __disable_fiq + + + #endif /* (__CORTEX_M >= 0x03) */ + + __IAR_FT uint32_t __ROR(uint32_t op1, uint32_t op2) + { + return (op1 >> op2) | (op1 << ((sizeof(op1)*8)-op2)); + } + + #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + __IAR_FT uint32_t __get_MSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,MSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_MSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR MSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __get_PSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,PSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_PSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR PSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __TZ_get_CONTROL_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,CONTROL_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_CONTROL_NS(uint32_t value) + { + __asm volatile("MSR CONTROL_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PSP_NS(uint32_t value) + { + __asm volatile("MSR PSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_MSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSP_NS(uint32_t value) + { + __asm volatile("MSR MSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_SP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,SP_NS" : "=r" (res)); + return res; + } + __IAR_FT void __TZ_set_SP_NS(uint32_t value) + { + __asm volatile("MSR SP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PRIMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PRIMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PRIMASK_NS(uint32_t value) + { + __asm volatile("MSR PRIMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_BASEPRI_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,BASEPRI_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_BASEPRI_NS(uint32_t value) + { + __asm volatile("MSR BASEPRI_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_FAULTMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,FAULTMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_FAULTMASK_NS(uint32_t value) + { + __asm volatile("MSR FAULTMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSPLIM_NS(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,PSPLIM_NS" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __TZ_set_PSPLIM_NS(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR PSPLIM_NS,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __TZ_get_MSPLIM_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSPLIM_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSPLIM_NS(uint32_t value) + { + __asm volatile("MSR MSPLIM_NS,%0" :: "r" (value)); + } + + #endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#endif /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + +#define __BKPT(value) __asm volatile ("BKPT %0" : : "i"(value)) + +#if __IAR_M0_FAMILY + __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) + { + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; + } + + __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) + { + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; + } +#endif + +#if (__CORTEX_M >= 0x03) /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + + __IAR_FT uint8_t __LDRBT(volatile uint8_t *addr) + { + uint32_t res; + __ASM("LDRBT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDRHT(volatile uint16_t *addr) + { + uint32_t res; + __ASM("LDRHT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDRT(volatile uint32_t *addr) + { + uint32_t res; + __ASM("LDRT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return res; + } + + __IAR_FT void __STRBT(uint8_t value, volatile uint8_t *addr) + { + __ASM("STRBT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRHT(uint16_t value, volatile uint16_t *addr) + { + __ASM("STRHT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRT(uint32_t value, volatile uint32_t *addr) + { + __ASM("STRT %1, [%0]" : : "r" (addr), "r" (value) : "memory"); + } + +#endif /* (__CORTEX_M >= 0x03) */ + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + + __IAR_FT uint8_t __LDAB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDA(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDA %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return res; + } + + __IAR_FT void __STLB(uint8_t value, volatile uint8_t *ptr) + { + __ASM volatile ("STLB %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STLH(uint16_t value, volatile uint16_t *ptr) + { + __ASM volatile ("STLH %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STL(uint32_t value, volatile uint32_t *ptr) + { + __ASM volatile ("STL %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT uint8_t __LDAEXB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAEXH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDAEX(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEX %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXB %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXH %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEX %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + +#endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#undef __IAR_FT +#undef __IAR_M0_FAMILY +#undef __ICCARM_V8 + +#pragma diag_default=Pe940 +#pragma diag_default=Pe177 + +#endif /* __CMSIS_ICCARM_H__ */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h similarity index 97% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h index 3174cf6..f2e2746 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h @@ -1,39 +1,39 @@ -/**************************************************************************//** - * @file cmsis_version.h - * @brief CMSIS Core(M) Version definitions - * @version V5.0.3 - * @date 24. June 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 ARM Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CMSIS_VERSION_H -#define __CMSIS_VERSION_H - -/* CMSIS Version definitions */ -#define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */ -#define __CM_CMSIS_VERSION_SUB ( 3U) /*!< [15:0] CMSIS Core(M) sub version */ -#define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \ - __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */ -#endif +/**************************************************************************//** + * @file cmsis_version.h + * @brief CMSIS Core(M) Version definitions + * @version V5.0.3 + * @date 24. June 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CMSIS_VERSION_H +#define __CMSIS_VERSION_H + +/* CMSIS Version definitions */ +#define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */ +#define __CM_CMSIS_VERSION_SUB ( 3U) /*!< [15:0] CMSIS Core(M) sub version */ +#define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \ + __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */ +#endif diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h index 8cee930..8441e57 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h @@ -1,2968 +1,2968 @@ -/**************************************************************************//** - * @file core_armv81mml.h - * @brief CMSIS Armv8.1-M Mainline Core Peripheral Access Layer Header File - * @version V1.0.0 - * @date 15. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2018-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_ARMV81MML_H_GENERIC -#define __CORE_ARMV81MML_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_ARMV81MML - @{ - */ - -#include "cmsis_version.h" - -#define __ARM_ARCH_8M_MAIN__ 1 // patching for now -/* CMSIS ARMV81MML definitions */ -#define __ARMv81MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __ARMv81MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __ARMv81MML_CMSIS_VERSION ((__ARMv81MML_CMSIS_VERSION_MAIN << 16U) | \ - __ARMv81MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (81U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV81MML_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_ARMV81MML_H_DEPENDANT -#define __CORE_ARMV81MML_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __ARMv81MML_REV - #define __ARMv81MML_REV 0x0000U - #warning "__ARMv81MML_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DSP_PRESENT - #define __DSP_PRESENT 0U - #warning "__DSP_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group ARMv81MML */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ -#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ - uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ - uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ -#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ - -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED6[580U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ - uint32_t RESERVED3[92U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ - uint32_t RESERVED7[6U]; - __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ - __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ - __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ - __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ - __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ - uint32_t RESERVED8[1U]; - __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ -#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ -#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ - -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ -#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ -#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Non-Secure Access Control Register Definitions */ -#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ -#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ - -#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ -#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ - -#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ -#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/* Instruction Tightly-Coupled Memory Control Register Definitions */ -#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ -#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ - -#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ -#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ - -#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ -#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ - -#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ -#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ - -/* Data Tightly-Coupled Memory Control Register Definitions */ -#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ -#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ - -#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ -#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ - -#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ -#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ - -#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ -#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ - -/* AHBP Control Register Definitions */ -#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ -#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ - -#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ -#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ - -/* L1 Cache Control Register Definitions */ -#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ -#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ - -#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ -#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ - -#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ -#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ - -/* AHBS Control Register Definitions */ -#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ -#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ - -#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ -#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ - -#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ -#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ - -/* Auxiliary Bus Fault Status Register Definitions */ -#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ -#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ - -#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ -#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ - -#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ -#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ - -#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ -#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ - -#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ -#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ - -#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ -#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ - __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[29U]; - __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ - __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ - __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ - uint32_t RESERVED6[4U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Stimulus Port Register Definitions */ -#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ -#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ - -#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ -#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ -#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ - -#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ -#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Integration Write Register Definitions */ -#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ -#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ - -/* ITM Integration Read Register Definitions */ -#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ -#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ - -/* ITM Integration Mode Control Register Definitions */ -#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ -#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ - uint32_t RESERVED32[934U]; - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ - uint32_t RESERVED33[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ -#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY_Pos 0U /*!< TPI ITATBCTR2: ATREADY Position */ -#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/) /*!< TPI ITATBCTR2: ATREADY Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY_Pos 0U /*!< TPI ITATBCTR0: ATREADY Position */ -#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/) /*!< TPI ITATBCTR0: ATREADY Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_MajorType_Pos 4U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -#define TPI_DEVTYPE_SubType_Pos 0U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ - __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ - __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ - __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ - uint32_t RESERVED0[1]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_PXN_Pos 4U /*!< MPU RLAR: PXN Position */ -#define MPU_RLAR_PXN_Msk (0x1UL << MPU_RLAR_PXN_Pos) /*!< MPU RLAR: PXN Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#else - uint32_t RESERVED0[3]; -#endif - __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ - __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/* Secure Fault Status Register Definitions */ -#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ -#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ - -#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ -#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ - -#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ -#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ - -#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ -#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ - -#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ -#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ - -#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ -#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ - -#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ -#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ - -#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ -#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ -#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ - -#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ -#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ - -#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ -#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ - -#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ -#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ - -#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ -#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ - -#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ -#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ -#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ -#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - - #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ - #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - - #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ - #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Set Priority Grouping (non-secure) - \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB_NS->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ - SCB_NS->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping (non-secure) - \details Reads the priority grouping field from the non-secure NVIC when in secure state. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) -{ - return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV81MML_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_armv81mml.h + * @brief CMSIS Armv8.1-M Mainline Core Peripheral Access Layer Header File + * @version V1.0.0 + * @date 15. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2018-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV81MML_H_GENERIC +#define __CORE_ARMV81MML_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMV81MML + @{ + */ + +#include "cmsis_version.h" + +#define __ARM_ARCH_8M_MAIN__ 1 // patching for now +/* CMSIS ARMV81MML definitions */ +#define __ARMv81MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv81MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv81MML_CMSIS_VERSION ((__ARMv81MML_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv81MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (81U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV81MML_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV81MML_H_DEPENDANT +#define __CORE_ARMV81MML_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv81MML_REV + #define __ARMv81MML_REV 0x0000U + #warning "__ARMv81MML_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv81MML */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6U]; + __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1U]; + __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/* Instruction Tightly-Coupled Memory Control Register Definitions */ +#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Register Definitions */ +#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register Definitions */ +#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register Definitions */ +#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ + +/* AHBS Control Register Definitions */ +#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register Definitions */ +#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ +#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0U /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0U /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_MajorType_Pos 4U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +#define TPI_DEVTYPE_SubType_Pos 0U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_PXN_Pos 4U /*!< MPU RLAR: PXN Position */ +#define MPU_RLAR_PXN_Msk (0x1UL << MPU_RLAR_PXN_Pos) /*!< MPU RLAR: PXN Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV81MML_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_armv8mbl.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_armv8mbl.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h index 266f180..344dca5 100644 --- a/eps/firmware/bsp/cmsis/Include/core_armv8mbl.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h @@ -1,1921 +1,1921 @@ -/**************************************************************************//** - * @file core_armv8mbl.h - * @brief CMSIS Armv8-M Baseline Core Peripheral Access Layer Header File - * @version V5.0.8 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_ARMV8MBL_H_GENERIC -#define __CORE_ARMV8MBL_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_ARMv8MBL - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS definitions */ -#define __ARMv8MBL_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __ARMv8MBL_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __ARMv8MBL_CMSIS_VERSION ((__ARMv8MBL_CMSIS_VERSION_MAIN << 16U) | \ - __ARMv8MBL_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M ( 2U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV8MBL_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_ARMV8MBL_H_DEPENDANT -#define __CORE_ARMV8MBL_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __ARMv8MBL_REV - #define __ARMv8MBL_REV 0x0000U - #warning "__ARMv8MBL_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __VTOR_PRESENT - #define __VTOR_PRESENT 0U - #warning "__VTOR_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif - - #ifndef __ETM_PRESENT - #define __ETM_PRESENT 0U - #warning "__ETM_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MTB_PRESENT - #define __MTB_PRESENT 0U - #warning "__MTB_PRESENT not defined in device header file; using default!" - #endif - -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group ARMv8MBL */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ -#else - uint32_t RESERVED0; -#endif - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#endif - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - uint32_t RESERVED0[6U]; - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[809U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ - uint32_t RESERVED4[4U]; - __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ -#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI Periodic Synchronization Control Register Definitions */ -#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ -#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ - -/* TPI Software Lock Status Register Definitions */ -#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ -#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ - -#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ -#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ - -#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ -#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - uint32_t RESERVED0[7U]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 1U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#endif -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register */ -#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ -#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - If VTOR is not present address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t *vectors = (uint32_t *)SCB->VTOR; -#else - uint32_t *vectors = (uint32_t *)0x0U; -#endif - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t *vectors = (uint32_t *)SCB->VTOR; -#else - uint32_t *vectors = (uint32_t *)0x0U; -#endif - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV8MBL_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_armv8mbl.h + * @brief CMSIS Armv8-M Baseline Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV8MBL_H_GENERIC +#define __CORE_ARMV8MBL_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMv8MBL + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS definitions */ +#define __ARMv8MBL_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv8MBL_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv8MBL_CMSIS_VERSION ((__ARMv8MBL_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv8MBL_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M ( 2U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MBL_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV8MBL_H_DEPENDANT +#define __CORE_ARMV8MBL_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv8MBL_REV + #define __ARMv8MBL_REV 0x0000U + #warning "__ARMv8MBL_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif + + #ifndef __ETM_PRESENT + #define __ETM_PRESENT 0U + #warning "__ETM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MTB_PRESENT + #define __MTB_PRESENT 0U + #warning "__MTB_PRESENT not defined in device header file; using default!" + #endif + +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv8MBL */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + uint32_t RESERVED0[6U]; + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[809U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ + uint32_t RESERVED4[4U]; + __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ +#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI Periodic Synchronization Control Register Definitions */ +#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ +#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ + +/* TPI Software Lock Status Register Definitions */ +#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ +#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ + +#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ +#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ + +#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ +#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + uint32_t RESERVED0[7U]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#endif +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ +#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MBL_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_armv8mml.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_armv8mml.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h index ba5d83f..5ddb8ae 100644 --- a/eps/firmware/bsp/cmsis/Include/core_armv8mml.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h @@ -1,2835 +1,2835 @@ -/**************************************************************************//** - * @file core_armv8mml.h - * @brief CMSIS Armv8-M Mainline Core Peripheral Access Layer Header File - * @version V5.1.0 - * @date 12. September 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_ARMV8MML_H_GENERIC -#define __CORE_ARMV8MML_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_ARMv8MML - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS Armv8MML definitions */ -#define __ARMv8MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __ARMv8MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __ARMv8MML_CMSIS_VERSION ((__ARMv8MML_CMSIS_VERSION_MAIN << 16U) | \ - __ARMv8MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (81U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV8MML_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_ARMV8MML_H_DEPENDANT -#define __CORE_ARMV8MML_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __ARMv8MML_REV - #define __ARMv8MML_REV 0x0000U - #warning "__ARMv8MML_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DSP_PRESENT - #define __DSP_PRESENT 0U - #warning "__DSP_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group ARMv8MML */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ -#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ - uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ - uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ -#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ - -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED6[580U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ - uint32_t RESERVED3[92U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ -#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ -#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ - -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ -#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ -#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Non-Secure Access Control Register Definitions */ -#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ -#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ - -#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ -#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ - -#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ -#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ - __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ - uint32_t RESERVED6[4U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Stimulus Port Register Definitions */ -#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ -#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ - -#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ -#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ -#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ - -#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ -#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ - uint32_t RESERVED32[934U]; - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ - uint32_t RESERVED33[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ -#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[809U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ - uint32_t RESERVED4[4U]; - __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ -#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI Periodic Synchronization Control Register Definitions */ -#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ -#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ - -/* TPI Software Lock Status Register Definitions */ -#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ -#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ - -#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ -#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ - -#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ -#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ - __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ - __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ - __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ - uint32_t RESERVED0[1]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#else - uint32_t RESERVED0[3]; -#endif - __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ - __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/* Secure Fault Status Register Definitions */ -#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ -#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ - -#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ -#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ - -#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ -#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ - -#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ -#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ - -#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ -#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ - -#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ -#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ - -#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ -#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ - -#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ -#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ -#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ - -#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ -#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ - -#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ -#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ - -#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ -#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ - -#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ -#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ - -#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ -#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ -#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ -#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - - #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ - #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - - #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ - #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Set Priority Grouping (non-secure) - \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB_NS->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB_NS->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping (non-secure) - \details Reads the priority grouping field from the non-secure NVIC when in secure state. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) -{ - return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV8MML_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_armv8mml.h + * @brief CMSIS Armv8-M Mainline Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 12. September 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV8MML_H_GENERIC +#define __CORE_ARMV8MML_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMv8MML + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS Armv8MML definitions */ +#define __ARMv8MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv8MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv8MML_CMSIS_VERSION ((__ARMv8MML_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv8MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (81U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MML_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV8MML_H_DEPENDANT +#define __CORE_ARMV8MML_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv8MML_REV + #define __ARMv8MML_REV 0x0000U + #warning "__ARMv8MML_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv8MML */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[809U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ + uint32_t RESERVED4[4U]; + __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ +#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI Periodic Synchronization Control Register Definitions */ +#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ +#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ + +/* TPI Software Lock Status Register Definitions */ +#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ +#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ + +#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ +#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ + +#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ +#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MML_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_cm0.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h similarity index 97% rename from eps/firmware/bsp/cmsis/Include/core_cm0.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h index 70e4505..cafae5a 100644 --- a/eps/firmware/bsp/cmsis/Include/core_cm0.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h @@ -1,952 +1,952 @@ -/**************************************************************************//** - * @file core_cm0.h - * @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File - * @version V5.0.6 - * @date 13. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM0_H_GENERIC -#define __CORE_CM0_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M0 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM0 definitions */ -#define __CM0_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM0_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16U) | \ - __CM0_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (0U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM0_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM0_H_DEPENDANT -#define __CORE_CM0_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM0_REV - #define __CM0_REV 0x0000U - #warning "__CM0_REV not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M0 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t _reserved0:1; /*!< bit: 0 Reserved */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[31U]; - __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[31U]; - __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[31U]; - __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[31U]; - uint32_t RESERVED4[64U]; - __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - uint32_t RESERVED0; - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Cortex-M0 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. - Therefore they are not covered by the Cortex-M0 header file. - @{ - */ -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ -/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0 */ - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - Address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = 0x0U; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M0 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = 0x0U; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM0_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm0.h + * @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File + * @version V5.0.6 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM0_H_GENERIC +#define __CORE_CM0_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M0 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM0 definitions */ +#define __CM0_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM0_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16U) | \ + __CM0_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (0U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM0_H_DEPENDANT +#define __CORE_CM0_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM0_REV + #define __CM0_REV 0x0000U + #warning "__CM0_REV not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M0 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + uint32_t RESERVED0; + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M0 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M0 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + Address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = 0x0U; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M0 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = 0x0U; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_cm0plus.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h similarity index 97% rename from eps/firmware/bsp/cmsis/Include/core_cm0plus.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h index fe7b424..d104965 100644 --- a/eps/firmware/bsp/cmsis/Include/core_cm0plus.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h @@ -1,1085 +1,1085 @@ -/**************************************************************************//** - * @file core_cm0plus.h - * @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File - * @version V5.0.7 - * @date 13. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM0PLUS_H_GENERIC -#define __CORE_CM0PLUS_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex-M0+ - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM0+ definitions */ -#define __CM0PLUS_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM0PLUS_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM0PLUS_CMSIS_VERSION ((__CM0PLUS_CMSIS_VERSION_MAIN << 16U) | \ - __CM0PLUS_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (0U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM0PLUS_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM0PLUS_H_DEPENDANT -#define __CORE_CM0PLUS_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM0PLUS_REV - #define __CM0PLUS_REV 0x0000U - #warning "__CM0PLUS_REV not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __VTOR_PRESENT - #define __VTOR_PRESENT 0U - #warning "__VTOR_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex-M0+ */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core MPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[31U]; - __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[31U]; - __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[31U]; - __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[31U]; - uint32_t RESERVED4[64U]; - __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ -#else - uint32_t RESERVED0; -#endif - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) -/* SCB Interrupt Control State Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 8U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0xFFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#endif - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ -} MPU_Type; - -#define MPU_TYPE_RALIASES 1U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Cortex-M0+ Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. - Therefore they are not covered by the Cortex-M0+ header file. - @{ - */ -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ -/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0+ */ - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - If VTOR is not present address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t vectors = SCB->VTOR; -#else - uint32_t vectors = 0x0U; -#endif - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M0+ does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t vectors = SCB->VTOR; -#else - uint32_t vectors = 0x0U; -#endif - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv7.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM0PLUS_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm0plus.h + * @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File + * @version V5.0.7 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM0PLUS_H_GENERIC +#define __CORE_CM0PLUS_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex-M0+ + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM0+ definitions */ +#define __CM0PLUS_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM0PLUS_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM0PLUS_CMSIS_VERSION ((__CM0PLUS_CMSIS_VERSION_MAIN << 16U) | \ + __CM0PLUS_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (0U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0PLUS_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM0PLUS_H_DEPENDANT +#define __CORE_CM0PLUS_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM0PLUS_REV + #define __CM0PLUS_REV 0x0000U + #warning "__CM0PLUS_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex-M0+ */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 8U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0xFFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M0+ Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M0+ header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0+ */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t vectors = SCB->VTOR; +#else + uint32_t vectors = 0x0U; +#endif + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M0+ does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t vectors = SCB->VTOR; +#else + uint32_t vectors = 0x0U; +#endif + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0PLUS_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h index 49f4a5b..b79c6af 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h @@ -1,1996 +1,1996 @@ -/**************************************************************************//** - * @file core_cm23.h - * @brief CMSIS Cortex-M23 Core Peripheral Access Layer Header File - * @version V5.0.8 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM23_H_GENERIC -#define __CORE_CM23_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M23 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS definitions */ -#define __CM23_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM23_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM23_CMSIS_VERSION ((__CM23_CMSIS_VERSION_MAIN << 16U) | \ - __CM23_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (23U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM23_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM23_H_DEPENDANT -#define __CORE_CM23_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM23_REV - #define __CM23_REV 0x0000U - #warning "__CM23_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __VTOR_PRESENT - #define __VTOR_PRESENT 0U - #warning "__VTOR_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif - - #ifndef __ETM_PRESENT - #define __ETM_PRESENT 0U - #warning "__ETM_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MTB_PRESENT - #define __MTB_PRESENT 0U - #warning "__MTB_PRESENT not defined in device header file; using default!" - #endif - -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M23 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ -#else - uint32_t RESERVED0; -#endif - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#endif - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - uint32_t RESERVED0[6U]; - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ - __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ - __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration Test FIFO Test Data 0 Register Definitions */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ -#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ -#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ -#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ - -/* TPI Integration Test ATB Control Register 2 Register Definitions */ -#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ -#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ - -#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ -#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ - -#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ -#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ - -#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ -#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ - -/* TPI Integration Test FIFO Test Data 1 Register Definitions */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ -#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ -#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ -#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ - -/* TPI Integration Test ATB Control Register 0 Definitions */ -#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ -#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ - -#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ -#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ - -#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ -#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ - -#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ -#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - uint32_t RESERVED0[7U]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 1U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#endif -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register */ -#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ -#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else -/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for Cortex-M23 */ -/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for Cortex-M23 */ - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - If VTOR is not present address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t *vectors = (uint32_t *)SCB->VTOR; -#else - uint32_t *vectors = (uint32_t *)0x0U; -#endif - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t *vectors = (uint32_t *)SCB->VTOR; -#else - uint32_t *vectors = (uint32_t *)0x0U; -#endif - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM23_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm23.h + * @brief CMSIS Cortex-M23 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM23_H_GENERIC +#define __CORE_CM23_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M23 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS definitions */ +#define __CM23_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM23_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM23_CMSIS_VERSION ((__CM23_CMSIS_VERSION_MAIN << 16U) | \ + __CM23_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (23U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM23_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM23_H_DEPENDANT +#define __CORE_CM23_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM23_REV + #define __CM23_REV 0x0000U + #warning "__CM23_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif + + #ifndef __ETM_PRESENT + #define __ETM_PRESENT 0U + #warning "__ETM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MTB_PRESENT + #define __MTB_PRESENT 0U + #warning "__MTB_PRESENT not defined in device header file; using default!" + #endif + +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M23 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + uint32_t RESERVED0[6U]; + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + uint32_t RESERVED0[7U]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#endif +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ +#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else +/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for Cortex-M23 */ +/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for Cortex-M23 */ + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM23_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_cm3.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_cm3.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h index 1f69e8b..8157ca7 100644 --- a/eps/firmware/bsp/cmsis/Include/core_cm3.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h @@ -1,1937 +1,1937 @@ -/**************************************************************************//** - * @file core_cm3.h - * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File - * @version V5.1.0 - * @date 13. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM3_H_GENERIC -#define __CORE_CM3_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M3 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM3 definitions */ -#define __CM3_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM3_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16U) | \ - __CM3_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (3U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM3_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM3_H_DEPENDANT -#define __CORE_CM3_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM3_REV - #define __CM3_REV 0x0200U - #warning "__CM3_REV not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M3 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:1; /*!< bit: 9 Reserved */ - uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ - uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit */ - uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ -#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ -#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[24U]; - __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[24U]; - __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[24U]; - __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[24U]; - __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[56U]; - __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - uint32_t RESERVED0[5U]; - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#if defined (__CM3_REV) && (__CM3_REV < 0x0201U) /* core r2p1 */ -#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ -#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ - -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#else -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#endif - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ -#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -#else - uint32_t RESERVED1[1U]; -#endif -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) -#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ -#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ - -#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ -#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ - -#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ -#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ - -#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ -#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ - -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ -#endif - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED0[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Mask Register Definitions */ -#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ -#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ -#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ - -#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ -#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ -#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ - -#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ -#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ - -#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ -#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ - -#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ -#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ - -#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ -#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ -#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ - -#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ -#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ -#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ - -#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ -#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ - __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ - __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ - __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ -#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ -#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ -#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ -#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ -#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv7.h" - -#endif - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM3_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM3_H_GENERIC +#define __CORE_CM3_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M3 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM3 definitions */ +#define __CM3_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM3_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16U) | \ + __CM3_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (3U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM3_H_DEPENDANT +#define __CORE_CM3_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM3_REV + #define __CM3_REV 0x0200U + #warning "__CM3_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M3 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#if defined (__CM3_REV) && (__CM3_REV < 0x0201U) /* core r2p1 */ +#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#else +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ +#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +#else + uint32_t RESERVED1[1U]; +#endif +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) +#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ +#endif + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_cm33.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_cm33.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h index 2f1d98e..7fed59a 100644 --- a/eps/firmware/bsp/cmsis/Include/core_cm33.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h @@ -1,2910 +1,2910 @@ -/**************************************************************************//** - * @file core_cm33.h - * @brief CMSIS Cortex-M33 Core Peripheral Access Layer Header File - * @version V5.1.0 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM33_H_GENERIC -#define __CORE_CM33_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M33 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM33 definitions */ -#define __CM33_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM33_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM33_CMSIS_VERSION ((__CM33_CMSIS_VERSION_MAIN << 16U) | \ - __CM33_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (33U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined (__TARGET_FPU_VFP) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined (__ARM_FP) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined (__ARMVFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined (__TI_VFP_SUPPORT__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined (__FPU_VFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM33_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM33_H_DEPENDANT -#define __CORE_CM33_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM33_REV - #define __CM33_REV 0x0000U - #warning "__CM33_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DSP_PRESENT - #define __DSP_PRESENT 0U - #warning "__DSP_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M33 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ -#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ - uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ - uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ -#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ - -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED6[580U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ - uint32_t RESERVED3[92U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ -#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ -#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ - -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ -#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ -#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Non-Secure Access Control Register Definitions */ -#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ -#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ - -#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ -#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ - -#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ -#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ - __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ - uint32_t RESERVED6[4U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Stimulus Port Register Definitions */ -#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ -#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ - -#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ -#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ -#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ - -#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ -#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ - uint32_t RESERVED32[934U]; - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ - uint32_t RESERVED33[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ -#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ - __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ - __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration Test FIFO Test Data 0 Register Definitions */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ -#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ -#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ -#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ - -/* TPI Integration Test ATB Control Register 2 Register Definitions */ -#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ -#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ - -#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ -#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ - -#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ -#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ - -#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ -#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ - -/* TPI Integration Test FIFO Test Data 1 Register Definitions */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ -#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ -#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ -#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ - -/* TPI Integration Test ATB Control Register 0 Definitions */ -#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ -#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ - -#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ -#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ - -#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ -#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ - -#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ -#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ - __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ - __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ - __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ - uint32_t RESERVED0[1]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#else - uint32_t RESERVED0[3]; -#endif - __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ - __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/* Secure Fault Status Register Definitions */ -#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ -#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ - -#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ -#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ - -#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ -#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ - -#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ -#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ - -#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ -#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ - -#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ -#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ - -#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ -#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ - -#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ -#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ -#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ - -#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ -#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ - -#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ -#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ - -#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ -#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ - -#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ -#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ - -#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ -#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ -#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ -#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - - #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ - #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - - #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ - #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Set Priority Grouping (non-secure) - \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB_NS->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB_NS->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping (non-secure) - \details Reads the priority grouping field from the non-secure NVIC when in secure state. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) -{ - return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM33_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm33.h + * @brief CMSIS Cortex-M33 Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM33_H_GENERIC +#define __CORE_CM33_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M33 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM33 definitions */ +#define __CM33_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM33_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM33_CMSIS_VERSION ((__CM33_CMSIS_VERSION_MAIN << 16U) | \ + __CM33_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (33U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined (__TARGET_FPU_VFP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined (__ARM_FP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined (__ARMVFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined (__TI_VFP_SUPPORT__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined (__FPU_VFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM33_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM33_H_DEPENDANT +#define __CORE_CM33_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM33_REV + #define __CM33_REV 0x0000U + #warning "__CM33_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M33 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM33_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_cm35p.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_cm35p.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h index 7d34367..5579c82 100644 --- a/eps/firmware/bsp/cmsis/Include/core_cm35p.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h @@ -1,2910 +1,2910 @@ -/**************************************************************************//** - * @file core_cm35p.h - * @brief CMSIS Cortex-M35P Core Peripheral Access Layer Header File - * @version V1.0.0 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM35P_H_GENERIC -#define __CORE_CM35P_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M35P - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM35P definitions */ -#define __CM35P_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM35P_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM35P_CMSIS_VERSION ((__CM35P_CMSIS_VERSION_MAIN << 16U) | \ - __CM35P_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (35U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined (__TARGET_FPU_VFP) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined (__ARM_FP) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined (__ARMVFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined (__TI_VFP_SUPPORT__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined (__FPU_VFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM35P_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM35P_H_DEPENDANT -#define __CORE_CM35P_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM35P_REV - #define __CM35P_REV 0x0000U - #warning "__CM35P_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DSP_PRESENT - #define __DSP_PRESENT 0U - #warning "__DSP_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M35P */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ -#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ - uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ - uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ -#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ - -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED6[580U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ - uint32_t RESERVED3[92U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ -#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ -#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ - -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ -#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ -#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Non-Secure Access Control Register Definitions */ -#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ -#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ - -#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ -#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ - -#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ -#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ - __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ - uint32_t RESERVED6[4U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Stimulus Port Register Definitions */ -#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ -#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ - -#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ -#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ -#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ - -#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ -#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ - uint32_t RESERVED32[934U]; - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ - uint32_t RESERVED33[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ -#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ - __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ - __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration Test FIFO Test Data 0 Register Definitions */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ -#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ -#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ -#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ - -/* TPI Integration Test ATB Control Register 2 Register Definitions */ -#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ -#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ - -#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ -#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ - -#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ -#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ - -#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ -#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ - -/* TPI Integration Test FIFO Test Data 1 Register Definitions */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ -#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ -#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ -#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ - -/* TPI Integration Test ATB Control Register 0 Definitions */ -#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ -#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ - -#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ -#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ - -#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ -#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ - -#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ -#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ - __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ - __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ - __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ - uint32_t RESERVED0[1]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#else - uint32_t RESERVED0[3]; -#endif - __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ - __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/* Secure Fault Status Register Definitions */ -#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ -#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ - -#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ -#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ - -#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ -#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ - -#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ -#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ - -#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ -#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ - -#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ -#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ - -#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ -#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ - -#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ -#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ -#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ - -#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ -#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ - -#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ -#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ - -#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ -#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ - -#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ -#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ - -#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ -#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ -#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ -#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - - #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ - #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - - #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ - #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Set Priority Grouping (non-secure) - \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB_NS->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB_NS->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping (non-secure) - \details Reads the priority grouping field from the non-secure NVIC when in secure state. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) -{ - return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM35P_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm35p.h + * @brief CMSIS Cortex-M35P Core Peripheral Access Layer Header File + * @version V1.0.0 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM35P_H_GENERIC +#define __CORE_CM35P_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M35P + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM35P definitions */ +#define __CM35P_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM35P_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM35P_CMSIS_VERSION ((__CM35P_CMSIS_VERSION_MAIN << 16U) | \ + __CM35P_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (35U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined (__TARGET_FPU_VFP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined (__ARM_FP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined (__ARMVFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined (__TI_VFP_SUPPORT__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined (__FPU_VFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM35P_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM35P_H_DEPENDANT +#define __CORE_CM35P_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM35P_REV + #define __CM35P_REV 0x0000U + #warning "__CM35P_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M35P */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM35P_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h index 90c2a72..12c023b 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h @@ -1,2124 +1,2124 @@ -/**************************************************************************//** - * @file core_cm4.h - * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File - * @version V5.1.0 - * @date 13. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM4_H_GENERIC -#define __CORE_CM4_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M4 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM4 definitions */ -#define __CM4_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM4_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \ - __CM4_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (4U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM4_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM4_H_DEPENDANT -#define __CORE_CM4_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM4_REV - #define __CM4_REV 0x0000U - #warning "__CM4_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M4 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:1; /*!< bit: 9 Reserved */ - uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit */ - uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ -#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ -#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ - uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[24U]; - __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[24U]; - __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[24U]; - __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[24U]; - __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[56U]; - __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - uint32_t RESERVED0[5U]; - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ -#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ - -#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ -#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ - -#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ -#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ - -#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ -#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ - -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED0[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Mask Register Definitions */ -#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ -#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ -#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ - -#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ -#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ -#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ - -#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ -#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ - -#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ -#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ - -#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ -#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ - -#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ -#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ -#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ - -#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ -#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ -#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ - -#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ -#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ - __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ - __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ - __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/* Media and FP Feature Register 2 Definitions */ - -#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ -#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ -#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ -#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ -#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ -#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ -#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ -#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ -#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ -#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ -#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M4 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv7.h" - -#endif - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM4_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm4.h + * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM4_H_GENERIC +#define __CORE_CM4_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M4 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM4 definitions */ +#define __CM4_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM4_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \ + __CM4_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (4U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM4_H_DEPENDANT +#define __CORE_CM4_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM4_REV + #define __CM4_REV 0x0000U + #warning "__CM4_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M4 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/* Media and FP Feature Register 2 Definitions */ + +#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ +#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ +#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M4 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_cm7.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_cm7.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h index 3da3c43..c4515d8 100644 --- a/eps/firmware/bsp/cmsis/Include/core_cm7.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h @@ -1,2725 +1,2725 @@ -/**************************************************************************//** - * @file core_cm7.h - * @brief CMSIS Cortex-M7 Core Peripheral Access Layer Header File - * @version V5.1.1 - * @date 28. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM7_H_GENERIC -#define __CORE_CM7_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M7 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM7 definitions */ -#define __CM7_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM7_CMSIS_VERSION_SUB ( __CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM7_CMSIS_VERSION ((__CM7_CMSIS_VERSION_MAIN << 16U) | \ - __CM7_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (7U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM7_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM7_H_DEPENDANT -#define __CORE_CM7_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM7_REV - #define __CM7_REV 0x0000U - #warning "__CM7_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __ICACHE_PRESENT - #define __ICACHE_PRESENT 0U - #warning "__ICACHE_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DCACHE_PRESENT - #define __DCACHE_PRESENT 0U - #warning "__DCACHE_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DTCM_PRESENT - #define __DTCM_PRESENT 0U - #warning "__DTCM_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M7 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:1; /*!< bit: 9 Reserved */ - uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit */ - uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ -#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ -#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ - uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[24U]; - __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[24U]; - __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[24U]; - __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[24U]; - __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[56U]; - __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_AFR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - uint32_t RESERVED0[1U]; - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - uint32_t RESERVED3[93U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ - uint32_t RESERVED7[6U]; - __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ - __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ - __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ - __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ - __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ - uint32_t RESERVED8[1U]; - __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: Branch prediction enable bit Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: Branch prediction enable bit Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: Instruction cache enable bit Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: Instruction cache enable bit Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: Cache enable bit Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: Cache enable bit Mask */ - -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/* Instruction Tightly-Coupled Memory Control Register Definitions */ -#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ -#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ - -#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ -#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ - -#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ -#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ - -#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ -#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ - -/* Data Tightly-Coupled Memory Control Register Definitions */ -#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ -#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ - -#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ -#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ - -#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ -#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ - -#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ -#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ - -/* AHBP Control Register Definitions */ -#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ -#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ - -#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ -#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ - -/* L1 Cache Control Register Definitions */ -#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ -#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ - -#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ -#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ - -#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ -#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ - -/* AHBS Control Register Definitions */ -#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ -#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ - -#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ -#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ - -#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ -#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ - -/* Auxiliary Bus Fault Status Register Definitions */ -#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ -#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ - -#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ -#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ - -#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ -#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ - -#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ -#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ - -#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ -#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ - -#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ -#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_DISDYNADD_Pos 26U /*!< ACTLR: DISDYNADD Position */ -#define SCnSCB_ACTLR_DISDYNADD_Msk (1UL << SCnSCB_ACTLR_DISDYNADD_Pos) /*!< ACTLR: DISDYNADD Mask */ - -#define SCnSCB_ACTLR_DISISSCH1_Pos 21U /*!< ACTLR: DISISSCH1 Position */ -#define SCnSCB_ACTLR_DISISSCH1_Msk (0x1FUL << SCnSCB_ACTLR_DISISSCH1_Pos) /*!< ACTLR: DISISSCH1 Mask */ - -#define SCnSCB_ACTLR_DISDI_Pos 16U /*!< ACTLR: DISDI Position */ -#define SCnSCB_ACTLR_DISDI_Msk (0x1FUL << SCnSCB_ACTLR_DISDI_Pos) /*!< ACTLR: DISDI Mask */ - -#define SCnSCB_ACTLR_DISCRITAXIRUR_Pos 15U /*!< ACTLR: DISCRITAXIRUR Position */ -#define SCnSCB_ACTLR_DISCRITAXIRUR_Msk (1UL << SCnSCB_ACTLR_DISCRITAXIRUR_Pos) /*!< ACTLR: DISCRITAXIRUR Mask */ - -#define SCnSCB_ACTLR_DISBTACALLOC_Pos 14U /*!< ACTLR: DISBTACALLOC Position */ -#define SCnSCB_ACTLR_DISBTACALLOC_Msk (1UL << SCnSCB_ACTLR_DISBTACALLOC_Pos) /*!< ACTLR: DISBTACALLOC Mask */ - -#define SCnSCB_ACTLR_DISBTACREAD_Pos 13U /*!< ACTLR: DISBTACREAD Position */ -#define SCnSCB_ACTLR_DISBTACREAD_Msk (1UL << SCnSCB_ACTLR_DISBTACREAD_Pos) /*!< ACTLR: DISBTACREAD Mask */ - -#define SCnSCB_ACTLR_DISITMATBFLUSH_Pos 12U /*!< ACTLR: DISITMATBFLUSH Position */ -#define SCnSCB_ACTLR_DISITMATBFLUSH_Msk (1UL << SCnSCB_ACTLR_DISITMATBFLUSH_Pos) /*!< ACTLR: DISITMATBFLUSH Mask */ - -#define SCnSCB_ACTLR_DISRAMODE_Pos 11U /*!< ACTLR: DISRAMODE Position */ -#define SCnSCB_ACTLR_DISRAMODE_Msk (1UL << SCnSCB_ACTLR_DISRAMODE_Pos) /*!< ACTLR: DISRAMODE Mask */ - -#define SCnSCB_ACTLR_FPEXCODIS_Pos 10U /*!< ACTLR: FPEXCODIS Position */ -#define SCnSCB_ACTLR_FPEXCODIS_Msk (1UL << SCnSCB_ACTLR_FPEXCODIS_Pos) /*!< ACTLR: FPEXCODIS Mask */ - -#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ -#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ - -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED0[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED3[981U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( W) Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Mask Register Definitions */ -#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ -#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ -#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ - -#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ -#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ -#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ - -#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ -#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ - -#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ -#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ - -#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ -#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ - -#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ -#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ -#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ - -#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ -#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ -#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ - -#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ -#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ - __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ - __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ - __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/* Media and FP Feature Register 2 Definitions */ - -#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ -#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ -#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ -#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ -#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ -#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ -#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ -#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ -#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ -#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ -#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv7.h" - -#endif - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = SCB->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## Cache functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_CacheFunctions Cache Functions - \brief Functions that configure Instruction and Data cache. - @{ - */ - -/* Cache Size ID Register Macros */ -#define CCSIDR_WAYS(x) (((x) & SCB_CCSIDR_ASSOCIATIVITY_Msk) >> SCB_CCSIDR_ASSOCIATIVITY_Pos) -#define CCSIDR_SETS(x) (((x) & SCB_CCSIDR_NUMSETS_Msk ) >> SCB_CCSIDR_NUMSETS_Pos ) - -#define __SCB_DCACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ -#define __SCB_ICACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ - -/** - \brief Enable I-Cache - \details Turns on I-Cache - */ -__STATIC_FORCEINLINE void SCB_EnableICache (void) -{ - #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) - if (SCB->CCR & SCB_CCR_IC_Msk) return; /* return if ICache is already enabled */ - - __DSB(); - __ISB(); - SCB->ICIALLU = 0UL; /* invalidate I-Cache */ - __DSB(); - __ISB(); - SCB->CCR |= (uint32_t)SCB_CCR_IC_Msk; /* enable I-Cache */ - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Disable I-Cache - \details Turns off I-Cache - */ -__STATIC_FORCEINLINE void SCB_DisableICache (void) -{ - #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) - __DSB(); - __ISB(); - SCB->CCR &= ~(uint32_t)SCB_CCR_IC_Msk; /* disable I-Cache */ - SCB->ICIALLU = 0UL; /* invalidate I-Cache */ - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Invalidate I-Cache - \details Invalidates I-Cache - */ -__STATIC_FORCEINLINE void SCB_InvalidateICache (void) -{ - #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) - __DSB(); - __ISB(); - SCB->ICIALLU = 0UL; - __DSB(); - __ISB(); - #endif -} - - -/** - \brief I-Cache Invalidate by address - \details Invalidates I-Cache for the given address. - I-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. - I-Cache memory blocks which are part of given address + given size are invalidated. - \param[in] addr address - \param[in] isize size of memory block (in number of bytes) -*/ -__STATIC_FORCEINLINE void SCB_InvalidateICache_by_Addr (void *addr, int32_t isize) -{ - #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) - if ( isize > 0 ) { - int32_t op_size = isize + (((uint32_t)addr) & (__SCB_ICACHE_LINE_SIZE - 1U)); - uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_ICACHE_LINE_SIZE - 1U) */; - - __DSB(); - - do { - SCB->ICIMVAU = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ - op_addr += __SCB_ICACHE_LINE_SIZE; - op_size -= __SCB_ICACHE_LINE_SIZE; - } while ( op_size > 0 ); - - __DSB(); - __ISB(); - } - #endif -} - - -/** - \brief Enable D-Cache - \details Turns on D-Cache - */ -__STATIC_FORCEINLINE void SCB_EnableDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - if (SCB->CCR & SCB_CCR_DC_Msk) return; /* return if DCache is already enabled */ - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* invalidate D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | - ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - __DSB(); - - SCB->CCR |= (uint32_t)SCB_CCR_DC_Msk; /* enable D-Cache */ - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Disable D-Cache - \details Turns off D-Cache - */ -__STATIC_FORCEINLINE void SCB_DisableDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - SCB->CCR &= ~(uint32_t)SCB_CCR_DC_Msk; /* disable D-Cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* clean & invalidate D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | - ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Invalidate D-Cache - \details Invalidates D-Cache - */ -__STATIC_FORCEINLINE void SCB_InvalidateDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* invalidate D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | - ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Clean D-Cache - \details Cleans D-Cache - */ -__STATIC_FORCEINLINE void SCB_CleanDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* clean D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCCSW = (((sets << SCB_DCCSW_SET_Pos) & SCB_DCCSW_SET_Msk) | - ((ways << SCB_DCCSW_WAY_Pos) & SCB_DCCSW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Clean & Invalidate D-Cache - \details Cleans and Invalidates D-Cache - */ -__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* clean & invalidate D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | - ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief D-Cache Invalidate by address - \details Invalidates D-Cache for the given address. - D-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. - D-Cache memory blocks which are part of given address + given size are invalidated. - \param[in] addr address - \param[in] dsize size of memory block (in number of bytes) -*/ -__STATIC_FORCEINLINE void SCB_InvalidateDCache_by_Addr (void *addr, int32_t dsize) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - if ( dsize > 0 ) { - int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); - uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; - - __DSB(); - - do { - SCB->DCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ - op_addr += __SCB_DCACHE_LINE_SIZE; - op_size -= __SCB_DCACHE_LINE_SIZE; - } while ( op_size > 0 ); - - __DSB(); - __ISB(); - } - #endif -} - - -/** - \brief D-Cache Clean by address - \details Cleans D-Cache for the given address - D-Cache is cleaned starting from a 32 byte aligned address in 32 byte granularity. - D-Cache memory blocks which are part of given address + given size are cleaned. - \param[in] addr address - \param[in] dsize size of memory block (in number of bytes) -*/ -__STATIC_FORCEINLINE void SCB_CleanDCache_by_Addr (uint32_t *addr, int32_t dsize) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - if ( dsize > 0 ) { - int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); - uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; - - __DSB(); - - do { - SCB->DCCMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ - op_addr += __SCB_DCACHE_LINE_SIZE; - op_size -= __SCB_DCACHE_LINE_SIZE; - } while ( op_size > 0 ); - - __DSB(); - __ISB(); - } - #endif -} - - -/** - \brief D-Cache Clean and Invalidate by address - \details Cleans and invalidates D_Cache for the given address - D-Cache is cleaned and invalidated starting from a 32 byte aligned address in 32 byte granularity. - D-Cache memory blocks which are part of given address + given size are cleaned and invalidated. - \param[in] addr address (aligned to 32-byte boundary) - \param[in] dsize size of memory block (in number of bytes) -*/ -__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache_by_Addr (uint32_t *addr, int32_t dsize) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - if ( dsize > 0 ) { - int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); - uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; - - __DSB(); - - do { - SCB->DCCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ - op_addr += __SCB_DCACHE_LINE_SIZE; - op_size -= __SCB_DCACHE_LINE_SIZE; - } while ( op_size > 0 ); - - __DSB(); - __ISB(); - } - #endif -} - -/*@} end of CMSIS_Core_CacheFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM7_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm7.h + * @brief CMSIS Cortex-M7 Core Peripheral Access Layer Header File + * @version V5.1.1 + * @date 28. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM7_H_GENERIC +#define __CORE_CM7_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M7 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM7 definitions */ +#define __CM7_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM7_CMSIS_VERSION_SUB ( __CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM7_CMSIS_VERSION ((__CM7_CMSIS_VERSION_MAIN << 16U) | \ + __CM7_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (7U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM7_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM7_H_DEPENDANT +#define __CORE_CM7_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM7_REV + #define __CM7_REV 0x0000U + #warning "__CM7_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __ICACHE_PRESENT + #define __ICACHE_PRESENT 0U + #warning "__ICACHE_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DCACHE_PRESENT + #define __DCACHE_PRESENT 0U + #warning "__DCACHE_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DTCM_PRESENT + #define __DTCM_PRESENT 0U + #warning "__DTCM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M7 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_AFR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[1U]; + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + uint32_t RESERVED3[93U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6U]; + __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1U]; + __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: Branch prediction enable bit Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: Branch prediction enable bit Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: Instruction cache enable bit Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: Instruction cache enable bit Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: Cache enable bit Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: Cache enable bit Mask */ + +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/* Instruction Tightly-Coupled Memory Control Register Definitions */ +#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Register Definitions */ +#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register Definitions */ +#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register Definitions */ +#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ + +/* AHBS Control Register Definitions */ +#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register Definitions */ +#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ +#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISDYNADD_Pos 26U /*!< ACTLR: DISDYNADD Position */ +#define SCnSCB_ACTLR_DISDYNADD_Msk (1UL << SCnSCB_ACTLR_DISDYNADD_Pos) /*!< ACTLR: DISDYNADD Mask */ + +#define SCnSCB_ACTLR_DISISSCH1_Pos 21U /*!< ACTLR: DISISSCH1 Position */ +#define SCnSCB_ACTLR_DISISSCH1_Msk (0x1FUL << SCnSCB_ACTLR_DISISSCH1_Pos) /*!< ACTLR: DISISSCH1 Mask */ + +#define SCnSCB_ACTLR_DISDI_Pos 16U /*!< ACTLR: DISDI Position */ +#define SCnSCB_ACTLR_DISDI_Msk (0x1FUL << SCnSCB_ACTLR_DISDI_Pos) /*!< ACTLR: DISDI Mask */ + +#define SCnSCB_ACTLR_DISCRITAXIRUR_Pos 15U /*!< ACTLR: DISCRITAXIRUR Position */ +#define SCnSCB_ACTLR_DISCRITAXIRUR_Msk (1UL << SCnSCB_ACTLR_DISCRITAXIRUR_Pos) /*!< ACTLR: DISCRITAXIRUR Mask */ + +#define SCnSCB_ACTLR_DISBTACALLOC_Pos 14U /*!< ACTLR: DISBTACALLOC Position */ +#define SCnSCB_ACTLR_DISBTACALLOC_Msk (1UL << SCnSCB_ACTLR_DISBTACALLOC_Pos) /*!< ACTLR: DISBTACALLOC Mask */ + +#define SCnSCB_ACTLR_DISBTACREAD_Pos 13U /*!< ACTLR: DISBTACREAD Position */ +#define SCnSCB_ACTLR_DISBTACREAD_Msk (1UL << SCnSCB_ACTLR_DISBTACREAD_Pos) /*!< ACTLR: DISBTACREAD Mask */ + +#define SCnSCB_ACTLR_DISITMATBFLUSH_Pos 12U /*!< ACTLR: DISITMATBFLUSH Position */ +#define SCnSCB_ACTLR_DISITMATBFLUSH_Msk (1UL << SCnSCB_ACTLR_DISITMATBFLUSH_Pos) /*!< ACTLR: DISITMATBFLUSH Mask */ + +#define SCnSCB_ACTLR_DISRAMODE_Pos 11U /*!< ACTLR: DISRAMODE Position */ +#define SCnSCB_ACTLR_DISRAMODE_Msk (1UL << SCnSCB_ACTLR_DISRAMODE_Pos) /*!< ACTLR: DISRAMODE Mask */ + +#define SCnSCB_ACTLR_FPEXCODIS_Pos 10U /*!< ACTLR: FPEXCODIS Position */ +#define SCnSCB_ACTLR_FPEXCODIS_Msk (1UL << SCnSCB_ACTLR_FPEXCODIS_Pos) /*!< ACTLR: FPEXCODIS Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED3[981U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( W) Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/* Media and FP Feature Register 2 Definitions */ + +#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ +#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ +#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = SCB->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## Cache functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_CacheFunctions Cache Functions + \brief Functions that configure Instruction and Data cache. + @{ + */ + +/* Cache Size ID Register Macros */ +#define CCSIDR_WAYS(x) (((x) & SCB_CCSIDR_ASSOCIATIVITY_Msk) >> SCB_CCSIDR_ASSOCIATIVITY_Pos) +#define CCSIDR_SETS(x) (((x) & SCB_CCSIDR_NUMSETS_Msk ) >> SCB_CCSIDR_NUMSETS_Pos ) + +#define __SCB_DCACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ +#define __SCB_ICACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ + +/** + \brief Enable I-Cache + \details Turns on I-Cache + */ +__STATIC_FORCEINLINE void SCB_EnableICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + if (SCB->CCR & SCB_CCR_IC_Msk) return; /* return if ICache is already enabled */ + + __DSB(); + __ISB(); + SCB->ICIALLU = 0UL; /* invalidate I-Cache */ + __DSB(); + __ISB(); + SCB->CCR |= (uint32_t)SCB_CCR_IC_Msk; /* enable I-Cache */ + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Disable I-Cache + \details Turns off I-Cache + */ +__STATIC_FORCEINLINE void SCB_DisableICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->CCR &= ~(uint32_t)SCB_CCR_IC_Msk; /* disable I-Cache */ + SCB->ICIALLU = 0UL; /* invalidate I-Cache */ + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Invalidate I-Cache + \details Invalidates I-Cache + */ +__STATIC_FORCEINLINE void SCB_InvalidateICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->ICIALLU = 0UL; + __DSB(); + __ISB(); + #endif +} + + +/** + \brief I-Cache Invalidate by address + \details Invalidates I-Cache for the given address. + I-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. + I-Cache memory blocks which are part of given address + given size are invalidated. + \param[in] addr address + \param[in] isize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_InvalidateICache_by_Addr (void *addr, int32_t isize) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + if ( isize > 0 ) { + int32_t op_size = isize + (((uint32_t)addr) & (__SCB_ICACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_ICACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->ICIMVAU = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_ICACHE_LINE_SIZE; + op_size -= __SCB_ICACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + + +/** + \brief Enable D-Cache + \details Turns on D-Cache + */ +__STATIC_FORCEINLINE void SCB_EnableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + if (SCB->CCR & SCB_CCR_DC_Msk) return; /* return if DCache is already enabled */ + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | + ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + __DSB(); + + SCB->CCR |= (uint32_t)SCB_CCR_DC_Msk; /* enable D-Cache */ + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Disable D-Cache + \details Turns off D-Cache + */ +__STATIC_FORCEINLINE void SCB_DisableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + SCB->CCR &= ~(uint32_t)SCB_CCR_DC_Msk; /* disable D-Cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean & invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | + ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Invalidate D-Cache + \details Invalidates D-Cache + */ +__STATIC_FORCEINLINE void SCB_InvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | + ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Clean D-Cache + \details Cleans D-Cache + */ +__STATIC_FORCEINLINE void SCB_CleanDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCSW = (((sets << SCB_DCCSW_SET_Pos) & SCB_DCCSW_SET_Msk) | + ((ways << SCB_DCCSW_WAY_Pos) & SCB_DCCSW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Clean & Invalidate D-Cache + \details Cleans and Invalidates D-Cache + */ +__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean & invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | + ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief D-Cache Invalidate by address + \details Invalidates D-Cache for the given address. + D-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. + D-Cache memory blocks which are part of given address + given size are invalidated. + \param[in] addr address + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_InvalidateDCache_by_Addr (void *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + if ( dsize > 0 ) { + int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->DCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_DCACHE_LINE_SIZE; + op_size -= __SCB_DCACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + + +/** + \brief D-Cache Clean by address + \details Cleans D-Cache for the given address + D-Cache is cleaned starting from a 32 byte aligned address in 32 byte granularity. + D-Cache memory blocks which are part of given address + given size are cleaned. + \param[in] addr address + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_CleanDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + if ( dsize > 0 ) { + int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->DCCMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_DCACHE_LINE_SIZE; + op_size -= __SCB_DCACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + + +/** + \brief D-Cache Clean and Invalidate by address + \details Cleans and invalidates D_Cache for the given address + D-Cache is cleaned and invalidated starting from a 32 byte aligned address in 32 byte granularity. + D-Cache memory blocks which are part of given address + given size are cleaned and invalidated. + \param[in] addr address (aligned to 32-byte boundary) + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + if ( dsize > 0 ) { + int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->DCCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_DCACHE_LINE_SIZE; + op_size -= __SCB_DCACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + +/*@} end of CMSIS_Core_CacheFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM7_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h similarity index 97% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h index f315013..cf92577 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h @@ -1,1025 +1,1025 @@ -/**************************************************************************//** - * @file core_sc000.h - * @brief CMSIS SC000 Core Peripheral Access Layer Header File - * @version V5.0.6 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_SC000_H_GENERIC -#define __CORE_SC000_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup SC000 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS SC000 definitions */ -#define __SC000_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __SC000_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16U) | \ - __SC000_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_SC (000U) /*!< Cortex secure core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_SC000_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_SC000_H_DEPENDANT -#define __CORE_SC000_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __SC000_REV - #define __SC000_REV 0x0000U - #warning "__SC000_REV not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group SC000 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core MPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t _reserved0:1; /*!< bit: 0 Reserved */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[31U]; - __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[31U]; - __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[31U]; - __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[31U]; - uint32_t RESERVED4[64U]; - __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED0[1U]; - __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - uint32_t RESERVED1[154U]; - __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ -} MPU_Type; - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief SC000 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. - Therefore they are not covered by the SC000 header file. - @{ - */ -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else -/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for SC000 */ -/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for SC000 */ - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ -/*#define NVIC_GetActive __NVIC_GetActive not available for SC000 */ - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - /* ARM Application Note 321 states that the M0 and M0+ do not require the architectural barrier - assume SC000 is the same */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_SC000_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_sc000.h + * @brief CMSIS SC000 Core Peripheral Access Layer Header File + * @version V5.0.6 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_SC000_H_GENERIC +#define __CORE_SC000_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup SC000 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS SC000 definitions */ +#define __SC000_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __SC000_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16U) | \ + __SC000_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_SC (000U) /*!< Cortex secure core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC000_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC000_H_DEPENDANT +#define __CORE_SC000_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __SC000_REV + #define __SC000_REV 0x0000U + #warning "__SC000_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group SC000 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED0[1U]; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + uint32_t RESERVED1[154U]; + __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief SC000 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the SC000 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else +/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for SC000 */ +/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for SC000 */ + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for SC000 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + /* ARM Application Note 321 states that the M0 and M0+ do not require the architectural barrier - assume SC000 is the same */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC000_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_sc300.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_sc300.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h index ad031f2..40f3af8 100644 --- a/eps/firmware/bsp/cmsis/Include/core_sc300.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h @@ -1,1912 +1,1912 @@ -/**************************************************************************//** - * @file core_sc300.h - * @brief CMSIS SC300 Core Peripheral Access Layer Header File - * @version V5.0.8 - * @date 31. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_SC300_H_GENERIC -#define __CORE_SC300_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup SC3000 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS SC300 definitions */ -#define __SC300_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __SC300_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __SC300_CMSIS_VERSION ((__SC300_CMSIS_VERSION_MAIN << 16U) | \ - __SC300_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_SC (300U) /*!< Cortex secure core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_SC300_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_SC300_H_DEPENDANT -#define __CORE_SC300_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __SC300_REV - #define __SC300_REV 0x0000U - #warning "__SC300_REV not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group SC300 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:1; /*!< bit: 9 Reserved */ - uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ - uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit */ - uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ -#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ -#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[24U]; - __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[24U]; - __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[24U]; - __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[24U]; - __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[56U]; - __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - uint32_t RESERVED0[5U]; - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - uint32_t RESERVED1[129U]; - __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ -#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ - -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ -#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ - -#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ -#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ - -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED0[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Mask Register Definitions */ -#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ -#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ -#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ - -#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ -#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ -#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ - -#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ -#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ - -#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ -#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ - -#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ -#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ - -#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ -#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ -#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ - -#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ -#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ -#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ - -#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ -#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ - __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ - __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ - __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ -#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ -#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ -#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ -#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ -#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_SC300_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_sc300.h + * @brief CMSIS SC300 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 31. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_SC300_H_GENERIC +#define __CORE_SC300_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup SC3000 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS SC300 definitions */ +#define __SC300_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __SC300_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __SC300_CMSIS_VERSION ((__SC300_CMSIS_VERSION_MAIN << 16U) | \ + __SC300_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_SC (300U) /*!< Cortex secure core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC300_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC300_H_DEPENDANT +#define __CORE_SC300_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __SC300_REV + #define __SC300_REV 0x0000U + #warning "__SC300_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group SC300 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + uint32_t RESERVED1[129U]; + __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC300_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h similarity index 97% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h index 337eb65..66ef59b 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h @@ -1,272 +1,272 @@ -/****************************************************************************** - * @file mpu_armv7.h - * @brief CMSIS MPU API for Armv7-M MPU - * @version V5.1.0 - * @date 08. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2017-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef ARM_MPU_ARMV7_H -#define ARM_MPU_ARMV7_H - -#define ARM_MPU_REGION_SIZE_32B ((uint8_t)0x04U) ///!< MPU Region Size 32 Bytes -#define ARM_MPU_REGION_SIZE_64B ((uint8_t)0x05U) ///!< MPU Region Size 64 Bytes -#define ARM_MPU_REGION_SIZE_128B ((uint8_t)0x06U) ///!< MPU Region Size 128 Bytes -#define ARM_MPU_REGION_SIZE_256B ((uint8_t)0x07U) ///!< MPU Region Size 256 Bytes -#define ARM_MPU_REGION_SIZE_512B ((uint8_t)0x08U) ///!< MPU Region Size 512 Bytes -#define ARM_MPU_REGION_SIZE_1KB ((uint8_t)0x09U) ///!< MPU Region Size 1 KByte -#define ARM_MPU_REGION_SIZE_2KB ((uint8_t)0x0AU) ///!< MPU Region Size 2 KBytes -#define ARM_MPU_REGION_SIZE_4KB ((uint8_t)0x0BU) ///!< MPU Region Size 4 KBytes -#define ARM_MPU_REGION_SIZE_8KB ((uint8_t)0x0CU) ///!< MPU Region Size 8 KBytes -#define ARM_MPU_REGION_SIZE_16KB ((uint8_t)0x0DU) ///!< MPU Region Size 16 KBytes -#define ARM_MPU_REGION_SIZE_32KB ((uint8_t)0x0EU) ///!< MPU Region Size 32 KBytes -#define ARM_MPU_REGION_SIZE_64KB ((uint8_t)0x0FU) ///!< MPU Region Size 64 KBytes -#define ARM_MPU_REGION_SIZE_128KB ((uint8_t)0x10U) ///!< MPU Region Size 128 KBytes -#define ARM_MPU_REGION_SIZE_256KB ((uint8_t)0x11U) ///!< MPU Region Size 256 KBytes -#define ARM_MPU_REGION_SIZE_512KB ((uint8_t)0x12U) ///!< MPU Region Size 512 KBytes -#define ARM_MPU_REGION_SIZE_1MB ((uint8_t)0x13U) ///!< MPU Region Size 1 MByte -#define ARM_MPU_REGION_SIZE_2MB ((uint8_t)0x14U) ///!< MPU Region Size 2 MBytes -#define ARM_MPU_REGION_SIZE_4MB ((uint8_t)0x15U) ///!< MPU Region Size 4 MBytes -#define ARM_MPU_REGION_SIZE_8MB ((uint8_t)0x16U) ///!< MPU Region Size 8 MBytes -#define ARM_MPU_REGION_SIZE_16MB ((uint8_t)0x17U) ///!< MPU Region Size 16 MBytes -#define ARM_MPU_REGION_SIZE_32MB ((uint8_t)0x18U) ///!< MPU Region Size 32 MBytes -#define ARM_MPU_REGION_SIZE_64MB ((uint8_t)0x19U) ///!< MPU Region Size 64 MBytes -#define ARM_MPU_REGION_SIZE_128MB ((uint8_t)0x1AU) ///!< MPU Region Size 128 MBytes -#define ARM_MPU_REGION_SIZE_256MB ((uint8_t)0x1BU) ///!< MPU Region Size 256 MBytes -#define ARM_MPU_REGION_SIZE_512MB ((uint8_t)0x1CU) ///!< MPU Region Size 512 MBytes -#define ARM_MPU_REGION_SIZE_1GB ((uint8_t)0x1DU) ///!< MPU Region Size 1 GByte -#define ARM_MPU_REGION_SIZE_2GB ((uint8_t)0x1EU) ///!< MPU Region Size 2 GBytes -#define ARM_MPU_REGION_SIZE_4GB ((uint8_t)0x1FU) ///!< MPU Region Size 4 GBytes - -#define ARM_MPU_AP_NONE 0U ///!< MPU Access Permission no access -#define ARM_MPU_AP_PRIV 1U ///!< MPU Access Permission privileged access only -#define ARM_MPU_AP_URO 2U ///!< MPU Access Permission unprivileged access read-only -#define ARM_MPU_AP_FULL 3U ///!< MPU Access Permission full access -#define ARM_MPU_AP_PRO 5U ///!< MPU Access Permission privileged access read-only -#define ARM_MPU_AP_RO 6U ///!< MPU Access Permission read-only access - -/** MPU Region Base Address Register Value -* -* \param Region The region to be configured, number 0 to 15. -* \param BaseAddress The base address for the region. -*/ -#define ARM_MPU_RBAR(Region, BaseAddress) \ - (((BaseAddress) & MPU_RBAR_ADDR_Msk) | \ - ((Region) & MPU_RBAR_REGION_Msk) | \ - (MPU_RBAR_VALID_Msk)) - -/** -* MPU Memory Access Attributes -* -* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. -* \param IsShareable Region is shareable between multiple bus masters. -* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. -* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. -*/ -#define ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable) \ - ((((TypeExtField) << MPU_RASR_TEX_Pos) & MPU_RASR_TEX_Msk) | \ - (((IsShareable) << MPU_RASR_S_Pos) & MPU_RASR_S_Msk) | \ - (((IsCacheable) << MPU_RASR_C_Pos) & MPU_RASR_C_Msk) | \ - (((IsBufferable) << MPU_RASR_B_Pos) & MPU_RASR_B_Msk)) - -/** -* MPU Region Attribute and Size Register Value -* -* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. -* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. -* \param AccessAttributes Memory access attribution, see \ref ARM_MPU_ACCESS_. -* \param SubRegionDisable Sub-region disable field. -* \param Size Region size of the region to be configured, for example 4K, 8K. -*/ -#define ARM_MPU_RASR_EX(DisableExec, AccessPermission, AccessAttributes, SubRegionDisable, Size) \ - ((((DisableExec) << MPU_RASR_XN_Pos) & MPU_RASR_XN_Msk) | \ - (((AccessPermission) << MPU_RASR_AP_Pos) & MPU_RASR_AP_Msk) | \ - (((AccessAttributes) & (MPU_RASR_TEX_Msk | MPU_RASR_S_Msk | MPU_RASR_C_Msk | MPU_RASR_B_Msk))) | \ - (((SubRegionDisable) << MPU_RASR_SRD_Pos) & MPU_RASR_SRD_Msk) | \ - (((Size) << MPU_RASR_SIZE_Pos) & MPU_RASR_SIZE_Msk) | \ - (((MPU_RASR_ENABLE_Msk)))) - -/** -* MPU Region Attribute and Size Register Value -* -* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. -* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. -* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. -* \param IsShareable Region is shareable between multiple bus masters. -* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. -* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. -* \param SubRegionDisable Sub-region disable field. -* \param Size Region size of the region to be configured, for example 4K, 8K. -*/ -#define ARM_MPU_RASR(DisableExec, AccessPermission, TypeExtField, IsShareable, IsCacheable, IsBufferable, SubRegionDisable, Size) \ - ARM_MPU_RASR_EX(DisableExec, AccessPermission, ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable), SubRegionDisable, Size) - -/** -* MPU Memory Access Attribute for strongly ordered memory. -* - TEX: 000b -* - Shareable -* - Non-cacheable -* - Non-bufferable -*/ -#define ARM_MPU_ACCESS_ORDERED ARM_MPU_ACCESS_(0U, 1U, 0U, 0U) - -/** -* MPU Memory Access Attribute for device memory. -* - TEX: 000b (if shareable) or 010b (if non-shareable) -* - Shareable or non-shareable -* - Non-cacheable -* - Bufferable (if shareable) or non-bufferable (if non-shareable) -* -* \param IsShareable Configures the device memory as shareable or non-shareable. -*/ -#define ARM_MPU_ACCESS_DEVICE(IsShareable) ((IsShareable) ? ARM_MPU_ACCESS_(0U, 1U, 0U, 1U) : ARM_MPU_ACCESS_(2U, 0U, 0U, 0U)) - -/** -* MPU Memory Access Attribute for normal memory. -* - TEX: 1BBb (reflecting outer cacheability rules) -* - Shareable or non-shareable -* - Cacheable or non-cacheable (reflecting inner cacheability rules) -* - Bufferable or non-bufferable (reflecting inner cacheability rules) -* -* \param OuterCp Configures the outer cache policy. -* \param InnerCp Configures the inner cache policy. -* \param IsShareable Configures the memory as shareable or non-shareable. -*/ -#define ARM_MPU_ACCESS_NORMAL(OuterCp, InnerCp, IsShareable) ARM_MPU_ACCESS_((4U | (OuterCp)), IsShareable, ((InnerCp) & 2U), ((InnerCp) & 1U)) - -/** -* MPU Memory Access Attribute non-cacheable policy. -*/ -#define ARM_MPU_CACHEP_NOCACHE 0U - -/** -* MPU Memory Access Attribute write-back, write and read allocate policy. -*/ -#define ARM_MPU_CACHEP_WB_WRA 1U - -/** -* MPU Memory Access Attribute write-through, no write allocate policy. -*/ -#define ARM_MPU_CACHEP_WT_NWA 2U - -/** -* MPU Memory Access Attribute write-back, no write allocate policy. -*/ -#define ARM_MPU_CACHEP_WB_NWA 3U - - -/** -* Struct for a single MPU Region -*/ -typedef struct { - uint32_t RBAR; //!< The region base address register value (RBAR) - uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR -} ARM_MPU_Region_t; - -/** Enable the MPU. -* \param MPU_Control Default access permissions for unconfigured regions. -*/ -__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) -{ - MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; -#endif - __DSB(); - __ISB(); -} - -/** Disable the MPU. -*/ -__STATIC_INLINE void ARM_MPU_Disable(void) -{ - __DMB(); -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; -#endif - MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; -} - -/** Clear and disable the given MPU region. -* \param rnr Region number to be cleared. -*/ -__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) -{ - MPU->RNR = rnr; - MPU->RASR = 0U; -} - -/** Configure an MPU region. -* \param rbar Value for RBAR register. -* \param rsar Value for RSAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr) -{ - MPU->RBAR = rbar; - MPU->RASR = rasr; -} - -/** Configure the given MPU region. -* \param rnr Region number to be configured. -* \param rbar Value for RBAR register. -* \param rsar Value for RSAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegionEx(uint32_t rnr, uint32_t rbar, uint32_t rasr) -{ - MPU->RNR = rnr; - MPU->RBAR = rbar; - MPU->RASR = rasr; -} - -/** Memcopy with strictly ordered memory access, e.g. for register targets. -* \param dst Destination data is copied to. -* \param src Source data is copied from. -* \param len Amount of data words to be copied. -*/ -__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) -{ - uint32_t i; - for (i = 0U; i < len; ++i) - { - dst[i] = src[i]; - } -} - -/** Load the given number of MPU regions from a table. -* \param table Pointer to the MPU configuration table. -* \param cnt Amount of regions to be configured. -*/ -__STATIC_INLINE void ARM_MPU_Load(ARM_MPU_Region_t const* table, uint32_t cnt) -{ - const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; - while (cnt > MPU_TYPE_RALIASES) { - ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), MPU_TYPE_RALIASES*rowWordSize); - table += MPU_TYPE_RALIASES; - cnt -= MPU_TYPE_RALIASES; - } - ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), cnt*rowWordSize); -} - -#endif +/****************************************************************************** + * @file mpu_armv7.h + * @brief CMSIS MPU API for Armv7-M MPU + * @version V5.1.0 + * @date 08. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2017-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef ARM_MPU_ARMV7_H +#define ARM_MPU_ARMV7_H + +#define ARM_MPU_REGION_SIZE_32B ((uint8_t)0x04U) ///!< MPU Region Size 32 Bytes +#define ARM_MPU_REGION_SIZE_64B ((uint8_t)0x05U) ///!< MPU Region Size 64 Bytes +#define ARM_MPU_REGION_SIZE_128B ((uint8_t)0x06U) ///!< MPU Region Size 128 Bytes +#define ARM_MPU_REGION_SIZE_256B ((uint8_t)0x07U) ///!< MPU Region Size 256 Bytes +#define ARM_MPU_REGION_SIZE_512B ((uint8_t)0x08U) ///!< MPU Region Size 512 Bytes +#define ARM_MPU_REGION_SIZE_1KB ((uint8_t)0x09U) ///!< MPU Region Size 1 KByte +#define ARM_MPU_REGION_SIZE_2KB ((uint8_t)0x0AU) ///!< MPU Region Size 2 KBytes +#define ARM_MPU_REGION_SIZE_4KB ((uint8_t)0x0BU) ///!< MPU Region Size 4 KBytes +#define ARM_MPU_REGION_SIZE_8KB ((uint8_t)0x0CU) ///!< MPU Region Size 8 KBytes +#define ARM_MPU_REGION_SIZE_16KB ((uint8_t)0x0DU) ///!< MPU Region Size 16 KBytes +#define ARM_MPU_REGION_SIZE_32KB ((uint8_t)0x0EU) ///!< MPU Region Size 32 KBytes +#define ARM_MPU_REGION_SIZE_64KB ((uint8_t)0x0FU) ///!< MPU Region Size 64 KBytes +#define ARM_MPU_REGION_SIZE_128KB ((uint8_t)0x10U) ///!< MPU Region Size 128 KBytes +#define ARM_MPU_REGION_SIZE_256KB ((uint8_t)0x11U) ///!< MPU Region Size 256 KBytes +#define ARM_MPU_REGION_SIZE_512KB ((uint8_t)0x12U) ///!< MPU Region Size 512 KBytes +#define ARM_MPU_REGION_SIZE_1MB ((uint8_t)0x13U) ///!< MPU Region Size 1 MByte +#define ARM_MPU_REGION_SIZE_2MB ((uint8_t)0x14U) ///!< MPU Region Size 2 MBytes +#define ARM_MPU_REGION_SIZE_4MB ((uint8_t)0x15U) ///!< MPU Region Size 4 MBytes +#define ARM_MPU_REGION_SIZE_8MB ((uint8_t)0x16U) ///!< MPU Region Size 8 MBytes +#define ARM_MPU_REGION_SIZE_16MB ((uint8_t)0x17U) ///!< MPU Region Size 16 MBytes +#define ARM_MPU_REGION_SIZE_32MB ((uint8_t)0x18U) ///!< MPU Region Size 32 MBytes +#define ARM_MPU_REGION_SIZE_64MB ((uint8_t)0x19U) ///!< MPU Region Size 64 MBytes +#define ARM_MPU_REGION_SIZE_128MB ((uint8_t)0x1AU) ///!< MPU Region Size 128 MBytes +#define ARM_MPU_REGION_SIZE_256MB ((uint8_t)0x1BU) ///!< MPU Region Size 256 MBytes +#define ARM_MPU_REGION_SIZE_512MB ((uint8_t)0x1CU) ///!< MPU Region Size 512 MBytes +#define ARM_MPU_REGION_SIZE_1GB ((uint8_t)0x1DU) ///!< MPU Region Size 1 GByte +#define ARM_MPU_REGION_SIZE_2GB ((uint8_t)0x1EU) ///!< MPU Region Size 2 GBytes +#define ARM_MPU_REGION_SIZE_4GB ((uint8_t)0x1FU) ///!< MPU Region Size 4 GBytes + +#define ARM_MPU_AP_NONE 0U ///!< MPU Access Permission no access +#define ARM_MPU_AP_PRIV 1U ///!< MPU Access Permission privileged access only +#define ARM_MPU_AP_URO 2U ///!< MPU Access Permission unprivileged access read-only +#define ARM_MPU_AP_FULL 3U ///!< MPU Access Permission full access +#define ARM_MPU_AP_PRO 5U ///!< MPU Access Permission privileged access read-only +#define ARM_MPU_AP_RO 6U ///!< MPU Access Permission read-only access + +/** MPU Region Base Address Register Value +* +* \param Region The region to be configured, number 0 to 15. +* \param BaseAddress The base address for the region. +*/ +#define ARM_MPU_RBAR(Region, BaseAddress) \ + (((BaseAddress) & MPU_RBAR_ADDR_Msk) | \ + ((Region) & MPU_RBAR_REGION_Msk) | \ + (MPU_RBAR_VALID_Msk)) + +/** +* MPU Memory Access Attributes +* +* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. +* \param IsShareable Region is shareable between multiple bus masters. +* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. +* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. +*/ +#define ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable) \ + ((((TypeExtField) << MPU_RASR_TEX_Pos) & MPU_RASR_TEX_Msk) | \ + (((IsShareable) << MPU_RASR_S_Pos) & MPU_RASR_S_Msk) | \ + (((IsCacheable) << MPU_RASR_C_Pos) & MPU_RASR_C_Msk) | \ + (((IsBufferable) << MPU_RASR_B_Pos) & MPU_RASR_B_Msk)) + +/** +* MPU Region Attribute and Size Register Value +* +* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. +* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. +* \param AccessAttributes Memory access attribution, see \ref ARM_MPU_ACCESS_. +* \param SubRegionDisable Sub-region disable field. +* \param Size Region size of the region to be configured, for example 4K, 8K. +*/ +#define ARM_MPU_RASR_EX(DisableExec, AccessPermission, AccessAttributes, SubRegionDisable, Size) \ + ((((DisableExec) << MPU_RASR_XN_Pos) & MPU_RASR_XN_Msk) | \ + (((AccessPermission) << MPU_RASR_AP_Pos) & MPU_RASR_AP_Msk) | \ + (((AccessAttributes) & (MPU_RASR_TEX_Msk | MPU_RASR_S_Msk | MPU_RASR_C_Msk | MPU_RASR_B_Msk))) | \ + (((SubRegionDisable) << MPU_RASR_SRD_Pos) & MPU_RASR_SRD_Msk) | \ + (((Size) << MPU_RASR_SIZE_Pos) & MPU_RASR_SIZE_Msk) | \ + (((MPU_RASR_ENABLE_Msk)))) + +/** +* MPU Region Attribute and Size Register Value +* +* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. +* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. +* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. +* \param IsShareable Region is shareable between multiple bus masters. +* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. +* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. +* \param SubRegionDisable Sub-region disable field. +* \param Size Region size of the region to be configured, for example 4K, 8K. +*/ +#define ARM_MPU_RASR(DisableExec, AccessPermission, TypeExtField, IsShareable, IsCacheable, IsBufferable, SubRegionDisable, Size) \ + ARM_MPU_RASR_EX(DisableExec, AccessPermission, ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable), SubRegionDisable, Size) + +/** +* MPU Memory Access Attribute for strongly ordered memory. +* - TEX: 000b +* - Shareable +* - Non-cacheable +* - Non-bufferable +*/ +#define ARM_MPU_ACCESS_ORDERED ARM_MPU_ACCESS_(0U, 1U, 0U, 0U) + +/** +* MPU Memory Access Attribute for device memory. +* - TEX: 000b (if shareable) or 010b (if non-shareable) +* - Shareable or non-shareable +* - Non-cacheable +* - Bufferable (if shareable) or non-bufferable (if non-shareable) +* +* \param IsShareable Configures the device memory as shareable or non-shareable. +*/ +#define ARM_MPU_ACCESS_DEVICE(IsShareable) ((IsShareable) ? ARM_MPU_ACCESS_(0U, 1U, 0U, 1U) : ARM_MPU_ACCESS_(2U, 0U, 0U, 0U)) + +/** +* MPU Memory Access Attribute for normal memory. +* - TEX: 1BBb (reflecting outer cacheability rules) +* - Shareable or non-shareable +* - Cacheable or non-cacheable (reflecting inner cacheability rules) +* - Bufferable or non-bufferable (reflecting inner cacheability rules) +* +* \param OuterCp Configures the outer cache policy. +* \param InnerCp Configures the inner cache policy. +* \param IsShareable Configures the memory as shareable or non-shareable. +*/ +#define ARM_MPU_ACCESS_NORMAL(OuterCp, InnerCp, IsShareable) ARM_MPU_ACCESS_((4U | (OuterCp)), IsShareable, ((InnerCp) & 2U), ((InnerCp) & 1U)) + +/** +* MPU Memory Access Attribute non-cacheable policy. +*/ +#define ARM_MPU_CACHEP_NOCACHE 0U + +/** +* MPU Memory Access Attribute write-back, write and read allocate policy. +*/ +#define ARM_MPU_CACHEP_WB_WRA 1U + +/** +* MPU Memory Access Attribute write-through, no write allocate policy. +*/ +#define ARM_MPU_CACHEP_WT_NWA 2U + +/** +* MPU Memory Access Attribute write-back, no write allocate policy. +*/ +#define ARM_MPU_CACHEP_WB_NWA 3U + + +/** +* Struct for a single MPU Region +*/ +typedef struct { + uint32_t RBAR; //!< The region base address register value (RBAR) + uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR +} ARM_MPU_Region_t; + +/** Enable the MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) +{ + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif + __DSB(); + __ISB(); +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DMB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} + +/** Clear and disable the given MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) +{ + MPU->RNR = rnr; + MPU->RASR = 0U; +} + +/** Configure an MPU region. +* \param rbar Value for RBAR register. +* \param rsar Value for RSAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr) +{ + MPU->RBAR = rbar; + MPU->RASR = rasr; +} + +/** Configure the given MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rsar Value for RSAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegionEx(uint32_t rnr, uint32_t rbar, uint32_t rasr) +{ + MPU->RNR = rnr; + MPU->RBAR = rbar; + MPU->RASR = rasr; +} + +/** Memcopy with strictly ordered memory access, e.g. for register targets. +* \param dst Destination data is copied to. +* \param src Source data is copied from. +* \param len Amount of data words to be copied. +*/ +__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) +{ + uint32_t i; + for (i = 0U; i < len; ++i) + { + dst[i] = src[i]; + } +} + +/** Load the given number of MPU regions from a table. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load(ARM_MPU_Region_t const* table, uint32_t cnt) +{ + const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; + while (cnt > MPU_TYPE_RALIASES) { + ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), MPU_TYPE_RALIASES*rowWordSize); + table += MPU_TYPE_RALIASES; + cnt -= MPU_TYPE_RALIASES; + } + ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), cnt*rowWordSize); +} + +#endif diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h similarity index 97% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h index 2fe28b6..0041d4d 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h +++ b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h @@ -1,346 +1,346 @@ -/****************************************************************************** - * @file mpu_armv8.h - * @brief CMSIS MPU API for Armv8-M and Armv8.1-M MPU - * @version V5.1.0 - * @date 08. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2017-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef ARM_MPU_ARMV8_H -#define ARM_MPU_ARMV8_H - -/** \brief Attribute for device memory (outer only) */ -#define ARM_MPU_ATTR_DEVICE ( 0U ) - -/** \brief Attribute for non-cacheable, normal memory */ -#define ARM_MPU_ATTR_NON_CACHEABLE ( 4U ) - -/** \brief Attribute for normal memory (outer and inner) -* \param NT Non-Transient: Set to 1 for non-transient data. -* \param WB Write-Back: Set to 1 to use write-back update policy. -* \param RA Read Allocation: Set to 1 to use cache allocation on read miss. -* \param WA Write Allocation: Set to 1 to use cache allocation on write miss. -*/ -#define ARM_MPU_ATTR_MEMORY_(NT, WB, RA, WA) \ - (((NT & 1U) << 3U) | ((WB & 1U) << 2U) | ((RA & 1U) << 1U) | (WA & 1U)) - -/** \brief Device memory type non Gathering, non Re-ordering, non Early Write Acknowledgement */ -#define ARM_MPU_ATTR_DEVICE_nGnRnE (0U) - -/** \brief Device memory type non Gathering, non Re-ordering, Early Write Acknowledgement */ -#define ARM_MPU_ATTR_DEVICE_nGnRE (1U) - -/** \brief Device memory type non Gathering, Re-ordering, Early Write Acknowledgement */ -#define ARM_MPU_ATTR_DEVICE_nGRE (2U) - -/** \brief Device memory type Gathering, Re-ordering, Early Write Acknowledgement */ -#define ARM_MPU_ATTR_DEVICE_GRE (3U) - -/** \brief Memory Attribute -* \param O Outer memory attributes -* \param I O == ARM_MPU_ATTR_DEVICE: Device memory attributes, else: Inner memory attributes -*/ -#define ARM_MPU_ATTR(O, I) (((O & 0xFU) << 4U) | (((O & 0xFU) != 0U) ? (I & 0xFU) : ((I & 0x3U) << 2U))) - -/** \brief Normal memory non-shareable */ -#define ARM_MPU_SH_NON (0U) - -/** \brief Normal memory outer shareable */ -#define ARM_MPU_SH_OUTER (2U) - -/** \brief Normal memory inner shareable */ -#define ARM_MPU_SH_INNER (3U) - -/** \brief Memory access permissions -* \param RO Read-Only: Set to 1 for read-only memory. -* \param NP Non-Privileged: Set to 1 for non-privileged memory. -*/ -#define ARM_MPU_AP_(RO, NP) (((RO & 1U) << 1U) | (NP & 1U)) - -/** \brief Region Base Address Register value -* \param BASE The base address bits [31:5] of a memory region. The value is zero extended. Effective address gets 32 byte aligned. -* \param SH Defines the Shareability domain for this memory region. -* \param RO Read-Only: Set to 1 for a read-only memory region. -* \param NP Non-Privileged: Set to 1 for a non-privileged memory region. -* \oaram XN eXecute Never: Set to 1 for a non-executable memory region. -*/ -#define ARM_MPU_RBAR(BASE, SH, RO, NP, XN) \ - ((BASE & MPU_RBAR_BASE_Msk) | \ - ((SH << MPU_RBAR_SH_Pos) & MPU_RBAR_SH_Msk) | \ - ((ARM_MPU_AP_(RO, NP) << MPU_RBAR_AP_Pos) & MPU_RBAR_AP_Msk) | \ - ((XN << MPU_RBAR_XN_Pos) & MPU_RBAR_XN_Msk)) - -/** \brief Region Limit Address Register value -* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. -* \param IDX The attribute index to be associated with this memory region. -*/ -#define ARM_MPU_RLAR(LIMIT, IDX) \ - ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ - ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ - (MPU_RLAR_EN_Msk)) - -#if defined(MPU_RLAR_PXN_Pos) - -/** \brief Region Limit Address Register with PXN value -* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. -* \param PXN Privileged execute never. Defines whether code can be executed from this privileged region. -* \param IDX The attribute index to be associated with this memory region. -*/ -#define ARM_MPU_RLAR_PXN(LIMIT, PXN, IDX) \ - ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ - ((PXN << MPU_RLAR_PXN_Pos) & MPU_RLAR_PXN_Msk) | \ - ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ - (MPU_RLAR_EN_Msk)) - -#endif - -/** -* Struct for a single MPU Region -*/ -typedef struct { - uint32_t RBAR; /*!< Region Base Address Register value */ - uint32_t RLAR; /*!< Region Limit Address Register value */ -} ARM_MPU_Region_t; - -/** Enable the MPU. -* \param MPU_Control Default access permissions for unconfigured regions. -*/ -__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) -{ - MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; -#endif - __DSB(); - __ISB(); -} - -/** Disable the MPU. -*/ -__STATIC_INLINE void ARM_MPU_Disable(void) -{ - __DMB(); -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; -#endif - MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; -} - -#ifdef MPU_NS -/** Enable the Non-secure MPU. -* \param MPU_Control Default access permissions for unconfigured regions. -*/ -__STATIC_INLINE void ARM_MPU_Enable_NS(uint32_t MPU_Control) -{ - MPU_NS->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB_NS->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; -#endif - __DSB(); - __ISB(); -} - -/** Disable the Non-secure MPU. -*/ -__STATIC_INLINE void ARM_MPU_Disable_NS(void) -{ - __DMB(); -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB_NS->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; -#endif - MPU_NS->CTRL &= ~MPU_CTRL_ENABLE_Msk; -} -#endif - -/** Set the memory attribute encoding to the given MPU. -* \param mpu Pointer to the MPU to be configured. -* \param idx The attribute index to be set [0-7] -* \param attr The attribute value to be set. -*/ -__STATIC_INLINE void ARM_MPU_SetMemAttrEx(MPU_Type* mpu, uint8_t idx, uint8_t attr) -{ - const uint8_t reg = idx / 4U; - const uint32_t pos = ((idx % 4U) * 8U); - const uint32_t mask = 0xFFU << pos; - - if (reg >= (sizeof(mpu->MAIR) / sizeof(mpu->MAIR[0]))) { - return; // invalid index - } - - mpu->MAIR[reg] = ((mpu->MAIR[reg] & ~mask) | ((attr << pos) & mask)); -} - -/** Set the memory attribute encoding. -* \param idx The attribute index to be set [0-7] -* \param attr The attribute value to be set. -*/ -__STATIC_INLINE void ARM_MPU_SetMemAttr(uint8_t idx, uint8_t attr) -{ - ARM_MPU_SetMemAttrEx(MPU, idx, attr); -} - -#ifdef MPU_NS -/** Set the memory attribute encoding to the Non-secure MPU. -* \param idx The attribute index to be set [0-7] -* \param attr The attribute value to be set. -*/ -__STATIC_INLINE void ARM_MPU_SetMemAttr_NS(uint8_t idx, uint8_t attr) -{ - ARM_MPU_SetMemAttrEx(MPU_NS, idx, attr); -} -#endif - -/** Clear and disable the given MPU region of the given MPU. -* \param mpu Pointer to MPU to be used. -* \param rnr Region number to be cleared. -*/ -__STATIC_INLINE void ARM_MPU_ClrRegionEx(MPU_Type* mpu, uint32_t rnr) -{ - mpu->RNR = rnr; - mpu->RLAR = 0U; -} - -/** Clear and disable the given MPU region. -* \param rnr Region number to be cleared. -*/ -__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) -{ - ARM_MPU_ClrRegionEx(MPU, rnr); -} - -#ifdef MPU_NS -/** Clear and disable the given Non-secure MPU region. -* \param rnr Region number to be cleared. -*/ -__STATIC_INLINE void ARM_MPU_ClrRegion_NS(uint32_t rnr) -{ - ARM_MPU_ClrRegionEx(MPU_NS, rnr); -} -#endif - -/** Configure the given MPU region of the given MPU. -* \param mpu Pointer to MPU to be used. -* \param rnr Region number to be configured. -* \param rbar Value for RBAR register. -* \param rlar Value for RLAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegionEx(MPU_Type* mpu, uint32_t rnr, uint32_t rbar, uint32_t rlar) -{ - mpu->RNR = rnr; - mpu->RBAR = rbar; - mpu->RLAR = rlar; -} - -/** Configure the given MPU region. -* \param rnr Region number to be configured. -* \param rbar Value for RBAR register. -* \param rlar Value for RLAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rnr, uint32_t rbar, uint32_t rlar) -{ - ARM_MPU_SetRegionEx(MPU, rnr, rbar, rlar); -} - -#ifdef MPU_NS -/** Configure the given Non-secure MPU region. -* \param rnr Region number to be configured. -* \param rbar Value for RBAR register. -* \param rlar Value for RLAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegion_NS(uint32_t rnr, uint32_t rbar, uint32_t rlar) -{ - ARM_MPU_SetRegionEx(MPU_NS, rnr, rbar, rlar); -} -#endif - -/** Memcopy with strictly ordered memory access, e.g. for register targets. -* \param dst Destination data is copied to. -* \param src Source data is copied from. -* \param len Amount of data words to be copied. -*/ -__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) -{ - uint32_t i; - for (i = 0U; i < len; ++i) - { - dst[i] = src[i]; - } -} - -/** Load the given number of MPU regions from a table to the given MPU. -* \param mpu Pointer to the MPU registers to be used. -* \param rnr First region number to be configured. -* \param table Pointer to the MPU configuration table. -* \param cnt Amount of regions to be configured. -*/ -__STATIC_INLINE void ARM_MPU_LoadEx(MPU_Type* mpu, uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) -{ - const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; - if (cnt == 1U) { - mpu->RNR = rnr; - ARM_MPU_OrderedMemcpy(&(mpu->RBAR), &(table->RBAR), rowWordSize); - } else { - uint32_t rnrBase = rnr & ~(MPU_TYPE_RALIASES-1U); - uint32_t rnrOffset = rnr % MPU_TYPE_RALIASES; - - mpu->RNR = rnrBase; - while ((rnrOffset + cnt) > MPU_TYPE_RALIASES) { - uint32_t c = MPU_TYPE_RALIASES - rnrOffset; - ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), c*rowWordSize); - table += c; - cnt -= c; - rnrOffset = 0U; - rnrBase += MPU_TYPE_RALIASES; - mpu->RNR = rnrBase; - } - - ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), cnt*rowWordSize); - } -} - -/** Load the given number of MPU regions from a table. -* \param rnr First region number to be configured. -* \param table Pointer to the MPU configuration table. -* \param cnt Amount of regions to be configured. -*/ -__STATIC_INLINE void ARM_MPU_Load(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) -{ - ARM_MPU_LoadEx(MPU, rnr, table, cnt); -} - -#ifdef MPU_NS -/** Load the given number of MPU regions from a table to the Non-secure MPU. -* \param rnr First region number to be configured. -* \param table Pointer to the MPU configuration table. -* \param cnt Amount of regions to be configured. -*/ -__STATIC_INLINE void ARM_MPU_Load_NS(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) -{ - ARM_MPU_LoadEx(MPU_NS, rnr, table, cnt); -} -#endif - -#endif - +/****************************************************************************** + * @file mpu_armv8.h + * @brief CMSIS MPU API for Armv8-M and Armv8.1-M MPU + * @version V5.1.0 + * @date 08. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2017-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef ARM_MPU_ARMV8_H +#define ARM_MPU_ARMV8_H + +/** \brief Attribute for device memory (outer only) */ +#define ARM_MPU_ATTR_DEVICE ( 0U ) + +/** \brief Attribute for non-cacheable, normal memory */ +#define ARM_MPU_ATTR_NON_CACHEABLE ( 4U ) + +/** \brief Attribute for normal memory (outer and inner) +* \param NT Non-Transient: Set to 1 for non-transient data. +* \param WB Write-Back: Set to 1 to use write-back update policy. +* \param RA Read Allocation: Set to 1 to use cache allocation on read miss. +* \param WA Write Allocation: Set to 1 to use cache allocation on write miss. +*/ +#define ARM_MPU_ATTR_MEMORY_(NT, WB, RA, WA) \ + (((NT & 1U) << 3U) | ((WB & 1U) << 2U) | ((RA & 1U) << 1U) | (WA & 1U)) + +/** \brief Device memory type non Gathering, non Re-ordering, non Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGnRnE (0U) + +/** \brief Device memory type non Gathering, non Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGnRE (1U) + +/** \brief Device memory type non Gathering, Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGRE (2U) + +/** \brief Device memory type Gathering, Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_GRE (3U) + +/** \brief Memory Attribute +* \param O Outer memory attributes +* \param I O == ARM_MPU_ATTR_DEVICE: Device memory attributes, else: Inner memory attributes +*/ +#define ARM_MPU_ATTR(O, I) (((O & 0xFU) << 4U) | (((O & 0xFU) != 0U) ? (I & 0xFU) : ((I & 0x3U) << 2U))) + +/** \brief Normal memory non-shareable */ +#define ARM_MPU_SH_NON (0U) + +/** \brief Normal memory outer shareable */ +#define ARM_MPU_SH_OUTER (2U) + +/** \brief Normal memory inner shareable */ +#define ARM_MPU_SH_INNER (3U) + +/** \brief Memory access permissions +* \param RO Read-Only: Set to 1 for read-only memory. +* \param NP Non-Privileged: Set to 1 for non-privileged memory. +*/ +#define ARM_MPU_AP_(RO, NP) (((RO & 1U) << 1U) | (NP & 1U)) + +/** \brief Region Base Address Register value +* \param BASE The base address bits [31:5] of a memory region. The value is zero extended. Effective address gets 32 byte aligned. +* \param SH Defines the Shareability domain for this memory region. +* \param RO Read-Only: Set to 1 for a read-only memory region. +* \param NP Non-Privileged: Set to 1 for a non-privileged memory region. +* \oaram XN eXecute Never: Set to 1 for a non-executable memory region. +*/ +#define ARM_MPU_RBAR(BASE, SH, RO, NP, XN) \ + ((BASE & MPU_RBAR_BASE_Msk) | \ + ((SH << MPU_RBAR_SH_Pos) & MPU_RBAR_SH_Msk) | \ + ((ARM_MPU_AP_(RO, NP) << MPU_RBAR_AP_Pos) & MPU_RBAR_AP_Msk) | \ + ((XN << MPU_RBAR_XN_Pos) & MPU_RBAR_XN_Msk)) + +/** \brief Region Limit Address Register value +* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. +* \param IDX The attribute index to be associated with this memory region. +*/ +#define ARM_MPU_RLAR(LIMIT, IDX) \ + ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ + ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ + (MPU_RLAR_EN_Msk)) + +#if defined(MPU_RLAR_PXN_Pos) + +/** \brief Region Limit Address Register with PXN value +* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. +* \param PXN Privileged execute never. Defines whether code can be executed from this privileged region. +* \param IDX The attribute index to be associated with this memory region. +*/ +#define ARM_MPU_RLAR_PXN(LIMIT, PXN, IDX) \ + ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ + ((PXN << MPU_RLAR_PXN_Pos) & MPU_RLAR_PXN_Msk) | \ + ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ + (MPU_RLAR_EN_Msk)) + +#endif + +/** +* Struct for a single MPU Region +*/ +typedef struct { + uint32_t RBAR; /*!< Region Base Address Register value */ + uint32_t RLAR; /*!< Region Limit Address Register value */ +} ARM_MPU_Region_t; + +/** Enable the MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) +{ + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif + __DSB(); + __ISB(); +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DMB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} + +#ifdef MPU_NS +/** Enable the Non-secure MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable_NS(uint32_t MPU_Control) +{ + MPU_NS->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB_NS->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif + __DSB(); + __ISB(); +} + +/** Disable the Non-secure MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable_NS(void) +{ + __DMB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB_NS->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU_NS->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} +#endif + +/** Set the memory attribute encoding to the given MPU. +* \param mpu Pointer to the MPU to be configured. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttrEx(MPU_Type* mpu, uint8_t idx, uint8_t attr) +{ + const uint8_t reg = idx / 4U; + const uint32_t pos = ((idx % 4U) * 8U); + const uint32_t mask = 0xFFU << pos; + + if (reg >= (sizeof(mpu->MAIR) / sizeof(mpu->MAIR[0]))) { + return; // invalid index + } + + mpu->MAIR[reg] = ((mpu->MAIR[reg] & ~mask) | ((attr << pos) & mask)); +} + +/** Set the memory attribute encoding. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttr(uint8_t idx, uint8_t attr) +{ + ARM_MPU_SetMemAttrEx(MPU, idx, attr); +} + +#ifdef MPU_NS +/** Set the memory attribute encoding to the Non-secure MPU. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttr_NS(uint8_t idx, uint8_t attr) +{ + ARM_MPU_SetMemAttrEx(MPU_NS, idx, attr); +} +#endif + +/** Clear and disable the given MPU region of the given MPU. +* \param mpu Pointer to MPU to be used. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegionEx(MPU_Type* mpu, uint32_t rnr) +{ + mpu->RNR = rnr; + mpu->RLAR = 0U; +} + +/** Clear and disable the given MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) +{ + ARM_MPU_ClrRegionEx(MPU, rnr); +} + +#ifdef MPU_NS +/** Clear and disable the given Non-secure MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion_NS(uint32_t rnr) +{ + ARM_MPU_ClrRegionEx(MPU_NS, rnr); +} +#endif + +/** Configure the given MPU region of the given MPU. +* \param mpu Pointer to MPU to be used. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegionEx(MPU_Type* mpu, uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + mpu->RNR = rnr; + mpu->RBAR = rbar; + mpu->RLAR = rlar; +} + +/** Configure the given MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + ARM_MPU_SetRegionEx(MPU, rnr, rbar, rlar); +} + +#ifdef MPU_NS +/** Configure the given Non-secure MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion_NS(uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + ARM_MPU_SetRegionEx(MPU_NS, rnr, rbar, rlar); +} +#endif + +/** Memcopy with strictly ordered memory access, e.g. for register targets. +* \param dst Destination data is copied to. +* \param src Source data is copied from. +* \param len Amount of data words to be copied. +*/ +__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) +{ + uint32_t i; + for (i = 0U; i < len; ++i) + { + dst[i] = src[i]; + } +} + +/** Load the given number of MPU regions from a table to the given MPU. +* \param mpu Pointer to the MPU registers to be used. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_LoadEx(MPU_Type* mpu, uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; + if (cnt == 1U) { + mpu->RNR = rnr; + ARM_MPU_OrderedMemcpy(&(mpu->RBAR), &(table->RBAR), rowWordSize); + } else { + uint32_t rnrBase = rnr & ~(MPU_TYPE_RALIASES-1U); + uint32_t rnrOffset = rnr % MPU_TYPE_RALIASES; + + mpu->RNR = rnrBase; + while ((rnrOffset + cnt) > MPU_TYPE_RALIASES) { + uint32_t c = MPU_TYPE_RALIASES - rnrOffset; + ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), c*rowWordSize); + table += c; + cnt -= c; + rnrOffset = 0U; + rnrBase += MPU_TYPE_RALIASES; + mpu->RNR = rnrBase; + } + + ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), cnt*rowWordSize); + } +} + +/** Load the given number of MPU regions from a table. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + ARM_MPU_LoadEx(MPU, rnr, table, cnt); +} + +#ifdef MPU_NS +/** Load the given number of MPU regions from a table to the Non-secure MPU. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load_NS(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + ARM_MPU_LoadEx(MPU_NS, rnr, table, cnt); +} +#endif + +#endif + diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h b/eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt b/eps/v1/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt rename to eps/v1/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc_ex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc_ex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc_ex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_adc_ex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_iwdg.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_iwdg.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_iwdg.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_iwdg.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_adc.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_adc.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_adc.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_adc.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_iwdg.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_iwdg.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_iwdg.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_iwdg.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/LICENSE.txt b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/LICENSE.txt similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/LICENSE.txt rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/LICENSE.txt diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_iwdg.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c similarity index 97% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_iwdg.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c index ed98a85..08550b3 100644 --- a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_iwdg.c +++ b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c @@ -1,283 +1,283 @@ -/** - ****************************************************************************** - * @file stm32l4xx_hal_iwdg.c - * @author MCD Application Team - * @brief IWDG HAL module driver. - * This file provides firmware functions to manage the following - * functionalities of the Independent Watchdog (IWDG) peripheral: - * + Initialization and Start functions - * + IO operation functions - * - ****************************************************************************** - * @attention - * - * Copyright (c) 2017 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - @verbatim - ============================================================================== - ##### IWDG Generic features ##### - ============================================================================== - [..] - (+) The IWDG can be started by either software or hardware (configurable - through option byte). - - (+) The IWDG is clocked by the Low-Speed Internal clock (LSI) and thus stays - active even if the main clock fails. - - (+) Once the IWDG is started, the LSI is forced ON and both cannot be - disabled. The counter starts counting down from the reset value (0xFFF). - When it reaches the end of count value (0x000) a reset signal is - generated (IWDG reset). - - (+) Whenever the key value 0x0000 AAAA is written in the IWDG_KR register, - the IWDG_RLR value is reloaded into the counter and the watchdog reset - is prevented. - - (+) The IWDG is implemented in the VDD voltage domain that is still functional - in STOP and STANDBY mode (IWDG reset can wake up the CPU from STANDBY). - IWDGRST flag in RCC_CSR register can be used to inform when an IWDG - reset occurs. - - (+) Debug mode: When the microcontroller enters debug mode (core halted), - the IWDG counter either continues to work normally or stops, depending - on DBG_IWDG_STOP configuration bit in DBG module, accessible through - __HAL_DBGMCU_FREEZE_IWDG() and __HAL_DBGMCU_UNFREEZE_IWDG() macros. - - [..] Min-max timeout value @32KHz (LSI): ~125us / ~32.7s - The IWDG timeout may vary due to LSI clock frequency dispersion. - STM32L4xx devices provide the capability to measure the LSI clock - frequency (LSI clock is internally connected to TIM16 CH1 input capture). - The measured value can be used to have an IWDG timeout with an - acceptable accuracy. - - [..] Default timeout value (necessary for IWDG_SR status register update): - Constant LSI_VALUE is defined based on the nominal LSI clock frequency. - This frequency being subject to variations as mentioned above, the - default timeout value (defined through constant HAL_IWDG_DEFAULT_TIMEOUT - below) may become too short or too long. - In such cases, this default timeout value can be tuned by redefining - the constant LSI_VALUE at user-application level (based, for instance, - on the measured LSI clock frequency as explained above). - - ##### How to use this driver ##### - ============================================================================== - [..] - (#) Use IWDG using HAL_IWDG_Init() function to : - (++) Enable instance by writing Start keyword in IWDG_KEY register. LSI - clock is forced ON and IWDG counter starts counting down. - (++) Enable write access to configuration registers: - IWDG_PR, IWDG_RLR and IWDG_WINR. - (++) Configure the IWDG prescaler and counter reload value. This reload - value will be loaded in the IWDG counter each time the watchdog is - reloaded, then the IWDG will start counting down from this value. - (++) Depending on window parameter: - (+++) If Window Init parameter is same as Window register value, - nothing more is done but reload counter value in order to exit - function with exact time base. - (+++) Else modify Window register. This will automatically reload - watchdog counter. - (++) Wait for status flags to be reset. - - (#) Then the application program must refresh the IWDG counter at regular - intervals during normal operation to prevent an MCU reset, using - HAL_IWDG_Refresh() function. - - *** IWDG HAL driver macros list *** - ==================================== - [..] - Below the list of most used macros in IWDG HAL driver: - (+) __HAL_IWDG_START: Enable the IWDG peripheral - (+) __HAL_IWDG_RELOAD_COUNTER: Reloads IWDG counter with value defined in - the reload register - - @endverbatim - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32l4xx_hal.h" - -/** @addtogroup STM32L4xx_HAL_Driver - * @{ - */ - -#ifdef HAL_IWDG_MODULE_ENABLED -/** @addtogroup IWDG - * @brief IWDG HAL module driver. - * @{ - */ - -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ -/** @defgroup IWDG_Private_Defines IWDG Private Defines - * @{ - */ -/* Status register needs up to 5 LSI clock periods divided by the clock - prescaler to be updated. The number of LSI clock periods is upper-rounded to - 6 for the timeout value calculation. - The timeout value is calculated using the highest prescaler (256) and - the LSI_VALUE constant. The value of this constant can be changed by the user - to take into account possible LSI clock period variations. - The timeout value is multiplied by 1000 to be converted in milliseconds. - LSI startup time is also considered here by adding LSI_STARTUP_TIME - converted in milliseconds. */ -#define HAL_IWDG_DEFAULT_TIMEOUT (((6UL * 256UL * 1000UL) / (LSI_VALUE / 128U)) + \ - ((LSI_STARTUP_TIME / 1000UL) + 1UL)) -#define IWDG_KERNEL_UPDATE_FLAGS (IWDG_SR_WVU | IWDG_SR_RVU | IWDG_SR_PVU) -/** - * @} - */ - -/* Private macro -------------------------------------------------------------*/ -/* Private variables ---------------------------------------------------------*/ -/* Private function prototypes -----------------------------------------------*/ -/* Exported functions --------------------------------------------------------*/ - -/** @addtogroup IWDG_Exported_Functions - * @{ - */ - -/** @addtogroup IWDG_Exported_Functions_Group1 - * @brief Initialization and Start functions. - * -@verbatim - =============================================================================== - ##### Initialization and Start functions ##### - =============================================================================== - [..] This section provides functions allowing to: - (+) Initialize the IWDG according to the specified parameters in the - IWDG_InitTypeDef of associated handle. - (+) Manage Window option. - (+) Once initialization is performed in HAL_IWDG_Init function, Watchdog - is reloaded in order to exit function with correct time base. - -@endverbatim - * @{ - */ - -/** - * @brief Initialize the IWDG according to the specified parameters in the - * IWDG_InitTypeDef and start watchdog. Before exiting function, - * watchdog is refreshed in order to have correct time base. - * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains - * the configuration information for the specified IWDG module. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg) -{ - uint32_t tickstart; - - /* Check the IWDG handle allocation */ - if (hiwdg == NULL) - { - return HAL_ERROR; - } - - /* Check the parameters */ - assert_param(IS_IWDG_ALL_INSTANCE(hiwdg->Instance)); - assert_param(IS_IWDG_PRESCALER(hiwdg->Init.Prescaler)); - assert_param(IS_IWDG_RELOAD(hiwdg->Init.Reload)); - assert_param(IS_IWDG_WINDOW(hiwdg->Init.Window)); - - /* Enable IWDG. LSI is turned on automatically */ - __HAL_IWDG_START(hiwdg); - - /* Enable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers by writing - 0x5555 in KR */ - IWDG_ENABLE_WRITE_ACCESS(hiwdg); - - /* Write to IWDG registers the Prescaler & Reload values to work with */ - hiwdg->Instance->PR = hiwdg->Init.Prescaler; - hiwdg->Instance->RLR = hiwdg->Init.Reload; - - /* Check pending flag, if previous update not done, return timeout */ - tickstart = HAL_GetTick(); - - /* Wait for register to be updated */ - while ((hiwdg->Instance->SR & IWDG_KERNEL_UPDATE_FLAGS) != 0x00u) - { - if ((HAL_GetTick() - tickstart) > HAL_IWDG_DEFAULT_TIMEOUT) - { - if ((hiwdg->Instance->SR & IWDG_KERNEL_UPDATE_FLAGS) != 0x00u) - { - return HAL_TIMEOUT; - } - } - } - - /* If window parameter is different than current value, modify window - register */ - if (hiwdg->Instance->WINR != hiwdg->Init.Window) - { - /* Write to IWDG WINR the IWDG_Window value to compare with. In any case, - even if window feature is disabled, Watchdog will be reloaded by writing - windows register */ - hiwdg->Instance->WINR = hiwdg->Init.Window; - } - else - { - /* Reload IWDG counter with value defined in the reload register */ - __HAL_IWDG_RELOAD_COUNTER(hiwdg); - } - - /* Return function status */ - return HAL_OK; -} - - -/** - * @} - */ - - -/** @addtogroup IWDG_Exported_Functions_Group2 - * @brief IO operation functions - * -@verbatim - =============================================================================== - ##### IO operation functions ##### - =============================================================================== - [..] This section provides functions allowing to: - (+) Refresh the IWDG. - -@endverbatim - * @{ - */ - -/** - * @brief Refresh the IWDG. - * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains - * the configuration information for the specified IWDG module. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg) -{ - /* Reload IWDG counter with value defined in the reload register */ - __HAL_IWDG_RELOAD_COUNTER(hiwdg); - - /* Return function status */ - return HAL_OK; -} - - -/** - * @} - */ - -/** - * @} - */ - -#endif /* HAL_IWDG_MODULE_ENABLED */ -/** - * @} - */ - -/** - * @} - */ +/** + ****************************************************************************** + * @file stm32l4xx_hal_iwdg.c + * @author MCD Application Team + * @brief IWDG HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Independent Watchdog (IWDG) peripheral: + * + Initialization and Start functions + * + IO operation functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### IWDG Generic features ##### + ============================================================================== + [..] + (+) The IWDG can be started by either software or hardware (configurable + through option byte). + + (+) The IWDG is clocked by the Low-Speed Internal clock (LSI) and thus stays + active even if the main clock fails. + + (+) Once the IWDG is started, the LSI is forced ON and both cannot be + disabled. The counter starts counting down from the reset value (0xFFF). + When it reaches the end of count value (0x000) a reset signal is + generated (IWDG reset). + + (+) Whenever the key value 0x0000 AAAA is written in the IWDG_KR register, + the IWDG_RLR value is reloaded into the counter and the watchdog reset + is prevented. + + (+) The IWDG is implemented in the VDD voltage domain that is still functional + in STOP and STANDBY mode (IWDG reset can wake up the CPU from STANDBY). + IWDGRST flag in RCC_CSR register can be used to inform when an IWDG + reset occurs. + + (+) Debug mode: When the microcontroller enters debug mode (core halted), + the IWDG counter either continues to work normally or stops, depending + on DBG_IWDG_STOP configuration bit in DBG module, accessible through + __HAL_DBGMCU_FREEZE_IWDG() and __HAL_DBGMCU_UNFREEZE_IWDG() macros. + + [..] Min-max timeout value @32KHz (LSI): ~125us / ~32.7s + The IWDG timeout may vary due to LSI clock frequency dispersion. + STM32L4xx devices provide the capability to measure the LSI clock + frequency (LSI clock is internally connected to TIM16 CH1 input capture). + The measured value can be used to have an IWDG timeout with an + acceptable accuracy. + + [..] Default timeout value (necessary for IWDG_SR status register update): + Constant LSI_VALUE is defined based on the nominal LSI clock frequency. + This frequency being subject to variations as mentioned above, the + default timeout value (defined through constant HAL_IWDG_DEFAULT_TIMEOUT + below) may become too short or too long. + In such cases, this default timeout value can be tuned by redefining + the constant LSI_VALUE at user-application level (based, for instance, + on the measured LSI clock frequency as explained above). + + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Use IWDG using HAL_IWDG_Init() function to : + (++) Enable instance by writing Start keyword in IWDG_KEY register. LSI + clock is forced ON and IWDG counter starts counting down. + (++) Enable write access to configuration registers: + IWDG_PR, IWDG_RLR and IWDG_WINR. + (++) Configure the IWDG prescaler and counter reload value. This reload + value will be loaded in the IWDG counter each time the watchdog is + reloaded, then the IWDG will start counting down from this value. + (++) Depending on window parameter: + (+++) If Window Init parameter is same as Window register value, + nothing more is done but reload counter value in order to exit + function with exact time base. + (+++) Else modify Window register. This will automatically reload + watchdog counter. + (++) Wait for status flags to be reset. + + (#) Then the application program must refresh the IWDG counter at regular + intervals during normal operation to prevent an MCU reset, using + HAL_IWDG_Refresh() function. + + *** IWDG HAL driver macros list *** + ==================================== + [..] + Below the list of most used macros in IWDG HAL driver: + (+) __HAL_IWDG_START: Enable the IWDG peripheral + (+) __HAL_IWDG_RELOAD_COUNTER: Reloads IWDG counter with value defined in + the reload register + + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l4xx_hal.h" + +/** @addtogroup STM32L4xx_HAL_Driver + * @{ + */ + +#ifdef HAL_IWDG_MODULE_ENABLED +/** @addtogroup IWDG + * @brief IWDG HAL module driver. + * @{ + */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup IWDG_Private_Defines IWDG Private Defines + * @{ + */ +/* Status register needs up to 5 LSI clock periods divided by the clock + prescaler to be updated. The number of LSI clock periods is upper-rounded to + 6 for the timeout value calculation. + The timeout value is calculated using the highest prescaler (256) and + the LSI_VALUE constant. The value of this constant can be changed by the user + to take into account possible LSI clock period variations. + The timeout value is multiplied by 1000 to be converted in milliseconds. + LSI startup time is also considered here by adding LSI_STARTUP_TIME + converted in milliseconds. */ +#define HAL_IWDG_DEFAULT_TIMEOUT (((6UL * 256UL * 1000UL) / (LSI_VALUE / 128U)) + \ + ((LSI_STARTUP_TIME / 1000UL) + 1UL)) +#define IWDG_KERNEL_UPDATE_FLAGS (IWDG_SR_WVU | IWDG_SR_RVU | IWDG_SR_PVU) +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup IWDG_Exported_Functions + * @{ + */ + +/** @addtogroup IWDG_Exported_Functions_Group1 + * @brief Initialization and Start functions. + * +@verbatim + =============================================================================== + ##### Initialization and Start functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Initialize the IWDG according to the specified parameters in the + IWDG_InitTypeDef of associated handle. + (+) Manage Window option. + (+) Once initialization is performed in HAL_IWDG_Init function, Watchdog + is reloaded in order to exit function with correct time base. + +@endverbatim + * @{ + */ + +/** + * @brief Initialize the IWDG according to the specified parameters in the + * IWDG_InitTypeDef and start watchdog. Before exiting function, + * watchdog is refreshed in order to have correct time base. + * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains + * the configuration information for the specified IWDG module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg) +{ + uint32_t tickstart; + + /* Check the IWDG handle allocation */ + if (hiwdg == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_IWDG_ALL_INSTANCE(hiwdg->Instance)); + assert_param(IS_IWDG_PRESCALER(hiwdg->Init.Prescaler)); + assert_param(IS_IWDG_RELOAD(hiwdg->Init.Reload)); + assert_param(IS_IWDG_WINDOW(hiwdg->Init.Window)); + + /* Enable IWDG. LSI is turned on automatically */ + __HAL_IWDG_START(hiwdg); + + /* Enable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers by writing + 0x5555 in KR */ + IWDG_ENABLE_WRITE_ACCESS(hiwdg); + + /* Write to IWDG registers the Prescaler & Reload values to work with */ + hiwdg->Instance->PR = hiwdg->Init.Prescaler; + hiwdg->Instance->RLR = hiwdg->Init.Reload; + + /* Check pending flag, if previous update not done, return timeout */ + tickstart = HAL_GetTick(); + + /* Wait for register to be updated */ + while ((hiwdg->Instance->SR & IWDG_KERNEL_UPDATE_FLAGS) != 0x00u) + { + if ((HAL_GetTick() - tickstart) > HAL_IWDG_DEFAULT_TIMEOUT) + { + if ((hiwdg->Instance->SR & IWDG_KERNEL_UPDATE_FLAGS) != 0x00u) + { + return HAL_TIMEOUT; + } + } + } + + /* If window parameter is different than current value, modify window + register */ + if (hiwdg->Instance->WINR != hiwdg->Init.Window) + { + /* Write to IWDG WINR the IWDG_Window value to compare with. In any case, + even if window feature is disabled, Watchdog will be reloaded by writing + windows register */ + hiwdg->Instance->WINR = hiwdg->Init.Window; + } + else + { + /* Reload IWDG counter with value defined in the reload register */ + __HAL_IWDG_RELOAD_COUNTER(hiwdg); + } + + /* Return function status */ + return HAL_OK; +} + + +/** + * @} + */ + + +/** @addtogroup IWDG_Exported_Functions_Group2 + * @brief IO operation functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Refresh the IWDG. + +@endverbatim + * @{ + */ + +/** + * @brief Refresh the IWDG. + * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains + * the configuration information for the specified IWDG module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg) +{ + /* Reload IWDG counter with value defined in the reload register */ + __HAL_IWDG_RELOAD_COUNTER(hiwdg); + + /* Return function status */ + return HAL_OK; +} + + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_IWDG_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c b/eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c similarity index 100% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c rename to eps/v1/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c diff --git a/eps/firmware/bootstrap/Makefile b/eps/v1/firmware/bootstrap/Makefile similarity index 96% rename from eps/firmware/bootstrap/Makefile rename to eps/v1/firmware/bootstrap/Makefile index 06ceb78..332af45 100644 --- a/eps/firmware/bootstrap/Makefile +++ b/eps/v1/firmware/bootstrap/Makefile @@ -1,214 +1,214 @@ -########################################################################################################################## -# File automatically-generated by tool: [projectgenerator] version: [4.8.0-B50] date: [Thu Jan 08 14:51:02 PST 2026] -########################################################################################################################## - -# ------------------------------------------------ -# Generic Makefile (based on gcc) -# -# ChangeLog : -# 2017-02-10 - Several enhancements + project update mode -# 2015-07-22 - first version -# ------------------------------------------------ - -###################################### -# target -###################################### -TARGET = eps-bootstrap - - -###################################### -# building variables -###################################### -# debug build? -DEBUG = 1 -# optimization -OPT = -Og - - -####################################### -# paths -####################################### -# Build path -BUILD_DIR = build - -###################################### -# source -###################################### -# C sources -C_SOURCES = \ -Core/Src/main.c \ -Core/Src/gpio.c \ -Core/Src/adc.c \ -Core/Src/i2c.c \ -Core/Src/iwdg.c \ -Core/Src/usart.c \ -Core/Src/stm32l4xx_it.c \ -Core/Src/stm32l4xx_hal_msp.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c \ -Core/Src/system_stm32l4xx.c \ -Core/Src/sysmem.c \ -Core/Src/syscalls.c \ -Core/Src/dma.c \ -Core/Src/tim.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c \ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c - -# ASM sources -ASM_SOURCES = \ -startup_stm32l496xx.s - -# ASMM sources -ASMM_SOURCES = - - - -####################################### -# binaries -####################################### -PREFIX = arm-none-eabi- -# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) -# either it can be added to the PATH environment variable. -ifdef GCC_PATH -CC = $(GCC_PATH)/$(PREFIX)gcc -AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp -CP = $(GCC_PATH)/$(PREFIX)objcopy -SZ = $(GCC_PATH)/$(PREFIX)size -else -CC = $(PREFIX)gcc -AS = $(PREFIX)gcc -x assembler-with-cpp -CP = $(PREFIX)objcopy -SZ = $(PREFIX)size -endif -HEX = $(CP) -O ihex -BIN = $(CP) -O binary -S - -####################################### -# CFLAGS -####################################### -# cpu -CPU = -mcpu=cortex-m4 - -# fpu -FPU = -mfpu=fpv4-sp-d16 - -# float-abi -FLOAT-ABI = -mfloat-abi=hard - -# mcu -MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) - -# macros for gcc -# AS defines -AS_DEFS = - -# C defines -C_DEFS = \ --DUSE_HAL_DRIVER \ --DSTM32L496xx - - -# AS includes -AS_INCLUDES = - -# C includes -C_INCLUDES = \ --ICore/Inc \ --IDrivers/STM32L4xx_HAL_Driver/Inc \ --IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy \ --IDrivers/CMSIS/Device/ST/STM32L4xx/Include \ --IDrivers/CMSIS/Include - - -# compile gcc flags -ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections - -CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections - -ifeq ($(DEBUG), 1) -CFLAGS += -g -gdwarf-2 -endif - - -# Generate dependency information -CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" - - -####################################### -# LDFLAGS -####################################### -# link script -LDSCRIPT = STM32L496XX_FLASH.ld - -# libraries -LIBS = -lc -lm -lnosys -LIBDIR = -LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections - -# default action: build all -all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin - - -####################################### -# build the application -####################################### -# list of objects -OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) -vpath %.c $(sort $(dir $(C_SOURCES))) -# list of ASM program objects -OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) -vpath %.s $(sort $(dir $(ASM_SOURCES))) -OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASMM_SOURCES:.S=.o))) -vpath %.S $(sort $(dir $(ASMM_SOURCES))) - -$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) - $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ - -$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) - $(AS) -c $(CFLAGS) $< -o $@ -$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR) - $(AS) -c $(CFLAGS) $< -o $@ - -$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile - $(CC) $(OBJECTS) $(LDFLAGS) -o $@ - $(SZ) $@ - -$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) - $(HEX) $< $@ - -$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) - $(BIN) $< $@ - -$(BUILD_DIR): - mkdir $@ - -####################################### -# clean up -####################################### -clean: - -rm -fR $(BUILD_DIR) - -####################################### -# dependencies -####################################### --include $(wildcard $(BUILD_DIR)/*.d) - -# *** EOF *** +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [4.8.0-B50] date: [Thu Jan 08 14:51:02 PST 2026] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + +###################################### +# target +###################################### +TARGET = eps-bootstrap + + +###################################### +# building variables +###################################### +# debug build? +DEBUG = 1 +# optimization +OPT = -Og + + +####################################### +# paths +####################################### +# Build path +BUILD_DIR = build + +###################################### +# source +###################################### +# C sources +C_SOURCES = \ +Core/Src/main.c \ +Core/Src/gpio.c \ +Core/Src/adc.c \ +Core/Src/i2c.c \ +Core/Src/iwdg.c \ +Core/Src/usart.c \ +Core/Src/stm32l4xx_it.c \ +Core/Src/stm32l4xx_hal_msp.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c \ +Core/Src/system_stm32l4xx.c \ +Core/Src/sysmem.c \ +Core/Src/syscalls.c \ +Core/Src/dma.c \ +Core/Src/tim.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c \ +Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c + +# ASM sources +ASM_SOURCES = \ +startup_stm32l496xx.s + +# ASMM sources +ASMM_SOURCES = + + + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m4 + +# fpu +FPU = -mfpu=fpv4-sp-d16 + +# float-abi +FLOAT-ABI = -mfloat-abi=hard + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DUSE_HAL_DRIVER \ +-DSTM32L496xx + + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-ICore/Inc \ +-IDrivers/STM32L4xx_HAL_Driver/Inc \ +-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy \ +-IDrivers/CMSIS/Device/ST/STM32L4xx/Include \ +-IDrivers/CMSIS/Include + + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = STM32L496XX_FLASH.ld + +# libraries +LIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections + +# default action: build all +all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +vpath %.c $(sort $(dir $(C_SOURCES))) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASMM_SOURCES:.S=.o))) +vpath %.S $(sort $(dir $(ASMM_SOURCES))) + +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ +$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + +# *** EOF *** diff --git a/eps/firmware/bsp/startup/STM32L496XX_FLASH.ld b/eps/v1/firmware/bootstrap/STM32L496XX_FLASH.ld similarity index 96% rename from eps/firmware/bsp/startup/STM32L496XX_FLASH.ld rename to eps/v1/firmware/bootstrap/STM32L496XX_FLASH.ld index 169116a..21368c8 100644 --- a/eps/firmware/bsp/startup/STM32L496XX_FLASH.ld +++ b/eps/v1/firmware/bootstrap/STM32L496XX_FLASH.ld @@ -1,208 +1,208 @@ -/* -****************************************************************************** -** - -** File : LinkerScript.ld -** -** Author : STM32CubeMX -** -** Abstract : Linker script for STM32L496ZGTx series -** 1024Kbytes FLASH and 320Kbytes RAM -** -** Set heap size, stack size and stack location according -** to application requirements. -** -** Set memory bank area and size if external memory is used. -** -** Target : STMicroelectronics STM32 -** Distribution: The file is distributed “as is,” without any warranty -** of any kind. -** -***************************************************************************** -** @attention -** -**

© COPYRIGHT(c) 2025 STMicroelectronics

-** -** Redistribution and use in source and binary forms, with or without modification, -** are permitted provided that the following conditions are met: -** 1. Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** 2. Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** 3. Neither the name of STMicroelectronics nor the names of its contributors -** may 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. -** -***************************************************************************** -*/ - -/* Entry Point */ -ENTRY(Reset_Handler) - -/* Highest address of the user mode stack */ -_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ -/* Generate a link error if heap and stack don't fit into RAM */ -_Min_Heap_Size = 0x200; /* required amount of heap */ -_Min_Stack_Size = 0x400; /* required amount of stack */ - -/* Specify the memory areas */ -MEMORY -{ -RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 256K -RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 64K -FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K -} - -/* Define output sections */ -SECTIONS -{ - /* The startup code goes first into FLASH */ - .isr_vector : - { - . = ALIGN(8); - KEEP(*(.isr_vector)) /* Startup code */ - . = ALIGN(8); - } >FLASH - - /* The program code and other data goes into FLASH */ - .text : - { - . = ALIGN(8); - *(.text) /* .text sections (code) */ - *(.text*) /* .text* sections (code) */ - *(.glue_7) /* glue arm to thumb code */ - *(.glue_7t) /* glue thumb to arm code */ - *(.eh_frame) - - KEEP (*(.init)) - KEEP (*(.fini)) - - . = ALIGN(8); - _etext = .; /* define a global symbols at end of code */ - } >FLASH - - /* Constant data goes into FLASH */ - .rodata : - { - . = ALIGN(8); - *(.rodata) /* .rodata sections (constants, strings, etc.) */ - *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ - . = ALIGN(8); - } >FLASH - - .ARM.extab (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - { - . = ALIGN(8); - *(.ARM.extab* .gnu.linkonce.armextab.*) - . = ALIGN(8); - } >FLASH - - .ARM (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - { - . = ALIGN(8); - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - . = ALIGN(8); - } >FLASH - - .preinit_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - { - . = ALIGN(8); - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array*)) - PROVIDE_HIDDEN (__preinit_array_end = .); - . = ALIGN(8); - } >FLASH - - .init_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - { - . = ALIGN(8); - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT(.init_array.*))) - KEEP (*(.init_array*)) - PROVIDE_HIDDEN (__init_array_end = .); - . = ALIGN(8); - } >FLASH - - .fini_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - - { - . = ALIGN(8); - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP (*(SORT(.fini_array.*))) - KEEP (*(.fini_array*)) - PROVIDE_HIDDEN (__fini_array_end = .); - . = ALIGN(8); - } >FLASH - - /* used by the startup to initialize data */ - _sidata = LOADADDR(.data); - - /* Initialized data sections goes into RAM, load LMA copy after code */ - .data : - { - . = ALIGN(8); - _sdata = .; /* create a global symbol at data start */ - *(.data) /* .data sections */ - *(.data*) /* .data* sections */ - *(.RamFunc) /* .RamFunc sections */ - *(.RamFunc*) /* .RamFunc* sections */ - - . = ALIGN(8); - _edata = .; /* define a global symbol at data end */ - } >RAM AT> FLASH - - - /* Uninitialized data section */ - . = ALIGN(4); - .bss : - { - /* This is used by the startup in order to initialize the .bss secion */ - _sbss = .; /* define a global symbol at bss start */ - __bss_start__ = _sbss; - *(.bss) - *(.bss*) - *(COMMON) - - . = ALIGN(4); - _ebss = .; /* define a global symbol at bss end */ - __bss_end__ = _ebss; - } >RAM - - /* User_heap_stack section, used to check that there is enough RAM left */ - ._user_heap_stack : - { - . = ALIGN(8); - PROVIDE ( end = . ); - PROVIDE ( _end = . ); - . = . + _Min_Heap_Size; - . = . + _Min_Stack_Size; - . = ALIGN(8); - } >RAM - - - - /* Remove information from the standard libraries */ - /DISCARD/ : - { - libc.a ( * ) - libm.a ( * ) - libgcc.a ( * ) - } - -} - - +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : STM32CubeMX +** +** Abstract : Linker script for STM32L496ZGTx series +** 1024Kbytes FLASH and 320Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2025 STMicroelectronics

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of STMicroelectronics nor the names of its contributors +** may 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. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x200; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ +RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 256K +RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 64K +FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(8); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(8); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(8); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(8); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data goes into FLASH */ + .rodata : + { + . = ALIGN(8); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(8); + } >FLASH + + .ARM.extab (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(8); + *(.ARM.extab* .gnu.linkonce.armextab.*) + . = ALIGN(8); + } >FLASH + + .ARM (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(8); + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + . = ALIGN(8); + } >FLASH + + .preinit_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(8); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(8); + } >FLASH + + .init_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(8); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(8); + } >FLASH + + .fini_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + + { + . = ALIGN(8); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(8); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(8); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + *(.RamFunc) /* .RamFunc sections */ + *(.RamFunc*) /* .RamFunc* sections */ + + . = ALIGN(8); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + +} + + diff --git a/eps/firmware/bootstrap/eps-bootstrap.ioc b/eps/v1/firmware/bootstrap/eps-bootstrap.ioc similarity index 100% rename from eps/firmware/bootstrap/eps-bootstrap.ioc rename to eps/v1/firmware/bootstrap/eps-bootstrap.ioc diff --git a/eps/firmware/bootstrap/startup_stm32l496xx.s b/eps/v1/firmware/bootstrap/startup_stm32l496xx.s similarity index 100% rename from eps/firmware/bootstrap/startup_stm32l496xx.s rename to eps/v1/firmware/bootstrap/startup_stm32l496xx.s diff --git a/eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/stm32l496xx.h b/eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/stm32l496xx.h similarity index 100% rename from eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/stm32l496xx.h rename to eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/stm32l496xx.h diff --git a/eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/stm32l4xx.h b/eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/stm32l4xx.h similarity index 100% rename from eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/stm32l4xx.h rename to eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/stm32l4xx.h diff --git a/eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/system_stm32l4xx.h b/eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/system_stm32l4xx.h similarity index 100% rename from eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/system_stm32l4xx.h rename to eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/Include/system_stm32l4xx.h diff --git a/eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/LICENSE.txt b/eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/LICENSE.txt similarity index 100% rename from eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/LICENSE.txt rename to eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/LICENSE.txt diff --git a/eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/License.md b/eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/License.md similarity index 100% rename from eps/firmware/bsp/cmsis/Device/ST/STM32L4xx/License.md rename to eps/v1/firmware/bsp/cmsis/Device/ST/STM32L4xx/License.md diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h b/eps/v1/firmware/bsp/cmsis/Include/cmsis_armcc.h similarity index 96% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h rename to eps/v1/firmware/bsp/cmsis/Include/cmsis_armcc.h index da9d654..59f173a 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h +++ b/eps/v1/firmware/bsp/cmsis/Include/cmsis_armcc.h @@ -1,894 +1,894 @@ -/**************************************************************************//** - * @file cmsis_armcc.h - * @brief CMSIS compiler ARMCC (Arm Compiler 5) header file - * @version V5.1.0 - * @date 08. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __CMSIS_ARMCC_H -#define __CMSIS_ARMCC_H - - -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 400677) - #error "Please use Arm Compiler Toolchain V4.0.677 or later!" -#endif - -/* CMSIS compiler control architecture macros */ -#if ((defined (__TARGET_ARCH_6_M ) && (__TARGET_ARCH_6_M == 1)) || \ - (defined (__TARGET_ARCH_6S_M ) && (__TARGET_ARCH_6S_M == 1)) ) - #define __ARM_ARCH_6M__ 1 -#endif - -#if (defined (__TARGET_ARCH_7_M ) && (__TARGET_ARCH_7_M == 1)) - #define __ARM_ARCH_7M__ 1 -#endif - -#if (defined (__TARGET_ARCH_7E_M) && (__TARGET_ARCH_7E_M == 1)) - #define __ARM_ARCH_7EM__ 1 -#endif - - /* __ARM_ARCH_8M_BASE__ not applicable */ - /* __ARM_ARCH_8M_MAIN__ not applicable */ - -/* CMSIS compiler control DSP macros */ -#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - #define __ARM_FEATURE_DSP 1 -#endif - -/* CMSIS compiler specific defines */ -#ifndef __ASM - #define __ASM __asm -#endif -#ifndef __INLINE - #define __INLINE __inline -#endif -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static __inline -#endif -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE static __forceinline -#endif -#ifndef __NO_RETURN - #define __NO_RETURN __declspec(noreturn) -#endif -#ifndef __USED - #define __USED __attribute__((used)) -#endif -#ifndef __WEAK - #define __WEAK __attribute__((weak)) -#endif -#ifndef __PACKED - #define __PACKED __attribute__((packed)) -#endif -#ifndef __PACKED_STRUCT - #define __PACKED_STRUCT __packed struct -#endif -#ifndef __PACKED_UNION - #define __PACKED_UNION __packed union -#endif -#ifndef __UNALIGNED_UINT32 /* deprecated */ - #define __UNALIGNED_UINT32(x) (*((__packed uint32_t *)(x))) -#endif -#ifndef __UNALIGNED_UINT16_WRITE - #define __UNALIGNED_UINT16_WRITE(addr, val) ((*((__packed uint16_t *)(addr))) = (val)) -#endif -#ifndef __UNALIGNED_UINT16_READ - #define __UNALIGNED_UINT16_READ(addr) (*((const __packed uint16_t *)(addr))) -#endif -#ifndef __UNALIGNED_UINT32_WRITE - #define __UNALIGNED_UINT32_WRITE(addr, val) ((*((__packed uint32_t *)(addr))) = (val)) -#endif -#ifndef __UNALIGNED_UINT32_READ - #define __UNALIGNED_UINT32_READ(addr) (*((const __packed uint32_t *)(addr))) -#endif -#ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) -#endif -#ifndef __RESTRICT - #define __RESTRICT __restrict -#endif -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __memory_changed() -#endif - -/* ######################### Startup and Lowlevel Init ######################## */ - -#ifndef __PROGRAM_START -#define __PROGRAM_START __main -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __Vectors -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) -#endif - -/* ########################### Core Function Access ########################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions - @{ - */ - -/** - \brief Enable IRQ Interrupts - \details Enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __enable_irq(); */ - - -/** - \brief Disable IRQ Interrupts - \details Disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __disable_irq(); */ - -/** - \brief Get Control Register - \details Returns the content of the Control Register. - \return Control Register value - */ -__STATIC_INLINE uint32_t __get_CONTROL(void) -{ - register uint32_t __regControl __ASM("control"); - return(__regControl); -} - - -/** - \brief Set Control Register - \details Writes the given value to the Control Register. - \param [in] control Control Register value to set - */ -__STATIC_INLINE void __set_CONTROL(uint32_t control) -{ - register uint32_t __regControl __ASM("control"); - __regControl = control; -} - - -/** - \brief Get IPSR Register - \details Returns the content of the IPSR Register. - \return IPSR Register value - */ -__STATIC_INLINE uint32_t __get_IPSR(void) -{ - register uint32_t __regIPSR __ASM("ipsr"); - return(__regIPSR); -} - - -/** - \brief Get APSR Register - \details Returns the content of the APSR Register. - \return APSR Register value - */ -__STATIC_INLINE uint32_t __get_APSR(void) -{ - register uint32_t __regAPSR __ASM("apsr"); - return(__regAPSR); -} - - -/** - \brief Get xPSR Register - \details Returns the content of the xPSR Register. - \return xPSR Register value - */ -__STATIC_INLINE uint32_t __get_xPSR(void) -{ - register uint32_t __regXPSR __ASM("xpsr"); - return(__regXPSR); -} - - -/** - \brief Get Process Stack Pointer - \details Returns the current value of the Process Stack Pointer (PSP). - \return PSP Register value - */ -__STATIC_INLINE uint32_t __get_PSP(void) -{ - register uint32_t __regProcessStackPointer __ASM("psp"); - return(__regProcessStackPointer); -} - - -/** - \brief Set Process Stack Pointer - \details Assigns the given value to the Process Stack Pointer (PSP). - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) -{ - register uint32_t __regProcessStackPointer __ASM("psp"); - __regProcessStackPointer = topOfProcStack; -} - - -/** - \brief Get Main Stack Pointer - \details Returns the current value of the Main Stack Pointer (MSP). - \return MSP Register value - */ -__STATIC_INLINE uint32_t __get_MSP(void) -{ - register uint32_t __regMainStackPointer __ASM("msp"); - return(__regMainStackPointer); -} - - -/** - \brief Set Main Stack Pointer - \details Assigns the given value to the Main Stack Pointer (MSP). - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) -{ - register uint32_t __regMainStackPointer __ASM("msp"); - __regMainStackPointer = topOfMainStack; -} - - -/** - \brief Get Priority Mask - \details Returns the current state of the priority mask bit from the Priority Mask Register. - \return Priority Mask value - */ -__STATIC_INLINE uint32_t __get_PRIMASK(void) -{ - register uint32_t __regPriMask __ASM("primask"); - return(__regPriMask); -} - - -/** - \brief Set Priority Mask - \details Assigns the given value to the Priority Mask Register. - \param [in] priMask Priority Mask - */ -__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) -{ - register uint32_t __regPriMask __ASM("primask"); - __regPriMask = (priMask); -} - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - -/** - \brief Enable FIQ - \details Enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __enable_fault_irq __enable_fiq - - -/** - \brief Disable FIQ - \details Disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __disable_fault_irq __disable_fiq - - -/** - \brief Get Base Priority - \details Returns the current value of the Base Priority register. - \return Base Priority register value - */ -__STATIC_INLINE uint32_t __get_BASEPRI(void) -{ - register uint32_t __regBasePri __ASM("basepri"); - return(__regBasePri); -} - - -/** - \brief Set Base Priority - \details Assigns the given value to the Base Priority register. - \param [in] basePri Base Priority value to set - */ -__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) -{ - register uint32_t __regBasePri __ASM("basepri"); - __regBasePri = (basePri & 0xFFU); -} - - -/** - \brief Set Base Priority with condition - \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, - or the new value increases the BASEPRI priority level. - \param [in] basePri Base Priority value to set - */ -__STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri) -{ - register uint32_t __regBasePriMax __ASM("basepri_max"); - __regBasePriMax = (basePri & 0xFFU); -} - - -/** - \brief Get Fault Mask - \details Returns the current value of the Fault Mask register. - \return Fault Mask register value - */ -__STATIC_INLINE uint32_t __get_FAULTMASK(void) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - return(__regFaultMask); -} - - -/** - \brief Set Fault Mask - \details Assigns the given value to the Fault Mask register. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - __regFaultMask = (faultMask & (uint32_t)1U); -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ - - -/** - \brief Get FPSCR - \details Returns the current value of the Floating Point Status/Control register. - \return Floating Point Status/Control register value - */ -__STATIC_INLINE uint32_t __get_FPSCR(void) -{ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) - register uint32_t __regfpscr __ASM("fpscr"); - return(__regfpscr); -#else - return(0U); -#endif -} - - -/** - \brief Set FPSCR - \details Assigns the given value to the Floating Point Status/Control register. - \param [in] fpscr Floating Point Status/Control value to set - */ -__STATIC_INLINE void __set_FPSCR(uint32_t fpscr) -{ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) - register uint32_t __regfpscr __ASM("fpscr"); - __regfpscr = (fpscr); -#else - (void)fpscr; -#endif -} - - -/*@} end of CMSIS_Core_RegAccFunctions */ - - -/* ########################## Core Instruction Access ######################### */ -/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface - Access to dedicated instructions - @{ -*/ - -/** - \brief No Operation - \details No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP __nop - - -/** - \brief Wait For Interrupt - \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. - */ -#define __WFI __wfi - - -/** - \brief Wait For Event - \details Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -#define __WFE __wfe - - -/** - \brief Send Event - \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -#define __SEV __sev - - -/** - \brief Instruction Synchronization Barrier - \details Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or memory, - after the instruction has been completed. - */ -#define __ISB() do {\ - __schedule_barrier();\ - __isb(0xF);\ - __schedule_barrier();\ - } while (0U) - -/** - \brief Data Synchronization Barrier - \details Acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -#define __DSB() do {\ - __schedule_barrier();\ - __dsb(0xF);\ - __schedule_barrier();\ - } while (0U) - -/** - \brief Data Memory Barrier - \details Ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -#define __DMB() do {\ - __schedule_barrier();\ - __dmb(0xF);\ - __schedule_barrier();\ - } while (0U) - - -/** - \brief Reverse byte order (32 bit) - \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV __rev - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. - \param [in] value Value to reverse - \return Reversed value - */ -#ifndef __NO_EMBEDDED_ASM -__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) -{ - rev16 r0, r0 - bx lr -} -#endif - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. - \param [in] value Value to reverse - \return Reversed value - */ -#ifndef __NO_EMBEDDED_ASM -__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int16_t __REVSH(int16_t value) -{ - revsh r0, r0 - bx lr -} -#endif - - -/** - \brief Rotate Right in unsigned value (32 bit) - \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. - \param [in] op1 Value to rotate - \param [in] op2 Number of Bits to rotate - \return Rotated value - */ -#define __ROR __ror - - -/** - \brief Breakpoint - \details Causes the processor to enter Debug state. - Debug tools can use this to investigate system state when the instruction at a particular address is reached. - \param [in] value is ignored by the processor. - If required, a debugger can use it to store additional information about the breakpoint. - */ -#define __BKPT(value) __breakpoint(value) - - -/** - \brief Reverse bit order of value - \details Reverses the bit order of the given value. - \param [in] value Value to reverse - \return Reversed value - */ -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - #define __RBIT __rbit -#else -__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) -{ - uint32_t result; - uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ - - result = value; /* r will be reversed bits of v; first get LSB of v */ - for (value >>= 1U; value != 0U; value >>= 1U) - { - result <<= 1U; - result |= value & 1U; - s--; - } - result <<= s; /* shift when v's highest bits are zero */ - return result; -} -#endif - - -/** - \brief Count leading zeros - \details Counts the number of leading zeros of a data value. - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -#define __CLZ __clz - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - -/** - \brief LDR Exclusive (8 bit) - \details Executes a exclusive LDR instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr)) -#else - #define __LDREXB(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint8_t ) __ldrex(ptr)) _Pragma("pop") -#endif - - -/** - \brief LDR Exclusive (16 bit) - \details Executes a exclusive LDR instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __LDREXH(ptr) ((uint16_t) __ldrex(ptr)) -#else - #define __LDREXH(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint16_t) __ldrex(ptr)) _Pragma("pop") -#endif - - -/** - \brief LDR Exclusive (32 bit) - \details Executes a exclusive LDR instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr)) -#else - #define __LDREXW(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint32_t ) __ldrex(ptr)) _Pragma("pop") -#endif - - -/** - \brief STR Exclusive (8 bit) - \details Executes a exclusive STR instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __STREXB(value, ptr) __strex(value, ptr) -#else - #define __STREXB(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") -#endif - - -/** - \brief STR Exclusive (16 bit) - \details Executes a exclusive STR instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __STREXH(value, ptr) __strex(value, ptr) -#else - #define __STREXH(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") -#endif - - -/** - \brief STR Exclusive (32 bit) - \details Executes a exclusive STR instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) - #define __STREXW(value, ptr) __strex(value, ptr) -#else - #define __STREXW(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") -#endif - - -/** - \brief Remove the exclusive lock - \details Removes the exclusive lock which is created by LDREX. - */ -#define __CLREX __clrex - - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT __ssat - - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT __usat - - -/** - \brief Rotate Right with Extend (32 bit) - \details Moves each bit of a bitstring right by one bit. - The carry input is shifted in at the left end of the bitstring. - \param [in] value Value to rotate - \return Rotated value - */ -#ifndef __NO_EMBEDDED_ASM -__attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value) -{ - rrx r0, r0 - bx lr -} -#endif - - -/** - \brief LDRT Unprivileged (8 bit) - \details Executes a Unprivileged LDRT instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDRBT(ptr) ((uint8_t ) __ldrt(ptr)) - - -/** - \brief LDRT Unprivileged (16 bit) - \details Executes a Unprivileged LDRT instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDRHT(ptr) ((uint16_t) __ldrt(ptr)) - - -/** - \brief LDRT Unprivileged (32 bit) - \details Executes a Unprivileged LDRT instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDRT(ptr) ((uint32_t ) __ldrt(ptr)) - - -/** - \brief STRT Unprivileged (8 bit) - \details Executes a Unprivileged STRT instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -#define __STRBT(value, ptr) __strt(value, ptr) - - -/** - \brief STRT Unprivileged (16 bit) - \details Executes a Unprivileged STRT instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -#define __STRHT(value, ptr) __strt(value, ptr) - - -/** - \brief STRT Unprivileged (32 bit) - \details Executes a Unprivileged STRT instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -#define __STRT(value, ptr) __strt(value, ptr) - -#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -__attribute__((always_inline)) __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) -{ - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; -} - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -__attribute__((always_inline)) __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) -{ - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ - -/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ - - -/* ################### Compiler specific Intrinsics ########################### */ -/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics - Access to dedicated SIMD instructions - @{ -*/ - -#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) - -#define __SADD8 __sadd8 -#define __QADD8 __qadd8 -#define __SHADD8 __shadd8 -#define __UADD8 __uadd8 -#define __UQADD8 __uqadd8 -#define __UHADD8 __uhadd8 -#define __SSUB8 __ssub8 -#define __QSUB8 __qsub8 -#define __SHSUB8 __shsub8 -#define __USUB8 __usub8 -#define __UQSUB8 __uqsub8 -#define __UHSUB8 __uhsub8 -#define __SADD16 __sadd16 -#define __QADD16 __qadd16 -#define __SHADD16 __shadd16 -#define __UADD16 __uadd16 -#define __UQADD16 __uqadd16 -#define __UHADD16 __uhadd16 -#define __SSUB16 __ssub16 -#define __QSUB16 __qsub16 -#define __SHSUB16 __shsub16 -#define __USUB16 __usub16 -#define __UQSUB16 __uqsub16 -#define __UHSUB16 __uhsub16 -#define __SASX __sasx -#define __QASX __qasx -#define __SHASX __shasx -#define __UASX __uasx -#define __UQASX __uqasx -#define __UHASX __uhasx -#define __SSAX __ssax -#define __QSAX __qsax -#define __SHSAX __shsax -#define __USAX __usax -#define __UQSAX __uqsax -#define __UHSAX __uhsax -#define __USAD8 __usad8 -#define __USADA8 __usada8 -#define __SSAT16 __ssat16 -#define __USAT16 __usat16 -#define __UXTB16 __uxtb16 -#define __UXTAB16 __uxtab16 -#define __SXTB16 __sxtb16 -#define __SXTAB16 __sxtab16 -#define __SMUAD __smuad -#define __SMUADX __smuadx -#define __SMLAD __smlad -#define __SMLADX __smladx -#define __SMLALD __smlald -#define __SMLALDX __smlaldx -#define __SMUSD __smusd -#define __SMUSDX __smusdx -#define __SMLSD __smlsd -#define __SMLSDX __smlsdx -#define __SMLSLD __smlsld -#define __SMLSLDX __smlsldx -#define __SEL __sel -#define __QADD __qadd -#define __QSUB __qsub - -#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ - ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) - -#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ - ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) - -#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \ - ((int64_t)(ARG3) << 32U) ) >> 32U)) - -#endif /* ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ -/*@} end of group CMSIS_SIMD_intrinsics */ - - -#endif /* __CMSIS_ARMCC_H */ +/**************************************************************************//** + * @file cmsis_armcc.h + * @brief CMSIS compiler ARMCC (Arm Compiler 5) header file + * @version V5.1.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_ARMCC_H +#define __CMSIS_ARMCC_H + + +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 400677) + #error "Please use Arm Compiler Toolchain V4.0.677 or later!" +#endif + +/* CMSIS compiler control architecture macros */ +#if ((defined (__TARGET_ARCH_6_M ) && (__TARGET_ARCH_6_M == 1)) || \ + (defined (__TARGET_ARCH_6S_M ) && (__TARGET_ARCH_6S_M == 1)) ) + #define __ARM_ARCH_6M__ 1 +#endif + +#if (defined (__TARGET_ARCH_7_M ) && (__TARGET_ARCH_7_M == 1)) + #define __ARM_ARCH_7M__ 1 +#endif + +#if (defined (__TARGET_ARCH_7E_M) && (__TARGET_ARCH_7E_M == 1)) + #define __ARM_ARCH_7EM__ 1 +#endif + + /* __ARM_ARCH_8M_BASE__ not applicable */ + /* __ARM_ARCH_8M_MAIN__ not applicable */ + +/* CMSIS compiler control DSP macros */ +#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + #define __ARM_FEATURE_DSP 1 +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE static __forceinline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __declspec(noreturn) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed)) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT __packed struct +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION __packed union +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #define __UNALIGNED_UINT32(x) (*((__packed uint32_t *)(x))) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #define __UNALIGNED_UINT16_WRITE(addr, val) ((*((__packed uint16_t *)(addr))) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #define __UNALIGNED_UINT16_READ(addr) (*((const __packed uint16_t *)(addr))) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #define __UNALIGNED_UINT32_WRITE(addr, val) ((*((__packed uint32_t *)(addr))) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #define __UNALIGNED_UINT32_READ(addr) (*((const __packed uint32_t *)(addr))) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __memory_changed() +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START +#define __PROGRAM_START __main +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); */ + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_INLINE uint32_t __get_CONTROL(void) +{ + register uint32_t __regControl __ASM("control"); + return(__regControl); +} + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + register uint32_t __regControl __ASM("control"); + __regControl = control; +} + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_INLINE uint32_t __get_IPSR(void) +{ + register uint32_t __regIPSR __ASM("ipsr"); + return(__regIPSR); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_INLINE uint32_t __get_APSR(void) +{ + register uint32_t __regAPSR __ASM("apsr"); + return(__regAPSR); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_INLINE uint32_t __get_xPSR(void) +{ + register uint32_t __regXPSR __ASM("xpsr"); + return(__regXPSR); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + return(__regProcessStackPointer); +} + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + __regProcessStackPointer = topOfProcStack; +} + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + return(__regMainStackPointer); +} + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + __regMainStackPointer = topOfMainStack; +} + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + register uint32_t __regPriMask __ASM("primask"); + return(__regPriMask); +} + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + register uint32_t __regPriMask __ASM("primask"); + __regPriMask = (priMask); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + register uint32_t __regBasePri __ASM("basepri"); + return(__regBasePri); +} + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) +{ + register uint32_t __regBasePri __ASM("basepri"); + __regBasePri = (basePri & 0xFFU); +} + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + register uint32_t __regBasePriMax __ASM("basepri_max"); + __regBasePriMax = (basePri & 0xFFU); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + return(__regFaultMask); +} + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + __regFaultMask = (faultMask & (uint32_t)1U); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + register uint32_t __regfpscr __ASM("fpscr"); + return(__regfpscr); +#else + return(0U); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + register uint32_t __regfpscr __ASM("fpscr"); + __regfpscr = (fpscr); +#else + (void)fpscr; +#endif +} + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __nop + + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() do {\ + __schedule_barrier();\ + __isb(0xF);\ + __schedule_barrier();\ + } while (0U) + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() do {\ + __schedule_barrier();\ + __dsb(0xF);\ + __schedule_barrier();\ + } while (0U) + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() do {\ + __schedule_barrier();\ + __dmb(0xF);\ + __schedule_barrier();\ + } while (0U) + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV __rev + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) +{ + rev16 r0, r0 + bx lr +} +#endif + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int16_t __REVSH(int16_t value) +{ + revsh r0, r0 + bx lr +} +#endif + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +#define __ROR __ror + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __breakpoint(value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + #define __RBIT __rbit +#else +__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ + return result; +} +#endif + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +#define __CLZ __clz + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr)) +#else + #define __LDREXB(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint8_t ) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXH(ptr) ((uint16_t) __ldrex(ptr)) +#else + #define __LDREXH(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint16_t) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr)) +#else + #define __LDREXW(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint32_t ) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXB(value, ptr) __strex(value, ptr) +#else + #define __STREXB(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXH(value, ptr) __strex(value, ptr) +#else + #define __STREXH(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXW(value, ptr) __strex(value, ptr) +#else + #define __STREXW(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __clrex + + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value) +{ + rrx r0, r0 + bx lr +} +#endif + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDRBT(ptr) ((uint8_t ) __ldrt(ptr)) + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDRHT(ptr) ((uint16_t) __ldrt(ptr)) + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDRT(ptr) ((uint32_t ) __ldrt(ptr)) + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRBT(value, ptr) __strt(value, ptr) + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRHT(value, ptr) __strt(value, ptr) + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRT(value, ptr) __strt(value, ptr) + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__attribute__((always_inline)) __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +#define __SADD8 __sadd8 +#define __QADD8 __qadd8 +#define __SHADD8 __shadd8 +#define __UADD8 __uadd8 +#define __UQADD8 __uqadd8 +#define __UHADD8 __uhadd8 +#define __SSUB8 __ssub8 +#define __QSUB8 __qsub8 +#define __SHSUB8 __shsub8 +#define __USUB8 __usub8 +#define __UQSUB8 __uqsub8 +#define __UHSUB8 __uhsub8 +#define __SADD16 __sadd16 +#define __QADD16 __qadd16 +#define __SHADD16 __shadd16 +#define __UADD16 __uadd16 +#define __UQADD16 __uqadd16 +#define __UHADD16 __uhadd16 +#define __SSUB16 __ssub16 +#define __QSUB16 __qsub16 +#define __SHSUB16 __shsub16 +#define __USUB16 __usub16 +#define __UQSUB16 __uqsub16 +#define __UHSUB16 __uhsub16 +#define __SASX __sasx +#define __QASX __qasx +#define __SHASX __shasx +#define __UASX __uasx +#define __UQASX __uqasx +#define __UHASX __uhasx +#define __SSAX __ssax +#define __QSAX __qsax +#define __SHSAX __shsax +#define __USAX __usax +#define __UQSAX __uqsax +#define __UHSAX __uhsax +#define __USAD8 __usad8 +#define __USADA8 __usada8 +#define __SSAT16 __ssat16 +#define __USAT16 __usat16 +#define __UXTB16 __uxtb16 +#define __UXTAB16 __uxtab16 +#define __SXTB16 __sxtb16 +#define __SXTAB16 __sxtab16 +#define __SMUAD __smuad +#define __SMUADX __smuadx +#define __SMLAD __smlad +#define __SMLADX __smladx +#define __SMLALD __smlald +#define __SMLALDX __smlaldx +#define __SMUSD __smusd +#define __SMUSDX __smusdx +#define __SMLSD __smlsd +#define __SMLSDX __smlsdx +#define __SMLSLD __smlsld +#define __SMLSLDX __smlsldx +#define __SEL __sel +#define __QADD __qadd +#define __QSUB __qsub + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \ + ((int64_t)(ARG3) << 32U) ) >> 32U)) + +#endif /* ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCC_H */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h b/eps/v1/firmware/bsp/cmsis/Include/cmsis_armclang.h similarity index 96% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h rename to eps/v1/firmware/bsp/cmsis/Include/cmsis_armclang.h index 478f75b..e917f35 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h +++ b/eps/v1/firmware/bsp/cmsis/Include/cmsis_armclang.h @@ -1,1444 +1,1444 @@ -/**************************************************************************//** - * @file cmsis_armclang.h - * @brief CMSIS compiler armclang (Arm Compiler 6) header file - * @version V5.2.0 - * @date 08. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ - -#ifndef __CMSIS_ARMCLANG_H -#define __CMSIS_ARMCLANG_H - -#pragma clang system_header /* treat file as system include file */ - -#ifndef __ARM_COMPAT_H -#include /* Compatibility header for Arm Compiler 5 intrinsics */ -#endif - -/* CMSIS compiler specific defines */ -#ifndef __ASM - #define __ASM __asm -#endif -#ifndef __INLINE - #define __INLINE __inline -#endif -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static __inline -#endif -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline -#endif -#ifndef __NO_RETURN - #define __NO_RETURN __attribute__((__noreturn__)) -#endif -#ifndef __USED - #define __USED __attribute__((used)) -#endif -#ifndef __WEAK - #define __WEAK __attribute__((weak)) -#endif -#ifndef __PACKED - #define __PACKED __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_UNION - #define __PACKED_UNION union __attribute__((packed, aligned(1))) -#endif -#ifndef __UNALIGNED_UINT32 /* deprecated */ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ - struct __attribute__((packed)) T_UINT32 { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) -#endif -#ifndef __UNALIGNED_UINT16_WRITE - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT16_READ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) -#endif -#ifndef __UNALIGNED_UINT32_WRITE - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT32_READ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) -#endif -#ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) -#endif -#ifndef __RESTRICT - #define __RESTRICT __restrict -#endif -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __ASM volatile("":::"memory") -#endif - -/* ######################### Startup and Lowlevel Init ######################## */ - -#ifndef __PROGRAM_START -#define __PROGRAM_START __main -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __Vectors -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) -#endif - -/* ########################### Core Function Access ########################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions - @{ - */ - -/** - \brief Enable IRQ Interrupts - \details Enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __enable_irq(); see arm_compat.h */ - - -/** - \brief Disable IRQ Interrupts - \details Disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __disable_irq(); see arm_compat.h */ - - -/** - \brief Get Control Register - \details Returns the content of the Control Register. - \return Control Register value - */ -__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Control Register (non-secure) - \details Returns the content of the non-secure Control Register when in secure mode. - \return non-secure Control Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Control Register - \details Writes the given value to the Control Register. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) -{ - __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Control Register (non-secure) - \details Writes the given value to the non-secure Control Register when in secure state. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) -{ - __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); -} -#endif - - -/** - \brief Get IPSR Register - \details Returns the content of the IPSR Register. - \return IPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_IPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get APSR Register - \details Returns the content of the APSR Register. - \return APSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_APSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, apsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get xPSR Register - \details Returns the content of the xPSR Register. - \return xPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_xPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get Process Stack Pointer - \details Returns the current value of the Process Stack Pointer (PSP). - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer (non-secure) - \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Process Stack Pointer - \details Assigns the given value to the Process Stack Pointer (PSP). - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); -} -#endif - - -/** - \brief Get Main Stack Pointer - \details Returns the current value of the Main Stack Pointer (MSP). - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer (non-secure) - \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Main Stack Pointer - \details Assigns the given value to the Main Stack Pointer (MSP). - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); -} -#endif - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Stack Pointer (non-secure) - \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. - \return SP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); - return(result); -} - - -/** - \brief Set Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. - \param [in] topOfStack Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) -{ - __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); -} -#endif - - -/** - \brief Get Priority Mask - \details Returns the current state of the priority mask bit from the Priority Mask Register. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Priority Mask (non-secure) - \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Priority Mask - \details Assigns the given value to the Priority Mask Register. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) -{ - __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Priority Mask (non-secure) - \details Assigns the given value to the non-secure Priority Mask Register when in secure state. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) -{ - __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); -} -#endif - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) -/** - \brief Enable FIQ - \details Enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ - - -/** - \brief Disable FIQ - \details Disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ - - -/** - \brief Get Base Priority - \details Returns the current value of the Base Priority register. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Base Priority (non-secure) - \details Returns the current value of the non-secure Base Priority register when in secure state. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Base Priority - \details Assigns the given value to the Base Priority register. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) -{ - __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Base Priority (non-secure) - \details Assigns the given value to the non-secure Base Priority register when in secure state. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); -} -#endif - - -/** - \brief Set Base Priority with condition - \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, - or the new value increases the BASEPRI priority level. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); -} - - -/** - \brief Get Fault Mask - \details Returns the current value of the Fault Mask register. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Fault Mask (non-secure) - \details Returns the current value of the non-secure Fault Mask register when in secure state. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Fault Mask - \details Assigns the given value to the Fault Mask register. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Fault Mask (non-secure) - \details Assigns the given value to the non-secure Fault Mask register when in secure state. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); -} -#endif - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - -/** - \brief Get Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim" : "=r" (result) ); - return result; -#endif -} - -#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); -#endif -} -#endif - - -/** - \brief Get Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim" : "=r" (result) ); - return result; -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). - \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. - \param [in] MainStackPtrLimit Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); -#endif -} -#endif - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/** - \brief Get FPSCR - \details Returns the current value of the Floating Point Status/Control register. - \return Floating Point Status/Control register value - */ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr -#else -#define __get_FPSCR() ((uint32_t)0U) -#endif - -/** - \brief Set FPSCR - \details Assigns the given value to the Floating Point Status/Control register. - \param [in] fpscr Floating Point Status/Control value to set - */ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#define __set_FPSCR __builtin_arm_set_fpscr -#else -#define __set_FPSCR(x) ((void)(x)) -#endif - - -/*@} end of CMSIS_Core_RegAccFunctions */ - - -/* ########################## Core Instruction Access ######################### */ -/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface - Access to dedicated instructions - @{ -*/ - -/* Define macros for porting to both thumb1 and thumb2. - * For thumb1, use low register (r0-r7), specified by constraint "l" - * Otherwise, use general registers, specified by constraint "r" */ -#if defined (__thumb__) && !defined (__thumb2__) -#define __CMSIS_GCC_OUT_REG(r) "=l" (r) -#define __CMSIS_GCC_RW_REG(r) "+l" (r) -#define __CMSIS_GCC_USE_REG(r) "l" (r) -#else -#define __CMSIS_GCC_OUT_REG(r) "=r" (r) -#define __CMSIS_GCC_RW_REG(r) "+r" (r) -#define __CMSIS_GCC_USE_REG(r) "r" (r) -#endif - -/** - \brief No Operation - \details No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP __builtin_arm_nop - -/** - \brief Wait For Interrupt - \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. - */ -#define __WFI __builtin_arm_wfi - - -/** - \brief Wait For Event - \details Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -#define __WFE __builtin_arm_wfe - - -/** - \brief Send Event - \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -#define __SEV __builtin_arm_sev - - -/** - \brief Instruction Synchronization Barrier - \details Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or memory, - after the instruction has been completed. - */ -#define __ISB() __builtin_arm_isb(0xF) - -/** - \brief Data Synchronization Barrier - \details Acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -#define __DSB() __builtin_arm_dsb(0xF) - - -/** - \brief Data Memory Barrier - \details Ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -#define __DMB() __builtin_arm_dmb(0xF) - - -/** - \brief Reverse byte order (32 bit) - \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV(value) __builtin_bswap32(value) - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV16(value) __ROR(__REV(value), 16) - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REVSH(value) (int16_t)__builtin_bswap16(value) - - -/** - \brief Rotate Right in unsigned value (32 bit) - \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. - \param [in] op1 Value to rotate - \param [in] op2 Number of Bits to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) -{ - op2 %= 32U; - if (op2 == 0U) - { - return op1; - } - return (op1 >> op2) | (op1 << (32U - op2)); -} - - -/** - \brief Breakpoint - \details Causes the processor to enter Debug state. - Debug tools can use this to investigate system state when the instruction at a particular address is reached. - \param [in] value is ignored by the processor. - If required, a debugger can use it to store additional information about the breakpoint. - */ -#define __BKPT(value) __ASM volatile ("bkpt "#value) - - -/** - \brief Reverse bit order of value - \details Reverses the bit order of the given value. - \param [in] value Value to reverse - \return Reversed value - */ -#define __RBIT __builtin_arm_rbit - -/** - \brief Count leading zeros - \details Counts the number of leading zeros of a data value. - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) -{ - /* Even though __builtin_clz produces a CLZ instruction on ARM, formally - __builtin_clz(0) is undefined behaviour, so handle this case specially. - This guarantees ARM-compatible results if happening to compile on a non-ARM - target, and ensures the compiler doesn't decide to activate any - optimisations using the logic "value was passed to __builtin_clz, so it - is non-zero". - ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a - single CLZ instruction. - */ - if (value == 0U) - { - return 32U; - } - return __builtin_clz(value); -} - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief LDR Exclusive (8 bit) - \details Executes a exclusive LDR instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDREXB (uint8_t)__builtin_arm_ldrex - - -/** - \brief LDR Exclusive (16 bit) - \details Executes a exclusive LDR instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDREXH (uint16_t)__builtin_arm_ldrex - - -/** - \brief LDR Exclusive (32 bit) - \details Executes a exclusive LDR instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDREXW (uint32_t)__builtin_arm_ldrex - - -/** - \brief STR Exclusive (8 bit) - \details Executes a exclusive STR instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXB (uint32_t)__builtin_arm_strex - - -/** - \brief STR Exclusive (16 bit) - \details Executes a exclusive STR instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXH (uint32_t)__builtin_arm_strex - - -/** - \brief STR Exclusive (32 bit) - \details Executes a exclusive STR instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXW (uint32_t)__builtin_arm_strex - - -/** - \brief Remove the exclusive lock - \details Removes the exclusive lock which is created by LDREX. - */ -#define __CLREX __builtin_arm_clrex - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT __builtin_arm_ssat - - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT __builtin_arm_usat - - -/** - \brief Rotate Right with Extend (32 bit) - \details Moves each bit of a bitstring right by one bit. - The carry input is shifted in at the left end of the bitstring. - \param [in] value Value to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return(result); -} - - -/** - \brief LDRT Unprivileged (8 bit) - \details Executes a Unprivileged LDRT instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (16 bit) - \details Executes a Unprivileged LDRT instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (32 bit) - \details Executes a Unprivileged LDRT instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief STRT Unprivileged (8 bit) - \details Executes a Unprivileged STRT instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (16 bit) - \details Executes a Unprivileged STRT instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (32 bit) - \details Executes a Unprivileged STRT instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); -} - -#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) -{ - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; -} - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) -{ - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief Load-Acquire (8 bit) - \details Executes a LDAB instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); -} - - -/** - \brief Load-Acquire (16 bit) - \details Executes a LDAH instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); -} - - -/** - \brief Load-Acquire (32 bit) - \details Executes a LDA instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief Store-Release (8 bit) - \details Executes a STLB instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (16 bit) - \details Executes a STLH instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (32 bit) - \details Executes a STL instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Load-Acquire Exclusive (8 bit) - \details Executes a LDAB exclusive instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDAEXB (uint8_t)__builtin_arm_ldaex - - -/** - \brief Load-Acquire Exclusive (16 bit) - \details Executes a LDAH exclusive instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDAEXH (uint16_t)__builtin_arm_ldaex - - -/** - \brief Load-Acquire Exclusive (32 bit) - \details Executes a LDA exclusive instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDAEX (uint32_t)__builtin_arm_ldaex - - -/** - \brief Store-Release Exclusive (8 bit) - \details Executes a STLB exclusive instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEXB (uint32_t)__builtin_arm_stlex - - -/** - \brief Store-Release Exclusive (16 bit) - \details Executes a STLH exclusive instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEXH (uint32_t)__builtin_arm_stlex - - -/** - \brief Store-Release Exclusive (32 bit) - \details Executes a STL exclusive instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEX (uint32_t)__builtin_arm_stlex - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ - - -/* ################### Compiler specific Intrinsics ########################### */ -/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics - Access to dedicated SIMD instructions - @{ -*/ - -#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) - -#define __SADD8 __builtin_arm_sadd8 -#define __QADD8 __builtin_arm_qadd8 -#define __SHADD8 __builtin_arm_shadd8 -#define __UADD8 __builtin_arm_uadd8 -#define __UQADD8 __builtin_arm_uqadd8 -#define __UHADD8 __builtin_arm_uhadd8 -#define __SSUB8 __builtin_arm_ssub8 -#define __QSUB8 __builtin_arm_qsub8 -#define __SHSUB8 __builtin_arm_shsub8 -#define __USUB8 __builtin_arm_usub8 -#define __UQSUB8 __builtin_arm_uqsub8 -#define __UHSUB8 __builtin_arm_uhsub8 -#define __SADD16 __builtin_arm_sadd16 -#define __QADD16 __builtin_arm_qadd16 -#define __SHADD16 __builtin_arm_shadd16 -#define __UADD16 __builtin_arm_uadd16 -#define __UQADD16 __builtin_arm_uqadd16 -#define __UHADD16 __builtin_arm_uhadd16 -#define __SSUB16 __builtin_arm_ssub16 -#define __QSUB16 __builtin_arm_qsub16 -#define __SHSUB16 __builtin_arm_shsub16 -#define __USUB16 __builtin_arm_usub16 -#define __UQSUB16 __builtin_arm_uqsub16 -#define __UHSUB16 __builtin_arm_uhsub16 -#define __SASX __builtin_arm_sasx -#define __QASX __builtin_arm_qasx -#define __SHASX __builtin_arm_shasx -#define __UASX __builtin_arm_uasx -#define __UQASX __builtin_arm_uqasx -#define __UHASX __builtin_arm_uhasx -#define __SSAX __builtin_arm_ssax -#define __QSAX __builtin_arm_qsax -#define __SHSAX __builtin_arm_shsax -#define __USAX __builtin_arm_usax -#define __UQSAX __builtin_arm_uqsax -#define __UHSAX __builtin_arm_uhsax -#define __USAD8 __builtin_arm_usad8 -#define __USADA8 __builtin_arm_usada8 -#define __SSAT16 __builtin_arm_ssat16 -#define __USAT16 __builtin_arm_usat16 -#define __UXTB16 __builtin_arm_uxtb16 -#define __UXTAB16 __builtin_arm_uxtab16 -#define __SXTB16 __builtin_arm_sxtb16 -#define __SXTAB16 __builtin_arm_sxtab16 -#define __SMUAD __builtin_arm_smuad -#define __SMUADX __builtin_arm_smuadx -#define __SMLAD __builtin_arm_smlad -#define __SMLADX __builtin_arm_smladx -#define __SMLALD __builtin_arm_smlald -#define __SMLALDX __builtin_arm_smlaldx -#define __SMUSD __builtin_arm_smusd -#define __SMUSDX __builtin_arm_smusdx -#define __SMLSD __builtin_arm_smlsd -#define __SMLSDX __builtin_arm_smlsdx -#define __SMLSLD __builtin_arm_smlsld -#define __SMLSLDX __builtin_arm_smlsldx -#define __SEL __builtin_arm_sel -#define __QADD __builtin_arm_qadd -#define __QSUB __builtin_arm_qsub - -#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ - ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) - -#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ - ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) - -__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) -{ - int32_t result; - - __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#endif /* (__ARM_FEATURE_DSP == 1) */ -/*@} end of group CMSIS_SIMD_intrinsics */ - - -#endif /* __CMSIS_ARMCLANG_H */ +/**************************************************************************//** + * @file cmsis_armclang.h + * @brief CMSIS compiler armclang (Arm Compiler 6) header file + * @version V5.2.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ + +#ifndef __CMSIS_ARMCLANG_H +#define __CMSIS_ARMCLANG_H + +#pragma clang system_header /* treat file as system include file */ + +#ifndef __ARM_COMPAT_H +#include /* Compatibility header for Arm Compiler 5 intrinsics */ +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START +#define __PROGRAM_START __main +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); see arm_compat.h */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); see arm_compat.h */ + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr +#else +#define __get_FPSCR() ((uint32_t)0U) +#endif + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __set_FPSCR __builtin_arm_set_fpscr +#else +#define __set_FPSCR(x) ((void)(x)) +#endif + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_RW_REG(r) "+l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_RW_REG(r) "+r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __builtin_arm_nop + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __builtin_arm_wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __builtin_arm_wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __builtin_arm_sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() __builtin_arm_isb(0xF) + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __builtin_arm_dsb(0xF) + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __builtin_arm_dmb(0xF) + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV(value) __builtin_bswap32(value) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV16(value) __ROR(__REV(value), 16) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REVSH(value) (int16_t)__builtin_bswap16(value) + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __builtin_arm_rbit + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDREXB (uint8_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDREXH (uint16_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDREXW (uint32_t)__builtin_arm_ldrex + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXB (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXH (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXW (uint32_t)__builtin_arm_strex + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __builtin_arm_clrex + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __builtin_arm_ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __builtin_arm_usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDAEXB (uint8_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDAEXH (uint16_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDAEX (uint32_t)__builtin_arm_ldaex + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXB (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXH (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEX (uint32_t)__builtin_arm_stlex + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +#define __SADD8 __builtin_arm_sadd8 +#define __QADD8 __builtin_arm_qadd8 +#define __SHADD8 __builtin_arm_shadd8 +#define __UADD8 __builtin_arm_uadd8 +#define __UQADD8 __builtin_arm_uqadd8 +#define __UHADD8 __builtin_arm_uhadd8 +#define __SSUB8 __builtin_arm_ssub8 +#define __QSUB8 __builtin_arm_qsub8 +#define __SHSUB8 __builtin_arm_shsub8 +#define __USUB8 __builtin_arm_usub8 +#define __UQSUB8 __builtin_arm_uqsub8 +#define __UHSUB8 __builtin_arm_uhsub8 +#define __SADD16 __builtin_arm_sadd16 +#define __QADD16 __builtin_arm_qadd16 +#define __SHADD16 __builtin_arm_shadd16 +#define __UADD16 __builtin_arm_uadd16 +#define __UQADD16 __builtin_arm_uqadd16 +#define __UHADD16 __builtin_arm_uhadd16 +#define __SSUB16 __builtin_arm_ssub16 +#define __QSUB16 __builtin_arm_qsub16 +#define __SHSUB16 __builtin_arm_shsub16 +#define __USUB16 __builtin_arm_usub16 +#define __UQSUB16 __builtin_arm_uqsub16 +#define __UHSUB16 __builtin_arm_uhsub16 +#define __SASX __builtin_arm_sasx +#define __QASX __builtin_arm_qasx +#define __SHASX __builtin_arm_shasx +#define __UASX __builtin_arm_uasx +#define __UQASX __builtin_arm_uqasx +#define __UHASX __builtin_arm_uhasx +#define __SSAX __builtin_arm_ssax +#define __QSAX __builtin_arm_qsax +#define __SHSAX __builtin_arm_shsax +#define __USAX __builtin_arm_usax +#define __UQSAX __builtin_arm_uqsax +#define __UHSAX __builtin_arm_uhsax +#define __USAD8 __builtin_arm_usad8 +#define __USADA8 __builtin_arm_usada8 +#define __SSAT16 __builtin_arm_ssat16 +#define __USAT16 __builtin_arm_usat16 +#define __UXTB16 __builtin_arm_uxtb16 +#define __UXTAB16 __builtin_arm_uxtab16 +#define __SXTB16 __builtin_arm_sxtb16 +#define __SXTAB16 __builtin_arm_sxtab16 +#define __SMUAD __builtin_arm_smuad +#define __SMUADX __builtin_arm_smuadx +#define __SMLAD __builtin_arm_smlad +#define __SMLADX __builtin_arm_smladx +#define __SMLALD __builtin_arm_smlald +#define __SMLALDX __builtin_arm_smlaldx +#define __SMUSD __builtin_arm_smusd +#define __SMUSDX __builtin_arm_smusdx +#define __SMLSD __builtin_arm_smlsd +#define __SMLSDX __builtin_arm_smlsdx +#define __SMLSLD __builtin_arm_smlsld +#define __SMLSLDX __builtin_arm_smlsldx +#define __SEL __builtin_arm_sel +#define __QADD __builtin_arm_qadd +#define __QSUB __builtin_arm_qsub + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCLANG_H */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h b/eps/v1/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h similarity index 96% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h rename to eps/v1/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h index 1b5a965..feec324 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h +++ b/eps/v1/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h @@ -1,1891 +1,1891 @@ -/**************************************************************************//** - * @file cmsis_armclang_ltm.h - * @brief CMSIS compiler armclang (Arm Compiler 6) header file - * @version V1.2.0 - * @date 08. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2018-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ - -#ifndef __CMSIS_ARMCLANG_H -#define __CMSIS_ARMCLANG_H - -#pragma clang system_header /* treat file as system include file */ - -#ifndef __ARM_COMPAT_H -#include /* Compatibility header for Arm Compiler 5 intrinsics */ -#endif - -/* CMSIS compiler specific defines */ -#ifndef __ASM - #define __ASM __asm -#endif -#ifndef __INLINE - #define __INLINE __inline -#endif -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static __inline -#endif -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline -#endif -#ifndef __NO_RETURN - #define __NO_RETURN __attribute__((__noreturn__)) -#endif -#ifndef __USED - #define __USED __attribute__((used)) -#endif -#ifndef __WEAK - #define __WEAK __attribute__((weak)) -#endif -#ifndef __PACKED - #define __PACKED __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_UNION - #define __PACKED_UNION union __attribute__((packed, aligned(1))) -#endif -#ifndef __UNALIGNED_UINT32 /* deprecated */ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ - struct __attribute__((packed)) T_UINT32 { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) -#endif -#ifndef __UNALIGNED_UINT16_WRITE - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT16_READ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) -#endif -#ifndef __UNALIGNED_UINT32_WRITE - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT32_READ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpacked" -/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #pragma clang diagnostic pop - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) -#endif -#ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) -#endif -#ifndef __RESTRICT - #define __RESTRICT __restrict -#endif -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __ASM volatile("":::"memory") -#endif - -/* ######################### Startup and Lowlevel Init ######################## */ - -#ifndef __PROGRAM_START -#define __PROGRAM_START __main -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __Vectors -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) -#endif - - -/* ########################### Core Function Access ########################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions - @{ - */ - -/** - \brief Enable IRQ Interrupts - \details Enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __enable_irq(); see arm_compat.h */ - - -/** - \brief Disable IRQ Interrupts - \details Disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -/* intrinsic void __disable_irq(); see arm_compat.h */ - - -/** - \brief Get Control Register - \details Returns the content of the Control Register. - \return Control Register value - */ -__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Control Register (non-secure) - \details Returns the content of the non-secure Control Register when in secure mode. - \return non-secure Control Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Control Register - \details Writes the given value to the Control Register. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) -{ - __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Control Register (non-secure) - \details Writes the given value to the non-secure Control Register when in secure state. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) -{ - __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); -} -#endif - - -/** - \brief Get IPSR Register - \details Returns the content of the IPSR Register. - \return IPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_IPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get APSR Register - \details Returns the content of the APSR Register. - \return APSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_APSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, apsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get xPSR Register - \details Returns the content of the xPSR Register. - \return xPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_xPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get Process Stack Pointer - \details Returns the current value of the Process Stack Pointer (PSP). - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer (non-secure) - \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Process Stack Pointer - \details Assigns the given value to the Process Stack Pointer (PSP). - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); -} -#endif - - -/** - \brief Get Main Stack Pointer - \details Returns the current value of the Main Stack Pointer (MSP). - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer (non-secure) - \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Main Stack Pointer - \details Assigns the given value to the Main Stack Pointer (MSP). - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); -} -#endif - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Stack Pointer (non-secure) - \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. - \return SP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); - return(result); -} - - -/** - \brief Set Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. - \param [in] topOfStack Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) -{ - __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); -} -#endif - - -/** - \brief Get Priority Mask - \details Returns the current state of the priority mask bit from the Priority Mask Register. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Priority Mask (non-secure) - \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Priority Mask - \details Assigns the given value to the Priority Mask Register. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) -{ - __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Priority Mask (non-secure) - \details Assigns the given value to the non-secure Priority Mask Register when in secure state. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) -{ - __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); -} -#endif - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) -/** - \brief Enable FIQ - \details Enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ - - -/** - \brief Disable FIQ - \details Disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ - - -/** - \brief Get Base Priority - \details Returns the current value of the Base Priority register. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Base Priority (non-secure) - \details Returns the current value of the non-secure Base Priority register when in secure state. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Base Priority - \details Assigns the given value to the Base Priority register. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) -{ - __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Base Priority (non-secure) - \details Assigns the given value to the non-secure Base Priority register when in secure state. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); -} -#endif - - -/** - \brief Set Base Priority with condition - \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, - or the new value increases the BASEPRI priority level. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); -} - - -/** - \brief Get Fault Mask - \details Returns the current value of the Fault Mask register. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Fault Mask (non-secure) - \details Returns the current value of the non-secure Fault Mask register when in secure state. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Fault Mask - \details Assigns the given value to the Fault Mask register. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Fault Mask (non-secure) - \details Assigns the given value to the non-secure Fault Mask register when in secure state. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); -} -#endif - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - -/** - \brief Get Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim" : "=r" (result) ); - return result; -#endif -} - -#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); -#endif -} -#endif - - -/** - \brief Get Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim" : "=r" (result) ); - return result; -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). - \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. - \param [in] MainStackPtrLimit Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); -#endif -} -#endif - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/** - \brief Get FPSCR - \details Returns the current value of the Floating Point Status/Control register. - \return Floating Point Status/Control register value - */ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr -#else -#define __get_FPSCR() ((uint32_t)0U) -#endif - -/** - \brief Set FPSCR - \details Assigns the given value to the Floating Point Status/Control register. - \param [in] fpscr Floating Point Status/Control value to set - */ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#define __set_FPSCR __builtin_arm_set_fpscr -#else -#define __set_FPSCR(x) ((void)(x)) -#endif - - -/*@} end of CMSIS_Core_RegAccFunctions */ - - -/* ########################## Core Instruction Access ######################### */ -/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface - Access to dedicated instructions - @{ -*/ - -/* Define macros for porting to both thumb1 and thumb2. - * For thumb1, use low register (r0-r7), specified by constraint "l" - * Otherwise, use general registers, specified by constraint "r" */ -#if defined (__thumb__) && !defined (__thumb2__) -#define __CMSIS_GCC_OUT_REG(r) "=l" (r) -#define __CMSIS_GCC_USE_REG(r) "l" (r) -#else -#define __CMSIS_GCC_OUT_REG(r) "=r" (r) -#define __CMSIS_GCC_USE_REG(r) "r" (r) -#endif - -/** - \brief No Operation - \details No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP __builtin_arm_nop - -/** - \brief Wait For Interrupt - \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. - */ -#define __WFI __builtin_arm_wfi - - -/** - \brief Wait For Event - \details Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -#define __WFE __builtin_arm_wfe - - -/** - \brief Send Event - \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -#define __SEV __builtin_arm_sev - - -/** - \brief Instruction Synchronization Barrier - \details Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or memory, - after the instruction has been completed. - */ -#define __ISB() __builtin_arm_isb(0xF) - -/** - \brief Data Synchronization Barrier - \details Acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -#define __DSB() __builtin_arm_dsb(0xF) - - -/** - \brief Data Memory Barrier - \details Ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -#define __DMB() __builtin_arm_dmb(0xF) - - -/** - \brief Reverse byte order (32 bit) - \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV(value) __builtin_bswap32(value) - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV16(value) __ROR(__REV(value), 16) - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. - \param [in] value Value to reverse - \return Reversed value - */ -#define __REVSH(value) (int16_t)__builtin_bswap16(value) - - -/** - \brief Rotate Right in unsigned value (32 bit) - \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. - \param [in] op1 Value to rotate - \param [in] op2 Number of Bits to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) -{ - op2 %= 32U; - if (op2 == 0U) - { - return op1; - } - return (op1 >> op2) | (op1 << (32U - op2)); -} - - -/** - \brief Breakpoint - \details Causes the processor to enter Debug state. - Debug tools can use this to investigate system state when the instruction at a particular address is reached. - \param [in] value is ignored by the processor. - If required, a debugger can use it to store additional information about the breakpoint. - */ -#define __BKPT(value) __ASM volatile ("bkpt "#value) - - -/** - \brief Reverse bit order of value - \details Reverses the bit order of the given value. - \param [in] value Value to reverse - \return Reversed value - */ -#define __RBIT __builtin_arm_rbit - -/** - \brief Count leading zeros - \details Counts the number of leading zeros of a data value. - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) -{ - /* Even though __builtin_clz produces a CLZ instruction on ARM, formally - __builtin_clz(0) is undefined behaviour, so handle this case specially. - This guarantees ARM-compatible results if happening to compile on a non-ARM - target, and ensures the compiler doesn't decide to activate any - optimisations using the logic "value was passed to __builtin_clz, so it - is non-zero". - ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a - single CLZ instruction. - */ - if (value == 0U) - { - return 32U; - } - return __builtin_clz(value); -} - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief LDR Exclusive (8 bit) - \details Executes a exclusive LDR instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDREXB (uint8_t)__builtin_arm_ldrex - - -/** - \brief LDR Exclusive (16 bit) - \details Executes a exclusive LDR instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDREXH (uint16_t)__builtin_arm_ldrex - - -/** - \brief LDR Exclusive (32 bit) - \details Executes a exclusive LDR instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDREXW (uint32_t)__builtin_arm_ldrex - - -/** - \brief STR Exclusive (8 bit) - \details Executes a exclusive STR instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXB (uint32_t)__builtin_arm_strex - - -/** - \brief STR Exclusive (16 bit) - \details Executes a exclusive STR instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXH (uint32_t)__builtin_arm_strex - - -/** - \brief STR Exclusive (32 bit) - \details Executes a exclusive STR instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXW (uint32_t)__builtin_arm_strex - - -/** - \brief Remove the exclusive lock - \details Removes the exclusive lock which is created by LDREX. - */ -#define __CLREX __builtin_arm_clrex - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT __builtin_arm_ssat - - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT __builtin_arm_usat - - -/** - \brief Rotate Right with Extend (32 bit) - \details Moves each bit of a bitstring right by one bit. - The carry input is shifted in at the left end of the bitstring. - \param [in] value Value to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return(result); -} - - -/** - \brief LDRT Unprivileged (8 bit) - \details Executes a Unprivileged LDRT instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (16 bit) - \details Executes a Unprivileged LDRT instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (32 bit) - \details Executes a Unprivileged LDRT instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief STRT Unprivileged (8 bit) - \details Executes a Unprivileged STRT instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (16 bit) - \details Executes a Unprivileged STRT instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (32 bit) - \details Executes a Unprivileged STRT instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); -} - -#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) -{ - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; -} - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) -{ - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief Load-Acquire (8 bit) - \details Executes a LDAB instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); -} - - -/** - \brief Load-Acquire (16 bit) - \details Executes a LDAH instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); -} - - -/** - \brief Load-Acquire (32 bit) - \details Executes a LDA instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief Store-Release (8 bit) - \details Executes a STLB instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (16 bit) - \details Executes a STLH instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (32 bit) - \details Executes a STL instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Load-Acquire Exclusive (8 bit) - \details Executes a LDAB exclusive instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDAEXB (uint8_t)__builtin_arm_ldaex - - -/** - \brief Load-Acquire Exclusive (16 bit) - \details Executes a LDAH exclusive instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDAEXH (uint16_t)__builtin_arm_ldaex - - -/** - \brief Load-Acquire Exclusive (32 bit) - \details Executes a LDA exclusive instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDAEX (uint32_t)__builtin_arm_ldaex - - -/** - \brief Store-Release Exclusive (8 bit) - \details Executes a STLB exclusive instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEXB (uint32_t)__builtin_arm_stlex - - -/** - \brief Store-Release Exclusive (16 bit) - \details Executes a STLH exclusive instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEXH (uint32_t)__builtin_arm_stlex - - -/** - \brief Store-Release Exclusive (32 bit) - \details Executes a STL exclusive instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STLEX (uint32_t)__builtin_arm_stlex - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ - - -/* ################### Compiler specific Intrinsics ########################### */ -/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics - Access to dedicated SIMD instructions - @{ -*/ - -#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) - -__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - - -__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - - -__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#define __SSAT16(ARG1,ARG2) \ -({ \ - int32_t __RES, __ARG1 = (ARG1); \ - __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - -#define __USAT16(ARG1,ARG2) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1); \ - __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - -__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) -{ - uint32_t result; - - __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) -{ - uint32_t result; - - __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) -{ - int32_t result; - - __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) -{ - int32_t result; - - __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ - ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) - -#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ - ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) - -__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) -{ - int32_t result; - - __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#endif /* (__ARM_FEATURE_DSP == 1) */ -/*@} end of group CMSIS_SIMD_intrinsics */ - - -#endif /* __CMSIS_ARMCLANG_H */ +/**************************************************************************//** + * @file cmsis_armclang_ltm.h + * @brief CMSIS compiler armclang (Arm Compiler 6) header file + * @version V1.2.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2018-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ + +#ifndef __CMSIS_ARMCLANG_H +#define __CMSIS_ARMCLANG_H + +#pragma clang system_header /* treat file as system include file */ + +#ifndef __ARM_COMPAT_H +#include /* Compatibility header for Arm Compiler 5 intrinsics */ +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START +#define __PROGRAM_START __main +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) +#endif + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); see arm_compat.h */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); see arm_compat.h */ + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr +#else +#define __get_FPSCR() ((uint32_t)0U) +#endif + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __set_FPSCR __builtin_arm_set_fpscr +#else +#define __set_FPSCR(x) ((void)(x)) +#endif + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __builtin_arm_nop + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __builtin_arm_wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __builtin_arm_wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __builtin_arm_sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() __builtin_arm_isb(0xF) + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __builtin_arm_dsb(0xF) + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __builtin_arm_dmb(0xF) + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV(value) __builtin_bswap32(value) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV16(value) __ROR(__REV(value), 16) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REVSH(value) (int16_t)__builtin_bswap16(value) + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __builtin_arm_rbit + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDREXB (uint8_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDREXH (uint16_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDREXW (uint32_t)__builtin_arm_ldrex + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXB (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXH (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXW (uint32_t)__builtin_arm_strex + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __builtin_arm_clrex + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __builtin_arm_ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __builtin_arm_usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDAEXB (uint8_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDAEXH (uint16_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDAEX (uint32_t)__builtin_arm_ldaex + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXB (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXH (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEX (uint32_t)__builtin_arm_stlex + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCLANG_H */ diff --git a/obc/firmware/bsp/cmsis/Include/cmsis_compiler.h b/eps/v1/firmware/bsp/cmsis/Include/cmsis_compiler.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/cmsis_compiler.h rename to eps/v1/firmware/bsp/cmsis/Include/cmsis_compiler.h diff --git a/eps/firmware/bsp/cmsis/Include/cmsis_gcc.h b/eps/v1/firmware/bsp/cmsis/Include/cmsis_gcc.h similarity index 96% rename from eps/firmware/bsp/cmsis/Include/cmsis_gcc.h rename to eps/v1/firmware/bsp/cmsis/Include/cmsis_gcc.h index 1e08e7e..3ddcc58 100644 --- a/eps/firmware/bsp/cmsis/Include/cmsis_gcc.h +++ b/eps/v1/firmware/bsp/cmsis/Include/cmsis_gcc.h @@ -1,2168 +1,2168 @@ -/**************************************************************************//** - * @file cmsis_gcc.h - * @brief CMSIS compiler GCC header file - * @version V5.2.0 - * @date 08. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __CMSIS_GCC_H -#define __CMSIS_GCC_H - -/* ignore some GCC warnings */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wsign-conversion" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-parameter" - -/* Fallback for __has_builtin */ -#ifndef __has_builtin - #define __has_builtin(x) (0) -#endif - -/* CMSIS compiler specific defines */ -#ifndef __ASM - #define __ASM __asm -#endif -#ifndef __INLINE - #define __INLINE inline -#endif -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline -#endif -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline -#endif -#ifndef __NO_RETURN - #define __NO_RETURN __attribute__((__noreturn__)) -#endif -#ifndef __USED - #define __USED __attribute__((used)) -#endif -#ifndef __WEAK - #define __WEAK __attribute__((weak)) -#endif -#ifndef __PACKED - #define __PACKED __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) -#endif -#ifndef __PACKED_UNION - #define __PACKED_UNION union __attribute__((packed, aligned(1))) -#endif -#ifndef __UNALIGNED_UINT32 /* deprecated */ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - struct __attribute__((packed)) T_UINT32 { uint32_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) -#endif -#ifndef __UNALIGNED_UINT16_WRITE - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT16_READ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) -#endif -#ifndef __UNALIGNED_UINT32_WRITE - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) -#endif -#ifndef __UNALIGNED_UINT32_READ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpacked" - #pragma GCC diagnostic ignored "-Wattributes" - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #pragma GCC diagnostic pop - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) -#endif -#ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) -#endif -#ifndef __RESTRICT - #define __RESTRICT __restrict -#endif -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __ASM volatile("":::"memory") -#endif - -/* ######################### Startup and Lowlevel Init ######################## */ - -#ifndef __PROGRAM_START - -/** - \brief Initializes data and bss sections - \details This default implementations initialized all data and additional bss - sections relying on .copy.table and .zero.table specified properly - in the used linker script. - - */ -__STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) -{ - extern void _start(void) __NO_RETURN; - - typedef struct { - uint32_t const* src; - uint32_t* dest; - uint32_t wlen; - } __copy_table_t; - - typedef struct { - uint32_t* dest; - uint32_t wlen; - } __zero_table_t; - - extern const __copy_table_t __copy_table_start__; - extern const __copy_table_t __copy_table_end__; - extern const __zero_table_t __zero_table_start__; - extern const __zero_table_t __zero_table_end__; - - for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable) { - for(uint32_t i=0u; iwlen; ++i) { - pTable->dest[i] = pTable->src[i]; - } - } - - for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable) { - for(uint32_t i=0u; iwlen; ++i) { - pTable->dest[i] = 0u; - } - } - - _start(); -} - -#define __PROGRAM_START __cmsis_start -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP __StackTop -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT __StackLimit -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __Vectors -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) -#endif - -/* ########################### Core Function Access ########################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions - @{ - */ - -/** - \brief Enable IRQ Interrupts - \details Enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__STATIC_FORCEINLINE void __enable_irq(void) -{ - __ASM volatile ("cpsie i" : : : "memory"); -} - - -/** - \brief Disable IRQ Interrupts - \details Disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__STATIC_FORCEINLINE void __disable_irq(void) -{ - __ASM volatile ("cpsid i" : : : "memory"); -} - - -/** - \brief Get Control Register - \details Returns the content of the Control Register. - \return Control Register value - */ -__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Control Register (non-secure) - \details Returns the content of the non-secure Control Register when in secure mode. - \return non-secure Control Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Control Register - \details Writes the given value to the Control Register. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) -{ - __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Control Register (non-secure) - \details Writes the given value to the non-secure Control Register when in secure state. - \param [in] control Control Register value to set - */ -__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) -{ - __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); -} -#endif - - -/** - \brief Get IPSR Register - \details Returns the content of the IPSR Register. - \return IPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_IPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get APSR Register - \details Returns the content of the APSR Register. - \return APSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_APSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, apsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get xPSR Register - \details Returns the content of the xPSR Register. - \return xPSR Register value - */ -__STATIC_FORCEINLINE uint32_t __get_xPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); - return(result); -} - - -/** - \brief Get Process Stack Pointer - \details Returns the current value of the Process Stack Pointer (PSP). - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer (non-secure) - \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. - \return PSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Process Stack Pointer - \details Assigns the given value to the Process Stack Pointer (PSP). - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); -} -#endif - - -/** - \brief Get Main Stack Pointer - \details Returns the current value of the Main Stack Pointer (MSP). - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSP(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer (non-secure) - \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. - \return MSP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Main Stack Pointer - \details Assigns the given value to the Main Stack Pointer (MSP). - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); -} -#endif - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Stack Pointer (non-secure) - \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. - \return SP Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); - return(result); -} - - -/** - \brief Set Stack Pointer (non-secure) - \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. - \param [in] topOfStack Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) -{ - __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); -} -#endif - - -/** - \brief Get Priority Mask - \details Returns the current state of the priority mask bit from the Priority Mask Register. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Priority Mask (non-secure) - \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. - \return Priority Mask value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); - return(result); -} -#endif - - -/** - \brief Set Priority Mask - \details Assigns the given value to the Priority Mask Register. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) -{ - __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Priority Mask (non-secure) - \details Assigns the given value to the non-secure Priority Mask Register when in secure state. - \param [in] priMask Priority Mask - */ -__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) -{ - __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); -} -#endif - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) -/** - \brief Enable FIQ - \details Enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__STATIC_FORCEINLINE void __enable_fault_irq(void) -{ - __ASM volatile ("cpsie f" : : : "memory"); -} - - -/** - \brief Disable FIQ - \details Disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__STATIC_FORCEINLINE void __disable_fault_irq(void) -{ - __ASM volatile ("cpsid f" : : : "memory"); -} - - -/** - \brief Get Base Priority - \details Returns the current value of the Base Priority register. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Base Priority (non-secure) - \details Returns the current value of the non-secure Base Priority register when in secure state. - \return Base Priority register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Base Priority - \details Assigns the given value to the Base Priority register. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) -{ - __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Base Priority (non-secure) - \details Assigns the given value to the non-secure Base Priority register when in secure state. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); -} -#endif - - -/** - \brief Set Base Priority with condition - \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, - or the new value increases the BASEPRI priority level. - \param [in] basePri Base Priority value to set - */ -__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) -{ - __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); -} - - -/** - \brief Get Fault Mask - \details Returns the current value of the Fault Mask register. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); - return(result); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Fault Mask (non-secure) - \details Returns the current value of the non-secure Fault Mask register when in secure state. - \return Fault Mask register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); - return(result); -} -#endif - - -/** - \brief Set Fault Mask - \details Assigns the given value to the Fault Mask register. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Fault Mask (non-secure) - \details Assigns the given value to the non-secure Fault Mask register when in secure state. - \param [in] faultMask Fault Mask value to set - */ -__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); -} -#endif - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - -/** - \brief Get Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim" : "=r" (result) ); - return result; -#endif -} - -#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Process Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \return PSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Process Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Process Stack Pointer (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. - \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)ProcStackPtrLimit; -#else - __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); -#endif -} -#endif - - -/** - \brief Get Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always in non-secure - mode. - - \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim" : "=r" (result) ); - return result; -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Get Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence zero is returned always. - - \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. - \return MSPLIM Register value - */ -__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - return 0U; -#else - uint32_t result; - __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); - return result; -#endif -} -#endif - - -/** - \brief Set Main Stack Pointer Limit - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored in non-secure - mode. - - \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). - \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set - */ -__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); -#endif -} - - -#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) -/** - \brief Set Main Stack Pointer Limit (non-secure) - Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure - Stack Pointer Limit register hence the write is silently ignored. - - \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. - \param [in] MainStackPtrLimit Main Stack Pointer value to set - */ -__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) -{ -#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)MainStackPtrLimit; -#else - __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); -#endif -} -#endif - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - - -/** - \brief Get FPSCR - \details Returns the current value of the Floating Point Status/Control register. - \return Floating Point Status/Control register value - */ -__STATIC_FORCEINLINE uint32_t __get_FPSCR(void) -{ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#if __has_builtin(__builtin_arm_get_fpscr) -// Re-enable using built-in when GCC has been fixed -// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) - /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ - return __builtin_arm_get_fpscr(); -#else - uint32_t result; - - __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); - return(result); -#endif -#else - return(0U); -#endif -} - - -/** - \brief Set FPSCR - \details Assigns the given value to the Floating Point Status/Control register. - \param [in] fpscr Floating Point Status/Control value to set - */ -__STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) -{ -#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) -#if __has_builtin(__builtin_arm_set_fpscr) -// Re-enable using built-in when GCC has been fixed -// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) - /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ - __builtin_arm_set_fpscr(fpscr); -#else - __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); -#endif -#else - (void)fpscr; -#endif -} - - -/*@} end of CMSIS_Core_RegAccFunctions */ - - -/* ########################## Core Instruction Access ######################### */ -/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface - Access to dedicated instructions - @{ -*/ - -/* Define macros for porting to both thumb1 and thumb2. - * For thumb1, use low register (r0-r7), specified by constraint "l" - * Otherwise, use general registers, specified by constraint "r" */ -#if defined (__thumb__) && !defined (__thumb2__) -#define __CMSIS_GCC_OUT_REG(r) "=l" (r) -#define __CMSIS_GCC_RW_REG(r) "+l" (r) -#define __CMSIS_GCC_USE_REG(r) "l" (r) -#else -#define __CMSIS_GCC_OUT_REG(r) "=r" (r) -#define __CMSIS_GCC_RW_REG(r) "+r" (r) -#define __CMSIS_GCC_USE_REG(r) "r" (r) -#endif - -/** - \brief No Operation - \details No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP() __ASM volatile ("nop") - -/** - \brief Wait For Interrupt - \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. - */ -#define __WFI() __ASM volatile ("wfi") - - -/** - \brief Wait For Event - \details Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -#define __WFE() __ASM volatile ("wfe") - - -/** - \brief Send Event - \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -#define __SEV() __ASM volatile ("sev") - - -/** - \brief Instruction Synchronization Barrier - \details Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or memory, - after the instruction has been completed. - */ -__STATIC_FORCEINLINE void __ISB(void) -{ - __ASM volatile ("isb 0xF":::"memory"); -} - - -/** - \brief Data Synchronization Barrier - \details Acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -__STATIC_FORCEINLINE void __DSB(void) -{ - __ASM volatile ("dsb 0xF":::"memory"); -} - - -/** - \brief Data Memory Barrier - \details Ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -__STATIC_FORCEINLINE void __DMB(void) -{ - __ASM volatile ("dmb 0xF":::"memory"); -} - - -/** - \brief Reverse byte order (32 bit) - \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. - \param [in] value Value to reverse - \return Reversed value - */ -__STATIC_FORCEINLINE uint32_t __REV(uint32_t value) -{ -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) - return __builtin_bswap32(value); -#else - uint32_t result; - - __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return result; -#endif -} - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. - \param [in] value Value to reverse - \return Reversed value - */ -__STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return result; -} - - -/** - \brief Reverse byte order (16 bit) - \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. - \param [in] value Value to reverse - \return Reversed value - */ -__STATIC_FORCEINLINE int16_t __REVSH(int16_t value) -{ -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - return (int16_t)__builtin_bswap16(value); -#else - int16_t result; - - __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return result; -#endif -} - - -/** - \brief Rotate Right in unsigned value (32 bit) - \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. - \param [in] op1 Value to rotate - \param [in] op2 Number of Bits to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) -{ - op2 %= 32U; - if (op2 == 0U) - { - return op1; - } - return (op1 >> op2) | (op1 << (32U - op2)); -} - - -/** - \brief Breakpoint - \details Causes the processor to enter Debug state. - Debug tools can use this to investigate system state when the instruction at a particular address is reached. - \param [in] value is ignored by the processor. - If required, a debugger can use it to store additional information about the breakpoint. - */ -#define __BKPT(value) __ASM volatile ("bkpt "#value) - - -/** - \brief Reverse bit order of value - \details Reverses the bit order of the given value. - \param [in] value Value to reverse - \return Reversed value - */ -__STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) -{ - uint32_t result; - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) - __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); -#else - uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ - - result = value; /* r will be reversed bits of v; first get LSB of v */ - for (value >>= 1U; value != 0U; value >>= 1U) - { - result <<= 1U; - result |= value & 1U; - s--; - } - result <<= s; /* shift when v's highest bits are zero */ -#endif - return result; -} - - -/** - \brief Count leading zeros - \details Counts the number of leading zeros of a data value. - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) -{ - /* Even though __builtin_clz produces a CLZ instruction on ARM, formally - __builtin_clz(0) is undefined behaviour, so handle this case specially. - This guarantees ARM-compatible results if happening to compile on a non-ARM - target, and ensures the compiler doesn't decide to activate any - optimisations using the logic "value was passed to __builtin_clz, so it - is non-zero". - ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a - single CLZ instruction. - */ - if (value == 0U) - { - return 32U; - } - return __builtin_clz(value); -} - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief LDR Exclusive (8 bit) - \details Executes a exclusive LDR instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) -{ - uint32_t result; - -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); -#else - /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not - accepted by assembler. So has to use following less efficient pattern. - */ - __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); -#endif - return ((uint8_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDR Exclusive (16 bit) - \details Executes a exclusive LDR instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) -{ - uint32_t result; - -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); -#else - /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not - accepted by assembler. So has to use following less efficient pattern. - */ - __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); -#endif - return ((uint16_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDR Exclusive (32 bit) - \details Executes a exclusive LDR instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - return(result); -} - - -/** - \brief STR Exclusive (8 bit) - \details Executes a exclusive STR instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) -{ - uint32_t result; - - __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); - return(result); -} - - -/** - \brief STR Exclusive (16 bit) - \details Executes a exclusive STR instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) -{ - uint32_t result; - - __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); - return(result); -} - - -/** - \brief STR Exclusive (32 bit) - \details Executes a exclusive STR instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - return(result); -} - - -/** - \brief Remove the exclusive lock - \details Removes the exclusive lock which is created by LDREX. - */ -__STATIC_FORCEINLINE void __CLREX(void) -{ - __ASM volatile ("clrex" ::: "memory"); -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] ARG1 Value to be saturated - \param [in] ARG2 Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT(ARG1,ARG2) \ -__extension__ \ -({ \ - int32_t __RES, __ARG1 = (ARG1); \ - __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] ARG1 Value to be saturated - \param [in] ARG2 Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT(ARG1,ARG2) \ - __extension__ \ -({ \ - uint32_t __RES, __ARG1 = (ARG1); \ - __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - - -/** - \brief Rotate Right with Extend (32 bit) - \details Moves each bit of a bitstring right by one bit. - The carry input is shifted in at the left end of the bitstring. - \param [in] value Value to rotate - \return Rotated value - */ -__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); - return(result); -} - - -/** - \brief LDRT Unprivileged (8 bit) - \details Executes a Unprivileged LDRT instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) -{ - uint32_t result; - -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); -#else - /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not - accepted by assembler. So has to use following less efficient pattern. - */ - __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); -#endif - return ((uint8_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (16 bit) - \details Executes a Unprivileged LDRT instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) -{ - uint32_t result; - -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) - __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); -#else - /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not - accepted by assembler. So has to use following less efficient pattern. - */ - __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); -#endif - return ((uint16_t) result); /* Add explicit type cast here */ -} - - -/** - \brief LDRT Unprivileged (32 bit) - \details Executes a Unprivileged LDRT instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief STRT Unprivileged (8 bit) - \details Executes a Unprivileged STRT instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (16 bit) - \details Executes a Unprivileged STRT instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief STRT Unprivileged (32 bit) - \details Executes a Unprivileged STRT instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); -} - -#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - -/** - \brief Signed Saturate - \details Saturates a signed value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) -{ - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; -} - -/** - \brief Unsigned Saturate - \details Saturates an unsigned value. - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) -{ - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; -} - -#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ - (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ - (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ - - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) -/** - \brief Load-Acquire (8 bit) - \details Executes a LDAB instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); -} - - -/** - \brief Load-Acquire (16 bit) - \details Executes a LDAH instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); -} - - -/** - \brief Load-Acquire (32 bit) - \details Executes a LDA instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief Store-Release (8 bit) - \details Executes a STLB instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) -{ - __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (16 bit) - \details Executes a STLH instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) -{ - __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Store-Release (32 bit) - \details Executes a STL instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - */ -__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) -{ - __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); -} - - -/** - \brief Load-Acquire Exclusive (8 bit) - \details Executes a LDAB exclusive instruction for 8 bit value. - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__STATIC_FORCEINLINE uint8_t __LDAEXB(volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldaexb %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint8_t) result); -} - - -/** - \brief Load-Acquire Exclusive (16 bit) - \details Executes a LDAH exclusive instruction for 16 bit values. - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldaexh %0, %1" : "=r" (result) : "Q" (*ptr) ); - return ((uint16_t) result); -} - - -/** - \brief Load-Acquire Exclusive (32 bit) - \details Executes a LDA exclusive instruction for 32 bit values. - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__STATIC_FORCEINLINE uint32_t __LDAEX(volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("ldaex %0, %1" : "=r" (result) : "Q" (*ptr) ); - return(result); -} - - -/** - \brief Store-Release Exclusive (8 bit) - \details Executes a STLB exclusive instruction for 8 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) -{ - uint32_t result; - - __ASM volatile ("stlexb %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); - return(result); -} - - -/** - \brief Store-Release Exclusive (16 bit) - \details Executes a STLH exclusive instruction for 16 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) -{ - uint32_t result; - - __ASM volatile ("stlexh %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); - return(result); -} - - -/** - \brief Store-Release Exclusive (32 bit) - \details Executes a STL exclusive instruction for 32 bit values. - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__STATIC_FORCEINLINE uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) -{ - uint32_t result; - - __ASM volatile ("stlex %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); - return(result); -} - -#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ - -/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ - - -/* ################### Compiler specific Intrinsics ########################### */ -/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics - Access to dedicated SIMD instructions - @{ -*/ - -#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) - -__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - - -__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - - -__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#define __SSAT16(ARG1,ARG2) \ -({ \ - int32_t __RES, __ARG1 = (ARG1); \ - __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - -#define __USAT16(ARG1,ARG2) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1); \ - __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - -__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) -{ - uint32_t result; - - __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) -{ - uint32_t result; - - __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) -{ - uint32_t result; - - __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) -{ - union llreg_u{ - uint32_t w32[2]; - uint64_t w64; - } llr; - llr.w64 = acc; - -#ifndef __ARMEB__ /* Little endian */ - __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); -#else /* Big endian */ - __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); -#endif - - return(llr.w64); -} - -__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) -{ - uint32_t result; - - __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) -{ - int32_t result; - - __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) -{ - int32_t result; - - __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); - return(result); -} - -#if 0 -#define __PKHBT(ARG1,ARG2,ARG3) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ - __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ - __RES; \ - }) - -#define __PKHTB(ARG1,ARG2,ARG3) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ - if (ARG3 == 0) \ - __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ - else \ - __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ - __RES; \ - }) -#endif - -#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ - ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) - -#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ - ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) - -__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) -{ - int32_t result; - - __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); - return(result); -} - -#endif /* (__ARM_FEATURE_DSP == 1) */ -/*@} end of group CMSIS_SIMD_intrinsics */ - - -#pragma GCC diagnostic pop - -#endif /* __CMSIS_GCC_H */ +/**************************************************************************//** + * @file cmsis_gcc.h + * @brief CMSIS compiler GCC header file + * @version V5.2.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_GCC_H +#define __CMSIS_GCC_H + +/* ignore some GCC warnings */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wunused-parameter" + +/* Fallback for __has_builtin */ +#ifndef __has_builtin + #define __has_builtin(x) (0) +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START + +/** + \brief Initializes data and bss sections + \details This default implementations initialized all data and additional bss + sections relying on .copy.table and .zero.table specified properly + in the used linker script. + + */ +__STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) +{ + extern void _start(void) __NO_RETURN; + + typedef struct { + uint32_t const* src; + uint32_t* dest; + uint32_t wlen; + } __copy_table_t; + + typedef struct { + uint32_t* dest; + uint32_t wlen; + } __zero_table_t; + + extern const __copy_table_t __copy_table_start__; + extern const __copy_table_t __copy_table_end__; + extern const __zero_table_t __zero_table_start__; + extern const __zero_table_t __zero_table_end__; + + for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable) { + for(uint32_t i=0u; iwlen; ++i) { + pTable->dest[i] = pTable->src[i]; + } + } + + for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable) { + for(uint32_t i=0u; iwlen; ++i) { + pTable->dest[i] = 0u; + } + } + + _start(); +} + +#define __PROGRAM_START __cmsis_start +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP __StackTop +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT __StackLimit +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__STATIC_FORCEINLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_get_fpscr) +// Re-enable using built-in when GCC has been fixed +// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + return __builtin_arm_get_fpscr(); +#else + uint32_t result; + + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + return(result); +#endif +#else + return(0U); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_set_fpscr) +// Re-enable using built-in when GCC has been fixed +// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + __builtin_arm_set_fpscr(fpscr); +#else + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); +#endif +#else + (void)fpscr; +#endif +} + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_RW_REG(r) "+l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_RW_REG(r) "+r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP() __ASM volatile ("nop") + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI() __ASM volatile ("wfi") + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE() __ASM volatile ("wfe") + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV() __ASM volatile ("sev") + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +__STATIC_FORCEINLINE void __ISB(void) +{ + __ASM volatile ("isb 0xF":::"memory"); +} + + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__STATIC_FORCEINLINE void __DSB(void) +{ + __ASM volatile ("dsb 0xF":::"memory"); +} + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__STATIC_FORCEINLINE void __DMB(void) +{ + __ASM volatile ("dmb 0xF":::"memory"); +} + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV(uint32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + return __builtin_bswap32(value); +#else + uint32_t result; + + __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (int16_t)__builtin_bswap16(value); +#else + int16_t result; + + __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); +#else + uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ +#endif + return result; +} + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + return(result); +} + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +__STATIC_FORCEINLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT(ARG1,ARG2) \ +__extension__ \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT(ARG1,ARG2) \ + __extension__ \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAEXB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexb %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexh %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDAEX(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaex %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexb %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexh %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlex %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#if 0 +#define __PKHBT(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) + +#define __PKHTB(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + if (ARG3 == 0) \ + __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ + else \ + __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) +#endif + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#pragma GCC diagnostic pop + +#endif /* __CMSIS_GCC_H */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h b/eps/v1/firmware/bsp/cmsis/Include/cmsis_iccarm.h similarity index 96% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h rename to eps/v1/firmware/bsp/cmsis/Include/cmsis_iccarm.h index 7af7562..12d68fd 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h +++ b/eps/v1/firmware/bsp/cmsis/Include/cmsis_iccarm.h @@ -1,964 +1,964 @@ -/**************************************************************************//** - * @file cmsis_iccarm.h - * @brief CMSIS compiler ICCARM (IAR Compiler for Arm) header file - * @version V5.1.0 - * @date 08. May 2019 - ******************************************************************************/ - -//------------------------------------------------------------------------------ -// -// Copyright (c) 2017-2019 IAR Systems -// Copyright (c) 2017-2019 Arm Limited. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License") -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//------------------------------------------------------------------------------ - - -#ifndef __CMSIS_ICCARM_H__ -#define __CMSIS_ICCARM_H__ - -#ifndef __ICCARM__ - #error This file should only be compiled by ICCARM -#endif - -#pragma system_include - -#define __IAR_FT _Pragma("inline=forced") __intrinsic - -#if (__VER__ >= 8000000) - #define __ICCARM_V8 1 -#else - #define __ICCARM_V8 0 -#endif - -#ifndef __ALIGNED - #if __ICCARM_V8 - #define __ALIGNED(x) __attribute__((aligned(x))) - #elif (__VER__ >= 7080000) - /* Needs IAR language extensions */ - #define __ALIGNED(x) __attribute__((aligned(x))) - #else - #warning No compiler specific solution for __ALIGNED.__ALIGNED is ignored. - #define __ALIGNED(x) - #endif -#endif - - -/* Define compiler macros for CPU architecture, used in CMSIS 5. - */ -#if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__ || __ARM_ARCH_8M_BASE__ || __ARM_ARCH_8M_MAIN__ -/* Macros already defined */ -#else - #if defined(__ARM8M_MAINLINE__) || defined(__ARM8EM_MAINLINE__) - #define __ARM_ARCH_8M_MAIN__ 1 - #elif defined(__ARM8M_BASELINE__) - #define __ARM_ARCH_8M_BASE__ 1 - #elif defined(__ARM_ARCH_PROFILE) && __ARM_ARCH_PROFILE == 'M' - #if __ARM_ARCH == 6 - #define __ARM_ARCH_6M__ 1 - #elif __ARM_ARCH == 7 - #if __ARM_FEATURE_DSP - #define __ARM_ARCH_7EM__ 1 - #else - #define __ARM_ARCH_7M__ 1 - #endif - #endif /* __ARM_ARCH */ - #endif /* __ARM_ARCH_PROFILE == 'M' */ -#endif - -/* Alternativ core deduction for older ICCARM's */ -#if !defined(__ARM_ARCH_6M__) && !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7EM__) && \ - !defined(__ARM_ARCH_8M_BASE__) && !defined(__ARM_ARCH_8M_MAIN__) - #if defined(__ARM6M__) && (__CORE__ == __ARM6M__) - #define __ARM_ARCH_6M__ 1 - #elif defined(__ARM7M__) && (__CORE__ == __ARM7M__) - #define __ARM_ARCH_7M__ 1 - #elif defined(__ARM7EM__) && (__CORE__ == __ARM7EM__) - #define __ARM_ARCH_7EM__ 1 - #elif defined(__ARM8M_BASELINE__) && (__CORE == __ARM8M_BASELINE__) - #define __ARM_ARCH_8M_BASE__ 1 - #elif defined(__ARM8M_MAINLINE__) && (__CORE == __ARM8M_MAINLINE__) - #define __ARM_ARCH_8M_MAIN__ 1 - #elif defined(__ARM8EM_MAINLINE__) && (__CORE == __ARM8EM_MAINLINE__) - #define __ARM_ARCH_8M_MAIN__ 1 - #else - #error "Unknown target." - #endif -#endif - - - -#if defined(__ARM_ARCH_6M__) && __ARM_ARCH_6M__==1 - #define __IAR_M0_FAMILY 1 -#elif defined(__ARM_ARCH_8M_BASE__) && __ARM_ARCH_8M_BASE__==1 - #define __IAR_M0_FAMILY 1 -#else - #define __IAR_M0_FAMILY 0 -#endif - - -#ifndef __ASM - #define __ASM __asm -#endif - -#ifndef __COMPILER_BARRIER - #define __COMPILER_BARRIER() __ASM volatile("":::"memory") -#endif - -#ifndef __INLINE - #define __INLINE inline -#endif - -#ifndef __NO_RETURN - #if __ICCARM_V8 - #define __NO_RETURN __attribute__((__noreturn__)) - #else - #define __NO_RETURN _Pragma("object_attribute=__noreturn") - #endif -#endif - -#ifndef __PACKED - #if __ICCARM_V8 - #define __PACKED __attribute__((packed, aligned(1))) - #else - /* Needs IAR language extensions */ - #define __PACKED __packed - #endif -#endif - -#ifndef __PACKED_STRUCT - #if __ICCARM_V8 - #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) - #else - /* Needs IAR language extensions */ - #define __PACKED_STRUCT __packed struct - #endif -#endif - -#ifndef __PACKED_UNION - #if __ICCARM_V8 - #define __PACKED_UNION union __attribute__((packed, aligned(1))) - #else - /* Needs IAR language extensions */ - #define __PACKED_UNION __packed union - #endif -#endif - -#ifndef __RESTRICT - #if __ICCARM_V8 - #define __RESTRICT __restrict - #else - /* Needs IAR language extensions */ - #define __RESTRICT restrict - #endif -#endif - -#ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline -#endif - -#ifndef __FORCEINLINE - #define __FORCEINLINE _Pragma("inline=forced") -#endif - -#ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __FORCEINLINE __STATIC_INLINE -#endif - -#ifndef __UNALIGNED_UINT16_READ -#pragma language=save -#pragma language=extended -__IAR_FT uint16_t __iar_uint16_read(void const *ptr) -{ - return *(__packed uint16_t*)(ptr); -} -#pragma language=restore -#define __UNALIGNED_UINT16_READ(PTR) __iar_uint16_read(PTR) -#endif - - -#ifndef __UNALIGNED_UINT16_WRITE -#pragma language=save -#pragma language=extended -__IAR_FT void __iar_uint16_write(void const *ptr, uint16_t val) -{ - *(__packed uint16_t*)(ptr) = val;; -} -#pragma language=restore -#define __UNALIGNED_UINT16_WRITE(PTR,VAL) __iar_uint16_write(PTR,VAL) -#endif - -#ifndef __UNALIGNED_UINT32_READ -#pragma language=save -#pragma language=extended -__IAR_FT uint32_t __iar_uint32_read(void const *ptr) -{ - return *(__packed uint32_t*)(ptr); -} -#pragma language=restore -#define __UNALIGNED_UINT32_READ(PTR) __iar_uint32_read(PTR) -#endif - -#ifndef __UNALIGNED_UINT32_WRITE -#pragma language=save -#pragma language=extended -__IAR_FT void __iar_uint32_write(void const *ptr, uint32_t val) -{ - *(__packed uint32_t*)(ptr) = val;; -} -#pragma language=restore -#define __UNALIGNED_UINT32_WRITE(PTR,VAL) __iar_uint32_write(PTR,VAL) -#endif - -#ifndef __UNALIGNED_UINT32 /* deprecated */ -#pragma language=save -#pragma language=extended -__packed struct __iar_u32 { uint32_t v; }; -#pragma language=restore -#define __UNALIGNED_UINT32(PTR) (((struct __iar_u32 *)(PTR))->v) -#endif - -#ifndef __USED - #if __ICCARM_V8 - #define __USED __attribute__((used)) - #else - #define __USED _Pragma("__root") - #endif -#endif - -#ifndef __WEAK - #if __ICCARM_V8 - #define __WEAK __attribute__((weak)) - #else - #define __WEAK _Pragma("__weak") - #endif -#endif - -#ifndef __PROGRAM_START -#define __PROGRAM_START __iar_program_start -#endif - -#ifndef __INITIAL_SP -#define __INITIAL_SP CSTACK$$Limit -#endif - -#ifndef __STACK_LIMIT -#define __STACK_LIMIT CSTACK$$Base -#endif - -#ifndef __VECTOR_TABLE -#define __VECTOR_TABLE __vector_table -#endif - -#ifndef __VECTOR_TABLE_ATTRIBUTE -#define __VECTOR_TABLE_ATTRIBUTE @".intvec" -#endif - -#ifndef __ICCARM_INTRINSICS_VERSION__ - #define __ICCARM_INTRINSICS_VERSION__ 0 -#endif - -#if __ICCARM_INTRINSICS_VERSION__ == 2 - - #if defined(__CLZ) - #undef __CLZ - #endif - #if defined(__REVSH) - #undef __REVSH - #endif - #if defined(__RBIT) - #undef __RBIT - #endif - #if defined(__SSAT) - #undef __SSAT - #endif - #if defined(__USAT) - #undef __USAT - #endif - - #include "iccarm_builtin.h" - - #define __disable_fault_irq __iar_builtin_disable_fiq - #define __disable_irq __iar_builtin_disable_interrupt - #define __enable_fault_irq __iar_builtin_enable_fiq - #define __enable_irq __iar_builtin_enable_interrupt - #define __arm_rsr __iar_builtin_rsr - #define __arm_wsr __iar_builtin_wsr - - - #define __get_APSR() (__arm_rsr("APSR")) - #define __get_BASEPRI() (__arm_rsr("BASEPRI")) - #define __get_CONTROL() (__arm_rsr("CONTROL")) - #define __get_FAULTMASK() (__arm_rsr("FAULTMASK")) - - #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) - #define __get_FPSCR() (__arm_rsr("FPSCR")) - #define __set_FPSCR(VALUE) (__arm_wsr("FPSCR", (VALUE))) - #else - #define __get_FPSCR() ( 0 ) - #define __set_FPSCR(VALUE) ((void)VALUE) - #endif - - #define __get_IPSR() (__arm_rsr("IPSR")) - #define __get_MSP() (__arm_rsr("MSP")) - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - #define __get_MSPLIM() (0U) - #else - #define __get_MSPLIM() (__arm_rsr("MSPLIM")) - #endif - #define __get_PRIMASK() (__arm_rsr("PRIMASK")) - #define __get_PSP() (__arm_rsr("PSP")) - - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - #define __get_PSPLIM() (0U) - #else - #define __get_PSPLIM() (__arm_rsr("PSPLIM")) - #endif - - #define __get_xPSR() (__arm_rsr("xPSR")) - - #define __set_BASEPRI(VALUE) (__arm_wsr("BASEPRI", (VALUE))) - #define __set_BASEPRI_MAX(VALUE) (__arm_wsr("BASEPRI_MAX", (VALUE))) - #define __set_CONTROL(VALUE) (__arm_wsr("CONTROL", (VALUE))) - #define __set_FAULTMASK(VALUE) (__arm_wsr("FAULTMASK", (VALUE))) - #define __set_MSP(VALUE) (__arm_wsr("MSP", (VALUE))) - - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - #define __set_MSPLIM(VALUE) ((void)(VALUE)) - #else - #define __set_MSPLIM(VALUE) (__arm_wsr("MSPLIM", (VALUE))) - #endif - #define __set_PRIMASK(VALUE) (__arm_wsr("PRIMASK", (VALUE))) - #define __set_PSP(VALUE) (__arm_wsr("PSP", (VALUE))) - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - #define __set_PSPLIM(VALUE) ((void)(VALUE)) - #else - #define __set_PSPLIM(VALUE) (__arm_wsr("PSPLIM", (VALUE))) - #endif - - #define __TZ_get_CONTROL_NS() (__arm_rsr("CONTROL_NS")) - #define __TZ_set_CONTROL_NS(VALUE) (__arm_wsr("CONTROL_NS", (VALUE))) - #define __TZ_get_PSP_NS() (__arm_rsr("PSP_NS")) - #define __TZ_set_PSP_NS(VALUE) (__arm_wsr("PSP_NS", (VALUE))) - #define __TZ_get_MSP_NS() (__arm_rsr("MSP_NS")) - #define __TZ_set_MSP_NS(VALUE) (__arm_wsr("MSP_NS", (VALUE))) - #define __TZ_get_SP_NS() (__arm_rsr("SP_NS")) - #define __TZ_set_SP_NS(VALUE) (__arm_wsr("SP_NS", (VALUE))) - #define __TZ_get_PRIMASK_NS() (__arm_rsr("PRIMASK_NS")) - #define __TZ_set_PRIMASK_NS(VALUE) (__arm_wsr("PRIMASK_NS", (VALUE))) - #define __TZ_get_BASEPRI_NS() (__arm_rsr("BASEPRI_NS")) - #define __TZ_set_BASEPRI_NS(VALUE) (__arm_wsr("BASEPRI_NS", (VALUE))) - #define __TZ_get_FAULTMASK_NS() (__arm_rsr("FAULTMASK_NS")) - #define __TZ_set_FAULTMASK_NS(VALUE)(__arm_wsr("FAULTMASK_NS", (VALUE))) - - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - #define __TZ_get_PSPLIM_NS() (0U) - #define __TZ_set_PSPLIM_NS(VALUE) ((void)(VALUE)) - #else - #define __TZ_get_PSPLIM_NS() (__arm_rsr("PSPLIM_NS")) - #define __TZ_set_PSPLIM_NS(VALUE) (__arm_wsr("PSPLIM_NS", (VALUE))) - #endif - - #define __TZ_get_MSPLIM_NS() (__arm_rsr("MSPLIM_NS")) - #define __TZ_set_MSPLIM_NS(VALUE) (__arm_wsr("MSPLIM_NS", (VALUE))) - - #define __NOP __iar_builtin_no_operation - - #define __CLZ __iar_builtin_CLZ - #define __CLREX __iar_builtin_CLREX - - #define __DMB __iar_builtin_DMB - #define __DSB __iar_builtin_DSB - #define __ISB __iar_builtin_ISB - - #define __LDREXB __iar_builtin_LDREXB - #define __LDREXH __iar_builtin_LDREXH - #define __LDREXW __iar_builtin_LDREX - - #define __RBIT __iar_builtin_RBIT - #define __REV __iar_builtin_REV - #define __REV16 __iar_builtin_REV16 - - __IAR_FT int16_t __REVSH(int16_t val) - { - return (int16_t) __iar_builtin_REVSH(val); - } - - #define __ROR __iar_builtin_ROR - #define __RRX __iar_builtin_RRX - - #define __SEV __iar_builtin_SEV - - #if !__IAR_M0_FAMILY - #define __SSAT __iar_builtin_SSAT - #endif - - #define __STREXB __iar_builtin_STREXB - #define __STREXH __iar_builtin_STREXH - #define __STREXW __iar_builtin_STREX - - #if !__IAR_M0_FAMILY - #define __USAT __iar_builtin_USAT - #endif - - #define __WFE __iar_builtin_WFE - #define __WFI __iar_builtin_WFI - - #if __ARM_MEDIA__ - #define __SADD8 __iar_builtin_SADD8 - #define __QADD8 __iar_builtin_QADD8 - #define __SHADD8 __iar_builtin_SHADD8 - #define __UADD8 __iar_builtin_UADD8 - #define __UQADD8 __iar_builtin_UQADD8 - #define __UHADD8 __iar_builtin_UHADD8 - #define __SSUB8 __iar_builtin_SSUB8 - #define __QSUB8 __iar_builtin_QSUB8 - #define __SHSUB8 __iar_builtin_SHSUB8 - #define __USUB8 __iar_builtin_USUB8 - #define __UQSUB8 __iar_builtin_UQSUB8 - #define __UHSUB8 __iar_builtin_UHSUB8 - #define __SADD16 __iar_builtin_SADD16 - #define __QADD16 __iar_builtin_QADD16 - #define __SHADD16 __iar_builtin_SHADD16 - #define __UADD16 __iar_builtin_UADD16 - #define __UQADD16 __iar_builtin_UQADD16 - #define __UHADD16 __iar_builtin_UHADD16 - #define __SSUB16 __iar_builtin_SSUB16 - #define __QSUB16 __iar_builtin_QSUB16 - #define __SHSUB16 __iar_builtin_SHSUB16 - #define __USUB16 __iar_builtin_USUB16 - #define __UQSUB16 __iar_builtin_UQSUB16 - #define __UHSUB16 __iar_builtin_UHSUB16 - #define __SASX __iar_builtin_SASX - #define __QASX __iar_builtin_QASX - #define __SHASX __iar_builtin_SHASX - #define __UASX __iar_builtin_UASX - #define __UQASX __iar_builtin_UQASX - #define __UHASX __iar_builtin_UHASX - #define __SSAX __iar_builtin_SSAX - #define __QSAX __iar_builtin_QSAX - #define __SHSAX __iar_builtin_SHSAX - #define __USAX __iar_builtin_USAX - #define __UQSAX __iar_builtin_UQSAX - #define __UHSAX __iar_builtin_UHSAX - #define __USAD8 __iar_builtin_USAD8 - #define __USADA8 __iar_builtin_USADA8 - #define __SSAT16 __iar_builtin_SSAT16 - #define __USAT16 __iar_builtin_USAT16 - #define __UXTB16 __iar_builtin_UXTB16 - #define __UXTAB16 __iar_builtin_UXTAB16 - #define __SXTB16 __iar_builtin_SXTB16 - #define __SXTAB16 __iar_builtin_SXTAB16 - #define __SMUAD __iar_builtin_SMUAD - #define __SMUADX __iar_builtin_SMUADX - #define __SMMLA __iar_builtin_SMMLA - #define __SMLAD __iar_builtin_SMLAD - #define __SMLADX __iar_builtin_SMLADX - #define __SMLALD __iar_builtin_SMLALD - #define __SMLALDX __iar_builtin_SMLALDX - #define __SMUSD __iar_builtin_SMUSD - #define __SMUSDX __iar_builtin_SMUSDX - #define __SMLSD __iar_builtin_SMLSD - #define __SMLSDX __iar_builtin_SMLSDX - #define __SMLSLD __iar_builtin_SMLSLD - #define __SMLSLDX __iar_builtin_SMLSLDX - #define __SEL __iar_builtin_SEL - #define __QADD __iar_builtin_QADD - #define __QSUB __iar_builtin_QSUB - #define __PKHBT __iar_builtin_PKHBT - #define __PKHTB __iar_builtin_PKHTB - #endif - -#else /* __ICCARM_INTRINSICS_VERSION__ == 2 */ - - #if __IAR_M0_FAMILY - /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ - #define __CLZ __cmsis_iar_clz_not_active - #define __SSAT __cmsis_iar_ssat_not_active - #define __USAT __cmsis_iar_usat_not_active - #define __RBIT __cmsis_iar_rbit_not_active - #define __get_APSR __cmsis_iar_get_APSR_not_active - #endif - - - #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) - #define __get_FPSCR __cmsis_iar_get_FPSR_not_active - #define __set_FPSCR __cmsis_iar_set_FPSR_not_active - #endif - - #ifdef __INTRINSICS_INCLUDED - #error intrinsics.h is already included previously! - #endif - - #include - - #if __IAR_M0_FAMILY - /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ - #undef __CLZ - #undef __SSAT - #undef __USAT - #undef __RBIT - #undef __get_APSR - - __STATIC_INLINE uint8_t __CLZ(uint32_t data) - { - if (data == 0U) { return 32U; } - - uint32_t count = 0U; - uint32_t mask = 0x80000000U; - - while ((data & mask) == 0U) - { - count += 1U; - mask = mask >> 1U; - } - return count; - } - - __STATIC_INLINE uint32_t __RBIT(uint32_t v) - { - uint8_t sc = 31U; - uint32_t r = v; - for (v >>= 1U; v; v >>= 1U) - { - r <<= 1U; - r |= v & 1U; - sc--; - } - return (r << sc); - } - - __STATIC_INLINE uint32_t __get_APSR(void) - { - uint32_t res; - __asm("MRS %0,APSR" : "=r" (res)); - return res; - } - - #endif - - #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ - (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) - #undef __get_FPSCR - #undef __set_FPSCR - #define __get_FPSCR() (0) - #define __set_FPSCR(VALUE) ((void)VALUE) - #endif - - #pragma diag_suppress=Pe940 - #pragma diag_suppress=Pe177 - - #define __enable_irq __enable_interrupt - #define __disable_irq __disable_interrupt - #define __NOP __no_operation - - #define __get_xPSR __get_PSR - - #if (!defined(__ARM_ARCH_6M__) || __ARM_ARCH_6M__==0) - - __IAR_FT uint32_t __LDREXW(uint32_t volatile *ptr) - { - return __LDREX((unsigned long *)ptr); - } - - __IAR_FT uint32_t __STREXW(uint32_t value, uint32_t volatile *ptr) - { - return __STREX(value, (unsigned long *)ptr); - } - #endif - - - /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ - #if (__CORTEX_M >= 0x03) - - __IAR_FT uint32_t __RRX(uint32_t value) - { - uint32_t result; - __ASM("RRX %0, %1" : "=r"(result) : "r" (value) : "cc"); - return(result); - } - - __IAR_FT void __set_BASEPRI_MAX(uint32_t value) - { - __asm volatile("MSR BASEPRI_MAX,%0"::"r" (value)); - } - - - #define __enable_fault_irq __enable_fiq - #define __disable_fault_irq __disable_fiq - - - #endif /* (__CORTEX_M >= 0x03) */ - - __IAR_FT uint32_t __ROR(uint32_t op1, uint32_t op2) - { - return (op1 >> op2) | (op1 << ((sizeof(op1)*8)-op2)); - } - - #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - - __IAR_FT uint32_t __get_MSPLIM(void) - { - uint32_t res; - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - res = 0U; - #else - __asm volatile("MRS %0,MSPLIM" : "=r" (res)); - #endif - return res; - } - - __IAR_FT void __set_MSPLIM(uint32_t value) - { - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure MSPLIM is RAZ/WI - (void)value; - #else - __asm volatile("MSR MSPLIM,%0" :: "r" (value)); - #endif - } - - __IAR_FT uint32_t __get_PSPLIM(void) - { - uint32_t res; - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - res = 0U; - #else - __asm volatile("MRS %0,PSPLIM" : "=r" (res)); - #endif - return res; - } - - __IAR_FT void __set_PSPLIM(uint32_t value) - { - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)value; - #else - __asm volatile("MSR PSPLIM,%0" :: "r" (value)); - #endif - } - - __IAR_FT uint32_t __TZ_get_CONTROL_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,CONTROL_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_CONTROL_NS(uint32_t value) - { - __asm volatile("MSR CONTROL_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_PSP_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,PSP_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_PSP_NS(uint32_t value) - { - __asm volatile("MSR PSP_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_MSP_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,MSP_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_MSP_NS(uint32_t value) - { - __asm volatile("MSR MSP_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_SP_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,SP_NS" : "=r" (res)); - return res; - } - __IAR_FT void __TZ_set_SP_NS(uint32_t value) - { - __asm volatile("MSR SP_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_PRIMASK_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,PRIMASK_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_PRIMASK_NS(uint32_t value) - { - __asm volatile("MSR PRIMASK_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_BASEPRI_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,BASEPRI_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_BASEPRI_NS(uint32_t value) - { - __asm volatile("MSR BASEPRI_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_FAULTMASK_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,FAULTMASK_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_FAULTMASK_NS(uint32_t value) - { - __asm volatile("MSR FAULTMASK_NS,%0" :: "r" (value)); - } - - __IAR_FT uint32_t __TZ_get_PSPLIM_NS(void) - { - uint32_t res; - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - res = 0U; - #else - __asm volatile("MRS %0,PSPLIM_NS" : "=r" (res)); - #endif - return res; - } - - __IAR_FT void __TZ_set_PSPLIM_NS(uint32_t value) - { - #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ - (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) - // without main extensions, the non-secure PSPLIM is RAZ/WI - (void)value; - #else - __asm volatile("MSR PSPLIM_NS,%0" :: "r" (value)); - #endif - } - - __IAR_FT uint32_t __TZ_get_MSPLIM_NS(void) - { - uint32_t res; - __asm volatile("MRS %0,MSPLIM_NS" : "=r" (res)); - return res; - } - - __IAR_FT void __TZ_set_MSPLIM_NS(uint32_t value) - { - __asm volatile("MSR MSPLIM_NS,%0" :: "r" (value)); - } - - #endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ - -#endif /* __ICCARM_INTRINSICS_VERSION__ == 2 */ - -#define __BKPT(value) __asm volatile ("BKPT %0" : : "i"(value)) - -#if __IAR_M0_FAMILY - __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) - { - if ((sat >= 1U) && (sat <= 32U)) - { - const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); - const int32_t min = -1 - max ; - if (val > max) - { - return max; - } - else if (val < min) - { - return min; - } - } - return val; - } - - __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) - { - if (sat <= 31U) - { - const uint32_t max = ((1U << sat) - 1U); - if (val > (int32_t)max) - { - return max; - } - else if (val < 0) - { - return 0U; - } - } - return (uint32_t)val; - } -#endif - -#if (__CORTEX_M >= 0x03) /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ - - __IAR_FT uint8_t __LDRBT(volatile uint8_t *addr) - { - uint32_t res; - __ASM("LDRBT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); - return ((uint8_t)res); - } - - __IAR_FT uint16_t __LDRHT(volatile uint16_t *addr) - { - uint32_t res; - __ASM("LDRHT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); - return ((uint16_t)res); - } - - __IAR_FT uint32_t __LDRT(volatile uint32_t *addr) - { - uint32_t res; - __ASM("LDRT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); - return res; - } - - __IAR_FT void __STRBT(uint8_t value, volatile uint8_t *addr) - { - __ASM("STRBT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); - } - - __IAR_FT void __STRHT(uint16_t value, volatile uint16_t *addr) - { - __ASM("STRHT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); - } - - __IAR_FT void __STRT(uint32_t value, volatile uint32_t *addr) - { - __ASM("STRT %1, [%0]" : : "r" (addr), "r" (value) : "memory"); - } - -#endif /* (__CORTEX_M >= 0x03) */ - -#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ - (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) - - - __IAR_FT uint8_t __LDAB(volatile uint8_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return ((uint8_t)res); - } - - __IAR_FT uint16_t __LDAH(volatile uint16_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return ((uint16_t)res); - } - - __IAR_FT uint32_t __LDA(volatile uint32_t *ptr) - { - uint32_t res; - __ASM volatile ("LDA %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return res; - } - - __IAR_FT void __STLB(uint8_t value, volatile uint8_t *ptr) - { - __ASM volatile ("STLB %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); - } - - __IAR_FT void __STLH(uint16_t value, volatile uint16_t *ptr) - { - __ASM volatile ("STLH %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); - } - - __IAR_FT void __STL(uint32_t value, volatile uint32_t *ptr) - { - __ASM volatile ("STL %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); - } - - __IAR_FT uint8_t __LDAEXB(volatile uint8_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAEXB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return ((uint8_t)res); - } - - __IAR_FT uint16_t __LDAEXH(volatile uint16_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAEXH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return ((uint16_t)res); - } - - __IAR_FT uint32_t __LDAEX(volatile uint32_t *ptr) - { - uint32_t res; - __ASM volatile ("LDAEX %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); - return res; - } - - __IAR_FT uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) - { - uint32_t res; - __ASM volatile ("STLEXB %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); - return res; - } - - __IAR_FT uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) - { - uint32_t res; - __ASM volatile ("STLEXH %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); - return res; - } - - __IAR_FT uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) - { - uint32_t res; - __ASM volatile ("STLEX %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); - return res; - } - -#endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ - -#undef __IAR_FT -#undef __IAR_M0_FAMILY -#undef __ICCARM_V8 - -#pragma diag_default=Pe940 -#pragma diag_default=Pe177 - -#endif /* __CMSIS_ICCARM_H__ */ +/**************************************************************************//** + * @file cmsis_iccarm.h + * @brief CMSIS compiler ICCARM (IAR Compiler for Arm) header file + * @version V5.1.0 + * @date 08. May 2019 + ******************************************************************************/ + +//------------------------------------------------------------------------------ +// +// Copyright (c) 2017-2019 IAR Systems +// Copyright (c) 2017-2019 Arm Limited. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License") +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//------------------------------------------------------------------------------ + + +#ifndef __CMSIS_ICCARM_H__ +#define __CMSIS_ICCARM_H__ + +#ifndef __ICCARM__ + #error This file should only be compiled by ICCARM +#endif + +#pragma system_include + +#define __IAR_FT _Pragma("inline=forced") __intrinsic + +#if (__VER__ >= 8000000) + #define __ICCARM_V8 1 +#else + #define __ICCARM_V8 0 +#endif + +#ifndef __ALIGNED + #if __ICCARM_V8 + #define __ALIGNED(x) __attribute__((aligned(x))) + #elif (__VER__ >= 7080000) + /* Needs IAR language extensions */ + #define __ALIGNED(x) __attribute__((aligned(x))) + #else + #warning No compiler specific solution for __ALIGNED.__ALIGNED is ignored. + #define __ALIGNED(x) + #endif +#endif + + +/* Define compiler macros for CPU architecture, used in CMSIS 5. + */ +#if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__ || __ARM_ARCH_8M_BASE__ || __ARM_ARCH_8M_MAIN__ +/* Macros already defined */ +#else + #if defined(__ARM8M_MAINLINE__) || defined(__ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM_ARCH_PROFILE) && __ARM_ARCH_PROFILE == 'M' + #if __ARM_ARCH == 6 + #define __ARM_ARCH_6M__ 1 + #elif __ARM_ARCH == 7 + #if __ARM_FEATURE_DSP + #define __ARM_ARCH_7EM__ 1 + #else + #define __ARM_ARCH_7M__ 1 + #endif + #endif /* __ARM_ARCH */ + #endif /* __ARM_ARCH_PROFILE == 'M' */ +#endif + +/* Alternativ core deduction for older ICCARM's */ +#if !defined(__ARM_ARCH_6M__) && !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7EM__) && \ + !defined(__ARM_ARCH_8M_BASE__) && !defined(__ARM_ARCH_8M_MAIN__) + #if defined(__ARM6M__) && (__CORE__ == __ARM6M__) + #define __ARM_ARCH_6M__ 1 + #elif defined(__ARM7M__) && (__CORE__ == __ARM7M__) + #define __ARM_ARCH_7M__ 1 + #elif defined(__ARM7EM__) && (__CORE__ == __ARM7EM__) + #define __ARM_ARCH_7EM__ 1 + #elif defined(__ARM8M_BASELINE__) && (__CORE == __ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM8M_MAINLINE__) && (__CORE == __ARM8M_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8EM_MAINLINE__) && (__CORE == __ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #else + #error "Unknown target." + #endif +#endif + + + +#if defined(__ARM_ARCH_6M__) && __ARM_ARCH_6M__==1 + #define __IAR_M0_FAMILY 1 +#elif defined(__ARM_ARCH_8M_BASE__) && __ARM_ARCH_8M_BASE__==1 + #define __IAR_M0_FAMILY 1 +#else + #define __IAR_M0_FAMILY 0 +#endif + + +#ifndef __ASM + #define __ASM __asm +#endif + +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +#ifndef __INLINE + #define __INLINE inline +#endif + +#ifndef __NO_RETURN + #if __ICCARM_V8 + #define __NO_RETURN __attribute__((__noreturn__)) + #else + #define __NO_RETURN _Pragma("object_attribute=__noreturn") + #endif +#endif + +#ifndef __PACKED + #if __ICCARM_V8 + #define __PACKED __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED __packed + #endif +#endif + +#ifndef __PACKED_STRUCT + #if __ICCARM_V8 + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_STRUCT __packed struct + #endif +#endif + +#ifndef __PACKED_UNION + #if __ICCARM_V8 + #define __PACKED_UNION union __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_UNION __packed union + #endif +#endif + +#ifndef __RESTRICT + #if __ICCARM_V8 + #define __RESTRICT __restrict + #else + /* Needs IAR language extensions */ + #define __RESTRICT restrict + #endif +#endif + +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif + +#ifndef __FORCEINLINE + #define __FORCEINLINE _Pragma("inline=forced") +#endif + +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __FORCEINLINE __STATIC_INLINE +#endif + +#ifndef __UNALIGNED_UINT16_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint16_t __iar_uint16_read(void const *ptr) +{ + return *(__packed uint16_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT16_READ(PTR) __iar_uint16_read(PTR) +#endif + + +#ifndef __UNALIGNED_UINT16_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint16_write(void const *ptr, uint16_t val) +{ + *(__packed uint16_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT16_WRITE(PTR,VAL) __iar_uint16_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint32_t __iar_uint32_read(void const *ptr) +{ + return *(__packed uint32_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT32_READ(PTR) __iar_uint32_read(PTR) +#endif + +#ifndef __UNALIGNED_UINT32_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint32_write(void const *ptr, uint32_t val) +{ + *(__packed uint32_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT32_WRITE(PTR,VAL) __iar_uint32_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32 /* deprecated */ +#pragma language=save +#pragma language=extended +__packed struct __iar_u32 { uint32_t v; }; +#pragma language=restore +#define __UNALIGNED_UINT32(PTR) (((struct __iar_u32 *)(PTR))->v) +#endif + +#ifndef __USED + #if __ICCARM_V8 + #define __USED __attribute__((used)) + #else + #define __USED _Pragma("__root") + #endif +#endif + +#ifndef __WEAK + #if __ICCARM_V8 + #define __WEAK __attribute__((weak)) + #else + #define __WEAK _Pragma("__weak") + #endif +#endif + +#ifndef __PROGRAM_START +#define __PROGRAM_START __iar_program_start +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP CSTACK$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT CSTACK$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __vector_table +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE @".intvec" +#endif + +#ifndef __ICCARM_INTRINSICS_VERSION__ + #define __ICCARM_INTRINSICS_VERSION__ 0 +#endif + +#if __ICCARM_INTRINSICS_VERSION__ == 2 + + #if defined(__CLZ) + #undef __CLZ + #endif + #if defined(__REVSH) + #undef __REVSH + #endif + #if defined(__RBIT) + #undef __RBIT + #endif + #if defined(__SSAT) + #undef __SSAT + #endif + #if defined(__USAT) + #undef __USAT + #endif + + #include "iccarm_builtin.h" + + #define __disable_fault_irq __iar_builtin_disable_fiq + #define __disable_irq __iar_builtin_disable_interrupt + #define __enable_fault_irq __iar_builtin_enable_fiq + #define __enable_irq __iar_builtin_enable_interrupt + #define __arm_rsr __iar_builtin_rsr + #define __arm_wsr __iar_builtin_wsr + + + #define __get_APSR() (__arm_rsr("APSR")) + #define __get_BASEPRI() (__arm_rsr("BASEPRI")) + #define __get_CONTROL() (__arm_rsr("CONTROL")) + #define __get_FAULTMASK() (__arm_rsr("FAULTMASK")) + + #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + #define __get_FPSCR() (__arm_rsr("FPSCR")) + #define __set_FPSCR(VALUE) (__arm_wsr("FPSCR", (VALUE))) + #else + #define __get_FPSCR() ( 0 ) + #define __set_FPSCR(VALUE) ((void)VALUE) + #endif + + #define __get_IPSR() (__arm_rsr("IPSR")) + #define __get_MSP() (__arm_rsr("MSP")) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __get_MSPLIM() (0U) + #else + #define __get_MSPLIM() (__arm_rsr("MSPLIM")) + #endif + #define __get_PRIMASK() (__arm_rsr("PRIMASK")) + #define __get_PSP() (__arm_rsr("PSP")) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __get_PSPLIM() (0U) + #else + #define __get_PSPLIM() (__arm_rsr("PSPLIM")) + #endif + + #define __get_xPSR() (__arm_rsr("xPSR")) + + #define __set_BASEPRI(VALUE) (__arm_wsr("BASEPRI", (VALUE))) + #define __set_BASEPRI_MAX(VALUE) (__arm_wsr("BASEPRI_MAX", (VALUE))) + #define __set_CONTROL(VALUE) (__arm_wsr("CONTROL", (VALUE))) + #define __set_FAULTMASK(VALUE) (__arm_wsr("FAULTMASK", (VALUE))) + #define __set_MSP(VALUE) (__arm_wsr("MSP", (VALUE))) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __set_MSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_MSPLIM(VALUE) (__arm_wsr("MSPLIM", (VALUE))) + #endif + #define __set_PRIMASK(VALUE) (__arm_wsr("PRIMASK", (VALUE))) + #define __set_PSP(VALUE) (__arm_wsr("PSP", (VALUE))) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __set_PSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_PSPLIM(VALUE) (__arm_wsr("PSPLIM", (VALUE))) + #endif + + #define __TZ_get_CONTROL_NS() (__arm_rsr("CONTROL_NS")) + #define __TZ_set_CONTROL_NS(VALUE) (__arm_wsr("CONTROL_NS", (VALUE))) + #define __TZ_get_PSP_NS() (__arm_rsr("PSP_NS")) + #define __TZ_set_PSP_NS(VALUE) (__arm_wsr("PSP_NS", (VALUE))) + #define __TZ_get_MSP_NS() (__arm_rsr("MSP_NS")) + #define __TZ_set_MSP_NS(VALUE) (__arm_wsr("MSP_NS", (VALUE))) + #define __TZ_get_SP_NS() (__arm_rsr("SP_NS")) + #define __TZ_set_SP_NS(VALUE) (__arm_wsr("SP_NS", (VALUE))) + #define __TZ_get_PRIMASK_NS() (__arm_rsr("PRIMASK_NS")) + #define __TZ_set_PRIMASK_NS(VALUE) (__arm_wsr("PRIMASK_NS", (VALUE))) + #define __TZ_get_BASEPRI_NS() (__arm_rsr("BASEPRI_NS")) + #define __TZ_set_BASEPRI_NS(VALUE) (__arm_wsr("BASEPRI_NS", (VALUE))) + #define __TZ_get_FAULTMASK_NS() (__arm_rsr("FAULTMASK_NS")) + #define __TZ_set_FAULTMASK_NS(VALUE)(__arm_wsr("FAULTMASK_NS", (VALUE))) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __TZ_get_PSPLIM_NS() (0U) + #define __TZ_set_PSPLIM_NS(VALUE) ((void)(VALUE)) + #else + #define __TZ_get_PSPLIM_NS() (__arm_rsr("PSPLIM_NS")) + #define __TZ_set_PSPLIM_NS(VALUE) (__arm_wsr("PSPLIM_NS", (VALUE))) + #endif + + #define __TZ_get_MSPLIM_NS() (__arm_rsr("MSPLIM_NS")) + #define __TZ_set_MSPLIM_NS(VALUE) (__arm_wsr("MSPLIM_NS", (VALUE))) + + #define __NOP __iar_builtin_no_operation + + #define __CLZ __iar_builtin_CLZ + #define __CLREX __iar_builtin_CLREX + + #define __DMB __iar_builtin_DMB + #define __DSB __iar_builtin_DSB + #define __ISB __iar_builtin_ISB + + #define __LDREXB __iar_builtin_LDREXB + #define __LDREXH __iar_builtin_LDREXH + #define __LDREXW __iar_builtin_LDREX + + #define __RBIT __iar_builtin_RBIT + #define __REV __iar_builtin_REV + #define __REV16 __iar_builtin_REV16 + + __IAR_FT int16_t __REVSH(int16_t val) + { + return (int16_t) __iar_builtin_REVSH(val); + } + + #define __ROR __iar_builtin_ROR + #define __RRX __iar_builtin_RRX + + #define __SEV __iar_builtin_SEV + + #if !__IAR_M0_FAMILY + #define __SSAT __iar_builtin_SSAT + #endif + + #define __STREXB __iar_builtin_STREXB + #define __STREXH __iar_builtin_STREXH + #define __STREXW __iar_builtin_STREX + + #if !__IAR_M0_FAMILY + #define __USAT __iar_builtin_USAT + #endif + + #define __WFE __iar_builtin_WFE + #define __WFI __iar_builtin_WFI + + #if __ARM_MEDIA__ + #define __SADD8 __iar_builtin_SADD8 + #define __QADD8 __iar_builtin_QADD8 + #define __SHADD8 __iar_builtin_SHADD8 + #define __UADD8 __iar_builtin_UADD8 + #define __UQADD8 __iar_builtin_UQADD8 + #define __UHADD8 __iar_builtin_UHADD8 + #define __SSUB8 __iar_builtin_SSUB8 + #define __QSUB8 __iar_builtin_QSUB8 + #define __SHSUB8 __iar_builtin_SHSUB8 + #define __USUB8 __iar_builtin_USUB8 + #define __UQSUB8 __iar_builtin_UQSUB8 + #define __UHSUB8 __iar_builtin_UHSUB8 + #define __SADD16 __iar_builtin_SADD16 + #define __QADD16 __iar_builtin_QADD16 + #define __SHADD16 __iar_builtin_SHADD16 + #define __UADD16 __iar_builtin_UADD16 + #define __UQADD16 __iar_builtin_UQADD16 + #define __UHADD16 __iar_builtin_UHADD16 + #define __SSUB16 __iar_builtin_SSUB16 + #define __QSUB16 __iar_builtin_QSUB16 + #define __SHSUB16 __iar_builtin_SHSUB16 + #define __USUB16 __iar_builtin_USUB16 + #define __UQSUB16 __iar_builtin_UQSUB16 + #define __UHSUB16 __iar_builtin_UHSUB16 + #define __SASX __iar_builtin_SASX + #define __QASX __iar_builtin_QASX + #define __SHASX __iar_builtin_SHASX + #define __UASX __iar_builtin_UASX + #define __UQASX __iar_builtin_UQASX + #define __UHASX __iar_builtin_UHASX + #define __SSAX __iar_builtin_SSAX + #define __QSAX __iar_builtin_QSAX + #define __SHSAX __iar_builtin_SHSAX + #define __USAX __iar_builtin_USAX + #define __UQSAX __iar_builtin_UQSAX + #define __UHSAX __iar_builtin_UHSAX + #define __USAD8 __iar_builtin_USAD8 + #define __USADA8 __iar_builtin_USADA8 + #define __SSAT16 __iar_builtin_SSAT16 + #define __USAT16 __iar_builtin_USAT16 + #define __UXTB16 __iar_builtin_UXTB16 + #define __UXTAB16 __iar_builtin_UXTAB16 + #define __SXTB16 __iar_builtin_SXTB16 + #define __SXTAB16 __iar_builtin_SXTAB16 + #define __SMUAD __iar_builtin_SMUAD + #define __SMUADX __iar_builtin_SMUADX + #define __SMMLA __iar_builtin_SMMLA + #define __SMLAD __iar_builtin_SMLAD + #define __SMLADX __iar_builtin_SMLADX + #define __SMLALD __iar_builtin_SMLALD + #define __SMLALDX __iar_builtin_SMLALDX + #define __SMUSD __iar_builtin_SMUSD + #define __SMUSDX __iar_builtin_SMUSDX + #define __SMLSD __iar_builtin_SMLSD + #define __SMLSDX __iar_builtin_SMLSDX + #define __SMLSLD __iar_builtin_SMLSLD + #define __SMLSLDX __iar_builtin_SMLSLDX + #define __SEL __iar_builtin_SEL + #define __QADD __iar_builtin_QADD + #define __QSUB __iar_builtin_QSUB + #define __PKHBT __iar_builtin_PKHBT + #define __PKHTB __iar_builtin_PKHTB + #endif + +#else /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #define __CLZ __cmsis_iar_clz_not_active + #define __SSAT __cmsis_iar_ssat_not_active + #define __USAT __cmsis_iar_usat_not_active + #define __RBIT __cmsis_iar_rbit_not_active + #define __get_APSR __cmsis_iar_get_APSR_not_active + #endif + + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #define __get_FPSCR __cmsis_iar_get_FPSR_not_active + #define __set_FPSCR __cmsis_iar_set_FPSR_not_active + #endif + + #ifdef __INTRINSICS_INCLUDED + #error intrinsics.h is already included previously! + #endif + + #include + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #undef __CLZ + #undef __SSAT + #undef __USAT + #undef __RBIT + #undef __get_APSR + + __STATIC_INLINE uint8_t __CLZ(uint32_t data) + { + if (data == 0U) { return 32U; } + + uint32_t count = 0U; + uint32_t mask = 0x80000000U; + + while ((data & mask) == 0U) + { + count += 1U; + mask = mask >> 1U; + } + return count; + } + + __STATIC_INLINE uint32_t __RBIT(uint32_t v) + { + uint8_t sc = 31U; + uint32_t r = v; + for (v >>= 1U; v; v >>= 1U) + { + r <<= 1U; + r |= v & 1U; + sc--; + } + return (r << sc); + } + + __STATIC_INLINE uint32_t __get_APSR(void) + { + uint32_t res; + __asm("MRS %0,APSR" : "=r" (res)); + return res; + } + + #endif + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #undef __get_FPSCR + #undef __set_FPSCR + #define __get_FPSCR() (0) + #define __set_FPSCR(VALUE) ((void)VALUE) + #endif + + #pragma diag_suppress=Pe940 + #pragma diag_suppress=Pe177 + + #define __enable_irq __enable_interrupt + #define __disable_irq __disable_interrupt + #define __NOP __no_operation + + #define __get_xPSR __get_PSR + + #if (!defined(__ARM_ARCH_6M__) || __ARM_ARCH_6M__==0) + + __IAR_FT uint32_t __LDREXW(uint32_t volatile *ptr) + { + return __LDREX((unsigned long *)ptr); + } + + __IAR_FT uint32_t __STREXW(uint32_t value, uint32_t volatile *ptr) + { + return __STREX(value, (unsigned long *)ptr); + } + #endif + + + /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + #if (__CORTEX_M >= 0x03) + + __IAR_FT uint32_t __RRX(uint32_t value) + { + uint32_t result; + __ASM("RRX %0, %1" : "=r"(result) : "r" (value) : "cc"); + return(result); + } + + __IAR_FT void __set_BASEPRI_MAX(uint32_t value) + { + __asm volatile("MSR BASEPRI_MAX,%0"::"r" (value)); + } + + + #define __enable_fault_irq __enable_fiq + #define __disable_fault_irq __disable_fiq + + + #endif /* (__CORTEX_M >= 0x03) */ + + __IAR_FT uint32_t __ROR(uint32_t op1, uint32_t op2) + { + return (op1 >> op2) | (op1 << ((sizeof(op1)*8)-op2)); + } + + #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + __IAR_FT uint32_t __get_MSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,MSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_MSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR MSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __get_PSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,PSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_PSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR PSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __TZ_get_CONTROL_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,CONTROL_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_CONTROL_NS(uint32_t value) + { + __asm volatile("MSR CONTROL_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PSP_NS(uint32_t value) + { + __asm volatile("MSR PSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_MSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSP_NS(uint32_t value) + { + __asm volatile("MSR MSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_SP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,SP_NS" : "=r" (res)); + return res; + } + __IAR_FT void __TZ_set_SP_NS(uint32_t value) + { + __asm volatile("MSR SP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PRIMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PRIMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PRIMASK_NS(uint32_t value) + { + __asm volatile("MSR PRIMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_BASEPRI_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,BASEPRI_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_BASEPRI_NS(uint32_t value) + { + __asm volatile("MSR BASEPRI_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_FAULTMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,FAULTMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_FAULTMASK_NS(uint32_t value) + { + __asm volatile("MSR FAULTMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSPLIM_NS(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,PSPLIM_NS" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __TZ_set_PSPLIM_NS(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR PSPLIM_NS,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __TZ_get_MSPLIM_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSPLIM_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSPLIM_NS(uint32_t value) + { + __asm volatile("MSR MSPLIM_NS,%0" :: "r" (value)); + } + + #endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#endif /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + +#define __BKPT(value) __asm volatile ("BKPT %0" : : "i"(value)) + +#if __IAR_M0_FAMILY + __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) + { + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; + } + + __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) + { + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; + } +#endif + +#if (__CORTEX_M >= 0x03) /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + + __IAR_FT uint8_t __LDRBT(volatile uint8_t *addr) + { + uint32_t res; + __ASM("LDRBT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDRHT(volatile uint16_t *addr) + { + uint32_t res; + __ASM("LDRHT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDRT(volatile uint32_t *addr) + { + uint32_t res; + __ASM("LDRT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return res; + } + + __IAR_FT void __STRBT(uint8_t value, volatile uint8_t *addr) + { + __ASM("STRBT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRHT(uint16_t value, volatile uint16_t *addr) + { + __ASM("STRHT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRT(uint32_t value, volatile uint32_t *addr) + { + __ASM("STRT %1, [%0]" : : "r" (addr), "r" (value) : "memory"); + } + +#endif /* (__CORTEX_M >= 0x03) */ + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + + __IAR_FT uint8_t __LDAB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDA(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDA %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return res; + } + + __IAR_FT void __STLB(uint8_t value, volatile uint8_t *ptr) + { + __ASM volatile ("STLB %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STLH(uint16_t value, volatile uint16_t *ptr) + { + __ASM volatile ("STLH %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STL(uint32_t value, volatile uint32_t *ptr) + { + __ASM volatile ("STL %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT uint8_t __LDAEXB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAEXH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDAEX(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEX %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXB %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXH %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEX %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + +#endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#undef __IAR_FT +#undef __IAR_M0_FAMILY +#undef __ICCARM_V8 + +#pragma diag_default=Pe940 +#pragma diag_default=Pe177 + +#endif /* __CMSIS_ICCARM_H__ */ diff --git a/eps/firmware/bsp/cmsis/Include/cmsis_version.h b/eps/v1/firmware/bsp/cmsis/Include/cmsis_version.h similarity index 97% rename from eps/firmware/bsp/cmsis/Include/cmsis_version.h rename to eps/v1/firmware/bsp/cmsis/Include/cmsis_version.h index 3174cf6..f2e2746 100644 --- a/eps/firmware/bsp/cmsis/Include/cmsis_version.h +++ b/eps/v1/firmware/bsp/cmsis/Include/cmsis_version.h @@ -1,39 +1,39 @@ -/**************************************************************************//** - * @file cmsis_version.h - * @brief CMSIS Core(M) Version definitions - * @version V5.0.3 - * @date 24. June 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 ARM Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CMSIS_VERSION_H -#define __CMSIS_VERSION_H - -/* CMSIS Version definitions */ -#define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */ -#define __CM_CMSIS_VERSION_SUB ( 3U) /*!< [15:0] CMSIS Core(M) sub version */ -#define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \ - __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */ -#endif +/**************************************************************************//** + * @file cmsis_version.h + * @brief CMSIS Core(M) Version definitions + * @version V5.0.3 + * @date 24. June 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CMSIS_VERSION_H +#define __CMSIS_VERSION_H + +/* CMSIS Version definitions */ +#define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */ +#define __CM_CMSIS_VERSION_SUB ( 3U) /*!< [15:0] CMSIS Core(M) sub version */ +#define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \ + __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */ +#endif diff --git a/eps/firmware/bsp/cmsis/Include/core_armv81mml.h b/eps/v1/firmware/bsp/cmsis/Include/core_armv81mml.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_armv81mml.h rename to eps/v1/firmware/bsp/cmsis/Include/core_armv81mml.h index 8cee930..8441e57 100644 --- a/eps/firmware/bsp/cmsis/Include/core_armv81mml.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_armv81mml.h @@ -1,2968 +1,2968 @@ -/**************************************************************************//** - * @file core_armv81mml.h - * @brief CMSIS Armv8.1-M Mainline Core Peripheral Access Layer Header File - * @version V1.0.0 - * @date 15. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2018-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_ARMV81MML_H_GENERIC -#define __CORE_ARMV81MML_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_ARMV81MML - @{ - */ - -#include "cmsis_version.h" - -#define __ARM_ARCH_8M_MAIN__ 1 // patching for now -/* CMSIS ARMV81MML definitions */ -#define __ARMv81MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __ARMv81MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __ARMv81MML_CMSIS_VERSION ((__ARMv81MML_CMSIS_VERSION_MAIN << 16U) | \ - __ARMv81MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (81U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV81MML_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_ARMV81MML_H_DEPENDANT -#define __CORE_ARMV81MML_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __ARMv81MML_REV - #define __ARMv81MML_REV 0x0000U - #warning "__ARMv81MML_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DSP_PRESENT - #define __DSP_PRESENT 0U - #warning "__DSP_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group ARMv81MML */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ -#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ - uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ - uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ -#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ - -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED6[580U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ - uint32_t RESERVED3[92U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ - uint32_t RESERVED7[6U]; - __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ - __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ - __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ - __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ - __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ - uint32_t RESERVED8[1U]; - __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ -#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ -#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ - -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ -#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ -#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Non-Secure Access Control Register Definitions */ -#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ -#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ - -#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ -#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ - -#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ -#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/* Instruction Tightly-Coupled Memory Control Register Definitions */ -#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ -#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ - -#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ -#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ - -#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ -#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ - -#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ -#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ - -/* Data Tightly-Coupled Memory Control Register Definitions */ -#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ -#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ - -#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ -#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ - -#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ -#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ - -#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ -#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ - -/* AHBP Control Register Definitions */ -#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ -#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ - -#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ -#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ - -/* L1 Cache Control Register Definitions */ -#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ -#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ - -#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ -#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ - -#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ -#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ - -/* AHBS Control Register Definitions */ -#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ -#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ - -#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ -#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ - -#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ -#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ - -/* Auxiliary Bus Fault Status Register Definitions */ -#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ -#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ - -#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ -#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ - -#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ -#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ - -#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ -#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ - -#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ -#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ - -#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ -#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ - __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[29U]; - __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ - __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ - __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ - uint32_t RESERVED6[4U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Stimulus Port Register Definitions */ -#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ -#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ - -#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ -#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ -#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ - -#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ -#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Integration Write Register Definitions */ -#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ -#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ - -/* ITM Integration Read Register Definitions */ -#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ -#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ - -/* ITM Integration Mode Control Register Definitions */ -#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ -#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ - uint32_t RESERVED32[934U]; - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ - uint32_t RESERVED33[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ -#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY_Pos 0U /*!< TPI ITATBCTR2: ATREADY Position */ -#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/) /*!< TPI ITATBCTR2: ATREADY Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY_Pos 0U /*!< TPI ITATBCTR0: ATREADY Position */ -#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/) /*!< TPI ITATBCTR0: ATREADY Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_MajorType_Pos 4U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -#define TPI_DEVTYPE_SubType_Pos 0U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ - __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ - __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ - __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ - uint32_t RESERVED0[1]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_PXN_Pos 4U /*!< MPU RLAR: PXN Position */ -#define MPU_RLAR_PXN_Msk (0x1UL << MPU_RLAR_PXN_Pos) /*!< MPU RLAR: PXN Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#else - uint32_t RESERVED0[3]; -#endif - __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ - __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/* Secure Fault Status Register Definitions */ -#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ -#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ - -#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ -#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ - -#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ -#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ - -#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ -#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ - -#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ -#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ - -#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ -#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ - -#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ -#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ - -#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ -#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ -#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ - -#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ -#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ - -#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ -#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ - -#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ -#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ - -#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ -#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ - -#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ -#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ -#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ -#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - - #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ - #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - - #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ - #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Set Priority Grouping (non-secure) - \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB_NS->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ - SCB_NS->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping (non-secure) - \details Reads the priority grouping field from the non-secure NVIC when in secure state. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) -{ - return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV81MML_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_armv81mml.h + * @brief CMSIS Armv8.1-M Mainline Core Peripheral Access Layer Header File + * @version V1.0.0 + * @date 15. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2018-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV81MML_H_GENERIC +#define __CORE_ARMV81MML_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMV81MML + @{ + */ + +#include "cmsis_version.h" + +#define __ARM_ARCH_8M_MAIN__ 1 // patching for now +/* CMSIS ARMV81MML definitions */ +#define __ARMv81MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv81MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv81MML_CMSIS_VERSION ((__ARMv81MML_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv81MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (81U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV81MML_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV81MML_H_DEPENDANT +#define __CORE_ARMV81MML_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv81MML_REV + #define __ARMv81MML_REV 0x0000U + #warning "__ARMv81MML_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv81MML */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6U]; + __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1U]; + __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/* Instruction Tightly-Coupled Memory Control Register Definitions */ +#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Register Definitions */ +#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register Definitions */ +#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register Definitions */ +#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ + +/* AHBS Control Register Definitions */ +#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register Definitions */ +#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ +#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0U /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0U /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_MajorType_Pos 4U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +#define TPI_DEVTYPE_SubType_Pos 0U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_PXN_Pos 4U /*!< MPU RLAR: PXN Position */ +#define MPU_RLAR_PXN_Msk (0x1UL << MPU_RLAR_PXN_Pos) /*!< MPU RLAR: PXN Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV81MML_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h b/eps/v1/firmware/bsp/cmsis/Include/core_armv8mbl.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h rename to eps/v1/firmware/bsp/cmsis/Include/core_armv8mbl.h index 266f180..344dca5 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_armv8mbl.h @@ -1,1921 +1,1921 @@ -/**************************************************************************//** - * @file core_armv8mbl.h - * @brief CMSIS Armv8-M Baseline Core Peripheral Access Layer Header File - * @version V5.0.8 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_ARMV8MBL_H_GENERIC -#define __CORE_ARMV8MBL_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_ARMv8MBL - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS definitions */ -#define __ARMv8MBL_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __ARMv8MBL_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __ARMv8MBL_CMSIS_VERSION ((__ARMv8MBL_CMSIS_VERSION_MAIN << 16U) | \ - __ARMv8MBL_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M ( 2U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV8MBL_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_ARMV8MBL_H_DEPENDANT -#define __CORE_ARMV8MBL_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __ARMv8MBL_REV - #define __ARMv8MBL_REV 0x0000U - #warning "__ARMv8MBL_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __VTOR_PRESENT - #define __VTOR_PRESENT 0U - #warning "__VTOR_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif - - #ifndef __ETM_PRESENT - #define __ETM_PRESENT 0U - #warning "__ETM_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MTB_PRESENT - #define __MTB_PRESENT 0U - #warning "__MTB_PRESENT not defined in device header file; using default!" - #endif - -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group ARMv8MBL */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ -#else - uint32_t RESERVED0; -#endif - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#endif - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - uint32_t RESERVED0[6U]; - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[809U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ - uint32_t RESERVED4[4U]; - __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ -#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI Periodic Synchronization Control Register Definitions */ -#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ -#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ - -/* TPI Software Lock Status Register Definitions */ -#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ -#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ - -#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ -#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ - -#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ -#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - uint32_t RESERVED0[7U]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 1U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#endif -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register */ -#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ -#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - If VTOR is not present address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t *vectors = (uint32_t *)SCB->VTOR; -#else - uint32_t *vectors = (uint32_t *)0x0U; -#endif - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t *vectors = (uint32_t *)SCB->VTOR; -#else - uint32_t *vectors = (uint32_t *)0x0U; -#endif - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV8MBL_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_armv8mbl.h + * @brief CMSIS Armv8-M Baseline Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV8MBL_H_GENERIC +#define __CORE_ARMV8MBL_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMv8MBL + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS definitions */ +#define __ARMv8MBL_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv8MBL_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv8MBL_CMSIS_VERSION ((__ARMv8MBL_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv8MBL_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M ( 2U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MBL_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV8MBL_H_DEPENDANT +#define __CORE_ARMV8MBL_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv8MBL_REV + #define __ARMv8MBL_REV 0x0000U + #warning "__ARMv8MBL_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif + + #ifndef __ETM_PRESENT + #define __ETM_PRESENT 0U + #warning "__ETM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MTB_PRESENT + #define __MTB_PRESENT 0U + #warning "__MTB_PRESENT not defined in device header file; using default!" + #endif + +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv8MBL */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + uint32_t RESERVED0[6U]; + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[809U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ + uint32_t RESERVED4[4U]; + __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ +#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI Periodic Synchronization Control Register Definitions */ +#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ +#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ + +/* TPI Software Lock Status Register Definitions */ +#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ +#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ + +#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ +#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ + +#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ +#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + uint32_t RESERVED0[7U]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#endif +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ +#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MBL_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h b/eps/v1/firmware/bsp/cmsis/Include/core_armv8mml.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h rename to eps/v1/firmware/bsp/cmsis/Include/core_armv8mml.h index ba5d83f..5ddb8ae 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_armv8mml.h @@ -1,2835 +1,2835 @@ -/**************************************************************************//** - * @file core_armv8mml.h - * @brief CMSIS Armv8-M Mainline Core Peripheral Access Layer Header File - * @version V5.1.0 - * @date 12. September 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_ARMV8MML_H_GENERIC -#define __CORE_ARMV8MML_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_ARMv8MML - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS Armv8MML definitions */ -#define __ARMv8MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __ARMv8MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __ARMv8MML_CMSIS_VERSION ((__ARMv8MML_CMSIS_VERSION_MAIN << 16U) | \ - __ARMv8MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (81U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined(__ARM_FEATURE_DSP) - #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV8MML_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_ARMV8MML_H_DEPENDANT -#define __CORE_ARMV8MML_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __ARMv8MML_REV - #define __ARMv8MML_REV 0x0000U - #warning "__ARMv8MML_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DSP_PRESENT - #define __DSP_PRESENT 0U - #warning "__DSP_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group ARMv8MML */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ -#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ - uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ - uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ -#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ - -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED6[580U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ - uint32_t RESERVED3[92U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ -#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ -#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ - -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ -#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ -#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Non-Secure Access Control Register Definitions */ -#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ -#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ - -#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ -#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ - -#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ -#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ - __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ - uint32_t RESERVED6[4U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Stimulus Port Register Definitions */ -#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ -#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ - -#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ -#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ -#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ - -#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ -#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ - uint32_t RESERVED32[934U]; - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ - uint32_t RESERVED33[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ -#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[809U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ - uint32_t RESERVED4[4U]; - __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ -#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI Periodic Synchronization Control Register Definitions */ -#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ -#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ - -/* TPI Software Lock Status Register Definitions */ -#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ -#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ - -#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ -#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ - -#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ -#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ - __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ - __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ - __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ - uint32_t RESERVED0[1]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#else - uint32_t RESERVED0[3]; -#endif - __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ - __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/* Secure Fault Status Register Definitions */ -#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ -#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ - -#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ -#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ - -#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ -#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ - -#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ -#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ - -#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ -#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ - -#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ -#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ - -#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ -#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ - -#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ -#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ -#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ - -#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ -#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ - -#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ -#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ - -#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ -#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ - -#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ -#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ - -#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ -#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ -#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ -#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - - #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ - #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - - #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ - #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Set Priority Grouping (non-secure) - \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB_NS->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB_NS->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping (non-secure) - \details Reads the priority grouping field from the non-secure NVIC when in secure state. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) -{ - return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_ARMV8MML_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_armv8mml.h + * @brief CMSIS Armv8-M Mainline Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 12. September 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV8MML_H_GENERIC +#define __CORE_ARMV8MML_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMv8MML + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS Armv8MML definitions */ +#define __ARMv8MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv8MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv8MML_CMSIS_VERSION ((__ARMv8MML_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv8MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (81U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MML_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV8MML_H_DEPENDANT +#define __CORE_ARMV8MML_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv8MML_REV + #define __ARMv8MML_REV 0x0000U + #warning "__ARMv8MML_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv8MML */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[809U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ + uint32_t RESERVED4[4U]; + __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ +#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI Periodic Synchronization Control Register Definitions */ +#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ +#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ + +/* TPI Software Lock Status Register Definitions */ +#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ +#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ + +#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ +#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ + +#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ +#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MML_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h b/eps/v1/firmware/bsp/cmsis/Include/core_cm0.h similarity index 97% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h rename to eps/v1/firmware/bsp/cmsis/Include/core_cm0.h index 70e4505..cafae5a 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_cm0.h @@ -1,952 +1,952 @@ -/**************************************************************************//** - * @file core_cm0.h - * @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File - * @version V5.0.6 - * @date 13. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM0_H_GENERIC -#define __CORE_CM0_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M0 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM0 definitions */ -#define __CM0_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM0_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16U) | \ - __CM0_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (0U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM0_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM0_H_DEPENDANT -#define __CORE_CM0_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM0_REV - #define __CM0_REV 0x0000U - #warning "__CM0_REV not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M0 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t _reserved0:1; /*!< bit: 0 Reserved */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[31U]; - __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[31U]; - __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[31U]; - __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[31U]; - uint32_t RESERVED4[64U]; - __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - uint32_t RESERVED0; - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Cortex-M0 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. - Therefore they are not covered by the Cortex-M0 header file. - @{ - */ -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ -/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0 */ - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - Address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = 0x0U; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M0 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = 0x0U; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM0_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm0.h + * @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File + * @version V5.0.6 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM0_H_GENERIC +#define __CORE_CM0_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M0 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM0 definitions */ +#define __CM0_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM0_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16U) | \ + __CM0_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (0U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM0_H_DEPENDANT +#define __CORE_CM0_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM0_REV + #define __CM0_REV 0x0000U + #warning "__CM0_REV not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M0 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + uint32_t RESERVED0; + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M0 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M0 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + Address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = 0x0U; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M0 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = 0x0U; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h b/eps/v1/firmware/bsp/cmsis/Include/core_cm0plus.h similarity index 97% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h rename to eps/v1/firmware/bsp/cmsis/Include/core_cm0plus.h index fe7b424..d104965 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_cm0plus.h @@ -1,1085 +1,1085 @@ -/**************************************************************************//** - * @file core_cm0plus.h - * @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File - * @version V5.0.7 - * @date 13. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM0PLUS_H_GENERIC -#define __CORE_CM0PLUS_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex-M0+ - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM0+ definitions */ -#define __CM0PLUS_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM0PLUS_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM0PLUS_CMSIS_VERSION ((__CM0PLUS_CMSIS_VERSION_MAIN << 16U) | \ - __CM0PLUS_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (0U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM0PLUS_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM0PLUS_H_DEPENDANT -#define __CORE_CM0PLUS_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM0PLUS_REV - #define __CM0PLUS_REV 0x0000U - #warning "__CM0PLUS_REV not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __VTOR_PRESENT - #define __VTOR_PRESENT 0U - #warning "__VTOR_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex-M0+ */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core MPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[31U]; - __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[31U]; - __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[31U]; - __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[31U]; - uint32_t RESERVED4[64U]; - __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ -#else - uint32_t RESERVED0; -#endif - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) -/* SCB Interrupt Control State Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 8U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0xFFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#endif - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ -} MPU_Type; - -#define MPU_TYPE_RALIASES 1U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Cortex-M0+ Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. - Therefore they are not covered by the Cortex-M0+ header file. - @{ - */ -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ -/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0+ */ - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - If VTOR is not present address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t vectors = SCB->VTOR; -#else - uint32_t vectors = 0x0U; -#endif - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M0+ does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t vectors = SCB->VTOR; -#else - uint32_t vectors = 0x0U; -#endif - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv7.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM0PLUS_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm0plus.h + * @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File + * @version V5.0.7 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM0PLUS_H_GENERIC +#define __CORE_CM0PLUS_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex-M0+ + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM0+ definitions */ +#define __CM0PLUS_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM0PLUS_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM0PLUS_CMSIS_VERSION ((__CM0PLUS_CMSIS_VERSION_MAIN << 16U) | \ + __CM0PLUS_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (0U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0PLUS_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM0PLUS_H_DEPENDANT +#define __CORE_CM0PLUS_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM0PLUS_REV + #define __CM0PLUS_REV 0x0000U + #warning "__CM0PLUS_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex-M0+ */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 8U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0xFFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M0+ Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M0+ header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0+ */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t vectors = SCB->VTOR; +#else + uint32_t vectors = 0x0U; +#endif + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M0+ does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t vectors = SCB->VTOR; +#else + uint32_t vectors = 0x0U; +#endif + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0PLUS_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/obc/firmware/bsp/cmsis/Include/core_cm1.h b/eps/v1/firmware/bsp/cmsis/Include/core_cm1.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm1.h rename to eps/v1/firmware/bsp/cmsis/Include/core_cm1.h diff --git a/eps/firmware/bsp/cmsis/Include/core_cm23.h b/eps/v1/firmware/bsp/cmsis/Include/core_cm23.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_cm23.h rename to eps/v1/firmware/bsp/cmsis/Include/core_cm23.h index 49f4a5b..b79c6af 100644 --- a/eps/firmware/bsp/cmsis/Include/core_cm23.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_cm23.h @@ -1,1996 +1,1996 @@ -/**************************************************************************//** - * @file core_cm23.h - * @brief CMSIS Cortex-M23 Core Peripheral Access Layer Header File - * @version V5.0.8 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM23_H_GENERIC -#define __CORE_CM23_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M23 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS definitions */ -#define __CM23_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM23_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM23_CMSIS_VERSION ((__CM23_CMSIS_VERSION_MAIN << 16U) | \ - __CM23_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (23U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM23_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM23_H_DEPENDANT -#define __CORE_CM23_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM23_REV - #define __CM23_REV 0x0000U - #warning "__CM23_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __VTOR_PRESENT - #define __VTOR_PRESENT 0U - #warning "__VTOR_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif - - #ifndef __ETM_PRESENT - #define __ETM_PRESENT 0U - #warning "__ETM_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MTB_PRESENT - #define __MTB_PRESENT 0U - #warning "__MTB_PRESENT not defined in device header file; using default!" - #endif - -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M23 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ -#else - uint32_t RESERVED0; -#endif - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#endif - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - uint32_t RESERVED0[6U]; - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ - __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ - __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration Test FIFO Test Data 0 Register Definitions */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ -#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ -#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ -#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ - -/* TPI Integration Test ATB Control Register 2 Register Definitions */ -#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ -#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ - -#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ -#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ - -#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ -#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ - -#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ -#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ - -/* TPI Integration Test FIFO Test Data 1 Register Definitions */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ -#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ -#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ -#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ - -/* TPI Integration Test ATB Control Register 0 Definitions */ -#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ -#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ - -#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ -#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ - -#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ -#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ - -#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ -#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - uint32_t RESERVED0[7U]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 1U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#endif -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register */ -#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ -#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else -/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for Cortex-M23 */ -/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for Cortex-M23 */ - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - If VTOR is not present address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t *vectors = (uint32_t *)SCB->VTOR; -#else - uint32_t *vectors = (uint32_t *)0x0U; -#endif - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ -#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) - uint32_t *vectors = (uint32_t *)SCB->VTOR; -#else - uint32_t *vectors = (uint32_t *)0x0U; -#endif - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM23_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm23.h + * @brief CMSIS Cortex-M23 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM23_H_GENERIC +#define __CORE_CM23_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M23 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS definitions */ +#define __CM23_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM23_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM23_CMSIS_VERSION ((__CM23_CMSIS_VERSION_MAIN << 16U) | \ + __CM23_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (23U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM23_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM23_H_DEPENDANT +#define __CORE_CM23_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM23_REV + #define __CM23_REV 0x0000U + #warning "__CM23_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif + + #ifndef __ETM_PRESENT + #define __ETM_PRESENT 0U + #warning "__ETM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MTB_PRESENT + #define __MTB_PRESENT 0U + #warning "__MTB_PRESENT not defined in device header file; using default!" + #endif + +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M23 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + uint32_t RESERVED0[6U]; + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + uint32_t RESERVED0[7U]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#endif +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ +#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else +/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for Cortex-M23 */ +/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for Cortex-M23 */ + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM23_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h b/eps/v1/firmware/bsp/cmsis/Include/core_cm3.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h rename to eps/v1/firmware/bsp/cmsis/Include/core_cm3.h index 1f69e8b..8157ca7 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_cm3.h @@ -1,1937 +1,1937 @@ -/**************************************************************************//** - * @file core_cm3.h - * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File - * @version V5.1.0 - * @date 13. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM3_H_GENERIC -#define __CORE_CM3_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M3 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM3 definitions */ -#define __CM3_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM3_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16U) | \ - __CM3_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (3U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM3_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM3_H_DEPENDANT -#define __CORE_CM3_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM3_REV - #define __CM3_REV 0x0200U - #warning "__CM3_REV not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M3 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:1; /*!< bit: 9 Reserved */ - uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ - uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit */ - uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ -#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ -#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[24U]; - __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[24U]; - __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[24U]; - __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[24U]; - __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[56U]; - __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - uint32_t RESERVED0[5U]; - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#if defined (__CM3_REV) && (__CM3_REV < 0x0201U) /* core r2p1 */ -#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ -#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ - -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#else -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ -#endif - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ -#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -#else - uint32_t RESERVED1[1U]; -#endif -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) -#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ -#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ - -#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ -#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ - -#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ -#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ - -#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ -#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ - -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ -#endif - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED0[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Mask Register Definitions */ -#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ -#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ -#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ - -#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ -#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ -#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ - -#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ -#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ - -#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ -#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ - -#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ -#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ - -#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ -#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ -#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ - -#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ -#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ -#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ - -#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ -#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ - __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ - __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ - __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ -#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ -#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ -#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ -#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ -#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv7.h" - -#endif - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM3_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM3_H_GENERIC +#define __CORE_CM3_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M3 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM3 definitions */ +#define __CM3_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM3_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16U) | \ + __CM3_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (3U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM3_H_DEPENDANT +#define __CORE_CM3_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM3_REV + #define __CM3_REV 0x0200U + #warning "__CM3_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M3 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#if defined (__CM3_REV) && (__CM3_REV < 0x0201U) /* core r2p1 */ +#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#else +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ +#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +#else + uint32_t RESERVED1[1U]; +#endif +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) +#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ +#endif + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h b/eps/v1/firmware/bsp/cmsis/Include/core_cm33.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h rename to eps/v1/firmware/bsp/cmsis/Include/core_cm33.h index 2f1d98e..7fed59a 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_cm33.h @@ -1,2910 +1,2910 @@ -/**************************************************************************//** - * @file core_cm33.h - * @brief CMSIS Cortex-M33 Core Peripheral Access Layer Header File - * @version V5.1.0 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM33_H_GENERIC -#define __CORE_CM33_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M33 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM33 definitions */ -#define __CM33_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM33_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM33_CMSIS_VERSION ((__CM33_CMSIS_VERSION_MAIN << 16U) | \ - __CM33_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (33U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined (__TARGET_FPU_VFP) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined (__ARM_FP) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined (__ARMVFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined (__TI_VFP_SUPPORT__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined (__FPU_VFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM33_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM33_H_DEPENDANT -#define __CORE_CM33_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM33_REV - #define __CM33_REV 0x0000U - #warning "__CM33_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DSP_PRESENT - #define __DSP_PRESENT 0U - #warning "__DSP_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M33 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ -#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ - uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ - uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ -#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ - -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED6[580U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ - uint32_t RESERVED3[92U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ -#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ -#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ - -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ -#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ -#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Non-Secure Access Control Register Definitions */ -#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ -#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ - -#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ -#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ - -#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ -#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ - __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ - uint32_t RESERVED6[4U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Stimulus Port Register Definitions */ -#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ -#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ - -#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ -#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ -#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ - -#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ -#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ - uint32_t RESERVED32[934U]; - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ - uint32_t RESERVED33[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ -#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ - __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ - __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration Test FIFO Test Data 0 Register Definitions */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ -#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ -#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ -#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ - -/* TPI Integration Test ATB Control Register 2 Register Definitions */ -#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ -#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ - -#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ -#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ - -#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ -#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ - -#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ -#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ - -/* TPI Integration Test FIFO Test Data 1 Register Definitions */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ -#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ -#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ -#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ - -/* TPI Integration Test ATB Control Register 0 Definitions */ -#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ -#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ - -#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ -#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ - -#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ -#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ - -#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ -#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ - __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ - __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ - __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ - uint32_t RESERVED0[1]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#else - uint32_t RESERVED0[3]; -#endif - __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ - __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/* Secure Fault Status Register Definitions */ -#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ -#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ - -#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ -#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ - -#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ -#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ - -#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ -#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ - -#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ -#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ - -#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ -#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ - -#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ -#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ - -#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ -#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ -#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ - -#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ -#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ - -#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ -#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ - -#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ -#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ - -#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ -#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ - -#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ -#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ -#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ -#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - - #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ - #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - - #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ - #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Set Priority Grouping (non-secure) - \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB_NS->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB_NS->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping (non-secure) - \details Reads the priority grouping field from the non-secure NVIC when in secure state. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) -{ - return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM33_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm33.h + * @brief CMSIS Cortex-M33 Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM33_H_GENERIC +#define __CORE_CM33_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M33 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM33 definitions */ +#define __CM33_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM33_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM33_CMSIS_VERSION ((__CM33_CMSIS_VERSION_MAIN << 16U) | \ + __CM33_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (33U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined (__TARGET_FPU_VFP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined (__ARM_FP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined (__ARMVFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined (__TI_VFP_SUPPORT__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined (__FPU_VFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM33_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM33_H_DEPENDANT +#define __CORE_CM33_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM33_REV + #define __CM33_REV 0x0000U + #warning "__CM33_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M33 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM33_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h b/eps/v1/firmware/bsp/cmsis/Include/core_cm35p.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h rename to eps/v1/firmware/bsp/cmsis/Include/core_cm35p.h index 7d34367..5579c82 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_cm35p.h @@ -1,2910 +1,2910 @@ -/**************************************************************************//** - * @file core_cm35p.h - * @brief CMSIS Cortex-M35P Core Peripheral Access Layer Header File - * @version V1.0.0 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM35P_H_GENERIC -#define __CORE_CM35P_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M35P - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM35P definitions */ -#define __CM35P_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM35P_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM35P_CMSIS_VERSION ((__CM35P_CMSIS_VERSION_MAIN << 16U) | \ - __CM35P_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (35U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined (__TARGET_FPU_VFP) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined (__ARM_FP) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined (__ARMVFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - - #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) - #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) - #define __DSP_USED 1U - #else - #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" - #define __DSP_USED 0U - #endif - #else - #define __DSP_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined (__TI_VFP_SUPPORT__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined (__FPU_VFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM35P_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM35P_H_DEPENDANT -#define __CORE_CM35P_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM35P_REV - #define __CM35P_REV 0x0000U - #warning "__CM35P_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __SAUREGION_PRESENT - #define __SAUREGION_PRESENT 0U - #warning "__SAUREGION_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DSP_PRESENT - #define __DSP_PRESENT 0U - #warning "__DSP_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M35P */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core SAU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ -#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ - uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ - uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ - uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ -#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ - -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[16U]; - __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[16U]; - __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[16U]; - __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[16U]; - __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[16U]; - __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ - uint32_t RESERVED5[16U]; - __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED6[580U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ - uint32_t RESERVED3[92U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ -#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ - -#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ -#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ - -#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ -#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ -#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ -#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ - -#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ -#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ -#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ -#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ - -#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ -#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ -#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ -#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ - -#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ -#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ - -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ -#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ - -#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ -#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ -#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ -#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Non-Secure Access Control Register Definitions */ -#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ -#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ - -#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ -#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ - -#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ -#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ - __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ - uint32_t RESERVED6[4U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Stimulus Port Register Definitions */ -#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ -#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ - -#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ -#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ -#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ - -#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ -#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - uint32_t RESERVED3[1U]; - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED4[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - uint32_t RESERVED5[1U]; - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED6[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - uint32_t RESERVED7[1U]; - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED8[1U]; - __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ - uint32_t RESERVED9[1U]; - __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ - uint32_t RESERVED10[1U]; - __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ - uint32_t RESERVED11[1U]; - __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ - uint32_t RESERVED12[1U]; - __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ - uint32_t RESERVED13[1U]; - __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ - uint32_t RESERVED14[1U]; - __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ - uint32_t RESERVED15[1U]; - __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ - uint32_t RESERVED16[1U]; - __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ - uint32_t RESERVED17[1U]; - __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ - uint32_t RESERVED18[1U]; - __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ - uint32_t RESERVED19[1U]; - __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ - uint32_t RESERVED20[1U]; - __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ - uint32_t RESERVED21[1U]; - __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ - uint32_t RESERVED22[1U]; - __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ - uint32_t RESERVED23[1U]; - __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ - uint32_t RESERVED24[1U]; - __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ - uint32_t RESERVED25[1U]; - __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ - uint32_t RESERVED26[1U]; - __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ - uint32_t RESERVED27[1U]; - __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ - uint32_t RESERVED28[1U]; - __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ - uint32_t RESERVED29[1U]; - __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ - uint32_t RESERVED30[1U]; - __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ - uint32_t RESERVED31[1U]; - __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ - uint32_t RESERVED32[934U]; - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ - uint32_t RESERVED33[1U]; - __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ -#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ -#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ - -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ -#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ - -#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ -#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ - __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ - __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ -#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration Test FIFO Test Data 0 Register Definitions */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ -#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ -#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ -#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ - -#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ -#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ - -/* TPI Integration Test ATB Control Register 2 Register Definitions */ -#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ -#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ - -#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ -#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ - -#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ -#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ - -#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ -#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ - -/* TPI Integration Test FIFO Test Data 1 Register Definitions */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ -#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ - -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ -#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ - -#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ -#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ -#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ -#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ - -#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ -#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ - -/* TPI Integration Test ATB Control Register 0 Definitions */ -#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ -#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ - -#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ -#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ - -#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ -#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ - -#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ -#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ -#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ - __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ - __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ - __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ - uint32_t RESERVED0[1]; - union { - __IOM uint32_t MAIR[2]; - struct { - __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ - __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ - }; - }; -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ -#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ - -#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ -#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ - -#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ -#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ - -#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ -#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ - -/* MPU Region Limit Address Register Definitions */ -#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ -#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ - -#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ -#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ - -#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ -#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ - -/* MPU Memory Attribute Indirection Register 0 Definitions */ -#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ -#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ - -#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ -#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ - -#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ -#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ - -#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ -#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ - -/* MPU Memory Attribute Indirection Register 1 Definitions */ -#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ -#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ - -#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ -#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ - -#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ -#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ - -#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ -#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SAU Security Attribution Unit (SAU) - \brief Type definitions for the Security Attribution Unit (SAU) - @{ - */ - -/** - \brief Structure type to access the Security Attribution Unit (SAU). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ - __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ - __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ -#else - uint32_t RESERVED0[3]; -#endif - __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ - __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ -} SAU_Type; - -/* SAU Control Register Definitions */ -#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ -#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ - -#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ -#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ - -/* SAU Type Register Definitions */ -#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ -#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ - -#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) -/* SAU Region Number Register Definitions */ -#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ -#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ - -/* SAU Region Base Address Register Definitions */ -#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ -#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ - -/* SAU Region Limit Address Register Definitions */ -#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ -#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ - -#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ -#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ - -#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ -#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ - -#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ - -/* Secure Fault Status Register Definitions */ -#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ -#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ - -#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ -#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ - -#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ -#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ - -#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ -#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ - -#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ -#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ - -#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ -#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ - -#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ -#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ - -#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ -#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ - -/*@} end of group CMSIS_SAU */ -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ -#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ - -#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ -#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ - -#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ -#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ - -#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ -#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ - -#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ -#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ - -#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ -#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ -#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ -#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ - uint32_t RESERVED4[1U]; - __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ - __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ -#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/* Debug Authentication Control Register Definitions */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ -#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ - -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ - -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ -#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ - -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ -#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ - -/* Debug Security Control and Status Register Definitions */ -#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ -#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ - -#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ -#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ - -#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ -#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ - #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ - #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ - #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ - #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ - #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ - #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ - #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ - #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - - #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ - #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ - #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ - #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ - #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ - #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ - #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ - #endif - - #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ - #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ - #endif - - #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ - #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ - #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ - #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ - #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ - #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ - - #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ - #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ - #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ - #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ - #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ - - #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ - #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ - #endif - - #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ - #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* Special LR values for Secure/Non-Secure call handling and exception handling */ - -/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ -#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ - -/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ -#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ -#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ -#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ -#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ -#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ -#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ -#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ - -/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ -#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ -#else -#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ -#endif - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Get Interrupt Target State - \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - \return 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Target State - \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Clear Interrupt Target State - \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 if interrupt is assigned to Secure - 1 if interrupt is assigned to Non Secure - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); - return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief Set Priority Grouping (non-secure) - \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB_NS->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB_NS->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping (non-secure) - \details Reads the priority grouping field from the non-secure NVIC when in secure state. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) -{ - return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt (non-secure) - \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Interrupt Enable status (non-secure) - \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt (non-secure) - \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Pending Interrupt (non-secure) - \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt (non-secure) - \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt (non-secure) - \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt (non-secure) - \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority (non-secure) - \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every non-secure processor exception. - */ -__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority (non-secure) - \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} -#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_NVICFunctions */ - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv8.h" - -#endif - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## SAU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SAUFunctions SAU Functions - \brief Functions that configure the SAU. - @{ - */ - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) - -/** - \brief Enable SAU - \details Enables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Enable(void) -{ - SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); -} - - - -/** - \brief Disable SAU - \details Disables the Security Attribution Unit (SAU). - */ -__STATIC_INLINE void TZ_SAU_Disable(void) -{ - SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); -} - -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -/*@} end of CMSIS_Core_SAUFunctions */ - - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) -/** - \brief System Tick Configuration (non-secure) - \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function TZ_SysTick_Config_NS is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - - */ -__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} -#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM35P_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm35p.h + * @brief CMSIS Cortex-M35P Core Peripheral Access Layer Header File + * @version V1.0.0 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM35P_H_GENERIC +#define __CORE_CM35P_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M35P + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM35P definitions */ +#define __CM35P_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM35P_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM35P_CMSIS_VERSION ((__CM35P_CMSIS_VERSION_MAIN << 16U) | \ + __CM35P_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (35U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined (__TARGET_FPU_VFP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined (__ARM_FP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined (__ARMVFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined (__TI_VFP_SUPPORT__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined (__FPU_VFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM35P_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM35P_H_DEPENDANT +#define __CORE_CM35P_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM35P_REV + #define __CM35P_REV 0x0000U + #warning "__CM35P_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M35P */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM35P_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_cm4.h b/eps/v1/firmware/bsp/cmsis/Include/core_cm4.h similarity index 98% rename from eps/firmware/bsp/cmsis/Include/core_cm4.h rename to eps/v1/firmware/bsp/cmsis/Include/core_cm4.h index 90c2a72..12c023b 100644 --- a/eps/firmware/bsp/cmsis/Include/core_cm4.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_cm4.h @@ -1,2124 +1,2124 @@ -/**************************************************************************//** - * @file core_cm4.h - * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File - * @version V5.1.0 - * @date 13. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM4_H_GENERIC -#define __CORE_CM4_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M4 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM4 definitions */ -#define __CM4_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM4_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \ - __CM4_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (4U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM4_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM4_H_DEPENDANT -#define __CORE_CM4_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM4_REV - #define __CM4_REV 0x0000U - #warning "__CM4_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M4 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:1; /*!< bit: 9 Reserved */ - uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit */ - uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ -#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ -#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ - uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[24U]; - __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[24U]; - __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[24U]; - __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[24U]; - __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[56U]; - __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - uint32_t RESERVED0[5U]; - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ -#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ - -#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ -#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ - -#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ -#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ - -#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ -#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ - -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED0[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Mask Register Definitions */ -#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ -#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ -#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ - -#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ -#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ -#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ - -#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ -#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ - -#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ -#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ - -#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ -#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ - -#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ -#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ -#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ - -#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ -#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ -#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ - -#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ -#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ - __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ - __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ - __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/* Media and FP Feature Register 2 Definitions */ - -#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ -#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ -#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ -#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ -#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ -#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ -#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ -#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ -#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ -#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ -#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M4 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv7.h" - -#endif - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = FPU->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM4_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm4.h + * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM4_H_GENERIC +#define __CORE_CM4_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M4 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM4 definitions */ +#define __CM4_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM4_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \ + __CM4_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (4U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM4_H_DEPENDANT +#define __CORE_CM4_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM4_REV + #define __CM4_REV 0x0000U + #warning "__CM4_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M4 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/* Media and FP Feature Register 2 Definitions */ + +#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ +#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ +#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M4 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h b/eps/v1/firmware/bsp/cmsis/Include/core_cm7.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h rename to eps/v1/firmware/bsp/cmsis/Include/core_cm7.h index 3da3c43..c4515d8 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_cm7.h @@ -1,2725 +1,2725 @@ -/**************************************************************************//** - * @file core_cm7.h - * @brief CMSIS Cortex-M7 Core Peripheral Access Layer Header File - * @version V5.1.1 - * @date 28. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM7_H_GENERIC -#define __CORE_CM7_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M7 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM7 definitions */ -#define __CM7_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM7_CMSIS_VERSION_SUB ( __CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM7_CMSIS_VERSION ((__CM7_CMSIS_VERSION_MAIN << 16U) | \ - __CM7_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (7U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. -*/ -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) - #define __FPU_USED 1U - #else - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #define __FPU_USED 0U - #endif - #else - #define __FPU_USED 0U - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM7_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM7_H_DEPENDANT -#define __CORE_CM7_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM7_REV - #define __CM7_REV 0x0000U - #warning "__CM7_REV not defined in device header file; using default!" - #endif - - #ifndef __FPU_PRESENT - #define __FPU_PRESENT 0U - #warning "__FPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __ICACHE_PRESENT - #define __ICACHE_PRESENT 0U - #warning "__ICACHE_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DCACHE_PRESENT - #define __DCACHE_PRESENT 0U - #warning "__DCACHE_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __DTCM_PRESENT - #define __DTCM_PRESENT 0U - #warning "__DTCM_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M7 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - - Core FPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - -#define APSR_GE_Pos 16U /*!< APSR: GE Position */ -#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:1; /*!< bit: 9 Reserved */ - uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit */ - uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ -#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ -#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ - -#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ -#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ - uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ -#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ - -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[24U]; - __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[24U]; - __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[24U]; - __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[24U]; - __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[56U]; - __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ID_AFR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t ID_MFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ID_ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - uint32_t RESERVED0[1U]; - __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ - __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ - __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ - __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - uint32_t RESERVED3[93U]; - __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ - uint32_t RESERVED4[15U]; - __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ - uint32_t RESERVED5[1U]; - __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ - uint32_t RESERVED6[1U]; - __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ - __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ - __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ - __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ - __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ - __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ - __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ - __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ - uint32_t RESERVED7[6U]; - __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ - __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ - __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ - __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ - __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ - uint32_t RESERVED8[1U]; - __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: Branch prediction enable bit Position */ -#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: Branch prediction enable bit Mask */ - -#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: Instruction cache enable bit Position */ -#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: Instruction cache enable bit Mask */ - -#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: Cache enable bit Position */ -#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: Cache enable bit Mask */ - -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ -#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ -#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/* SCB Cache Level ID Register Definitions */ -#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ -#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ - -#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ -#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ - -/* SCB Cache Type Register Definitions */ -#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ -#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ - -#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ -#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ - -#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ -#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ - -#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ -#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ - -#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ -#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ - -/* SCB Cache Size ID Register Definitions */ -#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ -#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ - -#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ -#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ - -#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ -#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ - -#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ -#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ - -#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ -#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ - -#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ -#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ - -#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ -#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ - -/* SCB Cache Size Selection Register Definitions */ -#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ -#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ - -#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ -#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ - -/* SCB Software Triggered Interrupt Register Definitions */ -#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ -#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ - -/* SCB D-Cache Invalidate by Set-way Register Definitions */ -#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ -#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ - -#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ -#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ - -/* SCB D-Cache Clean by Set-way Register Definitions */ -#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ -#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ - -#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ -#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ - -/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ -#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ -#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ - -#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ -#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ - -/* Instruction Tightly-Coupled Memory Control Register Definitions */ -#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ -#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ - -#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ -#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ - -#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ -#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ - -#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ -#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ - -/* Data Tightly-Coupled Memory Control Register Definitions */ -#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ -#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ - -#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ -#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ - -#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ -#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ - -#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ -#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ - -/* AHBP Control Register Definitions */ -#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ -#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ - -#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ -#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ - -/* L1 Cache Control Register Definitions */ -#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ -#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ - -#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ -#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ - -#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ -#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ - -/* AHBS Control Register Definitions */ -#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ -#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ - -#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ -#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ - -#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ -#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ - -/* Auxiliary Bus Fault Status Register Definitions */ -#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ -#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ - -#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ -#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ - -#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ -#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ - -#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ -#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ - -#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ -#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ - -#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ -#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_DISDYNADD_Pos 26U /*!< ACTLR: DISDYNADD Position */ -#define SCnSCB_ACTLR_DISDYNADD_Msk (1UL << SCnSCB_ACTLR_DISDYNADD_Pos) /*!< ACTLR: DISDYNADD Mask */ - -#define SCnSCB_ACTLR_DISISSCH1_Pos 21U /*!< ACTLR: DISISSCH1 Position */ -#define SCnSCB_ACTLR_DISISSCH1_Msk (0x1FUL << SCnSCB_ACTLR_DISISSCH1_Pos) /*!< ACTLR: DISISSCH1 Mask */ - -#define SCnSCB_ACTLR_DISDI_Pos 16U /*!< ACTLR: DISDI Position */ -#define SCnSCB_ACTLR_DISDI_Msk (0x1FUL << SCnSCB_ACTLR_DISDI_Pos) /*!< ACTLR: DISDI Mask */ - -#define SCnSCB_ACTLR_DISCRITAXIRUR_Pos 15U /*!< ACTLR: DISCRITAXIRUR Position */ -#define SCnSCB_ACTLR_DISCRITAXIRUR_Msk (1UL << SCnSCB_ACTLR_DISCRITAXIRUR_Pos) /*!< ACTLR: DISCRITAXIRUR Mask */ - -#define SCnSCB_ACTLR_DISBTACALLOC_Pos 14U /*!< ACTLR: DISBTACALLOC Position */ -#define SCnSCB_ACTLR_DISBTACALLOC_Msk (1UL << SCnSCB_ACTLR_DISBTACALLOC_Pos) /*!< ACTLR: DISBTACALLOC Mask */ - -#define SCnSCB_ACTLR_DISBTACREAD_Pos 13U /*!< ACTLR: DISBTACREAD Position */ -#define SCnSCB_ACTLR_DISBTACREAD_Msk (1UL << SCnSCB_ACTLR_DISBTACREAD_Pos) /*!< ACTLR: DISBTACREAD Mask */ - -#define SCnSCB_ACTLR_DISITMATBFLUSH_Pos 12U /*!< ACTLR: DISITMATBFLUSH Position */ -#define SCnSCB_ACTLR_DISITMATBFLUSH_Msk (1UL << SCnSCB_ACTLR_DISITMATBFLUSH_Pos) /*!< ACTLR: DISITMATBFLUSH Mask */ - -#define SCnSCB_ACTLR_DISRAMODE_Pos 11U /*!< ACTLR: DISRAMODE Position */ -#define SCnSCB_ACTLR_DISRAMODE_Msk (1UL << SCnSCB_ACTLR_DISRAMODE_Pos) /*!< ACTLR: DISRAMODE Mask */ - -#define SCnSCB_ACTLR_FPEXCODIS_Pos 10U /*!< ACTLR: FPEXCODIS Position */ -#define SCnSCB_ACTLR_FPEXCODIS_Msk (1UL << SCnSCB_ACTLR_FPEXCODIS_Pos) /*!< ACTLR: FPEXCODIS Mask */ - -#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ -#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ - -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED0[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ - uint32_t RESERVED3[981U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( W) Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Mask Register Definitions */ -#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ -#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ -#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ - -#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ -#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ -#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ - -#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ -#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ - -#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ -#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ - -#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ -#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ - -#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ -#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ -#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ - -#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ -#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ -#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ - -#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ -#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ - __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ - __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ - __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -#define MPU_TYPE_RALIASES 4U - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_FPU Floating Point Unit (FPU) - \brief Type definitions for the Floating Point Unit (FPU) - @{ - */ - -/** - \brief Structure type to access the Floating Point Unit (FPU). - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ - __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ - __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ - __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ - __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ - __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ -} FPU_Type; - -/* Floating-Point Context Control Register Definitions */ -#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ -#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ - -#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ -#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ - -#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ -#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ - -#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ -#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ - -#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ -#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ - -#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ -#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ - -#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ -#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ - -#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ -#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ - -#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ -#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ - -/* Floating-Point Context Address Register Definitions */ -#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ -#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ - -/* Floating-Point Default Status Control Register Definitions */ -#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ -#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ - -#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ -#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ - -#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ -#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ - -#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ -#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ - -/* Media and FP Feature Register 0 Definitions */ -#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ -#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ - -#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ -#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ - -#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ -#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ - -#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ -#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ - -#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ -#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ - -#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ -#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ - -#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ -#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ - -#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ -#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ - -/* Media and FP Feature Register 1 Definitions */ -#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ -#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ - -#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ -#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ - -#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ -#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ - -#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ -#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ - -/* Media and FP Feature Register 2 Definitions */ - -#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ -#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ - -/*@} end of group CMSIS_FPU */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ -#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ -#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ -#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ -#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ -#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ -#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ -#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ -#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ -#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - __DSB(); -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## MPU functions #################################### */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - -#include "mpu_armv7.h" - -#endif - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - uint32_t mvfr0; - - mvfr0 = SCB->MVFR0; - if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) - { - return 2U; /* Double + Single precision FPU */ - } - else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) - { - return 1U; /* Single precision FPU */ - } - else - { - return 0U; /* No FPU */ - } -} - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ########################## Cache functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_CacheFunctions Cache Functions - \brief Functions that configure Instruction and Data cache. - @{ - */ - -/* Cache Size ID Register Macros */ -#define CCSIDR_WAYS(x) (((x) & SCB_CCSIDR_ASSOCIATIVITY_Msk) >> SCB_CCSIDR_ASSOCIATIVITY_Pos) -#define CCSIDR_SETS(x) (((x) & SCB_CCSIDR_NUMSETS_Msk ) >> SCB_CCSIDR_NUMSETS_Pos ) - -#define __SCB_DCACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ -#define __SCB_ICACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ - -/** - \brief Enable I-Cache - \details Turns on I-Cache - */ -__STATIC_FORCEINLINE void SCB_EnableICache (void) -{ - #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) - if (SCB->CCR & SCB_CCR_IC_Msk) return; /* return if ICache is already enabled */ - - __DSB(); - __ISB(); - SCB->ICIALLU = 0UL; /* invalidate I-Cache */ - __DSB(); - __ISB(); - SCB->CCR |= (uint32_t)SCB_CCR_IC_Msk; /* enable I-Cache */ - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Disable I-Cache - \details Turns off I-Cache - */ -__STATIC_FORCEINLINE void SCB_DisableICache (void) -{ - #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) - __DSB(); - __ISB(); - SCB->CCR &= ~(uint32_t)SCB_CCR_IC_Msk; /* disable I-Cache */ - SCB->ICIALLU = 0UL; /* invalidate I-Cache */ - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Invalidate I-Cache - \details Invalidates I-Cache - */ -__STATIC_FORCEINLINE void SCB_InvalidateICache (void) -{ - #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) - __DSB(); - __ISB(); - SCB->ICIALLU = 0UL; - __DSB(); - __ISB(); - #endif -} - - -/** - \brief I-Cache Invalidate by address - \details Invalidates I-Cache for the given address. - I-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. - I-Cache memory blocks which are part of given address + given size are invalidated. - \param[in] addr address - \param[in] isize size of memory block (in number of bytes) -*/ -__STATIC_FORCEINLINE void SCB_InvalidateICache_by_Addr (void *addr, int32_t isize) -{ - #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) - if ( isize > 0 ) { - int32_t op_size = isize + (((uint32_t)addr) & (__SCB_ICACHE_LINE_SIZE - 1U)); - uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_ICACHE_LINE_SIZE - 1U) */; - - __DSB(); - - do { - SCB->ICIMVAU = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ - op_addr += __SCB_ICACHE_LINE_SIZE; - op_size -= __SCB_ICACHE_LINE_SIZE; - } while ( op_size > 0 ); - - __DSB(); - __ISB(); - } - #endif -} - - -/** - \brief Enable D-Cache - \details Turns on D-Cache - */ -__STATIC_FORCEINLINE void SCB_EnableDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - if (SCB->CCR & SCB_CCR_DC_Msk) return; /* return if DCache is already enabled */ - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* invalidate D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | - ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - __DSB(); - - SCB->CCR |= (uint32_t)SCB_CCR_DC_Msk; /* enable D-Cache */ - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Disable D-Cache - \details Turns off D-Cache - */ -__STATIC_FORCEINLINE void SCB_DisableDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - SCB->CCR &= ~(uint32_t)SCB_CCR_DC_Msk; /* disable D-Cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* clean & invalidate D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | - ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Invalidate D-Cache - \details Invalidates D-Cache - */ -__STATIC_FORCEINLINE void SCB_InvalidateDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* invalidate D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | - ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Clean D-Cache - \details Cleans D-Cache - */ -__STATIC_FORCEINLINE void SCB_CleanDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* clean D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCCSW = (((sets << SCB_DCCSW_SET_Pos) & SCB_DCCSW_SET_Msk) | - ((ways << SCB_DCCSW_WAY_Pos) & SCB_DCCSW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief Clean & Invalidate D-Cache - \details Cleans and Invalidates D-Cache - */ -__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache (void) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - uint32_t ccsidr; - uint32_t sets; - uint32_t ways; - - SCB->CSSELR = 0U; /* select Level 1 data cache */ - __DSB(); - - ccsidr = SCB->CCSIDR; - - /* clean & invalidate D-Cache */ - sets = (uint32_t)(CCSIDR_SETS(ccsidr)); - do { - ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); - do { - SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | - ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); - #if defined ( __CC_ARM ) - __schedule_barrier(); - #endif - } while (ways-- != 0U); - } while(sets-- != 0U); - - __DSB(); - __ISB(); - #endif -} - - -/** - \brief D-Cache Invalidate by address - \details Invalidates D-Cache for the given address. - D-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. - D-Cache memory blocks which are part of given address + given size are invalidated. - \param[in] addr address - \param[in] dsize size of memory block (in number of bytes) -*/ -__STATIC_FORCEINLINE void SCB_InvalidateDCache_by_Addr (void *addr, int32_t dsize) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - if ( dsize > 0 ) { - int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); - uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; - - __DSB(); - - do { - SCB->DCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ - op_addr += __SCB_DCACHE_LINE_SIZE; - op_size -= __SCB_DCACHE_LINE_SIZE; - } while ( op_size > 0 ); - - __DSB(); - __ISB(); - } - #endif -} - - -/** - \brief D-Cache Clean by address - \details Cleans D-Cache for the given address - D-Cache is cleaned starting from a 32 byte aligned address in 32 byte granularity. - D-Cache memory blocks which are part of given address + given size are cleaned. - \param[in] addr address - \param[in] dsize size of memory block (in number of bytes) -*/ -__STATIC_FORCEINLINE void SCB_CleanDCache_by_Addr (uint32_t *addr, int32_t dsize) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - if ( dsize > 0 ) { - int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); - uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; - - __DSB(); - - do { - SCB->DCCMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ - op_addr += __SCB_DCACHE_LINE_SIZE; - op_size -= __SCB_DCACHE_LINE_SIZE; - } while ( op_size > 0 ); - - __DSB(); - __ISB(); - } - #endif -} - - -/** - \brief D-Cache Clean and Invalidate by address - \details Cleans and invalidates D_Cache for the given address - D-Cache is cleaned and invalidated starting from a 32 byte aligned address in 32 byte granularity. - D-Cache memory blocks which are part of given address + given size are cleaned and invalidated. - \param[in] addr address (aligned to 32-byte boundary) - \param[in] dsize size of memory block (in number of bytes) -*/ -__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache_by_Addr (uint32_t *addr, int32_t dsize) -{ - #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) - if ( dsize > 0 ) { - int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); - uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; - - __DSB(); - - do { - SCB->DCCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ - op_addr += __SCB_DCACHE_LINE_SIZE; - op_size -= __SCB_DCACHE_LINE_SIZE; - } while ( op_size > 0 ); - - __DSB(); - __ISB(); - } - #endif -} - -/*@} end of CMSIS_Core_CacheFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM7_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm7.h + * @brief CMSIS Cortex-M7 Core Peripheral Access Layer Header File + * @version V5.1.1 + * @date 28. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM7_H_GENERIC +#define __CORE_CM7_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M7 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM7 definitions */ +#define __CM7_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM7_CMSIS_VERSION_SUB ( __CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM7_CMSIS_VERSION ((__CM7_CMSIS_VERSION_MAIN << 16U) | \ + __CM7_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (7U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM7_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM7_H_DEPENDANT +#define __CORE_CM7_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM7_REV + #define __CM7_REV 0x0000U + #warning "__CM7_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __ICACHE_PRESENT + #define __ICACHE_PRESENT 0U + #warning "__ICACHE_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DCACHE_PRESENT + #define __DCACHE_PRESENT 0U + #warning "__DCACHE_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DTCM_PRESENT + #define __DTCM_PRESENT 0U + #warning "__DTCM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M7 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_AFR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[1U]; + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + uint32_t RESERVED3[93U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6U]; + __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1U]; + __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: Branch prediction enable bit Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: Branch prediction enable bit Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: Instruction cache enable bit Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: Instruction cache enable bit Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: Cache enable bit Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: Cache enable bit Mask */ + +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/* Instruction Tightly-Coupled Memory Control Register Definitions */ +#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Register Definitions */ +#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register Definitions */ +#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register Definitions */ +#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ + +/* AHBS Control Register Definitions */ +#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register Definitions */ +#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ +#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISDYNADD_Pos 26U /*!< ACTLR: DISDYNADD Position */ +#define SCnSCB_ACTLR_DISDYNADD_Msk (1UL << SCnSCB_ACTLR_DISDYNADD_Pos) /*!< ACTLR: DISDYNADD Mask */ + +#define SCnSCB_ACTLR_DISISSCH1_Pos 21U /*!< ACTLR: DISISSCH1 Position */ +#define SCnSCB_ACTLR_DISISSCH1_Msk (0x1FUL << SCnSCB_ACTLR_DISISSCH1_Pos) /*!< ACTLR: DISISSCH1 Mask */ + +#define SCnSCB_ACTLR_DISDI_Pos 16U /*!< ACTLR: DISDI Position */ +#define SCnSCB_ACTLR_DISDI_Msk (0x1FUL << SCnSCB_ACTLR_DISDI_Pos) /*!< ACTLR: DISDI Mask */ + +#define SCnSCB_ACTLR_DISCRITAXIRUR_Pos 15U /*!< ACTLR: DISCRITAXIRUR Position */ +#define SCnSCB_ACTLR_DISCRITAXIRUR_Msk (1UL << SCnSCB_ACTLR_DISCRITAXIRUR_Pos) /*!< ACTLR: DISCRITAXIRUR Mask */ + +#define SCnSCB_ACTLR_DISBTACALLOC_Pos 14U /*!< ACTLR: DISBTACALLOC Position */ +#define SCnSCB_ACTLR_DISBTACALLOC_Msk (1UL << SCnSCB_ACTLR_DISBTACALLOC_Pos) /*!< ACTLR: DISBTACALLOC Mask */ + +#define SCnSCB_ACTLR_DISBTACREAD_Pos 13U /*!< ACTLR: DISBTACREAD Position */ +#define SCnSCB_ACTLR_DISBTACREAD_Msk (1UL << SCnSCB_ACTLR_DISBTACREAD_Pos) /*!< ACTLR: DISBTACREAD Mask */ + +#define SCnSCB_ACTLR_DISITMATBFLUSH_Pos 12U /*!< ACTLR: DISITMATBFLUSH Position */ +#define SCnSCB_ACTLR_DISITMATBFLUSH_Msk (1UL << SCnSCB_ACTLR_DISITMATBFLUSH_Pos) /*!< ACTLR: DISITMATBFLUSH Mask */ + +#define SCnSCB_ACTLR_DISRAMODE_Pos 11U /*!< ACTLR: DISRAMODE Position */ +#define SCnSCB_ACTLR_DISRAMODE_Msk (1UL << SCnSCB_ACTLR_DISRAMODE_Pos) /*!< ACTLR: DISRAMODE Mask */ + +#define SCnSCB_ACTLR_FPEXCODIS_Pos 10U /*!< ACTLR: FPEXCODIS Position */ +#define SCnSCB_ACTLR_FPEXCODIS_Msk (1UL << SCnSCB_ACTLR_FPEXCODIS_Pos) /*!< ACTLR: FPEXCODIS Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED3[981U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( W) Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/* Media and FP Feature Register 2 Definitions */ + +#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ +#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ +#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = SCB->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## Cache functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_CacheFunctions Cache Functions + \brief Functions that configure Instruction and Data cache. + @{ + */ + +/* Cache Size ID Register Macros */ +#define CCSIDR_WAYS(x) (((x) & SCB_CCSIDR_ASSOCIATIVITY_Msk) >> SCB_CCSIDR_ASSOCIATIVITY_Pos) +#define CCSIDR_SETS(x) (((x) & SCB_CCSIDR_NUMSETS_Msk ) >> SCB_CCSIDR_NUMSETS_Pos ) + +#define __SCB_DCACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ +#define __SCB_ICACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ + +/** + \brief Enable I-Cache + \details Turns on I-Cache + */ +__STATIC_FORCEINLINE void SCB_EnableICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + if (SCB->CCR & SCB_CCR_IC_Msk) return; /* return if ICache is already enabled */ + + __DSB(); + __ISB(); + SCB->ICIALLU = 0UL; /* invalidate I-Cache */ + __DSB(); + __ISB(); + SCB->CCR |= (uint32_t)SCB_CCR_IC_Msk; /* enable I-Cache */ + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Disable I-Cache + \details Turns off I-Cache + */ +__STATIC_FORCEINLINE void SCB_DisableICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->CCR &= ~(uint32_t)SCB_CCR_IC_Msk; /* disable I-Cache */ + SCB->ICIALLU = 0UL; /* invalidate I-Cache */ + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Invalidate I-Cache + \details Invalidates I-Cache + */ +__STATIC_FORCEINLINE void SCB_InvalidateICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->ICIALLU = 0UL; + __DSB(); + __ISB(); + #endif +} + + +/** + \brief I-Cache Invalidate by address + \details Invalidates I-Cache for the given address. + I-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. + I-Cache memory blocks which are part of given address + given size are invalidated. + \param[in] addr address + \param[in] isize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_InvalidateICache_by_Addr (void *addr, int32_t isize) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + if ( isize > 0 ) { + int32_t op_size = isize + (((uint32_t)addr) & (__SCB_ICACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_ICACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->ICIMVAU = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_ICACHE_LINE_SIZE; + op_size -= __SCB_ICACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + + +/** + \brief Enable D-Cache + \details Turns on D-Cache + */ +__STATIC_FORCEINLINE void SCB_EnableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + if (SCB->CCR & SCB_CCR_DC_Msk) return; /* return if DCache is already enabled */ + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | + ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + __DSB(); + + SCB->CCR |= (uint32_t)SCB_CCR_DC_Msk; /* enable D-Cache */ + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Disable D-Cache + \details Turns off D-Cache + */ +__STATIC_FORCEINLINE void SCB_DisableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + SCB->CCR &= ~(uint32_t)SCB_CCR_DC_Msk; /* disable D-Cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean & invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | + ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Invalidate D-Cache + \details Invalidates D-Cache + */ +__STATIC_FORCEINLINE void SCB_InvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | + ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Clean D-Cache + \details Cleans D-Cache + */ +__STATIC_FORCEINLINE void SCB_CleanDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCSW = (((sets << SCB_DCCSW_SET_Pos) & SCB_DCCSW_SET_Msk) | + ((ways << SCB_DCCSW_WAY_Pos) & SCB_DCCSW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Clean & Invalidate D-Cache + \details Cleans and Invalidates D-Cache + */ +__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean & invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | + ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief D-Cache Invalidate by address + \details Invalidates D-Cache for the given address. + D-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. + D-Cache memory blocks which are part of given address + given size are invalidated. + \param[in] addr address + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_InvalidateDCache_by_Addr (void *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + if ( dsize > 0 ) { + int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->DCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_DCACHE_LINE_SIZE; + op_size -= __SCB_DCACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + + +/** + \brief D-Cache Clean by address + \details Cleans D-Cache for the given address + D-Cache is cleaned starting from a 32 byte aligned address in 32 byte granularity. + D-Cache memory blocks which are part of given address + given size are cleaned. + \param[in] addr address + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_CleanDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + if ( dsize > 0 ) { + int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->DCCMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_DCACHE_LINE_SIZE; + op_size -= __SCB_DCACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + + +/** + \brief D-Cache Clean and Invalidate by address + \details Cleans and invalidates D_Cache for the given address + D-Cache is cleaned and invalidated starting from a 32 byte aligned address in 32 byte granularity. + D-Cache memory blocks which are part of given address + given size are cleaned and invalidated. + \param[in] addr address (aligned to 32-byte boundary) + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + if ( dsize > 0 ) { + int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->DCCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_DCACHE_LINE_SIZE; + op_size -= __SCB_DCACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + +/*@} end of CMSIS_Core_CacheFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM7_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/core_sc000.h b/eps/v1/firmware/bsp/cmsis/Include/core_sc000.h similarity index 97% rename from eps/firmware/bsp/cmsis/Include/core_sc000.h rename to eps/v1/firmware/bsp/cmsis/Include/core_sc000.h index f315013..cf92577 100644 --- a/eps/firmware/bsp/cmsis/Include/core_sc000.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_sc000.h @@ -1,1025 +1,1025 @@ -/**************************************************************************//** - * @file core_sc000.h - * @brief CMSIS SC000 Core Peripheral Access Layer Header File - * @version V5.0.6 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_SC000_H_GENERIC -#define __CORE_SC000_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup SC000 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS SC000 definitions */ -#define __SC000_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __SC000_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16U) | \ - __SC000_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_SC (000U) /*!< Cortex secure core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_SC000_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_SC000_H_DEPENDANT -#define __CORE_SC000_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __SC000_REV - #define __SC000_REV 0x0000U - #warning "__SC000_REV not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group SC000 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core MPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t _reserved0:1; /*!< bit: 0 Reserved */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[31U]; - __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[31U]; - __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[31U]; - __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[31U]; - uint32_t RESERVED4[64U]; - __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED0[1U]; - __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - uint32_t RESERVED1[154U]; - __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ -} MPU_Type; - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief SC000 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. - Therefore they are not covered by the SC000 header file. - @{ - */ -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else -/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for SC000 */ -/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for SC000 */ - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ -/*#define NVIC_GetActive __NVIC_GetActive not available for SC000 */ - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - /* ARM Application Note 321 states that the M0 and M0+ do not require the architectural barrier - assume SC000 is the same */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)SCB->VTOR; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_SC000_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_sc000.h + * @brief CMSIS SC000 Core Peripheral Access Layer Header File + * @version V5.0.6 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_SC000_H_GENERIC +#define __CORE_SC000_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup SC000 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS SC000 definitions */ +#define __SC000_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __SC000_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16U) | \ + __SC000_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_SC (000U) /*!< Cortex secure core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC000_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC000_H_DEPENDANT +#define __CORE_SC000_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __SC000_REV + #define __SC000_REV 0x0000U + #warning "__SC000_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group SC000 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED0[1U]; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + uint32_t RESERVED1[154U]; + __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief SC000 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the SC000 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else +/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for SC000 */ +/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for SC000 */ + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for SC000 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + /* ARM Application Note 321 states that the M0 and M0+ do not require the architectural barrier - assume SC000 is the same */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC000_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h b/eps/v1/firmware/bsp/cmsis/Include/core_sc300.h similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h rename to eps/v1/firmware/bsp/cmsis/Include/core_sc300.h index ad031f2..40f3af8 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h +++ b/eps/v1/firmware/bsp/cmsis/Include/core_sc300.h @@ -1,1912 +1,1912 @@ -/**************************************************************************//** - * @file core_sc300.h - * @brief CMSIS SC300 Core Peripheral Access Layer Header File - * @version V5.0.8 - * @date 31. May 2019 - ******************************************************************************/ -/* - * Copyright (c) 2009-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_SC300_H_GENERIC -#define __CORE_SC300_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup SC3000 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS SC300 definitions */ -#define __SC300_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __SC300_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __SC300_CMSIS_VERSION ((__SC300_CMSIS_VERSION_MAIN << 16U) | \ - __SC300_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_SC (300U) /*!< Cortex secure core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_SC300_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_SC300_H_DEPENDANT -#define __CORE_SC300_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __SC300_REV - #define __SC300_REV 0x0000U - #warning "__SC300_REV not defined in device header file; using default!" - #endif - - #ifndef __MPU_PRESENT - #define __MPU_PRESENT 0U - #warning "__MPU_PRESENT not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 3U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group SC300 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - -#define APSR_Q_Pos 27U /*!< APSR: Q Position */ -#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:1; /*!< bit: 9 Reserved */ - uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ - uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit */ - uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ -#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ - -#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ -#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ -#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ -#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[24U]; - __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RESERVED1[24U]; - __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[24U]; - __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[24U]; - __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[56U]; - __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644U]; - __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/* Software Triggered Interrupt Register Definitions */ -#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ -#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ - __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ - __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ - __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ - uint32_t RESERVED0[5U]; - __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ - uint32_t RESERVED1[129U]; - __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Vector Table Offset Register Definitions */ -#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ -#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ - -#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Register Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ -#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ - -#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ -#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ - -#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ -#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ - -#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ -#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ - -#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ -#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ - -/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ -#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ - -#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ -#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ - -#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ -#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ - -#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ -#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ - -#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ -#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ - -#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ -#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ - -/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ -#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ -#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ - -#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ -#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ - -#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ -#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ - -#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ -#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ - -#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ -#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ - -#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ -#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ - -/* SCB Hard Fault Status Register Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[1U]; - __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Interrupt Controller Type Register Definitions */ -#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ -#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ -#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ - -#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ -#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ - -#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ -#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) - \brief Type definitions for the Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** - \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __OM union - { - __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864U]; - __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15U]; - __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15U]; - __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[32U]; - uint32_t RESERVED4[43U]; - __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ - __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6U]; - __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ - __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ - __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ - __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ - __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ - __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ - __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ - __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ - __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ - __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ - __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ - __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ -#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ - -#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) - \brief Type definitions for the Data Watchpoint and Trace (DWT) - @{ - */ - -/** - \brief Structure type to access the Data Watchpoint and Trace Register (DWT). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ - __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ - __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ - __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ - __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ - __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ - __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ - __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ - __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ - __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ - __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ - uint32_t RESERVED0[1U]; - __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ - __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ - __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ - uint32_t RESERVED1[1U]; - __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ - __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ - __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ - uint32_t RESERVED2[1U]; - __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ - __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ - __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ -} DWT_Type; - -/* DWT Control Register Definitions */ -#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ -#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ - -#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ -#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ - -#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ -#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ - -#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ -#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ - -#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ -#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ - -#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ -#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ - -#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ -#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ - -#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ -#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ - -#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ -#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ - -#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ -#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ - -#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ -#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ - -#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ -#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ - -#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ -#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ - -#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ -#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ - -#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ -#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ - -#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ -#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ - -#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ -#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ - -#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ -#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ - -/* DWT CPI Count Register Definitions */ -#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ -#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ - -/* DWT Exception Overhead Count Register Definitions */ -#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ -#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ - -/* DWT Sleep Count Register Definitions */ -#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ -#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ - -/* DWT LSU Count Register Definitions */ -#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ -#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ - -/* DWT Folded-instruction Count Register Definitions */ -#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ -#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ - -/* DWT Comparator Mask Register Definitions */ -#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ -#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ - -/* DWT Comparator Function Register Definitions */ -#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ -#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ - -#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ -#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ - -#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ -#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ - -#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ -#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ - -#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ -#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ - -#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ -#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ - -#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ -#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ - -#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ -#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ - -#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ -#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ - -/*@}*/ /* end of group CMSIS_DWT */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_TPI Trace Port Interface (TPI) - \brief Type definitions for the Trace Port Interface (TPI) - @{ - */ - -/** - \brief Structure type to access the Trace Port Interface Register (TPI). - */ -typedef struct -{ - __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ - __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ - uint32_t RESERVED1[55U]; - __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ - uint32_t RESERVED2[131U]; - __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ - __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ - __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ - uint32_t RESERVED3[759U]; - __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ - __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ - __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ - uint32_t RESERVED4[1U]; - __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ - __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ - __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ - uint32_t RESERVED5[39U]; - __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ - __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ - uint32_t RESERVED7[8U]; - __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ - __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ -} TPI_Type; - -/* TPI Asynchronous Clock Prescaler Register Definitions */ -#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ -#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ - -/* TPI Selected Pin Protocol Register Definitions */ -#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ -#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ - -/* TPI Formatter and Flush Status Register Definitions */ -#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ -#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ - -#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ -#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ - -#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ -#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ - -#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ -#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ - -/* TPI Formatter and Flush Control Register Definitions */ -#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ -#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ - -#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ -#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ - -/* TPI TRIGGER Register Definitions */ -#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ -#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ - -/* TPI Integration ETM Data Register Definitions (FIFO0) */ -#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ -#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ - -#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ -#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ - -#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ -#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ - -#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ -#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ - -#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ -#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ - -#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ -#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ - -#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ -#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ - -/* TPI ITATBCTR2 Register Definitions */ -#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ -#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ - -#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ -#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ - -/* TPI Integration ITM Data Register Definitions (FIFO1) */ -#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ -#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ - -#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ -#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ - -#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ -#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ - -#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ -#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ - -#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ -#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ - -#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ -#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ - -#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ -#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ - -/* TPI ITATBCTR0 Register Definitions */ -#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ -#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ - -#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ -#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ - -/* TPI Integration Mode Control Register Definitions */ -#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ -#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ - -/* TPI DEVID Register Definitions */ -#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ -#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ - -#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ -#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ - -#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ -#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ - -#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ -#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ - -#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ -#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ - -#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ -#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ - -/* TPI DEVTYPE Register Definitions */ -#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ -#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ - -#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ -#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ - -/*@}*/ /* end of group CMSIS_TPI */ - - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_MPU Memory Protection Unit (MPU) - \brief Type definitions for the Memory Protection Unit (MPU) - @{ - */ - -/** - \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ - __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ - __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ - __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ - __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ - __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -/* MPU Type Register Definitions */ -#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register Definitions */ -#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register Definitions */ -#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register Definitions */ -#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register Definitions */ -#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ -#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ - -#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ - -#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ -#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ - -#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ -#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ - -#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ - -#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ - -#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ - -#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Type definitions for the Core Debug Registers - @{ - */ - -/** - \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register Definitions */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register Definitions */ -#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register Definitions */ -#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ -#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ -#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ -#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ -#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ -#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ -#endif - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ - #define NVIC_GetActive __NVIC_GetActive - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/** - \brief Set Priority Grouping - \details Sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - SCB->AIRCR = reg_value; -} - - -/** - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); -} - - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Get Active Interrupt - \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not active. - \return 1 Interrupt status is active. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } - else - { - SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - VTOR must been relocated to SRAM before. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; - /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t vectors = (uint32_t )SCB->VTOR; - return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions ITM Functions - \brief Functions that access the ITM debug interface. - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ -#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ - - -/** - \brief ITM Send Character - \details Transmits a character via the ITM channel 0, and - \li Just returns when no debugger is connected that has booked the output. - \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. - \param [in] ch Character to transmit. - \returns Character to transmit. - */ -__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0U].u32 == 0UL) - { - __NOP(); - } - ITM->PORT[0U].u8 = (uint8_t)ch; - } - return (ch); -} - - -/** - \brief ITM Receive Character - \details Inputs a character via the external variable \ref ITM_RxBuffer. - \return Received character. - \return -1 No character pending. - */ -__STATIC_INLINE int32_t ITM_ReceiveChar (void) -{ - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) - { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** - \brief ITM Check Character - \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. - \return 0 No character available. - \return 1 Character available. - */ -__STATIC_INLINE int32_t ITM_CheckChar (void) -{ - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) - { - return (0); /* no character available */ - } - else - { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_SC300_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_sc300.h + * @brief CMSIS SC300 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 31. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_SC300_H_GENERIC +#define __CORE_SC300_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup SC3000 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS SC300 definitions */ +#define __SC300_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __SC300_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __SC300_CMSIS_VERSION ((__SC300_CMSIS_VERSION_MAIN << 16U) | \ + __SC300_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_SC (300U) /*!< Cortex secure core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC300_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC300_H_DEPENDANT +#define __CORE_SC300_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __SC300_REV + #define __SC300_REV 0x0000U + #warning "__SC300_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group SC300 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + uint32_t RESERVED1[129U]; + __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC300_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/eps/firmware/bsp/cmsis/Include/mpu_armv7.h b/eps/v1/firmware/bsp/cmsis/Include/mpu_armv7.h similarity index 97% rename from eps/firmware/bsp/cmsis/Include/mpu_armv7.h rename to eps/v1/firmware/bsp/cmsis/Include/mpu_armv7.h index 337eb65..66ef59b 100644 --- a/eps/firmware/bsp/cmsis/Include/mpu_armv7.h +++ b/eps/v1/firmware/bsp/cmsis/Include/mpu_armv7.h @@ -1,272 +1,272 @@ -/****************************************************************************** - * @file mpu_armv7.h - * @brief CMSIS MPU API for Armv7-M MPU - * @version V5.1.0 - * @date 08. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2017-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef ARM_MPU_ARMV7_H -#define ARM_MPU_ARMV7_H - -#define ARM_MPU_REGION_SIZE_32B ((uint8_t)0x04U) ///!< MPU Region Size 32 Bytes -#define ARM_MPU_REGION_SIZE_64B ((uint8_t)0x05U) ///!< MPU Region Size 64 Bytes -#define ARM_MPU_REGION_SIZE_128B ((uint8_t)0x06U) ///!< MPU Region Size 128 Bytes -#define ARM_MPU_REGION_SIZE_256B ((uint8_t)0x07U) ///!< MPU Region Size 256 Bytes -#define ARM_MPU_REGION_SIZE_512B ((uint8_t)0x08U) ///!< MPU Region Size 512 Bytes -#define ARM_MPU_REGION_SIZE_1KB ((uint8_t)0x09U) ///!< MPU Region Size 1 KByte -#define ARM_MPU_REGION_SIZE_2KB ((uint8_t)0x0AU) ///!< MPU Region Size 2 KBytes -#define ARM_MPU_REGION_SIZE_4KB ((uint8_t)0x0BU) ///!< MPU Region Size 4 KBytes -#define ARM_MPU_REGION_SIZE_8KB ((uint8_t)0x0CU) ///!< MPU Region Size 8 KBytes -#define ARM_MPU_REGION_SIZE_16KB ((uint8_t)0x0DU) ///!< MPU Region Size 16 KBytes -#define ARM_MPU_REGION_SIZE_32KB ((uint8_t)0x0EU) ///!< MPU Region Size 32 KBytes -#define ARM_MPU_REGION_SIZE_64KB ((uint8_t)0x0FU) ///!< MPU Region Size 64 KBytes -#define ARM_MPU_REGION_SIZE_128KB ((uint8_t)0x10U) ///!< MPU Region Size 128 KBytes -#define ARM_MPU_REGION_SIZE_256KB ((uint8_t)0x11U) ///!< MPU Region Size 256 KBytes -#define ARM_MPU_REGION_SIZE_512KB ((uint8_t)0x12U) ///!< MPU Region Size 512 KBytes -#define ARM_MPU_REGION_SIZE_1MB ((uint8_t)0x13U) ///!< MPU Region Size 1 MByte -#define ARM_MPU_REGION_SIZE_2MB ((uint8_t)0x14U) ///!< MPU Region Size 2 MBytes -#define ARM_MPU_REGION_SIZE_4MB ((uint8_t)0x15U) ///!< MPU Region Size 4 MBytes -#define ARM_MPU_REGION_SIZE_8MB ((uint8_t)0x16U) ///!< MPU Region Size 8 MBytes -#define ARM_MPU_REGION_SIZE_16MB ((uint8_t)0x17U) ///!< MPU Region Size 16 MBytes -#define ARM_MPU_REGION_SIZE_32MB ((uint8_t)0x18U) ///!< MPU Region Size 32 MBytes -#define ARM_MPU_REGION_SIZE_64MB ((uint8_t)0x19U) ///!< MPU Region Size 64 MBytes -#define ARM_MPU_REGION_SIZE_128MB ((uint8_t)0x1AU) ///!< MPU Region Size 128 MBytes -#define ARM_MPU_REGION_SIZE_256MB ((uint8_t)0x1BU) ///!< MPU Region Size 256 MBytes -#define ARM_MPU_REGION_SIZE_512MB ((uint8_t)0x1CU) ///!< MPU Region Size 512 MBytes -#define ARM_MPU_REGION_SIZE_1GB ((uint8_t)0x1DU) ///!< MPU Region Size 1 GByte -#define ARM_MPU_REGION_SIZE_2GB ((uint8_t)0x1EU) ///!< MPU Region Size 2 GBytes -#define ARM_MPU_REGION_SIZE_4GB ((uint8_t)0x1FU) ///!< MPU Region Size 4 GBytes - -#define ARM_MPU_AP_NONE 0U ///!< MPU Access Permission no access -#define ARM_MPU_AP_PRIV 1U ///!< MPU Access Permission privileged access only -#define ARM_MPU_AP_URO 2U ///!< MPU Access Permission unprivileged access read-only -#define ARM_MPU_AP_FULL 3U ///!< MPU Access Permission full access -#define ARM_MPU_AP_PRO 5U ///!< MPU Access Permission privileged access read-only -#define ARM_MPU_AP_RO 6U ///!< MPU Access Permission read-only access - -/** MPU Region Base Address Register Value -* -* \param Region The region to be configured, number 0 to 15. -* \param BaseAddress The base address for the region. -*/ -#define ARM_MPU_RBAR(Region, BaseAddress) \ - (((BaseAddress) & MPU_RBAR_ADDR_Msk) | \ - ((Region) & MPU_RBAR_REGION_Msk) | \ - (MPU_RBAR_VALID_Msk)) - -/** -* MPU Memory Access Attributes -* -* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. -* \param IsShareable Region is shareable between multiple bus masters. -* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. -* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. -*/ -#define ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable) \ - ((((TypeExtField) << MPU_RASR_TEX_Pos) & MPU_RASR_TEX_Msk) | \ - (((IsShareable) << MPU_RASR_S_Pos) & MPU_RASR_S_Msk) | \ - (((IsCacheable) << MPU_RASR_C_Pos) & MPU_RASR_C_Msk) | \ - (((IsBufferable) << MPU_RASR_B_Pos) & MPU_RASR_B_Msk)) - -/** -* MPU Region Attribute and Size Register Value -* -* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. -* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. -* \param AccessAttributes Memory access attribution, see \ref ARM_MPU_ACCESS_. -* \param SubRegionDisable Sub-region disable field. -* \param Size Region size of the region to be configured, for example 4K, 8K. -*/ -#define ARM_MPU_RASR_EX(DisableExec, AccessPermission, AccessAttributes, SubRegionDisable, Size) \ - ((((DisableExec) << MPU_RASR_XN_Pos) & MPU_RASR_XN_Msk) | \ - (((AccessPermission) << MPU_RASR_AP_Pos) & MPU_RASR_AP_Msk) | \ - (((AccessAttributes) & (MPU_RASR_TEX_Msk | MPU_RASR_S_Msk | MPU_RASR_C_Msk | MPU_RASR_B_Msk))) | \ - (((SubRegionDisable) << MPU_RASR_SRD_Pos) & MPU_RASR_SRD_Msk) | \ - (((Size) << MPU_RASR_SIZE_Pos) & MPU_RASR_SIZE_Msk) | \ - (((MPU_RASR_ENABLE_Msk)))) - -/** -* MPU Region Attribute and Size Register Value -* -* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. -* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. -* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. -* \param IsShareable Region is shareable between multiple bus masters. -* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. -* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. -* \param SubRegionDisable Sub-region disable field. -* \param Size Region size of the region to be configured, for example 4K, 8K. -*/ -#define ARM_MPU_RASR(DisableExec, AccessPermission, TypeExtField, IsShareable, IsCacheable, IsBufferable, SubRegionDisable, Size) \ - ARM_MPU_RASR_EX(DisableExec, AccessPermission, ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable), SubRegionDisable, Size) - -/** -* MPU Memory Access Attribute for strongly ordered memory. -* - TEX: 000b -* - Shareable -* - Non-cacheable -* - Non-bufferable -*/ -#define ARM_MPU_ACCESS_ORDERED ARM_MPU_ACCESS_(0U, 1U, 0U, 0U) - -/** -* MPU Memory Access Attribute for device memory. -* - TEX: 000b (if shareable) or 010b (if non-shareable) -* - Shareable or non-shareable -* - Non-cacheable -* - Bufferable (if shareable) or non-bufferable (if non-shareable) -* -* \param IsShareable Configures the device memory as shareable or non-shareable. -*/ -#define ARM_MPU_ACCESS_DEVICE(IsShareable) ((IsShareable) ? ARM_MPU_ACCESS_(0U, 1U, 0U, 1U) : ARM_MPU_ACCESS_(2U, 0U, 0U, 0U)) - -/** -* MPU Memory Access Attribute for normal memory. -* - TEX: 1BBb (reflecting outer cacheability rules) -* - Shareable or non-shareable -* - Cacheable or non-cacheable (reflecting inner cacheability rules) -* - Bufferable or non-bufferable (reflecting inner cacheability rules) -* -* \param OuterCp Configures the outer cache policy. -* \param InnerCp Configures the inner cache policy. -* \param IsShareable Configures the memory as shareable or non-shareable. -*/ -#define ARM_MPU_ACCESS_NORMAL(OuterCp, InnerCp, IsShareable) ARM_MPU_ACCESS_((4U | (OuterCp)), IsShareable, ((InnerCp) & 2U), ((InnerCp) & 1U)) - -/** -* MPU Memory Access Attribute non-cacheable policy. -*/ -#define ARM_MPU_CACHEP_NOCACHE 0U - -/** -* MPU Memory Access Attribute write-back, write and read allocate policy. -*/ -#define ARM_MPU_CACHEP_WB_WRA 1U - -/** -* MPU Memory Access Attribute write-through, no write allocate policy. -*/ -#define ARM_MPU_CACHEP_WT_NWA 2U - -/** -* MPU Memory Access Attribute write-back, no write allocate policy. -*/ -#define ARM_MPU_CACHEP_WB_NWA 3U - - -/** -* Struct for a single MPU Region -*/ -typedef struct { - uint32_t RBAR; //!< The region base address register value (RBAR) - uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR -} ARM_MPU_Region_t; - -/** Enable the MPU. -* \param MPU_Control Default access permissions for unconfigured regions. -*/ -__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) -{ - MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; -#endif - __DSB(); - __ISB(); -} - -/** Disable the MPU. -*/ -__STATIC_INLINE void ARM_MPU_Disable(void) -{ - __DMB(); -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; -#endif - MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; -} - -/** Clear and disable the given MPU region. -* \param rnr Region number to be cleared. -*/ -__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) -{ - MPU->RNR = rnr; - MPU->RASR = 0U; -} - -/** Configure an MPU region. -* \param rbar Value for RBAR register. -* \param rsar Value for RSAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr) -{ - MPU->RBAR = rbar; - MPU->RASR = rasr; -} - -/** Configure the given MPU region. -* \param rnr Region number to be configured. -* \param rbar Value for RBAR register. -* \param rsar Value for RSAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegionEx(uint32_t rnr, uint32_t rbar, uint32_t rasr) -{ - MPU->RNR = rnr; - MPU->RBAR = rbar; - MPU->RASR = rasr; -} - -/** Memcopy with strictly ordered memory access, e.g. for register targets. -* \param dst Destination data is copied to. -* \param src Source data is copied from. -* \param len Amount of data words to be copied. -*/ -__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) -{ - uint32_t i; - for (i = 0U; i < len; ++i) - { - dst[i] = src[i]; - } -} - -/** Load the given number of MPU regions from a table. -* \param table Pointer to the MPU configuration table. -* \param cnt Amount of regions to be configured. -*/ -__STATIC_INLINE void ARM_MPU_Load(ARM_MPU_Region_t const* table, uint32_t cnt) -{ - const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; - while (cnt > MPU_TYPE_RALIASES) { - ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), MPU_TYPE_RALIASES*rowWordSize); - table += MPU_TYPE_RALIASES; - cnt -= MPU_TYPE_RALIASES; - } - ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), cnt*rowWordSize); -} - -#endif +/****************************************************************************** + * @file mpu_armv7.h + * @brief CMSIS MPU API for Armv7-M MPU + * @version V5.1.0 + * @date 08. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2017-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef ARM_MPU_ARMV7_H +#define ARM_MPU_ARMV7_H + +#define ARM_MPU_REGION_SIZE_32B ((uint8_t)0x04U) ///!< MPU Region Size 32 Bytes +#define ARM_MPU_REGION_SIZE_64B ((uint8_t)0x05U) ///!< MPU Region Size 64 Bytes +#define ARM_MPU_REGION_SIZE_128B ((uint8_t)0x06U) ///!< MPU Region Size 128 Bytes +#define ARM_MPU_REGION_SIZE_256B ((uint8_t)0x07U) ///!< MPU Region Size 256 Bytes +#define ARM_MPU_REGION_SIZE_512B ((uint8_t)0x08U) ///!< MPU Region Size 512 Bytes +#define ARM_MPU_REGION_SIZE_1KB ((uint8_t)0x09U) ///!< MPU Region Size 1 KByte +#define ARM_MPU_REGION_SIZE_2KB ((uint8_t)0x0AU) ///!< MPU Region Size 2 KBytes +#define ARM_MPU_REGION_SIZE_4KB ((uint8_t)0x0BU) ///!< MPU Region Size 4 KBytes +#define ARM_MPU_REGION_SIZE_8KB ((uint8_t)0x0CU) ///!< MPU Region Size 8 KBytes +#define ARM_MPU_REGION_SIZE_16KB ((uint8_t)0x0DU) ///!< MPU Region Size 16 KBytes +#define ARM_MPU_REGION_SIZE_32KB ((uint8_t)0x0EU) ///!< MPU Region Size 32 KBytes +#define ARM_MPU_REGION_SIZE_64KB ((uint8_t)0x0FU) ///!< MPU Region Size 64 KBytes +#define ARM_MPU_REGION_SIZE_128KB ((uint8_t)0x10U) ///!< MPU Region Size 128 KBytes +#define ARM_MPU_REGION_SIZE_256KB ((uint8_t)0x11U) ///!< MPU Region Size 256 KBytes +#define ARM_MPU_REGION_SIZE_512KB ((uint8_t)0x12U) ///!< MPU Region Size 512 KBytes +#define ARM_MPU_REGION_SIZE_1MB ((uint8_t)0x13U) ///!< MPU Region Size 1 MByte +#define ARM_MPU_REGION_SIZE_2MB ((uint8_t)0x14U) ///!< MPU Region Size 2 MBytes +#define ARM_MPU_REGION_SIZE_4MB ((uint8_t)0x15U) ///!< MPU Region Size 4 MBytes +#define ARM_MPU_REGION_SIZE_8MB ((uint8_t)0x16U) ///!< MPU Region Size 8 MBytes +#define ARM_MPU_REGION_SIZE_16MB ((uint8_t)0x17U) ///!< MPU Region Size 16 MBytes +#define ARM_MPU_REGION_SIZE_32MB ((uint8_t)0x18U) ///!< MPU Region Size 32 MBytes +#define ARM_MPU_REGION_SIZE_64MB ((uint8_t)0x19U) ///!< MPU Region Size 64 MBytes +#define ARM_MPU_REGION_SIZE_128MB ((uint8_t)0x1AU) ///!< MPU Region Size 128 MBytes +#define ARM_MPU_REGION_SIZE_256MB ((uint8_t)0x1BU) ///!< MPU Region Size 256 MBytes +#define ARM_MPU_REGION_SIZE_512MB ((uint8_t)0x1CU) ///!< MPU Region Size 512 MBytes +#define ARM_MPU_REGION_SIZE_1GB ((uint8_t)0x1DU) ///!< MPU Region Size 1 GByte +#define ARM_MPU_REGION_SIZE_2GB ((uint8_t)0x1EU) ///!< MPU Region Size 2 GBytes +#define ARM_MPU_REGION_SIZE_4GB ((uint8_t)0x1FU) ///!< MPU Region Size 4 GBytes + +#define ARM_MPU_AP_NONE 0U ///!< MPU Access Permission no access +#define ARM_MPU_AP_PRIV 1U ///!< MPU Access Permission privileged access only +#define ARM_MPU_AP_URO 2U ///!< MPU Access Permission unprivileged access read-only +#define ARM_MPU_AP_FULL 3U ///!< MPU Access Permission full access +#define ARM_MPU_AP_PRO 5U ///!< MPU Access Permission privileged access read-only +#define ARM_MPU_AP_RO 6U ///!< MPU Access Permission read-only access + +/** MPU Region Base Address Register Value +* +* \param Region The region to be configured, number 0 to 15. +* \param BaseAddress The base address for the region. +*/ +#define ARM_MPU_RBAR(Region, BaseAddress) \ + (((BaseAddress) & MPU_RBAR_ADDR_Msk) | \ + ((Region) & MPU_RBAR_REGION_Msk) | \ + (MPU_RBAR_VALID_Msk)) + +/** +* MPU Memory Access Attributes +* +* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. +* \param IsShareable Region is shareable between multiple bus masters. +* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. +* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. +*/ +#define ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable) \ + ((((TypeExtField) << MPU_RASR_TEX_Pos) & MPU_RASR_TEX_Msk) | \ + (((IsShareable) << MPU_RASR_S_Pos) & MPU_RASR_S_Msk) | \ + (((IsCacheable) << MPU_RASR_C_Pos) & MPU_RASR_C_Msk) | \ + (((IsBufferable) << MPU_RASR_B_Pos) & MPU_RASR_B_Msk)) + +/** +* MPU Region Attribute and Size Register Value +* +* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. +* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. +* \param AccessAttributes Memory access attribution, see \ref ARM_MPU_ACCESS_. +* \param SubRegionDisable Sub-region disable field. +* \param Size Region size of the region to be configured, for example 4K, 8K. +*/ +#define ARM_MPU_RASR_EX(DisableExec, AccessPermission, AccessAttributes, SubRegionDisable, Size) \ + ((((DisableExec) << MPU_RASR_XN_Pos) & MPU_RASR_XN_Msk) | \ + (((AccessPermission) << MPU_RASR_AP_Pos) & MPU_RASR_AP_Msk) | \ + (((AccessAttributes) & (MPU_RASR_TEX_Msk | MPU_RASR_S_Msk | MPU_RASR_C_Msk | MPU_RASR_B_Msk))) | \ + (((SubRegionDisable) << MPU_RASR_SRD_Pos) & MPU_RASR_SRD_Msk) | \ + (((Size) << MPU_RASR_SIZE_Pos) & MPU_RASR_SIZE_Msk) | \ + (((MPU_RASR_ENABLE_Msk)))) + +/** +* MPU Region Attribute and Size Register Value +* +* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. +* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. +* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. +* \param IsShareable Region is shareable between multiple bus masters. +* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. +* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. +* \param SubRegionDisable Sub-region disable field. +* \param Size Region size of the region to be configured, for example 4K, 8K. +*/ +#define ARM_MPU_RASR(DisableExec, AccessPermission, TypeExtField, IsShareable, IsCacheable, IsBufferable, SubRegionDisable, Size) \ + ARM_MPU_RASR_EX(DisableExec, AccessPermission, ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable), SubRegionDisable, Size) + +/** +* MPU Memory Access Attribute for strongly ordered memory. +* - TEX: 000b +* - Shareable +* - Non-cacheable +* - Non-bufferable +*/ +#define ARM_MPU_ACCESS_ORDERED ARM_MPU_ACCESS_(0U, 1U, 0U, 0U) + +/** +* MPU Memory Access Attribute for device memory. +* - TEX: 000b (if shareable) or 010b (if non-shareable) +* - Shareable or non-shareable +* - Non-cacheable +* - Bufferable (if shareable) or non-bufferable (if non-shareable) +* +* \param IsShareable Configures the device memory as shareable or non-shareable. +*/ +#define ARM_MPU_ACCESS_DEVICE(IsShareable) ((IsShareable) ? ARM_MPU_ACCESS_(0U, 1U, 0U, 1U) : ARM_MPU_ACCESS_(2U, 0U, 0U, 0U)) + +/** +* MPU Memory Access Attribute for normal memory. +* - TEX: 1BBb (reflecting outer cacheability rules) +* - Shareable or non-shareable +* - Cacheable or non-cacheable (reflecting inner cacheability rules) +* - Bufferable or non-bufferable (reflecting inner cacheability rules) +* +* \param OuterCp Configures the outer cache policy. +* \param InnerCp Configures the inner cache policy. +* \param IsShareable Configures the memory as shareable or non-shareable. +*/ +#define ARM_MPU_ACCESS_NORMAL(OuterCp, InnerCp, IsShareable) ARM_MPU_ACCESS_((4U | (OuterCp)), IsShareable, ((InnerCp) & 2U), ((InnerCp) & 1U)) + +/** +* MPU Memory Access Attribute non-cacheable policy. +*/ +#define ARM_MPU_CACHEP_NOCACHE 0U + +/** +* MPU Memory Access Attribute write-back, write and read allocate policy. +*/ +#define ARM_MPU_CACHEP_WB_WRA 1U + +/** +* MPU Memory Access Attribute write-through, no write allocate policy. +*/ +#define ARM_MPU_CACHEP_WT_NWA 2U + +/** +* MPU Memory Access Attribute write-back, no write allocate policy. +*/ +#define ARM_MPU_CACHEP_WB_NWA 3U + + +/** +* Struct for a single MPU Region +*/ +typedef struct { + uint32_t RBAR; //!< The region base address register value (RBAR) + uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR +} ARM_MPU_Region_t; + +/** Enable the MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) +{ + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif + __DSB(); + __ISB(); +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DMB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} + +/** Clear and disable the given MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) +{ + MPU->RNR = rnr; + MPU->RASR = 0U; +} + +/** Configure an MPU region. +* \param rbar Value for RBAR register. +* \param rsar Value for RSAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr) +{ + MPU->RBAR = rbar; + MPU->RASR = rasr; +} + +/** Configure the given MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rsar Value for RSAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegionEx(uint32_t rnr, uint32_t rbar, uint32_t rasr) +{ + MPU->RNR = rnr; + MPU->RBAR = rbar; + MPU->RASR = rasr; +} + +/** Memcopy with strictly ordered memory access, e.g. for register targets. +* \param dst Destination data is copied to. +* \param src Source data is copied from. +* \param len Amount of data words to be copied. +*/ +__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) +{ + uint32_t i; + for (i = 0U; i < len; ++i) + { + dst[i] = src[i]; + } +} + +/** Load the given number of MPU regions from a table. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load(ARM_MPU_Region_t const* table, uint32_t cnt) +{ + const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; + while (cnt > MPU_TYPE_RALIASES) { + ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), MPU_TYPE_RALIASES*rowWordSize); + table += MPU_TYPE_RALIASES; + cnt -= MPU_TYPE_RALIASES; + } + ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), cnt*rowWordSize); +} + +#endif diff --git a/eps/firmware/bsp/cmsis/Include/mpu_armv8.h b/eps/v1/firmware/bsp/cmsis/Include/mpu_armv8.h similarity index 97% rename from eps/firmware/bsp/cmsis/Include/mpu_armv8.h rename to eps/v1/firmware/bsp/cmsis/Include/mpu_armv8.h index 2fe28b6..0041d4d 100644 --- a/eps/firmware/bsp/cmsis/Include/mpu_armv8.h +++ b/eps/v1/firmware/bsp/cmsis/Include/mpu_armv8.h @@ -1,346 +1,346 @@ -/****************************************************************************** - * @file mpu_armv8.h - * @brief CMSIS MPU API for Armv8-M and Armv8.1-M MPU - * @version V5.1.0 - * @date 08. March 2019 - ******************************************************************************/ -/* - * Copyright (c) 2017-2019 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef ARM_MPU_ARMV8_H -#define ARM_MPU_ARMV8_H - -/** \brief Attribute for device memory (outer only) */ -#define ARM_MPU_ATTR_DEVICE ( 0U ) - -/** \brief Attribute for non-cacheable, normal memory */ -#define ARM_MPU_ATTR_NON_CACHEABLE ( 4U ) - -/** \brief Attribute for normal memory (outer and inner) -* \param NT Non-Transient: Set to 1 for non-transient data. -* \param WB Write-Back: Set to 1 to use write-back update policy. -* \param RA Read Allocation: Set to 1 to use cache allocation on read miss. -* \param WA Write Allocation: Set to 1 to use cache allocation on write miss. -*/ -#define ARM_MPU_ATTR_MEMORY_(NT, WB, RA, WA) \ - (((NT & 1U) << 3U) | ((WB & 1U) << 2U) | ((RA & 1U) << 1U) | (WA & 1U)) - -/** \brief Device memory type non Gathering, non Re-ordering, non Early Write Acknowledgement */ -#define ARM_MPU_ATTR_DEVICE_nGnRnE (0U) - -/** \brief Device memory type non Gathering, non Re-ordering, Early Write Acknowledgement */ -#define ARM_MPU_ATTR_DEVICE_nGnRE (1U) - -/** \brief Device memory type non Gathering, Re-ordering, Early Write Acknowledgement */ -#define ARM_MPU_ATTR_DEVICE_nGRE (2U) - -/** \brief Device memory type Gathering, Re-ordering, Early Write Acknowledgement */ -#define ARM_MPU_ATTR_DEVICE_GRE (3U) - -/** \brief Memory Attribute -* \param O Outer memory attributes -* \param I O == ARM_MPU_ATTR_DEVICE: Device memory attributes, else: Inner memory attributes -*/ -#define ARM_MPU_ATTR(O, I) (((O & 0xFU) << 4U) | (((O & 0xFU) != 0U) ? (I & 0xFU) : ((I & 0x3U) << 2U))) - -/** \brief Normal memory non-shareable */ -#define ARM_MPU_SH_NON (0U) - -/** \brief Normal memory outer shareable */ -#define ARM_MPU_SH_OUTER (2U) - -/** \brief Normal memory inner shareable */ -#define ARM_MPU_SH_INNER (3U) - -/** \brief Memory access permissions -* \param RO Read-Only: Set to 1 for read-only memory. -* \param NP Non-Privileged: Set to 1 for non-privileged memory. -*/ -#define ARM_MPU_AP_(RO, NP) (((RO & 1U) << 1U) | (NP & 1U)) - -/** \brief Region Base Address Register value -* \param BASE The base address bits [31:5] of a memory region. The value is zero extended. Effective address gets 32 byte aligned. -* \param SH Defines the Shareability domain for this memory region. -* \param RO Read-Only: Set to 1 for a read-only memory region. -* \param NP Non-Privileged: Set to 1 for a non-privileged memory region. -* \oaram XN eXecute Never: Set to 1 for a non-executable memory region. -*/ -#define ARM_MPU_RBAR(BASE, SH, RO, NP, XN) \ - ((BASE & MPU_RBAR_BASE_Msk) | \ - ((SH << MPU_RBAR_SH_Pos) & MPU_RBAR_SH_Msk) | \ - ((ARM_MPU_AP_(RO, NP) << MPU_RBAR_AP_Pos) & MPU_RBAR_AP_Msk) | \ - ((XN << MPU_RBAR_XN_Pos) & MPU_RBAR_XN_Msk)) - -/** \brief Region Limit Address Register value -* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. -* \param IDX The attribute index to be associated with this memory region. -*/ -#define ARM_MPU_RLAR(LIMIT, IDX) \ - ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ - ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ - (MPU_RLAR_EN_Msk)) - -#if defined(MPU_RLAR_PXN_Pos) - -/** \brief Region Limit Address Register with PXN value -* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. -* \param PXN Privileged execute never. Defines whether code can be executed from this privileged region. -* \param IDX The attribute index to be associated with this memory region. -*/ -#define ARM_MPU_RLAR_PXN(LIMIT, PXN, IDX) \ - ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ - ((PXN << MPU_RLAR_PXN_Pos) & MPU_RLAR_PXN_Msk) | \ - ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ - (MPU_RLAR_EN_Msk)) - -#endif - -/** -* Struct for a single MPU Region -*/ -typedef struct { - uint32_t RBAR; /*!< Region Base Address Register value */ - uint32_t RLAR; /*!< Region Limit Address Register value */ -} ARM_MPU_Region_t; - -/** Enable the MPU. -* \param MPU_Control Default access permissions for unconfigured regions. -*/ -__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) -{ - MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; -#endif - __DSB(); - __ISB(); -} - -/** Disable the MPU. -*/ -__STATIC_INLINE void ARM_MPU_Disable(void) -{ - __DMB(); -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; -#endif - MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; -} - -#ifdef MPU_NS -/** Enable the Non-secure MPU. -* \param MPU_Control Default access permissions for unconfigured regions. -*/ -__STATIC_INLINE void ARM_MPU_Enable_NS(uint32_t MPU_Control) -{ - MPU_NS->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB_NS->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; -#endif - __DSB(); - __ISB(); -} - -/** Disable the Non-secure MPU. -*/ -__STATIC_INLINE void ARM_MPU_Disable_NS(void) -{ - __DMB(); -#ifdef SCB_SHCSR_MEMFAULTENA_Msk - SCB_NS->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; -#endif - MPU_NS->CTRL &= ~MPU_CTRL_ENABLE_Msk; -} -#endif - -/** Set the memory attribute encoding to the given MPU. -* \param mpu Pointer to the MPU to be configured. -* \param idx The attribute index to be set [0-7] -* \param attr The attribute value to be set. -*/ -__STATIC_INLINE void ARM_MPU_SetMemAttrEx(MPU_Type* mpu, uint8_t idx, uint8_t attr) -{ - const uint8_t reg = idx / 4U; - const uint32_t pos = ((idx % 4U) * 8U); - const uint32_t mask = 0xFFU << pos; - - if (reg >= (sizeof(mpu->MAIR) / sizeof(mpu->MAIR[0]))) { - return; // invalid index - } - - mpu->MAIR[reg] = ((mpu->MAIR[reg] & ~mask) | ((attr << pos) & mask)); -} - -/** Set the memory attribute encoding. -* \param idx The attribute index to be set [0-7] -* \param attr The attribute value to be set. -*/ -__STATIC_INLINE void ARM_MPU_SetMemAttr(uint8_t idx, uint8_t attr) -{ - ARM_MPU_SetMemAttrEx(MPU, idx, attr); -} - -#ifdef MPU_NS -/** Set the memory attribute encoding to the Non-secure MPU. -* \param idx The attribute index to be set [0-7] -* \param attr The attribute value to be set. -*/ -__STATIC_INLINE void ARM_MPU_SetMemAttr_NS(uint8_t idx, uint8_t attr) -{ - ARM_MPU_SetMemAttrEx(MPU_NS, idx, attr); -} -#endif - -/** Clear and disable the given MPU region of the given MPU. -* \param mpu Pointer to MPU to be used. -* \param rnr Region number to be cleared. -*/ -__STATIC_INLINE void ARM_MPU_ClrRegionEx(MPU_Type* mpu, uint32_t rnr) -{ - mpu->RNR = rnr; - mpu->RLAR = 0U; -} - -/** Clear and disable the given MPU region. -* \param rnr Region number to be cleared. -*/ -__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) -{ - ARM_MPU_ClrRegionEx(MPU, rnr); -} - -#ifdef MPU_NS -/** Clear and disable the given Non-secure MPU region. -* \param rnr Region number to be cleared. -*/ -__STATIC_INLINE void ARM_MPU_ClrRegion_NS(uint32_t rnr) -{ - ARM_MPU_ClrRegionEx(MPU_NS, rnr); -} -#endif - -/** Configure the given MPU region of the given MPU. -* \param mpu Pointer to MPU to be used. -* \param rnr Region number to be configured. -* \param rbar Value for RBAR register. -* \param rlar Value for RLAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegionEx(MPU_Type* mpu, uint32_t rnr, uint32_t rbar, uint32_t rlar) -{ - mpu->RNR = rnr; - mpu->RBAR = rbar; - mpu->RLAR = rlar; -} - -/** Configure the given MPU region. -* \param rnr Region number to be configured. -* \param rbar Value for RBAR register. -* \param rlar Value for RLAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rnr, uint32_t rbar, uint32_t rlar) -{ - ARM_MPU_SetRegionEx(MPU, rnr, rbar, rlar); -} - -#ifdef MPU_NS -/** Configure the given Non-secure MPU region. -* \param rnr Region number to be configured. -* \param rbar Value for RBAR register. -* \param rlar Value for RLAR register. -*/ -__STATIC_INLINE void ARM_MPU_SetRegion_NS(uint32_t rnr, uint32_t rbar, uint32_t rlar) -{ - ARM_MPU_SetRegionEx(MPU_NS, rnr, rbar, rlar); -} -#endif - -/** Memcopy with strictly ordered memory access, e.g. for register targets. -* \param dst Destination data is copied to. -* \param src Source data is copied from. -* \param len Amount of data words to be copied. -*/ -__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) -{ - uint32_t i; - for (i = 0U; i < len; ++i) - { - dst[i] = src[i]; - } -} - -/** Load the given number of MPU regions from a table to the given MPU. -* \param mpu Pointer to the MPU registers to be used. -* \param rnr First region number to be configured. -* \param table Pointer to the MPU configuration table. -* \param cnt Amount of regions to be configured. -*/ -__STATIC_INLINE void ARM_MPU_LoadEx(MPU_Type* mpu, uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) -{ - const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; - if (cnt == 1U) { - mpu->RNR = rnr; - ARM_MPU_OrderedMemcpy(&(mpu->RBAR), &(table->RBAR), rowWordSize); - } else { - uint32_t rnrBase = rnr & ~(MPU_TYPE_RALIASES-1U); - uint32_t rnrOffset = rnr % MPU_TYPE_RALIASES; - - mpu->RNR = rnrBase; - while ((rnrOffset + cnt) > MPU_TYPE_RALIASES) { - uint32_t c = MPU_TYPE_RALIASES - rnrOffset; - ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), c*rowWordSize); - table += c; - cnt -= c; - rnrOffset = 0U; - rnrBase += MPU_TYPE_RALIASES; - mpu->RNR = rnrBase; - } - - ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), cnt*rowWordSize); - } -} - -/** Load the given number of MPU regions from a table. -* \param rnr First region number to be configured. -* \param table Pointer to the MPU configuration table. -* \param cnt Amount of regions to be configured. -*/ -__STATIC_INLINE void ARM_MPU_Load(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) -{ - ARM_MPU_LoadEx(MPU, rnr, table, cnt); -} - -#ifdef MPU_NS -/** Load the given number of MPU regions from a table to the Non-secure MPU. -* \param rnr First region number to be configured. -* \param table Pointer to the MPU configuration table. -* \param cnt Amount of regions to be configured. -*/ -__STATIC_INLINE void ARM_MPU_Load_NS(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) -{ - ARM_MPU_LoadEx(MPU_NS, rnr, table, cnt); -} -#endif - -#endif - +/****************************************************************************** + * @file mpu_armv8.h + * @brief CMSIS MPU API for Armv8-M and Armv8.1-M MPU + * @version V5.1.0 + * @date 08. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2017-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef ARM_MPU_ARMV8_H +#define ARM_MPU_ARMV8_H + +/** \brief Attribute for device memory (outer only) */ +#define ARM_MPU_ATTR_DEVICE ( 0U ) + +/** \brief Attribute for non-cacheable, normal memory */ +#define ARM_MPU_ATTR_NON_CACHEABLE ( 4U ) + +/** \brief Attribute for normal memory (outer and inner) +* \param NT Non-Transient: Set to 1 for non-transient data. +* \param WB Write-Back: Set to 1 to use write-back update policy. +* \param RA Read Allocation: Set to 1 to use cache allocation on read miss. +* \param WA Write Allocation: Set to 1 to use cache allocation on write miss. +*/ +#define ARM_MPU_ATTR_MEMORY_(NT, WB, RA, WA) \ + (((NT & 1U) << 3U) | ((WB & 1U) << 2U) | ((RA & 1U) << 1U) | (WA & 1U)) + +/** \brief Device memory type non Gathering, non Re-ordering, non Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGnRnE (0U) + +/** \brief Device memory type non Gathering, non Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGnRE (1U) + +/** \brief Device memory type non Gathering, Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGRE (2U) + +/** \brief Device memory type Gathering, Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_GRE (3U) + +/** \brief Memory Attribute +* \param O Outer memory attributes +* \param I O == ARM_MPU_ATTR_DEVICE: Device memory attributes, else: Inner memory attributes +*/ +#define ARM_MPU_ATTR(O, I) (((O & 0xFU) << 4U) | (((O & 0xFU) != 0U) ? (I & 0xFU) : ((I & 0x3U) << 2U))) + +/** \brief Normal memory non-shareable */ +#define ARM_MPU_SH_NON (0U) + +/** \brief Normal memory outer shareable */ +#define ARM_MPU_SH_OUTER (2U) + +/** \brief Normal memory inner shareable */ +#define ARM_MPU_SH_INNER (3U) + +/** \brief Memory access permissions +* \param RO Read-Only: Set to 1 for read-only memory. +* \param NP Non-Privileged: Set to 1 for non-privileged memory. +*/ +#define ARM_MPU_AP_(RO, NP) (((RO & 1U) << 1U) | (NP & 1U)) + +/** \brief Region Base Address Register value +* \param BASE The base address bits [31:5] of a memory region. The value is zero extended. Effective address gets 32 byte aligned. +* \param SH Defines the Shareability domain for this memory region. +* \param RO Read-Only: Set to 1 for a read-only memory region. +* \param NP Non-Privileged: Set to 1 for a non-privileged memory region. +* \oaram XN eXecute Never: Set to 1 for a non-executable memory region. +*/ +#define ARM_MPU_RBAR(BASE, SH, RO, NP, XN) \ + ((BASE & MPU_RBAR_BASE_Msk) | \ + ((SH << MPU_RBAR_SH_Pos) & MPU_RBAR_SH_Msk) | \ + ((ARM_MPU_AP_(RO, NP) << MPU_RBAR_AP_Pos) & MPU_RBAR_AP_Msk) | \ + ((XN << MPU_RBAR_XN_Pos) & MPU_RBAR_XN_Msk)) + +/** \brief Region Limit Address Register value +* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. +* \param IDX The attribute index to be associated with this memory region. +*/ +#define ARM_MPU_RLAR(LIMIT, IDX) \ + ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ + ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ + (MPU_RLAR_EN_Msk)) + +#if defined(MPU_RLAR_PXN_Pos) + +/** \brief Region Limit Address Register with PXN value +* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. +* \param PXN Privileged execute never. Defines whether code can be executed from this privileged region. +* \param IDX The attribute index to be associated with this memory region. +*/ +#define ARM_MPU_RLAR_PXN(LIMIT, PXN, IDX) \ + ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ + ((PXN << MPU_RLAR_PXN_Pos) & MPU_RLAR_PXN_Msk) | \ + ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ + (MPU_RLAR_EN_Msk)) + +#endif + +/** +* Struct for a single MPU Region +*/ +typedef struct { + uint32_t RBAR; /*!< Region Base Address Register value */ + uint32_t RLAR; /*!< Region Limit Address Register value */ +} ARM_MPU_Region_t; + +/** Enable the MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) +{ + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif + __DSB(); + __ISB(); +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DMB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} + +#ifdef MPU_NS +/** Enable the Non-secure MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable_NS(uint32_t MPU_Control) +{ + MPU_NS->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB_NS->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif + __DSB(); + __ISB(); +} + +/** Disable the Non-secure MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable_NS(void) +{ + __DMB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB_NS->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU_NS->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} +#endif + +/** Set the memory attribute encoding to the given MPU. +* \param mpu Pointer to the MPU to be configured. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttrEx(MPU_Type* mpu, uint8_t idx, uint8_t attr) +{ + const uint8_t reg = idx / 4U; + const uint32_t pos = ((idx % 4U) * 8U); + const uint32_t mask = 0xFFU << pos; + + if (reg >= (sizeof(mpu->MAIR) / sizeof(mpu->MAIR[0]))) { + return; // invalid index + } + + mpu->MAIR[reg] = ((mpu->MAIR[reg] & ~mask) | ((attr << pos) & mask)); +} + +/** Set the memory attribute encoding. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttr(uint8_t idx, uint8_t attr) +{ + ARM_MPU_SetMemAttrEx(MPU, idx, attr); +} + +#ifdef MPU_NS +/** Set the memory attribute encoding to the Non-secure MPU. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttr_NS(uint8_t idx, uint8_t attr) +{ + ARM_MPU_SetMemAttrEx(MPU_NS, idx, attr); +} +#endif + +/** Clear and disable the given MPU region of the given MPU. +* \param mpu Pointer to MPU to be used. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegionEx(MPU_Type* mpu, uint32_t rnr) +{ + mpu->RNR = rnr; + mpu->RLAR = 0U; +} + +/** Clear and disable the given MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) +{ + ARM_MPU_ClrRegionEx(MPU, rnr); +} + +#ifdef MPU_NS +/** Clear and disable the given Non-secure MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion_NS(uint32_t rnr) +{ + ARM_MPU_ClrRegionEx(MPU_NS, rnr); +} +#endif + +/** Configure the given MPU region of the given MPU. +* \param mpu Pointer to MPU to be used. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegionEx(MPU_Type* mpu, uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + mpu->RNR = rnr; + mpu->RBAR = rbar; + mpu->RLAR = rlar; +} + +/** Configure the given MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + ARM_MPU_SetRegionEx(MPU, rnr, rbar, rlar); +} + +#ifdef MPU_NS +/** Configure the given Non-secure MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion_NS(uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + ARM_MPU_SetRegionEx(MPU_NS, rnr, rbar, rlar); +} +#endif + +/** Memcopy with strictly ordered memory access, e.g. for register targets. +* \param dst Destination data is copied to. +* \param src Source data is copied from. +* \param len Amount of data words to be copied. +*/ +__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) +{ + uint32_t i; + for (i = 0U; i < len; ++i) + { + dst[i] = src[i]; + } +} + +/** Load the given number of MPU regions from a table to the given MPU. +* \param mpu Pointer to the MPU registers to be used. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_LoadEx(MPU_Type* mpu, uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; + if (cnt == 1U) { + mpu->RNR = rnr; + ARM_MPU_OrderedMemcpy(&(mpu->RBAR), &(table->RBAR), rowWordSize); + } else { + uint32_t rnrBase = rnr & ~(MPU_TYPE_RALIASES-1U); + uint32_t rnrOffset = rnr % MPU_TYPE_RALIASES; + + mpu->RNR = rnrBase; + while ((rnrOffset + cnt) > MPU_TYPE_RALIASES) { + uint32_t c = MPU_TYPE_RALIASES - rnrOffset; + ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), c*rowWordSize); + table += c; + cnt -= c; + rnrOffset = 0U; + rnrBase += MPU_TYPE_RALIASES; + mpu->RNR = rnrBase; + } + + ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), cnt*rowWordSize); + } +} + +/** Load the given number of MPU regions from a table. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + ARM_MPU_LoadEx(MPU, rnr, table, cnt); +} + +#ifdef MPU_NS +/** Load the given number of MPU regions from a table to the Non-secure MPU. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load_NS(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + ARM_MPU_LoadEx(MPU_NS, rnr, table, cnt); +} +#endif + +#endif + diff --git a/obc/firmware/bsp/cmsis/Include/tz_context.h b/eps/v1/firmware/bsp/cmsis/Include/tz_context.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/tz_context.h rename to eps/v1/firmware/bsp/cmsis/Include/tz_context.h diff --git a/eps/firmware/bsp/hal_driver/Inc/Legacy/stm32_hal_legacy.h b/eps/v1/firmware/bsp/hal_driver/Inc/Legacy/stm32_hal_legacy.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/Legacy/stm32_hal_legacy.h rename to eps/v1/firmware/bsp/hal_driver/Inc/Legacy/stm32_hal_legacy.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_adc.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_adc.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_adc.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_adc.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_adc_ex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_adc_ex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_adc_ex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_adc_ex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_can.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_can.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_can.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_can.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_cortex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_cortex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_cortex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_cortex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_def.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_def.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_def.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_def.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_dma.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_dma.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_dma.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_dma.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_dma_ex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_dma_ex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_dma_ex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_dma_ex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_exti.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_exti.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_exti.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_exti.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash_ex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash_ex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash_ex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash_ex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash_ramfunc.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash_ramfunc.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash_ramfunc.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_flash_ramfunc.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_gpio.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_gpio.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_gpio.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_gpio.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_gpio_ex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_gpio_ex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_gpio_ex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_gpio_ex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_i2c.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_i2c.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_i2c.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_i2c.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_i2c_ex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_i2c_ex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_i2c_ex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_i2c_ex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_iwdg.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_iwdg.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_iwdg.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_iwdg.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_pwr.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_pwr.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_pwr.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_pwr.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_pwr_ex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_pwr_ex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_pwr_ex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_pwr_ex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_rcc.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_rcc.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_rcc.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_rcc.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_rcc_ex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_rcc_ex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_rcc_ex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_rcc_ex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_tim.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_tim.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_tim.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_tim.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_tim_ex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_tim_ex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_tim_ex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_tim_ex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_uart.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_uart.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_uart.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_uart.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_uart_ex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_uart_ex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_uart_ex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_hal_uart_ex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_adc.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_adc.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_adc.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_adc.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_bus.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_bus.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_bus.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_bus.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_cortex.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_cortex.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_cortex.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_cortex.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_crs.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_crs.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_crs.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_crs.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_dma.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_dma.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_dma.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_dma.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_dmamux.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_dmamux.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_dmamux.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_dmamux.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_exti.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_exti.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_exti.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_exti.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_gpio.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_gpio.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_gpio.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_gpio.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_i2c.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_i2c.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_i2c.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_i2c.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_iwdg.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_iwdg.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_iwdg.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_iwdg.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_lpuart.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_lpuart.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_lpuart.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_lpuart.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_pwr.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_pwr.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_pwr.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_pwr.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_rcc.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_rcc.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_rcc.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_rcc.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_system.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_system.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_system.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_system.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_usart.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_usart.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_usart.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_usart.h diff --git a/eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_utils.h b/eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_utils.h similarity index 100% rename from eps/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_utils.h rename to eps/v1/firmware/bsp/hal_driver/Inc/stm32l4xx_ll_utils.h diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_adc.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_adc.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_adc.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_adc.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_adc_ex.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_adc_ex.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_adc_ex.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_adc_ex.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_can.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_can.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_can.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_can.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_cortex.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_cortex.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_cortex.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_cortex.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_dma.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_dma.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_dma.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_dma.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_dma_ex.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_dma_ex.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_dma_ex.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_dma_ex.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_exti.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_exti.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_exti.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_exti.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash_ex.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash_ex.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash_ex.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash_ex.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash_ramfunc.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash_ramfunc.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash_ramfunc.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_flash_ramfunc.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_gpio.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_gpio.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_gpio.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_gpio.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_i2c.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_i2c.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_i2c.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_i2c.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_i2c_ex.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_i2c_ex.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_i2c_ex.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_i2c_ex.c diff --git a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_iwdg.c similarity index 97% rename from eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_iwdg.c index ed98a85..08550b3 100644 --- a/eps/firmware/bootstrap/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_iwdg.c +++ b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_iwdg.c @@ -1,283 +1,283 @@ -/** - ****************************************************************************** - * @file stm32l4xx_hal_iwdg.c - * @author MCD Application Team - * @brief IWDG HAL module driver. - * This file provides firmware functions to manage the following - * functionalities of the Independent Watchdog (IWDG) peripheral: - * + Initialization and Start functions - * + IO operation functions - * - ****************************************************************************** - * @attention - * - * Copyright (c) 2017 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - @verbatim - ============================================================================== - ##### IWDG Generic features ##### - ============================================================================== - [..] - (+) The IWDG can be started by either software or hardware (configurable - through option byte). - - (+) The IWDG is clocked by the Low-Speed Internal clock (LSI) and thus stays - active even if the main clock fails. - - (+) Once the IWDG is started, the LSI is forced ON and both cannot be - disabled. The counter starts counting down from the reset value (0xFFF). - When it reaches the end of count value (0x000) a reset signal is - generated (IWDG reset). - - (+) Whenever the key value 0x0000 AAAA is written in the IWDG_KR register, - the IWDG_RLR value is reloaded into the counter and the watchdog reset - is prevented. - - (+) The IWDG is implemented in the VDD voltage domain that is still functional - in STOP and STANDBY mode (IWDG reset can wake up the CPU from STANDBY). - IWDGRST flag in RCC_CSR register can be used to inform when an IWDG - reset occurs. - - (+) Debug mode: When the microcontroller enters debug mode (core halted), - the IWDG counter either continues to work normally or stops, depending - on DBG_IWDG_STOP configuration bit in DBG module, accessible through - __HAL_DBGMCU_FREEZE_IWDG() and __HAL_DBGMCU_UNFREEZE_IWDG() macros. - - [..] Min-max timeout value @32KHz (LSI): ~125us / ~32.7s - The IWDG timeout may vary due to LSI clock frequency dispersion. - STM32L4xx devices provide the capability to measure the LSI clock - frequency (LSI clock is internally connected to TIM16 CH1 input capture). - The measured value can be used to have an IWDG timeout with an - acceptable accuracy. - - [..] Default timeout value (necessary for IWDG_SR status register update): - Constant LSI_VALUE is defined based on the nominal LSI clock frequency. - This frequency being subject to variations as mentioned above, the - default timeout value (defined through constant HAL_IWDG_DEFAULT_TIMEOUT - below) may become too short or too long. - In such cases, this default timeout value can be tuned by redefining - the constant LSI_VALUE at user-application level (based, for instance, - on the measured LSI clock frequency as explained above). - - ##### How to use this driver ##### - ============================================================================== - [..] - (#) Use IWDG using HAL_IWDG_Init() function to : - (++) Enable instance by writing Start keyword in IWDG_KEY register. LSI - clock is forced ON and IWDG counter starts counting down. - (++) Enable write access to configuration registers: - IWDG_PR, IWDG_RLR and IWDG_WINR. - (++) Configure the IWDG prescaler and counter reload value. This reload - value will be loaded in the IWDG counter each time the watchdog is - reloaded, then the IWDG will start counting down from this value. - (++) Depending on window parameter: - (+++) If Window Init parameter is same as Window register value, - nothing more is done but reload counter value in order to exit - function with exact time base. - (+++) Else modify Window register. This will automatically reload - watchdog counter. - (++) Wait for status flags to be reset. - - (#) Then the application program must refresh the IWDG counter at regular - intervals during normal operation to prevent an MCU reset, using - HAL_IWDG_Refresh() function. - - *** IWDG HAL driver macros list *** - ==================================== - [..] - Below the list of most used macros in IWDG HAL driver: - (+) __HAL_IWDG_START: Enable the IWDG peripheral - (+) __HAL_IWDG_RELOAD_COUNTER: Reloads IWDG counter with value defined in - the reload register - - @endverbatim - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32l4xx_hal.h" - -/** @addtogroup STM32L4xx_HAL_Driver - * @{ - */ - -#ifdef HAL_IWDG_MODULE_ENABLED -/** @addtogroup IWDG - * @brief IWDG HAL module driver. - * @{ - */ - -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ -/** @defgroup IWDG_Private_Defines IWDG Private Defines - * @{ - */ -/* Status register needs up to 5 LSI clock periods divided by the clock - prescaler to be updated. The number of LSI clock periods is upper-rounded to - 6 for the timeout value calculation. - The timeout value is calculated using the highest prescaler (256) and - the LSI_VALUE constant. The value of this constant can be changed by the user - to take into account possible LSI clock period variations. - The timeout value is multiplied by 1000 to be converted in milliseconds. - LSI startup time is also considered here by adding LSI_STARTUP_TIME - converted in milliseconds. */ -#define HAL_IWDG_DEFAULT_TIMEOUT (((6UL * 256UL * 1000UL) / (LSI_VALUE / 128U)) + \ - ((LSI_STARTUP_TIME / 1000UL) + 1UL)) -#define IWDG_KERNEL_UPDATE_FLAGS (IWDG_SR_WVU | IWDG_SR_RVU | IWDG_SR_PVU) -/** - * @} - */ - -/* Private macro -------------------------------------------------------------*/ -/* Private variables ---------------------------------------------------------*/ -/* Private function prototypes -----------------------------------------------*/ -/* Exported functions --------------------------------------------------------*/ - -/** @addtogroup IWDG_Exported_Functions - * @{ - */ - -/** @addtogroup IWDG_Exported_Functions_Group1 - * @brief Initialization and Start functions. - * -@verbatim - =============================================================================== - ##### Initialization and Start functions ##### - =============================================================================== - [..] This section provides functions allowing to: - (+) Initialize the IWDG according to the specified parameters in the - IWDG_InitTypeDef of associated handle. - (+) Manage Window option. - (+) Once initialization is performed in HAL_IWDG_Init function, Watchdog - is reloaded in order to exit function with correct time base. - -@endverbatim - * @{ - */ - -/** - * @brief Initialize the IWDG according to the specified parameters in the - * IWDG_InitTypeDef and start watchdog. Before exiting function, - * watchdog is refreshed in order to have correct time base. - * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains - * the configuration information for the specified IWDG module. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg) -{ - uint32_t tickstart; - - /* Check the IWDG handle allocation */ - if (hiwdg == NULL) - { - return HAL_ERROR; - } - - /* Check the parameters */ - assert_param(IS_IWDG_ALL_INSTANCE(hiwdg->Instance)); - assert_param(IS_IWDG_PRESCALER(hiwdg->Init.Prescaler)); - assert_param(IS_IWDG_RELOAD(hiwdg->Init.Reload)); - assert_param(IS_IWDG_WINDOW(hiwdg->Init.Window)); - - /* Enable IWDG. LSI is turned on automatically */ - __HAL_IWDG_START(hiwdg); - - /* Enable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers by writing - 0x5555 in KR */ - IWDG_ENABLE_WRITE_ACCESS(hiwdg); - - /* Write to IWDG registers the Prescaler & Reload values to work with */ - hiwdg->Instance->PR = hiwdg->Init.Prescaler; - hiwdg->Instance->RLR = hiwdg->Init.Reload; - - /* Check pending flag, if previous update not done, return timeout */ - tickstart = HAL_GetTick(); - - /* Wait for register to be updated */ - while ((hiwdg->Instance->SR & IWDG_KERNEL_UPDATE_FLAGS) != 0x00u) - { - if ((HAL_GetTick() - tickstart) > HAL_IWDG_DEFAULT_TIMEOUT) - { - if ((hiwdg->Instance->SR & IWDG_KERNEL_UPDATE_FLAGS) != 0x00u) - { - return HAL_TIMEOUT; - } - } - } - - /* If window parameter is different than current value, modify window - register */ - if (hiwdg->Instance->WINR != hiwdg->Init.Window) - { - /* Write to IWDG WINR the IWDG_Window value to compare with. In any case, - even if window feature is disabled, Watchdog will be reloaded by writing - windows register */ - hiwdg->Instance->WINR = hiwdg->Init.Window; - } - else - { - /* Reload IWDG counter with value defined in the reload register */ - __HAL_IWDG_RELOAD_COUNTER(hiwdg); - } - - /* Return function status */ - return HAL_OK; -} - - -/** - * @} - */ - - -/** @addtogroup IWDG_Exported_Functions_Group2 - * @brief IO operation functions - * -@verbatim - =============================================================================== - ##### IO operation functions ##### - =============================================================================== - [..] This section provides functions allowing to: - (+) Refresh the IWDG. - -@endverbatim - * @{ - */ - -/** - * @brief Refresh the IWDG. - * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains - * the configuration information for the specified IWDG module. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg) -{ - /* Reload IWDG counter with value defined in the reload register */ - __HAL_IWDG_RELOAD_COUNTER(hiwdg); - - /* Return function status */ - return HAL_OK; -} - - -/** - * @} - */ - -/** - * @} - */ - -#endif /* HAL_IWDG_MODULE_ENABLED */ -/** - * @} - */ - -/** - * @} - */ +/** + ****************************************************************************** + * @file stm32l4xx_hal_iwdg.c + * @author MCD Application Team + * @brief IWDG HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Independent Watchdog (IWDG) peripheral: + * + Initialization and Start functions + * + IO operation functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### IWDG Generic features ##### + ============================================================================== + [..] + (+) The IWDG can be started by either software or hardware (configurable + through option byte). + + (+) The IWDG is clocked by the Low-Speed Internal clock (LSI) and thus stays + active even if the main clock fails. + + (+) Once the IWDG is started, the LSI is forced ON and both cannot be + disabled. The counter starts counting down from the reset value (0xFFF). + When it reaches the end of count value (0x000) a reset signal is + generated (IWDG reset). + + (+) Whenever the key value 0x0000 AAAA is written in the IWDG_KR register, + the IWDG_RLR value is reloaded into the counter and the watchdog reset + is prevented. + + (+) The IWDG is implemented in the VDD voltage domain that is still functional + in STOP and STANDBY mode (IWDG reset can wake up the CPU from STANDBY). + IWDGRST flag in RCC_CSR register can be used to inform when an IWDG + reset occurs. + + (+) Debug mode: When the microcontroller enters debug mode (core halted), + the IWDG counter either continues to work normally or stops, depending + on DBG_IWDG_STOP configuration bit in DBG module, accessible through + __HAL_DBGMCU_FREEZE_IWDG() and __HAL_DBGMCU_UNFREEZE_IWDG() macros. + + [..] Min-max timeout value @32KHz (LSI): ~125us / ~32.7s + The IWDG timeout may vary due to LSI clock frequency dispersion. + STM32L4xx devices provide the capability to measure the LSI clock + frequency (LSI clock is internally connected to TIM16 CH1 input capture). + The measured value can be used to have an IWDG timeout with an + acceptable accuracy. + + [..] Default timeout value (necessary for IWDG_SR status register update): + Constant LSI_VALUE is defined based on the nominal LSI clock frequency. + This frequency being subject to variations as mentioned above, the + default timeout value (defined through constant HAL_IWDG_DEFAULT_TIMEOUT + below) may become too short or too long. + In such cases, this default timeout value can be tuned by redefining + the constant LSI_VALUE at user-application level (based, for instance, + on the measured LSI clock frequency as explained above). + + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Use IWDG using HAL_IWDG_Init() function to : + (++) Enable instance by writing Start keyword in IWDG_KEY register. LSI + clock is forced ON and IWDG counter starts counting down. + (++) Enable write access to configuration registers: + IWDG_PR, IWDG_RLR and IWDG_WINR. + (++) Configure the IWDG prescaler and counter reload value. This reload + value will be loaded in the IWDG counter each time the watchdog is + reloaded, then the IWDG will start counting down from this value. + (++) Depending on window parameter: + (+++) If Window Init parameter is same as Window register value, + nothing more is done but reload counter value in order to exit + function with exact time base. + (+++) Else modify Window register. This will automatically reload + watchdog counter. + (++) Wait for status flags to be reset. + + (#) Then the application program must refresh the IWDG counter at regular + intervals during normal operation to prevent an MCU reset, using + HAL_IWDG_Refresh() function. + + *** IWDG HAL driver macros list *** + ==================================== + [..] + Below the list of most used macros in IWDG HAL driver: + (+) __HAL_IWDG_START: Enable the IWDG peripheral + (+) __HAL_IWDG_RELOAD_COUNTER: Reloads IWDG counter with value defined in + the reload register + + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l4xx_hal.h" + +/** @addtogroup STM32L4xx_HAL_Driver + * @{ + */ + +#ifdef HAL_IWDG_MODULE_ENABLED +/** @addtogroup IWDG + * @brief IWDG HAL module driver. + * @{ + */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup IWDG_Private_Defines IWDG Private Defines + * @{ + */ +/* Status register needs up to 5 LSI clock periods divided by the clock + prescaler to be updated. The number of LSI clock periods is upper-rounded to + 6 for the timeout value calculation. + The timeout value is calculated using the highest prescaler (256) and + the LSI_VALUE constant. The value of this constant can be changed by the user + to take into account possible LSI clock period variations. + The timeout value is multiplied by 1000 to be converted in milliseconds. + LSI startup time is also considered here by adding LSI_STARTUP_TIME + converted in milliseconds. */ +#define HAL_IWDG_DEFAULT_TIMEOUT (((6UL * 256UL * 1000UL) / (LSI_VALUE / 128U)) + \ + ((LSI_STARTUP_TIME / 1000UL) + 1UL)) +#define IWDG_KERNEL_UPDATE_FLAGS (IWDG_SR_WVU | IWDG_SR_RVU | IWDG_SR_PVU) +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup IWDG_Exported_Functions + * @{ + */ + +/** @addtogroup IWDG_Exported_Functions_Group1 + * @brief Initialization and Start functions. + * +@verbatim + =============================================================================== + ##### Initialization and Start functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Initialize the IWDG according to the specified parameters in the + IWDG_InitTypeDef of associated handle. + (+) Manage Window option. + (+) Once initialization is performed in HAL_IWDG_Init function, Watchdog + is reloaded in order to exit function with correct time base. + +@endverbatim + * @{ + */ + +/** + * @brief Initialize the IWDG according to the specified parameters in the + * IWDG_InitTypeDef and start watchdog. Before exiting function, + * watchdog is refreshed in order to have correct time base. + * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains + * the configuration information for the specified IWDG module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg) +{ + uint32_t tickstart; + + /* Check the IWDG handle allocation */ + if (hiwdg == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_IWDG_ALL_INSTANCE(hiwdg->Instance)); + assert_param(IS_IWDG_PRESCALER(hiwdg->Init.Prescaler)); + assert_param(IS_IWDG_RELOAD(hiwdg->Init.Reload)); + assert_param(IS_IWDG_WINDOW(hiwdg->Init.Window)); + + /* Enable IWDG. LSI is turned on automatically */ + __HAL_IWDG_START(hiwdg); + + /* Enable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers by writing + 0x5555 in KR */ + IWDG_ENABLE_WRITE_ACCESS(hiwdg); + + /* Write to IWDG registers the Prescaler & Reload values to work with */ + hiwdg->Instance->PR = hiwdg->Init.Prescaler; + hiwdg->Instance->RLR = hiwdg->Init.Reload; + + /* Check pending flag, if previous update not done, return timeout */ + tickstart = HAL_GetTick(); + + /* Wait for register to be updated */ + while ((hiwdg->Instance->SR & IWDG_KERNEL_UPDATE_FLAGS) != 0x00u) + { + if ((HAL_GetTick() - tickstart) > HAL_IWDG_DEFAULT_TIMEOUT) + { + if ((hiwdg->Instance->SR & IWDG_KERNEL_UPDATE_FLAGS) != 0x00u) + { + return HAL_TIMEOUT; + } + } + } + + /* If window parameter is different than current value, modify window + register */ + if (hiwdg->Instance->WINR != hiwdg->Init.Window) + { + /* Write to IWDG WINR the IWDG_Window value to compare with. In any case, + even if window feature is disabled, Watchdog will be reloaded by writing + windows register */ + hiwdg->Instance->WINR = hiwdg->Init.Window; + } + else + { + /* Reload IWDG counter with value defined in the reload register */ + __HAL_IWDG_RELOAD_COUNTER(hiwdg); + } + + /* Return function status */ + return HAL_OK; +} + + +/** + * @} + */ + + +/** @addtogroup IWDG_Exported_Functions_Group2 + * @brief IO operation functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Refresh the IWDG. + +@endverbatim + * @{ + */ + +/** + * @brief Refresh the IWDG. + * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains + * the configuration information for the specified IWDG module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg) +{ + /* Reload IWDG counter with value defined in the reload register */ + __HAL_IWDG_RELOAD_COUNTER(hiwdg); + + /* Return function status */ + return HAL_OK; +} + + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_IWDG_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_pwr.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_pwr.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_pwr.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_pwr.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_pwr_ex.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_pwr_ex.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_pwr_ex.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_pwr_ex.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_rcc.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_rcc.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_rcc.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_rcc.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_rcc_ex.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_rcc_ex.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_rcc_ex.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_rcc_ex.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_tim.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_tim.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_tim.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_tim.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_tim_ex.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_tim_ex.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_tim_ex.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_tim_ex.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_uart.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_uart.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_uart.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_uart.c diff --git a/eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_uart_ex.c b/eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_uart_ex.c similarity index 100% rename from eps/firmware/bsp/hal_driver/Src/stm32l4xx_hal_uart_ex.c rename to eps/v1/firmware/bsp/hal_driver/Src/stm32l4xx_hal_uart_ex.c diff --git a/eps/firmware/bsp/mcu/Inc/adc.h b/eps/v1/firmware/bsp/mcu/Inc/adc.h similarity index 96% rename from eps/firmware/bsp/mcu/Inc/adc.h rename to eps/v1/firmware/bsp/mcu/Inc/adc.h index 797598d..1947cd0 100644 --- a/eps/firmware/bsp/mcu/Inc/adc.h +++ b/eps/v1/firmware/bsp/mcu/Inc/adc.h @@ -1,52 +1,52 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file adc.h - * @brief This file contains all the function prototypes for - * the adc.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __ADC_H__ -#define __ADC_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern ADC_HandleTypeDef hadc2; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_ADC2_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ADC_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file adc.h + * @brief This file contains all the function prototypes for + * the adc.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __ADC_H__ +#define __ADC_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern ADC_HandleTypeDef hadc2; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_ADC2_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ADC_H__ */ + diff --git a/eps/firmware/bsp/mcu/Inc/can.h b/eps/v1/firmware/bsp/mcu/Inc/can.h similarity index 100% rename from eps/firmware/bsp/mcu/Inc/can.h rename to eps/v1/firmware/bsp/mcu/Inc/can.h diff --git a/eps/firmware/bootstrap/Core/Inc/dma.h b/eps/v1/firmware/bsp/mcu/Inc/dma.h similarity index 96% rename from eps/firmware/bootstrap/Core/Inc/dma.h rename to eps/v1/firmware/bsp/mcu/Inc/dma.h index cbf3957..afad30d 100644 --- a/eps/firmware/bootstrap/Core/Inc/dma.h +++ b/eps/v1/firmware/bsp/mcu/Inc/dma.h @@ -1,52 +1,52 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file dma.h - * @brief This file contains all the function prototypes for - * the dma.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __DMA_H__ -#define __DMA_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* DMA memory to memory transfer handles -------------------------------------*/ - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_DMA_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __DMA_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.h + * @brief This file contains all the function prototypes for + * the dma.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __DMA_H__ +#define __DMA_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* DMA memory to memory transfer handles -------------------------------------*/ + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_DMA_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __DMA_H__ */ + diff --git a/eps/firmware/bootstrap/Core/Inc/gpio.h b/eps/v1/firmware/bsp/mcu/Inc/gpio.h similarity index 96% rename from eps/firmware/bootstrap/Core/Inc/gpio.h rename to eps/v1/firmware/bsp/mcu/Inc/gpio.h index 1204b1d..3c91c4d 100644 --- a/eps/firmware/bootstrap/Core/Inc/gpio.h +++ b/eps/v1/firmware/bsp/mcu/Inc/gpio.h @@ -1,49 +1,49 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file gpio.h - * @brief This file contains all the function prototypes for - * the gpio.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __GPIO_H__ -#define __GPIO_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_GPIO_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif -#endif /*__ GPIO_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file gpio.h + * @brief This file contains all the function prototypes for + * the gpio.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __GPIO_H__ +#define __GPIO_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_GPIO_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif +#endif /*__ GPIO_H__ */ + diff --git a/eps/firmware/bootstrap/Core/Inc/i2c.h b/eps/v1/firmware/bsp/mcu/Inc/i2c.h similarity index 96% rename from eps/firmware/bootstrap/Core/Inc/i2c.h rename to eps/v1/firmware/bsp/mcu/Inc/i2c.h index b56d4be..e543037 100644 --- a/eps/firmware/bootstrap/Core/Inc/i2c.h +++ b/eps/v1/firmware/bsp/mcu/Inc/i2c.h @@ -1,61 +1,61 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file i2c.h - * @brief This file contains all the function prototypes for - * the i2c.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __I2C_H__ -#define __I2C_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern I2C_HandleTypeDef hi2c1; - -extern I2C_HandleTypeDef hi2c2; - -extern I2C_HandleTypeDef hi2c3; - -extern I2C_HandleTypeDef hi2c4; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_I2C1_Init(void); -void MX_I2C2_Init(void); -void MX_I2C3_Init(void); -void MX_I2C4_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __I2C_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file i2c.h + * @brief This file contains all the function prototypes for + * the i2c.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __I2C_H__ +#define __I2C_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern I2C_HandleTypeDef hi2c1; + +extern I2C_HandleTypeDef hi2c2; + +extern I2C_HandleTypeDef hi2c3; + +extern I2C_HandleTypeDef hi2c4; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_I2C1_Init(void); +void MX_I2C2_Init(void); +void MX_I2C3_Init(void); +void MX_I2C4_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __I2C_H__ */ + diff --git a/eps/firmware/bootstrap/Core/Inc/iwdg.h b/eps/v1/firmware/bsp/mcu/Inc/iwdg.h similarity index 96% rename from eps/firmware/bootstrap/Core/Inc/iwdg.h rename to eps/v1/firmware/bsp/mcu/Inc/iwdg.h index 94c0595..474e114 100644 --- a/eps/firmware/bootstrap/Core/Inc/iwdg.h +++ b/eps/v1/firmware/bsp/mcu/Inc/iwdg.h @@ -1,52 +1,52 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file iwdg.h - * @brief This file contains all the function prototypes for - * the iwdg.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __IWDG_H__ -#define __IWDG_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern IWDG_HandleTypeDef hiwdg; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_IWDG_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __IWDG_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file iwdg.h + * @brief This file contains all the function prototypes for + * the iwdg.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __IWDG_H__ +#define __IWDG_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern IWDG_HandleTypeDef hiwdg; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_IWDG_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IWDG_H__ */ + diff --git a/eps/firmware/bsp/mcu/Inc/main.h b/eps/v1/firmware/bsp/mcu/Inc/main.h similarity index 96% rename from eps/firmware/bsp/mcu/Inc/main.h rename to eps/v1/firmware/bsp/mcu/Inc/main.h index 5ec5429..d60d02f 100644 --- a/eps/firmware/bsp/mcu/Inc/main.h +++ b/eps/v1/firmware/bsp/mcu/Inc/main.h @@ -1,69 +1,69 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file : main.h - * @brief : Header for main.c file. - * This file contains the common defines of the application. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __MAIN_H -#define __MAIN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32l4xx_hal.h" - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* Exported types ------------------------------------------------------------*/ -/* USER CODE BEGIN ET */ - -/* USER CODE END ET */ - -/* Exported constants --------------------------------------------------------*/ -/* USER CODE BEGIN EC */ -extern volatile uint8_t g_main_tick_flag; -/* USER CODE END EC */ - -/* Exported macro ------------------------------------------------------------*/ -/* USER CODE BEGIN EM */ - -/* USER CODE END EM */ - -/* Exported functions prototypes ---------------------------------------------*/ -void Error_Handler(void); - -/* USER CODE BEGIN EFP */ - -/* USER CODE END EFP */ - -/* Private defines -----------------------------------------------------------*/ - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -#ifdef __cplusplus -} -#endif - -#endif /* __MAIN_H */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l4xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ +extern volatile uint8_t g_main_tick_flag; +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ diff --git a/eps/firmware/bsp/mcu/Inc/stm32l4xx_hal_conf.h b/eps/v1/firmware/bsp/mcu/Inc/stm32l4xx_hal_conf.h similarity index 97% rename from eps/firmware/bsp/mcu/Inc/stm32l4xx_hal_conf.h rename to eps/v1/firmware/bsp/mcu/Inc/stm32l4xx_hal_conf.h index d7bb645..c2e9fe6 100644 --- a/eps/firmware/bsp/mcu/Inc/stm32l4xx_hal_conf.h +++ b/eps/v1/firmware/bsp/mcu/Inc/stm32l4xx_hal_conf.h @@ -1,495 +1,495 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file stm32l4xx_hal_conf.h - * @author MCD Application Team - * @brief HAL configuration template file. - * This file should be copied to the application folder and renamed - * to stm32l4xx_hal_conf.h. - ****************************************************************************** - * @attention - * - * Copyright (c) 2017 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef STM32L4xx_HAL_CONF_H -#define STM32L4xx_HAL_CONF_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Exported types ------------------------------------------------------------*/ -/* Exported constants --------------------------------------------------------*/ - -/* ########################## Module Selection ############################## */ -/** - * @brief This is the list of modules to be used in the HAL driver - */ -#define HAL_MODULE_ENABLED -#define HAL_ADC_MODULE_ENABLED -/*#define HAL_CRYP_MODULE_ENABLED */ -#define HAL_CAN_MODULE_ENABLED -/*#define HAL_COMP_MODULE_ENABLED */ -#define HAL_I2C_MODULE_ENABLED -/*#define HAL_CRC_MODULE_ENABLED */ -/*#define HAL_CRYP_MODULE_ENABLED */ -/*#define HAL_DAC_MODULE_ENABLED */ -/*#define HAL_DCMI_MODULE_ENABLED */ -/*#define HAL_DMA2D_MODULE_ENABLED */ -/*#define HAL_DFSDM_MODULE_ENABLED */ -/*#define HAL_DSI_MODULE_ENABLED */ -/*#define HAL_FIREWALL_MODULE_ENABLED */ -/*#define HAL_GFXMMU_MODULE_ENABLED */ -/*#define HAL_HCD_MODULE_ENABLED */ -/*#define HAL_HASH_MODULE_ENABLED */ -/*#define HAL_I2S_MODULE_ENABLED */ -/*#define HAL_IRDA_MODULE_ENABLED */ -#define HAL_IWDG_MODULE_ENABLED -/*#define HAL_LTDC_MODULE_ENABLED */ -/*#define HAL_LCD_MODULE_ENABLED */ -/*#define HAL_LPTIM_MODULE_ENABLED */ -/*#define HAL_MMC_MODULE_ENABLED */ -/*#define HAL_NAND_MODULE_ENABLED */ -/*#define HAL_NOR_MODULE_ENABLED */ -/*#define HAL_OPAMP_MODULE_ENABLED */ -/*#define HAL_OSPI_MODULE_ENABLED */ -/*#define HAL_OSPI_MODULE_ENABLED */ -/*#define HAL_PCD_MODULE_ENABLED */ -/*#define HAL_PKA_MODULE_ENABLED */ -/*#define HAL_QSPI_MODULE_ENABLED */ -/*#define HAL_QSPI_MODULE_ENABLED */ -/*#define HAL_RNG_MODULE_ENABLED */ -/*#define HAL_RTC_MODULE_ENABLED */ -/*#define HAL_SAI_MODULE_ENABLED */ -/*#define HAL_SD_MODULE_ENABLED */ -/*#define HAL_SMBUS_MODULE_ENABLED */ -/*#define HAL_SMARTCARD_MODULE_ENABLED */ -/*#define HAL_SPI_MODULE_ENABLED */ -/*#define HAL_SRAM_MODULE_ENABLED */ -/*#define HAL_SWPMI_MODULE_ENABLED */ -#define HAL_TIM_MODULE_ENABLED -/*#define HAL_TSC_MODULE_ENABLED */ -#define HAL_UART_MODULE_ENABLED -/*#define HAL_USART_MODULE_ENABLED */ -/*#define HAL_WWDG_MODULE_ENABLED */ -/*#define HAL_EXTI_MODULE_ENABLED */ -/*#define HAL_PSSI_MODULE_ENABLED */ -#define HAL_GPIO_MODULE_ENABLED -#define HAL_EXTI_MODULE_ENABLED -#define HAL_DMA_MODULE_ENABLED -#define HAL_RCC_MODULE_ENABLED -#define HAL_FLASH_MODULE_ENABLED -#define HAL_PWR_MODULE_ENABLED -#define HAL_CORTEX_MODULE_ENABLED - -/* ########################## Oscillator Values adaptation - * ####################*/ -/** - * @brief Adjust the value of External High Speed oscillator (HSE) used in your - * application. This value is used by the RCC HAL module to compute the system - * frequency (when HSE is used as system clock source, directly or through the - * PLL). - */ -#if !defined(HSE_VALUE) -#define HSE_VALUE \ - ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */ -#endif /* HSE_VALUE */ - -#if !defined(HSE_STARTUP_TIMEOUT) -#define HSE_STARTUP_TIMEOUT \ - ((uint32_t)100U) /*!< Time out for HSE start up, in ms */ -#endif /* HSE_STARTUP_TIMEOUT */ - -/** - * @brief Internal Multiple Speed oscillator (MSI) default value. - * This value is the default MSI range value after Reset. - */ -#if !defined(MSI_VALUE) -#define MSI_VALUE \ - ((uint32_t)4000000U) /*!< Value of the Internal oscillator in Hz*/ -#endif /* MSI_VALUE */ -/** - * @brief Internal High Speed oscillator (HSI) value. - * This value is used by the RCC HAL module to compute the system - * frequency (when HSI is used as system clock source, directly or through the - * PLL). - */ -#if !defined(HSI_VALUE) -#define HSI_VALUE \ - ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/ -#endif /* HSI_VALUE */ - -/** - * @brief Internal High Speed oscillator (HSI48) value for USB FS, SDMMC and - * RNG. This internal oscillator is mainly dedicated to provide a high precision - * clock to the USB peripheral by means of a special Clock Recovery System (CRS) - * circuitry. When the CRS is not used, the HSI48 RC oscillator runs on it - * default frequency which is subject to manufacturing process variations. - */ -#if !defined(HSI48_VALUE) -#define HSI48_VALUE \ - ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for \ - USB FS/SDMMC/RNG in Hz. The real value my vary \ - depending on manufacturing process variations.*/ -#endif /* HSI48_VALUE */ - -/** - * @brief Internal Low Speed oscillator (LSI) value. - */ -#if !defined(LSI_VALUE) -#define LSI_VALUE 32000U /*!< LSI Typical Value in Hz*/ -#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz \ - The real value may vary depending on the variations \ - in voltage and temperature.*/ - -/** - * @brief External Low Speed oscillator (LSE) value. - * This value is used by the UART, RTC HAL module to compute the system - * frequency - */ -#if !defined(LSE_VALUE) -#define LSE_VALUE 32768U /*!< Value of the External oscillator in Hz*/ -#endif /* LSE_VALUE */ - -#if !defined(LSE_STARTUP_TIMEOUT) -#define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */ -#endif /* HSE_STARTUP_TIMEOUT */ - -/** - * @brief External clock source for SAI1 peripheral - * This value is used by the RCC HAL module to compute the SAI1 & SAI2 - * clock source frequency. - */ -#if !defined(EXTERNAL_SAI1_CLOCK_VALUE) -#define EXTERNAL_SAI1_CLOCK_VALUE \ - 2097000U /*!< Value of the SAI1 External clock source in Hz*/ -#endif /* EXTERNAL_SAI1_CLOCK_VALUE */ - -/** - * @brief External clock source for SAI2 peripheral - * This value is used by the RCC HAL module to compute the SAI1 & SAI2 - * clock source frequency. - */ -#if !defined(EXTERNAL_SAI2_CLOCK_VALUE) -#define EXTERNAL_SAI2_CLOCK_VALUE \ - 2097000U /*!< Value of the SAI2 External clock source in Hz*/ -#endif /* EXTERNAL_SAI2_CLOCK_VALUE */ - -/* Tip: To avoid modifying this file each time you need to use different HSE, - === you can define the HSE value in your toolchain compiler preprocessor. */ - -/* ########################### System Configuration ######################### */ -/** - * @brief This is the HAL system configuration section - */ - -#define VDD_VALUE 3300U /*!< Value of VDD in mv */ -#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority */ -#define USE_RTOS 0U -#define PREFETCH_ENABLE 0U -#define INSTRUCTION_CACHE_ENABLE 1U -#define DATA_CACHE_ENABLE 1U - -/* ########################## Assert Selection ############################## */ -/** - * @brief Uncomment the line below to expanse the "assert_param" macro in the - * HAL drivers code - */ -/* #define USE_FULL_ASSERT 1U */ - -/* ################## Register callback feature configuration ############### */ -/** - * @brief Set below the peripheral configuration to "1U" to add the support - * of HAL callback registration/deregistration feature for the HAL - * driver(s). This allows user application to provide specific callback - * functions thanks to HAL_PPP_RegisterCallback() rather than overwriting - * the default weak callback functions (see each stm32l4xx_hal_ppp.h file - * for possible callback identifiers defined in HAL_PPP_CallbackIDTypeDef - * for each PPP peripheral). - */ -#define USE_HAL_ADC_REGISTER_CALLBACKS 0U -#define USE_HAL_CAN_REGISTER_CALLBACKS 0U -#define USE_HAL_COMP_REGISTER_CALLBACKS 0U -#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U -#define USE_HAL_DAC_REGISTER_CALLBACKS 0U -#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U -#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U -#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U -#define USE_HAL_DSI_REGISTER_CALLBACKS 0U -#define USE_HAL_GFXMMU_REGISTER_CALLBACKS 0U -#define USE_HAL_HASH_REGISTER_CALLBACKS 0U -#define USE_HAL_HCD_REGISTER_CALLBACKS 0U -#define USE_HAL_I2C_REGISTER_CALLBACKS 0U -#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U -#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U -#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U -#define USE_HAL_MMC_REGISTER_CALLBACKS 0U -#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U -#define USE_HAL_OSPI_REGISTER_CALLBACKS 0U -#define USE_HAL_PCD_REGISTER_CALLBACKS 0U -#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U -#define USE_HAL_RNG_REGISTER_CALLBACKS 0U -#define USE_HAL_RTC_REGISTER_CALLBACKS 0U -#define USE_HAL_SAI_REGISTER_CALLBACKS 0U -#define USE_HAL_SD_REGISTER_CALLBACKS 0U -#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U -#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U -#define USE_HAL_SPI_REGISTER_CALLBACKS 0U -#define USE_HAL_SWPMI_REGISTER_CALLBACKS 0U -#define USE_HAL_TIM_REGISTER_CALLBACKS 0U -#define USE_HAL_TSC_REGISTER_CALLBACKS 0U -#define USE_HAL_UART_REGISTER_CALLBACKS 0U -#define USE_HAL_USART_REGISTER_CALLBACKS 0U -#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U - -/* ################## SPI peripheral configuration ########################## */ - -/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver - * Activated: CRC code is present inside driver - * Deactivated: CRC code cleaned from driver - */ - -#define USE_SPI_CRC 0U - -/* Includes ------------------------------------------------------------------*/ -/** - * @brief Include module's header file - */ - -#ifdef HAL_RCC_MODULE_ENABLED -#include "stm32l4xx_hal_rcc.h" -#endif /* HAL_RCC_MODULE_ENABLED */ - -#ifdef HAL_GPIO_MODULE_ENABLED -#include "stm32l4xx_hal_gpio.h" -#endif /* HAL_GPIO_MODULE_ENABLED */ - -#ifdef HAL_DMA_MODULE_ENABLED -#include "stm32l4xx_hal_dma.h" -#endif /* HAL_DMA_MODULE_ENABLED */ - -#ifdef HAL_DFSDM_MODULE_ENABLED -#include "stm32l4xx_hal_dfsdm.h" -#endif /* HAL_DFSDM_MODULE_ENABLED */ - -#ifdef HAL_CORTEX_MODULE_ENABLED -#include "stm32l4xx_hal_cortex.h" -#endif /* HAL_CORTEX_MODULE_ENABLED */ - -#ifdef HAL_ADC_MODULE_ENABLED -#include "stm32l4xx_hal_adc.h" -#endif /* HAL_ADC_MODULE_ENABLED */ - -#ifdef HAL_CAN_MODULE_ENABLED -#include "stm32l4xx_hal_can.h" -#endif /* HAL_CAN_MODULE_ENABLED */ - -#ifdef HAL_CAN_LEGACY_MODULE_ENABLED -#include "Legacy/stm32l4xx_hal_can_legacy.h" -#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ - -#ifdef HAL_COMP_MODULE_ENABLED -#include "stm32l4xx_hal_comp.h" -#endif /* HAL_COMP_MODULE_ENABLED */ - -#ifdef HAL_CRC_MODULE_ENABLED -#include "stm32l4xx_hal_crc.h" -#endif /* HAL_CRC_MODULE_ENABLED */ - -#ifdef HAL_CRYP_MODULE_ENABLED -#include "stm32l4xx_hal_cryp.h" -#endif /* HAL_CRYP_MODULE_ENABLED */ - -#ifdef HAL_DAC_MODULE_ENABLED -#include "stm32l4xx_hal_dac.h" -#endif /* HAL_DAC_MODULE_ENABLED */ - -#ifdef HAL_DCMI_MODULE_ENABLED -#include "stm32l4xx_hal_dcmi.h" -#endif /* HAL_DCMI_MODULE_ENABLED */ - -#ifdef HAL_DMA2D_MODULE_ENABLED -#include "stm32l4xx_hal_dma2d.h" -#endif /* HAL_DMA2D_MODULE_ENABLED */ - -#ifdef HAL_DSI_MODULE_ENABLED -#include "stm32l4xx_hal_dsi.h" -#endif /* HAL_DSI_MODULE_ENABLED */ - -#ifdef HAL_EXTI_MODULE_ENABLED -#include "stm32l4xx_hal_exti.h" -#endif /* HAL_EXTI_MODULE_ENABLED */ - -#ifdef HAL_GFXMMU_MODULE_ENABLED -#include "stm32l4xx_hal_gfxmmu.h" -#endif /* HAL_GFXMMU_MODULE_ENABLED */ - -#ifdef HAL_FIREWALL_MODULE_ENABLED -#include "stm32l4xx_hal_firewall.h" -#endif /* HAL_FIREWALL_MODULE_ENABLED */ - -#ifdef HAL_FLASH_MODULE_ENABLED -#include "stm32l4xx_hal_flash.h" -#endif /* HAL_FLASH_MODULE_ENABLED */ - -#ifdef HAL_HASH_MODULE_ENABLED -#include "stm32l4xx_hal_hash.h" -#endif /* HAL_HASH_MODULE_ENABLED */ - -#ifdef HAL_HCD_MODULE_ENABLED -#include "stm32l4xx_hal_hcd.h" -#endif /* HAL_HCD_MODULE_ENABLED */ - -#ifdef HAL_I2C_MODULE_ENABLED -#include "stm32l4xx_hal_i2c.h" -#endif /* HAL_I2C_MODULE_ENABLED */ - -#ifdef HAL_IRDA_MODULE_ENABLED -#include "stm32l4xx_hal_irda.h" -#endif /* HAL_IRDA_MODULE_ENABLED */ - -#ifdef HAL_IWDG_MODULE_ENABLED -#include "stm32l4xx_hal_iwdg.h" -#endif /* HAL_IWDG_MODULE_ENABLED */ - -#ifdef HAL_LCD_MODULE_ENABLED -#include "stm32l4xx_hal_lcd.h" -#endif /* HAL_LCD_MODULE_ENABLED */ - -#ifdef HAL_LPTIM_MODULE_ENABLED -#include "stm32l4xx_hal_lptim.h" -#endif /* HAL_LPTIM_MODULE_ENABLED */ - -#ifdef HAL_LTDC_MODULE_ENABLED -#include "stm32l4xx_hal_ltdc.h" -#endif /* HAL_LTDC_MODULE_ENABLED */ - -#ifdef HAL_MMC_MODULE_ENABLED -#include "stm32l4xx_hal_mmc.h" -#endif /* HAL_MMC_MODULE_ENABLED */ - -#ifdef HAL_NAND_MODULE_ENABLED -#include "stm32l4xx_hal_nand.h" -#endif /* HAL_NAND_MODULE_ENABLED */ - -#ifdef HAL_NOR_MODULE_ENABLED -#include "stm32l4xx_hal_nor.h" -#endif /* HAL_NOR_MODULE_ENABLED */ - -#ifdef HAL_OPAMP_MODULE_ENABLED -#include "stm32l4xx_hal_opamp.h" -#endif /* HAL_OPAMP_MODULE_ENABLED */ - -#ifdef HAL_OSPI_MODULE_ENABLED -#include "stm32l4xx_hal_ospi.h" -#endif /* HAL_OSPI_MODULE_ENABLED */ - -#ifdef HAL_PCD_MODULE_ENABLED -#include "stm32l4xx_hal_pcd.h" -#endif /* HAL_PCD_MODULE_ENABLED */ - -#ifdef HAL_PKA_MODULE_ENABLED -#include "stm32l4xx_hal_pka.h" -#endif /* HAL_PKA_MODULE_ENABLED */ - -#ifdef HAL_PSSI_MODULE_ENABLED -#include "stm32l4xx_hal_pssi.h" -#endif /* HAL_PSSI_MODULE_ENABLED */ - -#ifdef HAL_PWR_MODULE_ENABLED -#include "stm32l4xx_hal_pwr.h" -#endif /* HAL_PWR_MODULE_ENABLED */ - -#ifdef HAL_QSPI_MODULE_ENABLED -#include "stm32l4xx_hal_qspi.h" -#endif /* HAL_QSPI_MODULE_ENABLED */ - -#ifdef HAL_RNG_MODULE_ENABLED -#include "stm32l4xx_hal_rng.h" -#endif /* HAL_RNG_MODULE_ENABLED */ - -#ifdef HAL_RTC_MODULE_ENABLED -#include "stm32l4xx_hal_rtc.h" -#endif /* HAL_RTC_MODULE_ENABLED */ - -#ifdef HAL_SAI_MODULE_ENABLED -#include "stm32l4xx_hal_sai.h" -#endif /* HAL_SAI_MODULE_ENABLED */ - -#ifdef HAL_SD_MODULE_ENABLED -#include "stm32l4xx_hal_sd.h" -#endif /* HAL_SD_MODULE_ENABLED */ - -#ifdef HAL_SMARTCARD_MODULE_ENABLED -#include "stm32l4xx_hal_smartcard.h" -#endif /* HAL_SMARTCARD_MODULE_ENABLED */ - -#ifdef HAL_SMBUS_MODULE_ENABLED -#include "stm32l4xx_hal_smbus.h" -#endif /* HAL_SMBUS_MODULE_ENABLED */ - -#ifdef HAL_SPI_MODULE_ENABLED -#include "stm32l4xx_hal_spi.h" -#endif /* HAL_SPI_MODULE_ENABLED */ - -#ifdef HAL_SRAM_MODULE_ENABLED -#include "stm32l4xx_hal_sram.h" -#endif /* HAL_SRAM_MODULE_ENABLED */ - -#ifdef HAL_SWPMI_MODULE_ENABLED -#include "stm32l4xx_hal_swpmi.h" -#endif /* HAL_SWPMI_MODULE_ENABLED */ - -#ifdef HAL_TIM_MODULE_ENABLED -#include "stm32l4xx_hal_tim.h" -#endif /* HAL_TIM_MODULE_ENABLED */ - -#ifdef HAL_TSC_MODULE_ENABLED -#include "stm32l4xx_hal_tsc.h" -#endif /* HAL_TSC_MODULE_ENABLED */ - -#ifdef HAL_UART_MODULE_ENABLED -#include "stm32l4xx_hal_uart.h" -#endif /* HAL_UART_MODULE_ENABLED */ - -#ifdef HAL_USART_MODULE_ENABLED -#include "stm32l4xx_hal_usart.h" -#endif /* HAL_USART_MODULE_ENABLED */ - -#ifdef HAL_WWDG_MODULE_ENABLED -#include "stm32l4xx_hal_wwdg.h" -#endif /* HAL_WWDG_MODULE_ENABLED */ - -/* Exported macro ------------------------------------------------------------*/ -#ifdef USE_FULL_ASSERT -/** - * @brief The assert_param macro is used for function's parameters check. - * @param expr If expr is false, it calls assert_failed function - * which reports the name of the source file and the source - * line number of the call that failed. - * If expr is true, it returns no value. - * @retval None - */ -#define assert_param(expr) \ - ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) -/* Exported functions ------------------------------------------------------- */ -void assert_failed(uint8_t *file, uint32_t line); -#else -#define assert_param(expr) ((void)0U) -#endif /* USE_FULL_ASSERT */ - -#ifdef __cplusplus -} -#endif - -#endif /* STM32L4xx_HAL_CONF_H */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_hal_conf.h + * @author MCD Application Team + * @brief HAL configuration template file. + * This file should be copied to the application folder and renamed + * to stm32l4xx_hal_conf.h. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32L4xx_HAL_CONF_H +#define STM32L4xx_HAL_CONF_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED +#define HAL_ADC_MODULE_ENABLED +/*#define HAL_CRYP_MODULE_ENABLED */ +#define HAL_CAN_MODULE_ENABLED +/*#define HAL_COMP_MODULE_ENABLED */ +#define HAL_I2C_MODULE_ENABLED +/*#define HAL_CRC_MODULE_ENABLED */ +/*#define HAL_CRYP_MODULE_ENABLED */ +/*#define HAL_DAC_MODULE_ENABLED */ +/*#define HAL_DCMI_MODULE_ENABLED */ +/*#define HAL_DMA2D_MODULE_ENABLED */ +/*#define HAL_DFSDM_MODULE_ENABLED */ +/*#define HAL_DSI_MODULE_ENABLED */ +/*#define HAL_FIREWALL_MODULE_ENABLED */ +/*#define HAL_GFXMMU_MODULE_ENABLED */ +/*#define HAL_HCD_MODULE_ENABLED */ +/*#define HAL_HASH_MODULE_ENABLED */ +/*#define HAL_I2S_MODULE_ENABLED */ +/*#define HAL_IRDA_MODULE_ENABLED */ +#define HAL_IWDG_MODULE_ENABLED +/*#define HAL_LTDC_MODULE_ENABLED */ +/*#define HAL_LCD_MODULE_ENABLED */ +/*#define HAL_LPTIM_MODULE_ENABLED */ +/*#define HAL_MMC_MODULE_ENABLED */ +/*#define HAL_NAND_MODULE_ENABLED */ +/*#define HAL_NOR_MODULE_ENABLED */ +/*#define HAL_OPAMP_MODULE_ENABLED */ +/*#define HAL_OSPI_MODULE_ENABLED */ +/*#define HAL_OSPI_MODULE_ENABLED */ +/*#define HAL_PCD_MODULE_ENABLED */ +/*#define HAL_PKA_MODULE_ENABLED */ +/*#define HAL_QSPI_MODULE_ENABLED */ +/*#define HAL_QSPI_MODULE_ENABLED */ +/*#define HAL_RNG_MODULE_ENABLED */ +/*#define HAL_RTC_MODULE_ENABLED */ +/*#define HAL_SAI_MODULE_ENABLED */ +/*#define HAL_SD_MODULE_ENABLED */ +/*#define HAL_SMBUS_MODULE_ENABLED */ +/*#define HAL_SMARTCARD_MODULE_ENABLED */ +/*#define HAL_SPI_MODULE_ENABLED */ +/*#define HAL_SRAM_MODULE_ENABLED */ +/*#define HAL_SWPMI_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED +/*#define HAL_TSC_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/*#define HAL_USART_MODULE_ENABLED */ +/*#define HAL_WWDG_MODULE_ENABLED */ +/*#define HAL_EXTI_MODULE_ENABLED */ +/*#define HAL_PSSI_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## Oscillator Values adaptation + * ####################*/ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your + * application. This value is used by the RCC HAL module to compute the system + * frequency (when HSE is used as system clock source, directly or through the + * PLL). + */ +#if !defined(HSE_VALUE) +#define HSE_VALUE \ + ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined(HSE_STARTUP_TIMEOUT) +#define HSE_STARTUP_TIMEOUT \ + ((uint32_t)100U) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal Multiple Speed oscillator (MSI) default value. + * This value is the default MSI range value after Reset. + */ +#if !defined(MSI_VALUE) +#define MSI_VALUE \ + ((uint32_t)4000000U) /*!< Value of the Internal oscillator in Hz*/ +#endif /* MSI_VALUE */ +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system + * frequency (when HSI is used as system clock source, directly or through the + * PLL). + */ +#if !defined(HSI_VALUE) +#define HSI_VALUE \ + ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal High Speed oscillator (HSI48) value for USB FS, SDMMC and + * RNG. This internal oscillator is mainly dedicated to provide a high precision + * clock to the USB peripheral by means of a special Clock Recovery System (CRS) + * circuitry. When the CRS is not used, the HSI48 RC oscillator runs on it + * default frequency which is subject to manufacturing process variations. + */ +#if !defined(HSI48_VALUE) +#define HSI48_VALUE \ + ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for \ + USB FS/SDMMC/RNG in Hz. The real value my vary \ + depending on manufacturing process variations.*/ +#endif /* HSI48_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined(LSI_VALUE) +#define LSI_VALUE 32000U /*!< LSI Typical Value in Hz*/ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz \ + The real value may vary depending on the variations \ + in voltage and temperature.*/ + +/** + * @brief External Low Speed oscillator (LSE) value. + * This value is used by the UART, RTC HAL module to compute the system + * frequency + */ +#if !defined(LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of the External oscillator in Hz*/ +#endif /* LSE_VALUE */ + +#if !defined(LSE_STARTUP_TIMEOUT) +#define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for SAI1 peripheral + * This value is used by the RCC HAL module to compute the SAI1 & SAI2 + * clock source frequency. + */ +#if !defined(EXTERNAL_SAI1_CLOCK_VALUE) +#define EXTERNAL_SAI1_CLOCK_VALUE \ + 2097000U /*!< Value of the SAI1 External clock source in Hz*/ +#endif /* EXTERNAL_SAI1_CLOCK_VALUE */ + +/** + * @brief External clock source for SAI2 peripheral + * This value is used by the RCC HAL module to compute the SAI1 & SAI2 + * clock source frequency. + */ +#if !defined(EXTERNAL_SAI2_CLOCK_VALUE) +#define EXTERNAL_SAI2_CLOCK_VALUE \ + 2097000U /*!< Value of the SAI2 External clock source in Hz*/ +#endif /* EXTERNAL_SAI2_CLOCK_VALUE */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ + +#define VDD_VALUE 3300U /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority */ +#define USE_RTOS 0U +#define PREFETCH_ENABLE 0U +#define INSTRUCTION_CACHE_ENABLE 1U +#define DATA_CACHE_ENABLE 1U + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## Register callback feature configuration ############### */ +/** + * @brief Set below the peripheral configuration to "1U" to add the support + * of HAL callback registration/deregistration feature for the HAL + * driver(s). This allows user application to provide specific callback + * functions thanks to HAL_PPP_RegisterCallback() rather than overwriting + * the default weak callback functions (see each stm32l4xx_hal_ppp.h file + * for possible callback identifiers defined in HAL_PPP_CallbackIDTypeDef + * for each PPP peripheral). + */ +#define USE_HAL_ADC_REGISTER_CALLBACKS 0U +#define USE_HAL_CAN_REGISTER_CALLBACKS 0U +#define USE_HAL_COMP_REGISTER_CALLBACKS 0U +#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U +#define USE_HAL_DAC_REGISTER_CALLBACKS 0U +#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U +#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U +#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U +#define USE_HAL_DSI_REGISTER_CALLBACKS 0U +#define USE_HAL_GFXMMU_REGISTER_CALLBACKS 0U +#define USE_HAL_HASH_REGISTER_CALLBACKS 0U +#define USE_HAL_HCD_REGISTER_CALLBACKS 0U +#define USE_HAL_I2C_REGISTER_CALLBACKS 0U +#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U +#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U +#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U +#define USE_HAL_MMC_REGISTER_CALLBACKS 0U +#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U +#define USE_HAL_OSPI_REGISTER_CALLBACKS 0U +#define USE_HAL_PCD_REGISTER_CALLBACKS 0U +#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U +#define USE_HAL_RNG_REGISTER_CALLBACKS 0U +#define USE_HAL_RTC_REGISTER_CALLBACKS 0U +#define USE_HAL_SAI_REGISTER_CALLBACKS 0U +#define USE_HAL_SD_REGISTER_CALLBACKS 0U +#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U +#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U +#define USE_HAL_SPI_REGISTER_CALLBACKS 0U +#define USE_HAL_SWPMI_REGISTER_CALLBACKS 0U +#define USE_HAL_TIM_REGISTER_CALLBACKS 0U +#define USE_HAL_TSC_REGISTER_CALLBACKS 0U +#define USE_HAL_UART_REGISTER_CALLBACKS 0U +#define USE_HAL_USART_REGISTER_CALLBACKS 0U +#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U + +/* ################## SPI peripheral configuration ########################## */ + +/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver + * Activated: CRC code is present inside driver + * Deactivated: CRC code cleaned from driver + */ + +#define USE_SPI_CRC 0U + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED +#include "stm32l4xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED +#include "stm32l4xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED +#include "stm32l4xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_DFSDM_MODULE_ENABLED +#include "stm32l4xx_hal_dfsdm.h" +#endif /* HAL_DFSDM_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED +#include "stm32l4xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED +#include "stm32l4xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED +#include "stm32l4xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CAN_LEGACY_MODULE_ENABLED +#include "Legacy/stm32l4xx_hal_can_legacy.h" +#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED +#include "stm32l4xx_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED +#include "stm32l4xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED +#include "stm32l4xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED +#include "stm32l4xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_DCMI_MODULE_ENABLED +#include "stm32l4xx_hal_dcmi.h" +#endif /* HAL_DCMI_MODULE_ENABLED */ + +#ifdef HAL_DMA2D_MODULE_ENABLED +#include "stm32l4xx_hal_dma2d.h" +#endif /* HAL_DMA2D_MODULE_ENABLED */ + +#ifdef HAL_DSI_MODULE_ENABLED +#include "stm32l4xx_hal_dsi.h" +#endif /* HAL_DSI_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED +#include "stm32l4xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GFXMMU_MODULE_ENABLED +#include "stm32l4xx_hal_gfxmmu.h" +#endif /* HAL_GFXMMU_MODULE_ENABLED */ + +#ifdef HAL_FIREWALL_MODULE_ENABLED +#include "stm32l4xx_hal_firewall.h" +#endif /* HAL_FIREWALL_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED +#include "stm32l4xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_HASH_MODULE_ENABLED +#include "stm32l4xx_hal_hash.h" +#endif /* HAL_HASH_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED +#include "stm32l4xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED +#include "stm32l4xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED +#include "stm32l4xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED +#include "stm32l4xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_LCD_MODULE_ENABLED +#include "stm32l4xx_hal_lcd.h" +#endif /* HAL_LCD_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED +#include "stm32l4xx_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_LTDC_MODULE_ENABLED +#include "stm32l4xx_hal_ltdc.h" +#endif /* HAL_LTDC_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED +#include "stm32l4xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED +#include "stm32l4xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED +#include "stm32l4xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_OPAMP_MODULE_ENABLED +#include "stm32l4xx_hal_opamp.h" +#endif /* HAL_OPAMP_MODULE_ENABLED */ + +#ifdef HAL_OSPI_MODULE_ENABLED +#include "stm32l4xx_hal_ospi.h" +#endif /* HAL_OSPI_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED +#include "stm32l4xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_PKA_MODULE_ENABLED +#include "stm32l4xx_hal_pka.h" +#endif /* HAL_PKA_MODULE_ENABLED */ + +#ifdef HAL_PSSI_MODULE_ENABLED +#include "stm32l4xx_hal_pssi.h" +#endif /* HAL_PSSI_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED +#include "stm32l4xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_QSPI_MODULE_ENABLED +#include "stm32l4xx_hal_qspi.h" +#endif /* HAL_QSPI_MODULE_ENABLED */ + +#ifdef HAL_RNG_MODULE_ENABLED +#include "stm32l4xx_hal_rng.h" +#endif /* HAL_RNG_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED +#include "stm32l4xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SAI_MODULE_ENABLED +#include "stm32l4xx_hal_sai.h" +#endif /* HAL_SAI_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED +#include "stm32l4xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED +#include "stm32l4xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED +#include "stm32l4xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED +#include "stm32l4xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED +#include "stm32l4xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_SWPMI_MODULE_ENABLED +#include "stm32l4xx_hal_swpmi.h" +#endif /* HAL_SWPMI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED +#include "stm32l4xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_TSC_MODULE_ENABLED +#include "stm32l4xx_hal_tsc.h" +#endif /* HAL_TSC_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED +#include "stm32l4xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED +#include "stm32l4xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED +#include "stm32l4xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ +#define assert_param(expr) \ + ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ +void assert_failed(uint8_t *file, uint32_t line); +#else +#define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32L4xx_HAL_CONF_H */ diff --git a/eps/firmware/bsp/mcu/Inc/stm32l4xx_it.h b/eps/v1/firmware/bsp/mcu/Inc/stm32l4xx_it.h similarity index 96% rename from eps/firmware/bsp/mcu/Inc/stm32l4xx_it.h rename to eps/v1/firmware/bsp/mcu/Inc/stm32l4xx_it.h index 7801dac..1ffe618 100644 --- a/eps/firmware/bsp/mcu/Inc/stm32l4xx_it.h +++ b/eps/v1/firmware/bsp/mcu/Inc/stm32l4xx_it.h @@ -1,78 +1,78 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file stm32l4xx_it.h - * @brief This file contains the headers of the interrupt handlers. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __STM32L4xx_IT_H -#define __STM32L4xx_IT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* Exported types ------------------------------------------------------------*/ -/* USER CODE BEGIN ET */ - -/* USER CODE END ET */ - -/* Exported constants --------------------------------------------------------*/ -/* USER CODE BEGIN EC */ - -/* USER CODE END EC */ - -/* Exported macro ------------------------------------------------------------*/ -/* USER CODE BEGIN EM */ - -/* USER CODE END EM */ - -/* Exported functions prototypes ---------------------------------------------*/ -void NMI_Handler(void); -void HardFault_Handler(void); -void MemManage_Handler(void); -void BusFault_Handler(void); -void UsageFault_Handler(void); -void SVC_Handler(void); -void DebugMon_Handler(void); -void PendSV_Handler(void); -void SysTick_Handler(void); -void DMA1_Channel2_IRQHandler(void); -void DMA1_Channel3_IRQHandler(void); -void DMA1_Channel5_IRQHandler(void); -void ADC1_2_IRQHandler(void); -void I2C1_EV_IRQHandler(void); -void I2C1_ER_IRQHandler(void); -void I2C2_EV_IRQHandler(void); -void I2C2_ER_IRQHandler(void); -void I2C3_EV_IRQHandler(void); -void I2C3_ER_IRQHandler(void); -void I2C4_EV_IRQHandler(void); -void I2C4_ER_IRQHandler(void); -/* USER CODE BEGIN EFP */ - -/* USER CODE END EFP */ - -#ifdef __cplusplus -} -#endif - -#endif /* __STM32L4xx_IT_H */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L4xx_IT_H +#define __STM32L4xx_IT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +void DMA1_Channel2_IRQHandler(void); +void DMA1_Channel3_IRQHandler(void); +void DMA1_Channel5_IRQHandler(void); +void ADC1_2_IRQHandler(void); +void I2C1_EV_IRQHandler(void); +void I2C1_ER_IRQHandler(void); +void I2C2_EV_IRQHandler(void); +void I2C2_ER_IRQHandler(void); +void I2C3_EV_IRQHandler(void); +void I2C3_ER_IRQHandler(void); +void I2C4_EV_IRQHandler(void); +void I2C4_ER_IRQHandler(void); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L4xx_IT_H */ diff --git a/eps/firmware/bsp/mcu/Inc/tim.h b/eps/v1/firmware/bsp/mcu/Inc/tim.h similarity index 96% rename from eps/firmware/bsp/mcu/Inc/tim.h rename to eps/v1/firmware/bsp/mcu/Inc/tim.h index 77b3d8d..4f8003f 100644 --- a/eps/firmware/bsp/mcu/Inc/tim.h +++ b/eps/v1/firmware/bsp/mcu/Inc/tim.h @@ -1,52 +1,52 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file tim.h - * @brief This file contains all the function prototypes for - * the tim.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __TIM_H__ -#define __TIM_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern TIM_HandleTypeDef htim1; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_TIM1_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __TIM_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file tim.h + * @brief This file contains all the function prototypes for + * the tim.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __TIM_H__ +#define __TIM_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern TIM_HandleTypeDef htim1; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_TIM1_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __TIM_H__ */ + diff --git a/eps/firmware/bootstrap/Core/Inc/usart.h b/eps/v1/firmware/bsp/mcu/Inc/usart.h similarity index 96% rename from eps/firmware/bootstrap/Core/Inc/usart.h rename to eps/v1/firmware/bsp/mcu/Inc/usart.h index c4e5050..dd17ca7 100644 --- a/eps/firmware/bootstrap/Core/Inc/usart.h +++ b/eps/v1/firmware/bsp/mcu/Inc/usart.h @@ -1,55 +1,55 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file usart.h - * @brief This file contains all the function prototypes for - * the usart.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __USART_H__ -#define __USART_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -extern UART_HandleTypeDef huart1; - -extern UART_HandleTypeDef huart3; - -/* USER CODE BEGIN Private defines */ - -/* USER CODE END Private defines */ - -void MX_USART1_UART_Init(void); -void MX_USART3_UART_Init(void); - -/* USER CODE BEGIN Prototypes */ - -/* USER CODE END Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __USART_H__ */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file usart.h + * @brief This file contains all the function prototypes for + * the usart.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USART_H__ +#define __USART_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern UART_HandleTypeDef huart1; + +extern UART_HandleTypeDef huart3; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_USART1_UART_Init(void); +void MX_USART3_UART_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USART_H__ */ + diff --git a/eps/firmware/bsp/mcu/Src/adc.c b/eps/v1/firmware/bsp/mcu/Src/adc.c similarity index 96% rename from eps/firmware/bsp/mcu/Src/adc.c rename to eps/v1/firmware/bsp/mcu/Src/adc.c index 1c443bb..8449fba 100644 --- a/eps/firmware/bsp/mcu/Src/adc.c +++ b/eps/v1/firmware/bsp/mcu/Src/adc.c @@ -1,291 +1,291 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file adc.c - * @brief This file provides code for the configuration - * of the ADC instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "adc.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -ADC_HandleTypeDef hadc2; -DMA_HandleTypeDef hdma_adc2; - -/* ADC2 init function */ -void MX_ADC2_Init(void) { - - /* USER CODE BEGIN ADC2_Init 0 */ - - /* USER CODE END ADC2_Init 0 */ - - ADC_ChannelConfTypeDef sConfig = {0}; - - /* USER CODE BEGIN ADC2_Init 1 */ - - /* USER CODE END ADC2_Init 1 */ - - /** Common config - */ - hadc2.Instance = ADC2; - hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV4; - hadc2.Init.Resolution = ADC_RESOLUTION_12B; - hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT; - hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE; - hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV; - hadc2.Init.LowPowerAutoWait = DISABLE; - hadc2.Init.ContinuousConvMode = DISABLE; - hadc2.Init.NbrOfConversion = 11; - hadc2.Init.DiscontinuousConvMode = DISABLE; - hadc2.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T1_TRGO; - hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING; - hadc2.Init.DMAContinuousRequests = DISABLE; - hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED; - hadc2.Init.OversamplingMode = DISABLE; - if (HAL_ADC_Init(&hadc2) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_3; - sConfig.Rank = ADC_REGULAR_RANK_1; - sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; - sConfig.SingleDiff = ADC_SINGLE_ENDED; - sConfig.OffsetNumber = ADC_OFFSET_NONE; - sConfig.Offset = 0; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_4; - sConfig.Rank = ADC_REGULAR_RANK_2; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_5; - sConfig.Rank = ADC_REGULAR_RANK_3; - sConfig.SamplingTime = ADC_SAMPLETIME_92CYCLES_5; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_6; - sConfig.Rank = ADC_REGULAR_RANK_4; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_7; - sConfig.Rank = ADC_REGULAR_RANK_5; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_8; - sConfig.Rank = ADC_REGULAR_RANK_6; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_9; - sConfig.Rank = ADC_REGULAR_RANK_7; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_10; - sConfig.Rank = ADC_REGULAR_RANK_8; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_11; - sConfig.Rank = ADC_REGULAR_RANK_9; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_12; - sConfig.Rank = ADC_REGULAR_RANK_10; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - - /** Configure Regular Channel - */ - sConfig.Channel = ADC_CHANNEL_15; - sConfig.Rank = ADC_REGULAR_RANK_11; - sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; - if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { - Error_Handler(); - } - /* USER CODE BEGIN ADC2_Init 2 */ - - /* USER CODE END ADC2_Init 2 */ -} - -void HAL_ADC_MspInit(ADC_HandleTypeDef *adcHandle) { - - GPIO_InitTypeDef GPIO_InitStruct = {0}; - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - if (adcHandle->Instance == ADC2) { - /* USER CODE BEGIN ADC2_MspInit 0 */ - - /* USER CODE END ADC2_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; - PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_PLLSAI1; - PeriphClkInit.PLLSAI1.PLLSAI1Source = RCC_PLLSOURCE_HSI; - PeriphClkInit.PLLSAI1.PLLSAI1M = 2; - PeriphClkInit.PLLSAI1.PLLSAI1N = 8; - PeriphClkInit.PLLSAI1.PLLSAI1P = RCC_PLLP_DIV2; - PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2; - PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2; - PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_ADC1CLK; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { - Error_Handler(); - } - - /* ADC2 clock enable */ - __HAL_RCC_ADC_CLK_ENABLE(); - - __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_GPIOA_CLK_ENABLE(); - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**ADC2 GPIO Configuration - PC2 ------> ADC2_IN3 - PC3 ------> ADC2_IN4 - PA0 ------> ADC2_IN5 - PA1 ------> ADC2_IN6 - PA2 ------> ADC2_IN7 - PA3 ------> ADC2_IN8 - PA4 ------> ADC2_IN9 - PA5 ------> ADC2_IN10 - PA6 ------> ADC2_IN11 - PA7 ------> ADC2_IN12 - PB0 ------> ADC2_IN15 - */ - GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | - GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | - GPIO_PIN_6 | GPIO_PIN_7; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_0; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* ADC2 DMA Init */ - /* ADC2 Init */ - hdma_adc2.Instance = DMA1_Channel2; - hdma_adc2.Init.Request = DMA_REQUEST_0; - hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY; - hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_adc2.Init.MemInc = DMA_MINC_ENABLE; - hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; - hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; - hdma_adc2.Init.Mode = DMA_CIRCULAR; - hdma_adc2.Init.Priority = DMA_PRIORITY_LOW; - if (HAL_DMA_Init(&hdma_adc2) != HAL_OK) { - Error_Handler(); - } - - __HAL_LINKDMA(adcHandle, DMA_Handle, hdma_adc2); - - /* ADC2 interrupt Init */ - HAL_NVIC_SetPriority(ADC1_2_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(ADC1_2_IRQn); - /* USER CODE BEGIN ADC2_MspInit 1 */ - - /* USER CODE END ADC2_MspInit 1 */ - } -} - -void HAL_ADC_MspDeInit(ADC_HandleTypeDef *adcHandle) { - - if (adcHandle->Instance == ADC2) { - /* USER CODE BEGIN ADC2_MspDeInit 0 */ - - /* USER CODE END ADC2_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_ADC_CLK_DISABLE(); - - /**ADC2 GPIO Configuration - PC2 ------> ADC2_IN3 - PC3 ------> ADC2_IN4 - PA0 ------> ADC2_IN5 - PA1 ------> ADC2_IN6 - PA2 ------> ADC2_IN7 - PA3 ------> ADC2_IN8 - PA4 ------> ADC2_IN9 - PA5 ------> ADC2_IN10 - PA6 ------> ADC2_IN11 - PA7 ------> ADC2_IN12 - PB0 ------> ADC2_IN15 - */ - HAL_GPIO_DeInit(GPIOC, GPIO_PIN_2 | GPIO_PIN_3); - - HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | - GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | - GPIO_PIN_6 | GPIO_PIN_7); - - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0); - - /* ADC2 DMA DeInit */ - HAL_DMA_DeInit(adcHandle->DMA_Handle); - - /* ADC2 interrupt Deinit */ - HAL_NVIC_DisableIRQ(ADC1_2_IRQn); - /* USER CODE BEGIN ADC2_MspDeInit 1 */ - - /* USER CODE END ADC2_MspDeInit 1 */ - } -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file adc.c + * @brief This file provides code for the configuration + * of the ADC instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "adc.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +ADC_HandleTypeDef hadc2; +DMA_HandleTypeDef hdma_adc2; + +/* ADC2 init function */ +void MX_ADC2_Init(void) { + + /* USER CODE BEGIN ADC2_Init 0 */ + + /* USER CODE END ADC2_Init 0 */ + + ADC_ChannelConfTypeDef sConfig = {0}; + + /* USER CODE BEGIN ADC2_Init 1 */ + + /* USER CODE END ADC2_Init 1 */ + + /** Common config + */ + hadc2.Instance = ADC2; + hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV4; + hadc2.Init.Resolution = ADC_RESOLUTION_12B; + hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT; + hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE; + hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + hadc2.Init.LowPowerAutoWait = DISABLE; + hadc2.Init.ContinuousConvMode = DISABLE; + hadc2.Init.NbrOfConversion = 11; + hadc2.Init.DiscontinuousConvMode = DISABLE; + hadc2.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T1_TRGO; + hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING; + hadc2.Init.DMAContinuousRequests = DISABLE; + hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED; + hadc2.Init.OversamplingMode = DISABLE; + if (HAL_ADC_Init(&hadc2) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_3; + sConfig.Rank = ADC_REGULAR_RANK_1; + sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; + sConfig.SingleDiff = ADC_SINGLE_ENDED; + sConfig.OffsetNumber = ADC_OFFSET_NONE; + sConfig.Offset = 0; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_4; + sConfig.Rank = ADC_REGULAR_RANK_2; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_5; + sConfig.Rank = ADC_REGULAR_RANK_3; + sConfig.SamplingTime = ADC_SAMPLETIME_92CYCLES_5; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_6; + sConfig.Rank = ADC_REGULAR_RANK_4; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_7; + sConfig.Rank = ADC_REGULAR_RANK_5; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_8; + sConfig.Rank = ADC_REGULAR_RANK_6; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_9; + sConfig.Rank = ADC_REGULAR_RANK_7; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_10; + sConfig.Rank = ADC_REGULAR_RANK_8; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_11; + sConfig.Rank = ADC_REGULAR_RANK_9; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_12; + sConfig.Rank = ADC_REGULAR_RANK_10; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_15; + sConfig.Rank = ADC_REGULAR_RANK_11; + sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) { + Error_Handler(); + } + /* USER CODE BEGIN ADC2_Init 2 */ + + /* USER CODE END ADC2_Init 2 */ +} + +void HAL_ADC_MspInit(ADC_HandleTypeDef *adcHandle) { + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if (adcHandle->Instance == ADC2) { + /* USER CODE BEGIN ADC2_MspInit 0 */ + + /* USER CODE END ADC2_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; + PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_PLLSAI1; + PeriphClkInit.PLLSAI1.PLLSAI1Source = RCC_PLLSOURCE_HSI; + PeriphClkInit.PLLSAI1.PLLSAI1M = 2; + PeriphClkInit.PLLSAI1.PLLSAI1N = 8; + PeriphClkInit.PLLSAI1.PLLSAI1P = RCC_PLLP_DIV2; + PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2; + PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2; + PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_ADC1CLK; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { + Error_Handler(); + } + + /* ADC2 clock enable */ + __HAL_RCC_ADC_CLK_ENABLE(); + + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**ADC2 GPIO Configuration + PC2 ------> ADC2_IN3 + PC3 ------> ADC2_IN4 + PA0 ------> ADC2_IN5 + PA1 ------> ADC2_IN6 + PA2 ------> ADC2_IN7 + PA3 ------> ADC2_IN8 + PA4 ------> ADC2_IN9 + PA5 ------> ADC2_IN10 + PA6 ------> ADC2_IN11 + PA7 ------> ADC2_IN12 + PB0 ------> ADC2_IN15 + */ + GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | + GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | + GPIO_PIN_6 | GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_0; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* ADC2 DMA Init */ + /* ADC2 Init */ + hdma_adc2.Instance = DMA1_Channel2; + hdma_adc2.Init.Request = DMA_REQUEST_0; + hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_adc2.Init.MemInc = DMA_MINC_ENABLE; + hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; + hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; + hdma_adc2.Init.Mode = DMA_CIRCULAR; + hdma_adc2.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_adc2) != HAL_OK) { + Error_Handler(); + } + + __HAL_LINKDMA(adcHandle, DMA_Handle, hdma_adc2); + + /* ADC2 interrupt Init */ + HAL_NVIC_SetPriority(ADC1_2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(ADC1_2_IRQn); + /* USER CODE BEGIN ADC2_MspInit 1 */ + + /* USER CODE END ADC2_MspInit 1 */ + } +} + +void HAL_ADC_MspDeInit(ADC_HandleTypeDef *adcHandle) { + + if (adcHandle->Instance == ADC2) { + /* USER CODE BEGIN ADC2_MspDeInit 0 */ + + /* USER CODE END ADC2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_ADC_CLK_DISABLE(); + + /**ADC2 GPIO Configuration + PC2 ------> ADC2_IN3 + PC3 ------> ADC2_IN4 + PA0 ------> ADC2_IN5 + PA1 ------> ADC2_IN6 + PA2 ------> ADC2_IN7 + PA3 ------> ADC2_IN8 + PA4 ------> ADC2_IN9 + PA5 ------> ADC2_IN10 + PA6 ------> ADC2_IN11 + PA7 ------> ADC2_IN12 + PB0 ------> ADC2_IN15 + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_2 | GPIO_PIN_3); + + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | + GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | + GPIO_PIN_6 | GPIO_PIN_7); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0); + + /* ADC2 DMA DeInit */ + HAL_DMA_DeInit(adcHandle->DMA_Handle); + + /* ADC2 interrupt Deinit */ + HAL_NVIC_DisableIRQ(ADC1_2_IRQn); + /* USER CODE BEGIN ADC2_MspDeInit 1 */ + + /* USER CODE END ADC2_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bsp/mcu/Src/can.c b/eps/v1/firmware/bsp/mcu/Src/can.c similarity index 100% rename from eps/firmware/bsp/mcu/Src/can.c rename to eps/v1/firmware/bsp/mcu/Src/can.c diff --git a/eps/firmware/bsp/mcu/Src/dma.c b/eps/v1/firmware/bsp/mcu/Src/dma.c similarity index 96% rename from eps/firmware/bsp/mcu/Src/dma.c rename to eps/v1/firmware/bsp/mcu/Src/dma.c index 5c4be92..83b6519 100644 --- a/eps/firmware/bsp/mcu/Src/dma.c +++ b/eps/v1/firmware/bsp/mcu/Src/dma.c @@ -1,61 +1,61 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file dma.c - * @brief This file provides code for the configuration - * of all the requested memory to memory DMA transfers. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "dma.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/*----------------------------------------------------------------------------*/ -/* Configure DMA */ -/*----------------------------------------------------------------------------*/ - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ - -/** - * Enable DMA controller clock - */ -void MX_DMA_Init(void) -{ - - /* DMA controller clock enable */ - __HAL_RCC_DMA1_CLK_ENABLE(); - - /* DMA interrupt init */ - /* DMA1_Channel2_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn); - /* DMA1_Channel3_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn); - /* DMA1_Channel5_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); - -} - -/* USER CODE BEGIN 2 */ - -/* USER CODE END 2 */ - +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.c + * @brief This file provides code for the configuration + * of all the requested memory to memory DMA transfers. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "dma.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/*----------------------------------------------------------------------------*/ +/* Configure DMA */ +/*----------------------------------------------------------------------------*/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/** + * Enable DMA controller clock + */ +void MX_DMA_Init(void) +{ + + /* DMA controller clock enable */ + __HAL_RCC_DMA1_CLK_ENABLE(); + + /* DMA interrupt init */ + /* DMA1_Channel2_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn); + /* DMA1_Channel3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn); + /* DMA1_Channel5_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); + +} + +/* USER CODE BEGIN 2 */ + +/* USER CODE END 2 */ + diff --git a/eps/firmware/bsp/mcu/Src/gpio.c b/eps/v1/firmware/bsp/mcu/Src/gpio.c similarity index 96% rename from eps/firmware/bsp/mcu/Src/gpio.c rename to eps/v1/firmware/bsp/mcu/Src/gpio.c index 8a74542..1547b27 100644 --- a/eps/firmware/bsp/mcu/Src/gpio.c +++ b/eps/v1/firmware/bsp/mcu/Src/gpio.c @@ -1,60 +1,60 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file gpio.c - * @brief This file provides code for the configuration - * of all used GPIO pins. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "gpio.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/*----------------------------------------------------------------------------*/ -/* Configure GPIO */ -/*----------------------------------------------------------------------------*/ -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ - -/** Configure pins as - * Analog - * Input - * Output - * EVENT_OUT - * EXTI -*/ -void MX_GPIO_Init(void) -{ - - /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_GPIOF_CLK_ENABLE(); - __HAL_RCC_GPIOH_CLK_ENABLE(); - __HAL_RCC_GPIOA_CLK_ENABLE(); - __HAL_RCC_GPIOB_CLK_ENABLE(); - __HAL_RCC_GPIOG_CLK_ENABLE(); - __HAL_RCC_GPIOD_CLK_ENABLE(); - __HAL_RCC_GPIOE_CLK_ENABLE(); - HAL_PWREx_EnableVddIO2(); - -} - -/* USER CODE BEGIN 2 */ - -/* USER CODE END 2 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file gpio.c + * @brief This file provides code for the configuration + * of all used GPIO pins. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "gpio.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/*----------------------------------------------------------------------------*/ +/* Configure GPIO */ +/*----------------------------------------------------------------------------*/ +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/** Configure pins as + * Analog + * Input + * Output + * EVENT_OUT + * EXTI +*/ +void MX_GPIO_Init(void) +{ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOF_CLK_ENABLE(); + __HAL_RCC_GPIOH_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + __HAL_RCC_GPIOG_CLK_ENABLE(); + __HAL_RCC_GPIOD_CLK_ENABLE(); + __HAL_RCC_GPIOE_CLK_ENABLE(); + HAL_PWREx_EnableVddIO2(); + +} + +/* USER CODE BEGIN 2 */ + +/* USER CODE END 2 */ diff --git a/eps/firmware/bsp/mcu/Src/i2c.c b/eps/v1/firmware/bsp/mcu/Src/i2c.c similarity index 96% rename from eps/firmware/bsp/mcu/Src/i2c.c rename to eps/v1/firmware/bsp/mcu/Src/i2c.c index edf57e2..c2b8e96 100644 --- a/eps/firmware/bsp/mcu/Src/i2c.c +++ b/eps/v1/firmware/bsp/mcu/Src/i2c.c @@ -1,432 +1,432 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file i2c.c - * @brief This file provides code for the configuration - * of the I2C instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "i2c.h" -#include "stm32l496xx.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -I2C_HandleTypeDef hi2c1; -I2C_HandleTypeDef hi2c2; -I2C_HandleTypeDef hi2c3; -I2C_HandleTypeDef hi2c4; - -/* I2C1 init function */ -void MX_I2C1_Init(void) { - - /* USER CODE BEGIN I2C1_Init 0 */ - - /* USER CODE END I2C1_Init 0 */ - - /* USER CODE BEGIN I2C1_Init 1 */ - - /* USER CODE END I2C1_Init 1 */ - hi2c1.Instance = I2C1; - hi2c1.Init.Timing = 0x10D19CE4; - hi2c1.Init.OwnAddress1 = 0; - hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - hi2c1.Init.OwnAddress2 = 0; - hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - if (HAL_I2C_Init(&hi2c1) != HAL_OK) { - Error_Handler(); - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != - HAL_OK) { - Error_Handler(); - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK) { - Error_Handler(); - } - /* USER CODE BEGIN I2C1_Init 2 */ - - /* USER CODE END I2C1_Init 2 */ -} -/* I2C2 init function */ -void MX_I2C2_Init(void) { - - /* USER CODE BEGIN I2C2_Init 0 */ - - /* USER CODE END I2C2_Init 0 */ - - /* USER CODE BEGIN I2C2_Init 1 */ - - /* USER CODE END I2C2_Init 1 */ - hi2c2.Instance = I2C2; - hi2c2.Init.Timing = 0x10D19CE4; - hi2c2.Init.OwnAddress1 = 0; - hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - hi2c2.Init.OwnAddress2 = 0; - hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - if (HAL_I2C_Init(&hi2c2) != HAL_OK) { - Error_Handler(); - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c2, I2C_ANALOGFILTER_ENABLE) != - HAL_OK) { - Error_Handler(); - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c2, 0) != HAL_OK) { - Error_Handler(); - } - /* USER CODE BEGIN I2C2_Init 2 */ - - /* USER CODE END I2C2_Init 2 */ -} -/* I2C3 init function */ -void MX_I2C3_Init(void) { - - /* USER CODE BEGIN I2C3_Init 0 */ - - /* USER CODE END I2C3_Init 0 */ - - /* USER CODE BEGIN I2C3_Init 1 */ - - /* USER CODE END I2C3_Init 1 */ - hi2c3.Instance = I2C3; - hi2c3.Init.Timing = 0x10D19CE4; - hi2c3.Init.OwnAddress1 = 0; - hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - hi2c3.Init.OwnAddress2 = 0; - hi2c3.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - if (HAL_I2C_Init(&hi2c3) != HAL_OK) { - Error_Handler(); - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != - HAL_OK) { - Error_Handler(); - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK) { - Error_Handler(); - } - /* USER CODE BEGIN I2C3_Init 2 */ - - /* USER CODE END I2C3_Init 2 */ -} -/* I2C4 init function */ -void MX_I2C4_Init(void) { - - /* USER CODE BEGIN I2C4_Init 0 */ - - /* USER CODE END I2C4_Init 0 */ - - /* USER CODE BEGIN I2C4_Init 1 */ - - /* USER CODE END I2C4_Init 1 */ - hi2c4.Instance = I2C4; - hi2c4.Init.Timing = 0x10D19CE4; - hi2c4.Init.OwnAddress1 = 0; - hi2c4.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - hi2c4.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - hi2c4.Init.OwnAddress2 = 0; - hi2c4.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - hi2c4.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - hi2c4.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - if (HAL_I2C_Init(&hi2c4) != HAL_OK) { - Error_Handler(); - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c4, I2C_ANALOGFILTER_ENABLE) != - HAL_OK) { - Error_Handler(); - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c4, 0) != HAL_OK) { - Error_Handler(); - } - /* USER CODE BEGIN I2C4_Init 2 */ - - /* USER CODE END I2C4_Init 2 */ -} - -void HAL_I2C_MspInit(I2C_HandleTypeDef *i2cHandle) { - - GPIO_InitTypeDef GPIO_InitStruct = {0}; - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - if (i2cHandle->Instance == I2C1) { - /* USER CODE BEGIN I2C1_MspInit 0 */ - - /* USER CODE END I2C1_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; - PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { - Error_Handler(); - } - - __HAL_RCC_GPIOG_CLK_ENABLE(); - /**I2C1 GPIO Configuration - PG14 ------> I2C1_SCL - PG13 ------> I2C1_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_13 | GPIO_PIN_14; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; - HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - - /* I2C1 clock enable */ - __HAL_RCC_I2C1_CLK_ENABLE(); - - /* I2C1 interrupt Init */ - HAL_NVIC_SetPriority(I2C1_EV_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C1_EV_IRQn); - HAL_NVIC_SetPriority(I2C1_ER_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C1_ER_IRQn); - /* USER CODE BEGIN I2C1_MspInit 1 */ - - /* USER CODE END I2C1_MspInit 1 */ - } else if (i2cHandle->Instance == I2C2) { - /* USER CODE BEGIN I2C2_MspInit 0 */ - - /* USER CODE END I2C2_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C2; - PeriphClkInit.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { - Error_Handler(); - } - - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**I2C2 GPIO Configuration - PB10 ------> I2C2_SCL - PB11 ------> I2C2_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C2; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* I2C2 clock enable */ - __HAL_RCC_I2C2_CLK_ENABLE(); - - /* I2C2 interrupt Init */ - HAL_NVIC_SetPriority(I2C2_EV_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C2_EV_IRQn); - HAL_NVIC_SetPriority(I2C2_ER_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C2_ER_IRQn); - /* USER CODE BEGIN I2C2_MspInit 1 */ - - /* USER CODE END I2C2_MspInit 1 */ - } else if (i2cHandle->Instance == I2C3) { - /* USER CODE BEGIN I2C3_MspInit 0 */ - - /* USER CODE END I2C3_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C3; - PeriphClkInit.I2c3ClockSelection = RCC_I2C3CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { - Error_Handler(); - } - - __HAL_RCC_GPIOG_CLK_ENABLE(); - /**I2C3 GPIO Configuration - PG7 ------> I2C3_SCL - PG8 ------> I2C3_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_7 | GPIO_PIN_8; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; - HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - - /* I2C3 clock enable */ - __HAL_RCC_I2C3_CLK_ENABLE(); - - /* I2C3 interrupt Init */ - HAL_NVIC_SetPriority(I2C3_EV_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C3_EV_IRQn); - HAL_NVIC_SetPriority(I2C3_ER_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C3_ER_IRQn); - /* USER CODE BEGIN I2C3_MspInit 1 */ - - /* USER CODE END I2C3_MspInit 1 */ - } else if (i2cHandle->Instance == I2C4) { - /* USER CODE BEGIN I2C4_MspInit 0 */ - - /* USER CODE END I2C4_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C4; - PeriphClkInit.I2c4ClockSelection = RCC_I2C4CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { - Error_Handler(); - } - - __HAL_RCC_GPIOF_CLK_ENABLE(); - /**I2C4 GPIO Configuration - PF14 ------> I2C4_SCL - PF15 ------> I2C4_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_14 | GPIO_PIN_15; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C4; - HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - - /* I2C4 clock enable */ - __HAL_RCC_I2C4_CLK_ENABLE(); - - /* I2C4 interrupt Init */ - HAL_NVIC_SetPriority(I2C4_EV_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C4_EV_IRQn); - HAL_NVIC_SetPriority(I2C4_ER_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C4_ER_IRQn); - /* USER CODE BEGIN I2C4_MspInit 1 */ - - /* USER CODE END I2C4_MspInit 1 */ - } -} - -void HAL_I2C_MspDeInit(I2C_HandleTypeDef *i2cHandle) { - - if (i2cHandle->Instance == I2C1) { - /* USER CODE BEGIN I2C1_MspDeInit 0 */ - - /* USER CODE END I2C1_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_I2C1_CLK_DISABLE(); - - /**I2C1 GPIO Configuration - PG14 ------> I2C1_SCL - PG13 ------> I2C1_SDA - */ - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_13); - - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14); - - /* I2C1 interrupt Deinit */ - HAL_NVIC_DisableIRQ(I2C1_EV_IRQn); - HAL_NVIC_DisableIRQ(I2C1_ER_IRQn); - /* USER CODE BEGIN I2C1_MspDeInit 1 */ - - /* USER CODE END I2C1_MspDeInit 1 */ - } else if (i2cHandle->Instance == I2C2) { - /* USER CODE BEGIN I2C2_MspDeInit 0 */ - - /* USER CODE END I2C2_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_I2C2_CLK_DISABLE(); - - /**I2C2 GPIO Configuration - PB10 ------> I2C2_SCL - PB11 ------> I2C2_SDA - */ - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10); - - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11); - - /* I2C2 interrupt Deinit */ - HAL_NVIC_DisableIRQ(I2C2_EV_IRQn); - HAL_NVIC_DisableIRQ(I2C2_ER_IRQn); - /* USER CODE BEGIN I2C2_MspDeInit 1 */ - - /* USER CODE END I2C2_MspDeInit 1 */ - } else if (i2cHandle->Instance == I2C3) { - /* USER CODE BEGIN I2C3_MspDeInit 0 */ - - /* USER CODE END I2C3_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_I2C3_CLK_DISABLE(); - - /**I2C3 GPIO Configuration - PG7 ------> I2C3_SCL - PG8 ------> I2C3_SDA - */ - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_7); - - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_8); - - /* I2C3 interrupt Deinit */ - HAL_NVIC_DisableIRQ(I2C3_EV_IRQn); - HAL_NVIC_DisableIRQ(I2C3_ER_IRQn); - /* USER CODE BEGIN I2C3_MspDeInit 1 */ - - /* USER CODE END I2C3_MspDeInit 1 */ - } else if (i2cHandle->Instance == I2C4) { - /* USER CODE BEGIN I2C4_MspDeInit 0 */ - - /* USER CODE END I2C4_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_I2C4_CLK_DISABLE(); - - /**I2C4 GPIO Configuration - PF14 ------> I2C4_SCL - PF15 ------> I2C4_SDA - */ - HAL_GPIO_DeInit(GPIOF, GPIO_PIN_14); - - HAL_GPIO_DeInit(GPIOF, GPIO_PIN_15); - - /* I2C4 interrupt Deinit */ - HAL_NVIC_DisableIRQ(I2C4_EV_IRQn); - HAL_NVIC_DisableIRQ(I2C4_ER_IRQn); - /* USER CODE BEGIN I2C4_MspDeInit 1 */ - - /* USER CODE END I2C4_MspDeInit 1 */ - } -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file i2c.c + * @brief This file provides code for the configuration + * of the I2C instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "i2c.h" +#include "stm32l496xx.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +I2C_HandleTypeDef hi2c1; +I2C_HandleTypeDef hi2c2; +I2C_HandleTypeDef hi2c3; +I2C_HandleTypeDef hi2c4; + +/* I2C1 init function */ +void MX_I2C1_Init(void) { + + /* USER CODE BEGIN I2C1_Init 0 */ + + /* USER CODE END I2C1_Init 0 */ + + /* USER CODE BEGIN I2C1_Init 1 */ + + /* USER CODE END I2C1_Init 1 */ + hi2c1.Instance = I2C1; + hi2c1.Init.Timing = 0x10D19CE4; + hi2c1.Init.OwnAddress1 = 0; + hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c1.Init.OwnAddress2 = 0; + hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c1) != HAL_OK) { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != + HAL_OK) { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK) { + Error_Handler(); + } + /* USER CODE BEGIN I2C1_Init 2 */ + + /* USER CODE END I2C1_Init 2 */ +} +/* I2C2 init function */ +void MX_I2C2_Init(void) { + + /* USER CODE BEGIN I2C2_Init 0 */ + + /* USER CODE END I2C2_Init 0 */ + + /* USER CODE BEGIN I2C2_Init 1 */ + + /* USER CODE END I2C2_Init 1 */ + hi2c2.Instance = I2C2; + hi2c2.Init.Timing = 0x10D19CE4; + hi2c2.Init.OwnAddress1 = 0; + hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c2.Init.OwnAddress2 = 0; + hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c2) != HAL_OK) { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c2, I2C_ANALOGFILTER_ENABLE) != + HAL_OK) { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c2, 0) != HAL_OK) { + Error_Handler(); + } + /* USER CODE BEGIN I2C2_Init 2 */ + + /* USER CODE END I2C2_Init 2 */ +} +/* I2C3 init function */ +void MX_I2C3_Init(void) { + + /* USER CODE BEGIN I2C3_Init 0 */ + + /* USER CODE END I2C3_Init 0 */ + + /* USER CODE BEGIN I2C3_Init 1 */ + + /* USER CODE END I2C3_Init 1 */ + hi2c3.Instance = I2C3; + hi2c3.Init.Timing = 0x10D19CE4; + hi2c3.Init.OwnAddress1 = 0; + hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c3.Init.OwnAddress2 = 0; + hi2c3.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c3) != HAL_OK) { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != + HAL_OK) { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK) { + Error_Handler(); + } + /* USER CODE BEGIN I2C3_Init 2 */ + + /* USER CODE END I2C3_Init 2 */ +} +/* I2C4 init function */ +void MX_I2C4_Init(void) { + + /* USER CODE BEGIN I2C4_Init 0 */ + + /* USER CODE END I2C4_Init 0 */ + + /* USER CODE BEGIN I2C4_Init 1 */ + + /* USER CODE END I2C4_Init 1 */ + hi2c4.Instance = I2C4; + hi2c4.Init.Timing = 0x10D19CE4; + hi2c4.Init.OwnAddress1 = 0; + hi2c4.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c4.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c4.Init.OwnAddress2 = 0; + hi2c4.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c4.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c4.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c4) != HAL_OK) { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c4, I2C_ANALOGFILTER_ENABLE) != + HAL_OK) { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c4, 0) != HAL_OK) { + Error_Handler(); + } + /* USER CODE BEGIN I2C4_Init 2 */ + + /* USER CODE END I2C4_Init 2 */ +} + +void HAL_I2C_MspInit(I2C_HandleTypeDef *i2cHandle) { + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if (i2cHandle->Instance == I2C1) { + /* USER CODE BEGIN I2C1_MspInit 0 */ + + /* USER CODE END I2C1_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; + PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { + Error_Handler(); + } + + __HAL_RCC_GPIOG_CLK_ENABLE(); + /**I2C1 GPIO Configuration + PG14 ------> I2C1_SCL + PG13 ------> I2C1_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_13 | GPIO_PIN_14; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + + /* I2C1 clock enable */ + __HAL_RCC_I2C1_CLK_ENABLE(); + + /* I2C1 interrupt Init */ + HAL_NVIC_SetPriority(I2C1_EV_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C1_EV_IRQn); + HAL_NVIC_SetPriority(I2C1_ER_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C1_ER_IRQn); + /* USER CODE BEGIN I2C1_MspInit 1 */ + + /* USER CODE END I2C1_MspInit 1 */ + } else if (i2cHandle->Instance == I2C2) { + /* USER CODE BEGIN I2C2_MspInit 0 */ + + /* USER CODE END I2C2_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C2; + PeriphClkInit.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { + Error_Handler(); + } + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**I2C2 GPIO Configuration + PB10 ------> I2C2_SCL + PB11 ------> I2C2_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C2; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* I2C2 clock enable */ + __HAL_RCC_I2C2_CLK_ENABLE(); + + /* I2C2 interrupt Init */ + HAL_NVIC_SetPriority(I2C2_EV_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C2_EV_IRQn); + HAL_NVIC_SetPriority(I2C2_ER_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C2_ER_IRQn); + /* USER CODE BEGIN I2C2_MspInit 1 */ + + /* USER CODE END I2C2_MspInit 1 */ + } else if (i2cHandle->Instance == I2C3) { + /* USER CODE BEGIN I2C3_MspInit 0 */ + + /* USER CODE END I2C3_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C3; + PeriphClkInit.I2c3ClockSelection = RCC_I2C3CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { + Error_Handler(); + } + + __HAL_RCC_GPIOG_CLK_ENABLE(); + /**I2C3 GPIO Configuration + PG7 ------> I2C3_SCL + PG8 ------> I2C3_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_7 | GPIO_PIN_8; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; + HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + + /* I2C3 clock enable */ + __HAL_RCC_I2C3_CLK_ENABLE(); + + /* I2C3 interrupt Init */ + HAL_NVIC_SetPriority(I2C3_EV_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C3_EV_IRQn); + HAL_NVIC_SetPriority(I2C3_ER_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C3_ER_IRQn); + /* USER CODE BEGIN I2C3_MspInit 1 */ + + /* USER CODE END I2C3_MspInit 1 */ + } else if (i2cHandle->Instance == I2C4) { + /* USER CODE BEGIN I2C4_MspInit 0 */ + + /* USER CODE END I2C4_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C4; + PeriphClkInit.I2c4ClockSelection = RCC_I2C4CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { + Error_Handler(); + } + + __HAL_RCC_GPIOF_CLK_ENABLE(); + /**I2C4 GPIO Configuration + PF14 ------> I2C4_SCL + PF15 ------> I2C4_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_14 | GPIO_PIN_15; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C4; + HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); + + /* I2C4 clock enable */ + __HAL_RCC_I2C4_CLK_ENABLE(); + + /* I2C4 interrupt Init */ + HAL_NVIC_SetPriority(I2C4_EV_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C4_EV_IRQn); + HAL_NVIC_SetPriority(I2C4_ER_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C4_ER_IRQn); + /* USER CODE BEGIN I2C4_MspInit 1 */ + + /* USER CODE END I2C4_MspInit 1 */ + } +} + +void HAL_I2C_MspDeInit(I2C_HandleTypeDef *i2cHandle) { + + if (i2cHandle->Instance == I2C1) { + /* USER CODE BEGIN I2C1_MspDeInit 0 */ + + /* USER CODE END I2C1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C1_CLK_DISABLE(); + + /**I2C1 GPIO Configuration + PG14 ------> I2C1_SCL + PG13 ------> I2C1_SDA + */ + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_13); + + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14); + + /* I2C1 interrupt Deinit */ + HAL_NVIC_DisableIRQ(I2C1_EV_IRQn); + HAL_NVIC_DisableIRQ(I2C1_ER_IRQn); + /* USER CODE BEGIN I2C1_MspDeInit 1 */ + + /* USER CODE END I2C1_MspDeInit 1 */ + } else if (i2cHandle->Instance == I2C2) { + /* USER CODE BEGIN I2C2_MspDeInit 0 */ + + /* USER CODE END I2C2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C2_CLK_DISABLE(); + + /**I2C2 GPIO Configuration + PB10 ------> I2C2_SCL + PB11 ------> I2C2_SDA + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11); + + /* I2C2 interrupt Deinit */ + HAL_NVIC_DisableIRQ(I2C2_EV_IRQn); + HAL_NVIC_DisableIRQ(I2C2_ER_IRQn); + /* USER CODE BEGIN I2C2_MspDeInit 1 */ + + /* USER CODE END I2C2_MspDeInit 1 */ + } else if (i2cHandle->Instance == I2C3) { + /* USER CODE BEGIN I2C3_MspDeInit 0 */ + + /* USER CODE END I2C3_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C3_CLK_DISABLE(); + + /**I2C3 GPIO Configuration + PG7 ------> I2C3_SCL + PG8 ------> I2C3_SDA + */ + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_7); + + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_8); + + /* I2C3 interrupt Deinit */ + HAL_NVIC_DisableIRQ(I2C3_EV_IRQn); + HAL_NVIC_DisableIRQ(I2C3_ER_IRQn); + /* USER CODE BEGIN I2C3_MspDeInit 1 */ + + /* USER CODE END I2C3_MspDeInit 1 */ + } else if (i2cHandle->Instance == I2C4) { + /* USER CODE BEGIN I2C4_MspDeInit 0 */ + + /* USER CODE END I2C4_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C4_CLK_DISABLE(); + + /**I2C4 GPIO Configuration + PF14 ------> I2C4_SCL + PF15 ------> I2C4_SDA + */ + HAL_GPIO_DeInit(GPIOF, GPIO_PIN_14); + + HAL_GPIO_DeInit(GPIOF, GPIO_PIN_15); + + /* I2C4 interrupt Deinit */ + HAL_NVIC_DisableIRQ(I2C4_EV_IRQn); + HAL_NVIC_DisableIRQ(I2C4_ER_IRQn); + /* USER CODE BEGIN I2C4_MspDeInit 1 */ + + /* USER CODE END I2C4_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bsp/mcu/Src/iwdg.c b/eps/v1/firmware/bsp/mcu/Src/iwdg.c similarity index 96% rename from eps/firmware/bsp/mcu/Src/iwdg.c rename to eps/v1/firmware/bsp/mcu/Src/iwdg.c index aaf325d..f38f8d7 100644 --- a/eps/firmware/bsp/mcu/Src/iwdg.c +++ b/eps/v1/firmware/bsp/mcu/Src/iwdg.c @@ -1,56 +1,56 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file iwdg.c - * @brief This file provides code for the configuration - * of the IWDG instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "iwdg.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -IWDG_HandleTypeDef hiwdg; - -/* IWDG init function */ -void MX_IWDG_Init(void) -{ - - /* USER CODE BEGIN IWDG_Init 0 */ - - /* USER CODE END IWDG_Init 0 */ - - /* USER CODE BEGIN IWDG_Init 1 */ - - /* USER CODE END IWDG_Init 1 */ - hiwdg.Instance = IWDG; - hiwdg.Init.Prescaler = IWDG_PRESCALER_4; - hiwdg.Init.Window = 4095; - hiwdg.Init.Reload = 4095; - if (HAL_IWDG_Init(&hiwdg) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN IWDG_Init 2 */ - __HAL_DBGMCU_FREEZE_IWDG(); - /* USER CODE END IWDG_Init 2 */ - -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file iwdg.c + * @brief This file provides code for the configuration + * of the IWDG instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "iwdg.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +IWDG_HandleTypeDef hiwdg; + +/* IWDG init function */ +void MX_IWDG_Init(void) +{ + + /* USER CODE BEGIN IWDG_Init 0 */ + + /* USER CODE END IWDG_Init 0 */ + + /* USER CODE BEGIN IWDG_Init 1 */ + + /* USER CODE END IWDG_Init 1 */ + hiwdg.Instance = IWDG; + hiwdg.Init.Prescaler = IWDG_PRESCALER_4; + hiwdg.Init.Window = 4095; + hiwdg.Init.Reload = 4095; + if (HAL_IWDG_Init(&hiwdg) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN IWDG_Init 2 */ + __HAL_DBGMCU_FREEZE_IWDG(); + /* USER CODE END IWDG_Init 2 */ + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bsp/mcu/Src/stm32l4xx_hal_msp.c b/eps/v1/firmware/bsp/mcu/Src/stm32l4xx_hal_msp.c similarity index 96% rename from eps/firmware/bsp/mcu/Src/stm32l4xx_hal_msp.c rename to eps/v1/firmware/bsp/mcu/Src/stm32l4xx_hal_msp.c index 07de14e..62249e4 100644 --- a/eps/firmware/bsp/mcu/Src/stm32l4xx_hal_msp.c +++ b/eps/v1/firmware/bsp/mcu/Src/stm32l4xx_hal_msp.c @@ -1,82 +1,82 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file stm32l4xx_hal_msp.c - * @brief This file provides code for the MSP Initialization - * and de-Initialization codes. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN TD */ - -/* USER CODE END TD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN Define */ - -/* USER CODE END Define */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN Macro */ - -/* USER CODE END Macro */ - -/* Private variables ---------------------------------------------------------*/ -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* External functions --------------------------------------------------------*/ -/* USER CODE BEGIN ExternalFunctions */ - -/* USER CODE END ExternalFunctions */ - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ -/** - * Initializes the Global MSP. - */ -void HAL_MspInit(void) -{ - - /* USER CODE BEGIN MspInit 0 */ - - /* USER CODE END MspInit 0 */ - - __HAL_RCC_SYSCFG_CLK_ENABLE(); - __HAL_RCC_PWR_CLK_ENABLE(); - - /* System interrupt init*/ - - /* USER CODE BEGIN MspInit 1 */ - - /* USER CODE END MspInit 1 */ -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_hal_msp.c + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bsp/mcu/Src/stm32l4xx_it.c b/eps/v1/firmware/bsp/mcu/Src/stm32l4xx_it.c similarity index 96% rename from eps/firmware/bsp/mcu/Src/stm32l4xx_it.c rename to eps/v1/firmware/bsp/mcu/Src/stm32l4xx_it.c index b186e16..a58fa68 100644 --- a/eps/firmware/bsp/mcu/Src/stm32l4xx_it.c +++ b/eps/v1/firmware/bsp/mcu/Src/stm32l4xx_it.c @@ -1,457 +1,457 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file stm32l4xx_it.c - * @brief Interrupt Service Routines. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32l4xx_it.h" -#include "hal_i2c.h" -#include "hal_uart.h" -#include "hal_can.h" -#include "i2c.h" -#include "main.h" -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ -/* USER CODE END Includes */ - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN TD */ - -/* USER CODE END TD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN PD */ - -/* USER CODE END PD */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN PM */ - -/* USER CODE END PM */ - -/* Private variables ---------------------------------------------------------*/ -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* Private user code ---------------------------------------------------------*/ -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/* External variables --------------------------------------------------------*/ -extern DMA_HandleTypeDef hdma_usart1_rx; -extern DMA_HandleTypeDef hdma_usart3_rx; -extern DMA_HandleTypeDef hdma_adc2; -extern ADC_HandleTypeDef hadc2; -/* USER CODE BEGIN EV */ - -/* USER CODE END EV */ - -/******************************************************************************/ -/* Cortex-M4 Processor Interruption and Exception Handlers */ -/******************************************************************************/ -/** - * @brief This function handles Non maskable interrupt. - */ -void NMI_Handler(void) { - /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ - - /* USER CODE END NonMaskableInt_IRQn 0 */ - /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ - while (1) { - } - /* USER CODE END NonMaskableInt_IRQn 1 */ -} - -/** - * @brief This function handles Hard fault interrupt. - */ -void HardFault_Handler(void) { - /* USER CODE BEGIN HardFault_IRQn 0 */ - - /* USER CODE END HardFault_IRQn 0 */ - while (1) { - /* USER CODE BEGIN W1_HardFault_IRQn 0 */ - /* USER CODE END W1_HardFault_IRQn 0 */ - } -} - -/** - * @brief This function handles Memory management fault. - */ -void MemManage_Handler(void) { - /* USER CODE BEGIN MemoryManagement_IRQn 0 */ - - /* USER CODE END MemoryManagement_IRQn 0 */ - while (1) { - /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ - /* USER CODE END W1_MemoryManagement_IRQn 0 */ - } -} - -/** - * @brief This function handles Prefetch fault, memory access fault. - */ -void BusFault_Handler(void) { - /* USER CODE BEGIN BusFault_IRQn 0 */ - - /* USER CODE END BusFault_IRQn 0 */ - while (1) { - /* USER CODE BEGIN W1_BusFault_IRQn 0 */ - /* USER CODE END W1_BusFault_IRQn 0 */ - } -} - -/** - * @brief This function handles Undefined instruction or illegal state. - */ -void UsageFault_Handler(void) { - /* USER CODE BEGIN UsageFault_IRQn 0 */ - - /* USER CODE END UsageFault_IRQn 0 */ - while (1) { - /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ - /* USER CODE END W1_UsageFault_IRQn 0 */ - } -} - -/** - * @brief This function handles System service call via SWI instruction. - */ -void SVC_Handler(void) { - /* USER CODE BEGIN SVCall_IRQn 0 */ - - /* USER CODE END SVCall_IRQn 0 */ - /* USER CODE BEGIN SVCall_IRQn 1 */ - - /* USER CODE END SVCall_IRQn 1 */ -} - -/** - * @brief This function handles Debug monitor. - */ -void DebugMon_Handler(void) { - /* USER CODE BEGIN DebugMonitor_IRQn 0 */ - - /* USER CODE END DebugMonitor_IRQn 0 */ - /* USER CODE BEGIN DebugMonitor_IRQn 1 */ - - /* USER CODE END DebugMonitor_IRQn 1 */ -} - -/** - * @brief This function handles Pendable request for system service. - */ -void PendSV_Handler(void) { - /* USER CODE BEGIN PendSV_IRQn 0 */ - - /* USER CODE END PendSV_IRQn 0 */ - /* USER CODE BEGIN PendSV_IRQn 1 */ - - /* USER CODE END PendSV_IRQn 1 */ -} - -/** - * @brief This function handles System tick timer. - */ -volatile uint8_t g_main_tick_flag = 0; -static uint32_t tick_divider = 0; - -void SysTick_Handler(void) { - /* USER CODE BEGIN SysTick_IRQn 0 */ - - /* USER CODE END SysTick_IRQn 0 */ - HAL_IncTick(); - /* USER CODE BEGIN SysTick_IRQn 1 */ - tick_divider++; - if (tick_divider >= 10) { - tick_divider = 0; - g_main_tick_flag = 1; - } - /* USER CODE END SysTick_IRQn 1 */ -} - -/******************************************************************************/ -/* STM32L4xx Peripheral Interrupt Handlers */ -/* Add here the Interrupt Handlers for the used peripherals. */ -/* For the available peripheral interrupt handler names, */ -/* please refer to the startup file (startup_stm32l4xx.s). */ -/******************************************************************************/ - -/* USER CODE BEGIN 1 */ - -/** - * @brief This function handles DMA1 channel3 global interrupt. - */ -void DMA1_Channel3_IRQHandler(void) { - /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */ - - /* USER CODE END DMA1_Channel3_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_usart3_rx); - /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */ - - /* USER CODE END DMA1_Channel3_IRQn 1 */ -} - -/** - * @brief This function handles DMA1 channel5 global interrupt. - */ -void DMA1_Channel5_IRQHandler(void) { - /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */ - - /* USER CODE END DMA1_Channel5_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_usart1_rx); - /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */ - - /* USER CODE END DMA1_Channel5_IRQn 1 */ -} - -/** - * @brief This function handles USART1 global interrupt. - */ -void USART1_IRQHandler(void) { - /* USER CODE BEGIN USART1_IRQn 0 */ - - /* USER CODE END USART1_IRQn 0 */ - hal_uart_isr_handler(UART_PORT_1); - /* USER CODE BEGIN USART1_IRQn 1 */ - - /* USER CODE END USART1_IRQn 1 */ -} - -/** - * @brief This function handles USART2 global interrupt. - */ -void USART2_IRQHandler(void) { - /* USER CODE BEGIN USART2_IRQn 0 */ - - /* USER CODE END USART2_IRQn 0 */ - hal_uart_isr_handler(UART_PORT_2); - /* USER CODE BEGIN USART2_IRQn 1 */ - - /* USER CODE END USART2_IRQn 1 */ -} - -/** - * @brief This function handles USART3 global interrupt. - */ -void USART3_IRQHandler(void) { - /* USER CODE BEGIN USART3_IRQn 0 */ - - /* USER CODE END USART3_IRQn 0 */ - hal_uart_isr_handler(UART_PORT_3); - /* USER CODE BEGIN USART3_IRQn 1 */ - - /* USER CODE END USART3_IRQn 1 */ -} - -/** - * @brief This function handles UART4 global interrupt. - */ -void UART4_IRQHandler(void) { - /* USER CODE BEGIN UART4_IRQn 0 */ - - /* USER CODE END UART4_IRQn 0 */ - hal_uart_isr_handler(UART_PORT_4); - /* USER CODE BEGIN UART4_IRQn 1 */ - - /* USER CODE END UART4_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 event interrupt. - */ -void I2C1_EV_IRQHandler(void) { - /* USER CODE BEGIN I2C1_EV_IRQn 0 */ - - /* USER CODE END I2C1_EV_IRQn 0 */ - hal_i2c_isr_handler(I2C_BUS_1); - - /* USER CODE BEGIN I2C1_EV_IRQn 1 */ - - /* USER CODE END I2C1_EV_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 error interrupt. - */ -void I2C1_ER_IRQHandler(void) { - /* USER CODE BEGIN I2C1_ER_IRQn 0 */ - - /* USER CODE END I2C1_ER_IRQn 0 */ - HAL_I2C_ER_IRQHandler(&hi2c1); - /* USER CODE BEGIN I2C1_ER_IRQn 1 */ - - /* USER CODE END I2C1_ER_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 event interrupt. - */ -void I2C2_EV_IRQHandler(void) { - /* USER CODE BEGIN I2C2_EV_IRQn 0 */ - - /* USER CODE END I2C2_EV_IRQn 0 */ - hal_i2c_isr_handler(I2C_BUS_2); - - /* USER CODE BEGIN I2C2_EV_IRQn 1 */ - - /* USER CODE END I2C2_EV_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 error interrupt. - */ -void I2C2_ER_IRQHandler(void) { - /* USER CODE BEGIN I2C2_ER_IRQn 0 */ - - /* USER CODE END I2C2_ER_IRQn 0 */ - HAL_I2C_ER_IRQHandler(&hi2c2); - /* USER CODE BEGIN I2C2_ER_IRQn 1 */ - - /* USER CODE END I2C2_ER_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 event interrupt. - */ -void I2C3_EV_IRQHandler(void) { - /* USER CODE BEGIN I2C3_EV_IRQn 0 */ - - /* USER CODE END I2C3_EV_IRQn 0 */ - hal_i2c_isr_handler(I2C_BUS_3); - - /* USER CODE BEGIN I2C3_EV_IRQn 1 */ - - /* USER CODE END I2C3_EV_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 error interrupt. - */ -void I2C3_ER_IRQHandler(void) { - /* USER CODE BEGIN I2C3_ER_IRQn 0 */ - - /* USER CODE END I2C3_ER_IRQn 0 */ - HAL_I2C_ER_IRQHandler(&hi2c3); - /* USER CODE BEGIN I2C3_ER_IRQn 1 */ - - /* USER CODE END I2C3_ER_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 event interrupt. - */ -void I2C4_EV_IRQHandler(void) { - /* USER CODE BEGIN I2C4_EV_IRQn 0 */ - - /* USER CODE END I2C4_EV_IRQn 0 */ - hal_i2c_isr_handler(I2C_BUS_4); - - /* USER CODE BEGIN I2C4_EV_IRQn 1 */ - - /* USER CODE END I2C4_EV_IRQn 1 */ -} - -/** - * @brief This function handles I2C1 error interrupt. - */ -void I2C4_ER_IRQHandler(void) { - /* USER CODE BEGIN I2C4_ER_IRQn 0 */ - - /* USER CODE END I2C4_ER_IRQn 0 */ - HAL_I2C_ER_IRQHandler(&hi2c4); - /* USER CODE BEGIN I2C4_ER_IRQn 1 */ - - /* USER CODE END I2C4_ER_IRQn 1 */ -} - -void EXTI0_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); } - -void EXTI1_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1); } - -void EXTI2_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2); } - -void EXTI3_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3); } - -void EXTI4_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4); } - -void EXTI9_5_IRQHandler(void) { - for (uint16_t pin = GPIO_PIN_5; pin <= GPIO_PIN_9; pin <<= 1) { - if (__HAL_GPIO_EXTI_GET_IT(pin)) { - HAL_GPIO_EXTI_IRQHandler(pin); - } - } -} - -void EXTI15_10_IRQHandler(void) { - for (uint16_t pin = GPIO_PIN_10; pin <= GPIO_PIN_15; pin <<= 1) { - if (__HAL_GPIO_EXTI_GET_IT(pin)) { - HAL_GPIO_EXTI_IRQHandler(pin); - } - } -} - -void ADC1_2_IRQHandler(void) { - /* USER CODE BEGIN ADC1_2_IRQn 0 */ - - /* USER CODE END ADC1_2_IRQn 0 */ - HAL_ADC_IRQHandler(&hadc2); - /* USER CODE BEGIN ADC1_2_IRQn 1 */ - - /* USER CODE END ADC1_2_IRQn 1 */ -} - -void CAN1_TX_IRQHandler(void) { - hal_can_isr_handler(HAL_CAN_PORT_1); -} - -void CAN1_RX0_IRQHandler(void) { - hal_can_isr_handler(HAL_CAN_PORT_1); -} - -void CAN1_RX1_IRQHandler(void) { - hal_can_isr_handler(HAL_CAN_PORT_1); -} - -void CAN1_SCE_IRQHandler(void) { - hal_can_isr_handler(HAL_CAN_PORT_1); -} - -void CAN2_TX_IRQHandler(void) { - hal_can_isr_handler(HAL_CAN_PORT_2); -} - -void CAN2_RX0_IRQHandler(void) { - hal_can_isr_handler(HAL_CAN_PORT_2); -} - -void CAN2_RX1_IRQHandler(void) { - hal_can_isr_handler(HAL_CAN_PORT_2); -} - -void CAN2_SCE_IRQHandler(void) { - hal_can_isr_handler(HAL_CAN_PORT_2); -} - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l4xx_it.h" +#include "hal_i2c.h" +#include "hal_uart.h" +#include "hal_can.h" +#include "i2c.h" +#include "main.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ +extern DMA_HandleTypeDef hdma_usart1_rx; +extern DMA_HandleTypeDef hdma_usart3_rx; +extern DMA_HandleTypeDef hdma_adc2; +extern ADC_HandleTypeDef hadc2; +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) { + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + while (1) { + } + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) { + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) { + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) { + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) { + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) { + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) { + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) { + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +volatile uint8_t g_main_tick_flag = 0; +static uint32_t tick_divider = 0; + +void SysTick_Handler(void) { + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + tick_divider++; + if (tick_divider >= 10) { + tick_divider = 0; + g_main_tick_flag = 1; + } + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32L4xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32l4xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/** + * @brief This function handles DMA1 channel3 global interrupt. + */ +void DMA1_Channel3_IRQHandler(void) { + /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */ + + /* USER CODE END DMA1_Channel3_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart3_rx); + /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */ + + /* USER CODE END DMA1_Channel3_IRQn 1 */ +} + +/** + * @brief This function handles DMA1 channel5 global interrupt. + */ +void DMA1_Channel5_IRQHandler(void) { + /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */ + + /* USER CODE END DMA1_Channel5_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart1_rx); + /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */ + + /* USER CODE END DMA1_Channel5_IRQn 1 */ +} + +/** + * @brief This function handles USART1 global interrupt. + */ +void USART1_IRQHandler(void) { + /* USER CODE BEGIN USART1_IRQn 0 */ + + /* USER CODE END USART1_IRQn 0 */ + hal_uart_isr_handler(UART_PORT_1); + /* USER CODE BEGIN USART1_IRQn 1 */ + + /* USER CODE END USART1_IRQn 1 */ +} + +/** + * @brief This function handles USART2 global interrupt. + */ +void USART2_IRQHandler(void) { + /* USER CODE BEGIN USART2_IRQn 0 */ + + /* USER CODE END USART2_IRQn 0 */ + hal_uart_isr_handler(UART_PORT_2); + /* USER CODE BEGIN USART2_IRQn 1 */ + + /* USER CODE END USART2_IRQn 1 */ +} + +/** + * @brief This function handles USART3 global interrupt. + */ +void USART3_IRQHandler(void) { + /* USER CODE BEGIN USART3_IRQn 0 */ + + /* USER CODE END USART3_IRQn 0 */ + hal_uart_isr_handler(UART_PORT_3); + /* USER CODE BEGIN USART3_IRQn 1 */ + + /* USER CODE END USART3_IRQn 1 */ +} + +/** + * @brief This function handles UART4 global interrupt. + */ +void UART4_IRQHandler(void) { + /* USER CODE BEGIN UART4_IRQn 0 */ + + /* USER CODE END UART4_IRQn 0 */ + hal_uart_isr_handler(UART_PORT_4); + /* USER CODE BEGIN UART4_IRQn 1 */ + + /* USER CODE END UART4_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 event interrupt. + */ +void I2C1_EV_IRQHandler(void) { + /* USER CODE BEGIN I2C1_EV_IRQn 0 */ + + /* USER CODE END I2C1_EV_IRQn 0 */ + hal_i2c_isr_handler(I2C_BUS_1); + + /* USER CODE BEGIN I2C1_EV_IRQn 1 */ + + /* USER CODE END I2C1_EV_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 error interrupt. + */ +void I2C1_ER_IRQHandler(void) { + /* USER CODE BEGIN I2C1_ER_IRQn 0 */ + + /* USER CODE END I2C1_ER_IRQn 0 */ + HAL_I2C_ER_IRQHandler(&hi2c1); + /* USER CODE BEGIN I2C1_ER_IRQn 1 */ + + /* USER CODE END I2C1_ER_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 event interrupt. + */ +void I2C2_EV_IRQHandler(void) { + /* USER CODE BEGIN I2C2_EV_IRQn 0 */ + + /* USER CODE END I2C2_EV_IRQn 0 */ + hal_i2c_isr_handler(I2C_BUS_2); + + /* USER CODE BEGIN I2C2_EV_IRQn 1 */ + + /* USER CODE END I2C2_EV_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 error interrupt. + */ +void I2C2_ER_IRQHandler(void) { + /* USER CODE BEGIN I2C2_ER_IRQn 0 */ + + /* USER CODE END I2C2_ER_IRQn 0 */ + HAL_I2C_ER_IRQHandler(&hi2c2); + /* USER CODE BEGIN I2C2_ER_IRQn 1 */ + + /* USER CODE END I2C2_ER_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 event interrupt. + */ +void I2C3_EV_IRQHandler(void) { + /* USER CODE BEGIN I2C3_EV_IRQn 0 */ + + /* USER CODE END I2C3_EV_IRQn 0 */ + hal_i2c_isr_handler(I2C_BUS_3); + + /* USER CODE BEGIN I2C3_EV_IRQn 1 */ + + /* USER CODE END I2C3_EV_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 error interrupt. + */ +void I2C3_ER_IRQHandler(void) { + /* USER CODE BEGIN I2C3_ER_IRQn 0 */ + + /* USER CODE END I2C3_ER_IRQn 0 */ + HAL_I2C_ER_IRQHandler(&hi2c3); + /* USER CODE BEGIN I2C3_ER_IRQn 1 */ + + /* USER CODE END I2C3_ER_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 event interrupt. + */ +void I2C4_EV_IRQHandler(void) { + /* USER CODE BEGIN I2C4_EV_IRQn 0 */ + + /* USER CODE END I2C4_EV_IRQn 0 */ + hal_i2c_isr_handler(I2C_BUS_4); + + /* USER CODE BEGIN I2C4_EV_IRQn 1 */ + + /* USER CODE END I2C4_EV_IRQn 1 */ +} + +/** + * @brief This function handles I2C1 error interrupt. + */ +void I2C4_ER_IRQHandler(void) { + /* USER CODE BEGIN I2C4_ER_IRQn 0 */ + + /* USER CODE END I2C4_ER_IRQn 0 */ + HAL_I2C_ER_IRQHandler(&hi2c4); + /* USER CODE BEGIN I2C4_ER_IRQn 1 */ + + /* USER CODE END I2C4_ER_IRQn 1 */ +} + +void EXTI0_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); } + +void EXTI1_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1); } + +void EXTI2_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2); } + +void EXTI3_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3); } + +void EXTI4_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4); } + +void EXTI9_5_IRQHandler(void) { + for (uint16_t pin = GPIO_PIN_5; pin <= GPIO_PIN_9; pin <<= 1) { + if (__HAL_GPIO_EXTI_GET_IT(pin)) { + HAL_GPIO_EXTI_IRQHandler(pin); + } + } +} + +void EXTI15_10_IRQHandler(void) { + for (uint16_t pin = GPIO_PIN_10; pin <= GPIO_PIN_15; pin <<= 1) { + if (__HAL_GPIO_EXTI_GET_IT(pin)) { + HAL_GPIO_EXTI_IRQHandler(pin); + } + } +} + +void ADC1_2_IRQHandler(void) { + /* USER CODE BEGIN ADC1_2_IRQn 0 */ + + /* USER CODE END ADC1_2_IRQn 0 */ + HAL_ADC_IRQHandler(&hadc2); + /* USER CODE BEGIN ADC1_2_IRQn 1 */ + + /* USER CODE END ADC1_2_IRQn 1 */ +} + +void CAN1_TX_IRQHandler(void) { + hal_can_isr_handler(HAL_CAN_PORT_1); +} + +void CAN1_RX0_IRQHandler(void) { + hal_can_isr_handler(HAL_CAN_PORT_1); +} + +void CAN1_RX1_IRQHandler(void) { + hal_can_isr_handler(HAL_CAN_PORT_1); +} + +void CAN1_SCE_IRQHandler(void) { + hal_can_isr_handler(HAL_CAN_PORT_1); +} + +void CAN2_TX_IRQHandler(void) { + hal_can_isr_handler(HAL_CAN_PORT_2); +} + +void CAN2_RX0_IRQHandler(void) { + hal_can_isr_handler(HAL_CAN_PORT_2); +} + +void CAN2_RX1_IRQHandler(void) { + hal_can_isr_handler(HAL_CAN_PORT_2); +} + +void CAN2_SCE_IRQHandler(void) { + hal_can_isr_handler(HAL_CAN_PORT_2); +} + +/* USER CODE END 1 */ diff --git a/eps/firmware/bsp/mcu/Src/syscalls.c b/eps/v1/firmware/bsp/mcu/Src/syscalls.c similarity index 100% rename from eps/firmware/bsp/mcu/Src/syscalls.c rename to eps/v1/firmware/bsp/mcu/Src/syscalls.c diff --git a/eps/firmware/bsp/mcu/Src/sysmem.c b/eps/v1/firmware/bsp/mcu/Src/sysmem.c similarity index 100% rename from eps/firmware/bsp/mcu/Src/sysmem.c rename to eps/v1/firmware/bsp/mcu/Src/sysmem.c diff --git a/eps/firmware/bsp/mcu/Src/tim.c b/eps/v1/firmware/bsp/mcu/Src/tim.c similarity index 96% rename from eps/firmware/bsp/mcu/Src/tim.c rename to eps/v1/firmware/bsp/mcu/Src/tim.c index 58bdfc8..1a34f83 100644 --- a/eps/firmware/bsp/mcu/Src/tim.c +++ b/eps/v1/firmware/bsp/mcu/Src/tim.c @@ -1,106 +1,106 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file tim.c - * @brief This file provides code for the configuration - * of the TIM instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "tim.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -TIM_HandleTypeDef htim1; - -/* TIM1 init function */ -void MX_TIM1_Init(void) -{ - - /* USER CODE BEGIN TIM1_Init 0 */ - - /* USER CODE END TIM1_Init 0 */ - - TIM_ClockConfigTypeDef sClockSourceConfig = {0}; - TIM_MasterConfigTypeDef sMasterConfig = {0}; - - /* USER CODE BEGIN TIM1_Init 1 */ - - /* USER CODE END TIM1_Init 1 */ - htim1.Instance = TIM1; - htim1.Init.Prescaler = 7999; - htim1.Init.CounterMode = TIM_COUNTERMODE_UP; - htim1.Init.Period = 999; - htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; - htim1.Init.RepetitionCounter = 0; - htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - if (HAL_TIM_Base_Init(&htim1) != HAL_OK) - { - Error_Handler(); - } - sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; - if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) - { - Error_Handler(); - } - sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; - sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET; - sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; - if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN TIM1_Init 2 */ - - /* USER CODE END TIM1_Init 2 */ - -} - -void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) -{ - - if(tim_baseHandle->Instance==TIM1) - { - /* USER CODE BEGIN TIM1_MspInit 0 */ - - /* USER CODE END TIM1_MspInit 0 */ - /* TIM1 clock enable */ - __HAL_RCC_TIM1_CLK_ENABLE(); - /* USER CODE BEGIN TIM1_MspInit 1 */ - - /* USER CODE END TIM1_MspInit 1 */ - } -} - -void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) -{ - - if(tim_baseHandle->Instance==TIM1) - { - /* USER CODE BEGIN TIM1_MspDeInit 0 */ - - /* USER CODE END TIM1_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM1_CLK_DISABLE(); - /* USER CODE BEGIN TIM1_MspDeInit 1 */ - - /* USER CODE END TIM1_MspDeInit 1 */ - } -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file tim.c + * @brief This file provides code for the configuration + * of the TIM instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "tim.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +TIM_HandleTypeDef htim1; + +/* TIM1 init function */ +void MX_TIM1_Init(void) +{ + + /* USER CODE BEGIN TIM1_Init 0 */ + + /* USER CODE END TIM1_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + + /* USER CODE BEGIN TIM1_Init 1 */ + + /* USER CODE END TIM1_Init 1 */ + htim1.Instance = TIM1; + htim1.Init.Prescaler = 7999; + htim1.Init.CounterMode = TIM_COUNTERMODE_UP; + htim1.Init.Period = 999; + htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim1.Init.RepetitionCounter = 0; + htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim1) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; + sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM1_Init 2 */ + + /* USER CODE END TIM1_Init 2 */ + +} + +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) +{ + + if(tim_baseHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspInit 0 */ + + /* USER CODE END TIM1_MspInit 0 */ + /* TIM1 clock enable */ + __HAL_RCC_TIM1_CLK_ENABLE(); + /* USER CODE BEGIN TIM1_MspInit 1 */ + + /* USER CODE END TIM1_MspInit 1 */ + } +} + +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) +{ + + if(tim_baseHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspDeInit 0 */ + + /* USER CODE END TIM1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM1_CLK_DISABLE(); + /* USER CODE BEGIN TIM1_MspDeInit 1 */ + + /* USER CODE END TIM1_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bootstrap/Core/Src/usart.c b/eps/v1/firmware/bsp/mcu/Src/usart.c similarity index 96% rename from eps/firmware/bootstrap/Core/Src/usart.c rename to eps/v1/firmware/bsp/mcu/Src/usart.c index 3b74441..9e789ef 100644 --- a/eps/firmware/bootstrap/Core/Src/usart.c +++ b/eps/v1/firmware/bsp/mcu/Src/usart.c @@ -1,254 +1,254 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file usart.c - * @brief This file provides code for the configuration - * of the USART instances. - ****************************************************************************** - * @attention - * - * Copyright (c) 2026 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "usart.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -UART_HandleTypeDef huart1; -UART_HandleTypeDef huart3; -DMA_HandleTypeDef hdma_usart1_rx; -DMA_HandleTypeDef hdma_usart3_rx; - -/* USART1 init function */ - -void MX_USART1_UART_Init(void) -{ - - /* USER CODE BEGIN USART1_Init 0 */ - - /* USER CODE END USART1_Init 0 */ - - /* USER CODE BEGIN USART1_Init 1 */ - - /* USER CODE END USART1_Init 1 */ - huart1.Instance = USART1; - huart1.Init.BaudRate = 115200; - huart1.Init.WordLength = UART_WORDLENGTH_8B; - huart1.Init.StopBits = UART_STOPBITS_1; - huart1.Init.Parity = UART_PARITY_NONE; - huart1.Init.Mode = UART_MODE_TX_RX; - huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart1.Init.OverSampling = UART_OVERSAMPLING_16; - huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - if (HAL_UART_Init(&huart1) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN USART1_Init 2 */ - - /* USER CODE END USART1_Init 2 */ - -} -/* USART3 init function */ - -void MX_USART3_UART_Init(void) -{ - - /* USER CODE BEGIN USART3_Init 0 */ - - /* USER CODE END USART3_Init 0 */ - - /* USER CODE BEGIN USART3_Init 1 */ - - /* USER CODE END USART3_Init 1 */ - huart3.Instance = USART3; - huart3.Init.BaudRate = 115200; - huart3.Init.WordLength = UART_WORDLENGTH_8B; - huart3.Init.StopBits = UART_STOPBITS_1; - huart3.Init.Parity = UART_PARITY_NONE; - huart3.Init.Mode = UART_MODE_TX_RX; - huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart3.Init.OverSampling = UART_OVERSAMPLING_16; - huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - if (HAL_UART_Init(&huart3) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN USART3_Init 2 */ - - /* USER CODE END USART3_Init 2 */ - -} - -void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) -{ - - GPIO_InitTypeDef GPIO_InitStruct = {0}; - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - if(uartHandle->Instance==USART1) - { - /* USER CODE BEGIN USART1_MspInit 0 */ - - /* USER CODE END USART1_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1; - PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - /* USART1 clock enable */ - __HAL_RCC_USART1_CLK_ENABLE(); - - __HAL_RCC_GPIOG_CLK_ENABLE(); - HAL_PWREx_EnableVddIO2(); - /**USART1 GPIO Configuration - PG9 ------> USART1_TX - PG10 ------> USART1_RX - */ - GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF7_USART1; - HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - - /* USART1 DMA Init */ - /* USART1_RX Init */ - hdma_usart1_rx.Instance = DMA1_Channel5; - hdma_usart1_rx.Init.Request = DMA_REQUEST_2; - hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; - hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE; - hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - hdma_usart1_rx.Init.Mode = DMA_CIRCULAR; - hdma_usart1_rx.Init.Priority = DMA_PRIORITY_HIGH; - if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK) - { - Error_Handler(); - } - - __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart1_rx); - - /* USER CODE BEGIN USART1_MspInit 1 */ - - /* USER CODE END USART1_MspInit 1 */ - } - else if(uartHandle->Instance==USART3) - { - /* USER CODE BEGIN USART3_MspInit 0 */ - - /* USER CODE END USART3_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART3; - PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - /* USART3 clock enable */ - __HAL_RCC_USART3_CLK_ENABLE(); - - __HAL_RCC_GPIOC_CLK_ENABLE(); - /**USART3 GPIO Configuration - PC4 ------> USART3_TX - PC5 ------> USART3_RX - */ - GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF7_USART3; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - - /* USART3 DMA Init */ - /* USART3_RX Init */ - hdma_usart3_rx.Instance = DMA1_Channel3; - hdma_usart3_rx.Init.Request = DMA_REQUEST_2; - hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; - hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE; - hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - hdma_usart3_rx.Init.Mode = DMA_CIRCULAR; - hdma_usart3_rx.Init.Priority = DMA_PRIORITY_HIGH; - if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK) - { - Error_Handler(); - } - - __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart3_rx); - - /* USER CODE BEGIN USART3_MspInit 1 */ - - /* USER CODE END USART3_MspInit 1 */ - } -} - -void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) -{ - - if(uartHandle->Instance==USART1) - { - /* USER CODE BEGIN USART1_MspDeInit 0 */ - - /* USER CODE END USART1_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_USART1_CLK_DISABLE(); - - /**USART1 GPIO Configuration - PG9 ------> USART1_TX - PG10 ------> USART1_RX - */ - HAL_GPIO_DeInit(GPIOG, GPIO_PIN_9|GPIO_PIN_10); - - /* USART1 DMA DeInit */ - HAL_DMA_DeInit(uartHandle->hdmarx); - /* USER CODE BEGIN USART1_MspDeInit 1 */ - - /* USER CODE END USART1_MspDeInit 1 */ - } - else if(uartHandle->Instance==USART3) - { - /* USER CODE BEGIN USART3_MspDeInit 0 */ - - /* USER CODE END USART3_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_USART3_CLK_DISABLE(); - - /**USART3 GPIO Configuration - PC4 ------> USART3_TX - PC5 ------> USART3_RX - */ - HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5); - - /* USART3 DMA DeInit */ - HAL_DMA_DeInit(uartHandle->hdmarx); - /* USER CODE BEGIN USART3_MspDeInit 1 */ - - /* USER CODE END USART3_MspDeInit 1 */ - } -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file usart.c + * @brief This file provides code for the configuration + * of the USART instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "usart.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +UART_HandleTypeDef huart1; +UART_HandleTypeDef huart3; +DMA_HandleTypeDef hdma_usart1_rx; +DMA_HandleTypeDef hdma_usart3_rx; + +/* USART1 init function */ + +void MX_USART1_UART_Init(void) +{ + + /* USER CODE BEGIN USART1_Init 0 */ + + /* USER CODE END USART1_Init 0 */ + + /* USER CODE BEGIN USART1_Init 1 */ + + /* USER CODE END USART1_Init 1 */ + huart1.Instance = USART1; + huart1.Init.BaudRate = 115200; + huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.StopBits = UART_STOPBITS_1; + huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Mode = UART_MODE_TX_RX; + huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart1.Init.OverSampling = UART_OVERSAMPLING_16; + huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART1_Init 2 */ + + /* USER CODE END USART1_Init 2 */ + +} +/* USART3 init function */ + +void MX_USART3_UART_Init(void) +{ + + /* USER CODE BEGIN USART3_Init 0 */ + + /* USER CODE END USART3_Init 0 */ + + /* USER CODE BEGIN USART3_Init 1 */ + + /* USER CODE END USART3_Init 1 */ + huart3.Instance = USART3; + huart3.Init.BaudRate = 115200; + huart3.Init.WordLength = UART_WORDLENGTH_8B; + huart3.Init.StopBits = UART_STOPBITS_1; + huart3.Init.Parity = UART_PARITY_NONE; + huart3.Init.Mode = UART_MODE_TX_RX; + huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart3.Init.OverSampling = UART_OVERSAMPLING_16; + huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart3) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART3_Init 2 */ + + /* USER CODE END USART3_Init 2 */ + +} + +void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(uartHandle->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspInit 0 */ + + /* USER CODE END USART1_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1; + PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* USART1 clock enable */ + __HAL_RCC_USART1_CLK_ENABLE(); + + __HAL_RCC_GPIOG_CLK_ENABLE(); + HAL_PWREx_EnableVddIO2(); + /**USART1 GPIO Configuration + PG9 ------> USART1_TX + PG10 ------> USART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + + /* USART1 DMA Init */ + /* USART1_RX Init */ + hdma_usart1_rx.Instance = DMA1_Channel5; + hdma_usart1_rx.Init.Request = DMA_REQUEST_2; + hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_usart1_rx.Init.Mode = DMA_CIRCULAR; + hdma_usart1_rx.Init.Priority = DMA_PRIORITY_HIGH; + if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart1_rx); + + /* USER CODE BEGIN USART1_MspInit 1 */ + + /* USER CODE END USART1_MspInit 1 */ + } + else if(uartHandle->Instance==USART3) + { + /* USER CODE BEGIN USART3_MspInit 0 */ + + /* USER CODE END USART3_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART3; + PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* USART3 clock enable */ + __HAL_RCC_USART3_CLK_ENABLE(); + + __HAL_RCC_GPIOC_CLK_ENABLE(); + /**USART3 GPIO Configuration + PC4 ------> USART3_TX + PC5 ------> USART3_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART3; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + /* USART3 DMA Init */ + /* USART3_RX Init */ + hdma_usart3_rx.Instance = DMA1_Channel3; + hdma_usart3_rx.Init.Request = DMA_REQUEST_2; + hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_usart3_rx.Init.Mode = DMA_CIRCULAR; + hdma_usart3_rx.Init.Priority = DMA_PRIORITY_HIGH; + if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart3_rx); + + /* USER CODE BEGIN USART3_MspInit 1 */ + + /* USER CODE END USART3_MspInit 1 */ + } +} + +void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) +{ + + if(uartHandle->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspDeInit 0 */ + + /* USER CODE END USART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART1_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PG9 ------> USART1_TX + PG10 ------> USART1_RX + */ + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_9|GPIO_PIN_10); + + /* USART1 DMA DeInit */ + HAL_DMA_DeInit(uartHandle->hdmarx); + /* USER CODE BEGIN USART1_MspDeInit 1 */ + + /* USER CODE END USART1_MspDeInit 1 */ + } + else if(uartHandle->Instance==USART3) + { + /* USER CODE BEGIN USART3_MspDeInit 0 */ + + /* USER CODE END USART3_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART3_CLK_DISABLE(); + + /**USART3 GPIO Configuration + PC4 ------> USART3_TX + PC5 ------> USART3_RX + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5); + + /* USART3 DMA DeInit */ + HAL_DMA_DeInit(uartHandle->hdmarx); + /* USER CODE BEGIN USART3_MspDeInit 1 */ + + /* USER CODE END USART3_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/eps/firmware/bootstrap/STM32L496XX_FLASH.ld b/eps/v1/firmware/bsp/startup/STM32L496XX_FLASH.ld similarity index 96% rename from eps/firmware/bootstrap/STM32L496XX_FLASH.ld rename to eps/v1/firmware/bsp/startup/STM32L496XX_FLASH.ld index 169116a..21368c8 100644 --- a/eps/firmware/bootstrap/STM32L496XX_FLASH.ld +++ b/eps/v1/firmware/bsp/startup/STM32L496XX_FLASH.ld @@ -1,208 +1,208 @@ -/* -****************************************************************************** -** - -** File : LinkerScript.ld -** -** Author : STM32CubeMX -** -** Abstract : Linker script for STM32L496ZGTx series -** 1024Kbytes FLASH and 320Kbytes RAM -** -** Set heap size, stack size and stack location according -** to application requirements. -** -** Set memory bank area and size if external memory is used. -** -** Target : STMicroelectronics STM32 -** Distribution: The file is distributed “as is,” without any warranty -** of any kind. -** -***************************************************************************** -** @attention -** -**

© COPYRIGHT(c) 2025 STMicroelectronics

-** -** Redistribution and use in source and binary forms, with or without modification, -** are permitted provided that the following conditions are met: -** 1. Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** 2. Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** 3. Neither the name of STMicroelectronics nor the names of its contributors -** may 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. -** -***************************************************************************** -*/ - -/* Entry Point */ -ENTRY(Reset_Handler) - -/* Highest address of the user mode stack */ -_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ -/* Generate a link error if heap and stack don't fit into RAM */ -_Min_Heap_Size = 0x200; /* required amount of heap */ -_Min_Stack_Size = 0x400; /* required amount of stack */ - -/* Specify the memory areas */ -MEMORY -{ -RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 256K -RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 64K -FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K -} - -/* Define output sections */ -SECTIONS -{ - /* The startup code goes first into FLASH */ - .isr_vector : - { - . = ALIGN(8); - KEEP(*(.isr_vector)) /* Startup code */ - . = ALIGN(8); - } >FLASH - - /* The program code and other data goes into FLASH */ - .text : - { - . = ALIGN(8); - *(.text) /* .text sections (code) */ - *(.text*) /* .text* sections (code) */ - *(.glue_7) /* glue arm to thumb code */ - *(.glue_7t) /* glue thumb to arm code */ - *(.eh_frame) - - KEEP (*(.init)) - KEEP (*(.fini)) - - . = ALIGN(8); - _etext = .; /* define a global symbols at end of code */ - } >FLASH - - /* Constant data goes into FLASH */ - .rodata : - { - . = ALIGN(8); - *(.rodata) /* .rodata sections (constants, strings, etc.) */ - *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ - . = ALIGN(8); - } >FLASH - - .ARM.extab (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - { - . = ALIGN(8); - *(.ARM.extab* .gnu.linkonce.armextab.*) - . = ALIGN(8); - } >FLASH - - .ARM (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - { - . = ALIGN(8); - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - . = ALIGN(8); - } >FLASH - - .preinit_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - { - . = ALIGN(8); - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array*)) - PROVIDE_HIDDEN (__preinit_array_end = .); - . = ALIGN(8); - } >FLASH - - .init_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - { - . = ALIGN(8); - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT(.init_array.*))) - KEEP (*(.init_array*)) - PROVIDE_HIDDEN (__init_array_end = .); - . = ALIGN(8); - } >FLASH - - .fini_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ - - { - . = ALIGN(8); - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP (*(SORT(.fini_array.*))) - KEEP (*(.fini_array*)) - PROVIDE_HIDDEN (__fini_array_end = .); - . = ALIGN(8); - } >FLASH - - /* used by the startup to initialize data */ - _sidata = LOADADDR(.data); - - /* Initialized data sections goes into RAM, load LMA copy after code */ - .data : - { - . = ALIGN(8); - _sdata = .; /* create a global symbol at data start */ - *(.data) /* .data sections */ - *(.data*) /* .data* sections */ - *(.RamFunc) /* .RamFunc sections */ - *(.RamFunc*) /* .RamFunc* sections */ - - . = ALIGN(8); - _edata = .; /* define a global symbol at data end */ - } >RAM AT> FLASH - - - /* Uninitialized data section */ - . = ALIGN(4); - .bss : - { - /* This is used by the startup in order to initialize the .bss secion */ - _sbss = .; /* define a global symbol at bss start */ - __bss_start__ = _sbss; - *(.bss) - *(.bss*) - *(COMMON) - - . = ALIGN(4); - _ebss = .; /* define a global symbol at bss end */ - __bss_end__ = _ebss; - } >RAM - - /* User_heap_stack section, used to check that there is enough RAM left */ - ._user_heap_stack : - { - . = ALIGN(8); - PROVIDE ( end = . ); - PROVIDE ( _end = . ); - . = . + _Min_Heap_Size; - . = . + _Min_Stack_Size; - . = ALIGN(8); - } >RAM - - - - /* Remove information from the standard libraries */ - /DISCARD/ : - { - libc.a ( * ) - libm.a ( * ) - libgcc.a ( * ) - } - -} - - +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : STM32CubeMX +** +** Abstract : Linker script for STM32L496ZGTx series +** 1024Kbytes FLASH and 320Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2025 STMicroelectronics

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of STMicroelectronics nor the names of its contributors +** may 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. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x200; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ +RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 256K +RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 64K +FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(8); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(8); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(8); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(8); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data goes into FLASH */ + .rodata : + { + . = ALIGN(8); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(8); + } >FLASH + + .ARM.extab (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(8); + *(.ARM.extab* .gnu.linkonce.armextab.*) + . = ALIGN(8); + } >FLASH + + .ARM (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(8); + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + . = ALIGN(8); + } >FLASH + + .preinit_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(8); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(8); + } >FLASH + + .init_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(8); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(8); + } >FLASH + + .fini_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + + { + . = ALIGN(8); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(8); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(8); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + *(.RamFunc) /* .RamFunc sections */ + *(.RamFunc*) /* .RamFunc* sections */ + + . = ALIGN(8); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + +} + + diff --git a/eps/firmware/bsp/startup/startup_stm32l496xx.s b/eps/v1/firmware/bsp/startup/startup_stm32l496xx.s similarity index 100% rename from eps/firmware/bsp/startup/startup_stm32l496xx.s rename to eps/v1/firmware/bsp/startup/startup_stm32l496xx.s diff --git a/eps/firmware/bsp/startup/system_stm32l4xx.c b/eps/v1/firmware/bsp/startup/system_stm32l4xx.c similarity index 100% rename from eps/firmware/bsp/startup/system_stm32l4xx.c rename to eps/v1/firmware/bsp/startup/system_stm32l4xx.c diff --git a/eps/firmware/bsp/system/clock.c b/eps/v1/firmware/bsp/system/clock.c similarity index 100% rename from eps/firmware/bsp/system/clock.c rename to eps/v1/firmware/bsp/system/clock.c diff --git a/eps/firmware/bsp/system/clock.h b/eps/v1/firmware/bsp/system/clock.h similarity index 100% rename from eps/firmware/bsp/system/clock.h rename to eps/v1/firmware/bsp/system/clock.h diff --git a/eps/firmware/bsp/system/dma.c b/eps/v1/firmware/bsp/system/dma.c similarity index 100% rename from eps/firmware/bsp/system/dma.c rename to eps/v1/firmware/bsp/system/dma.c diff --git a/eps/firmware/bsp/system/dma.h b/eps/v1/firmware/bsp/system/dma.h similarity index 100% rename from eps/firmware/bsp/system/dma.h rename to eps/v1/firmware/bsp/system/dma.h diff --git a/eps/firmware/bsp/system/error.c b/eps/v1/firmware/bsp/system/error.c similarity index 100% rename from eps/firmware/bsp/system/error.c rename to eps/v1/firmware/bsp/system/error.c diff --git a/eps/firmware/bsp/system/error.h b/eps/v1/firmware/bsp/system/error.h similarity index 100% rename from eps/firmware/bsp/system/error.h rename to eps/v1/firmware/bsp/system/error.h diff --git a/eps/firmware/config/eps_config.h b/eps/v1/firmware/config/eps_config.h similarity index 100% rename from eps/firmware/config/eps_config.h rename to eps/v1/firmware/config/eps_config.h diff --git a/eps/firmware/config/eps_power_profiles.h b/eps/v1/firmware/config/eps_power_profiles.h similarity index 100% rename from eps/firmware/config/eps_power_profiles.h rename to eps/v1/firmware/config/eps_power_profiles.h diff --git a/eps/firmware/flash_and_print_logs_sync.py b/eps/v1/firmware/flash_and_print_logs_sync.py similarity index 100% rename from eps/firmware/flash_and_print_logs_sync.py rename to eps/v1/firmware/flash_and_print_logs_sync.py diff --git a/eps/firmware/gdb_print_logs.py b/eps/v1/firmware/gdb_print_logs.py similarity index 100% rename from eps/firmware/gdb_print_logs.py rename to eps/v1/firmware/gdb_print_logs.py diff --git a/eps/firmware/hal/hal_adc.c b/eps/v1/firmware/hal/hal_adc.c similarity index 100% rename from eps/firmware/hal/hal_adc.c rename to eps/v1/firmware/hal/hal_adc.c diff --git a/eps/firmware/hal/hal_adc.h b/eps/v1/firmware/hal/hal_adc.h similarity index 100% rename from eps/firmware/hal/hal_adc.h rename to eps/v1/firmware/hal/hal_adc.h diff --git a/eps/firmware/hal/hal_can.c b/eps/v1/firmware/hal/hal_can.c similarity index 100% rename from eps/firmware/hal/hal_can.c rename to eps/v1/firmware/hal/hal_can.c diff --git a/eps/firmware/hal/hal_can.h b/eps/v1/firmware/hal/hal_can.h similarity index 100% rename from eps/firmware/hal/hal_can.h rename to eps/v1/firmware/hal/hal_can.h diff --git a/eps/firmware/hal/hal_flash.c b/eps/v1/firmware/hal/hal_flash.c similarity index 100% rename from eps/firmware/hal/hal_flash.c rename to eps/v1/firmware/hal/hal_flash.c diff --git a/eps/firmware/hal/hal_flash.h b/eps/v1/firmware/hal/hal_flash.h similarity index 100% rename from eps/firmware/hal/hal_flash.h rename to eps/v1/firmware/hal/hal_flash.h diff --git a/eps/firmware/hal/hal_gpio.c b/eps/v1/firmware/hal/hal_gpio.c similarity index 100% rename from eps/firmware/hal/hal_gpio.c rename to eps/v1/firmware/hal/hal_gpio.c diff --git a/eps/firmware/hal/hal_gpio.h b/eps/v1/firmware/hal/hal_gpio.h similarity index 100% rename from eps/firmware/hal/hal_gpio.h rename to eps/v1/firmware/hal/hal_gpio.h diff --git a/eps/firmware/hal/hal_gpio_types.h b/eps/v1/firmware/hal/hal_gpio_types.h similarity index 100% rename from eps/firmware/hal/hal_gpio_types.h rename to eps/v1/firmware/hal/hal_gpio_types.h diff --git a/eps/firmware/hal/hal_i2c.c b/eps/v1/firmware/hal/hal_i2c.c similarity index 100% rename from eps/firmware/hal/hal_i2c.c rename to eps/v1/firmware/hal/hal_i2c.c diff --git a/eps/firmware/hal/hal_i2c.h b/eps/v1/firmware/hal/hal_i2c.h similarity index 100% rename from eps/firmware/hal/hal_i2c.h rename to eps/v1/firmware/hal/hal_i2c.h diff --git a/eps/firmware/hal/hal_time.c b/eps/v1/firmware/hal/hal_time.c similarity index 100% rename from eps/firmware/hal/hal_time.c rename to eps/v1/firmware/hal/hal_time.c diff --git a/eps/firmware/hal/hal_time.h b/eps/v1/firmware/hal/hal_time.h similarity index 100% rename from eps/firmware/hal/hal_time.h rename to eps/v1/firmware/hal/hal_time.h diff --git a/eps/firmware/hal/hal_uart.c b/eps/v1/firmware/hal/hal_uart.c similarity index 100% rename from eps/firmware/hal/hal_uart.c rename to eps/v1/firmware/hal/hal_uart.c diff --git a/eps/firmware/hal/hal_uart.h b/eps/v1/firmware/hal/hal_uart.h similarity index 100% rename from eps/firmware/hal/hal_uart.h rename to eps/v1/firmware/hal/hal_uart.h diff --git a/eps/firmware/hitl/test_harness.c b/eps/v1/firmware/hitl/test_harness.c similarity index 100% rename from eps/firmware/hitl/test_harness.c rename to eps/v1/firmware/hitl/test_harness.c diff --git a/eps/firmware/hitl/test_harness.h b/eps/v1/firmware/hitl/test_harness.h similarity index 100% rename from eps/firmware/hitl/test_harness.h rename to eps/v1/firmware/hitl/test_harness.h diff --git a/eps/firmware/lib/core b/eps/v1/firmware/lib/core similarity index 100% rename from eps/firmware/lib/core rename to eps/v1/firmware/lib/core diff --git a/eps/firmware/lib/messaging b/eps/v1/firmware/lib/messaging similarity index 100% rename from eps/firmware/lib/messaging rename to eps/v1/firmware/lib/messaging diff --git a/eps/firmware/main.c b/eps/v1/firmware/main.c similarity index 100% rename from eps/firmware/main.c rename to eps/v1/firmware/main.c diff --git a/eps/firmware/mocks/bsp/adc.h b/eps/v1/firmware/mocks/bsp/adc.h similarity index 100% rename from eps/firmware/mocks/bsp/adc.h rename to eps/v1/firmware/mocks/bsp/adc.h diff --git a/eps/firmware/mocks/bsp/clock.h b/eps/v1/firmware/mocks/bsp/clock.h similarity index 100% rename from eps/firmware/mocks/bsp/clock.h rename to eps/v1/firmware/mocks/bsp/clock.h diff --git a/eps/firmware/mocks/bsp/clock_mock.c b/eps/v1/firmware/mocks/bsp/clock_mock.c similarity index 100% rename from eps/firmware/mocks/bsp/clock_mock.c rename to eps/v1/firmware/mocks/bsp/clock_mock.c diff --git a/eps/firmware/mocks/bsp/dma.h b/eps/v1/firmware/mocks/bsp/dma.h similarity index 100% rename from eps/firmware/mocks/bsp/dma.h rename to eps/v1/firmware/mocks/bsp/dma.h diff --git a/eps/firmware/mocks/bsp/gpio.h b/eps/v1/firmware/mocks/bsp/gpio.h similarity index 100% rename from eps/firmware/mocks/bsp/gpio.h rename to eps/v1/firmware/mocks/bsp/gpio.h diff --git a/eps/firmware/mocks/bsp/hal_stubs.c b/eps/v1/firmware/mocks/bsp/hal_stubs.c similarity index 100% rename from eps/firmware/mocks/bsp/hal_stubs.c rename to eps/v1/firmware/mocks/bsp/hal_stubs.c diff --git a/eps/firmware/mocks/bsp/i2c.h b/eps/v1/firmware/mocks/bsp/i2c.h similarity index 100% rename from eps/firmware/mocks/bsp/i2c.h rename to eps/v1/firmware/mocks/bsp/i2c.h diff --git a/eps/firmware/mocks/bsp/iwdg.h b/eps/v1/firmware/mocks/bsp/iwdg.h similarity index 100% rename from eps/firmware/mocks/bsp/iwdg.h rename to eps/v1/firmware/mocks/bsp/iwdg.h diff --git a/eps/firmware/mocks/bsp/stm32l4xx_hal.h b/eps/v1/firmware/mocks/bsp/stm32l4xx_hal.h similarity index 100% rename from eps/firmware/mocks/bsp/stm32l4xx_hal.h rename to eps/v1/firmware/mocks/bsp/stm32l4xx_hal.h diff --git a/eps/firmware/mocks/bsp/stm32l4xx_hal_gpio.h b/eps/v1/firmware/mocks/bsp/stm32l4xx_hal_gpio.h similarity index 100% rename from eps/firmware/mocks/bsp/stm32l4xx_hal_gpio.h rename to eps/v1/firmware/mocks/bsp/stm32l4xx_hal_gpio.h diff --git a/eps/firmware/mocks/bsp/stm32l4xx_hal_rcc.h b/eps/v1/firmware/mocks/bsp/stm32l4xx_hal_rcc.h similarity index 100% rename from eps/firmware/mocks/bsp/stm32l4xx_hal_rcc.h rename to eps/v1/firmware/mocks/bsp/stm32l4xx_hal_rcc.h diff --git a/eps/firmware/mocks/bsp/usart.h b/eps/v1/firmware/mocks/bsp/usart.h similarity index 100% rename from eps/firmware/mocks/bsp/usart.h rename to eps/v1/firmware/mocks/bsp/usart.h diff --git a/eps/firmware/mocks/hal_adc_mock.c b/eps/v1/firmware/mocks/hal_adc_mock.c similarity index 100% rename from eps/firmware/mocks/hal_adc_mock.c rename to eps/v1/firmware/mocks/hal_adc_mock.c diff --git a/eps/firmware/mocks/hal_adc_mock.h b/eps/v1/firmware/mocks/hal_adc_mock.h similarity index 100% rename from eps/firmware/mocks/hal_adc_mock.h rename to eps/v1/firmware/mocks/hal_adc_mock.h diff --git a/eps/firmware/mocks/hal_can_mock.c b/eps/v1/firmware/mocks/hal_can_mock.c similarity index 100% rename from eps/firmware/mocks/hal_can_mock.c rename to eps/v1/firmware/mocks/hal_can_mock.c diff --git a/eps/firmware/mocks/hal_can_mock.h b/eps/v1/firmware/mocks/hal_can_mock.h similarity index 100% rename from eps/firmware/mocks/hal_can_mock.h rename to eps/v1/firmware/mocks/hal_can_mock.h diff --git a/eps/firmware/mocks/hal_flash_mock.c b/eps/v1/firmware/mocks/hal_flash_mock.c similarity index 100% rename from eps/firmware/mocks/hal_flash_mock.c rename to eps/v1/firmware/mocks/hal_flash_mock.c diff --git a/eps/firmware/mocks/hal_gpio_mock.c b/eps/v1/firmware/mocks/hal_gpio_mock.c similarity index 100% rename from eps/firmware/mocks/hal_gpio_mock.c rename to eps/v1/firmware/mocks/hal_gpio_mock.c diff --git a/eps/firmware/mocks/hal_gpio_mock.h b/eps/v1/firmware/mocks/hal_gpio_mock.h similarity index 100% rename from eps/firmware/mocks/hal_gpio_mock.h rename to eps/v1/firmware/mocks/hal_gpio_mock.h diff --git a/eps/firmware/mocks/hal_i2c_mock.c b/eps/v1/firmware/mocks/hal_i2c_mock.c similarity index 100% rename from eps/firmware/mocks/hal_i2c_mock.c rename to eps/v1/firmware/mocks/hal_i2c_mock.c diff --git a/eps/firmware/mocks/hal_i2c_mock.h b/eps/v1/firmware/mocks/hal_i2c_mock.h similarity index 100% rename from eps/firmware/mocks/hal_i2c_mock.h rename to eps/v1/firmware/mocks/hal_i2c_mock.h diff --git a/eps/firmware/mocks/hal_time_mock.c b/eps/v1/firmware/mocks/hal_time_mock.c similarity index 100% rename from eps/firmware/mocks/hal_time_mock.c rename to eps/v1/firmware/mocks/hal_time_mock.c diff --git a/eps/firmware/mocks/hal_uart_mock.c b/eps/v1/firmware/mocks/hal_uart_mock.c similarity index 100% rename from eps/firmware/mocks/hal_uart_mock.c rename to eps/v1/firmware/mocks/hal_uart_mock.c diff --git a/eps/firmware/mocks/hal_uart_mock.h b/eps/v1/firmware/mocks/hal_uart_mock.h similarity index 100% rename from eps/firmware/mocks/hal_uart_mock.h rename to eps/v1/firmware/mocks/hal_uart_mock.h diff --git a/eps/firmware/ocd b/eps/v1/firmware/ocd similarity index 100% rename from eps/firmware/ocd rename to eps/v1/firmware/ocd diff --git a/eps/firmware/services/battery_management.c b/eps/v1/firmware/services/battery_management.c similarity index 100% rename from eps/firmware/services/battery_management.c rename to eps/v1/firmware/services/battery_management.c diff --git a/eps/firmware/services/battery_management.h b/eps/v1/firmware/services/battery_management.h similarity index 100% rename from eps/firmware/services/battery_management.h rename to eps/v1/firmware/services/battery_management.h diff --git a/eps/firmware/services/can_events.c b/eps/v1/firmware/services/can_events.c similarity index 100% rename from eps/firmware/services/can_events.c rename to eps/v1/firmware/services/can_events.c diff --git a/eps/firmware/services/can_events.h b/eps/v1/firmware/services/can_events.h similarity index 100% rename from eps/firmware/services/can_events.h rename to eps/v1/firmware/services/can_events.h diff --git a/eps/firmware/services/logging.c b/eps/v1/firmware/services/logging.c similarity index 100% rename from eps/firmware/services/logging.c rename to eps/v1/firmware/services/logging.c diff --git a/eps/firmware/services/logging.h b/eps/v1/firmware/services/logging.h similarity index 100% rename from eps/firmware/services/logging.h rename to eps/v1/firmware/services/logging.h diff --git a/eps/firmware/services/mppt_controller.c b/eps/v1/firmware/services/mppt_controller.c similarity index 100% rename from eps/firmware/services/mppt_controller.c rename to eps/v1/firmware/services/mppt_controller.c diff --git a/eps/firmware/services/mppt_controller.h b/eps/v1/firmware/services/mppt_controller.h similarity index 100% rename from eps/firmware/services/mppt_controller.h rename to eps/v1/firmware/services/mppt_controller.h diff --git a/eps/firmware/services/power_profiles.c b/eps/v1/firmware/services/power_profiles.c similarity index 100% rename from eps/firmware/services/power_profiles.c rename to eps/v1/firmware/services/power_profiles.c diff --git a/eps/firmware/services/power_profiles.h b/eps/v1/firmware/services/power_profiles.h similarity index 100% rename from eps/firmware/services/power_profiles.h rename to eps/v1/firmware/services/power_profiles.h diff --git a/eps/firmware/services/rail_controller.c b/eps/v1/firmware/services/rail_controller.c similarity index 100% rename from eps/firmware/services/rail_controller.c rename to eps/v1/firmware/services/rail_controller.c diff --git a/eps/firmware/services/rail_controller.h b/eps/v1/firmware/services/rail_controller.h similarity index 100% rename from eps/firmware/services/rail_controller.h rename to eps/v1/firmware/services/rail_controller.h diff --git a/eps/firmware/services/redundancy_manager.c b/eps/v1/firmware/services/redundancy_manager.c similarity index 100% rename from eps/firmware/services/redundancy_manager.c rename to eps/v1/firmware/services/redundancy_manager.c diff --git a/eps/firmware/services/redundancy_manager.h b/eps/v1/firmware/services/redundancy_manager.h similarity index 100% rename from eps/firmware/services/redundancy_manager.h rename to eps/v1/firmware/services/redundancy_manager.h diff --git a/eps/firmware/services/telemetry.c b/eps/v1/firmware/services/telemetry.c similarity index 100% rename from eps/firmware/services/telemetry.c rename to eps/v1/firmware/services/telemetry.c diff --git a/eps/firmware/services/telemetry.h b/eps/v1/firmware/services/telemetry.h similarity index 100% rename from eps/firmware/services/telemetry.h rename to eps/v1/firmware/services/telemetry.h diff --git a/eps/firmware/services/uart_events.c b/eps/v1/firmware/services/uart_events.c similarity index 100% rename from eps/firmware/services/uart_events.c rename to eps/v1/firmware/services/uart_events.c diff --git a/eps/firmware/services/uart_events.h b/eps/v1/firmware/services/uart_events.h similarity index 100% rename from eps/firmware/services/uart_events.h rename to eps/v1/firmware/services/uart_events.h diff --git a/eps/firmware/services/watchdog.c b/eps/v1/firmware/services/watchdog.c similarity index 100% rename from eps/firmware/services/watchdog.c rename to eps/v1/firmware/services/watchdog.c diff --git a/eps/firmware/services/watchdog.h b/eps/v1/firmware/services/watchdog.h similarity index 100% rename from eps/firmware/services/watchdog.h rename to eps/v1/firmware/services/watchdog.h diff --git a/eps/firmware/tests/CMakeLists.txt b/eps/v1/firmware/tests/CMakeLists.txt similarity index 100% rename from eps/firmware/tests/CMakeLists.txt rename to eps/v1/firmware/tests/CMakeLists.txt diff --git a/eps/firmware/tests/mocks/event_bus_mock.c b/eps/v1/firmware/tests/mocks/event_bus_mock.c similarity index 100% rename from eps/firmware/tests/mocks/event_bus_mock.c rename to eps/v1/firmware/tests/mocks/event_bus_mock.c diff --git a/eps/firmware/tests/mocks/event_bus_mock.h b/eps/v1/firmware/tests/mocks/event_bus_mock.h similarity index 100% rename from eps/firmware/tests/mocks/event_bus_mock.h rename to eps/v1/firmware/tests/mocks/event_bus_mock.h diff --git a/eps/firmware/tests/mocks/rail_controller_mock.c b/eps/v1/firmware/tests/mocks/rail_controller_mock.c similarity index 100% rename from eps/firmware/tests/mocks/rail_controller_mock.c rename to eps/v1/firmware/tests/mocks/rail_controller_mock.c diff --git a/eps/firmware/tests/mocks/rail_controller_mock.h b/eps/v1/firmware/tests/mocks/rail_controller_mock.h similarity index 100% rename from eps/firmware/tests/mocks/rail_controller_mock.h rename to eps/v1/firmware/tests/mocks/rail_controller_mock.h diff --git a/eps/firmware/tests/test_adc_mock.c b/eps/v1/firmware/tests/test_adc_mock.c similarity index 100% rename from eps/firmware/tests/test_adc_mock.c rename to eps/v1/firmware/tests/test_adc_mock.c diff --git a/eps/firmware/tests/test_battery_management.c b/eps/v1/firmware/tests/test_battery_management.c similarity index 100% rename from eps/firmware/tests/test_battery_management.c rename to eps/v1/firmware/tests/test_battery_management.c diff --git a/eps/firmware/tests/test_can_events.c b/eps/v1/firmware/tests/test_can_events.c similarity index 100% rename from eps/firmware/tests/test_can_events.c rename to eps/v1/firmware/tests/test_can_events.c diff --git a/eps/firmware/tests/test_can_mock.c b/eps/v1/firmware/tests/test_can_mock.c similarity index 100% rename from eps/firmware/tests/test_can_mock.c rename to eps/v1/firmware/tests/test_can_mock.c diff --git a/eps/firmware/tests/test_gpio_mock.c b/eps/v1/firmware/tests/test_gpio_mock.c similarity index 100% rename from eps/firmware/tests/test_gpio_mock.c rename to eps/v1/firmware/tests/test_gpio_mock.c diff --git a/eps/firmware/tests/test_logging.c b/eps/v1/firmware/tests/test_logging.c similarity index 100% rename from eps/firmware/tests/test_logging.c rename to eps/v1/firmware/tests/test_logging.c diff --git a/eps/firmware/tests/test_power_profiles.c b/eps/v1/firmware/tests/test_power_profiles.c similarity index 100% rename from eps/firmware/tests/test_power_profiles.c rename to eps/v1/firmware/tests/test_power_profiles.c diff --git a/eps/firmware/tests/test_telemetry.c b/eps/v1/firmware/tests/test_telemetry.c similarity index 100% rename from eps/firmware/tests/test_telemetry.c rename to eps/v1/firmware/tests/test_telemetry.c diff --git a/eps/firmware/tests/test_uart_mock.c b/eps/v1/firmware/tests/test_uart_mock.c similarity index 100% rename from eps/firmware/tests/test_uart_mock.c rename to eps/v1/firmware/tests/test_uart_mock.c diff --git a/eps/firmware/tests/test_watchdog.c b/eps/v1/firmware/tests/test_watchdog.c similarity index 100% rename from eps/firmware/tests/test_watchdog.c rename to eps/v1/firmware/tests/test_watchdog.c diff --git a/eps/hardware/.gitignore b/eps/v1/hardware/.gitignore similarity index 100% rename from eps/hardware/.gitignore rename to eps/v1/hardware/.gitignore diff --git a/eps/hardware/3v3_voltage_regulator.kicad_sch b/eps/v1/hardware/3v3_voltage_regulator.kicad_sch similarity index 100% rename from eps/hardware/3v3_voltage_regulator.kicad_sch rename to eps/v1/hardware/3v3_voltage_regulator.kicad_sch diff --git a/eps/hardware/5V_voltage_regulator.kicad_sch b/eps/v1/hardware/5V_voltage_regulator.kicad_sch similarity index 100% rename from eps/hardware/5V_voltage_regulator.kicad_sch rename to eps/v1/hardware/5V_voltage_regulator.kicad_sch diff --git a/eps/hardware/adc_rc_filters.kicad_sch b/eps/v1/hardware/adc_rc_filters.kicad_sch similarity index 100% rename from eps/hardware/adc_rc_filters.kicad_sch rename to eps/v1/hardware/adc_rc_filters.kicad_sch diff --git a/eps/hardware/battery_charger.kicad_sch b/eps/v1/hardware/battery_charger.kicad_sch similarity index 100% rename from eps/hardware/battery_charger.kicad_sch rename to eps/v1/hardware/battery_charger.kicad_sch diff --git a/eps/hardware/canbus.kicad_sch b/eps/v1/hardware/canbus.kicad_sch similarity index 100% rename from eps/hardware/canbus.kicad_sch rename to eps/v1/hardware/canbus.kicad_sch diff --git a/eps/hardware/current_monitor.kicad_sch b/eps/v1/hardware/current_monitor.kicad_sch similarity index 100% rename from eps/hardware/current_monitor.kicad_sch rename to eps/v1/hardware/current_monitor.kicad_sch diff --git a/eps/hardware/current_monitors.kicad_sch b/eps/v1/hardware/current_monitors.kicad_sch similarity index 100% rename from eps/hardware/current_monitors.kicad_sch rename to eps/v1/hardware/current_monitors.kicad_sch diff --git a/eps/hardware/eps.kicad_dru b/eps/v1/hardware/eps.kicad_dru similarity index 100% rename from eps/hardware/eps.kicad_dru rename to eps/v1/hardware/eps.kicad_dru diff --git a/eps/hardware/eps.kicad_pcb b/eps/v1/hardware/eps.kicad_pcb similarity index 100% rename from eps/hardware/eps.kicad_pcb rename to eps/v1/hardware/eps.kicad_pcb diff --git a/eps/hardware/eps.kicad_prl b/eps/v1/hardware/eps.kicad_prl similarity index 100% rename from eps/hardware/eps.kicad_prl rename to eps/v1/hardware/eps.kicad_prl diff --git a/eps/hardware/eps.kicad_pro b/eps/v1/hardware/eps.kicad_pro similarity index 86% rename from eps/hardware/eps.kicad_pro rename to eps/v1/hardware/eps.kicad_pro index 295bff4..2c2124e 100644 --- a/eps/hardware/eps.kicad_pro +++ b/eps/v1/hardware/eps.kicad_pro @@ -39,9 +39,9 @@ "other_text_thickness": 0.15, "other_text_upright": false, "pads": { - "drill": 0.0, - "height": 1.45, - "width": 1.0 + "drill": 0.8, + "height": 1.27, + "width": 2.54 }, "silk_line_width": 0.1, "silk_text_italic": false, @@ -60,13 +60,13 @@ "hatch_smoothing_level": 0, "hatch_smoothing_value": 0.1, "hatch_thickness": 1.0, - "min_clearance": 0.25, + "min_clearance": 0.2, "min_island_area": 10.0, - "min_thickness": 0.2, - "pad_connection": 2, + "min_thickness": 0.25, + "pad_connection": 1, "remove_islands": 0, - "thermal_relief_gap": 0.25, - "thermal_relief_spoke_width": 0.3 + "thermal_relief_gap": 0.5, + "thermal_relief_spoke_width": 0.5 } }, "diff_pair_dimensions": [ @@ -79,11 +79,6 @@ "gap": 0.2, "via_gap": 0.5, "width": 0.1575 - }, - { - "gap": 0.2, - "via_gap": 0.5, - "width": 0.2248 } ], "drc_exclusions": [], @@ -135,8 +130,8 @@ "silk_overlap": "warning", "skew_out_of_range": "error", "solder_mask_bridge": "error", - "starved_thermal": "ignore", - "text_height": "ignore", + "starved_thermal": "error", + "text_height": "warning", "text_on_edge_cuts": "error", "text_thickness": "warning", "through_hole_pad_without_hole": "error", @@ -156,8 +151,8 @@ }, "rules": { "max_error": 0.005, - "min_clearance": 0.09, - "min_connection": 0.09, + "min_clearance": 0.0, + "min_connection": 0.0, "min_copper_edge_clearance": 0.5, "min_groove_width": 0.0, "min_hole_clearance": 0.25, @@ -169,7 +164,7 @@ "min_text_height": 0.8, "min_text_thickness": 0.08, "min_through_hole_diameter": 0.3, - "min_track_width": 0.09, + "min_track_width": 0.0, "min_via_annular_width": 0.1, "min_via_diameter": 0.5, "solder_mask_to_copper_clearance": 0.005, @@ -222,7 +217,6 @@ "track_widths": [ 0.0, 0.1, - 0.2, 0.3, 0.5, 1.0 @@ -272,7 +266,7 @@ "internal_id": "", "mfg": "", "mpn": "", - "sch_revision": "1" + "sch_revision": "" }, "layer_pairs": [], "layer_presets": [], @@ -531,7 +525,7 @@ "classes": [ { "bus_width": 12, - "clearance": 0.15, + "clearance": 0.2, "diff_pair_gap": 0.2, "diff_pair_via_gap": 0.25, "diff_pair_width": 0.1575, @@ -547,21 +541,6 @@ "via_diameter": 0.6, "via_drill": 0.3, "wire_width": 6 - }, - { - "clearance": 0.2, - "diff_pair_gap": 0.2032, - "diff_pair_width": 0.2248, - "microvia_diameter": 0.3, - "microvia_drill": 0.1, - "name": "CAN_MAIN", - "pcb_color": "rgba(0, 0, 0, 0.000)", - "priority": 0, - "schematic_color": "rgba(0, 0, 0, 0.000)", - "track_width": 0.2248, - "tuning_profile": "", - "via_diameter": 0.6, - "via_drill": 0.3 } ], "meta": { @@ -569,31 +548,14 @@ }, "net_colors": null, "netclass_assignments": null, - "netclass_patterns": [ - { - "netclass": "CAN_MAIN", - "pattern": "/CAN_MAIN+" - }, - { - "netclass": "CAN_MAIN", - "pattern": "/CAN_MAIN-" - }, - { - "netclass": "CAN_MAIN", - "pattern": "/CAN_AUX+" - }, - { - "netclass": "CAN_MAIN", - "pattern": "/CAN_AUX-" - } - ] + "netclass_patterns": [] }, "pcbnew": { "last_paths": { "gencad": "", "idf": "", "netlist": "", - "plot": "manufacturing/", + "plot": "", "pos_files": "", "specctra_dsn": "", "step": "", @@ -670,74 +632,14 @@ "label": "Datasheet", "name": "Datasheet", "show": true - }, - { - "group_by": false, - "label": "LCSC PN", - "name": "LCSC PN", - "show": true - }, - { - "group_by": false, - "label": "Power", - "name": "Power", - "show": false - }, - { - "group_by": false, - "label": "Sim.Device", - "name": "Sim.Device", - "show": false - }, - { - "group_by": false, - "label": "Sim.Pins", - "name": "Sim.Pins", - "show": false - }, - { - "group_by": false, - "label": "Sim.Type", - "name": "Sim.Type", - "show": false - }, - { - "group_by": false, - "label": "Tolerance", - "name": "Tolerance", - "show": false - }, - { - "group_by": false, - "label": "Vds(max)", - "name": "Vds(max)", - "show": false - }, - { - "group_by": false, - "label": "Breakdown Voltage", - "name": "Breakdown Voltage", - "show": false - }, - { - "group_by": false, - "label": "Description", - "name": "Description", - "show": false - }, - { - "group_by": false, - "label": "#", - "name": "${ITEM_NUMBER}", - "show": false } ], "filter_string": "", "group_symbols": true, "include_excluded_from_bom": true, - "name": "", + "name": "Default Editing", "sort_asc": true, - "sort_field": "Value" + "sort_field": "Reference" }, "bus_aliases": {}, "connection_grid_size": 50.0, @@ -793,7 +695,7 @@ { "filename": "eps.kicad_sch", "name": "eps", - "uuid": "9e0ae2e7-d4be-41b4-8312-0d2aceea2180" + "uuid": "00000000-0000-0000-0000-000000000000" } ], "used_designators": "", @@ -802,7 +704,7 @@ "sheets": [ [ "9e0ae2e7-d4be-41b4-8312-0d2aceea2180", - "eps" + "Root" ], [ "8656506a-f3cd-4e75-b5fa-6b385f9fb82d", @@ -907,10 +809,6 @@ [ "792266d7-fb12-41b3-b37a-fd5927556af2", "ADC RC Filters" - ], - [ - "4fe22ae3-19b7-46ce-a8f7-f0fc465b5785", - "CANBus Transcievers" ] ], "text_variables": {}, diff --git a/eps/hardware/eps.kicad_sch b/eps/v1/hardware/eps.kicad_sch similarity index 100% rename from eps/hardware/eps.kicad_sch rename to eps/v1/hardware/eps.kicad_sch diff --git a/eps/hardware/fabrication-toolkit-options.json b/eps/v1/hardware/fabrication-toolkit-options.json similarity index 100% rename from eps/hardware/fabrication-toolkit-options.json rename to eps/v1/hardware/fabrication-toolkit-options.json diff --git a/eps/hardware/footprints/QFN50P400X300X80-21N.kicad_mod b/eps/v1/hardware/footprints/QFN50P400X300X80-21N.kicad_mod similarity index 100% rename from eps/hardware/footprints/QFN50P400X300X80-21N.kicad_mod rename to eps/v1/hardware/footprints/QFN50P400X300X80-21N.kicad_mod diff --git a/eps/hardware/footprints/QFN50P700X500X80-39N.kicad_mod b/eps/v1/hardware/footprints/QFN50P700X500X80-39N.kicad_mod similarity index 100% rename from eps/hardware/footprints/QFN50P700X500X80-39N.kicad_mod rename to eps/v1/hardware/footprints/QFN50P700X500X80-39N.kicad_mod diff --git a/eps/hardware/footprints/SAMTEC_ERM8-020-X-X-DV.kicad_mod b/eps/v1/hardware/footprints/SAMTEC_ERM8-020-X-X-DV.kicad_mod similarity index 100% rename from eps/hardware/footprints/SAMTEC_ERM8-020-X-X-DV.kicad_mod rename to eps/v1/hardware/footprints/SAMTEC_ERM8-020-X-X-DV.kicad_mod diff --git a/eps/hardware/footprints/TRANS_FDMC8327L.kicad_mod b/eps/v1/hardware/footprints/TRANS_FDMC8327L.kicad_mod similarity index 100% rename from eps/hardware/footprints/TRANS_FDMC8327L.kicad_mod rename to eps/v1/hardware/footprints/TRANS_FDMC8327L.kicad_mod diff --git a/eps/hardware/footprints/WSON10_DLH_TEX-L.kicad_mod b/eps/v1/hardware/footprints/WSON10_DLH_TEX-L.kicad_mod similarity index 98% rename from eps/hardware/footprints/WSON10_DLH_TEX-L.kicad_mod rename to eps/v1/hardware/footprints/WSON10_DLH_TEX-L.kicad_mod index 90236ec..6dd1a01 100644 --- a/eps/hardware/footprints/WSON10_DLH_TEX-L.kicad_mod +++ b/eps/v1/hardware/footprints/WSON10_DLH_TEX-L.kicad_mod @@ -1,46 +1,46 @@ -(footprint "WSON10_DLH_TEX" (version 20211014) (generator pcbnew) - (layer "F.Cu") - (tags "BQ25185DLHR ") - (attr smd) - (fp_text reference "REF**" (at 0 0 unlocked) (layer F.SilkS) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text value WSON10_DLH_TEX (at 0 0 unlocked) (layer F.Fab) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user "${REFERENCE}" (at 0 0 unlocked) (layer F.Fab) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_line (start -1.4605 1.0033) (end -1.4605 -1.0033) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.4605 -1.0033) (end -1.2573 -1.0033) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.4605 -1.0033) (end 1.2573 -1.0033) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.4605 -1.0033) (end 1.4605 1.0033) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.4605 1.0033) (end 1.2573 1.0033) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.4605 1.0033) (end -1.2573 1.0033) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.2573 1.1557) (end -1.2573 1.0033) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.2573 -1.0033) (end -1.2573 -1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.2573 -1.1557) (end 1.2573 -1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.2573 -1.1557) (end 1.2573 -1.0033) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.2573 1.0033) (end 1.2573 1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.2573 1.1557) (end -1.2573 1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_circle (center -1.80975 -0.8001) (end -1.70815 -0.8001) (layer "F.SilkS") (width 0.1524) (fill none)) - (fp_circle (center -0.8001 -0.8001) (end -0.7239 -0.8001) (layer "F.Fab") (width 0.0254) (fill none)) - (fp_line (start -0.619403 1.1811) (end 0.619403 1.1811) (layer "F.SilkS") (width 0.1524)) - (fp_line (start 0.619403 -1.1811) (end -0.619403 -1.1811) (layer "F.SilkS") (width 0.1524)) - (fp_line (start -1.1557 1.0541) (end 1.1557 1.0541) (layer "F.Fab") (width 0.0254)) - (fp_line (start 1.1557 1.0541) (end 1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) - (fp_line (start 1.1557 -1.0541) (end -1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) - (fp_line (start -1.1557 -1.0541) (end -1.1557 1.0541) (layer "F.Fab") (width 0.0254)) - (fp_arc (start 0.3048 -1.0541) (mid 0 -0.7493) (end -0.3048 -1.0541) (layer "F.Fab") (width 0.0254)) - (pad "1" smd rect (at -1.0795 -0.8001) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "2" smd rect (at -1.0795 -0.40005) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "3" smd rect (at -1.0795 0) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "4" smd rect (at -1.0795 0.40005) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "5" smd rect (at -1.0795 0.8001) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "6" smd rect (at 1.0795 0.8001) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "7" smd rect (at 1.0795 0.40005) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "8" smd rect (at 1.0795 0) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "9" smd rect (at 1.0795 -0.40005) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "10" smd rect (at 1.0795 -0.8001) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "11" smd rect (at 0 0) (size 0.9906 1.6002) (layers "F.Cu" "F.Paste" "F.Mask")) -) +(footprint "WSON10_DLH_TEX" (version 20211014) (generator pcbnew) + (layer "F.Cu") + (tags "BQ25185DLHR ") + (attr smd) + (fp_text reference "REF**" (at 0 0 unlocked) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value WSON10_DLH_TEX (at 0 0 unlocked) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user "${REFERENCE}" (at 0 0 unlocked) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.4605 1.0033) (end -1.4605 -1.0033) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.4605 -1.0033) (end -1.2573 -1.0033) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.4605 -1.0033) (end 1.2573 -1.0033) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.4605 -1.0033) (end 1.4605 1.0033) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.4605 1.0033) (end 1.2573 1.0033) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.4605 1.0033) (end -1.2573 1.0033) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.2573 1.1557) (end -1.2573 1.0033) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.2573 -1.0033) (end -1.2573 -1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.2573 -1.1557) (end 1.2573 -1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.2573 -1.1557) (end 1.2573 -1.0033) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.2573 1.0033) (end 1.2573 1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.2573 1.1557) (end -1.2573 1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_circle (center -1.80975 -0.8001) (end -1.70815 -0.8001) (layer "F.SilkS") (width 0.1524) (fill none)) + (fp_circle (center -0.8001 -0.8001) (end -0.7239 -0.8001) (layer "F.Fab") (width 0.0254) (fill none)) + (fp_line (start -0.619403 1.1811) (end 0.619403 1.1811) (layer "F.SilkS") (width 0.1524)) + (fp_line (start 0.619403 -1.1811) (end -0.619403 -1.1811) (layer "F.SilkS") (width 0.1524)) + (fp_line (start -1.1557 1.0541) (end 1.1557 1.0541) (layer "F.Fab") (width 0.0254)) + (fp_line (start 1.1557 1.0541) (end 1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) + (fp_line (start 1.1557 -1.0541) (end -1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) + (fp_line (start -1.1557 -1.0541) (end -1.1557 1.0541) (layer "F.Fab") (width 0.0254)) + (fp_arc (start 0.3048 -1.0541) (mid 0 -0.7493) (end -0.3048 -1.0541) (layer "F.Fab") (width 0.0254)) + (pad "1" smd rect (at -1.0795 -0.8001) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "2" smd rect (at -1.0795 -0.40005) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "3" smd rect (at -1.0795 0) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "4" smd rect (at -1.0795 0.40005) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "5" smd rect (at -1.0795 0.8001) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "6" smd rect (at 1.0795 0.8001) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "7" smd rect (at 1.0795 0.40005) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "8" smd rect (at 1.0795 0) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "9" smd rect (at 1.0795 -0.40005) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "10" smd rect (at 1.0795 -0.8001) (size 0.5588 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "11" smd rect (at 0 0) (size 0.9906 1.6002) (layers "F.Cu" "F.Paste" "F.Mask")) +) diff --git a/eps/hardware/footprints/WSON10_DLH_TEX-M.kicad_mod b/eps/v1/hardware/footprints/WSON10_DLH_TEX-M.kicad_mod similarity index 98% rename from eps/hardware/footprints/WSON10_DLH_TEX-M.kicad_mod rename to eps/v1/hardware/footprints/WSON10_DLH_TEX-M.kicad_mod index 9e590d6..07482e0 100644 --- a/eps/hardware/footprints/WSON10_DLH_TEX-M.kicad_mod +++ b/eps/v1/hardware/footprints/WSON10_DLH_TEX-M.kicad_mod @@ -1,46 +1,46 @@ -(footprint "WSON10_DLH_TEX" (version 20211014) (generator pcbnew) - (layer "F.Cu") - (tags "BQ25185DLHR ") - (attr smd) - (fp_text reference "REF**" (at 0 0 unlocked) (layer F.SilkS) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text value WSON10_DLH_TEX (at 0 0 unlocked) (layer F.Fab) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user "${REFERENCE}" (at 0 0 unlocked) (layer F.Fab) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_line (start -2.0701 1.4097) (end -2.0701 -1.4097) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -2.0701 -1.4097) (end -1.6637 -1.4097) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 2.0701 -1.4097) (end 1.6637 -1.4097) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 2.0701 -1.4097) (end 2.0701 1.4097) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 2.0701 1.4097) (end 1.6637 1.4097) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -2.0701 1.4097) (end -1.6637 1.4097) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.6637 1.5621) (end -1.6637 1.4097) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.6637 -1.4097) (end -1.6637 -1.5621) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.6637 -1.5621) (end 1.6637 -1.5621) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.6637 -1.5621) (end 1.6637 -1.4097) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.6637 1.4097) (end 1.6637 1.5621) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.6637 1.5621) (end -1.6637 1.5621) (layer "F.CrtYd") (width 0.1524)) - (fp_circle (center -2.01295 -0.8001) (end -1.91135 -0.8001) (layer "F.SilkS") (width 0.1524) (fill none)) - (fp_circle (center -0.8001 -0.8001) (end -0.7239 -0.8001) (layer "F.Fab") (width 0.0254) (fill none)) - (fp_line (start -0.619403 1.1811) (end 0.619403 1.1811) (layer "F.SilkS") (width 0.1524)) - (fp_line (start 0.619403 -1.1811) (end -0.619403 -1.1811) (layer "F.SilkS") (width 0.1524)) - (fp_line (start -1.1557 1.0541) (end 1.1557 1.0541) (layer "F.Fab") (width 0.0254)) - (fp_line (start 1.1557 1.0541) (end 1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) - (fp_line (start 1.1557 -1.0541) (end -1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) - (fp_line (start -1.1557 -1.0541) (end -1.1557 1.0541) (layer "F.Fab") (width 0.0254)) - (fp_arc (start 0.3048 -1.0541) (mid 0 -0.7493) (end -0.3048 -1.0541) (layer "F.Fab") (width 0.0254)) - (pad "1" smd rect (at -1.1811 -0.8001) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "2" smd rect (at -1.1811 -0.40005) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "3" smd rect (at -1.1811 0) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "4" smd rect (at -1.1811 0.40005) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "5" smd rect (at -1.1811 0.8001) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "6" smd rect (at 1.1811 0.8001) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "7" smd rect (at 1.1811 0.40005) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "8" smd rect (at 1.1811 0) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "9" smd rect (at 1.1811 -0.40005) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "10" smd rect (at 1.1811 -0.8001) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "11" smd rect (at 0 0) (size 0.9906 1.6002) (layers "F.Cu" "F.Paste" "F.Mask")) -) +(footprint "WSON10_DLH_TEX" (version 20211014) (generator pcbnew) + (layer "F.Cu") + (tags "BQ25185DLHR ") + (attr smd) + (fp_text reference "REF**" (at 0 0 unlocked) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value WSON10_DLH_TEX (at 0 0 unlocked) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user "${REFERENCE}" (at 0 0 unlocked) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -2.0701 1.4097) (end -2.0701 -1.4097) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -2.0701 -1.4097) (end -1.6637 -1.4097) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 2.0701 -1.4097) (end 1.6637 -1.4097) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 2.0701 -1.4097) (end 2.0701 1.4097) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 2.0701 1.4097) (end 1.6637 1.4097) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -2.0701 1.4097) (end -1.6637 1.4097) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.6637 1.5621) (end -1.6637 1.4097) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.6637 -1.4097) (end -1.6637 -1.5621) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.6637 -1.5621) (end 1.6637 -1.5621) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.6637 -1.5621) (end 1.6637 -1.4097) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.6637 1.4097) (end 1.6637 1.5621) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.6637 1.5621) (end -1.6637 1.5621) (layer "F.CrtYd") (width 0.1524)) + (fp_circle (center -2.01295 -0.8001) (end -1.91135 -0.8001) (layer "F.SilkS") (width 0.1524) (fill none)) + (fp_circle (center -0.8001 -0.8001) (end -0.7239 -0.8001) (layer "F.Fab") (width 0.0254) (fill none)) + (fp_line (start -0.619403 1.1811) (end 0.619403 1.1811) (layer "F.SilkS") (width 0.1524)) + (fp_line (start 0.619403 -1.1811) (end -0.619403 -1.1811) (layer "F.SilkS") (width 0.1524)) + (fp_line (start -1.1557 1.0541) (end 1.1557 1.0541) (layer "F.Fab") (width 0.0254)) + (fp_line (start 1.1557 1.0541) (end 1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) + (fp_line (start 1.1557 -1.0541) (end -1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) + (fp_line (start -1.1557 -1.0541) (end -1.1557 1.0541) (layer "F.Fab") (width 0.0254)) + (fp_arc (start 0.3048 -1.0541) (mid 0 -0.7493) (end -0.3048 -1.0541) (layer "F.Fab") (width 0.0254)) + (pad "1" smd rect (at -1.1811 -0.8001) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "2" smd rect (at -1.1811 -0.40005) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "3" smd rect (at -1.1811 0) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "4" smd rect (at -1.1811 0.40005) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "5" smd rect (at -1.1811 0.8001) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "6" smd rect (at 1.1811 0.8001) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "7" smd rect (at 1.1811 0.40005) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "8" smd rect (at 1.1811 0) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "9" smd rect (at 1.1811 -0.40005) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "10" smd rect (at 1.1811 -0.8001) (size 0.762 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "11" smd rect (at 0 0) (size 0.9906 1.6002) (layers "F.Cu" "F.Paste" "F.Mask")) +) diff --git a/eps/hardware/footprints/WSON10_DLH_TEX.kicad_mod b/eps/v1/hardware/footprints/WSON10_DLH_TEX.kicad_mod similarity index 98% rename from eps/hardware/footprints/WSON10_DLH_TEX.kicad_mod rename to eps/v1/hardware/footprints/WSON10_DLH_TEX.kicad_mod index efb5d1c..396a362 100644 --- a/eps/hardware/footprints/WSON10_DLH_TEX.kicad_mod +++ b/eps/v1/hardware/footprints/WSON10_DLH_TEX.kicad_mod @@ -1,46 +1,46 @@ -(footprint "WSON10_DLH_TEX" (version 20211014) (generator pcbnew) - (layer "F.Cu") - (tags "BQ25185DLHR ") - (attr smd) - (fp_text reference "REF**" (at 0 0 unlocked) (layer F.SilkS) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text value WSON10_DLH_TEX (at 0 0 unlocked) (layer F.Fab) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user "${REFERENCE}" (at 0 0 unlocked) (layer F.Fab) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_line (start -1.7145 1.1557) (end -1.7145 -1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.7145 -1.1557) (end -1.4097 -1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.7145 -1.1557) (end 1.4097 -1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.7145 -1.1557) (end 1.7145 1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.7145 1.1557) (end 1.4097 1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.7145 1.1557) (end -1.4097 1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.4097 1.3081) (end -1.4097 1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.4097 -1.1557) (end -1.4097 -1.3081) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start -1.4097 -1.3081) (end 1.4097 -1.3081) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.4097 -1.3081) (end 1.4097 -1.1557) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.4097 1.1557) (end 1.4097 1.3081) (layer "F.CrtYd") (width 0.1524)) - (fp_line (start 1.4097 1.3081) (end -1.4097 1.3081) (layer "F.CrtYd") (width 0.1524)) - (fp_circle (center -1.91135 -0.8001) (end -1.80975 -0.8001) (layer "F.SilkS") (width 0.1524) (fill none)) - (fp_circle (center -0.8001 -0.8001) (end -0.7239 -0.8001) (layer "F.Fab") (width 0.0254) (fill none)) - (fp_line (start -0.619403 1.1811) (end 0.619403 1.1811) (layer "F.SilkS") (width 0.1524)) - (fp_line (start 0.619403 -1.1811) (end -0.619403 -1.1811) (layer "F.SilkS") (width 0.1524)) - (fp_line (start -1.1557 1.0541) (end 1.1557 1.0541) (layer "F.Fab") (width 0.0254)) - (fp_line (start 1.1557 1.0541) (end 1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) - (fp_line (start 1.1557 -1.0541) (end -1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) - (fp_line (start -1.1557 -1.0541) (end -1.1557 1.0541) (layer "F.Fab") (width 0.0254)) - (fp_arc (start 0.3048 -1.0541) (mid 0 -0.7493) (end -0.3048 -1.0541) (layer "F.Fab") (width 0.0254)) - (pad "1" smd rect (at -1.1303 -0.8001) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "2" smd rect (at -1.1303 -0.40005) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "3" smd rect (at -1.1303 0) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "4" smd rect (at -1.1303 0.40005) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "5" smd rect (at -1.1303 0.8001) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "6" smd rect (at 1.1303 0.8001) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "7" smd rect (at 1.1303 0.40005) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "8" smd rect (at 1.1303 0) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "9" smd rect (at 1.1303 -0.40005) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "10" smd rect (at 1.1303 -0.8001) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) - (pad "11" smd rect (at 0 0) (size 0.9906 1.6002) (layers "F.Cu" "F.Paste" "F.Mask")) -) +(footprint "WSON10_DLH_TEX" (version 20211014) (generator pcbnew) + (layer "F.Cu") + (tags "BQ25185DLHR ") + (attr smd) + (fp_text reference "REF**" (at 0 0 unlocked) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value WSON10_DLH_TEX (at 0 0 unlocked) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user "${REFERENCE}" (at 0 0 unlocked) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.7145 1.1557) (end -1.7145 -1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.7145 -1.1557) (end -1.4097 -1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.7145 -1.1557) (end 1.4097 -1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.7145 -1.1557) (end 1.7145 1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.7145 1.1557) (end 1.4097 1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.7145 1.1557) (end -1.4097 1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.4097 1.3081) (end -1.4097 1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.4097 -1.1557) (end -1.4097 -1.3081) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start -1.4097 -1.3081) (end 1.4097 -1.3081) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.4097 -1.3081) (end 1.4097 -1.1557) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.4097 1.1557) (end 1.4097 1.3081) (layer "F.CrtYd") (width 0.1524)) + (fp_line (start 1.4097 1.3081) (end -1.4097 1.3081) (layer "F.CrtYd") (width 0.1524)) + (fp_circle (center -1.91135 -0.8001) (end -1.80975 -0.8001) (layer "F.SilkS") (width 0.1524) (fill none)) + (fp_circle (center -0.8001 -0.8001) (end -0.7239 -0.8001) (layer "F.Fab") (width 0.0254) (fill none)) + (fp_line (start -0.619403 1.1811) (end 0.619403 1.1811) (layer "F.SilkS") (width 0.1524)) + (fp_line (start 0.619403 -1.1811) (end -0.619403 -1.1811) (layer "F.SilkS") (width 0.1524)) + (fp_line (start -1.1557 1.0541) (end 1.1557 1.0541) (layer "F.Fab") (width 0.0254)) + (fp_line (start 1.1557 1.0541) (end 1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) + (fp_line (start 1.1557 -1.0541) (end -1.1557 -1.0541) (layer "F.Fab") (width 0.0254)) + (fp_line (start -1.1557 -1.0541) (end -1.1557 1.0541) (layer "F.Fab") (width 0.0254)) + (fp_arc (start 0.3048 -1.0541) (mid 0 -0.7493) (end -0.3048 -1.0541) (layer "F.Fab") (width 0.0254)) + (pad "1" smd rect (at -1.1303 -0.8001) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "2" smd rect (at -1.1303 -0.40005) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "3" smd rect (at -1.1303 0) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "4" smd rect (at -1.1303 0.40005) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "5" smd rect (at -1.1303 0.8001) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "6" smd rect (at 1.1303 0.8001) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "7" smd rect (at 1.1303 0.40005) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "8" smd rect (at 1.1303 0) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "9" smd rect (at 1.1303 -0.40005) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "10" smd rect (at 1.1303 -0.8001) (size 0.6604 0.2032) (layers "F.Cu" "F.Paste" "F.Mask")) + (pad "11" smd rect (at 0 0) (size 0.9906 1.6002) (layers "F.Cu" "F.Paste" "F.Mask")) +) diff --git a/eps/hardware/fp-info-cache b/eps/v1/hardware/fp-info-cache similarity index 100% rename from eps/hardware/fp-info-cache rename to eps/v1/hardware/fp-info-cache diff --git a/eps/hardware/fp-lib-table b/eps/v1/hardware/fp-lib-table similarity index 100% rename from eps/hardware/fp-lib-table rename to eps/v1/hardware/fp-lib-table diff --git a/eps/hardware/inter_board_connector.kicad_sch b/eps/v1/hardware/inter_board_connector.kicad_sch similarity index 100% rename from eps/hardware/inter_board_connector.kicad_sch rename to eps/v1/hardware/inter_board_connector.kicad_sch diff --git a/eps/hardware/models/ERM8-020-05.0-L-DV-TR.stp b/eps/v1/hardware/models/ERM8-020-05.0-L-DV-TR.stp similarity index 97% rename from eps/hardware/models/ERM8-020-05.0-L-DV-TR.stp rename to eps/v1/hardware/models/ERM8-020-05.0-L-DV-TR.stp index 5db8aea..49942ee 100644 --- a/eps/hardware/models/ERM8-020-05.0-L-DV-TR.stp +++ b/eps/v1/hardware/models/ERM8-020-05.0-L-DV-TR.stp @@ -1,56418 +1,56418 @@ -ISO-10303-21; -HEADER; -/* Generated by software containing ST-Developer - * from STEP Tools, Inc. (www.steptools.com) - */ -/* OPTION: using custom renumber hook */ - -FILE_DESCRIPTION( -/* description */ ('STEP AP214'), -/* implementation_level */ '2;1'); - -FILE_NAME( -/* name */ 'ERM8-020-05.0-L-DV-TR', -/* time_stamp */ '2026-02-06T07:35:56+01:00', -/* author */ ('License CC BY-ND 4.0'), -/* organization */ ('CADENAS'), -/* preprocessor_version */ 'ST-DEVELOPER v20', -/* originating_system */ 'PARTsolutions', -/* authorisation */ ' '); - -FILE_SCHEMA (('AUTOMOTIVE_DESIGN {1 0 10303 214 3 1 1}')); -ENDSEC; - -DATA; -#10=PROPERTY_DEFINITION_REPRESENTATION(#14,#12); -#11=PROPERTY_DEFINITION_REPRESENTATION(#15,#13); -#12=REPRESENTATION('',(#16),#55660); -#13=REPRESENTATION('',(#17),#55660); -#14=PROPERTY_DEFINITION('pmi validation property','',#55671); -#15=PROPERTY_DEFINITION('pmi validation property','',#55671); -#16=VALUE_REPRESENTATION_ITEM('number of annotations',COUNT_MEASURE(0.)); -#17=VALUE_REPRESENTATION_ITEM('number of views',COUNT_MEASURE(0.)); -#18=ELLIPSE('',#35062,0.138564064605511,0.12); -#19=ELLIPSE('',#35063,0.138564064605511,0.12); -#20=ELLIPSE('',#35065,0.13856406460551,0.119999999999999); -#21=ELLIPSE('',#35066,0.13856406460551,0.119999999999999); -#22=ELLIPSE('',#35068,0.138564064605511,0.12); -#23=ELLIPSE('',#35069,0.138564064605511,0.12); -#24=ELLIPSE('',#35071,0.138564064605511,0.12); -#25=ELLIPSE('',#35072,0.138564064605511,0.12); -#26=ELLIPSE('',#35074,0.138564064605511,0.12); -#27=ELLIPSE('',#35075,0.138564064605511,0.12); -#28=ELLIPSE('',#35077,0.138564064605511,0.12); -#29=ELLIPSE('',#35078,0.138564064605511,0.12); -#30=ELLIPSE('',#35080,0.13856406460551,0.12); -#31=ELLIPSE('',#35081,0.13856406460551,0.12); -#32=ELLIPSE('',#35083,0.138564064605511,0.12); -#33=ELLIPSE('',#35084,0.138564064605511,0.12); -#34=ELLIPSE('',#35086,0.138564064605511,0.12); -#35=ELLIPSE('',#35087,0.138564064605511,0.12); -#36=ELLIPSE('',#35089,0.138564064605511,0.12); -#37=ELLIPSE('',#35090,0.138564064605511,0.12); -#38=ELLIPSE('',#35092,0.138564064605511,0.12); -#39=ELLIPSE('',#35093,0.138564064605511,0.12); -#40=ELLIPSE('',#35095,0.138564064605511,0.12); -#41=ELLIPSE('',#35096,0.138564064605511,0.12); -#42=ELLIPSE('',#35098,0.138564064605511,0.12); -#43=ELLIPSE('',#35099,0.138564064605511,0.12); -#44=ELLIPSE('',#35101,0.138564064605511,0.12); -#45=ELLIPSE('',#35102,0.138564064605511,0.12); -#46=ELLIPSE('',#35104,0.138564064605511,0.12); -#47=ELLIPSE('',#35105,0.138564064605511,0.12); -#48=ELLIPSE('',#35107,0.138564064605511,0.12); -#49=ELLIPSE('',#35108,0.138564064605511,0.12); -#50=ELLIPSE('',#35110,0.138564064605511,0.12); -#51=ELLIPSE('',#35111,0.138564064605511,0.12); -#52=ELLIPSE('',#35113,0.138564064605511,0.12); -#53=ELLIPSE('',#35114,0.138564064605511,0.12); -#54=ELLIPSE('',#35116,0.13856406460551,0.119999999999999); -#55=ELLIPSE('',#35117,0.13856406460551,0.119999999999999); -#56=ELLIPSE('',#35239,0.138564064605511,0.12); -#57=ELLIPSE('',#35240,0.138564064605511,0.12); -#58=ELLIPSE('',#35242,0.13856406460551,0.119999999999999); -#59=ELLIPSE('',#35243,0.13856406460551,0.119999999999999); -#60=ELLIPSE('',#35245,0.138564064605511,0.12); -#61=ELLIPSE('',#35246,0.138564064605511,0.12); -#62=ELLIPSE('',#35248,0.138564064605511,0.12); -#63=ELLIPSE('',#35249,0.138564064605511,0.12); -#64=ELLIPSE('',#35251,0.138564064605511,0.12); -#65=ELLIPSE('',#35252,0.138564064605511,0.12); -#66=ELLIPSE('',#35254,0.138564064605511,0.12); -#67=ELLIPSE('',#35255,0.138564064605511,0.12); -#68=ELLIPSE('',#35257,0.13856406460551,0.12); -#69=ELLIPSE('',#35258,0.13856406460551,0.12); -#70=ELLIPSE('',#35260,0.138564064605511,0.12); -#71=ELLIPSE('',#35261,0.138564064605511,0.12); -#72=ELLIPSE('',#35263,0.138564064605511,0.12); -#73=ELLIPSE('',#35264,0.138564064605511,0.12); -#74=ELLIPSE('',#35266,0.138564064605511,0.12); -#75=ELLIPSE('',#35267,0.138564064605511,0.12); -#76=ELLIPSE('',#35269,0.138564064605511,0.12); -#77=ELLIPSE('',#35270,0.138564064605511,0.12); -#78=ELLIPSE('',#35272,0.138564064605511,0.12); -#79=ELLIPSE('',#35273,0.138564064605511,0.12); -#80=ELLIPSE('',#35275,0.138564064605511,0.12); -#81=ELLIPSE('',#35276,0.138564064605511,0.12); -#82=ELLIPSE('',#35278,0.138564064605511,0.12); -#83=ELLIPSE('',#35279,0.138564064605511,0.12); -#84=ELLIPSE('',#35281,0.138564064605511,0.12); -#85=ELLIPSE('',#35282,0.138564064605511,0.12); -#86=ELLIPSE('',#35284,0.138564064605511,0.12); -#87=ELLIPSE('',#35285,0.138564064605511,0.12); -#88=ELLIPSE('',#35287,0.138564064605511,0.12); -#89=ELLIPSE('',#35288,0.138564064605511,0.12); -#90=ELLIPSE('',#35290,0.138564064605511,0.12); -#91=ELLIPSE('',#35291,0.138564064605511,0.12); -#92=ELLIPSE('',#35293,0.13856406460551,0.119999999999999); -#93=ELLIPSE('',#35294,0.13856406460551,0.119999999999999); -#94=ELLIPSE('',#35358,0.138564064605511,0.12); -#95=ELLIPSE('',#35359,0.138564064605511,0.12); -#96=ELLIPSE('',#35361,0.138564064605511,0.12); -#97=ELLIPSE('',#35362,0.138564064605511,0.12); -#98=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52338,#52339,#52340,#52341), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); -#99=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52345,#52346,#52347,#52348), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#100=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52352,#52353,#52354,#52355), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971945),.UNSPECIFIED.); -#101=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52359,#52360,#52361,#52362), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500616E-5),.UNSPECIFIED.); -#102=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52364,#52365,#52366,#52367), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#103=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52371,#52372,#52373,#52374), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416208),.UNSPECIFIED.); -#104=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52378,#52379,#52380,#52381), - .UNSPECIFIED.,.F.,.F.,(4,4),(4.33680868994202E-19,0.000274222294971944), - .UNSPECIFIED.); -#105=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52385,#52386,#52387,#52388), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500623E-5),.UNSPECIFIED.); -#106=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52390,#52391,#52392,#52393), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373297E-5),.UNSPECIFIED.); -#107=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52397,#52398,#52399,#52400), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#108=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52404,#52405,#52406,#52407), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#109=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52411,#52412,#52413,#52414), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500625E-5),.UNSPECIFIED.); -#110=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52416,#52417,#52418,#52419), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#111=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52423,#52424,#52425,#52426), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#112=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52430,#52431,#52432,#52433), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971945),.UNSPECIFIED.); -#113=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52437,#52438,#52439,#52440), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500616E-5),.UNSPECIFIED.); -#114=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52442,#52443,#52444,#52445), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#115=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52449,#52450,#52451,#52452), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#116=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52456,#52457,#52458,#52459), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#117=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52463,#52464,#52465,#52466), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500625E-5),.UNSPECIFIED.); -#118=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52468,#52469,#52470,#52471), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732967E-5),.UNSPECIFIED.); -#119=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52475,#52476,#52477,#52478), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#120=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52482,#52483,#52484,#52485), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), - .UNSPECIFIED.); -#121=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52489,#52490,#52491,#52492), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500619E-5),.UNSPECIFIED.); -#122=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52494,#52495,#52496,#52497), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#123=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52501,#52502,#52503,#52504), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#124=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52508,#52509,#52510,#52511), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971945), - .UNSPECIFIED.); -#125=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52515,#52516,#52517,#52518), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500619E-5),.UNSPECIFIED.); -#126=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52520,#52521,#52522,#52523), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#127=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52527,#52528,#52529,#52530), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#128=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52534,#52535,#52536,#52537), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), - .UNSPECIFIED.); -#129=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52541,#52542,#52543,#52544), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,5.47023897500626E-5), - .UNSPECIFIED.); -#130=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52546,#52547,#52548,#52549), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732966E-5),.UNSPECIFIED.); -#131=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52553,#52554,#52555,#52556), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#132=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52560,#52561,#52562,#52563), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), - .UNSPECIFIED.); -#133=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52567,#52568,#52569,#52570), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,5.47023897500623E-5), - .UNSPECIFIED.); -#134=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52572,#52573,#52574,#52575), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#135=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52579,#52580,#52581,#52582), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#136=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52586,#52587,#52588,#52589), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.23514003834094E-19,0.000274222294971944), - .UNSPECIFIED.); -#137=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52593,#52594,#52595,#52596), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500627E-5),.UNSPECIFIED.); -#138=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52598,#52599,#52600,#52601), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732967E-5),.UNSPECIFIED.); -#139=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52605,#52606,#52607,#52608), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#140=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52612,#52613,#52614,#52615), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.23514003834094E-19,0.000274222294971944), - .UNSPECIFIED.); -#141=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52619,#52620,#52621,#52622), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500626E-5),.UNSPECIFIED.); -#142=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52624,#52625,#52626,#52627), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732966E-5),.UNSPECIFIED.); -#143=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52631,#52632,#52633,#52634), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#144=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52638,#52639,#52640,#52641), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), - .UNSPECIFIED.); -#145=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52645,#52646,#52647,#52648), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500628E-5),.UNSPECIFIED.); -#146=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52650,#52651,#52652,#52653), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732962E-5),.UNSPECIFIED.); -#147=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52657,#52658,#52659,#52660), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#148=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52664,#52665,#52666,#52667), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), - .UNSPECIFIED.); -#149=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52671,#52672,#52673,#52674), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500619E-5),.UNSPECIFIED.); -#150=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52676,#52677,#52678,#52679), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#151=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52683,#52684,#52685,#52686), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#152=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52690,#52691,#52692,#52693), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), - .UNSPECIFIED.); -#153=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52697,#52698,#52699,#52700), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500624E-5),.UNSPECIFIED.); -#154=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52702,#52703,#52704,#52705), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732964E-5),.UNSPECIFIED.); -#155=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52709,#52710,#52711,#52712), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#156=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52716,#52717,#52718,#52719), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), - .UNSPECIFIED.); -#157=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52723,#52724,#52725,#52726), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500623E-5),.UNSPECIFIED.); -#158=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52728,#52729,#52730,#52731), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732954E-5),.UNSPECIFIED.); -#159=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52735,#52736,#52737,#52738), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#160=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52742,#52743,#52744,#52745), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#161=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52749,#52750,#52751,#52752), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500623E-5),.UNSPECIFIED.); -#162=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52754,#52755,#52756,#52757), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#163=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52761,#52762,#52763,#52764), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#164=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52768,#52769,#52770,#52771), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); -#165=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52775,#52776,#52777,#52778), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500616E-5),.UNSPECIFIED.); -#166=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52780,#52781,#52782,#52783), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373297E-5),.UNSPECIFIED.); -#167=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52787,#52788,#52789,#52790), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#168=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52794,#52795,#52796,#52797), - .UNSPECIFIED.,.F.,.F.,(4,4),(4.33680868994202E-19,0.000274222294971944), - .UNSPECIFIED.); -#169=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52801,#52802,#52803,#52804), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500625E-5),.UNSPECIFIED.); -#170=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52806,#52807,#52808,#52809), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#171=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52813,#52814,#52815,#52816), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#172=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52820,#52821,#52822,#52823), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#173=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52827,#52828,#52829,#52830), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500623E-5),.UNSPECIFIED.); -#174=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52832,#52833,#52834,#52835), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#175=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52839,#52840,#52841,#52842), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#176=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52846,#52847,#52848,#52849), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#177=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52853,#52854,#52855,#52856), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500618E-5),.UNSPECIFIED.); -#178=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53050,#53051,#53052,#53053), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302517E-5),.UNSPECIFIED.); -#179=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53054,#53055,#53056,#53057), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193561E-5),.UNSPECIFIED.); -#180=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53063,#53064,#53065,#53066), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302523E-5),.UNSPECIFIED.); -#181=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53067,#53068,#53069,#53070), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); -#182=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53076,#53077,#53078,#53079), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302532E-5),.UNSPECIFIED.); -#183=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53080,#53081,#53082,#53083), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193569E-5),.UNSPECIFIED.); -#184=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53089,#53090,#53091,#53092), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); -#185=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53093,#53094,#53095,#53096), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193561E-5),.UNSPECIFIED.); -#186=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53102,#53103,#53104,#53105), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302523E-5),.UNSPECIFIED.); -#187=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53106,#53107,#53108,#53109), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193569E-5),.UNSPECIFIED.); -#188=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53115,#53116,#53117,#53118), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302535E-5),.UNSPECIFIED.); -#189=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53119,#53120,#53121,#53122), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193556E-5),.UNSPECIFIED.); -#190=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53128,#53129,#53130,#53131), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302525E-5),.UNSPECIFIED.); -#191=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53132,#53133,#53134,#53135), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193556E-5),.UNSPECIFIED.); -#192=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53141,#53142,#53143,#53144), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); -#193=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53145,#53146,#53147,#53148), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,5.47352015193563E-5), - .UNSPECIFIED.); -#194=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53154,#53155,#53156,#53157), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); -#195=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53158,#53159,#53160,#53161), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,5.47352015193559E-5), - .UNSPECIFIED.); -#196=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53167,#53168,#53169,#53170), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); -#197=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53171,#53172,#53173,#53174), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193563E-5),.UNSPECIFIED.); -#198=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53180,#53181,#53182,#53183), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302534E-5),.UNSPECIFIED.); -#199=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53184,#53185,#53186,#53187), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193563E-5),.UNSPECIFIED.); -#200=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53193,#53194,#53195,#53196), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); -#201=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53197,#53198,#53199,#53200), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193564E-5),.UNSPECIFIED.); -#202=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53206,#53207,#53208,#53209), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302529E-5),.UNSPECIFIED.); -#203=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53210,#53211,#53212,#53213), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193556E-5),.UNSPECIFIED.); -#204=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53219,#53220,#53221,#53222), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); -#205=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53223,#53224,#53225,#53226), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193561E-5),.UNSPECIFIED.); -#206=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53232,#53233,#53234,#53235), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302532E-5),.UNSPECIFIED.); -#207=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53236,#53237,#53238,#53239), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193566E-5),.UNSPECIFIED.); -#208=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53245,#53246,#53247,#53248), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302517E-5),.UNSPECIFIED.); -#209=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53249,#53250,#53251,#53252), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); -#210=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53258,#53259,#53260,#53261), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); -#211=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53262,#53263,#53264,#53265), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193561E-5),.UNSPECIFIED.); -#212=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53271,#53272,#53273,#53274), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302532E-5),.UNSPECIFIED.); -#213=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53275,#53276,#53277,#53278), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193569E-5),.UNSPECIFIED.); -#214=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53284,#53285,#53286,#53287), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302523E-5),.UNSPECIFIED.); -#215=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53288,#53289,#53290,#53291), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); -#216=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53298,#53299,#53300,#53301), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); -#217=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53302,#53303,#53304,#53305), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193562E-5),.UNSPECIFIED.); -#218=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53311,#53312,#53313,#53314), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193569E-5),.UNSPECIFIED.); -#219=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53322,#53323,#53324,#53325), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302516E-5),.UNSPECIFIED.); -#220=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53327,#53328,#53329,#53330), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); -#221=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53338,#53339,#53340,#53341), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); -#222=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53343,#53344,#53345,#53346), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); -#223=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53354,#53355,#53356,#53357), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302519E-5),.UNSPECIFIED.); -#224=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53359,#53360,#53361,#53362), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); -#225=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53370,#53371,#53372,#53373), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302516E-5),.UNSPECIFIED.); -#226=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53375,#53376,#53377,#53378), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); -#227=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53386,#53387,#53388,#53389), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302519E-5),.UNSPECIFIED.); -#228=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53391,#53392,#53393,#53394), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302535E-5),.UNSPECIFIED.); -#229=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53402,#53403,#53404,#53405), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4735941530251E-5),.UNSPECIFIED.); -#230=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53407,#53408,#53409,#53410), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302526E-5),.UNSPECIFIED.); -#231=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53418,#53419,#53420,#53421), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302514E-5),.UNSPECIFIED.); -#232=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53423,#53424,#53425,#53426), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); -#233=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53434,#53435,#53436,#53437), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302522E-5),.UNSPECIFIED.); -#234=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53439,#53440,#53441,#53442), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); -#235=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53450,#53451,#53452,#53453), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302518E-5),.UNSPECIFIED.); -#236=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53455,#53456,#53457,#53458), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193571E-5),.UNSPECIFIED.); -#237=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53466,#53467,#53468,#53469), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302522E-5),.UNSPECIFIED.); -#238=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53471,#53472,#53473,#53474), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302534E-5),.UNSPECIFIED.); -#239=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53482,#53483,#53484,#53485), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302522E-5),.UNSPECIFIED.); -#240=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53487,#53488,#53489,#53490), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); -#241=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53498,#53499,#53500,#53501), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302522E-5),.UNSPECIFIED.); -#242=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53503,#53504,#53505,#53506), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); -#243=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53514,#53515,#53516,#53517), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302514E-5),.UNSPECIFIED.); -#244=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53519,#53520,#53521,#53522), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); -#245=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53530,#53531,#53532,#53533), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302521E-5),.UNSPECIFIED.); -#246=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53535,#53536,#53537,#53538), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302532E-5),.UNSPECIFIED.); -#247=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53546,#53547,#53548,#53549), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302519E-5),.UNSPECIFIED.); -#248=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53551,#53552,#53553,#53554), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193562E-5),.UNSPECIFIED.); -#249=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53562,#53563,#53564,#53565), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); -#250=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53567,#53568,#53569,#53570), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); -#251=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53578,#53579,#53580,#53581), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302516E-5),.UNSPECIFIED.); -#252=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53583,#53584,#53585,#53586), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); -#253=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53594,#53595,#53596,#53597), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302519E-5),.UNSPECIFIED.); -#254=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53599,#53600,#53601,#53602), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); -#255=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53610,#53611,#53612,#53613), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); -#256=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53615,#53616,#53617,#53618), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); -#257=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53626,#53627,#53628,#53629), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302517E-5),.UNSPECIFIED.); -#258=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53821,#53822,#53823,#53824), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); -#259=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53826,#53827,#53828,#53829), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732952E-5),.UNSPECIFIED.); -#260=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53833,#53834,#53835,#53836), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#261=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53837,#53838,#53839,#53840), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971943), - .UNSPECIFIED.); -#262=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53844,#53845,#53846,#53847), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#263=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53849,#53850,#53851,#53852), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#264=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53856,#53857,#53858,#53859), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); -#265=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53860,#53861,#53862,#53863), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971945), - .UNSPECIFIED.); -#266=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53867,#53868,#53869,#53870), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373297E-5),.UNSPECIFIED.); -#267=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53872,#53873,#53874,#53875), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); -#268=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53879,#53880,#53881,#53882), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#269=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53883,#53884,#53885,#53886), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#270=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53890,#53891,#53892,#53893), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#271=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53895,#53896,#53897,#53898), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732952E-5),.UNSPECIFIED.); -#272=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53902,#53903,#53904,#53905), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#273=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53906,#53907,#53908,#53909), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971943), - .UNSPECIFIED.); -#274=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53913,#53914,#53915,#53916), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#275=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53918,#53919,#53920,#53921), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); -#276=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53925,#53926,#53927,#53928), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#277=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53929,#53930,#53931,#53932), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#278=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53936,#53937,#53938,#53939), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732967E-5),.UNSPECIFIED.); -#279=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53941,#53942,#53943,#53944), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732946E-5),.UNSPECIFIED.); -#280=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53948,#53949,#53950,#53951), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#281=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53952,#53953,#53954,#53955), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#282=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53959,#53960,#53961,#53962), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#283=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53964,#53965,#53966,#53967), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732946E-5),.UNSPECIFIED.); -#284=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53971,#53972,#53973,#53974), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#285=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53975,#53976,#53977,#53978), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#286=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53982,#53983,#53984,#53985), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#287=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53987,#53988,#53989,#53990), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732956E-5),.UNSPECIFIED.); -#288=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53994,#53995,#53996,#53997), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#289=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53998,#53999,#54000,#54001), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#290=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54005,#54006,#54007,#54008), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732966E-5),.UNSPECIFIED.); -#291=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54010,#54011,#54012,#54013), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732952E-5),.UNSPECIFIED.); -#292=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54017,#54018,#54019,#54020), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#293=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54021,#54022,#54023,#54024), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); -#294=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54028,#54029,#54030,#54031), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#295=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54033,#54034,#54035,#54036), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); -#296=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54040,#54041,#54042,#54043), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#297=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54044,#54045,#54046,#54047), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); -#298=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54051,#54052,#54053,#54054), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732967E-5),.UNSPECIFIED.); -#299=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54056,#54057,#54058,#54059), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); -#300=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54063,#54064,#54065,#54066), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#301=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54067,#54068,#54069,#54070), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#302=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54074,#54075,#54076,#54077), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732966E-5),.UNSPECIFIED.); -#303=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54079,#54080,#54081,#54082), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732958E-5),.UNSPECIFIED.); -#304=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54086,#54087,#54088,#54089), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#305=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54090,#54091,#54092,#54093), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#306=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54097,#54098,#54099,#54100), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732962E-5),.UNSPECIFIED.); -#307=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54102,#54103,#54104,#54105), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732946E-5),.UNSPECIFIED.); -#308=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54109,#54110,#54111,#54112), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#309=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54113,#54114,#54115,#54116), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#310=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54120,#54121,#54122,#54123), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#311=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54125,#54126,#54127,#54128), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732953E-5),.UNSPECIFIED.); -#312=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54132,#54133,#54134,#54135), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#313=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54136,#54137,#54138,#54139), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#314=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54143,#54144,#54145,#54146), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732964E-5),.UNSPECIFIED.); -#315=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54148,#54149,#54150,#54151), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732951E-5),.UNSPECIFIED.); -#316=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54155,#54156,#54157,#54158), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#317=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54159,#54160,#54161,#54162), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); -#318=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54166,#54167,#54168,#54169), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732954E-5),.UNSPECIFIED.); -#319=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54171,#54172,#54173,#54174), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#320=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54178,#54179,#54180,#54181), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#321=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54182,#54183,#54184,#54185), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#322=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54189,#54190,#54191,#54192), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#323=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54194,#54195,#54196,#54197), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732952E-5),.UNSPECIFIED.); -#324=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54201,#54202,#54203,#54204), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416205),.UNSPECIFIED.); -#325=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54205,#54206,#54207,#54208), - .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971943), - .UNSPECIFIED.); -#326=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54212,#54213,#54214,#54215), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373297E-5),.UNSPECIFIED.); -#327=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54217,#54218,#54219,#54220), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); -#328=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54224,#54225,#54226,#54227), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#329=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54228,#54229,#54230,#54231), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#330=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54235,#54236,#54237,#54238), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); -#331=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54240,#54241,#54242,#54243), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#332=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54247,#54248,#54249,#54250), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#333=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54251,#54252,#54253,#54254), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); -#334=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54258,#54259,#54260,#54261), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); -#335=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54263,#54264,#54265,#54266), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732954E-5),.UNSPECIFIED.); -#336=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54270,#54271,#54272,#54273), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); -#337=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54277,#54278,#54279,#54280), - .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); -#338=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#344,#55673); -#339=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#345,#55675); -#340=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#346,#55677); -#341=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO1','ERM8-020-05.0-DVT', -'ERM8-020-05.0-DVT',#55678,#55679,''); -#342=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO2','ERM8-020-05.0-DV_pin', -'ERM8-020-05.0-DV_pin',#55678,#55680,''); -#343=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO3','ERM8-020-05.0-DV3_pin', -'ERM8-020-05.0-DV3_pin',#55678,#55681,''); -#344=( -REPRESENTATION_RELATIONSHIP(' ',' ',#33413,#33412) -REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#347) -SHAPE_REPRESENTATION_RELATIONSHIP() -); -#345=( -REPRESENTATION_RELATIONSHIP(' ',' ',#33414,#33412) -REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#348) -SHAPE_REPRESENTATION_RELATIONSHIP() -); -#346=( -REPRESENTATION_RELATIONSHIP(' ',' ',#33415,#33412) -REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#349) -SHAPE_REPRESENTATION_RELATIONSHIP() -); -#347=ITEM_DEFINED_TRANSFORMATION(' ',' ',#33416,#33902); -#348=ITEM_DEFINED_TRANSFORMATION(' ',' ',#33416,#34472); -#349=ITEM_DEFINED_TRANSFORMATION(' ',' ',#33416,#36082); -#350=SHAPE_REPRESENTATION_RELATIONSHIP('','',#33413,#353); -#351=SHAPE_REPRESENTATION_RELATIONSHIP('','',#33414,#354); -#352=SHAPE_REPRESENTATION_RELATIONSHIP('','',#33415,#355); -#353=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#33405),#55661); -#354=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#33406),#55662); -#355=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#33407),#55663); -#356=DEGENERATE_TOROIDAL_SURFACE('',#33835,0.259999999999998,0.400000000000003, - .T.); -#357=CYLINDRICAL_SURFACE('',#33769,0.35); -#358=CYLINDRICAL_SURFACE('',#33772,0.35); -#359=CYLINDRICAL_SURFACE('',#33775,0.35); -#360=CYLINDRICAL_SURFACE('',#33778,0.35); -#361=CYLINDRICAL_SURFACE('',#33781,0.35); -#362=CYLINDRICAL_SURFACE('',#33784,0.35); -#363=CYLINDRICAL_SURFACE('',#33787,0.35); -#364=CYLINDRICAL_SURFACE('',#33790,0.35); -#365=CYLINDRICAL_SURFACE('',#33793,0.35); -#366=CYLINDRICAL_SURFACE('',#33796,0.35); -#367=CYLINDRICAL_SURFACE('',#33799,0.35); -#368=CYLINDRICAL_SURFACE('',#33802,0.35); -#369=CYLINDRICAL_SURFACE('',#33805,0.35); -#370=CYLINDRICAL_SURFACE('',#33808,0.35); -#371=CYLINDRICAL_SURFACE('',#33811,0.35); -#372=CYLINDRICAL_SURFACE('',#33814,0.35); -#373=CYLINDRICAL_SURFACE('',#33817,0.35); -#374=CYLINDRICAL_SURFACE('',#33820,0.35); -#375=CYLINDRICAL_SURFACE('',#33823,0.35); -#376=CYLINDRICAL_SURFACE('',#33824,0.35); -#377=CYLINDRICAL_SURFACE('',#33833,0.660000000000001); -#378=CYLINDRICAL_SURFACE('',#33839,0.200000000000006); -#379=CYLINDRICAL_SURFACE('',#33842,0.2); -#380=CYLINDRICAL_SURFACE('',#33845,0.200000000000004); -#381=CYLINDRICAL_SURFACE('',#33848,0.2); -#382=CYLINDRICAL_SURFACE('',#33852,0.200000000000001); -#383=CYLINDRICAL_SURFACE('',#33854,0.166665999999988); -#384=CYLINDRICAL_SURFACE('',#33856,1.05); -#385=CYLINDRICAL_SURFACE('',#33858,0.16666599999998); -#386=CYLINDRICAL_SURFACE('',#33860,0.200000000000003); -#387=CYLINDRICAL_SURFACE('',#33863,0.200000000000001); -#388=CYLINDRICAL_SURFACE('',#33869,0.499999999999999); -#389=CYLINDRICAL_SURFACE('',#33871,0.250000000000003); -#390=CYLINDRICAL_SURFACE('',#33873,1.05); -#391=CYLINDRICAL_SURFACE('',#33875,0.249999999999985); -#392=CYLINDRICAL_SURFACE('',#33877,0.500000000000003); -#393=CYLINDRICAL_SURFACE('',#33880,0.699999999999999); -#394=CYLINDRICAL_SURFACE('',#33883,0.700000000000001); -#395=CYLINDRICAL_SURFACE('',#33891,0.199999999999998); -#396=CYLINDRICAL_SURFACE('',#33893,0.199999999999999); -#397=CYLINDRICAL_SURFACE('',#33900,0.199999999999999); -#398=CYLINDRICAL_SURFACE('',#33901,0.199999999999997); -#399=CYLINDRICAL_SURFACE('',#34010,0.6524); -#400=CYLINDRICAL_SURFACE('',#34013,0.6524); -#401=CYLINDRICAL_SURFACE('',#34016,0.6524); -#402=CYLINDRICAL_SURFACE('',#34019,0.6524); -#403=CYLINDRICAL_SURFACE('',#34022,0.6524); -#404=CYLINDRICAL_SURFACE('',#34025,0.6524); -#405=CYLINDRICAL_SURFACE('',#34028,0.6524); -#406=CYLINDRICAL_SURFACE('',#34031,0.6524); -#407=CYLINDRICAL_SURFACE('',#34034,0.6524); -#408=CYLINDRICAL_SURFACE('',#34037,0.6524); -#409=CYLINDRICAL_SURFACE('',#34040,0.6524); -#410=CYLINDRICAL_SURFACE('',#34043,0.6524); -#411=CYLINDRICAL_SURFACE('',#34046,0.6524); -#412=CYLINDRICAL_SURFACE('',#34049,0.6524); -#413=CYLINDRICAL_SURFACE('',#34052,0.6524); -#414=CYLINDRICAL_SURFACE('',#34055,0.6524); -#415=CYLINDRICAL_SURFACE('',#34058,0.6524); -#416=CYLINDRICAL_SURFACE('',#34061,0.6524); -#417=CYLINDRICAL_SURFACE('',#34064,0.6524); -#418=CYLINDRICAL_SURFACE('',#34067,0.6524); -#419=CYLINDRICAL_SURFACE('',#34070,0.6524); -#420=CYLINDRICAL_SURFACE('',#34073,0.6524); -#421=CYLINDRICAL_SURFACE('',#34076,0.6524); -#422=CYLINDRICAL_SURFACE('',#34079,0.6524); -#423=CYLINDRICAL_SURFACE('',#34082,0.6524); -#424=CYLINDRICAL_SURFACE('',#34085,0.6524); -#425=CYLINDRICAL_SURFACE('',#34088,0.6524); -#426=CYLINDRICAL_SURFACE('',#34091,0.6524); -#427=CYLINDRICAL_SURFACE('',#34094,0.6524); -#428=CYLINDRICAL_SURFACE('',#34097,0.6524); -#429=CYLINDRICAL_SURFACE('',#34100,0.6524); -#430=CYLINDRICAL_SURFACE('',#34103,0.6524); -#431=CYLINDRICAL_SURFACE('',#34106,0.6524); -#432=CYLINDRICAL_SURFACE('',#34109,0.6524); -#433=CYLINDRICAL_SURFACE('',#34112,0.6524); -#434=CYLINDRICAL_SURFACE('',#34115,0.6524); -#435=CYLINDRICAL_SURFACE('',#34118,0.6524); -#436=CYLINDRICAL_SURFACE('',#34121,0.6524); -#437=CYLINDRICAL_SURFACE('',#34143,0.499999999999999); -#438=CYLINDRICAL_SURFACE('',#34146,0.499999999999999); -#439=CYLINDRICAL_SURFACE('',#34149,0.499999999999999); -#440=CYLINDRICAL_SURFACE('',#34152,0.499999999999999); -#441=CYLINDRICAL_SURFACE('',#34155,0.499999999999999); -#442=CYLINDRICAL_SURFACE('',#34158,0.499999999999999); -#443=CYLINDRICAL_SURFACE('',#34161,0.499999999999999); -#444=CYLINDRICAL_SURFACE('',#34164,0.499999999999999); -#445=CYLINDRICAL_SURFACE('',#34167,0.499999999999999); -#446=CYLINDRICAL_SURFACE('',#34170,0.499999999999999); -#447=CYLINDRICAL_SURFACE('',#34173,0.499999999999999); -#448=CYLINDRICAL_SURFACE('',#34176,0.499999999999999); -#449=CYLINDRICAL_SURFACE('',#34179,0.499999999999999); -#450=CYLINDRICAL_SURFACE('',#34182,0.499999999999999); -#451=CYLINDRICAL_SURFACE('',#34185,0.499999999999999); -#452=CYLINDRICAL_SURFACE('',#34188,0.499999999999999); -#453=CYLINDRICAL_SURFACE('',#34191,0.499999999999999); -#454=CYLINDRICAL_SURFACE('',#34194,0.499999999999999); -#455=CYLINDRICAL_SURFACE('',#34197,0.499999999999999); -#456=CYLINDRICAL_SURFACE('',#34200,0.499999999999999); -#457=CYLINDRICAL_SURFACE('',#34203,0.499999999999999); -#458=CYLINDRICAL_SURFACE('',#34206,0.499999999999999); -#459=CYLINDRICAL_SURFACE('',#34209,0.499999999999999); -#460=CYLINDRICAL_SURFACE('',#34212,0.499999999999999); -#461=CYLINDRICAL_SURFACE('',#34215,0.499999999999999); -#462=CYLINDRICAL_SURFACE('',#34218,0.499999999999999); -#463=CYLINDRICAL_SURFACE('',#34221,0.499999999999999); -#464=CYLINDRICAL_SURFACE('',#34224,0.499999999999999); -#465=CYLINDRICAL_SURFACE('',#34227,0.499999999999999); -#466=CYLINDRICAL_SURFACE('',#34230,0.499999999999999); -#467=CYLINDRICAL_SURFACE('',#34233,0.499999999999999); -#468=CYLINDRICAL_SURFACE('',#34236,0.499999999999999); -#469=CYLINDRICAL_SURFACE('',#34239,0.499999999999999); -#470=CYLINDRICAL_SURFACE('',#34242,0.499999999999999); -#471=CYLINDRICAL_SURFACE('',#34245,0.499999999999999); -#472=CYLINDRICAL_SURFACE('',#34248,0.499999999999999); -#473=CYLINDRICAL_SURFACE('',#34251,0.499999999999999); -#474=CYLINDRICAL_SURFACE('',#34254,0.499999999999999); -#475=CYLINDRICAL_SURFACE('',#34258,0.6524); -#476=CYLINDRICAL_SURFACE('',#34261,0.6524); -#477=CYLINDRICAL_SURFACE('',#34265,0.499999999999999); -#478=CYLINDRICAL_SURFACE('',#34268,0.499999999999999); -#479=CYLINDRICAL_SURFACE('',#35001,0.5024); -#480=CYLINDRICAL_SURFACE('',#35004,0.5024); -#481=CYLINDRICAL_SURFACE('',#35007,0.5024); -#482=CYLINDRICAL_SURFACE('',#35010,0.5024); -#483=CYLINDRICAL_SURFACE('',#35013,0.5024); -#484=CYLINDRICAL_SURFACE('',#35016,0.5024); -#485=CYLINDRICAL_SURFACE('',#35019,0.5024); -#486=CYLINDRICAL_SURFACE('',#35022,0.5024); -#487=CYLINDRICAL_SURFACE('',#35025,0.5024); -#488=CYLINDRICAL_SURFACE('',#35028,0.5024); -#489=CYLINDRICAL_SURFACE('',#35031,0.5024); -#490=CYLINDRICAL_SURFACE('',#35034,0.5024); -#491=CYLINDRICAL_SURFACE('',#35037,0.5024); -#492=CYLINDRICAL_SURFACE('',#35040,0.5024); -#493=CYLINDRICAL_SURFACE('',#35043,0.5024); -#494=CYLINDRICAL_SURFACE('',#35046,0.5024); -#495=CYLINDRICAL_SURFACE('',#35049,0.5024); -#496=CYLINDRICAL_SURFACE('',#35052,0.5024); -#497=CYLINDRICAL_SURFACE('',#35055,0.5024); -#498=CYLINDRICAL_SURFACE('',#35058,0.5024); -#499=CYLINDRICAL_SURFACE('',#35118,0.337399999999999); -#500=CYLINDRICAL_SURFACE('',#35121,0.337399999999999); -#501=CYLINDRICAL_SURFACE('',#35124,0.337399999999999); -#502=CYLINDRICAL_SURFACE('',#35127,0.337399999999999); -#503=CYLINDRICAL_SURFACE('',#35130,0.337399999999999); -#504=CYLINDRICAL_SURFACE('',#35133,0.337399999999999); -#505=CYLINDRICAL_SURFACE('',#35136,0.337399999999999); -#506=CYLINDRICAL_SURFACE('',#35139,0.337399999999999); -#507=CYLINDRICAL_SURFACE('',#35142,0.337399999999999); -#508=CYLINDRICAL_SURFACE('',#35145,0.337399999999999); -#509=CYLINDRICAL_SURFACE('',#35148,0.337399999999999); -#510=CYLINDRICAL_SURFACE('',#35151,0.337399999999999); -#511=CYLINDRICAL_SURFACE('',#35154,0.337399999999999); -#512=CYLINDRICAL_SURFACE('',#35157,0.337399999999999); -#513=CYLINDRICAL_SURFACE('',#35160,0.337399999999999); -#514=CYLINDRICAL_SURFACE('',#35163,0.337399999999999); -#515=CYLINDRICAL_SURFACE('',#35166,0.337399999999999); -#516=CYLINDRICAL_SURFACE('',#35169,0.337399999999999); -#517=CYLINDRICAL_SURFACE('',#35172,0.337399999999999); -#518=CYLINDRICAL_SURFACE('',#35175,0.337399999999999); -#519=CYLINDRICAL_SURFACE('',#35178,0.337399999999999); -#520=CYLINDRICAL_SURFACE('',#35181,0.337399999999999); -#521=CYLINDRICAL_SURFACE('',#35184,0.337399999999999); -#522=CYLINDRICAL_SURFACE('',#35187,0.337399999999999); -#523=CYLINDRICAL_SURFACE('',#35190,0.337399999999999); -#524=CYLINDRICAL_SURFACE('',#35193,0.337399999999999); -#525=CYLINDRICAL_SURFACE('',#35196,0.337399999999999); -#526=CYLINDRICAL_SURFACE('',#35199,0.337399999999999); -#527=CYLINDRICAL_SURFACE('',#35202,0.337399999999999); -#528=CYLINDRICAL_SURFACE('',#35205,0.337399999999999); -#529=CYLINDRICAL_SURFACE('',#35208,0.337399999999999); -#530=CYLINDRICAL_SURFACE('',#35211,0.337399999999999); -#531=CYLINDRICAL_SURFACE('',#35214,0.337399999999999); -#532=CYLINDRICAL_SURFACE('',#35217,0.337399999999999); -#533=CYLINDRICAL_SURFACE('',#35220,0.337399999999999); -#534=CYLINDRICAL_SURFACE('',#35223,0.337399999999999); -#535=CYLINDRICAL_SURFACE('',#35226,0.337399999999999); -#536=CYLINDRICAL_SURFACE('',#35229,0.337399999999999); -#537=CYLINDRICAL_SURFACE('',#35232,0.337399999999999); -#538=CYLINDRICAL_SURFACE('',#35235,0.337399999999999); -#539=CYLINDRICAL_SURFACE('',#35295,0.502399999999999); -#540=CYLINDRICAL_SURFACE('',#35298,0.502399999999999); -#541=CYLINDRICAL_SURFACE('',#35301,0.502399999999999); -#542=CYLINDRICAL_SURFACE('',#35304,0.502399999999999); -#543=CYLINDRICAL_SURFACE('',#35307,0.502399999999999); -#544=CYLINDRICAL_SURFACE('',#35310,0.502399999999999); -#545=CYLINDRICAL_SURFACE('',#35313,0.502399999999999); -#546=CYLINDRICAL_SURFACE('',#35316,0.502399999999999); -#547=CYLINDRICAL_SURFACE('',#35319,0.502399999999999); -#548=CYLINDRICAL_SURFACE('',#35322,0.502399999999999); -#549=CYLINDRICAL_SURFACE('',#35325,0.502399999999999); -#550=CYLINDRICAL_SURFACE('',#35328,0.502399999999999); -#551=CYLINDRICAL_SURFACE('',#35331,0.502399999999999); -#552=CYLINDRICAL_SURFACE('',#35334,0.502399999999999); -#553=CYLINDRICAL_SURFACE('',#35337,0.502399999999999); -#554=CYLINDRICAL_SURFACE('',#35340,0.502399999999999); -#555=CYLINDRICAL_SURFACE('',#35343,0.502399999999999); -#556=CYLINDRICAL_SURFACE('',#35346,0.502399999999999); -#557=CYLINDRICAL_SURFACE('',#35349,0.502399999999999); -#558=CYLINDRICAL_SURFACE('',#35352,0.502399999999999); -#559=CYLINDRICAL_SURFACE('',#35363,0.12); -#560=CYLINDRICAL_SURFACE('',#35365,0.0700000000000015); -#561=CYLINDRICAL_SURFACE('',#35367,0.080000000000021); -#562=CYLINDRICAL_SURFACE('',#35368,0.0799999999999831); -#563=CYLINDRICAL_SURFACE('',#35370,0.0349999999999986); -#564=CYLINDRICAL_SURFACE('',#35371,0.0700000000000015); -#565=CYLINDRICAL_SURFACE('',#35373,0.080000000000021); -#566=CYLINDRICAL_SURFACE('',#35374,0.0799999999999831); -#567=CYLINDRICAL_SURFACE('',#35377,0.0349999999999986); -#568=CYLINDRICAL_SURFACE('',#35378,0.12); -#569=CYLINDRICAL_SURFACE('',#35379,0.0800000000000063); -#570=CYLINDRICAL_SURFACE('',#35381,0.0800000000000316); -#571=CYLINDRICAL_SURFACE('',#35383,0.0699999999999989); -#572=CYLINDRICAL_SURFACE('',#35384,0.0349999999999994); -#573=CYLINDRICAL_SURFACE('',#35386,0.12); -#574=CYLINDRICAL_SURFACE('',#35387,0.0800000000000063); -#575=CYLINDRICAL_SURFACE('',#35389,0.0800000000000316); -#576=CYLINDRICAL_SURFACE('',#35391,0.0699999999999989); -#577=CYLINDRICAL_SURFACE('',#35392,0.0349999999999994); -#578=CYLINDRICAL_SURFACE('',#35394,0.12); -#579=CYLINDRICAL_SURFACE('',#35395,0.12); -#580=CYLINDRICAL_SURFACE('',#35397,0.0700000000000006); -#581=CYLINDRICAL_SURFACE('',#35399,0.0800000000000158); -#582=CYLINDRICAL_SURFACE('',#35401,0.0799999999999958); -#583=CYLINDRICAL_SURFACE('',#35404,0.0799999999999863); -#584=CYLINDRICAL_SURFACE('',#35406,0.0800000000000079); -#585=CYLINDRICAL_SURFACE('',#35408,0.0699999999999998); -#586=CYLINDRICAL_SURFACE('',#35409,0.0350000000000003); -#587=CYLINDRICAL_SURFACE('',#35410,0.0350000000000003); -#588=CYLINDRICAL_SURFACE('',#35412,0.119999999999999); -#589=CYLINDRICAL_SURFACE('',#35413,0.119999999999999); -#590=CYLINDRICAL_SURFACE('',#35415,0.0700000000000006); -#591=CYLINDRICAL_SURFACE('',#35417,0.0799999999999933); -#592=CYLINDRICAL_SURFACE('',#35419,0.0799999999999965); -#593=CYLINDRICAL_SURFACE('',#35422,0.0800000000000098); -#594=CYLINDRICAL_SURFACE('',#35424,0.0799999999999965); -#595=CYLINDRICAL_SURFACE('',#35426,0.0699999999999998); -#596=CYLINDRICAL_SURFACE('',#35427,0.0350000000000012); -#597=CYLINDRICAL_SURFACE('',#35428,0.0349999999999986); -#598=CYLINDRICAL_SURFACE('',#35430,0.12); -#599=CYLINDRICAL_SURFACE('',#35431,0.12); -#600=CYLINDRICAL_SURFACE('',#35433,0.0700000000000015); -#601=CYLINDRICAL_SURFACE('',#35435,0.0799999999999924); -#602=CYLINDRICAL_SURFACE('',#35437,0.0800000000000195); -#603=CYLINDRICAL_SURFACE('',#35440,0.0799999999999872); -#604=CYLINDRICAL_SURFACE('',#35442,0.0799999999999958); -#605=CYLINDRICAL_SURFACE('',#35444,0.0699999999999989); -#606=CYLINDRICAL_SURFACE('',#35445,0.0349999999999994); -#607=CYLINDRICAL_SURFACE('',#35446,0.0350000000000003); -#608=CYLINDRICAL_SURFACE('',#35448,0.12); -#609=CYLINDRICAL_SURFACE('',#35449,0.12); -#610=CYLINDRICAL_SURFACE('',#35451,0.0700000000000024); -#611=CYLINDRICAL_SURFACE('',#35453,0.0800000000000028); -#612=CYLINDRICAL_SURFACE('',#35455,0.0799999999999958); -#613=CYLINDRICAL_SURFACE('',#35458,0.0799999999999863); -#614=CYLINDRICAL_SURFACE('',#35460,0.080000000000021); -#615=CYLINDRICAL_SURFACE('',#35462,0.069999999999998); -#616=CYLINDRICAL_SURFACE('',#35463,0.0350000000000003); -#617=CYLINDRICAL_SURFACE('',#35464,0.0350000000000003); -#618=CYLINDRICAL_SURFACE('',#35466,0.12); -#619=CYLINDRICAL_SURFACE('',#35467,0.12); -#620=CYLINDRICAL_SURFACE('',#35469,0.0700000000000006); -#621=CYLINDRICAL_SURFACE('',#35471,0.0799999999999933); -#622=CYLINDRICAL_SURFACE('',#35473,0.0800000000000079); -#623=CYLINDRICAL_SURFACE('',#35476,0.0799999999999868); -#624=CYLINDRICAL_SURFACE('',#35478,0.0799999999999961); -#625=CYLINDRICAL_SURFACE('',#35480,0.0700000000000006); -#626=CYLINDRICAL_SURFACE('',#35481,0.0349999999999994); -#627=CYLINDRICAL_SURFACE('',#35482,0.0349999999999986); -#628=CYLINDRICAL_SURFACE('',#35484,0.12); -#629=CYLINDRICAL_SURFACE('',#35485,0.12); -#630=CYLINDRICAL_SURFACE('',#35487,0.0700000000000006); -#631=CYLINDRICAL_SURFACE('',#35489,0.0799999999999928); -#632=CYLINDRICAL_SURFACE('',#35491,0.0799999999999958); -#633=CYLINDRICAL_SURFACE('',#35494,0.0799999999999868); -#634=CYLINDRICAL_SURFACE('',#35496,0.0799999999999965); -#635=CYLINDRICAL_SURFACE('',#35498,0.0700000000000002); -#636=CYLINDRICAL_SURFACE('',#35499,0.0349999999999999); -#637=CYLINDRICAL_SURFACE('',#35500,0.0349999999999994); -#638=CYLINDRICAL_SURFACE('',#35502,0.12); -#639=CYLINDRICAL_SURFACE('',#35503,0.12); -#640=CYLINDRICAL_SURFACE('',#35505,0.0700000000000006); -#641=CYLINDRICAL_SURFACE('',#35507,0.0800000000000163); -#642=CYLINDRICAL_SURFACE('',#35509,0.0800000000000202); -#643=CYLINDRICAL_SURFACE('',#35512,0.0799999999999868); -#644=CYLINDRICAL_SURFACE('',#35514,0.0800000000000202); -#645=CYLINDRICAL_SURFACE('',#35516,0.0700000000000002); -#646=CYLINDRICAL_SURFACE('',#35517,0.0349999999999999); -#647=CYLINDRICAL_SURFACE('',#35518,0.0349999999999986); -#648=CYLINDRICAL_SURFACE('',#35520,0.12); -#649=CYLINDRICAL_SURFACE('',#35521,0.12); -#650=CYLINDRICAL_SURFACE('',#35523,0.0700000000000006); -#651=CYLINDRICAL_SURFACE('',#35525,0.080000000000016); -#652=CYLINDRICAL_SURFACE('',#35527,0.0799999999999963); -#653=CYLINDRICAL_SURFACE('',#35530,0.08000000000001); -#654=CYLINDRICAL_SURFACE('',#35532,0.0799999999999963); -#655=CYLINDRICAL_SURFACE('',#35534,0.0700000000000008); -#656=CYLINDRICAL_SURFACE('',#35535,0.0349999999999999); -#657=CYLINDRICAL_SURFACE('',#35536,0.0349999999999994); -#658=CYLINDRICAL_SURFACE('',#35538,0.12); -#659=CYLINDRICAL_SURFACE('',#35539,0.12); -#660=CYLINDRICAL_SURFACE('',#35541,0.0700000000000015); -#661=CYLINDRICAL_SURFACE('',#35543,0.0800000000000078); -#662=CYLINDRICAL_SURFACE('',#35545,0.0799999999999963); -#663=CYLINDRICAL_SURFACE('',#35548,0.0799999999999869); -#664=CYLINDRICAL_SURFACE('',#35550,0.0799999999999962); -#665=CYLINDRICAL_SURFACE('',#35552,0.0700000000000005); -#666=CYLINDRICAL_SURFACE('',#35553,0.034999999999999); -#667=CYLINDRICAL_SURFACE('',#35554,0.0349999999999994); -#668=CYLINDRICAL_SURFACE('',#35556,0.12); -#669=CYLINDRICAL_SURFACE('',#35557,0.12); -#670=CYLINDRICAL_SURFACE('',#35559,0.0700000000000006); -#671=CYLINDRICAL_SURFACE('',#35561,0.0800000000000046); -#672=CYLINDRICAL_SURFACE('',#35563,0.0800000000000072); -#673=CYLINDRICAL_SURFACE('',#35566,0.0799999999999963); -#674=CYLINDRICAL_SURFACE('',#35568,0.0799999999999867); -#675=CYLINDRICAL_SURFACE('',#35570,0.0700000000000005); -#676=CYLINDRICAL_SURFACE('',#35571,0.0349999999999993); -#677=CYLINDRICAL_SURFACE('',#35572,0.0349999999999994); -#678=CYLINDRICAL_SURFACE('',#35574,0.12); -#679=CYLINDRICAL_SURFACE('',#35575,0.12); -#680=CYLINDRICAL_SURFACE('',#35577,0.0700000000000006); -#681=CYLINDRICAL_SURFACE('',#35579,0.080000000000008); -#682=CYLINDRICAL_SURFACE('',#35581,0.0799999999999962); -#683=CYLINDRICAL_SURFACE('',#35584,0.0799999999999868); -#684=CYLINDRICAL_SURFACE('',#35586,0.0799999999999967); -#685=CYLINDRICAL_SURFACE('',#35588,0.0700000000000008); -#686=CYLINDRICAL_SURFACE('',#35589,0.0349999999999998); -#687=CYLINDRICAL_SURFACE('',#35590,0.0349999999999986); -#688=CYLINDRICAL_SURFACE('',#35592,0.12); -#689=CYLINDRICAL_SURFACE('',#35593,0.12); -#690=CYLINDRICAL_SURFACE('',#35595,0.0700000000000006); -#691=CYLINDRICAL_SURFACE('',#35597,0.0800000000000048); -#692=CYLINDRICAL_SURFACE('',#35599,0.0800000000000071); -#693=CYLINDRICAL_SURFACE('',#35602,0.0799999999999987); -#694=CYLINDRICAL_SURFACE('',#35604,0.0799999999999963); -#695=CYLINDRICAL_SURFACE('',#35606,0.070000000000001); -#696=CYLINDRICAL_SURFACE('',#35607,0.034999999999999); -#697=CYLINDRICAL_SURFACE('',#35608,0.0349999999999994); -#698=CYLINDRICAL_SURFACE('',#35610,0.12); -#699=CYLINDRICAL_SURFACE('',#35611,0.12); -#700=CYLINDRICAL_SURFACE('',#35613,0.0700000000000006); -#701=CYLINDRICAL_SURFACE('',#35615,0.0800000000000045); -#702=CYLINDRICAL_SURFACE('',#35617,0.0799999999999958); -#703=CYLINDRICAL_SURFACE('',#35620,0.0799999999999989); -#704=CYLINDRICAL_SURFACE('',#35622,0.0799999999999965); -#705=CYLINDRICAL_SURFACE('',#35624,0.0700000000000002); -#706=CYLINDRICAL_SURFACE('',#35625,0.0349999999999999); -#707=CYLINDRICAL_SURFACE('',#35626,0.0349999999999986); -#708=CYLINDRICAL_SURFACE('',#35628,0.12); -#709=CYLINDRICAL_SURFACE('',#35629,0.12); -#710=CYLINDRICAL_SURFACE('',#35631,0.0700000000000006); -#711=CYLINDRICAL_SURFACE('',#35633,0.0800000000000054); -#712=CYLINDRICAL_SURFACE('',#35635,0.0799999999999961); -#713=CYLINDRICAL_SURFACE('',#35638,0.079999999999998); -#714=CYLINDRICAL_SURFACE('',#35640,0.0799999999999958); -#715=CYLINDRICAL_SURFACE('',#35642,0.070000000000001); -#716=CYLINDRICAL_SURFACE('',#35643,0.0350000000000007); -#717=CYLINDRICAL_SURFACE('',#35644,0.0349999999999986); -#718=CYLINDRICAL_SURFACE('',#35646,0.12); -#719=CYLINDRICAL_SURFACE('',#35647,0.12); -#720=CYLINDRICAL_SURFACE('',#35649,0.0700000000000006); -#721=CYLINDRICAL_SURFACE('',#35651,0.0799999999999928); -#722=CYLINDRICAL_SURFACE('',#35653,0.0799999999999961); -#723=CYLINDRICAL_SURFACE('',#35656,0.0799999999999967); -#724=CYLINDRICAL_SURFACE('',#35658,0.0799999999999965); -#725=CYLINDRICAL_SURFACE('',#35660,0.0699999999999989); -#726=CYLINDRICAL_SURFACE('',#35661,0.0350000000000003); -#727=CYLINDRICAL_SURFACE('',#35662,0.0349999999999986); -#728=CYLINDRICAL_SURFACE('',#35664,0.12); -#729=CYLINDRICAL_SURFACE('',#35665,0.12); -#730=CYLINDRICAL_SURFACE('',#35667,0.0700000000000015); -#731=CYLINDRICAL_SURFACE('',#35669,0.0800000000000176); -#732=CYLINDRICAL_SURFACE('',#35671,0.0799999999999965); -#733=CYLINDRICAL_SURFACE('',#35674,0.0799999999999872); -#734=CYLINDRICAL_SURFACE('',#35676,0.0800000000000064); -#735=CYLINDRICAL_SURFACE('',#35678,0.0700000000000006); -#736=CYLINDRICAL_SURFACE('',#35679,0.0350000000000012); -#737=CYLINDRICAL_SURFACE('',#35680,0.0350000000000003); -#738=CYLINDRICAL_SURFACE('',#35682,0.12); -#739=CYLINDRICAL_SURFACE('',#35683,0.12); -#740=CYLINDRICAL_SURFACE('',#35685,0.0700000000000006); -#741=CYLINDRICAL_SURFACE('',#35687,0.0799999999999924); -#742=CYLINDRICAL_SURFACE('',#35689,0.0799999999999958); -#743=CYLINDRICAL_SURFACE('',#35692,0.0800000000000115); -#744=CYLINDRICAL_SURFACE('',#35694,0.0799999999999958); -#745=CYLINDRICAL_SURFACE('',#35696,0.069999999999998); -#746=CYLINDRICAL_SURFACE('',#35697,0.0350000000000003); -#747=CYLINDRICAL_SURFACE('',#35698,0.0349999999999986); -#748=CYLINDRICAL_SURFACE('',#35700,0.12); -#749=CYLINDRICAL_SURFACE('',#35701,0.12); -#750=CYLINDRICAL_SURFACE('',#35703,0.0700000000000006); -#751=CYLINDRICAL_SURFACE('',#35705,0.0799999999999933); -#752=CYLINDRICAL_SURFACE('',#35707,0.080000000000021); -#753=CYLINDRICAL_SURFACE('',#35710,0.0799999999999863); -#754=CYLINDRICAL_SURFACE('',#35712,0.0799999999999965); -#755=CYLINDRICAL_SURFACE('',#35714,0.0699999999999989); -#756=CYLINDRICAL_SURFACE('',#35715,0.0349999999999994); -#757=CYLINDRICAL_SURFACE('',#35716,0.0350000000000003); -#758=CYLINDRICAL_SURFACE('',#35718,0.119999999999999); -#759=CYLINDRICAL_SURFACE('',#35719,0.119999999999999); -#760=CYLINDRICAL_SURFACE('',#35721,0.0700000000000024); -#761=CYLINDRICAL_SURFACE('',#35723,0.0800000000000045); -#762=CYLINDRICAL_SURFACE('',#35725,0.0799999999999965); -#763=CYLINDRICAL_SURFACE('',#35728,0.0799999999999872); -#764=CYLINDRICAL_SURFACE('',#35730,0.0800000000000195); -#765=CYLINDRICAL_SURFACE('',#35732,0.0699999999999998); -#766=CYLINDRICAL_SURFACE('',#35733,0.0350000000000012); -#767=CYLINDRICAL_SURFACE('',#35734,0.0350000000000003); -#768=CYLINDRICAL_SURFACE('',#35736,0.12); -#769=CYLINDRICAL_SURFACE('',#35737,0.0700000000000006); -#770=CYLINDRICAL_SURFACE('',#35739,0.0800000000000158); -#771=CYLINDRICAL_SURFACE('',#35741,0.0799999999999958); -#772=CYLINDRICAL_SURFACE('',#35744,0.0799999999999863); -#773=CYLINDRICAL_SURFACE('',#35746,0.0800000000000079); -#774=CYLINDRICAL_SURFACE('',#35748,0.0699999999999998); -#775=CYLINDRICAL_SURFACE('',#35750,0.0350000000000003); -#776=CYLINDRICAL_SURFACE('',#35751,0.0350000000000003); -#777=CYLINDRICAL_SURFACE('',#35753,0.12); -#778=CYLINDRICAL_SURFACE('',#35754,0.119999999999999); -#779=CYLINDRICAL_SURFACE('',#35755,0.0700000000000006); -#780=CYLINDRICAL_SURFACE('',#35757,0.0799999999999933); -#781=CYLINDRICAL_SURFACE('',#35759,0.0799999999999965); -#782=CYLINDRICAL_SURFACE('',#35762,0.0800000000000098); -#783=CYLINDRICAL_SURFACE('',#35764,0.0799999999999965); -#784=CYLINDRICAL_SURFACE('',#35766,0.0699999999999998); -#785=CYLINDRICAL_SURFACE('',#35768,0.0350000000000012); -#786=CYLINDRICAL_SURFACE('',#35769,0.0349999999999986); -#787=CYLINDRICAL_SURFACE('',#35771,0.119999999999999); -#788=CYLINDRICAL_SURFACE('',#35772,0.12); -#789=CYLINDRICAL_SURFACE('',#35773,0.0700000000000015); -#790=CYLINDRICAL_SURFACE('',#35775,0.0799999999999924); -#791=CYLINDRICAL_SURFACE('',#35777,0.0800000000000195); -#792=CYLINDRICAL_SURFACE('',#35780,0.0799999999999872); -#793=CYLINDRICAL_SURFACE('',#35782,0.0799999999999958); -#794=CYLINDRICAL_SURFACE('',#35784,0.0699999999999989); -#795=CYLINDRICAL_SURFACE('',#35786,0.0349999999999994); -#796=CYLINDRICAL_SURFACE('',#35787,0.0350000000000003); -#797=CYLINDRICAL_SURFACE('',#35789,0.12); -#798=CYLINDRICAL_SURFACE('',#35790,0.12); -#799=CYLINDRICAL_SURFACE('',#35791,0.0700000000000024); -#800=CYLINDRICAL_SURFACE('',#35793,0.0800000000000028); -#801=CYLINDRICAL_SURFACE('',#35795,0.0799999999999958); -#802=CYLINDRICAL_SURFACE('',#35798,0.0799999999999863); -#803=CYLINDRICAL_SURFACE('',#35800,0.080000000000021); -#804=CYLINDRICAL_SURFACE('',#35802,0.069999999999998); -#805=CYLINDRICAL_SURFACE('',#35804,0.0350000000000003); -#806=CYLINDRICAL_SURFACE('',#35805,0.0350000000000003); -#807=CYLINDRICAL_SURFACE('',#35807,0.12); -#808=CYLINDRICAL_SURFACE('',#35808,0.12); -#809=CYLINDRICAL_SURFACE('',#35809,0.0700000000000006); -#810=CYLINDRICAL_SURFACE('',#35811,0.0799999999999933); -#811=CYLINDRICAL_SURFACE('',#35813,0.0800000000000079); -#812=CYLINDRICAL_SURFACE('',#35816,0.0799999999999868); -#813=CYLINDRICAL_SURFACE('',#35818,0.0799999999999961); -#814=CYLINDRICAL_SURFACE('',#35820,0.0700000000000006); -#815=CYLINDRICAL_SURFACE('',#35822,0.0349999999999994); -#816=CYLINDRICAL_SURFACE('',#35823,0.0349999999999986); -#817=CYLINDRICAL_SURFACE('',#35825,0.12); -#818=CYLINDRICAL_SURFACE('',#35826,0.12); -#819=CYLINDRICAL_SURFACE('',#35827,0.0700000000000006); -#820=CYLINDRICAL_SURFACE('',#35829,0.0799999999999928); -#821=CYLINDRICAL_SURFACE('',#35831,0.0799999999999958); -#822=CYLINDRICAL_SURFACE('',#35834,0.0799999999999868); -#823=CYLINDRICAL_SURFACE('',#35836,0.0799999999999965); -#824=CYLINDRICAL_SURFACE('',#35838,0.0700000000000002); -#825=CYLINDRICAL_SURFACE('',#35840,0.0349999999999999); -#826=CYLINDRICAL_SURFACE('',#35841,0.0349999999999994); -#827=CYLINDRICAL_SURFACE('',#35843,0.12); -#828=CYLINDRICAL_SURFACE('',#35844,0.12); -#829=CYLINDRICAL_SURFACE('',#35845,0.0700000000000006); -#830=CYLINDRICAL_SURFACE('',#35847,0.0800000000000163); -#831=CYLINDRICAL_SURFACE('',#35849,0.0800000000000202); -#832=CYLINDRICAL_SURFACE('',#35852,0.0799999999999868); -#833=CYLINDRICAL_SURFACE('',#35854,0.0800000000000202); -#834=CYLINDRICAL_SURFACE('',#35856,0.0700000000000002); -#835=CYLINDRICAL_SURFACE('',#35858,0.0349999999999999); -#836=CYLINDRICAL_SURFACE('',#35859,0.0349999999999986); -#837=CYLINDRICAL_SURFACE('',#35861,0.12); -#838=CYLINDRICAL_SURFACE('',#35862,0.12); -#839=CYLINDRICAL_SURFACE('',#35863,0.0700000000000006); -#840=CYLINDRICAL_SURFACE('',#35865,0.080000000000016); -#841=CYLINDRICAL_SURFACE('',#35867,0.0799999999999963); -#842=CYLINDRICAL_SURFACE('',#35870,0.08000000000001); -#843=CYLINDRICAL_SURFACE('',#35872,0.0799999999999963); -#844=CYLINDRICAL_SURFACE('',#35874,0.0700000000000008); -#845=CYLINDRICAL_SURFACE('',#35876,0.0349999999999999); -#846=CYLINDRICAL_SURFACE('',#35877,0.0349999999999994); -#847=CYLINDRICAL_SURFACE('',#35879,0.12); -#848=CYLINDRICAL_SURFACE('',#35880,0.12); -#849=CYLINDRICAL_SURFACE('',#35881,0.0700000000000015); -#850=CYLINDRICAL_SURFACE('',#35883,0.0800000000000078); -#851=CYLINDRICAL_SURFACE('',#35885,0.0799999999999963); -#852=CYLINDRICAL_SURFACE('',#35888,0.0799999999999869); -#853=CYLINDRICAL_SURFACE('',#35890,0.0799999999999962); -#854=CYLINDRICAL_SURFACE('',#35892,0.0700000000000005); -#855=CYLINDRICAL_SURFACE('',#35894,0.034999999999999); -#856=CYLINDRICAL_SURFACE('',#35895,0.0349999999999994); -#857=CYLINDRICAL_SURFACE('',#35897,0.12); -#858=CYLINDRICAL_SURFACE('',#35898,0.12); -#859=CYLINDRICAL_SURFACE('',#35899,0.0700000000000006); -#860=CYLINDRICAL_SURFACE('',#35901,0.0800000000000046); -#861=CYLINDRICAL_SURFACE('',#35903,0.0800000000000072); -#862=CYLINDRICAL_SURFACE('',#35906,0.0799999999999963); -#863=CYLINDRICAL_SURFACE('',#35908,0.0799999999999867); -#864=CYLINDRICAL_SURFACE('',#35910,0.0700000000000005); -#865=CYLINDRICAL_SURFACE('',#35912,0.0349999999999993); -#866=CYLINDRICAL_SURFACE('',#35913,0.0349999999999994); -#867=CYLINDRICAL_SURFACE('',#35915,0.12); -#868=CYLINDRICAL_SURFACE('',#35916,0.12); -#869=CYLINDRICAL_SURFACE('',#35917,0.0700000000000006); -#870=CYLINDRICAL_SURFACE('',#35919,0.080000000000008); -#871=CYLINDRICAL_SURFACE('',#35921,0.0799999999999962); -#872=CYLINDRICAL_SURFACE('',#35924,0.0799999999999868); -#873=CYLINDRICAL_SURFACE('',#35926,0.0799999999999967); -#874=CYLINDRICAL_SURFACE('',#35928,0.0700000000000008); -#875=CYLINDRICAL_SURFACE('',#35930,0.0349999999999998); -#876=CYLINDRICAL_SURFACE('',#35931,0.0349999999999986); -#877=CYLINDRICAL_SURFACE('',#35933,0.12); -#878=CYLINDRICAL_SURFACE('',#35934,0.12); -#879=CYLINDRICAL_SURFACE('',#35935,0.0700000000000006); -#880=CYLINDRICAL_SURFACE('',#35937,0.0800000000000048); -#881=CYLINDRICAL_SURFACE('',#35939,0.0800000000000071); -#882=CYLINDRICAL_SURFACE('',#35942,0.0799999999999987); -#883=CYLINDRICAL_SURFACE('',#35944,0.0799999999999963); -#884=CYLINDRICAL_SURFACE('',#35946,0.070000000000001); -#885=CYLINDRICAL_SURFACE('',#35948,0.034999999999999); -#886=CYLINDRICAL_SURFACE('',#35949,0.0349999999999994); -#887=CYLINDRICAL_SURFACE('',#35951,0.12); -#888=CYLINDRICAL_SURFACE('',#35952,0.12); -#889=CYLINDRICAL_SURFACE('',#35953,0.0700000000000006); -#890=CYLINDRICAL_SURFACE('',#35955,0.0800000000000045); -#891=CYLINDRICAL_SURFACE('',#35957,0.0799999999999958); -#892=CYLINDRICAL_SURFACE('',#35960,0.0799999999999989); -#893=CYLINDRICAL_SURFACE('',#35962,0.0799999999999965); -#894=CYLINDRICAL_SURFACE('',#35964,0.0700000000000002); -#895=CYLINDRICAL_SURFACE('',#35966,0.0349999999999999); -#896=CYLINDRICAL_SURFACE('',#35967,0.0349999999999986); -#897=CYLINDRICAL_SURFACE('',#35969,0.12); -#898=CYLINDRICAL_SURFACE('',#35970,0.12); -#899=CYLINDRICAL_SURFACE('',#35971,0.0700000000000006); -#900=CYLINDRICAL_SURFACE('',#35973,0.0800000000000054); -#901=CYLINDRICAL_SURFACE('',#35975,0.0799999999999961); -#902=CYLINDRICAL_SURFACE('',#35978,0.079999999999998); -#903=CYLINDRICAL_SURFACE('',#35980,0.0799999999999958); -#904=CYLINDRICAL_SURFACE('',#35982,0.070000000000001); -#905=CYLINDRICAL_SURFACE('',#35984,0.0350000000000007); -#906=CYLINDRICAL_SURFACE('',#35985,0.0349999999999986); -#907=CYLINDRICAL_SURFACE('',#35987,0.12); -#908=CYLINDRICAL_SURFACE('',#35988,0.12); -#909=CYLINDRICAL_SURFACE('',#35989,0.0700000000000006); -#910=CYLINDRICAL_SURFACE('',#35991,0.0799999999999928); -#911=CYLINDRICAL_SURFACE('',#35993,0.0799999999999961); -#912=CYLINDRICAL_SURFACE('',#35996,0.0799999999999967); -#913=CYLINDRICAL_SURFACE('',#35998,0.0799999999999965); -#914=CYLINDRICAL_SURFACE('',#36000,0.0699999999999989); -#915=CYLINDRICAL_SURFACE('',#36002,0.0350000000000003); -#916=CYLINDRICAL_SURFACE('',#36003,0.0349999999999986); -#917=CYLINDRICAL_SURFACE('',#36005,0.12); -#918=CYLINDRICAL_SURFACE('',#36006,0.12); -#919=CYLINDRICAL_SURFACE('',#36007,0.0700000000000015); -#920=CYLINDRICAL_SURFACE('',#36009,0.0800000000000176); -#921=CYLINDRICAL_SURFACE('',#36011,0.0799999999999965); -#922=CYLINDRICAL_SURFACE('',#36014,0.0799999999999872); -#923=CYLINDRICAL_SURFACE('',#36016,0.0800000000000064); -#924=CYLINDRICAL_SURFACE('',#36018,0.0700000000000006); -#925=CYLINDRICAL_SURFACE('',#36020,0.0350000000000012); -#926=CYLINDRICAL_SURFACE('',#36021,0.0350000000000003); -#927=CYLINDRICAL_SURFACE('',#36023,0.12); -#928=CYLINDRICAL_SURFACE('',#36024,0.12); -#929=CYLINDRICAL_SURFACE('',#36025,0.0700000000000006); -#930=CYLINDRICAL_SURFACE('',#36027,0.0799999999999924); -#931=CYLINDRICAL_SURFACE('',#36029,0.0799999999999958); -#932=CYLINDRICAL_SURFACE('',#36032,0.0800000000000115); -#933=CYLINDRICAL_SURFACE('',#36034,0.0799999999999958); -#934=CYLINDRICAL_SURFACE('',#36036,0.069999999999998); -#935=CYLINDRICAL_SURFACE('',#36038,0.0350000000000003); -#936=CYLINDRICAL_SURFACE('',#36039,0.0349999999999986); -#937=CYLINDRICAL_SURFACE('',#36041,0.12); -#938=CYLINDRICAL_SURFACE('',#36042,0.12); -#939=CYLINDRICAL_SURFACE('',#36043,0.0700000000000006); -#940=CYLINDRICAL_SURFACE('',#36045,0.0799999999999933); -#941=CYLINDRICAL_SURFACE('',#36047,0.080000000000021); -#942=CYLINDRICAL_SURFACE('',#36050,0.0799999999999863); -#943=CYLINDRICAL_SURFACE('',#36052,0.0799999999999965); -#944=CYLINDRICAL_SURFACE('',#36054,0.0699999999999989); -#945=CYLINDRICAL_SURFACE('',#36056,0.0349999999999994); -#946=CYLINDRICAL_SURFACE('',#36057,0.0350000000000003); -#947=CYLINDRICAL_SURFACE('',#36059,0.12); -#948=CYLINDRICAL_SURFACE('',#36060,0.119999999999999); -#949=CYLINDRICAL_SURFACE('',#36061,0.0700000000000024); -#950=CYLINDRICAL_SURFACE('',#36063,0.0800000000000045); -#951=CYLINDRICAL_SURFACE('',#36065,0.0799999999999965); -#952=CYLINDRICAL_SURFACE('',#36068,0.0799999999999872); -#953=CYLINDRICAL_SURFACE('',#36070,0.0800000000000195); -#954=CYLINDRICAL_SURFACE('',#36072,0.0699999999999998); -#955=CYLINDRICAL_SURFACE('',#36074,0.0350000000000012); -#956=CYLINDRICAL_SURFACE('',#36075,0.0350000000000003); -#957=CYLINDRICAL_SURFACE('',#36077,0.119999999999999); -#958=CYLINDRICAL_SURFACE('',#36078,0.12); -#959=CIRCLE('',#33420,0.199999999999998); -#960=CIRCLE('',#33421,0.199999999999999); -#961=CIRCLE('',#33422,0.199999999999997); -#962=CIRCLE('',#33423,0.199999999999999); -#963=CIRCLE('',#33424,0.200000000000001); -#964=CIRCLE('',#33425,0.166665999999988); -#965=CIRCLE('',#33426,1.05); -#966=CIRCLE('',#33427,0.16666599999998); -#967=CIRCLE('',#33428,0.200000000000003); -#968=CIRCLE('',#33429,0.200000000000001); -#969=CIRCLE('',#33430,0.2); -#970=CIRCLE('',#33431,0.200000000000006); -#971=CIRCLE('',#33432,0.2); -#972=CIRCLE('',#33433,0.200000000000004); -#973=CIRCLE('',#33434,0.660000000000001); -#974=CIRCLE('',#33435,0.499999999999999); -#975=CIRCLE('',#33436,0.250000000000003); -#976=CIRCLE('',#33437,1.05); -#977=CIRCLE('',#33438,0.249999999999985); -#978=CIRCLE('',#33439,0.500000000000003); -#979=CIRCLE('',#33440,0.699999999999999); -#980=CIRCLE('',#33441,0.700000000000001); -#981=CIRCLE('',#33448,0.35); -#982=CIRCLE('',#33450,0.35); -#983=CIRCLE('',#33454,0.35); -#984=CIRCLE('',#33456,0.35); -#985=CIRCLE('',#33460,0.35); -#986=CIRCLE('',#33462,0.35); -#987=CIRCLE('',#33466,0.35); -#988=CIRCLE('',#33468,0.35); -#989=CIRCLE('',#33472,0.35); -#990=CIRCLE('',#33474,0.35); -#991=CIRCLE('',#33478,0.35); -#992=CIRCLE('',#33480,0.35); -#993=CIRCLE('',#33484,0.35); -#994=CIRCLE('',#33486,0.35); -#995=CIRCLE('',#33490,0.35); -#996=CIRCLE('',#33492,0.35); -#997=CIRCLE('',#33496,0.35); -#998=CIRCLE('',#33498,0.35); -#999=CIRCLE('',#33502,0.35); -#1000=CIRCLE('',#33504,0.35); -#1001=CIRCLE('',#33508,0.35); -#1002=CIRCLE('',#33510,0.35); -#1003=CIRCLE('',#33514,0.35); -#1004=CIRCLE('',#33516,0.35); -#1005=CIRCLE('',#33520,0.35); -#1006=CIRCLE('',#33522,0.35); -#1007=CIRCLE('',#33526,0.35); -#1008=CIRCLE('',#33528,0.35); -#1009=CIRCLE('',#33532,0.35); -#1010=CIRCLE('',#33534,0.35); -#1011=CIRCLE('',#33538,0.35); -#1012=CIRCLE('',#33540,0.35); -#1013=CIRCLE('',#33544,0.35); -#1014=CIRCLE('',#33546,0.35); -#1015=CIRCLE('',#33550,0.35); -#1016=CIRCLE('',#33552,0.35); -#1017=CIRCLE('',#33556,0.35); -#1018=CIRCLE('',#33558,0.35); -#1019=CIRCLE('',#33560,0.35); -#1020=CIRCLE('',#33564,0.35); -#1021=CIRCLE('',#33834,0.660000000000001); -#1022=CIRCLE('',#33836,0.26); -#1023=CIRCLE('',#33840,0.200000000000006); -#1024=CIRCLE('',#33843,0.2); -#1025=CIRCLE('',#33846,0.200000000000004); -#1026=CIRCLE('',#33849,0.2); -#1027=CIRCLE('',#33853,0.200000000000001); -#1028=CIRCLE('',#33855,0.166665999999988); -#1029=CIRCLE('',#33857,1.05); -#1030=CIRCLE('',#33859,0.16666599999998); -#1031=CIRCLE('',#33861,0.200000000000003); -#1032=CIRCLE('',#33864,0.200000000000001); -#1033=CIRCLE('',#33870,0.499999999999999); -#1034=CIRCLE('',#33872,0.250000000000003); -#1035=CIRCLE('',#33874,1.05); -#1036=CIRCLE('',#33876,0.249999999999985); -#1037=CIRCLE('',#33878,0.500000000000003); -#1038=CIRCLE('',#33881,0.699999999999999); -#1039=CIRCLE('',#33884,0.700000000000001); -#1040=CIRCLE('',#33889,0.199999999999999); -#1041=CIRCLE('',#33890,0.199999999999998); -#1042=CIRCLE('',#33897,0.199999999999999); -#1043=CIRCLE('',#33898,0.199999999999997); -#1044=CIRCLE('',#34011,0.6524); -#1045=CIRCLE('',#34012,0.6524); -#1046=CIRCLE('',#34014,0.6524); -#1047=CIRCLE('',#34015,0.6524); -#1048=CIRCLE('',#34017,0.6524); -#1049=CIRCLE('',#34018,0.6524); -#1050=CIRCLE('',#34020,0.6524); -#1051=CIRCLE('',#34021,0.6524); -#1052=CIRCLE('',#34023,0.6524); -#1053=CIRCLE('',#34024,0.6524); -#1054=CIRCLE('',#34026,0.6524); -#1055=CIRCLE('',#34027,0.6524); -#1056=CIRCLE('',#34029,0.6524); -#1057=CIRCLE('',#34030,0.6524); -#1058=CIRCLE('',#34032,0.6524); -#1059=CIRCLE('',#34033,0.6524); -#1060=CIRCLE('',#34035,0.6524); -#1061=CIRCLE('',#34036,0.6524); -#1062=CIRCLE('',#34038,0.6524); -#1063=CIRCLE('',#34039,0.6524); -#1064=CIRCLE('',#34041,0.6524); -#1065=CIRCLE('',#34042,0.6524); -#1066=CIRCLE('',#34044,0.6524); -#1067=CIRCLE('',#34045,0.6524); -#1068=CIRCLE('',#34047,0.6524); -#1069=CIRCLE('',#34048,0.6524); -#1070=CIRCLE('',#34050,0.6524); -#1071=CIRCLE('',#34051,0.6524); -#1072=CIRCLE('',#34053,0.6524); -#1073=CIRCLE('',#34054,0.6524); -#1074=CIRCLE('',#34056,0.6524); -#1075=CIRCLE('',#34057,0.6524); -#1076=CIRCLE('',#34059,0.6524); -#1077=CIRCLE('',#34060,0.6524); -#1078=CIRCLE('',#34062,0.6524); -#1079=CIRCLE('',#34063,0.6524); -#1080=CIRCLE('',#34065,0.6524); -#1081=CIRCLE('',#34066,0.6524); -#1082=CIRCLE('',#34068,0.6524); -#1083=CIRCLE('',#34069,0.6524); -#1084=CIRCLE('',#34071,0.6524); -#1085=CIRCLE('',#34072,0.6524); -#1086=CIRCLE('',#34074,0.6524); -#1087=CIRCLE('',#34075,0.6524); -#1088=CIRCLE('',#34077,0.6524); -#1089=CIRCLE('',#34078,0.6524); -#1090=CIRCLE('',#34080,0.6524); -#1091=CIRCLE('',#34081,0.6524); -#1092=CIRCLE('',#34083,0.6524); -#1093=CIRCLE('',#34084,0.6524); -#1094=CIRCLE('',#34086,0.6524); -#1095=CIRCLE('',#34087,0.6524); -#1096=CIRCLE('',#34089,0.6524); -#1097=CIRCLE('',#34090,0.6524); -#1098=CIRCLE('',#34092,0.6524); -#1099=CIRCLE('',#34093,0.6524); -#1100=CIRCLE('',#34095,0.6524); -#1101=CIRCLE('',#34096,0.6524); -#1102=CIRCLE('',#34098,0.6524); -#1103=CIRCLE('',#34099,0.6524); -#1104=CIRCLE('',#34101,0.6524); -#1105=CIRCLE('',#34102,0.6524); -#1106=CIRCLE('',#34104,0.6524); -#1107=CIRCLE('',#34105,0.6524); -#1108=CIRCLE('',#34107,0.6524); -#1109=CIRCLE('',#34108,0.6524); -#1110=CIRCLE('',#34110,0.6524); -#1111=CIRCLE('',#34111,0.6524); -#1112=CIRCLE('',#34113,0.6524); -#1113=CIRCLE('',#34114,0.6524); -#1114=CIRCLE('',#34116,0.6524); -#1115=CIRCLE('',#34117,0.6524); -#1116=CIRCLE('',#34119,0.6524); -#1117=CIRCLE('',#34120,0.6524); -#1118=CIRCLE('',#34122,0.6524); -#1119=CIRCLE('',#34123,0.6524); -#1120=CIRCLE('',#34144,0.499999999999999); -#1121=CIRCLE('',#34145,0.499999999999999); -#1122=CIRCLE('',#34147,0.499999999999999); -#1123=CIRCLE('',#34148,0.499999999999999); -#1124=CIRCLE('',#34150,0.499999999999999); -#1125=CIRCLE('',#34151,0.499999999999999); -#1126=CIRCLE('',#34153,0.499999999999999); -#1127=CIRCLE('',#34154,0.499999999999999); -#1128=CIRCLE('',#34156,0.499999999999999); -#1129=CIRCLE('',#34157,0.499999999999999); -#1130=CIRCLE('',#34159,0.499999999999999); -#1131=CIRCLE('',#34160,0.499999999999999); -#1132=CIRCLE('',#34162,0.499999999999999); -#1133=CIRCLE('',#34163,0.499999999999999); -#1134=CIRCLE('',#34165,0.499999999999999); -#1135=CIRCLE('',#34166,0.499999999999999); -#1136=CIRCLE('',#34168,0.499999999999999); -#1137=CIRCLE('',#34169,0.499999999999999); -#1138=CIRCLE('',#34171,0.499999999999999); -#1139=CIRCLE('',#34172,0.499999999999999); -#1140=CIRCLE('',#34174,0.499999999999999); -#1141=CIRCLE('',#34175,0.499999999999999); -#1142=CIRCLE('',#34177,0.499999999999999); -#1143=CIRCLE('',#34178,0.499999999999999); -#1144=CIRCLE('',#34180,0.499999999999999); -#1145=CIRCLE('',#34181,0.499999999999999); -#1146=CIRCLE('',#34183,0.499999999999999); -#1147=CIRCLE('',#34184,0.499999999999999); -#1148=CIRCLE('',#34186,0.499999999999999); -#1149=CIRCLE('',#34187,0.499999999999999); -#1150=CIRCLE('',#34189,0.499999999999999); -#1151=CIRCLE('',#34190,0.499999999999999); -#1152=CIRCLE('',#34192,0.499999999999999); -#1153=CIRCLE('',#34193,0.499999999999999); -#1154=CIRCLE('',#34195,0.499999999999999); -#1155=CIRCLE('',#34196,0.499999999999999); -#1156=CIRCLE('',#34198,0.499999999999999); -#1157=CIRCLE('',#34199,0.499999999999999); -#1158=CIRCLE('',#34201,0.499999999999999); -#1159=CIRCLE('',#34202,0.499999999999999); -#1160=CIRCLE('',#34204,0.499999999999999); -#1161=CIRCLE('',#34205,0.499999999999999); -#1162=CIRCLE('',#34207,0.499999999999999); -#1163=CIRCLE('',#34208,0.499999999999999); -#1164=CIRCLE('',#34210,0.499999999999999); -#1165=CIRCLE('',#34211,0.499999999999999); -#1166=CIRCLE('',#34213,0.499999999999999); -#1167=CIRCLE('',#34214,0.499999999999999); -#1168=CIRCLE('',#34216,0.499999999999999); -#1169=CIRCLE('',#34217,0.499999999999999); -#1170=CIRCLE('',#34219,0.499999999999999); -#1171=CIRCLE('',#34220,0.499999999999999); -#1172=CIRCLE('',#34222,0.499999999999999); -#1173=CIRCLE('',#34223,0.499999999999999); -#1174=CIRCLE('',#34225,0.499999999999999); -#1175=CIRCLE('',#34226,0.499999999999999); -#1176=CIRCLE('',#34228,0.499999999999999); -#1177=CIRCLE('',#34229,0.499999999999999); -#1178=CIRCLE('',#34231,0.499999999999999); -#1179=CIRCLE('',#34232,0.499999999999999); -#1180=CIRCLE('',#34234,0.499999999999999); -#1181=CIRCLE('',#34235,0.499999999999999); -#1182=CIRCLE('',#34237,0.499999999999999); -#1183=CIRCLE('',#34238,0.499999999999999); -#1184=CIRCLE('',#34240,0.499999999999999); -#1185=CIRCLE('',#34241,0.499999999999999); -#1186=CIRCLE('',#34243,0.499999999999999); -#1187=CIRCLE('',#34244,0.499999999999999); -#1188=CIRCLE('',#34246,0.499999999999999); -#1189=CIRCLE('',#34247,0.499999999999999); -#1190=CIRCLE('',#34249,0.499999999999999); -#1191=CIRCLE('',#34250,0.499999999999999); -#1192=CIRCLE('',#34252,0.499999999999999); -#1193=CIRCLE('',#34253,0.499999999999999); -#1194=CIRCLE('',#34255,0.499999999999999); -#1195=CIRCLE('',#34256,0.499999999999999); -#1196=CIRCLE('',#34259,0.6524); -#1197=CIRCLE('',#34260,0.6524); -#1198=CIRCLE('',#34262,0.6524); -#1199=CIRCLE('',#34263,0.6524); -#1200=CIRCLE('',#34266,0.499999999999999); -#1201=CIRCLE('',#34267,0.499999999999999); -#1202=CIRCLE('',#34269,0.499999999999999); -#1203=CIRCLE('',#34270,0.499999999999999); -#1204=CIRCLE('',#34474,0.0799999999999831); -#1205=CIRCLE('',#34475,0.080000000000021); -#1206=CIRCLE('',#34476,0.0700000000000015); -#1207=CIRCLE('',#34477,0.0699999999999998); -#1208=CIRCLE('',#34478,0.0800000000000195); -#1209=CIRCLE('',#34479,0.0799999999999872); -#1210=CIRCLE('',#34480,0.0799999999999965); -#1211=CIRCLE('',#34481,0.0800000000000045); -#1212=CIRCLE('',#34482,0.0700000000000024); -#1213=CIRCLE('',#34483,0.0699999999999989); -#1214=CIRCLE('',#34484,0.0799999999999965); -#1215=CIRCLE('',#34485,0.0799999999999863); -#1216=CIRCLE('',#34486,0.080000000000021); -#1217=CIRCLE('',#34487,0.0799999999999933); -#1218=CIRCLE('',#34488,0.0700000000000006); -#1219=CIRCLE('',#34489,0.069999999999998); -#1220=CIRCLE('',#34490,0.0799999999999958); -#1221=CIRCLE('',#34491,0.0800000000000115); -#1222=CIRCLE('',#34492,0.0799999999999958); -#1223=CIRCLE('',#34493,0.0799999999999924); -#1224=CIRCLE('',#34494,0.0700000000000006); -#1225=CIRCLE('',#34495,0.0700000000000006); -#1226=CIRCLE('',#34496,0.0800000000000064); -#1227=CIRCLE('',#34497,0.0799999999999872); -#1228=CIRCLE('',#34498,0.0799999999999965); -#1229=CIRCLE('',#34499,0.0800000000000176); -#1230=CIRCLE('',#34500,0.0700000000000015); -#1231=CIRCLE('',#34501,0.0699999999999989); -#1232=CIRCLE('',#34502,0.0799999999999965); -#1233=CIRCLE('',#34503,0.0799999999999967); -#1234=CIRCLE('',#34504,0.0799999999999961); -#1235=CIRCLE('',#34505,0.0799999999999928); -#1236=CIRCLE('',#34506,0.0700000000000006); -#1237=CIRCLE('',#34507,0.070000000000001); -#1238=CIRCLE('',#34508,0.0799999999999958); -#1239=CIRCLE('',#34509,0.079999999999998); -#1240=CIRCLE('',#34510,0.0799999999999961); -#1241=CIRCLE('',#34511,0.0800000000000054); -#1242=CIRCLE('',#34512,0.0700000000000006); -#1243=CIRCLE('',#34513,0.0700000000000002); -#1244=CIRCLE('',#34514,0.0799999999999965); -#1245=CIRCLE('',#34515,0.0799999999999989); -#1246=CIRCLE('',#34516,0.0799999999999958); -#1247=CIRCLE('',#34517,0.0800000000000045); -#1248=CIRCLE('',#34518,0.0700000000000006); -#1249=CIRCLE('',#34519,0.070000000000001); -#1250=CIRCLE('',#34520,0.0799999999999963); -#1251=CIRCLE('',#34521,0.0799999999999987); -#1252=CIRCLE('',#34522,0.0800000000000071); -#1253=CIRCLE('',#34523,0.0800000000000048); -#1254=CIRCLE('',#34524,0.0700000000000006); -#1255=CIRCLE('',#34525,0.0700000000000008); -#1256=CIRCLE('',#34526,0.0799999999999967); -#1257=CIRCLE('',#34527,0.0799999999999868); -#1258=CIRCLE('',#34528,0.0799999999999962); -#1259=CIRCLE('',#34529,0.080000000000008); -#1260=CIRCLE('',#34530,0.0700000000000006); -#1261=CIRCLE('',#34531,0.0700000000000005); -#1262=CIRCLE('',#34532,0.0799999999999867); -#1263=CIRCLE('',#34533,0.0799999999999963); -#1264=CIRCLE('',#34534,0.0800000000000072); -#1265=CIRCLE('',#34535,0.0800000000000046); -#1266=CIRCLE('',#34536,0.0700000000000006); -#1267=CIRCLE('',#34537,0.0700000000000005); -#1268=CIRCLE('',#34538,0.0799999999999962); -#1269=CIRCLE('',#34539,0.0799999999999869); -#1270=CIRCLE('',#34540,0.0799999999999963); -#1271=CIRCLE('',#34541,0.0800000000000078); -#1272=CIRCLE('',#34542,0.0700000000000015); -#1273=CIRCLE('',#34543,0.0700000000000008); -#1274=CIRCLE('',#34544,0.0799999999999963); -#1275=CIRCLE('',#34545,0.08000000000001); -#1276=CIRCLE('',#34546,0.0799999999999963); -#1277=CIRCLE('',#34547,0.080000000000016); -#1278=CIRCLE('',#34548,0.0700000000000006); -#1279=CIRCLE('',#34549,0.0700000000000002); -#1280=CIRCLE('',#34550,0.0800000000000202); -#1281=CIRCLE('',#34551,0.0799999999999868); -#1282=CIRCLE('',#34552,0.0800000000000202); -#1283=CIRCLE('',#34553,0.0800000000000163); -#1284=CIRCLE('',#34554,0.0700000000000006); -#1285=CIRCLE('',#34555,0.0700000000000002); -#1286=CIRCLE('',#34556,0.0799999999999965); -#1287=CIRCLE('',#34557,0.0799999999999868); -#1288=CIRCLE('',#34558,0.0799999999999958); -#1289=CIRCLE('',#34559,0.0799999999999928); -#1290=CIRCLE('',#34560,0.0700000000000006); -#1291=CIRCLE('',#34561,0.0700000000000006); -#1292=CIRCLE('',#34562,0.0799999999999961); -#1293=CIRCLE('',#34563,0.0799999999999868); -#1294=CIRCLE('',#34564,0.0800000000000079); -#1295=CIRCLE('',#34565,0.0799999999999933); -#1296=CIRCLE('',#34566,0.0700000000000006); -#1297=CIRCLE('',#34567,0.069999999999998); -#1298=CIRCLE('',#34568,0.080000000000021); -#1299=CIRCLE('',#34569,0.0799999999999863); -#1300=CIRCLE('',#34570,0.0799999999999958); -#1301=CIRCLE('',#34571,0.0800000000000028); -#1302=CIRCLE('',#34572,0.0700000000000024); -#1303=CIRCLE('',#34573,0.0699999999999989); -#1304=CIRCLE('',#34574,0.0799999999999958); -#1305=CIRCLE('',#34575,0.0799999999999872); -#1306=CIRCLE('',#34576,0.0800000000000195); -#1307=CIRCLE('',#34577,0.0799999999999924); -#1308=CIRCLE('',#34578,0.0700000000000015); -#1309=CIRCLE('',#34579,0.0699999999999998); -#1310=CIRCLE('',#34580,0.0799999999999965); -#1311=CIRCLE('',#34581,0.0800000000000098); -#1312=CIRCLE('',#34582,0.0799999999999965); -#1313=CIRCLE('',#34583,0.0799999999999933); -#1314=CIRCLE('',#34584,0.0700000000000006); -#1315=CIRCLE('',#34585,0.0699999999999998); -#1316=CIRCLE('',#34586,0.0800000000000079); -#1317=CIRCLE('',#34587,0.0799999999999863); -#1318=CIRCLE('',#34588,0.0799999999999958); -#1319=CIRCLE('',#34589,0.0800000000000158); -#1320=CIRCLE('',#34590,0.0700000000000006); -#1321=CIRCLE('',#34591,0.0699999999999989); -#1322=CIRCLE('',#34592,0.0800000000000316); -#1323=CIRCLE('',#34593,0.0800000000000063); -#1324=CIRCLE('',#34595,0.0800000000000063); -#1325=CIRCLE('',#34596,0.0800000000000316); -#1326=CIRCLE('',#34597,0.0699999999999989); -#1327=CIRCLE('',#34598,0.0700000000000006); -#1328=CIRCLE('',#34599,0.0800000000000158); -#1329=CIRCLE('',#34600,0.0799999999999958); -#1330=CIRCLE('',#34601,0.0799999999999863); -#1331=CIRCLE('',#34602,0.0800000000000079); -#1332=CIRCLE('',#34603,0.0699999999999998); -#1333=CIRCLE('',#34604,0.0700000000000006); -#1334=CIRCLE('',#34605,0.0799999999999933); -#1335=CIRCLE('',#34606,0.0799999999999965); -#1336=CIRCLE('',#34607,0.0800000000000098); -#1337=CIRCLE('',#34608,0.0799999999999965); -#1338=CIRCLE('',#34609,0.0699999999999998); -#1339=CIRCLE('',#34610,0.0700000000000015); -#1340=CIRCLE('',#34611,0.0799999999999924); -#1341=CIRCLE('',#34612,0.0800000000000195); -#1342=CIRCLE('',#34613,0.0799999999999872); -#1343=CIRCLE('',#34614,0.0799999999999958); -#1344=CIRCLE('',#34615,0.0699999999999989); -#1345=CIRCLE('',#34616,0.0700000000000024); -#1346=CIRCLE('',#34617,0.0800000000000028); -#1347=CIRCLE('',#34618,0.0799999999999958); -#1348=CIRCLE('',#34619,0.0799999999999863); -#1349=CIRCLE('',#34620,0.080000000000021); -#1350=CIRCLE('',#34621,0.069999999999998); -#1351=CIRCLE('',#34622,0.0700000000000006); -#1352=CIRCLE('',#34623,0.0799999999999933); -#1353=CIRCLE('',#34624,0.0800000000000079); -#1354=CIRCLE('',#34625,0.0799999999999868); -#1355=CIRCLE('',#34626,0.0799999999999961); -#1356=CIRCLE('',#34627,0.0700000000000006); -#1357=CIRCLE('',#34628,0.0700000000000006); -#1358=CIRCLE('',#34629,0.0799999999999928); -#1359=CIRCLE('',#34630,0.0799999999999958); -#1360=CIRCLE('',#34631,0.0799999999999868); -#1361=CIRCLE('',#34632,0.0799999999999965); -#1362=CIRCLE('',#34633,0.0700000000000002); -#1363=CIRCLE('',#34634,0.0700000000000006); -#1364=CIRCLE('',#34635,0.0800000000000163); -#1365=CIRCLE('',#34636,0.0800000000000202); -#1366=CIRCLE('',#34637,0.0799999999999868); -#1367=CIRCLE('',#34638,0.0800000000000202); -#1368=CIRCLE('',#34639,0.0700000000000002); -#1369=CIRCLE('',#34640,0.0700000000000006); -#1370=CIRCLE('',#34641,0.080000000000016); -#1371=CIRCLE('',#34642,0.0799999999999963); -#1372=CIRCLE('',#34643,0.08000000000001); -#1373=CIRCLE('',#34644,0.0799999999999963); -#1374=CIRCLE('',#34645,0.0700000000000008); -#1375=CIRCLE('',#34646,0.0700000000000015); -#1376=CIRCLE('',#34647,0.0800000000000078); -#1377=CIRCLE('',#34648,0.0799999999999963); -#1378=CIRCLE('',#34649,0.0799999999999869); -#1379=CIRCLE('',#34650,0.0799999999999962); -#1380=CIRCLE('',#34651,0.0700000000000005); -#1381=CIRCLE('',#34652,0.0700000000000006); -#1382=CIRCLE('',#34653,0.0800000000000046); -#1383=CIRCLE('',#34654,0.0800000000000072); -#1384=CIRCLE('',#34655,0.0799999999999963); -#1385=CIRCLE('',#34656,0.0799999999999867); -#1386=CIRCLE('',#34657,0.0700000000000005); -#1387=CIRCLE('',#34658,0.0700000000000006); -#1388=CIRCLE('',#34659,0.080000000000008); -#1389=CIRCLE('',#34660,0.0799999999999962); -#1390=CIRCLE('',#34661,0.0799999999999868); -#1391=CIRCLE('',#34662,0.0799999999999967); -#1392=CIRCLE('',#34663,0.0700000000000008); -#1393=CIRCLE('',#34664,0.0700000000000006); -#1394=CIRCLE('',#34665,0.0800000000000048); -#1395=CIRCLE('',#34666,0.0800000000000071); -#1396=CIRCLE('',#34667,0.0799999999999987); -#1397=CIRCLE('',#34668,0.0799999999999963); -#1398=CIRCLE('',#34669,0.070000000000001); -#1399=CIRCLE('',#34670,0.0700000000000006); -#1400=CIRCLE('',#34671,0.0800000000000045); -#1401=CIRCLE('',#34672,0.0799999999999958); -#1402=CIRCLE('',#34673,0.0799999999999989); -#1403=CIRCLE('',#34674,0.0799999999999965); -#1404=CIRCLE('',#34675,0.0700000000000002); -#1405=CIRCLE('',#34676,0.0700000000000006); -#1406=CIRCLE('',#34677,0.0800000000000054); -#1407=CIRCLE('',#34678,0.0799999999999961); -#1408=CIRCLE('',#34679,0.079999999999998); -#1409=CIRCLE('',#34680,0.0799999999999958); -#1410=CIRCLE('',#34681,0.070000000000001); -#1411=CIRCLE('',#34682,0.0700000000000006); -#1412=CIRCLE('',#34683,0.0799999999999928); -#1413=CIRCLE('',#34684,0.0799999999999961); -#1414=CIRCLE('',#34685,0.0799999999999967); -#1415=CIRCLE('',#34686,0.0799999999999965); -#1416=CIRCLE('',#34687,0.0699999999999989); -#1417=CIRCLE('',#34688,0.0700000000000015); -#1418=CIRCLE('',#34689,0.0800000000000176); -#1419=CIRCLE('',#34690,0.0799999999999965); -#1420=CIRCLE('',#34691,0.0799999999999872); -#1421=CIRCLE('',#34692,0.0800000000000064); -#1422=CIRCLE('',#34693,0.0700000000000006); -#1423=CIRCLE('',#34694,0.0700000000000006); -#1424=CIRCLE('',#34695,0.0799999999999924); -#1425=CIRCLE('',#34696,0.0799999999999958); -#1426=CIRCLE('',#34697,0.0800000000000115); -#1427=CIRCLE('',#34698,0.0799999999999958); -#1428=CIRCLE('',#34699,0.069999999999998); -#1429=CIRCLE('',#34700,0.0700000000000006); -#1430=CIRCLE('',#34701,0.0799999999999933); -#1431=CIRCLE('',#34702,0.080000000000021); -#1432=CIRCLE('',#34703,0.0799999999999863); -#1433=CIRCLE('',#34704,0.0799999999999965); -#1434=CIRCLE('',#34705,0.0699999999999989); -#1435=CIRCLE('',#34706,0.0700000000000024); -#1436=CIRCLE('',#34707,0.0800000000000045); -#1437=CIRCLE('',#34708,0.0799999999999965); -#1438=CIRCLE('',#34709,0.0799999999999872); -#1439=CIRCLE('',#34710,0.0800000000000195); -#1440=CIRCLE('',#34711,0.0699999999999998); -#1441=CIRCLE('',#34712,0.0700000000000015); -#1442=CIRCLE('',#34713,0.080000000000021); -#1443=CIRCLE('',#34714,0.0799999999999831); -#1444=CIRCLE('',#34716,0.0799999999999831); -#1445=CIRCLE('',#34717,0.080000000000021); -#1446=CIRCLE('',#34718,0.0700000000000015); -#1447=CIRCLE('',#34719,0.0699999999999998); -#1448=CIRCLE('',#34720,0.0800000000000195); -#1449=CIRCLE('',#34721,0.0799999999999872); -#1450=CIRCLE('',#34722,0.0799999999999965); -#1451=CIRCLE('',#34723,0.0800000000000045); -#1452=CIRCLE('',#34724,0.0700000000000024); -#1453=CIRCLE('',#34725,0.0699999999999989); -#1454=CIRCLE('',#34726,0.0799999999999965); -#1455=CIRCLE('',#34727,0.0799999999999863); -#1456=CIRCLE('',#34728,0.080000000000021); -#1457=CIRCLE('',#34729,0.0799999999999933); -#1458=CIRCLE('',#34730,0.0700000000000006); -#1459=CIRCLE('',#34731,0.069999999999998); -#1460=CIRCLE('',#34732,0.0799999999999958); -#1461=CIRCLE('',#34733,0.0800000000000115); -#1462=CIRCLE('',#34734,0.0799999999999958); -#1463=CIRCLE('',#34735,0.0799999999999924); -#1464=CIRCLE('',#34736,0.0700000000000006); -#1465=CIRCLE('',#34737,0.0700000000000006); -#1466=CIRCLE('',#34738,0.0800000000000064); -#1467=CIRCLE('',#34739,0.0799999999999872); -#1468=CIRCLE('',#34740,0.0799999999999965); -#1469=CIRCLE('',#34741,0.0800000000000176); -#1470=CIRCLE('',#34742,0.0700000000000015); -#1471=CIRCLE('',#34743,0.0699999999999989); -#1472=CIRCLE('',#34744,0.0799999999999965); -#1473=CIRCLE('',#34745,0.0799999999999967); -#1474=CIRCLE('',#34746,0.0799999999999961); -#1475=CIRCLE('',#34747,0.0799999999999928); -#1476=CIRCLE('',#34748,0.0700000000000006); -#1477=CIRCLE('',#34749,0.070000000000001); -#1478=CIRCLE('',#34750,0.0799999999999958); -#1479=CIRCLE('',#34751,0.079999999999998); -#1480=CIRCLE('',#34752,0.0799999999999961); -#1481=CIRCLE('',#34753,0.0800000000000054); -#1482=CIRCLE('',#34754,0.0700000000000006); -#1483=CIRCLE('',#34755,0.0700000000000002); -#1484=CIRCLE('',#34756,0.0799999999999965); -#1485=CIRCLE('',#34757,0.0799999999999989); -#1486=CIRCLE('',#34758,0.0799999999999958); -#1487=CIRCLE('',#34759,0.0800000000000045); -#1488=CIRCLE('',#34760,0.0700000000000006); -#1489=CIRCLE('',#34761,0.070000000000001); -#1490=CIRCLE('',#34762,0.0799999999999963); -#1491=CIRCLE('',#34763,0.0799999999999987); -#1492=CIRCLE('',#34764,0.0800000000000071); -#1493=CIRCLE('',#34765,0.0800000000000048); -#1494=CIRCLE('',#34766,0.0700000000000006); -#1495=CIRCLE('',#34767,0.0700000000000008); -#1496=CIRCLE('',#34768,0.0799999999999967); -#1497=CIRCLE('',#34769,0.0799999999999868); -#1498=CIRCLE('',#34770,0.0799999999999962); -#1499=CIRCLE('',#34771,0.080000000000008); -#1500=CIRCLE('',#34772,0.0700000000000006); -#1501=CIRCLE('',#34773,0.0700000000000005); -#1502=CIRCLE('',#34774,0.0799999999999867); -#1503=CIRCLE('',#34775,0.0799999999999963); -#1504=CIRCLE('',#34776,0.0800000000000072); -#1505=CIRCLE('',#34777,0.0800000000000046); -#1506=CIRCLE('',#34778,0.0700000000000006); -#1507=CIRCLE('',#34779,0.0700000000000005); -#1508=CIRCLE('',#34780,0.0799999999999962); -#1509=CIRCLE('',#34781,0.0799999999999869); -#1510=CIRCLE('',#34782,0.0799999999999963); -#1511=CIRCLE('',#34783,0.0800000000000078); -#1512=CIRCLE('',#34784,0.0700000000000015); -#1513=CIRCLE('',#34785,0.0700000000000008); -#1514=CIRCLE('',#34786,0.0799999999999963); -#1515=CIRCLE('',#34787,0.08000000000001); -#1516=CIRCLE('',#34788,0.0799999999999963); -#1517=CIRCLE('',#34789,0.080000000000016); -#1518=CIRCLE('',#34790,0.0700000000000006); -#1519=CIRCLE('',#34791,0.0700000000000002); -#1520=CIRCLE('',#34792,0.0800000000000202); -#1521=CIRCLE('',#34793,0.0799999999999868); -#1522=CIRCLE('',#34794,0.0800000000000202); -#1523=CIRCLE('',#34795,0.0800000000000163); -#1524=CIRCLE('',#34796,0.0700000000000006); -#1525=CIRCLE('',#34797,0.0700000000000002); -#1526=CIRCLE('',#34798,0.0799999999999965); -#1527=CIRCLE('',#34799,0.0799999999999868); -#1528=CIRCLE('',#34800,0.0799999999999958); -#1529=CIRCLE('',#34801,0.0799999999999928); -#1530=CIRCLE('',#34802,0.0700000000000006); -#1531=CIRCLE('',#34803,0.0700000000000006); -#1532=CIRCLE('',#34804,0.0799999999999961); -#1533=CIRCLE('',#34805,0.0799999999999868); -#1534=CIRCLE('',#34806,0.0800000000000079); -#1535=CIRCLE('',#34807,0.0799999999999933); -#1536=CIRCLE('',#34808,0.0700000000000006); -#1537=CIRCLE('',#34809,0.069999999999998); -#1538=CIRCLE('',#34810,0.080000000000021); -#1539=CIRCLE('',#34811,0.0799999999999863); -#1540=CIRCLE('',#34812,0.0799999999999958); -#1541=CIRCLE('',#34813,0.0800000000000028); -#1542=CIRCLE('',#34814,0.0700000000000024); -#1543=CIRCLE('',#34815,0.0699999999999989); -#1544=CIRCLE('',#34816,0.0799999999999958); -#1545=CIRCLE('',#34817,0.0799999999999872); -#1546=CIRCLE('',#34818,0.0800000000000195); -#1547=CIRCLE('',#34819,0.0799999999999924); -#1548=CIRCLE('',#34820,0.0700000000000015); -#1549=CIRCLE('',#34821,0.0699999999999998); -#1550=CIRCLE('',#34822,0.0799999999999965); -#1551=CIRCLE('',#34823,0.0800000000000098); -#1552=CIRCLE('',#34824,0.0799999999999965); -#1553=CIRCLE('',#34825,0.0799999999999933); -#1554=CIRCLE('',#34826,0.0700000000000006); -#1555=CIRCLE('',#34827,0.0699999999999998); -#1556=CIRCLE('',#34828,0.0800000000000079); -#1557=CIRCLE('',#34829,0.0799999999999863); -#1558=CIRCLE('',#34830,0.0799999999999958); -#1559=CIRCLE('',#34831,0.0800000000000158); -#1560=CIRCLE('',#34832,0.0700000000000006); -#1561=CIRCLE('',#34833,0.0699999999999989); -#1562=CIRCLE('',#34834,0.0800000000000316); -#1563=CIRCLE('',#34835,0.0800000000000063); -#1564=CIRCLE('',#34837,0.0800000000000063); -#1565=CIRCLE('',#34838,0.0800000000000316); -#1566=CIRCLE('',#34839,0.0699999999999989); -#1567=CIRCLE('',#34840,0.0700000000000006); -#1568=CIRCLE('',#34841,0.0800000000000158); -#1569=CIRCLE('',#34842,0.0799999999999958); -#1570=CIRCLE('',#34843,0.0799999999999863); -#1571=CIRCLE('',#34844,0.0800000000000079); -#1572=CIRCLE('',#34845,0.0699999999999998); -#1573=CIRCLE('',#34846,0.0700000000000006); -#1574=CIRCLE('',#34847,0.0799999999999933); -#1575=CIRCLE('',#34848,0.0799999999999965); -#1576=CIRCLE('',#34849,0.0800000000000098); -#1577=CIRCLE('',#34850,0.0799999999999965); -#1578=CIRCLE('',#34851,0.0699999999999998); -#1579=CIRCLE('',#34852,0.0700000000000015); -#1580=CIRCLE('',#34853,0.0799999999999924); -#1581=CIRCLE('',#34854,0.0800000000000195); -#1582=CIRCLE('',#34855,0.0799999999999872); -#1583=CIRCLE('',#34856,0.0799999999999958); -#1584=CIRCLE('',#34857,0.0699999999999989); -#1585=CIRCLE('',#34858,0.0700000000000024); -#1586=CIRCLE('',#34859,0.0800000000000028); -#1587=CIRCLE('',#34860,0.0799999999999958); -#1588=CIRCLE('',#34861,0.0799999999999863); -#1589=CIRCLE('',#34862,0.080000000000021); -#1590=CIRCLE('',#34863,0.069999999999998); -#1591=CIRCLE('',#34864,0.0700000000000006); -#1592=CIRCLE('',#34865,0.0799999999999933); -#1593=CIRCLE('',#34866,0.0800000000000079); -#1594=CIRCLE('',#34867,0.0799999999999868); -#1595=CIRCLE('',#34868,0.0799999999999961); -#1596=CIRCLE('',#34869,0.0700000000000006); -#1597=CIRCLE('',#34870,0.0700000000000006); -#1598=CIRCLE('',#34871,0.0799999999999928); -#1599=CIRCLE('',#34872,0.0799999999999958); -#1600=CIRCLE('',#34873,0.0799999999999868); -#1601=CIRCLE('',#34874,0.0799999999999965); -#1602=CIRCLE('',#34875,0.0700000000000002); -#1603=CIRCLE('',#34876,0.0700000000000006); -#1604=CIRCLE('',#34877,0.0800000000000163); -#1605=CIRCLE('',#34878,0.0800000000000202); -#1606=CIRCLE('',#34879,0.0799999999999868); -#1607=CIRCLE('',#34880,0.0800000000000202); -#1608=CIRCLE('',#34881,0.0700000000000002); -#1609=CIRCLE('',#34882,0.0700000000000006); -#1610=CIRCLE('',#34883,0.080000000000016); -#1611=CIRCLE('',#34884,0.0799999999999963); -#1612=CIRCLE('',#34885,0.08000000000001); -#1613=CIRCLE('',#34886,0.0799999999999963); -#1614=CIRCLE('',#34887,0.0700000000000008); -#1615=CIRCLE('',#34888,0.0700000000000015); -#1616=CIRCLE('',#34889,0.0800000000000078); -#1617=CIRCLE('',#34890,0.0799999999999963); -#1618=CIRCLE('',#34891,0.0799999999999869); -#1619=CIRCLE('',#34892,0.0799999999999962); -#1620=CIRCLE('',#34893,0.0700000000000005); -#1621=CIRCLE('',#34894,0.0700000000000006); -#1622=CIRCLE('',#34895,0.0800000000000046); -#1623=CIRCLE('',#34896,0.0800000000000072); -#1624=CIRCLE('',#34897,0.0799999999999963); -#1625=CIRCLE('',#34898,0.0799999999999867); -#1626=CIRCLE('',#34899,0.0700000000000005); -#1627=CIRCLE('',#34900,0.0700000000000006); -#1628=CIRCLE('',#34901,0.080000000000008); -#1629=CIRCLE('',#34902,0.0799999999999962); -#1630=CIRCLE('',#34903,0.0799999999999868); -#1631=CIRCLE('',#34904,0.0799999999999967); -#1632=CIRCLE('',#34905,0.0700000000000008); -#1633=CIRCLE('',#34906,0.0700000000000006); -#1634=CIRCLE('',#34907,0.0800000000000048); -#1635=CIRCLE('',#34908,0.0800000000000071); -#1636=CIRCLE('',#34909,0.0799999999999987); -#1637=CIRCLE('',#34910,0.0799999999999963); -#1638=CIRCLE('',#34911,0.070000000000001); -#1639=CIRCLE('',#34912,0.0700000000000006); -#1640=CIRCLE('',#34913,0.0800000000000045); -#1641=CIRCLE('',#34914,0.0799999999999958); -#1642=CIRCLE('',#34915,0.0799999999999989); -#1643=CIRCLE('',#34916,0.0799999999999965); -#1644=CIRCLE('',#34917,0.0700000000000002); -#1645=CIRCLE('',#34918,0.0700000000000006); -#1646=CIRCLE('',#34919,0.0800000000000054); -#1647=CIRCLE('',#34920,0.0799999999999961); -#1648=CIRCLE('',#34921,0.079999999999998); -#1649=CIRCLE('',#34922,0.0799999999999958); -#1650=CIRCLE('',#34923,0.070000000000001); -#1651=CIRCLE('',#34924,0.0700000000000006); -#1652=CIRCLE('',#34925,0.0799999999999928); -#1653=CIRCLE('',#34926,0.0799999999999961); -#1654=CIRCLE('',#34927,0.0799999999999967); -#1655=CIRCLE('',#34928,0.0799999999999965); -#1656=CIRCLE('',#34929,0.0699999999999989); -#1657=CIRCLE('',#34930,0.0700000000000015); -#1658=CIRCLE('',#34931,0.0800000000000176); -#1659=CIRCLE('',#34932,0.0799999999999965); -#1660=CIRCLE('',#34933,0.0799999999999872); -#1661=CIRCLE('',#34934,0.0800000000000064); -#1662=CIRCLE('',#34935,0.0700000000000006); -#1663=CIRCLE('',#34936,0.0700000000000006); -#1664=CIRCLE('',#34937,0.0799999999999924); -#1665=CIRCLE('',#34938,0.0799999999999958); -#1666=CIRCLE('',#34939,0.0800000000000115); -#1667=CIRCLE('',#34940,0.0799999999999958); -#1668=CIRCLE('',#34941,0.069999999999998); -#1669=CIRCLE('',#34942,0.0700000000000006); -#1670=CIRCLE('',#34943,0.0799999999999933); -#1671=CIRCLE('',#34944,0.080000000000021); -#1672=CIRCLE('',#34945,0.0799999999999863); -#1673=CIRCLE('',#34946,0.0799999999999965); -#1674=CIRCLE('',#34947,0.0699999999999989); -#1675=CIRCLE('',#34948,0.0700000000000024); -#1676=CIRCLE('',#34949,0.0800000000000045); -#1677=CIRCLE('',#34950,0.0799999999999965); -#1678=CIRCLE('',#34951,0.0799999999999872); -#1679=CIRCLE('',#34952,0.0800000000000195); -#1680=CIRCLE('',#34953,0.0699999999999998); -#1681=CIRCLE('',#34954,0.0700000000000015); -#1682=CIRCLE('',#34955,0.080000000000021); -#1683=CIRCLE('',#34956,0.0799999999999831); -#1684=CIRCLE('',#35002,0.5024); -#1685=CIRCLE('',#35003,0.5024); -#1686=CIRCLE('',#35005,0.5024); -#1687=CIRCLE('',#35006,0.5024); -#1688=CIRCLE('',#35008,0.5024); -#1689=CIRCLE('',#35009,0.5024); -#1690=CIRCLE('',#35011,0.5024); -#1691=CIRCLE('',#35012,0.5024); -#1692=CIRCLE('',#35014,0.5024); -#1693=CIRCLE('',#35015,0.5024); -#1694=CIRCLE('',#35017,0.5024); -#1695=CIRCLE('',#35018,0.5024); -#1696=CIRCLE('',#35020,0.5024); -#1697=CIRCLE('',#35021,0.5024); -#1698=CIRCLE('',#35023,0.5024); -#1699=CIRCLE('',#35024,0.5024); -#1700=CIRCLE('',#35026,0.5024); -#1701=CIRCLE('',#35027,0.5024); -#1702=CIRCLE('',#35029,0.5024); -#1703=CIRCLE('',#35030,0.5024); -#1704=CIRCLE('',#35032,0.5024); -#1705=CIRCLE('',#35033,0.5024); -#1706=CIRCLE('',#35035,0.5024); -#1707=CIRCLE('',#35036,0.5024); -#1708=CIRCLE('',#35038,0.5024); -#1709=CIRCLE('',#35039,0.5024); -#1710=CIRCLE('',#35041,0.5024); -#1711=CIRCLE('',#35042,0.5024); -#1712=CIRCLE('',#35044,0.5024); -#1713=CIRCLE('',#35045,0.5024); -#1714=CIRCLE('',#35047,0.5024); -#1715=CIRCLE('',#35048,0.5024); -#1716=CIRCLE('',#35050,0.5024); -#1717=CIRCLE('',#35051,0.5024); -#1718=CIRCLE('',#35053,0.5024); -#1719=CIRCLE('',#35054,0.5024); -#1720=CIRCLE('',#35056,0.5024); -#1721=CIRCLE('',#35057,0.5024); -#1722=CIRCLE('',#35059,0.5024); -#1723=CIRCLE('',#35060,0.5024); -#1724=CIRCLE('',#35119,0.337399999999999); -#1725=CIRCLE('',#35120,0.337399999999999); -#1726=CIRCLE('',#35122,0.337399999999999); -#1727=CIRCLE('',#35123,0.337399999999999); -#1728=CIRCLE('',#35125,0.337399999999999); -#1729=CIRCLE('',#35126,0.337399999999999); -#1730=CIRCLE('',#35128,0.337399999999999); -#1731=CIRCLE('',#35129,0.337399999999999); -#1732=CIRCLE('',#35131,0.337399999999999); -#1733=CIRCLE('',#35132,0.337399999999999); -#1734=CIRCLE('',#35134,0.337399999999999); -#1735=CIRCLE('',#35135,0.337399999999999); -#1736=CIRCLE('',#35137,0.337399999999999); -#1737=CIRCLE('',#35138,0.337399999999999); -#1738=CIRCLE('',#35140,0.337399999999999); -#1739=CIRCLE('',#35141,0.337399999999999); -#1740=CIRCLE('',#35143,0.337399999999999); -#1741=CIRCLE('',#35144,0.337399999999999); -#1742=CIRCLE('',#35146,0.337399999999999); -#1743=CIRCLE('',#35147,0.337399999999999); -#1744=CIRCLE('',#35149,0.337399999999999); -#1745=CIRCLE('',#35150,0.337399999999999); -#1746=CIRCLE('',#35152,0.337399999999999); -#1747=CIRCLE('',#35153,0.337399999999999); -#1748=CIRCLE('',#35155,0.337399999999999); -#1749=CIRCLE('',#35156,0.337399999999999); -#1750=CIRCLE('',#35158,0.337399999999999); -#1751=CIRCLE('',#35159,0.337399999999999); -#1752=CIRCLE('',#35161,0.337399999999999); -#1753=CIRCLE('',#35162,0.337399999999999); -#1754=CIRCLE('',#35164,0.337399999999999); -#1755=CIRCLE('',#35165,0.337399999999999); -#1756=CIRCLE('',#35167,0.337399999999999); -#1757=CIRCLE('',#35168,0.337399999999999); -#1758=CIRCLE('',#35170,0.337399999999999); -#1759=CIRCLE('',#35171,0.337399999999999); -#1760=CIRCLE('',#35173,0.337399999999999); -#1761=CIRCLE('',#35174,0.337399999999999); -#1762=CIRCLE('',#35176,0.337399999999999); -#1763=CIRCLE('',#35177,0.337399999999999); -#1764=CIRCLE('',#35179,0.337399999999999); -#1765=CIRCLE('',#35180,0.337399999999999); -#1766=CIRCLE('',#35182,0.337399999999999); -#1767=CIRCLE('',#35183,0.337399999999999); -#1768=CIRCLE('',#35185,0.337399999999999); -#1769=CIRCLE('',#35186,0.337399999999999); -#1770=CIRCLE('',#35188,0.337399999999999); -#1771=CIRCLE('',#35189,0.337399999999999); -#1772=CIRCLE('',#35191,0.337399999999999); -#1773=CIRCLE('',#35192,0.337399999999999); -#1774=CIRCLE('',#35194,0.337399999999999); -#1775=CIRCLE('',#35195,0.337399999999999); -#1776=CIRCLE('',#35197,0.337399999999999); -#1777=CIRCLE('',#35198,0.337399999999999); -#1778=CIRCLE('',#35200,0.337399999999999); -#1779=CIRCLE('',#35201,0.337399999999999); -#1780=CIRCLE('',#35203,0.337399999999999); -#1781=CIRCLE('',#35204,0.337399999999999); -#1782=CIRCLE('',#35206,0.337399999999999); -#1783=CIRCLE('',#35207,0.337399999999999); -#1784=CIRCLE('',#35209,0.337399999999999); -#1785=CIRCLE('',#35210,0.337399999999999); -#1786=CIRCLE('',#35212,0.337399999999999); -#1787=CIRCLE('',#35213,0.337399999999999); -#1788=CIRCLE('',#35215,0.337399999999999); -#1789=CIRCLE('',#35216,0.337399999999999); -#1790=CIRCLE('',#35218,0.337399999999999); -#1791=CIRCLE('',#35219,0.337399999999999); -#1792=CIRCLE('',#35221,0.337399999999999); -#1793=CIRCLE('',#35222,0.337399999999999); -#1794=CIRCLE('',#35224,0.337399999999999); -#1795=CIRCLE('',#35225,0.337399999999999); -#1796=CIRCLE('',#35227,0.337399999999999); -#1797=CIRCLE('',#35228,0.337399999999999); -#1798=CIRCLE('',#35230,0.337399999999999); -#1799=CIRCLE('',#35231,0.337399999999999); -#1800=CIRCLE('',#35233,0.337399999999999); -#1801=CIRCLE('',#35234,0.337399999999999); -#1802=CIRCLE('',#35236,0.337399999999999); -#1803=CIRCLE('',#35237,0.337399999999999); -#1804=CIRCLE('',#35296,0.502399999999999); -#1805=CIRCLE('',#35297,0.502399999999999); -#1806=CIRCLE('',#35299,0.502399999999999); -#1807=CIRCLE('',#35300,0.502399999999999); -#1808=CIRCLE('',#35302,0.502399999999999); -#1809=CIRCLE('',#35303,0.502399999999999); -#1810=CIRCLE('',#35305,0.502399999999999); -#1811=CIRCLE('',#35306,0.502399999999999); -#1812=CIRCLE('',#35308,0.502399999999999); -#1813=CIRCLE('',#35309,0.502399999999999); -#1814=CIRCLE('',#35311,0.502399999999999); -#1815=CIRCLE('',#35312,0.502399999999999); -#1816=CIRCLE('',#35314,0.502399999999999); -#1817=CIRCLE('',#35315,0.502399999999999); -#1818=CIRCLE('',#35317,0.502399999999999); -#1819=CIRCLE('',#35318,0.502399999999999); -#1820=CIRCLE('',#35320,0.502399999999999); -#1821=CIRCLE('',#35321,0.502399999999999); -#1822=CIRCLE('',#35323,0.502399999999999); -#1823=CIRCLE('',#35324,0.502399999999999); -#1824=CIRCLE('',#35326,0.502399999999999); -#1825=CIRCLE('',#35327,0.502399999999999); -#1826=CIRCLE('',#35329,0.502399999999999); -#1827=CIRCLE('',#35330,0.502399999999999); -#1828=CIRCLE('',#35332,0.502399999999999); -#1829=CIRCLE('',#35333,0.502399999999999); -#1830=CIRCLE('',#35335,0.502399999999999); -#1831=CIRCLE('',#35336,0.502399999999999); -#1832=CIRCLE('',#35338,0.502399999999999); -#1833=CIRCLE('',#35339,0.502399999999999); -#1834=CIRCLE('',#35341,0.502399999999999); -#1835=CIRCLE('',#35342,0.502399999999999); -#1836=CIRCLE('',#35344,0.502399999999999); -#1837=CIRCLE('',#35345,0.502399999999999); -#1838=CIRCLE('',#35347,0.502399999999999); -#1839=CIRCLE('',#35348,0.502399999999999); -#1840=CIRCLE('',#35350,0.502399999999999); -#1841=CIRCLE('',#35351,0.502399999999999); -#1842=CIRCLE('',#35353,0.502399999999999); -#1843=CIRCLE('',#35354,0.502399999999999); -#1844=ORIENTED_EDGE('',*,*,#11652,.F.); -#1845=ORIENTED_EDGE('',*,*,#11653,.T.); -#1846=ORIENTED_EDGE('',*,*,#11654,.F.); -#1847=ORIENTED_EDGE('',*,*,#11655,.F.); -#1848=ORIENTED_EDGE('',*,*,#11656,.T.); -#1849=ORIENTED_EDGE('',*,*,#11657,.T.); -#1850=ORIENTED_EDGE('',*,*,#11658,.F.); -#1851=ORIENTED_EDGE('',*,*,#11659,.T.); -#1852=ORIENTED_EDGE('',*,*,#11660,.F.); -#1853=ORIENTED_EDGE('',*,*,#11661,.F.); -#1854=ORIENTED_EDGE('',*,*,#11662,.T.); -#1855=ORIENTED_EDGE('',*,*,#11663,.T.); -#1856=ORIENTED_EDGE('',*,*,#11664,.T.); -#1857=ORIENTED_EDGE('',*,*,#11657,.F.); -#1858=ORIENTED_EDGE('',*,*,#11665,.F.); -#1859=ORIENTED_EDGE('',*,*,#11666,.T.); -#1860=ORIENTED_EDGE('',*,*,#11667,.F.); -#1861=ORIENTED_EDGE('',*,*,#11668,.F.); -#1862=ORIENTED_EDGE('',*,*,#11669,.F.); -#1863=ORIENTED_EDGE('',*,*,#11670,.T.); -#1864=ORIENTED_EDGE('',*,*,#11671,.F.); -#1865=ORIENTED_EDGE('',*,*,#11672,.T.); -#1866=ORIENTED_EDGE('',*,*,#11673,.F.); -#1867=ORIENTED_EDGE('',*,*,#11674,.F.); -#1868=ORIENTED_EDGE('',*,*,#11675,.T.); -#1869=ORIENTED_EDGE('',*,*,#11676,.T.); -#1870=ORIENTED_EDGE('',*,*,#11677,.T.); -#1871=ORIENTED_EDGE('',*,*,#11678,.T.); -#1872=ORIENTED_EDGE('',*,*,#11679,.T.); -#1873=ORIENTED_EDGE('',*,*,#11680,.F.); -#1874=ORIENTED_EDGE('',*,*,#11681,.F.); -#1875=ORIENTED_EDGE('',*,*,#11682,.F.); -#1876=ORIENTED_EDGE('',*,*,#11683,.F.); -#1877=ORIENTED_EDGE('',*,*,#11684,.T.); -#1878=ORIENTED_EDGE('',*,*,#11685,.F.); -#1879=ORIENTED_EDGE('',*,*,#11686,.T.); -#1880=ORIENTED_EDGE('',*,*,#11687,.T.); -#1881=ORIENTED_EDGE('',*,*,#11688,.T.); -#1882=ORIENTED_EDGE('',*,*,#11689,.F.); -#1883=ORIENTED_EDGE('',*,*,#11690,.F.); -#1884=ORIENTED_EDGE('',*,*,#11691,.F.); -#1885=ORIENTED_EDGE('',*,*,#11692,.F.); -#1886=ORIENTED_EDGE('',*,*,#11659,.F.); -#1887=ORIENTED_EDGE('',*,*,#11693,.T.); -#1888=ORIENTED_EDGE('',*,*,#11694,.T.); -#1889=ORIENTED_EDGE('',*,*,#11695,.T.); -#1890=ORIENTED_EDGE('',*,*,#11696,.T.); -#1891=ORIENTED_EDGE('',*,*,#11697,.T.); -#1892=ORIENTED_EDGE('',*,*,#11698,.T.); -#1893=ORIENTED_EDGE('',*,*,#11699,.T.); -#1894=ORIENTED_EDGE('',*,*,#11700,.F.); -#1895=ORIENTED_EDGE('',*,*,#11701,.T.); -#1896=ORIENTED_EDGE('',*,*,#11702,.T.); -#1897=ORIENTED_EDGE('',*,*,#11703,.T.); -#1898=ORIENTED_EDGE('',*,*,#11704,.T.); -#1899=ORIENTED_EDGE('',*,*,#11705,.T.); -#1900=ORIENTED_EDGE('',*,*,#11706,.T.); -#1901=ORIENTED_EDGE('',*,*,#11707,.T.); -#1902=ORIENTED_EDGE('',*,*,#11708,.T.); -#1903=ORIENTED_EDGE('',*,*,#11709,.T.); -#1904=ORIENTED_EDGE('',*,*,#11710,.T.); -#1905=ORIENTED_EDGE('',*,*,#11711,.T.); -#1906=ORIENTED_EDGE('',*,*,#11712,.T.); -#1907=ORIENTED_EDGE('',*,*,#11713,.T.); -#1908=ORIENTED_EDGE('',*,*,#11714,.T.); -#1909=ORIENTED_EDGE('',*,*,#11715,.F.); -#1910=ORIENTED_EDGE('',*,*,#11716,.T.); -#1911=ORIENTED_EDGE('',*,*,#11717,.T.); -#1912=ORIENTED_EDGE('',*,*,#11718,.T.); -#1913=ORIENTED_EDGE('',*,*,#11719,.F.); -#1914=ORIENTED_EDGE('',*,*,#11720,.T.); -#1915=ORIENTED_EDGE('',*,*,#11721,.T.); -#1916=ORIENTED_EDGE('',*,*,#11722,.T.); -#1917=ORIENTED_EDGE('',*,*,#11723,.T.); -#1918=ORIENTED_EDGE('',*,*,#11724,.T.); -#1919=ORIENTED_EDGE('',*,*,#11725,.T.); -#1920=ORIENTED_EDGE('',*,*,#11726,.F.); -#1921=ORIENTED_EDGE('',*,*,#11674,.T.); -#1922=ORIENTED_EDGE('',*,*,#11727,.F.); -#1923=ORIENTED_EDGE('',*,*,#11728,.F.); -#1924=ORIENTED_EDGE('',*,*,#11729,.T.); -#1925=ORIENTED_EDGE('',*,*,#11680,.T.); -#1926=ORIENTED_EDGE('',*,*,#11730,.F.); -#1927=ORIENTED_EDGE('',*,*,#11731,.T.); -#1928=ORIENTED_EDGE('',*,*,#11732,.F.); -#1929=ORIENTED_EDGE('',*,*,#11733,.T.); -#1930=ORIENTED_EDGE('',*,*,#11734,.F.); -#1931=ORIENTED_EDGE('',*,*,#11735,.T.); -#1932=ORIENTED_EDGE('',*,*,#11736,.F.); -#1933=ORIENTED_EDGE('',*,*,#11737,.T.); -#1934=ORIENTED_EDGE('',*,*,#11738,.T.); -#1935=ORIENTED_EDGE('',*,*,#11739,.T.); -#1936=ORIENTED_EDGE('',*,*,#11740,.T.); -#1937=ORIENTED_EDGE('',*,*,#11741,.T.); -#1938=ORIENTED_EDGE('',*,*,#11742,.T.); -#1939=ORIENTED_EDGE('',*,*,#11743,.T.); -#1940=ORIENTED_EDGE('',*,*,#11744,.T.); -#1941=ORIENTED_EDGE('',*,*,#11745,.T.); -#1942=ORIENTED_EDGE('',*,*,#11746,.T.); -#1943=ORIENTED_EDGE('',*,*,#11747,.T.); -#1944=ORIENTED_EDGE('',*,*,#11748,.T.); -#1945=ORIENTED_EDGE('',*,*,#11749,.T.); -#1946=ORIENTED_EDGE('',*,*,#11750,.T.); -#1947=ORIENTED_EDGE('',*,*,#11751,.T.); -#1948=ORIENTED_EDGE('',*,*,#11752,.T.); -#1949=ORIENTED_EDGE('',*,*,#11753,.T.); -#1950=ORIENTED_EDGE('',*,*,#11754,.T.); -#1951=ORIENTED_EDGE('',*,*,#11755,.T.); -#1952=ORIENTED_EDGE('',*,*,#11756,.T.); -#1953=ORIENTED_EDGE('',*,*,#11757,.T.); -#1954=ORIENTED_EDGE('',*,*,#11758,.T.); -#1955=ORIENTED_EDGE('',*,*,#11759,.T.); -#1956=ORIENTED_EDGE('',*,*,#11760,.T.); -#1957=ORIENTED_EDGE('',*,*,#11761,.T.); -#1958=ORIENTED_EDGE('',*,*,#11762,.T.); -#1959=ORIENTED_EDGE('',*,*,#11763,.T.); -#1960=ORIENTED_EDGE('',*,*,#11764,.T.); -#1961=ORIENTED_EDGE('',*,*,#11765,.T.); -#1962=ORIENTED_EDGE('',*,*,#11766,.T.); -#1963=ORIENTED_EDGE('',*,*,#11767,.T.); -#1964=ORIENTED_EDGE('',*,*,#11768,.T.); -#1965=ORIENTED_EDGE('',*,*,#11769,.T.); -#1966=ORIENTED_EDGE('',*,*,#11770,.T.); -#1967=ORIENTED_EDGE('',*,*,#11771,.T.); -#1968=ORIENTED_EDGE('',*,*,#11772,.T.); -#1969=ORIENTED_EDGE('',*,*,#11773,.T.); -#1970=ORIENTED_EDGE('',*,*,#11774,.T.); -#1971=ORIENTED_EDGE('',*,*,#11775,.T.); -#1972=ORIENTED_EDGE('',*,*,#11776,.T.); -#1973=ORIENTED_EDGE('',*,*,#11777,.T.); -#1974=ORIENTED_EDGE('',*,*,#11778,.T.); -#1975=ORIENTED_EDGE('',*,*,#11779,.T.); -#1976=ORIENTED_EDGE('',*,*,#11780,.T.); -#1977=ORIENTED_EDGE('',*,*,#11781,.T.); -#1978=ORIENTED_EDGE('',*,*,#11782,.T.); -#1979=ORIENTED_EDGE('',*,*,#11783,.T.); -#1980=ORIENTED_EDGE('',*,*,#11784,.T.); -#1981=ORIENTED_EDGE('',*,*,#11785,.T.); -#1982=ORIENTED_EDGE('',*,*,#11786,.T.); -#1983=ORIENTED_EDGE('',*,*,#11787,.T.); -#1984=ORIENTED_EDGE('',*,*,#11788,.T.); -#1985=ORIENTED_EDGE('',*,*,#11789,.T.); -#1986=ORIENTED_EDGE('',*,*,#11790,.T.); -#1987=ORIENTED_EDGE('',*,*,#11791,.T.); -#1988=ORIENTED_EDGE('',*,*,#11792,.T.); -#1989=ORIENTED_EDGE('',*,*,#11793,.T.); -#1990=ORIENTED_EDGE('',*,*,#11794,.T.); -#1991=ORIENTED_EDGE('',*,*,#11795,.T.); -#1992=ORIENTED_EDGE('',*,*,#11796,.T.); -#1993=ORIENTED_EDGE('',*,*,#11797,.T.); -#1994=ORIENTED_EDGE('',*,*,#11798,.T.); -#1995=ORIENTED_EDGE('',*,*,#11799,.T.); -#1996=ORIENTED_EDGE('',*,*,#11800,.T.); -#1997=ORIENTED_EDGE('',*,*,#11801,.T.); -#1998=ORIENTED_EDGE('',*,*,#11802,.T.); -#1999=ORIENTED_EDGE('',*,*,#11803,.T.); -#2000=ORIENTED_EDGE('',*,*,#11804,.T.); -#2001=ORIENTED_EDGE('',*,*,#11805,.T.); -#2002=ORIENTED_EDGE('',*,*,#11806,.T.); -#2003=ORIENTED_EDGE('',*,*,#11807,.T.); -#2004=ORIENTED_EDGE('',*,*,#11808,.T.); -#2005=ORIENTED_EDGE('',*,*,#11809,.T.); -#2006=ORIENTED_EDGE('',*,*,#11810,.T.); -#2007=ORIENTED_EDGE('',*,*,#11811,.T.); -#2008=ORIENTED_EDGE('',*,*,#11812,.T.); -#2009=ORIENTED_EDGE('',*,*,#11813,.T.); -#2010=ORIENTED_EDGE('',*,*,#11814,.T.); -#2011=ORIENTED_EDGE('',*,*,#11815,.T.); -#2012=ORIENTED_EDGE('',*,*,#11816,.T.); -#2013=ORIENTED_EDGE('',*,*,#11817,.T.); -#2014=ORIENTED_EDGE('',*,*,#11818,.F.); -#2015=ORIENTED_EDGE('',*,*,#11819,.F.); -#2016=ORIENTED_EDGE('',*,*,#11820,.F.); -#2017=ORIENTED_EDGE('',*,*,#11821,.T.); -#2018=ORIENTED_EDGE('',*,*,#11822,.F.); -#2019=ORIENTED_EDGE('',*,*,#11823,.T.); -#2020=ORIENTED_EDGE('',*,*,#11824,.F.); -#2021=ORIENTED_EDGE('',*,*,#11825,.T.); -#2022=ORIENTED_EDGE('',*,*,#11826,.F.); -#2023=ORIENTED_EDGE('',*,*,#11827,.T.); -#2024=ORIENTED_EDGE('',*,*,#11828,.F.); -#2025=ORIENTED_EDGE('',*,*,#11829,.T.); -#2026=ORIENTED_EDGE('',*,*,#11830,.F.); -#2027=ORIENTED_EDGE('',*,*,#11831,.T.); -#2028=ORIENTED_EDGE('',*,*,#11832,.F.); -#2029=ORIENTED_EDGE('',*,*,#11833,.T.); -#2030=ORIENTED_EDGE('',*,*,#11834,.F.); -#2031=ORIENTED_EDGE('',*,*,#11835,.T.); -#2032=ORIENTED_EDGE('',*,*,#11836,.F.); -#2033=ORIENTED_EDGE('',*,*,#11837,.T.); -#2034=ORIENTED_EDGE('',*,*,#11838,.F.); -#2035=ORIENTED_EDGE('',*,*,#11839,.T.); -#2036=ORIENTED_EDGE('',*,*,#11840,.F.); -#2037=ORIENTED_EDGE('',*,*,#11841,.T.); -#2038=ORIENTED_EDGE('',*,*,#11842,.F.); -#2039=ORIENTED_EDGE('',*,*,#11843,.T.); -#2040=ORIENTED_EDGE('',*,*,#11844,.F.); -#2041=ORIENTED_EDGE('',*,*,#11845,.T.); -#2042=ORIENTED_EDGE('',*,*,#11846,.F.); -#2043=ORIENTED_EDGE('',*,*,#11847,.T.); -#2044=ORIENTED_EDGE('',*,*,#11848,.F.); -#2045=ORIENTED_EDGE('',*,*,#11849,.T.); -#2046=ORIENTED_EDGE('',*,*,#11850,.F.); -#2047=ORIENTED_EDGE('',*,*,#11851,.T.); -#2048=ORIENTED_EDGE('',*,*,#11852,.F.); -#2049=ORIENTED_EDGE('',*,*,#11853,.T.); -#2050=ORIENTED_EDGE('',*,*,#11854,.F.); -#2051=ORIENTED_EDGE('',*,*,#11855,.T.); -#2052=ORIENTED_EDGE('',*,*,#11856,.F.); -#2053=ORIENTED_EDGE('',*,*,#11857,.T.); -#2054=ORIENTED_EDGE('',*,*,#11858,.F.); -#2055=ORIENTED_EDGE('',*,*,#11859,.T.); -#2056=ORIENTED_EDGE('',*,*,#11860,.F.); -#2057=ORIENTED_EDGE('',*,*,#11861,.T.); -#2058=ORIENTED_EDGE('',*,*,#11862,.F.); -#2059=ORIENTED_EDGE('',*,*,#11863,.T.); -#2060=ORIENTED_EDGE('',*,*,#11864,.F.); -#2061=ORIENTED_EDGE('',*,*,#11865,.T.); -#2062=ORIENTED_EDGE('',*,*,#11866,.F.); -#2063=ORIENTED_EDGE('',*,*,#11867,.T.); -#2064=ORIENTED_EDGE('',*,*,#11868,.F.); -#2065=ORIENTED_EDGE('',*,*,#11869,.T.); -#2066=ORIENTED_EDGE('',*,*,#11870,.F.); -#2067=ORIENTED_EDGE('',*,*,#11871,.T.); -#2068=ORIENTED_EDGE('',*,*,#11872,.F.); -#2069=ORIENTED_EDGE('',*,*,#11873,.T.); -#2070=ORIENTED_EDGE('',*,*,#11874,.F.); -#2071=ORIENTED_EDGE('',*,*,#11875,.T.); -#2072=ORIENTED_EDGE('',*,*,#11876,.F.); -#2073=ORIENTED_EDGE('',*,*,#11877,.T.); -#2074=ORIENTED_EDGE('',*,*,#11878,.F.); -#2075=ORIENTED_EDGE('',*,*,#11879,.T.); -#2076=ORIENTED_EDGE('',*,*,#11880,.F.); -#2077=ORIENTED_EDGE('',*,*,#11881,.T.); -#2078=ORIENTED_EDGE('',*,*,#11882,.F.); -#2079=ORIENTED_EDGE('',*,*,#11883,.T.); -#2080=ORIENTED_EDGE('',*,*,#11884,.F.); -#2081=ORIENTED_EDGE('',*,*,#11885,.T.); -#2082=ORIENTED_EDGE('',*,*,#11886,.F.); -#2083=ORIENTED_EDGE('',*,*,#11887,.T.); -#2084=ORIENTED_EDGE('',*,*,#11888,.F.); -#2085=ORIENTED_EDGE('',*,*,#11889,.T.); -#2086=ORIENTED_EDGE('',*,*,#11890,.F.); -#2087=ORIENTED_EDGE('',*,*,#11891,.T.); -#2088=ORIENTED_EDGE('',*,*,#11892,.F.); -#2089=ORIENTED_EDGE('',*,*,#11893,.T.); -#2090=ORIENTED_EDGE('',*,*,#11894,.F.); -#2091=ORIENTED_EDGE('',*,*,#11895,.T.); -#2092=ORIENTED_EDGE('',*,*,#11896,.F.); -#2093=ORIENTED_EDGE('',*,*,#11897,.T.); -#2094=ORIENTED_EDGE('',*,*,#11898,.F.); -#2095=ORIENTED_EDGE('',*,*,#11899,.T.); -#2096=ORIENTED_EDGE('',*,*,#11900,.T.); -#2097=ORIENTED_EDGE('',*,*,#11901,.T.); -#2098=ORIENTED_EDGE('',*,*,#11728,.T.); -#2099=ORIENTED_EDGE('',*,*,#11902,.T.); -#2100=ORIENTED_EDGE('',*,*,#11903,.F.); -#2101=ORIENTED_EDGE('',*,*,#11904,.F.); -#2102=ORIENTED_EDGE('',*,*,#11905,.F.); -#2103=ORIENTED_EDGE('',*,*,#11906,.T.); -#2104=ORIENTED_EDGE('',*,*,#11907,.F.); -#2105=ORIENTED_EDGE('',*,*,#11908,.F.); -#2106=ORIENTED_EDGE('',*,*,#11909,.F.); -#2107=ORIENTED_EDGE('',*,*,#11910,.T.); -#2108=ORIENTED_EDGE('',*,*,#11911,.F.); -#2109=ORIENTED_EDGE('',*,*,#11912,.F.); -#2110=ORIENTED_EDGE('',*,*,#11913,.F.); -#2111=ORIENTED_EDGE('',*,*,#11914,.T.); -#2112=ORIENTED_EDGE('',*,*,#11915,.F.); -#2113=ORIENTED_EDGE('',*,*,#11916,.F.); -#2114=ORIENTED_EDGE('',*,*,#11917,.F.); -#2115=ORIENTED_EDGE('',*,*,#11918,.T.); -#2116=ORIENTED_EDGE('',*,*,#11919,.F.); -#2117=ORIENTED_EDGE('',*,*,#11920,.F.); -#2118=ORIENTED_EDGE('',*,*,#11921,.F.); -#2119=ORIENTED_EDGE('',*,*,#11922,.T.); -#2120=ORIENTED_EDGE('',*,*,#11923,.F.); -#2121=ORIENTED_EDGE('',*,*,#11924,.F.); -#2122=ORIENTED_EDGE('',*,*,#11925,.F.); -#2123=ORIENTED_EDGE('',*,*,#11926,.T.); -#2124=ORIENTED_EDGE('',*,*,#11927,.F.); -#2125=ORIENTED_EDGE('',*,*,#11928,.F.); -#2126=ORIENTED_EDGE('',*,*,#11929,.F.); -#2127=ORIENTED_EDGE('',*,*,#11930,.T.); -#2128=ORIENTED_EDGE('',*,*,#11931,.F.); -#2129=ORIENTED_EDGE('',*,*,#11932,.F.); -#2130=ORIENTED_EDGE('',*,*,#11933,.F.); -#2131=ORIENTED_EDGE('',*,*,#11934,.T.); -#2132=ORIENTED_EDGE('',*,*,#11655,.T.); -#2133=ORIENTED_EDGE('',*,*,#11935,.T.); -#2134=ORIENTED_EDGE('',*,*,#11661,.T.); -#2135=ORIENTED_EDGE('',*,*,#11936,.T.); -#2136=ORIENTED_EDGE('',*,*,#11937,.T.); -#2137=ORIENTED_EDGE('',*,*,#11938,.T.); -#2138=ORIENTED_EDGE('',*,*,#11939,.F.); -#2139=ORIENTED_EDGE('',*,*,#11940,.F.); -#2140=ORIENTED_EDGE('',*,*,#11941,.F.); -#2141=ORIENTED_EDGE('',*,*,#11942,.T.); -#2142=ORIENTED_EDGE('',*,*,#11943,.F.); -#2143=ORIENTED_EDGE('',*,*,#11944,.F.); -#2144=ORIENTED_EDGE('',*,*,#11945,.F.); -#2145=ORIENTED_EDGE('',*,*,#11946,.T.); -#2146=ORIENTED_EDGE('',*,*,#11947,.F.); -#2147=ORIENTED_EDGE('',*,*,#11948,.F.); -#2148=ORIENTED_EDGE('',*,*,#11949,.F.); -#2149=ORIENTED_EDGE('',*,*,#11950,.T.); -#2150=ORIENTED_EDGE('',*,*,#11951,.F.); -#2151=ORIENTED_EDGE('',*,*,#11952,.F.); -#2152=ORIENTED_EDGE('',*,*,#11953,.F.); -#2153=ORIENTED_EDGE('',*,*,#11954,.T.); -#2154=ORIENTED_EDGE('',*,*,#11955,.F.); -#2155=ORIENTED_EDGE('',*,*,#11956,.F.); -#2156=ORIENTED_EDGE('',*,*,#11957,.F.); -#2157=ORIENTED_EDGE('',*,*,#11958,.T.); -#2158=ORIENTED_EDGE('',*,*,#11959,.F.); -#2159=ORIENTED_EDGE('',*,*,#11960,.F.); -#2160=ORIENTED_EDGE('',*,*,#11961,.F.); -#2161=ORIENTED_EDGE('',*,*,#11962,.T.); -#2162=ORIENTED_EDGE('',*,*,#11963,.F.); -#2163=ORIENTED_EDGE('',*,*,#11964,.F.); -#2164=ORIENTED_EDGE('',*,*,#11965,.F.); -#2165=ORIENTED_EDGE('',*,*,#11966,.T.); -#2166=ORIENTED_EDGE('',*,*,#11967,.F.); -#2167=ORIENTED_EDGE('',*,*,#11968,.F.); -#2168=ORIENTED_EDGE('',*,*,#11969,.F.); -#2169=ORIENTED_EDGE('',*,*,#11970,.T.); -#2170=ORIENTED_EDGE('',*,*,#11971,.T.); -#2171=ORIENTED_EDGE('',*,*,#11972,.F.); -#2172=ORIENTED_EDGE('',*,*,#11973,.F.); -#2173=ORIENTED_EDGE('',*,*,#11974,.F.); -#2174=ORIENTED_EDGE('',*,*,#11975,.T.); -#2175=ORIENTED_EDGE('',*,*,#11976,.T.); -#2176=ORIENTED_EDGE('',*,*,#11970,.F.); -#2177=ORIENTED_EDGE('',*,*,#11977,.T.); -#2178=ORIENTED_EDGE('',*,*,#11978,.T.); -#2179=ORIENTED_EDGE('',*,*,#11979,.T.); -#2180=ORIENTED_EDGE('',*,*,#11682,.T.); -#2181=ORIENTED_EDGE('',*,*,#11980,.F.); -#2182=ORIENTED_EDGE('',*,*,#11900,.F.); -#2183=ORIENTED_EDGE('',*,*,#11981,.T.); -#2184=ORIENTED_EDGE('',*,*,#11982,.T.); -#2185=ORIENTED_EDGE('',*,*,#11983,.F.); -#2186=ORIENTED_EDGE('',*,*,#11984,.T.); -#2187=ORIENTED_EDGE('',*,*,#11985,.F.); -#2188=ORIENTED_EDGE('',*,*,#11986,.T.); -#2189=ORIENTED_EDGE('',*,*,#11987,.T.); -#2190=ORIENTED_EDGE('',*,*,#11988,.F.); -#2191=ORIENTED_EDGE('',*,*,#11989,.T.); -#2192=ORIENTED_EDGE('',*,*,#11990,.T.); -#2193=ORIENTED_EDGE('',*,*,#11981,.F.); -#2194=ORIENTED_EDGE('',*,*,#11991,.T.); -#2195=ORIENTED_EDGE('',*,*,#11821,.F.); -#2196=ORIENTED_EDGE('',*,*,#11992,.T.); -#2197=ORIENTED_EDGE('',*,*,#11993,.T.); -#2198=ORIENTED_EDGE('',*,*,#11994,.F.); -#2199=ORIENTED_EDGE('',*,*,#11816,.F.); -#2200=ORIENTED_EDGE('',*,*,#11995,.F.); -#2201=ORIENTED_EDGE('',*,*,#11987,.F.); -#2202=ORIENTED_EDGE('',*,*,#11996,.T.); -#2203=ORIENTED_EDGE('',*,*,#11983,.T.); -#2204=ORIENTED_EDGE('',*,*,#11997,.T.); -#2205=ORIENTED_EDGE('',*,*,#11998,.T.); -#2206=ORIENTED_EDGE('',*,*,#11999,.T.); -#2207=ORIENTED_EDGE('',*,*,#11985,.T.); -#2208=ORIENTED_EDGE('',*,*,#12000,.F.); -#2209=ORIENTED_EDGE('',*,*,#11814,.F.); -#2210=ORIENTED_EDGE('',*,*,#12001,.F.); -#2211=ORIENTED_EDGE('',*,*,#12002,.T.); -#2212=ORIENTED_EDGE('',*,*,#12003,.T.); -#2213=ORIENTED_EDGE('',*,*,#11823,.F.); -#2214=ORIENTED_EDGE('',*,*,#12004,.T.); -#2215=ORIENTED_EDGE('',*,*,#12005,.T.); -#2216=ORIENTED_EDGE('',*,*,#12006,.T.); -#2217=ORIENTED_EDGE('',*,*,#12007,.F.); -#2218=ORIENTED_EDGE('',*,*,#12008,.T.); -#2219=ORIENTED_EDGE('',*,*,#12009,.F.); -#2220=ORIENTED_EDGE('',*,*,#12010,.T.); -#2221=ORIENTED_EDGE('',*,*,#12011,.T.); -#2222=ORIENTED_EDGE('',*,*,#12012,.F.); -#2223=ORIENTED_EDGE('',*,*,#12013,.T.); -#2224=ORIENTED_EDGE('',*,*,#12014,.T.); -#2225=ORIENTED_EDGE('',*,*,#12005,.F.); -#2226=ORIENTED_EDGE('',*,*,#12015,.T.); -#2227=ORIENTED_EDGE('',*,*,#11825,.F.); -#2228=ORIENTED_EDGE('',*,*,#12016,.T.); -#2229=ORIENTED_EDGE('',*,*,#12017,.T.); -#2230=ORIENTED_EDGE('',*,*,#12018,.F.); -#2231=ORIENTED_EDGE('',*,*,#11812,.F.); -#2232=ORIENTED_EDGE('',*,*,#12019,.F.); -#2233=ORIENTED_EDGE('',*,*,#12011,.F.); -#2234=ORIENTED_EDGE('',*,*,#12020,.T.); -#2235=ORIENTED_EDGE('',*,*,#12007,.T.); -#2236=ORIENTED_EDGE('',*,*,#12021,.T.); -#2237=ORIENTED_EDGE('',*,*,#12022,.T.); -#2238=ORIENTED_EDGE('',*,*,#12023,.T.); -#2239=ORIENTED_EDGE('',*,*,#12009,.T.); -#2240=ORIENTED_EDGE('',*,*,#12024,.F.); -#2241=ORIENTED_EDGE('',*,*,#11810,.F.); -#2242=ORIENTED_EDGE('',*,*,#12025,.F.); -#2243=ORIENTED_EDGE('',*,*,#12026,.T.); -#2244=ORIENTED_EDGE('',*,*,#12027,.T.); -#2245=ORIENTED_EDGE('',*,*,#11827,.F.); -#2246=ORIENTED_EDGE('',*,*,#12028,.T.); -#2247=ORIENTED_EDGE('',*,*,#12029,.T.); -#2248=ORIENTED_EDGE('',*,*,#12030,.T.); -#2249=ORIENTED_EDGE('',*,*,#12031,.F.); -#2250=ORIENTED_EDGE('',*,*,#12032,.T.); -#2251=ORIENTED_EDGE('',*,*,#12033,.F.); -#2252=ORIENTED_EDGE('',*,*,#12034,.T.); -#2253=ORIENTED_EDGE('',*,*,#12035,.T.); -#2254=ORIENTED_EDGE('',*,*,#12036,.F.); -#2255=ORIENTED_EDGE('',*,*,#12037,.T.); -#2256=ORIENTED_EDGE('',*,*,#12038,.T.); -#2257=ORIENTED_EDGE('',*,*,#12029,.F.); -#2258=ORIENTED_EDGE('',*,*,#12039,.T.); -#2259=ORIENTED_EDGE('',*,*,#11829,.F.); -#2260=ORIENTED_EDGE('',*,*,#12040,.T.); -#2261=ORIENTED_EDGE('',*,*,#12041,.T.); -#2262=ORIENTED_EDGE('',*,*,#12042,.F.); -#2263=ORIENTED_EDGE('',*,*,#11808,.F.); -#2264=ORIENTED_EDGE('',*,*,#12043,.F.); -#2265=ORIENTED_EDGE('',*,*,#12035,.F.); -#2266=ORIENTED_EDGE('',*,*,#12044,.T.); -#2267=ORIENTED_EDGE('',*,*,#12031,.T.); -#2268=ORIENTED_EDGE('',*,*,#12045,.T.); -#2269=ORIENTED_EDGE('',*,*,#12046,.T.); -#2270=ORIENTED_EDGE('',*,*,#12047,.T.); -#2271=ORIENTED_EDGE('',*,*,#12033,.T.); -#2272=ORIENTED_EDGE('',*,*,#12048,.F.); -#2273=ORIENTED_EDGE('',*,*,#11806,.F.); -#2274=ORIENTED_EDGE('',*,*,#12049,.F.); -#2275=ORIENTED_EDGE('',*,*,#12050,.T.); -#2276=ORIENTED_EDGE('',*,*,#12051,.T.); -#2277=ORIENTED_EDGE('',*,*,#11831,.F.); -#2278=ORIENTED_EDGE('',*,*,#12052,.T.); -#2279=ORIENTED_EDGE('',*,*,#12053,.T.); -#2280=ORIENTED_EDGE('',*,*,#12054,.T.); -#2281=ORIENTED_EDGE('',*,*,#12055,.F.); -#2282=ORIENTED_EDGE('',*,*,#12056,.T.); -#2283=ORIENTED_EDGE('',*,*,#12057,.F.); -#2284=ORIENTED_EDGE('',*,*,#12058,.T.); -#2285=ORIENTED_EDGE('',*,*,#12059,.T.); -#2286=ORIENTED_EDGE('',*,*,#12060,.F.); -#2287=ORIENTED_EDGE('',*,*,#12061,.T.); -#2288=ORIENTED_EDGE('',*,*,#12062,.T.); -#2289=ORIENTED_EDGE('',*,*,#12053,.F.); -#2290=ORIENTED_EDGE('',*,*,#12063,.T.); -#2291=ORIENTED_EDGE('',*,*,#11833,.F.); -#2292=ORIENTED_EDGE('',*,*,#12064,.T.); -#2293=ORIENTED_EDGE('',*,*,#12065,.T.); -#2294=ORIENTED_EDGE('',*,*,#12066,.F.); -#2295=ORIENTED_EDGE('',*,*,#11804,.F.); -#2296=ORIENTED_EDGE('',*,*,#12067,.F.); -#2297=ORIENTED_EDGE('',*,*,#12059,.F.); -#2298=ORIENTED_EDGE('',*,*,#12068,.T.); -#2299=ORIENTED_EDGE('',*,*,#12055,.T.); -#2300=ORIENTED_EDGE('',*,*,#12069,.T.); -#2301=ORIENTED_EDGE('',*,*,#12070,.T.); -#2302=ORIENTED_EDGE('',*,*,#12071,.T.); -#2303=ORIENTED_EDGE('',*,*,#12057,.T.); -#2304=ORIENTED_EDGE('',*,*,#12072,.F.); -#2305=ORIENTED_EDGE('',*,*,#11802,.F.); -#2306=ORIENTED_EDGE('',*,*,#12073,.F.); -#2307=ORIENTED_EDGE('',*,*,#12074,.T.); -#2308=ORIENTED_EDGE('',*,*,#12075,.T.); -#2309=ORIENTED_EDGE('',*,*,#11835,.F.); -#2310=ORIENTED_EDGE('',*,*,#12076,.T.); -#2311=ORIENTED_EDGE('',*,*,#12077,.T.); -#2312=ORIENTED_EDGE('',*,*,#12078,.T.); -#2313=ORIENTED_EDGE('',*,*,#12079,.F.); -#2314=ORIENTED_EDGE('',*,*,#12080,.T.); -#2315=ORIENTED_EDGE('',*,*,#12081,.F.); -#2316=ORIENTED_EDGE('',*,*,#12082,.T.); -#2317=ORIENTED_EDGE('',*,*,#12083,.T.); -#2318=ORIENTED_EDGE('',*,*,#12084,.F.); -#2319=ORIENTED_EDGE('',*,*,#12085,.T.); -#2320=ORIENTED_EDGE('',*,*,#12086,.T.); -#2321=ORIENTED_EDGE('',*,*,#12077,.F.); -#2322=ORIENTED_EDGE('',*,*,#12087,.T.); -#2323=ORIENTED_EDGE('',*,*,#11837,.F.); -#2324=ORIENTED_EDGE('',*,*,#12088,.T.); -#2325=ORIENTED_EDGE('',*,*,#12089,.T.); -#2326=ORIENTED_EDGE('',*,*,#12090,.F.); -#2327=ORIENTED_EDGE('',*,*,#11800,.F.); -#2328=ORIENTED_EDGE('',*,*,#12091,.F.); -#2329=ORIENTED_EDGE('',*,*,#12083,.F.); -#2330=ORIENTED_EDGE('',*,*,#12092,.T.); -#2331=ORIENTED_EDGE('',*,*,#12079,.T.); -#2332=ORIENTED_EDGE('',*,*,#12093,.T.); -#2333=ORIENTED_EDGE('',*,*,#12094,.T.); -#2334=ORIENTED_EDGE('',*,*,#12095,.T.); -#2335=ORIENTED_EDGE('',*,*,#12081,.T.); -#2336=ORIENTED_EDGE('',*,*,#12096,.F.); -#2337=ORIENTED_EDGE('',*,*,#11798,.F.); -#2338=ORIENTED_EDGE('',*,*,#12097,.F.); -#2339=ORIENTED_EDGE('',*,*,#12098,.T.); -#2340=ORIENTED_EDGE('',*,*,#12099,.T.); -#2341=ORIENTED_EDGE('',*,*,#11839,.F.); -#2342=ORIENTED_EDGE('',*,*,#12100,.T.); -#2343=ORIENTED_EDGE('',*,*,#12101,.T.); -#2344=ORIENTED_EDGE('',*,*,#12102,.T.); -#2345=ORIENTED_EDGE('',*,*,#12103,.F.); -#2346=ORIENTED_EDGE('',*,*,#12104,.T.); -#2347=ORIENTED_EDGE('',*,*,#12105,.F.); -#2348=ORIENTED_EDGE('',*,*,#12106,.T.); -#2349=ORIENTED_EDGE('',*,*,#12107,.T.); -#2350=ORIENTED_EDGE('',*,*,#12108,.F.); -#2351=ORIENTED_EDGE('',*,*,#12109,.T.); -#2352=ORIENTED_EDGE('',*,*,#12110,.T.); -#2353=ORIENTED_EDGE('',*,*,#12101,.F.); -#2354=ORIENTED_EDGE('',*,*,#12111,.T.); -#2355=ORIENTED_EDGE('',*,*,#11841,.F.); -#2356=ORIENTED_EDGE('',*,*,#12112,.T.); -#2357=ORIENTED_EDGE('',*,*,#12113,.T.); -#2358=ORIENTED_EDGE('',*,*,#12114,.F.); -#2359=ORIENTED_EDGE('',*,*,#11796,.F.); -#2360=ORIENTED_EDGE('',*,*,#12115,.F.); -#2361=ORIENTED_EDGE('',*,*,#12107,.F.); -#2362=ORIENTED_EDGE('',*,*,#12116,.T.); -#2363=ORIENTED_EDGE('',*,*,#12103,.T.); -#2364=ORIENTED_EDGE('',*,*,#12117,.T.); -#2365=ORIENTED_EDGE('',*,*,#12118,.T.); -#2366=ORIENTED_EDGE('',*,*,#12119,.T.); -#2367=ORIENTED_EDGE('',*,*,#12105,.T.); -#2368=ORIENTED_EDGE('',*,*,#12120,.F.); -#2369=ORIENTED_EDGE('',*,*,#11794,.F.); -#2370=ORIENTED_EDGE('',*,*,#12121,.F.); -#2371=ORIENTED_EDGE('',*,*,#12122,.T.); -#2372=ORIENTED_EDGE('',*,*,#12123,.T.); -#2373=ORIENTED_EDGE('',*,*,#11843,.F.); -#2374=ORIENTED_EDGE('',*,*,#12124,.T.); -#2375=ORIENTED_EDGE('',*,*,#12125,.T.); -#2376=ORIENTED_EDGE('',*,*,#12126,.T.); -#2377=ORIENTED_EDGE('',*,*,#12127,.F.); -#2378=ORIENTED_EDGE('',*,*,#12128,.T.); -#2379=ORIENTED_EDGE('',*,*,#12129,.F.); -#2380=ORIENTED_EDGE('',*,*,#12130,.T.); -#2381=ORIENTED_EDGE('',*,*,#12131,.T.); -#2382=ORIENTED_EDGE('',*,*,#12132,.F.); -#2383=ORIENTED_EDGE('',*,*,#12133,.T.); -#2384=ORIENTED_EDGE('',*,*,#12134,.T.); -#2385=ORIENTED_EDGE('',*,*,#12125,.F.); -#2386=ORIENTED_EDGE('',*,*,#12135,.T.); -#2387=ORIENTED_EDGE('',*,*,#11845,.F.); -#2388=ORIENTED_EDGE('',*,*,#12136,.T.); -#2389=ORIENTED_EDGE('',*,*,#12137,.T.); -#2390=ORIENTED_EDGE('',*,*,#12138,.F.); -#2391=ORIENTED_EDGE('',*,*,#11792,.F.); -#2392=ORIENTED_EDGE('',*,*,#12139,.F.); -#2393=ORIENTED_EDGE('',*,*,#12131,.F.); -#2394=ORIENTED_EDGE('',*,*,#12140,.T.); -#2395=ORIENTED_EDGE('',*,*,#12127,.T.); -#2396=ORIENTED_EDGE('',*,*,#12141,.T.); -#2397=ORIENTED_EDGE('',*,*,#12142,.T.); -#2398=ORIENTED_EDGE('',*,*,#12143,.T.); -#2399=ORIENTED_EDGE('',*,*,#12129,.T.); -#2400=ORIENTED_EDGE('',*,*,#12144,.F.); -#2401=ORIENTED_EDGE('',*,*,#11790,.F.); -#2402=ORIENTED_EDGE('',*,*,#12145,.F.); -#2403=ORIENTED_EDGE('',*,*,#12146,.T.); -#2404=ORIENTED_EDGE('',*,*,#12147,.T.); -#2405=ORIENTED_EDGE('',*,*,#11847,.F.); -#2406=ORIENTED_EDGE('',*,*,#12148,.T.); -#2407=ORIENTED_EDGE('',*,*,#12149,.T.); -#2408=ORIENTED_EDGE('',*,*,#12150,.T.); -#2409=ORIENTED_EDGE('',*,*,#12151,.F.); -#2410=ORIENTED_EDGE('',*,*,#12152,.T.); -#2411=ORIENTED_EDGE('',*,*,#12153,.F.); -#2412=ORIENTED_EDGE('',*,*,#12154,.T.); -#2413=ORIENTED_EDGE('',*,*,#12155,.T.); -#2414=ORIENTED_EDGE('',*,*,#12156,.F.); -#2415=ORIENTED_EDGE('',*,*,#12157,.T.); -#2416=ORIENTED_EDGE('',*,*,#12158,.T.); -#2417=ORIENTED_EDGE('',*,*,#12149,.F.); -#2418=ORIENTED_EDGE('',*,*,#12159,.T.); -#2419=ORIENTED_EDGE('',*,*,#11849,.F.); -#2420=ORIENTED_EDGE('',*,*,#12160,.T.); -#2421=ORIENTED_EDGE('',*,*,#12161,.T.); -#2422=ORIENTED_EDGE('',*,*,#12162,.F.); -#2423=ORIENTED_EDGE('',*,*,#11788,.F.); -#2424=ORIENTED_EDGE('',*,*,#12163,.F.); -#2425=ORIENTED_EDGE('',*,*,#12155,.F.); -#2426=ORIENTED_EDGE('',*,*,#12164,.T.); -#2427=ORIENTED_EDGE('',*,*,#12151,.T.); -#2428=ORIENTED_EDGE('',*,*,#12165,.T.); -#2429=ORIENTED_EDGE('',*,*,#12166,.T.); -#2430=ORIENTED_EDGE('',*,*,#12167,.T.); -#2431=ORIENTED_EDGE('',*,*,#12153,.T.); -#2432=ORIENTED_EDGE('',*,*,#12168,.F.); -#2433=ORIENTED_EDGE('',*,*,#11786,.F.); -#2434=ORIENTED_EDGE('',*,*,#12169,.F.); -#2435=ORIENTED_EDGE('',*,*,#12170,.T.); -#2436=ORIENTED_EDGE('',*,*,#12171,.T.); -#2437=ORIENTED_EDGE('',*,*,#11851,.F.); -#2438=ORIENTED_EDGE('',*,*,#12172,.T.); -#2439=ORIENTED_EDGE('',*,*,#12173,.T.); -#2440=ORIENTED_EDGE('',*,*,#12174,.T.); -#2441=ORIENTED_EDGE('',*,*,#12175,.F.); -#2442=ORIENTED_EDGE('',*,*,#12176,.T.); -#2443=ORIENTED_EDGE('',*,*,#12177,.F.); -#2444=ORIENTED_EDGE('',*,*,#12178,.T.); -#2445=ORIENTED_EDGE('',*,*,#12179,.T.); -#2446=ORIENTED_EDGE('',*,*,#12180,.F.); -#2447=ORIENTED_EDGE('',*,*,#12181,.T.); -#2448=ORIENTED_EDGE('',*,*,#12182,.T.); -#2449=ORIENTED_EDGE('',*,*,#12173,.F.); -#2450=ORIENTED_EDGE('',*,*,#12183,.T.); -#2451=ORIENTED_EDGE('',*,*,#11853,.F.); -#2452=ORIENTED_EDGE('',*,*,#12184,.T.); -#2453=ORIENTED_EDGE('',*,*,#12185,.T.); -#2454=ORIENTED_EDGE('',*,*,#12186,.F.); -#2455=ORIENTED_EDGE('',*,*,#11784,.F.); -#2456=ORIENTED_EDGE('',*,*,#12187,.F.); -#2457=ORIENTED_EDGE('',*,*,#12179,.F.); -#2458=ORIENTED_EDGE('',*,*,#12188,.T.); -#2459=ORIENTED_EDGE('',*,*,#12175,.T.); -#2460=ORIENTED_EDGE('',*,*,#12189,.T.); -#2461=ORIENTED_EDGE('',*,*,#12190,.T.); -#2462=ORIENTED_EDGE('',*,*,#12191,.T.); -#2463=ORIENTED_EDGE('',*,*,#12177,.T.); -#2464=ORIENTED_EDGE('',*,*,#12192,.F.); -#2465=ORIENTED_EDGE('',*,*,#11782,.F.); -#2466=ORIENTED_EDGE('',*,*,#12193,.F.); -#2467=ORIENTED_EDGE('',*,*,#12194,.T.); -#2468=ORIENTED_EDGE('',*,*,#12195,.T.); -#2469=ORIENTED_EDGE('',*,*,#11855,.F.); -#2470=ORIENTED_EDGE('',*,*,#12196,.T.); -#2471=ORIENTED_EDGE('',*,*,#12197,.T.); -#2472=ORIENTED_EDGE('',*,*,#12198,.T.); -#2473=ORIENTED_EDGE('',*,*,#12199,.F.); -#2474=ORIENTED_EDGE('',*,*,#12200,.T.); -#2475=ORIENTED_EDGE('',*,*,#12201,.F.); -#2476=ORIENTED_EDGE('',*,*,#12202,.T.); -#2477=ORIENTED_EDGE('',*,*,#12203,.T.); -#2478=ORIENTED_EDGE('',*,*,#12204,.F.); -#2479=ORIENTED_EDGE('',*,*,#12205,.T.); -#2480=ORIENTED_EDGE('',*,*,#12206,.T.); -#2481=ORIENTED_EDGE('',*,*,#12197,.F.); -#2482=ORIENTED_EDGE('',*,*,#12207,.T.); -#2483=ORIENTED_EDGE('',*,*,#11857,.F.); -#2484=ORIENTED_EDGE('',*,*,#12208,.T.); -#2485=ORIENTED_EDGE('',*,*,#12209,.T.); -#2486=ORIENTED_EDGE('',*,*,#12210,.F.); -#2487=ORIENTED_EDGE('',*,*,#11780,.F.); -#2488=ORIENTED_EDGE('',*,*,#12211,.F.); -#2489=ORIENTED_EDGE('',*,*,#12203,.F.); -#2490=ORIENTED_EDGE('',*,*,#12212,.T.); -#2491=ORIENTED_EDGE('',*,*,#12199,.T.); -#2492=ORIENTED_EDGE('',*,*,#12213,.T.); -#2493=ORIENTED_EDGE('',*,*,#12214,.T.); -#2494=ORIENTED_EDGE('',*,*,#12215,.T.); -#2495=ORIENTED_EDGE('',*,*,#12201,.T.); -#2496=ORIENTED_EDGE('',*,*,#12216,.F.); -#2497=ORIENTED_EDGE('',*,*,#11778,.F.); -#2498=ORIENTED_EDGE('',*,*,#12217,.F.); -#2499=ORIENTED_EDGE('',*,*,#12218,.T.); -#2500=ORIENTED_EDGE('',*,*,#12219,.T.); -#2501=ORIENTED_EDGE('',*,*,#11859,.F.); -#2502=ORIENTED_EDGE('',*,*,#12220,.T.); -#2503=ORIENTED_EDGE('',*,*,#12221,.T.); -#2504=ORIENTED_EDGE('',*,*,#12222,.T.); -#2505=ORIENTED_EDGE('',*,*,#12223,.F.); -#2506=ORIENTED_EDGE('',*,*,#12224,.T.); -#2507=ORIENTED_EDGE('',*,*,#12225,.F.); -#2508=ORIENTED_EDGE('',*,*,#12226,.T.); -#2509=ORIENTED_EDGE('',*,*,#12227,.T.); -#2510=ORIENTED_EDGE('',*,*,#12228,.F.); -#2511=ORIENTED_EDGE('',*,*,#12229,.T.); -#2512=ORIENTED_EDGE('',*,*,#12230,.T.); -#2513=ORIENTED_EDGE('',*,*,#12221,.F.); -#2514=ORIENTED_EDGE('',*,*,#12231,.T.); -#2515=ORIENTED_EDGE('',*,*,#11861,.F.); -#2516=ORIENTED_EDGE('',*,*,#12232,.T.); -#2517=ORIENTED_EDGE('',*,*,#12233,.T.); -#2518=ORIENTED_EDGE('',*,*,#12234,.F.); -#2519=ORIENTED_EDGE('',*,*,#11776,.F.); -#2520=ORIENTED_EDGE('',*,*,#12235,.F.); -#2521=ORIENTED_EDGE('',*,*,#12227,.F.); -#2522=ORIENTED_EDGE('',*,*,#12236,.T.); -#2523=ORIENTED_EDGE('',*,*,#12223,.T.); -#2524=ORIENTED_EDGE('',*,*,#12237,.T.); -#2525=ORIENTED_EDGE('',*,*,#12238,.T.); -#2526=ORIENTED_EDGE('',*,*,#12239,.T.); -#2527=ORIENTED_EDGE('',*,*,#12225,.T.); -#2528=ORIENTED_EDGE('',*,*,#12240,.F.); -#2529=ORIENTED_EDGE('',*,*,#11774,.F.); -#2530=ORIENTED_EDGE('',*,*,#12241,.F.); -#2531=ORIENTED_EDGE('',*,*,#12242,.T.); -#2532=ORIENTED_EDGE('',*,*,#12243,.T.); -#2533=ORIENTED_EDGE('',*,*,#11863,.F.); -#2534=ORIENTED_EDGE('',*,*,#12244,.T.); -#2535=ORIENTED_EDGE('',*,*,#12245,.T.); -#2536=ORIENTED_EDGE('',*,*,#12246,.T.); -#2537=ORIENTED_EDGE('',*,*,#12247,.F.); -#2538=ORIENTED_EDGE('',*,*,#12248,.T.); -#2539=ORIENTED_EDGE('',*,*,#12249,.F.); -#2540=ORIENTED_EDGE('',*,*,#12250,.T.); -#2541=ORIENTED_EDGE('',*,*,#12251,.T.); -#2542=ORIENTED_EDGE('',*,*,#12252,.F.); -#2543=ORIENTED_EDGE('',*,*,#12253,.T.); -#2544=ORIENTED_EDGE('',*,*,#12254,.T.); -#2545=ORIENTED_EDGE('',*,*,#12245,.F.); -#2546=ORIENTED_EDGE('',*,*,#12255,.T.); -#2547=ORIENTED_EDGE('',*,*,#11865,.F.); -#2548=ORIENTED_EDGE('',*,*,#12256,.T.); -#2549=ORIENTED_EDGE('',*,*,#12257,.T.); -#2550=ORIENTED_EDGE('',*,*,#12258,.F.); -#2551=ORIENTED_EDGE('',*,*,#11772,.F.); -#2552=ORIENTED_EDGE('',*,*,#12259,.F.); -#2553=ORIENTED_EDGE('',*,*,#12251,.F.); -#2554=ORIENTED_EDGE('',*,*,#12260,.T.); -#2555=ORIENTED_EDGE('',*,*,#12247,.T.); -#2556=ORIENTED_EDGE('',*,*,#12261,.T.); -#2557=ORIENTED_EDGE('',*,*,#12262,.T.); -#2558=ORIENTED_EDGE('',*,*,#12263,.T.); -#2559=ORIENTED_EDGE('',*,*,#12249,.T.); -#2560=ORIENTED_EDGE('',*,*,#12264,.F.); -#2561=ORIENTED_EDGE('',*,*,#11770,.F.); -#2562=ORIENTED_EDGE('',*,*,#12265,.F.); -#2563=ORIENTED_EDGE('',*,*,#12266,.T.); -#2564=ORIENTED_EDGE('',*,*,#12267,.T.); -#2565=ORIENTED_EDGE('',*,*,#11867,.F.); -#2566=ORIENTED_EDGE('',*,*,#12268,.T.); -#2567=ORIENTED_EDGE('',*,*,#12269,.T.); -#2568=ORIENTED_EDGE('',*,*,#12270,.T.); -#2569=ORIENTED_EDGE('',*,*,#12271,.F.); -#2570=ORIENTED_EDGE('',*,*,#12272,.T.); -#2571=ORIENTED_EDGE('',*,*,#12273,.F.); -#2572=ORIENTED_EDGE('',*,*,#12274,.T.); -#2573=ORIENTED_EDGE('',*,*,#12275,.T.); -#2574=ORIENTED_EDGE('',*,*,#12276,.F.); -#2575=ORIENTED_EDGE('',*,*,#12277,.T.); -#2576=ORIENTED_EDGE('',*,*,#12278,.T.); -#2577=ORIENTED_EDGE('',*,*,#12269,.F.); -#2578=ORIENTED_EDGE('',*,*,#12279,.T.); -#2579=ORIENTED_EDGE('',*,*,#11869,.F.); -#2580=ORIENTED_EDGE('',*,*,#12280,.T.); -#2581=ORIENTED_EDGE('',*,*,#12281,.T.); -#2582=ORIENTED_EDGE('',*,*,#12282,.F.); -#2583=ORIENTED_EDGE('',*,*,#11768,.F.); -#2584=ORIENTED_EDGE('',*,*,#12283,.F.); -#2585=ORIENTED_EDGE('',*,*,#12275,.F.); -#2586=ORIENTED_EDGE('',*,*,#12284,.T.); -#2587=ORIENTED_EDGE('',*,*,#12271,.T.); -#2588=ORIENTED_EDGE('',*,*,#12285,.T.); -#2589=ORIENTED_EDGE('',*,*,#12286,.T.); -#2590=ORIENTED_EDGE('',*,*,#12287,.T.); -#2591=ORIENTED_EDGE('',*,*,#12273,.T.); -#2592=ORIENTED_EDGE('',*,*,#12288,.F.); -#2593=ORIENTED_EDGE('',*,*,#11766,.F.); -#2594=ORIENTED_EDGE('',*,*,#12289,.F.); -#2595=ORIENTED_EDGE('',*,*,#12290,.T.); -#2596=ORIENTED_EDGE('',*,*,#12291,.T.); -#2597=ORIENTED_EDGE('',*,*,#11871,.F.); -#2598=ORIENTED_EDGE('',*,*,#12292,.T.); -#2599=ORIENTED_EDGE('',*,*,#12293,.T.); -#2600=ORIENTED_EDGE('',*,*,#12294,.T.); -#2601=ORIENTED_EDGE('',*,*,#12295,.F.); -#2602=ORIENTED_EDGE('',*,*,#12296,.T.); -#2603=ORIENTED_EDGE('',*,*,#12297,.F.); -#2604=ORIENTED_EDGE('',*,*,#12298,.T.); -#2605=ORIENTED_EDGE('',*,*,#12299,.T.); -#2606=ORIENTED_EDGE('',*,*,#12300,.F.); -#2607=ORIENTED_EDGE('',*,*,#12301,.T.); -#2608=ORIENTED_EDGE('',*,*,#12302,.T.); -#2609=ORIENTED_EDGE('',*,*,#12293,.F.); -#2610=ORIENTED_EDGE('',*,*,#12303,.T.); -#2611=ORIENTED_EDGE('',*,*,#11873,.F.); -#2612=ORIENTED_EDGE('',*,*,#12304,.T.); -#2613=ORIENTED_EDGE('',*,*,#12305,.T.); -#2614=ORIENTED_EDGE('',*,*,#12306,.F.); -#2615=ORIENTED_EDGE('',*,*,#11764,.F.); -#2616=ORIENTED_EDGE('',*,*,#12307,.F.); -#2617=ORIENTED_EDGE('',*,*,#12299,.F.); -#2618=ORIENTED_EDGE('',*,*,#12308,.T.); -#2619=ORIENTED_EDGE('',*,*,#12295,.T.); -#2620=ORIENTED_EDGE('',*,*,#12309,.T.); -#2621=ORIENTED_EDGE('',*,*,#12310,.T.); -#2622=ORIENTED_EDGE('',*,*,#12311,.T.); -#2623=ORIENTED_EDGE('',*,*,#12297,.T.); -#2624=ORIENTED_EDGE('',*,*,#12312,.F.); -#2625=ORIENTED_EDGE('',*,*,#11762,.F.); -#2626=ORIENTED_EDGE('',*,*,#12313,.F.); -#2627=ORIENTED_EDGE('',*,*,#12314,.T.); -#2628=ORIENTED_EDGE('',*,*,#12315,.T.); -#2629=ORIENTED_EDGE('',*,*,#11875,.F.); -#2630=ORIENTED_EDGE('',*,*,#12316,.T.); -#2631=ORIENTED_EDGE('',*,*,#12317,.T.); -#2632=ORIENTED_EDGE('',*,*,#12318,.T.); -#2633=ORIENTED_EDGE('',*,*,#12319,.F.); -#2634=ORIENTED_EDGE('',*,*,#12320,.T.); -#2635=ORIENTED_EDGE('',*,*,#12321,.F.); -#2636=ORIENTED_EDGE('',*,*,#12322,.T.); -#2637=ORIENTED_EDGE('',*,*,#12323,.T.); -#2638=ORIENTED_EDGE('',*,*,#12324,.F.); -#2639=ORIENTED_EDGE('',*,*,#12325,.T.); -#2640=ORIENTED_EDGE('',*,*,#12326,.T.); -#2641=ORIENTED_EDGE('',*,*,#12317,.F.); -#2642=ORIENTED_EDGE('',*,*,#12327,.T.); -#2643=ORIENTED_EDGE('',*,*,#11877,.F.); -#2644=ORIENTED_EDGE('',*,*,#12328,.T.); -#2645=ORIENTED_EDGE('',*,*,#12329,.T.); -#2646=ORIENTED_EDGE('',*,*,#12330,.F.); -#2647=ORIENTED_EDGE('',*,*,#11760,.F.); -#2648=ORIENTED_EDGE('',*,*,#12331,.F.); -#2649=ORIENTED_EDGE('',*,*,#12323,.F.); -#2650=ORIENTED_EDGE('',*,*,#12332,.T.); -#2651=ORIENTED_EDGE('',*,*,#12319,.T.); -#2652=ORIENTED_EDGE('',*,*,#12333,.T.); -#2653=ORIENTED_EDGE('',*,*,#12334,.T.); -#2654=ORIENTED_EDGE('',*,*,#12335,.T.); -#2655=ORIENTED_EDGE('',*,*,#12321,.T.); -#2656=ORIENTED_EDGE('',*,*,#12336,.F.); -#2657=ORIENTED_EDGE('',*,*,#11758,.F.); -#2658=ORIENTED_EDGE('',*,*,#12337,.F.); -#2659=ORIENTED_EDGE('',*,*,#12338,.T.); -#2660=ORIENTED_EDGE('',*,*,#12339,.T.); -#2661=ORIENTED_EDGE('',*,*,#11879,.F.); -#2662=ORIENTED_EDGE('',*,*,#12340,.T.); -#2663=ORIENTED_EDGE('',*,*,#12341,.T.); -#2664=ORIENTED_EDGE('',*,*,#12342,.T.); -#2665=ORIENTED_EDGE('',*,*,#12343,.F.); -#2666=ORIENTED_EDGE('',*,*,#12344,.T.); -#2667=ORIENTED_EDGE('',*,*,#12345,.F.); -#2668=ORIENTED_EDGE('',*,*,#12346,.T.); -#2669=ORIENTED_EDGE('',*,*,#12347,.T.); -#2670=ORIENTED_EDGE('',*,*,#12348,.F.); -#2671=ORIENTED_EDGE('',*,*,#12349,.T.); -#2672=ORIENTED_EDGE('',*,*,#12350,.T.); -#2673=ORIENTED_EDGE('',*,*,#12341,.F.); -#2674=ORIENTED_EDGE('',*,*,#12351,.T.); -#2675=ORIENTED_EDGE('',*,*,#11881,.F.); -#2676=ORIENTED_EDGE('',*,*,#12352,.T.); -#2677=ORIENTED_EDGE('',*,*,#12353,.T.); -#2678=ORIENTED_EDGE('',*,*,#12354,.F.); -#2679=ORIENTED_EDGE('',*,*,#11756,.F.); -#2680=ORIENTED_EDGE('',*,*,#12355,.F.); -#2681=ORIENTED_EDGE('',*,*,#12347,.F.); -#2682=ORIENTED_EDGE('',*,*,#12356,.T.); -#2683=ORIENTED_EDGE('',*,*,#12343,.T.); -#2684=ORIENTED_EDGE('',*,*,#12357,.T.); -#2685=ORIENTED_EDGE('',*,*,#12358,.T.); -#2686=ORIENTED_EDGE('',*,*,#12359,.T.); -#2687=ORIENTED_EDGE('',*,*,#12345,.T.); -#2688=ORIENTED_EDGE('',*,*,#12360,.F.); -#2689=ORIENTED_EDGE('',*,*,#11754,.F.); -#2690=ORIENTED_EDGE('',*,*,#12361,.F.); -#2691=ORIENTED_EDGE('',*,*,#12362,.T.); -#2692=ORIENTED_EDGE('',*,*,#12363,.T.); -#2693=ORIENTED_EDGE('',*,*,#11883,.F.); -#2694=ORIENTED_EDGE('',*,*,#12364,.T.); -#2695=ORIENTED_EDGE('',*,*,#12365,.T.); -#2696=ORIENTED_EDGE('',*,*,#12366,.T.); -#2697=ORIENTED_EDGE('',*,*,#12367,.F.); -#2698=ORIENTED_EDGE('',*,*,#12368,.T.); -#2699=ORIENTED_EDGE('',*,*,#12369,.F.); -#2700=ORIENTED_EDGE('',*,*,#12370,.T.); -#2701=ORIENTED_EDGE('',*,*,#12371,.T.); -#2702=ORIENTED_EDGE('',*,*,#12372,.F.); -#2703=ORIENTED_EDGE('',*,*,#12373,.T.); -#2704=ORIENTED_EDGE('',*,*,#12374,.T.); -#2705=ORIENTED_EDGE('',*,*,#12365,.F.); -#2706=ORIENTED_EDGE('',*,*,#12375,.T.); -#2707=ORIENTED_EDGE('',*,*,#11885,.F.); -#2708=ORIENTED_EDGE('',*,*,#12376,.T.); -#2709=ORIENTED_EDGE('',*,*,#12377,.T.); -#2710=ORIENTED_EDGE('',*,*,#12378,.F.); -#2711=ORIENTED_EDGE('',*,*,#11752,.F.); -#2712=ORIENTED_EDGE('',*,*,#12379,.F.); -#2713=ORIENTED_EDGE('',*,*,#12371,.F.); -#2714=ORIENTED_EDGE('',*,*,#12380,.T.); -#2715=ORIENTED_EDGE('',*,*,#12367,.T.); -#2716=ORIENTED_EDGE('',*,*,#12381,.T.); -#2717=ORIENTED_EDGE('',*,*,#12382,.T.); -#2718=ORIENTED_EDGE('',*,*,#12383,.T.); -#2719=ORIENTED_EDGE('',*,*,#12369,.T.); -#2720=ORIENTED_EDGE('',*,*,#12384,.F.); -#2721=ORIENTED_EDGE('',*,*,#11750,.F.); -#2722=ORIENTED_EDGE('',*,*,#12385,.F.); -#2723=ORIENTED_EDGE('',*,*,#12386,.T.); -#2724=ORIENTED_EDGE('',*,*,#12387,.T.); -#2725=ORIENTED_EDGE('',*,*,#11887,.F.); -#2726=ORIENTED_EDGE('',*,*,#12388,.T.); -#2727=ORIENTED_EDGE('',*,*,#12389,.T.); -#2728=ORIENTED_EDGE('',*,*,#12390,.T.); -#2729=ORIENTED_EDGE('',*,*,#12391,.F.); -#2730=ORIENTED_EDGE('',*,*,#12392,.T.); -#2731=ORIENTED_EDGE('',*,*,#12393,.F.); -#2732=ORIENTED_EDGE('',*,*,#12394,.T.); -#2733=ORIENTED_EDGE('',*,*,#12395,.T.); -#2734=ORIENTED_EDGE('',*,*,#12396,.F.); -#2735=ORIENTED_EDGE('',*,*,#12397,.T.); -#2736=ORIENTED_EDGE('',*,*,#12398,.T.); -#2737=ORIENTED_EDGE('',*,*,#12389,.F.); -#2738=ORIENTED_EDGE('',*,*,#12399,.T.); -#2739=ORIENTED_EDGE('',*,*,#11889,.F.); -#2740=ORIENTED_EDGE('',*,*,#12400,.T.); -#2741=ORIENTED_EDGE('',*,*,#12401,.T.); -#2742=ORIENTED_EDGE('',*,*,#12402,.F.); -#2743=ORIENTED_EDGE('',*,*,#11748,.F.); -#2744=ORIENTED_EDGE('',*,*,#12403,.F.); -#2745=ORIENTED_EDGE('',*,*,#12395,.F.); -#2746=ORIENTED_EDGE('',*,*,#12404,.T.); -#2747=ORIENTED_EDGE('',*,*,#12391,.T.); -#2748=ORIENTED_EDGE('',*,*,#12405,.T.); -#2749=ORIENTED_EDGE('',*,*,#12406,.T.); -#2750=ORIENTED_EDGE('',*,*,#12407,.T.); -#2751=ORIENTED_EDGE('',*,*,#12393,.T.); -#2752=ORIENTED_EDGE('',*,*,#12408,.F.); -#2753=ORIENTED_EDGE('',*,*,#11746,.F.); -#2754=ORIENTED_EDGE('',*,*,#12409,.F.); -#2755=ORIENTED_EDGE('',*,*,#12410,.T.); -#2756=ORIENTED_EDGE('',*,*,#12411,.T.); -#2757=ORIENTED_EDGE('',*,*,#11891,.F.); -#2758=ORIENTED_EDGE('',*,*,#12412,.T.); -#2759=ORIENTED_EDGE('',*,*,#12413,.T.); -#2760=ORIENTED_EDGE('',*,*,#12414,.T.); -#2761=ORIENTED_EDGE('',*,*,#12415,.F.); -#2762=ORIENTED_EDGE('',*,*,#12416,.T.); -#2763=ORIENTED_EDGE('',*,*,#12417,.F.); -#2764=ORIENTED_EDGE('',*,*,#12418,.T.); -#2765=ORIENTED_EDGE('',*,*,#12419,.T.); -#2766=ORIENTED_EDGE('',*,*,#12420,.F.); -#2767=ORIENTED_EDGE('',*,*,#12421,.T.); -#2768=ORIENTED_EDGE('',*,*,#12422,.T.); -#2769=ORIENTED_EDGE('',*,*,#12413,.F.); -#2770=ORIENTED_EDGE('',*,*,#12423,.T.); -#2771=ORIENTED_EDGE('',*,*,#11893,.F.); -#2772=ORIENTED_EDGE('',*,*,#12424,.T.); -#2773=ORIENTED_EDGE('',*,*,#12425,.T.); -#2774=ORIENTED_EDGE('',*,*,#12426,.F.); -#2775=ORIENTED_EDGE('',*,*,#11744,.F.); -#2776=ORIENTED_EDGE('',*,*,#12427,.F.); -#2777=ORIENTED_EDGE('',*,*,#12419,.F.); -#2778=ORIENTED_EDGE('',*,*,#12428,.T.); -#2779=ORIENTED_EDGE('',*,*,#12415,.T.); -#2780=ORIENTED_EDGE('',*,*,#12429,.T.); -#2781=ORIENTED_EDGE('',*,*,#12430,.T.); -#2782=ORIENTED_EDGE('',*,*,#12431,.T.); -#2783=ORIENTED_EDGE('',*,*,#12417,.T.); -#2784=ORIENTED_EDGE('',*,*,#12432,.F.); -#2785=ORIENTED_EDGE('',*,*,#11742,.F.); -#2786=ORIENTED_EDGE('',*,*,#12433,.F.); -#2787=ORIENTED_EDGE('',*,*,#12434,.T.); -#2788=ORIENTED_EDGE('',*,*,#12435,.T.); -#2789=ORIENTED_EDGE('',*,*,#11895,.F.); -#2790=ORIENTED_EDGE('',*,*,#12436,.T.); -#2791=ORIENTED_EDGE('',*,*,#12437,.T.); -#2792=ORIENTED_EDGE('',*,*,#12438,.T.); -#2793=ORIENTED_EDGE('',*,*,#12439,.T.); -#2794=ORIENTED_EDGE('',*,*,#12440,.T.); -#2795=ORIENTED_EDGE('',*,*,#12441,.T.); -#2796=ORIENTED_EDGE('',*,*,#12442,.F.); -#2797=ORIENTED_EDGE('',*,*,#11738,.F.); -#2798=ORIENTED_EDGE('',*,*,#12443,.F.); -#2799=ORIENTED_EDGE('',*,*,#12444,.T.); -#2800=ORIENTED_EDGE('',*,*,#12445,.T.); -#2801=ORIENTED_EDGE('',*,*,#11733,.F.); -#2802=ORIENTED_EDGE('',*,*,#12446,.T.); -#2803=ORIENTED_EDGE('',*,*,#12447,.T.); -#2804=ORIENTED_EDGE('',*,*,#12448,.T.); -#2805=ORIENTED_EDGE('',*,*,#12437,.F.); -#2806=ORIENTED_EDGE('',*,*,#12449,.T.); -#2807=ORIENTED_EDGE('',*,*,#12441,.F.); -#2808=ORIENTED_EDGE('',*,*,#12450,.T.); -#2809=ORIENTED_EDGE('',*,*,#12451,.T.); -#2810=ORIENTED_EDGE('',*,*,#12452,.F.); -#2811=ORIENTED_EDGE('',*,*,#12453,.T.); -#2812=ORIENTED_EDGE('',*,*,#12454,.T.); -#2813=ORIENTED_EDGE('',*,*,#12447,.F.); -#2814=ORIENTED_EDGE('',*,*,#12455,.T.); -#2815=ORIENTED_EDGE('',*,*,#11897,.F.); -#2816=ORIENTED_EDGE('',*,*,#12456,.T.); -#2817=ORIENTED_EDGE('',*,*,#12457,.T.); -#2818=ORIENTED_EDGE('',*,*,#12458,.F.); -#2819=ORIENTED_EDGE('',*,*,#11740,.F.); -#2820=ORIENTED_EDGE('',*,*,#12459,.F.); -#2821=ORIENTED_EDGE('',*,*,#12451,.F.); -#2822=ORIENTED_EDGE('',*,*,#12460,.T.); -#2823=ORIENTED_EDGE('',*,*,#12445,.F.); -#2824=ORIENTED_EDGE('',*,*,#12461,.T.); -#2825=ORIENTED_EDGE('',*,*,#12462,.T.); -#2826=ORIENTED_EDGE('',*,*,#12463,.F.); -#2827=ORIENTED_EDGE('',*,*,#12464,.T.); -#2828=ORIENTED_EDGE('',*,*,#12465,.T.); -#2829=ORIENTED_EDGE('',*,*,#11734,.T.); -#2830=ORIENTED_EDGE('',*,*,#12456,.F.); -#2831=ORIENTED_EDGE('',*,*,#11896,.T.); -#2832=ORIENTED_EDGE('',*,*,#12435,.F.); -#2833=ORIENTED_EDGE('',*,*,#12466,.T.); -#2834=ORIENTED_EDGE('',*,*,#12424,.F.); -#2835=ORIENTED_EDGE('',*,*,#11892,.T.); -#2836=ORIENTED_EDGE('',*,*,#12411,.F.); -#2837=ORIENTED_EDGE('',*,*,#12467,.T.); -#2838=ORIENTED_EDGE('',*,*,#12400,.F.); -#2839=ORIENTED_EDGE('',*,*,#11888,.T.); -#2840=ORIENTED_EDGE('',*,*,#12387,.F.); -#2841=ORIENTED_EDGE('',*,*,#12468,.T.); -#2842=ORIENTED_EDGE('',*,*,#12376,.F.); -#2843=ORIENTED_EDGE('',*,*,#11884,.T.); -#2844=ORIENTED_EDGE('',*,*,#12363,.F.); -#2845=ORIENTED_EDGE('',*,*,#12469,.T.); -#2846=ORIENTED_EDGE('',*,*,#12352,.F.); -#2847=ORIENTED_EDGE('',*,*,#11880,.T.); -#2848=ORIENTED_EDGE('',*,*,#12339,.F.); -#2849=ORIENTED_EDGE('',*,*,#12470,.T.); -#2850=ORIENTED_EDGE('',*,*,#12328,.F.); -#2851=ORIENTED_EDGE('',*,*,#11876,.T.); -#2852=ORIENTED_EDGE('',*,*,#12315,.F.); -#2853=ORIENTED_EDGE('',*,*,#12471,.T.); -#2854=ORIENTED_EDGE('',*,*,#12304,.F.); -#2855=ORIENTED_EDGE('',*,*,#11872,.T.); -#2856=ORIENTED_EDGE('',*,*,#12291,.F.); -#2857=ORIENTED_EDGE('',*,*,#12472,.T.); -#2858=ORIENTED_EDGE('',*,*,#12280,.F.); -#2859=ORIENTED_EDGE('',*,*,#11868,.T.); -#2860=ORIENTED_EDGE('',*,*,#12267,.F.); -#2861=ORIENTED_EDGE('',*,*,#12473,.T.); -#2862=ORIENTED_EDGE('',*,*,#12256,.F.); -#2863=ORIENTED_EDGE('',*,*,#11864,.T.); -#2864=ORIENTED_EDGE('',*,*,#12243,.F.); -#2865=ORIENTED_EDGE('',*,*,#12474,.T.); -#2866=ORIENTED_EDGE('',*,*,#12232,.F.); -#2867=ORIENTED_EDGE('',*,*,#11860,.T.); -#2868=ORIENTED_EDGE('',*,*,#12219,.F.); -#2869=ORIENTED_EDGE('',*,*,#12475,.T.); -#2870=ORIENTED_EDGE('',*,*,#12208,.F.); -#2871=ORIENTED_EDGE('',*,*,#11856,.T.); -#2872=ORIENTED_EDGE('',*,*,#12195,.F.); -#2873=ORIENTED_EDGE('',*,*,#12476,.T.); -#2874=ORIENTED_EDGE('',*,*,#12184,.F.); -#2875=ORIENTED_EDGE('',*,*,#11852,.T.); -#2876=ORIENTED_EDGE('',*,*,#12171,.F.); -#2877=ORIENTED_EDGE('',*,*,#12477,.T.); -#2878=ORIENTED_EDGE('',*,*,#12160,.F.); -#2879=ORIENTED_EDGE('',*,*,#11848,.T.); -#2880=ORIENTED_EDGE('',*,*,#12147,.F.); -#2881=ORIENTED_EDGE('',*,*,#12478,.T.); -#2882=ORIENTED_EDGE('',*,*,#12136,.F.); -#2883=ORIENTED_EDGE('',*,*,#11844,.T.); -#2884=ORIENTED_EDGE('',*,*,#12123,.F.); -#2885=ORIENTED_EDGE('',*,*,#12479,.T.); -#2886=ORIENTED_EDGE('',*,*,#12112,.F.); -#2887=ORIENTED_EDGE('',*,*,#11840,.T.); -#2888=ORIENTED_EDGE('',*,*,#12099,.F.); -#2889=ORIENTED_EDGE('',*,*,#12480,.T.); -#2890=ORIENTED_EDGE('',*,*,#12088,.F.); -#2891=ORIENTED_EDGE('',*,*,#11836,.T.); -#2892=ORIENTED_EDGE('',*,*,#12075,.F.); -#2893=ORIENTED_EDGE('',*,*,#12481,.T.); -#2894=ORIENTED_EDGE('',*,*,#12064,.F.); -#2895=ORIENTED_EDGE('',*,*,#11832,.T.); -#2896=ORIENTED_EDGE('',*,*,#12051,.F.); -#2897=ORIENTED_EDGE('',*,*,#12482,.T.); -#2898=ORIENTED_EDGE('',*,*,#12040,.F.); -#2899=ORIENTED_EDGE('',*,*,#11828,.T.); -#2900=ORIENTED_EDGE('',*,*,#12027,.F.); -#2901=ORIENTED_EDGE('',*,*,#12483,.T.); -#2902=ORIENTED_EDGE('',*,*,#12016,.F.); -#2903=ORIENTED_EDGE('',*,*,#11824,.T.); -#2904=ORIENTED_EDGE('',*,*,#12003,.F.); -#2905=ORIENTED_EDGE('',*,*,#12484,.T.); -#2906=ORIENTED_EDGE('',*,*,#11992,.F.); -#2907=ORIENTED_EDGE('',*,*,#11820,.T.); -#2908=ORIENTED_EDGE('',*,*,#12485,.T.); -#2909=ORIENTED_EDGE('',*,*,#12486,.T.); -#2910=ORIENTED_EDGE('',*,*,#12487,.F.); -#2911=ORIENTED_EDGE('',*,*,#12488,.T.); -#2912=ORIENTED_EDGE('',*,*,#12489,.T.); -#2913=ORIENTED_EDGE('',*,*,#12490,.F.); -#2914=ORIENTED_EDGE('',*,*,#12443,.T.); -#2915=ORIENTED_EDGE('',*,*,#11737,.F.); -#2916=ORIENTED_EDGE('',*,*,#12491,.F.); -#2917=ORIENTED_EDGE('',*,*,#12492,.T.); -#2918=ORIENTED_EDGE('',*,*,#12493,.F.); -#2919=ORIENTED_EDGE('',*,*,#11741,.F.); -#2920=ORIENTED_EDGE('',*,*,#12458,.T.); -#2921=ORIENTED_EDGE('',*,*,#12494,.F.); -#2922=ORIENTED_EDGE('',*,*,#12433,.T.); -#2923=ORIENTED_EDGE('',*,*,#11745,.F.); -#2924=ORIENTED_EDGE('',*,*,#12426,.T.); -#2925=ORIENTED_EDGE('',*,*,#12495,.F.); -#2926=ORIENTED_EDGE('',*,*,#12409,.T.); -#2927=ORIENTED_EDGE('',*,*,#11749,.F.); -#2928=ORIENTED_EDGE('',*,*,#12402,.T.); -#2929=ORIENTED_EDGE('',*,*,#12496,.F.); -#2930=ORIENTED_EDGE('',*,*,#12385,.T.); -#2931=ORIENTED_EDGE('',*,*,#11753,.F.); -#2932=ORIENTED_EDGE('',*,*,#12378,.T.); -#2933=ORIENTED_EDGE('',*,*,#12497,.F.); -#2934=ORIENTED_EDGE('',*,*,#12361,.T.); -#2935=ORIENTED_EDGE('',*,*,#11757,.F.); -#2936=ORIENTED_EDGE('',*,*,#12354,.T.); -#2937=ORIENTED_EDGE('',*,*,#12498,.F.); -#2938=ORIENTED_EDGE('',*,*,#12337,.T.); -#2939=ORIENTED_EDGE('',*,*,#11761,.F.); -#2940=ORIENTED_EDGE('',*,*,#12330,.T.); -#2941=ORIENTED_EDGE('',*,*,#12499,.F.); -#2942=ORIENTED_EDGE('',*,*,#12313,.T.); -#2943=ORIENTED_EDGE('',*,*,#11765,.F.); -#2944=ORIENTED_EDGE('',*,*,#12306,.T.); -#2945=ORIENTED_EDGE('',*,*,#12500,.F.); -#2946=ORIENTED_EDGE('',*,*,#12289,.T.); -#2947=ORIENTED_EDGE('',*,*,#11769,.F.); -#2948=ORIENTED_EDGE('',*,*,#12282,.T.); -#2949=ORIENTED_EDGE('',*,*,#12501,.F.); -#2950=ORIENTED_EDGE('',*,*,#12265,.T.); -#2951=ORIENTED_EDGE('',*,*,#11773,.F.); -#2952=ORIENTED_EDGE('',*,*,#12258,.T.); -#2953=ORIENTED_EDGE('',*,*,#12502,.F.); -#2954=ORIENTED_EDGE('',*,*,#12241,.T.); -#2955=ORIENTED_EDGE('',*,*,#11777,.F.); -#2956=ORIENTED_EDGE('',*,*,#12234,.T.); -#2957=ORIENTED_EDGE('',*,*,#12503,.F.); -#2958=ORIENTED_EDGE('',*,*,#12217,.T.); -#2959=ORIENTED_EDGE('',*,*,#11781,.F.); -#2960=ORIENTED_EDGE('',*,*,#12210,.T.); -#2961=ORIENTED_EDGE('',*,*,#12504,.F.); -#2962=ORIENTED_EDGE('',*,*,#12193,.T.); -#2963=ORIENTED_EDGE('',*,*,#11785,.F.); -#2964=ORIENTED_EDGE('',*,*,#12186,.T.); -#2965=ORIENTED_EDGE('',*,*,#12505,.F.); -#2966=ORIENTED_EDGE('',*,*,#12169,.T.); -#2967=ORIENTED_EDGE('',*,*,#11789,.F.); -#2968=ORIENTED_EDGE('',*,*,#12162,.T.); -#2969=ORIENTED_EDGE('',*,*,#12506,.F.); -#2970=ORIENTED_EDGE('',*,*,#12145,.T.); -#2971=ORIENTED_EDGE('',*,*,#11793,.F.); -#2972=ORIENTED_EDGE('',*,*,#12138,.T.); -#2973=ORIENTED_EDGE('',*,*,#12507,.F.); -#2974=ORIENTED_EDGE('',*,*,#12121,.T.); -#2975=ORIENTED_EDGE('',*,*,#11797,.F.); -#2976=ORIENTED_EDGE('',*,*,#12114,.T.); -#2977=ORIENTED_EDGE('',*,*,#12508,.F.); -#2978=ORIENTED_EDGE('',*,*,#12097,.T.); -#2979=ORIENTED_EDGE('',*,*,#11801,.F.); -#2980=ORIENTED_EDGE('',*,*,#12090,.T.); -#2981=ORIENTED_EDGE('',*,*,#12509,.F.); -#2982=ORIENTED_EDGE('',*,*,#12073,.T.); -#2983=ORIENTED_EDGE('',*,*,#11805,.F.); -#2984=ORIENTED_EDGE('',*,*,#12066,.T.); -#2985=ORIENTED_EDGE('',*,*,#12510,.F.); -#2986=ORIENTED_EDGE('',*,*,#12049,.T.); -#2987=ORIENTED_EDGE('',*,*,#11809,.F.); -#2988=ORIENTED_EDGE('',*,*,#12042,.T.); -#2989=ORIENTED_EDGE('',*,*,#12511,.F.); -#2990=ORIENTED_EDGE('',*,*,#12025,.T.); -#2991=ORIENTED_EDGE('',*,*,#11813,.F.); -#2992=ORIENTED_EDGE('',*,*,#12018,.T.); -#2993=ORIENTED_EDGE('',*,*,#12512,.F.); -#2994=ORIENTED_EDGE('',*,*,#12001,.T.); -#2995=ORIENTED_EDGE('',*,*,#11817,.F.); -#2996=ORIENTED_EDGE('',*,*,#11994,.T.); -#2997=ORIENTED_EDGE('',*,*,#12513,.F.); -#2998=ORIENTED_EDGE('',*,*,#12514,.F.); -#2999=ORIENTED_EDGE('',*,*,#12515,.T.); -#3000=ORIENTED_EDGE('',*,*,#12516,.F.); -#3001=ORIENTED_EDGE('',*,*,#12444,.F.); -#3002=ORIENTED_EDGE('',*,*,#12490,.T.); -#3003=ORIENTED_EDGE('',*,*,#12517,.F.); -#3004=ORIENTED_EDGE('',*,*,#12461,.F.); -#3005=ORIENTED_EDGE('',*,*,#12457,.F.); -#3006=ORIENTED_EDGE('',*,*,#12466,.F.); -#3007=ORIENTED_EDGE('',*,*,#12434,.F.); -#3008=ORIENTED_EDGE('',*,*,#12494,.T.); -#3009=ORIENTED_EDGE('',*,*,#12425,.F.); -#3010=ORIENTED_EDGE('',*,*,#12467,.F.); -#3011=ORIENTED_EDGE('',*,*,#12410,.F.); -#3012=ORIENTED_EDGE('',*,*,#12495,.T.); -#3013=ORIENTED_EDGE('',*,*,#12401,.F.); -#3014=ORIENTED_EDGE('',*,*,#12468,.F.); -#3015=ORIENTED_EDGE('',*,*,#12386,.F.); -#3016=ORIENTED_EDGE('',*,*,#12496,.T.); -#3017=ORIENTED_EDGE('',*,*,#12377,.F.); -#3018=ORIENTED_EDGE('',*,*,#12469,.F.); -#3019=ORIENTED_EDGE('',*,*,#12362,.F.); -#3020=ORIENTED_EDGE('',*,*,#12497,.T.); -#3021=ORIENTED_EDGE('',*,*,#12353,.F.); -#3022=ORIENTED_EDGE('',*,*,#12470,.F.); -#3023=ORIENTED_EDGE('',*,*,#12338,.F.); -#3024=ORIENTED_EDGE('',*,*,#12498,.T.); -#3025=ORIENTED_EDGE('',*,*,#12329,.F.); -#3026=ORIENTED_EDGE('',*,*,#12471,.F.); -#3027=ORIENTED_EDGE('',*,*,#12314,.F.); -#3028=ORIENTED_EDGE('',*,*,#12499,.T.); -#3029=ORIENTED_EDGE('',*,*,#12305,.F.); -#3030=ORIENTED_EDGE('',*,*,#12472,.F.); -#3031=ORIENTED_EDGE('',*,*,#12290,.F.); -#3032=ORIENTED_EDGE('',*,*,#12500,.T.); -#3033=ORIENTED_EDGE('',*,*,#12281,.F.); -#3034=ORIENTED_EDGE('',*,*,#12473,.F.); -#3035=ORIENTED_EDGE('',*,*,#12266,.F.); -#3036=ORIENTED_EDGE('',*,*,#12501,.T.); -#3037=ORIENTED_EDGE('',*,*,#12257,.F.); -#3038=ORIENTED_EDGE('',*,*,#12474,.F.); -#3039=ORIENTED_EDGE('',*,*,#12242,.F.); -#3040=ORIENTED_EDGE('',*,*,#12502,.T.); -#3041=ORIENTED_EDGE('',*,*,#12233,.F.); -#3042=ORIENTED_EDGE('',*,*,#12475,.F.); -#3043=ORIENTED_EDGE('',*,*,#12218,.F.); -#3044=ORIENTED_EDGE('',*,*,#12503,.T.); -#3045=ORIENTED_EDGE('',*,*,#12209,.F.); -#3046=ORIENTED_EDGE('',*,*,#12476,.F.); -#3047=ORIENTED_EDGE('',*,*,#12194,.F.); -#3048=ORIENTED_EDGE('',*,*,#12504,.T.); -#3049=ORIENTED_EDGE('',*,*,#12185,.F.); -#3050=ORIENTED_EDGE('',*,*,#12477,.F.); -#3051=ORIENTED_EDGE('',*,*,#12170,.F.); -#3052=ORIENTED_EDGE('',*,*,#12505,.T.); -#3053=ORIENTED_EDGE('',*,*,#12161,.F.); -#3054=ORIENTED_EDGE('',*,*,#12478,.F.); -#3055=ORIENTED_EDGE('',*,*,#12146,.F.); -#3056=ORIENTED_EDGE('',*,*,#12506,.T.); -#3057=ORIENTED_EDGE('',*,*,#12137,.F.); -#3058=ORIENTED_EDGE('',*,*,#12479,.F.); -#3059=ORIENTED_EDGE('',*,*,#12122,.F.); -#3060=ORIENTED_EDGE('',*,*,#12507,.T.); -#3061=ORIENTED_EDGE('',*,*,#12113,.F.); -#3062=ORIENTED_EDGE('',*,*,#12480,.F.); -#3063=ORIENTED_EDGE('',*,*,#12098,.F.); -#3064=ORIENTED_EDGE('',*,*,#12508,.T.); -#3065=ORIENTED_EDGE('',*,*,#12089,.F.); -#3066=ORIENTED_EDGE('',*,*,#12481,.F.); -#3067=ORIENTED_EDGE('',*,*,#12074,.F.); -#3068=ORIENTED_EDGE('',*,*,#12509,.T.); -#3069=ORIENTED_EDGE('',*,*,#12065,.F.); -#3070=ORIENTED_EDGE('',*,*,#12482,.F.); -#3071=ORIENTED_EDGE('',*,*,#12050,.F.); -#3072=ORIENTED_EDGE('',*,*,#12510,.T.); -#3073=ORIENTED_EDGE('',*,*,#12041,.F.); -#3074=ORIENTED_EDGE('',*,*,#12483,.F.); -#3075=ORIENTED_EDGE('',*,*,#12026,.F.); -#3076=ORIENTED_EDGE('',*,*,#12511,.T.); -#3077=ORIENTED_EDGE('',*,*,#12017,.F.); -#3078=ORIENTED_EDGE('',*,*,#12484,.F.); -#3079=ORIENTED_EDGE('',*,*,#12002,.F.); -#3080=ORIENTED_EDGE('',*,*,#12512,.T.); -#3081=ORIENTED_EDGE('',*,*,#11993,.F.); -#3082=ORIENTED_EDGE('',*,*,#12489,.F.); -#3083=ORIENTED_EDGE('',*,*,#12518,.T.); -#3084=ORIENTED_EDGE('',*,*,#12513,.T.); -#3085=ORIENTED_EDGE('',*,*,#12519,.T.); -#3086=ORIENTED_EDGE('',*,*,#12520,.T.); -#3087=ORIENTED_EDGE('',*,*,#11966,.F.); -#3088=ORIENTED_EDGE('',*,*,#12521,.F.); -#3089=ORIENTED_EDGE('',*,*,#12522,.T.); -#3090=ORIENTED_EDGE('',*,*,#12523,.T.); -#3091=ORIENTED_EDGE('',*,*,#11962,.F.); -#3092=ORIENTED_EDGE('',*,*,#12524,.F.); -#3093=ORIENTED_EDGE('',*,*,#12525,.T.); -#3094=ORIENTED_EDGE('',*,*,#12526,.T.); -#3095=ORIENTED_EDGE('',*,*,#11958,.F.); -#3096=ORIENTED_EDGE('',*,*,#12527,.F.); -#3097=ORIENTED_EDGE('',*,*,#12528,.T.); -#3098=ORIENTED_EDGE('',*,*,#12529,.T.); -#3099=ORIENTED_EDGE('',*,*,#11954,.F.); -#3100=ORIENTED_EDGE('',*,*,#12530,.F.); -#3101=ORIENTED_EDGE('',*,*,#12531,.T.); -#3102=ORIENTED_EDGE('',*,*,#12532,.T.); -#3103=ORIENTED_EDGE('',*,*,#11950,.F.); -#3104=ORIENTED_EDGE('',*,*,#12533,.F.); -#3105=ORIENTED_EDGE('',*,*,#12534,.T.); -#3106=ORIENTED_EDGE('',*,*,#12535,.T.); -#3107=ORIENTED_EDGE('',*,*,#11946,.F.); -#3108=ORIENTED_EDGE('',*,*,#12536,.F.); -#3109=ORIENTED_EDGE('',*,*,#12537,.T.); -#3110=ORIENTED_EDGE('',*,*,#12538,.T.); -#3111=ORIENTED_EDGE('',*,*,#11942,.F.); -#3112=ORIENTED_EDGE('',*,*,#12539,.F.); -#3113=ORIENTED_EDGE('',*,*,#11934,.F.); -#3114=ORIENTED_EDGE('',*,*,#12540,.T.); -#3115=ORIENTED_EDGE('',*,*,#12541,.F.); -#3116=ORIENTED_EDGE('',*,*,#12542,.F.); -#3117=ORIENTED_EDGE('',*,*,#11665,.T.); -#3118=ORIENTED_EDGE('',*,*,#11656,.F.); -#3119=ORIENTED_EDGE('',*,*,#12543,.F.); -#3120=ORIENTED_EDGE('',*,*,#12544,.T.); -#3121=ORIENTED_EDGE('',*,*,#11930,.F.); -#3122=ORIENTED_EDGE('',*,*,#12545,.F.); -#3123=ORIENTED_EDGE('',*,*,#12546,.F.); -#3124=ORIENTED_EDGE('',*,*,#12547,.T.); -#3125=ORIENTED_EDGE('',*,*,#11926,.F.); -#3126=ORIENTED_EDGE('',*,*,#12548,.F.); -#3127=ORIENTED_EDGE('',*,*,#12549,.F.); -#3128=ORIENTED_EDGE('',*,*,#12550,.T.); -#3129=ORIENTED_EDGE('',*,*,#11922,.F.); -#3130=ORIENTED_EDGE('',*,*,#12551,.F.); -#3131=ORIENTED_EDGE('',*,*,#12552,.F.); -#3132=ORIENTED_EDGE('',*,*,#12553,.T.); -#3133=ORIENTED_EDGE('',*,*,#11918,.F.); -#3134=ORIENTED_EDGE('',*,*,#12554,.F.); -#3135=ORIENTED_EDGE('',*,*,#12555,.F.); -#3136=ORIENTED_EDGE('',*,*,#12556,.T.); -#3137=ORIENTED_EDGE('',*,*,#11914,.F.); -#3138=ORIENTED_EDGE('',*,*,#12557,.F.); -#3139=ORIENTED_EDGE('',*,*,#12558,.F.); -#3140=ORIENTED_EDGE('',*,*,#12559,.T.); -#3141=ORIENTED_EDGE('',*,*,#11910,.F.); -#3142=ORIENTED_EDGE('',*,*,#12560,.F.); -#3143=ORIENTED_EDGE('',*,*,#12561,.F.); -#3144=ORIENTED_EDGE('',*,*,#12562,.T.); -#3145=ORIENTED_EDGE('',*,*,#11902,.F.); -#3146=ORIENTED_EDGE('',*,*,#11727,.T.); -#3147=ORIENTED_EDGE('',*,*,#11673,.T.); -#3148=ORIENTED_EDGE('',*,*,#12563,.F.); -#3149=ORIENTED_EDGE('',*,*,#12564,.F.); -#3150=ORIENTED_EDGE('',*,*,#12565,.T.); -#3151=ORIENTED_EDGE('',*,*,#12566,.F.); -#3152=ORIENTED_EDGE('',*,*,#12567,.T.); -#3153=ORIENTED_EDGE('',*,*,#12568,.F.); -#3154=ORIENTED_EDGE('',*,*,#12464,.F.); -#3155=ORIENTED_EDGE('',*,*,#12569,.F.); -#3156=ORIENTED_EDGE('',*,*,#12486,.F.); -#3157=ORIENTED_EDGE('',*,*,#12570,.T.); -#3158=ORIENTED_EDGE('',*,*,#12571,.T.); -#3159=ORIENTED_EDGE('',*,*,#12572,.F.); -#3160=ORIENTED_EDGE('',*,*,#12573,.F.); -#3161=ORIENTED_EDGE('',*,*,#12574,.F.); -#3162=ORIENTED_EDGE('',*,*,#12573,.T.); -#3163=ORIENTED_EDGE('',*,*,#12575,.F.); -#3164=ORIENTED_EDGE('',*,*,#12576,.F.); -#3165=ORIENTED_EDGE('',*,*,#12577,.F.); -#3166=ORIENTED_EDGE('',*,*,#12576,.T.); -#3167=ORIENTED_EDGE('',*,*,#12578,.F.); -#3168=ORIENTED_EDGE('',*,*,#12514,.T.); -#3169=ORIENTED_EDGE('',*,*,#12518,.F.); -#3170=ORIENTED_EDGE('',*,*,#12488,.F.); -#3171=ORIENTED_EDGE('',*,*,#12579,.F.); -#3172=ORIENTED_EDGE('',*,*,#12462,.F.); -#3173=ORIENTED_EDGE('',*,*,#12517,.T.); -#3174=ORIENTED_EDGE('',*,*,#12493,.T.); -#3175=ORIENTED_EDGE('',*,*,#12580,.F.); -#3176=ORIENTED_EDGE('',*,*,#12581,.F.); -#3177=ORIENTED_EDGE('',*,*,#12582,.F.); -#3178=ORIENTED_EDGE('',*,*,#12581,.T.); -#3179=ORIENTED_EDGE('',*,*,#12583,.F.); -#3180=ORIENTED_EDGE('',*,*,#12565,.F.); -#3181=ORIENTED_EDGE('',*,*,#12584,.F.); -#3182=ORIENTED_EDGE('',*,*,#12571,.F.); -#3183=ORIENTED_EDGE('',*,*,#12585,.T.); -#3184=ORIENTED_EDGE('',*,*,#11818,.T.); -#3185=ORIENTED_EDGE('',*,*,#12516,.T.); -#3186=ORIENTED_EDGE('',*,*,#12586,.F.); -#3187=ORIENTED_EDGE('',*,*,#12491,.T.); -#3188=ORIENTED_EDGE('',*,*,#11736,.T.); -#3189=ORIENTED_EDGE('',*,*,#12587,.F.); -#3190=ORIENTED_EDGE('',*,*,#12567,.F.); -#3191=ORIENTED_EDGE('',*,*,#12588,.T.); -#3192=ORIENTED_EDGE('',*,*,#12589,.T.); -#3193=ORIENTED_EDGE('',*,*,#11938,.F.); -#3194=ORIENTED_EDGE('',*,*,#12590,.T.); -#3195=ORIENTED_EDGE('',*,*,#11690,.T.); -#3196=ORIENTED_EDGE('',*,*,#12591,.T.); -#3197=ORIENTED_EDGE('',*,*,#12592,.F.); -#3198=ORIENTED_EDGE('',*,*,#12593,.F.); -#3199=ORIENTED_EDGE('',*,*,#12594,.F.); -#3200=ORIENTED_EDGE('',*,*,#11688,.F.); -#3201=ORIENTED_EDGE('',*,*,#12595,.F.); -#3202=ORIENTED_EDGE('',*,*,#12596,.F.); -#3203=ORIENTED_EDGE('',*,*,#11684,.F.); -#3204=ORIENTED_EDGE('',*,*,#12597,.F.); -#3205=ORIENTED_EDGE('',*,*,#11681,.T.); -#3206=ORIENTED_EDGE('',*,*,#11729,.F.); -#3207=ORIENTED_EDGE('',*,*,#11901,.F.); -#3208=ORIENTED_EDGE('',*,*,#11980,.T.); -#3209=ORIENTED_EDGE('',*,*,#12598,.F.); -#3210=ORIENTED_EDGE('',*,*,#12599,.T.); -#3211=ORIENTED_EDGE('',*,*,#11906,.F.); -#3212=ORIENTED_EDGE('',*,*,#12600,.F.); -#3213=ORIENTED_EDGE('',*,*,#11654,.T.); -#3214=ORIENTED_EDGE('',*,*,#12601,.T.); -#3215=ORIENTED_EDGE('',*,*,#11662,.F.); -#3216=ORIENTED_EDGE('',*,*,#11935,.F.); -#3217=ORIENTED_EDGE('',*,*,#11692,.T.); -#3218=ORIENTED_EDGE('',*,*,#12602,.F.); -#3219=ORIENTED_EDGE('',*,*,#11936,.F.); -#3220=ORIENTED_EDGE('',*,*,#11660,.T.); -#3221=ORIENTED_EDGE('',*,*,#11691,.T.); -#3222=ORIENTED_EDGE('',*,*,#12590,.F.); -#3223=ORIENTED_EDGE('',*,*,#11937,.F.); -#3224=ORIENTED_EDGE('',*,*,#12602,.T.); -#3225=ORIENTED_EDGE('',*,*,#12603,.T.); -#3226=ORIENTED_EDGE('',*,*,#12604,.F.); -#3227=ORIENTED_EDGE('',*,*,#11667,.T.); -#3228=ORIENTED_EDGE('',*,*,#12605,.T.); -#3229=ORIENTED_EDGE('',*,*,#12542,.T.); -#3230=ORIENTED_EDGE('',*,*,#12606,.F.); -#3231=ORIENTED_EDGE('',*,*,#12605,.F.); -#3232=ORIENTED_EDGE('',*,*,#11666,.F.); -#3233=ORIENTED_EDGE('',*,*,#12541,.T.); -#3234=ORIENTED_EDGE('',*,*,#12607,.T.); -#3235=ORIENTED_EDGE('',*,*,#12603,.F.); -#3236=ORIENTED_EDGE('',*,*,#12606,.T.); -#3237=ORIENTED_EDGE('',*,*,#12608,.F.); -#3238=ORIENTED_EDGE('',*,*,#12609,.T.); -#3239=ORIENTED_EDGE('',*,*,#12563,.T.); -#3240=ORIENTED_EDGE('',*,*,#11672,.F.); -#3241=ORIENTED_EDGE('',*,*,#12610,.F.); -#3242=ORIENTED_EDGE('',*,*,#12611,.T.); -#3243=ORIENTED_EDGE('',*,*,#12608,.T.); -#3244=ORIENTED_EDGE('',*,*,#11671,.T.); -#3245=ORIENTED_EDGE('',*,*,#12611,.F.); -#3246=ORIENTED_EDGE('',*,*,#12612,.T.); -#3247=ORIENTED_EDGE('',*,*,#12561,.T.); -#3248=ORIENTED_EDGE('',*,*,#12609,.F.); -#3249=ORIENTED_EDGE('',*,*,#12613,.T.); -#3250=ORIENTED_EDGE('',*,*,#12614,.T.); -#3251=ORIENTED_EDGE('',*,*,#12615,.T.); -#3252=ORIENTED_EDGE('',*,*,#12543,.T.); -#3253=ORIENTED_EDGE('',*,*,#12616,.T.); -#3254=ORIENTED_EDGE('',*,*,#12617,.T.); -#3255=ORIENTED_EDGE('',*,*,#12618,.T.); -#3256=ORIENTED_EDGE('',*,*,#12546,.T.); -#3257=ORIENTED_EDGE('',*,*,#12619,.T.); -#3258=ORIENTED_EDGE('',*,*,#12620,.T.); -#3259=ORIENTED_EDGE('',*,*,#12621,.T.); -#3260=ORIENTED_EDGE('',*,*,#12549,.T.); -#3261=ORIENTED_EDGE('',*,*,#12622,.T.); -#3262=ORIENTED_EDGE('',*,*,#12623,.T.); -#3263=ORIENTED_EDGE('',*,*,#12624,.T.); -#3264=ORIENTED_EDGE('',*,*,#12552,.T.); -#3265=ORIENTED_EDGE('',*,*,#12625,.T.); -#3266=ORIENTED_EDGE('',*,*,#12626,.T.); -#3267=ORIENTED_EDGE('',*,*,#12627,.T.); -#3268=ORIENTED_EDGE('',*,*,#12555,.T.); -#3269=ORIENTED_EDGE('',*,*,#12628,.T.); -#3270=ORIENTED_EDGE('',*,*,#12629,.T.); -#3271=ORIENTED_EDGE('',*,*,#12630,.T.); -#3272=ORIENTED_EDGE('',*,*,#12558,.T.); -#3273=ORIENTED_EDGE('',*,*,#12631,.T.); -#3274=ORIENTED_EDGE('',*,*,#12632,.T.); -#3275=ORIENTED_EDGE('',*,*,#12633,.T.); -#3276=ORIENTED_EDGE('',*,*,#12598,.T.); -#3277=ORIENTED_EDGE('',*,*,#12634,.T.); -#3278=ORIENTED_EDGE('',*,*,#12635,.T.); -#3279=ORIENTED_EDGE('',*,*,#12636,.F.); -#3280=ORIENTED_EDGE('',*,*,#12637,.F.); -#3281=ORIENTED_EDGE('',*,*,#12636,.T.); -#3282=ORIENTED_EDGE('',*,*,#12638,.T.); -#3283=ORIENTED_EDGE('',*,*,#11903,.T.); -#3284=ORIENTED_EDGE('',*,*,#12562,.F.); -#3285=ORIENTED_EDGE('',*,*,#12612,.F.); -#3286=ORIENTED_EDGE('',*,*,#12610,.T.); -#3287=ORIENTED_EDGE('',*,*,#11670,.F.); -#3288=ORIENTED_EDGE('',*,*,#12639,.F.); -#3289=ORIENTED_EDGE('',*,*,#11668,.T.); -#3290=ORIENTED_EDGE('',*,*,#12604,.T.); -#3291=ORIENTED_EDGE('',*,*,#12607,.F.); -#3292=ORIENTED_EDGE('',*,*,#12540,.F.); -#3293=ORIENTED_EDGE('',*,*,#11933,.T.); -#3294=ORIENTED_EDGE('',*,*,#12640,.F.); -#3295=ORIENTED_EDGE('',*,*,#12613,.F.); -#3296=ORIENTED_EDGE('',*,*,#12641,.F.); -#3297=ORIENTED_EDGE('',*,*,#12637,.T.); -#3298=ORIENTED_EDGE('',*,*,#12639,.T.); -#3299=ORIENTED_EDGE('',*,*,#11669,.T.); -#3300=ORIENTED_EDGE('',*,*,#12641,.T.); -#3301=ORIENTED_EDGE('',*,*,#11689,.T.); -#3302=ORIENTED_EDGE('',*,*,#12594,.T.); -#3303=ORIENTED_EDGE('',*,*,#12642,.T.); -#3304=ORIENTED_EDGE('',*,*,#12591,.F.); -#3305=ORIENTED_EDGE('',*,*,#12643,.F.); -#3306=ORIENTED_EDGE('',*,*,#12588,.F.); -#3307=ORIENTED_EDGE('',*,*,#12642,.F.); -#3308=ORIENTED_EDGE('',*,*,#12593,.T.); -#3309=ORIENTED_EDGE('',*,*,#11683,.T.); -#3310=ORIENTED_EDGE('',*,*,#11979,.F.); -#3311=ORIENTED_EDGE('',*,*,#12644,.F.); -#3312=ORIENTED_EDGE('',*,*,#12597,.T.); -#3313=ORIENTED_EDGE('',*,*,#12645,.F.); -#3314=ORIENTED_EDGE('',*,*,#12595,.T.); -#3315=ORIENTED_EDGE('',*,*,#12644,.T.); -#3316=ORIENTED_EDGE('',*,*,#11978,.F.); -#3317=ORIENTED_EDGE('',*,*,#12646,.T.); -#3318=ORIENTED_EDGE('',*,*,#12647,.T.); -#3319=ORIENTED_EDGE('',*,*,#11939,.T.); -#3320=ORIENTED_EDGE('',*,*,#12589,.F.); -#3321=ORIENTED_EDGE('',*,*,#12643,.T.); -#3322=ORIENTED_EDGE('',*,*,#12592,.T.); -#3323=ORIENTED_EDGE('',*,*,#11687,.F.); -#3324=ORIENTED_EDGE('',*,*,#12648,.T.); -#3325=ORIENTED_EDGE('',*,*,#11685,.T.); -#3326=ORIENTED_EDGE('',*,*,#12596,.T.); -#3327=ORIENTED_EDGE('',*,*,#12645,.T.); -#3328=ORIENTED_EDGE('',*,*,#11977,.F.); -#3329=ORIENTED_EDGE('',*,*,#11969,.T.); -#3330=ORIENTED_EDGE('',*,*,#12649,.F.); -#3331=ORIENTED_EDGE('',*,*,#12650,.F.); -#3332=ORIENTED_EDGE('',*,*,#12651,.T.); -#3333=ORIENTED_EDGE('',*,*,#12652,.F.); -#3334=ORIENTED_EDGE('',*,*,#12653,.F.); -#3335=ORIENTED_EDGE('',*,*,#12519,.F.); -#3336=ORIENTED_EDGE('',*,*,#12654,.F.); -#3337=ORIENTED_EDGE('',*,*,#12655,.F.); -#3338=ORIENTED_EDGE('',*,*,#12656,.F.); -#3339=ORIENTED_EDGE('',*,*,#12522,.F.); -#3340=ORIENTED_EDGE('',*,*,#12657,.F.); -#3341=ORIENTED_EDGE('',*,*,#12658,.F.); -#3342=ORIENTED_EDGE('',*,*,#12659,.F.); -#3343=ORIENTED_EDGE('',*,*,#12525,.F.); -#3344=ORIENTED_EDGE('',*,*,#12660,.F.); -#3345=ORIENTED_EDGE('',*,*,#12661,.F.); -#3346=ORIENTED_EDGE('',*,*,#12662,.F.); -#3347=ORIENTED_EDGE('',*,*,#12528,.F.); -#3348=ORIENTED_EDGE('',*,*,#12663,.F.); -#3349=ORIENTED_EDGE('',*,*,#12664,.F.); -#3350=ORIENTED_EDGE('',*,*,#12665,.F.); -#3351=ORIENTED_EDGE('',*,*,#12531,.F.); -#3352=ORIENTED_EDGE('',*,*,#12666,.F.); -#3353=ORIENTED_EDGE('',*,*,#12667,.F.); -#3354=ORIENTED_EDGE('',*,*,#12668,.F.); -#3355=ORIENTED_EDGE('',*,*,#12534,.F.); -#3356=ORIENTED_EDGE('',*,*,#12669,.F.); -#3357=ORIENTED_EDGE('',*,*,#12670,.F.); -#3358=ORIENTED_EDGE('',*,*,#12671,.F.); -#3359=ORIENTED_EDGE('',*,*,#12537,.F.); -#3360=ORIENTED_EDGE('',*,*,#12672,.F.); -#3361=ORIENTED_EDGE('',*,*,#12673,.F.); -#3362=ORIENTED_EDGE('',*,*,#12646,.F.); -#3363=ORIENTED_EDGE('',*,*,#12674,.T.); -#3364=ORIENTED_EDGE('',*,*,#12650,.T.); -#3365=ORIENTED_EDGE('',*,*,#12674,.F.); -#3366=ORIENTED_EDGE('',*,*,#12648,.F.); -#3367=ORIENTED_EDGE('',*,*,#11686,.F.); -#3368=ORIENTED_EDGE('',*,*,#12651,.F.); -#3369=ORIENTED_EDGE('',*,*,#12568,.T.); -#3370=ORIENTED_EDGE('',*,*,#12587,.T.); -#3371=ORIENTED_EDGE('',*,*,#11735,.F.); -#3372=ORIENTED_EDGE('',*,*,#12465,.F.); -#3373=ORIENTED_EDGE('',*,*,#11819,.T.); -#3374=ORIENTED_EDGE('',*,*,#12585,.F.); -#3375=ORIENTED_EDGE('',*,*,#12570,.F.); -#3376=ORIENTED_EDGE('',*,*,#12485,.F.); -#3377=ORIENTED_EDGE('',*,*,#12583,.T.); -#3378=ORIENTED_EDGE('',*,*,#12580,.T.); -#3379=ORIENTED_EDGE('',*,*,#12492,.F.); -#3380=ORIENTED_EDGE('',*,*,#12586,.T.); -#3381=ORIENTED_EDGE('',*,*,#12566,.T.); -#3382=ORIENTED_EDGE('',*,*,#12572,.T.); -#3383=ORIENTED_EDGE('',*,*,#12584,.T.); -#3384=ORIENTED_EDGE('',*,*,#12515,.F.); -#3385=ORIENTED_EDGE('',*,*,#12578,.T.); -#3386=ORIENTED_EDGE('',*,*,#12575,.T.); -#3387=ORIENTED_EDGE('',*,*,#12569,.T.); -#3388=ORIENTED_EDGE('',*,*,#12574,.T.); -#3389=ORIENTED_EDGE('',*,*,#12577,.T.); -#3390=ORIENTED_EDGE('',*,*,#12487,.T.); -#3391=ORIENTED_EDGE('',*,*,#12582,.T.); -#3392=ORIENTED_EDGE('',*,*,#12564,.T.); -#3393=ORIENTED_EDGE('',*,*,#12463,.T.); -#3394=ORIENTED_EDGE('',*,*,#12579,.T.); -#3395=ORIENTED_EDGE('',*,*,#12675,.T.); -#3396=ORIENTED_EDGE('',*,*,#11904,.T.); -#3397=ORIENTED_EDGE('',*,*,#12638,.F.); -#3398=ORIENTED_EDGE('',*,*,#12635,.F.); -#3399=ORIENTED_EDGE('',*,*,#12600,.T.); -#3400=ORIENTED_EDGE('',*,*,#11905,.T.); -#3401=ORIENTED_EDGE('',*,*,#12675,.F.); -#3402=ORIENTED_EDGE('',*,*,#12634,.F.); -#3403=ORIENTED_EDGE('',*,*,#12676,.T.); -#3404=ORIENTED_EDGE('',*,*,#11907,.T.); -#3405=ORIENTED_EDGE('',*,*,#12599,.F.); -#3406=ORIENTED_EDGE('',*,*,#12633,.F.); -#3407=ORIENTED_EDGE('',*,*,#12677,.T.); -#3408=ORIENTED_EDGE('',*,*,#11908,.T.); -#3409=ORIENTED_EDGE('',*,*,#12676,.F.); -#3410=ORIENTED_EDGE('',*,*,#12632,.F.); -#3411=ORIENTED_EDGE('',*,*,#12560,.T.); -#3412=ORIENTED_EDGE('',*,*,#11909,.T.); -#3413=ORIENTED_EDGE('',*,*,#12677,.F.); -#3414=ORIENTED_EDGE('',*,*,#12631,.F.); -#3415=ORIENTED_EDGE('',*,*,#12678,.T.); -#3416=ORIENTED_EDGE('',*,*,#11911,.T.); -#3417=ORIENTED_EDGE('',*,*,#12559,.F.); -#3418=ORIENTED_EDGE('',*,*,#12630,.F.); -#3419=ORIENTED_EDGE('',*,*,#12679,.T.); -#3420=ORIENTED_EDGE('',*,*,#11912,.T.); -#3421=ORIENTED_EDGE('',*,*,#12678,.F.); -#3422=ORIENTED_EDGE('',*,*,#12629,.F.); -#3423=ORIENTED_EDGE('',*,*,#12557,.T.); -#3424=ORIENTED_EDGE('',*,*,#11913,.T.); -#3425=ORIENTED_EDGE('',*,*,#12679,.F.); -#3426=ORIENTED_EDGE('',*,*,#12628,.F.); -#3427=ORIENTED_EDGE('',*,*,#12680,.T.); -#3428=ORIENTED_EDGE('',*,*,#11915,.T.); -#3429=ORIENTED_EDGE('',*,*,#12556,.F.); -#3430=ORIENTED_EDGE('',*,*,#12627,.F.); -#3431=ORIENTED_EDGE('',*,*,#12681,.T.); -#3432=ORIENTED_EDGE('',*,*,#11916,.T.); -#3433=ORIENTED_EDGE('',*,*,#12680,.F.); -#3434=ORIENTED_EDGE('',*,*,#12626,.F.); -#3435=ORIENTED_EDGE('',*,*,#12554,.T.); -#3436=ORIENTED_EDGE('',*,*,#11917,.T.); -#3437=ORIENTED_EDGE('',*,*,#12681,.F.); -#3438=ORIENTED_EDGE('',*,*,#12625,.F.); -#3439=ORIENTED_EDGE('',*,*,#12682,.T.); -#3440=ORIENTED_EDGE('',*,*,#11919,.T.); -#3441=ORIENTED_EDGE('',*,*,#12553,.F.); -#3442=ORIENTED_EDGE('',*,*,#12624,.F.); -#3443=ORIENTED_EDGE('',*,*,#12683,.T.); -#3444=ORIENTED_EDGE('',*,*,#11920,.T.); -#3445=ORIENTED_EDGE('',*,*,#12682,.F.); -#3446=ORIENTED_EDGE('',*,*,#12623,.F.); -#3447=ORIENTED_EDGE('',*,*,#12551,.T.); -#3448=ORIENTED_EDGE('',*,*,#11921,.T.); -#3449=ORIENTED_EDGE('',*,*,#12683,.F.); -#3450=ORIENTED_EDGE('',*,*,#12622,.F.); -#3451=ORIENTED_EDGE('',*,*,#12684,.T.); -#3452=ORIENTED_EDGE('',*,*,#11923,.T.); -#3453=ORIENTED_EDGE('',*,*,#12550,.F.); -#3454=ORIENTED_EDGE('',*,*,#12621,.F.); -#3455=ORIENTED_EDGE('',*,*,#12685,.T.); -#3456=ORIENTED_EDGE('',*,*,#11924,.T.); -#3457=ORIENTED_EDGE('',*,*,#12684,.F.); -#3458=ORIENTED_EDGE('',*,*,#12620,.F.); -#3459=ORIENTED_EDGE('',*,*,#12548,.T.); -#3460=ORIENTED_EDGE('',*,*,#11925,.T.); -#3461=ORIENTED_EDGE('',*,*,#12685,.F.); -#3462=ORIENTED_EDGE('',*,*,#12619,.F.); -#3463=ORIENTED_EDGE('',*,*,#12686,.T.); -#3464=ORIENTED_EDGE('',*,*,#11927,.T.); -#3465=ORIENTED_EDGE('',*,*,#12547,.F.); -#3466=ORIENTED_EDGE('',*,*,#12618,.F.); -#3467=ORIENTED_EDGE('',*,*,#12687,.T.); -#3468=ORIENTED_EDGE('',*,*,#11928,.T.); -#3469=ORIENTED_EDGE('',*,*,#12686,.F.); -#3470=ORIENTED_EDGE('',*,*,#12617,.F.); -#3471=ORIENTED_EDGE('',*,*,#12545,.T.); -#3472=ORIENTED_EDGE('',*,*,#11929,.T.); -#3473=ORIENTED_EDGE('',*,*,#12687,.F.); -#3474=ORIENTED_EDGE('',*,*,#12616,.F.); -#3475=ORIENTED_EDGE('',*,*,#12688,.T.); -#3476=ORIENTED_EDGE('',*,*,#11931,.T.); -#3477=ORIENTED_EDGE('',*,*,#12544,.F.); -#3478=ORIENTED_EDGE('',*,*,#12615,.F.); -#3479=ORIENTED_EDGE('',*,*,#12640,.T.); -#3480=ORIENTED_EDGE('',*,*,#11932,.T.); -#3481=ORIENTED_EDGE('',*,*,#12688,.F.); -#3482=ORIENTED_EDGE('',*,*,#12614,.F.); -#3483=ORIENTED_EDGE('',*,*,#12673,.T.); -#3484=ORIENTED_EDGE('',*,*,#12689,.T.); -#3485=ORIENTED_EDGE('',*,*,#11940,.T.); -#3486=ORIENTED_EDGE('',*,*,#12647,.F.); -#3487=ORIENTED_EDGE('',*,*,#12672,.T.); -#3488=ORIENTED_EDGE('',*,*,#12539,.T.); -#3489=ORIENTED_EDGE('',*,*,#11941,.T.); -#3490=ORIENTED_EDGE('',*,*,#12689,.F.); -#3491=ORIENTED_EDGE('',*,*,#12671,.T.); -#3492=ORIENTED_EDGE('',*,*,#12690,.T.); -#3493=ORIENTED_EDGE('',*,*,#11943,.T.); -#3494=ORIENTED_EDGE('',*,*,#12538,.F.); -#3495=ORIENTED_EDGE('',*,*,#12670,.T.); -#3496=ORIENTED_EDGE('',*,*,#12691,.T.); -#3497=ORIENTED_EDGE('',*,*,#11944,.T.); -#3498=ORIENTED_EDGE('',*,*,#12690,.F.); -#3499=ORIENTED_EDGE('',*,*,#12669,.T.); -#3500=ORIENTED_EDGE('',*,*,#12536,.T.); -#3501=ORIENTED_EDGE('',*,*,#11945,.T.); -#3502=ORIENTED_EDGE('',*,*,#12691,.F.); -#3503=ORIENTED_EDGE('',*,*,#12668,.T.); -#3504=ORIENTED_EDGE('',*,*,#12692,.T.); -#3505=ORIENTED_EDGE('',*,*,#11947,.T.); -#3506=ORIENTED_EDGE('',*,*,#12535,.F.); -#3507=ORIENTED_EDGE('',*,*,#12667,.T.); -#3508=ORIENTED_EDGE('',*,*,#12693,.T.); -#3509=ORIENTED_EDGE('',*,*,#11948,.T.); -#3510=ORIENTED_EDGE('',*,*,#12692,.F.); -#3511=ORIENTED_EDGE('',*,*,#12666,.T.); -#3512=ORIENTED_EDGE('',*,*,#12533,.T.); -#3513=ORIENTED_EDGE('',*,*,#11949,.T.); -#3514=ORIENTED_EDGE('',*,*,#12693,.F.); -#3515=ORIENTED_EDGE('',*,*,#12665,.T.); -#3516=ORIENTED_EDGE('',*,*,#12694,.T.); -#3517=ORIENTED_EDGE('',*,*,#11951,.T.); -#3518=ORIENTED_EDGE('',*,*,#12532,.F.); -#3519=ORIENTED_EDGE('',*,*,#12664,.T.); -#3520=ORIENTED_EDGE('',*,*,#12695,.T.); -#3521=ORIENTED_EDGE('',*,*,#11952,.T.); -#3522=ORIENTED_EDGE('',*,*,#12694,.F.); -#3523=ORIENTED_EDGE('',*,*,#12663,.T.); -#3524=ORIENTED_EDGE('',*,*,#12530,.T.); -#3525=ORIENTED_EDGE('',*,*,#11953,.T.); -#3526=ORIENTED_EDGE('',*,*,#12695,.F.); -#3527=ORIENTED_EDGE('',*,*,#12662,.T.); -#3528=ORIENTED_EDGE('',*,*,#12696,.T.); -#3529=ORIENTED_EDGE('',*,*,#11955,.T.); -#3530=ORIENTED_EDGE('',*,*,#12529,.F.); -#3531=ORIENTED_EDGE('',*,*,#12661,.T.); -#3532=ORIENTED_EDGE('',*,*,#12697,.T.); -#3533=ORIENTED_EDGE('',*,*,#11956,.T.); -#3534=ORIENTED_EDGE('',*,*,#12696,.F.); -#3535=ORIENTED_EDGE('',*,*,#12660,.T.); -#3536=ORIENTED_EDGE('',*,*,#12527,.T.); -#3537=ORIENTED_EDGE('',*,*,#11957,.T.); -#3538=ORIENTED_EDGE('',*,*,#12697,.F.); -#3539=ORIENTED_EDGE('',*,*,#12659,.T.); -#3540=ORIENTED_EDGE('',*,*,#12698,.T.); -#3541=ORIENTED_EDGE('',*,*,#11959,.T.); -#3542=ORIENTED_EDGE('',*,*,#12526,.F.); -#3543=ORIENTED_EDGE('',*,*,#12658,.T.); -#3544=ORIENTED_EDGE('',*,*,#12699,.T.); -#3545=ORIENTED_EDGE('',*,*,#11960,.T.); -#3546=ORIENTED_EDGE('',*,*,#12698,.F.); -#3547=ORIENTED_EDGE('',*,*,#12657,.T.); -#3548=ORIENTED_EDGE('',*,*,#12524,.T.); -#3549=ORIENTED_EDGE('',*,*,#11961,.T.); -#3550=ORIENTED_EDGE('',*,*,#12699,.F.); -#3551=ORIENTED_EDGE('',*,*,#12656,.T.); -#3552=ORIENTED_EDGE('',*,*,#12700,.T.); -#3553=ORIENTED_EDGE('',*,*,#11963,.T.); -#3554=ORIENTED_EDGE('',*,*,#12523,.F.); -#3555=ORIENTED_EDGE('',*,*,#12655,.T.); -#3556=ORIENTED_EDGE('',*,*,#12701,.T.); -#3557=ORIENTED_EDGE('',*,*,#11964,.T.); -#3558=ORIENTED_EDGE('',*,*,#12700,.F.); -#3559=ORIENTED_EDGE('',*,*,#12654,.T.); -#3560=ORIENTED_EDGE('',*,*,#12521,.T.); -#3561=ORIENTED_EDGE('',*,*,#11965,.T.); -#3562=ORIENTED_EDGE('',*,*,#12701,.F.); -#3563=ORIENTED_EDGE('',*,*,#12652,.T.); -#3564=ORIENTED_EDGE('',*,*,#12649,.T.); -#3565=ORIENTED_EDGE('',*,*,#11968,.T.); -#3566=ORIENTED_EDGE('',*,*,#12702,.F.); -#3567=ORIENTED_EDGE('',*,*,#12653,.T.); -#3568=ORIENTED_EDGE('',*,*,#12702,.T.); -#3569=ORIENTED_EDGE('',*,*,#11967,.T.); -#3570=ORIENTED_EDGE('',*,*,#12520,.F.); -#3571=ORIENTED_EDGE('',*,*,#12000,.T.); -#3572=ORIENTED_EDGE('',*,*,#11988,.T.); -#3573=ORIENTED_EDGE('',*,*,#11995,.T.); -#3574=ORIENTED_EDGE('',*,*,#11815,.F.); -#3575=ORIENTED_EDGE('',*,*,#11822,.T.); -#3576=ORIENTED_EDGE('',*,*,#11991,.F.); -#3577=ORIENTED_EDGE('',*,*,#11984,.F.); -#3578=ORIENTED_EDGE('',*,*,#12004,.F.); -#3579=ORIENTED_EDGE('',*,*,#12024,.T.); -#3580=ORIENTED_EDGE('',*,*,#12012,.T.); -#3581=ORIENTED_EDGE('',*,*,#12019,.T.); -#3582=ORIENTED_EDGE('',*,*,#11811,.F.); -#3583=ORIENTED_EDGE('',*,*,#11826,.T.); -#3584=ORIENTED_EDGE('',*,*,#12015,.F.); -#3585=ORIENTED_EDGE('',*,*,#12008,.F.); -#3586=ORIENTED_EDGE('',*,*,#12028,.F.); -#3587=ORIENTED_EDGE('',*,*,#12048,.T.); -#3588=ORIENTED_EDGE('',*,*,#12036,.T.); -#3589=ORIENTED_EDGE('',*,*,#12043,.T.); -#3590=ORIENTED_EDGE('',*,*,#11807,.F.); -#3591=ORIENTED_EDGE('',*,*,#11830,.T.); -#3592=ORIENTED_EDGE('',*,*,#12039,.F.); -#3593=ORIENTED_EDGE('',*,*,#12032,.F.); -#3594=ORIENTED_EDGE('',*,*,#12052,.F.); -#3595=ORIENTED_EDGE('',*,*,#12072,.T.); -#3596=ORIENTED_EDGE('',*,*,#12060,.T.); -#3597=ORIENTED_EDGE('',*,*,#12067,.T.); -#3598=ORIENTED_EDGE('',*,*,#11803,.F.); -#3599=ORIENTED_EDGE('',*,*,#11834,.T.); -#3600=ORIENTED_EDGE('',*,*,#12063,.F.); -#3601=ORIENTED_EDGE('',*,*,#12056,.F.); -#3602=ORIENTED_EDGE('',*,*,#12076,.F.); -#3603=ORIENTED_EDGE('',*,*,#12096,.T.); -#3604=ORIENTED_EDGE('',*,*,#12084,.T.); -#3605=ORIENTED_EDGE('',*,*,#12091,.T.); -#3606=ORIENTED_EDGE('',*,*,#11799,.F.); -#3607=ORIENTED_EDGE('',*,*,#11838,.T.); -#3608=ORIENTED_EDGE('',*,*,#12087,.F.); -#3609=ORIENTED_EDGE('',*,*,#12080,.F.); -#3610=ORIENTED_EDGE('',*,*,#12100,.F.); -#3611=ORIENTED_EDGE('',*,*,#12120,.T.); -#3612=ORIENTED_EDGE('',*,*,#12108,.T.); -#3613=ORIENTED_EDGE('',*,*,#12115,.T.); -#3614=ORIENTED_EDGE('',*,*,#11795,.F.); -#3615=ORIENTED_EDGE('',*,*,#11842,.T.); -#3616=ORIENTED_EDGE('',*,*,#12111,.F.); -#3617=ORIENTED_EDGE('',*,*,#12104,.F.); -#3618=ORIENTED_EDGE('',*,*,#12124,.F.); -#3619=ORIENTED_EDGE('',*,*,#12144,.T.); -#3620=ORIENTED_EDGE('',*,*,#12132,.T.); -#3621=ORIENTED_EDGE('',*,*,#12139,.T.); -#3622=ORIENTED_EDGE('',*,*,#11791,.F.); -#3623=ORIENTED_EDGE('',*,*,#11846,.T.); -#3624=ORIENTED_EDGE('',*,*,#12135,.F.); -#3625=ORIENTED_EDGE('',*,*,#12128,.F.); -#3626=ORIENTED_EDGE('',*,*,#12148,.F.); -#3627=ORIENTED_EDGE('',*,*,#12168,.T.); -#3628=ORIENTED_EDGE('',*,*,#12156,.T.); -#3629=ORIENTED_EDGE('',*,*,#12163,.T.); -#3630=ORIENTED_EDGE('',*,*,#11787,.F.); -#3631=ORIENTED_EDGE('',*,*,#11850,.T.); -#3632=ORIENTED_EDGE('',*,*,#12159,.F.); -#3633=ORIENTED_EDGE('',*,*,#12152,.F.); -#3634=ORIENTED_EDGE('',*,*,#12172,.F.); -#3635=ORIENTED_EDGE('',*,*,#12192,.T.); -#3636=ORIENTED_EDGE('',*,*,#12180,.T.); -#3637=ORIENTED_EDGE('',*,*,#12187,.T.); -#3638=ORIENTED_EDGE('',*,*,#11783,.F.); -#3639=ORIENTED_EDGE('',*,*,#11854,.T.); -#3640=ORIENTED_EDGE('',*,*,#12183,.F.); -#3641=ORIENTED_EDGE('',*,*,#12176,.F.); -#3642=ORIENTED_EDGE('',*,*,#12196,.F.); -#3643=ORIENTED_EDGE('',*,*,#12216,.T.); -#3644=ORIENTED_EDGE('',*,*,#12204,.T.); -#3645=ORIENTED_EDGE('',*,*,#12211,.T.); -#3646=ORIENTED_EDGE('',*,*,#11779,.F.); -#3647=ORIENTED_EDGE('',*,*,#11858,.T.); -#3648=ORIENTED_EDGE('',*,*,#12207,.F.); -#3649=ORIENTED_EDGE('',*,*,#12200,.F.); -#3650=ORIENTED_EDGE('',*,*,#12220,.F.); -#3651=ORIENTED_EDGE('',*,*,#12240,.T.); -#3652=ORIENTED_EDGE('',*,*,#12228,.T.); -#3653=ORIENTED_EDGE('',*,*,#12235,.T.); -#3654=ORIENTED_EDGE('',*,*,#11775,.F.); -#3655=ORIENTED_EDGE('',*,*,#11862,.T.); -#3656=ORIENTED_EDGE('',*,*,#12231,.F.); -#3657=ORIENTED_EDGE('',*,*,#12224,.F.); -#3658=ORIENTED_EDGE('',*,*,#12244,.F.); -#3659=ORIENTED_EDGE('',*,*,#12264,.T.); -#3660=ORIENTED_EDGE('',*,*,#12252,.T.); -#3661=ORIENTED_EDGE('',*,*,#12259,.T.); -#3662=ORIENTED_EDGE('',*,*,#11771,.F.); -#3663=ORIENTED_EDGE('',*,*,#11866,.T.); -#3664=ORIENTED_EDGE('',*,*,#12255,.F.); -#3665=ORIENTED_EDGE('',*,*,#12248,.F.); -#3666=ORIENTED_EDGE('',*,*,#12268,.F.); -#3667=ORIENTED_EDGE('',*,*,#12288,.T.); -#3668=ORIENTED_EDGE('',*,*,#12276,.T.); -#3669=ORIENTED_EDGE('',*,*,#12283,.T.); -#3670=ORIENTED_EDGE('',*,*,#11767,.F.); -#3671=ORIENTED_EDGE('',*,*,#11870,.T.); -#3672=ORIENTED_EDGE('',*,*,#12279,.F.); -#3673=ORIENTED_EDGE('',*,*,#12272,.F.); -#3674=ORIENTED_EDGE('',*,*,#12292,.F.); -#3675=ORIENTED_EDGE('',*,*,#12312,.T.); -#3676=ORIENTED_EDGE('',*,*,#12300,.T.); -#3677=ORIENTED_EDGE('',*,*,#12307,.T.); -#3678=ORIENTED_EDGE('',*,*,#11763,.F.); -#3679=ORIENTED_EDGE('',*,*,#11874,.T.); -#3680=ORIENTED_EDGE('',*,*,#12303,.F.); -#3681=ORIENTED_EDGE('',*,*,#12296,.F.); -#3682=ORIENTED_EDGE('',*,*,#12316,.F.); -#3683=ORIENTED_EDGE('',*,*,#12336,.T.); -#3684=ORIENTED_EDGE('',*,*,#12324,.T.); -#3685=ORIENTED_EDGE('',*,*,#12331,.T.); -#3686=ORIENTED_EDGE('',*,*,#11759,.F.); -#3687=ORIENTED_EDGE('',*,*,#11878,.T.); -#3688=ORIENTED_EDGE('',*,*,#12327,.F.); -#3689=ORIENTED_EDGE('',*,*,#12320,.F.); -#3690=ORIENTED_EDGE('',*,*,#12340,.F.); -#3691=ORIENTED_EDGE('',*,*,#12360,.T.); -#3692=ORIENTED_EDGE('',*,*,#12348,.T.); -#3693=ORIENTED_EDGE('',*,*,#12355,.T.); -#3694=ORIENTED_EDGE('',*,*,#11755,.F.); -#3695=ORIENTED_EDGE('',*,*,#11882,.T.); -#3696=ORIENTED_EDGE('',*,*,#12351,.F.); -#3697=ORIENTED_EDGE('',*,*,#12344,.F.); -#3698=ORIENTED_EDGE('',*,*,#12364,.F.); -#3699=ORIENTED_EDGE('',*,*,#12384,.T.); -#3700=ORIENTED_EDGE('',*,*,#12372,.T.); -#3701=ORIENTED_EDGE('',*,*,#12379,.T.); -#3702=ORIENTED_EDGE('',*,*,#11751,.F.); -#3703=ORIENTED_EDGE('',*,*,#11886,.T.); -#3704=ORIENTED_EDGE('',*,*,#12375,.F.); -#3705=ORIENTED_EDGE('',*,*,#12368,.F.); -#3706=ORIENTED_EDGE('',*,*,#12388,.F.); -#3707=ORIENTED_EDGE('',*,*,#12408,.T.); -#3708=ORIENTED_EDGE('',*,*,#12396,.T.); -#3709=ORIENTED_EDGE('',*,*,#12403,.T.); -#3710=ORIENTED_EDGE('',*,*,#11747,.F.); -#3711=ORIENTED_EDGE('',*,*,#11890,.T.); -#3712=ORIENTED_EDGE('',*,*,#12399,.F.); -#3713=ORIENTED_EDGE('',*,*,#12392,.F.); -#3714=ORIENTED_EDGE('',*,*,#12412,.F.); -#3715=ORIENTED_EDGE('',*,*,#12432,.T.); -#3716=ORIENTED_EDGE('',*,*,#12420,.T.); -#3717=ORIENTED_EDGE('',*,*,#12427,.T.); -#3718=ORIENTED_EDGE('',*,*,#11743,.F.); -#3719=ORIENTED_EDGE('',*,*,#11894,.T.); -#3720=ORIENTED_EDGE('',*,*,#12423,.F.); -#3721=ORIENTED_EDGE('',*,*,#12416,.F.); -#3722=ORIENTED_EDGE('',*,*,#12436,.F.); -#3723=ORIENTED_EDGE('',*,*,#11732,.T.); -#3724=ORIENTED_EDGE('',*,*,#12455,.F.); -#3725=ORIENTED_EDGE('',*,*,#12449,.F.); -#3726=ORIENTED_EDGE('',*,*,#12446,.F.); -#3727=ORIENTED_EDGE('',*,*,#12442,.T.); -#3728=ORIENTED_EDGE('',*,*,#12452,.T.); -#3729=ORIENTED_EDGE('',*,*,#12459,.T.); -#3730=ORIENTED_EDGE('',*,*,#11739,.F.); -#3731=ORIENTED_EDGE('',*,*,#12440,.F.); -#3732=ORIENTED_EDGE('',*,*,#12703,.F.); -#3733=ORIENTED_EDGE('',*,*,#12460,.F.); -#3734=ORIENTED_EDGE('',*,*,#12450,.F.); -#3735=ORIENTED_EDGE('',*,*,#12438,.F.); -#3736=ORIENTED_EDGE('',*,*,#12448,.F.); -#3737=ORIENTED_EDGE('',*,*,#12454,.F.); -#3738=ORIENTED_EDGE('',*,*,#12704,.T.); -#3739=ORIENTED_EDGE('',*,*,#12439,.F.); -#3740=ORIENTED_EDGE('',*,*,#12704,.F.); -#3741=ORIENTED_EDGE('',*,*,#12453,.F.); -#3742=ORIENTED_EDGE('',*,*,#12703,.T.); -#3743=ORIENTED_EDGE('',*,*,#12422,.F.); -#3744=ORIENTED_EDGE('',*,*,#12705,.T.); -#3745=ORIENTED_EDGE('',*,*,#12429,.F.); -#3746=ORIENTED_EDGE('',*,*,#12414,.F.); -#3747=ORIENTED_EDGE('',*,*,#12428,.F.); -#3748=ORIENTED_EDGE('',*,*,#12418,.F.); -#3749=ORIENTED_EDGE('',*,*,#12431,.F.); -#3750=ORIENTED_EDGE('',*,*,#12706,.F.); -#3751=ORIENTED_EDGE('',*,*,#12421,.F.); -#3752=ORIENTED_EDGE('',*,*,#12706,.T.); -#3753=ORIENTED_EDGE('',*,*,#12430,.F.); -#3754=ORIENTED_EDGE('',*,*,#12705,.F.); -#3755=ORIENTED_EDGE('',*,*,#12398,.F.); -#3756=ORIENTED_EDGE('',*,*,#12707,.T.); -#3757=ORIENTED_EDGE('',*,*,#12405,.F.); -#3758=ORIENTED_EDGE('',*,*,#12390,.F.); -#3759=ORIENTED_EDGE('',*,*,#12404,.F.); -#3760=ORIENTED_EDGE('',*,*,#12394,.F.); -#3761=ORIENTED_EDGE('',*,*,#12407,.F.); -#3762=ORIENTED_EDGE('',*,*,#12708,.F.); -#3763=ORIENTED_EDGE('',*,*,#12397,.F.); -#3764=ORIENTED_EDGE('',*,*,#12708,.T.); -#3765=ORIENTED_EDGE('',*,*,#12406,.F.); -#3766=ORIENTED_EDGE('',*,*,#12707,.F.); -#3767=ORIENTED_EDGE('',*,*,#12374,.F.); -#3768=ORIENTED_EDGE('',*,*,#12709,.T.); -#3769=ORIENTED_EDGE('',*,*,#12381,.F.); -#3770=ORIENTED_EDGE('',*,*,#12366,.F.); -#3771=ORIENTED_EDGE('',*,*,#12380,.F.); -#3772=ORIENTED_EDGE('',*,*,#12370,.F.); -#3773=ORIENTED_EDGE('',*,*,#12383,.F.); -#3774=ORIENTED_EDGE('',*,*,#12710,.F.); -#3775=ORIENTED_EDGE('',*,*,#12373,.F.); -#3776=ORIENTED_EDGE('',*,*,#12710,.T.); -#3777=ORIENTED_EDGE('',*,*,#12382,.F.); -#3778=ORIENTED_EDGE('',*,*,#12709,.F.); -#3779=ORIENTED_EDGE('',*,*,#12350,.F.); -#3780=ORIENTED_EDGE('',*,*,#12711,.T.); -#3781=ORIENTED_EDGE('',*,*,#12357,.F.); -#3782=ORIENTED_EDGE('',*,*,#12342,.F.); -#3783=ORIENTED_EDGE('',*,*,#12356,.F.); -#3784=ORIENTED_EDGE('',*,*,#12346,.F.); -#3785=ORIENTED_EDGE('',*,*,#12359,.F.); -#3786=ORIENTED_EDGE('',*,*,#12712,.F.); -#3787=ORIENTED_EDGE('',*,*,#12349,.F.); -#3788=ORIENTED_EDGE('',*,*,#12712,.T.); -#3789=ORIENTED_EDGE('',*,*,#12358,.F.); -#3790=ORIENTED_EDGE('',*,*,#12711,.F.); -#3791=ORIENTED_EDGE('',*,*,#12326,.F.); -#3792=ORIENTED_EDGE('',*,*,#12713,.T.); -#3793=ORIENTED_EDGE('',*,*,#12333,.F.); -#3794=ORIENTED_EDGE('',*,*,#12318,.F.); -#3795=ORIENTED_EDGE('',*,*,#12332,.F.); -#3796=ORIENTED_EDGE('',*,*,#12322,.F.); -#3797=ORIENTED_EDGE('',*,*,#12335,.F.); -#3798=ORIENTED_EDGE('',*,*,#12714,.F.); -#3799=ORIENTED_EDGE('',*,*,#12325,.F.); -#3800=ORIENTED_EDGE('',*,*,#12714,.T.); -#3801=ORIENTED_EDGE('',*,*,#12334,.F.); -#3802=ORIENTED_EDGE('',*,*,#12713,.F.); -#3803=ORIENTED_EDGE('',*,*,#12302,.F.); -#3804=ORIENTED_EDGE('',*,*,#12715,.T.); -#3805=ORIENTED_EDGE('',*,*,#12309,.F.); -#3806=ORIENTED_EDGE('',*,*,#12294,.F.); -#3807=ORIENTED_EDGE('',*,*,#12308,.F.); -#3808=ORIENTED_EDGE('',*,*,#12298,.F.); -#3809=ORIENTED_EDGE('',*,*,#12311,.F.); -#3810=ORIENTED_EDGE('',*,*,#12716,.F.); -#3811=ORIENTED_EDGE('',*,*,#12301,.F.); -#3812=ORIENTED_EDGE('',*,*,#12716,.T.); -#3813=ORIENTED_EDGE('',*,*,#12310,.F.); -#3814=ORIENTED_EDGE('',*,*,#12715,.F.); -#3815=ORIENTED_EDGE('',*,*,#12278,.F.); -#3816=ORIENTED_EDGE('',*,*,#12717,.T.); -#3817=ORIENTED_EDGE('',*,*,#12285,.F.); -#3818=ORIENTED_EDGE('',*,*,#12270,.F.); -#3819=ORIENTED_EDGE('',*,*,#12284,.F.); -#3820=ORIENTED_EDGE('',*,*,#12274,.F.); -#3821=ORIENTED_EDGE('',*,*,#12287,.F.); -#3822=ORIENTED_EDGE('',*,*,#12718,.F.); -#3823=ORIENTED_EDGE('',*,*,#12277,.F.); -#3824=ORIENTED_EDGE('',*,*,#12718,.T.); -#3825=ORIENTED_EDGE('',*,*,#12286,.F.); -#3826=ORIENTED_EDGE('',*,*,#12717,.F.); -#3827=ORIENTED_EDGE('',*,*,#12254,.F.); -#3828=ORIENTED_EDGE('',*,*,#12719,.T.); -#3829=ORIENTED_EDGE('',*,*,#12261,.F.); -#3830=ORIENTED_EDGE('',*,*,#12246,.F.); -#3831=ORIENTED_EDGE('',*,*,#12260,.F.); -#3832=ORIENTED_EDGE('',*,*,#12250,.F.); -#3833=ORIENTED_EDGE('',*,*,#12263,.F.); -#3834=ORIENTED_EDGE('',*,*,#12720,.F.); -#3835=ORIENTED_EDGE('',*,*,#12253,.F.); -#3836=ORIENTED_EDGE('',*,*,#12720,.T.); -#3837=ORIENTED_EDGE('',*,*,#12262,.F.); -#3838=ORIENTED_EDGE('',*,*,#12719,.F.); -#3839=ORIENTED_EDGE('',*,*,#12230,.F.); -#3840=ORIENTED_EDGE('',*,*,#12721,.T.); -#3841=ORIENTED_EDGE('',*,*,#12237,.F.); -#3842=ORIENTED_EDGE('',*,*,#12222,.F.); -#3843=ORIENTED_EDGE('',*,*,#12236,.F.); -#3844=ORIENTED_EDGE('',*,*,#12226,.F.); -#3845=ORIENTED_EDGE('',*,*,#12239,.F.); -#3846=ORIENTED_EDGE('',*,*,#12722,.F.); -#3847=ORIENTED_EDGE('',*,*,#12229,.F.); -#3848=ORIENTED_EDGE('',*,*,#12722,.T.); -#3849=ORIENTED_EDGE('',*,*,#12238,.F.); -#3850=ORIENTED_EDGE('',*,*,#12721,.F.); -#3851=ORIENTED_EDGE('',*,*,#12206,.F.); -#3852=ORIENTED_EDGE('',*,*,#12723,.T.); -#3853=ORIENTED_EDGE('',*,*,#12213,.F.); -#3854=ORIENTED_EDGE('',*,*,#12198,.F.); -#3855=ORIENTED_EDGE('',*,*,#12212,.F.); -#3856=ORIENTED_EDGE('',*,*,#12202,.F.); -#3857=ORIENTED_EDGE('',*,*,#12215,.F.); -#3858=ORIENTED_EDGE('',*,*,#12724,.F.); -#3859=ORIENTED_EDGE('',*,*,#12205,.F.); -#3860=ORIENTED_EDGE('',*,*,#12724,.T.); -#3861=ORIENTED_EDGE('',*,*,#12214,.F.); -#3862=ORIENTED_EDGE('',*,*,#12723,.F.); -#3863=ORIENTED_EDGE('',*,*,#12182,.F.); -#3864=ORIENTED_EDGE('',*,*,#12725,.T.); -#3865=ORIENTED_EDGE('',*,*,#12189,.F.); -#3866=ORIENTED_EDGE('',*,*,#12174,.F.); -#3867=ORIENTED_EDGE('',*,*,#12188,.F.); -#3868=ORIENTED_EDGE('',*,*,#12178,.F.); -#3869=ORIENTED_EDGE('',*,*,#12191,.F.); -#3870=ORIENTED_EDGE('',*,*,#12726,.F.); -#3871=ORIENTED_EDGE('',*,*,#12181,.F.); -#3872=ORIENTED_EDGE('',*,*,#12726,.T.); -#3873=ORIENTED_EDGE('',*,*,#12190,.F.); -#3874=ORIENTED_EDGE('',*,*,#12725,.F.); -#3875=ORIENTED_EDGE('',*,*,#12158,.F.); -#3876=ORIENTED_EDGE('',*,*,#12727,.T.); -#3877=ORIENTED_EDGE('',*,*,#12165,.F.); -#3878=ORIENTED_EDGE('',*,*,#12150,.F.); -#3879=ORIENTED_EDGE('',*,*,#12164,.F.); -#3880=ORIENTED_EDGE('',*,*,#12154,.F.); -#3881=ORIENTED_EDGE('',*,*,#12167,.F.); -#3882=ORIENTED_EDGE('',*,*,#12728,.F.); -#3883=ORIENTED_EDGE('',*,*,#12157,.F.); -#3884=ORIENTED_EDGE('',*,*,#12728,.T.); -#3885=ORIENTED_EDGE('',*,*,#12166,.F.); -#3886=ORIENTED_EDGE('',*,*,#12727,.F.); -#3887=ORIENTED_EDGE('',*,*,#12134,.F.); -#3888=ORIENTED_EDGE('',*,*,#12729,.T.); -#3889=ORIENTED_EDGE('',*,*,#12141,.F.); -#3890=ORIENTED_EDGE('',*,*,#12126,.F.); -#3891=ORIENTED_EDGE('',*,*,#12140,.F.); -#3892=ORIENTED_EDGE('',*,*,#12130,.F.); -#3893=ORIENTED_EDGE('',*,*,#12143,.F.); -#3894=ORIENTED_EDGE('',*,*,#12730,.F.); -#3895=ORIENTED_EDGE('',*,*,#12133,.F.); -#3896=ORIENTED_EDGE('',*,*,#12730,.T.); -#3897=ORIENTED_EDGE('',*,*,#12142,.F.); -#3898=ORIENTED_EDGE('',*,*,#12729,.F.); -#3899=ORIENTED_EDGE('',*,*,#12110,.F.); -#3900=ORIENTED_EDGE('',*,*,#12731,.T.); -#3901=ORIENTED_EDGE('',*,*,#12117,.F.); -#3902=ORIENTED_EDGE('',*,*,#12102,.F.); -#3903=ORIENTED_EDGE('',*,*,#12116,.F.); -#3904=ORIENTED_EDGE('',*,*,#12106,.F.); -#3905=ORIENTED_EDGE('',*,*,#12119,.F.); -#3906=ORIENTED_EDGE('',*,*,#12732,.F.); -#3907=ORIENTED_EDGE('',*,*,#12109,.F.); -#3908=ORIENTED_EDGE('',*,*,#12732,.T.); -#3909=ORIENTED_EDGE('',*,*,#12118,.F.); -#3910=ORIENTED_EDGE('',*,*,#12731,.F.); -#3911=ORIENTED_EDGE('',*,*,#12086,.F.); -#3912=ORIENTED_EDGE('',*,*,#12733,.T.); -#3913=ORIENTED_EDGE('',*,*,#12093,.F.); -#3914=ORIENTED_EDGE('',*,*,#12078,.F.); -#3915=ORIENTED_EDGE('',*,*,#12092,.F.); -#3916=ORIENTED_EDGE('',*,*,#12082,.F.); -#3917=ORIENTED_EDGE('',*,*,#12095,.F.); -#3918=ORIENTED_EDGE('',*,*,#12734,.F.); -#3919=ORIENTED_EDGE('',*,*,#12085,.F.); -#3920=ORIENTED_EDGE('',*,*,#12734,.T.); -#3921=ORIENTED_EDGE('',*,*,#12094,.F.); -#3922=ORIENTED_EDGE('',*,*,#12733,.F.); -#3923=ORIENTED_EDGE('',*,*,#12062,.F.); -#3924=ORIENTED_EDGE('',*,*,#12735,.T.); -#3925=ORIENTED_EDGE('',*,*,#12069,.F.); -#3926=ORIENTED_EDGE('',*,*,#12054,.F.); -#3927=ORIENTED_EDGE('',*,*,#12068,.F.); -#3928=ORIENTED_EDGE('',*,*,#12058,.F.); -#3929=ORIENTED_EDGE('',*,*,#12071,.F.); -#3930=ORIENTED_EDGE('',*,*,#12736,.F.); -#3931=ORIENTED_EDGE('',*,*,#12061,.F.); -#3932=ORIENTED_EDGE('',*,*,#12736,.T.); -#3933=ORIENTED_EDGE('',*,*,#12070,.F.); -#3934=ORIENTED_EDGE('',*,*,#12735,.F.); -#3935=ORIENTED_EDGE('',*,*,#12038,.F.); -#3936=ORIENTED_EDGE('',*,*,#12737,.T.); -#3937=ORIENTED_EDGE('',*,*,#12045,.F.); -#3938=ORIENTED_EDGE('',*,*,#12030,.F.); -#3939=ORIENTED_EDGE('',*,*,#12044,.F.); -#3940=ORIENTED_EDGE('',*,*,#12034,.F.); -#3941=ORIENTED_EDGE('',*,*,#12047,.F.); -#3942=ORIENTED_EDGE('',*,*,#12738,.F.); -#3943=ORIENTED_EDGE('',*,*,#12037,.F.); -#3944=ORIENTED_EDGE('',*,*,#12738,.T.); -#3945=ORIENTED_EDGE('',*,*,#12046,.F.); -#3946=ORIENTED_EDGE('',*,*,#12737,.F.); -#3947=ORIENTED_EDGE('',*,*,#12014,.F.); -#3948=ORIENTED_EDGE('',*,*,#12739,.T.); -#3949=ORIENTED_EDGE('',*,*,#12021,.F.); -#3950=ORIENTED_EDGE('',*,*,#12006,.F.); -#3951=ORIENTED_EDGE('',*,*,#12020,.F.); -#3952=ORIENTED_EDGE('',*,*,#12010,.F.); -#3953=ORIENTED_EDGE('',*,*,#12023,.F.); -#3954=ORIENTED_EDGE('',*,*,#12740,.F.); -#3955=ORIENTED_EDGE('',*,*,#12013,.F.); -#3956=ORIENTED_EDGE('',*,*,#12740,.T.); -#3957=ORIENTED_EDGE('',*,*,#12022,.F.); -#3958=ORIENTED_EDGE('',*,*,#12739,.F.); -#3959=ORIENTED_EDGE('',*,*,#11989,.F.); -#3960=ORIENTED_EDGE('',*,*,#12741,.T.); -#3961=ORIENTED_EDGE('',*,*,#11998,.F.); -#3962=ORIENTED_EDGE('',*,*,#12742,.F.); -#3963=ORIENTED_EDGE('',*,*,#11990,.F.); -#3964=ORIENTED_EDGE('',*,*,#12742,.T.); -#3965=ORIENTED_EDGE('',*,*,#11997,.F.); -#3966=ORIENTED_EDGE('',*,*,#11982,.F.); -#3967=ORIENTED_EDGE('',*,*,#11996,.F.); -#3968=ORIENTED_EDGE('',*,*,#11986,.F.); -#3969=ORIENTED_EDGE('',*,*,#11999,.F.); -#3970=ORIENTED_EDGE('',*,*,#12741,.F.); -#3971=ORIENTED_EDGE('',*,*,#12743,.F.); -#3972=ORIENTED_EDGE('',*,*,#12744,.T.); -#3973=ORIENTED_EDGE('',*,*,#11974,.T.); -#3974=ORIENTED_EDGE('',*,*,#12745,.F.); -#3975=ORIENTED_EDGE('',*,*,#11973,.T.); -#3976=ORIENTED_EDGE('',*,*,#12746,.T.); -#3977=ORIENTED_EDGE('',*,*,#12747,.F.); -#3978=ORIENTED_EDGE('',*,*,#12745,.T.); -#3979=ORIENTED_EDGE('',*,*,#12748,.F.); -#3980=ORIENTED_EDGE('',*,*,#12743,.T.); -#3981=ORIENTED_EDGE('',*,*,#12747,.T.); -#3982=ORIENTED_EDGE('',*,*,#12749,.T.); -#3983=ORIENTED_EDGE('',*,*,#12750,.T.); -#3984=ORIENTED_EDGE('',*,*,#11975,.F.); -#3985=ORIENTED_EDGE('',*,*,#11899,.F.); -#3986=ORIENTED_EDGE('',*,*,#11976,.F.); -#3987=ORIENTED_EDGE('',*,*,#12750,.F.); -#3988=ORIENTED_EDGE('',*,*,#12751,.T.); -#3989=ORIENTED_EDGE('',*,*,#11971,.F.); -#3990=ORIENTED_EDGE('',*,*,#11898,.T.); -#3991=ORIENTED_EDGE('',*,*,#12744,.F.); -#3992=ORIENTED_EDGE('',*,*,#12748,.T.); -#3993=ORIENTED_EDGE('',*,*,#12746,.F.); -#3994=ORIENTED_EDGE('',*,*,#11972,.T.); -#3995=ORIENTED_EDGE('',*,*,#12751,.F.); -#3996=ORIENTED_EDGE('',*,*,#12749,.F.); -#3997=ORIENTED_EDGE('',*,*,#12752,.F.); -#3998=ORIENTED_EDGE('',*,*,#11715,.T.); -#3999=ORIENTED_EDGE('',*,*,#12752,.T.); -#4000=ORIENTED_EDGE('',*,*,#12753,.F.); -#4001=ORIENTED_EDGE('',*,*,#12753,.T.); -#4002=ORIENTED_EDGE('',*,*,#11708,.F.); -#4003=ORIENTED_EDGE('',*,*,#12754,.F.); -#4004=ORIENTED_EDGE('',*,*,#12755,.T.); -#4005=ORIENTED_EDGE('',*,*,#12756,.T.); -#4006=ORIENTED_EDGE('',*,*,#11709,.F.); -#4007=ORIENTED_EDGE('',*,*,#12756,.F.); -#4008=ORIENTED_EDGE('',*,*,#12757,.T.); -#4009=ORIENTED_EDGE('',*,*,#12758,.T.); -#4010=ORIENTED_EDGE('',*,*,#11710,.F.); -#4011=ORIENTED_EDGE('',*,*,#12758,.F.); -#4012=ORIENTED_EDGE('',*,*,#12759,.T.); -#4013=ORIENTED_EDGE('',*,*,#12760,.T.); -#4014=ORIENTED_EDGE('',*,*,#11711,.F.); -#4015=ORIENTED_EDGE('',*,*,#12760,.F.); -#4016=ORIENTED_EDGE('',*,*,#12761,.T.); -#4017=ORIENTED_EDGE('',*,*,#12762,.T.); -#4018=ORIENTED_EDGE('',*,*,#11712,.F.); -#4019=ORIENTED_EDGE('',*,*,#12762,.F.); -#4020=ORIENTED_EDGE('',*,*,#12763,.T.); -#4021=ORIENTED_EDGE('',*,*,#12764,.T.); -#4022=ORIENTED_EDGE('',*,*,#11713,.F.); -#4023=ORIENTED_EDGE('',*,*,#12764,.F.); -#4024=ORIENTED_EDGE('',*,*,#12765,.T.); -#4025=ORIENTED_EDGE('',*,*,#12766,.T.); -#4026=ORIENTED_EDGE('',*,*,#11714,.F.); -#4027=ORIENTED_EDGE('',*,*,#12766,.F.); -#4028=ORIENTED_EDGE('',*,*,#12767,.T.); -#4029=ORIENTED_EDGE('',*,*,#12768,.T.); -#4030=ORIENTED_EDGE('',*,*,#11707,.F.); -#4031=ORIENTED_EDGE('',*,*,#12768,.F.); -#4032=ORIENTED_EDGE('',*,*,#12769,.T.); -#4033=ORIENTED_EDGE('',*,*,#12754,.T.); -#4034=ORIENTED_EDGE('',*,*,#12755,.F.); -#4035=ORIENTED_EDGE('',*,*,#12769,.F.); -#4036=ORIENTED_EDGE('',*,*,#12767,.F.); -#4037=ORIENTED_EDGE('',*,*,#12765,.F.); -#4038=ORIENTED_EDGE('',*,*,#12763,.F.); -#4039=ORIENTED_EDGE('',*,*,#12761,.F.); -#4040=ORIENTED_EDGE('',*,*,#12759,.F.); -#4041=ORIENTED_EDGE('',*,*,#12757,.F.); -#4042=ORIENTED_EDGE('',*,*,#11697,.F.); -#4043=ORIENTED_EDGE('',*,*,#12770,.F.); -#4044=ORIENTED_EDGE('',*,*,#12771,.T.); -#4045=ORIENTED_EDGE('',*,*,#12772,.T.); -#4046=ORIENTED_EDGE('',*,*,#11698,.F.); -#4047=ORIENTED_EDGE('',*,*,#12772,.F.); -#4048=ORIENTED_EDGE('',*,*,#12773,.T.); -#4049=ORIENTED_EDGE('',*,*,#12774,.T.); -#4050=ORIENTED_EDGE('',*,*,#11699,.F.); -#4051=ORIENTED_EDGE('',*,*,#12774,.F.); -#4052=ORIENTED_EDGE('',*,*,#12775,.T.); -#4053=ORIENTED_EDGE('',*,*,#12776,.T.); -#4054=ORIENTED_EDGE('',*,*,#11700,.T.); -#4055=ORIENTED_EDGE('',*,*,#12776,.F.); -#4056=ORIENTED_EDGE('',*,*,#12777,.F.); -#4057=ORIENTED_EDGE('',*,*,#12778,.T.); -#4058=ORIENTED_EDGE('',*,*,#11701,.F.); -#4059=ORIENTED_EDGE('',*,*,#12778,.F.); -#4060=ORIENTED_EDGE('',*,*,#12779,.T.); -#4061=ORIENTED_EDGE('',*,*,#12780,.T.); -#4062=ORIENTED_EDGE('',*,*,#11702,.F.); -#4063=ORIENTED_EDGE('',*,*,#12780,.F.); -#4064=ORIENTED_EDGE('',*,*,#12781,.T.); -#4065=ORIENTED_EDGE('',*,*,#12782,.T.); -#4066=ORIENTED_EDGE('',*,*,#11703,.F.); -#4067=ORIENTED_EDGE('',*,*,#12782,.F.); -#4068=ORIENTED_EDGE('',*,*,#12783,.T.); -#4069=ORIENTED_EDGE('',*,*,#12784,.T.); -#4070=ORIENTED_EDGE('',*,*,#11704,.F.); -#4071=ORIENTED_EDGE('',*,*,#12784,.F.); -#4072=ORIENTED_EDGE('',*,*,#12785,.T.); -#4073=ORIENTED_EDGE('',*,*,#12786,.T.); -#4074=ORIENTED_EDGE('',*,*,#11705,.F.); -#4075=ORIENTED_EDGE('',*,*,#12786,.F.); -#4076=ORIENTED_EDGE('',*,*,#12787,.T.); -#4077=ORIENTED_EDGE('',*,*,#12788,.T.); -#4078=ORIENTED_EDGE('',*,*,#11706,.F.); -#4079=ORIENTED_EDGE('',*,*,#12788,.F.); -#4080=ORIENTED_EDGE('',*,*,#12789,.T.); -#4081=ORIENTED_EDGE('',*,*,#12770,.T.); -#4082=ORIENTED_EDGE('',*,*,#12771,.F.); -#4083=ORIENTED_EDGE('',*,*,#12789,.F.); -#4084=ORIENTED_EDGE('',*,*,#12787,.F.); -#4085=ORIENTED_EDGE('',*,*,#12785,.F.); -#4086=ORIENTED_EDGE('',*,*,#12783,.F.); -#4087=ORIENTED_EDGE('',*,*,#12781,.F.); -#4088=ORIENTED_EDGE('',*,*,#12779,.F.); -#4089=ORIENTED_EDGE('',*,*,#12777,.T.); -#4090=ORIENTED_EDGE('',*,*,#12775,.F.); -#4091=ORIENTED_EDGE('',*,*,#12773,.F.); -#4092=ORIENTED_EDGE('',*,*,#11716,.F.); -#4093=ORIENTED_EDGE('',*,*,#12790,.F.); -#4094=ORIENTED_EDGE('',*,*,#12791,.T.); -#4095=ORIENTED_EDGE('',*,*,#12792,.T.); -#4096=ORIENTED_EDGE('',*,*,#11717,.F.); -#4097=ORIENTED_EDGE('',*,*,#12792,.F.); -#4098=ORIENTED_EDGE('',*,*,#12793,.T.); -#4099=ORIENTED_EDGE('',*,*,#12794,.T.); -#4100=ORIENTED_EDGE('',*,*,#11718,.F.); -#4101=ORIENTED_EDGE('',*,*,#12794,.F.); -#4102=ORIENTED_EDGE('',*,*,#12795,.T.); -#4103=ORIENTED_EDGE('',*,*,#12796,.T.); -#4104=ORIENTED_EDGE('',*,*,#11719,.T.); -#4105=ORIENTED_EDGE('',*,*,#12796,.F.); -#4106=ORIENTED_EDGE('',*,*,#12797,.F.); -#4107=ORIENTED_EDGE('',*,*,#12798,.T.); -#4108=ORIENTED_EDGE('',*,*,#11720,.F.); -#4109=ORIENTED_EDGE('',*,*,#12798,.F.); -#4110=ORIENTED_EDGE('',*,*,#12799,.T.); -#4111=ORIENTED_EDGE('',*,*,#12800,.T.); -#4112=ORIENTED_EDGE('',*,*,#11721,.F.); -#4113=ORIENTED_EDGE('',*,*,#12800,.F.); -#4114=ORIENTED_EDGE('',*,*,#12801,.T.); -#4115=ORIENTED_EDGE('',*,*,#12802,.T.); -#4116=ORIENTED_EDGE('',*,*,#11722,.F.); -#4117=ORIENTED_EDGE('',*,*,#12802,.F.); -#4118=ORIENTED_EDGE('',*,*,#12803,.T.); -#4119=ORIENTED_EDGE('',*,*,#12804,.T.); -#4120=ORIENTED_EDGE('',*,*,#11723,.F.); -#4121=ORIENTED_EDGE('',*,*,#12804,.F.); -#4122=ORIENTED_EDGE('',*,*,#12805,.T.); -#4123=ORIENTED_EDGE('',*,*,#12806,.T.); -#4124=ORIENTED_EDGE('',*,*,#11724,.F.); -#4125=ORIENTED_EDGE('',*,*,#12806,.F.); -#4126=ORIENTED_EDGE('',*,*,#12807,.T.); -#4127=ORIENTED_EDGE('',*,*,#12808,.T.); -#4128=ORIENTED_EDGE('',*,*,#11725,.F.); -#4129=ORIENTED_EDGE('',*,*,#12808,.F.); -#4130=ORIENTED_EDGE('',*,*,#12809,.T.); -#4131=ORIENTED_EDGE('',*,*,#12790,.T.); -#4132=ORIENTED_EDGE('',*,*,#12791,.F.); -#4133=ORIENTED_EDGE('',*,*,#12809,.F.); -#4134=ORIENTED_EDGE('',*,*,#12807,.F.); -#4135=ORIENTED_EDGE('',*,*,#12805,.F.); -#4136=ORIENTED_EDGE('',*,*,#12803,.F.); -#4137=ORIENTED_EDGE('',*,*,#12801,.F.); -#4138=ORIENTED_EDGE('',*,*,#12799,.F.); -#4139=ORIENTED_EDGE('',*,*,#12797,.T.); -#4140=ORIENTED_EDGE('',*,*,#12795,.F.); -#4141=ORIENTED_EDGE('',*,*,#12793,.F.); -#4142=ORIENTED_EDGE('',*,*,#11726,.T.); -#4143=ORIENTED_EDGE('',*,*,#12810,.T.); -#4144=ORIENTED_EDGE('',*,*,#12811,.T.); -#4145=ORIENTED_EDGE('',*,*,#11675,.F.); -#4146=ORIENTED_EDGE('',*,*,#11730,.T.); -#4147=ORIENTED_EDGE('',*,*,#11679,.F.); -#4148=ORIENTED_EDGE('',*,*,#12812,.F.); -#4149=ORIENTED_EDGE('',*,*,#12813,.T.); -#4150=ORIENTED_EDGE('',*,*,#12813,.F.); -#4151=ORIENTED_EDGE('',*,*,#12814,.F.); -#4152=ORIENTED_EDGE('',*,*,#12815,.F.); -#4153=ORIENTED_EDGE('',*,*,#12816,.F.); -#4154=ORIENTED_EDGE('',*,*,#12810,.F.); -#4155=ORIENTED_EDGE('',*,*,#11731,.F.); -#4156=ORIENTED_EDGE('',*,*,#11676,.F.); -#4157=ORIENTED_EDGE('',*,*,#12811,.F.); -#4158=ORIENTED_EDGE('',*,*,#12816,.T.); -#4159=ORIENTED_EDGE('',*,*,#12817,.T.); -#4160=ORIENTED_EDGE('',*,*,#11677,.F.); -#4161=ORIENTED_EDGE('',*,*,#12817,.F.); -#4162=ORIENTED_EDGE('',*,*,#12815,.T.); -#4163=ORIENTED_EDGE('',*,*,#12818,.T.); -#4164=ORIENTED_EDGE('',*,*,#11678,.F.); -#4165=ORIENTED_EDGE('',*,*,#12818,.F.); -#4166=ORIENTED_EDGE('',*,*,#12814,.T.); -#4167=ORIENTED_EDGE('',*,*,#12812,.T.); -#4168=ORIENTED_EDGE('',*,*,#11652,.T.); -#4169=ORIENTED_EDGE('',*,*,#11664,.F.); -#4170=ORIENTED_EDGE('',*,*,#12819,.F.); -#4171=ORIENTED_EDGE('',*,*,#12820,.T.); -#4172=ORIENTED_EDGE('',*,*,#11658,.T.); -#4173=ORIENTED_EDGE('',*,*,#12821,.T.); -#4174=ORIENTED_EDGE('',*,*,#12822,.T.); -#4175=ORIENTED_EDGE('',*,*,#11693,.F.); -#4176=ORIENTED_EDGE('',*,*,#12820,.F.); -#4177=ORIENTED_EDGE('',*,*,#12823,.F.); -#4178=ORIENTED_EDGE('',*,*,#12824,.F.); -#4179=ORIENTED_EDGE('',*,*,#12825,.F.); -#4180=ORIENTED_EDGE('',*,*,#12821,.F.); -#4181=ORIENTED_EDGE('',*,*,#11663,.F.); -#4182=ORIENTED_EDGE('',*,*,#12601,.F.); -#4183=ORIENTED_EDGE('',*,*,#11653,.F.); -#4184=ORIENTED_EDGE('',*,*,#11695,.F.); -#4185=ORIENTED_EDGE('',*,*,#12826,.F.); -#4186=ORIENTED_EDGE('',*,*,#12824,.T.); -#4187=ORIENTED_EDGE('',*,*,#12827,.T.); -#4188=ORIENTED_EDGE('',*,*,#11696,.F.); -#4189=ORIENTED_EDGE('',*,*,#12827,.F.); -#4190=ORIENTED_EDGE('',*,*,#12823,.T.); -#4191=ORIENTED_EDGE('',*,*,#12819,.T.); -#4192=ORIENTED_EDGE('',*,*,#11694,.F.); -#4193=ORIENTED_EDGE('',*,*,#12822,.F.); -#4194=ORIENTED_EDGE('',*,*,#12825,.T.); -#4195=ORIENTED_EDGE('',*,*,#12826,.T.); -#4196=ORIENTED_EDGE('',*,*,#12828,.F.); -#4197=ORIENTED_EDGE('',*,*,#12829,.T.); -#4198=ORIENTED_EDGE('',*,*,#12830,.T.); -#4199=ORIENTED_EDGE('',*,*,#12831,.F.); -#4200=ORIENTED_EDGE('',*,*,#12832,.T.); -#4201=ORIENTED_EDGE('',*,*,#12833,.T.); -#4202=ORIENTED_EDGE('',*,*,#12834,.T.); -#4203=ORIENTED_EDGE('',*,*,#12835,.T.); -#4204=ORIENTED_EDGE('',*,*,#12836,.T.); -#4205=ORIENTED_EDGE('',*,*,#12837,.T.); -#4206=ORIENTED_EDGE('',*,*,#12838,.T.); -#4207=ORIENTED_EDGE('',*,*,#12839,.T.); -#4208=ORIENTED_EDGE('',*,*,#12840,.T.); -#4209=ORIENTED_EDGE('',*,*,#12841,.T.); -#4210=ORIENTED_EDGE('',*,*,#12842,.T.); -#4211=ORIENTED_EDGE('',*,*,#12843,.T.); -#4212=ORIENTED_EDGE('',*,*,#12844,.T.); -#4213=ORIENTED_EDGE('',*,*,#12845,.T.); -#4214=ORIENTED_EDGE('',*,*,#12846,.T.); -#4215=ORIENTED_EDGE('',*,*,#12847,.T.); -#4216=ORIENTED_EDGE('',*,*,#12848,.T.); -#4217=ORIENTED_EDGE('',*,*,#12849,.T.); -#4218=ORIENTED_EDGE('',*,*,#12850,.T.); -#4219=ORIENTED_EDGE('',*,*,#12851,.T.); -#4220=ORIENTED_EDGE('',*,*,#12852,.T.); -#4221=ORIENTED_EDGE('',*,*,#12853,.T.); -#4222=ORIENTED_EDGE('',*,*,#12854,.T.); -#4223=ORIENTED_EDGE('',*,*,#12855,.T.); -#4224=ORIENTED_EDGE('',*,*,#12856,.T.); -#4225=ORIENTED_EDGE('',*,*,#12857,.T.); -#4226=ORIENTED_EDGE('',*,*,#12858,.T.); -#4227=ORIENTED_EDGE('',*,*,#12859,.T.); -#4228=ORIENTED_EDGE('',*,*,#12860,.T.); -#4229=ORIENTED_EDGE('',*,*,#12861,.T.); -#4230=ORIENTED_EDGE('',*,*,#12862,.T.); -#4231=ORIENTED_EDGE('',*,*,#12863,.T.); -#4232=ORIENTED_EDGE('',*,*,#12864,.T.); -#4233=ORIENTED_EDGE('',*,*,#12865,.T.); -#4234=ORIENTED_EDGE('',*,*,#12866,.T.); -#4235=ORIENTED_EDGE('',*,*,#12867,.T.); -#4236=ORIENTED_EDGE('',*,*,#12868,.T.); -#4237=ORIENTED_EDGE('',*,*,#12869,.T.); -#4238=ORIENTED_EDGE('',*,*,#12870,.T.); -#4239=ORIENTED_EDGE('',*,*,#12871,.T.); -#4240=ORIENTED_EDGE('',*,*,#12872,.T.); -#4241=ORIENTED_EDGE('',*,*,#12873,.T.); -#4242=ORIENTED_EDGE('',*,*,#12874,.T.); -#4243=ORIENTED_EDGE('',*,*,#12875,.T.); -#4244=ORIENTED_EDGE('',*,*,#12876,.T.); -#4245=ORIENTED_EDGE('',*,*,#12877,.T.); -#4246=ORIENTED_EDGE('',*,*,#12878,.T.); -#4247=ORIENTED_EDGE('',*,*,#12879,.T.); -#4248=ORIENTED_EDGE('',*,*,#12880,.T.); -#4249=ORIENTED_EDGE('',*,*,#12881,.T.); -#4250=ORIENTED_EDGE('',*,*,#12882,.T.); -#4251=ORIENTED_EDGE('',*,*,#12883,.T.); -#4252=ORIENTED_EDGE('',*,*,#12884,.T.); -#4253=ORIENTED_EDGE('',*,*,#12885,.T.); -#4254=ORIENTED_EDGE('',*,*,#12886,.T.); -#4255=ORIENTED_EDGE('',*,*,#12887,.T.); -#4256=ORIENTED_EDGE('',*,*,#12888,.T.); -#4257=ORIENTED_EDGE('',*,*,#12889,.T.); -#4258=ORIENTED_EDGE('',*,*,#12890,.T.); -#4259=ORIENTED_EDGE('',*,*,#12891,.T.); -#4260=ORIENTED_EDGE('',*,*,#12892,.T.); -#4261=ORIENTED_EDGE('',*,*,#12893,.T.); -#4262=ORIENTED_EDGE('',*,*,#12894,.T.); -#4263=ORIENTED_EDGE('',*,*,#12895,.T.); -#4264=ORIENTED_EDGE('',*,*,#12896,.T.); -#4265=ORIENTED_EDGE('',*,*,#12897,.T.); -#4266=ORIENTED_EDGE('',*,*,#12898,.T.); -#4267=ORIENTED_EDGE('',*,*,#12899,.T.); -#4268=ORIENTED_EDGE('',*,*,#12900,.T.); -#4269=ORIENTED_EDGE('',*,*,#12901,.T.); -#4270=ORIENTED_EDGE('',*,*,#12902,.T.); -#4271=ORIENTED_EDGE('',*,*,#12903,.T.); -#4272=ORIENTED_EDGE('',*,*,#12904,.T.); -#4273=ORIENTED_EDGE('',*,*,#12905,.T.); -#4274=ORIENTED_EDGE('',*,*,#12906,.T.); -#4275=ORIENTED_EDGE('',*,*,#12907,.T.); -#4276=ORIENTED_EDGE('',*,*,#12908,.T.); -#4277=ORIENTED_EDGE('',*,*,#12909,.T.); -#4278=ORIENTED_EDGE('',*,*,#12910,.T.); -#4279=ORIENTED_EDGE('',*,*,#12911,.T.); -#4280=ORIENTED_EDGE('',*,*,#12912,.T.); -#4281=ORIENTED_EDGE('',*,*,#12913,.T.); -#4282=ORIENTED_EDGE('',*,*,#12914,.T.); -#4283=ORIENTED_EDGE('',*,*,#12915,.T.); -#4284=ORIENTED_EDGE('',*,*,#12916,.T.); -#4285=ORIENTED_EDGE('',*,*,#12917,.T.); -#4286=ORIENTED_EDGE('',*,*,#12918,.T.); -#4287=ORIENTED_EDGE('',*,*,#12919,.T.); -#4288=ORIENTED_EDGE('',*,*,#12920,.T.); -#4289=ORIENTED_EDGE('',*,*,#12921,.T.); -#4290=ORIENTED_EDGE('',*,*,#12922,.T.); -#4291=ORIENTED_EDGE('',*,*,#12923,.T.); -#4292=ORIENTED_EDGE('',*,*,#12924,.T.); -#4293=ORIENTED_EDGE('',*,*,#12925,.T.); -#4294=ORIENTED_EDGE('',*,*,#12926,.T.); -#4295=ORIENTED_EDGE('',*,*,#12927,.T.); -#4296=ORIENTED_EDGE('',*,*,#12928,.T.); -#4297=ORIENTED_EDGE('',*,*,#12929,.T.); -#4298=ORIENTED_EDGE('',*,*,#12930,.T.); -#4299=ORIENTED_EDGE('',*,*,#12931,.T.); -#4300=ORIENTED_EDGE('',*,*,#12932,.T.); -#4301=ORIENTED_EDGE('',*,*,#12933,.T.); -#4302=ORIENTED_EDGE('',*,*,#12934,.T.); -#4303=ORIENTED_EDGE('',*,*,#12935,.T.); -#4304=ORIENTED_EDGE('',*,*,#12936,.T.); -#4305=ORIENTED_EDGE('',*,*,#12937,.T.); -#4306=ORIENTED_EDGE('',*,*,#12938,.T.); -#4307=ORIENTED_EDGE('',*,*,#12939,.T.); -#4308=ORIENTED_EDGE('',*,*,#12940,.T.); -#4309=ORIENTED_EDGE('',*,*,#12941,.T.); -#4310=ORIENTED_EDGE('',*,*,#12942,.T.); -#4311=ORIENTED_EDGE('',*,*,#12943,.T.); -#4312=ORIENTED_EDGE('',*,*,#12944,.T.); -#4313=ORIENTED_EDGE('',*,*,#12945,.T.); -#4314=ORIENTED_EDGE('',*,*,#12946,.T.); -#4315=ORIENTED_EDGE('',*,*,#12947,.T.); -#4316=ORIENTED_EDGE('',*,*,#12948,.T.); -#4317=ORIENTED_EDGE('',*,*,#12949,.T.); -#4318=ORIENTED_EDGE('',*,*,#12950,.T.); -#4319=ORIENTED_EDGE('',*,*,#12951,.T.); -#4320=ORIENTED_EDGE('',*,*,#12952,.T.); -#4321=ORIENTED_EDGE('',*,*,#12953,.T.); -#4322=ORIENTED_EDGE('',*,*,#12954,.T.); -#4323=ORIENTED_EDGE('',*,*,#12955,.T.); -#4324=ORIENTED_EDGE('',*,*,#12956,.T.); -#4325=ORIENTED_EDGE('',*,*,#12957,.T.); -#4326=ORIENTED_EDGE('',*,*,#12958,.T.); -#4327=ORIENTED_EDGE('',*,*,#12959,.T.); -#4328=ORIENTED_EDGE('',*,*,#12960,.T.); -#4329=ORIENTED_EDGE('',*,*,#12961,.T.); -#4330=ORIENTED_EDGE('',*,*,#12962,.T.); -#4331=ORIENTED_EDGE('',*,*,#12963,.T.); -#4332=ORIENTED_EDGE('',*,*,#12964,.T.); -#4333=ORIENTED_EDGE('',*,*,#12965,.T.); -#4334=ORIENTED_EDGE('',*,*,#12966,.T.); -#4335=ORIENTED_EDGE('',*,*,#12967,.T.); -#4336=ORIENTED_EDGE('',*,*,#12968,.T.); -#4337=ORIENTED_EDGE('',*,*,#12969,.T.); -#4338=ORIENTED_EDGE('',*,*,#12970,.T.); -#4339=ORIENTED_EDGE('',*,*,#12971,.T.); -#4340=ORIENTED_EDGE('',*,*,#12972,.T.); -#4341=ORIENTED_EDGE('',*,*,#12973,.T.); -#4342=ORIENTED_EDGE('',*,*,#12974,.T.); -#4343=ORIENTED_EDGE('',*,*,#12975,.T.); -#4344=ORIENTED_EDGE('',*,*,#12976,.T.); -#4345=ORIENTED_EDGE('',*,*,#12977,.T.); -#4346=ORIENTED_EDGE('',*,*,#12978,.T.); -#4347=ORIENTED_EDGE('',*,*,#12979,.T.); -#4348=ORIENTED_EDGE('',*,*,#12980,.T.); -#4349=ORIENTED_EDGE('',*,*,#12981,.T.); -#4350=ORIENTED_EDGE('',*,*,#12982,.T.); -#4351=ORIENTED_EDGE('',*,*,#12983,.T.); -#4352=ORIENTED_EDGE('',*,*,#12984,.T.); -#4353=ORIENTED_EDGE('',*,*,#12985,.T.); -#4354=ORIENTED_EDGE('',*,*,#12986,.T.); -#4355=ORIENTED_EDGE('',*,*,#12987,.T.); -#4356=ORIENTED_EDGE('',*,*,#12988,.T.); -#4357=ORIENTED_EDGE('',*,*,#12989,.T.); -#4358=ORIENTED_EDGE('',*,*,#12990,.T.); -#4359=ORIENTED_EDGE('',*,*,#12991,.F.); -#4360=ORIENTED_EDGE('',*,*,#12992,.F.); -#4361=ORIENTED_EDGE('',*,*,#12993,.T.); -#4362=ORIENTED_EDGE('',*,*,#12994,.F.); -#4363=ORIENTED_EDGE('',*,*,#12995,.T.); -#4364=ORIENTED_EDGE('',*,*,#12996,.T.); -#4365=ORIENTED_EDGE('',*,*,#12997,.T.); -#4366=ORIENTED_EDGE('',*,*,#12998,.F.); -#4367=ORIENTED_EDGE('',*,*,#12999,.T.); -#4368=ORIENTED_EDGE('',*,*,#13000,.T.); -#4369=ORIENTED_EDGE('',*,*,#13001,.T.); -#4370=ORIENTED_EDGE('',*,*,#13002,.F.); -#4371=ORIENTED_EDGE('',*,*,#13003,.T.); -#4372=ORIENTED_EDGE('',*,*,#13004,.T.); -#4373=ORIENTED_EDGE('',*,*,#13005,.T.); -#4374=ORIENTED_EDGE('',*,*,#13006,.F.); -#4375=ORIENTED_EDGE('',*,*,#13007,.T.); -#4376=ORIENTED_EDGE('',*,*,#13008,.T.); -#4377=ORIENTED_EDGE('',*,*,#13009,.T.); -#4378=ORIENTED_EDGE('',*,*,#13010,.F.); -#4379=ORIENTED_EDGE('',*,*,#13011,.T.); -#4380=ORIENTED_EDGE('',*,*,#13012,.T.); -#4381=ORIENTED_EDGE('',*,*,#13013,.T.); -#4382=ORIENTED_EDGE('',*,*,#13014,.F.); -#4383=ORIENTED_EDGE('',*,*,#13015,.T.); -#4384=ORIENTED_EDGE('',*,*,#13016,.T.); -#4385=ORIENTED_EDGE('',*,*,#13017,.T.); -#4386=ORIENTED_EDGE('',*,*,#13018,.F.); -#4387=ORIENTED_EDGE('',*,*,#13019,.T.); -#4388=ORIENTED_EDGE('',*,*,#13020,.T.); -#4389=ORIENTED_EDGE('',*,*,#13021,.T.); -#4390=ORIENTED_EDGE('',*,*,#13022,.F.); -#4391=ORIENTED_EDGE('',*,*,#13023,.T.); -#4392=ORIENTED_EDGE('',*,*,#13024,.T.); -#4393=ORIENTED_EDGE('',*,*,#13025,.T.); -#4394=ORIENTED_EDGE('',*,*,#13026,.F.); -#4395=ORIENTED_EDGE('',*,*,#13027,.T.); -#4396=ORIENTED_EDGE('',*,*,#13028,.T.); -#4397=ORIENTED_EDGE('',*,*,#13029,.T.); -#4398=ORIENTED_EDGE('',*,*,#13030,.F.); -#4399=ORIENTED_EDGE('',*,*,#13031,.T.); -#4400=ORIENTED_EDGE('',*,*,#13032,.T.); -#4401=ORIENTED_EDGE('',*,*,#13033,.T.); -#4402=ORIENTED_EDGE('',*,*,#13034,.F.); -#4403=ORIENTED_EDGE('',*,*,#13035,.T.); -#4404=ORIENTED_EDGE('',*,*,#13036,.T.); -#4405=ORIENTED_EDGE('',*,*,#13037,.T.); -#4406=ORIENTED_EDGE('',*,*,#13038,.F.); -#4407=ORIENTED_EDGE('',*,*,#13039,.T.); -#4408=ORIENTED_EDGE('',*,*,#13040,.T.); -#4409=ORIENTED_EDGE('',*,*,#13041,.T.); -#4410=ORIENTED_EDGE('',*,*,#13042,.F.); -#4411=ORIENTED_EDGE('',*,*,#13043,.T.); -#4412=ORIENTED_EDGE('',*,*,#13044,.T.); -#4413=ORIENTED_EDGE('',*,*,#13045,.T.); -#4414=ORIENTED_EDGE('',*,*,#13046,.F.); -#4415=ORIENTED_EDGE('',*,*,#13047,.T.); -#4416=ORIENTED_EDGE('',*,*,#13048,.T.); -#4417=ORIENTED_EDGE('',*,*,#13049,.T.); -#4418=ORIENTED_EDGE('',*,*,#13050,.F.); -#4419=ORIENTED_EDGE('',*,*,#13051,.T.); -#4420=ORIENTED_EDGE('',*,*,#13052,.T.); -#4421=ORIENTED_EDGE('',*,*,#13053,.T.); -#4422=ORIENTED_EDGE('',*,*,#13054,.F.); -#4423=ORIENTED_EDGE('',*,*,#13055,.T.); -#4424=ORIENTED_EDGE('',*,*,#13056,.T.); -#4425=ORIENTED_EDGE('',*,*,#13057,.T.); -#4426=ORIENTED_EDGE('',*,*,#13058,.F.); -#4427=ORIENTED_EDGE('',*,*,#13059,.T.); -#4428=ORIENTED_EDGE('',*,*,#13060,.T.); -#4429=ORIENTED_EDGE('',*,*,#13061,.T.); -#4430=ORIENTED_EDGE('',*,*,#13062,.F.); -#4431=ORIENTED_EDGE('',*,*,#13063,.T.); -#4432=ORIENTED_EDGE('',*,*,#13064,.T.); -#4433=ORIENTED_EDGE('',*,*,#13065,.T.); -#4434=ORIENTED_EDGE('',*,*,#13066,.F.); -#4435=ORIENTED_EDGE('',*,*,#13067,.T.); -#4436=ORIENTED_EDGE('',*,*,#13068,.T.); -#4437=ORIENTED_EDGE('',*,*,#13069,.T.); -#4438=ORIENTED_EDGE('',*,*,#13070,.F.); -#4439=ORIENTED_EDGE('',*,*,#13071,.T.); -#4440=ORIENTED_EDGE('',*,*,#13072,.T.); -#4441=ORIENTED_EDGE('',*,*,#13073,.T.); -#4442=ORIENTED_EDGE('',*,*,#13074,.F.); -#4443=ORIENTED_EDGE('',*,*,#13075,.T.); -#4444=ORIENTED_EDGE('',*,*,#13076,.T.); -#4445=ORIENTED_EDGE('',*,*,#13077,.T.); -#4446=ORIENTED_EDGE('',*,*,#13078,.F.); -#4447=ORIENTED_EDGE('',*,*,#13079,.T.); -#4448=ORIENTED_EDGE('',*,*,#13080,.T.); -#4449=ORIENTED_EDGE('',*,*,#13081,.T.); -#4450=ORIENTED_EDGE('',*,*,#13082,.F.); -#4451=ORIENTED_EDGE('',*,*,#13083,.T.); -#4452=ORIENTED_EDGE('',*,*,#13084,.T.); -#4453=ORIENTED_EDGE('',*,*,#13085,.T.); -#4454=ORIENTED_EDGE('',*,*,#13086,.F.); -#4455=ORIENTED_EDGE('',*,*,#13087,.T.); -#4456=ORIENTED_EDGE('',*,*,#13088,.T.); -#4457=ORIENTED_EDGE('',*,*,#13089,.T.); -#4458=ORIENTED_EDGE('',*,*,#13090,.F.); -#4459=ORIENTED_EDGE('',*,*,#13091,.T.); -#4460=ORIENTED_EDGE('',*,*,#13092,.T.); -#4461=ORIENTED_EDGE('',*,*,#13093,.T.); -#4462=ORIENTED_EDGE('',*,*,#13094,.F.); -#4463=ORIENTED_EDGE('',*,*,#13095,.T.); -#4464=ORIENTED_EDGE('',*,*,#13096,.T.); -#4465=ORIENTED_EDGE('',*,*,#13097,.T.); -#4466=ORIENTED_EDGE('',*,*,#13098,.F.); -#4467=ORIENTED_EDGE('',*,*,#13099,.T.); -#4468=ORIENTED_EDGE('',*,*,#13100,.T.); -#4469=ORIENTED_EDGE('',*,*,#13101,.T.); -#4470=ORIENTED_EDGE('',*,*,#13102,.F.); -#4471=ORIENTED_EDGE('',*,*,#13103,.T.); -#4472=ORIENTED_EDGE('',*,*,#13104,.T.); -#4473=ORIENTED_EDGE('',*,*,#13105,.T.); -#4474=ORIENTED_EDGE('',*,*,#13106,.F.); -#4475=ORIENTED_EDGE('',*,*,#13107,.T.); -#4476=ORIENTED_EDGE('',*,*,#13108,.T.); -#4477=ORIENTED_EDGE('',*,*,#13109,.T.); -#4478=ORIENTED_EDGE('',*,*,#13110,.F.); -#4479=ORIENTED_EDGE('',*,*,#13111,.T.); -#4480=ORIENTED_EDGE('',*,*,#13112,.T.); -#4481=ORIENTED_EDGE('',*,*,#13113,.T.); -#4482=ORIENTED_EDGE('',*,*,#13114,.F.); -#4483=ORIENTED_EDGE('',*,*,#13115,.T.); -#4484=ORIENTED_EDGE('',*,*,#13116,.T.); -#4485=ORIENTED_EDGE('',*,*,#13117,.T.); -#4486=ORIENTED_EDGE('',*,*,#13118,.F.); -#4487=ORIENTED_EDGE('',*,*,#13119,.T.); -#4488=ORIENTED_EDGE('',*,*,#13120,.T.); -#4489=ORIENTED_EDGE('',*,*,#13121,.T.); -#4490=ORIENTED_EDGE('',*,*,#13122,.F.); -#4491=ORIENTED_EDGE('',*,*,#13123,.T.); -#4492=ORIENTED_EDGE('',*,*,#13124,.T.); -#4493=ORIENTED_EDGE('',*,*,#13125,.T.); -#4494=ORIENTED_EDGE('',*,*,#13126,.F.); -#4495=ORIENTED_EDGE('',*,*,#13127,.T.); -#4496=ORIENTED_EDGE('',*,*,#13128,.T.); -#4497=ORIENTED_EDGE('',*,*,#13129,.T.); -#4498=ORIENTED_EDGE('',*,*,#13130,.F.); -#4499=ORIENTED_EDGE('',*,*,#13131,.T.); -#4500=ORIENTED_EDGE('',*,*,#13132,.T.); -#4501=ORIENTED_EDGE('',*,*,#13133,.T.); -#4502=ORIENTED_EDGE('',*,*,#13134,.F.); -#4503=ORIENTED_EDGE('',*,*,#13135,.T.); -#4504=ORIENTED_EDGE('',*,*,#13136,.T.); -#4505=ORIENTED_EDGE('',*,*,#13137,.T.); -#4506=ORIENTED_EDGE('',*,*,#13138,.F.); -#4507=ORIENTED_EDGE('',*,*,#13139,.T.); -#4508=ORIENTED_EDGE('',*,*,#13140,.T.); -#4509=ORIENTED_EDGE('',*,*,#13141,.T.); -#4510=ORIENTED_EDGE('',*,*,#13142,.F.); -#4511=ORIENTED_EDGE('',*,*,#13143,.T.); -#4512=ORIENTED_EDGE('',*,*,#13144,.T.); -#4513=ORIENTED_EDGE('',*,*,#13145,.T.); -#4514=ORIENTED_EDGE('',*,*,#13146,.F.); -#4515=ORIENTED_EDGE('',*,*,#13147,.T.); -#4516=ORIENTED_EDGE('',*,*,#13148,.T.); -#4517=ORIENTED_EDGE('',*,*,#13149,.T.); -#4518=ORIENTED_EDGE('',*,*,#13150,.F.); -#4519=ORIENTED_EDGE('',*,*,#13151,.T.); -#4520=ORIENTED_EDGE('',*,*,#13152,.T.); -#4521=ORIENTED_EDGE('',*,*,#13153,.F.); -#4522=ORIENTED_EDGE('',*,*,#13154,.F.); -#4523=ORIENTED_EDGE('',*,*,#13155,.F.); -#4524=ORIENTED_EDGE('',*,*,#13156,.F.); -#4525=ORIENTED_EDGE('',*,*,#13157,.T.); -#4526=ORIENTED_EDGE('',*,*,#13158,.F.); -#4527=ORIENTED_EDGE('',*,*,#13159,.F.); -#4528=ORIENTED_EDGE('',*,*,#13160,.T.); -#4529=ORIENTED_EDGE('',*,*,#13161,.T.); -#4530=ORIENTED_EDGE('',*,*,#13162,.T.); -#4531=ORIENTED_EDGE('',*,*,#13163,.T.); -#4532=ORIENTED_EDGE('',*,*,#13164,.T.); -#4533=ORIENTED_EDGE('',*,*,#13165,.T.); -#4534=ORIENTED_EDGE('',*,*,#13166,.F.); -#4535=ORIENTED_EDGE('',*,*,#13167,.T.); -#4536=ORIENTED_EDGE('',*,*,#13168,.T.); -#4537=ORIENTED_EDGE('',*,*,#13169,.T.); -#4538=ORIENTED_EDGE('',*,*,#13170,.T.); -#4539=ORIENTED_EDGE('',*,*,#13171,.T.); -#4540=ORIENTED_EDGE('',*,*,#13172,.T.); -#4541=ORIENTED_EDGE('',*,*,#13173,.T.); -#4542=ORIENTED_EDGE('',*,*,#13174,.F.); -#4543=ORIENTED_EDGE('',*,*,#13175,.T.); -#4544=ORIENTED_EDGE('',*,*,#13176,.T.); -#4545=ORIENTED_EDGE('',*,*,#13177,.T.); -#4546=ORIENTED_EDGE('',*,*,#13178,.T.); -#4547=ORIENTED_EDGE('',*,*,#13179,.T.); -#4548=ORIENTED_EDGE('',*,*,#13180,.T.); -#4549=ORIENTED_EDGE('',*,*,#13181,.T.); -#4550=ORIENTED_EDGE('',*,*,#13182,.F.); -#4551=ORIENTED_EDGE('',*,*,#13183,.T.); -#4552=ORIENTED_EDGE('',*,*,#13184,.T.); -#4553=ORIENTED_EDGE('',*,*,#13185,.T.); -#4554=ORIENTED_EDGE('',*,*,#13186,.T.); -#4555=ORIENTED_EDGE('',*,*,#13187,.T.); -#4556=ORIENTED_EDGE('',*,*,#13188,.T.); -#4557=ORIENTED_EDGE('',*,*,#13189,.T.); -#4558=ORIENTED_EDGE('',*,*,#13190,.F.); -#4559=ORIENTED_EDGE('',*,*,#13191,.T.); -#4560=ORIENTED_EDGE('',*,*,#13192,.T.); -#4561=ORIENTED_EDGE('',*,*,#13193,.T.); -#4562=ORIENTED_EDGE('',*,*,#13194,.T.); -#4563=ORIENTED_EDGE('',*,*,#13195,.T.); -#4564=ORIENTED_EDGE('',*,*,#13196,.T.); -#4565=ORIENTED_EDGE('',*,*,#13197,.T.); -#4566=ORIENTED_EDGE('',*,*,#13198,.F.); -#4567=ORIENTED_EDGE('',*,*,#13199,.T.); -#4568=ORIENTED_EDGE('',*,*,#13200,.T.); -#4569=ORIENTED_EDGE('',*,*,#13201,.T.); -#4570=ORIENTED_EDGE('',*,*,#13202,.T.); -#4571=ORIENTED_EDGE('',*,*,#13203,.T.); -#4572=ORIENTED_EDGE('',*,*,#13204,.T.); -#4573=ORIENTED_EDGE('',*,*,#13205,.T.); -#4574=ORIENTED_EDGE('',*,*,#13206,.F.); -#4575=ORIENTED_EDGE('',*,*,#13207,.T.); -#4576=ORIENTED_EDGE('',*,*,#13208,.T.); -#4577=ORIENTED_EDGE('',*,*,#13209,.T.); -#4578=ORIENTED_EDGE('',*,*,#13210,.T.); -#4579=ORIENTED_EDGE('',*,*,#13211,.T.); -#4580=ORIENTED_EDGE('',*,*,#13212,.T.); -#4581=ORIENTED_EDGE('',*,*,#13213,.T.); -#4582=ORIENTED_EDGE('',*,*,#13214,.F.); -#4583=ORIENTED_EDGE('',*,*,#13215,.T.); -#4584=ORIENTED_EDGE('',*,*,#13216,.T.); -#4585=ORIENTED_EDGE('',*,*,#13217,.T.); -#4586=ORIENTED_EDGE('',*,*,#13218,.T.); -#4587=ORIENTED_EDGE('',*,*,#13219,.T.); -#4588=ORIENTED_EDGE('',*,*,#13220,.T.); -#4589=ORIENTED_EDGE('',*,*,#13221,.T.); -#4590=ORIENTED_EDGE('',*,*,#13222,.F.); -#4591=ORIENTED_EDGE('',*,*,#13223,.T.); -#4592=ORIENTED_EDGE('',*,*,#13224,.T.); -#4593=ORIENTED_EDGE('',*,*,#13225,.T.); -#4594=ORIENTED_EDGE('',*,*,#13226,.T.); -#4595=ORIENTED_EDGE('',*,*,#13227,.T.); -#4596=ORIENTED_EDGE('',*,*,#13228,.T.); -#4597=ORIENTED_EDGE('',*,*,#13229,.T.); -#4598=ORIENTED_EDGE('',*,*,#13230,.F.); -#4599=ORIENTED_EDGE('',*,*,#13231,.T.); -#4600=ORIENTED_EDGE('',*,*,#13232,.T.); -#4601=ORIENTED_EDGE('',*,*,#13233,.T.); -#4602=ORIENTED_EDGE('',*,*,#13234,.T.); -#4603=ORIENTED_EDGE('',*,*,#13235,.T.); -#4604=ORIENTED_EDGE('',*,*,#13236,.T.); -#4605=ORIENTED_EDGE('',*,*,#13237,.T.); -#4606=ORIENTED_EDGE('',*,*,#13238,.F.); -#4607=ORIENTED_EDGE('',*,*,#13239,.T.); -#4608=ORIENTED_EDGE('',*,*,#13240,.T.); -#4609=ORIENTED_EDGE('',*,*,#13241,.T.); -#4610=ORIENTED_EDGE('',*,*,#13242,.T.); -#4611=ORIENTED_EDGE('',*,*,#13243,.T.); -#4612=ORIENTED_EDGE('',*,*,#13244,.T.); -#4613=ORIENTED_EDGE('',*,*,#13245,.T.); -#4614=ORIENTED_EDGE('',*,*,#13246,.F.); -#4615=ORIENTED_EDGE('',*,*,#13247,.T.); -#4616=ORIENTED_EDGE('',*,*,#13248,.T.); -#4617=ORIENTED_EDGE('',*,*,#13249,.T.); -#4618=ORIENTED_EDGE('',*,*,#13250,.T.); -#4619=ORIENTED_EDGE('',*,*,#13251,.T.); -#4620=ORIENTED_EDGE('',*,*,#13252,.T.); -#4621=ORIENTED_EDGE('',*,*,#13253,.T.); -#4622=ORIENTED_EDGE('',*,*,#13254,.F.); -#4623=ORIENTED_EDGE('',*,*,#13255,.T.); -#4624=ORIENTED_EDGE('',*,*,#13256,.T.); -#4625=ORIENTED_EDGE('',*,*,#13257,.T.); -#4626=ORIENTED_EDGE('',*,*,#13258,.T.); -#4627=ORIENTED_EDGE('',*,*,#13259,.T.); -#4628=ORIENTED_EDGE('',*,*,#13260,.T.); -#4629=ORIENTED_EDGE('',*,*,#13261,.T.); -#4630=ORIENTED_EDGE('',*,*,#13262,.F.); -#4631=ORIENTED_EDGE('',*,*,#13263,.T.); -#4632=ORIENTED_EDGE('',*,*,#13264,.T.); -#4633=ORIENTED_EDGE('',*,*,#13265,.T.); -#4634=ORIENTED_EDGE('',*,*,#13266,.T.); -#4635=ORIENTED_EDGE('',*,*,#13267,.T.); -#4636=ORIENTED_EDGE('',*,*,#13268,.T.); -#4637=ORIENTED_EDGE('',*,*,#13269,.T.); -#4638=ORIENTED_EDGE('',*,*,#13270,.F.); -#4639=ORIENTED_EDGE('',*,*,#13271,.T.); -#4640=ORIENTED_EDGE('',*,*,#13272,.T.); -#4641=ORIENTED_EDGE('',*,*,#13273,.T.); -#4642=ORIENTED_EDGE('',*,*,#13274,.T.); -#4643=ORIENTED_EDGE('',*,*,#13275,.T.); -#4644=ORIENTED_EDGE('',*,*,#13276,.T.); -#4645=ORIENTED_EDGE('',*,*,#13277,.T.); -#4646=ORIENTED_EDGE('',*,*,#13278,.F.); -#4647=ORIENTED_EDGE('',*,*,#13279,.T.); -#4648=ORIENTED_EDGE('',*,*,#13280,.T.); -#4649=ORIENTED_EDGE('',*,*,#13281,.T.); -#4650=ORIENTED_EDGE('',*,*,#13282,.T.); -#4651=ORIENTED_EDGE('',*,*,#13283,.T.); -#4652=ORIENTED_EDGE('',*,*,#13284,.T.); -#4653=ORIENTED_EDGE('',*,*,#13285,.T.); -#4654=ORIENTED_EDGE('',*,*,#13286,.F.); -#4655=ORIENTED_EDGE('',*,*,#13287,.T.); -#4656=ORIENTED_EDGE('',*,*,#13288,.T.); -#4657=ORIENTED_EDGE('',*,*,#13289,.T.); -#4658=ORIENTED_EDGE('',*,*,#13290,.T.); -#4659=ORIENTED_EDGE('',*,*,#13291,.T.); -#4660=ORIENTED_EDGE('',*,*,#13292,.T.); -#4661=ORIENTED_EDGE('',*,*,#13293,.T.); -#4662=ORIENTED_EDGE('',*,*,#13294,.F.); -#4663=ORIENTED_EDGE('',*,*,#13295,.T.); -#4664=ORIENTED_EDGE('',*,*,#13296,.T.); -#4665=ORIENTED_EDGE('',*,*,#13297,.T.); -#4666=ORIENTED_EDGE('',*,*,#13298,.T.); -#4667=ORIENTED_EDGE('',*,*,#13299,.T.); -#4668=ORIENTED_EDGE('',*,*,#13300,.T.); -#4669=ORIENTED_EDGE('',*,*,#13301,.T.); -#4670=ORIENTED_EDGE('',*,*,#13302,.F.); -#4671=ORIENTED_EDGE('',*,*,#13303,.T.); -#4672=ORIENTED_EDGE('',*,*,#13304,.T.); -#4673=ORIENTED_EDGE('',*,*,#13305,.T.); -#4674=ORIENTED_EDGE('',*,*,#13306,.T.); -#4675=ORIENTED_EDGE('',*,*,#13307,.T.); -#4676=ORIENTED_EDGE('',*,*,#13308,.T.); -#4677=ORIENTED_EDGE('',*,*,#13309,.T.); -#4678=ORIENTED_EDGE('',*,*,#13310,.F.); -#4679=ORIENTED_EDGE('',*,*,#13311,.T.); -#4680=ORIENTED_EDGE('',*,*,#13312,.T.); -#4681=ORIENTED_EDGE('',*,*,#13313,.T.); -#4682=ORIENTED_EDGE('',*,*,#13314,.T.); -#4683=ORIENTED_EDGE('',*,*,#13315,.T.); -#4684=ORIENTED_EDGE('',*,*,#13316,.T.); -#4685=ORIENTED_EDGE('',*,*,#13317,.T.); -#4686=ORIENTED_EDGE('',*,*,#13318,.F.); -#4687=ORIENTED_EDGE('',*,*,#13319,.F.); -#4688=ORIENTED_EDGE('',*,*,#13320,.F.); -#4689=ORIENTED_EDGE('',*,*,#13321,.T.); -#4690=ORIENTED_EDGE('',*,*,#13322,.T.); -#4691=ORIENTED_EDGE('',*,*,#13323,.T.); -#4692=ORIENTED_EDGE('',*,*,#13324,.T.); -#4693=ORIENTED_EDGE('',*,*,#13325,.T.); -#4694=ORIENTED_EDGE('',*,*,#13326,.F.); -#4695=ORIENTED_EDGE('',*,*,#13327,.T.); -#4696=ORIENTED_EDGE('',*,*,#13328,.T.); -#4697=ORIENTED_EDGE('',*,*,#13329,.T.); -#4698=ORIENTED_EDGE('',*,*,#13330,.T.); -#4699=ORIENTED_EDGE('',*,*,#13331,.T.); -#4700=ORIENTED_EDGE('',*,*,#13332,.T.); -#4701=ORIENTED_EDGE('',*,*,#13333,.T.); -#4702=ORIENTED_EDGE('',*,*,#13334,.F.); -#4703=ORIENTED_EDGE('',*,*,#13335,.T.); -#4704=ORIENTED_EDGE('',*,*,#13336,.T.); -#4705=ORIENTED_EDGE('',*,*,#13337,.T.); -#4706=ORIENTED_EDGE('',*,*,#13338,.T.); -#4707=ORIENTED_EDGE('',*,*,#13339,.T.); -#4708=ORIENTED_EDGE('',*,*,#13340,.T.); -#4709=ORIENTED_EDGE('',*,*,#13341,.T.); -#4710=ORIENTED_EDGE('',*,*,#13342,.F.); -#4711=ORIENTED_EDGE('',*,*,#13343,.T.); -#4712=ORIENTED_EDGE('',*,*,#13344,.T.); -#4713=ORIENTED_EDGE('',*,*,#13345,.T.); -#4714=ORIENTED_EDGE('',*,*,#13346,.T.); -#4715=ORIENTED_EDGE('',*,*,#13347,.T.); -#4716=ORIENTED_EDGE('',*,*,#13348,.T.); -#4717=ORIENTED_EDGE('',*,*,#13349,.T.); -#4718=ORIENTED_EDGE('',*,*,#13350,.F.); -#4719=ORIENTED_EDGE('',*,*,#13351,.T.); -#4720=ORIENTED_EDGE('',*,*,#13352,.T.); -#4721=ORIENTED_EDGE('',*,*,#13353,.T.); -#4722=ORIENTED_EDGE('',*,*,#13354,.T.); -#4723=ORIENTED_EDGE('',*,*,#13355,.T.); -#4724=ORIENTED_EDGE('',*,*,#13356,.T.); -#4725=ORIENTED_EDGE('',*,*,#13357,.T.); -#4726=ORIENTED_EDGE('',*,*,#13358,.F.); -#4727=ORIENTED_EDGE('',*,*,#13359,.T.); -#4728=ORIENTED_EDGE('',*,*,#13360,.T.); -#4729=ORIENTED_EDGE('',*,*,#13361,.T.); -#4730=ORIENTED_EDGE('',*,*,#13362,.T.); -#4731=ORIENTED_EDGE('',*,*,#13363,.T.); -#4732=ORIENTED_EDGE('',*,*,#13364,.T.); -#4733=ORIENTED_EDGE('',*,*,#13365,.T.); -#4734=ORIENTED_EDGE('',*,*,#13366,.F.); -#4735=ORIENTED_EDGE('',*,*,#13367,.T.); -#4736=ORIENTED_EDGE('',*,*,#13368,.T.); -#4737=ORIENTED_EDGE('',*,*,#13369,.T.); -#4738=ORIENTED_EDGE('',*,*,#13370,.T.); -#4739=ORIENTED_EDGE('',*,*,#13371,.T.); -#4740=ORIENTED_EDGE('',*,*,#13372,.T.); -#4741=ORIENTED_EDGE('',*,*,#13373,.T.); -#4742=ORIENTED_EDGE('',*,*,#13374,.F.); -#4743=ORIENTED_EDGE('',*,*,#13375,.T.); -#4744=ORIENTED_EDGE('',*,*,#13376,.T.); -#4745=ORIENTED_EDGE('',*,*,#13377,.T.); -#4746=ORIENTED_EDGE('',*,*,#13378,.T.); -#4747=ORIENTED_EDGE('',*,*,#13379,.T.); -#4748=ORIENTED_EDGE('',*,*,#13380,.T.); -#4749=ORIENTED_EDGE('',*,*,#13381,.T.); -#4750=ORIENTED_EDGE('',*,*,#13382,.F.); -#4751=ORIENTED_EDGE('',*,*,#13383,.T.); -#4752=ORIENTED_EDGE('',*,*,#13384,.T.); -#4753=ORIENTED_EDGE('',*,*,#13385,.T.); -#4754=ORIENTED_EDGE('',*,*,#13386,.T.); -#4755=ORIENTED_EDGE('',*,*,#13387,.T.); -#4756=ORIENTED_EDGE('',*,*,#13388,.T.); -#4757=ORIENTED_EDGE('',*,*,#13389,.T.); -#4758=ORIENTED_EDGE('',*,*,#13390,.F.); -#4759=ORIENTED_EDGE('',*,*,#13391,.T.); -#4760=ORIENTED_EDGE('',*,*,#13392,.T.); -#4761=ORIENTED_EDGE('',*,*,#13393,.T.); -#4762=ORIENTED_EDGE('',*,*,#13394,.T.); -#4763=ORIENTED_EDGE('',*,*,#13395,.T.); -#4764=ORIENTED_EDGE('',*,*,#13396,.T.); -#4765=ORIENTED_EDGE('',*,*,#13397,.T.); -#4766=ORIENTED_EDGE('',*,*,#13398,.F.); -#4767=ORIENTED_EDGE('',*,*,#13399,.T.); -#4768=ORIENTED_EDGE('',*,*,#13400,.T.); -#4769=ORIENTED_EDGE('',*,*,#13401,.T.); -#4770=ORIENTED_EDGE('',*,*,#13402,.T.); -#4771=ORIENTED_EDGE('',*,*,#13403,.T.); -#4772=ORIENTED_EDGE('',*,*,#13404,.T.); -#4773=ORIENTED_EDGE('',*,*,#13405,.T.); -#4774=ORIENTED_EDGE('',*,*,#13406,.F.); -#4775=ORIENTED_EDGE('',*,*,#13407,.T.); -#4776=ORIENTED_EDGE('',*,*,#13408,.T.); -#4777=ORIENTED_EDGE('',*,*,#13409,.T.); -#4778=ORIENTED_EDGE('',*,*,#13410,.T.); -#4779=ORIENTED_EDGE('',*,*,#13411,.T.); -#4780=ORIENTED_EDGE('',*,*,#13412,.T.); -#4781=ORIENTED_EDGE('',*,*,#13413,.T.); -#4782=ORIENTED_EDGE('',*,*,#13414,.F.); -#4783=ORIENTED_EDGE('',*,*,#13415,.T.); -#4784=ORIENTED_EDGE('',*,*,#13416,.T.); -#4785=ORIENTED_EDGE('',*,*,#13417,.T.); -#4786=ORIENTED_EDGE('',*,*,#13418,.T.); -#4787=ORIENTED_EDGE('',*,*,#13419,.T.); -#4788=ORIENTED_EDGE('',*,*,#13420,.T.); -#4789=ORIENTED_EDGE('',*,*,#13421,.T.); -#4790=ORIENTED_EDGE('',*,*,#13422,.F.); -#4791=ORIENTED_EDGE('',*,*,#13423,.T.); -#4792=ORIENTED_EDGE('',*,*,#13424,.T.); -#4793=ORIENTED_EDGE('',*,*,#13425,.T.); -#4794=ORIENTED_EDGE('',*,*,#13426,.T.); -#4795=ORIENTED_EDGE('',*,*,#13427,.T.); -#4796=ORIENTED_EDGE('',*,*,#13428,.T.); -#4797=ORIENTED_EDGE('',*,*,#13429,.T.); -#4798=ORIENTED_EDGE('',*,*,#13430,.F.); -#4799=ORIENTED_EDGE('',*,*,#13431,.T.); -#4800=ORIENTED_EDGE('',*,*,#13432,.T.); -#4801=ORIENTED_EDGE('',*,*,#13433,.T.); -#4802=ORIENTED_EDGE('',*,*,#13434,.T.); -#4803=ORIENTED_EDGE('',*,*,#13435,.T.); -#4804=ORIENTED_EDGE('',*,*,#13436,.T.); -#4805=ORIENTED_EDGE('',*,*,#13437,.T.); -#4806=ORIENTED_EDGE('',*,*,#13438,.F.); -#4807=ORIENTED_EDGE('',*,*,#13439,.T.); -#4808=ORIENTED_EDGE('',*,*,#13440,.T.); -#4809=ORIENTED_EDGE('',*,*,#13441,.T.); -#4810=ORIENTED_EDGE('',*,*,#13442,.T.); -#4811=ORIENTED_EDGE('',*,*,#13443,.T.); -#4812=ORIENTED_EDGE('',*,*,#13444,.T.); -#4813=ORIENTED_EDGE('',*,*,#13445,.T.); -#4814=ORIENTED_EDGE('',*,*,#13446,.F.); -#4815=ORIENTED_EDGE('',*,*,#13447,.T.); -#4816=ORIENTED_EDGE('',*,*,#13448,.T.); -#4817=ORIENTED_EDGE('',*,*,#13449,.T.); -#4818=ORIENTED_EDGE('',*,*,#13450,.T.); -#4819=ORIENTED_EDGE('',*,*,#13451,.T.); -#4820=ORIENTED_EDGE('',*,*,#13452,.T.); -#4821=ORIENTED_EDGE('',*,*,#13453,.T.); -#4822=ORIENTED_EDGE('',*,*,#13454,.F.); -#4823=ORIENTED_EDGE('',*,*,#13455,.T.); -#4824=ORIENTED_EDGE('',*,*,#13456,.T.); -#4825=ORIENTED_EDGE('',*,*,#13457,.T.); -#4826=ORIENTED_EDGE('',*,*,#13458,.T.); -#4827=ORIENTED_EDGE('',*,*,#13459,.T.); -#4828=ORIENTED_EDGE('',*,*,#13460,.T.); -#4829=ORIENTED_EDGE('',*,*,#13461,.T.); -#4830=ORIENTED_EDGE('',*,*,#13462,.F.); -#4831=ORIENTED_EDGE('',*,*,#13463,.T.); -#4832=ORIENTED_EDGE('',*,*,#13464,.T.); -#4833=ORIENTED_EDGE('',*,*,#13465,.T.); -#4834=ORIENTED_EDGE('',*,*,#13466,.T.); -#4835=ORIENTED_EDGE('',*,*,#13467,.T.); -#4836=ORIENTED_EDGE('',*,*,#13468,.T.); -#4837=ORIENTED_EDGE('',*,*,#13469,.T.); -#4838=ORIENTED_EDGE('',*,*,#13470,.F.); -#4839=ORIENTED_EDGE('',*,*,#13471,.T.); -#4840=ORIENTED_EDGE('',*,*,#13472,.T.); -#4841=ORIENTED_EDGE('',*,*,#13473,.T.); -#4842=ORIENTED_EDGE('',*,*,#13474,.T.); -#4843=ORIENTED_EDGE('',*,*,#13475,.T.); -#4844=ORIENTED_EDGE('',*,*,#13476,.T.); -#4845=ORIENTED_EDGE('',*,*,#13477,.T.); -#4846=ORIENTED_EDGE('',*,*,#13478,.F.); -#4847=ORIENTED_EDGE('',*,*,#13479,.T.); -#4848=ORIENTED_EDGE('',*,*,#13480,.T.); -#4849=ORIENTED_EDGE('',*,*,#13481,.F.); -#4850=ORIENTED_EDGE('',*,*,#13482,.T.); -#4851=ORIENTED_EDGE('',*,*,#13483,.F.); -#4852=ORIENTED_EDGE('',*,*,#13484,.F.); -#4853=ORIENTED_EDGE('',*,*,#12991,.T.); -#4854=ORIENTED_EDGE('',*,*,#13485,.T.); -#4855=ORIENTED_EDGE('',*,*,#13321,.F.); -#4856=ORIENTED_EDGE('',*,*,#12993,.F.); -#4857=ORIENTED_EDGE('',*,*,#13486,.T.); -#4858=ORIENTED_EDGE('',*,*,#13319,.T.); -#4859=ORIENTED_EDGE('',*,*,#13487,.F.); -#4860=ORIENTED_EDGE('',*,*,#13157,.F.); -#4861=ORIENTED_EDGE('',*,*,#13488,.T.); -#4862=ORIENTED_EDGE('',*,*,#13155,.T.); -#4863=ORIENTED_EDGE('',*,*,#13489,.F.); -#4864=ORIENTED_EDGE('',*,*,#13490,.F.); -#4865=ORIENTED_EDGE('',*,*,#13483,.T.); -#4866=ORIENTED_EDGE('',*,*,#13491,.T.); -#4867=ORIENTED_EDGE('',*,*,#12829,.F.); -#4868=ORIENTED_EDGE('',*,*,#12831,.T.); -#4869=ORIENTED_EDGE('',*,*,#13492,.T.); -#4870=ORIENTED_EDGE('',*,*,#13153,.T.); -#4871=ORIENTED_EDGE('',*,*,#13493,.F.); -#4872=ORIENTED_EDGE('',*,*,#13159,.T.); -#4873=ORIENTED_EDGE('',*,*,#13494,.T.); -#4874=ORIENTED_EDGE('',*,*,#13481,.T.); -#4875=ORIENTED_EDGE('',*,*,#13495,.F.); -#4876=ORIENTED_EDGE('',*,*,#13496,.F.); -#4877=ORIENTED_EDGE('',*,*,#12989,.F.); -#4878=ORIENTED_EDGE('',*,*,#13497,.T.); -#4879=ORIENTED_EDGE('',*,*,#12995,.F.); -#4880=ORIENTED_EDGE('',*,*,#13498,.F.); -#4881=ORIENTED_EDGE('',*,*,#13317,.F.); -#4882=ORIENTED_EDGE('',*,*,#13499,.T.); -#4883=ORIENTED_EDGE('',*,*,#13323,.F.); -#4884=ORIENTED_EDGE('',*,*,#13500,.F.); -#4885=ORIENTED_EDGE('',*,*,#13329,.F.); -#4886=ORIENTED_EDGE('',*,*,#13501,.T.); -#4887=ORIENTED_EDGE('',*,*,#13311,.F.); -#4888=ORIENTED_EDGE('',*,*,#13502,.F.); -#4889=ORIENTED_EDGE('',*,*,#13309,.F.); -#4890=ORIENTED_EDGE('',*,*,#13503,.F.); -#4891=ORIENTED_EDGE('',*,*,#13331,.F.); -#4892=ORIENTED_EDGE('',*,*,#13504,.F.); -#4893=ORIENTED_EDGE('',*,*,#13337,.F.); -#4894=ORIENTED_EDGE('',*,*,#13505,.T.); -#4895=ORIENTED_EDGE('',*,*,#13303,.F.); -#4896=ORIENTED_EDGE('',*,*,#13506,.F.); -#4897=ORIENTED_EDGE('',*,*,#13301,.F.); -#4898=ORIENTED_EDGE('',*,*,#13507,.F.); -#4899=ORIENTED_EDGE('',*,*,#13339,.F.); -#4900=ORIENTED_EDGE('',*,*,#13508,.F.); -#4901=ORIENTED_EDGE('',*,*,#13345,.F.); -#4902=ORIENTED_EDGE('',*,*,#13509,.T.); -#4903=ORIENTED_EDGE('',*,*,#13295,.F.); -#4904=ORIENTED_EDGE('',*,*,#13510,.F.); -#4905=ORIENTED_EDGE('',*,*,#13293,.F.); -#4906=ORIENTED_EDGE('',*,*,#13511,.F.); -#4907=ORIENTED_EDGE('',*,*,#13347,.F.); -#4908=ORIENTED_EDGE('',*,*,#13512,.F.); -#4909=ORIENTED_EDGE('',*,*,#13353,.F.); -#4910=ORIENTED_EDGE('',*,*,#13513,.T.); -#4911=ORIENTED_EDGE('',*,*,#13287,.F.); -#4912=ORIENTED_EDGE('',*,*,#13514,.F.); -#4913=ORIENTED_EDGE('',*,*,#13285,.F.); -#4914=ORIENTED_EDGE('',*,*,#13515,.F.); -#4915=ORIENTED_EDGE('',*,*,#13355,.F.); -#4916=ORIENTED_EDGE('',*,*,#13516,.F.); -#4917=ORIENTED_EDGE('',*,*,#13361,.F.); -#4918=ORIENTED_EDGE('',*,*,#13517,.T.); -#4919=ORIENTED_EDGE('',*,*,#13279,.F.); -#4920=ORIENTED_EDGE('',*,*,#13518,.F.); -#4921=ORIENTED_EDGE('',*,*,#13277,.F.); -#4922=ORIENTED_EDGE('',*,*,#13519,.F.); -#4923=ORIENTED_EDGE('',*,*,#13363,.F.); -#4924=ORIENTED_EDGE('',*,*,#13520,.F.); -#4925=ORIENTED_EDGE('',*,*,#13369,.F.); -#4926=ORIENTED_EDGE('',*,*,#13521,.T.); -#4927=ORIENTED_EDGE('',*,*,#13271,.F.); -#4928=ORIENTED_EDGE('',*,*,#13522,.F.); -#4929=ORIENTED_EDGE('',*,*,#13269,.F.); -#4930=ORIENTED_EDGE('',*,*,#13523,.F.); -#4931=ORIENTED_EDGE('',*,*,#13371,.F.); -#4932=ORIENTED_EDGE('',*,*,#13524,.F.); -#4933=ORIENTED_EDGE('',*,*,#13377,.F.); -#4934=ORIENTED_EDGE('',*,*,#13525,.T.); -#4935=ORIENTED_EDGE('',*,*,#13263,.F.); -#4936=ORIENTED_EDGE('',*,*,#13526,.F.); -#4937=ORIENTED_EDGE('',*,*,#13261,.F.); -#4938=ORIENTED_EDGE('',*,*,#13527,.F.); -#4939=ORIENTED_EDGE('',*,*,#13379,.F.); -#4940=ORIENTED_EDGE('',*,*,#13528,.F.); -#4941=ORIENTED_EDGE('',*,*,#13385,.F.); -#4942=ORIENTED_EDGE('',*,*,#13529,.T.); -#4943=ORIENTED_EDGE('',*,*,#13255,.F.); -#4944=ORIENTED_EDGE('',*,*,#13530,.F.); -#4945=ORIENTED_EDGE('',*,*,#13253,.F.); -#4946=ORIENTED_EDGE('',*,*,#13531,.F.); -#4947=ORIENTED_EDGE('',*,*,#13387,.F.); -#4948=ORIENTED_EDGE('',*,*,#13532,.F.); -#4949=ORIENTED_EDGE('',*,*,#13393,.F.); -#4950=ORIENTED_EDGE('',*,*,#13533,.T.); -#4951=ORIENTED_EDGE('',*,*,#13247,.F.); -#4952=ORIENTED_EDGE('',*,*,#13534,.F.); -#4953=ORIENTED_EDGE('',*,*,#13245,.F.); -#4954=ORIENTED_EDGE('',*,*,#13535,.F.); -#4955=ORIENTED_EDGE('',*,*,#13395,.F.); -#4956=ORIENTED_EDGE('',*,*,#13536,.F.); -#4957=ORIENTED_EDGE('',*,*,#13401,.F.); -#4958=ORIENTED_EDGE('',*,*,#13537,.T.); -#4959=ORIENTED_EDGE('',*,*,#13239,.F.); -#4960=ORIENTED_EDGE('',*,*,#13538,.F.); -#4961=ORIENTED_EDGE('',*,*,#13237,.F.); -#4962=ORIENTED_EDGE('',*,*,#13539,.F.); -#4963=ORIENTED_EDGE('',*,*,#13403,.F.); -#4964=ORIENTED_EDGE('',*,*,#13540,.F.); -#4965=ORIENTED_EDGE('',*,*,#13409,.F.); -#4966=ORIENTED_EDGE('',*,*,#13541,.T.); -#4967=ORIENTED_EDGE('',*,*,#13231,.F.); -#4968=ORIENTED_EDGE('',*,*,#13542,.F.); -#4969=ORIENTED_EDGE('',*,*,#13229,.F.); -#4970=ORIENTED_EDGE('',*,*,#13543,.F.); -#4971=ORIENTED_EDGE('',*,*,#13411,.F.); -#4972=ORIENTED_EDGE('',*,*,#13544,.F.); -#4973=ORIENTED_EDGE('',*,*,#13417,.F.); -#4974=ORIENTED_EDGE('',*,*,#13545,.T.); -#4975=ORIENTED_EDGE('',*,*,#13223,.F.); -#4976=ORIENTED_EDGE('',*,*,#13546,.F.); -#4977=ORIENTED_EDGE('',*,*,#13221,.F.); -#4978=ORIENTED_EDGE('',*,*,#13547,.F.); -#4979=ORIENTED_EDGE('',*,*,#13419,.F.); -#4980=ORIENTED_EDGE('',*,*,#13548,.F.); -#4981=ORIENTED_EDGE('',*,*,#13425,.F.); -#4982=ORIENTED_EDGE('',*,*,#13549,.T.); -#4983=ORIENTED_EDGE('',*,*,#13215,.F.); -#4984=ORIENTED_EDGE('',*,*,#13550,.F.); -#4985=ORIENTED_EDGE('',*,*,#13213,.F.); -#4986=ORIENTED_EDGE('',*,*,#13551,.F.); -#4987=ORIENTED_EDGE('',*,*,#13427,.F.); -#4988=ORIENTED_EDGE('',*,*,#13552,.F.); -#4989=ORIENTED_EDGE('',*,*,#13433,.F.); -#4990=ORIENTED_EDGE('',*,*,#13553,.T.); -#4991=ORIENTED_EDGE('',*,*,#13207,.F.); -#4992=ORIENTED_EDGE('',*,*,#13554,.F.); -#4993=ORIENTED_EDGE('',*,*,#13205,.F.); -#4994=ORIENTED_EDGE('',*,*,#13555,.F.); -#4995=ORIENTED_EDGE('',*,*,#13435,.F.); -#4996=ORIENTED_EDGE('',*,*,#13556,.F.); -#4997=ORIENTED_EDGE('',*,*,#13441,.F.); -#4998=ORIENTED_EDGE('',*,*,#13557,.T.); -#4999=ORIENTED_EDGE('',*,*,#13199,.F.); -#5000=ORIENTED_EDGE('',*,*,#13558,.F.); -#5001=ORIENTED_EDGE('',*,*,#13197,.F.); -#5002=ORIENTED_EDGE('',*,*,#13559,.F.); -#5003=ORIENTED_EDGE('',*,*,#13443,.F.); -#5004=ORIENTED_EDGE('',*,*,#13560,.F.); -#5005=ORIENTED_EDGE('',*,*,#13449,.F.); -#5006=ORIENTED_EDGE('',*,*,#13561,.T.); -#5007=ORIENTED_EDGE('',*,*,#13191,.F.); -#5008=ORIENTED_EDGE('',*,*,#13562,.F.); -#5009=ORIENTED_EDGE('',*,*,#13189,.F.); -#5010=ORIENTED_EDGE('',*,*,#13563,.F.); -#5011=ORIENTED_EDGE('',*,*,#13451,.F.); -#5012=ORIENTED_EDGE('',*,*,#13564,.F.); -#5013=ORIENTED_EDGE('',*,*,#13457,.F.); -#5014=ORIENTED_EDGE('',*,*,#13565,.T.); -#5015=ORIENTED_EDGE('',*,*,#13183,.F.); -#5016=ORIENTED_EDGE('',*,*,#13566,.F.); -#5017=ORIENTED_EDGE('',*,*,#13181,.F.); -#5018=ORIENTED_EDGE('',*,*,#13567,.F.); -#5019=ORIENTED_EDGE('',*,*,#13459,.F.); -#5020=ORIENTED_EDGE('',*,*,#13568,.F.); -#5021=ORIENTED_EDGE('',*,*,#13465,.F.); -#5022=ORIENTED_EDGE('',*,*,#13569,.T.); -#5023=ORIENTED_EDGE('',*,*,#13175,.F.); -#5024=ORIENTED_EDGE('',*,*,#13570,.F.); -#5025=ORIENTED_EDGE('',*,*,#13173,.F.); -#5026=ORIENTED_EDGE('',*,*,#13571,.F.); -#5027=ORIENTED_EDGE('',*,*,#13467,.F.); -#5028=ORIENTED_EDGE('',*,*,#13572,.F.); -#5029=ORIENTED_EDGE('',*,*,#13473,.F.); -#5030=ORIENTED_EDGE('',*,*,#13573,.T.); -#5031=ORIENTED_EDGE('',*,*,#13167,.F.); -#5032=ORIENTED_EDGE('',*,*,#13574,.F.); -#5033=ORIENTED_EDGE('',*,*,#13165,.F.); -#5034=ORIENTED_EDGE('',*,*,#13575,.F.); -#5035=ORIENTED_EDGE('',*,*,#13475,.F.); -#5036=ORIENTED_EDGE('',*,*,#13576,.F.); -#5037=ORIENTED_EDGE('',*,*,#13001,.F.); -#5038=ORIENTED_EDGE('',*,*,#13577,.T.); -#5039=ORIENTED_EDGE('',*,*,#12983,.F.); -#5040=ORIENTED_EDGE('',*,*,#13578,.F.); -#5041=ORIENTED_EDGE('',*,*,#12981,.F.); -#5042=ORIENTED_EDGE('',*,*,#13579,.F.); -#5043=ORIENTED_EDGE('',*,*,#13003,.F.); -#5044=ORIENTED_EDGE('',*,*,#13580,.F.); -#5045=ORIENTED_EDGE('',*,*,#13009,.F.); -#5046=ORIENTED_EDGE('',*,*,#13581,.T.); -#5047=ORIENTED_EDGE('',*,*,#12975,.F.); -#5048=ORIENTED_EDGE('',*,*,#13582,.F.); -#5049=ORIENTED_EDGE('',*,*,#12973,.F.); -#5050=ORIENTED_EDGE('',*,*,#13583,.F.); -#5051=ORIENTED_EDGE('',*,*,#13011,.F.); -#5052=ORIENTED_EDGE('',*,*,#13584,.F.); -#5053=ORIENTED_EDGE('',*,*,#13017,.F.); -#5054=ORIENTED_EDGE('',*,*,#13585,.T.); -#5055=ORIENTED_EDGE('',*,*,#12967,.F.); -#5056=ORIENTED_EDGE('',*,*,#13586,.F.); -#5057=ORIENTED_EDGE('',*,*,#12965,.F.); -#5058=ORIENTED_EDGE('',*,*,#13587,.F.); -#5059=ORIENTED_EDGE('',*,*,#13019,.F.); -#5060=ORIENTED_EDGE('',*,*,#13588,.F.); -#5061=ORIENTED_EDGE('',*,*,#13025,.F.); -#5062=ORIENTED_EDGE('',*,*,#13589,.T.); -#5063=ORIENTED_EDGE('',*,*,#12959,.F.); -#5064=ORIENTED_EDGE('',*,*,#13590,.F.); -#5065=ORIENTED_EDGE('',*,*,#12957,.F.); -#5066=ORIENTED_EDGE('',*,*,#13591,.F.); -#5067=ORIENTED_EDGE('',*,*,#13027,.F.); -#5068=ORIENTED_EDGE('',*,*,#13592,.F.); -#5069=ORIENTED_EDGE('',*,*,#13033,.F.); -#5070=ORIENTED_EDGE('',*,*,#13593,.T.); -#5071=ORIENTED_EDGE('',*,*,#12951,.F.); -#5072=ORIENTED_EDGE('',*,*,#13594,.F.); -#5073=ORIENTED_EDGE('',*,*,#12949,.F.); -#5074=ORIENTED_EDGE('',*,*,#13595,.F.); -#5075=ORIENTED_EDGE('',*,*,#13035,.F.); -#5076=ORIENTED_EDGE('',*,*,#13596,.F.); -#5077=ORIENTED_EDGE('',*,*,#13041,.F.); -#5078=ORIENTED_EDGE('',*,*,#13597,.T.); -#5079=ORIENTED_EDGE('',*,*,#12943,.F.); -#5080=ORIENTED_EDGE('',*,*,#13598,.F.); -#5081=ORIENTED_EDGE('',*,*,#12941,.F.); -#5082=ORIENTED_EDGE('',*,*,#13599,.F.); -#5083=ORIENTED_EDGE('',*,*,#13043,.F.); -#5084=ORIENTED_EDGE('',*,*,#13600,.F.); -#5085=ORIENTED_EDGE('',*,*,#13049,.F.); -#5086=ORIENTED_EDGE('',*,*,#13601,.T.); -#5087=ORIENTED_EDGE('',*,*,#12935,.F.); -#5088=ORIENTED_EDGE('',*,*,#13602,.F.); -#5089=ORIENTED_EDGE('',*,*,#12933,.F.); -#5090=ORIENTED_EDGE('',*,*,#13603,.F.); -#5091=ORIENTED_EDGE('',*,*,#13051,.F.); -#5092=ORIENTED_EDGE('',*,*,#13604,.F.); -#5093=ORIENTED_EDGE('',*,*,#13057,.F.); -#5094=ORIENTED_EDGE('',*,*,#13605,.T.); -#5095=ORIENTED_EDGE('',*,*,#12927,.F.); -#5096=ORIENTED_EDGE('',*,*,#13606,.F.); -#5097=ORIENTED_EDGE('',*,*,#12925,.F.); -#5098=ORIENTED_EDGE('',*,*,#13607,.F.); -#5099=ORIENTED_EDGE('',*,*,#13059,.F.); -#5100=ORIENTED_EDGE('',*,*,#13608,.F.); -#5101=ORIENTED_EDGE('',*,*,#13065,.F.); -#5102=ORIENTED_EDGE('',*,*,#13609,.T.); -#5103=ORIENTED_EDGE('',*,*,#12919,.F.); -#5104=ORIENTED_EDGE('',*,*,#13610,.F.); -#5105=ORIENTED_EDGE('',*,*,#12917,.F.); -#5106=ORIENTED_EDGE('',*,*,#13611,.F.); -#5107=ORIENTED_EDGE('',*,*,#13067,.F.); -#5108=ORIENTED_EDGE('',*,*,#13612,.F.); -#5109=ORIENTED_EDGE('',*,*,#13073,.F.); -#5110=ORIENTED_EDGE('',*,*,#13613,.T.); -#5111=ORIENTED_EDGE('',*,*,#12911,.F.); -#5112=ORIENTED_EDGE('',*,*,#13614,.F.); -#5113=ORIENTED_EDGE('',*,*,#12909,.F.); -#5114=ORIENTED_EDGE('',*,*,#13615,.F.); -#5115=ORIENTED_EDGE('',*,*,#13075,.F.); -#5116=ORIENTED_EDGE('',*,*,#13616,.F.); -#5117=ORIENTED_EDGE('',*,*,#13081,.F.); -#5118=ORIENTED_EDGE('',*,*,#13617,.T.); -#5119=ORIENTED_EDGE('',*,*,#12903,.F.); -#5120=ORIENTED_EDGE('',*,*,#13618,.F.); -#5121=ORIENTED_EDGE('',*,*,#12901,.F.); -#5122=ORIENTED_EDGE('',*,*,#13619,.F.); -#5123=ORIENTED_EDGE('',*,*,#13083,.F.); -#5124=ORIENTED_EDGE('',*,*,#13620,.F.); -#5125=ORIENTED_EDGE('',*,*,#13089,.F.); -#5126=ORIENTED_EDGE('',*,*,#13621,.T.); -#5127=ORIENTED_EDGE('',*,*,#12895,.F.); -#5128=ORIENTED_EDGE('',*,*,#13622,.F.); -#5129=ORIENTED_EDGE('',*,*,#12893,.F.); -#5130=ORIENTED_EDGE('',*,*,#13623,.F.); -#5131=ORIENTED_EDGE('',*,*,#13091,.F.); -#5132=ORIENTED_EDGE('',*,*,#13624,.F.); -#5133=ORIENTED_EDGE('',*,*,#13097,.F.); -#5134=ORIENTED_EDGE('',*,*,#13625,.T.); -#5135=ORIENTED_EDGE('',*,*,#12887,.F.); -#5136=ORIENTED_EDGE('',*,*,#13626,.F.); -#5137=ORIENTED_EDGE('',*,*,#12885,.F.); -#5138=ORIENTED_EDGE('',*,*,#13627,.F.); -#5139=ORIENTED_EDGE('',*,*,#13099,.F.); -#5140=ORIENTED_EDGE('',*,*,#13628,.F.); -#5141=ORIENTED_EDGE('',*,*,#13105,.F.); -#5142=ORIENTED_EDGE('',*,*,#13629,.T.); -#5143=ORIENTED_EDGE('',*,*,#12879,.F.); -#5144=ORIENTED_EDGE('',*,*,#13630,.F.); -#5145=ORIENTED_EDGE('',*,*,#12877,.F.); -#5146=ORIENTED_EDGE('',*,*,#13631,.F.); -#5147=ORIENTED_EDGE('',*,*,#13107,.F.); -#5148=ORIENTED_EDGE('',*,*,#13632,.F.); -#5149=ORIENTED_EDGE('',*,*,#13113,.F.); -#5150=ORIENTED_EDGE('',*,*,#13633,.T.); -#5151=ORIENTED_EDGE('',*,*,#12871,.F.); -#5152=ORIENTED_EDGE('',*,*,#13634,.F.); -#5153=ORIENTED_EDGE('',*,*,#12869,.F.); -#5154=ORIENTED_EDGE('',*,*,#13635,.F.); -#5155=ORIENTED_EDGE('',*,*,#13115,.F.); -#5156=ORIENTED_EDGE('',*,*,#13636,.F.); -#5157=ORIENTED_EDGE('',*,*,#13121,.F.); -#5158=ORIENTED_EDGE('',*,*,#13637,.T.); -#5159=ORIENTED_EDGE('',*,*,#12863,.F.); -#5160=ORIENTED_EDGE('',*,*,#13638,.F.); -#5161=ORIENTED_EDGE('',*,*,#12861,.F.); -#5162=ORIENTED_EDGE('',*,*,#13639,.F.); -#5163=ORIENTED_EDGE('',*,*,#13123,.F.); -#5164=ORIENTED_EDGE('',*,*,#13640,.F.); -#5165=ORIENTED_EDGE('',*,*,#13129,.F.); -#5166=ORIENTED_EDGE('',*,*,#13641,.T.); -#5167=ORIENTED_EDGE('',*,*,#12855,.F.); -#5168=ORIENTED_EDGE('',*,*,#13642,.F.); -#5169=ORIENTED_EDGE('',*,*,#12853,.F.); -#5170=ORIENTED_EDGE('',*,*,#13643,.F.); -#5171=ORIENTED_EDGE('',*,*,#13131,.F.); -#5172=ORIENTED_EDGE('',*,*,#13644,.F.); -#5173=ORIENTED_EDGE('',*,*,#13137,.F.); -#5174=ORIENTED_EDGE('',*,*,#13645,.T.); -#5175=ORIENTED_EDGE('',*,*,#12847,.F.); -#5176=ORIENTED_EDGE('',*,*,#13646,.F.); -#5177=ORIENTED_EDGE('',*,*,#12845,.F.); -#5178=ORIENTED_EDGE('',*,*,#13647,.F.); -#5179=ORIENTED_EDGE('',*,*,#13139,.F.); -#5180=ORIENTED_EDGE('',*,*,#13648,.F.); -#5181=ORIENTED_EDGE('',*,*,#12837,.F.); -#5182=ORIENTED_EDGE('',*,*,#13649,.F.); -#5183=ORIENTED_EDGE('',*,*,#13147,.F.); -#5184=ORIENTED_EDGE('',*,*,#13650,.F.); -#5185=ORIENTED_EDGE('',*,*,#13145,.F.); -#5186=ORIENTED_EDGE('',*,*,#13651,.T.); -#5187=ORIENTED_EDGE('',*,*,#12839,.F.); -#5188=ORIENTED_EDGE('',*,*,#13652,.F.); -#5189=ORIENTED_EDGE('',*,*,#13653,.T.); -#5190=ORIENTED_EDGE('',*,*,#13654,.T.); -#5191=ORIENTED_EDGE('',*,*,#13655,.T.); -#5192=ORIENTED_EDGE('',*,*,#13656,.F.); -#5193=ORIENTED_EDGE('',*,*,#13657,.T.); -#5194=ORIENTED_EDGE('',*,*,#13658,.T.); -#5195=ORIENTED_EDGE('',*,*,#13659,.T.); -#5196=ORIENTED_EDGE('',*,*,#13660,.F.); -#5197=ORIENTED_EDGE('',*,*,#13661,.T.); -#5198=ORIENTED_EDGE('',*,*,#13662,.T.); -#5199=ORIENTED_EDGE('',*,*,#13663,.T.); -#5200=ORIENTED_EDGE('',*,*,#13664,.F.); -#5201=ORIENTED_EDGE('',*,*,#13665,.T.); -#5202=ORIENTED_EDGE('',*,*,#13666,.T.); -#5203=ORIENTED_EDGE('',*,*,#13667,.T.); -#5204=ORIENTED_EDGE('',*,*,#13668,.F.); -#5205=ORIENTED_EDGE('',*,*,#13669,.T.); -#5206=ORIENTED_EDGE('',*,*,#13670,.T.); -#5207=ORIENTED_EDGE('',*,*,#13671,.T.); -#5208=ORIENTED_EDGE('',*,*,#13672,.F.); -#5209=ORIENTED_EDGE('',*,*,#13673,.T.); -#5210=ORIENTED_EDGE('',*,*,#13674,.T.); -#5211=ORIENTED_EDGE('',*,*,#13675,.T.); -#5212=ORIENTED_EDGE('',*,*,#13676,.F.); -#5213=ORIENTED_EDGE('',*,*,#13677,.T.); -#5214=ORIENTED_EDGE('',*,*,#13678,.T.); -#5215=ORIENTED_EDGE('',*,*,#13679,.T.); -#5216=ORIENTED_EDGE('',*,*,#13680,.F.); -#5217=ORIENTED_EDGE('',*,*,#13681,.T.); -#5218=ORIENTED_EDGE('',*,*,#13682,.T.); -#5219=ORIENTED_EDGE('',*,*,#13683,.T.); -#5220=ORIENTED_EDGE('',*,*,#13684,.F.); -#5221=ORIENTED_EDGE('',*,*,#13685,.T.); -#5222=ORIENTED_EDGE('',*,*,#13686,.T.); -#5223=ORIENTED_EDGE('',*,*,#13687,.T.); -#5224=ORIENTED_EDGE('',*,*,#13688,.F.); -#5225=ORIENTED_EDGE('',*,*,#13689,.T.); -#5226=ORIENTED_EDGE('',*,*,#13690,.T.); -#5227=ORIENTED_EDGE('',*,*,#13691,.T.); -#5228=ORIENTED_EDGE('',*,*,#13692,.F.); -#5229=ORIENTED_EDGE('',*,*,#13693,.T.); -#5230=ORIENTED_EDGE('',*,*,#13694,.T.); -#5231=ORIENTED_EDGE('',*,*,#13695,.T.); -#5232=ORIENTED_EDGE('',*,*,#13696,.F.); -#5233=ORIENTED_EDGE('',*,*,#13697,.T.); -#5234=ORIENTED_EDGE('',*,*,#13698,.T.); -#5235=ORIENTED_EDGE('',*,*,#13699,.T.); -#5236=ORIENTED_EDGE('',*,*,#13700,.F.); -#5237=ORIENTED_EDGE('',*,*,#13701,.T.); -#5238=ORIENTED_EDGE('',*,*,#13702,.T.); -#5239=ORIENTED_EDGE('',*,*,#13703,.T.); -#5240=ORIENTED_EDGE('',*,*,#13704,.F.); -#5241=ORIENTED_EDGE('',*,*,#13705,.T.); -#5242=ORIENTED_EDGE('',*,*,#13706,.T.); -#5243=ORIENTED_EDGE('',*,*,#13707,.T.); -#5244=ORIENTED_EDGE('',*,*,#13708,.F.); -#5245=ORIENTED_EDGE('',*,*,#13709,.T.); -#5246=ORIENTED_EDGE('',*,*,#13710,.T.); -#5247=ORIENTED_EDGE('',*,*,#13711,.T.); -#5248=ORIENTED_EDGE('',*,*,#13712,.F.); -#5249=ORIENTED_EDGE('',*,*,#13713,.T.); -#5250=ORIENTED_EDGE('',*,*,#13714,.T.); -#5251=ORIENTED_EDGE('',*,*,#13715,.T.); -#5252=ORIENTED_EDGE('',*,*,#13716,.F.); -#5253=ORIENTED_EDGE('',*,*,#13717,.T.); -#5254=ORIENTED_EDGE('',*,*,#13718,.T.); -#5255=ORIENTED_EDGE('',*,*,#13719,.T.); -#5256=ORIENTED_EDGE('',*,*,#13720,.F.); -#5257=ORIENTED_EDGE('',*,*,#13721,.T.); -#5258=ORIENTED_EDGE('',*,*,#13722,.T.); -#5259=ORIENTED_EDGE('',*,*,#13723,.T.); -#5260=ORIENTED_EDGE('',*,*,#13724,.F.); -#5261=ORIENTED_EDGE('',*,*,#13725,.T.); -#5262=ORIENTED_EDGE('',*,*,#13726,.T.); -#5263=ORIENTED_EDGE('',*,*,#13727,.T.); -#5264=ORIENTED_EDGE('',*,*,#13652,.T.); -#5265=ORIENTED_EDGE('',*,*,#13728,.T.); -#5266=ORIENTED_EDGE('',*,*,#13162,.F.); -#5267=ORIENTED_EDGE('',*,*,#13729,.T.); -#5268=ORIENTED_EDGE('',*,*,#13656,.T.); -#5269=ORIENTED_EDGE('',*,*,#13730,.T.); -#5270=ORIENTED_EDGE('',*,*,#13170,.F.); -#5271=ORIENTED_EDGE('',*,*,#13731,.T.); -#5272=ORIENTED_EDGE('',*,*,#13660,.T.); -#5273=ORIENTED_EDGE('',*,*,#13732,.T.); -#5274=ORIENTED_EDGE('',*,*,#13178,.F.); -#5275=ORIENTED_EDGE('',*,*,#13733,.T.); -#5276=ORIENTED_EDGE('',*,*,#13664,.T.); -#5277=ORIENTED_EDGE('',*,*,#13734,.T.); -#5278=ORIENTED_EDGE('',*,*,#13186,.F.); -#5279=ORIENTED_EDGE('',*,*,#13735,.T.); -#5280=ORIENTED_EDGE('',*,*,#13668,.T.); -#5281=ORIENTED_EDGE('',*,*,#13736,.T.); -#5282=ORIENTED_EDGE('',*,*,#13194,.F.); -#5283=ORIENTED_EDGE('',*,*,#13737,.T.); -#5284=ORIENTED_EDGE('',*,*,#13672,.T.); -#5285=ORIENTED_EDGE('',*,*,#13738,.T.); -#5286=ORIENTED_EDGE('',*,*,#13202,.F.); -#5287=ORIENTED_EDGE('',*,*,#13739,.T.); -#5288=ORIENTED_EDGE('',*,*,#13676,.T.); -#5289=ORIENTED_EDGE('',*,*,#13740,.T.); -#5290=ORIENTED_EDGE('',*,*,#13210,.F.); -#5291=ORIENTED_EDGE('',*,*,#13741,.T.); -#5292=ORIENTED_EDGE('',*,*,#13680,.T.); -#5293=ORIENTED_EDGE('',*,*,#13742,.T.); -#5294=ORIENTED_EDGE('',*,*,#13218,.F.); -#5295=ORIENTED_EDGE('',*,*,#13743,.T.); -#5296=ORIENTED_EDGE('',*,*,#13684,.T.); -#5297=ORIENTED_EDGE('',*,*,#13744,.T.); -#5298=ORIENTED_EDGE('',*,*,#13226,.F.); -#5299=ORIENTED_EDGE('',*,*,#13745,.T.); -#5300=ORIENTED_EDGE('',*,*,#13688,.T.); -#5301=ORIENTED_EDGE('',*,*,#13746,.T.); -#5302=ORIENTED_EDGE('',*,*,#13234,.F.); -#5303=ORIENTED_EDGE('',*,*,#13747,.T.); -#5304=ORIENTED_EDGE('',*,*,#13692,.T.); -#5305=ORIENTED_EDGE('',*,*,#13748,.T.); -#5306=ORIENTED_EDGE('',*,*,#13242,.F.); -#5307=ORIENTED_EDGE('',*,*,#13749,.T.); -#5308=ORIENTED_EDGE('',*,*,#13696,.T.); -#5309=ORIENTED_EDGE('',*,*,#13750,.T.); -#5310=ORIENTED_EDGE('',*,*,#13250,.F.); -#5311=ORIENTED_EDGE('',*,*,#13751,.T.); -#5312=ORIENTED_EDGE('',*,*,#13700,.T.); -#5313=ORIENTED_EDGE('',*,*,#13752,.T.); -#5314=ORIENTED_EDGE('',*,*,#13258,.F.); -#5315=ORIENTED_EDGE('',*,*,#13753,.T.); -#5316=ORIENTED_EDGE('',*,*,#13704,.T.); -#5317=ORIENTED_EDGE('',*,*,#13754,.T.); -#5318=ORIENTED_EDGE('',*,*,#13266,.F.); -#5319=ORIENTED_EDGE('',*,*,#13755,.T.); -#5320=ORIENTED_EDGE('',*,*,#13708,.T.); -#5321=ORIENTED_EDGE('',*,*,#13756,.T.); -#5322=ORIENTED_EDGE('',*,*,#13274,.F.); -#5323=ORIENTED_EDGE('',*,*,#13757,.T.); -#5324=ORIENTED_EDGE('',*,*,#13712,.T.); -#5325=ORIENTED_EDGE('',*,*,#13758,.T.); -#5326=ORIENTED_EDGE('',*,*,#13282,.F.); -#5327=ORIENTED_EDGE('',*,*,#13759,.T.); -#5328=ORIENTED_EDGE('',*,*,#13716,.T.); -#5329=ORIENTED_EDGE('',*,*,#13760,.T.); -#5330=ORIENTED_EDGE('',*,*,#13290,.F.); -#5331=ORIENTED_EDGE('',*,*,#13761,.T.); -#5332=ORIENTED_EDGE('',*,*,#13720,.T.); -#5333=ORIENTED_EDGE('',*,*,#13762,.T.); -#5334=ORIENTED_EDGE('',*,*,#13298,.F.); -#5335=ORIENTED_EDGE('',*,*,#13763,.T.); -#5336=ORIENTED_EDGE('',*,*,#13724,.T.); -#5337=ORIENTED_EDGE('',*,*,#13764,.T.); -#5338=ORIENTED_EDGE('',*,*,#13306,.F.); -#5339=ORIENTED_EDGE('',*,*,#13765,.T.); -#5340=ORIENTED_EDGE('',*,*,#13766,.T.); -#5341=ORIENTED_EDGE('',*,*,#13767,.F.); -#5342=ORIENTED_EDGE('',*,*,#13768,.T.); -#5343=ORIENTED_EDGE('',*,*,#13150,.T.); -#5344=ORIENTED_EDGE('',*,*,#13769,.T.); -#5345=ORIENTED_EDGE('',*,*,#13770,.F.); -#5346=ORIENTED_EDGE('',*,*,#13771,.T.); -#5347=ORIENTED_EDGE('',*,*,#13142,.T.); -#5348=ORIENTED_EDGE('',*,*,#13772,.T.); -#5349=ORIENTED_EDGE('',*,*,#13773,.F.); -#5350=ORIENTED_EDGE('',*,*,#13774,.T.); -#5351=ORIENTED_EDGE('',*,*,#13134,.T.); -#5352=ORIENTED_EDGE('',*,*,#13775,.T.); -#5353=ORIENTED_EDGE('',*,*,#13776,.F.); -#5354=ORIENTED_EDGE('',*,*,#13777,.T.); -#5355=ORIENTED_EDGE('',*,*,#13126,.T.); -#5356=ORIENTED_EDGE('',*,*,#13778,.T.); -#5357=ORIENTED_EDGE('',*,*,#13779,.F.); -#5358=ORIENTED_EDGE('',*,*,#13780,.T.); -#5359=ORIENTED_EDGE('',*,*,#13118,.T.); -#5360=ORIENTED_EDGE('',*,*,#13781,.T.); -#5361=ORIENTED_EDGE('',*,*,#13782,.F.); -#5362=ORIENTED_EDGE('',*,*,#13783,.T.); -#5363=ORIENTED_EDGE('',*,*,#13110,.T.); -#5364=ORIENTED_EDGE('',*,*,#13784,.T.); -#5365=ORIENTED_EDGE('',*,*,#13785,.F.); -#5366=ORIENTED_EDGE('',*,*,#13786,.T.); -#5367=ORIENTED_EDGE('',*,*,#13102,.T.); -#5368=ORIENTED_EDGE('',*,*,#13787,.T.); -#5369=ORIENTED_EDGE('',*,*,#13788,.F.); -#5370=ORIENTED_EDGE('',*,*,#13789,.T.); -#5371=ORIENTED_EDGE('',*,*,#13094,.T.); -#5372=ORIENTED_EDGE('',*,*,#13790,.T.); -#5373=ORIENTED_EDGE('',*,*,#13791,.F.); -#5374=ORIENTED_EDGE('',*,*,#13792,.T.); -#5375=ORIENTED_EDGE('',*,*,#13086,.T.); -#5376=ORIENTED_EDGE('',*,*,#13793,.T.); -#5377=ORIENTED_EDGE('',*,*,#13794,.F.); -#5378=ORIENTED_EDGE('',*,*,#13795,.T.); -#5379=ORIENTED_EDGE('',*,*,#13078,.T.); -#5380=ORIENTED_EDGE('',*,*,#13796,.T.); -#5381=ORIENTED_EDGE('',*,*,#13797,.F.); -#5382=ORIENTED_EDGE('',*,*,#13798,.T.); -#5383=ORIENTED_EDGE('',*,*,#13070,.T.); -#5384=ORIENTED_EDGE('',*,*,#13799,.T.); -#5385=ORIENTED_EDGE('',*,*,#13800,.F.); -#5386=ORIENTED_EDGE('',*,*,#13801,.T.); -#5387=ORIENTED_EDGE('',*,*,#13062,.T.); -#5388=ORIENTED_EDGE('',*,*,#13802,.T.); -#5389=ORIENTED_EDGE('',*,*,#13803,.F.); -#5390=ORIENTED_EDGE('',*,*,#13804,.T.); -#5391=ORIENTED_EDGE('',*,*,#13054,.T.); -#5392=ORIENTED_EDGE('',*,*,#13805,.T.); -#5393=ORIENTED_EDGE('',*,*,#13806,.F.); -#5394=ORIENTED_EDGE('',*,*,#13807,.T.); -#5395=ORIENTED_EDGE('',*,*,#13046,.T.); -#5396=ORIENTED_EDGE('',*,*,#13808,.T.); -#5397=ORIENTED_EDGE('',*,*,#13809,.F.); -#5398=ORIENTED_EDGE('',*,*,#13810,.T.); -#5399=ORIENTED_EDGE('',*,*,#13038,.T.); -#5400=ORIENTED_EDGE('',*,*,#13811,.T.); -#5401=ORIENTED_EDGE('',*,*,#13812,.F.); -#5402=ORIENTED_EDGE('',*,*,#13813,.T.); -#5403=ORIENTED_EDGE('',*,*,#13030,.T.); -#5404=ORIENTED_EDGE('',*,*,#13814,.T.); -#5405=ORIENTED_EDGE('',*,*,#13815,.F.); -#5406=ORIENTED_EDGE('',*,*,#13816,.T.); -#5407=ORIENTED_EDGE('',*,*,#13022,.T.); -#5408=ORIENTED_EDGE('',*,*,#13817,.T.); -#5409=ORIENTED_EDGE('',*,*,#13818,.F.); -#5410=ORIENTED_EDGE('',*,*,#13819,.T.); -#5411=ORIENTED_EDGE('',*,*,#13014,.T.); -#5412=ORIENTED_EDGE('',*,*,#13820,.T.); -#5413=ORIENTED_EDGE('',*,*,#13821,.F.); -#5414=ORIENTED_EDGE('',*,*,#13822,.T.); -#5415=ORIENTED_EDGE('',*,*,#13006,.T.); -#5416=ORIENTED_EDGE('',*,*,#13823,.F.); -#5417=ORIENTED_EDGE('',*,*,#13824,.T.); -#5418=ORIENTED_EDGE('',*,*,#13767,.T.); -#5419=ORIENTED_EDGE('',*,*,#13825,.T.); -#5420=ORIENTED_EDGE('',*,*,#13826,.F.); -#5421=ORIENTED_EDGE('',*,*,#13827,.T.); -#5422=ORIENTED_EDGE('',*,*,#13770,.T.); -#5423=ORIENTED_EDGE('',*,*,#13828,.T.); -#5424=ORIENTED_EDGE('',*,*,#13829,.F.); -#5425=ORIENTED_EDGE('',*,*,#13830,.T.); -#5426=ORIENTED_EDGE('',*,*,#13773,.T.); -#5427=ORIENTED_EDGE('',*,*,#13831,.T.); -#5428=ORIENTED_EDGE('',*,*,#13832,.F.); -#5429=ORIENTED_EDGE('',*,*,#13833,.T.); -#5430=ORIENTED_EDGE('',*,*,#13776,.T.); -#5431=ORIENTED_EDGE('',*,*,#13834,.T.); -#5432=ORIENTED_EDGE('',*,*,#13835,.F.); -#5433=ORIENTED_EDGE('',*,*,#13836,.T.); -#5434=ORIENTED_EDGE('',*,*,#13779,.T.); -#5435=ORIENTED_EDGE('',*,*,#13837,.T.); -#5436=ORIENTED_EDGE('',*,*,#13838,.F.); -#5437=ORIENTED_EDGE('',*,*,#13839,.T.); -#5438=ORIENTED_EDGE('',*,*,#13782,.T.); -#5439=ORIENTED_EDGE('',*,*,#13840,.T.); -#5440=ORIENTED_EDGE('',*,*,#13841,.F.); -#5441=ORIENTED_EDGE('',*,*,#13842,.T.); -#5442=ORIENTED_EDGE('',*,*,#13785,.T.); -#5443=ORIENTED_EDGE('',*,*,#13843,.T.); -#5444=ORIENTED_EDGE('',*,*,#13844,.F.); -#5445=ORIENTED_EDGE('',*,*,#13845,.T.); -#5446=ORIENTED_EDGE('',*,*,#13788,.T.); -#5447=ORIENTED_EDGE('',*,*,#13846,.T.); -#5448=ORIENTED_EDGE('',*,*,#13847,.F.); -#5449=ORIENTED_EDGE('',*,*,#13848,.T.); -#5450=ORIENTED_EDGE('',*,*,#13791,.T.); -#5451=ORIENTED_EDGE('',*,*,#13849,.T.); -#5452=ORIENTED_EDGE('',*,*,#13850,.F.); -#5453=ORIENTED_EDGE('',*,*,#13851,.T.); -#5454=ORIENTED_EDGE('',*,*,#13794,.T.); -#5455=ORIENTED_EDGE('',*,*,#13852,.T.); -#5456=ORIENTED_EDGE('',*,*,#13853,.F.); -#5457=ORIENTED_EDGE('',*,*,#13854,.T.); -#5458=ORIENTED_EDGE('',*,*,#13797,.T.); -#5459=ORIENTED_EDGE('',*,*,#13855,.T.); -#5460=ORIENTED_EDGE('',*,*,#13856,.F.); -#5461=ORIENTED_EDGE('',*,*,#13857,.T.); -#5462=ORIENTED_EDGE('',*,*,#13800,.T.); -#5463=ORIENTED_EDGE('',*,*,#13858,.T.); -#5464=ORIENTED_EDGE('',*,*,#13859,.F.); -#5465=ORIENTED_EDGE('',*,*,#13860,.T.); -#5466=ORIENTED_EDGE('',*,*,#13803,.T.); -#5467=ORIENTED_EDGE('',*,*,#13861,.T.); -#5468=ORIENTED_EDGE('',*,*,#13862,.F.); -#5469=ORIENTED_EDGE('',*,*,#13863,.T.); -#5470=ORIENTED_EDGE('',*,*,#13806,.T.); -#5471=ORIENTED_EDGE('',*,*,#13864,.T.); -#5472=ORIENTED_EDGE('',*,*,#13865,.F.); -#5473=ORIENTED_EDGE('',*,*,#13866,.T.); -#5474=ORIENTED_EDGE('',*,*,#13809,.T.); -#5475=ORIENTED_EDGE('',*,*,#13867,.T.); -#5476=ORIENTED_EDGE('',*,*,#13868,.F.); -#5477=ORIENTED_EDGE('',*,*,#13869,.T.); -#5478=ORIENTED_EDGE('',*,*,#13812,.T.); -#5479=ORIENTED_EDGE('',*,*,#13870,.T.); -#5480=ORIENTED_EDGE('',*,*,#13871,.F.); -#5481=ORIENTED_EDGE('',*,*,#13872,.T.); -#5482=ORIENTED_EDGE('',*,*,#13815,.T.); -#5483=ORIENTED_EDGE('',*,*,#13873,.T.); -#5484=ORIENTED_EDGE('',*,*,#13874,.F.); -#5485=ORIENTED_EDGE('',*,*,#13875,.T.); -#5486=ORIENTED_EDGE('',*,*,#13818,.T.); -#5487=ORIENTED_EDGE('',*,*,#13876,.T.); -#5488=ORIENTED_EDGE('',*,*,#13877,.F.); -#5489=ORIENTED_EDGE('',*,*,#13878,.T.); -#5490=ORIENTED_EDGE('',*,*,#13821,.T.); -#5491=ORIENTED_EDGE('',*,*,#13879,.T.); -#5492=ORIENTED_EDGE('',*,*,#13880,.F.); -#5493=ORIENTED_EDGE('',*,*,#13823,.T.); -#5494=ORIENTED_EDGE('',*,*,#13881,.F.); -#5495=ORIENTED_EDGE('',*,*,#12834,.F.); -#5496=ORIENTED_EDGE('',*,*,#13882,.F.); -#5497=ORIENTED_EDGE('',*,*,#13826,.T.); -#5498=ORIENTED_EDGE('',*,*,#13883,.F.); -#5499=ORIENTED_EDGE('',*,*,#12842,.F.); -#5500=ORIENTED_EDGE('',*,*,#13884,.F.); -#5501=ORIENTED_EDGE('',*,*,#13829,.T.); -#5502=ORIENTED_EDGE('',*,*,#13885,.F.); -#5503=ORIENTED_EDGE('',*,*,#12850,.F.); -#5504=ORIENTED_EDGE('',*,*,#13886,.F.); -#5505=ORIENTED_EDGE('',*,*,#13832,.T.); -#5506=ORIENTED_EDGE('',*,*,#13887,.F.); -#5507=ORIENTED_EDGE('',*,*,#12858,.F.); -#5508=ORIENTED_EDGE('',*,*,#13888,.F.); -#5509=ORIENTED_EDGE('',*,*,#13835,.T.); -#5510=ORIENTED_EDGE('',*,*,#13889,.F.); -#5511=ORIENTED_EDGE('',*,*,#12866,.F.); -#5512=ORIENTED_EDGE('',*,*,#13890,.F.); -#5513=ORIENTED_EDGE('',*,*,#13838,.T.); -#5514=ORIENTED_EDGE('',*,*,#13891,.F.); -#5515=ORIENTED_EDGE('',*,*,#12874,.F.); -#5516=ORIENTED_EDGE('',*,*,#13892,.F.); -#5517=ORIENTED_EDGE('',*,*,#13841,.T.); -#5518=ORIENTED_EDGE('',*,*,#13893,.F.); -#5519=ORIENTED_EDGE('',*,*,#12882,.F.); -#5520=ORIENTED_EDGE('',*,*,#13894,.F.); -#5521=ORIENTED_EDGE('',*,*,#13844,.T.); -#5522=ORIENTED_EDGE('',*,*,#13895,.F.); -#5523=ORIENTED_EDGE('',*,*,#12890,.F.); -#5524=ORIENTED_EDGE('',*,*,#13896,.F.); -#5525=ORIENTED_EDGE('',*,*,#13847,.T.); -#5526=ORIENTED_EDGE('',*,*,#13897,.F.); -#5527=ORIENTED_EDGE('',*,*,#12898,.F.); -#5528=ORIENTED_EDGE('',*,*,#13898,.F.); -#5529=ORIENTED_EDGE('',*,*,#13850,.T.); -#5530=ORIENTED_EDGE('',*,*,#13899,.F.); -#5531=ORIENTED_EDGE('',*,*,#12906,.F.); -#5532=ORIENTED_EDGE('',*,*,#13900,.F.); -#5533=ORIENTED_EDGE('',*,*,#13853,.T.); -#5534=ORIENTED_EDGE('',*,*,#13901,.F.); -#5535=ORIENTED_EDGE('',*,*,#12914,.F.); -#5536=ORIENTED_EDGE('',*,*,#13902,.F.); -#5537=ORIENTED_EDGE('',*,*,#13856,.T.); -#5538=ORIENTED_EDGE('',*,*,#13903,.F.); -#5539=ORIENTED_EDGE('',*,*,#12922,.F.); -#5540=ORIENTED_EDGE('',*,*,#13904,.F.); -#5541=ORIENTED_EDGE('',*,*,#13859,.T.); -#5542=ORIENTED_EDGE('',*,*,#13905,.F.); -#5543=ORIENTED_EDGE('',*,*,#12930,.F.); -#5544=ORIENTED_EDGE('',*,*,#13906,.F.); -#5545=ORIENTED_EDGE('',*,*,#13862,.T.); -#5546=ORIENTED_EDGE('',*,*,#13907,.F.); -#5547=ORIENTED_EDGE('',*,*,#12938,.F.); -#5548=ORIENTED_EDGE('',*,*,#13908,.F.); -#5549=ORIENTED_EDGE('',*,*,#13865,.T.); -#5550=ORIENTED_EDGE('',*,*,#13909,.F.); -#5551=ORIENTED_EDGE('',*,*,#12946,.F.); -#5552=ORIENTED_EDGE('',*,*,#13910,.F.); -#5553=ORIENTED_EDGE('',*,*,#13868,.T.); -#5554=ORIENTED_EDGE('',*,*,#13911,.F.); -#5555=ORIENTED_EDGE('',*,*,#12954,.F.); -#5556=ORIENTED_EDGE('',*,*,#13912,.F.); -#5557=ORIENTED_EDGE('',*,*,#13871,.T.); -#5558=ORIENTED_EDGE('',*,*,#13913,.F.); -#5559=ORIENTED_EDGE('',*,*,#12962,.F.); -#5560=ORIENTED_EDGE('',*,*,#13914,.F.); -#5561=ORIENTED_EDGE('',*,*,#13874,.T.); -#5562=ORIENTED_EDGE('',*,*,#13915,.F.); -#5563=ORIENTED_EDGE('',*,*,#12970,.F.); -#5564=ORIENTED_EDGE('',*,*,#13916,.F.); -#5565=ORIENTED_EDGE('',*,*,#13877,.T.); -#5566=ORIENTED_EDGE('',*,*,#13917,.F.); -#5567=ORIENTED_EDGE('',*,*,#12978,.F.); -#5568=ORIENTED_EDGE('',*,*,#13918,.F.); -#5569=ORIENTED_EDGE('',*,*,#13478,.T.); -#5570=ORIENTED_EDGE('',*,*,#13919,.F.); -#5571=ORIENTED_EDGE('',*,*,#13654,.F.); -#5572=ORIENTED_EDGE('',*,*,#13920,.F.); -#5573=ORIENTED_EDGE('',*,*,#13470,.T.); -#5574=ORIENTED_EDGE('',*,*,#13921,.F.); -#5575=ORIENTED_EDGE('',*,*,#13658,.F.); -#5576=ORIENTED_EDGE('',*,*,#13922,.F.); -#5577=ORIENTED_EDGE('',*,*,#13462,.T.); -#5578=ORIENTED_EDGE('',*,*,#13923,.F.); -#5579=ORIENTED_EDGE('',*,*,#13662,.F.); -#5580=ORIENTED_EDGE('',*,*,#13924,.F.); -#5581=ORIENTED_EDGE('',*,*,#13454,.T.); -#5582=ORIENTED_EDGE('',*,*,#13925,.F.); -#5583=ORIENTED_EDGE('',*,*,#13666,.F.); -#5584=ORIENTED_EDGE('',*,*,#13926,.F.); -#5585=ORIENTED_EDGE('',*,*,#13446,.T.); -#5586=ORIENTED_EDGE('',*,*,#13927,.F.); -#5587=ORIENTED_EDGE('',*,*,#13670,.F.); -#5588=ORIENTED_EDGE('',*,*,#13928,.F.); -#5589=ORIENTED_EDGE('',*,*,#13438,.T.); -#5590=ORIENTED_EDGE('',*,*,#13929,.F.); -#5591=ORIENTED_EDGE('',*,*,#13674,.F.); -#5592=ORIENTED_EDGE('',*,*,#13930,.F.); -#5593=ORIENTED_EDGE('',*,*,#13430,.T.); -#5594=ORIENTED_EDGE('',*,*,#13931,.F.); -#5595=ORIENTED_EDGE('',*,*,#13678,.F.); -#5596=ORIENTED_EDGE('',*,*,#13932,.F.); -#5597=ORIENTED_EDGE('',*,*,#13422,.T.); -#5598=ORIENTED_EDGE('',*,*,#13933,.F.); -#5599=ORIENTED_EDGE('',*,*,#13682,.F.); -#5600=ORIENTED_EDGE('',*,*,#13934,.F.); -#5601=ORIENTED_EDGE('',*,*,#13414,.T.); -#5602=ORIENTED_EDGE('',*,*,#13935,.F.); -#5603=ORIENTED_EDGE('',*,*,#13686,.F.); -#5604=ORIENTED_EDGE('',*,*,#13936,.F.); -#5605=ORIENTED_EDGE('',*,*,#13406,.T.); -#5606=ORIENTED_EDGE('',*,*,#13937,.F.); -#5607=ORIENTED_EDGE('',*,*,#13690,.F.); -#5608=ORIENTED_EDGE('',*,*,#13938,.F.); -#5609=ORIENTED_EDGE('',*,*,#13398,.T.); -#5610=ORIENTED_EDGE('',*,*,#13939,.F.); -#5611=ORIENTED_EDGE('',*,*,#13694,.F.); -#5612=ORIENTED_EDGE('',*,*,#13940,.F.); -#5613=ORIENTED_EDGE('',*,*,#13390,.T.); -#5614=ORIENTED_EDGE('',*,*,#13941,.F.); -#5615=ORIENTED_EDGE('',*,*,#13698,.F.); -#5616=ORIENTED_EDGE('',*,*,#13942,.F.); -#5617=ORIENTED_EDGE('',*,*,#13382,.T.); -#5618=ORIENTED_EDGE('',*,*,#13943,.F.); -#5619=ORIENTED_EDGE('',*,*,#13702,.F.); -#5620=ORIENTED_EDGE('',*,*,#13944,.F.); -#5621=ORIENTED_EDGE('',*,*,#13374,.T.); -#5622=ORIENTED_EDGE('',*,*,#13945,.F.); -#5623=ORIENTED_EDGE('',*,*,#13706,.F.); -#5624=ORIENTED_EDGE('',*,*,#13946,.F.); -#5625=ORIENTED_EDGE('',*,*,#13366,.T.); -#5626=ORIENTED_EDGE('',*,*,#13947,.F.); -#5627=ORIENTED_EDGE('',*,*,#13710,.F.); -#5628=ORIENTED_EDGE('',*,*,#13948,.F.); -#5629=ORIENTED_EDGE('',*,*,#13358,.T.); -#5630=ORIENTED_EDGE('',*,*,#13949,.F.); -#5631=ORIENTED_EDGE('',*,*,#13714,.F.); -#5632=ORIENTED_EDGE('',*,*,#13950,.F.); -#5633=ORIENTED_EDGE('',*,*,#13350,.T.); -#5634=ORIENTED_EDGE('',*,*,#13951,.F.); -#5635=ORIENTED_EDGE('',*,*,#13718,.F.); -#5636=ORIENTED_EDGE('',*,*,#13952,.F.); -#5637=ORIENTED_EDGE('',*,*,#13342,.T.); -#5638=ORIENTED_EDGE('',*,*,#13953,.F.); -#5639=ORIENTED_EDGE('',*,*,#13722,.F.); -#5640=ORIENTED_EDGE('',*,*,#13954,.F.); -#5641=ORIENTED_EDGE('',*,*,#13334,.T.); -#5642=ORIENTED_EDGE('',*,*,#13955,.F.); -#5643=ORIENTED_EDGE('',*,*,#13726,.F.); -#5644=ORIENTED_EDGE('',*,*,#13956,.F.); -#5645=ORIENTED_EDGE('',*,*,#13957,.T.); -#5646=ORIENTED_EDGE('',*,*,#13958,.T.); -#5647=ORIENTED_EDGE('',*,*,#13959,.T.); -#5648=ORIENTED_EDGE('',*,*,#13956,.T.); -#5649=ORIENTED_EDGE('',*,*,#13960,.T.); -#5650=ORIENTED_EDGE('',*,*,#13314,.F.); -#5651=ORIENTED_EDGE('',*,*,#13961,.T.); -#5652=ORIENTED_EDGE('',*,*,#13962,.T.); -#5653=ORIENTED_EDGE('',*,*,#13963,.F.); -#5654=ORIENTED_EDGE('',*,*,#13964,.T.); -#5655=ORIENTED_EDGE('',*,*,#12998,.T.); -#5656=ORIENTED_EDGE('',*,*,#13965,.F.); -#5657=ORIENTED_EDGE('',*,*,#13966,.T.); -#5658=ORIENTED_EDGE('',*,*,#13963,.T.); -#5659=ORIENTED_EDGE('',*,*,#13967,.T.); -#5660=ORIENTED_EDGE('',*,*,#13968,.F.); -#5661=ORIENTED_EDGE('',*,*,#13965,.T.); -#5662=ORIENTED_EDGE('',*,*,#13969,.F.); -#5663=ORIENTED_EDGE('',*,*,#12986,.F.); -#5664=ORIENTED_EDGE('',*,*,#13970,.F.); -#5665=ORIENTED_EDGE('',*,*,#13326,.T.); -#5666=ORIENTED_EDGE('',*,*,#13971,.F.); -#5667=ORIENTED_EDGE('',*,*,#13958,.F.); -#5668=ORIENTED_EDGE('',*,*,#13972,.F.); -#5669=ORIENTED_EDGE('',*,*,#13324,.F.); -#5670=ORIENTED_EDGE('',*,*,#13499,.F.); -#5671=ORIENTED_EDGE('',*,*,#13316,.F.); -#5672=ORIENTED_EDGE('',*,*,#13960,.F.); -#5673=ORIENTED_EDGE('',*,*,#13959,.F.); -#5674=ORIENTED_EDGE('',*,*,#13971,.T.); -#5675=ORIENTED_EDGE('',*,*,#13325,.F.); -#5676=ORIENTED_EDGE('',*,*,#13972,.T.); -#5677=ORIENTED_EDGE('',*,*,#13315,.F.); -#5678=ORIENTED_EDGE('',*,*,#13497,.F.); -#5679=ORIENTED_EDGE('',*,*,#12988,.F.); -#5680=ORIENTED_EDGE('',*,*,#13973,.F.); -#5681=ORIENTED_EDGE('',*,*,#12996,.F.); -#5682=ORIENTED_EDGE('',*,*,#13973,.T.); -#5683=ORIENTED_EDGE('',*,*,#12987,.F.); -#5684=ORIENTED_EDGE('',*,*,#13969,.T.); -#5685=ORIENTED_EDGE('',*,*,#13967,.F.); -#5686=ORIENTED_EDGE('',*,*,#13962,.F.); -#5687=ORIENTED_EDGE('',*,*,#12997,.F.); -#5688=ORIENTED_EDGE('',*,*,#13495,.T.); -#5689=ORIENTED_EDGE('',*,*,#13480,.F.); -#5690=ORIENTED_EDGE('',*,*,#13974,.T.); -#5691=ORIENTED_EDGE('',*,*,#13160,.F.); -#5692=ORIENTED_EDGE('',*,*,#13974,.F.); -#5693=ORIENTED_EDGE('',*,*,#13479,.F.); -#5694=ORIENTED_EDGE('',*,*,#13918,.T.); -#5695=ORIENTED_EDGE('',*,*,#13653,.F.); -#5696=ORIENTED_EDGE('',*,*,#13729,.F.); -#5697=ORIENTED_EDGE('',*,*,#13161,.F.); -#5698=ORIENTED_EDGE('',*,*,#13975,.T.); -#5699=ORIENTED_EDGE('',*,*,#12832,.F.); -#5700=ORIENTED_EDGE('',*,*,#13493,.T.); -#5701=ORIENTED_EDGE('',*,*,#13152,.F.); -#5702=ORIENTED_EDGE('',*,*,#13768,.F.); -#5703=ORIENTED_EDGE('',*,*,#13824,.F.); -#5704=ORIENTED_EDGE('',*,*,#13880,.T.); -#5705=ORIENTED_EDGE('',*,*,#12833,.F.); -#5706=ORIENTED_EDGE('',*,*,#13975,.F.); -#5707=ORIENTED_EDGE('',*,*,#13151,.F.); -#5708=ORIENTED_EDGE('',*,*,#13976,.F.); -#5709=ORIENTED_EDGE('',*,*,#13327,.F.); -#5710=ORIENTED_EDGE('',*,*,#13970,.T.); -#5711=ORIENTED_EDGE('',*,*,#13957,.F.); -#5712=ORIENTED_EDGE('',*,*,#13961,.F.); -#5713=ORIENTED_EDGE('',*,*,#13313,.F.); -#5714=ORIENTED_EDGE('',*,*,#13501,.F.); -#5715=ORIENTED_EDGE('',*,*,#13328,.F.); -#5716=ORIENTED_EDGE('',*,*,#13976,.T.); -#5717=ORIENTED_EDGE('',*,*,#13312,.F.); -#5718=ORIENTED_EDGE('',*,*,#13764,.F.); -#5719=ORIENTED_EDGE('',*,*,#13727,.F.); -#5720=ORIENTED_EDGE('',*,*,#13955,.T.); -#5721=ORIENTED_EDGE('',*,*,#13333,.F.); -#5722=ORIENTED_EDGE('',*,*,#13977,.T.); -#5723=ORIENTED_EDGE('',*,*,#13307,.F.); -#5724=ORIENTED_EDGE('',*,*,#13977,.F.); -#5725=ORIENTED_EDGE('',*,*,#13332,.F.); -#5726=ORIENTED_EDGE('',*,*,#13503,.T.); -#5727=ORIENTED_EDGE('',*,*,#13308,.F.); -#5728=ORIENTED_EDGE('',*,*,#13978,.F.); -#5729=ORIENTED_EDGE('',*,*,#13335,.F.); -#5730=ORIENTED_EDGE('',*,*,#13954,.T.); -#5731=ORIENTED_EDGE('',*,*,#13725,.F.); -#5732=ORIENTED_EDGE('',*,*,#13765,.F.); -#5733=ORIENTED_EDGE('',*,*,#13305,.F.); -#5734=ORIENTED_EDGE('',*,*,#13505,.F.); -#5735=ORIENTED_EDGE('',*,*,#13336,.F.); -#5736=ORIENTED_EDGE('',*,*,#13978,.T.); -#5737=ORIENTED_EDGE('',*,*,#13304,.F.); -#5738=ORIENTED_EDGE('',*,*,#13762,.F.); -#5739=ORIENTED_EDGE('',*,*,#13723,.F.); -#5740=ORIENTED_EDGE('',*,*,#13953,.T.); -#5741=ORIENTED_EDGE('',*,*,#13341,.F.); -#5742=ORIENTED_EDGE('',*,*,#13979,.T.); -#5743=ORIENTED_EDGE('',*,*,#13299,.F.); -#5744=ORIENTED_EDGE('',*,*,#13979,.F.); -#5745=ORIENTED_EDGE('',*,*,#13340,.F.); -#5746=ORIENTED_EDGE('',*,*,#13507,.T.); -#5747=ORIENTED_EDGE('',*,*,#13300,.F.); -#5748=ORIENTED_EDGE('',*,*,#13980,.F.); -#5749=ORIENTED_EDGE('',*,*,#13343,.F.); -#5750=ORIENTED_EDGE('',*,*,#13952,.T.); -#5751=ORIENTED_EDGE('',*,*,#13721,.F.); -#5752=ORIENTED_EDGE('',*,*,#13763,.F.); -#5753=ORIENTED_EDGE('',*,*,#13297,.F.); -#5754=ORIENTED_EDGE('',*,*,#13509,.F.); -#5755=ORIENTED_EDGE('',*,*,#13344,.F.); -#5756=ORIENTED_EDGE('',*,*,#13980,.T.); -#5757=ORIENTED_EDGE('',*,*,#13296,.F.); -#5758=ORIENTED_EDGE('',*,*,#13760,.F.); -#5759=ORIENTED_EDGE('',*,*,#13719,.F.); -#5760=ORIENTED_EDGE('',*,*,#13951,.T.); -#5761=ORIENTED_EDGE('',*,*,#13349,.F.); -#5762=ORIENTED_EDGE('',*,*,#13981,.T.); -#5763=ORIENTED_EDGE('',*,*,#13291,.F.); -#5764=ORIENTED_EDGE('',*,*,#13981,.F.); -#5765=ORIENTED_EDGE('',*,*,#13348,.F.); -#5766=ORIENTED_EDGE('',*,*,#13511,.T.); -#5767=ORIENTED_EDGE('',*,*,#13292,.F.); -#5768=ORIENTED_EDGE('',*,*,#13982,.F.); -#5769=ORIENTED_EDGE('',*,*,#13351,.F.); -#5770=ORIENTED_EDGE('',*,*,#13950,.T.); -#5771=ORIENTED_EDGE('',*,*,#13717,.F.); -#5772=ORIENTED_EDGE('',*,*,#13761,.F.); -#5773=ORIENTED_EDGE('',*,*,#13289,.F.); -#5774=ORIENTED_EDGE('',*,*,#13513,.F.); -#5775=ORIENTED_EDGE('',*,*,#13352,.F.); -#5776=ORIENTED_EDGE('',*,*,#13982,.T.); -#5777=ORIENTED_EDGE('',*,*,#13288,.F.); -#5778=ORIENTED_EDGE('',*,*,#13758,.F.); -#5779=ORIENTED_EDGE('',*,*,#13715,.F.); -#5780=ORIENTED_EDGE('',*,*,#13949,.T.); -#5781=ORIENTED_EDGE('',*,*,#13357,.F.); -#5782=ORIENTED_EDGE('',*,*,#13983,.T.); -#5783=ORIENTED_EDGE('',*,*,#13283,.F.); -#5784=ORIENTED_EDGE('',*,*,#13983,.F.); -#5785=ORIENTED_EDGE('',*,*,#13356,.F.); -#5786=ORIENTED_EDGE('',*,*,#13515,.T.); -#5787=ORIENTED_EDGE('',*,*,#13284,.F.); -#5788=ORIENTED_EDGE('',*,*,#13984,.F.); -#5789=ORIENTED_EDGE('',*,*,#13359,.F.); -#5790=ORIENTED_EDGE('',*,*,#13948,.T.); -#5791=ORIENTED_EDGE('',*,*,#13713,.F.); -#5792=ORIENTED_EDGE('',*,*,#13759,.F.); -#5793=ORIENTED_EDGE('',*,*,#13281,.F.); -#5794=ORIENTED_EDGE('',*,*,#13517,.F.); -#5795=ORIENTED_EDGE('',*,*,#13360,.F.); -#5796=ORIENTED_EDGE('',*,*,#13984,.T.); -#5797=ORIENTED_EDGE('',*,*,#13280,.F.); -#5798=ORIENTED_EDGE('',*,*,#13756,.F.); -#5799=ORIENTED_EDGE('',*,*,#13711,.F.); -#5800=ORIENTED_EDGE('',*,*,#13947,.T.); -#5801=ORIENTED_EDGE('',*,*,#13365,.F.); -#5802=ORIENTED_EDGE('',*,*,#13985,.T.); -#5803=ORIENTED_EDGE('',*,*,#13275,.F.); -#5804=ORIENTED_EDGE('',*,*,#13985,.F.); -#5805=ORIENTED_EDGE('',*,*,#13364,.F.); -#5806=ORIENTED_EDGE('',*,*,#13519,.T.); -#5807=ORIENTED_EDGE('',*,*,#13276,.F.); -#5808=ORIENTED_EDGE('',*,*,#13986,.F.); -#5809=ORIENTED_EDGE('',*,*,#13367,.F.); -#5810=ORIENTED_EDGE('',*,*,#13946,.T.); -#5811=ORIENTED_EDGE('',*,*,#13709,.F.); -#5812=ORIENTED_EDGE('',*,*,#13757,.F.); -#5813=ORIENTED_EDGE('',*,*,#13273,.F.); -#5814=ORIENTED_EDGE('',*,*,#13521,.F.); -#5815=ORIENTED_EDGE('',*,*,#13368,.F.); -#5816=ORIENTED_EDGE('',*,*,#13986,.T.); -#5817=ORIENTED_EDGE('',*,*,#13272,.F.); -#5818=ORIENTED_EDGE('',*,*,#13754,.F.); -#5819=ORIENTED_EDGE('',*,*,#13707,.F.); -#5820=ORIENTED_EDGE('',*,*,#13945,.T.); -#5821=ORIENTED_EDGE('',*,*,#13373,.F.); -#5822=ORIENTED_EDGE('',*,*,#13987,.T.); -#5823=ORIENTED_EDGE('',*,*,#13267,.F.); -#5824=ORIENTED_EDGE('',*,*,#13987,.F.); -#5825=ORIENTED_EDGE('',*,*,#13372,.F.); -#5826=ORIENTED_EDGE('',*,*,#13523,.T.); -#5827=ORIENTED_EDGE('',*,*,#13268,.F.); -#5828=ORIENTED_EDGE('',*,*,#13988,.F.); -#5829=ORIENTED_EDGE('',*,*,#13375,.F.); -#5830=ORIENTED_EDGE('',*,*,#13944,.T.); -#5831=ORIENTED_EDGE('',*,*,#13705,.F.); -#5832=ORIENTED_EDGE('',*,*,#13755,.F.); -#5833=ORIENTED_EDGE('',*,*,#13265,.F.); -#5834=ORIENTED_EDGE('',*,*,#13525,.F.); -#5835=ORIENTED_EDGE('',*,*,#13376,.F.); -#5836=ORIENTED_EDGE('',*,*,#13988,.T.); -#5837=ORIENTED_EDGE('',*,*,#13264,.F.); -#5838=ORIENTED_EDGE('',*,*,#13752,.F.); -#5839=ORIENTED_EDGE('',*,*,#13703,.F.); -#5840=ORIENTED_EDGE('',*,*,#13943,.T.); -#5841=ORIENTED_EDGE('',*,*,#13381,.F.); -#5842=ORIENTED_EDGE('',*,*,#13989,.T.); -#5843=ORIENTED_EDGE('',*,*,#13259,.F.); -#5844=ORIENTED_EDGE('',*,*,#13989,.F.); -#5845=ORIENTED_EDGE('',*,*,#13380,.F.); -#5846=ORIENTED_EDGE('',*,*,#13527,.T.); -#5847=ORIENTED_EDGE('',*,*,#13260,.F.); -#5848=ORIENTED_EDGE('',*,*,#13990,.F.); -#5849=ORIENTED_EDGE('',*,*,#13383,.F.); -#5850=ORIENTED_EDGE('',*,*,#13942,.T.); -#5851=ORIENTED_EDGE('',*,*,#13701,.F.); -#5852=ORIENTED_EDGE('',*,*,#13753,.F.); -#5853=ORIENTED_EDGE('',*,*,#13257,.F.); -#5854=ORIENTED_EDGE('',*,*,#13529,.F.); -#5855=ORIENTED_EDGE('',*,*,#13384,.F.); -#5856=ORIENTED_EDGE('',*,*,#13990,.T.); -#5857=ORIENTED_EDGE('',*,*,#13256,.F.); -#5858=ORIENTED_EDGE('',*,*,#13750,.F.); -#5859=ORIENTED_EDGE('',*,*,#13699,.F.); -#5860=ORIENTED_EDGE('',*,*,#13941,.T.); -#5861=ORIENTED_EDGE('',*,*,#13389,.F.); -#5862=ORIENTED_EDGE('',*,*,#13991,.T.); -#5863=ORIENTED_EDGE('',*,*,#13251,.F.); -#5864=ORIENTED_EDGE('',*,*,#13991,.F.); -#5865=ORIENTED_EDGE('',*,*,#13388,.F.); -#5866=ORIENTED_EDGE('',*,*,#13531,.T.); -#5867=ORIENTED_EDGE('',*,*,#13252,.F.); -#5868=ORIENTED_EDGE('',*,*,#13992,.F.); -#5869=ORIENTED_EDGE('',*,*,#13391,.F.); -#5870=ORIENTED_EDGE('',*,*,#13940,.T.); -#5871=ORIENTED_EDGE('',*,*,#13697,.F.); -#5872=ORIENTED_EDGE('',*,*,#13751,.F.); -#5873=ORIENTED_EDGE('',*,*,#13249,.F.); -#5874=ORIENTED_EDGE('',*,*,#13533,.F.); -#5875=ORIENTED_EDGE('',*,*,#13392,.F.); -#5876=ORIENTED_EDGE('',*,*,#13992,.T.); -#5877=ORIENTED_EDGE('',*,*,#13248,.F.); -#5878=ORIENTED_EDGE('',*,*,#13748,.F.); -#5879=ORIENTED_EDGE('',*,*,#13695,.F.); -#5880=ORIENTED_EDGE('',*,*,#13939,.T.); -#5881=ORIENTED_EDGE('',*,*,#13397,.F.); -#5882=ORIENTED_EDGE('',*,*,#13993,.T.); -#5883=ORIENTED_EDGE('',*,*,#13243,.F.); -#5884=ORIENTED_EDGE('',*,*,#13993,.F.); -#5885=ORIENTED_EDGE('',*,*,#13396,.F.); -#5886=ORIENTED_EDGE('',*,*,#13535,.T.); -#5887=ORIENTED_EDGE('',*,*,#13244,.F.); -#5888=ORIENTED_EDGE('',*,*,#13994,.F.); -#5889=ORIENTED_EDGE('',*,*,#13399,.F.); -#5890=ORIENTED_EDGE('',*,*,#13938,.T.); -#5891=ORIENTED_EDGE('',*,*,#13693,.F.); -#5892=ORIENTED_EDGE('',*,*,#13749,.F.); -#5893=ORIENTED_EDGE('',*,*,#13241,.F.); -#5894=ORIENTED_EDGE('',*,*,#13537,.F.); -#5895=ORIENTED_EDGE('',*,*,#13400,.F.); -#5896=ORIENTED_EDGE('',*,*,#13994,.T.); -#5897=ORIENTED_EDGE('',*,*,#13240,.F.); -#5898=ORIENTED_EDGE('',*,*,#13746,.F.); -#5899=ORIENTED_EDGE('',*,*,#13691,.F.); -#5900=ORIENTED_EDGE('',*,*,#13937,.T.); -#5901=ORIENTED_EDGE('',*,*,#13405,.F.); -#5902=ORIENTED_EDGE('',*,*,#13995,.T.); -#5903=ORIENTED_EDGE('',*,*,#13235,.F.); -#5904=ORIENTED_EDGE('',*,*,#13995,.F.); -#5905=ORIENTED_EDGE('',*,*,#13404,.F.); -#5906=ORIENTED_EDGE('',*,*,#13539,.T.); -#5907=ORIENTED_EDGE('',*,*,#13236,.F.); -#5908=ORIENTED_EDGE('',*,*,#13996,.F.); -#5909=ORIENTED_EDGE('',*,*,#13407,.F.); -#5910=ORIENTED_EDGE('',*,*,#13936,.T.); -#5911=ORIENTED_EDGE('',*,*,#13689,.F.); -#5912=ORIENTED_EDGE('',*,*,#13747,.F.); -#5913=ORIENTED_EDGE('',*,*,#13233,.F.); -#5914=ORIENTED_EDGE('',*,*,#13541,.F.); -#5915=ORIENTED_EDGE('',*,*,#13408,.F.); -#5916=ORIENTED_EDGE('',*,*,#13996,.T.); -#5917=ORIENTED_EDGE('',*,*,#13232,.F.); -#5918=ORIENTED_EDGE('',*,*,#13744,.F.); -#5919=ORIENTED_EDGE('',*,*,#13687,.F.); -#5920=ORIENTED_EDGE('',*,*,#13935,.T.); -#5921=ORIENTED_EDGE('',*,*,#13413,.F.); -#5922=ORIENTED_EDGE('',*,*,#13997,.T.); -#5923=ORIENTED_EDGE('',*,*,#13227,.F.); -#5924=ORIENTED_EDGE('',*,*,#13997,.F.); -#5925=ORIENTED_EDGE('',*,*,#13412,.F.); -#5926=ORIENTED_EDGE('',*,*,#13543,.T.); -#5927=ORIENTED_EDGE('',*,*,#13228,.F.); -#5928=ORIENTED_EDGE('',*,*,#13998,.F.); -#5929=ORIENTED_EDGE('',*,*,#13415,.F.); -#5930=ORIENTED_EDGE('',*,*,#13934,.T.); -#5931=ORIENTED_EDGE('',*,*,#13685,.F.); -#5932=ORIENTED_EDGE('',*,*,#13745,.F.); -#5933=ORIENTED_EDGE('',*,*,#13225,.F.); -#5934=ORIENTED_EDGE('',*,*,#13545,.F.); -#5935=ORIENTED_EDGE('',*,*,#13416,.F.); -#5936=ORIENTED_EDGE('',*,*,#13998,.T.); -#5937=ORIENTED_EDGE('',*,*,#13224,.F.); -#5938=ORIENTED_EDGE('',*,*,#13742,.F.); -#5939=ORIENTED_EDGE('',*,*,#13683,.F.); -#5940=ORIENTED_EDGE('',*,*,#13933,.T.); -#5941=ORIENTED_EDGE('',*,*,#13421,.F.); -#5942=ORIENTED_EDGE('',*,*,#13999,.T.); -#5943=ORIENTED_EDGE('',*,*,#13219,.F.); -#5944=ORIENTED_EDGE('',*,*,#13999,.F.); -#5945=ORIENTED_EDGE('',*,*,#13420,.F.); -#5946=ORIENTED_EDGE('',*,*,#13547,.T.); -#5947=ORIENTED_EDGE('',*,*,#13220,.F.); -#5948=ORIENTED_EDGE('',*,*,#14000,.F.); -#5949=ORIENTED_EDGE('',*,*,#13423,.F.); -#5950=ORIENTED_EDGE('',*,*,#13932,.T.); -#5951=ORIENTED_EDGE('',*,*,#13681,.F.); -#5952=ORIENTED_EDGE('',*,*,#13743,.F.); -#5953=ORIENTED_EDGE('',*,*,#13217,.F.); -#5954=ORIENTED_EDGE('',*,*,#13549,.F.); -#5955=ORIENTED_EDGE('',*,*,#13424,.F.); -#5956=ORIENTED_EDGE('',*,*,#14000,.T.); -#5957=ORIENTED_EDGE('',*,*,#13216,.F.); -#5958=ORIENTED_EDGE('',*,*,#13740,.F.); -#5959=ORIENTED_EDGE('',*,*,#13679,.F.); -#5960=ORIENTED_EDGE('',*,*,#13931,.T.); -#5961=ORIENTED_EDGE('',*,*,#13429,.F.); -#5962=ORIENTED_EDGE('',*,*,#14001,.T.); -#5963=ORIENTED_EDGE('',*,*,#13211,.F.); -#5964=ORIENTED_EDGE('',*,*,#14001,.F.); -#5965=ORIENTED_EDGE('',*,*,#13428,.F.); -#5966=ORIENTED_EDGE('',*,*,#13551,.T.); -#5967=ORIENTED_EDGE('',*,*,#13212,.F.); -#5968=ORIENTED_EDGE('',*,*,#14002,.F.); -#5969=ORIENTED_EDGE('',*,*,#13431,.F.); -#5970=ORIENTED_EDGE('',*,*,#13930,.T.); -#5971=ORIENTED_EDGE('',*,*,#13677,.F.); -#5972=ORIENTED_EDGE('',*,*,#13741,.F.); -#5973=ORIENTED_EDGE('',*,*,#13209,.F.); -#5974=ORIENTED_EDGE('',*,*,#13553,.F.); -#5975=ORIENTED_EDGE('',*,*,#13432,.F.); -#5976=ORIENTED_EDGE('',*,*,#14002,.T.); -#5977=ORIENTED_EDGE('',*,*,#13208,.F.); -#5978=ORIENTED_EDGE('',*,*,#13738,.F.); -#5979=ORIENTED_EDGE('',*,*,#13675,.F.); -#5980=ORIENTED_EDGE('',*,*,#13929,.T.); -#5981=ORIENTED_EDGE('',*,*,#13437,.F.); -#5982=ORIENTED_EDGE('',*,*,#14003,.T.); -#5983=ORIENTED_EDGE('',*,*,#13203,.F.); -#5984=ORIENTED_EDGE('',*,*,#14003,.F.); -#5985=ORIENTED_EDGE('',*,*,#13436,.F.); -#5986=ORIENTED_EDGE('',*,*,#13555,.T.); -#5987=ORIENTED_EDGE('',*,*,#13204,.F.); -#5988=ORIENTED_EDGE('',*,*,#14004,.F.); -#5989=ORIENTED_EDGE('',*,*,#13439,.F.); -#5990=ORIENTED_EDGE('',*,*,#13928,.T.); -#5991=ORIENTED_EDGE('',*,*,#13673,.F.); -#5992=ORIENTED_EDGE('',*,*,#13739,.F.); -#5993=ORIENTED_EDGE('',*,*,#13201,.F.); -#5994=ORIENTED_EDGE('',*,*,#13557,.F.); -#5995=ORIENTED_EDGE('',*,*,#13440,.F.); -#5996=ORIENTED_EDGE('',*,*,#14004,.T.); -#5997=ORIENTED_EDGE('',*,*,#13200,.F.); -#5998=ORIENTED_EDGE('',*,*,#13736,.F.); -#5999=ORIENTED_EDGE('',*,*,#13671,.F.); -#6000=ORIENTED_EDGE('',*,*,#13927,.T.); -#6001=ORIENTED_EDGE('',*,*,#13445,.F.); -#6002=ORIENTED_EDGE('',*,*,#14005,.T.); -#6003=ORIENTED_EDGE('',*,*,#13195,.F.); -#6004=ORIENTED_EDGE('',*,*,#14005,.F.); -#6005=ORIENTED_EDGE('',*,*,#13444,.F.); -#6006=ORIENTED_EDGE('',*,*,#13559,.T.); -#6007=ORIENTED_EDGE('',*,*,#13196,.F.); -#6008=ORIENTED_EDGE('',*,*,#14006,.F.); -#6009=ORIENTED_EDGE('',*,*,#13447,.F.); -#6010=ORIENTED_EDGE('',*,*,#13926,.T.); -#6011=ORIENTED_EDGE('',*,*,#13669,.F.); -#6012=ORIENTED_EDGE('',*,*,#13737,.F.); -#6013=ORIENTED_EDGE('',*,*,#13193,.F.); -#6014=ORIENTED_EDGE('',*,*,#13561,.F.); -#6015=ORIENTED_EDGE('',*,*,#13448,.F.); -#6016=ORIENTED_EDGE('',*,*,#14006,.T.); -#6017=ORIENTED_EDGE('',*,*,#13192,.F.); -#6018=ORIENTED_EDGE('',*,*,#13734,.F.); -#6019=ORIENTED_EDGE('',*,*,#13667,.F.); -#6020=ORIENTED_EDGE('',*,*,#13925,.T.); -#6021=ORIENTED_EDGE('',*,*,#13453,.F.); -#6022=ORIENTED_EDGE('',*,*,#14007,.T.); -#6023=ORIENTED_EDGE('',*,*,#13187,.F.); -#6024=ORIENTED_EDGE('',*,*,#14007,.F.); -#6025=ORIENTED_EDGE('',*,*,#13452,.F.); -#6026=ORIENTED_EDGE('',*,*,#13563,.T.); -#6027=ORIENTED_EDGE('',*,*,#13188,.F.); -#6028=ORIENTED_EDGE('',*,*,#14008,.F.); -#6029=ORIENTED_EDGE('',*,*,#13455,.F.); -#6030=ORIENTED_EDGE('',*,*,#13924,.T.); -#6031=ORIENTED_EDGE('',*,*,#13665,.F.); -#6032=ORIENTED_EDGE('',*,*,#13735,.F.); -#6033=ORIENTED_EDGE('',*,*,#13185,.F.); -#6034=ORIENTED_EDGE('',*,*,#13565,.F.); -#6035=ORIENTED_EDGE('',*,*,#13456,.F.); -#6036=ORIENTED_EDGE('',*,*,#14008,.T.); -#6037=ORIENTED_EDGE('',*,*,#13184,.F.); -#6038=ORIENTED_EDGE('',*,*,#13732,.F.); -#6039=ORIENTED_EDGE('',*,*,#13663,.F.); -#6040=ORIENTED_EDGE('',*,*,#13923,.T.); -#6041=ORIENTED_EDGE('',*,*,#13461,.F.); -#6042=ORIENTED_EDGE('',*,*,#14009,.T.); -#6043=ORIENTED_EDGE('',*,*,#13179,.F.); -#6044=ORIENTED_EDGE('',*,*,#14009,.F.); -#6045=ORIENTED_EDGE('',*,*,#13460,.F.); -#6046=ORIENTED_EDGE('',*,*,#13567,.T.); -#6047=ORIENTED_EDGE('',*,*,#13180,.F.); -#6048=ORIENTED_EDGE('',*,*,#14010,.F.); -#6049=ORIENTED_EDGE('',*,*,#13463,.F.); -#6050=ORIENTED_EDGE('',*,*,#13922,.T.); -#6051=ORIENTED_EDGE('',*,*,#13661,.F.); -#6052=ORIENTED_EDGE('',*,*,#13733,.F.); -#6053=ORIENTED_EDGE('',*,*,#13177,.F.); -#6054=ORIENTED_EDGE('',*,*,#13569,.F.); -#6055=ORIENTED_EDGE('',*,*,#13464,.F.); -#6056=ORIENTED_EDGE('',*,*,#14010,.T.); -#6057=ORIENTED_EDGE('',*,*,#13176,.F.); -#6058=ORIENTED_EDGE('',*,*,#13730,.F.); -#6059=ORIENTED_EDGE('',*,*,#13659,.F.); -#6060=ORIENTED_EDGE('',*,*,#13921,.T.); -#6061=ORIENTED_EDGE('',*,*,#13469,.F.); -#6062=ORIENTED_EDGE('',*,*,#14011,.T.); -#6063=ORIENTED_EDGE('',*,*,#13171,.F.); -#6064=ORIENTED_EDGE('',*,*,#14011,.F.); -#6065=ORIENTED_EDGE('',*,*,#13468,.F.); -#6066=ORIENTED_EDGE('',*,*,#13571,.T.); -#6067=ORIENTED_EDGE('',*,*,#13172,.F.); -#6068=ORIENTED_EDGE('',*,*,#14012,.F.); -#6069=ORIENTED_EDGE('',*,*,#13471,.F.); -#6070=ORIENTED_EDGE('',*,*,#13920,.T.); -#6071=ORIENTED_EDGE('',*,*,#13657,.F.); -#6072=ORIENTED_EDGE('',*,*,#13731,.F.); -#6073=ORIENTED_EDGE('',*,*,#13169,.F.); -#6074=ORIENTED_EDGE('',*,*,#13573,.F.); -#6075=ORIENTED_EDGE('',*,*,#13472,.F.); -#6076=ORIENTED_EDGE('',*,*,#14012,.T.); -#6077=ORIENTED_EDGE('',*,*,#13168,.F.); -#6078=ORIENTED_EDGE('',*,*,#13728,.F.); -#6079=ORIENTED_EDGE('',*,*,#13655,.F.); -#6080=ORIENTED_EDGE('',*,*,#13919,.T.); -#6081=ORIENTED_EDGE('',*,*,#13477,.F.); -#6082=ORIENTED_EDGE('',*,*,#14013,.T.); -#6083=ORIENTED_EDGE('',*,*,#13163,.F.); -#6084=ORIENTED_EDGE('',*,*,#14013,.F.); -#6085=ORIENTED_EDGE('',*,*,#13476,.F.); -#6086=ORIENTED_EDGE('',*,*,#13575,.T.); -#6087=ORIENTED_EDGE('',*,*,#13164,.F.); -#6088=ORIENTED_EDGE('',*,*,#13964,.F.); -#6089=ORIENTED_EDGE('',*,*,#13966,.F.); -#6090=ORIENTED_EDGE('',*,*,#13968,.T.); -#6091=ORIENTED_EDGE('',*,*,#12985,.F.); -#6092=ORIENTED_EDGE('',*,*,#14014,.F.); -#6093=ORIENTED_EDGE('',*,*,#12999,.F.); -#6094=ORIENTED_EDGE('',*,*,#14014,.T.); -#6095=ORIENTED_EDGE('',*,*,#12984,.F.); -#6096=ORIENTED_EDGE('',*,*,#13577,.F.); -#6097=ORIENTED_EDGE('',*,*,#13000,.F.); -#6098=ORIENTED_EDGE('',*,*,#13579,.T.); -#6099=ORIENTED_EDGE('',*,*,#12980,.F.); -#6100=ORIENTED_EDGE('',*,*,#14015,.F.); -#6101=ORIENTED_EDGE('',*,*,#13004,.F.); -#6102=ORIENTED_EDGE('',*,*,#14015,.T.); -#6103=ORIENTED_EDGE('',*,*,#12979,.F.); -#6104=ORIENTED_EDGE('',*,*,#13917,.T.); -#6105=ORIENTED_EDGE('',*,*,#13879,.F.); -#6106=ORIENTED_EDGE('',*,*,#13820,.F.); -#6107=ORIENTED_EDGE('',*,*,#13005,.F.); -#6108=ORIENTED_EDGE('',*,*,#13822,.F.); -#6109=ORIENTED_EDGE('',*,*,#13878,.F.); -#6110=ORIENTED_EDGE('',*,*,#13916,.T.); -#6111=ORIENTED_EDGE('',*,*,#12977,.F.); -#6112=ORIENTED_EDGE('',*,*,#14016,.F.); -#6113=ORIENTED_EDGE('',*,*,#13007,.F.); -#6114=ORIENTED_EDGE('',*,*,#14016,.T.); -#6115=ORIENTED_EDGE('',*,*,#12976,.F.); -#6116=ORIENTED_EDGE('',*,*,#13581,.F.); -#6117=ORIENTED_EDGE('',*,*,#13008,.F.); -#6118=ORIENTED_EDGE('',*,*,#13583,.T.); -#6119=ORIENTED_EDGE('',*,*,#12972,.F.); -#6120=ORIENTED_EDGE('',*,*,#14017,.F.); -#6121=ORIENTED_EDGE('',*,*,#13012,.F.); -#6122=ORIENTED_EDGE('',*,*,#14017,.T.); -#6123=ORIENTED_EDGE('',*,*,#12971,.F.); -#6124=ORIENTED_EDGE('',*,*,#13915,.T.); -#6125=ORIENTED_EDGE('',*,*,#13876,.F.); -#6126=ORIENTED_EDGE('',*,*,#13817,.F.); -#6127=ORIENTED_EDGE('',*,*,#13013,.F.); -#6128=ORIENTED_EDGE('',*,*,#13819,.F.); -#6129=ORIENTED_EDGE('',*,*,#13875,.F.); -#6130=ORIENTED_EDGE('',*,*,#13914,.T.); -#6131=ORIENTED_EDGE('',*,*,#12969,.F.); -#6132=ORIENTED_EDGE('',*,*,#14018,.F.); -#6133=ORIENTED_EDGE('',*,*,#13015,.F.); -#6134=ORIENTED_EDGE('',*,*,#14018,.T.); -#6135=ORIENTED_EDGE('',*,*,#12968,.F.); -#6136=ORIENTED_EDGE('',*,*,#13585,.F.); -#6137=ORIENTED_EDGE('',*,*,#13016,.F.); -#6138=ORIENTED_EDGE('',*,*,#13587,.T.); -#6139=ORIENTED_EDGE('',*,*,#12964,.F.); -#6140=ORIENTED_EDGE('',*,*,#14019,.F.); -#6141=ORIENTED_EDGE('',*,*,#13020,.F.); -#6142=ORIENTED_EDGE('',*,*,#14019,.T.); -#6143=ORIENTED_EDGE('',*,*,#12963,.F.); -#6144=ORIENTED_EDGE('',*,*,#13913,.T.); -#6145=ORIENTED_EDGE('',*,*,#13873,.F.); -#6146=ORIENTED_EDGE('',*,*,#13814,.F.); -#6147=ORIENTED_EDGE('',*,*,#13021,.F.); -#6148=ORIENTED_EDGE('',*,*,#13816,.F.); -#6149=ORIENTED_EDGE('',*,*,#13872,.F.); -#6150=ORIENTED_EDGE('',*,*,#13912,.T.); -#6151=ORIENTED_EDGE('',*,*,#12961,.F.); -#6152=ORIENTED_EDGE('',*,*,#14020,.F.); -#6153=ORIENTED_EDGE('',*,*,#13023,.F.); -#6154=ORIENTED_EDGE('',*,*,#14020,.T.); -#6155=ORIENTED_EDGE('',*,*,#12960,.F.); -#6156=ORIENTED_EDGE('',*,*,#13589,.F.); -#6157=ORIENTED_EDGE('',*,*,#13024,.F.); -#6158=ORIENTED_EDGE('',*,*,#13591,.T.); -#6159=ORIENTED_EDGE('',*,*,#12956,.F.); -#6160=ORIENTED_EDGE('',*,*,#14021,.F.); -#6161=ORIENTED_EDGE('',*,*,#13028,.F.); -#6162=ORIENTED_EDGE('',*,*,#14021,.T.); -#6163=ORIENTED_EDGE('',*,*,#12955,.F.); -#6164=ORIENTED_EDGE('',*,*,#13911,.T.); -#6165=ORIENTED_EDGE('',*,*,#13870,.F.); -#6166=ORIENTED_EDGE('',*,*,#13811,.F.); -#6167=ORIENTED_EDGE('',*,*,#13029,.F.); -#6168=ORIENTED_EDGE('',*,*,#13813,.F.); -#6169=ORIENTED_EDGE('',*,*,#13869,.F.); -#6170=ORIENTED_EDGE('',*,*,#13910,.T.); -#6171=ORIENTED_EDGE('',*,*,#12953,.F.); -#6172=ORIENTED_EDGE('',*,*,#14022,.F.); -#6173=ORIENTED_EDGE('',*,*,#13031,.F.); -#6174=ORIENTED_EDGE('',*,*,#14022,.T.); -#6175=ORIENTED_EDGE('',*,*,#12952,.F.); -#6176=ORIENTED_EDGE('',*,*,#13593,.F.); -#6177=ORIENTED_EDGE('',*,*,#13032,.F.); -#6178=ORIENTED_EDGE('',*,*,#13595,.T.); -#6179=ORIENTED_EDGE('',*,*,#12948,.F.); -#6180=ORIENTED_EDGE('',*,*,#14023,.F.); -#6181=ORIENTED_EDGE('',*,*,#13036,.F.); -#6182=ORIENTED_EDGE('',*,*,#14023,.T.); -#6183=ORIENTED_EDGE('',*,*,#12947,.F.); -#6184=ORIENTED_EDGE('',*,*,#13909,.T.); -#6185=ORIENTED_EDGE('',*,*,#13867,.F.); -#6186=ORIENTED_EDGE('',*,*,#13808,.F.); -#6187=ORIENTED_EDGE('',*,*,#13037,.F.); -#6188=ORIENTED_EDGE('',*,*,#13810,.F.); -#6189=ORIENTED_EDGE('',*,*,#13866,.F.); -#6190=ORIENTED_EDGE('',*,*,#13908,.T.); -#6191=ORIENTED_EDGE('',*,*,#12945,.F.); -#6192=ORIENTED_EDGE('',*,*,#14024,.F.); -#6193=ORIENTED_EDGE('',*,*,#13039,.F.); -#6194=ORIENTED_EDGE('',*,*,#14024,.T.); -#6195=ORIENTED_EDGE('',*,*,#12944,.F.); -#6196=ORIENTED_EDGE('',*,*,#13597,.F.); -#6197=ORIENTED_EDGE('',*,*,#13040,.F.); -#6198=ORIENTED_EDGE('',*,*,#13599,.T.); -#6199=ORIENTED_EDGE('',*,*,#12940,.F.); -#6200=ORIENTED_EDGE('',*,*,#14025,.F.); -#6201=ORIENTED_EDGE('',*,*,#13044,.F.); -#6202=ORIENTED_EDGE('',*,*,#14025,.T.); -#6203=ORIENTED_EDGE('',*,*,#12939,.F.); -#6204=ORIENTED_EDGE('',*,*,#13907,.T.); -#6205=ORIENTED_EDGE('',*,*,#13864,.F.); -#6206=ORIENTED_EDGE('',*,*,#13805,.F.); -#6207=ORIENTED_EDGE('',*,*,#13045,.F.); -#6208=ORIENTED_EDGE('',*,*,#13807,.F.); -#6209=ORIENTED_EDGE('',*,*,#13863,.F.); -#6210=ORIENTED_EDGE('',*,*,#13906,.T.); -#6211=ORIENTED_EDGE('',*,*,#12937,.F.); -#6212=ORIENTED_EDGE('',*,*,#14026,.F.); -#6213=ORIENTED_EDGE('',*,*,#13047,.F.); -#6214=ORIENTED_EDGE('',*,*,#14026,.T.); -#6215=ORIENTED_EDGE('',*,*,#12936,.F.); -#6216=ORIENTED_EDGE('',*,*,#13601,.F.); -#6217=ORIENTED_EDGE('',*,*,#13048,.F.); -#6218=ORIENTED_EDGE('',*,*,#13603,.T.); -#6219=ORIENTED_EDGE('',*,*,#12932,.F.); -#6220=ORIENTED_EDGE('',*,*,#14027,.F.); -#6221=ORIENTED_EDGE('',*,*,#13052,.F.); -#6222=ORIENTED_EDGE('',*,*,#14027,.T.); -#6223=ORIENTED_EDGE('',*,*,#12931,.F.); -#6224=ORIENTED_EDGE('',*,*,#13905,.T.); -#6225=ORIENTED_EDGE('',*,*,#13861,.F.); -#6226=ORIENTED_EDGE('',*,*,#13802,.F.); -#6227=ORIENTED_EDGE('',*,*,#13053,.F.); -#6228=ORIENTED_EDGE('',*,*,#13804,.F.); -#6229=ORIENTED_EDGE('',*,*,#13860,.F.); -#6230=ORIENTED_EDGE('',*,*,#13904,.T.); -#6231=ORIENTED_EDGE('',*,*,#12929,.F.); -#6232=ORIENTED_EDGE('',*,*,#14028,.F.); -#6233=ORIENTED_EDGE('',*,*,#13055,.F.); -#6234=ORIENTED_EDGE('',*,*,#14028,.T.); -#6235=ORIENTED_EDGE('',*,*,#12928,.F.); -#6236=ORIENTED_EDGE('',*,*,#13605,.F.); -#6237=ORIENTED_EDGE('',*,*,#13056,.F.); -#6238=ORIENTED_EDGE('',*,*,#13607,.T.); -#6239=ORIENTED_EDGE('',*,*,#12924,.F.); -#6240=ORIENTED_EDGE('',*,*,#14029,.F.); -#6241=ORIENTED_EDGE('',*,*,#13060,.F.); -#6242=ORIENTED_EDGE('',*,*,#14029,.T.); -#6243=ORIENTED_EDGE('',*,*,#12923,.F.); -#6244=ORIENTED_EDGE('',*,*,#13903,.T.); -#6245=ORIENTED_EDGE('',*,*,#13858,.F.); -#6246=ORIENTED_EDGE('',*,*,#13799,.F.); -#6247=ORIENTED_EDGE('',*,*,#13061,.F.); -#6248=ORIENTED_EDGE('',*,*,#13801,.F.); -#6249=ORIENTED_EDGE('',*,*,#13857,.F.); -#6250=ORIENTED_EDGE('',*,*,#13902,.T.); -#6251=ORIENTED_EDGE('',*,*,#12921,.F.); -#6252=ORIENTED_EDGE('',*,*,#14030,.F.); -#6253=ORIENTED_EDGE('',*,*,#13063,.F.); -#6254=ORIENTED_EDGE('',*,*,#14030,.T.); -#6255=ORIENTED_EDGE('',*,*,#12920,.F.); -#6256=ORIENTED_EDGE('',*,*,#13609,.F.); -#6257=ORIENTED_EDGE('',*,*,#13064,.F.); -#6258=ORIENTED_EDGE('',*,*,#13611,.T.); -#6259=ORIENTED_EDGE('',*,*,#12916,.F.); -#6260=ORIENTED_EDGE('',*,*,#14031,.F.); -#6261=ORIENTED_EDGE('',*,*,#13068,.F.); -#6262=ORIENTED_EDGE('',*,*,#14031,.T.); -#6263=ORIENTED_EDGE('',*,*,#12915,.F.); -#6264=ORIENTED_EDGE('',*,*,#13901,.T.); -#6265=ORIENTED_EDGE('',*,*,#13855,.F.); -#6266=ORIENTED_EDGE('',*,*,#13796,.F.); -#6267=ORIENTED_EDGE('',*,*,#13069,.F.); -#6268=ORIENTED_EDGE('',*,*,#13798,.F.); -#6269=ORIENTED_EDGE('',*,*,#13854,.F.); -#6270=ORIENTED_EDGE('',*,*,#13900,.T.); -#6271=ORIENTED_EDGE('',*,*,#12913,.F.); -#6272=ORIENTED_EDGE('',*,*,#14032,.F.); -#6273=ORIENTED_EDGE('',*,*,#13071,.F.); -#6274=ORIENTED_EDGE('',*,*,#14032,.T.); -#6275=ORIENTED_EDGE('',*,*,#12912,.F.); -#6276=ORIENTED_EDGE('',*,*,#13613,.F.); -#6277=ORIENTED_EDGE('',*,*,#13072,.F.); -#6278=ORIENTED_EDGE('',*,*,#13615,.T.); -#6279=ORIENTED_EDGE('',*,*,#12908,.F.); -#6280=ORIENTED_EDGE('',*,*,#14033,.F.); -#6281=ORIENTED_EDGE('',*,*,#13076,.F.); -#6282=ORIENTED_EDGE('',*,*,#14033,.T.); -#6283=ORIENTED_EDGE('',*,*,#12907,.F.); -#6284=ORIENTED_EDGE('',*,*,#13899,.T.); -#6285=ORIENTED_EDGE('',*,*,#13852,.F.); -#6286=ORIENTED_EDGE('',*,*,#13793,.F.); -#6287=ORIENTED_EDGE('',*,*,#13077,.F.); -#6288=ORIENTED_EDGE('',*,*,#13795,.F.); -#6289=ORIENTED_EDGE('',*,*,#13851,.F.); -#6290=ORIENTED_EDGE('',*,*,#13898,.T.); -#6291=ORIENTED_EDGE('',*,*,#12905,.F.); -#6292=ORIENTED_EDGE('',*,*,#14034,.F.); -#6293=ORIENTED_EDGE('',*,*,#13079,.F.); -#6294=ORIENTED_EDGE('',*,*,#14034,.T.); -#6295=ORIENTED_EDGE('',*,*,#12904,.F.); -#6296=ORIENTED_EDGE('',*,*,#13617,.F.); -#6297=ORIENTED_EDGE('',*,*,#13080,.F.); -#6298=ORIENTED_EDGE('',*,*,#13619,.T.); -#6299=ORIENTED_EDGE('',*,*,#12900,.F.); -#6300=ORIENTED_EDGE('',*,*,#14035,.F.); -#6301=ORIENTED_EDGE('',*,*,#13084,.F.); -#6302=ORIENTED_EDGE('',*,*,#14035,.T.); -#6303=ORIENTED_EDGE('',*,*,#12899,.F.); -#6304=ORIENTED_EDGE('',*,*,#13897,.T.); -#6305=ORIENTED_EDGE('',*,*,#13849,.F.); -#6306=ORIENTED_EDGE('',*,*,#13790,.F.); -#6307=ORIENTED_EDGE('',*,*,#13085,.F.); -#6308=ORIENTED_EDGE('',*,*,#13792,.F.); -#6309=ORIENTED_EDGE('',*,*,#13848,.F.); -#6310=ORIENTED_EDGE('',*,*,#13896,.T.); -#6311=ORIENTED_EDGE('',*,*,#12897,.F.); -#6312=ORIENTED_EDGE('',*,*,#14036,.F.); -#6313=ORIENTED_EDGE('',*,*,#13087,.F.); -#6314=ORIENTED_EDGE('',*,*,#14036,.T.); -#6315=ORIENTED_EDGE('',*,*,#12896,.F.); -#6316=ORIENTED_EDGE('',*,*,#13621,.F.); -#6317=ORIENTED_EDGE('',*,*,#13088,.F.); -#6318=ORIENTED_EDGE('',*,*,#13623,.T.); -#6319=ORIENTED_EDGE('',*,*,#12892,.F.); -#6320=ORIENTED_EDGE('',*,*,#14037,.F.); -#6321=ORIENTED_EDGE('',*,*,#13092,.F.); -#6322=ORIENTED_EDGE('',*,*,#14037,.T.); -#6323=ORIENTED_EDGE('',*,*,#12891,.F.); -#6324=ORIENTED_EDGE('',*,*,#13895,.T.); -#6325=ORIENTED_EDGE('',*,*,#13846,.F.); -#6326=ORIENTED_EDGE('',*,*,#13787,.F.); -#6327=ORIENTED_EDGE('',*,*,#13093,.F.); -#6328=ORIENTED_EDGE('',*,*,#13789,.F.); -#6329=ORIENTED_EDGE('',*,*,#13845,.F.); -#6330=ORIENTED_EDGE('',*,*,#13894,.T.); -#6331=ORIENTED_EDGE('',*,*,#12889,.F.); -#6332=ORIENTED_EDGE('',*,*,#14038,.F.); -#6333=ORIENTED_EDGE('',*,*,#13095,.F.); -#6334=ORIENTED_EDGE('',*,*,#14038,.T.); -#6335=ORIENTED_EDGE('',*,*,#12888,.F.); -#6336=ORIENTED_EDGE('',*,*,#13625,.F.); -#6337=ORIENTED_EDGE('',*,*,#13096,.F.); -#6338=ORIENTED_EDGE('',*,*,#13627,.T.); -#6339=ORIENTED_EDGE('',*,*,#12884,.F.); -#6340=ORIENTED_EDGE('',*,*,#14039,.F.); -#6341=ORIENTED_EDGE('',*,*,#13100,.F.); -#6342=ORIENTED_EDGE('',*,*,#14039,.T.); -#6343=ORIENTED_EDGE('',*,*,#12883,.F.); -#6344=ORIENTED_EDGE('',*,*,#13893,.T.); -#6345=ORIENTED_EDGE('',*,*,#13843,.F.); -#6346=ORIENTED_EDGE('',*,*,#13784,.F.); -#6347=ORIENTED_EDGE('',*,*,#13101,.F.); -#6348=ORIENTED_EDGE('',*,*,#13786,.F.); -#6349=ORIENTED_EDGE('',*,*,#13842,.F.); -#6350=ORIENTED_EDGE('',*,*,#13892,.T.); -#6351=ORIENTED_EDGE('',*,*,#12881,.F.); -#6352=ORIENTED_EDGE('',*,*,#14040,.F.); -#6353=ORIENTED_EDGE('',*,*,#13103,.F.); -#6354=ORIENTED_EDGE('',*,*,#14040,.T.); -#6355=ORIENTED_EDGE('',*,*,#12880,.F.); -#6356=ORIENTED_EDGE('',*,*,#13629,.F.); -#6357=ORIENTED_EDGE('',*,*,#13104,.F.); -#6358=ORIENTED_EDGE('',*,*,#13631,.T.); -#6359=ORIENTED_EDGE('',*,*,#12876,.F.); -#6360=ORIENTED_EDGE('',*,*,#14041,.F.); -#6361=ORIENTED_EDGE('',*,*,#13108,.F.); -#6362=ORIENTED_EDGE('',*,*,#14041,.T.); -#6363=ORIENTED_EDGE('',*,*,#12875,.F.); -#6364=ORIENTED_EDGE('',*,*,#13891,.T.); -#6365=ORIENTED_EDGE('',*,*,#13840,.F.); -#6366=ORIENTED_EDGE('',*,*,#13781,.F.); -#6367=ORIENTED_EDGE('',*,*,#13109,.F.); -#6368=ORIENTED_EDGE('',*,*,#13783,.F.); -#6369=ORIENTED_EDGE('',*,*,#13839,.F.); -#6370=ORIENTED_EDGE('',*,*,#13890,.T.); -#6371=ORIENTED_EDGE('',*,*,#12873,.F.); -#6372=ORIENTED_EDGE('',*,*,#14042,.F.); -#6373=ORIENTED_EDGE('',*,*,#13111,.F.); -#6374=ORIENTED_EDGE('',*,*,#14042,.T.); -#6375=ORIENTED_EDGE('',*,*,#12872,.F.); -#6376=ORIENTED_EDGE('',*,*,#13633,.F.); -#6377=ORIENTED_EDGE('',*,*,#13112,.F.); -#6378=ORIENTED_EDGE('',*,*,#13635,.T.); -#6379=ORIENTED_EDGE('',*,*,#12868,.F.); -#6380=ORIENTED_EDGE('',*,*,#14043,.F.); -#6381=ORIENTED_EDGE('',*,*,#13116,.F.); -#6382=ORIENTED_EDGE('',*,*,#14043,.T.); -#6383=ORIENTED_EDGE('',*,*,#12867,.F.); -#6384=ORIENTED_EDGE('',*,*,#13889,.T.); -#6385=ORIENTED_EDGE('',*,*,#13837,.F.); -#6386=ORIENTED_EDGE('',*,*,#13778,.F.); -#6387=ORIENTED_EDGE('',*,*,#13117,.F.); -#6388=ORIENTED_EDGE('',*,*,#13780,.F.); -#6389=ORIENTED_EDGE('',*,*,#13836,.F.); -#6390=ORIENTED_EDGE('',*,*,#13888,.T.); -#6391=ORIENTED_EDGE('',*,*,#12865,.F.); -#6392=ORIENTED_EDGE('',*,*,#14044,.F.); -#6393=ORIENTED_EDGE('',*,*,#13119,.F.); -#6394=ORIENTED_EDGE('',*,*,#14044,.T.); -#6395=ORIENTED_EDGE('',*,*,#12864,.F.); -#6396=ORIENTED_EDGE('',*,*,#13637,.F.); -#6397=ORIENTED_EDGE('',*,*,#13120,.F.); -#6398=ORIENTED_EDGE('',*,*,#13639,.T.); -#6399=ORIENTED_EDGE('',*,*,#12860,.F.); -#6400=ORIENTED_EDGE('',*,*,#14045,.F.); -#6401=ORIENTED_EDGE('',*,*,#13124,.F.); -#6402=ORIENTED_EDGE('',*,*,#14045,.T.); -#6403=ORIENTED_EDGE('',*,*,#12859,.F.); -#6404=ORIENTED_EDGE('',*,*,#13887,.T.); -#6405=ORIENTED_EDGE('',*,*,#13834,.F.); -#6406=ORIENTED_EDGE('',*,*,#13775,.F.); -#6407=ORIENTED_EDGE('',*,*,#13125,.F.); -#6408=ORIENTED_EDGE('',*,*,#13777,.F.); -#6409=ORIENTED_EDGE('',*,*,#13833,.F.); -#6410=ORIENTED_EDGE('',*,*,#13886,.T.); -#6411=ORIENTED_EDGE('',*,*,#12857,.F.); -#6412=ORIENTED_EDGE('',*,*,#14046,.F.); -#6413=ORIENTED_EDGE('',*,*,#13127,.F.); -#6414=ORIENTED_EDGE('',*,*,#14046,.T.); -#6415=ORIENTED_EDGE('',*,*,#12856,.F.); -#6416=ORIENTED_EDGE('',*,*,#13641,.F.); -#6417=ORIENTED_EDGE('',*,*,#13128,.F.); -#6418=ORIENTED_EDGE('',*,*,#13643,.T.); -#6419=ORIENTED_EDGE('',*,*,#12852,.F.); -#6420=ORIENTED_EDGE('',*,*,#14047,.F.); -#6421=ORIENTED_EDGE('',*,*,#13132,.F.); -#6422=ORIENTED_EDGE('',*,*,#14047,.T.); -#6423=ORIENTED_EDGE('',*,*,#12851,.F.); -#6424=ORIENTED_EDGE('',*,*,#13885,.T.); -#6425=ORIENTED_EDGE('',*,*,#13831,.F.); -#6426=ORIENTED_EDGE('',*,*,#13772,.F.); -#6427=ORIENTED_EDGE('',*,*,#13133,.F.); -#6428=ORIENTED_EDGE('',*,*,#13774,.F.); -#6429=ORIENTED_EDGE('',*,*,#13830,.F.); -#6430=ORIENTED_EDGE('',*,*,#13884,.T.); -#6431=ORIENTED_EDGE('',*,*,#12849,.F.); -#6432=ORIENTED_EDGE('',*,*,#14048,.F.); -#6433=ORIENTED_EDGE('',*,*,#13135,.F.); -#6434=ORIENTED_EDGE('',*,*,#14048,.T.); -#6435=ORIENTED_EDGE('',*,*,#12848,.F.); -#6436=ORIENTED_EDGE('',*,*,#13645,.F.); -#6437=ORIENTED_EDGE('',*,*,#13136,.F.); -#6438=ORIENTED_EDGE('',*,*,#13647,.T.); -#6439=ORIENTED_EDGE('',*,*,#12844,.F.); -#6440=ORIENTED_EDGE('',*,*,#14049,.F.); -#6441=ORIENTED_EDGE('',*,*,#13140,.F.); -#6442=ORIENTED_EDGE('',*,*,#14049,.T.); -#6443=ORIENTED_EDGE('',*,*,#12843,.F.); -#6444=ORIENTED_EDGE('',*,*,#13883,.T.); -#6445=ORIENTED_EDGE('',*,*,#13828,.F.); -#6446=ORIENTED_EDGE('',*,*,#13769,.F.); -#6447=ORIENTED_EDGE('',*,*,#13141,.F.); -#6448=ORIENTED_EDGE('',*,*,#13649,.T.); -#6449=ORIENTED_EDGE('',*,*,#12836,.F.); -#6450=ORIENTED_EDGE('',*,*,#14050,.F.); -#6451=ORIENTED_EDGE('',*,*,#13148,.F.); -#6452=ORIENTED_EDGE('',*,*,#14051,.T.); -#6453=ORIENTED_EDGE('',*,*,#12840,.F.); -#6454=ORIENTED_EDGE('',*,*,#13651,.F.); -#6455=ORIENTED_EDGE('',*,*,#13144,.F.); -#6456=ORIENTED_EDGE('',*,*,#14050,.T.); -#6457=ORIENTED_EDGE('',*,*,#12835,.F.); -#6458=ORIENTED_EDGE('',*,*,#13881,.T.); -#6459=ORIENTED_EDGE('',*,*,#13825,.F.); -#6460=ORIENTED_EDGE('',*,*,#13766,.F.); -#6461=ORIENTED_EDGE('',*,*,#13149,.F.); -#6462=ORIENTED_EDGE('',*,*,#13771,.F.); -#6463=ORIENTED_EDGE('',*,*,#13827,.F.); -#6464=ORIENTED_EDGE('',*,*,#13882,.T.); -#6465=ORIENTED_EDGE('',*,*,#12841,.F.); -#6466=ORIENTED_EDGE('',*,*,#14051,.F.); -#6467=ORIENTED_EDGE('',*,*,#13143,.F.); -#6468=ORIENTED_EDGE('',*,*,#12838,.F.); -#6469=ORIENTED_EDGE('',*,*,#13648,.T.); -#6470=ORIENTED_EDGE('',*,*,#13146,.T.); -#6471=ORIENTED_EDGE('',*,*,#13650,.T.); -#6472=ORIENTED_EDGE('',*,*,#13138,.T.); -#6473=ORIENTED_EDGE('',*,*,#13644,.T.); -#6474=ORIENTED_EDGE('',*,*,#12846,.F.); -#6475=ORIENTED_EDGE('',*,*,#13646,.T.); -#6476=ORIENTED_EDGE('',*,*,#13130,.T.); -#6477=ORIENTED_EDGE('',*,*,#13640,.T.); -#6478=ORIENTED_EDGE('',*,*,#12854,.F.); -#6479=ORIENTED_EDGE('',*,*,#13642,.T.); -#6480=ORIENTED_EDGE('',*,*,#13122,.T.); -#6481=ORIENTED_EDGE('',*,*,#13636,.T.); -#6482=ORIENTED_EDGE('',*,*,#12862,.F.); -#6483=ORIENTED_EDGE('',*,*,#13638,.T.); -#6484=ORIENTED_EDGE('',*,*,#13114,.T.); -#6485=ORIENTED_EDGE('',*,*,#13632,.T.); -#6486=ORIENTED_EDGE('',*,*,#12870,.F.); -#6487=ORIENTED_EDGE('',*,*,#13634,.T.); -#6488=ORIENTED_EDGE('',*,*,#13106,.T.); -#6489=ORIENTED_EDGE('',*,*,#13628,.T.); -#6490=ORIENTED_EDGE('',*,*,#12878,.F.); -#6491=ORIENTED_EDGE('',*,*,#13630,.T.); -#6492=ORIENTED_EDGE('',*,*,#13098,.T.); -#6493=ORIENTED_EDGE('',*,*,#13624,.T.); -#6494=ORIENTED_EDGE('',*,*,#12886,.F.); -#6495=ORIENTED_EDGE('',*,*,#13626,.T.); -#6496=ORIENTED_EDGE('',*,*,#13090,.T.); -#6497=ORIENTED_EDGE('',*,*,#13620,.T.); -#6498=ORIENTED_EDGE('',*,*,#12894,.F.); -#6499=ORIENTED_EDGE('',*,*,#13622,.T.); -#6500=ORIENTED_EDGE('',*,*,#13082,.T.); -#6501=ORIENTED_EDGE('',*,*,#13616,.T.); -#6502=ORIENTED_EDGE('',*,*,#12902,.F.); -#6503=ORIENTED_EDGE('',*,*,#13618,.T.); -#6504=ORIENTED_EDGE('',*,*,#13074,.T.); -#6505=ORIENTED_EDGE('',*,*,#13612,.T.); -#6506=ORIENTED_EDGE('',*,*,#12910,.F.); -#6507=ORIENTED_EDGE('',*,*,#13614,.T.); -#6508=ORIENTED_EDGE('',*,*,#13066,.T.); -#6509=ORIENTED_EDGE('',*,*,#13608,.T.); -#6510=ORIENTED_EDGE('',*,*,#12918,.F.); -#6511=ORIENTED_EDGE('',*,*,#13610,.T.); -#6512=ORIENTED_EDGE('',*,*,#13058,.T.); -#6513=ORIENTED_EDGE('',*,*,#13604,.T.); -#6514=ORIENTED_EDGE('',*,*,#12926,.F.); -#6515=ORIENTED_EDGE('',*,*,#13606,.T.); -#6516=ORIENTED_EDGE('',*,*,#13050,.T.); -#6517=ORIENTED_EDGE('',*,*,#13600,.T.); -#6518=ORIENTED_EDGE('',*,*,#12934,.F.); -#6519=ORIENTED_EDGE('',*,*,#13602,.T.); -#6520=ORIENTED_EDGE('',*,*,#13042,.T.); -#6521=ORIENTED_EDGE('',*,*,#13596,.T.); -#6522=ORIENTED_EDGE('',*,*,#12942,.F.); -#6523=ORIENTED_EDGE('',*,*,#13598,.T.); -#6524=ORIENTED_EDGE('',*,*,#13034,.T.); -#6525=ORIENTED_EDGE('',*,*,#13592,.T.); -#6526=ORIENTED_EDGE('',*,*,#12950,.F.); -#6527=ORIENTED_EDGE('',*,*,#13594,.T.); -#6528=ORIENTED_EDGE('',*,*,#13026,.T.); -#6529=ORIENTED_EDGE('',*,*,#13588,.T.); -#6530=ORIENTED_EDGE('',*,*,#12958,.F.); -#6531=ORIENTED_EDGE('',*,*,#13590,.T.); -#6532=ORIENTED_EDGE('',*,*,#13018,.T.); -#6533=ORIENTED_EDGE('',*,*,#13584,.T.); -#6534=ORIENTED_EDGE('',*,*,#12966,.F.); -#6535=ORIENTED_EDGE('',*,*,#13586,.T.); -#6536=ORIENTED_EDGE('',*,*,#13010,.T.); -#6537=ORIENTED_EDGE('',*,*,#13580,.T.); -#6538=ORIENTED_EDGE('',*,*,#12974,.F.); -#6539=ORIENTED_EDGE('',*,*,#13582,.T.); -#6540=ORIENTED_EDGE('',*,*,#13002,.T.); -#6541=ORIENTED_EDGE('',*,*,#13576,.T.); -#6542=ORIENTED_EDGE('',*,*,#12982,.F.); -#6543=ORIENTED_EDGE('',*,*,#13578,.T.); -#6544=ORIENTED_EDGE('',*,*,#13474,.F.); -#6545=ORIENTED_EDGE('',*,*,#13572,.T.); -#6546=ORIENTED_EDGE('',*,*,#13166,.T.); -#6547=ORIENTED_EDGE('',*,*,#13574,.T.); -#6548=ORIENTED_EDGE('',*,*,#13466,.F.); -#6549=ORIENTED_EDGE('',*,*,#13568,.T.); -#6550=ORIENTED_EDGE('',*,*,#13174,.T.); -#6551=ORIENTED_EDGE('',*,*,#13570,.T.); -#6552=ORIENTED_EDGE('',*,*,#13458,.F.); -#6553=ORIENTED_EDGE('',*,*,#13564,.T.); -#6554=ORIENTED_EDGE('',*,*,#13182,.T.); -#6555=ORIENTED_EDGE('',*,*,#13566,.T.); -#6556=ORIENTED_EDGE('',*,*,#13450,.F.); -#6557=ORIENTED_EDGE('',*,*,#13560,.T.); -#6558=ORIENTED_EDGE('',*,*,#13190,.T.); -#6559=ORIENTED_EDGE('',*,*,#13562,.T.); -#6560=ORIENTED_EDGE('',*,*,#13442,.F.); -#6561=ORIENTED_EDGE('',*,*,#13556,.T.); -#6562=ORIENTED_EDGE('',*,*,#13198,.T.); -#6563=ORIENTED_EDGE('',*,*,#13558,.T.); -#6564=ORIENTED_EDGE('',*,*,#13434,.F.); -#6565=ORIENTED_EDGE('',*,*,#13552,.T.); -#6566=ORIENTED_EDGE('',*,*,#13206,.T.); -#6567=ORIENTED_EDGE('',*,*,#13554,.T.); -#6568=ORIENTED_EDGE('',*,*,#13426,.F.); -#6569=ORIENTED_EDGE('',*,*,#13548,.T.); -#6570=ORIENTED_EDGE('',*,*,#13214,.T.); -#6571=ORIENTED_EDGE('',*,*,#13550,.T.); -#6572=ORIENTED_EDGE('',*,*,#13418,.F.); -#6573=ORIENTED_EDGE('',*,*,#13544,.T.); -#6574=ORIENTED_EDGE('',*,*,#13222,.T.); -#6575=ORIENTED_EDGE('',*,*,#13546,.T.); -#6576=ORIENTED_EDGE('',*,*,#13410,.F.); -#6577=ORIENTED_EDGE('',*,*,#13540,.T.); -#6578=ORIENTED_EDGE('',*,*,#13230,.T.); -#6579=ORIENTED_EDGE('',*,*,#13542,.T.); -#6580=ORIENTED_EDGE('',*,*,#13402,.F.); -#6581=ORIENTED_EDGE('',*,*,#13536,.T.); -#6582=ORIENTED_EDGE('',*,*,#13238,.T.); -#6583=ORIENTED_EDGE('',*,*,#13538,.T.); -#6584=ORIENTED_EDGE('',*,*,#13394,.F.); -#6585=ORIENTED_EDGE('',*,*,#13532,.T.); -#6586=ORIENTED_EDGE('',*,*,#13246,.T.); -#6587=ORIENTED_EDGE('',*,*,#13534,.T.); -#6588=ORIENTED_EDGE('',*,*,#13386,.F.); -#6589=ORIENTED_EDGE('',*,*,#13528,.T.); -#6590=ORIENTED_EDGE('',*,*,#13254,.T.); -#6591=ORIENTED_EDGE('',*,*,#13530,.T.); -#6592=ORIENTED_EDGE('',*,*,#13378,.F.); -#6593=ORIENTED_EDGE('',*,*,#13524,.T.); -#6594=ORIENTED_EDGE('',*,*,#13262,.T.); -#6595=ORIENTED_EDGE('',*,*,#13526,.T.); -#6596=ORIENTED_EDGE('',*,*,#13370,.F.); -#6597=ORIENTED_EDGE('',*,*,#13520,.T.); -#6598=ORIENTED_EDGE('',*,*,#13270,.T.); -#6599=ORIENTED_EDGE('',*,*,#13522,.T.); -#6600=ORIENTED_EDGE('',*,*,#13362,.F.); -#6601=ORIENTED_EDGE('',*,*,#13516,.T.); -#6602=ORIENTED_EDGE('',*,*,#13278,.T.); -#6603=ORIENTED_EDGE('',*,*,#13518,.T.); -#6604=ORIENTED_EDGE('',*,*,#13354,.F.); -#6605=ORIENTED_EDGE('',*,*,#13512,.T.); -#6606=ORIENTED_EDGE('',*,*,#13286,.T.); -#6607=ORIENTED_EDGE('',*,*,#13514,.T.); -#6608=ORIENTED_EDGE('',*,*,#13346,.F.); -#6609=ORIENTED_EDGE('',*,*,#13508,.T.); -#6610=ORIENTED_EDGE('',*,*,#13294,.T.); -#6611=ORIENTED_EDGE('',*,*,#13510,.T.); -#6612=ORIENTED_EDGE('',*,*,#13338,.F.); -#6613=ORIENTED_EDGE('',*,*,#13504,.T.); -#6614=ORIENTED_EDGE('',*,*,#13302,.T.); -#6615=ORIENTED_EDGE('',*,*,#13506,.T.); -#6616=ORIENTED_EDGE('',*,*,#13330,.F.); -#6617=ORIENTED_EDGE('',*,*,#13500,.T.); -#6618=ORIENTED_EDGE('',*,*,#13310,.T.); -#6619=ORIENTED_EDGE('',*,*,#13502,.T.); -#6620=ORIENTED_EDGE('',*,*,#12990,.F.); -#6621=ORIENTED_EDGE('',*,*,#13496,.T.); -#6622=ORIENTED_EDGE('',*,*,#12994,.T.); -#6623=ORIENTED_EDGE('',*,*,#13487,.T.); -#6624=ORIENTED_EDGE('',*,*,#13318,.T.); -#6625=ORIENTED_EDGE('',*,*,#13498,.T.); -#6626=ORIENTED_EDGE('',*,*,#13322,.F.); -#6627=ORIENTED_EDGE('',*,*,#13485,.F.); -#6628=ORIENTED_EDGE('',*,*,#13492,.F.); -#6629=ORIENTED_EDGE('',*,*,#12830,.F.); -#6630=ORIENTED_EDGE('',*,*,#13491,.F.); -#6631=ORIENTED_EDGE('',*,*,#13482,.F.); -#6632=ORIENTED_EDGE('',*,*,#13494,.F.); -#6633=ORIENTED_EDGE('',*,*,#13158,.T.); -#6634=ORIENTED_EDGE('',*,*,#13489,.T.); -#6635=ORIENTED_EDGE('',*,*,#13154,.T.); -#6636=ORIENTED_EDGE('',*,*,#12992,.T.); -#6637=ORIENTED_EDGE('',*,*,#13488,.F.); -#6638=ORIENTED_EDGE('',*,*,#13156,.T.); -#6639=ORIENTED_EDGE('',*,*,#13486,.F.); -#6640=ORIENTED_EDGE('',*,*,#13484,.T.); -#6641=ORIENTED_EDGE('',*,*,#13320,.T.); -#6642=ORIENTED_EDGE('',*,*,#13490,.T.); -#6643=ORIENTED_EDGE('',*,*,#12828,.T.); -#6644=ORIENTED_EDGE('',*,*,#14052,.F.); -#6645=ORIENTED_EDGE('',*,*,#14053,.F.); -#6646=ORIENTED_EDGE('',*,*,#14054,.F.); -#6647=ORIENTED_EDGE('',*,*,#14055,.T.); -#6648=ORIENTED_EDGE('',*,*,#14056,.T.); -#6649=ORIENTED_EDGE('',*,*,#14057,.T.); -#6650=ORIENTED_EDGE('',*,*,#14058,.F.); -#6651=ORIENTED_EDGE('',*,*,#14059,.T.); -#6652=ORIENTED_EDGE('',*,*,#14060,.T.); -#6653=ORIENTED_EDGE('',*,*,#14061,.F.); -#6654=ORIENTED_EDGE('',*,*,#14062,.T.); -#6655=ORIENTED_EDGE('',*,*,#14063,.T.); -#6656=ORIENTED_EDGE('',*,*,#14064,.F.); -#6657=ORIENTED_EDGE('',*,*,#14065,.T.); -#6658=ORIENTED_EDGE('',*,*,#14066,.T.); -#6659=ORIENTED_EDGE('',*,*,#14067,.T.); -#6660=ORIENTED_EDGE('',*,*,#14068,.T.); -#6661=ORIENTED_EDGE('',*,*,#14069,.T.); -#6662=ORIENTED_EDGE('',*,*,#14070,.T.); -#6663=ORIENTED_EDGE('',*,*,#14071,.T.); -#6664=ORIENTED_EDGE('',*,*,#14072,.F.); -#6665=ORIENTED_EDGE('',*,*,#14073,.T.); -#6666=ORIENTED_EDGE('',*,*,#14074,.T.); -#6667=ORIENTED_EDGE('',*,*,#14075,.F.); -#6668=ORIENTED_EDGE('',*,*,#14076,.T.); -#6669=ORIENTED_EDGE('',*,*,#14077,.T.); -#6670=ORIENTED_EDGE('',*,*,#14078,.F.); -#6671=ORIENTED_EDGE('',*,*,#14079,.T.); -#6672=ORIENTED_EDGE('',*,*,#14080,.T.); -#6673=ORIENTED_EDGE('',*,*,#14081,.T.); -#6674=ORIENTED_EDGE('',*,*,#14082,.T.); -#6675=ORIENTED_EDGE('',*,*,#14083,.T.); -#6676=ORIENTED_EDGE('',*,*,#14084,.T.); -#6677=ORIENTED_EDGE('',*,*,#14085,.T.); -#6678=ORIENTED_EDGE('',*,*,#14086,.F.); -#6679=ORIENTED_EDGE('',*,*,#14087,.T.); -#6680=ORIENTED_EDGE('',*,*,#14088,.T.); -#6681=ORIENTED_EDGE('',*,*,#14089,.F.); -#6682=ORIENTED_EDGE('',*,*,#14090,.T.); -#6683=ORIENTED_EDGE('',*,*,#14091,.T.); -#6684=ORIENTED_EDGE('',*,*,#14092,.F.); -#6685=ORIENTED_EDGE('',*,*,#14093,.T.); -#6686=ORIENTED_EDGE('',*,*,#14094,.T.); -#6687=ORIENTED_EDGE('',*,*,#14095,.T.); -#6688=ORIENTED_EDGE('',*,*,#14096,.T.); -#6689=ORIENTED_EDGE('',*,*,#14097,.T.); -#6690=ORIENTED_EDGE('',*,*,#14098,.T.); -#6691=ORIENTED_EDGE('',*,*,#14099,.T.); -#6692=ORIENTED_EDGE('',*,*,#14100,.F.); -#6693=ORIENTED_EDGE('',*,*,#14101,.T.); -#6694=ORIENTED_EDGE('',*,*,#14102,.T.); -#6695=ORIENTED_EDGE('',*,*,#14103,.F.); -#6696=ORIENTED_EDGE('',*,*,#14104,.T.); -#6697=ORIENTED_EDGE('',*,*,#14105,.T.); -#6698=ORIENTED_EDGE('',*,*,#14106,.F.); -#6699=ORIENTED_EDGE('',*,*,#14107,.T.); -#6700=ORIENTED_EDGE('',*,*,#14108,.T.); -#6701=ORIENTED_EDGE('',*,*,#14109,.T.); -#6702=ORIENTED_EDGE('',*,*,#14110,.T.); -#6703=ORIENTED_EDGE('',*,*,#14111,.T.); -#6704=ORIENTED_EDGE('',*,*,#14112,.T.); -#6705=ORIENTED_EDGE('',*,*,#14113,.T.); -#6706=ORIENTED_EDGE('',*,*,#14114,.F.); -#6707=ORIENTED_EDGE('',*,*,#14115,.T.); -#6708=ORIENTED_EDGE('',*,*,#14116,.T.); -#6709=ORIENTED_EDGE('',*,*,#14117,.F.); -#6710=ORIENTED_EDGE('',*,*,#14118,.T.); -#6711=ORIENTED_EDGE('',*,*,#14119,.T.); -#6712=ORIENTED_EDGE('',*,*,#14120,.F.); -#6713=ORIENTED_EDGE('',*,*,#14121,.T.); -#6714=ORIENTED_EDGE('',*,*,#14122,.T.); -#6715=ORIENTED_EDGE('',*,*,#14123,.T.); -#6716=ORIENTED_EDGE('',*,*,#14124,.T.); -#6717=ORIENTED_EDGE('',*,*,#14125,.T.); -#6718=ORIENTED_EDGE('',*,*,#14126,.T.); -#6719=ORIENTED_EDGE('',*,*,#14127,.T.); -#6720=ORIENTED_EDGE('',*,*,#14128,.F.); -#6721=ORIENTED_EDGE('',*,*,#14129,.T.); -#6722=ORIENTED_EDGE('',*,*,#14130,.T.); -#6723=ORIENTED_EDGE('',*,*,#14131,.F.); -#6724=ORIENTED_EDGE('',*,*,#14132,.T.); -#6725=ORIENTED_EDGE('',*,*,#14133,.T.); -#6726=ORIENTED_EDGE('',*,*,#14134,.F.); -#6727=ORIENTED_EDGE('',*,*,#14135,.T.); -#6728=ORIENTED_EDGE('',*,*,#14136,.T.); -#6729=ORIENTED_EDGE('',*,*,#14137,.T.); -#6730=ORIENTED_EDGE('',*,*,#14138,.T.); -#6731=ORIENTED_EDGE('',*,*,#14139,.T.); -#6732=ORIENTED_EDGE('',*,*,#14140,.T.); -#6733=ORIENTED_EDGE('',*,*,#14141,.T.); -#6734=ORIENTED_EDGE('',*,*,#14142,.F.); -#6735=ORIENTED_EDGE('',*,*,#14143,.T.); -#6736=ORIENTED_EDGE('',*,*,#14144,.T.); -#6737=ORIENTED_EDGE('',*,*,#14145,.F.); -#6738=ORIENTED_EDGE('',*,*,#14146,.T.); -#6739=ORIENTED_EDGE('',*,*,#14147,.T.); -#6740=ORIENTED_EDGE('',*,*,#14148,.F.); -#6741=ORIENTED_EDGE('',*,*,#14149,.T.); -#6742=ORIENTED_EDGE('',*,*,#14150,.T.); -#6743=ORIENTED_EDGE('',*,*,#14151,.T.); -#6744=ORIENTED_EDGE('',*,*,#14152,.T.); -#6745=ORIENTED_EDGE('',*,*,#14153,.T.); -#6746=ORIENTED_EDGE('',*,*,#14154,.T.); -#6747=ORIENTED_EDGE('',*,*,#14155,.T.); -#6748=ORIENTED_EDGE('',*,*,#14156,.F.); -#6749=ORIENTED_EDGE('',*,*,#14157,.T.); -#6750=ORIENTED_EDGE('',*,*,#14158,.T.); -#6751=ORIENTED_EDGE('',*,*,#14159,.F.); -#6752=ORIENTED_EDGE('',*,*,#14160,.T.); -#6753=ORIENTED_EDGE('',*,*,#14161,.T.); -#6754=ORIENTED_EDGE('',*,*,#14162,.F.); -#6755=ORIENTED_EDGE('',*,*,#14163,.T.); -#6756=ORIENTED_EDGE('',*,*,#14164,.T.); -#6757=ORIENTED_EDGE('',*,*,#14165,.T.); -#6758=ORIENTED_EDGE('',*,*,#14166,.T.); -#6759=ORIENTED_EDGE('',*,*,#14167,.T.); -#6760=ORIENTED_EDGE('',*,*,#14168,.T.); -#6761=ORIENTED_EDGE('',*,*,#14169,.T.); -#6762=ORIENTED_EDGE('',*,*,#14170,.F.); -#6763=ORIENTED_EDGE('',*,*,#14171,.T.); -#6764=ORIENTED_EDGE('',*,*,#14172,.T.); -#6765=ORIENTED_EDGE('',*,*,#14173,.F.); -#6766=ORIENTED_EDGE('',*,*,#14174,.T.); -#6767=ORIENTED_EDGE('',*,*,#14175,.T.); -#6768=ORIENTED_EDGE('',*,*,#14176,.F.); -#6769=ORIENTED_EDGE('',*,*,#14177,.T.); -#6770=ORIENTED_EDGE('',*,*,#14178,.T.); -#6771=ORIENTED_EDGE('',*,*,#14179,.T.); -#6772=ORIENTED_EDGE('',*,*,#14180,.T.); -#6773=ORIENTED_EDGE('',*,*,#14181,.T.); -#6774=ORIENTED_EDGE('',*,*,#14182,.T.); -#6775=ORIENTED_EDGE('',*,*,#14183,.T.); -#6776=ORIENTED_EDGE('',*,*,#14184,.F.); -#6777=ORIENTED_EDGE('',*,*,#14185,.T.); -#6778=ORIENTED_EDGE('',*,*,#14186,.T.); -#6779=ORIENTED_EDGE('',*,*,#14187,.F.); -#6780=ORIENTED_EDGE('',*,*,#14188,.T.); -#6781=ORIENTED_EDGE('',*,*,#14189,.T.); -#6782=ORIENTED_EDGE('',*,*,#14190,.F.); -#6783=ORIENTED_EDGE('',*,*,#14191,.T.); -#6784=ORIENTED_EDGE('',*,*,#14192,.T.); -#6785=ORIENTED_EDGE('',*,*,#14193,.T.); -#6786=ORIENTED_EDGE('',*,*,#14194,.T.); -#6787=ORIENTED_EDGE('',*,*,#14195,.T.); -#6788=ORIENTED_EDGE('',*,*,#14196,.T.); -#6789=ORIENTED_EDGE('',*,*,#14197,.T.); -#6790=ORIENTED_EDGE('',*,*,#14198,.F.); -#6791=ORIENTED_EDGE('',*,*,#14199,.T.); -#6792=ORIENTED_EDGE('',*,*,#14200,.T.); -#6793=ORIENTED_EDGE('',*,*,#14201,.F.); -#6794=ORIENTED_EDGE('',*,*,#14202,.T.); -#6795=ORIENTED_EDGE('',*,*,#14203,.T.); -#6796=ORIENTED_EDGE('',*,*,#14204,.F.); -#6797=ORIENTED_EDGE('',*,*,#14205,.T.); -#6798=ORIENTED_EDGE('',*,*,#14206,.T.); -#6799=ORIENTED_EDGE('',*,*,#14207,.T.); -#6800=ORIENTED_EDGE('',*,*,#14208,.T.); -#6801=ORIENTED_EDGE('',*,*,#14209,.T.); -#6802=ORIENTED_EDGE('',*,*,#14210,.T.); -#6803=ORIENTED_EDGE('',*,*,#14211,.T.); -#6804=ORIENTED_EDGE('',*,*,#14212,.F.); -#6805=ORIENTED_EDGE('',*,*,#14213,.T.); -#6806=ORIENTED_EDGE('',*,*,#14214,.T.); -#6807=ORIENTED_EDGE('',*,*,#14215,.F.); -#6808=ORIENTED_EDGE('',*,*,#14216,.T.); -#6809=ORIENTED_EDGE('',*,*,#14217,.T.); -#6810=ORIENTED_EDGE('',*,*,#14218,.F.); -#6811=ORIENTED_EDGE('',*,*,#14219,.T.); -#6812=ORIENTED_EDGE('',*,*,#14220,.T.); -#6813=ORIENTED_EDGE('',*,*,#14221,.T.); -#6814=ORIENTED_EDGE('',*,*,#14222,.T.); -#6815=ORIENTED_EDGE('',*,*,#14223,.T.); -#6816=ORIENTED_EDGE('',*,*,#14224,.T.); -#6817=ORIENTED_EDGE('',*,*,#14225,.T.); -#6818=ORIENTED_EDGE('',*,*,#14226,.F.); -#6819=ORIENTED_EDGE('',*,*,#14227,.T.); -#6820=ORIENTED_EDGE('',*,*,#14228,.T.); -#6821=ORIENTED_EDGE('',*,*,#14229,.F.); -#6822=ORIENTED_EDGE('',*,*,#14230,.T.); -#6823=ORIENTED_EDGE('',*,*,#14231,.T.); -#6824=ORIENTED_EDGE('',*,*,#14232,.F.); -#6825=ORIENTED_EDGE('',*,*,#14233,.T.); -#6826=ORIENTED_EDGE('',*,*,#14234,.T.); -#6827=ORIENTED_EDGE('',*,*,#14235,.T.); -#6828=ORIENTED_EDGE('',*,*,#14236,.T.); -#6829=ORIENTED_EDGE('',*,*,#14237,.T.); -#6830=ORIENTED_EDGE('',*,*,#14238,.T.); -#6831=ORIENTED_EDGE('',*,*,#14239,.T.); -#6832=ORIENTED_EDGE('',*,*,#14240,.F.); -#6833=ORIENTED_EDGE('',*,*,#14241,.T.); -#6834=ORIENTED_EDGE('',*,*,#14242,.T.); -#6835=ORIENTED_EDGE('',*,*,#14243,.F.); -#6836=ORIENTED_EDGE('',*,*,#14244,.T.); -#6837=ORIENTED_EDGE('',*,*,#14245,.T.); -#6838=ORIENTED_EDGE('',*,*,#14246,.F.); -#6839=ORIENTED_EDGE('',*,*,#14247,.T.); -#6840=ORIENTED_EDGE('',*,*,#14248,.T.); -#6841=ORIENTED_EDGE('',*,*,#14249,.T.); -#6842=ORIENTED_EDGE('',*,*,#14250,.T.); -#6843=ORIENTED_EDGE('',*,*,#14251,.T.); -#6844=ORIENTED_EDGE('',*,*,#14252,.T.); -#6845=ORIENTED_EDGE('',*,*,#14253,.T.); -#6846=ORIENTED_EDGE('',*,*,#14254,.F.); -#6847=ORIENTED_EDGE('',*,*,#14255,.T.); -#6848=ORIENTED_EDGE('',*,*,#14256,.T.); -#6849=ORIENTED_EDGE('',*,*,#14257,.F.); -#6850=ORIENTED_EDGE('',*,*,#14258,.T.); -#6851=ORIENTED_EDGE('',*,*,#14259,.T.); -#6852=ORIENTED_EDGE('',*,*,#14260,.F.); -#6853=ORIENTED_EDGE('',*,*,#14261,.T.); -#6854=ORIENTED_EDGE('',*,*,#14262,.T.); -#6855=ORIENTED_EDGE('',*,*,#14263,.T.); -#6856=ORIENTED_EDGE('',*,*,#14264,.T.); -#6857=ORIENTED_EDGE('',*,*,#14265,.T.); -#6858=ORIENTED_EDGE('',*,*,#14266,.T.); -#6859=ORIENTED_EDGE('',*,*,#14267,.T.); -#6860=ORIENTED_EDGE('',*,*,#14268,.F.); -#6861=ORIENTED_EDGE('',*,*,#14269,.T.); -#6862=ORIENTED_EDGE('',*,*,#14270,.T.); -#6863=ORIENTED_EDGE('',*,*,#14271,.F.); -#6864=ORIENTED_EDGE('',*,*,#14272,.T.); -#6865=ORIENTED_EDGE('',*,*,#14273,.T.); -#6866=ORIENTED_EDGE('',*,*,#14274,.F.); -#6867=ORIENTED_EDGE('',*,*,#14275,.T.); -#6868=ORIENTED_EDGE('',*,*,#14276,.T.); -#6869=ORIENTED_EDGE('',*,*,#14277,.T.); -#6870=ORIENTED_EDGE('',*,*,#14278,.T.); -#6871=ORIENTED_EDGE('',*,*,#14279,.T.); -#6872=ORIENTED_EDGE('',*,*,#14280,.T.); -#6873=ORIENTED_EDGE('',*,*,#14281,.T.); -#6874=ORIENTED_EDGE('',*,*,#14282,.F.); -#6875=ORIENTED_EDGE('',*,*,#14283,.T.); -#6876=ORIENTED_EDGE('',*,*,#14284,.T.); -#6877=ORIENTED_EDGE('',*,*,#14285,.F.); -#6878=ORIENTED_EDGE('',*,*,#14286,.T.); -#6879=ORIENTED_EDGE('',*,*,#14287,.T.); -#6880=ORIENTED_EDGE('',*,*,#14288,.F.); -#6881=ORIENTED_EDGE('',*,*,#14289,.T.); -#6882=ORIENTED_EDGE('',*,*,#14290,.T.); -#6883=ORIENTED_EDGE('',*,*,#14291,.T.); -#6884=ORIENTED_EDGE('',*,*,#14292,.T.); -#6885=ORIENTED_EDGE('',*,*,#14293,.T.); -#6886=ORIENTED_EDGE('',*,*,#14294,.T.); -#6887=ORIENTED_EDGE('',*,*,#14295,.T.); -#6888=ORIENTED_EDGE('',*,*,#14296,.F.); -#6889=ORIENTED_EDGE('',*,*,#14297,.T.); -#6890=ORIENTED_EDGE('',*,*,#14298,.T.); -#6891=ORIENTED_EDGE('',*,*,#14299,.F.); -#6892=ORIENTED_EDGE('',*,*,#14300,.T.); -#6893=ORIENTED_EDGE('',*,*,#14301,.T.); -#6894=ORIENTED_EDGE('',*,*,#14302,.F.); -#6895=ORIENTED_EDGE('',*,*,#14303,.T.); -#6896=ORIENTED_EDGE('',*,*,#14304,.T.); -#6897=ORIENTED_EDGE('',*,*,#14305,.T.); -#6898=ORIENTED_EDGE('',*,*,#14306,.T.); -#6899=ORIENTED_EDGE('',*,*,#14307,.T.); -#6900=ORIENTED_EDGE('',*,*,#14308,.T.); -#6901=ORIENTED_EDGE('',*,*,#14309,.T.); -#6902=ORIENTED_EDGE('',*,*,#14310,.F.); -#6903=ORIENTED_EDGE('',*,*,#14311,.T.); -#6904=ORIENTED_EDGE('',*,*,#14312,.T.); -#6905=ORIENTED_EDGE('',*,*,#14313,.F.); -#6906=ORIENTED_EDGE('',*,*,#14314,.T.); -#6907=ORIENTED_EDGE('',*,*,#14315,.T.); -#6908=ORIENTED_EDGE('',*,*,#14316,.F.); -#6909=ORIENTED_EDGE('',*,*,#14317,.T.); -#6910=ORIENTED_EDGE('',*,*,#14318,.T.); -#6911=ORIENTED_EDGE('',*,*,#14319,.T.); -#6912=ORIENTED_EDGE('',*,*,#14320,.T.); -#6913=ORIENTED_EDGE('',*,*,#14321,.T.); -#6914=ORIENTED_EDGE('',*,*,#14322,.T.); -#6915=ORIENTED_EDGE('',*,*,#14323,.T.); -#6916=ORIENTED_EDGE('',*,*,#14324,.F.); -#6917=ORIENTED_EDGE('',*,*,#14325,.T.); -#6918=ORIENTED_EDGE('',*,*,#14326,.T.); -#6919=ORIENTED_EDGE('',*,*,#14327,.F.); -#6920=ORIENTED_EDGE('',*,*,#14328,.T.); -#6921=ORIENTED_EDGE('',*,*,#14329,.T.); -#6922=ORIENTED_EDGE('',*,*,#14330,.F.); -#6923=ORIENTED_EDGE('',*,*,#14331,.T.); -#6924=ORIENTED_EDGE('',*,*,#14332,.T.); -#6925=ORIENTED_EDGE('',*,*,#14333,.F.); -#6926=ORIENTED_EDGE('',*,*,#14334,.F.); -#6927=ORIENTED_EDGE('',*,*,#14335,.T.); -#6928=ORIENTED_EDGE('',*,*,#14336,.F.); -#6929=ORIENTED_EDGE('',*,*,#14337,.F.); -#6930=ORIENTED_EDGE('',*,*,#14338,.T.); -#6931=ORIENTED_EDGE('',*,*,#14339,.F.); -#6932=ORIENTED_EDGE('',*,*,#14340,.T.); -#6933=ORIENTED_EDGE('',*,*,#14341,.T.); -#6934=ORIENTED_EDGE('',*,*,#14342,.F.); -#6935=ORIENTED_EDGE('',*,*,#14343,.T.); -#6936=ORIENTED_EDGE('',*,*,#14344,.T.); -#6937=ORIENTED_EDGE('',*,*,#14345,.T.); -#6938=ORIENTED_EDGE('',*,*,#14346,.T.); -#6939=ORIENTED_EDGE('',*,*,#14347,.T.); -#6940=ORIENTED_EDGE('',*,*,#14348,.F.); -#6941=ORIENTED_EDGE('',*,*,#14349,.T.); -#6942=ORIENTED_EDGE('',*,*,#14350,.T.); -#6943=ORIENTED_EDGE('',*,*,#14351,.T.); -#6944=ORIENTED_EDGE('',*,*,#14352,.T.); -#6945=ORIENTED_EDGE('',*,*,#14353,.T.); -#6946=ORIENTED_EDGE('',*,*,#14354,.T.); -#6947=ORIENTED_EDGE('',*,*,#14355,.T.); -#6948=ORIENTED_EDGE('',*,*,#14356,.F.); -#6949=ORIENTED_EDGE('',*,*,#14357,.T.); -#6950=ORIENTED_EDGE('',*,*,#14358,.T.); -#6951=ORIENTED_EDGE('',*,*,#14359,.T.); -#6952=ORIENTED_EDGE('',*,*,#14360,.T.); -#6953=ORIENTED_EDGE('',*,*,#14361,.T.); -#6954=ORIENTED_EDGE('',*,*,#14362,.F.); -#6955=ORIENTED_EDGE('',*,*,#14363,.T.); -#6956=ORIENTED_EDGE('',*,*,#14364,.T.); -#6957=ORIENTED_EDGE('',*,*,#14365,.T.); -#6958=ORIENTED_EDGE('',*,*,#14366,.T.); -#6959=ORIENTED_EDGE('',*,*,#14367,.T.); -#6960=ORIENTED_EDGE('',*,*,#14368,.T.); -#6961=ORIENTED_EDGE('',*,*,#14369,.T.); -#6962=ORIENTED_EDGE('',*,*,#14370,.F.); -#6963=ORIENTED_EDGE('',*,*,#14371,.T.); -#6964=ORIENTED_EDGE('',*,*,#14372,.T.); -#6965=ORIENTED_EDGE('',*,*,#14373,.T.); -#6966=ORIENTED_EDGE('',*,*,#14374,.T.); -#6967=ORIENTED_EDGE('',*,*,#14375,.T.); -#6968=ORIENTED_EDGE('',*,*,#14376,.F.); -#6969=ORIENTED_EDGE('',*,*,#14377,.T.); -#6970=ORIENTED_EDGE('',*,*,#14378,.T.); -#6971=ORIENTED_EDGE('',*,*,#14379,.T.); -#6972=ORIENTED_EDGE('',*,*,#14380,.T.); -#6973=ORIENTED_EDGE('',*,*,#14381,.T.); -#6974=ORIENTED_EDGE('',*,*,#14382,.T.); -#6975=ORIENTED_EDGE('',*,*,#14383,.T.); -#6976=ORIENTED_EDGE('',*,*,#14384,.F.); -#6977=ORIENTED_EDGE('',*,*,#14385,.T.); -#6978=ORIENTED_EDGE('',*,*,#14386,.T.); -#6979=ORIENTED_EDGE('',*,*,#14387,.T.); -#6980=ORIENTED_EDGE('',*,*,#14388,.T.); -#6981=ORIENTED_EDGE('',*,*,#14389,.T.); -#6982=ORIENTED_EDGE('',*,*,#14390,.F.); -#6983=ORIENTED_EDGE('',*,*,#14391,.T.); -#6984=ORIENTED_EDGE('',*,*,#14392,.T.); -#6985=ORIENTED_EDGE('',*,*,#14393,.T.); -#6986=ORIENTED_EDGE('',*,*,#14394,.T.); -#6987=ORIENTED_EDGE('',*,*,#14395,.T.); -#6988=ORIENTED_EDGE('',*,*,#14396,.T.); -#6989=ORIENTED_EDGE('',*,*,#14397,.T.); -#6990=ORIENTED_EDGE('',*,*,#14398,.F.); -#6991=ORIENTED_EDGE('',*,*,#14399,.T.); -#6992=ORIENTED_EDGE('',*,*,#14400,.T.); -#6993=ORIENTED_EDGE('',*,*,#14401,.T.); -#6994=ORIENTED_EDGE('',*,*,#14402,.T.); -#6995=ORIENTED_EDGE('',*,*,#14403,.T.); -#6996=ORIENTED_EDGE('',*,*,#14404,.F.); -#6997=ORIENTED_EDGE('',*,*,#14405,.T.); -#6998=ORIENTED_EDGE('',*,*,#14406,.T.); -#6999=ORIENTED_EDGE('',*,*,#14407,.T.); -#7000=ORIENTED_EDGE('',*,*,#14408,.T.); -#7001=ORIENTED_EDGE('',*,*,#14409,.T.); -#7002=ORIENTED_EDGE('',*,*,#14410,.T.); -#7003=ORIENTED_EDGE('',*,*,#14411,.T.); -#7004=ORIENTED_EDGE('',*,*,#14412,.F.); -#7005=ORIENTED_EDGE('',*,*,#14413,.T.); -#7006=ORIENTED_EDGE('',*,*,#14414,.T.); -#7007=ORIENTED_EDGE('',*,*,#14415,.T.); -#7008=ORIENTED_EDGE('',*,*,#14416,.T.); -#7009=ORIENTED_EDGE('',*,*,#14417,.T.); -#7010=ORIENTED_EDGE('',*,*,#14418,.F.); -#7011=ORIENTED_EDGE('',*,*,#14419,.T.); -#7012=ORIENTED_EDGE('',*,*,#14420,.T.); -#7013=ORIENTED_EDGE('',*,*,#14421,.T.); -#7014=ORIENTED_EDGE('',*,*,#14422,.T.); -#7015=ORIENTED_EDGE('',*,*,#14423,.T.); -#7016=ORIENTED_EDGE('',*,*,#14424,.T.); -#7017=ORIENTED_EDGE('',*,*,#14425,.T.); -#7018=ORIENTED_EDGE('',*,*,#14426,.F.); -#7019=ORIENTED_EDGE('',*,*,#14427,.T.); -#7020=ORIENTED_EDGE('',*,*,#14428,.T.); -#7021=ORIENTED_EDGE('',*,*,#14429,.T.); -#7022=ORIENTED_EDGE('',*,*,#14430,.T.); -#7023=ORIENTED_EDGE('',*,*,#14431,.T.); -#7024=ORIENTED_EDGE('',*,*,#14432,.F.); -#7025=ORIENTED_EDGE('',*,*,#14433,.T.); -#7026=ORIENTED_EDGE('',*,*,#14434,.T.); -#7027=ORIENTED_EDGE('',*,*,#14435,.T.); -#7028=ORIENTED_EDGE('',*,*,#14436,.T.); -#7029=ORIENTED_EDGE('',*,*,#14437,.T.); -#7030=ORIENTED_EDGE('',*,*,#14438,.T.); -#7031=ORIENTED_EDGE('',*,*,#14439,.T.); -#7032=ORIENTED_EDGE('',*,*,#14440,.F.); -#7033=ORIENTED_EDGE('',*,*,#14441,.T.); -#7034=ORIENTED_EDGE('',*,*,#14442,.T.); -#7035=ORIENTED_EDGE('',*,*,#14443,.T.); -#7036=ORIENTED_EDGE('',*,*,#14444,.T.); -#7037=ORIENTED_EDGE('',*,*,#14445,.T.); -#7038=ORIENTED_EDGE('',*,*,#14446,.F.); -#7039=ORIENTED_EDGE('',*,*,#14447,.T.); -#7040=ORIENTED_EDGE('',*,*,#14448,.T.); -#7041=ORIENTED_EDGE('',*,*,#14449,.T.); -#7042=ORIENTED_EDGE('',*,*,#14450,.T.); -#7043=ORIENTED_EDGE('',*,*,#14451,.T.); -#7044=ORIENTED_EDGE('',*,*,#14452,.T.); -#7045=ORIENTED_EDGE('',*,*,#14453,.T.); -#7046=ORIENTED_EDGE('',*,*,#14454,.F.); -#7047=ORIENTED_EDGE('',*,*,#14455,.T.); -#7048=ORIENTED_EDGE('',*,*,#14456,.T.); -#7049=ORIENTED_EDGE('',*,*,#14457,.T.); -#7050=ORIENTED_EDGE('',*,*,#14458,.T.); -#7051=ORIENTED_EDGE('',*,*,#14459,.T.); -#7052=ORIENTED_EDGE('',*,*,#14460,.F.); -#7053=ORIENTED_EDGE('',*,*,#14461,.T.); -#7054=ORIENTED_EDGE('',*,*,#14462,.T.); -#7055=ORIENTED_EDGE('',*,*,#14463,.T.); -#7056=ORIENTED_EDGE('',*,*,#14464,.T.); -#7057=ORIENTED_EDGE('',*,*,#14465,.T.); -#7058=ORIENTED_EDGE('',*,*,#14466,.T.); -#7059=ORIENTED_EDGE('',*,*,#14467,.T.); -#7060=ORIENTED_EDGE('',*,*,#14468,.F.); -#7061=ORIENTED_EDGE('',*,*,#14469,.T.); -#7062=ORIENTED_EDGE('',*,*,#14470,.T.); -#7063=ORIENTED_EDGE('',*,*,#14471,.T.); -#7064=ORIENTED_EDGE('',*,*,#14472,.T.); -#7065=ORIENTED_EDGE('',*,*,#14473,.T.); -#7066=ORIENTED_EDGE('',*,*,#14474,.F.); -#7067=ORIENTED_EDGE('',*,*,#14475,.T.); -#7068=ORIENTED_EDGE('',*,*,#14476,.T.); -#7069=ORIENTED_EDGE('',*,*,#14477,.T.); -#7070=ORIENTED_EDGE('',*,*,#14478,.T.); -#7071=ORIENTED_EDGE('',*,*,#14479,.T.); -#7072=ORIENTED_EDGE('',*,*,#14480,.T.); -#7073=ORIENTED_EDGE('',*,*,#14481,.T.); -#7074=ORIENTED_EDGE('',*,*,#14482,.F.); -#7075=ORIENTED_EDGE('',*,*,#14483,.T.); -#7076=ORIENTED_EDGE('',*,*,#14484,.T.); -#7077=ORIENTED_EDGE('',*,*,#14485,.T.); -#7078=ORIENTED_EDGE('',*,*,#14486,.T.); -#7079=ORIENTED_EDGE('',*,*,#14487,.T.); -#7080=ORIENTED_EDGE('',*,*,#14488,.F.); -#7081=ORIENTED_EDGE('',*,*,#14489,.T.); -#7082=ORIENTED_EDGE('',*,*,#14490,.T.); -#7083=ORIENTED_EDGE('',*,*,#14491,.T.); -#7084=ORIENTED_EDGE('',*,*,#14492,.T.); -#7085=ORIENTED_EDGE('',*,*,#14493,.T.); -#7086=ORIENTED_EDGE('',*,*,#14494,.T.); -#7087=ORIENTED_EDGE('',*,*,#14495,.T.); -#7088=ORIENTED_EDGE('',*,*,#14496,.F.); -#7089=ORIENTED_EDGE('',*,*,#14497,.T.); -#7090=ORIENTED_EDGE('',*,*,#14498,.T.); -#7091=ORIENTED_EDGE('',*,*,#14499,.T.); -#7092=ORIENTED_EDGE('',*,*,#14500,.T.); -#7093=ORIENTED_EDGE('',*,*,#14501,.T.); -#7094=ORIENTED_EDGE('',*,*,#14502,.F.); -#7095=ORIENTED_EDGE('',*,*,#14503,.T.); -#7096=ORIENTED_EDGE('',*,*,#14504,.T.); -#7097=ORIENTED_EDGE('',*,*,#14505,.T.); -#7098=ORIENTED_EDGE('',*,*,#14506,.T.); -#7099=ORIENTED_EDGE('',*,*,#14507,.T.); -#7100=ORIENTED_EDGE('',*,*,#14508,.T.); -#7101=ORIENTED_EDGE('',*,*,#14509,.T.); -#7102=ORIENTED_EDGE('',*,*,#14510,.F.); -#7103=ORIENTED_EDGE('',*,*,#14511,.T.); -#7104=ORIENTED_EDGE('',*,*,#14512,.T.); -#7105=ORIENTED_EDGE('',*,*,#14513,.T.); -#7106=ORIENTED_EDGE('',*,*,#14514,.T.); -#7107=ORIENTED_EDGE('',*,*,#14515,.T.); -#7108=ORIENTED_EDGE('',*,*,#14516,.F.); -#7109=ORIENTED_EDGE('',*,*,#14517,.T.); -#7110=ORIENTED_EDGE('',*,*,#14518,.T.); -#7111=ORIENTED_EDGE('',*,*,#14519,.T.); -#7112=ORIENTED_EDGE('',*,*,#14520,.T.); -#7113=ORIENTED_EDGE('',*,*,#14521,.T.); -#7114=ORIENTED_EDGE('',*,*,#14522,.T.); -#7115=ORIENTED_EDGE('',*,*,#14523,.T.); -#7116=ORIENTED_EDGE('',*,*,#14524,.F.); -#7117=ORIENTED_EDGE('',*,*,#14525,.T.); -#7118=ORIENTED_EDGE('',*,*,#14526,.T.); -#7119=ORIENTED_EDGE('',*,*,#14527,.T.); -#7120=ORIENTED_EDGE('',*,*,#14528,.T.); -#7121=ORIENTED_EDGE('',*,*,#14529,.T.); -#7122=ORIENTED_EDGE('',*,*,#14530,.F.); -#7123=ORIENTED_EDGE('',*,*,#14531,.T.); -#7124=ORIENTED_EDGE('',*,*,#14532,.T.); -#7125=ORIENTED_EDGE('',*,*,#14533,.T.); -#7126=ORIENTED_EDGE('',*,*,#14534,.T.); -#7127=ORIENTED_EDGE('',*,*,#14535,.T.); -#7128=ORIENTED_EDGE('',*,*,#14536,.T.); -#7129=ORIENTED_EDGE('',*,*,#14537,.T.); -#7130=ORIENTED_EDGE('',*,*,#14538,.F.); -#7131=ORIENTED_EDGE('',*,*,#14539,.T.); -#7132=ORIENTED_EDGE('',*,*,#14540,.T.); -#7133=ORIENTED_EDGE('',*,*,#14541,.T.); -#7134=ORIENTED_EDGE('',*,*,#14542,.T.); -#7135=ORIENTED_EDGE('',*,*,#14543,.T.); -#7136=ORIENTED_EDGE('',*,*,#14544,.F.); -#7137=ORIENTED_EDGE('',*,*,#14545,.T.); -#7138=ORIENTED_EDGE('',*,*,#14546,.T.); -#7139=ORIENTED_EDGE('',*,*,#14547,.T.); -#7140=ORIENTED_EDGE('',*,*,#14548,.T.); -#7141=ORIENTED_EDGE('',*,*,#14549,.T.); -#7142=ORIENTED_EDGE('',*,*,#14550,.T.); -#7143=ORIENTED_EDGE('',*,*,#14551,.T.); -#7144=ORIENTED_EDGE('',*,*,#14552,.F.); -#7145=ORIENTED_EDGE('',*,*,#14553,.T.); -#7146=ORIENTED_EDGE('',*,*,#14554,.T.); -#7147=ORIENTED_EDGE('',*,*,#14555,.T.); -#7148=ORIENTED_EDGE('',*,*,#14556,.T.); -#7149=ORIENTED_EDGE('',*,*,#14557,.T.); -#7150=ORIENTED_EDGE('',*,*,#14558,.F.); -#7151=ORIENTED_EDGE('',*,*,#14559,.T.); -#7152=ORIENTED_EDGE('',*,*,#14560,.T.); -#7153=ORIENTED_EDGE('',*,*,#14561,.T.); -#7154=ORIENTED_EDGE('',*,*,#14562,.T.); -#7155=ORIENTED_EDGE('',*,*,#14563,.T.); -#7156=ORIENTED_EDGE('',*,*,#14564,.T.); -#7157=ORIENTED_EDGE('',*,*,#14565,.T.); -#7158=ORIENTED_EDGE('',*,*,#14566,.F.); -#7159=ORIENTED_EDGE('',*,*,#14567,.T.); -#7160=ORIENTED_EDGE('',*,*,#14568,.T.); -#7161=ORIENTED_EDGE('',*,*,#14569,.T.); -#7162=ORIENTED_EDGE('',*,*,#14570,.T.); -#7163=ORIENTED_EDGE('',*,*,#14571,.T.); -#7164=ORIENTED_EDGE('',*,*,#14572,.F.); -#7165=ORIENTED_EDGE('',*,*,#14573,.T.); -#7166=ORIENTED_EDGE('',*,*,#14574,.T.); -#7167=ORIENTED_EDGE('',*,*,#14575,.T.); -#7168=ORIENTED_EDGE('',*,*,#14576,.T.); -#7169=ORIENTED_EDGE('',*,*,#14577,.T.); -#7170=ORIENTED_EDGE('',*,*,#14578,.T.); -#7171=ORIENTED_EDGE('',*,*,#14579,.T.); -#7172=ORIENTED_EDGE('',*,*,#14580,.F.); -#7173=ORIENTED_EDGE('',*,*,#14581,.T.); -#7174=ORIENTED_EDGE('',*,*,#14582,.T.); -#7175=ORIENTED_EDGE('',*,*,#14583,.T.); -#7176=ORIENTED_EDGE('',*,*,#14584,.T.); -#7177=ORIENTED_EDGE('',*,*,#14585,.T.); -#7178=ORIENTED_EDGE('',*,*,#14586,.F.); -#7179=ORIENTED_EDGE('',*,*,#14587,.T.); -#7180=ORIENTED_EDGE('',*,*,#14588,.T.); -#7181=ORIENTED_EDGE('',*,*,#14589,.T.); -#7182=ORIENTED_EDGE('',*,*,#14590,.T.); -#7183=ORIENTED_EDGE('',*,*,#14591,.T.); -#7184=ORIENTED_EDGE('',*,*,#14592,.T.); -#7185=ORIENTED_EDGE('',*,*,#14593,.T.); -#7186=ORIENTED_EDGE('',*,*,#14594,.F.); -#7187=ORIENTED_EDGE('',*,*,#14595,.T.); -#7188=ORIENTED_EDGE('',*,*,#14596,.T.); -#7189=ORIENTED_EDGE('',*,*,#14597,.T.); -#7190=ORIENTED_EDGE('',*,*,#14598,.T.); -#7191=ORIENTED_EDGE('',*,*,#14599,.T.); -#7192=ORIENTED_EDGE('',*,*,#14600,.F.); -#7193=ORIENTED_EDGE('',*,*,#14601,.T.); -#7194=ORIENTED_EDGE('',*,*,#14602,.T.); -#7195=ORIENTED_EDGE('',*,*,#14603,.T.); -#7196=ORIENTED_EDGE('',*,*,#14604,.T.); -#7197=ORIENTED_EDGE('',*,*,#14605,.T.); -#7198=ORIENTED_EDGE('',*,*,#14606,.T.); -#7199=ORIENTED_EDGE('',*,*,#14607,.T.); -#7200=ORIENTED_EDGE('',*,*,#14608,.F.); -#7201=ORIENTED_EDGE('',*,*,#14609,.T.); -#7202=ORIENTED_EDGE('',*,*,#14610,.T.); -#7203=ORIENTED_EDGE('',*,*,#14611,.T.); -#7204=ORIENTED_EDGE('',*,*,#14612,.T.); -#7205=ORIENTED_EDGE('',*,*,#14613,.T.); -#7206=ORIENTED_EDGE('',*,*,#14614,.F.); -#7207=ORIENTED_EDGE('',*,*,#14615,.T.); -#7208=ORIENTED_EDGE('',*,*,#14616,.T.); -#7209=ORIENTED_EDGE('',*,*,#14617,.T.); -#7210=ORIENTED_EDGE('',*,*,#14618,.T.); -#7211=ORIENTED_EDGE('',*,*,#14619,.T.); -#7212=ORIENTED_EDGE('',*,*,#14620,.F.); -#7213=ORIENTED_EDGE('',*,*,#14621,.F.); -#7214=ORIENTED_EDGE('',*,*,#14622,.T.); -#7215=ORIENTED_EDGE('',*,*,#14623,.T.); -#7216=ORIENTED_EDGE('',*,*,#14624,.T.); -#7217=ORIENTED_EDGE('',*,*,#14625,.T.); -#7218=ORIENTED_EDGE('',*,*,#14626,.F.); -#7219=ORIENTED_EDGE('',*,*,#14627,.T.); -#7220=ORIENTED_EDGE('',*,*,#14628,.T.); -#7221=ORIENTED_EDGE('',*,*,#14629,.F.); -#7222=ORIENTED_EDGE('',*,*,#14630,.T.); -#7223=ORIENTED_EDGE('',*,*,#14631,.T.); -#7224=ORIENTED_EDGE('',*,*,#14632,.F.); -#7225=ORIENTED_EDGE('',*,*,#14633,.T.); -#7226=ORIENTED_EDGE('',*,*,#14634,.T.); -#7227=ORIENTED_EDGE('',*,*,#14635,.T.); -#7228=ORIENTED_EDGE('',*,*,#14636,.T.); -#7229=ORIENTED_EDGE('',*,*,#14637,.T.); -#7230=ORIENTED_EDGE('',*,*,#14638,.T.); -#7231=ORIENTED_EDGE('',*,*,#14639,.T.); -#7232=ORIENTED_EDGE('',*,*,#14640,.F.); -#7233=ORIENTED_EDGE('',*,*,#14641,.T.); -#7234=ORIENTED_EDGE('',*,*,#14642,.T.); -#7235=ORIENTED_EDGE('',*,*,#14643,.F.); -#7236=ORIENTED_EDGE('',*,*,#14644,.T.); -#7237=ORIENTED_EDGE('',*,*,#14645,.T.); -#7238=ORIENTED_EDGE('',*,*,#14646,.F.); -#7239=ORIENTED_EDGE('',*,*,#14647,.T.); -#7240=ORIENTED_EDGE('',*,*,#14648,.T.); -#7241=ORIENTED_EDGE('',*,*,#14649,.T.); -#7242=ORIENTED_EDGE('',*,*,#14650,.T.); -#7243=ORIENTED_EDGE('',*,*,#14651,.T.); -#7244=ORIENTED_EDGE('',*,*,#14652,.T.); -#7245=ORIENTED_EDGE('',*,*,#14653,.T.); -#7246=ORIENTED_EDGE('',*,*,#14654,.F.); -#7247=ORIENTED_EDGE('',*,*,#14655,.T.); -#7248=ORIENTED_EDGE('',*,*,#14656,.T.); -#7249=ORIENTED_EDGE('',*,*,#14657,.F.); -#7250=ORIENTED_EDGE('',*,*,#14658,.T.); -#7251=ORIENTED_EDGE('',*,*,#14659,.T.); -#7252=ORIENTED_EDGE('',*,*,#14660,.F.); -#7253=ORIENTED_EDGE('',*,*,#14661,.T.); -#7254=ORIENTED_EDGE('',*,*,#14662,.T.); -#7255=ORIENTED_EDGE('',*,*,#14663,.T.); -#7256=ORIENTED_EDGE('',*,*,#14664,.T.); -#7257=ORIENTED_EDGE('',*,*,#14665,.T.); -#7258=ORIENTED_EDGE('',*,*,#14666,.T.); -#7259=ORIENTED_EDGE('',*,*,#14667,.T.); -#7260=ORIENTED_EDGE('',*,*,#14668,.F.); -#7261=ORIENTED_EDGE('',*,*,#14669,.T.); -#7262=ORIENTED_EDGE('',*,*,#14670,.T.); -#7263=ORIENTED_EDGE('',*,*,#14671,.F.); -#7264=ORIENTED_EDGE('',*,*,#14672,.T.); -#7265=ORIENTED_EDGE('',*,*,#14673,.T.); -#7266=ORIENTED_EDGE('',*,*,#14674,.F.); -#7267=ORIENTED_EDGE('',*,*,#14675,.T.); -#7268=ORIENTED_EDGE('',*,*,#14676,.T.); -#7269=ORIENTED_EDGE('',*,*,#14677,.T.); -#7270=ORIENTED_EDGE('',*,*,#14678,.T.); -#7271=ORIENTED_EDGE('',*,*,#14679,.T.); -#7272=ORIENTED_EDGE('',*,*,#14680,.T.); -#7273=ORIENTED_EDGE('',*,*,#14681,.T.); -#7274=ORIENTED_EDGE('',*,*,#14682,.F.); -#7275=ORIENTED_EDGE('',*,*,#14683,.T.); -#7276=ORIENTED_EDGE('',*,*,#14684,.T.); -#7277=ORIENTED_EDGE('',*,*,#14685,.F.); -#7278=ORIENTED_EDGE('',*,*,#14686,.T.); -#7279=ORIENTED_EDGE('',*,*,#14687,.T.); -#7280=ORIENTED_EDGE('',*,*,#14688,.F.); -#7281=ORIENTED_EDGE('',*,*,#14689,.T.); -#7282=ORIENTED_EDGE('',*,*,#14690,.T.); -#7283=ORIENTED_EDGE('',*,*,#14691,.T.); -#7284=ORIENTED_EDGE('',*,*,#14692,.T.); -#7285=ORIENTED_EDGE('',*,*,#14693,.T.); -#7286=ORIENTED_EDGE('',*,*,#14694,.T.); -#7287=ORIENTED_EDGE('',*,*,#14695,.T.); -#7288=ORIENTED_EDGE('',*,*,#14696,.F.); -#7289=ORIENTED_EDGE('',*,*,#14697,.T.); -#7290=ORIENTED_EDGE('',*,*,#14698,.T.); -#7291=ORIENTED_EDGE('',*,*,#14699,.F.); -#7292=ORIENTED_EDGE('',*,*,#14700,.T.); -#7293=ORIENTED_EDGE('',*,*,#14701,.T.); -#7294=ORIENTED_EDGE('',*,*,#14702,.F.); -#7295=ORIENTED_EDGE('',*,*,#14703,.T.); -#7296=ORIENTED_EDGE('',*,*,#14704,.T.); -#7297=ORIENTED_EDGE('',*,*,#14705,.T.); -#7298=ORIENTED_EDGE('',*,*,#14706,.T.); -#7299=ORIENTED_EDGE('',*,*,#14707,.T.); -#7300=ORIENTED_EDGE('',*,*,#14708,.T.); -#7301=ORIENTED_EDGE('',*,*,#14709,.T.); -#7302=ORIENTED_EDGE('',*,*,#14710,.F.); -#7303=ORIENTED_EDGE('',*,*,#14711,.T.); -#7304=ORIENTED_EDGE('',*,*,#14712,.T.); -#7305=ORIENTED_EDGE('',*,*,#14713,.F.); -#7306=ORIENTED_EDGE('',*,*,#14714,.T.); -#7307=ORIENTED_EDGE('',*,*,#14715,.T.); -#7308=ORIENTED_EDGE('',*,*,#14716,.F.); -#7309=ORIENTED_EDGE('',*,*,#14717,.T.); -#7310=ORIENTED_EDGE('',*,*,#14718,.T.); -#7311=ORIENTED_EDGE('',*,*,#14719,.T.); -#7312=ORIENTED_EDGE('',*,*,#14720,.T.); -#7313=ORIENTED_EDGE('',*,*,#14721,.T.); -#7314=ORIENTED_EDGE('',*,*,#14722,.T.); -#7315=ORIENTED_EDGE('',*,*,#14723,.T.); -#7316=ORIENTED_EDGE('',*,*,#14724,.F.); -#7317=ORIENTED_EDGE('',*,*,#14725,.T.); -#7318=ORIENTED_EDGE('',*,*,#14726,.T.); -#7319=ORIENTED_EDGE('',*,*,#14727,.F.); -#7320=ORIENTED_EDGE('',*,*,#14728,.T.); -#7321=ORIENTED_EDGE('',*,*,#14729,.T.); -#7322=ORIENTED_EDGE('',*,*,#14730,.F.); -#7323=ORIENTED_EDGE('',*,*,#14731,.T.); -#7324=ORIENTED_EDGE('',*,*,#14732,.T.); -#7325=ORIENTED_EDGE('',*,*,#14733,.T.); -#7326=ORIENTED_EDGE('',*,*,#14734,.T.); -#7327=ORIENTED_EDGE('',*,*,#14735,.T.); -#7328=ORIENTED_EDGE('',*,*,#14736,.T.); -#7329=ORIENTED_EDGE('',*,*,#14737,.T.); -#7330=ORIENTED_EDGE('',*,*,#14738,.F.); -#7331=ORIENTED_EDGE('',*,*,#14739,.T.); -#7332=ORIENTED_EDGE('',*,*,#14740,.T.); -#7333=ORIENTED_EDGE('',*,*,#14741,.F.); -#7334=ORIENTED_EDGE('',*,*,#14742,.T.); -#7335=ORIENTED_EDGE('',*,*,#14743,.T.); -#7336=ORIENTED_EDGE('',*,*,#14744,.F.); -#7337=ORIENTED_EDGE('',*,*,#14745,.T.); -#7338=ORIENTED_EDGE('',*,*,#14746,.T.); -#7339=ORIENTED_EDGE('',*,*,#14747,.T.); -#7340=ORIENTED_EDGE('',*,*,#14748,.T.); -#7341=ORIENTED_EDGE('',*,*,#14749,.T.); -#7342=ORIENTED_EDGE('',*,*,#14750,.T.); -#7343=ORIENTED_EDGE('',*,*,#14751,.T.); -#7344=ORIENTED_EDGE('',*,*,#14752,.F.); -#7345=ORIENTED_EDGE('',*,*,#14753,.T.); -#7346=ORIENTED_EDGE('',*,*,#14754,.T.); -#7347=ORIENTED_EDGE('',*,*,#14755,.F.); -#7348=ORIENTED_EDGE('',*,*,#14756,.T.); -#7349=ORIENTED_EDGE('',*,*,#14757,.T.); -#7350=ORIENTED_EDGE('',*,*,#14758,.F.); -#7351=ORIENTED_EDGE('',*,*,#14759,.T.); -#7352=ORIENTED_EDGE('',*,*,#14760,.T.); -#7353=ORIENTED_EDGE('',*,*,#14761,.T.); -#7354=ORIENTED_EDGE('',*,*,#14762,.T.); -#7355=ORIENTED_EDGE('',*,*,#14763,.T.); -#7356=ORIENTED_EDGE('',*,*,#14764,.T.); -#7357=ORIENTED_EDGE('',*,*,#14765,.T.); -#7358=ORIENTED_EDGE('',*,*,#14766,.F.); -#7359=ORIENTED_EDGE('',*,*,#14767,.T.); -#7360=ORIENTED_EDGE('',*,*,#14768,.T.); -#7361=ORIENTED_EDGE('',*,*,#14769,.F.); -#7362=ORIENTED_EDGE('',*,*,#14770,.T.); -#7363=ORIENTED_EDGE('',*,*,#14771,.T.); -#7364=ORIENTED_EDGE('',*,*,#14772,.F.); -#7365=ORIENTED_EDGE('',*,*,#14773,.T.); -#7366=ORIENTED_EDGE('',*,*,#14774,.T.); -#7367=ORIENTED_EDGE('',*,*,#14775,.T.); -#7368=ORIENTED_EDGE('',*,*,#14776,.T.); -#7369=ORIENTED_EDGE('',*,*,#14777,.T.); -#7370=ORIENTED_EDGE('',*,*,#14778,.T.); -#7371=ORIENTED_EDGE('',*,*,#14779,.T.); -#7372=ORIENTED_EDGE('',*,*,#14780,.F.); -#7373=ORIENTED_EDGE('',*,*,#14781,.T.); -#7374=ORIENTED_EDGE('',*,*,#14782,.T.); -#7375=ORIENTED_EDGE('',*,*,#14783,.F.); -#7376=ORIENTED_EDGE('',*,*,#14784,.T.); -#7377=ORIENTED_EDGE('',*,*,#14785,.T.); -#7378=ORIENTED_EDGE('',*,*,#14786,.F.); -#7379=ORIENTED_EDGE('',*,*,#14787,.T.); -#7380=ORIENTED_EDGE('',*,*,#14788,.T.); -#7381=ORIENTED_EDGE('',*,*,#14789,.T.); -#7382=ORIENTED_EDGE('',*,*,#14790,.T.); -#7383=ORIENTED_EDGE('',*,*,#14791,.T.); -#7384=ORIENTED_EDGE('',*,*,#14792,.T.); -#7385=ORIENTED_EDGE('',*,*,#14793,.T.); -#7386=ORIENTED_EDGE('',*,*,#14794,.F.); -#7387=ORIENTED_EDGE('',*,*,#14795,.T.); -#7388=ORIENTED_EDGE('',*,*,#14796,.T.); -#7389=ORIENTED_EDGE('',*,*,#14797,.F.); -#7390=ORIENTED_EDGE('',*,*,#14798,.T.); -#7391=ORIENTED_EDGE('',*,*,#14799,.T.); -#7392=ORIENTED_EDGE('',*,*,#14800,.F.); -#7393=ORIENTED_EDGE('',*,*,#14801,.T.); -#7394=ORIENTED_EDGE('',*,*,#14802,.T.); -#7395=ORIENTED_EDGE('',*,*,#14803,.T.); -#7396=ORIENTED_EDGE('',*,*,#14804,.T.); -#7397=ORIENTED_EDGE('',*,*,#14805,.T.); -#7398=ORIENTED_EDGE('',*,*,#14806,.T.); -#7399=ORIENTED_EDGE('',*,*,#14807,.T.); -#7400=ORIENTED_EDGE('',*,*,#14808,.F.); -#7401=ORIENTED_EDGE('',*,*,#14809,.T.); -#7402=ORIENTED_EDGE('',*,*,#14810,.T.); -#7403=ORIENTED_EDGE('',*,*,#14811,.F.); -#7404=ORIENTED_EDGE('',*,*,#14812,.T.); -#7405=ORIENTED_EDGE('',*,*,#14813,.T.); -#7406=ORIENTED_EDGE('',*,*,#14814,.F.); -#7407=ORIENTED_EDGE('',*,*,#14815,.T.); -#7408=ORIENTED_EDGE('',*,*,#14816,.T.); -#7409=ORIENTED_EDGE('',*,*,#14817,.T.); -#7410=ORIENTED_EDGE('',*,*,#14818,.T.); -#7411=ORIENTED_EDGE('',*,*,#14819,.T.); -#7412=ORIENTED_EDGE('',*,*,#14820,.T.); -#7413=ORIENTED_EDGE('',*,*,#14821,.T.); -#7414=ORIENTED_EDGE('',*,*,#14822,.F.); -#7415=ORIENTED_EDGE('',*,*,#14823,.T.); -#7416=ORIENTED_EDGE('',*,*,#14824,.T.); -#7417=ORIENTED_EDGE('',*,*,#14825,.F.); -#7418=ORIENTED_EDGE('',*,*,#14826,.T.); -#7419=ORIENTED_EDGE('',*,*,#14827,.T.); -#7420=ORIENTED_EDGE('',*,*,#14828,.F.); -#7421=ORIENTED_EDGE('',*,*,#14829,.T.); -#7422=ORIENTED_EDGE('',*,*,#14830,.T.); -#7423=ORIENTED_EDGE('',*,*,#14831,.T.); -#7424=ORIENTED_EDGE('',*,*,#14832,.T.); -#7425=ORIENTED_EDGE('',*,*,#14833,.T.); -#7426=ORIENTED_EDGE('',*,*,#14834,.T.); -#7427=ORIENTED_EDGE('',*,*,#14835,.T.); -#7428=ORIENTED_EDGE('',*,*,#14836,.F.); -#7429=ORIENTED_EDGE('',*,*,#14837,.T.); -#7430=ORIENTED_EDGE('',*,*,#14838,.T.); -#7431=ORIENTED_EDGE('',*,*,#14839,.F.); -#7432=ORIENTED_EDGE('',*,*,#14840,.T.); -#7433=ORIENTED_EDGE('',*,*,#14841,.T.); -#7434=ORIENTED_EDGE('',*,*,#14842,.F.); -#7435=ORIENTED_EDGE('',*,*,#14843,.T.); -#7436=ORIENTED_EDGE('',*,*,#14844,.T.); -#7437=ORIENTED_EDGE('',*,*,#14845,.T.); -#7438=ORIENTED_EDGE('',*,*,#14846,.T.); -#7439=ORIENTED_EDGE('',*,*,#14847,.T.); -#7440=ORIENTED_EDGE('',*,*,#14848,.T.); -#7441=ORIENTED_EDGE('',*,*,#14849,.T.); -#7442=ORIENTED_EDGE('',*,*,#14850,.F.); -#7443=ORIENTED_EDGE('',*,*,#14851,.T.); -#7444=ORIENTED_EDGE('',*,*,#14852,.T.); -#7445=ORIENTED_EDGE('',*,*,#14853,.F.); -#7446=ORIENTED_EDGE('',*,*,#14854,.T.); -#7447=ORIENTED_EDGE('',*,*,#14855,.T.); -#7448=ORIENTED_EDGE('',*,*,#14856,.F.); -#7449=ORIENTED_EDGE('',*,*,#14857,.T.); -#7450=ORIENTED_EDGE('',*,*,#14858,.T.); -#7451=ORIENTED_EDGE('',*,*,#14859,.T.); -#7452=ORIENTED_EDGE('',*,*,#14860,.T.); -#7453=ORIENTED_EDGE('',*,*,#14861,.T.); -#7454=ORIENTED_EDGE('',*,*,#14862,.T.); -#7455=ORIENTED_EDGE('',*,*,#14863,.T.); -#7456=ORIENTED_EDGE('',*,*,#14864,.F.); -#7457=ORIENTED_EDGE('',*,*,#14865,.T.); -#7458=ORIENTED_EDGE('',*,*,#14866,.T.); -#7459=ORIENTED_EDGE('',*,*,#14867,.F.); -#7460=ORIENTED_EDGE('',*,*,#14868,.T.); -#7461=ORIENTED_EDGE('',*,*,#14869,.T.); -#7462=ORIENTED_EDGE('',*,*,#14870,.F.); -#7463=ORIENTED_EDGE('',*,*,#14871,.T.); -#7464=ORIENTED_EDGE('',*,*,#14872,.T.); -#7465=ORIENTED_EDGE('',*,*,#14873,.T.); -#7466=ORIENTED_EDGE('',*,*,#14874,.T.); -#7467=ORIENTED_EDGE('',*,*,#14875,.T.); -#7468=ORIENTED_EDGE('',*,*,#14876,.T.); -#7469=ORIENTED_EDGE('',*,*,#14877,.T.); -#7470=ORIENTED_EDGE('',*,*,#14878,.F.); -#7471=ORIENTED_EDGE('',*,*,#14879,.T.); -#7472=ORIENTED_EDGE('',*,*,#14880,.T.); -#7473=ORIENTED_EDGE('',*,*,#14881,.F.); -#7474=ORIENTED_EDGE('',*,*,#14882,.T.); -#7475=ORIENTED_EDGE('',*,*,#14883,.T.); -#7476=ORIENTED_EDGE('',*,*,#14884,.F.); -#7477=ORIENTED_EDGE('',*,*,#14885,.T.); -#7478=ORIENTED_EDGE('',*,*,#14886,.T.); -#7479=ORIENTED_EDGE('',*,*,#14887,.T.); -#7480=ORIENTED_EDGE('',*,*,#14888,.T.); -#7481=ORIENTED_EDGE('',*,*,#14889,.T.); -#7482=ORIENTED_EDGE('',*,*,#14890,.T.); -#7483=ORIENTED_EDGE('',*,*,#14891,.T.); -#7484=ORIENTED_EDGE('',*,*,#14892,.F.); -#7485=ORIENTED_EDGE('',*,*,#14893,.T.); -#7486=ORIENTED_EDGE('',*,*,#14894,.T.); -#7487=ORIENTED_EDGE('',*,*,#14895,.F.); -#7488=ORIENTED_EDGE('',*,*,#14896,.T.); -#7489=ORIENTED_EDGE('',*,*,#14897,.T.); -#7490=ORIENTED_EDGE('',*,*,#14898,.F.); -#7491=ORIENTED_EDGE('',*,*,#14899,.T.); -#7492=ORIENTED_EDGE('',*,*,#14900,.T.); -#7493=ORIENTED_EDGE('',*,*,#14901,.F.); -#7494=ORIENTED_EDGE('',*,*,#14902,.T.); -#7495=ORIENTED_EDGE('',*,*,#14903,.T.); -#7496=ORIENTED_EDGE('',*,*,#14904,.F.); -#7497=ORIENTED_EDGE('',*,*,#14905,.F.); -#7498=ORIENTED_EDGE('',*,*,#14906,.F.); -#7499=ORIENTED_EDGE('',*,*,#14907,.F.); -#7500=ORIENTED_EDGE('',*,*,#14908,.T.); -#7501=ORIENTED_EDGE('',*,*,#14909,.T.); -#7502=ORIENTED_EDGE('',*,*,#14910,.F.); -#7503=ORIENTED_EDGE('',*,*,#14911,.T.); -#7504=ORIENTED_EDGE('',*,*,#14912,.T.); -#7505=ORIENTED_EDGE('',*,*,#14913,.T.); -#7506=ORIENTED_EDGE('',*,*,#14914,.T.); -#7507=ORIENTED_EDGE('',*,*,#14915,.T.); -#7508=ORIENTED_EDGE('',*,*,#14916,.F.); -#7509=ORIENTED_EDGE('',*,*,#14917,.T.); -#7510=ORIENTED_EDGE('',*,*,#14918,.T.); -#7511=ORIENTED_EDGE('',*,*,#14919,.T.); -#7512=ORIENTED_EDGE('',*,*,#14920,.T.); -#7513=ORIENTED_EDGE('',*,*,#14921,.T.); -#7514=ORIENTED_EDGE('',*,*,#14922,.T.); -#7515=ORIENTED_EDGE('',*,*,#14923,.T.); -#7516=ORIENTED_EDGE('',*,*,#14924,.F.); -#7517=ORIENTED_EDGE('',*,*,#14925,.T.); -#7518=ORIENTED_EDGE('',*,*,#14926,.T.); -#7519=ORIENTED_EDGE('',*,*,#14927,.T.); -#7520=ORIENTED_EDGE('',*,*,#14928,.T.); -#7521=ORIENTED_EDGE('',*,*,#14929,.T.); -#7522=ORIENTED_EDGE('',*,*,#14930,.F.); -#7523=ORIENTED_EDGE('',*,*,#14931,.T.); -#7524=ORIENTED_EDGE('',*,*,#14932,.T.); -#7525=ORIENTED_EDGE('',*,*,#14933,.T.); -#7526=ORIENTED_EDGE('',*,*,#14934,.T.); -#7527=ORIENTED_EDGE('',*,*,#14935,.T.); -#7528=ORIENTED_EDGE('',*,*,#14936,.T.); -#7529=ORIENTED_EDGE('',*,*,#14937,.T.); -#7530=ORIENTED_EDGE('',*,*,#14938,.F.); -#7531=ORIENTED_EDGE('',*,*,#14939,.T.); -#7532=ORIENTED_EDGE('',*,*,#14940,.T.); -#7533=ORIENTED_EDGE('',*,*,#14941,.T.); -#7534=ORIENTED_EDGE('',*,*,#14942,.T.); -#7535=ORIENTED_EDGE('',*,*,#14943,.T.); -#7536=ORIENTED_EDGE('',*,*,#14944,.F.); -#7537=ORIENTED_EDGE('',*,*,#14945,.T.); -#7538=ORIENTED_EDGE('',*,*,#14946,.T.); -#7539=ORIENTED_EDGE('',*,*,#14947,.T.); -#7540=ORIENTED_EDGE('',*,*,#14948,.T.); -#7541=ORIENTED_EDGE('',*,*,#14949,.T.); -#7542=ORIENTED_EDGE('',*,*,#14950,.T.); -#7543=ORIENTED_EDGE('',*,*,#14951,.T.); -#7544=ORIENTED_EDGE('',*,*,#14952,.F.); -#7545=ORIENTED_EDGE('',*,*,#14953,.T.); -#7546=ORIENTED_EDGE('',*,*,#14954,.T.); -#7547=ORIENTED_EDGE('',*,*,#14955,.T.); -#7548=ORIENTED_EDGE('',*,*,#14956,.T.); -#7549=ORIENTED_EDGE('',*,*,#14957,.T.); -#7550=ORIENTED_EDGE('',*,*,#14958,.F.); -#7551=ORIENTED_EDGE('',*,*,#14959,.T.); -#7552=ORIENTED_EDGE('',*,*,#14960,.T.); -#7553=ORIENTED_EDGE('',*,*,#14961,.T.); -#7554=ORIENTED_EDGE('',*,*,#14962,.T.); -#7555=ORIENTED_EDGE('',*,*,#14963,.T.); -#7556=ORIENTED_EDGE('',*,*,#14964,.T.); -#7557=ORIENTED_EDGE('',*,*,#14965,.T.); -#7558=ORIENTED_EDGE('',*,*,#14966,.F.); -#7559=ORIENTED_EDGE('',*,*,#14967,.T.); -#7560=ORIENTED_EDGE('',*,*,#14968,.T.); -#7561=ORIENTED_EDGE('',*,*,#14969,.T.); -#7562=ORIENTED_EDGE('',*,*,#14970,.T.); -#7563=ORIENTED_EDGE('',*,*,#14971,.T.); -#7564=ORIENTED_EDGE('',*,*,#14972,.F.); -#7565=ORIENTED_EDGE('',*,*,#14973,.T.); -#7566=ORIENTED_EDGE('',*,*,#14974,.T.); -#7567=ORIENTED_EDGE('',*,*,#14975,.T.); -#7568=ORIENTED_EDGE('',*,*,#14976,.T.); -#7569=ORIENTED_EDGE('',*,*,#14977,.T.); -#7570=ORIENTED_EDGE('',*,*,#14978,.T.); -#7571=ORIENTED_EDGE('',*,*,#14979,.T.); -#7572=ORIENTED_EDGE('',*,*,#14980,.F.); -#7573=ORIENTED_EDGE('',*,*,#14981,.T.); -#7574=ORIENTED_EDGE('',*,*,#14982,.T.); -#7575=ORIENTED_EDGE('',*,*,#14983,.T.); -#7576=ORIENTED_EDGE('',*,*,#14984,.T.); -#7577=ORIENTED_EDGE('',*,*,#14985,.T.); -#7578=ORIENTED_EDGE('',*,*,#14986,.F.); -#7579=ORIENTED_EDGE('',*,*,#14987,.T.); -#7580=ORIENTED_EDGE('',*,*,#14988,.T.); -#7581=ORIENTED_EDGE('',*,*,#14989,.T.); -#7582=ORIENTED_EDGE('',*,*,#14990,.T.); -#7583=ORIENTED_EDGE('',*,*,#14991,.T.); -#7584=ORIENTED_EDGE('',*,*,#14992,.T.); -#7585=ORIENTED_EDGE('',*,*,#14993,.T.); -#7586=ORIENTED_EDGE('',*,*,#14994,.F.); -#7587=ORIENTED_EDGE('',*,*,#14995,.T.); -#7588=ORIENTED_EDGE('',*,*,#14996,.T.); -#7589=ORIENTED_EDGE('',*,*,#14997,.T.); -#7590=ORIENTED_EDGE('',*,*,#14998,.T.); -#7591=ORIENTED_EDGE('',*,*,#14999,.T.); -#7592=ORIENTED_EDGE('',*,*,#15000,.F.); -#7593=ORIENTED_EDGE('',*,*,#15001,.T.); -#7594=ORIENTED_EDGE('',*,*,#15002,.T.); -#7595=ORIENTED_EDGE('',*,*,#15003,.T.); -#7596=ORIENTED_EDGE('',*,*,#15004,.T.); -#7597=ORIENTED_EDGE('',*,*,#15005,.T.); -#7598=ORIENTED_EDGE('',*,*,#15006,.T.); -#7599=ORIENTED_EDGE('',*,*,#15007,.T.); -#7600=ORIENTED_EDGE('',*,*,#15008,.F.); -#7601=ORIENTED_EDGE('',*,*,#15009,.T.); -#7602=ORIENTED_EDGE('',*,*,#15010,.T.); -#7603=ORIENTED_EDGE('',*,*,#15011,.T.); -#7604=ORIENTED_EDGE('',*,*,#15012,.T.); -#7605=ORIENTED_EDGE('',*,*,#15013,.T.); -#7606=ORIENTED_EDGE('',*,*,#15014,.F.); -#7607=ORIENTED_EDGE('',*,*,#15015,.T.); -#7608=ORIENTED_EDGE('',*,*,#15016,.T.); -#7609=ORIENTED_EDGE('',*,*,#15017,.T.); -#7610=ORIENTED_EDGE('',*,*,#15018,.T.); -#7611=ORIENTED_EDGE('',*,*,#15019,.T.); -#7612=ORIENTED_EDGE('',*,*,#15020,.T.); -#7613=ORIENTED_EDGE('',*,*,#15021,.T.); -#7614=ORIENTED_EDGE('',*,*,#15022,.F.); -#7615=ORIENTED_EDGE('',*,*,#15023,.T.); -#7616=ORIENTED_EDGE('',*,*,#15024,.T.); -#7617=ORIENTED_EDGE('',*,*,#15025,.T.); -#7618=ORIENTED_EDGE('',*,*,#15026,.T.); -#7619=ORIENTED_EDGE('',*,*,#15027,.T.); -#7620=ORIENTED_EDGE('',*,*,#15028,.F.); -#7621=ORIENTED_EDGE('',*,*,#15029,.T.); -#7622=ORIENTED_EDGE('',*,*,#15030,.T.); -#7623=ORIENTED_EDGE('',*,*,#15031,.T.); -#7624=ORIENTED_EDGE('',*,*,#15032,.T.); -#7625=ORIENTED_EDGE('',*,*,#15033,.T.); -#7626=ORIENTED_EDGE('',*,*,#15034,.T.); -#7627=ORIENTED_EDGE('',*,*,#15035,.T.); -#7628=ORIENTED_EDGE('',*,*,#15036,.F.); -#7629=ORIENTED_EDGE('',*,*,#15037,.T.); -#7630=ORIENTED_EDGE('',*,*,#15038,.T.); -#7631=ORIENTED_EDGE('',*,*,#15039,.T.); -#7632=ORIENTED_EDGE('',*,*,#15040,.T.); -#7633=ORIENTED_EDGE('',*,*,#15041,.T.); -#7634=ORIENTED_EDGE('',*,*,#15042,.F.); -#7635=ORIENTED_EDGE('',*,*,#15043,.T.); -#7636=ORIENTED_EDGE('',*,*,#15044,.T.); -#7637=ORIENTED_EDGE('',*,*,#15045,.T.); -#7638=ORIENTED_EDGE('',*,*,#15046,.T.); -#7639=ORIENTED_EDGE('',*,*,#15047,.T.); -#7640=ORIENTED_EDGE('',*,*,#15048,.T.); -#7641=ORIENTED_EDGE('',*,*,#15049,.T.); -#7642=ORIENTED_EDGE('',*,*,#15050,.F.); -#7643=ORIENTED_EDGE('',*,*,#15051,.T.); -#7644=ORIENTED_EDGE('',*,*,#15052,.T.); -#7645=ORIENTED_EDGE('',*,*,#15053,.T.); -#7646=ORIENTED_EDGE('',*,*,#15054,.T.); -#7647=ORIENTED_EDGE('',*,*,#15055,.T.); -#7648=ORIENTED_EDGE('',*,*,#15056,.F.); -#7649=ORIENTED_EDGE('',*,*,#15057,.T.); -#7650=ORIENTED_EDGE('',*,*,#15058,.T.); -#7651=ORIENTED_EDGE('',*,*,#15059,.T.); -#7652=ORIENTED_EDGE('',*,*,#15060,.T.); -#7653=ORIENTED_EDGE('',*,*,#15061,.T.); -#7654=ORIENTED_EDGE('',*,*,#15062,.T.); -#7655=ORIENTED_EDGE('',*,*,#15063,.T.); -#7656=ORIENTED_EDGE('',*,*,#15064,.F.); -#7657=ORIENTED_EDGE('',*,*,#15065,.T.); -#7658=ORIENTED_EDGE('',*,*,#15066,.T.); -#7659=ORIENTED_EDGE('',*,*,#15067,.T.); -#7660=ORIENTED_EDGE('',*,*,#15068,.T.); -#7661=ORIENTED_EDGE('',*,*,#15069,.T.); -#7662=ORIENTED_EDGE('',*,*,#15070,.F.); -#7663=ORIENTED_EDGE('',*,*,#15071,.T.); -#7664=ORIENTED_EDGE('',*,*,#15072,.T.); -#7665=ORIENTED_EDGE('',*,*,#15073,.T.); -#7666=ORIENTED_EDGE('',*,*,#15074,.T.); -#7667=ORIENTED_EDGE('',*,*,#15075,.T.); -#7668=ORIENTED_EDGE('',*,*,#15076,.T.); -#7669=ORIENTED_EDGE('',*,*,#15077,.T.); -#7670=ORIENTED_EDGE('',*,*,#15078,.F.); -#7671=ORIENTED_EDGE('',*,*,#15079,.T.); -#7672=ORIENTED_EDGE('',*,*,#15080,.T.); -#7673=ORIENTED_EDGE('',*,*,#15081,.T.); -#7674=ORIENTED_EDGE('',*,*,#15082,.T.); -#7675=ORIENTED_EDGE('',*,*,#15083,.T.); -#7676=ORIENTED_EDGE('',*,*,#15084,.F.); -#7677=ORIENTED_EDGE('',*,*,#15085,.T.); -#7678=ORIENTED_EDGE('',*,*,#15086,.T.); -#7679=ORIENTED_EDGE('',*,*,#15087,.T.); -#7680=ORIENTED_EDGE('',*,*,#15088,.T.); -#7681=ORIENTED_EDGE('',*,*,#15089,.T.); -#7682=ORIENTED_EDGE('',*,*,#15090,.T.); -#7683=ORIENTED_EDGE('',*,*,#15091,.T.); -#7684=ORIENTED_EDGE('',*,*,#15092,.F.); -#7685=ORIENTED_EDGE('',*,*,#15093,.T.); -#7686=ORIENTED_EDGE('',*,*,#15094,.T.); -#7687=ORIENTED_EDGE('',*,*,#15095,.T.); -#7688=ORIENTED_EDGE('',*,*,#15096,.T.); -#7689=ORIENTED_EDGE('',*,*,#15097,.T.); -#7690=ORIENTED_EDGE('',*,*,#15098,.F.); -#7691=ORIENTED_EDGE('',*,*,#15099,.T.); -#7692=ORIENTED_EDGE('',*,*,#15100,.T.); -#7693=ORIENTED_EDGE('',*,*,#15101,.T.); -#7694=ORIENTED_EDGE('',*,*,#15102,.T.); -#7695=ORIENTED_EDGE('',*,*,#15103,.T.); -#7696=ORIENTED_EDGE('',*,*,#15104,.T.); -#7697=ORIENTED_EDGE('',*,*,#15105,.T.); -#7698=ORIENTED_EDGE('',*,*,#15106,.F.); -#7699=ORIENTED_EDGE('',*,*,#15107,.T.); -#7700=ORIENTED_EDGE('',*,*,#15108,.T.); -#7701=ORIENTED_EDGE('',*,*,#15109,.T.); -#7702=ORIENTED_EDGE('',*,*,#15110,.T.); -#7703=ORIENTED_EDGE('',*,*,#15111,.T.); -#7704=ORIENTED_EDGE('',*,*,#15112,.F.); -#7705=ORIENTED_EDGE('',*,*,#15113,.T.); -#7706=ORIENTED_EDGE('',*,*,#15114,.T.); -#7707=ORIENTED_EDGE('',*,*,#15115,.T.); -#7708=ORIENTED_EDGE('',*,*,#15116,.T.); -#7709=ORIENTED_EDGE('',*,*,#15117,.T.); -#7710=ORIENTED_EDGE('',*,*,#15118,.T.); -#7711=ORIENTED_EDGE('',*,*,#15119,.T.); -#7712=ORIENTED_EDGE('',*,*,#15120,.F.); -#7713=ORIENTED_EDGE('',*,*,#15121,.T.); -#7714=ORIENTED_EDGE('',*,*,#15122,.T.); -#7715=ORIENTED_EDGE('',*,*,#15123,.T.); -#7716=ORIENTED_EDGE('',*,*,#15124,.T.); -#7717=ORIENTED_EDGE('',*,*,#15125,.T.); -#7718=ORIENTED_EDGE('',*,*,#15126,.F.); -#7719=ORIENTED_EDGE('',*,*,#15127,.T.); -#7720=ORIENTED_EDGE('',*,*,#15128,.T.); -#7721=ORIENTED_EDGE('',*,*,#15129,.T.); -#7722=ORIENTED_EDGE('',*,*,#15130,.T.); -#7723=ORIENTED_EDGE('',*,*,#15131,.T.); -#7724=ORIENTED_EDGE('',*,*,#15132,.T.); -#7725=ORIENTED_EDGE('',*,*,#15133,.T.); -#7726=ORIENTED_EDGE('',*,*,#15134,.F.); -#7727=ORIENTED_EDGE('',*,*,#15135,.T.); -#7728=ORIENTED_EDGE('',*,*,#15136,.T.); -#7729=ORIENTED_EDGE('',*,*,#15137,.T.); -#7730=ORIENTED_EDGE('',*,*,#15138,.T.); -#7731=ORIENTED_EDGE('',*,*,#15139,.T.); -#7732=ORIENTED_EDGE('',*,*,#15140,.F.); -#7733=ORIENTED_EDGE('',*,*,#15141,.T.); -#7734=ORIENTED_EDGE('',*,*,#15142,.T.); -#7735=ORIENTED_EDGE('',*,*,#15143,.T.); -#7736=ORIENTED_EDGE('',*,*,#15144,.T.); -#7737=ORIENTED_EDGE('',*,*,#15145,.T.); -#7738=ORIENTED_EDGE('',*,*,#15146,.T.); -#7739=ORIENTED_EDGE('',*,*,#15147,.T.); -#7740=ORIENTED_EDGE('',*,*,#15148,.F.); -#7741=ORIENTED_EDGE('',*,*,#15149,.T.); -#7742=ORIENTED_EDGE('',*,*,#15150,.T.); -#7743=ORIENTED_EDGE('',*,*,#15151,.T.); -#7744=ORIENTED_EDGE('',*,*,#15152,.T.); -#7745=ORIENTED_EDGE('',*,*,#15153,.T.); -#7746=ORIENTED_EDGE('',*,*,#15154,.F.); -#7747=ORIENTED_EDGE('',*,*,#15155,.T.); -#7748=ORIENTED_EDGE('',*,*,#15156,.T.); -#7749=ORIENTED_EDGE('',*,*,#15157,.T.); -#7750=ORIENTED_EDGE('',*,*,#15158,.T.); -#7751=ORIENTED_EDGE('',*,*,#15159,.T.); -#7752=ORIENTED_EDGE('',*,*,#15160,.T.); -#7753=ORIENTED_EDGE('',*,*,#15161,.T.); -#7754=ORIENTED_EDGE('',*,*,#15162,.F.); -#7755=ORIENTED_EDGE('',*,*,#15163,.T.); -#7756=ORIENTED_EDGE('',*,*,#15164,.T.); -#7757=ORIENTED_EDGE('',*,*,#15165,.T.); -#7758=ORIENTED_EDGE('',*,*,#15166,.T.); -#7759=ORIENTED_EDGE('',*,*,#15167,.T.); -#7760=ORIENTED_EDGE('',*,*,#15168,.F.); -#7761=ORIENTED_EDGE('',*,*,#15169,.T.); -#7762=ORIENTED_EDGE('',*,*,#15170,.T.); -#7763=ORIENTED_EDGE('',*,*,#15171,.T.); -#7764=ORIENTED_EDGE('',*,*,#15172,.T.); -#7765=ORIENTED_EDGE('',*,*,#15173,.T.); -#7766=ORIENTED_EDGE('',*,*,#15174,.T.); -#7767=ORIENTED_EDGE('',*,*,#15175,.T.); -#7768=ORIENTED_EDGE('',*,*,#15176,.F.); -#7769=ORIENTED_EDGE('',*,*,#15177,.T.); -#7770=ORIENTED_EDGE('',*,*,#15178,.T.); -#7771=ORIENTED_EDGE('',*,*,#15179,.T.); -#7772=ORIENTED_EDGE('',*,*,#15180,.T.); -#7773=ORIENTED_EDGE('',*,*,#15181,.T.); -#7774=ORIENTED_EDGE('',*,*,#15182,.F.); -#7775=ORIENTED_EDGE('',*,*,#15183,.T.); -#7776=ORIENTED_EDGE('',*,*,#15184,.T.); -#7777=ORIENTED_EDGE('',*,*,#15185,.T.); -#7778=ORIENTED_EDGE('',*,*,#15186,.F.); -#7779=ORIENTED_EDGE('',*,*,#15187,.T.); -#7780=ORIENTED_EDGE('',*,*,#15188,.F.); -#7781=ORIENTED_EDGE('',*,*,#15187,.F.); -#7782=ORIENTED_EDGE('',*,*,#15189,.F.); -#7783=ORIENTED_EDGE('',*,*,#14053,.T.); -#7784=ORIENTED_EDGE('',*,*,#14621,.T.); -#7785=ORIENTED_EDGE('',*,*,#15190,.T.); -#7786=ORIENTED_EDGE('',*,*,#14619,.F.); -#7787=ORIENTED_EDGE('',*,*,#15191,.T.); -#7788=ORIENTED_EDGE('',*,*,#14337,.T.); -#7789=ORIENTED_EDGE('',*,*,#15192,.T.); -#7790=ORIENTED_EDGE('',*,*,#14903,.F.); -#7791=ORIENTED_EDGE('',*,*,#15193,.T.); -#7792=ORIENTED_EDGE('',*,*,#15194,.F.); -#7793=ORIENTED_EDGE('',*,*,#14335,.F.); -#7794=ORIENTED_EDGE('',*,*,#15195,.F.); -#7795=ORIENTED_EDGE('',*,*,#14905,.T.); -#7796=ORIENTED_EDGE('',*,*,#14636,.F.); -#7797=ORIENTED_EDGE('',*,*,#15196,.F.); -#7798=ORIENTED_EDGE('',*,*,#15172,.F.); -#7799=ORIENTED_EDGE('',*,*,#15197,.T.); -#7800=ORIENTED_EDGE('',*,*,#14650,.F.); -#7801=ORIENTED_EDGE('',*,*,#15198,.F.); -#7802=ORIENTED_EDGE('',*,*,#15158,.F.); -#7803=ORIENTED_EDGE('',*,*,#15199,.T.); -#7804=ORIENTED_EDGE('',*,*,#14664,.F.); -#7805=ORIENTED_EDGE('',*,*,#15200,.F.); -#7806=ORIENTED_EDGE('',*,*,#15144,.F.); -#7807=ORIENTED_EDGE('',*,*,#15201,.T.); -#7808=ORIENTED_EDGE('',*,*,#14678,.F.); -#7809=ORIENTED_EDGE('',*,*,#15202,.F.); -#7810=ORIENTED_EDGE('',*,*,#15130,.F.); -#7811=ORIENTED_EDGE('',*,*,#15203,.T.); -#7812=ORIENTED_EDGE('',*,*,#14692,.F.); -#7813=ORIENTED_EDGE('',*,*,#15204,.F.); -#7814=ORIENTED_EDGE('',*,*,#15116,.F.); -#7815=ORIENTED_EDGE('',*,*,#15205,.T.); -#7816=ORIENTED_EDGE('',*,*,#14706,.F.); -#7817=ORIENTED_EDGE('',*,*,#15206,.F.); -#7818=ORIENTED_EDGE('',*,*,#15102,.F.); -#7819=ORIENTED_EDGE('',*,*,#15207,.T.); -#7820=ORIENTED_EDGE('',*,*,#14720,.F.); -#7821=ORIENTED_EDGE('',*,*,#15208,.F.); -#7822=ORIENTED_EDGE('',*,*,#15088,.F.); -#7823=ORIENTED_EDGE('',*,*,#15209,.T.); -#7824=ORIENTED_EDGE('',*,*,#14734,.F.); -#7825=ORIENTED_EDGE('',*,*,#15210,.F.); -#7826=ORIENTED_EDGE('',*,*,#15074,.F.); -#7827=ORIENTED_EDGE('',*,*,#15211,.T.); -#7828=ORIENTED_EDGE('',*,*,#14748,.F.); -#7829=ORIENTED_EDGE('',*,*,#15212,.F.); -#7830=ORIENTED_EDGE('',*,*,#15060,.F.); -#7831=ORIENTED_EDGE('',*,*,#15213,.T.); -#7832=ORIENTED_EDGE('',*,*,#14762,.F.); -#7833=ORIENTED_EDGE('',*,*,#15214,.F.); -#7834=ORIENTED_EDGE('',*,*,#15046,.F.); -#7835=ORIENTED_EDGE('',*,*,#15215,.T.); -#7836=ORIENTED_EDGE('',*,*,#14776,.F.); -#7837=ORIENTED_EDGE('',*,*,#15216,.F.); -#7838=ORIENTED_EDGE('',*,*,#15032,.F.); -#7839=ORIENTED_EDGE('',*,*,#15217,.T.); -#7840=ORIENTED_EDGE('',*,*,#14790,.F.); -#7841=ORIENTED_EDGE('',*,*,#15218,.F.); -#7842=ORIENTED_EDGE('',*,*,#15018,.F.); -#7843=ORIENTED_EDGE('',*,*,#15219,.T.); -#7844=ORIENTED_EDGE('',*,*,#14804,.F.); -#7845=ORIENTED_EDGE('',*,*,#15220,.F.); -#7846=ORIENTED_EDGE('',*,*,#15004,.F.); -#7847=ORIENTED_EDGE('',*,*,#15221,.T.); -#7848=ORIENTED_EDGE('',*,*,#14818,.F.); -#7849=ORIENTED_EDGE('',*,*,#15222,.F.); -#7850=ORIENTED_EDGE('',*,*,#14990,.F.); -#7851=ORIENTED_EDGE('',*,*,#15223,.T.); -#7852=ORIENTED_EDGE('',*,*,#14832,.F.); -#7853=ORIENTED_EDGE('',*,*,#15224,.F.); -#7854=ORIENTED_EDGE('',*,*,#14976,.F.); -#7855=ORIENTED_EDGE('',*,*,#15225,.T.); -#7856=ORIENTED_EDGE('',*,*,#14846,.F.); -#7857=ORIENTED_EDGE('',*,*,#15226,.F.); -#7858=ORIENTED_EDGE('',*,*,#14962,.F.); -#7859=ORIENTED_EDGE('',*,*,#15227,.T.); -#7860=ORIENTED_EDGE('',*,*,#14860,.F.); -#7861=ORIENTED_EDGE('',*,*,#15228,.F.); -#7862=ORIENTED_EDGE('',*,*,#14948,.F.); -#7863=ORIENTED_EDGE('',*,*,#15229,.T.); -#7864=ORIENTED_EDGE('',*,*,#14874,.F.); -#7865=ORIENTED_EDGE('',*,*,#15230,.F.); -#7866=ORIENTED_EDGE('',*,*,#14934,.F.); -#7867=ORIENTED_EDGE('',*,*,#15231,.T.); -#7868=ORIENTED_EDGE('',*,*,#14888,.F.); -#7869=ORIENTED_EDGE('',*,*,#15232,.F.); -#7870=ORIENTED_EDGE('',*,*,#14920,.F.); -#7871=ORIENTED_EDGE('',*,*,#15233,.T.); -#7872=ORIENTED_EDGE('',*,*,#14352,.F.); -#7873=ORIENTED_EDGE('',*,*,#15234,.T.); -#7874=ORIENTED_EDGE('',*,*,#14320,.F.); -#7875=ORIENTED_EDGE('',*,*,#15235,.F.); -#7876=ORIENTED_EDGE('',*,*,#14366,.F.); -#7877=ORIENTED_EDGE('',*,*,#15236,.T.); -#7878=ORIENTED_EDGE('',*,*,#14306,.F.); -#7879=ORIENTED_EDGE('',*,*,#15237,.F.); -#7880=ORIENTED_EDGE('',*,*,#14380,.F.); -#7881=ORIENTED_EDGE('',*,*,#15238,.T.); -#7882=ORIENTED_EDGE('',*,*,#14292,.F.); -#7883=ORIENTED_EDGE('',*,*,#15239,.F.); -#7884=ORIENTED_EDGE('',*,*,#14394,.F.); -#7885=ORIENTED_EDGE('',*,*,#15240,.T.); -#7886=ORIENTED_EDGE('',*,*,#14278,.F.); -#7887=ORIENTED_EDGE('',*,*,#15241,.F.); -#7888=ORIENTED_EDGE('',*,*,#14408,.F.); -#7889=ORIENTED_EDGE('',*,*,#15242,.T.); -#7890=ORIENTED_EDGE('',*,*,#14264,.F.); -#7891=ORIENTED_EDGE('',*,*,#15243,.F.); -#7892=ORIENTED_EDGE('',*,*,#14422,.F.); -#7893=ORIENTED_EDGE('',*,*,#15244,.T.); -#7894=ORIENTED_EDGE('',*,*,#14250,.F.); -#7895=ORIENTED_EDGE('',*,*,#15245,.F.); -#7896=ORIENTED_EDGE('',*,*,#14436,.F.); -#7897=ORIENTED_EDGE('',*,*,#15246,.T.); -#7898=ORIENTED_EDGE('',*,*,#14236,.F.); -#7899=ORIENTED_EDGE('',*,*,#15247,.F.); -#7900=ORIENTED_EDGE('',*,*,#14450,.F.); -#7901=ORIENTED_EDGE('',*,*,#15248,.T.); -#7902=ORIENTED_EDGE('',*,*,#14222,.F.); -#7903=ORIENTED_EDGE('',*,*,#15249,.F.); -#7904=ORIENTED_EDGE('',*,*,#14464,.F.); -#7905=ORIENTED_EDGE('',*,*,#15250,.T.); -#7906=ORIENTED_EDGE('',*,*,#14208,.F.); -#7907=ORIENTED_EDGE('',*,*,#15251,.F.); -#7908=ORIENTED_EDGE('',*,*,#14478,.F.); -#7909=ORIENTED_EDGE('',*,*,#15252,.T.); -#7910=ORIENTED_EDGE('',*,*,#14194,.F.); -#7911=ORIENTED_EDGE('',*,*,#15253,.F.); -#7912=ORIENTED_EDGE('',*,*,#14492,.F.); -#7913=ORIENTED_EDGE('',*,*,#15254,.T.); -#7914=ORIENTED_EDGE('',*,*,#14180,.F.); -#7915=ORIENTED_EDGE('',*,*,#15255,.F.); -#7916=ORIENTED_EDGE('',*,*,#14506,.F.); -#7917=ORIENTED_EDGE('',*,*,#15256,.T.); -#7918=ORIENTED_EDGE('',*,*,#14166,.F.); -#7919=ORIENTED_EDGE('',*,*,#15257,.F.); -#7920=ORIENTED_EDGE('',*,*,#14520,.F.); -#7921=ORIENTED_EDGE('',*,*,#15258,.T.); -#7922=ORIENTED_EDGE('',*,*,#14152,.F.); -#7923=ORIENTED_EDGE('',*,*,#15259,.F.); -#7924=ORIENTED_EDGE('',*,*,#14534,.F.); -#7925=ORIENTED_EDGE('',*,*,#15260,.T.); -#7926=ORIENTED_EDGE('',*,*,#14138,.F.); -#7927=ORIENTED_EDGE('',*,*,#15261,.F.); -#7928=ORIENTED_EDGE('',*,*,#14548,.F.); -#7929=ORIENTED_EDGE('',*,*,#15262,.T.); -#7930=ORIENTED_EDGE('',*,*,#14124,.F.); -#7931=ORIENTED_EDGE('',*,*,#15263,.F.); -#7932=ORIENTED_EDGE('',*,*,#14562,.F.); -#7933=ORIENTED_EDGE('',*,*,#15264,.T.); -#7934=ORIENTED_EDGE('',*,*,#14110,.F.); -#7935=ORIENTED_EDGE('',*,*,#15265,.F.); -#7936=ORIENTED_EDGE('',*,*,#14576,.F.); -#7937=ORIENTED_EDGE('',*,*,#15266,.T.); -#7938=ORIENTED_EDGE('',*,*,#14096,.F.); -#7939=ORIENTED_EDGE('',*,*,#15267,.F.); -#7940=ORIENTED_EDGE('',*,*,#14590,.F.); -#7941=ORIENTED_EDGE('',*,*,#15268,.T.); -#7942=ORIENTED_EDGE('',*,*,#14082,.F.); -#7943=ORIENTED_EDGE('',*,*,#15269,.F.); -#7944=ORIENTED_EDGE('',*,*,#14604,.F.); -#7945=ORIENTED_EDGE('',*,*,#15270,.T.); -#7946=ORIENTED_EDGE('',*,*,#14068,.F.); -#7947=ORIENTED_EDGE('',*,*,#15271,.F.); -#7948=ORIENTED_EDGE('',*,*,#15272,.F.); -#7949=ORIENTED_EDGE('',*,*,#14333,.T.); -#7950=ORIENTED_EDGE('',*,*,#15273,.T.); -#7951=ORIENTED_EDGE('',*,*,#14339,.T.); -#7952=ORIENTED_EDGE('',*,*,#14055,.F.); -#7953=ORIENTED_EDGE('',*,*,#15274,.T.); -#7954=ORIENTED_EDGE('',*,*,#14617,.F.); -#7955=ORIENTED_EDGE('',*,*,#15275,.F.); -#7956=ORIENTED_EDGE('',*,*,#15276,.F.); -#7957=ORIENTED_EDGE('',*,*,#15277,.T.); -#7958=ORIENTED_EDGE('',*,*,#15278,.T.); -#7959=ORIENTED_EDGE('',*,*,#15279,.F.); -#7960=ORIENTED_EDGE('',*,*,#15280,.T.); -#7961=ORIENTED_EDGE('',*,*,#15281,.T.); -#7962=ORIENTED_EDGE('',*,*,#15282,.F.); -#7963=ORIENTED_EDGE('',*,*,#14061,.T.); -#7964=ORIENTED_EDGE('',*,*,#15283,.F.); -#7965=ORIENTED_EDGE('',*,*,#15284,.T.); -#7966=ORIENTED_EDGE('',*,*,#15285,.T.); -#7967=ORIENTED_EDGE('',*,*,#15286,.F.); -#7968=ORIENTED_EDGE('',*,*,#15287,.T.); -#7969=ORIENTED_EDGE('',*,*,#15288,.T.); -#7970=ORIENTED_EDGE('',*,*,#15289,.F.); -#7971=ORIENTED_EDGE('',*,*,#14075,.T.); -#7972=ORIENTED_EDGE('',*,*,#15290,.F.); -#7973=ORIENTED_EDGE('',*,*,#15291,.T.); -#7974=ORIENTED_EDGE('',*,*,#15292,.T.); -#7975=ORIENTED_EDGE('',*,*,#15293,.F.); -#7976=ORIENTED_EDGE('',*,*,#15294,.T.); -#7977=ORIENTED_EDGE('',*,*,#15295,.T.); -#7978=ORIENTED_EDGE('',*,*,#15296,.F.); -#7979=ORIENTED_EDGE('',*,*,#14089,.T.); -#7980=ORIENTED_EDGE('',*,*,#15297,.F.); -#7981=ORIENTED_EDGE('',*,*,#15298,.T.); -#7982=ORIENTED_EDGE('',*,*,#15299,.T.); -#7983=ORIENTED_EDGE('',*,*,#15300,.F.); -#7984=ORIENTED_EDGE('',*,*,#15301,.T.); -#7985=ORIENTED_EDGE('',*,*,#15302,.T.); -#7986=ORIENTED_EDGE('',*,*,#15303,.F.); -#7987=ORIENTED_EDGE('',*,*,#14103,.T.); -#7988=ORIENTED_EDGE('',*,*,#15304,.F.); -#7989=ORIENTED_EDGE('',*,*,#15305,.T.); -#7990=ORIENTED_EDGE('',*,*,#15306,.T.); -#7991=ORIENTED_EDGE('',*,*,#15307,.F.); -#7992=ORIENTED_EDGE('',*,*,#15308,.T.); -#7993=ORIENTED_EDGE('',*,*,#15309,.T.); -#7994=ORIENTED_EDGE('',*,*,#15310,.F.); -#7995=ORIENTED_EDGE('',*,*,#14117,.T.); -#7996=ORIENTED_EDGE('',*,*,#15311,.F.); -#7997=ORIENTED_EDGE('',*,*,#15312,.T.); -#7998=ORIENTED_EDGE('',*,*,#15313,.T.); -#7999=ORIENTED_EDGE('',*,*,#15314,.F.); -#8000=ORIENTED_EDGE('',*,*,#15315,.T.); -#8001=ORIENTED_EDGE('',*,*,#15316,.T.); -#8002=ORIENTED_EDGE('',*,*,#15317,.F.); -#8003=ORIENTED_EDGE('',*,*,#14131,.T.); -#8004=ORIENTED_EDGE('',*,*,#15318,.F.); -#8005=ORIENTED_EDGE('',*,*,#15319,.T.); -#8006=ORIENTED_EDGE('',*,*,#15320,.T.); -#8007=ORIENTED_EDGE('',*,*,#15321,.F.); -#8008=ORIENTED_EDGE('',*,*,#15322,.T.); -#8009=ORIENTED_EDGE('',*,*,#15323,.T.); -#8010=ORIENTED_EDGE('',*,*,#15324,.F.); -#8011=ORIENTED_EDGE('',*,*,#14145,.T.); -#8012=ORIENTED_EDGE('',*,*,#15325,.F.); -#8013=ORIENTED_EDGE('',*,*,#15326,.T.); -#8014=ORIENTED_EDGE('',*,*,#15327,.T.); -#8015=ORIENTED_EDGE('',*,*,#15328,.F.); -#8016=ORIENTED_EDGE('',*,*,#15329,.T.); -#8017=ORIENTED_EDGE('',*,*,#15330,.T.); -#8018=ORIENTED_EDGE('',*,*,#15331,.F.); -#8019=ORIENTED_EDGE('',*,*,#14159,.T.); -#8020=ORIENTED_EDGE('',*,*,#15332,.F.); -#8021=ORIENTED_EDGE('',*,*,#15333,.T.); -#8022=ORIENTED_EDGE('',*,*,#15334,.T.); -#8023=ORIENTED_EDGE('',*,*,#15335,.F.); -#8024=ORIENTED_EDGE('',*,*,#15336,.T.); -#8025=ORIENTED_EDGE('',*,*,#15337,.T.); -#8026=ORIENTED_EDGE('',*,*,#15338,.F.); -#8027=ORIENTED_EDGE('',*,*,#14173,.T.); -#8028=ORIENTED_EDGE('',*,*,#15339,.F.); -#8029=ORIENTED_EDGE('',*,*,#15340,.T.); -#8030=ORIENTED_EDGE('',*,*,#15341,.T.); -#8031=ORIENTED_EDGE('',*,*,#15342,.F.); -#8032=ORIENTED_EDGE('',*,*,#15343,.T.); -#8033=ORIENTED_EDGE('',*,*,#15344,.T.); -#8034=ORIENTED_EDGE('',*,*,#15345,.F.); -#8035=ORIENTED_EDGE('',*,*,#14187,.T.); -#8036=ORIENTED_EDGE('',*,*,#15346,.F.); -#8037=ORIENTED_EDGE('',*,*,#15347,.T.); -#8038=ORIENTED_EDGE('',*,*,#15348,.T.); -#8039=ORIENTED_EDGE('',*,*,#15349,.F.); -#8040=ORIENTED_EDGE('',*,*,#15350,.T.); -#8041=ORIENTED_EDGE('',*,*,#15351,.T.); -#8042=ORIENTED_EDGE('',*,*,#15352,.F.); -#8043=ORIENTED_EDGE('',*,*,#14201,.T.); -#8044=ORIENTED_EDGE('',*,*,#15353,.F.); -#8045=ORIENTED_EDGE('',*,*,#15354,.T.); -#8046=ORIENTED_EDGE('',*,*,#15355,.T.); -#8047=ORIENTED_EDGE('',*,*,#15356,.F.); -#8048=ORIENTED_EDGE('',*,*,#15357,.T.); -#8049=ORIENTED_EDGE('',*,*,#15358,.T.); -#8050=ORIENTED_EDGE('',*,*,#15359,.F.); -#8051=ORIENTED_EDGE('',*,*,#14215,.T.); -#8052=ORIENTED_EDGE('',*,*,#15360,.F.); -#8053=ORIENTED_EDGE('',*,*,#15361,.T.); -#8054=ORIENTED_EDGE('',*,*,#15362,.T.); -#8055=ORIENTED_EDGE('',*,*,#15363,.F.); -#8056=ORIENTED_EDGE('',*,*,#15364,.T.); -#8057=ORIENTED_EDGE('',*,*,#15365,.T.); -#8058=ORIENTED_EDGE('',*,*,#15366,.F.); -#8059=ORIENTED_EDGE('',*,*,#14229,.T.); -#8060=ORIENTED_EDGE('',*,*,#15367,.F.); -#8061=ORIENTED_EDGE('',*,*,#15368,.T.); -#8062=ORIENTED_EDGE('',*,*,#15369,.T.); -#8063=ORIENTED_EDGE('',*,*,#15370,.F.); -#8064=ORIENTED_EDGE('',*,*,#15371,.T.); -#8065=ORIENTED_EDGE('',*,*,#15372,.T.); -#8066=ORIENTED_EDGE('',*,*,#15373,.F.); -#8067=ORIENTED_EDGE('',*,*,#14243,.T.); -#8068=ORIENTED_EDGE('',*,*,#15374,.F.); -#8069=ORIENTED_EDGE('',*,*,#15375,.T.); -#8070=ORIENTED_EDGE('',*,*,#15376,.T.); -#8071=ORIENTED_EDGE('',*,*,#15377,.F.); -#8072=ORIENTED_EDGE('',*,*,#15378,.T.); -#8073=ORIENTED_EDGE('',*,*,#15379,.T.); -#8074=ORIENTED_EDGE('',*,*,#15380,.F.); -#8075=ORIENTED_EDGE('',*,*,#14257,.T.); -#8076=ORIENTED_EDGE('',*,*,#15381,.F.); -#8077=ORIENTED_EDGE('',*,*,#15382,.T.); -#8078=ORIENTED_EDGE('',*,*,#15383,.T.); -#8079=ORIENTED_EDGE('',*,*,#15384,.F.); -#8080=ORIENTED_EDGE('',*,*,#15385,.T.); -#8081=ORIENTED_EDGE('',*,*,#15386,.T.); -#8082=ORIENTED_EDGE('',*,*,#15387,.F.); -#8083=ORIENTED_EDGE('',*,*,#14271,.T.); -#8084=ORIENTED_EDGE('',*,*,#15388,.F.); -#8085=ORIENTED_EDGE('',*,*,#15389,.T.); -#8086=ORIENTED_EDGE('',*,*,#15390,.T.); -#8087=ORIENTED_EDGE('',*,*,#15391,.F.); -#8088=ORIENTED_EDGE('',*,*,#15392,.T.); -#8089=ORIENTED_EDGE('',*,*,#15393,.T.); -#8090=ORIENTED_EDGE('',*,*,#15394,.F.); -#8091=ORIENTED_EDGE('',*,*,#14285,.T.); -#8092=ORIENTED_EDGE('',*,*,#15395,.F.); -#8093=ORIENTED_EDGE('',*,*,#15396,.T.); -#8094=ORIENTED_EDGE('',*,*,#15397,.T.); -#8095=ORIENTED_EDGE('',*,*,#15398,.F.); -#8096=ORIENTED_EDGE('',*,*,#15399,.T.); -#8097=ORIENTED_EDGE('',*,*,#15400,.T.); -#8098=ORIENTED_EDGE('',*,*,#15401,.F.); -#8099=ORIENTED_EDGE('',*,*,#14299,.T.); -#8100=ORIENTED_EDGE('',*,*,#15402,.F.); -#8101=ORIENTED_EDGE('',*,*,#15403,.T.); -#8102=ORIENTED_EDGE('',*,*,#15404,.T.); -#8103=ORIENTED_EDGE('',*,*,#15405,.F.); -#8104=ORIENTED_EDGE('',*,*,#15406,.T.); -#8105=ORIENTED_EDGE('',*,*,#15407,.T.); -#8106=ORIENTED_EDGE('',*,*,#15408,.F.); -#8107=ORIENTED_EDGE('',*,*,#14313,.T.); -#8108=ORIENTED_EDGE('',*,*,#15409,.F.); -#8109=ORIENTED_EDGE('',*,*,#15410,.T.); -#8110=ORIENTED_EDGE('',*,*,#15411,.T.); -#8111=ORIENTED_EDGE('',*,*,#15412,.F.); -#8112=ORIENTED_EDGE('',*,*,#15413,.T.); -#8113=ORIENTED_EDGE('',*,*,#15414,.T.); -#8114=ORIENTED_EDGE('',*,*,#15415,.F.); -#8115=ORIENTED_EDGE('',*,*,#14327,.T.); -#8116=ORIENTED_EDGE('',*,*,#15416,.T.); -#8117=ORIENTED_EDGE('',*,*,#15417,.T.); -#8118=ORIENTED_EDGE('',*,*,#15418,.F.); -#8119=ORIENTED_EDGE('',*,*,#15419,.T.); -#8120=ORIENTED_EDGE('',*,*,#15420,.T.); -#8121=ORIENTED_EDGE('',*,*,#15279,.T.); -#8122=ORIENTED_EDGE('',*,*,#15421,.T.); -#8123=ORIENTED_EDGE('',*,*,#15422,.T.); -#8124=ORIENTED_EDGE('',*,*,#15423,.F.); -#8125=ORIENTED_EDGE('',*,*,#15424,.T.); -#8126=ORIENTED_EDGE('',*,*,#15425,.T.); -#8127=ORIENTED_EDGE('',*,*,#15286,.T.); -#8128=ORIENTED_EDGE('',*,*,#15426,.T.); -#8129=ORIENTED_EDGE('',*,*,#15427,.T.); -#8130=ORIENTED_EDGE('',*,*,#15428,.F.); -#8131=ORIENTED_EDGE('',*,*,#15429,.T.); -#8132=ORIENTED_EDGE('',*,*,#15430,.T.); -#8133=ORIENTED_EDGE('',*,*,#15293,.T.); -#8134=ORIENTED_EDGE('',*,*,#15431,.T.); -#8135=ORIENTED_EDGE('',*,*,#15432,.T.); -#8136=ORIENTED_EDGE('',*,*,#15433,.F.); -#8137=ORIENTED_EDGE('',*,*,#15434,.T.); -#8138=ORIENTED_EDGE('',*,*,#15435,.T.); -#8139=ORIENTED_EDGE('',*,*,#15300,.T.); -#8140=ORIENTED_EDGE('',*,*,#15436,.T.); -#8141=ORIENTED_EDGE('',*,*,#15437,.T.); -#8142=ORIENTED_EDGE('',*,*,#15438,.F.); -#8143=ORIENTED_EDGE('',*,*,#15439,.T.); -#8144=ORIENTED_EDGE('',*,*,#15440,.T.); -#8145=ORIENTED_EDGE('',*,*,#15307,.T.); -#8146=ORIENTED_EDGE('',*,*,#15441,.T.); -#8147=ORIENTED_EDGE('',*,*,#15442,.T.); -#8148=ORIENTED_EDGE('',*,*,#15443,.F.); -#8149=ORIENTED_EDGE('',*,*,#15444,.T.); -#8150=ORIENTED_EDGE('',*,*,#15445,.T.); -#8151=ORIENTED_EDGE('',*,*,#15314,.T.); -#8152=ORIENTED_EDGE('',*,*,#15446,.T.); -#8153=ORIENTED_EDGE('',*,*,#15447,.T.); -#8154=ORIENTED_EDGE('',*,*,#15448,.F.); -#8155=ORIENTED_EDGE('',*,*,#15449,.T.); -#8156=ORIENTED_EDGE('',*,*,#15450,.T.); -#8157=ORIENTED_EDGE('',*,*,#15321,.T.); -#8158=ORIENTED_EDGE('',*,*,#15451,.T.); -#8159=ORIENTED_EDGE('',*,*,#15452,.T.); -#8160=ORIENTED_EDGE('',*,*,#15453,.F.); -#8161=ORIENTED_EDGE('',*,*,#15454,.T.); -#8162=ORIENTED_EDGE('',*,*,#15455,.T.); -#8163=ORIENTED_EDGE('',*,*,#15328,.T.); -#8164=ORIENTED_EDGE('',*,*,#15456,.T.); -#8165=ORIENTED_EDGE('',*,*,#15457,.T.); -#8166=ORIENTED_EDGE('',*,*,#15458,.F.); -#8167=ORIENTED_EDGE('',*,*,#15459,.T.); -#8168=ORIENTED_EDGE('',*,*,#15460,.T.); -#8169=ORIENTED_EDGE('',*,*,#15335,.T.); -#8170=ORIENTED_EDGE('',*,*,#15461,.T.); -#8171=ORIENTED_EDGE('',*,*,#15462,.T.); -#8172=ORIENTED_EDGE('',*,*,#15463,.F.); -#8173=ORIENTED_EDGE('',*,*,#15464,.T.); -#8174=ORIENTED_EDGE('',*,*,#15465,.T.); -#8175=ORIENTED_EDGE('',*,*,#15342,.T.); -#8176=ORIENTED_EDGE('',*,*,#15466,.T.); -#8177=ORIENTED_EDGE('',*,*,#15467,.T.); -#8178=ORIENTED_EDGE('',*,*,#15468,.F.); -#8179=ORIENTED_EDGE('',*,*,#15469,.T.); -#8180=ORIENTED_EDGE('',*,*,#15470,.T.); -#8181=ORIENTED_EDGE('',*,*,#15349,.T.); -#8182=ORIENTED_EDGE('',*,*,#15471,.T.); -#8183=ORIENTED_EDGE('',*,*,#15472,.T.); -#8184=ORIENTED_EDGE('',*,*,#15473,.F.); -#8185=ORIENTED_EDGE('',*,*,#15474,.T.); -#8186=ORIENTED_EDGE('',*,*,#15475,.T.); -#8187=ORIENTED_EDGE('',*,*,#15356,.T.); -#8188=ORIENTED_EDGE('',*,*,#15476,.T.); -#8189=ORIENTED_EDGE('',*,*,#15477,.T.); -#8190=ORIENTED_EDGE('',*,*,#15478,.F.); -#8191=ORIENTED_EDGE('',*,*,#15479,.T.); -#8192=ORIENTED_EDGE('',*,*,#15480,.T.); -#8193=ORIENTED_EDGE('',*,*,#15363,.T.); -#8194=ORIENTED_EDGE('',*,*,#15481,.T.); -#8195=ORIENTED_EDGE('',*,*,#15482,.T.); -#8196=ORIENTED_EDGE('',*,*,#15483,.F.); -#8197=ORIENTED_EDGE('',*,*,#15484,.T.); -#8198=ORIENTED_EDGE('',*,*,#15485,.T.); -#8199=ORIENTED_EDGE('',*,*,#15370,.T.); -#8200=ORIENTED_EDGE('',*,*,#15486,.T.); -#8201=ORIENTED_EDGE('',*,*,#15487,.T.); -#8202=ORIENTED_EDGE('',*,*,#15488,.F.); -#8203=ORIENTED_EDGE('',*,*,#15489,.T.); -#8204=ORIENTED_EDGE('',*,*,#15490,.T.); -#8205=ORIENTED_EDGE('',*,*,#15377,.T.); -#8206=ORIENTED_EDGE('',*,*,#15491,.T.); -#8207=ORIENTED_EDGE('',*,*,#15492,.T.); -#8208=ORIENTED_EDGE('',*,*,#15493,.F.); -#8209=ORIENTED_EDGE('',*,*,#15494,.T.); -#8210=ORIENTED_EDGE('',*,*,#15495,.T.); -#8211=ORIENTED_EDGE('',*,*,#15384,.T.); -#8212=ORIENTED_EDGE('',*,*,#15496,.T.); -#8213=ORIENTED_EDGE('',*,*,#15497,.T.); -#8214=ORIENTED_EDGE('',*,*,#15498,.F.); -#8215=ORIENTED_EDGE('',*,*,#15499,.T.); -#8216=ORIENTED_EDGE('',*,*,#15500,.T.); -#8217=ORIENTED_EDGE('',*,*,#15391,.T.); -#8218=ORIENTED_EDGE('',*,*,#15501,.T.); -#8219=ORIENTED_EDGE('',*,*,#15502,.T.); -#8220=ORIENTED_EDGE('',*,*,#15503,.F.); -#8221=ORIENTED_EDGE('',*,*,#15504,.T.); -#8222=ORIENTED_EDGE('',*,*,#15505,.T.); -#8223=ORIENTED_EDGE('',*,*,#15398,.T.); -#8224=ORIENTED_EDGE('',*,*,#15506,.T.); -#8225=ORIENTED_EDGE('',*,*,#15507,.T.); -#8226=ORIENTED_EDGE('',*,*,#15508,.F.); -#8227=ORIENTED_EDGE('',*,*,#15509,.T.); -#8228=ORIENTED_EDGE('',*,*,#15510,.T.); -#8229=ORIENTED_EDGE('',*,*,#15405,.T.); -#8230=ORIENTED_EDGE('',*,*,#15511,.F.); -#8231=ORIENTED_EDGE('',*,*,#15512,.T.); -#8232=ORIENTED_EDGE('',*,*,#14611,.F.); -#8233=ORIENTED_EDGE('',*,*,#15513,.T.); -#8234=ORIENTED_EDGE('',*,*,#15514,.F.); -#8235=ORIENTED_EDGE('',*,*,#15418,.T.); -#8236=ORIENTED_EDGE('',*,*,#15515,.F.); -#8237=ORIENTED_EDGE('',*,*,#15516,.T.); -#8238=ORIENTED_EDGE('',*,*,#14597,.F.); -#8239=ORIENTED_EDGE('',*,*,#15517,.T.); -#8240=ORIENTED_EDGE('',*,*,#15518,.F.); -#8241=ORIENTED_EDGE('',*,*,#15423,.T.); -#8242=ORIENTED_EDGE('',*,*,#15519,.F.); -#8243=ORIENTED_EDGE('',*,*,#15520,.T.); -#8244=ORIENTED_EDGE('',*,*,#14583,.F.); -#8245=ORIENTED_EDGE('',*,*,#15521,.T.); -#8246=ORIENTED_EDGE('',*,*,#15522,.F.); -#8247=ORIENTED_EDGE('',*,*,#15428,.T.); -#8248=ORIENTED_EDGE('',*,*,#15523,.F.); -#8249=ORIENTED_EDGE('',*,*,#15524,.T.); -#8250=ORIENTED_EDGE('',*,*,#14569,.F.); -#8251=ORIENTED_EDGE('',*,*,#15525,.T.); -#8252=ORIENTED_EDGE('',*,*,#15526,.F.); -#8253=ORIENTED_EDGE('',*,*,#15433,.T.); -#8254=ORIENTED_EDGE('',*,*,#15527,.F.); -#8255=ORIENTED_EDGE('',*,*,#15528,.T.); -#8256=ORIENTED_EDGE('',*,*,#14555,.F.); -#8257=ORIENTED_EDGE('',*,*,#15529,.T.); -#8258=ORIENTED_EDGE('',*,*,#15530,.F.); -#8259=ORIENTED_EDGE('',*,*,#15438,.T.); -#8260=ORIENTED_EDGE('',*,*,#15531,.F.); -#8261=ORIENTED_EDGE('',*,*,#15532,.T.); -#8262=ORIENTED_EDGE('',*,*,#14541,.F.); -#8263=ORIENTED_EDGE('',*,*,#15533,.T.); -#8264=ORIENTED_EDGE('',*,*,#15534,.F.); -#8265=ORIENTED_EDGE('',*,*,#15443,.T.); -#8266=ORIENTED_EDGE('',*,*,#15535,.F.); -#8267=ORIENTED_EDGE('',*,*,#15536,.T.); -#8268=ORIENTED_EDGE('',*,*,#14527,.F.); -#8269=ORIENTED_EDGE('',*,*,#15537,.T.); -#8270=ORIENTED_EDGE('',*,*,#15538,.F.); -#8271=ORIENTED_EDGE('',*,*,#15448,.T.); -#8272=ORIENTED_EDGE('',*,*,#15539,.F.); -#8273=ORIENTED_EDGE('',*,*,#15540,.T.); -#8274=ORIENTED_EDGE('',*,*,#14513,.F.); -#8275=ORIENTED_EDGE('',*,*,#15541,.T.); -#8276=ORIENTED_EDGE('',*,*,#15542,.F.); -#8277=ORIENTED_EDGE('',*,*,#15453,.T.); -#8278=ORIENTED_EDGE('',*,*,#15543,.F.); -#8279=ORIENTED_EDGE('',*,*,#15544,.T.); -#8280=ORIENTED_EDGE('',*,*,#14499,.F.); -#8281=ORIENTED_EDGE('',*,*,#15545,.T.); -#8282=ORIENTED_EDGE('',*,*,#15546,.F.); -#8283=ORIENTED_EDGE('',*,*,#15458,.T.); -#8284=ORIENTED_EDGE('',*,*,#15547,.F.); -#8285=ORIENTED_EDGE('',*,*,#15548,.T.); -#8286=ORIENTED_EDGE('',*,*,#14485,.F.); -#8287=ORIENTED_EDGE('',*,*,#15549,.T.); -#8288=ORIENTED_EDGE('',*,*,#15550,.F.); -#8289=ORIENTED_EDGE('',*,*,#15463,.T.); -#8290=ORIENTED_EDGE('',*,*,#15551,.F.); -#8291=ORIENTED_EDGE('',*,*,#15552,.T.); -#8292=ORIENTED_EDGE('',*,*,#14471,.F.); -#8293=ORIENTED_EDGE('',*,*,#15553,.T.); -#8294=ORIENTED_EDGE('',*,*,#15554,.F.); -#8295=ORIENTED_EDGE('',*,*,#15468,.T.); -#8296=ORIENTED_EDGE('',*,*,#15555,.F.); -#8297=ORIENTED_EDGE('',*,*,#15556,.T.); -#8298=ORIENTED_EDGE('',*,*,#14457,.F.); -#8299=ORIENTED_EDGE('',*,*,#15557,.T.); -#8300=ORIENTED_EDGE('',*,*,#15558,.F.); -#8301=ORIENTED_EDGE('',*,*,#15473,.T.); -#8302=ORIENTED_EDGE('',*,*,#15559,.F.); -#8303=ORIENTED_EDGE('',*,*,#15560,.T.); -#8304=ORIENTED_EDGE('',*,*,#14443,.F.); -#8305=ORIENTED_EDGE('',*,*,#15561,.T.); -#8306=ORIENTED_EDGE('',*,*,#15562,.F.); -#8307=ORIENTED_EDGE('',*,*,#15478,.T.); -#8308=ORIENTED_EDGE('',*,*,#15563,.F.); -#8309=ORIENTED_EDGE('',*,*,#15564,.T.); -#8310=ORIENTED_EDGE('',*,*,#14429,.F.); -#8311=ORIENTED_EDGE('',*,*,#15565,.T.); -#8312=ORIENTED_EDGE('',*,*,#15566,.F.); -#8313=ORIENTED_EDGE('',*,*,#15483,.T.); -#8314=ORIENTED_EDGE('',*,*,#15567,.F.); -#8315=ORIENTED_EDGE('',*,*,#15568,.T.); -#8316=ORIENTED_EDGE('',*,*,#14415,.F.); -#8317=ORIENTED_EDGE('',*,*,#15569,.T.); -#8318=ORIENTED_EDGE('',*,*,#15570,.F.); -#8319=ORIENTED_EDGE('',*,*,#15488,.T.); -#8320=ORIENTED_EDGE('',*,*,#15571,.F.); -#8321=ORIENTED_EDGE('',*,*,#15572,.T.); -#8322=ORIENTED_EDGE('',*,*,#14401,.F.); -#8323=ORIENTED_EDGE('',*,*,#15573,.T.); -#8324=ORIENTED_EDGE('',*,*,#15574,.F.); -#8325=ORIENTED_EDGE('',*,*,#15493,.T.); -#8326=ORIENTED_EDGE('',*,*,#15575,.F.); -#8327=ORIENTED_EDGE('',*,*,#15576,.T.); -#8328=ORIENTED_EDGE('',*,*,#14387,.F.); -#8329=ORIENTED_EDGE('',*,*,#15577,.T.); -#8330=ORIENTED_EDGE('',*,*,#15578,.F.); -#8331=ORIENTED_EDGE('',*,*,#15498,.T.); -#8332=ORIENTED_EDGE('',*,*,#15579,.F.); -#8333=ORIENTED_EDGE('',*,*,#15580,.T.); -#8334=ORIENTED_EDGE('',*,*,#14373,.F.); -#8335=ORIENTED_EDGE('',*,*,#15581,.T.); -#8336=ORIENTED_EDGE('',*,*,#15582,.F.); -#8337=ORIENTED_EDGE('',*,*,#15503,.T.); -#8338=ORIENTED_EDGE('',*,*,#15583,.F.); -#8339=ORIENTED_EDGE('',*,*,#15584,.T.); -#8340=ORIENTED_EDGE('',*,*,#14359,.F.); -#8341=ORIENTED_EDGE('',*,*,#15585,.T.); -#8342=ORIENTED_EDGE('',*,*,#15586,.F.); -#8343=ORIENTED_EDGE('',*,*,#15508,.T.); -#8344=ORIENTED_EDGE('',*,*,#15587,.F.); -#8345=ORIENTED_EDGE('',*,*,#15588,.T.); -#8346=ORIENTED_EDGE('',*,*,#14345,.F.); -#8347=ORIENTED_EDGE('',*,*,#15589,.T.); -#8348=ORIENTED_EDGE('',*,*,#15590,.F.); -#8349=ORIENTED_EDGE('',*,*,#15591,.T.); -#8350=ORIENTED_EDGE('',*,*,#14629,.T.); -#8351=ORIENTED_EDGE('',*,*,#15592,.T.); -#8352=ORIENTED_EDGE('',*,*,#15593,.F.); -#8353=ORIENTED_EDGE('',*,*,#15594,.F.); -#8354=ORIENTED_EDGE('',*,*,#15595,.F.); -#8355=ORIENTED_EDGE('',*,*,#15596,.T.); -#8356=ORIENTED_EDGE('',*,*,#14643,.T.); -#8357=ORIENTED_EDGE('',*,*,#15597,.T.); -#8358=ORIENTED_EDGE('',*,*,#15598,.F.); -#8359=ORIENTED_EDGE('',*,*,#15599,.F.); -#8360=ORIENTED_EDGE('',*,*,#15600,.F.); -#8361=ORIENTED_EDGE('',*,*,#15601,.T.); -#8362=ORIENTED_EDGE('',*,*,#14657,.T.); -#8363=ORIENTED_EDGE('',*,*,#15602,.T.); -#8364=ORIENTED_EDGE('',*,*,#15603,.F.); -#8365=ORIENTED_EDGE('',*,*,#15604,.F.); -#8366=ORIENTED_EDGE('',*,*,#15605,.F.); -#8367=ORIENTED_EDGE('',*,*,#15606,.T.); -#8368=ORIENTED_EDGE('',*,*,#14671,.T.); -#8369=ORIENTED_EDGE('',*,*,#15607,.T.); -#8370=ORIENTED_EDGE('',*,*,#15608,.F.); -#8371=ORIENTED_EDGE('',*,*,#15609,.F.); -#8372=ORIENTED_EDGE('',*,*,#15610,.F.); -#8373=ORIENTED_EDGE('',*,*,#15611,.T.); -#8374=ORIENTED_EDGE('',*,*,#14685,.T.); -#8375=ORIENTED_EDGE('',*,*,#15612,.T.); -#8376=ORIENTED_EDGE('',*,*,#15613,.F.); -#8377=ORIENTED_EDGE('',*,*,#15614,.F.); -#8378=ORIENTED_EDGE('',*,*,#15615,.F.); -#8379=ORIENTED_EDGE('',*,*,#15616,.T.); -#8380=ORIENTED_EDGE('',*,*,#14699,.T.); -#8381=ORIENTED_EDGE('',*,*,#15617,.T.); -#8382=ORIENTED_EDGE('',*,*,#15618,.F.); -#8383=ORIENTED_EDGE('',*,*,#15619,.F.); -#8384=ORIENTED_EDGE('',*,*,#15620,.F.); -#8385=ORIENTED_EDGE('',*,*,#15621,.T.); -#8386=ORIENTED_EDGE('',*,*,#14713,.T.); -#8387=ORIENTED_EDGE('',*,*,#15622,.T.); -#8388=ORIENTED_EDGE('',*,*,#15623,.F.); -#8389=ORIENTED_EDGE('',*,*,#15624,.F.); -#8390=ORIENTED_EDGE('',*,*,#15625,.F.); -#8391=ORIENTED_EDGE('',*,*,#15626,.T.); -#8392=ORIENTED_EDGE('',*,*,#14727,.T.); -#8393=ORIENTED_EDGE('',*,*,#15627,.T.); -#8394=ORIENTED_EDGE('',*,*,#15628,.F.); -#8395=ORIENTED_EDGE('',*,*,#15629,.F.); -#8396=ORIENTED_EDGE('',*,*,#15630,.F.); -#8397=ORIENTED_EDGE('',*,*,#15631,.T.); -#8398=ORIENTED_EDGE('',*,*,#14741,.T.); -#8399=ORIENTED_EDGE('',*,*,#15632,.T.); -#8400=ORIENTED_EDGE('',*,*,#15633,.F.); -#8401=ORIENTED_EDGE('',*,*,#15634,.F.); -#8402=ORIENTED_EDGE('',*,*,#15635,.F.); -#8403=ORIENTED_EDGE('',*,*,#15636,.T.); -#8404=ORIENTED_EDGE('',*,*,#14755,.T.); -#8405=ORIENTED_EDGE('',*,*,#15637,.T.); -#8406=ORIENTED_EDGE('',*,*,#15638,.F.); -#8407=ORIENTED_EDGE('',*,*,#15639,.F.); -#8408=ORIENTED_EDGE('',*,*,#15640,.F.); -#8409=ORIENTED_EDGE('',*,*,#15641,.T.); -#8410=ORIENTED_EDGE('',*,*,#14769,.T.); -#8411=ORIENTED_EDGE('',*,*,#15642,.T.); -#8412=ORIENTED_EDGE('',*,*,#15643,.F.); -#8413=ORIENTED_EDGE('',*,*,#15644,.F.); -#8414=ORIENTED_EDGE('',*,*,#15645,.F.); -#8415=ORIENTED_EDGE('',*,*,#15646,.T.); -#8416=ORIENTED_EDGE('',*,*,#14783,.T.); -#8417=ORIENTED_EDGE('',*,*,#15647,.T.); -#8418=ORIENTED_EDGE('',*,*,#15648,.F.); -#8419=ORIENTED_EDGE('',*,*,#15649,.F.); -#8420=ORIENTED_EDGE('',*,*,#15650,.F.); -#8421=ORIENTED_EDGE('',*,*,#15651,.T.); -#8422=ORIENTED_EDGE('',*,*,#14797,.T.); -#8423=ORIENTED_EDGE('',*,*,#15652,.T.); -#8424=ORIENTED_EDGE('',*,*,#15653,.F.); -#8425=ORIENTED_EDGE('',*,*,#15654,.F.); -#8426=ORIENTED_EDGE('',*,*,#15655,.F.); -#8427=ORIENTED_EDGE('',*,*,#15656,.T.); -#8428=ORIENTED_EDGE('',*,*,#14811,.T.); -#8429=ORIENTED_EDGE('',*,*,#15657,.T.); -#8430=ORIENTED_EDGE('',*,*,#15658,.F.); -#8431=ORIENTED_EDGE('',*,*,#15659,.F.); -#8432=ORIENTED_EDGE('',*,*,#15660,.F.); -#8433=ORIENTED_EDGE('',*,*,#15661,.T.); -#8434=ORIENTED_EDGE('',*,*,#14825,.T.); -#8435=ORIENTED_EDGE('',*,*,#15662,.T.); -#8436=ORIENTED_EDGE('',*,*,#15663,.F.); -#8437=ORIENTED_EDGE('',*,*,#15664,.F.); -#8438=ORIENTED_EDGE('',*,*,#15665,.F.); -#8439=ORIENTED_EDGE('',*,*,#15666,.T.); -#8440=ORIENTED_EDGE('',*,*,#14839,.T.); -#8441=ORIENTED_EDGE('',*,*,#15667,.T.); -#8442=ORIENTED_EDGE('',*,*,#15668,.F.); -#8443=ORIENTED_EDGE('',*,*,#15669,.F.); -#8444=ORIENTED_EDGE('',*,*,#15670,.F.); -#8445=ORIENTED_EDGE('',*,*,#15671,.T.); -#8446=ORIENTED_EDGE('',*,*,#14853,.T.); -#8447=ORIENTED_EDGE('',*,*,#15672,.T.); -#8448=ORIENTED_EDGE('',*,*,#15673,.F.); -#8449=ORIENTED_EDGE('',*,*,#15674,.F.); -#8450=ORIENTED_EDGE('',*,*,#15675,.F.); -#8451=ORIENTED_EDGE('',*,*,#15676,.T.); -#8452=ORIENTED_EDGE('',*,*,#14867,.T.); -#8453=ORIENTED_EDGE('',*,*,#15677,.T.); -#8454=ORIENTED_EDGE('',*,*,#15678,.F.); -#8455=ORIENTED_EDGE('',*,*,#15679,.F.); -#8456=ORIENTED_EDGE('',*,*,#15680,.F.); -#8457=ORIENTED_EDGE('',*,*,#15681,.T.); -#8458=ORIENTED_EDGE('',*,*,#14881,.T.); -#8459=ORIENTED_EDGE('',*,*,#15682,.T.); -#8460=ORIENTED_EDGE('',*,*,#15683,.F.); -#8461=ORIENTED_EDGE('',*,*,#15684,.F.); -#8462=ORIENTED_EDGE('',*,*,#15685,.F.); -#8463=ORIENTED_EDGE('',*,*,#15686,.T.); -#8464=ORIENTED_EDGE('',*,*,#14895,.T.); -#8465=ORIENTED_EDGE('',*,*,#15687,.T.); -#8466=ORIENTED_EDGE('',*,*,#15688,.F.); -#8467=ORIENTED_EDGE('',*,*,#15689,.F.); -#8468=ORIENTED_EDGE('',*,*,#15690,.F.); -#8469=ORIENTED_EDGE('',*,*,#15691,.T.); -#8470=ORIENTED_EDGE('',*,*,#15594,.T.); -#8471=ORIENTED_EDGE('',*,*,#15692,.T.); -#8472=ORIENTED_EDGE('',*,*,#15693,.T.); -#8473=ORIENTED_EDGE('',*,*,#15694,.F.); -#8474=ORIENTED_EDGE('',*,*,#15695,.T.); -#8475=ORIENTED_EDGE('',*,*,#15696,.T.); -#8476=ORIENTED_EDGE('',*,*,#15599,.T.); -#8477=ORIENTED_EDGE('',*,*,#15697,.T.); -#8478=ORIENTED_EDGE('',*,*,#15698,.T.); -#8479=ORIENTED_EDGE('',*,*,#15699,.F.); -#8480=ORIENTED_EDGE('',*,*,#15700,.T.); -#8481=ORIENTED_EDGE('',*,*,#15701,.T.); -#8482=ORIENTED_EDGE('',*,*,#15604,.T.); -#8483=ORIENTED_EDGE('',*,*,#15702,.T.); -#8484=ORIENTED_EDGE('',*,*,#15703,.T.); -#8485=ORIENTED_EDGE('',*,*,#15704,.F.); -#8486=ORIENTED_EDGE('',*,*,#15705,.T.); -#8487=ORIENTED_EDGE('',*,*,#15706,.T.); -#8488=ORIENTED_EDGE('',*,*,#15609,.T.); -#8489=ORIENTED_EDGE('',*,*,#15707,.T.); -#8490=ORIENTED_EDGE('',*,*,#15708,.T.); -#8491=ORIENTED_EDGE('',*,*,#15709,.F.); -#8492=ORIENTED_EDGE('',*,*,#15710,.T.); -#8493=ORIENTED_EDGE('',*,*,#15711,.T.); -#8494=ORIENTED_EDGE('',*,*,#15614,.T.); -#8495=ORIENTED_EDGE('',*,*,#15712,.T.); -#8496=ORIENTED_EDGE('',*,*,#15713,.T.); -#8497=ORIENTED_EDGE('',*,*,#15714,.F.); -#8498=ORIENTED_EDGE('',*,*,#15715,.T.); -#8499=ORIENTED_EDGE('',*,*,#15716,.T.); -#8500=ORIENTED_EDGE('',*,*,#15619,.T.); -#8501=ORIENTED_EDGE('',*,*,#15717,.T.); -#8502=ORIENTED_EDGE('',*,*,#15718,.T.); -#8503=ORIENTED_EDGE('',*,*,#15719,.F.); -#8504=ORIENTED_EDGE('',*,*,#15720,.T.); -#8505=ORIENTED_EDGE('',*,*,#15721,.T.); -#8506=ORIENTED_EDGE('',*,*,#15624,.T.); -#8507=ORIENTED_EDGE('',*,*,#15722,.T.); -#8508=ORIENTED_EDGE('',*,*,#15723,.T.); -#8509=ORIENTED_EDGE('',*,*,#15724,.F.); -#8510=ORIENTED_EDGE('',*,*,#15725,.T.); -#8511=ORIENTED_EDGE('',*,*,#15726,.T.); -#8512=ORIENTED_EDGE('',*,*,#15629,.T.); -#8513=ORIENTED_EDGE('',*,*,#15727,.T.); -#8514=ORIENTED_EDGE('',*,*,#15728,.T.); -#8515=ORIENTED_EDGE('',*,*,#15729,.F.); -#8516=ORIENTED_EDGE('',*,*,#15730,.T.); -#8517=ORIENTED_EDGE('',*,*,#15731,.T.); -#8518=ORIENTED_EDGE('',*,*,#15634,.T.); -#8519=ORIENTED_EDGE('',*,*,#15732,.T.); -#8520=ORIENTED_EDGE('',*,*,#15733,.T.); -#8521=ORIENTED_EDGE('',*,*,#15734,.F.); -#8522=ORIENTED_EDGE('',*,*,#15735,.T.); -#8523=ORIENTED_EDGE('',*,*,#15736,.T.); -#8524=ORIENTED_EDGE('',*,*,#15639,.T.); -#8525=ORIENTED_EDGE('',*,*,#15737,.T.); -#8526=ORIENTED_EDGE('',*,*,#15738,.T.); -#8527=ORIENTED_EDGE('',*,*,#15739,.F.); -#8528=ORIENTED_EDGE('',*,*,#15740,.T.); -#8529=ORIENTED_EDGE('',*,*,#15741,.T.); -#8530=ORIENTED_EDGE('',*,*,#15644,.T.); -#8531=ORIENTED_EDGE('',*,*,#15742,.T.); -#8532=ORIENTED_EDGE('',*,*,#15743,.T.); -#8533=ORIENTED_EDGE('',*,*,#15744,.F.); -#8534=ORIENTED_EDGE('',*,*,#15745,.T.); -#8535=ORIENTED_EDGE('',*,*,#15746,.T.); -#8536=ORIENTED_EDGE('',*,*,#15649,.T.); -#8537=ORIENTED_EDGE('',*,*,#15747,.T.); -#8538=ORIENTED_EDGE('',*,*,#15748,.T.); -#8539=ORIENTED_EDGE('',*,*,#15749,.F.); -#8540=ORIENTED_EDGE('',*,*,#15750,.T.); -#8541=ORIENTED_EDGE('',*,*,#15751,.T.); -#8542=ORIENTED_EDGE('',*,*,#15654,.T.); -#8543=ORIENTED_EDGE('',*,*,#15752,.T.); -#8544=ORIENTED_EDGE('',*,*,#15753,.T.); -#8545=ORIENTED_EDGE('',*,*,#15754,.F.); -#8546=ORIENTED_EDGE('',*,*,#15755,.T.); -#8547=ORIENTED_EDGE('',*,*,#15756,.T.); -#8548=ORIENTED_EDGE('',*,*,#15659,.T.); -#8549=ORIENTED_EDGE('',*,*,#15757,.T.); -#8550=ORIENTED_EDGE('',*,*,#15758,.T.); -#8551=ORIENTED_EDGE('',*,*,#15759,.F.); -#8552=ORIENTED_EDGE('',*,*,#15760,.T.); -#8553=ORIENTED_EDGE('',*,*,#15761,.T.); -#8554=ORIENTED_EDGE('',*,*,#15664,.T.); -#8555=ORIENTED_EDGE('',*,*,#15762,.T.); -#8556=ORIENTED_EDGE('',*,*,#15763,.T.); -#8557=ORIENTED_EDGE('',*,*,#15764,.F.); -#8558=ORIENTED_EDGE('',*,*,#15765,.T.); -#8559=ORIENTED_EDGE('',*,*,#15766,.T.); -#8560=ORIENTED_EDGE('',*,*,#15669,.T.); -#8561=ORIENTED_EDGE('',*,*,#15767,.T.); -#8562=ORIENTED_EDGE('',*,*,#15768,.T.); -#8563=ORIENTED_EDGE('',*,*,#15769,.F.); -#8564=ORIENTED_EDGE('',*,*,#15770,.T.); -#8565=ORIENTED_EDGE('',*,*,#15771,.T.); -#8566=ORIENTED_EDGE('',*,*,#15674,.T.); -#8567=ORIENTED_EDGE('',*,*,#15772,.T.); -#8568=ORIENTED_EDGE('',*,*,#15773,.T.); -#8569=ORIENTED_EDGE('',*,*,#15774,.F.); -#8570=ORIENTED_EDGE('',*,*,#15775,.T.); -#8571=ORIENTED_EDGE('',*,*,#15776,.T.); -#8572=ORIENTED_EDGE('',*,*,#15679,.T.); -#8573=ORIENTED_EDGE('',*,*,#15777,.T.); -#8574=ORIENTED_EDGE('',*,*,#15778,.T.); -#8575=ORIENTED_EDGE('',*,*,#15779,.F.); -#8576=ORIENTED_EDGE('',*,*,#15780,.T.); -#8577=ORIENTED_EDGE('',*,*,#15781,.T.); -#8578=ORIENTED_EDGE('',*,*,#15684,.T.); -#8579=ORIENTED_EDGE('',*,*,#15782,.T.); -#8580=ORIENTED_EDGE('',*,*,#15783,.T.); -#8581=ORIENTED_EDGE('',*,*,#15784,.F.); -#8582=ORIENTED_EDGE('',*,*,#15785,.T.); -#8583=ORIENTED_EDGE('',*,*,#15786,.T.); -#8584=ORIENTED_EDGE('',*,*,#15787,.F.); -#8585=ORIENTED_EDGE('',*,*,#15179,.F.); -#8586=ORIENTED_EDGE('',*,*,#15788,.F.); -#8587=ORIENTED_EDGE('',*,*,#15789,.T.); -#8588=ORIENTED_EDGE('',*,*,#15790,.T.); -#8589=ORIENTED_EDGE('',*,*,#15694,.T.); -#8590=ORIENTED_EDGE('',*,*,#15791,.T.); -#8591=ORIENTED_EDGE('',*,*,#15792,.T.); -#8592=ORIENTED_EDGE('',*,*,#15793,.F.); -#8593=ORIENTED_EDGE('',*,*,#15165,.F.); -#8594=ORIENTED_EDGE('',*,*,#15794,.F.); -#8595=ORIENTED_EDGE('',*,*,#15795,.T.); -#8596=ORIENTED_EDGE('',*,*,#15796,.T.); -#8597=ORIENTED_EDGE('',*,*,#15699,.T.); -#8598=ORIENTED_EDGE('',*,*,#15797,.T.); -#8599=ORIENTED_EDGE('',*,*,#15798,.T.); -#8600=ORIENTED_EDGE('',*,*,#15799,.F.); -#8601=ORIENTED_EDGE('',*,*,#15151,.F.); -#8602=ORIENTED_EDGE('',*,*,#15800,.F.); -#8603=ORIENTED_EDGE('',*,*,#15801,.T.); -#8604=ORIENTED_EDGE('',*,*,#15802,.T.); -#8605=ORIENTED_EDGE('',*,*,#15704,.T.); -#8606=ORIENTED_EDGE('',*,*,#15803,.T.); -#8607=ORIENTED_EDGE('',*,*,#15804,.T.); -#8608=ORIENTED_EDGE('',*,*,#15805,.F.); -#8609=ORIENTED_EDGE('',*,*,#15137,.F.); -#8610=ORIENTED_EDGE('',*,*,#15806,.F.); -#8611=ORIENTED_EDGE('',*,*,#15807,.T.); -#8612=ORIENTED_EDGE('',*,*,#15808,.T.); -#8613=ORIENTED_EDGE('',*,*,#15709,.T.); -#8614=ORIENTED_EDGE('',*,*,#15809,.T.); -#8615=ORIENTED_EDGE('',*,*,#15810,.T.); -#8616=ORIENTED_EDGE('',*,*,#15811,.F.); -#8617=ORIENTED_EDGE('',*,*,#15123,.F.); -#8618=ORIENTED_EDGE('',*,*,#15812,.F.); -#8619=ORIENTED_EDGE('',*,*,#15813,.T.); -#8620=ORIENTED_EDGE('',*,*,#15814,.T.); -#8621=ORIENTED_EDGE('',*,*,#15714,.T.); -#8622=ORIENTED_EDGE('',*,*,#15815,.T.); -#8623=ORIENTED_EDGE('',*,*,#15816,.T.); -#8624=ORIENTED_EDGE('',*,*,#15817,.F.); -#8625=ORIENTED_EDGE('',*,*,#15109,.F.); -#8626=ORIENTED_EDGE('',*,*,#15818,.F.); -#8627=ORIENTED_EDGE('',*,*,#15819,.T.); -#8628=ORIENTED_EDGE('',*,*,#15820,.T.); -#8629=ORIENTED_EDGE('',*,*,#15719,.T.); -#8630=ORIENTED_EDGE('',*,*,#15821,.T.); -#8631=ORIENTED_EDGE('',*,*,#15822,.T.); -#8632=ORIENTED_EDGE('',*,*,#15823,.F.); -#8633=ORIENTED_EDGE('',*,*,#15095,.F.); -#8634=ORIENTED_EDGE('',*,*,#15824,.F.); -#8635=ORIENTED_EDGE('',*,*,#15825,.T.); -#8636=ORIENTED_EDGE('',*,*,#15826,.T.); -#8637=ORIENTED_EDGE('',*,*,#15724,.T.); -#8638=ORIENTED_EDGE('',*,*,#15827,.T.); -#8639=ORIENTED_EDGE('',*,*,#15828,.T.); -#8640=ORIENTED_EDGE('',*,*,#15829,.F.); -#8641=ORIENTED_EDGE('',*,*,#15081,.F.); -#8642=ORIENTED_EDGE('',*,*,#15830,.F.); -#8643=ORIENTED_EDGE('',*,*,#15831,.T.); -#8644=ORIENTED_EDGE('',*,*,#15832,.T.); -#8645=ORIENTED_EDGE('',*,*,#15729,.T.); -#8646=ORIENTED_EDGE('',*,*,#15833,.T.); -#8647=ORIENTED_EDGE('',*,*,#15834,.T.); -#8648=ORIENTED_EDGE('',*,*,#15835,.F.); -#8649=ORIENTED_EDGE('',*,*,#15067,.F.); -#8650=ORIENTED_EDGE('',*,*,#15836,.F.); -#8651=ORIENTED_EDGE('',*,*,#15837,.T.); -#8652=ORIENTED_EDGE('',*,*,#15838,.T.); -#8653=ORIENTED_EDGE('',*,*,#15734,.T.); -#8654=ORIENTED_EDGE('',*,*,#15839,.T.); -#8655=ORIENTED_EDGE('',*,*,#15840,.T.); -#8656=ORIENTED_EDGE('',*,*,#15841,.F.); -#8657=ORIENTED_EDGE('',*,*,#15053,.F.); -#8658=ORIENTED_EDGE('',*,*,#15842,.F.); -#8659=ORIENTED_EDGE('',*,*,#15843,.T.); -#8660=ORIENTED_EDGE('',*,*,#15844,.T.); -#8661=ORIENTED_EDGE('',*,*,#15739,.T.); -#8662=ORIENTED_EDGE('',*,*,#15845,.T.); -#8663=ORIENTED_EDGE('',*,*,#15846,.T.); -#8664=ORIENTED_EDGE('',*,*,#15847,.F.); -#8665=ORIENTED_EDGE('',*,*,#15039,.F.); -#8666=ORIENTED_EDGE('',*,*,#15848,.F.); -#8667=ORIENTED_EDGE('',*,*,#15849,.T.); -#8668=ORIENTED_EDGE('',*,*,#15850,.T.); -#8669=ORIENTED_EDGE('',*,*,#15744,.T.); -#8670=ORIENTED_EDGE('',*,*,#15851,.T.); -#8671=ORIENTED_EDGE('',*,*,#15852,.T.); -#8672=ORIENTED_EDGE('',*,*,#15853,.F.); -#8673=ORIENTED_EDGE('',*,*,#15025,.F.); -#8674=ORIENTED_EDGE('',*,*,#15854,.F.); -#8675=ORIENTED_EDGE('',*,*,#15855,.T.); -#8676=ORIENTED_EDGE('',*,*,#15856,.T.); -#8677=ORIENTED_EDGE('',*,*,#15749,.T.); -#8678=ORIENTED_EDGE('',*,*,#15857,.T.); -#8679=ORIENTED_EDGE('',*,*,#15858,.T.); -#8680=ORIENTED_EDGE('',*,*,#15859,.F.); -#8681=ORIENTED_EDGE('',*,*,#15011,.F.); -#8682=ORIENTED_EDGE('',*,*,#15860,.F.); -#8683=ORIENTED_EDGE('',*,*,#15861,.T.); -#8684=ORIENTED_EDGE('',*,*,#15862,.T.); -#8685=ORIENTED_EDGE('',*,*,#15754,.T.); -#8686=ORIENTED_EDGE('',*,*,#15863,.T.); -#8687=ORIENTED_EDGE('',*,*,#15864,.T.); -#8688=ORIENTED_EDGE('',*,*,#15865,.F.); -#8689=ORIENTED_EDGE('',*,*,#14997,.F.); -#8690=ORIENTED_EDGE('',*,*,#15866,.F.); -#8691=ORIENTED_EDGE('',*,*,#15867,.T.); -#8692=ORIENTED_EDGE('',*,*,#15868,.T.); -#8693=ORIENTED_EDGE('',*,*,#15759,.T.); -#8694=ORIENTED_EDGE('',*,*,#15869,.T.); -#8695=ORIENTED_EDGE('',*,*,#15870,.T.); -#8696=ORIENTED_EDGE('',*,*,#15871,.F.); -#8697=ORIENTED_EDGE('',*,*,#14983,.F.); -#8698=ORIENTED_EDGE('',*,*,#15872,.F.); -#8699=ORIENTED_EDGE('',*,*,#15873,.T.); -#8700=ORIENTED_EDGE('',*,*,#15874,.T.); -#8701=ORIENTED_EDGE('',*,*,#15764,.T.); -#8702=ORIENTED_EDGE('',*,*,#15875,.T.); -#8703=ORIENTED_EDGE('',*,*,#15876,.T.); -#8704=ORIENTED_EDGE('',*,*,#15877,.F.); -#8705=ORIENTED_EDGE('',*,*,#14969,.F.); -#8706=ORIENTED_EDGE('',*,*,#15878,.F.); -#8707=ORIENTED_EDGE('',*,*,#15879,.T.); -#8708=ORIENTED_EDGE('',*,*,#15880,.T.); -#8709=ORIENTED_EDGE('',*,*,#15769,.T.); -#8710=ORIENTED_EDGE('',*,*,#15881,.T.); -#8711=ORIENTED_EDGE('',*,*,#15882,.T.); -#8712=ORIENTED_EDGE('',*,*,#15883,.F.); -#8713=ORIENTED_EDGE('',*,*,#14955,.F.); -#8714=ORIENTED_EDGE('',*,*,#15884,.F.); -#8715=ORIENTED_EDGE('',*,*,#15885,.T.); -#8716=ORIENTED_EDGE('',*,*,#15886,.T.); -#8717=ORIENTED_EDGE('',*,*,#15774,.T.); -#8718=ORIENTED_EDGE('',*,*,#15887,.T.); -#8719=ORIENTED_EDGE('',*,*,#15888,.T.); -#8720=ORIENTED_EDGE('',*,*,#15889,.F.); -#8721=ORIENTED_EDGE('',*,*,#14941,.F.); -#8722=ORIENTED_EDGE('',*,*,#15890,.F.); -#8723=ORIENTED_EDGE('',*,*,#15891,.T.); -#8724=ORIENTED_EDGE('',*,*,#15892,.T.); -#8725=ORIENTED_EDGE('',*,*,#15779,.T.); -#8726=ORIENTED_EDGE('',*,*,#15893,.T.); -#8727=ORIENTED_EDGE('',*,*,#15894,.T.); -#8728=ORIENTED_EDGE('',*,*,#15895,.F.); -#8729=ORIENTED_EDGE('',*,*,#14927,.F.); -#8730=ORIENTED_EDGE('',*,*,#15896,.F.); -#8731=ORIENTED_EDGE('',*,*,#15897,.T.); -#8732=ORIENTED_EDGE('',*,*,#15898,.T.); -#8733=ORIENTED_EDGE('',*,*,#15784,.T.); -#8734=ORIENTED_EDGE('',*,*,#15899,.T.); -#8735=ORIENTED_EDGE('',*,*,#15900,.T.); -#8736=ORIENTED_EDGE('',*,*,#15901,.F.); -#8737=ORIENTED_EDGE('',*,*,#14913,.F.); -#8738=ORIENTED_EDGE('',*,*,#15902,.F.); -#8739=ORIENTED_EDGE('',*,*,#15903,.T.); -#8740=ORIENTED_EDGE('',*,*,#15904,.T.); -#8741=ORIENTED_EDGE('',*,*,#15905,.T.); -#8742=ORIENTED_EDGE('',*,*,#15906,.T.); -#8743=ORIENTED_EDGE('',*,*,#15907,.T.); -#8744=ORIENTED_EDGE('',*,*,#15908,.F.); -#8745=ORIENTED_EDGE('',*,*,#14901,.T.); -#8746=ORIENTED_EDGE('',*,*,#15909,.T.); -#8747=ORIENTED_EDGE('',*,*,#14907,.T.); -#8748=ORIENTED_EDGE('',*,*,#14623,.F.); -#8749=ORIENTED_EDGE('',*,*,#15910,.T.); -#8750=ORIENTED_EDGE('',*,*,#15185,.F.); -#8751=ORIENTED_EDGE('',*,*,#15911,.F.); -#8752=ORIENTED_EDGE('',*,*,#15912,.T.); -#8753=ORIENTED_EDGE('',*,*,#15913,.T.); -#8754=ORIENTED_EDGE('',*,*,#15591,.F.); -#8755=ORIENTED_EDGE('',*,*,#15914,.T.); -#8756=ORIENTED_EDGE('',*,*,#15915,.T.); -#8757=ORIENTED_EDGE('',*,*,#15412,.T.); -#8758=ORIENTED_EDGE('',*,*,#15689,.T.); -#8759=ORIENTED_EDGE('',*,*,#15916,.T.); -#8760=ORIENTED_EDGE('',*,*,#15917,.T.); -#8761=ORIENTED_EDGE('',*,*,#15905,.F.); -#8762=ORIENTED_EDGE('',*,*,#15918,.T.); -#8763=ORIENTED_EDGE('',*,*,#15919,.T.); -#8764=ORIENTED_EDGE('',*,*,#15920,.F.); -#8765=ORIENTED_EDGE('',*,*,#15791,.F.); -#8766=ORIENTED_EDGE('',*,*,#15693,.F.); -#8767=ORIENTED_EDGE('',*,*,#15593,.T.); -#8768=ORIENTED_EDGE('',*,*,#15921,.F.); -#8769=ORIENTED_EDGE('',*,*,#15792,.F.); -#8770=ORIENTED_EDGE('',*,*,#15920,.T.); -#8771=ORIENTED_EDGE('',*,*,#15692,.F.); -#8772=ORIENTED_EDGE('',*,*,#15922,.F.); -#8773=ORIENTED_EDGE('',*,*,#15180,.F.); -#8774=ORIENTED_EDGE('',*,*,#15923,.T.); -#8775=ORIENTED_EDGE('',*,*,#14628,.F.); -#8776=ORIENTED_EDGE('',*,*,#15924,.F.); -#8777=ORIENTED_EDGE('',*,*,#15181,.F.); -#8778=ORIENTED_EDGE('',*,*,#15922,.T.); -#8779=ORIENTED_EDGE('',*,*,#14627,.F.); -#8780=ORIENTED_EDGE('',*,*,#14626,.T.); -#8781=ORIENTED_EDGE('',*,*,#15925,.F.); -#8782=ORIENTED_EDGE('',*,*,#15182,.T.); -#8783=ORIENTED_EDGE('',*,*,#15924,.T.); -#8784=ORIENTED_EDGE('',*,*,#15911,.T.); -#8785=ORIENTED_EDGE('',*,*,#15184,.F.); -#8786=ORIENTED_EDGE('',*,*,#15926,.T.); -#8787=ORIENTED_EDGE('',*,*,#14624,.F.); -#8788=ORIENTED_EDGE('',*,*,#15926,.F.); -#8789=ORIENTED_EDGE('',*,*,#15183,.F.); -#8790=ORIENTED_EDGE('',*,*,#15925,.T.); -#8791=ORIENTED_EDGE('',*,*,#14625,.F.); -#8792=ORIENTED_EDGE('',*,*,#15923,.F.); -#8793=ORIENTED_EDGE('',*,*,#15787,.T.); -#8794=ORIENTED_EDGE('',*,*,#15921,.T.); -#8795=ORIENTED_EDGE('',*,*,#15592,.F.); -#8796=ORIENTED_EDGE('',*,*,#15927,.F.); -#8797=ORIENTED_EDGE('',*,*,#14612,.F.); -#8798=ORIENTED_EDGE('',*,*,#15928,.T.); -#8799=ORIENTED_EDGE('',*,*,#14060,.F.); -#8800=ORIENTED_EDGE('',*,*,#15929,.F.); -#8801=ORIENTED_EDGE('',*,*,#14613,.F.); -#8802=ORIENTED_EDGE('',*,*,#15927,.T.); -#8803=ORIENTED_EDGE('',*,*,#14059,.F.); -#8804=ORIENTED_EDGE('',*,*,#14058,.T.); -#8805=ORIENTED_EDGE('',*,*,#15930,.F.); -#8806=ORIENTED_EDGE('',*,*,#14614,.T.); -#8807=ORIENTED_EDGE('',*,*,#15929,.T.); -#8808=ORIENTED_EDGE('',*,*,#15275,.T.); -#8809=ORIENTED_EDGE('',*,*,#14616,.F.); -#8810=ORIENTED_EDGE('',*,*,#15931,.T.); -#8811=ORIENTED_EDGE('',*,*,#14056,.F.); -#8812=ORIENTED_EDGE('',*,*,#15931,.F.); -#8813=ORIENTED_EDGE('',*,*,#14615,.F.); -#8814=ORIENTED_EDGE('',*,*,#15930,.T.); -#8815=ORIENTED_EDGE('',*,*,#14057,.F.); -#8816=ORIENTED_EDGE('',*,*,#15932,.F.); -#8817=ORIENTED_EDGE('',*,*,#15511,.T.); -#8818=ORIENTED_EDGE('',*,*,#15417,.F.); -#8819=ORIENTED_EDGE('',*,*,#15933,.T.); -#8820=ORIENTED_EDGE('',*,*,#15277,.F.); -#8821=ORIENTED_EDGE('',*,*,#15276,.T.); -#8822=ORIENTED_EDGE('',*,*,#15928,.F.); -#8823=ORIENTED_EDGE('',*,*,#15512,.F.); -#8824=ORIENTED_EDGE('',*,*,#15932,.T.); -#8825=ORIENTED_EDGE('',*,*,#15933,.F.); -#8826=ORIENTED_EDGE('',*,*,#15416,.F.); -#8827=ORIENTED_EDGE('',*,*,#15278,.F.); -#8828=ORIENTED_EDGE('',*,*,#15934,.F.); -#8829=ORIENTED_EDGE('',*,*,#14908,.F.); -#8830=ORIENTED_EDGE('',*,*,#15909,.F.); -#8831=ORIENTED_EDGE('',*,*,#14900,.F.); -#8832=ORIENTED_EDGE('',*,*,#15935,.F.); -#8833=ORIENTED_EDGE('',*,*,#14909,.F.); -#8834=ORIENTED_EDGE('',*,*,#15934,.T.); -#8835=ORIENTED_EDGE('',*,*,#14899,.F.); -#8836=ORIENTED_EDGE('',*,*,#14898,.T.); -#8837=ORIENTED_EDGE('',*,*,#15936,.F.); -#8838=ORIENTED_EDGE('',*,*,#14910,.T.); -#8839=ORIENTED_EDGE('',*,*,#15935,.T.); -#8840=ORIENTED_EDGE('',*,*,#15937,.F.); -#8841=ORIENTED_EDGE('',*,*,#14911,.F.); -#8842=ORIENTED_EDGE('',*,*,#15936,.T.); -#8843=ORIENTED_EDGE('',*,*,#14897,.F.); -#8844=ORIENTED_EDGE('',*,*,#15938,.F.); -#8845=ORIENTED_EDGE('',*,*,#14912,.F.); -#8846=ORIENTED_EDGE('',*,*,#15937,.T.); -#8847=ORIENTED_EDGE('',*,*,#14896,.F.); -#8848=ORIENTED_EDGE('',*,*,#15939,.F.); -#8849=ORIENTED_EDGE('',*,*,#15902,.T.); -#8850=ORIENTED_EDGE('',*,*,#15938,.T.); -#8851=ORIENTED_EDGE('',*,*,#15691,.F.); -#8852=ORIENTED_EDGE('',*,*,#15690,.T.); -#8853=ORIENTED_EDGE('',*,*,#15919,.F.); -#8854=ORIENTED_EDGE('',*,*,#15940,.F.); -#8855=ORIENTED_EDGE('',*,*,#15903,.F.); -#8856=ORIENTED_EDGE('',*,*,#15939,.T.); -#8857=ORIENTED_EDGE('',*,*,#15904,.F.); -#8858=ORIENTED_EDGE('',*,*,#15940,.T.); -#8859=ORIENTED_EDGE('',*,*,#15918,.F.); -#8860=ORIENTED_EDGE('',*,*,#15941,.F.); -#8861=ORIENTED_EDGE('',*,*,#14340,.F.); -#8862=ORIENTED_EDGE('',*,*,#15273,.F.); -#8863=ORIENTED_EDGE('',*,*,#14332,.F.); -#8864=ORIENTED_EDGE('',*,*,#15942,.F.); -#8865=ORIENTED_EDGE('',*,*,#14341,.F.); -#8866=ORIENTED_EDGE('',*,*,#15941,.T.); -#8867=ORIENTED_EDGE('',*,*,#14331,.F.); -#8868=ORIENTED_EDGE('',*,*,#14330,.T.); -#8869=ORIENTED_EDGE('',*,*,#15943,.F.); -#8870=ORIENTED_EDGE('',*,*,#14342,.T.); -#8871=ORIENTED_EDGE('',*,*,#15942,.T.); -#8872=ORIENTED_EDGE('',*,*,#15944,.F.); -#8873=ORIENTED_EDGE('',*,*,#14343,.F.); -#8874=ORIENTED_EDGE('',*,*,#15943,.T.); -#8875=ORIENTED_EDGE('',*,*,#14329,.F.); -#8876=ORIENTED_EDGE('',*,*,#15945,.F.); -#8877=ORIENTED_EDGE('',*,*,#14344,.F.); -#8878=ORIENTED_EDGE('',*,*,#15944,.T.); -#8879=ORIENTED_EDGE('',*,*,#14328,.F.); -#8880=ORIENTED_EDGE('',*,*,#15415,.T.); -#8881=ORIENTED_EDGE('',*,*,#15946,.F.); -#8882=ORIENTED_EDGE('',*,*,#15589,.F.); -#8883=ORIENTED_EDGE('',*,*,#15945,.T.); -#8884=ORIENTED_EDGE('',*,*,#15947,.F.); -#8885=ORIENTED_EDGE('',*,*,#15914,.F.); -#8886=ORIENTED_EDGE('',*,*,#15590,.T.); -#8887=ORIENTED_EDGE('',*,*,#15946,.T.); -#8888=ORIENTED_EDGE('',*,*,#15414,.F.); -#8889=ORIENTED_EDGE('',*,*,#15915,.F.); -#8890=ORIENTED_EDGE('',*,*,#15947,.T.); -#8891=ORIENTED_EDGE('',*,*,#15413,.F.); -#8892=ORIENTED_EDGE('',*,*,#15948,.F.); -#8893=ORIENTED_EDGE('',*,*,#15906,.F.); -#8894=ORIENTED_EDGE('',*,*,#15917,.F.); -#8895=ORIENTED_EDGE('',*,*,#15688,.T.); -#8896=ORIENTED_EDGE('',*,*,#15949,.F.); -#8897=ORIENTED_EDGE('',*,*,#15907,.F.); -#8898=ORIENTED_EDGE('',*,*,#15948,.T.); -#8899=ORIENTED_EDGE('',*,*,#15916,.F.); -#8900=ORIENTED_EDGE('',*,*,#15950,.F.); -#8901=ORIENTED_EDGE('',*,*,#14914,.F.); -#8902=ORIENTED_EDGE('',*,*,#15951,.T.); -#8903=ORIENTED_EDGE('',*,*,#14894,.F.); -#8904=ORIENTED_EDGE('',*,*,#15952,.F.); -#8905=ORIENTED_EDGE('',*,*,#14915,.F.); -#8906=ORIENTED_EDGE('',*,*,#15950,.T.); -#8907=ORIENTED_EDGE('',*,*,#14893,.F.); -#8908=ORIENTED_EDGE('',*,*,#14892,.T.); -#8909=ORIENTED_EDGE('',*,*,#15953,.F.); -#8910=ORIENTED_EDGE('',*,*,#14916,.T.); -#8911=ORIENTED_EDGE('',*,*,#15952,.T.); -#8912=ORIENTED_EDGE('',*,*,#15954,.F.); -#8913=ORIENTED_EDGE('',*,*,#14917,.F.); -#8914=ORIENTED_EDGE('',*,*,#15953,.T.); -#8915=ORIENTED_EDGE('',*,*,#14891,.F.); -#8916=ORIENTED_EDGE('',*,*,#15955,.F.); -#8917=ORIENTED_EDGE('',*,*,#14918,.F.); -#8918=ORIENTED_EDGE('',*,*,#15954,.T.); -#8919=ORIENTED_EDGE('',*,*,#14890,.F.); -#8920=ORIENTED_EDGE('',*,*,#15233,.F.); -#8921=ORIENTED_EDGE('',*,*,#14919,.F.); -#8922=ORIENTED_EDGE('',*,*,#15955,.T.); -#8923=ORIENTED_EDGE('',*,*,#14889,.F.); -#8924=ORIENTED_EDGE('',*,*,#15956,.F.); -#8925=ORIENTED_EDGE('',*,*,#14921,.F.); -#8926=ORIENTED_EDGE('',*,*,#15232,.T.); -#8927=ORIENTED_EDGE('',*,*,#14887,.F.); -#8928=ORIENTED_EDGE('',*,*,#15957,.F.); -#8929=ORIENTED_EDGE('',*,*,#14922,.F.); -#8930=ORIENTED_EDGE('',*,*,#15956,.T.); -#8931=ORIENTED_EDGE('',*,*,#14886,.F.); -#8932=ORIENTED_EDGE('',*,*,#15958,.F.); -#8933=ORIENTED_EDGE('',*,*,#14923,.F.); -#8934=ORIENTED_EDGE('',*,*,#15957,.T.); -#8935=ORIENTED_EDGE('',*,*,#14885,.F.); -#8936=ORIENTED_EDGE('',*,*,#14884,.T.); -#8937=ORIENTED_EDGE('',*,*,#15959,.F.); -#8938=ORIENTED_EDGE('',*,*,#14924,.T.); -#8939=ORIENTED_EDGE('',*,*,#15958,.T.); -#8940=ORIENTED_EDGE('',*,*,#15960,.F.); -#8941=ORIENTED_EDGE('',*,*,#14925,.F.); -#8942=ORIENTED_EDGE('',*,*,#15959,.T.); -#8943=ORIENTED_EDGE('',*,*,#14883,.F.); -#8944=ORIENTED_EDGE('',*,*,#15961,.F.); -#8945=ORIENTED_EDGE('',*,*,#14926,.F.); -#8946=ORIENTED_EDGE('',*,*,#15960,.T.); -#8947=ORIENTED_EDGE('',*,*,#14882,.F.); -#8948=ORIENTED_EDGE('',*,*,#15951,.F.); -#8949=ORIENTED_EDGE('',*,*,#15901,.T.); -#8950=ORIENTED_EDGE('',*,*,#15949,.T.); -#8951=ORIENTED_EDGE('',*,*,#15687,.F.); -#8952=ORIENTED_EDGE('',*,*,#15962,.F.); -#8953=ORIENTED_EDGE('',*,*,#15896,.T.); -#8954=ORIENTED_EDGE('',*,*,#15961,.T.); -#8955=ORIENTED_EDGE('',*,*,#15686,.F.); -#8956=ORIENTED_EDGE('',*,*,#15685,.T.); -#8957=ORIENTED_EDGE('',*,*,#15786,.F.); -#8958=ORIENTED_EDGE('',*,*,#15963,.F.); -#8959=ORIENTED_EDGE('',*,*,#15897,.F.); -#8960=ORIENTED_EDGE('',*,*,#15962,.T.); -#8961=ORIENTED_EDGE('',*,*,#15898,.F.); -#8962=ORIENTED_EDGE('',*,*,#15963,.T.); -#8963=ORIENTED_EDGE('',*,*,#15785,.F.); -#8964=ORIENTED_EDGE('',*,*,#15964,.F.); -#8965=ORIENTED_EDGE('',*,*,#15899,.F.); -#8966=ORIENTED_EDGE('',*,*,#15783,.F.); -#8967=ORIENTED_EDGE('',*,*,#15683,.T.); -#8968=ORIENTED_EDGE('',*,*,#15965,.F.); -#8969=ORIENTED_EDGE('',*,*,#15900,.F.); -#8970=ORIENTED_EDGE('',*,*,#15964,.T.); -#8971=ORIENTED_EDGE('',*,*,#15782,.F.); -#8972=ORIENTED_EDGE('',*,*,#15966,.F.); -#8973=ORIENTED_EDGE('',*,*,#14928,.F.); -#8974=ORIENTED_EDGE('',*,*,#15967,.T.); -#8975=ORIENTED_EDGE('',*,*,#14880,.F.); -#8976=ORIENTED_EDGE('',*,*,#15968,.F.); -#8977=ORIENTED_EDGE('',*,*,#14929,.F.); -#8978=ORIENTED_EDGE('',*,*,#15966,.T.); -#8979=ORIENTED_EDGE('',*,*,#14879,.F.); -#8980=ORIENTED_EDGE('',*,*,#14878,.T.); -#8981=ORIENTED_EDGE('',*,*,#15969,.F.); -#8982=ORIENTED_EDGE('',*,*,#14930,.T.); -#8983=ORIENTED_EDGE('',*,*,#15968,.T.); -#8984=ORIENTED_EDGE('',*,*,#15970,.F.); -#8985=ORIENTED_EDGE('',*,*,#14931,.F.); -#8986=ORIENTED_EDGE('',*,*,#15969,.T.); -#8987=ORIENTED_EDGE('',*,*,#14877,.F.); -#8988=ORIENTED_EDGE('',*,*,#15971,.F.); -#8989=ORIENTED_EDGE('',*,*,#14932,.F.); -#8990=ORIENTED_EDGE('',*,*,#15970,.T.); -#8991=ORIENTED_EDGE('',*,*,#14876,.F.); -#8992=ORIENTED_EDGE('',*,*,#15231,.F.); -#8993=ORIENTED_EDGE('',*,*,#14933,.F.); -#8994=ORIENTED_EDGE('',*,*,#15971,.T.); -#8995=ORIENTED_EDGE('',*,*,#14875,.F.); -#8996=ORIENTED_EDGE('',*,*,#15972,.F.); -#8997=ORIENTED_EDGE('',*,*,#14935,.F.); -#8998=ORIENTED_EDGE('',*,*,#15230,.T.); -#8999=ORIENTED_EDGE('',*,*,#14873,.F.); -#9000=ORIENTED_EDGE('',*,*,#15973,.F.); -#9001=ORIENTED_EDGE('',*,*,#14936,.F.); -#9002=ORIENTED_EDGE('',*,*,#15972,.T.); -#9003=ORIENTED_EDGE('',*,*,#14872,.F.); -#9004=ORIENTED_EDGE('',*,*,#15974,.F.); -#9005=ORIENTED_EDGE('',*,*,#14937,.F.); -#9006=ORIENTED_EDGE('',*,*,#15973,.T.); -#9007=ORIENTED_EDGE('',*,*,#14871,.F.); -#9008=ORIENTED_EDGE('',*,*,#14870,.T.); -#9009=ORIENTED_EDGE('',*,*,#15975,.F.); -#9010=ORIENTED_EDGE('',*,*,#14938,.T.); -#9011=ORIENTED_EDGE('',*,*,#15974,.T.); -#9012=ORIENTED_EDGE('',*,*,#15976,.F.); -#9013=ORIENTED_EDGE('',*,*,#14939,.F.); -#9014=ORIENTED_EDGE('',*,*,#15975,.T.); -#9015=ORIENTED_EDGE('',*,*,#14869,.F.); -#9016=ORIENTED_EDGE('',*,*,#15977,.F.); -#9017=ORIENTED_EDGE('',*,*,#14940,.F.); -#9018=ORIENTED_EDGE('',*,*,#15976,.T.); -#9019=ORIENTED_EDGE('',*,*,#14868,.F.); -#9020=ORIENTED_EDGE('',*,*,#15967,.F.); -#9021=ORIENTED_EDGE('',*,*,#15895,.T.); -#9022=ORIENTED_EDGE('',*,*,#15965,.T.); -#9023=ORIENTED_EDGE('',*,*,#15682,.F.); -#9024=ORIENTED_EDGE('',*,*,#15978,.F.); -#9025=ORIENTED_EDGE('',*,*,#15890,.T.); -#9026=ORIENTED_EDGE('',*,*,#15977,.T.); -#9027=ORIENTED_EDGE('',*,*,#15681,.F.); -#9028=ORIENTED_EDGE('',*,*,#15680,.T.); -#9029=ORIENTED_EDGE('',*,*,#15781,.F.); -#9030=ORIENTED_EDGE('',*,*,#15979,.F.); -#9031=ORIENTED_EDGE('',*,*,#15891,.F.); -#9032=ORIENTED_EDGE('',*,*,#15978,.T.); -#9033=ORIENTED_EDGE('',*,*,#15892,.F.); -#9034=ORIENTED_EDGE('',*,*,#15979,.T.); -#9035=ORIENTED_EDGE('',*,*,#15780,.F.); -#9036=ORIENTED_EDGE('',*,*,#15980,.F.); -#9037=ORIENTED_EDGE('',*,*,#15893,.F.); -#9038=ORIENTED_EDGE('',*,*,#15778,.F.); -#9039=ORIENTED_EDGE('',*,*,#15678,.T.); -#9040=ORIENTED_EDGE('',*,*,#15981,.F.); -#9041=ORIENTED_EDGE('',*,*,#15894,.F.); -#9042=ORIENTED_EDGE('',*,*,#15980,.T.); -#9043=ORIENTED_EDGE('',*,*,#15777,.F.); -#9044=ORIENTED_EDGE('',*,*,#15982,.F.); -#9045=ORIENTED_EDGE('',*,*,#14942,.F.); -#9046=ORIENTED_EDGE('',*,*,#15983,.T.); -#9047=ORIENTED_EDGE('',*,*,#14866,.F.); -#9048=ORIENTED_EDGE('',*,*,#15984,.F.); -#9049=ORIENTED_EDGE('',*,*,#14943,.F.); -#9050=ORIENTED_EDGE('',*,*,#15982,.T.); -#9051=ORIENTED_EDGE('',*,*,#14865,.F.); -#9052=ORIENTED_EDGE('',*,*,#14864,.T.); -#9053=ORIENTED_EDGE('',*,*,#15985,.F.); -#9054=ORIENTED_EDGE('',*,*,#14944,.T.); -#9055=ORIENTED_EDGE('',*,*,#15984,.T.); -#9056=ORIENTED_EDGE('',*,*,#15986,.F.); -#9057=ORIENTED_EDGE('',*,*,#14945,.F.); -#9058=ORIENTED_EDGE('',*,*,#15985,.T.); -#9059=ORIENTED_EDGE('',*,*,#14863,.F.); -#9060=ORIENTED_EDGE('',*,*,#15987,.F.); -#9061=ORIENTED_EDGE('',*,*,#14946,.F.); -#9062=ORIENTED_EDGE('',*,*,#15986,.T.); -#9063=ORIENTED_EDGE('',*,*,#14862,.F.); -#9064=ORIENTED_EDGE('',*,*,#15229,.F.); -#9065=ORIENTED_EDGE('',*,*,#14947,.F.); -#9066=ORIENTED_EDGE('',*,*,#15987,.T.); -#9067=ORIENTED_EDGE('',*,*,#14861,.F.); -#9068=ORIENTED_EDGE('',*,*,#15988,.F.); -#9069=ORIENTED_EDGE('',*,*,#14949,.F.); -#9070=ORIENTED_EDGE('',*,*,#15228,.T.); -#9071=ORIENTED_EDGE('',*,*,#14859,.F.); -#9072=ORIENTED_EDGE('',*,*,#15989,.F.); -#9073=ORIENTED_EDGE('',*,*,#14950,.F.); -#9074=ORIENTED_EDGE('',*,*,#15988,.T.); -#9075=ORIENTED_EDGE('',*,*,#14858,.F.); -#9076=ORIENTED_EDGE('',*,*,#15990,.F.); -#9077=ORIENTED_EDGE('',*,*,#14951,.F.); -#9078=ORIENTED_EDGE('',*,*,#15989,.T.); -#9079=ORIENTED_EDGE('',*,*,#14857,.F.); -#9080=ORIENTED_EDGE('',*,*,#14856,.T.); -#9081=ORIENTED_EDGE('',*,*,#15991,.F.); -#9082=ORIENTED_EDGE('',*,*,#14952,.T.); -#9083=ORIENTED_EDGE('',*,*,#15990,.T.); -#9084=ORIENTED_EDGE('',*,*,#15992,.F.); -#9085=ORIENTED_EDGE('',*,*,#14953,.F.); -#9086=ORIENTED_EDGE('',*,*,#15991,.T.); -#9087=ORIENTED_EDGE('',*,*,#14855,.F.); -#9088=ORIENTED_EDGE('',*,*,#15993,.F.); -#9089=ORIENTED_EDGE('',*,*,#14954,.F.); -#9090=ORIENTED_EDGE('',*,*,#15992,.T.); -#9091=ORIENTED_EDGE('',*,*,#14854,.F.); -#9092=ORIENTED_EDGE('',*,*,#15983,.F.); -#9093=ORIENTED_EDGE('',*,*,#15889,.T.); -#9094=ORIENTED_EDGE('',*,*,#15981,.T.); -#9095=ORIENTED_EDGE('',*,*,#15677,.F.); -#9096=ORIENTED_EDGE('',*,*,#15994,.F.); -#9097=ORIENTED_EDGE('',*,*,#15884,.T.); -#9098=ORIENTED_EDGE('',*,*,#15993,.T.); -#9099=ORIENTED_EDGE('',*,*,#15676,.F.); -#9100=ORIENTED_EDGE('',*,*,#15675,.T.); -#9101=ORIENTED_EDGE('',*,*,#15776,.F.); -#9102=ORIENTED_EDGE('',*,*,#15995,.F.); -#9103=ORIENTED_EDGE('',*,*,#15885,.F.); -#9104=ORIENTED_EDGE('',*,*,#15994,.T.); -#9105=ORIENTED_EDGE('',*,*,#15886,.F.); -#9106=ORIENTED_EDGE('',*,*,#15995,.T.); -#9107=ORIENTED_EDGE('',*,*,#15775,.F.); -#9108=ORIENTED_EDGE('',*,*,#15996,.F.); -#9109=ORIENTED_EDGE('',*,*,#15887,.F.); -#9110=ORIENTED_EDGE('',*,*,#15773,.F.); -#9111=ORIENTED_EDGE('',*,*,#15673,.T.); -#9112=ORIENTED_EDGE('',*,*,#15997,.F.); -#9113=ORIENTED_EDGE('',*,*,#15888,.F.); -#9114=ORIENTED_EDGE('',*,*,#15996,.T.); -#9115=ORIENTED_EDGE('',*,*,#15772,.F.); -#9116=ORIENTED_EDGE('',*,*,#15998,.F.); -#9117=ORIENTED_EDGE('',*,*,#14956,.F.); -#9118=ORIENTED_EDGE('',*,*,#15999,.T.); -#9119=ORIENTED_EDGE('',*,*,#14852,.F.); -#9120=ORIENTED_EDGE('',*,*,#16000,.F.); -#9121=ORIENTED_EDGE('',*,*,#14957,.F.); -#9122=ORIENTED_EDGE('',*,*,#15998,.T.); -#9123=ORIENTED_EDGE('',*,*,#14851,.F.); -#9124=ORIENTED_EDGE('',*,*,#14850,.T.); -#9125=ORIENTED_EDGE('',*,*,#16001,.F.); -#9126=ORIENTED_EDGE('',*,*,#14958,.T.); -#9127=ORIENTED_EDGE('',*,*,#16000,.T.); -#9128=ORIENTED_EDGE('',*,*,#16002,.F.); -#9129=ORIENTED_EDGE('',*,*,#14959,.F.); -#9130=ORIENTED_EDGE('',*,*,#16001,.T.); -#9131=ORIENTED_EDGE('',*,*,#14849,.F.); -#9132=ORIENTED_EDGE('',*,*,#16003,.F.); -#9133=ORIENTED_EDGE('',*,*,#14960,.F.); -#9134=ORIENTED_EDGE('',*,*,#16002,.T.); -#9135=ORIENTED_EDGE('',*,*,#14848,.F.); -#9136=ORIENTED_EDGE('',*,*,#15227,.F.); -#9137=ORIENTED_EDGE('',*,*,#14961,.F.); -#9138=ORIENTED_EDGE('',*,*,#16003,.T.); -#9139=ORIENTED_EDGE('',*,*,#14847,.F.); -#9140=ORIENTED_EDGE('',*,*,#16004,.F.); -#9141=ORIENTED_EDGE('',*,*,#14963,.F.); -#9142=ORIENTED_EDGE('',*,*,#15226,.T.); -#9143=ORIENTED_EDGE('',*,*,#14845,.F.); -#9144=ORIENTED_EDGE('',*,*,#16005,.F.); -#9145=ORIENTED_EDGE('',*,*,#14964,.F.); -#9146=ORIENTED_EDGE('',*,*,#16004,.T.); -#9147=ORIENTED_EDGE('',*,*,#14844,.F.); -#9148=ORIENTED_EDGE('',*,*,#16006,.F.); -#9149=ORIENTED_EDGE('',*,*,#14965,.F.); -#9150=ORIENTED_EDGE('',*,*,#16005,.T.); -#9151=ORIENTED_EDGE('',*,*,#14843,.F.); -#9152=ORIENTED_EDGE('',*,*,#14842,.T.); -#9153=ORIENTED_EDGE('',*,*,#16007,.F.); -#9154=ORIENTED_EDGE('',*,*,#14966,.T.); -#9155=ORIENTED_EDGE('',*,*,#16006,.T.); -#9156=ORIENTED_EDGE('',*,*,#16008,.F.); -#9157=ORIENTED_EDGE('',*,*,#14967,.F.); -#9158=ORIENTED_EDGE('',*,*,#16007,.T.); -#9159=ORIENTED_EDGE('',*,*,#14841,.F.); -#9160=ORIENTED_EDGE('',*,*,#16009,.F.); -#9161=ORIENTED_EDGE('',*,*,#14968,.F.); -#9162=ORIENTED_EDGE('',*,*,#16008,.T.); -#9163=ORIENTED_EDGE('',*,*,#14840,.F.); -#9164=ORIENTED_EDGE('',*,*,#15999,.F.); -#9165=ORIENTED_EDGE('',*,*,#15883,.T.); -#9166=ORIENTED_EDGE('',*,*,#15997,.T.); -#9167=ORIENTED_EDGE('',*,*,#15672,.F.); -#9168=ORIENTED_EDGE('',*,*,#16010,.F.); -#9169=ORIENTED_EDGE('',*,*,#15878,.T.); -#9170=ORIENTED_EDGE('',*,*,#16009,.T.); -#9171=ORIENTED_EDGE('',*,*,#15671,.F.); -#9172=ORIENTED_EDGE('',*,*,#15670,.T.); -#9173=ORIENTED_EDGE('',*,*,#15771,.F.); -#9174=ORIENTED_EDGE('',*,*,#16011,.F.); -#9175=ORIENTED_EDGE('',*,*,#15879,.F.); -#9176=ORIENTED_EDGE('',*,*,#16010,.T.); -#9177=ORIENTED_EDGE('',*,*,#15880,.F.); -#9178=ORIENTED_EDGE('',*,*,#16011,.T.); -#9179=ORIENTED_EDGE('',*,*,#15770,.F.); -#9180=ORIENTED_EDGE('',*,*,#16012,.F.); -#9181=ORIENTED_EDGE('',*,*,#15881,.F.); -#9182=ORIENTED_EDGE('',*,*,#15768,.F.); -#9183=ORIENTED_EDGE('',*,*,#15668,.T.); -#9184=ORIENTED_EDGE('',*,*,#16013,.F.); -#9185=ORIENTED_EDGE('',*,*,#15882,.F.); -#9186=ORIENTED_EDGE('',*,*,#16012,.T.); -#9187=ORIENTED_EDGE('',*,*,#15767,.F.); -#9188=ORIENTED_EDGE('',*,*,#16014,.F.); -#9189=ORIENTED_EDGE('',*,*,#14970,.F.); -#9190=ORIENTED_EDGE('',*,*,#16015,.T.); -#9191=ORIENTED_EDGE('',*,*,#14838,.F.); -#9192=ORIENTED_EDGE('',*,*,#16016,.F.); -#9193=ORIENTED_EDGE('',*,*,#14971,.F.); -#9194=ORIENTED_EDGE('',*,*,#16014,.T.); -#9195=ORIENTED_EDGE('',*,*,#14837,.F.); -#9196=ORIENTED_EDGE('',*,*,#14836,.T.); -#9197=ORIENTED_EDGE('',*,*,#16017,.F.); -#9198=ORIENTED_EDGE('',*,*,#14972,.T.); -#9199=ORIENTED_EDGE('',*,*,#16016,.T.); -#9200=ORIENTED_EDGE('',*,*,#16018,.F.); -#9201=ORIENTED_EDGE('',*,*,#14973,.F.); -#9202=ORIENTED_EDGE('',*,*,#16017,.T.); -#9203=ORIENTED_EDGE('',*,*,#14835,.F.); -#9204=ORIENTED_EDGE('',*,*,#16019,.F.); -#9205=ORIENTED_EDGE('',*,*,#14974,.F.); -#9206=ORIENTED_EDGE('',*,*,#16018,.T.); -#9207=ORIENTED_EDGE('',*,*,#14834,.F.); -#9208=ORIENTED_EDGE('',*,*,#15225,.F.); -#9209=ORIENTED_EDGE('',*,*,#14975,.F.); -#9210=ORIENTED_EDGE('',*,*,#16019,.T.); -#9211=ORIENTED_EDGE('',*,*,#14833,.F.); -#9212=ORIENTED_EDGE('',*,*,#16020,.F.); -#9213=ORIENTED_EDGE('',*,*,#14977,.F.); -#9214=ORIENTED_EDGE('',*,*,#15224,.T.); -#9215=ORIENTED_EDGE('',*,*,#14831,.F.); -#9216=ORIENTED_EDGE('',*,*,#16021,.F.); -#9217=ORIENTED_EDGE('',*,*,#14978,.F.); -#9218=ORIENTED_EDGE('',*,*,#16020,.T.); -#9219=ORIENTED_EDGE('',*,*,#14830,.F.); -#9220=ORIENTED_EDGE('',*,*,#16022,.F.); -#9221=ORIENTED_EDGE('',*,*,#14979,.F.); -#9222=ORIENTED_EDGE('',*,*,#16021,.T.); -#9223=ORIENTED_EDGE('',*,*,#14829,.F.); -#9224=ORIENTED_EDGE('',*,*,#14828,.T.); -#9225=ORIENTED_EDGE('',*,*,#16023,.F.); -#9226=ORIENTED_EDGE('',*,*,#14980,.T.); -#9227=ORIENTED_EDGE('',*,*,#16022,.T.); -#9228=ORIENTED_EDGE('',*,*,#16024,.F.); -#9229=ORIENTED_EDGE('',*,*,#14981,.F.); -#9230=ORIENTED_EDGE('',*,*,#16023,.T.); -#9231=ORIENTED_EDGE('',*,*,#14827,.F.); -#9232=ORIENTED_EDGE('',*,*,#16025,.F.); -#9233=ORIENTED_EDGE('',*,*,#14982,.F.); -#9234=ORIENTED_EDGE('',*,*,#16024,.T.); -#9235=ORIENTED_EDGE('',*,*,#14826,.F.); -#9236=ORIENTED_EDGE('',*,*,#16015,.F.); -#9237=ORIENTED_EDGE('',*,*,#15877,.T.); -#9238=ORIENTED_EDGE('',*,*,#16013,.T.); -#9239=ORIENTED_EDGE('',*,*,#15667,.F.); -#9240=ORIENTED_EDGE('',*,*,#16026,.F.); -#9241=ORIENTED_EDGE('',*,*,#15872,.T.); -#9242=ORIENTED_EDGE('',*,*,#16025,.T.); -#9243=ORIENTED_EDGE('',*,*,#15666,.F.); -#9244=ORIENTED_EDGE('',*,*,#15665,.T.); -#9245=ORIENTED_EDGE('',*,*,#15766,.F.); -#9246=ORIENTED_EDGE('',*,*,#16027,.F.); -#9247=ORIENTED_EDGE('',*,*,#15873,.F.); -#9248=ORIENTED_EDGE('',*,*,#16026,.T.); -#9249=ORIENTED_EDGE('',*,*,#15874,.F.); -#9250=ORIENTED_EDGE('',*,*,#16027,.T.); -#9251=ORIENTED_EDGE('',*,*,#15765,.F.); -#9252=ORIENTED_EDGE('',*,*,#16028,.F.); -#9253=ORIENTED_EDGE('',*,*,#15875,.F.); -#9254=ORIENTED_EDGE('',*,*,#15763,.F.); -#9255=ORIENTED_EDGE('',*,*,#15663,.T.); -#9256=ORIENTED_EDGE('',*,*,#16029,.F.); -#9257=ORIENTED_EDGE('',*,*,#15876,.F.); -#9258=ORIENTED_EDGE('',*,*,#16028,.T.); -#9259=ORIENTED_EDGE('',*,*,#15762,.F.); -#9260=ORIENTED_EDGE('',*,*,#16030,.F.); -#9261=ORIENTED_EDGE('',*,*,#14984,.F.); -#9262=ORIENTED_EDGE('',*,*,#16031,.T.); -#9263=ORIENTED_EDGE('',*,*,#14824,.F.); -#9264=ORIENTED_EDGE('',*,*,#16032,.F.); -#9265=ORIENTED_EDGE('',*,*,#14985,.F.); -#9266=ORIENTED_EDGE('',*,*,#16030,.T.); -#9267=ORIENTED_EDGE('',*,*,#14823,.F.); -#9268=ORIENTED_EDGE('',*,*,#14822,.T.); -#9269=ORIENTED_EDGE('',*,*,#16033,.F.); -#9270=ORIENTED_EDGE('',*,*,#14986,.T.); -#9271=ORIENTED_EDGE('',*,*,#16032,.T.); -#9272=ORIENTED_EDGE('',*,*,#16034,.F.); -#9273=ORIENTED_EDGE('',*,*,#14987,.F.); -#9274=ORIENTED_EDGE('',*,*,#16033,.T.); -#9275=ORIENTED_EDGE('',*,*,#14821,.F.); -#9276=ORIENTED_EDGE('',*,*,#16035,.F.); -#9277=ORIENTED_EDGE('',*,*,#14988,.F.); -#9278=ORIENTED_EDGE('',*,*,#16034,.T.); -#9279=ORIENTED_EDGE('',*,*,#14820,.F.); -#9280=ORIENTED_EDGE('',*,*,#15223,.F.); -#9281=ORIENTED_EDGE('',*,*,#14989,.F.); -#9282=ORIENTED_EDGE('',*,*,#16035,.T.); -#9283=ORIENTED_EDGE('',*,*,#14819,.F.); -#9284=ORIENTED_EDGE('',*,*,#16036,.F.); -#9285=ORIENTED_EDGE('',*,*,#14991,.F.); -#9286=ORIENTED_EDGE('',*,*,#15222,.T.); -#9287=ORIENTED_EDGE('',*,*,#14817,.F.); -#9288=ORIENTED_EDGE('',*,*,#16037,.F.); -#9289=ORIENTED_EDGE('',*,*,#14992,.F.); -#9290=ORIENTED_EDGE('',*,*,#16036,.T.); -#9291=ORIENTED_EDGE('',*,*,#14816,.F.); -#9292=ORIENTED_EDGE('',*,*,#16038,.F.); -#9293=ORIENTED_EDGE('',*,*,#14993,.F.); -#9294=ORIENTED_EDGE('',*,*,#16037,.T.); -#9295=ORIENTED_EDGE('',*,*,#14815,.F.); -#9296=ORIENTED_EDGE('',*,*,#14814,.T.); -#9297=ORIENTED_EDGE('',*,*,#16039,.F.); -#9298=ORIENTED_EDGE('',*,*,#14994,.T.); -#9299=ORIENTED_EDGE('',*,*,#16038,.T.); -#9300=ORIENTED_EDGE('',*,*,#16040,.F.); -#9301=ORIENTED_EDGE('',*,*,#14995,.F.); -#9302=ORIENTED_EDGE('',*,*,#16039,.T.); -#9303=ORIENTED_EDGE('',*,*,#14813,.F.); -#9304=ORIENTED_EDGE('',*,*,#16041,.F.); -#9305=ORIENTED_EDGE('',*,*,#14996,.F.); -#9306=ORIENTED_EDGE('',*,*,#16040,.T.); -#9307=ORIENTED_EDGE('',*,*,#14812,.F.); -#9308=ORIENTED_EDGE('',*,*,#16031,.F.); -#9309=ORIENTED_EDGE('',*,*,#15871,.T.); -#9310=ORIENTED_EDGE('',*,*,#16029,.T.); -#9311=ORIENTED_EDGE('',*,*,#15662,.F.); -#9312=ORIENTED_EDGE('',*,*,#16042,.F.); -#9313=ORIENTED_EDGE('',*,*,#15866,.T.); -#9314=ORIENTED_EDGE('',*,*,#16041,.T.); -#9315=ORIENTED_EDGE('',*,*,#15661,.F.); -#9316=ORIENTED_EDGE('',*,*,#15660,.T.); -#9317=ORIENTED_EDGE('',*,*,#15761,.F.); -#9318=ORIENTED_EDGE('',*,*,#16043,.F.); -#9319=ORIENTED_EDGE('',*,*,#15867,.F.); -#9320=ORIENTED_EDGE('',*,*,#16042,.T.); -#9321=ORIENTED_EDGE('',*,*,#15868,.F.); -#9322=ORIENTED_EDGE('',*,*,#16043,.T.); -#9323=ORIENTED_EDGE('',*,*,#15760,.F.); -#9324=ORIENTED_EDGE('',*,*,#16044,.F.); -#9325=ORIENTED_EDGE('',*,*,#15869,.F.); -#9326=ORIENTED_EDGE('',*,*,#15758,.F.); -#9327=ORIENTED_EDGE('',*,*,#15658,.T.); -#9328=ORIENTED_EDGE('',*,*,#16045,.F.); -#9329=ORIENTED_EDGE('',*,*,#15870,.F.); -#9330=ORIENTED_EDGE('',*,*,#16044,.T.); -#9331=ORIENTED_EDGE('',*,*,#15757,.F.); -#9332=ORIENTED_EDGE('',*,*,#16046,.F.); -#9333=ORIENTED_EDGE('',*,*,#14998,.F.); -#9334=ORIENTED_EDGE('',*,*,#16047,.T.); -#9335=ORIENTED_EDGE('',*,*,#14810,.F.); -#9336=ORIENTED_EDGE('',*,*,#16048,.F.); -#9337=ORIENTED_EDGE('',*,*,#14999,.F.); -#9338=ORIENTED_EDGE('',*,*,#16046,.T.); -#9339=ORIENTED_EDGE('',*,*,#14809,.F.); -#9340=ORIENTED_EDGE('',*,*,#14808,.T.); -#9341=ORIENTED_EDGE('',*,*,#16049,.F.); -#9342=ORIENTED_EDGE('',*,*,#15000,.T.); -#9343=ORIENTED_EDGE('',*,*,#16048,.T.); -#9344=ORIENTED_EDGE('',*,*,#16050,.F.); -#9345=ORIENTED_EDGE('',*,*,#15001,.F.); -#9346=ORIENTED_EDGE('',*,*,#16049,.T.); -#9347=ORIENTED_EDGE('',*,*,#14807,.F.); -#9348=ORIENTED_EDGE('',*,*,#16051,.F.); -#9349=ORIENTED_EDGE('',*,*,#15002,.F.); -#9350=ORIENTED_EDGE('',*,*,#16050,.T.); -#9351=ORIENTED_EDGE('',*,*,#14806,.F.); -#9352=ORIENTED_EDGE('',*,*,#15221,.F.); -#9353=ORIENTED_EDGE('',*,*,#15003,.F.); -#9354=ORIENTED_EDGE('',*,*,#16051,.T.); -#9355=ORIENTED_EDGE('',*,*,#14805,.F.); -#9356=ORIENTED_EDGE('',*,*,#16052,.F.); -#9357=ORIENTED_EDGE('',*,*,#15005,.F.); -#9358=ORIENTED_EDGE('',*,*,#15220,.T.); -#9359=ORIENTED_EDGE('',*,*,#14803,.F.); -#9360=ORIENTED_EDGE('',*,*,#16053,.F.); -#9361=ORIENTED_EDGE('',*,*,#15006,.F.); -#9362=ORIENTED_EDGE('',*,*,#16052,.T.); -#9363=ORIENTED_EDGE('',*,*,#14802,.F.); -#9364=ORIENTED_EDGE('',*,*,#16054,.F.); -#9365=ORIENTED_EDGE('',*,*,#15007,.F.); -#9366=ORIENTED_EDGE('',*,*,#16053,.T.); -#9367=ORIENTED_EDGE('',*,*,#14801,.F.); -#9368=ORIENTED_EDGE('',*,*,#14800,.T.); -#9369=ORIENTED_EDGE('',*,*,#16055,.F.); -#9370=ORIENTED_EDGE('',*,*,#15008,.T.); -#9371=ORIENTED_EDGE('',*,*,#16054,.T.); -#9372=ORIENTED_EDGE('',*,*,#16056,.F.); -#9373=ORIENTED_EDGE('',*,*,#15009,.F.); -#9374=ORIENTED_EDGE('',*,*,#16055,.T.); -#9375=ORIENTED_EDGE('',*,*,#14799,.F.); -#9376=ORIENTED_EDGE('',*,*,#16057,.F.); -#9377=ORIENTED_EDGE('',*,*,#15010,.F.); -#9378=ORIENTED_EDGE('',*,*,#16056,.T.); -#9379=ORIENTED_EDGE('',*,*,#14798,.F.); -#9380=ORIENTED_EDGE('',*,*,#16047,.F.); -#9381=ORIENTED_EDGE('',*,*,#15865,.T.); -#9382=ORIENTED_EDGE('',*,*,#16045,.T.); -#9383=ORIENTED_EDGE('',*,*,#15657,.F.); -#9384=ORIENTED_EDGE('',*,*,#16058,.F.); -#9385=ORIENTED_EDGE('',*,*,#15860,.T.); -#9386=ORIENTED_EDGE('',*,*,#16057,.T.); -#9387=ORIENTED_EDGE('',*,*,#15656,.F.); -#9388=ORIENTED_EDGE('',*,*,#15655,.T.); -#9389=ORIENTED_EDGE('',*,*,#15756,.F.); -#9390=ORIENTED_EDGE('',*,*,#16059,.F.); -#9391=ORIENTED_EDGE('',*,*,#15861,.F.); -#9392=ORIENTED_EDGE('',*,*,#16058,.T.); -#9393=ORIENTED_EDGE('',*,*,#15862,.F.); -#9394=ORIENTED_EDGE('',*,*,#16059,.T.); -#9395=ORIENTED_EDGE('',*,*,#15755,.F.); -#9396=ORIENTED_EDGE('',*,*,#16060,.F.); -#9397=ORIENTED_EDGE('',*,*,#15863,.F.); -#9398=ORIENTED_EDGE('',*,*,#15753,.F.); -#9399=ORIENTED_EDGE('',*,*,#15653,.T.); -#9400=ORIENTED_EDGE('',*,*,#16061,.F.); -#9401=ORIENTED_EDGE('',*,*,#15864,.F.); -#9402=ORIENTED_EDGE('',*,*,#16060,.T.); -#9403=ORIENTED_EDGE('',*,*,#15752,.F.); -#9404=ORIENTED_EDGE('',*,*,#16062,.F.); -#9405=ORIENTED_EDGE('',*,*,#15012,.F.); -#9406=ORIENTED_EDGE('',*,*,#16063,.T.); -#9407=ORIENTED_EDGE('',*,*,#14796,.F.); -#9408=ORIENTED_EDGE('',*,*,#16064,.F.); -#9409=ORIENTED_EDGE('',*,*,#15013,.F.); -#9410=ORIENTED_EDGE('',*,*,#16062,.T.); -#9411=ORIENTED_EDGE('',*,*,#14795,.F.); -#9412=ORIENTED_EDGE('',*,*,#14794,.T.); -#9413=ORIENTED_EDGE('',*,*,#16065,.F.); -#9414=ORIENTED_EDGE('',*,*,#15014,.T.); -#9415=ORIENTED_EDGE('',*,*,#16064,.T.); -#9416=ORIENTED_EDGE('',*,*,#16066,.F.); -#9417=ORIENTED_EDGE('',*,*,#15015,.F.); -#9418=ORIENTED_EDGE('',*,*,#16065,.T.); -#9419=ORIENTED_EDGE('',*,*,#14793,.F.); -#9420=ORIENTED_EDGE('',*,*,#16067,.F.); -#9421=ORIENTED_EDGE('',*,*,#15016,.F.); -#9422=ORIENTED_EDGE('',*,*,#16066,.T.); -#9423=ORIENTED_EDGE('',*,*,#14792,.F.); -#9424=ORIENTED_EDGE('',*,*,#15219,.F.); -#9425=ORIENTED_EDGE('',*,*,#15017,.F.); -#9426=ORIENTED_EDGE('',*,*,#16067,.T.); -#9427=ORIENTED_EDGE('',*,*,#14791,.F.); -#9428=ORIENTED_EDGE('',*,*,#16068,.F.); -#9429=ORIENTED_EDGE('',*,*,#15019,.F.); -#9430=ORIENTED_EDGE('',*,*,#15218,.T.); -#9431=ORIENTED_EDGE('',*,*,#14789,.F.); -#9432=ORIENTED_EDGE('',*,*,#16069,.F.); -#9433=ORIENTED_EDGE('',*,*,#15020,.F.); -#9434=ORIENTED_EDGE('',*,*,#16068,.T.); -#9435=ORIENTED_EDGE('',*,*,#14788,.F.); -#9436=ORIENTED_EDGE('',*,*,#16070,.F.); -#9437=ORIENTED_EDGE('',*,*,#15021,.F.); -#9438=ORIENTED_EDGE('',*,*,#16069,.T.); -#9439=ORIENTED_EDGE('',*,*,#14787,.F.); -#9440=ORIENTED_EDGE('',*,*,#14786,.T.); -#9441=ORIENTED_EDGE('',*,*,#16071,.F.); -#9442=ORIENTED_EDGE('',*,*,#15022,.T.); -#9443=ORIENTED_EDGE('',*,*,#16070,.T.); -#9444=ORIENTED_EDGE('',*,*,#16072,.F.); -#9445=ORIENTED_EDGE('',*,*,#15023,.F.); -#9446=ORIENTED_EDGE('',*,*,#16071,.T.); -#9447=ORIENTED_EDGE('',*,*,#14785,.F.); -#9448=ORIENTED_EDGE('',*,*,#16073,.F.); -#9449=ORIENTED_EDGE('',*,*,#15024,.F.); -#9450=ORIENTED_EDGE('',*,*,#16072,.T.); -#9451=ORIENTED_EDGE('',*,*,#14784,.F.); -#9452=ORIENTED_EDGE('',*,*,#16063,.F.); -#9453=ORIENTED_EDGE('',*,*,#15859,.T.); -#9454=ORIENTED_EDGE('',*,*,#16061,.T.); -#9455=ORIENTED_EDGE('',*,*,#15652,.F.); -#9456=ORIENTED_EDGE('',*,*,#16074,.F.); -#9457=ORIENTED_EDGE('',*,*,#15854,.T.); -#9458=ORIENTED_EDGE('',*,*,#16073,.T.); -#9459=ORIENTED_EDGE('',*,*,#15651,.F.); -#9460=ORIENTED_EDGE('',*,*,#15650,.T.); -#9461=ORIENTED_EDGE('',*,*,#15751,.F.); -#9462=ORIENTED_EDGE('',*,*,#16075,.F.); -#9463=ORIENTED_EDGE('',*,*,#15855,.F.); -#9464=ORIENTED_EDGE('',*,*,#16074,.T.); -#9465=ORIENTED_EDGE('',*,*,#15856,.F.); -#9466=ORIENTED_EDGE('',*,*,#16075,.T.); -#9467=ORIENTED_EDGE('',*,*,#15750,.F.); -#9468=ORIENTED_EDGE('',*,*,#16076,.F.); -#9469=ORIENTED_EDGE('',*,*,#15857,.F.); -#9470=ORIENTED_EDGE('',*,*,#15748,.F.); -#9471=ORIENTED_EDGE('',*,*,#15648,.T.); -#9472=ORIENTED_EDGE('',*,*,#16077,.F.); -#9473=ORIENTED_EDGE('',*,*,#15858,.F.); -#9474=ORIENTED_EDGE('',*,*,#16076,.T.); -#9475=ORIENTED_EDGE('',*,*,#15747,.F.); -#9476=ORIENTED_EDGE('',*,*,#16078,.F.); -#9477=ORIENTED_EDGE('',*,*,#15026,.F.); -#9478=ORIENTED_EDGE('',*,*,#16079,.T.); -#9479=ORIENTED_EDGE('',*,*,#14782,.F.); -#9480=ORIENTED_EDGE('',*,*,#16080,.F.); -#9481=ORIENTED_EDGE('',*,*,#15027,.F.); -#9482=ORIENTED_EDGE('',*,*,#16078,.T.); -#9483=ORIENTED_EDGE('',*,*,#14781,.F.); -#9484=ORIENTED_EDGE('',*,*,#14780,.T.); -#9485=ORIENTED_EDGE('',*,*,#16081,.F.); -#9486=ORIENTED_EDGE('',*,*,#15028,.T.); -#9487=ORIENTED_EDGE('',*,*,#16080,.T.); -#9488=ORIENTED_EDGE('',*,*,#16082,.F.); -#9489=ORIENTED_EDGE('',*,*,#15029,.F.); -#9490=ORIENTED_EDGE('',*,*,#16081,.T.); -#9491=ORIENTED_EDGE('',*,*,#14779,.F.); -#9492=ORIENTED_EDGE('',*,*,#16083,.F.); -#9493=ORIENTED_EDGE('',*,*,#15030,.F.); -#9494=ORIENTED_EDGE('',*,*,#16082,.T.); -#9495=ORIENTED_EDGE('',*,*,#14778,.F.); -#9496=ORIENTED_EDGE('',*,*,#15217,.F.); -#9497=ORIENTED_EDGE('',*,*,#15031,.F.); -#9498=ORIENTED_EDGE('',*,*,#16083,.T.); -#9499=ORIENTED_EDGE('',*,*,#14777,.F.); -#9500=ORIENTED_EDGE('',*,*,#16084,.F.); -#9501=ORIENTED_EDGE('',*,*,#15033,.F.); -#9502=ORIENTED_EDGE('',*,*,#15216,.T.); -#9503=ORIENTED_EDGE('',*,*,#14775,.F.); -#9504=ORIENTED_EDGE('',*,*,#16085,.F.); -#9505=ORIENTED_EDGE('',*,*,#15034,.F.); -#9506=ORIENTED_EDGE('',*,*,#16084,.T.); -#9507=ORIENTED_EDGE('',*,*,#14774,.F.); -#9508=ORIENTED_EDGE('',*,*,#16086,.F.); -#9509=ORIENTED_EDGE('',*,*,#15035,.F.); -#9510=ORIENTED_EDGE('',*,*,#16085,.T.); -#9511=ORIENTED_EDGE('',*,*,#14773,.F.); -#9512=ORIENTED_EDGE('',*,*,#14772,.T.); -#9513=ORIENTED_EDGE('',*,*,#16087,.F.); -#9514=ORIENTED_EDGE('',*,*,#15036,.T.); -#9515=ORIENTED_EDGE('',*,*,#16086,.T.); -#9516=ORIENTED_EDGE('',*,*,#16088,.F.); -#9517=ORIENTED_EDGE('',*,*,#15037,.F.); -#9518=ORIENTED_EDGE('',*,*,#16087,.T.); -#9519=ORIENTED_EDGE('',*,*,#14771,.F.); -#9520=ORIENTED_EDGE('',*,*,#16089,.F.); -#9521=ORIENTED_EDGE('',*,*,#15038,.F.); -#9522=ORIENTED_EDGE('',*,*,#16088,.T.); -#9523=ORIENTED_EDGE('',*,*,#14770,.F.); -#9524=ORIENTED_EDGE('',*,*,#16079,.F.); -#9525=ORIENTED_EDGE('',*,*,#15853,.T.); -#9526=ORIENTED_EDGE('',*,*,#16077,.T.); -#9527=ORIENTED_EDGE('',*,*,#15647,.F.); -#9528=ORIENTED_EDGE('',*,*,#16090,.F.); -#9529=ORIENTED_EDGE('',*,*,#15848,.T.); -#9530=ORIENTED_EDGE('',*,*,#16089,.T.); -#9531=ORIENTED_EDGE('',*,*,#15646,.F.); -#9532=ORIENTED_EDGE('',*,*,#15645,.T.); -#9533=ORIENTED_EDGE('',*,*,#15746,.F.); -#9534=ORIENTED_EDGE('',*,*,#16091,.F.); -#9535=ORIENTED_EDGE('',*,*,#15849,.F.); -#9536=ORIENTED_EDGE('',*,*,#16090,.T.); -#9537=ORIENTED_EDGE('',*,*,#15850,.F.); -#9538=ORIENTED_EDGE('',*,*,#16091,.T.); -#9539=ORIENTED_EDGE('',*,*,#15745,.F.); -#9540=ORIENTED_EDGE('',*,*,#16092,.F.); -#9541=ORIENTED_EDGE('',*,*,#15851,.F.); -#9542=ORIENTED_EDGE('',*,*,#15743,.F.); -#9543=ORIENTED_EDGE('',*,*,#15643,.T.); -#9544=ORIENTED_EDGE('',*,*,#16093,.F.); -#9545=ORIENTED_EDGE('',*,*,#15852,.F.); -#9546=ORIENTED_EDGE('',*,*,#16092,.T.); -#9547=ORIENTED_EDGE('',*,*,#15742,.F.); -#9548=ORIENTED_EDGE('',*,*,#16094,.F.); -#9549=ORIENTED_EDGE('',*,*,#15040,.F.); -#9550=ORIENTED_EDGE('',*,*,#16095,.T.); -#9551=ORIENTED_EDGE('',*,*,#14768,.F.); -#9552=ORIENTED_EDGE('',*,*,#16096,.F.); -#9553=ORIENTED_EDGE('',*,*,#15041,.F.); -#9554=ORIENTED_EDGE('',*,*,#16094,.T.); -#9555=ORIENTED_EDGE('',*,*,#14767,.F.); -#9556=ORIENTED_EDGE('',*,*,#14766,.T.); -#9557=ORIENTED_EDGE('',*,*,#16097,.F.); -#9558=ORIENTED_EDGE('',*,*,#15042,.T.); -#9559=ORIENTED_EDGE('',*,*,#16096,.T.); -#9560=ORIENTED_EDGE('',*,*,#16098,.F.); -#9561=ORIENTED_EDGE('',*,*,#15043,.F.); -#9562=ORIENTED_EDGE('',*,*,#16097,.T.); -#9563=ORIENTED_EDGE('',*,*,#14765,.F.); -#9564=ORIENTED_EDGE('',*,*,#16099,.F.); -#9565=ORIENTED_EDGE('',*,*,#15044,.F.); -#9566=ORIENTED_EDGE('',*,*,#16098,.T.); -#9567=ORIENTED_EDGE('',*,*,#14764,.F.); -#9568=ORIENTED_EDGE('',*,*,#15215,.F.); -#9569=ORIENTED_EDGE('',*,*,#15045,.F.); -#9570=ORIENTED_EDGE('',*,*,#16099,.T.); -#9571=ORIENTED_EDGE('',*,*,#14763,.F.); -#9572=ORIENTED_EDGE('',*,*,#16100,.F.); -#9573=ORIENTED_EDGE('',*,*,#15047,.F.); -#9574=ORIENTED_EDGE('',*,*,#15214,.T.); -#9575=ORIENTED_EDGE('',*,*,#14761,.F.); -#9576=ORIENTED_EDGE('',*,*,#16101,.F.); -#9577=ORIENTED_EDGE('',*,*,#15048,.F.); -#9578=ORIENTED_EDGE('',*,*,#16100,.T.); -#9579=ORIENTED_EDGE('',*,*,#14760,.F.); -#9580=ORIENTED_EDGE('',*,*,#16102,.F.); -#9581=ORIENTED_EDGE('',*,*,#15049,.F.); -#9582=ORIENTED_EDGE('',*,*,#16101,.T.); -#9583=ORIENTED_EDGE('',*,*,#14759,.F.); -#9584=ORIENTED_EDGE('',*,*,#14758,.T.); -#9585=ORIENTED_EDGE('',*,*,#16103,.F.); -#9586=ORIENTED_EDGE('',*,*,#15050,.T.); -#9587=ORIENTED_EDGE('',*,*,#16102,.T.); -#9588=ORIENTED_EDGE('',*,*,#16104,.F.); -#9589=ORIENTED_EDGE('',*,*,#15051,.F.); -#9590=ORIENTED_EDGE('',*,*,#16103,.T.); -#9591=ORIENTED_EDGE('',*,*,#14757,.F.); -#9592=ORIENTED_EDGE('',*,*,#16105,.F.); -#9593=ORIENTED_EDGE('',*,*,#15052,.F.); -#9594=ORIENTED_EDGE('',*,*,#16104,.T.); -#9595=ORIENTED_EDGE('',*,*,#14756,.F.); -#9596=ORIENTED_EDGE('',*,*,#16095,.F.); -#9597=ORIENTED_EDGE('',*,*,#15847,.T.); -#9598=ORIENTED_EDGE('',*,*,#16093,.T.); -#9599=ORIENTED_EDGE('',*,*,#15642,.F.); -#9600=ORIENTED_EDGE('',*,*,#16106,.F.); -#9601=ORIENTED_EDGE('',*,*,#15842,.T.); -#9602=ORIENTED_EDGE('',*,*,#16105,.T.); -#9603=ORIENTED_EDGE('',*,*,#15641,.F.); -#9604=ORIENTED_EDGE('',*,*,#15640,.T.); -#9605=ORIENTED_EDGE('',*,*,#15741,.F.); -#9606=ORIENTED_EDGE('',*,*,#16107,.F.); -#9607=ORIENTED_EDGE('',*,*,#15843,.F.); -#9608=ORIENTED_EDGE('',*,*,#16106,.T.); -#9609=ORIENTED_EDGE('',*,*,#15844,.F.); -#9610=ORIENTED_EDGE('',*,*,#16107,.T.); -#9611=ORIENTED_EDGE('',*,*,#15740,.F.); -#9612=ORIENTED_EDGE('',*,*,#16108,.F.); -#9613=ORIENTED_EDGE('',*,*,#15845,.F.); -#9614=ORIENTED_EDGE('',*,*,#15738,.F.); -#9615=ORIENTED_EDGE('',*,*,#15638,.T.); -#9616=ORIENTED_EDGE('',*,*,#16109,.F.); -#9617=ORIENTED_EDGE('',*,*,#15846,.F.); -#9618=ORIENTED_EDGE('',*,*,#16108,.T.); -#9619=ORIENTED_EDGE('',*,*,#15737,.F.); -#9620=ORIENTED_EDGE('',*,*,#16110,.F.); -#9621=ORIENTED_EDGE('',*,*,#15054,.F.); -#9622=ORIENTED_EDGE('',*,*,#16111,.T.); -#9623=ORIENTED_EDGE('',*,*,#14754,.F.); -#9624=ORIENTED_EDGE('',*,*,#16112,.F.); -#9625=ORIENTED_EDGE('',*,*,#15055,.F.); -#9626=ORIENTED_EDGE('',*,*,#16110,.T.); -#9627=ORIENTED_EDGE('',*,*,#14753,.F.); -#9628=ORIENTED_EDGE('',*,*,#14752,.T.); -#9629=ORIENTED_EDGE('',*,*,#16113,.F.); -#9630=ORIENTED_EDGE('',*,*,#15056,.T.); -#9631=ORIENTED_EDGE('',*,*,#16112,.T.); -#9632=ORIENTED_EDGE('',*,*,#16114,.F.); -#9633=ORIENTED_EDGE('',*,*,#15057,.F.); -#9634=ORIENTED_EDGE('',*,*,#16113,.T.); -#9635=ORIENTED_EDGE('',*,*,#14751,.F.); -#9636=ORIENTED_EDGE('',*,*,#16115,.F.); -#9637=ORIENTED_EDGE('',*,*,#15058,.F.); -#9638=ORIENTED_EDGE('',*,*,#16114,.T.); -#9639=ORIENTED_EDGE('',*,*,#14750,.F.); -#9640=ORIENTED_EDGE('',*,*,#15213,.F.); -#9641=ORIENTED_EDGE('',*,*,#15059,.F.); -#9642=ORIENTED_EDGE('',*,*,#16115,.T.); -#9643=ORIENTED_EDGE('',*,*,#14749,.F.); -#9644=ORIENTED_EDGE('',*,*,#16116,.F.); -#9645=ORIENTED_EDGE('',*,*,#15061,.F.); -#9646=ORIENTED_EDGE('',*,*,#15212,.T.); -#9647=ORIENTED_EDGE('',*,*,#14747,.F.); -#9648=ORIENTED_EDGE('',*,*,#16117,.F.); -#9649=ORIENTED_EDGE('',*,*,#15062,.F.); -#9650=ORIENTED_EDGE('',*,*,#16116,.T.); -#9651=ORIENTED_EDGE('',*,*,#14746,.F.); -#9652=ORIENTED_EDGE('',*,*,#16118,.F.); -#9653=ORIENTED_EDGE('',*,*,#15063,.F.); -#9654=ORIENTED_EDGE('',*,*,#16117,.T.); -#9655=ORIENTED_EDGE('',*,*,#14745,.F.); -#9656=ORIENTED_EDGE('',*,*,#14744,.T.); -#9657=ORIENTED_EDGE('',*,*,#16119,.F.); -#9658=ORIENTED_EDGE('',*,*,#15064,.T.); -#9659=ORIENTED_EDGE('',*,*,#16118,.T.); -#9660=ORIENTED_EDGE('',*,*,#16120,.F.); -#9661=ORIENTED_EDGE('',*,*,#15065,.F.); -#9662=ORIENTED_EDGE('',*,*,#16119,.T.); -#9663=ORIENTED_EDGE('',*,*,#14743,.F.); -#9664=ORIENTED_EDGE('',*,*,#16121,.F.); -#9665=ORIENTED_EDGE('',*,*,#15066,.F.); -#9666=ORIENTED_EDGE('',*,*,#16120,.T.); -#9667=ORIENTED_EDGE('',*,*,#14742,.F.); -#9668=ORIENTED_EDGE('',*,*,#16111,.F.); -#9669=ORIENTED_EDGE('',*,*,#15841,.T.); -#9670=ORIENTED_EDGE('',*,*,#16109,.T.); -#9671=ORIENTED_EDGE('',*,*,#15637,.F.); -#9672=ORIENTED_EDGE('',*,*,#16122,.F.); -#9673=ORIENTED_EDGE('',*,*,#15836,.T.); -#9674=ORIENTED_EDGE('',*,*,#16121,.T.); -#9675=ORIENTED_EDGE('',*,*,#15636,.F.); -#9676=ORIENTED_EDGE('',*,*,#15635,.T.); -#9677=ORIENTED_EDGE('',*,*,#15736,.F.); -#9678=ORIENTED_EDGE('',*,*,#16123,.F.); -#9679=ORIENTED_EDGE('',*,*,#15837,.F.); -#9680=ORIENTED_EDGE('',*,*,#16122,.T.); -#9681=ORIENTED_EDGE('',*,*,#15838,.F.); -#9682=ORIENTED_EDGE('',*,*,#16123,.T.); -#9683=ORIENTED_EDGE('',*,*,#15735,.F.); -#9684=ORIENTED_EDGE('',*,*,#16124,.F.); -#9685=ORIENTED_EDGE('',*,*,#15839,.F.); -#9686=ORIENTED_EDGE('',*,*,#15733,.F.); -#9687=ORIENTED_EDGE('',*,*,#15633,.T.); -#9688=ORIENTED_EDGE('',*,*,#16125,.F.); -#9689=ORIENTED_EDGE('',*,*,#15840,.F.); -#9690=ORIENTED_EDGE('',*,*,#16124,.T.); -#9691=ORIENTED_EDGE('',*,*,#15732,.F.); -#9692=ORIENTED_EDGE('',*,*,#16126,.F.); -#9693=ORIENTED_EDGE('',*,*,#15068,.F.); -#9694=ORIENTED_EDGE('',*,*,#16127,.T.); -#9695=ORIENTED_EDGE('',*,*,#14740,.F.); -#9696=ORIENTED_EDGE('',*,*,#16128,.F.); -#9697=ORIENTED_EDGE('',*,*,#15069,.F.); -#9698=ORIENTED_EDGE('',*,*,#16126,.T.); -#9699=ORIENTED_EDGE('',*,*,#14739,.F.); -#9700=ORIENTED_EDGE('',*,*,#14738,.T.); -#9701=ORIENTED_EDGE('',*,*,#16129,.F.); -#9702=ORIENTED_EDGE('',*,*,#15070,.T.); -#9703=ORIENTED_EDGE('',*,*,#16128,.T.); -#9704=ORIENTED_EDGE('',*,*,#16130,.F.); -#9705=ORIENTED_EDGE('',*,*,#15071,.F.); -#9706=ORIENTED_EDGE('',*,*,#16129,.T.); -#9707=ORIENTED_EDGE('',*,*,#14737,.F.); -#9708=ORIENTED_EDGE('',*,*,#16131,.F.); -#9709=ORIENTED_EDGE('',*,*,#15072,.F.); -#9710=ORIENTED_EDGE('',*,*,#16130,.T.); -#9711=ORIENTED_EDGE('',*,*,#14736,.F.); -#9712=ORIENTED_EDGE('',*,*,#15211,.F.); -#9713=ORIENTED_EDGE('',*,*,#15073,.F.); -#9714=ORIENTED_EDGE('',*,*,#16131,.T.); -#9715=ORIENTED_EDGE('',*,*,#14735,.F.); -#9716=ORIENTED_EDGE('',*,*,#16132,.F.); -#9717=ORIENTED_EDGE('',*,*,#15075,.F.); -#9718=ORIENTED_EDGE('',*,*,#15210,.T.); -#9719=ORIENTED_EDGE('',*,*,#14733,.F.); -#9720=ORIENTED_EDGE('',*,*,#16133,.F.); -#9721=ORIENTED_EDGE('',*,*,#15076,.F.); -#9722=ORIENTED_EDGE('',*,*,#16132,.T.); -#9723=ORIENTED_EDGE('',*,*,#14732,.F.); -#9724=ORIENTED_EDGE('',*,*,#16134,.F.); -#9725=ORIENTED_EDGE('',*,*,#15077,.F.); -#9726=ORIENTED_EDGE('',*,*,#16133,.T.); -#9727=ORIENTED_EDGE('',*,*,#14731,.F.); -#9728=ORIENTED_EDGE('',*,*,#14730,.T.); -#9729=ORIENTED_EDGE('',*,*,#16135,.F.); -#9730=ORIENTED_EDGE('',*,*,#15078,.T.); -#9731=ORIENTED_EDGE('',*,*,#16134,.T.); -#9732=ORIENTED_EDGE('',*,*,#16136,.F.); -#9733=ORIENTED_EDGE('',*,*,#15079,.F.); -#9734=ORIENTED_EDGE('',*,*,#16135,.T.); -#9735=ORIENTED_EDGE('',*,*,#14729,.F.); -#9736=ORIENTED_EDGE('',*,*,#16137,.F.); -#9737=ORIENTED_EDGE('',*,*,#15080,.F.); -#9738=ORIENTED_EDGE('',*,*,#16136,.T.); -#9739=ORIENTED_EDGE('',*,*,#14728,.F.); -#9740=ORIENTED_EDGE('',*,*,#16127,.F.); -#9741=ORIENTED_EDGE('',*,*,#15835,.T.); -#9742=ORIENTED_EDGE('',*,*,#16125,.T.); -#9743=ORIENTED_EDGE('',*,*,#15632,.F.); -#9744=ORIENTED_EDGE('',*,*,#16138,.F.); -#9745=ORIENTED_EDGE('',*,*,#15830,.T.); -#9746=ORIENTED_EDGE('',*,*,#16137,.T.); -#9747=ORIENTED_EDGE('',*,*,#15631,.F.); -#9748=ORIENTED_EDGE('',*,*,#15630,.T.); -#9749=ORIENTED_EDGE('',*,*,#15731,.F.); -#9750=ORIENTED_EDGE('',*,*,#16139,.F.); -#9751=ORIENTED_EDGE('',*,*,#15831,.F.); -#9752=ORIENTED_EDGE('',*,*,#16138,.T.); -#9753=ORIENTED_EDGE('',*,*,#15832,.F.); -#9754=ORIENTED_EDGE('',*,*,#16139,.T.); -#9755=ORIENTED_EDGE('',*,*,#15730,.F.); -#9756=ORIENTED_EDGE('',*,*,#16140,.F.); -#9757=ORIENTED_EDGE('',*,*,#15833,.F.); -#9758=ORIENTED_EDGE('',*,*,#15728,.F.); -#9759=ORIENTED_EDGE('',*,*,#15628,.T.); -#9760=ORIENTED_EDGE('',*,*,#16141,.F.); -#9761=ORIENTED_EDGE('',*,*,#15834,.F.); -#9762=ORIENTED_EDGE('',*,*,#16140,.T.); -#9763=ORIENTED_EDGE('',*,*,#15727,.F.); -#9764=ORIENTED_EDGE('',*,*,#16142,.F.); -#9765=ORIENTED_EDGE('',*,*,#15082,.F.); -#9766=ORIENTED_EDGE('',*,*,#16143,.T.); -#9767=ORIENTED_EDGE('',*,*,#14726,.F.); -#9768=ORIENTED_EDGE('',*,*,#16144,.F.); -#9769=ORIENTED_EDGE('',*,*,#15083,.F.); -#9770=ORIENTED_EDGE('',*,*,#16142,.T.); -#9771=ORIENTED_EDGE('',*,*,#14725,.F.); -#9772=ORIENTED_EDGE('',*,*,#14724,.T.); -#9773=ORIENTED_EDGE('',*,*,#16145,.F.); -#9774=ORIENTED_EDGE('',*,*,#15084,.T.); -#9775=ORIENTED_EDGE('',*,*,#16144,.T.); -#9776=ORIENTED_EDGE('',*,*,#16146,.F.); -#9777=ORIENTED_EDGE('',*,*,#15085,.F.); -#9778=ORIENTED_EDGE('',*,*,#16145,.T.); -#9779=ORIENTED_EDGE('',*,*,#14723,.F.); -#9780=ORIENTED_EDGE('',*,*,#16147,.F.); -#9781=ORIENTED_EDGE('',*,*,#15086,.F.); -#9782=ORIENTED_EDGE('',*,*,#16146,.T.); -#9783=ORIENTED_EDGE('',*,*,#14722,.F.); -#9784=ORIENTED_EDGE('',*,*,#15209,.F.); -#9785=ORIENTED_EDGE('',*,*,#15087,.F.); -#9786=ORIENTED_EDGE('',*,*,#16147,.T.); -#9787=ORIENTED_EDGE('',*,*,#14721,.F.); -#9788=ORIENTED_EDGE('',*,*,#16148,.F.); -#9789=ORIENTED_EDGE('',*,*,#15089,.F.); -#9790=ORIENTED_EDGE('',*,*,#15208,.T.); -#9791=ORIENTED_EDGE('',*,*,#14719,.F.); -#9792=ORIENTED_EDGE('',*,*,#16149,.F.); -#9793=ORIENTED_EDGE('',*,*,#15090,.F.); -#9794=ORIENTED_EDGE('',*,*,#16148,.T.); -#9795=ORIENTED_EDGE('',*,*,#14718,.F.); -#9796=ORIENTED_EDGE('',*,*,#16150,.F.); -#9797=ORIENTED_EDGE('',*,*,#15091,.F.); -#9798=ORIENTED_EDGE('',*,*,#16149,.T.); -#9799=ORIENTED_EDGE('',*,*,#14717,.F.); -#9800=ORIENTED_EDGE('',*,*,#14716,.T.); -#9801=ORIENTED_EDGE('',*,*,#16151,.F.); -#9802=ORIENTED_EDGE('',*,*,#15092,.T.); -#9803=ORIENTED_EDGE('',*,*,#16150,.T.); -#9804=ORIENTED_EDGE('',*,*,#16152,.F.); -#9805=ORIENTED_EDGE('',*,*,#15093,.F.); -#9806=ORIENTED_EDGE('',*,*,#16151,.T.); -#9807=ORIENTED_EDGE('',*,*,#14715,.F.); -#9808=ORIENTED_EDGE('',*,*,#16153,.F.); -#9809=ORIENTED_EDGE('',*,*,#15094,.F.); -#9810=ORIENTED_EDGE('',*,*,#16152,.T.); -#9811=ORIENTED_EDGE('',*,*,#14714,.F.); -#9812=ORIENTED_EDGE('',*,*,#16143,.F.); -#9813=ORIENTED_EDGE('',*,*,#15829,.T.); -#9814=ORIENTED_EDGE('',*,*,#16141,.T.); -#9815=ORIENTED_EDGE('',*,*,#15627,.F.); -#9816=ORIENTED_EDGE('',*,*,#16154,.F.); -#9817=ORIENTED_EDGE('',*,*,#15824,.T.); -#9818=ORIENTED_EDGE('',*,*,#16153,.T.); -#9819=ORIENTED_EDGE('',*,*,#15626,.F.); -#9820=ORIENTED_EDGE('',*,*,#15625,.T.); -#9821=ORIENTED_EDGE('',*,*,#15726,.F.); -#9822=ORIENTED_EDGE('',*,*,#16155,.F.); -#9823=ORIENTED_EDGE('',*,*,#15825,.F.); -#9824=ORIENTED_EDGE('',*,*,#16154,.T.); -#9825=ORIENTED_EDGE('',*,*,#15826,.F.); -#9826=ORIENTED_EDGE('',*,*,#16155,.T.); -#9827=ORIENTED_EDGE('',*,*,#15725,.F.); -#9828=ORIENTED_EDGE('',*,*,#16156,.F.); -#9829=ORIENTED_EDGE('',*,*,#15827,.F.); -#9830=ORIENTED_EDGE('',*,*,#15723,.F.); -#9831=ORIENTED_EDGE('',*,*,#15623,.T.); -#9832=ORIENTED_EDGE('',*,*,#16157,.F.); -#9833=ORIENTED_EDGE('',*,*,#15828,.F.); -#9834=ORIENTED_EDGE('',*,*,#16156,.T.); -#9835=ORIENTED_EDGE('',*,*,#15722,.F.); -#9836=ORIENTED_EDGE('',*,*,#16158,.F.); -#9837=ORIENTED_EDGE('',*,*,#15096,.F.); -#9838=ORIENTED_EDGE('',*,*,#16159,.T.); -#9839=ORIENTED_EDGE('',*,*,#14712,.F.); -#9840=ORIENTED_EDGE('',*,*,#16160,.F.); -#9841=ORIENTED_EDGE('',*,*,#15097,.F.); -#9842=ORIENTED_EDGE('',*,*,#16158,.T.); -#9843=ORIENTED_EDGE('',*,*,#14711,.F.); -#9844=ORIENTED_EDGE('',*,*,#14710,.T.); -#9845=ORIENTED_EDGE('',*,*,#16161,.F.); -#9846=ORIENTED_EDGE('',*,*,#15098,.T.); -#9847=ORIENTED_EDGE('',*,*,#16160,.T.); -#9848=ORIENTED_EDGE('',*,*,#16162,.F.); -#9849=ORIENTED_EDGE('',*,*,#15099,.F.); -#9850=ORIENTED_EDGE('',*,*,#16161,.T.); -#9851=ORIENTED_EDGE('',*,*,#14709,.F.); -#9852=ORIENTED_EDGE('',*,*,#16163,.F.); -#9853=ORIENTED_EDGE('',*,*,#15100,.F.); -#9854=ORIENTED_EDGE('',*,*,#16162,.T.); -#9855=ORIENTED_EDGE('',*,*,#14708,.F.); -#9856=ORIENTED_EDGE('',*,*,#15207,.F.); -#9857=ORIENTED_EDGE('',*,*,#15101,.F.); -#9858=ORIENTED_EDGE('',*,*,#16163,.T.); -#9859=ORIENTED_EDGE('',*,*,#14707,.F.); -#9860=ORIENTED_EDGE('',*,*,#16164,.F.); -#9861=ORIENTED_EDGE('',*,*,#15103,.F.); -#9862=ORIENTED_EDGE('',*,*,#15206,.T.); -#9863=ORIENTED_EDGE('',*,*,#14705,.F.); -#9864=ORIENTED_EDGE('',*,*,#16165,.F.); -#9865=ORIENTED_EDGE('',*,*,#15104,.F.); -#9866=ORIENTED_EDGE('',*,*,#16164,.T.); -#9867=ORIENTED_EDGE('',*,*,#14704,.F.); -#9868=ORIENTED_EDGE('',*,*,#16166,.F.); -#9869=ORIENTED_EDGE('',*,*,#15105,.F.); -#9870=ORIENTED_EDGE('',*,*,#16165,.T.); -#9871=ORIENTED_EDGE('',*,*,#14703,.F.); -#9872=ORIENTED_EDGE('',*,*,#14702,.T.); -#9873=ORIENTED_EDGE('',*,*,#16167,.F.); -#9874=ORIENTED_EDGE('',*,*,#15106,.T.); -#9875=ORIENTED_EDGE('',*,*,#16166,.T.); -#9876=ORIENTED_EDGE('',*,*,#16168,.F.); -#9877=ORIENTED_EDGE('',*,*,#15107,.F.); -#9878=ORIENTED_EDGE('',*,*,#16167,.T.); -#9879=ORIENTED_EDGE('',*,*,#14701,.F.); -#9880=ORIENTED_EDGE('',*,*,#16169,.F.); -#9881=ORIENTED_EDGE('',*,*,#15108,.F.); -#9882=ORIENTED_EDGE('',*,*,#16168,.T.); -#9883=ORIENTED_EDGE('',*,*,#14700,.F.); -#9884=ORIENTED_EDGE('',*,*,#16159,.F.); -#9885=ORIENTED_EDGE('',*,*,#15823,.T.); -#9886=ORIENTED_EDGE('',*,*,#16157,.T.); -#9887=ORIENTED_EDGE('',*,*,#15622,.F.); -#9888=ORIENTED_EDGE('',*,*,#16170,.F.); -#9889=ORIENTED_EDGE('',*,*,#15818,.T.); -#9890=ORIENTED_EDGE('',*,*,#16169,.T.); -#9891=ORIENTED_EDGE('',*,*,#15621,.F.); -#9892=ORIENTED_EDGE('',*,*,#15620,.T.); -#9893=ORIENTED_EDGE('',*,*,#15721,.F.); -#9894=ORIENTED_EDGE('',*,*,#16171,.F.); -#9895=ORIENTED_EDGE('',*,*,#15819,.F.); -#9896=ORIENTED_EDGE('',*,*,#16170,.T.); -#9897=ORIENTED_EDGE('',*,*,#15820,.F.); -#9898=ORIENTED_EDGE('',*,*,#16171,.T.); -#9899=ORIENTED_EDGE('',*,*,#15720,.F.); -#9900=ORIENTED_EDGE('',*,*,#16172,.F.); -#9901=ORIENTED_EDGE('',*,*,#15821,.F.); -#9902=ORIENTED_EDGE('',*,*,#15718,.F.); -#9903=ORIENTED_EDGE('',*,*,#15618,.T.); -#9904=ORIENTED_EDGE('',*,*,#16173,.F.); -#9905=ORIENTED_EDGE('',*,*,#15822,.F.); -#9906=ORIENTED_EDGE('',*,*,#16172,.T.); -#9907=ORIENTED_EDGE('',*,*,#15717,.F.); -#9908=ORIENTED_EDGE('',*,*,#16174,.F.); -#9909=ORIENTED_EDGE('',*,*,#15110,.F.); -#9910=ORIENTED_EDGE('',*,*,#16175,.T.); -#9911=ORIENTED_EDGE('',*,*,#14698,.F.); -#9912=ORIENTED_EDGE('',*,*,#16176,.F.); -#9913=ORIENTED_EDGE('',*,*,#15111,.F.); -#9914=ORIENTED_EDGE('',*,*,#16174,.T.); -#9915=ORIENTED_EDGE('',*,*,#14697,.F.); -#9916=ORIENTED_EDGE('',*,*,#14696,.T.); -#9917=ORIENTED_EDGE('',*,*,#16177,.F.); -#9918=ORIENTED_EDGE('',*,*,#15112,.T.); -#9919=ORIENTED_EDGE('',*,*,#16176,.T.); -#9920=ORIENTED_EDGE('',*,*,#16178,.F.); -#9921=ORIENTED_EDGE('',*,*,#15113,.F.); -#9922=ORIENTED_EDGE('',*,*,#16177,.T.); -#9923=ORIENTED_EDGE('',*,*,#14695,.F.); -#9924=ORIENTED_EDGE('',*,*,#16179,.F.); -#9925=ORIENTED_EDGE('',*,*,#15114,.F.); -#9926=ORIENTED_EDGE('',*,*,#16178,.T.); -#9927=ORIENTED_EDGE('',*,*,#14694,.F.); -#9928=ORIENTED_EDGE('',*,*,#15205,.F.); -#9929=ORIENTED_EDGE('',*,*,#15115,.F.); -#9930=ORIENTED_EDGE('',*,*,#16179,.T.); -#9931=ORIENTED_EDGE('',*,*,#14693,.F.); -#9932=ORIENTED_EDGE('',*,*,#16180,.F.); -#9933=ORIENTED_EDGE('',*,*,#15117,.F.); -#9934=ORIENTED_EDGE('',*,*,#15204,.T.); -#9935=ORIENTED_EDGE('',*,*,#14691,.F.); -#9936=ORIENTED_EDGE('',*,*,#16181,.F.); -#9937=ORIENTED_EDGE('',*,*,#15118,.F.); -#9938=ORIENTED_EDGE('',*,*,#16180,.T.); -#9939=ORIENTED_EDGE('',*,*,#14690,.F.); -#9940=ORIENTED_EDGE('',*,*,#16182,.F.); -#9941=ORIENTED_EDGE('',*,*,#15119,.F.); -#9942=ORIENTED_EDGE('',*,*,#16181,.T.); -#9943=ORIENTED_EDGE('',*,*,#14689,.F.); -#9944=ORIENTED_EDGE('',*,*,#14688,.T.); -#9945=ORIENTED_EDGE('',*,*,#16183,.F.); -#9946=ORIENTED_EDGE('',*,*,#15120,.T.); -#9947=ORIENTED_EDGE('',*,*,#16182,.T.); -#9948=ORIENTED_EDGE('',*,*,#16184,.F.); -#9949=ORIENTED_EDGE('',*,*,#15121,.F.); -#9950=ORIENTED_EDGE('',*,*,#16183,.T.); -#9951=ORIENTED_EDGE('',*,*,#14687,.F.); -#9952=ORIENTED_EDGE('',*,*,#16185,.F.); -#9953=ORIENTED_EDGE('',*,*,#15122,.F.); -#9954=ORIENTED_EDGE('',*,*,#16184,.T.); -#9955=ORIENTED_EDGE('',*,*,#14686,.F.); -#9956=ORIENTED_EDGE('',*,*,#16175,.F.); -#9957=ORIENTED_EDGE('',*,*,#15817,.T.); -#9958=ORIENTED_EDGE('',*,*,#16173,.T.); -#9959=ORIENTED_EDGE('',*,*,#15617,.F.); -#9960=ORIENTED_EDGE('',*,*,#16186,.F.); -#9961=ORIENTED_EDGE('',*,*,#15812,.T.); -#9962=ORIENTED_EDGE('',*,*,#16185,.T.); -#9963=ORIENTED_EDGE('',*,*,#15616,.F.); -#9964=ORIENTED_EDGE('',*,*,#15615,.T.); -#9965=ORIENTED_EDGE('',*,*,#15716,.F.); -#9966=ORIENTED_EDGE('',*,*,#16187,.F.); -#9967=ORIENTED_EDGE('',*,*,#15813,.F.); -#9968=ORIENTED_EDGE('',*,*,#16186,.T.); -#9969=ORIENTED_EDGE('',*,*,#15814,.F.); -#9970=ORIENTED_EDGE('',*,*,#16187,.T.); -#9971=ORIENTED_EDGE('',*,*,#15715,.F.); -#9972=ORIENTED_EDGE('',*,*,#16188,.F.); -#9973=ORIENTED_EDGE('',*,*,#15815,.F.); -#9974=ORIENTED_EDGE('',*,*,#15713,.F.); -#9975=ORIENTED_EDGE('',*,*,#15613,.T.); -#9976=ORIENTED_EDGE('',*,*,#16189,.F.); -#9977=ORIENTED_EDGE('',*,*,#15816,.F.); -#9978=ORIENTED_EDGE('',*,*,#16188,.T.); -#9979=ORIENTED_EDGE('',*,*,#15712,.F.); -#9980=ORIENTED_EDGE('',*,*,#16190,.F.); -#9981=ORIENTED_EDGE('',*,*,#15124,.F.); -#9982=ORIENTED_EDGE('',*,*,#16191,.T.); -#9983=ORIENTED_EDGE('',*,*,#14684,.F.); -#9984=ORIENTED_EDGE('',*,*,#16192,.F.); -#9985=ORIENTED_EDGE('',*,*,#15125,.F.); -#9986=ORIENTED_EDGE('',*,*,#16190,.T.); -#9987=ORIENTED_EDGE('',*,*,#14683,.F.); -#9988=ORIENTED_EDGE('',*,*,#14682,.T.); -#9989=ORIENTED_EDGE('',*,*,#16193,.F.); -#9990=ORIENTED_EDGE('',*,*,#15126,.T.); -#9991=ORIENTED_EDGE('',*,*,#16192,.T.); -#9992=ORIENTED_EDGE('',*,*,#16194,.F.); -#9993=ORIENTED_EDGE('',*,*,#15127,.F.); -#9994=ORIENTED_EDGE('',*,*,#16193,.T.); -#9995=ORIENTED_EDGE('',*,*,#14681,.F.); -#9996=ORIENTED_EDGE('',*,*,#16195,.F.); -#9997=ORIENTED_EDGE('',*,*,#15128,.F.); -#9998=ORIENTED_EDGE('',*,*,#16194,.T.); -#9999=ORIENTED_EDGE('',*,*,#14680,.F.); -#10000=ORIENTED_EDGE('',*,*,#15203,.F.); -#10001=ORIENTED_EDGE('',*,*,#15129,.F.); -#10002=ORIENTED_EDGE('',*,*,#16195,.T.); -#10003=ORIENTED_EDGE('',*,*,#14679,.F.); -#10004=ORIENTED_EDGE('',*,*,#16196,.F.); -#10005=ORIENTED_EDGE('',*,*,#15131,.F.); -#10006=ORIENTED_EDGE('',*,*,#15202,.T.); -#10007=ORIENTED_EDGE('',*,*,#14677,.F.); -#10008=ORIENTED_EDGE('',*,*,#16197,.F.); -#10009=ORIENTED_EDGE('',*,*,#15132,.F.); -#10010=ORIENTED_EDGE('',*,*,#16196,.T.); -#10011=ORIENTED_EDGE('',*,*,#14676,.F.); -#10012=ORIENTED_EDGE('',*,*,#16198,.F.); -#10013=ORIENTED_EDGE('',*,*,#15133,.F.); -#10014=ORIENTED_EDGE('',*,*,#16197,.T.); -#10015=ORIENTED_EDGE('',*,*,#14675,.F.); -#10016=ORIENTED_EDGE('',*,*,#14674,.T.); -#10017=ORIENTED_EDGE('',*,*,#16199,.F.); -#10018=ORIENTED_EDGE('',*,*,#15134,.T.); -#10019=ORIENTED_EDGE('',*,*,#16198,.T.); -#10020=ORIENTED_EDGE('',*,*,#16200,.F.); -#10021=ORIENTED_EDGE('',*,*,#15135,.F.); -#10022=ORIENTED_EDGE('',*,*,#16199,.T.); -#10023=ORIENTED_EDGE('',*,*,#14673,.F.); -#10024=ORIENTED_EDGE('',*,*,#16201,.F.); -#10025=ORIENTED_EDGE('',*,*,#15136,.F.); -#10026=ORIENTED_EDGE('',*,*,#16200,.T.); -#10027=ORIENTED_EDGE('',*,*,#14672,.F.); -#10028=ORIENTED_EDGE('',*,*,#16191,.F.); -#10029=ORIENTED_EDGE('',*,*,#15811,.T.); -#10030=ORIENTED_EDGE('',*,*,#16189,.T.); -#10031=ORIENTED_EDGE('',*,*,#15612,.F.); -#10032=ORIENTED_EDGE('',*,*,#16202,.F.); -#10033=ORIENTED_EDGE('',*,*,#15806,.T.); -#10034=ORIENTED_EDGE('',*,*,#16201,.T.); -#10035=ORIENTED_EDGE('',*,*,#15611,.F.); -#10036=ORIENTED_EDGE('',*,*,#15610,.T.); -#10037=ORIENTED_EDGE('',*,*,#15711,.F.); -#10038=ORIENTED_EDGE('',*,*,#16203,.F.); -#10039=ORIENTED_EDGE('',*,*,#15807,.F.); -#10040=ORIENTED_EDGE('',*,*,#16202,.T.); -#10041=ORIENTED_EDGE('',*,*,#15808,.F.); -#10042=ORIENTED_EDGE('',*,*,#16203,.T.); -#10043=ORIENTED_EDGE('',*,*,#15710,.F.); -#10044=ORIENTED_EDGE('',*,*,#16204,.F.); -#10045=ORIENTED_EDGE('',*,*,#15809,.F.); -#10046=ORIENTED_EDGE('',*,*,#15708,.F.); -#10047=ORIENTED_EDGE('',*,*,#15608,.T.); -#10048=ORIENTED_EDGE('',*,*,#16205,.F.); -#10049=ORIENTED_EDGE('',*,*,#15810,.F.); -#10050=ORIENTED_EDGE('',*,*,#16204,.T.); -#10051=ORIENTED_EDGE('',*,*,#15707,.F.); -#10052=ORIENTED_EDGE('',*,*,#16206,.F.); -#10053=ORIENTED_EDGE('',*,*,#15138,.F.); -#10054=ORIENTED_EDGE('',*,*,#16207,.T.); -#10055=ORIENTED_EDGE('',*,*,#14670,.F.); -#10056=ORIENTED_EDGE('',*,*,#16208,.F.); -#10057=ORIENTED_EDGE('',*,*,#15139,.F.); -#10058=ORIENTED_EDGE('',*,*,#16206,.T.); -#10059=ORIENTED_EDGE('',*,*,#14669,.F.); -#10060=ORIENTED_EDGE('',*,*,#14668,.T.); -#10061=ORIENTED_EDGE('',*,*,#16209,.F.); -#10062=ORIENTED_EDGE('',*,*,#15140,.T.); -#10063=ORIENTED_EDGE('',*,*,#16208,.T.); -#10064=ORIENTED_EDGE('',*,*,#16210,.F.); -#10065=ORIENTED_EDGE('',*,*,#15141,.F.); -#10066=ORIENTED_EDGE('',*,*,#16209,.T.); -#10067=ORIENTED_EDGE('',*,*,#14667,.F.); -#10068=ORIENTED_EDGE('',*,*,#16211,.F.); -#10069=ORIENTED_EDGE('',*,*,#15142,.F.); -#10070=ORIENTED_EDGE('',*,*,#16210,.T.); -#10071=ORIENTED_EDGE('',*,*,#14666,.F.); -#10072=ORIENTED_EDGE('',*,*,#15201,.F.); -#10073=ORIENTED_EDGE('',*,*,#15143,.F.); -#10074=ORIENTED_EDGE('',*,*,#16211,.T.); -#10075=ORIENTED_EDGE('',*,*,#14665,.F.); -#10076=ORIENTED_EDGE('',*,*,#16212,.F.); -#10077=ORIENTED_EDGE('',*,*,#15145,.F.); -#10078=ORIENTED_EDGE('',*,*,#15200,.T.); -#10079=ORIENTED_EDGE('',*,*,#14663,.F.); -#10080=ORIENTED_EDGE('',*,*,#16213,.F.); -#10081=ORIENTED_EDGE('',*,*,#15146,.F.); -#10082=ORIENTED_EDGE('',*,*,#16212,.T.); -#10083=ORIENTED_EDGE('',*,*,#14662,.F.); -#10084=ORIENTED_EDGE('',*,*,#16214,.F.); -#10085=ORIENTED_EDGE('',*,*,#15147,.F.); -#10086=ORIENTED_EDGE('',*,*,#16213,.T.); -#10087=ORIENTED_EDGE('',*,*,#14661,.F.); -#10088=ORIENTED_EDGE('',*,*,#14660,.T.); -#10089=ORIENTED_EDGE('',*,*,#16215,.F.); -#10090=ORIENTED_EDGE('',*,*,#15148,.T.); -#10091=ORIENTED_EDGE('',*,*,#16214,.T.); -#10092=ORIENTED_EDGE('',*,*,#16216,.F.); -#10093=ORIENTED_EDGE('',*,*,#15149,.F.); -#10094=ORIENTED_EDGE('',*,*,#16215,.T.); -#10095=ORIENTED_EDGE('',*,*,#14659,.F.); -#10096=ORIENTED_EDGE('',*,*,#16217,.F.); -#10097=ORIENTED_EDGE('',*,*,#15150,.F.); -#10098=ORIENTED_EDGE('',*,*,#16216,.T.); -#10099=ORIENTED_EDGE('',*,*,#14658,.F.); -#10100=ORIENTED_EDGE('',*,*,#16207,.F.); -#10101=ORIENTED_EDGE('',*,*,#15805,.T.); -#10102=ORIENTED_EDGE('',*,*,#16205,.T.); -#10103=ORIENTED_EDGE('',*,*,#15607,.F.); -#10104=ORIENTED_EDGE('',*,*,#16218,.F.); -#10105=ORIENTED_EDGE('',*,*,#15800,.T.); -#10106=ORIENTED_EDGE('',*,*,#16217,.T.); -#10107=ORIENTED_EDGE('',*,*,#15606,.F.); -#10108=ORIENTED_EDGE('',*,*,#15605,.T.); -#10109=ORIENTED_EDGE('',*,*,#15706,.F.); -#10110=ORIENTED_EDGE('',*,*,#16219,.F.); -#10111=ORIENTED_EDGE('',*,*,#15801,.F.); -#10112=ORIENTED_EDGE('',*,*,#16218,.T.); -#10113=ORIENTED_EDGE('',*,*,#15802,.F.); -#10114=ORIENTED_EDGE('',*,*,#16219,.T.); -#10115=ORIENTED_EDGE('',*,*,#15705,.F.); -#10116=ORIENTED_EDGE('',*,*,#16220,.F.); -#10117=ORIENTED_EDGE('',*,*,#15803,.F.); -#10118=ORIENTED_EDGE('',*,*,#15703,.F.); -#10119=ORIENTED_EDGE('',*,*,#15603,.T.); -#10120=ORIENTED_EDGE('',*,*,#16221,.F.); -#10121=ORIENTED_EDGE('',*,*,#15804,.F.); -#10122=ORIENTED_EDGE('',*,*,#16220,.T.); -#10123=ORIENTED_EDGE('',*,*,#15702,.F.); -#10124=ORIENTED_EDGE('',*,*,#16222,.F.); -#10125=ORIENTED_EDGE('',*,*,#15152,.F.); -#10126=ORIENTED_EDGE('',*,*,#16223,.T.); -#10127=ORIENTED_EDGE('',*,*,#14656,.F.); -#10128=ORIENTED_EDGE('',*,*,#16224,.F.); -#10129=ORIENTED_EDGE('',*,*,#15153,.F.); -#10130=ORIENTED_EDGE('',*,*,#16222,.T.); -#10131=ORIENTED_EDGE('',*,*,#14655,.F.); -#10132=ORIENTED_EDGE('',*,*,#14654,.T.); -#10133=ORIENTED_EDGE('',*,*,#16225,.F.); -#10134=ORIENTED_EDGE('',*,*,#15154,.T.); -#10135=ORIENTED_EDGE('',*,*,#16224,.T.); -#10136=ORIENTED_EDGE('',*,*,#16226,.F.); -#10137=ORIENTED_EDGE('',*,*,#15155,.F.); -#10138=ORIENTED_EDGE('',*,*,#16225,.T.); -#10139=ORIENTED_EDGE('',*,*,#14653,.F.); -#10140=ORIENTED_EDGE('',*,*,#16227,.F.); -#10141=ORIENTED_EDGE('',*,*,#15156,.F.); -#10142=ORIENTED_EDGE('',*,*,#16226,.T.); -#10143=ORIENTED_EDGE('',*,*,#14652,.F.); -#10144=ORIENTED_EDGE('',*,*,#15199,.F.); -#10145=ORIENTED_EDGE('',*,*,#15157,.F.); -#10146=ORIENTED_EDGE('',*,*,#16227,.T.); -#10147=ORIENTED_EDGE('',*,*,#14651,.F.); -#10148=ORIENTED_EDGE('',*,*,#16228,.F.); -#10149=ORIENTED_EDGE('',*,*,#15159,.F.); -#10150=ORIENTED_EDGE('',*,*,#15198,.T.); -#10151=ORIENTED_EDGE('',*,*,#14649,.F.); -#10152=ORIENTED_EDGE('',*,*,#16229,.F.); -#10153=ORIENTED_EDGE('',*,*,#15160,.F.); -#10154=ORIENTED_EDGE('',*,*,#16228,.T.); -#10155=ORIENTED_EDGE('',*,*,#14648,.F.); -#10156=ORIENTED_EDGE('',*,*,#16230,.F.); -#10157=ORIENTED_EDGE('',*,*,#15161,.F.); -#10158=ORIENTED_EDGE('',*,*,#16229,.T.); -#10159=ORIENTED_EDGE('',*,*,#14647,.F.); -#10160=ORIENTED_EDGE('',*,*,#14646,.T.); -#10161=ORIENTED_EDGE('',*,*,#16231,.F.); -#10162=ORIENTED_EDGE('',*,*,#15162,.T.); -#10163=ORIENTED_EDGE('',*,*,#16230,.T.); -#10164=ORIENTED_EDGE('',*,*,#16232,.F.); -#10165=ORIENTED_EDGE('',*,*,#15163,.F.); -#10166=ORIENTED_EDGE('',*,*,#16231,.T.); -#10167=ORIENTED_EDGE('',*,*,#14645,.F.); -#10168=ORIENTED_EDGE('',*,*,#16233,.F.); -#10169=ORIENTED_EDGE('',*,*,#15164,.F.); -#10170=ORIENTED_EDGE('',*,*,#16232,.T.); -#10171=ORIENTED_EDGE('',*,*,#14644,.F.); -#10172=ORIENTED_EDGE('',*,*,#16223,.F.); -#10173=ORIENTED_EDGE('',*,*,#15799,.T.); -#10174=ORIENTED_EDGE('',*,*,#16221,.T.); -#10175=ORIENTED_EDGE('',*,*,#15602,.F.); -#10176=ORIENTED_EDGE('',*,*,#16234,.F.); -#10177=ORIENTED_EDGE('',*,*,#15794,.T.); -#10178=ORIENTED_EDGE('',*,*,#16233,.T.); -#10179=ORIENTED_EDGE('',*,*,#15601,.F.); -#10180=ORIENTED_EDGE('',*,*,#15600,.T.); -#10181=ORIENTED_EDGE('',*,*,#15701,.F.); -#10182=ORIENTED_EDGE('',*,*,#16235,.F.); -#10183=ORIENTED_EDGE('',*,*,#15795,.F.); -#10184=ORIENTED_EDGE('',*,*,#16234,.T.); -#10185=ORIENTED_EDGE('',*,*,#15796,.F.); -#10186=ORIENTED_EDGE('',*,*,#16235,.T.); -#10187=ORIENTED_EDGE('',*,*,#15700,.F.); -#10188=ORIENTED_EDGE('',*,*,#16236,.F.); -#10189=ORIENTED_EDGE('',*,*,#15797,.F.); -#10190=ORIENTED_EDGE('',*,*,#15698,.F.); -#10191=ORIENTED_EDGE('',*,*,#15598,.T.); -#10192=ORIENTED_EDGE('',*,*,#16237,.F.); -#10193=ORIENTED_EDGE('',*,*,#15798,.F.); -#10194=ORIENTED_EDGE('',*,*,#16236,.T.); -#10195=ORIENTED_EDGE('',*,*,#15697,.F.); -#10196=ORIENTED_EDGE('',*,*,#16238,.F.); -#10197=ORIENTED_EDGE('',*,*,#15166,.F.); -#10198=ORIENTED_EDGE('',*,*,#16239,.T.); -#10199=ORIENTED_EDGE('',*,*,#14642,.F.); -#10200=ORIENTED_EDGE('',*,*,#16240,.F.); -#10201=ORIENTED_EDGE('',*,*,#15167,.F.); -#10202=ORIENTED_EDGE('',*,*,#16238,.T.); -#10203=ORIENTED_EDGE('',*,*,#14641,.F.); -#10204=ORIENTED_EDGE('',*,*,#14640,.T.); -#10205=ORIENTED_EDGE('',*,*,#16241,.F.); -#10206=ORIENTED_EDGE('',*,*,#15168,.T.); -#10207=ORIENTED_EDGE('',*,*,#16240,.T.); -#10208=ORIENTED_EDGE('',*,*,#16242,.F.); -#10209=ORIENTED_EDGE('',*,*,#15169,.F.); -#10210=ORIENTED_EDGE('',*,*,#16241,.T.); -#10211=ORIENTED_EDGE('',*,*,#14639,.F.); -#10212=ORIENTED_EDGE('',*,*,#16243,.F.); -#10213=ORIENTED_EDGE('',*,*,#15170,.F.); -#10214=ORIENTED_EDGE('',*,*,#16242,.T.); -#10215=ORIENTED_EDGE('',*,*,#14638,.F.); -#10216=ORIENTED_EDGE('',*,*,#15197,.F.); -#10217=ORIENTED_EDGE('',*,*,#15171,.F.); -#10218=ORIENTED_EDGE('',*,*,#16243,.T.); -#10219=ORIENTED_EDGE('',*,*,#14637,.F.); -#10220=ORIENTED_EDGE('',*,*,#16244,.F.); -#10221=ORIENTED_EDGE('',*,*,#15173,.F.); -#10222=ORIENTED_EDGE('',*,*,#15196,.T.); -#10223=ORIENTED_EDGE('',*,*,#14635,.F.); -#10224=ORIENTED_EDGE('',*,*,#16245,.F.); -#10225=ORIENTED_EDGE('',*,*,#15174,.F.); -#10226=ORIENTED_EDGE('',*,*,#16244,.T.); -#10227=ORIENTED_EDGE('',*,*,#14634,.F.); -#10228=ORIENTED_EDGE('',*,*,#16246,.F.); -#10229=ORIENTED_EDGE('',*,*,#15175,.F.); -#10230=ORIENTED_EDGE('',*,*,#16245,.T.); -#10231=ORIENTED_EDGE('',*,*,#14633,.F.); -#10232=ORIENTED_EDGE('',*,*,#14632,.T.); -#10233=ORIENTED_EDGE('',*,*,#16247,.F.); -#10234=ORIENTED_EDGE('',*,*,#15176,.T.); -#10235=ORIENTED_EDGE('',*,*,#16246,.T.); -#10236=ORIENTED_EDGE('',*,*,#16248,.F.); -#10237=ORIENTED_EDGE('',*,*,#15177,.F.); -#10238=ORIENTED_EDGE('',*,*,#16247,.T.); -#10239=ORIENTED_EDGE('',*,*,#14631,.F.); -#10240=ORIENTED_EDGE('',*,*,#16249,.F.); -#10241=ORIENTED_EDGE('',*,*,#15178,.F.); -#10242=ORIENTED_EDGE('',*,*,#16248,.T.); -#10243=ORIENTED_EDGE('',*,*,#14630,.F.); -#10244=ORIENTED_EDGE('',*,*,#16239,.F.); -#10245=ORIENTED_EDGE('',*,*,#15793,.T.); -#10246=ORIENTED_EDGE('',*,*,#16237,.T.); -#10247=ORIENTED_EDGE('',*,*,#15597,.F.); -#10248=ORIENTED_EDGE('',*,*,#16250,.F.); -#10249=ORIENTED_EDGE('',*,*,#15788,.T.); -#10250=ORIENTED_EDGE('',*,*,#16249,.T.); -#10251=ORIENTED_EDGE('',*,*,#15596,.F.); -#10252=ORIENTED_EDGE('',*,*,#15595,.T.); -#10253=ORIENTED_EDGE('',*,*,#15696,.F.); -#10254=ORIENTED_EDGE('',*,*,#16251,.F.); -#10255=ORIENTED_EDGE('',*,*,#15789,.F.); -#10256=ORIENTED_EDGE('',*,*,#16250,.T.); -#10257=ORIENTED_EDGE('',*,*,#15790,.F.); -#10258=ORIENTED_EDGE('',*,*,#16251,.T.); -#10259=ORIENTED_EDGE('',*,*,#15695,.F.); -#10260=ORIENTED_EDGE('',*,*,#16252,.F.); -#10261=ORIENTED_EDGE('',*,*,#14346,.F.); -#10262=ORIENTED_EDGE('',*,*,#16253,.T.); -#10263=ORIENTED_EDGE('',*,*,#14326,.F.); -#10264=ORIENTED_EDGE('',*,*,#16254,.F.); -#10265=ORIENTED_EDGE('',*,*,#14347,.F.); -#10266=ORIENTED_EDGE('',*,*,#16252,.T.); -#10267=ORIENTED_EDGE('',*,*,#14325,.F.); -#10268=ORIENTED_EDGE('',*,*,#14324,.T.); -#10269=ORIENTED_EDGE('',*,*,#16255,.F.); -#10270=ORIENTED_EDGE('',*,*,#14348,.T.); -#10271=ORIENTED_EDGE('',*,*,#16254,.T.); -#10272=ORIENTED_EDGE('',*,*,#16256,.F.); -#10273=ORIENTED_EDGE('',*,*,#14349,.F.); -#10274=ORIENTED_EDGE('',*,*,#16255,.T.); -#10275=ORIENTED_EDGE('',*,*,#14323,.F.); -#10276=ORIENTED_EDGE('',*,*,#16257,.F.); -#10277=ORIENTED_EDGE('',*,*,#14350,.F.); -#10278=ORIENTED_EDGE('',*,*,#16256,.T.); -#10279=ORIENTED_EDGE('',*,*,#14322,.F.); -#10280=ORIENTED_EDGE('',*,*,#15234,.F.); -#10281=ORIENTED_EDGE('',*,*,#14351,.F.); -#10282=ORIENTED_EDGE('',*,*,#16257,.T.); -#10283=ORIENTED_EDGE('',*,*,#14321,.F.); -#10284=ORIENTED_EDGE('',*,*,#16258,.F.); -#10285=ORIENTED_EDGE('',*,*,#14353,.F.); -#10286=ORIENTED_EDGE('',*,*,#15235,.T.); -#10287=ORIENTED_EDGE('',*,*,#14319,.F.); -#10288=ORIENTED_EDGE('',*,*,#16259,.F.); -#10289=ORIENTED_EDGE('',*,*,#14354,.F.); -#10290=ORIENTED_EDGE('',*,*,#16258,.T.); -#10291=ORIENTED_EDGE('',*,*,#14318,.F.); -#10292=ORIENTED_EDGE('',*,*,#16260,.F.); -#10293=ORIENTED_EDGE('',*,*,#14355,.F.); -#10294=ORIENTED_EDGE('',*,*,#16259,.T.); -#10295=ORIENTED_EDGE('',*,*,#14317,.F.); -#10296=ORIENTED_EDGE('',*,*,#14316,.T.); -#10297=ORIENTED_EDGE('',*,*,#16261,.F.); -#10298=ORIENTED_EDGE('',*,*,#14356,.T.); -#10299=ORIENTED_EDGE('',*,*,#16260,.T.); -#10300=ORIENTED_EDGE('',*,*,#16262,.F.); -#10301=ORIENTED_EDGE('',*,*,#14357,.F.); -#10302=ORIENTED_EDGE('',*,*,#16261,.T.); -#10303=ORIENTED_EDGE('',*,*,#14315,.F.); -#10304=ORIENTED_EDGE('',*,*,#16263,.F.); -#10305=ORIENTED_EDGE('',*,*,#14358,.F.); -#10306=ORIENTED_EDGE('',*,*,#16262,.T.); -#10307=ORIENTED_EDGE('',*,*,#14314,.F.); -#10308=ORIENTED_EDGE('',*,*,#16264,.F.); -#10309=ORIENTED_EDGE('',*,*,#15587,.T.); -#10310=ORIENTED_EDGE('',*,*,#15913,.F.); -#10311=ORIENTED_EDGE('',*,*,#16265,.T.); -#10312=ORIENTED_EDGE('',*,*,#15410,.F.); -#10313=ORIENTED_EDGE('',*,*,#15409,.T.); -#10314=ORIENTED_EDGE('',*,*,#16253,.F.); -#10315=ORIENTED_EDGE('',*,*,#15588,.F.); -#10316=ORIENTED_EDGE('',*,*,#16264,.T.); -#10317=ORIENTED_EDGE('',*,*,#15408,.T.); -#10318=ORIENTED_EDGE('',*,*,#16266,.F.); -#10319=ORIENTED_EDGE('',*,*,#15585,.F.); -#10320=ORIENTED_EDGE('',*,*,#16263,.T.); -#10321=ORIENTED_EDGE('',*,*,#16267,.F.); -#10322=ORIENTED_EDGE('',*,*,#15509,.F.); -#10323=ORIENTED_EDGE('',*,*,#15586,.T.); -#10324=ORIENTED_EDGE('',*,*,#16266,.T.); -#10325=ORIENTED_EDGE('',*,*,#15407,.F.); -#10326=ORIENTED_EDGE('',*,*,#16265,.F.); -#10327=ORIENTED_EDGE('',*,*,#15912,.F.); -#10328=ORIENTED_EDGE('',*,*,#15411,.F.); -#10329=ORIENTED_EDGE('',*,*,#15510,.F.); -#10330=ORIENTED_EDGE('',*,*,#16267,.T.); -#10331=ORIENTED_EDGE('',*,*,#15406,.F.); -#10332=ORIENTED_EDGE('',*,*,#16268,.F.); -#10333=ORIENTED_EDGE('',*,*,#14360,.F.); -#10334=ORIENTED_EDGE('',*,*,#16269,.T.); -#10335=ORIENTED_EDGE('',*,*,#14312,.F.); -#10336=ORIENTED_EDGE('',*,*,#16270,.F.); -#10337=ORIENTED_EDGE('',*,*,#14361,.F.); -#10338=ORIENTED_EDGE('',*,*,#16268,.T.); -#10339=ORIENTED_EDGE('',*,*,#14311,.F.); -#10340=ORIENTED_EDGE('',*,*,#14310,.T.); -#10341=ORIENTED_EDGE('',*,*,#16271,.F.); -#10342=ORIENTED_EDGE('',*,*,#14362,.T.); -#10343=ORIENTED_EDGE('',*,*,#16270,.T.); -#10344=ORIENTED_EDGE('',*,*,#16272,.F.); -#10345=ORIENTED_EDGE('',*,*,#14363,.F.); -#10346=ORIENTED_EDGE('',*,*,#16271,.T.); -#10347=ORIENTED_EDGE('',*,*,#14309,.F.); -#10348=ORIENTED_EDGE('',*,*,#16273,.F.); -#10349=ORIENTED_EDGE('',*,*,#14364,.F.); -#10350=ORIENTED_EDGE('',*,*,#16272,.T.); -#10351=ORIENTED_EDGE('',*,*,#14308,.F.); -#10352=ORIENTED_EDGE('',*,*,#15236,.F.); -#10353=ORIENTED_EDGE('',*,*,#14365,.F.); -#10354=ORIENTED_EDGE('',*,*,#16273,.T.); -#10355=ORIENTED_EDGE('',*,*,#14307,.F.); -#10356=ORIENTED_EDGE('',*,*,#16274,.F.); -#10357=ORIENTED_EDGE('',*,*,#14367,.F.); -#10358=ORIENTED_EDGE('',*,*,#15237,.T.); -#10359=ORIENTED_EDGE('',*,*,#14305,.F.); -#10360=ORIENTED_EDGE('',*,*,#16275,.F.); -#10361=ORIENTED_EDGE('',*,*,#14368,.F.); -#10362=ORIENTED_EDGE('',*,*,#16274,.T.); -#10363=ORIENTED_EDGE('',*,*,#14304,.F.); -#10364=ORIENTED_EDGE('',*,*,#16276,.F.); -#10365=ORIENTED_EDGE('',*,*,#14369,.F.); -#10366=ORIENTED_EDGE('',*,*,#16275,.T.); -#10367=ORIENTED_EDGE('',*,*,#14303,.F.); -#10368=ORIENTED_EDGE('',*,*,#14302,.T.); -#10369=ORIENTED_EDGE('',*,*,#16277,.F.); -#10370=ORIENTED_EDGE('',*,*,#14370,.T.); -#10371=ORIENTED_EDGE('',*,*,#16276,.T.); -#10372=ORIENTED_EDGE('',*,*,#16278,.F.); -#10373=ORIENTED_EDGE('',*,*,#14371,.F.); -#10374=ORIENTED_EDGE('',*,*,#16277,.T.); -#10375=ORIENTED_EDGE('',*,*,#14301,.F.); -#10376=ORIENTED_EDGE('',*,*,#16279,.F.); -#10377=ORIENTED_EDGE('',*,*,#14372,.F.); -#10378=ORIENTED_EDGE('',*,*,#16278,.T.); -#10379=ORIENTED_EDGE('',*,*,#14300,.F.); -#10380=ORIENTED_EDGE('',*,*,#16280,.F.); -#10381=ORIENTED_EDGE('',*,*,#15583,.T.); -#10382=ORIENTED_EDGE('',*,*,#15507,.F.); -#10383=ORIENTED_EDGE('',*,*,#16281,.T.); -#10384=ORIENTED_EDGE('',*,*,#15403,.F.); -#10385=ORIENTED_EDGE('',*,*,#15402,.T.); -#10386=ORIENTED_EDGE('',*,*,#16269,.F.); -#10387=ORIENTED_EDGE('',*,*,#15584,.F.); -#10388=ORIENTED_EDGE('',*,*,#16280,.T.); -#10389=ORIENTED_EDGE('',*,*,#15401,.T.); -#10390=ORIENTED_EDGE('',*,*,#16282,.F.); -#10391=ORIENTED_EDGE('',*,*,#15581,.F.); -#10392=ORIENTED_EDGE('',*,*,#16279,.T.); -#10393=ORIENTED_EDGE('',*,*,#16283,.F.); -#10394=ORIENTED_EDGE('',*,*,#15504,.F.); -#10395=ORIENTED_EDGE('',*,*,#15582,.T.); -#10396=ORIENTED_EDGE('',*,*,#16282,.T.); -#10397=ORIENTED_EDGE('',*,*,#15400,.F.); -#10398=ORIENTED_EDGE('',*,*,#16281,.F.); -#10399=ORIENTED_EDGE('',*,*,#15506,.F.); -#10400=ORIENTED_EDGE('',*,*,#15404,.F.); -#10401=ORIENTED_EDGE('',*,*,#15505,.F.); -#10402=ORIENTED_EDGE('',*,*,#16283,.T.); -#10403=ORIENTED_EDGE('',*,*,#15399,.F.); -#10404=ORIENTED_EDGE('',*,*,#16284,.F.); -#10405=ORIENTED_EDGE('',*,*,#14374,.F.); -#10406=ORIENTED_EDGE('',*,*,#16285,.T.); -#10407=ORIENTED_EDGE('',*,*,#14298,.F.); -#10408=ORIENTED_EDGE('',*,*,#16286,.F.); -#10409=ORIENTED_EDGE('',*,*,#14375,.F.); -#10410=ORIENTED_EDGE('',*,*,#16284,.T.); -#10411=ORIENTED_EDGE('',*,*,#14297,.F.); -#10412=ORIENTED_EDGE('',*,*,#14296,.T.); -#10413=ORIENTED_EDGE('',*,*,#16287,.F.); -#10414=ORIENTED_EDGE('',*,*,#14376,.T.); -#10415=ORIENTED_EDGE('',*,*,#16286,.T.); -#10416=ORIENTED_EDGE('',*,*,#16288,.F.); -#10417=ORIENTED_EDGE('',*,*,#14377,.F.); -#10418=ORIENTED_EDGE('',*,*,#16287,.T.); -#10419=ORIENTED_EDGE('',*,*,#14295,.F.); -#10420=ORIENTED_EDGE('',*,*,#16289,.F.); -#10421=ORIENTED_EDGE('',*,*,#14378,.F.); -#10422=ORIENTED_EDGE('',*,*,#16288,.T.); -#10423=ORIENTED_EDGE('',*,*,#14294,.F.); -#10424=ORIENTED_EDGE('',*,*,#15238,.F.); -#10425=ORIENTED_EDGE('',*,*,#14379,.F.); -#10426=ORIENTED_EDGE('',*,*,#16289,.T.); -#10427=ORIENTED_EDGE('',*,*,#14293,.F.); -#10428=ORIENTED_EDGE('',*,*,#16290,.F.); -#10429=ORIENTED_EDGE('',*,*,#14381,.F.); -#10430=ORIENTED_EDGE('',*,*,#15239,.T.); -#10431=ORIENTED_EDGE('',*,*,#14291,.F.); -#10432=ORIENTED_EDGE('',*,*,#16291,.F.); -#10433=ORIENTED_EDGE('',*,*,#14382,.F.); -#10434=ORIENTED_EDGE('',*,*,#16290,.T.); -#10435=ORIENTED_EDGE('',*,*,#14290,.F.); -#10436=ORIENTED_EDGE('',*,*,#16292,.F.); -#10437=ORIENTED_EDGE('',*,*,#14383,.F.); -#10438=ORIENTED_EDGE('',*,*,#16291,.T.); -#10439=ORIENTED_EDGE('',*,*,#14289,.F.); -#10440=ORIENTED_EDGE('',*,*,#14288,.T.); -#10441=ORIENTED_EDGE('',*,*,#16293,.F.); -#10442=ORIENTED_EDGE('',*,*,#14384,.T.); -#10443=ORIENTED_EDGE('',*,*,#16292,.T.); -#10444=ORIENTED_EDGE('',*,*,#16294,.F.); -#10445=ORIENTED_EDGE('',*,*,#14385,.F.); -#10446=ORIENTED_EDGE('',*,*,#16293,.T.); -#10447=ORIENTED_EDGE('',*,*,#14287,.F.); -#10448=ORIENTED_EDGE('',*,*,#16295,.F.); -#10449=ORIENTED_EDGE('',*,*,#14386,.F.); -#10450=ORIENTED_EDGE('',*,*,#16294,.T.); -#10451=ORIENTED_EDGE('',*,*,#14286,.F.); -#10452=ORIENTED_EDGE('',*,*,#16296,.F.); -#10453=ORIENTED_EDGE('',*,*,#15579,.T.); -#10454=ORIENTED_EDGE('',*,*,#15502,.F.); -#10455=ORIENTED_EDGE('',*,*,#16297,.T.); -#10456=ORIENTED_EDGE('',*,*,#15396,.F.); -#10457=ORIENTED_EDGE('',*,*,#15395,.T.); -#10458=ORIENTED_EDGE('',*,*,#16285,.F.); -#10459=ORIENTED_EDGE('',*,*,#15580,.F.); -#10460=ORIENTED_EDGE('',*,*,#16296,.T.); -#10461=ORIENTED_EDGE('',*,*,#15394,.T.); -#10462=ORIENTED_EDGE('',*,*,#16298,.F.); -#10463=ORIENTED_EDGE('',*,*,#15577,.F.); -#10464=ORIENTED_EDGE('',*,*,#16295,.T.); -#10465=ORIENTED_EDGE('',*,*,#16299,.F.); -#10466=ORIENTED_EDGE('',*,*,#15499,.F.); -#10467=ORIENTED_EDGE('',*,*,#15578,.T.); -#10468=ORIENTED_EDGE('',*,*,#16298,.T.); -#10469=ORIENTED_EDGE('',*,*,#15393,.F.); -#10470=ORIENTED_EDGE('',*,*,#16297,.F.); -#10471=ORIENTED_EDGE('',*,*,#15501,.F.); -#10472=ORIENTED_EDGE('',*,*,#15397,.F.); -#10473=ORIENTED_EDGE('',*,*,#15500,.F.); -#10474=ORIENTED_EDGE('',*,*,#16299,.T.); -#10475=ORIENTED_EDGE('',*,*,#15392,.F.); -#10476=ORIENTED_EDGE('',*,*,#16300,.F.); -#10477=ORIENTED_EDGE('',*,*,#14388,.F.); -#10478=ORIENTED_EDGE('',*,*,#16301,.T.); -#10479=ORIENTED_EDGE('',*,*,#14284,.F.); -#10480=ORIENTED_EDGE('',*,*,#16302,.F.); -#10481=ORIENTED_EDGE('',*,*,#14389,.F.); -#10482=ORIENTED_EDGE('',*,*,#16300,.T.); -#10483=ORIENTED_EDGE('',*,*,#14283,.F.); -#10484=ORIENTED_EDGE('',*,*,#14282,.T.); -#10485=ORIENTED_EDGE('',*,*,#16303,.F.); -#10486=ORIENTED_EDGE('',*,*,#14390,.T.); -#10487=ORIENTED_EDGE('',*,*,#16302,.T.); -#10488=ORIENTED_EDGE('',*,*,#16304,.F.); -#10489=ORIENTED_EDGE('',*,*,#14391,.F.); -#10490=ORIENTED_EDGE('',*,*,#16303,.T.); -#10491=ORIENTED_EDGE('',*,*,#14281,.F.); -#10492=ORIENTED_EDGE('',*,*,#16305,.F.); -#10493=ORIENTED_EDGE('',*,*,#14392,.F.); -#10494=ORIENTED_EDGE('',*,*,#16304,.T.); -#10495=ORIENTED_EDGE('',*,*,#14280,.F.); -#10496=ORIENTED_EDGE('',*,*,#15240,.F.); -#10497=ORIENTED_EDGE('',*,*,#14393,.F.); -#10498=ORIENTED_EDGE('',*,*,#16305,.T.); -#10499=ORIENTED_EDGE('',*,*,#14279,.F.); -#10500=ORIENTED_EDGE('',*,*,#16306,.F.); -#10501=ORIENTED_EDGE('',*,*,#14395,.F.); -#10502=ORIENTED_EDGE('',*,*,#15241,.T.); -#10503=ORIENTED_EDGE('',*,*,#14277,.F.); -#10504=ORIENTED_EDGE('',*,*,#16307,.F.); -#10505=ORIENTED_EDGE('',*,*,#14396,.F.); -#10506=ORIENTED_EDGE('',*,*,#16306,.T.); -#10507=ORIENTED_EDGE('',*,*,#14276,.F.); -#10508=ORIENTED_EDGE('',*,*,#16308,.F.); -#10509=ORIENTED_EDGE('',*,*,#14397,.F.); -#10510=ORIENTED_EDGE('',*,*,#16307,.T.); -#10511=ORIENTED_EDGE('',*,*,#14275,.F.); -#10512=ORIENTED_EDGE('',*,*,#14274,.T.); -#10513=ORIENTED_EDGE('',*,*,#16309,.F.); -#10514=ORIENTED_EDGE('',*,*,#14398,.T.); -#10515=ORIENTED_EDGE('',*,*,#16308,.T.); -#10516=ORIENTED_EDGE('',*,*,#16310,.F.); -#10517=ORIENTED_EDGE('',*,*,#14399,.F.); -#10518=ORIENTED_EDGE('',*,*,#16309,.T.); -#10519=ORIENTED_EDGE('',*,*,#14273,.F.); -#10520=ORIENTED_EDGE('',*,*,#16311,.F.); -#10521=ORIENTED_EDGE('',*,*,#14400,.F.); -#10522=ORIENTED_EDGE('',*,*,#16310,.T.); -#10523=ORIENTED_EDGE('',*,*,#14272,.F.); -#10524=ORIENTED_EDGE('',*,*,#16312,.F.); -#10525=ORIENTED_EDGE('',*,*,#15575,.T.); -#10526=ORIENTED_EDGE('',*,*,#15497,.F.); -#10527=ORIENTED_EDGE('',*,*,#16313,.T.); -#10528=ORIENTED_EDGE('',*,*,#15389,.F.); -#10529=ORIENTED_EDGE('',*,*,#15388,.T.); -#10530=ORIENTED_EDGE('',*,*,#16301,.F.); -#10531=ORIENTED_EDGE('',*,*,#15576,.F.); -#10532=ORIENTED_EDGE('',*,*,#16312,.T.); -#10533=ORIENTED_EDGE('',*,*,#15387,.T.); -#10534=ORIENTED_EDGE('',*,*,#16314,.F.); -#10535=ORIENTED_EDGE('',*,*,#15573,.F.); -#10536=ORIENTED_EDGE('',*,*,#16311,.T.); -#10537=ORIENTED_EDGE('',*,*,#16315,.F.); -#10538=ORIENTED_EDGE('',*,*,#15494,.F.); -#10539=ORIENTED_EDGE('',*,*,#15574,.T.); -#10540=ORIENTED_EDGE('',*,*,#16314,.T.); -#10541=ORIENTED_EDGE('',*,*,#15386,.F.); -#10542=ORIENTED_EDGE('',*,*,#16313,.F.); -#10543=ORIENTED_EDGE('',*,*,#15496,.F.); -#10544=ORIENTED_EDGE('',*,*,#15390,.F.); -#10545=ORIENTED_EDGE('',*,*,#15495,.F.); -#10546=ORIENTED_EDGE('',*,*,#16315,.T.); -#10547=ORIENTED_EDGE('',*,*,#15385,.F.); -#10548=ORIENTED_EDGE('',*,*,#16316,.F.); -#10549=ORIENTED_EDGE('',*,*,#14402,.F.); -#10550=ORIENTED_EDGE('',*,*,#16317,.T.); -#10551=ORIENTED_EDGE('',*,*,#14270,.F.); -#10552=ORIENTED_EDGE('',*,*,#16318,.F.); -#10553=ORIENTED_EDGE('',*,*,#14403,.F.); -#10554=ORIENTED_EDGE('',*,*,#16316,.T.); -#10555=ORIENTED_EDGE('',*,*,#14269,.F.); -#10556=ORIENTED_EDGE('',*,*,#14268,.T.); -#10557=ORIENTED_EDGE('',*,*,#16319,.F.); -#10558=ORIENTED_EDGE('',*,*,#14404,.T.); -#10559=ORIENTED_EDGE('',*,*,#16318,.T.); -#10560=ORIENTED_EDGE('',*,*,#16320,.F.); -#10561=ORIENTED_EDGE('',*,*,#14405,.F.); -#10562=ORIENTED_EDGE('',*,*,#16319,.T.); -#10563=ORIENTED_EDGE('',*,*,#14267,.F.); -#10564=ORIENTED_EDGE('',*,*,#16321,.F.); -#10565=ORIENTED_EDGE('',*,*,#14406,.F.); -#10566=ORIENTED_EDGE('',*,*,#16320,.T.); -#10567=ORIENTED_EDGE('',*,*,#14266,.F.); -#10568=ORIENTED_EDGE('',*,*,#15242,.F.); -#10569=ORIENTED_EDGE('',*,*,#14407,.F.); -#10570=ORIENTED_EDGE('',*,*,#16321,.T.); -#10571=ORIENTED_EDGE('',*,*,#14265,.F.); -#10572=ORIENTED_EDGE('',*,*,#16322,.F.); -#10573=ORIENTED_EDGE('',*,*,#14409,.F.); -#10574=ORIENTED_EDGE('',*,*,#15243,.T.); -#10575=ORIENTED_EDGE('',*,*,#14263,.F.); -#10576=ORIENTED_EDGE('',*,*,#16323,.F.); -#10577=ORIENTED_EDGE('',*,*,#14410,.F.); -#10578=ORIENTED_EDGE('',*,*,#16322,.T.); -#10579=ORIENTED_EDGE('',*,*,#14262,.F.); -#10580=ORIENTED_EDGE('',*,*,#16324,.F.); -#10581=ORIENTED_EDGE('',*,*,#14411,.F.); -#10582=ORIENTED_EDGE('',*,*,#16323,.T.); -#10583=ORIENTED_EDGE('',*,*,#14261,.F.); -#10584=ORIENTED_EDGE('',*,*,#14260,.T.); -#10585=ORIENTED_EDGE('',*,*,#16325,.F.); -#10586=ORIENTED_EDGE('',*,*,#14412,.T.); -#10587=ORIENTED_EDGE('',*,*,#16324,.T.); -#10588=ORIENTED_EDGE('',*,*,#16326,.F.); -#10589=ORIENTED_EDGE('',*,*,#14413,.F.); -#10590=ORIENTED_EDGE('',*,*,#16325,.T.); -#10591=ORIENTED_EDGE('',*,*,#14259,.F.); -#10592=ORIENTED_EDGE('',*,*,#16327,.F.); -#10593=ORIENTED_EDGE('',*,*,#14414,.F.); -#10594=ORIENTED_EDGE('',*,*,#16326,.T.); -#10595=ORIENTED_EDGE('',*,*,#14258,.F.); -#10596=ORIENTED_EDGE('',*,*,#16328,.F.); -#10597=ORIENTED_EDGE('',*,*,#15571,.T.); -#10598=ORIENTED_EDGE('',*,*,#15492,.F.); -#10599=ORIENTED_EDGE('',*,*,#16329,.T.); -#10600=ORIENTED_EDGE('',*,*,#15382,.F.); -#10601=ORIENTED_EDGE('',*,*,#15381,.T.); -#10602=ORIENTED_EDGE('',*,*,#16317,.F.); -#10603=ORIENTED_EDGE('',*,*,#15572,.F.); -#10604=ORIENTED_EDGE('',*,*,#16328,.T.); -#10605=ORIENTED_EDGE('',*,*,#15380,.T.); -#10606=ORIENTED_EDGE('',*,*,#16330,.F.); -#10607=ORIENTED_EDGE('',*,*,#15569,.F.); -#10608=ORIENTED_EDGE('',*,*,#16327,.T.); -#10609=ORIENTED_EDGE('',*,*,#16331,.F.); -#10610=ORIENTED_EDGE('',*,*,#15489,.F.); -#10611=ORIENTED_EDGE('',*,*,#15570,.T.); -#10612=ORIENTED_EDGE('',*,*,#16330,.T.); -#10613=ORIENTED_EDGE('',*,*,#15379,.F.); -#10614=ORIENTED_EDGE('',*,*,#16329,.F.); -#10615=ORIENTED_EDGE('',*,*,#15491,.F.); -#10616=ORIENTED_EDGE('',*,*,#15383,.F.); -#10617=ORIENTED_EDGE('',*,*,#15490,.F.); -#10618=ORIENTED_EDGE('',*,*,#16331,.T.); -#10619=ORIENTED_EDGE('',*,*,#15378,.F.); -#10620=ORIENTED_EDGE('',*,*,#16332,.F.); -#10621=ORIENTED_EDGE('',*,*,#14416,.F.); -#10622=ORIENTED_EDGE('',*,*,#16333,.T.); -#10623=ORIENTED_EDGE('',*,*,#14256,.F.); -#10624=ORIENTED_EDGE('',*,*,#16334,.F.); -#10625=ORIENTED_EDGE('',*,*,#14417,.F.); -#10626=ORIENTED_EDGE('',*,*,#16332,.T.); -#10627=ORIENTED_EDGE('',*,*,#14255,.F.); -#10628=ORIENTED_EDGE('',*,*,#14254,.T.); -#10629=ORIENTED_EDGE('',*,*,#16335,.F.); -#10630=ORIENTED_EDGE('',*,*,#14418,.T.); -#10631=ORIENTED_EDGE('',*,*,#16334,.T.); -#10632=ORIENTED_EDGE('',*,*,#16336,.F.); -#10633=ORIENTED_EDGE('',*,*,#14419,.F.); -#10634=ORIENTED_EDGE('',*,*,#16335,.T.); -#10635=ORIENTED_EDGE('',*,*,#14253,.F.); -#10636=ORIENTED_EDGE('',*,*,#16337,.F.); -#10637=ORIENTED_EDGE('',*,*,#14420,.F.); -#10638=ORIENTED_EDGE('',*,*,#16336,.T.); -#10639=ORIENTED_EDGE('',*,*,#14252,.F.); -#10640=ORIENTED_EDGE('',*,*,#15244,.F.); -#10641=ORIENTED_EDGE('',*,*,#14421,.F.); -#10642=ORIENTED_EDGE('',*,*,#16337,.T.); -#10643=ORIENTED_EDGE('',*,*,#14251,.F.); -#10644=ORIENTED_EDGE('',*,*,#16338,.F.); -#10645=ORIENTED_EDGE('',*,*,#14423,.F.); -#10646=ORIENTED_EDGE('',*,*,#15245,.T.); -#10647=ORIENTED_EDGE('',*,*,#14249,.F.); -#10648=ORIENTED_EDGE('',*,*,#16339,.F.); -#10649=ORIENTED_EDGE('',*,*,#14424,.F.); -#10650=ORIENTED_EDGE('',*,*,#16338,.T.); -#10651=ORIENTED_EDGE('',*,*,#14248,.F.); -#10652=ORIENTED_EDGE('',*,*,#16340,.F.); -#10653=ORIENTED_EDGE('',*,*,#14425,.F.); -#10654=ORIENTED_EDGE('',*,*,#16339,.T.); -#10655=ORIENTED_EDGE('',*,*,#14247,.F.); -#10656=ORIENTED_EDGE('',*,*,#14246,.T.); -#10657=ORIENTED_EDGE('',*,*,#16341,.F.); -#10658=ORIENTED_EDGE('',*,*,#14426,.T.); -#10659=ORIENTED_EDGE('',*,*,#16340,.T.); -#10660=ORIENTED_EDGE('',*,*,#16342,.F.); -#10661=ORIENTED_EDGE('',*,*,#14427,.F.); -#10662=ORIENTED_EDGE('',*,*,#16341,.T.); -#10663=ORIENTED_EDGE('',*,*,#14245,.F.); -#10664=ORIENTED_EDGE('',*,*,#16343,.F.); -#10665=ORIENTED_EDGE('',*,*,#14428,.F.); -#10666=ORIENTED_EDGE('',*,*,#16342,.T.); -#10667=ORIENTED_EDGE('',*,*,#14244,.F.); -#10668=ORIENTED_EDGE('',*,*,#16344,.F.); -#10669=ORIENTED_EDGE('',*,*,#15567,.T.); -#10670=ORIENTED_EDGE('',*,*,#15487,.F.); -#10671=ORIENTED_EDGE('',*,*,#16345,.T.); -#10672=ORIENTED_EDGE('',*,*,#15375,.F.); -#10673=ORIENTED_EDGE('',*,*,#15374,.T.); -#10674=ORIENTED_EDGE('',*,*,#16333,.F.); -#10675=ORIENTED_EDGE('',*,*,#15568,.F.); -#10676=ORIENTED_EDGE('',*,*,#16344,.T.); -#10677=ORIENTED_EDGE('',*,*,#15373,.T.); -#10678=ORIENTED_EDGE('',*,*,#16346,.F.); -#10679=ORIENTED_EDGE('',*,*,#15565,.F.); -#10680=ORIENTED_EDGE('',*,*,#16343,.T.); -#10681=ORIENTED_EDGE('',*,*,#16347,.F.); -#10682=ORIENTED_EDGE('',*,*,#15484,.F.); -#10683=ORIENTED_EDGE('',*,*,#15566,.T.); -#10684=ORIENTED_EDGE('',*,*,#16346,.T.); -#10685=ORIENTED_EDGE('',*,*,#15372,.F.); -#10686=ORIENTED_EDGE('',*,*,#16345,.F.); -#10687=ORIENTED_EDGE('',*,*,#15486,.F.); -#10688=ORIENTED_EDGE('',*,*,#15376,.F.); -#10689=ORIENTED_EDGE('',*,*,#15485,.F.); -#10690=ORIENTED_EDGE('',*,*,#16347,.T.); -#10691=ORIENTED_EDGE('',*,*,#15371,.F.); -#10692=ORIENTED_EDGE('',*,*,#16348,.F.); -#10693=ORIENTED_EDGE('',*,*,#14430,.F.); -#10694=ORIENTED_EDGE('',*,*,#16349,.T.); -#10695=ORIENTED_EDGE('',*,*,#14242,.F.); -#10696=ORIENTED_EDGE('',*,*,#16350,.F.); -#10697=ORIENTED_EDGE('',*,*,#14431,.F.); -#10698=ORIENTED_EDGE('',*,*,#16348,.T.); -#10699=ORIENTED_EDGE('',*,*,#14241,.F.); -#10700=ORIENTED_EDGE('',*,*,#14240,.T.); -#10701=ORIENTED_EDGE('',*,*,#16351,.F.); -#10702=ORIENTED_EDGE('',*,*,#14432,.T.); -#10703=ORIENTED_EDGE('',*,*,#16350,.T.); -#10704=ORIENTED_EDGE('',*,*,#16352,.F.); -#10705=ORIENTED_EDGE('',*,*,#14433,.F.); -#10706=ORIENTED_EDGE('',*,*,#16351,.T.); -#10707=ORIENTED_EDGE('',*,*,#14239,.F.); -#10708=ORIENTED_EDGE('',*,*,#16353,.F.); -#10709=ORIENTED_EDGE('',*,*,#14434,.F.); -#10710=ORIENTED_EDGE('',*,*,#16352,.T.); -#10711=ORIENTED_EDGE('',*,*,#14238,.F.); -#10712=ORIENTED_EDGE('',*,*,#15246,.F.); -#10713=ORIENTED_EDGE('',*,*,#14435,.F.); -#10714=ORIENTED_EDGE('',*,*,#16353,.T.); -#10715=ORIENTED_EDGE('',*,*,#14237,.F.); -#10716=ORIENTED_EDGE('',*,*,#16354,.F.); -#10717=ORIENTED_EDGE('',*,*,#14437,.F.); -#10718=ORIENTED_EDGE('',*,*,#15247,.T.); -#10719=ORIENTED_EDGE('',*,*,#14235,.F.); -#10720=ORIENTED_EDGE('',*,*,#16355,.F.); -#10721=ORIENTED_EDGE('',*,*,#14438,.F.); -#10722=ORIENTED_EDGE('',*,*,#16354,.T.); -#10723=ORIENTED_EDGE('',*,*,#14234,.F.); -#10724=ORIENTED_EDGE('',*,*,#16356,.F.); -#10725=ORIENTED_EDGE('',*,*,#14439,.F.); -#10726=ORIENTED_EDGE('',*,*,#16355,.T.); -#10727=ORIENTED_EDGE('',*,*,#14233,.F.); -#10728=ORIENTED_EDGE('',*,*,#14232,.T.); -#10729=ORIENTED_EDGE('',*,*,#16357,.F.); -#10730=ORIENTED_EDGE('',*,*,#14440,.T.); -#10731=ORIENTED_EDGE('',*,*,#16356,.T.); -#10732=ORIENTED_EDGE('',*,*,#16358,.F.); -#10733=ORIENTED_EDGE('',*,*,#14441,.F.); -#10734=ORIENTED_EDGE('',*,*,#16357,.T.); -#10735=ORIENTED_EDGE('',*,*,#14231,.F.); -#10736=ORIENTED_EDGE('',*,*,#16359,.F.); -#10737=ORIENTED_EDGE('',*,*,#14442,.F.); -#10738=ORIENTED_EDGE('',*,*,#16358,.T.); -#10739=ORIENTED_EDGE('',*,*,#14230,.F.); -#10740=ORIENTED_EDGE('',*,*,#16360,.F.); -#10741=ORIENTED_EDGE('',*,*,#15563,.T.); -#10742=ORIENTED_EDGE('',*,*,#15482,.F.); -#10743=ORIENTED_EDGE('',*,*,#16361,.T.); -#10744=ORIENTED_EDGE('',*,*,#15368,.F.); -#10745=ORIENTED_EDGE('',*,*,#15367,.T.); -#10746=ORIENTED_EDGE('',*,*,#16349,.F.); -#10747=ORIENTED_EDGE('',*,*,#15564,.F.); -#10748=ORIENTED_EDGE('',*,*,#16360,.T.); -#10749=ORIENTED_EDGE('',*,*,#15366,.T.); -#10750=ORIENTED_EDGE('',*,*,#16362,.F.); -#10751=ORIENTED_EDGE('',*,*,#15561,.F.); -#10752=ORIENTED_EDGE('',*,*,#16359,.T.); -#10753=ORIENTED_EDGE('',*,*,#16363,.F.); -#10754=ORIENTED_EDGE('',*,*,#15479,.F.); -#10755=ORIENTED_EDGE('',*,*,#15562,.T.); -#10756=ORIENTED_EDGE('',*,*,#16362,.T.); -#10757=ORIENTED_EDGE('',*,*,#15365,.F.); -#10758=ORIENTED_EDGE('',*,*,#16361,.F.); -#10759=ORIENTED_EDGE('',*,*,#15481,.F.); -#10760=ORIENTED_EDGE('',*,*,#15369,.F.); -#10761=ORIENTED_EDGE('',*,*,#15480,.F.); -#10762=ORIENTED_EDGE('',*,*,#16363,.T.); -#10763=ORIENTED_EDGE('',*,*,#15364,.F.); -#10764=ORIENTED_EDGE('',*,*,#16364,.F.); -#10765=ORIENTED_EDGE('',*,*,#14444,.F.); -#10766=ORIENTED_EDGE('',*,*,#16365,.T.); -#10767=ORIENTED_EDGE('',*,*,#14228,.F.); -#10768=ORIENTED_EDGE('',*,*,#16366,.F.); -#10769=ORIENTED_EDGE('',*,*,#14445,.F.); -#10770=ORIENTED_EDGE('',*,*,#16364,.T.); -#10771=ORIENTED_EDGE('',*,*,#14227,.F.); -#10772=ORIENTED_EDGE('',*,*,#14226,.T.); -#10773=ORIENTED_EDGE('',*,*,#16367,.F.); -#10774=ORIENTED_EDGE('',*,*,#14446,.T.); -#10775=ORIENTED_EDGE('',*,*,#16366,.T.); -#10776=ORIENTED_EDGE('',*,*,#16368,.F.); -#10777=ORIENTED_EDGE('',*,*,#14447,.F.); -#10778=ORIENTED_EDGE('',*,*,#16367,.T.); -#10779=ORIENTED_EDGE('',*,*,#14225,.F.); -#10780=ORIENTED_EDGE('',*,*,#16369,.F.); -#10781=ORIENTED_EDGE('',*,*,#14448,.F.); -#10782=ORIENTED_EDGE('',*,*,#16368,.T.); -#10783=ORIENTED_EDGE('',*,*,#14224,.F.); -#10784=ORIENTED_EDGE('',*,*,#15248,.F.); -#10785=ORIENTED_EDGE('',*,*,#14449,.F.); -#10786=ORIENTED_EDGE('',*,*,#16369,.T.); -#10787=ORIENTED_EDGE('',*,*,#14223,.F.); -#10788=ORIENTED_EDGE('',*,*,#16370,.F.); -#10789=ORIENTED_EDGE('',*,*,#14451,.F.); -#10790=ORIENTED_EDGE('',*,*,#15249,.T.); -#10791=ORIENTED_EDGE('',*,*,#14221,.F.); -#10792=ORIENTED_EDGE('',*,*,#16371,.F.); -#10793=ORIENTED_EDGE('',*,*,#14452,.F.); -#10794=ORIENTED_EDGE('',*,*,#16370,.T.); -#10795=ORIENTED_EDGE('',*,*,#14220,.F.); -#10796=ORIENTED_EDGE('',*,*,#16372,.F.); -#10797=ORIENTED_EDGE('',*,*,#14453,.F.); -#10798=ORIENTED_EDGE('',*,*,#16371,.T.); -#10799=ORIENTED_EDGE('',*,*,#14219,.F.); -#10800=ORIENTED_EDGE('',*,*,#14218,.T.); -#10801=ORIENTED_EDGE('',*,*,#16373,.F.); -#10802=ORIENTED_EDGE('',*,*,#14454,.T.); -#10803=ORIENTED_EDGE('',*,*,#16372,.T.); -#10804=ORIENTED_EDGE('',*,*,#16374,.F.); -#10805=ORIENTED_EDGE('',*,*,#14455,.F.); -#10806=ORIENTED_EDGE('',*,*,#16373,.T.); -#10807=ORIENTED_EDGE('',*,*,#14217,.F.); -#10808=ORIENTED_EDGE('',*,*,#16375,.F.); -#10809=ORIENTED_EDGE('',*,*,#14456,.F.); -#10810=ORIENTED_EDGE('',*,*,#16374,.T.); -#10811=ORIENTED_EDGE('',*,*,#14216,.F.); -#10812=ORIENTED_EDGE('',*,*,#16376,.F.); -#10813=ORIENTED_EDGE('',*,*,#15559,.T.); -#10814=ORIENTED_EDGE('',*,*,#15477,.F.); -#10815=ORIENTED_EDGE('',*,*,#16377,.T.); -#10816=ORIENTED_EDGE('',*,*,#15361,.F.); -#10817=ORIENTED_EDGE('',*,*,#15360,.T.); -#10818=ORIENTED_EDGE('',*,*,#16365,.F.); -#10819=ORIENTED_EDGE('',*,*,#15560,.F.); -#10820=ORIENTED_EDGE('',*,*,#16376,.T.); -#10821=ORIENTED_EDGE('',*,*,#15359,.T.); -#10822=ORIENTED_EDGE('',*,*,#16378,.F.); -#10823=ORIENTED_EDGE('',*,*,#15557,.F.); -#10824=ORIENTED_EDGE('',*,*,#16375,.T.); -#10825=ORIENTED_EDGE('',*,*,#16379,.F.); -#10826=ORIENTED_EDGE('',*,*,#15474,.F.); -#10827=ORIENTED_EDGE('',*,*,#15558,.T.); -#10828=ORIENTED_EDGE('',*,*,#16378,.T.); -#10829=ORIENTED_EDGE('',*,*,#15358,.F.); -#10830=ORIENTED_EDGE('',*,*,#16377,.F.); -#10831=ORIENTED_EDGE('',*,*,#15476,.F.); -#10832=ORIENTED_EDGE('',*,*,#15362,.F.); -#10833=ORIENTED_EDGE('',*,*,#15475,.F.); -#10834=ORIENTED_EDGE('',*,*,#16379,.T.); -#10835=ORIENTED_EDGE('',*,*,#15357,.F.); -#10836=ORIENTED_EDGE('',*,*,#16380,.F.); -#10837=ORIENTED_EDGE('',*,*,#14458,.F.); -#10838=ORIENTED_EDGE('',*,*,#16381,.T.); -#10839=ORIENTED_EDGE('',*,*,#14214,.F.); -#10840=ORIENTED_EDGE('',*,*,#16382,.F.); -#10841=ORIENTED_EDGE('',*,*,#14459,.F.); -#10842=ORIENTED_EDGE('',*,*,#16380,.T.); -#10843=ORIENTED_EDGE('',*,*,#14213,.F.); -#10844=ORIENTED_EDGE('',*,*,#14212,.T.); -#10845=ORIENTED_EDGE('',*,*,#16383,.F.); -#10846=ORIENTED_EDGE('',*,*,#14460,.T.); -#10847=ORIENTED_EDGE('',*,*,#16382,.T.); -#10848=ORIENTED_EDGE('',*,*,#16384,.F.); -#10849=ORIENTED_EDGE('',*,*,#14461,.F.); -#10850=ORIENTED_EDGE('',*,*,#16383,.T.); -#10851=ORIENTED_EDGE('',*,*,#14211,.F.); -#10852=ORIENTED_EDGE('',*,*,#16385,.F.); -#10853=ORIENTED_EDGE('',*,*,#14462,.F.); -#10854=ORIENTED_EDGE('',*,*,#16384,.T.); -#10855=ORIENTED_EDGE('',*,*,#14210,.F.); -#10856=ORIENTED_EDGE('',*,*,#15250,.F.); -#10857=ORIENTED_EDGE('',*,*,#14463,.F.); -#10858=ORIENTED_EDGE('',*,*,#16385,.T.); -#10859=ORIENTED_EDGE('',*,*,#14209,.F.); -#10860=ORIENTED_EDGE('',*,*,#16386,.F.); -#10861=ORIENTED_EDGE('',*,*,#14465,.F.); -#10862=ORIENTED_EDGE('',*,*,#15251,.T.); -#10863=ORIENTED_EDGE('',*,*,#14207,.F.); -#10864=ORIENTED_EDGE('',*,*,#16387,.F.); -#10865=ORIENTED_EDGE('',*,*,#14466,.F.); -#10866=ORIENTED_EDGE('',*,*,#16386,.T.); -#10867=ORIENTED_EDGE('',*,*,#14206,.F.); -#10868=ORIENTED_EDGE('',*,*,#16388,.F.); -#10869=ORIENTED_EDGE('',*,*,#14467,.F.); -#10870=ORIENTED_EDGE('',*,*,#16387,.T.); -#10871=ORIENTED_EDGE('',*,*,#14205,.F.); -#10872=ORIENTED_EDGE('',*,*,#14204,.T.); -#10873=ORIENTED_EDGE('',*,*,#16389,.F.); -#10874=ORIENTED_EDGE('',*,*,#14468,.T.); -#10875=ORIENTED_EDGE('',*,*,#16388,.T.); -#10876=ORIENTED_EDGE('',*,*,#16390,.F.); -#10877=ORIENTED_EDGE('',*,*,#14469,.F.); -#10878=ORIENTED_EDGE('',*,*,#16389,.T.); -#10879=ORIENTED_EDGE('',*,*,#14203,.F.); -#10880=ORIENTED_EDGE('',*,*,#16391,.F.); -#10881=ORIENTED_EDGE('',*,*,#14470,.F.); -#10882=ORIENTED_EDGE('',*,*,#16390,.T.); -#10883=ORIENTED_EDGE('',*,*,#14202,.F.); -#10884=ORIENTED_EDGE('',*,*,#16392,.F.); -#10885=ORIENTED_EDGE('',*,*,#15555,.T.); -#10886=ORIENTED_EDGE('',*,*,#15472,.F.); -#10887=ORIENTED_EDGE('',*,*,#16393,.T.); -#10888=ORIENTED_EDGE('',*,*,#15354,.F.); -#10889=ORIENTED_EDGE('',*,*,#15353,.T.); -#10890=ORIENTED_EDGE('',*,*,#16381,.F.); -#10891=ORIENTED_EDGE('',*,*,#15556,.F.); -#10892=ORIENTED_EDGE('',*,*,#16392,.T.); -#10893=ORIENTED_EDGE('',*,*,#15352,.T.); -#10894=ORIENTED_EDGE('',*,*,#16394,.F.); -#10895=ORIENTED_EDGE('',*,*,#15553,.F.); -#10896=ORIENTED_EDGE('',*,*,#16391,.T.); -#10897=ORIENTED_EDGE('',*,*,#16395,.F.); -#10898=ORIENTED_EDGE('',*,*,#15469,.F.); -#10899=ORIENTED_EDGE('',*,*,#15554,.T.); -#10900=ORIENTED_EDGE('',*,*,#16394,.T.); -#10901=ORIENTED_EDGE('',*,*,#15351,.F.); -#10902=ORIENTED_EDGE('',*,*,#16393,.F.); -#10903=ORIENTED_EDGE('',*,*,#15471,.F.); -#10904=ORIENTED_EDGE('',*,*,#15355,.F.); -#10905=ORIENTED_EDGE('',*,*,#15470,.F.); -#10906=ORIENTED_EDGE('',*,*,#16395,.T.); -#10907=ORIENTED_EDGE('',*,*,#15350,.F.); -#10908=ORIENTED_EDGE('',*,*,#16396,.F.); -#10909=ORIENTED_EDGE('',*,*,#14472,.F.); -#10910=ORIENTED_EDGE('',*,*,#16397,.T.); -#10911=ORIENTED_EDGE('',*,*,#14200,.F.); -#10912=ORIENTED_EDGE('',*,*,#16398,.F.); -#10913=ORIENTED_EDGE('',*,*,#14473,.F.); -#10914=ORIENTED_EDGE('',*,*,#16396,.T.); -#10915=ORIENTED_EDGE('',*,*,#14199,.F.); -#10916=ORIENTED_EDGE('',*,*,#14198,.T.); -#10917=ORIENTED_EDGE('',*,*,#16399,.F.); -#10918=ORIENTED_EDGE('',*,*,#14474,.T.); -#10919=ORIENTED_EDGE('',*,*,#16398,.T.); -#10920=ORIENTED_EDGE('',*,*,#16400,.F.); -#10921=ORIENTED_EDGE('',*,*,#14475,.F.); -#10922=ORIENTED_EDGE('',*,*,#16399,.T.); -#10923=ORIENTED_EDGE('',*,*,#14197,.F.); -#10924=ORIENTED_EDGE('',*,*,#16401,.F.); -#10925=ORIENTED_EDGE('',*,*,#14476,.F.); -#10926=ORIENTED_EDGE('',*,*,#16400,.T.); -#10927=ORIENTED_EDGE('',*,*,#14196,.F.); -#10928=ORIENTED_EDGE('',*,*,#15252,.F.); -#10929=ORIENTED_EDGE('',*,*,#14477,.F.); -#10930=ORIENTED_EDGE('',*,*,#16401,.T.); -#10931=ORIENTED_EDGE('',*,*,#14195,.F.); -#10932=ORIENTED_EDGE('',*,*,#16402,.F.); -#10933=ORIENTED_EDGE('',*,*,#14479,.F.); -#10934=ORIENTED_EDGE('',*,*,#15253,.T.); -#10935=ORIENTED_EDGE('',*,*,#14193,.F.); -#10936=ORIENTED_EDGE('',*,*,#16403,.F.); -#10937=ORIENTED_EDGE('',*,*,#14480,.F.); -#10938=ORIENTED_EDGE('',*,*,#16402,.T.); -#10939=ORIENTED_EDGE('',*,*,#14192,.F.); -#10940=ORIENTED_EDGE('',*,*,#16404,.F.); -#10941=ORIENTED_EDGE('',*,*,#14481,.F.); -#10942=ORIENTED_EDGE('',*,*,#16403,.T.); -#10943=ORIENTED_EDGE('',*,*,#14191,.F.); -#10944=ORIENTED_EDGE('',*,*,#14190,.T.); -#10945=ORIENTED_EDGE('',*,*,#16405,.F.); -#10946=ORIENTED_EDGE('',*,*,#14482,.T.); -#10947=ORIENTED_EDGE('',*,*,#16404,.T.); -#10948=ORIENTED_EDGE('',*,*,#16406,.F.); -#10949=ORIENTED_EDGE('',*,*,#14483,.F.); -#10950=ORIENTED_EDGE('',*,*,#16405,.T.); -#10951=ORIENTED_EDGE('',*,*,#14189,.F.); -#10952=ORIENTED_EDGE('',*,*,#16407,.F.); -#10953=ORIENTED_EDGE('',*,*,#14484,.F.); -#10954=ORIENTED_EDGE('',*,*,#16406,.T.); -#10955=ORIENTED_EDGE('',*,*,#14188,.F.); -#10956=ORIENTED_EDGE('',*,*,#16408,.F.); -#10957=ORIENTED_EDGE('',*,*,#15551,.T.); -#10958=ORIENTED_EDGE('',*,*,#15467,.F.); -#10959=ORIENTED_EDGE('',*,*,#16409,.T.); -#10960=ORIENTED_EDGE('',*,*,#15347,.F.); -#10961=ORIENTED_EDGE('',*,*,#15346,.T.); -#10962=ORIENTED_EDGE('',*,*,#16397,.F.); -#10963=ORIENTED_EDGE('',*,*,#15552,.F.); -#10964=ORIENTED_EDGE('',*,*,#16408,.T.); -#10965=ORIENTED_EDGE('',*,*,#15345,.T.); -#10966=ORIENTED_EDGE('',*,*,#16410,.F.); -#10967=ORIENTED_EDGE('',*,*,#15549,.F.); -#10968=ORIENTED_EDGE('',*,*,#16407,.T.); -#10969=ORIENTED_EDGE('',*,*,#16411,.F.); -#10970=ORIENTED_EDGE('',*,*,#15464,.F.); -#10971=ORIENTED_EDGE('',*,*,#15550,.T.); -#10972=ORIENTED_EDGE('',*,*,#16410,.T.); -#10973=ORIENTED_EDGE('',*,*,#15344,.F.); -#10974=ORIENTED_EDGE('',*,*,#16409,.F.); -#10975=ORIENTED_EDGE('',*,*,#15466,.F.); -#10976=ORIENTED_EDGE('',*,*,#15348,.F.); -#10977=ORIENTED_EDGE('',*,*,#15465,.F.); -#10978=ORIENTED_EDGE('',*,*,#16411,.T.); -#10979=ORIENTED_EDGE('',*,*,#15343,.F.); -#10980=ORIENTED_EDGE('',*,*,#16412,.F.); -#10981=ORIENTED_EDGE('',*,*,#14486,.F.); -#10982=ORIENTED_EDGE('',*,*,#16413,.T.); -#10983=ORIENTED_EDGE('',*,*,#14186,.F.); -#10984=ORIENTED_EDGE('',*,*,#16414,.F.); -#10985=ORIENTED_EDGE('',*,*,#14487,.F.); -#10986=ORIENTED_EDGE('',*,*,#16412,.T.); -#10987=ORIENTED_EDGE('',*,*,#14185,.F.); -#10988=ORIENTED_EDGE('',*,*,#14184,.T.); -#10989=ORIENTED_EDGE('',*,*,#16415,.F.); -#10990=ORIENTED_EDGE('',*,*,#14488,.T.); -#10991=ORIENTED_EDGE('',*,*,#16414,.T.); -#10992=ORIENTED_EDGE('',*,*,#16416,.F.); -#10993=ORIENTED_EDGE('',*,*,#14489,.F.); -#10994=ORIENTED_EDGE('',*,*,#16415,.T.); -#10995=ORIENTED_EDGE('',*,*,#14183,.F.); -#10996=ORIENTED_EDGE('',*,*,#16417,.F.); -#10997=ORIENTED_EDGE('',*,*,#14490,.F.); -#10998=ORIENTED_EDGE('',*,*,#16416,.T.); -#10999=ORIENTED_EDGE('',*,*,#14182,.F.); -#11000=ORIENTED_EDGE('',*,*,#15254,.F.); -#11001=ORIENTED_EDGE('',*,*,#14491,.F.); -#11002=ORIENTED_EDGE('',*,*,#16417,.T.); -#11003=ORIENTED_EDGE('',*,*,#14181,.F.); -#11004=ORIENTED_EDGE('',*,*,#16418,.F.); -#11005=ORIENTED_EDGE('',*,*,#14493,.F.); -#11006=ORIENTED_EDGE('',*,*,#15255,.T.); -#11007=ORIENTED_EDGE('',*,*,#14179,.F.); -#11008=ORIENTED_EDGE('',*,*,#16419,.F.); -#11009=ORIENTED_EDGE('',*,*,#14494,.F.); -#11010=ORIENTED_EDGE('',*,*,#16418,.T.); -#11011=ORIENTED_EDGE('',*,*,#14178,.F.); -#11012=ORIENTED_EDGE('',*,*,#16420,.F.); -#11013=ORIENTED_EDGE('',*,*,#14495,.F.); -#11014=ORIENTED_EDGE('',*,*,#16419,.T.); -#11015=ORIENTED_EDGE('',*,*,#14177,.F.); -#11016=ORIENTED_EDGE('',*,*,#14176,.T.); -#11017=ORIENTED_EDGE('',*,*,#16421,.F.); -#11018=ORIENTED_EDGE('',*,*,#14496,.T.); -#11019=ORIENTED_EDGE('',*,*,#16420,.T.); -#11020=ORIENTED_EDGE('',*,*,#16422,.F.); -#11021=ORIENTED_EDGE('',*,*,#14497,.F.); -#11022=ORIENTED_EDGE('',*,*,#16421,.T.); -#11023=ORIENTED_EDGE('',*,*,#14175,.F.); -#11024=ORIENTED_EDGE('',*,*,#16423,.F.); -#11025=ORIENTED_EDGE('',*,*,#14498,.F.); -#11026=ORIENTED_EDGE('',*,*,#16422,.T.); -#11027=ORIENTED_EDGE('',*,*,#14174,.F.); -#11028=ORIENTED_EDGE('',*,*,#16424,.F.); -#11029=ORIENTED_EDGE('',*,*,#15547,.T.); -#11030=ORIENTED_EDGE('',*,*,#15462,.F.); -#11031=ORIENTED_EDGE('',*,*,#16425,.T.); -#11032=ORIENTED_EDGE('',*,*,#15340,.F.); -#11033=ORIENTED_EDGE('',*,*,#15339,.T.); -#11034=ORIENTED_EDGE('',*,*,#16413,.F.); -#11035=ORIENTED_EDGE('',*,*,#15548,.F.); -#11036=ORIENTED_EDGE('',*,*,#16424,.T.); -#11037=ORIENTED_EDGE('',*,*,#15338,.T.); -#11038=ORIENTED_EDGE('',*,*,#16426,.F.); -#11039=ORIENTED_EDGE('',*,*,#15545,.F.); -#11040=ORIENTED_EDGE('',*,*,#16423,.T.); -#11041=ORIENTED_EDGE('',*,*,#16427,.F.); -#11042=ORIENTED_EDGE('',*,*,#15459,.F.); -#11043=ORIENTED_EDGE('',*,*,#15546,.T.); -#11044=ORIENTED_EDGE('',*,*,#16426,.T.); -#11045=ORIENTED_EDGE('',*,*,#15337,.F.); -#11046=ORIENTED_EDGE('',*,*,#16425,.F.); -#11047=ORIENTED_EDGE('',*,*,#15461,.F.); -#11048=ORIENTED_EDGE('',*,*,#15341,.F.); -#11049=ORIENTED_EDGE('',*,*,#15460,.F.); -#11050=ORIENTED_EDGE('',*,*,#16427,.T.); -#11051=ORIENTED_EDGE('',*,*,#15336,.F.); -#11052=ORIENTED_EDGE('',*,*,#16428,.F.); -#11053=ORIENTED_EDGE('',*,*,#14500,.F.); -#11054=ORIENTED_EDGE('',*,*,#16429,.T.); -#11055=ORIENTED_EDGE('',*,*,#14172,.F.); -#11056=ORIENTED_EDGE('',*,*,#16430,.F.); -#11057=ORIENTED_EDGE('',*,*,#14501,.F.); -#11058=ORIENTED_EDGE('',*,*,#16428,.T.); -#11059=ORIENTED_EDGE('',*,*,#14171,.F.); -#11060=ORIENTED_EDGE('',*,*,#14170,.T.); -#11061=ORIENTED_EDGE('',*,*,#16431,.F.); -#11062=ORIENTED_EDGE('',*,*,#14502,.T.); -#11063=ORIENTED_EDGE('',*,*,#16430,.T.); -#11064=ORIENTED_EDGE('',*,*,#16432,.F.); -#11065=ORIENTED_EDGE('',*,*,#14503,.F.); -#11066=ORIENTED_EDGE('',*,*,#16431,.T.); -#11067=ORIENTED_EDGE('',*,*,#14169,.F.); -#11068=ORIENTED_EDGE('',*,*,#16433,.F.); -#11069=ORIENTED_EDGE('',*,*,#14504,.F.); -#11070=ORIENTED_EDGE('',*,*,#16432,.T.); -#11071=ORIENTED_EDGE('',*,*,#14168,.F.); -#11072=ORIENTED_EDGE('',*,*,#15256,.F.); -#11073=ORIENTED_EDGE('',*,*,#14505,.F.); -#11074=ORIENTED_EDGE('',*,*,#16433,.T.); -#11075=ORIENTED_EDGE('',*,*,#14167,.F.); -#11076=ORIENTED_EDGE('',*,*,#16434,.F.); -#11077=ORIENTED_EDGE('',*,*,#14507,.F.); -#11078=ORIENTED_EDGE('',*,*,#15257,.T.); -#11079=ORIENTED_EDGE('',*,*,#14165,.F.); -#11080=ORIENTED_EDGE('',*,*,#16435,.F.); -#11081=ORIENTED_EDGE('',*,*,#14508,.F.); -#11082=ORIENTED_EDGE('',*,*,#16434,.T.); -#11083=ORIENTED_EDGE('',*,*,#14164,.F.); -#11084=ORIENTED_EDGE('',*,*,#16436,.F.); -#11085=ORIENTED_EDGE('',*,*,#14509,.F.); -#11086=ORIENTED_EDGE('',*,*,#16435,.T.); -#11087=ORIENTED_EDGE('',*,*,#14163,.F.); -#11088=ORIENTED_EDGE('',*,*,#14162,.T.); -#11089=ORIENTED_EDGE('',*,*,#16437,.F.); -#11090=ORIENTED_EDGE('',*,*,#14510,.T.); -#11091=ORIENTED_EDGE('',*,*,#16436,.T.); -#11092=ORIENTED_EDGE('',*,*,#16438,.F.); -#11093=ORIENTED_EDGE('',*,*,#14511,.F.); -#11094=ORIENTED_EDGE('',*,*,#16437,.T.); -#11095=ORIENTED_EDGE('',*,*,#14161,.F.); -#11096=ORIENTED_EDGE('',*,*,#16439,.F.); -#11097=ORIENTED_EDGE('',*,*,#14512,.F.); -#11098=ORIENTED_EDGE('',*,*,#16438,.T.); -#11099=ORIENTED_EDGE('',*,*,#14160,.F.); -#11100=ORIENTED_EDGE('',*,*,#16440,.F.); -#11101=ORIENTED_EDGE('',*,*,#15543,.T.); -#11102=ORIENTED_EDGE('',*,*,#15457,.F.); -#11103=ORIENTED_EDGE('',*,*,#16441,.T.); -#11104=ORIENTED_EDGE('',*,*,#15333,.F.); -#11105=ORIENTED_EDGE('',*,*,#15332,.T.); -#11106=ORIENTED_EDGE('',*,*,#16429,.F.); -#11107=ORIENTED_EDGE('',*,*,#15544,.F.); -#11108=ORIENTED_EDGE('',*,*,#16440,.T.); -#11109=ORIENTED_EDGE('',*,*,#15331,.T.); -#11110=ORIENTED_EDGE('',*,*,#16442,.F.); -#11111=ORIENTED_EDGE('',*,*,#15541,.F.); -#11112=ORIENTED_EDGE('',*,*,#16439,.T.); -#11113=ORIENTED_EDGE('',*,*,#16443,.F.); -#11114=ORIENTED_EDGE('',*,*,#15454,.F.); -#11115=ORIENTED_EDGE('',*,*,#15542,.T.); -#11116=ORIENTED_EDGE('',*,*,#16442,.T.); -#11117=ORIENTED_EDGE('',*,*,#15330,.F.); -#11118=ORIENTED_EDGE('',*,*,#16441,.F.); -#11119=ORIENTED_EDGE('',*,*,#15456,.F.); -#11120=ORIENTED_EDGE('',*,*,#15334,.F.); -#11121=ORIENTED_EDGE('',*,*,#15455,.F.); -#11122=ORIENTED_EDGE('',*,*,#16443,.T.); -#11123=ORIENTED_EDGE('',*,*,#15329,.F.); -#11124=ORIENTED_EDGE('',*,*,#16444,.F.); -#11125=ORIENTED_EDGE('',*,*,#14514,.F.); -#11126=ORIENTED_EDGE('',*,*,#16445,.T.); -#11127=ORIENTED_EDGE('',*,*,#14158,.F.); -#11128=ORIENTED_EDGE('',*,*,#16446,.F.); -#11129=ORIENTED_EDGE('',*,*,#14515,.F.); -#11130=ORIENTED_EDGE('',*,*,#16444,.T.); -#11131=ORIENTED_EDGE('',*,*,#14157,.F.); -#11132=ORIENTED_EDGE('',*,*,#14156,.T.); -#11133=ORIENTED_EDGE('',*,*,#16447,.F.); -#11134=ORIENTED_EDGE('',*,*,#14516,.T.); -#11135=ORIENTED_EDGE('',*,*,#16446,.T.); -#11136=ORIENTED_EDGE('',*,*,#16448,.F.); -#11137=ORIENTED_EDGE('',*,*,#14517,.F.); -#11138=ORIENTED_EDGE('',*,*,#16447,.T.); -#11139=ORIENTED_EDGE('',*,*,#14155,.F.); -#11140=ORIENTED_EDGE('',*,*,#16449,.F.); -#11141=ORIENTED_EDGE('',*,*,#14518,.F.); -#11142=ORIENTED_EDGE('',*,*,#16448,.T.); -#11143=ORIENTED_EDGE('',*,*,#14154,.F.); -#11144=ORIENTED_EDGE('',*,*,#15258,.F.); -#11145=ORIENTED_EDGE('',*,*,#14519,.F.); -#11146=ORIENTED_EDGE('',*,*,#16449,.T.); -#11147=ORIENTED_EDGE('',*,*,#14153,.F.); -#11148=ORIENTED_EDGE('',*,*,#16450,.F.); -#11149=ORIENTED_EDGE('',*,*,#14521,.F.); -#11150=ORIENTED_EDGE('',*,*,#15259,.T.); -#11151=ORIENTED_EDGE('',*,*,#14151,.F.); -#11152=ORIENTED_EDGE('',*,*,#16451,.F.); -#11153=ORIENTED_EDGE('',*,*,#14522,.F.); -#11154=ORIENTED_EDGE('',*,*,#16450,.T.); -#11155=ORIENTED_EDGE('',*,*,#14150,.F.); -#11156=ORIENTED_EDGE('',*,*,#16452,.F.); -#11157=ORIENTED_EDGE('',*,*,#14523,.F.); -#11158=ORIENTED_EDGE('',*,*,#16451,.T.); -#11159=ORIENTED_EDGE('',*,*,#14149,.F.); -#11160=ORIENTED_EDGE('',*,*,#14148,.T.); -#11161=ORIENTED_EDGE('',*,*,#16453,.F.); -#11162=ORIENTED_EDGE('',*,*,#14524,.T.); -#11163=ORIENTED_EDGE('',*,*,#16452,.T.); -#11164=ORIENTED_EDGE('',*,*,#16454,.F.); -#11165=ORIENTED_EDGE('',*,*,#14525,.F.); -#11166=ORIENTED_EDGE('',*,*,#16453,.T.); -#11167=ORIENTED_EDGE('',*,*,#14147,.F.); -#11168=ORIENTED_EDGE('',*,*,#16455,.F.); -#11169=ORIENTED_EDGE('',*,*,#14526,.F.); -#11170=ORIENTED_EDGE('',*,*,#16454,.T.); -#11171=ORIENTED_EDGE('',*,*,#14146,.F.); -#11172=ORIENTED_EDGE('',*,*,#16456,.F.); -#11173=ORIENTED_EDGE('',*,*,#15539,.T.); -#11174=ORIENTED_EDGE('',*,*,#15452,.F.); -#11175=ORIENTED_EDGE('',*,*,#16457,.T.); -#11176=ORIENTED_EDGE('',*,*,#15326,.F.); -#11177=ORIENTED_EDGE('',*,*,#15325,.T.); -#11178=ORIENTED_EDGE('',*,*,#16445,.F.); -#11179=ORIENTED_EDGE('',*,*,#15540,.F.); -#11180=ORIENTED_EDGE('',*,*,#16456,.T.); -#11181=ORIENTED_EDGE('',*,*,#15324,.T.); -#11182=ORIENTED_EDGE('',*,*,#16458,.F.); -#11183=ORIENTED_EDGE('',*,*,#15537,.F.); -#11184=ORIENTED_EDGE('',*,*,#16455,.T.); -#11185=ORIENTED_EDGE('',*,*,#16459,.F.); -#11186=ORIENTED_EDGE('',*,*,#15449,.F.); -#11187=ORIENTED_EDGE('',*,*,#15538,.T.); -#11188=ORIENTED_EDGE('',*,*,#16458,.T.); -#11189=ORIENTED_EDGE('',*,*,#15323,.F.); -#11190=ORIENTED_EDGE('',*,*,#16457,.F.); -#11191=ORIENTED_EDGE('',*,*,#15451,.F.); -#11192=ORIENTED_EDGE('',*,*,#15327,.F.); -#11193=ORIENTED_EDGE('',*,*,#15450,.F.); -#11194=ORIENTED_EDGE('',*,*,#16459,.T.); -#11195=ORIENTED_EDGE('',*,*,#15322,.F.); -#11196=ORIENTED_EDGE('',*,*,#16460,.F.); -#11197=ORIENTED_EDGE('',*,*,#14528,.F.); -#11198=ORIENTED_EDGE('',*,*,#16461,.T.); -#11199=ORIENTED_EDGE('',*,*,#14144,.F.); -#11200=ORIENTED_EDGE('',*,*,#16462,.F.); -#11201=ORIENTED_EDGE('',*,*,#14529,.F.); -#11202=ORIENTED_EDGE('',*,*,#16460,.T.); -#11203=ORIENTED_EDGE('',*,*,#14143,.F.); -#11204=ORIENTED_EDGE('',*,*,#14142,.T.); -#11205=ORIENTED_EDGE('',*,*,#16463,.F.); -#11206=ORIENTED_EDGE('',*,*,#14530,.T.); -#11207=ORIENTED_EDGE('',*,*,#16462,.T.); -#11208=ORIENTED_EDGE('',*,*,#16464,.F.); -#11209=ORIENTED_EDGE('',*,*,#14531,.F.); -#11210=ORIENTED_EDGE('',*,*,#16463,.T.); -#11211=ORIENTED_EDGE('',*,*,#14141,.F.); -#11212=ORIENTED_EDGE('',*,*,#16465,.F.); -#11213=ORIENTED_EDGE('',*,*,#14532,.F.); -#11214=ORIENTED_EDGE('',*,*,#16464,.T.); -#11215=ORIENTED_EDGE('',*,*,#14140,.F.); -#11216=ORIENTED_EDGE('',*,*,#15260,.F.); -#11217=ORIENTED_EDGE('',*,*,#14533,.F.); -#11218=ORIENTED_EDGE('',*,*,#16465,.T.); -#11219=ORIENTED_EDGE('',*,*,#14139,.F.); -#11220=ORIENTED_EDGE('',*,*,#16466,.F.); -#11221=ORIENTED_EDGE('',*,*,#14535,.F.); -#11222=ORIENTED_EDGE('',*,*,#15261,.T.); -#11223=ORIENTED_EDGE('',*,*,#14137,.F.); -#11224=ORIENTED_EDGE('',*,*,#16467,.F.); -#11225=ORIENTED_EDGE('',*,*,#14536,.F.); -#11226=ORIENTED_EDGE('',*,*,#16466,.T.); -#11227=ORIENTED_EDGE('',*,*,#14136,.F.); -#11228=ORIENTED_EDGE('',*,*,#16468,.F.); -#11229=ORIENTED_EDGE('',*,*,#14537,.F.); -#11230=ORIENTED_EDGE('',*,*,#16467,.T.); -#11231=ORIENTED_EDGE('',*,*,#14135,.F.); -#11232=ORIENTED_EDGE('',*,*,#14134,.T.); -#11233=ORIENTED_EDGE('',*,*,#16469,.F.); -#11234=ORIENTED_EDGE('',*,*,#14538,.T.); -#11235=ORIENTED_EDGE('',*,*,#16468,.T.); -#11236=ORIENTED_EDGE('',*,*,#16470,.F.); -#11237=ORIENTED_EDGE('',*,*,#14539,.F.); -#11238=ORIENTED_EDGE('',*,*,#16469,.T.); -#11239=ORIENTED_EDGE('',*,*,#14133,.F.); -#11240=ORIENTED_EDGE('',*,*,#16471,.F.); -#11241=ORIENTED_EDGE('',*,*,#14540,.F.); -#11242=ORIENTED_EDGE('',*,*,#16470,.T.); -#11243=ORIENTED_EDGE('',*,*,#14132,.F.); -#11244=ORIENTED_EDGE('',*,*,#16472,.F.); -#11245=ORIENTED_EDGE('',*,*,#15535,.T.); -#11246=ORIENTED_EDGE('',*,*,#15447,.F.); -#11247=ORIENTED_EDGE('',*,*,#16473,.T.); -#11248=ORIENTED_EDGE('',*,*,#15319,.F.); -#11249=ORIENTED_EDGE('',*,*,#15318,.T.); -#11250=ORIENTED_EDGE('',*,*,#16461,.F.); -#11251=ORIENTED_EDGE('',*,*,#15536,.F.); -#11252=ORIENTED_EDGE('',*,*,#16472,.T.); -#11253=ORIENTED_EDGE('',*,*,#15317,.T.); -#11254=ORIENTED_EDGE('',*,*,#16474,.F.); -#11255=ORIENTED_EDGE('',*,*,#15533,.F.); -#11256=ORIENTED_EDGE('',*,*,#16471,.T.); -#11257=ORIENTED_EDGE('',*,*,#16475,.F.); -#11258=ORIENTED_EDGE('',*,*,#15444,.F.); -#11259=ORIENTED_EDGE('',*,*,#15534,.T.); -#11260=ORIENTED_EDGE('',*,*,#16474,.T.); -#11261=ORIENTED_EDGE('',*,*,#15316,.F.); -#11262=ORIENTED_EDGE('',*,*,#16473,.F.); -#11263=ORIENTED_EDGE('',*,*,#15446,.F.); -#11264=ORIENTED_EDGE('',*,*,#15320,.F.); -#11265=ORIENTED_EDGE('',*,*,#15445,.F.); -#11266=ORIENTED_EDGE('',*,*,#16475,.T.); -#11267=ORIENTED_EDGE('',*,*,#15315,.F.); -#11268=ORIENTED_EDGE('',*,*,#16476,.F.); -#11269=ORIENTED_EDGE('',*,*,#14542,.F.); -#11270=ORIENTED_EDGE('',*,*,#16477,.T.); -#11271=ORIENTED_EDGE('',*,*,#14130,.F.); -#11272=ORIENTED_EDGE('',*,*,#16478,.F.); -#11273=ORIENTED_EDGE('',*,*,#14543,.F.); -#11274=ORIENTED_EDGE('',*,*,#16476,.T.); -#11275=ORIENTED_EDGE('',*,*,#14129,.F.); -#11276=ORIENTED_EDGE('',*,*,#14128,.T.); -#11277=ORIENTED_EDGE('',*,*,#16479,.F.); -#11278=ORIENTED_EDGE('',*,*,#14544,.T.); -#11279=ORIENTED_EDGE('',*,*,#16478,.T.); -#11280=ORIENTED_EDGE('',*,*,#16480,.F.); -#11281=ORIENTED_EDGE('',*,*,#14545,.F.); -#11282=ORIENTED_EDGE('',*,*,#16479,.T.); -#11283=ORIENTED_EDGE('',*,*,#14127,.F.); -#11284=ORIENTED_EDGE('',*,*,#16481,.F.); -#11285=ORIENTED_EDGE('',*,*,#14546,.F.); -#11286=ORIENTED_EDGE('',*,*,#16480,.T.); -#11287=ORIENTED_EDGE('',*,*,#14126,.F.); -#11288=ORIENTED_EDGE('',*,*,#15262,.F.); -#11289=ORIENTED_EDGE('',*,*,#14547,.F.); -#11290=ORIENTED_EDGE('',*,*,#16481,.T.); -#11291=ORIENTED_EDGE('',*,*,#14125,.F.); -#11292=ORIENTED_EDGE('',*,*,#16482,.F.); -#11293=ORIENTED_EDGE('',*,*,#14549,.F.); -#11294=ORIENTED_EDGE('',*,*,#15263,.T.); -#11295=ORIENTED_EDGE('',*,*,#14123,.F.); -#11296=ORIENTED_EDGE('',*,*,#16483,.F.); -#11297=ORIENTED_EDGE('',*,*,#14550,.F.); -#11298=ORIENTED_EDGE('',*,*,#16482,.T.); -#11299=ORIENTED_EDGE('',*,*,#14122,.F.); -#11300=ORIENTED_EDGE('',*,*,#16484,.F.); -#11301=ORIENTED_EDGE('',*,*,#14551,.F.); -#11302=ORIENTED_EDGE('',*,*,#16483,.T.); -#11303=ORIENTED_EDGE('',*,*,#14121,.F.); -#11304=ORIENTED_EDGE('',*,*,#14120,.T.); -#11305=ORIENTED_EDGE('',*,*,#16485,.F.); -#11306=ORIENTED_EDGE('',*,*,#14552,.T.); -#11307=ORIENTED_EDGE('',*,*,#16484,.T.); -#11308=ORIENTED_EDGE('',*,*,#16486,.F.); -#11309=ORIENTED_EDGE('',*,*,#14553,.F.); -#11310=ORIENTED_EDGE('',*,*,#16485,.T.); -#11311=ORIENTED_EDGE('',*,*,#14119,.F.); -#11312=ORIENTED_EDGE('',*,*,#16487,.F.); -#11313=ORIENTED_EDGE('',*,*,#14554,.F.); -#11314=ORIENTED_EDGE('',*,*,#16486,.T.); -#11315=ORIENTED_EDGE('',*,*,#14118,.F.); -#11316=ORIENTED_EDGE('',*,*,#16488,.F.); -#11317=ORIENTED_EDGE('',*,*,#15531,.T.); -#11318=ORIENTED_EDGE('',*,*,#15442,.F.); -#11319=ORIENTED_EDGE('',*,*,#16489,.T.); -#11320=ORIENTED_EDGE('',*,*,#15312,.F.); -#11321=ORIENTED_EDGE('',*,*,#15311,.T.); -#11322=ORIENTED_EDGE('',*,*,#16477,.F.); -#11323=ORIENTED_EDGE('',*,*,#15532,.F.); -#11324=ORIENTED_EDGE('',*,*,#16488,.T.); -#11325=ORIENTED_EDGE('',*,*,#15310,.T.); -#11326=ORIENTED_EDGE('',*,*,#16490,.F.); -#11327=ORIENTED_EDGE('',*,*,#15529,.F.); -#11328=ORIENTED_EDGE('',*,*,#16487,.T.); -#11329=ORIENTED_EDGE('',*,*,#16491,.F.); -#11330=ORIENTED_EDGE('',*,*,#15439,.F.); -#11331=ORIENTED_EDGE('',*,*,#15530,.T.); -#11332=ORIENTED_EDGE('',*,*,#16490,.T.); -#11333=ORIENTED_EDGE('',*,*,#15309,.F.); -#11334=ORIENTED_EDGE('',*,*,#16489,.F.); -#11335=ORIENTED_EDGE('',*,*,#15441,.F.); -#11336=ORIENTED_EDGE('',*,*,#15313,.F.); -#11337=ORIENTED_EDGE('',*,*,#15440,.F.); -#11338=ORIENTED_EDGE('',*,*,#16491,.T.); -#11339=ORIENTED_EDGE('',*,*,#15308,.F.); -#11340=ORIENTED_EDGE('',*,*,#16492,.F.); -#11341=ORIENTED_EDGE('',*,*,#14556,.F.); -#11342=ORIENTED_EDGE('',*,*,#16493,.T.); -#11343=ORIENTED_EDGE('',*,*,#14116,.F.); -#11344=ORIENTED_EDGE('',*,*,#16494,.F.); -#11345=ORIENTED_EDGE('',*,*,#14557,.F.); -#11346=ORIENTED_EDGE('',*,*,#16492,.T.); -#11347=ORIENTED_EDGE('',*,*,#14115,.F.); -#11348=ORIENTED_EDGE('',*,*,#14114,.T.); -#11349=ORIENTED_EDGE('',*,*,#16495,.F.); -#11350=ORIENTED_EDGE('',*,*,#14558,.T.); -#11351=ORIENTED_EDGE('',*,*,#16494,.T.); -#11352=ORIENTED_EDGE('',*,*,#16496,.F.); -#11353=ORIENTED_EDGE('',*,*,#14559,.F.); -#11354=ORIENTED_EDGE('',*,*,#16495,.T.); -#11355=ORIENTED_EDGE('',*,*,#14113,.F.); -#11356=ORIENTED_EDGE('',*,*,#16497,.F.); -#11357=ORIENTED_EDGE('',*,*,#14560,.F.); -#11358=ORIENTED_EDGE('',*,*,#16496,.T.); -#11359=ORIENTED_EDGE('',*,*,#14112,.F.); -#11360=ORIENTED_EDGE('',*,*,#15264,.F.); -#11361=ORIENTED_EDGE('',*,*,#14561,.F.); -#11362=ORIENTED_EDGE('',*,*,#16497,.T.); -#11363=ORIENTED_EDGE('',*,*,#14111,.F.); -#11364=ORIENTED_EDGE('',*,*,#16498,.F.); -#11365=ORIENTED_EDGE('',*,*,#14563,.F.); -#11366=ORIENTED_EDGE('',*,*,#15265,.T.); -#11367=ORIENTED_EDGE('',*,*,#14109,.F.); -#11368=ORIENTED_EDGE('',*,*,#16499,.F.); -#11369=ORIENTED_EDGE('',*,*,#14564,.F.); -#11370=ORIENTED_EDGE('',*,*,#16498,.T.); -#11371=ORIENTED_EDGE('',*,*,#14108,.F.); -#11372=ORIENTED_EDGE('',*,*,#16500,.F.); -#11373=ORIENTED_EDGE('',*,*,#14565,.F.); -#11374=ORIENTED_EDGE('',*,*,#16499,.T.); -#11375=ORIENTED_EDGE('',*,*,#14107,.F.); -#11376=ORIENTED_EDGE('',*,*,#14106,.T.); -#11377=ORIENTED_EDGE('',*,*,#16501,.F.); -#11378=ORIENTED_EDGE('',*,*,#14566,.T.); -#11379=ORIENTED_EDGE('',*,*,#16500,.T.); -#11380=ORIENTED_EDGE('',*,*,#16502,.F.); -#11381=ORIENTED_EDGE('',*,*,#14567,.F.); -#11382=ORIENTED_EDGE('',*,*,#16501,.T.); -#11383=ORIENTED_EDGE('',*,*,#14105,.F.); -#11384=ORIENTED_EDGE('',*,*,#16503,.F.); -#11385=ORIENTED_EDGE('',*,*,#14568,.F.); -#11386=ORIENTED_EDGE('',*,*,#16502,.T.); -#11387=ORIENTED_EDGE('',*,*,#14104,.F.); -#11388=ORIENTED_EDGE('',*,*,#16504,.F.); -#11389=ORIENTED_EDGE('',*,*,#15527,.T.); -#11390=ORIENTED_EDGE('',*,*,#15437,.F.); -#11391=ORIENTED_EDGE('',*,*,#16505,.T.); -#11392=ORIENTED_EDGE('',*,*,#15305,.F.); -#11393=ORIENTED_EDGE('',*,*,#15304,.T.); -#11394=ORIENTED_EDGE('',*,*,#16493,.F.); -#11395=ORIENTED_EDGE('',*,*,#15528,.F.); -#11396=ORIENTED_EDGE('',*,*,#16504,.T.); -#11397=ORIENTED_EDGE('',*,*,#15303,.T.); -#11398=ORIENTED_EDGE('',*,*,#16506,.F.); -#11399=ORIENTED_EDGE('',*,*,#15525,.F.); -#11400=ORIENTED_EDGE('',*,*,#16503,.T.); -#11401=ORIENTED_EDGE('',*,*,#16507,.F.); -#11402=ORIENTED_EDGE('',*,*,#15434,.F.); -#11403=ORIENTED_EDGE('',*,*,#15526,.T.); -#11404=ORIENTED_EDGE('',*,*,#16506,.T.); -#11405=ORIENTED_EDGE('',*,*,#15302,.F.); -#11406=ORIENTED_EDGE('',*,*,#16505,.F.); -#11407=ORIENTED_EDGE('',*,*,#15436,.F.); -#11408=ORIENTED_EDGE('',*,*,#15306,.F.); -#11409=ORIENTED_EDGE('',*,*,#15435,.F.); -#11410=ORIENTED_EDGE('',*,*,#16507,.T.); -#11411=ORIENTED_EDGE('',*,*,#15301,.F.); -#11412=ORIENTED_EDGE('',*,*,#16508,.F.); -#11413=ORIENTED_EDGE('',*,*,#14570,.F.); -#11414=ORIENTED_EDGE('',*,*,#16509,.T.); -#11415=ORIENTED_EDGE('',*,*,#14102,.F.); -#11416=ORIENTED_EDGE('',*,*,#16510,.F.); -#11417=ORIENTED_EDGE('',*,*,#14571,.F.); -#11418=ORIENTED_EDGE('',*,*,#16508,.T.); -#11419=ORIENTED_EDGE('',*,*,#14101,.F.); -#11420=ORIENTED_EDGE('',*,*,#14100,.T.); -#11421=ORIENTED_EDGE('',*,*,#16511,.F.); -#11422=ORIENTED_EDGE('',*,*,#14572,.T.); -#11423=ORIENTED_EDGE('',*,*,#16510,.T.); -#11424=ORIENTED_EDGE('',*,*,#16512,.F.); -#11425=ORIENTED_EDGE('',*,*,#14573,.F.); -#11426=ORIENTED_EDGE('',*,*,#16511,.T.); -#11427=ORIENTED_EDGE('',*,*,#14099,.F.); -#11428=ORIENTED_EDGE('',*,*,#16513,.F.); -#11429=ORIENTED_EDGE('',*,*,#14574,.F.); -#11430=ORIENTED_EDGE('',*,*,#16512,.T.); -#11431=ORIENTED_EDGE('',*,*,#14098,.F.); -#11432=ORIENTED_EDGE('',*,*,#15266,.F.); -#11433=ORIENTED_EDGE('',*,*,#14575,.F.); -#11434=ORIENTED_EDGE('',*,*,#16513,.T.); -#11435=ORIENTED_EDGE('',*,*,#14097,.F.); -#11436=ORIENTED_EDGE('',*,*,#16514,.F.); -#11437=ORIENTED_EDGE('',*,*,#14577,.F.); -#11438=ORIENTED_EDGE('',*,*,#15267,.T.); -#11439=ORIENTED_EDGE('',*,*,#14095,.F.); -#11440=ORIENTED_EDGE('',*,*,#16515,.F.); -#11441=ORIENTED_EDGE('',*,*,#14578,.F.); -#11442=ORIENTED_EDGE('',*,*,#16514,.T.); -#11443=ORIENTED_EDGE('',*,*,#14094,.F.); -#11444=ORIENTED_EDGE('',*,*,#16516,.F.); -#11445=ORIENTED_EDGE('',*,*,#14579,.F.); -#11446=ORIENTED_EDGE('',*,*,#16515,.T.); -#11447=ORIENTED_EDGE('',*,*,#14093,.F.); -#11448=ORIENTED_EDGE('',*,*,#14092,.T.); -#11449=ORIENTED_EDGE('',*,*,#16517,.F.); -#11450=ORIENTED_EDGE('',*,*,#14580,.T.); -#11451=ORIENTED_EDGE('',*,*,#16516,.T.); -#11452=ORIENTED_EDGE('',*,*,#16518,.F.); -#11453=ORIENTED_EDGE('',*,*,#14581,.F.); -#11454=ORIENTED_EDGE('',*,*,#16517,.T.); -#11455=ORIENTED_EDGE('',*,*,#14091,.F.); -#11456=ORIENTED_EDGE('',*,*,#16519,.F.); -#11457=ORIENTED_EDGE('',*,*,#14582,.F.); -#11458=ORIENTED_EDGE('',*,*,#16518,.T.); -#11459=ORIENTED_EDGE('',*,*,#14090,.F.); -#11460=ORIENTED_EDGE('',*,*,#16520,.F.); -#11461=ORIENTED_EDGE('',*,*,#15523,.T.); -#11462=ORIENTED_EDGE('',*,*,#15432,.F.); -#11463=ORIENTED_EDGE('',*,*,#16521,.T.); -#11464=ORIENTED_EDGE('',*,*,#15298,.F.); -#11465=ORIENTED_EDGE('',*,*,#15297,.T.); -#11466=ORIENTED_EDGE('',*,*,#16509,.F.); -#11467=ORIENTED_EDGE('',*,*,#15524,.F.); -#11468=ORIENTED_EDGE('',*,*,#16520,.T.); -#11469=ORIENTED_EDGE('',*,*,#15296,.T.); -#11470=ORIENTED_EDGE('',*,*,#16522,.F.); -#11471=ORIENTED_EDGE('',*,*,#15521,.F.); -#11472=ORIENTED_EDGE('',*,*,#16519,.T.); -#11473=ORIENTED_EDGE('',*,*,#16523,.F.); -#11474=ORIENTED_EDGE('',*,*,#15429,.F.); -#11475=ORIENTED_EDGE('',*,*,#15522,.T.); -#11476=ORIENTED_EDGE('',*,*,#16522,.T.); -#11477=ORIENTED_EDGE('',*,*,#15295,.F.); -#11478=ORIENTED_EDGE('',*,*,#16521,.F.); -#11479=ORIENTED_EDGE('',*,*,#15431,.F.); -#11480=ORIENTED_EDGE('',*,*,#15299,.F.); -#11481=ORIENTED_EDGE('',*,*,#15430,.F.); -#11482=ORIENTED_EDGE('',*,*,#16523,.T.); -#11483=ORIENTED_EDGE('',*,*,#15294,.F.); -#11484=ORIENTED_EDGE('',*,*,#16524,.F.); -#11485=ORIENTED_EDGE('',*,*,#14584,.F.); -#11486=ORIENTED_EDGE('',*,*,#16525,.T.); -#11487=ORIENTED_EDGE('',*,*,#14088,.F.); -#11488=ORIENTED_EDGE('',*,*,#16526,.F.); -#11489=ORIENTED_EDGE('',*,*,#14585,.F.); -#11490=ORIENTED_EDGE('',*,*,#16524,.T.); -#11491=ORIENTED_EDGE('',*,*,#14087,.F.); -#11492=ORIENTED_EDGE('',*,*,#14086,.T.); -#11493=ORIENTED_EDGE('',*,*,#16527,.F.); -#11494=ORIENTED_EDGE('',*,*,#14586,.T.); -#11495=ORIENTED_EDGE('',*,*,#16526,.T.); -#11496=ORIENTED_EDGE('',*,*,#16528,.F.); -#11497=ORIENTED_EDGE('',*,*,#14587,.F.); -#11498=ORIENTED_EDGE('',*,*,#16527,.T.); -#11499=ORIENTED_EDGE('',*,*,#14085,.F.); -#11500=ORIENTED_EDGE('',*,*,#16529,.F.); -#11501=ORIENTED_EDGE('',*,*,#14588,.F.); -#11502=ORIENTED_EDGE('',*,*,#16528,.T.); -#11503=ORIENTED_EDGE('',*,*,#14084,.F.); -#11504=ORIENTED_EDGE('',*,*,#15268,.F.); -#11505=ORIENTED_EDGE('',*,*,#14589,.F.); -#11506=ORIENTED_EDGE('',*,*,#16529,.T.); -#11507=ORIENTED_EDGE('',*,*,#14083,.F.); -#11508=ORIENTED_EDGE('',*,*,#16530,.F.); -#11509=ORIENTED_EDGE('',*,*,#14591,.F.); -#11510=ORIENTED_EDGE('',*,*,#15269,.T.); -#11511=ORIENTED_EDGE('',*,*,#14081,.F.); -#11512=ORIENTED_EDGE('',*,*,#16531,.F.); -#11513=ORIENTED_EDGE('',*,*,#14592,.F.); -#11514=ORIENTED_EDGE('',*,*,#16530,.T.); -#11515=ORIENTED_EDGE('',*,*,#14080,.F.); -#11516=ORIENTED_EDGE('',*,*,#16532,.F.); -#11517=ORIENTED_EDGE('',*,*,#14593,.F.); -#11518=ORIENTED_EDGE('',*,*,#16531,.T.); -#11519=ORIENTED_EDGE('',*,*,#14079,.F.); -#11520=ORIENTED_EDGE('',*,*,#14078,.T.); -#11521=ORIENTED_EDGE('',*,*,#16533,.F.); -#11522=ORIENTED_EDGE('',*,*,#14594,.T.); -#11523=ORIENTED_EDGE('',*,*,#16532,.T.); -#11524=ORIENTED_EDGE('',*,*,#16534,.F.); -#11525=ORIENTED_EDGE('',*,*,#14595,.F.); -#11526=ORIENTED_EDGE('',*,*,#16533,.T.); -#11527=ORIENTED_EDGE('',*,*,#14077,.F.); -#11528=ORIENTED_EDGE('',*,*,#16535,.F.); -#11529=ORIENTED_EDGE('',*,*,#14596,.F.); -#11530=ORIENTED_EDGE('',*,*,#16534,.T.); -#11531=ORIENTED_EDGE('',*,*,#14076,.F.); -#11532=ORIENTED_EDGE('',*,*,#16536,.F.); -#11533=ORIENTED_EDGE('',*,*,#15519,.T.); -#11534=ORIENTED_EDGE('',*,*,#15427,.F.); -#11535=ORIENTED_EDGE('',*,*,#16537,.T.); -#11536=ORIENTED_EDGE('',*,*,#15291,.F.); -#11537=ORIENTED_EDGE('',*,*,#15290,.T.); -#11538=ORIENTED_EDGE('',*,*,#16525,.F.); -#11539=ORIENTED_EDGE('',*,*,#15520,.F.); -#11540=ORIENTED_EDGE('',*,*,#16536,.T.); -#11541=ORIENTED_EDGE('',*,*,#15289,.T.); -#11542=ORIENTED_EDGE('',*,*,#16538,.F.); -#11543=ORIENTED_EDGE('',*,*,#15517,.F.); -#11544=ORIENTED_EDGE('',*,*,#16535,.T.); -#11545=ORIENTED_EDGE('',*,*,#16539,.F.); -#11546=ORIENTED_EDGE('',*,*,#15424,.F.); -#11547=ORIENTED_EDGE('',*,*,#15518,.T.); -#11548=ORIENTED_EDGE('',*,*,#16538,.T.); -#11549=ORIENTED_EDGE('',*,*,#15288,.F.); -#11550=ORIENTED_EDGE('',*,*,#16537,.F.); -#11551=ORIENTED_EDGE('',*,*,#15426,.F.); -#11552=ORIENTED_EDGE('',*,*,#15292,.F.); -#11553=ORIENTED_EDGE('',*,*,#15425,.F.); -#11554=ORIENTED_EDGE('',*,*,#16539,.T.); -#11555=ORIENTED_EDGE('',*,*,#15287,.F.); -#11556=ORIENTED_EDGE('',*,*,#16540,.F.); -#11557=ORIENTED_EDGE('',*,*,#14598,.F.); -#11558=ORIENTED_EDGE('',*,*,#16541,.T.); -#11559=ORIENTED_EDGE('',*,*,#14074,.F.); -#11560=ORIENTED_EDGE('',*,*,#16542,.F.); -#11561=ORIENTED_EDGE('',*,*,#14599,.F.); -#11562=ORIENTED_EDGE('',*,*,#16540,.T.); -#11563=ORIENTED_EDGE('',*,*,#14073,.F.); -#11564=ORIENTED_EDGE('',*,*,#14072,.T.); -#11565=ORIENTED_EDGE('',*,*,#16543,.F.); -#11566=ORIENTED_EDGE('',*,*,#14600,.T.); -#11567=ORIENTED_EDGE('',*,*,#16542,.T.); -#11568=ORIENTED_EDGE('',*,*,#16544,.F.); -#11569=ORIENTED_EDGE('',*,*,#14601,.F.); -#11570=ORIENTED_EDGE('',*,*,#16543,.T.); -#11571=ORIENTED_EDGE('',*,*,#14071,.F.); -#11572=ORIENTED_EDGE('',*,*,#16545,.F.); -#11573=ORIENTED_EDGE('',*,*,#14602,.F.); -#11574=ORIENTED_EDGE('',*,*,#16544,.T.); -#11575=ORIENTED_EDGE('',*,*,#14070,.F.); -#11576=ORIENTED_EDGE('',*,*,#15270,.F.); -#11577=ORIENTED_EDGE('',*,*,#14603,.F.); -#11578=ORIENTED_EDGE('',*,*,#16545,.T.); -#11579=ORIENTED_EDGE('',*,*,#14069,.F.); -#11580=ORIENTED_EDGE('',*,*,#16546,.F.); -#11581=ORIENTED_EDGE('',*,*,#14605,.F.); -#11582=ORIENTED_EDGE('',*,*,#15271,.T.); -#11583=ORIENTED_EDGE('',*,*,#14067,.F.); -#11584=ORIENTED_EDGE('',*,*,#16547,.F.); -#11585=ORIENTED_EDGE('',*,*,#14606,.F.); -#11586=ORIENTED_EDGE('',*,*,#16546,.T.); -#11587=ORIENTED_EDGE('',*,*,#14066,.F.); -#11588=ORIENTED_EDGE('',*,*,#16548,.F.); -#11589=ORIENTED_EDGE('',*,*,#14607,.F.); -#11590=ORIENTED_EDGE('',*,*,#16547,.T.); -#11591=ORIENTED_EDGE('',*,*,#14065,.F.); -#11592=ORIENTED_EDGE('',*,*,#14064,.T.); -#11593=ORIENTED_EDGE('',*,*,#16549,.F.); -#11594=ORIENTED_EDGE('',*,*,#14608,.T.); -#11595=ORIENTED_EDGE('',*,*,#16548,.T.); -#11596=ORIENTED_EDGE('',*,*,#16550,.F.); -#11597=ORIENTED_EDGE('',*,*,#14609,.F.); -#11598=ORIENTED_EDGE('',*,*,#16549,.T.); -#11599=ORIENTED_EDGE('',*,*,#14063,.F.); -#11600=ORIENTED_EDGE('',*,*,#16551,.F.); -#11601=ORIENTED_EDGE('',*,*,#14610,.F.); -#11602=ORIENTED_EDGE('',*,*,#16550,.T.); -#11603=ORIENTED_EDGE('',*,*,#14062,.F.); -#11604=ORIENTED_EDGE('',*,*,#16552,.F.); -#11605=ORIENTED_EDGE('',*,*,#15515,.T.); -#11606=ORIENTED_EDGE('',*,*,#15422,.F.); -#11607=ORIENTED_EDGE('',*,*,#16553,.T.); -#11608=ORIENTED_EDGE('',*,*,#15284,.F.); -#11609=ORIENTED_EDGE('',*,*,#15283,.T.); -#11610=ORIENTED_EDGE('',*,*,#16541,.F.); -#11611=ORIENTED_EDGE('',*,*,#15516,.F.); -#11612=ORIENTED_EDGE('',*,*,#16552,.T.); -#11613=ORIENTED_EDGE('',*,*,#15282,.T.); -#11614=ORIENTED_EDGE('',*,*,#16554,.F.); -#11615=ORIENTED_EDGE('',*,*,#15513,.F.); -#11616=ORIENTED_EDGE('',*,*,#16551,.T.); -#11617=ORIENTED_EDGE('',*,*,#16555,.F.); -#11618=ORIENTED_EDGE('',*,*,#15419,.F.); -#11619=ORIENTED_EDGE('',*,*,#15514,.T.); -#11620=ORIENTED_EDGE('',*,*,#16554,.T.); -#11621=ORIENTED_EDGE('',*,*,#15281,.F.); -#11622=ORIENTED_EDGE('',*,*,#16553,.F.); -#11623=ORIENTED_EDGE('',*,*,#15421,.F.); -#11624=ORIENTED_EDGE('',*,*,#15285,.F.); -#11625=ORIENTED_EDGE('',*,*,#15420,.F.); -#11626=ORIENTED_EDGE('',*,*,#16555,.T.); -#11627=ORIENTED_EDGE('',*,*,#15280,.F.); -#11628=ORIENTED_EDGE('',*,*,#15274,.F.); -#11629=ORIENTED_EDGE('',*,*,#14054,.T.); -#11630=ORIENTED_EDGE('',*,*,#15189,.T.); -#11631=ORIENTED_EDGE('',*,*,#15186,.T.); -#11632=ORIENTED_EDGE('',*,*,#15910,.F.); -#11633=ORIENTED_EDGE('',*,*,#14622,.F.); -#11634=ORIENTED_EDGE('',*,*,#15191,.F.); -#11635=ORIENTED_EDGE('',*,*,#14618,.F.); -#11636=ORIENTED_EDGE('',*,*,#14334,.T.); -#11637=ORIENTED_EDGE('',*,*,#15272,.T.); -#11638=ORIENTED_EDGE('',*,*,#14338,.F.); -#11639=ORIENTED_EDGE('',*,*,#15193,.F.); -#11640=ORIENTED_EDGE('',*,*,#14902,.F.); -#11641=ORIENTED_EDGE('',*,*,#15908,.T.); -#11642=ORIENTED_EDGE('',*,*,#14906,.T.); -#11643=ORIENTED_EDGE('',*,*,#15195,.T.); -#11644=ORIENTED_EDGE('',*,*,#14620,.T.); -#11645=ORIENTED_EDGE('',*,*,#15192,.F.); -#11646=ORIENTED_EDGE('',*,*,#14336,.T.); -#11647=ORIENTED_EDGE('',*,*,#15190,.F.); -#11648=ORIENTED_EDGE('',*,*,#15188,.T.); -#11649=ORIENTED_EDGE('',*,*,#14052,.T.); -#11650=ORIENTED_EDGE('',*,*,#15194,.T.); -#11651=ORIENTED_EDGE('',*,*,#14904,.T.); -#11652=EDGE_CURVE('',#16556,#16557,#19773,.T.); -#11653=EDGE_CURVE('',#16556,#16558,#19774,.T.); -#11654=EDGE_CURVE('',#16559,#16558,#19775,.T.); -#11655=EDGE_CURVE('',#16560,#16559,#19776,.T.); -#11656=EDGE_CURVE('',#16560,#16561,#19777,.T.); -#11657=EDGE_CURVE('',#16561,#16557,#19778,.T.); -#11658=EDGE_CURVE('',#16562,#16563,#19779,.T.); -#11659=EDGE_CURVE('',#16562,#16564,#19780,.T.); -#11660=EDGE_CURVE('',#16565,#16564,#19781,.T.); -#11661=EDGE_CURVE('',#16566,#16565,#19782,.T.); -#11662=EDGE_CURVE('',#16566,#16567,#19783,.T.); -#11663=EDGE_CURVE('',#16567,#16563,#19784,.T.); -#11664=EDGE_CURVE('',#16568,#16557,#19785,.T.); -#11665=EDGE_CURVE('',#16569,#16561,#19786,.T.); -#11666=EDGE_CURVE('',#16569,#16570,#19787,.T.); -#11667=EDGE_CURVE('',#16571,#16570,#19788,.T.); -#11668=EDGE_CURVE('',#16572,#16571,#19789,.T.); -#11669=EDGE_CURVE('',#16573,#16572,#19790,.T.); -#11670=EDGE_CURVE('',#16573,#16574,#19791,.T.); -#11671=EDGE_CURVE('',#16575,#16574,#19792,.T.); -#11672=EDGE_CURVE('',#16575,#16576,#19793,.T.); -#11673=EDGE_CURVE('',#16577,#16576,#19794,.T.); -#11674=EDGE_CURVE('',#16578,#16577,#19795,.T.); -#11675=EDGE_CURVE('',#16578,#16579,#19796,.T.); -#11676=EDGE_CURVE('',#16579,#16580,#959,.T.); -#11677=EDGE_CURVE('',#16580,#16581,#19797,.T.); -#11678=EDGE_CURVE('',#16581,#16582,#960,.T.); -#11679=EDGE_CURVE('',#16582,#16583,#19798,.T.); -#11680=EDGE_CURVE('',#16584,#16583,#19799,.T.); -#11681=EDGE_CURVE('',#16585,#16584,#19800,.T.); -#11682=EDGE_CURVE('',#16586,#16585,#19801,.T.); -#11683=EDGE_CURVE('',#16587,#16586,#19802,.T.); -#11684=EDGE_CURVE('',#16587,#16588,#19803,.T.); -#11685=EDGE_CURVE('',#16589,#16588,#19804,.T.); -#11686=EDGE_CURVE('',#16589,#16590,#19805,.T.); -#11687=EDGE_CURVE('',#16590,#16591,#19806,.T.); -#11688=EDGE_CURVE('',#16591,#16592,#19807,.T.); -#11689=EDGE_CURVE('',#16593,#16592,#19808,.T.); -#11690=EDGE_CURVE('',#16594,#16593,#19809,.T.); -#11691=EDGE_CURVE('',#16595,#16594,#19810,.T.); -#11692=EDGE_CURVE('',#16564,#16595,#19811,.T.); -#11693=EDGE_CURVE('',#16562,#16596,#19812,.T.); -#11694=EDGE_CURVE('',#16596,#16597,#961,.T.); -#11695=EDGE_CURVE('',#16597,#16598,#19813,.T.); -#11696=EDGE_CURVE('',#16598,#16568,#962,.T.); -#11697=EDGE_CURVE('',#16599,#16600,#19814,.T.); -#11698=EDGE_CURVE('',#16600,#16601,#963,.T.); -#11699=EDGE_CURVE('',#16601,#16602,#964,.T.); -#11700=EDGE_CURVE('',#16603,#16602,#965,.T.); -#11701=EDGE_CURVE('',#16603,#16604,#966,.T.); -#11702=EDGE_CURVE('',#16604,#16605,#967,.T.); -#11703=EDGE_CURVE('',#16605,#16606,#19815,.T.); -#11704=EDGE_CURVE('',#16606,#16607,#968,.T.); -#11705=EDGE_CURVE('',#16607,#16608,#19816,.T.); -#11706=EDGE_CURVE('',#16608,#16599,#19817,.T.); -#11707=EDGE_CURVE('',#16609,#16610,#969,.T.); -#11708=EDGE_CURVE('',#16610,#16611,#19818,.T.); -#11709=EDGE_CURVE('',#16611,#16612,#970,.T.); -#11710=EDGE_CURVE('',#16612,#16613,#19819,.T.); -#11711=EDGE_CURVE('',#16613,#16614,#971,.T.); -#11712=EDGE_CURVE('',#16614,#16615,#19820,.T.); -#11713=EDGE_CURVE('',#16615,#16616,#972,.T.); -#11714=EDGE_CURVE('',#16616,#16609,#19821,.T.); -#11715=EDGE_CURVE('',#16617,#16617,#973,.F.); -#11716=EDGE_CURVE('',#16618,#16619,#19822,.T.); -#11717=EDGE_CURVE('',#16619,#16620,#974,.T.); -#11718=EDGE_CURVE('',#16620,#16621,#975,.T.); -#11719=EDGE_CURVE('',#16622,#16621,#976,.T.); -#11720=EDGE_CURVE('',#16622,#16623,#977,.T.); -#11721=EDGE_CURVE('',#16623,#16624,#978,.T.); -#11722=EDGE_CURVE('',#16624,#16625,#19823,.T.); -#11723=EDGE_CURVE('',#16625,#16626,#979,.T.); -#11724=EDGE_CURVE('',#16626,#16627,#19824,.T.); -#11725=EDGE_CURVE('',#16627,#16618,#980,.T.); -#11726=EDGE_CURVE('',#16578,#16628,#19825,.T.); -#11727=EDGE_CURVE('',#16629,#16577,#19826,.T.); -#11728=EDGE_CURVE('',#16630,#16629,#19827,.T.); -#11729=EDGE_CURVE('',#16630,#16584,#19828,.T.); -#11730=EDGE_CURVE('',#16631,#16583,#19829,.T.); -#11731=EDGE_CURVE('',#16631,#16628,#19830,.T.); -#11732=EDGE_CURVE('',#16632,#16633,#19831,.T.); -#11733=EDGE_CURVE('',#16632,#16634,#19832,.T.); -#11734=EDGE_CURVE('',#16635,#16634,#19833,.T.); -#11735=EDGE_CURVE('',#16635,#16636,#19834,.T.); -#11736=EDGE_CURVE('',#16637,#16636,#19835,.T.); -#11737=EDGE_CURVE('',#16637,#16638,#19836,.T.); -#11738=EDGE_CURVE('',#16638,#16639,#19837,.T.); -#11739=EDGE_CURVE('',#16639,#16640,#19838,.T.); -#11740=EDGE_CURVE('',#16640,#16641,#19839,.T.); -#11741=EDGE_CURVE('',#16641,#16642,#19840,.T.); -#11742=EDGE_CURVE('',#16642,#16643,#19841,.T.); -#11743=EDGE_CURVE('',#16643,#16644,#19842,.T.); -#11744=EDGE_CURVE('',#16644,#16645,#19843,.T.); -#11745=EDGE_CURVE('',#16645,#16646,#19844,.T.); -#11746=EDGE_CURVE('',#16646,#16647,#19845,.T.); -#11747=EDGE_CURVE('',#16647,#16648,#19846,.T.); -#11748=EDGE_CURVE('',#16648,#16649,#19847,.T.); -#11749=EDGE_CURVE('',#16649,#16650,#19848,.T.); -#11750=EDGE_CURVE('',#16650,#16651,#19849,.T.); -#11751=EDGE_CURVE('',#16651,#16652,#19850,.T.); -#11752=EDGE_CURVE('',#16652,#16653,#19851,.T.); -#11753=EDGE_CURVE('',#16653,#16654,#19852,.T.); -#11754=EDGE_CURVE('',#16654,#16655,#19853,.T.); -#11755=EDGE_CURVE('',#16655,#16656,#19854,.T.); -#11756=EDGE_CURVE('',#16656,#16657,#19855,.T.); -#11757=EDGE_CURVE('',#16657,#16658,#19856,.T.); -#11758=EDGE_CURVE('',#16658,#16659,#19857,.T.); -#11759=EDGE_CURVE('',#16659,#16660,#19858,.T.); -#11760=EDGE_CURVE('',#16660,#16661,#19859,.T.); -#11761=EDGE_CURVE('',#16661,#16662,#19860,.T.); -#11762=EDGE_CURVE('',#16662,#16663,#19861,.T.); -#11763=EDGE_CURVE('',#16663,#16664,#19862,.T.); -#11764=EDGE_CURVE('',#16664,#16665,#19863,.T.); -#11765=EDGE_CURVE('',#16665,#16666,#19864,.T.); -#11766=EDGE_CURVE('',#16666,#16667,#19865,.T.); -#11767=EDGE_CURVE('',#16667,#16668,#19866,.T.); -#11768=EDGE_CURVE('',#16668,#16669,#19867,.T.); -#11769=EDGE_CURVE('',#16669,#16670,#19868,.T.); -#11770=EDGE_CURVE('',#16670,#16671,#19869,.T.); -#11771=EDGE_CURVE('',#16671,#16672,#19870,.T.); -#11772=EDGE_CURVE('',#16672,#16673,#19871,.T.); -#11773=EDGE_CURVE('',#16673,#16674,#19872,.T.); -#11774=EDGE_CURVE('',#16674,#16675,#19873,.T.); -#11775=EDGE_CURVE('',#16675,#16676,#19874,.T.); -#11776=EDGE_CURVE('',#16676,#16677,#19875,.T.); -#11777=EDGE_CURVE('',#16677,#16678,#19876,.T.); -#11778=EDGE_CURVE('',#16678,#16679,#19877,.T.); -#11779=EDGE_CURVE('',#16679,#16680,#19878,.T.); -#11780=EDGE_CURVE('',#16680,#16681,#19879,.T.); -#11781=EDGE_CURVE('',#16681,#16682,#19880,.T.); -#11782=EDGE_CURVE('',#16682,#16683,#19881,.T.); -#11783=EDGE_CURVE('',#16683,#16684,#19882,.T.); -#11784=EDGE_CURVE('',#16684,#16685,#19883,.T.); -#11785=EDGE_CURVE('',#16685,#16686,#19884,.T.); -#11786=EDGE_CURVE('',#16686,#16687,#19885,.T.); -#11787=EDGE_CURVE('',#16687,#16688,#19886,.T.); -#11788=EDGE_CURVE('',#16688,#16689,#19887,.T.); -#11789=EDGE_CURVE('',#16689,#16690,#19888,.T.); -#11790=EDGE_CURVE('',#16690,#16691,#19889,.T.); -#11791=EDGE_CURVE('',#16691,#16692,#19890,.T.); -#11792=EDGE_CURVE('',#16692,#16693,#19891,.T.); -#11793=EDGE_CURVE('',#16693,#16694,#19892,.T.); -#11794=EDGE_CURVE('',#16694,#16695,#19893,.T.); -#11795=EDGE_CURVE('',#16695,#16696,#19894,.T.); -#11796=EDGE_CURVE('',#16696,#16697,#19895,.T.); -#11797=EDGE_CURVE('',#16697,#16698,#19896,.T.); -#11798=EDGE_CURVE('',#16698,#16699,#19897,.T.); -#11799=EDGE_CURVE('',#16699,#16700,#19898,.T.); -#11800=EDGE_CURVE('',#16700,#16701,#19899,.T.); -#11801=EDGE_CURVE('',#16701,#16702,#19900,.T.); -#11802=EDGE_CURVE('',#16702,#16703,#19901,.T.); -#11803=EDGE_CURVE('',#16703,#16704,#19902,.T.); -#11804=EDGE_CURVE('',#16704,#16705,#19903,.T.); -#11805=EDGE_CURVE('',#16705,#16706,#19904,.T.); -#11806=EDGE_CURVE('',#16706,#16707,#19905,.T.); -#11807=EDGE_CURVE('',#16707,#16708,#19906,.T.); -#11808=EDGE_CURVE('',#16708,#16709,#19907,.T.); -#11809=EDGE_CURVE('',#16709,#16710,#19908,.T.); -#11810=EDGE_CURVE('',#16710,#16711,#19909,.T.); -#11811=EDGE_CURVE('',#16711,#16712,#19910,.T.); -#11812=EDGE_CURVE('',#16712,#16713,#19911,.T.); -#11813=EDGE_CURVE('',#16713,#16714,#19912,.T.); -#11814=EDGE_CURVE('',#16714,#16715,#19913,.T.); -#11815=EDGE_CURVE('',#16715,#16716,#19914,.T.); -#11816=EDGE_CURVE('',#16716,#16717,#19915,.T.); -#11817=EDGE_CURVE('',#16717,#16718,#19916,.T.); -#11818=EDGE_CURVE('',#16719,#16718,#19917,.T.); -#11819=EDGE_CURVE('',#16720,#16719,#19918,.T.); -#11820=EDGE_CURVE('',#16721,#16720,#19919,.T.); -#11821=EDGE_CURVE('',#16721,#16722,#19920,.T.); -#11822=EDGE_CURVE('',#16723,#16722,#19921,.T.); -#11823=EDGE_CURVE('',#16723,#16724,#19922,.T.); -#11824=EDGE_CURVE('',#16725,#16724,#19923,.T.); -#11825=EDGE_CURVE('',#16725,#16726,#19924,.T.); -#11826=EDGE_CURVE('',#16727,#16726,#19925,.T.); -#11827=EDGE_CURVE('',#16727,#16728,#19926,.T.); -#11828=EDGE_CURVE('',#16729,#16728,#19927,.T.); -#11829=EDGE_CURVE('',#16729,#16730,#19928,.T.); -#11830=EDGE_CURVE('',#16731,#16730,#19929,.T.); -#11831=EDGE_CURVE('',#16731,#16732,#19930,.T.); -#11832=EDGE_CURVE('',#16733,#16732,#19931,.T.); -#11833=EDGE_CURVE('',#16733,#16734,#19932,.T.); -#11834=EDGE_CURVE('',#16735,#16734,#19933,.T.); -#11835=EDGE_CURVE('',#16735,#16736,#19934,.T.); -#11836=EDGE_CURVE('',#16737,#16736,#19935,.T.); -#11837=EDGE_CURVE('',#16737,#16738,#19936,.T.); -#11838=EDGE_CURVE('',#16739,#16738,#19937,.T.); -#11839=EDGE_CURVE('',#16739,#16740,#19938,.T.); -#11840=EDGE_CURVE('',#16741,#16740,#19939,.T.); -#11841=EDGE_CURVE('',#16741,#16742,#19940,.T.); -#11842=EDGE_CURVE('',#16743,#16742,#19941,.T.); -#11843=EDGE_CURVE('',#16743,#16744,#19942,.T.); -#11844=EDGE_CURVE('',#16745,#16744,#19943,.T.); -#11845=EDGE_CURVE('',#16745,#16746,#19944,.T.); -#11846=EDGE_CURVE('',#16747,#16746,#19945,.T.); -#11847=EDGE_CURVE('',#16747,#16748,#19946,.T.); -#11848=EDGE_CURVE('',#16749,#16748,#19947,.T.); -#11849=EDGE_CURVE('',#16749,#16750,#19948,.T.); -#11850=EDGE_CURVE('',#16751,#16750,#19949,.T.); -#11851=EDGE_CURVE('',#16751,#16752,#19950,.T.); -#11852=EDGE_CURVE('',#16753,#16752,#19951,.T.); -#11853=EDGE_CURVE('',#16753,#16754,#19952,.T.); -#11854=EDGE_CURVE('',#16755,#16754,#19953,.T.); -#11855=EDGE_CURVE('',#16755,#16756,#19954,.T.); -#11856=EDGE_CURVE('',#16757,#16756,#19955,.T.); -#11857=EDGE_CURVE('',#16757,#16758,#19956,.T.); -#11858=EDGE_CURVE('',#16759,#16758,#19957,.T.); -#11859=EDGE_CURVE('',#16759,#16760,#19958,.T.); -#11860=EDGE_CURVE('',#16761,#16760,#19959,.T.); -#11861=EDGE_CURVE('',#16761,#16762,#19960,.T.); -#11862=EDGE_CURVE('',#16763,#16762,#19961,.T.); -#11863=EDGE_CURVE('',#16763,#16764,#19962,.T.); -#11864=EDGE_CURVE('',#16765,#16764,#19963,.T.); -#11865=EDGE_CURVE('',#16765,#16766,#19964,.T.); -#11866=EDGE_CURVE('',#16767,#16766,#19965,.T.); -#11867=EDGE_CURVE('',#16767,#16768,#19966,.T.); -#11868=EDGE_CURVE('',#16769,#16768,#19967,.T.); -#11869=EDGE_CURVE('',#16769,#16770,#19968,.T.); -#11870=EDGE_CURVE('',#16771,#16770,#19969,.T.); -#11871=EDGE_CURVE('',#16771,#16772,#19970,.T.); -#11872=EDGE_CURVE('',#16773,#16772,#19971,.T.); -#11873=EDGE_CURVE('',#16773,#16774,#19972,.T.); -#11874=EDGE_CURVE('',#16775,#16774,#19973,.T.); -#11875=EDGE_CURVE('',#16775,#16776,#19974,.T.); -#11876=EDGE_CURVE('',#16777,#16776,#19975,.T.); -#11877=EDGE_CURVE('',#16777,#16778,#19976,.T.); -#11878=EDGE_CURVE('',#16779,#16778,#19977,.T.); -#11879=EDGE_CURVE('',#16779,#16780,#19978,.T.); -#11880=EDGE_CURVE('',#16781,#16780,#19979,.T.); -#11881=EDGE_CURVE('',#16781,#16782,#19980,.T.); -#11882=EDGE_CURVE('',#16783,#16782,#19981,.T.); -#11883=EDGE_CURVE('',#16783,#16784,#19982,.T.); -#11884=EDGE_CURVE('',#16785,#16784,#19983,.T.); -#11885=EDGE_CURVE('',#16785,#16786,#19984,.T.); -#11886=EDGE_CURVE('',#16787,#16786,#19985,.T.); -#11887=EDGE_CURVE('',#16787,#16788,#19986,.T.); -#11888=EDGE_CURVE('',#16789,#16788,#19987,.T.); -#11889=EDGE_CURVE('',#16789,#16790,#19988,.T.); -#11890=EDGE_CURVE('',#16791,#16790,#19989,.T.); -#11891=EDGE_CURVE('',#16791,#16792,#19990,.T.); -#11892=EDGE_CURVE('',#16793,#16792,#19991,.T.); -#11893=EDGE_CURVE('',#16793,#16794,#19992,.T.); -#11894=EDGE_CURVE('',#16795,#16794,#19993,.T.); -#11895=EDGE_CURVE('',#16795,#16796,#19994,.T.); -#11896=EDGE_CURVE('',#16797,#16796,#19995,.T.); -#11897=EDGE_CURVE('',#16797,#16633,#19996,.T.); -#11898=EDGE_CURVE('',#16798,#16799,#19997,.T.); -#11899=EDGE_CURVE('',#16798,#16800,#19998,.T.); -#11900=EDGE_CURVE('',#16800,#16801,#19999,.T.); -#11901=EDGE_CURVE('',#16801,#16630,#20000,.T.); -#11902=EDGE_CURVE('',#16629,#16802,#20001,.T.); -#11903=EDGE_CURVE('',#16803,#16802,#20002,.T.); -#11904=EDGE_CURVE('',#16804,#16803,#20003,.T.); -#11905=EDGE_CURVE('',#16805,#16804,#20004,.T.); -#11906=EDGE_CURVE('',#16805,#16806,#20005,.T.); -#11907=EDGE_CURVE('',#16807,#16806,#20006,.T.); -#11908=EDGE_CURVE('',#16808,#16807,#20007,.T.); -#11909=EDGE_CURVE('',#16809,#16808,#20008,.T.); -#11910=EDGE_CURVE('',#16809,#16810,#20009,.T.); -#11911=EDGE_CURVE('',#16811,#16810,#20010,.T.); -#11912=EDGE_CURVE('',#16812,#16811,#20011,.T.); -#11913=EDGE_CURVE('',#16813,#16812,#20012,.T.); -#11914=EDGE_CURVE('',#16813,#16814,#20013,.T.); -#11915=EDGE_CURVE('',#16815,#16814,#20014,.T.); -#11916=EDGE_CURVE('',#16816,#16815,#20015,.T.); -#11917=EDGE_CURVE('',#16817,#16816,#20016,.T.); -#11918=EDGE_CURVE('',#16817,#16818,#20017,.T.); -#11919=EDGE_CURVE('',#16819,#16818,#20018,.T.); -#11920=EDGE_CURVE('',#16820,#16819,#20019,.T.); -#11921=EDGE_CURVE('',#16821,#16820,#20020,.T.); -#11922=EDGE_CURVE('',#16821,#16822,#20021,.T.); -#11923=EDGE_CURVE('',#16823,#16822,#20022,.T.); -#11924=EDGE_CURVE('',#16824,#16823,#20023,.T.); -#11925=EDGE_CURVE('',#16825,#16824,#20024,.T.); -#11926=EDGE_CURVE('',#16825,#16826,#20025,.T.); -#11927=EDGE_CURVE('',#16827,#16826,#20026,.T.); -#11928=EDGE_CURVE('',#16828,#16827,#20027,.T.); -#11929=EDGE_CURVE('',#16829,#16828,#20028,.T.); -#11930=EDGE_CURVE('',#16829,#16830,#20029,.T.); -#11931=EDGE_CURVE('',#16831,#16830,#20030,.T.); -#11932=EDGE_CURVE('',#16832,#16831,#20031,.T.); -#11933=EDGE_CURVE('',#16833,#16832,#20032,.T.); -#11934=EDGE_CURVE('',#16833,#16560,#20033,.T.); -#11935=EDGE_CURVE('',#16559,#16566,#20034,.T.); -#11936=EDGE_CURVE('',#16565,#16834,#20035,.T.); -#11937=EDGE_CURVE('',#16834,#16835,#20036,.T.); -#11938=EDGE_CURVE('',#16835,#16836,#20037,.T.); -#11939=EDGE_CURVE('',#16837,#16836,#20038,.T.); -#11940=EDGE_CURVE('',#16838,#16837,#20039,.T.); -#11941=EDGE_CURVE('',#16839,#16838,#20040,.T.); -#11942=EDGE_CURVE('',#16839,#16840,#20041,.T.); -#11943=EDGE_CURVE('',#16841,#16840,#20042,.T.); -#11944=EDGE_CURVE('',#16842,#16841,#20043,.T.); -#11945=EDGE_CURVE('',#16843,#16842,#20044,.T.); -#11946=EDGE_CURVE('',#16843,#16844,#20045,.T.); -#11947=EDGE_CURVE('',#16845,#16844,#20046,.T.); -#11948=EDGE_CURVE('',#16846,#16845,#20047,.T.); -#11949=EDGE_CURVE('',#16847,#16846,#20048,.T.); -#11950=EDGE_CURVE('',#16847,#16848,#20049,.T.); -#11951=EDGE_CURVE('',#16849,#16848,#20050,.T.); -#11952=EDGE_CURVE('',#16850,#16849,#20051,.T.); -#11953=EDGE_CURVE('',#16851,#16850,#20052,.T.); -#11954=EDGE_CURVE('',#16851,#16852,#20053,.T.); -#11955=EDGE_CURVE('',#16853,#16852,#20054,.T.); -#11956=EDGE_CURVE('',#16854,#16853,#20055,.T.); -#11957=EDGE_CURVE('',#16855,#16854,#20056,.T.); -#11958=EDGE_CURVE('',#16855,#16856,#20057,.T.); -#11959=EDGE_CURVE('',#16857,#16856,#20058,.T.); -#11960=EDGE_CURVE('',#16858,#16857,#20059,.T.); -#11961=EDGE_CURVE('',#16859,#16858,#20060,.T.); -#11962=EDGE_CURVE('',#16859,#16860,#20061,.T.); -#11963=EDGE_CURVE('',#16861,#16860,#20062,.T.); -#11964=EDGE_CURVE('',#16862,#16861,#20063,.T.); -#11965=EDGE_CURVE('',#16863,#16862,#20064,.T.); -#11966=EDGE_CURVE('',#16863,#16864,#20065,.T.); -#11967=EDGE_CURVE('',#16865,#16864,#20066,.T.); -#11968=EDGE_CURVE('',#16866,#16865,#20067,.T.); -#11969=EDGE_CURVE('',#16867,#16866,#20068,.T.); -#11970=EDGE_CURVE('',#16867,#16868,#20069,.T.); -#11971=EDGE_CURVE('',#16868,#16869,#20070,.T.); -#11972=EDGE_CURVE('',#16870,#16869,#20071,.T.); -#11973=EDGE_CURVE('',#16871,#16870,#20072,.T.); -#11974=EDGE_CURVE('',#16799,#16871,#20073,.T.); -#11975=EDGE_CURVE('',#16800,#16872,#20074,.T.); -#11976=EDGE_CURVE('',#16872,#16868,#20075,.T.); -#11977=EDGE_CURVE('',#16867,#16873,#20076,.T.); -#11978=EDGE_CURVE('',#16873,#16874,#20077,.T.); -#11979=EDGE_CURVE('',#16874,#16586,#20078,.T.); -#11980=EDGE_CURVE('',#16801,#16585,#20079,.T.); -#11981=EDGE_CURVE('',#16875,#16876,#20080,.T.); -#11982=EDGE_CURVE('',#16876,#16877,#20081,.T.); -#11983=EDGE_CURVE('',#16878,#16877,#20082,.T.); -#11984=EDGE_CURVE('',#16878,#16875,#20083,.T.); -#11985=EDGE_CURVE('',#16879,#16880,#20084,.T.); -#11986=EDGE_CURVE('',#16879,#16881,#20085,.T.); -#11987=EDGE_CURVE('',#16881,#16882,#20086,.T.); -#11988=EDGE_CURVE('',#16880,#16882,#20087,.T.); -#11989=EDGE_CURVE('',#16883,#16884,#981,.F.); -#11990=EDGE_CURVE('',#16884,#16876,#20088,.T.); -#11991=EDGE_CURVE('',#16875,#16722,#20089,.T.); -#11992=EDGE_CURVE('',#16721,#16885,#20090,.T.); -#11993=EDGE_CURVE('',#16885,#16886,#20091,.T.); -#11994=EDGE_CURVE('',#16717,#16886,#20092,.T.); -#11995=EDGE_CURVE('',#16882,#16716,#20093,.T.); -#11996=EDGE_CURVE('',#16881,#16883,#20094,.T.); -#11997=EDGE_CURVE('',#16877,#16887,#20095,.T.); -#11998=EDGE_CURVE('',#16887,#16888,#982,.F.); -#11999=EDGE_CURVE('',#16888,#16879,#20096,.T.); -#12000=EDGE_CURVE('',#16715,#16880,#20097,.T.); -#12001=EDGE_CURVE('',#16889,#16714,#20098,.T.); -#12002=EDGE_CURVE('',#16889,#16890,#20099,.T.); -#12003=EDGE_CURVE('',#16890,#16724,#20100,.T.); -#12004=EDGE_CURVE('',#16723,#16878,#20101,.T.); -#12005=EDGE_CURVE('',#16891,#16892,#20102,.T.); -#12006=EDGE_CURVE('',#16892,#16893,#20103,.T.); -#12007=EDGE_CURVE('',#16894,#16893,#20104,.T.); -#12008=EDGE_CURVE('',#16894,#16891,#20105,.T.); -#12009=EDGE_CURVE('',#16895,#16896,#20106,.T.); -#12010=EDGE_CURVE('',#16895,#16897,#20107,.T.); -#12011=EDGE_CURVE('',#16897,#16898,#20108,.T.); -#12012=EDGE_CURVE('',#16896,#16898,#20109,.T.); -#12013=EDGE_CURVE('',#16899,#16900,#983,.F.); -#12014=EDGE_CURVE('',#16900,#16892,#20110,.T.); -#12015=EDGE_CURVE('',#16891,#16726,#20111,.T.); -#12016=EDGE_CURVE('',#16725,#16901,#20112,.T.); -#12017=EDGE_CURVE('',#16901,#16902,#20113,.T.); -#12018=EDGE_CURVE('',#16713,#16902,#20114,.T.); -#12019=EDGE_CURVE('',#16898,#16712,#20115,.T.); -#12020=EDGE_CURVE('',#16897,#16899,#20116,.T.); -#12021=EDGE_CURVE('',#16893,#16903,#20117,.T.); -#12022=EDGE_CURVE('',#16903,#16904,#984,.F.); -#12023=EDGE_CURVE('',#16904,#16895,#20118,.T.); -#12024=EDGE_CURVE('',#16711,#16896,#20119,.T.); -#12025=EDGE_CURVE('',#16905,#16710,#20120,.T.); -#12026=EDGE_CURVE('',#16905,#16906,#20121,.T.); -#12027=EDGE_CURVE('',#16906,#16728,#20122,.T.); -#12028=EDGE_CURVE('',#16727,#16894,#20123,.T.); -#12029=EDGE_CURVE('',#16907,#16908,#20124,.T.); -#12030=EDGE_CURVE('',#16908,#16909,#20125,.T.); -#12031=EDGE_CURVE('',#16910,#16909,#20126,.T.); -#12032=EDGE_CURVE('',#16910,#16907,#20127,.T.); -#12033=EDGE_CURVE('',#16911,#16912,#20128,.T.); -#12034=EDGE_CURVE('',#16911,#16913,#20129,.T.); -#12035=EDGE_CURVE('',#16913,#16914,#20130,.T.); -#12036=EDGE_CURVE('',#16912,#16914,#20131,.T.); -#12037=EDGE_CURVE('',#16915,#16916,#985,.F.); -#12038=EDGE_CURVE('',#16916,#16908,#20132,.T.); -#12039=EDGE_CURVE('',#16907,#16730,#20133,.T.); -#12040=EDGE_CURVE('',#16729,#16917,#20134,.T.); -#12041=EDGE_CURVE('',#16917,#16918,#20135,.T.); -#12042=EDGE_CURVE('',#16709,#16918,#20136,.T.); -#12043=EDGE_CURVE('',#16914,#16708,#20137,.T.); -#12044=EDGE_CURVE('',#16913,#16915,#20138,.T.); -#12045=EDGE_CURVE('',#16909,#16919,#20139,.T.); -#12046=EDGE_CURVE('',#16919,#16920,#986,.F.); -#12047=EDGE_CURVE('',#16920,#16911,#20140,.T.); -#12048=EDGE_CURVE('',#16707,#16912,#20141,.T.); -#12049=EDGE_CURVE('',#16921,#16706,#20142,.T.); -#12050=EDGE_CURVE('',#16921,#16922,#20143,.T.); -#12051=EDGE_CURVE('',#16922,#16732,#20144,.T.); -#12052=EDGE_CURVE('',#16731,#16910,#20145,.T.); -#12053=EDGE_CURVE('',#16923,#16924,#20146,.T.); -#12054=EDGE_CURVE('',#16924,#16925,#20147,.T.); -#12055=EDGE_CURVE('',#16926,#16925,#20148,.T.); -#12056=EDGE_CURVE('',#16926,#16923,#20149,.T.); -#12057=EDGE_CURVE('',#16927,#16928,#20150,.T.); -#12058=EDGE_CURVE('',#16927,#16929,#20151,.T.); -#12059=EDGE_CURVE('',#16929,#16930,#20152,.T.); -#12060=EDGE_CURVE('',#16928,#16930,#20153,.T.); -#12061=EDGE_CURVE('',#16931,#16932,#987,.F.); -#12062=EDGE_CURVE('',#16932,#16924,#20154,.T.); -#12063=EDGE_CURVE('',#16923,#16734,#20155,.T.); -#12064=EDGE_CURVE('',#16733,#16933,#20156,.T.); -#12065=EDGE_CURVE('',#16933,#16934,#20157,.T.); -#12066=EDGE_CURVE('',#16705,#16934,#20158,.T.); -#12067=EDGE_CURVE('',#16930,#16704,#20159,.T.); -#12068=EDGE_CURVE('',#16929,#16931,#20160,.T.); -#12069=EDGE_CURVE('',#16925,#16935,#20161,.T.); -#12070=EDGE_CURVE('',#16935,#16936,#988,.F.); -#12071=EDGE_CURVE('',#16936,#16927,#20162,.T.); -#12072=EDGE_CURVE('',#16703,#16928,#20163,.T.); -#12073=EDGE_CURVE('',#16937,#16702,#20164,.T.); -#12074=EDGE_CURVE('',#16937,#16938,#20165,.T.); -#12075=EDGE_CURVE('',#16938,#16736,#20166,.T.); -#12076=EDGE_CURVE('',#16735,#16926,#20167,.T.); -#12077=EDGE_CURVE('',#16939,#16940,#20168,.T.); -#12078=EDGE_CURVE('',#16940,#16941,#20169,.T.); -#12079=EDGE_CURVE('',#16942,#16941,#20170,.T.); -#12080=EDGE_CURVE('',#16942,#16939,#20171,.T.); -#12081=EDGE_CURVE('',#16943,#16944,#20172,.T.); -#12082=EDGE_CURVE('',#16943,#16945,#20173,.T.); -#12083=EDGE_CURVE('',#16945,#16946,#20174,.T.); -#12084=EDGE_CURVE('',#16944,#16946,#20175,.T.); -#12085=EDGE_CURVE('',#16947,#16948,#989,.F.); -#12086=EDGE_CURVE('',#16948,#16940,#20176,.T.); -#12087=EDGE_CURVE('',#16939,#16738,#20177,.T.); -#12088=EDGE_CURVE('',#16737,#16949,#20178,.T.); -#12089=EDGE_CURVE('',#16949,#16950,#20179,.T.); -#12090=EDGE_CURVE('',#16701,#16950,#20180,.T.); -#12091=EDGE_CURVE('',#16946,#16700,#20181,.T.); -#12092=EDGE_CURVE('',#16945,#16947,#20182,.T.); -#12093=EDGE_CURVE('',#16941,#16951,#20183,.T.); -#12094=EDGE_CURVE('',#16951,#16952,#990,.F.); -#12095=EDGE_CURVE('',#16952,#16943,#20184,.T.); -#12096=EDGE_CURVE('',#16699,#16944,#20185,.T.); -#12097=EDGE_CURVE('',#16953,#16698,#20186,.T.); -#12098=EDGE_CURVE('',#16953,#16954,#20187,.T.); -#12099=EDGE_CURVE('',#16954,#16740,#20188,.T.); -#12100=EDGE_CURVE('',#16739,#16942,#20189,.T.); -#12101=EDGE_CURVE('',#16955,#16956,#20190,.T.); -#12102=EDGE_CURVE('',#16956,#16957,#20191,.T.); -#12103=EDGE_CURVE('',#16958,#16957,#20192,.T.); -#12104=EDGE_CURVE('',#16958,#16955,#20193,.T.); -#12105=EDGE_CURVE('',#16959,#16960,#20194,.T.); -#12106=EDGE_CURVE('',#16959,#16961,#20195,.T.); -#12107=EDGE_CURVE('',#16961,#16962,#20196,.T.); -#12108=EDGE_CURVE('',#16960,#16962,#20197,.T.); -#12109=EDGE_CURVE('',#16963,#16964,#991,.F.); -#12110=EDGE_CURVE('',#16964,#16956,#20198,.T.); -#12111=EDGE_CURVE('',#16955,#16742,#20199,.T.); -#12112=EDGE_CURVE('',#16741,#16965,#20200,.T.); -#12113=EDGE_CURVE('',#16965,#16966,#20201,.T.); -#12114=EDGE_CURVE('',#16697,#16966,#20202,.T.); -#12115=EDGE_CURVE('',#16962,#16696,#20203,.T.); -#12116=EDGE_CURVE('',#16961,#16963,#20204,.T.); -#12117=EDGE_CURVE('',#16957,#16967,#20205,.T.); -#12118=EDGE_CURVE('',#16967,#16968,#992,.F.); -#12119=EDGE_CURVE('',#16968,#16959,#20206,.T.); -#12120=EDGE_CURVE('',#16695,#16960,#20207,.T.); -#12121=EDGE_CURVE('',#16969,#16694,#20208,.T.); -#12122=EDGE_CURVE('',#16969,#16970,#20209,.T.); -#12123=EDGE_CURVE('',#16970,#16744,#20210,.T.); -#12124=EDGE_CURVE('',#16743,#16958,#20211,.T.); -#12125=EDGE_CURVE('',#16971,#16972,#20212,.T.); -#12126=EDGE_CURVE('',#16972,#16973,#20213,.T.); -#12127=EDGE_CURVE('',#16974,#16973,#20214,.T.); -#12128=EDGE_CURVE('',#16974,#16971,#20215,.T.); -#12129=EDGE_CURVE('',#16975,#16976,#20216,.T.); -#12130=EDGE_CURVE('',#16975,#16977,#20217,.T.); -#12131=EDGE_CURVE('',#16977,#16978,#20218,.T.); -#12132=EDGE_CURVE('',#16976,#16978,#20219,.T.); -#12133=EDGE_CURVE('',#16979,#16980,#993,.F.); -#12134=EDGE_CURVE('',#16980,#16972,#20220,.T.); -#12135=EDGE_CURVE('',#16971,#16746,#20221,.T.); -#12136=EDGE_CURVE('',#16745,#16981,#20222,.T.); -#12137=EDGE_CURVE('',#16981,#16982,#20223,.T.); -#12138=EDGE_CURVE('',#16693,#16982,#20224,.T.); -#12139=EDGE_CURVE('',#16978,#16692,#20225,.T.); -#12140=EDGE_CURVE('',#16977,#16979,#20226,.T.); -#12141=EDGE_CURVE('',#16973,#16983,#20227,.T.); -#12142=EDGE_CURVE('',#16983,#16984,#994,.F.); -#12143=EDGE_CURVE('',#16984,#16975,#20228,.T.); -#12144=EDGE_CURVE('',#16691,#16976,#20229,.T.); -#12145=EDGE_CURVE('',#16985,#16690,#20230,.T.); -#12146=EDGE_CURVE('',#16985,#16986,#20231,.T.); -#12147=EDGE_CURVE('',#16986,#16748,#20232,.T.); -#12148=EDGE_CURVE('',#16747,#16974,#20233,.T.); -#12149=EDGE_CURVE('',#16987,#16988,#20234,.T.); -#12150=EDGE_CURVE('',#16988,#16989,#20235,.T.); -#12151=EDGE_CURVE('',#16990,#16989,#20236,.T.); -#12152=EDGE_CURVE('',#16990,#16987,#20237,.T.); -#12153=EDGE_CURVE('',#16991,#16992,#20238,.T.); -#12154=EDGE_CURVE('',#16991,#16993,#20239,.T.); -#12155=EDGE_CURVE('',#16993,#16994,#20240,.T.); -#12156=EDGE_CURVE('',#16992,#16994,#20241,.T.); -#12157=EDGE_CURVE('',#16995,#16996,#995,.F.); -#12158=EDGE_CURVE('',#16996,#16988,#20242,.T.); -#12159=EDGE_CURVE('',#16987,#16750,#20243,.T.); -#12160=EDGE_CURVE('',#16749,#16997,#20244,.T.); -#12161=EDGE_CURVE('',#16997,#16998,#20245,.T.); -#12162=EDGE_CURVE('',#16689,#16998,#20246,.T.); -#12163=EDGE_CURVE('',#16994,#16688,#20247,.T.); -#12164=EDGE_CURVE('',#16993,#16995,#20248,.T.); -#12165=EDGE_CURVE('',#16989,#16999,#20249,.T.); -#12166=EDGE_CURVE('',#16999,#17000,#996,.F.); -#12167=EDGE_CURVE('',#17000,#16991,#20250,.T.); -#12168=EDGE_CURVE('',#16687,#16992,#20251,.T.); -#12169=EDGE_CURVE('',#17001,#16686,#20252,.T.); -#12170=EDGE_CURVE('',#17001,#17002,#20253,.T.); -#12171=EDGE_CURVE('',#17002,#16752,#20254,.T.); -#12172=EDGE_CURVE('',#16751,#16990,#20255,.T.); -#12173=EDGE_CURVE('',#17003,#17004,#20256,.T.); -#12174=EDGE_CURVE('',#17004,#17005,#20257,.T.); -#12175=EDGE_CURVE('',#17006,#17005,#20258,.T.); -#12176=EDGE_CURVE('',#17006,#17003,#20259,.T.); -#12177=EDGE_CURVE('',#17007,#17008,#20260,.T.); -#12178=EDGE_CURVE('',#17007,#17009,#20261,.T.); -#12179=EDGE_CURVE('',#17009,#17010,#20262,.T.); -#12180=EDGE_CURVE('',#17008,#17010,#20263,.T.); -#12181=EDGE_CURVE('',#17011,#17012,#997,.F.); -#12182=EDGE_CURVE('',#17012,#17004,#20264,.T.); -#12183=EDGE_CURVE('',#17003,#16754,#20265,.T.); -#12184=EDGE_CURVE('',#16753,#17013,#20266,.T.); -#12185=EDGE_CURVE('',#17013,#17014,#20267,.T.); -#12186=EDGE_CURVE('',#16685,#17014,#20268,.T.); -#12187=EDGE_CURVE('',#17010,#16684,#20269,.T.); -#12188=EDGE_CURVE('',#17009,#17011,#20270,.T.); -#12189=EDGE_CURVE('',#17005,#17015,#20271,.T.); -#12190=EDGE_CURVE('',#17015,#17016,#998,.F.); -#12191=EDGE_CURVE('',#17016,#17007,#20272,.T.); -#12192=EDGE_CURVE('',#16683,#17008,#20273,.T.); -#12193=EDGE_CURVE('',#17017,#16682,#20274,.T.); -#12194=EDGE_CURVE('',#17017,#17018,#20275,.T.); -#12195=EDGE_CURVE('',#17018,#16756,#20276,.T.); -#12196=EDGE_CURVE('',#16755,#17006,#20277,.T.); -#12197=EDGE_CURVE('',#17019,#17020,#20278,.T.); -#12198=EDGE_CURVE('',#17020,#17021,#20279,.T.); -#12199=EDGE_CURVE('',#17022,#17021,#20280,.T.); -#12200=EDGE_CURVE('',#17022,#17019,#20281,.T.); -#12201=EDGE_CURVE('',#17023,#17024,#20282,.T.); -#12202=EDGE_CURVE('',#17023,#17025,#20283,.T.); -#12203=EDGE_CURVE('',#17025,#17026,#20284,.T.); -#12204=EDGE_CURVE('',#17024,#17026,#20285,.T.); -#12205=EDGE_CURVE('',#17027,#17028,#999,.F.); -#12206=EDGE_CURVE('',#17028,#17020,#20286,.T.); -#12207=EDGE_CURVE('',#17019,#16758,#20287,.T.); -#12208=EDGE_CURVE('',#16757,#17029,#20288,.T.); -#12209=EDGE_CURVE('',#17029,#17030,#20289,.T.); -#12210=EDGE_CURVE('',#16681,#17030,#20290,.T.); -#12211=EDGE_CURVE('',#17026,#16680,#20291,.T.); -#12212=EDGE_CURVE('',#17025,#17027,#20292,.T.); -#12213=EDGE_CURVE('',#17021,#17031,#20293,.T.); -#12214=EDGE_CURVE('',#17031,#17032,#1000,.F.); -#12215=EDGE_CURVE('',#17032,#17023,#20294,.T.); -#12216=EDGE_CURVE('',#16679,#17024,#20295,.T.); -#12217=EDGE_CURVE('',#17033,#16678,#20296,.T.); -#12218=EDGE_CURVE('',#17033,#17034,#20297,.T.); -#12219=EDGE_CURVE('',#17034,#16760,#20298,.T.); -#12220=EDGE_CURVE('',#16759,#17022,#20299,.T.); -#12221=EDGE_CURVE('',#17035,#17036,#20300,.T.); -#12222=EDGE_CURVE('',#17036,#17037,#20301,.T.); -#12223=EDGE_CURVE('',#17038,#17037,#20302,.T.); -#12224=EDGE_CURVE('',#17038,#17035,#20303,.T.); -#12225=EDGE_CURVE('',#17039,#17040,#20304,.T.); -#12226=EDGE_CURVE('',#17039,#17041,#20305,.T.); -#12227=EDGE_CURVE('',#17041,#17042,#20306,.T.); -#12228=EDGE_CURVE('',#17040,#17042,#20307,.T.); -#12229=EDGE_CURVE('',#17043,#17044,#1001,.F.); -#12230=EDGE_CURVE('',#17044,#17036,#20308,.T.); -#12231=EDGE_CURVE('',#17035,#16762,#20309,.T.); -#12232=EDGE_CURVE('',#16761,#17045,#20310,.T.); -#12233=EDGE_CURVE('',#17045,#17046,#20311,.T.); -#12234=EDGE_CURVE('',#16677,#17046,#20312,.T.); -#12235=EDGE_CURVE('',#17042,#16676,#20313,.T.); -#12236=EDGE_CURVE('',#17041,#17043,#20314,.T.); -#12237=EDGE_CURVE('',#17037,#17047,#20315,.T.); -#12238=EDGE_CURVE('',#17047,#17048,#1002,.F.); -#12239=EDGE_CURVE('',#17048,#17039,#20316,.T.); -#12240=EDGE_CURVE('',#16675,#17040,#20317,.T.); -#12241=EDGE_CURVE('',#17049,#16674,#20318,.T.); -#12242=EDGE_CURVE('',#17049,#17050,#20319,.T.); -#12243=EDGE_CURVE('',#17050,#16764,#20320,.T.); -#12244=EDGE_CURVE('',#16763,#17038,#20321,.T.); -#12245=EDGE_CURVE('',#17051,#17052,#20322,.T.); -#12246=EDGE_CURVE('',#17052,#17053,#20323,.T.); -#12247=EDGE_CURVE('',#17054,#17053,#20324,.T.); -#12248=EDGE_CURVE('',#17054,#17051,#20325,.T.); -#12249=EDGE_CURVE('',#17055,#17056,#20326,.T.); -#12250=EDGE_CURVE('',#17055,#17057,#20327,.T.); -#12251=EDGE_CURVE('',#17057,#17058,#20328,.T.); -#12252=EDGE_CURVE('',#17056,#17058,#20329,.T.); -#12253=EDGE_CURVE('',#17059,#17060,#1003,.F.); -#12254=EDGE_CURVE('',#17060,#17052,#20330,.T.); -#12255=EDGE_CURVE('',#17051,#16766,#20331,.T.); -#12256=EDGE_CURVE('',#16765,#17061,#20332,.T.); -#12257=EDGE_CURVE('',#17061,#17062,#20333,.T.); -#12258=EDGE_CURVE('',#16673,#17062,#20334,.T.); -#12259=EDGE_CURVE('',#17058,#16672,#20335,.T.); -#12260=EDGE_CURVE('',#17057,#17059,#20336,.T.); -#12261=EDGE_CURVE('',#17053,#17063,#20337,.T.); -#12262=EDGE_CURVE('',#17063,#17064,#1004,.F.); -#12263=EDGE_CURVE('',#17064,#17055,#20338,.T.); -#12264=EDGE_CURVE('',#16671,#17056,#20339,.T.); -#12265=EDGE_CURVE('',#17065,#16670,#20340,.T.); -#12266=EDGE_CURVE('',#17065,#17066,#20341,.T.); -#12267=EDGE_CURVE('',#17066,#16768,#20342,.T.); -#12268=EDGE_CURVE('',#16767,#17054,#20343,.T.); -#12269=EDGE_CURVE('',#17067,#17068,#20344,.T.); -#12270=EDGE_CURVE('',#17068,#17069,#20345,.T.); -#12271=EDGE_CURVE('',#17070,#17069,#20346,.T.); -#12272=EDGE_CURVE('',#17070,#17067,#20347,.T.); -#12273=EDGE_CURVE('',#17071,#17072,#20348,.T.); -#12274=EDGE_CURVE('',#17071,#17073,#20349,.T.); -#12275=EDGE_CURVE('',#17073,#17074,#20350,.T.); -#12276=EDGE_CURVE('',#17072,#17074,#20351,.T.); -#12277=EDGE_CURVE('',#17075,#17076,#1005,.F.); -#12278=EDGE_CURVE('',#17076,#17068,#20352,.T.); -#12279=EDGE_CURVE('',#17067,#16770,#20353,.T.); -#12280=EDGE_CURVE('',#16769,#17077,#20354,.T.); -#12281=EDGE_CURVE('',#17077,#17078,#20355,.T.); -#12282=EDGE_CURVE('',#16669,#17078,#20356,.T.); -#12283=EDGE_CURVE('',#17074,#16668,#20357,.T.); -#12284=EDGE_CURVE('',#17073,#17075,#20358,.T.); -#12285=EDGE_CURVE('',#17069,#17079,#20359,.T.); -#12286=EDGE_CURVE('',#17079,#17080,#1006,.F.); -#12287=EDGE_CURVE('',#17080,#17071,#20360,.T.); -#12288=EDGE_CURVE('',#16667,#17072,#20361,.T.); -#12289=EDGE_CURVE('',#17081,#16666,#20362,.T.); -#12290=EDGE_CURVE('',#17081,#17082,#20363,.T.); -#12291=EDGE_CURVE('',#17082,#16772,#20364,.T.); -#12292=EDGE_CURVE('',#16771,#17070,#20365,.T.); -#12293=EDGE_CURVE('',#17083,#17084,#20366,.T.); -#12294=EDGE_CURVE('',#17084,#17085,#20367,.T.); -#12295=EDGE_CURVE('',#17086,#17085,#20368,.T.); -#12296=EDGE_CURVE('',#17086,#17083,#20369,.T.); -#12297=EDGE_CURVE('',#17087,#17088,#20370,.T.); -#12298=EDGE_CURVE('',#17087,#17089,#20371,.T.); -#12299=EDGE_CURVE('',#17089,#17090,#20372,.T.); -#12300=EDGE_CURVE('',#17088,#17090,#20373,.T.); -#12301=EDGE_CURVE('',#17091,#17092,#1007,.F.); -#12302=EDGE_CURVE('',#17092,#17084,#20374,.T.); -#12303=EDGE_CURVE('',#17083,#16774,#20375,.T.); -#12304=EDGE_CURVE('',#16773,#17093,#20376,.T.); -#12305=EDGE_CURVE('',#17093,#17094,#20377,.T.); -#12306=EDGE_CURVE('',#16665,#17094,#20378,.T.); -#12307=EDGE_CURVE('',#17090,#16664,#20379,.T.); -#12308=EDGE_CURVE('',#17089,#17091,#20380,.T.); -#12309=EDGE_CURVE('',#17085,#17095,#20381,.T.); -#12310=EDGE_CURVE('',#17095,#17096,#1008,.F.); -#12311=EDGE_CURVE('',#17096,#17087,#20382,.T.); -#12312=EDGE_CURVE('',#16663,#17088,#20383,.T.); -#12313=EDGE_CURVE('',#17097,#16662,#20384,.T.); -#12314=EDGE_CURVE('',#17097,#17098,#20385,.T.); -#12315=EDGE_CURVE('',#17098,#16776,#20386,.T.); -#12316=EDGE_CURVE('',#16775,#17086,#20387,.T.); -#12317=EDGE_CURVE('',#17099,#17100,#20388,.T.); -#12318=EDGE_CURVE('',#17100,#17101,#20389,.T.); -#12319=EDGE_CURVE('',#17102,#17101,#20390,.T.); -#12320=EDGE_CURVE('',#17102,#17099,#20391,.T.); -#12321=EDGE_CURVE('',#17103,#17104,#20392,.T.); -#12322=EDGE_CURVE('',#17103,#17105,#20393,.T.); -#12323=EDGE_CURVE('',#17105,#17106,#20394,.T.); -#12324=EDGE_CURVE('',#17104,#17106,#20395,.T.); -#12325=EDGE_CURVE('',#17107,#17108,#1009,.F.); -#12326=EDGE_CURVE('',#17108,#17100,#20396,.T.); -#12327=EDGE_CURVE('',#17099,#16778,#20397,.T.); -#12328=EDGE_CURVE('',#16777,#17109,#20398,.T.); -#12329=EDGE_CURVE('',#17109,#17110,#20399,.T.); -#12330=EDGE_CURVE('',#16661,#17110,#20400,.T.); -#12331=EDGE_CURVE('',#17106,#16660,#20401,.T.); -#12332=EDGE_CURVE('',#17105,#17107,#20402,.T.); -#12333=EDGE_CURVE('',#17101,#17111,#20403,.T.); -#12334=EDGE_CURVE('',#17111,#17112,#1010,.F.); -#12335=EDGE_CURVE('',#17112,#17103,#20404,.T.); -#12336=EDGE_CURVE('',#16659,#17104,#20405,.T.); -#12337=EDGE_CURVE('',#17113,#16658,#20406,.T.); -#12338=EDGE_CURVE('',#17113,#17114,#20407,.T.); -#12339=EDGE_CURVE('',#17114,#16780,#20408,.T.); -#12340=EDGE_CURVE('',#16779,#17102,#20409,.T.); -#12341=EDGE_CURVE('',#17115,#17116,#20410,.T.); -#12342=EDGE_CURVE('',#17116,#17117,#20411,.T.); -#12343=EDGE_CURVE('',#17118,#17117,#20412,.T.); -#12344=EDGE_CURVE('',#17118,#17115,#20413,.T.); -#12345=EDGE_CURVE('',#17119,#17120,#20414,.T.); -#12346=EDGE_CURVE('',#17119,#17121,#20415,.T.); -#12347=EDGE_CURVE('',#17121,#17122,#20416,.T.); -#12348=EDGE_CURVE('',#17120,#17122,#20417,.T.); -#12349=EDGE_CURVE('',#17123,#17124,#1011,.F.); -#12350=EDGE_CURVE('',#17124,#17116,#20418,.T.); -#12351=EDGE_CURVE('',#17115,#16782,#20419,.T.); -#12352=EDGE_CURVE('',#16781,#17125,#20420,.T.); -#12353=EDGE_CURVE('',#17125,#17126,#20421,.T.); -#12354=EDGE_CURVE('',#16657,#17126,#20422,.T.); -#12355=EDGE_CURVE('',#17122,#16656,#20423,.T.); -#12356=EDGE_CURVE('',#17121,#17123,#20424,.T.); -#12357=EDGE_CURVE('',#17117,#17127,#20425,.T.); -#12358=EDGE_CURVE('',#17127,#17128,#1012,.F.); -#12359=EDGE_CURVE('',#17128,#17119,#20426,.T.); -#12360=EDGE_CURVE('',#16655,#17120,#20427,.T.); -#12361=EDGE_CURVE('',#17129,#16654,#20428,.T.); -#12362=EDGE_CURVE('',#17129,#17130,#20429,.T.); -#12363=EDGE_CURVE('',#17130,#16784,#20430,.T.); -#12364=EDGE_CURVE('',#16783,#17118,#20431,.T.); -#12365=EDGE_CURVE('',#17131,#17132,#20432,.T.); -#12366=EDGE_CURVE('',#17132,#17133,#20433,.T.); -#12367=EDGE_CURVE('',#17134,#17133,#20434,.T.); -#12368=EDGE_CURVE('',#17134,#17131,#20435,.T.); -#12369=EDGE_CURVE('',#17135,#17136,#20436,.T.); -#12370=EDGE_CURVE('',#17135,#17137,#20437,.T.); -#12371=EDGE_CURVE('',#17137,#17138,#20438,.T.); -#12372=EDGE_CURVE('',#17136,#17138,#20439,.T.); -#12373=EDGE_CURVE('',#17139,#17140,#1013,.F.); -#12374=EDGE_CURVE('',#17140,#17132,#20440,.T.); -#12375=EDGE_CURVE('',#17131,#16786,#20441,.T.); -#12376=EDGE_CURVE('',#16785,#17141,#20442,.T.); -#12377=EDGE_CURVE('',#17141,#17142,#20443,.T.); -#12378=EDGE_CURVE('',#16653,#17142,#20444,.T.); -#12379=EDGE_CURVE('',#17138,#16652,#20445,.T.); -#12380=EDGE_CURVE('',#17137,#17139,#20446,.T.); -#12381=EDGE_CURVE('',#17133,#17143,#20447,.T.); -#12382=EDGE_CURVE('',#17143,#17144,#1014,.F.); -#12383=EDGE_CURVE('',#17144,#17135,#20448,.T.); -#12384=EDGE_CURVE('',#16651,#17136,#20449,.T.); -#12385=EDGE_CURVE('',#17145,#16650,#20450,.T.); -#12386=EDGE_CURVE('',#17145,#17146,#20451,.T.); -#12387=EDGE_CURVE('',#17146,#16788,#20452,.T.); -#12388=EDGE_CURVE('',#16787,#17134,#20453,.T.); -#12389=EDGE_CURVE('',#17147,#17148,#20454,.T.); -#12390=EDGE_CURVE('',#17148,#17149,#20455,.T.); -#12391=EDGE_CURVE('',#17150,#17149,#20456,.T.); -#12392=EDGE_CURVE('',#17150,#17147,#20457,.T.); -#12393=EDGE_CURVE('',#17151,#17152,#20458,.T.); -#12394=EDGE_CURVE('',#17151,#17153,#20459,.T.); -#12395=EDGE_CURVE('',#17153,#17154,#20460,.T.); -#12396=EDGE_CURVE('',#17152,#17154,#20461,.T.); -#12397=EDGE_CURVE('',#17155,#17156,#1015,.F.); -#12398=EDGE_CURVE('',#17156,#17148,#20462,.T.); -#12399=EDGE_CURVE('',#17147,#16790,#20463,.T.); -#12400=EDGE_CURVE('',#16789,#17157,#20464,.T.); -#12401=EDGE_CURVE('',#17157,#17158,#20465,.T.); -#12402=EDGE_CURVE('',#16649,#17158,#20466,.T.); -#12403=EDGE_CURVE('',#17154,#16648,#20467,.T.); -#12404=EDGE_CURVE('',#17153,#17155,#20468,.T.); -#12405=EDGE_CURVE('',#17149,#17159,#20469,.T.); -#12406=EDGE_CURVE('',#17159,#17160,#1016,.F.); -#12407=EDGE_CURVE('',#17160,#17151,#20470,.T.); -#12408=EDGE_CURVE('',#16647,#17152,#20471,.T.); -#12409=EDGE_CURVE('',#17161,#16646,#20472,.T.); -#12410=EDGE_CURVE('',#17161,#17162,#20473,.T.); -#12411=EDGE_CURVE('',#17162,#16792,#20474,.T.); -#12412=EDGE_CURVE('',#16791,#17150,#20475,.T.); -#12413=EDGE_CURVE('',#17163,#17164,#20476,.T.); -#12414=EDGE_CURVE('',#17164,#17165,#20477,.T.); -#12415=EDGE_CURVE('',#17166,#17165,#20478,.T.); -#12416=EDGE_CURVE('',#17166,#17163,#20479,.T.); -#12417=EDGE_CURVE('',#17167,#17168,#20480,.T.); -#12418=EDGE_CURVE('',#17167,#17169,#20481,.T.); -#12419=EDGE_CURVE('',#17169,#17170,#20482,.T.); -#12420=EDGE_CURVE('',#17168,#17170,#20483,.T.); -#12421=EDGE_CURVE('',#17171,#17172,#1017,.F.); -#12422=EDGE_CURVE('',#17172,#17164,#20484,.T.); -#12423=EDGE_CURVE('',#17163,#16794,#20485,.T.); -#12424=EDGE_CURVE('',#16793,#17173,#20486,.T.); -#12425=EDGE_CURVE('',#17173,#17174,#20487,.T.); -#12426=EDGE_CURVE('',#16645,#17174,#20488,.T.); -#12427=EDGE_CURVE('',#17170,#16644,#20489,.T.); -#12428=EDGE_CURVE('',#17169,#17171,#20490,.T.); -#12429=EDGE_CURVE('',#17165,#17175,#20491,.T.); -#12430=EDGE_CURVE('',#17175,#17176,#1018,.F.); -#12431=EDGE_CURVE('',#17176,#17167,#20492,.T.); -#12432=EDGE_CURVE('',#16643,#17168,#20493,.T.); -#12433=EDGE_CURVE('',#17177,#16642,#20494,.T.); -#12434=EDGE_CURVE('',#17177,#17178,#20495,.T.); -#12435=EDGE_CURVE('',#17178,#16796,#20496,.T.); -#12436=EDGE_CURVE('',#16795,#17166,#20497,.T.); -#12437=EDGE_CURVE('',#17179,#17180,#20498,.T.); -#12438=EDGE_CURVE('',#17180,#17181,#20499,.T.); -#12439=EDGE_CURVE('',#17181,#17182,#1019,.F.); -#12440=EDGE_CURVE('',#17182,#17183,#20500,.T.); -#12441=EDGE_CURVE('',#17183,#17184,#20501,.T.); -#12442=EDGE_CURVE('',#16639,#17184,#20502,.T.); -#12443=EDGE_CURVE('',#17185,#16638,#20503,.T.); -#12444=EDGE_CURVE('',#17185,#17186,#20504,.T.); -#12445=EDGE_CURVE('',#17186,#16634,#20505,.T.); -#12446=EDGE_CURVE('',#16632,#17179,#20506,.T.); -#12447=EDGE_CURVE('',#17187,#17188,#20507,.T.); -#12448=EDGE_CURVE('',#17188,#17180,#20508,.T.); -#12449=EDGE_CURVE('',#17179,#17187,#20509,.T.); -#12450=EDGE_CURVE('',#17183,#17189,#20510,.T.); -#12451=EDGE_CURVE('',#17189,#17190,#20511,.T.); -#12452=EDGE_CURVE('',#17184,#17190,#20512,.T.); -#12453=EDGE_CURVE('',#17191,#17192,#1020,.F.); -#12454=EDGE_CURVE('',#17192,#17188,#20513,.T.); -#12455=EDGE_CURVE('',#17187,#16633,#20514,.T.); -#12456=EDGE_CURVE('',#16797,#17193,#20515,.T.); -#12457=EDGE_CURVE('',#17193,#17194,#20516,.T.); -#12458=EDGE_CURVE('',#16641,#17194,#20517,.T.); -#12459=EDGE_CURVE('',#17190,#16640,#20518,.T.); -#12460=EDGE_CURVE('',#17189,#17191,#20519,.T.); -#12461=EDGE_CURVE('',#17186,#17195,#20520,.T.); -#12462=EDGE_CURVE('',#17195,#17196,#20521,.T.); -#12463=EDGE_CURVE('',#17197,#17196,#20522,.T.); -#12464=EDGE_CURVE('',#17197,#17198,#20523,.T.); -#12465=EDGE_CURVE('',#17198,#16635,#20524,.T.); -#12466=EDGE_CURVE('',#17178,#17193,#20525,.T.); -#12467=EDGE_CURVE('',#17162,#17173,#20526,.T.); -#12468=EDGE_CURVE('',#17146,#17157,#20527,.T.); -#12469=EDGE_CURVE('',#17130,#17141,#20528,.T.); -#12470=EDGE_CURVE('',#17114,#17125,#20529,.T.); -#12471=EDGE_CURVE('',#17098,#17109,#20530,.T.); -#12472=EDGE_CURVE('',#17082,#17093,#20531,.T.); -#12473=EDGE_CURVE('',#17066,#17077,#20532,.T.); -#12474=EDGE_CURVE('',#17050,#17061,#20533,.T.); -#12475=EDGE_CURVE('',#17034,#17045,#20534,.T.); -#12476=EDGE_CURVE('',#17018,#17029,#20535,.T.); -#12477=EDGE_CURVE('',#17002,#17013,#20536,.T.); -#12478=EDGE_CURVE('',#16986,#16997,#20537,.T.); -#12479=EDGE_CURVE('',#16970,#16981,#20538,.T.); -#12480=EDGE_CURVE('',#16954,#16965,#20539,.T.); -#12481=EDGE_CURVE('',#16938,#16949,#20540,.T.); -#12482=EDGE_CURVE('',#16922,#16933,#20541,.T.); -#12483=EDGE_CURVE('',#16906,#16917,#20542,.T.); -#12484=EDGE_CURVE('',#16890,#16901,#20543,.T.); -#12485=EDGE_CURVE('',#16720,#17199,#20544,.T.); -#12486=EDGE_CURVE('',#17199,#17200,#20545,.T.); -#12487=EDGE_CURVE('',#17201,#17200,#20546,.T.); -#12488=EDGE_CURVE('',#17201,#17202,#20547,.T.); -#12489=EDGE_CURVE('',#17202,#16885,#20548,.T.); -#12490=EDGE_CURVE('',#17185,#17203,#20549,.T.); -#12491=EDGE_CURVE('',#17204,#16637,#20550,.T.); -#12492=EDGE_CURVE('',#17204,#17205,#20551,.T.); -#12493=EDGE_CURVE('',#17203,#17205,#20552,.T.); -#12494=EDGE_CURVE('',#17177,#17194,#20553,.T.); -#12495=EDGE_CURVE('',#17161,#17174,#20554,.T.); -#12496=EDGE_CURVE('',#17145,#17158,#20555,.T.); -#12497=EDGE_CURVE('',#17129,#17142,#20556,.T.); -#12498=EDGE_CURVE('',#17113,#17126,#20557,.T.); -#12499=EDGE_CURVE('',#17097,#17110,#20558,.T.); -#12500=EDGE_CURVE('',#17081,#17094,#20559,.T.); -#12501=EDGE_CURVE('',#17065,#17078,#20560,.T.); -#12502=EDGE_CURVE('',#17049,#17062,#20561,.T.); -#12503=EDGE_CURVE('',#17033,#17046,#20562,.T.); -#12504=EDGE_CURVE('',#17017,#17030,#20563,.T.); -#12505=EDGE_CURVE('',#17001,#17014,#20564,.T.); -#12506=EDGE_CURVE('',#16985,#16998,#20565,.T.); -#12507=EDGE_CURVE('',#16969,#16982,#20566,.T.); -#12508=EDGE_CURVE('',#16953,#16966,#20567,.T.); -#12509=EDGE_CURVE('',#16937,#16950,#20568,.T.); -#12510=EDGE_CURVE('',#16921,#16934,#20569,.T.); -#12511=EDGE_CURVE('',#16905,#16918,#20570,.T.); -#12512=EDGE_CURVE('',#16889,#16902,#20571,.T.); -#12513=EDGE_CURVE('',#17206,#16886,#20572,.T.); -#12514=EDGE_CURVE('',#17207,#17206,#20573,.T.); -#12515=EDGE_CURVE('',#17207,#17208,#20574,.T.); -#12516=EDGE_CURVE('',#16718,#17208,#20575,.T.); -#12517=EDGE_CURVE('',#17195,#17203,#20576,.T.); -#12518=EDGE_CURVE('',#17202,#17206,#20577,.T.); -#12519=EDGE_CURVE('',#17209,#17210,#20578,.T.); -#12520=EDGE_CURVE('',#17210,#16864,#20579,.T.); -#12521=EDGE_CURVE('',#17209,#16863,#20580,.T.); -#12522=EDGE_CURVE('',#17211,#17212,#20581,.T.); -#12523=EDGE_CURVE('',#17212,#16860,#20582,.T.); -#12524=EDGE_CURVE('',#17211,#16859,#20583,.T.); -#12525=EDGE_CURVE('',#17213,#17214,#20584,.T.); -#12526=EDGE_CURVE('',#17214,#16856,#20585,.T.); -#12527=EDGE_CURVE('',#17213,#16855,#20586,.T.); -#12528=EDGE_CURVE('',#17215,#17216,#20587,.T.); -#12529=EDGE_CURVE('',#17216,#16852,#20588,.T.); -#12530=EDGE_CURVE('',#17215,#16851,#20589,.T.); -#12531=EDGE_CURVE('',#17217,#17218,#20590,.T.); -#12532=EDGE_CURVE('',#17218,#16848,#20591,.T.); -#12533=EDGE_CURVE('',#17217,#16847,#20592,.T.); -#12534=EDGE_CURVE('',#17219,#17220,#20593,.T.); -#12535=EDGE_CURVE('',#17220,#16844,#20594,.T.); -#12536=EDGE_CURVE('',#17219,#16843,#20595,.T.); -#12537=EDGE_CURVE('',#17221,#17222,#20596,.T.); -#12538=EDGE_CURVE('',#17222,#16840,#20597,.T.); -#12539=EDGE_CURVE('',#17221,#16839,#20598,.T.); -#12540=EDGE_CURVE('',#16833,#17223,#20599,.T.); -#12541=EDGE_CURVE('',#17224,#17223,#20600,.T.); -#12542=EDGE_CURVE('',#16569,#17224,#20601,.T.); -#12543=EDGE_CURVE('',#17225,#17226,#20602,.T.); -#12544=EDGE_CURVE('',#17225,#16830,#20603,.T.); -#12545=EDGE_CURVE('',#17226,#16829,#20604,.T.); -#12546=EDGE_CURVE('',#17227,#17228,#20605,.T.); -#12547=EDGE_CURVE('',#17227,#16826,#20606,.T.); -#12548=EDGE_CURVE('',#17228,#16825,#20607,.T.); -#12549=EDGE_CURVE('',#17229,#17230,#20608,.T.); -#12550=EDGE_CURVE('',#17229,#16822,#20609,.T.); -#12551=EDGE_CURVE('',#17230,#16821,#20610,.T.); -#12552=EDGE_CURVE('',#17231,#17232,#20611,.T.); -#12553=EDGE_CURVE('',#17231,#16818,#20612,.T.); -#12554=EDGE_CURVE('',#17232,#16817,#20613,.T.); -#12555=EDGE_CURVE('',#17233,#17234,#20614,.T.); -#12556=EDGE_CURVE('',#17233,#16814,#20615,.T.); -#12557=EDGE_CURVE('',#17234,#16813,#20616,.T.); -#12558=EDGE_CURVE('',#17235,#17236,#20617,.T.); -#12559=EDGE_CURVE('',#17235,#16810,#20618,.T.); -#12560=EDGE_CURVE('',#17236,#16809,#20619,.T.); -#12561=EDGE_CURVE('',#17237,#17238,#20620,.T.); -#12562=EDGE_CURVE('',#17237,#16802,#20621,.T.); -#12563=EDGE_CURVE('',#17238,#16576,#20622,.T.); -#12564=EDGE_CURVE('',#17239,#17197,#20623,.T.); -#12565=EDGE_CURVE('',#17239,#17240,#20624,.T.); -#12566=EDGE_CURVE('',#17241,#17240,#20625,.T.); -#12567=EDGE_CURVE('',#17241,#17242,#20626,.T.); -#12568=EDGE_CURVE('',#17198,#17242,#20627,.T.); -#12569=EDGE_CURVE('',#17200,#17243,#20628,.T.); -#12570=EDGE_CURVE('',#17199,#17244,#20629,.T.); -#12571=EDGE_CURVE('',#17244,#17245,#20630,.T.); -#12572=EDGE_CURVE('',#17246,#17245,#20631,.T.); -#12573=EDGE_CURVE('',#17243,#17246,#20632,.T.); -#12574=EDGE_CURVE('',#17243,#17247,#20633,.T.); -#12575=EDGE_CURVE('',#17248,#17246,#20634,.T.); -#12576=EDGE_CURVE('',#17247,#17248,#20635,.T.); -#12577=EDGE_CURVE('',#17247,#17201,#20636,.T.); -#12578=EDGE_CURVE('',#17207,#17248,#20637,.T.); -#12579=EDGE_CURVE('',#17196,#17249,#20638,.T.); -#12580=EDGE_CURVE('',#17250,#17205,#20639,.T.); -#12581=EDGE_CURVE('',#17249,#17250,#20640,.T.); -#12582=EDGE_CURVE('',#17249,#17239,#20641,.T.); -#12583=EDGE_CURVE('',#17240,#17250,#20642,.T.); -#12584=EDGE_CURVE('',#17245,#17208,#20643,.T.); -#12585=EDGE_CURVE('',#17244,#16719,#20644,.T.); -#12586=EDGE_CURVE('',#17204,#17241,#20645,.T.); -#12587=EDGE_CURVE('',#17242,#16636,#20646,.T.); -#12588=EDGE_CURVE('',#17251,#17252,#20647,.T.); -#12589=EDGE_CURVE('',#17252,#16836,#20648,.T.); -#12590=EDGE_CURVE('',#16835,#16594,#20649,.T.); -#12591=EDGE_CURVE('',#16593,#17251,#20650,.T.); -#12592=EDGE_CURVE('',#17253,#16591,#20651,.T.); -#12593=EDGE_CURVE('',#17254,#17253,#20652,.T.); -#12594=EDGE_CURVE('',#16592,#17254,#20653,.T.); -#12595=EDGE_CURVE('',#17255,#17256,#20654,.T.); -#12596=EDGE_CURVE('',#16588,#17255,#20655,.T.); -#12597=EDGE_CURVE('',#17256,#16587,#20656,.T.); -#12598=EDGE_CURVE('',#17257,#17258,#20657,.T.); -#12599=EDGE_CURVE('',#17257,#16806,#20658,.T.); -#12600=EDGE_CURVE('',#17258,#16805,#20659,.T.); -#12601=EDGE_CURVE('',#16558,#16567,#20660,.T.); -#12602=EDGE_CURVE('',#16834,#16595,#20661,.T.); -#12603=EDGE_CURVE('',#17259,#17260,#20662,.T.); -#12604=EDGE_CURVE('',#16571,#17260,#20663,.T.); -#12605=EDGE_CURVE('',#16570,#17259,#20664,.T.); -#12606=EDGE_CURVE('',#17259,#17224,#20665,.T.); -#12607=EDGE_CURVE('',#17223,#17260,#20666,.T.); -#12608=EDGE_CURVE('',#17261,#16575,#20667,.T.); -#12609=EDGE_CURVE('',#17261,#17238,#20668,.T.); -#12610=EDGE_CURVE('',#17262,#16574,#20669,.T.); -#12611=EDGE_CURVE('',#17262,#17261,#20670,.T.); -#12612=EDGE_CURVE('',#17262,#17237,#20671,.T.); -#12613=EDGE_CURVE('',#17263,#17264,#20672,.T.); -#12614=EDGE_CURVE('',#17264,#17265,#20673,.T.); -#12615=EDGE_CURVE('',#17265,#17225,#20674,.T.); -#12616=EDGE_CURVE('',#17226,#17266,#20675,.T.); -#12617=EDGE_CURVE('',#17266,#17267,#20676,.T.); -#12618=EDGE_CURVE('',#17267,#17227,#20677,.T.); -#12619=EDGE_CURVE('',#17228,#17268,#20678,.T.); -#12620=EDGE_CURVE('',#17268,#17269,#20679,.T.); -#12621=EDGE_CURVE('',#17269,#17229,#20680,.T.); -#12622=EDGE_CURVE('',#17230,#17270,#20681,.T.); -#12623=EDGE_CURVE('',#17270,#17271,#20682,.T.); -#12624=EDGE_CURVE('',#17271,#17231,#20683,.T.); -#12625=EDGE_CURVE('',#17232,#17272,#20684,.T.); -#12626=EDGE_CURVE('',#17272,#17273,#20685,.T.); -#12627=EDGE_CURVE('',#17273,#17233,#20686,.T.); -#12628=EDGE_CURVE('',#17234,#17274,#20687,.T.); -#12629=EDGE_CURVE('',#17274,#17275,#20688,.T.); -#12630=EDGE_CURVE('',#17275,#17235,#20689,.T.); -#12631=EDGE_CURVE('',#17236,#17276,#20690,.T.); -#12632=EDGE_CURVE('',#17276,#17277,#20691,.T.); -#12633=EDGE_CURVE('',#17277,#17257,#20692,.T.); -#12634=EDGE_CURVE('',#17258,#17278,#20693,.T.); -#12635=EDGE_CURVE('',#17278,#17279,#20694,.T.); -#12636=EDGE_CURVE('',#17280,#17279,#20695,.T.); -#12637=EDGE_CURVE('',#17263,#17280,#20696,.T.); -#12638=EDGE_CURVE('',#17279,#16803,#20697,.T.); -#12639=EDGE_CURVE('',#17280,#16573,#20698,.T.); -#12640=EDGE_CURVE('',#17264,#16832,#20699,.T.); -#12641=EDGE_CURVE('',#16572,#17263,#20700,.T.); -#12642=EDGE_CURVE('',#17254,#17251,#20701,.T.); -#12643=EDGE_CURVE('',#17252,#17253,#20702,.T.); -#12644=EDGE_CURVE('',#17256,#16874,#20703,.T.); -#12645=EDGE_CURVE('',#17255,#16873,#20704,.T.); -#12646=EDGE_CURVE('',#17281,#17282,#20705,.T.); -#12647=EDGE_CURVE('',#17282,#16837,#20706,.T.); -#12648=EDGE_CURVE('',#16590,#17281,#20707,.T.); -#12649=EDGE_CURVE('',#17283,#16866,#20708,.T.); -#12650=EDGE_CURVE('',#17284,#17283,#20709,.T.); -#12651=EDGE_CURVE('',#17284,#16589,#20710,.T.); -#12652=EDGE_CURVE('',#17285,#17283,#20711,.T.); -#12653=EDGE_CURVE('',#17210,#17285,#20712,.T.); -#12654=EDGE_CURVE('',#17286,#17209,#20713,.T.); -#12655=EDGE_CURVE('',#17287,#17286,#20714,.T.); -#12656=EDGE_CURVE('',#17212,#17287,#20715,.T.); -#12657=EDGE_CURVE('',#17288,#17211,#20716,.T.); -#12658=EDGE_CURVE('',#17289,#17288,#20717,.T.); -#12659=EDGE_CURVE('',#17214,#17289,#20718,.T.); -#12660=EDGE_CURVE('',#17290,#17213,#20719,.T.); -#12661=EDGE_CURVE('',#17291,#17290,#20720,.T.); -#12662=EDGE_CURVE('',#17216,#17291,#20721,.T.); -#12663=EDGE_CURVE('',#17292,#17215,#20722,.T.); -#12664=EDGE_CURVE('',#17293,#17292,#20723,.T.); -#12665=EDGE_CURVE('',#17218,#17293,#20724,.T.); -#12666=EDGE_CURVE('',#17294,#17217,#20725,.T.); -#12667=EDGE_CURVE('',#17295,#17294,#20726,.T.); -#12668=EDGE_CURVE('',#17220,#17295,#20727,.T.); -#12669=EDGE_CURVE('',#17296,#17219,#20728,.T.); -#12670=EDGE_CURVE('',#17297,#17296,#20729,.T.); -#12671=EDGE_CURVE('',#17222,#17297,#20730,.T.); -#12672=EDGE_CURVE('',#17298,#17221,#20731,.T.); -#12673=EDGE_CURVE('',#17282,#17298,#20732,.T.); -#12674=EDGE_CURVE('',#17281,#17284,#20733,.T.); -#12675=EDGE_CURVE('',#17278,#16804,#20734,.T.); -#12676=EDGE_CURVE('',#17277,#16807,#20735,.T.); -#12677=EDGE_CURVE('',#17276,#16808,#20736,.T.); -#12678=EDGE_CURVE('',#17275,#16811,#20737,.T.); -#12679=EDGE_CURVE('',#17274,#16812,#20738,.T.); -#12680=EDGE_CURVE('',#17273,#16815,#20739,.T.); -#12681=EDGE_CURVE('',#17272,#16816,#20740,.T.); -#12682=EDGE_CURVE('',#17271,#16819,#20741,.T.); -#12683=EDGE_CURVE('',#17270,#16820,#20742,.T.); -#12684=EDGE_CURVE('',#17269,#16823,#20743,.T.); -#12685=EDGE_CURVE('',#17268,#16824,#20744,.T.); -#12686=EDGE_CURVE('',#17267,#16827,#20745,.T.); -#12687=EDGE_CURVE('',#17266,#16828,#20746,.T.); -#12688=EDGE_CURVE('',#17265,#16831,#20747,.T.); -#12689=EDGE_CURVE('',#17298,#16838,#20748,.T.); -#12690=EDGE_CURVE('',#17297,#16841,#20749,.T.); -#12691=EDGE_CURVE('',#17296,#16842,#20750,.T.); -#12692=EDGE_CURVE('',#17295,#16845,#20751,.T.); -#12693=EDGE_CURVE('',#17294,#16846,#20752,.T.); -#12694=EDGE_CURVE('',#17293,#16849,#20753,.T.); -#12695=EDGE_CURVE('',#17292,#16850,#20754,.T.); -#12696=EDGE_CURVE('',#17291,#16853,#20755,.T.); -#12697=EDGE_CURVE('',#17290,#16854,#20756,.T.); -#12698=EDGE_CURVE('',#17289,#16857,#20757,.T.); -#12699=EDGE_CURVE('',#17288,#16858,#20758,.T.); -#12700=EDGE_CURVE('',#17287,#16861,#20759,.T.); -#12701=EDGE_CURVE('',#17286,#16862,#20760,.T.); -#12702=EDGE_CURVE('',#17285,#16865,#20761,.T.); -#12703=EDGE_CURVE('',#17191,#17182,#20762,.T.); -#12704=EDGE_CURVE('',#17192,#17181,#20763,.T.); -#12705=EDGE_CURVE('',#17172,#17175,#20764,.T.); -#12706=EDGE_CURVE('',#17171,#17176,#20765,.T.); -#12707=EDGE_CURVE('',#17156,#17159,#20766,.T.); -#12708=EDGE_CURVE('',#17155,#17160,#20767,.T.); -#12709=EDGE_CURVE('',#17140,#17143,#20768,.T.); -#12710=EDGE_CURVE('',#17139,#17144,#20769,.T.); -#12711=EDGE_CURVE('',#17124,#17127,#20770,.T.); -#12712=EDGE_CURVE('',#17123,#17128,#20771,.T.); -#12713=EDGE_CURVE('',#17108,#17111,#20772,.T.); -#12714=EDGE_CURVE('',#17107,#17112,#20773,.T.); -#12715=EDGE_CURVE('',#17092,#17095,#20774,.T.); -#12716=EDGE_CURVE('',#17091,#17096,#20775,.T.); -#12717=EDGE_CURVE('',#17076,#17079,#20776,.T.); -#12718=EDGE_CURVE('',#17075,#17080,#20777,.T.); -#12719=EDGE_CURVE('',#17060,#17063,#20778,.T.); -#12720=EDGE_CURVE('',#17059,#17064,#20779,.T.); -#12721=EDGE_CURVE('',#17044,#17047,#20780,.T.); -#12722=EDGE_CURVE('',#17043,#17048,#20781,.T.); -#12723=EDGE_CURVE('',#17028,#17031,#20782,.T.); -#12724=EDGE_CURVE('',#17027,#17032,#20783,.T.); -#12725=EDGE_CURVE('',#17012,#17015,#20784,.T.); -#12726=EDGE_CURVE('',#17011,#17016,#20785,.T.); -#12727=EDGE_CURVE('',#16996,#16999,#20786,.T.); -#12728=EDGE_CURVE('',#16995,#17000,#20787,.T.); -#12729=EDGE_CURVE('',#16980,#16983,#20788,.T.); -#12730=EDGE_CURVE('',#16979,#16984,#20789,.T.); -#12731=EDGE_CURVE('',#16964,#16967,#20790,.T.); -#12732=EDGE_CURVE('',#16963,#16968,#20791,.T.); -#12733=EDGE_CURVE('',#16948,#16951,#20792,.T.); -#12734=EDGE_CURVE('',#16947,#16952,#20793,.T.); -#12735=EDGE_CURVE('',#16932,#16935,#20794,.T.); -#12736=EDGE_CURVE('',#16931,#16936,#20795,.T.); -#12737=EDGE_CURVE('',#16916,#16919,#20796,.T.); -#12738=EDGE_CURVE('',#16915,#16920,#20797,.T.); -#12739=EDGE_CURVE('',#16900,#16903,#20798,.T.); -#12740=EDGE_CURVE('',#16899,#16904,#20799,.T.); -#12741=EDGE_CURVE('',#16883,#16888,#20800,.T.); -#12742=EDGE_CURVE('',#16884,#16887,#20801,.T.); -#12743=EDGE_CURVE('',#17299,#17300,#20802,.T.); -#12744=EDGE_CURVE('',#17299,#16799,#20803,.T.); -#12745=EDGE_CURVE('',#17300,#16871,#20804,.T.); -#12746=EDGE_CURVE('',#16870,#17301,#20805,.T.); -#12747=EDGE_CURVE('',#17300,#17301,#20806,.T.); -#12748=EDGE_CURVE('',#17299,#17301,#20807,.T.); -#12749=EDGE_CURVE('',#16798,#17302,#20808,.T.); -#12750=EDGE_CURVE('',#17302,#16872,#20809,.T.); -#12751=EDGE_CURVE('',#17302,#16869,#20810,.T.); -#12752=EDGE_CURVE('',#17303,#17303,#1021,.T.); -#12753=EDGE_CURVE('',#17304,#17304,#1022,.T.); -#12754=EDGE_CURVE('',#17305,#16610,#20811,.T.); -#12755=EDGE_CURVE('',#17305,#17306,#20812,.T.); -#12756=EDGE_CURVE('',#17306,#16611,#20813,.T.); -#12757=EDGE_CURVE('',#17306,#17307,#1023,.T.); -#12758=EDGE_CURVE('',#17307,#16612,#20814,.T.); -#12759=EDGE_CURVE('',#17307,#17308,#20815,.T.); -#12760=EDGE_CURVE('',#17308,#16613,#20816,.T.); -#12761=EDGE_CURVE('',#17308,#17309,#1024,.T.); -#12762=EDGE_CURVE('',#17309,#16614,#20817,.T.); -#12763=EDGE_CURVE('',#17309,#17310,#20818,.T.); -#12764=EDGE_CURVE('',#17310,#16615,#20819,.T.); -#12765=EDGE_CURVE('',#17310,#17311,#1025,.T.); -#12766=EDGE_CURVE('',#17311,#16616,#20820,.T.); -#12767=EDGE_CURVE('',#17311,#17312,#20821,.T.); -#12768=EDGE_CURVE('',#17312,#16609,#20822,.T.); -#12769=EDGE_CURVE('',#17312,#17305,#1026,.T.); -#12770=EDGE_CURVE('',#17313,#16599,#20823,.T.); -#12771=EDGE_CURVE('',#17313,#17314,#20824,.T.); -#12772=EDGE_CURVE('',#17314,#16600,#20825,.T.); -#12773=EDGE_CURVE('',#17314,#17315,#1027,.T.); -#12774=EDGE_CURVE('',#17315,#16601,#20826,.T.); -#12775=EDGE_CURVE('',#17315,#17316,#1028,.T.); -#12776=EDGE_CURVE('',#17316,#16602,#20827,.T.); -#12777=EDGE_CURVE('',#17317,#17316,#1029,.T.); -#12778=EDGE_CURVE('',#17317,#16603,#20828,.T.); -#12779=EDGE_CURVE('',#17317,#17318,#1030,.T.); -#12780=EDGE_CURVE('',#17318,#16604,#20829,.T.); -#12781=EDGE_CURVE('',#17318,#17319,#1031,.T.); -#12782=EDGE_CURVE('',#17319,#16605,#20830,.T.); -#12783=EDGE_CURVE('',#17319,#17320,#20831,.T.); -#12784=EDGE_CURVE('',#17320,#16606,#20832,.T.); -#12785=EDGE_CURVE('',#17320,#17321,#1032,.T.); -#12786=EDGE_CURVE('',#17321,#16607,#20833,.T.); -#12787=EDGE_CURVE('',#17321,#17322,#20834,.T.); -#12788=EDGE_CURVE('',#17322,#16608,#20835,.T.); -#12789=EDGE_CURVE('',#17322,#17313,#20836,.T.); -#12790=EDGE_CURVE('',#17323,#16618,#20837,.T.); -#12791=EDGE_CURVE('',#17323,#17324,#20838,.T.); -#12792=EDGE_CURVE('',#17324,#16619,#20839,.T.); -#12793=EDGE_CURVE('',#17324,#17325,#1033,.T.); -#12794=EDGE_CURVE('',#17325,#16620,#20840,.T.); -#12795=EDGE_CURVE('',#17325,#17326,#1034,.T.); -#12796=EDGE_CURVE('',#17326,#16621,#20841,.T.); -#12797=EDGE_CURVE('',#17327,#17326,#1035,.T.); -#12798=EDGE_CURVE('',#17327,#16622,#20842,.T.); -#12799=EDGE_CURVE('',#17327,#17328,#1036,.T.); -#12800=EDGE_CURVE('',#17328,#16623,#20843,.T.); -#12801=EDGE_CURVE('',#17328,#17329,#1037,.T.); -#12802=EDGE_CURVE('',#17329,#16624,#20844,.T.); -#12803=EDGE_CURVE('',#17329,#17330,#20845,.T.); -#12804=EDGE_CURVE('',#17330,#16625,#20846,.T.); -#12805=EDGE_CURVE('',#17330,#17331,#1038,.T.); -#12806=EDGE_CURVE('',#17331,#16626,#20847,.T.); -#12807=EDGE_CURVE('',#17331,#17332,#20848,.T.); -#12808=EDGE_CURVE('',#17332,#16627,#20849,.T.); -#12809=EDGE_CURVE('',#17332,#17323,#1039,.T.); -#12810=EDGE_CURVE('',#16628,#17333,#20850,.T.); -#12811=EDGE_CURVE('',#17333,#16579,#20851,.T.); -#12812=EDGE_CURVE('',#17334,#16582,#20852,.T.); -#12813=EDGE_CURVE('',#17334,#16631,#20853,.T.); -#12814=EDGE_CURVE('',#17335,#17334,#1040,.T.); -#12815=EDGE_CURVE('',#17336,#17335,#20854,.T.); -#12816=EDGE_CURVE('',#17333,#17336,#1041,.T.); -#12817=EDGE_CURVE('',#17336,#16580,#20855,.T.); -#12818=EDGE_CURVE('',#17335,#16581,#20856,.T.); -#12819=EDGE_CURVE('',#17337,#16568,#20857,.T.); -#12820=EDGE_CURVE('',#17337,#16556,#20858,.T.); -#12821=EDGE_CURVE('',#16563,#17338,#20859,.T.); -#12822=EDGE_CURVE('',#17338,#16596,#20860,.T.); -#12823=EDGE_CURVE('',#17339,#17337,#1042,.T.); -#12824=EDGE_CURVE('',#17340,#17339,#20861,.T.); -#12825=EDGE_CURVE('',#17338,#17340,#1043,.T.); -#12826=EDGE_CURVE('',#17340,#16597,#20862,.T.); -#12827=EDGE_CURVE('',#17339,#16598,#20863,.T.); -#12828=EDGE_CURVE('',#17341,#17342,#20864,.T.); -#12829=EDGE_CURVE('',#17341,#17343,#20865,.T.); -#12830=EDGE_CURVE('',#17343,#17344,#20866,.T.); -#12831=EDGE_CURVE('',#17345,#17344,#20867,.T.); -#12832=EDGE_CURVE('',#17345,#17346,#20868,.T.); -#12833=EDGE_CURVE('',#17346,#17347,#20869,.T.); -#12834=EDGE_CURVE('',#17347,#17348,#20870,.T.); -#12835=EDGE_CURVE('',#17348,#17349,#20871,.T.); -#12836=EDGE_CURVE('',#17349,#17350,#20872,.T.); -#12837=EDGE_CURVE('',#17350,#17351,#20873,.T.); -#12838=EDGE_CURVE('',#17351,#17352,#20874,.T.); -#12839=EDGE_CURVE('',#17352,#17353,#20875,.T.); -#12840=EDGE_CURVE('',#17353,#17354,#20876,.T.); -#12841=EDGE_CURVE('',#17354,#17355,#20877,.T.); -#12842=EDGE_CURVE('',#17355,#17356,#20878,.T.); -#12843=EDGE_CURVE('',#17356,#17357,#20879,.T.); -#12844=EDGE_CURVE('',#17357,#17358,#20880,.T.); -#12845=EDGE_CURVE('',#17358,#17359,#20881,.T.); -#12846=EDGE_CURVE('',#17359,#17360,#20882,.T.); -#12847=EDGE_CURVE('',#17360,#17361,#20883,.T.); -#12848=EDGE_CURVE('',#17361,#17362,#20884,.T.); -#12849=EDGE_CURVE('',#17362,#17363,#20885,.T.); -#12850=EDGE_CURVE('',#17363,#17364,#20886,.T.); -#12851=EDGE_CURVE('',#17364,#17365,#20887,.T.); -#12852=EDGE_CURVE('',#17365,#17366,#20888,.T.); -#12853=EDGE_CURVE('',#17366,#17367,#20889,.T.); -#12854=EDGE_CURVE('',#17367,#17368,#20890,.T.); -#12855=EDGE_CURVE('',#17368,#17369,#20891,.T.); -#12856=EDGE_CURVE('',#17369,#17370,#20892,.T.); -#12857=EDGE_CURVE('',#17370,#17371,#20893,.T.); -#12858=EDGE_CURVE('',#17371,#17372,#20894,.T.); -#12859=EDGE_CURVE('',#17372,#17373,#20895,.T.); -#12860=EDGE_CURVE('',#17373,#17374,#20896,.T.); -#12861=EDGE_CURVE('',#17374,#17375,#20897,.T.); -#12862=EDGE_CURVE('',#17375,#17376,#20898,.T.); -#12863=EDGE_CURVE('',#17376,#17377,#20899,.T.); -#12864=EDGE_CURVE('',#17377,#17378,#20900,.T.); -#12865=EDGE_CURVE('',#17378,#17379,#20901,.T.); -#12866=EDGE_CURVE('',#17379,#17380,#20902,.T.); -#12867=EDGE_CURVE('',#17380,#17381,#20903,.T.); -#12868=EDGE_CURVE('',#17381,#17382,#20904,.T.); -#12869=EDGE_CURVE('',#17382,#17383,#20905,.T.); -#12870=EDGE_CURVE('',#17383,#17384,#20906,.T.); -#12871=EDGE_CURVE('',#17384,#17385,#20907,.T.); -#12872=EDGE_CURVE('',#17385,#17386,#20908,.T.); -#12873=EDGE_CURVE('',#17386,#17387,#20909,.T.); -#12874=EDGE_CURVE('',#17387,#17388,#20910,.T.); -#12875=EDGE_CURVE('',#17388,#17389,#20911,.T.); -#12876=EDGE_CURVE('',#17389,#17390,#20912,.T.); -#12877=EDGE_CURVE('',#17390,#17391,#20913,.T.); -#12878=EDGE_CURVE('',#17391,#17392,#20914,.T.); -#12879=EDGE_CURVE('',#17392,#17393,#20915,.T.); -#12880=EDGE_CURVE('',#17393,#17394,#20916,.T.); -#12881=EDGE_CURVE('',#17394,#17395,#20917,.T.); -#12882=EDGE_CURVE('',#17395,#17396,#20918,.T.); -#12883=EDGE_CURVE('',#17396,#17397,#20919,.T.); -#12884=EDGE_CURVE('',#17397,#17398,#20920,.T.); -#12885=EDGE_CURVE('',#17398,#17399,#20921,.T.); -#12886=EDGE_CURVE('',#17399,#17400,#20922,.T.); -#12887=EDGE_CURVE('',#17400,#17401,#20923,.T.); -#12888=EDGE_CURVE('',#17401,#17402,#20924,.T.); -#12889=EDGE_CURVE('',#17402,#17403,#20925,.T.); -#12890=EDGE_CURVE('',#17403,#17404,#20926,.T.); -#12891=EDGE_CURVE('',#17404,#17405,#20927,.T.); -#12892=EDGE_CURVE('',#17405,#17406,#20928,.T.); -#12893=EDGE_CURVE('',#17406,#17407,#20929,.T.); -#12894=EDGE_CURVE('',#17407,#17408,#20930,.T.); -#12895=EDGE_CURVE('',#17408,#17409,#20931,.T.); -#12896=EDGE_CURVE('',#17409,#17410,#20932,.T.); -#12897=EDGE_CURVE('',#17410,#17411,#20933,.T.); -#12898=EDGE_CURVE('',#17411,#17412,#20934,.T.); -#12899=EDGE_CURVE('',#17412,#17413,#20935,.T.); -#12900=EDGE_CURVE('',#17413,#17414,#20936,.T.); -#12901=EDGE_CURVE('',#17414,#17415,#20937,.T.); -#12902=EDGE_CURVE('',#17415,#17416,#20938,.T.); -#12903=EDGE_CURVE('',#17416,#17417,#20939,.T.); -#12904=EDGE_CURVE('',#17417,#17418,#20940,.T.); -#12905=EDGE_CURVE('',#17418,#17419,#20941,.T.); -#12906=EDGE_CURVE('',#17419,#17420,#20942,.T.); -#12907=EDGE_CURVE('',#17420,#17421,#20943,.T.); -#12908=EDGE_CURVE('',#17421,#17422,#20944,.T.); -#12909=EDGE_CURVE('',#17422,#17423,#20945,.T.); -#12910=EDGE_CURVE('',#17423,#17424,#20946,.T.); -#12911=EDGE_CURVE('',#17424,#17425,#20947,.T.); -#12912=EDGE_CURVE('',#17425,#17426,#20948,.T.); -#12913=EDGE_CURVE('',#17426,#17427,#20949,.T.); -#12914=EDGE_CURVE('',#17427,#17428,#20950,.T.); -#12915=EDGE_CURVE('',#17428,#17429,#20951,.T.); -#12916=EDGE_CURVE('',#17429,#17430,#20952,.T.); -#12917=EDGE_CURVE('',#17430,#17431,#20953,.T.); -#12918=EDGE_CURVE('',#17431,#17432,#20954,.T.); -#12919=EDGE_CURVE('',#17432,#17433,#20955,.T.); -#12920=EDGE_CURVE('',#17433,#17434,#20956,.T.); -#12921=EDGE_CURVE('',#17434,#17435,#20957,.T.); -#12922=EDGE_CURVE('',#17435,#17436,#20958,.T.); -#12923=EDGE_CURVE('',#17436,#17437,#20959,.T.); -#12924=EDGE_CURVE('',#17437,#17438,#20960,.T.); -#12925=EDGE_CURVE('',#17438,#17439,#20961,.T.); -#12926=EDGE_CURVE('',#17439,#17440,#20962,.T.); -#12927=EDGE_CURVE('',#17440,#17441,#20963,.T.); -#12928=EDGE_CURVE('',#17441,#17442,#20964,.T.); -#12929=EDGE_CURVE('',#17442,#17443,#20965,.T.); -#12930=EDGE_CURVE('',#17443,#17444,#20966,.T.); -#12931=EDGE_CURVE('',#17444,#17445,#20967,.T.); -#12932=EDGE_CURVE('',#17445,#17446,#20968,.T.); -#12933=EDGE_CURVE('',#17446,#17447,#20969,.T.); -#12934=EDGE_CURVE('',#17447,#17448,#20970,.T.); -#12935=EDGE_CURVE('',#17448,#17449,#20971,.T.); -#12936=EDGE_CURVE('',#17449,#17450,#20972,.T.); -#12937=EDGE_CURVE('',#17450,#17451,#20973,.T.); -#12938=EDGE_CURVE('',#17451,#17452,#20974,.T.); -#12939=EDGE_CURVE('',#17452,#17453,#20975,.T.); -#12940=EDGE_CURVE('',#17453,#17454,#20976,.T.); -#12941=EDGE_CURVE('',#17454,#17455,#20977,.T.); -#12942=EDGE_CURVE('',#17455,#17456,#20978,.T.); -#12943=EDGE_CURVE('',#17456,#17457,#20979,.T.); -#12944=EDGE_CURVE('',#17457,#17458,#20980,.T.); -#12945=EDGE_CURVE('',#17458,#17459,#20981,.T.); -#12946=EDGE_CURVE('',#17459,#17460,#20982,.T.); -#12947=EDGE_CURVE('',#17460,#17461,#20983,.T.); -#12948=EDGE_CURVE('',#17461,#17462,#20984,.T.); -#12949=EDGE_CURVE('',#17462,#17463,#20985,.T.); -#12950=EDGE_CURVE('',#17463,#17464,#20986,.T.); -#12951=EDGE_CURVE('',#17464,#17465,#20987,.T.); -#12952=EDGE_CURVE('',#17465,#17466,#20988,.T.); -#12953=EDGE_CURVE('',#17466,#17467,#20989,.T.); -#12954=EDGE_CURVE('',#17467,#17468,#20990,.T.); -#12955=EDGE_CURVE('',#17468,#17469,#20991,.T.); -#12956=EDGE_CURVE('',#17469,#17470,#20992,.T.); -#12957=EDGE_CURVE('',#17470,#17471,#20993,.T.); -#12958=EDGE_CURVE('',#17471,#17472,#20994,.T.); -#12959=EDGE_CURVE('',#17472,#17473,#20995,.T.); -#12960=EDGE_CURVE('',#17473,#17474,#20996,.T.); -#12961=EDGE_CURVE('',#17474,#17475,#20997,.T.); -#12962=EDGE_CURVE('',#17475,#17476,#20998,.T.); -#12963=EDGE_CURVE('',#17476,#17477,#20999,.T.); -#12964=EDGE_CURVE('',#17477,#17478,#21000,.T.); -#12965=EDGE_CURVE('',#17478,#17479,#21001,.T.); -#12966=EDGE_CURVE('',#17479,#17480,#21002,.T.); -#12967=EDGE_CURVE('',#17480,#17481,#21003,.T.); -#12968=EDGE_CURVE('',#17481,#17482,#21004,.T.); -#12969=EDGE_CURVE('',#17482,#17483,#21005,.T.); -#12970=EDGE_CURVE('',#17483,#17484,#21006,.T.); -#12971=EDGE_CURVE('',#17484,#17485,#21007,.T.); -#12972=EDGE_CURVE('',#17485,#17486,#21008,.T.); -#12973=EDGE_CURVE('',#17486,#17487,#21009,.T.); -#12974=EDGE_CURVE('',#17487,#17488,#21010,.T.); -#12975=EDGE_CURVE('',#17488,#17489,#21011,.T.); -#12976=EDGE_CURVE('',#17489,#17490,#21012,.T.); -#12977=EDGE_CURVE('',#17490,#17491,#21013,.T.); -#12978=EDGE_CURVE('',#17491,#17492,#21014,.T.); -#12979=EDGE_CURVE('',#17492,#17493,#21015,.T.); -#12980=EDGE_CURVE('',#17493,#17494,#21016,.T.); -#12981=EDGE_CURVE('',#17494,#17495,#21017,.T.); -#12982=EDGE_CURVE('',#17495,#17496,#21018,.T.); -#12983=EDGE_CURVE('',#17496,#17497,#21019,.T.); -#12984=EDGE_CURVE('',#17497,#17498,#21020,.T.); -#12985=EDGE_CURVE('',#17498,#17499,#21021,.T.); -#12986=EDGE_CURVE('',#17499,#17500,#21022,.T.); -#12987=EDGE_CURVE('',#17500,#17501,#21023,.T.); -#12988=EDGE_CURVE('',#17501,#17502,#21024,.T.); -#12989=EDGE_CURVE('',#17502,#17503,#21025,.T.); -#12990=EDGE_CURVE('',#17503,#17504,#21026,.T.); -#12991=EDGE_CURVE('',#17342,#17504,#21027,.T.); -#12992=EDGE_CURVE('',#17505,#17506,#21028,.T.); -#12993=EDGE_CURVE('',#17505,#17507,#21029,.T.); -#12994=EDGE_CURVE('',#17508,#17507,#21030,.T.); -#12995=EDGE_CURVE('',#17508,#17509,#21031,.T.); -#12996=EDGE_CURVE('',#17509,#17510,#21032,.T.); -#12997=EDGE_CURVE('',#17510,#17511,#21033,.T.); -#12998=EDGE_CURVE('',#17512,#17511,#21034,.T.); -#12999=EDGE_CURVE('',#17512,#17513,#21035,.T.); -#13000=EDGE_CURVE('',#17513,#17514,#21036,.T.); -#13001=EDGE_CURVE('',#17514,#17515,#21037,.T.); -#13002=EDGE_CURVE('',#17516,#17515,#21038,.T.); -#13003=EDGE_CURVE('',#17516,#17517,#21039,.T.); -#13004=EDGE_CURVE('',#17517,#17518,#21040,.T.); -#13005=EDGE_CURVE('',#17518,#17519,#21041,.T.); -#13006=EDGE_CURVE('',#17520,#17519,#21042,.T.); -#13007=EDGE_CURVE('',#17520,#17521,#21043,.T.); -#13008=EDGE_CURVE('',#17521,#17522,#21044,.T.); -#13009=EDGE_CURVE('',#17522,#17523,#21045,.T.); -#13010=EDGE_CURVE('',#17524,#17523,#21046,.T.); -#13011=EDGE_CURVE('',#17524,#17525,#21047,.T.); -#13012=EDGE_CURVE('',#17525,#17526,#21048,.T.); -#13013=EDGE_CURVE('',#17526,#17527,#21049,.T.); -#13014=EDGE_CURVE('',#17528,#17527,#21050,.T.); -#13015=EDGE_CURVE('',#17528,#17529,#21051,.T.); -#13016=EDGE_CURVE('',#17529,#17530,#21052,.T.); -#13017=EDGE_CURVE('',#17530,#17531,#21053,.T.); -#13018=EDGE_CURVE('',#17532,#17531,#21054,.T.); -#13019=EDGE_CURVE('',#17532,#17533,#21055,.T.); -#13020=EDGE_CURVE('',#17533,#17534,#21056,.T.); -#13021=EDGE_CURVE('',#17534,#17535,#21057,.T.); -#13022=EDGE_CURVE('',#17536,#17535,#21058,.T.); -#13023=EDGE_CURVE('',#17536,#17537,#21059,.T.); -#13024=EDGE_CURVE('',#17537,#17538,#21060,.T.); -#13025=EDGE_CURVE('',#17538,#17539,#21061,.T.); -#13026=EDGE_CURVE('',#17540,#17539,#21062,.T.); -#13027=EDGE_CURVE('',#17540,#17541,#21063,.T.); -#13028=EDGE_CURVE('',#17541,#17542,#21064,.T.); -#13029=EDGE_CURVE('',#17542,#17543,#21065,.T.); -#13030=EDGE_CURVE('',#17544,#17543,#21066,.T.); -#13031=EDGE_CURVE('',#17544,#17545,#21067,.T.); -#13032=EDGE_CURVE('',#17545,#17546,#21068,.T.); -#13033=EDGE_CURVE('',#17546,#17547,#21069,.T.); -#13034=EDGE_CURVE('',#17548,#17547,#21070,.T.); -#13035=EDGE_CURVE('',#17548,#17549,#21071,.T.); -#13036=EDGE_CURVE('',#17549,#17550,#21072,.T.); -#13037=EDGE_CURVE('',#17550,#17551,#21073,.T.); -#13038=EDGE_CURVE('',#17552,#17551,#21074,.T.); -#13039=EDGE_CURVE('',#17552,#17553,#21075,.T.); -#13040=EDGE_CURVE('',#17553,#17554,#21076,.T.); -#13041=EDGE_CURVE('',#17554,#17555,#21077,.T.); -#13042=EDGE_CURVE('',#17556,#17555,#21078,.T.); -#13043=EDGE_CURVE('',#17556,#17557,#21079,.T.); -#13044=EDGE_CURVE('',#17557,#17558,#21080,.T.); -#13045=EDGE_CURVE('',#17558,#17559,#21081,.T.); -#13046=EDGE_CURVE('',#17560,#17559,#21082,.T.); -#13047=EDGE_CURVE('',#17560,#17561,#21083,.T.); -#13048=EDGE_CURVE('',#17561,#17562,#21084,.T.); -#13049=EDGE_CURVE('',#17562,#17563,#21085,.T.); -#13050=EDGE_CURVE('',#17564,#17563,#21086,.T.); -#13051=EDGE_CURVE('',#17564,#17565,#21087,.T.); -#13052=EDGE_CURVE('',#17565,#17566,#21088,.T.); -#13053=EDGE_CURVE('',#17566,#17567,#21089,.T.); -#13054=EDGE_CURVE('',#17568,#17567,#21090,.T.); -#13055=EDGE_CURVE('',#17568,#17569,#21091,.T.); -#13056=EDGE_CURVE('',#17569,#17570,#21092,.T.); -#13057=EDGE_CURVE('',#17570,#17571,#21093,.T.); -#13058=EDGE_CURVE('',#17572,#17571,#21094,.T.); -#13059=EDGE_CURVE('',#17572,#17573,#21095,.T.); -#13060=EDGE_CURVE('',#17573,#17574,#21096,.T.); -#13061=EDGE_CURVE('',#17574,#17575,#21097,.T.); -#13062=EDGE_CURVE('',#17576,#17575,#21098,.T.); -#13063=EDGE_CURVE('',#17576,#17577,#21099,.T.); -#13064=EDGE_CURVE('',#17577,#17578,#21100,.T.); -#13065=EDGE_CURVE('',#17578,#17579,#21101,.T.); -#13066=EDGE_CURVE('',#17580,#17579,#21102,.T.); -#13067=EDGE_CURVE('',#17580,#17581,#21103,.T.); -#13068=EDGE_CURVE('',#17581,#17582,#21104,.T.); -#13069=EDGE_CURVE('',#17582,#17583,#21105,.T.); -#13070=EDGE_CURVE('',#17584,#17583,#21106,.T.); -#13071=EDGE_CURVE('',#17584,#17585,#21107,.T.); -#13072=EDGE_CURVE('',#17585,#17586,#21108,.T.); -#13073=EDGE_CURVE('',#17586,#17587,#21109,.T.); -#13074=EDGE_CURVE('',#17588,#17587,#21110,.T.); -#13075=EDGE_CURVE('',#17588,#17589,#21111,.T.); -#13076=EDGE_CURVE('',#17589,#17590,#21112,.T.); -#13077=EDGE_CURVE('',#17590,#17591,#21113,.T.); -#13078=EDGE_CURVE('',#17592,#17591,#21114,.T.); -#13079=EDGE_CURVE('',#17592,#17593,#21115,.T.); -#13080=EDGE_CURVE('',#17593,#17594,#21116,.T.); -#13081=EDGE_CURVE('',#17594,#17595,#21117,.T.); -#13082=EDGE_CURVE('',#17596,#17595,#21118,.T.); -#13083=EDGE_CURVE('',#17596,#17597,#21119,.T.); -#13084=EDGE_CURVE('',#17597,#17598,#21120,.T.); -#13085=EDGE_CURVE('',#17598,#17599,#21121,.T.); -#13086=EDGE_CURVE('',#17600,#17599,#21122,.T.); -#13087=EDGE_CURVE('',#17600,#17601,#21123,.T.); -#13088=EDGE_CURVE('',#17601,#17602,#21124,.T.); -#13089=EDGE_CURVE('',#17602,#17603,#21125,.T.); -#13090=EDGE_CURVE('',#17604,#17603,#21126,.T.); -#13091=EDGE_CURVE('',#17604,#17605,#21127,.T.); -#13092=EDGE_CURVE('',#17605,#17606,#21128,.T.); -#13093=EDGE_CURVE('',#17606,#17607,#21129,.T.); -#13094=EDGE_CURVE('',#17608,#17607,#21130,.T.); -#13095=EDGE_CURVE('',#17608,#17609,#21131,.T.); -#13096=EDGE_CURVE('',#17609,#17610,#21132,.T.); -#13097=EDGE_CURVE('',#17610,#17611,#21133,.T.); -#13098=EDGE_CURVE('',#17612,#17611,#21134,.T.); -#13099=EDGE_CURVE('',#17612,#17613,#21135,.T.); -#13100=EDGE_CURVE('',#17613,#17614,#21136,.T.); -#13101=EDGE_CURVE('',#17614,#17615,#21137,.T.); -#13102=EDGE_CURVE('',#17616,#17615,#21138,.T.); -#13103=EDGE_CURVE('',#17616,#17617,#21139,.T.); -#13104=EDGE_CURVE('',#17617,#17618,#21140,.T.); -#13105=EDGE_CURVE('',#17618,#17619,#21141,.T.); -#13106=EDGE_CURVE('',#17620,#17619,#21142,.T.); -#13107=EDGE_CURVE('',#17620,#17621,#21143,.T.); -#13108=EDGE_CURVE('',#17621,#17622,#21144,.T.); -#13109=EDGE_CURVE('',#17622,#17623,#21145,.T.); -#13110=EDGE_CURVE('',#17624,#17623,#21146,.T.); -#13111=EDGE_CURVE('',#17624,#17625,#21147,.T.); -#13112=EDGE_CURVE('',#17625,#17626,#21148,.T.); -#13113=EDGE_CURVE('',#17626,#17627,#21149,.T.); -#13114=EDGE_CURVE('',#17628,#17627,#21150,.T.); -#13115=EDGE_CURVE('',#17628,#17629,#21151,.T.); -#13116=EDGE_CURVE('',#17629,#17630,#21152,.T.); -#13117=EDGE_CURVE('',#17630,#17631,#21153,.T.); -#13118=EDGE_CURVE('',#17632,#17631,#21154,.T.); -#13119=EDGE_CURVE('',#17632,#17633,#21155,.T.); -#13120=EDGE_CURVE('',#17633,#17634,#21156,.T.); -#13121=EDGE_CURVE('',#17634,#17635,#21157,.T.); -#13122=EDGE_CURVE('',#17636,#17635,#21158,.T.); -#13123=EDGE_CURVE('',#17636,#17637,#21159,.T.); -#13124=EDGE_CURVE('',#17637,#17638,#21160,.T.); -#13125=EDGE_CURVE('',#17638,#17639,#21161,.T.); -#13126=EDGE_CURVE('',#17640,#17639,#21162,.T.); -#13127=EDGE_CURVE('',#17640,#17641,#21163,.T.); -#13128=EDGE_CURVE('',#17641,#17642,#21164,.T.); -#13129=EDGE_CURVE('',#17642,#17643,#21165,.T.); -#13130=EDGE_CURVE('',#17644,#17643,#21166,.T.); -#13131=EDGE_CURVE('',#17644,#17645,#21167,.T.); -#13132=EDGE_CURVE('',#17645,#17646,#21168,.T.); -#13133=EDGE_CURVE('',#17646,#17647,#21169,.T.); -#13134=EDGE_CURVE('',#17648,#17647,#21170,.T.); -#13135=EDGE_CURVE('',#17648,#17649,#21171,.T.); -#13136=EDGE_CURVE('',#17649,#17650,#21172,.T.); -#13137=EDGE_CURVE('',#17650,#17651,#21173,.T.); -#13138=EDGE_CURVE('',#17652,#17651,#21174,.T.); -#13139=EDGE_CURVE('',#17652,#17653,#21175,.T.); -#13140=EDGE_CURVE('',#17653,#17654,#21176,.T.); -#13141=EDGE_CURVE('',#17654,#17655,#21177,.T.); -#13142=EDGE_CURVE('',#17656,#17655,#21178,.T.); -#13143=EDGE_CURVE('',#17656,#17657,#21179,.T.); -#13144=EDGE_CURVE('',#17657,#17658,#21180,.T.); -#13145=EDGE_CURVE('',#17658,#17659,#21181,.T.); -#13146=EDGE_CURVE('',#17660,#17659,#21182,.T.); -#13147=EDGE_CURVE('',#17660,#17661,#21183,.T.); -#13148=EDGE_CURVE('',#17661,#17662,#21184,.T.); -#13149=EDGE_CURVE('',#17662,#17663,#21185,.T.); -#13150=EDGE_CURVE('',#17664,#17663,#21186,.T.); -#13151=EDGE_CURVE('',#17664,#17665,#21187,.T.); -#13152=EDGE_CURVE('',#17665,#17666,#21188,.T.); -#13153=EDGE_CURVE('',#17667,#17666,#21189,.T.); -#13154=EDGE_CURVE('',#17668,#17667,#21190,.T.); -#13155=EDGE_CURVE('',#17506,#17668,#21191,.T.); -#13156=EDGE_CURVE('',#17669,#17670,#21192,.T.); -#13157=EDGE_CURVE('',#17669,#17671,#21193,.T.); -#13158=EDGE_CURVE('',#17672,#17671,#21194,.T.); -#13159=EDGE_CURVE('',#17673,#17672,#21195,.T.); -#13160=EDGE_CURVE('',#17673,#17674,#21196,.T.); -#13161=EDGE_CURVE('',#17674,#17675,#21197,.T.); -#13162=EDGE_CURVE('',#17675,#17676,#21198,.T.); -#13163=EDGE_CURVE('',#17676,#17677,#21199,.T.); -#13164=EDGE_CURVE('',#17677,#17678,#21200,.T.); -#13165=EDGE_CURVE('',#17678,#17679,#21201,.T.); -#13166=EDGE_CURVE('',#17680,#17679,#21202,.T.); -#13167=EDGE_CURVE('',#17680,#17681,#21203,.T.); -#13168=EDGE_CURVE('',#17681,#17682,#21204,.T.); -#13169=EDGE_CURVE('',#17682,#17683,#21205,.T.); -#13170=EDGE_CURVE('',#17683,#17684,#21206,.T.); -#13171=EDGE_CURVE('',#17684,#17685,#21207,.T.); -#13172=EDGE_CURVE('',#17685,#17686,#21208,.T.); -#13173=EDGE_CURVE('',#17686,#17687,#21209,.T.); -#13174=EDGE_CURVE('',#17688,#17687,#21210,.T.); -#13175=EDGE_CURVE('',#17688,#17689,#21211,.T.); -#13176=EDGE_CURVE('',#17689,#17690,#21212,.T.); -#13177=EDGE_CURVE('',#17690,#17691,#21213,.T.); -#13178=EDGE_CURVE('',#17691,#17692,#21214,.T.); -#13179=EDGE_CURVE('',#17692,#17693,#21215,.T.); -#13180=EDGE_CURVE('',#17693,#17694,#21216,.T.); -#13181=EDGE_CURVE('',#17694,#17695,#21217,.T.); -#13182=EDGE_CURVE('',#17696,#17695,#21218,.T.); -#13183=EDGE_CURVE('',#17696,#17697,#21219,.T.); -#13184=EDGE_CURVE('',#17697,#17698,#21220,.T.); -#13185=EDGE_CURVE('',#17698,#17699,#21221,.T.); -#13186=EDGE_CURVE('',#17699,#17700,#21222,.T.); -#13187=EDGE_CURVE('',#17700,#17701,#21223,.T.); -#13188=EDGE_CURVE('',#17701,#17702,#21224,.T.); -#13189=EDGE_CURVE('',#17702,#17703,#21225,.T.); -#13190=EDGE_CURVE('',#17704,#17703,#21226,.T.); -#13191=EDGE_CURVE('',#17704,#17705,#21227,.T.); -#13192=EDGE_CURVE('',#17705,#17706,#21228,.T.); -#13193=EDGE_CURVE('',#17706,#17707,#21229,.T.); -#13194=EDGE_CURVE('',#17707,#17708,#21230,.T.); -#13195=EDGE_CURVE('',#17708,#17709,#21231,.T.); -#13196=EDGE_CURVE('',#17709,#17710,#21232,.T.); -#13197=EDGE_CURVE('',#17710,#17711,#21233,.T.); -#13198=EDGE_CURVE('',#17712,#17711,#21234,.T.); -#13199=EDGE_CURVE('',#17712,#17713,#21235,.T.); -#13200=EDGE_CURVE('',#17713,#17714,#21236,.T.); -#13201=EDGE_CURVE('',#17714,#17715,#21237,.T.); -#13202=EDGE_CURVE('',#17715,#17716,#21238,.T.); -#13203=EDGE_CURVE('',#17716,#17717,#21239,.T.); -#13204=EDGE_CURVE('',#17717,#17718,#21240,.T.); -#13205=EDGE_CURVE('',#17718,#17719,#21241,.T.); -#13206=EDGE_CURVE('',#17720,#17719,#21242,.T.); -#13207=EDGE_CURVE('',#17720,#17721,#21243,.T.); -#13208=EDGE_CURVE('',#17721,#17722,#21244,.T.); -#13209=EDGE_CURVE('',#17722,#17723,#21245,.T.); -#13210=EDGE_CURVE('',#17723,#17724,#21246,.T.); -#13211=EDGE_CURVE('',#17724,#17725,#21247,.T.); -#13212=EDGE_CURVE('',#17725,#17726,#21248,.T.); -#13213=EDGE_CURVE('',#17726,#17727,#21249,.T.); -#13214=EDGE_CURVE('',#17728,#17727,#21250,.T.); -#13215=EDGE_CURVE('',#17728,#17729,#21251,.T.); -#13216=EDGE_CURVE('',#17729,#17730,#21252,.T.); -#13217=EDGE_CURVE('',#17730,#17731,#21253,.T.); -#13218=EDGE_CURVE('',#17731,#17732,#21254,.T.); -#13219=EDGE_CURVE('',#17732,#17733,#21255,.T.); -#13220=EDGE_CURVE('',#17733,#17734,#21256,.T.); -#13221=EDGE_CURVE('',#17734,#17735,#21257,.T.); -#13222=EDGE_CURVE('',#17736,#17735,#21258,.T.); -#13223=EDGE_CURVE('',#17736,#17737,#21259,.T.); -#13224=EDGE_CURVE('',#17737,#17738,#21260,.T.); -#13225=EDGE_CURVE('',#17738,#17739,#21261,.T.); -#13226=EDGE_CURVE('',#17739,#17740,#21262,.T.); -#13227=EDGE_CURVE('',#17740,#17741,#21263,.T.); -#13228=EDGE_CURVE('',#17741,#17742,#21264,.T.); -#13229=EDGE_CURVE('',#17742,#17743,#21265,.T.); -#13230=EDGE_CURVE('',#17744,#17743,#21266,.T.); -#13231=EDGE_CURVE('',#17744,#17745,#21267,.T.); -#13232=EDGE_CURVE('',#17745,#17746,#21268,.T.); -#13233=EDGE_CURVE('',#17746,#17747,#21269,.T.); -#13234=EDGE_CURVE('',#17747,#17748,#21270,.T.); -#13235=EDGE_CURVE('',#17748,#17749,#21271,.T.); -#13236=EDGE_CURVE('',#17749,#17750,#21272,.T.); -#13237=EDGE_CURVE('',#17750,#17751,#21273,.T.); -#13238=EDGE_CURVE('',#17752,#17751,#21274,.T.); -#13239=EDGE_CURVE('',#17752,#17753,#21275,.T.); -#13240=EDGE_CURVE('',#17753,#17754,#21276,.T.); -#13241=EDGE_CURVE('',#17754,#17755,#21277,.T.); -#13242=EDGE_CURVE('',#17755,#17756,#21278,.T.); -#13243=EDGE_CURVE('',#17756,#17757,#21279,.T.); -#13244=EDGE_CURVE('',#17757,#17758,#21280,.T.); -#13245=EDGE_CURVE('',#17758,#17759,#21281,.T.); -#13246=EDGE_CURVE('',#17760,#17759,#21282,.T.); -#13247=EDGE_CURVE('',#17760,#17761,#21283,.T.); -#13248=EDGE_CURVE('',#17761,#17762,#21284,.T.); -#13249=EDGE_CURVE('',#17762,#17763,#21285,.T.); -#13250=EDGE_CURVE('',#17763,#17764,#21286,.T.); -#13251=EDGE_CURVE('',#17764,#17765,#21287,.T.); -#13252=EDGE_CURVE('',#17765,#17766,#21288,.T.); -#13253=EDGE_CURVE('',#17766,#17767,#21289,.T.); -#13254=EDGE_CURVE('',#17768,#17767,#21290,.T.); -#13255=EDGE_CURVE('',#17768,#17769,#21291,.T.); -#13256=EDGE_CURVE('',#17769,#17770,#21292,.T.); -#13257=EDGE_CURVE('',#17770,#17771,#21293,.T.); -#13258=EDGE_CURVE('',#17771,#17772,#21294,.T.); -#13259=EDGE_CURVE('',#17772,#17773,#21295,.T.); -#13260=EDGE_CURVE('',#17773,#17774,#21296,.T.); -#13261=EDGE_CURVE('',#17774,#17775,#21297,.T.); -#13262=EDGE_CURVE('',#17776,#17775,#21298,.T.); -#13263=EDGE_CURVE('',#17776,#17777,#21299,.T.); -#13264=EDGE_CURVE('',#17777,#17778,#21300,.T.); -#13265=EDGE_CURVE('',#17778,#17779,#21301,.T.); -#13266=EDGE_CURVE('',#17779,#17780,#21302,.T.); -#13267=EDGE_CURVE('',#17780,#17781,#21303,.T.); -#13268=EDGE_CURVE('',#17781,#17782,#21304,.T.); -#13269=EDGE_CURVE('',#17782,#17783,#21305,.T.); -#13270=EDGE_CURVE('',#17784,#17783,#21306,.T.); -#13271=EDGE_CURVE('',#17784,#17785,#21307,.T.); -#13272=EDGE_CURVE('',#17785,#17786,#21308,.T.); -#13273=EDGE_CURVE('',#17786,#17787,#21309,.T.); -#13274=EDGE_CURVE('',#17787,#17788,#21310,.T.); -#13275=EDGE_CURVE('',#17788,#17789,#21311,.T.); -#13276=EDGE_CURVE('',#17789,#17790,#21312,.T.); -#13277=EDGE_CURVE('',#17790,#17791,#21313,.T.); -#13278=EDGE_CURVE('',#17792,#17791,#21314,.T.); -#13279=EDGE_CURVE('',#17792,#17793,#21315,.T.); -#13280=EDGE_CURVE('',#17793,#17794,#21316,.T.); -#13281=EDGE_CURVE('',#17794,#17795,#21317,.T.); -#13282=EDGE_CURVE('',#17795,#17796,#21318,.T.); -#13283=EDGE_CURVE('',#17796,#17797,#21319,.T.); -#13284=EDGE_CURVE('',#17797,#17798,#21320,.T.); -#13285=EDGE_CURVE('',#17798,#17799,#21321,.T.); -#13286=EDGE_CURVE('',#17800,#17799,#21322,.T.); -#13287=EDGE_CURVE('',#17800,#17801,#21323,.T.); -#13288=EDGE_CURVE('',#17801,#17802,#21324,.T.); -#13289=EDGE_CURVE('',#17802,#17803,#21325,.T.); -#13290=EDGE_CURVE('',#17803,#17804,#21326,.T.); -#13291=EDGE_CURVE('',#17804,#17805,#21327,.T.); -#13292=EDGE_CURVE('',#17805,#17806,#21328,.T.); -#13293=EDGE_CURVE('',#17806,#17807,#21329,.T.); -#13294=EDGE_CURVE('',#17808,#17807,#21330,.T.); -#13295=EDGE_CURVE('',#17808,#17809,#21331,.T.); -#13296=EDGE_CURVE('',#17809,#17810,#21332,.T.); -#13297=EDGE_CURVE('',#17810,#17811,#21333,.T.); -#13298=EDGE_CURVE('',#17811,#17812,#21334,.T.); -#13299=EDGE_CURVE('',#17812,#17813,#21335,.T.); -#13300=EDGE_CURVE('',#17813,#17814,#21336,.T.); -#13301=EDGE_CURVE('',#17814,#17815,#21337,.T.); -#13302=EDGE_CURVE('',#17816,#17815,#21338,.T.); -#13303=EDGE_CURVE('',#17816,#17817,#21339,.T.); -#13304=EDGE_CURVE('',#17817,#17818,#21340,.T.); -#13305=EDGE_CURVE('',#17818,#17819,#21341,.T.); -#13306=EDGE_CURVE('',#17819,#17820,#21342,.T.); -#13307=EDGE_CURVE('',#17820,#17821,#21343,.T.); -#13308=EDGE_CURVE('',#17821,#17822,#21344,.T.); -#13309=EDGE_CURVE('',#17822,#17823,#21345,.T.); -#13310=EDGE_CURVE('',#17824,#17823,#21346,.T.); -#13311=EDGE_CURVE('',#17824,#17825,#21347,.T.); -#13312=EDGE_CURVE('',#17825,#17826,#21348,.T.); -#13313=EDGE_CURVE('',#17826,#17827,#21349,.T.); -#13314=EDGE_CURVE('',#17827,#17828,#21350,.T.); -#13315=EDGE_CURVE('',#17828,#17829,#21351,.T.); -#13316=EDGE_CURVE('',#17829,#17830,#21352,.T.); -#13317=EDGE_CURVE('',#17830,#17831,#21353,.T.); -#13318=EDGE_CURVE('',#17832,#17831,#21354,.T.); -#13319=EDGE_CURVE('',#17670,#17832,#21355,.T.); -#13320=EDGE_CURVE('',#17833,#17834,#21356,.T.); -#13321=EDGE_CURVE('',#17833,#17835,#21357,.T.); -#13322=EDGE_CURVE('',#17835,#17836,#21358,.T.); -#13323=EDGE_CURVE('',#17836,#17837,#21359,.T.); -#13324=EDGE_CURVE('',#17837,#17838,#21360,.T.); -#13325=EDGE_CURVE('',#17838,#17839,#21361,.T.); -#13326=EDGE_CURVE('',#17840,#17839,#21362,.T.); -#13327=EDGE_CURVE('',#17840,#17841,#21363,.T.); -#13328=EDGE_CURVE('',#17841,#17842,#21364,.T.); -#13329=EDGE_CURVE('',#17842,#17843,#21365,.T.); -#13330=EDGE_CURVE('',#17843,#17844,#21366,.T.); -#13331=EDGE_CURVE('',#17844,#17845,#21367,.T.); -#13332=EDGE_CURVE('',#17845,#17846,#21368,.T.); -#13333=EDGE_CURVE('',#17846,#17847,#21369,.T.); -#13334=EDGE_CURVE('',#17848,#17847,#21370,.T.); -#13335=EDGE_CURVE('',#17848,#17849,#21371,.T.); -#13336=EDGE_CURVE('',#17849,#17850,#21372,.T.); -#13337=EDGE_CURVE('',#17850,#17851,#21373,.T.); -#13338=EDGE_CURVE('',#17851,#17852,#21374,.T.); -#13339=EDGE_CURVE('',#17852,#17853,#21375,.T.); -#13340=EDGE_CURVE('',#17853,#17854,#21376,.T.); -#13341=EDGE_CURVE('',#17854,#17855,#21377,.T.); -#13342=EDGE_CURVE('',#17856,#17855,#21378,.T.); -#13343=EDGE_CURVE('',#17856,#17857,#21379,.T.); -#13344=EDGE_CURVE('',#17857,#17858,#21380,.T.); -#13345=EDGE_CURVE('',#17858,#17859,#21381,.T.); -#13346=EDGE_CURVE('',#17859,#17860,#21382,.T.); -#13347=EDGE_CURVE('',#17860,#17861,#21383,.T.); -#13348=EDGE_CURVE('',#17861,#17862,#21384,.T.); -#13349=EDGE_CURVE('',#17862,#17863,#21385,.T.); -#13350=EDGE_CURVE('',#17864,#17863,#21386,.T.); -#13351=EDGE_CURVE('',#17864,#17865,#21387,.T.); -#13352=EDGE_CURVE('',#17865,#17866,#21388,.T.); -#13353=EDGE_CURVE('',#17866,#17867,#21389,.T.); -#13354=EDGE_CURVE('',#17867,#17868,#21390,.T.); -#13355=EDGE_CURVE('',#17868,#17869,#21391,.T.); -#13356=EDGE_CURVE('',#17869,#17870,#21392,.T.); -#13357=EDGE_CURVE('',#17870,#17871,#21393,.T.); -#13358=EDGE_CURVE('',#17872,#17871,#21394,.T.); -#13359=EDGE_CURVE('',#17872,#17873,#21395,.T.); -#13360=EDGE_CURVE('',#17873,#17874,#21396,.T.); -#13361=EDGE_CURVE('',#17874,#17875,#21397,.T.); -#13362=EDGE_CURVE('',#17875,#17876,#21398,.T.); -#13363=EDGE_CURVE('',#17876,#17877,#21399,.T.); -#13364=EDGE_CURVE('',#17877,#17878,#21400,.T.); -#13365=EDGE_CURVE('',#17878,#17879,#21401,.T.); -#13366=EDGE_CURVE('',#17880,#17879,#21402,.T.); -#13367=EDGE_CURVE('',#17880,#17881,#21403,.T.); -#13368=EDGE_CURVE('',#17881,#17882,#21404,.T.); -#13369=EDGE_CURVE('',#17882,#17883,#21405,.T.); -#13370=EDGE_CURVE('',#17883,#17884,#21406,.T.); -#13371=EDGE_CURVE('',#17884,#17885,#21407,.T.); -#13372=EDGE_CURVE('',#17885,#17886,#21408,.T.); -#13373=EDGE_CURVE('',#17886,#17887,#21409,.T.); -#13374=EDGE_CURVE('',#17888,#17887,#21410,.T.); -#13375=EDGE_CURVE('',#17888,#17889,#21411,.T.); -#13376=EDGE_CURVE('',#17889,#17890,#21412,.T.); -#13377=EDGE_CURVE('',#17890,#17891,#21413,.T.); -#13378=EDGE_CURVE('',#17891,#17892,#21414,.T.); -#13379=EDGE_CURVE('',#17892,#17893,#21415,.T.); -#13380=EDGE_CURVE('',#17893,#17894,#21416,.T.); -#13381=EDGE_CURVE('',#17894,#17895,#21417,.T.); -#13382=EDGE_CURVE('',#17896,#17895,#21418,.T.); -#13383=EDGE_CURVE('',#17896,#17897,#21419,.T.); -#13384=EDGE_CURVE('',#17897,#17898,#21420,.T.); -#13385=EDGE_CURVE('',#17898,#17899,#21421,.T.); -#13386=EDGE_CURVE('',#17899,#17900,#21422,.T.); -#13387=EDGE_CURVE('',#17900,#17901,#21423,.T.); -#13388=EDGE_CURVE('',#17901,#17902,#21424,.T.); -#13389=EDGE_CURVE('',#17902,#17903,#21425,.T.); -#13390=EDGE_CURVE('',#17904,#17903,#21426,.T.); -#13391=EDGE_CURVE('',#17904,#17905,#21427,.T.); -#13392=EDGE_CURVE('',#17905,#17906,#21428,.T.); -#13393=EDGE_CURVE('',#17906,#17907,#21429,.T.); -#13394=EDGE_CURVE('',#17907,#17908,#21430,.T.); -#13395=EDGE_CURVE('',#17908,#17909,#21431,.T.); -#13396=EDGE_CURVE('',#17909,#17910,#21432,.T.); -#13397=EDGE_CURVE('',#17910,#17911,#21433,.T.); -#13398=EDGE_CURVE('',#17912,#17911,#21434,.T.); -#13399=EDGE_CURVE('',#17912,#17913,#21435,.T.); -#13400=EDGE_CURVE('',#17913,#17914,#21436,.T.); -#13401=EDGE_CURVE('',#17914,#17915,#21437,.T.); -#13402=EDGE_CURVE('',#17915,#17916,#21438,.T.); -#13403=EDGE_CURVE('',#17916,#17917,#21439,.T.); -#13404=EDGE_CURVE('',#17917,#17918,#21440,.T.); -#13405=EDGE_CURVE('',#17918,#17919,#21441,.T.); -#13406=EDGE_CURVE('',#17920,#17919,#21442,.T.); -#13407=EDGE_CURVE('',#17920,#17921,#21443,.T.); -#13408=EDGE_CURVE('',#17921,#17922,#21444,.T.); -#13409=EDGE_CURVE('',#17922,#17923,#21445,.T.); -#13410=EDGE_CURVE('',#17923,#17924,#21446,.T.); -#13411=EDGE_CURVE('',#17924,#17925,#21447,.T.); -#13412=EDGE_CURVE('',#17925,#17926,#21448,.T.); -#13413=EDGE_CURVE('',#17926,#17927,#21449,.T.); -#13414=EDGE_CURVE('',#17928,#17927,#21450,.T.); -#13415=EDGE_CURVE('',#17928,#17929,#21451,.T.); -#13416=EDGE_CURVE('',#17929,#17930,#21452,.T.); -#13417=EDGE_CURVE('',#17930,#17931,#21453,.T.); -#13418=EDGE_CURVE('',#17931,#17932,#21454,.T.); -#13419=EDGE_CURVE('',#17932,#17933,#21455,.T.); -#13420=EDGE_CURVE('',#17933,#17934,#21456,.T.); -#13421=EDGE_CURVE('',#17934,#17935,#21457,.T.); -#13422=EDGE_CURVE('',#17936,#17935,#21458,.T.); -#13423=EDGE_CURVE('',#17936,#17937,#21459,.T.); -#13424=EDGE_CURVE('',#17937,#17938,#21460,.T.); -#13425=EDGE_CURVE('',#17938,#17939,#21461,.T.); -#13426=EDGE_CURVE('',#17939,#17940,#21462,.T.); -#13427=EDGE_CURVE('',#17940,#17941,#21463,.T.); -#13428=EDGE_CURVE('',#17941,#17942,#21464,.T.); -#13429=EDGE_CURVE('',#17942,#17943,#21465,.T.); -#13430=EDGE_CURVE('',#17944,#17943,#21466,.T.); -#13431=EDGE_CURVE('',#17944,#17945,#21467,.T.); -#13432=EDGE_CURVE('',#17945,#17946,#21468,.T.); -#13433=EDGE_CURVE('',#17946,#17947,#21469,.T.); -#13434=EDGE_CURVE('',#17947,#17948,#21470,.T.); -#13435=EDGE_CURVE('',#17948,#17949,#21471,.T.); -#13436=EDGE_CURVE('',#17949,#17950,#21472,.T.); -#13437=EDGE_CURVE('',#17950,#17951,#21473,.T.); -#13438=EDGE_CURVE('',#17952,#17951,#21474,.T.); -#13439=EDGE_CURVE('',#17952,#17953,#21475,.T.); -#13440=EDGE_CURVE('',#17953,#17954,#21476,.T.); -#13441=EDGE_CURVE('',#17954,#17955,#21477,.T.); -#13442=EDGE_CURVE('',#17955,#17956,#21478,.T.); -#13443=EDGE_CURVE('',#17956,#17957,#21479,.T.); -#13444=EDGE_CURVE('',#17957,#17958,#21480,.T.); -#13445=EDGE_CURVE('',#17958,#17959,#21481,.T.); -#13446=EDGE_CURVE('',#17960,#17959,#21482,.T.); -#13447=EDGE_CURVE('',#17960,#17961,#21483,.T.); -#13448=EDGE_CURVE('',#17961,#17962,#21484,.T.); -#13449=EDGE_CURVE('',#17962,#17963,#21485,.T.); -#13450=EDGE_CURVE('',#17963,#17964,#21486,.T.); -#13451=EDGE_CURVE('',#17964,#17965,#21487,.T.); -#13452=EDGE_CURVE('',#17965,#17966,#21488,.T.); -#13453=EDGE_CURVE('',#17966,#17967,#21489,.T.); -#13454=EDGE_CURVE('',#17968,#17967,#21490,.T.); -#13455=EDGE_CURVE('',#17968,#17969,#21491,.T.); -#13456=EDGE_CURVE('',#17969,#17970,#21492,.T.); -#13457=EDGE_CURVE('',#17970,#17971,#21493,.T.); -#13458=EDGE_CURVE('',#17971,#17972,#21494,.T.); -#13459=EDGE_CURVE('',#17972,#17973,#21495,.T.); -#13460=EDGE_CURVE('',#17973,#17974,#21496,.T.); -#13461=EDGE_CURVE('',#17974,#17975,#21497,.T.); -#13462=EDGE_CURVE('',#17976,#17975,#21498,.T.); -#13463=EDGE_CURVE('',#17976,#17977,#21499,.T.); -#13464=EDGE_CURVE('',#17977,#17978,#21500,.T.); -#13465=EDGE_CURVE('',#17978,#17979,#21501,.T.); -#13466=EDGE_CURVE('',#17979,#17980,#21502,.T.); -#13467=EDGE_CURVE('',#17980,#17981,#21503,.T.); -#13468=EDGE_CURVE('',#17981,#17982,#21504,.T.); -#13469=EDGE_CURVE('',#17982,#17983,#21505,.T.); -#13470=EDGE_CURVE('',#17984,#17983,#21506,.T.); -#13471=EDGE_CURVE('',#17984,#17985,#21507,.T.); -#13472=EDGE_CURVE('',#17985,#17986,#21508,.T.); -#13473=EDGE_CURVE('',#17986,#17987,#21509,.T.); -#13474=EDGE_CURVE('',#17987,#17988,#21510,.T.); -#13475=EDGE_CURVE('',#17988,#17989,#21511,.T.); -#13476=EDGE_CURVE('',#17989,#17990,#21512,.T.); -#13477=EDGE_CURVE('',#17990,#17991,#21513,.T.); -#13478=EDGE_CURVE('',#17992,#17991,#21514,.T.); -#13479=EDGE_CURVE('',#17992,#17993,#21515,.T.); -#13480=EDGE_CURVE('',#17993,#17994,#21516,.T.); -#13481=EDGE_CURVE('',#17995,#17994,#21517,.T.); -#13482=EDGE_CURVE('',#17995,#17996,#21518,.T.); -#13483=EDGE_CURVE('',#17834,#17996,#21519,.T.); -#13484=EDGE_CURVE('',#17342,#17833,#21520,.T.); -#13485=EDGE_CURVE('',#17504,#17835,#21521,.T.); -#13486=EDGE_CURVE('',#17505,#17670,#21522,.T.); -#13487=EDGE_CURVE('',#17507,#17832,#21523,.T.); -#13488=EDGE_CURVE('',#17669,#17506,#21524,.T.); -#13489=EDGE_CURVE('',#17671,#17668,#21525,.T.); -#13490=EDGE_CURVE('',#17834,#17341,#21526,.T.); -#13491=EDGE_CURVE('',#17996,#17343,#21527,.T.); -#13492=EDGE_CURVE('',#17344,#17667,#21528,.T.); -#13493=EDGE_CURVE('',#17345,#17666,#21529,.T.); -#13494=EDGE_CURVE('',#17672,#17995,#21530,.T.); -#13495=EDGE_CURVE('',#17673,#17994,#21531,.T.); -#13496=EDGE_CURVE('',#17503,#17508,#21532,.T.); -#13497=EDGE_CURVE('',#17502,#17509,#21533,.T.); -#13498=EDGE_CURVE('',#17831,#17836,#21534,.T.); -#13499=EDGE_CURVE('',#17830,#17837,#21535,.T.); -#13500=EDGE_CURVE('',#17843,#17824,#21536,.T.); -#13501=EDGE_CURVE('',#17842,#17825,#21537,.T.); -#13502=EDGE_CURVE('',#17823,#17844,#21538,.T.); -#13503=EDGE_CURVE('',#17845,#17822,#21539,.T.); -#13504=EDGE_CURVE('',#17851,#17816,#21540,.T.); -#13505=EDGE_CURVE('',#17850,#17817,#21541,.T.); -#13506=EDGE_CURVE('',#17815,#17852,#21542,.T.); -#13507=EDGE_CURVE('',#17853,#17814,#21543,.T.); -#13508=EDGE_CURVE('',#17859,#17808,#21544,.T.); -#13509=EDGE_CURVE('',#17858,#17809,#21545,.T.); -#13510=EDGE_CURVE('',#17807,#17860,#21546,.T.); -#13511=EDGE_CURVE('',#17861,#17806,#21547,.T.); -#13512=EDGE_CURVE('',#17867,#17800,#21548,.T.); -#13513=EDGE_CURVE('',#17866,#17801,#21549,.T.); -#13514=EDGE_CURVE('',#17799,#17868,#21550,.T.); -#13515=EDGE_CURVE('',#17869,#17798,#21551,.T.); -#13516=EDGE_CURVE('',#17875,#17792,#21552,.T.); -#13517=EDGE_CURVE('',#17874,#17793,#21553,.T.); -#13518=EDGE_CURVE('',#17791,#17876,#21554,.T.); -#13519=EDGE_CURVE('',#17877,#17790,#21555,.T.); -#13520=EDGE_CURVE('',#17883,#17784,#21556,.T.); -#13521=EDGE_CURVE('',#17882,#17785,#21557,.T.); -#13522=EDGE_CURVE('',#17783,#17884,#21558,.T.); -#13523=EDGE_CURVE('',#17885,#17782,#21559,.T.); -#13524=EDGE_CURVE('',#17891,#17776,#21560,.T.); -#13525=EDGE_CURVE('',#17890,#17777,#21561,.T.); -#13526=EDGE_CURVE('',#17775,#17892,#21562,.T.); -#13527=EDGE_CURVE('',#17893,#17774,#21563,.T.); -#13528=EDGE_CURVE('',#17899,#17768,#21564,.T.); -#13529=EDGE_CURVE('',#17898,#17769,#21565,.T.); -#13530=EDGE_CURVE('',#17767,#17900,#21566,.T.); -#13531=EDGE_CURVE('',#17901,#17766,#21567,.T.); -#13532=EDGE_CURVE('',#17907,#17760,#21568,.T.); -#13533=EDGE_CURVE('',#17906,#17761,#21569,.T.); -#13534=EDGE_CURVE('',#17759,#17908,#21570,.T.); -#13535=EDGE_CURVE('',#17909,#17758,#21571,.T.); -#13536=EDGE_CURVE('',#17915,#17752,#21572,.T.); -#13537=EDGE_CURVE('',#17914,#17753,#21573,.T.); -#13538=EDGE_CURVE('',#17751,#17916,#21574,.T.); -#13539=EDGE_CURVE('',#17917,#17750,#21575,.T.); -#13540=EDGE_CURVE('',#17923,#17744,#21576,.T.); -#13541=EDGE_CURVE('',#17922,#17745,#21577,.T.); -#13542=EDGE_CURVE('',#17743,#17924,#21578,.T.); -#13543=EDGE_CURVE('',#17925,#17742,#21579,.T.); -#13544=EDGE_CURVE('',#17931,#17736,#21580,.T.); -#13545=EDGE_CURVE('',#17930,#17737,#21581,.T.); -#13546=EDGE_CURVE('',#17735,#17932,#21582,.T.); -#13547=EDGE_CURVE('',#17933,#17734,#21583,.T.); -#13548=EDGE_CURVE('',#17939,#17728,#21584,.T.); -#13549=EDGE_CURVE('',#17938,#17729,#21585,.T.); -#13550=EDGE_CURVE('',#17727,#17940,#21586,.T.); -#13551=EDGE_CURVE('',#17941,#17726,#21587,.T.); -#13552=EDGE_CURVE('',#17947,#17720,#21588,.T.); -#13553=EDGE_CURVE('',#17946,#17721,#21589,.T.); -#13554=EDGE_CURVE('',#17719,#17948,#21590,.T.); -#13555=EDGE_CURVE('',#17949,#17718,#21591,.T.); -#13556=EDGE_CURVE('',#17955,#17712,#21592,.T.); -#13557=EDGE_CURVE('',#17954,#17713,#21593,.T.); -#13558=EDGE_CURVE('',#17711,#17956,#21594,.T.); -#13559=EDGE_CURVE('',#17957,#17710,#21595,.T.); -#13560=EDGE_CURVE('',#17963,#17704,#21596,.T.); -#13561=EDGE_CURVE('',#17962,#17705,#21597,.T.); -#13562=EDGE_CURVE('',#17703,#17964,#21598,.T.); -#13563=EDGE_CURVE('',#17965,#17702,#21599,.T.); -#13564=EDGE_CURVE('',#17971,#17696,#21600,.T.); -#13565=EDGE_CURVE('',#17970,#17697,#21601,.T.); -#13566=EDGE_CURVE('',#17695,#17972,#21602,.T.); -#13567=EDGE_CURVE('',#17973,#17694,#21603,.T.); -#13568=EDGE_CURVE('',#17979,#17688,#21604,.T.); -#13569=EDGE_CURVE('',#17978,#17689,#21605,.T.); -#13570=EDGE_CURVE('',#17687,#17980,#21606,.T.); -#13571=EDGE_CURVE('',#17981,#17686,#21607,.T.); -#13572=EDGE_CURVE('',#17987,#17680,#21608,.T.); -#13573=EDGE_CURVE('',#17986,#17681,#21609,.T.); -#13574=EDGE_CURVE('',#17679,#17988,#21610,.T.); -#13575=EDGE_CURVE('',#17989,#17678,#21611,.T.); -#13576=EDGE_CURVE('',#17515,#17496,#21612,.T.); -#13577=EDGE_CURVE('',#17514,#17497,#21613,.T.); -#13578=EDGE_CURVE('',#17495,#17516,#21614,.T.); -#13579=EDGE_CURVE('',#17517,#17494,#21615,.T.); -#13580=EDGE_CURVE('',#17523,#17488,#21616,.T.); -#13581=EDGE_CURVE('',#17522,#17489,#21617,.T.); -#13582=EDGE_CURVE('',#17487,#17524,#21618,.T.); -#13583=EDGE_CURVE('',#17525,#17486,#21619,.T.); -#13584=EDGE_CURVE('',#17531,#17480,#21620,.T.); -#13585=EDGE_CURVE('',#17530,#17481,#21621,.T.); -#13586=EDGE_CURVE('',#17479,#17532,#21622,.T.); -#13587=EDGE_CURVE('',#17533,#17478,#21623,.T.); -#13588=EDGE_CURVE('',#17539,#17472,#21624,.T.); -#13589=EDGE_CURVE('',#17538,#17473,#21625,.T.); -#13590=EDGE_CURVE('',#17471,#17540,#21626,.T.); -#13591=EDGE_CURVE('',#17541,#17470,#21627,.T.); -#13592=EDGE_CURVE('',#17547,#17464,#21628,.T.); -#13593=EDGE_CURVE('',#17546,#17465,#21629,.T.); -#13594=EDGE_CURVE('',#17463,#17548,#21630,.T.); -#13595=EDGE_CURVE('',#17549,#17462,#21631,.T.); -#13596=EDGE_CURVE('',#17555,#17456,#21632,.T.); -#13597=EDGE_CURVE('',#17554,#17457,#21633,.T.); -#13598=EDGE_CURVE('',#17455,#17556,#21634,.T.); -#13599=EDGE_CURVE('',#17557,#17454,#21635,.T.); -#13600=EDGE_CURVE('',#17563,#17448,#21636,.T.); -#13601=EDGE_CURVE('',#17562,#17449,#21637,.T.); -#13602=EDGE_CURVE('',#17447,#17564,#21638,.T.); -#13603=EDGE_CURVE('',#17565,#17446,#21639,.T.); -#13604=EDGE_CURVE('',#17571,#17440,#21640,.T.); -#13605=EDGE_CURVE('',#17570,#17441,#21641,.T.); -#13606=EDGE_CURVE('',#17439,#17572,#21642,.T.); -#13607=EDGE_CURVE('',#17573,#17438,#21643,.T.); -#13608=EDGE_CURVE('',#17579,#17432,#21644,.T.); -#13609=EDGE_CURVE('',#17578,#17433,#21645,.T.); -#13610=EDGE_CURVE('',#17431,#17580,#21646,.T.); -#13611=EDGE_CURVE('',#17581,#17430,#21647,.T.); -#13612=EDGE_CURVE('',#17587,#17424,#21648,.T.); -#13613=EDGE_CURVE('',#17586,#17425,#21649,.T.); -#13614=EDGE_CURVE('',#17423,#17588,#21650,.T.); -#13615=EDGE_CURVE('',#17589,#17422,#21651,.T.); -#13616=EDGE_CURVE('',#17595,#17416,#21652,.T.); -#13617=EDGE_CURVE('',#17594,#17417,#21653,.T.); -#13618=EDGE_CURVE('',#17415,#17596,#21654,.T.); -#13619=EDGE_CURVE('',#17597,#17414,#21655,.T.); -#13620=EDGE_CURVE('',#17603,#17408,#21656,.T.); -#13621=EDGE_CURVE('',#17602,#17409,#21657,.T.); -#13622=EDGE_CURVE('',#17407,#17604,#21658,.T.); -#13623=EDGE_CURVE('',#17605,#17406,#21659,.T.); -#13624=EDGE_CURVE('',#17611,#17400,#21660,.T.); -#13625=EDGE_CURVE('',#17610,#17401,#21661,.T.); -#13626=EDGE_CURVE('',#17399,#17612,#21662,.T.); -#13627=EDGE_CURVE('',#17613,#17398,#21663,.T.); -#13628=EDGE_CURVE('',#17619,#17392,#21664,.T.); -#13629=EDGE_CURVE('',#17618,#17393,#21665,.T.); -#13630=EDGE_CURVE('',#17391,#17620,#21666,.T.); -#13631=EDGE_CURVE('',#17621,#17390,#21667,.T.); -#13632=EDGE_CURVE('',#17627,#17384,#21668,.T.); -#13633=EDGE_CURVE('',#17626,#17385,#21669,.T.); -#13634=EDGE_CURVE('',#17383,#17628,#21670,.T.); -#13635=EDGE_CURVE('',#17629,#17382,#21671,.T.); -#13636=EDGE_CURVE('',#17635,#17376,#21672,.T.); -#13637=EDGE_CURVE('',#17634,#17377,#21673,.T.); -#13638=EDGE_CURVE('',#17375,#17636,#21674,.T.); -#13639=EDGE_CURVE('',#17637,#17374,#21675,.T.); -#13640=EDGE_CURVE('',#17643,#17368,#21676,.T.); -#13641=EDGE_CURVE('',#17642,#17369,#21677,.T.); -#13642=EDGE_CURVE('',#17367,#17644,#21678,.T.); -#13643=EDGE_CURVE('',#17645,#17366,#21679,.T.); -#13644=EDGE_CURVE('',#17651,#17360,#21680,.T.); -#13645=EDGE_CURVE('',#17650,#17361,#21681,.T.); -#13646=EDGE_CURVE('',#17359,#17652,#21682,.T.); -#13647=EDGE_CURVE('',#17653,#17358,#21683,.T.); -#13648=EDGE_CURVE('',#17351,#17660,#21684,.T.); -#13649=EDGE_CURVE('',#17661,#17350,#21685,.T.); -#13650=EDGE_CURVE('',#17659,#17352,#21686,.T.); -#13651=EDGE_CURVE('',#17658,#17353,#21687,.T.); -#13652=EDGE_CURVE('',#17997,#17998,#21688,.T.); -#13653=EDGE_CURVE('',#17997,#17999,#21689,.T.); -#13654=EDGE_CURVE('',#17999,#18000,#21690,.T.); -#13655=EDGE_CURVE('',#18000,#17998,#21691,.T.); -#13656=EDGE_CURVE('',#18001,#18002,#21692,.T.); -#13657=EDGE_CURVE('',#18001,#18003,#21693,.T.); -#13658=EDGE_CURVE('',#18003,#18004,#21694,.T.); -#13659=EDGE_CURVE('',#18004,#18002,#21695,.T.); -#13660=EDGE_CURVE('',#18005,#18006,#21696,.T.); -#13661=EDGE_CURVE('',#18005,#18007,#21697,.T.); -#13662=EDGE_CURVE('',#18007,#18008,#21698,.T.); -#13663=EDGE_CURVE('',#18008,#18006,#21699,.T.); -#13664=EDGE_CURVE('',#18009,#18010,#21700,.T.); -#13665=EDGE_CURVE('',#18009,#18011,#21701,.T.); -#13666=EDGE_CURVE('',#18011,#18012,#21702,.T.); -#13667=EDGE_CURVE('',#18012,#18010,#21703,.T.); -#13668=EDGE_CURVE('',#18013,#18014,#21704,.T.); -#13669=EDGE_CURVE('',#18013,#18015,#21705,.T.); -#13670=EDGE_CURVE('',#18015,#18016,#21706,.T.); -#13671=EDGE_CURVE('',#18016,#18014,#21707,.T.); -#13672=EDGE_CURVE('',#18017,#18018,#21708,.T.); -#13673=EDGE_CURVE('',#18017,#18019,#21709,.T.); -#13674=EDGE_CURVE('',#18019,#18020,#21710,.T.); -#13675=EDGE_CURVE('',#18020,#18018,#21711,.T.); -#13676=EDGE_CURVE('',#18021,#18022,#21712,.T.); -#13677=EDGE_CURVE('',#18021,#18023,#21713,.T.); -#13678=EDGE_CURVE('',#18023,#18024,#21714,.T.); -#13679=EDGE_CURVE('',#18024,#18022,#21715,.T.); -#13680=EDGE_CURVE('',#18025,#18026,#21716,.T.); -#13681=EDGE_CURVE('',#18025,#18027,#21717,.T.); -#13682=EDGE_CURVE('',#18027,#18028,#21718,.T.); -#13683=EDGE_CURVE('',#18028,#18026,#21719,.T.); -#13684=EDGE_CURVE('',#18029,#18030,#21720,.T.); -#13685=EDGE_CURVE('',#18029,#18031,#21721,.T.); -#13686=EDGE_CURVE('',#18031,#18032,#21722,.T.); -#13687=EDGE_CURVE('',#18032,#18030,#21723,.T.); -#13688=EDGE_CURVE('',#18033,#18034,#21724,.T.); -#13689=EDGE_CURVE('',#18033,#18035,#21725,.T.); -#13690=EDGE_CURVE('',#18035,#18036,#21726,.T.); -#13691=EDGE_CURVE('',#18036,#18034,#21727,.T.); -#13692=EDGE_CURVE('',#18037,#18038,#21728,.T.); -#13693=EDGE_CURVE('',#18037,#18039,#21729,.T.); -#13694=EDGE_CURVE('',#18039,#18040,#21730,.T.); -#13695=EDGE_CURVE('',#18040,#18038,#21731,.T.); -#13696=EDGE_CURVE('',#18041,#18042,#21732,.T.); -#13697=EDGE_CURVE('',#18041,#18043,#21733,.T.); -#13698=EDGE_CURVE('',#18043,#18044,#21734,.T.); -#13699=EDGE_CURVE('',#18044,#18042,#21735,.T.); -#13700=EDGE_CURVE('',#18045,#18046,#21736,.T.); -#13701=EDGE_CURVE('',#18045,#18047,#21737,.T.); -#13702=EDGE_CURVE('',#18047,#18048,#21738,.T.); -#13703=EDGE_CURVE('',#18048,#18046,#21739,.T.); -#13704=EDGE_CURVE('',#18049,#18050,#21740,.T.); -#13705=EDGE_CURVE('',#18049,#18051,#21741,.T.); -#13706=EDGE_CURVE('',#18051,#18052,#21742,.T.); -#13707=EDGE_CURVE('',#18052,#18050,#21743,.T.); -#13708=EDGE_CURVE('',#18053,#18054,#21744,.T.); -#13709=EDGE_CURVE('',#18053,#18055,#21745,.T.); -#13710=EDGE_CURVE('',#18055,#18056,#21746,.T.); -#13711=EDGE_CURVE('',#18056,#18054,#21747,.T.); -#13712=EDGE_CURVE('',#18057,#18058,#21748,.T.); -#13713=EDGE_CURVE('',#18057,#18059,#21749,.T.); -#13714=EDGE_CURVE('',#18059,#18060,#21750,.T.); -#13715=EDGE_CURVE('',#18060,#18058,#21751,.T.); -#13716=EDGE_CURVE('',#18061,#18062,#21752,.T.); -#13717=EDGE_CURVE('',#18061,#18063,#21753,.T.); -#13718=EDGE_CURVE('',#18063,#18064,#21754,.T.); -#13719=EDGE_CURVE('',#18064,#18062,#21755,.T.); -#13720=EDGE_CURVE('',#18065,#18066,#21756,.T.); -#13721=EDGE_CURVE('',#18065,#18067,#21757,.T.); -#13722=EDGE_CURVE('',#18067,#18068,#21758,.T.); -#13723=EDGE_CURVE('',#18068,#18066,#21759,.T.); -#13724=EDGE_CURVE('',#18069,#18070,#21760,.T.); -#13725=EDGE_CURVE('',#18069,#18071,#21761,.T.); -#13726=EDGE_CURVE('',#18071,#18072,#21762,.T.); -#13727=EDGE_CURVE('',#18072,#18070,#21763,.T.); -#13728=EDGE_CURVE('',#17998,#17676,#1044,.T.); -#13729=EDGE_CURVE('',#17675,#17997,#1045,.T.); -#13730=EDGE_CURVE('',#18002,#17684,#1046,.T.); -#13731=EDGE_CURVE('',#17683,#18001,#1047,.T.); -#13732=EDGE_CURVE('',#18006,#17692,#1048,.T.); -#13733=EDGE_CURVE('',#17691,#18005,#1049,.T.); -#13734=EDGE_CURVE('',#18010,#17700,#1050,.T.); -#13735=EDGE_CURVE('',#17699,#18009,#1051,.T.); -#13736=EDGE_CURVE('',#18014,#17708,#1052,.T.); -#13737=EDGE_CURVE('',#17707,#18013,#1053,.T.); -#13738=EDGE_CURVE('',#18018,#17716,#1054,.T.); -#13739=EDGE_CURVE('',#17715,#18017,#1055,.T.); -#13740=EDGE_CURVE('',#18022,#17724,#1056,.T.); -#13741=EDGE_CURVE('',#17723,#18021,#1057,.T.); -#13742=EDGE_CURVE('',#18026,#17732,#1058,.T.); -#13743=EDGE_CURVE('',#17731,#18025,#1059,.T.); -#13744=EDGE_CURVE('',#18030,#17740,#1060,.T.); -#13745=EDGE_CURVE('',#17739,#18029,#1061,.T.); -#13746=EDGE_CURVE('',#18034,#17748,#1062,.T.); -#13747=EDGE_CURVE('',#17747,#18033,#1063,.T.); -#13748=EDGE_CURVE('',#18038,#17756,#1064,.T.); -#13749=EDGE_CURVE('',#17755,#18037,#1065,.T.); -#13750=EDGE_CURVE('',#18042,#17764,#1066,.T.); -#13751=EDGE_CURVE('',#17763,#18041,#1067,.T.); -#13752=EDGE_CURVE('',#18046,#17772,#1068,.T.); -#13753=EDGE_CURVE('',#17771,#18045,#1069,.T.); -#13754=EDGE_CURVE('',#18050,#17780,#1070,.T.); -#13755=EDGE_CURVE('',#17779,#18049,#1071,.T.); -#13756=EDGE_CURVE('',#18054,#17788,#1072,.T.); -#13757=EDGE_CURVE('',#17787,#18053,#1073,.T.); -#13758=EDGE_CURVE('',#18058,#17796,#1074,.T.); -#13759=EDGE_CURVE('',#17795,#18057,#1075,.T.); -#13760=EDGE_CURVE('',#18062,#17804,#1076,.T.); -#13761=EDGE_CURVE('',#17803,#18061,#1077,.T.); -#13762=EDGE_CURVE('',#18066,#17812,#1078,.T.); -#13763=EDGE_CURVE('',#17811,#18065,#1079,.T.); -#13764=EDGE_CURVE('',#18070,#17820,#1080,.T.); -#13765=EDGE_CURVE('',#17819,#18069,#1081,.T.); -#13766=EDGE_CURVE('',#17663,#18073,#1082,.T.); -#13767=EDGE_CURVE('',#18074,#18073,#21764,.T.); -#13768=EDGE_CURVE('',#18074,#17664,#1083,.T.); -#13769=EDGE_CURVE('',#17655,#18075,#1084,.T.); -#13770=EDGE_CURVE('',#18076,#18075,#21765,.T.); -#13771=EDGE_CURVE('',#18076,#17656,#1085,.T.); -#13772=EDGE_CURVE('',#17647,#18077,#1086,.T.); -#13773=EDGE_CURVE('',#18078,#18077,#21766,.T.); -#13774=EDGE_CURVE('',#18078,#17648,#1087,.T.); -#13775=EDGE_CURVE('',#17639,#18079,#1088,.T.); -#13776=EDGE_CURVE('',#18080,#18079,#21767,.T.); -#13777=EDGE_CURVE('',#18080,#17640,#1089,.T.); -#13778=EDGE_CURVE('',#17631,#18081,#1090,.T.); -#13779=EDGE_CURVE('',#18082,#18081,#21768,.T.); -#13780=EDGE_CURVE('',#18082,#17632,#1091,.T.); -#13781=EDGE_CURVE('',#17623,#18083,#1092,.T.); -#13782=EDGE_CURVE('',#18084,#18083,#21769,.T.); -#13783=EDGE_CURVE('',#18084,#17624,#1093,.T.); -#13784=EDGE_CURVE('',#17615,#18085,#1094,.T.); -#13785=EDGE_CURVE('',#18086,#18085,#21770,.T.); -#13786=EDGE_CURVE('',#18086,#17616,#1095,.T.); -#13787=EDGE_CURVE('',#17607,#18087,#1096,.T.); -#13788=EDGE_CURVE('',#18088,#18087,#21771,.T.); -#13789=EDGE_CURVE('',#18088,#17608,#1097,.T.); -#13790=EDGE_CURVE('',#17599,#18089,#1098,.T.); -#13791=EDGE_CURVE('',#18090,#18089,#21772,.T.); -#13792=EDGE_CURVE('',#18090,#17600,#1099,.T.); -#13793=EDGE_CURVE('',#17591,#18091,#1100,.T.); -#13794=EDGE_CURVE('',#18092,#18091,#21773,.T.); -#13795=EDGE_CURVE('',#18092,#17592,#1101,.T.); -#13796=EDGE_CURVE('',#17583,#18093,#1102,.T.); -#13797=EDGE_CURVE('',#18094,#18093,#21774,.T.); -#13798=EDGE_CURVE('',#18094,#17584,#1103,.T.); -#13799=EDGE_CURVE('',#17575,#18095,#1104,.T.); -#13800=EDGE_CURVE('',#18096,#18095,#21775,.T.); -#13801=EDGE_CURVE('',#18096,#17576,#1105,.T.); -#13802=EDGE_CURVE('',#17567,#18097,#1106,.T.); -#13803=EDGE_CURVE('',#18098,#18097,#21776,.T.); -#13804=EDGE_CURVE('',#18098,#17568,#1107,.T.); -#13805=EDGE_CURVE('',#17559,#18099,#1108,.T.); -#13806=EDGE_CURVE('',#18100,#18099,#21777,.T.); -#13807=EDGE_CURVE('',#18100,#17560,#1109,.T.); -#13808=EDGE_CURVE('',#17551,#18101,#1110,.T.); -#13809=EDGE_CURVE('',#18102,#18101,#21778,.T.); -#13810=EDGE_CURVE('',#18102,#17552,#1111,.T.); -#13811=EDGE_CURVE('',#17543,#18103,#1112,.T.); -#13812=EDGE_CURVE('',#18104,#18103,#21779,.T.); -#13813=EDGE_CURVE('',#18104,#17544,#1113,.T.); -#13814=EDGE_CURVE('',#17535,#18105,#1114,.T.); -#13815=EDGE_CURVE('',#18106,#18105,#21780,.T.); -#13816=EDGE_CURVE('',#18106,#17536,#1115,.T.); -#13817=EDGE_CURVE('',#17527,#18107,#1116,.T.); -#13818=EDGE_CURVE('',#18108,#18107,#21781,.T.); -#13819=EDGE_CURVE('',#18108,#17528,#1117,.T.); -#13820=EDGE_CURVE('',#17519,#18109,#1118,.T.); -#13821=EDGE_CURVE('',#18110,#18109,#21782,.T.); -#13822=EDGE_CURVE('',#18110,#17520,#1119,.T.); -#13823=EDGE_CURVE('',#18111,#18112,#21783,.T.); -#13824=EDGE_CURVE('',#18111,#18074,#21784,.T.); -#13825=EDGE_CURVE('',#18073,#18112,#21785,.T.); -#13826=EDGE_CURVE('',#18113,#18114,#21786,.T.); -#13827=EDGE_CURVE('',#18113,#18076,#21787,.T.); -#13828=EDGE_CURVE('',#18075,#18114,#21788,.T.); -#13829=EDGE_CURVE('',#18115,#18116,#21789,.T.); -#13830=EDGE_CURVE('',#18115,#18078,#21790,.T.); -#13831=EDGE_CURVE('',#18077,#18116,#21791,.T.); -#13832=EDGE_CURVE('',#18117,#18118,#21792,.T.); -#13833=EDGE_CURVE('',#18117,#18080,#21793,.T.); -#13834=EDGE_CURVE('',#18079,#18118,#21794,.T.); -#13835=EDGE_CURVE('',#18119,#18120,#21795,.T.); -#13836=EDGE_CURVE('',#18119,#18082,#21796,.T.); -#13837=EDGE_CURVE('',#18081,#18120,#21797,.T.); -#13838=EDGE_CURVE('',#18121,#18122,#21798,.T.); -#13839=EDGE_CURVE('',#18121,#18084,#21799,.T.); -#13840=EDGE_CURVE('',#18083,#18122,#21800,.T.); -#13841=EDGE_CURVE('',#18123,#18124,#21801,.T.); -#13842=EDGE_CURVE('',#18123,#18086,#21802,.T.); -#13843=EDGE_CURVE('',#18085,#18124,#21803,.T.); -#13844=EDGE_CURVE('',#18125,#18126,#21804,.T.); -#13845=EDGE_CURVE('',#18125,#18088,#21805,.T.); -#13846=EDGE_CURVE('',#18087,#18126,#21806,.T.); -#13847=EDGE_CURVE('',#18127,#18128,#21807,.T.); -#13848=EDGE_CURVE('',#18127,#18090,#21808,.T.); -#13849=EDGE_CURVE('',#18089,#18128,#21809,.T.); -#13850=EDGE_CURVE('',#18129,#18130,#21810,.T.); -#13851=EDGE_CURVE('',#18129,#18092,#21811,.T.); -#13852=EDGE_CURVE('',#18091,#18130,#21812,.T.); -#13853=EDGE_CURVE('',#18131,#18132,#21813,.T.); -#13854=EDGE_CURVE('',#18131,#18094,#21814,.T.); -#13855=EDGE_CURVE('',#18093,#18132,#21815,.T.); -#13856=EDGE_CURVE('',#18133,#18134,#21816,.T.); -#13857=EDGE_CURVE('',#18133,#18096,#21817,.T.); -#13858=EDGE_CURVE('',#18095,#18134,#21818,.T.); -#13859=EDGE_CURVE('',#18135,#18136,#21819,.T.); -#13860=EDGE_CURVE('',#18135,#18098,#21820,.T.); -#13861=EDGE_CURVE('',#18097,#18136,#21821,.T.); -#13862=EDGE_CURVE('',#18137,#18138,#21822,.T.); -#13863=EDGE_CURVE('',#18137,#18100,#21823,.T.); -#13864=EDGE_CURVE('',#18099,#18138,#21824,.T.); -#13865=EDGE_CURVE('',#18139,#18140,#21825,.T.); -#13866=EDGE_CURVE('',#18139,#18102,#21826,.T.); -#13867=EDGE_CURVE('',#18101,#18140,#21827,.T.); -#13868=EDGE_CURVE('',#18141,#18142,#21828,.T.); -#13869=EDGE_CURVE('',#18141,#18104,#21829,.T.); -#13870=EDGE_CURVE('',#18103,#18142,#21830,.T.); -#13871=EDGE_CURVE('',#18143,#18144,#21831,.T.); -#13872=EDGE_CURVE('',#18143,#18106,#21832,.T.); -#13873=EDGE_CURVE('',#18105,#18144,#21833,.T.); -#13874=EDGE_CURVE('',#18145,#18146,#21834,.T.); -#13875=EDGE_CURVE('',#18145,#18108,#21835,.T.); -#13876=EDGE_CURVE('',#18107,#18146,#21836,.T.); -#13877=EDGE_CURVE('',#18147,#18148,#21837,.T.); -#13878=EDGE_CURVE('',#18147,#18110,#21838,.T.); -#13879=EDGE_CURVE('',#18109,#18148,#21839,.T.); -#13880=EDGE_CURVE('',#18111,#17347,#1120,.T.); -#13881=EDGE_CURVE('',#17348,#18112,#1121,.T.); -#13882=EDGE_CURVE('',#18113,#17355,#1122,.T.); -#13883=EDGE_CURVE('',#17356,#18114,#1123,.T.); -#13884=EDGE_CURVE('',#18115,#17363,#1124,.T.); -#13885=EDGE_CURVE('',#17364,#18116,#1125,.T.); -#13886=EDGE_CURVE('',#18117,#17371,#1126,.T.); -#13887=EDGE_CURVE('',#17372,#18118,#1127,.T.); -#13888=EDGE_CURVE('',#18119,#17379,#1128,.T.); -#13889=EDGE_CURVE('',#17380,#18120,#1129,.T.); -#13890=EDGE_CURVE('',#18121,#17387,#1130,.T.); -#13891=EDGE_CURVE('',#17388,#18122,#1131,.T.); -#13892=EDGE_CURVE('',#18123,#17395,#1132,.T.); -#13893=EDGE_CURVE('',#17396,#18124,#1133,.T.); -#13894=EDGE_CURVE('',#18125,#17403,#1134,.T.); -#13895=EDGE_CURVE('',#17404,#18126,#1135,.T.); -#13896=EDGE_CURVE('',#18127,#17411,#1136,.T.); -#13897=EDGE_CURVE('',#17412,#18128,#1137,.T.); -#13898=EDGE_CURVE('',#18129,#17419,#1138,.T.); -#13899=EDGE_CURVE('',#17420,#18130,#1139,.T.); -#13900=EDGE_CURVE('',#18131,#17427,#1140,.T.); -#13901=EDGE_CURVE('',#17428,#18132,#1141,.T.); -#13902=EDGE_CURVE('',#18133,#17435,#1142,.T.); -#13903=EDGE_CURVE('',#17436,#18134,#1143,.T.); -#13904=EDGE_CURVE('',#18135,#17443,#1144,.T.); -#13905=EDGE_CURVE('',#17444,#18136,#1145,.T.); -#13906=EDGE_CURVE('',#18137,#17451,#1146,.T.); -#13907=EDGE_CURVE('',#17452,#18138,#1147,.T.); -#13908=EDGE_CURVE('',#18139,#17459,#1148,.T.); -#13909=EDGE_CURVE('',#17460,#18140,#1149,.T.); -#13910=EDGE_CURVE('',#18141,#17467,#1150,.T.); -#13911=EDGE_CURVE('',#17468,#18142,#1151,.T.); -#13912=EDGE_CURVE('',#18143,#17475,#1152,.T.); -#13913=EDGE_CURVE('',#17476,#18144,#1153,.T.); -#13914=EDGE_CURVE('',#18145,#17483,#1154,.T.); -#13915=EDGE_CURVE('',#17484,#18146,#1155,.T.); -#13916=EDGE_CURVE('',#18147,#17491,#1156,.T.); -#13917=EDGE_CURVE('',#17492,#18148,#1157,.T.); -#13918=EDGE_CURVE('',#17992,#17999,#1158,.T.); -#13919=EDGE_CURVE('',#18000,#17991,#1159,.T.); -#13920=EDGE_CURVE('',#17984,#18003,#1160,.T.); -#13921=EDGE_CURVE('',#18004,#17983,#1161,.T.); -#13922=EDGE_CURVE('',#17976,#18007,#1162,.T.); -#13923=EDGE_CURVE('',#18008,#17975,#1163,.T.); -#13924=EDGE_CURVE('',#17968,#18011,#1164,.T.); -#13925=EDGE_CURVE('',#18012,#17967,#1165,.T.); -#13926=EDGE_CURVE('',#17960,#18015,#1166,.T.); -#13927=EDGE_CURVE('',#18016,#17959,#1167,.T.); -#13928=EDGE_CURVE('',#17952,#18019,#1168,.T.); -#13929=EDGE_CURVE('',#18020,#17951,#1169,.T.); -#13930=EDGE_CURVE('',#17944,#18023,#1170,.T.); -#13931=EDGE_CURVE('',#18024,#17943,#1171,.T.); -#13932=EDGE_CURVE('',#17936,#18027,#1172,.T.); -#13933=EDGE_CURVE('',#18028,#17935,#1173,.T.); -#13934=EDGE_CURVE('',#17928,#18031,#1174,.T.); -#13935=EDGE_CURVE('',#18032,#17927,#1175,.T.); -#13936=EDGE_CURVE('',#17920,#18035,#1176,.T.); -#13937=EDGE_CURVE('',#18036,#17919,#1177,.T.); -#13938=EDGE_CURVE('',#17912,#18039,#1178,.T.); -#13939=EDGE_CURVE('',#18040,#17911,#1179,.T.); -#13940=EDGE_CURVE('',#17904,#18043,#1180,.T.); -#13941=EDGE_CURVE('',#18044,#17903,#1181,.T.); -#13942=EDGE_CURVE('',#17896,#18047,#1182,.T.); -#13943=EDGE_CURVE('',#18048,#17895,#1183,.T.); -#13944=EDGE_CURVE('',#17888,#18051,#1184,.T.); -#13945=EDGE_CURVE('',#18052,#17887,#1185,.T.); -#13946=EDGE_CURVE('',#17880,#18055,#1186,.T.); -#13947=EDGE_CURVE('',#18056,#17879,#1187,.T.); -#13948=EDGE_CURVE('',#17872,#18059,#1188,.T.); -#13949=EDGE_CURVE('',#18060,#17871,#1189,.T.); -#13950=EDGE_CURVE('',#17864,#18063,#1190,.T.); -#13951=EDGE_CURVE('',#18064,#17863,#1191,.T.); -#13952=EDGE_CURVE('',#17856,#18067,#1192,.T.); -#13953=EDGE_CURVE('',#18068,#17855,#1193,.T.); -#13954=EDGE_CURVE('',#17848,#18071,#1194,.T.); -#13955=EDGE_CURVE('',#18072,#17847,#1195,.T.); -#13956=EDGE_CURVE('',#18149,#18150,#21840,.T.); -#13957=EDGE_CURVE('',#18149,#18151,#21841,.T.); -#13958=EDGE_CURVE('',#18151,#18152,#21842,.T.); -#13959=EDGE_CURVE('',#18152,#18150,#21843,.T.); -#13960=EDGE_CURVE('',#18150,#17828,#1196,.T.); -#13961=EDGE_CURVE('',#17827,#18149,#1197,.T.); -#13962=EDGE_CURVE('',#17511,#18153,#1198,.T.); -#13963=EDGE_CURVE('',#18154,#18153,#21844,.T.); -#13964=EDGE_CURVE('',#18154,#17512,#1199,.T.); -#13965=EDGE_CURVE('',#18155,#18156,#21845,.T.); -#13966=EDGE_CURVE('',#18155,#18154,#21846,.T.); -#13967=EDGE_CURVE('',#18153,#18156,#21847,.T.); -#13968=EDGE_CURVE('',#18155,#17499,#1200,.T.); -#13969=EDGE_CURVE('',#17500,#18156,#1201,.T.); -#13970=EDGE_CURVE('',#17840,#18151,#1202,.T.); -#13971=EDGE_CURVE('',#18152,#17839,#1203,.T.); -#13972=EDGE_CURVE('',#17838,#17829,#21848,.T.); -#13973=EDGE_CURVE('',#17510,#17501,#21849,.T.); -#13974=EDGE_CURVE('',#17993,#17674,#21850,.T.); -#13975=EDGE_CURVE('',#17665,#17346,#21851,.T.); -#13976=EDGE_CURVE('',#17841,#17826,#21852,.T.); -#13977=EDGE_CURVE('',#17846,#17821,#21853,.T.); -#13978=EDGE_CURVE('',#17849,#17818,#21854,.T.); -#13979=EDGE_CURVE('',#17854,#17813,#21855,.T.); -#13980=EDGE_CURVE('',#17857,#17810,#21856,.T.); -#13981=EDGE_CURVE('',#17862,#17805,#21857,.T.); -#13982=EDGE_CURVE('',#17865,#17802,#21858,.T.); -#13983=EDGE_CURVE('',#17870,#17797,#21859,.T.); -#13984=EDGE_CURVE('',#17873,#17794,#21860,.T.); -#13985=EDGE_CURVE('',#17878,#17789,#21861,.T.); -#13986=EDGE_CURVE('',#17881,#17786,#21862,.T.); -#13987=EDGE_CURVE('',#17886,#17781,#21863,.T.); -#13988=EDGE_CURVE('',#17889,#17778,#21864,.T.); -#13989=EDGE_CURVE('',#17894,#17773,#21865,.T.); -#13990=EDGE_CURVE('',#17897,#17770,#21866,.T.); -#13991=EDGE_CURVE('',#17902,#17765,#21867,.T.); -#13992=EDGE_CURVE('',#17905,#17762,#21868,.T.); -#13993=EDGE_CURVE('',#17910,#17757,#21869,.T.); -#13994=EDGE_CURVE('',#17913,#17754,#21870,.T.); -#13995=EDGE_CURVE('',#17918,#17749,#21871,.T.); -#13996=EDGE_CURVE('',#17921,#17746,#21872,.T.); -#13997=EDGE_CURVE('',#17926,#17741,#21873,.T.); -#13998=EDGE_CURVE('',#17929,#17738,#21874,.T.); -#13999=EDGE_CURVE('',#17934,#17733,#21875,.T.); -#14000=EDGE_CURVE('',#17937,#17730,#21876,.T.); -#14001=EDGE_CURVE('',#17942,#17725,#21877,.T.); -#14002=EDGE_CURVE('',#17945,#17722,#21878,.T.); -#14003=EDGE_CURVE('',#17950,#17717,#21879,.T.); -#14004=EDGE_CURVE('',#17953,#17714,#21880,.T.); -#14005=EDGE_CURVE('',#17958,#17709,#21881,.T.); -#14006=EDGE_CURVE('',#17961,#17706,#21882,.T.); -#14007=EDGE_CURVE('',#17966,#17701,#21883,.T.); -#14008=EDGE_CURVE('',#17969,#17698,#21884,.T.); -#14009=EDGE_CURVE('',#17974,#17693,#21885,.T.); -#14010=EDGE_CURVE('',#17977,#17690,#21886,.T.); -#14011=EDGE_CURVE('',#17982,#17685,#21887,.T.); -#14012=EDGE_CURVE('',#17985,#17682,#21888,.T.); -#14013=EDGE_CURVE('',#17990,#17677,#21889,.T.); -#14014=EDGE_CURVE('',#17513,#17498,#21890,.T.); -#14015=EDGE_CURVE('',#17518,#17493,#21891,.T.); -#14016=EDGE_CURVE('',#17521,#17490,#21892,.T.); -#14017=EDGE_CURVE('',#17526,#17485,#21893,.T.); -#14018=EDGE_CURVE('',#17529,#17482,#21894,.T.); -#14019=EDGE_CURVE('',#17534,#17477,#21895,.T.); -#14020=EDGE_CURVE('',#17537,#17474,#21896,.T.); -#14021=EDGE_CURVE('',#17542,#17469,#21897,.T.); -#14022=EDGE_CURVE('',#17545,#17466,#21898,.T.); -#14023=EDGE_CURVE('',#17550,#17461,#21899,.T.); -#14024=EDGE_CURVE('',#17553,#17458,#21900,.T.); -#14025=EDGE_CURVE('',#17558,#17453,#21901,.T.); -#14026=EDGE_CURVE('',#17561,#17450,#21902,.T.); -#14027=EDGE_CURVE('',#17566,#17445,#21903,.T.); -#14028=EDGE_CURVE('',#17569,#17442,#21904,.T.); -#14029=EDGE_CURVE('',#17574,#17437,#21905,.T.); -#14030=EDGE_CURVE('',#17577,#17434,#21906,.T.); -#14031=EDGE_CURVE('',#17582,#17429,#21907,.T.); -#14032=EDGE_CURVE('',#17585,#17426,#21908,.T.); -#14033=EDGE_CURVE('',#17590,#17421,#21909,.T.); -#14034=EDGE_CURVE('',#17593,#17418,#21910,.T.); -#14035=EDGE_CURVE('',#17598,#17413,#21911,.T.); -#14036=EDGE_CURVE('',#17601,#17410,#21912,.T.); -#14037=EDGE_CURVE('',#17606,#17405,#21913,.T.); -#14038=EDGE_CURVE('',#17609,#17402,#21914,.T.); -#14039=EDGE_CURVE('',#17614,#17397,#21915,.T.); -#14040=EDGE_CURVE('',#17617,#17394,#21916,.T.); -#14041=EDGE_CURVE('',#17622,#17389,#21917,.T.); -#14042=EDGE_CURVE('',#17625,#17386,#21918,.T.); -#14043=EDGE_CURVE('',#17630,#17381,#21919,.T.); -#14044=EDGE_CURVE('',#17633,#17378,#21920,.T.); -#14045=EDGE_CURVE('',#17638,#17373,#21921,.T.); -#14046=EDGE_CURVE('',#17641,#17370,#21922,.T.); -#14047=EDGE_CURVE('',#17646,#17365,#21923,.T.); -#14048=EDGE_CURVE('',#17649,#17362,#21924,.T.); -#14049=EDGE_CURVE('',#17654,#17357,#21925,.T.); -#14050=EDGE_CURVE('',#17662,#17349,#21926,.T.); -#14051=EDGE_CURVE('',#17657,#17354,#21927,.T.); -#14052=EDGE_CURVE('',#18157,#18158,#21928,.T.); -#14053=EDGE_CURVE('',#18159,#18157,#21929,.T.); -#14054=EDGE_CURVE('',#18160,#18159,#21930,.T.); -#14055=EDGE_CURVE('',#18160,#18161,#21931,.T.); -#14056=EDGE_CURVE('',#18161,#18162,#1204,.F.); -#14057=EDGE_CURVE('',#18162,#18163,#21932,.T.); -#14058=EDGE_CURVE('',#18164,#18163,#1205,.F.); -#14059=EDGE_CURVE('',#18164,#18165,#21933,.T.); -#14060=EDGE_CURVE('',#18165,#18166,#1206,.F.); -#14061=EDGE_CURVE('',#18167,#18166,#21934,.T.); -#14062=EDGE_CURVE('',#18167,#18168,#1207,.F.); -#14063=EDGE_CURVE('',#18168,#18169,#21935,.T.); -#14064=EDGE_CURVE('',#18170,#18169,#1208,.F.); -#14065=EDGE_CURVE('',#18170,#18171,#21936,.T.); -#14066=EDGE_CURVE('',#18171,#18172,#1209,.F.); -#14067=EDGE_CURVE('',#18172,#18173,#21937,.T.); -#14068=EDGE_CURVE('',#18173,#18174,#21938,.T.); -#14069=EDGE_CURVE('',#18174,#18175,#21939,.T.); -#14070=EDGE_CURVE('',#18175,#18176,#1210,.F.); -#14071=EDGE_CURVE('',#18176,#18177,#21940,.T.); -#14072=EDGE_CURVE('',#18178,#18177,#1211,.F.); -#14073=EDGE_CURVE('',#18178,#18179,#21941,.T.); -#14074=EDGE_CURVE('',#18179,#18180,#1212,.F.); -#14075=EDGE_CURVE('',#18181,#18180,#21942,.T.); -#14076=EDGE_CURVE('',#18181,#18182,#1213,.F.); -#14077=EDGE_CURVE('',#18182,#18183,#21943,.T.); -#14078=EDGE_CURVE('',#18184,#18183,#1214,.F.); -#14079=EDGE_CURVE('',#18184,#18185,#21944,.T.); -#14080=EDGE_CURVE('',#18185,#18186,#1215,.F.); -#14081=EDGE_CURVE('',#18186,#18187,#21945,.T.); -#14082=EDGE_CURVE('',#18187,#18188,#21946,.T.); -#14083=EDGE_CURVE('',#18188,#18189,#21947,.T.); -#14084=EDGE_CURVE('',#18189,#18190,#1216,.F.); -#14085=EDGE_CURVE('',#18190,#18191,#21948,.T.); -#14086=EDGE_CURVE('',#18192,#18191,#1217,.F.); -#14087=EDGE_CURVE('',#18192,#18193,#21949,.T.); -#14088=EDGE_CURVE('',#18193,#18194,#1218,.F.); -#14089=EDGE_CURVE('',#18195,#18194,#21950,.T.); -#14090=EDGE_CURVE('',#18195,#18196,#1219,.F.); -#14091=EDGE_CURVE('',#18196,#18197,#21951,.T.); -#14092=EDGE_CURVE('',#18198,#18197,#1220,.F.); -#14093=EDGE_CURVE('',#18198,#18199,#21952,.T.); -#14094=EDGE_CURVE('',#18199,#18200,#1221,.F.); -#14095=EDGE_CURVE('',#18200,#18201,#21953,.T.); -#14096=EDGE_CURVE('',#18201,#18202,#21954,.T.); -#14097=EDGE_CURVE('',#18202,#18203,#21955,.T.); -#14098=EDGE_CURVE('',#18203,#18204,#1222,.F.); -#14099=EDGE_CURVE('',#18204,#18205,#21956,.T.); -#14100=EDGE_CURVE('',#18206,#18205,#1223,.F.); -#14101=EDGE_CURVE('',#18206,#18207,#21957,.T.); -#14102=EDGE_CURVE('',#18207,#18208,#1224,.F.); -#14103=EDGE_CURVE('',#18209,#18208,#21958,.T.); -#14104=EDGE_CURVE('',#18209,#18210,#1225,.F.); -#14105=EDGE_CURVE('',#18210,#18211,#21959,.T.); -#14106=EDGE_CURVE('',#18212,#18211,#1226,.F.); -#14107=EDGE_CURVE('',#18212,#18213,#21960,.T.); -#14108=EDGE_CURVE('',#18213,#18214,#1227,.F.); -#14109=EDGE_CURVE('',#18214,#18215,#21961,.T.); -#14110=EDGE_CURVE('',#18215,#18216,#21962,.T.); -#14111=EDGE_CURVE('',#18216,#18217,#21963,.T.); -#14112=EDGE_CURVE('',#18217,#18218,#1228,.F.); -#14113=EDGE_CURVE('',#18218,#18219,#21964,.T.); -#14114=EDGE_CURVE('',#18220,#18219,#1229,.F.); -#14115=EDGE_CURVE('',#18220,#18221,#21965,.T.); -#14116=EDGE_CURVE('',#18221,#18222,#1230,.F.); -#14117=EDGE_CURVE('',#18223,#18222,#21966,.T.); -#14118=EDGE_CURVE('',#18223,#18224,#1231,.F.); -#14119=EDGE_CURVE('',#18224,#18225,#21967,.T.); -#14120=EDGE_CURVE('',#18226,#18225,#1232,.F.); -#14121=EDGE_CURVE('',#18226,#18227,#21968,.T.); -#14122=EDGE_CURVE('',#18227,#18228,#1233,.F.); -#14123=EDGE_CURVE('',#18228,#18229,#21969,.T.); -#14124=EDGE_CURVE('',#18229,#18230,#21970,.T.); -#14125=EDGE_CURVE('',#18230,#18231,#21971,.T.); -#14126=EDGE_CURVE('',#18231,#18232,#1234,.F.); -#14127=EDGE_CURVE('',#18232,#18233,#21972,.T.); -#14128=EDGE_CURVE('',#18234,#18233,#1235,.F.); -#14129=EDGE_CURVE('',#18234,#18235,#21973,.T.); -#14130=EDGE_CURVE('',#18235,#18236,#1236,.F.); -#14131=EDGE_CURVE('',#18237,#18236,#21974,.T.); -#14132=EDGE_CURVE('',#18237,#18238,#1237,.F.); -#14133=EDGE_CURVE('',#18238,#18239,#21975,.T.); -#14134=EDGE_CURVE('',#18240,#18239,#1238,.F.); -#14135=EDGE_CURVE('',#18240,#18241,#21976,.T.); -#14136=EDGE_CURVE('',#18241,#18242,#1239,.F.); -#14137=EDGE_CURVE('',#18242,#18243,#21977,.T.); -#14138=EDGE_CURVE('',#18243,#18244,#21978,.T.); -#14139=EDGE_CURVE('',#18244,#18245,#21979,.T.); -#14140=EDGE_CURVE('',#18245,#18246,#1240,.F.); -#14141=EDGE_CURVE('',#18246,#18247,#21980,.T.); -#14142=EDGE_CURVE('',#18248,#18247,#1241,.F.); -#14143=EDGE_CURVE('',#18248,#18249,#21981,.T.); -#14144=EDGE_CURVE('',#18249,#18250,#1242,.F.); -#14145=EDGE_CURVE('',#18251,#18250,#21982,.T.); -#14146=EDGE_CURVE('',#18251,#18252,#1243,.F.); -#14147=EDGE_CURVE('',#18252,#18253,#21983,.T.); -#14148=EDGE_CURVE('',#18254,#18253,#1244,.F.); -#14149=EDGE_CURVE('',#18254,#18255,#21984,.T.); -#14150=EDGE_CURVE('',#18255,#18256,#1245,.F.); -#14151=EDGE_CURVE('',#18256,#18257,#21985,.T.); -#14152=EDGE_CURVE('',#18257,#18258,#21986,.T.); -#14153=EDGE_CURVE('',#18258,#18259,#21987,.T.); -#14154=EDGE_CURVE('',#18259,#18260,#1246,.F.); -#14155=EDGE_CURVE('',#18260,#18261,#21988,.T.); -#14156=EDGE_CURVE('',#18262,#18261,#1247,.F.); -#14157=EDGE_CURVE('',#18262,#18263,#21989,.T.); -#14158=EDGE_CURVE('',#18263,#18264,#1248,.F.); -#14159=EDGE_CURVE('',#18265,#18264,#21990,.T.); -#14160=EDGE_CURVE('',#18265,#18266,#1249,.F.); -#14161=EDGE_CURVE('',#18266,#18267,#21991,.T.); -#14162=EDGE_CURVE('',#18268,#18267,#1250,.F.); -#14163=EDGE_CURVE('',#18268,#18269,#21992,.T.); -#14164=EDGE_CURVE('',#18269,#18270,#1251,.F.); -#14165=EDGE_CURVE('',#18270,#18271,#21993,.T.); -#14166=EDGE_CURVE('',#18271,#18272,#21994,.T.); -#14167=EDGE_CURVE('',#18272,#18273,#21995,.T.); -#14168=EDGE_CURVE('',#18273,#18274,#1252,.F.); -#14169=EDGE_CURVE('',#18274,#18275,#21996,.T.); -#14170=EDGE_CURVE('',#18276,#18275,#1253,.F.); -#14171=EDGE_CURVE('',#18276,#18277,#21997,.T.); -#14172=EDGE_CURVE('',#18277,#18278,#1254,.F.); -#14173=EDGE_CURVE('',#18279,#18278,#21998,.T.); -#14174=EDGE_CURVE('',#18279,#18280,#1255,.F.); -#14175=EDGE_CURVE('',#18280,#18281,#21999,.T.); -#14176=EDGE_CURVE('',#18282,#18281,#1256,.F.); -#14177=EDGE_CURVE('',#18282,#18283,#22000,.T.); -#14178=EDGE_CURVE('',#18283,#18284,#1257,.F.); -#14179=EDGE_CURVE('',#18284,#18285,#22001,.T.); -#14180=EDGE_CURVE('',#18285,#18286,#22002,.T.); -#14181=EDGE_CURVE('',#18286,#18287,#22003,.T.); -#14182=EDGE_CURVE('',#18287,#18288,#1258,.F.); -#14183=EDGE_CURVE('',#18288,#18289,#22004,.T.); -#14184=EDGE_CURVE('',#18290,#18289,#1259,.F.); -#14185=EDGE_CURVE('',#18290,#18291,#22005,.T.); -#14186=EDGE_CURVE('',#18291,#18292,#1260,.F.); -#14187=EDGE_CURVE('',#18293,#18292,#22006,.T.); -#14188=EDGE_CURVE('',#18293,#18294,#1261,.F.); -#14189=EDGE_CURVE('',#18294,#18295,#22007,.T.); -#14190=EDGE_CURVE('',#18296,#18295,#1262,.F.); -#14191=EDGE_CURVE('',#18296,#18297,#22008,.T.); -#14192=EDGE_CURVE('',#18297,#18298,#1263,.F.); -#14193=EDGE_CURVE('',#18298,#18299,#22009,.T.); -#14194=EDGE_CURVE('',#18299,#18300,#22010,.T.); -#14195=EDGE_CURVE('',#18300,#18301,#22011,.T.); -#14196=EDGE_CURVE('',#18301,#18302,#1264,.F.); -#14197=EDGE_CURVE('',#18302,#18303,#22012,.T.); -#14198=EDGE_CURVE('',#18304,#18303,#1265,.F.); -#14199=EDGE_CURVE('',#18304,#18305,#22013,.T.); -#14200=EDGE_CURVE('',#18305,#18306,#1266,.F.); -#14201=EDGE_CURVE('',#18307,#18306,#22014,.T.); -#14202=EDGE_CURVE('',#18307,#18308,#1267,.F.); -#14203=EDGE_CURVE('',#18308,#18309,#22015,.T.); -#14204=EDGE_CURVE('',#18310,#18309,#1268,.F.); -#14205=EDGE_CURVE('',#18310,#18311,#22016,.T.); -#14206=EDGE_CURVE('',#18311,#18312,#1269,.F.); -#14207=EDGE_CURVE('',#18312,#18313,#22017,.T.); -#14208=EDGE_CURVE('',#18313,#18314,#22018,.T.); -#14209=EDGE_CURVE('',#18314,#18315,#22019,.T.); -#14210=EDGE_CURVE('',#18315,#18316,#1270,.F.); -#14211=EDGE_CURVE('',#18316,#18317,#22020,.T.); -#14212=EDGE_CURVE('',#18318,#18317,#1271,.F.); -#14213=EDGE_CURVE('',#18318,#18319,#22021,.T.); -#14214=EDGE_CURVE('',#18319,#18320,#1272,.F.); -#14215=EDGE_CURVE('',#18321,#18320,#22022,.T.); -#14216=EDGE_CURVE('',#18321,#18322,#1273,.F.); -#14217=EDGE_CURVE('',#18322,#18323,#22023,.T.); -#14218=EDGE_CURVE('',#18324,#18323,#1274,.F.); -#14219=EDGE_CURVE('',#18324,#18325,#22024,.T.); -#14220=EDGE_CURVE('',#18325,#18326,#1275,.F.); -#14221=EDGE_CURVE('',#18326,#18327,#22025,.T.); -#14222=EDGE_CURVE('',#18327,#18328,#22026,.T.); -#14223=EDGE_CURVE('',#18328,#18329,#22027,.T.); -#14224=EDGE_CURVE('',#18329,#18330,#1276,.F.); -#14225=EDGE_CURVE('',#18330,#18331,#22028,.T.); -#14226=EDGE_CURVE('',#18332,#18331,#1277,.F.); -#14227=EDGE_CURVE('',#18332,#18333,#22029,.T.); -#14228=EDGE_CURVE('',#18333,#18334,#1278,.F.); -#14229=EDGE_CURVE('',#18335,#18334,#22030,.T.); -#14230=EDGE_CURVE('',#18335,#18336,#1279,.F.); -#14231=EDGE_CURVE('',#18336,#18337,#22031,.T.); -#14232=EDGE_CURVE('',#18338,#18337,#1280,.F.); -#14233=EDGE_CURVE('',#18338,#18339,#22032,.T.); -#14234=EDGE_CURVE('',#18339,#18340,#1281,.F.); -#14235=EDGE_CURVE('',#18340,#18341,#22033,.T.); -#14236=EDGE_CURVE('',#18341,#18342,#22034,.T.); -#14237=EDGE_CURVE('',#18342,#18343,#22035,.T.); -#14238=EDGE_CURVE('',#18343,#18344,#1282,.F.); -#14239=EDGE_CURVE('',#18344,#18345,#22036,.T.); -#14240=EDGE_CURVE('',#18346,#18345,#1283,.F.); -#14241=EDGE_CURVE('',#18346,#18347,#22037,.T.); -#14242=EDGE_CURVE('',#18347,#18348,#1284,.F.); -#14243=EDGE_CURVE('',#18349,#18348,#22038,.T.); -#14244=EDGE_CURVE('',#18349,#18350,#1285,.F.); -#14245=EDGE_CURVE('',#18350,#18351,#22039,.T.); -#14246=EDGE_CURVE('',#18352,#18351,#1286,.F.); -#14247=EDGE_CURVE('',#18352,#18353,#22040,.T.); -#14248=EDGE_CURVE('',#18353,#18354,#1287,.F.); -#14249=EDGE_CURVE('',#18354,#18355,#22041,.T.); -#14250=EDGE_CURVE('',#18355,#18356,#22042,.T.); -#14251=EDGE_CURVE('',#18356,#18357,#22043,.T.); -#14252=EDGE_CURVE('',#18357,#18358,#1288,.F.); -#14253=EDGE_CURVE('',#18358,#18359,#22044,.T.); -#14254=EDGE_CURVE('',#18360,#18359,#1289,.F.); -#14255=EDGE_CURVE('',#18360,#18361,#22045,.T.); -#14256=EDGE_CURVE('',#18361,#18362,#1290,.F.); -#14257=EDGE_CURVE('',#18363,#18362,#22046,.T.); -#14258=EDGE_CURVE('',#18363,#18364,#1291,.F.); -#14259=EDGE_CURVE('',#18364,#18365,#22047,.T.); -#14260=EDGE_CURVE('',#18366,#18365,#1292,.F.); -#14261=EDGE_CURVE('',#18366,#18367,#22048,.T.); -#14262=EDGE_CURVE('',#18367,#18368,#1293,.F.); -#14263=EDGE_CURVE('',#18368,#18369,#22049,.T.); -#14264=EDGE_CURVE('',#18369,#18370,#22050,.T.); -#14265=EDGE_CURVE('',#18370,#18371,#22051,.T.); -#14266=EDGE_CURVE('',#18371,#18372,#1294,.F.); -#14267=EDGE_CURVE('',#18372,#18373,#22052,.T.); -#14268=EDGE_CURVE('',#18374,#18373,#1295,.F.); -#14269=EDGE_CURVE('',#18374,#18375,#22053,.T.); -#14270=EDGE_CURVE('',#18375,#18376,#1296,.F.); -#14271=EDGE_CURVE('',#18377,#18376,#22054,.T.); -#14272=EDGE_CURVE('',#18377,#18378,#1297,.F.); -#14273=EDGE_CURVE('',#18378,#18379,#22055,.T.); -#14274=EDGE_CURVE('',#18380,#18379,#1298,.F.); -#14275=EDGE_CURVE('',#18380,#18381,#22056,.T.); -#14276=EDGE_CURVE('',#18381,#18382,#1299,.F.); -#14277=EDGE_CURVE('',#18382,#18383,#22057,.T.); -#14278=EDGE_CURVE('',#18383,#18384,#22058,.T.); -#14279=EDGE_CURVE('',#18384,#18385,#22059,.T.); -#14280=EDGE_CURVE('',#18385,#18386,#1300,.F.); -#14281=EDGE_CURVE('',#18386,#18387,#22060,.T.); -#14282=EDGE_CURVE('',#18388,#18387,#1301,.F.); -#14283=EDGE_CURVE('',#18388,#18389,#22061,.T.); -#14284=EDGE_CURVE('',#18389,#18390,#1302,.F.); -#14285=EDGE_CURVE('',#18391,#18390,#22062,.T.); -#14286=EDGE_CURVE('',#18391,#18392,#1303,.F.); -#14287=EDGE_CURVE('',#18392,#18393,#22063,.T.); -#14288=EDGE_CURVE('',#18394,#18393,#1304,.F.); -#14289=EDGE_CURVE('',#18394,#18395,#22064,.T.); -#14290=EDGE_CURVE('',#18395,#18396,#1305,.F.); -#14291=EDGE_CURVE('',#18396,#18397,#22065,.T.); -#14292=EDGE_CURVE('',#18397,#18398,#22066,.T.); -#14293=EDGE_CURVE('',#18398,#18399,#22067,.T.); -#14294=EDGE_CURVE('',#18399,#18400,#1306,.F.); -#14295=EDGE_CURVE('',#18400,#18401,#22068,.T.); -#14296=EDGE_CURVE('',#18402,#18401,#1307,.F.); -#14297=EDGE_CURVE('',#18402,#18403,#22069,.T.); -#14298=EDGE_CURVE('',#18403,#18404,#1308,.F.); -#14299=EDGE_CURVE('',#18405,#18404,#22070,.T.); -#14300=EDGE_CURVE('',#18405,#18406,#1309,.F.); -#14301=EDGE_CURVE('',#18406,#18407,#22071,.T.); -#14302=EDGE_CURVE('',#18408,#18407,#1310,.F.); -#14303=EDGE_CURVE('',#18408,#18409,#22072,.T.); -#14304=EDGE_CURVE('',#18409,#18410,#1311,.F.); -#14305=EDGE_CURVE('',#18410,#18411,#22073,.T.); -#14306=EDGE_CURVE('',#18411,#18412,#22074,.T.); -#14307=EDGE_CURVE('',#18412,#18413,#22075,.T.); -#14308=EDGE_CURVE('',#18413,#18414,#1312,.F.); -#14309=EDGE_CURVE('',#18414,#18415,#22076,.T.); -#14310=EDGE_CURVE('',#18416,#18415,#1313,.F.); -#14311=EDGE_CURVE('',#18416,#18417,#22077,.T.); -#14312=EDGE_CURVE('',#18417,#18418,#1314,.F.); -#14313=EDGE_CURVE('',#18419,#18418,#22078,.T.); -#14314=EDGE_CURVE('',#18419,#18420,#1315,.F.); -#14315=EDGE_CURVE('',#18420,#18421,#22079,.T.); -#14316=EDGE_CURVE('',#18422,#18421,#1316,.F.); -#14317=EDGE_CURVE('',#18422,#18423,#22080,.T.); -#14318=EDGE_CURVE('',#18423,#18424,#1317,.F.); -#14319=EDGE_CURVE('',#18424,#18425,#22081,.T.); -#14320=EDGE_CURVE('',#18425,#18426,#22082,.T.); -#14321=EDGE_CURVE('',#18426,#18427,#22083,.T.); -#14322=EDGE_CURVE('',#18427,#18428,#1318,.F.); -#14323=EDGE_CURVE('',#18428,#18429,#22084,.T.); -#14324=EDGE_CURVE('',#18430,#18429,#1319,.F.); -#14325=EDGE_CURVE('',#18430,#18431,#22085,.T.); -#14326=EDGE_CURVE('',#18431,#18432,#1320,.F.); -#14327=EDGE_CURVE('',#18433,#18432,#22086,.T.); -#14328=EDGE_CURVE('',#18433,#18434,#1321,.F.); -#14329=EDGE_CURVE('',#18434,#18435,#22087,.T.); -#14330=EDGE_CURVE('',#18436,#18435,#1322,.F.); -#14331=EDGE_CURVE('',#18436,#18437,#22088,.T.); -#14332=EDGE_CURVE('',#18437,#18438,#1323,.F.); -#14333=EDGE_CURVE('',#18439,#18438,#22089,.T.); -#14334=EDGE_CURVE('',#18440,#18439,#22090,.T.); -#14335=EDGE_CURVE('',#18440,#18158,#22091,.T.); -#14336=EDGE_CURVE('',#18441,#18442,#22092,.T.); -#14337=EDGE_CURVE('',#18443,#18441,#22093,.T.); -#14338=EDGE_CURVE('',#18443,#18444,#22094,.T.); -#14339=EDGE_CURVE('',#18445,#18444,#22095,.T.); -#14340=EDGE_CURVE('',#18445,#18446,#1324,.F.); -#14341=EDGE_CURVE('',#18446,#18447,#22096,.T.); -#14342=EDGE_CURVE('',#18448,#18447,#1325,.F.); -#14343=EDGE_CURVE('',#18448,#18449,#22097,.T.); -#14344=EDGE_CURVE('',#18449,#18450,#1326,.F.); -#14345=EDGE_CURVE('',#18450,#18451,#22098,.T.); -#14346=EDGE_CURVE('',#18451,#18452,#1327,.F.); -#14347=EDGE_CURVE('',#18452,#18453,#22099,.T.); -#14348=EDGE_CURVE('',#18454,#18453,#1328,.F.); -#14349=EDGE_CURVE('',#18454,#18455,#22100,.T.); -#14350=EDGE_CURVE('',#18455,#18456,#1329,.F.); -#14351=EDGE_CURVE('',#18456,#18457,#22101,.T.); -#14352=EDGE_CURVE('',#18457,#18458,#22102,.T.); -#14353=EDGE_CURVE('',#18458,#18459,#22103,.T.); -#14354=EDGE_CURVE('',#18459,#18460,#1330,.F.); -#14355=EDGE_CURVE('',#18460,#18461,#22104,.T.); -#14356=EDGE_CURVE('',#18462,#18461,#1331,.F.); -#14357=EDGE_CURVE('',#18462,#18463,#22105,.T.); -#14358=EDGE_CURVE('',#18463,#18464,#1332,.F.); -#14359=EDGE_CURVE('',#18464,#18465,#22106,.T.); -#14360=EDGE_CURVE('',#18465,#18466,#1333,.F.); -#14361=EDGE_CURVE('',#18466,#18467,#22107,.T.); -#14362=EDGE_CURVE('',#18468,#18467,#1334,.F.); -#14363=EDGE_CURVE('',#18468,#18469,#22108,.T.); -#14364=EDGE_CURVE('',#18469,#18470,#1335,.F.); -#14365=EDGE_CURVE('',#18470,#18471,#22109,.T.); -#14366=EDGE_CURVE('',#18471,#18472,#22110,.T.); -#14367=EDGE_CURVE('',#18472,#18473,#22111,.T.); -#14368=EDGE_CURVE('',#18473,#18474,#1336,.F.); -#14369=EDGE_CURVE('',#18474,#18475,#22112,.T.); -#14370=EDGE_CURVE('',#18476,#18475,#1337,.F.); -#14371=EDGE_CURVE('',#18476,#18477,#22113,.T.); -#14372=EDGE_CURVE('',#18477,#18478,#1338,.F.); -#14373=EDGE_CURVE('',#18478,#18479,#22114,.T.); -#14374=EDGE_CURVE('',#18479,#18480,#1339,.F.); -#14375=EDGE_CURVE('',#18480,#18481,#22115,.T.); -#14376=EDGE_CURVE('',#18482,#18481,#1340,.F.); -#14377=EDGE_CURVE('',#18482,#18483,#22116,.T.); -#14378=EDGE_CURVE('',#18483,#18484,#1341,.F.); -#14379=EDGE_CURVE('',#18484,#18485,#22117,.T.); -#14380=EDGE_CURVE('',#18485,#18486,#22118,.T.); -#14381=EDGE_CURVE('',#18486,#18487,#22119,.T.); -#14382=EDGE_CURVE('',#18487,#18488,#1342,.F.); -#14383=EDGE_CURVE('',#18488,#18489,#22120,.T.); -#14384=EDGE_CURVE('',#18490,#18489,#1343,.F.); -#14385=EDGE_CURVE('',#18490,#18491,#22121,.T.); -#14386=EDGE_CURVE('',#18491,#18492,#1344,.F.); -#14387=EDGE_CURVE('',#18492,#18493,#22122,.T.); -#14388=EDGE_CURVE('',#18493,#18494,#1345,.F.); -#14389=EDGE_CURVE('',#18494,#18495,#22123,.T.); -#14390=EDGE_CURVE('',#18496,#18495,#1346,.F.); -#14391=EDGE_CURVE('',#18496,#18497,#22124,.T.); -#14392=EDGE_CURVE('',#18497,#18498,#1347,.F.); -#14393=EDGE_CURVE('',#18498,#18499,#22125,.T.); -#14394=EDGE_CURVE('',#18499,#18500,#22126,.T.); -#14395=EDGE_CURVE('',#18500,#18501,#22127,.T.); -#14396=EDGE_CURVE('',#18501,#18502,#1348,.F.); -#14397=EDGE_CURVE('',#18502,#18503,#22128,.T.); -#14398=EDGE_CURVE('',#18504,#18503,#1349,.F.); -#14399=EDGE_CURVE('',#18504,#18505,#22129,.T.); -#14400=EDGE_CURVE('',#18505,#18506,#1350,.F.); -#14401=EDGE_CURVE('',#18506,#18507,#22130,.T.); -#14402=EDGE_CURVE('',#18507,#18508,#1351,.F.); -#14403=EDGE_CURVE('',#18508,#18509,#22131,.T.); -#14404=EDGE_CURVE('',#18510,#18509,#1352,.F.); -#14405=EDGE_CURVE('',#18510,#18511,#22132,.T.); -#14406=EDGE_CURVE('',#18511,#18512,#1353,.F.); -#14407=EDGE_CURVE('',#18512,#18513,#22133,.T.); -#14408=EDGE_CURVE('',#18513,#18514,#22134,.T.); -#14409=EDGE_CURVE('',#18514,#18515,#22135,.T.); -#14410=EDGE_CURVE('',#18515,#18516,#1354,.F.); -#14411=EDGE_CURVE('',#18516,#18517,#22136,.T.); -#14412=EDGE_CURVE('',#18518,#18517,#1355,.F.); -#14413=EDGE_CURVE('',#18518,#18519,#22137,.T.); -#14414=EDGE_CURVE('',#18519,#18520,#1356,.F.); -#14415=EDGE_CURVE('',#18520,#18521,#22138,.T.); -#14416=EDGE_CURVE('',#18521,#18522,#1357,.F.); -#14417=EDGE_CURVE('',#18522,#18523,#22139,.T.); -#14418=EDGE_CURVE('',#18524,#18523,#1358,.F.); -#14419=EDGE_CURVE('',#18524,#18525,#22140,.T.); -#14420=EDGE_CURVE('',#18525,#18526,#1359,.F.); -#14421=EDGE_CURVE('',#18526,#18527,#22141,.T.); -#14422=EDGE_CURVE('',#18527,#18528,#22142,.T.); -#14423=EDGE_CURVE('',#18528,#18529,#22143,.T.); -#14424=EDGE_CURVE('',#18529,#18530,#1360,.F.); -#14425=EDGE_CURVE('',#18530,#18531,#22144,.T.); -#14426=EDGE_CURVE('',#18532,#18531,#1361,.F.); -#14427=EDGE_CURVE('',#18532,#18533,#22145,.T.); -#14428=EDGE_CURVE('',#18533,#18534,#1362,.F.); -#14429=EDGE_CURVE('',#18534,#18535,#22146,.T.); -#14430=EDGE_CURVE('',#18535,#18536,#1363,.F.); -#14431=EDGE_CURVE('',#18536,#18537,#22147,.T.); -#14432=EDGE_CURVE('',#18538,#18537,#1364,.F.); -#14433=EDGE_CURVE('',#18538,#18539,#22148,.T.); -#14434=EDGE_CURVE('',#18539,#18540,#1365,.F.); -#14435=EDGE_CURVE('',#18540,#18541,#22149,.T.); -#14436=EDGE_CURVE('',#18541,#18542,#22150,.T.); -#14437=EDGE_CURVE('',#18542,#18543,#22151,.T.); -#14438=EDGE_CURVE('',#18543,#18544,#1366,.F.); -#14439=EDGE_CURVE('',#18544,#18545,#22152,.T.); -#14440=EDGE_CURVE('',#18546,#18545,#1367,.F.); -#14441=EDGE_CURVE('',#18546,#18547,#22153,.T.); -#14442=EDGE_CURVE('',#18547,#18548,#1368,.F.); -#14443=EDGE_CURVE('',#18548,#18549,#22154,.T.); -#14444=EDGE_CURVE('',#18549,#18550,#1369,.F.); -#14445=EDGE_CURVE('',#18550,#18551,#22155,.T.); -#14446=EDGE_CURVE('',#18552,#18551,#1370,.F.); -#14447=EDGE_CURVE('',#18552,#18553,#22156,.T.); -#14448=EDGE_CURVE('',#18553,#18554,#1371,.F.); -#14449=EDGE_CURVE('',#18554,#18555,#22157,.T.); -#14450=EDGE_CURVE('',#18555,#18556,#22158,.T.); -#14451=EDGE_CURVE('',#18556,#18557,#22159,.T.); -#14452=EDGE_CURVE('',#18557,#18558,#1372,.F.); -#14453=EDGE_CURVE('',#18558,#18559,#22160,.T.); -#14454=EDGE_CURVE('',#18560,#18559,#1373,.F.); -#14455=EDGE_CURVE('',#18560,#18561,#22161,.T.); -#14456=EDGE_CURVE('',#18561,#18562,#1374,.F.); -#14457=EDGE_CURVE('',#18562,#18563,#22162,.T.); -#14458=EDGE_CURVE('',#18563,#18564,#1375,.F.); -#14459=EDGE_CURVE('',#18564,#18565,#22163,.T.); -#14460=EDGE_CURVE('',#18566,#18565,#1376,.F.); -#14461=EDGE_CURVE('',#18566,#18567,#22164,.T.); -#14462=EDGE_CURVE('',#18567,#18568,#1377,.F.); -#14463=EDGE_CURVE('',#18568,#18569,#22165,.T.); -#14464=EDGE_CURVE('',#18569,#18570,#22166,.T.); -#14465=EDGE_CURVE('',#18570,#18571,#22167,.T.); -#14466=EDGE_CURVE('',#18571,#18572,#1378,.F.); -#14467=EDGE_CURVE('',#18572,#18573,#22168,.T.); -#14468=EDGE_CURVE('',#18574,#18573,#1379,.F.); -#14469=EDGE_CURVE('',#18574,#18575,#22169,.T.); -#14470=EDGE_CURVE('',#18575,#18576,#1380,.F.); -#14471=EDGE_CURVE('',#18576,#18577,#22170,.T.); -#14472=EDGE_CURVE('',#18577,#18578,#1381,.F.); -#14473=EDGE_CURVE('',#18578,#18579,#22171,.T.); -#14474=EDGE_CURVE('',#18580,#18579,#1382,.F.); -#14475=EDGE_CURVE('',#18580,#18581,#22172,.T.); -#14476=EDGE_CURVE('',#18581,#18582,#1383,.F.); -#14477=EDGE_CURVE('',#18582,#18583,#22173,.T.); -#14478=EDGE_CURVE('',#18583,#18584,#22174,.T.); -#14479=EDGE_CURVE('',#18584,#18585,#22175,.T.); -#14480=EDGE_CURVE('',#18585,#18586,#1384,.F.); -#14481=EDGE_CURVE('',#18586,#18587,#22176,.T.); -#14482=EDGE_CURVE('',#18588,#18587,#1385,.F.); -#14483=EDGE_CURVE('',#18588,#18589,#22177,.T.); -#14484=EDGE_CURVE('',#18589,#18590,#1386,.F.); -#14485=EDGE_CURVE('',#18590,#18591,#22178,.T.); -#14486=EDGE_CURVE('',#18591,#18592,#1387,.F.); -#14487=EDGE_CURVE('',#18592,#18593,#22179,.T.); -#14488=EDGE_CURVE('',#18594,#18593,#1388,.F.); -#14489=EDGE_CURVE('',#18594,#18595,#22180,.T.); -#14490=EDGE_CURVE('',#18595,#18596,#1389,.F.); -#14491=EDGE_CURVE('',#18596,#18597,#22181,.T.); -#14492=EDGE_CURVE('',#18597,#18598,#22182,.T.); -#14493=EDGE_CURVE('',#18598,#18599,#22183,.T.); -#14494=EDGE_CURVE('',#18599,#18600,#1390,.F.); -#14495=EDGE_CURVE('',#18600,#18601,#22184,.T.); -#14496=EDGE_CURVE('',#18602,#18601,#1391,.F.); -#14497=EDGE_CURVE('',#18602,#18603,#22185,.T.); -#14498=EDGE_CURVE('',#18603,#18604,#1392,.F.); -#14499=EDGE_CURVE('',#18604,#18605,#22186,.T.); -#14500=EDGE_CURVE('',#18605,#18606,#1393,.F.); -#14501=EDGE_CURVE('',#18606,#18607,#22187,.T.); -#14502=EDGE_CURVE('',#18608,#18607,#1394,.F.); -#14503=EDGE_CURVE('',#18608,#18609,#22188,.T.); -#14504=EDGE_CURVE('',#18609,#18610,#1395,.F.); -#14505=EDGE_CURVE('',#18610,#18611,#22189,.T.); -#14506=EDGE_CURVE('',#18611,#18612,#22190,.T.); -#14507=EDGE_CURVE('',#18612,#18613,#22191,.T.); -#14508=EDGE_CURVE('',#18613,#18614,#1396,.F.); -#14509=EDGE_CURVE('',#18614,#18615,#22192,.T.); -#14510=EDGE_CURVE('',#18616,#18615,#1397,.F.); -#14511=EDGE_CURVE('',#18616,#18617,#22193,.T.); -#14512=EDGE_CURVE('',#18617,#18618,#1398,.F.); -#14513=EDGE_CURVE('',#18618,#18619,#22194,.T.); -#14514=EDGE_CURVE('',#18619,#18620,#1399,.F.); -#14515=EDGE_CURVE('',#18620,#18621,#22195,.T.); -#14516=EDGE_CURVE('',#18622,#18621,#1400,.F.); -#14517=EDGE_CURVE('',#18622,#18623,#22196,.T.); -#14518=EDGE_CURVE('',#18623,#18624,#1401,.F.); -#14519=EDGE_CURVE('',#18624,#18625,#22197,.T.); -#14520=EDGE_CURVE('',#18625,#18626,#22198,.T.); -#14521=EDGE_CURVE('',#18626,#18627,#22199,.T.); -#14522=EDGE_CURVE('',#18627,#18628,#1402,.F.); -#14523=EDGE_CURVE('',#18628,#18629,#22200,.T.); -#14524=EDGE_CURVE('',#18630,#18629,#1403,.F.); -#14525=EDGE_CURVE('',#18630,#18631,#22201,.T.); -#14526=EDGE_CURVE('',#18631,#18632,#1404,.F.); -#14527=EDGE_CURVE('',#18632,#18633,#22202,.T.); -#14528=EDGE_CURVE('',#18633,#18634,#1405,.F.); -#14529=EDGE_CURVE('',#18634,#18635,#22203,.T.); -#14530=EDGE_CURVE('',#18636,#18635,#1406,.F.); -#14531=EDGE_CURVE('',#18636,#18637,#22204,.T.); -#14532=EDGE_CURVE('',#18637,#18638,#1407,.F.); -#14533=EDGE_CURVE('',#18638,#18639,#22205,.T.); -#14534=EDGE_CURVE('',#18639,#18640,#22206,.T.); -#14535=EDGE_CURVE('',#18640,#18641,#22207,.T.); -#14536=EDGE_CURVE('',#18641,#18642,#1408,.F.); -#14537=EDGE_CURVE('',#18642,#18643,#22208,.T.); -#14538=EDGE_CURVE('',#18644,#18643,#1409,.F.); -#14539=EDGE_CURVE('',#18644,#18645,#22209,.T.); -#14540=EDGE_CURVE('',#18645,#18646,#1410,.F.); -#14541=EDGE_CURVE('',#18646,#18647,#22210,.T.); -#14542=EDGE_CURVE('',#18647,#18648,#1411,.F.); -#14543=EDGE_CURVE('',#18648,#18649,#22211,.T.); -#14544=EDGE_CURVE('',#18650,#18649,#1412,.F.); -#14545=EDGE_CURVE('',#18650,#18651,#22212,.T.); -#14546=EDGE_CURVE('',#18651,#18652,#1413,.F.); -#14547=EDGE_CURVE('',#18652,#18653,#22213,.T.); -#14548=EDGE_CURVE('',#18653,#18654,#22214,.T.); -#14549=EDGE_CURVE('',#18654,#18655,#22215,.T.); -#14550=EDGE_CURVE('',#18655,#18656,#1414,.F.); -#14551=EDGE_CURVE('',#18656,#18657,#22216,.T.); -#14552=EDGE_CURVE('',#18658,#18657,#1415,.F.); -#14553=EDGE_CURVE('',#18658,#18659,#22217,.T.); -#14554=EDGE_CURVE('',#18659,#18660,#1416,.F.); -#14555=EDGE_CURVE('',#18660,#18661,#22218,.T.); -#14556=EDGE_CURVE('',#18661,#18662,#1417,.F.); -#14557=EDGE_CURVE('',#18662,#18663,#22219,.T.); -#14558=EDGE_CURVE('',#18664,#18663,#1418,.F.); -#14559=EDGE_CURVE('',#18664,#18665,#22220,.T.); -#14560=EDGE_CURVE('',#18665,#18666,#1419,.F.); -#14561=EDGE_CURVE('',#18666,#18667,#22221,.T.); -#14562=EDGE_CURVE('',#18667,#18668,#22222,.T.); -#14563=EDGE_CURVE('',#18668,#18669,#22223,.T.); -#14564=EDGE_CURVE('',#18669,#18670,#1420,.F.); -#14565=EDGE_CURVE('',#18670,#18671,#22224,.T.); -#14566=EDGE_CURVE('',#18672,#18671,#1421,.F.); -#14567=EDGE_CURVE('',#18672,#18673,#22225,.T.); -#14568=EDGE_CURVE('',#18673,#18674,#1422,.F.); -#14569=EDGE_CURVE('',#18674,#18675,#22226,.T.); -#14570=EDGE_CURVE('',#18675,#18676,#1423,.F.); -#14571=EDGE_CURVE('',#18676,#18677,#22227,.T.); -#14572=EDGE_CURVE('',#18678,#18677,#1424,.F.); -#14573=EDGE_CURVE('',#18678,#18679,#22228,.T.); -#14574=EDGE_CURVE('',#18679,#18680,#1425,.F.); -#14575=EDGE_CURVE('',#18680,#18681,#22229,.T.); -#14576=EDGE_CURVE('',#18681,#18682,#22230,.T.); -#14577=EDGE_CURVE('',#18682,#18683,#22231,.T.); -#14578=EDGE_CURVE('',#18683,#18684,#1426,.F.); -#14579=EDGE_CURVE('',#18684,#18685,#22232,.T.); -#14580=EDGE_CURVE('',#18686,#18685,#1427,.F.); -#14581=EDGE_CURVE('',#18686,#18687,#22233,.T.); -#14582=EDGE_CURVE('',#18687,#18688,#1428,.F.); -#14583=EDGE_CURVE('',#18688,#18689,#22234,.T.); -#14584=EDGE_CURVE('',#18689,#18690,#1429,.F.); -#14585=EDGE_CURVE('',#18690,#18691,#22235,.T.); -#14586=EDGE_CURVE('',#18692,#18691,#1430,.F.); -#14587=EDGE_CURVE('',#18692,#18693,#22236,.T.); -#14588=EDGE_CURVE('',#18693,#18694,#1431,.F.); -#14589=EDGE_CURVE('',#18694,#18695,#22237,.T.); -#14590=EDGE_CURVE('',#18695,#18696,#22238,.T.); -#14591=EDGE_CURVE('',#18696,#18697,#22239,.T.); -#14592=EDGE_CURVE('',#18697,#18698,#1432,.F.); -#14593=EDGE_CURVE('',#18698,#18699,#22240,.T.); -#14594=EDGE_CURVE('',#18700,#18699,#1433,.F.); -#14595=EDGE_CURVE('',#18700,#18701,#22241,.T.); -#14596=EDGE_CURVE('',#18701,#18702,#1434,.F.); -#14597=EDGE_CURVE('',#18702,#18703,#22242,.T.); -#14598=EDGE_CURVE('',#18703,#18704,#1435,.F.); -#14599=EDGE_CURVE('',#18704,#18705,#22243,.T.); -#14600=EDGE_CURVE('',#18706,#18705,#1436,.F.); -#14601=EDGE_CURVE('',#18706,#18707,#22244,.T.); -#14602=EDGE_CURVE('',#18707,#18708,#1437,.F.); -#14603=EDGE_CURVE('',#18708,#18709,#22245,.T.); -#14604=EDGE_CURVE('',#18709,#18710,#22246,.T.); -#14605=EDGE_CURVE('',#18710,#18711,#22247,.T.); -#14606=EDGE_CURVE('',#18711,#18712,#1438,.F.); -#14607=EDGE_CURVE('',#18712,#18713,#22248,.T.); -#14608=EDGE_CURVE('',#18714,#18713,#1439,.F.); -#14609=EDGE_CURVE('',#18714,#18715,#22249,.T.); -#14610=EDGE_CURVE('',#18715,#18716,#1440,.F.); -#14611=EDGE_CURVE('',#18716,#18717,#22250,.T.); -#14612=EDGE_CURVE('',#18717,#18718,#1441,.F.); -#14613=EDGE_CURVE('',#18718,#18719,#22251,.T.); -#14614=EDGE_CURVE('',#18720,#18719,#1442,.F.); -#14615=EDGE_CURVE('',#18720,#18721,#22252,.T.); -#14616=EDGE_CURVE('',#18721,#18722,#1443,.F.); -#14617=EDGE_CURVE('',#18722,#18723,#22253,.T.); -#14618=EDGE_CURVE('',#18723,#18724,#22254,.T.); -#14619=EDGE_CURVE('',#18724,#18442,#22255,.T.); -#14620=EDGE_CURVE('',#18725,#18726,#22256,.T.); -#14621=EDGE_CURVE('',#18727,#18725,#22257,.T.); -#14622=EDGE_CURVE('',#18727,#18728,#22258,.T.); -#14623=EDGE_CURVE('',#18728,#18729,#22259,.T.); -#14624=EDGE_CURVE('',#18729,#18730,#1444,.F.); -#14625=EDGE_CURVE('',#18730,#18731,#22260,.T.); -#14626=EDGE_CURVE('',#18732,#18731,#1445,.F.); -#14627=EDGE_CURVE('',#18732,#18733,#22261,.T.); -#14628=EDGE_CURVE('',#18733,#18734,#1446,.F.); -#14629=EDGE_CURVE('',#18735,#18734,#22262,.T.); -#14630=EDGE_CURVE('',#18735,#18736,#1447,.F.); -#14631=EDGE_CURVE('',#18736,#18737,#22263,.T.); -#14632=EDGE_CURVE('',#18738,#18737,#1448,.F.); -#14633=EDGE_CURVE('',#18738,#18739,#22264,.T.); -#14634=EDGE_CURVE('',#18739,#18740,#1449,.F.); -#14635=EDGE_CURVE('',#18740,#18741,#22265,.T.); -#14636=EDGE_CURVE('',#18741,#18742,#22266,.T.); -#14637=EDGE_CURVE('',#18742,#18743,#22267,.T.); -#14638=EDGE_CURVE('',#18743,#18744,#1450,.F.); -#14639=EDGE_CURVE('',#18744,#18745,#22268,.T.); -#14640=EDGE_CURVE('',#18746,#18745,#1451,.F.); -#14641=EDGE_CURVE('',#18746,#18747,#22269,.T.); -#14642=EDGE_CURVE('',#18747,#18748,#1452,.F.); -#14643=EDGE_CURVE('',#18749,#18748,#22270,.T.); -#14644=EDGE_CURVE('',#18749,#18750,#1453,.F.); -#14645=EDGE_CURVE('',#18750,#18751,#22271,.T.); -#14646=EDGE_CURVE('',#18752,#18751,#1454,.F.); -#14647=EDGE_CURVE('',#18752,#18753,#22272,.T.); -#14648=EDGE_CURVE('',#18753,#18754,#1455,.F.); -#14649=EDGE_CURVE('',#18754,#18755,#22273,.T.); -#14650=EDGE_CURVE('',#18755,#18756,#22274,.T.); -#14651=EDGE_CURVE('',#18756,#18757,#22275,.T.); -#14652=EDGE_CURVE('',#18757,#18758,#1456,.F.); -#14653=EDGE_CURVE('',#18758,#18759,#22276,.T.); -#14654=EDGE_CURVE('',#18760,#18759,#1457,.F.); -#14655=EDGE_CURVE('',#18760,#18761,#22277,.T.); -#14656=EDGE_CURVE('',#18761,#18762,#1458,.F.); -#14657=EDGE_CURVE('',#18763,#18762,#22278,.T.); -#14658=EDGE_CURVE('',#18763,#18764,#1459,.F.); -#14659=EDGE_CURVE('',#18764,#18765,#22279,.T.); -#14660=EDGE_CURVE('',#18766,#18765,#1460,.F.); -#14661=EDGE_CURVE('',#18766,#18767,#22280,.T.); -#14662=EDGE_CURVE('',#18767,#18768,#1461,.F.); -#14663=EDGE_CURVE('',#18768,#18769,#22281,.T.); -#14664=EDGE_CURVE('',#18769,#18770,#22282,.T.); -#14665=EDGE_CURVE('',#18770,#18771,#22283,.T.); -#14666=EDGE_CURVE('',#18771,#18772,#1462,.F.); -#14667=EDGE_CURVE('',#18772,#18773,#22284,.T.); -#14668=EDGE_CURVE('',#18774,#18773,#1463,.F.); -#14669=EDGE_CURVE('',#18774,#18775,#22285,.T.); -#14670=EDGE_CURVE('',#18775,#18776,#1464,.F.); -#14671=EDGE_CURVE('',#18777,#18776,#22286,.T.); -#14672=EDGE_CURVE('',#18777,#18778,#1465,.F.); -#14673=EDGE_CURVE('',#18778,#18779,#22287,.T.); -#14674=EDGE_CURVE('',#18780,#18779,#1466,.F.); -#14675=EDGE_CURVE('',#18780,#18781,#22288,.T.); -#14676=EDGE_CURVE('',#18781,#18782,#1467,.F.); -#14677=EDGE_CURVE('',#18782,#18783,#22289,.T.); -#14678=EDGE_CURVE('',#18783,#18784,#22290,.T.); -#14679=EDGE_CURVE('',#18784,#18785,#22291,.T.); -#14680=EDGE_CURVE('',#18785,#18786,#1468,.F.); -#14681=EDGE_CURVE('',#18786,#18787,#22292,.T.); -#14682=EDGE_CURVE('',#18788,#18787,#1469,.F.); -#14683=EDGE_CURVE('',#18788,#18789,#22293,.T.); -#14684=EDGE_CURVE('',#18789,#18790,#1470,.F.); -#14685=EDGE_CURVE('',#18791,#18790,#22294,.T.); -#14686=EDGE_CURVE('',#18791,#18792,#1471,.F.); -#14687=EDGE_CURVE('',#18792,#18793,#22295,.T.); -#14688=EDGE_CURVE('',#18794,#18793,#1472,.F.); -#14689=EDGE_CURVE('',#18794,#18795,#22296,.T.); -#14690=EDGE_CURVE('',#18795,#18796,#1473,.F.); -#14691=EDGE_CURVE('',#18796,#18797,#22297,.T.); -#14692=EDGE_CURVE('',#18797,#18798,#22298,.T.); -#14693=EDGE_CURVE('',#18798,#18799,#22299,.T.); -#14694=EDGE_CURVE('',#18799,#18800,#1474,.F.); -#14695=EDGE_CURVE('',#18800,#18801,#22300,.T.); -#14696=EDGE_CURVE('',#18802,#18801,#1475,.F.); -#14697=EDGE_CURVE('',#18802,#18803,#22301,.T.); -#14698=EDGE_CURVE('',#18803,#18804,#1476,.F.); -#14699=EDGE_CURVE('',#18805,#18804,#22302,.T.); -#14700=EDGE_CURVE('',#18805,#18806,#1477,.F.); -#14701=EDGE_CURVE('',#18806,#18807,#22303,.T.); -#14702=EDGE_CURVE('',#18808,#18807,#1478,.F.); -#14703=EDGE_CURVE('',#18808,#18809,#22304,.T.); -#14704=EDGE_CURVE('',#18809,#18810,#1479,.F.); -#14705=EDGE_CURVE('',#18810,#18811,#22305,.T.); -#14706=EDGE_CURVE('',#18811,#18812,#22306,.T.); -#14707=EDGE_CURVE('',#18812,#18813,#22307,.T.); -#14708=EDGE_CURVE('',#18813,#18814,#1480,.F.); -#14709=EDGE_CURVE('',#18814,#18815,#22308,.T.); -#14710=EDGE_CURVE('',#18816,#18815,#1481,.F.); -#14711=EDGE_CURVE('',#18816,#18817,#22309,.T.); -#14712=EDGE_CURVE('',#18817,#18818,#1482,.F.); -#14713=EDGE_CURVE('',#18819,#18818,#22310,.T.); -#14714=EDGE_CURVE('',#18819,#18820,#1483,.F.); -#14715=EDGE_CURVE('',#18820,#18821,#22311,.T.); -#14716=EDGE_CURVE('',#18822,#18821,#1484,.F.); -#14717=EDGE_CURVE('',#18822,#18823,#22312,.T.); -#14718=EDGE_CURVE('',#18823,#18824,#1485,.F.); -#14719=EDGE_CURVE('',#18824,#18825,#22313,.T.); -#14720=EDGE_CURVE('',#18825,#18826,#22314,.T.); -#14721=EDGE_CURVE('',#18826,#18827,#22315,.T.); -#14722=EDGE_CURVE('',#18827,#18828,#1486,.F.); -#14723=EDGE_CURVE('',#18828,#18829,#22316,.T.); -#14724=EDGE_CURVE('',#18830,#18829,#1487,.F.); -#14725=EDGE_CURVE('',#18830,#18831,#22317,.T.); -#14726=EDGE_CURVE('',#18831,#18832,#1488,.F.); -#14727=EDGE_CURVE('',#18833,#18832,#22318,.T.); -#14728=EDGE_CURVE('',#18833,#18834,#1489,.F.); -#14729=EDGE_CURVE('',#18834,#18835,#22319,.T.); -#14730=EDGE_CURVE('',#18836,#18835,#1490,.F.); -#14731=EDGE_CURVE('',#18836,#18837,#22320,.T.); -#14732=EDGE_CURVE('',#18837,#18838,#1491,.F.); -#14733=EDGE_CURVE('',#18838,#18839,#22321,.T.); -#14734=EDGE_CURVE('',#18839,#18840,#22322,.T.); -#14735=EDGE_CURVE('',#18840,#18841,#22323,.T.); -#14736=EDGE_CURVE('',#18841,#18842,#1492,.F.); -#14737=EDGE_CURVE('',#18842,#18843,#22324,.T.); -#14738=EDGE_CURVE('',#18844,#18843,#1493,.F.); -#14739=EDGE_CURVE('',#18844,#18845,#22325,.T.); -#14740=EDGE_CURVE('',#18845,#18846,#1494,.F.); -#14741=EDGE_CURVE('',#18847,#18846,#22326,.T.); -#14742=EDGE_CURVE('',#18847,#18848,#1495,.F.); -#14743=EDGE_CURVE('',#18848,#18849,#22327,.T.); -#14744=EDGE_CURVE('',#18850,#18849,#1496,.F.); -#14745=EDGE_CURVE('',#18850,#18851,#22328,.T.); -#14746=EDGE_CURVE('',#18851,#18852,#1497,.F.); -#14747=EDGE_CURVE('',#18852,#18853,#22329,.T.); -#14748=EDGE_CURVE('',#18853,#18854,#22330,.T.); -#14749=EDGE_CURVE('',#18854,#18855,#22331,.T.); -#14750=EDGE_CURVE('',#18855,#18856,#1498,.F.); -#14751=EDGE_CURVE('',#18856,#18857,#22332,.T.); -#14752=EDGE_CURVE('',#18858,#18857,#1499,.F.); -#14753=EDGE_CURVE('',#18858,#18859,#22333,.T.); -#14754=EDGE_CURVE('',#18859,#18860,#1500,.F.); -#14755=EDGE_CURVE('',#18861,#18860,#22334,.T.); -#14756=EDGE_CURVE('',#18861,#18862,#1501,.F.); -#14757=EDGE_CURVE('',#18862,#18863,#22335,.T.); -#14758=EDGE_CURVE('',#18864,#18863,#1502,.F.); -#14759=EDGE_CURVE('',#18864,#18865,#22336,.T.); -#14760=EDGE_CURVE('',#18865,#18866,#1503,.F.); -#14761=EDGE_CURVE('',#18866,#18867,#22337,.T.); -#14762=EDGE_CURVE('',#18867,#18868,#22338,.T.); -#14763=EDGE_CURVE('',#18868,#18869,#22339,.T.); -#14764=EDGE_CURVE('',#18869,#18870,#1504,.F.); -#14765=EDGE_CURVE('',#18870,#18871,#22340,.T.); -#14766=EDGE_CURVE('',#18872,#18871,#1505,.F.); -#14767=EDGE_CURVE('',#18872,#18873,#22341,.T.); -#14768=EDGE_CURVE('',#18873,#18874,#1506,.F.); -#14769=EDGE_CURVE('',#18875,#18874,#22342,.T.); -#14770=EDGE_CURVE('',#18875,#18876,#1507,.F.); -#14771=EDGE_CURVE('',#18876,#18877,#22343,.T.); -#14772=EDGE_CURVE('',#18878,#18877,#1508,.F.); -#14773=EDGE_CURVE('',#18878,#18879,#22344,.T.); -#14774=EDGE_CURVE('',#18879,#18880,#1509,.F.); -#14775=EDGE_CURVE('',#18880,#18881,#22345,.T.); -#14776=EDGE_CURVE('',#18881,#18882,#22346,.T.); -#14777=EDGE_CURVE('',#18882,#18883,#22347,.T.); -#14778=EDGE_CURVE('',#18883,#18884,#1510,.F.); -#14779=EDGE_CURVE('',#18884,#18885,#22348,.T.); -#14780=EDGE_CURVE('',#18886,#18885,#1511,.F.); -#14781=EDGE_CURVE('',#18886,#18887,#22349,.T.); -#14782=EDGE_CURVE('',#18887,#18888,#1512,.F.); -#14783=EDGE_CURVE('',#18889,#18888,#22350,.T.); -#14784=EDGE_CURVE('',#18889,#18890,#1513,.F.); -#14785=EDGE_CURVE('',#18890,#18891,#22351,.T.); -#14786=EDGE_CURVE('',#18892,#18891,#1514,.F.); -#14787=EDGE_CURVE('',#18892,#18893,#22352,.T.); -#14788=EDGE_CURVE('',#18893,#18894,#1515,.F.); -#14789=EDGE_CURVE('',#18894,#18895,#22353,.T.); -#14790=EDGE_CURVE('',#18895,#18896,#22354,.T.); -#14791=EDGE_CURVE('',#18896,#18897,#22355,.T.); -#14792=EDGE_CURVE('',#18897,#18898,#1516,.F.); -#14793=EDGE_CURVE('',#18898,#18899,#22356,.T.); -#14794=EDGE_CURVE('',#18900,#18899,#1517,.F.); -#14795=EDGE_CURVE('',#18900,#18901,#22357,.T.); -#14796=EDGE_CURVE('',#18901,#18902,#1518,.F.); -#14797=EDGE_CURVE('',#18903,#18902,#22358,.T.); -#14798=EDGE_CURVE('',#18903,#18904,#1519,.F.); -#14799=EDGE_CURVE('',#18904,#18905,#22359,.T.); -#14800=EDGE_CURVE('',#18906,#18905,#1520,.F.); -#14801=EDGE_CURVE('',#18906,#18907,#22360,.T.); -#14802=EDGE_CURVE('',#18907,#18908,#1521,.F.); -#14803=EDGE_CURVE('',#18908,#18909,#22361,.T.); -#14804=EDGE_CURVE('',#18909,#18910,#22362,.T.); -#14805=EDGE_CURVE('',#18910,#18911,#22363,.T.); -#14806=EDGE_CURVE('',#18911,#18912,#1522,.F.); -#14807=EDGE_CURVE('',#18912,#18913,#22364,.T.); -#14808=EDGE_CURVE('',#18914,#18913,#1523,.F.); -#14809=EDGE_CURVE('',#18914,#18915,#22365,.T.); -#14810=EDGE_CURVE('',#18915,#18916,#1524,.F.); -#14811=EDGE_CURVE('',#18917,#18916,#22366,.T.); -#14812=EDGE_CURVE('',#18917,#18918,#1525,.F.); -#14813=EDGE_CURVE('',#18918,#18919,#22367,.T.); -#14814=EDGE_CURVE('',#18920,#18919,#1526,.F.); -#14815=EDGE_CURVE('',#18920,#18921,#22368,.T.); -#14816=EDGE_CURVE('',#18921,#18922,#1527,.F.); -#14817=EDGE_CURVE('',#18922,#18923,#22369,.T.); -#14818=EDGE_CURVE('',#18923,#18924,#22370,.T.); -#14819=EDGE_CURVE('',#18924,#18925,#22371,.T.); -#14820=EDGE_CURVE('',#18925,#18926,#1528,.F.); -#14821=EDGE_CURVE('',#18926,#18927,#22372,.T.); -#14822=EDGE_CURVE('',#18928,#18927,#1529,.F.); -#14823=EDGE_CURVE('',#18928,#18929,#22373,.T.); -#14824=EDGE_CURVE('',#18929,#18930,#1530,.F.); -#14825=EDGE_CURVE('',#18931,#18930,#22374,.T.); -#14826=EDGE_CURVE('',#18931,#18932,#1531,.F.); -#14827=EDGE_CURVE('',#18932,#18933,#22375,.T.); -#14828=EDGE_CURVE('',#18934,#18933,#1532,.F.); -#14829=EDGE_CURVE('',#18934,#18935,#22376,.T.); -#14830=EDGE_CURVE('',#18935,#18936,#1533,.F.); -#14831=EDGE_CURVE('',#18936,#18937,#22377,.T.); -#14832=EDGE_CURVE('',#18937,#18938,#22378,.T.); -#14833=EDGE_CURVE('',#18938,#18939,#22379,.T.); -#14834=EDGE_CURVE('',#18939,#18940,#1534,.F.); -#14835=EDGE_CURVE('',#18940,#18941,#22380,.T.); -#14836=EDGE_CURVE('',#18942,#18941,#1535,.F.); -#14837=EDGE_CURVE('',#18942,#18943,#22381,.T.); -#14838=EDGE_CURVE('',#18943,#18944,#1536,.F.); -#14839=EDGE_CURVE('',#18945,#18944,#22382,.T.); -#14840=EDGE_CURVE('',#18945,#18946,#1537,.F.); -#14841=EDGE_CURVE('',#18946,#18947,#22383,.T.); -#14842=EDGE_CURVE('',#18948,#18947,#1538,.F.); -#14843=EDGE_CURVE('',#18948,#18949,#22384,.T.); -#14844=EDGE_CURVE('',#18949,#18950,#1539,.F.); -#14845=EDGE_CURVE('',#18950,#18951,#22385,.T.); -#14846=EDGE_CURVE('',#18951,#18952,#22386,.T.); -#14847=EDGE_CURVE('',#18952,#18953,#22387,.T.); -#14848=EDGE_CURVE('',#18953,#18954,#1540,.F.); -#14849=EDGE_CURVE('',#18954,#18955,#22388,.T.); -#14850=EDGE_CURVE('',#18956,#18955,#1541,.F.); -#14851=EDGE_CURVE('',#18956,#18957,#22389,.T.); -#14852=EDGE_CURVE('',#18957,#18958,#1542,.F.); -#14853=EDGE_CURVE('',#18959,#18958,#22390,.T.); -#14854=EDGE_CURVE('',#18959,#18960,#1543,.F.); -#14855=EDGE_CURVE('',#18960,#18961,#22391,.T.); -#14856=EDGE_CURVE('',#18962,#18961,#1544,.F.); -#14857=EDGE_CURVE('',#18962,#18963,#22392,.T.); -#14858=EDGE_CURVE('',#18963,#18964,#1545,.F.); -#14859=EDGE_CURVE('',#18964,#18965,#22393,.T.); -#14860=EDGE_CURVE('',#18965,#18966,#22394,.T.); -#14861=EDGE_CURVE('',#18966,#18967,#22395,.T.); -#14862=EDGE_CURVE('',#18967,#18968,#1546,.F.); -#14863=EDGE_CURVE('',#18968,#18969,#22396,.T.); -#14864=EDGE_CURVE('',#18970,#18969,#1547,.F.); -#14865=EDGE_CURVE('',#18970,#18971,#22397,.T.); -#14866=EDGE_CURVE('',#18971,#18972,#1548,.F.); -#14867=EDGE_CURVE('',#18973,#18972,#22398,.T.); -#14868=EDGE_CURVE('',#18973,#18974,#1549,.F.); -#14869=EDGE_CURVE('',#18974,#18975,#22399,.T.); -#14870=EDGE_CURVE('',#18976,#18975,#1550,.F.); -#14871=EDGE_CURVE('',#18976,#18977,#22400,.T.); -#14872=EDGE_CURVE('',#18977,#18978,#1551,.F.); -#14873=EDGE_CURVE('',#18978,#18979,#22401,.T.); -#14874=EDGE_CURVE('',#18979,#18980,#22402,.T.); -#14875=EDGE_CURVE('',#18980,#18981,#22403,.T.); -#14876=EDGE_CURVE('',#18981,#18982,#1552,.F.); -#14877=EDGE_CURVE('',#18982,#18983,#22404,.T.); -#14878=EDGE_CURVE('',#18984,#18983,#1553,.F.); -#14879=EDGE_CURVE('',#18984,#18985,#22405,.T.); -#14880=EDGE_CURVE('',#18985,#18986,#1554,.F.); -#14881=EDGE_CURVE('',#18987,#18986,#22406,.T.); -#14882=EDGE_CURVE('',#18987,#18988,#1555,.F.); -#14883=EDGE_CURVE('',#18988,#18989,#22407,.T.); -#14884=EDGE_CURVE('',#18990,#18989,#1556,.F.); -#14885=EDGE_CURVE('',#18990,#18991,#22408,.T.); -#14886=EDGE_CURVE('',#18991,#18992,#1557,.F.); -#14887=EDGE_CURVE('',#18992,#18993,#22409,.T.); -#14888=EDGE_CURVE('',#18993,#18994,#22410,.T.); -#14889=EDGE_CURVE('',#18994,#18995,#22411,.T.); -#14890=EDGE_CURVE('',#18995,#18996,#1558,.F.); -#14891=EDGE_CURVE('',#18996,#18997,#22412,.T.); -#14892=EDGE_CURVE('',#18998,#18997,#1559,.F.); -#14893=EDGE_CURVE('',#18998,#18999,#22413,.T.); -#14894=EDGE_CURVE('',#18999,#19000,#1560,.F.); -#14895=EDGE_CURVE('',#19001,#19000,#22414,.T.); -#14896=EDGE_CURVE('',#19001,#19002,#1561,.F.); -#14897=EDGE_CURVE('',#19002,#19003,#22415,.T.); -#14898=EDGE_CURVE('',#19004,#19003,#1562,.F.); -#14899=EDGE_CURVE('',#19004,#19005,#22416,.T.); -#14900=EDGE_CURVE('',#19005,#19006,#1563,.F.); -#14901=EDGE_CURVE('',#19007,#19006,#22417,.T.); -#14902=EDGE_CURVE('',#19007,#19008,#22418,.T.); -#14903=EDGE_CURVE('',#19008,#18726,#22419,.T.); -#14904=EDGE_CURVE('',#19009,#19010,#22420,.T.); -#14905=EDGE_CURVE('',#19011,#19009,#22421,.T.); -#14906=EDGE_CURVE('',#19012,#19011,#22422,.T.); -#14907=EDGE_CURVE('',#19013,#19012,#22423,.T.); -#14908=EDGE_CURVE('',#19013,#19014,#1564,.F.); -#14909=EDGE_CURVE('',#19014,#19015,#22424,.T.); -#14910=EDGE_CURVE('',#19016,#19015,#1565,.F.); -#14911=EDGE_CURVE('',#19016,#19017,#22425,.T.); -#14912=EDGE_CURVE('',#19017,#19018,#1566,.F.); -#14913=EDGE_CURVE('',#19018,#19019,#22426,.T.); -#14914=EDGE_CURVE('',#19019,#19020,#1567,.F.); -#14915=EDGE_CURVE('',#19020,#19021,#22427,.T.); -#14916=EDGE_CURVE('',#19022,#19021,#1568,.F.); -#14917=EDGE_CURVE('',#19022,#19023,#22428,.T.); -#14918=EDGE_CURVE('',#19023,#19024,#1569,.F.); -#14919=EDGE_CURVE('',#19024,#19025,#22429,.T.); -#14920=EDGE_CURVE('',#19025,#19026,#22430,.T.); -#14921=EDGE_CURVE('',#19026,#19027,#22431,.T.); -#14922=EDGE_CURVE('',#19027,#19028,#1570,.F.); -#14923=EDGE_CURVE('',#19028,#19029,#22432,.T.); -#14924=EDGE_CURVE('',#19030,#19029,#1571,.F.); -#14925=EDGE_CURVE('',#19030,#19031,#22433,.T.); -#14926=EDGE_CURVE('',#19031,#19032,#1572,.F.); -#14927=EDGE_CURVE('',#19032,#19033,#22434,.T.); -#14928=EDGE_CURVE('',#19033,#19034,#1573,.F.); -#14929=EDGE_CURVE('',#19034,#19035,#22435,.T.); -#14930=EDGE_CURVE('',#19036,#19035,#1574,.F.); -#14931=EDGE_CURVE('',#19036,#19037,#22436,.T.); -#14932=EDGE_CURVE('',#19037,#19038,#1575,.F.); -#14933=EDGE_CURVE('',#19038,#19039,#22437,.T.); -#14934=EDGE_CURVE('',#19039,#19040,#22438,.T.); -#14935=EDGE_CURVE('',#19040,#19041,#22439,.T.); -#14936=EDGE_CURVE('',#19041,#19042,#1576,.F.); -#14937=EDGE_CURVE('',#19042,#19043,#22440,.T.); -#14938=EDGE_CURVE('',#19044,#19043,#1577,.F.); -#14939=EDGE_CURVE('',#19044,#19045,#22441,.T.); -#14940=EDGE_CURVE('',#19045,#19046,#1578,.F.); -#14941=EDGE_CURVE('',#19046,#19047,#22442,.T.); -#14942=EDGE_CURVE('',#19047,#19048,#1579,.F.); -#14943=EDGE_CURVE('',#19048,#19049,#22443,.T.); -#14944=EDGE_CURVE('',#19050,#19049,#1580,.F.); -#14945=EDGE_CURVE('',#19050,#19051,#22444,.T.); -#14946=EDGE_CURVE('',#19051,#19052,#1581,.F.); -#14947=EDGE_CURVE('',#19052,#19053,#22445,.T.); -#14948=EDGE_CURVE('',#19053,#19054,#22446,.T.); -#14949=EDGE_CURVE('',#19054,#19055,#22447,.T.); -#14950=EDGE_CURVE('',#19055,#19056,#1582,.F.); -#14951=EDGE_CURVE('',#19056,#19057,#22448,.T.); -#14952=EDGE_CURVE('',#19058,#19057,#1583,.F.); -#14953=EDGE_CURVE('',#19058,#19059,#22449,.T.); -#14954=EDGE_CURVE('',#19059,#19060,#1584,.F.); -#14955=EDGE_CURVE('',#19060,#19061,#22450,.T.); -#14956=EDGE_CURVE('',#19061,#19062,#1585,.F.); -#14957=EDGE_CURVE('',#19062,#19063,#22451,.T.); -#14958=EDGE_CURVE('',#19064,#19063,#1586,.F.); -#14959=EDGE_CURVE('',#19064,#19065,#22452,.T.); -#14960=EDGE_CURVE('',#19065,#19066,#1587,.F.); -#14961=EDGE_CURVE('',#19066,#19067,#22453,.T.); -#14962=EDGE_CURVE('',#19067,#19068,#22454,.T.); -#14963=EDGE_CURVE('',#19068,#19069,#22455,.T.); -#14964=EDGE_CURVE('',#19069,#19070,#1588,.F.); -#14965=EDGE_CURVE('',#19070,#19071,#22456,.T.); -#14966=EDGE_CURVE('',#19072,#19071,#1589,.F.); -#14967=EDGE_CURVE('',#19072,#19073,#22457,.T.); -#14968=EDGE_CURVE('',#19073,#19074,#1590,.F.); -#14969=EDGE_CURVE('',#19074,#19075,#22458,.T.); -#14970=EDGE_CURVE('',#19075,#19076,#1591,.F.); -#14971=EDGE_CURVE('',#19076,#19077,#22459,.T.); -#14972=EDGE_CURVE('',#19078,#19077,#1592,.F.); -#14973=EDGE_CURVE('',#19078,#19079,#22460,.T.); -#14974=EDGE_CURVE('',#19079,#19080,#1593,.F.); -#14975=EDGE_CURVE('',#19080,#19081,#22461,.T.); -#14976=EDGE_CURVE('',#19081,#19082,#22462,.T.); -#14977=EDGE_CURVE('',#19082,#19083,#22463,.T.); -#14978=EDGE_CURVE('',#19083,#19084,#1594,.F.); -#14979=EDGE_CURVE('',#19084,#19085,#22464,.T.); -#14980=EDGE_CURVE('',#19086,#19085,#1595,.F.); -#14981=EDGE_CURVE('',#19086,#19087,#22465,.T.); -#14982=EDGE_CURVE('',#19087,#19088,#1596,.F.); -#14983=EDGE_CURVE('',#19088,#19089,#22466,.T.); -#14984=EDGE_CURVE('',#19089,#19090,#1597,.F.); -#14985=EDGE_CURVE('',#19090,#19091,#22467,.T.); -#14986=EDGE_CURVE('',#19092,#19091,#1598,.F.); -#14987=EDGE_CURVE('',#19092,#19093,#22468,.T.); -#14988=EDGE_CURVE('',#19093,#19094,#1599,.F.); -#14989=EDGE_CURVE('',#19094,#19095,#22469,.T.); -#14990=EDGE_CURVE('',#19095,#19096,#22470,.T.); -#14991=EDGE_CURVE('',#19096,#19097,#22471,.T.); -#14992=EDGE_CURVE('',#19097,#19098,#1600,.F.); -#14993=EDGE_CURVE('',#19098,#19099,#22472,.T.); -#14994=EDGE_CURVE('',#19100,#19099,#1601,.F.); -#14995=EDGE_CURVE('',#19100,#19101,#22473,.T.); -#14996=EDGE_CURVE('',#19101,#19102,#1602,.F.); -#14997=EDGE_CURVE('',#19102,#19103,#22474,.T.); -#14998=EDGE_CURVE('',#19103,#19104,#1603,.F.); -#14999=EDGE_CURVE('',#19104,#19105,#22475,.T.); -#15000=EDGE_CURVE('',#19106,#19105,#1604,.F.); -#15001=EDGE_CURVE('',#19106,#19107,#22476,.T.); -#15002=EDGE_CURVE('',#19107,#19108,#1605,.F.); -#15003=EDGE_CURVE('',#19108,#19109,#22477,.T.); -#15004=EDGE_CURVE('',#19109,#19110,#22478,.T.); -#15005=EDGE_CURVE('',#19110,#19111,#22479,.T.); -#15006=EDGE_CURVE('',#19111,#19112,#1606,.F.); -#15007=EDGE_CURVE('',#19112,#19113,#22480,.T.); -#15008=EDGE_CURVE('',#19114,#19113,#1607,.F.); -#15009=EDGE_CURVE('',#19114,#19115,#22481,.T.); -#15010=EDGE_CURVE('',#19115,#19116,#1608,.F.); -#15011=EDGE_CURVE('',#19116,#19117,#22482,.T.); -#15012=EDGE_CURVE('',#19117,#19118,#1609,.F.); -#15013=EDGE_CURVE('',#19118,#19119,#22483,.T.); -#15014=EDGE_CURVE('',#19120,#19119,#1610,.F.); -#15015=EDGE_CURVE('',#19120,#19121,#22484,.T.); -#15016=EDGE_CURVE('',#19121,#19122,#1611,.F.); -#15017=EDGE_CURVE('',#19122,#19123,#22485,.T.); -#15018=EDGE_CURVE('',#19123,#19124,#22486,.T.); -#15019=EDGE_CURVE('',#19124,#19125,#22487,.T.); -#15020=EDGE_CURVE('',#19125,#19126,#1612,.F.); -#15021=EDGE_CURVE('',#19126,#19127,#22488,.T.); -#15022=EDGE_CURVE('',#19128,#19127,#1613,.F.); -#15023=EDGE_CURVE('',#19128,#19129,#22489,.T.); -#15024=EDGE_CURVE('',#19129,#19130,#1614,.F.); -#15025=EDGE_CURVE('',#19130,#19131,#22490,.T.); -#15026=EDGE_CURVE('',#19131,#19132,#1615,.F.); -#15027=EDGE_CURVE('',#19132,#19133,#22491,.T.); -#15028=EDGE_CURVE('',#19134,#19133,#1616,.F.); -#15029=EDGE_CURVE('',#19134,#19135,#22492,.T.); -#15030=EDGE_CURVE('',#19135,#19136,#1617,.F.); -#15031=EDGE_CURVE('',#19136,#19137,#22493,.T.); -#15032=EDGE_CURVE('',#19137,#19138,#22494,.T.); -#15033=EDGE_CURVE('',#19138,#19139,#22495,.T.); -#15034=EDGE_CURVE('',#19139,#19140,#1618,.F.); -#15035=EDGE_CURVE('',#19140,#19141,#22496,.T.); -#15036=EDGE_CURVE('',#19142,#19141,#1619,.F.); -#15037=EDGE_CURVE('',#19142,#19143,#22497,.T.); -#15038=EDGE_CURVE('',#19143,#19144,#1620,.F.); -#15039=EDGE_CURVE('',#19144,#19145,#22498,.T.); -#15040=EDGE_CURVE('',#19145,#19146,#1621,.F.); -#15041=EDGE_CURVE('',#19146,#19147,#22499,.T.); -#15042=EDGE_CURVE('',#19148,#19147,#1622,.F.); -#15043=EDGE_CURVE('',#19148,#19149,#22500,.T.); -#15044=EDGE_CURVE('',#19149,#19150,#1623,.F.); -#15045=EDGE_CURVE('',#19150,#19151,#22501,.T.); -#15046=EDGE_CURVE('',#19151,#19152,#22502,.T.); -#15047=EDGE_CURVE('',#19152,#19153,#22503,.T.); -#15048=EDGE_CURVE('',#19153,#19154,#1624,.F.); -#15049=EDGE_CURVE('',#19154,#19155,#22504,.T.); -#15050=EDGE_CURVE('',#19156,#19155,#1625,.F.); -#15051=EDGE_CURVE('',#19156,#19157,#22505,.T.); -#15052=EDGE_CURVE('',#19157,#19158,#1626,.F.); -#15053=EDGE_CURVE('',#19158,#19159,#22506,.T.); -#15054=EDGE_CURVE('',#19159,#19160,#1627,.F.); -#15055=EDGE_CURVE('',#19160,#19161,#22507,.T.); -#15056=EDGE_CURVE('',#19162,#19161,#1628,.F.); -#15057=EDGE_CURVE('',#19162,#19163,#22508,.T.); -#15058=EDGE_CURVE('',#19163,#19164,#1629,.F.); -#15059=EDGE_CURVE('',#19164,#19165,#22509,.T.); -#15060=EDGE_CURVE('',#19165,#19166,#22510,.T.); -#15061=EDGE_CURVE('',#19166,#19167,#22511,.T.); -#15062=EDGE_CURVE('',#19167,#19168,#1630,.F.); -#15063=EDGE_CURVE('',#19168,#19169,#22512,.T.); -#15064=EDGE_CURVE('',#19170,#19169,#1631,.F.); -#15065=EDGE_CURVE('',#19170,#19171,#22513,.T.); -#15066=EDGE_CURVE('',#19171,#19172,#1632,.F.); -#15067=EDGE_CURVE('',#19172,#19173,#22514,.T.); -#15068=EDGE_CURVE('',#19173,#19174,#1633,.F.); -#15069=EDGE_CURVE('',#19174,#19175,#22515,.T.); -#15070=EDGE_CURVE('',#19176,#19175,#1634,.F.); -#15071=EDGE_CURVE('',#19176,#19177,#22516,.T.); -#15072=EDGE_CURVE('',#19177,#19178,#1635,.F.); -#15073=EDGE_CURVE('',#19178,#19179,#22517,.T.); -#15074=EDGE_CURVE('',#19179,#19180,#22518,.T.); -#15075=EDGE_CURVE('',#19180,#19181,#22519,.T.); -#15076=EDGE_CURVE('',#19181,#19182,#1636,.F.); -#15077=EDGE_CURVE('',#19182,#19183,#22520,.T.); -#15078=EDGE_CURVE('',#19184,#19183,#1637,.F.); -#15079=EDGE_CURVE('',#19184,#19185,#22521,.T.); -#15080=EDGE_CURVE('',#19185,#19186,#1638,.F.); -#15081=EDGE_CURVE('',#19186,#19187,#22522,.T.); -#15082=EDGE_CURVE('',#19187,#19188,#1639,.F.); -#15083=EDGE_CURVE('',#19188,#19189,#22523,.T.); -#15084=EDGE_CURVE('',#19190,#19189,#1640,.F.); -#15085=EDGE_CURVE('',#19190,#19191,#22524,.T.); -#15086=EDGE_CURVE('',#19191,#19192,#1641,.F.); -#15087=EDGE_CURVE('',#19192,#19193,#22525,.T.); -#15088=EDGE_CURVE('',#19193,#19194,#22526,.T.); -#15089=EDGE_CURVE('',#19194,#19195,#22527,.T.); -#15090=EDGE_CURVE('',#19195,#19196,#1642,.F.); -#15091=EDGE_CURVE('',#19196,#19197,#22528,.T.); -#15092=EDGE_CURVE('',#19198,#19197,#1643,.F.); -#15093=EDGE_CURVE('',#19198,#19199,#22529,.T.); -#15094=EDGE_CURVE('',#19199,#19200,#1644,.F.); -#15095=EDGE_CURVE('',#19200,#19201,#22530,.T.); -#15096=EDGE_CURVE('',#19201,#19202,#1645,.F.); -#15097=EDGE_CURVE('',#19202,#19203,#22531,.T.); -#15098=EDGE_CURVE('',#19204,#19203,#1646,.F.); -#15099=EDGE_CURVE('',#19204,#19205,#22532,.T.); -#15100=EDGE_CURVE('',#19205,#19206,#1647,.F.); -#15101=EDGE_CURVE('',#19206,#19207,#22533,.T.); -#15102=EDGE_CURVE('',#19207,#19208,#22534,.T.); -#15103=EDGE_CURVE('',#19208,#19209,#22535,.T.); -#15104=EDGE_CURVE('',#19209,#19210,#1648,.F.); -#15105=EDGE_CURVE('',#19210,#19211,#22536,.T.); -#15106=EDGE_CURVE('',#19212,#19211,#1649,.F.); -#15107=EDGE_CURVE('',#19212,#19213,#22537,.T.); -#15108=EDGE_CURVE('',#19213,#19214,#1650,.F.); -#15109=EDGE_CURVE('',#19214,#19215,#22538,.T.); -#15110=EDGE_CURVE('',#19215,#19216,#1651,.F.); -#15111=EDGE_CURVE('',#19216,#19217,#22539,.T.); -#15112=EDGE_CURVE('',#19218,#19217,#1652,.F.); -#15113=EDGE_CURVE('',#19218,#19219,#22540,.T.); -#15114=EDGE_CURVE('',#19219,#19220,#1653,.F.); -#15115=EDGE_CURVE('',#19220,#19221,#22541,.T.); -#15116=EDGE_CURVE('',#19221,#19222,#22542,.T.); -#15117=EDGE_CURVE('',#19222,#19223,#22543,.T.); -#15118=EDGE_CURVE('',#19223,#19224,#1654,.F.); -#15119=EDGE_CURVE('',#19224,#19225,#22544,.T.); -#15120=EDGE_CURVE('',#19226,#19225,#1655,.F.); -#15121=EDGE_CURVE('',#19226,#19227,#22545,.T.); -#15122=EDGE_CURVE('',#19227,#19228,#1656,.F.); -#15123=EDGE_CURVE('',#19228,#19229,#22546,.T.); -#15124=EDGE_CURVE('',#19229,#19230,#1657,.F.); -#15125=EDGE_CURVE('',#19230,#19231,#22547,.T.); -#15126=EDGE_CURVE('',#19232,#19231,#1658,.F.); -#15127=EDGE_CURVE('',#19232,#19233,#22548,.T.); -#15128=EDGE_CURVE('',#19233,#19234,#1659,.F.); -#15129=EDGE_CURVE('',#19234,#19235,#22549,.T.); -#15130=EDGE_CURVE('',#19235,#19236,#22550,.T.); -#15131=EDGE_CURVE('',#19236,#19237,#22551,.T.); -#15132=EDGE_CURVE('',#19237,#19238,#1660,.F.); -#15133=EDGE_CURVE('',#19238,#19239,#22552,.T.); -#15134=EDGE_CURVE('',#19240,#19239,#1661,.F.); -#15135=EDGE_CURVE('',#19240,#19241,#22553,.T.); -#15136=EDGE_CURVE('',#19241,#19242,#1662,.F.); -#15137=EDGE_CURVE('',#19242,#19243,#22554,.T.); -#15138=EDGE_CURVE('',#19243,#19244,#1663,.F.); -#15139=EDGE_CURVE('',#19244,#19245,#22555,.T.); -#15140=EDGE_CURVE('',#19246,#19245,#1664,.F.); -#15141=EDGE_CURVE('',#19246,#19247,#22556,.T.); -#15142=EDGE_CURVE('',#19247,#19248,#1665,.F.); -#15143=EDGE_CURVE('',#19248,#19249,#22557,.T.); -#15144=EDGE_CURVE('',#19249,#19250,#22558,.T.); -#15145=EDGE_CURVE('',#19250,#19251,#22559,.T.); -#15146=EDGE_CURVE('',#19251,#19252,#1666,.F.); -#15147=EDGE_CURVE('',#19252,#19253,#22560,.T.); -#15148=EDGE_CURVE('',#19254,#19253,#1667,.F.); -#15149=EDGE_CURVE('',#19254,#19255,#22561,.T.); -#15150=EDGE_CURVE('',#19255,#19256,#1668,.F.); -#15151=EDGE_CURVE('',#19256,#19257,#22562,.T.); -#15152=EDGE_CURVE('',#19257,#19258,#1669,.F.); -#15153=EDGE_CURVE('',#19258,#19259,#22563,.T.); -#15154=EDGE_CURVE('',#19260,#19259,#1670,.F.); -#15155=EDGE_CURVE('',#19260,#19261,#22564,.T.); -#15156=EDGE_CURVE('',#19261,#19262,#1671,.F.); -#15157=EDGE_CURVE('',#19262,#19263,#22565,.T.); -#15158=EDGE_CURVE('',#19263,#19264,#22566,.T.); -#15159=EDGE_CURVE('',#19264,#19265,#22567,.T.); -#15160=EDGE_CURVE('',#19265,#19266,#1672,.F.); -#15161=EDGE_CURVE('',#19266,#19267,#22568,.T.); -#15162=EDGE_CURVE('',#19268,#19267,#1673,.F.); -#15163=EDGE_CURVE('',#19268,#19269,#22569,.T.); -#15164=EDGE_CURVE('',#19269,#19270,#1674,.F.); -#15165=EDGE_CURVE('',#19270,#19271,#22570,.T.); -#15166=EDGE_CURVE('',#19271,#19272,#1675,.F.); -#15167=EDGE_CURVE('',#19272,#19273,#22571,.T.); -#15168=EDGE_CURVE('',#19274,#19273,#1676,.F.); -#15169=EDGE_CURVE('',#19274,#19275,#22572,.T.); -#15170=EDGE_CURVE('',#19275,#19276,#1677,.F.); -#15171=EDGE_CURVE('',#19276,#19277,#22573,.T.); -#15172=EDGE_CURVE('',#19277,#19278,#22574,.T.); -#15173=EDGE_CURVE('',#19278,#19279,#22575,.T.); -#15174=EDGE_CURVE('',#19279,#19280,#1678,.F.); -#15175=EDGE_CURVE('',#19280,#19281,#22576,.T.); -#15176=EDGE_CURVE('',#19282,#19281,#1679,.F.); -#15177=EDGE_CURVE('',#19282,#19283,#22577,.T.); -#15178=EDGE_CURVE('',#19283,#19284,#1680,.F.); -#15179=EDGE_CURVE('',#19284,#19285,#22578,.T.); -#15180=EDGE_CURVE('',#19285,#19286,#1681,.F.); -#15181=EDGE_CURVE('',#19286,#19287,#22579,.T.); -#15182=EDGE_CURVE('',#19288,#19287,#1682,.F.); -#15183=EDGE_CURVE('',#19288,#19289,#22580,.T.); -#15184=EDGE_CURVE('',#19289,#19290,#1683,.F.); -#15185=EDGE_CURVE('',#19290,#19291,#22581,.T.); -#15186=EDGE_CURVE('',#19292,#19291,#22582,.T.); -#15187=EDGE_CURVE('',#19292,#19010,#22583,.T.); -#15188=EDGE_CURVE('',#19010,#18157,#22584,.T.); -#15189=EDGE_CURVE('',#18159,#19292,#22585,.T.); -#15190=EDGE_CURVE('',#18725,#18442,#22586,.T.); -#15191=EDGE_CURVE('',#18724,#18727,#22587,.T.); -#15192=EDGE_CURVE('',#18441,#18726,#22588,.T.); -#15193=EDGE_CURVE('',#19008,#18443,#22589,.T.); -#15194=EDGE_CURVE('',#18158,#19009,#22590,.T.); -#15195=EDGE_CURVE('',#19011,#18440,#22591,.T.); -#15196=EDGE_CURVE('',#19278,#18741,#22592,.T.); -#15197=EDGE_CURVE('',#19277,#18742,#22593,.T.); -#15198=EDGE_CURVE('',#19264,#18755,#22594,.T.); -#15199=EDGE_CURVE('',#19263,#18756,#22595,.T.); -#15200=EDGE_CURVE('',#19250,#18769,#22596,.T.); -#15201=EDGE_CURVE('',#19249,#18770,#22597,.T.); -#15202=EDGE_CURVE('',#19236,#18783,#22598,.T.); -#15203=EDGE_CURVE('',#19235,#18784,#22599,.T.); -#15204=EDGE_CURVE('',#19222,#18797,#22600,.T.); -#15205=EDGE_CURVE('',#19221,#18798,#22601,.T.); -#15206=EDGE_CURVE('',#19208,#18811,#22602,.T.); -#15207=EDGE_CURVE('',#19207,#18812,#22603,.T.); -#15208=EDGE_CURVE('',#19194,#18825,#22604,.T.); -#15209=EDGE_CURVE('',#19193,#18826,#22605,.T.); -#15210=EDGE_CURVE('',#19180,#18839,#22606,.T.); -#15211=EDGE_CURVE('',#19179,#18840,#22607,.T.); -#15212=EDGE_CURVE('',#19166,#18853,#22608,.T.); -#15213=EDGE_CURVE('',#19165,#18854,#22609,.T.); -#15214=EDGE_CURVE('',#19152,#18867,#22610,.T.); -#15215=EDGE_CURVE('',#19151,#18868,#22611,.T.); -#15216=EDGE_CURVE('',#19138,#18881,#22612,.T.); -#15217=EDGE_CURVE('',#19137,#18882,#22613,.T.); -#15218=EDGE_CURVE('',#19124,#18895,#22614,.T.); -#15219=EDGE_CURVE('',#19123,#18896,#22615,.T.); -#15220=EDGE_CURVE('',#19110,#18909,#22616,.T.); -#15221=EDGE_CURVE('',#19109,#18910,#22617,.T.); -#15222=EDGE_CURVE('',#19096,#18923,#22618,.T.); -#15223=EDGE_CURVE('',#19095,#18924,#22619,.T.); -#15224=EDGE_CURVE('',#19082,#18937,#22620,.T.); -#15225=EDGE_CURVE('',#19081,#18938,#22621,.T.); -#15226=EDGE_CURVE('',#19068,#18951,#22622,.T.); -#15227=EDGE_CURVE('',#19067,#18952,#22623,.T.); -#15228=EDGE_CURVE('',#19054,#18965,#22624,.T.); -#15229=EDGE_CURVE('',#19053,#18966,#22625,.T.); -#15230=EDGE_CURVE('',#19040,#18979,#22626,.T.); -#15231=EDGE_CURVE('',#19039,#18980,#22627,.T.); -#15232=EDGE_CURVE('',#19026,#18993,#22628,.T.); -#15233=EDGE_CURVE('',#19025,#18994,#22629,.T.); -#15234=EDGE_CURVE('',#18457,#18426,#22630,.T.); -#15235=EDGE_CURVE('',#18458,#18425,#22631,.T.); -#15236=EDGE_CURVE('',#18471,#18412,#22632,.T.); -#15237=EDGE_CURVE('',#18472,#18411,#22633,.T.); -#15238=EDGE_CURVE('',#18485,#18398,#22634,.T.); -#15239=EDGE_CURVE('',#18486,#18397,#22635,.T.); -#15240=EDGE_CURVE('',#18499,#18384,#22636,.T.); -#15241=EDGE_CURVE('',#18500,#18383,#22637,.T.); -#15242=EDGE_CURVE('',#18513,#18370,#22638,.T.); -#15243=EDGE_CURVE('',#18514,#18369,#22639,.T.); -#15244=EDGE_CURVE('',#18527,#18356,#22640,.T.); -#15245=EDGE_CURVE('',#18528,#18355,#22641,.T.); -#15246=EDGE_CURVE('',#18541,#18342,#22642,.T.); -#15247=EDGE_CURVE('',#18542,#18341,#22643,.T.); -#15248=EDGE_CURVE('',#18555,#18328,#22644,.T.); -#15249=EDGE_CURVE('',#18556,#18327,#22645,.T.); -#15250=EDGE_CURVE('',#18569,#18314,#22646,.T.); -#15251=EDGE_CURVE('',#18570,#18313,#22647,.T.); -#15252=EDGE_CURVE('',#18583,#18300,#22648,.T.); -#15253=EDGE_CURVE('',#18584,#18299,#22649,.T.); -#15254=EDGE_CURVE('',#18597,#18286,#22650,.T.); -#15255=EDGE_CURVE('',#18598,#18285,#22651,.T.); -#15256=EDGE_CURVE('',#18611,#18272,#22652,.T.); -#15257=EDGE_CURVE('',#18612,#18271,#22653,.T.); -#15258=EDGE_CURVE('',#18625,#18258,#22654,.T.); -#15259=EDGE_CURVE('',#18626,#18257,#22655,.T.); -#15260=EDGE_CURVE('',#18639,#18244,#22656,.T.); -#15261=EDGE_CURVE('',#18640,#18243,#22657,.T.); -#15262=EDGE_CURVE('',#18653,#18230,#22658,.T.); -#15263=EDGE_CURVE('',#18654,#18229,#22659,.T.); -#15264=EDGE_CURVE('',#18667,#18216,#22660,.T.); -#15265=EDGE_CURVE('',#18668,#18215,#22661,.T.); -#15266=EDGE_CURVE('',#18681,#18202,#22662,.T.); -#15267=EDGE_CURVE('',#18682,#18201,#22663,.T.); -#15268=EDGE_CURVE('',#18695,#18188,#22664,.T.); -#15269=EDGE_CURVE('',#18696,#18187,#22665,.T.); -#15270=EDGE_CURVE('',#18709,#18174,#22666,.T.); -#15271=EDGE_CURVE('',#18710,#18173,#22667,.T.); -#15272=EDGE_CURVE('',#18439,#18444,#22668,.T.); -#15273=EDGE_CURVE('',#18438,#18445,#22669,.F.); -#15274=EDGE_CURVE('',#18160,#18723,#22670,.T.); -#15275=EDGE_CURVE('',#18161,#18722,#22671,.F.); -#15276=EDGE_CURVE('',#19293,#18166,#98,.T.); -#15277=EDGE_CURVE('',#19293,#19294,#1684,.T.); -#15278=EDGE_CURVE('',#19294,#19295,#99,.T.); -#15279=EDGE_CURVE('',#19296,#19295,#22672,.T.); -#15280=EDGE_CURVE('',#19296,#19297,#100,.T.); -#15281=EDGE_CURVE('',#19297,#19298,#1685,.T.); -#15282=EDGE_CURVE('',#18167,#19298,#101,.T.); -#15283=EDGE_CURVE('',#19299,#18180,#102,.T.); -#15284=EDGE_CURVE('',#19299,#19300,#1686,.T.); -#15285=EDGE_CURVE('',#19300,#19301,#103,.T.); -#15286=EDGE_CURVE('',#19302,#19301,#22673,.T.); -#15287=EDGE_CURVE('',#19302,#19303,#104,.T.); -#15288=EDGE_CURVE('',#19303,#19304,#1687,.T.); -#15289=EDGE_CURVE('',#18181,#19304,#105,.T.); -#15290=EDGE_CURVE('',#19305,#18194,#106,.T.); -#15291=EDGE_CURVE('',#19305,#19306,#1688,.T.); -#15292=EDGE_CURVE('',#19306,#19307,#107,.T.); -#15293=EDGE_CURVE('',#19308,#19307,#22674,.T.); -#15294=EDGE_CURVE('',#19308,#19309,#108,.T.); -#15295=EDGE_CURVE('',#19309,#19310,#1689,.T.); -#15296=EDGE_CURVE('',#18195,#19310,#109,.T.); -#15297=EDGE_CURVE('',#19311,#18208,#110,.T.); -#15298=EDGE_CURVE('',#19311,#19312,#1690,.T.); -#15299=EDGE_CURVE('',#19312,#19313,#111,.T.); -#15300=EDGE_CURVE('',#19314,#19313,#22675,.T.); -#15301=EDGE_CURVE('',#19314,#19315,#112,.T.); -#15302=EDGE_CURVE('',#19315,#19316,#1691,.T.); -#15303=EDGE_CURVE('',#18209,#19316,#113,.T.); -#15304=EDGE_CURVE('',#19317,#18222,#114,.T.); -#15305=EDGE_CURVE('',#19317,#19318,#1692,.T.); -#15306=EDGE_CURVE('',#19318,#19319,#115,.T.); -#15307=EDGE_CURVE('',#19320,#19319,#22676,.T.); -#15308=EDGE_CURVE('',#19320,#19321,#116,.T.); -#15309=EDGE_CURVE('',#19321,#19322,#1693,.T.); -#15310=EDGE_CURVE('',#18223,#19322,#117,.T.); -#15311=EDGE_CURVE('',#19323,#18236,#118,.T.); -#15312=EDGE_CURVE('',#19323,#19324,#1694,.T.); -#15313=EDGE_CURVE('',#19324,#19325,#119,.T.); -#15314=EDGE_CURVE('',#19326,#19325,#22677,.T.); -#15315=EDGE_CURVE('',#19326,#19327,#120,.T.); -#15316=EDGE_CURVE('',#19327,#19328,#1695,.T.); -#15317=EDGE_CURVE('',#18237,#19328,#121,.T.); -#15318=EDGE_CURVE('',#19329,#18250,#122,.T.); -#15319=EDGE_CURVE('',#19329,#19330,#1696,.T.); -#15320=EDGE_CURVE('',#19330,#19331,#123,.T.); -#15321=EDGE_CURVE('',#19332,#19331,#22678,.T.); -#15322=EDGE_CURVE('',#19332,#19333,#124,.T.); -#15323=EDGE_CURVE('',#19333,#19334,#1697,.T.); -#15324=EDGE_CURVE('',#18251,#19334,#125,.T.); -#15325=EDGE_CURVE('',#19335,#18264,#126,.T.); -#15326=EDGE_CURVE('',#19335,#19336,#1698,.T.); -#15327=EDGE_CURVE('',#19336,#19337,#127,.T.); -#15328=EDGE_CURVE('',#19338,#19337,#22679,.T.); -#15329=EDGE_CURVE('',#19338,#19339,#128,.T.); -#15330=EDGE_CURVE('',#19339,#19340,#1699,.T.); -#15331=EDGE_CURVE('',#18265,#19340,#129,.T.); -#15332=EDGE_CURVE('',#19341,#18278,#130,.T.); -#15333=EDGE_CURVE('',#19341,#19342,#1700,.T.); -#15334=EDGE_CURVE('',#19342,#19343,#131,.T.); -#15335=EDGE_CURVE('',#19344,#19343,#22680,.T.); -#15336=EDGE_CURVE('',#19344,#19345,#132,.T.); -#15337=EDGE_CURVE('',#19345,#19346,#1701,.T.); -#15338=EDGE_CURVE('',#18279,#19346,#133,.T.); -#15339=EDGE_CURVE('',#19347,#18292,#134,.T.); -#15340=EDGE_CURVE('',#19347,#19348,#1702,.T.); -#15341=EDGE_CURVE('',#19348,#19349,#135,.T.); -#15342=EDGE_CURVE('',#19350,#19349,#22681,.T.); -#15343=EDGE_CURVE('',#19350,#19351,#136,.T.); -#15344=EDGE_CURVE('',#19351,#19352,#1703,.T.); -#15345=EDGE_CURVE('',#18293,#19352,#137,.T.); -#15346=EDGE_CURVE('',#19353,#18306,#138,.T.); -#15347=EDGE_CURVE('',#19353,#19354,#1704,.T.); -#15348=EDGE_CURVE('',#19354,#19355,#139,.T.); -#15349=EDGE_CURVE('',#19356,#19355,#22682,.T.); -#15350=EDGE_CURVE('',#19356,#19357,#140,.T.); -#15351=EDGE_CURVE('',#19357,#19358,#1705,.T.); -#15352=EDGE_CURVE('',#18307,#19358,#141,.T.); -#15353=EDGE_CURVE('',#19359,#18320,#142,.T.); -#15354=EDGE_CURVE('',#19359,#19360,#1706,.T.); -#15355=EDGE_CURVE('',#19360,#19361,#143,.T.); -#15356=EDGE_CURVE('',#19362,#19361,#22683,.T.); -#15357=EDGE_CURVE('',#19362,#19363,#144,.T.); -#15358=EDGE_CURVE('',#19363,#19364,#1707,.T.); -#15359=EDGE_CURVE('',#18321,#19364,#145,.T.); -#15360=EDGE_CURVE('',#19365,#18334,#146,.T.); -#15361=EDGE_CURVE('',#19365,#19366,#1708,.T.); -#15362=EDGE_CURVE('',#19366,#19367,#147,.T.); -#15363=EDGE_CURVE('',#19368,#19367,#22684,.T.); -#15364=EDGE_CURVE('',#19368,#19369,#148,.T.); -#15365=EDGE_CURVE('',#19369,#19370,#1709,.T.); -#15366=EDGE_CURVE('',#18335,#19370,#149,.T.); -#15367=EDGE_CURVE('',#19371,#18348,#150,.T.); -#15368=EDGE_CURVE('',#19371,#19372,#1710,.T.); -#15369=EDGE_CURVE('',#19372,#19373,#151,.T.); -#15370=EDGE_CURVE('',#19374,#19373,#22685,.T.); -#15371=EDGE_CURVE('',#19374,#19375,#152,.T.); -#15372=EDGE_CURVE('',#19375,#19376,#1711,.T.); -#15373=EDGE_CURVE('',#18349,#19376,#153,.T.); -#15374=EDGE_CURVE('',#19377,#18362,#154,.T.); -#15375=EDGE_CURVE('',#19377,#19378,#1712,.T.); -#15376=EDGE_CURVE('',#19378,#19379,#155,.T.); -#15377=EDGE_CURVE('',#19380,#19379,#22686,.T.); -#15378=EDGE_CURVE('',#19380,#19381,#156,.T.); -#15379=EDGE_CURVE('',#19381,#19382,#1713,.T.); -#15380=EDGE_CURVE('',#18363,#19382,#157,.T.); -#15381=EDGE_CURVE('',#19383,#18376,#158,.T.); -#15382=EDGE_CURVE('',#19383,#19384,#1714,.T.); -#15383=EDGE_CURVE('',#19384,#19385,#159,.T.); -#15384=EDGE_CURVE('',#19386,#19385,#22687,.T.); -#15385=EDGE_CURVE('',#19386,#19387,#160,.T.); -#15386=EDGE_CURVE('',#19387,#19388,#1715,.T.); -#15387=EDGE_CURVE('',#18377,#19388,#161,.T.); -#15388=EDGE_CURVE('',#19389,#18390,#162,.T.); -#15389=EDGE_CURVE('',#19389,#19390,#1716,.T.); -#15390=EDGE_CURVE('',#19390,#19391,#163,.T.); -#15391=EDGE_CURVE('',#19392,#19391,#22688,.T.); -#15392=EDGE_CURVE('',#19392,#19393,#164,.T.); -#15393=EDGE_CURVE('',#19393,#19394,#1717,.T.); -#15394=EDGE_CURVE('',#18391,#19394,#165,.T.); -#15395=EDGE_CURVE('',#19395,#18404,#166,.T.); -#15396=EDGE_CURVE('',#19395,#19396,#1718,.T.); -#15397=EDGE_CURVE('',#19396,#19397,#167,.T.); -#15398=EDGE_CURVE('',#19398,#19397,#22689,.T.); -#15399=EDGE_CURVE('',#19398,#19399,#168,.T.); -#15400=EDGE_CURVE('',#19399,#19400,#1719,.T.); -#15401=EDGE_CURVE('',#18405,#19400,#169,.T.); -#15402=EDGE_CURVE('',#19401,#18418,#170,.T.); -#15403=EDGE_CURVE('',#19401,#19402,#1720,.T.); -#15404=EDGE_CURVE('',#19402,#19403,#171,.T.); -#15405=EDGE_CURVE('',#19404,#19403,#22690,.T.); -#15406=EDGE_CURVE('',#19404,#19405,#172,.T.); -#15407=EDGE_CURVE('',#19405,#19406,#1721,.T.); -#15408=EDGE_CURVE('',#18419,#19406,#173,.T.); -#15409=EDGE_CURVE('',#19407,#18432,#174,.T.); -#15410=EDGE_CURVE('',#19407,#19408,#1722,.T.); -#15411=EDGE_CURVE('',#19408,#19409,#175,.T.); -#15412=EDGE_CURVE('',#19410,#19409,#22691,.T.); -#15413=EDGE_CURVE('',#19410,#19411,#176,.T.); -#15414=EDGE_CURVE('',#19411,#19412,#1723,.T.); -#15415=EDGE_CURVE('',#18433,#19412,#177,.T.); -#15416=EDGE_CURVE('',#19295,#19413,#18,.F.); -#15417=EDGE_CURVE('',#19413,#19414,#22692,.T.); -#15418=EDGE_CURVE('',#19415,#19414,#22693,.T.); -#15419=EDGE_CURVE('',#19415,#19416,#22694,.T.); -#15420=EDGE_CURVE('',#19416,#19296,#19,.F.); -#15421=EDGE_CURVE('',#19301,#19417,#20,.F.); -#15422=EDGE_CURVE('',#19417,#19418,#22695,.T.); -#15423=EDGE_CURVE('',#19419,#19418,#22696,.T.); -#15424=EDGE_CURVE('',#19419,#19420,#22697,.T.); -#15425=EDGE_CURVE('',#19420,#19302,#21,.F.); -#15426=EDGE_CURVE('',#19307,#19421,#22,.F.); -#15427=EDGE_CURVE('',#19421,#19422,#22698,.T.); -#15428=EDGE_CURVE('',#19423,#19422,#22699,.T.); -#15429=EDGE_CURVE('',#19423,#19424,#22700,.T.); -#15430=EDGE_CURVE('',#19424,#19308,#23,.F.); -#15431=EDGE_CURVE('',#19313,#19425,#24,.F.); -#15432=EDGE_CURVE('',#19425,#19426,#22701,.T.); -#15433=EDGE_CURVE('',#19427,#19426,#22702,.T.); -#15434=EDGE_CURVE('',#19427,#19428,#22703,.T.); -#15435=EDGE_CURVE('',#19428,#19314,#25,.F.); -#15436=EDGE_CURVE('',#19319,#19429,#26,.F.); -#15437=EDGE_CURVE('',#19429,#19430,#22704,.T.); -#15438=EDGE_CURVE('',#19431,#19430,#22705,.T.); -#15439=EDGE_CURVE('',#19431,#19432,#22706,.T.); -#15440=EDGE_CURVE('',#19432,#19320,#27,.F.); -#15441=EDGE_CURVE('',#19325,#19433,#28,.F.); -#15442=EDGE_CURVE('',#19433,#19434,#22707,.T.); -#15443=EDGE_CURVE('',#19435,#19434,#22708,.T.); -#15444=EDGE_CURVE('',#19435,#19436,#22709,.T.); -#15445=EDGE_CURVE('',#19436,#19326,#29,.F.); -#15446=EDGE_CURVE('',#19331,#19437,#30,.F.); -#15447=EDGE_CURVE('',#19437,#19438,#22710,.T.); -#15448=EDGE_CURVE('',#19439,#19438,#22711,.T.); -#15449=EDGE_CURVE('',#19439,#19440,#22712,.T.); -#15450=EDGE_CURVE('',#19440,#19332,#31,.F.); -#15451=EDGE_CURVE('',#19337,#19441,#32,.F.); -#15452=EDGE_CURVE('',#19441,#19442,#22713,.T.); -#15453=EDGE_CURVE('',#19443,#19442,#22714,.T.); -#15454=EDGE_CURVE('',#19443,#19444,#22715,.T.); -#15455=EDGE_CURVE('',#19444,#19338,#33,.F.); -#15456=EDGE_CURVE('',#19343,#19445,#34,.F.); -#15457=EDGE_CURVE('',#19445,#19446,#22716,.T.); -#15458=EDGE_CURVE('',#19447,#19446,#22717,.T.); -#15459=EDGE_CURVE('',#19447,#19448,#22718,.T.); -#15460=EDGE_CURVE('',#19448,#19344,#35,.F.); -#15461=EDGE_CURVE('',#19349,#19449,#36,.F.); -#15462=EDGE_CURVE('',#19449,#19450,#22719,.T.); -#15463=EDGE_CURVE('',#19451,#19450,#22720,.T.); -#15464=EDGE_CURVE('',#19451,#19452,#22721,.T.); -#15465=EDGE_CURVE('',#19452,#19350,#37,.F.); -#15466=EDGE_CURVE('',#19355,#19453,#38,.F.); -#15467=EDGE_CURVE('',#19453,#19454,#22722,.T.); -#15468=EDGE_CURVE('',#19455,#19454,#22723,.T.); -#15469=EDGE_CURVE('',#19455,#19456,#22724,.T.); -#15470=EDGE_CURVE('',#19456,#19356,#39,.F.); -#15471=EDGE_CURVE('',#19361,#19457,#40,.F.); -#15472=EDGE_CURVE('',#19457,#19458,#22725,.T.); -#15473=EDGE_CURVE('',#19459,#19458,#22726,.T.); -#15474=EDGE_CURVE('',#19459,#19460,#22727,.T.); -#15475=EDGE_CURVE('',#19460,#19362,#41,.F.); -#15476=EDGE_CURVE('',#19367,#19461,#42,.F.); -#15477=EDGE_CURVE('',#19461,#19462,#22728,.T.); -#15478=EDGE_CURVE('',#19463,#19462,#22729,.T.); -#15479=EDGE_CURVE('',#19463,#19464,#22730,.T.); -#15480=EDGE_CURVE('',#19464,#19368,#43,.F.); -#15481=EDGE_CURVE('',#19373,#19465,#44,.F.); -#15482=EDGE_CURVE('',#19465,#19466,#22731,.T.); -#15483=EDGE_CURVE('',#19467,#19466,#22732,.T.); -#15484=EDGE_CURVE('',#19467,#19468,#22733,.T.); -#15485=EDGE_CURVE('',#19468,#19374,#45,.F.); -#15486=EDGE_CURVE('',#19379,#19469,#46,.F.); -#15487=EDGE_CURVE('',#19469,#19470,#22734,.T.); -#15488=EDGE_CURVE('',#19471,#19470,#22735,.T.); -#15489=EDGE_CURVE('',#19471,#19472,#22736,.T.); -#15490=EDGE_CURVE('',#19472,#19380,#47,.F.); -#15491=EDGE_CURVE('',#19385,#19473,#48,.F.); -#15492=EDGE_CURVE('',#19473,#19474,#22737,.T.); -#15493=EDGE_CURVE('',#19475,#19474,#22738,.T.); -#15494=EDGE_CURVE('',#19475,#19476,#22739,.T.); -#15495=EDGE_CURVE('',#19476,#19386,#49,.F.); -#15496=EDGE_CURVE('',#19391,#19477,#50,.F.); -#15497=EDGE_CURVE('',#19477,#19478,#22740,.T.); -#15498=EDGE_CURVE('',#19479,#19478,#22741,.T.); -#15499=EDGE_CURVE('',#19479,#19480,#22742,.T.); -#15500=EDGE_CURVE('',#19480,#19392,#51,.F.); -#15501=EDGE_CURVE('',#19397,#19481,#52,.F.); -#15502=EDGE_CURVE('',#19481,#19482,#22743,.T.); -#15503=EDGE_CURVE('',#19483,#19482,#22744,.T.); -#15504=EDGE_CURVE('',#19483,#19484,#22745,.T.); -#15505=EDGE_CURVE('',#19484,#19398,#53,.F.); -#15506=EDGE_CURVE('',#19403,#19485,#54,.F.); -#15507=EDGE_CURVE('',#19485,#19486,#22746,.T.); -#15508=EDGE_CURVE('',#19487,#19486,#22747,.T.); -#15509=EDGE_CURVE('',#19487,#19488,#22748,.T.); -#15510=EDGE_CURVE('',#19488,#19404,#55,.F.); -#15511=EDGE_CURVE('',#19489,#19414,#1724,.T.); -#15512=EDGE_CURVE('',#19489,#18717,#178,.T.); -#15513=EDGE_CURVE('',#18716,#19490,#179,.T.); -#15514=EDGE_CURVE('',#19415,#19490,#1725,.T.); -#15515=EDGE_CURVE('',#19491,#19418,#1726,.T.); -#15516=EDGE_CURVE('',#19491,#18703,#180,.T.); -#15517=EDGE_CURVE('',#18702,#19492,#181,.T.); -#15518=EDGE_CURVE('',#19419,#19492,#1727,.T.); -#15519=EDGE_CURVE('',#19493,#19422,#1728,.T.); -#15520=EDGE_CURVE('',#19493,#18689,#182,.T.); -#15521=EDGE_CURVE('',#18688,#19494,#183,.T.); -#15522=EDGE_CURVE('',#19423,#19494,#1729,.T.); -#15523=EDGE_CURVE('',#19495,#19426,#1730,.T.); -#15524=EDGE_CURVE('',#19495,#18675,#184,.T.); -#15525=EDGE_CURVE('',#18674,#19496,#185,.T.); -#15526=EDGE_CURVE('',#19427,#19496,#1731,.T.); -#15527=EDGE_CURVE('',#19497,#19430,#1732,.T.); -#15528=EDGE_CURVE('',#19497,#18661,#186,.T.); -#15529=EDGE_CURVE('',#18660,#19498,#187,.T.); -#15530=EDGE_CURVE('',#19431,#19498,#1733,.T.); -#15531=EDGE_CURVE('',#19499,#19434,#1734,.T.); -#15532=EDGE_CURVE('',#19499,#18647,#188,.T.); -#15533=EDGE_CURVE('',#18646,#19500,#189,.T.); -#15534=EDGE_CURVE('',#19435,#19500,#1735,.T.); -#15535=EDGE_CURVE('',#19501,#19438,#1736,.T.); -#15536=EDGE_CURVE('',#19501,#18633,#190,.T.); -#15537=EDGE_CURVE('',#18632,#19502,#191,.T.); -#15538=EDGE_CURVE('',#19439,#19502,#1737,.T.); -#15539=EDGE_CURVE('',#19503,#19442,#1738,.T.); -#15540=EDGE_CURVE('',#19503,#18619,#192,.T.); -#15541=EDGE_CURVE('',#18618,#19504,#193,.T.); -#15542=EDGE_CURVE('',#19443,#19504,#1739,.T.); -#15543=EDGE_CURVE('',#19505,#19446,#1740,.T.); -#15544=EDGE_CURVE('',#19505,#18605,#194,.T.); -#15545=EDGE_CURVE('',#18604,#19506,#195,.T.); -#15546=EDGE_CURVE('',#19447,#19506,#1741,.T.); -#15547=EDGE_CURVE('',#19507,#19450,#1742,.T.); -#15548=EDGE_CURVE('',#19507,#18591,#196,.T.); -#15549=EDGE_CURVE('',#18590,#19508,#197,.T.); -#15550=EDGE_CURVE('',#19451,#19508,#1743,.T.); -#15551=EDGE_CURVE('',#19509,#19454,#1744,.T.); -#15552=EDGE_CURVE('',#19509,#18577,#198,.T.); -#15553=EDGE_CURVE('',#18576,#19510,#199,.T.); -#15554=EDGE_CURVE('',#19455,#19510,#1745,.T.); -#15555=EDGE_CURVE('',#19511,#19458,#1746,.T.); -#15556=EDGE_CURVE('',#19511,#18563,#200,.T.); -#15557=EDGE_CURVE('',#18562,#19512,#201,.T.); -#15558=EDGE_CURVE('',#19459,#19512,#1747,.T.); -#15559=EDGE_CURVE('',#19513,#19462,#1748,.T.); -#15560=EDGE_CURVE('',#19513,#18549,#202,.T.); -#15561=EDGE_CURVE('',#18548,#19514,#203,.T.); -#15562=EDGE_CURVE('',#19463,#19514,#1749,.T.); -#15563=EDGE_CURVE('',#19515,#19466,#1750,.T.); -#15564=EDGE_CURVE('',#19515,#18535,#204,.T.); -#15565=EDGE_CURVE('',#18534,#19516,#205,.T.); -#15566=EDGE_CURVE('',#19467,#19516,#1751,.T.); -#15567=EDGE_CURVE('',#19517,#19470,#1752,.T.); -#15568=EDGE_CURVE('',#19517,#18521,#206,.T.); -#15569=EDGE_CURVE('',#18520,#19518,#207,.T.); -#15570=EDGE_CURVE('',#19471,#19518,#1753,.T.); -#15571=EDGE_CURVE('',#19519,#19474,#1754,.T.); -#15572=EDGE_CURVE('',#19519,#18507,#208,.T.); -#15573=EDGE_CURVE('',#18506,#19520,#209,.T.); -#15574=EDGE_CURVE('',#19475,#19520,#1755,.T.); -#15575=EDGE_CURVE('',#19521,#19478,#1756,.T.); -#15576=EDGE_CURVE('',#19521,#18493,#210,.T.); -#15577=EDGE_CURVE('',#18492,#19522,#211,.T.); -#15578=EDGE_CURVE('',#19479,#19522,#1757,.T.); -#15579=EDGE_CURVE('',#19523,#19482,#1758,.T.); -#15580=EDGE_CURVE('',#19523,#18479,#212,.T.); -#15581=EDGE_CURVE('',#18478,#19524,#213,.T.); -#15582=EDGE_CURVE('',#19483,#19524,#1759,.T.); -#15583=EDGE_CURVE('',#19525,#19486,#1760,.T.); -#15584=EDGE_CURVE('',#19525,#18465,#214,.T.); -#15585=EDGE_CURVE('',#18464,#19526,#215,.T.); -#15586=EDGE_CURVE('',#19487,#19526,#1761,.T.); -#15587=EDGE_CURVE('',#19527,#19528,#1762,.T.); -#15588=EDGE_CURVE('',#19527,#18451,#216,.T.); -#15589=EDGE_CURVE('',#18450,#19529,#217,.T.); -#15590=EDGE_CURVE('',#19530,#19529,#1763,.T.); -#15591=EDGE_CURVE('',#19530,#19528,#22749,.T.); -#15592=EDGE_CURVE('',#18734,#19531,#218,.T.); -#15593=EDGE_CURVE('',#19532,#19531,#1764,.T.); -#15594=EDGE_CURVE('',#19533,#19532,#22750,.T.); -#15595=EDGE_CURVE('',#19534,#19533,#1765,.T.); -#15596=EDGE_CURVE('',#19534,#18735,#219,.T.); -#15597=EDGE_CURVE('',#18748,#19535,#220,.F.); -#15598=EDGE_CURVE('',#19536,#19535,#1766,.T.); -#15599=EDGE_CURVE('',#19537,#19536,#22751,.T.); -#15600=EDGE_CURVE('',#19538,#19537,#1767,.T.); -#15601=EDGE_CURVE('',#19538,#18749,#221,.T.); -#15602=EDGE_CURVE('',#18762,#19539,#222,.F.); -#15603=EDGE_CURVE('',#19540,#19539,#1768,.T.); -#15604=EDGE_CURVE('',#19541,#19540,#22752,.T.); -#15605=EDGE_CURVE('',#19542,#19541,#1769,.T.); -#15606=EDGE_CURVE('',#19542,#18763,#223,.T.); -#15607=EDGE_CURVE('',#18776,#19543,#224,.T.); -#15608=EDGE_CURVE('',#19544,#19543,#1770,.T.); -#15609=EDGE_CURVE('',#19545,#19544,#22753,.T.); -#15610=EDGE_CURVE('',#19546,#19545,#1771,.T.); -#15611=EDGE_CURVE('',#19546,#18777,#225,.T.); -#15612=EDGE_CURVE('',#18790,#19547,#226,.F.); -#15613=EDGE_CURVE('',#19548,#19547,#1772,.T.); -#15614=EDGE_CURVE('',#19549,#19548,#22754,.T.); -#15615=EDGE_CURVE('',#19550,#19549,#1773,.T.); -#15616=EDGE_CURVE('',#19550,#18791,#227,.T.); -#15617=EDGE_CURVE('',#18804,#19551,#228,.F.); -#15618=EDGE_CURVE('',#19552,#19551,#1774,.T.); -#15619=EDGE_CURVE('',#19553,#19552,#22755,.T.); -#15620=EDGE_CURVE('',#19554,#19553,#1775,.T.); -#15621=EDGE_CURVE('',#19554,#18805,#229,.T.); -#15622=EDGE_CURVE('',#18818,#19555,#230,.F.); -#15623=EDGE_CURVE('',#19556,#19555,#1776,.T.); -#15624=EDGE_CURVE('',#19557,#19556,#22756,.T.); -#15625=EDGE_CURVE('',#19558,#19557,#1777,.T.); -#15626=EDGE_CURVE('',#19558,#18819,#231,.T.); -#15627=EDGE_CURVE('',#18832,#19559,#232,.F.); -#15628=EDGE_CURVE('',#19560,#19559,#1778,.T.); -#15629=EDGE_CURVE('',#19561,#19560,#22757,.T.); -#15630=EDGE_CURVE('',#19562,#19561,#1779,.T.); -#15631=EDGE_CURVE('',#19562,#18833,#233,.T.); -#15632=EDGE_CURVE('',#18846,#19563,#234,.F.); -#15633=EDGE_CURVE('',#19564,#19563,#1780,.T.); -#15634=EDGE_CURVE('',#19565,#19564,#22758,.T.); -#15635=EDGE_CURVE('',#19566,#19565,#1781,.T.); -#15636=EDGE_CURVE('',#19566,#18847,#235,.T.); -#15637=EDGE_CURVE('',#18860,#19567,#236,.T.); -#15638=EDGE_CURVE('',#19568,#19567,#1782,.T.); -#15639=EDGE_CURVE('',#19569,#19568,#22759,.T.); -#15640=EDGE_CURVE('',#19570,#19569,#1783,.T.); -#15641=EDGE_CURVE('',#19570,#18861,#237,.T.); -#15642=EDGE_CURVE('',#18874,#19571,#238,.F.); -#15643=EDGE_CURVE('',#19572,#19571,#1784,.T.); -#15644=EDGE_CURVE('',#19573,#19572,#22760,.T.); -#15645=EDGE_CURVE('',#19574,#19573,#1785,.T.); -#15646=EDGE_CURVE('',#19574,#18875,#239,.T.); -#15647=EDGE_CURVE('',#18888,#19575,#240,.F.); -#15648=EDGE_CURVE('',#19576,#19575,#1786,.T.); -#15649=EDGE_CURVE('',#19577,#19576,#22761,.T.); -#15650=EDGE_CURVE('',#19578,#19577,#1787,.T.); -#15651=EDGE_CURVE('',#19578,#18889,#241,.T.); -#15652=EDGE_CURVE('',#18902,#19579,#242,.F.); -#15653=EDGE_CURVE('',#19580,#19579,#1788,.T.); -#15654=EDGE_CURVE('',#19581,#19580,#22762,.T.); -#15655=EDGE_CURVE('',#19582,#19581,#1789,.T.); -#15656=EDGE_CURVE('',#19582,#18903,#243,.T.); -#15657=EDGE_CURVE('',#18916,#19583,#244,.F.); -#15658=EDGE_CURVE('',#19584,#19583,#1790,.T.); -#15659=EDGE_CURVE('',#19585,#19584,#22763,.T.); -#15660=EDGE_CURVE('',#19586,#19585,#1791,.T.); -#15661=EDGE_CURVE('',#19586,#18917,#245,.T.); -#15662=EDGE_CURVE('',#18930,#19587,#246,.F.); -#15663=EDGE_CURVE('',#19588,#19587,#1792,.T.); -#15664=EDGE_CURVE('',#19589,#19588,#22764,.T.); -#15665=EDGE_CURVE('',#19590,#19589,#1793,.T.); -#15666=EDGE_CURVE('',#19590,#18931,#247,.T.); -#15667=EDGE_CURVE('',#18944,#19591,#248,.T.); -#15668=EDGE_CURVE('',#19592,#19591,#1794,.T.); -#15669=EDGE_CURVE('',#19593,#19592,#22765,.T.); -#15670=EDGE_CURVE('',#19594,#19593,#1795,.T.); -#15671=EDGE_CURVE('',#19594,#18945,#249,.T.); -#15672=EDGE_CURVE('',#18958,#19595,#250,.T.); -#15673=EDGE_CURVE('',#19596,#19595,#1796,.T.); -#15674=EDGE_CURVE('',#19597,#19596,#22766,.T.); -#15675=EDGE_CURVE('',#19598,#19597,#1797,.T.); -#15676=EDGE_CURVE('',#19598,#18959,#251,.T.); -#15677=EDGE_CURVE('',#18972,#19599,#252,.F.); -#15678=EDGE_CURVE('',#19600,#19599,#1798,.T.); -#15679=EDGE_CURVE('',#19601,#19600,#22767,.T.); -#15680=EDGE_CURVE('',#19602,#19601,#1799,.T.); -#15681=EDGE_CURVE('',#19602,#18973,#253,.T.); -#15682=EDGE_CURVE('',#18986,#19603,#254,.F.); -#15683=EDGE_CURVE('',#19604,#19603,#1800,.T.); -#15684=EDGE_CURVE('',#19605,#19604,#22768,.T.); -#15685=EDGE_CURVE('',#19606,#19605,#1801,.T.); -#15686=EDGE_CURVE('',#19606,#18987,#255,.T.); -#15687=EDGE_CURVE('',#19000,#19607,#256,.T.); -#15688=EDGE_CURVE('',#19608,#19607,#1802,.T.); -#15689=EDGE_CURVE('',#19609,#19608,#22769,.T.); -#15690=EDGE_CURVE('',#19610,#19609,#1803,.T.); -#15691=EDGE_CURVE('',#19610,#19001,#257,.T.); -#15692=EDGE_CURVE('',#19532,#19611,#22770,.T.); -#15693=EDGE_CURVE('',#19611,#19612,#56,.F.); -#15694=EDGE_CURVE('',#19613,#19612,#22771,.T.); -#15695=EDGE_CURVE('',#19613,#19614,#57,.F.); -#15696=EDGE_CURVE('',#19614,#19533,#22772,.T.); -#15697=EDGE_CURVE('',#19536,#19615,#22773,.T.); -#15698=EDGE_CURVE('',#19615,#19616,#58,.F.); -#15699=EDGE_CURVE('',#19617,#19616,#22774,.T.); -#15700=EDGE_CURVE('',#19617,#19618,#59,.F.); -#15701=EDGE_CURVE('',#19618,#19537,#22775,.T.); -#15702=EDGE_CURVE('',#19540,#19619,#22776,.T.); -#15703=EDGE_CURVE('',#19619,#19620,#60,.F.); -#15704=EDGE_CURVE('',#19621,#19620,#22777,.T.); -#15705=EDGE_CURVE('',#19621,#19622,#61,.F.); -#15706=EDGE_CURVE('',#19622,#19541,#22778,.T.); -#15707=EDGE_CURVE('',#19544,#19623,#22779,.T.); -#15708=EDGE_CURVE('',#19623,#19624,#62,.F.); -#15709=EDGE_CURVE('',#19625,#19624,#22780,.T.); -#15710=EDGE_CURVE('',#19625,#19626,#63,.F.); -#15711=EDGE_CURVE('',#19626,#19545,#22781,.T.); -#15712=EDGE_CURVE('',#19548,#19627,#22782,.T.); -#15713=EDGE_CURVE('',#19627,#19628,#64,.F.); -#15714=EDGE_CURVE('',#19629,#19628,#22783,.T.); -#15715=EDGE_CURVE('',#19629,#19630,#65,.F.); -#15716=EDGE_CURVE('',#19630,#19549,#22784,.T.); -#15717=EDGE_CURVE('',#19552,#19631,#22785,.T.); -#15718=EDGE_CURVE('',#19631,#19632,#66,.F.); -#15719=EDGE_CURVE('',#19633,#19632,#22786,.T.); -#15720=EDGE_CURVE('',#19633,#19634,#67,.F.); -#15721=EDGE_CURVE('',#19634,#19553,#22787,.T.); -#15722=EDGE_CURVE('',#19556,#19635,#22788,.T.); -#15723=EDGE_CURVE('',#19635,#19636,#68,.F.); -#15724=EDGE_CURVE('',#19637,#19636,#22789,.T.); -#15725=EDGE_CURVE('',#19637,#19638,#69,.F.); -#15726=EDGE_CURVE('',#19638,#19557,#22790,.T.); -#15727=EDGE_CURVE('',#19560,#19639,#22791,.T.); -#15728=EDGE_CURVE('',#19639,#19640,#70,.F.); -#15729=EDGE_CURVE('',#19641,#19640,#22792,.T.); -#15730=EDGE_CURVE('',#19641,#19642,#71,.F.); -#15731=EDGE_CURVE('',#19642,#19561,#22793,.T.); -#15732=EDGE_CURVE('',#19564,#19643,#22794,.T.); -#15733=EDGE_CURVE('',#19643,#19644,#72,.F.); -#15734=EDGE_CURVE('',#19645,#19644,#22795,.T.); -#15735=EDGE_CURVE('',#19645,#19646,#73,.F.); -#15736=EDGE_CURVE('',#19646,#19565,#22796,.T.); -#15737=EDGE_CURVE('',#19568,#19647,#22797,.T.); -#15738=EDGE_CURVE('',#19647,#19648,#74,.F.); -#15739=EDGE_CURVE('',#19649,#19648,#22798,.T.); -#15740=EDGE_CURVE('',#19649,#19650,#75,.F.); -#15741=EDGE_CURVE('',#19650,#19569,#22799,.T.); -#15742=EDGE_CURVE('',#19572,#19651,#22800,.T.); -#15743=EDGE_CURVE('',#19651,#19652,#76,.F.); -#15744=EDGE_CURVE('',#19653,#19652,#22801,.T.); -#15745=EDGE_CURVE('',#19653,#19654,#77,.F.); -#15746=EDGE_CURVE('',#19654,#19573,#22802,.T.); -#15747=EDGE_CURVE('',#19576,#19655,#22803,.T.); -#15748=EDGE_CURVE('',#19655,#19656,#78,.F.); -#15749=EDGE_CURVE('',#19657,#19656,#22804,.T.); -#15750=EDGE_CURVE('',#19657,#19658,#79,.F.); -#15751=EDGE_CURVE('',#19658,#19577,#22805,.T.); -#15752=EDGE_CURVE('',#19580,#19659,#22806,.T.); -#15753=EDGE_CURVE('',#19659,#19660,#80,.F.); -#15754=EDGE_CURVE('',#19661,#19660,#22807,.T.); -#15755=EDGE_CURVE('',#19661,#19662,#81,.F.); -#15756=EDGE_CURVE('',#19662,#19581,#22808,.T.); -#15757=EDGE_CURVE('',#19584,#19663,#22809,.T.); -#15758=EDGE_CURVE('',#19663,#19664,#82,.F.); -#15759=EDGE_CURVE('',#19665,#19664,#22810,.T.); -#15760=EDGE_CURVE('',#19665,#19666,#83,.F.); -#15761=EDGE_CURVE('',#19666,#19585,#22811,.T.); -#15762=EDGE_CURVE('',#19588,#19667,#22812,.T.); -#15763=EDGE_CURVE('',#19667,#19668,#84,.F.); -#15764=EDGE_CURVE('',#19669,#19668,#22813,.T.); -#15765=EDGE_CURVE('',#19669,#19670,#85,.F.); -#15766=EDGE_CURVE('',#19670,#19589,#22814,.T.); -#15767=EDGE_CURVE('',#19592,#19671,#22815,.T.); -#15768=EDGE_CURVE('',#19671,#19672,#86,.F.); -#15769=EDGE_CURVE('',#19673,#19672,#22816,.T.); -#15770=EDGE_CURVE('',#19673,#19674,#87,.F.); -#15771=EDGE_CURVE('',#19674,#19593,#22817,.T.); -#15772=EDGE_CURVE('',#19596,#19675,#22818,.T.); -#15773=EDGE_CURVE('',#19675,#19676,#88,.F.); -#15774=EDGE_CURVE('',#19677,#19676,#22819,.T.); -#15775=EDGE_CURVE('',#19677,#19678,#89,.F.); -#15776=EDGE_CURVE('',#19678,#19597,#22820,.T.); -#15777=EDGE_CURVE('',#19600,#19679,#22821,.T.); -#15778=EDGE_CURVE('',#19679,#19680,#90,.F.); -#15779=EDGE_CURVE('',#19681,#19680,#22822,.T.); -#15780=EDGE_CURVE('',#19681,#19682,#91,.F.); -#15781=EDGE_CURVE('',#19682,#19601,#22823,.T.); -#15782=EDGE_CURVE('',#19604,#19683,#22824,.T.); -#15783=EDGE_CURVE('',#19683,#19684,#92,.F.); -#15784=EDGE_CURVE('',#19685,#19684,#22825,.T.); -#15785=EDGE_CURVE('',#19685,#19686,#93,.F.); -#15786=EDGE_CURVE('',#19686,#19605,#22826,.T.); -#15787=EDGE_CURVE('',#19285,#19687,#258,.F.); -#15788=EDGE_CURVE('',#19688,#19284,#259,.T.); -#15789=EDGE_CURVE('',#19688,#19689,#1804,.T.); -#15790=EDGE_CURVE('',#19689,#19613,#260,.T.); -#15791=EDGE_CURVE('',#19612,#19690,#261,.T.); -#15792=EDGE_CURVE('',#19690,#19687,#1805,.T.); -#15793=EDGE_CURVE('',#19271,#19691,#262,.F.); -#15794=EDGE_CURVE('',#19692,#19270,#263,.T.); -#15795=EDGE_CURVE('',#19692,#19693,#1806,.T.); -#15796=EDGE_CURVE('',#19693,#19617,#264,.T.); -#15797=EDGE_CURVE('',#19616,#19694,#265,.T.); -#15798=EDGE_CURVE('',#19694,#19691,#1807,.T.); -#15799=EDGE_CURVE('',#19257,#19695,#266,.F.); -#15800=EDGE_CURVE('',#19696,#19256,#267,.T.); -#15801=EDGE_CURVE('',#19696,#19697,#1808,.T.); -#15802=EDGE_CURVE('',#19697,#19621,#268,.T.); -#15803=EDGE_CURVE('',#19620,#19698,#269,.T.); -#15804=EDGE_CURVE('',#19698,#19695,#1809,.T.); -#15805=EDGE_CURVE('',#19243,#19699,#270,.F.); -#15806=EDGE_CURVE('',#19700,#19242,#271,.T.); -#15807=EDGE_CURVE('',#19700,#19701,#1810,.T.); -#15808=EDGE_CURVE('',#19701,#19625,#272,.T.); -#15809=EDGE_CURVE('',#19624,#19702,#273,.T.); -#15810=EDGE_CURVE('',#19702,#19699,#1811,.T.); -#15811=EDGE_CURVE('',#19229,#19703,#274,.F.); -#15812=EDGE_CURVE('',#19704,#19228,#275,.T.); -#15813=EDGE_CURVE('',#19704,#19705,#1812,.T.); -#15814=EDGE_CURVE('',#19705,#19629,#276,.T.); -#15815=EDGE_CURVE('',#19628,#19706,#277,.T.); -#15816=EDGE_CURVE('',#19706,#19703,#1813,.T.); -#15817=EDGE_CURVE('',#19215,#19707,#278,.F.); -#15818=EDGE_CURVE('',#19708,#19214,#279,.T.); -#15819=EDGE_CURVE('',#19708,#19709,#1814,.T.); -#15820=EDGE_CURVE('',#19709,#19633,#280,.T.); -#15821=EDGE_CURVE('',#19632,#19710,#281,.T.); -#15822=EDGE_CURVE('',#19710,#19707,#1815,.T.); -#15823=EDGE_CURVE('',#19201,#19711,#282,.F.); -#15824=EDGE_CURVE('',#19712,#19200,#283,.T.); -#15825=EDGE_CURVE('',#19712,#19713,#1816,.T.); -#15826=EDGE_CURVE('',#19713,#19637,#284,.T.); -#15827=EDGE_CURVE('',#19636,#19714,#285,.T.); -#15828=EDGE_CURVE('',#19714,#19711,#1817,.T.); -#15829=EDGE_CURVE('',#19187,#19715,#286,.F.); -#15830=EDGE_CURVE('',#19716,#19186,#287,.T.); -#15831=EDGE_CURVE('',#19716,#19717,#1818,.T.); -#15832=EDGE_CURVE('',#19717,#19641,#288,.T.); -#15833=EDGE_CURVE('',#19640,#19718,#289,.T.); -#15834=EDGE_CURVE('',#19718,#19715,#1819,.T.); -#15835=EDGE_CURVE('',#19173,#19719,#290,.F.); -#15836=EDGE_CURVE('',#19720,#19172,#291,.T.); -#15837=EDGE_CURVE('',#19720,#19721,#1820,.T.); -#15838=EDGE_CURVE('',#19721,#19645,#292,.T.); -#15839=EDGE_CURVE('',#19644,#19722,#293,.T.); -#15840=EDGE_CURVE('',#19722,#19719,#1821,.T.); -#15841=EDGE_CURVE('',#19159,#19723,#294,.F.); -#15842=EDGE_CURVE('',#19724,#19158,#295,.T.); -#15843=EDGE_CURVE('',#19724,#19725,#1822,.T.); -#15844=EDGE_CURVE('',#19725,#19649,#296,.T.); -#15845=EDGE_CURVE('',#19648,#19726,#297,.T.); -#15846=EDGE_CURVE('',#19726,#19723,#1823,.T.); -#15847=EDGE_CURVE('',#19145,#19727,#298,.F.); -#15848=EDGE_CURVE('',#19728,#19144,#299,.T.); -#15849=EDGE_CURVE('',#19728,#19729,#1824,.T.); -#15850=EDGE_CURVE('',#19729,#19653,#300,.T.); -#15851=EDGE_CURVE('',#19652,#19730,#301,.T.); -#15852=EDGE_CURVE('',#19730,#19727,#1825,.T.); -#15853=EDGE_CURVE('',#19131,#19731,#302,.F.); -#15854=EDGE_CURVE('',#19732,#19130,#303,.T.); -#15855=EDGE_CURVE('',#19732,#19733,#1826,.T.); -#15856=EDGE_CURVE('',#19733,#19657,#304,.T.); -#15857=EDGE_CURVE('',#19656,#19734,#305,.T.); -#15858=EDGE_CURVE('',#19734,#19731,#1827,.T.); -#15859=EDGE_CURVE('',#19117,#19735,#306,.F.); -#15860=EDGE_CURVE('',#19736,#19116,#307,.T.); -#15861=EDGE_CURVE('',#19736,#19737,#1828,.T.); -#15862=EDGE_CURVE('',#19737,#19661,#308,.T.); -#15863=EDGE_CURVE('',#19660,#19738,#309,.T.); -#15864=EDGE_CURVE('',#19738,#19735,#1829,.T.); -#15865=EDGE_CURVE('',#19103,#19739,#310,.F.); -#15866=EDGE_CURVE('',#19740,#19102,#311,.T.); -#15867=EDGE_CURVE('',#19740,#19741,#1830,.T.); -#15868=EDGE_CURVE('',#19741,#19665,#312,.T.); -#15869=EDGE_CURVE('',#19664,#19742,#313,.T.); -#15870=EDGE_CURVE('',#19742,#19739,#1831,.T.); -#15871=EDGE_CURVE('',#19089,#19743,#314,.F.); -#15872=EDGE_CURVE('',#19744,#19088,#315,.T.); -#15873=EDGE_CURVE('',#19744,#19745,#1832,.T.); -#15874=EDGE_CURVE('',#19745,#19669,#316,.T.); -#15875=EDGE_CURVE('',#19668,#19746,#317,.T.); -#15876=EDGE_CURVE('',#19746,#19743,#1833,.T.); -#15877=EDGE_CURVE('',#19075,#19747,#318,.F.); -#15878=EDGE_CURVE('',#19748,#19074,#319,.T.); -#15879=EDGE_CURVE('',#19748,#19749,#1834,.T.); -#15880=EDGE_CURVE('',#19749,#19673,#320,.T.); -#15881=EDGE_CURVE('',#19672,#19750,#321,.T.); -#15882=EDGE_CURVE('',#19750,#19747,#1835,.T.); -#15883=EDGE_CURVE('',#19061,#19751,#322,.F.); -#15884=EDGE_CURVE('',#19752,#19060,#323,.T.); -#15885=EDGE_CURVE('',#19752,#19753,#1836,.T.); -#15886=EDGE_CURVE('',#19753,#19677,#324,.T.); -#15887=EDGE_CURVE('',#19676,#19754,#325,.T.); -#15888=EDGE_CURVE('',#19754,#19751,#1837,.T.); -#15889=EDGE_CURVE('',#19047,#19755,#326,.F.); -#15890=EDGE_CURVE('',#19756,#19046,#327,.T.); -#15891=EDGE_CURVE('',#19756,#19757,#1838,.T.); -#15892=EDGE_CURVE('',#19757,#19681,#328,.T.); -#15893=EDGE_CURVE('',#19680,#19758,#329,.T.); -#15894=EDGE_CURVE('',#19758,#19755,#1839,.T.); -#15895=EDGE_CURVE('',#19033,#19759,#330,.F.); -#15896=EDGE_CURVE('',#19760,#19032,#331,.T.); -#15897=EDGE_CURVE('',#19760,#19761,#1840,.T.); -#15898=EDGE_CURVE('',#19761,#19685,#332,.T.); -#15899=EDGE_CURVE('',#19684,#19762,#333,.T.); -#15900=EDGE_CURVE('',#19762,#19759,#1841,.T.); -#15901=EDGE_CURVE('',#19019,#19763,#334,.F.); -#15902=EDGE_CURVE('',#19764,#19018,#335,.T.); -#15903=EDGE_CURVE('',#19764,#19765,#1842,.T.); -#15904=EDGE_CURVE('',#19765,#19766,#336,.T.); -#15905=EDGE_CURVE('',#19766,#19767,#22827,.T.); -#15906=EDGE_CURVE('',#19767,#19768,#337,.T.); -#15907=EDGE_CURVE('',#19768,#19763,#1843,.T.); -#15908=EDGE_CURVE('',#19007,#19012,#22828,.T.); -#15909=EDGE_CURVE('',#19006,#19013,#22829,.F.); -#15910=EDGE_CURVE('',#18728,#19291,#22830,.T.); -#15911=EDGE_CURVE('',#18729,#19290,#22831,.F.); -#15912=EDGE_CURVE('',#19409,#19769,#94,.F.); -#15913=EDGE_CURVE('',#19769,#19528,#22832,.T.); -#15914=EDGE_CURVE('',#19530,#19770,#22833,.T.); -#15915=EDGE_CURVE('',#19770,#19410,#95,.F.); -#15916=EDGE_CURVE('',#19608,#19771,#22834,.T.); -#15917=EDGE_CURVE('',#19771,#19767,#96,.F.); -#15918=EDGE_CURVE('',#19766,#19772,#97,.F.); -#15919=EDGE_CURVE('',#19772,#19609,#22835,.T.); -#15920=EDGE_CURVE('',#19690,#19611,#22836,.T.); -#15921=EDGE_CURVE('',#19687,#19531,#22837,.T.); -#15922=EDGE_CURVE('',#19286,#18733,#22838,.T.); -#15923=EDGE_CURVE('',#19285,#18734,#22839,.T.); -#15924=EDGE_CURVE('',#19287,#18732,#22840,.T.); -#15925=EDGE_CURVE('',#19288,#18731,#22841,.T.); -#15926=EDGE_CURVE('',#19289,#18730,#22842,.T.); -#15927=EDGE_CURVE('',#18718,#18165,#22843,.T.); -#15928=EDGE_CURVE('',#18717,#18166,#22844,.T.); -#15929=EDGE_CURVE('',#18719,#18164,#22845,.T.); -#15930=EDGE_CURVE('',#18720,#18163,#22846,.T.); -#15931=EDGE_CURVE('',#18721,#18162,#22847,.T.); -#15932=EDGE_CURVE('',#19489,#19293,#22848,.T.); -#15933=EDGE_CURVE('',#19413,#19294,#22849,.T.); -#15934=EDGE_CURVE('',#19014,#19005,#22850,.T.); -#15935=EDGE_CURVE('',#19015,#19004,#22851,.T.); -#15936=EDGE_CURVE('',#19016,#19003,#22852,.T.); -#15937=EDGE_CURVE('',#19017,#19002,#22853,.T.); -#15938=EDGE_CURVE('',#19018,#19001,#22854,.T.); -#15939=EDGE_CURVE('',#19764,#19610,#22855,.T.); -#15940=EDGE_CURVE('',#19765,#19772,#22856,.T.); -#15941=EDGE_CURVE('',#18446,#18437,#22857,.T.); -#15942=EDGE_CURVE('',#18447,#18436,#22858,.T.); -#15943=EDGE_CURVE('',#18448,#18435,#22859,.T.); -#15944=EDGE_CURVE('',#18449,#18434,#22860,.T.); -#15945=EDGE_CURVE('',#18450,#18433,#22861,.T.); -#15946=EDGE_CURVE('',#19529,#19412,#22862,.T.); -#15947=EDGE_CURVE('',#19770,#19411,#22863,.T.); -#15948=EDGE_CURVE('',#19768,#19771,#22864,.T.); -#15949=EDGE_CURVE('',#19763,#19607,#22865,.T.); -#15950=EDGE_CURVE('',#19020,#18999,#22866,.T.); -#15951=EDGE_CURVE('',#19019,#19000,#22867,.T.); -#15952=EDGE_CURVE('',#19021,#18998,#22868,.T.); -#15953=EDGE_CURVE('',#19022,#18997,#22869,.T.); -#15954=EDGE_CURVE('',#19023,#18996,#22870,.T.); -#15955=EDGE_CURVE('',#19024,#18995,#22871,.T.); -#15956=EDGE_CURVE('',#19027,#18992,#22872,.T.); -#15957=EDGE_CURVE('',#19028,#18991,#22873,.T.); -#15958=EDGE_CURVE('',#19029,#18990,#22874,.T.); -#15959=EDGE_CURVE('',#19030,#18989,#22875,.T.); -#15960=EDGE_CURVE('',#19031,#18988,#22876,.T.); -#15961=EDGE_CURVE('',#19032,#18987,#22877,.T.); -#15962=EDGE_CURVE('',#19760,#19606,#22878,.T.); -#15963=EDGE_CURVE('',#19761,#19686,#22879,.T.); -#15964=EDGE_CURVE('',#19762,#19683,#22880,.T.); -#15965=EDGE_CURVE('',#19759,#19603,#22881,.T.); -#15966=EDGE_CURVE('',#19034,#18985,#22882,.T.); -#15967=EDGE_CURVE('',#19033,#18986,#22883,.T.); -#15968=EDGE_CURVE('',#19035,#18984,#22884,.T.); -#15969=EDGE_CURVE('',#19036,#18983,#22885,.T.); -#15970=EDGE_CURVE('',#19037,#18982,#22886,.T.); -#15971=EDGE_CURVE('',#19038,#18981,#22887,.T.); -#15972=EDGE_CURVE('',#19041,#18978,#22888,.T.); -#15973=EDGE_CURVE('',#19042,#18977,#22889,.T.); -#15974=EDGE_CURVE('',#19043,#18976,#22890,.T.); -#15975=EDGE_CURVE('',#19044,#18975,#22891,.T.); -#15976=EDGE_CURVE('',#19045,#18974,#22892,.T.); -#15977=EDGE_CURVE('',#19046,#18973,#22893,.T.); -#15978=EDGE_CURVE('',#19756,#19602,#22894,.T.); -#15979=EDGE_CURVE('',#19757,#19682,#22895,.T.); -#15980=EDGE_CURVE('',#19758,#19679,#22896,.T.); -#15981=EDGE_CURVE('',#19755,#19599,#22897,.T.); -#15982=EDGE_CURVE('',#19048,#18971,#22898,.T.); -#15983=EDGE_CURVE('',#19047,#18972,#22899,.T.); -#15984=EDGE_CURVE('',#19049,#18970,#22900,.T.); -#15985=EDGE_CURVE('',#19050,#18969,#22901,.T.); -#15986=EDGE_CURVE('',#19051,#18968,#22902,.T.); -#15987=EDGE_CURVE('',#19052,#18967,#22903,.T.); -#15988=EDGE_CURVE('',#19055,#18964,#22904,.T.); -#15989=EDGE_CURVE('',#19056,#18963,#22905,.T.); -#15990=EDGE_CURVE('',#19057,#18962,#22906,.T.); -#15991=EDGE_CURVE('',#19058,#18961,#22907,.T.); -#15992=EDGE_CURVE('',#19059,#18960,#22908,.T.); -#15993=EDGE_CURVE('',#19060,#18959,#22909,.T.); -#15994=EDGE_CURVE('',#19752,#19598,#22910,.T.); -#15995=EDGE_CURVE('',#19753,#19678,#22911,.T.); -#15996=EDGE_CURVE('',#19754,#19675,#22912,.T.); -#15997=EDGE_CURVE('',#19751,#19595,#22913,.T.); -#15998=EDGE_CURVE('',#19062,#18957,#22914,.T.); -#15999=EDGE_CURVE('',#19061,#18958,#22915,.T.); -#16000=EDGE_CURVE('',#19063,#18956,#22916,.T.); -#16001=EDGE_CURVE('',#19064,#18955,#22917,.T.); -#16002=EDGE_CURVE('',#19065,#18954,#22918,.T.); -#16003=EDGE_CURVE('',#19066,#18953,#22919,.T.); -#16004=EDGE_CURVE('',#19069,#18950,#22920,.T.); -#16005=EDGE_CURVE('',#19070,#18949,#22921,.T.); -#16006=EDGE_CURVE('',#19071,#18948,#22922,.T.); -#16007=EDGE_CURVE('',#19072,#18947,#22923,.T.); -#16008=EDGE_CURVE('',#19073,#18946,#22924,.T.); -#16009=EDGE_CURVE('',#19074,#18945,#22925,.T.); -#16010=EDGE_CURVE('',#19748,#19594,#22926,.T.); -#16011=EDGE_CURVE('',#19749,#19674,#22927,.T.); -#16012=EDGE_CURVE('',#19750,#19671,#22928,.T.); -#16013=EDGE_CURVE('',#19747,#19591,#22929,.T.); -#16014=EDGE_CURVE('',#19076,#18943,#22930,.T.); -#16015=EDGE_CURVE('',#19075,#18944,#22931,.T.); -#16016=EDGE_CURVE('',#19077,#18942,#22932,.T.); -#16017=EDGE_CURVE('',#19078,#18941,#22933,.T.); -#16018=EDGE_CURVE('',#19079,#18940,#22934,.T.); -#16019=EDGE_CURVE('',#19080,#18939,#22935,.T.); -#16020=EDGE_CURVE('',#19083,#18936,#22936,.T.); -#16021=EDGE_CURVE('',#19084,#18935,#22937,.T.); -#16022=EDGE_CURVE('',#19085,#18934,#22938,.T.); -#16023=EDGE_CURVE('',#19086,#18933,#22939,.T.); -#16024=EDGE_CURVE('',#19087,#18932,#22940,.T.); -#16025=EDGE_CURVE('',#19088,#18931,#22941,.T.); -#16026=EDGE_CURVE('',#19744,#19590,#22942,.T.); -#16027=EDGE_CURVE('',#19745,#19670,#22943,.T.); -#16028=EDGE_CURVE('',#19746,#19667,#22944,.T.); -#16029=EDGE_CURVE('',#19743,#19587,#22945,.T.); -#16030=EDGE_CURVE('',#19090,#18929,#22946,.T.); -#16031=EDGE_CURVE('',#19089,#18930,#22947,.T.); -#16032=EDGE_CURVE('',#19091,#18928,#22948,.T.); -#16033=EDGE_CURVE('',#19092,#18927,#22949,.T.); -#16034=EDGE_CURVE('',#19093,#18926,#22950,.T.); -#16035=EDGE_CURVE('',#19094,#18925,#22951,.T.); -#16036=EDGE_CURVE('',#19097,#18922,#22952,.T.); -#16037=EDGE_CURVE('',#19098,#18921,#22953,.T.); -#16038=EDGE_CURVE('',#19099,#18920,#22954,.T.); -#16039=EDGE_CURVE('',#19100,#18919,#22955,.T.); -#16040=EDGE_CURVE('',#19101,#18918,#22956,.T.); -#16041=EDGE_CURVE('',#19102,#18917,#22957,.T.); -#16042=EDGE_CURVE('',#19740,#19586,#22958,.T.); -#16043=EDGE_CURVE('',#19741,#19666,#22959,.T.); -#16044=EDGE_CURVE('',#19742,#19663,#22960,.T.); -#16045=EDGE_CURVE('',#19739,#19583,#22961,.T.); -#16046=EDGE_CURVE('',#19104,#18915,#22962,.T.); -#16047=EDGE_CURVE('',#19103,#18916,#22963,.T.); -#16048=EDGE_CURVE('',#19105,#18914,#22964,.T.); -#16049=EDGE_CURVE('',#19106,#18913,#22965,.T.); -#16050=EDGE_CURVE('',#19107,#18912,#22966,.T.); -#16051=EDGE_CURVE('',#19108,#18911,#22967,.T.); -#16052=EDGE_CURVE('',#19111,#18908,#22968,.T.); -#16053=EDGE_CURVE('',#19112,#18907,#22969,.T.); -#16054=EDGE_CURVE('',#19113,#18906,#22970,.T.); -#16055=EDGE_CURVE('',#19114,#18905,#22971,.T.); -#16056=EDGE_CURVE('',#19115,#18904,#22972,.T.); -#16057=EDGE_CURVE('',#19116,#18903,#22973,.T.); -#16058=EDGE_CURVE('',#19736,#19582,#22974,.T.); -#16059=EDGE_CURVE('',#19737,#19662,#22975,.T.); -#16060=EDGE_CURVE('',#19738,#19659,#22976,.T.); -#16061=EDGE_CURVE('',#19735,#19579,#22977,.T.); -#16062=EDGE_CURVE('',#19118,#18901,#22978,.T.); -#16063=EDGE_CURVE('',#19117,#18902,#22979,.T.); -#16064=EDGE_CURVE('',#19119,#18900,#22980,.T.); -#16065=EDGE_CURVE('',#19120,#18899,#22981,.T.); -#16066=EDGE_CURVE('',#19121,#18898,#22982,.T.); -#16067=EDGE_CURVE('',#19122,#18897,#22983,.T.); -#16068=EDGE_CURVE('',#19125,#18894,#22984,.T.); -#16069=EDGE_CURVE('',#19126,#18893,#22985,.T.); -#16070=EDGE_CURVE('',#19127,#18892,#22986,.T.); -#16071=EDGE_CURVE('',#19128,#18891,#22987,.T.); -#16072=EDGE_CURVE('',#19129,#18890,#22988,.T.); -#16073=EDGE_CURVE('',#19130,#18889,#22989,.T.); -#16074=EDGE_CURVE('',#19732,#19578,#22990,.T.); -#16075=EDGE_CURVE('',#19733,#19658,#22991,.T.); -#16076=EDGE_CURVE('',#19734,#19655,#22992,.T.); -#16077=EDGE_CURVE('',#19731,#19575,#22993,.T.); -#16078=EDGE_CURVE('',#19132,#18887,#22994,.T.); -#16079=EDGE_CURVE('',#19131,#18888,#22995,.T.); -#16080=EDGE_CURVE('',#19133,#18886,#22996,.T.); -#16081=EDGE_CURVE('',#19134,#18885,#22997,.T.); -#16082=EDGE_CURVE('',#19135,#18884,#22998,.T.); -#16083=EDGE_CURVE('',#19136,#18883,#22999,.T.); -#16084=EDGE_CURVE('',#19139,#18880,#23000,.T.); -#16085=EDGE_CURVE('',#19140,#18879,#23001,.T.); -#16086=EDGE_CURVE('',#19141,#18878,#23002,.T.); -#16087=EDGE_CURVE('',#19142,#18877,#23003,.T.); -#16088=EDGE_CURVE('',#19143,#18876,#23004,.T.); -#16089=EDGE_CURVE('',#19144,#18875,#23005,.T.); -#16090=EDGE_CURVE('',#19728,#19574,#23006,.T.); -#16091=EDGE_CURVE('',#19729,#19654,#23007,.T.); -#16092=EDGE_CURVE('',#19730,#19651,#23008,.T.); -#16093=EDGE_CURVE('',#19727,#19571,#23009,.T.); -#16094=EDGE_CURVE('',#19146,#18873,#23010,.T.); -#16095=EDGE_CURVE('',#19145,#18874,#23011,.T.); -#16096=EDGE_CURVE('',#19147,#18872,#23012,.T.); -#16097=EDGE_CURVE('',#19148,#18871,#23013,.T.); -#16098=EDGE_CURVE('',#19149,#18870,#23014,.T.); -#16099=EDGE_CURVE('',#19150,#18869,#23015,.T.); -#16100=EDGE_CURVE('',#19153,#18866,#23016,.T.); -#16101=EDGE_CURVE('',#19154,#18865,#23017,.T.); -#16102=EDGE_CURVE('',#19155,#18864,#23018,.T.); -#16103=EDGE_CURVE('',#19156,#18863,#23019,.T.); -#16104=EDGE_CURVE('',#19157,#18862,#23020,.T.); -#16105=EDGE_CURVE('',#19158,#18861,#23021,.T.); -#16106=EDGE_CURVE('',#19724,#19570,#23022,.T.); -#16107=EDGE_CURVE('',#19725,#19650,#23023,.T.); -#16108=EDGE_CURVE('',#19726,#19647,#23024,.T.); -#16109=EDGE_CURVE('',#19723,#19567,#23025,.T.); -#16110=EDGE_CURVE('',#19160,#18859,#23026,.T.); -#16111=EDGE_CURVE('',#19159,#18860,#23027,.T.); -#16112=EDGE_CURVE('',#19161,#18858,#23028,.T.); -#16113=EDGE_CURVE('',#19162,#18857,#23029,.T.); -#16114=EDGE_CURVE('',#19163,#18856,#23030,.T.); -#16115=EDGE_CURVE('',#19164,#18855,#23031,.T.); -#16116=EDGE_CURVE('',#19167,#18852,#23032,.T.); -#16117=EDGE_CURVE('',#19168,#18851,#23033,.T.); -#16118=EDGE_CURVE('',#19169,#18850,#23034,.T.); -#16119=EDGE_CURVE('',#19170,#18849,#23035,.T.); -#16120=EDGE_CURVE('',#19171,#18848,#23036,.T.); -#16121=EDGE_CURVE('',#19172,#18847,#23037,.T.); -#16122=EDGE_CURVE('',#19720,#19566,#23038,.T.); -#16123=EDGE_CURVE('',#19721,#19646,#23039,.T.); -#16124=EDGE_CURVE('',#19722,#19643,#23040,.T.); -#16125=EDGE_CURVE('',#19719,#19563,#23041,.T.); -#16126=EDGE_CURVE('',#19174,#18845,#23042,.T.); -#16127=EDGE_CURVE('',#19173,#18846,#23043,.T.); -#16128=EDGE_CURVE('',#19175,#18844,#23044,.T.); -#16129=EDGE_CURVE('',#19176,#18843,#23045,.T.); -#16130=EDGE_CURVE('',#19177,#18842,#23046,.T.); -#16131=EDGE_CURVE('',#19178,#18841,#23047,.T.); -#16132=EDGE_CURVE('',#19181,#18838,#23048,.T.); -#16133=EDGE_CURVE('',#19182,#18837,#23049,.T.); -#16134=EDGE_CURVE('',#19183,#18836,#23050,.T.); -#16135=EDGE_CURVE('',#19184,#18835,#23051,.T.); -#16136=EDGE_CURVE('',#19185,#18834,#23052,.T.); -#16137=EDGE_CURVE('',#19186,#18833,#23053,.T.); -#16138=EDGE_CURVE('',#19716,#19562,#23054,.T.); -#16139=EDGE_CURVE('',#19717,#19642,#23055,.T.); -#16140=EDGE_CURVE('',#19718,#19639,#23056,.T.); -#16141=EDGE_CURVE('',#19715,#19559,#23057,.T.); -#16142=EDGE_CURVE('',#19188,#18831,#23058,.T.); -#16143=EDGE_CURVE('',#19187,#18832,#23059,.T.); -#16144=EDGE_CURVE('',#19189,#18830,#23060,.T.); -#16145=EDGE_CURVE('',#19190,#18829,#23061,.T.); -#16146=EDGE_CURVE('',#19191,#18828,#23062,.T.); -#16147=EDGE_CURVE('',#19192,#18827,#23063,.T.); -#16148=EDGE_CURVE('',#19195,#18824,#23064,.T.); -#16149=EDGE_CURVE('',#19196,#18823,#23065,.T.); -#16150=EDGE_CURVE('',#19197,#18822,#23066,.T.); -#16151=EDGE_CURVE('',#19198,#18821,#23067,.T.); -#16152=EDGE_CURVE('',#19199,#18820,#23068,.T.); -#16153=EDGE_CURVE('',#19200,#18819,#23069,.T.); -#16154=EDGE_CURVE('',#19712,#19558,#23070,.T.); -#16155=EDGE_CURVE('',#19713,#19638,#23071,.T.); -#16156=EDGE_CURVE('',#19714,#19635,#23072,.T.); -#16157=EDGE_CURVE('',#19711,#19555,#23073,.T.); -#16158=EDGE_CURVE('',#19202,#18817,#23074,.T.); -#16159=EDGE_CURVE('',#19201,#18818,#23075,.T.); -#16160=EDGE_CURVE('',#19203,#18816,#23076,.T.); -#16161=EDGE_CURVE('',#19204,#18815,#23077,.T.); -#16162=EDGE_CURVE('',#19205,#18814,#23078,.T.); -#16163=EDGE_CURVE('',#19206,#18813,#23079,.T.); -#16164=EDGE_CURVE('',#19209,#18810,#23080,.T.); -#16165=EDGE_CURVE('',#19210,#18809,#23081,.T.); -#16166=EDGE_CURVE('',#19211,#18808,#23082,.T.); -#16167=EDGE_CURVE('',#19212,#18807,#23083,.T.); -#16168=EDGE_CURVE('',#19213,#18806,#23084,.T.); -#16169=EDGE_CURVE('',#19214,#18805,#23085,.T.); -#16170=EDGE_CURVE('',#19708,#19554,#23086,.T.); -#16171=EDGE_CURVE('',#19709,#19634,#23087,.T.); -#16172=EDGE_CURVE('',#19710,#19631,#23088,.T.); -#16173=EDGE_CURVE('',#19707,#19551,#23089,.T.); -#16174=EDGE_CURVE('',#19216,#18803,#23090,.T.); -#16175=EDGE_CURVE('',#19215,#18804,#23091,.T.); -#16176=EDGE_CURVE('',#19217,#18802,#23092,.T.); -#16177=EDGE_CURVE('',#19218,#18801,#23093,.T.); -#16178=EDGE_CURVE('',#19219,#18800,#23094,.T.); -#16179=EDGE_CURVE('',#19220,#18799,#23095,.T.); -#16180=EDGE_CURVE('',#19223,#18796,#23096,.T.); -#16181=EDGE_CURVE('',#19224,#18795,#23097,.T.); -#16182=EDGE_CURVE('',#19225,#18794,#23098,.T.); -#16183=EDGE_CURVE('',#19226,#18793,#23099,.T.); -#16184=EDGE_CURVE('',#19227,#18792,#23100,.T.); -#16185=EDGE_CURVE('',#19228,#18791,#23101,.T.); -#16186=EDGE_CURVE('',#19704,#19550,#23102,.T.); -#16187=EDGE_CURVE('',#19705,#19630,#23103,.T.); -#16188=EDGE_CURVE('',#19706,#19627,#23104,.T.); -#16189=EDGE_CURVE('',#19703,#19547,#23105,.T.); -#16190=EDGE_CURVE('',#19230,#18789,#23106,.T.); -#16191=EDGE_CURVE('',#19229,#18790,#23107,.T.); -#16192=EDGE_CURVE('',#19231,#18788,#23108,.T.); -#16193=EDGE_CURVE('',#19232,#18787,#23109,.T.); -#16194=EDGE_CURVE('',#19233,#18786,#23110,.T.); -#16195=EDGE_CURVE('',#19234,#18785,#23111,.T.); -#16196=EDGE_CURVE('',#19237,#18782,#23112,.T.); -#16197=EDGE_CURVE('',#19238,#18781,#23113,.T.); -#16198=EDGE_CURVE('',#19239,#18780,#23114,.T.); -#16199=EDGE_CURVE('',#19240,#18779,#23115,.T.); -#16200=EDGE_CURVE('',#19241,#18778,#23116,.T.); -#16201=EDGE_CURVE('',#19242,#18777,#23117,.T.); -#16202=EDGE_CURVE('',#19700,#19546,#23118,.T.); -#16203=EDGE_CURVE('',#19701,#19626,#23119,.T.); -#16204=EDGE_CURVE('',#19702,#19623,#23120,.T.); -#16205=EDGE_CURVE('',#19699,#19543,#23121,.T.); -#16206=EDGE_CURVE('',#19244,#18775,#23122,.T.); -#16207=EDGE_CURVE('',#19243,#18776,#23123,.T.); -#16208=EDGE_CURVE('',#19245,#18774,#23124,.T.); -#16209=EDGE_CURVE('',#19246,#18773,#23125,.T.); -#16210=EDGE_CURVE('',#19247,#18772,#23126,.T.); -#16211=EDGE_CURVE('',#19248,#18771,#23127,.T.); -#16212=EDGE_CURVE('',#19251,#18768,#23128,.T.); -#16213=EDGE_CURVE('',#19252,#18767,#23129,.T.); -#16214=EDGE_CURVE('',#19253,#18766,#23130,.T.); -#16215=EDGE_CURVE('',#19254,#18765,#23131,.T.); -#16216=EDGE_CURVE('',#19255,#18764,#23132,.T.); -#16217=EDGE_CURVE('',#19256,#18763,#23133,.T.); -#16218=EDGE_CURVE('',#19696,#19542,#23134,.T.); -#16219=EDGE_CURVE('',#19697,#19622,#23135,.T.); -#16220=EDGE_CURVE('',#19698,#19619,#23136,.T.); -#16221=EDGE_CURVE('',#19695,#19539,#23137,.T.); -#16222=EDGE_CURVE('',#19258,#18761,#23138,.T.); -#16223=EDGE_CURVE('',#19257,#18762,#23139,.T.); -#16224=EDGE_CURVE('',#19259,#18760,#23140,.T.); -#16225=EDGE_CURVE('',#19260,#18759,#23141,.T.); -#16226=EDGE_CURVE('',#19261,#18758,#23142,.T.); -#16227=EDGE_CURVE('',#19262,#18757,#23143,.T.); -#16228=EDGE_CURVE('',#19265,#18754,#23144,.T.); -#16229=EDGE_CURVE('',#19266,#18753,#23145,.T.); -#16230=EDGE_CURVE('',#19267,#18752,#23146,.T.); -#16231=EDGE_CURVE('',#19268,#18751,#23147,.T.); -#16232=EDGE_CURVE('',#19269,#18750,#23148,.T.); -#16233=EDGE_CURVE('',#19270,#18749,#23149,.T.); -#16234=EDGE_CURVE('',#19692,#19538,#23150,.T.); -#16235=EDGE_CURVE('',#19693,#19618,#23151,.T.); -#16236=EDGE_CURVE('',#19694,#19615,#23152,.T.); -#16237=EDGE_CURVE('',#19691,#19535,#23153,.T.); -#16238=EDGE_CURVE('',#19272,#18747,#23154,.T.); -#16239=EDGE_CURVE('',#19271,#18748,#23155,.T.); -#16240=EDGE_CURVE('',#19273,#18746,#23156,.T.); -#16241=EDGE_CURVE('',#19274,#18745,#23157,.T.); -#16242=EDGE_CURVE('',#19275,#18744,#23158,.T.); -#16243=EDGE_CURVE('',#19276,#18743,#23159,.T.); -#16244=EDGE_CURVE('',#19279,#18740,#23160,.T.); -#16245=EDGE_CURVE('',#19280,#18739,#23161,.T.); -#16246=EDGE_CURVE('',#19281,#18738,#23162,.T.); -#16247=EDGE_CURVE('',#19282,#18737,#23163,.T.); -#16248=EDGE_CURVE('',#19283,#18736,#23164,.T.); -#16249=EDGE_CURVE('',#19284,#18735,#23165,.T.); -#16250=EDGE_CURVE('',#19688,#19534,#23166,.T.); -#16251=EDGE_CURVE('',#19689,#19614,#23167,.T.); -#16252=EDGE_CURVE('',#18452,#18431,#23168,.T.); -#16253=EDGE_CURVE('',#18451,#18432,#23169,.T.); -#16254=EDGE_CURVE('',#18453,#18430,#23170,.T.); -#16255=EDGE_CURVE('',#18454,#18429,#23171,.T.); -#16256=EDGE_CURVE('',#18455,#18428,#23172,.T.); -#16257=EDGE_CURVE('',#18456,#18427,#23173,.T.); -#16258=EDGE_CURVE('',#18459,#18424,#23174,.T.); -#16259=EDGE_CURVE('',#18460,#18423,#23175,.T.); -#16260=EDGE_CURVE('',#18461,#18422,#23176,.T.); -#16261=EDGE_CURVE('',#18462,#18421,#23177,.T.); -#16262=EDGE_CURVE('',#18463,#18420,#23178,.T.); -#16263=EDGE_CURVE('',#18464,#18419,#23179,.T.); -#16264=EDGE_CURVE('',#19527,#19407,#23180,.T.); -#16265=EDGE_CURVE('',#19769,#19408,#23181,.T.); -#16266=EDGE_CURVE('',#19526,#19406,#23182,.T.); -#16267=EDGE_CURVE('',#19488,#19405,#23183,.T.); -#16268=EDGE_CURVE('',#18466,#18417,#23184,.T.); -#16269=EDGE_CURVE('',#18465,#18418,#23185,.T.); -#16270=EDGE_CURVE('',#18467,#18416,#23186,.T.); -#16271=EDGE_CURVE('',#18468,#18415,#23187,.T.); -#16272=EDGE_CURVE('',#18469,#18414,#23188,.T.); -#16273=EDGE_CURVE('',#18470,#18413,#23189,.T.); -#16274=EDGE_CURVE('',#18473,#18410,#23190,.T.); -#16275=EDGE_CURVE('',#18474,#18409,#23191,.T.); -#16276=EDGE_CURVE('',#18475,#18408,#23192,.T.); -#16277=EDGE_CURVE('',#18476,#18407,#23193,.T.); -#16278=EDGE_CURVE('',#18477,#18406,#23194,.T.); -#16279=EDGE_CURVE('',#18478,#18405,#23195,.T.); -#16280=EDGE_CURVE('',#19525,#19401,#23196,.T.); -#16281=EDGE_CURVE('',#19485,#19402,#23197,.T.); -#16282=EDGE_CURVE('',#19524,#19400,#23198,.T.); -#16283=EDGE_CURVE('',#19484,#19399,#23199,.T.); -#16284=EDGE_CURVE('',#18480,#18403,#23200,.T.); -#16285=EDGE_CURVE('',#18479,#18404,#23201,.T.); -#16286=EDGE_CURVE('',#18481,#18402,#23202,.T.); -#16287=EDGE_CURVE('',#18482,#18401,#23203,.T.); -#16288=EDGE_CURVE('',#18483,#18400,#23204,.T.); -#16289=EDGE_CURVE('',#18484,#18399,#23205,.T.); -#16290=EDGE_CURVE('',#18487,#18396,#23206,.T.); -#16291=EDGE_CURVE('',#18488,#18395,#23207,.T.); -#16292=EDGE_CURVE('',#18489,#18394,#23208,.T.); -#16293=EDGE_CURVE('',#18490,#18393,#23209,.T.); -#16294=EDGE_CURVE('',#18491,#18392,#23210,.T.); -#16295=EDGE_CURVE('',#18492,#18391,#23211,.T.); -#16296=EDGE_CURVE('',#19523,#19395,#23212,.T.); -#16297=EDGE_CURVE('',#19481,#19396,#23213,.T.); -#16298=EDGE_CURVE('',#19522,#19394,#23214,.T.); -#16299=EDGE_CURVE('',#19480,#19393,#23215,.T.); -#16300=EDGE_CURVE('',#18494,#18389,#23216,.T.); -#16301=EDGE_CURVE('',#18493,#18390,#23217,.T.); -#16302=EDGE_CURVE('',#18495,#18388,#23218,.T.); -#16303=EDGE_CURVE('',#18496,#18387,#23219,.T.); -#16304=EDGE_CURVE('',#18497,#18386,#23220,.T.); -#16305=EDGE_CURVE('',#18498,#18385,#23221,.T.); -#16306=EDGE_CURVE('',#18501,#18382,#23222,.T.); -#16307=EDGE_CURVE('',#18502,#18381,#23223,.T.); -#16308=EDGE_CURVE('',#18503,#18380,#23224,.T.); -#16309=EDGE_CURVE('',#18504,#18379,#23225,.T.); -#16310=EDGE_CURVE('',#18505,#18378,#23226,.T.); -#16311=EDGE_CURVE('',#18506,#18377,#23227,.T.); -#16312=EDGE_CURVE('',#19521,#19389,#23228,.T.); -#16313=EDGE_CURVE('',#19477,#19390,#23229,.T.); -#16314=EDGE_CURVE('',#19520,#19388,#23230,.T.); -#16315=EDGE_CURVE('',#19476,#19387,#23231,.T.); -#16316=EDGE_CURVE('',#18508,#18375,#23232,.T.); -#16317=EDGE_CURVE('',#18507,#18376,#23233,.T.); -#16318=EDGE_CURVE('',#18509,#18374,#23234,.T.); -#16319=EDGE_CURVE('',#18510,#18373,#23235,.T.); -#16320=EDGE_CURVE('',#18511,#18372,#23236,.T.); -#16321=EDGE_CURVE('',#18512,#18371,#23237,.T.); -#16322=EDGE_CURVE('',#18515,#18368,#23238,.T.); -#16323=EDGE_CURVE('',#18516,#18367,#23239,.T.); -#16324=EDGE_CURVE('',#18517,#18366,#23240,.T.); -#16325=EDGE_CURVE('',#18518,#18365,#23241,.T.); -#16326=EDGE_CURVE('',#18519,#18364,#23242,.T.); -#16327=EDGE_CURVE('',#18520,#18363,#23243,.T.); -#16328=EDGE_CURVE('',#19519,#19383,#23244,.T.); -#16329=EDGE_CURVE('',#19473,#19384,#23245,.T.); -#16330=EDGE_CURVE('',#19518,#19382,#23246,.T.); -#16331=EDGE_CURVE('',#19472,#19381,#23247,.T.); -#16332=EDGE_CURVE('',#18522,#18361,#23248,.T.); -#16333=EDGE_CURVE('',#18521,#18362,#23249,.T.); -#16334=EDGE_CURVE('',#18523,#18360,#23250,.T.); -#16335=EDGE_CURVE('',#18524,#18359,#23251,.T.); -#16336=EDGE_CURVE('',#18525,#18358,#23252,.T.); -#16337=EDGE_CURVE('',#18526,#18357,#23253,.T.); -#16338=EDGE_CURVE('',#18529,#18354,#23254,.T.); -#16339=EDGE_CURVE('',#18530,#18353,#23255,.T.); -#16340=EDGE_CURVE('',#18531,#18352,#23256,.T.); -#16341=EDGE_CURVE('',#18532,#18351,#23257,.T.); -#16342=EDGE_CURVE('',#18533,#18350,#23258,.T.); -#16343=EDGE_CURVE('',#18534,#18349,#23259,.T.); -#16344=EDGE_CURVE('',#19517,#19377,#23260,.T.); -#16345=EDGE_CURVE('',#19469,#19378,#23261,.T.); -#16346=EDGE_CURVE('',#19516,#19376,#23262,.T.); -#16347=EDGE_CURVE('',#19468,#19375,#23263,.T.); -#16348=EDGE_CURVE('',#18536,#18347,#23264,.T.); -#16349=EDGE_CURVE('',#18535,#18348,#23265,.T.); -#16350=EDGE_CURVE('',#18537,#18346,#23266,.T.); -#16351=EDGE_CURVE('',#18538,#18345,#23267,.T.); -#16352=EDGE_CURVE('',#18539,#18344,#23268,.T.); -#16353=EDGE_CURVE('',#18540,#18343,#23269,.T.); -#16354=EDGE_CURVE('',#18543,#18340,#23270,.T.); -#16355=EDGE_CURVE('',#18544,#18339,#23271,.T.); -#16356=EDGE_CURVE('',#18545,#18338,#23272,.T.); -#16357=EDGE_CURVE('',#18546,#18337,#23273,.T.); -#16358=EDGE_CURVE('',#18547,#18336,#23274,.T.); -#16359=EDGE_CURVE('',#18548,#18335,#23275,.T.); -#16360=EDGE_CURVE('',#19515,#19371,#23276,.T.); -#16361=EDGE_CURVE('',#19465,#19372,#23277,.T.); -#16362=EDGE_CURVE('',#19514,#19370,#23278,.T.); -#16363=EDGE_CURVE('',#19464,#19369,#23279,.T.); -#16364=EDGE_CURVE('',#18550,#18333,#23280,.T.); -#16365=EDGE_CURVE('',#18549,#18334,#23281,.T.); -#16366=EDGE_CURVE('',#18551,#18332,#23282,.T.); -#16367=EDGE_CURVE('',#18552,#18331,#23283,.T.); -#16368=EDGE_CURVE('',#18553,#18330,#23284,.T.); -#16369=EDGE_CURVE('',#18554,#18329,#23285,.T.); -#16370=EDGE_CURVE('',#18557,#18326,#23286,.T.); -#16371=EDGE_CURVE('',#18558,#18325,#23287,.T.); -#16372=EDGE_CURVE('',#18559,#18324,#23288,.T.); -#16373=EDGE_CURVE('',#18560,#18323,#23289,.T.); -#16374=EDGE_CURVE('',#18561,#18322,#23290,.T.); -#16375=EDGE_CURVE('',#18562,#18321,#23291,.T.); -#16376=EDGE_CURVE('',#19513,#19365,#23292,.T.); -#16377=EDGE_CURVE('',#19461,#19366,#23293,.T.); -#16378=EDGE_CURVE('',#19512,#19364,#23294,.T.); -#16379=EDGE_CURVE('',#19460,#19363,#23295,.T.); -#16380=EDGE_CURVE('',#18564,#18319,#23296,.T.); -#16381=EDGE_CURVE('',#18563,#18320,#23297,.T.); -#16382=EDGE_CURVE('',#18565,#18318,#23298,.T.); -#16383=EDGE_CURVE('',#18566,#18317,#23299,.T.); -#16384=EDGE_CURVE('',#18567,#18316,#23300,.T.); -#16385=EDGE_CURVE('',#18568,#18315,#23301,.T.); -#16386=EDGE_CURVE('',#18571,#18312,#23302,.T.); -#16387=EDGE_CURVE('',#18572,#18311,#23303,.T.); -#16388=EDGE_CURVE('',#18573,#18310,#23304,.T.); -#16389=EDGE_CURVE('',#18574,#18309,#23305,.T.); -#16390=EDGE_CURVE('',#18575,#18308,#23306,.T.); -#16391=EDGE_CURVE('',#18576,#18307,#23307,.T.); -#16392=EDGE_CURVE('',#19511,#19359,#23308,.T.); -#16393=EDGE_CURVE('',#19457,#19360,#23309,.T.); -#16394=EDGE_CURVE('',#19510,#19358,#23310,.T.); -#16395=EDGE_CURVE('',#19456,#19357,#23311,.T.); -#16396=EDGE_CURVE('',#18578,#18305,#23312,.T.); -#16397=EDGE_CURVE('',#18577,#18306,#23313,.T.); -#16398=EDGE_CURVE('',#18579,#18304,#23314,.T.); -#16399=EDGE_CURVE('',#18580,#18303,#23315,.T.); -#16400=EDGE_CURVE('',#18581,#18302,#23316,.T.); -#16401=EDGE_CURVE('',#18582,#18301,#23317,.T.); -#16402=EDGE_CURVE('',#18585,#18298,#23318,.T.); -#16403=EDGE_CURVE('',#18586,#18297,#23319,.T.); -#16404=EDGE_CURVE('',#18587,#18296,#23320,.T.); -#16405=EDGE_CURVE('',#18588,#18295,#23321,.T.); -#16406=EDGE_CURVE('',#18589,#18294,#23322,.T.); -#16407=EDGE_CURVE('',#18590,#18293,#23323,.T.); -#16408=EDGE_CURVE('',#19509,#19353,#23324,.T.); -#16409=EDGE_CURVE('',#19453,#19354,#23325,.T.); -#16410=EDGE_CURVE('',#19508,#19352,#23326,.T.); -#16411=EDGE_CURVE('',#19452,#19351,#23327,.T.); -#16412=EDGE_CURVE('',#18592,#18291,#23328,.T.); -#16413=EDGE_CURVE('',#18591,#18292,#23329,.T.); -#16414=EDGE_CURVE('',#18593,#18290,#23330,.T.); -#16415=EDGE_CURVE('',#18594,#18289,#23331,.T.); -#16416=EDGE_CURVE('',#18595,#18288,#23332,.T.); -#16417=EDGE_CURVE('',#18596,#18287,#23333,.T.); -#16418=EDGE_CURVE('',#18599,#18284,#23334,.T.); -#16419=EDGE_CURVE('',#18600,#18283,#23335,.T.); -#16420=EDGE_CURVE('',#18601,#18282,#23336,.T.); -#16421=EDGE_CURVE('',#18602,#18281,#23337,.T.); -#16422=EDGE_CURVE('',#18603,#18280,#23338,.T.); -#16423=EDGE_CURVE('',#18604,#18279,#23339,.T.); -#16424=EDGE_CURVE('',#19507,#19347,#23340,.T.); -#16425=EDGE_CURVE('',#19449,#19348,#23341,.T.); -#16426=EDGE_CURVE('',#19506,#19346,#23342,.T.); -#16427=EDGE_CURVE('',#19448,#19345,#23343,.T.); -#16428=EDGE_CURVE('',#18606,#18277,#23344,.T.); -#16429=EDGE_CURVE('',#18605,#18278,#23345,.T.); -#16430=EDGE_CURVE('',#18607,#18276,#23346,.T.); -#16431=EDGE_CURVE('',#18608,#18275,#23347,.T.); -#16432=EDGE_CURVE('',#18609,#18274,#23348,.T.); -#16433=EDGE_CURVE('',#18610,#18273,#23349,.T.); -#16434=EDGE_CURVE('',#18613,#18270,#23350,.T.); -#16435=EDGE_CURVE('',#18614,#18269,#23351,.T.); -#16436=EDGE_CURVE('',#18615,#18268,#23352,.T.); -#16437=EDGE_CURVE('',#18616,#18267,#23353,.T.); -#16438=EDGE_CURVE('',#18617,#18266,#23354,.T.); -#16439=EDGE_CURVE('',#18618,#18265,#23355,.T.); -#16440=EDGE_CURVE('',#19505,#19341,#23356,.T.); -#16441=EDGE_CURVE('',#19445,#19342,#23357,.T.); -#16442=EDGE_CURVE('',#19504,#19340,#23358,.T.); -#16443=EDGE_CURVE('',#19444,#19339,#23359,.T.); -#16444=EDGE_CURVE('',#18620,#18263,#23360,.T.); -#16445=EDGE_CURVE('',#18619,#18264,#23361,.T.); -#16446=EDGE_CURVE('',#18621,#18262,#23362,.T.); -#16447=EDGE_CURVE('',#18622,#18261,#23363,.T.); -#16448=EDGE_CURVE('',#18623,#18260,#23364,.T.); -#16449=EDGE_CURVE('',#18624,#18259,#23365,.T.); -#16450=EDGE_CURVE('',#18627,#18256,#23366,.T.); -#16451=EDGE_CURVE('',#18628,#18255,#23367,.T.); -#16452=EDGE_CURVE('',#18629,#18254,#23368,.T.); -#16453=EDGE_CURVE('',#18630,#18253,#23369,.T.); -#16454=EDGE_CURVE('',#18631,#18252,#23370,.T.); -#16455=EDGE_CURVE('',#18632,#18251,#23371,.T.); -#16456=EDGE_CURVE('',#19503,#19335,#23372,.T.); -#16457=EDGE_CURVE('',#19441,#19336,#23373,.T.); -#16458=EDGE_CURVE('',#19502,#19334,#23374,.T.); -#16459=EDGE_CURVE('',#19440,#19333,#23375,.T.); -#16460=EDGE_CURVE('',#18634,#18249,#23376,.T.); -#16461=EDGE_CURVE('',#18633,#18250,#23377,.T.); -#16462=EDGE_CURVE('',#18635,#18248,#23378,.T.); -#16463=EDGE_CURVE('',#18636,#18247,#23379,.T.); -#16464=EDGE_CURVE('',#18637,#18246,#23380,.T.); -#16465=EDGE_CURVE('',#18638,#18245,#23381,.T.); -#16466=EDGE_CURVE('',#18641,#18242,#23382,.T.); -#16467=EDGE_CURVE('',#18642,#18241,#23383,.T.); -#16468=EDGE_CURVE('',#18643,#18240,#23384,.T.); -#16469=EDGE_CURVE('',#18644,#18239,#23385,.T.); -#16470=EDGE_CURVE('',#18645,#18238,#23386,.T.); -#16471=EDGE_CURVE('',#18646,#18237,#23387,.T.); -#16472=EDGE_CURVE('',#19501,#19329,#23388,.T.); -#16473=EDGE_CURVE('',#19437,#19330,#23389,.T.); -#16474=EDGE_CURVE('',#19500,#19328,#23390,.T.); -#16475=EDGE_CURVE('',#19436,#19327,#23391,.T.); -#16476=EDGE_CURVE('',#18648,#18235,#23392,.T.); -#16477=EDGE_CURVE('',#18647,#18236,#23393,.T.); -#16478=EDGE_CURVE('',#18649,#18234,#23394,.T.); -#16479=EDGE_CURVE('',#18650,#18233,#23395,.T.); -#16480=EDGE_CURVE('',#18651,#18232,#23396,.T.); -#16481=EDGE_CURVE('',#18652,#18231,#23397,.T.); -#16482=EDGE_CURVE('',#18655,#18228,#23398,.T.); -#16483=EDGE_CURVE('',#18656,#18227,#23399,.T.); -#16484=EDGE_CURVE('',#18657,#18226,#23400,.T.); -#16485=EDGE_CURVE('',#18658,#18225,#23401,.T.); -#16486=EDGE_CURVE('',#18659,#18224,#23402,.T.); -#16487=EDGE_CURVE('',#18660,#18223,#23403,.T.); -#16488=EDGE_CURVE('',#19499,#19323,#23404,.T.); -#16489=EDGE_CURVE('',#19433,#19324,#23405,.T.); -#16490=EDGE_CURVE('',#19498,#19322,#23406,.T.); -#16491=EDGE_CURVE('',#19432,#19321,#23407,.T.); -#16492=EDGE_CURVE('',#18662,#18221,#23408,.T.); -#16493=EDGE_CURVE('',#18661,#18222,#23409,.T.); -#16494=EDGE_CURVE('',#18663,#18220,#23410,.T.); -#16495=EDGE_CURVE('',#18664,#18219,#23411,.T.); -#16496=EDGE_CURVE('',#18665,#18218,#23412,.T.); -#16497=EDGE_CURVE('',#18666,#18217,#23413,.T.); -#16498=EDGE_CURVE('',#18669,#18214,#23414,.T.); -#16499=EDGE_CURVE('',#18670,#18213,#23415,.T.); -#16500=EDGE_CURVE('',#18671,#18212,#23416,.T.); -#16501=EDGE_CURVE('',#18672,#18211,#23417,.T.); -#16502=EDGE_CURVE('',#18673,#18210,#23418,.T.); -#16503=EDGE_CURVE('',#18674,#18209,#23419,.T.); -#16504=EDGE_CURVE('',#19497,#19317,#23420,.T.); -#16505=EDGE_CURVE('',#19429,#19318,#23421,.T.); -#16506=EDGE_CURVE('',#19496,#19316,#23422,.T.); -#16507=EDGE_CURVE('',#19428,#19315,#23423,.T.); -#16508=EDGE_CURVE('',#18676,#18207,#23424,.T.); -#16509=EDGE_CURVE('',#18675,#18208,#23425,.T.); -#16510=EDGE_CURVE('',#18677,#18206,#23426,.T.); -#16511=EDGE_CURVE('',#18678,#18205,#23427,.T.); -#16512=EDGE_CURVE('',#18679,#18204,#23428,.T.); -#16513=EDGE_CURVE('',#18680,#18203,#23429,.T.); -#16514=EDGE_CURVE('',#18683,#18200,#23430,.T.); -#16515=EDGE_CURVE('',#18684,#18199,#23431,.T.); -#16516=EDGE_CURVE('',#18685,#18198,#23432,.T.); -#16517=EDGE_CURVE('',#18686,#18197,#23433,.T.); -#16518=EDGE_CURVE('',#18687,#18196,#23434,.T.); -#16519=EDGE_CURVE('',#18688,#18195,#23435,.T.); -#16520=EDGE_CURVE('',#19495,#19311,#23436,.T.); -#16521=EDGE_CURVE('',#19425,#19312,#23437,.T.); -#16522=EDGE_CURVE('',#19494,#19310,#23438,.T.); -#16523=EDGE_CURVE('',#19424,#19309,#23439,.T.); -#16524=EDGE_CURVE('',#18690,#18193,#23440,.T.); -#16525=EDGE_CURVE('',#18689,#18194,#23441,.T.); -#16526=EDGE_CURVE('',#18691,#18192,#23442,.T.); -#16527=EDGE_CURVE('',#18692,#18191,#23443,.T.); -#16528=EDGE_CURVE('',#18693,#18190,#23444,.T.); -#16529=EDGE_CURVE('',#18694,#18189,#23445,.T.); -#16530=EDGE_CURVE('',#18697,#18186,#23446,.T.); -#16531=EDGE_CURVE('',#18698,#18185,#23447,.T.); -#16532=EDGE_CURVE('',#18699,#18184,#23448,.T.); -#16533=EDGE_CURVE('',#18700,#18183,#23449,.T.); -#16534=EDGE_CURVE('',#18701,#18182,#23450,.T.); -#16535=EDGE_CURVE('',#18702,#18181,#23451,.T.); -#16536=EDGE_CURVE('',#19493,#19305,#23452,.T.); -#16537=EDGE_CURVE('',#19421,#19306,#23453,.T.); -#16538=EDGE_CURVE('',#19492,#19304,#23454,.T.); -#16539=EDGE_CURVE('',#19420,#19303,#23455,.T.); -#16540=EDGE_CURVE('',#18704,#18179,#23456,.T.); -#16541=EDGE_CURVE('',#18703,#18180,#23457,.T.); -#16542=EDGE_CURVE('',#18705,#18178,#23458,.T.); -#16543=EDGE_CURVE('',#18706,#18177,#23459,.T.); -#16544=EDGE_CURVE('',#18707,#18176,#23460,.T.); -#16545=EDGE_CURVE('',#18708,#18175,#23461,.T.); -#16546=EDGE_CURVE('',#18711,#18172,#23462,.T.); -#16547=EDGE_CURVE('',#18712,#18171,#23463,.T.); -#16548=EDGE_CURVE('',#18713,#18170,#23464,.T.); -#16549=EDGE_CURVE('',#18714,#18169,#23465,.T.); -#16550=EDGE_CURVE('',#18715,#18168,#23466,.T.); -#16551=EDGE_CURVE('',#18716,#18167,#23467,.T.); -#16552=EDGE_CURVE('',#19491,#19299,#23468,.T.); -#16553=EDGE_CURVE('',#19417,#19300,#23469,.T.); -#16554=EDGE_CURVE('',#19490,#19298,#23470,.T.); -#16555=EDGE_CURVE('',#19416,#19297,#23471,.T.); -#16556=VERTEX_POINT('',#45119); -#16557=VERTEX_POINT('',#45120); -#16558=VERTEX_POINT('',#45122); -#16559=VERTEX_POINT('',#45124); -#16560=VERTEX_POINT('',#45126); -#16561=VERTEX_POINT('',#45128); -#16562=VERTEX_POINT('',#45132); -#16563=VERTEX_POINT('',#45133); -#16564=VERTEX_POINT('',#45135); -#16565=VERTEX_POINT('',#45137); -#16566=VERTEX_POINT('',#45139); -#16567=VERTEX_POINT('',#45141); -#16568=VERTEX_POINT('',#45145); -#16569=VERTEX_POINT('',#45147); -#16570=VERTEX_POINT('',#45149); -#16571=VERTEX_POINT('',#45151); -#16572=VERTEX_POINT('',#45153); -#16573=VERTEX_POINT('',#45155); -#16574=VERTEX_POINT('',#45157); -#16575=VERTEX_POINT('',#45159); -#16576=VERTEX_POINT('',#45161); -#16577=VERTEX_POINT('',#45163); -#16578=VERTEX_POINT('',#45165); -#16579=VERTEX_POINT('',#45167); -#16580=VERTEX_POINT('',#45169); -#16581=VERTEX_POINT('',#45171); -#16582=VERTEX_POINT('',#45173); -#16583=VERTEX_POINT('',#45175); -#16584=VERTEX_POINT('',#45177); -#16585=VERTEX_POINT('',#45179); -#16586=VERTEX_POINT('',#45181); -#16587=VERTEX_POINT('',#45183); -#16588=VERTEX_POINT('',#45185); -#16589=VERTEX_POINT('',#45187); -#16590=VERTEX_POINT('',#45189); -#16591=VERTEX_POINT('',#45191); -#16592=VERTEX_POINT('',#45193); -#16593=VERTEX_POINT('',#45195); -#16594=VERTEX_POINT('',#45197); -#16595=VERTEX_POINT('',#45199); -#16596=VERTEX_POINT('',#45202); -#16597=VERTEX_POINT('',#45204); -#16598=VERTEX_POINT('',#45206); -#16599=VERTEX_POINT('',#45209); -#16600=VERTEX_POINT('',#45210); -#16601=VERTEX_POINT('',#45212); -#16602=VERTEX_POINT('',#45214); -#16603=VERTEX_POINT('',#45216); -#16604=VERTEX_POINT('',#45218); -#16605=VERTEX_POINT('',#45220); -#16606=VERTEX_POINT('',#45222); -#16607=VERTEX_POINT('',#45224); -#16608=VERTEX_POINT('',#45226); -#16609=VERTEX_POINT('',#45229); -#16610=VERTEX_POINT('',#45230); -#16611=VERTEX_POINT('',#45232); -#16612=VERTEX_POINT('',#45234); -#16613=VERTEX_POINT('',#45236); -#16614=VERTEX_POINT('',#45238); -#16615=VERTEX_POINT('',#45240); -#16616=VERTEX_POINT('',#45242); -#16617=VERTEX_POINT('',#45245); -#16618=VERTEX_POINT('',#45247); -#16619=VERTEX_POINT('',#45248); -#16620=VERTEX_POINT('',#45250); -#16621=VERTEX_POINT('',#45252); -#16622=VERTEX_POINT('',#45254); -#16623=VERTEX_POINT('',#45256); -#16624=VERTEX_POINT('',#45258); -#16625=VERTEX_POINT('',#45260); -#16626=VERTEX_POINT('',#45262); -#16627=VERTEX_POINT('',#45264); -#16628=VERTEX_POINT('',#45268); -#16629=VERTEX_POINT('',#45270); -#16630=VERTEX_POINT('',#45272); -#16631=VERTEX_POINT('',#45275); -#16632=VERTEX_POINT('',#45279); -#16633=VERTEX_POINT('',#45280); -#16634=VERTEX_POINT('',#45282); -#16635=VERTEX_POINT('',#45284); -#16636=VERTEX_POINT('',#45286); -#16637=VERTEX_POINT('',#45288); -#16638=VERTEX_POINT('',#45290); -#16639=VERTEX_POINT('',#45292); -#16640=VERTEX_POINT('',#45294); -#16641=VERTEX_POINT('',#45296); -#16642=VERTEX_POINT('',#45298); -#16643=VERTEX_POINT('',#45300); -#16644=VERTEX_POINT('',#45302); -#16645=VERTEX_POINT('',#45304); -#16646=VERTEX_POINT('',#45306); -#16647=VERTEX_POINT('',#45308); -#16648=VERTEX_POINT('',#45310); -#16649=VERTEX_POINT('',#45312); -#16650=VERTEX_POINT('',#45314); -#16651=VERTEX_POINT('',#45316); -#16652=VERTEX_POINT('',#45318); -#16653=VERTEX_POINT('',#45320); -#16654=VERTEX_POINT('',#45322); -#16655=VERTEX_POINT('',#45324); -#16656=VERTEX_POINT('',#45326); -#16657=VERTEX_POINT('',#45328); -#16658=VERTEX_POINT('',#45330); -#16659=VERTEX_POINT('',#45332); -#16660=VERTEX_POINT('',#45334); -#16661=VERTEX_POINT('',#45336); -#16662=VERTEX_POINT('',#45338); -#16663=VERTEX_POINT('',#45340); -#16664=VERTEX_POINT('',#45342); -#16665=VERTEX_POINT('',#45344); -#16666=VERTEX_POINT('',#45346); -#16667=VERTEX_POINT('',#45348); -#16668=VERTEX_POINT('',#45350); -#16669=VERTEX_POINT('',#45352); -#16670=VERTEX_POINT('',#45354); -#16671=VERTEX_POINT('',#45356); -#16672=VERTEX_POINT('',#45358); -#16673=VERTEX_POINT('',#45360); -#16674=VERTEX_POINT('',#45362); -#16675=VERTEX_POINT('',#45364); -#16676=VERTEX_POINT('',#45366); -#16677=VERTEX_POINT('',#45368); -#16678=VERTEX_POINT('',#45370); -#16679=VERTEX_POINT('',#45372); -#16680=VERTEX_POINT('',#45374); -#16681=VERTEX_POINT('',#45376); -#16682=VERTEX_POINT('',#45378); -#16683=VERTEX_POINT('',#45380); -#16684=VERTEX_POINT('',#45382); -#16685=VERTEX_POINT('',#45384); -#16686=VERTEX_POINT('',#45386); -#16687=VERTEX_POINT('',#45388); -#16688=VERTEX_POINT('',#45390); -#16689=VERTEX_POINT('',#45392); -#16690=VERTEX_POINT('',#45394); -#16691=VERTEX_POINT('',#45396); -#16692=VERTEX_POINT('',#45398); -#16693=VERTEX_POINT('',#45400); -#16694=VERTEX_POINT('',#45402); -#16695=VERTEX_POINT('',#45404); -#16696=VERTEX_POINT('',#45406); -#16697=VERTEX_POINT('',#45408); -#16698=VERTEX_POINT('',#45410); -#16699=VERTEX_POINT('',#45412); -#16700=VERTEX_POINT('',#45414); -#16701=VERTEX_POINT('',#45416); -#16702=VERTEX_POINT('',#45418); -#16703=VERTEX_POINT('',#45420); -#16704=VERTEX_POINT('',#45422); -#16705=VERTEX_POINT('',#45424); -#16706=VERTEX_POINT('',#45426); -#16707=VERTEX_POINT('',#45428); -#16708=VERTEX_POINT('',#45430); -#16709=VERTEX_POINT('',#45432); -#16710=VERTEX_POINT('',#45434); -#16711=VERTEX_POINT('',#45436); -#16712=VERTEX_POINT('',#45438); -#16713=VERTEX_POINT('',#45440); -#16714=VERTEX_POINT('',#45442); -#16715=VERTEX_POINT('',#45444); -#16716=VERTEX_POINT('',#45446); -#16717=VERTEX_POINT('',#45448); -#16718=VERTEX_POINT('',#45450); -#16719=VERTEX_POINT('',#45452); -#16720=VERTEX_POINT('',#45454); -#16721=VERTEX_POINT('',#45456); -#16722=VERTEX_POINT('',#45458); -#16723=VERTEX_POINT('',#45460); -#16724=VERTEX_POINT('',#45462); -#16725=VERTEX_POINT('',#45464); -#16726=VERTEX_POINT('',#45466); -#16727=VERTEX_POINT('',#45468); -#16728=VERTEX_POINT('',#45470); -#16729=VERTEX_POINT('',#45472); -#16730=VERTEX_POINT('',#45474); -#16731=VERTEX_POINT('',#45476); -#16732=VERTEX_POINT('',#45478); -#16733=VERTEX_POINT('',#45480); -#16734=VERTEX_POINT('',#45482); -#16735=VERTEX_POINT('',#45484); -#16736=VERTEX_POINT('',#45486); -#16737=VERTEX_POINT('',#45488); -#16738=VERTEX_POINT('',#45490); -#16739=VERTEX_POINT('',#45492); -#16740=VERTEX_POINT('',#45494); -#16741=VERTEX_POINT('',#45496); -#16742=VERTEX_POINT('',#45498); -#16743=VERTEX_POINT('',#45500); -#16744=VERTEX_POINT('',#45502); -#16745=VERTEX_POINT('',#45504); -#16746=VERTEX_POINT('',#45506); -#16747=VERTEX_POINT('',#45508); -#16748=VERTEX_POINT('',#45510); -#16749=VERTEX_POINT('',#45512); -#16750=VERTEX_POINT('',#45514); -#16751=VERTEX_POINT('',#45516); -#16752=VERTEX_POINT('',#45518); -#16753=VERTEX_POINT('',#45520); -#16754=VERTEX_POINT('',#45522); -#16755=VERTEX_POINT('',#45524); -#16756=VERTEX_POINT('',#45526); -#16757=VERTEX_POINT('',#45528); -#16758=VERTEX_POINT('',#45530); -#16759=VERTEX_POINT('',#45532); -#16760=VERTEX_POINT('',#45534); -#16761=VERTEX_POINT('',#45536); -#16762=VERTEX_POINT('',#45538); -#16763=VERTEX_POINT('',#45540); -#16764=VERTEX_POINT('',#45542); -#16765=VERTEX_POINT('',#45544); -#16766=VERTEX_POINT('',#45546); -#16767=VERTEX_POINT('',#45548); -#16768=VERTEX_POINT('',#45550); -#16769=VERTEX_POINT('',#45552); -#16770=VERTEX_POINT('',#45554); -#16771=VERTEX_POINT('',#45556); -#16772=VERTEX_POINT('',#45558); -#16773=VERTEX_POINT('',#45560); -#16774=VERTEX_POINT('',#45562); -#16775=VERTEX_POINT('',#45564); -#16776=VERTEX_POINT('',#45566); -#16777=VERTEX_POINT('',#45568); -#16778=VERTEX_POINT('',#45570); -#16779=VERTEX_POINT('',#45572); -#16780=VERTEX_POINT('',#45574); -#16781=VERTEX_POINT('',#45576); -#16782=VERTEX_POINT('',#45578); -#16783=VERTEX_POINT('',#45580); -#16784=VERTEX_POINT('',#45582); -#16785=VERTEX_POINT('',#45584); -#16786=VERTEX_POINT('',#45586); -#16787=VERTEX_POINT('',#45588); -#16788=VERTEX_POINT('',#45590); -#16789=VERTEX_POINT('',#45592); -#16790=VERTEX_POINT('',#45594); -#16791=VERTEX_POINT('',#45596); -#16792=VERTEX_POINT('',#45598); -#16793=VERTEX_POINT('',#45600); -#16794=VERTEX_POINT('',#45602); -#16795=VERTEX_POINT('',#45604); -#16796=VERTEX_POINT('',#45606); -#16797=VERTEX_POINT('',#45608); -#16798=VERTEX_POINT('',#45611); -#16799=VERTEX_POINT('',#45612); -#16800=VERTEX_POINT('',#45614); -#16801=VERTEX_POINT('',#45616); -#16802=VERTEX_POINT('',#45619); -#16803=VERTEX_POINT('',#45621); -#16804=VERTEX_POINT('',#45623); -#16805=VERTEX_POINT('',#45625); -#16806=VERTEX_POINT('',#45627); -#16807=VERTEX_POINT('',#45629); -#16808=VERTEX_POINT('',#45631); -#16809=VERTEX_POINT('',#45633); -#16810=VERTEX_POINT('',#45635); -#16811=VERTEX_POINT('',#45637); -#16812=VERTEX_POINT('',#45639); -#16813=VERTEX_POINT('',#45641); -#16814=VERTEX_POINT('',#45643); -#16815=VERTEX_POINT('',#45645); -#16816=VERTEX_POINT('',#45647); -#16817=VERTEX_POINT('',#45649); -#16818=VERTEX_POINT('',#45651); -#16819=VERTEX_POINT('',#45653); -#16820=VERTEX_POINT('',#45655); -#16821=VERTEX_POINT('',#45657); -#16822=VERTEX_POINT('',#45659); -#16823=VERTEX_POINT('',#45661); -#16824=VERTEX_POINT('',#45663); -#16825=VERTEX_POINT('',#45665); -#16826=VERTEX_POINT('',#45667); -#16827=VERTEX_POINT('',#45669); -#16828=VERTEX_POINT('',#45671); -#16829=VERTEX_POINT('',#45673); -#16830=VERTEX_POINT('',#45675); -#16831=VERTEX_POINT('',#45677); -#16832=VERTEX_POINT('',#45679); -#16833=VERTEX_POINT('',#45681); -#16834=VERTEX_POINT('',#45685); -#16835=VERTEX_POINT('',#45687); -#16836=VERTEX_POINT('',#45689); -#16837=VERTEX_POINT('',#45691); -#16838=VERTEX_POINT('',#45693); -#16839=VERTEX_POINT('',#45695); -#16840=VERTEX_POINT('',#45697); -#16841=VERTEX_POINT('',#45699); -#16842=VERTEX_POINT('',#45701); -#16843=VERTEX_POINT('',#45703); -#16844=VERTEX_POINT('',#45705); -#16845=VERTEX_POINT('',#45707); -#16846=VERTEX_POINT('',#45709); -#16847=VERTEX_POINT('',#45711); -#16848=VERTEX_POINT('',#45713); -#16849=VERTEX_POINT('',#45715); -#16850=VERTEX_POINT('',#45717); -#16851=VERTEX_POINT('',#45719); -#16852=VERTEX_POINT('',#45721); -#16853=VERTEX_POINT('',#45723); -#16854=VERTEX_POINT('',#45725); -#16855=VERTEX_POINT('',#45727); -#16856=VERTEX_POINT('',#45729); -#16857=VERTEX_POINT('',#45731); -#16858=VERTEX_POINT('',#45733); -#16859=VERTEX_POINT('',#45735); -#16860=VERTEX_POINT('',#45737); -#16861=VERTEX_POINT('',#45739); -#16862=VERTEX_POINT('',#45741); -#16863=VERTEX_POINT('',#45743); -#16864=VERTEX_POINT('',#45745); -#16865=VERTEX_POINT('',#45747); -#16866=VERTEX_POINT('',#45749); -#16867=VERTEX_POINT('',#45751); -#16868=VERTEX_POINT('',#45753); -#16869=VERTEX_POINT('',#45755); -#16870=VERTEX_POINT('',#45757); -#16871=VERTEX_POINT('',#45759); -#16872=VERTEX_POINT('',#45763); -#16873=VERTEX_POINT('',#45766); -#16874=VERTEX_POINT('',#45768); -#16875=VERTEX_POINT('',#45773); -#16876=VERTEX_POINT('',#45774); -#16877=VERTEX_POINT('',#45776); -#16878=VERTEX_POINT('',#45778); -#16879=VERTEX_POINT('',#45782); -#16880=VERTEX_POINT('',#45783); -#16881=VERTEX_POINT('',#45785); -#16882=VERTEX_POINT('',#45787); -#16883=VERTEX_POINT('',#45791); -#16884=VERTEX_POINT('',#45792); -#16885=VERTEX_POINT('',#45796); -#16886=VERTEX_POINT('',#45798); -#16887=VERTEX_POINT('',#45804); -#16888=VERTEX_POINT('',#45806); -#16889=VERTEX_POINT('',#45810); -#16890=VERTEX_POINT('',#45812); -#16891=VERTEX_POINT('',#45817); -#16892=VERTEX_POINT('',#45818); -#16893=VERTEX_POINT('',#45820); -#16894=VERTEX_POINT('',#45822); -#16895=VERTEX_POINT('',#45826); -#16896=VERTEX_POINT('',#45827); -#16897=VERTEX_POINT('',#45829); -#16898=VERTEX_POINT('',#45831); -#16899=VERTEX_POINT('',#45835); -#16900=VERTEX_POINT('',#45836); -#16901=VERTEX_POINT('',#45840); -#16902=VERTEX_POINT('',#45842); -#16903=VERTEX_POINT('',#45848); -#16904=VERTEX_POINT('',#45850); -#16905=VERTEX_POINT('',#45854); -#16906=VERTEX_POINT('',#45856); -#16907=VERTEX_POINT('',#45861); -#16908=VERTEX_POINT('',#45862); -#16909=VERTEX_POINT('',#45864); -#16910=VERTEX_POINT('',#45866); -#16911=VERTEX_POINT('',#45870); -#16912=VERTEX_POINT('',#45871); -#16913=VERTEX_POINT('',#45873); -#16914=VERTEX_POINT('',#45875); -#16915=VERTEX_POINT('',#45879); -#16916=VERTEX_POINT('',#45880); -#16917=VERTEX_POINT('',#45884); -#16918=VERTEX_POINT('',#45886); -#16919=VERTEX_POINT('',#45892); -#16920=VERTEX_POINT('',#45894); -#16921=VERTEX_POINT('',#45898); -#16922=VERTEX_POINT('',#45900); -#16923=VERTEX_POINT('',#45905); -#16924=VERTEX_POINT('',#45906); -#16925=VERTEX_POINT('',#45908); -#16926=VERTEX_POINT('',#45910); -#16927=VERTEX_POINT('',#45914); -#16928=VERTEX_POINT('',#45915); -#16929=VERTEX_POINT('',#45917); -#16930=VERTEX_POINT('',#45919); -#16931=VERTEX_POINT('',#45923); -#16932=VERTEX_POINT('',#45924); -#16933=VERTEX_POINT('',#45928); -#16934=VERTEX_POINT('',#45930); -#16935=VERTEX_POINT('',#45936); -#16936=VERTEX_POINT('',#45938); -#16937=VERTEX_POINT('',#45942); -#16938=VERTEX_POINT('',#45944); -#16939=VERTEX_POINT('',#45949); -#16940=VERTEX_POINT('',#45950); -#16941=VERTEX_POINT('',#45952); -#16942=VERTEX_POINT('',#45954); -#16943=VERTEX_POINT('',#45958); -#16944=VERTEX_POINT('',#45959); -#16945=VERTEX_POINT('',#45961); -#16946=VERTEX_POINT('',#45963); -#16947=VERTEX_POINT('',#45967); -#16948=VERTEX_POINT('',#45968); -#16949=VERTEX_POINT('',#45972); -#16950=VERTEX_POINT('',#45974); -#16951=VERTEX_POINT('',#45980); -#16952=VERTEX_POINT('',#45982); -#16953=VERTEX_POINT('',#45986); -#16954=VERTEX_POINT('',#45988); -#16955=VERTEX_POINT('',#45993); -#16956=VERTEX_POINT('',#45994); -#16957=VERTEX_POINT('',#45996); -#16958=VERTEX_POINT('',#45998); -#16959=VERTEX_POINT('',#46002); -#16960=VERTEX_POINT('',#46003); -#16961=VERTEX_POINT('',#46005); -#16962=VERTEX_POINT('',#46007); -#16963=VERTEX_POINT('',#46011); -#16964=VERTEX_POINT('',#46012); -#16965=VERTEX_POINT('',#46016); -#16966=VERTEX_POINT('',#46018); -#16967=VERTEX_POINT('',#46024); -#16968=VERTEX_POINT('',#46026); -#16969=VERTEX_POINT('',#46030); -#16970=VERTEX_POINT('',#46032); -#16971=VERTEX_POINT('',#46037); -#16972=VERTEX_POINT('',#46038); -#16973=VERTEX_POINT('',#46040); -#16974=VERTEX_POINT('',#46042); -#16975=VERTEX_POINT('',#46046); -#16976=VERTEX_POINT('',#46047); -#16977=VERTEX_POINT('',#46049); -#16978=VERTEX_POINT('',#46051); -#16979=VERTEX_POINT('',#46055); -#16980=VERTEX_POINT('',#46056); -#16981=VERTEX_POINT('',#46060); -#16982=VERTEX_POINT('',#46062); -#16983=VERTEX_POINT('',#46068); -#16984=VERTEX_POINT('',#46070); -#16985=VERTEX_POINT('',#46074); -#16986=VERTEX_POINT('',#46076); -#16987=VERTEX_POINT('',#46081); -#16988=VERTEX_POINT('',#46082); -#16989=VERTEX_POINT('',#46084); -#16990=VERTEX_POINT('',#46086); -#16991=VERTEX_POINT('',#46090); -#16992=VERTEX_POINT('',#46091); -#16993=VERTEX_POINT('',#46093); -#16994=VERTEX_POINT('',#46095); -#16995=VERTEX_POINT('',#46099); -#16996=VERTEX_POINT('',#46100); -#16997=VERTEX_POINT('',#46104); -#16998=VERTEX_POINT('',#46106); -#16999=VERTEX_POINT('',#46112); -#17000=VERTEX_POINT('',#46114); -#17001=VERTEX_POINT('',#46118); -#17002=VERTEX_POINT('',#46120); -#17003=VERTEX_POINT('',#46125); -#17004=VERTEX_POINT('',#46126); -#17005=VERTEX_POINT('',#46128); -#17006=VERTEX_POINT('',#46130); -#17007=VERTEX_POINT('',#46134); -#17008=VERTEX_POINT('',#46135); -#17009=VERTEX_POINT('',#46137); -#17010=VERTEX_POINT('',#46139); -#17011=VERTEX_POINT('',#46143); -#17012=VERTEX_POINT('',#46144); -#17013=VERTEX_POINT('',#46148); -#17014=VERTEX_POINT('',#46150); -#17015=VERTEX_POINT('',#46156); -#17016=VERTEX_POINT('',#46158); -#17017=VERTEX_POINT('',#46162); -#17018=VERTEX_POINT('',#46164); -#17019=VERTEX_POINT('',#46169); -#17020=VERTEX_POINT('',#46170); -#17021=VERTEX_POINT('',#46172); -#17022=VERTEX_POINT('',#46174); -#17023=VERTEX_POINT('',#46178); -#17024=VERTEX_POINT('',#46179); -#17025=VERTEX_POINT('',#46181); -#17026=VERTEX_POINT('',#46183); -#17027=VERTEX_POINT('',#46187); -#17028=VERTEX_POINT('',#46188); -#17029=VERTEX_POINT('',#46192); -#17030=VERTEX_POINT('',#46194); -#17031=VERTEX_POINT('',#46200); -#17032=VERTEX_POINT('',#46202); -#17033=VERTEX_POINT('',#46206); -#17034=VERTEX_POINT('',#46208); -#17035=VERTEX_POINT('',#46213); -#17036=VERTEX_POINT('',#46214); -#17037=VERTEX_POINT('',#46216); -#17038=VERTEX_POINT('',#46218); -#17039=VERTEX_POINT('',#46222); -#17040=VERTEX_POINT('',#46223); -#17041=VERTEX_POINT('',#46225); -#17042=VERTEX_POINT('',#46227); -#17043=VERTEX_POINT('',#46231); -#17044=VERTEX_POINT('',#46232); -#17045=VERTEX_POINT('',#46236); -#17046=VERTEX_POINT('',#46238); -#17047=VERTEX_POINT('',#46244); -#17048=VERTEX_POINT('',#46246); -#17049=VERTEX_POINT('',#46250); -#17050=VERTEX_POINT('',#46252); -#17051=VERTEX_POINT('',#46257); -#17052=VERTEX_POINT('',#46258); -#17053=VERTEX_POINT('',#46260); -#17054=VERTEX_POINT('',#46262); -#17055=VERTEX_POINT('',#46266); -#17056=VERTEX_POINT('',#46267); -#17057=VERTEX_POINT('',#46269); -#17058=VERTEX_POINT('',#46271); -#17059=VERTEX_POINT('',#46275); -#17060=VERTEX_POINT('',#46276); -#17061=VERTEX_POINT('',#46280); -#17062=VERTEX_POINT('',#46282); -#17063=VERTEX_POINT('',#46288); -#17064=VERTEX_POINT('',#46290); -#17065=VERTEX_POINT('',#46294); -#17066=VERTEX_POINT('',#46296); -#17067=VERTEX_POINT('',#46301); -#17068=VERTEX_POINT('',#46302); -#17069=VERTEX_POINT('',#46304); -#17070=VERTEX_POINT('',#46306); -#17071=VERTEX_POINT('',#46310); -#17072=VERTEX_POINT('',#46311); -#17073=VERTEX_POINT('',#46313); -#17074=VERTEX_POINT('',#46315); -#17075=VERTEX_POINT('',#46319); -#17076=VERTEX_POINT('',#46320); -#17077=VERTEX_POINT('',#46324); -#17078=VERTEX_POINT('',#46326); -#17079=VERTEX_POINT('',#46332); -#17080=VERTEX_POINT('',#46334); -#17081=VERTEX_POINT('',#46338); -#17082=VERTEX_POINT('',#46340); -#17083=VERTEX_POINT('',#46345); -#17084=VERTEX_POINT('',#46346); -#17085=VERTEX_POINT('',#46348); -#17086=VERTEX_POINT('',#46350); -#17087=VERTEX_POINT('',#46354); -#17088=VERTEX_POINT('',#46355); -#17089=VERTEX_POINT('',#46357); -#17090=VERTEX_POINT('',#46359); -#17091=VERTEX_POINT('',#46363); -#17092=VERTEX_POINT('',#46364); -#17093=VERTEX_POINT('',#46368); -#17094=VERTEX_POINT('',#46370); -#17095=VERTEX_POINT('',#46376); -#17096=VERTEX_POINT('',#46378); -#17097=VERTEX_POINT('',#46382); -#17098=VERTEX_POINT('',#46384); -#17099=VERTEX_POINT('',#46389); -#17100=VERTEX_POINT('',#46390); -#17101=VERTEX_POINT('',#46392); -#17102=VERTEX_POINT('',#46394); -#17103=VERTEX_POINT('',#46398); -#17104=VERTEX_POINT('',#46399); -#17105=VERTEX_POINT('',#46401); -#17106=VERTEX_POINT('',#46403); -#17107=VERTEX_POINT('',#46407); -#17108=VERTEX_POINT('',#46408); -#17109=VERTEX_POINT('',#46412); -#17110=VERTEX_POINT('',#46414); -#17111=VERTEX_POINT('',#46420); -#17112=VERTEX_POINT('',#46422); -#17113=VERTEX_POINT('',#46426); -#17114=VERTEX_POINT('',#46428); -#17115=VERTEX_POINT('',#46433); -#17116=VERTEX_POINT('',#46434); -#17117=VERTEX_POINT('',#46436); -#17118=VERTEX_POINT('',#46438); -#17119=VERTEX_POINT('',#46442); -#17120=VERTEX_POINT('',#46443); -#17121=VERTEX_POINT('',#46445); -#17122=VERTEX_POINT('',#46447); -#17123=VERTEX_POINT('',#46451); -#17124=VERTEX_POINT('',#46452); -#17125=VERTEX_POINT('',#46456); -#17126=VERTEX_POINT('',#46458); -#17127=VERTEX_POINT('',#46464); -#17128=VERTEX_POINT('',#46466); -#17129=VERTEX_POINT('',#46470); -#17130=VERTEX_POINT('',#46472); -#17131=VERTEX_POINT('',#46477); -#17132=VERTEX_POINT('',#46478); -#17133=VERTEX_POINT('',#46480); -#17134=VERTEX_POINT('',#46482); -#17135=VERTEX_POINT('',#46486); -#17136=VERTEX_POINT('',#46487); -#17137=VERTEX_POINT('',#46489); -#17138=VERTEX_POINT('',#46491); -#17139=VERTEX_POINT('',#46495); -#17140=VERTEX_POINT('',#46496); -#17141=VERTEX_POINT('',#46500); -#17142=VERTEX_POINT('',#46502); -#17143=VERTEX_POINT('',#46508); -#17144=VERTEX_POINT('',#46510); -#17145=VERTEX_POINT('',#46514); -#17146=VERTEX_POINT('',#46516); -#17147=VERTEX_POINT('',#46521); -#17148=VERTEX_POINT('',#46522); -#17149=VERTEX_POINT('',#46524); -#17150=VERTEX_POINT('',#46526); -#17151=VERTEX_POINT('',#46530); -#17152=VERTEX_POINT('',#46531); -#17153=VERTEX_POINT('',#46533); -#17154=VERTEX_POINT('',#46535); -#17155=VERTEX_POINT('',#46539); -#17156=VERTEX_POINT('',#46540); -#17157=VERTEX_POINT('',#46544); -#17158=VERTEX_POINT('',#46546); -#17159=VERTEX_POINT('',#46552); -#17160=VERTEX_POINT('',#46554); -#17161=VERTEX_POINT('',#46558); -#17162=VERTEX_POINT('',#46560); -#17163=VERTEX_POINT('',#46565); -#17164=VERTEX_POINT('',#46566); -#17165=VERTEX_POINT('',#46568); -#17166=VERTEX_POINT('',#46570); -#17167=VERTEX_POINT('',#46574); -#17168=VERTEX_POINT('',#46575); -#17169=VERTEX_POINT('',#46577); -#17170=VERTEX_POINT('',#46579); -#17171=VERTEX_POINT('',#46583); -#17172=VERTEX_POINT('',#46584); -#17173=VERTEX_POINT('',#46588); -#17174=VERTEX_POINT('',#46590); -#17175=VERTEX_POINT('',#46596); -#17176=VERTEX_POINT('',#46598); -#17177=VERTEX_POINT('',#46602); -#17178=VERTEX_POINT('',#46604); -#17179=VERTEX_POINT('',#46609); -#17180=VERTEX_POINT('',#46610); -#17181=VERTEX_POINT('',#46612); -#17182=VERTEX_POINT('',#46614); -#17183=VERTEX_POINT('',#46616); -#17184=VERTEX_POINT('',#46618); -#17185=VERTEX_POINT('',#46621); -#17186=VERTEX_POINT('',#46623); -#17187=VERTEX_POINT('',#46628); -#17188=VERTEX_POINT('',#46629); -#17189=VERTEX_POINT('',#46634); -#17190=VERTEX_POINT('',#46636); -#17191=VERTEX_POINT('',#46640); -#17192=VERTEX_POINT('',#46641); -#17193=VERTEX_POINT('',#46645); -#17194=VERTEX_POINT('',#46647); -#17195=VERTEX_POINT('',#46653); -#17196=VERTEX_POINT('',#46655); -#17197=VERTEX_POINT('',#46657); -#17198=VERTEX_POINT('',#46659); -#17199=VERTEX_POINT('',#46701); -#17200=VERTEX_POINT('',#46703); -#17201=VERTEX_POINT('',#46705); -#17202=VERTEX_POINT('',#46707); -#17203=VERTEX_POINT('',#46711); -#17204=VERTEX_POINT('',#46713); -#17205=VERTEX_POINT('',#46715); -#17206=VERTEX_POINT('',#46757); -#17207=VERTEX_POINT('',#46759); -#17208=VERTEX_POINT('',#46761); -#17209=VERTEX_POINT('',#46788); -#17210=VERTEX_POINT('',#46789); -#17211=VERTEX_POINT('',#46794); -#17212=VERTEX_POINT('',#46795); -#17213=VERTEX_POINT('',#46800); -#17214=VERTEX_POINT('',#46801); -#17215=VERTEX_POINT('',#46806); -#17216=VERTEX_POINT('',#46807); -#17217=VERTEX_POINT('',#46812); -#17218=VERTEX_POINT('',#46813); -#17219=VERTEX_POINT('',#46818); -#17220=VERTEX_POINT('',#46819); -#17221=VERTEX_POINT('',#46824); -#17222=VERTEX_POINT('',#46825); -#17223=VERTEX_POINT('',#46830); -#17224=VERTEX_POINT('',#46832); -#17225=VERTEX_POINT('',#46836); -#17226=VERTEX_POINT('',#46837); -#17227=VERTEX_POINT('',#46842); -#17228=VERTEX_POINT('',#46843); -#17229=VERTEX_POINT('',#46848); -#17230=VERTEX_POINT('',#46849); -#17231=VERTEX_POINT('',#46854); -#17232=VERTEX_POINT('',#46855); -#17233=VERTEX_POINT('',#46860); -#17234=VERTEX_POINT('',#46861); -#17235=VERTEX_POINT('',#46866); -#17236=VERTEX_POINT('',#46867); -#17237=VERTEX_POINT('',#46872); -#17238=VERTEX_POINT('',#46873); -#17239=VERTEX_POINT('',#46878); -#17240=VERTEX_POINT('',#46880); -#17241=VERTEX_POINT('',#46882); -#17242=VERTEX_POINT('',#46884); -#17243=VERTEX_POINT('',#46888); -#17244=VERTEX_POINT('',#46890); -#17245=VERTEX_POINT('',#46892); -#17246=VERTEX_POINT('',#46894); -#17247=VERTEX_POINT('',#46898); -#17248=VERTEX_POINT('',#46900); -#17249=VERTEX_POINT('',#46907); -#17250=VERTEX_POINT('',#46909); -#17251=VERTEX_POINT('',#46922); -#17252=VERTEX_POINT('',#46923); -#17253=VERTEX_POINT('',#46929); -#17254=VERTEX_POINT('',#46931); -#17255=VERTEX_POINT('',#46935); -#17256=VERTEX_POINT('',#46936); -#17257=VERTEX_POINT('',#46942); -#17258=VERTEX_POINT('',#46943); -#17259=VERTEX_POINT('',#46953); -#17260=VERTEX_POINT('',#46954); -#17261=VERTEX_POINT('',#46963); -#17262=VERTEX_POINT('',#46967); -#17263=VERTEX_POINT('',#46973); -#17264=VERTEX_POINT('',#46974); -#17265=VERTEX_POINT('',#46976); -#17266=VERTEX_POINT('',#46979); -#17267=VERTEX_POINT('',#46981); -#17268=VERTEX_POINT('',#46984); -#17269=VERTEX_POINT('',#46986); -#17270=VERTEX_POINT('',#46989); -#17271=VERTEX_POINT('',#46991); -#17272=VERTEX_POINT('',#46994); -#17273=VERTEX_POINT('',#46996); -#17274=VERTEX_POINT('',#46999); -#17275=VERTEX_POINT('',#47001); -#17276=VERTEX_POINT('',#47004); -#17277=VERTEX_POINT('',#47006); -#17278=VERTEX_POINT('',#47009); -#17279=VERTEX_POINT('',#47011); -#17280=VERTEX_POINT('',#47013); -#17281=VERTEX_POINT('',#47032); -#17282=VERTEX_POINT('',#47033); -#17283=VERTEX_POINT('',#47038); -#17284=VERTEX_POINT('',#47040); -#17285=VERTEX_POINT('',#47044); -#17286=VERTEX_POINT('',#47047); -#17287=VERTEX_POINT('',#47049); -#17288=VERTEX_POINT('',#47052); -#17289=VERTEX_POINT('',#47054); -#17290=VERTEX_POINT('',#47057); -#17291=VERTEX_POINT('',#47059); -#17292=VERTEX_POINT('',#47062); -#17293=VERTEX_POINT('',#47064); -#17294=VERTEX_POINT('',#47067); -#17295=VERTEX_POINT('',#47069); -#17296=VERTEX_POINT('',#47072); -#17297=VERTEX_POINT('',#47074); -#17298=VERTEX_POINT('',#47077); -#17299=VERTEX_POINT('',#47301); -#17300=VERTEX_POINT('',#47302); -#17301=VERTEX_POINT('',#47307); -#17302=VERTEX_POINT('',#47313); -#17303=VERTEX_POINT('',#47320); -#17304=VERTEX_POINT('',#47323); -#17305=VERTEX_POINT('',#47327); -#17306=VERTEX_POINT('',#47329); -#17307=VERTEX_POINT('',#47333); -#17308=VERTEX_POINT('',#47337); -#17309=VERTEX_POINT('',#47341); -#17310=VERTEX_POINT('',#47345); -#17311=VERTEX_POINT('',#47349); -#17312=VERTEX_POINT('',#47353); -#17313=VERTEX_POINT('',#47360); -#17314=VERTEX_POINT('',#47362); -#17315=VERTEX_POINT('',#47366); -#17316=VERTEX_POINT('',#47370); -#17317=VERTEX_POINT('',#47374); -#17318=VERTEX_POINT('',#47378); -#17319=VERTEX_POINT('',#47382); -#17320=VERTEX_POINT('',#47386); -#17321=VERTEX_POINT('',#47390); -#17322=VERTEX_POINT('',#47394); -#17323=VERTEX_POINT('',#47401); -#17324=VERTEX_POINT('',#47403); -#17325=VERTEX_POINT('',#47407); -#17326=VERTEX_POINT('',#47411); -#17327=VERTEX_POINT('',#47415); -#17328=VERTEX_POINT('',#47419); -#17329=VERTEX_POINT('',#47423); -#17330=VERTEX_POINT('',#47427); -#17331=VERTEX_POINT('',#47431); -#17332=VERTEX_POINT('',#47435); -#17333=VERTEX_POINT('',#47442); -#17334=VERTEX_POINT('',#47446); -#17335=VERTEX_POINT('',#47450); -#17336=VERTEX_POINT('',#47452); -#17337=VERTEX_POINT('',#47461); -#17338=VERTEX_POINT('',#47465); -#17339=VERTEX_POINT('',#47469); -#17340=VERTEX_POINT('',#47471); -#17341=VERTEX_POINT('',#47481); -#17342=VERTEX_POINT('',#47482); -#17343=VERTEX_POINT('',#47484); -#17344=VERTEX_POINT('',#47486); -#17345=VERTEX_POINT('',#47488); -#17346=VERTEX_POINT('',#47490); -#17347=VERTEX_POINT('',#47492); -#17348=VERTEX_POINT('',#47494); -#17349=VERTEX_POINT('',#47496); -#17350=VERTEX_POINT('',#47498); -#17351=VERTEX_POINT('',#47500); -#17352=VERTEX_POINT('',#47502); -#17353=VERTEX_POINT('',#47504); -#17354=VERTEX_POINT('',#47506); -#17355=VERTEX_POINT('',#47508); -#17356=VERTEX_POINT('',#47510); -#17357=VERTEX_POINT('',#47512); -#17358=VERTEX_POINT('',#47514); -#17359=VERTEX_POINT('',#47516); -#17360=VERTEX_POINT('',#47518); -#17361=VERTEX_POINT('',#47520); -#17362=VERTEX_POINT('',#47522); -#17363=VERTEX_POINT('',#47524); -#17364=VERTEX_POINT('',#47526); -#17365=VERTEX_POINT('',#47528); -#17366=VERTEX_POINT('',#47530); -#17367=VERTEX_POINT('',#47532); -#17368=VERTEX_POINT('',#47534); -#17369=VERTEX_POINT('',#47536); -#17370=VERTEX_POINT('',#47538); -#17371=VERTEX_POINT('',#47540); -#17372=VERTEX_POINT('',#47542); -#17373=VERTEX_POINT('',#47544); -#17374=VERTEX_POINT('',#47546); -#17375=VERTEX_POINT('',#47548); -#17376=VERTEX_POINT('',#47550); -#17377=VERTEX_POINT('',#47552); -#17378=VERTEX_POINT('',#47554); -#17379=VERTEX_POINT('',#47556); -#17380=VERTEX_POINT('',#47558); -#17381=VERTEX_POINT('',#47560); -#17382=VERTEX_POINT('',#47562); -#17383=VERTEX_POINT('',#47564); -#17384=VERTEX_POINT('',#47566); -#17385=VERTEX_POINT('',#47568); -#17386=VERTEX_POINT('',#47570); -#17387=VERTEX_POINT('',#47572); -#17388=VERTEX_POINT('',#47574); -#17389=VERTEX_POINT('',#47576); -#17390=VERTEX_POINT('',#47578); -#17391=VERTEX_POINT('',#47580); -#17392=VERTEX_POINT('',#47582); -#17393=VERTEX_POINT('',#47584); -#17394=VERTEX_POINT('',#47586); -#17395=VERTEX_POINT('',#47588); -#17396=VERTEX_POINT('',#47590); -#17397=VERTEX_POINT('',#47592); -#17398=VERTEX_POINT('',#47594); -#17399=VERTEX_POINT('',#47596); -#17400=VERTEX_POINT('',#47598); -#17401=VERTEX_POINT('',#47600); -#17402=VERTEX_POINT('',#47602); -#17403=VERTEX_POINT('',#47604); -#17404=VERTEX_POINT('',#47606); -#17405=VERTEX_POINT('',#47608); -#17406=VERTEX_POINT('',#47610); -#17407=VERTEX_POINT('',#47612); -#17408=VERTEX_POINT('',#47614); -#17409=VERTEX_POINT('',#47616); -#17410=VERTEX_POINT('',#47618); -#17411=VERTEX_POINT('',#47620); -#17412=VERTEX_POINT('',#47622); -#17413=VERTEX_POINT('',#47624); -#17414=VERTEX_POINT('',#47626); -#17415=VERTEX_POINT('',#47628); -#17416=VERTEX_POINT('',#47630); -#17417=VERTEX_POINT('',#47632); -#17418=VERTEX_POINT('',#47634); -#17419=VERTEX_POINT('',#47636); -#17420=VERTEX_POINT('',#47638); -#17421=VERTEX_POINT('',#47640); -#17422=VERTEX_POINT('',#47642); -#17423=VERTEX_POINT('',#47644); -#17424=VERTEX_POINT('',#47646); -#17425=VERTEX_POINT('',#47648); -#17426=VERTEX_POINT('',#47650); -#17427=VERTEX_POINT('',#47652); -#17428=VERTEX_POINT('',#47654); -#17429=VERTEX_POINT('',#47656); -#17430=VERTEX_POINT('',#47658); -#17431=VERTEX_POINT('',#47660); -#17432=VERTEX_POINT('',#47662); -#17433=VERTEX_POINT('',#47664); -#17434=VERTEX_POINT('',#47666); -#17435=VERTEX_POINT('',#47668); -#17436=VERTEX_POINT('',#47670); -#17437=VERTEX_POINT('',#47672); -#17438=VERTEX_POINT('',#47674); -#17439=VERTEX_POINT('',#47676); -#17440=VERTEX_POINT('',#47678); -#17441=VERTEX_POINT('',#47680); -#17442=VERTEX_POINT('',#47682); -#17443=VERTEX_POINT('',#47684); -#17444=VERTEX_POINT('',#47686); -#17445=VERTEX_POINT('',#47688); -#17446=VERTEX_POINT('',#47690); -#17447=VERTEX_POINT('',#47692); -#17448=VERTEX_POINT('',#47694); -#17449=VERTEX_POINT('',#47696); -#17450=VERTEX_POINT('',#47698); -#17451=VERTEX_POINT('',#47700); -#17452=VERTEX_POINT('',#47702); -#17453=VERTEX_POINT('',#47704); -#17454=VERTEX_POINT('',#47706); -#17455=VERTEX_POINT('',#47708); -#17456=VERTEX_POINT('',#47710); -#17457=VERTEX_POINT('',#47712); -#17458=VERTEX_POINT('',#47714); -#17459=VERTEX_POINT('',#47716); -#17460=VERTEX_POINT('',#47718); -#17461=VERTEX_POINT('',#47720); -#17462=VERTEX_POINT('',#47722); -#17463=VERTEX_POINT('',#47724); -#17464=VERTEX_POINT('',#47726); -#17465=VERTEX_POINT('',#47728); -#17466=VERTEX_POINT('',#47730); -#17467=VERTEX_POINT('',#47732); -#17468=VERTEX_POINT('',#47734); -#17469=VERTEX_POINT('',#47736); -#17470=VERTEX_POINT('',#47738); -#17471=VERTEX_POINT('',#47740); -#17472=VERTEX_POINT('',#47742); -#17473=VERTEX_POINT('',#47744); -#17474=VERTEX_POINT('',#47746); -#17475=VERTEX_POINT('',#47748); -#17476=VERTEX_POINT('',#47750); -#17477=VERTEX_POINT('',#47752); -#17478=VERTEX_POINT('',#47754); -#17479=VERTEX_POINT('',#47756); -#17480=VERTEX_POINT('',#47758); -#17481=VERTEX_POINT('',#47760); -#17482=VERTEX_POINT('',#47762); -#17483=VERTEX_POINT('',#47764); -#17484=VERTEX_POINT('',#47766); -#17485=VERTEX_POINT('',#47768); -#17486=VERTEX_POINT('',#47770); -#17487=VERTEX_POINT('',#47772); -#17488=VERTEX_POINT('',#47774); -#17489=VERTEX_POINT('',#47776); -#17490=VERTEX_POINT('',#47778); -#17491=VERTEX_POINT('',#47780); -#17492=VERTEX_POINT('',#47782); -#17493=VERTEX_POINT('',#47784); -#17494=VERTEX_POINT('',#47786); -#17495=VERTEX_POINT('',#47788); -#17496=VERTEX_POINT('',#47790); -#17497=VERTEX_POINT('',#47792); -#17498=VERTEX_POINT('',#47794); -#17499=VERTEX_POINT('',#47796); -#17500=VERTEX_POINT('',#47798); -#17501=VERTEX_POINT('',#47800); -#17502=VERTEX_POINT('',#47802); -#17503=VERTEX_POINT('',#47804); -#17504=VERTEX_POINT('',#47806); -#17505=VERTEX_POINT('',#47810); -#17506=VERTEX_POINT('',#47811); -#17507=VERTEX_POINT('',#47813); -#17508=VERTEX_POINT('',#47815); -#17509=VERTEX_POINT('',#47817); -#17510=VERTEX_POINT('',#47819); -#17511=VERTEX_POINT('',#47821); -#17512=VERTEX_POINT('',#47823); -#17513=VERTEX_POINT('',#47825); -#17514=VERTEX_POINT('',#47827); -#17515=VERTEX_POINT('',#47829); -#17516=VERTEX_POINT('',#47831); -#17517=VERTEX_POINT('',#47833); -#17518=VERTEX_POINT('',#47835); -#17519=VERTEX_POINT('',#47837); -#17520=VERTEX_POINT('',#47839); -#17521=VERTEX_POINT('',#47841); -#17522=VERTEX_POINT('',#47843); -#17523=VERTEX_POINT('',#47845); -#17524=VERTEX_POINT('',#47847); -#17525=VERTEX_POINT('',#47849); -#17526=VERTEX_POINT('',#47851); -#17527=VERTEX_POINT('',#47853); -#17528=VERTEX_POINT('',#47855); -#17529=VERTEX_POINT('',#47857); -#17530=VERTEX_POINT('',#47859); -#17531=VERTEX_POINT('',#47861); -#17532=VERTEX_POINT('',#47863); -#17533=VERTEX_POINT('',#47865); -#17534=VERTEX_POINT('',#47867); -#17535=VERTEX_POINT('',#47869); -#17536=VERTEX_POINT('',#47871); -#17537=VERTEX_POINT('',#47873); -#17538=VERTEX_POINT('',#47875); -#17539=VERTEX_POINT('',#47877); -#17540=VERTEX_POINT('',#47879); -#17541=VERTEX_POINT('',#47881); -#17542=VERTEX_POINT('',#47883); -#17543=VERTEX_POINT('',#47885); -#17544=VERTEX_POINT('',#47887); -#17545=VERTEX_POINT('',#47889); -#17546=VERTEX_POINT('',#47891); -#17547=VERTEX_POINT('',#47893); -#17548=VERTEX_POINT('',#47895); -#17549=VERTEX_POINT('',#47897); -#17550=VERTEX_POINT('',#47899); -#17551=VERTEX_POINT('',#47901); -#17552=VERTEX_POINT('',#47903); -#17553=VERTEX_POINT('',#47905); -#17554=VERTEX_POINT('',#47907); -#17555=VERTEX_POINT('',#47909); -#17556=VERTEX_POINT('',#47911); -#17557=VERTEX_POINT('',#47913); -#17558=VERTEX_POINT('',#47915); -#17559=VERTEX_POINT('',#47917); -#17560=VERTEX_POINT('',#47919); -#17561=VERTEX_POINT('',#47921); -#17562=VERTEX_POINT('',#47923); -#17563=VERTEX_POINT('',#47925); -#17564=VERTEX_POINT('',#47927); -#17565=VERTEX_POINT('',#47929); -#17566=VERTEX_POINT('',#47931); -#17567=VERTEX_POINT('',#47933); -#17568=VERTEX_POINT('',#47935); -#17569=VERTEX_POINT('',#47937); -#17570=VERTEX_POINT('',#47939); -#17571=VERTEX_POINT('',#47941); -#17572=VERTEX_POINT('',#47943); -#17573=VERTEX_POINT('',#47945); -#17574=VERTEX_POINT('',#47947); -#17575=VERTEX_POINT('',#47949); -#17576=VERTEX_POINT('',#47951); -#17577=VERTEX_POINT('',#47953); -#17578=VERTEX_POINT('',#47955); -#17579=VERTEX_POINT('',#47957); -#17580=VERTEX_POINT('',#47959); -#17581=VERTEX_POINT('',#47961); -#17582=VERTEX_POINT('',#47963); -#17583=VERTEX_POINT('',#47965); -#17584=VERTEX_POINT('',#47967); -#17585=VERTEX_POINT('',#47969); -#17586=VERTEX_POINT('',#47971); -#17587=VERTEX_POINT('',#47973); -#17588=VERTEX_POINT('',#47975); -#17589=VERTEX_POINT('',#47977); -#17590=VERTEX_POINT('',#47979); -#17591=VERTEX_POINT('',#47981); -#17592=VERTEX_POINT('',#47983); -#17593=VERTEX_POINT('',#47985); -#17594=VERTEX_POINT('',#47987); -#17595=VERTEX_POINT('',#47989); -#17596=VERTEX_POINT('',#47991); -#17597=VERTEX_POINT('',#47993); -#17598=VERTEX_POINT('',#47995); -#17599=VERTEX_POINT('',#47997); -#17600=VERTEX_POINT('',#47999); -#17601=VERTEX_POINT('',#48001); -#17602=VERTEX_POINT('',#48003); -#17603=VERTEX_POINT('',#48005); -#17604=VERTEX_POINT('',#48007); -#17605=VERTEX_POINT('',#48009); -#17606=VERTEX_POINT('',#48011); -#17607=VERTEX_POINT('',#48013); -#17608=VERTEX_POINT('',#48015); -#17609=VERTEX_POINT('',#48017); -#17610=VERTEX_POINT('',#48019); -#17611=VERTEX_POINT('',#48021); -#17612=VERTEX_POINT('',#48023); -#17613=VERTEX_POINT('',#48025); -#17614=VERTEX_POINT('',#48027); -#17615=VERTEX_POINT('',#48029); -#17616=VERTEX_POINT('',#48031); -#17617=VERTEX_POINT('',#48033); -#17618=VERTEX_POINT('',#48035); -#17619=VERTEX_POINT('',#48037); -#17620=VERTEX_POINT('',#48039); -#17621=VERTEX_POINT('',#48041); -#17622=VERTEX_POINT('',#48043); -#17623=VERTEX_POINT('',#48045); -#17624=VERTEX_POINT('',#48047); -#17625=VERTEX_POINT('',#48049); -#17626=VERTEX_POINT('',#48051); -#17627=VERTEX_POINT('',#48053); -#17628=VERTEX_POINT('',#48055); -#17629=VERTEX_POINT('',#48057); -#17630=VERTEX_POINT('',#48059); -#17631=VERTEX_POINT('',#48061); -#17632=VERTEX_POINT('',#48063); -#17633=VERTEX_POINT('',#48065); -#17634=VERTEX_POINT('',#48067); -#17635=VERTEX_POINT('',#48069); -#17636=VERTEX_POINT('',#48071); -#17637=VERTEX_POINT('',#48073); -#17638=VERTEX_POINT('',#48075); -#17639=VERTEX_POINT('',#48077); -#17640=VERTEX_POINT('',#48079); -#17641=VERTEX_POINT('',#48081); -#17642=VERTEX_POINT('',#48083); -#17643=VERTEX_POINT('',#48085); -#17644=VERTEX_POINT('',#48087); -#17645=VERTEX_POINT('',#48089); -#17646=VERTEX_POINT('',#48091); -#17647=VERTEX_POINT('',#48093); -#17648=VERTEX_POINT('',#48095); -#17649=VERTEX_POINT('',#48097); -#17650=VERTEX_POINT('',#48099); -#17651=VERTEX_POINT('',#48101); -#17652=VERTEX_POINT('',#48103); -#17653=VERTEX_POINT('',#48105); -#17654=VERTEX_POINT('',#48107); -#17655=VERTEX_POINT('',#48109); -#17656=VERTEX_POINT('',#48111); -#17657=VERTEX_POINT('',#48113); -#17658=VERTEX_POINT('',#48115); -#17659=VERTEX_POINT('',#48117); -#17660=VERTEX_POINT('',#48119); -#17661=VERTEX_POINT('',#48121); -#17662=VERTEX_POINT('',#48123); -#17663=VERTEX_POINT('',#48125); -#17664=VERTEX_POINT('',#48127); -#17665=VERTEX_POINT('',#48129); -#17666=VERTEX_POINT('',#48131); -#17667=VERTEX_POINT('',#48133); -#17668=VERTEX_POINT('',#48135); -#17669=VERTEX_POINT('',#48139); -#17670=VERTEX_POINT('',#48140); -#17671=VERTEX_POINT('',#48142); -#17672=VERTEX_POINT('',#48144); -#17673=VERTEX_POINT('',#48146); -#17674=VERTEX_POINT('',#48148); -#17675=VERTEX_POINT('',#48150); -#17676=VERTEX_POINT('',#48152); -#17677=VERTEX_POINT('',#48154); -#17678=VERTEX_POINT('',#48156); -#17679=VERTEX_POINT('',#48158); -#17680=VERTEX_POINT('',#48160); -#17681=VERTEX_POINT('',#48162); -#17682=VERTEX_POINT('',#48164); -#17683=VERTEX_POINT('',#48166); -#17684=VERTEX_POINT('',#48168); -#17685=VERTEX_POINT('',#48170); -#17686=VERTEX_POINT('',#48172); -#17687=VERTEX_POINT('',#48174); -#17688=VERTEX_POINT('',#48176); -#17689=VERTEX_POINT('',#48178); -#17690=VERTEX_POINT('',#48180); -#17691=VERTEX_POINT('',#48182); -#17692=VERTEX_POINT('',#48184); -#17693=VERTEX_POINT('',#48186); -#17694=VERTEX_POINT('',#48188); -#17695=VERTEX_POINT('',#48190); -#17696=VERTEX_POINT('',#48192); -#17697=VERTEX_POINT('',#48194); -#17698=VERTEX_POINT('',#48196); -#17699=VERTEX_POINT('',#48198); -#17700=VERTEX_POINT('',#48200); -#17701=VERTEX_POINT('',#48202); -#17702=VERTEX_POINT('',#48204); -#17703=VERTEX_POINT('',#48206); -#17704=VERTEX_POINT('',#48208); -#17705=VERTEX_POINT('',#48210); -#17706=VERTEX_POINT('',#48212); -#17707=VERTEX_POINT('',#48214); -#17708=VERTEX_POINT('',#48216); -#17709=VERTEX_POINT('',#48218); -#17710=VERTEX_POINT('',#48220); -#17711=VERTEX_POINT('',#48222); -#17712=VERTEX_POINT('',#48224); -#17713=VERTEX_POINT('',#48226); -#17714=VERTEX_POINT('',#48228); -#17715=VERTEX_POINT('',#48230); -#17716=VERTEX_POINT('',#48232); -#17717=VERTEX_POINT('',#48234); -#17718=VERTEX_POINT('',#48236); -#17719=VERTEX_POINT('',#48238); -#17720=VERTEX_POINT('',#48240); -#17721=VERTEX_POINT('',#48242); -#17722=VERTEX_POINT('',#48244); -#17723=VERTEX_POINT('',#48246); -#17724=VERTEX_POINT('',#48248); -#17725=VERTEX_POINT('',#48250); -#17726=VERTEX_POINT('',#48252); -#17727=VERTEX_POINT('',#48254); -#17728=VERTEX_POINT('',#48256); -#17729=VERTEX_POINT('',#48258); -#17730=VERTEX_POINT('',#48260); -#17731=VERTEX_POINT('',#48262); -#17732=VERTEX_POINT('',#48264); -#17733=VERTEX_POINT('',#48266); -#17734=VERTEX_POINT('',#48268); -#17735=VERTEX_POINT('',#48270); -#17736=VERTEX_POINT('',#48272); -#17737=VERTEX_POINT('',#48274); -#17738=VERTEX_POINT('',#48276); -#17739=VERTEX_POINT('',#48278); -#17740=VERTEX_POINT('',#48280); -#17741=VERTEX_POINT('',#48282); -#17742=VERTEX_POINT('',#48284); -#17743=VERTEX_POINT('',#48286); -#17744=VERTEX_POINT('',#48288); -#17745=VERTEX_POINT('',#48290); -#17746=VERTEX_POINT('',#48292); -#17747=VERTEX_POINT('',#48294); -#17748=VERTEX_POINT('',#48296); -#17749=VERTEX_POINT('',#48298); -#17750=VERTEX_POINT('',#48300); -#17751=VERTEX_POINT('',#48302); -#17752=VERTEX_POINT('',#48304); -#17753=VERTEX_POINT('',#48306); -#17754=VERTEX_POINT('',#48308); -#17755=VERTEX_POINT('',#48310); -#17756=VERTEX_POINT('',#48312); -#17757=VERTEX_POINT('',#48314); -#17758=VERTEX_POINT('',#48316); -#17759=VERTEX_POINT('',#48318); -#17760=VERTEX_POINT('',#48320); -#17761=VERTEX_POINT('',#48322); -#17762=VERTEX_POINT('',#48324); -#17763=VERTEX_POINT('',#48326); -#17764=VERTEX_POINT('',#48328); -#17765=VERTEX_POINT('',#48330); -#17766=VERTEX_POINT('',#48332); -#17767=VERTEX_POINT('',#48334); -#17768=VERTEX_POINT('',#48336); -#17769=VERTEX_POINT('',#48338); -#17770=VERTEX_POINT('',#48340); -#17771=VERTEX_POINT('',#48342); -#17772=VERTEX_POINT('',#48344); -#17773=VERTEX_POINT('',#48346); -#17774=VERTEX_POINT('',#48348); -#17775=VERTEX_POINT('',#48350); -#17776=VERTEX_POINT('',#48352); -#17777=VERTEX_POINT('',#48354); -#17778=VERTEX_POINT('',#48356); -#17779=VERTEX_POINT('',#48358); -#17780=VERTEX_POINT('',#48360); -#17781=VERTEX_POINT('',#48362); -#17782=VERTEX_POINT('',#48364); -#17783=VERTEX_POINT('',#48366); -#17784=VERTEX_POINT('',#48368); -#17785=VERTEX_POINT('',#48370); -#17786=VERTEX_POINT('',#48372); -#17787=VERTEX_POINT('',#48374); -#17788=VERTEX_POINT('',#48376); -#17789=VERTEX_POINT('',#48378); -#17790=VERTEX_POINT('',#48380); -#17791=VERTEX_POINT('',#48382); -#17792=VERTEX_POINT('',#48384); -#17793=VERTEX_POINT('',#48386); -#17794=VERTEX_POINT('',#48388); -#17795=VERTEX_POINT('',#48390); -#17796=VERTEX_POINT('',#48392); -#17797=VERTEX_POINT('',#48394); -#17798=VERTEX_POINT('',#48396); -#17799=VERTEX_POINT('',#48398); -#17800=VERTEX_POINT('',#48400); -#17801=VERTEX_POINT('',#48402); -#17802=VERTEX_POINT('',#48404); -#17803=VERTEX_POINT('',#48406); -#17804=VERTEX_POINT('',#48408); -#17805=VERTEX_POINT('',#48410); -#17806=VERTEX_POINT('',#48412); -#17807=VERTEX_POINT('',#48414); -#17808=VERTEX_POINT('',#48416); -#17809=VERTEX_POINT('',#48418); -#17810=VERTEX_POINT('',#48420); -#17811=VERTEX_POINT('',#48422); -#17812=VERTEX_POINT('',#48424); -#17813=VERTEX_POINT('',#48426); -#17814=VERTEX_POINT('',#48428); -#17815=VERTEX_POINT('',#48430); -#17816=VERTEX_POINT('',#48432); -#17817=VERTEX_POINT('',#48434); -#17818=VERTEX_POINT('',#48436); -#17819=VERTEX_POINT('',#48438); -#17820=VERTEX_POINT('',#48440); -#17821=VERTEX_POINT('',#48442); -#17822=VERTEX_POINT('',#48444); -#17823=VERTEX_POINT('',#48446); -#17824=VERTEX_POINT('',#48448); -#17825=VERTEX_POINT('',#48450); -#17826=VERTEX_POINT('',#48452); -#17827=VERTEX_POINT('',#48454); -#17828=VERTEX_POINT('',#48456); -#17829=VERTEX_POINT('',#48458); -#17830=VERTEX_POINT('',#48460); -#17831=VERTEX_POINT('',#48462); -#17832=VERTEX_POINT('',#48464); -#17833=VERTEX_POINT('',#48468); -#17834=VERTEX_POINT('',#48469); -#17835=VERTEX_POINT('',#48471); -#17836=VERTEX_POINT('',#48473); -#17837=VERTEX_POINT('',#48475); -#17838=VERTEX_POINT('',#48477); -#17839=VERTEX_POINT('',#48479); -#17840=VERTEX_POINT('',#48481); -#17841=VERTEX_POINT('',#48483); -#17842=VERTEX_POINT('',#48485); -#17843=VERTEX_POINT('',#48487); -#17844=VERTEX_POINT('',#48489); -#17845=VERTEX_POINT('',#48491); -#17846=VERTEX_POINT('',#48493); -#17847=VERTEX_POINT('',#48495); -#17848=VERTEX_POINT('',#48497); -#17849=VERTEX_POINT('',#48499); -#17850=VERTEX_POINT('',#48501); -#17851=VERTEX_POINT('',#48503); -#17852=VERTEX_POINT('',#48505); -#17853=VERTEX_POINT('',#48507); -#17854=VERTEX_POINT('',#48509); -#17855=VERTEX_POINT('',#48511); -#17856=VERTEX_POINT('',#48513); -#17857=VERTEX_POINT('',#48515); -#17858=VERTEX_POINT('',#48517); -#17859=VERTEX_POINT('',#48519); -#17860=VERTEX_POINT('',#48521); -#17861=VERTEX_POINT('',#48523); -#17862=VERTEX_POINT('',#48525); -#17863=VERTEX_POINT('',#48527); -#17864=VERTEX_POINT('',#48529); -#17865=VERTEX_POINT('',#48531); -#17866=VERTEX_POINT('',#48533); -#17867=VERTEX_POINT('',#48535); -#17868=VERTEX_POINT('',#48537); -#17869=VERTEX_POINT('',#48539); -#17870=VERTEX_POINT('',#48541); -#17871=VERTEX_POINT('',#48543); -#17872=VERTEX_POINT('',#48545); -#17873=VERTEX_POINT('',#48547); -#17874=VERTEX_POINT('',#48549); -#17875=VERTEX_POINT('',#48551); -#17876=VERTEX_POINT('',#48553); -#17877=VERTEX_POINT('',#48555); -#17878=VERTEX_POINT('',#48557); -#17879=VERTEX_POINT('',#48559); -#17880=VERTEX_POINT('',#48561); -#17881=VERTEX_POINT('',#48563); -#17882=VERTEX_POINT('',#48565); -#17883=VERTEX_POINT('',#48567); -#17884=VERTEX_POINT('',#48569); -#17885=VERTEX_POINT('',#48571); -#17886=VERTEX_POINT('',#48573); -#17887=VERTEX_POINT('',#48575); -#17888=VERTEX_POINT('',#48577); -#17889=VERTEX_POINT('',#48579); -#17890=VERTEX_POINT('',#48581); -#17891=VERTEX_POINT('',#48583); -#17892=VERTEX_POINT('',#48585); -#17893=VERTEX_POINT('',#48587); -#17894=VERTEX_POINT('',#48589); -#17895=VERTEX_POINT('',#48591); -#17896=VERTEX_POINT('',#48593); -#17897=VERTEX_POINT('',#48595); -#17898=VERTEX_POINT('',#48597); -#17899=VERTEX_POINT('',#48599); -#17900=VERTEX_POINT('',#48601); -#17901=VERTEX_POINT('',#48603); -#17902=VERTEX_POINT('',#48605); -#17903=VERTEX_POINT('',#48607); -#17904=VERTEX_POINT('',#48609); -#17905=VERTEX_POINT('',#48611); -#17906=VERTEX_POINT('',#48613); -#17907=VERTEX_POINT('',#48615); -#17908=VERTEX_POINT('',#48617); -#17909=VERTEX_POINT('',#48619); -#17910=VERTEX_POINT('',#48621); -#17911=VERTEX_POINT('',#48623); -#17912=VERTEX_POINT('',#48625); -#17913=VERTEX_POINT('',#48627); -#17914=VERTEX_POINT('',#48629); -#17915=VERTEX_POINT('',#48631); -#17916=VERTEX_POINT('',#48633); -#17917=VERTEX_POINT('',#48635); -#17918=VERTEX_POINT('',#48637); -#17919=VERTEX_POINT('',#48639); -#17920=VERTEX_POINT('',#48641); -#17921=VERTEX_POINT('',#48643); -#17922=VERTEX_POINT('',#48645); -#17923=VERTEX_POINT('',#48647); -#17924=VERTEX_POINT('',#48649); -#17925=VERTEX_POINT('',#48651); -#17926=VERTEX_POINT('',#48653); -#17927=VERTEX_POINT('',#48655); -#17928=VERTEX_POINT('',#48657); -#17929=VERTEX_POINT('',#48659); -#17930=VERTEX_POINT('',#48661); -#17931=VERTEX_POINT('',#48663); -#17932=VERTEX_POINT('',#48665); -#17933=VERTEX_POINT('',#48667); -#17934=VERTEX_POINT('',#48669); -#17935=VERTEX_POINT('',#48671); -#17936=VERTEX_POINT('',#48673); -#17937=VERTEX_POINT('',#48675); -#17938=VERTEX_POINT('',#48677); -#17939=VERTEX_POINT('',#48679); -#17940=VERTEX_POINT('',#48681); -#17941=VERTEX_POINT('',#48683); -#17942=VERTEX_POINT('',#48685); -#17943=VERTEX_POINT('',#48687); -#17944=VERTEX_POINT('',#48689); -#17945=VERTEX_POINT('',#48691); -#17946=VERTEX_POINT('',#48693); -#17947=VERTEX_POINT('',#48695); -#17948=VERTEX_POINT('',#48697); -#17949=VERTEX_POINT('',#48699); -#17950=VERTEX_POINT('',#48701); -#17951=VERTEX_POINT('',#48703); -#17952=VERTEX_POINT('',#48705); -#17953=VERTEX_POINT('',#48707); -#17954=VERTEX_POINT('',#48709); -#17955=VERTEX_POINT('',#48711); -#17956=VERTEX_POINT('',#48713); -#17957=VERTEX_POINT('',#48715); -#17958=VERTEX_POINT('',#48717); -#17959=VERTEX_POINT('',#48719); -#17960=VERTEX_POINT('',#48721); -#17961=VERTEX_POINT('',#48723); -#17962=VERTEX_POINT('',#48725); -#17963=VERTEX_POINT('',#48727); -#17964=VERTEX_POINT('',#48729); -#17965=VERTEX_POINT('',#48731); -#17966=VERTEX_POINT('',#48733); -#17967=VERTEX_POINT('',#48735); -#17968=VERTEX_POINT('',#48737); -#17969=VERTEX_POINT('',#48739); -#17970=VERTEX_POINT('',#48741); -#17971=VERTEX_POINT('',#48743); -#17972=VERTEX_POINT('',#48745); -#17973=VERTEX_POINT('',#48747); -#17974=VERTEX_POINT('',#48749); -#17975=VERTEX_POINT('',#48751); -#17976=VERTEX_POINT('',#48753); -#17977=VERTEX_POINT('',#48755); -#17978=VERTEX_POINT('',#48757); -#17979=VERTEX_POINT('',#48759); -#17980=VERTEX_POINT('',#48761); -#17981=VERTEX_POINT('',#48763); -#17982=VERTEX_POINT('',#48765); -#17983=VERTEX_POINT('',#48767); -#17984=VERTEX_POINT('',#48769); -#17985=VERTEX_POINT('',#48771); -#17986=VERTEX_POINT('',#48773); -#17987=VERTEX_POINT('',#48775); -#17988=VERTEX_POINT('',#48777); -#17989=VERTEX_POINT('',#48779); -#17990=VERTEX_POINT('',#48781); -#17991=VERTEX_POINT('',#48783); -#17992=VERTEX_POINT('',#48785); -#17993=VERTEX_POINT('',#48787); -#17994=VERTEX_POINT('',#48789); -#17995=VERTEX_POINT('',#48791); -#17996=VERTEX_POINT('',#48793); -#17997=VERTEX_POINT('',#49049); -#17998=VERTEX_POINT('',#49050); -#17999=VERTEX_POINT('',#49052); -#18000=VERTEX_POINT('',#49054); -#18001=VERTEX_POINT('',#49058); -#18002=VERTEX_POINT('',#49059); -#18003=VERTEX_POINT('',#49061); -#18004=VERTEX_POINT('',#49063); -#18005=VERTEX_POINT('',#49067); -#18006=VERTEX_POINT('',#49068); -#18007=VERTEX_POINT('',#49070); -#18008=VERTEX_POINT('',#49072); -#18009=VERTEX_POINT('',#49076); -#18010=VERTEX_POINT('',#49077); -#18011=VERTEX_POINT('',#49079); -#18012=VERTEX_POINT('',#49081); -#18013=VERTEX_POINT('',#49085); -#18014=VERTEX_POINT('',#49086); -#18015=VERTEX_POINT('',#49088); -#18016=VERTEX_POINT('',#49090); -#18017=VERTEX_POINT('',#49094); -#18018=VERTEX_POINT('',#49095); -#18019=VERTEX_POINT('',#49097); -#18020=VERTEX_POINT('',#49099); -#18021=VERTEX_POINT('',#49103); -#18022=VERTEX_POINT('',#49104); -#18023=VERTEX_POINT('',#49106); -#18024=VERTEX_POINT('',#49108); -#18025=VERTEX_POINT('',#49112); -#18026=VERTEX_POINT('',#49113); -#18027=VERTEX_POINT('',#49115); -#18028=VERTEX_POINT('',#49117); -#18029=VERTEX_POINT('',#49121); -#18030=VERTEX_POINT('',#49122); -#18031=VERTEX_POINT('',#49124); -#18032=VERTEX_POINT('',#49126); -#18033=VERTEX_POINT('',#49130); -#18034=VERTEX_POINT('',#49131); -#18035=VERTEX_POINT('',#49133); -#18036=VERTEX_POINT('',#49135); -#18037=VERTEX_POINT('',#49139); -#18038=VERTEX_POINT('',#49140); -#18039=VERTEX_POINT('',#49142); -#18040=VERTEX_POINT('',#49144); -#18041=VERTEX_POINT('',#49148); -#18042=VERTEX_POINT('',#49149); -#18043=VERTEX_POINT('',#49151); -#18044=VERTEX_POINT('',#49153); -#18045=VERTEX_POINT('',#49157); -#18046=VERTEX_POINT('',#49158); -#18047=VERTEX_POINT('',#49160); -#18048=VERTEX_POINT('',#49162); -#18049=VERTEX_POINT('',#49166); -#18050=VERTEX_POINT('',#49167); -#18051=VERTEX_POINT('',#49169); -#18052=VERTEX_POINT('',#49171); -#18053=VERTEX_POINT('',#49175); -#18054=VERTEX_POINT('',#49176); -#18055=VERTEX_POINT('',#49178); -#18056=VERTEX_POINT('',#49180); -#18057=VERTEX_POINT('',#49184); -#18058=VERTEX_POINT('',#49185); -#18059=VERTEX_POINT('',#49187); -#18060=VERTEX_POINT('',#49189); -#18061=VERTEX_POINT('',#49193); -#18062=VERTEX_POINT('',#49194); -#18063=VERTEX_POINT('',#49196); -#18064=VERTEX_POINT('',#49198); -#18065=VERTEX_POINT('',#49202); -#18066=VERTEX_POINT('',#49203); -#18067=VERTEX_POINT('',#49205); -#18068=VERTEX_POINT('',#49207); -#18069=VERTEX_POINT('',#49211); -#18070=VERTEX_POINT('',#49212); -#18071=VERTEX_POINT('',#49214); -#18072=VERTEX_POINT('',#49216); -#18073=VERTEX_POINT('',#49277); -#18074=VERTEX_POINT('',#49279); -#18075=VERTEX_POINT('',#49283); -#18076=VERTEX_POINT('',#49285); -#18077=VERTEX_POINT('',#49289); -#18078=VERTEX_POINT('',#49291); -#18079=VERTEX_POINT('',#49295); -#18080=VERTEX_POINT('',#49297); -#18081=VERTEX_POINT('',#49301); -#18082=VERTEX_POINT('',#49303); -#18083=VERTEX_POINT('',#49307); -#18084=VERTEX_POINT('',#49309); -#18085=VERTEX_POINT('',#49313); -#18086=VERTEX_POINT('',#49315); -#18087=VERTEX_POINT('',#49319); -#18088=VERTEX_POINT('',#49321); -#18089=VERTEX_POINT('',#49325); -#18090=VERTEX_POINT('',#49327); -#18091=VERTEX_POINT('',#49331); -#18092=VERTEX_POINT('',#49333); -#18093=VERTEX_POINT('',#49337); -#18094=VERTEX_POINT('',#49339); -#18095=VERTEX_POINT('',#49343); -#18096=VERTEX_POINT('',#49345); -#18097=VERTEX_POINT('',#49349); -#18098=VERTEX_POINT('',#49351); -#18099=VERTEX_POINT('',#49355); -#18100=VERTEX_POINT('',#49357); -#18101=VERTEX_POINT('',#49361); -#18102=VERTEX_POINT('',#49363); -#18103=VERTEX_POINT('',#49367); -#18104=VERTEX_POINT('',#49369); -#18105=VERTEX_POINT('',#49373); -#18106=VERTEX_POINT('',#49375); -#18107=VERTEX_POINT('',#49379); -#18108=VERTEX_POINT('',#49381); -#18109=VERTEX_POINT('',#49385); -#18110=VERTEX_POINT('',#49387); -#18111=VERTEX_POINT('',#49391); -#18112=VERTEX_POINT('',#49392); -#18113=VERTEX_POINT('',#49397); -#18114=VERTEX_POINT('',#49398); -#18115=VERTEX_POINT('',#49403); -#18116=VERTEX_POINT('',#49404); -#18117=VERTEX_POINT('',#49409); -#18118=VERTEX_POINT('',#49410); -#18119=VERTEX_POINT('',#49415); -#18120=VERTEX_POINT('',#49416); -#18121=VERTEX_POINT('',#49421); -#18122=VERTEX_POINT('',#49422); -#18123=VERTEX_POINT('',#49427); -#18124=VERTEX_POINT('',#49428); -#18125=VERTEX_POINT('',#49433); -#18126=VERTEX_POINT('',#49434); -#18127=VERTEX_POINT('',#49439); -#18128=VERTEX_POINT('',#49440); -#18129=VERTEX_POINT('',#49445); -#18130=VERTEX_POINT('',#49446); -#18131=VERTEX_POINT('',#49451); -#18132=VERTEX_POINT('',#49452); -#18133=VERTEX_POINT('',#49457); -#18134=VERTEX_POINT('',#49458); -#18135=VERTEX_POINT('',#49463); -#18136=VERTEX_POINT('',#49464); -#18137=VERTEX_POINT('',#49469); -#18138=VERTEX_POINT('',#49470); -#18139=VERTEX_POINT('',#49475); -#18140=VERTEX_POINT('',#49476); -#18141=VERTEX_POINT('',#49481); -#18142=VERTEX_POINT('',#49482); -#18143=VERTEX_POINT('',#49487); -#18144=VERTEX_POINT('',#49488); -#18145=VERTEX_POINT('',#49493); -#18146=VERTEX_POINT('',#49494); -#18147=VERTEX_POINT('',#49499); -#18148=VERTEX_POINT('',#49500); -#18149=VERTEX_POINT('',#49619); -#18150=VERTEX_POINT('',#49620); -#18151=VERTEX_POINT('',#49622); -#18152=VERTEX_POINT('',#49624); -#18153=VERTEX_POINT('',#49631); -#18154=VERTEX_POINT('',#49633); -#18155=VERTEX_POINT('',#49637); -#18156=VERTEX_POINT('',#49638); -#18157=VERTEX_POINT('',#49931); -#18158=VERTEX_POINT('',#49932); -#18159=VERTEX_POINT('',#49934); -#18160=VERTEX_POINT('',#49936); -#18161=VERTEX_POINT('',#49938); -#18162=VERTEX_POINT('',#49940); -#18163=VERTEX_POINT('',#49942); -#18164=VERTEX_POINT('',#49944); -#18165=VERTEX_POINT('',#49946); -#18166=VERTEX_POINT('',#49948); -#18167=VERTEX_POINT('',#49950); -#18168=VERTEX_POINT('',#49952); -#18169=VERTEX_POINT('',#49954); -#18170=VERTEX_POINT('',#49956); -#18171=VERTEX_POINT('',#49958); -#18172=VERTEX_POINT('',#49960); -#18173=VERTEX_POINT('',#49962); -#18174=VERTEX_POINT('',#49964); -#18175=VERTEX_POINT('',#49966); -#18176=VERTEX_POINT('',#49968); -#18177=VERTEX_POINT('',#49970); -#18178=VERTEX_POINT('',#49972); -#18179=VERTEX_POINT('',#49974); -#18180=VERTEX_POINT('',#49976); -#18181=VERTEX_POINT('',#49978); -#18182=VERTEX_POINT('',#49980); -#18183=VERTEX_POINT('',#49982); -#18184=VERTEX_POINT('',#49984); -#18185=VERTEX_POINT('',#49986); -#18186=VERTEX_POINT('',#49988); -#18187=VERTEX_POINT('',#49990); -#18188=VERTEX_POINT('',#49992); -#18189=VERTEX_POINT('',#49994); -#18190=VERTEX_POINT('',#49996); -#18191=VERTEX_POINT('',#49998); -#18192=VERTEX_POINT('',#50000); -#18193=VERTEX_POINT('',#50002); -#18194=VERTEX_POINT('',#50004); -#18195=VERTEX_POINT('',#50006); -#18196=VERTEX_POINT('',#50008); -#18197=VERTEX_POINT('',#50010); -#18198=VERTEX_POINT('',#50012); -#18199=VERTEX_POINT('',#50014); -#18200=VERTEX_POINT('',#50016); -#18201=VERTEX_POINT('',#50018); -#18202=VERTEX_POINT('',#50020); -#18203=VERTEX_POINT('',#50022); -#18204=VERTEX_POINT('',#50024); -#18205=VERTEX_POINT('',#50026); -#18206=VERTEX_POINT('',#50028); -#18207=VERTEX_POINT('',#50030); -#18208=VERTEX_POINT('',#50032); -#18209=VERTEX_POINT('',#50034); -#18210=VERTEX_POINT('',#50036); -#18211=VERTEX_POINT('',#50038); -#18212=VERTEX_POINT('',#50040); -#18213=VERTEX_POINT('',#50042); -#18214=VERTEX_POINT('',#50044); -#18215=VERTEX_POINT('',#50046); -#18216=VERTEX_POINT('',#50048); -#18217=VERTEX_POINT('',#50050); -#18218=VERTEX_POINT('',#50052); -#18219=VERTEX_POINT('',#50054); -#18220=VERTEX_POINT('',#50056); -#18221=VERTEX_POINT('',#50058); -#18222=VERTEX_POINT('',#50060); -#18223=VERTEX_POINT('',#50062); -#18224=VERTEX_POINT('',#50064); -#18225=VERTEX_POINT('',#50066); -#18226=VERTEX_POINT('',#50068); -#18227=VERTEX_POINT('',#50070); -#18228=VERTEX_POINT('',#50072); -#18229=VERTEX_POINT('',#50074); -#18230=VERTEX_POINT('',#50076); -#18231=VERTEX_POINT('',#50078); -#18232=VERTEX_POINT('',#50080); -#18233=VERTEX_POINT('',#50082); -#18234=VERTEX_POINT('',#50084); -#18235=VERTEX_POINT('',#50086); -#18236=VERTEX_POINT('',#50088); -#18237=VERTEX_POINT('',#50090); -#18238=VERTEX_POINT('',#50092); -#18239=VERTEX_POINT('',#50094); -#18240=VERTEX_POINT('',#50096); -#18241=VERTEX_POINT('',#50098); -#18242=VERTEX_POINT('',#50100); -#18243=VERTEX_POINT('',#50102); -#18244=VERTEX_POINT('',#50104); -#18245=VERTEX_POINT('',#50106); -#18246=VERTEX_POINT('',#50108); -#18247=VERTEX_POINT('',#50110); -#18248=VERTEX_POINT('',#50112); -#18249=VERTEX_POINT('',#50114); -#18250=VERTEX_POINT('',#50116); -#18251=VERTEX_POINT('',#50118); -#18252=VERTEX_POINT('',#50120); -#18253=VERTEX_POINT('',#50122); -#18254=VERTEX_POINT('',#50124); -#18255=VERTEX_POINT('',#50126); -#18256=VERTEX_POINT('',#50128); -#18257=VERTEX_POINT('',#50130); -#18258=VERTEX_POINT('',#50132); -#18259=VERTEX_POINT('',#50134); -#18260=VERTEX_POINT('',#50136); -#18261=VERTEX_POINT('',#50138); -#18262=VERTEX_POINT('',#50140); -#18263=VERTEX_POINT('',#50142); -#18264=VERTEX_POINT('',#50144); -#18265=VERTEX_POINT('',#50146); -#18266=VERTEX_POINT('',#50148); -#18267=VERTEX_POINT('',#50150); -#18268=VERTEX_POINT('',#50152); -#18269=VERTEX_POINT('',#50154); -#18270=VERTEX_POINT('',#50156); -#18271=VERTEX_POINT('',#50158); -#18272=VERTEX_POINT('',#50160); -#18273=VERTEX_POINT('',#50162); -#18274=VERTEX_POINT('',#50164); -#18275=VERTEX_POINT('',#50166); -#18276=VERTEX_POINT('',#50168); -#18277=VERTEX_POINT('',#50170); -#18278=VERTEX_POINT('',#50172); -#18279=VERTEX_POINT('',#50174); -#18280=VERTEX_POINT('',#50176); -#18281=VERTEX_POINT('',#50178); -#18282=VERTEX_POINT('',#50180); -#18283=VERTEX_POINT('',#50182); -#18284=VERTEX_POINT('',#50184); -#18285=VERTEX_POINT('',#50186); -#18286=VERTEX_POINT('',#50188); -#18287=VERTEX_POINT('',#50190); -#18288=VERTEX_POINT('',#50192); -#18289=VERTEX_POINT('',#50194); -#18290=VERTEX_POINT('',#50196); -#18291=VERTEX_POINT('',#50198); -#18292=VERTEX_POINT('',#50200); -#18293=VERTEX_POINT('',#50202); -#18294=VERTEX_POINT('',#50204); -#18295=VERTEX_POINT('',#50206); -#18296=VERTEX_POINT('',#50208); -#18297=VERTEX_POINT('',#50210); -#18298=VERTEX_POINT('',#50212); -#18299=VERTEX_POINT('',#50214); -#18300=VERTEX_POINT('',#50216); -#18301=VERTEX_POINT('',#50218); -#18302=VERTEX_POINT('',#50220); -#18303=VERTEX_POINT('',#50222); -#18304=VERTEX_POINT('',#50224); -#18305=VERTEX_POINT('',#50226); -#18306=VERTEX_POINT('',#50228); -#18307=VERTEX_POINT('',#50230); -#18308=VERTEX_POINT('',#50232); -#18309=VERTEX_POINT('',#50234); -#18310=VERTEX_POINT('',#50236); -#18311=VERTEX_POINT('',#50238); -#18312=VERTEX_POINT('',#50240); -#18313=VERTEX_POINT('',#50242); -#18314=VERTEX_POINT('',#50244); -#18315=VERTEX_POINT('',#50246); -#18316=VERTEX_POINT('',#50248); -#18317=VERTEX_POINT('',#50250); -#18318=VERTEX_POINT('',#50252); -#18319=VERTEX_POINT('',#50254); -#18320=VERTEX_POINT('',#50256); -#18321=VERTEX_POINT('',#50258); -#18322=VERTEX_POINT('',#50260); -#18323=VERTEX_POINT('',#50262); -#18324=VERTEX_POINT('',#50264); -#18325=VERTEX_POINT('',#50266); -#18326=VERTEX_POINT('',#50268); -#18327=VERTEX_POINT('',#50270); -#18328=VERTEX_POINT('',#50272); -#18329=VERTEX_POINT('',#50274); -#18330=VERTEX_POINT('',#50276); -#18331=VERTEX_POINT('',#50278); -#18332=VERTEX_POINT('',#50280); -#18333=VERTEX_POINT('',#50282); -#18334=VERTEX_POINT('',#50284); -#18335=VERTEX_POINT('',#50286); -#18336=VERTEX_POINT('',#50288); -#18337=VERTEX_POINT('',#50290); -#18338=VERTEX_POINT('',#50292); -#18339=VERTEX_POINT('',#50294); -#18340=VERTEX_POINT('',#50296); -#18341=VERTEX_POINT('',#50298); -#18342=VERTEX_POINT('',#50300); -#18343=VERTEX_POINT('',#50302); -#18344=VERTEX_POINT('',#50304); -#18345=VERTEX_POINT('',#50306); -#18346=VERTEX_POINT('',#50308); -#18347=VERTEX_POINT('',#50310); -#18348=VERTEX_POINT('',#50312); -#18349=VERTEX_POINT('',#50314); -#18350=VERTEX_POINT('',#50316); -#18351=VERTEX_POINT('',#50318); -#18352=VERTEX_POINT('',#50320); -#18353=VERTEX_POINT('',#50322); -#18354=VERTEX_POINT('',#50324); -#18355=VERTEX_POINT('',#50326); -#18356=VERTEX_POINT('',#50328); -#18357=VERTEX_POINT('',#50330); -#18358=VERTEX_POINT('',#50332); -#18359=VERTEX_POINT('',#50334); -#18360=VERTEX_POINT('',#50336); -#18361=VERTEX_POINT('',#50338); -#18362=VERTEX_POINT('',#50340); -#18363=VERTEX_POINT('',#50342); -#18364=VERTEX_POINT('',#50344); -#18365=VERTEX_POINT('',#50346); -#18366=VERTEX_POINT('',#50348); -#18367=VERTEX_POINT('',#50350); -#18368=VERTEX_POINT('',#50352); -#18369=VERTEX_POINT('',#50354); -#18370=VERTEX_POINT('',#50356); -#18371=VERTEX_POINT('',#50358); -#18372=VERTEX_POINT('',#50360); -#18373=VERTEX_POINT('',#50362); -#18374=VERTEX_POINT('',#50364); -#18375=VERTEX_POINT('',#50366); -#18376=VERTEX_POINT('',#50368); -#18377=VERTEX_POINT('',#50370); -#18378=VERTEX_POINT('',#50372); -#18379=VERTEX_POINT('',#50374); -#18380=VERTEX_POINT('',#50376); -#18381=VERTEX_POINT('',#50378); -#18382=VERTEX_POINT('',#50380); -#18383=VERTEX_POINT('',#50382); -#18384=VERTEX_POINT('',#50384); -#18385=VERTEX_POINT('',#50386); -#18386=VERTEX_POINT('',#50388); -#18387=VERTEX_POINT('',#50390); -#18388=VERTEX_POINT('',#50392); -#18389=VERTEX_POINT('',#50394); -#18390=VERTEX_POINT('',#50396); -#18391=VERTEX_POINT('',#50398); -#18392=VERTEX_POINT('',#50400); -#18393=VERTEX_POINT('',#50402); -#18394=VERTEX_POINT('',#50404); -#18395=VERTEX_POINT('',#50406); -#18396=VERTEX_POINT('',#50408); -#18397=VERTEX_POINT('',#50410); -#18398=VERTEX_POINT('',#50412); -#18399=VERTEX_POINT('',#50414); -#18400=VERTEX_POINT('',#50416); -#18401=VERTEX_POINT('',#50418); -#18402=VERTEX_POINT('',#50420); -#18403=VERTEX_POINT('',#50422); -#18404=VERTEX_POINT('',#50424); -#18405=VERTEX_POINT('',#50426); -#18406=VERTEX_POINT('',#50428); -#18407=VERTEX_POINT('',#50430); -#18408=VERTEX_POINT('',#50432); -#18409=VERTEX_POINT('',#50434); -#18410=VERTEX_POINT('',#50436); -#18411=VERTEX_POINT('',#50438); -#18412=VERTEX_POINT('',#50440); -#18413=VERTEX_POINT('',#50442); -#18414=VERTEX_POINT('',#50444); -#18415=VERTEX_POINT('',#50446); -#18416=VERTEX_POINT('',#50448); -#18417=VERTEX_POINT('',#50450); -#18418=VERTEX_POINT('',#50452); -#18419=VERTEX_POINT('',#50454); -#18420=VERTEX_POINT('',#50456); -#18421=VERTEX_POINT('',#50458); -#18422=VERTEX_POINT('',#50460); -#18423=VERTEX_POINT('',#50462); -#18424=VERTEX_POINT('',#50464); -#18425=VERTEX_POINT('',#50466); -#18426=VERTEX_POINT('',#50468); -#18427=VERTEX_POINT('',#50470); -#18428=VERTEX_POINT('',#50472); -#18429=VERTEX_POINT('',#50474); -#18430=VERTEX_POINT('',#50476); -#18431=VERTEX_POINT('',#50478); -#18432=VERTEX_POINT('',#50480); -#18433=VERTEX_POINT('',#50482); -#18434=VERTEX_POINT('',#50484); -#18435=VERTEX_POINT('',#50486); -#18436=VERTEX_POINT('',#50488); -#18437=VERTEX_POINT('',#50490); -#18438=VERTEX_POINT('',#50492); -#18439=VERTEX_POINT('',#50494); -#18440=VERTEX_POINT('',#50496); -#18441=VERTEX_POINT('',#50500); -#18442=VERTEX_POINT('',#50501); -#18443=VERTEX_POINT('',#50503); -#18444=VERTEX_POINT('',#50505); -#18445=VERTEX_POINT('',#50507); -#18446=VERTEX_POINT('',#50509); -#18447=VERTEX_POINT('',#50511); -#18448=VERTEX_POINT('',#50513); -#18449=VERTEX_POINT('',#50515); -#18450=VERTEX_POINT('',#50517); -#18451=VERTEX_POINT('',#50519); -#18452=VERTEX_POINT('',#50521); -#18453=VERTEX_POINT('',#50523); -#18454=VERTEX_POINT('',#50525); -#18455=VERTEX_POINT('',#50527); -#18456=VERTEX_POINT('',#50529); -#18457=VERTEX_POINT('',#50531); -#18458=VERTEX_POINT('',#50533); -#18459=VERTEX_POINT('',#50535); -#18460=VERTEX_POINT('',#50537); -#18461=VERTEX_POINT('',#50539); -#18462=VERTEX_POINT('',#50541); -#18463=VERTEX_POINT('',#50543); -#18464=VERTEX_POINT('',#50545); -#18465=VERTEX_POINT('',#50547); -#18466=VERTEX_POINT('',#50549); -#18467=VERTEX_POINT('',#50551); -#18468=VERTEX_POINT('',#50553); -#18469=VERTEX_POINT('',#50555); -#18470=VERTEX_POINT('',#50557); -#18471=VERTEX_POINT('',#50559); -#18472=VERTEX_POINT('',#50561); -#18473=VERTEX_POINT('',#50563); -#18474=VERTEX_POINT('',#50565); -#18475=VERTEX_POINT('',#50567); -#18476=VERTEX_POINT('',#50569); -#18477=VERTEX_POINT('',#50571); -#18478=VERTEX_POINT('',#50573); -#18479=VERTEX_POINT('',#50575); -#18480=VERTEX_POINT('',#50577); -#18481=VERTEX_POINT('',#50579); -#18482=VERTEX_POINT('',#50581); -#18483=VERTEX_POINT('',#50583); -#18484=VERTEX_POINT('',#50585); -#18485=VERTEX_POINT('',#50587); -#18486=VERTEX_POINT('',#50589); -#18487=VERTEX_POINT('',#50591); -#18488=VERTEX_POINT('',#50593); -#18489=VERTEX_POINT('',#50595); -#18490=VERTEX_POINT('',#50597); -#18491=VERTEX_POINT('',#50599); -#18492=VERTEX_POINT('',#50601); -#18493=VERTEX_POINT('',#50603); -#18494=VERTEX_POINT('',#50605); -#18495=VERTEX_POINT('',#50607); -#18496=VERTEX_POINT('',#50609); -#18497=VERTEX_POINT('',#50611); -#18498=VERTEX_POINT('',#50613); -#18499=VERTEX_POINT('',#50615); -#18500=VERTEX_POINT('',#50617); -#18501=VERTEX_POINT('',#50619); -#18502=VERTEX_POINT('',#50621); -#18503=VERTEX_POINT('',#50623); -#18504=VERTEX_POINT('',#50625); -#18505=VERTEX_POINT('',#50627); -#18506=VERTEX_POINT('',#50629); -#18507=VERTEX_POINT('',#50631); -#18508=VERTEX_POINT('',#50633); -#18509=VERTEX_POINT('',#50635); -#18510=VERTEX_POINT('',#50637); -#18511=VERTEX_POINT('',#50639); -#18512=VERTEX_POINT('',#50641); -#18513=VERTEX_POINT('',#50643); -#18514=VERTEX_POINT('',#50645); -#18515=VERTEX_POINT('',#50647); -#18516=VERTEX_POINT('',#50649); -#18517=VERTEX_POINT('',#50651); -#18518=VERTEX_POINT('',#50653); -#18519=VERTEX_POINT('',#50655); -#18520=VERTEX_POINT('',#50657); -#18521=VERTEX_POINT('',#50659); -#18522=VERTEX_POINT('',#50661); -#18523=VERTEX_POINT('',#50663); -#18524=VERTEX_POINT('',#50665); -#18525=VERTEX_POINT('',#50667); -#18526=VERTEX_POINT('',#50669); -#18527=VERTEX_POINT('',#50671); -#18528=VERTEX_POINT('',#50673); -#18529=VERTEX_POINT('',#50675); -#18530=VERTEX_POINT('',#50677); -#18531=VERTEX_POINT('',#50679); -#18532=VERTEX_POINT('',#50681); -#18533=VERTEX_POINT('',#50683); -#18534=VERTEX_POINT('',#50685); -#18535=VERTEX_POINT('',#50687); -#18536=VERTEX_POINT('',#50689); -#18537=VERTEX_POINT('',#50691); -#18538=VERTEX_POINT('',#50693); -#18539=VERTEX_POINT('',#50695); -#18540=VERTEX_POINT('',#50697); -#18541=VERTEX_POINT('',#50699); -#18542=VERTEX_POINT('',#50701); -#18543=VERTEX_POINT('',#50703); -#18544=VERTEX_POINT('',#50705); -#18545=VERTEX_POINT('',#50707); -#18546=VERTEX_POINT('',#50709); -#18547=VERTEX_POINT('',#50711); -#18548=VERTEX_POINT('',#50713); -#18549=VERTEX_POINT('',#50715); -#18550=VERTEX_POINT('',#50717); -#18551=VERTEX_POINT('',#50719); -#18552=VERTEX_POINT('',#50721); -#18553=VERTEX_POINT('',#50723); -#18554=VERTEX_POINT('',#50725); -#18555=VERTEX_POINT('',#50727); -#18556=VERTEX_POINT('',#50729); -#18557=VERTEX_POINT('',#50731); -#18558=VERTEX_POINT('',#50733); -#18559=VERTEX_POINT('',#50735); -#18560=VERTEX_POINT('',#50737); -#18561=VERTEX_POINT('',#50739); -#18562=VERTEX_POINT('',#50741); -#18563=VERTEX_POINT('',#50743); -#18564=VERTEX_POINT('',#50745); -#18565=VERTEX_POINT('',#50747); -#18566=VERTEX_POINT('',#50749); -#18567=VERTEX_POINT('',#50751); -#18568=VERTEX_POINT('',#50753); -#18569=VERTEX_POINT('',#50755); -#18570=VERTEX_POINT('',#50757); -#18571=VERTEX_POINT('',#50759); -#18572=VERTEX_POINT('',#50761); -#18573=VERTEX_POINT('',#50763); -#18574=VERTEX_POINT('',#50765); -#18575=VERTEX_POINT('',#50767); -#18576=VERTEX_POINT('',#50769); -#18577=VERTEX_POINT('',#50771); -#18578=VERTEX_POINT('',#50773); -#18579=VERTEX_POINT('',#50775); -#18580=VERTEX_POINT('',#50777); -#18581=VERTEX_POINT('',#50779); -#18582=VERTEX_POINT('',#50781); -#18583=VERTEX_POINT('',#50783); -#18584=VERTEX_POINT('',#50785); -#18585=VERTEX_POINT('',#50787); -#18586=VERTEX_POINT('',#50789); -#18587=VERTEX_POINT('',#50791); -#18588=VERTEX_POINT('',#50793); -#18589=VERTEX_POINT('',#50795); -#18590=VERTEX_POINT('',#50797); -#18591=VERTEX_POINT('',#50799); -#18592=VERTEX_POINT('',#50801); -#18593=VERTEX_POINT('',#50803); -#18594=VERTEX_POINT('',#50805); -#18595=VERTEX_POINT('',#50807); -#18596=VERTEX_POINT('',#50809); -#18597=VERTEX_POINT('',#50811); -#18598=VERTEX_POINT('',#50813); -#18599=VERTEX_POINT('',#50815); -#18600=VERTEX_POINT('',#50817); -#18601=VERTEX_POINT('',#50819); -#18602=VERTEX_POINT('',#50821); -#18603=VERTEX_POINT('',#50823); -#18604=VERTEX_POINT('',#50825); -#18605=VERTEX_POINT('',#50827); -#18606=VERTEX_POINT('',#50829); -#18607=VERTEX_POINT('',#50831); -#18608=VERTEX_POINT('',#50833); -#18609=VERTEX_POINT('',#50835); -#18610=VERTEX_POINT('',#50837); -#18611=VERTEX_POINT('',#50839); -#18612=VERTEX_POINT('',#50841); -#18613=VERTEX_POINT('',#50843); -#18614=VERTEX_POINT('',#50845); -#18615=VERTEX_POINT('',#50847); -#18616=VERTEX_POINT('',#50849); -#18617=VERTEX_POINT('',#50851); -#18618=VERTEX_POINT('',#50853); -#18619=VERTEX_POINT('',#50855); -#18620=VERTEX_POINT('',#50857); -#18621=VERTEX_POINT('',#50859); -#18622=VERTEX_POINT('',#50861); -#18623=VERTEX_POINT('',#50863); -#18624=VERTEX_POINT('',#50865); -#18625=VERTEX_POINT('',#50867); -#18626=VERTEX_POINT('',#50869); -#18627=VERTEX_POINT('',#50871); -#18628=VERTEX_POINT('',#50873); -#18629=VERTEX_POINT('',#50875); -#18630=VERTEX_POINT('',#50877); -#18631=VERTEX_POINT('',#50879); -#18632=VERTEX_POINT('',#50881); -#18633=VERTEX_POINT('',#50883); -#18634=VERTEX_POINT('',#50885); -#18635=VERTEX_POINT('',#50887); -#18636=VERTEX_POINT('',#50889); -#18637=VERTEX_POINT('',#50891); -#18638=VERTEX_POINT('',#50893); -#18639=VERTEX_POINT('',#50895); -#18640=VERTEX_POINT('',#50897); -#18641=VERTEX_POINT('',#50899); -#18642=VERTEX_POINT('',#50901); -#18643=VERTEX_POINT('',#50903); -#18644=VERTEX_POINT('',#50905); -#18645=VERTEX_POINT('',#50907); -#18646=VERTEX_POINT('',#50909); -#18647=VERTEX_POINT('',#50911); -#18648=VERTEX_POINT('',#50913); -#18649=VERTEX_POINT('',#50915); -#18650=VERTEX_POINT('',#50917); -#18651=VERTEX_POINT('',#50919); -#18652=VERTEX_POINT('',#50921); -#18653=VERTEX_POINT('',#50923); -#18654=VERTEX_POINT('',#50925); -#18655=VERTEX_POINT('',#50927); -#18656=VERTEX_POINT('',#50929); -#18657=VERTEX_POINT('',#50931); -#18658=VERTEX_POINT('',#50933); -#18659=VERTEX_POINT('',#50935); -#18660=VERTEX_POINT('',#50937); -#18661=VERTEX_POINT('',#50939); -#18662=VERTEX_POINT('',#50941); -#18663=VERTEX_POINT('',#50943); -#18664=VERTEX_POINT('',#50945); -#18665=VERTEX_POINT('',#50947); -#18666=VERTEX_POINT('',#50949); -#18667=VERTEX_POINT('',#50951); -#18668=VERTEX_POINT('',#50953); -#18669=VERTEX_POINT('',#50955); -#18670=VERTEX_POINT('',#50957); -#18671=VERTEX_POINT('',#50959); -#18672=VERTEX_POINT('',#50961); -#18673=VERTEX_POINT('',#50963); -#18674=VERTEX_POINT('',#50965); -#18675=VERTEX_POINT('',#50967); -#18676=VERTEX_POINT('',#50969); -#18677=VERTEX_POINT('',#50971); -#18678=VERTEX_POINT('',#50973); -#18679=VERTEX_POINT('',#50975); -#18680=VERTEX_POINT('',#50977); -#18681=VERTEX_POINT('',#50979); -#18682=VERTEX_POINT('',#50981); -#18683=VERTEX_POINT('',#50983); -#18684=VERTEX_POINT('',#50985); -#18685=VERTEX_POINT('',#50987); -#18686=VERTEX_POINT('',#50989); -#18687=VERTEX_POINT('',#50991); -#18688=VERTEX_POINT('',#50993); -#18689=VERTEX_POINT('',#50995); -#18690=VERTEX_POINT('',#50997); -#18691=VERTEX_POINT('',#50999); -#18692=VERTEX_POINT('',#51001); -#18693=VERTEX_POINT('',#51003); -#18694=VERTEX_POINT('',#51005); -#18695=VERTEX_POINT('',#51007); -#18696=VERTEX_POINT('',#51009); -#18697=VERTEX_POINT('',#51011); -#18698=VERTEX_POINT('',#51013); -#18699=VERTEX_POINT('',#51015); -#18700=VERTEX_POINT('',#51017); -#18701=VERTEX_POINT('',#51019); -#18702=VERTEX_POINT('',#51021); -#18703=VERTEX_POINT('',#51023); -#18704=VERTEX_POINT('',#51025); -#18705=VERTEX_POINT('',#51027); -#18706=VERTEX_POINT('',#51029); -#18707=VERTEX_POINT('',#51031); -#18708=VERTEX_POINT('',#51033); -#18709=VERTEX_POINT('',#51035); -#18710=VERTEX_POINT('',#51037); -#18711=VERTEX_POINT('',#51039); -#18712=VERTEX_POINT('',#51041); -#18713=VERTEX_POINT('',#51043); -#18714=VERTEX_POINT('',#51045); -#18715=VERTEX_POINT('',#51047); -#18716=VERTEX_POINT('',#51049); -#18717=VERTEX_POINT('',#51051); -#18718=VERTEX_POINT('',#51053); -#18719=VERTEX_POINT('',#51055); -#18720=VERTEX_POINT('',#51057); -#18721=VERTEX_POINT('',#51059); -#18722=VERTEX_POINT('',#51061); -#18723=VERTEX_POINT('',#51063); -#18724=VERTEX_POINT('',#51065); -#18725=VERTEX_POINT('',#51069); -#18726=VERTEX_POINT('',#51070); -#18727=VERTEX_POINT('',#51072); -#18728=VERTEX_POINT('',#51074); -#18729=VERTEX_POINT('',#51076); -#18730=VERTEX_POINT('',#51078); -#18731=VERTEX_POINT('',#51080); -#18732=VERTEX_POINT('',#51082); -#18733=VERTEX_POINT('',#51084); -#18734=VERTEX_POINT('',#51086); -#18735=VERTEX_POINT('',#51088); -#18736=VERTEX_POINT('',#51090); -#18737=VERTEX_POINT('',#51092); -#18738=VERTEX_POINT('',#51094); -#18739=VERTEX_POINT('',#51096); -#18740=VERTEX_POINT('',#51098); -#18741=VERTEX_POINT('',#51100); -#18742=VERTEX_POINT('',#51102); -#18743=VERTEX_POINT('',#51104); -#18744=VERTEX_POINT('',#51106); -#18745=VERTEX_POINT('',#51108); -#18746=VERTEX_POINT('',#51110); -#18747=VERTEX_POINT('',#51112); -#18748=VERTEX_POINT('',#51114); -#18749=VERTEX_POINT('',#51116); -#18750=VERTEX_POINT('',#51118); -#18751=VERTEX_POINT('',#51120); -#18752=VERTEX_POINT('',#51122); -#18753=VERTEX_POINT('',#51124); -#18754=VERTEX_POINT('',#51126); -#18755=VERTEX_POINT('',#51128); -#18756=VERTEX_POINT('',#51130); -#18757=VERTEX_POINT('',#51132); -#18758=VERTEX_POINT('',#51134); -#18759=VERTEX_POINT('',#51136); -#18760=VERTEX_POINT('',#51138); -#18761=VERTEX_POINT('',#51140); -#18762=VERTEX_POINT('',#51142); -#18763=VERTEX_POINT('',#51144); -#18764=VERTEX_POINT('',#51146); -#18765=VERTEX_POINT('',#51148); -#18766=VERTEX_POINT('',#51150); -#18767=VERTEX_POINT('',#51152); -#18768=VERTEX_POINT('',#51154); -#18769=VERTEX_POINT('',#51156); -#18770=VERTEX_POINT('',#51158); -#18771=VERTEX_POINT('',#51160); -#18772=VERTEX_POINT('',#51162); -#18773=VERTEX_POINT('',#51164); -#18774=VERTEX_POINT('',#51166); -#18775=VERTEX_POINT('',#51168); -#18776=VERTEX_POINT('',#51170); -#18777=VERTEX_POINT('',#51172); -#18778=VERTEX_POINT('',#51174); -#18779=VERTEX_POINT('',#51176); -#18780=VERTEX_POINT('',#51178); -#18781=VERTEX_POINT('',#51180); -#18782=VERTEX_POINT('',#51182); -#18783=VERTEX_POINT('',#51184); -#18784=VERTEX_POINT('',#51186); -#18785=VERTEX_POINT('',#51188); -#18786=VERTEX_POINT('',#51190); -#18787=VERTEX_POINT('',#51192); -#18788=VERTEX_POINT('',#51194); -#18789=VERTEX_POINT('',#51196); -#18790=VERTEX_POINT('',#51198); -#18791=VERTEX_POINT('',#51200); -#18792=VERTEX_POINT('',#51202); -#18793=VERTEX_POINT('',#51204); -#18794=VERTEX_POINT('',#51206); -#18795=VERTEX_POINT('',#51208); -#18796=VERTEX_POINT('',#51210); -#18797=VERTEX_POINT('',#51212); -#18798=VERTEX_POINT('',#51214); -#18799=VERTEX_POINT('',#51216); -#18800=VERTEX_POINT('',#51218); -#18801=VERTEX_POINT('',#51220); -#18802=VERTEX_POINT('',#51222); -#18803=VERTEX_POINT('',#51224); -#18804=VERTEX_POINT('',#51226); -#18805=VERTEX_POINT('',#51228); -#18806=VERTEX_POINT('',#51230); -#18807=VERTEX_POINT('',#51232); -#18808=VERTEX_POINT('',#51234); -#18809=VERTEX_POINT('',#51236); -#18810=VERTEX_POINT('',#51238); -#18811=VERTEX_POINT('',#51240); -#18812=VERTEX_POINT('',#51242); -#18813=VERTEX_POINT('',#51244); -#18814=VERTEX_POINT('',#51246); -#18815=VERTEX_POINT('',#51248); -#18816=VERTEX_POINT('',#51250); -#18817=VERTEX_POINT('',#51252); -#18818=VERTEX_POINT('',#51254); -#18819=VERTEX_POINT('',#51256); -#18820=VERTEX_POINT('',#51258); -#18821=VERTEX_POINT('',#51260); -#18822=VERTEX_POINT('',#51262); -#18823=VERTEX_POINT('',#51264); -#18824=VERTEX_POINT('',#51266); -#18825=VERTEX_POINT('',#51268); -#18826=VERTEX_POINT('',#51270); -#18827=VERTEX_POINT('',#51272); -#18828=VERTEX_POINT('',#51274); -#18829=VERTEX_POINT('',#51276); -#18830=VERTEX_POINT('',#51278); -#18831=VERTEX_POINT('',#51280); -#18832=VERTEX_POINT('',#51282); -#18833=VERTEX_POINT('',#51284); -#18834=VERTEX_POINT('',#51286); -#18835=VERTEX_POINT('',#51288); -#18836=VERTEX_POINT('',#51290); -#18837=VERTEX_POINT('',#51292); -#18838=VERTEX_POINT('',#51294); -#18839=VERTEX_POINT('',#51296); -#18840=VERTEX_POINT('',#51298); -#18841=VERTEX_POINT('',#51300); -#18842=VERTEX_POINT('',#51302); -#18843=VERTEX_POINT('',#51304); -#18844=VERTEX_POINT('',#51306); -#18845=VERTEX_POINT('',#51308); -#18846=VERTEX_POINT('',#51310); -#18847=VERTEX_POINT('',#51312); -#18848=VERTEX_POINT('',#51314); -#18849=VERTEX_POINT('',#51316); -#18850=VERTEX_POINT('',#51318); -#18851=VERTEX_POINT('',#51320); -#18852=VERTEX_POINT('',#51322); -#18853=VERTEX_POINT('',#51324); -#18854=VERTEX_POINT('',#51326); -#18855=VERTEX_POINT('',#51328); -#18856=VERTEX_POINT('',#51330); -#18857=VERTEX_POINT('',#51332); -#18858=VERTEX_POINT('',#51334); -#18859=VERTEX_POINT('',#51336); -#18860=VERTEX_POINT('',#51338); -#18861=VERTEX_POINT('',#51340); -#18862=VERTEX_POINT('',#51342); -#18863=VERTEX_POINT('',#51344); -#18864=VERTEX_POINT('',#51346); -#18865=VERTEX_POINT('',#51348); -#18866=VERTEX_POINT('',#51350); -#18867=VERTEX_POINT('',#51352); -#18868=VERTEX_POINT('',#51354); -#18869=VERTEX_POINT('',#51356); -#18870=VERTEX_POINT('',#51358); -#18871=VERTEX_POINT('',#51360); -#18872=VERTEX_POINT('',#51362); -#18873=VERTEX_POINT('',#51364); -#18874=VERTEX_POINT('',#51366); -#18875=VERTEX_POINT('',#51368); -#18876=VERTEX_POINT('',#51370); -#18877=VERTEX_POINT('',#51372); -#18878=VERTEX_POINT('',#51374); -#18879=VERTEX_POINT('',#51376); -#18880=VERTEX_POINT('',#51378); -#18881=VERTEX_POINT('',#51380); -#18882=VERTEX_POINT('',#51382); -#18883=VERTEX_POINT('',#51384); -#18884=VERTEX_POINT('',#51386); -#18885=VERTEX_POINT('',#51388); -#18886=VERTEX_POINT('',#51390); -#18887=VERTEX_POINT('',#51392); -#18888=VERTEX_POINT('',#51394); -#18889=VERTEX_POINT('',#51396); -#18890=VERTEX_POINT('',#51398); -#18891=VERTEX_POINT('',#51400); -#18892=VERTEX_POINT('',#51402); -#18893=VERTEX_POINT('',#51404); -#18894=VERTEX_POINT('',#51406); -#18895=VERTEX_POINT('',#51408); -#18896=VERTEX_POINT('',#51410); -#18897=VERTEX_POINT('',#51412); -#18898=VERTEX_POINT('',#51414); -#18899=VERTEX_POINT('',#51416); -#18900=VERTEX_POINT('',#51418); -#18901=VERTEX_POINT('',#51420); -#18902=VERTEX_POINT('',#51422); -#18903=VERTEX_POINT('',#51424); -#18904=VERTEX_POINT('',#51426); -#18905=VERTEX_POINT('',#51428); -#18906=VERTEX_POINT('',#51430); -#18907=VERTEX_POINT('',#51432); -#18908=VERTEX_POINT('',#51434); -#18909=VERTEX_POINT('',#51436); -#18910=VERTEX_POINT('',#51438); -#18911=VERTEX_POINT('',#51440); -#18912=VERTEX_POINT('',#51442); -#18913=VERTEX_POINT('',#51444); -#18914=VERTEX_POINT('',#51446); -#18915=VERTEX_POINT('',#51448); -#18916=VERTEX_POINT('',#51450); -#18917=VERTEX_POINT('',#51452); -#18918=VERTEX_POINT('',#51454); -#18919=VERTEX_POINT('',#51456); -#18920=VERTEX_POINT('',#51458); -#18921=VERTEX_POINT('',#51460); -#18922=VERTEX_POINT('',#51462); -#18923=VERTEX_POINT('',#51464); -#18924=VERTEX_POINT('',#51466); -#18925=VERTEX_POINT('',#51468); -#18926=VERTEX_POINT('',#51470); -#18927=VERTEX_POINT('',#51472); -#18928=VERTEX_POINT('',#51474); -#18929=VERTEX_POINT('',#51476); -#18930=VERTEX_POINT('',#51478); -#18931=VERTEX_POINT('',#51480); -#18932=VERTEX_POINT('',#51482); -#18933=VERTEX_POINT('',#51484); -#18934=VERTEX_POINT('',#51486); -#18935=VERTEX_POINT('',#51488); -#18936=VERTEX_POINT('',#51490); -#18937=VERTEX_POINT('',#51492); -#18938=VERTEX_POINT('',#51494); -#18939=VERTEX_POINT('',#51496); -#18940=VERTEX_POINT('',#51498); -#18941=VERTEX_POINT('',#51500); -#18942=VERTEX_POINT('',#51502); -#18943=VERTEX_POINT('',#51504); -#18944=VERTEX_POINT('',#51506); -#18945=VERTEX_POINT('',#51508); -#18946=VERTEX_POINT('',#51510); -#18947=VERTEX_POINT('',#51512); -#18948=VERTEX_POINT('',#51514); -#18949=VERTEX_POINT('',#51516); -#18950=VERTEX_POINT('',#51518); -#18951=VERTEX_POINT('',#51520); -#18952=VERTEX_POINT('',#51522); -#18953=VERTEX_POINT('',#51524); -#18954=VERTEX_POINT('',#51526); -#18955=VERTEX_POINT('',#51528); -#18956=VERTEX_POINT('',#51530); -#18957=VERTEX_POINT('',#51532); -#18958=VERTEX_POINT('',#51534); -#18959=VERTEX_POINT('',#51536); -#18960=VERTEX_POINT('',#51538); -#18961=VERTEX_POINT('',#51540); -#18962=VERTEX_POINT('',#51542); -#18963=VERTEX_POINT('',#51544); -#18964=VERTEX_POINT('',#51546); -#18965=VERTEX_POINT('',#51548); -#18966=VERTEX_POINT('',#51550); -#18967=VERTEX_POINT('',#51552); -#18968=VERTEX_POINT('',#51554); -#18969=VERTEX_POINT('',#51556); -#18970=VERTEX_POINT('',#51558); -#18971=VERTEX_POINT('',#51560); -#18972=VERTEX_POINT('',#51562); -#18973=VERTEX_POINT('',#51564); -#18974=VERTEX_POINT('',#51566); -#18975=VERTEX_POINT('',#51568); -#18976=VERTEX_POINT('',#51570); -#18977=VERTEX_POINT('',#51572); -#18978=VERTEX_POINT('',#51574); -#18979=VERTEX_POINT('',#51576); -#18980=VERTEX_POINT('',#51578); -#18981=VERTEX_POINT('',#51580); -#18982=VERTEX_POINT('',#51582); -#18983=VERTEX_POINT('',#51584); -#18984=VERTEX_POINT('',#51586); -#18985=VERTEX_POINT('',#51588); -#18986=VERTEX_POINT('',#51590); -#18987=VERTEX_POINT('',#51592); -#18988=VERTEX_POINT('',#51594); -#18989=VERTEX_POINT('',#51596); -#18990=VERTEX_POINT('',#51598); -#18991=VERTEX_POINT('',#51600); -#18992=VERTEX_POINT('',#51602); -#18993=VERTEX_POINT('',#51604); -#18994=VERTEX_POINT('',#51606); -#18995=VERTEX_POINT('',#51608); -#18996=VERTEX_POINT('',#51610); -#18997=VERTEX_POINT('',#51612); -#18998=VERTEX_POINT('',#51614); -#18999=VERTEX_POINT('',#51616); -#19000=VERTEX_POINT('',#51618); -#19001=VERTEX_POINT('',#51620); -#19002=VERTEX_POINT('',#51622); -#19003=VERTEX_POINT('',#51624); -#19004=VERTEX_POINT('',#51626); -#19005=VERTEX_POINT('',#51628); -#19006=VERTEX_POINT('',#51630); -#19007=VERTEX_POINT('',#51632); -#19008=VERTEX_POINT('',#51634); -#19009=VERTEX_POINT('',#51638); -#19010=VERTEX_POINT('',#51639); -#19011=VERTEX_POINT('',#51641); -#19012=VERTEX_POINT('',#51643); -#19013=VERTEX_POINT('',#51645); -#19014=VERTEX_POINT('',#51647); -#19015=VERTEX_POINT('',#51649); -#19016=VERTEX_POINT('',#51651); -#19017=VERTEX_POINT('',#51653); -#19018=VERTEX_POINT('',#51655); -#19019=VERTEX_POINT('',#51657); -#19020=VERTEX_POINT('',#51659); -#19021=VERTEX_POINT('',#51661); -#19022=VERTEX_POINT('',#51663); -#19023=VERTEX_POINT('',#51665); -#19024=VERTEX_POINT('',#51667); -#19025=VERTEX_POINT('',#51669); -#19026=VERTEX_POINT('',#51671); -#19027=VERTEX_POINT('',#51673); -#19028=VERTEX_POINT('',#51675); -#19029=VERTEX_POINT('',#51677); -#19030=VERTEX_POINT('',#51679); -#19031=VERTEX_POINT('',#51681); -#19032=VERTEX_POINT('',#51683); -#19033=VERTEX_POINT('',#51685); -#19034=VERTEX_POINT('',#51687); -#19035=VERTEX_POINT('',#51689); -#19036=VERTEX_POINT('',#51691); -#19037=VERTEX_POINT('',#51693); -#19038=VERTEX_POINT('',#51695); -#19039=VERTEX_POINT('',#51697); -#19040=VERTEX_POINT('',#51699); -#19041=VERTEX_POINT('',#51701); -#19042=VERTEX_POINT('',#51703); -#19043=VERTEX_POINT('',#51705); -#19044=VERTEX_POINT('',#51707); -#19045=VERTEX_POINT('',#51709); -#19046=VERTEX_POINT('',#51711); -#19047=VERTEX_POINT('',#51713); -#19048=VERTEX_POINT('',#51715); -#19049=VERTEX_POINT('',#51717); -#19050=VERTEX_POINT('',#51719); -#19051=VERTEX_POINT('',#51721); -#19052=VERTEX_POINT('',#51723); -#19053=VERTEX_POINT('',#51725); -#19054=VERTEX_POINT('',#51727); -#19055=VERTEX_POINT('',#51729); -#19056=VERTEX_POINT('',#51731); -#19057=VERTEX_POINT('',#51733); -#19058=VERTEX_POINT('',#51735); -#19059=VERTEX_POINT('',#51737); -#19060=VERTEX_POINT('',#51739); -#19061=VERTEX_POINT('',#51741); -#19062=VERTEX_POINT('',#51743); -#19063=VERTEX_POINT('',#51745); -#19064=VERTEX_POINT('',#51747); -#19065=VERTEX_POINT('',#51749); -#19066=VERTEX_POINT('',#51751); -#19067=VERTEX_POINT('',#51753); -#19068=VERTEX_POINT('',#51755); -#19069=VERTEX_POINT('',#51757); -#19070=VERTEX_POINT('',#51759); -#19071=VERTEX_POINT('',#51761); -#19072=VERTEX_POINT('',#51763); -#19073=VERTEX_POINT('',#51765); -#19074=VERTEX_POINT('',#51767); -#19075=VERTEX_POINT('',#51769); -#19076=VERTEX_POINT('',#51771); -#19077=VERTEX_POINT('',#51773); -#19078=VERTEX_POINT('',#51775); -#19079=VERTEX_POINT('',#51777); -#19080=VERTEX_POINT('',#51779); -#19081=VERTEX_POINT('',#51781); -#19082=VERTEX_POINT('',#51783); -#19083=VERTEX_POINT('',#51785); -#19084=VERTEX_POINT('',#51787); -#19085=VERTEX_POINT('',#51789); -#19086=VERTEX_POINT('',#51791); -#19087=VERTEX_POINT('',#51793); -#19088=VERTEX_POINT('',#51795); -#19089=VERTEX_POINT('',#51797); -#19090=VERTEX_POINT('',#51799); -#19091=VERTEX_POINT('',#51801); -#19092=VERTEX_POINT('',#51803); -#19093=VERTEX_POINT('',#51805); -#19094=VERTEX_POINT('',#51807); -#19095=VERTEX_POINT('',#51809); -#19096=VERTEX_POINT('',#51811); -#19097=VERTEX_POINT('',#51813); -#19098=VERTEX_POINT('',#51815); -#19099=VERTEX_POINT('',#51817); -#19100=VERTEX_POINT('',#51819); -#19101=VERTEX_POINT('',#51821); -#19102=VERTEX_POINT('',#51823); -#19103=VERTEX_POINT('',#51825); -#19104=VERTEX_POINT('',#51827); -#19105=VERTEX_POINT('',#51829); -#19106=VERTEX_POINT('',#51831); -#19107=VERTEX_POINT('',#51833); -#19108=VERTEX_POINT('',#51835); -#19109=VERTEX_POINT('',#51837); -#19110=VERTEX_POINT('',#51839); -#19111=VERTEX_POINT('',#51841); -#19112=VERTEX_POINT('',#51843); -#19113=VERTEX_POINT('',#51845); -#19114=VERTEX_POINT('',#51847); -#19115=VERTEX_POINT('',#51849); -#19116=VERTEX_POINT('',#51851); -#19117=VERTEX_POINT('',#51853); -#19118=VERTEX_POINT('',#51855); -#19119=VERTEX_POINT('',#51857); -#19120=VERTEX_POINT('',#51859); -#19121=VERTEX_POINT('',#51861); -#19122=VERTEX_POINT('',#51863); -#19123=VERTEX_POINT('',#51865); -#19124=VERTEX_POINT('',#51867); -#19125=VERTEX_POINT('',#51869); -#19126=VERTEX_POINT('',#51871); -#19127=VERTEX_POINT('',#51873); -#19128=VERTEX_POINT('',#51875); -#19129=VERTEX_POINT('',#51877); -#19130=VERTEX_POINT('',#51879); -#19131=VERTEX_POINT('',#51881); -#19132=VERTEX_POINT('',#51883); -#19133=VERTEX_POINT('',#51885); -#19134=VERTEX_POINT('',#51887); -#19135=VERTEX_POINT('',#51889); -#19136=VERTEX_POINT('',#51891); -#19137=VERTEX_POINT('',#51893); -#19138=VERTEX_POINT('',#51895); -#19139=VERTEX_POINT('',#51897); -#19140=VERTEX_POINT('',#51899); -#19141=VERTEX_POINT('',#51901); -#19142=VERTEX_POINT('',#51903); -#19143=VERTEX_POINT('',#51905); -#19144=VERTEX_POINT('',#51907); -#19145=VERTEX_POINT('',#51909); -#19146=VERTEX_POINT('',#51911); -#19147=VERTEX_POINT('',#51913); -#19148=VERTEX_POINT('',#51915); -#19149=VERTEX_POINT('',#51917); -#19150=VERTEX_POINT('',#51919); -#19151=VERTEX_POINT('',#51921); -#19152=VERTEX_POINT('',#51923); -#19153=VERTEX_POINT('',#51925); -#19154=VERTEX_POINT('',#51927); -#19155=VERTEX_POINT('',#51929); -#19156=VERTEX_POINT('',#51931); -#19157=VERTEX_POINT('',#51933); -#19158=VERTEX_POINT('',#51935); -#19159=VERTEX_POINT('',#51937); -#19160=VERTEX_POINT('',#51939); -#19161=VERTEX_POINT('',#51941); -#19162=VERTEX_POINT('',#51943); -#19163=VERTEX_POINT('',#51945); -#19164=VERTEX_POINT('',#51947); -#19165=VERTEX_POINT('',#51949); -#19166=VERTEX_POINT('',#51951); -#19167=VERTEX_POINT('',#51953); -#19168=VERTEX_POINT('',#51955); -#19169=VERTEX_POINT('',#51957); -#19170=VERTEX_POINT('',#51959); -#19171=VERTEX_POINT('',#51961); -#19172=VERTEX_POINT('',#51963); -#19173=VERTEX_POINT('',#51965); -#19174=VERTEX_POINT('',#51967); -#19175=VERTEX_POINT('',#51969); -#19176=VERTEX_POINT('',#51971); -#19177=VERTEX_POINT('',#51973); -#19178=VERTEX_POINT('',#51975); -#19179=VERTEX_POINT('',#51977); -#19180=VERTEX_POINT('',#51979); -#19181=VERTEX_POINT('',#51981); -#19182=VERTEX_POINT('',#51983); -#19183=VERTEX_POINT('',#51985); -#19184=VERTEX_POINT('',#51987); -#19185=VERTEX_POINT('',#51989); -#19186=VERTEX_POINT('',#51991); -#19187=VERTEX_POINT('',#51993); -#19188=VERTEX_POINT('',#51995); -#19189=VERTEX_POINT('',#51997); -#19190=VERTEX_POINT('',#51999); -#19191=VERTEX_POINT('',#52001); -#19192=VERTEX_POINT('',#52003); -#19193=VERTEX_POINT('',#52005); -#19194=VERTEX_POINT('',#52007); -#19195=VERTEX_POINT('',#52009); -#19196=VERTEX_POINT('',#52011); -#19197=VERTEX_POINT('',#52013); -#19198=VERTEX_POINT('',#52015); -#19199=VERTEX_POINT('',#52017); -#19200=VERTEX_POINT('',#52019); -#19201=VERTEX_POINT('',#52021); -#19202=VERTEX_POINT('',#52023); -#19203=VERTEX_POINT('',#52025); -#19204=VERTEX_POINT('',#52027); -#19205=VERTEX_POINT('',#52029); -#19206=VERTEX_POINT('',#52031); -#19207=VERTEX_POINT('',#52033); -#19208=VERTEX_POINT('',#52035); -#19209=VERTEX_POINT('',#52037); -#19210=VERTEX_POINT('',#52039); -#19211=VERTEX_POINT('',#52041); -#19212=VERTEX_POINT('',#52043); -#19213=VERTEX_POINT('',#52045); -#19214=VERTEX_POINT('',#52047); -#19215=VERTEX_POINT('',#52049); -#19216=VERTEX_POINT('',#52051); -#19217=VERTEX_POINT('',#52053); -#19218=VERTEX_POINT('',#52055); -#19219=VERTEX_POINT('',#52057); -#19220=VERTEX_POINT('',#52059); -#19221=VERTEX_POINT('',#52061); -#19222=VERTEX_POINT('',#52063); -#19223=VERTEX_POINT('',#52065); -#19224=VERTEX_POINT('',#52067); -#19225=VERTEX_POINT('',#52069); -#19226=VERTEX_POINT('',#52071); -#19227=VERTEX_POINT('',#52073); -#19228=VERTEX_POINT('',#52075); -#19229=VERTEX_POINT('',#52077); -#19230=VERTEX_POINT('',#52079); -#19231=VERTEX_POINT('',#52081); -#19232=VERTEX_POINT('',#52083); -#19233=VERTEX_POINT('',#52085); -#19234=VERTEX_POINT('',#52087); -#19235=VERTEX_POINT('',#52089); -#19236=VERTEX_POINT('',#52091); -#19237=VERTEX_POINT('',#52093); -#19238=VERTEX_POINT('',#52095); -#19239=VERTEX_POINT('',#52097); -#19240=VERTEX_POINT('',#52099); -#19241=VERTEX_POINT('',#52101); -#19242=VERTEX_POINT('',#52103); -#19243=VERTEX_POINT('',#52105); -#19244=VERTEX_POINT('',#52107); -#19245=VERTEX_POINT('',#52109); -#19246=VERTEX_POINT('',#52111); -#19247=VERTEX_POINT('',#52113); -#19248=VERTEX_POINT('',#52115); -#19249=VERTEX_POINT('',#52117); -#19250=VERTEX_POINT('',#52119); -#19251=VERTEX_POINT('',#52121); -#19252=VERTEX_POINT('',#52123); -#19253=VERTEX_POINT('',#52125); -#19254=VERTEX_POINT('',#52127); -#19255=VERTEX_POINT('',#52129); -#19256=VERTEX_POINT('',#52131); -#19257=VERTEX_POINT('',#52133); -#19258=VERTEX_POINT('',#52135); -#19259=VERTEX_POINT('',#52137); -#19260=VERTEX_POINT('',#52139); -#19261=VERTEX_POINT('',#52141); -#19262=VERTEX_POINT('',#52143); -#19263=VERTEX_POINT('',#52145); -#19264=VERTEX_POINT('',#52147); -#19265=VERTEX_POINT('',#52149); -#19266=VERTEX_POINT('',#52151); -#19267=VERTEX_POINT('',#52153); -#19268=VERTEX_POINT('',#52155); -#19269=VERTEX_POINT('',#52157); -#19270=VERTEX_POINT('',#52159); -#19271=VERTEX_POINT('',#52161); -#19272=VERTEX_POINT('',#52163); -#19273=VERTEX_POINT('',#52165); -#19274=VERTEX_POINT('',#52167); -#19275=VERTEX_POINT('',#52169); -#19276=VERTEX_POINT('',#52171); -#19277=VERTEX_POINT('',#52173); -#19278=VERTEX_POINT('',#52175); -#19279=VERTEX_POINT('',#52177); -#19280=VERTEX_POINT('',#52179); -#19281=VERTEX_POINT('',#52181); -#19282=VERTEX_POINT('',#52183); -#19283=VERTEX_POINT('',#52185); -#19284=VERTEX_POINT('',#52187); -#19285=VERTEX_POINT('',#52189); -#19286=VERTEX_POINT('',#52191); -#19287=VERTEX_POINT('',#52193); -#19288=VERTEX_POINT('',#52195); -#19289=VERTEX_POINT('',#52197); -#19290=VERTEX_POINT('',#52199); -#19291=VERTEX_POINT('',#52201); -#19292=VERTEX_POINT('',#52203); -#19293=VERTEX_POINT('',#52342); -#19294=VERTEX_POINT('',#52344); -#19295=VERTEX_POINT('',#52349); -#19296=VERTEX_POINT('',#52351); -#19297=VERTEX_POINT('',#52356); -#19298=VERTEX_POINT('',#52358); -#19299=VERTEX_POINT('',#52368); -#19300=VERTEX_POINT('',#52370); -#19301=VERTEX_POINT('',#52375); -#19302=VERTEX_POINT('',#52377); -#19303=VERTEX_POINT('',#52382); -#19304=VERTEX_POINT('',#52384); -#19305=VERTEX_POINT('',#52394); -#19306=VERTEX_POINT('',#52396); -#19307=VERTEX_POINT('',#52401); -#19308=VERTEX_POINT('',#52403); -#19309=VERTEX_POINT('',#52408); -#19310=VERTEX_POINT('',#52410); -#19311=VERTEX_POINT('',#52420); -#19312=VERTEX_POINT('',#52422); -#19313=VERTEX_POINT('',#52427); -#19314=VERTEX_POINT('',#52429); -#19315=VERTEX_POINT('',#52434); -#19316=VERTEX_POINT('',#52436); -#19317=VERTEX_POINT('',#52446); -#19318=VERTEX_POINT('',#52448); -#19319=VERTEX_POINT('',#52453); -#19320=VERTEX_POINT('',#52455); -#19321=VERTEX_POINT('',#52460); -#19322=VERTEX_POINT('',#52462); -#19323=VERTEX_POINT('',#52472); -#19324=VERTEX_POINT('',#52474); -#19325=VERTEX_POINT('',#52479); -#19326=VERTEX_POINT('',#52481); -#19327=VERTEX_POINT('',#52486); -#19328=VERTEX_POINT('',#52488); -#19329=VERTEX_POINT('',#52498); -#19330=VERTEX_POINT('',#52500); -#19331=VERTEX_POINT('',#52505); -#19332=VERTEX_POINT('',#52507); -#19333=VERTEX_POINT('',#52512); -#19334=VERTEX_POINT('',#52514); -#19335=VERTEX_POINT('',#52524); -#19336=VERTEX_POINT('',#52526); -#19337=VERTEX_POINT('',#52531); -#19338=VERTEX_POINT('',#52533); -#19339=VERTEX_POINT('',#52538); -#19340=VERTEX_POINT('',#52540); -#19341=VERTEX_POINT('',#52550); -#19342=VERTEX_POINT('',#52552); -#19343=VERTEX_POINT('',#52557); -#19344=VERTEX_POINT('',#52559); -#19345=VERTEX_POINT('',#52564); -#19346=VERTEX_POINT('',#52566); -#19347=VERTEX_POINT('',#52576); -#19348=VERTEX_POINT('',#52578); -#19349=VERTEX_POINT('',#52583); -#19350=VERTEX_POINT('',#52585); -#19351=VERTEX_POINT('',#52590); -#19352=VERTEX_POINT('',#52592); -#19353=VERTEX_POINT('',#52602); -#19354=VERTEX_POINT('',#52604); -#19355=VERTEX_POINT('',#52609); -#19356=VERTEX_POINT('',#52611); -#19357=VERTEX_POINT('',#52616); -#19358=VERTEX_POINT('',#52618); -#19359=VERTEX_POINT('',#52628); -#19360=VERTEX_POINT('',#52630); -#19361=VERTEX_POINT('',#52635); -#19362=VERTEX_POINT('',#52637); -#19363=VERTEX_POINT('',#52642); -#19364=VERTEX_POINT('',#52644); -#19365=VERTEX_POINT('',#52654); -#19366=VERTEX_POINT('',#52656); -#19367=VERTEX_POINT('',#52661); -#19368=VERTEX_POINT('',#52663); -#19369=VERTEX_POINT('',#52668); -#19370=VERTEX_POINT('',#52670); -#19371=VERTEX_POINT('',#52680); -#19372=VERTEX_POINT('',#52682); -#19373=VERTEX_POINT('',#52687); -#19374=VERTEX_POINT('',#52689); -#19375=VERTEX_POINT('',#52694); -#19376=VERTEX_POINT('',#52696); -#19377=VERTEX_POINT('',#52706); -#19378=VERTEX_POINT('',#52708); -#19379=VERTEX_POINT('',#52713); -#19380=VERTEX_POINT('',#52715); -#19381=VERTEX_POINT('',#52720); -#19382=VERTEX_POINT('',#52722); -#19383=VERTEX_POINT('',#52732); -#19384=VERTEX_POINT('',#52734); -#19385=VERTEX_POINT('',#52739); -#19386=VERTEX_POINT('',#52741); -#19387=VERTEX_POINT('',#52746); -#19388=VERTEX_POINT('',#52748); -#19389=VERTEX_POINT('',#52758); -#19390=VERTEX_POINT('',#52760); -#19391=VERTEX_POINT('',#52765); -#19392=VERTEX_POINT('',#52767); -#19393=VERTEX_POINT('',#52772); -#19394=VERTEX_POINT('',#52774); -#19395=VERTEX_POINT('',#52784); -#19396=VERTEX_POINT('',#52786); -#19397=VERTEX_POINT('',#52791); -#19398=VERTEX_POINT('',#52793); -#19399=VERTEX_POINT('',#52798); -#19400=VERTEX_POINT('',#52800); -#19401=VERTEX_POINT('',#52810); -#19402=VERTEX_POINT('',#52812); -#19403=VERTEX_POINT('',#52817); -#19404=VERTEX_POINT('',#52819); -#19405=VERTEX_POINT('',#52824); -#19406=VERTEX_POINT('',#52826); -#19407=VERTEX_POINT('',#52836); -#19408=VERTEX_POINT('',#52838); -#19409=VERTEX_POINT('',#52843); -#19410=VERTEX_POINT('',#52845); -#19411=VERTEX_POINT('',#52850); -#19412=VERTEX_POINT('',#52852); -#19413=VERTEX_POINT('',#52859); -#19414=VERTEX_POINT('',#52861); -#19415=VERTEX_POINT('',#52863); -#19416=VERTEX_POINT('',#52865); -#19417=VERTEX_POINT('',#52869); -#19418=VERTEX_POINT('',#52871); -#19419=VERTEX_POINT('',#52873); -#19420=VERTEX_POINT('',#52875); -#19421=VERTEX_POINT('',#52879); -#19422=VERTEX_POINT('',#52881); -#19423=VERTEX_POINT('',#52883); -#19424=VERTEX_POINT('',#52885); -#19425=VERTEX_POINT('',#52889); -#19426=VERTEX_POINT('',#52891); -#19427=VERTEX_POINT('',#52893); -#19428=VERTEX_POINT('',#52895); -#19429=VERTEX_POINT('',#52899); -#19430=VERTEX_POINT('',#52901); -#19431=VERTEX_POINT('',#52903); -#19432=VERTEX_POINT('',#52905); -#19433=VERTEX_POINT('',#52909); -#19434=VERTEX_POINT('',#52911); -#19435=VERTEX_POINT('',#52913); -#19436=VERTEX_POINT('',#52915); -#19437=VERTEX_POINT('',#52919); -#19438=VERTEX_POINT('',#52921); -#19439=VERTEX_POINT('',#52923); -#19440=VERTEX_POINT('',#52925); -#19441=VERTEX_POINT('',#52929); -#19442=VERTEX_POINT('',#52931); -#19443=VERTEX_POINT('',#52933); -#19444=VERTEX_POINT('',#52935); -#19445=VERTEX_POINT('',#52939); -#19446=VERTEX_POINT('',#52941); -#19447=VERTEX_POINT('',#52943); -#19448=VERTEX_POINT('',#52945); -#19449=VERTEX_POINT('',#52949); -#19450=VERTEX_POINT('',#52951); -#19451=VERTEX_POINT('',#52953); -#19452=VERTEX_POINT('',#52955); -#19453=VERTEX_POINT('',#52959); -#19454=VERTEX_POINT('',#52961); -#19455=VERTEX_POINT('',#52963); -#19456=VERTEX_POINT('',#52965); -#19457=VERTEX_POINT('',#52969); -#19458=VERTEX_POINT('',#52971); -#19459=VERTEX_POINT('',#52973); -#19460=VERTEX_POINT('',#52975); -#19461=VERTEX_POINT('',#52979); -#19462=VERTEX_POINT('',#52981); -#19463=VERTEX_POINT('',#52983); -#19464=VERTEX_POINT('',#52985); -#19465=VERTEX_POINT('',#52989); -#19466=VERTEX_POINT('',#52991); -#19467=VERTEX_POINT('',#52993); -#19468=VERTEX_POINT('',#52995); -#19469=VERTEX_POINT('',#52999); -#19470=VERTEX_POINT('',#53001); -#19471=VERTEX_POINT('',#53003); -#19472=VERTEX_POINT('',#53005); -#19473=VERTEX_POINT('',#53009); -#19474=VERTEX_POINT('',#53011); -#19475=VERTEX_POINT('',#53013); -#19476=VERTEX_POINT('',#53015); -#19477=VERTEX_POINT('',#53019); -#19478=VERTEX_POINT('',#53021); -#19479=VERTEX_POINT('',#53023); -#19480=VERTEX_POINT('',#53025); -#19481=VERTEX_POINT('',#53029); -#19482=VERTEX_POINT('',#53031); -#19483=VERTEX_POINT('',#53033); -#19484=VERTEX_POINT('',#53035); -#19485=VERTEX_POINT('',#53039); -#19486=VERTEX_POINT('',#53041); -#19487=VERTEX_POINT('',#53043); -#19488=VERTEX_POINT('',#53045); -#19489=VERTEX_POINT('',#53049); -#19490=VERTEX_POINT('',#53058); -#19491=VERTEX_POINT('',#53062); -#19492=VERTEX_POINT('',#53071); -#19493=VERTEX_POINT('',#53075); -#19494=VERTEX_POINT('',#53084); -#19495=VERTEX_POINT('',#53088); -#19496=VERTEX_POINT('',#53097); -#19497=VERTEX_POINT('',#53101); -#19498=VERTEX_POINT('',#53110); -#19499=VERTEX_POINT('',#53114); -#19500=VERTEX_POINT('',#53123); -#19501=VERTEX_POINT('',#53127); -#19502=VERTEX_POINT('',#53136); -#19503=VERTEX_POINT('',#53140); -#19504=VERTEX_POINT('',#53149); -#19505=VERTEX_POINT('',#53153); -#19506=VERTEX_POINT('',#53162); -#19507=VERTEX_POINT('',#53166); -#19508=VERTEX_POINT('',#53175); -#19509=VERTEX_POINT('',#53179); -#19510=VERTEX_POINT('',#53188); -#19511=VERTEX_POINT('',#53192); -#19512=VERTEX_POINT('',#53201); -#19513=VERTEX_POINT('',#53205); -#19514=VERTEX_POINT('',#53214); -#19515=VERTEX_POINT('',#53218); -#19516=VERTEX_POINT('',#53227); -#19517=VERTEX_POINT('',#53231); -#19518=VERTEX_POINT('',#53240); -#19519=VERTEX_POINT('',#53244); -#19520=VERTEX_POINT('',#53253); -#19521=VERTEX_POINT('',#53257); -#19522=VERTEX_POINT('',#53266); -#19523=VERTEX_POINT('',#53270); -#19524=VERTEX_POINT('',#53279); -#19525=VERTEX_POINT('',#53283); -#19526=VERTEX_POINT('',#53292); -#19527=VERTEX_POINT('',#53296); -#19528=VERTEX_POINT('',#53297); -#19529=VERTEX_POINT('',#53306); -#19530=VERTEX_POINT('',#53308); -#19531=VERTEX_POINT('',#53315); -#19532=VERTEX_POINT('',#53317); -#19533=VERTEX_POINT('',#53319); -#19534=VERTEX_POINT('',#53321); -#19535=VERTEX_POINT('',#53331); -#19536=VERTEX_POINT('',#53333); -#19537=VERTEX_POINT('',#53335); -#19538=VERTEX_POINT('',#53337); -#19539=VERTEX_POINT('',#53347); -#19540=VERTEX_POINT('',#53349); -#19541=VERTEX_POINT('',#53351); -#19542=VERTEX_POINT('',#53353); -#19543=VERTEX_POINT('',#53363); -#19544=VERTEX_POINT('',#53365); -#19545=VERTEX_POINT('',#53367); -#19546=VERTEX_POINT('',#53369); -#19547=VERTEX_POINT('',#53379); -#19548=VERTEX_POINT('',#53381); -#19549=VERTEX_POINT('',#53383); -#19550=VERTEX_POINT('',#53385); -#19551=VERTEX_POINT('',#53395); -#19552=VERTEX_POINT('',#53397); -#19553=VERTEX_POINT('',#53399); -#19554=VERTEX_POINT('',#53401); -#19555=VERTEX_POINT('',#53411); -#19556=VERTEX_POINT('',#53413); -#19557=VERTEX_POINT('',#53415); -#19558=VERTEX_POINT('',#53417); -#19559=VERTEX_POINT('',#53427); -#19560=VERTEX_POINT('',#53429); -#19561=VERTEX_POINT('',#53431); -#19562=VERTEX_POINT('',#53433); -#19563=VERTEX_POINT('',#53443); -#19564=VERTEX_POINT('',#53445); -#19565=VERTEX_POINT('',#53447); -#19566=VERTEX_POINT('',#53449); -#19567=VERTEX_POINT('',#53459); -#19568=VERTEX_POINT('',#53461); -#19569=VERTEX_POINT('',#53463); -#19570=VERTEX_POINT('',#53465); -#19571=VERTEX_POINT('',#53475); -#19572=VERTEX_POINT('',#53477); -#19573=VERTEX_POINT('',#53479); -#19574=VERTEX_POINT('',#53481); -#19575=VERTEX_POINT('',#53491); -#19576=VERTEX_POINT('',#53493); -#19577=VERTEX_POINT('',#53495); -#19578=VERTEX_POINT('',#53497); -#19579=VERTEX_POINT('',#53507); -#19580=VERTEX_POINT('',#53509); -#19581=VERTEX_POINT('',#53511); -#19582=VERTEX_POINT('',#53513); -#19583=VERTEX_POINT('',#53523); -#19584=VERTEX_POINT('',#53525); -#19585=VERTEX_POINT('',#53527); -#19586=VERTEX_POINT('',#53529); -#19587=VERTEX_POINT('',#53539); -#19588=VERTEX_POINT('',#53541); -#19589=VERTEX_POINT('',#53543); -#19590=VERTEX_POINT('',#53545); -#19591=VERTEX_POINT('',#53555); -#19592=VERTEX_POINT('',#53557); -#19593=VERTEX_POINT('',#53559); -#19594=VERTEX_POINT('',#53561); -#19595=VERTEX_POINT('',#53571); -#19596=VERTEX_POINT('',#53573); -#19597=VERTEX_POINT('',#53575); -#19598=VERTEX_POINT('',#53577); -#19599=VERTEX_POINT('',#53587); -#19600=VERTEX_POINT('',#53589); -#19601=VERTEX_POINT('',#53591); -#19602=VERTEX_POINT('',#53593); -#19603=VERTEX_POINT('',#53603); -#19604=VERTEX_POINT('',#53605); -#19605=VERTEX_POINT('',#53607); -#19606=VERTEX_POINT('',#53609); -#19607=VERTEX_POINT('',#53619); -#19608=VERTEX_POINT('',#53621); -#19609=VERTEX_POINT('',#53623); -#19610=VERTEX_POINT('',#53625); -#19611=VERTEX_POINT('',#53632); -#19612=VERTEX_POINT('',#53634); -#19613=VERTEX_POINT('',#53636); -#19614=VERTEX_POINT('',#53638); -#19615=VERTEX_POINT('',#53642); -#19616=VERTEX_POINT('',#53644); -#19617=VERTEX_POINT('',#53646); -#19618=VERTEX_POINT('',#53648); -#19619=VERTEX_POINT('',#53652); -#19620=VERTEX_POINT('',#53654); -#19621=VERTEX_POINT('',#53656); -#19622=VERTEX_POINT('',#53658); -#19623=VERTEX_POINT('',#53662); -#19624=VERTEX_POINT('',#53664); -#19625=VERTEX_POINT('',#53666); -#19626=VERTEX_POINT('',#53668); -#19627=VERTEX_POINT('',#53672); -#19628=VERTEX_POINT('',#53674); -#19629=VERTEX_POINT('',#53676); -#19630=VERTEX_POINT('',#53678); -#19631=VERTEX_POINT('',#53682); -#19632=VERTEX_POINT('',#53684); -#19633=VERTEX_POINT('',#53686); -#19634=VERTEX_POINT('',#53688); -#19635=VERTEX_POINT('',#53692); -#19636=VERTEX_POINT('',#53694); -#19637=VERTEX_POINT('',#53696); -#19638=VERTEX_POINT('',#53698); -#19639=VERTEX_POINT('',#53702); -#19640=VERTEX_POINT('',#53704); -#19641=VERTEX_POINT('',#53706); -#19642=VERTEX_POINT('',#53708); -#19643=VERTEX_POINT('',#53712); -#19644=VERTEX_POINT('',#53714); -#19645=VERTEX_POINT('',#53716); -#19646=VERTEX_POINT('',#53718); -#19647=VERTEX_POINT('',#53722); -#19648=VERTEX_POINT('',#53724); -#19649=VERTEX_POINT('',#53726); -#19650=VERTEX_POINT('',#53728); -#19651=VERTEX_POINT('',#53732); -#19652=VERTEX_POINT('',#53734); -#19653=VERTEX_POINT('',#53736); -#19654=VERTEX_POINT('',#53738); -#19655=VERTEX_POINT('',#53742); -#19656=VERTEX_POINT('',#53744); -#19657=VERTEX_POINT('',#53746); -#19658=VERTEX_POINT('',#53748); -#19659=VERTEX_POINT('',#53752); -#19660=VERTEX_POINT('',#53754); -#19661=VERTEX_POINT('',#53756); -#19662=VERTEX_POINT('',#53758); -#19663=VERTEX_POINT('',#53762); -#19664=VERTEX_POINT('',#53764); -#19665=VERTEX_POINT('',#53766); -#19666=VERTEX_POINT('',#53768); -#19667=VERTEX_POINT('',#53772); -#19668=VERTEX_POINT('',#53774); -#19669=VERTEX_POINT('',#53776); -#19670=VERTEX_POINT('',#53778); -#19671=VERTEX_POINT('',#53782); -#19672=VERTEX_POINT('',#53784); -#19673=VERTEX_POINT('',#53786); -#19674=VERTEX_POINT('',#53788); -#19675=VERTEX_POINT('',#53792); -#19676=VERTEX_POINT('',#53794); -#19677=VERTEX_POINT('',#53796); -#19678=VERTEX_POINT('',#53798); -#19679=VERTEX_POINT('',#53802); -#19680=VERTEX_POINT('',#53804); -#19681=VERTEX_POINT('',#53806); -#19682=VERTEX_POINT('',#53808); -#19683=VERTEX_POINT('',#53812); -#19684=VERTEX_POINT('',#53814); -#19685=VERTEX_POINT('',#53816); -#19686=VERTEX_POINT('',#53818); -#19687=VERTEX_POINT('',#53825); -#19688=VERTEX_POINT('',#53830); -#19689=VERTEX_POINT('',#53832); -#19690=VERTEX_POINT('',#53841); -#19691=VERTEX_POINT('',#53848); -#19692=VERTEX_POINT('',#53853); -#19693=VERTEX_POINT('',#53855); -#19694=VERTEX_POINT('',#53864); -#19695=VERTEX_POINT('',#53871); -#19696=VERTEX_POINT('',#53876); -#19697=VERTEX_POINT('',#53878); -#19698=VERTEX_POINT('',#53887); -#19699=VERTEX_POINT('',#53894); -#19700=VERTEX_POINT('',#53899); -#19701=VERTEX_POINT('',#53901); -#19702=VERTEX_POINT('',#53910); -#19703=VERTEX_POINT('',#53917); -#19704=VERTEX_POINT('',#53922); -#19705=VERTEX_POINT('',#53924); -#19706=VERTEX_POINT('',#53933); -#19707=VERTEX_POINT('',#53940); -#19708=VERTEX_POINT('',#53945); -#19709=VERTEX_POINT('',#53947); -#19710=VERTEX_POINT('',#53956); -#19711=VERTEX_POINT('',#53963); -#19712=VERTEX_POINT('',#53968); -#19713=VERTEX_POINT('',#53970); -#19714=VERTEX_POINT('',#53979); -#19715=VERTEX_POINT('',#53986); -#19716=VERTEX_POINT('',#53991); -#19717=VERTEX_POINT('',#53993); -#19718=VERTEX_POINT('',#54002); -#19719=VERTEX_POINT('',#54009); -#19720=VERTEX_POINT('',#54014); -#19721=VERTEX_POINT('',#54016); -#19722=VERTEX_POINT('',#54025); -#19723=VERTEX_POINT('',#54032); -#19724=VERTEX_POINT('',#54037); -#19725=VERTEX_POINT('',#54039); -#19726=VERTEX_POINT('',#54048); -#19727=VERTEX_POINT('',#54055); -#19728=VERTEX_POINT('',#54060); -#19729=VERTEX_POINT('',#54062); -#19730=VERTEX_POINT('',#54071); -#19731=VERTEX_POINT('',#54078); -#19732=VERTEX_POINT('',#54083); -#19733=VERTEX_POINT('',#54085); -#19734=VERTEX_POINT('',#54094); -#19735=VERTEX_POINT('',#54101); -#19736=VERTEX_POINT('',#54106); -#19737=VERTEX_POINT('',#54108); -#19738=VERTEX_POINT('',#54117); -#19739=VERTEX_POINT('',#54124); -#19740=VERTEX_POINT('',#54129); -#19741=VERTEX_POINT('',#54131); -#19742=VERTEX_POINT('',#54140); -#19743=VERTEX_POINT('',#54147); -#19744=VERTEX_POINT('',#54152); -#19745=VERTEX_POINT('',#54154); -#19746=VERTEX_POINT('',#54163); -#19747=VERTEX_POINT('',#54170); -#19748=VERTEX_POINT('',#54175); -#19749=VERTEX_POINT('',#54177); -#19750=VERTEX_POINT('',#54186); -#19751=VERTEX_POINT('',#54193); -#19752=VERTEX_POINT('',#54198); -#19753=VERTEX_POINT('',#54200); -#19754=VERTEX_POINT('',#54209); -#19755=VERTEX_POINT('',#54216); -#19756=VERTEX_POINT('',#54221); -#19757=VERTEX_POINT('',#54223); -#19758=VERTEX_POINT('',#54232); -#19759=VERTEX_POINT('',#54239); -#19760=VERTEX_POINT('',#54244); -#19761=VERTEX_POINT('',#54246); -#19762=VERTEX_POINT('',#54255); -#19763=VERTEX_POINT('',#54262); -#19764=VERTEX_POINT('',#54267); -#19765=VERTEX_POINT('',#54269); -#19766=VERTEX_POINT('',#54274); -#19767=VERTEX_POINT('',#54276); -#19768=VERTEX_POINT('',#54281); -#19769=VERTEX_POINT('',#54291); -#19770=VERTEX_POINT('',#54294); -#19771=VERTEX_POINT('',#54298); -#19772=VERTEX_POINT('',#54301); -#19773=LINE('',#45118,#23472); -#19774=LINE('',#45121,#23473); -#19775=LINE('',#45123,#23474); -#19776=LINE('',#45125,#23475); -#19777=LINE('',#45127,#23476); -#19778=LINE('',#45129,#23477); -#19779=LINE('',#45131,#23478); -#19780=LINE('',#45134,#23479); -#19781=LINE('',#45136,#23480); -#19782=LINE('',#45138,#23481); -#19783=LINE('',#45140,#23482); -#19784=LINE('',#45142,#23483); -#19785=LINE('',#45144,#23484); -#19786=LINE('',#45146,#23485); -#19787=LINE('',#45148,#23486); -#19788=LINE('',#45150,#23487); -#19789=LINE('',#45152,#23488); -#19790=LINE('',#45154,#23489); -#19791=LINE('',#45156,#23490); -#19792=LINE('',#45158,#23491); -#19793=LINE('',#45160,#23492); -#19794=LINE('',#45162,#23493); -#19795=LINE('',#45164,#23494); -#19796=LINE('',#45166,#23495); -#19797=LINE('',#45170,#23496); -#19798=LINE('',#45174,#23497); -#19799=LINE('',#45176,#23498); -#19800=LINE('',#45178,#23499); -#19801=LINE('',#45180,#23500); -#19802=LINE('',#45182,#23501); -#19803=LINE('',#45184,#23502); -#19804=LINE('',#45186,#23503); -#19805=LINE('',#45188,#23504); -#19806=LINE('',#45190,#23505); -#19807=LINE('',#45192,#23506); -#19808=LINE('',#45194,#23507); -#19809=LINE('',#45196,#23508); -#19810=LINE('',#45198,#23509); -#19811=LINE('',#45200,#23510); -#19812=LINE('',#45201,#23511); -#19813=LINE('',#45205,#23512); -#19814=LINE('',#45208,#23513); -#19815=LINE('',#45221,#23514); -#19816=LINE('',#45225,#23515); -#19817=LINE('',#45227,#23516); -#19818=LINE('',#45231,#23517); -#19819=LINE('',#45235,#23518); -#19820=LINE('',#45239,#23519); -#19821=LINE('',#45243,#23520); -#19822=LINE('',#45246,#23521); -#19823=LINE('',#45259,#23522); -#19824=LINE('',#45263,#23523); -#19825=LINE('',#45267,#23524); -#19826=LINE('',#45269,#23525); -#19827=LINE('',#45271,#23526); -#19828=LINE('',#45273,#23527); -#19829=LINE('',#45274,#23528); -#19830=LINE('',#45276,#23529); -#19831=LINE('',#45278,#23530); -#19832=LINE('',#45281,#23531); -#19833=LINE('',#45283,#23532); -#19834=LINE('',#45285,#23533); -#19835=LINE('',#45287,#23534); -#19836=LINE('',#45289,#23535); -#19837=LINE('',#45291,#23536); -#19838=LINE('',#45293,#23537); -#19839=LINE('',#45295,#23538); -#19840=LINE('',#45297,#23539); -#19841=LINE('',#45299,#23540); -#19842=LINE('',#45301,#23541); -#19843=LINE('',#45303,#23542); -#19844=LINE('',#45305,#23543); -#19845=LINE('',#45307,#23544); -#19846=LINE('',#45309,#23545); -#19847=LINE('',#45311,#23546); -#19848=LINE('',#45313,#23547); -#19849=LINE('',#45315,#23548); -#19850=LINE('',#45317,#23549); -#19851=LINE('',#45319,#23550); -#19852=LINE('',#45321,#23551); -#19853=LINE('',#45323,#23552); -#19854=LINE('',#45325,#23553); -#19855=LINE('',#45327,#23554); -#19856=LINE('',#45329,#23555); -#19857=LINE('',#45331,#23556); -#19858=LINE('',#45333,#23557); -#19859=LINE('',#45335,#23558); -#19860=LINE('',#45337,#23559); -#19861=LINE('',#45339,#23560); -#19862=LINE('',#45341,#23561); -#19863=LINE('',#45343,#23562); -#19864=LINE('',#45345,#23563); -#19865=LINE('',#45347,#23564); -#19866=LINE('',#45349,#23565); -#19867=LINE('',#45351,#23566); -#19868=LINE('',#45353,#23567); -#19869=LINE('',#45355,#23568); -#19870=LINE('',#45357,#23569); -#19871=LINE('',#45359,#23570); -#19872=LINE('',#45361,#23571); -#19873=LINE('',#45363,#23572); -#19874=LINE('',#45365,#23573); -#19875=LINE('',#45367,#23574); -#19876=LINE('',#45369,#23575); -#19877=LINE('',#45371,#23576); -#19878=LINE('',#45373,#23577); -#19879=LINE('',#45375,#23578); -#19880=LINE('',#45377,#23579); -#19881=LINE('',#45379,#23580); -#19882=LINE('',#45381,#23581); -#19883=LINE('',#45383,#23582); -#19884=LINE('',#45385,#23583); -#19885=LINE('',#45387,#23584); -#19886=LINE('',#45389,#23585); -#19887=LINE('',#45391,#23586); -#19888=LINE('',#45393,#23587); -#19889=LINE('',#45395,#23588); -#19890=LINE('',#45397,#23589); -#19891=LINE('',#45399,#23590); -#19892=LINE('',#45401,#23591); -#19893=LINE('',#45403,#23592); -#19894=LINE('',#45405,#23593); -#19895=LINE('',#45407,#23594); -#19896=LINE('',#45409,#23595); -#19897=LINE('',#45411,#23596); -#19898=LINE('',#45413,#23597); -#19899=LINE('',#45415,#23598); -#19900=LINE('',#45417,#23599); -#19901=LINE('',#45419,#23600); -#19902=LINE('',#45421,#23601); -#19903=LINE('',#45423,#23602); -#19904=LINE('',#45425,#23603); -#19905=LINE('',#45427,#23604); -#19906=LINE('',#45429,#23605); -#19907=LINE('',#45431,#23606); -#19908=LINE('',#45433,#23607); -#19909=LINE('',#45435,#23608); -#19910=LINE('',#45437,#23609); -#19911=LINE('',#45439,#23610); -#19912=LINE('',#45441,#23611); -#19913=LINE('',#45443,#23612); -#19914=LINE('',#45445,#23613); -#19915=LINE('',#45447,#23614); -#19916=LINE('',#45449,#23615); -#19917=LINE('',#45451,#23616); -#19918=LINE('',#45453,#23617); -#19919=LINE('',#45455,#23618); -#19920=LINE('',#45457,#23619); -#19921=LINE('',#45459,#23620); -#19922=LINE('',#45461,#23621); -#19923=LINE('',#45463,#23622); -#19924=LINE('',#45465,#23623); -#19925=LINE('',#45467,#23624); -#19926=LINE('',#45469,#23625); -#19927=LINE('',#45471,#23626); -#19928=LINE('',#45473,#23627); -#19929=LINE('',#45475,#23628); -#19930=LINE('',#45477,#23629); -#19931=LINE('',#45479,#23630); -#19932=LINE('',#45481,#23631); -#19933=LINE('',#45483,#23632); -#19934=LINE('',#45485,#23633); -#19935=LINE('',#45487,#23634); -#19936=LINE('',#45489,#23635); -#19937=LINE('',#45491,#23636); -#19938=LINE('',#45493,#23637); -#19939=LINE('',#45495,#23638); -#19940=LINE('',#45497,#23639); -#19941=LINE('',#45499,#23640); -#19942=LINE('',#45501,#23641); -#19943=LINE('',#45503,#23642); -#19944=LINE('',#45505,#23643); -#19945=LINE('',#45507,#23644); -#19946=LINE('',#45509,#23645); -#19947=LINE('',#45511,#23646); -#19948=LINE('',#45513,#23647); -#19949=LINE('',#45515,#23648); -#19950=LINE('',#45517,#23649); -#19951=LINE('',#45519,#23650); -#19952=LINE('',#45521,#23651); -#19953=LINE('',#45523,#23652); -#19954=LINE('',#45525,#23653); -#19955=LINE('',#45527,#23654); -#19956=LINE('',#45529,#23655); -#19957=LINE('',#45531,#23656); -#19958=LINE('',#45533,#23657); -#19959=LINE('',#45535,#23658); -#19960=LINE('',#45537,#23659); -#19961=LINE('',#45539,#23660); -#19962=LINE('',#45541,#23661); -#19963=LINE('',#45543,#23662); -#19964=LINE('',#45545,#23663); -#19965=LINE('',#45547,#23664); -#19966=LINE('',#45549,#23665); -#19967=LINE('',#45551,#23666); -#19968=LINE('',#45553,#23667); -#19969=LINE('',#45555,#23668); -#19970=LINE('',#45557,#23669); -#19971=LINE('',#45559,#23670); -#19972=LINE('',#45561,#23671); -#19973=LINE('',#45563,#23672); -#19974=LINE('',#45565,#23673); -#19975=LINE('',#45567,#23674); -#19976=LINE('',#45569,#23675); -#19977=LINE('',#45571,#23676); -#19978=LINE('',#45573,#23677); -#19979=LINE('',#45575,#23678); -#19980=LINE('',#45577,#23679); -#19981=LINE('',#45579,#23680); -#19982=LINE('',#45581,#23681); -#19983=LINE('',#45583,#23682); -#19984=LINE('',#45585,#23683); -#19985=LINE('',#45587,#23684); -#19986=LINE('',#45589,#23685); -#19987=LINE('',#45591,#23686); -#19988=LINE('',#45593,#23687); -#19989=LINE('',#45595,#23688); -#19990=LINE('',#45597,#23689); -#19991=LINE('',#45599,#23690); -#19992=LINE('',#45601,#23691); -#19993=LINE('',#45603,#23692); -#19994=LINE('',#45605,#23693); -#19995=LINE('',#45607,#23694); -#19996=LINE('',#45609,#23695); -#19997=LINE('',#45610,#23696); -#19998=LINE('',#45613,#23697); -#19999=LINE('',#45615,#23698); -#20000=LINE('',#45617,#23699); -#20001=LINE('',#45618,#23700); -#20002=LINE('',#45620,#23701); -#20003=LINE('',#45622,#23702); -#20004=LINE('',#45624,#23703); -#20005=LINE('',#45626,#23704); -#20006=LINE('',#45628,#23705); -#20007=LINE('',#45630,#23706); -#20008=LINE('',#45632,#23707); -#20009=LINE('',#45634,#23708); -#20010=LINE('',#45636,#23709); -#20011=LINE('',#45638,#23710); -#20012=LINE('',#45640,#23711); -#20013=LINE('',#45642,#23712); -#20014=LINE('',#45644,#23713); -#20015=LINE('',#45646,#23714); -#20016=LINE('',#45648,#23715); -#20017=LINE('',#45650,#23716); -#20018=LINE('',#45652,#23717); -#20019=LINE('',#45654,#23718); -#20020=LINE('',#45656,#23719); -#20021=LINE('',#45658,#23720); -#20022=LINE('',#45660,#23721); -#20023=LINE('',#45662,#23722); -#20024=LINE('',#45664,#23723); -#20025=LINE('',#45666,#23724); -#20026=LINE('',#45668,#23725); -#20027=LINE('',#45670,#23726); -#20028=LINE('',#45672,#23727); -#20029=LINE('',#45674,#23728); -#20030=LINE('',#45676,#23729); -#20031=LINE('',#45678,#23730); -#20032=LINE('',#45680,#23731); -#20033=LINE('',#45682,#23732); -#20034=LINE('',#45683,#23733); -#20035=LINE('',#45684,#23734); -#20036=LINE('',#45686,#23735); -#20037=LINE('',#45688,#23736); -#20038=LINE('',#45690,#23737); -#20039=LINE('',#45692,#23738); -#20040=LINE('',#45694,#23739); -#20041=LINE('',#45696,#23740); -#20042=LINE('',#45698,#23741); -#20043=LINE('',#45700,#23742); -#20044=LINE('',#45702,#23743); -#20045=LINE('',#45704,#23744); -#20046=LINE('',#45706,#23745); -#20047=LINE('',#45708,#23746); -#20048=LINE('',#45710,#23747); -#20049=LINE('',#45712,#23748); -#20050=LINE('',#45714,#23749); -#20051=LINE('',#45716,#23750); -#20052=LINE('',#45718,#23751); -#20053=LINE('',#45720,#23752); -#20054=LINE('',#45722,#23753); -#20055=LINE('',#45724,#23754); -#20056=LINE('',#45726,#23755); -#20057=LINE('',#45728,#23756); -#20058=LINE('',#45730,#23757); -#20059=LINE('',#45732,#23758); -#20060=LINE('',#45734,#23759); -#20061=LINE('',#45736,#23760); -#20062=LINE('',#45738,#23761); -#20063=LINE('',#45740,#23762); -#20064=LINE('',#45742,#23763); -#20065=LINE('',#45744,#23764); -#20066=LINE('',#45746,#23765); -#20067=LINE('',#45748,#23766); -#20068=LINE('',#45750,#23767); -#20069=LINE('',#45752,#23768); -#20070=LINE('',#45754,#23769); -#20071=LINE('',#45756,#23770); -#20072=LINE('',#45758,#23771); -#20073=LINE('',#45760,#23772); -#20074=LINE('',#45762,#23773); -#20075=LINE('',#45764,#23774); -#20076=LINE('',#45765,#23775); -#20077=LINE('',#45767,#23776); -#20078=LINE('',#45769,#23777); -#20079=LINE('',#45770,#23778); -#20080=LINE('',#45772,#23779); -#20081=LINE('',#45775,#23780); -#20082=LINE('',#45777,#23781); -#20083=LINE('',#45779,#23782); -#20084=LINE('',#45781,#23783); -#20085=LINE('',#45784,#23784); -#20086=LINE('',#45786,#23785); -#20087=LINE('',#45788,#23786); -#20088=LINE('',#45793,#23787); -#20089=LINE('',#45794,#23788); -#20090=LINE('',#45795,#23789); -#20091=LINE('',#45797,#23790); -#20092=LINE('',#45799,#23791); -#20093=LINE('',#45800,#23792); -#20094=LINE('',#45801,#23793); -#20095=LINE('',#45803,#23794); -#20096=LINE('',#45807,#23795); -#20097=LINE('',#45808,#23796); -#20098=LINE('',#45809,#23797); -#20099=LINE('',#45811,#23798); -#20100=LINE('',#45813,#23799); -#20101=LINE('',#45814,#23800); -#20102=LINE('',#45816,#23801); -#20103=LINE('',#45819,#23802); -#20104=LINE('',#45821,#23803); -#20105=LINE('',#45823,#23804); -#20106=LINE('',#45825,#23805); -#20107=LINE('',#45828,#23806); -#20108=LINE('',#45830,#23807); -#20109=LINE('',#45832,#23808); -#20110=LINE('',#45837,#23809); -#20111=LINE('',#45838,#23810); -#20112=LINE('',#45839,#23811); -#20113=LINE('',#45841,#23812); -#20114=LINE('',#45843,#23813); -#20115=LINE('',#45844,#23814); -#20116=LINE('',#45845,#23815); -#20117=LINE('',#45847,#23816); -#20118=LINE('',#45851,#23817); -#20119=LINE('',#45852,#23818); -#20120=LINE('',#45853,#23819); -#20121=LINE('',#45855,#23820); -#20122=LINE('',#45857,#23821); -#20123=LINE('',#45858,#23822); -#20124=LINE('',#45860,#23823); -#20125=LINE('',#45863,#23824); -#20126=LINE('',#45865,#23825); -#20127=LINE('',#45867,#23826); -#20128=LINE('',#45869,#23827); -#20129=LINE('',#45872,#23828); -#20130=LINE('',#45874,#23829); -#20131=LINE('',#45876,#23830); -#20132=LINE('',#45881,#23831); -#20133=LINE('',#45882,#23832); -#20134=LINE('',#45883,#23833); -#20135=LINE('',#45885,#23834); -#20136=LINE('',#45887,#23835); -#20137=LINE('',#45888,#23836); -#20138=LINE('',#45889,#23837); -#20139=LINE('',#45891,#23838); -#20140=LINE('',#45895,#23839); -#20141=LINE('',#45896,#23840); -#20142=LINE('',#45897,#23841); -#20143=LINE('',#45899,#23842); -#20144=LINE('',#45901,#23843); -#20145=LINE('',#45902,#23844); -#20146=LINE('',#45904,#23845); -#20147=LINE('',#45907,#23846); -#20148=LINE('',#45909,#23847); -#20149=LINE('',#45911,#23848); -#20150=LINE('',#45913,#23849); -#20151=LINE('',#45916,#23850); -#20152=LINE('',#45918,#23851); -#20153=LINE('',#45920,#23852); -#20154=LINE('',#45925,#23853); -#20155=LINE('',#45926,#23854); -#20156=LINE('',#45927,#23855); -#20157=LINE('',#45929,#23856); -#20158=LINE('',#45931,#23857); -#20159=LINE('',#45932,#23858); -#20160=LINE('',#45933,#23859); -#20161=LINE('',#45935,#23860); -#20162=LINE('',#45939,#23861); -#20163=LINE('',#45940,#23862); -#20164=LINE('',#45941,#23863); -#20165=LINE('',#45943,#23864); -#20166=LINE('',#45945,#23865); -#20167=LINE('',#45946,#23866); -#20168=LINE('',#45948,#23867); -#20169=LINE('',#45951,#23868); -#20170=LINE('',#45953,#23869); -#20171=LINE('',#45955,#23870); -#20172=LINE('',#45957,#23871); -#20173=LINE('',#45960,#23872); -#20174=LINE('',#45962,#23873); -#20175=LINE('',#45964,#23874); -#20176=LINE('',#45969,#23875); -#20177=LINE('',#45970,#23876); -#20178=LINE('',#45971,#23877); -#20179=LINE('',#45973,#23878); -#20180=LINE('',#45975,#23879); -#20181=LINE('',#45976,#23880); -#20182=LINE('',#45977,#23881); -#20183=LINE('',#45979,#23882); -#20184=LINE('',#45983,#23883); -#20185=LINE('',#45984,#23884); -#20186=LINE('',#45985,#23885); -#20187=LINE('',#45987,#23886); -#20188=LINE('',#45989,#23887); -#20189=LINE('',#45990,#23888); -#20190=LINE('',#45992,#23889); -#20191=LINE('',#45995,#23890); -#20192=LINE('',#45997,#23891); -#20193=LINE('',#45999,#23892); -#20194=LINE('',#46001,#23893); -#20195=LINE('',#46004,#23894); -#20196=LINE('',#46006,#23895); -#20197=LINE('',#46008,#23896); -#20198=LINE('',#46013,#23897); -#20199=LINE('',#46014,#23898); -#20200=LINE('',#46015,#23899); -#20201=LINE('',#46017,#23900); -#20202=LINE('',#46019,#23901); -#20203=LINE('',#46020,#23902); -#20204=LINE('',#46021,#23903); -#20205=LINE('',#46023,#23904); -#20206=LINE('',#46027,#23905); -#20207=LINE('',#46028,#23906); -#20208=LINE('',#46029,#23907); -#20209=LINE('',#46031,#23908); -#20210=LINE('',#46033,#23909); -#20211=LINE('',#46034,#23910); -#20212=LINE('',#46036,#23911); -#20213=LINE('',#46039,#23912); -#20214=LINE('',#46041,#23913); -#20215=LINE('',#46043,#23914); -#20216=LINE('',#46045,#23915); -#20217=LINE('',#46048,#23916); -#20218=LINE('',#46050,#23917); -#20219=LINE('',#46052,#23918); -#20220=LINE('',#46057,#23919); -#20221=LINE('',#46058,#23920); -#20222=LINE('',#46059,#23921); -#20223=LINE('',#46061,#23922); -#20224=LINE('',#46063,#23923); -#20225=LINE('',#46064,#23924); -#20226=LINE('',#46065,#23925); -#20227=LINE('',#46067,#23926); -#20228=LINE('',#46071,#23927); -#20229=LINE('',#46072,#23928); -#20230=LINE('',#46073,#23929); -#20231=LINE('',#46075,#23930); -#20232=LINE('',#46077,#23931); -#20233=LINE('',#46078,#23932); -#20234=LINE('',#46080,#23933); -#20235=LINE('',#46083,#23934); -#20236=LINE('',#46085,#23935); -#20237=LINE('',#46087,#23936); -#20238=LINE('',#46089,#23937); -#20239=LINE('',#46092,#23938); -#20240=LINE('',#46094,#23939); -#20241=LINE('',#46096,#23940); -#20242=LINE('',#46101,#23941); -#20243=LINE('',#46102,#23942); -#20244=LINE('',#46103,#23943); -#20245=LINE('',#46105,#23944); -#20246=LINE('',#46107,#23945); -#20247=LINE('',#46108,#23946); -#20248=LINE('',#46109,#23947); -#20249=LINE('',#46111,#23948); -#20250=LINE('',#46115,#23949); -#20251=LINE('',#46116,#23950); -#20252=LINE('',#46117,#23951); -#20253=LINE('',#46119,#23952); -#20254=LINE('',#46121,#23953); -#20255=LINE('',#46122,#23954); -#20256=LINE('',#46124,#23955); -#20257=LINE('',#46127,#23956); -#20258=LINE('',#46129,#23957); -#20259=LINE('',#46131,#23958); -#20260=LINE('',#46133,#23959); -#20261=LINE('',#46136,#23960); -#20262=LINE('',#46138,#23961); -#20263=LINE('',#46140,#23962); -#20264=LINE('',#46145,#23963); -#20265=LINE('',#46146,#23964); -#20266=LINE('',#46147,#23965); -#20267=LINE('',#46149,#23966); -#20268=LINE('',#46151,#23967); -#20269=LINE('',#46152,#23968); -#20270=LINE('',#46153,#23969); -#20271=LINE('',#46155,#23970); -#20272=LINE('',#46159,#23971); -#20273=LINE('',#46160,#23972); -#20274=LINE('',#46161,#23973); -#20275=LINE('',#46163,#23974); -#20276=LINE('',#46165,#23975); -#20277=LINE('',#46166,#23976); -#20278=LINE('',#46168,#23977); -#20279=LINE('',#46171,#23978); -#20280=LINE('',#46173,#23979); -#20281=LINE('',#46175,#23980); -#20282=LINE('',#46177,#23981); -#20283=LINE('',#46180,#23982); -#20284=LINE('',#46182,#23983); -#20285=LINE('',#46184,#23984); -#20286=LINE('',#46189,#23985); -#20287=LINE('',#46190,#23986); -#20288=LINE('',#46191,#23987); -#20289=LINE('',#46193,#23988); -#20290=LINE('',#46195,#23989); -#20291=LINE('',#46196,#23990); -#20292=LINE('',#46197,#23991); -#20293=LINE('',#46199,#23992); -#20294=LINE('',#46203,#23993); -#20295=LINE('',#46204,#23994); -#20296=LINE('',#46205,#23995); -#20297=LINE('',#46207,#23996); -#20298=LINE('',#46209,#23997); -#20299=LINE('',#46210,#23998); -#20300=LINE('',#46212,#23999); -#20301=LINE('',#46215,#24000); -#20302=LINE('',#46217,#24001); -#20303=LINE('',#46219,#24002); -#20304=LINE('',#46221,#24003); -#20305=LINE('',#46224,#24004); -#20306=LINE('',#46226,#24005); -#20307=LINE('',#46228,#24006); -#20308=LINE('',#46233,#24007); -#20309=LINE('',#46234,#24008); -#20310=LINE('',#46235,#24009); -#20311=LINE('',#46237,#24010); -#20312=LINE('',#46239,#24011); -#20313=LINE('',#46240,#24012); -#20314=LINE('',#46241,#24013); -#20315=LINE('',#46243,#24014); -#20316=LINE('',#46247,#24015); -#20317=LINE('',#46248,#24016); -#20318=LINE('',#46249,#24017); -#20319=LINE('',#46251,#24018); -#20320=LINE('',#46253,#24019); -#20321=LINE('',#46254,#24020); -#20322=LINE('',#46256,#24021); -#20323=LINE('',#46259,#24022); -#20324=LINE('',#46261,#24023); -#20325=LINE('',#46263,#24024); -#20326=LINE('',#46265,#24025); -#20327=LINE('',#46268,#24026); -#20328=LINE('',#46270,#24027); -#20329=LINE('',#46272,#24028); -#20330=LINE('',#46277,#24029); -#20331=LINE('',#46278,#24030); -#20332=LINE('',#46279,#24031); -#20333=LINE('',#46281,#24032); -#20334=LINE('',#46283,#24033); -#20335=LINE('',#46284,#24034); -#20336=LINE('',#46285,#24035); -#20337=LINE('',#46287,#24036); -#20338=LINE('',#46291,#24037); -#20339=LINE('',#46292,#24038); -#20340=LINE('',#46293,#24039); -#20341=LINE('',#46295,#24040); -#20342=LINE('',#46297,#24041); -#20343=LINE('',#46298,#24042); -#20344=LINE('',#46300,#24043); -#20345=LINE('',#46303,#24044); -#20346=LINE('',#46305,#24045); -#20347=LINE('',#46307,#24046); -#20348=LINE('',#46309,#24047); -#20349=LINE('',#46312,#24048); -#20350=LINE('',#46314,#24049); -#20351=LINE('',#46316,#24050); -#20352=LINE('',#46321,#24051); -#20353=LINE('',#46322,#24052); -#20354=LINE('',#46323,#24053); -#20355=LINE('',#46325,#24054); -#20356=LINE('',#46327,#24055); -#20357=LINE('',#46328,#24056); -#20358=LINE('',#46329,#24057); -#20359=LINE('',#46331,#24058); -#20360=LINE('',#46335,#24059); -#20361=LINE('',#46336,#24060); -#20362=LINE('',#46337,#24061); -#20363=LINE('',#46339,#24062); -#20364=LINE('',#46341,#24063); -#20365=LINE('',#46342,#24064); -#20366=LINE('',#46344,#24065); -#20367=LINE('',#46347,#24066); -#20368=LINE('',#46349,#24067); -#20369=LINE('',#46351,#24068); -#20370=LINE('',#46353,#24069); -#20371=LINE('',#46356,#24070); -#20372=LINE('',#46358,#24071); -#20373=LINE('',#46360,#24072); -#20374=LINE('',#46365,#24073); -#20375=LINE('',#46366,#24074); -#20376=LINE('',#46367,#24075); -#20377=LINE('',#46369,#24076); -#20378=LINE('',#46371,#24077); -#20379=LINE('',#46372,#24078); -#20380=LINE('',#46373,#24079); -#20381=LINE('',#46375,#24080); -#20382=LINE('',#46379,#24081); -#20383=LINE('',#46380,#24082); -#20384=LINE('',#46381,#24083); -#20385=LINE('',#46383,#24084); -#20386=LINE('',#46385,#24085); -#20387=LINE('',#46386,#24086); -#20388=LINE('',#46388,#24087); -#20389=LINE('',#46391,#24088); -#20390=LINE('',#46393,#24089); -#20391=LINE('',#46395,#24090); -#20392=LINE('',#46397,#24091); -#20393=LINE('',#46400,#24092); -#20394=LINE('',#46402,#24093); -#20395=LINE('',#46404,#24094); -#20396=LINE('',#46409,#24095); -#20397=LINE('',#46410,#24096); -#20398=LINE('',#46411,#24097); -#20399=LINE('',#46413,#24098); -#20400=LINE('',#46415,#24099); -#20401=LINE('',#46416,#24100); -#20402=LINE('',#46417,#24101); -#20403=LINE('',#46419,#24102); -#20404=LINE('',#46423,#24103); -#20405=LINE('',#46424,#24104); -#20406=LINE('',#46425,#24105); -#20407=LINE('',#46427,#24106); -#20408=LINE('',#46429,#24107); -#20409=LINE('',#46430,#24108); -#20410=LINE('',#46432,#24109); -#20411=LINE('',#46435,#24110); -#20412=LINE('',#46437,#24111); -#20413=LINE('',#46439,#24112); -#20414=LINE('',#46441,#24113); -#20415=LINE('',#46444,#24114); -#20416=LINE('',#46446,#24115); -#20417=LINE('',#46448,#24116); -#20418=LINE('',#46453,#24117); -#20419=LINE('',#46454,#24118); -#20420=LINE('',#46455,#24119); -#20421=LINE('',#46457,#24120); -#20422=LINE('',#46459,#24121); -#20423=LINE('',#46460,#24122); -#20424=LINE('',#46461,#24123); -#20425=LINE('',#46463,#24124); -#20426=LINE('',#46467,#24125); -#20427=LINE('',#46468,#24126); -#20428=LINE('',#46469,#24127); -#20429=LINE('',#46471,#24128); -#20430=LINE('',#46473,#24129); -#20431=LINE('',#46474,#24130); -#20432=LINE('',#46476,#24131); -#20433=LINE('',#46479,#24132); -#20434=LINE('',#46481,#24133); -#20435=LINE('',#46483,#24134); -#20436=LINE('',#46485,#24135); -#20437=LINE('',#46488,#24136); -#20438=LINE('',#46490,#24137); -#20439=LINE('',#46492,#24138); -#20440=LINE('',#46497,#24139); -#20441=LINE('',#46498,#24140); -#20442=LINE('',#46499,#24141); -#20443=LINE('',#46501,#24142); -#20444=LINE('',#46503,#24143); -#20445=LINE('',#46504,#24144); -#20446=LINE('',#46505,#24145); -#20447=LINE('',#46507,#24146); -#20448=LINE('',#46511,#24147); -#20449=LINE('',#46512,#24148); -#20450=LINE('',#46513,#24149); -#20451=LINE('',#46515,#24150); -#20452=LINE('',#46517,#24151); -#20453=LINE('',#46518,#24152); -#20454=LINE('',#46520,#24153); -#20455=LINE('',#46523,#24154); -#20456=LINE('',#46525,#24155); -#20457=LINE('',#46527,#24156); -#20458=LINE('',#46529,#24157); -#20459=LINE('',#46532,#24158); -#20460=LINE('',#46534,#24159); -#20461=LINE('',#46536,#24160); -#20462=LINE('',#46541,#24161); -#20463=LINE('',#46542,#24162); -#20464=LINE('',#46543,#24163); -#20465=LINE('',#46545,#24164); -#20466=LINE('',#46547,#24165); -#20467=LINE('',#46548,#24166); -#20468=LINE('',#46549,#24167); -#20469=LINE('',#46551,#24168); -#20470=LINE('',#46555,#24169); -#20471=LINE('',#46556,#24170); -#20472=LINE('',#46557,#24171); -#20473=LINE('',#46559,#24172); -#20474=LINE('',#46561,#24173); -#20475=LINE('',#46562,#24174); -#20476=LINE('',#46564,#24175); -#20477=LINE('',#46567,#24176); -#20478=LINE('',#46569,#24177); -#20479=LINE('',#46571,#24178); -#20480=LINE('',#46573,#24179); -#20481=LINE('',#46576,#24180); -#20482=LINE('',#46578,#24181); -#20483=LINE('',#46580,#24182); -#20484=LINE('',#46585,#24183); -#20485=LINE('',#46586,#24184); -#20486=LINE('',#46587,#24185); -#20487=LINE('',#46589,#24186); -#20488=LINE('',#46591,#24187); -#20489=LINE('',#46592,#24188); -#20490=LINE('',#46593,#24189); -#20491=LINE('',#46595,#24190); -#20492=LINE('',#46599,#24191); -#20493=LINE('',#46600,#24192); -#20494=LINE('',#46601,#24193); -#20495=LINE('',#46603,#24194); -#20496=LINE('',#46605,#24195); -#20497=LINE('',#46606,#24196); -#20498=LINE('',#46608,#24197); -#20499=LINE('',#46611,#24198); -#20500=LINE('',#46615,#24199); -#20501=LINE('',#46617,#24200); -#20502=LINE('',#46619,#24201); -#20503=LINE('',#46620,#24202); -#20504=LINE('',#46622,#24203); -#20505=LINE('',#46624,#24204); -#20506=LINE('',#46625,#24205); -#20507=LINE('',#46627,#24206); -#20508=LINE('',#46630,#24207); -#20509=LINE('',#46631,#24208); -#20510=LINE('',#46633,#24209); -#20511=LINE('',#46635,#24210); -#20512=LINE('',#46637,#24211); -#20513=LINE('',#46642,#24212); -#20514=LINE('',#46643,#24213); -#20515=LINE('',#46644,#24214); -#20516=LINE('',#46646,#24215); -#20517=LINE('',#46648,#24216); -#20518=LINE('',#46649,#24217); -#20519=LINE('',#46650,#24218); -#20520=LINE('',#46652,#24219); -#20521=LINE('',#46654,#24220); -#20522=LINE('',#46656,#24221); -#20523=LINE('',#46658,#24222); -#20524=LINE('',#46660,#24223); -#20525=LINE('',#46662,#24224); -#20526=LINE('',#46664,#24225); -#20527=LINE('',#46666,#24226); -#20528=LINE('',#46668,#24227); -#20529=LINE('',#46670,#24228); -#20530=LINE('',#46672,#24229); -#20531=LINE('',#46674,#24230); -#20532=LINE('',#46676,#24231); -#20533=LINE('',#46678,#24232); -#20534=LINE('',#46680,#24233); -#20535=LINE('',#46682,#24234); -#20536=LINE('',#46684,#24235); -#20537=LINE('',#46686,#24236); -#20538=LINE('',#46688,#24237); -#20539=LINE('',#46690,#24238); -#20540=LINE('',#46692,#24239); -#20541=LINE('',#46694,#24240); -#20542=LINE('',#46696,#24241); -#20543=LINE('',#46698,#24242); -#20544=LINE('',#46700,#24243); -#20545=LINE('',#46702,#24244); -#20546=LINE('',#46704,#24245); -#20547=LINE('',#46706,#24246); -#20548=LINE('',#46708,#24247); -#20549=LINE('',#46710,#24248); -#20550=LINE('',#46712,#24249); -#20551=LINE('',#46714,#24250); -#20552=LINE('',#46716,#24251); -#20553=LINE('',#46718,#24252); -#20554=LINE('',#46720,#24253); -#20555=LINE('',#46722,#24254); -#20556=LINE('',#46724,#24255); -#20557=LINE('',#46726,#24256); -#20558=LINE('',#46728,#24257); -#20559=LINE('',#46730,#24258); -#20560=LINE('',#46732,#24259); -#20561=LINE('',#46734,#24260); -#20562=LINE('',#46736,#24261); -#20563=LINE('',#46738,#24262); -#20564=LINE('',#46740,#24263); -#20565=LINE('',#46742,#24264); -#20566=LINE('',#46744,#24265); -#20567=LINE('',#46746,#24266); -#20568=LINE('',#46748,#24267); -#20569=LINE('',#46750,#24268); -#20570=LINE('',#46752,#24269); -#20571=LINE('',#46754,#24270); -#20572=LINE('',#46756,#24271); -#20573=LINE('',#46758,#24272); -#20574=LINE('',#46760,#24273); -#20575=LINE('',#46762,#24274); -#20576=LINE('',#46764,#24275); -#20577=LINE('',#46785,#24276); -#20578=LINE('',#46787,#24277); -#20579=LINE('',#46790,#24278); -#20580=LINE('',#46791,#24279); -#20581=LINE('',#46793,#24280); -#20582=LINE('',#46796,#24281); -#20583=LINE('',#46797,#24282); -#20584=LINE('',#46799,#24283); -#20585=LINE('',#46802,#24284); -#20586=LINE('',#46803,#24285); -#20587=LINE('',#46805,#24286); -#20588=LINE('',#46808,#24287); -#20589=LINE('',#46809,#24288); -#20590=LINE('',#46811,#24289); -#20591=LINE('',#46814,#24290); -#20592=LINE('',#46815,#24291); -#20593=LINE('',#46817,#24292); -#20594=LINE('',#46820,#24293); -#20595=LINE('',#46821,#24294); -#20596=LINE('',#46823,#24295); -#20597=LINE('',#46826,#24296); -#20598=LINE('',#46827,#24297); -#20599=LINE('',#46829,#24298); -#20600=LINE('',#46831,#24299); -#20601=LINE('',#46833,#24300); -#20602=LINE('',#46835,#24301); -#20603=LINE('',#46838,#24302); -#20604=LINE('',#46839,#24303); -#20605=LINE('',#46841,#24304); -#20606=LINE('',#46844,#24305); -#20607=LINE('',#46845,#24306); -#20608=LINE('',#46847,#24307); -#20609=LINE('',#46850,#24308); -#20610=LINE('',#46851,#24309); -#20611=LINE('',#46853,#24310); -#20612=LINE('',#46856,#24311); -#20613=LINE('',#46857,#24312); -#20614=LINE('',#46859,#24313); -#20615=LINE('',#46862,#24314); -#20616=LINE('',#46863,#24315); -#20617=LINE('',#46865,#24316); -#20618=LINE('',#46868,#24317); -#20619=LINE('',#46869,#24318); -#20620=LINE('',#46871,#24319); -#20621=LINE('',#46874,#24320); -#20622=LINE('',#46875,#24321); -#20623=LINE('',#46877,#24322); -#20624=LINE('',#46879,#24323); -#20625=LINE('',#46881,#24324); -#20626=LINE('',#46883,#24325); -#20627=LINE('',#46885,#24326); -#20628=LINE('',#46887,#24327); -#20629=LINE('',#46889,#24328); -#20630=LINE('',#46891,#24329); -#20631=LINE('',#46893,#24330); -#20632=LINE('',#46895,#24331); -#20633=LINE('',#46897,#24332); -#20634=LINE('',#46899,#24333); -#20635=LINE('',#46901,#24334); -#20636=LINE('',#46903,#24335); -#20637=LINE('',#46904,#24336); -#20638=LINE('',#46906,#24337); -#20639=LINE('',#46908,#24338); -#20640=LINE('',#46910,#24339); -#20641=LINE('',#46912,#24340); -#20642=LINE('',#46913,#24341); -#20643=LINE('',#46915,#24342); -#20644=LINE('',#46916,#24343); -#20645=LINE('',#46918,#24344); -#20646=LINE('',#46919,#24345); -#20647=LINE('',#46921,#24346); -#20648=LINE('',#46924,#24347); -#20649=LINE('',#46925,#24348); -#20650=LINE('',#46926,#24349); -#20651=LINE('',#46928,#24350); -#20652=LINE('',#46930,#24351); -#20653=LINE('',#46932,#24352); -#20654=LINE('',#46934,#24353); -#20655=LINE('',#46937,#24354); -#20656=LINE('',#46938,#24355); -#20657=LINE('',#46941,#24356); -#20658=LINE('',#46944,#24357); -#20659=LINE('',#46945,#24358); -#20660=LINE('',#46947,#24359); -#20661=LINE('',#46949,#24360); -#20662=LINE('',#46952,#24361); -#20663=LINE('',#46955,#24362); -#20664=LINE('',#46956,#24363); -#20665=LINE('',#46958,#24364); -#20666=LINE('',#46960,#24365); -#20667=LINE('',#46962,#24366); -#20668=LINE('',#46964,#24367); -#20669=LINE('',#46966,#24368); -#20670=LINE('',#46968,#24369); -#20671=LINE('',#46970,#24370); -#20672=LINE('',#46972,#24371); -#20673=LINE('',#46975,#24372); -#20674=LINE('',#46977,#24373); -#20675=LINE('',#46978,#24374); -#20676=LINE('',#46980,#24375); -#20677=LINE('',#46982,#24376); -#20678=LINE('',#46983,#24377); -#20679=LINE('',#46985,#24378); -#20680=LINE('',#46987,#24379); -#20681=LINE('',#46988,#24380); -#20682=LINE('',#46990,#24381); -#20683=LINE('',#46992,#24382); -#20684=LINE('',#46993,#24383); -#20685=LINE('',#46995,#24384); -#20686=LINE('',#46997,#24385); -#20687=LINE('',#46998,#24386); -#20688=LINE('',#47000,#24387); -#20689=LINE('',#47002,#24388); -#20690=LINE('',#47003,#24389); -#20691=LINE('',#47005,#24390); -#20692=LINE('',#47007,#24391); -#20693=LINE('',#47008,#24392); -#20694=LINE('',#47010,#24393); -#20695=LINE('',#47012,#24394); -#20696=LINE('',#47014,#24395); -#20697=LINE('',#47016,#24396); -#20698=LINE('',#47017,#24397); -#20699=LINE('',#47019,#24398); -#20700=LINE('',#47020,#24399); -#20701=LINE('',#47023,#24400); -#20702=LINE('',#47025,#24401); -#20703=LINE('',#47027,#24402); -#20704=LINE('',#47029,#24403); -#20705=LINE('',#47031,#24404); -#20706=LINE('',#47034,#24405); -#20707=LINE('',#47035,#24406); -#20708=LINE('',#47037,#24407); -#20709=LINE('',#47039,#24408); -#20710=LINE('',#47041,#24409); -#20711=LINE('',#47043,#24410); -#20712=LINE('',#47045,#24411); -#20713=LINE('',#47046,#24412); -#20714=LINE('',#47048,#24413); -#20715=LINE('',#47050,#24414); -#20716=LINE('',#47051,#24415); -#20717=LINE('',#47053,#24416); -#20718=LINE('',#47055,#24417); -#20719=LINE('',#47056,#24418); -#20720=LINE('',#47058,#24419); -#20721=LINE('',#47060,#24420); -#20722=LINE('',#47061,#24421); -#20723=LINE('',#47063,#24422); -#20724=LINE('',#47065,#24423); -#20725=LINE('',#47066,#24424); -#20726=LINE('',#47068,#24425); -#20727=LINE('',#47070,#24426); -#20728=LINE('',#47071,#24427); -#20729=LINE('',#47073,#24428); -#20730=LINE('',#47075,#24429); -#20731=LINE('',#47076,#24430); -#20732=LINE('',#47078,#24431); -#20733=LINE('',#47079,#24432); -#20734=LINE('',#47088,#24433); -#20735=LINE('',#47091,#24434); -#20736=LINE('',#47093,#24435); -#20737=LINE('',#47096,#24436); -#20738=LINE('',#47098,#24437); -#20739=LINE('',#47101,#24438); -#20740=LINE('',#47103,#24439); -#20741=LINE('',#47106,#24440); -#20742=LINE('',#47108,#24441); -#20743=LINE('',#47111,#24442); -#20744=LINE('',#47113,#24443); -#20745=LINE('',#47116,#24444); -#20746=LINE('',#47118,#24445); -#20747=LINE('',#47121,#24446); -#20748=LINE('',#47124,#24447); -#20749=LINE('',#47127,#24448); -#20750=LINE('',#47129,#24449); -#20751=LINE('',#47132,#24450); -#20752=LINE('',#47134,#24451); -#20753=LINE('',#47137,#24452); -#20754=LINE('',#47139,#24453); -#20755=LINE('',#47142,#24454); -#20756=LINE('',#47144,#24455); -#20757=LINE('',#47147,#24456); -#20758=LINE('',#47149,#24457); -#20759=LINE('',#47152,#24458); -#20760=LINE('',#47154,#24459); -#20761=LINE('',#47157,#24460); -#20762=LINE('',#47200,#24461); -#20763=LINE('',#47202,#24462); -#20764=LINE('',#47205,#24463); -#20765=LINE('',#47207,#24464); -#20766=LINE('',#47210,#24465); -#20767=LINE('',#47212,#24466); -#20768=LINE('',#47215,#24467); -#20769=LINE('',#47217,#24468); -#20770=LINE('',#47220,#24469); -#20771=LINE('',#47222,#24470); -#20772=LINE('',#47225,#24471); -#20773=LINE('',#47227,#24472); -#20774=LINE('',#47230,#24473); -#20775=LINE('',#47232,#24474); -#20776=LINE('',#47235,#24475); -#20777=LINE('',#47237,#24476); -#20778=LINE('',#47240,#24477); -#20779=LINE('',#47242,#24478); -#20780=LINE('',#47245,#24479); -#20781=LINE('',#47247,#24480); -#20782=LINE('',#47250,#24481); -#20783=LINE('',#47252,#24482); -#20784=LINE('',#47255,#24483); -#20785=LINE('',#47257,#24484); -#20786=LINE('',#47260,#24485); -#20787=LINE('',#47262,#24486); -#20788=LINE('',#47265,#24487); -#20789=LINE('',#47267,#24488); -#20790=LINE('',#47270,#24489); -#20791=LINE('',#47272,#24490); -#20792=LINE('',#47275,#24491); -#20793=LINE('',#47277,#24492); -#20794=LINE('',#47280,#24493); -#20795=LINE('',#47282,#24494); -#20796=LINE('',#47285,#24495); -#20797=LINE('',#47287,#24496); -#20798=LINE('',#47290,#24497); -#20799=LINE('',#47292,#24498); -#20800=LINE('',#47295,#24499); -#20801=LINE('',#47296,#24500); -#20802=LINE('',#47300,#24501); -#20803=LINE('',#47303,#24502); -#20804=LINE('',#47304,#24503); -#20805=LINE('',#47306,#24504); -#20806=LINE('',#47308,#24505); -#20807=LINE('',#47310,#24506); -#20808=LINE('',#47312,#24507); -#20809=LINE('',#47314,#24508); -#20810=LINE('',#47316,#24509); -#20811=LINE('',#47326,#24510); -#20812=LINE('',#47328,#24511); -#20813=LINE('',#47330,#24512); -#20814=LINE('',#47334,#24513); -#20815=LINE('',#47336,#24514); -#20816=LINE('',#47338,#24515); -#20817=LINE('',#47342,#24516); -#20818=LINE('',#47344,#24517); -#20819=LINE('',#47346,#24518); -#20820=LINE('',#47350,#24519); -#20821=LINE('',#47352,#24520); -#20822=LINE('',#47354,#24521); -#20823=LINE('',#47359,#24522); -#20824=LINE('',#47361,#24523); -#20825=LINE('',#47363,#24524); -#20826=LINE('',#47367,#24525); -#20827=LINE('',#47371,#24526); -#20828=LINE('',#47375,#24527); -#20829=LINE('',#47379,#24528); -#20830=LINE('',#47383,#24529); -#20831=LINE('',#47385,#24530); -#20832=LINE('',#47387,#24531); -#20833=LINE('',#47391,#24532); -#20834=LINE('',#47393,#24533); -#20835=LINE('',#47395,#24534); -#20836=LINE('',#47397,#24535); -#20837=LINE('',#47400,#24536); -#20838=LINE('',#47402,#24537); -#20839=LINE('',#47404,#24538); -#20840=LINE('',#47408,#24539); -#20841=LINE('',#47412,#24540); -#20842=LINE('',#47416,#24541); -#20843=LINE('',#47420,#24542); -#20844=LINE('',#47424,#24543); -#20845=LINE('',#47426,#24544); -#20846=LINE('',#47428,#24545); -#20847=LINE('',#47432,#24546); -#20848=LINE('',#47434,#24547); -#20849=LINE('',#47436,#24548); -#20850=LINE('',#47441,#24549); -#20851=LINE('',#47443,#24550); -#20852=LINE('',#47445,#24551); -#20853=LINE('',#47447,#24552); -#20854=LINE('',#47451,#24553); -#20855=LINE('',#47455,#24554); -#20856=LINE('',#47457,#24555); -#20857=LINE('',#47460,#24556); -#20858=LINE('',#47462,#24557); -#20859=LINE('',#47464,#24558); -#20860=LINE('',#47466,#24559); -#20861=LINE('',#47470,#24560); -#20862=LINE('',#47474,#24561); -#20863=LINE('',#47475,#24562); -#20864=LINE('',#47480,#24563); -#20865=LINE('',#47483,#24564); -#20866=LINE('',#47485,#24565); -#20867=LINE('',#47487,#24566); -#20868=LINE('',#47489,#24567); -#20869=LINE('',#47491,#24568); -#20870=LINE('',#47493,#24569); -#20871=LINE('',#47495,#24570); -#20872=LINE('',#47497,#24571); -#20873=LINE('',#47499,#24572); -#20874=LINE('',#47501,#24573); -#20875=LINE('',#47503,#24574); -#20876=LINE('',#47505,#24575); -#20877=LINE('',#47507,#24576); -#20878=LINE('',#47509,#24577); -#20879=LINE('',#47511,#24578); -#20880=LINE('',#47513,#24579); -#20881=LINE('',#47515,#24580); -#20882=LINE('',#47517,#24581); -#20883=LINE('',#47519,#24582); -#20884=LINE('',#47521,#24583); -#20885=LINE('',#47523,#24584); -#20886=LINE('',#47525,#24585); -#20887=LINE('',#47527,#24586); -#20888=LINE('',#47529,#24587); -#20889=LINE('',#47531,#24588); -#20890=LINE('',#47533,#24589); -#20891=LINE('',#47535,#24590); -#20892=LINE('',#47537,#24591); -#20893=LINE('',#47539,#24592); -#20894=LINE('',#47541,#24593); -#20895=LINE('',#47543,#24594); -#20896=LINE('',#47545,#24595); -#20897=LINE('',#47547,#24596); -#20898=LINE('',#47549,#24597); -#20899=LINE('',#47551,#24598); -#20900=LINE('',#47553,#24599); -#20901=LINE('',#47555,#24600); -#20902=LINE('',#47557,#24601); -#20903=LINE('',#47559,#24602); -#20904=LINE('',#47561,#24603); -#20905=LINE('',#47563,#24604); -#20906=LINE('',#47565,#24605); -#20907=LINE('',#47567,#24606); -#20908=LINE('',#47569,#24607); -#20909=LINE('',#47571,#24608); -#20910=LINE('',#47573,#24609); -#20911=LINE('',#47575,#24610); -#20912=LINE('',#47577,#24611); -#20913=LINE('',#47579,#24612); -#20914=LINE('',#47581,#24613); -#20915=LINE('',#47583,#24614); -#20916=LINE('',#47585,#24615); -#20917=LINE('',#47587,#24616); -#20918=LINE('',#47589,#24617); -#20919=LINE('',#47591,#24618); -#20920=LINE('',#47593,#24619); -#20921=LINE('',#47595,#24620); -#20922=LINE('',#47597,#24621); -#20923=LINE('',#47599,#24622); -#20924=LINE('',#47601,#24623); -#20925=LINE('',#47603,#24624); -#20926=LINE('',#47605,#24625); -#20927=LINE('',#47607,#24626); -#20928=LINE('',#47609,#24627); -#20929=LINE('',#47611,#24628); -#20930=LINE('',#47613,#24629); -#20931=LINE('',#47615,#24630); -#20932=LINE('',#47617,#24631); -#20933=LINE('',#47619,#24632); -#20934=LINE('',#47621,#24633); -#20935=LINE('',#47623,#24634); -#20936=LINE('',#47625,#24635); -#20937=LINE('',#47627,#24636); -#20938=LINE('',#47629,#24637); -#20939=LINE('',#47631,#24638); -#20940=LINE('',#47633,#24639); -#20941=LINE('',#47635,#24640); -#20942=LINE('',#47637,#24641); -#20943=LINE('',#47639,#24642); -#20944=LINE('',#47641,#24643); -#20945=LINE('',#47643,#24644); -#20946=LINE('',#47645,#24645); -#20947=LINE('',#47647,#24646); -#20948=LINE('',#47649,#24647); -#20949=LINE('',#47651,#24648); -#20950=LINE('',#47653,#24649); -#20951=LINE('',#47655,#24650); -#20952=LINE('',#47657,#24651); -#20953=LINE('',#47659,#24652); -#20954=LINE('',#47661,#24653); -#20955=LINE('',#47663,#24654); -#20956=LINE('',#47665,#24655); -#20957=LINE('',#47667,#24656); -#20958=LINE('',#47669,#24657); -#20959=LINE('',#47671,#24658); -#20960=LINE('',#47673,#24659); -#20961=LINE('',#47675,#24660); -#20962=LINE('',#47677,#24661); -#20963=LINE('',#47679,#24662); -#20964=LINE('',#47681,#24663); -#20965=LINE('',#47683,#24664); -#20966=LINE('',#47685,#24665); -#20967=LINE('',#47687,#24666); -#20968=LINE('',#47689,#24667); -#20969=LINE('',#47691,#24668); -#20970=LINE('',#47693,#24669); -#20971=LINE('',#47695,#24670); -#20972=LINE('',#47697,#24671); -#20973=LINE('',#47699,#24672); -#20974=LINE('',#47701,#24673); -#20975=LINE('',#47703,#24674); -#20976=LINE('',#47705,#24675); -#20977=LINE('',#47707,#24676); -#20978=LINE('',#47709,#24677); -#20979=LINE('',#47711,#24678); -#20980=LINE('',#47713,#24679); -#20981=LINE('',#47715,#24680); -#20982=LINE('',#47717,#24681); -#20983=LINE('',#47719,#24682); -#20984=LINE('',#47721,#24683); -#20985=LINE('',#47723,#24684); -#20986=LINE('',#47725,#24685); -#20987=LINE('',#47727,#24686); -#20988=LINE('',#47729,#24687); -#20989=LINE('',#47731,#24688); -#20990=LINE('',#47733,#24689); -#20991=LINE('',#47735,#24690); -#20992=LINE('',#47737,#24691); -#20993=LINE('',#47739,#24692); -#20994=LINE('',#47741,#24693); -#20995=LINE('',#47743,#24694); -#20996=LINE('',#47745,#24695); -#20997=LINE('',#47747,#24696); -#20998=LINE('',#47749,#24697); -#20999=LINE('',#47751,#24698); -#21000=LINE('',#47753,#24699); -#21001=LINE('',#47755,#24700); -#21002=LINE('',#47757,#24701); -#21003=LINE('',#47759,#24702); -#21004=LINE('',#47761,#24703); -#21005=LINE('',#47763,#24704); -#21006=LINE('',#47765,#24705); -#21007=LINE('',#47767,#24706); -#21008=LINE('',#47769,#24707); -#21009=LINE('',#47771,#24708); -#21010=LINE('',#47773,#24709); -#21011=LINE('',#47775,#24710); -#21012=LINE('',#47777,#24711); -#21013=LINE('',#47779,#24712); -#21014=LINE('',#47781,#24713); -#21015=LINE('',#47783,#24714); -#21016=LINE('',#47785,#24715); -#21017=LINE('',#47787,#24716); -#21018=LINE('',#47789,#24717); -#21019=LINE('',#47791,#24718); -#21020=LINE('',#47793,#24719); -#21021=LINE('',#47795,#24720); -#21022=LINE('',#47797,#24721); -#21023=LINE('',#47799,#24722); -#21024=LINE('',#47801,#24723); -#21025=LINE('',#47803,#24724); -#21026=LINE('',#47805,#24725); -#21027=LINE('',#47807,#24726); -#21028=LINE('',#47809,#24727); -#21029=LINE('',#47812,#24728); -#21030=LINE('',#47814,#24729); -#21031=LINE('',#47816,#24730); -#21032=LINE('',#47818,#24731); -#21033=LINE('',#47820,#24732); -#21034=LINE('',#47822,#24733); -#21035=LINE('',#47824,#24734); -#21036=LINE('',#47826,#24735); -#21037=LINE('',#47828,#24736); -#21038=LINE('',#47830,#24737); -#21039=LINE('',#47832,#24738); -#21040=LINE('',#47834,#24739); -#21041=LINE('',#47836,#24740); -#21042=LINE('',#47838,#24741); -#21043=LINE('',#47840,#24742); -#21044=LINE('',#47842,#24743); -#21045=LINE('',#47844,#24744); -#21046=LINE('',#47846,#24745); -#21047=LINE('',#47848,#24746); -#21048=LINE('',#47850,#24747); -#21049=LINE('',#47852,#24748); -#21050=LINE('',#47854,#24749); -#21051=LINE('',#47856,#24750); -#21052=LINE('',#47858,#24751); -#21053=LINE('',#47860,#24752); -#21054=LINE('',#47862,#24753); -#21055=LINE('',#47864,#24754); -#21056=LINE('',#47866,#24755); -#21057=LINE('',#47868,#24756); -#21058=LINE('',#47870,#24757); -#21059=LINE('',#47872,#24758); -#21060=LINE('',#47874,#24759); -#21061=LINE('',#47876,#24760); -#21062=LINE('',#47878,#24761); -#21063=LINE('',#47880,#24762); -#21064=LINE('',#47882,#24763); -#21065=LINE('',#47884,#24764); -#21066=LINE('',#47886,#24765); -#21067=LINE('',#47888,#24766); -#21068=LINE('',#47890,#24767); -#21069=LINE('',#47892,#24768); -#21070=LINE('',#47894,#24769); -#21071=LINE('',#47896,#24770); -#21072=LINE('',#47898,#24771); -#21073=LINE('',#47900,#24772); -#21074=LINE('',#47902,#24773); -#21075=LINE('',#47904,#24774); -#21076=LINE('',#47906,#24775); -#21077=LINE('',#47908,#24776); -#21078=LINE('',#47910,#24777); -#21079=LINE('',#47912,#24778); -#21080=LINE('',#47914,#24779); -#21081=LINE('',#47916,#24780); -#21082=LINE('',#47918,#24781); -#21083=LINE('',#47920,#24782); -#21084=LINE('',#47922,#24783); -#21085=LINE('',#47924,#24784); -#21086=LINE('',#47926,#24785); -#21087=LINE('',#47928,#24786); -#21088=LINE('',#47930,#24787); -#21089=LINE('',#47932,#24788); -#21090=LINE('',#47934,#24789); -#21091=LINE('',#47936,#24790); -#21092=LINE('',#47938,#24791); -#21093=LINE('',#47940,#24792); -#21094=LINE('',#47942,#24793); -#21095=LINE('',#47944,#24794); -#21096=LINE('',#47946,#24795); -#21097=LINE('',#47948,#24796); -#21098=LINE('',#47950,#24797); -#21099=LINE('',#47952,#24798); -#21100=LINE('',#47954,#24799); -#21101=LINE('',#47956,#24800); -#21102=LINE('',#47958,#24801); -#21103=LINE('',#47960,#24802); -#21104=LINE('',#47962,#24803); -#21105=LINE('',#47964,#24804); -#21106=LINE('',#47966,#24805); -#21107=LINE('',#47968,#24806); -#21108=LINE('',#47970,#24807); -#21109=LINE('',#47972,#24808); -#21110=LINE('',#47974,#24809); -#21111=LINE('',#47976,#24810); -#21112=LINE('',#47978,#24811); -#21113=LINE('',#47980,#24812); -#21114=LINE('',#47982,#24813); -#21115=LINE('',#47984,#24814); -#21116=LINE('',#47986,#24815); -#21117=LINE('',#47988,#24816); -#21118=LINE('',#47990,#24817); -#21119=LINE('',#47992,#24818); -#21120=LINE('',#47994,#24819); -#21121=LINE('',#47996,#24820); -#21122=LINE('',#47998,#24821); -#21123=LINE('',#48000,#24822); -#21124=LINE('',#48002,#24823); -#21125=LINE('',#48004,#24824); -#21126=LINE('',#48006,#24825); -#21127=LINE('',#48008,#24826); -#21128=LINE('',#48010,#24827); -#21129=LINE('',#48012,#24828); -#21130=LINE('',#48014,#24829); -#21131=LINE('',#48016,#24830); -#21132=LINE('',#48018,#24831); -#21133=LINE('',#48020,#24832); -#21134=LINE('',#48022,#24833); -#21135=LINE('',#48024,#24834); -#21136=LINE('',#48026,#24835); -#21137=LINE('',#48028,#24836); -#21138=LINE('',#48030,#24837); -#21139=LINE('',#48032,#24838); -#21140=LINE('',#48034,#24839); -#21141=LINE('',#48036,#24840); -#21142=LINE('',#48038,#24841); -#21143=LINE('',#48040,#24842); -#21144=LINE('',#48042,#24843); -#21145=LINE('',#48044,#24844); -#21146=LINE('',#48046,#24845); -#21147=LINE('',#48048,#24846); -#21148=LINE('',#48050,#24847); -#21149=LINE('',#48052,#24848); -#21150=LINE('',#48054,#24849); -#21151=LINE('',#48056,#24850); -#21152=LINE('',#48058,#24851); -#21153=LINE('',#48060,#24852); -#21154=LINE('',#48062,#24853); -#21155=LINE('',#48064,#24854); -#21156=LINE('',#48066,#24855); -#21157=LINE('',#48068,#24856); -#21158=LINE('',#48070,#24857); -#21159=LINE('',#48072,#24858); -#21160=LINE('',#48074,#24859); -#21161=LINE('',#48076,#24860); -#21162=LINE('',#48078,#24861); -#21163=LINE('',#48080,#24862); -#21164=LINE('',#48082,#24863); -#21165=LINE('',#48084,#24864); -#21166=LINE('',#48086,#24865); -#21167=LINE('',#48088,#24866); -#21168=LINE('',#48090,#24867); -#21169=LINE('',#48092,#24868); -#21170=LINE('',#48094,#24869); -#21171=LINE('',#48096,#24870); -#21172=LINE('',#48098,#24871); -#21173=LINE('',#48100,#24872); -#21174=LINE('',#48102,#24873); -#21175=LINE('',#48104,#24874); -#21176=LINE('',#48106,#24875); -#21177=LINE('',#48108,#24876); -#21178=LINE('',#48110,#24877); -#21179=LINE('',#48112,#24878); -#21180=LINE('',#48114,#24879); -#21181=LINE('',#48116,#24880); -#21182=LINE('',#48118,#24881); -#21183=LINE('',#48120,#24882); -#21184=LINE('',#48122,#24883); -#21185=LINE('',#48124,#24884); -#21186=LINE('',#48126,#24885); -#21187=LINE('',#48128,#24886); -#21188=LINE('',#48130,#24887); -#21189=LINE('',#48132,#24888); -#21190=LINE('',#48134,#24889); -#21191=LINE('',#48136,#24890); -#21192=LINE('',#48138,#24891); -#21193=LINE('',#48141,#24892); -#21194=LINE('',#48143,#24893); -#21195=LINE('',#48145,#24894); -#21196=LINE('',#48147,#24895); -#21197=LINE('',#48149,#24896); -#21198=LINE('',#48151,#24897); -#21199=LINE('',#48153,#24898); -#21200=LINE('',#48155,#24899); -#21201=LINE('',#48157,#24900); -#21202=LINE('',#48159,#24901); -#21203=LINE('',#48161,#24902); -#21204=LINE('',#48163,#24903); -#21205=LINE('',#48165,#24904); -#21206=LINE('',#48167,#24905); -#21207=LINE('',#48169,#24906); -#21208=LINE('',#48171,#24907); -#21209=LINE('',#48173,#24908); -#21210=LINE('',#48175,#24909); -#21211=LINE('',#48177,#24910); -#21212=LINE('',#48179,#24911); -#21213=LINE('',#48181,#24912); -#21214=LINE('',#48183,#24913); -#21215=LINE('',#48185,#24914); -#21216=LINE('',#48187,#24915); -#21217=LINE('',#48189,#24916); -#21218=LINE('',#48191,#24917); -#21219=LINE('',#48193,#24918); -#21220=LINE('',#48195,#24919); -#21221=LINE('',#48197,#24920); -#21222=LINE('',#48199,#24921); -#21223=LINE('',#48201,#24922); -#21224=LINE('',#48203,#24923); -#21225=LINE('',#48205,#24924); -#21226=LINE('',#48207,#24925); -#21227=LINE('',#48209,#24926); -#21228=LINE('',#48211,#24927); -#21229=LINE('',#48213,#24928); -#21230=LINE('',#48215,#24929); -#21231=LINE('',#48217,#24930); -#21232=LINE('',#48219,#24931); -#21233=LINE('',#48221,#24932); -#21234=LINE('',#48223,#24933); -#21235=LINE('',#48225,#24934); -#21236=LINE('',#48227,#24935); -#21237=LINE('',#48229,#24936); -#21238=LINE('',#48231,#24937); -#21239=LINE('',#48233,#24938); -#21240=LINE('',#48235,#24939); -#21241=LINE('',#48237,#24940); -#21242=LINE('',#48239,#24941); -#21243=LINE('',#48241,#24942); -#21244=LINE('',#48243,#24943); -#21245=LINE('',#48245,#24944); -#21246=LINE('',#48247,#24945); -#21247=LINE('',#48249,#24946); -#21248=LINE('',#48251,#24947); -#21249=LINE('',#48253,#24948); -#21250=LINE('',#48255,#24949); -#21251=LINE('',#48257,#24950); -#21252=LINE('',#48259,#24951); -#21253=LINE('',#48261,#24952); -#21254=LINE('',#48263,#24953); -#21255=LINE('',#48265,#24954); -#21256=LINE('',#48267,#24955); -#21257=LINE('',#48269,#24956); -#21258=LINE('',#48271,#24957); -#21259=LINE('',#48273,#24958); -#21260=LINE('',#48275,#24959); -#21261=LINE('',#48277,#24960); -#21262=LINE('',#48279,#24961); -#21263=LINE('',#48281,#24962); -#21264=LINE('',#48283,#24963); -#21265=LINE('',#48285,#24964); -#21266=LINE('',#48287,#24965); -#21267=LINE('',#48289,#24966); -#21268=LINE('',#48291,#24967); -#21269=LINE('',#48293,#24968); -#21270=LINE('',#48295,#24969); -#21271=LINE('',#48297,#24970); -#21272=LINE('',#48299,#24971); -#21273=LINE('',#48301,#24972); -#21274=LINE('',#48303,#24973); -#21275=LINE('',#48305,#24974); -#21276=LINE('',#48307,#24975); -#21277=LINE('',#48309,#24976); -#21278=LINE('',#48311,#24977); -#21279=LINE('',#48313,#24978); -#21280=LINE('',#48315,#24979); -#21281=LINE('',#48317,#24980); -#21282=LINE('',#48319,#24981); -#21283=LINE('',#48321,#24982); -#21284=LINE('',#48323,#24983); -#21285=LINE('',#48325,#24984); -#21286=LINE('',#48327,#24985); -#21287=LINE('',#48329,#24986); -#21288=LINE('',#48331,#24987); -#21289=LINE('',#48333,#24988); -#21290=LINE('',#48335,#24989); -#21291=LINE('',#48337,#24990); -#21292=LINE('',#48339,#24991); -#21293=LINE('',#48341,#24992); -#21294=LINE('',#48343,#24993); -#21295=LINE('',#48345,#24994); -#21296=LINE('',#48347,#24995); -#21297=LINE('',#48349,#24996); -#21298=LINE('',#48351,#24997); -#21299=LINE('',#48353,#24998); -#21300=LINE('',#48355,#24999); -#21301=LINE('',#48357,#25000); -#21302=LINE('',#48359,#25001); -#21303=LINE('',#48361,#25002); -#21304=LINE('',#48363,#25003); -#21305=LINE('',#48365,#25004); -#21306=LINE('',#48367,#25005); -#21307=LINE('',#48369,#25006); -#21308=LINE('',#48371,#25007); -#21309=LINE('',#48373,#25008); -#21310=LINE('',#48375,#25009); -#21311=LINE('',#48377,#25010); -#21312=LINE('',#48379,#25011); -#21313=LINE('',#48381,#25012); -#21314=LINE('',#48383,#25013); -#21315=LINE('',#48385,#25014); -#21316=LINE('',#48387,#25015); -#21317=LINE('',#48389,#25016); -#21318=LINE('',#48391,#25017); -#21319=LINE('',#48393,#25018); -#21320=LINE('',#48395,#25019); -#21321=LINE('',#48397,#25020); -#21322=LINE('',#48399,#25021); -#21323=LINE('',#48401,#25022); -#21324=LINE('',#48403,#25023); -#21325=LINE('',#48405,#25024); -#21326=LINE('',#48407,#25025); -#21327=LINE('',#48409,#25026); -#21328=LINE('',#48411,#25027); -#21329=LINE('',#48413,#25028); -#21330=LINE('',#48415,#25029); -#21331=LINE('',#48417,#25030); -#21332=LINE('',#48419,#25031); -#21333=LINE('',#48421,#25032); -#21334=LINE('',#48423,#25033); -#21335=LINE('',#48425,#25034); -#21336=LINE('',#48427,#25035); -#21337=LINE('',#48429,#25036); -#21338=LINE('',#48431,#25037); -#21339=LINE('',#48433,#25038); -#21340=LINE('',#48435,#25039); -#21341=LINE('',#48437,#25040); -#21342=LINE('',#48439,#25041); -#21343=LINE('',#48441,#25042); -#21344=LINE('',#48443,#25043); -#21345=LINE('',#48445,#25044); -#21346=LINE('',#48447,#25045); -#21347=LINE('',#48449,#25046); -#21348=LINE('',#48451,#25047); -#21349=LINE('',#48453,#25048); -#21350=LINE('',#48455,#25049); -#21351=LINE('',#48457,#25050); -#21352=LINE('',#48459,#25051); -#21353=LINE('',#48461,#25052); -#21354=LINE('',#48463,#25053); -#21355=LINE('',#48465,#25054); -#21356=LINE('',#48467,#25055); -#21357=LINE('',#48470,#25056); -#21358=LINE('',#48472,#25057); -#21359=LINE('',#48474,#25058); -#21360=LINE('',#48476,#25059); -#21361=LINE('',#48478,#25060); -#21362=LINE('',#48480,#25061); -#21363=LINE('',#48482,#25062); -#21364=LINE('',#48484,#25063); -#21365=LINE('',#48486,#25064); -#21366=LINE('',#48488,#25065); -#21367=LINE('',#48490,#25066); -#21368=LINE('',#48492,#25067); -#21369=LINE('',#48494,#25068); -#21370=LINE('',#48496,#25069); -#21371=LINE('',#48498,#25070); -#21372=LINE('',#48500,#25071); -#21373=LINE('',#48502,#25072); -#21374=LINE('',#48504,#25073); -#21375=LINE('',#48506,#25074); -#21376=LINE('',#48508,#25075); -#21377=LINE('',#48510,#25076); -#21378=LINE('',#48512,#25077); -#21379=LINE('',#48514,#25078); -#21380=LINE('',#48516,#25079); -#21381=LINE('',#48518,#25080); -#21382=LINE('',#48520,#25081); -#21383=LINE('',#48522,#25082); -#21384=LINE('',#48524,#25083); -#21385=LINE('',#48526,#25084); -#21386=LINE('',#48528,#25085); -#21387=LINE('',#48530,#25086); -#21388=LINE('',#48532,#25087); -#21389=LINE('',#48534,#25088); -#21390=LINE('',#48536,#25089); -#21391=LINE('',#48538,#25090); -#21392=LINE('',#48540,#25091); -#21393=LINE('',#48542,#25092); -#21394=LINE('',#48544,#25093); -#21395=LINE('',#48546,#25094); -#21396=LINE('',#48548,#25095); -#21397=LINE('',#48550,#25096); -#21398=LINE('',#48552,#25097); -#21399=LINE('',#48554,#25098); -#21400=LINE('',#48556,#25099); -#21401=LINE('',#48558,#25100); -#21402=LINE('',#48560,#25101); -#21403=LINE('',#48562,#25102); -#21404=LINE('',#48564,#25103); -#21405=LINE('',#48566,#25104); -#21406=LINE('',#48568,#25105); -#21407=LINE('',#48570,#25106); -#21408=LINE('',#48572,#25107); -#21409=LINE('',#48574,#25108); -#21410=LINE('',#48576,#25109); -#21411=LINE('',#48578,#25110); -#21412=LINE('',#48580,#25111); -#21413=LINE('',#48582,#25112); -#21414=LINE('',#48584,#25113); -#21415=LINE('',#48586,#25114); -#21416=LINE('',#48588,#25115); -#21417=LINE('',#48590,#25116); -#21418=LINE('',#48592,#25117); -#21419=LINE('',#48594,#25118); -#21420=LINE('',#48596,#25119); -#21421=LINE('',#48598,#25120); -#21422=LINE('',#48600,#25121); -#21423=LINE('',#48602,#25122); -#21424=LINE('',#48604,#25123); -#21425=LINE('',#48606,#25124); -#21426=LINE('',#48608,#25125); -#21427=LINE('',#48610,#25126); -#21428=LINE('',#48612,#25127); -#21429=LINE('',#48614,#25128); -#21430=LINE('',#48616,#25129); -#21431=LINE('',#48618,#25130); -#21432=LINE('',#48620,#25131); -#21433=LINE('',#48622,#25132); -#21434=LINE('',#48624,#25133); -#21435=LINE('',#48626,#25134); -#21436=LINE('',#48628,#25135); -#21437=LINE('',#48630,#25136); -#21438=LINE('',#48632,#25137); -#21439=LINE('',#48634,#25138); -#21440=LINE('',#48636,#25139); -#21441=LINE('',#48638,#25140); -#21442=LINE('',#48640,#25141); -#21443=LINE('',#48642,#25142); -#21444=LINE('',#48644,#25143); -#21445=LINE('',#48646,#25144); -#21446=LINE('',#48648,#25145); -#21447=LINE('',#48650,#25146); -#21448=LINE('',#48652,#25147); -#21449=LINE('',#48654,#25148); -#21450=LINE('',#48656,#25149); -#21451=LINE('',#48658,#25150); -#21452=LINE('',#48660,#25151); -#21453=LINE('',#48662,#25152); -#21454=LINE('',#48664,#25153); -#21455=LINE('',#48666,#25154); -#21456=LINE('',#48668,#25155); -#21457=LINE('',#48670,#25156); -#21458=LINE('',#48672,#25157); -#21459=LINE('',#48674,#25158); -#21460=LINE('',#48676,#25159); -#21461=LINE('',#48678,#25160); -#21462=LINE('',#48680,#25161); -#21463=LINE('',#48682,#25162); -#21464=LINE('',#48684,#25163); -#21465=LINE('',#48686,#25164); -#21466=LINE('',#48688,#25165); -#21467=LINE('',#48690,#25166); -#21468=LINE('',#48692,#25167); -#21469=LINE('',#48694,#25168); -#21470=LINE('',#48696,#25169); -#21471=LINE('',#48698,#25170); -#21472=LINE('',#48700,#25171); -#21473=LINE('',#48702,#25172); -#21474=LINE('',#48704,#25173); -#21475=LINE('',#48706,#25174); -#21476=LINE('',#48708,#25175); -#21477=LINE('',#48710,#25176); -#21478=LINE('',#48712,#25177); -#21479=LINE('',#48714,#25178); -#21480=LINE('',#48716,#25179); -#21481=LINE('',#48718,#25180); -#21482=LINE('',#48720,#25181); -#21483=LINE('',#48722,#25182); -#21484=LINE('',#48724,#25183); -#21485=LINE('',#48726,#25184); -#21486=LINE('',#48728,#25185); -#21487=LINE('',#48730,#25186); -#21488=LINE('',#48732,#25187); -#21489=LINE('',#48734,#25188); -#21490=LINE('',#48736,#25189); -#21491=LINE('',#48738,#25190); -#21492=LINE('',#48740,#25191); -#21493=LINE('',#48742,#25192); -#21494=LINE('',#48744,#25193); -#21495=LINE('',#48746,#25194); -#21496=LINE('',#48748,#25195); -#21497=LINE('',#48750,#25196); -#21498=LINE('',#48752,#25197); -#21499=LINE('',#48754,#25198); -#21500=LINE('',#48756,#25199); -#21501=LINE('',#48758,#25200); -#21502=LINE('',#48760,#25201); -#21503=LINE('',#48762,#25202); -#21504=LINE('',#48764,#25203); -#21505=LINE('',#48766,#25204); -#21506=LINE('',#48768,#25205); -#21507=LINE('',#48770,#25206); -#21508=LINE('',#48772,#25207); -#21509=LINE('',#48774,#25208); -#21510=LINE('',#48776,#25209); -#21511=LINE('',#48778,#25210); -#21512=LINE('',#48780,#25211); -#21513=LINE('',#48782,#25212); -#21514=LINE('',#48784,#25213); -#21515=LINE('',#48786,#25214); -#21516=LINE('',#48788,#25215); -#21517=LINE('',#48790,#25216); -#21518=LINE('',#48792,#25217); -#21519=LINE('',#48794,#25218); -#21520=LINE('',#48796,#25219); -#21521=LINE('',#48797,#25220); -#21522=LINE('',#48799,#25221); -#21523=LINE('',#48800,#25222); -#21524=LINE('',#48802,#25223); -#21525=LINE('',#48803,#25224); -#21526=LINE('',#48805,#25225); -#21527=LINE('',#48806,#25226); -#21528=LINE('',#48808,#25227); -#21529=LINE('',#48809,#25228); -#21530=LINE('',#48811,#25229); -#21531=LINE('',#48812,#25230); -#21532=LINE('',#48814,#25231); -#21533=LINE('',#48815,#25232); -#21534=LINE('',#48817,#25233); -#21535=LINE('',#48818,#25234); -#21536=LINE('',#48820,#25235); -#21537=LINE('',#48821,#25236); -#21538=LINE('',#48823,#25237); -#21539=LINE('',#48824,#25238); -#21540=LINE('',#48826,#25239); -#21541=LINE('',#48827,#25240); -#21542=LINE('',#48829,#25241); -#21543=LINE('',#48830,#25242); -#21544=LINE('',#48832,#25243); -#21545=LINE('',#48833,#25244); -#21546=LINE('',#48835,#25245); -#21547=LINE('',#48836,#25246); -#21548=LINE('',#48838,#25247); -#21549=LINE('',#48839,#25248); -#21550=LINE('',#48841,#25249); -#21551=LINE('',#48842,#25250); -#21552=LINE('',#48844,#25251); -#21553=LINE('',#48845,#25252); -#21554=LINE('',#48847,#25253); -#21555=LINE('',#48848,#25254); -#21556=LINE('',#48850,#25255); -#21557=LINE('',#48851,#25256); -#21558=LINE('',#48853,#25257); -#21559=LINE('',#48854,#25258); -#21560=LINE('',#48856,#25259); -#21561=LINE('',#48857,#25260); -#21562=LINE('',#48859,#25261); -#21563=LINE('',#48860,#25262); -#21564=LINE('',#48862,#25263); -#21565=LINE('',#48863,#25264); -#21566=LINE('',#48865,#25265); -#21567=LINE('',#48866,#25266); -#21568=LINE('',#48868,#25267); -#21569=LINE('',#48869,#25268); -#21570=LINE('',#48871,#25269); -#21571=LINE('',#48872,#25270); -#21572=LINE('',#48874,#25271); -#21573=LINE('',#48875,#25272); -#21574=LINE('',#48877,#25273); -#21575=LINE('',#48878,#25274); -#21576=LINE('',#48880,#25275); -#21577=LINE('',#48881,#25276); -#21578=LINE('',#48883,#25277); -#21579=LINE('',#48884,#25278); -#21580=LINE('',#48886,#25279); -#21581=LINE('',#48887,#25280); -#21582=LINE('',#48889,#25281); -#21583=LINE('',#48890,#25282); -#21584=LINE('',#48892,#25283); -#21585=LINE('',#48893,#25284); -#21586=LINE('',#48895,#25285); -#21587=LINE('',#48896,#25286); -#21588=LINE('',#48898,#25287); -#21589=LINE('',#48899,#25288); -#21590=LINE('',#48901,#25289); -#21591=LINE('',#48902,#25290); -#21592=LINE('',#48904,#25291); -#21593=LINE('',#48905,#25292); -#21594=LINE('',#48907,#25293); -#21595=LINE('',#48908,#25294); -#21596=LINE('',#48910,#25295); -#21597=LINE('',#48911,#25296); -#21598=LINE('',#48913,#25297); -#21599=LINE('',#48914,#25298); -#21600=LINE('',#48916,#25299); -#21601=LINE('',#48917,#25300); -#21602=LINE('',#48919,#25301); -#21603=LINE('',#48920,#25302); -#21604=LINE('',#48922,#25303); -#21605=LINE('',#48923,#25304); -#21606=LINE('',#48925,#25305); -#21607=LINE('',#48926,#25306); -#21608=LINE('',#48928,#25307); -#21609=LINE('',#48929,#25308); -#21610=LINE('',#48931,#25309); -#21611=LINE('',#48932,#25310); -#21612=LINE('',#48934,#25311); -#21613=LINE('',#48935,#25312); -#21614=LINE('',#48937,#25313); -#21615=LINE('',#48938,#25314); -#21616=LINE('',#48940,#25315); -#21617=LINE('',#48941,#25316); -#21618=LINE('',#48943,#25317); -#21619=LINE('',#48944,#25318); -#21620=LINE('',#48946,#25319); -#21621=LINE('',#48947,#25320); -#21622=LINE('',#48949,#25321); -#21623=LINE('',#48950,#25322); -#21624=LINE('',#48952,#25323); -#21625=LINE('',#48953,#25324); -#21626=LINE('',#48955,#25325); -#21627=LINE('',#48956,#25326); -#21628=LINE('',#48958,#25327); -#21629=LINE('',#48959,#25328); -#21630=LINE('',#48961,#25329); -#21631=LINE('',#48962,#25330); -#21632=LINE('',#48964,#25331); -#21633=LINE('',#48965,#25332); -#21634=LINE('',#48967,#25333); -#21635=LINE('',#48968,#25334); -#21636=LINE('',#48970,#25335); -#21637=LINE('',#48971,#25336); -#21638=LINE('',#48973,#25337); -#21639=LINE('',#48974,#25338); -#21640=LINE('',#48976,#25339); -#21641=LINE('',#48977,#25340); -#21642=LINE('',#48979,#25341); -#21643=LINE('',#48980,#25342); -#21644=LINE('',#48982,#25343); -#21645=LINE('',#48983,#25344); -#21646=LINE('',#48985,#25345); -#21647=LINE('',#48986,#25346); -#21648=LINE('',#48988,#25347); -#21649=LINE('',#48989,#25348); -#21650=LINE('',#48991,#25349); -#21651=LINE('',#48992,#25350); -#21652=LINE('',#48994,#25351); -#21653=LINE('',#48995,#25352); -#21654=LINE('',#48997,#25353); -#21655=LINE('',#48998,#25354); -#21656=LINE('',#49000,#25355); -#21657=LINE('',#49001,#25356); -#21658=LINE('',#49003,#25357); -#21659=LINE('',#49004,#25358); -#21660=LINE('',#49006,#25359); -#21661=LINE('',#49007,#25360); -#21662=LINE('',#49009,#25361); -#21663=LINE('',#49010,#25362); -#21664=LINE('',#49012,#25363); -#21665=LINE('',#49013,#25364); -#21666=LINE('',#49015,#25365); -#21667=LINE('',#49016,#25366); -#21668=LINE('',#49018,#25367); -#21669=LINE('',#49019,#25368); -#21670=LINE('',#49021,#25369); -#21671=LINE('',#49022,#25370); -#21672=LINE('',#49024,#25371); -#21673=LINE('',#49025,#25372); -#21674=LINE('',#49027,#25373); -#21675=LINE('',#49028,#25374); -#21676=LINE('',#49030,#25375); -#21677=LINE('',#49031,#25376); -#21678=LINE('',#49033,#25377); -#21679=LINE('',#49034,#25378); -#21680=LINE('',#49036,#25379); -#21681=LINE('',#49037,#25380); -#21682=LINE('',#49039,#25381); -#21683=LINE('',#49040,#25382); -#21684=LINE('',#49042,#25383); -#21685=LINE('',#49043,#25384); -#21686=LINE('',#49045,#25385); -#21687=LINE('',#49046,#25386); -#21688=LINE('',#49048,#25387); -#21689=LINE('',#49051,#25388); -#21690=LINE('',#49053,#25389); -#21691=LINE('',#49055,#25390); -#21692=LINE('',#49057,#25391); -#21693=LINE('',#49060,#25392); -#21694=LINE('',#49062,#25393); -#21695=LINE('',#49064,#25394); -#21696=LINE('',#49066,#25395); -#21697=LINE('',#49069,#25396); -#21698=LINE('',#49071,#25397); -#21699=LINE('',#49073,#25398); -#21700=LINE('',#49075,#25399); -#21701=LINE('',#49078,#25400); -#21702=LINE('',#49080,#25401); -#21703=LINE('',#49082,#25402); -#21704=LINE('',#49084,#25403); -#21705=LINE('',#49087,#25404); -#21706=LINE('',#49089,#25405); -#21707=LINE('',#49091,#25406); -#21708=LINE('',#49093,#25407); -#21709=LINE('',#49096,#25408); -#21710=LINE('',#49098,#25409); -#21711=LINE('',#49100,#25410); -#21712=LINE('',#49102,#25411); -#21713=LINE('',#49105,#25412); -#21714=LINE('',#49107,#25413); -#21715=LINE('',#49109,#25414); -#21716=LINE('',#49111,#25415); -#21717=LINE('',#49114,#25416); -#21718=LINE('',#49116,#25417); -#21719=LINE('',#49118,#25418); -#21720=LINE('',#49120,#25419); -#21721=LINE('',#49123,#25420); -#21722=LINE('',#49125,#25421); -#21723=LINE('',#49127,#25422); -#21724=LINE('',#49129,#25423); -#21725=LINE('',#49132,#25424); -#21726=LINE('',#49134,#25425); -#21727=LINE('',#49136,#25426); -#21728=LINE('',#49138,#25427); -#21729=LINE('',#49141,#25428); -#21730=LINE('',#49143,#25429); -#21731=LINE('',#49145,#25430); -#21732=LINE('',#49147,#25431); -#21733=LINE('',#49150,#25432); -#21734=LINE('',#49152,#25433); -#21735=LINE('',#49154,#25434); -#21736=LINE('',#49156,#25435); -#21737=LINE('',#49159,#25436); -#21738=LINE('',#49161,#25437); -#21739=LINE('',#49163,#25438); -#21740=LINE('',#49165,#25439); -#21741=LINE('',#49168,#25440); -#21742=LINE('',#49170,#25441); -#21743=LINE('',#49172,#25442); -#21744=LINE('',#49174,#25443); -#21745=LINE('',#49177,#25444); -#21746=LINE('',#49179,#25445); -#21747=LINE('',#49181,#25446); -#21748=LINE('',#49183,#25447); -#21749=LINE('',#49186,#25448); -#21750=LINE('',#49188,#25449); -#21751=LINE('',#49190,#25450); -#21752=LINE('',#49192,#25451); -#21753=LINE('',#49195,#25452); -#21754=LINE('',#49197,#25453); -#21755=LINE('',#49199,#25454); -#21756=LINE('',#49201,#25455); -#21757=LINE('',#49204,#25456); -#21758=LINE('',#49206,#25457); -#21759=LINE('',#49208,#25458); -#21760=LINE('',#49210,#25459); -#21761=LINE('',#49213,#25460); -#21762=LINE('',#49215,#25461); -#21763=LINE('',#49217,#25462); -#21764=LINE('',#49278,#25463); -#21765=LINE('',#49284,#25464); -#21766=LINE('',#49290,#25465); -#21767=LINE('',#49296,#25466); -#21768=LINE('',#49302,#25467); -#21769=LINE('',#49308,#25468); -#21770=LINE('',#49314,#25469); -#21771=LINE('',#49320,#25470); -#21772=LINE('',#49326,#25471); -#21773=LINE('',#49332,#25472); -#21774=LINE('',#49338,#25473); -#21775=LINE('',#49344,#25474); -#21776=LINE('',#49350,#25475); -#21777=LINE('',#49356,#25476); -#21778=LINE('',#49362,#25477); -#21779=LINE('',#49368,#25478); -#21780=LINE('',#49374,#25479); -#21781=LINE('',#49380,#25480); -#21782=LINE('',#49386,#25481); -#21783=LINE('',#49390,#25482); -#21784=LINE('',#49393,#25483); -#21785=LINE('',#49394,#25484); -#21786=LINE('',#49396,#25485); -#21787=LINE('',#49399,#25486); -#21788=LINE('',#49400,#25487); -#21789=LINE('',#49402,#25488); -#21790=LINE('',#49405,#25489); -#21791=LINE('',#49406,#25490); -#21792=LINE('',#49408,#25491); -#21793=LINE('',#49411,#25492); -#21794=LINE('',#49412,#25493); -#21795=LINE('',#49414,#25494); -#21796=LINE('',#49417,#25495); -#21797=LINE('',#49418,#25496); -#21798=LINE('',#49420,#25497); -#21799=LINE('',#49423,#25498); -#21800=LINE('',#49424,#25499); -#21801=LINE('',#49426,#25500); -#21802=LINE('',#49429,#25501); -#21803=LINE('',#49430,#25502); -#21804=LINE('',#49432,#25503); -#21805=LINE('',#49435,#25504); -#21806=LINE('',#49436,#25505); -#21807=LINE('',#49438,#25506); -#21808=LINE('',#49441,#25507); -#21809=LINE('',#49442,#25508); -#21810=LINE('',#49444,#25509); -#21811=LINE('',#49447,#25510); -#21812=LINE('',#49448,#25511); -#21813=LINE('',#49450,#25512); -#21814=LINE('',#49453,#25513); -#21815=LINE('',#49454,#25514); -#21816=LINE('',#49456,#25515); -#21817=LINE('',#49459,#25516); -#21818=LINE('',#49460,#25517); -#21819=LINE('',#49462,#25518); -#21820=LINE('',#49465,#25519); -#21821=LINE('',#49466,#25520); -#21822=LINE('',#49468,#25521); -#21823=LINE('',#49471,#25522); -#21824=LINE('',#49472,#25523); -#21825=LINE('',#49474,#25524); -#21826=LINE('',#49477,#25525); -#21827=LINE('',#49478,#25526); -#21828=LINE('',#49480,#25527); -#21829=LINE('',#49483,#25528); -#21830=LINE('',#49484,#25529); -#21831=LINE('',#49486,#25530); -#21832=LINE('',#49489,#25531); -#21833=LINE('',#49490,#25532); -#21834=LINE('',#49492,#25533); -#21835=LINE('',#49495,#25534); -#21836=LINE('',#49496,#25535); -#21837=LINE('',#49498,#25536); -#21838=LINE('',#49501,#25537); -#21839=LINE('',#49502,#25538); -#21840=LINE('',#49618,#25539); -#21841=LINE('',#49621,#25540); -#21842=LINE('',#49623,#25541); -#21843=LINE('',#49625,#25542); -#21844=LINE('',#49632,#25543); -#21845=LINE('',#49636,#25544); -#21846=LINE('',#49639,#25545); -#21847=LINE('',#49640,#25546); -#21848=LINE('',#49648,#25547); -#21849=LINE('',#49651,#25548); -#21850=LINE('',#49654,#25549); -#21851=LINE('',#49657,#25550); -#21852=LINE('',#49660,#25551); -#21853=LINE('',#49663,#25552); -#21854=LINE('',#49666,#25553); -#21855=LINE('',#49669,#25554); -#21856=LINE('',#49672,#25555); -#21857=LINE('',#49675,#25556); -#21858=LINE('',#49678,#25557); -#21859=LINE('',#49681,#25558); -#21860=LINE('',#49684,#25559); -#21861=LINE('',#49687,#25560); -#21862=LINE('',#49690,#25561); -#21863=LINE('',#49693,#25562); -#21864=LINE('',#49696,#25563); -#21865=LINE('',#49699,#25564); -#21866=LINE('',#49702,#25565); -#21867=LINE('',#49705,#25566); -#21868=LINE('',#49708,#25567); -#21869=LINE('',#49711,#25568); -#21870=LINE('',#49714,#25569); -#21871=LINE('',#49717,#25570); -#21872=LINE('',#49720,#25571); -#21873=LINE('',#49723,#25572); -#21874=LINE('',#49726,#25573); -#21875=LINE('',#49729,#25574); -#21876=LINE('',#49732,#25575); -#21877=LINE('',#49735,#25576); -#21878=LINE('',#49738,#25577); -#21879=LINE('',#49741,#25578); -#21880=LINE('',#49744,#25579); -#21881=LINE('',#49747,#25580); -#21882=LINE('',#49750,#25581); -#21883=LINE('',#49753,#25582); -#21884=LINE('',#49756,#25583); -#21885=LINE('',#49759,#25584); -#21886=LINE('',#49762,#25585); -#21887=LINE('',#49765,#25586); -#21888=LINE('',#49768,#25587); -#21889=LINE('',#49771,#25588); -#21890=LINE('',#49774,#25589); -#21891=LINE('',#49777,#25590); -#21892=LINE('',#49780,#25591); -#21893=LINE('',#49783,#25592); -#21894=LINE('',#49786,#25593); -#21895=LINE('',#49789,#25594); -#21896=LINE('',#49792,#25595); -#21897=LINE('',#49795,#25596); -#21898=LINE('',#49798,#25597); -#21899=LINE('',#49801,#25598); -#21900=LINE('',#49804,#25599); -#21901=LINE('',#49807,#25600); -#21902=LINE('',#49810,#25601); -#21903=LINE('',#49813,#25602); -#21904=LINE('',#49816,#25603); -#21905=LINE('',#49819,#25604); -#21906=LINE('',#49822,#25605); -#21907=LINE('',#49825,#25606); -#21908=LINE('',#49828,#25607); -#21909=LINE('',#49831,#25608); -#21910=LINE('',#49834,#25609); -#21911=LINE('',#49837,#25610); -#21912=LINE('',#49840,#25611); -#21913=LINE('',#49843,#25612); -#21914=LINE('',#49846,#25613); -#21915=LINE('',#49849,#25614); -#21916=LINE('',#49852,#25615); -#21917=LINE('',#49855,#25616); -#21918=LINE('',#49858,#25617); -#21919=LINE('',#49861,#25618); -#21920=LINE('',#49864,#25619); -#21921=LINE('',#49867,#25620); -#21922=LINE('',#49870,#25621); -#21923=LINE('',#49873,#25622); -#21924=LINE('',#49876,#25623); -#21925=LINE('',#49879,#25624); -#21926=LINE('',#49882,#25625); -#21927=LINE('',#49884,#25626); -#21928=LINE('',#49930,#25627); -#21929=LINE('',#49933,#25628); -#21930=LINE('',#49935,#25629); -#21931=LINE('',#49937,#25630); -#21932=LINE('',#49941,#25631); -#21933=LINE('',#49945,#25632); -#21934=LINE('',#49949,#25633); -#21935=LINE('',#49953,#25634); -#21936=LINE('',#49957,#25635); -#21937=LINE('',#49961,#25636); -#21938=LINE('',#49963,#25637); -#21939=LINE('',#49965,#25638); -#21940=LINE('',#49969,#25639); -#21941=LINE('',#49973,#25640); -#21942=LINE('',#49977,#25641); -#21943=LINE('',#49981,#25642); -#21944=LINE('',#49985,#25643); -#21945=LINE('',#49989,#25644); -#21946=LINE('',#49991,#25645); -#21947=LINE('',#49993,#25646); -#21948=LINE('',#49997,#25647); -#21949=LINE('',#50001,#25648); -#21950=LINE('',#50005,#25649); -#21951=LINE('',#50009,#25650); -#21952=LINE('',#50013,#25651); -#21953=LINE('',#50017,#25652); -#21954=LINE('',#50019,#25653); -#21955=LINE('',#50021,#25654); -#21956=LINE('',#50025,#25655); -#21957=LINE('',#50029,#25656); -#21958=LINE('',#50033,#25657); -#21959=LINE('',#50037,#25658); -#21960=LINE('',#50041,#25659); -#21961=LINE('',#50045,#25660); -#21962=LINE('',#50047,#25661); -#21963=LINE('',#50049,#25662); -#21964=LINE('',#50053,#25663); -#21965=LINE('',#50057,#25664); -#21966=LINE('',#50061,#25665); -#21967=LINE('',#50065,#25666); -#21968=LINE('',#50069,#25667); -#21969=LINE('',#50073,#25668); -#21970=LINE('',#50075,#25669); -#21971=LINE('',#50077,#25670); -#21972=LINE('',#50081,#25671); -#21973=LINE('',#50085,#25672); -#21974=LINE('',#50089,#25673); -#21975=LINE('',#50093,#25674); -#21976=LINE('',#50097,#25675); -#21977=LINE('',#50101,#25676); -#21978=LINE('',#50103,#25677); -#21979=LINE('',#50105,#25678); -#21980=LINE('',#50109,#25679); -#21981=LINE('',#50113,#25680); -#21982=LINE('',#50117,#25681); -#21983=LINE('',#50121,#25682); -#21984=LINE('',#50125,#25683); -#21985=LINE('',#50129,#25684); -#21986=LINE('',#50131,#25685); -#21987=LINE('',#50133,#25686); -#21988=LINE('',#50137,#25687); -#21989=LINE('',#50141,#25688); -#21990=LINE('',#50145,#25689); -#21991=LINE('',#50149,#25690); -#21992=LINE('',#50153,#25691); -#21993=LINE('',#50157,#25692); -#21994=LINE('',#50159,#25693); -#21995=LINE('',#50161,#25694); -#21996=LINE('',#50165,#25695); -#21997=LINE('',#50169,#25696); -#21998=LINE('',#50173,#25697); -#21999=LINE('',#50177,#25698); -#22000=LINE('',#50181,#25699); -#22001=LINE('',#50185,#25700); -#22002=LINE('',#50187,#25701); -#22003=LINE('',#50189,#25702); -#22004=LINE('',#50193,#25703); -#22005=LINE('',#50197,#25704); -#22006=LINE('',#50201,#25705); -#22007=LINE('',#50205,#25706); -#22008=LINE('',#50209,#25707); -#22009=LINE('',#50213,#25708); -#22010=LINE('',#50215,#25709); -#22011=LINE('',#50217,#25710); -#22012=LINE('',#50221,#25711); -#22013=LINE('',#50225,#25712); -#22014=LINE('',#50229,#25713); -#22015=LINE('',#50233,#25714); -#22016=LINE('',#50237,#25715); -#22017=LINE('',#50241,#25716); -#22018=LINE('',#50243,#25717); -#22019=LINE('',#50245,#25718); -#22020=LINE('',#50249,#25719); -#22021=LINE('',#50253,#25720); -#22022=LINE('',#50257,#25721); -#22023=LINE('',#50261,#25722); -#22024=LINE('',#50265,#25723); -#22025=LINE('',#50269,#25724); -#22026=LINE('',#50271,#25725); -#22027=LINE('',#50273,#25726); -#22028=LINE('',#50277,#25727); -#22029=LINE('',#50281,#25728); -#22030=LINE('',#50285,#25729); -#22031=LINE('',#50289,#25730); -#22032=LINE('',#50293,#25731); -#22033=LINE('',#50297,#25732); -#22034=LINE('',#50299,#25733); -#22035=LINE('',#50301,#25734); -#22036=LINE('',#50305,#25735); -#22037=LINE('',#50309,#25736); -#22038=LINE('',#50313,#25737); -#22039=LINE('',#50317,#25738); -#22040=LINE('',#50321,#25739); -#22041=LINE('',#50325,#25740); -#22042=LINE('',#50327,#25741); -#22043=LINE('',#50329,#25742); -#22044=LINE('',#50333,#25743); -#22045=LINE('',#50337,#25744); -#22046=LINE('',#50341,#25745); -#22047=LINE('',#50345,#25746); -#22048=LINE('',#50349,#25747); -#22049=LINE('',#50353,#25748); -#22050=LINE('',#50355,#25749); -#22051=LINE('',#50357,#25750); -#22052=LINE('',#50361,#25751); -#22053=LINE('',#50365,#25752); -#22054=LINE('',#50369,#25753); -#22055=LINE('',#50373,#25754); -#22056=LINE('',#50377,#25755); -#22057=LINE('',#50381,#25756); -#22058=LINE('',#50383,#25757); -#22059=LINE('',#50385,#25758); -#22060=LINE('',#50389,#25759); -#22061=LINE('',#50393,#25760); -#22062=LINE('',#50397,#25761); -#22063=LINE('',#50401,#25762); -#22064=LINE('',#50405,#25763); -#22065=LINE('',#50409,#25764); -#22066=LINE('',#50411,#25765); -#22067=LINE('',#50413,#25766); -#22068=LINE('',#50417,#25767); -#22069=LINE('',#50421,#25768); -#22070=LINE('',#50425,#25769); -#22071=LINE('',#50429,#25770); -#22072=LINE('',#50433,#25771); -#22073=LINE('',#50437,#25772); -#22074=LINE('',#50439,#25773); -#22075=LINE('',#50441,#25774); -#22076=LINE('',#50445,#25775); -#22077=LINE('',#50449,#25776); -#22078=LINE('',#50453,#25777); -#22079=LINE('',#50457,#25778); -#22080=LINE('',#50461,#25779); -#22081=LINE('',#50465,#25780); -#22082=LINE('',#50467,#25781); -#22083=LINE('',#50469,#25782); -#22084=LINE('',#50473,#25783); -#22085=LINE('',#50477,#25784); -#22086=LINE('',#50481,#25785); -#22087=LINE('',#50485,#25786); -#22088=LINE('',#50489,#25787); -#22089=LINE('',#50493,#25788); -#22090=LINE('',#50495,#25789); -#22091=LINE('',#50497,#25790); -#22092=LINE('',#50499,#25791); -#22093=LINE('',#50502,#25792); -#22094=LINE('',#50504,#25793); -#22095=LINE('',#50506,#25794); -#22096=LINE('',#50510,#25795); -#22097=LINE('',#50514,#25796); -#22098=LINE('',#50518,#25797); -#22099=LINE('',#50522,#25798); -#22100=LINE('',#50526,#25799); -#22101=LINE('',#50530,#25800); -#22102=LINE('',#50532,#25801); -#22103=LINE('',#50534,#25802); -#22104=LINE('',#50538,#25803); -#22105=LINE('',#50542,#25804); -#22106=LINE('',#50546,#25805); -#22107=LINE('',#50550,#25806); -#22108=LINE('',#50554,#25807); -#22109=LINE('',#50558,#25808); -#22110=LINE('',#50560,#25809); -#22111=LINE('',#50562,#25810); -#22112=LINE('',#50566,#25811); -#22113=LINE('',#50570,#25812); -#22114=LINE('',#50574,#25813); -#22115=LINE('',#50578,#25814); -#22116=LINE('',#50582,#25815); -#22117=LINE('',#50586,#25816); -#22118=LINE('',#50588,#25817); -#22119=LINE('',#50590,#25818); -#22120=LINE('',#50594,#25819); -#22121=LINE('',#50598,#25820); -#22122=LINE('',#50602,#25821); -#22123=LINE('',#50606,#25822); -#22124=LINE('',#50610,#25823); -#22125=LINE('',#50614,#25824); -#22126=LINE('',#50616,#25825); -#22127=LINE('',#50618,#25826); -#22128=LINE('',#50622,#25827); -#22129=LINE('',#50626,#25828); -#22130=LINE('',#50630,#25829); -#22131=LINE('',#50634,#25830); -#22132=LINE('',#50638,#25831); -#22133=LINE('',#50642,#25832); -#22134=LINE('',#50644,#25833); -#22135=LINE('',#50646,#25834); -#22136=LINE('',#50650,#25835); -#22137=LINE('',#50654,#25836); -#22138=LINE('',#50658,#25837); -#22139=LINE('',#50662,#25838); -#22140=LINE('',#50666,#25839); -#22141=LINE('',#50670,#25840); -#22142=LINE('',#50672,#25841); -#22143=LINE('',#50674,#25842); -#22144=LINE('',#50678,#25843); -#22145=LINE('',#50682,#25844); -#22146=LINE('',#50686,#25845); -#22147=LINE('',#50690,#25846); -#22148=LINE('',#50694,#25847); -#22149=LINE('',#50698,#25848); -#22150=LINE('',#50700,#25849); -#22151=LINE('',#50702,#25850); -#22152=LINE('',#50706,#25851); -#22153=LINE('',#50710,#25852); -#22154=LINE('',#50714,#25853); -#22155=LINE('',#50718,#25854); -#22156=LINE('',#50722,#25855); -#22157=LINE('',#50726,#25856); -#22158=LINE('',#50728,#25857); -#22159=LINE('',#50730,#25858); -#22160=LINE('',#50734,#25859); -#22161=LINE('',#50738,#25860); -#22162=LINE('',#50742,#25861); -#22163=LINE('',#50746,#25862); -#22164=LINE('',#50750,#25863); -#22165=LINE('',#50754,#25864); -#22166=LINE('',#50756,#25865); -#22167=LINE('',#50758,#25866); -#22168=LINE('',#50762,#25867); -#22169=LINE('',#50766,#25868); -#22170=LINE('',#50770,#25869); -#22171=LINE('',#50774,#25870); -#22172=LINE('',#50778,#25871); -#22173=LINE('',#50782,#25872); -#22174=LINE('',#50784,#25873); -#22175=LINE('',#50786,#25874); -#22176=LINE('',#50790,#25875); -#22177=LINE('',#50794,#25876); -#22178=LINE('',#50798,#25877); -#22179=LINE('',#50802,#25878); -#22180=LINE('',#50806,#25879); -#22181=LINE('',#50810,#25880); -#22182=LINE('',#50812,#25881); -#22183=LINE('',#50814,#25882); -#22184=LINE('',#50818,#25883); -#22185=LINE('',#50822,#25884); -#22186=LINE('',#50826,#25885); -#22187=LINE('',#50830,#25886); -#22188=LINE('',#50834,#25887); -#22189=LINE('',#50838,#25888); -#22190=LINE('',#50840,#25889); -#22191=LINE('',#50842,#25890); -#22192=LINE('',#50846,#25891); -#22193=LINE('',#50850,#25892); -#22194=LINE('',#50854,#25893); -#22195=LINE('',#50858,#25894); -#22196=LINE('',#50862,#25895); -#22197=LINE('',#50866,#25896); -#22198=LINE('',#50868,#25897); -#22199=LINE('',#50870,#25898); -#22200=LINE('',#50874,#25899); -#22201=LINE('',#50878,#25900); -#22202=LINE('',#50882,#25901); -#22203=LINE('',#50886,#25902); -#22204=LINE('',#50890,#25903); -#22205=LINE('',#50894,#25904); -#22206=LINE('',#50896,#25905); -#22207=LINE('',#50898,#25906); -#22208=LINE('',#50902,#25907); -#22209=LINE('',#50906,#25908); -#22210=LINE('',#50910,#25909); -#22211=LINE('',#50914,#25910); -#22212=LINE('',#50918,#25911); -#22213=LINE('',#50922,#25912); -#22214=LINE('',#50924,#25913); -#22215=LINE('',#50926,#25914); -#22216=LINE('',#50930,#25915); -#22217=LINE('',#50934,#25916); -#22218=LINE('',#50938,#25917); -#22219=LINE('',#50942,#25918); -#22220=LINE('',#50946,#25919); -#22221=LINE('',#50950,#25920); -#22222=LINE('',#50952,#25921); -#22223=LINE('',#50954,#25922); -#22224=LINE('',#50958,#25923); -#22225=LINE('',#50962,#25924); -#22226=LINE('',#50966,#25925); -#22227=LINE('',#50970,#25926); -#22228=LINE('',#50974,#25927); -#22229=LINE('',#50978,#25928); -#22230=LINE('',#50980,#25929); -#22231=LINE('',#50982,#25930); -#22232=LINE('',#50986,#25931); -#22233=LINE('',#50990,#25932); -#22234=LINE('',#50994,#25933); -#22235=LINE('',#50998,#25934); -#22236=LINE('',#51002,#25935); -#22237=LINE('',#51006,#25936); -#22238=LINE('',#51008,#25937); -#22239=LINE('',#51010,#25938); -#22240=LINE('',#51014,#25939); -#22241=LINE('',#51018,#25940); -#22242=LINE('',#51022,#25941); -#22243=LINE('',#51026,#25942); -#22244=LINE('',#51030,#25943); -#22245=LINE('',#51034,#25944); -#22246=LINE('',#51036,#25945); -#22247=LINE('',#51038,#25946); -#22248=LINE('',#51042,#25947); -#22249=LINE('',#51046,#25948); -#22250=LINE('',#51050,#25949); -#22251=LINE('',#51054,#25950); -#22252=LINE('',#51058,#25951); -#22253=LINE('',#51062,#25952); -#22254=LINE('',#51064,#25953); -#22255=LINE('',#51066,#25954); -#22256=LINE('',#51068,#25955); -#22257=LINE('',#51071,#25956); -#22258=LINE('',#51073,#25957); -#22259=LINE('',#51075,#25958); -#22260=LINE('',#51079,#25959); -#22261=LINE('',#51083,#25960); -#22262=LINE('',#51087,#25961); -#22263=LINE('',#51091,#25962); -#22264=LINE('',#51095,#25963); -#22265=LINE('',#51099,#25964); -#22266=LINE('',#51101,#25965); -#22267=LINE('',#51103,#25966); -#22268=LINE('',#51107,#25967); -#22269=LINE('',#51111,#25968); -#22270=LINE('',#51115,#25969); -#22271=LINE('',#51119,#25970); -#22272=LINE('',#51123,#25971); -#22273=LINE('',#51127,#25972); -#22274=LINE('',#51129,#25973); -#22275=LINE('',#51131,#25974); -#22276=LINE('',#51135,#25975); -#22277=LINE('',#51139,#25976); -#22278=LINE('',#51143,#25977); -#22279=LINE('',#51147,#25978); -#22280=LINE('',#51151,#25979); -#22281=LINE('',#51155,#25980); -#22282=LINE('',#51157,#25981); -#22283=LINE('',#51159,#25982); -#22284=LINE('',#51163,#25983); -#22285=LINE('',#51167,#25984); -#22286=LINE('',#51171,#25985); -#22287=LINE('',#51175,#25986); -#22288=LINE('',#51179,#25987); -#22289=LINE('',#51183,#25988); -#22290=LINE('',#51185,#25989); -#22291=LINE('',#51187,#25990); -#22292=LINE('',#51191,#25991); -#22293=LINE('',#51195,#25992); -#22294=LINE('',#51199,#25993); -#22295=LINE('',#51203,#25994); -#22296=LINE('',#51207,#25995); -#22297=LINE('',#51211,#25996); -#22298=LINE('',#51213,#25997); -#22299=LINE('',#51215,#25998); -#22300=LINE('',#51219,#25999); -#22301=LINE('',#51223,#26000); -#22302=LINE('',#51227,#26001); -#22303=LINE('',#51231,#26002); -#22304=LINE('',#51235,#26003); -#22305=LINE('',#51239,#26004); -#22306=LINE('',#51241,#26005); -#22307=LINE('',#51243,#26006); -#22308=LINE('',#51247,#26007); -#22309=LINE('',#51251,#26008); -#22310=LINE('',#51255,#26009); -#22311=LINE('',#51259,#26010); -#22312=LINE('',#51263,#26011); -#22313=LINE('',#51267,#26012); -#22314=LINE('',#51269,#26013); -#22315=LINE('',#51271,#26014); -#22316=LINE('',#51275,#26015); -#22317=LINE('',#51279,#26016); -#22318=LINE('',#51283,#26017); -#22319=LINE('',#51287,#26018); -#22320=LINE('',#51291,#26019); -#22321=LINE('',#51295,#26020); -#22322=LINE('',#51297,#26021); -#22323=LINE('',#51299,#26022); -#22324=LINE('',#51303,#26023); -#22325=LINE('',#51307,#26024); -#22326=LINE('',#51311,#26025); -#22327=LINE('',#51315,#26026); -#22328=LINE('',#51319,#26027); -#22329=LINE('',#51323,#26028); -#22330=LINE('',#51325,#26029); -#22331=LINE('',#51327,#26030); -#22332=LINE('',#51331,#26031); -#22333=LINE('',#51335,#26032); -#22334=LINE('',#51339,#26033); -#22335=LINE('',#51343,#26034); -#22336=LINE('',#51347,#26035); -#22337=LINE('',#51351,#26036); -#22338=LINE('',#51353,#26037); -#22339=LINE('',#51355,#26038); -#22340=LINE('',#51359,#26039); -#22341=LINE('',#51363,#26040); -#22342=LINE('',#51367,#26041); -#22343=LINE('',#51371,#26042); -#22344=LINE('',#51375,#26043); -#22345=LINE('',#51379,#26044); -#22346=LINE('',#51381,#26045); -#22347=LINE('',#51383,#26046); -#22348=LINE('',#51387,#26047); -#22349=LINE('',#51391,#26048); -#22350=LINE('',#51395,#26049); -#22351=LINE('',#51399,#26050); -#22352=LINE('',#51403,#26051); -#22353=LINE('',#51407,#26052); -#22354=LINE('',#51409,#26053); -#22355=LINE('',#51411,#26054); -#22356=LINE('',#51415,#26055); -#22357=LINE('',#51419,#26056); -#22358=LINE('',#51423,#26057); -#22359=LINE('',#51427,#26058); -#22360=LINE('',#51431,#26059); -#22361=LINE('',#51435,#26060); -#22362=LINE('',#51437,#26061); -#22363=LINE('',#51439,#26062); -#22364=LINE('',#51443,#26063); -#22365=LINE('',#51447,#26064); -#22366=LINE('',#51451,#26065); -#22367=LINE('',#51455,#26066); -#22368=LINE('',#51459,#26067); -#22369=LINE('',#51463,#26068); -#22370=LINE('',#51465,#26069); -#22371=LINE('',#51467,#26070); -#22372=LINE('',#51471,#26071); -#22373=LINE('',#51475,#26072); -#22374=LINE('',#51479,#26073); -#22375=LINE('',#51483,#26074); -#22376=LINE('',#51487,#26075); -#22377=LINE('',#51491,#26076); -#22378=LINE('',#51493,#26077); -#22379=LINE('',#51495,#26078); -#22380=LINE('',#51499,#26079); -#22381=LINE('',#51503,#26080); -#22382=LINE('',#51507,#26081); -#22383=LINE('',#51511,#26082); -#22384=LINE('',#51515,#26083); -#22385=LINE('',#51519,#26084); -#22386=LINE('',#51521,#26085); -#22387=LINE('',#51523,#26086); -#22388=LINE('',#51527,#26087); -#22389=LINE('',#51531,#26088); -#22390=LINE('',#51535,#26089); -#22391=LINE('',#51539,#26090); -#22392=LINE('',#51543,#26091); -#22393=LINE('',#51547,#26092); -#22394=LINE('',#51549,#26093); -#22395=LINE('',#51551,#26094); -#22396=LINE('',#51555,#26095); -#22397=LINE('',#51559,#26096); -#22398=LINE('',#51563,#26097); -#22399=LINE('',#51567,#26098); -#22400=LINE('',#51571,#26099); -#22401=LINE('',#51575,#26100); -#22402=LINE('',#51577,#26101); -#22403=LINE('',#51579,#26102); -#22404=LINE('',#51583,#26103); -#22405=LINE('',#51587,#26104); -#22406=LINE('',#51591,#26105); -#22407=LINE('',#51595,#26106); -#22408=LINE('',#51599,#26107); -#22409=LINE('',#51603,#26108); -#22410=LINE('',#51605,#26109); -#22411=LINE('',#51607,#26110); -#22412=LINE('',#51611,#26111); -#22413=LINE('',#51615,#26112); -#22414=LINE('',#51619,#26113); -#22415=LINE('',#51623,#26114); -#22416=LINE('',#51627,#26115); -#22417=LINE('',#51631,#26116); -#22418=LINE('',#51633,#26117); -#22419=LINE('',#51635,#26118); -#22420=LINE('',#51637,#26119); -#22421=LINE('',#51640,#26120); -#22422=LINE('',#51642,#26121); -#22423=LINE('',#51644,#26122); -#22424=LINE('',#51648,#26123); -#22425=LINE('',#51652,#26124); -#22426=LINE('',#51656,#26125); -#22427=LINE('',#51660,#26126); -#22428=LINE('',#51664,#26127); -#22429=LINE('',#51668,#26128); -#22430=LINE('',#51670,#26129); -#22431=LINE('',#51672,#26130); -#22432=LINE('',#51676,#26131); -#22433=LINE('',#51680,#26132); -#22434=LINE('',#51684,#26133); -#22435=LINE('',#51688,#26134); -#22436=LINE('',#51692,#26135); -#22437=LINE('',#51696,#26136); -#22438=LINE('',#51698,#26137); -#22439=LINE('',#51700,#26138); -#22440=LINE('',#51704,#26139); -#22441=LINE('',#51708,#26140); -#22442=LINE('',#51712,#26141); -#22443=LINE('',#51716,#26142); -#22444=LINE('',#51720,#26143); -#22445=LINE('',#51724,#26144); -#22446=LINE('',#51726,#26145); -#22447=LINE('',#51728,#26146); -#22448=LINE('',#51732,#26147); -#22449=LINE('',#51736,#26148); -#22450=LINE('',#51740,#26149); -#22451=LINE('',#51744,#26150); -#22452=LINE('',#51748,#26151); -#22453=LINE('',#51752,#26152); -#22454=LINE('',#51754,#26153); -#22455=LINE('',#51756,#26154); -#22456=LINE('',#51760,#26155); -#22457=LINE('',#51764,#26156); -#22458=LINE('',#51768,#26157); -#22459=LINE('',#51772,#26158); -#22460=LINE('',#51776,#26159); -#22461=LINE('',#51780,#26160); -#22462=LINE('',#51782,#26161); -#22463=LINE('',#51784,#26162); -#22464=LINE('',#51788,#26163); -#22465=LINE('',#51792,#26164); -#22466=LINE('',#51796,#26165); -#22467=LINE('',#51800,#26166); -#22468=LINE('',#51804,#26167); -#22469=LINE('',#51808,#26168); -#22470=LINE('',#51810,#26169); -#22471=LINE('',#51812,#26170); -#22472=LINE('',#51816,#26171); -#22473=LINE('',#51820,#26172); -#22474=LINE('',#51824,#26173); -#22475=LINE('',#51828,#26174); -#22476=LINE('',#51832,#26175); -#22477=LINE('',#51836,#26176); -#22478=LINE('',#51838,#26177); -#22479=LINE('',#51840,#26178); -#22480=LINE('',#51844,#26179); -#22481=LINE('',#51848,#26180); -#22482=LINE('',#51852,#26181); -#22483=LINE('',#51856,#26182); -#22484=LINE('',#51860,#26183); -#22485=LINE('',#51864,#26184); -#22486=LINE('',#51866,#26185); -#22487=LINE('',#51868,#26186); -#22488=LINE('',#51872,#26187); -#22489=LINE('',#51876,#26188); -#22490=LINE('',#51880,#26189); -#22491=LINE('',#51884,#26190); -#22492=LINE('',#51888,#26191); -#22493=LINE('',#51892,#26192); -#22494=LINE('',#51894,#26193); -#22495=LINE('',#51896,#26194); -#22496=LINE('',#51900,#26195); -#22497=LINE('',#51904,#26196); -#22498=LINE('',#51908,#26197); -#22499=LINE('',#51912,#26198); -#22500=LINE('',#51916,#26199); -#22501=LINE('',#51920,#26200); -#22502=LINE('',#51922,#26201); -#22503=LINE('',#51924,#26202); -#22504=LINE('',#51928,#26203); -#22505=LINE('',#51932,#26204); -#22506=LINE('',#51936,#26205); -#22507=LINE('',#51940,#26206); -#22508=LINE('',#51944,#26207); -#22509=LINE('',#51948,#26208); -#22510=LINE('',#51950,#26209); -#22511=LINE('',#51952,#26210); -#22512=LINE('',#51956,#26211); -#22513=LINE('',#51960,#26212); -#22514=LINE('',#51964,#26213); -#22515=LINE('',#51968,#26214); -#22516=LINE('',#51972,#26215); -#22517=LINE('',#51976,#26216); -#22518=LINE('',#51978,#26217); -#22519=LINE('',#51980,#26218); -#22520=LINE('',#51984,#26219); -#22521=LINE('',#51988,#26220); -#22522=LINE('',#51992,#26221); -#22523=LINE('',#51996,#26222); -#22524=LINE('',#52000,#26223); -#22525=LINE('',#52004,#26224); -#22526=LINE('',#52006,#26225); -#22527=LINE('',#52008,#26226); -#22528=LINE('',#52012,#26227); -#22529=LINE('',#52016,#26228); -#22530=LINE('',#52020,#26229); -#22531=LINE('',#52024,#26230); -#22532=LINE('',#52028,#26231); -#22533=LINE('',#52032,#26232); -#22534=LINE('',#52034,#26233); -#22535=LINE('',#52036,#26234); -#22536=LINE('',#52040,#26235); -#22537=LINE('',#52044,#26236); -#22538=LINE('',#52048,#26237); -#22539=LINE('',#52052,#26238); -#22540=LINE('',#52056,#26239); -#22541=LINE('',#52060,#26240); -#22542=LINE('',#52062,#26241); -#22543=LINE('',#52064,#26242); -#22544=LINE('',#52068,#26243); -#22545=LINE('',#52072,#26244); -#22546=LINE('',#52076,#26245); -#22547=LINE('',#52080,#26246); -#22548=LINE('',#52084,#26247); -#22549=LINE('',#52088,#26248); -#22550=LINE('',#52090,#26249); -#22551=LINE('',#52092,#26250); -#22552=LINE('',#52096,#26251); -#22553=LINE('',#52100,#26252); -#22554=LINE('',#52104,#26253); -#22555=LINE('',#52108,#26254); -#22556=LINE('',#52112,#26255); -#22557=LINE('',#52116,#26256); -#22558=LINE('',#52118,#26257); -#22559=LINE('',#52120,#26258); -#22560=LINE('',#52124,#26259); -#22561=LINE('',#52128,#26260); -#22562=LINE('',#52132,#26261); -#22563=LINE('',#52136,#26262); -#22564=LINE('',#52140,#26263); -#22565=LINE('',#52144,#26264); -#22566=LINE('',#52146,#26265); -#22567=LINE('',#52148,#26266); -#22568=LINE('',#52152,#26267); -#22569=LINE('',#52156,#26268); -#22570=LINE('',#52160,#26269); -#22571=LINE('',#52164,#26270); -#22572=LINE('',#52168,#26271); -#22573=LINE('',#52172,#26272); -#22574=LINE('',#52174,#26273); -#22575=LINE('',#52176,#26274); -#22576=LINE('',#52180,#26275); -#22577=LINE('',#52184,#26276); -#22578=LINE('',#52188,#26277); -#22579=LINE('',#52192,#26278); -#22580=LINE('',#52196,#26279); -#22581=LINE('',#52200,#26280); -#22582=LINE('',#52202,#26281); -#22583=LINE('',#52204,#26282); -#22584=LINE('',#52206,#26283); -#22585=LINE('',#52207,#26284); -#22586=LINE('',#52209,#26285); -#22587=LINE('',#52210,#26286); -#22588=LINE('',#52212,#26287); -#22589=LINE('',#52213,#26288); -#22590=LINE('',#52215,#26289); -#22591=LINE('',#52216,#26290); -#22592=LINE('',#52218,#26291); -#22593=LINE('',#52219,#26292); -#22594=LINE('',#52221,#26293); -#22595=LINE('',#52222,#26294); -#22596=LINE('',#52224,#26295); -#22597=LINE('',#52225,#26296); -#22598=LINE('',#52227,#26297); -#22599=LINE('',#52228,#26298); -#22600=LINE('',#52230,#26299); -#22601=LINE('',#52231,#26300); -#22602=LINE('',#52233,#26301); -#22603=LINE('',#52234,#26302); -#22604=LINE('',#52236,#26303); -#22605=LINE('',#52237,#26304); -#22606=LINE('',#52239,#26305); -#22607=LINE('',#52240,#26306); -#22608=LINE('',#52242,#26307); -#22609=LINE('',#52243,#26308); -#22610=LINE('',#52245,#26309); -#22611=LINE('',#52246,#26310); -#22612=LINE('',#52248,#26311); -#22613=LINE('',#52249,#26312); -#22614=LINE('',#52251,#26313); -#22615=LINE('',#52252,#26314); -#22616=LINE('',#52254,#26315); -#22617=LINE('',#52255,#26316); -#22618=LINE('',#52257,#26317); -#22619=LINE('',#52258,#26318); -#22620=LINE('',#52260,#26319); -#22621=LINE('',#52261,#26320); -#22622=LINE('',#52263,#26321); -#22623=LINE('',#52264,#26322); -#22624=LINE('',#52266,#26323); -#22625=LINE('',#52267,#26324); -#22626=LINE('',#52269,#26325); -#22627=LINE('',#52270,#26326); -#22628=LINE('',#52272,#26327); -#22629=LINE('',#52273,#26328); -#22630=LINE('',#52275,#26329); -#22631=LINE('',#52276,#26330); -#22632=LINE('',#52278,#26331); -#22633=LINE('',#52279,#26332); -#22634=LINE('',#52281,#26333); -#22635=LINE('',#52282,#26334); -#22636=LINE('',#52284,#26335); -#22637=LINE('',#52285,#26336); -#22638=LINE('',#52287,#26337); -#22639=LINE('',#52288,#26338); -#22640=LINE('',#52290,#26339); -#22641=LINE('',#52291,#26340); -#22642=LINE('',#52293,#26341); -#22643=LINE('',#52294,#26342); -#22644=LINE('',#52296,#26343); -#22645=LINE('',#52297,#26344); -#22646=LINE('',#52299,#26345); -#22647=LINE('',#52300,#26346); -#22648=LINE('',#52302,#26347); -#22649=LINE('',#52303,#26348); -#22650=LINE('',#52305,#26349); -#22651=LINE('',#52306,#26350); -#22652=LINE('',#52308,#26351); -#22653=LINE('',#52309,#26352); -#22654=LINE('',#52311,#26353); -#22655=LINE('',#52312,#26354); -#22656=LINE('',#52314,#26355); -#22657=LINE('',#52315,#26356); -#22658=LINE('',#52317,#26357); -#22659=LINE('',#52318,#26358); -#22660=LINE('',#52320,#26359); -#22661=LINE('',#52321,#26360); -#22662=LINE('',#52323,#26361); -#22663=LINE('',#52324,#26362); -#22664=LINE('',#52326,#26363); -#22665=LINE('',#52327,#26364); -#22666=LINE('',#52329,#26365); -#22667=LINE('',#52330,#26366); -#22668=LINE('',#52332,#26367); -#22669=LINE('',#52333,#26368); -#22670=LINE('',#52335,#26369); -#22671=LINE('',#52336,#26370); -#22672=LINE('',#52350,#26371); -#22673=LINE('',#52376,#26372); -#22674=LINE('',#52402,#26373); -#22675=LINE('',#52428,#26374); -#22676=LINE('',#52454,#26375); -#22677=LINE('',#52480,#26376); -#22678=LINE('',#52506,#26377); -#22679=LINE('',#52532,#26378); -#22680=LINE('',#52558,#26379); -#22681=LINE('',#52584,#26380); -#22682=LINE('',#52610,#26381); -#22683=LINE('',#52636,#26382); -#22684=LINE('',#52662,#26383); -#22685=LINE('',#52688,#26384); -#22686=LINE('',#52714,#26385); -#22687=LINE('',#52740,#26386); -#22688=LINE('',#52766,#26387); -#22689=LINE('',#52792,#26388); -#22690=LINE('',#52818,#26389); -#22691=LINE('',#52844,#26390); -#22692=LINE('',#52860,#26391); -#22693=LINE('',#52862,#26392); -#22694=LINE('',#52864,#26393); -#22695=LINE('',#52870,#26394); -#22696=LINE('',#52872,#26395); -#22697=LINE('',#52874,#26396); -#22698=LINE('',#52880,#26397); -#22699=LINE('',#52882,#26398); -#22700=LINE('',#52884,#26399); -#22701=LINE('',#52890,#26400); -#22702=LINE('',#52892,#26401); -#22703=LINE('',#52894,#26402); -#22704=LINE('',#52900,#26403); -#22705=LINE('',#52902,#26404); -#22706=LINE('',#52904,#26405); -#22707=LINE('',#52910,#26406); -#22708=LINE('',#52912,#26407); -#22709=LINE('',#52914,#26408); -#22710=LINE('',#52920,#26409); -#22711=LINE('',#52922,#26410); -#22712=LINE('',#52924,#26411); -#22713=LINE('',#52930,#26412); -#22714=LINE('',#52932,#26413); -#22715=LINE('',#52934,#26414); -#22716=LINE('',#52940,#26415); -#22717=LINE('',#52942,#26416); -#22718=LINE('',#52944,#26417); -#22719=LINE('',#52950,#26418); -#22720=LINE('',#52952,#26419); -#22721=LINE('',#52954,#26420); -#22722=LINE('',#52960,#26421); -#22723=LINE('',#52962,#26422); -#22724=LINE('',#52964,#26423); -#22725=LINE('',#52970,#26424); -#22726=LINE('',#52972,#26425); -#22727=LINE('',#52974,#26426); -#22728=LINE('',#52980,#26427); -#22729=LINE('',#52982,#26428); -#22730=LINE('',#52984,#26429); -#22731=LINE('',#52990,#26430); -#22732=LINE('',#52992,#26431); -#22733=LINE('',#52994,#26432); -#22734=LINE('',#53000,#26433); -#22735=LINE('',#53002,#26434); -#22736=LINE('',#53004,#26435); -#22737=LINE('',#53010,#26436); -#22738=LINE('',#53012,#26437); -#22739=LINE('',#53014,#26438); -#22740=LINE('',#53020,#26439); -#22741=LINE('',#53022,#26440); -#22742=LINE('',#53024,#26441); -#22743=LINE('',#53030,#26442); -#22744=LINE('',#53032,#26443); -#22745=LINE('',#53034,#26444); -#22746=LINE('',#53040,#26445); -#22747=LINE('',#53042,#26446); -#22748=LINE('',#53044,#26447); -#22749=LINE('',#53309,#26448); -#22750=LINE('',#53318,#26449); -#22751=LINE('',#53334,#26450); -#22752=LINE('',#53350,#26451); -#22753=LINE('',#53366,#26452); -#22754=LINE('',#53382,#26453); -#22755=LINE('',#53398,#26454); -#22756=LINE('',#53414,#26455); -#22757=LINE('',#53430,#26456); -#22758=LINE('',#53446,#26457); -#22759=LINE('',#53462,#26458); -#22760=LINE('',#53478,#26459); -#22761=LINE('',#53494,#26460); -#22762=LINE('',#53510,#26461); -#22763=LINE('',#53526,#26462); -#22764=LINE('',#53542,#26463); -#22765=LINE('',#53558,#26464); -#22766=LINE('',#53574,#26465); -#22767=LINE('',#53590,#26466); -#22768=LINE('',#53606,#26467); -#22769=LINE('',#53622,#26468); -#22770=LINE('',#53631,#26469); -#22771=LINE('',#53635,#26470); -#22772=LINE('',#53639,#26471); -#22773=LINE('',#53641,#26472); -#22774=LINE('',#53645,#26473); -#22775=LINE('',#53649,#26474); -#22776=LINE('',#53651,#26475); -#22777=LINE('',#53655,#26476); -#22778=LINE('',#53659,#26477); -#22779=LINE('',#53661,#26478); -#22780=LINE('',#53665,#26479); -#22781=LINE('',#53669,#26480); -#22782=LINE('',#53671,#26481); -#22783=LINE('',#53675,#26482); -#22784=LINE('',#53679,#26483); -#22785=LINE('',#53681,#26484); -#22786=LINE('',#53685,#26485); -#22787=LINE('',#53689,#26486); -#22788=LINE('',#53691,#26487); -#22789=LINE('',#53695,#26488); -#22790=LINE('',#53699,#26489); -#22791=LINE('',#53701,#26490); -#22792=LINE('',#53705,#26491); -#22793=LINE('',#53709,#26492); -#22794=LINE('',#53711,#26493); -#22795=LINE('',#53715,#26494); -#22796=LINE('',#53719,#26495); -#22797=LINE('',#53721,#26496); -#22798=LINE('',#53725,#26497); -#22799=LINE('',#53729,#26498); -#22800=LINE('',#53731,#26499); -#22801=LINE('',#53735,#26500); -#22802=LINE('',#53739,#26501); -#22803=LINE('',#53741,#26502); -#22804=LINE('',#53745,#26503); -#22805=LINE('',#53749,#26504); -#22806=LINE('',#53751,#26505); -#22807=LINE('',#53755,#26506); -#22808=LINE('',#53759,#26507); -#22809=LINE('',#53761,#26508); -#22810=LINE('',#53765,#26509); -#22811=LINE('',#53769,#26510); -#22812=LINE('',#53771,#26511); -#22813=LINE('',#53775,#26512); -#22814=LINE('',#53779,#26513); -#22815=LINE('',#53781,#26514); -#22816=LINE('',#53785,#26515); -#22817=LINE('',#53789,#26516); -#22818=LINE('',#53791,#26517); -#22819=LINE('',#53795,#26518); -#22820=LINE('',#53799,#26519); -#22821=LINE('',#53801,#26520); -#22822=LINE('',#53805,#26521); -#22823=LINE('',#53809,#26522); -#22824=LINE('',#53811,#26523); -#22825=LINE('',#53815,#26524); -#22826=LINE('',#53819,#26525); -#22827=LINE('',#54275,#26526); -#22828=LINE('',#54284,#26527); -#22829=LINE('',#54285,#26528); -#22830=LINE('',#54287,#26529); -#22831=LINE('',#54288,#26530); -#22832=LINE('',#54292,#26531); -#22833=LINE('',#54293,#26532); -#22834=LINE('',#54297,#26533); -#22835=LINE('',#54302,#26534); -#22836=LINE('',#54304,#26535); -#22837=LINE('',#54306,#26536); -#22838=LINE('',#54308,#26537); -#22839=LINE('',#54309,#26538); -#22840=LINE('',#54311,#26539); -#22841=LINE('',#54313,#26540); -#22842=LINE('',#54315,#26541); -#22843=LINE('',#54319,#26542); -#22844=LINE('',#54320,#26543); -#22845=LINE('',#54322,#26544); -#22846=LINE('',#54324,#26545); -#22847=LINE('',#54326,#26546); -#22848=LINE('',#54329,#26547); -#22849=LINE('',#54330,#26548); -#22850=LINE('',#54334,#26549); -#22851=LINE('',#54336,#26550); -#22852=LINE('',#54338,#26551); -#22853=LINE('',#54340,#26552); -#22854=LINE('',#54342,#26553); -#22855=LINE('',#54344,#26554); -#22856=LINE('',#54346,#26555); -#22857=LINE('',#54349,#26556); -#22858=LINE('',#54351,#26557); -#22859=LINE('',#54353,#26558); -#22860=LINE('',#54355,#26559); -#22861=LINE('',#54357,#26560); -#22862=LINE('',#54359,#26561); -#22863=LINE('',#54361,#26562); -#22864=LINE('',#54364,#26563); -#22865=LINE('',#54366,#26564); -#22866=LINE('',#54368,#26565); -#22867=LINE('',#54369,#26566); -#22868=LINE('',#54371,#26567); -#22869=LINE('',#54373,#26568); -#22870=LINE('',#54375,#26569); -#22871=LINE('',#54377,#26570); -#22872=LINE('',#54380,#26571); -#22873=LINE('',#54382,#26572); -#22874=LINE('',#54384,#26573); -#22875=LINE('',#54386,#26574); -#22876=LINE('',#54388,#26575); -#22877=LINE('',#54390,#26576); -#22878=LINE('',#54393,#26577); -#22879=LINE('',#54395,#26578); -#22880=LINE('',#54398,#26579); -#22881=LINE('',#54400,#26580); -#22882=LINE('',#54402,#26581); -#22883=LINE('',#54403,#26582); -#22884=LINE('',#54405,#26583); -#22885=LINE('',#54407,#26584); -#22886=LINE('',#54409,#26585); -#22887=LINE('',#54411,#26586); -#22888=LINE('',#54414,#26587); -#22889=LINE('',#54416,#26588); -#22890=LINE('',#54418,#26589); -#22891=LINE('',#54420,#26590); -#22892=LINE('',#54422,#26591); -#22893=LINE('',#54424,#26592); -#22894=LINE('',#54427,#26593); -#22895=LINE('',#54429,#26594); -#22896=LINE('',#54432,#26595); -#22897=LINE('',#54434,#26596); -#22898=LINE('',#54436,#26597); -#22899=LINE('',#54437,#26598); -#22900=LINE('',#54439,#26599); -#22901=LINE('',#54441,#26600); -#22902=LINE('',#54443,#26601); -#22903=LINE('',#54445,#26602); -#22904=LINE('',#54448,#26603); -#22905=LINE('',#54450,#26604); -#22906=LINE('',#54452,#26605); -#22907=LINE('',#54454,#26606); -#22908=LINE('',#54456,#26607); -#22909=LINE('',#54458,#26608); -#22910=LINE('',#54461,#26609); -#22911=LINE('',#54463,#26610); -#22912=LINE('',#54466,#26611); -#22913=LINE('',#54468,#26612); -#22914=LINE('',#54470,#26613); -#22915=LINE('',#54471,#26614); -#22916=LINE('',#54473,#26615); -#22917=LINE('',#54475,#26616); -#22918=LINE('',#54477,#26617); -#22919=LINE('',#54479,#26618); -#22920=LINE('',#54482,#26619); -#22921=LINE('',#54484,#26620); -#22922=LINE('',#54486,#26621); -#22923=LINE('',#54488,#26622); -#22924=LINE('',#54490,#26623); -#22925=LINE('',#54492,#26624); -#22926=LINE('',#54495,#26625); -#22927=LINE('',#54497,#26626); -#22928=LINE('',#54500,#26627); -#22929=LINE('',#54502,#26628); -#22930=LINE('',#54504,#26629); -#22931=LINE('',#54505,#26630); -#22932=LINE('',#54507,#26631); -#22933=LINE('',#54509,#26632); -#22934=LINE('',#54511,#26633); -#22935=LINE('',#54513,#26634); -#22936=LINE('',#54516,#26635); -#22937=LINE('',#54518,#26636); -#22938=LINE('',#54520,#26637); -#22939=LINE('',#54522,#26638); -#22940=LINE('',#54524,#26639); -#22941=LINE('',#54526,#26640); -#22942=LINE('',#54529,#26641); -#22943=LINE('',#54531,#26642); -#22944=LINE('',#54534,#26643); -#22945=LINE('',#54536,#26644); -#22946=LINE('',#54538,#26645); -#22947=LINE('',#54539,#26646); -#22948=LINE('',#54541,#26647); -#22949=LINE('',#54543,#26648); -#22950=LINE('',#54545,#26649); -#22951=LINE('',#54547,#26650); -#22952=LINE('',#54550,#26651); -#22953=LINE('',#54552,#26652); -#22954=LINE('',#54554,#26653); -#22955=LINE('',#54556,#26654); -#22956=LINE('',#54558,#26655); -#22957=LINE('',#54560,#26656); -#22958=LINE('',#54563,#26657); -#22959=LINE('',#54565,#26658); -#22960=LINE('',#54568,#26659); -#22961=LINE('',#54570,#26660); -#22962=LINE('',#54572,#26661); -#22963=LINE('',#54573,#26662); -#22964=LINE('',#54575,#26663); -#22965=LINE('',#54577,#26664); -#22966=LINE('',#54579,#26665); -#22967=LINE('',#54581,#26666); -#22968=LINE('',#54584,#26667); -#22969=LINE('',#54586,#26668); -#22970=LINE('',#54588,#26669); -#22971=LINE('',#54590,#26670); -#22972=LINE('',#54592,#26671); -#22973=LINE('',#54594,#26672); -#22974=LINE('',#54597,#26673); -#22975=LINE('',#54599,#26674); -#22976=LINE('',#54602,#26675); -#22977=LINE('',#54604,#26676); -#22978=LINE('',#54606,#26677); -#22979=LINE('',#54607,#26678); -#22980=LINE('',#54609,#26679); -#22981=LINE('',#54611,#26680); -#22982=LINE('',#54613,#26681); -#22983=LINE('',#54615,#26682); -#22984=LINE('',#54618,#26683); -#22985=LINE('',#54620,#26684); -#22986=LINE('',#54622,#26685); -#22987=LINE('',#54624,#26686); -#22988=LINE('',#54626,#26687); -#22989=LINE('',#54628,#26688); -#22990=LINE('',#54631,#26689); -#22991=LINE('',#54633,#26690); -#22992=LINE('',#54636,#26691); -#22993=LINE('',#54638,#26692); -#22994=LINE('',#54640,#26693); -#22995=LINE('',#54641,#26694); -#22996=LINE('',#54643,#26695); -#22997=LINE('',#54645,#26696); -#22998=LINE('',#54647,#26697); -#22999=LINE('',#54649,#26698); -#23000=LINE('',#54652,#26699); -#23001=LINE('',#54654,#26700); -#23002=LINE('',#54656,#26701); -#23003=LINE('',#54658,#26702); -#23004=LINE('',#54660,#26703); -#23005=LINE('',#54662,#26704); -#23006=LINE('',#54665,#26705); -#23007=LINE('',#54667,#26706); -#23008=LINE('',#54670,#26707); -#23009=LINE('',#54672,#26708); -#23010=LINE('',#54674,#26709); -#23011=LINE('',#54675,#26710); -#23012=LINE('',#54677,#26711); -#23013=LINE('',#54679,#26712); -#23014=LINE('',#54681,#26713); -#23015=LINE('',#54683,#26714); -#23016=LINE('',#54686,#26715); -#23017=LINE('',#54688,#26716); -#23018=LINE('',#54690,#26717); -#23019=LINE('',#54692,#26718); -#23020=LINE('',#54694,#26719); -#23021=LINE('',#54696,#26720); -#23022=LINE('',#54699,#26721); -#23023=LINE('',#54701,#26722); -#23024=LINE('',#54704,#26723); -#23025=LINE('',#54706,#26724); -#23026=LINE('',#54708,#26725); -#23027=LINE('',#54709,#26726); -#23028=LINE('',#54711,#26727); -#23029=LINE('',#54713,#26728); -#23030=LINE('',#54715,#26729); -#23031=LINE('',#54717,#26730); -#23032=LINE('',#54720,#26731); -#23033=LINE('',#54722,#26732); -#23034=LINE('',#54724,#26733); -#23035=LINE('',#54726,#26734); -#23036=LINE('',#54728,#26735); -#23037=LINE('',#54730,#26736); -#23038=LINE('',#54733,#26737); -#23039=LINE('',#54735,#26738); -#23040=LINE('',#54738,#26739); -#23041=LINE('',#54740,#26740); -#23042=LINE('',#54742,#26741); -#23043=LINE('',#54743,#26742); -#23044=LINE('',#54745,#26743); -#23045=LINE('',#54747,#26744); -#23046=LINE('',#54749,#26745); -#23047=LINE('',#54751,#26746); -#23048=LINE('',#54754,#26747); -#23049=LINE('',#54756,#26748); -#23050=LINE('',#54758,#26749); -#23051=LINE('',#54760,#26750); -#23052=LINE('',#54762,#26751); -#23053=LINE('',#54764,#26752); -#23054=LINE('',#54767,#26753); -#23055=LINE('',#54769,#26754); -#23056=LINE('',#54772,#26755); -#23057=LINE('',#54774,#26756); -#23058=LINE('',#54776,#26757); -#23059=LINE('',#54777,#26758); -#23060=LINE('',#54779,#26759); -#23061=LINE('',#54781,#26760); -#23062=LINE('',#54783,#26761); -#23063=LINE('',#54785,#26762); -#23064=LINE('',#54788,#26763); -#23065=LINE('',#54790,#26764); -#23066=LINE('',#54792,#26765); -#23067=LINE('',#54794,#26766); -#23068=LINE('',#54796,#26767); -#23069=LINE('',#54798,#26768); -#23070=LINE('',#54801,#26769); -#23071=LINE('',#54803,#26770); -#23072=LINE('',#54806,#26771); -#23073=LINE('',#54808,#26772); -#23074=LINE('',#54810,#26773); -#23075=LINE('',#54811,#26774); -#23076=LINE('',#54813,#26775); -#23077=LINE('',#54815,#26776); -#23078=LINE('',#54817,#26777); -#23079=LINE('',#54819,#26778); -#23080=LINE('',#54822,#26779); -#23081=LINE('',#54824,#26780); -#23082=LINE('',#54826,#26781); -#23083=LINE('',#54828,#26782); -#23084=LINE('',#54830,#26783); -#23085=LINE('',#54832,#26784); -#23086=LINE('',#54835,#26785); -#23087=LINE('',#54837,#26786); -#23088=LINE('',#54840,#26787); -#23089=LINE('',#54842,#26788); -#23090=LINE('',#54844,#26789); -#23091=LINE('',#54845,#26790); -#23092=LINE('',#54847,#26791); -#23093=LINE('',#54849,#26792); -#23094=LINE('',#54851,#26793); -#23095=LINE('',#54853,#26794); -#23096=LINE('',#54856,#26795); -#23097=LINE('',#54858,#26796); -#23098=LINE('',#54860,#26797); -#23099=LINE('',#54862,#26798); -#23100=LINE('',#54864,#26799); -#23101=LINE('',#54866,#26800); -#23102=LINE('',#54869,#26801); -#23103=LINE('',#54871,#26802); -#23104=LINE('',#54874,#26803); -#23105=LINE('',#54876,#26804); -#23106=LINE('',#54878,#26805); -#23107=LINE('',#54879,#26806); -#23108=LINE('',#54881,#26807); -#23109=LINE('',#54883,#26808); -#23110=LINE('',#54885,#26809); -#23111=LINE('',#54887,#26810); -#23112=LINE('',#54890,#26811); -#23113=LINE('',#54892,#26812); -#23114=LINE('',#54894,#26813); -#23115=LINE('',#54896,#26814); -#23116=LINE('',#54898,#26815); -#23117=LINE('',#54900,#26816); -#23118=LINE('',#54903,#26817); -#23119=LINE('',#54905,#26818); -#23120=LINE('',#54908,#26819); -#23121=LINE('',#54910,#26820); -#23122=LINE('',#54912,#26821); -#23123=LINE('',#54913,#26822); -#23124=LINE('',#54915,#26823); -#23125=LINE('',#54917,#26824); -#23126=LINE('',#54919,#26825); -#23127=LINE('',#54921,#26826); -#23128=LINE('',#54924,#26827); -#23129=LINE('',#54926,#26828); -#23130=LINE('',#54928,#26829); -#23131=LINE('',#54930,#26830); -#23132=LINE('',#54932,#26831); -#23133=LINE('',#54934,#26832); -#23134=LINE('',#54937,#26833); -#23135=LINE('',#54939,#26834); -#23136=LINE('',#54942,#26835); -#23137=LINE('',#54944,#26836); -#23138=LINE('',#54946,#26837); -#23139=LINE('',#54947,#26838); -#23140=LINE('',#54949,#26839); -#23141=LINE('',#54951,#26840); -#23142=LINE('',#54953,#26841); -#23143=LINE('',#54955,#26842); -#23144=LINE('',#54958,#26843); -#23145=LINE('',#54960,#26844); -#23146=LINE('',#54962,#26845); -#23147=LINE('',#54964,#26846); -#23148=LINE('',#54966,#26847); -#23149=LINE('',#54968,#26848); -#23150=LINE('',#54971,#26849); -#23151=LINE('',#54973,#26850); -#23152=LINE('',#54976,#26851); -#23153=LINE('',#54978,#26852); -#23154=LINE('',#54980,#26853); -#23155=LINE('',#54981,#26854); -#23156=LINE('',#54983,#26855); -#23157=LINE('',#54985,#26856); -#23158=LINE('',#54987,#26857); -#23159=LINE('',#54989,#26858); -#23160=LINE('',#54992,#26859); -#23161=LINE('',#54994,#26860); -#23162=LINE('',#54996,#26861); -#23163=LINE('',#54998,#26862); -#23164=LINE('',#55000,#26863); -#23165=LINE('',#55002,#26864); -#23166=LINE('',#55005,#26865); -#23167=LINE('',#55007,#26866); -#23168=LINE('',#55010,#26867); -#23169=LINE('',#55011,#26868); -#23170=LINE('',#55013,#26869); -#23171=LINE('',#55015,#26870); -#23172=LINE('',#55017,#26871); -#23173=LINE('',#55019,#26872); -#23174=LINE('',#55022,#26873); -#23175=LINE('',#55024,#26874); -#23176=LINE('',#55026,#26875); -#23177=LINE('',#55028,#26876); -#23178=LINE('',#55030,#26877); -#23179=LINE('',#55032,#26878); -#23180=LINE('',#55034,#26879); -#23181=LINE('',#55035,#26880); -#23182=LINE('',#55038,#26881); -#23183=LINE('',#55040,#26882); -#23184=LINE('',#55044,#26883); -#23185=LINE('',#55045,#26884); -#23186=LINE('',#55047,#26885); -#23187=LINE('',#55049,#26886); -#23188=LINE('',#55051,#26887); -#23189=LINE('',#55053,#26888); -#23190=LINE('',#55056,#26889); -#23191=LINE('',#55058,#26890); -#23192=LINE('',#55060,#26891); -#23193=LINE('',#55062,#26892); -#23194=LINE('',#55064,#26893); -#23195=LINE('',#55066,#26894); -#23196=LINE('',#55068,#26895); -#23197=LINE('',#55069,#26896); -#23198=LINE('',#55072,#26897); -#23199=LINE('',#55074,#26898); -#23200=LINE('',#55078,#26899); -#23201=LINE('',#55079,#26900); -#23202=LINE('',#55081,#26901); -#23203=LINE('',#55083,#26902); -#23204=LINE('',#55085,#26903); -#23205=LINE('',#55087,#26904); -#23206=LINE('',#55090,#26905); -#23207=LINE('',#55092,#26906); -#23208=LINE('',#55094,#26907); -#23209=LINE('',#55096,#26908); -#23210=LINE('',#55098,#26909); -#23211=LINE('',#55100,#26910); -#23212=LINE('',#55102,#26911); -#23213=LINE('',#55103,#26912); -#23214=LINE('',#55106,#26913); -#23215=LINE('',#55108,#26914); -#23216=LINE('',#55112,#26915); -#23217=LINE('',#55113,#26916); -#23218=LINE('',#55115,#26917); -#23219=LINE('',#55117,#26918); -#23220=LINE('',#55119,#26919); -#23221=LINE('',#55121,#26920); -#23222=LINE('',#55124,#26921); -#23223=LINE('',#55126,#26922); -#23224=LINE('',#55128,#26923); -#23225=LINE('',#55130,#26924); -#23226=LINE('',#55132,#26925); -#23227=LINE('',#55134,#26926); -#23228=LINE('',#55136,#26927); -#23229=LINE('',#55137,#26928); -#23230=LINE('',#55140,#26929); -#23231=LINE('',#55142,#26930); -#23232=LINE('',#55146,#26931); -#23233=LINE('',#55147,#26932); -#23234=LINE('',#55149,#26933); -#23235=LINE('',#55151,#26934); -#23236=LINE('',#55153,#26935); -#23237=LINE('',#55155,#26936); -#23238=LINE('',#55158,#26937); -#23239=LINE('',#55160,#26938); -#23240=LINE('',#55162,#26939); -#23241=LINE('',#55164,#26940); -#23242=LINE('',#55166,#26941); -#23243=LINE('',#55168,#26942); -#23244=LINE('',#55170,#26943); -#23245=LINE('',#55171,#26944); -#23246=LINE('',#55174,#26945); -#23247=LINE('',#55176,#26946); -#23248=LINE('',#55180,#26947); -#23249=LINE('',#55181,#26948); -#23250=LINE('',#55183,#26949); -#23251=LINE('',#55185,#26950); -#23252=LINE('',#55187,#26951); -#23253=LINE('',#55189,#26952); -#23254=LINE('',#55192,#26953); -#23255=LINE('',#55194,#26954); -#23256=LINE('',#55196,#26955); -#23257=LINE('',#55198,#26956); -#23258=LINE('',#55200,#26957); -#23259=LINE('',#55202,#26958); -#23260=LINE('',#55204,#26959); -#23261=LINE('',#55205,#26960); -#23262=LINE('',#55208,#26961); -#23263=LINE('',#55210,#26962); -#23264=LINE('',#55214,#26963); -#23265=LINE('',#55215,#26964); -#23266=LINE('',#55217,#26965); -#23267=LINE('',#55219,#26966); -#23268=LINE('',#55221,#26967); -#23269=LINE('',#55223,#26968); -#23270=LINE('',#55226,#26969); -#23271=LINE('',#55228,#26970); -#23272=LINE('',#55230,#26971); -#23273=LINE('',#55232,#26972); -#23274=LINE('',#55234,#26973); -#23275=LINE('',#55236,#26974); -#23276=LINE('',#55238,#26975); -#23277=LINE('',#55239,#26976); -#23278=LINE('',#55242,#26977); -#23279=LINE('',#55244,#26978); -#23280=LINE('',#55248,#26979); -#23281=LINE('',#55249,#26980); -#23282=LINE('',#55251,#26981); -#23283=LINE('',#55253,#26982); -#23284=LINE('',#55255,#26983); -#23285=LINE('',#55257,#26984); -#23286=LINE('',#55260,#26985); -#23287=LINE('',#55262,#26986); -#23288=LINE('',#55264,#26987); -#23289=LINE('',#55266,#26988); -#23290=LINE('',#55268,#26989); -#23291=LINE('',#55270,#26990); -#23292=LINE('',#55272,#26991); -#23293=LINE('',#55273,#26992); -#23294=LINE('',#55276,#26993); -#23295=LINE('',#55278,#26994); -#23296=LINE('',#55282,#26995); -#23297=LINE('',#55283,#26996); -#23298=LINE('',#55285,#26997); -#23299=LINE('',#55287,#26998); -#23300=LINE('',#55289,#26999); -#23301=LINE('',#55291,#27000); -#23302=LINE('',#55294,#27001); -#23303=LINE('',#55296,#27002); -#23304=LINE('',#55298,#27003); -#23305=LINE('',#55300,#27004); -#23306=LINE('',#55302,#27005); -#23307=LINE('',#55304,#27006); -#23308=LINE('',#55306,#27007); -#23309=LINE('',#55307,#27008); -#23310=LINE('',#55310,#27009); -#23311=LINE('',#55312,#27010); -#23312=LINE('',#55316,#27011); -#23313=LINE('',#55317,#27012); -#23314=LINE('',#55319,#27013); -#23315=LINE('',#55321,#27014); -#23316=LINE('',#55323,#27015); -#23317=LINE('',#55325,#27016); -#23318=LINE('',#55328,#27017); -#23319=LINE('',#55330,#27018); -#23320=LINE('',#55332,#27019); -#23321=LINE('',#55334,#27020); -#23322=LINE('',#55336,#27021); -#23323=LINE('',#55338,#27022); -#23324=LINE('',#55340,#27023); -#23325=LINE('',#55341,#27024); -#23326=LINE('',#55344,#27025); -#23327=LINE('',#55346,#27026); -#23328=LINE('',#55350,#27027); -#23329=LINE('',#55351,#27028); -#23330=LINE('',#55353,#27029); -#23331=LINE('',#55355,#27030); -#23332=LINE('',#55357,#27031); -#23333=LINE('',#55359,#27032); -#23334=LINE('',#55362,#27033); -#23335=LINE('',#55364,#27034); -#23336=LINE('',#55366,#27035); -#23337=LINE('',#55368,#27036); -#23338=LINE('',#55370,#27037); -#23339=LINE('',#55372,#27038); -#23340=LINE('',#55374,#27039); -#23341=LINE('',#55375,#27040); -#23342=LINE('',#55378,#27041); -#23343=LINE('',#55380,#27042); -#23344=LINE('',#55384,#27043); -#23345=LINE('',#55385,#27044); -#23346=LINE('',#55387,#27045); -#23347=LINE('',#55389,#27046); -#23348=LINE('',#55391,#27047); -#23349=LINE('',#55393,#27048); -#23350=LINE('',#55396,#27049); -#23351=LINE('',#55398,#27050); -#23352=LINE('',#55400,#27051); -#23353=LINE('',#55402,#27052); -#23354=LINE('',#55404,#27053); -#23355=LINE('',#55406,#27054); -#23356=LINE('',#55408,#27055); -#23357=LINE('',#55409,#27056); -#23358=LINE('',#55412,#27057); -#23359=LINE('',#55414,#27058); -#23360=LINE('',#55418,#27059); -#23361=LINE('',#55419,#27060); -#23362=LINE('',#55421,#27061); -#23363=LINE('',#55423,#27062); -#23364=LINE('',#55425,#27063); -#23365=LINE('',#55427,#27064); -#23366=LINE('',#55430,#27065); -#23367=LINE('',#55432,#27066); -#23368=LINE('',#55434,#27067); -#23369=LINE('',#55436,#27068); -#23370=LINE('',#55438,#27069); -#23371=LINE('',#55440,#27070); -#23372=LINE('',#55442,#27071); -#23373=LINE('',#55443,#27072); -#23374=LINE('',#55446,#27073); -#23375=LINE('',#55448,#27074); -#23376=LINE('',#55452,#27075); -#23377=LINE('',#55453,#27076); -#23378=LINE('',#55455,#27077); -#23379=LINE('',#55457,#27078); -#23380=LINE('',#55459,#27079); -#23381=LINE('',#55461,#27080); -#23382=LINE('',#55464,#27081); -#23383=LINE('',#55466,#27082); -#23384=LINE('',#55468,#27083); -#23385=LINE('',#55470,#27084); -#23386=LINE('',#55472,#27085); -#23387=LINE('',#55474,#27086); -#23388=LINE('',#55476,#27087); -#23389=LINE('',#55477,#27088); -#23390=LINE('',#55480,#27089); -#23391=LINE('',#55482,#27090); -#23392=LINE('',#55486,#27091); -#23393=LINE('',#55487,#27092); -#23394=LINE('',#55489,#27093); -#23395=LINE('',#55491,#27094); -#23396=LINE('',#55493,#27095); -#23397=LINE('',#55495,#27096); -#23398=LINE('',#55498,#27097); -#23399=LINE('',#55500,#27098); -#23400=LINE('',#55502,#27099); -#23401=LINE('',#55504,#27100); -#23402=LINE('',#55506,#27101); -#23403=LINE('',#55508,#27102); -#23404=LINE('',#55510,#27103); -#23405=LINE('',#55511,#27104); -#23406=LINE('',#55514,#27105); -#23407=LINE('',#55516,#27106); -#23408=LINE('',#55520,#27107); -#23409=LINE('',#55521,#27108); -#23410=LINE('',#55523,#27109); -#23411=LINE('',#55525,#27110); -#23412=LINE('',#55527,#27111); -#23413=LINE('',#55529,#27112); -#23414=LINE('',#55532,#27113); -#23415=LINE('',#55534,#27114); -#23416=LINE('',#55536,#27115); -#23417=LINE('',#55538,#27116); -#23418=LINE('',#55540,#27117); -#23419=LINE('',#55542,#27118); -#23420=LINE('',#55544,#27119); -#23421=LINE('',#55545,#27120); -#23422=LINE('',#55548,#27121); -#23423=LINE('',#55550,#27122); -#23424=LINE('',#55554,#27123); -#23425=LINE('',#55555,#27124); -#23426=LINE('',#55557,#27125); -#23427=LINE('',#55559,#27126); -#23428=LINE('',#55561,#27127); -#23429=LINE('',#55563,#27128); -#23430=LINE('',#55566,#27129); -#23431=LINE('',#55568,#27130); -#23432=LINE('',#55570,#27131); -#23433=LINE('',#55572,#27132); -#23434=LINE('',#55574,#27133); -#23435=LINE('',#55576,#27134); -#23436=LINE('',#55578,#27135); -#23437=LINE('',#55579,#27136); -#23438=LINE('',#55582,#27137); -#23439=LINE('',#55584,#27138); -#23440=LINE('',#55588,#27139); -#23441=LINE('',#55589,#27140); -#23442=LINE('',#55591,#27141); -#23443=LINE('',#55593,#27142); -#23444=LINE('',#55595,#27143); -#23445=LINE('',#55597,#27144); -#23446=LINE('',#55600,#27145); -#23447=LINE('',#55602,#27146); -#23448=LINE('',#55604,#27147); -#23449=LINE('',#55606,#27148); -#23450=LINE('',#55608,#27149); -#23451=LINE('',#55610,#27150); -#23452=LINE('',#55612,#27151); -#23453=LINE('',#55613,#27152); -#23454=LINE('',#55616,#27153); -#23455=LINE('',#55618,#27154); -#23456=LINE('',#55622,#27155); -#23457=LINE('',#55623,#27156); -#23458=LINE('',#55625,#27157); -#23459=LINE('',#55627,#27158); -#23460=LINE('',#55629,#27159); -#23461=LINE('',#55631,#27160); -#23462=LINE('',#55634,#27161); -#23463=LINE('',#55636,#27162); -#23464=LINE('',#55638,#27163); -#23465=LINE('',#55640,#27164); -#23466=LINE('',#55642,#27165); -#23467=LINE('',#55644,#27166); -#23468=LINE('',#55646,#27167); -#23469=LINE('',#55647,#27168); -#23470=LINE('',#55650,#27169); -#23471=LINE('',#55652,#27170); -#23472=VECTOR('',#36087,1000.); -#23473=VECTOR('',#36088,1000.); -#23474=VECTOR('',#36089,1000.); -#23475=VECTOR('',#36090,1000.); -#23476=VECTOR('',#36091,1000.); -#23477=VECTOR('',#36092,1000.); -#23478=VECTOR('',#36095,1000.); -#23479=VECTOR('',#36096,1000.); -#23480=VECTOR('',#36097,1000.); -#23481=VECTOR('',#36098,1000.); -#23482=VECTOR('',#36099,1000.); -#23483=VECTOR('',#36100,1000.); -#23484=VECTOR('',#36103,1000.); -#23485=VECTOR('',#36104,1000.); -#23486=VECTOR('',#36105,1000.); -#23487=VECTOR('',#36106,1000.); -#23488=VECTOR('',#36107,1000.); -#23489=VECTOR('',#36108,1000.); -#23490=VECTOR('',#36109,1000.); -#23491=VECTOR('',#36110,1000.); -#23492=VECTOR('',#36111,1000.); -#23493=VECTOR('',#36112,1000.); -#23494=VECTOR('',#36113,1000.); -#23495=VECTOR('',#36114,1000.); -#23496=VECTOR('',#36117,1000.); -#23497=VECTOR('',#36120,1000.); -#23498=VECTOR('',#36121,1000.); -#23499=VECTOR('',#36122,1000.); -#23500=VECTOR('',#36123,1000.); -#23501=VECTOR('',#36124,1000.); -#23502=VECTOR('',#36125,1000.); -#23503=VECTOR('',#36126,1000.); -#23504=VECTOR('',#36127,1000.); -#23505=VECTOR('',#36128,1000.); -#23506=VECTOR('',#36129,1000.); -#23507=VECTOR('',#36130,1000.); -#23508=VECTOR('',#36131,1000.); -#23509=VECTOR('',#36132,1000.); -#23510=VECTOR('',#36133,1000.); -#23511=VECTOR('',#36134,1000.); -#23512=VECTOR('',#36137,1000.); -#23513=VECTOR('',#36140,1000.); -#23514=VECTOR('',#36151,1000.); -#23515=VECTOR('',#36154,1000.); -#23516=VECTOR('',#36155,1000.); -#23517=VECTOR('',#36158,1000.); -#23518=VECTOR('',#36161,1000.); -#23519=VECTOR('',#36164,1000.); -#23520=VECTOR('',#36167,1000.); -#23521=VECTOR('',#36170,1000.); -#23522=VECTOR('',#36181,1000.); -#23523=VECTOR('',#36184,1000.); -#23524=VECTOR('',#36189,1000.); -#23525=VECTOR('',#36190,1000.); -#23526=VECTOR('',#36191,1000.); -#23527=VECTOR('',#36192,1000.); -#23528=VECTOR('',#36193,1000.); -#23529=VECTOR('',#36194,1000.); -#23530=VECTOR('',#36197,1000.); -#23531=VECTOR('',#36198,1000.); -#23532=VECTOR('',#36199,1000.); -#23533=VECTOR('',#36200,1000.); -#23534=VECTOR('',#36201,1000.); -#23535=VECTOR('',#36202,1000.); -#23536=VECTOR('',#36203,1000.); -#23537=VECTOR('',#36204,1000.); -#23538=VECTOR('',#36205,1000.); -#23539=VECTOR('',#36206,1000.); -#23540=VECTOR('',#36207,1000.); -#23541=VECTOR('',#36208,1000.); -#23542=VECTOR('',#36209,1000.); -#23543=VECTOR('',#36210,1000.); -#23544=VECTOR('',#36211,1000.); -#23545=VECTOR('',#36212,1000.); -#23546=VECTOR('',#36213,1000.); -#23547=VECTOR('',#36214,1000.); -#23548=VECTOR('',#36215,1000.); -#23549=VECTOR('',#36216,1000.); -#23550=VECTOR('',#36217,1000.); -#23551=VECTOR('',#36218,1000.); -#23552=VECTOR('',#36219,1000.); -#23553=VECTOR('',#36220,1000.); -#23554=VECTOR('',#36221,1000.); -#23555=VECTOR('',#36222,1000.); -#23556=VECTOR('',#36223,1000.); -#23557=VECTOR('',#36224,1000.); -#23558=VECTOR('',#36225,1000.); -#23559=VECTOR('',#36226,1000.); -#23560=VECTOR('',#36227,1000.); -#23561=VECTOR('',#36228,1000.); -#23562=VECTOR('',#36229,1000.); -#23563=VECTOR('',#36230,1000.); -#23564=VECTOR('',#36231,1000.); -#23565=VECTOR('',#36232,1000.); -#23566=VECTOR('',#36233,1000.); -#23567=VECTOR('',#36234,1000.); -#23568=VECTOR('',#36235,1000.); -#23569=VECTOR('',#36236,1000.); -#23570=VECTOR('',#36237,1000.); -#23571=VECTOR('',#36238,1000.); -#23572=VECTOR('',#36239,1000.); -#23573=VECTOR('',#36240,1000.); -#23574=VECTOR('',#36241,1000.); -#23575=VECTOR('',#36242,1000.); -#23576=VECTOR('',#36243,1000.); -#23577=VECTOR('',#36244,1000.); -#23578=VECTOR('',#36245,1000.); -#23579=VECTOR('',#36246,1000.); -#23580=VECTOR('',#36247,1000.); -#23581=VECTOR('',#36248,1000.); -#23582=VECTOR('',#36249,1000.); -#23583=VECTOR('',#36250,1000.); -#23584=VECTOR('',#36251,1000.); -#23585=VECTOR('',#36252,1000.); -#23586=VECTOR('',#36253,1000.); -#23587=VECTOR('',#36254,1000.); -#23588=VECTOR('',#36255,1000.); -#23589=VECTOR('',#36256,1000.); -#23590=VECTOR('',#36257,1000.); -#23591=VECTOR('',#36258,1000.); -#23592=VECTOR('',#36259,1000.); -#23593=VECTOR('',#36260,1000.); -#23594=VECTOR('',#36261,1000.); -#23595=VECTOR('',#36262,1000.); -#23596=VECTOR('',#36263,1000.); -#23597=VECTOR('',#36264,1000.); -#23598=VECTOR('',#36265,1000.); -#23599=VECTOR('',#36266,1000.); -#23600=VECTOR('',#36267,1000.); -#23601=VECTOR('',#36268,1000.); -#23602=VECTOR('',#36269,1000.); -#23603=VECTOR('',#36270,1000.); -#23604=VECTOR('',#36271,1000.); -#23605=VECTOR('',#36272,1000.); -#23606=VECTOR('',#36273,1000.); -#23607=VECTOR('',#36274,1000.); -#23608=VECTOR('',#36275,1000.); -#23609=VECTOR('',#36276,1000.); -#23610=VECTOR('',#36277,1000.); -#23611=VECTOR('',#36278,1000.); -#23612=VECTOR('',#36279,1000.); -#23613=VECTOR('',#36280,1000.); -#23614=VECTOR('',#36281,1000.); -#23615=VECTOR('',#36282,1000.); -#23616=VECTOR('',#36283,1000.); -#23617=VECTOR('',#36284,1000.); -#23618=VECTOR('',#36285,1000.); -#23619=VECTOR('',#36286,1000.); -#23620=VECTOR('',#36287,1000.); -#23621=VECTOR('',#36288,1000.); -#23622=VECTOR('',#36289,1000.); -#23623=VECTOR('',#36290,1000.); -#23624=VECTOR('',#36291,1000.); -#23625=VECTOR('',#36292,1000.); -#23626=VECTOR('',#36293,1000.); -#23627=VECTOR('',#36294,1000.); -#23628=VECTOR('',#36295,1000.); -#23629=VECTOR('',#36296,1000.); -#23630=VECTOR('',#36297,1000.); -#23631=VECTOR('',#36298,1000.); -#23632=VECTOR('',#36299,1000.); -#23633=VECTOR('',#36300,1000.); -#23634=VECTOR('',#36301,1000.); -#23635=VECTOR('',#36302,1000.); -#23636=VECTOR('',#36303,1000.); -#23637=VECTOR('',#36304,1000.); -#23638=VECTOR('',#36305,1000.); -#23639=VECTOR('',#36306,1000.); -#23640=VECTOR('',#36307,1000.); -#23641=VECTOR('',#36308,1000.); -#23642=VECTOR('',#36309,1000.); -#23643=VECTOR('',#36310,1000.); -#23644=VECTOR('',#36311,1000.); -#23645=VECTOR('',#36312,1000.); -#23646=VECTOR('',#36313,1000.); -#23647=VECTOR('',#36314,1000.); -#23648=VECTOR('',#36315,1000.); -#23649=VECTOR('',#36316,1000.); -#23650=VECTOR('',#36317,1000.); -#23651=VECTOR('',#36318,1000.); -#23652=VECTOR('',#36319,1000.); -#23653=VECTOR('',#36320,1000.); -#23654=VECTOR('',#36321,1000.); -#23655=VECTOR('',#36322,1000.); -#23656=VECTOR('',#36323,1000.); -#23657=VECTOR('',#36324,1000.); -#23658=VECTOR('',#36325,1000.); -#23659=VECTOR('',#36326,1000.); -#23660=VECTOR('',#36327,1000.); -#23661=VECTOR('',#36328,1000.); -#23662=VECTOR('',#36329,1000.); -#23663=VECTOR('',#36330,1000.); -#23664=VECTOR('',#36331,1000.); -#23665=VECTOR('',#36332,1000.); -#23666=VECTOR('',#36333,1000.); -#23667=VECTOR('',#36334,1000.); -#23668=VECTOR('',#36335,1000.); -#23669=VECTOR('',#36336,1000.); -#23670=VECTOR('',#36337,1000.); -#23671=VECTOR('',#36338,1000.); -#23672=VECTOR('',#36339,1000.); -#23673=VECTOR('',#36340,1000.); -#23674=VECTOR('',#36341,1000.); -#23675=VECTOR('',#36342,1000.); -#23676=VECTOR('',#36343,1000.); -#23677=VECTOR('',#36344,1000.); -#23678=VECTOR('',#36345,1000.); -#23679=VECTOR('',#36346,1000.); -#23680=VECTOR('',#36347,1000.); -#23681=VECTOR('',#36348,1000.); -#23682=VECTOR('',#36349,1000.); -#23683=VECTOR('',#36350,1000.); -#23684=VECTOR('',#36351,1000.); -#23685=VECTOR('',#36352,1000.); -#23686=VECTOR('',#36353,1000.); -#23687=VECTOR('',#36354,1000.); -#23688=VECTOR('',#36355,1000.); -#23689=VECTOR('',#36356,1000.); -#23690=VECTOR('',#36357,1000.); -#23691=VECTOR('',#36358,1000.); -#23692=VECTOR('',#36359,1000.); -#23693=VECTOR('',#36360,1000.); -#23694=VECTOR('',#36361,1000.); -#23695=VECTOR('',#36362,1000.); -#23696=VECTOR('',#36363,1000.); -#23697=VECTOR('',#36364,1000.); -#23698=VECTOR('',#36365,1000.); -#23699=VECTOR('',#36366,1000.); -#23700=VECTOR('',#36367,1000.); -#23701=VECTOR('',#36368,1000.); -#23702=VECTOR('',#36369,1000.); -#23703=VECTOR('',#36370,1000.); -#23704=VECTOR('',#36371,1000.); -#23705=VECTOR('',#36372,1000.); -#23706=VECTOR('',#36373,1000.); -#23707=VECTOR('',#36374,1000.); -#23708=VECTOR('',#36375,1000.); -#23709=VECTOR('',#36376,1000.); -#23710=VECTOR('',#36377,1000.); -#23711=VECTOR('',#36378,1000.); -#23712=VECTOR('',#36379,1000.); -#23713=VECTOR('',#36380,1000.); -#23714=VECTOR('',#36381,1000.); -#23715=VECTOR('',#36382,1000.); -#23716=VECTOR('',#36383,1000.); -#23717=VECTOR('',#36384,1000.); -#23718=VECTOR('',#36385,1000.); -#23719=VECTOR('',#36386,1000.); -#23720=VECTOR('',#36387,1000.); -#23721=VECTOR('',#36388,1000.); -#23722=VECTOR('',#36389,1000.); -#23723=VECTOR('',#36390,1000.); -#23724=VECTOR('',#36391,1000.); -#23725=VECTOR('',#36392,1000.); -#23726=VECTOR('',#36393,1000.); -#23727=VECTOR('',#36394,1000.); -#23728=VECTOR('',#36395,1000.); -#23729=VECTOR('',#36396,1000.); -#23730=VECTOR('',#36397,1000.); -#23731=VECTOR('',#36398,1000.); -#23732=VECTOR('',#36399,1000.); -#23733=VECTOR('',#36400,1000.); -#23734=VECTOR('',#36401,1000.); -#23735=VECTOR('',#36402,1000.); -#23736=VECTOR('',#36403,1000.); -#23737=VECTOR('',#36404,1000.); -#23738=VECTOR('',#36405,1000.); -#23739=VECTOR('',#36406,1000.); -#23740=VECTOR('',#36407,1000.); -#23741=VECTOR('',#36408,1000.); -#23742=VECTOR('',#36409,1000.); -#23743=VECTOR('',#36410,1000.); -#23744=VECTOR('',#36411,1000.); -#23745=VECTOR('',#36412,1000.); -#23746=VECTOR('',#36413,1000.); -#23747=VECTOR('',#36414,1000.); -#23748=VECTOR('',#36415,1000.); -#23749=VECTOR('',#36416,1000.); -#23750=VECTOR('',#36417,1000.); -#23751=VECTOR('',#36418,1000.); -#23752=VECTOR('',#36419,1000.); -#23753=VECTOR('',#36420,1000.); -#23754=VECTOR('',#36421,1000.); -#23755=VECTOR('',#36422,1000.); -#23756=VECTOR('',#36423,1000.); -#23757=VECTOR('',#36424,1000.); -#23758=VECTOR('',#36425,1000.); -#23759=VECTOR('',#36426,1000.); -#23760=VECTOR('',#36427,1000.); -#23761=VECTOR('',#36428,1000.); -#23762=VECTOR('',#36429,1000.); -#23763=VECTOR('',#36430,1000.); -#23764=VECTOR('',#36431,1000.); -#23765=VECTOR('',#36432,1000.); -#23766=VECTOR('',#36433,1000.); -#23767=VECTOR('',#36434,1000.); -#23768=VECTOR('',#36435,1000.); -#23769=VECTOR('',#36436,1000.); -#23770=VECTOR('',#36437,1000.); -#23771=VECTOR('',#36438,1000.); -#23772=VECTOR('',#36439,1000.); -#23773=VECTOR('',#36442,1000.); -#23774=VECTOR('',#36443,1000.); -#23775=VECTOR('',#36444,1000.); -#23776=VECTOR('',#36445,1000.); -#23777=VECTOR('',#36446,1000.); -#23778=VECTOR('',#36447,1000.); -#23779=VECTOR('',#36450,1000.); -#23780=VECTOR('',#36451,1000.); -#23781=VECTOR('',#36452,1000.); -#23782=VECTOR('',#36453,1000.); -#23783=VECTOR('',#36456,1000.); -#23784=VECTOR('',#36457,1000.); -#23785=VECTOR('',#36458,1000.); -#23786=VECTOR('',#36459,1000.); -#23787=VECTOR('',#36464,1000.); -#23788=VECTOR('',#36465,1000.); -#23789=VECTOR('',#36466,1000.); -#23790=VECTOR('',#36467,1000.); -#23791=VECTOR('',#36468,1000.); -#23792=VECTOR('',#36469,1000.); -#23793=VECTOR('',#36470,1000.); -#23794=VECTOR('',#36473,1000.); -#23795=VECTOR('',#36476,1000.); -#23796=VECTOR('',#36477,1000.); -#23797=VECTOR('',#36478,1000.); -#23798=VECTOR('',#36479,1000.); -#23799=VECTOR('',#36480,1000.); -#23800=VECTOR('',#36481,1000.); -#23801=VECTOR('',#36484,1000.); -#23802=VECTOR('',#36485,1000.); -#23803=VECTOR('',#36486,1000.); -#23804=VECTOR('',#36487,1000.); -#23805=VECTOR('',#36490,1000.); -#23806=VECTOR('',#36491,1000.); -#23807=VECTOR('',#36492,1000.); -#23808=VECTOR('',#36493,1000.); -#23809=VECTOR('',#36498,1000.); -#23810=VECTOR('',#36499,1000.); -#23811=VECTOR('',#36500,1000.); -#23812=VECTOR('',#36501,1000.); -#23813=VECTOR('',#36502,1000.); -#23814=VECTOR('',#36503,1000.); -#23815=VECTOR('',#36504,1000.); -#23816=VECTOR('',#36507,1000.); -#23817=VECTOR('',#36510,1000.); -#23818=VECTOR('',#36511,1000.); -#23819=VECTOR('',#36512,1000.); -#23820=VECTOR('',#36513,1000.); -#23821=VECTOR('',#36514,1000.); -#23822=VECTOR('',#36515,1000.); -#23823=VECTOR('',#36518,1000.); -#23824=VECTOR('',#36519,1000.); -#23825=VECTOR('',#36520,1000.); -#23826=VECTOR('',#36521,1000.); -#23827=VECTOR('',#36524,1000.); -#23828=VECTOR('',#36525,1000.); -#23829=VECTOR('',#36526,1000.); -#23830=VECTOR('',#36527,1000.); -#23831=VECTOR('',#36532,1000.); -#23832=VECTOR('',#36533,1000.); -#23833=VECTOR('',#36534,1000.); -#23834=VECTOR('',#36535,1000.); -#23835=VECTOR('',#36536,1000.); -#23836=VECTOR('',#36537,1000.); -#23837=VECTOR('',#36538,1000.); -#23838=VECTOR('',#36541,1000.); -#23839=VECTOR('',#36544,1000.); -#23840=VECTOR('',#36545,1000.); -#23841=VECTOR('',#36546,1000.); -#23842=VECTOR('',#36547,1000.); -#23843=VECTOR('',#36548,1000.); -#23844=VECTOR('',#36549,1000.); -#23845=VECTOR('',#36552,1000.); -#23846=VECTOR('',#36553,1000.); -#23847=VECTOR('',#36554,1000.); -#23848=VECTOR('',#36555,1000.); -#23849=VECTOR('',#36558,1000.); -#23850=VECTOR('',#36559,1000.); -#23851=VECTOR('',#36560,1000.); -#23852=VECTOR('',#36561,1000.); -#23853=VECTOR('',#36566,1000.); -#23854=VECTOR('',#36567,1000.); -#23855=VECTOR('',#36568,1000.); -#23856=VECTOR('',#36569,1000.); -#23857=VECTOR('',#36570,1000.); -#23858=VECTOR('',#36571,1000.); -#23859=VECTOR('',#36572,1000.); -#23860=VECTOR('',#36575,1000.); -#23861=VECTOR('',#36578,1000.); -#23862=VECTOR('',#36579,1000.); -#23863=VECTOR('',#36580,1000.); -#23864=VECTOR('',#36581,1000.); -#23865=VECTOR('',#36582,1000.); -#23866=VECTOR('',#36583,1000.); -#23867=VECTOR('',#36586,1000.); -#23868=VECTOR('',#36587,1000.); -#23869=VECTOR('',#36588,1000.); -#23870=VECTOR('',#36589,1000.); -#23871=VECTOR('',#36592,1000.); -#23872=VECTOR('',#36593,1000.); -#23873=VECTOR('',#36594,1000.); -#23874=VECTOR('',#36595,1000.); -#23875=VECTOR('',#36600,1000.); -#23876=VECTOR('',#36601,1000.); -#23877=VECTOR('',#36602,1000.); -#23878=VECTOR('',#36603,1000.); -#23879=VECTOR('',#36604,1000.); -#23880=VECTOR('',#36605,1000.); -#23881=VECTOR('',#36606,1000.); -#23882=VECTOR('',#36609,1000.); -#23883=VECTOR('',#36612,1000.); -#23884=VECTOR('',#36613,1000.); -#23885=VECTOR('',#36614,1000.); -#23886=VECTOR('',#36615,1000.); -#23887=VECTOR('',#36616,1000.); -#23888=VECTOR('',#36617,1000.); -#23889=VECTOR('',#36620,1000.); -#23890=VECTOR('',#36621,1000.); -#23891=VECTOR('',#36622,1000.); -#23892=VECTOR('',#36623,1000.); -#23893=VECTOR('',#36626,1000.); -#23894=VECTOR('',#36627,1000.); -#23895=VECTOR('',#36628,1000.); -#23896=VECTOR('',#36629,1000.); -#23897=VECTOR('',#36634,1000.); -#23898=VECTOR('',#36635,1000.); -#23899=VECTOR('',#36636,1000.); -#23900=VECTOR('',#36637,1000.); -#23901=VECTOR('',#36638,1000.); -#23902=VECTOR('',#36639,1000.); -#23903=VECTOR('',#36640,1000.); -#23904=VECTOR('',#36643,1000.); -#23905=VECTOR('',#36646,1000.); -#23906=VECTOR('',#36647,1000.); -#23907=VECTOR('',#36648,1000.); -#23908=VECTOR('',#36649,1000.); -#23909=VECTOR('',#36650,1000.); -#23910=VECTOR('',#36651,1000.); -#23911=VECTOR('',#36654,1000.); -#23912=VECTOR('',#36655,1000.); -#23913=VECTOR('',#36656,1000.); -#23914=VECTOR('',#36657,1000.); -#23915=VECTOR('',#36660,1000.); -#23916=VECTOR('',#36661,1000.); -#23917=VECTOR('',#36662,1000.); -#23918=VECTOR('',#36663,1000.); -#23919=VECTOR('',#36668,1000.); -#23920=VECTOR('',#36669,1000.); -#23921=VECTOR('',#36670,1000.); -#23922=VECTOR('',#36671,1000.); -#23923=VECTOR('',#36672,1000.); -#23924=VECTOR('',#36673,1000.); -#23925=VECTOR('',#36674,1000.); -#23926=VECTOR('',#36677,1000.); -#23927=VECTOR('',#36680,1000.); -#23928=VECTOR('',#36681,1000.); -#23929=VECTOR('',#36682,1000.); -#23930=VECTOR('',#36683,1000.); -#23931=VECTOR('',#36684,1000.); -#23932=VECTOR('',#36685,1000.); -#23933=VECTOR('',#36688,1000.); -#23934=VECTOR('',#36689,1000.); -#23935=VECTOR('',#36690,1000.); -#23936=VECTOR('',#36691,1000.); -#23937=VECTOR('',#36694,1000.); -#23938=VECTOR('',#36695,1000.); -#23939=VECTOR('',#36696,1000.); -#23940=VECTOR('',#36697,1000.); -#23941=VECTOR('',#36702,1000.); -#23942=VECTOR('',#36703,1000.); -#23943=VECTOR('',#36704,1000.); -#23944=VECTOR('',#36705,1000.); -#23945=VECTOR('',#36706,1000.); -#23946=VECTOR('',#36707,1000.); -#23947=VECTOR('',#36708,1000.); -#23948=VECTOR('',#36711,1000.); -#23949=VECTOR('',#36714,1000.); -#23950=VECTOR('',#36715,1000.); -#23951=VECTOR('',#36716,1000.); -#23952=VECTOR('',#36717,1000.); -#23953=VECTOR('',#36718,1000.); -#23954=VECTOR('',#36719,1000.); -#23955=VECTOR('',#36722,1000.); -#23956=VECTOR('',#36723,1000.); -#23957=VECTOR('',#36724,1000.); -#23958=VECTOR('',#36725,1000.); -#23959=VECTOR('',#36728,1000.); -#23960=VECTOR('',#36729,1000.); -#23961=VECTOR('',#36730,1000.); -#23962=VECTOR('',#36731,1000.); -#23963=VECTOR('',#36736,1000.); -#23964=VECTOR('',#36737,1000.); -#23965=VECTOR('',#36738,1000.); -#23966=VECTOR('',#36739,1000.); -#23967=VECTOR('',#36740,1000.); -#23968=VECTOR('',#36741,1000.); -#23969=VECTOR('',#36742,1000.); -#23970=VECTOR('',#36745,1000.); -#23971=VECTOR('',#36748,1000.); -#23972=VECTOR('',#36749,1000.); -#23973=VECTOR('',#36750,1000.); -#23974=VECTOR('',#36751,1000.); -#23975=VECTOR('',#36752,1000.); -#23976=VECTOR('',#36753,1000.); -#23977=VECTOR('',#36756,1000.); -#23978=VECTOR('',#36757,1000.); -#23979=VECTOR('',#36758,1000.); -#23980=VECTOR('',#36759,1000.); -#23981=VECTOR('',#36762,1000.); -#23982=VECTOR('',#36763,1000.); -#23983=VECTOR('',#36764,1000.); -#23984=VECTOR('',#36765,1000.); -#23985=VECTOR('',#36770,1000.); -#23986=VECTOR('',#36771,1000.); -#23987=VECTOR('',#36772,1000.); -#23988=VECTOR('',#36773,1000.); -#23989=VECTOR('',#36774,1000.); -#23990=VECTOR('',#36775,1000.); -#23991=VECTOR('',#36776,1000.); -#23992=VECTOR('',#36779,1000.); -#23993=VECTOR('',#36782,1000.); -#23994=VECTOR('',#36783,1000.); -#23995=VECTOR('',#36784,1000.); -#23996=VECTOR('',#36785,1000.); -#23997=VECTOR('',#36786,1000.); -#23998=VECTOR('',#36787,1000.); -#23999=VECTOR('',#36790,1000.); -#24000=VECTOR('',#36791,1000.); -#24001=VECTOR('',#36792,1000.); -#24002=VECTOR('',#36793,1000.); -#24003=VECTOR('',#36796,1000.); -#24004=VECTOR('',#36797,1000.); -#24005=VECTOR('',#36798,1000.); -#24006=VECTOR('',#36799,1000.); -#24007=VECTOR('',#36804,1000.); -#24008=VECTOR('',#36805,1000.); -#24009=VECTOR('',#36806,1000.); -#24010=VECTOR('',#36807,1000.); -#24011=VECTOR('',#36808,1000.); -#24012=VECTOR('',#36809,1000.); -#24013=VECTOR('',#36810,1000.); -#24014=VECTOR('',#36813,1000.); -#24015=VECTOR('',#36816,1000.); -#24016=VECTOR('',#36817,1000.); -#24017=VECTOR('',#36818,1000.); -#24018=VECTOR('',#36819,1000.); -#24019=VECTOR('',#36820,1000.); -#24020=VECTOR('',#36821,1000.); -#24021=VECTOR('',#36824,1000.); -#24022=VECTOR('',#36825,1000.); -#24023=VECTOR('',#36826,1000.); -#24024=VECTOR('',#36827,1000.); -#24025=VECTOR('',#36830,1000.); -#24026=VECTOR('',#36831,1000.); -#24027=VECTOR('',#36832,1000.); -#24028=VECTOR('',#36833,1000.); -#24029=VECTOR('',#36838,1000.); -#24030=VECTOR('',#36839,1000.); -#24031=VECTOR('',#36840,1000.); -#24032=VECTOR('',#36841,1000.); -#24033=VECTOR('',#36842,1000.); -#24034=VECTOR('',#36843,1000.); -#24035=VECTOR('',#36844,1000.); -#24036=VECTOR('',#36847,1000.); -#24037=VECTOR('',#36850,1000.); -#24038=VECTOR('',#36851,1000.); -#24039=VECTOR('',#36852,1000.); -#24040=VECTOR('',#36853,1000.); -#24041=VECTOR('',#36854,1000.); -#24042=VECTOR('',#36855,1000.); -#24043=VECTOR('',#36858,1000.); -#24044=VECTOR('',#36859,1000.); -#24045=VECTOR('',#36860,1000.); -#24046=VECTOR('',#36861,1000.); -#24047=VECTOR('',#36864,1000.); -#24048=VECTOR('',#36865,1000.); -#24049=VECTOR('',#36866,1000.); -#24050=VECTOR('',#36867,1000.); -#24051=VECTOR('',#36872,1000.); -#24052=VECTOR('',#36873,1000.); -#24053=VECTOR('',#36874,1000.); -#24054=VECTOR('',#36875,1000.); -#24055=VECTOR('',#36876,1000.); -#24056=VECTOR('',#36877,1000.); -#24057=VECTOR('',#36878,1000.); -#24058=VECTOR('',#36881,1000.); -#24059=VECTOR('',#36884,1000.); -#24060=VECTOR('',#36885,1000.); -#24061=VECTOR('',#36886,1000.); -#24062=VECTOR('',#36887,1000.); -#24063=VECTOR('',#36888,1000.); -#24064=VECTOR('',#36889,1000.); -#24065=VECTOR('',#36892,1000.); -#24066=VECTOR('',#36893,1000.); -#24067=VECTOR('',#36894,1000.); -#24068=VECTOR('',#36895,1000.); -#24069=VECTOR('',#36898,1000.); -#24070=VECTOR('',#36899,1000.); -#24071=VECTOR('',#36900,1000.); -#24072=VECTOR('',#36901,1000.); -#24073=VECTOR('',#36906,1000.); -#24074=VECTOR('',#36907,1000.); -#24075=VECTOR('',#36908,1000.); -#24076=VECTOR('',#36909,1000.); -#24077=VECTOR('',#36910,1000.); -#24078=VECTOR('',#36911,1000.); -#24079=VECTOR('',#36912,1000.); -#24080=VECTOR('',#36915,1000.); -#24081=VECTOR('',#36918,1000.); -#24082=VECTOR('',#36919,1000.); -#24083=VECTOR('',#36920,1000.); -#24084=VECTOR('',#36921,1000.); -#24085=VECTOR('',#36922,1000.); -#24086=VECTOR('',#36923,1000.); -#24087=VECTOR('',#36926,1000.); -#24088=VECTOR('',#36927,1000.); -#24089=VECTOR('',#36928,1000.); -#24090=VECTOR('',#36929,1000.); -#24091=VECTOR('',#36932,1000.); -#24092=VECTOR('',#36933,1000.); -#24093=VECTOR('',#36934,1000.); -#24094=VECTOR('',#36935,1000.); -#24095=VECTOR('',#36940,1000.); -#24096=VECTOR('',#36941,1000.); -#24097=VECTOR('',#36942,1000.); -#24098=VECTOR('',#36943,1000.); -#24099=VECTOR('',#36944,1000.); -#24100=VECTOR('',#36945,1000.); -#24101=VECTOR('',#36946,1000.); -#24102=VECTOR('',#36949,1000.); -#24103=VECTOR('',#36952,1000.); -#24104=VECTOR('',#36953,1000.); -#24105=VECTOR('',#36954,1000.); -#24106=VECTOR('',#36955,1000.); -#24107=VECTOR('',#36956,1000.); -#24108=VECTOR('',#36957,1000.); -#24109=VECTOR('',#36960,1000.); -#24110=VECTOR('',#36961,1000.); -#24111=VECTOR('',#36962,1000.); -#24112=VECTOR('',#36963,1000.); -#24113=VECTOR('',#36966,1000.); -#24114=VECTOR('',#36967,1000.); -#24115=VECTOR('',#36968,1000.); -#24116=VECTOR('',#36969,1000.); -#24117=VECTOR('',#36974,1000.); -#24118=VECTOR('',#36975,1000.); -#24119=VECTOR('',#36976,1000.); -#24120=VECTOR('',#36977,1000.); -#24121=VECTOR('',#36978,1000.); -#24122=VECTOR('',#36979,1000.); -#24123=VECTOR('',#36980,1000.); -#24124=VECTOR('',#36983,1000.); -#24125=VECTOR('',#36986,1000.); -#24126=VECTOR('',#36987,1000.); -#24127=VECTOR('',#36988,1000.); -#24128=VECTOR('',#36989,1000.); -#24129=VECTOR('',#36990,1000.); -#24130=VECTOR('',#36991,1000.); -#24131=VECTOR('',#36994,1000.); -#24132=VECTOR('',#36995,1000.); -#24133=VECTOR('',#36996,1000.); -#24134=VECTOR('',#36997,1000.); -#24135=VECTOR('',#37000,1000.); -#24136=VECTOR('',#37001,1000.); -#24137=VECTOR('',#37002,1000.); -#24138=VECTOR('',#37003,1000.); -#24139=VECTOR('',#37008,1000.); -#24140=VECTOR('',#37009,1000.); -#24141=VECTOR('',#37010,1000.); -#24142=VECTOR('',#37011,1000.); -#24143=VECTOR('',#37012,1000.); -#24144=VECTOR('',#37013,1000.); -#24145=VECTOR('',#37014,1000.); -#24146=VECTOR('',#37017,1000.); -#24147=VECTOR('',#37020,1000.); -#24148=VECTOR('',#37021,1000.); -#24149=VECTOR('',#37022,1000.); -#24150=VECTOR('',#37023,1000.); -#24151=VECTOR('',#37024,1000.); -#24152=VECTOR('',#37025,1000.); -#24153=VECTOR('',#37028,1000.); -#24154=VECTOR('',#37029,1000.); -#24155=VECTOR('',#37030,1000.); -#24156=VECTOR('',#37031,1000.); -#24157=VECTOR('',#37034,1000.); -#24158=VECTOR('',#37035,1000.); -#24159=VECTOR('',#37036,1000.); -#24160=VECTOR('',#37037,1000.); -#24161=VECTOR('',#37042,1000.); -#24162=VECTOR('',#37043,1000.); -#24163=VECTOR('',#37044,1000.); -#24164=VECTOR('',#37045,1000.); -#24165=VECTOR('',#37046,1000.); -#24166=VECTOR('',#37047,1000.); -#24167=VECTOR('',#37048,1000.); -#24168=VECTOR('',#37051,1000.); -#24169=VECTOR('',#37054,1000.); -#24170=VECTOR('',#37055,1000.); -#24171=VECTOR('',#37056,1000.); -#24172=VECTOR('',#37057,1000.); -#24173=VECTOR('',#37058,1000.); -#24174=VECTOR('',#37059,1000.); -#24175=VECTOR('',#37062,1000.); -#24176=VECTOR('',#37063,1000.); -#24177=VECTOR('',#37064,1000.); -#24178=VECTOR('',#37065,1000.); -#24179=VECTOR('',#37068,1000.); -#24180=VECTOR('',#37069,1000.); -#24181=VECTOR('',#37070,1000.); -#24182=VECTOR('',#37071,1000.); -#24183=VECTOR('',#37076,1000.); -#24184=VECTOR('',#37077,1000.); -#24185=VECTOR('',#37078,1000.); -#24186=VECTOR('',#37079,1000.); -#24187=VECTOR('',#37080,1000.); -#24188=VECTOR('',#37081,1000.); -#24189=VECTOR('',#37082,1000.); -#24190=VECTOR('',#37085,1000.); -#24191=VECTOR('',#37088,1000.); -#24192=VECTOR('',#37089,1000.); -#24193=VECTOR('',#37090,1000.); -#24194=VECTOR('',#37091,1000.); -#24195=VECTOR('',#37092,1000.); -#24196=VECTOR('',#37093,1000.); -#24197=VECTOR('',#37096,1000.); -#24198=VECTOR('',#37097,1000.); -#24199=VECTOR('',#37100,1000.); -#24200=VECTOR('',#37101,1000.); -#24201=VECTOR('',#37102,1000.); -#24202=VECTOR('',#37103,1000.); -#24203=VECTOR('',#37104,1000.); -#24204=VECTOR('',#37105,1000.); -#24205=VECTOR('',#37106,1000.); -#24206=VECTOR('',#37109,1000.); -#24207=VECTOR('',#37110,1000.); -#24208=VECTOR('',#37111,1000.); -#24209=VECTOR('',#37114,1000.); -#24210=VECTOR('',#37115,1000.); -#24211=VECTOR('',#37116,1000.); -#24212=VECTOR('',#37121,1000.); -#24213=VECTOR('',#37122,1000.); -#24214=VECTOR('',#37123,1000.); -#24215=VECTOR('',#37124,1000.); -#24216=VECTOR('',#37125,1000.); -#24217=VECTOR('',#37126,1000.); -#24218=VECTOR('',#37127,1000.); -#24219=VECTOR('',#37130,1000.); -#24220=VECTOR('',#37131,1000.); -#24221=VECTOR('',#37132,1000.); -#24222=VECTOR('',#37133,1000.); -#24223=VECTOR('',#37134,1000.); -#24224=VECTOR('',#37137,1000.); -#24225=VECTOR('',#37140,1000.); -#24226=VECTOR('',#37143,1000.); -#24227=VECTOR('',#37146,1000.); -#24228=VECTOR('',#37149,1000.); -#24229=VECTOR('',#37152,1000.); -#24230=VECTOR('',#37155,1000.); -#24231=VECTOR('',#37158,1000.); -#24232=VECTOR('',#37161,1000.); -#24233=VECTOR('',#37164,1000.); -#24234=VECTOR('',#37167,1000.); -#24235=VECTOR('',#37170,1000.); -#24236=VECTOR('',#37173,1000.); -#24237=VECTOR('',#37176,1000.); -#24238=VECTOR('',#37179,1000.); -#24239=VECTOR('',#37182,1000.); -#24240=VECTOR('',#37185,1000.); -#24241=VECTOR('',#37188,1000.); -#24242=VECTOR('',#37191,1000.); -#24243=VECTOR('',#37194,1000.); -#24244=VECTOR('',#37195,1000.); -#24245=VECTOR('',#37196,1000.); -#24246=VECTOR('',#37197,1000.); -#24247=VECTOR('',#37198,1000.); -#24248=VECTOR('',#37201,1000.); -#24249=VECTOR('',#37202,1000.); -#24250=VECTOR('',#37203,1000.); -#24251=VECTOR('',#37204,1000.); -#24252=VECTOR('',#37207,1000.); -#24253=VECTOR('',#37210,1000.); -#24254=VECTOR('',#37213,1000.); -#24255=VECTOR('',#37216,1000.); -#24256=VECTOR('',#37219,1000.); -#24257=VECTOR('',#37222,1000.); -#24258=VECTOR('',#37225,1000.); -#24259=VECTOR('',#37228,1000.); -#24260=VECTOR('',#37231,1000.); -#24261=VECTOR('',#37234,1000.); -#24262=VECTOR('',#37237,1000.); -#24263=VECTOR('',#37240,1000.); -#24264=VECTOR('',#37243,1000.); -#24265=VECTOR('',#37246,1000.); -#24266=VECTOR('',#37249,1000.); -#24267=VECTOR('',#37252,1000.); -#24268=VECTOR('',#37255,1000.); -#24269=VECTOR('',#37258,1000.); -#24270=VECTOR('',#37261,1000.); -#24271=VECTOR('',#37264,1000.); -#24272=VECTOR('',#37265,1000.); -#24273=VECTOR('',#37266,1000.); -#24274=VECTOR('',#37267,1000.); -#24275=VECTOR('',#37270,1000.); -#24276=VECTOR('',#37311,1000.); -#24277=VECTOR('',#37314,1000.); -#24278=VECTOR('',#37315,1000.); -#24279=VECTOR('',#37316,1000.); -#24280=VECTOR('',#37319,1000.); -#24281=VECTOR('',#37320,1000.); -#24282=VECTOR('',#37321,1000.); -#24283=VECTOR('',#37324,1000.); -#24284=VECTOR('',#37325,1000.); -#24285=VECTOR('',#37326,1000.); -#24286=VECTOR('',#37329,1000.); -#24287=VECTOR('',#37330,1000.); -#24288=VECTOR('',#37331,1000.); -#24289=VECTOR('',#37334,1000.); -#24290=VECTOR('',#37335,1000.); -#24291=VECTOR('',#37336,1000.); -#24292=VECTOR('',#37339,1000.); -#24293=VECTOR('',#37340,1000.); -#24294=VECTOR('',#37341,1000.); -#24295=VECTOR('',#37344,1000.); -#24296=VECTOR('',#37345,1000.); -#24297=VECTOR('',#37346,1000.); -#24298=VECTOR('',#37349,1000.); -#24299=VECTOR('',#37350,1000.); -#24300=VECTOR('',#37351,1000.); -#24301=VECTOR('',#37354,1000.); -#24302=VECTOR('',#37355,1000.); -#24303=VECTOR('',#37356,1000.); -#24304=VECTOR('',#37359,1000.); -#24305=VECTOR('',#37360,1000.); -#24306=VECTOR('',#37361,1000.); -#24307=VECTOR('',#37364,1000.); -#24308=VECTOR('',#37365,1000.); -#24309=VECTOR('',#37366,1000.); -#24310=VECTOR('',#37369,1000.); -#24311=VECTOR('',#37370,1000.); -#24312=VECTOR('',#37371,1000.); -#24313=VECTOR('',#37374,1000.); -#24314=VECTOR('',#37375,1000.); -#24315=VECTOR('',#37376,1000.); -#24316=VECTOR('',#37379,1000.); -#24317=VECTOR('',#37380,1000.); -#24318=VECTOR('',#37381,1000.); -#24319=VECTOR('',#37384,1000.); -#24320=VECTOR('',#37385,1000.); -#24321=VECTOR('',#37386,1000.); -#24322=VECTOR('',#37389,1000.); -#24323=VECTOR('',#37390,1000.); -#24324=VECTOR('',#37391,1000.); -#24325=VECTOR('',#37392,1000.); -#24326=VECTOR('',#37393,1000.); -#24327=VECTOR('',#37396,1000.); -#24328=VECTOR('',#37397,1000.); -#24329=VECTOR('',#37398,1000.); -#24330=VECTOR('',#37399,1000.); -#24331=VECTOR('',#37400,1000.); -#24332=VECTOR('',#37403,1000.); -#24333=VECTOR('',#37404,1000.); -#24334=VECTOR('',#37405,1000.); -#24335=VECTOR('',#37408,1000.); -#24336=VECTOR('',#37409,1000.); -#24337=VECTOR('',#37412,1000.); -#24338=VECTOR('',#37413,1000.); -#24339=VECTOR('',#37414,1000.); -#24340=VECTOR('',#37417,1000.); -#24341=VECTOR('',#37418,1000.); -#24342=VECTOR('',#37421,1000.); -#24343=VECTOR('',#37422,1000.); -#24344=VECTOR('',#37425,1000.); -#24345=VECTOR('',#37426,1000.); -#24346=VECTOR('',#37429,1000.); -#24347=VECTOR('',#37430,1000.); -#24348=VECTOR('',#37431,1000.); -#24349=VECTOR('',#37432,1000.); -#24350=VECTOR('',#37435,1000.); -#24351=VECTOR('',#37436,1000.); -#24352=VECTOR('',#37437,1000.); -#24353=VECTOR('',#37440,1000.); -#24354=VECTOR('',#37441,1000.); -#24355=VECTOR('',#37442,1000.); -#24356=VECTOR('',#37447,1000.); -#24357=VECTOR('',#37448,1000.); -#24358=VECTOR('',#37449,1000.); -#24359=VECTOR('',#37452,1000.); -#24360=VECTOR('',#37455,1000.); -#24361=VECTOR('',#37460,1000.); -#24362=VECTOR('',#37461,1000.); -#24363=VECTOR('',#37462,1000.); -#24364=VECTOR('',#37465,1000.); -#24365=VECTOR('',#37468,1000.); -#24366=VECTOR('',#37471,1000.); -#24367=VECTOR('',#37472,1000.); -#24368=VECTOR('',#37475,1000.); -#24369=VECTOR('',#37476,1000.); -#24370=VECTOR('',#37479,1000.); -#24371=VECTOR('',#37482,1000.); -#24372=VECTOR('',#37483,1000.); -#24373=VECTOR('',#37484,1000.); -#24374=VECTOR('',#37485,1000.); -#24375=VECTOR('',#37486,1000.); -#24376=VECTOR('',#37487,1000.); -#24377=VECTOR('',#37488,1000.); -#24378=VECTOR('',#37489,1000.); -#24379=VECTOR('',#37490,1000.); -#24380=VECTOR('',#37491,1000.); -#24381=VECTOR('',#37492,1000.); -#24382=VECTOR('',#37493,1000.); -#24383=VECTOR('',#37494,1000.); -#24384=VECTOR('',#37495,1000.); -#24385=VECTOR('',#37496,1000.); -#24386=VECTOR('',#37497,1000.); -#24387=VECTOR('',#37498,1000.); -#24388=VECTOR('',#37499,1000.); -#24389=VECTOR('',#37500,1000.); -#24390=VECTOR('',#37501,1000.); -#24391=VECTOR('',#37502,1000.); -#24392=VECTOR('',#37503,1000.); -#24393=VECTOR('',#37504,1000.); -#24394=VECTOR('',#37505,1000.); -#24395=VECTOR('',#37506,1000.); -#24396=VECTOR('',#37509,1000.); -#24397=VECTOR('',#37510,1000.); -#24398=VECTOR('',#37513,1000.); -#24399=VECTOR('',#37514,1000.); -#24400=VECTOR('',#37519,1000.); -#24401=VECTOR('',#37522,1000.); -#24402=VECTOR('',#37525,1000.); -#24403=VECTOR('',#37528,1000.); -#24404=VECTOR('',#37531,1000.); -#24405=VECTOR('',#37532,1000.); -#24406=VECTOR('',#37533,1000.); -#24407=VECTOR('',#37536,1000.); -#24408=VECTOR('',#37537,1000.); -#24409=VECTOR('',#37538,1000.); -#24410=VECTOR('',#37541,1000.); -#24411=VECTOR('',#37542,1000.); -#24412=VECTOR('',#37543,1000.); -#24413=VECTOR('',#37544,1000.); -#24414=VECTOR('',#37545,1000.); -#24415=VECTOR('',#37546,1000.); -#24416=VECTOR('',#37547,1000.); -#24417=VECTOR('',#37548,1000.); -#24418=VECTOR('',#37549,1000.); -#24419=VECTOR('',#37550,1000.); -#24420=VECTOR('',#37551,1000.); -#24421=VECTOR('',#37552,1000.); -#24422=VECTOR('',#37553,1000.); -#24423=VECTOR('',#37554,1000.); -#24424=VECTOR('',#37555,1000.); -#24425=VECTOR('',#37556,1000.); -#24426=VECTOR('',#37557,1000.); -#24427=VECTOR('',#37558,1000.); -#24428=VECTOR('',#37559,1000.); -#24429=VECTOR('',#37560,1000.); -#24430=VECTOR('',#37561,1000.); -#24431=VECTOR('',#37562,1000.); -#24432=VECTOR('',#37563,1000.); -#24433=VECTOR('',#37580,1000.); -#24434=VECTOR('',#37585,1000.); -#24435=VECTOR('',#37588,1000.); -#24436=VECTOR('',#37593,1000.); -#24437=VECTOR('',#37596,1000.); -#24438=VECTOR('',#37601,1000.); -#24439=VECTOR('',#37604,1000.); -#24440=VECTOR('',#37609,1000.); -#24441=VECTOR('',#37612,1000.); -#24442=VECTOR('',#37617,1000.); -#24443=VECTOR('',#37620,1000.); -#24444=VECTOR('',#37625,1000.); -#24445=VECTOR('',#37628,1000.); -#24446=VECTOR('',#37633,1000.); -#24447=VECTOR('',#37638,1000.); -#24448=VECTOR('',#37643,1000.); -#24449=VECTOR('',#37646,1000.); -#24450=VECTOR('',#37651,1000.); -#24451=VECTOR('',#37654,1000.); -#24452=VECTOR('',#37659,1000.); -#24453=VECTOR('',#37662,1000.); -#24454=VECTOR('',#37667,1000.); -#24455=VECTOR('',#37670,1000.); -#24456=VECTOR('',#37675,1000.); -#24457=VECTOR('',#37678,1000.); -#24458=VECTOR('',#37683,1000.); -#24459=VECTOR('',#37686,1000.); -#24460=VECTOR('',#37691,1000.); -#24461=VECTOR('',#37776,1000.); -#24462=VECTOR('',#37779,1000.); -#24463=VECTOR('',#37784,1000.); -#24464=VECTOR('',#37787,1000.); -#24465=VECTOR('',#37792,1000.); -#24466=VECTOR('',#37795,1000.); -#24467=VECTOR('',#37800,1000.); -#24468=VECTOR('',#37803,1000.); -#24469=VECTOR('',#37808,1000.); -#24470=VECTOR('',#37811,1000.); -#24471=VECTOR('',#37816,1000.); -#24472=VECTOR('',#37819,1000.); -#24473=VECTOR('',#37824,1000.); -#24474=VECTOR('',#37827,1000.); -#24475=VECTOR('',#37832,1000.); -#24476=VECTOR('',#37835,1000.); -#24477=VECTOR('',#37840,1000.); -#24478=VECTOR('',#37843,1000.); -#24479=VECTOR('',#37848,1000.); -#24480=VECTOR('',#37851,1000.); -#24481=VECTOR('',#37856,1000.); -#24482=VECTOR('',#37859,1000.); -#24483=VECTOR('',#37864,1000.); -#24484=VECTOR('',#37867,1000.); -#24485=VECTOR('',#37872,1000.); -#24486=VECTOR('',#37875,1000.); -#24487=VECTOR('',#37880,1000.); -#24488=VECTOR('',#37883,1000.); -#24489=VECTOR('',#37888,1000.); -#24490=VECTOR('',#37891,1000.); -#24491=VECTOR('',#37896,1000.); -#24492=VECTOR('',#37899,1000.); -#24493=VECTOR('',#37904,1000.); -#24494=VECTOR('',#37907,1000.); -#24495=VECTOR('',#37912,1000.); -#24496=VECTOR('',#37915,1000.); -#24497=VECTOR('',#37920,1000.); -#24498=VECTOR('',#37923,1000.); -#24499=VECTOR('',#37928,1000.); -#24500=VECTOR('',#37929,1000.); -#24501=VECTOR('',#37936,1000.); -#24502=VECTOR('',#37937,1000.); -#24503=VECTOR('',#37938,1000.); -#24504=VECTOR('',#37941,1000.); -#24505=VECTOR('',#37942,1000.); -#24506=VECTOR('',#37945,1000.); -#24507=VECTOR('',#37948,1000.); -#24508=VECTOR('',#37949,1000.); -#24509=VECTOR('',#37952,1000.); -#24510=VECTOR('',#37967,1000.); -#24511=VECTOR('',#37968,1000.); -#24512=VECTOR('',#37969,1000.); -#24513=VECTOR('',#37974,1000.); -#24514=VECTOR('',#37977,1000.); -#24515=VECTOR('',#37978,1000.); -#24516=VECTOR('',#37983,1000.); -#24517=VECTOR('',#37986,1000.); -#24518=VECTOR('',#37987,1000.); -#24519=VECTOR('',#37992,1000.); -#24520=VECTOR('',#37995,1000.); -#24521=VECTOR('',#37996,1000.); -#24522=VECTOR('',#38005,1000.); -#24523=VECTOR('',#38006,1000.); -#24524=VECTOR('',#38007,1000.); -#24525=VECTOR('',#38012,1000.); -#24526=VECTOR('',#38017,1000.); -#24527=VECTOR('',#38022,1000.); -#24528=VECTOR('',#38027,1000.); -#24529=VECTOR('',#38032,1000.); -#24530=VECTOR('',#38035,1000.); -#24531=VECTOR('',#38036,1000.); -#24532=VECTOR('',#38041,1000.); -#24533=VECTOR('',#38044,1000.); -#24534=VECTOR('',#38045,1000.); -#24535=VECTOR('',#38048,1000.); -#24536=VECTOR('',#38053,1000.); -#24537=VECTOR('',#38054,1000.); -#24538=VECTOR('',#38055,1000.); -#24539=VECTOR('',#38060,1000.); -#24540=VECTOR('',#38065,1000.); -#24541=VECTOR('',#38070,1000.); -#24542=VECTOR('',#38075,1000.); -#24543=VECTOR('',#38080,1000.); -#24544=VECTOR('',#38083,1000.); -#24545=VECTOR('',#38084,1000.); -#24546=VECTOR('',#38089,1000.); -#24547=VECTOR('',#38092,1000.); -#24548=VECTOR('',#38093,1000.); -#24549=VECTOR('',#38102,1000.); -#24550=VECTOR('',#38103,1000.); -#24551=VECTOR('',#38106,1000.); -#24552=VECTOR('',#38107,1000.); -#24553=VECTOR('',#38112,1000.); -#24554=VECTOR('',#38117,1000.); -#24555=VECTOR('',#38120,1000.); -#24556=VECTOR('',#38125,1000.); -#24557=VECTOR('',#38126,1000.); -#24558=VECTOR('',#38129,1000.); -#24559=VECTOR('',#38130,1000.); -#24560=VECTOR('',#38135,1000.); -#24561=VECTOR('',#38140,1000.); -#24562=VECTOR('',#38141,1000.); -#24563=VECTOR('',#38150,1000.); -#24564=VECTOR('',#38151,1000.); -#24565=VECTOR('',#38152,1000.); -#24566=VECTOR('',#38153,1000.); -#24567=VECTOR('',#38154,1000.); -#24568=VECTOR('',#38155,1000.); -#24569=VECTOR('',#38156,1000.); -#24570=VECTOR('',#38157,1000.); -#24571=VECTOR('',#38158,1000.); -#24572=VECTOR('',#38159,1000.); -#24573=VECTOR('',#38160,1000.); -#24574=VECTOR('',#38161,1000.); -#24575=VECTOR('',#38162,1000.); -#24576=VECTOR('',#38163,1000.); -#24577=VECTOR('',#38164,1000.); -#24578=VECTOR('',#38165,1000.); -#24579=VECTOR('',#38166,1000.); -#24580=VECTOR('',#38167,1000.); -#24581=VECTOR('',#38168,1000.); -#24582=VECTOR('',#38169,1000.); -#24583=VECTOR('',#38170,1000.); -#24584=VECTOR('',#38171,1000.); -#24585=VECTOR('',#38172,1000.); -#24586=VECTOR('',#38173,1000.); -#24587=VECTOR('',#38174,1000.); -#24588=VECTOR('',#38175,1000.); -#24589=VECTOR('',#38176,1000.); -#24590=VECTOR('',#38177,1000.); -#24591=VECTOR('',#38178,1000.); -#24592=VECTOR('',#38179,1000.); -#24593=VECTOR('',#38180,1000.); -#24594=VECTOR('',#38181,1000.); -#24595=VECTOR('',#38182,1000.); -#24596=VECTOR('',#38183,1000.); -#24597=VECTOR('',#38184,1000.); -#24598=VECTOR('',#38185,1000.); -#24599=VECTOR('',#38186,1000.); -#24600=VECTOR('',#38187,1000.); -#24601=VECTOR('',#38188,1000.); -#24602=VECTOR('',#38189,1000.); -#24603=VECTOR('',#38190,1000.); -#24604=VECTOR('',#38191,1000.); -#24605=VECTOR('',#38192,1000.); -#24606=VECTOR('',#38193,1000.); -#24607=VECTOR('',#38194,1000.); -#24608=VECTOR('',#38195,1000.); -#24609=VECTOR('',#38196,1000.); -#24610=VECTOR('',#38197,1000.); -#24611=VECTOR('',#38198,1000.); -#24612=VECTOR('',#38199,1000.); -#24613=VECTOR('',#38200,1000.); -#24614=VECTOR('',#38201,1000.); -#24615=VECTOR('',#38202,1000.); -#24616=VECTOR('',#38203,1000.); -#24617=VECTOR('',#38204,1000.); -#24618=VECTOR('',#38205,1000.); -#24619=VECTOR('',#38206,1000.); -#24620=VECTOR('',#38207,1000.); -#24621=VECTOR('',#38208,1000.); -#24622=VECTOR('',#38209,1000.); -#24623=VECTOR('',#38210,1000.); -#24624=VECTOR('',#38211,1000.); -#24625=VECTOR('',#38212,1000.); -#24626=VECTOR('',#38213,1000.); -#24627=VECTOR('',#38214,1000.); -#24628=VECTOR('',#38215,1000.); -#24629=VECTOR('',#38216,1000.); -#24630=VECTOR('',#38217,1000.); -#24631=VECTOR('',#38218,1000.); -#24632=VECTOR('',#38219,1000.); -#24633=VECTOR('',#38220,1000.); -#24634=VECTOR('',#38221,1000.); -#24635=VECTOR('',#38222,1000.); -#24636=VECTOR('',#38223,1000.); -#24637=VECTOR('',#38224,1000.); -#24638=VECTOR('',#38225,1000.); -#24639=VECTOR('',#38226,1000.); -#24640=VECTOR('',#38227,1000.); -#24641=VECTOR('',#38228,1000.); -#24642=VECTOR('',#38229,1000.); -#24643=VECTOR('',#38230,1000.); -#24644=VECTOR('',#38231,1000.); -#24645=VECTOR('',#38232,1000.); -#24646=VECTOR('',#38233,1000.); -#24647=VECTOR('',#38234,1000.); -#24648=VECTOR('',#38235,1000.); -#24649=VECTOR('',#38236,1000.); -#24650=VECTOR('',#38237,1000.); -#24651=VECTOR('',#38238,1000.); -#24652=VECTOR('',#38239,1000.); -#24653=VECTOR('',#38240,1000.); -#24654=VECTOR('',#38241,1000.); -#24655=VECTOR('',#38242,1000.); -#24656=VECTOR('',#38243,1000.); -#24657=VECTOR('',#38244,1000.); -#24658=VECTOR('',#38245,1000.); -#24659=VECTOR('',#38246,1000.); -#24660=VECTOR('',#38247,1000.); -#24661=VECTOR('',#38248,1000.); -#24662=VECTOR('',#38249,1000.); -#24663=VECTOR('',#38250,1000.); -#24664=VECTOR('',#38251,1000.); -#24665=VECTOR('',#38252,1000.); -#24666=VECTOR('',#38253,1000.); -#24667=VECTOR('',#38254,1000.); -#24668=VECTOR('',#38255,1000.); -#24669=VECTOR('',#38256,1000.); -#24670=VECTOR('',#38257,1000.); -#24671=VECTOR('',#38258,1000.); -#24672=VECTOR('',#38259,1000.); -#24673=VECTOR('',#38260,1000.); -#24674=VECTOR('',#38261,1000.); -#24675=VECTOR('',#38262,1000.); -#24676=VECTOR('',#38263,1000.); -#24677=VECTOR('',#38264,1000.); -#24678=VECTOR('',#38265,1000.); -#24679=VECTOR('',#38266,1000.); -#24680=VECTOR('',#38267,1000.); -#24681=VECTOR('',#38268,1000.); -#24682=VECTOR('',#38269,1000.); -#24683=VECTOR('',#38270,1000.); -#24684=VECTOR('',#38271,1000.); -#24685=VECTOR('',#38272,1000.); -#24686=VECTOR('',#38273,1000.); -#24687=VECTOR('',#38274,1000.); -#24688=VECTOR('',#38275,1000.); -#24689=VECTOR('',#38276,1000.); -#24690=VECTOR('',#38277,1000.); -#24691=VECTOR('',#38278,1000.); -#24692=VECTOR('',#38279,1000.); -#24693=VECTOR('',#38280,1000.); -#24694=VECTOR('',#38281,1000.); -#24695=VECTOR('',#38282,1000.); -#24696=VECTOR('',#38283,1000.); -#24697=VECTOR('',#38284,1000.); -#24698=VECTOR('',#38285,1000.); -#24699=VECTOR('',#38286,1000.); -#24700=VECTOR('',#38287,1000.); -#24701=VECTOR('',#38288,1000.); -#24702=VECTOR('',#38289,1000.); -#24703=VECTOR('',#38290,1000.); -#24704=VECTOR('',#38291,1000.); -#24705=VECTOR('',#38292,1000.); -#24706=VECTOR('',#38293,1000.); -#24707=VECTOR('',#38294,1000.); -#24708=VECTOR('',#38295,1000.); -#24709=VECTOR('',#38296,1000.); -#24710=VECTOR('',#38297,1000.); -#24711=VECTOR('',#38298,1000.); -#24712=VECTOR('',#38299,1000.); -#24713=VECTOR('',#38300,1000.); -#24714=VECTOR('',#38301,1000.); -#24715=VECTOR('',#38302,1000.); -#24716=VECTOR('',#38303,1000.); -#24717=VECTOR('',#38304,1000.); -#24718=VECTOR('',#38305,1000.); -#24719=VECTOR('',#38306,1000.); -#24720=VECTOR('',#38307,1000.); -#24721=VECTOR('',#38308,1000.); -#24722=VECTOR('',#38309,1000.); -#24723=VECTOR('',#38310,1000.); -#24724=VECTOR('',#38311,1000.); -#24725=VECTOR('',#38312,1000.); -#24726=VECTOR('',#38313,1000.); -#24727=VECTOR('',#38316,1000.); -#24728=VECTOR('',#38317,1000.); -#24729=VECTOR('',#38318,1000.); -#24730=VECTOR('',#38319,1000.); -#24731=VECTOR('',#38320,1000.); -#24732=VECTOR('',#38321,1000.); -#24733=VECTOR('',#38322,1000.); -#24734=VECTOR('',#38323,1000.); -#24735=VECTOR('',#38324,1000.); -#24736=VECTOR('',#38325,1000.); -#24737=VECTOR('',#38326,1000.); -#24738=VECTOR('',#38327,1000.); -#24739=VECTOR('',#38328,1000.); -#24740=VECTOR('',#38329,1000.); -#24741=VECTOR('',#38330,1000.); -#24742=VECTOR('',#38331,1000.); -#24743=VECTOR('',#38332,1000.); -#24744=VECTOR('',#38333,1000.); -#24745=VECTOR('',#38334,1000.); -#24746=VECTOR('',#38335,1000.); -#24747=VECTOR('',#38336,1000.); -#24748=VECTOR('',#38337,1000.); -#24749=VECTOR('',#38338,1000.); -#24750=VECTOR('',#38339,1000.); -#24751=VECTOR('',#38340,1000.); -#24752=VECTOR('',#38341,1000.); -#24753=VECTOR('',#38342,1000.); -#24754=VECTOR('',#38343,1000.); -#24755=VECTOR('',#38344,1000.); -#24756=VECTOR('',#38345,1000.); -#24757=VECTOR('',#38346,1000.); -#24758=VECTOR('',#38347,1000.); -#24759=VECTOR('',#38348,1000.); -#24760=VECTOR('',#38349,1000.); -#24761=VECTOR('',#38350,1000.); -#24762=VECTOR('',#38351,1000.); -#24763=VECTOR('',#38352,1000.); -#24764=VECTOR('',#38353,1000.); -#24765=VECTOR('',#38354,1000.); -#24766=VECTOR('',#38355,1000.); -#24767=VECTOR('',#38356,1000.); -#24768=VECTOR('',#38357,1000.); -#24769=VECTOR('',#38358,1000.); -#24770=VECTOR('',#38359,1000.); -#24771=VECTOR('',#38360,1000.); -#24772=VECTOR('',#38361,1000.); -#24773=VECTOR('',#38362,1000.); -#24774=VECTOR('',#38363,1000.); -#24775=VECTOR('',#38364,1000.); -#24776=VECTOR('',#38365,1000.); -#24777=VECTOR('',#38366,1000.); -#24778=VECTOR('',#38367,1000.); -#24779=VECTOR('',#38368,1000.); -#24780=VECTOR('',#38369,1000.); -#24781=VECTOR('',#38370,1000.); -#24782=VECTOR('',#38371,1000.); -#24783=VECTOR('',#38372,1000.); -#24784=VECTOR('',#38373,1000.); -#24785=VECTOR('',#38374,1000.); -#24786=VECTOR('',#38375,1000.); -#24787=VECTOR('',#38376,1000.); -#24788=VECTOR('',#38377,1000.); -#24789=VECTOR('',#38378,1000.); -#24790=VECTOR('',#38379,1000.); -#24791=VECTOR('',#38380,1000.); -#24792=VECTOR('',#38381,1000.); -#24793=VECTOR('',#38382,1000.); -#24794=VECTOR('',#38383,1000.); -#24795=VECTOR('',#38384,1000.); -#24796=VECTOR('',#38385,1000.); -#24797=VECTOR('',#38386,1000.); -#24798=VECTOR('',#38387,1000.); -#24799=VECTOR('',#38388,1000.); -#24800=VECTOR('',#38389,1000.); -#24801=VECTOR('',#38390,1000.); -#24802=VECTOR('',#38391,1000.); -#24803=VECTOR('',#38392,1000.); -#24804=VECTOR('',#38393,1000.); -#24805=VECTOR('',#38394,1000.); -#24806=VECTOR('',#38395,1000.); -#24807=VECTOR('',#38396,1000.); -#24808=VECTOR('',#38397,1000.); -#24809=VECTOR('',#38398,1000.); -#24810=VECTOR('',#38399,1000.); -#24811=VECTOR('',#38400,1000.); -#24812=VECTOR('',#38401,1000.); -#24813=VECTOR('',#38402,1000.); -#24814=VECTOR('',#38403,1000.); -#24815=VECTOR('',#38404,1000.); -#24816=VECTOR('',#38405,1000.); -#24817=VECTOR('',#38406,1000.); -#24818=VECTOR('',#38407,1000.); -#24819=VECTOR('',#38408,1000.); -#24820=VECTOR('',#38409,1000.); -#24821=VECTOR('',#38410,1000.); -#24822=VECTOR('',#38411,1000.); -#24823=VECTOR('',#38412,1000.); -#24824=VECTOR('',#38413,1000.); -#24825=VECTOR('',#38414,1000.); -#24826=VECTOR('',#38415,1000.); -#24827=VECTOR('',#38416,1000.); -#24828=VECTOR('',#38417,1000.); -#24829=VECTOR('',#38418,1000.); -#24830=VECTOR('',#38419,1000.); -#24831=VECTOR('',#38420,1000.); -#24832=VECTOR('',#38421,1000.); -#24833=VECTOR('',#38422,1000.); -#24834=VECTOR('',#38423,1000.); -#24835=VECTOR('',#38424,1000.); -#24836=VECTOR('',#38425,1000.); -#24837=VECTOR('',#38426,1000.); -#24838=VECTOR('',#38427,1000.); -#24839=VECTOR('',#38428,1000.); -#24840=VECTOR('',#38429,1000.); -#24841=VECTOR('',#38430,1000.); -#24842=VECTOR('',#38431,1000.); -#24843=VECTOR('',#38432,1000.); -#24844=VECTOR('',#38433,1000.); -#24845=VECTOR('',#38434,1000.); -#24846=VECTOR('',#38435,1000.); -#24847=VECTOR('',#38436,1000.); -#24848=VECTOR('',#38437,1000.); -#24849=VECTOR('',#38438,1000.); -#24850=VECTOR('',#38439,1000.); -#24851=VECTOR('',#38440,1000.); -#24852=VECTOR('',#38441,1000.); -#24853=VECTOR('',#38442,1000.); -#24854=VECTOR('',#38443,1000.); -#24855=VECTOR('',#38444,1000.); -#24856=VECTOR('',#38445,1000.); -#24857=VECTOR('',#38446,1000.); -#24858=VECTOR('',#38447,1000.); -#24859=VECTOR('',#38448,1000.); -#24860=VECTOR('',#38449,1000.); -#24861=VECTOR('',#38450,1000.); -#24862=VECTOR('',#38451,1000.); -#24863=VECTOR('',#38452,1000.); -#24864=VECTOR('',#38453,1000.); -#24865=VECTOR('',#38454,1000.); -#24866=VECTOR('',#38455,1000.); -#24867=VECTOR('',#38456,1000.); -#24868=VECTOR('',#38457,1000.); -#24869=VECTOR('',#38458,1000.); -#24870=VECTOR('',#38459,1000.); -#24871=VECTOR('',#38460,1000.); -#24872=VECTOR('',#38461,1000.); -#24873=VECTOR('',#38462,1000.); -#24874=VECTOR('',#38463,1000.); -#24875=VECTOR('',#38464,1000.); -#24876=VECTOR('',#38465,1000.); -#24877=VECTOR('',#38466,1000.); -#24878=VECTOR('',#38467,1000.); -#24879=VECTOR('',#38468,1000.); -#24880=VECTOR('',#38469,1000.); -#24881=VECTOR('',#38470,1000.); -#24882=VECTOR('',#38471,1000.); -#24883=VECTOR('',#38472,1000.); -#24884=VECTOR('',#38473,1000.); -#24885=VECTOR('',#38474,1000.); -#24886=VECTOR('',#38475,1000.); -#24887=VECTOR('',#38476,1000.); -#24888=VECTOR('',#38477,1000.); -#24889=VECTOR('',#38478,1000.); -#24890=VECTOR('',#38479,1000.); -#24891=VECTOR('',#38482,1000.); -#24892=VECTOR('',#38483,1000.); -#24893=VECTOR('',#38484,1000.); -#24894=VECTOR('',#38485,1000.); -#24895=VECTOR('',#38486,1000.); -#24896=VECTOR('',#38487,1000.); -#24897=VECTOR('',#38488,1000.); -#24898=VECTOR('',#38489,1000.); -#24899=VECTOR('',#38490,1000.); -#24900=VECTOR('',#38491,1000.); -#24901=VECTOR('',#38492,1000.); -#24902=VECTOR('',#38493,1000.); -#24903=VECTOR('',#38494,1000.); -#24904=VECTOR('',#38495,1000.); -#24905=VECTOR('',#38496,1000.); -#24906=VECTOR('',#38497,1000.); -#24907=VECTOR('',#38498,1000.); -#24908=VECTOR('',#38499,1000.); -#24909=VECTOR('',#38500,1000.); -#24910=VECTOR('',#38501,1000.); -#24911=VECTOR('',#38502,1000.); -#24912=VECTOR('',#38503,1000.); -#24913=VECTOR('',#38504,1000.); -#24914=VECTOR('',#38505,1000.); -#24915=VECTOR('',#38506,1000.); -#24916=VECTOR('',#38507,1000.); -#24917=VECTOR('',#38508,1000.); -#24918=VECTOR('',#38509,1000.); -#24919=VECTOR('',#38510,1000.); -#24920=VECTOR('',#38511,1000.); -#24921=VECTOR('',#38512,1000.); -#24922=VECTOR('',#38513,1000.); -#24923=VECTOR('',#38514,1000.); -#24924=VECTOR('',#38515,1000.); -#24925=VECTOR('',#38516,1000.); -#24926=VECTOR('',#38517,1000.); -#24927=VECTOR('',#38518,1000.); -#24928=VECTOR('',#38519,1000.); -#24929=VECTOR('',#38520,1000.); -#24930=VECTOR('',#38521,1000.); -#24931=VECTOR('',#38522,1000.); -#24932=VECTOR('',#38523,1000.); -#24933=VECTOR('',#38524,1000.); -#24934=VECTOR('',#38525,1000.); -#24935=VECTOR('',#38526,1000.); -#24936=VECTOR('',#38527,1000.); -#24937=VECTOR('',#38528,1000.); -#24938=VECTOR('',#38529,1000.); -#24939=VECTOR('',#38530,1000.); -#24940=VECTOR('',#38531,1000.); -#24941=VECTOR('',#38532,1000.); -#24942=VECTOR('',#38533,1000.); -#24943=VECTOR('',#38534,1000.); -#24944=VECTOR('',#38535,1000.); -#24945=VECTOR('',#38536,1000.); -#24946=VECTOR('',#38537,1000.); -#24947=VECTOR('',#38538,1000.); -#24948=VECTOR('',#38539,1000.); -#24949=VECTOR('',#38540,1000.); -#24950=VECTOR('',#38541,1000.); -#24951=VECTOR('',#38542,1000.); -#24952=VECTOR('',#38543,1000.); -#24953=VECTOR('',#38544,1000.); -#24954=VECTOR('',#38545,1000.); -#24955=VECTOR('',#38546,1000.); -#24956=VECTOR('',#38547,1000.); -#24957=VECTOR('',#38548,1000.); -#24958=VECTOR('',#38549,1000.); -#24959=VECTOR('',#38550,1000.); -#24960=VECTOR('',#38551,1000.); -#24961=VECTOR('',#38552,1000.); -#24962=VECTOR('',#38553,1000.); -#24963=VECTOR('',#38554,1000.); -#24964=VECTOR('',#38555,1000.); -#24965=VECTOR('',#38556,1000.); -#24966=VECTOR('',#38557,1000.); -#24967=VECTOR('',#38558,1000.); -#24968=VECTOR('',#38559,1000.); -#24969=VECTOR('',#38560,1000.); -#24970=VECTOR('',#38561,1000.); -#24971=VECTOR('',#38562,1000.); -#24972=VECTOR('',#38563,1000.); -#24973=VECTOR('',#38564,1000.); -#24974=VECTOR('',#38565,1000.); -#24975=VECTOR('',#38566,1000.); -#24976=VECTOR('',#38567,1000.); -#24977=VECTOR('',#38568,1000.); -#24978=VECTOR('',#38569,1000.); -#24979=VECTOR('',#38570,1000.); -#24980=VECTOR('',#38571,1000.); -#24981=VECTOR('',#38572,1000.); -#24982=VECTOR('',#38573,1000.); -#24983=VECTOR('',#38574,1000.); -#24984=VECTOR('',#38575,1000.); -#24985=VECTOR('',#38576,1000.); -#24986=VECTOR('',#38577,1000.); -#24987=VECTOR('',#38578,1000.); -#24988=VECTOR('',#38579,1000.); -#24989=VECTOR('',#38580,1000.); -#24990=VECTOR('',#38581,1000.); -#24991=VECTOR('',#38582,1000.); -#24992=VECTOR('',#38583,1000.); -#24993=VECTOR('',#38584,1000.); -#24994=VECTOR('',#38585,1000.); -#24995=VECTOR('',#38586,1000.); -#24996=VECTOR('',#38587,1000.); -#24997=VECTOR('',#38588,1000.); -#24998=VECTOR('',#38589,1000.); -#24999=VECTOR('',#38590,1000.); -#25000=VECTOR('',#38591,1000.); -#25001=VECTOR('',#38592,1000.); -#25002=VECTOR('',#38593,1000.); -#25003=VECTOR('',#38594,1000.); -#25004=VECTOR('',#38595,1000.); -#25005=VECTOR('',#38596,1000.); -#25006=VECTOR('',#38597,1000.); -#25007=VECTOR('',#38598,1000.); -#25008=VECTOR('',#38599,1000.); -#25009=VECTOR('',#38600,1000.); -#25010=VECTOR('',#38601,1000.); -#25011=VECTOR('',#38602,1000.); -#25012=VECTOR('',#38603,1000.); -#25013=VECTOR('',#38604,1000.); -#25014=VECTOR('',#38605,1000.); -#25015=VECTOR('',#38606,1000.); -#25016=VECTOR('',#38607,1000.); -#25017=VECTOR('',#38608,1000.); -#25018=VECTOR('',#38609,1000.); -#25019=VECTOR('',#38610,1000.); -#25020=VECTOR('',#38611,1000.); -#25021=VECTOR('',#38612,1000.); -#25022=VECTOR('',#38613,1000.); -#25023=VECTOR('',#38614,1000.); -#25024=VECTOR('',#38615,1000.); -#25025=VECTOR('',#38616,1000.); -#25026=VECTOR('',#38617,1000.); -#25027=VECTOR('',#38618,1000.); -#25028=VECTOR('',#38619,1000.); -#25029=VECTOR('',#38620,1000.); -#25030=VECTOR('',#38621,1000.); -#25031=VECTOR('',#38622,1000.); -#25032=VECTOR('',#38623,1000.); -#25033=VECTOR('',#38624,1000.); -#25034=VECTOR('',#38625,1000.); -#25035=VECTOR('',#38626,1000.); -#25036=VECTOR('',#38627,1000.); -#25037=VECTOR('',#38628,1000.); -#25038=VECTOR('',#38629,1000.); -#25039=VECTOR('',#38630,1000.); -#25040=VECTOR('',#38631,1000.); -#25041=VECTOR('',#38632,1000.); -#25042=VECTOR('',#38633,1000.); -#25043=VECTOR('',#38634,1000.); -#25044=VECTOR('',#38635,1000.); -#25045=VECTOR('',#38636,1000.); -#25046=VECTOR('',#38637,1000.); -#25047=VECTOR('',#38638,1000.); -#25048=VECTOR('',#38639,1000.); -#25049=VECTOR('',#38640,1000.); -#25050=VECTOR('',#38641,1000.); -#25051=VECTOR('',#38642,1000.); -#25052=VECTOR('',#38643,1000.); -#25053=VECTOR('',#38644,1000.); -#25054=VECTOR('',#38645,1000.); -#25055=VECTOR('',#38648,1000.); -#25056=VECTOR('',#38649,1000.); -#25057=VECTOR('',#38650,1000.); -#25058=VECTOR('',#38651,1000.); -#25059=VECTOR('',#38652,1000.); -#25060=VECTOR('',#38653,1000.); -#25061=VECTOR('',#38654,1000.); -#25062=VECTOR('',#38655,1000.); -#25063=VECTOR('',#38656,1000.); -#25064=VECTOR('',#38657,1000.); -#25065=VECTOR('',#38658,1000.); -#25066=VECTOR('',#38659,1000.); -#25067=VECTOR('',#38660,1000.); -#25068=VECTOR('',#38661,1000.); -#25069=VECTOR('',#38662,1000.); -#25070=VECTOR('',#38663,1000.); -#25071=VECTOR('',#38664,1000.); -#25072=VECTOR('',#38665,1000.); -#25073=VECTOR('',#38666,1000.); -#25074=VECTOR('',#38667,1000.); -#25075=VECTOR('',#38668,1000.); -#25076=VECTOR('',#38669,1000.); -#25077=VECTOR('',#38670,1000.); -#25078=VECTOR('',#38671,1000.); -#25079=VECTOR('',#38672,1000.); -#25080=VECTOR('',#38673,1000.); -#25081=VECTOR('',#38674,1000.); -#25082=VECTOR('',#38675,1000.); -#25083=VECTOR('',#38676,1000.); -#25084=VECTOR('',#38677,1000.); -#25085=VECTOR('',#38678,1000.); -#25086=VECTOR('',#38679,1000.); -#25087=VECTOR('',#38680,1000.); -#25088=VECTOR('',#38681,1000.); -#25089=VECTOR('',#38682,1000.); -#25090=VECTOR('',#38683,1000.); -#25091=VECTOR('',#38684,1000.); -#25092=VECTOR('',#38685,1000.); -#25093=VECTOR('',#38686,1000.); -#25094=VECTOR('',#38687,1000.); -#25095=VECTOR('',#38688,1000.); -#25096=VECTOR('',#38689,1000.); -#25097=VECTOR('',#38690,1000.); -#25098=VECTOR('',#38691,1000.); -#25099=VECTOR('',#38692,1000.); -#25100=VECTOR('',#38693,1000.); -#25101=VECTOR('',#38694,1000.); -#25102=VECTOR('',#38695,1000.); -#25103=VECTOR('',#38696,1000.); -#25104=VECTOR('',#38697,1000.); -#25105=VECTOR('',#38698,1000.); -#25106=VECTOR('',#38699,1000.); -#25107=VECTOR('',#38700,1000.); -#25108=VECTOR('',#38701,1000.); -#25109=VECTOR('',#38702,1000.); -#25110=VECTOR('',#38703,1000.); -#25111=VECTOR('',#38704,1000.); -#25112=VECTOR('',#38705,1000.); -#25113=VECTOR('',#38706,1000.); -#25114=VECTOR('',#38707,1000.); -#25115=VECTOR('',#38708,1000.); -#25116=VECTOR('',#38709,1000.); -#25117=VECTOR('',#38710,1000.); -#25118=VECTOR('',#38711,1000.); -#25119=VECTOR('',#38712,1000.); -#25120=VECTOR('',#38713,1000.); -#25121=VECTOR('',#38714,1000.); -#25122=VECTOR('',#38715,1000.); -#25123=VECTOR('',#38716,1000.); -#25124=VECTOR('',#38717,1000.); -#25125=VECTOR('',#38718,1000.); -#25126=VECTOR('',#38719,1000.); -#25127=VECTOR('',#38720,1000.); -#25128=VECTOR('',#38721,1000.); -#25129=VECTOR('',#38722,1000.); -#25130=VECTOR('',#38723,1000.); -#25131=VECTOR('',#38724,1000.); -#25132=VECTOR('',#38725,1000.); -#25133=VECTOR('',#38726,1000.); -#25134=VECTOR('',#38727,1000.); -#25135=VECTOR('',#38728,1000.); -#25136=VECTOR('',#38729,1000.); -#25137=VECTOR('',#38730,1000.); -#25138=VECTOR('',#38731,1000.); -#25139=VECTOR('',#38732,1000.); -#25140=VECTOR('',#38733,1000.); -#25141=VECTOR('',#38734,1000.); -#25142=VECTOR('',#38735,1000.); -#25143=VECTOR('',#38736,1000.); -#25144=VECTOR('',#38737,1000.); -#25145=VECTOR('',#38738,1000.); -#25146=VECTOR('',#38739,1000.); -#25147=VECTOR('',#38740,1000.); -#25148=VECTOR('',#38741,1000.); -#25149=VECTOR('',#38742,1000.); -#25150=VECTOR('',#38743,1000.); -#25151=VECTOR('',#38744,1000.); -#25152=VECTOR('',#38745,1000.); -#25153=VECTOR('',#38746,1000.); -#25154=VECTOR('',#38747,1000.); -#25155=VECTOR('',#38748,1000.); -#25156=VECTOR('',#38749,1000.); -#25157=VECTOR('',#38750,1000.); -#25158=VECTOR('',#38751,1000.); -#25159=VECTOR('',#38752,1000.); -#25160=VECTOR('',#38753,1000.); -#25161=VECTOR('',#38754,1000.); -#25162=VECTOR('',#38755,1000.); -#25163=VECTOR('',#38756,1000.); -#25164=VECTOR('',#38757,1000.); -#25165=VECTOR('',#38758,1000.); -#25166=VECTOR('',#38759,1000.); -#25167=VECTOR('',#38760,1000.); -#25168=VECTOR('',#38761,1000.); -#25169=VECTOR('',#38762,1000.); -#25170=VECTOR('',#38763,1000.); -#25171=VECTOR('',#38764,1000.); -#25172=VECTOR('',#38765,1000.); -#25173=VECTOR('',#38766,1000.); -#25174=VECTOR('',#38767,1000.); -#25175=VECTOR('',#38768,1000.); -#25176=VECTOR('',#38769,1000.); -#25177=VECTOR('',#38770,1000.); -#25178=VECTOR('',#38771,1000.); -#25179=VECTOR('',#38772,1000.); -#25180=VECTOR('',#38773,1000.); -#25181=VECTOR('',#38774,1000.); -#25182=VECTOR('',#38775,1000.); -#25183=VECTOR('',#38776,1000.); -#25184=VECTOR('',#38777,1000.); -#25185=VECTOR('',#38778,1000.); -#25186=VECTOR('',#38779,1000.); -#25187=VECTOR('',#38780,1000.); -#25188=VECTOR('',#38781,1000.); -#25189=VECTOR('',#38782,1000.); -#25190=VECTOR('',#38783,1000.); -#25191=VECTOR('',#38784,1000.); -#25192=VECTOR('',#38785,1000.); -#25193=VECTOR('',#38786,1000.); -#25194=VECTOR('',#38787,1000.); -#25195=VECTOR('',#38788,1000.); -#25196=VECTOR('',#38789,1000.); -#25197=VECTOR('',#38790,1000.); -#25198=VECTOR('',#38791,1000.); -#25199=VECTOR('',#38792,1000.); -#25200=VECTOR('',#38793,1000.); -#25201=VECTOR('',#38794,1000.); -#25202=VECTOR('',#38795,1000.); -#25203=VECTOR('',#38796,1000.); -#25204=VECTOR('',#38797,1000.); -#25205=VECTOR('',#38798,1000.); -#25206=VECTOR('',#38799,1000.); -#25207=VECTOR('',#38800,1000.); -#25208=VECTOR('',#38801,1000.); -#25209=VECTOR('',#38802,1000.); -#25210=VECTOR('',#38803,1000.); -#25211=VECTOR('',#38804,1000.); -#25212=VECTOR('',#38805,1000.); -#25213=VECTOR('',#38806,1000.); -#25214=VECTOR('',#38807,1000.); -#25215=VECTOR('',#38808,1000.); -#25216=VECTOR('',#38809,1000.); -#25217=VECTOR('',#38810,1000.); -#25218=VECTOR('',#38811,1000.); -#25219=VECTOR('',#38814,1000.); -#25220=VECTOR('',#38815,1000.); -#25221=VECTOR('',#38818,1000.); -#25222=VECTOR('',#38819,1000.); -#25223=VECTOR('',#38822,1000.); -#25224=VECTOR('',#38823,1000.); -#25225=VECTOR('',#38826,1000.); -#25226=VECTOR('',#38827,1000.); -#25227=VECTOR('',#38830,1000.); -#25228=VECTOR('',#38831,1000.); -#25229=VECTOR('',#38834,1000.); -#25230=VECTOR('',#38835,1000.); -#25231=VECTOR('',#38838,1000.); -#25232=VECTOR('',#38839,1000.); -#25233=VECTOR('',#38842,1000.); -#25234=VECTOR('',#38843,1000.); -#25235=VECTOR('',#38846,1000.); -#25236=VECTOR('',#38847,1000.); -#25237=VECTOR('',#38850,1000.); -#25238=VECTOR('',#38851,1000.); -#25239=VECTOR('',#38854,1000.); -#25240=VECTOR('',#38855,1000.); -#25241=VECTOR('',#38858,1000.); -#25242=VECTOR('',#38859,1000.); -#25243=VECTOR('',#38862,1000.); -#25244=VECTOR('',#38863,1000.); -#25245=VECTOR('',#38866,1000.); -#25246=VECTOR('',#38867,1000.); -#25247=VECTOR('',#38870,1000.); -#25248=VECTOR('',#38871,1000.); -#25249=VECTOR('',#38874,1000.); -#25250=VECTOR('',#38875,1000.); -#25251=VECTOR('',#38878,1000.); -#25252=VECTOR('',#38879,1000.); -#25253=VECTOR('',#38882,1000.); -#25254=VECTOR('',#38883,1000.); -#25255=VECTOR('',#38886,1000.); -#25256=VECTOR('',#38887,1000.); -#25257=VECTOR('',#38890,1000.); -#25258=VECTOR('',#38891,1000.); -#25259=VECTOR('',#38894,1000.); -#25260=VECTOR('',#38895,1000.); -#25261=VECTOR('',#38898,1000.); -#25262=VECTOR('',#38899,1000.); -#25263=VECTOR('',#38902,1000.); -#25264=VECTOR('',#38903,1000.); -#25265=VECTOR('',#38906,1000.); -#25266=VECTOR('',#38907,1000.); -#25267=VECTOR('',#38910,1000.); -#25268=VECTOR('',#38911,1000.); -#25269=VECTOR('',#38914,1000.); -#25270=VECTOR('',#38915,1000.); -#25271=VECTOR('',#38918,1000.); -#25272=VECTOR('',#38919,1000.); -#25273=VECTOR('',#38922,1000.); -#25274=VECTOR('',#38923,1000.); -#25275=VECTOR('',#38926,1000.); -#25276=VECTOR('',#38927,1000.); -#25277=VECTOR('',#38930,1000.); -#25278=VECTOR('',#38931,1000.); -#25279=VECTOR('',#38934,1000.); -#25280=VECTOR('',#38935,1000.); -#25281=VECTOR('',#38938,1000.); -#25282=VECTOR('',#38939,1000.); -#25283=VECTOR('',#38942,1000.); -#25284=VECTOR('',#38943,1000.); -#25285=VECTOR('',#38946,1000.); -#25286=VECTOR('',#38947,1000.); -#25287=VECTOR('',#38950,1000.); -#25288=VECTOR('',#38951,1000.); -#25289=VECTOR('',#38954,1000.); -#25290=VECTOR('',#38955,1000.); -#25291=VECTOR('',#38958,1000.); -#25292=VECTOR('',#38959,1000.); -#25293=VECTOR('',#38962,1000.); -#25294=VECTOR('',#38963,1000.); -#25295=VECTOR('',#38966,1000.); -#25296=VECTOR('',#38967,1000.); -#25297=VECTOR('',#38970,1000.); -#25298=VECTOR('',#38971,1000.); -#25299=VECTOR('',#38974,1000.); -#25300=VECTOR('',#38975,1000.); -#25301=VECTOR('',#38978,1000.); -#25302=VECTOR('',#38979,1000.); -#25303=VECTOR('',#38982,1000.); -#25304=VECTOR('',#38983,1000.); -#25305=VECTOR('',#38986,1000.); -#25306=VECTOR('',#38987,1000.); -#25307=VECTOR('',#38990,1000.); -#25308=VECTOR('',#38991,1000.); -#25309=VECTOR('',#38994,1000.); -#25310=VECTOR('',#38995,1000.); -#25311=VECTOR('',#38998,1000.); -#25312=VECTOR('',#38999,1000.); -#25313=VECTOR('',#39002,1000.); -#25314=VECTOR('',#39003,1000.); -#25315=VECTOR('',#39006,1000.); -#25316=VECTOR('',#39007,1000.); -#25317=VECTOR('',#39010,1000.); -#25318=VECTOR('',#39011,1000.); -#25319=VECTOR('',#39014,1000.); -#25320=VECTOR('',#39015,1000.); -#25321=VECTOR('',#39018,1000.); -#25322=VECTOR('',#39019,1000.); -#25323=VECTOR('',#39022,1000.); -#25324=VECTOR('',#39023,1000.); -#25325=VECTOR('',#39026,1000.); -#25326=VECTOR('',#39027,1000.); -#25327=VECTOR('',#39030,1000.); -#25328=VECTOR('',#39031,1000.); -#25329=VECTOR('',#39034,1000.); -#25330=VECTOR('',#39035,1000.); -#25331=VECTOR('',#39038,1000.); -#25332=VECTOR('',#39039,1000.); -#25333=VECTOR('',#39042,1000.); -#25334=VECTOR('',#39043,1000.); -#25335=VECTOR('',#39046,1000.); -#25336=VECTOR('',#39047,1000.); -#25337=VECTOR('',#39050,1000.); -#25338=VECTOR('',#39051,1000.); -#25339=VECTOR('',#39054,1000.); -#25340=VECTOR('',#39055,1000.); -#25341=VECTOR('',#39058,1000.); -#25342=VECTOR('',#39059,1000.); -#25343=VECTOR('',#39062,1000.); -#25344=VECTOR('',#39063,1000.); -#25345=VECTOR('',#39066,1000.); -#25346=VECTOR('',#39067,1000.); -#25347=VECTOR('',#39070,1000.); -#25348=VECTOR('',#39071,1000.); -#25349=VECTOR('',#39074,1000.); -#25350=VECTOR('',#39075,1000.); -#25351=VECTOR('',#39078,1000.); -#25352=VECTOR('',#39079,1000.); -#25353=VECTOR('',#39082,1000.); -#25354=VECTOR('',#39083,1000.); -#25355=VECTOR('',#39086,1000.); -#25356=VECTOR('',#39087,1000.); -#25357=VECTOR('',#39090,1000.); -#25358=VECTOR('',#39091,1000.); -#25359=VECTOR('',#39094,1000.); -#25360=VECTOR('',#39095,1000.); -#25361=VECTOR('',#39098,1000.); -#25362=VECTOR('',#39099,1000.); -#25363=VECTOR('',#39102,1000.); -#25364=VECTOR('',#39103,1000.); -#25365=VECTOR('',#39106,1000.); -#25366=VECTOR('',#39107,1000.); -#25367=VECTOR('',#39110,1000.); -#25368=VECTOR('',#39111,1000.); -#25369=VECTOR('',#39114,1000.); -#25370=VECTOR('',#39115,1000.); -#25371=VECTOR('',#39118,1000.); -#25372=VECTOR('',#39119,1000.); -#25373=VECTOR('',#39122,1000.); -#25374=VECTOR('',#39123,1000.); -#25375=VECTOR('',#39126,1000.); -#25376=VECTOR('',#39127,1000.); -#25377=VECTOR('',#39130,1000.); -#25378=VECTOR('',#39131,1000.); -#25379=VECTOR('',#39134,1000.); -#25380=VECTOR('',#39135,1000.); -#25381=VECTOR('',#39138,1000.); -#25382=VECTOR('',#39139,1000.); -#25383=VECTOR('',#39142,1000.); -#25384=VECTOR('',#39143,1000.); -#25385=VECTOR('',#39146,1000.); -#25386=VECTOR('',#39147,1000.); -#25387=VECTOR('',#39150,1000.); -#25388=VECTOR('',#39151,1000.); -#25389=VECTOR('',#39152,1000.); -#25390=VECTOR('',#39153,1000.); -#25391=VECTOR('',#39156,1000.); -#25392=VECTOR('',#39157,1000.); -#25393=VECTOR('',#39158,1000.); -#25394=VECTOR('',#39159,1000.); -#25395=VECTOR('',#39162,1000.); -#25396=VECTOR('',#39163,1000.); -#25397=VECTOR('',#39164,1000.); -#25398=VECTOR('',#39165,1000.); -#25399=VECTOR('',#39168,1000.); -#25400=VECTOR('',#39169,1000.); -#25401=VECTOR('',#39170,1000.); -#25402=VECTOR('',#39171,1000.); -#25403=VECTOR('',#39174,1000.); -#25404=VECTOR('',#39175,1000.); -#25405=VECTOR('',#39176,1000.); -#25406=VECTOR('',#39177,1000.); -#25407=VECTOR('',#39180,1000.); -#25408=VECTOR('',#39181,1000.); -#25409=VECTOR('',#39182,1000.); -#25410=VECTOR('',#39183,1000.); -#25411=VECTOR('',#39186,1000.); -#25412=VECTOR('',#39187,1000.); -#25413=VECTOR('',#39188,1000.); -#25414=VECTOR('',#39189,1000.); -#25415=VECTOR('',#39192,1000.); -#25416=VECTOR('',#39193,1000.); -#25417=VECTOR('',#39194,1000.); -#25418=VECTOR('',#39195,1000.); -#25419=VECTOR('',#39198,1000.); -#25420=VECTOR('',#39199,1000.); -#25421=VECTOR('',#39200,1000.); -#25422=VECTOR('',#39201,1000.); -#25423=VECTOR('',#39204,1000.); -#25424=VECTOR('',#39205,1000.); -#25425=VECTOR('',#39206,1000.); -#25426=VECTOR('',#39207,1000.); -#25427=VECTOR('',#39210,1000.); -#25428=VECTOR('',#39211,1000.); -#25429=VECTOR('',#39212,1000.); -#25430=VECTOR('',#39213,1000.); -#25431=VECTOR('',#39216,1000.); -#25432=VECTOR('',#39217,1000.); -#25433=VECTOR('',#39218,1000.); -#25434=VECTOR('',#39219,1000.); -#25435=VECTOR('',#39222,1000.); -#25436=VECTOR('',#39223,1000.); -#25437=VECTOR('',#39224,1000.); -#25438=VECTOR('',#39225,1000.); -#25439=VECTOR('',#39228,1000.); -#25440=VECTOR('',#39229,1000.); -#25441=VECTOR('',#39230,1000.); -#25442=VECTOR('',#39231,1000.); -#25443=VECTOR('',#39234,1000.); -#25444=VECTOR('',#39235,1000.); -#25445=VECTOR('',#39236,1000.); -#25446=VECTOR('',#39237,1000.); -#25447=VECTOR('',#39240,1000.); -#25448=VECTOR('',#39241,1000.); -#25449=VECTOR('',#39242,1000.); -#25450=VECTOR('',#39243,1000.); -#25451=VECTOR('',#39246,1000.); -#25452=VECTOR('',#39247,1000.); -#25453=VECTOR('',#39248,1000.); -#25454=VECTOR('',#39249,1000.); -#25455=VECTOR('',#39252,1000.); -#25456=VECTOR('',#39253,1000.); -#25457=VECTOR('',#39254,1000.); -#25458=VECTOR('',#39255,1000.); -#25459=VECTOR('',#39258,1000.); -#25460=VECTOR('',#39259,1000.); -#25461=VECTOR('',#39260,1000.); -#25462=VECTOR('',#39261,1000.); -#25463=VECTOR('',#39380,1000.); -#25464=VECTOR('',#39387,1000.); -#25465=VECTOR('',#39394,1000.); -#25466=VECTOR('',#39401,1000.); -#25467=VECTOR('',#39408,1000.); -#25468=VECTOR('',#39415,1000.); -#25469=VECTOR('',#39422,1000.); -#25470=VECTOR('',#39429,1000.); -#25471=VECTOR('',#39436,1000.); -#25472=VECTOR('',#39443,1000.); -#25473=VECTOR('',#39450,1000.); -#25474=VECTOR('',#39457,1000.); -#25475=VECTOR('',#39464,1000.); -#25476=VECTOR('',#39471,1000.); -#25477=VECTOR('',#39478,1000.); -#25478=VECTOR('',#39485,1000.); -#25479=VECTOR('',#39492,1000.); -#25480=VECTOR('',#39499,1000.); -#25481=VECTOR('',#39506,1000.); -#25482=VECTOR('',#39511,1000.); -#25483=VECTOR('',#39512,1000.); -#25484=VECTOR('',#39513,1000.); -#25485=VECTOR('',#39516,1000.); -#25486=VECTOR('',#39517,1000.); -#25487=VECTOR('',#39518,1000.); -#25488=VECTOR('',#39521,1000.); -#25489=VECTOR('',#39522,1000.); -#25490=VECTOR('',#39523,1000.); -#25491=VECTOR('',#39526,1000.); -#25492=VECTOR('',#39527,1000.); -#25493=VECTOR('',#39528,1000.); -#25494=VECTOR('',#39531,1000.); -#25495=VECTOR('',#39532,1000.); -#25496=VECTOR('',#39533,1000.); -#25497=VECTOR('',#39536,1000.); -#25498=VECTOR('',#39537,1000.); -#25499=VECTOR('',#39538,1000.); -#25500=VECTOR('',#39541,1000.); -#25501=VECTOR('',#39542,1000.); -#25502=VECTOR('',#39543,1000.); -#25503=VECTOR('',#39546,1000.); -#25504=VECTOR('',#39547,1000.); -#25505=VECTOR('',#39548,1000.); -#25506=VECTOR('',#39551,1000.); -#25507=VECTOR('',#39552,1000.); -#25508=VECTOR('',#39553,1000.); -#25509=VECTOR('',#39556,1000.); -#25510=VECTOR('',#39557,1000.); -#25511=VECTOR('',#39558,1000.); -#25512=VECTOR('',#39561,1000.); -#25513=VECTOR('',#39562,1000.); -#25514=VECTOR('',#39563,1000.); -#25515=VECTOR('',#39566,1000.); -#25516=VECTOR('',#39567,1000.); -#25517=VECTOR('',#39568,1000.); -#25518=VECTOR('',#39571,1000.); -#25519=VECTOR('',#39572,1000.); -#25520=VECTOR('',#39573,1000.); -#25521=VECTOR('',#39576,1000.); -#25522=VECTOR('',#39577,1000.); -#25523=VECTOR('',#39578,1000.); -#25524=VECTOR('',#39581,1000.); -#25525=VECTOR('',#39582,1000.); -#25526=VECTOR('',#39583,1000.); -#25527=VECTOR('',#39586,1000.); -#25528=VECTOR('',#39587,1000.); -#25529=VECTOR('',#39588,1000.); -#25530=VECTOR('',#39591,1000.); -#25531=VECTOR('',#39592,1000.); -#25532=VECTOR('',#39593,1000.); -#25533=VECTOR('',#39596,1000.); -#25534=VECTOR('',#39597,1000.); -#25535=VECTOR('',#39598,1000.); -#25536=VECTOR('',#39601,1000.); -#25537=VECTOR('',#39602,1000.); -#25538=VECTOR('',#39603,1000.); -#25539=VECTOR('',#39834,1000.); -#25540=VECTOR('',#39835,1000.); -#25541=VECTOR('',#39836,1000.); -#25542=VECTOR('',#39837,1000.); -#25543=VECTOR('',#39848,1000.); -#25544=VECTOR('',#39853,1000.); -#25545=VECTOR('',#39854,1000.); -#25546=VECTOR('',#39855,1000.); -#25547=VECTOR('',#39870,1000.); -#25548=VECTOR('',#39875,1000.); -#25549=VECTOR('',#39880,1000.); -#25550=VECTOR('',#39885,1000.); -#25551=VECTOR('',#39890,1000.); -#25552=VECTOR('',#39895,1000.); -#25553=VECTOR('',#39900,1000.); -#25554=VECTOR('',#39905,1000.); -#25555=VECTOR('',#39910,1000.); -#25556=VECTOR('',#39915,1000.); -#25557=VECTOR('',#39920,1000.); -#25558=VECTOR('',#39925,1000.); -#25559=VECTOR('',#39930,1000.); -#25560=VECTOR('',#39935,1000.); -#25561=VECTOR('',#39940,1000.); -#25562=VECTOR('',#39945,1000.); -#25563=VECTOR('',#39950,1000.); -#25564=VECTOR('',#39955,1000.); -#25565=VECTOR('',#39960,1000.); -#25566=VECTOR('',#39965,1000.); -#25567=VECTOR('',#39970,1000.); -#25568=VECTOR('',#39975,1000.); -#25569=VECTOR('',#39980,1000.); -#25570=VECTOR('',#39985,1000.); -#25571=VECTOR('',#39990,1000.); -#25572=VECTOR('',#39995,1000.); -#25573=VECTOR('',#40000,1000.); -#25574=VECTOR('',#40005,1000.); -#25575=VECTOR('',#40010,1000.); -#25576=VECTOR('',#40015,1000.); -#25577=VECTOR('',#40020,1000.); -#25578=VECTOR('',#40025,1000.); -#25579=VECTOR('',#40030,1000.); -#25580=VECTOR('',#40035,1000.); -#25581=VECTOR('',#40040,1000.); -#25582=VECTOR('',#40045,1000.); -#25583=VECTOR('',#40050,1000.); -#25584=VECTOR('',#40055,1000.); -#25585=VECTOR('',#40060,1000.); -#25586=VECTOR('',#40065,1000.); -#25587=VECTOR('',#40070,1000.); -#25588=VECTOR('',#40075,1000.); -#25589=VECTOR('',#40080,1000.); -#25590=VECTOR('',#40085,1000.); -#25591=VECTOR('',#40090,1000.); -#25592=VECTOR('',#40095,1000.); -#25593=VECTOR('',#40100,1000.); -#25594=VECTOR('',#40105,1000.); -#25595=VECTOR('',#40110,1000.); -#25596=VECTOR('',#40115,1000.); -#25597=VECTOR('',#40120,1000.); -#25598=VECTOR('',#40125,1000.); -#25599=VECTOR('',#40130,1000.); -#25600=VECTOR('',#40135,1000.); -#25601=VECTOR('',#40140,1000.); -#25602=VECTOR('',#40145,1000.); -#25603=VECTOR('',#40150,1000.); -#25604=VECTOR('',#40155,1000.); -#25605=VECTOR('',#40160,1000.); -#25606=VECTOR('',#40165,1000.); -#25607=VECTOR('',#40170,1000.); -#25608=VECTOR('',#40175,1000.); -#25609=VECTOR('',#40180,1000.); -#25610=VECTOR('',#40185,1000.); -#25611=VECTOR('',#40190,1000.); -#25612=VECTOR('',#40195,1000.); -#25613=VECTOR('',#40200,1000.); -#25614=VECTOR('',#40205,1000.); -#25615=VECTOR('',#40210,1000.); -#25616=VECTOR('',#40215,1000.); -#25617=VECTOR('',#40220,1000.); -#25618=VECTOR('',#40225,1000.); -#25619=VECTOR('',#40230,1000.); -#25620=VECTOR('',#40235,1000.); -#25621=VECTOR('',#40240,1000.); -#25622=VECTOR('',#40245,1000.); -#25623=VECTOR('',#40250,1000.); -#25624=VECTOR('',#40255,1000.); -#25625=VECTOR('',#40260,1000.); -#25626=VECTOR('',#40263,1000.); -#25627=VECTOR('',#40354,1000.); -#25628=VECTOR('',#40355,1000.); -#25629=VECTOR('',#40356,1000.); -#25630=VECTOR('',#40357,1000.); -#25631=VECTOR('',#40360,1000.); -#25632=VECTOR('',#40363,1000.); -#25633=VECTOR('',#40366,1000.); -#25634=VECTOR('',#40369,1000.); -#25635=VECTOR('',#40372,1000.); -#25636=VECTOR('',#40375,1000.); -#25637=VECTOR('',#40376,1000.); -#25638=VECTOR('',#40377,1000.); -#25639=VECTOR('',#40380,1000.); -#25640=VECTOR('',#40383,1000.); -#25641=VECTOR('',#40386,1000.); -#25642=VECTOR('',#40389,1000.); -#25643=VECTOR('',#40392,1000.); -#25644=VECTOR('',#40395,1000.); -#25645=VECTOR('',#40396,1000.); -#25646=VECTOR('',#40397,1000.); -#25647=VECTOR('',#40400,1000.); -#25648=VECTOR('',#40403,1000.); -#25649=VECTOR('',#40406,1000.); -#25650=VECTOR('',#40409,1000.); -#25651=VECTOR('',#40412,1000.); -#25652=VECTOR('',#40415,1000.); -#25653=VECTOR('',#40416,1000.); -#25654=VECTOR('',#40417,1000.); -#25655=VECTOR('',#40420,1000.); -#25656=VECTOR('',#40423,1000.); -#25657=VECTOR('',#40426,1000.); -#25658=VECTOR('',#40429,1000.); -#25659=VECTOR('',#40432,1000.); -#25660=VECTOR('',#40435,1000.); -#25661=VECTOR('',#40436,1000.); -#25662=VECTOR('',#40437,1000.); -#25663=VECTOR('',#40440,1000.); -#25664=VECTOR('',#40443,1000.); -#25665=VECTOR('',#40446,1000.); -#25666=VECTOR('',#40449,1000.); -#25667=VECTOR('',#40452,1000.); -#25668=VECTOR('',#40455,1000.); -#25669=VECTOR('',#40456,1000.); -#25670=VECTOR('',#40457,1000.); -#25671=VECTOR('',#40460,1000.); -#25672=VECTOR('',#40463,1000.); -#25673=VECTOR('',#40466,1000.); -#25674=VECTOR('',#40469,1000.); -#25675=VECTOR('',#40472,1000.); -#25676=VECTOR('',#40475,1000.); -#25677=VECTOR('',#40476,1000.); -#25678=VECTOR('',#40477,1000.); -#25679=VECTOR('',#40480,1000.); -#25680=VECTOR('',#40483,1000.); -#25681=VECTOR('',#40486,1000.); -#25682=VECTOR('',#40489,1000.); -#25683=VECTOR('',#40492,1000.); -#25684=VECTOR('',#40495,1000.); -#25685=VECTOR('',#40496,1000.); -#25686=VECTOR('',#40497,1000.); -#25687=VECTOR('',#40500,1000.); -#25688=VECTOR('',#40503,1000.); -#25689=VECTOR('',#40506,1000.); -#25690=VECTOR('',#40509,1000.); -#25691=VECTOR('',#40512,1000.); -#25692=VECTOR('',#40515,1000.); -#25693=VECTOR('',#40516,1000.); -#25694=VECTOR('',#40517,1000.); -#25695=VECTOR('',#40520,1000.); -#25696=VECTOR('',#40523,1000.); -#25697=VECTOR('',#40526,1000.); -#25698=VECTOR('',#40529,1000.); -#25699=VECTOR('',#40532,1000.); -#25700=VECTOR('',#40535,1000.); -#25701=VECTOR('',#40536,1000.); -#25702=VECTOR('',#40537,1000.); -#25703=VECTOR('',#40540,1000.); -#25704=VECTOR('',#40543,1000.); -#25705=VECTOR('',#40546,1000.); -#25706=VECTOR('',#40549,1000.); -#25707=VECTOR('',#40552,1000.); -#25708=VECTOR('',#40555,1000.); -#25709=VECTOR('',#40556,1000.); -#25710=VECTOR('',#40557,1000.); -#25711=VECTOR('',#40560,1000.); -#25712=VECTOR('',#40563,1000.); -#25713=VECTOR('',#40566,1000.); -#25714=VECTOR('',#40569,1000.); -#25715=VECTOR('',#40572,1000.); -#25716=VECTOR('',#40575,1000.); -#25717=VECTOR('',#40576,1000.); -#25718=VECTOR('',#40577,1000.); -#25719=VECTOR('',#40580,1000.); -#25720=VECTOR('',#40583,1000.); -#25721=VECTOR('',#40586,1000.); -#25722=VECTOR('',#40589,1000.); -#25723=VECTOR('',#40592,1000.); -#25724=VECTOR('',#40595,1000.); -#25725=VECTOR('',#40596,1000.); -#25726=VECTOR('',#40597,1000.); -#25727=VECTOR('',#40600,1000.); -#25728=VECTOR('',#40603,1000.); -#25729=VECTOR('',#40606,1000.); -#25730=VECTOR('',#40609,1000.); -#25731=VECTOR('',#40612,1000.); -#25732=VECTOR('',#40615,1000.); -#25733=VECTOR('',#40616,1000.); -#25734=VECTOR('',#40617,1000.); -#25735=VECTOR('',#40620,1000.); -#25736=VECTOR('',#40623,1000.); -#25737=VECTOR('',#40626,1000.); -#25738=VECTOR('',#40629,1000.); -#25739=VECTOR('',#40632,1000.); -#25740=VECTOR('',#40635,1000.); -#25741=VECTOR('',#40636,1000.); -#25742=VECTOR('',#40637,1000.); -#25743=VECTOR('',#40640,1000.); -#25744=VECTOR('',#40643,1000.); -#25745=VECTOR('',#40646,1000.); -#25746=VECTOR('',#40649,1000.); -#25747=VECTOR('',#40652,1000.); -#25748=VECTOR('',#40655,1000.); -#25749=VECTOR('',#40656,1000.); -#25750=VECTOR('',#40657,1000.); -#25751=VECTOR('',#40660,1000.); -#25752=VECTOR('',#40663,1000.); -#25753=VECTOR('',#40666,1000.); -#25754=VECTOR('',#40669,1000.); -#25755=VECTOR('',#40672,1000.); -#25756=VECTOR('',#40675,1000.); -#25757=VECTOR('',#40676,1000.); -#25758=VECTOR('',#40677,1000.); -#25759=VECTOR('',#40680,1000.); -#25760=VECTOR('',#40683,1000.); -#25761=VECTOR('',#40686,1000.); -#25762=VECTOR('',#40689,1000.); -#25763=VECTOR('',#40692,1000.); -#25764=VECTOR('',#40695,1000.); -#25765=VECTOR('',#40696,1000.); -#25766=VECTOR('',#40697,1000.); -#25767=VECTOR('',#40700,1000.); -#25768=VECTOR('',#40703,1000.); -#25769=VECTOR('',#40706,1000.); -#25770=VECTOR('',#40709,1000.); -#25771=VECTOR('',#40712,1000.); -#25772=VECTOR('',#40715,1000.); -#25773=VECTOR('',#40716,1000.); -#25774=VECTOR('',#40717,1000.); -#25775=VECTOR('',#40720,1000.); -#25776=VECTOR('',#40723,1000.); -#25777=VECTOR('',#40726,1000.); -#25778=VECTOR('',#40729,1000.); -#25779=VECTOR('',#40732,1000.); -#25780=VECTOR('',#40735,1000.); -#25781=VECTOR('',#40736,1000.); -#25782=VECTOR('',#40737,1000.); -#25783=VECTOR('',#40740,1000.); -#25784=VECTOR('',#40743,1000.); -#25785=VECTOR('',#40746,1000.); -#25786=VECTOR('',#40749,1000.); -#25787=VECTOR('',#40752,1000.); -#25788=VECTOR('',#40755,1000.); -#25789=VECTOR('',#40756,1000.); -#25790=VECTOR('',#40757,1000.); -#25791=VECTOR('',#40760,1000.); -#25792=VECTOR('',#40761,1000.); -#25793=VECTOR('',#40762,1000.); -#25794=VECTOR('',#40763,1000.); -#25795=VECTOR('',#40766,1000.); -#25796=VECTOR('',#40769,1000.); -#25797=VECTOR('',#40772,1000.); -#25798=VECTOR('',#40775,1000.); -#25799=VECTOR('',#40778,1000.); -#25800=VECTOR('',#40781,1000.); -#25801=VECTOR('',#40782,1000.); -#25802=VECTOR('',#40783,1000.); -#25803=VECTOR('',#40786,1000.); -#25804=VECTOR('',#40789,1000.); -#25805=VECTOR('',#40792,1000.); -#25806=VECTOR('',#40795,1000.); -#25807=VECTOR('',#40798,1000.); -#25808=VECTOR('',#40801,1000.); -#25809=VECTOR('',#40802,1000.); -#25810=VECTOR('',#40803,1000.); -#25811=VECTOR('',#40806,1000.); -#25812=VECTOR('',#40809,1000.); -#25813=VECTOR('',#40812,1000.); -#25814=VECTOR('',#40815,1000.); -#25815=VECTOR('',#40818,1000.); -#25816=VECTOR('',#40821,1000.); -#25817=VECTOR('',#40822,1000.); -#25818=VECTOR('',#40823,1000.); -#25819=VECTOR('',#40826,1000.); -#25820=VECTOR('',#40829,1000.); -#25821=VECTOR('',#40832,1000.); -#25822=VECTOR('',#40835,1000.); -#25823=VECTOR('',#40838,1000.); -#25824=VECTOR('',#40841,1000.); -#25825=VECTOR('',#40842,1000.); -#25826=VECTOR('',#40843,1000.); -#25827=VECTOR('',#40846,1000.); -#25828=VECTOR('',#40849,1000.); -#25829=VECTOR('',#40852,1000.); -#25830=VECTOR('',#40855,1000.); -#25831=VECTOR('',#40858,1000.); -#25832=VECTOR('',#40861,1000.); -#25833=VECTOR('',#40862,1000.); -#25834=VECTOR('',#40863,1000.); -#25835=VECTOR('',#40866,1000.); -#25836=VECTOR('',#40869,1000.); -#25837=VECTOR('',#40872,1000.); -#25838=VECTOR('',#40875,1000.); -#25839=VECTOR('',#40878,1000.); -#25840=VECTOR('',#40881,1000.); -#25841=VECTOR('',#40882,1000.); -#25842=VECTOR('',#40883,1000.); -#25843=VECTOR('',#40886,1000.); -#25844=VECTOR('',#40889,1000.); -#25845=VECTOR('',#40892,1000.); -#25846=VECTOR('',#40895,1000.); -#25847=VECTOR('',#40898,1000.); -#25848=VECTOR('',#40901,1000.); -#25849=VECTOR('',#40902,1000.); -#25850=VECTOR('',#40903,1000.); -#25851=VECTOR('',#40906,1000.); -#25852=VECTOR('',#40909,1000.); -#25853=VECTOR('',#40912,1000.); -#25854=VECTOR('',#40915,1000.); -#25855=VECTOR('',#40918,1000.); -#25856=VECTOR('',#40921,1000.); -#25857=VECTOR('',#40922,1000.); -#25858=VECTOR('',#40923,1000.); -#25859=VECTOR('',#40926,1000.); -#25860=VECTOR('',#40929,1000.); -#25861=VECTOR('',#40932,1000.); -#25862=VECTOR('',#40935,1000.); -#25863=VECTOR('',#40938,1000.); -#25864=VECTOR('',#40941,1000.); -#25865=VECTOR('',#40942,1000.); -#25866=VECTOR('',#40943,1000.); -#25867=VECTOR('',#40946,1000.); -#25868=VECTOR('',#40949,1000.); -#25869=VECTOR('',#40952,1000.); -#25870=VECTOR('',#40955,1000.); -#25871=VECTOR('',#40958,1000.); -#25872=VECTOR('',#40961,1000.); -#25873=VECTOR('',#40962,1000.); -#25874=VECTOR('',#40963,1000.); -#25875=VECTOR('',#40966,1000.); -#25876=VECTOR('',#40969,1000.); -#25877=VECTOR('',#40972,1000.); -#25878=VECTOR('',#40975,1000.); -#25879=VECTOR('',#40978,1000.); -#25880=VECTOR('',#40981,1000.); -#25881=VECTOR('',#40982,1000.); -#25882=VECTOR('',#40983,1000.); -#25883=VECTOR('',#40986,1000.); -#25884=VECTOR('',#40989,1000.); -#25885=VECTOR('',#40992,1000.); -#25886=VECTOR('',#40995,1000.); -#25887=VECTOR('',#40998,1000.); -#25888=VECTOR('',#41001,1000.); -#25889=VECTOR('',#41002,1000.); -#25890=VECTOR('',#41003,1000.); -#25891=VECTOR('',#41006,1000.); -#25892=VECTOR('',#41009,1000.); -#25893=VECTOR('',#41012,1000.); -#25894=VECTOR('',#41015,1000.); -#25895=VECTOR('',#41018,1000.); -#25896=VECTOR('',#41021,1000.); -#25897=VECTOR('',#41022,1000.); -#25898=VECTOR('',#41023,1000.); -#25899=VECTOR('',#41026,1000.); -#25900=VECTOR('',#41029,1000.); -#25901=VECTOR('',#41032,1000.); -#25902=VECTOR('',#41035,1000.); -#25903=VECTOR('',#41038,1000.); -#25904=VECTOR('',#41041,1000.); -#25905=VECTOR('',#41042,1000.); -#25906=VECTOR('',#41043,1000.); -#25907=VECTOR('',#41046,1000.); -#25908=VECTOR('',#41049,1000.); -#25909=VECTOR('',#41052,1000.); -#25910=VECTOR('',#41055,1000.); -#25911=VECTOR('',#41058,1000.); -#25912=VECTOR('',#41061,1000.); -#25913=VECTOR('',#41062,1000.); -#25914=VECTOR('',#41063,1000.); -#25915=VECTOR('',#41066,1000.); -#25916=VECTOR('',#41069,1000.); -#25917=VECTOR('',#41072,1000.); -#25918=VECTOR('',#41075,1000.); -#25919=VECTOR('',#41078,1000.); -#25920=VECTOR('',#41081,1000.); -#25921=VECTOR('',#41082,1000.); -#25922=VECTOR('',#41083,1000.); -#25923=VECTOR('',#41086,1000.); -#25924=VECTOR('',#41089,1000.); -#25925=VECTOR('',#41092,1000.); -#25926=VECTOR('',#41095,1000.); -#25927=VECTOR('',#41098,1000.); -#25928=VECTOR('',#41101,1000.); -#25929=VECTOR('',#41102,1000.); -#25930=VECTOR('',#41103,1000.); -#25931=VECTOR('',#41106,1000.); -#25932=VECTOR('',#41109,1000.); -#25933=VECTOR('',#41112,1000.); -#25934=VECTOR('',#41115,1000.); -#25935=VECTOR('',#41118,1000.); -#25936=VECTOR('',#41121,1000.); -#25937=VECTOR('',#41122,1000.); -#25938=VECTOR('',#41123,1000.); -#25939=VECTOR('',#41126,1000.); -#25940=VECTOR('',#41129,1000.); -#25941=VECTOR('',#41132,1000.); -#25942=VECTOR('',#41135,1000.); -#25943=VECTOR('',#41138,1000.); -#25944=VECTOR('',#41141,1000.); -#25945=VECTOR('',#41142,1000.); -#25946=VECTOR('',#41143,1000.); -#25947=VECTOR('',#41146,1000.); -#25948=VECTOR('',#41149,1000.); -#25949=VECTOR('',#41152,1000.); -#25950=VECTOR('',#41155,1000.); -#25951=VECTOR('',#41158,1000.); -#25952=VECTOR('',#41161,1000.); -#25953=VECTOR('',#41162,1000.); -#25954=VECTOR('',#41163,1000.); -#25955=VECTOR('',#41166,1000.); -#25956=VECTOR('',#41167,1000.); -#25957=VECTOR('',#41168,1000.); -#25958=VECTOR('',#41169,1000.); -#25959=VECTOR('',#41172,1000.); -#25960=VECTOR('',#41175,1000.); -#25961=VECTOR('',#41178,1000.); -#25962=VECTOR('',#41181,1000.); -#25963=VECTOR('',#41184,1000.); -#25964=VECTOR('',#41187,1000.); -#25965=VECTOR('',#41188,1000.); -#25966=VECTOR('',#41189,1000.); -#25967=VECTOR('',#41192,1000.); -#25968=VECTOR('',#41195,1000.); -#25969=VECTOR('',#41198,1000.); -#25970=VECTOR('',#41201,1000.); -#25971=VECTOR('',#41204,1000.); -#25972=VECTOR('',#41207,1000.); -#25973=VECTOR('',#41208,1000.); -#25974=VECTOR('',#41209,1000.); -#25975=VECTOR('',#41212,1000.); -#25976=VECTOR('',#41215,1000.); -#25977=VECTOR('',#41218,1000.); -#25978=VECTOR('',#41221,1000.); -#25979=VECTOR('',#41224,1000.); -#25980=VECTOR('',#41227,1000.); -#25981=VECTOR('',#41228,1000.); -#25982=VECTOR('',#41229,1000.); -#25983=VECTOR('',#41232,1000.); -#25984=VECTOR('',#41235,1000.); -#25985=VECTOR('',#41238,1000.); -#25986=VECTOR('',#41241,1000.); -#25987=VECTOR('',#41244,1000.); -#25988=VECTOR('',#41247,1000.); -#25989=VECTOR('',#41248,1000.); -#25990=VECTOR('',#41249,1000.); -#25991=VECTOR('',#41252,1000.); -#25992=VECTOR('',#41255,1000.); -#25993=VECTOR('',#41258,1000.); -#25994=VECTOR('',#41261,1000.); -#25995=VECTOR('',#41264,1000.); -#25996=VECTOR('',#41267,1000.); -#25997=VECTOR('',#41268,1000.); -#25998=VECTOR('',#41269,1000.); -#25999=VECTOR('',#41272,1000.); -#26000=VECTOR('',#41275,1000.); -#26001=VECTOR('',#41278,1000.); -#26002=VECTOR('',#41281,1000.); -#26003=VECTOR('',#41284,1000.); -#26004=VECTOR('',#41287,1000.); -#26005=VECTOR('',#41288,1000.); -#26006=VECTOR('',#41289,1000.); -#26007=VECTOR('',#41292,1000.); -#26008=VECTOR('',#41295,1000.); -#26009=VECTOR('',#41298,1000.); -#26010=VECTOR('',#41301,1000.); -#26011=VECTOR('',#41304,1000.); -#26012=VECTOR('',#41307,1000.); -#26013=VECTOR('',#41308,1000.); -#26014=VECTOR('',#41309,1000.); -#26015=VECTOR('',#41312,1000.); -#26016=VECTOR('',#41315,1000.); -#26017=VECTOR('',#41318,1000.); -#26018=VECTOR('',#41321,1000.); -#26019=VECTOR('',#41324,1000.); -#26020=VECTOR('',#41327,1000.); -#26021=VECTOR('',#41328,1000.); -#26022=VECTOR('',#41329,1000.); -#26023=VECTOR('',#41332,1000.); -#26024=VECTOR('',#41335,1000.); -#26025=VECTOR('',#41338,1000.); -#26026=VECTOR('',#41341,1000.); -#26027=VECTOR('',#41344,1000.); -#26028=VECTOR('',#41347,1000.); -#26029=VECTOR('',#41348,1000.); -#26030=VECTOR('',#41349,1000.); -#26031=VECTOR('',#41352,1000.); -#26032=VECTOR('',#41355,1000.); -#26033=VECTOR('',#41358,1000.); -#26034=VECTOR('',#41361,1000.); -#26035=VECTOR('',#41364,1000.); -#26036=VECTOR('',#41367,1000.); -#26037=VECTOR('',#41368,1000.); -#26038=VECTOR('',#41369,1000.); -#26039=VECTOR('',#41372,1000.); -#26040=VECTOR('',#41375,1000.); -#26041=VECTOR('',#41378,1000.); -#26042=VECTOR('',#41381,1000.); -#26043=VECTOR('',#41384,1000.); -#26044=VECTOR('',#41387,1000.); -#26045=VECTOR('',#41388,1000.); -#26046=VECTOR('',#41389,1000.); -#26047=VECTOR('',#41392,1000.); -#26048=VECTOR('',#41395,1000.); -#26049=VECTOR('',#41398,1000.); -#26050=VECTOR('',#41401,1000.); -#26051=VECTOR('',#41404,1000.); -#26052=VECTOR('',#41407,1000.); -#26053=VECTOR('',#41408,1000.); -#26054=VECTOR('',#41409,1000.); -#26055=VECTOR('',#41412,1000.); -#26056=VECTOR('',#41415,1000.); -#26057=VECTOR('',#41418,1000.); -#26058=VECTOR('',#41421,1000.); -#26059=VECTOR('',#41424,1000.); -#26060=VECTOR('',#41427,1000.); -#26061=VECTOR('',#41428,1000.); -#26062=VECTOR('',#41429,1000.); -#26063=VECTOR('',#41432,1000.); -#26064=VECTOR('',#41435,1000.); -#26065=VECTOR('',#41438,1000.); -#26066=VECTOR('',#41441,1000.); -#26067=VECTOR('',#41444,1000.); -#26068=VECTOR('',#41447,1000.); -#26069=VECTOR('',#41448,1000.); -#26070=VECTOR('',#41449,1000.); -#26071=VECTOR('',#41452,1000.); -#26072=VECTOR('',#41455,1000.); -#26073=VECTOR('',#41458,1000.); -#26074=VECTOR('',#41461,1000.); -#26075=VECTOR('',#41464,1000.); -#26076=VECTOR('',#41467,1000.); -#26077=VECTOR('',#41468,1000.); -#26078=VECTOR('',#41469,1000.); -#26079=VECTOR('',#41472,1000.); -#26080=VECTOR('',#41475,1000.); -#26081=VECTOR('',#41478,1000.); -#26082=VECTOR('',#41481,1000.); -#26083=VECTOR('',#41484,1000.); -#26084=VECTOR('',#41487,1000.); -#26085=VECTOR('',#41488,1000.); -#26086=VECTOR('',#41489,1000.); -#26087=VECTOR('',#41492,1000.); -#26088=VECTOR('',#41495,1000.); -#26089=VECTOR('',#41498,1000.); -#26090=VECTOR('',#41501,1000.); -#26091=VECTOR('',#41504,1000.); -#26092=VECTOR('',#41507,1000.); -#26093=VECTOR('',#41508,1000.); -#26094=VECTOR('',#41509,1000.); -#26095=VECTOR('',#41512,1000.); -#26096=VECTOR('',#41515,1000.); -#26097=VECTOR('',#41518,1000.); -#26098=VECTOR('',#41521,1000.); -#26099=VECTOR('',#41524,1000.); -#26100=VECTOR('',#41527,1000.); -#26101=VECTOR('',#41528,1000.); -#26102=VECTOR('',#41529,1000.); -#26103=VECTOR('',#41532,1000.); -#26104=VECTOR('',#41535,1000.); -#26105=VECTOR('',#41538,1000.); -#26106=VECTOR('',#41541,1000.); -#26107=VECTOR('',#41544,1000.); -#26108=VECTOR('',#41547,1000.); -#26109=VECTOR('',#41548,1000.); -#26110=VECTOR('',#41549,1000.); -#26111=VECTOR('',#41552,1000.); -#26112=VECTOR('',#41555,1000.); -#26113=VECTOR('',#41558,1000.); -#26114=VECTOR('',#41561,1000.); -#26115=VECTOR('',#41564,1000.); -#26116=VECTOR('',#41567,1000.); -#26117=VECTOR('',#41568,1000.); -#26118=VECTOR('',#41569,1000.); -#26119=VECTOR('',#41572,1000.); -#26120=VECTOR('',#41573,1000.); -#26121=VECTOR('',#41574,1000.); -#26122=VECTOR('',#41575,1000.); -#26123=VECTOR('',#41578,1000.); -#26124=VECTOR('',#41581,1000.); -#26125=VECTOR('',#41584,1000.); -#26126=VECTOR('',#41587,1000.); -#26127=VECTOR('',#41590,1000.); -#26128=VECTOR('',#41593,1000.); -#26129=VECTOR('',#41594,1000.); -#26130=VECTOR('',#41595,1000.); -#26131=VECTOR('',#41598,1000.); -#26132=VECTOR('',#41601,1000.); -#26133=VECTOR('',#41604,1000.); -#26134=VECTOR('',#41607,1000.); -#26135=VECTOR('',#41610,1000.); -#26136=VECTOR('',#41613,1000.); -#26137=VECTOR('',#41614,1000.); -#26138=VECTOR('',#41615,1000.); -#26139=VECTOR('',#41618,1000.); -#26140=VECTOR('',#41621,1000.); -#26141=VECTOR('',#41624,1000.); -#26142=VECTOR('',#41627,1000.); -#26143=VECTOR('',#41630,1000.); -#26144=VECTOR('',#41633,1000.); -#26145=VECTOR('',#41634,1000.); -#26146=VECTOR('',#41635,1000.); -#26147=VECTOR('',#41638,1000.); -#26148=VECTOR('',#41641,1000.); -#26149=VECTOR('',#41644,1000.); -#26150=VECTOR('',#41647,1000.); -#26151=VECTOR('',#41650,1000.); -#26152=VECTOR('',#41653,1000.); -#26153=VECTOR('',#41654,1000.); -#26154=VECTOR('',#41655,1000.); -#26155=VECTOR('',#41658,1000.); -#26156=VECTOR('',#41661,1000.); -#26157=VECTOR('',#41664,1000.); -#26158=VECTOR('',#41667,1000.); -#26159=VECTOR('',#41670,1000.); -#26160=VECTOR('',#41673,1000.); -#26161=VECTOR('',#41674,1000.); -#26162=VECTOR('',#41675,1000.); -#26163=VECTOR('',#41678,1000.); -#26164=VECTOR('',#41681,1000.); -#26165=VECTOR('',#41684,1000.); -#26166=VECTOR('',#41687,1000.); -#26167=VECTOR('',#41690,1000.); -#26168=VECTOR('',#41693,1000.); -#26169=VECTOR('',#41694,1000.); -#26170=VECTOR('',#41695,1000.); -#26171=VECTOR('',#41698,1000.); -#26172=VECTOR('',#41701,1000.); -#26173=VECTOR('',#41704,1000.); -#26174=VECTOR('',#41707,1000.); -#26175=VECTOR('',#41710,1000.); -#26176=VECTOR('',#41713,1000.); -#26177=VECTOR('',#41714,1000.); -#26178=VECTOR('',#41715,1000.); -#26179=VECTOR('',#41718,1000.); -#26180=VECTOR('',#41721,1000.); -#26181=VECTOR('',#41724,1000.); -#26182=VECTOR('',#41727,1000.); -#26183=VECTOR('',#41730,1000.); -#26184=VECTOR('',#41733,1000.); -#26185=VECTOR('',#41734,1000.); -#26186=VECTOR('',#41735,1000.); -#26187=VECTOR('',#41738,1000.); -#26188=VECTOR('',#41741,1000.); -#26189=VECTOR('',#41744,1000.); -#26190=VECTOR('',#41747,1000.); -#26191=VECTOR('',#41750,1000.); -#26192=VECTOR('',#41753,1000.); -#26193=VECTOR('',#41754,1000.); -#26194=VECTOR('',#41755,1000.); -#26195=VECTOR('',#41758,1000.); -#26196=VECTOR('',#41761,1000.); -#26197=VECTOR('',#41764,1000.); -#26198=VECTOR('',#41767,1000.); -#26199=VECTOR('',#41770,1000.); -#26200=VECTOR('',#41773,1000.); -#26201=VECTOR('',#41774,1000.); -#26202=VECTOR('',#41775,1000.); -#26203=VECTOR('',#41778,1000.); -#26204=VECTOR('',#41781,1000.); -#26205=VECTOR('',#41784,1000.); -#26206=VECTOR('',#41787,1000.); -#26207=VECTOR('',#41790,1000.); -#26208=VECTOR('',#41793,1000.); -#26209=VECTOR('',#41794,1000.); -#26210=VECTOR('',#41795,1000.); -#26211=VECTOR('',#41798,1000.); -#26212=VECTOR('',#41801,1000.); -#26213=VECTOR('',#41804,1000.); -#26214=VECTOR('',#41807,1000.); -#26215=VECTOR('',#41810,1000.); -#26216=VECTOR('',#41813,1000.); -#26217=VECTOR('',#41814,1000.); -#26218=VECTOR('',#41815,1000.); -#26219=VECTOR('',#41818,1000.); -#26220=VECTOR('',#41821,1000.); -#26221=VECTOR('',#41824,1000.); -#26222=VECTOR('',#41827,1000.); -#26223=VECTOR('',#41830,1000.); -#26224=VECTOR('',#41833,1000.); -#26225=VECTOR('',#41834,1000.); -#26226=VECTOR('',#41835,1000.); -#26227=VECTOR('',#41838,1000.); -#26228=VECTOR('',#41841,1000.); -#26229=VECTOR('',#41844,1000.); -#26230=VECTOR('',#41847,1000.); -#26231=VECTOR('',#41850,1000.); -#26232=VECTOR('',#41853,1000.); -#26233=VECTOR('',#41854,1000.); -#26234=VECTOR('',#41855,1000.); -#26235=VECTOR('',#41858,1000.); -#26236=VECTOR('',#41861,1000.); -#26237=VECTOR('',#41864,1000.); -#26238=VECTOR('',#41867,1000.); -#26239=VECTOR('',#41870,1000.); -#26240=VECTOR('',#41873,1000.); -#26241=VECTOR('',#41874,1000.); -#26242=VECTOR('',#41875,1000.); -#26243=VECTOR('',#41878,1000.); -#26244=VECTOR('',#41881,1000.); -#26245=VECTOR('',#41884,1000.); -#26246=VECTOR('',#41887,1000.); -#26247=VECTOR('',#41890,1000.); -#26248=VECTOR('',#41893,1000.); -#26249=VECTOR('',#41894,1000.); -#26250=VECTOR('',#41895,1000.); -#26251=VECTOR('',#41898,1000.); -#26252=VECTOR('',#41901,1000.); -#26253=VECTOR('',#41904,1000.); -#26254=VECTOR('',#41907,1000.); -#26255=VECTOR('',#41910,1000.); -#26256=VECTOR('',#41913,1000.); -#26257=VECTOR('',#41914,1000.); -#26258=VECTOR('',#41915,1000.); -#26259=VECTOR('',#41918,1000.); -#26260=VECTOR('',#41921,1000.); -#26261=VECTOR('',#41924,1000.); -#26262=VECTOR('',#41927,1000.); -#26263=VECTOR('',#41930,1000.); -#26264=VECTOR('',#41933,1000.); -#26265=VECTOR('',#41934,1000.); -#26266=VECTOR('',#41935,1000.); -#26267=VECTOR('',#41938,1000.); -#26268=VECTOR('',#41941,1000.); -#26269=VECTOR('',#41944,1000.); -#26270=VECTOR('',#41947,1000.); -#26271=VECTOR('',#41950,1000.); -#26272=VECTOR('',#41953,1000.); -#26273=VECTOR('',#41954,1000.); -#26274=VECTOR('',#41955,1000.); -#26275=VECTOR('',#41958,1000.); -#26276=VECTOR('',#41961,1000.); -#26277=VECTOR('',#41964,1000.); -#26278=VECTOR('',#41967,1000.); -#26279=VECTOR('',#41970,1000.); -#26280=VECTOR('',#41973,1000.); -#26281=VECTOR('',#41974,1000.); -#26282=VECTOR('',#41975,1000.); -#26283=VECTOR('',#41978,1000.); -#26284=VECTOR('',#41979,1000.); -#26285=VECTOR('',#41982,1000.); -#26286=VECTOR('',#41983,1000.); -#26287=VECTOR('',#41986,1000.); -#26288=VECTOR('',#41987,1000.); -#26289=VECTOR('',#41990,1000.); -#26290=VECTOR('',#41991,1000.); -#26291=VECTOR('',#41994,1000.); -#26292=VECTOR('',#41995,1000.); -#26293=VECTOR('',#41998,1000.); -#26294=VECTOR('',#41999,1000.); -#26295=VECTOR('',#42002,1000.); -#26296=VECTOR('',#42003,1000.); -#26297=VECTOR('',#42006,1000.); -#26298=VECTOR('',#42007,1000.); -#26299=VECTOR('',#42010,1000.); -#26300=VECTOR('',#42011,1000.); -#26301=VECTOR('',#42014,1000.); -#26302=VECTOR('',#42015,1000.); -#26303=VECTOR('',#42018,1000.); -#26304=VECTOR('',#42019,1000.); -#26305=VECTOR('',#42022,1000.); -#26306=VECTOR('',#42023,1000.); -#26307=VECTOR('',#42026,1000.); -#26308=VECTOR('',#42027,1000.); -#26309=VECTOR('',#42030,1000.); -#26310=VECTOR('',#42031,1000.); -#26311=VECTOR('',#42034,1000.); -#26312=VECTOR('',#42035,1000.); -#26313=VECTOR('',#42038,1000.); -#26314=VECTOR('',#42039,1000.); -#26315=VECTOR('',#42042,1000.); -#26316=VECTOR('',#42043,1000.); -#26317=VECTOR('',#42046,1000.); -#26318=VECTOR('',#42047,1000.); -#26319=VECTOR('',#42050,1000.); -#26320=VECTOR('',#42051,1000.); -#26321=VECTOR('',#42054,1000.); -#26322=VECTOR('',#42055,1000.); -#26323=VECTOR('',#42058,1000.); -#26324=VECTOR('',#42059,1000.); -#26325=VECTOR('',#42062,1000.); -#26326=VECTOR('',#42063,1000.); -#26327=VECTOR('',#42066,1000.); -#26328=VECTOR('',#42067,1000.); -#26329=VECTOR('',#42070,1000.); -#26330=VECTOR('',#42071,1000.); -#26331=VECTOR('',#42074,1000.); -#26332=VECTOR('',#42075,1000.); -#26333=VECTOR('',#42078,1000.); -#26334=VECTOR('',#42079,1000.); -#26335=VECTOR('',#42082,1000.); -#26336=VECTOR('',#42083,1000.); -#26337=VECTOR('',#42086,1000.); -#26338=VECTOR('',#42087,1000.); -#26339=VECTOR('',#42090,1000.); -#26340=VECTOR('',#42091,1000.); -#26341=VECTOR('',#42094,1000.); -#26342=VECTOR('',#42095,1000.); -#26343=VECTOR('',#42098,1000.); -#26344=VECTOR('',#42099,1000.); -#26345=VECTOR('',#42102,1000.); -#26346=VECTOR('',#42103,1000.); -#26347=VECTOR('',#42106,1000.); -#26348=VECTOR('',#42107,1000.); -#26349=VECTOR('',#42110,1000.); -#26350=VECTOR('',#42111,1000.); -#26351=VECTOR('',#42114,1000.); -#26352=VECTOR('',#42115,1000.); -#26353=VECTOR('',#42118,1000.); -#26354=VECTOR('',#42119,1000.); -#26355=VECTOR('',#42122,1000.); -#26356=VECTOR('',#42123,1000.); -#26357=VECTOR('',#42126,1000.); -#26358=VECTOR('',#42127,1000.); -#26359=VECTOR('',#42130,1000.); -#26360=VECTOR('',#42131,1000.); -#26361=VECTOR('',#42134,1000.); -#26362=VECTOR('',#42135,1000.); -#26363=VECTOR('',#42138,1000.); -#26364=VECTOR('',#42139,1000.); -#26365=VECTOR('',#42142,1000.); -#26366=VECTOR('',#42143,1000.); -#26367=VECTOR('',#42146,1000.); -#26368=VECTOR('',#42147,1000.); -#26369=VECTOR('',#42150,1000.); -#26370=VECTOR('',#42151,1000.); -#26371=VECTOR('',#42156,1000.); -#26372=VECTOR('',#42163,1000.); -#26373=VECTOR('',#42170,1000.); -#26374=VECTOR('',#42177,1000.); -#26375=VECTOR('',#42184,1000.); -#26376=VECTOR('',#42191,1000.); -#26377=VECTOR('',#42198,1000.); -#26378=VECTOR('',#42205,1000.); -#26379=VECTOR('',#42212,1000.); -#26380=VECTOR('',#42219,1000.); -#26381=VECTOR('',#42226,1000.); -#26382=VECTOR('',#42233,1000.); -#26383=VECTOR('',#42240,1000.); -#26384=VECTOR('',#42247,1000.); -#26385=VECTOR('',#42254,1000.); -#26386=VECTOR('',#42261,1000.); -#26387=VECTOR('',#42268,1000.); -#26388=VECTOR('',#42275,1000.); -#26389=VECTOR('',#42282,1000.); -#26390=VECTOR('',#42289,1000.); -#26391=VECTOR('',#42296,1000.); -#26392=VECTOR('',#42297,1000.); -#26393=VECTOR('',#42298,1000.); -#26394=VECTOR('',#42305,1000.); -#26395=VECTOR('',#42306,1000.); -#26396=VECTOR('',#42307,1000.); -#26397=VECTOR('',#42314,1000.); -#26398=VECTOR('',#42315,1000.); -#26399=VECTOR('',#42316,1000.); -#26400=VECTOR('',#42323,1000.); -#26401=VECTOR('',#42324,1000.); -#26402=VECTOR('',#42325,1000.); -#26403=VECTOR('',#42332,1000.); -#26404=VECTOR('',#42333,1000.); -#26405=VECTOR('',#42334,1000.); -#26406=VECTOR('',#42341,1000.); -#26407=VECTOR('',#42342,1000.); -#26408=VECTOR('',#42343,1000.); -#26409=VECTOR('',#42350,1000.); -#26410=VECTOR('',#42351,1000.); -#26411=VECTOR('',#42352,1000.); -#26412=VECTOR('',#42359,1000.); -#26413=VECTOR('',#42360,1000.); -#26414=VECTOR('',#42361,1000.); -#26415=VECTOR('',#42368,1000.); -#26416=VECTOR('',#42369,1000.); -#26417=VECTOR('',#42370,1000.); -#26418=VECTOR('',#42377,1000.); -#26419=VECTOR('',#42378,1000.); -#26420=VECTOR('',#42379,1000.); -#26421=VECTOR('',#42386,1000.); -#26422=VECTOR('',#42387,1000.); -#26423=VECTOR('',#42388,1000.); -#26424=VECTOR('',#42395,1000.); -#26425=VECTOR('',#42396,1000.); -#26426=VECTOR('',#42397,1000.); -#26427=VECTOR('',#42404,1000.); -#26428=VECTOR('',#42405,1000.); -#26429=VECTOR('',#42406,1000.); -#26430=VECTOR('',#42413,1000.); -#26431=VECTOR('',#42414,1000.); -#26432=VECTOR('',#42415,1000.); -#26433=VECTOR('',#42422,1000.); -#26434=VECTOR('',#42423,1000.); -#26435=VECTOR('',#42424,1000.); -#26436=VECTOR('',#42431,1000.); -#26437=VECTOR('',#42432,1000.); -#26438=VECTOR('',#42433,1000.); -#26439=VECTOR('',#42440,1000.); -#26440=VECTOR('',#42441,1000.); -#26441=VECTOR('',#42442,1000.); -#26442=VECTOR('',#42449,1000.); -#26443=VECTOR('',#42450,1000.); -#26444=VECTOR('',#42451,1000.); -#26445=VECTOR('',#42458,1000.); -#26446=VECTOR('',#42459,1000.); -#26447=VECTOR('',#42460,1000.); -#26448=VECTOR('',#42583,1000.); -#26449=VECTOR('',#42588,1000.); -#26450=VECTOR('',#42595,1000.); -#26451=VECTOR('',#42602,1000.); -#26452=VECTOR('',#42609,1000.); -#26453=VECTOR('',#42616,1000.); -#26454=VECTOR('',#42623,1000.); -#26455=VECTOR('',#42630,1000.); -#26456=VECTOR('',#42637,1000.); -#26457=VECTOR('',#42644,1000.); -#26458=VECTOR('',#42651,1000.); -#26459=VECTOR('',#42658,1000.); -#26460=VECTOR('',#42665,1000.); -#26461=VECTOR('',#42672,1000.); -#26462=VECTOR('',#42679,1000.); -#26463=VECTOR('',#42686,1000.); -#26464=VECTOR('',#42693,1000.); -#26465=VECTOR('',#42700,1000.); -#26466=VECTOR('',#42707,1000.); -#26467=VECTOR('',#42714,1000.); -#26468=VECTOR('',#42721,1000.); -#26469=VECTOR('',#42726,1000.); -#26470=VECTOR('',#42729,1000.); -#26471=VECTOR('',#42732,1000.); -#26472=VECTOR('',#42735,1000.); -#26473=VECTOR('',#42738,1000.); -#26474=VECTOR('',#42741,1000.); -#26475=VECTOR('',#42744,1000.); -#26476=VECTOR('',#42747,1000.); -#26477=VECTOR('',#42750,1000.); -#26478=VECTOR('',#42753,1000.); -#26479=VECTOR('',#42756,1000.); -#26480=VECTOR('',#42759,1000.); -#26481=VECTOR('',#42762,1000.); -#26482=VECTOR('',#42765,1000.); -#26483=VECTOR('',#42768,1000.); -#26484=VECTOR('',#42771,1000.); -#26485=VECTOR('',#42774,1000.); -#26486=VECTOR('',#42777,1000.); -#26487=VECTOR('',#42780,1000.); -#26488=VECTOR('',#42783,1000.); -#26489=VECTOR('',#42786,1000.); -#26490=VECTOR('',#42789,1000.); -#26491=VECTOR('',#42792,1000.); -#26492=VECTOR('',#42795,1000.); -#26493=VECTOR('',#42798,1000.); -#26494=VECTOR('',#42801,1000.); -#26495=VECTOR('',#42804,1000.); -#26496=VECTOR('',#42807,1000.); -#26497=VECTOR('',#42810,1000.); -#26498=VECTOR('',#42813,1000.); -#26499=VECTOR('',#42816,1000.); -#26500=VECTOR('',#42819,1000.); -#26501=VECTOR('',#42822,1000.); -#26502=VECTOR('',#42825,1000.); -#26503=VECTOR('',#42828,1000.); -#26504=VECTOR('',#42831,1000.); -#26505=VECTOR('',#42834,1000.); -#26506=VECTOR('',#42837,1000.); -#26507=VECTOR('',#42840,1000.); -#26508=VECTOR('',#42843,1000.); -#26509=VECTOR('',#42846,1000.); -#26510=VECTOR('',#42849,1000.); -#26511=VECTOR('',#42852,1000.); -#26512=VECTOR('',#42855,1000.); -#26513=VECTOR('',#42858,1000.); -#26514=VECTOR('',#42861,1000.); -#26515=VECTOR('',#42864,1000.); -#26516=VECTOR('',#42867,1000.); -#26517=VECTOR('',#42870,1000.); -#26518=VECTOR('',#42873,1000.); -#26519=VECTOR('',#42876,1000.); -#26520=VECTOR('',#42879,1000.); -#26521=VECTOR('',#42882,1000.); -#26522=VECTOR('',#42885,1000.); -#26523=VECTOR('',#42888,1000.); -#26524=VECTOR('',#42891,1000.); -#26525=VECTOR('',#42894,1000.); -#26526=VECTOR('',#43013,1000.); -#26527=VECTOR('',#43018,1000.); -#26528=VECTOR('',#43019,1000.); -#26529=VECTOR('',#43022,1000.); -#26530=VECTOR('',#43023,1000.); -#26531=VECTOR('',#43028,1000.); -#26532=VECTOR('',#43029,1000.); -#26533=VECTOR('',#43034,1000.); -#26534=VECTOR('',#43039,1000.); -#26535=VECTOR('',#43042,1000.); -#26536=VECTOR('',#43045,1000.); -#26537=VECTOR('',#43048,1000.); -#26538=VECTOR('',#43049,1000.); -#26539=VECTOR('',#43052,1000.); -#26540=VECTOR('',#43055,1000.); -#26541=VECTOR('',#43058,1000.); -#26542=VECTOR('',#43065,1000.); -#26543=VECTOR('',#43066,1000.); -#26544=VECTOR('',#43069,1000.); -#26545=VECTOR('',#43072,1000.); -#26546=VECTOR('',#43075,1000.); -#26547=VECTOR('',#43080,1000.); -#26548=VECTOR('',#43081,1000.); -#26549=VECTOR('',#43088,1000.); -#26550=VECTOR('',#43091,1000.); -#26551=VECTOR('',#43094,1000.); -#26552=VECTOR('',#43097,1000.); -#26553=VECTOR('',#43100,1000.); -#26554=VECTOR('',#43103,1000.); -#26555=VECTOR('',#43106,1000.); -#26556=VECTOR('',#43111,1000.); -#26557=VECTOR('',#43114,1000.); -#26558=VECTOR('',#43117,1000.); -#26559=VECTOR('',#43120,1000.); -#26560=VECTOR('',#43123,1000.); -#26561=VECTOR('',#43126,1000.); -#26562=VECTOR('',#43129,1000.); -#26563=VECTOR('',#43134,1000.); -#26564=VECTOR('',#43137,1000.); -#26565=VECTOR('',#43140,1000.); -#26566=VECTOR('',#43141,1000.); -#26567=VECTOR('',#43144,1000.); -#26568=VECTOR('',#43147,1000.); -#26569=VECTOR('',#43150,1000.); -#26570=VECTOR('',#43153,1000.); -#26571=VECTOR('',#43158,1000.); -#26572=VECTOR('',#43161,1000.); -#26573=VECTOR('',#43164,1000.); -#26574=VECTOR('',#43167,1000.); -#26575=VECTOR('',#43170,1000.); -#26576=VECTOR('',#43173,1000.); -#26577=VECTOR('',#43178,1000.); -#26578=VECTOR('',#43181,1000.); -#26579=VECTOR('',#43186,1000.); -#26580=VECTOR('',#43189,1000.); -#26581=VECTOR('',#43192,1000.); -#26582=VECTOR('',#43193,1000.); -#26583=VECTOR('',#43196,1000.); -#26584=VECTOR('',#43199,1000.); -#26585=VECTOR('',#43202,1000.); -#26586=VECTOR('',#43205,1000.); -#26587=VECTOR('',#43210,1000.); -#26588=VECTOR('',#43213,1000.); -#26589=VECTOR('',#43216,1000.); -#26590=VECTOR('',#43219,1000.); -#26591=VECTOR('',#43222,1000.); -#26592=VECTOR('',#43225,1000.); -#26593=VECTOR('',#43230,1000.); -#26594=VECTOR('',#43233,1000.); -#26595=VECTOR('',#43238,1000.); -#26596=VECTOR('',#43241,1000.); -#26597=VECTOR('',#43244,1000.); -#26598=VECTOR('',#43245,1000.); -#26599=VECTOR('',#43248,1000.); -#26600=VECTOR('',#43251,1000.); -#26601=VECTOR('',#43254,1000.); -#26602=VECTOR('',#43257,1000.); -#26603=VECTOR('',#43262,1000.); -#26604=VECTOR('',#43265,1000.); -#26605=VECTOR('',#43268,1000.); -#26606=VECTOR('',#43271,1000.); -#26607=VECTOR('',#43274,1000.); -#26608=VECTOR('',#43277,1000.); -#26609=VECTOR('',#43282,1000.); -#26610=VECTOR('',#43285,1000.); -#26611=VECTOR('',#43290,1000.); -#26612=VECTOR('',#43293,1000.); -#26613=VECTOR('',#43296,1000.); -#26614=VECTOR('',#43297,1000.); -#26615=VECTOR('',#43300,1000.); -#26616=VECTOR('',#43303,1000.); -#26617=VECTOR('',#43306,1000.); -#26618=VECTOR('',#43309,1000.); -#26619=VECTOR('',#43314,1000.); -#26620=VECTOR('',#43317,1000.); -#26621=VECTOR('',#43320,1000.); -#26622=VECTOR('',#43323,1000.); -#26623=VECTOR('',#43326,1000.); -#26624=VECTOR('',#43329,1000.); -#26625=VECTOR('',#43334,1000.); -#26626=VECTOR('',#43337,1000.); -#26627=VECTOR('',#43342,1000.); -#26628=VECTOR('',#43345,1000.); -#26629=VECTOR('',#43348,1000.); -#26630=VECTOR('',#43349,1000.); -#26631=VECTOR('',#43352,1000.); -#26632=VECTOR('',#43355,1000.); -#26633=VECTOR('',#43358,1000.); -#26634=VECTOR('',#43361,1000.); -#26635=VECTOR('',#43366,1000.); -#26636=VECTOR('',#43369,1000.); -#26637=VECTOR('',#43372,1000.); -#26638=VECTOR('',#43375,1000.); -#26639=VECTOR('',#43378,1000.); -#26640=VECTOR('',#43381,1000.); -#26641=VECTOR('',#43386,1000.); -#26642=VECTOR('',#43389,1000.); -#26643=VECTOR('',#43394,1000.); -#26644=VECTOR('',#43397,1000.); -#26645=VECTOR('',#43400,1000.); -#26646=VECTOR('',#43401,1000.); -#26647=VECTOR('',#43404,1000.); -#26648=VECTOR('',#43407,1000.); -#26649=VECTOR('',#43410,1000.); -#26650=VECTOR('',#43413,1000.); -#26651=VECTOR('',#43418,1000.); -#26652=VECTOR('',#43421,1000.); -#26653=VECTOR('',#43424,1000.); -#26654=VECTOR('',#43427,1000.); -#26655=VECTOR('',#43430,1000.); -#26656=VECTOR('',#43433,1000.); -#26657=VECTOR('',#43438,1000.); -#26658=VECTOR('',#43441,1000.); -#26659=VECTOR('',#43446,1000.); -#26660=VECTOR('',#43449,1000.); -#26661=VECTOR('',#43452,1000.); -#26662=VECTOR('',#43453,1000.); -#26663=VECTOR('',#43456,1000.); -#26664=VECTOR('',#43459,1000.); -#26665=VECTOR('',#43462,1000.); -#26666=VECTOR('',#43465,1000.); -#26667=VECTOR('',#43470,1000.); -#26668=VECTOR('',#43473,1000.); -#26669=VECTOR('',#43476,1000.); -#26670=VECTOR('',#43479,1000.); -#26671=VECTOR('',#43482,1000.); -#26672=VECTOR('',#43485,1000.); -#26673=VECTOR('',#43490,1000.); -#26674=VECTOR('',#43493,1000.); -#26675=VECTOR('',#43498,1000.); -#26676=VECTOR('',#43501,1000.); -#26677=VECTOR('',#43504,1000.); -#26678=VECTOR('',#43505,1000.); -#26679=VECTOR('',#43508,1000.); -#26680=VECTOR('',#43511,1000.); -#26681=VECTOR('',#43514,1000.); -#26682=VECTOR('',#43517,1000.); -#26683=VECTOR('',#43522,1000.); -#26684=VECTOR('',#43525,1000.); -#26685=VECTOR('',#43528,1000.); -#26686=VECTOR('',#43531,1000.); -#26687=VECTOR('',#43534,1000.); -#26688=VECTOR('',#43537,1000.); -#26689=VECTOR('',#43542,1000.); -#26690=VECTOR('',#43545,1000.); -#26691=VECTOR('',#43550,1000.); -#26692=VECTOR('',#43553,1000.); -#26693=VECTOR('',#43556,1000.); -#26694=VECTOR('',#43557,1000.); -#26695=VECTOR('',#43560,1000.); -#26696=VECTOR('',#43563,1000.); -#26697=VECTOR('',#43566,1000.); -#26698=VECTOR('',#43569,1000.); -#26699=VECTOR('',#43574,1000.); -#26700=VECTOR('',#43577,1000.); -#26701=VECTOR('',#43580,1000.); -#26702=VECTOR('',#43583,1000.); -#26703=VECTOR('',#43586,1000.); -#26704=VECTOR('',#43589,1000.); -#26705=VECTOR('',#43594,1000.); -#26706=VECTOR('',#43597,1000.); -#26707=VECTOR('',#43602,1000.); -#26708=VECTOR('',#43605,1000.); -#26709=VECTOR('',#43608,1000.); -#26710=VECTOR('',#43609,1000.); -#26711=VECTOR('',#43612,1000.); -#26712=VECTOR('',#43615,1000.); -#26713=VECTOR('',#43618,1000.); -#26714=VECTOR('',#43621,1000.); -#26715=VECTOR('',#43626,1000.); -#26716=VECTOR('',#43629,1000.); -#26717=VECTOR('',#43632,1000.); -#26718=VECTOR('',#43635,1000.); -#26719=VECTOR('',#43638,1000.); -#26720=VECTOR('',#43641,1000.); -#26721=VECTOR('',#43646,1000.); -#26722=VECTOR('',#43649,1000.); -#26723=VECTOR('',#43654,1000.); -#26724=VECTOR('',#43657,1000.); -#26725=VECTOR('',#43660,1000.); -#26726=VECTOR('',#43661,1000.); -#26727=VECTOR('',#43664,1000.); -#26728=VECTOR('',#43667,1000.); -#26729=VECTOR('',#43670,1000.); -#26730=VECTOR('',#43673,1000.); -#26731=VECTOR('',#43678,1000.); -#26732=VECTOR('',#43681,1000.); -#26733=VECTOR('',#43684,1000.); -#26734=VECTOR('',#43687,1000.); -#26735=VECTOR('',#43690,1000.); -#26736=VECTOR('',#43693,1000.); -#26737=VECTOR('',#43698,1000.); -#26738=VECTOR('',#43701,1000.); -#26739=VECTOR('',#43706,1000.); -#26740=VECTOR('',#43709,1000.); -#26741=VECTOR('',#43712,1000.); -#26742=VECTOR('',#43713,1000.); -#26743=VECTOR('',#43716,1000.); -#26744=VECTOR('',#43719,1000.); -#26745=VECTOR('',#43722,1000.); -#26746=VECTOR('',#43725,1000.); -#26747=VECTOR('',#43730,1000.); -#26748=VECTOR('',#43733,1000.); -#26749=VECTOR('',#43736,1000.); -#26750=VECTOR('',#43739,1000.); -#26751=VECTOR('',#43742,1000.); -#26752=VECTOR('',#43745,1000.); -#26753=VECTOR('',#43750,1000.); -#26754=VECTOR('',#43753,1000.); -#26755=VECTOR('',#43758,1000.); -#26756=VECTOR('',#43761,1000.); -#26757=VECTOR('',#43764,1000.); -#26758=VECTOR('',#43765,1000.); -#26759=VECTOR('',#43768,1000.); -#26760=VECTOR('',#43771,1000.); -#26761=VECTOR('',#43774,1000.); -#26762=VECTOR('',#43777,1000.); -#26763=VECTOR('',#43782,1000.); -#26764=VECTOR('',#43785,1000.); -#26765=VECTOR('',#43788,1000.); -#26766=VECTOR('',#43791,1000.); -#26767=VECTOR('',#43794,1000.); -#26768=VECTOR('',#43797,1000.); -#26769=VECTOR('',#43802,1000.); -#26770=VECTOR('',#43805,1000.); -#26771=VECTOR('',#43810,1000.); -#26772=VECTOR('',#43813,1000.); -#26773=VECTOR('',#43816,1000.); -#26774=VECTOR('',#43817,1000.); -#26775=VECTOR('',#43820,1000.); -#26776=VECTOR('',#43823,1000.); -#26777=VECTOR('',#43826,1000.); -#26778=VECTOR('',#43829,1000.); -#26779=VECTOR('',#43834,1000.); -#26780=VECTOR('',#43837,1000.); -#26781=VECTOR('',#43840,1000.); -#26782=VECTOR('',#43843,1000.); -#26783=VECTOR('',#43846,1000.); -#26784=VECTOR('',#43849,1000.); -#26785=VECTOR('',#43854,1000.); -#26786=VECTOR('',#43857,1000.); -#26787=VECTOR('',#43862,1000.); -#26788=VECTOR('',#43865,1000.); -#26789=VECTOR('',#43868,1000.); -#26790=VECTOR('',#43869,1000.); -#26791=VECTOR('',#43872,1000.); -#26792=VECTOR('',#43875,1000.); -#26793=VECTOR('',#43878,1000.); -#26794=VECTOR('',#43881,1000.); -#26795=VECTOR('',#43886,1000.); -#26796=VECTOR('',#43889,1000.); -#26797=VECTOR('',#43892,1000.); -#26798=VECTOR('',#43895,1000.); -#26799=VECTOR('',#43898,1000.); -#26800=VECTOR('',#43901,1000.); -#26801=VECTOR('',#43906,1000.); -#26802=VECTOR('',#43909,1000.); -#26803=VECTOR('',#43914,1000.); -#26804=VECTOR('',#43917,1000.); -#26805=VECTOR('',#43920,1000.); -#26806=VECTOR('',#43921,1000.); -#26807=VECTOR('',#43924,1000.); -#26808=VECTOR('',#43927,1000.); -#26809=VECTOR('',#43930,1000.); -#26810=VECTOR('',#43933,1000.); -#26811=VECTOR('',#43938,1000.); -#26812=VECTOR('',#43941,1000.); -#26813=VECTOR('',#43944,1000.); -#26814=VECTOR('',#43947,1000.); -#26815=VECTOR('',#43950,1000.); -#26816=VECTOR('',#43953,1000.); -#26817=VECTOR('',#43958,1000.); -#26818=VECTOR('',#43961,1000.); -#26819=VECTOR('',#43966,1000.); -#26820=VECTOR('',#43969,1000.); -#26821=VECTOR('',#43972,1000.); -#26822=VECTOR('',#43973,1000.); -#26823=VECTOR('',#43976,1000.); -#26824=VECTOR('',#43979,1000.); -#26825=VECTOR('',#43982,1000.); -#26826=VECTOR('',#43985,1000.); -#26827=VECTOR('',#43990,1000.); -#26828=VECTOR('',#43993,1000.); -#26829=VECTOR('',#43996,1000.); -#26830=VECTOR('',#43999,1000.); -#26831=VECTOR('',#44002,1000.); -#26832=VECTOR('',#44005,1000.); -#26833=VECTOR('',#44010,1000.); -#26834=VECTOR('',#44013,1000.); -#26835=VECTOR('',#44018,1000.); -#26836=VECTOR('',#44021,1000.); -#26837=VECTOR('',#44024,1000.); -#26838=VECTOR('',#44025,1000.); -#26839=VECTOR('',#44028,1000.); -#26840=VECTOR('',#44031,1000.); -#26841=VECTOR('',#44034,1000.); -#26842=VECTOR('',#44037,1000.); -#26843=VECTOR('',#44042,1000.); -#26844=VECTOR('',#44045,1000.); -#26845=VECTOR('',#44048,1000.); -#26846=VECTOR('',#44051,1000.); -#26847=VECTOR('',#44054,1000.); -#26848=VECTOR('',#44057,1000.); -#26849=VECTOR('',#44062,1000.); -#26850=VECTOR('',#44065,1000.); -#26851=VECTOR('',#44070,1000.); -#26852=VECTOR('',#44073,1000.); -#26853=VECTOR('',#44076,1000.); -#26854=VECTOR('',#44077,1000.); -#26855=VECTOR('',#44080,1000.); -#26856=VECTOR('',#44083,1000.); -#26857=VECTOR('',#44086,1000.); -#26858=VECTOR('',#44089,1000.); -#26859=VECTOR('',#44094,1000.); -#26860=VECTOR('',#44097,1000.); -#26861=VECTOR('',#44100,1000.); -#26862=VECTOR('',#44103,1000.); -#26863=VECTOR('',#44106,1000.); -#26864=VECTOR('',#44109,1000.); -#26865=VECTOR('',#44114,1000.); -#26866=VECTOR('',#44117,1000.); -#26867=VECTOR('',#44122,1000.); -#26868=VECTOR('',#44123,1000.); -#26869=VECTOR('',#44126,1000.); -#26870=VECTOR('',#44129,1000.); -#26871=VECTOR('',#44132,1000.); -#26872=VECTOR('',#44135,1000.); -#26873=VECTOR('',#44140,1000.); -#26874=VECTOR('',#44143,1000.); -#26875=VECTOR('',#44146,1000.); -#26876=VECTOR('',#44149,1000.); -#26877=VECTOR('',#44152,1000.); -#26878=VECTOR('',#44155,1000.); -#26879=VECTOR('',#44158,1000.); -#26880=VECTOR('',#44159,1000.); -#26881=VECTOR('',#44164,1000.); -#26882=VECTOR('',#44167,1000.); -#26883=VECTOR('',#44174,1000.); -#26884=VECTOR('',#44175,1000.); -#26885=VECTOR('',#44178,1000.); -#26886=VECTOR('',#44181,1000.); -#26887=VECTOR('',#44184,1000.); -#26888=VECTOR('',#44187,1000.); -#26889=VECTOR('',#44192,1000.); -#26890=VECTOR('',#44195,1000.); -#26891=VECTOR('',#44198,1000.); -#26892=VECTOR('',#44201,1000.); -#26893=VECTOR('',#44204,1000.); -#26894=VECTOR('',#44207,1000.); -#26895=VECTOR('',#44210,1000.); -#26896=VECTOR('',#44211,1000.); -#26897=VECTOR('',#44216,1000.); -#26898=VECTOR('',#44219,1000.); -#26899=VECTOR('',#44226,1000.); -#26900=VECTOR('',#44227,1000.); -#26901=VECTOR('',#44230,1000.); -#26902=VECTOR('',#44233,1000.); -#26903=VECTOR('',#44236,1000.); -#26904=VECTOR('',#44239,1000.); -#26905=VECTOR('',#44244,1000.); -#26906=VECTOR('',#44247,1000.); -#26907=VECTOR('',#44250,1000.); -#26908=VECTOR('',#44253,1000.); -#26909=VECTOR('',#44256,1000.); -#26910=VECTOR('',#44259,1000.); -#26911=VECTOR('',#44262,1000.); -#26912=VECTOR('',#44263,1000.); -#26913=VECTOR('',#44268,1000.); -#26914=VECTOR('',#44271,1000.); -#26915=VECTOR('',#44278,1000.); -#26916=VECTOR('',#44279,1000.); -#26917=VECTOR('',#44282,1000.); -#26918=VECTOR('',#44285,1000.); -#26919=VECTOR('',#44288,1000.); -#26920=VECTOR('',#44291,1000.); -#26921=VECTOR('',#44296,1000.); -#26922=VECTOR('',#44299,1000.); -#26923=VECTOR('',#44302,1000.); -#26924=VECTOR('',#44305,1000.); -#26925=VECTOR('',#44308,1000.); -#26926=VECTOR('',#44311,1000.); -#26927=VECTOR('',#44314,1000.); -#26928=VECTOR('',#44315,1000.); -#26929=VECTOR('',#44320,1000.); -#26930=VECTOR('',#44323,1000.); -#26931=VECTOR('',#44330,1000.); -#26932=VECTOR('',#44331,1000.); -#26933=VECTOR('',#44334,1000.); -#26934=VECTOR('',#44337,1000.); -#26935=VECTOR('',#44340,1000.); -#26936=VECTOR('',#44343,1000.); -#26937=VECTOR('',#44348,1000.); -#26938=VECTOR('',#44351,1000.); -#26939=VECTOR('',#44354,1000.); -#26940=VECTOR('',#44357,1000.); -#26941=VECTOR('',#44360,1000.); -#26942=VECTOR('',#44363,1000.); -#26943=VECTOR('',#44366,1000.); -#26944=VECTOR('',#44367,1000.); -#26945=VECTOR('',#44372,1000.); -#26946=VECTOR('',#44375,1000.); -#26947=VECTOR('',#44382,1000.); -#26948=VECTOR('',#44383,1000.); -#26949=VECTOR('',#44386,1000.); -#26950=VECTOR('',#44389,1000.); -#26951=VECTOR('',#44392,1000.); -#26952=VECTOR('',#44395,1000.); -#26953=VECTOR('',#44400,1000.); -#26954=VECTOR('',#44403,1000.); -#26955=VECTOR('',#44406,1000.); -#26956=VECTOR('',#44409,1000.); -#26957=VECTOR('',#44412,1000.); -#26958=VECTOR('',#44415,1000.); -#26959=VECTOR('',#44418,1000.); -#26960=VECTOR('',#44419,1000.); -#26961=VECTOR('',#44424,1000.); -#26962=VECTOR('',#44427,1000.); -#26963=VECTOR('',#44434,1000.); -#26964=VECTOR('',#44435,1000.); -#26965=VECTOR('',#44438,1000.); -#26966=VECTOR('',#44441,1000.); -#26967=VECTOR('',#44444,1000.); -#26968=VECTOR('',#44447,1000.); -#26969=VECTOR('',#44452,1000.); -#26970=VECTOR('',#44455,1000.); -#26971=VECTOR('',#44458,1000.); -#26972=VECTOR('',#44461,1000.); -#26973=VECTOR('',#44464,1000.); -#26974=VECTOR('',#44467,1000.); -#26975=VECTOR('',#44470,1000.); -#26976=VECTOR('',#44471,1000.); -#26977=VECTOR('',#44476,1000.); -#26978=VECTOR('',#44479,1000.); -#26979=VECTOR('',#44486,1000.); -#26980=VECTOR('',#44487,1000.); -#26981=VECTOR('',#44490,1000.); -#26982=VECTOR('',#44493,1000.); -#26983=VECTOR('',#44496,1000.); -#26984=VECTOR('',#44499,1000.); -#26985=VECTOR('',#44504,1000.); -#26986=VECTOR('',#44507,1000.); -#26987=VECTOR('',#44510,1000.); -#26988=VECTOR('',#44513,1000.); -#26989=VECTOR('',#44516,1000.); -#26990=VECTOR('',#44519,1000.); -#26991=VECTOR('',#44522,1000.); -#26992=VECTOR('',#44523,1000.); -#26993=VECTOR('',#44528,1000.); -#26994=VECTOR('',#44531,1000.); -#26995=VECTOR('',#44538,1000.); -#26996=VECTOR('',#44539,1000.); -#26997=VECTOR('',#44542,1000.); -#26998=VECTOR('',#44545,1000.); -#26999=VECTOR('',#44548,1000.); -#27000=VECTOR('',#44551,1000.); -#27001=VECTOR('',#44556,1000.); -#27002=VECTOR('',#44559,1000.); -#27003=VECTOR('',#44562,1000.); -#27004=VECTOR('',#44565,1000.); -#27005=VECTOR('',#44568,1000.); -#27006=VECTOR('',#44571,1000.); -#27007=VECTOR('',#44574,1000.); -#27008=VECTOR('',#44575,1000.); -#27009=VECTOR('',#44580,1000.); -#27010=VECTOR('',#44583,1000.); -#27011=VECTOR('',#44590,1000.); -#27012=VECTOR('',#44591,1000.); -#27013=VECTOR('',#44594,1000.); -#27014=VECTOR('',#44597,1000.); -#27015=VECTOR('',#44600,1000.); -#27016=VECTOR('',#44603,1000.); -#27017=VECTOR('',#44608,1000.); -#27018=VECTOR('',#44611,1000.); -#27019=VECTOR('',#44614,1000.); -#27020=VECTOR('',#44617,1000.); -#27021=VECTOR('',#44620,1000.); -#27022=VECTOR('',#44623,1000.); -#27023=VECTOR('',#44626,1000.); -#27024=VECTOR('',#44627,1000.); -#27025=VECTOR('',#44632,1000.); -#27026=VECTOR('',#44635,1000.); -#27027=VECTOR('',#44642,1000.); -#27028=VECTOR('',#44643,1000.); -#27029=VECTOR('',#44646,1000.); -#27030=VECTOR('',#44649,1000.); -#27031=VECTOR('',#44652,1000.); -#27032=VECTOR('',#44655,1000.); -#27033=VECTOR('',#44660,1000.); -#27034=VECTOR('',#44663,1000.); -#27035=VECTOR('',#44666,1000.); -#27036=VECTOR('',#44669,1000.); -#27037=VECTOR('',#44672,1000.); -#27038=VECTOR('',#44675,1000.); -#27039=VECTOR('',#44678,1000.); -#27040=VECTOR('',#44679,1000.); -#27041=VECTOR('',#44684,1000.); -#27042=VECTOR('',#44687,1000.); -#27043=VECTOR('',#44694,1000.); -#27044=VECTOR('',#44695,1000.); -#27045=VECTOR('',#44698,1000.); -#27046=VECTOR('',#44701,1000.); -#27047=VECTOR('',#44704,1000.); -#27048=VECTOR('',#44707,1000.); -#27049=VECTOR('',#44712,1000.); -#27050=VECTOR('',#44715,1000.); -#27051=VECTOR('',#44718,1000.); -#27052=VECTOR('',#44721,1000.); -#27053=VECTOR('',#44724,1000.); -#27054=VECTOR('',#44727,1000.); -#27055=VECTOR('',#44730,1000.); -#27056=VECTOR('',#44731,1000.); -#27057=VECTOR('',#44736,1000.); -#27058=VECTOR('',#44739,1000.); -#27059=VECTOR('',#44746,1000.); -#27060=VECTOR('',#44747,1000.); -#27061=VECTOR('',#44750,1000.); -#27062=VECTOR('',#44753,1000.); -#27063=VECTOR('',#44756,1000.); -#27064=VECTOR('',#44759,1000.); -#27065=VECTOR('',#44764,1000.); -#27066=VECTOR('',#44767,1000.); -#27067=VECTOR('',#44770,1000.); -#27068=VECTOR('',#44773,1000.); -#27069=VECTOR('',#44776,1000.); -#27070=VECTOR('',#44779,1000.); -#27071=VECTOR('',#44782,1000.); -#27072=VECTOR('',#44783,1000.); -#27073=VECTOR('',#44788,1000.); -#27074=VECTOR('',#44791,1000.); -#27075=VECTOR('',#44798,1000.); -#27076=VECTOR('',#44799,1000.); -#27077=VECTOR('',#44802,1000.); -#27078=VECTOR('',#44805,1000.); -#27079=VECTOR('',#44808,1000.); -#27080=VECTOR('',#44811,1000.); -#27081=VECTOR('',#44816,1000.); -#27082=VECTOR('',#44819,1000.); -#27083=VECTOR('',#44822,1000.); -#27084=VECTOR('',#44825,1000.); -#27085=VECTOR('',#44828,1000.); -#27086=VECTOR('',#44831,1000.); -#27087=VECTOR('',#44834,1000.); -#27088=VECTOR('',#44835,1000.); -#27089=VECTOR('',#44840,1000.); -#27090=VECTOR('',#44843,1000.); -#27091=VECTOR('',#44850,1000.); -#27092=VECTOR('',#44851,1000.); -#27093=VECTOR('',#44854,1000.); -#27094=VECTOR('',#44857,1000.); -#27095=VECTOR('',#44860,1000.); -#27096=VECTOR('',#44863,1000.); -#27097=VECTOR('',#44868,1000.); -#27098=VECTOR('',#44871,1000.); -#27099=VECTOR('',#44874,1000.); -#27100=VECTOR('',#44877,1000.); -#27101=VECTOR('',#44880,1000.); -#27102=VECTOR('',#44883,1000.); -#27103=VECTOR('',#44886,1000.); -#27104=VECTOR('',#44887,1000.); -#27105=VECTOR('',#44892,1000.); -#27106=VECTOR('',#44895,1000.); -#27107=VECTOR('',#44902,1000.); -#27108=VECTOR('',#44903,1000.); -#27109=VECTOR('',#44906,1000.); -#27110=VECTOR('',#44909,1000.); -#27111=VECTOR('',#44912,1000.); -#27112=VECTOR('',#44915,1000.); -#27113=VECTOR('',#44920,1000.); -#27114=VECTOR('',#44923,1000.); -#27115=VECTOR('',#44926,1000.); -#27116=VECTOR('',#44929,1000.); -#27117=VECTOR('',#44932,1000.); -#27118=VECTOR('',#44935,1000.); -#27119=VECTOR('',#44938,1000.); -#27120=VECTOR('',#44939,1000.); -#27121=VECTOR('',#44944,1000.); -#27122=VECTOR('',#44947,1000.); -#27123=VECTOR('',#44954,1000.); -#27124=VECTOR('',#44955,1000.); -#27125=VECTOR('',#44958,1000.); -#27126=VECTOR('',#44961,1000.); -#27127=VECTOR('',#44964,1000.); -#27128=VECTOR('',#44967,1000.); -#27129=VECTOR('',#44972,1000.); -#27130=VECTOR('',#44975,1000.); -#27131=VECTOR('',#44978,1000.); -#27132=VECTOR('',#44981,1000.); -#27133=VECTOR('',#44984,1000.); -#27134=VECTOR('',#44987,1000.); -#27135=VECTOR('',#44990,1000.); -#27136=VECTOR('',#44991,1000.); -#27137=VECTOR('',#44996,1000.); -#27138=VECTOR('',#44999,1000.); -#27139=VECTOR('',#45006,1000.); -#27140=VECTOR('',#45007,1000.); -#27141=VECTOR('',#45010,1000.); -#27142=VECTOR('',#45013,1000.); -#27143=VECTOR('',#45016,1000.); -#27144=VECTOR('',#45019,1000.); -#27145=VECTOR('',#45024,1000.); -#27146=VECTOR('',#45027,1000.); -#27147=VECTOR('',#45030,1000.); -#27148=VECTOR('',#45033,1000.); -#27149=VECTOR('',#45036,1000.); -#27150=VECTOR('',#45039,1000.); -#27151=VECTOR('',#45042,1000.); -#27152=VECTOR('',#45043,1000.); -#27153=VECTOR('',#45048,1000.); -#27154=VECTOR('',#45051,1000.); -#27155=VECTOR('',#45058,1000.); -#27156=VECTOR('',#45059,1000.); -#27157=VECTOR('',#45062,1000.); -#27158=VECTOR('',#45065,1000.); -#27159=VECTOR('',#45068,1000.); -#27160=VECTOR('',#45071,1000.); -#27161=VECTOR('',#45076,1000.); -#27162=VECTOR('',#45079,1000.); -#27163=VECTOR('',#45082,1000.); -#27164=VECTOR('',#45085,1000.); -#27165=VECTOR('',#45088,1000.); -#27166=VECTOR('',#45091,1000.); -#27167=VECTOR('',#45094,1000.); -#27168=VECTOR('',#45095,1000.); -#27169=VECTOR('',#45100,1000.); -#27170=VECTOR('',#45103,1000.); -#27171=EDGE_LOOP('',(#1844,#1845,#1846,#1847,#1848,#1849)); -#27172=EDGE_LOOP('',(#1850,#1851,#1852,#1853,#1854,#1855)); -#27173=EDGE_LOOP('',(#1856,#1857,#1858,#1859,#1860,#1861,#1862,#1863,#1864, -#1865,#1866,#1867,#1868,#1869,#1870,#1871,#1872,#1873,#1874,#1875,#1876, -#1877,#1878,#1879,#1880,#1881,#1882,#1883,#1884,#1885,#1886,#1887,#1888, -#1889,#1890)); -#27174=EDGE_LOOP('',(#1891,#1892,#1893,#1894,#1895,#1896,#1897,#1898,#1899, -#1900)); -#27175=EDGE_LOOP('',(#1901,#1902,#1903,#1904,#1905,#1906,#1907,#1908)); -#27176=EDGE_LOOP('',(#1909)); -#27177=EDGE_LOOP('',(#1910,#1911,#1912,#1913,#1914,#1915,#1916,#1917,#1918, -#1919)); -#27178=EDGE_LOOP('',(#1920,#1921,#1922,#1923,#1924,#1925,#1926,#1927)); -#27179=EDGE_LOOP('',(#1928,#1929,#1930,#1931,#1932,#1933,#1934,#1935,#1936, -#1937,#1938,#1939,#1940,#1941,#1942,#1943,#1944,#1945,#1946,#1947,#1948, -#1949,#1950,#1951,#1952,#1953,#1954,#1955,#1956,#1957,#1958,#1959,#1960, -#1961,#1962,#1963,#1964,#1965,#1966,#1967,#1968,#1969,#1970,#1971,#1972, -#1973,#1974,#1975,#1976,#1977,#1978,#1979,#1980,#1981,#1982,#1983,#1984, -#1985,#1986,#1987,#1988,#1989,#1990,#1991,#1992,#1993,#1994,#1995,#1996, -#1997,#1998,#1999,#2000,#2001,#2002,#2003,#2004,#2005,#2006,#2007,#2008, -#2009,#2010,#2011,#2012,#2013,#2014,#2015,#2016,#2017,#2018,#2019,#2020, -#2021,#2022,#2023,#2024,#2025,#2026,#2027,#2028,#2029,#2030,#2031,#2032, -#2033,#2034,#2035,#2036,#2037,#2038,#2039,#2040,#2041,#2042,#2043,#2044, -#2045,#2046,#2047,#2048,#2049,#2050,#2051,#2052,#2053,#2054,#2055,#2056, -#2057,#2058,#2059,#2060,#2061,#2062,#2063,#2064,#2065,#2066,#2067,#2068, -#2069,#2070,#2071,#2072,#2073,#2074,#2075,#2076,#2077,#2078,#2079,#2080, -#2081,#2082,#2083,#2084,#2085,#2086,#2087,#2088,#2089,#2090,#2091,#2092, -#2093)); -#27180=EDGE_LOOP('',(#2094,#2095,#2096,#2097,#2098,#2099,#2100,#2101,#2102, -#2103,#2104,#2105,#2106,#2107,#2108,#2109,#2110,#2111,#2112,#2113,#2114, -#2115,#2116,#2117,#2118,#2119,#2120,#2121,#2122,#2123,#2124,#2125,#2126, -#2127,#2128,#2129,#2130,#2131,#2132,#2133,#2134,#2135,#2136,#2137,#2138, -#2139,#2140,#2141,#2142,#2143,#2144,#2145,#2146,#2147,#2148,#2149,#2150, -#2151,#2152,#2153,#2154,#2155,#2156,#2157,#2158,#2159,#2160,#2161,#2162, -#2163,#2164,#2165,#2166,#2167,#2168,#2169,#2170,#2171,#2172,#2173)); -#27181=EDGE_LOOP('',(#2174,#2175,#2176,#2177,#2178,#2179,#2180,#2181,#2182)); -#27182=EDGE_LOOP('',(#2183,#2184,#2185,#2186)); -#27183=EDGE_LOOP('',(#2187,#2188,#2189,#2190)); -#27184=EDGE_LOOP('',(#2191,#2192,#2193,#2194,#2195,#2196,#2197,#2198,#2199, -#2200,#2201,#2202)); -#27185=EDGE_LOOP('',(#2203,#2204,#2205,#2206,#2207,#2208,#2209,#2210,#2211, -#2212,#2213,#2214)); -#27186=EDGE_LOOP('',(#2215,#2216,#2217,#2218)); -#27187=EDGE_LOOP('',(#2219,#2220,#2221,#2222)); -#27188=EDGE_LOOP('',(#2223,#2224,#2225,#2226,#2227,#2228,#2229,#2230,#2231, -#2232,#2233,#2234)); -#27189=EDGE_LOOP('',(#2235,#2236,#2237,#2238,#2239,#2240,#2241,#2242,#2243, -#2244,#2245,#2246)); -#27190=EDGE_LOOP('',(#2247,#2248,#2249,#2250)); -#27191=EDGE_LOOP('',(#2251,#2252,#2253,#2254)); -#27192=EDGE_LOOP('',(#2255,#2256,#2257,#2258,#2259,#2260,#2261,#2262,#2263, -#2264,#2265,#2266)); -#27193=EDGE_LOOP('',(#2267,#2268,#2269,#2270,#2271,#2272,#2273,#2274,#2275, -#2276,#2277,#2278)); -#27194=EDGE_LOOP('',(#2279,#2280,#2281,#2282)); -#27195=EDGE_LOOP('',(#2283,#2284,#2285,#2286)); -#27196=EDGE_LOOP('',(#2287,#2288,#2289,#2290,#2291,#2292,#2293,#2294,#2295, -#2296,#2297,#2298)); -#27197=EDGE_LOOP('',(#2299,#2300,#2301,#2302,#2303,#2304,#2305,#2306,#2307, -#2308,#2309,#2310)); -#27198=EDGE_LOOP('',(#2311,#2312,#2313,#2314)); -#27199=EDGE_LOOP('',(#2315,#2316,#2317,#2318)); -#27200=EDGE_LOOP('',(#2319,#2320,#2321,#2322,#2323,#2324,#2325,#2326,#2327, -#2328,#2329,#2330)); -#27201=EDGE_LOOP('',(#2331,#2332,#2333,#2334,#2335,#2336,#2337,#2338,#2339, -#2340,#2341,#2342)); -#27202=EDGE_LOOP('',(#2343,#2344,#2345,#2346)); -#27203=EDGE_LOOP('',(#2347,#2348,#2349,#2350)); -#27204=EDGE_LOOP('',(#2351,#2352,#2353,#2354,#2355,#2356,#2357,#2358,#2359, -#2360,#2361,#2362)); -#27205=EDGE_LOOP('',(#2363,#2364,#2365,#2366,#2367,#2368,#2369,#2370,#2371, -#2372,#2373,#2374)); -#27206=EDGE_LOOP('',(#2375,#2376,#2377,#2378)); -#27207=EDGE_LOOP('',(#2379,#2380,#2381,#2382)); -#27208=EDGE_LOOP('',(#2383,#2384,#2385,#2386,#2387,#2388,#2389,#2390,#2391, -#2392,#2393,#2394)); -#27209=EDGE_LOOP('',(#2395,#2396,#2397,#2398,#2399,#2400,#2401,#2402,#2403, -#2404,#2405,#2406)); -#27210=EDGE_LOOP('',(#2407,#2408,#2409,#2410)); -#27211=EDGE_LOOP('',(#2411,#2412,#2413,#2414)); -#27212=EDGE_LOOP('',(#2415,#2416,#2417,#2418,#2419,#2420,#2421,#2422,#2423, -#2424,#2425,#2426)); -#27213=EDGE_LOOP('',(#2427,#2428,#2429,#2430,#2431,#2432,#2433,#2434,#2435, -#2436,#2437,#2438)); -#27214=EDGE_LOOP('',(#2439,#2440,#2441,#2442)); -#27215=EDGE_LOOP('',(#2443,#2444,#2445,#2446)); -#27216=EDGE_LOOP('',(#2447,#2448,#2449,#2450,#2451,#2452,#2453,#2454,#2455, -#2456,#2457,#2458)); -#27217=EDGE_LOOP('',(#2459,#2460,#2461,#2462,#2463,#2464,#2465,#2466,#2467, -#2468,#2469,#2470)); -#27218=EDGE_LOOP('',(#2471,#2472,#2473,#2474)); -#27219=EDGE_LOOP('',(#2475,#2476,#2477,#2478)); -#27220=EDGE_LOOP('',(#2479,#2480,#2481,#2482,#2483,#2484,#2485,#2486,#2487, -#2488,#2489,#2490)); -#27221=EDGE_LOOP('',(#2491,#2492,#2493,#2494,#2495,#2496,#2497,#2498,#2499, -#2500,#2501,#2502)); -#27222=EDGE_LOOP('',(#2503,#2504,#2505,#2506)); -#27223=EDGE_LOOP('',(#2507,#2508,#2509,#2510)); -#27224=EDGE_LOOP('',(#2511,#2512,#2513,#2514,#2515,#2516,#2517,#2518,#2519, -#2520,#2521,#2522)); -#27225=EDGE_LOOP('',(#2523,#2524,#2525,#2526,#2527,#2528,#2529,#2530,#2531, -#2532,#2533,#2534)); -#27226=EDGE_LOOP('',(#2535,#2536,#2537,#2538)); -#27227=EDGE_LOOP('',(#2539,#2540,#2541,#2542)); -#27228=EDGE_LOOP('',(#2543,#2544,#2545,#2546,#2547,#2548,#2549,#2550,#2551, -#2552,#2553,#2554)); -#27229=EDGE_LOOP('',(#2555,#2556,#2557,#2558,#2559,#2560,#2561,#2562,#2563, -#2564,#2565,#2566)); -#27230=EDGE_LOOP('',(#2567,#2568,#2569,#2570)); -#27231=EDGE_LOOP('',(#2571,#2572,#2573,#2574)); -#27232=EDGE_LOOP('',(#2575,#2576,#2577,#2578,#2579,#2580,#2581,#2582,#2583, -#2584,#2585,#2586)); -#27233=EDGE_LOOP('',(#2587,#2588,#2589,#2590,#2591,#2592,#2593,#2594,#2595, -#2596,#2597,#2598)); -#27234=EDGE_LOOP('',(#2599,#2600,#2601,#2602)); -#27235=EDGE_LOOP('',(#2603,#2604,#2605,#2606)); -#27236=EDGE_LOOP('',(#2607,#2608,#2609,#2610,#2611,#2612,#2613,#2614,#2615, -#2616,#2617,#2618)); -#27237=EDGE_LOOP('',(#2619,#2620,#2621,#2622,#2623,#2624,#2625,#2626,#2627, -#2628,#2629,#2630)); -#27238=EDGE_LOOP('',(#2631,#2632,#2633,#2634)); -#27239=EDGE_LOOP('',(#2635,#2636,#2637,#2638)); -#27240=EDGE_LOOP('',(#2639,#2640,#2641,#2642,#2643,#2644,#2645,#2646,#2647, -#2648,#2649,#2650)); -#27241=EDGE_LOOP('',(#2651,#2652,#2653,#2654,#2655,#2656,#2657,#2658,#2659, -#2660,#2661,#2662)); -#27242=EDGE_LOOP('',(#2663,#2664,#2665,#2666)); -#27243=EDGE_LOOP('',(#2667,#2668,#2669,#2670)); -#27244=EDGE_LOOP('',(#2671,#2672,#2673,#2674,#2675,#2676,#2677,#2678,#2679, -#2680,#2681,#2682)); -#27245=EDGE_LOOP('',(#2683,#2684,#2685,#2686,#2687,#2688,#2689,#2690,#2691, -#2692,#2693,#2694)); -#27246=EDGE_LOOP('',(#2695,#2696,#2697,#2698)); -#27247=EDGE_LOOP('',(#2699,#2700,#2701,#2702)); -#27248=EDGE_LOOP('',(#2703,#2704,#2705,#2706,#2707,#2708,#2709,#2710,#2711, -#2712,#2713,#2714)); -#27249=EDGE_LOOP('',(#2715,#2716,#2717,#2718,#2719,#2720,#2721,#2722,#2723, -#2724,#2725,#2726)); -#27250=EDGE_LOOP('',(#2727,#2728,#2729,#2730)); -#27251=EDGE_LOOP('',(#2731,#2732,#2733,#2734)); -#27252=EDGE_LOOP('',(#2735,#2736,#2737,#2738,#2739,#2740,#2741,#2742,#2743, -#2744,#2745,#2746)); -#27253=EDGE_LOOP('',(#2747,#2748,#2749,#2750,#2751,#2752,#2753,#2754,#2755, -#2756,#2757,#2758)); -#27254=EDGE_LOOP('',(#2759,#2760,#2761,#2762)); -#27255=EDGE_LOOP('',(#2763,#2764,#2765,#2766)); -#27256=EDGE_LOOP('',(#2767,#2768,#2769,#2770,#2771,#2772,#2773,#2774,#2775, -#2776,#2777,#2778)); -#27257=EDGE_LOOP('',(#2779,#2780,#2781,#2782,#2783,#2784,#2785,#2786,#2787, -#2788,#2789,#2790)); -#27258=EDGE_LOOP('',(#2791,#2792,#2793,#2794,#2795,#2796,#2797,#2798,#2799, -#2800,#2801,#2802)); -#27259=EDGE_LOOP('',(#2803,#2804,#2805,#2806)); -#27260=EDGE_LOOP('',(#2807,#2808,#2809,#2810)); -#27261=EDGE_LOOP('',(#2811,#2812,#2813,#2814,#2815,#2816,#2817,#2818,#2819, -#2820,#2821,#2822)); -#27262=EDGE_LOOP('',(#2823,#2824,#2825,#2826,#2827,#2828,#2829)); -#27263=EDGE_LOOP('',(#2830,#2831,#2832,#2833)); -#27264=EDGE_LOOP('',(#2834,#2835,#2836,#2837)); -#27265=EDGE_LOOP('',(#2838,#2839,#2840,#2841)); -#27266=EDGE_LOOP('',(#2842,#2843,#2844,#2845)); -#27267=EDGE_LOOP('',(#2846,#2847,#2848,#2849)); -#27268=EDGE_LOOP('',(#2850,#2851,#2852,#2853)); -#27269=EDGE_LOOP('',(#2854,#2855,#2856,#2857)); -#27270=EDGE_LOOP('',(#2858,#2859,#2860,#2861)); -#27271=EDGE_LOOP('',(#2862,#2863,#2864,#2865)); -#27272=EDGE_LOOP('',(#2866,#2867,#2868,#2869)); -#27273=EDGE_LOOP('',(#2870,#2871,#2872,#2873)); -#27274=EDGE_LOOP('',(#2874,#2875,#2876,#2877)); -#27275=EDGE_LOOP('',(#2878,#2879,#2880,#2881)); -#27276=EDGE_LOOP('',(#2882,#2883,#2884,#2885)); -#27277=EDGE_LOOP('',(#2886,#2887,#2888,#2889)); -#27278=EDGE_LOOP('',(#2890,#2891,#2892,#2893)); -#27279=EDGE_LOOP('',(#2894,#2895,#2896,#2897)); -#27280=EDGE_LOOP('',(#2898,#2899,#2900,#2901)); -#27281=EDGE_LOOP('',(#2902,#2903,#2904,#2905)); -#27282=EDGE_LOOP('',(#2906,#2907,#2908,#2909,#2910,#2911,#2912)); -#27283=EDGE_LOOP('',(#2913,#2914,#2915,#2916,#2917,#2918)); -#27284=EDGE_LOOP('',(#2919,#2920,#2921,#2922)); -#27285=EDGE_LOOP('',(#2923,#2924,#2925,#2926)); -#27286=EDGE_LOOP('',(#2927,#2928,#2929,#2930)); -#27287=EDGE_LOOP('',(#2931,#2932,#2933,#2934)); -#27288=EDGE_LOOP('',(#2935,#2936,#2937,#2938)); -#27289=EDGE_LOOP('',(#2939,#2940,#2941,#2942)); -#27290=EDGE_LOOP('',(#2943,#2944,#2945,#2946)); -#27291=EDGE_LOOP('',(#2947,#2948,#2949,#2950)); -#27292=EDGE_LOOP('',(#2951,#2952,#2953,#2954)); -#27293=EDGE_LOOP('',(#2955,#2956,#2957,#2958)); -#27294=EDGE_LOOP('',(#2959,#2960,#2961,#2962)); -#27295=EDGE_LOOP('',(#2963,#2964,#2965,#2966)); -#27296=EDGE_LOOP('',(#2967,#2968,#2969,#2970)); -#27297=EDGE_LOOP('',(#2971,#2972,#2973,#2974)); -#27298=EDGE_LOOP('',(#2975,#2976,#2977,#2978)); -#27299=EDGE_LOOP('',(#2979,#2980,#2981,#2982)); -#27300=EDGE_LOOP('',(#2983,#2984,#2985,#2986)); -#27301=EDGE_LOOP('',(#2987,#2988,#2989,#2990)); -#27302=EDGE_LOOP('',(#2991,#2992,#2993,#2994)); -#27303=EDGE_LOOP('',(#2995,#2996,#2997,#2998,#2999,#3000)); -#27304=EDGE_LOOP('',(#3001,#3002,#3003,#3004)); -#27305=EDGE_LOOP('',(#3005,#3006,#3007,#3008)); -#27306=EDGE_LOOP('',(#3009,#3010,#3011,#3012)); -#27307=EDGE_LOOP('',(#3013,#3014,#3015,#3016)); -#27308=EDGE_LOOP('',(#3017,#3018,#3019,#3020)); -#27309=EDGE_LOOP('',(#3021,#3022,#3023,#3024)); -#27310=EDGE_LOOP('',(#3025,#3026,#3027,#3028)); -#27311=EDGE_LOOP('',(#3029,#3030,#3031,#3032)); -#27312=EDGE_LOOP('',(#3033,#3034,#3035,#3036)); -#27313=EDGE_LOOP('',(#3037,#3038,#3039,#3040)); -#27314=EDGE_LOOP('',(#3041,#3042,#3043,#3044)); -#27315=EDGE_LOOP('',(#3045,#3046,#3047,#3048)); -#27316=EDGE_LOOP('',(#3049,#3050,#3051,#3052)); -#27317=EDGE_LOOP('',(#3053,#3054,#3055,#3056)); -#27318=EDGE_LOOP('',(#3057,#3058,#3059,#3060)); -#27319=EDGE_LOOP('',(#3061,#3062,#3063,#3064)); -#27320=EDGE_LOOP('',(#3065,#3066,#3067,#3068)); -#27321=EDGE_LOOP('',(#3069,#3070,#3071,#3072)); -#27322=EDGE_LOOP('',(#3073,#3074,#3075,#3076)); -#27323=EDGE_LOOP('',(#3077,#3078,#3079,#3080)); -#27324=EDGE_LOOP('',(#3081,#3082,#3083,#3084)); -#27325=EDGE_LOOP('',(#3085,#3086,#3087,#3088)); -#27326=EDGE_LOOP('',(#3089,#3090,#3091,#3092)); -#27327=EDGE_LOOP('',(#3093,#3094,#3095,#3096)); -#27328=EDGE_LOOP('',(#3097,#3098,#3099,#3100)); -#27329=EDGE_LOOP('',(#3101,#3102,#3103,#3104)); -#27330=EDGE_LOOP('',(#3105,#3106,#3107,#3108)); -#27331=EDGE_LOOP('',(#3109,#3110,#3111,#3112)); -#27332=EDGE_LOOP('',(#3113,#3114,#3115,#3116,#3117,#3118)); -#27333=EDGE_LOOP('',(#3119,#3120,#3121,#3122)); -#27334=EDGE_LOOP('',(#3123,#3124,#3125,#3126)); -#27335=EDGE_LOOP('',(#3127,#3128,#3129,#3130)); -#27336=EDGE_LOOP('',(#3131,#3132,#3133,#3134)); -#27337=EDGE_LOOP('',(#3135,#3136,#3137,#3138)); -#27338=EDGE_LOOP('',(#3139,#3140,#3141,#3142)); -#27339=EDGE_LOOP('',(#3143,#3144,#3145,#3146,#3147,#3148)); -#27340=EDGE_LOOP('',(#3149,#3150,#3151,#3152,#3153,#3154)); -#27341=EDGE_LOOP('',(#3155,#3156,#3157,#3158,#3159,#3160)); -#27342=EDGE_LOOP('',(#3161,#3162,#3163,#3164)); -#27343=EDGE_LOOP('',(#3165,#3166,#3167,#3168,#3169,#3170)); -#27344=EDGE_LOOP('',(#3171,#3172,#3173,#3174,#3175,#3176)); -#27345=EDGE_LOOP('',(#3177,#3178,#3179,#3180)); -#27346=EDGE_LOOP('',(#3181,#3182,#3183,#3184,#3185)); -#27347=EDGE_LOOP('',(#3186,#3187,#3188,#3189,#3190)); -#27348=EDGE_LOOP('',(#3191,#3192,#3193,#3194,#3195,#3196)); -#27349=EDGE_LOOP('',(#3197,#3198,#3199,#3200)); -#27350=EDGE_LOOP('',(#3201,#3202,#3203,#3204)); -#27351=EDGE_LOOP('',(#3205,#3206,#3207,#3208)); -#27352=EDGE_LOOP('',(#3209,#3210,#3211,#3212)); -#27353=EDGE_LOOP('',(#3213,#3214,#3215,#3216)); -#27354=EDGE_LOOP('',(#3217,#3218,#3219,#3220)); -#27355=EDGE_LOOP('',(#3221,#3222,#3223,#3224)); -#27356=EDGE_LOOP('',(#3225,#3226,#3227,#3228)); -#27357=EDGE_LOOP('',(#3229,#3230,#3231,#3232)); -#27358=EDGE_LOOP('',(#3233,#3234,#3235,#3236)); -#27359=EDGE_LOOP('',(#3237,#3238,#3239,#3240)); -#27360=EDGE_LOOP('',(#3241,#3242,#3243,#3244)); -#27361=EDGE_LOOP('',(#3245,#3246,#3247,#3248)); -#27362=EDGE_LOOP('',(#3249,#3250,#3251,#3252,#3253,#3254,#3255,#3256,#3257, -#3258,#3259,#3260,#3261,#3262,#3263,#3264,#3265,#3266,#3267,#3268,#3269, -#3270,#3271,#3272,#3273,#3274,#3275,#3276,#3277,#3278,#3279,#3280)); -#27363=EDGE_LOOP('',(#3281,#3282,#3283,#3284,#3285,#3286,#3287,#3288)); -#27364=EDGE_LOOP('',(#3289,#3290,#3291,#3292,#3293,#3294,#3295,#3296)); -#27365=EDGE_LOOP('',(#3297,#3298,#3299,#3300)); -#27366=EDGE_LOOP('',(#3301,#3302,#3303,#3304)); -#27367=EDGE_LOOP('',(#3305,#3306,#3307,#3308)); -#27368=EDGE_LOOP('',(#3309,#3310,#3311,#3312)); -#27369=EDGE_LOOP('',(#3313,#3314,#3315,#3316)); -#27370=EDGE_LOOP('',(#3317,#3318,#3319,#3320,#3321,#3322,#3323,#3324)); -#27371=EDGE_LOOP('',(#3325,#3326,#3327,#3328,#3329,#3330,#3331,#3332)); -#27372=EDGE_LOOP('',(#3333,#3334,#3335,#3336,#3337,#3338,#3339,#3340,#3341, -#3342,#3343,#3344,#3345,#3346,#3347,#3348,#3349,#3350,#3351,#3352,#3353, -#3354,#3355,#3356,#3357,#3358,#3359,#3360,#3361,#3362,#3363,#3364)); -#27373=EDGE_LOOP('',(#3365,#3366,#3367,#3368)); -#27374=EDGE_LOOP('',(#3369,#3370,#3371,#3372)); -#27375=EDGE_LOOP('',(#3373,#3374,#3375,#3376)); -#27376=EDGE_LOOP('',(#3377,#3378,#3379,#3380,#3381)); -#27377=EDGE_LOOP('',(#3382,#3383,#3384,#3385,#3386)); -#27378=EDGE_LOOP('',(#3387,#3388,#3389,#3390)); -#27379=EDGE_LOOP('',(#3391,#3392,#3393,#3394)); -#27380=EDGE_LOOP('',(#3395,#3396,#3397,#3398)); -#27381=EDGE_LOOP('',(#3399,#3400,#3401,#3402)); -#27382=EDGE_LOOP('',(#3403,#3404,#3405,#3406)); -#27383=EDGE_LOOP('',(#3407,#3408,#3409,#3410)); -#27384=EDGE_LOOP('',(#3411,#3412,#3413,#3414)); -#27385=EDGE_LOOP('',(#3415,#3416,#3417,#3418)); -#27386=EDGE_LOOP('',(#3419,#3420,#3421,#3422)); -#27387=EDGE_LOOP('',(#3423,#3424,#3425,#3426)); -#27388=EDGE_LOOP('',(#3427,#3428,#3429,#3430)); -#27389=EDGE_LOOP('',(#3431,#3432,#3433,#3434)); -#27390=EDGE_LOOP('',(#3435,#3436,#3437,#3438)); -#27391=EDGE_LOOP('',(#3439,#3440,#3441,#3442)); -#27392=EDGE_LOOP('',(#3443,#3444,#3445,#3446)); -#27393=EDGE_LOOP('',(#3447,#3448,#3449,#3450)); -#27394=EDGE_LOOP('',(#3451,#3452,#3453,#3454)); -#27395=EDGE_LOOP('',(#3455,#3456,#3457,#3458)); -#27396=EDGE_LOOP('',(#3459,#3460,#3461,#3462)); -#27397=EDGE_LOOP('',(#3463,#3464,#3465,#3466)); -#27398=EDGE_LOOP('',(#3467,#3468,#3469,#3470)); -#27399=EDGE_LOOP('',(#3471,#3472,#3473,#3474)); -#27400=EDGE_LOOP('',(#3475,#3476,#3477,#3478)); -#27401=EDGE_LOOP('',(#3479,#3480,#3481,#3482)); -#27402=EDGE_LOOP('',(#3483,#3484,#3485,#3486)); -#27403=EDGE_LOOP('',(#3487,#3488,#3489,#3490)); -#27404=EDGE_LOOP('',(#3491,#3492,#3493,#3494)); -#27405=EDGE_LOOP('',(#3495,#3496,#3497,#3498)); -#27406=EDGE_LOOP('',(#3499,#3500,#3501,#3502)); -#27407=EDGE_LOOP('',(#3503,#3504,#3505,#3506)); -#27408=EDGE_LOOP('',(#3507,#3508,#3509,#3510)); -#27409=EDGE_LOOP('',(#3511,#3512,#3513,#3514)); -#27410=EDGE_LOOP('',(#3515,#3516,#3517,#3518)); -#27411=EDGE_LOOP('',(#3519,#3520,#3521,#3522)); -#27412=EDGE_LOOP('',(#3523,#3524,#3525,#3526)); -#27413=EDGE_LOOP('',(#3527,#3528,#3529,#3530)); -#27414=EDGE_LOOP('',(#3531,#3532,#3533,#3534)); -#27415=EDGE_LOOP('',(#3535,#3536,#3537,#3538)); -#27416=EDGE_LOOP('',(#3539,#3540,#3541,#3542)); -#27417=EDGE_LOOP('',(#3543,#3544,#3545,#3546)); -#27418=EDGE_LOOP('',(#3547,#3548,#3549,#3550)); -#27419=EDGE_LOOP('',(#3551,#3552,#3553,#3554)); -#27420=EDGE_LOOP('',(#3555,#3556,#3557,#3558)); -#27421=EDGE_LOOP('',(#3559,#3560,#3561,#3562)); -#27422=EDGE_LOOP('',(#3563,#3564,#3565,#3566)); -#27423=EDGE_LOOP('',(#3567,#3568,#3569,#3570)); -#27424=EDGE_LOOP('',(#3571,#3572,#3573,#3574)); -#27425=EDGE_LOOP('',(#3575,#3576,#3577,#3578)); -#27426=EDGE_LOOP('',(#3579,#3580,#3581,#3582)); -#27427=EDGE_LOOP('',(#3583,#3584,#3585,#3586)); -#27428=EDGE_LOOP('',(#3587,#3588,#3589,#3590)); -#27429=EDGE_LOOP('',(#3591,#3592,#3593,#3594)); -#27430=EDGE_LOOP('',(#3595,#3596,#3597,#3598)); -#27431=EDGE_LOOP('',(#3599,#3600,#3601,#3602)); -#27432=EDGE_LOOP('',(#3603,#3604,#3605,#3606)); -#27433=EDGE_LOOP('',(#3607,#3608,#3609,#3610)); -#27434=EDGE_LOOP('',(#3611,#3612,#3613,#3614)); -#27435=EDGE_LOOP('',(#3615,#3616,#3617,#3618)); -#27436=EDGE_LOOP('',(#3619,#3620,#3621,#3622)); -#27437=EDGE_LOOP('',(#3623,#3624,#3625,#3626)); -#27438=EDGE_LOOP('',(#3627,#3628,#3629,#3630)); -#27439=EDGE_LOOP('',(#3631,#3632,#3633,#3634)); -#27440=EDGE_LOOP('',(#3635,#3636,#3637,#3638)); -#27441=EDGE_LOOP('',(#3639,#3640,#3641,#3642)); -#27442=EDGE_LOOP('',(#3643,#3644,#3645,#3646)); -#27443=EDGE_LOOP('',(#3647,#3648,#3649,#3650)); -#27444=EDGE_LOOP('',(#3651,#3652,#3653,#3654)); -#27445=EDGE_LOOP('',(#3655,#3656,#3657,#3658)); -#27446=EDGE_LOOP('',(#3659,#3660,#3661,#3662)); -#27447=EDGE_LOOP('',(#3663,#3664,#3665,#3666)); -#27448=EDGE_LOOP('',(#3667,#3668,#3669,#3670)); -#27449=EDGE_LOOP('',(#3671,#3672,#3673,#3674)); -#27450=EDGE_LOOP('',(#3675,#3676,#3677,#3678)); -#27451=EDGE_LOOP('',(#3679,#3680,#3681,#3682)); -#27452=EDGE_LOOP('',(#3683,#3684,#3685,#3686)); -#27453=EDGE_LOOP('',(#3687,#3688,#3689,#3690)); -#27454=EDGE_LOOP('',(#3691,#3692,#3693,#3694)); -#27455=EDGE_LOOP('',(#3695,#3696,#3697,#3698)); -#27456=EDGE_LOOP('',(#3699,#3700,#3701,#3702)); -#27457=EDGE_LOOP('',(#3703,#3704,#3705,#3706)); -#27458=EDGE_LOOP('',(#3707,#3708,#3709,#3710)); -#27459=EDGE_LOOP('',(#3711,#3712,#3713,#3714)); -#27460=EDGE_LOOP('',(#3715,#3716,#3717,#3718)); -#27461=EDGE_LOOP('',(#3719,#3720,#3721,#3722)); -#27462=EDGE_LOOP('',(#3723,#3724,#3725,#3726)); -#27463=EDGE_LOOP('',(#3727,#3728,#3729,#3730)); -#27464=EDGE_LOOP('',(#3731,#3732,#3733,#3734)); -#27465=EDGE_LOOP('',(#3735,#3736,#3737,#3738)); -#27466=EDGE_LOOP('',(#3739,#3740,#3741,#3742)); -#27467=EDGE_LOOP('',(#3743,#3744,#3745,#3746)); -#27468=EDGE_LOOP('',(#3747,#3748,#3749,#3750)); -#27469=EDGE_LOOP('',(#3751,#3752,#3753,#3754)); -#27470=EDGE_LOOP('',(#3755,#3756,#3757,#3758)); -#27471=EDGE_LOOP('',(#3759,#3760,#3761,#3762)); -#27472=EDGE_LOOP('',(#3763,#3764,#3765,#3766)); -#27473=EDGE_LOOP('',(#3767,#3768,#3769,#3770)); -#27474=EDGE_LOOP('',(#3771,#3772,#3773,#3774)); -#27475=EDGE_LOOP('',(#3775,#3776,#3777,#3778)); -#27476=EDGE_LOOP('',(#3779,#3780,#3781,#3782)); -#27477=EDGE_LOOP('',(#3783,#3784,#3785,#3786)); -#27478=EDGE_LOOP('',(#3787,#3788,#3789,#3790)); -#27479=EDGE_LOOP('',(#3791,#3792,#3793,#3794)); -#27480=EDGE_LOOP('',(#3795,#3796,#3797,#3798)); -#27481=EDGE_LOOP('',(#3799,#3800,#3801,#3802)); -#27482=EDGE_LOOP('',(#3803,#3804,#3805,#3806)); -#27483=EDGE_LOOP('',(#3807,#3808,#3809,#3810)); -#27484=EDGE_LOOP('',(#3811,#3812,#3813,#3814)); -#27485=EDGE_LOOP('',(#3815,#3816,#3817,#3818)); -#27486=EDGE_LOOP('',(#3819,#3820,#3821,#3822)); -#27487=EDGE_LOOP('',(#3823,#3824,#3825,#3826)); -#27488=EDGE_LOOP('',(#3827,#3828,#3829,#3830)); -#27489=EDGE_LOOP('',(#3831,#3832,#3833,#3834)); -#27490=EDGE_LOOP('',(#3835,#3836,#3837,#3838)); -#27491=EDGE_LOOP('',(#3839,#3840,#3841,#3842)); -#27492=EDGE_LOOP('',(#3843,#3844,#3845,#3846)); -#27493=EDGE_LOOP('',(#3847,#3848,#3849,#3850)); -#27494=EDGE_LOOP('',(#3851,#3852,#3853,#3854)); -#27495=EDGE_LOOP('',(#3855,#3856,#3857,#3858)); -#27496=EDGE_LOOP('',(#3859,#3860,#3861,#3862)); -#27497=EDGE_LOOP('',(#3863,#3864,#3865,#3866)); -#27498=EDGE_LOOP('',(#3867,#3868,#3869,#3870)); -#27499=EDGE_LOOP('',(#3871,#3872,#3873,#3874)); -#27500=EDGE_LOOP('',(#3875,#3876,#3877,#3878)); -#27501=EDGE_LOOP('',(#3879,#3880,#3881,#3882)); -#27502=EDGE_LOOP('',(#3883,#3884,#3885,#3886)); -#27503=EDGE_LOOP('',(#3887,#3888,#3889,#3890)); -#27504=EDGE_LOOP('',(#3891,#3892,#3893,#3894)); -#27505=EDGE_LOOP('',(#3895,#3896,#3897,#3898)); -#27506=EDGE_LOOP('',(#3899,#3900,#3901,#3902)); -#27507=EDGE_LOOP('',(#3903,#3904,#3905,#3906)); -#27508=EDGE_LOOP('',(#3907,#3908,#3909,#3910)); -#27509=EDGE_LOOP('',(#3911,#3912,#3913,#3914)); -#27510=EDGE_LOOP('',(#3915,#3916,#3917,#3918)); -#27511=EDGE_LOOP('',(#3919,#3920,#3921,#3922)); -#27512=EDGE_LOOP('',(#3923,#3924,#3925,#3926)); -#27513=EDGE_LOOP('',(#3927,#3928,#3929,#3930)); -#27514=EDGE_LOOP('',(#3931,#3932,#3933,#3934)); -#27515=EDGE_LOOP('',(#3935,#3936,#3937,#3938)); -#27516=EDGE_LOOP('',(#3939,#3940,#3941,#3942)); -#27517=EDGE_LOOP('',(#3943,#3944,#3945,#3946)); -#27518=EDGE_LOOP('',(#3947,#3948,#3949,#3950)); -#27519=EDGE_LOOP('',(#3951,#3952,#3953,#3954)); -#27520=EDGE_LOOP('',(#3955,#3956,#3957,#3958)); -#27521=EDGE_LOOP('',(#3959,#3960,#3961,#3962)); -#27522=EDGE_LOOP('',(#3963,#3964,#3965,#3966)); -#27523=EDGE_LOOP('',(#3967,#3968,#3969,#3970)); -#27524=EDGE_LOOP('',(#3971,#3972,#3973,#3974)); -#27525=EDGE_LOOP('',(#3975,#3976,#3977,#3978)); -#27526=EDGE_LOOP('',(#3979,#3980,#3981)); -#27527=EDGE_LOOP('',(#3982,#3983,#3984,#3985)); -#27528=EDGE_LOOP('',(#3986,#3987,#3988,#3989)); -#27529=EDGE_LOOP('',(#3990,#3991,#3992,#3993,#3994,#3995,#3996)); -#27530=EDGE_LOOP('',(#3997)); -#27531=EDGE_LOOP('',(#3998)); -#27532=EDGE_LOOP('',(#3999)); -#27533=EDGE_LOOP('',(#4000)); -#27534=EDGE_LOOP('',(#4001)); -#27535=EDGE_LOOP('',(#4002,#4003,#4004,#4005)); -#27536=EDGE_LOOP('',(#4006,#4007,#4008,#4009)); -#27537=EDGE_LOOP('',(#4010,#4011,#4012,#4013)); -#27538=EDGE_LOOP('',(#4014,#4015,#4016,#4017)); -#27539=EDGE_LOOP('',(#4018,#4019,#4020,#4021)); -#27540=EDGE_LOOP('',(#4022,#4023,#4024,#4025)); -#27541=EDGE_LOOP('',(#4026,#4027,#4028,#4029)); -#27542=EDGE_LOOP('',(#4030,#4031,#4032,#4033)); -#27543=EDGE_LOOP('',(#4034,#4035,#4036,#4037,#4038,#4039,#4040,#4041)); -#27544=EDGE_LOOP('',(#4042,#4043,#4044,#4045)); -#27545=EDGE_LOOP('',(#4046,#4047,#4048,#4049)); -#27546=EDGE_LOOP('',(#4050,#4051,#4052,#4053)); -#27547=EDGE_LOOP('',(#4054,#4055,#4056,#4057)); -#27548=EDGE_LOOP('',(#4058,#4059,#4060,#4061)); -#27549=EDGE_LOOP('',(#4062,#4063,#4064,#4065)); -#27550=EDGE_LOOP('',(#4066,#4067,#4068,#4069)); -#27551=EDGE_LOOP('',(#4070,#4071,#4072,#4073)); -#27552=EDGE_LOOP('',(#4074,#4075,#4076,#4077)); -#27553=EDGE_LOOP('',(#4078,#4079,#4080,#4081)); -#27554=EDGE_LOOP('',(#4082,#4083,#4084,#4085,#4086,#4087,#4088,#4089,#4090, -#4091)); -#27555=EDGE_LOOP('',(#4092,#4093,#4094,#4095)); -#27556=EDGE_LOOP('',(#4096,#4097,#4098,#4099)); -#27557=EDGE_LOOP('',(#4100,#4101,#4102,#4103)); -#27558=EDGE_LOOP('',(#4104,#4105,#4106,#4107)); -#27559=EDGE_LOOP('',(#4108,#4109,#4110,#4111)); -#27560=EDGE_LOOP('',(#4112,#4113,#4114,#4115)); -#27561=EDGE_LOOP('',(#4116,#4117,#4118,#4119)); -#27562=EDGE_LOOP('',(#4120,#4121,#4122,#4123)); -#27563=EDGE_LOOP('',(#4124,#4125,#4126,#4127)); -#27564=EDGE_LOOP('',(#4128,#4129,#4130,#4131)); -#27565=EDGE_LOOP('',(#4132,#4133,#4134,#4135,#4136,#4137,#4138,#4139,#4140, -#4141)); -#27566=EDGE_LOOP('',(#4142,#4143,#4144,#4145)); -#27567=EDGE_LOOP('',(#4146,#4147,#4148,#4149)); -#27568=EDGE_LOOP('',(#4150,#4151,#4152,#4153,#4154,#4155)); -#27569=EDGE_LOOP('',(#4156,#4157,#4158,#4159)); -#27570=EDGE_LOOP('',(#4160,#4161,#4162,#4163)); -#27571=EDGE_LOOP('',(#4164,#4165,#4166,#4167)); -#27572=EDGE_LOOP('',(#4168,#4169,#4170,#4171)); -#27573=EDGE_LOOP('',(#4172,#4173,#4174,#4175)); -#27574=EDGE_LOOP('',(#4176,#4177,#4178,#4179,#4180,#4181,#4182,#4183)); -#27575=EDGE_LOOP('',(#4184,#4185,#4186,#4187)); -#27576=EDGE_LOOP('',(#4188,#4189,#4190,#4191)); -#27577=EDGE_LOOP('',(#4192,#4193,#4194,#4195)); -#27578=EDGE_LOOP('',(#4196,#4197,#4198,#4199,#4200,#4201,#4202,#4203,#4204, -#4205,#4206,#4207,#4208,#4209,#4210,#4211,#4212,#4213,#4214,#4215,#4216, -#4217,#4218,#4219,#4220,#4221,#4222,#4223,#4224,#4225,#4226,#4227,#4228, -#4229,#4230,#4231,#4232,#4233,#4234,#4235,#4236,#4237,#4238,#4239,#4240, -#4241,#4242,#4243,#4244,#4245,#4246,#4247,#4248,#4249,#4250,#4251,#4252, -#4253,#4254,#4255,#4256,#4257,#4258,#4259,#4260,#4261,#4262,#4263,#4264, -#4265,#4266,#4267,#4268,#4269,#4270,#4271,#4272,#4273,#4274,#4275,#4276, -#4277,#4278,#4279,#4280,#4281,#4282,#4283,#4284,#4285,#4286,#4287,#4288, -#4289,#4290,#4291,#4292,#4293,#4294,#4295,#4296,#4297,#4298,#4299,#4300, -#4301,#4302,#4303,#4304,#4305,#4306,#4307,#4308,#4309,#4310,#4311,#4312, -#4313,#4314,#4315,#4316,#4317,#4318,#4319,#4320,#4321,#4322,#4323,#4324, -#4325,#4326,#4327,#4328,#4329,#4330,#4331,#4332,#4333,#4334,#4335,#4336, -#4337,#4338,#4339,#4340,#4341,#4342,#4343,#4344,#4345,#4346,#4347,#4348, -#4349,#4350,#4351,#4352,#4353,#4354,#4355,#4356,#4357,#4358,#4359)); -#27579=EDGE_LOOP('',(#4360,#4361,#4362,#4363,#4364,#4365,#4366,#4367,#4368, -#4369,#4370,#4371,#4372,#4373,#4374,#4375,#4376,#4377,#4378,#4379,#4380, -#4381,#4382,#4383,#4384,#4385,#4386,#4387,#4388,#4389,#4390,#4391,#4392, -#4393,#4394,#4395,#4396,#4397,#4398,#4399,#4400,#4401,#4402,#4403,#4404, -#4405,#4406,#4407,#4408,#4409,#4410,#4411,#4412,#4413,#4414,#4415,#4416, -#4417,#4418,#4419,#4420,#4421,#4422,#4423,#4424,#4425,#4426,#4427,#4428, -#4429,#4430,#4431,#4432,#4433,#4434,#4435,#4436,#4437,#4438,#4439,#4440, -#4441,#4442,#4443,#4444,#4445,#4446,#4447,#4448,#4449,#4450,#4451,#4452, -#4453,#4454,#4455,#4456,#4457,#4458,#4459,#4460,#4461,#4462,#4463,#4464, -#4465,#4466,#4467,#4468,#4469,#4470,#4471,#4472,#4473,#4474,#4475,#4476, -#4477,#4478,#4479,#4480,#4481,#4482,#4483,#4484,#4485,#4486,#4487,#4488, -#4489,#4490,#4491,#4492,#4493,#4494,#4495,#4496,#4497,#4498,#4499,#4500, -#4501,#4502,#4503,#4504,#4505,#4506,#4507,#4508,#4509,#4510,#4511,#4512, -#4513,#4514,#4515,#4516,#4517,#4518,#4519,#4520,#4521,#4522,#4523)); -#27580=EDGE_LOOP('',(#4524,#4525,#4526,#4527,#4528,#4529,#4530,#4531,#4532, -#4533,#4534,#4535,#4536,#4537,#4538,#4539,#4540,#4541,#4542,#4543,#4544, -#4545,#4546,#4547,#4548,#4549,#4550,#4551,#4552,#4553,#4554,#4555,#4556, -#4557,#4558,#4559,#4560,#4561,#4562,#4563,#4564,#4565,#4566,#4567,#4568, -#4569,#4570,#4571,#4572,#4573,#4574,#4575,#4576,#4577,#4578,#4579,#4580, -#4581,#4582,#4583,#4584,#4585,#4586,#4587,#4588,#4589,#4590,#4591,#4592, -#4593,#4594,#4595,#4596,#4597,#4598,#4599,#4600,#4601,#4602,#4603,#4604, -#4605,#4606,#4607,#4608,#4609,#4610,#4611,#4612,#4613,#4614,#4615,#4616, -#4617,#4618,#4619,#4620,#4621,#4622,#4623,#4624,#4625,#4626,#4627,#4628, -#4629,#4630,#4631,#4632,#4633,#4634,#4635,#4636,#4637,#4638,#4639,#4640, -#4641,#4642,#4643,#4644,#4645,#4646,#4647,#4648,#4649,#4650,#4651,#4652, -#4653,#4654,#4655,#4656,#4657,#4658,#4659,#4660,#4661,#4662,#4663,#4664, -#4665,#4666,#4667,#4668,#4669,#4670,#4671,#4672,#4673,#4674,#4675,#4676, -#4677,#4678,#4679,#4680,#4681,#4682,#4683,#4684,#4685,#4686,#4687)); -#27581=EDGE_LOOP('',(#4688,#4689,#4690,#4691,#4692,#4693,#4694,#4695,#4696, -#4697,#4698,#4699,#4700,#4701,#4702,#4703,#4704,#4705,#4706,#4707,#4708, -#4709,#4710,#4711,#4712,#4713,#4714,#4715,#4716,#4717,#4718,#4719,#4720, -#4721,#4722,#4723,#4724,#4725,#4726,#4727,#4728,#4729,#4730,#4731,#4732, -#4733,#4734,#4735,#4736,#4737,#4738,#4739,#4740,#4741,#4742,#4743,#4744, -#4745,#4746,#4747,#4748,#4749,#4750,#4751,#4752,#4753,#4754,#4755,#4756, -#4757,#4758,#4759,#4760,#4761,#4762,#4763,#4764,#4765,#4766,#4767,#4768, -#4769,#4770,#4771,#4772,#4773,#4774,#4775,#4776,#4777,#4778,#4779,#4780, -#4781,#4782,#4783,#4784,#4785,#4786,#4787,#4788,#4789,#4790,#4791,#4792, -#4793,#4794,#4795,#4796,#4797,#4798,#4799,#4800,#4801,#4802,#4803,#4804, -#4805,#4806,#4807,#4808,#4809,#4810,#4811,#4812,#4813,#4814,#4815,#4816, -#4817,#4818,#4819,#4820,#4821,#4822,#4823,#4824,#4825,#4826,#4827,#4828, -#4829,#4830,#4831,#4832,#4833,#4834,#4835,#4836,#4837,#4838,#4839,#4840, -#4841,#4842,#4843,#4844,#4845,#4846,#4847,#4848,#4849,#4850,#4851)); -#27582=EDGE_LOOP('',(#4852,#4853,#4854,#4855)); -#27583=EDGE_LOOP('',(#4856,#4857,#4858,#4859)); -#27584=EDGE_LOOP('',(#4860,#4861,#4862,#4863)); -#27585=EDGE_LOOP('',(#4864,#4865,#4866,#4867)); -#27586=EDGE_LOOP('',(#4868,#4869,#4870,#4871)); -#27587=EDGE_LOOP('',(#4872,#4873,#4874,#4875)); -#27588=EDGE_LOOP('',(#4876,#4877,#4878,#4879)); -#27589=EDGE_LOOP('',(#4880,#4881,#4882,#4883)); -#27590=EDGE_LOOP('',(#4884,#4885,#4886,#4887)); -#27591=EDGE_LOOP('',(#4888,#4889,#4890,#4891)); -#27592=EDGE_LOOP('',(#4892,#4893,#4894,#4895)); -#27593=EDGE_LOOP('',(#4896,#4897,#4898,#4899)); -#27594=EDGE_LOOP('',(#4900,#4901,#4902,#4903)); -#27595=EDGE_LOOP('',(#4904,#4905,#4906,#4907)); -#27596=EDGE_LOOP('',(#4908,#4909,#4910,#4911)); -#27597=EDGE_LOOP('',(#4912,#4913,#4914,#4915)); -#27598=EDGE_LOOP('',(#4916,#4917,#4918,#4919)); -#27599=EDGE_LOOP('',(#4920,#4921,#4922,#4923)); -#27600=EDGE_LOOP('',(#4924,#4925,#4926,#4927)); -#27601=EDGE_LOOP('',(#4928,#4929,#4930,#4931)); -#27602=EDGE_LOOP('',(#4932,#4933,#4934,#4935)); -#27603=EDGE_LOOP('',(#4936,#4937,#4938,#4939)); -#27604=EDGE_LOOP('',(#4940,#4941,#4942,#4943)); -#27605=EDGE_LOOP('',(#4944,#4945,#4946,#4947)); -#27606=EDGE_LOOP('',(#4948,#4949,#4950,#4951)); -#27607=EDGE_LOOP('',(#4952,#4953,#4954,#4955)); -#27608=EDGE_LOOP('',(#4956,#4957,#4958,#4959)); -#27609=EDGE_LOOP('',(#4960,#4961,#4962,#4963)); -#27610=EDGE_LOOP('',(#4964,#4965,#4966,#4967)); -#27611=EDGE_LOOP('',(#4968,#4969,#4970,#4971)); -#27612=EDGE_LOOP('',(#4972,#4973,#4974,#4975)); -#27613=EDGE_LOOP('',(#4976,#4977,#4978,#4979)); -#27614=EDGE_LOOP('',(#4980,#4981,#4982,#4983)); -#27615=EDGE_LOOP('',(#4984,#4985,#4986,#4987)); -#27616=EDGE_LOOP('',(#4988,#4989,#4990,#4991)); -#27617=EDGE_LOOP('',(#4992,#4993,#4994,#4995)); -#27618=EDGE_LOOP('',(#4996,#4997,#4998,#4999)); -#27619=EDGE_LOOP('',(#5000,#5001,#5002,#5003)); -#27620=EDGE_LOOP('',(#5004,#5005,#5006,#5007)); -#27621=EDGE_LOOP('',(#5008,#5009,#5010,#5011)); -#27622=EDGE_LOOP('',(#5012,#5013,#5014,#5015)); -#27623=EDGE_LOOP('',(#5016,#5017,#5018,#5019)); -#27624=EDGE_LOOP('',(#5020,#5021,#5022,#5023)); -#27625=EDGE_LOOP('',(#5024,#5025,#5026,#5027)); -#27626=EDGE_LOOP('',(#5028,#5029,#5030,#5031)); -#27627=EDGE_LOOP('',(#5032,#5033,#5034,#5035)); -#27628=EDGE_LOOP('',(#5036,#5037,#5038,#5039)); -#27629=EDGE_LOOP('',(#5040,#5041,#5042,#5043)); -#27630=EDGE_LOOP('',(#5044,#5045,#5046,#5047)); -#27631=EDGE_LOOP('',(#5048,#5049,#5050,#5051)); -#27632=EDGE_LOOP('',(#5052,#5053,#5054,#5055)); -#27633=EDGE_LOOP('',(#5056,#5057,#5058,#5059)); -#27634=EDGE_LOOP('',(#5060,#5061,#5062,#5063)); -#27635=EDGE_LOOP('',(#5064,#5065,#5066,#5067)); -#27636=EDGE_LOOP('',(#5068,#5069,#5070,#5071)); -#27637=EDGE_LOOP('',(#5072,#5073,#5074,#5075)); -#27638=EDGE_LOOP('',(#5076,#5077,#5078,#5079)); -#27639=EDGE_LOOP('',(#5080,#5081,#5082,#5083)); -#27640=EDGE_LOOP('',(#5084,#5085,#5086,#5087)); -#27641=EDGE_LOOP('',(#5088,#5089,#5090,#5091)); -#27642=EDGE_LOOP('',(#5092,#5093,#5094,#5095)); -#27643=EDGE_LOOP('',(#5096,#5097,#5098,#5099)); -#27644=EDGE_LOOP('',(#5100,#5101,#5102,#5103)); -#27645=EDGE_LOOP('',(#5104,#5105,#5106,#5107)); -#27646=EDGE_LOOP('',(#5108,#5109,#5110,#5111)); -#27647=EDGE_LOOP('',(#5112,#5113,#5114,#5115)); -#27648=EDGE_LOOP('',(#5116,#5117,#5118,#5119)); -#27649=EDGE_LOOP('',(#5120,#5121,#5122,#5123)); -#27650=EDGE_LOOP('',(#5124,#5125,#5126,#5127)); -#27651=EDGE_LOOP('',(#5128,#5129,#5130,#5131)); -#27652=EDGE_LOOP('',(#5132,#5133,#5134,#5135)); -#27653=EDGE_LOOP('',(#5136,#5137,#5138,#5139)); -#27654=EDGE_LOOP('',(#5140,#5141,#5142,#5143)); -#27655=EDGE_LOOP('',(#5144,#5145,#5146,#5147)); -#27656=EDGE_LOOP('',(#5148,#5149,#5150,#5151)); -#27657=EDGE_LOOP('',(#5152,#5153,#5154,#5155)); -#27658=EDGE_LOOP('',(#5156,#5157,#5158,#5159)); -#27659=EDGE_LOOP('',(#5160,#5161,#5162,#5163)); -#27660=EDGE_LOOP('',(#5164,#5165,#5166,#5167)); -#27661=EDGE_LOOP('',(#5168,#5169,#5170,#5171)); -#27662=EDGE_LOOP('',(#5172,#5173,#5174,#5175)); -#27663=EDGE_LOOP('',(#5176,#5177,#5178,#5179)); -#27664=EDGE_LOOP('',(#5180,#5181,#5182,#5183)); -#27665=EDGE_LOOP('',(#5184,#5185,#5186,#5187)); -#27666=EDGE_LOOP('',(#5188,#5189,#5190,#5191)); -#27667=EDGE_LOOP('',(#5192,#5193,#5194,#5195)); -#27668=EDGE_LOOP('',(#5196,#5197,#5198,#5199)); -#27669=EDGE_LOOP('',(#5200,#5201,#5202,#5203)); -#27670=EDGE_LOOP('',(#5204,#5205,#5206,#5207)); -#27671=EDGE_LOOP('',(#5208,#5209,#5210,#5211)); -#27672=EDGE_LOOP('',(#5212,#5213,#5214,#5215)); -#27673=EDGE_LOOP('',(#5216,#5217,#5218,#5219)); -#27674=EDGE_LOOP('',(#5220,#5221,#5222,#5223)); -#27675=EDGE_LOOP('',(#5224,#5225,#5226,#5227)); -#27676=EDGE_LOOP('',(#5228,#5229,#5230,#5231)); -#27677=EDGE_LOOP('',(#5232,#5233,#5234,#5235)); -#27678=EDGE_LOOP('',(#5236,#5237,#5238,#5239)); -#27679=EDGE_LOOP('',(#5240,#5241,#5242,#5243)); -#27680=EDGE_LOOP('',(#5244,#5245,#5246,#5247)); -#27681=EDGE_LOOP('',(#5248,#5249,#5250,#5251)); -#27682=EDGE_LOOP('',(#5252,#5253,#5254,#5255)); -#27683=EDGE_LOOP('',(#5256,#5257,#5258,#5259)); -#27684=EDGE_LOOP('',(#5260,#5261,#5262,#5263)); -#27685=EDGE_LOOP('',(#5264,#5265,#5266,#5267)); -#27686=EDGE_LOOP('',(#5268,#5269,#5270,#5271)); -#27687=EDGE_LOOP('',(#5272,#5273,#5274,#5275)); -#27688=EDGE_LOOP('',(#5276,#5277,#5278,#5279)); -#27689=EDGE_LOOP('',(#5280,#5281,#5282,#5283)); -#27690=EDGE_LOOP('',(#5284,#5285,#5286,#5287)); -#27691=EDGE_LOOP('',(#5288,#5289,#5290,#5291)); -#27692=EDGE_LOOP('',(#5292,#5293,#5294,#5295)); -#27693=EDGE_LOOP('',(#5296,#5297,#5298,#5299)); -#27694=EDGE_LOOP('',(#5300,#5301,#5302,#5303)); -#27695=EDGE_LOOP('',(#5304,#5305,#5306,#5307)); -#27696=EDGE_LOOP('',(#5308,#5309,#5310,#5311)); -#27697=EDGE_LOOP('',(#5312,#5313,#5314,#5315)); -#27698=EDGE_LOOP('',(#5316,#5317,#5318,#5319)); -#27699=EDGE_LOOP('',(#5320,#5321,#5322,#5323)); -#27700=EDGE_LOOP('',(#5324,#5325,#5326,#5327)); -#27701=EDGE_LOOP('',(#5328,#5329,#5330,#5331)); -#27702=EDGE_LOOP('',(#5332,#5333,#5334,#5335)); -#27703=EDGE_LOOP('',(#5336,#5337,#5338,#5339)); -#27704=EDGE_LOOP('',(#5340,#5341,#5342,#5343)); -#27705=EDGE_LOOP('',(#5344,#5345,#5346,#5347)); -#27706=EDGE_LOOP('',(#5348,#5349,#5350,#5351)); -#27707=EDGE_LOOP('',(#5352,#5353,#5354,#5355)); -#27708=EDGE_LOOP('',(#5356,#5357,#5358,#5359)); -#27709=EDGE_LOOP('',(#5360,#5361,#5362,#5363)); -#27710=EDGE_LOOP('',(#5364,#5365,#5366,#5367)); -#27711=EDGE_LOOP('',(#5368,#5369,#5370,#5371)); -#27712=EDGE_LOOP('',(#5372,#5373,#5374,#5375)); -#27713=EDGE_LOOP('',(#5376,#5377,#5378,#5379)); -#27714=EDGE_LOOP('',(#5380,#5381,#5382,#5383)); -#27715=EDGE_LOOP('',(#5384,#5385,#5386,#5387)); -#27716=EDGE_LOOP('',(#5388,#5389,#5390,#5391)); -#27717=EDGE_LOOP('',(#5392,#5393,#5394,#5395)); -#27718=EDGE_LOOP('',(#5396,#5397,#5398,#5399)); -#27719=EDGE_LOOP('',(#5400,#5401,#5402,#5403)); -#27720=EDGE_LOOP('',(#5404,#5405,#5406,#5407)); -#27721=EDGE_LOOP('',(#5408,#5409,#5410,#5411)); -#27722=EDGE_LOOP('',(#5412,#5413,#5414,#5415)); -#27723=EDGE_LOOP('',(#5416,#5417,#5418,#5419)); -#27724=EDGE_LOOP('',(#5420,#5421,#5422,#5423)); -#27725=EDGE_LOOP('',(#5424,#5425,#5426,#5427)); -#27726=EDGE_LOOP('',(#5428,#5429,#5430,#5431)); -#27727=EDGE_LOOP('',(#5432,#5433,#5434,#5435)); -#27728=EDGE_LOOP('',(#5436,#5437,#5438,#5439)); -#27729=EDGE_LOOP('',(#5440,#5441,#5442,#5443)); -#27730=EDGE_LOOP('',(#5444,#5445,#5446,#5447)); -#27731=EDGE_LOOP('',(#5448,#5449,#5450,#5451)); -#27732=EDGE_LOOP('',(#5452,#5453,#5454,#5455)); -#27733=EDGE_LOOP('',(#5456,#5457,#5458,#5459)); -#27734=EDGE_LOOP('',(#5460,#5461,#5462,#5463)); -#27735=EDGE_LOOP('',(#5464,#5465,#5466,#5467)); -#27736=EDGE_LOOP('',(#5468,#5469,#5470,#5471)); -#27737=EDGE_LOOP('',(#5472,#5473,#5474,#5475)); -#27738=EDGE_LOOP('',(#5476,#5477,#5478,#5479)); -#27739=EDGE_LOOP('',(#5480,#5481,#5482,#5483)); -#27740=EDGE_LOOP('',(#5484,#5485,#5486,#5487)); -#27741=EDGE_LOOP('',(#5488,#5489,#5490,#5491)); -#27742=EDGE_LOOP('',(#5492,#5493,#5494,#5495)); -#27743=EDGE_LOOP('',(#5496,#5497,#5498,#5499)); -#27744=EDGE_LOOP('',(#5500,#5501,#5502,#5503)); -#27745=EDGE_LOOP('',(#5504,#5505,#5506,#5507)); -#27746=EDGE_LOOP('',(#5508,#5509,#5510,#5511)); -#27747=EDGE_LOOP('',(#5512,#5513,#5514,#5515)); -#27748=EDGE_LOOP('',(#5516,#5517,#5518,#5519)); -#27749=EDGE_LOOP('',(#5520,#5521,#5522,#5523)); -#27750=EDGE_LOOP('',(#5524,#5525,#5526,#5527)); -#27751=EDGE_LOOP('',(#5528,#5529,#5530,#5531)); -#27752=EDGE_LOOP('',(#5532,#5533,#5534,#5535)); -#27753=EDGE_LOOP('',(#5536,#5537,#5538,#5539)); -#27754=EDGE_LOOP('',(#5540,#5541,#5542,#5543)); -#27755=EDGE_LOOP('',(#5544,#5545,#5546,#5547)); -#27756=EDGE_LOOP('',(#5548,#5549,#5550,#5551)); -#27757=EDGE_LOOP('',(#5552,#5553,#5554,#5555)); -#27758=EDGE_LOOP('',(#5556,#5557,#5558,#5559)); -#27759=EDGE_LOOP('',(#5560,#5561,#5562,#5563)); -#27760=EDGE_LOOP('',(#5564,#5565,#5566,#5567)); -#27761=EDGE_LOOP('',(#5568,#5569,#5570,#5571)); -#27762=EDGE_LOOP('',(#5572,#5573,#5574,#5575)); -#27763=EDGE_LOOP('',(#5576,#5577,#5578,#5579)); -#27764=EDGE_LOOP('',(#5580,#5581,#5582,#5583)); -#27765=EDGE_LOOP('',(#5584,#5585,#5586,#5587)); -#27766=EDGE_LOOP('',(#5588,#5589,#5590,#5591)); -#27767=EDGE_LOOP('',(#5592,#5593,#5594,#5595)); -#27768=EDGE_LOOP('',(#5596,#5597,#5598,#5599)); -#27769=EDGE_LOOP('',(#5600,#5601,#5602,#5603)); -#27770=EDGE_LOOP('',(#5604,#5605,#5606,#5607)); -#27771=EDGE_LOOP('',(#5608,#5609,#5610,#5611)); -#27772=EDGE_LOOP('',(#5612,#5613,#5614,#5615)); -#27773=EDGE_LOOP('',(#5616,#5617,#5618,#5619)); -#27774=EDGE_LOOP('',(#5620,#5621,#5622,#5623)); -#27775=EDGE_LOOP('',(#5624,#5625,#5626,#5627)); -#27776=EDGE_LOOP('',(#5628,#5629,#5630,#5631)); -#27777=EDGE_LOOP('',(#5632,#5633,#5634,#5635)); -#27778=EDGE_LOOP('',(#5636,#5637,#5638,#5639)); -#27779=EDGE_LOOP('',(#5640,#5641,#5642,#5643)); -#27780=EDGE_LOOP('',(#5644,#5645,#5646,#5647)); -#27781=EDGE_LOOP('',(#5648,#5649,#5650,#5651)); -#27782=EDGE_LOOP('',(#5652,#5653,#5654,#5655)); -#27783=EDGE_LOOP('',(#5656,#5657,#5658,#5659)); -#27784=EDGE_LOOP('',(#5660,#5661,#5662,#5663)); -#27785=EDGE_LOOP('',(#5664,#5665,#5666,#5667)); -#27786=EDGE_LOOP('',(#5668,#5669,#5670,#5671)); -#27787=EDGE_LOOP('',(#5672,#5673,#5674,#5675,#5676,#5677)); -#27788=EDGE_LOOP('',(#5678,#5679,#5680,#5681)); -#27789=EDGE_LOOP('',(#5682,#5683,#5684,#5685,#5686,#5687)); -#27790=EDGE_LOOP('',(#5688,#5689,#5690,#5691)); -#27791=EDGE_LOOP('',(#5692,#5693,#5694,#5695,#5696,#5697)); -#27792=EDGE_LOOP('',(#5698,#5699,#5700,#5701)); -#27793=EDGE_LOOP('',(#5702,#5703,#5704,#5705,#5706,#5707)); -#27794=EDGE_LOOP('',(#5708,#5709,#5710,#5711,#5712,#5713)); -#27795=EDGE_LOOP('',(#5714,#5715,#5716,#5717)); -#27796=EDGE_LOOP('',(#5718,#5719,#5720,#5721,#5722,#5723)); -#27797=EDGE_LOOP('',(#5724,#5725,#5726,#5727)); -#27798=EDGE_LOOP('',(#5728,#5729,#5730,#5731,#5732,#5733)); -#27799=EDGE_LOOP('',(#5734,#5735,#5736,#5737)); -#27800=EDGE_LOOP('',(#5738,#5739,#5740,#5741,#5742,#5743)); -#27801=EDGE_LOOP('',(#5744,#5745,#5746,#5747)); -#27802=EDGE_LOOP('',(#5748,#5749,#5750,#5751,#5752,#5753)); -#27803=EDGE_LOOP('',(#5754,#5755,#5756,#5757)); -#27804=EDGE_LOOP('',(#5758,#5759,#5760,#5761,#5762,#5763)); -#27805=EDGE_LOOP('',(#5764,#5765,#5766,#5767)); -#27806=EDGE_LOOP('',(#5768,#5769,#5770,#5771,#5772,#5773)); -#27807=EDGE_LOOP('',(#5774,#5775,#5776,#5777)); -#27808=EDGE_LOOP('',(#5778,#5779,#5780,#5781,#5782,#5783)); -#27809=EDGE_LOOP('',(#5784,#5785,#5786,#5787)); -#27810=EDGE_LOOP('',(#5788,#5789,#5790,#5791,#5792,#5793)); -#27811=EDGE_LOOP('',(#5794,#5795,#5796,#5797)); -#27812=EDGE_LOOP('',(#5798,#5799,#5800,#5801,#5802,#5803)); -#27813=EDGE_LOOP('',(#5804,#5805,#5806,#5807)); -#27814=EDGE_LOOP('',(#5808,#5809,#5810,#5811,#5812,#5813)); -#27815=EDGE_LOOP('',(#5814,#5815,#5816,#5817)); -#27816=EDGE_LOOP('',(#5818,#5819,#5820,#5821,#5822,#5823)); -#27817=EDGE_LOOP('',(#5824,#5825,#5826,#5827)); -#27818=EDGE_LOOP('',(#5828,#5829,#5830,#5831,#5832,#5833)); -#27819=EDGE_LOOP('',(#5834,#5835,#5836,#5837)); -#27820=EDGE_LOOP('',(#5838,#5839,#5840,#5841,#5842,#5843)); -#27821=EDGE_LOOP('',(#5844,#5845,#5846,#5847)); -#27822=EDGE_LOOP('',(#5848,#5849,#5850,#5851,#5852,#5853)); -#27823=EDGE_LOOP('',(#5854,#5855,#5856,#5857)); -#27824=EDGE_LOOP('',(#5858,#5859,#5860,#5861,#5862,#5863)); -#27825=EDGE_LOOP('',(#5864,#5865,#5866,#5867)); -#27826=EDGE_LOOP('',(#5868,#5869,#5870,#5871,#5872,#5873)); -#27827=EDGE_LOOP('',(#5874,#5875,#5876,#5877)); -#27828=EDGE_LOOP('',(#5878,#5879,#5880,#5881,#5882,#5883)); -#27829=EDGE_LOOP('',(#5884,#5885,#5886,#5887)); -#27830=EDGE_LOOP('',(#5888,#5889,#5890,#5891,#5892,#5893)); -#27831=EDGE_LOOP('',(#5894,#5895,#5896,#5897)); -#27832=EDGE_LOOP('',(#5898,#5899,#5900,#5901,#5902,#5903)); -#27833=EDGE_LOOP('',(#5904,#5905,#5906,#5907)); -#27834=EDGE_LOOP('',(#5908,#5909,#5910,#5911,#5912,#5913)); -#27835=EDGE_LOOP('',(#5914,#5915,#5916,#5917)); -#27836=EDGE_LOOP('',(#5918,#5919,#5920,#5921,#5922,#5923)); -#27837=EDGE_LOOP('',(#5924,#5925,#5926,#5927)); -#27838=EDGE_LOOP('',(#5928,#5929,#5930,#5931,#5932,#5933)); -#27839=EDGE_LOOP('',(#5934,#5935,#5936,#5937)); -#27840=EDGE_LOOP('',(#5938,#5939,#5940,#5941,#5942,#5943)); -#27841=EDGE_LOOP('',(#5944,#5945,#5946,#5947)); -#27842=EDGE_LOOP('',(#5948,#5949,#5950,#5951,#5952,#5953)); -#27843=EDGE_LOOP('',(#5954,#5955,#5956,#5957)); -#27844=EDGE_LOOP('',(#5958,#5959,#5960,#5961,#5962,#5963)); -#27845=EDGE_LOOP('',(#5964,#5965,#5966,#5967)); -#27846=EDGE_LOOP('',(#5968,#5969,#5970,#5971,#5972,#5973)); -#27847=EDGE_LOOP('',(#5974,#5975,#5976,#5977)); -#27848=EDGE_LOOP('',(#5978,#5979,#5980,#5981,#5982,#5983)); -#27849=EDGE_LOOP('',(#5984,#5985,#5986,#5987)); -#27850=EDGE_LOOP('',(#5988,#5989,#5990,#5991,#5992,#5993)); -#27851=EDGE_LOOP('',(#5994,#5995,#5996,#5997)); -#27852=EDGE_LOOP('',(#5998,#5999,#6000,#6001,#6002,#6003)); -#27853=EDGE_LOOP('',(#6004,#6005,#6006,#6007)); -#27854=EDGE_LOOP('',(#6008,#6009,#6010,#6011,#6012,#6013)); -#27855=EDGE_LOOP('',(#6014,#6015,#6016,#6017)); -#27856=EDGE_LOOP('',(#6018,#6019,#6020,#6021,#6022,#6023)); -#27857=EDGE_LOOP('',(#6024,#6025,#6026,#6027)); -#27858=EDGE_LOOP('',(#6028,#6029,#6030,#6031,#6032,#6033)); -#27859=EDGE_LOOP('',(#6034,#6035,#6036,#6037)); -#27860=EDGE_LOOP('',(#6038,#6039,#6040,#6041,#6042,#6043)); -#27861=EDGE_LOOP('',(#6044,#6045,#6046,#6047)); -#27862=EDGE_LOOP('',(#6048,#6049,#6050,#6051,#6052,#6053)); -#27863=EDGE_LOOP('',(#6054,#6055,#6056,#6057)); -#27864=EDGE_LOOP('',(#6058,#6059,#6060,#6061,#6062,#6063)); -#27865=EDGE_LOOP('',(#6064,#6065,#6066,#6067)); -#27866=EDGE_LOOP('',(#6068,#6069,#6070,#6071,#6072,#6073)); -#27867=EDGE_LOOP('',(#6074,#6075,#6076,#6077)); -#27868=EDGE_LOOP('',(#6078,#6079,#6080,#6081,#6082,#6083)); -#27869=EDGE_LOOP('',(#6084,#6085,#6086,#6087)); -#27870=EDGE_LOOP('',(#6088,#6089,#6090,#6091,#6092,#6093)); -#27871=EDGE_LOOP('',(#6094,#6095,#6096,#6097)); -#27872=EDGE_LOOP('',(#6098,#6099,#6100,#6101)); -#27873=EDGE_LOOP('',(#6102,#6103,#6104,#6105,#6106,#6107)); -#27874=EDGE_LOOP('',(#6108,#6109,#6110,#6111,#6112,#6113)); -#27875=EDGE_LOOP('',(#6114,#6115,#6116,#6117)); -#27876=EDGE_LOOP('',(#6118,#6119,#6120,#6121)); -#27877=EDGE_LOOP('',(#6122,#6123,#6124,#6125,#6126,#6127)); -#27878=EDGE_LOOP('',(#6128,#6129,#6130,#6131,#6132,#6133)); -#27879=EDGE_LOOP('',(#6134,#6135,#6136,#6137)); -#27880=EDGE_LOOP('',(#6138,#6139,#6140,#6141)); -#27881=EDGE_LOOP('',(#6142,#6143,#6144,#6145,#6146,#6147)); -#27882=EDGE_LOOP('',(#6148,#6149,#6150,#6151,#6152,#6153)); -#27883=EDGE_LOOP('',(#6154,#6155,#6156,#6157)); -#27884=EDGE_LOOP('',(#6158,#6159,#6160,#6161)); -#27885=EDGE_LOOP('',(#6162,#6163,#6164,#6165,#6166,#6167)); -#27886=EDGE_LOOP('',(#6168,#6169,#6170,#6171,#6172,#6173)); -#27887=EDGE_LOOP('',(#6174,#6175,#6176,#6177)); -#27888=EDGE_LOOP('',(#6178,#6179,#6180,#6181)); -#27889=EDGE_LOOP('',(#6182,#6183,#6184,#6185,#6186,#6187)); -#27890=EDGE_LOOP('',(#6188,#6189,#6190,#6191,#6192,#6193)); -#27891=EDGE_LOOP('',(#6194,#6195,#6196,#6197)); -#27892=EDGE_LOOP('',(#6198,#6199,#6200,#6201)); -#27893=EDGE_LOOP('',(#6202,#6203,#6204,#6205,#6206,#6207)); -#27894=EDGE_LOOP('',(#6208,#6209,#6210,#6211,#6212,#6213)); -#27895=EDGE_LOOP('',(#6214,#6215,#6216,#6217)); -#27896=EDGE_LOOP('',(#6218,#6219,#6220,#6221)); -#27897=EDGE_LOOP('',(#6222,#6223,#6224,#6225,#6226,#6227)); -#27898=EDGE_LOOP('',(#6228,#6229,#6230,#6231,#6232,#6233)); -#27899=EDGE_LOOP('',(#6234,#6235,#6236,#6237)); -#27900=EDGE_LOOP('',(#6238,#6239,#6240,#6241)); -#27901=EDGE_LOOP('',(#6242,#6243,#6244,#6245,#6246,#6247)); -#27902=EDGE_LOOP('',(#6248,#6249,#6250,#6251,#6252,#6253)); -#27903=EDGE_LOOP('',(#6254,#6255,#6256,#6257)); -#27904=EDGE_LOOP('',(#6258,#6259,#6260,#6261)); -#27905=EDGE_LOOP('',(#6262,#6263,#6264,#6265,#6266,#6267)); -#27906=EDGE_LOOP('',(#6268,#6269,#6270,#6271,#6272,#6273)); -#27907=EDGE_LOOP('',(#6274,#6275,#6276,#6277)); -#27908=EDGE_LOOP('',(#6278,#6279,#6280,#6281)); -#27909=EDGE_LOOP('',(#6282,#6283,#6284,#6285,#6286,#6287)); -#27910=EDGE_LOOP('',(#6288,#6289,#6290,#6291,#6292,#6293)); -#27911=EDGE_LOOP('',(#6294,#6295,#6296,#6297)); -#27912=EDGE_LOOP('',(#6298,#6299,#6300,#6301)); -#27913=EDGE_LOOP('',(#6302,#6303,#6304,#6305,#6306,#6307)); -#27914=EDGE_LOOP('',(#6308,#6309,#6310,#6311,#6312,#6313)); -#27915=EDGE_LOOP('',(#6314,#6315,#6316,#6317)); -#27916=EDGE_LOOP('',(#6318,#6319,#6320,#6321)); -#27917=EDGE_LOOP('',(#6322,#6323,#6324,#6325,#6326,#6327)); -#27918=EDGE_LOOP('',(#6328,#6329,#6330,#6331,#6332,#6333)); -#27919=EDGE_LOOP('',(#6334,#6335,#6336,#6337)); -#27920=EDGE_LOOP('',(#6338,#6339,#6340,#6341)); -#27921=EDGE_LOOP('',(#6342,#6343,#6344,#6345,#6346,#6347)); -#27922=EDGE_LOOP('',(#6348,#6349,#6350,#6351,#6352,#6353)); -#27923=EDGE_LOOP('',(#6354,#6355,#6356,#6357)); -#27924=EDGE_LOOP('',(#6358,#6359,#6360,#6361)); -#27925=EDGE_LOOP('',(#6362,#6363,#6364,#6365,#6366,#6367)); -#27926=EDGE_LOOP('',(#6368,#6369,#6370,#6371,#6372,#6373)); -#27927=EDGE_LOOP('',(#6374,#6375,#6376,#6377)); -#27928=EDGE_LOOP('',(#6378,#6379,#6380,#6381)); -#27929=EDGE_LOOP('',(#6382,#6383,#6384,#6385,#6386,#6387)); -#27930=EDGE_LOOP('',(#6388,#6389,#6390,#6391,#6392,#6393)); -#27931=EDGE_LOOP('',(#6394,#6395,#6396,#6397)); -#27932=EDGE_LOOP('',(#6398,#6399,#6400,#6401)); -#27933=EDGE_LOOP('',(#6402,#6403,#6404,#6405,#6406,#6407)); -#27934=EDGE_LOOP('',(#6408,#6409,#6410,#6411,#6412,#6413)); -#27935=EDGE_LOOP('',(#6414,#6415,#6416,#6417)); -#27936=EDGE_LOOP('',(#6418,#6419,#6420,#6421)); -#27937=EDGE_LOOP('',(#6422,#6423,#6424,#6425,#6426,#6427)); -#27938=EDGE_LOOP('',(#6428,#6429,#6430,#6431,#6432,#6433)); -#27939=EDGE_LOOP('',(#6434,#6435,#6436,#6437)); -#27940=EDGE_LOOP('',(#6438,#6439,#6440,#6441)); -#27941=EDGE_LOOP('',(#6442,#6443,#6444,#6445,#6446,#6447)); -#27942=EDGE_LOOP('',(#6448,#6449,#6450,#6451)); -#27943=EDGE_LOOP('',(#6452,#6453,#6454,#6455)); -#27944=EDGE_LOOP('',(#6456,#6457,#6458,#6459,#6460,#6461)); -#27945=EDGE_LOOP('',(#6462,#6463,#6464,#6465,#6466,#6467)); -#27946=EDGE_LOOP('',(#6468,#6469,#6470,#6471)); -#27947=EDGE_LOOP('',(#6472,#6473,#6474,#6475)); -#27948=EDGE_LOOP('',(#6476,#6477,#6478,#6479)); -#27949=EDGE_LOOP('',(#6480,#6481,#6482,#6483)); -#27950=EDGE_LOOP('',(#6484,#6485,#6486,#6487)); -#27951=EDGE_LOOP('',(#6488,#6489,#6490,#6491)); -#27952=EDGE_LOOP('',(#6492,#6493,#6494,#6495)); -#27953=EDGE_LOOP('',(#6496,#6497,#6498,#6499)); -#27954=EDGE_LOOP('',(#6500,#6501,#6502,#6503)); -#27955=EDGE_LOOP('',(#6504,#6505,#6506,#6507)); -#27956=EDGE_LOOP('',(#6508,#6509,#6510,#6511)); -#27957=EDGE_LOOP('',(#6512,#6513,#6514,#6515)); -#27958=EDGE_LOOP('',(#6516,#6517,#6518,#6519)); -#27959=EDGE_LOOP('',(#6520,#6521,#6522,#6523)); -#27960=EDGE_LOOP('',(#6524,#6525,#6526,#6527)); -#27961=EDGE_LOOP('',(#6528,#6529,#6530,#6531)); -#27962=EDGE_LOOP('',(#6532,#6533,#6534,#6535)); -#27963=EDGE_LOOP('',(#6536,#6537,#6538,#6539)); -#27964=EDGE_LOOP('',(#6540,#6541,#6542,#6543)); -#27965=EDGE_LOOP('',(#6544,#6545,#6546,#6547)); -#27966=EDGE_LOOP('',(#6548,#6549,#6550,#6551)); -#27967=EDGE_LOOP('',(#6552,#6553,#6554,#6555)); -#27968=EDGE_LOOP('',(#6556,#6557,#6558,#6559)); -#27969=EDGE_LOOP('',(#6560,#6561,#6562,#6563)); -#27970=EDGE_LOOP('',(#6564,#6565,#6566,#6567)); -#27971=EDGE_LOOP('',(#6568,#6569,#6570,#6571)); -#27972=EDGE_LOOP('',(#6572,#6573,#6574,#6575)); -#27973=EDGE_LOOP('',(#6576,#6577,#6578,#6579)); -#27974=EDGE_LOOP('',(#6580,#6581,#6582,#6583)); -#27975=EDGE_LOOP('',(#6584,#6585,#6586,#6587)); -#27976=EDGE_LOOP('',(#6588,#6589,#6590,#6591)); -#27977=EDGE_LOOP('',(#6592,#6593,#6594,#6595)); -#27978=EDGE_LOOP('',(#6596,#6597,#6598,#6599)); -#27979=EDGE_LOOP('',(#6600,#6601,#6602,#6603)); -#27980=EDGE_LOOP('',(#6604,#6605,#6606,#6607)); -#27981=EDGE_LOOP('',(#6608,#6609,#6610,#6611)); -#27982=EDGE_LOOP('',(#6612,#6613,#6614,#6615)); -#27983=EDGE_LOOP('',(#6616,#6617,#6618,#6619)); -#27984=EDGE_LOOP('',(#6620,#6621,#6622,#6623,#6624,#6625,#6626,#6627)); -#27985=EDGE_LOOP('',(#6628,#6629,#6630,#6631,#6632,#6633,#6634,#6635)); -#27986=EDGE_LOOP('',(#6636,#6637,#6638,#6639)); -#27987=EDGE_LOOP('',(#6640,#6641,#6642,#6643)); -#27988=EDGE_LOOP('',(#6644,#6645,#6646,#6647,#6648,#6649,#6650,#6651,#6652, -#6653,#6654,#6655,#6656,#6657,#6658,#6659,#6660,#6661,#6662,#6663,#6664, -#6665,#6666,#6667,#6668,#6669,#6670,#6671,#6672,#6673,#6674,#6675,#6676, -#6677,#6678,#6679,#6680,#6681,#6682,#6683,#6684,#6685,#6686,#6687,#6688, -#6689,#6690,#6691,#6692,#6693,#6694,#6695,#6696,#6697,#6698,#6699,#6700, -#6701,#6702,#6703,#6704,#6705,#6706,#6707,#6708,#6709,#6710,#6711,#6712, -#6713,#6714,#6715,#6716,#6717,#6718,#6719,#6720,#6721,#6722,#6723,#6724, -#6725,#6726,#6727,#6728,#6729,#6730,#6731,#6732,#6733,#6734,#6735,#6736, -#6737,#6738,#6739,#6740,#6741,#6742,#6743,#6744,#6745,#6746,#6747,#6748, -#6749,#6750,#6751,#6752,#6753,#6754,#6755,#6756,#6757,#6758,#6759,#6760, -#6761,#6762,#6763,#6764,#6765,#6766,#6767,#6768,#6769,#6770,#6771,#6772, -#6773,#6774,#6775,#6776,#6777,#6778,#6779,#6780,#6781,#6782,#6783,#6784, -#6785,#6786,#6787,#6788,#6789,#6790,#6791,#6792,#6793,#6794,#6795,#6796, -#6797,#6798,#6799,#6800,#6801,#6802,#6803,#6804,#6805,#6806,#6807,#6808, -#6809,#6810,#6811,#6812,#6813,#6814,#6815,#6816,#6817,#6818,#6819,#6820, -#6821,#6822,#6823,#6824,#6825,#6826,#6827,#6828,#6829,#6830,#6831,#6832, -#6833,#6834,#6835,#6836,#6837,#6838,#6839,#6840,#6841,#6842,#6843,#6844, -#6845,#6846,#6847,#6848,#6849,#6850,#6851,#6852,#6853,#6854,#6855,#6856, -#6857,#6858,#6859,#6860,#6861,#6862,#6863,#6864,#6865,#6866,#6867,#6868, -#6869,#6870,#6871,#6872,#6873,#6874,#6875,#6876,#6877,#6878,#6879,#6880, -#6881,#6882,#6883,#6884,#6885,#6886,#6887,#6888,#6889,#6890,#6891,#6892, -#6893,#6894,#6895,#6896,#6897,#6898,#6899,#6900,#6901,#6902,#6903,#6904, -#6905,#6906,#6907,#6908,#6909,#6910,#6911,#6912,#6913,#6914,#6915,#6916, -#6917,#6918,#6919,#6920,#6921,#6922,#6923,#6924,#6925,#6926,#6927)); -#27989=EDGE_LOOP('',(#6928,#6929,#6930,#6931,#6932,#6933,#6934,#6935,#6936, -#6937,#6938,#6939,#6940,#6941,#6942,#6943,#6944,#6945,#6946,#6947,#6948, -#6949,#6950,#6951,#6952,#6953,#6954,#6955,#6956,#6957,#6958,#6959,#6960, -#6961,#6962,#6963,#6964,#6965,#6966,#6967,#6968,#6969,#6970,#6971,#6972, -#6973,#6974,#6975,#6976,#6977,#6978,#6979,#6980,#6981,#6982,#6983,#6984, -#6985,#6986,#6987,#6988,#6989,#6990,#6991,#6992,#6993,#6994,#6995,#6996, -#6997,#6998,#6999,#7000,#7001,#7002,#7003,#7004,#7005,#7006,#7007,#7008, -#7009,#7010,#7011,#7012,#7013,#7014,#7015,#7016,#7017,#7018,#7019,#7020, -#7021,#7022,#7023,#7024,#7025,#7026,#7027,#7028,#7029,#7030,#7031,#7032, -#7033,#7034,#7035,#7036,#7037,#7038,#7039,#7040,#7041,#7042,#7043,#7044, -#7045,#7046,#7047,#7048,#7049,#7050,#7051,#7052,#7053,#7054,#7055,#7056, -#7057,#7058,#7059,#7060,#7061,#7062,#7063,#7064,#7065,#7066,#7067,#7068, -#7069,#7070,#7071,#7072,#7073,#7074,#7075,#7076,#7077,#7078,#7079,#7080, -#7081,#7082,#7083,#7084,#7085,#7086,#7087,#7088,#7089,#7090,#7091,#7092, -#7093,#7094,#7095,#7096,#7097,#7098,#7099,#7100,#7101,#7102,#7103,#7104, -#7105,#7106,#7107,#7108,#7109,#7110,#7111,#7112,#7113,#7114,#7115,#7116, -#7117,#7118,#7119,#7120,#7121,#7122,#7123,#7124,#7125,#7126,#7127,#7128, -#7129,#7130,#7131,#7132,#7133,#7134,#7135,#7136,#7137,#7138,#7139,#7140, -#7141,#7142,#7143,#7144,#7145,#7146,#7147,#7148,#7149,#7150,#7151,#7152, -#7153,#7154,#7155,#7156,#7157,#7158,#7159,#7160,#7161,#7162,#7163,#7164, -#7165,#7166,#7167,#7168,#7169,#7170,#7171,#7172,#7173,#7174,#7175,#7176, -#7177,#7178,#7179,#7180,#7181,#7182,#7183,#7184,#7185,#7186,#7187,#7188, -#7189,#7190,#7191,#7192,#7193,#7194,#7195,#7196,#7197,#7198,#7199,#7200, -#7201,#7202,#7203,#7204,#7205,#7206,#7207,#7208,#7209,#7210,#7211)); -#27990=EDGE_LOOP('',(#7212,#7213,#7214,#7215,#7216,#7217,#7218,#7219,#7220, -#7221,#7222,#7223,#7224,#7225,#7226,#7227,#7228,#7229,#7230,#7231,#7232, -#7233,#7234,#7235,#7236,#7237,#7238,#7239,#7240,#7241,#7242,#7243,#7244, -#7245,#7246,#7247,#7248,#7249,#7250,#7251,#7252,#7253,#7254,#7255,#7256, -#7257,#7258,#7259,#7260,#7261,#7262,#7263,#7264,#7265,#7266,#7267,#7268, -#7269,#7270,#7271,#7272,#7273,#7274,#7275,#7276,#7277,#7278,#7279,#7280, -#7281,#7282,#7283,#7284,#7285,#7286,#7287,#7288,#7289,#7290,#7291,#7292, -#7293,#7294,#7295,#7296,#7297,#7298,#7299,#7300,#7301,#7302,#7303,#7304, -#7305,#7306,#7307,#7308,#7309,#7310,#7311,#7312,#7313,#7314,#7315,#7316, -#7317,#7318,#7319,#7320,#7321,#7322,#7323,#7324,#7325,#7326,#7327,#7328, -#7329,#7330,#7331,#7332,#7333,#7334,#7335,#7336,#7337,#7338,#7339,#7340, -#7341,#7342,#7343,#7344,#7345,#7346,#7347,#7348,#7349,#7350,#7351,#7352, -#7353,#7354,#7355,#7356,#7357,#7358,#7359,#7360,#7361,#7362,#7363,#7364, -#7365,#7366,#7367,#7368,#7369,#7370,#7371,#7372,#7373,#7374,#7375,#7376, -#7377,#7378,#7379,#7380,#7381,#7382,#7383,#7384,#7385,#7386,#7387,#7388, -#7389,#7390,#7391,#7392,#7393,#7394,#7395,#7396,#7397,#7398,#7399,#7400, -#7401,#7402,#7403,#7404,#7405,#7406,#7407,#7408,#7409,#7410,#7411,#7412, -#7413,#7414,#7415,#7416,#7417,#7418,#7419,#7420,#7421,#7422,#7423,#7424, -#7425,#7426,#7427,#7428,#7429,#7430,#7431,#7432,#7433,#7434,#7435,#7436, -#7437,#7438,#7439,#7440,#7441,#7442,#7443,#7444,#7445,#7446,#7447,#7448, -#7449,#7450,#7451,#7452,#7453,#7454,#7455,#7456,#7457,#7458,#7459,#7460, -#7461,#7462,#7463,#7464,#7465,#7466,#7467,#7468,#7469,#7470,#7471,#7472, -#7473,#7474,#7475,#7476,#7477,#7478,#7479,#7480,#7481,#7482,#7483,#7484, -#7485,#7486,#7487,#7488,#7489,#7490,#7491,#7492,#7493,#7494,#7495)); -#27991=EDGE_LOOP('',(#7496,#7497,#7498,#7499,#7500,#7501,#7502,#7503,#7504, -#7505,#7506,#7507,#7508,#7509,#7510,#7511,#7512,#7513,#7514,#7515,#7516, -#7517,#7518,#7519,#7520,#7521,#7522,#7523,#7524,#7525,#7526,#7527,#7528, -#7529,#7530,#7531,#7532,#7533,#7534,#7535,#7536,#7537,#7538,#7539,#7540, -#7541,#7542,#7543,#7544,#7545,#7546,#7547,#7548,#7549,#7550,#7551,#7552, -#7553,#7554,#7555,#7556,#7557,#7558,#7559,#7560,#7561,#7562,#7563,#7564, -#7565,#7566,#7567,#7568,#7569,#7570,#7571,#7572,#7573,#7574,#7575,#7576, -#7577,#7578,#7579,#7580,#7581,#7582,#7583,#7584,#7585,#7586,#7587,#7588, -#7589,#7590,#7591,#7592,#7593,#7594,#7595,#7596,#7597,#7598,#7599,#7600, -#7601,#7602,#7603,#7604,#7605,#7606,#7607,#7608,#7609,#7610,#7611,#7612, -#7613,#7614,#7615,#7616,#7617,#7618,#7619,#7620,#7621,#7622,#7623,#7624, -#7625,#7626,#7627,#7628,#7629,#7630,#7631,#7632,#7633,#7634,#7635,#7636, -#7637,#7638,#7639,#7640,#7641,#7642,#7643,#7644,#7645,#7646,#7647,#7648, -#7649,#7650,#7651,#7652,#7653,#7654,#7655,#7656,#7657,#7658,#7659,#7660, -#7661,#7662,#7663,#7664,#7665,#7666,#7667,#7668,#7669,#7670,#7671,#7672, -#7673,#7674,#7675,#7676,#7677,#7678,#7679,#7680,#7681,#7682,#7683,#7684, -#7685,#7686,#7687,#7688,#7689,#7690,#7691,#7692,#7693,#7694,#7695,#7696, -#7697,#7698,#7699,#7700,#7701,#7702,#7703,#7704,#7705,#7706,#7707,#7708, -#7709,#7710,#7711,#7712,#7713,#7714,#7715,#7716,#7717,#7718,#7719,#7720, -#7721,#7722,#7723,#7724,#7725,#7726,#7727,#7728,#7729,#7730,#7731,#7732, -#7733,#7734,#7735,#7736,#7737,#7738,#7739,#7740,#7741,#7742,#7743,#7744, -#7745,#7746,#7747,#7748,#7749,#7750,#7751,#7752,#7753,#7754,#7755,#7756, -#7757,#7758,#7759,#7760,#7761,#7762,#7763,#7764,#7765,#7766,#7767,#7768, -#7769,#7770,#7771,#7772,#7773,#7774,#7775,#7776,#7777,#7778,#7779)); -#27992=EDGE_LOOP('',(#7780,#7781,#7782,#7783)); -#27993=EDGE_LOOP('',(#7784,#7785,#7786,#7787)); -#27994=EDGE_LOOP('',(#7788,#7789,#7790,#7791)); -#27995=EDGE_LOOP('',(#7792,#7793,#7794,#7795)); -#27996=EDGE_LOOP('',(#7796,#7797,#7798,#7799)); -#27997=EDGE_LOOP('',(#7800,#7801,#7802,#7803)); -#27998=EDGE_LOOP('',(#7804,#7805,#7806,#7807)); -#27999=EDGE_LOOP('',(#7808,#7809,#7810,#7811)); -#28000=EDGE_LOOP('',(#7812,#7813,#7814,#7815)); -#28001=EDGE_LOOP('',(#7816,#7817,#7818,#7819)); -#28002=EDGE_LOOP('',(#7820,#7821,#7822,#7823)); -#28003=EDGE_LOOP('',(#7824,#7825,#7826,#7827)); -#28004=EDGE_LOOP('',(#7828,#7829,#7830,#7831)); -#28005=EDGE_LOOP('',(#7832,#7833,#7834,#7835)); -#28006=EDGE_LOOP('',(#7836,#7837,#7838,#7839)); -#28007=EDGE_LOOP('',(#7840,#7841,#7842,#7843)); -#28008=EDGE_LOOP('',(#7844,#7845,#7846,#7847)); -#28009=EDGE_LOOP('',(#7848,#7849,#7850,#7851)); -#28010=EDGE_LOOP('',(#7852,#7853,#7854,#7855)); -#28011=EDGE_LOOP('',(#7856,#7857,#7858,#7859)); -#28012=EDGE_LOOP('',(#7860,#7861,#7862,#7863)); -#28013=EDGE_LOOP('',(#7864,#7865,#7866,#7867)); -#28014=EDGE_LOOP('',(#7868,#7869,#7870,#7871)); -#28015=EDGE_LOOP('',(#7872,#7873,#7874,#7875)); -#28016=EDGE_LOOP('',(#7876,#7877,#7878,#7879)); -#28017=EDGE_LOOP('',(#7880,#7881,#7882,#7883)); -#28018=EDGE_LOOP('',(#7884,#7885,#7886,#7887)); -#28019=EDGE_LOOP('',(#7888,#7889,#7890,#7891)); -#28020=EDGE_LOOP('',(#7892,#7893,#7894,#7895)); -#28021=EDGE_LOOP('',(#7896,#7897,#7898,#7899)); -#28022=EDGE_LOOP('',(#7900,#7901,#7902,#7903)); -#28023=EDGE_LOOP('',(#7904,#7905,#7906,#7907)); -#28024=EDGE_LOOP('',(#7908,#7909,#7910,#7911)); -#28025=EDGE_LOOP('',(#7912,#7913,#7914,#7915)); -#28026=EDGE_LOOP('',(#7916,#7917,#7918,#7919)); -#28027=EDGE_LOOP('',(#7920,#7921,#7922,#7923)); -#28028=EDGE_LOOP('',(#7924,#7925,#7926,#7927)); -#28029=EDGE_LOOP('',(#7928,#7929,#7930,#7931)); -#28030=EDGE_LOOP('',(#7932,#7933,#7934,#7935)); -#28031=EDGE_LOOP('',(#7936,#7937,#7938,#7939)); -#28032=EDGE_LOOP('',(#7940,#7941,#7942,#7943)); -#28033=EDGE_LOOP('',(#7944,#7945,#7946,#7947)); -#28034=EDGE_LOOP('',(#7948,#7949,#7950,#7951)); -#28035=EDGE_LOOP('',(#7952,#7953,#7954,#7955)); -#28036=EDGE_LOOP('',(#7956,#7957,#7958,#7959,#7960,#7961,#7962,#7963)); -#28037=EDGE_LOOP('',(#7964,#7965,#7966,#7967,#7968,#7969,#7970,#7971)); -#28038=EDGE_LOOP('',(#7972,#7973,#7974,#7975,#7976,#7977,#7978,#7979)); -#28039=EDGE_LOOP('',(#7980,#7981,#7982,#7983,#7984,#7985,#7986,#7987)); -#28040=EDGE_LOOP('',(#7988,#7989,#7990,#7991,#7992,#7993,#7994,#7995)); -#28041=EDGE_LOOP('',(#7996,#7997,#7998,#7999,#8000,#8001,#8002,#8003)); -#28042=EDGE_LOOP('',(#8004,#8005,#8006,#8007,#8008,#8009,#8010,#8011)); -#28043=EDGE_LOOP('',(#8012,#8013,#8014,#8015,#8016,#8017,#8018,#8019)); -#28044=EDGE_LOOP('',(#8020,#8021,#8022,#8023,#8024,#8025,#8026,#8027)); -#28045=EDGE_LOOP('',(#8028,#8029,#8030,#8031,#8032,#8033,#8034,#8035)); -#28046=EDGE_LOOP('',(#8036,#8037,#8038,#8039,#8040,#8041,#8042,#8043)); -#28047=EDGE_LOOP('',(#8044,#8045,#8046,#8047,#8048,#8049,#8050,#8051)); -#28048=EDGE_LOOP('',(#8052,#8053,#8054,#8055,#8056,#8057,#8058,#8059)); -#28049=EDGE_LOOP('',(#8060,#8061,#8062,#8063,#8064,#8065,#8066,#8067)); -#28050=EDGE_LOOP('',(#8068,#8069,#8070,#8071,#8072,#8073,#8074,#8075)); -#28051=EDGE_LOOP('',(#8076,#8077,#8078,#8079,#8080,#8081,#8082,#8083)); -#28052=EDGE_LOOP('',(#8084,#8085,#8086,#8087,#8088,#8089,#8090,#8091)); -#28053=EDGE_LOOP('',(#8092,#8093,#8094,#8095,#8096,#8097,#8098,#8099)); -#28054=EDGE_LOOP('',(#8100,#8101,#8102,#8103,#8104,#8105,#8106,#8107)); -#28055=EDGE_LOOP('',(#8108,#8109,#8110,#8111,#8112,#8113,#8114,#8115)); -#28056=EDGE_LOOP('',(#8116,#8117,#8118,#8119,#8120,#8121)); -#28057=EDGE_LOOP('',(#8122,#8123,#8124,#8125,#8126,#8127)); -#28058=EDGE_LOOP('',(#8128,#8129,#8130,#8131,#8132,#8133)); -#28059=EDGE_LOOP('',(#8134,#8135,#8136,#8137,#8138,#8139)); -#28060=EDGE_LOOP('',(#8140,#8141,#8142,#8143,#8144,#8145)); -#28061=EDGE_LOOP('',(#8146,#8147,#8148,#8149,#8150,#8151)); -#28062=EDGE_LOOP('',(#8152,#8153,#8154,#8155,#8156,#8157)); -#28063=EDGE_LOOP('',(#8158,#8159,#8160,#8161,#8162,#8163)); -#28064=EDGE_LOOP('',(#8164,#8165,#8166,#8167,#8168,#8169)); -#28065=EDGE_LOOP('',(#8170,#8171,#8172,#8173,#8174,#8175)); -#28066=EDGE_LOOP('',(#8176,#8177,#8178,#8179,#8180,#8181)); -#28067=EDGE_LOOP('',(#8182,#8183,#8184,#8185,#8186,#8187)); -#28068=EDGE_LOOP('',(#8188,#8189,#8190,#8191,#8192,#8193)); -#28069=EDGE_LOOP('',(#8194,#8195,#8196,#8197,#8198,#8199)); -#28070=EDGE_LOOP('',(#8200,#8201,#8202,#8203,#8204,#8205)); -#28071=EDGE_LOOP('',(#8206,#8207,#8208,#8209,#8210,#8211)); -#28072=EDGE_LOOP('',(#8212,#8213,#8214,#8215,#8216,#8217)); -#28073=EDGE_LOOP('',(#8218,#8219,#8220,#8221,#8222,#8223)); -#28074=EDGE_LOOP('',(#8224,#8225,#8226,#8227,#8228,#8229)); -#28075=EDGE_LOOP('',(#8230,#8231,#8232,#8233,#8234,#8235)); -#28076=EDGE_LOOP('',(#8236,#8237,#8238,#8239,#8240,#8241)); -#28077=EDGE_LOOP('',(#8242,#8243,#8244,#8245,#8246,#8247)); -#28078=EDGE_LOOP('',(#8248,#8249,#8250,#8251,#8252,#8253)); -#28079=EDGE_LOOP('',(#8254,#8255,#8256,#8257,#8258,#8259)); -#28080=EDGE_LOOP('',(#8260,#8261,#8262,#8263,#8264,#8265)); -#28081=EDGE_LOOP('',(#8266,#8267,#8268,#8269,#8270,#8271)); -#28082=EDGE_LOOP('',(#8272,#8273,#8274,#8275,#8276,#8277)); -#28083=EDGE_LOOP('',(#8278,#8279,#8280,#8281,#8282,#8283)); -#28084=EDGE_LOOP('',(#8284,#8285,#8286,#8287,#8288,#8289)); -#28085=EDGE_LOOP('',(#8290,#8291,#8292,#8293,#8294,#8295)); -#28086=EDGE_LOOP('',(#8296,#8297,#8298,#8299,#8300,#8301)); -#28087=EDGE_LOOP('',(#8302,#8303,#8304,#8305,#8306,#8307)); -#28088=EDGE_LOOP('',(#8308,#8309,#8310,#8311,#8312,#8313)); -#28089=EDGE_LOOP('',(#8314,#8315,#8316,#8317,#8318,#8319)); -#28090=EDGE_LOOP('',(#8320,#8321,#8322,#8323,#8324,#8325)); -#28091=EDGE_LOOP('',(#8326,#8327,#8328,#8329,#8330,#8331)); -#28092=EDGE_LOOP('',(#8332,#8333,#8334,#8335,#8336,#8337)); -#28093=EDGE_LOOP('',(#8338,#8339,#8340,#8341,#8342,#8343)); -#28094=EDGE_LOOP('',(#8344,#8345,#8346,#8347,#8348,#8349)); -#28095=EDGE_LOOP('',(#8350,#8351,#8352,#8353,#8354,#8355)); -#28096=EDGE_LOOP('',(#8356,#8357,#8358,#8359,#8360,#8361)); -#28097=EDGE_LOOP('',(#8362,#8363,#8364,#8365,#8366,#8367)); -#28098=EDGE_LOOP('',(#8368,#8369,#8370,#8371,#8372,#8373)); -#28099=EDGE_LOOP('',(#8374,#8375,#8376,#8377,#8378,#8379)); -#28100=EDGE_LOOP('',(#8380,#8381,#8382,#8383,#8384,#8385)); -#28101=EDGE_LOOP('',(#8386,#8387,#8388,#8389,#8390,#8391)); -#28102=EDGE_LOOP('',(#8392,#8393,#8394,#8395,#8396,#8397)); -#28103=EDGE_LOOP('',(#8398,#8399,#8400,#8401,#8402,#8403)); -#28104=EDGE_LOOP('',(#8404,#8405,#8406,#8407,#8408,#8409)); -#28105=EDGE_LOOP('',(#8410,#8411,#8412,#8413,#8414,#8415)); -#28106=EDGE_LOOP('',(#8416,#8417,#8418,#8419,#8420,#8421)); -#28107=EDGE_LOOP('',(#8422,#8423,#8424,#8425,#8426,#8427)); -#28108=EDGE_LOOP('',(#8428,#8429,#8430,#8431,#8432,#8433)); -#28109=EDGE_LOOP('',(#8434,#8435,#8436,#8437,#8438,#8439)); -#28110=EDGE_LOOP('',(#8440,#8441,#8442,#8443,#8444,#8445)); -#28111=EDGE_LOOP('',(#8446,#8447,#8448,#8449,#8450,#8451)); -#28112=EDGE_LOOP('',(#8452,#8453,#8454,#8455,#8456,#8457)); -#28113=EDGE_LOOP('',(#8458,#8459,#8460,#8461,#8462,#8463)); -#28114=EDGE_LOOP('',(#8464,#8465,#8466,#8467,#8468,#8469)); -#28115=EDGE_LOOP('',(#8470,#8471,#8472,#8473,#8474,#8475)); -#28116=EDGE_LOOP('',(#8476,#8477,#8478,#8479,#8480,#8481)); -#28117=EDGE_LOOP('',(#8482,#8483,#8484,#8485,#8486,#8487)); -#28118=EDGE_LOOP('',(#8488,#8489,#8490,#8491,#8492,#8493)); -#28119=EDGE_LOOP('',(#8494,#8495,#8496,#8497,#8498,#8499)); -#28120=EDGE_LOOP('',(#8500,#8501,#8502,#8503,#8504,#8505)); -#28121=EDGE_LOOP('',(#8506,#8507,#8508,#8509,#8510,#8511)); -#28122=EDGE_LOOP('',(#8512,#8513,#8514,#8515,#8516,#8517)); -#28123=EDGE_LOOP('',(#8518,#8519,#8520,#8521,#8522,#8523)); -#28124=EDGE_LOOP('',(#8524,#8525,#8526,#8527,#8528,#8529)); -#28125=EDGE_LOOP('',(#8530,#8531,#8532,#8533,#8534,#8535)); -#28126=EDGE_LOOP('',(#8536,#8537,#8538,#8539,#8540,#8541)); -#28127=EDGE_LOOP('',(#8542,#8543,#8544,#8545,#8546,#8547)); -#28128=EDGE_LOOP('',(#8548,#8549,#8550,#8551,#8552,#8553)); -#28129=EDGE_LOOP('',(#8554,#8555,#8556,#8557,#8558,#8559)); -#28130=EDGE_LOOP('',(#8560,#8561,#8562,#8563,#8564,#8565)); -#28131=EDGE_LOOP('',(#8566,#8567,#8568,#8569,#8570,#8571)); -#28132=EDGE_LOOP('',(#8572,#8573,#8574,#8575,#8576,#8577)); -#28133=EDGE_LOOP('',(#8578,#8579,#8580,#8581,#8582,#8583)); -#28134=EDGE_LOOP('',(#8584,#8585,#8586,#8587,#8588,#8589,#8590,#8591)); -#28135=EDGE_LOOP('',(#8592,#8593,#8594,#8595,#8596,#8597,#8598,#8599)); -#28136=EDGE_LOOP('',(#8600,#8601,#8602,#8603,#8604,#8605,#8606,#8607)); -#28137=EDGE_LOOP('',(#8608,#8609,#8610,#8611,#8612,#8613,#8614,#8615)); -#28138=EDGE_LOOP('',(#8616,#8617,#8618,#8619,#8620,#8621,#8622,#8623)); -#28139=EDGE_LOOP('',(#8624,#8625,#8626,#8627,#8628,#8629,#8630,#8631)); -#28140=EDGE_LOOP('',(#8632,#8633,#8634,#8635,#8636,#8637,#8638,#8639)); -#28141=EDGE_LOOP('',(#8640,#8641,#8642,#8643,#8644,#8645,#8646,#8647)); -#28142=EDGE_LOOP('',(#8648,#8649,#8650,#8651,#8652,#8653,#8654,#8655)); -#28143=EDGE_LOOP('',(#8656,#8657,#8658,#8659,#8660,#8661,#8662,#8663)); -#28144=EDGE_LOOP('',(#8664,#8665,#8666,#8667,#8668,#8669,#8670,#8671)); -#28145=EDGE_LOOP('',(#8672,#8673,#8674,#8675,#8676,#8677,#8678,#8679)); -#28146=EDGE_LOOP('',(#8680,#8681,#8682,#8683,#8684,#8685,#8686,#8687)); -#28147=EDGE_LOOP('',(#8688,#8689,#8690,#8691,#8692,#8693,#8694,#8695)); -#28148=EDGE_LOOP('',(#8696,#8697,#8698,#8699,#8700,#8701,#8702,#8703)); -#28149=EDGE_LOOP('',(#8704,#8705,#8706,#8707,#8708,#8709,#8710,#8711)); -#28150=EDGE_LOOP('',(#8712,#8713,#8714,#8715,#8716,#8717,#8718,#8719)); -#28151=EDGE_LOOP('',(#8720,#8721,#8722,#8723,#8724,#8725,#8726,#8727)); -#28152=EDGE_LOOP('',(#8728,#8729,#8730,#8731,#8732,#8733,#8734,#8735)); -#28153=EDGE_LOOP('',(#8736,#8737,#8738,#8739,#8740,#8741,#8742,#8743)); -#28154=EDGE_LOOP('',(#8744,#8745,#8746,#8747)); -#28155=EDGE_LOOP('',(#8748,#8749,#8750,#8751)); -#28156=EDGE_LOOP('',(#8752,#8753,#8754,#8755,#8756,#8757)); -#28157=EDGE_LOOP('',(#8758,#8759,#8760,#8761,#8762,#8763)); -#28158=EDGE_LOOP('',(#8764,#8765,#8766)); -#28159=EDGE_LOOP('',(#8767,#8768,#8769,#8770,#8771)); -#28160=EDGE_LOOP('',(#8772,#8773,#8774,#8775)); -#28161=EDGE_LOOP('',(#8776,#8777,#8778,#8779)); -#28162=EDGE_LOOP('',(#8780,#8781,#8782,#8783)); -#28163=EDGE_LOOP('',(#8784,#8785,#8786,#8787)); -#28164=EDGE_LOOP('',(#8788,#8789,#8790,#8791)); -#28165=EDGE_LOOP('',(#8792,#8793,#8794,#8795)); -#28166=EDGE_LOOP('',(#8796,#8797,#8798,#8799)); -#28167=EDGE_LOOP('',(#8800,#8801,#8802,#8803)); -#28168=EDGE_LOOP('',(#8804,#8805,#8806,#8807)); -#28169=EDGE_LOOP('',(#8808,#8809,#8810,#8811)); -#28170=EDGE_LOOP('',(#8812,#8813,#8814,#8815)); -#28171=EDGE_LOOP('',(#8816,#8817,#8818,#8819,#8820)); -#28172=EDGE_LOOP('',(#8821,#8822,#8823,#8824)); -#28173=EDGE_LOOP('',(#8825,#8826,#8827)); -#28174=EDGE_LOOP('',(#8828,#8829,#8830,#8831)); -#28175=EDGE_LOOP('',(#8832,#8833,#8834,#8835)); -#28176=EDGE_LOOP('',(#8836,#8837,#8838,#8839)); -#28177=EDGE_LOOP('',(#8840,#8841,#8842,#8843)); -#28178=EDGE_LOOP('',(#8844,#8845,#8846,#8847)); -#28179=EDGE_LOOP('',(#8848,#8849,#8850,#8851)); -#28180=EDGE_LOOP('',(#8852,#8853,#8854,#8855,#8856)); -#28181=EDGE_LOOP('',(#8857,#8858,#8859)); -#28182=EDGE_LOOP('',(#8860,#8861,#8862,#8863)); -#28183=EDGE_LOOP('',(#8864,#8865,#8866,#8867)); -#28184=EDGE_LOOP('',(#8868,#8869,#8870,#8871)); -#28185=EDGE_LOOP('',(#8872,#8873,#8874,#8875)); -#28186=EDGE_LOOP('',(#8876,#8877,#8878,#8879)); -#28187=EDGE_LOOP('',(#8880,#8881,#8882,#8883)); -#28188=EDGE_LOOP('',(#8884,#8885,#8886,#8887,#8888)); -#28189=EDGE_LOOP('',(#8889,#8890,#8891)); -#28190=EDGE_LOOP('',(#8892,#8893,#8894)); -#28191=EDGE_LOOP('',(#8895,#8896,#8897,#8898,#8899)); -#28192=EDGE_LOOP('',(#8900,#8901,#8902,#8903)); -#28193=EDGE_LOOP('',(#8904,#8905,#8906,#8907)); -#28194=EDGE_LOOP('',(#8908,#8909,#8910,#8911)); -#28195=EDGE_LOOP('',(#8912,#8913,#8914,#8915)); -#28196=EDGE_LOOP('',(#8916,#8917,#8918,#8919)); -#28197=EDGE_LOOP('',(#8920,#8921,#8922,#8923)); -#28198=EDGE_LOOP('',(#8924,#8925,#8926,#8927)); -#28199=EDGE_LOOP('',(#8928,#8929,#8930,#8931)); -#28200=EDGE_LOOP('',(#8932,#8933,#8934,#8935)); -#28201=EDGE_LOOP('',(#8936,#8937,#8938,#8939)); -#28202=EDGE_LOOP('',(#8940,#8941,#8942,#8943)); -#28203=EDGE_LOOP('',(#8944,#8945,#8946,#8947)); -#28204=EDGE_LOOP('',(#8948,#8949,#8950,#8951)); -#28205=EDGE_LOOP('',(#8952,#8953,#8954,#8955)); -#28206=EDGE_LOOP('',(#8956,#8957,#8958,#8959,#8960)); -#28207=EDGE_LOOP('',(#8961,#8962,#8963)); -#28208=EDGE_LOOP('',(#8964,#8965,#8966)); -#28209=EDGE_LOOP('',(#8967,#8968,#8969,#8970,#8971)); -#28210=EDGE_LOOP('',(#8972,#8973,#8974,#8975)); -#28211=EDGE_LOOP('',(#8976,#8977,#8978,#8979)); -#28212=EDGE_LOOP('',(#8980,#8981,#8982,#8983)); -#28213=EDGE_LOOP('',(#8984,#8985,#8986,#8987)); -#28214=EDGE_LOOP('',(#8988,#8989,#8990,#8991)); -#28215=EDGE_LOOP('',(#8992,#8993,#8994,#8995)); -#28216=EDGE_LOOP('',(#8996,#8997,#8998,#8999)); -#28217=EDGE_LOOP('',(#9000,#9001,#9002,#9003)); -#28218=EDGE_LOOP('',(#9004,#9005,#9006,#9007)); -#28219=EDGE_LOOP('',(#9008,#9009,#9010,#9011)); -#28220=EDGE_LOOP('',(#9012,#9013,#9014,#9015)); -#28221=EDGE_LOOP('',(#9016,#9017,#9018,#9019)); -#28222=EDGE_LOOP('',(#9020,#9021,#9022,#9023)); -#28223=EDGE_LOOP('',(#9024,#9025,#9026,#9027)); -#28224=EDGE_LOOP('',(#9028,#9029,#9030,#9031,#9032)); -#28225=EDGE_LOOP('',(#9033,#9034,#9035)); -#28226=EDGE_LOOP('',(#9036,#9037,#9038)); -#28227=EDGE_LOOP('',(#9039,#9040,#9041,#9042,#9043)); -#28228=EDGE_LOOP('',(#9044,#9045,#9046,#9047)); -#28229=EDGE_LOOP('',(#9048,#9049,#9050,#9051)); -#28230=EDGE_LOOP('',(#9052,#9053,#9054,#9055)); -#28231=EDGE_LOOP('',(#9056,#9057,#9058,#9059)); -#28232=EDGE_LOOP('',(#9060,#9061,#9062,#9063)); -#28233=EDGE_LOOP('',(#9064,#9065,#9066,#9067)); -#28234=EDGE_LOOP('',(#9068,#9069,#9070,#9071)); -#28235=EDGE_LOOP('',(#9072,#9073,#9074,#9075)); -#28236=EDGE_LOOP('',(#9076,#9077,#9078,#9079)); -#28237=EDGE_LOOP('',(#9080,#9081,#9082,#9083)); -#28238=EDGE_LOOP('',(#9084,#9085,#9086,#9087)); -#28239=EDGE_LOOP('',(#9088,#9089,#9090,#9091)); -#28240=EDGE_LOOP('',(#9092,#9093,#9094,#9095)); -#28241=EDGE_LOOP('',(#9096,#9097,#9098,#9099)); -#28242=EDGE_LOOP('',(#9100,#9101,#9102,#9103,#9104)); -#28243=EDGE_LOOP('',(#9105,#9106,#9107)); -#28244=EDGE_LOOP('',(#9108,#9109,#9110)); -#28245=EDGE_LOOP('',(#9111,#9112,#9113,#9114,#9115)); -#28246=EDGE_LOOP('',(#9116,#9117,#9118,#9119)); -#28247=EDGE_LOOP('',(#9120,#9121,#9122,#9123)); -#28248=EDGE_LOOP('',(#9124,#9125,#9126,#9127)); -#28249=EDGE_LOOP('',(#9128,#9129,#9130,#9131)); -#28250=EDGE_LOOP('',(#9132,#9133,#9134,#9135)); -#28251=EDGE_LOOP('',(#9136,#9137,#9138,#9139)); -#28252=EDGE_LOOP('',(#9140,#9141,#9142,#9143)); -#28253=EDGE_LOOP('',(#9144,#9145,#9146,#9147)); -#28254=EDGE_LOOP('',(#9148,#9149,#9150,#9151)); -#28255=EDGE_LOOP('',(#9152,#9153,#9154,#9155)); -#28256=EDGE_LOOP('',(#9156,#9157,#9158,#9159)); -#28257=EDGE_LOOP('',(#9160,#9161,#9162,#9163)); -#28258=EDGE_LOOP('',(#9164,#9165,#9166,#9167)); -#28259=EDGE_LOOP('',(#9168,#9169,#9170,#9171)); -#28260=EDGE_LOOP('',(#9172,#9173,#9174,#9175,#9176)); -#28261=EDGE_LOOP('',(#9177,#9178,#9179)); -#28262=EDGE_LOOP('',(#9180,#9181,#9182)); -#28263=EDGE_LOOP('',(#9183,#9184,#9185,#9186,#9187)); -#28264=EDGE_LOOP('',(#9188,#9189,#9190,#9191)); -#28265=EDGE_LOOP('',(#9192,#9193,#9194,#9195)); -#28266=EDGE_LOOP('',(#9196,#9197,#9198,#9199)); -#28267=EDGE_LOOP('',(#9200,#9201,#9202,#9203)); -#28268=EDGE_LOOP('',(#9204,#9205,#9206,#9207)); -#28269=EDGE_LOOP('',(#9208,#9209,#9210,#9211)); -#28270=EDGE_LOOP('',(#9212,#9213,#9214,#9215)); -#28271=EDGE_LOOP('',(#9216,#9217,#9218,#9219)); -#28272=EDGE_LOOP('',(#9220,#9221,#9222,#9223)); -#28273=EDGE_LOOP('',(#9224,#9225,#9226,#9227)); -#28274=EDGE_LOOP('',(#9228,#9229,#9230,#9231)); -#28275=EDGE_LOOP('',(#9232,#9233,#9234,#9235)); -#28276=EDGE_LOOP('',(#9236,#9237,#9238,#9239)); -#28277=EDGE_LOOP('',(#9240,#9241,#9242,#9243)); -#28278=EDGE_LOOP('',(#9244,#9245,#9246,#9247,#9248)); -#28279=EDGE_LOOP('',(#9249,#9250,#9251)); -#28280=EDGE_LOOP('',(#9252,#9253,#9254)); -#28281=EDGE_LOOP('',(#9255,#9256,#9257,#9258,#9259)); -#28282=EDGE_LOOP('',(#9260,#9261,#9262,#9263)); -#28283=EDGE_LOOP('',(#9264,#9265,#9266,#9267)); -#28284=EDGE_LOOP('',(#9268,#9269,#9270,#9271)); -#28285=EDGE_LOOP('',(#9272,#9273,#9274,#9275)); -#28286=EDGE_LOOP('',(#9276,#9277,#9278,#9279)); -#28287=EDGE_LOOP('',(#9280,#9281,#9282,#9283)); -#28288=EDGE_LOOP('',(#9284,#9285,#9286,#9287)); -#28289=EDGE_LOOP('',(#9288,#9289,#9290,#9291)); -#28290=EDGE_LOOP('',(#9292,#9293,#9294,#9295)); -#28291=EDGE_LOOP('',(#9296,#9297,#9298,#9299)); -#28292=EDGE_LOOP('',(#9300,#9301,#9302,#9303)); -#28293=EDGE_LOOP('',(#9304,#9305,#9306,#9307)); -#28294=EDGE_LOOP('',(#9308,#9309,#9310,#9311)); -#28295=EDGE_LOOP('',(#9312,#9313,#9314,#9315)); -#28296=EDGE_LOOP('',(#9316,#9317,#9318,#9319,#9320)); -#28297=EDGE_LOOP('',(#9321,#9322,#9323)); -#28298=EDGE_LOOP('',(#9324,#9325,#9326)); -#28299=EDGE_LOOP('',(#9327,#9328,#9329,#9330,#9331)); -#28300=EDGE_LOOP('',(#9332,#9333,#9334,#9335)); -#28301=EDGE_LOOP('',(#9336,#9337,#9338,#9339)); -#28302=EDGE_LOOP('',(#9340,#9341,#9342,#9343)); -#28303=EDGE_LOOP('',(#9344,#9345,#9346,#9347)); -#28304=EDGE_LOOP('',(#9348,#9349,#9350,#9351)); -#28305=EDGE_LOOP('',(#9352,#9353,#9354,#9355)); -#28306=EDGE_LOOP('',(#9356,#9357,#9358,#9359)); -#28307=EDGE_LOOP('',(#9360,#9361,#9362,#9363)); -#28308=EDGE_LOOP('',(#9364,#9365,#9366,#9367)); -#28309=EDGE_LOOP('',(#9368,#9369,#9370,#9371)); -#28310=EDGE_LOOP('',(#9372,#9373,#9374,#9375)); -#28311=EDGE_LOOP('',(#9376,#9377,#9378,#9379)); -#28312=EDGE_LOOP('',(#9380,#9381,#9382,#9383)); -#28313=EDGE_LOOP('',(#9384,#9385,#9386,#9387)); -#28314=EDGE_LOOP('',(#9388,#9389,#9390,#9391,#9392)); -#28315=EDGE_LOOP('',(#9393,#9394,#9395)); -#28316=EDGE_LOOP('',(#9396,#9397,#9398)); -#28317=EDGE_LOOP('',(#9399,#9400,#9401,#9402,#9403)); -#28318=EDGE_LOOP('',(#9404,#9405,#9406,#9407)); -#28319=EDGE_LOOP('',(#9408,#9409,#9410,#9411)); -#28320=EDGE_LOOP('',(#9412,#9413,#9414,#9415)); -#28321=EDGE_LOOP('',(#9416,#9417,#9418,#9419)); -#28322=EDGE_LOOP('',(#9420,#9421,#9422,#9423)); -#28323=EDGE_LOOP('',(#9424,#9425,#9426,#9427)); -#28324=EDGE_LOOP('',(#9428,#9429,#9430,#9431)); -#28325=EDGE_LOOP('',(#9432,#9433,#9434,#9435)); -#28326=EDGE_LOOP('',(#9436,#9437,#9438,#9439)); -#28327=EDGE_LOOP('',(#9440,#9441,#9442,#9443)); -#28328=EDGE_LOOP('',(#9444,#9445,#9446,#9447)); -#28329=EDGE_LOOP('',(#9448,#9449,#9450,#9451)); -#28330=EDGE_LOOP('',(#9452,#9453,#9454,#9455)); -#28331=EDGE_LOOP('',(#9456,#9457,#9458,#9459)); -#28332=EDGE_LOOP('',(#9460,#9461,#9462,#9463,#9464)); -#28333=EDGE_LOOP('',(#9465,#9466,#9467)); -#28334=EDGE_LOOP('',(#9468,#9469,#9470)); -#28335=EDGE_LOOP('',(#9471,#9472,#9473,#9474,#9475)); -#28336=EDGE_LOOP('',(#9476,#9477,#9478,#9479)); -#28337=EDGE_LOOP('',(#9480,#9481,#9482,#9483)); -#28338=EDGE_LOOP('',(#9484,#9485,#9486,#9487)); -#28339=EDGE_LOOP('',(#9488,#9489,#9490,#9491)); -#28340=EDGE_LOOP('',(#9492,#9493,#9494,#9495)); -#28341=EDGE_LOOP('',(#9496,#9497,#9498,#9499)); -#28342=EDGE_LOOP('',(#9500,#9501,#9502,#9503)); -#28343=EDGE_LOOP('',(#9504,#9505,#9506,#9507)); -#28344=EDGE_LOOP('',(#9508,#9509,#9510,#9511)); -#28345=EDGE_LOOP('',(#9512,#9513,#9514,#9515)); -#28346=EDGE_LOOP('',(#9516,#9517,#9518,#9519)); -#28347=EDGE_LOOP('',(#9520,#9521,#9522,#9523)); -#28348=EDGE_LOOP('',(#9524,#9525,#9526,#9527)); -#28349=EDGE_LOOP('',(#9528,#9529,#9530,#9531)); -#28350=EDGE_LOOP('',(#9532,#9533,#9534,#9535,#9536)); -#28351=EDGE_LOOP('',(#9537,#9538,#9539)); -#28352=EDGE_LOOP('',(#9540,#9541,#9542)); -#28353=EDGE_LOOP('',(#9543,#9544,#9545,#9546,#9547)); -#28354=EDGE_LOOP('',(#9548,#9549,#9550,#9551)); -#28355=EDGE_LOOP('',(#9552,#9553,#9554,#9555)); -#28356=EDGE_LOOP('',(#9556,#9557,#9558,#9559)); -#28357=EDGE_LOOP('',(#9560,#9561,#9562,#9563)); -#28358=EDGE_LOOP('',(#9564,#9565,#9566,#9567)); -#28359=EDGE_LOOP('',(#9568,#9569,#9570,#9571)); -#28360=EDGE_LOOP('',(#9572,#9573,#9574,#9575)); -#28361=EDGE_LOOP('',(#9576,#9577,#9578,#9579)); -#28362=EDGE_LOOP('',(#9580,#9581,#9582,#9583)); -#28363=EDGE_LOOP('',(#9584,#9585,#9586,#9587)); -#28364=EDGE_LOOP('',(#9588,#9589,#9590,#9591)); -#28365=EDGE_LOOP('',(#9592,#9593,#9594,#9595)); -#28366=EDGE_LOOP('',(#9596,#9597,#9598,#9599)); -#28367=EDGE_LOOP('',(#9600,#9601,#9602,#9603)); -#28368=EDGE_LOOP('',(#9604,#9605,#9606,#9607,#9608)); -#28369=EDGE_LOOP('',(#9609,#9610,#9611)); -#28370=EDGE_LOOP('',(#9612,#9613,#9614)); -#28371=EDGE_LOOP('',(#9615,#9616,#9617,#9618,#9619)); -#28372=EDGE_LOOP('',(#9620,#9621,#9622,#9623)); -#28373=EDGE_LOOP('',(#9624,#9625,#9626,#9627)); -#28374=EDGE_LOOP('',(#9628,#9629,#9630,#9631)); -#28375=EDGE_LOOP('',(#9632,#9633,#9634,#9635)); -#28376=EDGE_LOOP('',(#9636,#9637,#9638,#9639)); -#28377=EDGE_LOOP('',(#9640,#9641,#9642,#9643)); -#28378=EDGE_LOOP('',(#9644,#9645,#9646,#9647)); -#28379=EDGE_LOOP('',(#9648,#9649,#9650,#9651)); -#28380=EDGE_LOOP('',(#9652,#9653,#9654,#9655)); -#28381=EDGE_LOOP('',(#9656,#9657,#9658,#9659)); -#28382=EDGE_LOOP('',(#9660,#9661,#9662,#9663)); -#28383=EDGE_LOOP('',(#9664,#9665,#9666,#9667)); -#28384=EDGE_LOOP('',(#9668,#9669,#9670,#9671)); -#28385=EDGE_LOOP('',(#9672,#9673,#9674,#9675)); -#28386=EDGE_LOOP('',(#9676,#9677,#9678,#9679,#9680)); -#28387=EDGE_LOOP('',(#9681,#9682,#9683)); -#28388=EDGE_LOOP('',(#9684,#9685,#9686)); -#28389=EDGE_LOOP('',(#9687,#9688,#9689,#9690,#9691)); -#28390=EDGE_LOOP('',(#9692,#9693,#9694,#9695)); -#28391=EDGE_LOOP('',(#9696,#9697,#9698,#9699)); -#28392=EDGE_LOOP('',(#9700,#9701,#9702,#9703)); -#28393=EDGE_LOOP('',(#9704,#9705,#9706,#9707)); -#28394=EDGE_LOOP('',(#9708,#9709,#9710,#9711)); -#28395=EDGE_LOOP('',(#9712,#9713,#9714,#9715)); -#28396=EDGE_LOOP('',(#9716,#9717,#9718,#9719)); -#28397=EDGE_LOOP('',(#9720,#9721,#9722,#9723)); -#28398=EDGE_LOOP('',(#9724,#9725,#9726,#9727)); -#28399=EDGE_LOOP('',(#9728,#9729,#9730,#9731)); -#28400=EDGE_LOOP('',(#9732,#9733,#9734,#9735)); -#28401=EDGE_LOOP('',(#9736,#9737,#9738,#9739)); -#28402=EDGE_LOOP('',(#9740,#9741,#9742,#9743)); -#28403=EDGE_LOOP('',(#9744,#9745,#9746,#9747)); -#28404=EDGE_LOOP('',(#9748,#9749,#9750,#9751,#9752)); -#28405=EDGE_LOOP('',(#9753,#9754,#9755)); -#28406=EDGE_LOOP('',(#9756,#9757,#9758)); -#28407=EDGE_LOOP('',(#9759,#9760,#9761,#9762,#9763)); -#28408=EDGE_LOOP('',(#9764,#9765,#9766,#9767)); -#28409=EDGE_LOOP('',(#9768,#9769,#9770,#9771)); -#28410=EDGE_LOOP('',(#9772,#9773,#9774,#9775)); -#28411=EDGE_LOOP('',(#9776,#9777,#9778,#9779)); -#28412=EDGE_LOOP('',(#9780,#9781,#9782,#9783)); -#28413=EDGE_LOOP('',(#9784,#9785,#9786,#9787)); -#28414=EDGE_LOOP('',(#9788,#9789,#9790,#9791)); -#28415=EDGE_LOOP('',(#9792,#9793,#9794,#9795)); -#28416=EDGE_LOOP('',(#9796,#9797,#9798,#9799)); -#28417=EDGE_LOOP('',(#9800,#9801,#9802,#9803)); -#28418=EDGE_LOOP('',(#9804,#9805,#9806,#9807)); -#28419=EDGE_LOOP('',(#9808,#9809,#9810,#9811)); -#28420=EDGE_LOOP('',(#9812,#9813,#9814,#9815)); -#28421=EDGE_LOOP('',(#9816,#9817,#9818,#9819)); -#28422=EDGE_LOOP('',(#9820,#9821,#9822,#9823,#9824)); -#28423=EDGE_LOOP('',(#9825,#9826,#9827)); -#28424=EDGE_LOOP('',(#9828,#9829,#9830)); -#28425=EDGE_LOOP('',(#9831,#9832,#9833,#9834,#9835)); -#28426=EDGE_LOOP('',(#9836,#9837,#9838,#9839)); -#28427=EDGE_LOOP('',(#9840,#9841,#9842,#9843)); -#28428=EDGE_LOOP('',(#9844,#9845,#9846,#9847)); -#28429=EDGE_LOOP('',(#9848,#9849,#9850,#9851)); -#28430=EDGE_LOOP('',(#9852,#9853,#9854,#9855)); -#28431=EDGE_LOOP('',(#9856,#9857,#9858,#9859)); -#28432=EDGE_LOOP('',(#9860,#9861,#9862,#9863)); -#28433=EDGE_LOOP('',(#9864,#9865,#9866,#9867)); -#28434=EDGE_LOOP('',(#9868,#9869,#9870,#9871)); -#28435=EDGE_LOOP('',(#9872,#9873,#9874,#9875)); -#28436=EDGE_LOOP('',(#9876,#9877,#9878,#9879)); -#28437=EDGE_LOOP('',(#9880,#9881,#9882,#9883)); -#28438=EDGE_LOOP('',(#9884,#9885,#9886,#9887)); -#28439=EDGE_LOOP('',(#9888,#9889,#9890,#9891)); -#28440=EDGE_LOOP('',(#9892,#9893,#9894,#9895,#9896)); -#28441=EDGE_LOOP('',(#9897,#9898,#9899)); -#28442=EDGE_LOOP('',(#9900,#9901,#9902)); -#28443=EDGE_LOOP('',(#9903,#9904,#9905,#9906,#9907)); -#28444=EDGE_LOOP('',(#9908,#9909,#9910,#9911)); -#28445=EDGE_LOOP('',(#9912,#9913,#9914,#9915)); -#28446=EDGE_LOOP('',(#9916,#9917,#9918,#9919)); -#28447=EDGE_LOOP('',(#9920,#9921,#9922,#9923)); -#28448=EDGE_LOOP('',(#9924,#9925,#9926,#9927)); -#28449=EDGE_LOOP('',(#9928,#9929,#9930,#9931)); -#28450=EDGE_LOOP('',(#9932,#9933,#9934,#9935)); -#28451=EDGE_LOOP('',(#9936,#9937,#9938,#9939)); -#28452=EDGE_LOOP('',(#9940,#9941,#9942,#9943)); -#28453=EDGE_LOOP('',(#9944,#9945,#9946,#9947)); -#28454=EDGE_LOOP('',(#9948,#9949,#9950,#9951)); -#28455=EDGE_LOOP('',(#9952,#9953,#9954,#9955)); -#28456=EDGE_LOOP('',(#9956,#9957,#9958,#9959)); -#28457=EDGE_LOOP('',(#9960,#9961,#9962,#9963)); -#28458=EDGE_LOOP('',(#9964,#9965,#9966,#9967,#9968)); -#28459=EDGE_LOOP('',(#9969,#9970,#9971)); -#28460=EDGE_LOOP('',(#9972,#9973,#9974)); -#28461=EDGE_LOOP('',(#9975,#9976,#9977,#9978,#9979)); -#28462=EDGE_LOOP('',(#9980,#9981,#9982,#9983)); -#28463=EDGE_LOOP('',(#9984,#9985,#9986,#9987)); -#28464=EDGE_LOOP('',(#9988,#9989,#9990,#9991)); -#28465=EDGE_LOOP('',(#9992,#9993,#9994,#9995)); -#28466=EDGE_LOOP('',(#9996,#9997,#9998,#9999)); -#28467=EDGE_LOOP('',(#10000,#10001,#10002,#10003)); -#28468=EDGE_LOOP('',(#10004,#10005,#10006,#10007)); -#28469=EDGE_LOOP('',(#10008,#10009,#10010,#10011)); -#28470=EDGE_LOOP('',(#10012,#10013,#10014,#10015)); -#28471=EDGE_LOOP('',(#10016,#10017,#10018,#10019)); -#28472=EDGE_LOOP('',(#10020,#10021,#10022,#10023)); -#28473=EDGE_LOOP('',(#10024,#10025,#10026,#10027)); -#28474=EDGE_LOOP('',(#10028,#10029,#10030,#10031)); -#28475=EDGE_LOOP('',(#10032,#10033,#10034,#10035)); -#28476=EDGE_LOOP('',(#10036,#10037,#10038,#10039,#10040)); -#28477=EDGE_LOOP('',(#10041,#10042,#10043)); -#28478=EDGE_LOOP('',(#10044,#10045,#10046)); -#28479=EDGE_LOOP('',(#10047,#10048,#10049,#10050,#10051)); -#28480=EDGE_LOOP('',(#10052,#10053,#10054,#10055)); -#28481=EDGE_LOOP('',(#10056,#10057,#10058,#10059)); -#28482=EDGE_LOOP('',(#10060,#10061,#10062,#10063)); -#28483=EDGE_LOOP('',(#10064,#10065,#10066,#10067)); -#28484=EDGE_LOOP('',(#10068,#10069,#10070,#10071)); -#28485=EDGE_LOOP('',(#10072,#10073,#10074,#10075)); -#28486=EDGE_LOOP('',(#10076,#10077,#10078,#10079)); -#28487=EDGE_LOOP('',(#10080,#10081,#10082,#10083)); -#28488=EDGE_LOOP('',(#10084,#10085,#10086,#10087)); -#28489=EDGE_LOOP('',(#10088,#10089,#10090,#10091)); -#28490=EDGE_LOOP('',(#10092,#10093,#10094,#10095)); -#28491=EDGE_LOOP('',(#10096,#10097,#10098,#10099)); -#28492=EDGE_LOOP('',(#10100,#10101,#10102,#10103)); -#28493=EDGE_LOOP('',(#10104,#10105,#10106,#10107)); -#28494=EDGE_LOOP('',(#10108,#10109,#10110,#10111,#10112)); -#28495=EDGE_LOOP('',(#10113,#10114,#10115)); -#28496=EDGE_LOOP('',(#10116,#10117,#10118)); -#28497=EDGE_LOOP('',(#10119,#10120,#10121,#10122,#10123)); -#28498=EDGE_LOOP('',(#10124,#10125,#10126,#10127)); -#28499=EDGE_LOOP('',(#10128,#10129,#10130,#10131)); -#28500=EDGE_LOOP('',(#10132,#10133,#10134,#10135)); -#28501=EDGE_LOOP('',(#10136,#10137,#10138,#10139)); -#28502=EDGE_LOOP('',(#10140,#10141,#10142,#10143)); -#28503=EDGE_LOOP('',(#10144,#10145,#10146,#10147)); -#28504=EDGE_LOOP('',(#10148,#10149,#10150,#10151)); -#28505=EDGE_LOOP('',(#10152,#10153,#10154,#10155)); -#28506=EDGE_LOOP('',(#10156,#10157,#10158,#10159)); -#28507=EDGE_LOOP('',(#10160,#10161,#10162,#10163)); -#28508=EDGE_LOOP('',(#10164,#10165,#10166,#10167)); -#28509=EDGE_LOOP('',(#10168,#10169,#10170,#10171)); -#28510=EDGE_LOOP('',(#10172,#10173,#10174,#10175)); -#28511=EDGE_LOOP('',(#10176,#10177,#10178,#10179)); -#28512=EDGE_LOOP('',(#10180,#10181,#10182,#10183,#10184)); -#28513=EDGE_LOOP('',(#10185,#10186,#10187)); -#28514=EDGE_LOOP('',(#10188,#10189,#10190)); -#28515=EDGE_LOOP('',(#10191,#10192,#10193,#10194,#10195)); -#28516=EDGE_LOOP('',(#10196,#10197,#10198,#10199)); -#28517=EDGE_LOOP('',(#10200,#10201,#10202,#10203)); -#28518=EDGE_LOOP('',(#10204,#10205,#10206,#10207)); -#28519=EDGE_LOOP('',(#10208,#10209,#10210,#10211)); -#28520=EDGE_LOOP('',(#10212,#10213,#10214,#10215)); -#28521=EDGE_LOOP('',(#10216,#10217,#10218,#10219)); -#28522=EDGE_LOOP('',(#10220,#10221,#10222,#10223)); -#28523=EDGE_LOOP('',(#10224,#10225,#10226,#10227)); -#28524=EDGE_LOOP('',(#10228,#10229,#10230,#10231)); -#28525=EDGE_LOOP('',(#10232,#10233,#10234,#10235)); -#28526=EDGE_LOOP('',(#10236,#10237,#10238,#10239)); -#28527=EDGE_LOOP('',(#10240,#10241,#10242,#10243)); -#28528=EDGE_LOOP('',(#10244,#10245,#10246,#10247)); -#28529=EDGE_LOOP('',(#10248,#10249,#10250,#10251)); -#28530=EDGE_LOOP('',(#10252,#10253,#10254,#10255,#10256)); -#28531=EDGE_LOOP('',(#10257,#10258,#10259)); -#28532=EDGE_LOOP('',(#10260,#10261,#10262,#10263)); -#28533=EDGE_LOOP('',(#10264,#10265,#10266,#10267)); -#28534=EDGE_LOOP('',(#10268,#10269,#10270,#10271)); -#28535=EDGE_LOOP('',(#10272,#10273,#10274,#10275)); -#28536=EDGE_LOOP('',(#10276,#10277,#10278,#10279)); -#28537=EDGE_LOOP('',(#10280,#10281,#10282,#10283)); -#28538=EDGE_LOOP('',(#10284,#10285,#10286,#10287)); -#28539=EDGE_LOOP('',(#10288,#10289,#10290,#10291)); -#28540=EDGE_LOOP('',(#10292,#10293,#10294,#10295)); -#28541=EDGE_LOOP('',(#10296,#10297,#10298,#10299)); -#28542=EDGE_LOOP('',(#10300,#10301,#10302,#10303)); -#28543=EDGE_LOOP('',(#10304,#10305,#10306,#10307)); -#28544=EDGE_LOOP('',(#10308,#10309,#10310,#10311,#10312)); -#28545=EDGE_LOOP('',(#10313,#10314,#10315,#10316)); -#28546=EDGE_LOOP('',(#10317,#10318,#10319,#10320)); -#28547=EDGE_LOOP('',(#10321,#10322,#10323,#10324,#10325)); -#28548=EDGE_LOOP('',(#10326,#10327,#10328)); -#28549=EDGE_LOOP('',(#10329,#10330,#10331)); -#28550=EDGE_LOOP('',(#10332,#10333,#10334,#10335)); -#28551=EDGE_LOOP('',(#10336,#10337,#10338,#10339)); -#28552=EDGE_LOOP('',(#10340,#10341,#10342,#10343)); -#28553=EDGE_LOOP('',(#10344,#10345,#10346,#10347)); -#28554=EDGE_LOOP('',(#10348,#10349,#10350,#10351)); -#28555=EDGE_LOOP('',(#10352,#10353,#10354,#10355)); -#28556=EDGE_LOOP('',(#10356,#10357,#10358,#10359)); -#28557=EDGE_LOOP('',(#10360,#10361,#10362,#10363)); -#28558=EDGE_LOOP('',(#10364,#10365,#10366,#10367)); -#28559=EDGE_LOOP('',(#10368,#10369,#10370,#10371)); -#28560=EDGE_LOOP('',(#10372,#10373,#10374,#10375)); -#28561=EDGE_LOOP('',(#10376,#10377,#10378,#10379)); -#28562=EDGE_LOOP('',(#10380,#10381,#10382,#10383,#10384)); -#28563=EDGE_LOOP('',(#10385,#10386,#10387,#10388)); -#28564=EDGE_LOOP('',(#10389,#10390,#10391,#10392)); -#28565=EDGE_LOOP('',(#10393,#10394,#10395,#10396,#10397)); -#28566=EDGE_LOOP('',(#10398,#10399,#10400)); -#28567=EDGE_LOOP('',(#10401,#10402,#10403)); -#28568=EDGE_LOOP('',(#10404,#10405,#10406,#10407)); -#28569=EDGE_LOOP('',(#10408,#10409,#10410,#10411)); -#28570=EDGE_LOOP('',(#10412,#10413,#10414,#10415)); -#28571=EDGE_LOOP('',(#10416,#10417,#10418,#10419)); -#28572=EDGE_LOOP('',(#10420,#10421,#10422,#10423)); -#28573=EDGE_LOOP('',(#10424,#10425,#10426,#10427)); -#28574=EDGE_LOOP('',(#10428,#10429,#10430,#10431)); -#28575=EDGE_LOOP('',(#10432,#10433,#10434,#10435)); -#28576=EDGE_LOOP('',(#10436,#10437,#10438,#10439)); -#28577=EDGE_LOOP('',(#10440,#10441,#10442,#10443)); -#28578=EDGE_LOOP('',(#10444,#10445,#10446,#10447)); -#28579=EDGE_LOOP('',(#10448,#10449,#10450,#10451)); -#28580=EDGE_LOOP('',(#10452,#10453,#10454,#10455,#10456)); -#28581=EDGE_LOOP('',(#10457,#10458,#10459,#10460)); -#28582=EDGE_LOOP('',(#10461,#10462,#10463,#10464)); -#28583=EDGE_LOOP('',(#10465,#10466,#10467,#10468,#10469)); -#28584=EDGE_LOOP('',(#10470,#10471,#10472)); -#28585=EDGE_LOOP('',(#10473,#10474,#10475)); -#28586=EDGE_LOOP('',(#10476,#10477,#10478,#10479)); -#28587=EDGE_LOOP('',(#10480,#10481,#10482,#10483)); -#28588=EDGE_LOOP('',(#10484,#10485,#10486,#10487)); -#28589=EDGE_LOOP('',(#10488,#10489,#10490,#10491)); -#28590=EDGE_LOOP('',(#10492,#10493,#10494,#10495)); -#28591=EDGE_LOOP('',(#10496,#10497,#10498,#10499)); -#28592=EDGE_LOOP('',(#10500,#10501,#10502,#10503)); -#28593=EDGE_LOOP('',(#10504,#10505,#10506,#10507)); -#28594=EDGE_LOOP('',(#10508,#10509,#10510,#10511)); -#28595=EDGE_LOOP('',(#10512,#10513,#10514,#10515)); -#28596=EDGE_LOOP('',(#10516,#10517,#10518,#10519)); -#28597=EDGE_LOOP('',(#10520,#10521,#10522,#10523)); -#28598=EDGE_LOOP('',(#10524,#10525,#10526,#10527,#10528)); -#28599=EDGE_LOOP('',(#10529,#10530,#10531,#10532)); -#28600=EDGE_LOOP('',(#10533,#10534,#10535,#10536)); -#28601=EDGE_LOOP('',(#10537,#10538,#10539,#10540,#10541)); -#28602=EDGE_LOOP('',(#10542,#10543,#10544)); -#28603=EDGE_LOOP('',(#10545,#10546,#10547)); -#28604=EDGE_LOOP('',(#10548,#10549,#10550,#10551)); -#28605=EDGE_LOOP('',(#10552,#10553,#10554,#10555)); -#28606=EDGE_LOOP('',(#10556,#10557,#10558,#10559)); -#28607=EDGE_LOOP('',(#10560,#10561,#10562,#10563)); -#28608=EDGE_LOOP('',(#10564,#10565,#10566,#10567)); -#28609=EDGE_LOOP('',(#10568,#10569,#10570,#10571)); -#28610=EDGE_LOOP('',(#10572,#10573,#10574,#10575)); -#28611=EDGE_LOOP('',(#10576,#10577,#10578,#10579)); -#28612=EDGE_LOOP('',(#10580,#10581,#10582,#10583)); -#28613=EDGE_LOOP('',(#10584,#10585,#10586,#10587)); -#28614=EDGE_LOOP('',(#10588,#10589,#10590,#10591)); -#28615=EDGE_LOOP('',(#10592,#10593,#10594,#10595)); -#28616=EDGE_LOOP('',(#10596,#10597,#10598,#10599,#10600)); -#28617=EDGE_LOOP('',(#10601,#10602,#10603,#10604)); -#28618=EDGE_LOOP('',(#10605,#10606,#10607,#10608)); -#28619=EDGE_LOOP('',(#10609,#10610,#10611,#10612,#10613)); -#28620=EDGE_LOOP('',(#10614,#10615,#10616)); -#28621=EDGE_LOOP('',(#10617,#10618,#10619)); -#28622=EDGE_LOOP('',(#10620,#10621,#10622,#10623)); -#28623=EDGE_LOOP('',(#10624,#10625,#10626,#10627)); -#28624=EDGE_LOOP('',(#10628,#10629,#10630,#10631)); -#28625=EDGE_LOOP('',(#10632,#10633,#10634,#10635)); -#28626=EDGE_LOOP('',(#10636,#10637,#10638,#10639)); -#28627=EDGE_LOOP('',(#10640,#10641,#10642,#10643)); -#28628=EDGE_LOOP('',(#10644,#10645,#10646,#10647)); -#28629=EDGE_LOOP('',(#10648,#10649,#10650,#10651)); -#28630=EDGE_LOOP('',(#10652,#10653,#10654,#10655)); -#28631=EDGE_LOOP('',(#10656,#10657,#10658,#10659)); -#28632=EDGE_LOOP('',(#10660,#10661,#10662,#10663)); -#28633=EDGE_LOOP('',(#10664,#10665,#10666,#10667)); -#28634=EDGE_LOOP('',(#10668,#10669,#10670,#10671,#10672)); -#28635=EDGE_LOOP('',(#10673,#10674,#10675,#10676)); -#28636=EDGE_LOOP('',(#10677,#10678,#10679,#10680)); -#28637=EDGE_LOOP('',(#10681,#10682,#10683,#10684,#10685)); -#28638=EDGE_LOOP('',(#10686,#10687,#10688)); -#28639=EDGE_LOOP('',(#10689,#10690,#10691)); -#28640=EDGE_LOOP('',(#10692,#10693,#10694,#10695)); -#28641=EDGE_LOOP('',(#10696,#10697,#10698,#10699)); -#28642=EDGE_LOOP('',(#10700,#10701,#10702,#10703)); -#28643=EDGE_LOOP('',(#10704,#10705,#10706,#10707)); -#28644=EDGE_LOOP('',(#10708,#10709,#10710,#10711)); -#28645=EDGE_LOOP('',(#10712,#10713,#10714,#10715)); -#28646=EDGE_LOOP('',(#10716,#10717,#10718,#10719)); -#28647=EDGE_LOOP('',(#10720,#10721,#10722,#10723)); -#28648=EDGE_LOOP('',(#10724,#10725,#10726,#10727)); -#28649=EDGE_LOOP('',(#10728,#10729,#10730,#10731)); -#28650=EDGE_LOOP('',(#10732,#10733,#10734,#10735)); -#28651=EDGE_LOOP('',(#10736,#10737,#10738,#10739)); -#28652=EDGE_LOOP('',(#10740,#10741,#10742,#10743,#10744)); -#28653=EDGE_LOOP('',(#10745,#10746,#10747,#10748)); -#28654=EDGE_LOOP('',(#10749,#10750,#10751,#10752)); -#28655=EDGE_LOOP('',(#10753,#10754,#10755,#10756,#10757)); -#28656=EDGE_LOOP('',(#10758,#10759,#10760)); -#28657=EDGE_LOOP('',(#10761,#10762,#10763)); -#28658=EDGE_LOOP('',(#10764,#10765,#10766,#10767)); -#28659=EDGE_LOOP('',(#10768,#10769,#10770,#10771)); -#28660=EDGE_LOOP('',(#10772,#10773,#10774,#10775)); -#28661=EDGE_LOOP('',(#10776,#10777,#10778,#10779)); -#28662=EDGE_LOOP('',(#10780,#10781,#10782,#10783)); -#28663=EDGE_LOOP('',(#10784,#10785,#10786,#10787)); -#28664=EDGE_LOOP('',(#10788,#10789,#10790,#10791)); -#28665=EDGE_LOOP('',(#10792,#10793,#10794,#10795)); -#28666=EDGE_LOOP('',(#10796,#10797,#10798,#10799)); -#28667=EDGE_LOOP('',(#10800,#10801,#10802,#10803)); -#28668=EDGE_LOOP('',(#10804,#10805,#10806,#10807)); -#28669=EDGE_LOOP('',(#10808,#10809,#10810,#10811)); -#28670=EDGE_LOOP('',(#10812,#10813,#10814,#10815,#10816)); -#28671=EDGE_LOOP('',(#10817,#10818,#10819,#10820)); -#28672=EDGE_LOOP('',(#10821,#10822,#10823,#10824)); -#28673=EDGE_LOOP('',(#10825,#10826,#10827,#10828,#10829)); -#28674=EDGE_LOOP('',(#10830,#10831,#10832)); -#28675=EDGE_LOOP('',(#10833,#10834,#10835)); -#28676=EDGE_LOOP('',(#10836,#10837,#10838,#10839)); -#28677=EDGE_LOOP('',(#10840,#10841,#10842,#10843)); -#28678=EDGE_LOOP('',(#10844,#10845,#10846,#10847)); -#28679=EDGE_LOOP('',(#10848,#10849,#10850,#10851)); -#28680=EDGE_LOOP('',(#10852,#10853,#10854,#10855)); -#28681=EDGE_LOOP('',(#10856,#10857,#10858,#10859)); -#28682=EDGE_LOOP('',(#10860,#10861,#10862,#10863)); -#28683=EDGE_LOOP('',(#10864,#10865,#10866,#10867)); -#28684=EDGE_LOOP('',(#10868,#10869,#10870,#10871)); -#28685=EDGE_LOOP('',(#10872,#10873,#10874,#10875)); -#28686=EDGE_LOOP('',(#10876,#10877,#10878,#10879)); -#28687=EDGE_LOOP('',(#10880,#10881,#10882,#10883)); -#28688=EDGE_LOOP('',(#10884,#10885,#10886,#10887,#10888)); -#28689=EDGE_LOOP('',(#10889,#10890,#10891,#10892)); -#28690=EDGE_LOOP('',(#10893,#10894,#10895,#10896)); -#28691=EDGE_LOOP('',(#10897,#10898,#10899,#10900,#10901)); -#28692=EDGE_LOOP('',(#10902,#10903,#10904)); -#28693=EDGE_LOOP('',(#10905,#10906,#10907)); -#28694=EDGE_LOOP('',(#10908,#10909,#10910,#10911)); -#28695=EDGE_LOOP('',(#10912,#10913,#10914,#10915)); -#28696=EDGE_LOOP('',(#10916,#10917,#10918,#10919)); -#28697=EDGE_LOOP('',(#10920,#10921,#10922,#10923)); -#28698=EDGE_LOOP('',(#10924,#10925,#10926,#10927)); -#28699=EDGE_LOOP('',(#10928,#10929,#10930,#10931)); -#28700=EDGE_LOOP('',(#10932,#10933,#10934,#10935)); -#28701=EDGE_LOOP('',(#10936,#10937,#10938,#10939)); -#28702=EDGE_LOOP('',(#10940,#10941,#10942,#10943)); -#28703=EDGE_LOOP('',(#10944,#10945,#10946,#10947)); -#28704=EDGE_LOOP('',(#10948,#10949,#10950,#10951)); -#28705=EDGE_LOOP('',(#10952,#10953,#10954,#10955)); -#28706=EDGE_LOOP('',(#10956,#10957,#10958,#10959,#10960)); -#28707=EDGE_LOOP('',(#10961,#10962,#10963,#10964)); -#28708=EDGE_LOOP('',(#10965,#10966,#10967,#10968)); -#28709=EDGE_LOOP('',(#10969,#10970,#10971,#10972,#10973)); -#28710=EDGE_LOOP('',(#10974,#10975,#10976)); -#28711=EDGE_LOOP('',(#10977,#10978,#10979)); -#28712=EDGE_LOOP('',(#10980,#10981,#10982,#10983)); -#28713=EDGE_LOOP('',(#10984,#10985,#10986,#10987)); -#28714=EDGE_LOOP('',(#10988,#10989,#10990,#10991)); -#28715=EDGE_LOOP('',(#10992,#10993,#10994,#10995)); -#28716=EDGE_LOOP('',(#10996,#10997,#10998,#10999)); -#28717=EDGE_LOOP('',(#11000,#11001,#11002,#11003)); -#28718=EDGE_LOOP('',(#11004,#11005,#11006,#11007)); -#28719=EDGE_LOOP('',(#11008,#11009,#11010,#11011)); -#28720=EDGE_LOOP('',(#11012,#11013,#11014,#11015)); -#28721=EDGE_LOOP('',(#11016,#11017,#11018,#11019)); -#28722=EDGE_LOOP('',(#11020,#11021,#11022,#11023)); -#28723=EDGE_LOOP('',(#11024,#11025,#11026,#11027)); -#28724=EDGE_LOOP('',(#11028,#11029,#11030,#11031,#11032)); -#28725=EDGE_LOOP('',(#11033,#11034,#11035,#11036)); -#28726=EDGE_LOOP('',(#11037,#11038,#11039,#11040)); -#28727=EDGE_LOOP('',(#11041,#11042,#11043,#11044,#11045)); -#28728=EDGE_LOOP('',(#11046,#11047,#11048)); -#28729=EDGE_LOOP('',(#11049,#11050,#11051)); -#28730=EDGE_LOOP('',(#11052,#11053,#11054,#11055)); -#28731=EDGE_LOOP('',(#11056,#11057,#11058,#11059)); -#28732=EDGE_LOOP('',(#11060,#11061,#11062,#11063)); -#28733=EDGE_LOOP('',(#11064,#11065,#11066,#11067)); -#28734=EDGE_LOOP('',(#11068,#11069,#11070,#11071)); -#28735=EDGE_LOOP('',(#11072,#11073,#11074,#11075)); -#28736=EDGE_LOOP('',(#11076,#11077,#11078,#11079)); -#28737=EDGE_LOOP('',(#11080,#11081,#11082,#11083)); -#28738=EDGE_LOOP('',(#11084,#11085,#11086,#11087)); -#28739=EDGE_LOOP('',(#11088,#11089,#11090,#11091)); -#28740=EDGE_LOOP('',(#11092,#11093,#11094,#11095)); -#28741=EDGE_LOOP('',(#11096,#11097,#11098,#11099)); -#28742=EDGE_LOOP('',(#11100,#11101,#11102,#11103,#11104)); -#28743=EDGE_LOOP('',(#11105,#11106,#11107,#11108)); -#28744=EDGE_LOOP('',(#11109,#11110,#11111,#11112)); -#28745=EDGE_LOOP('',(#11113,#11114,#11115,#11116,#11117)); -#28746=EDGE_LOOP('',(#11118,#11119,#11120)); -#28747=EDGE_LOOP('',(#11121,#11122,#11123)); -#28748=EDGE_LOOP('',(#11124,#11125,#11126,#11127)); -#28749=EDGE_LOOP('',(#11128,#11129,#11130,#11131)); -#28750=EDGE_LOOP('',(#11132,#11133,#11134,#11135)); -#28751=EDGE_LOOP('',(#11136,#11137,#11138,#11139)); -#28752=EDGE_LOOP('',(#11140,#11141,#11142,#11143)); -#28753=EDGE_LOOP('',(#11144,#11145,#11146,#11147)); -#28754=EDGE_LOOP('',(#11148,#11149,#11150,#11151)); -#28755=EDGE_LOOP('',(#11152,#11153,#11154,#11155)); -#28756=EDGE_LOOP('',(#11156,#11157,#11158,#11159)); -#28757=EDGE_LOOP('',(#11160,#11161,#11162,#11163)); -#28758=EDGE_LOOP('',(#11164,#11165,#11166,#11167)); -#28759=EDGE_LOOP('',(#11168,#11169,#11170,#11171)); -#28760=EDGE_LOOP('',(#11172,#11173,#11174,#11175,#11176)); -#28761=EDGE_LOOP('',(#11177,#11178,#11179,#11180)); -#28762=EDGE_LOOP('',(#11181,#11182,#11183,#11184)); -#28763=EDGE_LOOP('',(#11185,#11186,#11187,#11188,#11189)); -#28764=EDGE_LOOP('',(#11190,#11191,#11192)); -#28765=EDGE_LOOP('',(#11193,#11194,#11195)); -#28766=EDGE_LOOP('',(#11196,#11197,#11198,#11199)); -#28767=EDGE_LOOP('',(#11200,#11201,#11202,#11203)); -#28768=EDGE_LOOP('',(#11204,#11205,#11206,#11207)); -#28769=EDGE_LOOP('',(#11208,#11209,#11210,#11211)); -#28770=EDGE_LOOP('',(#11212,#11213,#11214,#11215)); -#28771=EDGE_LOOP('',(#11216,#11217,#11218,#11219)); -#28772=EDGE_LOOP('',(#11220,#11221,#11222,#11223)); -#28773=EDGE_LOOP('',(#11224,#11225,#11226,#11227)); -#28774=EDGE_LOOP('',(#11228,#11229,#11230,#11231)); -#28775=EDGE_LOOP('',(#11232,#11233,#11234,#11235)); -#28776=EDGE_LOOP('',(#11236,#11237,#11238,#11239)); -#28777=EDGE_LOOP('',(#11240,#11241,#11242,#11243)); -#28778=EDGE_LOOP('',(#11244,#11245,#11246,#11247,#11248)); -#28779=EDGE_LOOP('',(#11249,#11250,#11251,#11252)); -#28780=EDGE_LOOP('',(#11253,#11254,#11255,#11256)); -#28781=EDGE_LOOP('',(#11257,#11258,#11259,#11260,#11261)); -#28782=EDGE_LOOP('',(#11262,#11263,#11264)); -#28783=EDGE_LOOP('',(#11265,#11266,#11267)); -#28784=EDGE_LOOP('',(#11268,#11269,#11270,#11271)); -#28785=EDGE_LOOP('',(#11272,#11273,#11274,#11275)); -#28786=EDGE_LOOP('',(#11276,#11277,#11278,#11279)); -#28787=EDGE_LOOP('',(#11280,#11281,#11282,#11283)); -#28788=EDGE_LOOP('',(#11284,#11285,#11286,#11287)); -#28789=EDGE_LOOP('',(#11288,#11289,#11290,#11291)); -#28790=EDGE_LOOP('',(#11292,#11293,#11294,#11295)); -#28791=EDGE_LOOP('',(#11296,#11297,#11298,#11299)); -#28792=EDGE_LOOP('',(#11300,#11301,#11302,#11303)); -#28793=EDGE_LOOP('',(#11304,#11305,#11306,#11307)); -#28794=EDGE_LOOP('',(#11308,#11309,#11310,#11311)); -#28795=EDGE_LOOP('',(#11312,#11313,#11314,#11315)); -#28796=EDGE_LOOP('',(#11316,#11317,#11318,#11319,#11320)); -#28797=EDGE_LOOP('',(#11321,#11322,#11323,#11324)); -#28798=EDGE_LOOP('',(#11325,#11326,#11327,#11328)); -#28799=EDGE_LOOP('',(#11329,#11330,#11331,#11332,#11333)); -#28800=EDGE_LOOP('',(#11334,#11335,#11336)); -#28801=EDGE_LOOP('',(#11337,#11338,#11339)); -#28802=EDGE_LOOP('',(#11340,#11341,#11342,#11343)); -#28803=EDGE_LOOP('',(#11344,#11345,#11346,#11347)); -#28804=EDGE_LOOP('',(#11348,#11349,#11350,#11351)); -#28805=EDGE_LOOP('',(#11352,#11353,#11354,#11355)); -#28806=EDGE_LOOP('',(#11356,#11357,#11358,#11359)); -#28807=EDGE_LOOP('',(#11360,#11361,#11362,#11363)); -#28808=EDGE_LOOP('',(#11364,#11365,#11366,#11367)); -#28809=EDGE_LOOP('',(#11368,#11369,#11370,#11371)); -#28810=EDGE_LOOP('',(#11372,#11373,#11374,#11375)); -#28811=EDGE_LOOP('',(#11376,#11377,#11378,#11379)); -#28812=EDGE_LOOP('',(#11380,#11381,#11382,#11383)); -#28813=EDGE_LOOP('',(#11384,#11385,#11386,#11387)); -#28814=EDGE_LOOP('',(#11388,#11389,#11390,#11391,#11392)); -#28815=EDGE_LOOP('',(#11393,#11394,#11395,#11396)); -#28816=EDGE_LOOP('',(#11397,#11398,#11399,#11400)); -#28817=EDGE_LOOP('',(#11401,#11402,#11403,#11404,#11405)); -#28818=EDGE_LOOP('',(#11406,#11407,#11408)); -#28819=EDGE_LOOP('',(#11409,#11410,#11411)); -#28820=EDGE_LOOP('',(#11412,#11413,#11414,#11415)); -#28821=EDGE_LOOP('',(#11416,#11417,#11418,#11419)); -#28822=EDGE_LOOP('',(#11420,#11421,#11422,#11423)); -#28823=EDGE_LOOP('',(#11424,#11425,#11426,#11427)); -#28824=EDGE_LOOP('',(#11428,#11429,#11430,#11431)); -#28825=EDGE_LOOP('',(#11432,#11433,#11434,#11435)); -#28826=EDGE_LOOP('',(#11436,#11437,#11438,#11439)); -#28827=EDGE_LOOP('',(#11440,#11441,#11442,#11443)); -#28828=EDGE_LOOP('',(#11444,#11445,#11446,#11447)); -#28829=EDGE_LOOP('',(#11448,#11449,#11450,#11451)); -#28830=EDGE_LOOP('',(#11452,#11453,#11454,#11455)); -#28831=EDGE_LOOP('',(#11456,#11457,#11458,#11459)); -#28832=EDGE_LOOP('',(#11460,#11461,#11462,#11463,#11464)); -#28833=EDGE_LOOP('',(#11465,#11466,#11467,#11468)); -#28834=EDGE_LOOP('',(#11469,#11470,#11471,#11472)); -#28835=EDGE_LOOP('',(#11473,#11474,#11475,#11476,#11477)); -#28836=EDGE_LOOP('',(#11478,#11479,#11480)); -#28837=EDGE_LOOP('',(#11481,#11482,#11483)); -#28838=EDGE_LOOP('',(#11484,#11485,#11486,#11487)); -#28839=EDGE_LOOP('',(#11488,#11489,#11490,#11491)); -#28840=EDGE_LOOP('',(#11492,#11493,#11494,#11495)); -#28841=EDGE_LOOP('',(#11496,#11497,#11498,#11499)); -#28842=EDGE_LOOP('',(#11500,#11501,#11502,#11503)); -#28843=EDGE_LOOP('',(#11504,#11505,#11506,#11507)); -#28844=EDGE_LOOP('',(#11508,#11509,#11510,#11511)); -#28845=EDGE_LOOP('',(#11512,#11513,#11514,#11515)); -#28846=EDGE_LOOP('',(#11516,#11517,#11518,#11519)); -#28847=EDGE_LOOP('',(#11520,#11521,#11522,#11523)); -#28848=EDGE_LOOP('',(#11524,#11525,#11526,#11527)); -#28849=EDGE_LOOP('',(#11528,#11529,#11530,#11531)); -#28850=EDGE_LOOP('',(#11532,#11533,#11534,#11535,#11536)); -#28851=EDGE_LOOP('',(#11537,#11538,#11539,#11540)); -#28852=EDGE_LOOP('',(#11541,#11542,#11543,#11544)); -#28853=EDGE_LOOP('',(#11545,#11546,#11547,#11548,#11549)); -#28854=EDGE_LOOP('',(#11550,#11551,#11552)); -#28855=EDGE_LOOP('',(#11553,#11554,#11555)); -#28856=EDGE_LOOP('',(#11556,#11557,#11558,#11559)); -#28857=EDGE_LOOP('',(#11560,#11561,#11562,#11563)); -#28858=EDGE_LOOP('',(#11564,#11565,#11566,#11567)); -#28859=EDGE_LOOP('',(#11568,#11569,#11570,#11571)); -#28860=EDGE_LOOP('',(#11572,#11573,#11574,#11575)); -#28861=EDGE_LOOP('',(#11576,#11577,#11578,#11579)); -#28862=EDGE_LOOP('',(#11580,#11581,#11582,#11583)); -#28863=EDGE_LOOP('',(#11584,#11585,#11586,#11587)); -#28864=EDGE_LOOP('',(#11588,#11589,#11590,#11591)); -#28865=EDGE_LOOP('',(#11592,#11593,#11594,#11595)); -#28866=EDGE_LOOP('',(#11596,#11597,#11598,#11599)); -#28867=EDGE_LOOP('',(#11600,#11601,#11602,#11603)); -#28868=EDGE_LOOP('',(#11604,#11605,#11606,#11607,#11608)); -#28869=EDGE_LOOP('',(#11609,#11610,#11611,#11612)); -#28870=EDGE_LOOP('',(#11613,#11614,#11615,#11616)); -#28871=EDGE_LOOP('',(#11617,#11618,#11619,#11620,#11621)); -#28872=EDGE_LOOP('',(#11622,#11623,#11624)); -#28873=EDGE_LOOP('',(#11625,#11626,#11627)); -#28874=EDGE_LOOP('',(#11628,#11629,#11630,#11631,#11632,#11633,#11634,#11635)); -#28875=EDGE_LOOP('',(#11636,#11637,#11638,#11639,#11640,#11641,#11642,#11643)); -#28876=EDGE_LOOP('',(#11644,#11645,#11646,#11647)); -#28877=EDGE_LOOP('',(#11648,#11649,#11650,#11651)); -#28878=FACE_BOUND('',#27171,.T.); -#28879=FACE_BOUND('',#27172,.T.); -#28880=FACE_BOUND('',#27173,.T.); -#28881=FACE_BOUND('',#27174,.T.); -#28882=FACE_BOUND('',#27175,.T.); -#28883=FACE_BOUND('',#27176,.T.); -#28884=FACE_BOUND('',#27177,.T.); -#28885=FACE_BOUND('',#27178,.T.); -#28886=FACE_BOUND('',#27179,.T.); -#28887=FACE_BOUND('',#27180,.T.); -#28888=FACE_BOUND('',#27181,.T.); -#28889=FACE_BOUND('',#27182,.T.); -#28890=FACE_BOUND('',#27183,.T.); -#28891=FACE_BOUND('',#27184,.T.); -#28892=FACE_BOUND('',#27185,.T.); -#28893=FACE_BOUND('',#27186,.T.); -#28894=FACE_BOUND('',#27187,.T.); -#28895=FACE_BOUND('',#27188,.T.); -#28896=FACE_BOUND('',#27189,.T.); -#28897=FACE_BOUND('',#27190,.T.); -#28898=FACE_BOUND('',#27191,.T.); -#28899=FACE_BOUND('',#27192,.T.); -#28900=FACE_BOUND('',#27193,.T.); -#28901=FACE_BOUND('',#27194,.T.); -#28902=FACE_BOUND('',#27195,.T.); -#28903=FACE_BOUND('',#27196,.T.); -#28904=FACE_BOUND('',#27197,.T.); -#28905=FACE_BOUND('',#27198,.T.); -#28906=FACE_BOUND('',#27199,.T.); -#28907=FACE_BOUND('',#27200,.T.); -#28908=FACE_BOUND('',#27201,.T.); -#28909=FACE_BOUND('',#27202,.T.); -#28910=FACE_BOUND('',#27203,.T.); -#28911=FACE_BOUND('',#27204,.T.); -#28912=FACE_BOUND('',#27205,.T.); -#28913=FACE_BOUND('',#27206,.T.); -#28914=FACE_BOUND('',#27207,.T.); -#28915=FACE_BOUND('',#27208,.T.); -#28916=FACE_BOUND('',#27209,.T.); -#28917=FACE_BOUND('',#27210,.T.); -#28918=FACE_BOUND('',#27211,.T.); -#28919=FACE_BOUND('',#27212,.T.); -#28920=FACE_BOUND('',#27213,.T.); -#28921=FACE_BOUND('',#27214,.T.); -#28922=FACE_BOUND('',#27215,.T.); -#28923=FACE_BOUND('',#27216,.T.); -#28924=FACE_BOUND('',#27217,.T.); -#28925=FACE_BOUND('',#27218,.T.); -#28926=FACE_BOUND('',#27219,.T.); -#28927=FACE_BOUND('',#27220,.T.); -#28928=FACE_BOUND('',#27221,.T.); -#28929=FACE_BOUND('',#27222,.T.); -#28930=FACE_BOUND('',#27223,.T.); -#28931=FACE_BOUND('',#27224,.T.); -#28932=FACE_BOUND('',#27225,.T.); -#28933=FACE_BOUND('',#27226,.T.); -#28934=FACE_BOUND('',#27227,.T.); -#28935=FACE_BOUND('',#27228,.T.); -#28936=FACE_BOUND('',#27229,.T.); -#28937=FACE_BOUND('',#27230,.T.); -#28938=FACE_BOUND('',#27231,.T.); -#28939=FACE_BOUND('',#27232,.T.); -#28940=FACE_BOUND('',#27233,.T.); -#28941=FACE_BOUND('',#27234,.T.); -#28942=FACE_BOUND('',#27235,.T.); -#28943=FACE_BOUND('',#27236,.T.); -#28944=FACE_BOUND('',#27237,.T.); -#28945=FACE_BOUND('',#27238,.T.); -#28946=FACE_BOUND('',#27239,.T.); -#28947=FACE_BOUND('',#27240,.T.); -#28948=FACE_BOUND('',#27241,.T.); -#28949=FACE_BOUND('',#27242,.T.); -#28950=FACE_BOUND('',#27243,.T.); -#28951=FACE_BOUND('',#27244,.T.); -#28952=FACE_BOUND('',#27245,.T.); -#28953=FACE_BOUND('',#27246,.T.); -#28954=FACE_BOUND('',#27247,.T.); -#28955=FACE_BOUND('',#27248,.T.); -#28956=FACE_BOUND('',#27249,.T.); -#28957=FACE_BOUND('',#27250,.T.); -#28958=FACE_BOUND('',#27251,.T.); -#28959=FACE_BOUND('',#27252,.T.); -#28960=FACE_BOUND('',#27253,.T.); -#28961=FACE_BOUND('',#27254,.T.); -#28962=FACE_BOUND('',#27255,.T.); -#28963=FACE_BOUND('',#27256,.T.); -#28964=FACE_BOUND('',#27257,.T.); -#28965=FACE_BOUND('',#27258,.T.); -#28966=FACE_BOUND('',#27259,.T.); -#28967=FACE_BOUND('',#27260,.T.); -#28968=FACE_BOUND('',#27261,.T.); -#28969=FACE_BOUND('',#27262,.T.); -#28970=FACE_BOUND('',#27263,.T.); -#28971=FACE_BOUND('',#27264,.T.); -#28972=FACE_BOUND('',#27265,.T.); -#28973=FACE_BOUND('',#27266,.T.); -#28974=FACE_BOUND('',#27267,.T.); -#28975=FACE_BOUND('',#27268,.T.); -#28976=FACE_BOUND('',#27269,.T.); -#28977=FACE_BOUND('',#27270,.T.); -#28978=FACE_BOUND('',#27271,.T.); -#28979=FACE_BOUND('',#27272,.T.); -#28980=FACE_BOUND('',#27273,.T.); -#28981=FACE_BOUND('',#27274,.T.); -#28982=FACE_BOUND('',#27275,.T.); -#28983=FACE_BOUND('',#27276,.T.); -#28984=FACE_BOUND('',#27277,.T.); -#28985=FACE_BOUND('',#27278,.T.); -#28986=FACE_BOUND('',#27279,.T.); -#28987=FACE_BOUND('',#27280,.T.); -#28988=FACE_BOUND('',#27281,.T.); -#28989=FACE_BOUND('',#27282,.T.); -#28990=FACE_BOUND('',#27283,.T.); -#28991=FACE_BOUND('',#27284,.T.); -#28992=FACE_BOUND('',#27285,.T.); -#28993=FACE_BOUND('',#27286,.T.); -#28994=FACE_BOUND('',#27287,.T.); -#28995=FACE_BOUND('',#27288,.T.); -#28996=FACE_BOUND('',#27289,.T.); -#28997=FACE_BOUND('',#27290,.T.); -#28998=FACE_BOUND('',#27291,.T.); -#28999=FACE_BOUND('',#27292,.T.); -#29000=FACE_BOUND('',#27293,.T.); -#29001=FACE_BOUND('',#27294,.T.); -#29002=FACE_BOUND('',#27295,.T.); -#29003=FACE_BOUND('',#27296,.T.); -#29004=FACE_BOUND('',#27297,.T.); -#29005=FACE_BOUND('',#27298,.T.); -#29006=FACE_BOUND('',#27299,.T.); -#29007=FACE_BOUND('',#27300,.T.); -#29008=FACE_BOUND('',#27301,.T.); -#29009=FACE_BOUND('',#27302,.T.); -#29010=FACE_BOUND('',#27303,.T.); -#29011=FACE_BOUND('',#27304,.T.); -#29012=FACE_BOUND('',#27305,.T.); -#29013=FACE_BOUND('',#27306,.T.); -#29014=FACE_BOUND('',#27307,.T.); -#29015=FACE_BOUND('',#27308,.T.); -#29016=FACE_BOUND('',#27309,.T.); -#29017=FACE_BOUND('',#27310,.T.); -#29018=FACE_BOUND('',#27311,.T.); -#29019=FACE_BOUND('',#27312,.T.); -#29020=FACE_BOUND('',#27313,.T.); -#29021=FACE_BOUND('',#27314,.T.); -#29022=FACE_BOUND('',#27315,.T.); -#29023=FACE_BOUND('',#27316,.T.); -#29024=FACE_BOUND('',#27317,.T.); -#29025=FACE_BOUND('',#27318,.T.); -#29026=FACE_BOUND('',#27319,.T.); -#29027=FACE_BOUND('',#27320,.T.); -#29028=FACE_BOUND('',#27321,.T.); -#29029=FACE_BOUND('',#27322,.T.); -#29030=FACE_BOUND('',#27323,.T.); -#29031=FACE_BOUND('',#27324,.T.); -#29032=FACE_BOUND('',#27325,.T.); -#29033=FACE_BOUND('',#27326,.T.); -#29034=FACE_BOUND('',#27327,.T.); -#29035=FACE_BOUND('',#27328,.T.); -#29036=FACE_BOUND('',#27329,.T.); -#29037=FACE_BOUND('',#27330,.T.); -#29038=FACE_BOUND('',#27331,.T.); -#29039=FACE_BOUND('',#27332,.T.); -#29040=FACE_BOUND('',#27333,.T.); -#29041=FACE_BOUND('',#27334,.T.); -#29042=FACE_BOUND('',#27335,.T.); -#29043=FACE_BOUND('',#27336,.T.); -#29044=FACE_BOUND('',#27337,.T.); -#29045=FACE_BOUND('',#27338,.T.); -#29046=FACE_BOUND('',#27339,.T.); -#29047=FACE_BOUND('',#27340,.T.); -#29048=FACE_BOUND('',#27341,.T.); -#29049=FACE_BOUND('',#27342,.T.); -#29050=FACE_BOUND('',#27343,.T.); -#29051=FACE_BOUND('',#27344,.T.); -#29052=FACE_BOUND('',#27345,.T.); -#29053=FACE_BOUND('',#27346,.T.); -#29054=FACE_BOUND('',#27347,.T.); -#29055=FACE_BOUND('',#27348,.T.); -#29056=FACE_BOUND('',#27349,.T.); -#29057=FACE_BOUND('',#27350,.T.); -#29058=FACE_BOUND('',#27351,.T.); -#29059=FACE_BOUND('',#27352,.T.); -#29060=FACE_BOUND('',#27353,.T.); -#29061=FACE_BOUND('',#27354,.T.); -#29062=FACE_BOUND('',#27355,.T.); -#29063=FACE_BOUND('',#27356,.T.); -#29064=FACE_BOUND('',#27357,.T.); -#29065=FACE_BOUND('',#27358,.T.); -#29066=FACE_BOUND('',#27359,.T.); -#29067=FACE_BOUND('',#27360,.T.); -#29068=FACE_BOUND('',#27361,.T.); -#29069=FACE_BOUND('',#27362,.T.); -#29070=FACE_BOUND('',#27363,.T.); -#29071=FACE_BOUND('',#27364,.T.); -#29072=FACE_BOUND('',#27365,.T.); -#29073=FACE_BOUND('',#27366,.T.); -#29074=FACE_BOUND('',#27367,.T.); -#29075=FACE_BOUND('',#27368,.T.); -#29076=FACE_BOUND('',#27369,.T.); -#29077=FACE_BOUND('',#27370,.T.); -#29078=FACE_BOUND('',#27371,.T.); -#29079=FACE_BOUND('',#27372,.T.); -#29080=FACE_BOUND('',#27373,.T.); -#29081=FACE_BOUND('',#27374,.T.); -#29082=FACE_BOUND('',#27375,.T.); -#29083=FACE_BOUND('',#27376,.T.); -#29084=FACE_BOUND('',#27377,.T.); -#29085=FACE_BOUND('',#27378,.T.); -#29086=FACE_BOUND('',#27379,.T.); -#29087=FACE_BOUND('',#27380,.T.); -#29088=FACE_BOUND('',#27381,.T.); -#29089=FACE_BOUND('',#27382,.T.); -#29090=FACE_BOUND('',#27383,.T.); -#29091=FACE_BOUND('',#27384,.T.); -#29092=FACE_BOUND('',#27385,.T.); -#29093=FACE_BOUND('',#27386,.T.); -#29094=FACE_BOUND('',#27387,.T.); -#29095=FACE_BOUND('',#27388,.T.); -#29096=FACE_BOUND('',#27389,.T.); -#29097=FACE_BOUND('',#27390,.T.); -#29098=FACE_BOUND('',#27391,.T.); -#29099=FACE_BOUND('',#27392,.T.); -#29100=FACE_BOUND('',#27393,.T.); -#29101=FACE_BOUND('',#27394,.T.); -#29102=FACE_BOUND('',#27395,.T.); -#29103=FACE_BOUND('',#27396,.T.); -#29104=FACE_BOUND('',#27397,.T.); -#29105=FACE_BOUND('',#27398,.T.); -#29106=FACE_BOUND('',#27399,.T.); -#29107=FACE_BOUND('',#27400,.T.); -#29108=FACE_BOUND('',#27401,.T.); -#29109=FACE_BOUND('',#27402,.T.); -#29110=FACE_BOUND('',#27403,.T.); -#29111=FACE_BOUND('',#27404,.T.); -#29112=FACE_BOUND('',#27405,.T.); -#29113=FACE_BOUND('',#27406,.T.); -#29114=FACE_BOUND('',#27407,.T.); -#29115=FACE_BOUND('',#27408,.T.); -#29116=FACE_BOUND('',#27409,.T.); -#29117=FACE_BOUND('',#27410,.T.); -#29118=FACE_BOUND('',#27411,.T.); -#29119=FACE_BOUND('',#27412,.T.); -#29120=FACE_BOUND('',#27413,.T.); -#29121=FACE_BOUND('',#27414,.T.); -#29122=FACE_BOUND('',#27415,.T.); -#29123=FACE_BOUND('',#27416,.T.); -#29124=FACE_BOUND('',#27417,.T.); -#29125=FACE_BOUND('',#27418,.T.); -#29126=FACE_BOUND('',#27419,.T.); -#29127=FACE_BOUND('',#27420,.T.); -#29128=FACE_BOUND('',#27421,.T.); -#29129=FACE_BOUND('',#27422,.T.); -#29130=FACE_BOUND('',#27423,.T.); -#29131=FACE_BOUND('',#27424,.T.); -#29132=FACE_BOUND('',#27425,.T.); -#29133=FACE_BOUND('',#27426,.T.); -#29134=FACE_BOUND('',#27427,.T.); -#29135=FACE_BOUND('',#27428,.T.); -#29136=FACE_BOUND('',#27429,.T.); -#29137=FACE_BOUND('',#27430,.T.); -#29138=FACE_BOUND('',#27431,.T.); -#29139=FACE_BOUND('',#27432,.T.); -#29140=FACE_BOUND('',#27433,.T.); -#29141=FACE_BOUND('',#27434,.T.); -#29142=FACE_BOUND('',#27435,.T.); -#29143=FACE_BOUND('',#27436,.T.); -#29144=FACE_BOUND('',#27437,.T.); -#29145=FACE_BOUND('',#27438,.T.); -#29146=FACE_BOUND('',#27439,.T.); -#29147=FACE_BOUND('',#27440,.T.); -#29148=FACE_BOUND('',#27441,.T.); -#29149=FACE_BOUND('',#27442,.T.); -#29150=FACE_BOUND('',#27443,.T.); -#29151=FACE_BOUND('',#27444,.T.); -#29152=FACE_BOUND('',#27445,.T.); -#29153=FACE_BOUND('',#27446,.T.); -#29154=FACE_BOUND('',#27447,.T.); -#29155=FACE_BOUND('',#27448,.T.); -#29156=FACE_BOUND('',#27449,.T.); -#29157=FACE_BOUND('',#27450,.T.); -#29158=FACE_BOUND('',#27451,.T.); -#29159=FACE_BOUND('',#27452,.T.); -#29160=FACE_BOUND('',#27453,.T.); -#29161=FACE_BOUND('',#27454,.T.); -#29162=FACE_BOUND('',#27455,.T.); -#29163=FACE_BOUND('',#27456,.T.); -#29164=FACE_BOUND('',#27457,.T.); -#29165=FACE_BOUND('',#27458,.T.); -#29166=FACE_BOUND('',#27459,.T.); -#29167=FACE_BOUND('',#27460,.T.); -#29168=FACE_BOUND('',#27461,.T.); -#29169=FACE_BOUND('',#27462,.T.); -#29170=FACE_BOUND('',#27463,.T.); -#29171=FACE_BOUND('',#27464,.T.); -#29172=FACE_BOUND('',#27465,.T.); -#29173=FACE_BOUND('',#27466,.T.); -#29174=FACE_BOUND('',#27467,.T.); -#29175=FACE_BOUND('',#27468,.T.); -#29176=FACE_BOUND('',#27469,.T.); -#29177=FACE_BOUND('',#27470,.T.); -#29178=FACE_BOUND('',#27471,.T.); -#29179=FACE_BOUND('',#27472,.T.); -#29180=FACE_BOUND('',#27473,.T.); -#29181=FACE_BOUND('',#27474,.T.); -#29182=FACE_BOUND('',#27475,.T.); -#29183=FACE_BOUND('',#27476,.T.); -#29184=FACE_BOUND('',#27477,.T.); -#29185=FACE_BOUND('',#27478,.T.); -#29186=FACE_BOUND('',#27479,.T.); -#29187=FACE_BOUND('',#27480,.T.); -#29188=FACE_BOUND('',#27481,.T.); -#29189=FACE_BOUND('',#27482,.T.); -#29190=FACE_BOUND('',#27483,.T.); -#29191=FACE_BOUND('',#27484,.T.); -#29192=FACE_BOUND('',#27485,.T.); -#29193=FACE_BOUND('',#27486,.T.); -#29194=FACE_BOUND('',#27487,.T.); -#29195=FACE_BOUND('',#27488,.T.); -#29196=FACE_BOUND('',#27489,.T.); -#29197=FACE_BOUND('',#27490,.T.); -#29198=FACE_BOUND('',#27491,.T.); -#29199=FACE_BOUND('',#27492,.T.); -#29200=FACE_BOUND('',#27493,.T.); -#29201=FACE_BOUND('',#27494,.T.); -#29202=FACE_BOUND('',#27495,.T.); -#29203=FACE_BOUND('',#27496,.T.); -#29204=FACE_BOUND('',#27497,.T.); -#29205=FACE_BOUND('',#27498,.T.); -#29206=FACE_BOUND('',#27499,.T.); -#29207=FACE_BOUND('',#27500,.T.); -#29208=FACE_BOUND('',#27501,.T.); -#29209=FACE_BOUND('',#27502,.T.); -#29210=FACE_BOUND('',#27503,.T.); -#29211=FACE_BOUND('',#27504,.T.); -#29212=FACE_BOUND('',#27505,.T.); -#29213=FACE_BOUND('',#27506,.T.); -#29214=FACE_BOUND('',#27507,.T.); -#29215=FACE_BOUND('',#27508,.T.); -#29216=FACE_BOUND('',#27509,.T.); -#29217=FACE_BOUND('',#27510,.T.); -#29218=FACE_BOUND('',#27511,.T.); -#29219=FACE_BOUND('',#27512,.T.); -#29220=FACE_BOUND('',#27513,.T.); -#29221=FACE_BOUND('',#27514,.T.); -#29222=FACE_BOUND('',#27515,.T.); -#29223=FACE_BOUND('',#27516,.T.); -#29224=FACE_BOUND('',#27517,.T.); -#29225=FACE_BOUND('',#27518,.T.); -#29226=FACE_BOUND('',#27519,.T.); -#29227=FACE_BOUND('',#27520,.T.); -#29228=FACE_BOUND('',#27521,.T.); -#29229=FACE_BOUND('',#27522,.T.); -#29230=FACE_BOUND('',#27523,.T.); -#29231=FACE_BOUND('',#27524,.T.); -#29232=FACE_BOUND('',#27525,.T.); -#29233=FACE_BOUND('',#27526,.T.); -#29234=FACE_BOUND('',#27527,.T.); -#29235=FACE_BOUND('',#27528,.T.); -#29236=FACE_BOUND('',#27529,.T.); -#29237=FACE_BOUND('',#27530,.T.); -#29238=FACE_BOUND('',#27531,.T.); -#29239=FACE_BOUND('',#27532,.T.); -#29240=FACE_BOUND('',#27533,.T.); -#29241=FACE_BOUND('',#27534,.T.); -#29242=FACE_BOUND('',#27535,.T.); -#29243=FACE_BOUND('',#27536,.T.); -#29244=FACE_BOUND('',#27537,.T.); -#29245=FACE_BOUND('',#27538,.T.); -#29246=FACE_BOUND('',#27539,.T.); -#29247=FACE_BOUND('',#27540,.T.); -#29248=FACE_BOUND('',#27541,.T.); -#29249=FACE_BOUND('',#27542,.T.); -#29250=FACE_BOUND('',#27543,.T.); -#29251=FACE_BOUND('',#27544,.T.); -#29252=FACE_BOUND('',#27545,.T.); -#29253=FACE_BOUND('',#27546,.T.); -#29254=FACE_BOUND('',#27547,.T.); -#29255=FACE_BOUND('',#27548,.T.); -#29256=FACE_BOUND('',#27549,.T.); -#29257=FACE_BOUND('',#27550,.T.); -#29258=FACE_BOUND('',#27551,.T.); -#29259=FACE_BOUND('',#27552,.T.); -#29260=FACE_BOUND('',#27553,.T.); -#29261=FACE_BOUND('',#27554,.T.); -#29262=FACE_BOUND('',#27555,.T.); -#29263=FACE_BOUND('',#27556,.T.); -#29264=FACE_BOUND('',#27557,.T.); -#29265=FACE_BOUND('',#27558,.T.); -#29266=FACE_BOUND('',#27559,.T.); -#29267=FACE_BOUND('',#27560,.T.); -#29268=FACE_BOUND('',#27561,.T.); -#29269=FACE_BOUND('',#27562,.T.); -#29270=FACE_BOUND('',#27563,.T.); -#29271=FACE_BOUND('',#27564,.T.); -#29272=FACE_BOUND('',#27565,.T.); -#29273=FACE_BOUND('',#27566,.T.); -#29274=FACE_BOUND('',#27567,.T.); -#29275=FACE_BOUND('',#27568,.T.); -#29276=FACE_BOUND('',#27569,.T.); -#29277=FACE_BOUND('',#27570,.T.); -#29278=FACE_BOUND('',#27571,.T.); -#29279=FACE_BOUND('',#27572,.T.); -#29280=FACE_BOUND('',#27573,.T.); -#29281=FACE_BOUND('',#27574,.T.); -#29282=FACE_BOUND('',#27575,.T.); -#29283=FACE_BOUND('',#27576,.T.); -#29284=FACE_BOUND('',#27577,.T.); -#29285=FACE_BOUND('',#27578,.T.); -#29286=FACE_BOUND('',#27579,.T.); -#29287=FACE_BOUND('',#27580,.T.); -#29288=FACE_BOUND('',#27581,.T.); -#29289=FACE_BOUND('',#27582,.T.); -#29290=FACE_BOUND('',#27583,.T.); -#29291=FACE_BOUND('',#27584,.T.); -#29292=FACE_BOUND('',#27585,.T.); -#29293=FACE_BOUND('',#27586,.T.); -#29294=FACE_BOUND('',#27587,.T.); -#29295=FACE_BOUND('',#27588,.T.); -#29296=FACE_BOUND('',#27589,.T.); -#29297=FACE_BOUND('',#27590,.T.); -#29298=FACE_BOUND('',#27591,.T.); -#29299=FACE_BOUND('',#27592,.T.); -#29300=FACE_BOUND('',#27593,.T.); -#29301=FACE_BOUND('',#27594,.T.); -#29302=FACE_BOUND('',#27595,.T.); -#29303=FACE_BOUND('',#27596,.T.); -#29304=FACE_BOUND('',#27597,.T.); -#29305=FACE_BOUND('',#27598,.T.); -#29306=FACE_BOUND('',#27599,.T.); -#29307=FACE_BOUND('',#27600,.T.); -#29308=FACE_BOUND('',#27601,.T.); -#29309=FACE_BOUND('',#27602,.T.); -#29310=FACE_BOUND('',#27603,.T.); -#29311=FACE_BOUND('',#27604,.T.); -#29312=FACE_BOUND('',#27605,.T.); -#29313=FACE_BOUND('',#27606,.T.); -#29314=FACE_BOUND('',#27607,.T.); -#29315=FACE_BOUND('',#27608,.T.); -#29316=FACE_BOUND('',#27609,.T.); -#29317=FACE_BOUND('',#27610,.T.); -#29318=FACE_BOUND('',#27611,.T.); -#29319=FACE_BOUND('',#27612,.T.); -#29320=FACE_BOUND('',#27613,.T.); -#29321=FACE_BOUND('',#27614,.T.); -#29322=FACE_BOUND('',#27615,.T.); -#29323=FACE_BOUND('',#27616,.T.); -#29324=FACE_BOUND('',#27617,.T.); -#29325=FACE_BOUND('',#27618,.T.); -#29326=FACE_BOUND('',#27619,.T.); -#29327=FACE_BOUND('',#27620,.T.); -#29328=FACE_BOUND('',#27621,.T.); -#29329=FACE_BOUND('',#27622,.T.); -#29330=FACE_BOUND('',#27623,.T.); -#29331=FACE_BOUND('',#27624,.T.); -#29332=FACE_BOUND('',#27625,.T.); -#29333=FACE_BOUND('',#27626,.T.); -#29334=FACE_BOUND('',#27627,.T.); -#29335=FACE_BOUND('',#27628,.T.); -#29336=FACE_BOUND('',#27629,.T.); -#29337=FACE_BOUND('',#27630,.T.); -#29338=FACE_BOUND('',#27631,.T.); -#29339=FACE_BOUND('',#27632,.T.); -#29340=FACE_BOUND('',#27633,.T.); -#29341=FACE_BOUND('',#27634,.T.); -#29342=FACE_BOUND('',#27635,.T.); -#29343=FACE_BOUND('',#27636,.T.); -#29344=FACE_BOUND('',#27637,.T.); -#29345=FACE_BOUND('',#27638,.T.); -#29346=FACE_BOUND('',#27639,.T.); -#29347=FACE_BOUND('',#27640,.T.); -#29348=FACE_BOUND('',#27641,.T.); -#29349=FACE_BOUND('',#27642,.T.); -#29350=FACE_BOUND('',#27643,.T.); -#29351=FACE_BOUND('',#27644,.T.); -#29352=FACE_BOUND('',#27645,.T.); -#29353=FACE_BOUND('',#27646,.T.); -#29354=FACE_BOUND('',#27647,.T.); -#29355=FACE_BOUND('',#27648,.T.); -#29356=FACE_BOUND('',#27649,.T.); -#29357=FACE_BOUND('',#27650,.T.); -#29358=FACE_BOUND('',#27651,.T.); -#29359=FACE_BOUND('',#27652,.T.); -#29360=FACE_BOUND('',#27653,.T.); -#29361=FACE_BOUND('',#27654,.T.); -#29362=FACE_BOUND('',#27655,.T.); -#29363=FACE_BOUND('',#27656,.T.); -#29364=FACE_BOUND('',#27657,.T.); -#29365=FACE_BOUND('',#27658,.T.); -#29366=FACE_BOUND('',#27659,.T.); -#29367=FACE_BOUND('',#27660,.T.); -#29368=FACE_BOUND('',#27661,.T.); -#29369=FACE_BOUND('',#27662,.T.); -#29370=FACE_BOUND('',#27663,.T.); -#29371=FACE_BOUND('',#27664,.T.); -#29372=FACE_BOUND('',#27665,.T.); -#29373=FACE_BOUND('',#27666,.T.); -#29374=FACE_BOUND('',#27667,.T.); -#29375=FACE_BOUND('',#27668,.T.); -#29376=FACE_BOUND('',#27669,.T.); -#29377=FACE_BOUND('',#27670,.T.); -#29378=FACE_BOUND('',#27671,.T.); -#29379=FACE_BOUND('',#27672,.T.); -#29380=FACE_BOUND('',#27673,.T.); -#29381=FACE_BOUND('',#27674,.T.); -#29382=FACE_BOUND('',#27675,.T.); -#29383=FACE_BOUND('',#27676,.T.); -#29384=FACE_BOUND('',#27677,.T.); -#29385=FACE_BOUND('',#27678,.T.); -#29386=FACE_BOUND('',#27679,.T.); -#29387=FACE_BOUND('',#27680,.T.); -#29388=FACE_BOUND('',#27681,.T.); -#29389=FACE_BOUND('',#27682,.T.); -#29390=FACE_BOUND('',#27683,.T.); -#29391=FACE_BOUND('',#27684,.T.); -#29392=FACE_BOUND('',#27685,.T.); -#29393=FACE_BOUND('',#27686,.T.); -#29394=FACE_BOUND('',#27687,.T.); -#29395=FACE_BOUND('',#27688,.T.); -#29396=FACE_BOUND('',#27689,.T.); -#29397=FACE_BOUND('',#27690,.T.); -#29398=FACE_BOUND('',#27691,.T.); -#29399=FACE_BOUND('',#27692,.T.); -#29400=FACE_BOUND('',#27693,.T.); -#29401=FACE_BOUND('',#27694,.T.); -#29402=FACE_BOUND('',#27695,.T.); -#29403=FACE_BOUND('',#27696,.T.); -#29404=FACE_BOUND('',#27697,.T.); -#29405=FACE_BOUND('',#27698,.T.); -#29406=FACE_BOUND('',#27699,.T.); -#29407=FACE_BOUND('',#27700,.T.); -#29408=FACE_BOUND('',#27701,.T.); -#29409=FACE_BOUND('',#27702,.T.); -#29410=FACE_BOUND('',#27703,.T.); -#29411=FACE_BOUND('',#27704,.T.); -#29412=FACE_BOUND('',#27705,.T.); -#29413=FACE_BOUND('',#27706,.T.); -#29414=FACE_BOUND('',#27707,.T.); -#29415=FACE_BOUND('',#27708,.T.); -#29416=FACE_BOUND('',#27709,.T.); -#29417=FACE_BOUND('',#27710,.T.); -#29418=FACE_BOUND('',#27711,.T.); -#29419=FACE_BOUND('',#27712,.T.); -#29420=FACE_BOUND('',#27713,.T.); -#29421=FACE_BOUND('',#27714,.T.); -#29422=FACE_BOUND('',#27715,.T.); -#29423=FACE_BOUND('',#27716,.T.); -#29424=FACE_BOUND('',#27717,.T.); -#29425=FACE_BOUND('',#27718,.T.); -#29426=FACE_BOUND('',#27719,.T.); -#29427=FACE_BOUND('',#27720,.T.); -#29428=FACE_BOUND('',#27721,.T.); -#29429=FACE_BOUND('',#27722,.T.); -#29430=FACE_BOUND('',#27723,.T.); -#29431=FACE_BOUND('',#27724,.T.); -#29432=FACE_BOUND('',#27725,.T.); -#29433=FACE_BOUND('',#27726,.T.); -#29434=FACE_BOUND('',#27727,.T.); -#29435=FACE_BOUND('',#27728,.T.); -#29436=FACE_BOUND('',#27729,.T.); -#29437=FACE_BOUND('',#27730,.T.); -#29438=FACE_BOUND('',#27731,.T.); -#29439=FACE_BOUND('',#27732,.T.); -#29440=FACE_BOUND('',#27733,.T.); -#29441=FACE_BOUND('',#27734,.T.); -#29442=FACE_BOUND('',#27735,.T.); -#29443=FACE_BOUND('',#27736,.T.); -#29444=FACE_BOUND('',#27737,.T.); -#29445=FACE_BOUND('',#27738,.T.); -#29446=FACE_BOUND('',#27739,.T.); -#29447=FACE_BOUND('',#27740,.T.); -#29448=FACE_BOUND('',#27741,.T.); -#29449=FACE_BOUND('',#27742,.T.); -#29450=FACE_BOUND('',#27743,.T.); -#29451=FACE_BOUND('',#27744,.T.); -#29452=FACE_BOUND('',#27745,.T.); -#29453=FACE_BOUND('',#27746,.T.); -#29454=FACE_BOUND('',#27747,.T.); -#29455=FACE_BOUND('',#27748,.T.); -#29456=FACE_BOUND('',#27749,.T.); -#29457=FACE_BOUND('',#27750,.T.); -#29458=FACE_BOUND('',#27751,.T.); -#29459=FACE_BOUND('',#27752,.T.); -#29460=FACE_BOUND('',#27753,.T.); -#29461=FACE_BOUND('',#27754,.T.); -#29462=FACE_BOUND('',#27755,.T.); -#29463=FACE_BOUND('',#27756,.T.); -#29464=FACE_BOUND('',#27757,.T.); -#29465=FACE_BOUND('',#27758,.T.); -#29466=FACE_BOUND('',#27759,.T.); -#29467=FACE_BOUND('',#27760,.T.); -#29468=FACE_BOUND('',#27761,.T.); -#29469=FACE_BOUND('',#27762,.T.); -#29470=FACE_BOUND('',#27763,.T.); -#29471=FACE_BOUND('',#27764,.T.); -#29472=FACE_BOUND('',#27765,.T.); -#29473=FACE_BOUND('',#27766,.T.); -#29474=FACE_BOUND('',#27767,.T.); -#29475=FACE_BOUND('',#27768,.T.); -#29476=FACE_BOUND('',#27769,.T.); -#29477=FACE_BOUND('',#27770,.T.); -#29478=FACE_BOUND('',#27771,.T.); -#29479=FACE_BOUND('',#27772,.T.); -#29480=FACE_BOUND('',#27773,.T.); -#29481=FACE_BOUND('',#27774,.T.); -#29482=FACE_BOUND('',#27775,.T.); -#29483=FACE_BOUND('',#27776,.T.); -#29484=FACE_BOUND('',#27777,.T.); -#29485=FACE_BOUND('',#27778,.T.); -#29486=FACE_BOUND('',#27779,.T.); -#29487=FACE_BOUND('',#27780,.T.); -#29488=FACE_BOUND('',#27781,.T.); -#29489=FACE_BOUND('',#27782,.T.); -#29490=FACE_BOUND('',#27783,.T.); -#29491=FACE_BOUND('',#27784,.T.); -#29492=FACE_BOUND('',#27785,.T.); -#29493=FACE_BOUND('',#27786,.T.); -#29494=FACE_BOUND('',#27787,.T.); -#29495=FACE_BOUND('',#27788,.T.); -#29496=FACE_BOUND('',#27789,.T.); -#29497=FACE_BOUND('',#27790,.T.); -#29498=FACE_BOUND('',#27791,.T.); -#29499=FACE_BOUND('',#27792,.T.); -#29500=FACE_BOUND('',#27793,.T.); -#29501=FACE_BOUND('',#27794,.T.); -#29502=FACE_BOUND('',#27795,.T.); -#29503=FACE_BOUND('',#27796,.T.); -#29504=FACE_BOUND('',#27797,.T.); -#29505=FACE_BOUND('',#27798,.T.); -#29506=FACE_BOUND('',#27799,.T.); -#29507=FACE_BOUND('',#27800,.T.); -#29508=FACE_BOUND('',#27801,.T.); -#29509=FACE_BOUND('',#27802,.T.); -#29510=FACE_BOUND('',#27803,.T.); -#29511=FACE_BOUND('',#27804,.T.); -#29512=FACE_BOUND('',#27805,.T.); -#29513=FACE_BOUND('',#27806,.T.); -#29514=FACE_BOUND('',#27807,.T.); -#29515=FACE_BOUND('',#27808,.T.); -#29516=FACE_BOUND('',#27809,.T.); -#29517=FACE_BOUND('',#27810,.T.); -#29518=FACE_BOUND('',#27811,.T.); -#29519=FACE_BOUND('',#27812,.T.); -#29520=FACE_BOUND('',#27813,.T.); -#29521=FACE_BOUND('',#27814,.T.); -#29522=FACE_BOUND('',#27815,.T.); -#29523=FACE_BOUND('',#27816,.T.); -#29524=FACE_BOUND('',#27817,.T.); -#29525=FACE_BOUND('',#27818,.T.); -#29526=FACE_BOUND('',#27819,.T.); -#29527=FACE_BOUND('',#27820,.T.); -#29528=FACE_BOUND('',#27821,.T.); -#29529=FACE_BOUND('',#27822,.T.); -#29530=FACE_BOUND('',#27823,.T.); -#29531=FACE_BOUND('',#27824,.T.); -#29532=FACE_BOUND('',#27825,.T.); -#29533=FACE_BOUND('',#27826,.T.); -#29534=FACE_BOUND('',#27827,.T.); -#29535=FACE_BOUND('',#27828,.T.); -#29536=FACE_BOUND('',#27829,.T.); -#29537=FACE_BOUND('',#27830,.T.); -#29538=FACE_BOUND('',#27831,.T.); -#29539=FACE_BOUND('',#27832,.T.); -#29540=FACE_BOUND('',#27833,.T.); -#29541=FACE_BOUND('',#27834,.T.); -#29542=FACE_BOUND('',#27835,.T.); -#29543=FACE_BOUND('',#27836,.T.); -#29544=FACE_BOUND('',#27837,.T.); -#29545=FACE_BOUND('',#27838,.T.); -#29546=FACE_BOUND('',#27839,.T.); -#29547=FACE_BOUND('',#27840,.T.); -#29548=FACE_BOUND('',#27841,.T.); -#29549=FACE_BOUND('',#27842,.T.); -#29550=FACE_BOUND('',#27843,.T.); -#29551=FACE_BOUND('',#27844,.T.); -#29552=FACE_BOUND('',#27845,.T.); -#29553=FACE_BOUND('',#27846,.T.); -#29554=FACE_BOUND('',#27847,.T.); -#29555=FACE_BOUND('',#27848,.T.); -#29556=FACE_BOUND('',#27849,.T.); -#29557=FACE_BOUND('',#27850,.T.); -#29558=FACE_BOUND('',#27851,.T.); -#29559=FACE_BOUND('',#27852,.T.); -#29560=FACE_BOUND('',#27853,.T.); -#29561=FACE_BOUND('',#27854,.T.); -#29562=FACE_BOUND('',#27855,.T.); -#29563=FACE_BOUND('',#27856,.T.); -#29564=FACE_BOUND('',#27857,.T.); -#29565=FACE_BOUND('',#27858,.T.); -#29566=FACE_BOUND('',#27859,.T.); -#29567=FACE_BOUND('',#27860,.T.); -#29568=FACE_BOUND('',#27861,.T.); -#29569=FACE_BOUND('',#27862,.T.); -#29570=FACE_BOUND('',#27863,.T.); -#29571=FACE_BOUND('',#27864,.T.); -#29572=FACE_BOUND('',#27865,.T.); -#29573=FACE_BOUND('',#27866,.T.); -#29574=FACE_BOUND('',#27867,.T.); -#29575=FACE_BOUND('',#27868,.T.); -#29576=FACE_BOUND('',#27869,.T.); -#29577=FACE_BOUND('',#27870,.T.); -#29578=FACE_BOUND('',#27871,.T.); -#29579=FACE_BOUND('',#27872,.T.); -#29580=FACE_BOUND('',#27873,.T.); -#29581=FACE_BOUND('',#27874,.T.); -#29582=FACE_BOUND('',#27875,.T.); -#29583=FACE_BOUND('',#27876,.T.); -#29584=FACE_BOUND('',#27877,.T.); -#29585=FACE_BOUND('',#27878,.T.); -#29586=FACE_BOUND('',#27879,.T.); -#29587=FACE_BOUND('',#27880,.T.); -#29588=FACE_BOUND('',#27881,.T.); -#29589=FACE_BOUND('',#27882,.T.); -#29590=FACE_BOUND('',#27883,.T.); -#29591=FACE_BOUND('',#27884,.T.); -#29592=FACE_BOUND('',#27885,.T.); -#29593=FACE_BOUND('',#27886,.T.); -#29594=FACE_BOUND('',#27887,.T.); -#29595=FACE_BOUND('',#27888,.T.); -#29596=FACE_BOUND('',#27889,.T.); -#29597=FACE_BOUND('',#27890,.T.); -#29598=FACE_BOUND('',#27891,.T.); -#29599=FACE_BOUND('',#27892,.T.); -#29600=FACE_BOUND('',#27893,.T.); -#29601=FACE_BOUND('',#27894,.T.); -#29602=FACE_BOUND('',#27895,.T.); -#29603=FACE_BOUND('',#27896,.T.); -#29604=FACE_BOUND('',#27897,.T.); -#29605=FACE_BOUND('',#27898,.T.); -#29606=FACE_BOUND('',#27899,.T.); -#29607=FACE_BOUND('',#27900,.T.); -#29608=FACE_BOUND('',#27901,.T.); -#29609=FACE_BOUND('',#27902,.T.); -#29610=FACE_BOUND('',#27903,.T.); -#29611=FACE_BOUND('',#27904,.T.); -#29612=FACE_BOUND('',#27905,.T.); -#29613=FACE_BOUND('',#27906,.T.); -#29614=FACE_BOUND('',#27907,.T.); -#29615=FACE_BOUND('',#27908,.T.); -#29616=FACE_BOUND('',#27909,.T.); -#29617=FACE_BOUND('',#27910,.T.); -#29618=FACE_BOUND('',#27911,.T.); -#29619=FACE_BOUND('',#27912,.T.); -#29620=FACE_BOUND('',#27913,.T.); -#29621=FACE_BOUND('',#27914,.T.); -#29622=FACE_BOUND('',#27915,.T.); -#29623=FACE_BOUND('',#27916,.T.); -#29624=FACE_BOUND('',#27917,.T.); -#29625=FACE_BOUND('',#27918,.T.); -#29626=FACE_BOUND('',#27919,.T.); -#29627=FACE_BOUND('',#27920,.T.); -#29628=FACE_BOUND('',#27921,.T.); -#29629=FACE_BOUND('',#27922,.T.); -#29630=FACE_BOUND('',#27923,.T.); -#29631=FACE_BOUND('',#27924,.T.); -#29632=FACE_BOUND('',#27925,.T.); -#29633=FACE_BOUND('',#27926,.T.); -#29634=FACE_BOUND('',#27927,.T.); -#29635=FACE_BOUND('',#27928,.T.); -#29636=FACE_BOUND('',#27929,.T.); -#29637=FACE_BOUND('',#27930,.T.); -#29638=FACE_BOUND('',#27931,.T.); -#29639=FACE_BOUND('',#27932,.T.); -#29640=FACE_BOUND('',#27933,.T.); -#29641=FACE_BOUND('',#27934,.T.); -#29642=FACE_BOUND('',#27935,.T.); -#29643=FACE_BOUND('',#27936,.T.); -#29644=FACE_BOUND('',#27937,.T.); -#29645=FACE_BOUND('',#27938,.T.); -#29646=FACE_BOUND('',#27939,.T.); -#29647=FACE_BOUND('',#27940,.T.); -#29648=FACE_BOUND('',#27941,.T.); -#29649=FACE_BOUND('',#27942,.T.); -#29650=FACE_BOUND('',#27943,.T.); -#29651=FACE_BOUND('',#27944,.T.); -#29652=FACE_BOUND('',#27945,.T.); -#29653=FACE_BOUND('',#27946,.T.); -#29654=FACE_BOUND('',#27947,.T.); -#29655=FACE_BOUND('',#27948,.T.); -#29656=FACE_BOUND('',#27949,.T.); -#29657=FACE_BOUND('',#27950,.T.); -#29658=FACE_BOUND('',#27951,.T.); -#29659=FACE_BOUND('',#27952,.T.); -#29660=FACE_BOUND('',#27953,.T.); -#29661=FACE_BOUND('',#27954,.T.); -#29662=FACE_BOUND('',#27955,.T.); -#29663=FACE_BOUND('',#27956,.T.); -#29664=FACE_BOUND('',#27957,.T.); -#29665=FACE_BOUND('',#27958,.T.); -#29666=FACE_BOUND('',#27959,.T.); -#29667=FACE_BOUND('',#27960,.T.); -#29668=FACE_BOUND('',#27961,.T.); -#29669=FACE_BOUND('',#27962,.T.); -#29670=FACE_BOUND('',#27963,.T.); -#29671=FACE_BOUND('',#27964,.T.); -#29672=FACE_BOUND('',#27965,.T.); -#29673=FACE_BOUND('',#27966,.T.); -#29674=FACE_BOUND('',#27967,.T.); -#29675=FACE_BOUND('',#27968,.T.); -#29676=FACE_BOUND('',#27969,.T.); -#29677=FACE_BOUND('',#27970,.T.); -#29678=FACE_BOUND('',#27971,.T.); -#29679=FACE_BOUND('',#27972,.T.); -#29680=FACE_BOUND('',#27973,.T.); -#29681=FACE_BOUND('',#27974,.T.); -#29682=FACE_BOUND('',#27975,.T.); -#29683=FACE_BOUND('',#27976,.T.); -#29684=FACE_BOUND('',#27977,.T.); -#29685=FACE_BOUND('',#27978,.T.); -#29686=FACE_BOUND('',#27979,.T.); -#29687=FACE_BOUND('',#27980,.T.); -#29688=FACE_BOUND('',#27981,.T.); -#29689=FACE_BOUND('',#27982,.T.); -#29690=FACE_BOUND('',#27983,.T.); -#29691=FACE_BOUND('',#27984,.T.); -#29692=FACE_BOUND('',#27985,.T.); -#29693=FACE_BOUND('',#27986,.T.); -#29694=FACE_BOUND('',#27987,.T.); -#29695=FACE_BOUND('',#27988,.T.); -#29696=FACE_BOUND('',#27989,.T.); -#29697=FACE_BOUND('',#27990,.T.); -#29698=FACE_BOUND('',#27991,.T.); -#29699=FACE_BOUND('',#27992,.T.); -#29700=FACE_BOUND('',#27993,.T.); -#29701=FACE_BOUND('',#27994,.T.); -#29702=FACE_BOUND('',#27995,.T.); -#29703=FACE_BOUND('',#27996,.T.); -#29704=FACE_BOUND('',#27997,.T.); -#29705=FACE_BOUND('',#27998,.T.); -#29706=FACE_BOUND('',#27999,.T.); -#29707=FACE_BOUND('',#28000,.T.); -#29708=FACE_BOUND('',#28001,.T.); -#29709=FACE_BOUND('',#28002,.T.); -#29710=FACE_BOUND('',#28003,.T.); -#29711=FACE_BOUND('',#28004,.T.); -#29712=FACE_BOUND('',#28005,.T.); -#29713=FACE_BOUND('',#28006,.T.); -#29714=FACE_BOUND('',#28007,.T.); -#29715=FACE_BOUND('',#28008,.T.); -#29716=FACE_BOUND('',#28009,.T.); -#29717=FACE_BOUND('',#28010,.T.); -#29718=FACE_BOUND('',#28011,.T.); -#29719=FACE_BOUND('',#28012,.T.); -#29720=FACE_BOUND('',#28013,.T.); -#29721=FACE_BOUND('',#28014,.T.); -#29722=FACE_BOUND('',#28015,.T.); -#29723=FACE_BOUND('',#28016,.T.); -#29724=FACE_BOUND('',#28017,.T.); -#29725=FACE_BOUND('',#28018,.T.); -#29726=FACE_BOUND('',#28019,.T.); -#29727=FACE_BOUND('',#28020,.T.); -#29728=FACE_BOUND('',#28021,.T.); -#29729=FACE_BOUND('',#28022,.T.); -#29730=FACE_BOUND('',#28023,.T.); -#29731=FACE_BOUND('',#28024,.T.); -#29732=FACE_BOUND('',#28025,.T.); -#29733=FACE_BOUND('',#28026,.T.); -#29734=FACE_BOUND('',#28027,.T.); -#29735=FACE_BOUND('',#28028,.T.); -#29736=FACE_BOUND('',#28029,.T.); -#29737=FACE_BOUND('',#28030,.T.); -#29738=FACE_BOUND('',#28031,.T.); -#29739=FACE_BOUND('',#28032,.T.); -#29740=FACE_BOUND('',#28033,.T.); -#29741=FACE_BOUND('',#28034,.T.); -#29742=FACE_BOUND('',#28035,.T.); -#29743=FACE_BOUND('',#28036,.T.); -#29744=FACE_BOUND('',#28037,.T.); -#29745=FACE_BOUND('',#28038,.T.); -#29746=FACE_BOUND('',#28039,.T.); -#29747=FACE_BOUND('',#28040,.T.); -#29748=FACE_BOUND('',#28041,.T.); -#29749=FACE_BOUND('',#28042,.T.); -#29750=FACE_BOUND('',#28043,.T.); -#29751=FACE_BOUND('',#28044,.T.); -#29752=FACE_BOUND('',#28045,.T.); -#29753=FACE_BOUND('',#28046,.T.); -#29754=FACE_BOUND('',#28047,.T.); -#29755=FACE_BOUND('',#28048,.T.); -#29756=FACE_BOUND('',#28049,.T.); -#29757=FACE_BOUND('',#28050,.T.); -#29758=FACE_BOUND('',#28051,.T.); -#29759=FACE_BOUND('',#28052,.T.); -#29760=FACE_BOUND('',#28053,.T.); -#29761=FACE_BOUND('',#28054,.T.); -#29762=FACE_BOUND('',#28055,.T.); -#29763=FACE_BOUND('',#28056,.T.); -#29764=FACE_BOUND('',#28057,.T.); -#29765=FACE_BOUND('',#28058,.T.); -#29766=FACE_BOUND('',#28059,.T.); -#29767=FACE_BOUND('',#28060,.T.); -#29768=FACE_BOUND('',#28061,.T.); -#29769=FACE_BOUND('',#28062,.T.); -#29770=FACE_BOUND('',#28063,.T.); -#29771=FACE_BOUND('',#28064,.T.); -#29772=FACE_BOUND('',#28065,.T.); -#29773=FACE_BOUND('',#28066,.T.); -#29774=FACE_BOUND('',#28067,.T.); -#29775=FACE_BOUND('',#28068,.T.); -#29776=FACE_BOUND('',#28069,.T.); -#29777=FACE_BOUND('',#28070,.T.); -#29778=FACE_BOUND('',#28071,.T.); -#29779=FACE_BOUND('',#28072,.T.); -#29780=FACE_BOUND('',#28073,.T.); -#29781=FACE_BOUND('',#28074,.T.); -#29782=FACE_BOUND('',#28075,.T.); -#29783=FACE_BOUND('',#28076,.T.); -#29784=FACE_BOUND('',#28077,.T.); -#29785=FACE_BOUND('',#28078,.T.); -#29786=FACE_BOUND('',#28079,.T.); -#29787=FACE_BOUND('',#28080,.T.); -#29788=FACE_BOUND('',#28081,.T.); -#29789=FACE_BOUND('',#28082,.T.); -#29790=FACE_BOUND('',#28083,.T.); -#29791=FACE_BOUND('',#28084,.T.); -#29792=FACE_BOUND('',#28085,.T.); -#29793=FACE_BOUND('',#28086,.T.); -#29794=FACE_BOUND('',#28087,.T.); -#29795=FACE_BOUND('',#28088,.T.); -#29796=FACE_BOUND('',#28089,.T.); -#29797=FACE_BOUND('',#28090,.T.); -#29798=FACE_BOUND('',#28091,.T.); -#29799=FACE_BOUND('',#28092,.T.); -#29800=FACE_BOUND('',#28093,.T.); -#29801=FACE_BOUND('',#28094,.T.); -#29802=FACE_BOUND('',#28095,.T.); -#29803=FACE_BOUND('',#28096,.T.); -#29804=FACE_BOUND('',#28097,.T.); -#29805=FACE_BOUND('',#28098,.T.); -#29806=FACE_BOUND('',#28099,.T.); -#29807=FACE_BOUND('',#28100,.T.); -#29808=FACE_BOUND('',#28101,.T.); -#29809=FACE_BOUND('',#28102,.T.); -#29810=FACE_BOUND('',#28103,.T.); -#29811=FACE_BOUND('',#28104,.T.); -#29812=FACE_BOUND('',#28105,.T.); -#29813=FACE_BOUND('',#28106,.T.); -#29814=FACE_BOUND('',#28107,.T.); -#29815=FACE_BOUND('',#28108,.T.); -#29816=FACE_BOUND('',#28109,.T.); -#29817=FACE_BOUND('',#28110,.T.); -#29818=FACE_BOUND('',#28111,.T.); -#29819=FACE_BOUND('',#28112,.T.); -#29820=FACE_BOUND('',#28113,.T.); -#29821=FACE_BOUND('',#28114,.T.); -#29822=FACE_BOUND('',#28115,.T.); -#29823=FACE_BOUND('',#28116,.T.); -#29824=FACE_BOUND('',#28117,.T.); -#29825=FACE_BOUND('',#28118,.T.); -#29826=FACE_BOUND('',#28119,.T.); -#29827=FACE_BOUND('',#28120,.T.); -#29828=FACE_BOUND('',#28121,.T.); -#29829=FACE_BOUND('',#28122,.T.); -#29830=FACE_BOUND('',#28123,.T.); -#29831=FACE_BOUND('',#28124,.T.); -#29832=FACE_BOUND('',#28125,.T.); -#29833=FACE_BOUND('',#28126,.T.); -#29834=FACE_BOUND('',#28127,.T.); -#29835=FACE_BOUND('',#28128,.T.); -#29836=FACE_BOUND('',#28129,.T.); -#29837=FACE_BOUND('',#28130,.T.); -#29838=FACE_BOUND('',#28131,.T.); -#29839=FACE_BOUND('',#28132,.T.); -#29840=FACE_BOUND('',#28133,.T.); -#29841=FACE_BOUND('',#28134,.T.); -#29842=FACE_BOUND('',#28135,.T.); -#29843=FACE_BOUND('',#28136,.T.); -#29844=FACE_BOUND('',#28137,.T.); -#29845=FACE_BOUND('',#28138,.T.); -#29846=FACE_BOUND('',#28139,.T.); -#29847=FACE_BOUND('',#28140,.T.); -#29848=FACE_BOUND('',#28141,.T.); -#29849=FACE_BOUND('',#28142,.T.); -#29850=FACE_BOUND('',#28143,.T.); -#29851=FACE_BOUND('',#28144,.T.); -#29852=FACE_BOUND('',#28145,.T.); -#29853=FACE_BOUND('',#28146,.T.); -#29854=FACE_BOUND('',#28147,.T.); -#29855=FACE_BOUND('',#28148,.T.); -#29856=FACE_BOUND('',#28149,.T.); -#29857=FACE_BOUND('',#28150,.T.); -#29858=FACE_BOUND('',#28151,.T.); -#29859=FACE_BOUND('',#28152,.T.); -#29860=FACE_BOUND('',#28153,.T.); -#29861=FACE_BOUND('',#28154,.T.); -#29862=FACE_BOUND('',#28155,.T.); -#29863=FACE_BOUND('',#28156,.T.); -#29864=FACE_BOUND('',#28157,.T.); -#29865=FACE_BOUND('',#28158,.T.); -#29866=FACE_BOUND('',#28159,.T.); -#29867=FACE_BOUND('',#28160,.T.); -#29868=FACE_BOUND('',#28161,.T.); -#29869=FACE_BOUND('',#28162,.T.); -#29870=FACE_BOUND('',#28163,.T.); -#29871=FACE_BOUND('',#28164,.T.); -#29872=FACE_BOUND('',#28165,.T.); -#29873=FACE_BOUND('',#28166,.T.); -#29874=FACE_BOUND('',#28167,.T.); -#29875=FACE_BOUND('',#28168,.T.); -#29876=FACE_BOUND('',#28169,.T.); -#29877=FACE_BOUND('',#28170,.T.); -#29878=FACE_BOUND('',#28171,.T.); -#29879=FACE_BOUND('',#28172,.T.); -#29880=FACE_BOUND('',#28173,.T.); -#29881=FACE_BOUND('',#28174,.T.); -#29882=FACE_BOUND('',#28175,.T.); -#29883=FACE_BOUND('',#28176,.T.); -#29884=FACE_BOUND('',#28177,.T.); -#29885=FACE_BOUND('',#28178,.T.); -#29886=FACE_BOUND('',#28179,.T.); -#29887=FACE_BOUND('',#28180,.T.); -#29888=FACE_BOUND('',#28181,.T.); -#29889=FACE_BOUND('',#28182,.T.); -#29890=FACE_BOUND('',#28183,.T.); -#29891=FACE_BOUND('',#28184,.T.); -#29892=FACE_BOUND('',#28185,.T.); -#29893=FACE_BOUND('',#28186,.T.); -#29894=FACE_BOUND('',#28187,.T.); -#29895=FACE_BOUND('',#28188,.T.); -#29896=FACE_BOUND('',#28189,.T.); -#29897=FACE_BOUND('',#28190,.T.); -#29898=FACE_BOUND('',#28191,.T.); -#29899=FACE_BOUND('',#28192,.T.); -#29900=FACE_BOUND('',#28193,.T.); -#29901=FACE_BOUND('',#28194,.T.); -#29902=FACE_BOUND('',#28195,.T.); -#29903=FACE_BOUND('',#28196,.T.); -#29904=FACE_BOUND('',#28197,.T.); -#29905=FACE_BOUND('',#28198,.T.); -#29906=FACE_BOUND('',#28199,.T.); -#29907=FACE_BOUND('',#28200,.T.); -#29908=FACE_BOUND('',#28201,.T.); -#29909=FACE_BOUND('',#28202,.T.); -#29910=FACE_BOUND('',#28203,.T.); -#29911=FACE_BOUND('',#28204,.T.); -#29912=FACE_BOUND('',#28205,.T.); -#29913=FACE_BOUND('',#28206,.T.); -#29914=FACE_BOUND('',#28207,.T.); -#29915=FACE_BOUND('',#28208,.T.); -#29916=FACE_BOUND('',#28209,.T.); -#29917=FACE_BOUND('',#28210,.T.); -#29918=FACE_BOUND('',#28211,.T.); -#29919=FACE_BOUND('',#28212,.T.); -#29920=FACE_BOUND('',#28213,.T.); -#29921=FACE_BOUND('',#28214,.T.); -#29922=FACE_BOUND('',#28215,.T.); -#29923=FACE_BOUND('',#28216,.T.); -#29924=FACE_BOUND('',#28217,.T.); -#29925=FACE_BOUND('',#28218,.T.); -#29926=FACE_BOUND('',#28219,.T.); -#29927=FACE_BOUND('',#28220,.T.); -#29928=FACE_BOUND('',#28221,.T.); -#29929=FACE_BOUND('',#28222,.T.); -#29930=FACE_BOUND('',#28223,.T.); -#29931=FACE_BOUND('',#28224,.T.); -#29932=FACE_BOUND('',#28225,.T.); -#29933=FACE_BOUND('',#28226,.T.); -#29934=FACE_BOUND('',#28227,.T.); -#29935=FACE_BOUND('',#28228,.T.); -#29936=FACE_BOUND('',#28229,.T.); -#29937=FACE_BOUND('',#28230,.T.); -#29938=FACE_BOUND('',#28231,.T.); -#29939=FACE_BOUND('',#28232,.T.); -#29940=FACE_BOUND('',#28233,.T.); -#29941=FACE_BOUND('',#28234,.T.); -#29942=FACE_BOUND('',#28235,.T.); -#29943=FACE_BOUND('',#28236,.T.); -#29944=FACE_BOUND('',#28237,.T.); -#29945=FACE_BOUND('',#28238,.T.); -#29946=FACE_BOUND('',#28239,.T.); -#29947=FACE_BOUND('',#28240,.T.); -#29948=FACE_BOUND('',#28241,.T.); -#29949=FACE_BOUND('',#28242,.T.); -#29950=FACE_BOUND('',#28243,.T.); -#29951=FACE_BOUND('',#28244,.T.); -#29952=FACE_BOUND('',#28245,.T.); -#29953=FACE_BOUND('',#28246,.T.); -#29954=FACE_BOUND('',#28247,.T.); -#29955=FACE_BOUND('',#28248,.T.); -#29956=FACE_BOUND('',#28249,.T.); -#29957=FACE_BOUND('',#28250,.T.); -#29958=FACE_BOUND('',#28251,.T.); -#29959=FACE_BOUND('',#28252,.T.); -#29960=FACE_BOUND('',#28253,.T.); -#29961=FACE_BOUND('',#28254,.T.); -#29962=FACE_BOUND('',#28255,.T.); -#29963=FACE_BOUND('',#28256,.T.); -#29964=FACE_BOUND('',#28257,.T.); -#29965=FACE_BOUND('',#28258,.T.); -#29966=FACE_BOUND('',#28259,.T.); -#29967=FACE_BOUND('',#28260,.T.); -#29968=FACE_BOUND('',#28261,.T.); -#29969=FACE_BOUND('',#28262,.T.); -#29970=FACE_BOUND('',#28263,.T.); -#29971=FACE_BOUND('',#28264,.T.); -#29972=FACE_BOUND('',#28265,.T.); -#29973=FACE_BOUND('',#28266,.T.); -#29974=FACE_BOUND('',#28267,.T.); -#29975=FACE_BOUND('',#28268,.T.); -#29976=FACE_BOUND('',#28269,.T.); -#29977=FACE_BOUND('',#28270,.T.); -#29978=FACE_BOUND('',#28271,.T.); -#29979=FACE_BOUND('',#28272,.T.); -#29980=FACE_BOUND('',#28273,.T.); -#29981=FACE_BOUND('',#28274,.T.); -#29982=FACE_BOUND('',#28275,.T.); -#29983=FACE_BOUND('',#28276,.T.); -#29984=FACE_BOUND('',#28277,.T.); -#29985=FACE_BOUND('',#28278,.T.); -#29986=FACE_BOUND('',#28279,.T.); -#29987=FACE_BOUND('',#28280,.T.); -#29988=FACE_BOUND('',#28281,.T.); -#29989=FACE_BOUND('',#28282,.T.); -#29990=FACE_BOUND('',#28283,.T.); -#29991=FACE_BOUND('',#28284,.T.); -#29992=FACE_BOUND('',#28285,.T.); -#29993=FACE_BOUND('',#28286,.T.); -#29994=FACE_BOUND('',#28287,.T.); -#29995=FACE_BOUND('',#28288,.T.); -#29996=FACE_BOUND('',#28289,.T.); -#29997=FACE_BOUND('',#28290,.T.); -#29998=FACE_BOUND('',#28291,.T.); -#29999=FACE_BOUND('',#28292,.T.); -#30000=FACE_BOUND('',#28293,.T.); -#30001=FACE_BOUND('',#28294,.T.); -#30002=FACE_BOUND('',#28295,.T.); -#30003=FACE_BOUND('',#28296,.T.); -#30004=FACE_BOUND('',#28297,.T.); -#30005=FACE_BOUND('',#28298,.T.); -#30006=FACE_BOUND('',#28299,.T.); -#30007=FACE_BOUND('',#28300,.T.); -#30008=FACE_BOUND('',#28301,.T.); -#30009=FACE_BOUND('',#28302,.T.); -#30010=FACE_BOUND('',#28303,.T.); -#30011=FACE_BOUND('',#28304,.T.); -#30012=FACE_BOUND('',#28305,.T.); -#30013=FACE_BOUND('',#28306,.T.); -#30014=FACE_BOUND('',#28307,.T.); -#30015=FACE_BOUND('',#28308,.T.); -#30016=FACE_BOUND('',#28309,.T.); -#30017=FACE_BOUND('',#28310,.T.); -#30018=FACE_BOUND('',#28311,.T.); -#30019=FACE_BOUND('',#28312,.T.); -#30020=FACE_BOUND('',#28313,.T.); -#30021=FACE_BOUND('',#28314,.T.); -#30022=FACE_BOUND('',#28315,.T.); -#30023=FACE_BOUND('',#28316,.T.); -#30024=FACE_BOUND('',#28317,.T.); -#30025=FACE_BOUND('',#28318,.T.); -#30026=FACE_BOUND('',#28319,.T.); -#30027=FACE_BOUND('',#28320,.T.); -#30028=FACE_BOUND('',#28321,.T.); -#30029=FACE_BOUND('',#28322,.T.); -#30030=FACE_BOUND('',#28323,.T.); -#30031=FACE_BOUND('',#28324,.T.); -#30032=FACE_BOUND('',#28325,.T.); -#30033=FACE_BOUND('',#28326,.T.); -#30034=FACE_BOUND('',#28327,.T.); -#30035=FACE_BOUND('',#28328,.T.); -#30036=FACE_BOUND('',#28329,.T.); -#30037=FACE_BOUND('',#28330,.T.); -#30038=FACE_BOUND('',#28331,.T.); -#30039=FACE_BOUND('',#28332,.T.); -#30040=FACE_BOUND('',#28333,.T.); -#30041=FACE_BOUND('',#28334,.T.); -#30042=FACE_BOUND('',#28335,.T.); -#30043=FACE_BOUND('',#28336,.T.); -#30044=FACE_BOUND('',#28337,.T.); -#30045=FACE_BOUND('',#28338,.T.); -#30046=FACE_BOUND('',#28339,.T.); -#30047=FACE_BOUND('',#28340,.T.); -#30048=FACE_BOUND('',#28341,.T.); -#30049=FACE_BOUND('',#28342,.T.); -#30050=FACE_BOUND('',#28343,.T.); -#30051=FACE_BOUND('',#28344,.T.); -#30052=FACE_BOUND('',#28345,.T.); -#30053=FACE_BOUND('',#28346,.T.); -#30054=FACE_BOUND('',#28347,.T.); -#30055=FACE_BOUND('',#28348,.T.); -#30056=FACE_BOUND('',#28349,.T.); -#30057=FACE_BOUND('',#28350,.T.); -#30058=FACE_BOUND('',#28351,.T.); -#30059=FACE_BOUND('',#28352,.T.); -#30060=FACE_BOUND('',#28353,.T.); -#30061=FACE_BOUND('',#28354,.T.); -#30062=FACE_BOUND('',#28355,.T.); -#30063=FACE_BOUND('',#28356,.T.); -#30064=FACE_BOUND('',#28357,.T.); -#30065=FACE_BOUND('',#28358,.T.); -#30066=FACE_BOUND('',#28359,.T.); -#30067=FACE_BOUND('',#28360,.T.); -#30068=FACE_BOUND('',#28361,.T.); -#30069=FACE_BOUND('',#28362,.T.); -#30070=FACE_BOUND('',#28363,.T.); -#30071=FACE_BOUND('',#28364,.T.); -#30072=FACE_BOUND('',#28365,.T.); -#30073=FACE_BOUND('',#28366,.T.); -#30074=FACE_BOUND('',#28367,.T.); -#30075=FACE_BOUND('',#28368,.T.); -#30076=FACE_BOUND('',#28369,.T.); -#30077=FACE_BOUND('',#28370,.T.); -#30078=FACE_BOUND('',#28371,.T.); -#30079=FACE_BOUND('',#28372,.T.); -#30080=FACE_BOUND('',#28373,.T.); -#30081=FACE_BOUND('',#28374,.T.); -#30082=FACE_BOUND('',#28375,.T.); -#30083=FACE_BOUND('',#28376,.T.); -#30084=FACE_BOUND('',#28377,.T.); -#30085=FACE_BOUND('',#28378,.T.); -#30086=FACE_BOUND('',#28379,.T.); -#30087=FACE_BOUND('',#28380,.T.); -#30088=FACE_BOUND('',#28381,.T.); -#30089=FACE_BOUND('',#28382,.T.); -#30090=FACE_BOUND('',#28383,.T.); -#30091=FACE_BOUND('',#28384,.T.); -#30092=FACE_BOUND('',#28385,.T.); -#30093=FACE_BOUND('',#28386,.T.); -#30094=FACE_BOUND('',#28387,.T.); -#30095=FACE_BOUND('',#28388,.T.); -#30096=FACE_BOUND('',#28389,.T.); -#30097=FACE_BOUND('',#28390,.T.); -#30098=FACE_BOUND('',#28391,.T.); -#30099=FACE_BOUND('',#28392,.T.); -#30100=FACE_BOUND('',#28393,.T.); -#30101=FACE_BOUND('',#28394,.T.); -#30102=FACE_BOUND('',#28395,.T.); -#30103=FACE_BOUND('',#28396,.T.); -#30104=FACE_BOUND('',#28397,.T.); -#30105=FACE_BOUND('',#28398,.T.); -#30106=FACE_BOUND('',#28399,.T.); -#30107=FACE_BOUND('',#28400,.T.); -#30108=FACE_BOUND('',#28401,.T.); -#30109=FACE_BOUND('',#28402,.T.); -#30110=FACE_BOUND('',#28403,.T.); -#30111=FACE_BOUND('',#28404,.T.); -#30112=FACE_BOUND('',#28405,.T.); -#30113=FACE_BOUND('',#28406,.T.); -#30114=FACE_BOUND('',#28407,.T.); -#30115=FACE_BOUND('',#28408,.T.); -#30116=FACE_BOUND('',#28409,.T.); -#30117=FACE_BOUND('',#28410,.T.); -#30118=FACE_BOUND('',#28411,.T.); -#30119=FACE_BOUND('',#28412,.T.); -#30120=FACE_BOUND('',#28413,.T.); -#30121=FACE_BOUND('',#28414,.T.); -#30122=FACE_BOUND('',#28415,.T.); -#30123=FACE_BOUND('',#28416,.T.); -#30124=FACE_BOUND('',#28417,.T.); -#30125=FACE_BOUND('',#28418,.T.); -#30126=FACE_BOUND('',#28419,.T.); -#30127=FACE_BOUND('',#28420,.T.); -#30128=FACE_BOUND('',#28421,.T.); -#30129=FACE_BOUND('',#28422,.T.); -#30130=FACE_BOUND('',#28423,.T.); -#30131=FACE_BOUND('',#28424,.T.); -#30132=FACE_BOUND('',#28425,.T.); -#30133=FACE_BOUND('',#28426,.T.); -#30134=FACE_BOUND('',#28427,.T.); -#30135=FACE_BOUND('',#28428,.T.); -#30136=FACE_BOUND('',#28429,.T.); -#30137=FACE_BOUND('',#28430,.T.); -#30138=FACE_BOUND('',#28431,.T.); -#30139=FACE_BOUND('',#28432,.T.); -#30140=FACE_BOUND('',#28433,.T.); -#30141=FACE_BOUND('',#28434,.T.); -#30142=FACE_BOUND('',#28435,.T.); -#30143=FACE_BOUND('',#28436,.T.); -#30144=FACE_BOUND('',#28437,.T.); -#30145=FACE_BOUND('',#28438,.T.); -#30146=FACE_BOUND('',#28439,.T.); -#30147=FACE_BOUND('',#28440,.T.); -#30148=FACE_BOUND('',#28441,.T.); -#30149=FACE_BOUND('',#28442,.T.); -#30150=FACE_BOUND('',#28443,.T.); -#30151=FACE_BOUND('',#28444,.T.); -#30152=FACE_BOUND('',#28445,.T.); -#30153=FACE_BOUND('',#28446,.T.); -#30154=FACE_BOUND('',#28447,.T.); -#30155=FACE_BOUND('',#28448,.T.); -#30156=FACE_BOUND('',#28449,.T.); -#30157=FACE_BOUND('',#28450,.T.); -#30158=FACE_BOUND('',#28451,.T.); -#30159=FACE_BOUND('',#28452,.T.); -#30160=FACE_BOUND('',#28453,.T.); -#30161=FACE_BOUND('',#28454,.T.); -#30162=FACE_BOUND('',#28455,.T.); -#30163=FACE_BOUND('',#28456,.T.); -#30164=FACE_BOUND('',#28457,.T.); -#30165=FACE_BOUND('',#28458,.T.); -#30166=FACE_BOUND('',#28459,.T.); -#30167=FACE_BOUND('',#28460,.T.); -#30168=FACE_BOUND('',#28461,.T.); -#30169=FACE_BOUND('',#28462,.T.); -#30170=FACE_BOUND('',#28463,.T.); -#30171=FACE_BOUND('',#28464,.T.); -#30172=FACE_BOUND('',#28465,.T.); -#30173=FACE_BOUND('',#28466,.T.); -#30174=FACE_BOUND('',#28467,.T.); -#30175=FACE_BOUND('',#28468,.T.); -#30176=FACE_BOUND('',#28469,.T.); -#30177=FACE_BOUND('',#28470,.T.); -#30178=FACE_BOUND('',#28471,.T.); -#30179=FACE_BOUND('',#28472,.T.); -#30180=FACE_BOUND('',#28473,.T.); -#30181=FACE_BOUND('',#28474,.T.); -#30182=FACE_BOUND('',#28475,.T.); -#30183=FACE_BOUND('',#28476,.T.); -#30184=FACE_BOUND('',#28477,.T.); -#30185=FACE_BOUND('',#28478,.T.); -#30186=FACE_BOUND('',#28479,.T.); -#30187=FACE_BOUND('',#28480,.T.); -#30188=FACE_BOUND('',#28481,.T.); -#30189=FACE_BOUND('',#28482,.T.); -#30190=FACE_BOUND('',#28483,.T.); -#30191=FACE_BOUND('',#28484,.T.); -#30192=FACE_BOUND('',#28485,.T.); -#30193=FACE_BOUND('',#28486,.T.); -#30194=FACE_BOUND('',#28487,.T.); -#30195=FACE_BOUND('',#28488,.T.); -#30196=FACE_BOUND('',#28489,.T.); -#30197=FACE_BOUND('',#28490,.T.); -#30198=FACE_BOUND('',#28491,.T.); -#30199=FACE_BOUND('',#28492,.T.); -#30200=FACE_BOUND('',#28493,.T.); -#30201=FACE_BOUND('',#28494,.T.); -#30202=FACE_BOUND('',#28495,.T.); -#30203=FACE_BOUND('',#28496,.T.); -#30204=FACE_BOUND('',#28497,.T.); -#30205=FACE_BOUND('',#28498,.T.); -#30206=FACE_BOUND('',#28499,.T.); -#30207=FACE_BOUND('',#28500,.T.); -#30208=FACE_BOUND('',#28501,.T.); -#30209=FACE_BOUND('',#28502,.T.); -#30210=FACE_BOUND('',#28503,.T.); -#30211=FACE_BOUND('',#28504,.T.); -#30212=FACE_BOUND('',#28505,.T.); -#30213=FACE_BOUND('',#28506,.T.); -#30214=FACE_BOUND('',#28507,.T.); -#30215=FACE_BOUND('',#28508,.T.); -#30216=FACE_BOUND('',#28509,.T.); -#30217=FACE_BOUND('',#28510,.T.); -#30218=FACE_BOUND('',#28511,.T.); -#30219=FACE_BOUND('',#28512,.T.); -#30220=FACE_BOUND('',#28513,.T.); -#30221=FACE_BOUND('',#28514,.T.); -#30222=FACE_BOUND('',#28515,.T.); -#30223=FACE_BOUND('',#28516,.T.); -#30224=FACE_BOUND('',#28517,.T.); -#30225=FACE_BOUND('',#28518,.T.); -#30226=FACE_BOUND('',#28519,.T.); -#30227=FACE_BOUND('',#28520,.T.); -#30228=FACE_BOUND('',#28521,.T.); -#30229=FACE_BOUND('',#28522,.T.); -#30230=FACE_BOUND('',#28523,.T.); -#30231=FACE_BOUND('',#28524,.T.); -#30232=FACE_BOUND('',#28525,.T.); -#30233=FACE_BOUND('',#28526,.T.); -#30234=FACE_BOUND('',#28527,.T.); -#30235=FACE_BOUND('',#28528,.T.); -#30236=FACE_BOUND('',#28529,.T.); -#30237=FACE_BOUND('',#28530,.T.); -#30238=FACE_BOUND('',#28531,.T.); -#30239=FACE_BOUND('',#28532,.T.); -#30240=FACE_BOUND('',#28533,.T.); -#30241=FACE_BOUND('',#28534,.T.); -#30242=FACE_BOUND('',#28535,.T.); -#30243=FACE_BOUND('',#28536,.T.); -#30244=FACE_BOUND('',#28537,.T.); -#30245=FACE_BOUND('',#28538,.T.); -#30246=FACE_BOUND('',#28539,.T.); -#30247=FACE_BOUND('',#28540,.T.); -#30248=FACE_BOUND('',#28541,.T.); -#30249=FACE_BOUND('',#28542,.T.); -#30250=FACE_BOUND('',#28543,.T.); -#30251=FACE_BOUND('',#28544,.T.); -#30252=FACE_BOUND('',#28545,.T.); -#30253=FACE_BOUND('',#28546,.T.); -#30254=FACE_BOUND('',#28547,.T.); -#30255=FACE_BOUND('',#28548,.T.); -#30256=FACE_BOUND('',#28549,.T.); -#30257=FACE_BOUND('',#28550,.T.); -#30258=FACE_BOUND('',#28551,.T.); -#30259=FACE_BOUND('',#28552,.T.); -#30260=FACE_BOUND('',#28553,.T.); -#30261=FACE_BOUND('',#28554,.T.); -#30262=FACE_BOUND('',#28555,.T.); -#30263=FACE_BOUND('',#28556,.T.); -#30264=FACE_BOUND('',#28557,.T.); -#30265=FACE_BOUND('',#28558,.T.); -#30266=FACE_BOUND('',#28559,.T.); -#30267=FACE_BOUND('',#28560,.T.); -#30268=FACE_BOUND('',#28561,.T.); -#30269=FACE_BOUND('',#28562,.T.); -#30270=FACE_BOUND('',#28563,.T.); -#30271=FACE_BOUND('',#28564,.T.); -#30272=FACE_BOUND('',#28565,.T.); -#30273=FACE_BOUND('',#28566,.T.); -#30274=FACE_BOUND('',#28567,.T.); -#30275=FACE_BOUND('',#28568,.T.); -#30276=FACE_BOUND('',#28569,.T.); -#30277=FACE_BOUND('',#28570,.T.); -#30278=FACE_BOUND('',#28571,.T.); -#30279=FACE_BOUND('',#28572,.T.); -#30280=FACE_BOUND('',#28573,.T.); -#30281=FACE_BOUND('',#28574,.T.); -#30282=FACE_BOUND('',#28575,.T.); -#30283=FACE_BOUND('',#28576,.T.); -#30284=FACE_BOUND('',#28577,.T.); -#30285=FACE_BOUND('',#28578,.T.); -#30286=FACE_BOUND('',#28579,.T.); -#30287=FACE_BOUND('',#28580,.T.); -#30288=FACE_BOUND('',#28581,.T.); -#30289=FACE_BOUND('',#28582,.T.); -#30290=FACE_BOUND('',#28583,.T.); -#30291=FACE_BOUND('',#28584,.T.); -#30292=FACE_BOUND('',#28585,.T.); -#30293=FACE_BOUND('',#28586,.T.); -#30294=FACE_BOUND('',#28587,.T.); -#30295=FACE_BOUND('',#28588,.T.); -#30296=FACE_BOUND('',#28589,.T.); -#30297=FACE_BOUND('',#28590,.T.); -#30298=FACE_BOUND('',#28591,.T.); -#30299=FACE_BOUND('',#28592,.T.); -#30300=FACE_BOUND('',#28593,.T.); -#30301=FACE_BOUND('',#28594,.T.); -#30302=FACE_BOUND('',#28595,.T.); -#30303=FACE_BOUND('',#28596,.T.); -#30304=FACE_BOUND('',#28597,.T.); -#30305=FACE_BOUND('',#28598,.T.); -#30306=FACE_BOUND('',#28599,.T.); -#30307=FACE_BOUND('',#28600,.T.); -#30308=FACE_BOUND('',#28601,.T.); -#30309=FACE_BOUND('',#28602,.T.); -#30310=FACE_BOUND('',#28603,.T.); -#30311=FACE_BOUND('',#28604,.T.); -#30312=FACE_BOUND('',#28605,.T.); -#30313=FACE_BOUND('',#28606,.T.); -#30314=FACE_BOUND('',#28607,.T.); -#30315=FACE_BOUND('',#28608,.T.); -#30316=FACE_BOUND('',#28609,.T.); -#30317=FACE_BOUND('',#28610,.T.); -#30318=FACE_BOUND('',#28611,.T.); -#30319=FACE_BOUND('',#28612,.T.); -#30320=FACE_BOUND('',#28613,.T.); -#30321=FACE_BOUND('',#28614,.T.); -#30322=FACE_BOUND('',#28615,.T.); -#30323=FACE_BOUND('',#28616,.T.); -#30324=FACE_BOUND('',#28617,.T.); -#30325=FACE_BOUND('',#28618,.T.); -#30326=FACE_BOUND('',#28619,.T.); -#30327=FACE_BOUND('',#28620,.T.); -#30328=FACE_BOUND('',#28621,.T.); -#30329=FACE_BOUND('',#28622,.T.); -#30330=FACE_BOUND('',#28623,.T.); -#30331=FACE_BOUND('',#28624,.T.); -#30332=FACE_BOUND('',#28625,.T.); -#30333=FACE_BOUND('',#28626,.T.); -#30334=FACE_BOUND('',#28627,.T.); -#30335=FACE_BOUND('',#28628,.T.); -#30336=FACE_BOUND('',#28629,.T.); -#30337=FACE_BOUND('',#28630,.T.); -#30338=FACE_BOUND('',#28631,.T.); -#30339=FACE_BOUND('',#28632,.T.); -#30340=FACE_BOUND('',#28633,.T.); -#30341=FACE_BOUND('',#28634,.T.); -#30342=FACE_BOUND('',#28635,.T.); -#30343=FACE_BOUND('',#28636,.T.); -#30344=FACE_BOUND('',#28637,.T.); -#30345=FACE_BOUND('',#28638,.T.); -#30346=FACE_BOUND('',#28639,.T.); -#30347=FACE_BOUND('',#28640,.T.); -#30348=FACE_BOUND('',#28641,.T.); -#30349=FACE_BOUND('',#28642,.T.); -#30350=FACE_BOUND('',#28643,.T.); -#30351=FACE_BOUND('',#28644,.T.); -#30352=FACE_BOUND('',#28645,.T.); -#30353=FACE_BOUND('',#28646,.T.); -#30354=FACE_BOUND('',#28647,.T.); -#30355=FACE_BOUND('',#28648,.T.); -#30356=FACE_BOUND('',#28649,.T.); -#30357=FACE_BOUND('',#28650,.T.); -#30358=FACE_BOUND('',#28651,.T.); -#30359=FACE_BOUND('',#28652,.T.); -#30360=FACE_BOUND('',#28653,.T.); -#30361=FACE_BOUND('',#28654,.T.); -#30362=FACE_BOUND('',#28655,.T.); -#30363=FACE_BOUND('',#28656,.T.); -#30364=FACE_BOUND('',#28657,.T.); -#30365=FACE_BOUND('',#28658,.T.); -#30366=FACE_BOUND('',#28659,.T.); -#30367=FACE_BOUND('',#28660,.T.); -#30368=FACE_BOUND('',#28661,.T.); -#30369=FACE_BOUND('',#28662,.T.); -#30370=FACE_BOUND('',#28663,.T.); -#30371=FACE_BOUND('',#28664,.T.); -#30372=FACE_BOUND('',#28665,.T.); -#30373=FACE_BOUND('',#28666,.T.); -#30374=FACE_BOUND('',#28667,.T.); -#30375=FACE_BOUND('',#28668,.T.); -#30376=FACE_BOUND('',#28669,.T.); -#30377=FACE_BOUND('',#28670,.T.); -#30378=FACE_BOUND('',#28671,.T.); -#30379=FACE_BOUND('',#28672,.T.); -#30380=FACE_BOUND('',#28673,.T.); -#30381=FACE_BOUND('',#28674,.T.); -#30382=FACE_BOUND('',#28675,.T.); -#30383=FACE_BOUND('',#28676,.T.); -#30384=FACE_BOUND('',#28677,.T.); -#30385=FACE_BOUND('',#28678,.T.); -#30386=FACE_BOUND('',#28679,.T.); -#30387=FACE_BOUND('',#28680,.T.); -#30388=FACE_BOUND('',#28681,.T.); -#30389=FACE_BOUND('',#28682,.T.); -#30390=FACE_BOUND('',#28683,.T.); -#30391=FACE_BOUND('',#28684,.T.); -#30392=FACE_BOUND('',#28685,.T.); -#30393=FACE_BOUND('',#28686,.T.); -#30394=FACE_BOUND('',#28687,.T.); -#30395=FACE_BOUND('',#28688,.T.); -#30396=FACE_BOUND('',#28689,.T.); -#30397=FACE_BOUND('',#28690,.T.); -#30398=FACE_BOUND('',#28691,.T.); -#30399=FACE_BOUND('',#28692,.T.); -#30400=FACE_BOUND('',#28693,.T.); -#30401=FACE_BOUND('',#28694,.T.); -#30402=FACE_BOUND('',#28695,.T.); -#30403=FACE_BOUND('',#28696,.T.); -#30404=FACE_BOUND('',#28697,.T.); -#30405=FACE_BOUND('',#28698,.T.); -#30406=FACE_BOUND('',#28699,.T.); -#30407=FACE_BOUND('',#28700,.T.); -#30408=FACE_BOUND('',#28701,.T.); -#30409=FACE_BOUND('',#28702,.T.); -#30410=FACE_BOUND('',#28703,.T.); -#30411=FACE_BOUND('',#28704,.T.); -#30412=FACE_BOUND('',#28705,.T.); -#30413=FACE_BOUND('',#28706,.T.); -#30414=FACE_BOUND('',#28707,.T.); -#30415=FACE_BOUND('',#28708,.T.); -#30416=FACE_BOUND('',#28709,.T.); -#30417=FACE_BOUND('',#28710,.T.); -#30418=FACE_BOUND('',#28711,.T.); -#30419=FACE_BOUND('',#28712,.T.); -#30420=FACE_BOUND('',#28713,.T.); -#30421=FACE_BOUND('',#28714,.T.); -#30422=FACE_BOUND('',#28715,.T.); -#30423=FACE_BOUND('',#28716,.T.); -#30424=FACE_BOUND('',#28717,.T.); -#30425=FACE_BOUND('',#28718,.T.); -#30426=FACE_BOUND('',#28719,.T.); -#30427=FACE_BOUND('',#28720,.T.); -#30428=FACE_BOUND('',#28721,.T.); -#30429=FACE_BOUND('',#28722,.T.); -#30430=FACE_BOUND('',#28723,.T.); -#30431=FACE_BOUND('',#28724,.T.); -#30432=FACE_BOUND('',#28725,.T.); -#30433=FACE_BOUND('',#28726,.T.); -#30434=FACE_BOUND('',#28727,.T.); -#30435=FACE_BOUND('',#28728,.T.); -#30436=FACE_BOUND('',#28729,.T.); -#30437=FACE_BOUND('',#28730,.T.); -#30438=FACE_BOUND('',#28731,.T.); -#30439=FACE_BOUND('',#28732,.T.); -#30440=FACE_BOUND('',#28733,.T.); -#30441=FACE_BOUND('',#28734,.T.); -#30442=FACE_BOUND('',#28735,.T.); -#30443=FACE_BOUND('',#28736,.T.); -#30444=FACE_BOUND('',#28737,.T.); -#30445=FACE_BOUND('',#28738,.T.); -#30446=FACE_BOUND('',#28739,.T.); -#30447=FACE_BOUND('',#28740,.T.); -#30448=FACE_BOUND('',#28741,.T.); -#30449=FACE_BOUND('',#28742,.T.); -#30450=FACE_BOUND('',#28743,.T.); -#30451=FACE_BOUND('',#28744,.T.); -#30452=FACE_BOUND('',#28745,.T.); -#30453=FACE_BOUND('',#28746,.T.); -#30454=FACE_BOUND('',#28747,.T.); -#30455=FACE_BOUND('',#28748,.T.); -#30456=FACE_BOUND('',#28749,.T.); -#30457=FACE_BOUND('',#28750,.T.); -#30458=FACE_BOUND('',#28751,.T.); -#30459=FACE_BOUND('',#28752,.T.); -#30460=FACE_BOUND('',#28753,.T.); -#30461=FACE_BOUND('',#28754,.T.); -#30462=FACE_BOUND('',#28755,.T.); -#30463=FACE_BOUND('',#28756,.T.); -#30464=FACE_BOUND('',#28757,.T.); -#30465=FACE_BOUND('',#28758,.T.); -#30466=FACE_BOUND('',#28759,.T.); -#30467=FACE_BOUND('',#28760,.T.); -#30468=FACE_BOUND('',#28761,.T.); -#30469=FACE_BOUND('',#28762,.T.); -#30470=FACE_BOUND('',#28763,.T.); -#30471=FACE_BOUND('',#28764,.T.); -#30472=FACE_BOUND('',#28765,.T.); -#30473=FACE_BOUND('',#28766,.T.); -#30474=FACE_BOUND('',#28767,.T.); -#30475=FACE_BOUND('',#28768,.T.); -#30476=FACE_BOUND('',#28769,.T.); -#30477=FACE_BOUND('',#28770,.T.); -#30478=FACE_BOUND('',#28771,.T.); -#30479=FACE_BOUND('',#28772,.T.); -#30480=FACE_BOUND('',#28773,.T.); -#30481=FACE_BOUND('',#28774,.T.); -#30482=FACE_BOUND('',#28775,.T.); -#30483=FACE_BOUND('',#28776,.T.); -#30484=FACE_BOUND('',#28777,.T.); -#30485=FACE_BOUND('',#28778,.T.); -#30486=FACE_BOUND('',#28779,.T.); -#30487=FACE_BOUND('',#28780,.T.); -#30488=FACE_BOUND('',#28781,.T.); -#30489=FACE_BOUND('',#28782,.T.); -#30490=FACE_BOUND('',#28783,.T.); -#30491=FACE_BOUND('',#28784,.T.); -#30492=FACE_BOUND('',#28785,.T.); -#30493=FACE_BOUND('',#28786,.T.); -#30494=FACE_BOUND('',#28787,.T.); -#30495=FACE_BOUND('',#28788,.T.); -#30496=FACE_BOUND('',#28789,.T.); -#30497=FACE_BOUND('',#28790,.T.); -#30498=FACE_BOUND('',#28791,.T.); -#30499=FACE_BOUND('',#28792,.T.); -#30500=FACE_BOUND('',#28793,.T.); -#30501=FACE_BOUND('',#28794,.T.); -#30502=FACE_BOUND('',#28795,.T.); -#30503=FACE_BOUND('',#28796,.T.); -#30504=FACE_BOUND('',#28797,.T.); -#30505=FACE_BOUND('',#28798,.T.); -#30506=FACE_BOUND('',#28799,.T.); -#30507=FACE_BOUND('',#28800,.T.); -#30508=FACE_BOUND('',#28801,.T.); -#30509=FACE_BOUND('',#28802,.T.); -#30510=FACE_BOUND('',#28803,.T.); -#30511=FACE_BOUND('',#28804,.T.); -#30512=FACE_BOUND('',#28805,.T.); -#30513=FACE_BOUND('',#28806,.T.); -#30514=FACE_BOUND('',#28807,.T.); -#30515=FACE_BOUND('',#28808,.T.); -#30516=FACE_BOUND('',#28809,.T.); -#30517=FACE_BOUND('',#28810,.T.); -#30518=FACE_BOUND('',#28811,.T.); -#30519=FACE_BOUND('',#28812,.T.); -#30520=FACE_BOUND('',#28813,.T.); -#30521=FACE_BOUND('',#28814,.T.); -#30522=FACE_BOUND('',#28815,.T.); -#30523=FACE_BOUND('',#28816,.T.); -#30524=FACE_BOUND('',#28817,.T.); -#30525=FACE_BOUND('',#28818,.T.); -#30526=FACE_BOUND('',#28819,.T.); -#30527=FACE_BOUND('',#28820,.T.); -#30528=FACE_BOUND('',#28821,.T.); -#30529=FACE_BOUND('',#28822,.T.); -#30530=FACE_BOUND('',#28823,.T.); -#30531=FACE_BOUND('',#28824,.T.); -#30532=FACE_BOUND('',#28825,.T.); -#30533=FACE_BOUND('',#28826,.T.); -#30534=FACE_BOUND('',#28827,.T.); -#30535=FACE_BOUND('',#28828,.T.); -#30536=FACE_BOUND('',#28829,.T.); -#30537=FACE_BOUND('',#28830,.T.); -#30538=FACE_BOUND('',#28831,.T.); -#30539=FACE_BOUND('',#28832,.T.); -#30540=FACE_BOUND('',#28833,.T.); -#30541=FACE_BOUND('',#28834,.T.); -#30542=FACE_BOUND('',#28835,.T.); -#30543=FACE_BOUND('',#28836,.T.); -#30544=FACE_BOUND('',#28837,.T.); -#30545=FACE_BOUND('',#28838,.T.); -#30546=FACE_BOUND('',#28839,.T.); -#30547=FACE_BOUND('',#28840,.T.); -#30548=FACE_BOUND('',#28841,.T.); -#30549=FACE_BOUND('',#28842,.T.); -#30550=FACE_BOUND('',#28843,.T.); -#30551=FACE_BOUND('',#28844,.T.); -#30552=FACE_BOUND('',#28845,.T.); -#30553=FACE_BOUND('',#28846,.T.); -#30554=FACE_BOUND('',#28847,.T.); -#30555=FACE_BOUND('',#28848,.T.); -#30556=FACE_BOUND('',#28849,.T.); -#30557=FACE_BOUND('',#28850,.T.); -#30558=FACE_BOUND('',#28851,.T.); -#30559=FACE_BOUND('',#28852,.T.); -#30560=FACE_BOUND('',#28853,.T.); -#30561=FACE_BOUND('',#28854,.T.); -#30562=FACE_BOUND('',#28855,.T.); -#30563=FACE_BOUND('',#28856,.T.); -#30564=FACE_BOUND('',#28857,.T.); -#30565=FACE_BOUND('',#28858,.T.); -#30566=FACE_BOUND('',#28859,.T.); -#30567=FACE_BOUND('',#28860,.T.); -#30568=FACE_BOUND('',#28861,.T.); -#30569=FACE_BOUND('',#28862,.T.); -#30570=FACE_BOUND('',#28863,.T.); -#30571=FACE_BOUND('',#28864,.T.); -#30572=FACE_BOUND('',#28865,.T.); -#30573=FACE_BOUND('',#28866,.T.); -#30574=FACE_BOUND('',#28867,.T.); -#30575=FACE_BOUND('',#28868,.T.); -#30576=FACE_BOUND('',#28869,.T.); -#30577=FACE_BOUND('',#28870,.T.); -#30578=FACE_BOUND('',#28871,.T.); -#30579=FACE_BOUND('',#28872,.T.); -#30580=FACE_BOUND('',#28873,.T.); -#30581=FACE_BOUND('',#28874,.T.); -#30582=FACE_BOUND('',#28875,.T.); -#30583=FACE_BOUND('',#28876,.T.); -#30584=FACE_BOUND('',#28877,.T.); -#30585=PLANE('',#33417); -#30586=PLANE('',#33418); -#30587=PLANE('',#33419); -#30588=PLANE('',#33442); -#30589=PLANE('',#33443); -#30590=PLANE('',#33444); -#30591=PLANE('',#33445); -#30592=PLANE('',#33446); -#30593=PLANE('',#33447); -#30594=PLANE('',#33449); -#30595=PLANE('',#33451); -#30596=PLANE('',#33452); -#30597=PLANE('',#33453); -#30598=PLANE('',#33455); -#30599=PLANE('',#33457); -#30600=PLANE('',#33458); -#30601=PLANE('',#33459); -#30602=PLANE('',#33461); -#30603=PLANE('',#33463); -#30604=PLANE('',#33464); -#30605=PLANE('',#33465); -#30606=PLANE('',#33467); -#30607=PLANE('',#33469); -#30608=PLANE('',#33470); -#30609=PLANE('',#33471); -#30610=PLANE('',#33473); -#30611=PLANE('',#33475); -#30612=PLANE('',#33476); -#30613=PLANE('',#33477); -#30614=PLANE('',#33479); -#30615=PLANE('',#33481); -#30616=PLANE('',#33482); -#30617=PLANE('',#33483); -#30618=PLANE('',#33485); -#30619=PLANE('',#33487); -#30620=PLANE('',#33488); -#30621=PLANE('',#33489); -#30622=PLANE('',#33491); -#30623=PLANE('',#33493); -#30624=PLANE('',#33494); -#30625=PLANE('',#33495); -#30626=PLANE('',#33497); -#30627=PLANE('',#33499); -#30628=PLANE('',#33500); -#30629=PLANE('',#33501); -#30630=PLANE('',#33503); -#30631=PLANE('',#33505); -#30632=PLANE('',#33506); -#30633=PLANE('',#33507); -#30634=PLANE('',#33509); -#30635=PLANE('',#33511); -#30636=PLANE('',#33512); -#30637=PLANE('',#33513); -#30638=PLANE('',#33515); -#30639=PLANE('',#33517); -#30640=PLANE('',#33518); -#30641=PLANE('',#33519); -#30642=PLANE('',#33521); -#30643=PLANE('',#33523); -#30644=PLANE('',#33524); -#30645=PLANE('',#33525); -#30646=PLANE('',#33527); -#30647=PLANE('',#33529); -#30648=PLANE('',#33530); -#30649=PLANE('',#33531); -#30650=PLANE('',#33533); -#30651=PLANE('',#33535); -#30652=PLANE('',#33536); -#30653=PLANE('',#33537); -#30654=PLANE('',#33539); -#30655=PLANE('',#33541); -#30656=PLANE('',#33542); -#30657=PLANE('',#33543); -#30658=PLANE('',#33545); -#30659=PLANE('',#33547); -#30660=PLANE('',#33548); -#30661=PLANE('',#33549); -#30662=PLANE('',#33551); -#30663=PLANE('',#33553); -#30664=PLANE('',#33554); -#30665=PLANE('',#33555); -#30666=PLANE('',#33557); -#30667=PLANE('',#33559); -#30668=PLANE('',#33561); -#30669=PLANE('',#33562); -#30670=PLANE('',#33563); -#30671=PLANE('',#33565); -#30672=PLANE('',#33566); -#30673=PLANE('',#33567); -#30674=PLANE('',#33568); -#30675=PLANE('',#33569); -#30676=PLANE('',#33570); -#30677=PLANE('',#33571); -#30678=PLANE('',#33572); -#30679=PLANE('',#33573); -#30680=PLANE('',#33574); -#30681=PLANE('',#33575); -#30682=PLANE('',#33576); -#30683=PLANE('',#33577); -#30684=PLANE('',#33578); -#30685=PLANE('',#33579); -#30686=PLANE('',#33580); -#30687=PLANE('',#33581); -#30688=PLANE('',#33582); -#30689=PLANE('',#33583); -#30690=PLANE('',#33584); -#30691=PLANE('',#33585); -#30692=PLANE('',#33586); -#30693=PLANE('',#33587); -#30694=PLANE('',#33588); -#30695=PLANE('',#33589); -#30696=PLANE('',#33590); -#30697=PLANE('',#33591); -#30698=PLANE('',#33592); -#30699=PLANE('',#33593); -#30700=PLANE('',#33594); -#30701=PLANE('',#33595); -#30702=PLANE('',#33596); -#30703=PLANE('',#33597); -#30704=PLANE('',#33598); -#30705=PLANE('',#33599); -#30706=PLANE('',#33600); -#30707=PLANE('',#33601); -#30708=PLANE('',#33602); -#30709=PLANE('',#33603); -#30710=PLANE('',#33604); -#30711=PLANE('',#33605); -#30712=PLANE('',#33606); -#30713=PLANE('',#33607); -#30714=PLANE('',#33608); -#30715=PLANE('',#33609); -#30716=PLANE('',#33610); -#30717=PLANE('',#33611); -#30718=PLANE('',#33612); -#30719=PLANE('',#33613); -#30720=PLANE('',#33614); -#30721=PLANE('',#33615); -#30722=PLANE('',#33616); -#30723=PLANE('',#33617); -#30724=PLANE('',#33618); -#30725=PLANE('',#33619); -#30726=PLANE('',#33620); -#30727=PLANE('',#33621); -#30728=PLANE('',#33622); -#30729=PLANE('',#33623); -#30730=PLANE('',#33624); -#30731=PLANE('',#33625); -#30732=PLANE('',#33626); -#30733=PLANE('',#33627); -#30734=PLANE('',#33628); -#30735=PLANE('',#33629); -#30736=PLANE('',#33630); -#30737=PLANE('',#33631); -#30738=PLANE('',#33632); -#30739=PLANE('',#33633); -#30740=PLANE('',#33634); -#30741=PLANE('',#33635); -#30742=PLANE('',#33636); -#30743=PLANE('',#33637); -#30744=PLANE('',#33638); -#30745=PLANE('',#33639); -#30746=PLANE('',#33640); -#30747=PLANE('',#33641); -#30748=PLANE('',#33642); -#30749=PLANE('',#33643); -#30750=PLANE('',#33644); -#30751=PLANE('',#33645); -#30752=PLANE('',#33646); -#30753=PLANE('',#33647); -#30754=PLANE('',#33648); -#30755=PLANE('',#33649); -#30756=PLANE('',#33650); -#30757=PLANE('',#33651); -#30758=PLANE('',#33652); -#30759=PLANE('',#33653); -#30760=PLANE('',#33654); -#30761=PLANE('',#33655); -#30762=PLANE('',#33656); -#30763=PLANE('',#33657); -#30764=PLANE('',#33658); -#30765=PLANE('',#33659); -#30766=PLANE('',#33660); -#30767=PLANE('',#33661); -#30768=PLANE('',#33662); -#30769=PLANE('',#33663); -#30770=PLANE('',#33664); -#30771=PLANE('',#33665); -#30772=PLANE('',#33666); -#30773=PLANE('',#33667); -#30774=PLANE('',#33668); -#30775=PLANE('',#33669); -#30776=PLANE('',#33670); -#30777=PLANE('',#33671); -#30778=PLANE('',#33672); -#30779=PLANE('',#33673); -#30780=PLANE('',#33674); -#30781=PLANE('',#33675); -#30782=PLANE('',#33676); -#30783=PLANE('',#33677); -#30784=PLANE('',#33678); -#30785=PLANE('',#33679); -#30786=PLANE('',#33680); -#30787=PLANE('',#33681); -#30788=PLANE('',#33682); -#30789=PLANE('',#33683); -#30790=PLANE('',#33684); -#30791=PLANE('',#33685); -#30792=PLANE('',#33686); -#30793=PLANE('',#33687); -#30794=PLANE('',#33688); -#30795=PLANE('',#33689); -#30796=PLANE('',#33690); -#30797=PLANE('',#33691); -#30798=PLANE('',#33692); -#30799=PLANE('',#33693); -#30800=PLANE('',#33694); -#30801=PLANE('',#33695); -#30802=PLANE('',#33696); -#30803=PLANE('',#33697); -#30804=PLANE('',#33698); -#30805=PLANE('',#33699); -#30806=PLANE('',#33700); -#30807=PLANE('',#33701); -#30808=PLANE('',#33702); -#30809=PLANE('',#33703); -#30810=PLANE('',#33704); -#30811=PLANE('',#33705); -#30812=PLANE('',#33706); -#30813=PLANE('',#33707); -#30814=PLANE('',#33708); -#30815=PLANE('',#33709); -#30816=PLANE('',#33710); -#30817=PLANE('',#33711); -#30818=PLANE('',#33712); -#30819=PLANE('',#33713); -#30820=PLANE('',#33714); -#30821=PLANE('',#33715); -#30822=PLANE('',#33716); -#30823=PLANE('',#33717); -#30824=PLANE('',#33718); -#30825=PLANE('',#33719); -#30826=PLANE('',#33720); -#30827=PLANE('',#33721); -#30828=PLANE('',#33722); -#30829=PLANE('',#33723); -#30830=PLANE('',#33724); -#30831=PLANE('',#33725); -#30832=PLANE('',#33726); -#30833=PLANE('',#33727); -#30834=PLANE('',#33728); -#30835=PLANE('',#33729); -#30836=PLANE('',#33730); -#30837=PLANE('',#33731); -#30838=PLANE('',#33732); -#30839=PLANE('',#33733); -#30840=PLANE('',#33734); -#30841=PLANE('',#33735); -#30842=PLANE('',#33736); -#30843=PLANE('',#33737); -#30844=PLANE('',#33738); -#30845=PLANE('',#33739); -#30846=PLANE('',#33740); -#30847=PLANE('',#33741); -#30848=PLANE('',#33742); -#30849=PLANE('',#33743); -#30850=PLANE('',#33744); -#30851=PLANE('',#33745); -#30852=PLANE('',#33746); -#30853=PLANE('',#33747); -#30854=PLANE('',#33748); -#30855=PLANE('',#33749); -#30856=PLANE('',#33750); -#30857=PLANE('',#33751); -#30858=PLANE('',#33752); -#30859=PLANE('',#33753); -#30860=PLANE('',#33754); -#30861=PLANE('',#33755); -#30862=PLANE('',#33756); -#30863=PLANE('',#33757); -#30864=PLANE('',#33758); -#30865=PLANE('',#33759); -#30866=PLANE('',#33760); -#30867=PLANE('',#33761); -#30868=PLANE('',#33762); -#30869=PLANE('',#33763); -#30870=PLANE('',#33764); -#30871=PLANE('',#33765); -#30872=PLANE('',#33766); -#30873=PLANE('',#33767); -#30874=PLANE('',#33768); -#30875=PLANE('',#33770); -#30876=PLANE('',#33771); -#30877=PLANE('',#33773); -#30878=PLANE('',#33774); -#30879=PLANE('',#33776); -#30880=PLANE('',#33777); -#30881=PLANE('',#33779); -#30882=PLANE('',#33780); -#30883=PLANE('',#33782); -#30884=PLANE('',#33783); -#30885=PLANE('',#33785); -#30886=PLANE('',#33786); -#30887=PLANE('',#33788); -#30888=PLANE('',#33789); -#30889=PLANE('',#33791); -#30890=PLANE('',#33792); -#30891=PLANE('',#33794); -#30892=PLANE('',#33795); -#30893=PLANE('',#33797); -#30894=PLANE('',#33798); -#30895=PLANE('',#33800); -#30896=PLANE('',#33801); -#30897=PLANE('',#33803); -#30898=PLANE('',#33804); -#30899=PLANE('',#33806); -#30900=PLANE('',#33807); -#30901=PLANE('',#33809); -#30902=PLANE('',#33810); -#30903=PLANE('',#33812); -#30904=PLANE('',#33813); -#30905=PLANE('',#33815); -#30906=PLANE('',#33816); -#30907=PLANE('',#33818); -#30908=PLANE('',#33819); -#30909=PLANE('',#33821); -#30910=PLANE('',#33822); -#30911=PLANE('',#33825); -#30912=PLANE('',#33826); -#30913=PLANE('',#33827); -#30914=PLANE('',#33828); -#30915=PLANE('',#33829); -#30916=PLANE('',#33830); -#30917=PLANE('',#33831); -#30918=PLANE('',#33832); -#30919=PLANE('',#33837); -#30920=PLANE('',#33838); -#30921=PLANE('',#33841); -#30922=PLANE('',#33844); -#30923=PLANE('',#33847); -#30924=PLANE('',#33850); -#30925=PLANE('',#33851); -#30926=PLANE('',#33862); -#30927=PLANE('',#33865); -#30928=PLANE('',#33866); -#30929=PLANE('',#33867); -#30930=PLANE('',#33868); -#30931=PLANE('',#33879); -#30932=PLANE('',#33882); -#30933=PLANE('',#33885); -#30934=PLANE('',#33886); -#30935=PLANE('',#33887); -#30936=PLANE('',#33888); -#30937=PLANE('',#33892); -#30938=PLANE('',#33894); -#30939=PLANE('',#33895); -#30940=PLANE('',#33896); -#30941=PLANE('',#33899); -#30942=PLANE('',#33903); -#30943=PLANE('',#33904); -#30944=PLANE('',#33905); -#30945=PLANE('',#33906); -#30946=PLANE('',#33907); -#30947=PLANE('',#33908); -#30948=PLANE('',#33909); -#30949=PLANE('',#33910); -#30950=PLANE('',#33911); -#30951=PLANE('',#33912); -#30952=PLANE('',#33913); -#30953=PLANE('',#33914); -#30954=PLANE('',#33915); -#30955=PLANE('',#33916); -#30956=PLANE('',#33917); -#30957=PLANE('',#33918); -#30958=PLANE('',#33919); -#30959=PLANE('',#33920); -#30960=PLANE('',#33921); -#30961=PLANE('',#33922); -#30962=PLANE('',#33923); -#30963=PLANE('',#33924); -#30964=PLANE('',#33925); -#30965=PLANE('',#33926); -#30966=PLANE('',#33927); -#30967=PLANE('',#33928); -#30968=PLANE('',#33929); -#30969=PLANE('',#33930); -#30970=PLANE('',#33931); -#30971=PLANE('',#33932); -#30972=PLANE('',#33933); -#30973=PLANE('',#33934); -#30974=PLANE('',#33935); -#30975=PLANE('',#33936); -#30976=PLANE('',#33937); -#30977=PLANE('',#33938); -#30978=PLANE('',#33939); -#30979=PLANE('',#33940); -#30980=PLANE('',#33941); -#30981=PLANE('',#33942); -#30982=PLANE('',#33943); -#30983=PLANE('',#33944); -#30984=PLANE('',#33945); -#30985=PLANE('',#33946); -#30986=PLANE('',#33947); -#30987=PLANE('',#33948); -#30988=PLANE('',#33949); -#30989=PLANE('',#33950); -#30990=PLANE('',#33951); -#30991=PLANE('',#33952); -#30992=PLANE('',#33953); -#30993=PLANE('',#33954); -#30994=PLANE('',#33955); -#30995=PLANE('',#33956); -#30996=PLANE('',#33957); -#30997=PLANE('',#33958); -#30998=PLANE('',#33959); -#30999=PLANE('',#33960); -#31000=PLANE('',#33961); -#31001=PLANE('',#33962); -#31002=PLANE('',#33963); -#31003=PLANE('',#33964); -#31004=PLANE('',#33965); -#31005=PLANE('',#33966); -#31006=PLANE('',#33967); -#31007=PLANE('',#33968); -#31008=PLANE('',#33969); -#31009=PLANE('',#33970); -#31010=PLANE('',#33971); -#31011=PLANE('',#33972); -#31012=PLANE('',#33973); -#31013=PLANE('',#33974); -#31014=PLANE('',#33975); -#31015=PLANE('',#33976); -#31016=PLANE('',#33977); -#31017=PLANE('',#33978); -#31018=PLANE('',#33979); -#31019=PLANE('',#33980); -#31020=PLANE('',#33981); -#31021=PLANE('',#33982); -#31022=PLANE('',#33983); -#31023=PLANE('',#33984); -#31024=PLANE('',#33985); -#31025=PLANE('',#33986); -#31026=PLANE('',#33987); -#31027=PLANE('',#33988); -#31028=PLANE('',#33989); -#31029=PLANE('',#33990); -#31030=PLANE('',#33991); -#31031=PLANE('',#33992); -#31032=PLANE('',#33993); -#31033=PLANE('',#33994); -#31034=PLANE('',#33995); -#31035=PLANE('',#33996); -#31036=PLANE('',#33997); -#31037=PLANE('',#33998); -#31038=PLANE('',#33999); -#31039=PLANE('',#34000); -#31040=PLANE('',#34001); -#31041=PLANE('',#34002); -#31042=PLANE('',#34003); -#31043=PLANE('',#34004); -#31044=PLANE('',#34005); -#31045=PLANE('',#34006); -#31046=PLANE('',#34007); -#31047=PLANE('',#34008); -#31048=PLANE('',#34009); -#31049=PLANE('',#34124); -#31050=PLANE('',#34125); -#31051=PLANE('',#34126); -#31052=PLANE('',#34127); -#31053=PLANE('',#34128); -#31054=PLANE('',#34129); -#31055=PLANE('',#34130); -#31056=PLANE('',#34131); -#31057=PLANE('',#34132); -#31058=PLANE('',#34133); -#31059=PLANE('',#34134); -#31060=PLANE('',#34135); -#31061=PLANE('',#34136); -#31062=PLANE('',#34137); -#31063=PLANE('',#34138); -#31064=PLANE('',#34139); -#31065=PLANE('',#34140); -#31066=PLANE('',#34141); -#31067=PLANE('',#34142); -#31068=PLANE('',#34257); -#31069=PLANE('',#34264); -#31070=PLANE('',#34271); -#31071=PLANE('',#34272); -#31072=PLANE('',#34273); -#31073=PLANE('',#34274); -#31074=PLANE('',#34275); -#31075=PLANE('',#34276); -#31076=PLANE('',#34277); -#31077=PLANE('',#34278); -#31078=PLANE('',#34279); -#31079=PLANE('',#34280); -#31080=PLANE('',#34281); -#31081=PLANE('',#34282); -#31082=PLANE('',#34283); -#31083=PLANE('',#34284); -#31084=PLANE('',#34285); -#31085=PLANE('',#34286); -#31086=PLANE('',#34287); -#31087=PLANE('',#34288); -#31088=PLANE('',#34289); -#31089=PLANE('',#34290); -#31090=PLANE('',#34291); -#31091=PLANE('',#34292); -#31092=PLANE('',#34293); -#31093=PLANE('',#34294); -#31094=PLANE('',#34295); -#31095=PLANE('',#34296); -#31096=PLANE('',#34297); -#31097=PLANE('',#34298); -#31098=PLANE('',#34299); -#31099=PLANE('',#34300); -#31100=PLANE('',#34301); -#31101=PLANE('',#34302); -#31102=PLANE('',#34303); -#31103=PLANE('',#34304); -#31104=PLANE('',#34305); -#31105=PLANE('',#34306); -#31106=PLANE('',#34307); -#31107=PLANE('',#34308); -#31108=PLANE('',#34309); -#31109=PLANE('',#34310); -#31110=PLANE('',#34311); -#31111=PLANE('',#34312); -#31112=PLANE('',#34313); -#31113=PLANE('',#34314); -#31114=PLANE('',#34315); -#31115=PLANE('',#34316); -#31116=PLANE('',#34317); -#31117=PLANE('',#34318); -#31118=PLANE('',#34319); -#31119=PLANE('',#34320); -#31120=PLANE('',#34321); -#31121=PLANE('',#34322); -#31122=PLANE('',#34323); -#31123=PLANE('',#34324); -#31124=PLANE('',#34325); -#31125=PLANE('',#34326); -#31126=PLANE('',#34327); -#31127=PLANE('',#34328); -#31128=PLANE('',#34329); -#31129=PLANE('',#34330); -#31130=PLANE('',#34331); -#31131=PLANE('',#34332); -#31132=PLANE('',#34333); -#31133=PLANE('',#34334); -#31134=PLANE('',#34335); -#31135=PLANE('',#34336); -#31136=PLANE('',#34337); -#31137=PLANE('',#34338); -#31138=PLANE('',#34339); -#31139=PLANE('',#34340); -#31140=PLANE('',#34341); -#31141=PLANE('',#34342); -#31142=PLANE('',#34343); -#31143=PLANE('',#34344); -#31144=PLANE('',#34345); -#31145=PLANE('',#34346); -#31146=PLANE('',#34347); -#31147=PLANE('',#34348); -#31148=PLANE('',#34349); -#31149=PLANE('',#34350); -#31150=PLANE('',#34351); -#31151=PLANE('',#34352); -#31152=PLANE('',#34353); -#31153=PLANE('',#34354); -#31154=PLANE('',#34355); -#31155=PLANE('',#34356); -#31156=PLANE('',#34357); -#31157=PLANE('',#34358); -#31158=PLANE('',#34359); -#31159=PLANE('',#34360); -#31160=PLANE('',#34361); -#31161=PLANE('',#34362); -#31162=PLANE('',#34363); -#31163=PLANE('',#34364); -#31164=PLANE('',#34365); -#31165=PLANE('',#34366); -#31166=PLANE('',#34367); -#31167=PLANE('',#34368); -#31168=PLANE('',#34369); -#31169=PLANE('',#34370); -#31170=PLANE('',#34371); -#31171=PLANE('',#34372); -#31172=PLANE('',#34373); -#31173=PLANE('',#34374); -#31174=PLANE('',#34375); -#31175=PLANE('',#34376); -#31176=PLANE('',#34377); -#31177=PLANE('',#34378); -#31178=PLANE('',#34379); -#31179=PLANE('',#34380); -#31180=PLANE('',#34381); -#31181=PLANE('',#34382); -#31182=PLANE('',#34383); -#31183=PLANE('',#34384); -#31184=PLANE('',#34385); -#31185=PLANE('',#34386); -#31186=PLANE('',#34387); -#31187=PLANE('',#34388); -#31188=PLANE('',#34389); -#31189=PLANE('',#34390); -#31190=PLANE('',#34391); -#31191=PLANE('',#34392); -#31192=PLANE('',#34393); -#31193=PLANE('',#34394); -#31194=PLANE('',#34395); -#31195=PLANE('',#34396); -#31196=PLANE('',#34397); -#31197=PLANE('',#34398); -#31198=PLANE('',#34399); -#31199=PLANE('',#34400); -#31200=PLANE('',#34401); -#31201=PLANE('',#34402); -#31202=PLANE('',#34403); -#31203=PLANE('',#34404); -#31204=PLANE('',#34405); -#31205=PLANE('',#34406); -#31206=PLANE('',#34407); -#31207=PLANE('',#34408); -#31208=PLANE('',#34409); -#31209=PLANE('',#34410); -#31210=PLANE('',#34411); -#31211=PLANE('',#34412); -#31212=PLANE('',#34413); -#31213=PLANE('',#34414); -#31214=PLANE('',#34415); -#31215=PLANE('',#34416); -#31216=PLANE('',#34417); -#31217=PLANE('',#34418); -#31218=PLANE('',#34419); -#31219=PLANE('',#34420); -#31220=PLANE('',#34421); -#31221=PLANE('',#34422); -#31222=PLANE('',#34423); -#31223=PLANE('',#34424); -#31224=PLANE('',#34425); -#31225=PLANE('',#34426); -#31226=PLANE('',#34427); -#31227=PLANE('',#34428); -#31228=PLANE('',#34429); -#31229=PLANE('',#34430); -#31230=PLANE('',#34431); -#31231=PLANE('',#34432); -#31232=PLANE('',#34433); -#31233=PLANE('',#34434); -#31234=PLANE('',#34435); -#31235=PLANE('',#34436); -#31236=PLANE('',#34437); -#31237=PLANE('',#34438); -#31238=PLANE('',#34439); -#31239=PLANE('',#34440); -#31240=PLANE('',#34441); -#31241=PLANE('',#34442); -#31242=PLANE('',#34443); -#31243=PLANE('',#34444); -#31244=PLANE('',#34445); -#31245=PLANE('',#34446); -#31246=PLANE('',#34447); -#31247=PLANE('',#34448); -#31248=PLANE('',#34449); -#31249=PLANE('',#34450); -#31250=PLANE('',#34451); -#31251=PLANE('',#34452); -#31252=PLANE('',#34453); -#31253=PLANE('',#34454); -#31254=PLANE('',#34455); -#31255=PLANE('',#34456); -#31256=PLANE('',#34457); -#31257=PLANE('',#34458); -#31258=PLANE('',#34459); -#31259=PLANE('',#34460); -#31260=PLANE('',#34461); -#31261=PLANE('',#34462); -#31262=PLANE('',#34463); -#31263=PLANE('',#34464); -#31264=PLANE('',#34465); -#31265=PLANE('',#34466); -#31266=PLANE('',#34467); -#31267=PLANE('',#34468); -#31268=PLANE('',#34469); -#31269=PLANE('',#34470); -#31270=PLANE('',#34471); -#31271=PLANE('',#34473); -#31272=PLANE('',#34594); -#31273=PLANE('',#34715); -#31274=PLANE('',#34836); -#31275=PLANE('',#34957); -#31276=PLANE('',#34958); -#31277=PLANE('',#34959); -#31278=PLANE('',#34960); -#31279=PLANE('',#34961); -#31280=PLANE('',#34962); -#31281=PLANE('',#34963); -#31282=PLANE('',#34964); -#31283=PLANE('',#34965); -#31284=PLANE('',#34966); -#31285=PLANE('',#34967); -#31286=PLANE('',#34968); -#31287=PLANE('',#34969); -#31288=PLANE('',#34970); -#31289=PLANE('',#34971); -#31290=PLANE('',#34972); -#31291=PLANE('',#34973); -#31292=PLANE('',#34974); -#31293=PLANE('',#34975); -#31294=PLANE('',#34976); -#31295=PLANE('',#34977); -#31296=PLANE('',#34978); -#31297=PLANE('',#34979); -#31298=PLANE('',#34980); -#31299=PLANE('',#34981); -#31300=PLANE('',#34982); -#31301=PLANE('',#34983); -#31302=PLANE('',#34984); -#31303=PLANE('',#34985); -#31304=PLANE('',#34986); -#31305=PLANE('',#34987); -#31306=PLANE('',#34988); -#31307=PLANE('',#34989); -#31308=PLANE('',#34990); -#31309=PLANE('',#34991); -#31310=PLANE('',#34992); -#31311=PLANE('',#34993); -#31312=PLANE('',#34994); -#31313=PLANE('',#34995); -#31314=PLANE('',#34996); -#31315=PLANE('',#34997); -#31316=PLANE('',#34998); -#31317=PLANE('',#34999); -#31318=PLANE('',#35000); -#31319=PLANE('',#35061); -#31320=PLANE('',#35064); -#31321=PLANE('',#35067); -#31322=PLANE('',#35070); -#31323=PLANE('',#35073); -#31324=PLANE('',#35076); -#31325=PLANE('',#35079); -#31326=PLANE('',#35082); -#31327=PLANE('',#35085); -#31328=PLANE('',#35088); -#31329=PLANE('',#35091); -#31330=PLANE('',#35094); -#31331=PLANE('',#35097); -#31332=PLANE('',#35100); -#31333=PLANE('',#35103); -#31334=PLANE('',#35106); -#31335=PLANE('',#35109); -#31336=PLANE('',#35112); -#31337=PLANE('',#35115); -#31338=PLANE('',#35238); -#31339=PLANE('',#35241); -#31340=PLANE('',#35244); -#31341=PLANE('',#35247); -#31342=PLANE('',#35250); -#31343=PLANE('',#35253); -#31344=PLANE('',#35256); -#31345=PLANE('',#35259); -#31346=PLANE('',#35262); -#31347=PLANE('',#35265); -#31348=PLANE('',#35268); -#31349=PLANE('',#35271); -#31350=PLANE('',#35274); -#31351=PLANE('',#35277); -#31352=PLANE('',#35280); -#31353=PLANE('',#35283); -#31354=PLANE('',#35286); -#31355=PLANE('',#35289); -#31356=PLANE('',#35292); -#31357=PLANE('',#35355); -#31358=PLANE('',#35356); -#31359=PLANE('',#35357); -#31360=PLANE('',#35360); -#31361=PLANE('',#35364); -#31362=PLANE('',#35366); -#31363=PLANE('',#35369); -#31364=PLANE('',#35372); -#31365=PLANE('',#35375); -#31366=PLANE('',#35376); -#31367=PLANE('',#35380); -#31368=PLANE('',#35382); -#31369=PLANE('',#35385); -#31370=PLANE('',#35388); -#31371=PLANE('',#35390); -#31372=PLANE('',#35393); -#31373=PLANE('',#35396); -#31374=PLANE('',#35398); -#31375=PLANE('',#35400); -#31376=PLANE('',#35402); -#31377=PLANE('',#35403); -#31378=PLANE('',#35405); -#31379=PLANE('',#35407); -#31380=PLANE('',#35411); -#31381=PLANE('',#35414); -#31382=PLANE('',#35416); -#31383=PLANE('',#35418); -#31384=PLANE('',#35420); -#31385=PLANE('',#35421); -#31386=PLANE('',#35423); -#31387=PLANE('',#35425); -#31388=PLANE('',#35429); -#31389=PLANE('',#35432); -#31390=PLANE('',#35434); -#31391=PLANE('',#35436); -#31392=PLANE('',#35438); -#31393=PLANE('',#35439); -#31394=PLANE('',#35441); -#31395=PLANE('',#35443); -#31396=PLANE('',#35447); -#31397=PLANE('',#35450); -#31398=PLANE('',#35452); -#31399=PLANE('',#35454); -#31400=PLANE('',#35456); -#31401=PLANE('',#35457); -#31402=PLANE('',#35459); -#31403=PLANE('',#35461); -#31404=PLANE('',#35465); -#31405=PLANE('',#35468); -#31406=PLANE('',#35470); -#31407=PLANE('',#35472); -#31408=PLANE('',#35474); -#31409=PLANE('',#35475); -#31410=PLANE('',#35477); -#31411=PLANE('',#35479); -#31412=PLANE('',#35483); -#31413=PLANE('',#35486); -#31414=PLANE('',#35488); -#31415=PLANE('',#35490); -#31416=PLANE('',#35492); -#31417=PLANE('',#35493); -#31418=PLANE('',#35495); -#31419=PLANE('',#35497); -#31420=PLANE('',#35501); -#31421=PLANE('',#35504); -#31422=PLANE('',#35506); -#31423=PLANE('',#35508); -#31424=PLANE('',#35510); -#31425=PLANE('',#35511); -#31426=PLANE('',#35513); -#31427=PLANE('',#35515); -#31428=PLANE('',#35519); -#31429=PLANE('',#35522); -#31430=PLANE('',#35524); -#31431=PLANE('',#35526); -#31432=PLANE('',#35528); -#31433=PLANE('',#35529); -#31434=PLANE('',#35531); -#31435=PLANE('',#35533); -#31436=PLANE('',#35537); -#31437=PLANE('',#35540); -#31438=PLANE('',#35542); -#31439=PLANE('',#35544); -#31440=PLANE('',#35546); -#31441=PLANE('',#35547); -#31442=PLANE('',#35549); -#31443=PLANE('',#35551); -#31444=PLANE('',#35555); -#31445=PLANE('',#35558); -#31446=PLANE('',#35560); -#31447=PLANE('',#35562); -#31448=PLANE('',#35564); -#31449=PLANE('',#35565); -#31450=PLANE('',#35567); -#31451=PLANE('',#35569); -#31452=PLANE('',#35573); -#31453=PLANE('',#35576); -#31454=PLANE('',#35578); -#31455=PLANE('',#35580); -#31456=PLANE('',#35582); -#31457=PLANE('',#35583); -#31458=PLANE('',#35585); -#31459=PLANE('',#35587); -#31460=PLANE('',#35591); -#31461=PLANE('',#35594); -#31462=PLANE('',#35596); -#31463=PLANE('',#35598); -#31464=PLANE('',#35600); -#31465=PLANE('',#35601); -#31466=PLANE('',#35603); -#31467=PLANE('',#35605); -#31468=PLANE('',#35609); -#31469=PLANE('',#35612); -#31470=PLANE('',#35614); -#31471=PLANE('',#35616); -#31472=PLANE('',#35618); -#31473=PLANE('',#35619); -#31474=PLANE('',#35621); -#31475=PLANE('',#35623); -#31476=PLANE('',#35627); -#31477=PLANE('',#35630); -#31478=PLANE('',#35632); -#31479=PLANE('',#35634); -#31480=PLANE('',#35636); -#31481=PLANE('',#35637); -#31482=PLANE('',#35639); -#31483=PLANE('',#35641); -#31484=PLANE('',#35645); -#31485=PLANE('',#35648); -#31486=PLANE('',#35650); -#31487=PLANE('',#35652); -#31488=PLANE('',#35654); -#31489=PLANE('',#35655); -#31490=PLANE('',#35657); -#31491=PLANE('',#35659); -#31492=PLANE('',#35663); -#31493=PLANE('',#35666); -#31494=PLANE('',#35668); -#31495=PLANE('',#35670); -#31496=PLANE('',#35672); -#31497=PLANE('',#35673); -#31498=PLANE('',#35675); -#31499=PLANE('',#35677); -#31500=PLANE('',#35681); -#31501=PLANE('',#35684); -#31502=PLANE('',#35686); -#31503=PLANE('',#35688); -#31504=PLANE('',#35690); -#31505=PLANE('',#35691); -#31506=PLANE('',#35693); -#31507=PLANE('',#35695); -#31508=PLANE('',#35699); -#31509=PLANE('',#35702); -#31510=PLANE('',#35704); -#31511=PLANE('',#35706); -#31512=PLANE('',#35708); -#31513=PLANE('',#35709); -#31514=PLANE('',#35711); -#31515=PLANE('',#35713); -#31516=PLANE('',#35717); -#31517=PLANE('',#35720); -#31518=PLANE('',#35722); -#31519=PLANE('',#35724); -#31520=PLANE('',#35726); -#31521=PLANE('',#35727); -#31522=PLANE('',#35729); -#31523=PLANE('',#35731); -#31524=PLANE('',#35735); -#31525=PLANE('',#35738); -#31526=PLANE('',#35740); -#31527=PLANE('',#35742); -#31528=PLANE('',#35743); -#31529=PLANE('',#35745); -#31530=PLANE('',#35747); -#31531=PLANE('',#35749); -#31532=PLANE('',#35752); -#31533=PLANE('',#35756); -#31534=PLANE('',#35758); -#31535=PLANE('',#35760); -#31536=PLANE('',#35761); -#31537=PLANE('',#35763); -#31538=PLANE('',#35765); -#31539=PLANE('',#35767); -#31540=PLANE('',#35770); -#31541=PLANE('',#35774); -#31542=PLANE('',#35776); -#31543=PLANE('',#35778); -#31544=PLANE('',#35779); -#31545=PLANE('',#35781); -#31546=PLANE('',#35783); -#31547=PLANE('',#35785); -#31548=PLANE('',#35788); -#31549=PLANE('',#35792); -#31550=PLANE('',#35794); -#31551=PLANE('',#35796); -#31552=PLANE('',#35797); -#31553=PLANE('',#35799); -#31554=PLANE('',#35801); -#31555=PLANE('',#35803); -#31556=PLANE('',#35806); -#31557=PLANE('',#35810); -#31558=PLANE('',#35812); -#31559=PLANE('',#35814); -#31560=PLANE('',#35815); -#31561=PLANE('',#35817); -#31562=PLANE('',#35819); -#31563=PLANE('',#35821); -#31564=PLANE('',#35824); -#31565=PLANE('',#35828); -#31566=PLANE('',#35830); -#31567=PLANE('',#35832); -#31568=PLANE('',#35833); -#31569=PLANE('',#35835); -#31570=PLANE('',#35837); -#31571=PLANE('',#35839); -#31572=PLANE('',#35842); -#31573=PLANE('',#35846); -#31574=PLANE('',#35848); -#31575=PLANE('',#35850); -#31576=PLANE('',#35851); -#31577=PLANE('',#35853); -#31578=PLANE('',#35855); -#31579=PLANE('',#35857); -#31580=PLANE('',#35860); -#31581=PLANE('',#35864); -#31582=PLANE('',#35866); -#31583=PLANE('',#35868); -#31584=PLANE('',#35869); -#31585=PLANE('',#35871); -#31586=PLANE('',#35873); -#31587=PLANE('',#35875); -#31588=PLANE('',#35878); -#31589=PLANE('',#35882); -#31590=PLANE('',#35884); -#31591=PLANE('',#35886); -#31592=PLANE('',#35887); -#31593=PLANE('',#35889); -#31594=PLANE('',#35891); -#31595=PLANE('',#35893); -#31596=PLANE('',#35896); -#31597=PLANE('',#35900); -#31598=PLANE('',#35902); -#31599=PLANE('',#35904); -#31600=PLANE('',#35905); -#31601=PLANE('',#35907); -#31602=PLANE('',#35909); -#31603=PLANE('',#35911); -#31604=PLANE('',#35914); -#31605=PLANE('',#35918); -#31606=PLANE('',#35920); -#31607=PLANE('',#35922); -#31608=PLANE('',#35923); -#31609=PLANE('',#35925); -#31610=PLANE('',#35927); -#31611=PLANE('',#35929); -#31612=PLANE('',#35932); -#31613=PLANE('',#35936); -#31614=PLANE('',#35938); -#31615=PLANE('',#35940); -#31616=PLANE('',#35941); -#31617=PLANE('',#35943); -#31618=PLANE('',#35945); -#31619=PLANE('',#35947); -#31620=PLANE('',#35950); -#31621=PLANE('',#35954); -#31622=PLANE('',#35956); -#31623=PLANE('',#35958); -#31624=PLANE('',#35959); -#31625=PLANE('',#35961); -#31626=PLANE('',#35963); -#31627=PLANE('',#35965); -#31628=PLANE('',#35968); -#31629=PLANE('',#35972); -#31630=PLANE('',#35974); -#31631=PLANE('',#35976); -#31632=PLANE('',#35977); -#31633=PLANE('',#35979); -#31634=PLANE('',#35981); -#31635=PLANE('',#35983); -#31636=PLANE('',#35986); -#31637=PLANE('',#35990); -#31638=PLANE('',#35992); -#31639=PLANE('',#35994); -#31640=PLANE('',#35995); -#31641=PLANE('',#35997); -#31642=PLANE('',#35999); -#31643=PLANE('',#36001); -#31644=PLANE('',#36004); -#31645=PLANE('',#36008); -#31646=PLANE('',#36010); -#31647=PLANE('',#36012); -#31648=PLANE('',#36013); -#31649=PLANE('',#36015); -#31650=PLANE('',#36017); -#31651=PLANE('',#36019); -#31652=PLANE('',#36022); -#31653=PLANE('',#36026); -#31654=PLANE('',#36028); -#31655=PLANE('',#36030); -#31656=PLANE('',#36031); -#31657=PLANE('',#36033); -#31658=PLANE('',#36035); -#31659=PLANE('',#36037); -#31660=PLANE('',#36040); -#31661=PLANE('',#36044); -#31662=PLANE('',#36046); -#31663=PLANE('',#36048); -#31664=PLANE('',#36049); -#31665=PLANE('',#36051); -#31666=PLANE('',#36053); -#31667=PLANE('',#36055); -#31668=PLANE('',#36058); -#31669=PLANE('',#36062); -#31670=PLANE('',#36064); -#31671=PLANE('',#36066); -#31672=PLANE('',#36067); -#31673=PLANE('',#36069); -#31674=PLANE('',#36071); -#31675=PLANE('',#36073); -#31676=PLANE('',#36076); -#31677=PLANE('',#36079); -#31678=PLANE('',#36080); -#31679=PLANE('',#36081); -#31680=ADVANCED_FACE('',(#28878),#30585,.F.); -#31681=ADVANCED_FACE('',(#28879),#30586,.F.); -#31682=ADVANCED_FACE('',(#28880,#28881,#28882,#28883,#28884),#30587,.F.); -#31683=ADVANCED_FACE('',(#28885),#30588,.F.); -#31684=ADVANCED_FACE('',(#28886,#28887),#30589,.T.); -#31685=ADVANCED_FACE('',(#28888),#30590,.F.); -#31686=ADVANCED_FACE('',(#28889),#30591,.T.); -#31687=ADVANCED_FACE('',(#28890),#30592,.T.); -#31688=ADVANCED_FACE('',(#28891),#30593,.T.); -#31689=ADVANCED_FACE('',(#28892),#30594,.T.); -#31690=ADVANCED_FACE('',(#28893),#30595,.T.); -#31691=ADVANCED_FACE('',(#28894),#30596,.T.); -#31692=ADVANCED_FACE('',(#28895),#30597,.T.); -#31693=ADVANCED_FACE('',(#28896),#30598,.T.); -#31694=ADVANCED_FACE('',(#28897),#30599,.T.); -#31695=ADVANCED_FACE('',(#28898),#30600,.T.); -#31696=ADVANCED_FACE('',(#28899),#30601,.T.); -#31697=ADVANCED_FACE('',(#28900),#30602,.T.); -#31698=ADVANCED_FACE('',(#28901),#30603,.T.); -#31699=ADVANCED_FACE('',(#28902),#30604,.T.); -#31700=ADVANCED_FACE('',(#28903),#30605,.T.); -#31701=ADVANCED_FACE('',(#28904),#30606,.T.); -#31702=ADVANCED_FACE('',(#28905),#30607,.T.); -#31703=ADVANCED_FACE('',(#28906),#30608,.T.); -#31704=ADVANCED_FACE('',(#28907),#30609,.T.); -#31705=ADVANCED_FACE('',(#28908),#30610,.T.); -#31706=ADVANCED_FACE('',(#28909),#30611,.T.); -#31707=ADVANCED_FACE('',(#28910),#30612,.T.); -#31708=ADVANCED_FACE('',(#28911),#30613,.T.); -#31709=ADVANCED_FACE('',(#28912),#30614,.T.); -#31710=ADVANCED_FACE('',(#28913),#30615,.T.); -#31711=ADVANCED_FACE('',(#28914),#30616,.T.); -#31712=ADVANCED_FACE('',(#28915),#30617,.T.); -#31713=ADVANCED_FACE('',(#28916),#30618,.T.); -#31714=ADVANCED_FACE('',(#28917),#30619,.T.); -#31715=ADVANCED_FACE('',(#28918),#30620,.T.); -#31716=ADVANCED_FACE('',(#28919),#30621,.T.); -#31717=ADVANCED_FACE('',(#28920),#30622,.T.); -#31718=ADVANCED_FACE('',(#28921),#30623,.T.); -#31719=ADVANCED_FACE('',(#28922),#30624,.T.); -#31720=ADVANCED_FACE('',(#28923),#30625,.T.); -#31721=ADVANCED_FACE('',(#28924),#30626,.T.); -#31722=ADVANCED_FACE('',(#28925),#30627,.T.); -#31723=ADVANCED_FACE('',(#28926),#30628,.T.); -#31724=ADVANCED_FACE('',(#28927),#30629,.T.); -#31725=ADVANCED_FACE('',(#28928),#30630,.T.); -#31726=ADVANCED_FACE('',(#28929),#30631,.T.); -#31727=ADVANCED_FACE('',(#28930),#30632,.T.); -#31728=ADVANCED_FACE('',(#28931),#30633,.T.); -#31729=ADVANCED_FACE('',(#28932),#30634,.T.); -#31730=ADVANCED_FACE('',(#28933),#30635,.T.); -#31731=ADVANCED_FACE('',(#28934),#30636,.T.); -#31732=ADVANCED_FACE('',(#28935),#30637,.T.); -#31733=ADVANCED_FACE('',(#28936),#30638,.T.); -#31734=ADVANCED_FACE('',(#28937),#30639,.T.); -#31735=ADVANCED_FACE('',(#28938),#30640,.T.); -#31736=ADVANCED_FACE('',(#28939),#30641,.T.); -#31737=ADVANCED_FACE('',(#28940),#30642,.T.); -#31738=ADVANCED_FACE('',(#28941),#30643,.T.); -#31739=ADVANCED_FACE('',(#28942),#30644,.T.); -#31740=ADVANCED_FACE('',(#28943),#30645,.T.); -#31741=ADVANCED_FACE('',(#28944),#30646,.T.); -#31742=ADVANCED_FACE('',(#28945),#30647,.T.); -#31743=ADVANCED_FACE('',(#28946),#30648,.T.); -#31744=ADVANCED_FACE('',(#28947),#30649,.T.); -#31745=ADVANCED_FACE('',(#28948),#30650,.T.); -#31746=ADVANCED_FACE('',(#28949),#30651,.T.); -#31747=ADVANCED_FACE('',(#28950),#30652,.T.); -#31748=ADVANCED_FACE('',(#28951),#30653,.T.); -#31749=ADVANCED_FACE('',(#28952),#30654,.T.); -#31750=ADVANCED_FACE('',(#28953),#30655,.T.); -#31751=ADVANCED_FACE('',(#28954),#30656,.T.); -#31752=ADVANCED_FACE('',(#28955),#30657,.T.); -#31753=ADVANCED_FACE('',(#28956),#30658,.T.); -#31754=ADVANCED_FACE('',(#28957),#30659,.T.); -#31755=ADVANCED_FACE('',(#28958),#30660,.T.); -#31756=ADVANCED_FACE('',(#28959),#30661,.T.); -#31757=ADVANCED_FACE('',(#28960),#30662,.T.); -#31758=ADVANCED_FACE('',(#28961),#30663,.T.); -#31759=ADVANCED_FACE('',(#28962),#30664,.T.); -#31760=ADVANCED_FACE('',(#28963),#30665,.T.); -#31761=ADVANCED_FACE('',(#28964),#30666,.T.); -#31762=ADVANCED_FACE('',(#28965),#30667,.T.); -#31763=ADVANCED_FACE('',(#28966),#30668,.T.); -#31764=ADVANCED_FACE('',(#28967),#30669,.T.); -#31765=ADVANCED_FACE('',(#28968),#30670,.T.); -#31766=ADVANCED_FACE('',(#28969),#30671,.F.); -#31767=ADVANCED_FACE('',(#28970),#30672,.F.); -#31768=ADVANCED_FACE('',(#28971),#30673,.F.); -#31769=ADVANCED_FACE('',(#28972),#30674,.F.); -#31770=ADVANCED_FACE('',(#28973),#30675,.F.); -#31771=ADVANCED_FACE('',(#28974),#30676,.F.); -#31772=ADVANCED_FACE('',(#28975),#30677,.F.); -#31773=ADVANCED_FACE('',(#28976),#30678,.F.); -#31774=ADVANCED_FACE('',(#28977),#30679,.F.); -#31775=ADVANCED_FACE('',(#28978),#30680,.F.); -#31776=ADVANCED_FACE('',(#28979),#30681,.F.); -#31777=ADVANCED_FACE('',(#28980),#30682,.F.); -#31778=ADVANCED_FACE('',(#28981),#30683,.F.); -#31779=ADVANCED_FACE('',(#28982),#30684,.F.); -#31780=ADVANCED_FACE('',(#28983),#30685,.F.); -#31781=ADVANCED_FACE('',(#28984),#30686,.F.); -#31782=ADVANCED_FACE('',(#28985),#30687,.F.); -#31783=ADVANCED_FACE('',(#28986),#30688,.F.); -#31784=ADVANCED_FACE('',(#28987),#30689,.F.); -#31785=ADVANCED_FACE('',(#28988),#30690,.F.); -#31786=ADVANCED_FACE('',(#28989),#30691,.F.); -#31787=ADVANCED_FACE('',(#28990),#30692,.T.); -#31788=ADVANCED_FACE('',(#28991),#30693,.T.); -#31789=ADVANCED_FACE('',(#28992),#30694,.T.); -#31790=ADVANCED_FACE('',(#28993),#30695,.T.); -#31791=ADVANCED_FACE('',(#28994),#30696,.T.); -#31792=ADVANCED_FACE('',(#28995),#30697,.T.); -#31793=ADVANCED_FACE('',(#28996),#30698,.T.); -#31794=ADVANCED_FACE('',(#28997),#30699,.T.); -#31795=ADVANCED_FACE('',(#28998),#30700,.T.); -#31796=ADVANCED_FACE('',(#28999),#30701,.T.); -#31797=ADVANCED_FACE('',(#29000),#30702,.T.); -#31798=ADVANCED_FACE('',(#29001),#30703,.T.); -#31799=ADVANCED_FACE('',(#29002),#30704,.T.); -#31800=ADVANCED_FACE('',(#29003),#30705,.T.); -#31801=ADVANCED_FACE('',(#29004),#30706,.T.); -#31802=ADVANCED_FACE('',(#29005),#30707,.T.); -#31803=ADVANCED_FACE('',(#29006),#30708,.T.); -#31804=ADVANCED_FACE('',(#29007),#30709,.T.); -#31805=ADVANCED_FACE('',(#29008),#30710,.T.); -#31806=ADVANCED_FACE('',(#29009),#30711,.T.); -#31807=ADVANCED_FACE('',(#29010),#30712,.T.); -#31808=ADVANCED_FACE('',(#29011),#30713,.F.); -#31809=ADVANCED_FACE('',(#29012),#30714,.F.); -#31810=ADVANCED_FACE('',(#29013),#30715,.F.); -#31811=ADVANCED_FACE('',(#29014),#30716,.F.); -#31812=ADVANCED_FACE('',(#29015),#30717,.F.); -#31813=ADVANCED_FACE('',(#29016),#30718,.F.); -#31814=ADVANCED_FACE('',(#29017),#30719,.F.); -#31815=ADVANCED_FACE('',(#29018),#30720,.F.); -#31816=ADVANCED_FACE('',(#29019),#30721,.F.); -#31817=ADVANCED_FACE('',(#29020),#30722,.F.); -#31818=ADVANCED_FACE('',(#29021),#30723,.F.); -#31819=ADVANCED_FACE('',(#29022),#30724,.F.); -#31820=ADVANCED_FACE('',(#29023),#30725,.F.); -#31821=ADVANCED_FACE('',(#29024),#30726,.F.); -#31822=ADVANCED_FACE('',(#29025),#30727,.F.); -#31823=ADVANCED_FACE('',(#29026),#30728,.F.); -#31824=ADVANCED_FACE('',(#29027),#30729,.F.); -#31825=ADVANCED_FACE('',(#29028),#30730,.F.); -#31826=ADVANCED_FACE('',(#29029),#30731,.F.); -#31827=ADVANCED_FACE('',(#29030),#30732,.F.); -#31828=ADVANCED_FACE('',(#29031),#30733,.F.); -#31829=ADVANCED_FACE('',(#29032),#30734,.F.); -#31830=ADVANCED_FACE('',(#29033),#30735,.F.); -#31831=ADVANCED_FACE('',(#29034),#30736,.F.); -#31832=ADVANCED_FACE('',(#29035),#30737,.F.); -#31833=ADVANCED_FACE('',(#29036),#30738,.F.); -#31834=ADVANCED_FACE('',(#29037),#30739,.F.); -#31835=ADVANCED_FACE('',(#29038),#30740,.F.); -#31836=ADVANCED_FACE('',(#29039),#30741,.F.); -#31837=ADVANCED_FACE('',(#29040),#30742,.F.); -#31838=ADVANCED_FACE('',(#29041),#30743,.F.); -#31839=ADVANCED_FACE('',(#29042),#30744,.F.); -#31840=ADVANCED_FACE('',(#29043),#30745,.F.); -#31841=ADVANCED_FACE('',(#29044),#30746,.F.); -#31842=ADVANCED_FACE('',(#29045),#30747,.F.); -#31843=ADVANCED_FACE('',(#29046),#30748,.F.); -#31844=ADVANCED_FACE('',(#29047),#30749,.F.); -#31845=ADVANCED_FACE('',(#29048),#30750,.F.); -#31846=ADVANCED_FACE('',(#29049),#30751,.F.); -#31847=ADVANCED_FACE('',(#29050),#30752,.F.); -#31848=ADVANCED_FACE('',(#29051),#30753,.F.); -#31849=ADVANCED_FACE('',(#29052),#30754,.F.); -#31850=ADVANCED_FACE('',(#29053),#30755,.F.); -#31851=ADVANCED_FACE('',(#29054),#30756,.F.); -#31852=ADVANCED_FACE('',(#29055),#30757,.F.); -#31853=ADVANCED_FACE('',(#29056),#30758,.F.); -#31854=ADVANCED_FACE('',(#29057),#30759,.F.); -#31855=ADVANCED_FACE('',(#29058),#30760,.F.); -#31856=ADVANCED_FACE('',(#29059),#30761,.F.); -#31857=ADVANCED_FACE('',(#29060),#30762,.F.); -#31858=ADVANCED_FACE('',(#29061),#30763,.F.); -#31859=ADVANCED_FACE('',(#29062),#30764,.F.); -#31860=ADVANCED_FACE('',(#29063),#30765,.T.); -#31861=ADVANCED_FACE('',(#29064),#30766,.F.); -#31862=ADVANCED_FACE('',(#29065),#30767,.F.); -#31863=ADVANCED_FACE('',(#29066),#30768,.F.); -#31864=ADVANCED_FACE('',(#29067),#30769,.T.); -#31865=ADVANCED_FACE('',(#29068),#30770,.F.); -#31866=ADVANCED_FACE('',(#29069),#30771,.F.); -#31867=ADVANCED_FACE('',(#29070),#30772,.F.); -#31868=ADVANCED_FACE('',(#29071),#30773,.F.); -#31869=ADVANCED_FACE('',(#29072),#30774,.T.); -#31870=ADVANCED_FACE('',(#29073),#30775,.T.); -#31871=ADVANCED_FACE('',(#29074),#30776,.T.); -#31872=ADVANCED_FACE('',(#29075),#30777,.T.); -#31873=ADVANCED_FACE('',(#29076),#30778,.T.); -#31874=ADVANCED_FACE('',(#29077),#30779,.T.); -#31875=ADVANCED_FACE('',(#29078),#30780,.T.); -#31876=ADVANCED_FACE('',(#29079),#30781,.T.); -#31877=ADVANCED_FACE('',(#29080),#30782,.F.); -#31878=ADVANCED_FACE('',(#29081),#30783,.F.); -#31879=ADVANCED_FACE('',(#29082),#30784,.F.); -#31880=ADVANCED_FACE('',(#29083),#30785,.T.); -#31881=ADVANCED_FACE('',(#29084),#30786,.T.); -#31882=ADVANCED_FACE('',(#29085),#30787,.T.); -#31883=ADVANCED_FACE('',(#29086),#30788,.T.); -#31884=ADVANCED_FACE('',(#29087),#30789,.F.); -#31885=ADVANCED_FACE('',(#29088),#30790,.F.); -#31886=ADVANCED_FACE('',(#29089),#30791,.F.); -#31887=ADVANCED_FACE('',(#29090),#30792,.F.); -#31888=ADVANCED_FACE('',(#29091),#30793,.F.); -#31889=ADVANCED_FACE('',(#29092),#30794,.F.); -#31890=ADVANCED_FACE('',(#29093),#30795,.F.); -#31891=ADVANCED_FACE('',(#29094),#30796,.F.); -#31892=ADVANCED_FACE('',(#29095),#30797,.F.); -#31893=ADVANCED_FACE('',(#29096),#30798,.F.); -#31894=ADVANCED_FACE('',(#29097),#30799,.F.); -#31895=ADVANCED_FACE('',(#29098),#30800,.F.); -#31896=ADVANCED_FACE('',(#29099),#30801,.F.); -#31897=ADVANCED_FACE('',(#29100),#30802,.F.); -#31898=ADVANCED_FACE('',(#29101),#30803,.F.); -#31899=ADVANCED_FACE('',(#29102),#30804,.F.); -#31900=ADVANCED_FACE('',(#29103),#30805,.F.); -#31901=ADVANCED_FACE('',(#29104),#30806,.F.); -#31902=ADVANCED_FACE('',(#29105),#30807,.F.); -#31903=ADVANCED_FACE('',(#29106),#30808,.F.); -#31904=ADVANCED_FACE('',(#29107),#30809,.F.); -#31905=ADVANCED_FACE('',(#29108),#30810,.F.); -#31906=ADVANCED_FACE('',(#29109),#30811,.F.); -#31907=ADVANCED_FACE('',(#29110),#30812,.F.); -#31908=ADVANCED_FACE('',(#29111),#30813,.F.); -#31909=ADVANCED_FACE('',(#29112),#30814,.F.); -#31910=ADVANCED_FACE('',(#29113),#30815,.F.); -#31911=ADVANCED_FACE('',(#29114),#30816,.F.); -#31912=ADVANCED_FACE('',(#29115),#30817,.F.); -#31913=ADVANCED_FACE('',(#29116),#30818,.F.); -#31914=ADVANCED_FACE('',(#29117),#30819,.F.); -#31915=ADVANCED_FACE('',(#29118),#30820,.F.); -#31916=ADVANCED_FACE('',(#29119),#30821,.F.); -#31917=ADVANCED_FACE('',(#29120),#30822,.F.); -#31918=ADVANCED_FACE('',(#29121),#30823,.F.); -#31919=ADVANCED_FACE('',(#29122),#30824,.F.); -#31920=ADVANCED_FACE('',(#29123),#30825,.F.); -#31921=ADVANCED_FACE('',(#29124),#30826,.F.); -#31922=ADVANCED_FACE('',(#29125),#30827,.F.); -#31923=ADVANCED_FACE('',(#29126),#30828,.F.); -#31924=ADVANCED_FACE('',(#29127),#30829,.F.); -#31925=ADVANCED_FACE('',(#29128),#30830,.F.); -#31926=ADVANCED_FACE('',(#29129),#30831,.F.); -#31927=ADVANCED_FACE('',(#29130),#30832,.F.); -#31928=ADVANCED_FACE('',(#29131),#30833,.T.); -#31929=ADVANCED_FACE('',(#29132),#30834,.F.); -#31930=ADVANCED_FACE('',(#29133),#30835,.T.); -#31931=ADVANCED_FACE('',(#29134),#30836,.F.); -#31932=ADVANCED_FACE('',(#29135),#30837,.T.); -#31933=ADVANCED_FACE('',(#29136),#30838,.F.); -#31934=ADVANCED_FACE('',(#29137),#30839,.T.); -#31935=ADVANCED_FACE('',(#29138),#30840,.F.); -#31936=ADVANCED_FACE('',(#29139),#30841,.T.); -#31937=ADVANCED_FACE('',(#29140),#30842,.F.); -#31938=ADVANCED_FACE('',(#29141),#30843,.T.); -#31939=ADVANCED_FACE('',(#29142),#30844,.F.); -#31940=ADVANCED_FACE('',(#29143),#30845,.T.); -#31941=ADVANCED_FACE('',(#29144),#30846,.F.); -#31942=ADVANCED_FACE('',(#29145),#30847,.T.); -#31943=ADVANCED_FACE('',(#29146),#30848,.F.); -#31944=ADVANCED_FACE('',(#29147),#30849,.T.); -#31945=ADVANCED_FACE('',(#29148),#30850,.F.); -#31946=ADVANCED_FACE('',(#29149),#30851,.T.); -#31947=ADVANCED_FACE('',(#29150),#30852,.F.); -#31948=ADVANCED_FACE('',(#29151),#30853,.T.); -#31949=ADVANCED_FACE('',(#29152),#30854,.F.); -#31950=ADVANCED_FACE('',(#29153),#30855,.T.); -#31951=ADVANCED_FACE('',(#29154),#30856,.F.); -#31952=ADVANCED_FACE('',(#29155),#30857,.T.); -#31953=ADVANCED_FACE('',(#29156),#30858,.F.); -#31954=ADVANCED_FACE('',(#29157),#30859,.T.); -#31955=ADVANCED_FACE('',(#29158),#30860,.F.); -#31956=ADVANCED_FACE('',(#29159),#30861,.T.); -#31957=ADVANCED_FACE('',(#29160),#30862,.F.); -#31958=ADVANCED_FACE('',(#29161),#30863,.T.); -#31959=ADVANCED_FACE('',(#29162),#30864,.F.); -#31960=ADVANCED_FACE('',(#29163),#30865,.T.); -#31961=ADVANCED_FACE('',(#29164),#30866,.F.); -#31962=ADVANCED_FACE('',(#29165),#30867,.T.); -#31963=ADVANCED_FACE('',(#29166),#30868,.F.); -#31964=ADVANCED_FACE('',(#29167),#30869,.T.); -#31965=ADVANCED_FACE('',(#29168),#30870,.F.); -#31966=ADVANCED_FACE('',(#29169),#30871,.F.); -#31967=ADVANCED_FACE('',(#29170),#30872,.T.); -#31968=ADVANCED_FACE('',(#29171),#30873,.F.); -#31969=ADVANCED_FACE('',(#29172),#30874,.F.); -#31970=ADVANCED_FACE('',(#29173),#357,.T.); -#31971=ADVANCED_FACE('',(#29174),#30875,.F.); -#31972=ADVANCED_FACE('',(#29175),#30876,.F.); -#31973=ADVANCED_FACE('',(#29176),#358,.T.); -#31974=ADVANCED_FACE('',(#29177),#30877,.F.); -#31975=ADVANCED_FACE('',(#29178),#30878,.F.); -#31976=ADVANCED_FACE('',(#29179),#359,.T.); -#31977=ADVANCED_FACE('',(#29180),#30879,.F.); -#31978=ADVANCED_FACE('',(#29181),#30880,.F.); -#31979=ADVANCED_FACE('',(#29182),#360,.T.); -#31980=ADVANCED_FACE('',(#29183),#30881,.F.); -#31981=ADVANCED_FACE('',(#29184),#30882,.F.); -#31982=ADVANCED_FACE('',(#29185),#361,.T.); -#31983=ADVANCED_FACE('',(#29186),#30883,.F.); -#31984=ADVANCED_FACE('',(#29187),#30884,.F.); -#31985=ADVANCED_FACE('',(#29188),#362,.T.); -#31986=ADVANCED_FACE('',(#29189),#30885,.F.); -#31987=ADVANCED_FACE('',(#29190),#30886,.F.); -#31988=ADVANCED_FACE('',(#29191),#363,.T.); -#31989=ADVANCED_FACE('',(#29192),#30887,.F.); -#31990=ADVANCED_FACE('',(#29193),#30888,.F.); -#31991=ADVANCED_FACE('',(#29194),#364,.T.); -#31992=ADVANCED_FACE('',(#29195),#30889,.F.); -#31993=ADVANCED_FACE('',(#29196),#30890,.F.); -#31994=ADVANCED_FACE('',(#29197),#365,.T.); -#31995=ADVANCED_FACE('',(#29198),#30891,.F.); -#31996=ADVANCED_FACE('',(#29199),#30892,.F.); -#31997=ADVANCED_FACE('',(#29200),#366,.T.); -#31998=ADVANCED_FACE('',(#29201),#30893,.F.); -#31999=ADVANCED_FACE('',(#29202),#30894,.F.); -#32000=ADVANCED_FACE('',(#29203),#367,.T.); -#32001=ADVANCED_FACE('',(#29204),#30895,.F.); -#32002=ADVANCED_FACE('',(#29205),#30896,.F.); -#32003=ADVANCED_FACE('',(#29206),#368,.T.); -#32004=ADVANCED_FACE('',(#29207),#30897,.F.); -#32005=ADVANCED_FACE('',(#29208),#30898,.F.); -#32006=ADVANCED_FACE('',(#29209),#369,.T.); -#32007=ADVANCED_FACE('',(#29210),#30899,.F.); -#32008=ADVANCED_FACE('',(#29211),#30900,.F.); -#32009=ADVANCED_FACE('',(#29212),#370,.T.); -#32010=ADVANCED_FACE('',(#29213),#30901,.F.); -#32011=ADVANCED_FACE('',(#29214),#30902,.F.); -#32012=ADVANCED_FACE('',(#29215),#371,.T.); -#32013=ADVANCED_FACE('',(#29216),#30903,.F.); -#32014=ADVANCED_FACE('',(#29217),#30904,.F.); -#32015=ADVANCED_FACE('',(#29218),#372,.T.); -#32016=ADVANCED_FACE('',(#29219),#30905,.F.); -#32017=ADVANCED_FACE('',(#29220),#30906,.F.); -#32018=ADVANCED_FACE('',(#29221),#373,.T.); -#32019=ADVANCED_FACE('',(#29222),#30907,.F.); -#32020=ADVANCED_FACE('',(#29223),#30908,.F.); -#32021=ADVANCED_FACE('',(#29224),#374,.T.); -#32022=ADVANCED_FACE('',(#29225),#30909,.F.); -#32023=ADVANCED_FACE('',(#29226),#30910,.F.); -#32024=ADVANCED_FACE('',(#29227),#375,.T.); -#32025=ADVANCED_FACE('',(#29228),#376,.T.); -#32026=ADVANCED_FACE('',(#29229),#30911,.F.); -#32027=ADVANCED_FACE('',(#29230),#30912,.F.); -#32028=ADVANCED_FACE('',(#29231),#30913,.F.); -#32029=ADVANCED_FACE('',(#29232),#30914,.F.); -#32030=ADVANCED_FACE('',(#29233),#30915,.T.); -#32031=ADVANCED_FACE('',(#29234),#30916,.T.); -#32032=ADVANCED_FACE('',(#29235),#30917,.T.); -#32033=ADVANCED_FACE('',(#29236),#30918,.F.); -#32034=ADVANCED_FACE('',(#29237,#29238),#377,.T.); -#32035=ADVANCED_FACE('',(#29239,#29240),#356,.T.); -#32036=ADVANCED_FACE('',(#29241),#30919,.F.); -#32037=ADVANCED_FACE('',(#29242),#30920,.T.); -#32038=ADVANCED_FACE('',(#29243),#378,.T.); -#32039=ADVANCED_FACE('',(#29244),#30921,.T.); -#32040=ADVANCED_FACE('',(#29245),#379,.T.); -#32041=ADVANCED_FACE('',(#29246),#30922,.T.); -#32042=ADVANCED_FACE('',(#29247),#380,.T.); -#32043=ADVANCED_FACE('',(#29248),#30923,.T.); -#32044=ADVANCED_FACE('',(#29249),#381,.T.); -#32045=ADVANCED_FACE('',(#29250),#30924,.F.); -#32046=ADVANCED_FACE('',(#29251),#30925,.T.); -#32047=ADVANCED_FACE('',(#29252),#382,.F.); -#32048=ADVANCED_FACE('',(#29253),#383,.F.); -#32049=ADVANCED_FACE('',(#29254),#384,.T.); -#32050=ADVANCED_FACE('',(#29255),#385,.F.); -#32051=ADVANCED_FACE('',(#29256),#386,.F.); -#32052=ADVANCED_FACE('',(#29257),#30926,.T.); -#32053=ADVANCED_FACE('',(#29258),#387,.F.); -#32054=ADVANCED_FACE('',(#29259),#30927,.T.); -#32055=ADVANCED_FACE('',(#29260),#30928,.T.); -#32056=ADVANCED_FACE('',(#29261),#30929,.F.); -#32057=ADVANCED_FACE('',(#29262),#30930,.T.); -#32058=ADVANCED_FACE('',(#29263),#388,.F.); -#32059=ADVANCED_FACE('',(#29264),#389,.F.); -#32060=ADVANCED_FACE('',(#29265),#390,.T.); -#32061=ADVANCED_FACE('',(#29266),#391,.F.); -#32062=ADVANCED_FACE('',(#29267),#392,.F.); -#32063=ADVANCED_FACE('',(#29268),#30931,.T.); -#32064=ADVANCED_FACE('',(#29269),#393,.F.); -#32065=ADVANCED_FACE('',(#29270),#30932,.T.); -#32066=ADVANCED_FACE('',(#29271),#394,.F.); -#32067=ADVANCED_FACE('',(#29272),#30933,.F.); -#32068=ADVANCED_FACE('',(#29273),#30934,.T.); -#32069=ADVANCED_FACE('',(#29274),#30935,.T.); -#32070=ADVANCED_FACE('',(#29275),#30936,.F.); -#32071=ADVANCED_FACE('',(#29276),#395,.F.); -#32072=ADVANCED_FACE('',(#29277),#30937,.T.); -#32073=ADVANCED_FACE('',(#29278),#396,.F.); -#32074=ADVANCED_FACE('',(#29279),#30938,.T.); -#32075=ADVANCED_FACE('',(#29280),#30939,.T.); -#32076=ADVANCED_FACE('',(#29281),#30940,.F.); -#32077=ADVANCED_FACE('',(#29282),#30941,.T.); -#32078=ADVANCED_FACE('',(#29283),#397,.F.); -#32079=ADVANCED_FACE('',(#29284),#398,.F.); -#32080=ADVANCED_FACE('',(#29285),#30942,.F.); -#32081=ADVANCED_FACE('',(#29286),#30943,.F.); -#32082=ADVANCED_FACE('',(#29287),#30944,.F.); -#32083=ADVANCED_FACE('',(#29288),#30945,.F.); -#32084=ADVANCED_FACE('',(#29289),#30946,.F.); -#32085=ADVANCED_FACE('',(#29290),#30947,.T.); -#32086=ADVANCED_FACE('',(#29291),#30948,.T.); -#32087=ADVANCED_FACE('',(#29292),#30949,.F.); -#32088=ADVANCED_FACE('',(#29293),#30950,.T.); -#32089=ADVANCED_FACE('',(#29294),#30951,.T.); -#32090=ADVANCED_FACE('',(#29295),#30952,.F.); -#32091=ADVANCED_FACE('',(#29296),#30953,.F.); -#32092=ADVANCED_FACE('',(#29297),#30954,.F.); -#32093=ADVANCED_FACE('',(#29298),#30955,.F.); -#32094=ADVANCED_FACE('',(#29299),#30956,.F.); -#32095=ADVANCED_FACE('',(#29300),#30957,.F.); -#32096=ADVANCED_FACE('',(#29301),#30958,.F.); -#32097=ADVANCED_FACE('',(#29302),#30959,.F.); -#32098=ADVANCED_FACE('',(#29303),#30960,.F.); -#32099=ADVANCED_FACE('',(#29304),#30961,.F.); -#32100=ADVANCED_FACE('',(#29305),#30962,.F.); -#32101=ADVANCED_FACE('',(#29306),#30963,.F.); -#32102=ADVANCED_FACE('',(#29307),#30964,.F.); -#32103=ADVANCED_FACE('',(#29308),#30965,.F.); -#32104=ADVANCED_FACE('',(#29309),#30966,.F.); -#32105=ADVANCED_FACE('',(#29310),#30967,.F.); -#32106=ADVANCED_FACE('',(#29311),#30968,.F.); -#32107=ADVANCED_FACE('',(#29312),#30969,.F.); -#32108=ADVANCED_FACE('',(#29313),#30970,.F.); -#32109=ADVANCED_FACE('',(#29314),#30971,.F.); -#32110=ADVANCED_FACE('',(#29315),#30972,.F.); -#32111=ADVANCED_FACE('',(#29316),#30973,.F.); -#32112=ADVANCED_FACE('',(#29317),#30974,.F.); -#32113=ADVANCED_FACE('',(#29318),#30975,.F.); -#32114=ADVANCED_FACE('',(#29319),#30976,.F.); -#32115=ADVANCED_FACE('',(#29320),#30977,.F.); -#32116=ADVANCED_FACE('',(#29321),#30978,.F.); -#32117=ADVANCED_FACE('',(#29322),#30979,.F.); -#32118=ADVANCED_FACE('',(#29323),#30980,.F.); -#32119=ADVANCED_FACE('',(#29324),#30981,.F.); -#32120=ADVANCED_FACE('',(#29325),#30982,.F.); -#32121=ADVANCED_FACE('',(#29326),#30983,.F.); -#32122=ADVANCED_FACE('',(#29327),#30984,.F.); -#32123=ADVANCED_FACE('',(#29328),#30985,.F.); -#32124=ADVANCED_FACE('',(#29329),#30986,.F.); -#32125=ADVANCED_FACE('',(#29330),#30987,.F.); -#32126=ADVANCED_FACE('',(#29331),#30988,.F.); -#32127=ADVANCED_FACE('',(#29332),#30989,.F.); -#32128=ADVANCED_FACE('',(#29333),#30990,.F.); -#32129=ADVANCED_FACE('',(#29334),#30991,.F.); -#32130=ADVANCED_FACE('',(#29335),#30992,.F.); -#32131=ADVANCED_FACE('',(#29336),#30993,.F.); -#32132=ADVANCED_FACE('',(#29337),#30994,.F.); -#32133=ADVANCED_FACE('',(#29338),#30995,.F.); -#32134=ADVANCED_FACE('',(#29339),#30996,.F.); -#32135=ADVANCED_FACE('',(#29340),#30997,.F.); -#32136=ADVANCED_FACE('',(#29341),#30998,.F.); -#32137=ADVANCED_FACE('',(#29342),#30999,.F.); -#32138=ADVANCED_FACE('',(#29343),#31000,.F.); -#32139=ADVANCED_FACE('',(#29344),#31001,.F.); -#32140=ADVANCED_FACE('',(#29345),#31002,.F.); -#32141=ADVANCED_FACE('',(#29346),#31003,.F.); -#32142=ADVANCED_FACE('',(#29347),#31004,.F.); -#32143=ADVANCED_FACE('',(#29348),#31005,.F.); -#32144=ADVANCED_FACE('',(#29349),#31006,.F.); -#32145=ADVANCED_FACE('',(#29350),#31007,.F.); -#32146=ADVANCED_FACE('',(#29351),#31008,.F.); -#32147=ADVANCED_FACE('',(#29352),#31009,.F.); -#32148=ADVANCED_FACE('',(#29353),#31010,.F.); -#32149=ADVANCED_FACE('',(#29354),#31011,.F.); -#32150=ADVANCED_FACE('',(#29355),#31012,.F.); -#32151=ADVANCED_FACE('',(#29356),#31013,.F.); -#32152=ADVANCED_FACE('',(#29357),#31014,.F.); -#32153=ADVANCED_FACE('',(#29358),#31015,.F.); -#32154=ADVANCED_FACE('',(#29359),#31016,.F.); -#32155=ADVANCED_FACE('',(#29360),#31017,.F.); -#32156=ADVANCED_FACE('',(#29361),#31018,.F.); -#32157=ADVANCED_FACE('',(#29362),#31019,.F.); -#32158=ADVANCED_FACE('',(#29363),#31020,.F.); -#32159=ADVANCED_FACE('',(#29364),#31021,.F.); -#32160=ADVANCED_FACE('',(#29365),#31022,.F.); -#32161=ADVANCED_FACE('',(#29366),#31023,.F.); -#32162=ADVANCED_FACE('',(#29367),#31024,.F.); -#32163=ADVANCED_FACE('',(#29368),#31025,.F.); -#32164=ADVANCED_FACE('',(#29369),#31026,.F.); -#32165=ADVANCED_FACE('',(#29370),#31027,.F.); -#32166=ADVANCED_FACE('',(#29371),#31028,.F.); -#32167=ADVANCED_FACE('',(#29372),#31029,.F.); -#32168=ADVANCED_FACE('',(#29373),#31030,.F.); -#32169=ADVANCED_FACE('',(#29374),#31031,.F.); -#32170=ADVANCED_FACE('',(#29375),#31032,.F.); -#32171=ADVANCED_FACE('',(#29376),#31033,.F.); -#32172=ADVANCED_FACE('',(#29377),#31034,.F.); -#32173=ADVANCED_FACE('',(#29378),#31035,.F.); -#32174=ADVANCED_FACE('',(#29379),#31036,.F.); -#32175=ADVANCED_FACE('',(#29380),#31037,.F.); -#32176=ADVANCED_FACE('',(#29381),#31038,.F.); -#32177=ADVANCED_FACE('',(#29382),#31039,.F.); -#32178=ADVANCED_FACE('',(#29383),#31040,.F.); -#32179=ADVANCED_FACE('',(#29384),#31041,.F.); -#32180=ADVANCED_FACE('',(#29385),#31042,.F.); -#32181=ADVANCED_FACE('',(#29386),#31043,.F.); -#32182=ADVANCED_FACE('',(#29387),#31044,.F.); -#32183=ADVANCED_FACE('',(#29388),#31045,.F.); -#32184=ADVANCED_FACE('',(#29389),#31046,.F.); -#32185=ADVANCED_FACE('',(#29390),#31047,.F.); -#32186=ADVANCED_FACE('',(#29391),#31048,.F.); -#32187=ADVANCED_FACE('',(#29392),#399,.T.); -#32188=ADVANCED_FACE('',(#29393),#400,.T.); -#32189=ADVANCED_FACE('',(#29394),#401,.T.); -#32190=ADVANCED_FACE('',(#29395),#402,.T.); -#32191=ADVANCED_FACE('',(#29396),#403,.T.); -#32192=ADVANCED_FACE('',(#29397),#404,.T.); -#32193=ADVANCED_FACE('',(#29398),#405,.T.); -#32194=ADVANCED_FACE('',(#29399),#406,.T.); -#32195=ADVANCED_FACE('',(#29400),#407,.T.); -#32196=ADVANCED_FACE('',(#29401),#408,.T.); -#32197=ADVANCED_FACE('',(#29402),#409,.T.); -#32198=ADVANCED_FACE('',(#29403),#410,.T.); -#32199=ADVANCED_FACE('',(#29404),#411,.T.); -#32200=ADVANCED_FACE('',(#29405),#412,.T.); -#32201=ADVANCED_FACE('',(#29406),#413,.T.); -#32202=ADVANCED_FACE('',(#29407),#414,.T.); -#32203=ADVANCED_FACE('',(#29408),#415,.T.); -#32204=ADVANCED_FACE('',(#29409),#416,.T.); -#32205=ADVANCED_FACE('',(#29410),#417,.T.); -#32206=ADVANCED_FACE('',(#29411),#418,.T.); -#32207=ADVANCED_FACE('',(#29412),#419,.T.); -#32208=ADVANCED_FACE('',(#29413),#420,.T.); -#32209=ADVANCED_FACE('',(#29414),#421,.T.); -#32210=ADVANCED_FACE('',(#29415),#422,.T.); -#32211=ADVANCED_FACE('',(#29416),#423,.T.); -#32212=ADVANCED_FACE('',(#29417),#424,.T.); -#32213=ADVANCED_FACE('',(#29418),#425,.T.); -#32214=ADVANCED_FACE('',(#29419),#426,.T.); -#32215=ADVANCED_FACE('',(#29420),#427,.T.); -#32216=ADVANCED_FACE('',(#29421),#428,.T.); -#32217=ADVANCED_FACE('',(#29422),#429,.T.); -#32218=ADVANCED_FACE('',(#29423),#430,.T.); -#32219=ADVANCED_FACE('',(#29424),#431,.T.); -#32220=ADVANCED_FACE('',(#29425),#432,.T.); -#32221=ADVANCED_FACE('',(#29426),#433,.T.); -#32222=ADVANCED_FACE('',(#29427),#434,.T.); -#32223=ADVANCED_FACE('',(#29428),#435,.T.); -#32224=ADVANCED_FACE('',(#29429),#436,.T.); -#32225=ADVANCED_FACE('',(#29430),#31049,.F.); -#32226=ADVANCED_FACE('',(#29431),#31050,.F.); -#32227=ADVANCED_FACE('',(#29432),#31051,.F.); -#32228=ADVANCED_FACE('',(#29433),#31052,.F.); -#32229=ADVANCED_FACE('',(#29434),#31053,.F.); -#32230=ADVANCED_FACE('',(#29435),#31054,.F.); -#32231=ADVANCED_FACE('',(#29436),#31055,.F.); -#32232=ADVANCED_FACE('',(#29437),#31056,.F.); -#32233=ADVANCED_FACE('',(#29438),#31057,.F.); -#32234=ADVANCED_FACE('',(#29439),#31058,.F.); -#32235=ADVANCED_FACE('',(#29440),#31059,.F.); -#32236=ADVANCED_FACE('',(#29441),#31060,.F.); -#32237=ADVANCED_FACE('',(#29442),#31061,.F.); -#32238=ADVANCED_FACE('',(#29443),#31062,.F.); -#32239=ADVANCED_FACE('',(#29444),#31063,.F.); -#32240=ADVANCED_FACE('',(#29445),#31064,.F.); -#32241=ADVANCED_FACE('',(#29446),#31065,.F.); -#32242=ADVANCED_FACE('',(#29447),#31066,.F.); -#32243=ADVANCED_FACE('',(#29448),#31067,.F.); -#32244=ADVANCED_FACE('',(#29449),#437,.F.); -#32245=ADVANCED_FACE('',(#29450),#438,.F.); -#32246=ADVANCED_FACE('',(#29451),#439,.F.); -#32247=ADVANCED_FACE('',(#29452),#440,.F.); -#32248=ADVANCED_FACE('',(#29453),#441,.F.); -#32249=ADVANCED_FACE('',(#29454),#442,.F.); -#32250=ADVANCED_FACE('',(#29455),#443,.F.); -#32251=ADVANCED_FACE('',(#29456),#444,.F.); -#32252=ADVANCED_FACE('',(#29457),#445,.F.); -#32253=ADVANCED_FACE('',(#29458),#446,.F.); -#32254=ADVANCED_FACE('',(#29459),#447,.F.); -#32255=ADVANCED_FACE('',(#29460),#448,.F.); -#32256=ADVANCED_FACE('',(#29461),#449,.F.); -#32257=ADVANCED_FACE('',(#29462),#450,.F.); -#32258=ADVANCED_FACE('',(#29463),#451,.F.); -#32259=ADVANCED_FACE('',(#29464),#452,.F.); -#32260=ADVANCED_FACE('',(#29465),#453,.F.); -#32261=ADVANCED_FACE('',(#29466),#454,.F.); -#32262=ADVANCED_FACE('',(#29467),#455,.F.); -#32263=ADVANCED_FACE('',(#29468),#456,.F.); -#32264=ADVANCED_FACE('',(#29469),#457,.F.); -#32265=ADVANCED_FACE('',(#29470),#458,.F.); -#32266=ADVANCED_FACE('',(#29471),#459,.F.); -#32267=ADVANCED_FACE('',(#29472),#460,.F.); -#32268=ADVANCED_FACE('',(#29473),#461,.F.); -#32269=ADVANCED_FACE('',(#29474),#462,.F.); -#32270=ADVANCED_FACE('',(#29475),#463,.F.); -#32271=ADVANCED_FACE('',(#29476),#464,.F.); -#32272=ADVANCED_FACE('',(#29477),#465,.F.); -#32273=ADVANCED_FACE('',(#29478),#466,.F.); -#32274=ADVANCED_FACE('',(#29479),#467,.F.); -#32275=ADVANCED_FACE('',(#29480),#468,.F.); -#32276=ADVANCED_FACE('',(#29481),#469,.F.); -#32277=ADVANCED_FACE('',(#29482),#470,.F.); -#32278=ADVANCED_FACE('',(#29483),#471,.F.); -#32279=ADVANCED_FACE('',(#29484),#472,.F.); -#32280=ADVANCED_FACE('',(#29485),#473,.F.); -#32281=ADVANCED_FACE('',(#29486),#474,.F.); -#32282=ADVANCED_FACE('',(#29487),#31068,.F.); -#32283=ADVANCED_FACE('',(#29488),#475,.T.); -#32284=ADVANCED_FACE('',(#29489),#476,.T.); -#32285=ADVANCED_FACE('',(#29490),#31069,.F.); -#32286=ADVANCED_FACE('',(#29491),#477,.F.); -#32287=ADVANCED_FACE('',(#29492),#478,.F.); -#32288=ADVANCED_FACE('',(#29493),#31070,.F.); -#32289=ADVANCED_FACE('',(#29494),#31071,.F.); -#32290=ADVANCED_FACE('',(#29495),#31072,.F.); -#32291=ADVANCED_FACE('',(#29496),#31073,.F.); -#32292=ADVANCED_FACE('',(#29497),#31074,.F.); -#32293=ADVANCED_FACE('',(#29498),#31075,.F.); -#32294=ADVANCED_FACE('',(#29499),#31076,.F.); -#32295=ADVANCED_FACE('',(#29500),#31077,.F.); -#32296=ADVANCED_FACE('',(#29501),#31078,.F.); -#32297=ADVANCED_FACE('',(#29502),#31079,.F.); -#32298=ADVANCED_FACE('',(#29503),#31080,.F.); -#32299=ADVANCED_FACE('',(#29504),#31081,.F.); -#32300=ADVANCED_FACE('',(#29505),#31082,.F.); -#32301=ADVANCED_FACE('',(#29506),#31083,.F.); -#32302=ADVANCED_FACE('',(#29507),#31084,.F.); -#32303=ADVANCED_FACE('',(#29508),#31085,.F.); -#32304=ADVANCED_FACE('',(#29509),#31086,.F.); -#32305=ADVANCED_FACE('',(#29510),#31087,.F.); -#32306=ADVANCED_FACE('',(#29511),#31088,.F.); -#32307=ADVANCED_FACE('',(#29512),#31089,.F.); -#32308=ADVANCED_FACE('',(#29513),#31090,.F.); -#32309=ADVANCED_FACE('',(#29514),#31091,.F.); -#32310=ADVANCED_FACE('',(#29515),#31092,.F.); -#32311=ADVANCED_FACE('',(#29516),#31093,.F.); -#32312=ADVANCED_FACE('',(#29517),#31094,.F.); -#32313=ADVANCED_FACE('',(#29518),#31095,.F.); -#32314=ADVANCED_FACE('',(#29519),#31096,.F.); -#32315=ADVANCED_FACE('',(#29520),#31097,.F.); -#32316=ADVANCED_FACE('',(#29521),#31098,.F.); -#32317=ADVANCED_FACE('',(#29522),#31099,.F.); -#32318=ADVANCED_FACE('',(#29523),#31100,.F.); -#32319=ADVANCED_FACE('',(#29524),#31101,.F.); -#32320=ADVANCED_FACE('',(#29525),#31102,.F.); -#32321=ADVANCED_FACE('',(#29526),#31103,.F.); -#32322=ADVANCED_FACE('',(#29527),#31104,.F.); -#32323=ADVANCED_FACE('',(#29528),#31105,.F.); -#32324=ADVANCED_FACE('',(#29529),#31106,.F.); -#32325=ADVANCED_FACE('',(#29530),#31107,.F.); -#32326=ADVANCED_FACE('',(#29531),#31108,.F.); -#32327=ADVANCED_FACE('',(#29532),#31109,.F.); -#32328=ADVANCED_FACE('',(#29533),#31110,.F.); -#32329=ADVANCED_FACE('',(#29534),#31111,.F.); -#32330=ADVANCED_FACE('',(#29535),#31112,.F.); -#32331=ADVANCED_FACE('',(#29536),#31113,.F.); -#32332=ADVANCED_FACE('',(#29537),#31114,.F.); -#32333=ADVANCED_FACE('',(#29538),#31115,.F.); -#32334=ADVANCED_FACE('',(#29539),#31116,.F.); -#32335=ADVANCED_FACE('',(#29540),#31117,.F.); -#32336=ADVANCED_FACE('',(#29541),#31118,.F.); -#32337=ADVANCED_FACE('',(#29542),#31119,.F.); -#32338=ADVANCED_FACE('',(#29543),#31120,.F.); -#32339=ADVANCED_FACE('',(#29544),#31121,.F.); -#32340=ADVANCED_FACE('',(#29545),#31122,.F.); -#32341=ADVANCED_FACE('',(#29546),#31123,.F.); -#32342=ADVANCED_FACE('',(#29547),#31124,.F.); -#32343=ADVANCED_FACE('',(#29548),#31125,.F.); -#32344=ADVANCED_FACE('',(#29549),#31126,.F.); -#32345=ADVANCED_FACE('',(#29550),#31127,.F.); -#32346=ADVANCED_FACE('',(#29551),#31128,.F.); -#32347=ADVANCED_FACE('',(#29552),#31129,.F.); -#32348=ADVANCED_FACE('',(#29553),#31130,.F.); -#32349=ADVANCED_FACE('',(#29554),#31131,.F.); -#32350=ADVANCED_FACE('',(#29555),#31132,.F.); -#32351=ADVANCED_FACE('',(#29556),#31133,.F.); -#32352=ADVANCED_FACE('',(#29557),#31134,.F.); -#32353=ADVANCED_FACE('',(#29558),#31135,.F.); -#32354=ADVANCED_FACE('',(#29559),#31136,.F.); -#32355=ADVANCED_FACE('',(#29560),#31137,.F.); -#32356=ADVANCED_FACE('',(#29561),#31138,.F.); -#32357=ADVANCED_FACE('',(#29562),#31139,.F.); -#32358=ADVANCED_FACE('',(#29563),#31140,.F.); -#32359=ADVANCED_FACE('',(#29564),#31141,.F.); -#32360=ADVANCED_FACE('',(#29565),#31142,.F.); -#32361=ADVANCED_FACE('',(#29566),#31143,.F.); -#32362=ADVANCED_FACE('',(#29567),#31144,.F.); -#32363=ADVANCED_FACE('',(#29568),#31145,.F.); -#32364=ADVANCED_FACE('',(#29569),#31146,.F.); -#32365=ADVANCED_FACE('',(#29570),#31147,.F.); -#32366=ADVANCED_FACE('',(#29571),#31148,.F.); -#32367=ADVANCED_FACE('',(#29572),#31149,.F.); -#32368=ADVANCED_FACE('',(#29573),#31150,.F.); -#32369=ADVANCED_FACE('',(#29574),#31151,.F.); -#32370=ADVANCED_FACE('',(#29575),#31152,.F.); -#32371=ADVANCED_FACE('',(#29576),#31153,.F.); -#32372=ADVANCED_FACE('',(#29577),#31154,.F.); -#32373=ADVANCED_FACE('',(#29578),#31155,.F.); -#32374=ADVANCED_FACE('',(#29579),#31156,.F.); -#32375=ADVANCED_FACE('',(#29580),#31157,.F.); -#32376=ADVANCED_FACE('',(#29581),#31158,.F.); -#32377=ADVANCED_FACE('',(#29582),#31159,.F.); -#32378=ADVANCED_FACE('',(#29583),#31160,.F.); -#32379=ADVANCED_FACE('',(#29584),#31161,.F.); -#32380=ADVANCED_FACE('',(#29585),#31162,.F.); -#32381=ADVANCED_FACE('',(#29586),#31163,.F.); -#32382=ADVANCED_FACE('',(#29587),#31164,.F.); -#32383=ADVANCED_FACE('',(#29588),#31165,.F.); -#32384=ADVANCED_FACE('',(#29589),#31166,.F.); -#32385=ADVANCED_FACE('',(#29590),#31167,.F.); -#32386=ADVANCED_FACE('',(#29591),#31168,.F.); -#32387=ADVANCED_FACE('',(#29592),#31169,.F.); -#32388=ADVANCED_FACE('',(#29593),#31170,.F.); -#32389=ADVANCED_FACE('',(#29594),#31171,.F.); -#32390=ADVANCED_FACE('',(#29595),#31172,.F.); -#32391=ADVANCED_FACE('',(#29596),#31173,.F.); -#32392=ADVANCED_FACE('',(#29597),#31174,.F.); -#32393=ADVANCED_FACE('',(#29598),#31175,.F.); -#32394=ADVANCED_FACE('',(#29599),#31176,.F.); -#32395=ADVANCED_FACE('',(#29600),#31177,.F.); -#32396=ADVANCED_FACE('',(#29601),#31178,.F.); -#32397=ADVANCED_FACE('',(#29602),#31179,.F.); -#32398=ADVANCED_FACE('',(#29603),#31180,.F.); -#32399=ADVANCED_FACE('',(#29604),#31181,.F.); -#32400=ADVANCED_FACE('',(#29605),#31182,.F.); -#32401=ADVANCED_FACE('',(#29606),#31183,.F.); -#32402=ADVANCED_FACE('',(#29607),#31184,.F.); -#32403=ADVANCED_FACE('',(#29608),#31185,.F.); -#32404=ADVANCED_FACE('',(#29609),#31186,.F.); -#32405=ADVANCED_FACE('',(#29610),#31187,.F.); -#32406=ADVANCED_FACE('',(#29611),#31188,.F.); -#32407=ADVANCED_FACE('',(#29612),#31189,.F.); -#32408=ADVANCED_FACE('',(#29613),#31190,.F.); -#32409=ADVANCED_FACE('',(#29614),#31191,.F.); -#32410=ADVANCED_FACE('',(#29615),#31192,.F.); -#32411=ADVANCED_FACE('',(#29616),#31193,.F.); -#32412=ADVANCED_FACE('',(#29617),#31194,.F.); -#32413=ADVANCED_FACE('',(#29618),#31195,.F.); -#32414=ADVANCED_FACE('',(#29619),#31196,.F.); -#32415=ADVANCED_FACE('',(#29620),#31197,.F.); -#32416=ADVANCED_FACE('',(#29621),#31198,.F.); -#32417=ADVANCED_FACE('',(#29622),#31199,.F.); -#32418=ADVANCED_FACE('',(#29623),#31200,.F.); -#32419=ADVANCED_FACE('',(#29624),#31201,.F.); -#32420=ADVANCED_FACE('',(#29625),#31202,.F.); -#32421=ADVANCED_FACE('',(#29626),#31203,.F.); -#32422=ADVANCED_FACE('',(#29627),#31204,.F.); -#32423=ADVANCED_FACE('',(#29628),#31205,.F.); -#32424=ADVANCED_FACE('',(#29629),#31206,.F.); -#32425=ADVANCED_FACE('',(#29630),#31207,.F.); -#32426=ADVANCED_FACE('',(#29631),#31208,.F.); -#32427=ADVANCED_FACE('',(#29632),#31209,.F.); -#32428=ADVANCED_FACE('',(#29633),#31210,.F.); -#32429=ADVANCED_FACE('',(#29634),#31211,.F.); -#32430=ADVANCED_FACE('',(#29635),#31212,.F.); -#32431=ADVANCED_FACE('',(#29636),#31213,.F.); -#32432=ADVANCED_FACE('',(#29637),#31214,.F.); -#32433=ADVANCED_FACE('',(#29638),#31215,.F.); -#32434=ADVANCED_FACE('',(#29639),#31216,.F.); -#32435=ADVANCED_FACE('',(#29640),#31217,.F.); -#32436=ADVANCED_FACE('',(#29641),#31218,.F.); -#32437=ADVANCED_FACE('',(#29642),#31219,.F.); -#32438=ADVANCED_FACE('',(#29643),#31220,.F.); -#32439=ADVANCED_FACE('',(#29644),#31221,.F.); -#32440=ADVANCED_FACE('',(#29645),#31222,.F.); -#32441=ADVANCED_FACE('',(#29646),#31223,.F.); -#32442=ADVANCED_FACE('',(#29647),#31224,.F.); -#32443=ADVANCED_FACE('',(#29648),#31225,.F.); -#32444=ADVANCED_FACE('',(#29649),#31226,.F.); -#32445=ADVANCED_FACE('',(#29650),#31227,.F.); -#32446=ADVANCED_FACE('',(#29651),#31228,.F.); -#32447=ADVANCED_FACE('',(#29652),#31229,.F.); -#32448=ADVANCED_FACE('',(#29653),#31230,.F.); -#32449=ADVANCED_FACE('',(#29654),#31231,.F.); -#32450=ADVANCED_FACE('',(#29655),#31232,.F.); -#32451=ADVANCED_FACE('',(#29656),#31233,.F.); -#32452=ADVANCED_FACE('',(#29657),#31234,.F.); -#32453=ADVANCED_FACE('',(#29658),#31235,.F.); -#32454=ADVANCED_FACE('',(#29659),#31236,.F.); -#32455=ADVANCED_FACE('',(#29660),#31237,.F.); -#32456=ADVANCED_FACE('',(#29661),#31238,.F.); -#32457=ADVANCED_FACE('',(#29662),#31239,.F.); -#32458=ADVANCED_FACE('',(#29663),#31240,.F.); -#32459=ADVANCED_FACE('',(#29664),#31241,.F.); -#32460=ADVANCED_FACE('',(#29665),#31242,.F.); -#32461=ADVANCED_FACE('',(#29666),#31243,.F.); -#32462=ADVANCED_FACE('',(#29667),#31244,.F.); -#32463=ADVANCED_FACE('',(#29668),#31245,.F.); -#32464=ADVANCED_FACE('',(#29669),#31246,.F.); -#32465=ADVANCED_FACE('',(#29670),#31247,.F.); -#32466=ADVANCED_FACE('',(#29671),#31248,.F.); -#32467=ADVANCED_FACE('',(#29672),#31249,.F.); -#32468=ADVANCED_FACE('',(#29673),#31250,.F.); -#32469=ADVANCED_FACE('',(#29674),#31251,.F.); -#32470=ADVANCED_FACE('',(#29675),#31252,.F.); -#32471=ADVANCED_FACE('',(#29676),#31253,.F.); -#32472=ADVANCED_FACE('',(#29677),#31254,.F.); -#32473=ADVANCED_FACE('',(#29678),#31255,.F.); -#32474=ADVANCED_FACE('',(#29679),#31256,.F.); -#32475=ADVANCED_FACE('',(#29680),#31257,.F.); -#32476=ADVANCED_FACE('',(#29681),#31258,.F.); -#32477=ADVANCED_FACE('',(#29682),#31259,.F.); -#32478=ADVANCED_FACE('',(#29683),#31260,.F.); -#32479=ADVANCED_FACE('',(#29684),#31261,.F.); -#32480=ADVANCED_FACE('',(#29685),#31262,.F.); -#32481=ADVANCED_FACE('',(#29686),#31263,.F.); -#32482=ADVANCED_FACE('',(#29687),#31264,.F.); -#32483=ADVANCED_FACE('',(#29688),#31265,.F.); -#32484=ADVANCED_FACE('',(#29689),#31266,.F.); -#32485=ADVANCED_FACE('',(#29690),#31267,.F.); -#32486=ADVANCED_FACE('',(#29691),#31268,.F.); -#32487=ADVANCED_FACE('',(#29692),#31269,.F.); -#32488=ADVANCED_FACE('',(#29693,#29694),#31270,.T.); -#32489=ADVANCED_FACE('',(#29695),#31271,.F.); -#32490=ADVANCED_FACE('',(#29696),#31272,.F.); -#32491=ADVANCED_FACE('',(#29697),#31273,.F.); -#32492=ADVANCED_FACE('',(#29698),#31274,.F.); -#32493=ADVANCED_FACE('',(#29699),#31275,.F.); -#32494=ADVANCED_FACE('',(#29700),#31276,.T.); -#32495=ADVANCED_FACE('',(#29701),#31277,.T.); -#32496=ADVANCED_FACE('',(#29702),#31278,.F.); -#32497=ADVANCED_FACE('',(#29703),#31279,.F.); -#32498=ADVANCED_FACE('',(#29704),#31280,.F.); -#32499=ADVANCED_FACE('',(#29705),#31281,.F.); -#32500=ADVANCED_FACE('',(#29706),#31282,.F.); -#32501=ADVANCED_FACE('',(#29707),#31283,.F.); -#32502=ADVANCED_FACE('',(#29708),#31284,.F.); -#32503=ADVANCED_FACE('',(#29709),#31285,.F.); -#32504=ADVANCED_FACE('',(#29710),#31286,.F.); -#32505=ADVANCED_FACE('',(#29711),#31287,.F.); -#32506=ADVANCED_FACE('',(#29712),#31288,.F.); -#32507=ADVANCED_FACE('',(#29713),#31289,.F.); -#32508=ADVANCED_FACE('',(#29714),#31290,.F.); -#32509=ADVANCED_FACE('',(#29715),#31291,.F.); -#32510=ADVANCED_FACE('',(#29716),#31292,.F.); -#32511=ADVANCED_FACE('',(#29717),#31293,.F.); -#32512=ADVANCED_FACE('',(#29718),#31294,.F.); -#32513=ADVANCED_FACE('',(#29719),#31295,.F.); -#32514=ADVANCED_FACE('',(#29720),#31296,.F.); -#32515=ADVANCED_FACE('',(#29721),#31297,.F.); -#32516=ADVANCED_FACE('',(#29722),#31298,.F.); -#32517=ADVANCED_FACE('',(#29723),#31299,.F.); -#32518=ADVANCED_FACE('',(#29724),#31300,.F.); -#32519=ADVANCED_FACE('',(#29725),#31301,.F.); -#32520=ADVANCED_FACE('',(#29726),#31302,.F.); -#32521=ADVANCED_FACE('',(#29727),#31303,.F.); -#32522=ADVANCED_FACE('',(#29728),#31304,.F.); -#32523=ADVANCED_FACE('',(#29729),#31305,.F.); -#32524=ADVANCED_FACE('',(#29730),#31306,.F.); -#32525=ADVANCED_FACE('',(#29731),#31307,.F.); -#32526=ADVANCED_FACE('',(#29732),#31308,.F.); -#32527=ADVANCED_FACE('',(#29733),#31309,.F.); -#32528=ADVANCED_FACE('',(#29734),#31310,.F.); -#32529=ADVANCED_FACE('',(#29735),#31311,.F.); -#32530=ADVANCED_FACE('',(#29736),#31312,.F.); -#32531=ADVANCED_FACE('',(#29737),#31313,.F.); -#32532=ADVANCED_FACE('',(#29738),#31314,.F.); -#32533=ADVANCED_FACE('',(#29739),#31315,.F.); -#32534=ADVANCED_FACE('',(#29740),#31316,.F.); -#32535=ADVANCED_FACE('',(#29741),#31317,.T.); -#32536=ADVANCED_FACE('',(#29742),#31318,.F.); -#32537=ADVANCED_FACE('',(#29743),#479,.T.); -#32538=ADVANCED_FACE('',(#29744),#480,.T.); -#32539=ADVANCED_FACE('',(#29745),#481,.T.); -#32540=ADVANCED_FACE('',(#29746),#482,.T.); -#32541=ADVANCED_FACE('',(#29747),#483,.T.); -#32542=ADVANCED_FACE('',(#29748),#484,.T.); -#32543=ADVANCED_FACE('',(#29749),#485,.T.); -#32544=ADVANCED_FACE('',(#29750),#486,.T.); -#32545=ADVANCED_FACE('',(#29751),#487,.T.); -#32546=ADVANCED_FACE('',(#29752),#488,.T.); -#32547=ADVANCED_FACE('',(#29753),#489,.T.); -#32548=ADVANCED_FACE('',(#29754),#490,.T.); -#32549=ADVANCED_FACE('',(#29755),#491,.T.); -#32550=ADVANCED_FACE('',(#29756),#492,.T.); -#32551=ADVANCED_FACE('',(#29757),#493,.T.); -#32552=ADVANCED_FACE('',(#29758),#494,.T.); -#32553=ADVANCED_FACE('',(#29759),#495,.T.); -#32554=ADVANCED_FACE('',(#29760),#496,.T.); -#32555=ADVANCED_FACE('',(#29761),#497,.T.); -#32556=ADVANCED_FACE('',(#29762),#498,.T.); -#32557=ADVANCED_FACE('',(#29763),#31319,.F.); -#32558=ADVANCED_FACE('',(#29764),#31320,.F.); -#32559=ADVANCED_FACE('',(#29765),#31321,.F.); -#32560=ADVANCED_FACE('',(#29766),#31322,.F.); -#32561=ADVANCED_FACE('',(#29767),#31323,.F.); -#32562=ADVANCED_FACE('',(#29768),#31324,.F.); -#32563=ADVANCED_FACE('',(#29769),#31325,.F.); -#32564=ADVANCED_FACE('',(#29770),#31326,.F.); -#32565=ADVANCED_FACE('',(#29771),#31327,.F.); -#32566=ADVANCED_FACE('',(#29772),#31328,.F.); -#32567=ADVANCED_FACE('',(#29773),#31329,.F.); -#32568=ADVANCED_FACE('',(#29774),#31330,.F.); -#32569=ADVANCED_FACE('',(#29775),#31331,.F.); -#32570=ADVANCED_FACE('',(#29776),#31332,.F.); -#32571=ADVANCED_FACE('',(#29777),#31333,.F.); -#32572=ADVANCED_FACE('',(#29778),#31334,.F.); -#32573=ADVANCED_FACE('',(#29779),#31335,.F.); -#32574=ADVANCED_FACE('',(#29780),#31336,.F.); -#32575=ADVANCED_FACE('',(#29781),#31337,.F.); -#32576=ADVANCED_FACE('',(#29782),#499,.F.); -#32577=ADVANCED_FACE('',(#29783),#500,.F.); -#32578=ADVANCED_FACE('',(#29784),#501,.F.); -#32579=ADVANCED_FACE('',(#29785),#502,.F.); -#32580=ADVANCED_FACE('',(#29786),#503,.F.); -#32581=ADVANCED_FACE('',(#29787),#504,.F.); -#32582=ADVANCED_FACE('',(#29788),#505,.F.); -#32583=ADVANCED_FACE('',(#29789),#506,.F.); -#32584=ADVANCED_FACE('',(#29790),#507,.F.); -#32585=ADVANCED_FACE('',(#29791),#508,.F.); -#32586=ADVANCED_FACE('',(#29792),#509,.F.); -#32587=ADVANCED_FACE('',(#29793),#510,.F.); -#32588=ADVANCED_FACE('',(#29794),#511,.F.); -#32589=ADVANCED_FACE('',(#29795),#512,.F.); -#32590=ADVANCED_FACE('',(#29796),#513,.F.); -#32591=ADVANCED_FACE('',(#29797),#514,.F.); -#32592=ADVANCED_FACE('',(#29798),#515,.F.); -#32593=ADVANCED_FACE('',(#29799),#516,.F.); -#32594=ADVANCED_FACE('',(#29800),#517,.F.); -#32595=ADVANCED_FACE('',(#29801),#518,.F.); -#32596=ADVANCED_FACE('',(#29802),#519,.F.); -#32597=ADVANCED_FACE('',(#29803),#520,.F.); -#32598=ADVANCED_FACE('',(#29804),#521,.F.); -#32599=ADVANCED_FACE('',(#29805),#522,.F.); -#32600=ADVANCED_FACE('',(#29806),#523,.F.); -#32601=ADVANCED_FACE('',(#29807),#524,.F.); -#32602=ADVANCED_FACE('',(#29808),#525,.F.); -#32603=ADVANCED_FACE('',(#29809),#526,.F.); -#32604=ADVANCED_FACE('',(#29810),#527,.F.); -#32605=ADVANCED_FACE('',(#29811),#528,.F.); -#32606=ADVANCED_FACE('',(#29812),#529,.F.); -#32607=ADVANCED_FACE('',(#29813),#530,.F.); -#32608=ADVANCED_FACE('',(#29814),#531,.F.); -#32609=ADVANCED_FACE('',(#29815),#532,.F.); -#32610=ADVANCED_FACE('',(#29816),#533,.F.); -#32611=ADVANCED_FACE('',(#29817),#534,.F.); -#32612=ADVANCED_FACE('',(#29818),#535,.F.); -#32613=ADVANCED_FACE('',(#29819),#536,.F.); -#32614=ADVANCED_FACE('',(#29820),#537,.F.); -#32615=ADVANCED_FACE('',(#29821),#538,.F.); -#32616=ADVANCED_FACE('',(#29822),#31338,.F.); -#32617=ADVANCED_FACE('',(#29823),#31339,.F.); -#32618=ADVANCED_FACE('',(#29824),#31340,.F.); -#32619=ADVANCED_FACE('',(#29825),#31341,.F.); -#32620=ADVANCED_FACE('',(#29826),#31342,.F.); -#32621=ADVANCED_FACE('',(#29827),#31343,.F.); -#32622=ADVANCED_FACE('',(#29828),#31344,.F.); -#32623=ADVANCED_FACE('',(#29829),#31345,.F.); -#32624=ADVANCED_FACE('',(#29830),#31346,.F.); -#32625=ADVANCED_FACE('',(#29831),#31347,.F.); -#32626=ADVANCED_FACE('',(#29832),#31348,.F.); -#32627=ADVANCED_FACE('',(#29833),#31349,.F.); -#32628=ADVANCED_FACE('',(#29834),#31350,.F.); -#32629=ADVANCED_FACE('',(#29835),#31351,.F.); -#32630=ADVANCED_FACE('',(#29836),#31352,.F.); -#32631=ADVANCED_FACE('',(#29837),#31353,.F.); -#32632=ADVANCED_FACE('',(#29838),#31354,.F.); -#32633=ADVANCED_FACE('',(#29839),#31355,.F.); -#32634=ADVANCED_FACE('',(#29840),#31356,.F.); -#32635=ADVANCED_FACE('',(#29841),#539,.T.); -#32636=ADVANCED_FACE('',(#29842),#540,.T.); -#32637=ADVANCED_FACE('',(#29843),#541,.T.); -#32638=ADVANCED_FACE('',(#29844),#542,.T.); -#32639=ADVANCED_FACE('',(#29845),#543,.T.); -#32640=ADVANCED_FACE('',(#29846),#544,.T.); -#32641=ADVANCED_FACE('',(#29847),#545,.T.); -#32642=ADVANCED_FACE('',(#29848),#546,.T.); -#32643=ADVANCED_FACE('',(#29849),#547,.T.); -#32644=ADVANCED_FACE('',(#29850),#548,.T.); -#32645=ADVANCED_FACE('',(#29851),#549,.T.); -#32646=ADVANCED_FACE('',(#29852),#550,.T.); -#32647=ADVANCED_FACE('',(#29853),#551,.T.); -#32648=ADVANCED_FACE('',(#29854),#552,.T.); -#32649=ADVANCED_FACE('',(#29855),#553,.T.); -#32650=ADVANCED_FACE('',(#29856),#554,.T.); -#32651=ADVANCED_FACE('',(#29857),#555,.T.); -#32652=ADVANCED_FACE('',(#29858),#556,.T.); -#32653=ADVANCED_FACE('',(#29859),#557,.T.); -#32654=ADVANCED_FACE('',(#29860),#558,.T.); -#32655=ADVANCED_FACE('',(#29861),#31357,.T.); -#32656=ADVANCED_FACE('',(#29862),#31358,.F.); -#32657=ADVANCED_FACE('',(#29863),#31359,.F.); -#32658=ADVANCED_FACE('',(#29864),#31360,.F.); -#32659=ADVANCED_FACE('',(#29865),#559,.T.); -#32660=ADVANCED_FACE('',(#29866),#31361,.F.); -#32661=ADVANCED_FACE('',(#29867),#560,.T.); -#32662=ADVANCED_FACE('',(#29868),#31362,.F.); -#32663=ADVANCED_FACE('',(#29869),#561,.F.); -#32664=ADVANCED_FACE('',(#29870),#562,.T.); -#32665=ADVANCED_FACE('',(#29871),#31363,.F.); -#32666=ADVANCED_FACE('',(#29872),#563,.F.); -#32667=ADVANCED_FACE('',(#29873),#564,.T.); -#32668=ADVANCED_FACE('',(#29874),#31364,.F.); -#32669=ADVANCED_FACE('',(#29875),#565,.F.); -#32670=ADVANCED_FACE('',(#29876),#566,.T.); -#32671=ADVANCED_FACE('',(#29877),#31365,.F.); -#32672=ADVANCED_FACE('',(#29878),#31366,.F.); -#32673=ADVANCED_FACE('',(#29879),#567,.F.); -#32674=ADVANCED_FACE('',(#29880),#568,.T.); -#32675=ADVANCED_FACE('',(#29881),#569,.T.); -#32676=ADVANCED_FACE('',(#29882),#31367,.F.); -#32677=ADVANCED_FACE('',(#29883),#570,.F.); -#32678=ADVANCED_FACE('',(#29884),#31368,.F.); -#32679=ADVANCED_FACE('',(#29885),#571,.T.); -#32680=ADVANCED_FACE('',(#29886),#572,.F.); -#32681=ADVANCED_FACE('',(#29887),#31369,.F.); -#32682=ADVANCED_FACE('',(#29888),#573,.T.); -#32683=ADVANCED_FACE('',(#29889),#574,.T.); -#32684=ADVANCED_FACE('',(#29890),#31370,.F.); -#32685=ADVANCED_FACE('',(#29891),#575,.F.); -#32686=ADVANCED_FACE('',(#29892),#31371,.F.); -#32687=ADVANCED_FACE('',(#29893),#576,.T.); -#32688=ADVANCED_FACE('',(#29894),#577,.F.); -#32689=ADVANCED_FACE('',(#29895),#31372,.F.); -#32690=ADVANCED_FACE('',(#29896),#578,.T.); -#32691=ADVANCED_FACE('',(#29897),#579,.T.); -#32692=ADVANCED_FACE('',(#29898),#31373,.F.); -#32693=ADVANCED_FACE('',(#29899),#580,.T.); -#32694=ADVANCED_FACE('',(#29900),#31374,.F.); -#32695=ADVANCED_FACE('',(#29901),#581,.F.); -#32696=ADVANCED_FACE('',(#29902),#31375,.F.); -#32697=ADVANCED_FACE('',(#29903),#582,.T.); -#32698=ADVANCED_FACE('',(#29904),#31376,.F.); -#32699=ADVANCED_FACE('',(#29905),#31377,.F.); -#32700=ADVANCED_FACE('',(#29906),#583,.T.); -#32701=ADVANCED_FACE('',(#29907),#31378,.F.); -#32702=ADVANCED_FACE('',(#29908),#584,.F.); -#32703=ADVANCED_FACE('',(#29909),#31379,.F.); -#32704=ADVANCED_FACE('',(#29910),#585,.T.); -#32705=ADVANCED_FACE('',(#29911),#586,.F.); -#32706=ADVANCED_FACE('',(#29912),#587,.F.); -#32707=ADVANCED_FACE('',(#29913),#31380,.F.); -#32708=ADVANCED_FACE('',(#29914),#588,.T.); -#32709=ADVANCED_FACE('',(#29915),#589,.T.); -#32710=ADVANCED_FACE('',(#29916),#31381,.F.); -#32711=ADVANCED_FACE('',(#29917),#590,.T.); -#32712=ADVANCED_FACE('',(#29918),#31382,.F.); -#32713=ADVANCED_FACE('',(#29919),#591,.F.); -#32714=ADVANCED_FACE('',(#29920),#31383,.F.); -#32715=ADVANCED_FACE('',(#29921),#592,.T.); -#32716=ADVANCED_FACE('',(#29922),#31384,.F.); -#32717=ADVANCED_FACE('',(#29923),#31385,.F.); -#32718=ADVANCED_FACE('',(#29924),#593,.T.); -#32719=ADVANCED_FACE('',(#29925),#31386,.F.); -#32720=ADVANCED_FACE('',(#29926),#594,.F.); -#32721=ADVANCED_FACE('',(#29927),#31387,.F.); -#32722=ADVANCED_FACE('',(#29928),#595,.T.); -#32723=ADVANCED_FACE('',(#29929),#596,.F.); -#32724=ADVANCED_FACE('',(#29930),#597,.F.); -#32725=ADVANCED_FACE('',(#29931),#31388,.F.); -#32726=ADVANCED_FACE('',(#29932),#598,.T.); -#32727=ADVANCED_FACE('',(#29933),#599,.T.); -#32728=ADVANCED_FACE('',(#29934),#31389,.F.); -#32729=ADVANCED_FACE('',(#29935),#600,.T.); -#32730=ADVANCED_FACE('',(#29936),#31390,.F.); -#32731=ADVANCED_FACE('',(#29937),#601,.F.); -#32732=ADVANCED_FACE('',(#29938),#31391,.F.); -#32733=ADVANCED_FACE('',(#29939),#602,.T.); -#32734=ADVANCED_FACE('',(#29940),#31392,.F.); -#32735=ADVANCED_FACE('',(#29941),#31393,.F.); -#32736=ADVANCED_FACE('',(#29942),#603,.T.); -#32737=ADVANCED_FACE('',(#29943),#31394,.F.); -#32738=ADVANCED_FACE('',(#29944),#604,.F.); -#32739=ADVANCED_FACE('',(#29945),#31395,.F.); -#32740=ADVANCED_FACE('',(#29946),#605,.T.); -#32741=ADVANCED_FACE('',(#29947),#606,.F.); -#32742=ADVANCED_FACE('',(#29948),#607,.F.); -#32743=ADVANCED_FACE('',(#29949),#31396,.F.); -#32744=ADVANCED_FACE('',(#29950),#608,.T.); -#32745=ADVANCED_FACE('',(#29951),#609,.T.); -#32746=ADVANCED_FACE('',(#29952),#31397,.F.); -#32747=ADVANCED_FACE('',(#29953),#610,.T.); -#32748=ADVANCED_FACE('',(#29954),#31398,.F.); -#32749=ADVANCED_FACE('',(#29955),#611,.F.); -#32750=ADVANCED_FACE('',(#29956),#31399,.F.); -#32751=ADVANCED_FACE('',(#29957),#612,.T.); -#32752=ADVANCED_FACE('',(#29958),#31400,.F.); -#32753=ADVANCED_FACE('',(#29959),#31401,.F.); -#32754=ADVANCED_FACE('',(#29960),#613,.T.); -#32755=ADVANCED_FACE('',(#29961),#31402,.F.); -#32756=ADVANCED_FACE('',(#29962),#614,.F.); -#32757=ADVANCED_FACE('',(#29963),#31403,.F.); -#32758=ADVANCED_FACE('',(#29964),#615,.T.); -#32759=ADVANCED_FACE('',(#29965),#616,.F.); -#32760=ADVANCED_FACE('',(#29966),#617,.F.); -#32761=ADVANCED_FACE('',(#29967),#31404,.F.); -#32762=ADVANCED_FACE('',(#29968),#618,.T.); -#32763=ADVANCED_FACE('',(#29969),#619,.T.); -#32764=ADVANCED_FACE('',(#29970),#31405,.F.); -#32765=ADVANCED_FACE('',(#29971),#620,.T.); -#32766=ADVANCED_FACE('',(#29972),#31406,.F.); -#32767=ADVANCED_FACE('',(#29973),#621,.F.); -#32768=ADVANCED_FACE('',(#29974),#31407,.F.); -#32769=ADVANCED_FACE('',(#29975),#622,.T.); -#32770=ADVANCED_FACE('',(#29976),#31408,.F.); -#32771=ADVANCED_FACE('',(#29977),#31409,.F.); -#32772=ADVANCED_FACE('',(#29978),#623,.T.); -#32773=ADVANCED_FACE('',(#29979),#31410,.F.); -#32774=ADVANCED_FACE('',(#29980),#624,.F.); -#32775=ADVANCED_FACE('',(#29981),#31411,.F.); -#32776=ADVANCED_FACE('',(#29982),#625,.T.); -#32777=ADVANCED_FACE('',(#29983),#626,.F.); -#32778=ADVANCED_FACE('',(#29984),#627,.F.); -#32779=ADVANCED_FACE('',(#29985),#31412,.F.); -#32780=ADVANCED_FACE('',(#29986),#628,.T.); -#32781=ADVANCED_FACE('',(#29987),#629,.T.); -#32782=ADVANCED_FACE('',(#29988),#31413,.F.); -#32783=ADVANCED_FACE('',(#29989),#630,.T.); -#32784=ADVANCED_FACE('',(#29990),#31414,.F.); -#32785=ADVANCED_FACE('',(#29991),#631,.F.); -#32786=ADVANCED_FACE('',(#29992),#31415,.F.); -#32787=ADVANCED_FACE('',(#29993),#632,.T.); -#32788=ADVANCED_FACE('',(#29994),#31416,.F.); -#32789=ADVANCED_FACE('',(#29995),#31417,.F.); -#32790=ADVANCED_FACE('',(#29996),#633,.T.); -#32791=ADVANCED_FACE('',(#29997),#31418,.F.); -#32792=ADVANCED_FACE('',(#29998),#634,.F.); -#32793=ADVANCED_FACE('',(#29999),#31419,.F.); -#32794=ADVANCED_FACE('',(#30000),#635,.T.); -#32795=ADVANCED_FACE('',(#30001),#636,.F.); -#32796=ADVANCED_FACE('',(#30002),#637,.F.); -#32797=ADVANCED_FACE('',(#30003),#31420,.F.); -#32798=ADVANCED_FACE('',(#30004),#638,.T.); -#32799=ADVANCED_FACE('',(#30005),#639,.T.); -#32800=ADVANCED_FACE('',(#30006),#31421,.F.); -#32801=ADVANCED_FACE('',(#30007),#640,.T.); -#32802=ADVANCED_FACE('',(#30008),#31422,.F.); -#32803=ADVANCED_FACE('',(#30009),#641,.F.); -#32804=ADVANCED_FACE('',(#30010),#31423,.F.); -#32805=ADVANCED_FACE('',(#30011),#642,.T.); -#32806=ADVANCED_FACE('',(#30012),#31424,.F.); -#32807=ADVANCED_FACE('',(#30013),#31425,.F.); -#32808=ADVANCED_FACE('',(#30014),#643,.T.); -#32809=ADVANCED_FACE('',(#30015),#31426,.F.); -#32810=ADVANCED_FACE('',(#30016),#644,.F.); -#32811=ADVANCED_FACE('',(#30017),#31427,.F.); -#32812=ADVANCED_FACE('',(#30018),#645,.T.); -#32813=ADVANCED_FACE('',(#30019),#646,.F.); -#32814=ADVANCED_FACE('',(#30020),#647,.F.); -#32815=ADVANCED_FACE('',(#30021),#31428,.F.); -#32816=ADVANCED_FACE('',(#30022),#648,.T.); -#32817=ADVANCED_FACE('',(#30023),#649,.T.); -#32818=ADVANCED_FACE('',(#30024),#31429,.F.); -#32819=ADVANCED_FACE('',(#30025),#650,.T.); -#32820=ADVANCED_FACE('',(#30026),#31430,.F.); -#32821=ADVANCED_FACE('',(#30027),#651,.F.); -#32822=ADVANCED_FACE('',(#30028),#31431,.F.); -#32823=ADVANCED_FACE('',(#30029),#652,.T.); -#32824=ADVANCED_FACE('',(#30030),#31432,.F.); -#32825=ADVANCED_FACE('',(#30031),#31433,.F.); -#32826=ADVANCED_FACE('',(#30032),#653,.T.); -#32827=ADVANCED_FACE('',(#30033),#31434,.F.); -#32828=ADVANCED_FACE('',(#30034),#654,.F.); -#32829=ADVANCED_FACE('',(#30035),#31435,.F.); -#32830=ADVANCED_FACE('',(#30036),#655,.T.); -#32831=ADVANCED_FACE('',(#30037),#656,.F.); -#32832=ADVANCED_FACE('',(#30038),#657,.F.); -#32833=ADVANCED_FACE('',(#30039),#31436,.F.); -#32834=ADVANCED_FACE('',(#30040),#658,.T.); -#32835=ADVANCED_FACE('',(#30041),#659,.T.); -#32836=ADVANCED_FACE('',(#30042),#31437,.F.); -#32837=ADVANCED_FACE('',(#30043),#660,.T.); -#32838=ADVANCED_FACE('',(#30044),#31438,.F.); -#32839=ADVANCED_FACE('',(#30045),#661,.F.); -#32840=ADVANCED_FACE('',(#30046),#31439,.F.); -#32841=ADVANCED_FACE('',(#30047),#662,.T.); -#32842=ADVANCED_FACE('',(#30048),#31440,.F.); -#32843=ADVANCED_FACE('',(#30049),#31441,.F.); -#32844=ADVANCED_FACE('',(#30050),#663,.T.); -#32845=ADVANCED_FACE('',(#30051),#31442,.F.); -#32846=ADVANCED_FACE('',(#30052),#664,.F.); -#32847=ADVANCED_FACE('',(#30053),#31443,.F.); -#32848=ADVANCED_FACE('',(#30054),#665,.T.); -#32849=ADVANCED_FACE('',(#30055),#666,.F.); -#32850=ADVANCED_FACE('',(#30056),#667,.F.); -#32851=ADVANCED_FACE('',(#30057),#31444,.F.); -#32852=ADVANCED_FACE('',(#30058),#668,.T.); -#32853=ADVANCED_FACE('',(#30059),#669,.T.); -#32854=ADVANCED_FACE('',(#30060),#31445,.F.); -#32855=ADVANCED_FACE('',(#30061),#670,.T.); -#32856=ADVANCED_FACE('',(#30062),#31446,.F.); -#32857=ADVANCED_FACE('',(#30063),#671,.F.); -#32858=ADVANCED_FACE('',(#30064),#31447,.F.); -#32859=ADVANCED_FACE('',(#30065),#672,.T.); -#32860=ADVANCED_FACE('',(#30066),#31448,.F.); -#32861=ADVANCED_FACE('',(#30067),#31449,.F.); -#32862=ADVANCED_FACE('',(#30068),#673,.T.); -#32863=ADVANCED_FACE('',(#30069),#31450,.F.); -#32864=ADVANCED_FACE('',(#30070),#674,.F.); -#32865=ADVANCED_FACE('',(#30071),#31451,.F.); -#32866=ADVANCED_FACE('',(#30072),#675,.T.); -#32867=ADVANCED_FACE('',(#30073),#676,.F.); -#32868=ADVANCED_FACE('',(#30074),#677,.F.); -#32869=ADVANCED_FACE('',(#30075),#31452,.F.); -#32870=ADVANCED_FACE('',(#30076),#678,.T.); -#32871=ADVANCED_FACE('',(#30077),#679,.T.); -#32872=ADVANCED_FACE('',(#30078),#31453,.F.); -#32873=ADVANCED_FACE('',(#30079),#680,.T.); -#32874=ADVANCED_FACE('',(#30080),#31454,.F.); -#32875=ADVANCED_FACE('',(#30081),#681,.F.); -#32876=ADVANCED_FACE('',(#30082),#31455,.F.); -#32877=ADVANCED_FACE('',(#30083),#682,.T.); -#32878=ADVANCED_FACE('',(#30084),#31456,.F.); -#32879=ADVANCED_FACE('',(#30085),#31457,.F.); -#32880=ADVANCED_FACE('',(#30086),#683,.T.); -#32881=ADVANCED_FACE('',(#30087),#31458,.F.); -#32882=ADVANCED_FACE('',(#30088),#684,.F.); -#32883=ADVANCED_FACE('',(#30089),#31459,.F.); -#32884=ADVANCED_FACE('',(#30090),#685,.T.); -#32885=ADVANCED_FACE('',(#30091),#686,.F.); -#32886=ADVANCED_FACE('',(#30092),#687,.F.); -#32887=ADVANCED_FACE('',(#30093),#31460,.F.); -#32888=ADVANCED_FACE('',(#30094),#688,.T.); -#32889=ADVANCED_FACE('',(#30095),#689,.T.); -#32890=ADVANCED_FACE('',(#30096),#31461,.F.); -#32891=ADVANCED_FACE('',(#30097),#690,.T.); -#32892=ADVANCED_FACE('',(#30098),#31462,.F.); -#32893=ADVANCED_FACE('',(#30099),#691,.F.); -#32894=ADVANCED_FACE('',(#30100),#31463,.F.); -#32895=ADVANCED_FACE('',(#30101),#692,.T.); -#32896=ADVANCED_FACE('',(#30102),#31464,.F.); -#32897=ADVANCED_FACE('',(#30103),#31465,.F.); -#32898=ADVANCED_FACE('',(#30104),#693,.T.); -#32899=ADVANCED_FACE('',(#30105),#31466,.F.); -#32900=ADVANCED_FACE('',(#30106),#694,.F.); -#32901=ADVANCED_FACE('',(#30107),#31467,.F.); -#32902=ADVANCED_FACE('',(#30108),#695,.T.); -#32903=ADVANCED_FACE('',(#30109),#696,.F.); -#32904=ADVANCED_FACE('',(#30110),#697,.F.); -#32905=ADVANCED_FACE('',(#30111),#31468,.F.); -#32906=ADVANCED_FACE('',(#30112),#698,.T.); -#32907=ADVANCED_FACE('',(#30113),#699,.T.); -#32908=ADVANCED_FACE('',(#30114),#31469,.F.); -#32909=ADVANCED_FACE('',(#30115),#700,.T.); -#32910=ADVANCED_FACE('',(#30116),#31470,.F.); -#32911=ADVANCED_FACE('',(#30117),#701,.F.); -#32912=ADVANCED_FACE('',(#30118),#31471,.F.); -#32913=ADVANCED_FACE('',(#30119),#702,.T.); -#32914=ADVANCED_FACE('',(#30120),#31472,.F.); -#32915=ADVANCED_FACE('',(#30121),#31473,.F.); -#32916=ADVANCED_FACE('',(#30122),#703,.T.); -#32917=ADVANCED_FACE('',(#30123),#31474,.F.); -#32918=ADVANCED_FACE('',(#30124),#704,.F.); -#32919=ADVANCED_FACE('',(#30125),#31475,.F.); -#32920=ADVANCED_FACE('',(#30126),#705,.T.); -#32921=ADVANCED_FACE('',(#30127),#706,.F.); -#32922=ADVANCED_FACE('',(#30128),#707,.F.); -#32923=ADVANCED_FACE('',(#30129),#31476,.F.); -#32924=ADVANCED_FACE('',(#30130),#708,.T.); -#32925=ADVANCED_FACE('',(#30131),#709,.T.); -#32926=ADVANCED_FACE('',(#30132),#31477,.F.); -#32927=ADVANCED_FACE('',(#30133),#710,.T.); -#32928=ADVANCED_FACE('',(#30134),#31478,.F.); -#32929=ADVANCED_FACE('',(#30135),#711,.F.); -#32930=ADVANCED_FACE('',(#30136),#31479,.F.); -#32931=ADVANCED_FACE('',(#30137),#712,.T.); -#32932=ADVANCED_FACE('',(#30138),#31480,.F.); -#32933=ADVANCED_FACE('',(#30139),#31481,.F.); -#32934=ADVANCED_FACE('',(#30140),#713,.T.); -#32935=ADVANCED_FACE('',(#30141),#31482,.F.); -#32936=ADVANCED_FACE('',(#30142),#714,.F.); -#32937=ADVANCED_FACE('',(#30143),#31483,.F.); -#32938=ADVANCED_FACE('',(#30144),#715,.T.); -#32939=ADVANCED_FACE('',(#30145),#716,.F.); -#32940=ADVANCED_FACE('',(#30146),#717,.F.); -#32941=ADVANCED_FACE('',(#30147),#31484,.F.); -#32942=ADVANCED_FACE('',(#30148),#718,.T.); -#32943=ADVANCED_FACE('',(#30149),#719,.T.); -#32944=ADVANCED_FACE('',(#30150),#31485,.F.); -#32945=ADVANCED_FACE('',(#30151),#720,.T.); -#32946=ADVANCED_FACE('',(#30152),#31486,.F.); -#32947=ADVANCED_FACE('',(#30153),#721,.F.); -#32948=ADVANCED_FACE('',(#30154),#31487,.F.); -#32949=ADVANCED_FACE('',(#30155),#722,.T.); -#32950=ADVANCED_FACE('',(#30156),#31488,.F.); -#32951=ADVANCED_FACE('',(#30157),#31489,.F.); -#32952=ADVANCED_FACE('',(#30158),#723,.T.); -#32953=ADVANCED_FACE('',(#30159),#31490,.F.); -#32954=ADVANCED_FACE('',(#30160),#724,.F.); -#32955=ADVANCED_FACE('',(#30161),#31491,.F.); -#32956=ADVANCED_FACE('',(#30162),#725,.T.); -#32957=ADVANCED_FACE('',(#30163),#726,.F.); -#32958=ADVANCED_FACE('',(#30164),#727,.F.); -#32959=ADVANCED_FACE('',(#30165),#31492,.F.); -#32960=ADVANCED_FACE('',(#30166),#728,.T.); -#32961=ADVANCED_FACE('',(#30167),#729,.T.); -#32962=ADVANCED_FACE('',(#30168),#31493,.F.); -#32963=ADVANCED_FACE('',(#30169),#730,.T.); -#32964=ADVANCED_FACE('',(#30170),#31494,.F.); -#32965=ADVANCED_FACE('',(#30171),#731,.F.); -#32966=ADVANCED_FACE('',(#30172),#31495,.F.); -#32967=ADVANCED_FACE('',(#30173),#732,.T.); -#32968=ADVANCED_FACE('',(#30174),#31496,.F.); -#32969=ADVANCED_FACE('',(#30175),#31497,.F.); -#32970=ADVANCED_FACE('',(#30176),#733,.T.); -#32971=ADVANCED_FACE('',(#30177),#31498,.F.); -#32972=ADVANCED_FACE('',(#30178),#734,.F.); -#32973=ADVANCED_FACE('',(#30179),#31499,.F.); -#32974=ADVANCED_FACE('',(#30180),#735,.T.); -#32975=ADVANCED_FACE('',(#30181),#736,.F.); -#32976=ADVANCED_FACE('',(#30182),#737,.F.); -#32977=ADVANCED_FACE('',(#30183),#31500,.F.); -#32978=ADVANCED_FACE('',(#30184),#738,.T.); -#32979=ADVANCED_FACE('',(#30185),#739,.T.); -#32980=ADVANCED_FACE('',(#30186),#31501,.F.); -#32981=ADVANCED_FACE('',(#30187),#740,.T.); -#32982=ADVANCED_FACE('',(#30188),#31502,.F.); -#32983=ADVANCED_FACE('',(#30189),#741,.F.); -#32984=ADVANCED_FACE('',(#30190),#31503,.F.); -#32985=ADVANCED_FACE('',(#30191),#742,.T.); -#32986=ADVANCED_FACE('',(#30192),#31504,.F.); -#32987=ADVANCED_FACE('',(#30193),#31505,.F.); -#32988=ADVANCED_FACE('',(#30194),#743,.T.); -#32989=ADVANCED_FACE('',(#30195),#31506,.F.); -#32990=ADVANCED_FACE('',(#30196),#744,.F.); -#32991=ADVANCED_FACE('',(#30197),#31507,.F.); -#32992=ADVANCED_FACE('',(#30198),#745,.T.); -#32993=ADVANCED_FACE('',(#30199),#746,.F.); -#32994=ADVANCED_FACE('',(#30200),#747,.F.); -#32995=ADVANCED_FACE('',(#30201),#31508,.F.); -#32996=ADVANCED_FACE('',(#30202),#748,.T.); -#32997=ADVANCED_FACE('',(#30203),#749,.T.); -#32998=ADVANCED_FACE('',(#30204),#31509,.F.); -#32999=ADVANCED_FACE('',(#30205),#750,.T.); -#33000=ADVANCED_FACE('',(#30206),#31510,.F.); -#33001=ADVANCED_FACE('',(#30207),#751,.F.); -#33002=ADVANCED_FACE('',(#30208),#31511,.F.); -#33003=ADVANCED_FACE('',(#30209),#752,.T.); -#33004=ADVANCED_FACE('',(#30210),#31512,.F.); -#33005=ADVANCED_FACE('',(#30211),#31513,.F.); -#33006=ADVANCED_FACE('',(#30212),#753,.T.); -#33007=ADVANCED_FACE('',(#30213),#31514,.F.); -#33008=ADVANCED_FACE('',(#30214),#754,.F.); -#33009=ADVANCED_FACE('',(#30215),#31515,.F.); -#33010=ADVANCED_FACE('',(#30216),#755,.T.); -#33011=ADVANCED_FACE('',(#30217),#756,.F.); -#33012=ADVANCED_FACE('',(#30218),#757,.F.); -#33013=ADVANCED_FACE('',(#30219),#31516,.F.); -#33014=ADVANCED_FACE('',(#30220),#758,.T.); -#33015=ADVANCED_FACE('',(#30221),#759,.T.); -#33016=ADVANCED_FACE('',(#30222),#31517,.F.); -#33017=ADVANCED_FACE('',(#30223),#760,.T.); -#33018=ADVANCED_FACE('',(#30224),#31518,.F.); -#33019=ADVANCED_FACE('',(#30225),#761,.F.); -#33020=ADVANCED_FACE('',(#30226),#31519,.F.); -#33021=ADVANCED_FACE('',(#30227),#762,.T.); -#33022=ADVANCED_FACE('',(#30228),#31520,.F.); -#33023=ADVANCED_FACE('',(#30229),#31521,.F.); -#33024=ADVANCED_FACE('',(#30230),#763,.T.); -#33025=ADVANCED_FACE('',(#30231),#31522,.F.); -#33026=ADVANCED_FACE('',(#30232),#764,.F.); -#33027=ADVANCED_FACE('',(#30233),#31523,.F.); -#33028=ADVANCED_FACE('',(#30234),#765,.T.); -#33029=ADVANCED_FACE('',(#30235),#766,.F.); -#33030=ADVANCED_FACE('',(#30236),#767,.F.); -#33031=ADVANCED_FACE('',(#30237),#31524,.F.); -#33032=ADVANCED_FACE('',(#30238),#768,.T.); -#33033=ADVANCED_FACE('',(#30239),#769,.T.); -#33034=ADVANCED_FACE('',(#30240),#31525,.F.); -#33035=ADVANCED_FACE('',(#30241),#770,.F.); -#33036=ADVANCED_FACE('',(#30242),#31526,.F.); -#33037=ADVANCED_FACE('',(#30243),#771,.T.); -#33038=ADVANCED_FACE('',(#30244),#31527,.F.); -#33039=ADVANCED_FACE('',(#30245),#31528,.F.); -#33040=ADVANCED_FACE('',(#30246),#772,.T.); -#33041=ADVANCED_FACE('',(#30247),#31529,.F.); -#33042=ADVANCED_FACE('',(#30248),#773,.F.); -#33043=ADVANCED_FACE('',(#30249),#31530,.F.); -#33044=ADVANCED_FACE('',(#30250),#774,.T.); -#33045=ADVANCED_FACE('',(#30251),#31531,.F.); -#33046=ADVANCED_FACE('',(#30252),#775,.F.); -#33047=ADVANCED_FACE('',(#30253),#776,.F.); -#33048=ADVANCED_FACE('',(#30254),#31532,.F.); -#33049=ADVANCED_FACE('',(#30255),#777,.T.); -#33050=ADVANCED_FACE('',(#30256),#778,.T.); -#33051=ADVANCED_FACE('',(#30257),#779,.T.); -#33052=ADVANCED_FACE('',(#30258),#31533,.F.); -#33053=ADVANCED_FACE('',(#30259),#780,.F.); -#33054=ADVANCED_FACE('',(#30260),#31534,.F.); -#33055=ADVANCED_FACE('',(#30261),#781,.T.); -#33056=ADVANCED_FACE('',(#30262),#31535,.F.); -#33057=ADVANCED_FACE('',(#30263),#31536,.F.); -#33058=ADVANCED_FACE('',(#30264),#782,.T.); -#33059=ADVANCED_FACE('',(#30265),#31537,.F.); -#33060=ADVANCED_FACE('',(#30266),#783,.F.); -#33061=ADVANCED_FACE('',(#30267),#31538,.F.); -#33062=ADVANCED_FACE('',(#30268),#784,.T.); -#33063=ADVANCED_FACE('',(#30269),#31539,.F.); -#33064=ADVANCED_FACE('',(#30270),#785,.F.); -#33065=ADVANCED_FACE('',(#30271),#786,.F.); -#33066=ADVANCED_FACE('',(#30272),#31540,.F.); -#33067=ADVANCED_FACE('',(#30273),#787,.T.); -#33068=ADVANCED_FACE('',(#30274),#788,.T.); -#33069=ADVANCED_FACE('',(#30275),#789,.T.); -#33070=ADVANCED_FACE('',(#30276),#31541,.F.); -#33071=ADVANCED_FACE('',(#30277),#790,.F.); -#33072=ADVANCED_FACE('',(#30278),#31542,.F.); -#33073=ADVANCED_FACE('',(#30279),#791,.T.); -#33074=ADVANCED_FACE('',(#30280),#31543,.F.); -#33075=ADVANCED_FACE('',(#30281),#31544,.F.); -#33076=ADVANCED_FACE('',(#30282),#792,.T.); -#33077=ADVANCED_FACE('',(#30283),#31545,.F.); -#33078=ADVANCED_FACE('',(#30284),#793,.F.); -#33079=ADVANCED_FACE('',(#30285),#31546,.F.); -#33080=ADVANCED_FACE('',(#30286),#794,.T.); -#33081=ADVANCED_FACE('',(#30287),#31547,.F.); -#33082=ADVANCED_FACE('',(#30288),#795,.F.); -#33083=ADVANCED_FACE('',(#30289),#796,.F.); -#33084=ADVANCED_FACE('',(#30290),#31548,.F.); -#33085=ADVANCED_FACE('',(#30291),#797,.T.); -#33086=ADVANCED_FACE('',(#30292),#798,.T.); -#33087=ADVANCED_FACE('',(#30293),#799,.T.); -#33088=ADVANCED_FACE('',(#30294),#31549,.F.); -#33089=ADVANCED_FACE('',(#30295),#800,.F.); -#33090=ADVANCED_FACE('',(#30296),#31550,.F.); -#33091=ADVANCED_FACE('',(#30297),#801,.T.); -#33092=ADVANCED_FACE('',(#30298),#31551,.F.); -#33093=ADVANCED_FACE('',(#30299),#31552,.F.); -#33094=ADVANCED_FACE('',(#30300),#802,.T.); -#33095=ADVANCED_FACE('',(#30301),#31553,.F.); -#33096=ADVANCED_FACE('',(#30302),#803,.F.); -#33097=ADVANCED_FACE('',(#30303),#31554,.F.); -#33098=ADVANCED_FACE('',(#30304),#804,.T.); -#33099=ADVANCED_FACE('',(#30305),#31555,.F.); -#33100=ADVANCED_FACE('',(#30306),#805,.F.); -#33101=ADVANCED_FACE('',(#30307),#806,.F.); -#33102=ADVANCED_FACE('',(#30308),#31556,.F.); -#33103=ADVANCED_FACE('',(#30309),#807,.T.); -#33104=ADVANCED_FACE('',(#30310),#808,.T.); -#33105=ADVANCED_FACE('',(#30311),#809,.T.); -#33106=ADVANCED_FACE('',(#30312),#31557,.F.); -#33107=ADVANCED_FACE('',(#30313),#810,.F.); -#33108=ADVANCED_FACE('',(#30314),#31558,.F.); -#33109=ADVANCED_FACE('',(#30315),#811,.T.); -#33110=ADVANCED_FACE('',(#30316),#31559,.F.); -#33111=ADVANCED_FACE('',(#30317),#31560,.F.); -#33112=ADVANCED_FACE('',(#30318),#812,.T.); -#33113=ADVANCED_FACE('',(#30319),#31561,.F.); -#33114=ADVANCED_FACE('',(#30320),#813,.F.); -#33115=ADVANCED_FACE('',(#30321),#31562,.F.); -#33116=ADVANCED_FACE('',(#30322),#814,.T.); -#33117=ADVANCED_FACE('',(#30323),#31563,.F.); -#33118=ADVANCED_FACE('',(#30324),#815,.F.); -#33119=ADVANCED_FACE('',(#30325),#816,.F.); -#33120=ADVANCED_FACE('',(#30326),#31564,.F.); -#33121=ADVANCED_FACE('',(#30327),#817,.T.); -#33122=ADVANCED_FACE('',(#30328),#818,.T.); -#33123=ADVANCED_FACE('',(#30329),#819,.T.); -#33124=ADVANCED_FACE('',(#30330),#31565,.F.); -#33125=ADVANCED_FACE('',(#30331),#820,.F.); -#33126=ADVANCED_FACE('',(#30332),#31566,.F.); -#33127=ADVANCED_FACE('',(#30333),#821,.T.); -#33128=ADVANCED_FACE('',(#30334),#31567,.F.); -#33129=ADVANCED_FACE('',(#30335),#31568,.F.); -#33130=ADVANCED_FACE('',(#30336),#822,.T.); -#33131=ADVANCED_FACE('',(#30337),#31569,.F.); -#33132=ADVANCED_FACE('',(#30338),#823,.F.); -#33133=ADVANCED_FACE('',(#30339),#31570,.F.); -#33134=ADVANCED_FACE('',(#30340),#824,.T.); -#33135=ADVANCED_FACE('',(#30341),#31571,.F.); -#33136=ADVANCED_FACE('',(#30342),#825,.F.); -#33137=ADVANCED_FACE('',(#30343),#826,.F.); -#33138=ADVANCED_FACE('',(#30344),#31572,.F.); -#33139=ADVANCED_FACE('',(#30345),#827,.T.); -#33140=ADVANCED_FACE('',(#30346),#828,.T.); -#33141=ADVANCED_FACE('',(#30347),#829,.T.); -#33142=ADVANCED_FACE('',(#30348),#31573,.F.); -#33143=ADVANCED_FACE('',(#30349),#830,.F.); -#33144=ADVANCED_FACE('',(#30350),#31574,.F.); -#33145=ADVANCED_FACE('',(#30351),#831,.T.); -#33146=ADVANCED_FACE('',(#30352),#31575,.F.); -#33147=ADVANCED_FACE('',(#30353),#31576,.F.); -#33148=ADVANCED_FACE('',(#30354),#832,.T.); -#33149=ADVANCED_FACE('',(#30355),#31577,.F.); -#33150=ADVANCED_FACE('',(#30356),#833,.F.); -#33151=ADVANCED_FACE('',(#30357),#31578,.F.); -#33152=ADVANCED_FACE('',(#30358),#834,.T.); -#33153=ADVANCED_FACE('',(#30359),#31579,.F.); -#33154=ADVANCED_FACE('',(#30360),#835,.F.); -#33155=ADVANCED_FACE('',(#30361),#836,.F.); -#33156=ADVANCED_FACE('',(#30362),#31580,.F.); -#33157=ADVANCED_FACE('',(#30363),#837,.T.); -#33158=ADVANCED_FACE('',(#30364),#838,.T.); -#33159=ADVANCED_FACE('',(#30365),#839,.T.); -#33160=ADVANCED_FACE('',(#30366),#31581,.F.); -#33161=ADVANCED_FACE('',(#30367),#840,.F.); -#33162=ADVANCED_FACE('',(#30368),#31582,.F.); -#33163=ADVANCED_FACE('',(#30369),#841,.T.); -#33164=ADVANCED_FACE('',(#30370),#31583,.F.); -#33165=ADVANCED_FACE('',(#30371),#31584,.F.); -#33166=ADVANCED_FACE('',(#30372),#842,.T.); -#33167=ADVANCED_FACE('',(#30373),#31585,.F.); -#33168=ADVANCED_FACE('',(#30374),#843,.F.); -#33169=ADVANCED_FACE('',(#30375),#31586,.F.); -#33170=ADVANCED_FACE('',(#30376),#844,.T.); -#33171=ADVANCED_FACE('',(#30377),#31587,.F.); -#33172=ADVANCED_FACE('',(#30378),#845,.F.); -#33173=ADVANCED_FACE('',(#30379),#846,.F.); -#33174=ADVANCED_FACE('',(#30380),#31588,.F.); -#33175=ADVANCED_FACE('',(#30381),#847,.T.); -#33176=ADVANCED_FACE('',(#30382),#848,.T.); -#33177=ADVANCED_FACE('',(#30383),#849,.T.); -#33178=ADVANCED_FACE('',(#30384),#31589,.F.); -#33179=ADVANCED_FACE('',(#30385),#850,.F.); -#33180=ADVANCED_FACE('',(#30386),#31590,.F.); -#33181=ADVANCED_FACE('',(#30387),#851,.T.); -#33182=ADVANCED_FACE('',(#30388),#31591,.F.); -#33183=ADVANCED_FACE('',(#30389),#31592,.F.); -#33184=ADVANCED_FACE('',(#30390),#852,.T.); -#33185=ADVANCED_FACE('',(#30391),#31593,.F.); -#33186=ADVANCED_FACE('',(#30392),#853,.F.); -#33187=ADVANCED_FACE('',(#30393),#31594,.F.); -#33188=ADVANCED_FACE('',(#30394),#854,.T.); -#33189=ADVANCED_FACE('',(#30395),#31595,.F.); -#33190=ADVANCED_FACE('',(#30396),#855,.F.); -#33191=ADVANCED_FACE('',(#30397),#856,.F.); -#33192=ADVANCED_FACE('',(#30398),#31596,.F.); -#33193=ADVANCED_FACE('',(#30399),#857,.T.); -#33194=ADVANCED_FACE('',(#30400),#858,.T.); -#33195=ADVANCED_FACE('',(#30401),#859,.T.); -#33196=ADVANCED_FACE('',(#30402),#31597,.F.); -#33197=ADVANCED_FACE('',(#30403),#860,.F.); -#33198=ADVANCED_FACE('',(#30404),#31598,.F.); -#33199=ADVANCED_FACE('',(#30405),#861,.T.); -#33200=ADVANCED_FACE('',(#30406),#31599,.F.); -#33201=ADVANCED_FACE('',(#30407),#31600,.F.); -#33202=ADVANCED_FACE('',(#30408),#862,.T.); -#33203=ADVANCED_FACE('',(#30409),#31601,.F.); -#33204=ADVANCED_FACE('',(#30410),#863,.F.); -#33205=ADVANCED_FACE('',(#30411),#31602,.F.); -#33206=ADVANCED_FACE('',(#30412),#864,.T.); -#33207=ADVANCED_FACE('',(#30413),#31603,.F.); -#33208=ADVANCED_FACE('',(#30414),#865,.F.); -#33209=ADVANCED_FACE('',(#30415),#866,.F.); -#33210=ADVANCED_FACE('',(#30416),#31604,.F.); -#33211=ADVANCED_FACE('',(#30417),#867,.T.); -#33212=ADVANCED_FACE('',(#30418),#868,.T.); -#33213=ADVANCED_FACE('',(#30419),#869,.T.); -#33214=ADVANCED_FACE('',(#30420),#31605,.F.); -#33215=ADVANCED_FACE('',(#30421),#870,.F.); -#33216=ADVANCED_FACE('',(#30422),#31606,.F.); -#33217=ADVANCED_FACE('',(#30423),#871,.T.); -#33218=ADVANCED_FACE('',(#30424),#31607,.F.); -#33219=ADVANCED_FACE('',(#30425),#31608,.F.); -#33220=ADVANCED_FACE('',(#30426),#872,.T.); -#33221=ADVANCED_FACE('',(#30427),#31609,.F.); -#33222=ADVANCED_FACE('',(#30428),#873,.F.); -#33223=ADVANCED_FACE('',(#30429),#31610,.F.); -#33224=ADVANCED_FACE('',(#30430),#874,.T.); -#33225=ADVANCED_FACE('',(#30431),#31611,.F.); -#33226=ADVANCED_FACE('',(#30432),#875,.F.); -#33227=ADVANCED_FACE('',(#30433),#876,.F.); -#33228=ADVANCED_FACE('',(#30434),#31612,.F.); -#33229=ADVANCED_FACE('',(#30435),#877,.T.); -#33230=ADVANCED_FACE('',(#30436),#878,.T.); -#33231=ADVANCED_FACE('',(#30437),#879,.T.); -#33232=ADVANCED_FACE('',(#30438),#31613,.F.); -#33233=ADVANCED_FACE('',(#30439),#880,.F.); -#33234=ADVANCED_FACE('',(#30440),#31614,.F.); -#33235=ADVANCED_FACE('',(#30441),#881,.T.); -#33236=ADVANCED_FACE('',(#30442),#31615,.F.); -#33237=ADVANCED_FACE('',(#30443),#31616,.F.); -#33238=ADVANCED_FACE('',(#30444),#882,.T.); -#33239=ADVANCED_FACE('',(#30445),#31617,.F.); -#33240=ADVANCED_FACE('',(#30446),#883,.F.); -#33241=ADVANCED_FACE('',(#30447),#31618,.F.); -#33242=ADVANCED_FACE('',(#30448),#884,.T.); -#33243=ADVANCED_FACE('',(#30449),#31619,.F.); -#33244=ADVANCED_FACE('',(#30450),#885,.F.); -#33245=ADVANCED_FACE('',(#30451),#886,.F.); -#33246=ADVANCED_FACE('',(#30452),#31620,.F.); -#33247=ADVANCED_FACE('',(#30453),#887,.T.); -#33248=ADVANCED_FACE('',(#30454),#888,.T.); -#33249=ADVANCED_FACE('',(#30455),#889,.T.); -#33250=ADVANCED_FACE('',(#30456),#31621,.F.); -#33251=ADVANCED_FACE('',(#30457),#890,.F.); -#33252=ADVANCED_FACE('',(#30458),#31622,.F.); -#33253=ADVANCED_FACE('',(#30459),#891,.T.); -#33254=ADVANCED_FACE('',(#30460),#31623,.F.); -#33255=ADVANCED_FACE('',(#30461),#31624,.F.); -#33256=ADVANCED_FACE('',(#30462),#892,.T.); -#33257=ADVANCED_FACE('',(#30463),#31625,.F.); -#33258=ADVANCED_FACE('',(#30464),#893,.F.); -#33259=ADVANCED_FACE('',(#30465),#31626,.F.); -#33260=ADVANCED_FACE('',(#30466),#894,.T.); -#33261=ADVANCED_FACE('',(#30467),#31627,.F.); -#33262=ADVANCED_FACE('',(#30468),#895,.F.); -#33263=ADVANCED_FACE('',(#30469),#896,.F.); -#33264=ADVANCED_FACE('',(#30470),#31628,.F.); -#33265=ADVANCED_FACE('',(#30471),#897,.T.); -#33266=ADVANCED_FACE('',(#30472),#898,.T.); -#33267=ADVANCED_FACE('',(#30473),#899,.T.); -#33268=ADVANCED_FACE('',(#30474),#31629,.F.); -#33269=ADVANCED_FACE('',(#30475),#900,.F.); -#33270=ADVANCED_FACE('',(#30476),#31630,.F.); -#33271=ADVANCED_FACE('',(#30477),#901,.T.); -#33272=ADVANCED_FACE('',(#30478),#31631,.F.); -#33273=ADVANCED_FACE('',(#30479),#31632,.F.); -#33274=ADVANCED_FACE('',(#30480),#902,.T.); -#33275=ADVANCED_FACE('',(#30481),#31633,.F.); -#33276=ADVANCED_FACE('',(#30482),#903,.F.); -#33277=ADVANCED_FACE('',(#30483),#31634,.F.); -#33278=ADVANCED_FACE('',(#30484),#904,.T.); -#33279=ADVANCED_FACE('',(#30485),#31635,.F.); -#33280=ADVANCED_FACE('',(#30486),#905,.F.); -#33281=ADVANCED_FACE('',(#30487),#906,.F.); -#33282=ADVANCED_FACE('',(#30488),#31636,.F.); -#33283=ADVANCED_FACE('',(#30489),#907,.T.); -#33284=ADVANCED_FACE('',(#30490),#908,.T.); -#33285=ADVANCED_FACE('',(#30491),#909,.T.); -#33286=ADVANCED_FACE('',(#30492),#31637,.F.); -#33287=ADVANCED_FACE('',(#30493),#910,.F.); -#33288=ADVANCED_FACE('',(#30494),#31638,.F.); -#33289=ADVANCED_FACE('',(#30495),#911,.T.); -#33290=ADVANCED_FACE('',(#30496),#31639,.F.); -#33291=ADVANCED_FACE('',(#30497),#31640,.F.); -#33292=ADVANCED_FACE('',(#30498),#912,.T.); -#33293=ADVANCED_FACE('',(#30499),#31641,.F.); -#33294=ADVANCED_FACE('',(#30500),#913,.F.); -#33295=ADVANCED_FACE('',(#30501),#31642,.F.); -#33296=ADVANCED_FACE('',(#30502),#914,.T.); -#33297=ADVANCED_FACE('',(#30503),#31643,.F.); -#33298=ADVANCED_FACE('',(#30504),#915,.F.); -#33299=ADVANCED_FACE('',(#30505),#916,.F.); -#33300=ADVANCED_FACE('',(#30506),#31644,.F.); -#33301=ADVANCED_FACE('',(#30507),#917,.T.); -#33302=ADVANCED_FACE('',(#30508),#918,.T.); -#33303=ADVANCED_FACE('',(#30509),#919,.T.); -#33304=ADVANCED_FACE('',(#30510),#31645,.F.); -#33305=ADVANCED_FACE('',(#30511),#920,.F.); -#33306=ADVANCED_FACE('',(#30512),#31646,.F.); -#33307=ADVANCED_FACE('',(#30513),#921,.T.); -#33308=ADVANCED_FACE('',(#30514),#31647,.F.); -#33309=ADVANCED_FACE('',(#30515),#31648,.F.); -#33310=ADVANCED_FACE('',(#30516),#922,.T.); -#33311=ADVANCED_FACE('',(#30517),#31649,.F.); -#33312=ADVANCED_FACE('',(#30518),#923,.F.); -#33313=ADVANCED_FACE('',(#30519),#31650,.F.); -#33314=ADVANCED_FACE('',(#30520),#924,.T.); -#33315=ADVANCED_FACE('',(#30521),#31651,.F.); -#33316=ADVANCED_FACE('',(#30522),#925,.F.); -#33317=ADVANCED_FACE('',(#30523),#926,.F.); -#33318=ADVANCED_FACE('',(#30524),#31652,.F.); -#33319=ADVANCED_FACE('',(#30525),#927,.T.); -#33320=ADVANCED_FACE('',(#30526),#928,.T.); -#33321=ADVANCED_FACE('',(#30527),#929,.T.); -#33322=ADVANCED_FACE('',(#30528),#31653,.F.); -#33323=ADVANCED_FACE('',(#30529),#930,.F.); -#33324=ADVANCED_FACE('',(#30530),#31654,.F.); -#33325=ADVANCED_FACE('',(#30531),#931,.T.); -#33326=ADVANCED_FACE('',(#30532),#31655,.F.); -#33327=ADVANCED_FACE('',(#30533),#31656,.F.); -#33328=ADVANCED_FACE('',(#30534),#932,.T.); -#33329=ADVANCED_FACE('',(#30535),#31657,.F.); -#33330=ADVANCED_FACE('',(#30536),#933,.F.); -#33331=ADVANCED_FACE('',(#30537),#31658,.F.); -#33332=ADVANCED_FACE('',(#30538),#934,.T.); -#33333=ADVANCED_FACE('',(#30539),#31659,.F.); -#33334=ADVANCED_FACE('',(#30540),#935,.F.); -#33335=ADVANCED_FACE('',(#30541),#936,.F.); -#33336=ADVANCED_FACE('',(#30542),#31660,.F.); -#33337=ADVANCED_FACE('',(#30543),#937,.T.); -#33338=ADVANCED_FACE('',(#30544),#938,.T.); -#33339=ADVANCED_FACE('',(#30545),#939,.T.); -#33340=ADVANCED_FACE('',(#30546),#31661,.F.); -#33341=ADVANCED_FACE('',(#30547),#940,.F.); -#33342=ADVANCED_FACE('',(#30548),#31662,.F.); -#33343=ADVANCED_FACE('',(#30549),#941,.T.); -#33344=ADVANCED_FACE('',(#30550),#31663,.F.); -#33345=ADVANCED_FACE('',(#30551),#31664,.F.); -#33346=ADVANCED_FACE('',(#30552),#942,.T.); -#33347=ADVANCED_FACE('',(#30553),#31665,.F.); -#33348=ADVANCED_FACE('',(#30554),#943,.F.); -#33349=ADVANCED_FACE('',(#30555),#31666,.F.); -#33350=ADVANCED_FACE('',(#30556),#944,.T.); -#33351=ADVANCED_FACE('',(#30557),#31667,.F.); -#33352=ADVANCED_FACE('',(#30558),#945,.F.); -#33353=ADVANCED_FACE('',(#30559),#946,.F.); -#33354=ADVANCED_FACE('',(#30560),#31668,.F.); -#33355=ADVANCED_FACE('',(#30561),#947,.T.); -#33356=ADVANCED_FACE('',(#30562),#948,.T.); -#33357=ADVANCED_FACE('',(#30563),#949,.T.); -#33358=ADVANCED_FACE('',(#30564),#31669,.F.); -#33359=ADVANCED_FACE('',(#30565),#950,.F.); -#33360=ADVANCED_FACE('',(#30566),#31670,.F.); -#33361=ADVANCED_FACE('',(#30567),#951,.T.); -#33362=ADVANCED_FACE('',(#30568),#31671,.F.); -#33363=ADVANCED_FACE('',(#30569),#31672,.F.); -#33364=ADVANCED_FACE('',(#30570),#952,.T.); -#33365=ADVANCED_FACE('',(#30571),#31673,.F.); -#33366=ADVANCED_FACE('',(#30572),#953,.F.); -#33367=ADVANCED_FACE('',(#30573),#31674,.F.); -#33368=ADVANCED_FACE('',(#30574),#954,.T.); -#33369=ADVANCED_FACE('',(#30575),#31675,.F.); -#33370=ADVANCED_FACE('',(#30576),#955,.F.); -#33371=ADVANCED_FACE('',(#30577),#956,.F.); -#33372=ADVANCED_FACE('',(#30578),#31676,.F.); -#33373=ADVANCED_FACE('',(#30579),#957,.T.); -#33374=ADVANCED_FACE('',(#30580),#958,.T.); -#33375=ADVANCED_FACE('',(#30581),#31677,.T.); -#33376=ADVANCED_FACE('',(#30582),#31678,.T.); -#33377=ADVANCED_FACE('',(#30583,#30584),#31679,.T.); -#33378=CLOSED_SHELL('',(#31680,#31681,#31682,#31683,#31684,#31685,#31686, -#31687,#31688,#31689,#31690,#31691,#31692,#31693,#31694,#31695,#31696,#31697, -#31698,#31699,#31700,#31701,#31702,#31703,#31704,#31705,#31706,#31707,#31708, -#31709,#31710,#31711,#31712,#31713,#31714,#31715,#31716,#31717,#31718,#31719, -#31720,#31721,#31722,#31723,#31724,#31725,#31726,#31727,#31728,#31729,#31730, -#31731,#31732,#31733,#31734,#31735,#31736,#31737,#31738,#31739,#31740,#31741, -#31742,#31743,#31744,#31745,#31746,#31747,#31748,#31749,#31750,#31751,#31752, -#31753,#31754,#31755,#31756,#31757,#31758,#31759,#31760,#31761,#31762,#31763, -#31764,#31765,#31766,#31767,#31768,#31769,#31770,#31771,#31772,#31773,#31774, -#31775,#31776,#31777,#31778,#31779,#31780,#31781,#31782,#31783,#31784,#31785, -#31786,#31787,#31788,#31789,#31790,#31791,#31792,#31793,#31794,#31795,#31796, -#31797,#31798,#31799,#31800,#31801,#31802,#31803,#31804,#31805,#31806,#31807, -#31808,#31809,#31810,#31811,#31812,#31813,#31814,#31815,#31816,#31817,#31818, -#31819,#31820,#31821,#31822,#31823,#31824,#31825,#31826,#31827,#31828,#31829, -#31830,#31831,#31832,#31833,#31834,#31835,#31836,#31837,#31838,#31839,#31840, -#31841,#31842,#31843,#31844,#31845,#31846,#31847,#31848,#31849,#31850,#31851, -#31852,#31853,#31854,#31855,#31856,#31857,#31858,#31859,#31860,#31861,#31862, -#31863,#31864,#31865,#31866,#31867,#31868,#31869,#31870,#31871,#31872,#31873, -#31874,#31875,#31876,#31877,#31878,#31879,#31880,#31881,#31882,#31883,#31884, -#31885,#31886,#31887,#31888,#31889,#31890,#31891,#31892,#31893,#31894,#31895, -#31896,#31897,#31898,#31899,#31900,#31901,#31902,#31903,#31904,#31905,#31906, -#31907,#31908,#31909,#31910,#31911,#31912,#31913,#31914,#31915,#31916,#31917, -#31918,#31919,#31920,#31921,#31922,#31923,#31924,#31925,#31926,#31927,#31928, -#31929,#31930,#31931,#31932,#31933,#31934,#31935,#31936,#31937,#31938,#31939, -#31940,#31941,#31942,#31943,#31944,#31945,#31946,#31947,#31948,#31949,#31950, -#31951,#31952,#31953,#31954,#31955,#31956,#31957,#31958,#31959,#31960,#31961, -#31962,#31963,#31964,#31965,#31966,#31967,#31968,#31969,#31970,#31971,#31972, -#31973,#31974,#31975,#31976,#31977,#31978,#31979,#31980,#31981,#31982,#31983, -#31984,#31985,#31986,#31987,#31988,#31989,#31990,#31991,#31992,#31993,#31994, -#31995,#31996,#31997,#31998,#31999,#32000,#32001,#32002,#32003,#32004,#32005, -#32006,#32007,#32008,#32009,#32010,#32011,#32012,#32013,#32014,#32015,#32016, -#32017,#32018,#32019,#32020,#32021,#32022,#32023,#32024,#32025,#32026,#32027, -#32028,#32029,#32030,#32031,#32032,#32033,#32034,#32035,#32036,#32037,#32038, -#32039,#32040,#32041,#32042,#32043,#32044,#32045,#32046,#32047,#32048,#32049, -#32050,#32051,#32052,#32053,#32054,#32055,#32056,#32057,#32058,#32059,#32060, -#32061,#32062,#32063,#32064,#32065,#32066,#32067,#32068,#32069,#32070,#32071, -#32072,#32073,#32074,#32075,#32076,#32077,#32078,#32079)); -#33379=CLOSED_SHELL('',(#32080,#32081,#32082,#32083,#32084,#32085,#32086, -#32087,#32088,#32089,#32090,#32091,#32092,#32093,#32094,#32095,#32096,#32097, -#32098,#32099,#32100,#32101,#32102,#32103,#32104,#32105,#32106,#32107,#32108, -#32109,#32110,#32111,#32112,#32113,#32114,#32115,#32116,#32117,#32118,#32119, -#32120,#32121,#32122,#32123,#32124,#32125,#32126,#32127,#32128,#32129,#32130, -#32131,#32132,#32133,#32134,#32135,#32136,#32137,#32138,#32139,#32140,#32141, -#32142,#32143,#32144,#32145,#32146,#32147,#32148,#32149,#32150,#32151,#32152, -#32153,#32154,#32155,#32156,#32157,#32158,#32159,#32160,#32161,#32162,#32163, -#32164,#32165,#32166,#32167,#32168,#32169,#32170,#32171,#32172,#32173,#32174, -#32175,#32176,#32177,#32178,#32179,#32180,#32181,#32182,#32183,#32184,#32185, -#32186,#32187,#32188,#32189,#32190,#32191,#32192,#32193,#32194,#32195,#32196, -#32197,#32198,#32199,#32200,#32201,#32202,#32203,#32204,#32205,#32206,#32207, -#32208,#32209,#32210,#32211,#32212,#32213,#32214,#32215,#32216,#32217,#32218, -#32219,#32220,#32221,#32222,#32223,#32224,#32225,#32226,#32227,#32228,#32229, -#32230,#32231,#32232,#32233,#32234,#32235,#32236,#32237,#32238,#32239,#32240, -#32241,#32242,#32243,#32244,#32245,#32246,#32247,#32248,#32249,#32250,#32251, -#32252,#32253,#32254,#32255,#32256,#32257,#32258,#32259,#32260,#32261,#32262, -#32263,#32264,#32265,#32266,#32267,#32268,#32269,#32270,#32271,#32272,#32273, -#32274,#32275,#32276,#32277,#32278,#32279,#32280,#32281,#32282,#32283,#32284, -#32285,#32286,#32287,#32288,#32289,#32290,#32291,#32292,#32293,#32294,#32295, -#32296,#32297,#32298,#32299,#32300,#32301,#32302,#32303,#32304,#32305,#32306, -#32307,#32308,#32309,#32310,#32311,#32312,#32313,#32314,#32315,#32316,#32317, -#32318,#32319,#32320,#32321,#32322,#32323,#32324,#32325,#32326,#32327,#32328, -#32329,#32330,#32331,#32332,#32333,#32334,#32335,#32336,#32337,#32338,#32339, -#32340,#32341,#32342,#32343,#32344,#32345,#32346,#32347,#32348,#32349,#32350, -#32351,#32352,#32353,#32354,#32355,#32356,#32357,#32358,#32359,#32360,#32361, -#32362,#32363,#32364,#32365,#32366,#32367,#32368,#32369,#32370,#32371,#32372, -#32373,#32374,#32375,#32376,#32377,#32378,#32379,#32380,#32381,#32382,#32383, -#32384,#32385,#32386,#32387,#32388,#32389,#32390,#32391,#32392,#32393,#32394, -#32395,#32396,#32397,#32398,#32399,#32400,#32401,#32402,#32403,#32404,#32405, -#32406,#32407,#32408,#32409,#32410,#32411,#32412,#32413,#32414,#32415,#32416, -#32417,#32418,#32419,#32420,#32421,#32422,#32423,#32424,#32425,#32426,#32427, -#32428,#32429,#32430,#32431,#32432,#32433,#32434,#32435,#32436,#32437,#32438, -#32439,#32440,#32441,#32442,#32443,#32444,#32445,#32446,#32447,#32448,#32449, -#32450,#32451,#32452,#32453,#32454,#32455,#32456,#32457,#32458,#32459,#32460, -#32461,#32462,#32463,#32464,#32465,#32466,#32467,#32468,#32469,#32470,#32471, -#32472,#32473,#32474,#32475,#32476,#32477,#32478,#32479,#32480,#32481,#32482, -#32483,#32484,#32485,#32486,#32487,#32488)); -#33380=CLOSED_SHELL('',(#32489,#32490,#32491,#32492,#32493,#32494,#32495, -#32496,#32497,#32498,#32499,#32500,#32501,#32502,#32503,#32504,#32505,#32506, -#32507,#32508,#32509,#32510,#32511,#32512,#32513,#32514,#32515,#32516,#32517, -#32518,#32519,#32520,#32521,#32522,#32523,#32524,#32525,#32526,#32527,#32528, -#32529,#32530,#32531,#32532,#32533,#32534,#32535,#32536,#32537,#32538,#32539, -#32540,#32541,#32542,#32543,#32544,#32545,#32546,#32547,#32548,#32549,#32550, -#32551,#32552,#32553,#32554,#32555,#32556,#32557,#32558,#32559,#32560,#32561, -#32562,#32563,#32564,#32565,#32566,#32567,#32568,#32569,#32570,#32571,#32572, -#32573,#32574,#32575,#32576,#32577,#32578,#32579,#32580,#32581,#32582,#32583, -#32584,#32585,#32586,#32587,#32588,#32589,#32590,#32591,#32592,#32593,#32594, -#32595,#32596,#32597,#32598,#32599,#32600,#32601,#32602,#32603,#32604,#32605, -#32606,#32607,#32608,#32609,#32610,#32611,#32612,#32613,#32614,#32615,#32616, -#32617,#32618,#32619,#32620,#32621,#32622,#32623,#32624,#32625,#32626,#32627, -#32628,#32629,#32630,#32631,#32632,#32633,#32634,#32635,#32636,#32637,#32638, -#32639,#32640,#32641,#32642,#32643,#32644,#32645,#32646,#32647,#32648,#32649, -#32650,#32651,#32652,#32653,#32654,#32655,#32656,#32657,#32658,#32659,#32660, -#32661,#32662,#32663,#32664,#32665,#32666,#32667,#32668,#32669,#32670,#32671, -#32672,#32673,#32674,#32675,#32676,#32677,#32678,#32679,#32680,#32681,#32682, -#32683,#32684,#32685,#32686,#32687,#32688,#32689,#32690,#32691,#32692,#32693, -#32694,#32695,#32696,#32697,#32698,#32699,#32700,#32701,#32702,#32703,#32704, -#32705,#32706,#32707,#32708,#32709,#32710,#32711,#32712,#32713,#32714,#32715, -#32716,#32717,#32718,#32719,#32720,#32721,#32722,#32723,#32724,#32725,#32726, -#32727,#32728,#32729,#32730,#32731,#32732,#32733,#32734,#32735,#32736,#32737, -#32738,#32739,#32740,#32741,#32742,#32743,#32744,#32745,#32746,#32747,#32748, -#32749,#32750,#32751,#32752,#32753,#32754,#32755,#32756,#32757,#32758,#32759, -#32760,#32761,#32762,#32763,#32764,#32765,#32766,#32767,#32768,#32769,#32770, -#32771,#32772,#32773,#32774,#32775,#32776,#32777,#32778,#32779,#32780,#32781, -#32782,#32783,#32784,#32785,#32786,#32787,#32788,#32789,#32790,#32791,#32792, -#32793,#32794,#32795,#32796,#32797,#32798,#32799,#32800,#32801,#32802,#32803, -#32804,#32805,#32806,#32807,#32808,#32809,#32810,#32811,#32812,#32813,#32814, -#32815,#32816,#32817,#32818,#32819,#32820,#32821,#32822,#32823,#32824,#32825, -#32826,#32827,#32828,#32829,#32830,#32831,#32832,#32833,#32834,#32835,#32836, -#32837,#32838,#32839,#32840,#32841,#32842,#32843,#32844,#32845,#32846,#32847, -#32848,#32849,#32850,#32851,#32852,#32853,#32854,#32855,#32856,#32857,#32858, -#32859,#32860,#32861,#32862,#32863,#32864,#32865,#32866,#32867,#32868,#32869, -#32870,#32871,#32872,#32873,#32874,#32875,#32876,#32877,#32878,#32879,#32880, -#32881,#32882,#32883,#32884,#32885,#32886,#32887,#32888,#32889,#32890,#32891, -#32892,#32893,#32894,#32895,#32896,#32897,#32898,#32899,#32900,#32901,#32902, -#32903,#32904,#32905,#32906,#32907,#32908,#32909,#32910,#32911,#32912,#32913, -#32914,#32915,#32916,#32917,#32918,#32919,#32920,#32921,#32922,#32923,#32924, -#32925,#32926,#32927,#32928,#32929,#32930,#32931,#32932,#32933,#32934,#32935, -#32936,#32937,#32938,#32939,#32940,#32941,#32942,#32943,#32944,#32945,#32946, -#32947,#32948,#32949,#32950,#32951,#32952,#32953,#32954,#32955,#32956,#32957, -#32958,#32959,#32960,#32961,#32962,#32963,#32964,#32965,#32966,#32967,#32968, -#32969,#32970,#32971,#32972,#32973,#32974,#32975,#32976,#32977,#32978,#32979, -#32980,#32981,#32982,#32983,#32984,#32985,#32986,#32987,#32988,#32989,#32990, -#32991,#32992,#32993,#32994,#32995,#32996,#32997,#32998,#32999,#33000,#33001, -#33002,#33003,#33004,#33005,#33006,#33007,#33008,#33009,#33010,#33011,#33012, -#33013,#33014,#33015,#33016,#33017,#33018,#33019,#33020,#33021,#33022,#33023, -#33024,#33025,#33026,#33027,#33028,#33029,#33030,#33031,#33032,#33033,#33034, -#33035,#33036,#33037,#33038,#33039,#33040,#33041,#33042,#33043,#33044,#33045, -#33046,#33047,#33048,#33049,#33050,#33051,#33052,#33053,#33054,#33055,#33056, -#33057,#33058,#33059,#33060,#33061,#33062,#33063,#33064,#33065,#33066,#33067, -#33068,#33069,#33070,#33071,#33072,#33073,#33074,#33075,#33076,#33077,#33078, -#33079,#33080,#33081,#33082,#33083,#33084,#33085,#33086,#33087,#33088,#33089, -#33090,#33091,#33092,#33093,#33094,#33095,#33096,#33097,#33098,#33099,#33100, -#33101,#33102,#33103,#33104,#33105,#33106,#33107,#33108,#33109,#33110,#33111, -#33112,#33113,#33114,#33115,#33116,#33117,#33118,#33119,#33120,#33121,#33122, -#33123,#33124,#33125,#33126,#33127,#33128,#33129,#33130,#33131,#33132,#33133, -#33134,#33135,#33136,#33137,#33138,#33139,#33140,#33141,#33142,#33143,#33144, -#33145,#33146,#33147,#33148,#33149,#33150,#33151,#33152,#33153,#33154,#33155, -#33156,#33157,#33158,#33159,#33160,#33161,#33162,#33163,#33164,#33165,#33166, -#33167,#33168,#33169,#33170,#33171,#33172,#33173,#33174,#33175,#33176,#33177, -#33178,#33179,#33180,#33181,#33182,#33183,#33184,#33185,#33186,#33187,#33188, -#33189,#33190,#33191,#33192,#33193,#33194,#33195,#33196,#33197,#33198,#33199, -#33200,#33201,#33202,#33203,#33204,#33205,#33206,#33207,#33208,#33209,#33210, -#33211,#33212,#33213,#33214,#33215,#33216,#33217,#33218,#33219,#33220,#33221, -#33222,#33223,#33224,#33225,#33226,#33227,#33228,#33229,#33230,#33231,#33232, -#33233,#33234,#33235,#33236,#33237,#33238,#33239,#33240,#33241,#33242,#33243, -#33244,#33245,#33246,#33247,#33248,#33249,#33250,#33251,#33252,#33253,#33254, -#33255,#33256,#33257,#33258,#33259,#33260,#33261,#33262,#33263,#33264,#33265, -#33266,#33267,#33268,#33269,#33270,#33271,#33272,#33273,#33274,#33275,#33276, -#33277,#33278,#33279,#33280,#33281,#33282,#33283,#33284,#33285,#33286,#33287, -#33288,#33289,#33290,#33291,#33292,#33293,#33294,#33295,#33296,#33297,#33298, -#33299,#33300,#33301,#33302,#33303,#33304,#33305,#33306,#33307,#33308,#33309, -#33310,#33311,#33312,#33313,#33314,#33315,#33316,#33317,#33318,#33319,#33320, -#33321,#33322,#33323,#33324,#33325,#33326,#33327,#33328,#33329,#33330,#33331, -#33332,#33333,#33334,#33335,#33336,#33337,#33338,#33339,#33340,#33341,#33342, -#33343,#33344,#33345,#33346,#33347,#33348,#33349,#33350,#33351,#33352,#33353, -#33354,#33355,#33356,#33357,#33358,#33359,#33360,#33361,#33362,#33363,#33364, -#33365,#33366,#33367,#33368,#33369,#33370,#33371,#33372,#33373,#33374,#33375, -#33376,#33377)); -#33381=STYLED_ITEM('',(#33384),#33405); -#33382=STYLED_ITEM('',(#33385),#33406); -#33383=STYLED_ITEM('',(#33386),#33407); -#33384=PRESENTATION_STYLE_ASSIGNMENT((#33387)); -#33385=PRESENTATION_STYLE_ASSIGNMENT((#33388)); -#33386=PRESENTATION_STYLE_ASSIGNMENT((#33389)); -#33387=SURFACE_STYLE_USAGE(.BOTH.,#33390); -#33388=SURFACE_STYLE_USAGE(.BOTH.,#33391); -#33389=SURFACE_STYLE_USAGE(.BOTH.,#33392); -#33390=SURFACE_SIDE_STYLE('',(#33393)); -#33391=SURFACE_SIDE_STYLE('',(#33394)); -#33392=SURFACE_SIDE_STYLE('',(#33395)); -#33393=SURFACE_STYLE_FILL_AREA(#33396); -#33394=SURFACE_STYLE_FILL_AREA(#33397); -#33395=SURFACE_STYLE_FILL_AREA(#33398); -#33396=FILL_AREA_STYLE('',(#33399)); -#33397=FILL_AREA_STYLE('',(#33400)); -#33398=FILL_AREA_STYLE('',(#33401)); -#33399=FILL_AREA_STYLE_COLOUR('',#33402); -#33400=FILL_AREA_STYLE_COLOUR('',#33403); -#33401=FILL_AREA_STYLE_COLOUR('',#33404); -#33402=COLOUR_RGB('',0.0549019612371922,0.0549019612371922,0.0549019612371922); -#33403=COLOUR_RGB('',0.670588254928589,0.670588254928589,0.670588254928589); -#33404=COLOUR_RGB('',0.831372559070587,0.701960802078247,0.176470592617989); -#33405=MANIFOLD_SOLID_BREP('ERM8-020-05.0-DVT',#33378); -#33406=MANIFOLD_SOLID_BREP('ERM8-020-05.0-DV_pin',#33379); -#33407=MANIFOLD_SOLID_BREP('ERM8-020-05.0-DV3_pin',#33380); -#33408=SHAPE_DEFINITION_REPRESENTATION(#55671,#33412); -#33409=SHAPE_DEFINITION_REPRESENTATION(#55672,#33413); -#33410=SHAPE_DEFINITION_REPRESENTATION(#55674,#33414); -#33411=SHAPE_DEFINITION_REPRESENTATION(#55676,#33415); -#33412=SHAPE_REPRESENTATION('ERM8-020-05.0-L-DV-TR',(#33416,#33902,#34472, -#36082),#55660); -#33413=SHAPE_REPRESENTATION('ERM8-020-05.0-DVT',(#33416),#55661); -#33414=SHAPE_REPRESENTATION('ERM8-020-05.0-DV_pin',(#33416),#55662); -#33415=SHAPE_REPRESENTATION('ERM8-020-05.0-DV3_pin',(#33416),#55663); -#33416=AXIS2_PLACEMENT_3D('',#45116,#36083,#36084); -#33417=AXIS2_PLACEMENT_3D('',#45117,#36085,#36086); -#33418=AXIS2_PLACEMENT_3D('',#45130,#36093,#36094); -#33419=AXIS2_PLACEMENT_3D('',#45143,#36101,#36102); -#33420=AXIS2_PLACEMENT_3D('',#45168,#36115,#36116); -#33421=AXIS2_PLACEMENT_3D('',#45172,#36118,#36119); -#33422=AXIS2_PLACEMENT_3D('',#45203,#36135,#36136); -#33423=AXIS2_PLACEMENT_3D('',#45207,#36138,#36139); -#33424=AXIS2_PLACEMENT_3D('',#45211,#36141,#36142); -#33425=AXIS2_PLACEMENT_3D('',#45213,#36143,#36144); -#33426=AXIS2_PLACEMENT_3D('',#45215,#36145,#36146); -#33427=AXIS2_PLACEMENT_3D('',#45217,#36147,#36148); -#33428=AXIS2_PLACEMENT_3D('',#45219,#36149,#36150); -#33429=AXIS2_PLACEMENT_3D('',#45223,#36152,#36153); -#33430=AXIS2_PLACEMENT_3D('',#45228,#36156,#36157); -#33431=AXIS2_PLACEMENT_3D('',#45233,#36159,#36160); -#33432=AXIS2_PLACEMENT_3D('',#45237,#36162,#36163); -#33433=AXIS2_PLACEMENT_3D('',#45241,#36165,#36166); -#33434=AXIS2_PLACEMENT_3D('',#45244,#36168,#36169); -#33435=AXIS2_PLACEMENT_3D('',#45249,#36171,#36172); -#33436=AXIS2_PLACEMENT_3D('',#45251,#36173,#36174); -#33437=AXIS2_PLACEMENT_3D('',#45253,#36175,#36176); -#33438=AXIS2_PLACEMENT_3D('',#45255,#36177,#36178); -#33439=AXIS2_PLACEMENT_3D('',#45257,#36179,#36180); -#33440=AXIS2_PLACEMENT_3D('',#45261,#36182,#36183); -#33441=AXIS2_PLACEMENT_3D('',#45265,#36185,#36186); -#33442=AXIS2_PLACEMENT_3D('',#45266,#36187,#36188); -#33443=AXIS2_PLACEMENT_3D('',#45277,#36195,#36196); -#33444=AXIS2_PLACEMENT_3D('',#45761,#36440,#36441); -#33445=AXIS2_PLACEMENT_3D('',#45771,#36448,#36449); -#33446=AXIS2_PLACEMENT_3D('',#45780,#36454,#36455); -#33447=AXIS2_PLACEMENT_3D('',#45789,#36460,#36461); -#33448=AXIS2_PLACEMENT_3D('',#45790,#36462,#36463); -#33449=AXIS2_PLACEMENT_3D('',#45802,#36471,#36472); -#33450=AXIS2_PLACEMENT_3D('',#45805,#36474,#36475); -#33451=AXIS2_PLACEMENT_3D('',#45815,#36482,#36483); -#33452=AXIS2_PLACEMENT_3D('',#45824,#36488,#36489); -#33453=AXIS2_PLACEMENT_3D('',#45833,#36494,#36495); -#33454=AXIS2_PLACEMENT_3D('',#45834,#36496,#36497); -#33455=AXIS2_PLACEMENT_3D('',#45846,#36505,#36506); -#33456=AXIS2_PLACEMENT_3D('',#45849,#36508,#36509); -#33457=AXIS2_PLACEMENT_3D('',#45859,#36516,#36517); -#33458=AXIS2_PLACEMENT_3D('',#45868,#36522,#36523); -#33459=AXIS2_PLACEMENT_3D('',#45877,#36528,#36529); -#33460=AXIS2_PLACEMENT_3D('',#45878,#36530,#36531); -#33461=AXIS2_PLACEMENT_3D('',#45890,#36539,#36540); -#33462=AXIS2_PLACEMENT_3D('',#45893,#36542,#36543); -#33463=AXIS2_PLACEMENT_3D('',#45903,#36550,#36551); -#33464=AXIS2_PLACEMENT_3D('',#45912,#36556,#36557); -#33465=AXIS2_PLACEMENT_3D('',#45921,#36562,#36563); -#33466=AXIS2_PLACEMENT_3D('',#45922,#36564,#36565); -#33467=AXIS2_PLACEMENT_3D('',#45934,#36573,#36574); -#33468=AXIS2_PLACEMENT_3D('',#45937,#36576,#36577); -#33469=AXIS2_PLACEMENT_3D('',#45947,#36584,#36585); -#33470=AXIS2_PLACEMENT_3D('',#45956,#36590,#36591); -#33471=AXIS2_PLACEMENT_3D('',#45965,#36596,#36597); -#33472=AXIS2_PLACEMENT_3D('',#45966,#36598,#36599); -#33473=AXIS2_PLACEMENT_3D('',#45978,#36607,#36608); -#33474=AXIS2_PLACEMENT_3D('',#45981,#36610,#36611); -#33475=AXIS2_PLACEMENT_3D('',#45991,#36618,#36619); -#33476=AXIS2_PLACEMENT_3D('',#46000,#36624,#36625); -#33477=AXIS2_PLACEMENT_3D('',#46009,#36630,#36631); -#33478=AXIS2_PLACEMENT_3D('',#46010,#36632,#36633); -#33479=AXIS2_PLACEMENT_3D('',#46022,#36641,#36642); -#33480=AXIS2_PLACEMENT_3D('',#46025,#36644,#36645); -#33481=AXIS2_PLACEMENT_3D('',#46035,#36652,#36653); -#33482=AXIS2_PLACEMENT_3D('',#46044,#36658,#36659); -#33483=AXIS2_PLACEMENT_3D('',#46053,#36664,#36665); -#33484=AXIS2_PLACEMENT_3D('',#46054,#36666,#36667); -#33485=AXIS2_PLACEMENT_3D('',#46066,#36675,#36676); -#33486=AXIS2_PLACEMENT_3D('',#46069,#36678,#36679); -#33487=AXIS2_PLACEMENT_3D('',#46079,#36686,#36687); -#33488=AXIS2_PLACEMENT_3D('',#46088,#36692,#36693); -#33489=AXIS2_PLACEMENT_3D('',#46097,#36698,#36699); -#33490=AXIS2_PLACEMENT_3D('',#46098,#36700,#36701); -#33491=AXIS2_PLACEMENT_3D('',#46110,#36709,#36710); -#33492=AXIS2_PLACEMENT_3D('',#46113,#36712,#36713); -#33493=AXIS2_PLACEMENT_3D('',#46123,#36720,#36721); -#33494=AXIS2_PLACEMENT_3D('',#46132,#36726,#36727); -#33495=AXIS2_PLACEMENT_3D('',#46141,#36732,#36733); -#33496=AXIS2_PLACEMENT_3D('',#46142,#36734,#36735); -#33497=AXIS2_PLACEMENT_3D('',#46154,#36743,#36744); -#33498=AXIS2_PLACEMENT_3D('',#46157,#36746,#36747); -#33499=AXIS2_PLACEMENT_3D('',#46167,#36754,#36755); -#33500=AXIS2_PLACEMENT_3D('',#46176,#36760,#36761); -#33501=AXIS2_PLACEMENT_3D('',#46185,#36766,#36767); -#33502=AXIS2_PLACEMENT_3D('',#46186,#36768,#36769); -#33503=AXIS2_PLACEMENT_3D('',#46198,#36777,#36778); -#33504=AXIS2_PLACEMENT_3D('',#46201,#36780,#36781); -#33505=AXIS2_PLACEMENT_3D('',#46211,#36788,#36789); -#33506=AXIS2_PLACEMENT_3D('',#46220,#36794,#36795); -#33507=AXIS2_PLACEMENT_3D('',#46229,#36800,#36801); -#33508=AXIS2_PLACEMENT_3D('',#46230,#36802,#36803); -#33509=AXIS2_PLACEMENT_3D('',#46242,#36811,#36812); -#33510=AXIS2_PLACEMENT_3D('',#46245,#36814,#36815); -#33511=AXIS2_PLACEMENT_3D('',#46255,#36822,#36823); -#33512=AXIS2_PLACEMENT_3D('',#46264,#36828,#36829); -#33513=AXIS2_PLACEMENT_3D('',#46273,#36834,#36835); -#33514=AXIS2_PLACEMENT_3D('',#46274,#36836,#36837); -#33515=AXIS2_PLACEMENT_3D('',#46286,#36845,#36846); -#33516=AXIS2_PLACEMENT_3D('',#46289,#36848,#36849); -#33517=AXIS2_PLACEMENT_3D('',#46299,#36856,#36857); -#33518=AXIS2_PLACEMENT_3D('',#46308,#36862,#36863); -#33519=AXIS2_PLACEMENT_3D('',#46317,#36868,#36869); -#33520=AXIS2_PLACEMENT_3D('',#46318,#36870,#36871); -#33521=AXIS2_PLACEMENT_3D('',#46330,#36879,#36880); -#33522=AXIS2_PLACEMENT_3D('',#46333,#36882,#36883); -#33523=AXIS2_PLACEMENT_3D('',#46343,#36890,#36891); -#33524=AXIS2_PLACEMENT_3D('',#46352,#36896,#36897); -#33525=AXIS2_PLACEMENT_3D('',#46361,#36902,#36903); -#33526=AXIS2_PLACEMENT_3D('',#46362,#36904,#36905); -#33527=AXIS2_PLACEMENT_3D('',#46374,#36913,#36914); -#33528=AXIS2_PLACEMENT_3D('',#46377,#36916,#36917); -#33529=AXIS2_PLACEMENT_3D('',#46387,#36924,#36925); -#33530=AXIS2_PLACEMENT_3D('',#46396,#36930,#36931); -#33531=AXIS2_PLACEMENT_3D('',#46405,#36936,#36937); -#33532=AXIS2_PLACEMENT_3D('',#46406,#36938,#36939); -#33533=AXIS2_PLACEMENT_3D('',#46418,#36947,#36948); -#33534=AXIS2_PLACEMENT_3D('',#46421,#36950,#36951); -#33535=AXIS2_PLACEMENT_3D('',#46431,#36958,#36959); -#33536=AXIS2_PLACEMENT_3D('',#46440,#36964,#36965); -#33537=AXIS2_PLACEMENT_3D('',#46449,#36970,#36971); -#33538=AXIS2_PLACEMENT_3D('',#46450,#36972,#36973); -#33539=AXIS2_PLACEMENT_3D('',#46462,#36981,#36982); -#33540=AXIS2_PLACEMENT_3D('',#46465,#36984,#36985); -#33541=AXIS2_PLACEMENT_3D('',#46475,#36992,#36993); -#33542=AXIS2_PLACEMENT_3D('',#46484,#36998,#36999); -#33543=AXIS2_PLACEMENT_3D('',#46493,#37004,#37005); -#33544=AXIS2_PLACEMENT_3D('',#46494,#37006,#37007); -#33545=AXIS2_PLACEMENT_3D('',#46506,#37015,#37016); -#33546=AXIS2_PLACEMENT_3D('',#46509,#37018,#37019); -#33547=AXIS2_PLACEMENT_3D('',#46519,#37026,#37027); -#33548=AXIS2_PLACEMENT_3D('',#46528,#37032,#37033); -#33549=AXIS2_PLACEMENT_3D('',#46537,#37038,#37039); -#33550=AXIS2_PLACEMENT_3D('',#46538,#37040,#37041); -#33551=AXIS2_PLACEMENT_3D('',#46550,#37049,#37050); -#33552=AXIS2_PLACEMENT_3D('',#46553,#37052,#37053); -#33553=AXIS2_PLACEMENT_3D('',#46563,#37060,#37061); -#33554=AXIS2_PLACEMENT_3D('',#46572,#37066,#37067); -#33555=AXIS2_PLACEMENT_3D('',#46581,#37072,#37073); -#33556=AXIS2_PLACEMENT_3D('',#46582,#37074,#37075); -#33557=AXIS2_PLACEMENT_3D('',#46594,#37083,#37084); -#33558=AXIS2_PLACEMENT_3D('',#46597,#37086,#37087); -#33559=AXIS2_PLACEMENT_3D('',#46607,#37094,#37095); -#33560=AXIS2_PLACEMENT_3D('',#46613,#37098,#37099); -#33561=AXIS2_PLACEMENT_3D('',#46626,#37107,#37108); -#33562=AXIS2_PLACEMENT_3D('',#46632,#37112,#37113); -#33563=AXIS2_PLACEMENT_3D('',#46638,#37117,#37118); -#33564=AXIS2_PLACEMENT_3D('',#46639,#37119,#37120); -#33565=AXIS2_PLACEMENT_3D('',#46651,#37128,#37129); -#33566=AXIS2_PLACEMENT_3D('',#46661,#37135,#37136); -#33567=AXIS2_PLACEMENT_3D('',#46663,#37138,#37139); -#33568=AXIS2_PLACEMENT_3D('',#46665,#37141,#37142); -#33569=AXIS2_PLACEMENT_3D('',#46667,#37144,#37145); -#33570=AXIS2_PLACEMENT_3D('',#46669,#37147,#37148); -#33571=AXIS2_PLACEMENT_3D('',#46671,#37150,#37151); -#33572=AXIS2_PLACEMENT_3D('',#46673,#37153,#37154); -#33573=AXIS2_PLACEMENT_3D('',#46675,#37156,#37157); -#33574=AXIS2_PLACEMENT_3D('',#46677,#37159,#37160); -#33575=AXIS2_PLACEMENT_3D('',#46679,#37162,#37163); -#33576=AXIS2_PLACEMENT_3D('',#46681,#37165,#37166); -#33577=AXIS2_PLACEMENT_3D('',#46683,#37168,#37169); -#33578=AXIS2_PLACEMENT_3D('',#46685,#37171,#37172); -#33579=AXIS2_PLACEMENT_3D('',#46687,#37174,#37175); -#33580=AXIS2_PLACEMENT_3D('',#46689,#37177,#37178); -#33581=AXIS2_PLACEMENT_3D('',#46691,#37180,#37181); -#33582=AXIS2_PLACEMENT_3D('',#46693,#37183,#37184); -#33583=AXIS2_PLACEMENT_3D('',#46695,#37186,#37187); -#33584=AXIS2_PLACEMENT_3D('',#46697,#37189,#37190); -#33585=AXIS2_PLACEMENT_3D('',#46699,#37192,#37193); -#33586=AXIS2_PLACEMENT_3D('',#46709,#37199,#37200); -#33587=AXIS2_PLACEMENT_3D('',#46717,#37205,#37206); -#33588=AXIS2_PLACEMENT_3D('',#46719,#37208,#37209); -#33589=AXIS2_PLACEMENT_3D('',#46721,#37211,#37212); -#33590=AXIS2_PLACEMENT_3D('',#46723,#37214,#37215); -#33591=AXIS2_PLACEMENT_3D('',#46725,#37217,#37218); -#33592=AXIS2_PLACEMENT_3D('',#46727,#37220,#37221); -#33593=AXIS2_PLACEMENT_3D('',#46729,#37223,#37224); -#33594=AXIS2_PLACEMENT_3D('',#46731,#37226,#37227); -#33595=AXIS2_PLACEMENT_3D('',#46733,#37229,#37230); -#33596=AXIS2_PLACEMENT_3D('',#46735,#37232,#37233); -#33597=AXIS2_PLACEMENT_3D('',#46737,#37235,#37236); -#33598=AXIS2_PLACEMENT_3D('',#46739,#37238,#37239); -#33599=AXIS2_PLACEMENT_3D('',#46741,#37241,#37242); -#33600=AXIS2_PLACEMENT_3D('',#46743,#37244,#37245); -#33601=AXIS2_PLACEMENT_3D('',#46745,#37247,#37248); -#33602=AXIS2_PLACEMENT_3D('',#46747,#37250,#37251); -#33603=AXIS2_PLACEMENT_3D('',#46749,#37253,#37254); -#33604=AXIS2_PLACEMENT_3D('',#46751,#37256,#37257); -#33605=AXIS2_PLACEMENT_3D('',#46753,#37259,#37260); -#33606=AXIS2_PLACEMENT_3D('',#46755,#37262,#37263); -#33607=AXIS2_PLACEMENT_3D('',#46763,#37268,#37269); -#33608=AXIS2_PLACEMENT_3D('',#46765,#37271,#37272); -#33609=AXIS2_PLACEMENT_3D('',#46766,#37273,#37274); -#33610=AXIS2_PLACEMENT_3D('',#46767,#37275,#37276); -#33611=AXIS2_PLACEMENT_3D('',#46768,#37277,#37278); -#33612=AXIS2_PLACEMENT_3D('',#46769,#37279,#37280); -#33613=AXIS2_PLACEMENT_3D('',#46770,#37281,#37282); -#33614=AXIS2_PLACEMENT_3D('',#46771,#37283,#37284); -#33615=AXIS2_PLACEMENT_3D('',#46772,#37285,#37286); -#33616=AXIS2_PLACEMENT_3D('',#46773,#37287,#37288); -#33617=AXIS2_PLACEMENT_3D('',#46774,#37289,#37290); -#33618=AXIS2_PLACEMENT_3D('',#46775,#37291,#37292); -#33619=AXIS2_PLACEMENT_3D('',#46776,#37293,#37294); -#33620=AXIS2_PLACEMENT_3D('',#46777,#37295,#37296); -#33621=AXIS2_PLACEMENT_3D('',#46778,#37297,#37298); -#33622=AXIS2_PLACEMENT_3D('',#46779,#37299,#37300); -#33623=AXIS2_PLACEMENT_3D('',#46780,#37301,#37302); -#33624=AXIS2_PLACEMENT_3D('',#46781,#37303,#37304); -#33625=AXIS2_PLACEMENT_3D('',#46782,#37305,#37306); -#33626=AXIS2_PLACEMENT_3D('',#46783,#37307,#37308); -#33627=AXIS2_PLACEMENT_3D('',#46784,#37309,#37310); -#33628=AXIS2_PLACEMENT_3D('',#46786,#37312,#37313); -#33629=AXIS2_PLACEMENT_3D('',#46792,#37317,#37318); -#33630=AXIS2_PLACEMENT_3D('',#46798,#37322,#37323); -#33631=AXIS2_PLACEMENT_3D('',#46804,#37327,#37328); -#33632=AXIS2_PLACEMENT_3D('',#46810,#37332,#37333); -#33633=AXIS2_PLACEMENT_3D('',#46816,#37337,#37338); -#33634=AXIS2_PLACEMENT_3D('',#46822,#37342,#37343); -#33635=AXIS2_PLACEMENT_3D('',#46828,#37347,#37348); -#33636=AXIS2_PLACEMENT_3D('',#46834,#37352,#37353); -#33637=AXIS2_PLACEMENT_3D('',#46840,#37357,#37358); -#33638=AXIS2_PLACEMENT_3D('',#46846,#37362,#37363); -#33639=AXIS2_PLACEMENT_3D('',#46852,#37367,#37368); -#33640=AXIS2_PLACEMENT_3D('',#46858,#37372,#37373); -#33641=AXIS2_PLACEMENT_3D('',#46864,#37377,#37378); -#33642=AXIS2_PLACEMENT_3D('',#46870,#37382,#37383); -#33643=AXIS2_PLACEMENT_3D('',#46876,#37387,#37388); -#33644=AXIS2_PLACEMENT_3D('',#46886,#37394,#37395); -#33645=AXIS2_PLACEMENT_3D('',#46896,#37401,#37402); -#33646=AXIS2_PLACEMENT_3D('',#46902,#37406,#37407); -#33647=AXIS2_PLACEMENT_3D('',#46905,#37410,#37411); -#33648=AXIS2_PLACEMENT_3D('',#46911,#37415,#37416); -#33649=AXIS2_PLACEMENT_3D('',#46914,#37419,#37420); -#33650=AXIS2_PLACEMENT_3D('',#46917,#37423,#37424); -#33651=AXIS2_PLACEMENT_3D('',#46920,#37427,#37428); -#33652=AXIS2_PLACEMENT_3D('',#46927,#37433,#37434); -#33653=AXIS2_PLACEMENT_3D('',#46933,#37438,#37439); -#33654=AXIS2_PLACEMENT_3D('',#46939,#37443,#37444); -#33655=AXIS2_PLACEMENT_3D('',#46940,#37445,#37446); -#33656=AXIS2_PLACEMENT_3D('',#46946,#37450,#37451); -#33657=AXIS2_PLACEMENT_3D('',#46948,#37453,#37454); -#33658=AXIS2_PLACEMENT_3D('',#46950,#37456,#37457); -#33659=AXIS2_PLACEMENT_3D('',#46951,#37458,#37459); -#33660=AXIS2_PLACEMENT_3D('',#46957,#37463,#37464); -#33661=AXIS2_PLACEMENT_3D('',#46959,#37466,#37467); -#33662=AXIS2_PLACEMENT_3D('',#46961,#37469,#37470); -#33663=AXIS2_PLACEMENT_3D('',#46965,#37473,#37474); -#33664=AXIS2_PLACEMENT_3D('',#46969,#37477,#37478); -#33665=AXIS2_PLACEMENT_3D('',#46971,#37480,#37481); -#33666=AXIS2_PLACEMENT_3D('',#47015,#37507,#37508); -#33667=AXIS2_PLACEMENT_3D('',#47018,#37511,#37512); -#33668=AXIS2_PLACEMENT_3D('',#47021,#37515,#37516); -#33669=AXIS2_PLACEMENT_3D('',#47022,#37517,#37518); -#33670=AXIS2_PLACEMENT_3D('',#47024,#37520,#37521); -#33671=AXIS2_PLACEMENT_3D('',#47026,#37523,#37524); -#33672=AXIS2_PLACEMENT_3D('',#47028,#37526,#37527); -#33673=AXIS2_PLACEMENT_3D('',#47030,#37529,#37530); -#33674=AXIS2_PLACEMENT_3D('',#47036,#37534,#37535); -#33675=AXIS2_PLACEMENT_3D('',#47042,#37539,#37540); -#33676=AXIS2_PLACEMENT_3D('',#47080,#37564,#37565); -#33677=AXIS2_PLACEMENT_3D('',#47081,#37566,#37567); -#33678=AXIS2_PLACEMENT_3D('',#47082,#37568,#37569); -#33679=AXIS2_PLACEMENT_3D('',#47083,#37570,#37571); -#33680=AXIS2_PLACEMENT_3D('',#47084,#37572,#37573); -#33681=AXIS2_PLACEMENT_3D('',#47085,#37574,#37575); -#33682=AXIS2_PLACEMENT_3D('',#47086,#37576,#37577); -#33683=AXIS2_PLACEMENT_3D('',#47087,#37578,#37579); -#33684=AXIS2_PLACEMENT_3D('',#47089,#37581,#37582); -#33685=AXIS2_PLACEMENT_3D('',#47090,#37583,#37584); -#33686=AXIS2_PLACEMENT_3D('',#47092,#37586,#37587); -#33687=AXIS2_PLACEMENT_3D('',#47094,#37589,#37590); -#33688=AXIS2_PLACEMENT_3D('',#47095,#37591,#37592); -#33689=AXIS2_PLACEMENT_3D('',#47097,#37594,#37595); -#33690=AXIS2_PLACEMENT_3D('',#47099,#37597,#37598); -#33691=AXIS2_PLACEMENT_3D('',#47100,#37599,#37600); -#33692=AXIS2_PLACEMENT_3D('',#47102,#37602,#37603); -#33693=AXIS2_PLACEMENT_3D('',#47104,#37605,#37606); -#33694=AXIS2_PLACEMENT_3D('',#47105,#37607,#37608); -#33695=AXIS2_PLACEMENT_3D('',#47107,#37610,#37611); -#33696=AXIS2_PLACEMENT_3D('',#47109,#37613,#37614); -#33697=AXIS2_PLACEMENT_3D('',#47110,#37615,#37616); -#33698=AXIS2_PLACEMENT_3D('',#47112,#37618,#37619); -#33699=AXIS2_PLACEMENT_3D('',#47114,#37621,#37622); -#33700=AXIS2_PLACEMENT_3D('',#47115,#37623,#37624); -#33701=AXIS2_PLACEMENT_3D('',#47117,#37626,#37627); -#33702=AXIS2_PLACEMENT_3D('',#47119,#37629,#37630); -#33703=AXIS2_PLACEMENT_3D('',#47120,#37631,#37632); -#33704=AXIS2_PLACEMENT_3D('',#47122,#37634,#37635); -#33705=AXIS2_PLACEMENT_3D('',#47123,#37636,#37637); -#33706=AXIS2_PLACEMENT_3D('',#47125,#37639,#37640); -#33707=AXIS2_PLACEMENT_3D('',#47126,#37641,#37642); -#33708=AXIS2_PLACEMENT_3D('',#47128,#37644,#37645); -#33709=AXIS2_PLACEMENT_3D('',#47130,#37647,#37648); -#33710=AXIS2_PLACEMENT_3D('',#47131,#37649,#37650); -#33711=AXIS2_PLACEMENT_3D('',#47133,#37652,#37653); -#33712=AXIS2_PLACEMENT_3D('',#47135,#37655,#37656); -#33713=AXIS2_PLACEMENT_3D('',#47136,#37657,#37658); -#33714=AXIS2_PLACEMENT_3D('',#47138,#37660,#37661); -#33715=AXIS2_PLACEMENT_3D('',#47140,#37663,#37664); -#33716=AXIS2_PLACEMENT_3D('',#47141,#37665,#37666); -#33717=AXIS2_PLACEMENT_3D('',#47143,#37668,#37669); -#33718=AXIS2_PLACEMENT_3D('',#47145,#37671,#37672); -#33719=AXIS2_PLACEMENT_3D('',#47146,#37673,#37674); -#33720=AXIS2_PLACEMENT_3D('',#47148,#37676,#37677); -#33721=AXIS2_PLACEMENT_3D('',#47150,#37679,#37680); -#33722=AXIS2_PLACEMENT_3D('',#47151,#37681,#37682); -#33723=AXIS2_PLACEMENT_3D('',#47153,#37684,#37685); -#33724=AXIS2_PLACEMENT_3D('',#47155,#37687,#37688); -#33725=AXIS2_PLACEMENT_3D('',#47156,#37689,#37690); -#33726=AXIS2_PLACEMENT_3D('',#47158,#37692,#37693); -#33727=AXIS2_PLACEMENT_3D('',#47159,#37694,#37695); -#33728=AXIS2_PLACEMENT_3D('',#47160,#37696,#37697); -#33729=AXIS2_PLACEMENT_3D('',#47161,#37698,#37699); -#33730=AXIS2_PLACEMENT_3D('',#47162,#37700,#37701); -#33731=AXIS2_PLACEMENT_3D('',#47163,#37702,#37703); -#33732=AXIS2_PLACEMENT_3D('',#47164,#37704,#37705); -#33733=AXIS2_PLACEMENT_3D('',#47165,#37706,#37707); -#33734=AXIS2_PLACEMENT_3D('',#47166,#37708,#37709); -#33735=AXIS2_PLACEMENT_3D('',#47167,#37710,#37711); -#33736=AXIS2_PLACEMENT_3D('',#47168,#37712,#37713); -#33737=AXIS2_PLACEMENT_3D('',#47169,#37714,#37715); -#33738=AXIS2_PLACEMENT_3D('',#47170,#37716,#37717); -#33739=AXIS2_PLACEMENT_3D('',#47171,#37718,#37719); -#33740=AXIS2_PLACEMENT_3D('',#47172,#37720,#37721); -#33741=AXIS2_PLACEMENT_3D('',#47173,#37722,#37723); -#33742=AXIS2_PLACEMENT_3D('',#47174,#37724,#37725); -#33743=AXIS2_PLACEMENT_3D('',#47175,#37726,#37727); -#33744=AXIS2_PLACEMENT_3D('',#47176,#37728,#37729); -#33745=AXIS2_PLACEMENT_3D('',#47177,#37730,#37731); -#33746=AXIS2_PLACEMENT_3D('',#47178,#37732,#37733); -#33747=AXIS2_PLACEMENT_3D('',#47179,#37734,#37735); -#33748=AXIS2_PLACEMENT_3D('',#47180,#37736,#37737); -#33749=AXIS2_PLACEMENT_3D('',#47181,#37738,#37739); -#33750=AXIS2_PLACEMENT_3D('',#47182,#37740,#37741); -#33751=AXIS2_PLACEMENT_3D('',#47183,#37742,#37743); -#33752=AXIS2_PLACEMENT_3D('',#47184,#37744,#37745); -#33753=AXIS2_PLACEMENT_3D('',#47185,#37746,#37747); -#33754=AXIS2_PLACEMENT_3D('',#47186,#37748,#37749); -#33755=AXIS2_PLACEMENT_3D('',#47187,#37750,#37751); -#33756=AXIS2_PLACEMENT_3D('',#47188,#37752,#37753); -#33757=AXIS2_PLACEMENT_3D('',#47189,#37754,#37755); -#33758=AXIS2_PLACEMENT_3D('',#47190,#37756,#37757); -#33759=AXIS2_PLACEMENT_3D('',#47191,#37758,#37759); -#33760=AXIS2_PLACEMENT_3D('',#47192,#37760,#37761); -#33761=AXIS2_PLACEMENT_3D('',#47193,#37762,#37763); -#33762=AXIS2_PLACEMENT_3D('',#47194,#37764,#37765); -#33763=AXIS2_PLACEMENT_3D('',#47195,#37766,#37767); -#33764=AXIS2_PLACEMENT_3D('',#47196,#37768,#37769); -#33765=AXIS2_PLACEMENT_3D('',#47197,#37770,#37771); -#33766=AXIS2_PLACEMENT_3D('',#47198,#37772,#37773); -#33767=AXIS2_PLACEMENT_3D('',#47199,#37774,#37775); -#33768=AXIS2_PLACEMENT_3D('',#47201,#37777,#37778); -#33769=AXIS2_PLACEMENT_3D('',#47203,#37780,#37781); -#33770=AXIS2_PLACEMENT_3D('',#47204,#37782,#37783); -#33771=AXIS2_PLACEMENT_3D('',#47206,#37785,#37786); -#33772=AXIS2_PLACEMENT_3D('',#47208,#37788,#37789); -#33773=AXIS2_PLACEMENT_3D('',#47209,#37790,#37791); -#33774=AXIS2_PLACEMENT_3D('',#47211,#37793,#37794); -#33775=AXIS2_PLACEMENT_3D('',#47213,#37796,#37797); -#33776=AXIS2_PLACEMENT_3D('',#47214,#37798,#37799); -#33777=AXIS2_PLACEMENT_3D('',#47216,#37801,#37802); -#33778=AXIS2_PLACEMENT_3D('',#47218,#37804,#37805); -#33779=AXIS2_PLACEMENT_3D('',#47219,#37806,#37807); -#33780=AXIS2_PLACEMENT_3D('',#47221,#37809,#37810); -#33781=AXIS2_PLACEMENT_3D('',#47223,#37812,#37813); -#33782=AXIS2_PLACEMENT_3D('',#47224,#37814,#37815); -#33783=AXIS2_PLACEMENT_3D('',#47226,#37817,#37818); -#33784=AXIS2_PLACEMENT_3D('',#47228,#37820,#37821); -#33785=AXIS2_PLACEMENT_3D('',#47229,#37822,#37823); -#33786=AXIS2_PLACEMENT_3D('',#47231,#37825,#37826); -#33787=AXIS2_PLACEMENT_3D('',#47233,#37828,#37829); -#33788=AXIS2_PLACEMENT_3D('',#47234,#37830,#37831); -#33789=AXIS2_PLACEMENT_3D('',#47236,#37833,#37834); -#33790=AXIS2_PLACEMENT_3D('',#47238,#37836,#37837); -#33791=AXIS2_PLACEMENT_3D('',#47239,#37838,#37839); -#33792=AXIS2_PLACEMENT_3D('',#47241,#37841,#37842); -#33793=AXIS2_PLACEMENT_3D('',#47243,#37844,#37845); -#33794=AXIS2_PLACEMENT_3D('',#47244,#37846,#37847); -#33795=AXIS2_PLACEMENT_3D('',#47246,#37849,#37850); -#33796=AXIS2_PLACEMENT_3D('',#47248,#37852,#37853); -#33797=AXIS2_PLACEMENT_3D('',#47249,#37854,#37855); -#33798=AXIS2_PLACEMENT_3D('',#47251,#37857,#37858); -#33799=AXIS2_PLACEMENT_3D('',#47253,#37860,#37861); -#33800=AXIS2_PLACEMENT_3D('',#47254,#37862,#37863); -#33801=AXIS2_PLACEMENT_3D('',#47256,#37865,#37866); -#33802=AXIS2_PLACEMENT_3D('',#47258,#37868,#37869); -#33803=AXIS2_PLACEMENT_3D('',#47259,#37870,#37871); -#33804=AXIS2_PLACEMENT_3D('',#47261,#37873,#37874); -#33805=AXIS2_PLACEMENT_3D('',#47263,#37876,#37877); -#33806=AXIS2_PLACEMENT_3D('',#47264,#37878,#37879); -#33807=AXIS2_PLACEMENT_3D('',#47266,#37881,#37882); -#33808=AXIS2_PLACEMENT_3D('',#47268,#37884,#37885); -#33809=AXIS2_PLACEMENT_3D('',#47269,#37886,#37887); -#33810=AXIS2_PLACEMENT_3D('',#47271,#37889,#37890); -#33811=AXIS2_PLACEMENT_3D('',#47273,#37892,#37893); -#33812=AXIS2_PLACEMENT_3D('',#47274,#37894,#37895); -#33813=AXIS2_PLACEMENT_3D('',#47276,#37897,#37898); -#33814=AXIS2_PLACEMENT_3D('',#47278,#37900,#37901); -#33815=AXIS2_PLACEMENT_3D('',#47279,#37902,#37903); -#33816=AXIS2_PLACEMENT_3D('',#47281,#37905,#37906); -#33817=AXIS2_PLACEMENT_3D('',#47283,#37908,#37909); -#33818=AXIS2_PLACEMENT_3D('',#47284,#37910,#37911); -#33819=AXIS2_PLACEMENT_3D('',#47286,#37913,#37914); -#33820=AXIS2_PLACEMENT_3D('',#47288,#37916,#37917); -#33821=AXIS2_PLACEMENT_3D('',#47289,#37918,#37919); -#33822=AXIS2_PLACEMENT_3D('',#47291,#37921,#37922); -#33823=AXIS2_PLACEMENT_3D('',#47293,#37924,#37925); -#33824=AXIS2_PLACEMENT_3D('',#47294,#37926,#37927); -#33825=AXIS2_PLACEMENT_3D('',#47297,#37930,#37931); -#33826=AXIS2_PLACEMENT_3D('',#47298,#37932,#37933); -#33827=AXIS2_PLACEMENT_3D('',#47299,#37934,#37935); -#33828=AXIS2_PLACEMENT_3D('',#47305,#37939,#37940); -#33829=AXIS2_PLACEMENT_3D('',#47309,#37943,#37944); -#33830=AXIS2_PLACEMENT_3D('',#47311,#37946,#37947); -#33831=AXIS2_PLACEMENT_3D('',#47315,#37950,#37951); -#33832=AXIS2_PLACEMENT_3D('',#47317,#37953,#37954); -#33833=AXIS2_PLACEMENT_3D('',#47318,#37955,#37956); -#33834=AXIS2_PLACEMENT_3D('',#47319,#37957,#37958); -#33835=AXIS2_PLACEMENT_3D('',#47321,#37959,#37960); -#33836=AXIS2_PLACEMENT_3D('',#47322,#37961,#37962); -#33837=AXIS2_PLACEMENT_3D('',#47324,#37963,#37964); -#33838=AXIS2_PLACEMENT_3D('',#47325,#37965,#37966); -#33839=AXIS2_PLACEMENT_3D('',#47331,#37970,#37971); -#33840=AXIS2_PLACEMENT_3D('',#47332,#37972,#37973); -#33841=AXIS2_PLACEMENT_3D('',#47335,#37975,#37976); -#33842=AXIS2_PLACEMENT_3D('',#47339,#37979,#37980); -#33843=AXIS2_PLACEMENT_3D('',#47340,#37981,#37982); -#33844=AXIS2_PLACEMENT_3D('',#47343,#37984,#37985); -#33845=AXIS2_PLACEMENT_3D('',#47347,#37988,#37989); -#33846=AXIS2_PLACEMENT_3D('',#47348,#37990,#37991); -#33847=AXIS2_PLACEMENT_3D('',#47351,#37993,#37994); -#33848=AXIS2_PLACEMENT_3D('',#47355,#37997,#37998); -#33849=AXIS2_PLACEMENT_3D('',#47356,#37999,#38000); -#33850=AXIS2_PLACEMENT_3D('',#47357,#38001,#38002); -#33851=AXIS2_PLACEMENT_3D('',#47358,#38003,#38004); -#33852=AXIS2_PLACEMENT_3D('',#47364,#38008,#38009); -#33853=AXIS2_PLACEMENT_3D('',#47365,#38010,#38011); -#33854=AXIS2_PLACEMENT_3D('',#47368,#38013,#38014); -#33855=AXIS2_PLACEMENT_3D('',#47369,#38015,#38016); -#33856=AXIS2_PLACEMENT_3D('',#47372,#38018,#38019); -#33857=AXIS2_PLACEMENT_3D('',#47373,#38020,#38021); -#33858=AXIS2_PLACEMENT_3D('',#47376,#38023,#38024); -#33859=AXIS2_PLACEMENT_3D('',#47377,#38025,#38026); -#33860=AXIS2_PLACEMENT_3D('',#47380,#38028,#38029); -#33861=AXIS2_PLACEMENT_3D('',#47381,#38030,#38031); -#33862=AXIS2_PLACEMENT_3D('',#47384,#38033,#38034); -#33863=AXIS2_PLACEMENT_3D('',#47388,#38037,#38038); -#33864=AXIS2_PLACEMENT_3D('',#47389,#38039,#38040); -#33865=AXIS2_PLACEMENT_3D('',#47392,#38042,#38043); -#33866=AXIS2_PLACEMENT_3D('',#47396,#38046,#38047); -#33867=AXIS2_PLACEMENT_3D('',#47398,#38049,#38050); -#33868=AXIS2_PLACEMENT_3D('',#47399,#38051,#38052); -#33869=AXIS2_PLACEMENT_3D('',#47405,#38056,#38057); -#33870=AXIS2_PLACEMENT_3D('',#47406,#38058,#38059); -#33871=AXIS2_PLACEMENT_3D('',#47409,#38061,#38062); -#33872=AXIS2_PLACEMENT_3D('',#47410,#38063,#38064); -#33873=AXIS2_PLACEMENT_3D('',#47413,#38066,#38067); -#33874=AXIS2_PLACEMENT_3D('',#47414,#38068,#38069); -#33875=AXIS2_PLACEMENT_3D('',#47417,#38071,#38072); -#33876=AXIS2_PLACEMENT_3D('',#47418,#38073,#38074); -#33877=AXIS2_PLACEMENT_3D('',#47421,#38076,#38077); -#33878=AXIS2_PLACEMENT_3D('',#47422,#38078,#38079); -#33879=AXIS2_PLACEMENT_3D('',#47425,#38081,#38082); -#33880=AXIS2_PLACEMENT_3D('',#47429,#38085,#38086); -#33881=AXIS2_PLACEMENT_3D('',#47430,#38087,#38088); -#33882=AXIS2_PLACEMENT_3D('',#47433,#38090,#38091); -#33883=AXIS2_PLACEMENT_3D('',#47437,#38094,#38095); -#33884=AXIS2_PLACEMENT_3D('',#47438,#38096,#38097); -#33885=AXIS2_PLACEMENT_3D('',#47439,#38098,#38099); -#33886=AXIS2_PLACEMENT_3D('',#47440,#38100,#38101); -#33887=AXIS2_PLACEMENT_3D('',#47444,#38104,#38105); -#33888=AXIS2_PLACEMENT_3D('',#47448,#38108,#38109); -#33889=AXIS2_PLACEMENT_3D('',#47449,#38110,#38111); -#33890=AXIS2_PLACEMENT_3D('',#47453,#38113,#38114); -#33891=AXIS2_PLACEMENT_3D('',#47454,#38115,#38116); -#33892=AXIS2_PLACEMENT_3D('',#47456,#38118,#38119); -#33893=AXIS2_PLACEMENT_3D('',#47458,#38121,#38122); -#33894=AXIS2_PLACEMENT_3D('',#47459,#38123,#38124); -#33895=AXIS2_PLACEMENT_3D('',#47463,#38127,#38128); -#33896=AXIS2_PLACEMENT_3D('',#47467,#38131,#38132); -#33897=AXIS2_PLACEMENT_3D('',#47468,#38133,#38134); -#33898=AXIS2_PLACEMENT_3D('',#47472,#38136,#38137); -#33899=AXIS2_PLACEMENT_3D('',#47473,#38138,#38139); -#33900=AXIS2_PLACEMENT_3D('',#47476,#38142,#38143); -#33901=AXIS2_PLACEMENT_3D('',#47477,#38144,#38145); -#33902=AXIS2_PLACEMENT_3D('',#47478,#38146,#38147); -#33903=AXIS2_PLACEMENT_3D('',#47479,#38148,#38149); -#33904=AXIS2_PLACEMENT_3D('',#47808,#38314,#38315); -#33905=AXIS2_PLACEMENT_3D('',#48137,#38480,#38481); -#33906=AXIS2_PLACEMENT_3D('',#48466,#38646,#38647); -#33907=AXIS2_PLACEMENT_3D('',#48795,#38812,#38813); -#33908=AXIS2_PLACEMENT_3D('',#48798,#38816,#38817); -#33909=AXIS2_PLACEMENT_3D('',#48801,#38820,#38821); -#33910=AXIS2_PLACEMENT_3D('',#48804,#38824,#38825); -#33911=AXIS2_PLACEMENT_3D('',#48807,#38828,#38829); -#33912=AXIS2_PLACEMENT_3D('',#48810,#38832,#38833); -#33913=AXIS2_PLACEMENT_3D('',#48813,#38836,#38837); -#33914=AXIS2_PLACEMENT_3D('',#48816,#38840,#38841); -#33915=AXIS2_PLACEMENT_3D('',#48819,#38844,#38845); -#33916=AXIS2_PLACEMENT_3D('',#48822,#38848,#38849); -#33917=AXIS2_PLACEMENT_3D('',#48825,#38852,#38853); -#33918=AXIS2_PLACEMENT_3D('',#48828,#38856,#38857); -#33919=AXIS2_PLACEMENT_3D('',#48831,#38860,#38861); -#33920=AXIS2_PLACEMENT_3D('',#48834,#38864,#38865); -#33921=AXIS2_PLACEMENT_3D('',#48837,#38868,#38869); -#33922=AXIS2_PLACEMENT_3D('',#48840,#38872,#38873); -#33923=AXIS2_PLACEMENT_3D('',#48843,#38876,#38877); -#33924=AXIS2_PLACEMENT_3D('',#48846,#38880,#38881); -#33925=AXIS2_PLACEMENT_3D('',#48849,#38884,#38885); -#33926=AXIS2_PLACEMENT_3D('',#48852,#38888,#38889); -#33927=AXIS2_PLACEMENT_3D('',#48855,#38892,#38893); -#33928=AXIS2_PLACEMENT_3D('',#48858,#38896,#38897); -#33929=AXIS2_PLACEMENT_3D('',#48861,#38900,#38901); -#33930=AXIS2_PLACEMENT_3D('',#48864,#38904,#38905); -#33931=AXIS2_PLACEMENT_3D('',#48867,#38908,#38909); -#33932=AXIS2_PLACEMENT_3D('',#48870,#38912,#38913); -#33933=AXIS2_PLACEMENT_3D('',#48873,#38916,#38917); -#33934=AXIS2_PLACEMENT_3D('',#48876,#38920,#38921); -#33935=AXIS2_PLACEMENT_3D('',#48879,#38924,#38925); -#33936=AXIS2_PLACEMENT_3D('',#48882,#38928,#38929); -#33937=AXIS2_PLACEMENT_3D('',#48885,#38932,#38933); -#33938=AXIS2_PLACEMENT_3D('',#48888,#38936,#38937); -#33939=AXIS2_PLACEMENT_3D('',#48891,#38940,#38941); -#33940=AXIS2_PLACEMENT_3D('',#48894,#38944,#38945); -#33941=AXIS2_PLACEMENT_3D('',#48897,#38948,#38949); -#33942=AXIS2_PLACEMENT_3D('',#48900,#38952,#38953); -#33943=AXIS2_PLACEMENT_3D('',#48903,#38956,#38957); -#33944=AXIS2_PLACEMENT_3D('',#48906,#38960,#38961); -#33945=AXIS2_PLACEMENT_3D('',#48909,#38964,#38965); -#33946=AXIS2_PLACEMENT_3D('',#48912,#38968,#38969); -#33947=AXIS2_PLACEMENT_3D('',#48915,#38972,#38973); -#33948=AXIS2_PLACEMENT_3D('',#48918,#38976,#38977); -#33949=AXIS2_PLACEMENT_3D('',#48921,#38980,#38981); -#33950=AXIS2_PLACEMENT_3D('',#48924,#38984,#38985); -#33951=AXIS2_PLACEMENT_3D('',#48927,#38988,#38989); -#33952=AXIS2_PLACEMENT_3D('',#48930,#38992,#38993); -#33953=AXIS2_PLACEMENT_3D('',#48933,#38996,#38997); -#33954=AXIS2_PLACEMENT_3D('',#48936,#39000,#39001); -#33955=AXIS2_PLACEMENT_3D('',#48939,#39004,#39005); -#33956=AXIS2_PLACEMENT_3D('',#48942,#39008,#39009); -#33957=AXIS2_PLACEMENT_3D('',#48945,#39012,#39013); -#33958=AXIS2_PLACEMENT_3D('',#48948,#39016,#39017); -#33959=AXIS2_PLACEMENT_3D('',#48951,#39020,#39021); -#33960=AXIS2_PLACEMENT_3D('',#48954,#39024,#39025); -#33961=AXIS2_PLACEMENT_3D('',#48957,#39028,#39029); -#33962=AXIS2_PLACEMENT_3D('',#48960,#39032,#39033); -#33963=AXIS2_PLACEMENT_3D('',#48963,#39036,#39037); -#33964=AXIS2_PLACEMENT_3D('',#48966,#39040,#39041); -#33965=AXIS2_PLACEMENT_3D('',#48969,#39044,#39045); -#33966=AXIS2_PLACEMENT_3D('',#48972,#39048,#39049); -#33967=AXIS2_PLACEMENT_3D('',#48975,#39052,#39053); -#33968=AXIS2_PLACEMENT_3D('',#48978,#39056,#39057); -#33969=AXIS2_PLACEMENT_3D('',#48981,#39060,#39061); -#33970=AXIS2_PLACEMENT_3D('',#48984,#39064,#39065); -#33971=AXIS2_PLACEMENT_3D('',#48987,#39068,#39069); -#33972=AXIS2_PLACEMENT_3D('',#48990,#39072,#39073); -#33973=AXIS2_PLACEMENT_3D('',#48993,#39076,#39077); -#33974=AXIS2_PLACEMENT_3D('',#48996,#39080,#39081); -#33975=AXIS2_PLACEMENT_3D('',#48999,#39084,#39085); -#33976=AXIS2_PLACEMENT_3D('',#49002,#39088,#39089); -#33977=AXIS2_PLACEMENT_3D('',#49005,#39092,#39093); -#33978=AXIS2_PLACEMENT_3D('',#49008,#39096,#39097); -#33979=AXIS2_PLACEMENT_3D('',#49011,#39100,#39101); -#33980=AXIS2_PLACEMENT_3D('',#49014,#39104,#39105); -#33981=AXIS2_PLACEMENT_3D('',#49017,#39108,#39109); -#33982=AXIS2_PLACEMENT_3D('',#49020,#39112,#39113); -#33983=AXIS2_PLACEMENT_3D('',#49023,#39116,#39117); -#33984=AXIS2_PLACEMENT_3D('',#49026,#39120,#39121); -#33985=AXIS2_PLACEMENT_3D('',#49029,#39124,#39125); -#33986=AXIS2_PLACEMENT_3D('',#49032,#39128,#39129); -#33987=AXIS2_PLACEMENT_3D('',#49035,#39132,#39133); -#33988=AXIS2_PLACEMENT_3D('',#49038,#39136,#39137); -#33989=AXIS2_PLACEMENT_3D('',#49041,#39140,#39141); -#33990=AXIS2_PLACEMENT_3D('',#49044,#39144,#39145); -#33991=AXIS2_PLACEMENT_3D('',#49047,#39148,#39149); -#33992=AXIS2_PLACEMENT_3D('',#49056,#39154,#39155); -#33993=AXIS2_PLACEMENT_3D('',#49065,#39160,#39161); -#33994=AXIS2_PLACEMENT_3D('',#49074,#39166,#39167); -#33995=AXIS2_PLACEMENT_3D('',#49083,#39172,#39173); -#33996=AXIS2_PLACEMENT_3D('',#49092,#39178,#39179); -#33997=AXIS2_PLACEMENT_3D('',#49101,#39184,#39185); -#33998=AXIS2_PLACEMENT_3D('',#49110,#39190,#39191); -#33999=AXIS2_PLACEMENT_3D('',#49119,#39196,#39197); -#34000=AXIS2_PLACEMENT_3D('',#49128,#39202,#39203); -#34001=AXIS2_PLACEMENT_3D('',#49137,#39208,#39209); -#34002=AXIS2_PLACEMENT_3D('',#49146,#39214,#39215); -#34003=AXIS2_PLACEMENT_3D('',#49155,#39220,#39221); -#34004=AXIS2_PLACEMENT_3D('',#49164,#39226,#39227); -#34005=AXIS2_PLACEMENT_3D('',#49173,#39232,#39233); -#34006=AXIS2_PLACEMENT_3D('',#49182,#39238,#39239); -#34007=AXIS2_PLACEMENT_3D('',#49191,#39244,#39245); -#34008=AXIS2_PLACEMENT_3D('',#49200,#39250,#39251); -#34009=AXIS2_PLACEMENT_3D('',#49209,#39256,#39257); -#34010=AXIS2_PLACEMENT_3D('',#49218,#39262,#39263); -#34011=AXIS2_PLACEMENT_3D('',#49219,#39264,#39265); -#34012=AXIS2_PLACEMENT_3D('',#49220,#39266,#39267); -#34013=AXIS2_PLACEMENT_3D('',#49221,#39268,#39269); -#34014=AXIS2_PLACEMENT_3D('',#49222,#39270,#39271); -#34015=AXIS2_PLACEMENT_3D('',#49223,#39272,#39273); -#34016=AXIS2_PLACEMENT_3D('',#49224,#39274,#39275); -#34017=AXIS2_PLACEMENT_3D('',#49225,#39276,#39277); -#34018=AXIS2_PLACEMENT_3D('',#49226,#39278,#39279); -#34019=AXIS2_PLACEMENT_3D('',#49227,#39280,#39281); -#34020=AXIS2_PLACEMENT_3D('',#49228,#39282,#39283); -#34021=AXIS2_PLACEMENT_3D('',#49229,#39284,#39285); -#34022=AXIS2_PLACEMENT_3D('',#49230,#39286,#39287); -#34023=AXIS2_PLACEMENT_3D('',#49231,#39288,#39289); -#34024=AXIS2_PLACEMENT_3D('',#49232,#39290,#39291); -#34025=AXIS2_PLACEMENT_3D('',#49233,#39292,#39293); -#34026=AXIS2_PLACEMENT_3D('',#49234,#39294,#39295); -#34027=AXIS2_PLACEMENT_3D('',#49235,#39296,#39297); -#34028=AXIS2_PLACEMENT_3D('',#49236,#39298,#39299); -#34029=AXIS2_PLACEMENT_3D('',#49237,#39300,#39301); -#34030=AXIS2_PLACEMENT_3D('',#49238,#39302,#39303); -#34031=AXIS2_PLACEMENT_3D('',#49239,#39304,#39305); -#34032=AXIS2_PLACEMENT_3D('',#49240,#39306,#39307); -#34033=AXIS2_PLACEMENT_3D('',#49241,#39308,#39309); -#34034=AXIS2_PLACEMENT_3D('',#49242,#39310,#39311); -#34035=AXIS2_PLACEMENT_3D('',#49243,#39312,#39313); -#34036=AXIS2_PLACEMENT_3D('',#49244,#39314,#39315); -#34037=AXIS2_PLACEMENT_3D('',#49245,#39316,#39317); -#34038=AXIS2_PLACEMENT_3D('',#49246,#39318,#39319); -#34039=AXIS2_PLACEMENT_3D('',#49247,#39320,#39321); -#34040=AXIS2_PLACEMENT_3D('',#49248,#39322,#39323); -#34041=AXIS2_PLACEMENT_3D('',#49249,#39324,#39325); -#34042=AXIS2_PLACEMENT_3D('',#49250,#39326,#39327); -#34043=AXIS2_PLACEMENT_3D('',#49251,#39328,#39329); -#34044=AXIS2_PLACEMENT_3D('',#49252,#39330,#39331); -#34045=AXIS2_PLACEMENT_3D('',#49253,#39332,#39333); -#34046=AXIS2_PLACEMENT_3D('',#49254,#39334,#39335); -#34047=AXIS2_PLACEMENT_3D('',#49255,#39336,#39337); -#34048=AXIS2_PLACEMENT_3D('',#49256,#39338,#39339); -#34049=AXIS2_PLACEMENT_3D('',#49257,#39340,#39341); -#34050=AXIS2_PLACEMENT_3D('',#49258,#39342,#39343); -#34051=AXIS2_PLACEMENT_3D('',#49259,#39344,#39345); -#34052=AXIS2_PLACEMENT_3D('',#49260,#39346,#39347); -#34053=AXIS2_PLACEMENT_3D('',#49261,#39348,#39349); -#34054=AXIS2_PLACEMENT_3D('',#49262,#39350,#39351); -#34055=AXIS2_PLACEMENT_3D('',#49263,#39352,#39353); -#34056=AXIS2_PLACEMENT_3D('',#49264,#39354,#39355); -#34057=AXIS2_PLACEMENT_3D('',#49265,#39356,#39357); -#34058=AXIS2_PLACEMENT_3D('',#49266,#39358,#39359); -#34059=AXIS2_PLACEMENT_3D('',#49267,#39360,#39361); -#34060=AXIS2_PLACEMENT_3D('',#49268,#39362,#39363); -#34061=AXIS2_PLACEMENT_3D('',#49269,#39364,#39365); -#34062=AXIS2_PLACEMENT_3D('',#49270,#39366,#39367); -#34063=AXIS2_PLACEMENT_3D('',#49271,#39368,#39369); -#34064=AXIS2_PLACEMENT_3D('',#49272,#39370,#39371); -#34065=AXIS2_PLACEMENT_3D('',#49273,#39372,#39373); -#34066=AXIS2_PLACEMENT_3D('',#49274,#39374,#39375); -#34067=AXIS2_PLACEMENT_3D('',#49275,#39376,#39377); -#34068=AXIS2_PLACEMENT_3D('',#49276,#39378,#39379); -#34069=AXIS2_PLACEMENT_3D('',#49280,#39381,#39382); -#34070=AXIS2_PLACEMENT_3D('',#49281,#39383,#39384); -#34071=AXIS2_PLACEMENT_3D('',#49282,#39385,#39386); -#34072=AXIS2_PLACEMENT_3D('',#49286,#39388,#39389); -#34073=AXIS2_PLACEMENT_3D('',#49287,#39390,#39391); -#34074=AXIS2_PLACEMENT_3D('',#49288,#39392,#39393); -#34075=AXIS2_PLACEMENT_3D('',#49292,#39395,#39396); -#34076=AXIS2_PLACEMENT_3D('',#49293,#39397,#39398); -#34077=AXIS2_PLACEMENT_3D('',#49294,#39399,#39400); -#34078=AXIS2_PLACEMENT_3D('',#49298,#39402,#39403); -#34079=AXIS2_PLACEMENT_3D('',#49299,#39404,#39405); -#34080=AXIS2_PLACEMENT_3D('',#49300,#39406,#39407); -#34081=AXIS2_PLACEMENT_3D('',#49304,#39409,#39410); -#34082=AXIS2_PLACEMENT_3D('',#49305,#39411,#39412); -#34083=AXIS2_PLACEMENT_3D('',#49306,#39413,#39414); -#34084=AXIS2_PLACEMENT_3D('',#49310,#39416,#39417); -#34085=AXIS2_PLACEMENT_3D('',#49311,#39418,#39419); -#34086=AXIS2_PLACEMENT_3D('',#49312,#39420,#39421); -#34087=AXIS2_PLACEMENT_3D('',#49316,#39423,#39424); -#34088=AXIS2_PLACEMENT_3D('',#49317,#39425,#39426); -#34089=AXIS2_PLACEMENT_3D('',#49318,#39427,#39428); -#34090=AXIS2_PLACEMENT_3D('',#49322,#39430,#39431); -#34091=AXIS2_PLACEMENT_3D('',#49323,#39432,#39433); -#34092=AXIS2_PLACEMENT_3D('',#49324,#39434,#39435); -#34093=AXIS2_PLACEMENT_3D('',#49328,#39437,#39438); -#34094=AXIS2_PLACEMENT_3D('',#49329,#39439,#39440); -#34095=AXIS2_PLACEMENT_3D('',#49330,#39441,#39442); -#34096=AXIS2_PLACEMENT_3D('',#49334,#39444,#39445); -#34097=AXIS2_PLACEMENT_3D('',#49335,#39446,#39447); -#34098=AXIS2_PLACEMENT_3D('',#49336,#39448,#39449); -#34099=AXIS2_PLACEMENT_3D('',#49340,#39451,#39452); -#34100=AXIS2_PLACEMENT_3D('',#49341,#39453,#39454); -#34101=AXIS2_PLACEMENT_3D('',#49342,#39455,#39456); -#34102=AXIS2_PLACEMENT_3D('',#49346,#39458,#39459); -#34103=AXIS2_PLACEMENT_3D('',#49347,#39460,#39461); -#34104=AXIS2_PLACEMENT_3D('',#49348,#39462,#39463); -#34105=AXIS2_PLACEMENT_3D('',#49352,#39465,#39466); -#34106=AXIS2_PLACEMENT_3D('',#49353,#39467,#39468); -#34107=AXIS2_PLACEMENT_3D('',#49354,#39469,#39470); -#34108=AXIS2_PLACEMENT_3D('',#49358,#39472,#39473); -#34109=AXIS2_PLACEMENT_3D('',#49359,#39474,#39475); -#34110=AXIS2_PLACEMENT_3D('',#49360,#39476,#39477); -#34111=AXIS2_PLACEMENT_3D('',#49364,#39479,#39480); -#34112=AXIS2_PLACEMENT_3D('',#49365,#39481,#39482); -#34113=AXIS2_PLACEMENT_3D('',#49366,#39483,#39484); -#34114=AXIS2_PLACEMENT_3D('',#49370,#39486,#39487); -#34115=AXIS2_PLACEMENT_3D('',#49371,#39488,#39489); -#34116=AXIS2_PLACEMENT_3D('',#49372,#39490,#39491); -#34117=AXIS2_PLACEMENT_3D('',#49376,#39493,#39494); -#34118=AXIS2_PLACEMENT_3D('',#49377,#39495,#39496); -#34119=AXIS2_PLACEMENT_3D('',#49378,#39497,#39498); -#34120=AXIS2_PLACEMENT_3D('',#49382,#39500,#39501); -#34121=AXIS2_PLACEMENT_3D('',#49383,#39502,#39503); -#34122=AXIS2_PLACEMENT_3D('',#49384,#39504,#39505); -#34123=AXIS2_PLACEMENT_3D('',#49388,#39507,#39508); -#34124=AXIS2_PLACEMENT_3D('',#49389,#39509,#39510); -#34125=AXIS2_PLACEMENT_3D('',#49395,#39514,#39515); -#34126=AXIS2_PLACEMENT_3D('',#49401,#39519,#39520); -#34127=AXIS2_PLACEMENT_3D('',#49407,#39524,#39525); -#34128=AXIS2_PLACEMENT_3D('',#49413,#39529,#39530); -#34129=AXIS2_PLACEMENT_3D('',#49419,#39534,#39535); -#34130=AXIS2_PLACEMENT_3D('',#49425,#39539,#39540); -#34131=AXIS2_PLACEMENT_3D('',#49431,#39544,#39545); -#34132=AXIS2_PLACEMENT_3D('',#49437,#39549,#39550); -#34133=AXIS2_PLACEMENT_3D('',#49443,#39554,#39555); -#34134=AXIS2_PLACEMENT_3D('',#49449,#39559,#39560); -#34135=AXIS2_PLACEMENT_3D('',#49455,#39564,#39565); -#34136=AXIS2_PLACEMENT_3D('',#49461,#39569,#39570); -#34137=AXIS2_PLACEMENT_3D('',#49467,#39574,#39575); -#34138=AXIS2_PLACEMENT_3D('',#49473,#39579,#39580); -#34139=AXIS2_PLACEMENT_3D('',#49479,#39584,#39585); -#34140=AXIS2_PLACEMENT_3D('',#49485,#39589,#39590); -#34141=AXIS2_PLACEMENT_3D('',#49491,#39594,#39595); -#34142=AXIS2_PLACEMENT_3D('',#49497,#39599,#39600); -#34143=AXIS2_PLACEMENT_3D('',#49503,#39604,#39605); -#34144=AXIS2_PLACEMENT_3D('',#49504,#39606,#39607); -#34145=AXIS2_PLACEMENT_3D('',#49505,#39608,#39609); -#34146=AXIS2_PLACEMENT_3D('',#49506,#39610,#39611); -#34147=AXIS2_PLACEMENT_3D('',#49507,#39612,#39613); -#34148=AXIS2_PLACEMENT_3D('',#49508,#39614,#39615); -#34149=AXIS2_PLACEMENT_3D('',#49509,#39616,#39617); -#34150=AXIS2_PLACEMENT_3D('',#49510,#39618,#39619); -#34151=AXIS2_PLACEMENT_3D('',#49511,#39620,#39621); -#34152=AXIS2_PLACEMENT_3D('',#49512,#39622,#39623); -#34153=AXIS2_PLACEMENT_3D('',#49513,#39624,#39625); -#34154=AXIS2_PLACEMENT_3D('',#49514,#39626,#39627); -#34155=AXIS2_PLACEMENT_3D('',#49515,#39628,#39629); -#34156=AXIS2_PLACEMENT_3D('',#49516,#39630,#39631); -#34157=AXIS2_PLACEMENT_3D('',#49517,#39632,#39633); -#34158=AXIS2_PLACEMENT_3D('',#49518,#39634,#39635); -#34159=AXIS2_PLACEMENT_3D('',#49519,#39636,#39637); -#34160=AXIS2_PLACEMENT_3D('',#49520,#39638,#39639); -#34161=AXIS2_PLACEMENT_3D('',#49521,#39640,#39641); -#34162=AXIS2_PLACEMENT_3D('',#49522,#39642,#39643); -#34163=AXIS2_PLACEMENT_3D('',#49523,#39644,#39645); -#34164=AXIS2_PLACEMENT_3D('',#49524,#39646,#39647); -#34165=AXIS2_PLACEMENT_3D('',#49525,#39648,#39649); -#34166=AXIS2_PLACEMENT_3D('',#49526,#39650,#39651); -#34167=AXIS2_PLACEMENT_3D('',#49527,#39652,#39653); -#34168=AXIS2_PLACEMENT_3D('',#49528,#39654,#39655); -#34169=AXIS2_PLACEMENT_3D('',#49529,#39656,#39657); -#34170=AXIS2_PLACEMENT_3D('',#49530,#39658,#39659); -#34171=AXIS2_PLACEMENT_3D('',#49531,#39660,#39661); -#34172=AXIS2_PLACEMENT_3D('',#49532,#39662,#39663); -#34173=AXIS2_PLACEMENT_3D('',#49533,#39664,#39665); -#34174=AXIS2_PLACEMENT_3D('',#49534,#39666,#39667); -#34175=AXIS2_PLACEMENT_3D('',#49535,#39668,#39669); -#34176=AXIS2_PLACEMENT_3D('',#49536,#39670,#39671); -#34177=AXIS2_PLACEMENT_3D('',#49537,#39672,#39673); -#34178=AXIS2_PLACEMENT_3D('',#49538,#39674,#39675); -#34179=AXIS2_PLACEMENT_3D('',#49539,#39676,#39677); -#34180=AXIS2_PLACEMENT_3D('',#49540,#39678,#39679); -#34181=AXIS2_PLACEMENT_3D('',#49541,#39680,#39681); -#34182=AXIS2_PLACEMENT_3D('',#49542,#39682,#39683); -#34183=AXIS2_PLACEMENT_3D('',#49543,#39684,#39685); -#34184=AXIS2_PLACEMENT_3D('',#49544,#39686,#39687); -#34185=AXIS2_PLACEMENT_3D('',#49545,#39688,#39689); -#34186=AXIS2_PLACEMENT_3D('',#49546,#39690,#39691); -#34187=AXIS2_PLACEMENT_3D('',#49547,#39692,#39693); -#34188=AXIS2_PLACEMENT_3D('',#49548,#39694,#39695); -#34189=AXIS2_PLACEMENT_3D('',#49549,#39696,#39697); -#34190=AXIS2_PLACEMENT_3D('',#49550,#39698,#39699); -#34191=AXIS2_PLACEMENT_3D('',#49551,#39700,#39701); -#34192=AXIS2_PLACEMENT_3D('',#49552,#39702,#39703); -#34193=AXIS2_PLACEMENT_3D('',#49553,#39704,#39705); -#34194=AXIS2_PLACEMENT_3D('',#49554,#39706,#39707); -#34195=AXIS2_PLACEMENT_3D('',#49555,#39708,#39709); -#34196=AXIS2_PLACEMENT_3D('',#49556,#39710,#39711); -#34197=AXIS2_PLACEMENT_3D('',#49557,#39712,#39713); -#34198=AXIS2_PLACEMENT_3D('',#49558,#39714,#39715); -#34199=AXIS2_PLACEMENT_3D('',#49559,#39716,#39717); -#34200=AXIS2_PLACEMENT_3D('',#49560,#39718,#39719); -#34201=AXIS2_PLACEMENT_3D('',#49561,#39720,#39721); -#34202=AXIS2_PLACEMENT_3D('',#49562,#39722,#39723); -#34203=AXIS2_PLACEMENT_3D('',#49563,#39724,#39725); -#34204=AXIS2_PLACEMENT_3D('',#49564,#39726,#39727); -#34205=AXIS2_PLACEMENT_3D('',#49565,#39728,#39729); -#34206=AXIS2_PLACEMENT_3D('',#49566,#39730,#39731); -#34207=AXIS2_PLACEMENT_3D('',#49567,#39732,#39733); -#34208=AXIS2_PLACEMENT_3D('',#49568,#39734,#39735); -#34209=AXIS2_PLACEMENT_3D('',#49569,#39736,#39737); -#34210=AXIS2_PLACEMENT_3D('',#49570,#39738,#39739); -#34211=AXIS2_PLACEMENT_3D('',#49571,#39740,#39741); -#34212=AXIS2_PLACEMENT_3D('',#49572,#39742,#39743); -#34213=AXIS2_PLACEMENT_3D('',#49573,#39744,#39745); -#34214=AXIS2_PLACEMENT_3D('',#49574,#39746,#39747); -#34215=AXIS2_PLACEMENT_3D('',#49575,#39748,#39749); -#34216=AXIS2_PLACEMENT_3D('',#49576,#39750,#39751); -#34217=AXIS2_PLACEMENT_3D('',#49577,#39752,#39753); -#34218=AXIS2_PLACEMENT_3D('',#49578,#39754,#39755); -#34219=AXIS2_PLACEMENT_3D('',#49579,#39756,#39757); -#34220=AXIS2_PLACEMENT_3D('',#49580,#39758,#39759); -#34221=AXIS2_PLACEMENT_3D('',#49581,#39760,#39761); -#34222=AXIS2_PLACEMENT_3D('',#49582,#39762,#39763); -#34223=AXIS2_PLACEMENT_3D('',#49583,#39764,#39765); -#34224=AXIS2_PLACEMENT_3D('',#49584,#39766,#39767); -#34225=AXIS2_PLACEMENT_3D('',#49585,#39768,#39769); -#34226=AXIS2_PLACEMENT_3D('',#49586,#39770,#39771); -#34227=AXIS2_PLACEMENT_3D('',#49587,#39772,#39773); -#34228=AXIS2_PLACEMENT_3D('',#49588,#39774,#39775); -#34229=AXIS2_PLACEMENT_3D('',#49589,#39776,#39777); -#34230=AXIS2_PLACEMENT_3D('',#49590,#39778,#39779); -#34231=AXIS2_PLACEMENT_3D('',#49591,#39780,#39781); -#34232=AXIS2_PLACEMENT_3D('',#49592,#39782,#39783); -#34233=AXIS2_PLACEMENT_3D('',#49593,#39784,#39785); -#34234=AXIS2_PLACEMENT_3D('',#49594,#39786,#39787); -#34235=AXIS2_PLACEMENT_3D('',#49595,#39788,#39789); -#34236=AXIS2_PLACEMENT_3D('',#49596,#39790,#39791); -#34237=AXIS2_PLACEMENT_3D('',#49597,#39792,#39793); -#34238=AXIS2_PLACEMENT_3D('',#49598,#39794,#39795); -#34239=AXIS2_PLACEMENT_3D('',#49599,#39796,#39797); -#34240=AXIS2_PLACEMENT_3D('',#49600,#39798,#39799); -#34241=AXIS2_PLACEMENT_3D('',#49601,#39800,#39801); -#34242=AXIS2_PLACEMENT_3D('',#49602,#39802,#39803); -#34243=AXIS2_PLACEMENT_3D('',#49603,#39804,#39805); -#34244=AXIS2_PLACEMENT_3D('',#49604,#39806,#39807); -#34245=AXIS2_PLACEMENT_3D('',#49605,#39808,#39809); -#34246=AXIS2_PLACEMENT_3D('',#49606,#39810,#39811); -#34247=AXIS2_PLACEMENT_3D('',#49607,#39812,#39813); -#34248=AXIS2_PLACEMENT_3D('',#49608,#39814,#39815); -#34249=AXIS2_PLACEMENT_3D('',#49609,#39816,#39817); -#34250=AXIS2_PLACEMENT_3D('',#49610,#39818,#39819); -#34251=AXIS2_PLACEMENT_3D('',#49611,#39820,#39821); -#34252=AXIS2_PLACEMENT_3D('',#49612,#39822,#39823); -#34253=AXIS2_PLACEMENT_3D('',#49613,#39824,#39825); -#34254=AXIS2_PLACEMENT_3D('',#49614,#39826,#39827); -#34255=AXIS2_PLACEMENT_3D('',#49615,#39828,#39829); -#34256=AXIS2_PLACEMENT_3D('',#49616,#39830,#39831); -#34257=AXIS2_PLACEMENT_3D('',#49617,#39832,#39833); -#34258=AXIS2_PLACEMENT_3D('',#49626,#39838,#39839); -#34259=AXIS2_PLACEMENT_3D('',#49627,#39840,#39841); -#34260=AXIS2_PLACEMENT_3D('',#49628,#39842,#39843); -#34261=AXIS2_PLACEMENT_3D('',#49629,#39844,#39845); -#34262=AXIS2_PLACEMENT_3D('',#49630,#39846,#39847); -#34263=AXIS2_PLACEMENT_3D('',#49634,#39849,#39850); -#34264=AXIS2_PLACEMENT_3D('',#49635,#39851,#39852); -#34265=AXIS2_PLACEMENT_3D('',#49641,#39856,#39857); -#34266=AXIS2_PLACEMENT_3D('',#49642,#39858,#39859); -#34267=AXIS2_PLACEMENT_3D('',#49643,#39860,#39861); -#34268=AXIS2_PLACEMENT_3D('',#49644,#39862,#39863); -#34269=AXIS2_PLACEMENT_3D('',#49645,#39864,#39865); -#34270=AXIS2_PLACEMENT_3D('',#49646,#39866,#39867); -#34271=AXIS2_PLACEMENT_3D('',#49647,#39868,#39869); -#34272=AXIS2_PLACEMENT_3D('',#49649,#39871,#39872); -#34273=AXIS2_PLACEMENT_3D('',#49650,#39873,#39874); -#34274=AXIS2_PLACEMENT_3D('',#49652,#39876,#39877); -#34275=AXIS2_PLACEMENT_3D('',#49653,#39878,#39879); -#34276=AXIS2_PLACEMENT_3D('',#49655,#39881,#39882); -#34277=AXIS2_PLACEMENT_3D('',#49656,#39883,#39884); -#34278=AXIS2_PLACEMENT_3D('',#49658,#39886,#39887); -#34279=AXIS2_PLACEMENT_3D('',#49659,#39888,#39889); -#34280=AXIS2_PLACEMENT_3D('',#49661,#39891,#39892); -#34281=AXIS2_PLACEMENT_3D('',#49662,#39893,#39894); -#34282=AXIS2_PLACEMENT_3D('',#49664,#39896,#39897); -#34283=AXIS2_PLACEMENT_3D('',#49665,#39898,#39899); -#34284=AXIS2_PLACEMENT_3D('',#49667,#39901,#39902); -#34285=AXIS2_PLACEMENT_3D('',#49668,#39903,#39904); -#34286=AXIS2_PLACEMENT_3D('',#49670,#39906,#39907); -#34287=AXIS2_PLACEMENT_3D('',#49671,#39908,#39909); -#34288=AXIS2_PLACEMENT_3D('',#49673,#39911,#39912); -#34289=AXIS2_PLACEMENT_3D('',#49674,#39913,#39914); -#34290=AXIS2_PLACEMENT_3D('',#49676,#39916,#39917); -#34291=AXIS2_PLACEMENT_3D('',#49677,#39918,#39919); -#34292=AXIS2_PLACEMENT_3D('',#49679,#39921,#39922); -#34293=AXIS2_PLACEMENT_3D('',#49680,#39923,#39924); -#34294=AXIS2_PLACEMENT_3D('',#49682,#39926,#39927); -#34295=AXIS2_PLACEMENT_3D('',#49683,#39928,#39929); -#34296=AXIS2_PLACEMENT_3D('',#49685,#39931,#39932); -#34297=AXIS2_PLACEMENT_3D('',#49686,#39933,#39934); -#34298=AXIS2_PLACEMENT_3D('',#49688,#39936,#39937); -#34299=AXIS2_PLACEMENT_3D('',#49689,#39938,#39939); -#34300=AXIS2_PLACEMENT_3D('',#49691,#39941,#39942); -#34301=AXIS2_PLACEMENT_3D('',#49692,#39943,#39944); -#34302=AXIS2_PLACEMENT_3D('',#49694,#39946,#39947); -#34303=AXIS2_PLACEMENT_3D('',#49695,#39948,#39949); -#34304=AXIS2_PLACEMENT_3D('',#49697,#39951,#39952); -#34305=AXIS2_PLACEMENT_3D('',#49698,#39953,#39954); -#34306=AXIS2_PLACEMENT_3D('',#49700,#39956,#39957); -#34307=AXIS2_PLACEMENT_3D('',#49701,#39958,#39959); -#34308=AXIS2_PLACEMENT_3D('',#49703,#39961,#39962); -#34309=AXIS2_PLACEMENT_3D('',#49704,#39963,#39964); -#34310=AXIS2_PLACEMENT_3D('',#49706,#39966,#39967); -#34311=AXIS2_PLACEMENT_3D('',#49707,#39968,#39969); -#34312=AXIS2_PLACEMENT_3D('',#49709,#39971,#39972); -#34313=AXIS2_PLACEMENT_3D('',#49710,#39973,#39974); -#34314=AXIS2_PLACEMENT_3D('',#49712,#39976,#39977); -#34315=AXIS2_PLACEMENT_3D('',#49713,#39978,#39979); -#34316=AXIS2_PLACEMENT_3D('',#49715,#39981,#39982); -#34317=AXIS2_PLACEMENT_3D('',#49716,#39983,#39984); -#34318=AXIS2_PLACEMENT_3D('',#49718,#39986,#39987); -#34319=AXIS2_PLACEMENT_3D('',#49719,#39988,#39989); -#34320=AXIS2_PLACEMENT_3D('',#49721,#39991,#39992); -#34321=AXIS2_PLACEMENT_3D('',#49722,#39993,#39994); -#34322=AXIS2_PLACEMENT_3D('',#49724,#39996,#39997); -#34323=AXIS2_PLACEMENT_3D('',#49725,#39998,#39999); -#34324=AXIS2_PLACEMENT_3D('',#49727,#40001,#40002); -#34325=AXIS2_PLACEMENT_3D('',#49728,#40003,#40004); -#34326=AXIS2_PLACEMENT_3D('',#49730,#40006,#40007); -#34327=AXIS2_PLACEMENT_3D('',#49731,#40008,#40009); -#34328=AXIS2_PLACEMENT_3D('',#49733,#40011,#40012); -#34329=AXIS2_PLACEMENT_3D('',#49734,#40013,#40014); -#34330=AXIS2_PLACEMENT_3D('',#49736,#40016,#40017); -#34331=AXIS2_PLACEMENT_3D('',#49737,#40018,#40019); -#34332=AXIS2_PLACEMENT_3D('',#49739,#40021,#40022); -#34333=AXIS2_PLACEMENT_3D('',#49740,#40023,#40024); -#34334=AXIS2_PLACEMENT_3D('',#49742,#40026,#40027); -#34335=AXIS2_PLACEMENT_3D('',#49743,#40028,#40029); -#34336=AXIS2_PLACEMENT_3D('',#49745,#40031,#40032); -#34337=AXIS2_PLACEMENT_3D('',#49746,#40033,#40034); -#34338=AXIS2_PLACEMENT_3D('',#49748,#40036,#40037); -#34339=AXIS2_PLACEMENT_3D('',#49749,#40038,#40039); -#34340=AXIS2_PLACEMENT_3D('',#49751,#40041,#40042); -#34341=AXIS2_PLACEMENT_3D('',#49752,#40043,#40044); -#34342=AXIS2_PLACEMENT_3D('',#49754,#40046,#40047); -#34343=AXIS2_PLACEMENT_3D('',#49755,#40048,#40049); -#34344=AXIS2_PLACEMENT_3D('',#49757,#40051,#40052); -#34345=AXIS2_PLACEMENT_3D('',#49758,#40053,#40054); -#34346=AXIS2_PLACEMENT_3D('',#49760,#40056,#40057); -#34347=AXIS2_PLACEMENT_3D('',#49761,#40058,#40059); -#34348=AXIS2_PLACEMENT_3D('',#49763,#40061,#40062); -#34349=AXIS2_PLACEMENT_3D('',#49764,#40063,#40064); -#34350=AXIS2_PLACEMENT_3D('',#49766,#40066,#40067); -#34351=AXIS2_PLACEMENT_3D('',#49767,#40068,#40069); -#34352=AXIS2_PLACEMENT_3D('',#49769,#40071,#40072); -#34353=AXIS2_PLACEMENT_3D('',#49770,#40073,#40074); -#34354=AXIS2_PLACEMENT_3D('',#49772,#40076,#40077); -#34355=AXIS2_PLACEMENT_3D('',#49773,#40078,#40079); -#34356=AXIS2_PLACEMENT_3D('',#49775,#40081,#40082); -#34357=AXIS2_PLACEMENT_3D('',#49776,#40083,#40084); -#34358=AXIS2_PLACEMENT_3D('',#49778,#40086,#40087); -#34359=AXIS2_PLACEMENT_3D('',#49779,#40088,#40089); -#34360=AXIS2_PLACEMENT_3D('',#49781,#40091,#40092); -#34361=AXIS2_PLACEMENT_3D('',#49782,#40093,#40094); -#34362=AXIS2_PLACEMENT_3D('',#49784,#40096,#40097); -#34363=AXIS2_PLACEMENT_3D('',#49785,#40098,#40099); -#34364=AXIS2_PLACEMENT_3D('',#49787,#40101,#40102); -#34365=AXIS2_PLACEMENT_3D('',#49788,#40103,#40104); -#34366=AXIS2_PLACEMENT_3D('',#49790,#40106,#40107); -#34367=AXIS2_PLACEMENT_3D('',#49791,#40108,#40109); -#34368=AXIS2_PLACEMENT_3D('',#49793,#40111,#40112); -#34369=AXIS2_PLACEMENT_3D('',#49794,#40113,#40114); -#34370=AXIS2_PLACEMENT_3D('',#49796,#40116,#40117); -#34371=AXIS2_PLACEMENT_3D('',#49797,#40118,#40119); -#34372=AXIS2_PLACEMENT_3D('',#49799,#40121,#40122); -#34373=AXIS2_PLACEMENT_3D('',#49800,#40123,#40124); -#34374=AXIS2_PLACEMENT_3D('',#49802,#40126,#40127); -#34375=AXIS2_PLACEMENT_3D('',#49803,#40128,#40129); -#34376=AXIS2_PLACEMENT_3D('',#49805,#40131,#40132); -#34377=AXIS2_PLACEMENT_3D('',#49806,#40133,#40134); -#34378=AXIS2_PLACEMENT_3D('',#49808,#40136,#40137); -#34379=AXIS2_PLACEMENT_3D('',#49809,#40138,#40139); -#34380=AXIS2_PLACEMENT_3D('',#49811,#40141,#40142); -#34381=AXIS2_PLACEMENT_3D('',#49812,#40143,#40144); -#34382=AXIS2_PLACEMENT_3D('',#49814,#40146,#40147); -#34383=AXIS2_PLACEMENT_3D('',#49815,#40148,#40149); -#34384=AXIS2_PLACEMENT_3D('',#49817,#40151,#40152); -#34385=AXIS2_PLACEMENT_3D('',#49818,#40153,#40154); -#34386=AXIS2_PLACEMENT_3D('',#49820,#40156,#40157); -#34387=AXIS2_PLACEMENT_3D('',#49821,#40158,#40159); -#34388=AXIS2_PLACEMENT_3D('',#49823,#40161,#40162); -#34389=AXIS2_PLACEMENT_3D('',#49824,#40163,#40164); -#34390=AXIS2_PLACEMENT_3D('',#49826,#40166,#40167); -#34391=AXIS2_PLACEMENT_3D('',#49827,#40168,#40169); -#34392=AXIS2_PLACEMENT_3D('',#49829,#40171,#40172); -#34393=AXIS2_PLACEMENT_3D('',#49830,#40173,#40174); -#34394=AXIS2_PLACEMENT_3D('',#49832,#40176,#40177); -#34395=AXIS2_PLACEMENT_3D('',#49833,#40178,#40179); -#34396=AXIS2_PLACEMENT_3D('',#49835,#40181,#40182); -#34397=AXIS2_PLACEMENT_3D('',#49836,#40183,#40184); -#34398=AXIS2_PLACEMENT_3D('',#49838,#40186,#40187); -#34399=AXIS2_PLACEMENT_3D('',#49839,#40188,#40189); -#34400=AXIS2_PLACEMENT_3D('',#49841,#40191,#40192); -#34401=AXIS2_PLACEMENT_3D('',#49842,#40193,#40194); -#34402=AXIS2_PLACEMENT_3D('',#49844,#40196,#40197); -#34403=AXIS2_PLACEMENT_3D('',#49845,#40198,#40199); -#34404=AXIS2_PLACEMENT_3D('',#49847,#40201,#40202); -#34405=AXIS2_PLACEMENT_3D('',#49848,#40203,#40204); -#34406=AXIS2_PLACEMENT_3D('',#49850,#40206,#40207); -#34407=AXIS2_PLACEMENT_3D('',#49851,#40208,#40209); -#34408=AXIS2_PLACEMENT_3D('',#49853,#40211,#40212); -#34409=AXIS2_PLACEMENT_3D('',#49854,#40213,#40214); -#34410=AXIS2_PLACEMENT_3D('',#49856,#40216,#40217); -#34411=AXIS2_PLACEMENT_3D('',#49857,#40218,#40219); -#34412=AXIS2_PLACEMENT_3D('',#49859,#40221,#40222); -#34413=AXIS2_PLACEMENT_3D('',#49860,#40223,#40224); -#34414=AXIS2_PLACEMENT_3D('',#49862,#40226,#40227); -#34415=AXIS2_PLACEMENT_3D('',#49863,#40228,#40229); -#34416=AXIS2_PLACEMENT_3D('',#49865,#40231,#40232); -#34417=AXIS2_PLACEMENT_3D('',#49866,#40233,#40234); -#34418=AXIS2_PLACEMENT_3D('',#49868,#40236,#40237); -#34419=AXIS2_PLACEMENT_3D('',#49869,#40238,#40239); -#34420=AXIS2_PLACEMENT_3D('',#49871,#40241,#40242); -#34421=AXIS2_PLACEMENT_3D('',#49872,#40243,#40244); -#34422=AXIS2_PLACEMENT_3D('',#49874,#40246,#40247); -#34423=AXIS2_PLACEMENT_3D('',#49875,#40248,#40249); -#34424=AXIS2_PLACEMENT_3D('',#49877,#40251,#40252); -#34425=AXIS2_PLACEMENT_3D('',#49878,#40253,#40254); -#34426=AXIS2_PLACEMENT_3D('',#49880,#40256,#40257); -#34427=AXIS2_PLACEMENT_3D('',#49881,#40258,#40259); -#34428=AXIS2_PLACEMENT_3D('',#49883,#40261,#40262); -#34429=AXIS2_PLACEMENT_3D('',#49885,#40264,#40265); -#34430=AXIS2_PLACEMENT_3D('',#49886,#40266,#40267); -#34431=AXIS2_PLACEMENT_3D('',#49887,#40268,#40269); -#34432=AXIS2_PLACEMENT_3D('',#49888,#40270,#40271); -#34433=AXIS2_PLACEMENT_3D('',#49889,#40272,#40273); -#34434=AXIS2_PLACEMENT_3D('',#49890,#40274,#40275); -#34435=AXIS2_PLACEMENT_3D('',#49891,#40276,#40277); -#34436=AXIS2_PLACEMENT_3D('',#49892,#40278,#40279); -#34437=AXIS2_PLACEMENT_3D('',#49893,#40280,#40281); -#34438=AXIS2_PLACEMENT_3D('',#49894,#40282,#40283); -#34439=AXIS2_PLACEMENT_3D('',#49895,#40284,#40285); -#34440=AXIS2_PLACEMENT_3D('',#49896,#40286,#40287); -#34441=AXIS2_PLACEMENT_3D('',#49897,#40288,#40289); -#34442=AXIS2_PLACEMENT_3D('',#49898,#40290,#40291); -#34443=AXIS2_PLACEMENT_3D('',#49899,#40292,#40293); -#34444=AXIS2_PLACEMENT_3D('',#49900,#40294,#40295); -#34445=AXIS2_PLACEMENT_3D('',#49901,#40296,#40297); -#34446=AXIS2_PLACEMENT_3D('',#49902,#40298,#40299); -#34447=AXIS2_PLACEMENT_3D('',#49903,#40300,#40301); -#34448=AXIS2_PLACEMENT_3D('',#49904,#40302,#40303); -#34449=AXIS2_PLACEMENT_3D('',#49905,#40304,#40305); -#34450=AXIS2_PLACEMENT_3D('',#49906,#40306,#40307); -#34451=AXIS2_PLACEMENT_3D('',#49907,#40308,#40309); -#34452=AXIS2_PLACEMENT_3D('',#49908,#40310,#40311); -#34453=AXIS2_PLACEMENT_3D('',#49909,#40312,#40313); -#34454=AXIS2_PLACEMENT_3D('',#49910,#40314,#40315); -#34455=AXIS2_PLACEMENT_3D('',#49911,#40316,#40317); -#34456=AXIS2_PLACEMENT_3D('',#49912,#40318,#40319); -#34457=AXIS2_PLACEMENT_3D('',#49913,#40320,#40321); -#34458=AXIS2_PLACEMENT_3D('',#49914,#40322,#40323); -#34459=AXIS2_PLACEMENT_3D('',#49915,#40324,#40325); -#34460=AXIS2_PLACEMENT_3D('',#49916,#40326,#40327); -#34461=AXIS2_PLACEMENT_3D('',#49917,#40328,#40329); -#34462=AXIS2_PLACEMENT_3D('',#49918,#40330,#40331); -#34463=AXIS2_PLACEMENT_3D('',#49919,#40332,#40333); -#34464=AXIS2_PLACEMENT_3D('',#49920,#40334,#40335); -#34465=AXIS2_PLACEMENT_3D('',#49921,#40336,#40337); -#34466=AXIS2_PLACEMENT_3D('',#49922,#40338,#40339); -#34467=AXIS2_PLACEMENT_3D('',#49923,#40340,#40341); -#34468=AXIS2_PLACEMENT_3D('',#49924,#40342,#40343); -#34469=AXIS2_PLACEMENT_3D('',#49925,#40344,#40345); -#34470=AXIS2_PLACEMENT_3D('',#49926,#40346,#40347); -#34471=AXIS2_PLACEMENT_3D('',#49927,#40348,#40349); -#34472=AXIS2_PLACEMENT_3D('',#49928,#40350,#40351); -#34473=AXIS2_PLACEMENT_3D('',#49929,#40352,#40353); -#34474=AXIS2_PLACEMENT_3D('',#49939,#40358,#40359); -#34475=AXIS2_PLACEMENT_3D('',#49943,#40361,#40362); -#34476=AXIS2_PLACEMENT_3D('',#49947,#40364,#40365); -#34477=AXIS2_PLACEMENT_3D('',#49951,#40367,#40368); -#34478=AXIS2_PLACEMENT_3D('',#49955,#40370,#40371); -#34479=AXIS2_PLACEMENT_3D('',#49959,#40373,#40374); -#34480=AXIS2_PLACEMENT_3D('',#49967,#40378,#40379); -#34481=AXIS2_PLACEMENT_3D('',#49971,#40381,#40382); -#34482=AXIS2_PLACEMENT_3D('',#49975,#40384,#40385); -#34483=AXIS2_PLACEMENT_3D('',#49979,#40387,#40388); -#34484=AXIS2_PLACEMENT_3D('',#49983,#40390,#40391); -#34485=AXIS2_PLACEMENT_3D('',#49987,#40393,#40394); -#34486=AXIS2_PLACEMENT_3D('',#49995,#40398,#40399); -#34487=AXIS2_PLACEMENT_3D('',#49999,#40401,#40402); -#34488=AXIS2_PLACEMENT_3D('',#50003,#40404,#40405); -#34489=AXIS2_PLACEMENT_3D('',#50007,#40407,#40408); -#34490=AXIS2_PLACEMENT_3D('',#50011,#40410,#40411); -#34491=AXIS2_PLACEMENT_3D('',#50015,#40413,#40414); -#34492=AXIS2_PLACEMENT_3D('',#50023,#40418,#40419); -#34493=AXIS2_PLACEMENT_3D('',#50027,#40421,#40422); -#34494=AXIS2_PLACEMENT_3D('',#50031,#40424,#40425); -#34495=AXIS2_PLACEMENT_3D('',#50035,#40427,#40428); -#34496=AXIS2_PLACEMENT_3D('',#50039,#40430,#40431); -#34497=AXIS2_PLACEMENT_3D('',#50043,#40433,#40434); -#34498=AXIS2_PLACEMENT_3D('',#50051,#40438,#40439); -#34499=AXIS2_PLACEMENT_3D('',#50055,#40441,#40442); -#34500=AXIS2_PLACEMENT_3D('',#50059,#40444,#40445); -#34501=AXIS2_PLACEMENT_3D('',#50063,#40447,#40448); -#34502=AXIS2_PLACEMENT_3D('',#50067,#40450,#40451); -#34503=AXIS2_PLACEMENT_3D('',#50071,#40453,#40454); -#34504=AXIS2_PLACEMENT_3D('',#50079,#40458,#40459); -#34505=AXIS2_PLACEMENT_3D('',#50083,#40461,#40462); -#34506=AXIS2_PLACEMENT_3D('',#50087,#40464,#40465); -#34507=AXIS2_PLACEMENT_3D('',#50091,#40467,#40468); -#34508=AXIS2_PLACEMENT_3D('',#50095,#40470,#40471); -#34509=AXIS2_PLACEMENT_3D('',#50099,#40473,#40474); -#34510=AXIS2_PLACEMENT_3D('',#50107,#40478,#40479); -#34511=AXIS2_PLACEMENT_3D('',#50111,#40481,#40482); -#34512=AXIS2_PLACEMENT_3D('',#50115,#40484,#40485); -#34513=AXIS2_PLACEMENT_3D('',#50119,#40487,#40488); -#34514=AXIS2_PLACEMENT_3D('',#50123,#40490,#40491); -#34515=AXIS2_PLACEMENT_3D('',#50127,#40493,#40494); -#34516=AXIS2_PLACEMENT_3D('',#50135,#40498,#40499); -#34517=AXIS2_PLACEMENT_3D('',#50139,#40501,#40502); -#34518=AXIS2_PLACEMENT_3D('',#50143,#40504,#40505); -#34519=AXIS2_PLACEMENT_3D('',#50147,#40507,#40508); -#34520=AXIS2_PLACEMENT_3D('',#50151,#40510,#40511); -#34521=AXIS2_PLACEMENT_3D('',#50155,#40513,#40514); -#34522=AXIS2_PLACEMENT_3D('',#50163,#40518,#40519); -#34523=AXIS2_PLACEMENT_3D('',#50167,#40521,#40522); -#34524=AXIS2_PLACEMENT_3D('',#50171,#40524,#40525); -#34525=AXIS2_PLACEMENT_3D('',#50175,#40527,#40528); -#34526=AXIS2_PLACEMENT_3D('',#50179,#40530,#40531); -#34527=AXIS2_PLACEMENT_3D('',#50183,#40533,#40534); -#34528=AXIS2_PLACEMENT_3D('',#50191,#40538,#40539); -#34529=AXIS2_PLACEMENT_3D('',#50195,#40541,#40542); -#34530=AXIS2_PLACEMENT_3D('',#50199,#40544,#40545); -#34531=AXIS2_PLACEMENT_3D('',#50203,#40547,#40548); -#34532=AXIS2_PLACEMENT_3D('',#50207,#40550,#40551); -#34533=AXIS2_PLACEMENT_3D('',#50211,#40553,#40554); -#34534=AXIS2_PLACEMENT_3D('',#50219,#40558,#40559); -#34535=AXIS2_PLACEMENT_3D('',#50223,#40561,#40562); -#34536=AXIS2_PLACEMENT_3D('',#50227,#40564,#40565); -#34537=AXIS2_PLACEMENT_3D('',#50231,#40567,#40568); -#34538=AXIS2_PLACEMENT_3D('',#50235,#40570,#40571); -#34539=AXIS2_PLACEMENT_3D('',#50239,#40573,#40574); -#34540=AXIS2_PLACEMENT_3D('',#50247,#40578,#40579); -#34541=AXIS2_PLACEMENT_3D('',#50251,#40581,#40582); -#34542=AXIS2_PLACEMENT_3D('',#50255,#40584,#40585); -#34543=AXIS2_PLACEMENT_3D('',#50259,#40587,#40588); -#34544=AXIS2_PLACEMENT_3D('',#50263,#40590,#40591); -#34545=AXIS2_PLACEMENT_3D('',#50267,#40593,#40594); -#34546=AXIS2_PLACEMENT_3D('',#50275,#40598,#40599); -#34547=AXIS2_PLACEMENT_3D('',#50279,#40601,#40602); -#34548=AXIS2_PLACEMENT_3D('',#50283,#40604,#40605); -#34549=AXIS2_PLACEMENT_3D('',#50287,#40607,#40608); -#34550=AXIS2_PLACEMENT_3D('',#50291,#40610,#40611); -#34551=AXIS2_PLACEMENT_3D('',#50295,#40613,#40614); -#34552=AXIS2_PLACEMENT_3D('',#50303,#40618,#40619); -#34553=AXIS2_PLACEMENT_3D('',#50307,#40621,#40622); -#34554=AXIS2_PLACEMENT_3D('',#50311,#40624,#40625); -#34555=AXIS2_PLACEMENT_3D('',#50315,#40627,#40628); -#34556=AXIS2_PLACEMENT_3D('',#50319,#40630,#40631); -#34557=AXIS2_PLACEMENT_3D('',#50323,#40633,#40634); -#34558=AXIS2_PLACEMENT_3D('',#50331,#40638,#40639); -#34559=AXIS2_PLACEMENT_3D('',#50335,#40641,#40642); -#34560=AXIS2_PLACEMENT_3D('',#50339,#40644,#40645); -#34561=AXIS2_PLACEMENT_3D('',#50343,#40647,#40648); -#34562=AXIS2_PLACEMENT_3D('',#50347,#40650,#40651); -#34563=AXIS2_PLACEMENT_3D('',#50351,#40653,#40654); -#34564=AXIS2_PLACEMENT_3D('',#50359,#40658,#40659); -#34565=AXIS2_PLACEMENT_3D('',#50363,#40661,#40662); -#34566=AXIS2_PLACEMENT_3D('',#50367,#40664,#40665); -#34567=AXIS2_PLACEMENT_3D('',#50371,#40667,#40668); -#34568=AXIS2_PLACEMENT_3D('',#50375,#40670,#40671); -#34569=AXIS2_PLACEMENT_3D('',#50379,#40673,#40674); -#34570=AXIS2_PLACEMENT_3D('',#50387,#40678,#40679); -#34571=AXIS2_PLACEMENT_3D('',#50391,#40681,#40682); -#34572=AXIS2_PLACEMENT_3D('',#50395,#40684,#40685); -#34573=AXIS2_PLACEMENT_3D('',#50399,#40687,#40688); -#34574=AXIS2_PLACEMENT_3D('',#50403,#40690,#40691); -#34575=AXIS2_PLACEMENT_3D('',#50407,#40693,#40694); -#34576=AXIS2_PLACEMENT_3D('',#50415,#40698,#40699); -#34577=AXIS2_PLACEMENT_3D('',#50419,#40701,#40702); -#34578=AXIS2_PLACEMENT_3D('',#50423,#40704,#40705); -#34579=AXIS2_PLACEMENT_3D('',#50427,#40707,#40708); -#34580=AXIS2_PLACEMENT_3D('',#50431,#40710,#40711); -#34581=AXIS2_PLACEMENT_3D('',#50435,#40713,#40714); -#34582=AXIS2_PLACEMENT_3D('',#50443,#40718,#40719); -#34583=AXIS2_PLACEMENT_3D('',#50447,#40721,#40722); -#34584=AXIS2_PLACEMENT_3D('',#50451,#40724,#40725); -#34585=AXIS2_PLACEMENT_3D('',#50455,#40727,#40728); -#34586=AXIS2_PLACEMENT_3D('',#50459,#40730,#40731); -#34587=AXIS2_PLACEMENT_3D('',#50463,#40733,#40734); -#34588=AXIS2_PLACEMENT_3D('',#50471,#40738,#40739); -#34589=AXIS2_PLACEMENT_3D('',#50475,#40741,#40742); -#34590=AXIS2_PLACEMENT_3D('',#50479,#40744,#40745); -#34591=AXIS2_PLACEMENT_3D('',#50483,#40747,#40748); -#34592=AXIS2_PLACEMENT_3D('',#50487,#40750,#40751); -#34593=AXIS2_PLACEMENT_3D('',#50491,#40753,#40754); -#34594=AXIS2_PLACEMENT_3D('',#50498,#40758,#40759); -#34595=AXIS2_PLACEMENT_3D('',#50508,#40764,#40765); -#34596=AXIS2_PLACEMENT_3D('',#50512,#40767,#40768); -#34597=AXIS2_PLACEMENT_3D('',#50516,#40770,#40771); -#34598=AXIS2_PLACEMENT_3D('',#50520,#40773,#40774); -#34599=AXIS2_PLACEMENT_3D('',#50524,#40776,#40777); -#34600=AXIS2_PLACEMENT_3D('',#50528,#40779,#40780); -#34601=AXIS2_PLACEMENT_3D('',#50536,#40784,#40785); -#34602=AXIS2_PLACEMENT_3D('',#50540,#40787,#40788); -#34603=AXIS2_PLACEMENT_3D('',#50544,#40790,#40791); -#34604=AXIS2_PLACEMENT_3D('',#50548,#40793,#40794); -#34605=AXIS2_PLACEMENT_3D('',#50552,#40796,#40797); -#34606=AXIS2_PLACEMENT_3D('',#50556,#40799,#40800); -#34607=AXIS2_PLACEMENT_3D('',#50564,#40804,#40805); -#34608=AXIS2_PLACEMENT_3D('',#50568,#40807,#40808); -#34609=AXIS2_PLACEMENT_3D('',#50572,#40810,#40811); -#34610=AXIS2_PLACEMENT_3D('',#50576,#40813,#40814); -#34611=AXIS2_PLACEMENT_3D('',#50580,#40816,#40817); -#34612=AXIS2_PLACEMENT_3D('',#50584,#40819,#40820); -#34613=AXIS2_PLACEMENT_3D('',#50592,#40824,#40825); -#34614=AXIS2_PLACEMENT_3D('',#50596,#40827,#40828); -#34615=AXIS2_PLACEMENT_3D('',#50600,#40830,#40831); -#34616=AXIS2_PLACEMENT_3D('',#50604,#40833,#40834); -#34617=AXIS2_PLACEMENT_3D('',#50608,#40836,#40837); -#34618=AXIS2_PLACEMENT_3D('',#50612,#40839,#40840); -#34619=AXIS2_PLACEMENT_3D('',#50620,#40844,#40845); -#34620=AXIS2_PLACEMENT_3D('',#50624,#40847,#40848); -#34621=AXIS2_PLACEMENT_3D('',#50628,#40850,#40851); -#34622=AXIS2_PLACEMENT_3D('',#50632,#40853,#40854); -#34623=AXIS2_PLACEMENT_3D('',#50636,#40856,#40857); -#34624=AXIS2_PLACEMENT_3D('',#50640,#40859,#40860); -#34625=AXIS2_PLACEMENT_3D('',#50648,#40864,#40865); -#34626=AXIS2_PLACEMENT_3D('',#50652,#40867,#40868); -#34627=AXIS2_PLACEMENT_3D('',#50656,#40870,#40871); -#34628=AXIS2_PLACEMENT_3D('',#50660,#40873,#40874); -#34629=AXIS2_PLACEMENT_3D('',#50664,#40876,#40877); -#34630=AXIS2_PLACEMENT_3D('',#50668,#40879,#40880); -#34631=AXIS2_PLACEMENT_3D('',#50676,#40884,#40885); -#34632=AXIS2_PLACEMENT_3D('',#50680,#40887,#40888); -#34633=AXIS2_PLACEMENT_3D('',#50684,#40890,#40891); -#34634=AXIS2_PLACEMENT_3D('',#50688,#40893,#40894); -#34635=AXIS2_PLACEMENT_3D('',#50692,#40896,#40897); -#34636=AXIS2_PLACEMENT_3D('',#50696,#40899,#40900); -#34637=AXIS2_PLACEMENT_3D('',#50704,#40904,#40905); -#34638=AXIS2_PLACEMENT_3D('',#50708,#40907,#40908); -#34639=AXIS2_PLACEMENT_3D('',#50712,#40910,#40911); -#34640=AXIS2_PLACEMENT_3D('',#50716,#40913,#40914); -#34641=AXIS2_PLACEMENT_3D('',#50720,#40916,#40917); -#34642=AXIS2_PLACEMENT_3D('',#50724,#40919,#40920); -#34643=AXIS2_PLACEMENT_3D('',#50732,#40924,#40925); -#34644=AXIS2_PLACEMENT_3D('',#50736,#40927,#40928); -#34645=AXIS2_PLACEMENT_3D('',#50740,#40930,#40931); -#34646=AXIS2_PLACEMENT_3D('',#50744,#40933,#40934); -#34647=AXIS2_PLACEMENT_3D('',#50748,#40936,#40937); -#34648=AXIS2_PLACEMENT_3D('',#50752,#40939,#40940); -#34649=AXIS2_PLACEMENT_3D('',#50760,#40944,#40945); -#34650=AXIS2_PLACEMENT_3D('',#50764,#40947,#40948); -#34651=AXIS2_PLACEMENT_3D('',#50768,#40950,#40951); -#34652=AXIS2_PLACEMENT_3D('',#50772,#40953,#40954); -#34653=AXIS2_PLACEMENT_3D('',#50776,#40956,#40957); -#34654=AXIS2_PLACEMENT_3D('',#50780,#40959,#40960); -#34655=AXIS2_PLACEMENT_3D('',#50788,#40964,#40965); -#34656=AXIS2_PLACEMENT_3D('',#50792,#40967,#40968); -#34657=AXIS2_PLACEMENT_3D('',#50796,#40970,#40971); -#34658=AXIS2_PLACEMENT_3D('',#50800,#40973,#40974); -#34659=AXIS2_PLACEMENT_3D('',#50804,#40976,#40977); -#34660=AXIS2_PLACEMENT_3D('',#50808,#40979,#40980); -#34661=AXIS2_PLACEMENT_3D('',#50816,#40984,#40985); -#34662=AXIS2_PLACEMENT_3D('',#50820,#40987,#40988); -#34663=AXIS2_PLACEMENT_3D('',#50824,#40990,#40991); -#34664=AXIS2_PLACEMENT_3D('',#50828,#40993,#40994); -#34665=AXIS2_PLACEMENT_3D('',#50832,#40996,#40997); -#34666=AXIS2_PLACEMENT_3D('',#50836,#40999,#41000); -#34667=AXIS2_PLACEMENT_3D('',#50844,#41004,#41005); -#34668=AXIS2_PLACEMENT_3D('',#50848,#41007,#41008); -#34669=AXIS2_PLACEMENT_3D('',#50852,#41010,#41011); -#34670=AXIS2_PLACEMENT_3D('',#50856,#41013,#41014); -#34671=AXIS2_PLACEMENT_3D('',#50860,#41016,#41017); -#34672=AXIS2_PLACEMENT_3D('',#50864,#41019,#41020); -#34673=AXIS2_PLACEMENT_3D('',#50872,#41024,#41025); -#34674=AXIS2_PLACEMENT_3D('',#50876,#41027,#41028); -#34675=AXIS2_PLACEMENT_3D('',#50880,#41030,#41031); -#34676=AXIS2_PLACEMENT_3D('',#50884,#41033,#41034); -#34677=AXIS2_PLACEMENT_3D('',#50888,#41036,#41037); -#34678=AXIS2_PLACEMENT_3D('',#50892,#41039,#41040); -#34679=AXIS2_PLACEMENT_3D('',#50900,#41044,#41045); -#34680=AXIS2_PLACEMENT_3D('',#50904,#41047,#41048); -#34681=AXIS2_PLACEMENT_3D('',#50908,#41050,#41051); -#34682=AXIS2_PLACEMENT_3D('',#50912,#41053,#41054); -#34683=AXIS2_PLACEMENT_3D('',#50916,#41056,#41057); -#34684=AXIS2_PLACEMENT_3D('',#50920,#41059,#41060); -#34685=AXIS2_PLACEMENT_3D('',#50928,#41064,#41065); -#34686=AXIS2_PLACEMENT_3D('',#50932,#41067,#41068); -#34687=AXIS2_PLACEMENT_3D('',#50936,#41070,#41071); -#34688=AXIS2_PLACEMENT_3D('',#50940,#41073,#41074); -#34689=AXIS2_PLACEMENT_3D('',#50944,#41076,#41077); -#34690=AXIS2_PLACEMENT_3D('',#50948,#41079,#41080); -#34691=AXIS2_PLACEMENT_3D('',#50956,#41084,#41085); -#34692=AXIS2_PLACEMENT_3D('',#50960,#41087,#41088); -#34693=AXIS2_PLACEMENT_3D('',#50964,#41090,#41091); -#34694=AXIS2_PLACEMENT_3D('',#50968,#41093,#41094); -#34695=AXIS2_PLACEMENT_3D('',#50972,#41096,#41097); -#34696=AXIS2_PLACEMENT_3D('',#50976,#41099,#41100); -#34697=AXIS2_PLACEMENT_3D('',#50984,#41104,#41105); -#34698=AXIS2_PLACEMENT_3D('',#50988,#41107,#41108); -#34699=AXIS2_PLACEMENT_3D('',#50992,#41110,#41111); -#34700=AXIS2_PLACEMENT_3D('',#50996,#41113,#41114); -#34701=AXIS2_PLACEMENT_3D('',#51000,#41116,#41117); -#34702=AXIS2_PLACEMENT_3D('',#51004,#41119,#41120); -#34703=AXIS2_PLACEMENT_3D('',#51012,#41124,#41125); -#34704=AXIS2_PLACEMENT_3D('',#51016,#41127,#41128); -#34705=AXIS2_PLACEMENT_3D('',#51020,#41130,#41131); -#34706=AXIS2_PLACEMENT_3D('',#51024,#41133,#41134); -#34707=AXIS2_PLACEMENT_3D('',#51028,#41136,#41137); -#34708=AXIS2_PLACEMENT_3D('',#51032,#41139,#41140); -#34709=AXIS2_PLACEMENT_3D('',#51040,#41144,#41145); -#34710=AXIS2_PLACEMENT_3D('',#51044,#41147,#41148); -#34711=AXIS2_PLACEMENT_3D('',#51048,#41150,#41151); -#34712=AXIS2_PLACEMENT_3D('',#51052,#41153,#41154); -#34713=AXIS2_PLACEMENT_3D('',#51056,#41156,#41157); -#34714=AXIS2_PLACEMENT_3D('',#51060,#41159,#41160); -#34715=AXIS2_PLACEMENT_3D('',#51067,#41164,#41165); -#34716=AXIS2_PLACEMENT_3D('',#51077,#41170,#41171); -#34717=AXIS2_PLACEMENT_3D('',#51081,#41173,#41174); -#34718=AXIS2_PLACEMENT_3D('',#51085,#41176,#41177); -#34719=AXIS2_PLACEMENT_3D('',#51089,#41179,#41180); -#34720=AXIS2_PLACEMENT_3D('',#51093,#41182,#41183); -#34721=AXIS2_PLACEMENT_3D('',#51097,#41185,#41186); -#34722=AXIS2_PLACEMENT_3D('',#51105,#41190,#41191); -#34723=AXIS2_PLACEMENT_3D('',#51109,#41193,#41194); -#34724=AXIS2_PLACEMENT_3D('',#51113,#41196,#41197); -#34725=AXIS2_PLACEMENT_3D('',#51117,#41199,#41200); -#34726=AXIS2_PLACEMENT_3D('',#51121,#41202,#41203); -#34727=AXIS2_PLACEMENT_3D('',#51125,#41205,#41206); -#34728=AXIS2_PLACEMENT_3D('',#51133,#41210,#41211); -#34729=AXIS2_PLACEMENT_3D('',#51137,#41213,#41214); -#34730=AXIS2_PLACEMENT_3D('',#51141,#41216,#41217); -#34731=AXIS2_PLACEMENT_3D('',#51145,#41219,#41220); -#34732=AXIS2_PLACEMENT_3D('',#51149,#41222,#41223); -#34733=AXIS2_PLACEMENT_3D('',#51153,#41225,#41226); -#34734=AXIS2_PLACEMENT_3D('',#51161,#41230,#41231); -#34735=AXIS2_PLACEMENT_3D('',#51165,#41233,#41234); -#34736=AXIS2_PLACEMENT_3D('',#51169,#41236,#41237); -#34737=AXIS2_PLACEMENT_3D('',#51173,#41239,#41240); -#34738=AXIS2_PLACEMENT_3D('',#51177,#41242,#41243); -#34739=AXIS2_PLACEMENT_3D('',#51181,#41245,#41246); -#34740=AXIS2_PLACEMENT_3D('',#51189,#41250,#41251); -#34741=AXIS2_PLACEMENT_3D('',#51193,#41253,#41254); -#34742=AXIS2_PLACEMENT_3D('',#51197,#41256,#41257); -#34743=AXIS2_PLACEMENT_3D('',#51201,#41259,#41260); -#34744=AXIS2_PLACEMENT_3D('',#51205,#41262,#41263); -#34745=AXIS2_PLACEMENT_3D('',#51209,#41265,#41266); -#34746=AXIS2_PLACEMENT_3D('',#51217,#41270,#41271); -#34747=AXIS2_PLACEMENT_3D('',#51221,#41273,#41274); -#34748=AXIS2_PLACEMENT_3D('',#51225,#41276,#41277); -#34749=AXIS2_PLACEMENT_3D('',#51229,#41279,#41280); -#34750=AXIS2_PLACEMENT_3D('',#51233,#41282,#41283); -#34751=AXIS2_PLACEMENT_3D('',#51237,#41285,#41286); -#34752=AXIS2_PLACEMENT_3D('',#51245,#41290,#41291); -#34753=AXIS2_PLACEMENT_3D('',#51249,#41293,#41294); -#34754=AXIS2_PLACEMENT_3D('',#51253,#41296,#41297); -#34755=AXIS2_PLACEMENT_3D('',#51257,#41299,#41300); -#34756=AXIS2_PLACEMENT_3D('',#51261,#41302,#41303); -#34757=AXIS2_PLACEMENT_3D('',#51265,#41305,#41306); -#34758=AXIS2_PLACEMENT_3D('',#51273,#41310,#41311); -#34759=AXIS2_PLACEMENT_3D('',#51277,#41313,#41314); -#34760=AXIS2_PLACEMENT_3D('',#51281,#41316,#41317); -#34761=AXIS2_PLACEMENT_3D('',#51285,#41319,#41320); -#34762=AXIS2_PLACEMENT_3D('',#51289,#41322,#41323); -#34763=AXIS2_PLACEMENT_3D('',#51293,#41325,#41326); -#34764=AXIS2_PLACEMENT_3D('',#51301,#41330,#41331); -#34765=AXIS2_PLACEMENT_3D('',#51305,#41333,#41334); -#34766=AXIS2_PLACEMENT_3D('',#51309,#41336,#41337); -#34767=AXIS2_PLACEMENT_3D('',#51313,#41339,#41340); -#34768=AXIS2_PLACEMENT_3D('',#51317,#41342,#41343); -#34769=AXIS2_PLACEMENT_3D('',#51321,#41345,#41346); -#34770=AXIS2_PLACEMENT_3D('',#51329,#41350,#41351); -#34771=AXIS2_PLACEMENT_3D('',#51333,#41353,#41354); -#34772=AXIS2_PLACEMENT_3D('',#51337,#41356,#41357); -#34773=AXIS2_PLACEMENT_3D('',#51341,#41359,#41360); -#34774=AXIS2_PLACEMENT_3D('',#51345,#41362,#41363); -#34775=AXIS2_PLACEMENT_3D('',#51349,#41365,#41366); -#34776=AXIS2_PLACEMENT_3D('',#51357,#41370,#41371); -#34777=AXIS2_PLACEMENT_3D('',#51361,#41373,#41374); -#34778=AXIS2_PLACEMENT_3D('',#51365,#41376,#41377); -#34779=AXIS2_PLACEMENT_3D('',#51369,#41379,#41380); -#34780=AXIS2_PLACEMENT_3D('',#51373,#41382,#41383); -#34781=AXIS2_PLACEMENT_3D('',#51377,#41385,#41386); -#34782=AXIS2_PLACEMENT_3D('',#51385,#41390,#41391); -#34783=AXIS2_PLACEMENT_3D('',#51389,#41393,#41394); -#34784=AXIS2_PLACEMENT_3D('',#51393,#41396,#41397); -#34785=AXIS2_PLACEMENT_3D('',#51397,#41399,#41400); -#34786=AXIS2_PLACEMENT_3D('',#51401,#41402,#41403); -#34787=AXIS2_PLACEMENT_3D('',#51405,#41405,#41406); -#34788=AXIS2_PLACEMENT_3D('',#51413,#41410,#41411); -#34789=AXIS2_PLACEMENT_3D('',#51417,#41413,#41414); -#34790=AXIS2_PLACEMENT_3D('',#51421,#41416,#41417); -#34791=AXIS2_PLACEMENT_3D('',#51425,#41419,#41420); -#34792=AXIS2_PLACEMENT_3D('',#51429,#41422,#41423); -#34793=AXIS2_PLACEMENT_3D('',#51433,#41425,#41426); -#34794=AXIS2_PLACEMENT_3D('',#51441,#41430,#41431); -#34795=AXIS2_PLACEMENT_3D('',#51445,#41433,#41434); -#34796=AXIS2_PLACEMENT_3D('',#51449,#41436,#41437); -#34797=AXIS2_PLACEMENT_3D('',#51453,#41439,#41440); -#34798=AXIS2_PLACEMENT_3D('',#51457,#41442,#41443); -#34799=AXIS2_PLACEMENT_3D('',#51461,#41445,#41446); -#34800=AXIS2_PLACEMENT_3D('',#51469,#41450,#41451); -#34801=AXIS2_PLACEMENT_3D('',#51473,#41453,#41454); -#34802=AXIS2_PLACEMENT_3D('',#51477,#41456,#41457); -#34803=AXIS2_PLACEMENT_3D('',#51481,#41459,#41460); -#34804=AXIS2_PLACEMENT_3D('',#51485,#41462,#41463); -#34805=AXIS2_PLACEMENT_3D('',#51489,#41465,#41466); -#34806=AXIS2_PLACEMENT_3D('',#51497,#41470,#41471); -#34807=AXIS2_PLACEMENT_3D('',#51501,#41473,#41474); -#34808=AXIS2_PLACEMENT_3D('',#51505,#41476,#41477); -#34809=AXIS2_PLACEMENT_3D('',#51509,#41479,#41480); -#34810=AXIS2_PLACEMENT_3D('',#51513,#41482,#41483); -#34811=AXIS2_PLACEMENT_3D('',#51517,#41485,#41486); -#34812=AXIS2_PLACEMENT_3D('',#51525,#41490,#41491); -#34813=AXIS2_PLACEMENT_3D('',#51529,#41493,#41494); -#34814=AXIS2_PLACEMENT_3D('',#51533,#41496,#41497); -#34815=AXIS2_PLACEMENT_3D('',#51537,#41499,#41500); -#34816=AXIS2_PLACEMENT_3D('',#51541,#41502,#41503); -#34817=AXIS2_PLACEMENT_3D('',#51545,#41505,#41506); -#34818=AXIS2_PLACEMENT_3D('',#51553,#41510,#41511); -#34819=AXIS2_PLACEMENT_3D('',#51557,#41513,#41514); -#34820=AXIS2_PLACEMENT_3D('',#51561,#41516,#41517); -#34821=AXIS2_PLACEMENT_3D('',#51565,#41519,#41520); -#34822=AXIS2_PLACEMENT_3D('',#51569,#41522,#41523); -#34823=AXIS2_PLACEMENT_3D('',#51573,#41525,#41526); -#34824=AXIS2_PLACEMENT_3D('',#51581,#41530,#41531); -#34825=AXIS2_PLACEMENT_3D('',#51585,#41533,#41534); -#34826=AXIS2_PLACEMENT_3D('',#51589,#41536,#41537); -#34827=AXIS2_PLACEMENT_3D('',#51593,#41539,#41540); -#34828=AXIS2_PLACEMENT_3D('',#51597,#41542,#41543); -#34829=AXIS2_PLACEMENT_3D('',#51601,#41545,#41546); -#34830=AXIS2_PLACEMENT_3D('',#51609,#41550,#41551); -#34831=AXIS2_PLACEMENT_3D('',#51613,#41553,#41554); -#34832=AXIS2_PLACEMENT_3D('',#51617,#41556,#41557); -#34833=AXIS2_PLACEMENT_3D('',#51621,#41559,#41560); -#34834=AXIS2_PLACEMENT_3D('',#51625,#41562,#41563); -#34835=AXIS2_PLACEMENT_3D('',#51629,#41565,#41566); -#34836=AXIS2_PLACEMENT_3D('',#51636,#41570,#41571); -#34837=AXIS2_PLACEMENT_3D('',#51646,#41576,#41577); -#34838=AXIS2_PLACEMENT_3D('',#51650,#41579,#41580); -#34839=AXIS2_PLACEMENT_3D('',#51654,#41582,#41583); -#34840=AXIS2_PLACEMENT_3D('',#51658,#41585,#41586); -#34841=AXIS2_PLACEMENT_3D('',#51662,#41588,#41589); -#34842=AXIS2_PLACEMENT_3D('',#51666,#41591,#41592); -#34843=AXIS2_PLACEMENT_3D('',#51674,#41596,#41597); -#34844=AXIS2_PLACEMENT_3D('',#51678,#41599,#41600); -#34845=AXIS2_PLACEMENT_3D('',#51682,#41602,#41603); -#34846=AXIS2_PLACEMENT_3D('',#51686,#41605,#41606); -#34847=AXIS2_PLACEMENT_3D('',#51690,#41608,#41609); -#34848=AXIS2_PLACEMENT_3D('',#51694,#41611,#41612); -#34849=AXIS2_PLACEMENT_3D('',#51702,#41616,#41617); -#34850=AXIS2_PLACEMENT_3D('',#51706,#41619,#41620); -#34851=AXIS2_PLACEMENT_3D('',#51710,#41622,#41623); -#34852=AXIS2_PLACEMENT_3D('',#51714,#41625,#41626); -#34853=AXIS2_PLACEMENT_3D('',#51718,#41628,#41629); -#34854=AXIS2_PLACEMENT_3D('',#51722,#41631,#41632); -#34855=AXIS2_PLACEMENT_3D('',#51730,#41636,#41637); -#34856=AXIS2_PLACEMENT_3D('',#51734,#41639,#41640); -#34857=AXIS2_PLACEMENT_3D('',#51738,#41642,#41643); -#34858=AXIS2_PLACEMENT_3D('',#51742,#41645,#41646); -#34859=AXIS2_PLACEMENT_3D('',#51746,#41648,#41649); -#34860=AXIS2_PLACEMENT_3D('',#51750,#41651,#41652); -#34861=AXIS2_PLACEMENT_3D('',#51758,#41656,#41657); -#34862=AXIS2_PLACEMENT_3D('',#51762,#41659,#41660); -#34863=AXIS2_PLACEMENT_3D('',#51766,#41662,#41663); -#34864=AXIS2_PLACEMENT_3D('',#51770,#41665,#41666); -#34865=AXIS2_PLACEMENT_3D('',#51774,#41668,#41669); -#34866=AXIS2_PLACEMENT_3D('',#51778,#41671,#41672); -#34867=AXIS2_PLACEMENT_3D('',#51786,#41676,#41677); -#34868=AXIS2_PLACEMENT_3D('',#51790,#41679,#41680); -#34869=AXIS2_PLACEMENT_3D('',#51794,#41682,#41683); -#34870=AXIS2_PLACEMENT_3D('',#51798,#41685,#41686); -#34871=AXIS2_PLACEMENT_3D('',#51802,#41688,#41689); -#34872=AXIS2_PLACEMENT_3D('',#51806,#41691,#41692); -#34873=AXIS2_PLACEMENT_3D('',#51814,#41696,#41697); -#34874=AXIS2_PLACEMENT_3D('',#51818,#41699,#41700); -#34875=AXIS2_PLACEMENT_3D('',#51822,#41702,#41703); -#34876=AXIS2_PLACEMENT_3D('',#51826,#41705,#41706); -#34877=AXIS2_PLACEMENT_3D('',#51830,#41708,#41709); -#34878=AXIS2_PLACEMENT_3D('',#51834,#41711,#41712); -#34879=AXIS2_PLACEMENT_3D('',#51842,#41716,#41717); -#34880=AXIS2_PLACEMENT_3D('',#51846,#41719,#41720); -#34881=AXIS2_PLACEMENT_3D('',#51850,#41722,#41723); -#34882=AXIS2_PLACEMENT_3D('',#51854,#41725,#41726); -#34883=AXIS2_PLACEMENT_3D('',#51858,#41728,#41729); -#34884=AXIS2_PLACEMENT_3D('',#51862,#41731,#41732); -#34885=AXIS2_PLACEMENT_3D('',#51870,#41736,#41737); -#34886=AXIS2_PLACEMENT_3D('',#51874,#41739,#41740); -#34887=AXIS2_PLACEMENT_3D('',#51878,#41742,#41743); -#34888=AXIS2_PLACEMENT_3D('',#51882,#41745,#41746); -#34889=AXIS2_PLACEMENT_3D('',#51886,#41748,#41749); -#34890=AXIS2_PLACEMENT_3D('',#51890,#41751,#41752); -#34891=AXIS2_PLACEMENT_3D('',#51898,#41756,#41757); -#34892=AXIS2_PLACEMENT_3D('',#51902,#41759,#41760); -#34893=AXIS2_PLACEMENT_3D('',#51906,#41762,#41763); -#34894=AXIS2_PLACEMENT_3D('',#51910,#41765,#41766); -#34895=AXIS2_PLACEMENT_3D('',#51914,#41768,#41769); -#34896=AXIS2_PLACEMENT_3D('',#51918,#41771,#41772); -#34897=AXIS2_PLACEMENT_3D('',#51926,#41776,#41777); -#34898=AXIS2_PLACEMENT_3D('',#51930,#41779,#41780); -#34899=AXIS2_PLACEMENT_3D('',#51934,#41782,#41783); -#34900=AXIS2_PLACEMENT_3D('',#51938,#41785,#41786); -#34901=AXIS2_PLACEMENT_3D('',#51942,#41788,#41789); -#34902=AXIS2_PLACEMENT_3D('',#51946,#41791,#41792); -#34903=AXIS2_PLACEMENT_3D('',#51954,#41796,#41797); -#34904=AXIS2_PLACEMENT_3D('',#51958,#41799,#41800); -#34905=AXIS2_PLACEMENT_3D('',#51962,#41802,#41803); -#34906=AXIS2_PLACEMENT_3D('',#51966,#41805,#41806); -#34907=AXIS2_PLACEMENT_3D('',#51970,#41808,#41809); -#34908=AXIS2_PLACEMENT_3D('',#51974,#41811,#41812); -#34909=AXIS2_PLACEMENT_3D('',#51982,#41816,#41817); -#34910=AXIS2_PLACEMENT_3D('',#51986,#41819,#41820); -#34911=AXIS2_PLACEMENT_3D('',#51990,#41822,#41823); -#34912=AXIS2_PLACEMENT_3D('',#51994,#41825,#41826); -#34913=AXIS2_PLACEMENT_3D('',#51998,#41828,#41829); -#34914=AXIS2_PLACEMENT_3D('',#52002,#41831,#41832); -#34915=AXIS2_PLACEMENT_3D('',#52010,#41836,#41837); -#34916=AXIS2_PLACEMENT_3D('',#52014,#41839,#41840); -#34917=AXIS2_PLACEMENT_3D('',#52018,#41842,#41843); -#34918=AXIS2_PLACEMENT_3D('',#52022,#41845,#41846); -#34919=AXIS2_PLACEMENT_3D('',#52026,#41848,#41849); -#34920=AXIS2_PLACEMENT_3D('',#52030,#41851,#41852); -#34921=AXIS2_PLACEMENT_3D('',#52038,#41856,#41857); -#34922=AXIS2_PLACEMENT_3D('',#52042,#41859,#41860); -#34923=AXIS2_PLACEMENT_3D('',#52046,#41862,#41863); -#34924=AXIS2_PLACEMENT_3D('',#52050,#41865,#41866); -#34925=AXIS2_PLACEMENT_3D('',#52054,#41868,#41869); -#34926=AXIS2_PLACEMENT_3D('',#52058,#41871,#41872); -#34927=AXIS2_PLACEMENT_3D('',#52066,#41876,#41877); -#34928=AXIS2_PLACEMENT_3D('',#52070,#41879,#41880); -#34929=AXIS2_PLACEMENT_3D('',#52074,#41882,#41883); -#34930=AXIS2_PLACEMENT_3D('',#52078,#41885,#41886); -#34931=AXIS2_PLACEMENT_3D('',#52082,#41888,#41889); -#34932=AXIS2_PLACEMENT_3D('',#52086,#41891,#41892); -#34933=AXIS2_PLACEMENT_3D('',#52094,#41896,#41897); -#34934=AXIS2_PLACEMENT_3D('',#52098,#41899,#41900); -#34935=AXIS2_PLACEMENT_3D('',#52102,#41902,#41903); -#34936=AXIS2_PLACEMENT_3D('',#52106,#41905,#41906); -#34937=AXIS2_PLACEMENT_3D('',#52110,#41908,#41909); -#34938=AXIS2_PLACEMENT_3D('',#52114,#41911,#41912); -#34939=AXIS2_PLACEMENT_3D('',#52122,#41916,#41917); -#34940=AXIS2_PLACEMENT_3D('',#52126,#41919,#41920); -#34941=AXIS2_PLACEMENT_3D('',#52130,#41922,#41923); -#34942=AXIS2_PLACEMENT_3D('',#52134,#41925,#41926); -#34943=AXIS2_PLACEMENT_3D('',#52138,#41928,#41929); -#34944=AXIS2_PLACEMENT_3D('',#52142,#41931,#41932); -#34945=AXIS2_PLACEMENT_3D('',#52150,#41936,#41937); -#34946=AXIS2_PLACEMENT_3D('',#52154,#41939,#41940); -#34947=AXIS2_PLACEMENT_3D('',#52158,#41942,#41943); -#34948=AXIS2_PLACEMENT_3D('',#52162,#41945,#41946); -#34949=AXIS2_PLACEMENT_3D('',#52166,#41948,#41949); -#34950=AXIS2_PLACEMENT_3D('',#52170,#41951,#41952); -#34951=AXIS2_PLACEMENT_3D('',#52178,#41956,#41957); -#34952=AXIS2_PLACEMENT_3D('',#52182,#41959,#41960); -#34953=AXIS2_PLACEMENT_3D('',#52186,#41962,#41963); -#34954=AXIS2_PLACEMENT_3D('',#52190,#41965,#41966); -#34955=AXIS2_PLACEMENT_3D('',#52194,#41968,#41969); -#34956=AXIS2_PLACEMENT_3D('',#52198,#41971,#41972); -#34957=AXIS2_PLACEMENT_3D('',#52205,#41976,#41977); -#34958=AXIS2_PLACEMENT_3D('',#52208,#41980,#41981); -#34959=AXIS2_PLACEMENT_3D('',#52211,#41984,#41985); -#34960=AXIS2_PLACEMENT_3D('',#52214,#41988,#41989); -#34961=AXIS2_PLACEMENT_3D('',#52217,#41992,#41993); -#34962=AXIS2_PLACEMENT_3D('',#52220,#41996,#41997); -#34963=AXIS2_PLACEMENT_3D('',#52223,#42000,#42001); -#34964=AXIS2_PLACEMENT_3D('',#52226,#42004,#42005); -#34965=AXIS2_PLACEMENT_3D('',#52229,#42008,#42009); -#34966=AXIS2_PLACEMENT_3D('',#52232,#42012,#42013); -#34967=AXIS2_PLACEMENT_3D('',#52235,#42016,#42017); -#34968=AXIS2_PLACEMENT_3D('',#52238,#42020,#42021); -#34969=AXIS2_PLACEMENT_3D('',#52241,#42024,#42025); -#34970=AXIS2_PLACEMENT_3D('',#52244,#42028,#42029); -#34971=AXIS2_PLACEMENT_3D('',#52247,#42032,#42033); -#34972=AXIS2_PLACEMENT_3D('',#52250,#42036,#42037); -#34973=AXIS2_PLACEMENT_3D('',#52253,#42040,#42041); -#34974=AXIS2_PLACEMENT_3D('',#52256,#42044,#42045); -#34975=AXIS2_PLACEMENT_3D('',#52259,#42048,#42049); -#34976=AXIS2_PLACEMENT_3D('',#52262,#42052,#42053); -#34977=AXIS2_PLACEMENT_3D('',#52265,#42056,#42057); -#34978=AXIS2_PLACEMENT_3D('',#52268,#42060,#42061); -#34979=AXIS2_PLACEMENT_3D('',#52271,#42064,#42065); -#34980=AXIS2_PLACEMENT_3D('',#52274,#42068,#42069); -#34981=AXIS2_PLACEMENT_3D('',#52277,#42072,#42073); -#34982=AXIS2_PLACEMENT_3D('',#52280,#42076,#42077); -#34983=AXIS2_PLACEMENT_3D('',#52283,#42080,#42081); -#34984=AXIS2_PLACEMENT_3D('',#52286,#42084,#42085); -#34985=AXIS2_PLACEMENT_3D('',#52289,#42088,#42089); -#34986=AXIS2_PLACEMENT_3D('',#52292,#42092,#42093); -#34987=AXIS2_PLACEMENT_3D('',#52295,#42096,#42097); -#34988=AXIS2_PLACEMENT_3D('',#52298,#42100,#42101); -#34989=AXIS2_PLACEMENT_3D('',#52301,#42104,#42105); -#34990=AXIS2_PLACEMENT_3D('',#52304,#42108,#42109); -#34991=AXIS2_PLACEMENT_3D('',#52307,#42112,#42113); -#34992=AXIS2_PLACEMENT_3D('',#52310,#42116,#42117); -#34993=AXIS2_PLACEMENT_3D('',#52313,#42120,#42121); -#34994=AXIS2_PLACEMENT_3D('',#52316,#42124,#42125); -#34995=AXIS2_PLACEMENT_3D('',#52319,#42128,#42129); -#34996=AXIS2_PLACEMENT_3D('',#52322,#42132,#42133); -#34997=AXIS2_PLACEMENT_3D('',#52325,#42136,#42137); -#34998=AXIS2_PLACEMENT_3D('',#52328,#42140,#42141); -#34999=AXIS2_PLACEMENT_3D('',#52331,#42144,#42145); -#35000=AXIS2_PLACEMENT_3D('',#52334,#42148,#42149); -#35001=AXIS2_PLACEMENT_3D('',#52337,#42152,#42153); -#35002=AXIS2_PLACEMENT_3D('',#52343,#42154,#42155); -#35003=AXIS2_PLACEMENT_3D('',#52357,#42157,#42158); -#35004=AXIS2_PLACEMENT_3D('',#52363,#42159,#42160); -#35005=AXIS2_PLACEMENT_3D('',#52369,#42161,#42162); -#35006=AXIS2_PLACEMENT_3D('',#52383,#42164,#42165); -#35007=AXIS2_PLACEMENT_3D('',#52389,#42166,#42167); -#35008=AXIS2_PLACEMENT_3D('',#52395,#42168,#42169); -#35009=AXIS2_PLACEMENT_3D('',#52409,#42171,#42172); -#35010=AXIS2_PLACEMENT_3D('',#52415,#42173,#42174); -#35011=AXIS2_PLACEMENT_3D('',#52421,#42175,#42176); -#35012=AXIS2_PLACEMENT_3D('',#52435,#42178,#42179); -#35013=AXIS2_PLACEMENT_3D('',#52441,#42180,#42181); -#35014=AXIS2_PLACEMENT_3D('',#52447,#42182,#42183); -#35015=AXIS2_PLACEMENT_3D('',#52461,#42185,#42186); -#35016=AXIS2_PLACEMENT_3D('',#52467,#42187,#42188); -#35017=AXIS2_PLACEMENT_3D('',#52473,#42189,#42190); -#35018=AXIS2_PLACEMENT_3D('',#52487,#42192,#42193); -#35019=AXIS2_PLACEMENT_3D('',#52493,#42194,#42195); -#35020=AXIS2_PLACEMENT_3D('',#52499,#42196,#42197); -#35021=AXIS2_PLACEMENT_3D('',#52513,#42199,#42200); -#35022=AXIS2_PLACEMENT_3D('',#52519,#42201,#42202); -#35023=AXIS2_PLACEMENT_3D('',#52525,#42203,#42204); -#35024=AXIS2_PLACEMENT_3D('',#52539,#42206,#42207); -#35025=AXIS2_PLACEMENT_3D('',#52545,#42208,#42209); -#35026=AXIS2_PLACEMENT_3D('',#52551,#42210,#42211); -#35027=AXIS2_PLACEMENT_3D('',#52565,#42213,#42214); -#35028=AXIS2_PLACEMENT_3D('',#52571,#42215,#42216); -#35029=AXIS2_PLACEMENT_3D('',#52577,#42217,#42218); -#35030=AXIS2_PLACEMENT_3D('',#52591,#42220,#42221); -#35031=AXIS2_PLACEMENT_3D('',#52597,#42222,#42223); -#35032=AXIS2_PLACEMENT_3D('',#52603,#42224,#42225); -#35033=AXIS2_PLACEMENT_3D('',#52617,#42227,#42228); -#35034=AXIS2_PLACEMENT_3D('',#52623,#42229,#42230); -#35035=AXIS2_PLACEMENT_3D('',#52629,#42231,#42232); -#35036=AXIS2_PLACEMENT_3D('',#52643,#42234,#42235); -#35037=AXIS2_PLACEMENT_3D('',#52649,#42236,#42237); -#35038=AXIS2_PLACEMENT_3D('',#52655,#42238,#42239); -#35039=AXIS2_PLACEMENT_3D('',#52669,#42241,#42242); -#35040=AXIS2_PLACEMENT_3D('',#52675,#42243,#42244); -#35041=AXIS2_PLACEMENT_3D('',#52681,#42245,#42246); -#35042=AXIS2_PLACEMENT_3D('',#52695,#42248,#42249); -#35043=AXIS2_PLACEMENT_3D('',#52701,#42250,#42251); -#35044=AXIS2_PLACEMENT_3D('',#52707,#42252,#42253); -#35045=AXIS2_PLACEMENT_3D('',#52721,#42255,#42256); -#35046=AXIS2_PLACEMENT_3D('',#52727,#42257,#42258); -#35047=AXIS2_PLACEMENT_3D('',#52733,#42259,#42260); -#35048=AXIS2_PLACEMENT_3D('',#52747,#42262,#42263); -#35049=AXIS2_PLACEMENT_3D('',#52753,#42264,#42265); -#35050=AXIS2_PLACEMENT_3D('',#52759,#42266,#42267); -#35051=AXIS2_PLACEMENT_3D('',#52773,#42269,#42270); -#35052=AXIS2_PLACEMENT_3D('',#52779,#42271,#42272); -#35053=AXIS2_PLACEMENT_3D('',#52785,#42273,#42274); -#35054=AXIS2_PLACEMENT_3D('',#52799,#42276,#42277); -#35055=AXIS2_PLACEMENT_3D('',#52805,#42278,#42279); -#35056=AXIS2_PLACEMENT_3D('',#52811,#42280,#42281); -#35057=AXIS2_PLACEMENT_3D('',#52825,#42283,#42284); -#35058=AXIS2_PLACEMENT_3D('',#52831,#42285,#42286); -#35059=AXIS2_PLACEMENT_3D('',#52837,#42287,#42288); -#35060=AXIS2_PLACEMENT_3D('',#52851,#42290,#42291); -#35061=AXIS2_PLACEMENT_3D('',#52857,#42292,#42293); -#35062=AXIS2_PLACEMENT_3D('',#52858,#42294,#42295); -#35063=AXIS2_PLACEMENT_3D('',#52866,#42299,#42300); -#35064=AXIS2_PLACEMENT_3D('',#52867,#42301,#42302); -#35065=AXIS2_PLACEMENT_3D('',#52868,#42303,#42304); -#35066=AXIS2_PLACEMENT_3D('',#52876,#42308,#42309); -#35067=AXIS2_PLACEMENT_3D('',#52877,#42310,#42311); -#35068=AXIS2_PLACEMENT_3D('',#52878,#42312,#42313); -#35069=AXIS2_PLACEMENT_3D('',#52886,#42317,#42318); -#35070=AXIS2_PLACEMENT_3D('',#52887,#42319,#42320); -#35071=AXIS2_PLACEMENT_3D('',#52888,#42321,#42322); -#35072=AXIS2_PLACEMENT_3D('',#52896,#42326,#42327); -#35073=AXIS2_PLACEMENT_3D('',#52897,#42328,#42329); -#35074=AXIS2_PLACEMENT_3D('',#52898,#42330,#42331); -#35075=AXIS2_PLACEMENT_3D('',#52906,#42335,#42336); -#35076=AXIS2_PLACEMENT_3D('',#52907,#42337,#42338); -#35077=AXIS2_PLACEMENT_3D('',#52908,#42339,#42340); -#35078=AXIS2_PLACEMENT_3D('',#52916,#42344,#42345); -#35079=AXIS2_PLACEMENT_3D('',#52917,#42346,#42347); -#35080=AXIS2_PLACEMENT_3D('',#52918,#42348,#42349); -#35081=AXIS2_PLACEMENT_3D('',#52926,#42353,#42354); -#35082=AXIS2_PLACEMENT_3D('',#52927,#42355,#42356); -#35083=AXIS2_PLACEMENT_3D('',#52928,#42357,#42358); -#35084=AXIS2_PLACEMENT_3D('',#52936,#42362,#42363); -#35085=AXIS2_PLACEMENT_3D('',#52937,#42364,#42365); -#35086=AXIS2_PLACEMENT_3D('',#52938,#42366,#42367); -#35087=AXIS2_PLACEMENT_3D('',#52946,#42371,#42372); -#35088=AXIS2_PLACEMENT_3D('',#52947,#42373,#42374); -#35089=AXIS2_PLACEMENT_3D('',#52948,#42375,#42376); -#35090=AXIS2_PLACEMENT_3D('',#52956,#42380,#42381); -#35091=AXIS2_PLACEMENT_3D('',#52957,#42382,#42383); -#35092=AXIS2_PLACEMENT_3D('',#52958,#42384,#42385); -#35093=AXIS2_PLACEMENT_3D('',#52966,#42389,#42390); -#35094=AXIS2_PLACEMENT_3D('',#52967,#42391,#42392); -#35095=AXIS2_PLACEMENT_3D('',#52968,#42393,#42394); -#35096=AXIS2_PLACEMENT_3D('',#52976,#42398,#42399); -#35097=AXIS2_PLACEMENT_3D('',#52977,#42400,#42401); -#35098=AXIS2_PLACEMENT_3D('',#52978,#42402,#42403); -#35099=AXIS2_PLACEMENT_3D('',#52986,#42407,#42408); -#35100=AXIS2_PLACEMENT_3D('',#52987,#42409,#42410); -#35101=AXIS2_PLACEMENT_3D('',#52988,#42411,#42412); -#35102=AXIS2_PLACEMENT_3D('',#52996,#42416,#42417); -#35103=AXIS2_PLACEMENT_3D('',#52997,#42418,#42419); -#35104=AXIS2_PLACEMENT_3D('',#52998,#42420,#42421); -#35105=AXIS2_PLACEMENT_3D('',#53006,#42425,#42426); -#35106=AXIS2_PLACEMENT_3D('',#53007,#42427,#42428); -#35107=AXIS2_PLACEMENT_3D('',#53008,#42429,#42430); -#35108=AXIS2_PLACEMENT_3D('',#53016,#42434,#42435); -#35109=AXIS2_PLACEMENT_3D('',#53017,#42436,#42437); -#35110=AXIS2_PLACEMENT_3D('',#53018,#42438,#42439); -#35111=AXIS2_PLACEMENT_3D('',#53026,#42443,#42444); -#35112=AXIS2_PLACEMENT_3D('',#53027,#42445,#42446); -#35113=AXIS2_PLACEMENT_3D('',#53028,#42447,#42448); -#35114=AXIS2_PLACEMENT_3D('',#53036,#42452,#42453); -#35115=AXIS2_PLACEMENT_3D('',#53037,#42454,#42455); -#35116=AXIS2_PLACEMENT_3D('',#53038,#42456,#42457); -#35117=AXIS2_PLACEMENT_3D('',#53046,#42461,#42462); -#35118=AXIS2_PLACEMENT_3D('',#53047,#42463,#42464); -#35119=AXIS2_PLACEMENT_3D('',#53048,#42465,#42466); -#35120=AXIS2_PLACEMENT_3D('',#53059,#42467,#42468); -#35121=AXIS2_PLACEMENT_3D('',#53060,#42469,#42470); -#35122=AXIS2_PLACEMENT_3D('',#53061,#42471,#42472); -#35123=AXIS2_PLACEMENT_3D('',#53072,#42473,#42474); -#35124=AXIS2_PLACEMENT_3D('',#53073,#42475,#42476); -#35125=AXIS2_PLACEMENT_3D('',#53074,#42477,#42478); -#35126=AXIS2_PLACEMENT_3D('',#53085,#42479,#42480); -#35127=AXIS2_PLACEMENT_3D('',#53086,#42481,#42482); -#35128=AXIS2_PLACEMENT_3D('',#53087,#42483,#42484); -#35129=AXIS2_PLACEMENT_3D('',#53098,#42485,#42486); -#35130=AXIS2_PLACEMENT_3D('',#53099,#42487,#42488); -#35131=AXIS2_PLACEMENT_3D('',#53100,#42489,#42490); -#35132=AXIS2_PLACEMENT_3D('',#53111,#42491,#42492); -#35133=AXIS2_PLACEMENT_3D('',#53112,#42493,#42494); -#35134=AXIS2_PLACEMENT_3D('',#53113,#42495,#42496); -#35135=AXIS2_PLACEMENT_3D('',#53124,#42497,#42498); -#35136=AXIS2_PLACEMENT_3D('',#53125,#42499,#42500); -#35137=AXIS2_PLACEMENT_3D('',#53126,#42501,#42502); -#35138=AXIS2_PLACEMENT_3D('',#53137,#42503,#42504); -#35139=AXIS2_PLACEMENT_3D('',#53138,#42505,#42506); -#35140=AXIS2_PLACEMENT_3D('',#53139,#42507,#42508); -#35141=AXIS2_PLACEMENT_3D('',#53150,#42509,#42510); -#35142=AXIS2_PLACEMENT_3D('',#53151,#42511,#42512); -#35143=AXIS2_PLACEMENT_3D('',#53152,#42513,#42514); -#35144=AXIS2_PLACEMENT_3D('',#53163,#42515,#42516); -#35145=AXIS2_PLACEMENT_3D('',#53164,#42517,#42518); -#35146=AXIS2_PLACEMENT_3D('',#53165,#42519,#42520); -#35147=AXIS2_PLACEMENT_3D('',#53176,#42521,#42522); -#35148=AXIS2_PLACEMENT_3D('',#53177,#42523,#42524); -#35149=AXIS2_PLACEMENT_3D('',#53178,#42525,#42526); -#35150=AXIS2_PLACEMENT_3D('',#53189,#42527,#42528); -#35151=AXIS2_PLACEMENT_3D('',#53190,#42529,#42530); -#35152=AXIS2_PLACEMENT_3D('',#53191,#42531,#42532); -#35153=AXIS2_PLACEMENT_3D('',#53202,#42533,#42534); -#35154=AXIS2_PLACEMENT_3D('',#53203,#42535,#42536); -#35155=AXIS2_PLACEMENT_3D('',#53204,#42537,#42538); -#35156=AXIS2_PLACEMENT_3D('',#53215,#42539,#42540); -#35157=AXIS2_PLACEMENT_3D('',#53216,#42541,#42542); -#35158=AXIS2_PLACEMENT_3D('',#53217,#42543,#42544); -#35159=AXIS2_PLACEMENT_3D('',#53228,#42545,#42546); -#35160=AXIS2_PLACEMENT_3D('',#53229,#42547,#42548); -#35161=AXIS2_PLACEMENT_3D('',#53230,#42549,#42550); -#35162=AXIS2_PLACEMENT_3D('',#53241,#42551,#42552); -#35163=AXIS2_PLACEMENT_3D('',#53242,#42553,#42554); -#35164=AXIS2_PLACEMENT_3D('',#53243,#42555,#42556); -#35165=AXIS2_PLACEMENT_3D('',#53254,#42557,#42558); -#35166=AXIS2_PLACEMENT_3D('',#53255,#42559,#42560); -#35167=AXIS2_PLACEMENT_3D('',#53256,#42561,#42562); -#35168=AXIS2_PLACEMENT_3D('',#53267,#42563,#42564); -#35169=AXIS2_PLACEMENT_3D('',#53268,#42565,#42566); -#35170=AXIS2_PLACEMENT_3D('',#53269,#42567,#42568); -#35171=AXIS2_PLACEMENT_3D('',#53280,#42569,#42570); -#35172=AXIS2_PLACEMENT_3D('',#53281,#42571,#42572); -#35173=AXIS2_PLACEMENT_3D('',#53282,#42573,#42574); -#35174=AXIS2_PLACEMENT_3D('',#53293,#42575,#42576); -#35175=AXIS2_PLACEMENT_3D('',#53294,#42577,#42578); -#35176=AXIS2_PLACEMENT_3D('',#53295,#42579,#42580); -#35177=AXIS2_PLACEMENT_3D('',#53307,#42581,#42582); -#35178=AXIS2_PLACEMENT_3D('',#53310,#42584,#42585); -#35179=AXIS2_PLACEMENT_3D('',#53316,#42586,#42587); -#35180=AXIS2_PLACEMENT_3D('',#53320,#42589,#42590); -#35181=AXIS2_PLACEMENT_3D('',#53326,#42591,#42592); -#35182=AXIS2_PLACEMENT_3D('',#53332,#42593,#42594); -#35183=AXIS2_PLACEMENT_3D('',#53336,#42596,#42597); -#35184=AXIS2_PLACEMENT_3D('',#53342,#42598,#42599); -#35185=AXIS2_PLACEMENT_3D('',#53348,#42600,#42601); -#35186=AXIS2_PLACEMENT_3D('',#53352,#42603,#42604); -#35187=AXIS2_PLACEMENT_3D('',#53358,#42605,#42606); -#35188=AXIS2_PLACEMENT_3D('',#53364,#42607,#42608); -#35189=AXIS2_PLACEMENT_3D('',#53368,#42610,#42611); -#35190=AXIS2_PLACEMENT_3D('',#53374,#42612,#42613); -#35191=AXIS2_PLACEMENT_3D('',#53380,#42614,#42615); -#35192=AXIS2_PLACEMENT_3D('',#53384,#42617,#42618); -#35193=AXIS2_PLACEMENT_3D('',#53390,#42619,#42620); -#35194=AXIS2_PLACEMENT_3D('',#53396,#42621,#42622); -#35195=AXIS2_PLACEMENT_3D('',#53400,#42624,#42625); -#35196=AXIS2_PLACEMENT_3D('',#53406,#42626,#42627); -#35197=AXIS2_PLACEMENT_3D('',#53412,#42628,#42629); -#35198=AXIS2_PLACEMENT_3D('',#53416,#42631,#42632); -#35199=AXIS2_PLACEMENT_3D('',#53422,#42633,#42634); -#35200=AXIS2_PLACEMENT_3D('',#53428,#42635,#42636); -#35201=AXIS2_PLACEMENT_3D('',#53432,#42638,#42639); -#35202=AXIS2_PLACEMENT_3D('',#53438,#42640,#42641); -#35203=AXIS2_PLACEMENT_3D('',#53444,#42642,#42643); -#35204=AXIS2_PLACEMENT_3D('',#53448,#42645,#42646); -#35205=AXIS2_PLACEMENT_3D('',#53454,#42647,#42648); -#35206=AXIS2_PLACEMENT_3D('',#53460,#42649,#42650); -#35207=AXIS2_PLACEMENT_3D('',#53464,#42652,#42653); -#35208=AXIS2_PLACEMENT_3D('',#53470,#42654,#42655); -#35209=AXIS2_PLACEMENT_3D('',#53476,#42656,#42657); -#35210=AXIS2_PLACEMENT_3D('',#53480,#42659,#42660); -#35211=AXIS2_PLACEMENT_3D('',#53486,#42661,#42662); -#35212=AXIS2_PLACEMENT_3D('',#53492,#42663,#42664); -#35213=AXIS2_PLACEMENT_3D('',#53496,#42666,#42667); -#35214=AXIS2_PLACEMENT_3D('',#53502,#42668,#42669); -#35215=AXIS2_PLACEMENT_3D('',#53508,#42670,#42671); -#35216=AXIS2_PLACEMENT_3D('',#53512,#42673,#42674); -#35217=AXIS2_PLACEMENT_3D('',#53518,#42675,#42676); -#35218=AXIS2_PLACEMENT_3D('',#53524,#42677,#42678); -#35219=AXIS2_PLACEMENT_3D('',#53528,#42680,#42681); -#35220=AXIS2_PLACEMENT_3D('',#53534,#42682,#42683); -#35221=AXIS2_PLACEMENT_3D('',#53540,#42684,#42685); -#35222=AXIS2_PLACEMENT_3D('',#53544,#42687,#42688); -#35223=AXIS2_PLACEMENT_3D('',#53550,#42689,#42690); -#35224=AXIS2_PLACEMENT_3D('',#53556,#42691,#42692); -#35225=AXIS2_PLACEMENT_3D('',#53560,#42694,#42695); -#35226=AXIS2_PLACEMENT_3D('',#53566,#42696,#42697); -#35227=AXIS2_PLACEMENT_3D('',#53572,#42698,#42699); -#35228=AXIS2_PLACEMENT_3D('',#53576,#42701,#42702); -#35229=AXIS2_PLACEMENT_3D('',#53582,#42703,#42704); -#35230=AXIS2_PLACEMENT_3D('',#53588,#42705,#42706); -#35231=AXIS2_PLACEMENT_3D('',#53592,#42708,#42709); -#35232=AXIS2_PLACEMENT_3D('',#53598,#42710,#42711); -#35233=AXIS2_PLACEMENT_3D('',#53604,#42712,#42713); -#35234=AXIS2_PLACEMENT_3D('',#53608,#42715,#42716); -#35235=AXIS2_PLACEMENT_3D('',#53614,#42717,#42718); -#35236=AXIS2_PLACEMENT_3D('',#53620,#42719,#42720); -#35237=AXIS2_PLACEMENT_3D('',#53624,#42722,#42723); -#35238=AXIS2_PLACEMENT_3D('',#53630,#42724,#42725); -#35239=AXIS2_PLACEMENT_3D('',#53633,#42727,#42728); -#35240=AXIS2_PLACEMENT_3D('',#53637,#42730,#42731); -#35241=AXIS2_PLACEMENT_3D('',#53640,#42733,#42734); -#35242=AXIS2_PLACEMENT_3D('',#53643,#42736,#42737); -#35243=AXIS2_PLACEMENT_3D('',#53647,#42739,#42740); -#35244=AXIS2_PLACEMENT_3D('',#53650,#42742,#42743); -#35245=AXIS2_PLACEMENT_3D('',#53653,#42745,#42746); -#35246=AXIS2_PLACEMENT_3D('',#53657,#42748,#42749); -#35247=AXIS2_PLACEMENT_3D('',#53660,#42751,#42752); -#35248=AXIS2_PLACEMENT_3D('',#53663,#42754,#42755); -#35249=AXIS2_PLACEMENT_3D('',#53667,#42757,#42758); -#35250=AXIS2_PLACEMENT_3D('',#53670,#42760,#42761); -#35251=AXIS2_PLACEMENT_3D('',#53673,#42763,#42764); -#35252=AXIS2_PLACEMENT_3D('',#53677,#42766,#42767); -#35253=AXIS2_PLACEMENT_3D('',#53680,#42769,#42770); -#35254=AXIS2_PLACEMENT_3D('',#53683,#42772,#42773); -#35255=AXIS2_PLACEMENT_3D('',#53687,#42775,#42776); -#35256=AXIS2_PLACEMENT_3D('',#53690,#42778,#42779); -#35257=AXIS2_PLACEMENT_3D('',#53693,#42781,#42782); -#35258=AXIS2_PLACEMENT_3D('',#53697,#42784,#42785); -#35259=AXIS2_PLACEMENT_3D('',#53700,#42787,#42788); -#35260=AXIS2_PLACEMENT_3D('',#53703,#42790,#42791); -#35261=AXIS2_PLACEMENT_3D('',#53707,#42793,#42794); -#35262=AXIS2_PLACEMENT_3D('',#53710,#42796,#42797); -#35263=AXIS2_PLACEMENT_3D('',#53713,#42799,#42800); -#35264=AXIS2_PLACEMENT_3D('',#53717,#42802,#42803); -#35265=AXIS2_PLACEMENT_3D('',#53720,#42805,#42806); -#35266=AXIS2_PLACEMENT_3D('',#53723,#42808,#42809); -#35267=AXIS2_PLACEMENT_3D('',#53727,#42811,#42812); -#35268=AXIS2_PLACEMENT_3D('',#53730,#42814,#42815); -#35269=AXIS2_PLACEMENT_3D('',#53733,#42817,#42818); -#35270=AXIS2_PLACEMENT_3D('',#53737,#42820,#42821); -#35271=AXIS2_PLACEMENT_3D('',#53740,#42823,#42824); -#35272=AXIS2_PLACEMENT_3D('',#53743,#42826,#42827); -#35273=AXIS2_PLACEMENT_3D('',#53747,#42829,#42830); -#35274=AXIS2_PLACEMENT_3D('',#53750,#42832,#42833); -#35275=AXIS2_PLACEMENT_3D('',#53753,#42835,#42836); -#35276=AXIS2_PLACEMENT_3D('',#53757,#42838,#42839); -#35277=AXIS2_PLACEMENT_3D('',#53760,#42841,#42842); -#35278=AXIS2_PLACEMENT_3D('',#53763,#42844,#42845); -#35279=AXIS2_PLACEMENT_3D('',#53767,#42847,#42848); -#35280=AXIS2_PLACEMENT_3D('',#53770,#42850,#42851); -#35281=AXIS2_PLACEMENT_3D('',#53773,#42853,#42854); -#35282=AXIS2_PLACEMENT_3D('',#53777,#42856,#42857); -#35283=AXIS2_PLACEMENT_3D('',#53780,#42859,#42860); -#35284=AXIS2_PLACEMENT_3D('',#53783,#42862,#42863); -#35285=AXIS2_PLACEMENT_3D('',#53787,#42865,#42866); -#35286=AXIS2_PLACEMENT_3D('',#53790,#42868,#42869); -#35287=AXIS2_PLACEMENT_3D('',#53793,#42871,#42872); -#35288=AXIS2_PLACEMENT_3D('',#53797,#42874,#42875); -#35289=AXIS2_PLACEMENT_3D('',#53800,#42877,#42878); -#35290=AXIS2_PLACEMENT_3D('',#53803,#42880,#42881); -#35291=AXIS2_PLACEMENT_3D('',#53807,#42883,#42884); -#35292=AXIS2_PLACEMENT_3D('',#53810,#42886,#42887); -#35293=AXIS2_PLACEMENT_3D('',#53813,#42889,#42890); -#35294=AXIS2_PLACEMENT_3D('',#53817,#42892,#42893); -#35295=AXIS2_PLACEMENT_3D('',#53820,#42895,#42896); -#35296=AXIS2_PLACEMENT_3D('',#53831,#42897,#42898); -#35297=AXIS2_PLACEMENT_3D('',#53842,#42899,#42900); -#35298=AXIS2_PLACEMENT_3D('',#53843,#42901,#42902); -#35299=AXIS2_PLACEMENT_3D('',#53854,#42903,#42904); -#35300=AXIS2_PLACEMENT_3D('',#53865,#42905,#42906); -#35301=AXIS2_PLACEMENT_3D('',#53866,#42907,#42908); -#35302=AXIS2_PLACEMENT_3D('',#53877,#42909,#42910); -#35303=AXIS2_PLACEMENT_3D('',#53888,#42911,#42912); -#35304=AXIS2_PLACEMENT_3D('',#53889,#42913,#42914); -#35305=AXIS2_PLACEMENT_3D('',#53900,#42915,#42916); -#35306=AXIS2_PLACEMENT_3D('',#53911,#42917,#42918); -#35307=AXIS2_PLACEMENT_3D('',#53912,#42919,#42920); -#35308=AXIS2_PLACEMENT_3D('',#53923,#42921,#42922); -#35309=AXIS2_PLACEMENT_3D('',#53934,#42923,#42924); -#35310=AXIS2_PLACEMENT_3D('',#53935,#42925,#42926); -#35311=AXIS2_PLACEMENT_3D('',#53946,#42927,#42928); -#35312=AXIS2_PLACEMENT_3D('',#53957,#42929,#42930); -#35313=AXIS2_PLACEMENT_3D('',#53958,#42931,#42932); -#35314=AXIS2_PLACEMENT_3D('',#53969,#42933,#42934); -#35315=AXIS2_PLACEMENT_3D('',#53980,#42935,#42936); -#35316=AXIS2_PLACEMENT_3D('',#53981,#42937,#42938); -#35317=AXIS2_PLACEMENT_3D('',#53992,#42939,#42940); -#35318=AXIS2_PLACEMENT_3D('',#54003,#42941,#42942); -#35319=AXIS2_PLACEMENT_3D('',#54004,#42943,#42944); -#35320=AXIS2_PLACEMENT_3D('',#54015,#42945,#42946); -#35321=AXIS2_PLACEMENT_3D('',#54026,#42947,#42948); -#35322=AXIS2_PLACEMENT_3D('',#54027,#42949,#42950); -#35323=AXIS2_PLACEMENT_3D('',#54038,#42951,#42952); -#35324=AXIS2_PLACEMENT_3D('',#54049,#42953,#42954); -#35325=AXIS2_PLACEMENT_3D('',#54050,#42955,#42956); -#35326=AXIS2_PLACEMENT_3D('',#54061,#42957,#42958); -#35327=AXIS2_PLACEMENT_3D('',#54072,#42959,#42960); -#35328=AXIS2_PLACEMENT_3D('',#54073,#42961,#42962); -#35329=AXIS2_PLACEMENT_3D('',#54084,#42963,#42964); -#35330=AXIS2_PLACEMENT_3D('',#54095,#42965,#42966); -#35331=AXIS2_PLACEMENT_3D('',#54096,#42967,#42968); -#35332=AXIS2_PLACEMENT_3D('',#54107,#42969,#42970); -#35333=AXIS2_PLACEMENT_3D('',#54118,#42971,#42972); -#35334=AXIS2_PLACEMENT_3D('',#54119,#42973,#42974); -#35335=AXIS2_PLACEMENT_3D('',#54130,#42975,#42976); -#35336=AXIS2_PLACEMENT_3D('',#54141,#42977,#42978); -#35337=AXIS2_PLACEMENT_3D('',#54142,#42979,#42980); -#35338=AXIS2_PLACEMENT_3D('',#54153,#42981,#42982); -#35339=AXIS2_PLACEMENT_3D('',#54164,#42983,#42984); -#35340=AXIS2_PLACEMENT_3D('',#54165,#42985,#42986); -#35341=AXIS2_PLACEMENT_3D('',#54176,#42987,#42988); -#35342=AXIS2_PLACEMENT_3D('',#54187,#42989,#42990); -#35343=AXIS2_PLACEMENT_3D('',#54188,#42991,#42992); -#35344=AXIS2_PLACEMENT_3D('',#54199,#42993,#42994); -#35345=AXIS2_PLACEMENT_3D('',#54210,#42995,#42996); -#35346=AXIS2_PLACEMENT_3D('',#54211,#42997,#42998); -#35347=AXIS2_PLACEMENT_3D('',#54222,#42999,#43000); -#35348=AXIS2_PLACEMENT_3D('',#54233,#43001,#43002); -#35349=AXIS2_PLACEMENT_3D('',#54234,#43003,#43004); -#35350=AXIS2_PLACEMENT_3D('',#54245,#43005,#43006); -#35351=AXIS2_PLACEMENT_3D('',#54256,#43007,#43008); -#35352=AXIS2_PLACEMENT_3D('',#54257,#43009,#43010); -#35353=AXIS2_PLACEMENT_3D('',#54268,#43011,#43012); -#35354=AXIS2_PLACEMENT_3D('',#54282,#43014,#43015); -#35355=AXIS2_PLACEMENT_3D('',#54283,#43016,#43017); -#35356=AXIS2_PLACEMENT_3D('',#54286,#43020,#43021); -#35357=AXIS2_PLACEMENT_3D('',#54289,#43024,#43025); -#35358=AXIS2_PLACEMENT_3D('',#54290,#43026,#43027); -#35359=AXIS2_PLACEMENT_3D('',#54295,#43030,#43031); -#35360=AXIS2_PLACEMENT_3D('',#54296,#43032,#43033); -#35361=AXIS2_PLACEMENT_3D('',#54299,#43035,#43036); -#35362=AXIS2_PLACEMENT_3D('',#54300,#43037,#43038); -#35363=AXIS2_PLACEMENT_3D('',#54303,#43040,#43041); -#35364=AXIS2_PLACEMENT_3D('',#54305,#43043,#43044); -#35365=AXIS2_PLACEMENT_3D('',#54307,#43046,#43047); -#35366=AXIS2_PLACEMENT_3D('',#54310,#43050,#43051); -#35367=AXIS2_PLACEMENT_3D('',#54312,#43053,#43054); -#35368=AXIS2_PLACEMENT_3D('',#54314,#43056,#43057); -#35369=AXIS2_PLACEMENT_3D('',#54316,#43059,#43060); -#35370=AXIS2_PLACEMENT_3D('',#54317,#43061,#43062); -#35371=AXIS2_PLACEMENT_3D('',#54318,#43063,#43064); -#35372=AXIS2_PLACEMENT_3D('',#54321,#43067,#43068); -#35373=AXIS2_PLACEMENT_3D('',#54323,#43070,#43071); -#35374=AXIS2_PLACEMENT_3D('',#54325,#43073,#43074); -#35375=AXIS2_PLACEMENT_3D('',#54327,#43076,#43077); -#35376=AXIS2_PLACEMENT_3D('',#54328,#43078,#43079); -#35377=AXIS2_PLACEMENT_3D('',#54331,#43082,#43083); -#35378=AXIS2_PLACEMENT_3D('',#54332,#43084,#43085); -#35379=AXIS2_PLACEMENT_3D('',#54333,#43086,#43087); -#35380=AXIS2_PLACEMENT_3D('',#54335,#43089,#43090); -#35381=AXIS2_PLACEMENT_3D('',#54337,#43092,#43093); -#35382=AXIS2_PLACEMENT_3D('',#54339,#43095,#43096); -#35383=AXIS2_PLACEMENT_3D('',#54341,#43098,#43099); -#35384=AXIS2_PLACEMENT_3D('',#54343,#43101,#43102); -#35385=AXIS2_PLACEMENT_3D('',#54345,#43104,#43105); -#35386=AXIS2_PLACEMENT_3D('',#54347,#43107,#43108); -#35387=AXIS2_PLACEMENT_3D('',#54348,#43109,#43110); -#35388=AXIS2_PLACEMENT_3D('',#54350,#43112,#43113); -#35389=AXIS2_PLACEMENT_3D('',#54352,#43115,#43116); -#35390=AXIS2_PLACEMENT_3D('',#54354,#43118,#43119); -#35391=AXIS2_PLACEMENT_3D('',#54356,#43121,#43122); -#35392=AXIS2_PLACEMENT_3D('',#54358,#43124,#43125); -#35393=AXIS2_PLACEMENT_3D('',#54360,#43127,#43128); -#35394=AXIS2_PLACEMENT_3D('',#54362,#43130,#43131); -#35395=AXIS2_PLACEMENT_3D('',#54363,#43132,#43133); -#35396=AXIS2_PLACEMENT_3D('',#54365,#43135,#43136); -#35397=AXIS2_PLACEMENT_3D('',#54367,#43138,#43139); -#35398=AXIS2_PLACEMENT_3D('',#54370,#43142,#43143); -#35399=AXIS2_PLACEMENT_3D('',#54372,#43145,#43146); -#35400=AXIS2_PLACEMENT_3D('',#54374,#43148,#43149); -#35401=AXIS2_PLACEMENT_3D('',#54376,#43151,#43152); -#35402=AXIS2_PLACEMENT_3D('',#54378,#43154,#43155); -#35403=AXIS2_PLACEMENT_3D('',#54379,#43156,#43157); -#35404=AXIS2_PLACEMENT_3D('',#54381,#43159,#43160); -#35405=AXIS2_PLACEMENT_3D('',#54383,#43162,#43163); -#35406=AXIS2_PLACEMENT_3D('',#54385,#43165,#43166); -#35407=AXIS2_PLACEMENT_3D('',#54387,#43168,#43169); -#35408=AXIS2_PLACEMENT_3D('',#54389,#43171,#43172); -#35409=AXIS2_PLACEMENT_3D('',#54391,#43174,#43175); -#35410=AXIS2_PLACEMENT_3D('',#54392,#43176,#43177); -#35411=AXIS2_PLACEMENT_3D('',#54394,#43179,#43180); -#35412=AXIS2_PLACEMENT_3D('',#54396,#43182,#43183); -#35413=AXIS2_PLACEMENT_3D('',#54397,#43184,#43185); -#35414=AXIS2_PLACEMENT_3D('',#54399,#43187,#43188); -#35415=AXIS2_PLACEMENT_3D('',#54401,#43190,#43191); -#35416=AXIS2_PLACEMENT_3D('',#54404,#43194,#43195); -#35417=AXIS2_PLACEMENT_3D('',#54406,#43197,#43198); -#35418=AXIS2_PLACEMENT_3D('',#54408,#43200,#43201); -#35419=AXIS2_PLACEMENT_3D('',#54410,#43203,#43204); -#35420=AXIS2_PLACEMENT_3D('',#54412,#43206,#43207); -#35421=AXIS2_PLACEMENT_3D('',#54413,#43208,#43209); -#35422=AXIS2_PLACEMENT_3D('',#54415,#43211,#43212); -#35423=AXIS2_PLACEMENT_3D('',#54417,#43214,#43215); -#35424=AXIS2_PLACEMENT_3D('',#54419,#43217,#43218); -#35425=AXIS2_PLACEMENT_3D('',#54421,#43220,#43221); -#35426=AXIS2_PLACEMENT_3D('',#54423,#43223,#43224); -#35427=AXIS2_PLACEMENT_3D('',#54425,#43226,#43227); -#35428=AXIS2_PLACEMENT_3D('',#54426,#43228,#43229); -#35429=AXIS2_PLACEMENT_3D('',#54428,#43231,#43232); -#35430=AXIS2_PLACEMENT_3D('',#54430,#43234,#43235); -#35431=AXIS2_PLACEMENT_3D('',#54431,#43236,#43237); -#35432=AXIS2_PLACEMENT_3D('',#54433,#43239,#43240); -#35433=AXIS2_PLACEMENT_3D('',#54435,#43242,#43243); -#35434=AXIS2_PLACEMENT_3D('',#54438,#43246,#43247); -#35435=AXIS2_PLACEMENT_3D('',#54440,#43249,#43250); -#35436=AXIS2_PLACEMENT_3D('',#54442,#43252,#43253); -#35437=AXIS2_PLACEMENT_3D('',#54444,#43255,#43256); -#35438=AXIS2_PLACEMENT_3D('',#54446,#43258,#43259); -#35439=AXIS2_PLACEMENT_3D('',#54447,#43260,#43261); -#35440=AXIS2_PLACEMENT_3D('',#54449,#43263,#43264); -#35441=AXIS2_PLACEMENT_3D('',#54451,#43266,#43267); -#35442=AXIS2_PLACEMENT_3D('',#54453,#43269,#43270); -#35443=AXIS2_PLACEMENT_3D('',#54455,#43272,#43273); -#35444=AXIS2_PLACEMENT_3D('',#54457,#43275,#43276); -#35445=AXIS2_PLACEMENT_3D('',#54459,#43278,#43279); -#35446=AXIS2_PLACEMENT_3D('',#54460,#43280,#43281); -#35447=AXIS2_PLACEMENT_3D('',#54462,#43283,#43284); -#35448=AXIS2_PLACEMENT_3D('',#54464,#43286,#43287); -#35449=AXIS2_PLACEMENT_3D('',#54465,#43288,#43289); -#35450=AXIS2_PLACEMENT_3D('',#54467,#43291,#43292); -#35451=AXIS2_PLACEMENT_3D('',#54469,#43294,#43295); -#35452=AXIS2_PLACEMENT_3D('',#54472,#43298,#43299); -#35453=AXIS2_PLACEMENT_3D('',#54474,#43301,#43302); -#35454=AXIS2_PLACEMENT_3D('',#54476,#43304,#43305); -#35455=AXIS2_PLACEMENT_3D('',#54478,#43307,#43308); -#35456=AXIS2_PLACEMENT_3D('',#54480,#43310,#43311); -#35457=AXIS2_PLACEMENT_3D('',#54481,#43312,#43313); -#35458=AXIS2_PLACEMENT_3D('',#54483,#43315,#43316); -#35459=AXIS2_PLACEMENT_3D('',#54485,#43318,#43319); -#35460=AXIS2_PLACEMENT_3D('',#54487,#43321,#43322); -#35461=AXIS2_PLACEMENT_3D('',#54489,#43324,#43325); -#35462=AXIS2_PLACEMENT_3D('',#54491,#43327,#43328); -#35463=AXIS2_PLACEMENT_3D('',#54493,#43330,#43331); -#35464=AXIS2_PLACEMENT_3D('',#54494,#43332,#43333); -#35465=AXIS2_PLACEMENT_3D('',#54496,#43335,#43336); -#35466=AXIS2_PLACEMENT_3D('',#54498,#43338,#43339); -#35467=AXIS2_PLACEMENT_3D('',#54499,#43340,#43341); -#35468=AXIS2_PLACEMENT_3D('',#54501,#43343,#43344); -#35469=AXIS2_PLACEMENT_3D('',#54503,#43346,#43347); -#35470=AXIS2_PLACEMENT_3D('',#54506,#43350,#43351); -#35471=AXIS2_PLACEMENT_3D('',#54508,#43353,#43354); -#35472=AXIS2_PLACEMENT_3D('',#54510,#43356,#43357); -#35473=AXIS2_PLACEMENT_3D('',#54512,#43359,#43360); -#35474=AXIS2_PLACEMENT_3D('',#54514,#43362,#43363); -#35475=AXIS2_PLACEMENT_3D('',#54515,#43364,#43365); -#35476=AXIS2_PLACEMENT_3D('',#54517,#43367,#43368); -#35477=AXIS2_PLACEMENT_3D('',#54519,#43370,#43371); -#35478=AXIS2_PLACEMENT_3D('',#54521,#43373,#43374); -#35479=AXIS2_PLACEMENT_3D('',#54523,#43376,#43377); -#35480=AXIS2_PLACEMENT_3D('',#54525,#43379,#43380); -#35481=AXIS2_PLACEMENT_3D('',#54527,#43382,#43383); -#35482=AXIS2_PLACEMENT_3D('',#54528,#43384,#43385); -#35483=AXIS2_PLACEMENT_3D('',#54530,#43387,#43388); -#35484=AXIS2_PLACEMENT_3D('',#54532,#43390,#43391); -#35485=AXIS2_PLACEMENT_3D('',#54533,#43392,#43393); -#35486=AXIS2_PLACEMENT_3D('',#54535,#43395,#43396); -#35487=AXIS2_PLACEMENT_3D('',#54537,#43398,#43399); -#35488=AXIS2_PLACEMENT_3D('',#54540,#43402,#43403); -#35489=AXIS2_PLACEMENT_3D('',#54542,#43405,#43406); -#35490=AXIS2_PLACEMENT_3D('',#54544,#43408,#43409); -#35491=AXIS2_PLACEMENT_3D('',#54546,#43411,#43412); -#35492=AXIS2_PLACEMENT_3D('',#54548,#43414,#43415); -#35493=AXIS2_PLACEMENT_3D('',#54549,#43416,#43417); -#35494=AXIS2_PLACEMENT_3D('',#54551,#43419,#43420); -#35495=AXIS2_PLACEMENT_3D('',#54553,#43422,#43423); -#35496=AXIS2_PLACEMENT_3D('',#54555,#43425,#43426); -#35497=AXIS2_PLACEMENT_3D('',#54557,#43428,#43429); -#35498=AXIS2_PLACEMENT_3D('',#54559,#43431,#43432); -#35499=AXIS2_PLACEMENT_3D('',#54561,#43434,#43435); -#35500=AXIS2_PLACEMENT_3D('',#54562,#43436,#43437); -#35501=AXIS2_PLACEMENT_3D('',#54564,#43439,#43440); -#35502=AXIS2_PLACEMENT_3D('',#54566,#43442,#43443); -#35503=AXIS2_PLACEMENT_3D('',#54567,#43444,#43445); -#35504=AXIS2_PLACEMENT_3D('',#54569,#43447,#43448); -#35505=AXIS2_PLACEMENT_3D('',#54571,#43450,#43451); -#35506=AXIS2_PLACEMENT_3D('',#54574,#43454,#43455); -#35507=AXIS2_PLACEMENT_3D('',#54576,#43457,#43458); -#35508=AXIS2_PLACEMENT_3D('',#54578,#43460,#43461); -#35509=AXIS2_PLACEMENT_3D('',#54580,#43463,#43464); -#35510=AXIS2_PLACEMENT_3D('',#54582,#43466,#43467); -#35511=AXIS2_PLACEMENT_3D('',#54583,#43468,#43469); -#35512=AXIS2_PLACEMENT_3D('',#54585,#43471,#43472); -#35513=AXIS2_PLACEMENT_3D('',#54587,#43474,#43475); -#35514=AXIS2_PLACEMENT_3D('',#54589,#43477,#43478); -#35515=AXIS2_PLACEMENT_3D('',#54591,#43480,#43481); -#35516=AXIS2_PLACEMENT_3D('',#54593,#43483,#43484); -#35517=AXIS2_PLACEMENT_3D('',#54595,#43486,#43487); -#35518=AXIS2_PLACEMENT_3D('',#54596,#43488,#43489); -#35519=AXIS2_PLACEMENT_3D('',#54598,#43491,#43492); -#35520=AXIS2_PLACEMENT_3D('',#54600,#43494,#43495); -#35521=AXIS2_PLACEMENT_3D('',#54601,#43496,#43497); -#35522=AXIS2_PLACEMENT_3D('',#54603,#43499,#43500); -#35523=AXIS2_PLACEMENT_3D('',#54605,#43502,#43503); -#35524=AXIS2_PLACEMENT_3D('',#54608,#43506,#43507); -#35525=AXIS2_PLACEMENT_3D('',#54610,#43509,#43510); -#35526=AXIS2_PLACEMENT_3D('',#54612,#43512,#43513); -#35527=AXIS2_PLACEMENT_3D('',#54614,#43515,#43516); -#35528=AXIS2_PLACEMENT_3D('',#54616,#43518,#43519); -#35529=AXIS2_PLACEMENT_3D('',#54617,#43520,#43521); -#35530=AXIS2_PLACEMENT_3D('',#54619,#43523,#43524); -#35531=AXIS2_PLACEMENT_3D('',#54621,#43526,#43527); -#35532=AXIS2_PLACEMENT_3D('',#54623,#43529,#43530); -#35533=AXIS2_PLACEMENT_3D('',#54625,#43532,#43533); -#35534=AXIS2_PLACEMENT_3D('',#54627,#43535,#43536); -#35535=AXIS2_PLACEMENT_3D('',#54629,#43538,#43539); -#35536=AXIS2_PLACEMENT_3D('',#54630,#43540,#43541); -#35537=AXIS2_PLACEMENT_3D('',#54632,#43543,#43544); -#35538=AXIS2_PLACEMENT_3D('',#54634,#43546,#43547); -#35539=AXIS2_PLACEMENT_3D('',#54635,#43548,#43549); -#35540=AXIS2_PLACEMENT_3D('',#54637,#43551,#43552); -#35541=AXIS2_PLACEMENT_3D('',#54639,#43554,#43555); -#35542=AXIS2_PLACEMENT_3D('',#54642,#43558,#43559); -#35543=AXIS2_PLACEMENT_3D('',#54644,#43561,#43562); -#35544=AXIS2_PLACEMENT_3D('',#54646,#43564,#43565); -#35545=AXIS2_PLACEMENT_3D('',#54648,#43567,#43568); -#35546=AXIS2_PLACEMENT_3D('',#54650,#43570,#43571); -#35547=AXIS2_PLACEMENT_3D('',#54651,#43572,#43573); -#35548=AXIS2_PLACEMENT_3D('',#54653,#43575,#43576); -#35549=AXIS2_PLACEMENT_3D('',#54655,#43578,#43579); -#35550=AXIS2_PLACEMENT_3D('',#54657,#43581,#43582); -#35551=AXIS2_PLACEMENT_3D('',#54659,#43584,#43585); -#35552=AXIS2_PLACEMENT_3D('',#54661,#43587,#43588); -#35553=AXIS2_PLACEMENT_3D('',#54663,#43590,#43591); -#35554=AXIS2_PLACEMENT_3D('',#54664,#43592,#43593); -#35555=AXIS2_PLACEMENT_3D('',#54666,#43595,#43596); -#35556=AXIS2_PLACEMENT_3D('',#54668,#43598,#43599); -#35557=AXIS2_PLACEMENT_3D('',#54669,#43600,#43601); -#35558=AXIS2_PLACEMENT_3D('',#54671,#43603,#43604); -#35559=AXIS2_PLACEMENT_3D('',#54673,#43606,#43607); -#35560=AXIS2_PLACEMENT_3D('',#54676,#43610,#43611); -#35561=AXIS2_PLACEMENT_3D('',#54678,#43613,#43614); -#35562=AXIS2_PLACEMENT_3D('',#54680,#43616,#43617); -#35563=AXIS2_PLACEMENT_3D('',#54682,#43619,#43620); -#35564=AXIS2_PLACEMENT_3D('',#54684,#43622,#43623); -#35565=AXIS2_PLACEMENT_3D('',#54685,#43624,#43625); -#35566=AXIS2_PLACEMENT_3D('',#54687,#43627,#43628); -#35567=AXIS2_PLACEMENT_3D('',#54689,#43630,#43631); -#35568=AXIS2_PLACEMENT_3D('',#54691,#43633,#43634); -#35569=AXIS2_PLACEMENT_3D('',#54693,#43636,#43637); -#35570=AXIS2_PLACEMENT_3D('',#54695,#43639,#43640); -#35571=AXIS2_PLACEMENT_3D('',#54697,#43642,#43643); -#35572=AXIS2_PLACEMENT_3D('',#54698,#43644,#43645); -#35573=AXIS2_PLACEMENT_3D('',#54700,#43647,#43648); -#35574=AXIS2_PLACEMENT_3D('',#54702,#43650,#43651); -#35575=AXIS2_PLACEMENT_3D('',#54703,#43652,#43653); -#35576=AXIS2_PLACEMENT_3D('',#54705,#43655,#43656); -#35577=AXIS2_PLACEMENT_3D('',#54707,#43658,#43659); -#35578=AXIS2_PLACEMENT_3D('',#54710,#43662,#43663); -#35579=AXIS2_PLACEMENT_3D('',#54712,#43665,#43666); -#35580=AXIS2_PLACEMENT_3D('',#54714,#43668,#43669); -#35581=AXIS2_PLACEMENT_3D('',#54716,#43671,#43672); -#35582=AXIS2_PLACEMENT_3D('',#54718,#43674,#43675); -#35583=AXIS2_PLACEMENT_3D('',#54719,#43676,#43677); -#35584=AXIS2_PLACEMENT_3D('',#54721,#43679,#43680); -#35585=AXIS2_PLACEMENT_3D('',#54723,#43682,#43683); -#35586=AXIS2_PLACEMENT_3D('',#54725,#43685,#43686); -#35587=AXIS2_PLACEMENT_3D('',#54727,#43688,#43689); -#35588=AXIS2_PLACEMENT_3D('',#54729,#43691,#43692); -#35589=AXIS2_PLACEMENT_3D('',#54731,#43694,#43695); -#35590=AXIS2_PLACEMENT_3D('',#54732,#43696,#43697); -#35591=AXIS2_PLACEMENT_3D('',#54734,#43699,#43700); -#35592=AXIS2_PLACEMENT_3D('',#54736,#43702,#43703); -#35593=AXIS2_PLACEMENT_3D('',#54737,#43704,#43705); -#35594=AXIS2_PLACEMENT_3D('',#54739,#43707,#43708); -#35595=AXIS2_PLACEMENT_3D('',#54741,#43710,#43711); -#35596=AXIS2_PLACEMENT_3D('',#54744,#43714,#43715); -#35597=AXIS2_PLACEMENT_3D('',#54746,#43717,#43718); -#35598=AXIS2_PLACEMENT_3D('',#54748,#43720,#43721); -#35599=AXIS2_PLACEMENT_3D('',#54750,#43723,#43724); -#35600=AXIS2_PLACEMENT_3D('',#54752,#43726,#43727); -#35601=AXIS2_PLACEMENT_3D('',#54753,#43728,#43729); -#35602=AXIS2_PLACEMENT_3D('',#54755,#43731,#43732); -#35603=AXIS2_PLACEMENT_3D('',#54757,#43734,#43735); -#35604=AXIS2_PLACEMENT_3D('',#54759,#43737,#43738); -#35605=AXIS2_PLACEMENT_3D('',#54761,#43740,#43741); -#35606=AXIS2_PLACEMENT_3D('',#54763,#43743,#43744); -#35607=AXIS2_PLACEMENT_3D('',#54765,#43746,#43747); -#35608=AXIS2_PLACEMENT_3D('',#54766,#43748,#43749); -#35609=AXIS2_PLACEMENT_3D('',#54768,#43751,#43752); -#35610=AXIS2_PLACEMENT_3D('',#54770,#43754,#43755); -#35611=AXIS2_PLACEMENT_3D('',#54771,#43756,#43757); -#35612=AXIS2_PLACEMENT_3D('',#54773,#43759,#43760); -#35613=AXIS2_PLACEMENT_3D('',#54775,#43762,#43763); -#35614=AXIS2_PLACEMENT_3D('',#54778,#43766,#43767); -#35615=AXIS2_PLACEMENT_3D('',#54780,#43769,#43770); -#35616=AXIS2_PLACEMENT_3D('',#54782,#43772,#43773); -#35617=AXIS2_PLACEMENT_3D('',#54784,#43775,#43776); -#35618=AXIS2_PLACEMENT_3D('',#54786,#43778,#43779); -#35619=AXIS2_PLACEMENT_3D('',#54787,#43780,#43781); -#35620=AXIS2_PLACEMENT_3D('',#54789,#43783,#43784); -#35621=AXIS2_PLACEMENT_3D('',#54791,#43786,#43787); -#35622=AXIS2_PLACEMENT_3D('',#54793,#43789,#43790); -#35623=AXIS2_PLACEMENT_3D('',#54795,#43792,#43793); -#35624=AXIS2_PLACEMENT_3D('',#54797,#43795,#43796); -#35625=AXIS2_PLACEMENT_3D('',#54799,#43798,#43799); -#35626=AXIS2_PLACEMENT_3D('',#54800,#43800,#43801); -#35627=AXIS2_PLACEMENT_3D('',#54802,#43803,#43804); -#35628=AXIS2_PLACEMENT_3D('',#54804,#43806,#43807); -#35629=AXIS2_PLACEMENT_3D('',#54805,#43808,#43809); -#35630=AXIS2_PLACEMENT_3D('',#54807,#43811,#43812); -#35631=AXIS2_PLACEMENT_3D('',#54809,#43814,#43815); -#35632=AXIS2_PLACEMENT_3D('',#54812,#43818,#43819); -#35633=AXIS2_PLACEMENT_3D('',#54814,#43821,#43822); -#35634=AXIS2_PLACEMENT_3D('',#54816,#43824,#43825); -#35635=AXIS2_PLACEMENT_3D('',#54818,#43827,#43828); -#35636=AXIS2_PLACEMENT_3D('',#54820,#43830,#43831); -#35637=AXIS2_PLACEMENT_3D('',#54821,#43832,#43833); -#35638=AXIS2_PLACEMENT_3D('',#54823,#43835,#43836); -#35639=AXIS2_PLACEMENT_3D('',#54825,#43838,#43839); -#35640=AXIS2_PLACEMENT_3D('',#54827,#43841,#43842); -#35641=AXIS2_PLACEMENT_3D('',#54829,#43844,#43845); -#35642=AXIS2_PLACEMENT_3D('',#54831,#43847,#43848); -#35643=AXIS2_PLACEMENT_3D('',#54833,#43850,#43851); -#35644=AXIS2_PLACEMENT_3D('',#54834,#43852,#43853); -#35645=AXIS2_PLACEMENT_3D('',#54836,#43855,#43856); -#35646=AXIS2_PLACEMENT_3D('',#54838,#43858,#43859); -#35647=AXIS2_PLACEMENT_3D('',#54839,#43860,#43861); -#35648=AXIS2_PLACEMENT_3D('',#54841,#43863,#43864); -#35649=AXIS2_PLACEMENT_3D('',#54843,#43866,#43867); -#35650=AXIS2_PLACEMENT_3D('',#54846,#43870,#43871); -#35651=AXIS2_PLACEMENT_3D('',#54848,#43873,#43874); -#35652=AXIS2_PLACEMENT_3D('',#54850,#43876,#43877); -#35653=AXIS2_PLACEMENT_3D('',#54852,#43879,#43880); -#35654=AXIS2_PLACEMENT_3D('',#54854,#43882,#43883); -#35655=AXIS2_PLACEMENT_3D('',#54855,#43884,#43885); -#35656=AXIS2_PLACEMENT_3D('',#54857,#43887,#43888); -#35657=AXIS2_PLACEMENT_3D('',#54859,#43890,#43891); -#35658=AXIS2_PLACEMENT_3D('',#54861,#43893,#43894); -#35659=AXIS2_PLACEMENT_3D('',#54863,#43896,#43897); -#35660=AXIS2_PLACEMENT_3D('',#54865,#43899,#43900); -#35661=AXIS2_PLACEMENT_3D('',#54867,#43902,#43903); -#35662=AXIS2_PLACEMENT_3D('',#54868,#43904,#43905); -#35663=AXIS2_PLACEMENT_3D('',#54870,#43907,#43908); -#35664=AXIS2_PLACEMENT_3D('',#54872,#43910,#43911); -#35665=AXIS2_PLACEMENT_3D('',#54873,#43912,#43913); -#35666=AXIS2_PLACEMENT_3D('',#54875,#43915,#43916); -#35667=AXIS2_PLACEMENT_3D('',#54877,#43918,#43919); -#35668=AXIS2_PLACEMENT_3D('',#54880,#43922,#43923); -#35669=AXIS2_PLACEMENT_3D('',#54882,#43925,#43926); -#35670=AXIS2_PLACEMENT_3D('',#54884,#43928,#43929); -#35671=AXIS2_PLACEMENT_3D('',#54886,#43931,#43932); -#35672=AXIS2_PLACEMENT_3D('',#54888,#43934,#43935); -#35673=AXIS2_PLACEMENT_3D('',#54889,#43936,#43937); -#35674=AXIS2_PLACEMENT_3D('',#54891,#43939,#43940); -#35675=AXIS2_PLACEMENT_3D('',#54893,#43942,#43943); -#35676=AXIS2_PLACEMENT_3D('',#54895,#43945,#43946); -#35677=AXIS2_PLACEMENT_3D('',#54897,#43948,#43949); -#35678=AXIS2_PLACEMENT_3D('',#54899,#43951,#43952); -#35679=AXIS2_PLACEMENT_3D('',#54901,#43954,#43955); -#35680=AXIS2_PLACEMENT_3D('',#54902,#43956,#43957); -#35681=AXIS2_PLACEMENT_3D('',#54904,#43959,#43960); -#35682=AXIS2_PLACEMENT_3D('',#54906,#43962,#43963); -#35683=AXIS2_PLACEMENT_3D('',#54907,#43964,#43965); -#35684=AXIS2_PLACEMENT_3D('',#54909,#43967,#43968); -#35685=AXIS2_PLACEMENT_3D('',#54911,#43970,#43971); -#35686=AXIS2_PLACEMENT_3D('',#54914,#43974,#43975); -#35687=AXIS2_PLACEMENT_3D('',#54916,#43977,#43978); -#35688=AXIS2_PLACEMENT_3D('',#54918,#43980,#43981); -#35689=AXIS2_PLACEMENT_3D('',#54920,#43983,#43984); -#35690=AXIS2_PLACEMENT_3D('',#54922,#43986,#43987); -#35691=AXIS2_PLACEMENT_3D('',#54923,#43988,#43989); -#35692=AXIS2_PLACEMENT_3D('',#54925,#43991,#43992); -#35693=AXIS2_PLACEMENT_3D('',#54927,#43994,#43995); -#35694=AXIS2_PLACEMENT_3D('',#54929,#43997,#43998); -#35695=AXIS2_PLACEMENT_3D('',#54931,#44000,#44001); -#35696=AXIS2_PLACEMENT_3D('',#54933,#44003,#44004); -#35697=AXIS2_PLACEMENT_3D('',#54935,#44006,#44007); -#35698=AXIS2_PLACEMENT_3D('',#54936,#44008,#44009); -#35699=AXIS2_PLACEMENT_3D('',#54938,#44011,#44012); -#35700=AXIS2_PLACEMENT_3D('',#54940,#44014,#44015); -#35701=AXIS2_PLACEMENT_3D('',#54941,#44016,#44017); -#35702=AXIS2_PLACEMENT_3D('',#54943,#44019,#44020); -#35703=AXIS2_PLACEMENT_3D('',#54945,#44022,#44023); -#35704=AXIS2_PLACEMENT_3D('',#54948,#44026,#44027); -#35705=AXIS2_PLACEMENT_3D('',#54950,#44029,#44030); -#35706=AXIS2_PLACEMENT_3D('',#54952,#44032,#44033); -#35707=AXIS2_PLACEMENT_3D('',#54954,#44035,#44036); -#35708=AXIS2_PLACEMENT_3D('',#54956,#44038,#44039); -#35709=AXIS2_PLACEMENT_3D('',#54957,#44040,#44041); -#35710=AXIS2_PLACEMENT_3D('',#54959,#44043,#44044); -#35711=AXIS2_PLACEMENT_3D('',#54961,#44046,#44047); -#35712=AXIS2_PLACEMENT_3D('',#54963,#44049,#44050); -#35713=AXIS2_PLACEMENT_3D('',#54965,#44052,#44053); -#35714=AXIS2_PLACEMENT_3D('',#54967,#44055,#44056); -#35715=AXIS2_PLACEMENT_3D('',#54969,#44058,#44059); -#35716=AXIS2_PLACEMENT_3D('',#54970,#44060,#44061); -#35717=AXIS2_PLACEMENT_3D('',#54972,#44063,#44064); -#35718=AXIS2_PLACEMENT_3D('',#54974,#44066,#44067); -#35719=AXIS2_PLACEMENT_3D('',#54975,#44068,#44069); -#35720=AXIS2_PLACEMENT_3D('',#54977,#44071,#44072); -#35721=AXIS2_PLACEMENT_3D('',#54979,#44074,#44075); -#35722=AXIS2_PLACEMENT_3D('',#54982,#44078,#44079); -#35723=AXIS2_PLACEMENT_3D('',#54984,#44081,#44082); -#35724=AXIS2_PLACEMENT_3D('',#54986,#44084,#44085); -#35725=AXIS2_PLACEMENT_3D('',#54988,#44087,#44088); -#35726=AXIS2_PLACEMENT_3D('',#54990,#44090,#44091); -#35727=AXIS2_PLACEMENT_3D('',#54991,#44092,#44093); -#35728=AXIS2_PLACEMENT_3D('',#54993,#44095,#44096); -#35729=AXIS2_PLACEMENT_3D('',#54995,#44098,#44099); -#35730=AXIS2_PLACEMENT_3D('',#54997,#44101,#44102); -#35731=AXIS2_PLACEMENT_3D('',#54999,#44104,#44105); -#35732=AXIS2_PLACEMENT_3D('',#55001,#44107,#44108); -#35733=AXIS2_PLACEMENT_3D('',#55003,#44110,#44111); -#35734=AXIS2_PLACEMENT_3D('',#55004,#44112,#44113); -#35735=AXIS2_PLACEMENT_3D('',#55006,#44115,#44116); -#35736=AXIS2_PLACEMENT_3D('',#55008,#44118,#44119); -#35737=AXIS2_PLACEMENT_3D('',#55009,#44120,#44121); -#35738=AXIS2_PLACEMENT_3D('',#55012,#44124,#44125); -#35739=AXIS2_PLACEMENT_3D('',#55014,#44127,#44128); -#35740=AXIS2_PLACEMENT_3D('',#55016,#44130,#44131); -#35741=AXIS2_PLACEMENT_3D('',#55018,#44133,#44134); -#35742=AXIS2_PLACEMENT_3D('',#55020,#44136,#44137); -#35743=AXIS2_PLACEMENT_3D('',#55021,#44138,#44139); -#35744=AXIS2_PLACEMENT_3D('',#55023,#44141,#44142); -#35745=AXIS2_PLACEMENT_3D('',#55025,#44144,#44145); -#35746=AXIS2_PLACEMENT_3D('',#55027,#44147,#44148); -#35747=AXIS2_PLACEMENT_3D('',#55029,#44150,#44151); -#35748=AXIS2_PLACEMENT_3D('',#55031,#44153,#44154); -#35749=AXIS2_PLACEMENT_3D('',#55033,#44156,#44157); -#35750=AXIS2_PLACEMENT_3D('',#55036,#44160,#44161); -#35751=AXIS2_PLACEMENT_3D('',#55037,#44162,#44163); -#35752=AXIS2_PLACEMENT_3D('',#55039,#44165,#44166); -#35753=AXIS2_PLACEMENT_3D('',#55041,#44168,#44169); -#35754=AXIS2_PLACEMENT_3D('',#55042,#44170,#44171); -#35755=AXIS2_PLACEMENT_3D('',#55043,#44172,#44173); -#35756=AXIS2_PLACEMENT_3D('',#55046,#44176,#44177); -#35757=AXIS2_PLACEMENT_3D('',#55048,#44179,#44180); -#35758=AXIS2_PLACEMENT_3D('',#55050,#44182,#44183); -#35759=AXIS2_PLACEMENT_3D('',#55052,#44185,#44186); -#35760=AXIS2_PLACEMENT_3D('',#55054,#44188,#44189); -#35761=AXIS2_PLACEMENT_3D('',#55055,#44190,#44191); -#35762=AXIS2_PLACEMENT_3D('',#55057,#44193,#44194); -#35763=AXIS2_PLACEMENT_3D('',#55059,#44196,#44197); -#35764=AXIS2_PLACEMENT_3D('',#55061,#44199,#44200); -#35765=AXIS2_PLACEMENT_3D('',#55063,#44202,#44203); -#35766=AXIS2_PLACEMENT_3D('',#55065,#44205,#44206); -#35767=AXIS2_PLACEMENT_3D('',#55067,#44208,#44209); -#35768=AXIS2_PLACEMENT_3D('',#55070,#44212,#44213); -#35769=AXIS2_PLACEMENT_3D('',#55071,#44214,#44215); -#35770=AXIS2_PLACEMENT_3D('',#55073,#44217,#44218); -#35771=AXIS2_PLACEMENT_3D('',#55075,#44220,#44221); -#35772=AXIS2_PLACEMENT_3D('',#55076,#44222,#44223); -#35773=AXIS2_PLACEMENT_3D('',#55077,#44224,#44225); -#35774=AXIS2_PLACEMENT_3D('',#55080,#44228,#44229); -#35775=AXIS2_PLACEMENT_3D('',#55082,#44231,#44232); -#35776=AXIS2_PLACEMENT_3D('',#55084,#44234,#44235); -#35777=AXIS2_PLACEMENT_3D('',#55086,#44237,#44238); -#35778=AXIS2_PLACEMENT_3D('',#55088,#44240,#44241); -#35779=AXIS2_PLACEMENT_3D('',#55089,#44242,#44243); -#35780=AXIS2_PLACEMENT_3D('',#55091,#44245,#44246); -#35781=AXIS2_PLACEMENT_3D('',#55093,#44248,#44249); -#35782=AXIS2_PLACEMENT_3D('',#55095,#44251,#44252); -#35783=AXIS2_PLACEMENT_3D('',#55097,#44254,#44255); -#35784=AXIS2_PLACEMENT_3D('',#55099,#44257,#44258); -#35785=AXIS2_PLACEMENT_3D('',#55101,#44260,#44261); -#35786=AXIS2_PLACEMENT_3D('',#55104,#44264,#44265); -#35787=AXIS2_PLACEMENT_3D('',#55105,#44266,#44267); -#35788=AXIS2_PLACEMENT_3D('',#55107,#44269,#44270); -#35789=AXIS2_PLACEMENT_3D('',#55109,#44272,#44273); -#35790=AXIS2_PLACEMENT_3D('',#55110,#44274,#44275); -#35791=AXIS2_PLACEMENT_3D('',#55111,#44276,#44277); -#35792=AXIS2_PLACEMENT_3D('',#55114,#44280,#44281); -#35793=AXIS2_PLACEMENT_3D('',#55116,#44283,#44284); -#35794=AXIS2_PLACEMENT_3D('',#55118,#44286,#44287); -#35795=AXIS2_PLACEMENT_3D('',#55120,#44289,#44290); -#35796=AXIS2_PLACEMENT_3D('',#55122,#44292,#44293); -#35797=AXIS2_PLACEMENT_3D('',#55123,#44294,#44295); -#35798=AXIS2_PLACEMENT_3D('',#55125,#44297,#44298); -#35799=AXIS2_PLACEMENT_3D('',#55127,#44300,#44301); -#35800=AXIS2_PLACEMENT_3D('',#55129,#44303,#44304); -#35801=AXIS2_PLACEMENT_3D('',#55131,#44306,#44307); -#35802=AXIS2_PLACEMENT_3D('',#55133,#44309,#44310); -#35803=AXIS2_PLACEMENT_3D('',#55135,#44312,#44313); -#35804=AXIS2_PLACEMENT_3D('',#55138,#44316,#44317); -#35805=AXIS2_PLACEMENT_3D('',#55139,#44318,#44319); -#35806=AXIS2_PLACEMENT_3D('',#55141,#44321,#44322); -#35807=AXIS2_PLACEMENT_3D('',#55143,#44324,#44325); -#35808=AXIS2_PLACEMENT_3D('',#55144,#44326,#44327); -#35809=AXIS2_PLACEMENT_3D('',#55145,#44328,#44329); -#35810=AXIS2_PLACEMENT_3D('',#55148,#44332,#44333); -#35811=AXIS2_PLACEMENT_3D('',#55150,#44335,#44336); -#35812=AXIS2_PLACEMENT_3D('',#55152,#44338,#44339); -#35813=AXIS2_PLACEMENT_3D('',#55154,#44341,#44342); -#35814=AXIS2_PLACEMENT_3D('',#55156,#44344,#44345); -#35815=AXIS2_PLACEMENT_3D('',#55157,#44346,#44347); -#35816=AXIS2_PLACEMENT_3D('',#55159,#44349,#44350); -#35817=AXIS2_PLACEMENT_3D('',#55161,#44352,#44353); -#35818=AXIS2_PLACEMENT_3D('',#55163,#44355,#44356); -#35819=AXIS2_PLACEMENT_3D('',#55165,#44358,#44359); -#35820=AXIS2_PLACEMENT_3D('',#55167,#44361,#44362); -#35821=AXIS2_PLACEMENT_3D('',#55169,#44364,#44365); -#35822=AXIS2_PLACEMENT_3D('',#55172,#44368,#44369); -#35823=AXIS2_PLACEMENT_3D('',#55173,#44370,#44371); -#35824=AXIS2_PLACEMENT_3D('',#55175,#44373,#44374); -#35825=AXIS2_PLACEMENT_3D('',#55177,#44376,#44377); -#35826=AXIS2_PLACEMENT_3D('',#55178,#44378,#44379); -#35827=AXIS2_PLACEMENT_3D('',#55179,#44380,#44381); -#35828=AXIS2_PLACEMENT_3D('',#55182,#44384,#44385); -#35829=AXIS2_PLACEMENT_3D('',#55184,#44387,#44388); -#35830=AXIS2_PLACEMENT_3D('',#55186,#44390,#44391); -#35831=AXIS2_PLACEMENT_3D('',#55188,#44393,#44394); -#35832=AXIS2_PLACEMENT_3D('',#55190,#44396,#44397); -#35833=AXIS2_PLACEMENT_3D('',#55191,#44398,#44399); -#35834=AXIS2_PLACEMENT_3D('',#55193,#44401,#44402); -#35835=AXIS2_PLACEMENT_3D('',#55195,#44404,#44405); -#35836=AXIS2_PLACEMENT_3D('',#55197,#44407,#44408); -#35837=AXIS2_PLACEMENT_3D('',#55199,#44410,#44411); -#35838=AXIS2_PLACEMENT_3D('',#55201,#44413,#44414); -#35839=AXIS2_PLACEMENT_3D('',#55203,#44416,#44417); -#35840=AXIS2_PLACEMENT_3D('',#55206,#44420,#44421); -#35841=AXIS2_PLACEMENT_3D('',#55207,#44422,#44423); -#35842=AXIS2_PLACEMENT_3D('',#55209,#44425,#44426); -#35843=AXIS2_PLACEMENT_3D('',#55211,#44428,#44429); -#35844=AXIS2_PLACEMENT_3D('',#55212,#44430,#44431); -#35845=AXIS2_PLACEMENT_3D('',#55213,#44432,#44433); -#35846=AXIS2_PLACEMENT_3D('',#55216,#44436,#44437); -#35847=AXIS2_PLACEMENT_3D('',#55218,#44439,#44440); -#35848=AXIS2_PLACEMENT_3D('',#55220,#44442,#44443); -#35849=AXIS2_PLACEMENT_3D('',#55222,#44445,#44446); -#35850=AXIS2_PLACEMENT_3D('',#55224,#44448,#44449); -#35851=AXIS2_PLACEMENT_3D('',#55225,#44450,#44451); -#35852=AXIS2_PLACEMENT_3D('',#55227,#44453,#44454); -#35853=AXIS2_PLACEMENT_3D('',#55229,#44456,#44457); -#35854=AXIS2_PLACEMENT_3D('',#55231,#44459,#44460); -#35855=AXIS2_PLACEMENT_3D('',#55233,#44462,#44463); -#35856=AXIS2_PLACEMENT_3D('',#55235,#44465,#44466); -#35857=AXIS2_PLACEMENT_3D('',#55237,#44468,#44469); -#35858=AXIS2_PLACEMENT_3D('',#55240,#44472,#44473); -#35859=AXIS2_PLACEMENT_3D('',#55241,#44474,#44475); -#35860=AXIS2_PLACEMENT_3D('',#55243,#44477,#44478); -#35861=AXIS2_PLACEMENT_3D('',#55245,#44480,#44481); -#35862=AXIS2_PLACEMENT_3D('',#55246,#44482,#44483); -#35863=AXIS2_PLACEMENT_3D('',#55247,#44484,#44485); -#35864=AXIS2_PLACEMENT_3D('',#55250,#44488,#44489); -#35865=AXIS2_PLACEMENT_3D('',#55252,#44491,#44492); -#35866=AXIS2_PLACEMENT_3D('',#55254,#44494,#44495); -#35867=AXIS2_PLACEMENT_3D('',#55256,#44497,#44498); -#35868=AXIS2_PLACEMENT_3D('',#55258,#44500,#44501); -#35869=AXIS2_PLACEMENT_3D('',#55259,#44502,#44503); -#35870=AXIS2_PLACEMENT_3D('',#55261,#44505,#44506); -#35871=AXIS2_PLACEMENT_3D('',#55263,#44508,#44509); -#35872=AXIS2_PLACEMENT_3D('',#55265,#44511,#44512); -#35873=AXIS2_PLACEMENT_3D('',#55267,#44514,#44515); -#35874=AXIS2_PLACEMENT_3D('',#55269,#44517,#44518); -#35875=AXIS2_PLACEMENT_3D('',#55271,#44520,#44521); -#35876=AXIS2_PLACEMENT_3D('',#55274,#44524,#44525); -#35877=AXIS2_PLACEMENT_3D('',#55275,#44526,#44527); -#35878=AXIS2_PLACEMENT_3D('',#55277,#44529,#44530); -#35879=AXIS2_PLACEMENT_3D('',#55279,#44532,#44533); -#35880=AXIS2_PLACEMENT_3D('',#55280,#44534,#44535); -#35881=AXIS2_PLACEMENT_3D('',#55281,#44536,#44537); -#35882=AXIS2_PLACEMENT_3D('',#55284,#44540,#44541); -#35883=AXIS2_PLACEMENT_3D('',#55286,#44543,#44544); -#35884=AXIS2_PLACEMENT_3D('',#55288,#44546,#44547); -#35885=AXIS2_PLACEMENT_3D('',#55290,#44549,#44550); -#35886=AXIS2_PLACEMENT_3D('',#55292,#44552,#44553); -#35887=AXIS2_PLACEMENT_3D('',#55293,#44554,#44555); -#35888=AXIS2_PLACEMENT_3D('',#55295,#44557,#44558); -#35889=AXIS2_PLACEMENT_3D('',#55297,#44560,#44561); -#35890=AXIS2_PLACEMENT_3D('',#55299,#44563,#44564); -#35891=AXIS2_PLACEMENT_3D('',#55301,#44566,#44567); -#35892=AXIS2_PLACEMENT_3D('',#55303,#44569,#44570); -#35893=AXIS2_PLACEMENT_3D('',#55305,#44572,#44573); -#35894=AXIS2_PLACEMENT_3D('',#55308,#44576,#44577); -#35895=AXIS2_PLACEMENT_3D('',#55309,#44578,#44579); -#35896=AXIS2_PLACEMENT_3D('',#55311,#44581,#44582); -#35897=AXIS2_PLACEMENT_3D('',#55313,#44584,#44585); -#35898=AXIS2_PLACEMENT_3D('',#55314,#44586,#44587); -#35899=AXIS2_PLACEMENT_3D('',#55315,#44588,#44589); -#35900=AXIS2_PLACEMENT_3D('',#55318,#44592,#44593); -#35901=AXIS2_PLACEMENT_3D('',#55320,#44595,#44596); -#35902=AXIS2_PLACEMENT_3D('',#55322,#44598,#44599); -#35903=AXIS2_PLACEMENT_3D('',#55324,#44601,#44602); -#35904=AXIS2_PLACEMENT_3D('',#55326,#44604,#44605); -#35905=AXIS2_PLACEMENT_3D('',#55327,#44606,#44607); -#35906=AXIS2_PLACEMENT_3D('',#55329,#44609,#44610); -#35907=AXIS2_PLACEMENT_3D('',#55331,#44612,#44613); -#35908=AXIS2_PLACEMENT_3D('',#55333,#44615,#44616); -#35909=AXIS2_PLACEMENT_3D('',#55335,#44618,#44619); -#35910=AXIS2_PLACEMENT_3D('',#55337,#44621,#44622); -#35911=AXIS2_PLACEMENT_3D('',#55339,#44624,#44625); -#35912=AXIS2_PLACEMENT_3D('',#55342,#44628,#44629); -#35913=AXIS2_PLACEMENT_3D('',#55343,#44630,#44631); -#35914=AXIS2_PLACEMENT_3D('',#55345,#44633,#44634); -#35915=AXIS2_PLACEMENT_3D('',#55347,#44636,#44637); -#35916=AXIS2_PLACEMENT_3D('',#55348,#44638,#44639); -#35917=AXIS2_PLACEMENT_3D('',#55349,#44640,#44641); -#35918=AXIS2_PLACEMENT_3D('',#55352,#44644,#44645); -#35919=AXIS2_PLACEMENT_3D('',#55354,#44647,#44648); -#35920=AXIS2_PLACEMENT_3D('',#55356,#44650,#44651); -#35921=AXIS2_PLACEMENT_3D('',#55358,#44653,#44654); -#35922=AXIS2_PLACEMENT_3D('',#55360,#44656,#44657); -#35923=AXIS2_PLACEMENT_3D('',#55361,#44658,#44659); -#35924=AXIS2_PLACEMENT_3D('',#55363,#44661,#44662); -#35925=AXIS2_PLACEMENT_3D('',#55365,#44664,#44665); -#35926=AXIS2_PLACEMENT_3D('',#55367,#44667,#44668); -#35927=AXIS2_PLACEMENT_3D('',#55369,#44670,#44671); -#35928=AXIS2_PLACEMENT_3D('',#55371,#44673,#44674); -#35929=AXIS2_PLACEMENT_3D('',#55373,#44676,#44677); -#35930=AXIS2_PLACEMENT_3D('',#55376,#44680,#44681); -#35931=AXIS2_PLACEMENT_3D('',#55377,#44682,#44683); -#35932=AXIS2_PLACEMENT_3D('',#55379,#44685,#44686); -#35933=AXIS2_PLACEMENT_3D('',#55381,#44688,#44689); -#35934=AXIS2_PLACEMENT_3D('',#55382,#44690,#44691); -#35935=AXIS2_PLACEMENT_3D('',#55383,#44692,#44693); -#35936=AXIS2_PLACEMENT_3D('',#55386,#44696,#44697); -#35937=AXIS2_PLACEMENT_3D('',#55388,#44699,#44700); -#35938=AXIS2_PLACEMENT_3D('',#55390,#44702,#44703); -#35939=AXIS2_PLACEMENT_3D('',#55392,#44705,#44706); -#35940=AXIS2_PLACEMENT_3D('',#55394,#44708,#44709); -#35941=AXIS2_PLACEMENT_3D('',#55395,#44710,#44711); -#35942=AXIS2_PLACEMENT_3D('',#55397,#44713,#44714); -#35943=AXIS2_PLACEMENT_3D('',#55399,#44716,#44717); -#35944=AXIS2_PLACEMENT_3D('',#55401,#44719,#44720); -#35945=AXIS2_PLACEMENT_3D('',#55403,#44722,#44723); -#35946=AXIS2_PLACEMENT_3D('',#55405,#44725,#44726); -#35947=AXIS2_PLACEMENT_3D('',#55407,#44728,#44729); -#35948=AXIS2_PLACEMENT_3D('',#55410,#44732,#44733); -#35949=AXIS2_PLACEMENT_3D('',#55411,#44734,#44735); -#35950=AXIS2_PLACEMENT_3D('',#55413,#44737,#44738); -#35951=AXIS2_PLACEMENT_3D('',#55415,#44740,#44741); -#35952=AXIS2_PLACEMENT_3D('',#55416,#44742,#44743); -#35953=AXIS2_PLACEMENT_3D('',#55417,#44744,#44745); -#35954=AXIS2_PLACEMENT_3D('',#55420,#44748,#44749); -#35955=AXIS2_PLACEMENT_3D('',#55422,#44751,#44752); -#35956=AXIS2_PLACEMENT_3D('',#55424,#44754,#44755); -#35957=AXIS2_PLACEMENT_3D('',#55426,#44757,#44758); -#35958=AXIS2_PLACEMENT_3D('',#55428,#44760,#44761); -#35959=AXIS2_PLACEMENT_3D('',#55429,#44762,#44763); -#35960=AXIS2_PLACEMENT_3D('',#55431,#44765,#44766); -#35961=AXIS2_PLACEMENT_3D('',#55433,#44768,#44769); -#35962=AXIS2_PLACEMENT_3D('',#55435,#44771,#44772); -#35963=AXIS2_PLACEMENT_3D('',#55437,#44774,#44775); -#35964=AXIS2_PLACEMENT_3D('',#55439,#44777,#44778); -#35965=AXIS2_PLACEMENT_3D('',#55441,#44780,#44781); -#35966=AXIS2_PLACEMENT_3D('',#55444,#44784,#44785); -#35967=AXIS2_PLACEMENT_3D('',#55445,#44786,#44787); -#35968=AXIS2_PLACEMENT_3D('',#55447,#44789,#44790); -#35969=AXIS2_PLACEMENT_3D('',#55449,#44792,#44793); -#35970=AXIS2_PLACEMENT_3D('',#55450,#44794,#44795); -#35971=AXIS2_PLACEMENT_3D('',#55451,#44796,#44797); -#35972=AXIS2_PLACEMENT_3D('',#55454,#44800,#44801); -#35973=AXIS2_PLACEMENT_3D('',#55456,#44803,#44804); -#35974=AXIS2_PLACEMENT_3D('',#55458,#44806,#44807); -#35975=AXIS2_PLACEMENT_3D('',#55460,#44809,#44810); -#35976=AXIS2_PLACEMENT_3D('',#55462,#44812,#44813); -#35977=AXIS2_PLACEMENT_3D('',#55463,#44814,#44815); -#35978=AXIS2_PLACEMENT_3D('',#55465,#44817,#44818); -#35979=AXIS2_PLACEMENT_3D('',#55467,#44820,#44821); -#35980=AXIS2_PLACEMENT_3D('',#55469,#44823,#44824); -#35981=AXIS2_PLACEMENT_3D('',#55471,#44826,#44827); -#35982=AXIS2_PLACEMENT_3D('',#55473,#44829,#44830); -#35983=AXIS2_PLACEMENT_3D('',#55475,#44832,#44833); -#35984=AXIS2_PLACEMENT_3D('',#55478,#44836,#44837); -#35985=AXIS2_PLACEMENT_3D('',#55479,#44838,#44839); -#35986=AXIS2_PLACEMENT_3D('',#55481,#44841,#44842); -#35987=AXIS2_PLACEMENT_3D('',#55483,#44844,#44845); -#35988=AXIS2_PLACEMENT_3D('',#55484,#44846,#44847); -#35989=AXIS2_PLACEMENT_3D('',#55485,#44848,#44849); -#35990=AXIS2_PLACEMENT_3D('',#55488,#44852,#44853); -#35991=AXIS2_PLACEMENT_3D('',#55490,#44855,#44856); -#35992=AXIS2_PLACEMENT_3D('',#55492,#44858,#44859); -#35993=AXIS2_PLACEMENT_3D('',#55494,#44861,#44862); -#35994=AXIS2_PLACEMENT_3D('',#55496,#44864,#44865); -#35995=AXIS2_PLACEMENT_3D('',#55497,#44866,#44867); -#35996=AXIS2_PLACEMENT_3D('',#55499,#44869,#44870); -#35997=AXIS2_PLACEMENT_3D('',#55501,#44872,#44873); -#35998=AXIS2_PLACEMENT_3D('',#55503,#44875,#44876); -#35999=AXIS2_PLACEMENT_3D('',#55505,#44878,#44879); -#36000=AXIS2_PLACEMENT_3D('',#55507,#44881,#44882); -#36001=AXIS2_PLACEMENT_3D('',#55509,#44884,#44885); -#36002=AXIS2_PLACEMENT_3D('',#55512,#44888,#44889); -#36003=AXIS2_PLACEMENT_3D('',#55513,#44890,#44891); -#36004=AXIS2_PLACEMENT_3D('',#55515,#44893,#44894); -#36005=AXIS2_PLACEMENT_3D('',#55517,#44896,#44897); -#36006=AXIS2_PLACEMENT_3D('',#55518,#44898,#44899); -#36007=AXIS2_PLACEMENT_3D('',#55519,#44900,#44901); -#36008=AXIS2_PLACEMENT_3D('',#55522,#44904,#44905); -#36009=AXIS2_PLACEMENT_3D('',#55524,#44907,#44908); -#36010=AXIS2_PLACEMENT_3D('',#55526,#44910,#44911); -#36011=AXIS2_PLACEMENT_3D('',#55528,#44913,#44914); -#36012=AXIS2_PLACEMENT_3D('',#55530,#44916,#44917); -#36013=AXIS2_PLACEMENT_3D('',#55531,#44918,#44919); -#36014=AXIS2_PLACEMENT_3D('',#55533,#44921,#44922); -#36015=AXIS2_PLACEMENT_3D('',#55535,#44924,#44925); -#36016=AXIS2_PLACEMENT_3D('',#55537,#44927,#44928); -#36017=AXIS2_PLACEMENT_3D('',#55539,#44930,#44931); -#36018=AXIS2_PLACEMENT_3D('',#55541,#44933,#44934); -#36019=AXIS2_PLACEMENT_3D('',#55543,#44936,#44937); -#36020=AXIS2_PLACEMENT_3D('',#55546,#44940,#44941); -#36021=AXIS2_PLACEMENT_3D('',#55547,#44942,#44943); -#36022=AXIS2_PLACEMENT_3D('',#55549,#44945,#44946); -#36023=AXIS2_PLACEMENT_3D('',#55551,#44948,#44949); -#36024=AXIS2_PLACEMENT_3D('',#55552,#44950,#44951); -#36025=AXIS2_PLACEMENT_3D('',#55553,#44952,#44953); -#36026=AXIS2_PLACEMENT_3D('',#55556,#44956,#44957); -#36027=AXIS2_PLACEMENT_3D('',#55558,#44959,#44960); -#36028=AXIS2_PLACEMENT_3D('',#55560,#44962,#44963); -#36029=AXIS2_PLACEMENT_3D('',#55562,#44965,#44966); -#36030=AXIS2_PLACEMENT_3D('',#55564,#44968,#44969); -#36031=AXIS2_PLACEMENT_3D('',#55565,#44970,#44971); -#36032=AXIS2_PLACEMENT_3D('',#55567,#44973,#44974); -#36033=AXIS2_PLACEMENT_3D('',#55569,#44976,#44977); -#36034=AXIS2_PLACEMENT_3D('',#55571,#44979,#44980); -#36035=AXIS2_PLACEMENT_3D('',#55573,#44982,#44983); -#36036=AXIS2_PLACEMENT_3D('',#55575,#44985,#44986); -#36037=AXIS2_PLACEMENT_3D('',#55577,#44988,#44989); -#36038=AXIS2_PLACEMENT_3D('',#55580,#44992,#44993); -#36039=AXIS2_PLACEMENT_3D('',#55581,#44994,#44995); -#36040=AXIS2_PLACEMENT_3D('',#55583,#44997,#44998); -#36041=AXIS2_PLACEMENT_3D('',#55585,#45000,#45001); -#36042=AXIS2_PLACEMENT_3D('',#55586,#45002,#45003); -#36043=AXIS2_PLACEMENT_3D('',#55587,#45004,#45005); -#36044=AXIS2_PLACEMENT_3D('',#55590,#45008,#45009); -#36045=AXIS2_PLACEMENT_3D('',#55592,#45011,#45012); -#36046=AXIS2_PLACEMENT_3D('',#55594,#45014,#45015); -#36047=AXIS2_PLACEMENT_3D('',#55596,#45017,#45018); -#36048=AXIS2_PLACEMENT_3D('',#55598,#45020,#45021); -#36049=AXIS2_PLACEMENT_3D('',#55599,#45022,#45023); -#36050=AXIS2_PLACEMENT_3D('',#55601,#45025,#45026); -#36051=AXIS2_PLACEMENT_3D('',#55603,#45028,#45029); -#36052=AXIS2_PLACEMENT_3D('',#55605,#45031,#45032); -#36053=AXIS2_PLACEMENT_3D('',#55607,#45034,#45035); -#36054=AXIS2_PLACEMENT_3D('',#55609,#45037,#45038); -#36055=AXIS2_PLACEMENT_3D('',#55611,#45040,#45041); -#36056=AXIS2_PLACEMENT_3D('',#55614,#45044,#45045); -#36057=AXIS2_PLACEMENT_3D('',#55615,#45046,#45047); -#36058=AXIS2_PLACEMENT_3D('',#55617,#45049,#45050); -#36059=AXIS2_PLACEMENT_3D('',#55619,#45052,#45053); -#36060=AXIS2_PLACEMENT_3D('',#55620,#45054,#45055); -#36061=AXIS2_PLACEMENT_3D('',#55621,#45056,#45057); -#36062=AXIS2_PLACEMENT_3D('',#55624,#45060,#45061); -#36063=AXIS2_PLACEMENT_3D('',#55626,#45063,#45064); -#36064=AXIS2_PLACEMENT_3D('',#55628,#45066,#45067); -#36065=AXIS2_PLACEMENT_3D('',#55630,#45069,#45070); -#36066=AXIS2_PLACEMENT_3D('',#55632,#45072,#45073); -#36067=AXIS2_PLACEMENT_3D('',#55633,#45074,#45075); -#36068=AXIS2_PLACEMENT_3D('',#55635,#45077,#45078); -#36069=AXIS2_PLACEMENT_3D('',#55637,#45080,#45081); -#36070=AXIS2_PLACEMENT_3D('',#55639,#45083,#45084); -#36071=AXIS2_PLACEMENT_3D('',#55641,#45086,#45087); -#36072=AXIS2_PLACEMENT_3D('',#55643,#45089,#45090); -#36073=AXIS2_PLACEMENT_3D('',#55645,#45092,#45093); -#36074=AXIS2_PLACEMENT_3D('',#55648,#45096,#45097); -#36075=AXIS2_PLACEMENT_3D('',#55649,#45098,#45099); -#36076=AXIS2_PLACEMENT_3D('',#55651,#45101,#45102); -#36077=AXIS2_PLACEMENT_3D('',#55653,#45104,#45105); -#36078=AXIS2_PLACEMENT_3D('',#55654,#45106,#45107); -#36079=AXIS2_PLACEMENT_3D('',#55655,#45108,#45109); -#36080=AXIS2_PLACEMENT_3D('',#55656,#45110,#45111); -#36081=AXIS2_PLACEMENT_3D('',#55657,#45112,#45113); -#36082=AXIS2_PLACEMENT_3D('',#55658,#45114,#45115); -#36083=DIRECTION('',(0.,0.,1.)); -#36084=DIRECTION('',(1.,0.,0.)); -#36085=DIRECTION('',(-1.,0.,0.)); -#36086=DIRECTION('',(0.,0.,1.)); -#36087=DIRECTION('',(0.,-1.,0.)); -#36088=DIRECTION('',(0.,0.,-1.)); -#36089=DIRECTION('',(0.,-1.,0.)); -#36090=DIRECTION('',(0.,0.,-1.)); -#36091=DIRECTION('',(0.,-1.,0.)); -#36092=DIRECTION('',(0.,0.,-1.)); -#36093=DIRECTION('',(-1.,0.,0.)); -#36094=DIRECTION('',(0.,0.,1.)); -#36095=DIRECTION('',(0.,1.,0.)); -#36096=DIRECTION('',(0.,0.,-1.)); -#36097=DIRECTION('',(0.,-1.,0.)); -#36098=DIRECTION('',(0.,0.,-1.)); -#36099=DIRECTION('',(0.,-1.,0.)); -#36100=DIRECTION('',(0.,0.,-1.)); -#36101=DIRECTION('',(0.,1.,0.)); -#36102=DIRECTION('',(0.,0.,1.)); -#36103=DIRECTION('',(1.,0.,0.)); -#36104=DIRECTION('',(1.,0.,0.)); -#36105=DIRECTION('',(0.,0.,-1.)); -#36106=DIRECTION('',(1.,0.,0.)); -#36107=DIRECTION('',(0.,0.,1.)); -#36108=DIRECTION('',(1.,0.,0.)); -#36109=DIRECTION('',(0.,0.,1.)); -#36110=DIRECTION('',(1.,0.,0.)); -#36111=DIRECTION('',(0.,0.,1.)); -#36112=DIRECTION('',(1.,0.,0.)); -#36113=DIRECTION('',(0.,0.,1.)); -#36114=DIRECTION('',(1.,0.,0.)); -#36115=DIRECTION('',(0.,1.,0.)); -#36116=DIRECTION('',(1.,0.,0.)); -#36117=DIRECTION('',(0.,0.,-1.)); -#36118=DIRECTION('',(0.,1.,0.)); -#36119=DIRECTION('',(1.,0.,0.)); -#36120=DIRECTION('',(-1.,0.,0.)); -#36121=DIRECTION('',(0.,0.,1.)); -#36122=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); -#36123=DIRECTION('',(-1.,0.,0.)); -#36124=DIRECTION('',(0.,0.,-1.)); -#36125=DIRECTION('',(1.,0.,0.)); -#36126=DIRECTION('',(0.,0.,-1.)); -#36127=DIRECTION('',(1.,0.,0.)); -#36128=DIRECTION('',(0.,0.,-1.)); -#36129=DIRECTION('',(1.,0.,0.)); -#36130=DIRECTION('',(0.,0.,1.)); -#36131=DIRECTION('',(-1.,0.,0.)); -#36132=DIRECTION('',(0.,0.,-1.)); -#36133=DIRECTION('',(1.,0.,0.)); -#36134=DIRECTION('',(-1.,0.,0.)); -#36135=DIRECTION('',(0.,1.,0.)); -#36136=DIRECTION('',(1.,0.,0.)); -#36137=DIRECTION('',(0.,0.,1.)); -#36138=DIRECTION('',(0.,1.,0.)); -#36139=DIRECTION('',(1.,0.,0.)); -#36140=DIRECTION('',(0.,0.,1.)); -#36141=DIRECTION('',(0.,1.,0.)); -#36142=DIRECTION('',(1.,0.,0.)); -#36143=DIRECTION('',(0.,1.,0.)); -#36144=DIRECTION('',(1.,0.,0.)); -#36145=DIRECTION('',(0.,1.,0.)); -#36146=DIRECTION('',(1.,0.,0.)); -#36147=DIRECTION('',(0.,1.,0.)); -#36148=DIRECTION('',(1.,0.,0.)); -#36149=DIRECTION('',(0.,1.,0.)); -#36150=DIRECTION('',(1.,0.,0.)); -#36151=DIRECTION('',(0.,0.,-1.)); -#36152=DIRECTION('',(0.,1.,0.)); -#36153=DIRECTION('',(1.,0.,0.)); -#36154=DIRECTION('',(-1.,0.,0.)); -#36155=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); -#36156=DIRECTION('',(0.,1.,0.)); -#36157=DIRECTION('',(1.,0.,0.)); -#36158=DIRECTION('',(-0.60552183248326,0.,0.795828694120861)); -#36159=DIRECTION('',(0.,1.,0.)); -#36160=DIRECTION('',(1.,0.,0.)); -#36161=DIRECTION('',(0.60552183248326,0.,0.795828694120861)); -#36162=DIRECTION('',(0.,1.,0.)); -#36163=DIRECTION('',(1.,0.,0.)); -#36164=DIRECTION('',(0.605521832483264,0.,-0.795828694120858)); -#36165=DIRECTION('',(0.,1.,0.)); -#36166=DIRECTION('',(1.,0.,0.)); -#36167=DIRECTION('',(-0.605521832483264,0.,-0.795828694120858)); -#36168=DIRECTION('',(0.,1.,0.)); -#36169=DIRECTION('',(0.,0.,1.)); -#36170=DIRECTION('',(0.,0.,1.)); -#36171=DIRECTION('',(0.,1.,0.)); -#36172=DIRECTION('',(1.,0.,0.)); -#36173=DIRECTION('',(0.,1.,0.)); -#36174=DIRECTION('',(1.,0.,0.)); -#36175=DIRECTION('',(0.,1.,0.)); -#36176=DIRECTION('',(1.,0.,0.)); -#36177=DIRECTION('',(0.,1.,0.)); -#36178=DIRECTION('',(1.,0.,0.)); -#36179=DIRECTION('',(0.,1.,0.)); -#36180=DIRECTION('',(1.,0.,0.)); -#36181=DIRECTION('',(0.,0.,-1.)); -#36182=DIRECTION('',(0.,1.,0.)); -#36183=DIRECTION('',(1.,0.,0.)); -#36184=DIRECTION('',(-1.,0.,0.)); -#36185=DIRECTION('',(0.,1.,0.)); -#36186=DIRECTION('',(1.,0.,0.)); -#36187=DIRECTION('',(1.,0.,0.)); -#36188=DIRECTION('',(0.,0.,-1.)); -#36189=DIRECTION('',(0.,1.,0.)); -#36190=DIRECTION('',(0.,-1.,0.)); -#36191=DIRECTION('',(0.,0.,1.)); -#36192=DIRECTION('',(0.,-1.,0.)); -#36193=DIRECTION('',(0.,-1.,0.)); -#36194=DIRECTION('',(0.,0.,1.)); -#36195=DIRECTION('',(0.,1.,0.)); -#36196=DIRECTION('',(0.,0.,1.)); -#36197=DIRECTION('',(1.,0.,0.)); -#36198=DIRECTION('',(0.,0.,-1.)); -#36199=DIRECTION('',(1.,0.,0.)); -#36200=DIRECTION('',(0.,0.,-1.)); -#36201=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); -#36202=DIRECTION('',(1.,0.,0.)); -#36203=DIRECTION('',(0.,0.,-1.)); -#36204=DIRECTION('',(1.,0.,0.)); -#36205=DIRECTION('',(0.,0.,1.)); -#36206=DIRECTION('',(1.,0.,0.)); -#36207=DIRECTION('',(0.,0.,-1.)); -#36208=DIRECTION('',(1.,0.,0.)); -#36209=DIRECTION('',(0.,0.,1.)); -#36210=DIRECTION('',(1.,0.,0.)); -#36211=DIRECTION('',(0.,0.,-1.)); -#36212=DIRECTION('',(1.,0.,0.)); -#36213=DIRECTION('',(0.,0.,1.)); -#36214=DIRECTION('',(1.,0.,0.)); -#36215=DIRECTION('',(0.,0.,-1.)); -#36216=DIRECTION('',(1.,0.,0.)); -#36217=DIRECTION('',(0.,0.,1.)); -#36218=DIRECTION('',(1.,0.,0.)); -#36219=DIRECTION('',(0.,0.,-1.)); -#36220=DIRECTION('',(1.,0.,0.)); -#36221=DIRECTION('',(0.,0.,1.)); -#36222=DIRECTION('',(1.,0.,0.)); -#36223=DIRECTION('',(0.,0.,-1.)); -#36224=DIRECTION('',(1.,0.,0.)); -#36225=DIRECTION('',(0.,0.,1.)); -#36226=DIRECTION('',(1.,0.,0.)); -#36227=DIRECTION('',(0.,0.,-1.)); -#36228=DIRECTION('',(1.,0.,0.)); -#36229=DIRECTION('',(0.,0.,1.)); -#36230=DIRECTION('',(1.,0.,0.)); -#36231=DIRECTION('',(0.,0.,-1.)); -#36232=DIRECTION('',(1.,0.,0.)); -#36233=DIRECTION('',(0.,0.,1.)); -#36234=DIRECTION('',(1.,0.,0.)); -#36235=DIRECTION('',(0.,0.,-1.)); -#36236=DIRECTION('',(1.,0.,0.)); -#36237=DIRECTION('',(0.,0.,1.)); -#36238=DIRECTION('',(1.,0.,0.)); -#36239=DIRECTION('',(0.,0.,-1.)); -#36240=DIRECTION('',(1.,0.,0.)); -#36241=DIRECTION('',(0.,0.,1.)); -#36242=DIRECTION('',(1.,0.,0.)); -#36243=DIRECTION('',(0.,0.,-1.)); -#36244=DIRECTION('',(1.,0.,0.)); -#36245=DIRECTION('',(0.,0.,1.)); -#36246=DIRECTION('',(1.,0.,0.)); -#36247=DIRECTION('',(0.,0.,-1.)); -#36248=DIRECTION('',(1.,0.,0.)); -#36249=DIRECTION('',(0.,0.,1.)); -#36250=DIRECTION('',(1.,0.,0.)); -#36251=DIRECTION('',(0.,0.,-1.)); -#36252=DIRECTION('',(1.,0.,0.)); -#36253=DIRECTION('',(0.,0.,1.)); -#36254=DIRECTION('',(1.,0.,0.)); -#36255=DIRECTION('',(0.,0.,-1.)); -#36256=DIRECTION('',(1.,0.,0.)); -#36257=DIRECTION('',(0.,0.,1.)); -#36258=DIRECTION('',(1.,0.,0.)); -#36259=DIRECTION('',(0.,0.,-1.)); -#36260=DIRECTION('',(1.,0.,0.)); -#36261=DIRECTION('',(0.,0.,1.)); -#36262=DIRECTION('',(1.,0.,0.)); -#36263=DIRECTION('',(0.,0.,-1.)); -#36264=DIRECTION('',(1.,0.,0.)); -#36265=DIRECTION('',(0.,0.,1.)); -#36266=DIRECTION('',(1.,0.,0.)); -#36267=DIRECTION('',(0.,0.,-1.)); -#36268=DIRECTION('',(1.,0.,0.)); -#36269=DIRECTION('',(0.,0.,1.)); -#36270=DIRECTION('',(1.,0.,0.)); -#36271=DIRECTION('',(0.,0.,-1.)); -#36272=DIRECTION('',(1.,0.,0.)); -#36273=DIRECTION('',(0.,0.,1.)); -#36274=DIRECTION('',(1.,0.,0.)); -#36275=DIRECTION('',(0.,0.,-1.)); -#36276=DIRECTION('',(1.,0.,0.)); -#36277=DIRECTION('',(0.,0.,1.)); -#36278=DIRECTION('',(1.,0.,0.)); -#36279=DIRECTION('',(0.,0.,-1.)); -#36280=DIRECTION('',(1.,0.,0.)); -#36281=DIRECTION('',(0.,0.,1.)); -#36282=DIRECTION('',(1.,0.,0.)); -#36283=DIRECTION('',(-0.707106781186547,0.,-0.707106781186548)); -#36284=DIRECTION('',(0.,0.,-1.)); -#36285=DIRECTION('',(1.,0.,0.)); -#36286=DIRECTION('',(0.,0.,1.)); -#36287=DIRECTION('',(1.,0.,0.)); -#36288=DIRECTION('',(0.,0.,-1.)); -#36289=DIRECTION('',(1.,0.,0.)); -#36290=DIRECTION('',(0.,0.,1.)); -#36291=DIRECTION('',(1.,0.,0.)); -#36292=DIRECTION('',(0.,0.,-1.)); -#36293=DIRECTION('',(1.,0.,0.)); -#36294=DIRECTION('',(0.,0.,1.)); -#36295=DIRECTION('',(1.,0.,0.)); -#36296=DIRECTION('',(0.,0.,-1.)); -#36297=DIRECTION('',(1.,0.,0.)); -#36298=DIRECTION('',(0.,0.,1.)); -#36299=DIRECTION('',(1.,0.,0.)); -#36300=DIRECTION('',(0.,0.,-1.)); -#36301=DIRECTION('',(1.,0.,0.)); -#36302=DIRECTION('',(0.,0.,1.)); -#36303=DIRECTION('',(1.,0.,0.)); -#36304=DIRECTION('',(0.,0.,-1.)); -#36305=DIRECTION('',(1.,0.,0.)); -#36306=DIRECTION('',(0.,0.,1.)); -#36307=DIRECTION('',(1.,0.,0.)); -#36308=DIRECTION('',(0.,0.,-1.)); -#36309=DIRECTION('',(1.,0.,0.)); -#36310=DIRECTION('',(0.,0.,1.)); -#36311=DIRECTION('',(1.,0.,0.)); -#36312=DIRECTION('',(0.,0.,-1.)); -#36313=DIRECTION('',(1.,0.,0.)); -#36314=DIRECTION('',(0.,0.,1.)); -#36315=DIRECTION('',(1.,0.,0.)); -#36316=DIRECTION('',(0.,0.,-1.)); -#36317=DIRECTION('',(1.,0.,0.)); -#36318=DIRECTION('',(0.,0.,1.)); -#36319=DIRECTION('',(1.,0.,0.)); -#36320=DIRECTION('',(0.,0.,-1.)); -#36321=DIRECTION('',(1.,0.,0.)); -#36322=DIRECTION('',(0.,0.,1.)); -#36323=DIRECTION('',(1.,0.,0.)); -#36324=DIRECTION('',(0.,0.,-1.)); -#36325=DIRECTION('',(1.,0.,0.)); -#36326=DIRECTION('',(0.,0.,1.)); -#36327=DIRECTION('',(1.,0.,0.)); -#36328=DIRECTION('',(0.,0.,-1.)); -#36329=DIRECTION('',(1.,0.,0.)); -#36330=DIRECTION('',(0.,0.,1.)); -#36331=DIRECTION('',(1.,0.,0.)); -#36332=DIRECTION('',(0.,0.,-1.)); -#36333=DIRECTION('',(1.,0.,0.)); -#36334=DIRECTION('',(0.,0.,1.)); -#36335=DIRECTION('',(1.,0.,0.)); -#36336=DIRECTION('',(0.,0.,-1.)); -#36337=DIRECTION('',(1.,0.,0.)); -#36338=DIRECTION('',(0.,0.,1.)); -#36339=DIRECTION('',(1.,0.,0.)); -#36340=DIRECTION('',(0.,0.,-1.)); -#36341=DIRECTION('',(1.,0.,0.)); -#36342=DIRECTION('',(0.,0.,1.)); -#36343=DIRECTION('',(1.,0.,0.)); -#36344=DIRECTION('',(0.,0.,-1.)); -#36345=DIRECTION('',(1.,0.,0.)); -#36346=DIRECTION('',(0.,0.,1.)); -#36347=DIRECTION('',(1.,0.,0.)); -#36348=DIRECTION('',(0.,0.,-1.)); -#36349=DIRECTION('',(1.,0.,0.)); -#36350=DIRECTION('',(0.,0.,1.)); -#36351=DIRECTION('',(1.,0.,0.)); -#36352=DIRECTION('',(0.,0.,-1.)); -#36353=DIRECTION('',(1.,0.,0.)); -#36354=DIRECTION('',(0.,0.,1.)); -#36355=DIRECTION('',(1.,0.,0.)); -#36356=DIRECTION('',(0.,0.,-1.)); -#36357=DIRECTION('',(1.,0.,0.)); -#36358=DIRECTION('',(0.,0.,1.)); -#36359=DIRECTION('',(1.,0.,0.)); -#36360=DIRECTION('',(0.,0.,-1.)); -#36361=DIRECTION('',(1.,0.,0.)); -#36362=DIRECTION('',(0.,0.,1.)); -#36363=DIRECTION('',(1.,0.,0.)); -#36364=DIRECTION('',(0.,0.,-1.)); -#36365=DIRECTION('',(-1.,0.,0.)); -#36366=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); -#36367=DIRECTION('',(1.,0.,0.)); -#36368=DIRECTION('',(0.,0.,1.)); -#36369=DIRECTION('',(-1.,0.,0.)); -#36370=DIRECTION('',(0.,0.,-1.)); -#36371=DIRECTION('',(1.,0.,0.)); -#36372=DIRECTION('',(0.,0.,1.)); -#36373=DIRECTION('',(-1.,0.,0.)); -#36374=DIRECTION('',(0.,0.,-1.)); -#36375=DIRECTION('',(1.,0.,0.)); -#36376=DIRECTION('',(0.,0.,1.)); -#36377=DIRECTION('',(-1.,0.,0.)); -#36378=DIRECTION('',(0.,0.,-1.)); -#36379=DIRECTION('',(1.,0.,0.)); -#36380=DIRECTION('',(0.,0.,1.)); -#36381=DIRECTION('',(-1.,0.,0.)); -#36382=DIRECTION('',(0.,0.,-1.)); -#36383=DIRECTION('',(1.,0.,0.)); -#36384=DIRECTION('',(0.,0.,1.)); -#36385=DIRECTION('',(-1.,0.,0.)); -#36386=DIRECTION('',(0.,0.,-1.)); -#36387=DIRECTION('',(1.,0.,0.)); -#36388=DIRECTION('',(0.,0.,1.)); -#36389=DIRECTION('',(-1.,0.,0.)); -#36390=DIRECTION('',(0.,0.,-1.)); -#36391=DIRECTION('',(1.,0.,0.)); -#36392=DIRECTION('',(0.,0.,1.)); -#36393=DIRECTION('',(-1.,0.,0.)); -#36394=DIRECTION('',(0.,0.,-1.)); -#36395=DIRECTION('',(1.,0.,0.)); -#36396=DIRECTION('',(0.,0.,1.)); -#36397=DIRECTION('',(-1.,0.,0.)); -#36398=DIRECTION('',(0.,0.,-1.)); -#36399=DIRECTION('',(1.,0.,0.)); -#36400=DIRECTION('',(-1.,0.,2.16840434497102E-15)); -#36401=DIRECTION('',(1.,0.,0.)); -#36402=DIRECTION('',(0.,0.,-1.)); -#36403=DIRECTION('',(-1.,0.,0.)); -#36404=DIRECTION('',(-2.60208521396521E-15,0.,-1.)); -#36405=DIRECTION('',(1.,0.,0.)); -#36406=DIRECTION('',(0.,0.,1.)); -#36407=DIRECTION('',(-1.,0.,0.)); -#36408=DIRECTION('',(0.,0.,-1.)); -#36409=DIRECTION('',(1.,0.,0.)); -#36410=DIRECTION('',(0.,0.,1.)); -#36411=DIRECTION('',(-1.,0.,0.)); -#36412=DIRECTION('',(0.,0.,-1.)); -#36413=DIRECTION('',(1.,0.,0.)); -#36414=DIRECTION('',(0.,0.,1.)); -#36415=DIRECTION('',(-1.,0.,0.)); -#36416=DIRECTION('',(0.,0.,-1.)); -#36417=DIRECTION('',(1.,0.,0.)); -#36418=DIRECTION('',(0.,0.,1.)); -#36419=DIRECTION('',(-1.,0.,0.)); -#36420=DIRECTION('',(0.,0.,-1.)); -#36421=DIRECTION('',(1.,0.,0.)); -#36422=DIRECTION('',(0.,0.,1.)); -#36423=DIRECTION('',(-1.,0.,0.)); -#36424=DIRECTION('',(0.,0.,-1.)); -#36425=DIRECTION('',(1.,0.,0.)); -#36426=DIRECTION('',(0.,0.,1.)); -#36427=DIRECTION('',(-1.,0.,0.)); -#36428=DIRECTION('',(0.,0.,-1.)); -#36429=DIRECTION('',(1.,0.,0.)); -#36430=DIRECTION('',(0.,0.,1.)); -#36431=DIRECTION('',(-1.,0.,0.)); -#36432=DIRECTION('',(0.,0.,-1.)); -#36433=DIRECTION('',(1.,0.,0.)); -#36434=DIRECTION('',(-8.67361737988404E-16,0.,1.)); -#36435=DIRECTION('',(-1.,0.,0.)); -#36436=DIRECTION('',(0.,0.,1.)); -#36437=DIRECTION('',(1.,0.,0.)); -#36438=DIRECTION('',(0.500000001454239,0.,-0.866025402944833)); -#36439=DIRECTION('',(0.500000001454238,0.,0.866025402944834)); -#36440=DIRECTION('',(0.,0.,1.)); -#36441=DIRECTION('',(1.,0.,0.)); -#36442=DIRECTION('',(0.384615384615385,-0.923076923076923,0.)); -#36443=DIRECTION('',(0.384615384615385,0.923076923076923,0.)); -#36444=DIRECTION('',(0.,-1.,0.)); -#36445=DIRECTION('',(-1.,0.,0.)); -#36446=DIRECTION('',(0.,-1.,0.)); -#36447=DIRECTION('',(0.,-1.,0.)); -#36448=DIRECTION('',(0.,1.,0.)); -#36449=DIRECTION('',(0.,0.,1.)); -#36450=DIRECTION('',(0.,0.,-1.)); -#36451=DIRECTION('',(-1.,0.,0.)); -#36452=DIRECTION('',(0.,0.,-1.)); -#36453=DIRECTION('',(1.,0.,0.)); -#36454=DIRECTION('',(0.,1.,0.)); -#36455=DIRECTION('',(0.,0.,1.)); -#36456=DIRECTION('',(0.,0.,-1.)); -#36457=DIRECTION('',(1.,0.,0.)); -#36458=DIRECTION('',(0.,0.,-1.)); -#36459=DIRECTION('',(1.,0.,0.)); -#36460=DIRECTION('',(-1.,3.46944695195362E-16,0.)); -#36461=DIRECTION('',(-3.46944695195362E-16,-1.,0.)); -#36462=DIRECTION('',(-1.,3.46944695195362E-16,0.)); -#36463=DIRECTION('',(-3.46944695195362E-16,-1.,0.)); -#36464=DIRECTION('',(-3.46944695195362E-16,-1.,0.)); -#36465=DIRECTION('',(3.46944695195361E-16,1.,0.)); -#36466=DIRECTION('',(3.46944695195362E-16,1.,0.)); -#36467=DIRECTION('',(0.,0.,-1.)); -#36468=DIRECTION('',(3.46944695195362E-16,1.,0.)); -#36469=DIRECTION('',(3.46944695195361E-16,1.,0.)); -#36470=DIRECTION('',(3.46944695195362E-16,1.,0.)); -#36471=DIRECTION('',(1.,0.,0.)); -#36472=DIRECTION('',(0.,0.,-1.)); -#36473=DIRECTION('',(0.,1.,0.)); -#36474=DIRECTION('',(1.,0.,0.)); -#36475=DIRECTION('',(0.,0.,-1.)); -#36476=DIRECTION('',(0.,-1.,0.)); -#36477=DIRECTION('',(0.,-1.,0.)); -#36478=DIRECTION('',(0.,-1.,0.)); -#36479=DIRECTION('',(0.,0.,1.)); -#36480=DIRECTION('',(0.,-1.,0.)); -#36481=DIRECTION('',(0.,-1.,0.)); -#36482=DIRECTION('',(0.,1.,0.)); -#36483=DIRECTION('',(0.,0.,1.)); -#36484=DIRECTION('',(0.,0.,-1.)); -#36485=DIRECTION('',(-1.,0.,0.)); -#36486=DIRECTION('',(0.,0.,-1.)); -#36487=DIRECTION('',(1.,0.,0.)); -#36488=DIRECTION('',(0.,1.,0.)); -#36489=DIRECTION('',(0.,0.,1.)); -#36490=DIRECTION('',(0.,0.,-1.)); -#36491=DIRECTION('',(1.,0.,0.)); -#36492=DIRECTION('',(0.,0.,-1.)); -#36493=DIRECTION('',(1.,0.,0.)); -#36494=DIRECTION('',(-1.,0.,0.)); -#36495=DIRECTION('',(0.,0.,1.)); -#36496=DIRECTION('',(-1.,0.,0.)); -#36497=DIRECTION('',(0.,0.,1.)); -#36498=DIRECTION('',(0.,-1.,0.)); -#36499=DIRECTION('',(0.,1.,0.)); -#36500=DIRECTION('',(0.,1.,0.)); -#36501=DIRECTION('',(0.,0.,-1.)); -#36502=DIRECTION('',(0.,1.,0.)); -#36503=DIRECTION('',(0.,1.,0.)); -#36504=DIRECTION('',(0.,1.,0.)); -#36505=DIRECTION('',(1.,0.,0.)); -#36506=DIRECTION('',(0.,0.,-1.)); -#36507=DIRECTION('',(0.,1.,0.)); -#36508=DIRECTION('',(1.,0.,0.)); -#36509=DIRECTION('',(0.,0.,-1.)); -#36510=DIRECTION('',(0.,-1.,0.)); -#36511=DIRECTION('',(0.,-1.,0.)); -#36512=DIRECTION('',(0.,-1.,0.)); -#36513=DIRECTION('',(0.,0.,1.)); -#36514=DIRECTION('',(0.,-1.,0.)); -#36515=DIRECTION('',(0.,-1.,0.)); -#36516=DIRECTION('',(0.,1.,0.)); -#36517=DIRECTION('',(0.,0.,1.)); -#36518=DIRECTION('',(0.,0.,-1.)); -#36519=DIRECTION('',(-1.,0.,0.)); -#36520=DIRECTION('',(0.,0.,-1.)); -#36521=DIRECTION('',(1.,0.,0.)); -#36522=DIRECTION('',(0.,1.,0.)); -#36523=DIRECTION('',(0.,0.,1.)); -#36524=DIRECTION('',(0.,0.,-1.)); -#36525=DIRECTION('',(1.,0.,0.)); -#36526=DIRECTION('',(0.,0.,-1.)); -#36527=DIRECTION('',(1.,0.,0.)); -#36528=DIRECTION('',(-1.,0.,0.)); -#36529=DIRECTION('',(0.,0.,1.)); -#36530=DIRECTION('',(-1.,0.,0.)); -#36531=DIRECTION('',(0.,0.,1.)); -#36532=DIRECTION('',(0.,-1.,0.)); -#36533=DIRECTION('',(0.,1.,0.)); -#36534=DIRECTION('',(0.,1.,0.)); -#36535=DIRECTION('',(0.,0.,-1.)); -#36536=DIRECTION('',(0.,1.,0.)); -#36537=DIRECTION('',(0.,1.,0.)); -#36538=DIRECTION('',(0.,1.,0.)); -#36539=DIRECTION('',(1.,0.,0.)); -#36540=DIRECTION('',(0.,0.,-1.)); -#36541=DIRECTION('',(0.,1.,0.)); -#36542=DIRECTION('',(1.,0.,0.)); -#36543=DIRECTION('',(0.,0.,-1.)); -#36544=DIRECTION('',(0.,-1.,0.)); -#36545=DIRECTION('',(0.,-1.,0.)); -#36546=DIRECTION('',(0.,-1.,0.)); -#36547=DIRECTION('',(0.,0.,1.)); -#36548=DIRECTION('',(0.,-1.,0.)); -#36549=DIRECTION('',(0.,-1.,0.)); -#36550=DIRECTION('',(0.,1.,0.)); -#36551=DIRECTION('',(0.,0.,1.)); -#36552=DIRECTION('',(0.,0.,-1.)); -#36553=DIRECTION('',(-1.,0.,0.)); -#36554=DIRECTION('',(0.,0.,-1.)); -#36555=DIRECTION('',(1.,0.,0.)); -#36556=DIRECTION('',(0.,1.,0.)); -#36557=DIRECTION('',(0.,0.,1.)); -#36558=DIRECTION('',(0.,0.,-1.)); -#36559=DIRECTION('',(1.,0.,0.)); -#36560=DIRECTION('',(0.,0.,-1.)); -#36561=DIRECTION('',(1.,0.,0.)); -#36562=DIRECTION('',(-1.,0.,0.)); -#36563=DIRECTION('',(0.,0.,1.)); -#36564=DIRECTION('',(-1.,0.,0.)); -#36565=DIRECTION('',(0.,0.,1.)); -#36566=DIRECTION('',(0.,-1.,0.)); -#36567=DIRECTION('',(0.,1.,0.)); -#36568=DIRECTION('',(0.,1.,0.)); -#36569=DIRECTION('',(0.,0.,-1.)); -#36570=DIRECTION('',(0.,1.,0.)); -#36571=DIRECTION('',(0.,1.,0.)); -#36572=DIRECTION('',(0.,1.,0.)); -#36573=DIRECTION('',(1.,0.,0.)); -#36574=DIRECTION('',(0.,0.,-1.)); -#36575=DIRECTION('',(0.,1.,0.)); -#36576=DIRECTION('',(1.,0.,0.)); -#36577=DIRECTION('',(0.,0.,-1.)); -#36578=DIRECTION('',(0.,-1.,0.)); -#36579=DIRECTION('',(0.,-1.,0.)); -#36580=DIRECTION('',(0.,-1.,0.)); -#36581=DIRECTION('',(0.,0.,1.)); -#36582=DIRECTION('',(0.,-1.,0.)); -#36583=DIRECTION('',(0.,-1.,0.)); -#36584=DIRECTION('',(0.,1.,0.)); -#36585=DIRECTION('',(0.,0.,1.)); -#36586=DIRECTION('',(0.,0.,-1.)); -#36587=DIRECTION('',(-1.,0.,0.)); -#36588=DIRECTION('',(0.,0.,-1.)); -#36589=DIRECTION('',(1.,0.,0.)); -#36590=DIRECTION('',(0.,1.,0.)); -#36591=DIRECTION('',(0.,0.,1.)); -#36592=DIRECTION('',(0.,0.,-1.)); -#36593=DIRECTION('',(1.,0.,0.)); -#36594=DIRECTION('',(0.,0.,-1.)); -#36595=DIRECTION('',(1.,0.,0.)); -#36596=DIRECTION('',(-1.,0.,0.)); -#36597=DIRECTION('',(0.,0.,1.)); -#36598=DIRECTION('',(-1.,0.,0.)); -#36599=DIRECTION('',(0.,0.,1.)); -#36600=DIRECTION('',(0.,-1.,0.)); -#36601=DIRECTION('',(0.,1.,0.)); -#36602=DIRECTION('',(0.,1.,0.)); -#36603=DIRECTION('',(0.,0.,-1.)); -#36604=DIRECTION('',(0.,1.,0.)); -#36605=DIRECTION('',(0.,1.,0.)); -#36606=DIRECTION('',(0.,1.,0.)); -#36607=DIRECTION('',(1.,0.,0.)); -#36608=DIRECTION('',(0.,0.,-1.)); -#36609=DIRECTION('',(0.,1.,0.)); -#36610=DIRECTION('',(1.,0.,0.)); -#36611=DIRECTION('',(0.,0.,-1.)); -#36612=DIRECTION('',(0.,-1.,0.)); -#36613=DIRECTION('',(0.,-1.,0.)); -#36614=DIRECTION('',(0.,-1.,0.)); -#36615=DIRECTION('',(0.,0.,1.)); -#36616=DIRECTION('',(0.,-1.,0.)); -#36617=DIRECTION('',(0.,-1.,0.)); -#36618=DIRECTION('',(0.,1.,0.)); -#36619=DIRECTION('',(0.,0.,1.)); -#36620=DIRECTION('',(0.,0.,-1.)); -#36621=DIRECTION('',(-1.,0.,0.)); -#36622=DIRECTION('',(0.,0.,-1.)); -#36623=DIRECTION('',(1.,0.,0.)); -#36624=DIRECTION('',(0.,1.,0.)); -#36625=DIRECTION('',(0.,0.,1.)); -#36626=DIRECTION('',(0.,0.,-1.)); -#36627=DIRECTION('',(1.,0.,0.)); -#36628=DIRECTION('',(0.,0.,-1.)); -#36629=DIRECTION('',(1.,0.,0.)); -#36630=DIRECTION('',(-1.,0.,0.)); -#36631=DIRECTION('',(0.,0.,1.)); -#36632=DIRECTION('',(-1.,0.,0.)); -#36633=DIRECTION('',(0.,0.,1.)); -#36634=DIRECTION('',(0.,-1.,0.)); -#36635=DIRECTION('',(0.,1.,0.)); -#36636=DIRECTION('',(0.,1.,0.)); -#36637=DIRECTION('',(0.,0.,-1.)); -#36638=DIRECTION('',(0.,1.,0.)); -#36639=DIRECTION('',(0.,1.,0.)); -#36640=DIRECTION('',(0.,1.,0.)); -#36641=DIRECTION('',(1.,0.,0.)); -#36642=DIRECTION('',(0.,0.,-1.)); -#36643=DIRECTION('',(0.,1.,0.)); -#36644=DIRECTION('',(1.,0.,0.)); -#36645=DIRECTION('',(0.,0.,-1.)); -#36646=DIRECTION('',(0.,-1.,0.)); -#36647=DIRECTION('',(0.,-1.,0.)); -#36648=DIRECTION('',(0.,-1.,0.)); -#36649=DIRECTION('',(0.,0.,1.)); -#36650=DIRECTION('',(0.,-1.,0.)); -#36651=DIRECTION('',(0.,-1.,0.)); -#36652=DIRECTION('',(0.,1.,0.)); -#36653=DIRECTION('',(0.,0.,1.)); -#36654=DIRECTION('',(0.,0.,-1.)); -#36655=DIRECTION('',(-1.,0.,0.)); -#36656=DIRECTION('',(0.,0.,-1.)); -#36657=DIRECTION('',(1.,0.,0.)); -#36658=DIRECTION('',(0.,1.,0.)); -#36659=DIRECTION('',(0.,0.,1.)); -#36660=DIRECTION('',(0.,0.,-1.)); -#36661=DIRECTION('',(1.,0.,0.)); -#36662=DIRECTION('',(0.,0.,-1.)); -#36663=DIRECTION('',(1.,0.,0.)); -#36664=DIRECTION('',(-1.,0.,0.)); -#36665=DIRECTION('',(0.,0.,1.)); -#36666=DIRECTION('',(-1.,0.,0.)); -#36667=DIRECTION('',(0.,0.,1.)); -#36668=DIRECTION('',(0.,-1.,0.)); -#36669=DIRECTION('',(0.,1.,0.)); -#36670=DIRECTION('',(0.,1.,0.)); -#36671=DIRECTION('',(0.,0.,-1.)); -#36672=DIRECTION('',(0.,1.,0.)); -#36673=DIRECTION('',(0.,1.,0.)); -#36674=DIRECTION('',(0.,1.,0.)); -#36675=DIRECTION('',(1.,0.,0.)); -#36676=DIRECTION('',(0.,0.,-1.)); -#36677=DIRECTION('',(0.,1.,0.)); -#36678=DIRECTION('',(1.,0.,0.)); -#36679=DIRECTION('',(0.,0.,-1.)); -#36680=DIRECTION('',(0.,-1.,0.)); -#36681=DIRECTION('',(0.,-1.,0.)); -#36682=DIRECTION('',(0.,-1.,0.)); -#36683=DIRECTION('',(0.,0.,1.)); -#36684=DIRECTION('',(0.,-1.,0.)); -#36685=DIRECTION('',(0.,-1.,0.)); -#36686=DIRECTION('',(0.,1.,0.)); -#36687=DIRECTION('',(0.,0.,1.)); -#36688=DIRECTION('',(0.,0.,-1.)); -#36689=DIRECTION('',(-1.,0.,0.)); -#36690=DIRECTION('',(0.,0.,-1.)); -#36691=DIRECTION('',(1.,0.,0.)); -#36692=DIRECTION('',(0.,1.,0.)); -#36693=DIRECTION('',(0.,0.,1.)); -#36694=DIRECTION('',(0.,0.,-1.)); -#36695=DIRECTION('',(1.,0.,0.)); -#36696=DIRECTION('',(0.,0.,-1.)); -#36697=DIRECTION('',(1.,0.,0.)); -#36698=DIRECTION('',(-1.,0.,0.)); -#36699=DIRECTION('',(0.,0.,1.)); -#36700=DIRECTION('',(-1.,0.,0.)); -#36701=DIRECTION('',(0.,0.,1.)); -#36702=DIRECTION('',(0.,-1.,0.)); -#36703=DIRECTION('',(0.,1.,0.)); -#36704=DIRECTION('',(0.,1.,0.)); -#36705=DIRECTION('',(0.,0.,-1.)); -#36706=DIRECTION('',(0.,1.,0.)); -#36707=DIRECTION('',(0.,1.,0.)); -#36708=DIRECTION('',(0.,1.,0.)); -#36709=DIRECTION('',(1.,0.,0.)); -#36710=DIRECTION('',(0.,0.,-1.)); -#36711=DIRECTION('',(0.,1.,0.)); -#36712=DIRECTION('',(1.,0.,0.)); -#36713=DIRECTION('',(0.,0.,-1.)); -#36714=DIRECTION('',(0.,-1.,0.)); -#36715=DIRECTION('',(0.,-1.,0.)); -#36716=DIRECTION('',(0.,-1.,0.)); -#36717=DIRECTION('',(0.,0.,1.)); -#36718=DIRECTION('',(0.,-1.,0.)); -#36719=DIRECTION('',(0.,-1.,0.)); -#36720=DIRECTION('',(0.,1.,0.)); -#36721=DIRECTION('',(0.,0.,1.)); -#36722=DIRECTION('',(0.,0.,-1.)); -#36723=DIRECTION('',(-1.,0.,0.)); -#36724=DIRECTION('',(0.,0.,-1.)); -#36725=DIRECTION('',(1.,0.,0.)); -#36726=DIRECTION('',(0.,1.,0.)); -#36727=DIRECTION('',(0.,0.,1.)); -#36728=DIRECTION('',(0.,0.,-1.)); -#36729=DIRECTION('',(1.,0.,0.)); -#36730=DIRECTION('',(0.,0.,-1.)); -#36731=DIRECTION('',(1.,0.,0.)); -#36732=DIRECTION('',(-1.,0.,0.)); -#36733=DIRECTION('',(0.,0.,1.)); -#36734=DIRECTION('',(-1.,0.,0.)); -#36735=DIRECTION('',(0.,0.,1.)); -#36736=DIRECTION('',(0.,-1.,0.)); -#36737=DIRECTION('',(0.,1.,0.)); -#36738=DIRECTION('',(0.,1.,0.)); -#36739=DIRECTION('',(0.,0.,-1.)); -#36740=DIRECTION('',(0.,1.,0.)); -#36741=DIRECTION('',(0.,1.,0.)); -#36742=DIRECTION('',(0.,1.,0.)); -#36743=DIRECTION('',(1.,0.,0.)); -#36744=DIRECTION('',(0.,0.,-1.)); -#36745=DIRECTION('',(0.,1.,0.)); -#36746=DIRECTION('',(1.,0.,0.)); -#36747=DIRECTION('',(0.,0.,-1.)); -#36748=DIRECTION('',(0.,-1.,0.)); -#36749=DIRECTION('',(0.,-1.,0.)); -#36750=DIRECTION('',(0.,-1.,0.)); -#36751=DIRECTION('',(0.,0.,1.)); -#36752=DIRECTION('',(0.,-1.,0.)); -#36753=DIRECTION('',(0.,-1.,0.)); -#36754=DIRECTION('',(0.,1.,0.)); -#36755=DIRECTION('',(0.,0.,1.)); -#36756=DIRECTION('',(0.,0.,-1.)); -#36757=DIRECTION('',(-1.,0.,0.)); -#36758=DIRECTION('',(0.,0.,-1.)); -#36759=DIRECTION('',(1.,0.,0.)); -#36760=DIRECTION('',(0.,1.,0.)); -#36761=DIRECTION('',(0.,0.,1.)); -#36762=DIRECTION('',(0.,0.,-1.)); -#36763=DIRECTION('',(1.,0.,0.)); -#36764=DIRECTION('',(0.,0.,-1.)); -#36765=DIRECTION('',(1.,0.,0.)); -#36766=DIRECTION('',(-1.,0.,0.)); -#36767=DIRECTION('',(0.,0.,1.)); -#36768=DIRECTION('',(-1.,0.,0.)); -#36769=DIRECTION('',(0.,0.,1.)); -#36770=DIRECTION('',(0.,-1.,0.)); -#36771=DIRECTION('',(0.,1.,0.)); -#36772=DIRECTION('',(0.,1.,0.)); -#36773=DIRECTION('',(0.,0.,-1.)); -#36774=DIRECTION('',(0.,1.,0.)); -#36775=DIRECTION('',(0.,1.,0.)); -#36776=DIRECTION('',(0.,1.,0.)); -#36777=DIRECTION('',(1.,0.,0.)); -#36778=DIRECTION('',(0.,0.,-1.)); -#36779=DIRECTION('',(0.,1.,0.)); -#36780=DIRECTION('',(1.,0.,0.)); -#36781=DIRECTION('',(0.,0.,-1.)); -#36782=DIRECTION('',(0.,-1.,0.)); -#36783=DIRECTION('',(0.,-1.,0.)); -#36784=DIRECTION('',(0.,-1.,0.)); -#36785=DIRECTION('',(0.,0.,1.)); -#36786=DIRECTION('',(0.,-1.,0.)); -#36787=DIRECTION('',(0.,-1.,0.)); -#36788=DIRECTION('',(0.,1.,0.)); -#36789=DIRECTION('',(0.,0.,1.)); -#36790=DIRECTION('',(0.,0.,-1.)); -#36791=DIRECTION('',(-1.,0.,0.)); -#36792=DIRECTION('',(0.,0.,-1.)); -#36793=DIRECTION('',(1.,0.,0.)); -#36794=DIRECTION('',(0.,1.,0.)); -#36795=DIRECTION('',(0.,0.,1.)); -#36796=DIRECTION('',(0.,0.,-1.)); -#36797=DIRECTION('',(1.,0.,0.)); -#36798=DIRECTION('',(0.,0.,-1.)); -#36799=DIRECTION('',(1.,0.,0.)); -#36800=DIRECTION('',(-1.,0.,0.)); -#36801=DIRECTION('',(0.,0.,1.)); -#36802=DIRECTION('',(-1.,0.,0.)); -#36803=DIRECTION('',(0.,0.,1.)); -#36804=DIRECTION('',(0.,-1.,0.)); -#36805=DIRECTION('',(0.,1.,0.)); -#36806=DIRECTION('',(0.,1.,0.)); -#36807=DIRECTION('',(0.,0.,-1.)); -#36808=DIRECTION('',(0.,1.,0.)); -#36809=DIRECTION('',(0.,1.,0.)); -#36810=DIRECTION('',(0.,1.,0.)); -#36811=DIRECTION('',(1.,0.,0.)); -#36812=DIRECTION('',(0.,0.,-1.)); -#36813=DIRECTION('',(0.,1.,0.)); -#36814=DIRECTION('',(1.,0.,0.)); -#36815=DIRECTION('',(0.,0.,-1.)); -#36816=DIRECTION('',(0.,-1.,0.)); -#36817=DIRECTION('',(0.,-1.,0.)); -#36818=DIRECTION('',(0.,-1.,0.)); -#36819=DIRECTION('',(0.,0.,1.)); -#36820=DIRECTION('',(0.,-1.,0.)); -#36821=DIRECTION('',(0.,-1.,0.)); -#36822=DIRECTION('',(0.,1.,0.)); -#36823=DIRECTION('',(0.,0.,1.)); -#36824=DIRECTION('',(0.,0.,-1.)); -#36825=DIRECTION('',(-1.,0.,0.)); -#36826=DIRECTION('',(0.,0.,-1.)); -#36827=DIRECTION('',(1.,0.,0.)); -#36828=DIRECTION('',(0.,1.,0.)); -#36829=DIRECTION('',(0.,0.,1.)); -#36830=DIRECTION('',(0.,0.,-1.)); -#36831=DIRECTION('',(1.,0.,0.)); -#36832=DIRECTION('',(0.,0.,-1.)); -#36833=DIRECTION('',(1.,0.,0.)); -#36834=DIRECTION('',(-1.,0.,0.)); -#36835=DIRECTION('',(0.,0.,1.)); -#36836=DIRECTION('',(-1.,0.,0.)); -#36837=DIRECTION('',(0.,0.,1.)); -#36838=DIRECTION('',(0.,-1.,0.)); -#36839=DIRECTION('',(0.,1.,0.)); -#36840=DIRECTION('',(0.,1.,0.)); -#36841=DIRECTION('',(0.,0.,-1.)); -#36842=DIRECTION('',(0.,1.,0.)); -#36843=DIRECTION('',(0.,1.,0.)); -#36844=DIRECTION('',(0.,1.,0.)); -#36845=DIRECTION('',(1.,0.,0.)); -#36846=DIRECTION('',(0.,0.,-1.)); -#36847=DIRECTION('',(0.,1.,0.)); -#36848=DIRECTION('',(1.,0.,0.)); -#36849=DIRECTION('',(0.,0.,-1.)); -#36850=DIRECTION('',(0.,-1.,0.)); -#36851=DIRECTION('',(0.,-1.,0.)); -#36852=DIRECTION('',(0.,-1.,0.)); -#36853=DIRECTION('',(0.,0.,1.)); -#36854=DIRECTION('',(0.,-1.,0.)); -#36855=DIRECTION('',(0.,-1.,0.)); -#36856=DIRECTION('',(0.,1.,0.)); -#36857=DIRECTION('',(0.,0.,1.)); -#36858=DIRECTION('',(0.,0.,-1.)); -#36859=DIRECTION('',(-1.,0.,0.)); -#36860=DIRECTION('',(0.,0.,-1.)); -#36861=DIRECTION('',(1.,0.,0.)); -#36862=DIRECTION('',(0.,1.,0.)); -#36863=DIRECTION('',(0.,0.,1.)); -#36864=DIRECTION('',(0.,0.,-1.)); -#36865=DIRECTION('',(1.,0.,0.)); -#36866=DIRECTION('',(0.,0.,-1.)); -#36867=DIRECTION('',(1.,0.,0.)); -#36868=DIRECTION('',(-1.,0.,0.)); -#36869=DIRECTION('',(0.,0.,1.)); -#36870=DIRECTION('',(-1.,0.,0.)); -#36871=DIRECTION('',(0.,0.,1.)); -#36872=DIRECTION('',(0.,-1.,0.)); -#36873=DIRECTION('',(0.,1.,0.)); -#36874=DIRECTION('',(0.,1.,0.)); -#36875=DIRECTION('',(0.,0.,-1.)); -#36876=DIRECTION('',(0.,1.,0.)); -#36877=DIRECTION('',(0.,1.,0.)); -#36878=DIRECTION('',(0.,1.,0.)); -#36879=DIRECTION('',(1.,0.,0.)); -#36880=DIRECTION('',(0.,0.,-1.)); -#36881=DIRECTION('',(0.,1.,0.)); -#36882=DIRECTION('',(1.,0.,0.)); -#36883=DIRECTION('',(0.,0.,-1.)); -#36884=DIRECTION('',(0.,-1.,0.)); -#36885=DIRECTION('',(0.,-1.,0.)); -#36886=DIRECTION('',(0.,-1.,0.)); -#36887=DIRECTION('',(0.,0.,1.)); -#36888=DIRECTION('',(0.,-1.,0.)); -#36889=DIRECTION('',(0.,-1.,0.)); -#36890=DIRECTION('',(0.,1.,0.)); -#36891=DIRECTION('',(0.,0.,1.)); -#36892=DIRECTION('',(0.,0.,-1.)); -#36893=DIRECTION('',(-1.,0.,0.)); -#36894=DIRECTION('',(0.,0.,-1.)); -#36895=DIRECTION('',(1.,0.,0.)); -#36896=DIRECTION('',(0.,1.,0.)); -#36897=DIRECTION('',(0.,0.,1.)); -#36898=DIRECTION('',(0.,0.,-1.)); -#36899=DIRECTION('',(1.,0.,0.)); -#36900=DIRECTION('',(0.,0.,-1.)); -#36901=DIRECTION('',(1.,0.,0.)); -#36902=DIRECTION('',(-1.,0.,0.)); -#36903=DIRECTION('',(0.,0.,1.)); -#36904=DIRECTION('',(-1.,0.,0.)); -#36905=DIRECTION('',(0.,0.,1.)); -#36906=DIRECTION('',(0.,-1.,0.)); -#36907=DIRECTION('',(0.,1.,0.)); -#36908=DIRECTION('',(0.,1.,0.)); -#36909=DIRECTION('',(0.,0.,-1.)); -#36910=DIRECTION('',(0.,1.,0.)); -#36911=DIRECTION('',(0.,1.,0.)); -#36912=DIRECTION('',(0.,1.,0.)); -#36913=DIRECTION('',(1.,0.,0.)); -#36914=DIRECTION('',(0.,0.,-1.)); -#36915=DIRECTION('',(0.,1.,0.)); -#36916=DIRECTION('',(1.,0.,0.)); -#36917=DIRECTION('',(0.,0.,-1.)); -#36918=DIRECTION('',(0.,-1.,0.)); -#36919=DIRECTION('',(0.,-1.,0.)); -#36920=DIRECTION('',(0.,-1.,0.)); -#36921=DIRECTION('',(0.,0.,1.)); -#36922=DIRECTION('',(0.,-1.,0.)); -#36923=DIRECTION('',(0.,-1.,0.)); -#36924=DIRECTION('',(0.,1.,0.)); -#36925=DIRECTION('',(0.,0.,1.)); -#36926=DIRECTION('',(0.,0.,-1.)); -#36927=DIRECTION('',(-1.,0.,0.)); -#36928=DIRECTION('',(0.,0.,-1.)); -#36929=DIRECTION('',(1.,0.,0.)); -#36930=DIRECTION('',(0.,1.,0.)); -#36931=DIRECTION('',(0.,0.,1.)); -#36932=DIRECTION('',(0.,0.,-1.)); -#36933=DIRECTION('',(1.,0.,0.)); -#36934=DIRECTION('',(0.,0.,-1.)); -#36935=DIRECTION('',(1.,0.,0.)); -#36936=DIRECTION('',(-1.,0.,0.)); -#36937=DIRECTION('',(0.,0.,1.)); -#36938=DIRECTION('',(-1.,0.,0.)); -#36939=DIRECTION('',(0.,0.,1.)); -#36940=DIRECTION('',(0.,-1.,0.)); -#36941=DIRECTION('',(0.,1.,0.)); -#36942=DIRECTION('',(0.,1.,0.)); -#36943=DIRECTION('',(0.,0.,-1.)); -#36944=DIRECTION('',(0.,1.,0.)); -#36945=DIRECTION('',(0.,1.,0.)); -#36946=DIRECTION('',(0.,1.,0.)); -#36947=DIRECTION('',(1.,0.,0.)); -#36948=DIRECTION('',(0.,0.,-1.)); -#36949=DIRECTION('',(0.,1.,0.)); -#36950=DIRECTION('',(1.,0.,0.)); -#36951=DIRECTION('',(0.,0.,-1.)); -#36952=DIRECTION('',(0.,-1.,0.)); -#36953=DIRECTION('',(0.,-1.,0.)); -#36954=DIRECTION('',(0.,-1.,0.)); -#36955=DIRECTION('',(0.,0.,1.)); -#36956=DIRECTION('',(0.,-1.,0.)); -#36957=DIRECTION('',(0.,-1.,0.)); -#36958=DIRECTION('',(0.,1.,0.)); -#36959=DIRECTION('',(0.,0.,1.)); -#36960=DIRECTION('',(0.,0.,-1.)); -#36961=DIRECTION('',(-1.,0.,0.)); -#36962=DIRECTION('',(0.,0.,-1.)); -#36963=DIRECTION('',(1.,0.,0.)); -#36964=DIRECTION('',(0.,1.,0.)); -#36965=DIRECTION('',(0.,0.,1.)); -#36966=DIRECTION('',(0.,0.,-1.)); -#36967=DIRECTION('',(1.,0.,0.)); -#36968=DIRECTION('',(0.,0.,-1.)); -#36969=DIRECTION('',(1.,0.,0.)); -#36970=DIRECTION('',(-1.,0.,0.)); -#36971=DIRECTION('',(0.,0.,1.)); -#36972=DIRECTION('',(-1.,0.,0.)); -#36973=DIRECTION('',(0.,0.,1.)); -#36974=DIRECTION('',(0.,-1.,0.)); -#36975=DIRECTION('',(0.,1.,0.)); -#36976=DIRECTION('',(0.,1.,0.)); -#36977=DIRECTION('',(0.,0.,-1.)); -#36978=DIRECTION('',(0.,1.,0.)); -#36979=DIRECTION('',(0.,1.,0.)); -#36980=DIRECTION('',(0.,1.,0.)); -#36981=DIRECTION('',(1.,0.,0.)); -#36982=DIRECTION('',(0.,0.,-1.)); -#36983=DIRECTION('',(0.,1.,0.)); -#36984=DIRECTION('',(1.,0.,0.)); -#36985=DIRECTION('',(0.,0.,-1.)); -#36986=DIRECTION('',(0.,-1.,0.)); -#36987=DIRECTION('',(0.,-1.,0.)); -#36988=DIRECTION('',(0.,-1.,0.)); -#36989=DIRECTION('',(0.,0.,1.)); -#36990=DIRECTION('',(0.,-1.,0.)); -#36991=DIRECTION('',(0.,-1.,0.)); -#36992=DIRECTION('',(0.,1.,0.)); -#36993=DIRECTION('',(0.,0.,1.)); -#36994=DIRECTION('',(0.,0.,-1.)); -#36995=DIRECTION('',(-1.,0.,0.)); -#36996=DIRECTION('',(0.,0.,-1.)); -#36997=DIRECTION('',(1.,0.,0.)); -#36998=DIRECTION('',(0.,1.,0.)); -#36999=DIRECTION('',(0.,0.,1.)); -#37000=DIRECTION('',(0.,0.,-1.)); -#37001=DIRECTION('',(1.,0.,0.)); -#37002=DIRECTION('',(0.,0.,-1.)); -#37003=DIRECTION('',(1.,0.,0.)); -#37004=DIRECTION('',(-1.,0.,0.)); -#37005=DIRECTION('',(0.,0.,1.)); -#37006=DIRECTION('',(-1.,0.,0.)); -#37007=DIRECTION('',(0.,0.,1.)); -#37008=DIRECTION('',(0.,-1.,0.)); -#37009=DIRECTION('',(0.,1.,0.)); -#37010=DIRECTION('',(0.,1.,0.)); -#37011=DIRECTION('',(0.,0.,-1.)); -#37012=DIRECTION('',(0.,1.,0.)); -#37013=DIRECTION('',(0.,1.,0.)); -#37014=DIRECTION('',(0.,1.,0.)); -#37015=DIRECTION('',(1.,0.,0.)); -#37016=DIRECTION('',(0.,0.,-1.)); -#37017=DIRECTION('',(0.,1.,0.)); -#37018=DIRECTION('',(1.,0.,0.)); -#37019=DIRECTION('',(0.,0.,-1.)); -#37020=DIRECTION('',(0.,-1.,0.)); -#37021=DIRECTION('',(0.,-1.,0.)); -#37022=DIRECTION('',(0.,-1.,0.)); -#37023=DIRECTION('',(0.,0.,1.)); -#37024=DIRECTION('',(0.,-1.,0.)); -#37025=DIRECTION('',(0.,-1.,0.)); -#37026=DIRECTION('',(0.,1.,0.)); -#37027=DIRECTION('',(0.,0.,1.)); -#37028=DIRECTION('',(0.,0.,-1.)); -#37029=DIRECTION('',(-1.,0.,0.)); -#37030=DIRECTION('',(0.,0.,-1.)); -#37031=DIRECTION('',(1.,0.,0.)); -#37032=DIRECTION('',(0.,1.,0.)); -#37033=DIRECTION('',(0.,0.,1.)); -#37034=DIRECTION('',(0.,0.,-1.)); -#37035=DIRECTION('',(1.,0.,0.)); -#37036=DIRECTION('',(0.,0.,-1.)); -#37037=DIRECTION('',(1.,0.,0.)); -#37038=DIRECTION('',(-1.,0.,0.)); -#37039=DIRECTION('',(0.,0.,1.)); -#37040=DIRECTION('',(-1.,0.,0.)); -#37041=DIRECTION('',(0.,0.,1.)); -#37042=DIRECTION('',(0.,-1.,0.)); -#37043=DIRECTION('',(0.,1.,0.)); -#37044=DIRECTION('',(0.,1.,0.)); -#37045=DIRECTION('',(0.,0.,-1.)); -#37046=DIRECTION('',(0.,1.,0.)); -#37047=DIRECTION('',(0.,1.,0.)); -#37048=DIRECTION('',(0.,1.,0.)); -#37049=DIRECTION('',(1.,0.,0.)); -#37050=DIRECTION('',(0.,0.,-1.)); -#37051=DIRECTION('',(0.,1.,0.)); -#37052=DIRECTION('',(1.,0.,0.)); -#37053=DIRECTION('',(0.,0.,-1.)); -#37054=DIRECTION('',(0.,-1.,0.)); -#37055=DIRECTION('',(0.,-1.,0.)); -#37056=DIRECTION('',(0.,-1.,0.)); -#37057=DIRECTION('',(0.,0.,1.)); -#37058=DIRECTION('',(0.,-1.,0.)); -#37059=DIRECTION('',(0.,-1.,0.)); -#37060=DIRECTION('',(0.,1.,0.)); -#37061=DIRECTION('',(0.,0.,1.)); -#37062=DIRECTION('',(0.,0.,-1.)); -#37063=DIRECTION('',(-1.,0.,0.)); -#37064=DIRECTION('',(0.,0.,-1.)); -#37065=DIRECTION('',(1.,0.,0.)); -#37066=DIRECTION('',(0.,1.,0.)); -#37067=DIRECTION('',(0.,0.,1.)); -#37068=DIRECTION('',(0.,0.,-1.)); -#37069=DIRECTION('',(1.,0.,0.)); -#37070=DIRECTION('',(0.,0.,-1.)); -#37071=DIRECTION('',(1.,0.,0.)); -#37072=DIRECTION('',(-1.,0.,0.)); -#37073=DIRECTION('',(0.,0.,1.)); -#37074=DIRECTION('',(-1.,0.,0.)); -#37075=DIRECTION('',(0.,0.,1.)); -#37076=DIRECTION('',(0.,-1.,0.)); -#37077=DIRECTION('',(0.,1.,0.)); -#37078=DIRECTION('',(0.,1.,0.)); -#37079=DIRECTION('',(0.,0.,-1.)); -#37080=DIRECTION('',(0.,1.,0.)); -#37081=DIRECTION('',(0.,1.,0.)); -#37082=DIRECTION('',(0.,1.,0.)); -#37083=DIRECTION('',(1.,0.,0.)); -#37084=DIRECTION('',(0.,0.,-1.)); -#37085=DIRECTION('',(0.,1.,0.)); -#37086=DIRECTION('',(1.,0.,0.)); -#37087=DIRECTION('',(0.,0.,-1.)); -#37088=DIRECTION('',(0.,-1.,0.)); -#37089=DIRECTION('',(0.,-1.,0.)); -#37090=DIRECTION('',(0.,-1.,0.)); -#37091=DIRECTION('',(0.,0.,1.)); -#37092=DIRECTION('',(0.,-1.,0.)); -#37093=DIRECTION('',(0.,-1.,0.)); -#37094=DIRECTION('',(1.,0.,0.)); -#37095=DIRECTION('',(0.,0.,-1.)); -#37096=DIRECTION('',(0.,0.,-1.)); -#37097=DIRECTION('',(0.,1.,0.)); -#37098=DIRECTION('',(1.,0.,0.)); -#37099=DIRECTION('',(0.,0.,-1.)); -#37100=DIRECTION('',(0.,-1.,0.)); -#37101=DIRECTION('',(0.,0.,-1.)); -#37102=DIRECTION('',(0.,-1.,0.)); -#37103=DIRECTION('',(0.,-1.,0.)); -#37104=DIRECTION('',(0.,0.,1.)); -#37105=DIRECTION('',(0.,-1.,0.)); -#37106=DIRECTION('',(0.,-1.,0.)); -#37107=DIRECTION('',(0.,1.,0.)); -#37108=DIRECTION('',(0.,0.,1.)); -#37109=DIRECTION('',(0.,0.,-1.)); -#37110=DIRECTION('',(-1.,0.,0.)); -#37111=DIRECTION('',(1.,0.,0.)); -#37112=DIRECTION('',(0.,1.,0.)); -#37113=DIRECTION('',(0.,0.,1.)); -#37114=DIRECTION('',(1.,0.,0.)); -#37115=DIRECTION('',(0.,0.,-1.)); -#37116=DIRECTION('',(1.,0.,0.)); -#37117=DIRECTION('',(-1.,0.,0.)); -#37118=DIRECTION('',(0.,0.,1.)); -#37119=DIRECTION('',(-1.,0.,0.)); -#37120=DIRECTION('',(0.,0.,1.)); -#37121=DIRECTION('',(0.,-1.,0.)); -#37122=DIRECTION('',(0.,1.,0.)); -#37123=DIRECTION('',(0.,1.,0.)); -#37124=DIRECTION('',(0.,0.,-1.)); -#37125=DIRECTION('',(0.,1.,0.)); -#37126=DIRECTION('',(0.,1.,0.)); -#37127=DIRECTION('',(0.,1.,0.)); -#37128=DIRECTION('',(0.,0.,-1.)); -#37129=DIRECTION('',(-1.,0.,0.)); -#37130=DIRECTION('',(-1.,0.,0.)); -#37131=DIRECTION('',(-0.37139068467776,0.928476687555797,0.)); -#37132=DIRECTION('',(1.,0.,0.)); -#37133=DIRECTION('',(-0.707106781186547,-0.707106781186548,0.)); -#37134=DIRECTION('',(0.,-1.,0.)); -#37135=DIRECTION('',(0.,0.,-1.)); -#37136=DIRECTION('',(-1.,0.,0.)); -#37137=DIRECTION('',(-1.,0.,0.)); -#37138=DIRECTION('',(0.,0.,-1.)); -#37139=DIRECTION('',(-1.,0.,0.)); -#37140=DIRECTION('',(-1.,0.,0.)); -#37141=DIRECTION('',(0.,0.,-1.)); -#37142=DIRECTION('',(-1.,0.,0.)); -#37143=DIRECTION('',(-1.,0.,0.)); -#37144=DIRECTION('',(0.,0.,-1.)); -#37145=DIRECTION('',(-1.,0.,0.)); -#37146=DIRECTION('',(-1.,0.,0.)); -#37147=DIRECTION('',(0.,0.,-1.)); -#37148=DIRECTION('',(-1.,0.,0.)); -#37149=DIRECTION('',(-1.,0.,0.)); -#37150=DIRECTION('',(0.,0.,-1.)); -#37151=DIRECTION('',(-1.,0.,0.)); -#37152=DIRECTION('',(-1.,0.,0.)); -#37153=DIRECTION('',(0.,0.,-1.)); -#37154=DIRECTION('',(-1.,0.,0.)); -#37155=DIRECTION('',(-1.,0.,0.)); -#37156=DIRECTION('',(0.,0.,-1.)); -#37157=DIRECTION('',(-1.,0.,0.)); -#37158=DIRECTION('',(-1.,0.,0.)); -#37159=DIRECTION('',(0.,0.,-1.)); -#37160=DIRECTION('',(-1.,0.,0.)); -#37161=DIRECTION('',(-1.,0.,0.)); -#37162=DIRECTION('',(0.,0.,-1.)); -#37163=DIRECTION('',(-1.,0.,0.)); -#37164=DIRECTION('',(-1.,0.,0.)); -#37165=DIRECTION('',(0.,0.,-1.)); -#37166=DIRECTION('',(-1.,0.,0.)); -#37167=DIRECTION('',(-1.,0.,0.)); -#37168=DIRECTION('',(0.,0.,-1.)); -#37169=DIRECTION('',(-1.,0.,0.)); -#37170=DIRECTION('',(-1.,0.,0.)); -#37171=DIRECTION('',(0.,0.,-1.)); -#37172=DIRECTION('',(-1.,0.,0.)); -#37173=DIRECTION('',(-1.,0.,0.)); -#37174=DIRECTION('',(0.,0.,-1.)); -#37175=DIRECTION('',(-1.,0.,0.)); -#37176=DIRECTION('',(-1.,0.,0.)); -#37177=DIRECTION('',(0.,0.,-1.)); -#37178=DIRECTION('',(-1.,0.,0.)); -#37179=DIRECTION('',(-1.,0.,0.)); -#37180=DIRECTION('',(0.,0.,-1.)); -#37181=DIRECTION('',(-1.,0.,0.)); -#37182=DIRECTION('',(-1.,0.,0.)); -#37183=DIRECTION('',(0.,0.,-1.)); -#37184=DIRECTION('',(-1.,0.,0.)); -#37185=DIRECTION('',(-1.,0.,0.)); -#37186=DIRECTION('',(0.,0.,-1.)); -#37187=DIRECTION('',(-1.,0.,0.)); -#37188=DIRECTION('',(-1.,0.,0.)); -#37189=DIRECTION('',(0.,0.,-1.)); -#37190=DIRECTION('',(-1.,0.,0.)); -#37191=DIRECTION('',(-1.,0.,0.)); -#37192=DIRECTION('',(0.,0.,-1.)); -#37193=DIRECTION('',(-1.,0.,0.)); -#37194=DIRECTION('',(0.,1.,0.)); -#37195=DIRECTION('',(-0.707106781186547,0.707106781186548,0.)); -#37196=DIRECTION('',(1.,0.,0.)); -#37197=DIRECTION('',(-0.37139068467776,-0.928476687555797,0.)); -#37198=DIRECTION('',(-1.,0.,0.)); -#37199=DIRECTION('',(0.,0.,-1.)); -#37200=DIRECTION('',(-1.,0.,0.)); -#37201=DIRECTION('',(-1.,0.,0.)); -#37202=DIRECTION('',(0.,-1.,0.)); -#37203=DIRECTION('',(1.,0.,0.)); -#37204=DIRECTION('',(-0.37139068467776,0.928476687555797,0.)); -#37205=DIRECTION('',(0.,0.,-1.)); -#37206=DIRECTION('',(-1.,0.,0.)); -#37207=DIRECTION('',(-1.,0.,0.)); -#37208=DIRECTION('',(0.,0.,-1.)); -#37209=DIRECTION('',(-1.,0.,0.)); -#37210=DIRECTION('',(-1.,0.,0.)); -#37211=DIRECTION('',(0.,0.,-1.)); -#37212=DIRECTION('',(-1.,0.,0.)); -#37213=DIRECTION('',(-1.,0.,0.)); -#37214=DIRECTION('',(0.,0.,-1.)); -#37215=DIRECTION('',(-1.,0.,0.)); -#37216=DIRECTION('',(-1.,0.,0.)); -#37217=DIRECTION('',(0.,0.,-1.)); -#37218=DIRECTION('',(-1.,0.,0.)); -#37219=DIRECTION('',(-1.,0.,0.)); -#37220=DIRECTION('',(0.,0.,-1.)); -#37221=DIRECTION('',(-1.,0.,0.)); -#37222=DIRECTION('',(-1.,0.,0.)); -#37223=DIRECTION('',(0.,0.,-1.)); -#37224=DIRECTION('',(-1.,0.,0.)); -#37225=DIRECTION('',(-1.,0.,0.)); -#37226=DIRECTION('',(0.,0.,-1.)); -#37227=DIRECTION('',(-1.,0.,0.)); -#37228=DIRECTION('',(-1.,0.,0.)); -#37229=DIRECTION('',(0.,0.,-1.)); -#37230=DIRECTION('',(-1.,0.,0.)); -#37231=DIRECTION('',(-1.,0.,0.)); -#37232=DIRECTION('',(0.,0.,-1.)); -#37233=DIRECTION('',(-1.,0.,0.)); -#37234=DIRECTION('',(-1.,0.,0.)); -#37235=DIRECTION('',(0.,0.,-1.)); -#37236=DIRECTION('',(-1.,0.,0.)); -#37237=DIRECTION('',(-1.,0.,0.)); -#37238=DIRECTION('',(0.,0.,-1.)); -#37239=DIRECTION('',(-1.,0.,0.)); -#37240=DIRECTION('',(-1.,0.,0.)); -#37241=DIRECTION('',(0.,0.,-1.)); -#37242=DIRECTION('',(-1.,0.,0.)); -#37243=DIRECTION('',(-1.,0.,0.)); -#37244=DIRECTION('',(0.,0.,-1.)); -#37245=DIRECTION('',(-1.,0.,0.)); -#37246=DIRECTION('',(-1.,0.,0.)); -#37247=DIRECTION('',(0.,0.,-1.)); -#37248=DIRECTION('',(-1.,0.,0.)); -#37249=DIRECTION('',(-1.,0.,0.)); -#37250=DIRECTION('',(0.,0.,-1.)); -#37251=DIRECTION('',(-1.,0.,0.)); -#37252=DIRECTION('',(-1.,0.,0.)); -#37253=DIRECTION('',(0.,0.,-1.)); -#37254=DIRECTION('',(-1.,0.,0.)); -#37255=DIRECTION('',(-1.,0.,0.)); -#37256=DIRECTION('',(0.,0.,-1.)); -#37257=DIRECTION('',(-1.,0.,0.)); -#37258=DIRECTION('',(-1.,0.,0.)); -#37259=DIRECTION('',(0.,0.,-1.)); -#37260=DIRECTION('',(-1.,0.,0.)); -#37261=DIRECTION('',(-1.,0.,0.)); -#37262=DIRECTION('',(0.,0.,-1.)); -#37263=DIRECTION('',(-1.,0.,0.)); -#37264=DIRECTION('',(-1.,0.,0.)); -#37265=DIRECTION('',(-0.37139068467776,-0.928476687555797,0.)); -#37266=DIRECTION('',(1.,0.,0.)); -#37267=DIRECTION('',(0.,1.,0.)); -#37268=DIRECTION('',(0.,-1.,0.)); -#37269=DIRECTION('',(0.,0.,-1.)); -#37270=DIRECTION('',(0.,0.,-1.)); -#37271=DIRECTION('',(0.,-1.,0.)); -#37272=DIRECTION('',(0.,0.,-1.)); -#37273=DIRECTION('',(0.,-1.,0.)); -#37274=DIRECTION('',(0.,0.,-1.)); -#37275=DIRECTION('',(0.,-1.,0.)); -#37276=DIRECTION('',(0.,0.,-1.)); -#37277=DIRECTION('',(0.,-1.,0.)); -#37278=DIRECTION('',(0.,0.,-1.)); -#37279=DIRECTION('',(0.,-1.,0.)); -#37280=DIRECTION('',(0.,0.,-1.)); -#37281=DIRECTION('',(0.,-1.,0.)); -#37282=DIRECTION('',(0.,0.,-1.)); -#37283=DIRECTION('',(0.,-1.,0.)); -#37284=DIRECTION('',(0.,0.,-1.)); -#37285=DIRECTION('',(0.,-1.,0.)); -#37286=DIRECTION('',(0.,0.,-1.)); -#37287=DIRECTION('',(0.,-1.,0.)); -#37288=DIRECTION('',(0.,0.,-1.)); -#37289=DIRECTION('',(0.,-1.,0.)); -#37290=DIRECTION('',(0.,0.,-1.)); -#37291=DIRECTION('',(0.,-1.,0.)); -#37292=DIRECTION('',(0.,0.,-1.)); -#37293=DIRECTION('',(0.,-1.,0.)); -#37294=DIRECTION('',(0.,0.,-1.)); -#37295=DIRECTION('',(0.,-1.,0.)); -#37296=DIRECTION('',(0.,0.,-1.)); -#37297=DIRECTION('',(0.,-1.,0.)); -#37298=DIRECTION('',(0.,0.,-1.)); -#37299=DIRECTION('',(0.,-1.,0.)); -#37300=DIRECTION('',(0.,0.,-1.)); -#37301=DIRECTION('',(0.,-1.,0.)); -#37302=DIRECTION('',(0.,0.,-1.)); -#37303=DIRECTION('',(0.,-1.,0.)); -#37304=DIRECTION('',(0.,0.,-1.)); -#37305=DIRECTION('',(0.,-1.,0.)); -#37306=DIRECTION('',(0.,0.,-1.)); -#37307=DIRECTION('',(0.,-1.,0.)); -#37308=DIRECTION('',(0.,0.,-1.)); -#37309=DIRECTION('',(0.,-1.,0.)); -#37310=DIRECTION('',(0.,0.,-1.)); -#37311=DIRECTION('',(0.,0.,-1.)); -#37312=DIRECTION('',(0.,0.,1.)); -#37313=DIRECTION('',(1.,0.,0.)); -#37314=DIRECTION('',(-1.,0.,0.)); -#37315=DIRECTION('',(0.,1.,0.)); -#37316=DIRECTION('',(0.,1.,0.)); -#37317=DIRECTION('',(0.,0.,1.)); -#37318=DIRECTION('',(1.,0.,0.)); -#37319=DIRECTION('',(-1.,0.,0.)); -#37320=DIRECTION('',(0.,1.,0.)); -#37321=DIRECTION('',(0.,1.,0.)); -#37322=DIRECTION('',(0.,0.,1.)); -#37323=DIRECTION('',(1.,0.,0.)); -#37324=DIRECTION('',(-1.,0.,0.)); -#37325=DIRECTION('',(0.,1.,0.)); -#37326=DIRECTION('',(0.,1.,0.)); -#37327=DIRECTION('',(0.,0.,1.)); -#37328=DIRECTION('',(1.,0.,0.)); -#37329=DIRECTION('',(-1.,0.,0.)); -#37330=DIRECTION('',(0.,1.,0.)); -#37331=DIRECTION('',(0.,1.,0.)); -#37332=DIRECTION('',(0.,0.,1.)); -#37333=DIRECTION('',(1.,0.,0.)); -#37334=DIRECTION('',(-1.,0.,0.)); -#37335=DIRECTION('',(0.,1.,0.)); -#37336=DIRECTION('',(0.,1.,0.)); -#37337=DIRECTION('',(0.,0.,1.)); -#37338=DIRECTION('',(1.,0.,0.)); -#37339=DIRECTION('',(-1.,0.,0.)); -#37340=DIRECTION('',(0.,1.,0.)); -#37341=DIRECTION('',(0.,1.,0.)); -#37342=DIRECTION('',(0.,0.,1.)); -#37343=DIRECTION('',(1.,0.,0.)); -#37344=DIRECTION('',(-1.,0.,0.)); -#37345=DIRECTION('',(0.,1.,0.)); -#37346=DIRECTION('',(0.,1.,0.)); -#37347=DIRECTION('',(0.,0.,-1.)); -#37348=DIRECTION('',(-1.,0.,0.)); -#37349=DIRECTION('',(0.,-1.,0.)); -#37350=DIRECTION('',(-1.,0.,0.)); -#37351=DIRECTION('',(0.,1.,0.)); -#37352=DIRECTION('',(0.,0.,-1.)); -#37353=DIRECTION('',(-1.,0.,0.)); -#37354=DIRECTION('',(-1.,0.,0.)); -#37355=DIRECTION('',(0.,1.,0.)); -#37356=DIRECTION('',(0.,1.,0.)); -#37357=DIRECTION('',(0.,0.,-1.)); -#37358=DIRECTION('',(-1.,0.,0.)); -#37359=DIRECTION('',(-1.,0.,0.)); -#37360=DIRECTION('',(0.,1.,0.)); -#37361=DIRECTION('',(0.,1.,0.)); -#37362=DIRECTION('',(0.,0.,-1.)); -#37363=DIRECTION('',(-1.,0.,0.)); -#37364=DIRECTION('',(-1.,0.,0.)); -#37365=DIRECTION('',(0.,1.,0.)); -#37366=DIRECTION('',(0.,1.,0.)); -#37367=DIRECTION('',(0.,0.,-1.)); -#37368=DIRECTION('',(-1.,0.,0.)); -#37369=DIRECTION('',(-1.,0.,0.)); -#37370=DIRECTION('',(0.,1.,0.)); -#37371=DIRECTION('',(0.,1.,0.)); -#37372=DIRECTION('',(0.,0.,-1.)); -#37373=DIRECTION('',(-1.,0.,0.)); -#37374=DIRECTION('',(-1.,0.,0.)); -#37375=DIRECTION('',(0.,1.,0.)); -#37376=DIRECTION('',(0.,1.,0.)); -#37377=DIRECTION('',(0.,0.,-1.)); -#37378=DIRECTION('',(-1.,0.,0.)); -#37379=DIRECTION('',(-1.,0.,0.)); -#37380=DIRECTION('',(0.,1.,0.)); -#37381=DIRECTION('',(0.,1.,0.)); -#37382=DIRECTION('',(0.,0.,-1.)); -#37383=DIRECTION('',(-1.,0.,0.)); -#37384=DIRECTION('',(-1.,0.,0.)); -#37385=DIRECTION('',(0.,1.,0.)); -#37386=DIRECTION('',(0.,-1.,0.)); -#37387=DIRECTION('',(0.707106781186548,-0.707106781186547,0.)); -#37388=DIRECTION('',(0.707106781186547,0.707106781186548,0.)); -#37389=DIRECTION('',(-0.580786603962195,-0.580786603962196,0.570415498839329)); -#37390=DIRECTION('',(0.,0.,-1.)); -#37391=DIRECTION('',(0.580786603962195,0.580786603962196,0.570415498839329)); -#37392=DIRECTION('',(-0.577350269189625,-0.577350269189626,0.577350269189626)); -#37393=DIRECTION('',(0.,0.,-1.)); -#37394=DIRECTION('',(-0.707106781186548,-0.707106781186547,0.)); -#37395=DIRECTION('',(0.707106781186547,-0.707106781186548,0.)); -#37396=DIRECTION('',(-0.580786603962195,0.580786603962196,-0.570415498839329)); -#37397=DIRECTION('',(0.,0.,-1.)); -#37398=DIRECTION('',(-0.577350269189625,0.577350269189626,-0.577350269189626)); -#37399=DIRECTION('',(0.580786603962195,-0.580786603962196,-0.570415498839329)); -#37400=DIRECTION('',(0.,0.,-1.)); -#37401=DIRECTION('',(0.,-1.,0.)); -#37402=DIRECTION('',(0.,0.,-1.)); -#37403=DIRECTION('',(-1.,0.,0.)); -#37404=DIRECTION('',(1.,0.,0.)); -#37405=DIRECTION('',(0.,0.,-1.)); -#37406=DIRECTION('',(0.928476687555797,-0.37139068467776,0.)); -#37407=DIRECTION('',(0.37139068467776,0.928476687555797,0.)); -#37408=DIRECTION('',(-0.274423257190994,-0.686058125141297,0.673807186693859)); -#37409=DIRECTION('',(0.274423257190994,0.686058125141297,0.673807186693859)); -#37410=DIRECTION('',(-0.928476687555797,-0.37139068467776,0.)); -#37411=DIRECTION('',(0.37139068467776,-0.928476687555797,0.)); -#37412=DIRECTION('',(-0.274423257190994,0.686058125141297,-0.673807186693859)); -#37413=DIRECTION('',(0.274423257190994,-0.686058125141297,-0.673807186693859)); -#37414=DIRECTION('',(0.,0.,-1.)); -#37415=DIRECTION('',(0.,-1.,0.)); -#37416=DIRECTION('',(0.,0.,-1.)); -#37417=DIRECTION('',(-1.,0.,0.)); -#37418=DIRECTION('',(1.,0.,0.)); -#37419=DIRECTION('',(-0.707106781186548,0.,0.707106781186547)); -#37420=DIRECTION('',(0.707106781186547,0.,0.707106781186548)); -#37421=DIRECTION('',(-0.573851459909649,-0.584285036535362,-0.57385145990965)); -#37422=DIRECTION('',(0.,-1.,0.)); -#37423=DIRECTION('',(0.707106781186548,0.,0.707106781186547)); -#37424=DIRECTION('',(0.707106781186547,0.,-0.707106781186548)); -#37425=DIRECTION('',(-0.573851459909649,0.584285036535362,0.57385145990965)); -#37426=DIRECTION('',(0.,-1.,0.)); -#37427=DIRECTION('',(0.,0.,1.)); -#37428=DIRECTION('',(1.,0.,0.)); -#37429=DIRECTION('',(-1.,0.,0.)); -#37430=DIRECTION('',(0.,1.,0.)); -#37431=DIRECTION('',(0.,-1.,0.)); -#37432=DIRECTION('',(4.33680868994202E-16,1.,0.)); -#37433=DIRECTION('',(0.,0.,1.)); -#37434=DIRECTION('',(1.,0.,0.)); -#37435=DIRECTION('',(0.,-1.,0.)); -#37436=DIRECTION('',(-1.,0.,0.)); -#37437=DIRECTION('',(4.33680868994202E-16,1.,0.)); -#37438=DIRECTION('',(0.,0.,1.)); -#37439=DIRECTION('',(1.,0.,0.)); -#37440=DIRECTION('',(-1.,0.,0.)); -#37441=DIRECTION('',(0.,1.,0.)); -#37442=DIRECTION('',(0.,-1.,0.)); -#37443=DIRECTION('',(0.707106781186548,0.,0.707106781186547)); -#37444=DIRECTION('',(0.707106781186547,0.,-0.707106781186548)); -#37445=DIRECTION('',(0.,0.,-1.)); -#37446=DIRECTION('',(-1.,0.,0.)); -#37447=DIRECTION('',(-1.,0.,0.)); -#37448=DIRECTION('',(0.,1.,0.)); -#37449=DIRECTION('',(0.,1.,0.)); -#37450=DIRECTION('',(2.16840434497102E-15,0.,1.)); -#37451=DIRECTION('',(1.,0.,-2.16840434497102E-15)); -#37452=DIRECTION('',(-1.,0.,2.16840434497102E-15)); -#37453=DIRECTION('',(0.,0.,-1.)); -#37454=DIRECTION('',(-1.,0.,0.)); -#37455=DIRECTION('',(0.,-1.,0.)); -#37456=DIRECTION('',(-1.,0.,0.)); -#37457=DIRECTION('',(0.,0.,1.)); -#37458=DIRECTION('',(0.,0.,1.)); -#37459=DIRECTION('',(1.,0.,0.)); -#37460=DIRECTION('',(-1.,0.,0.)); -#37461=DIRECTION('',(0.,1.,0.)); -#37462=DIRECTION('',(0.,1.,0.)); -#37463=DIRECTION('',(1.,0.,0.)); -#37464=DIRECTION('',(0.,0.,-1.)); -#37465=DIRECTION('',(0.,0.,1.)); -#37466=DIRECTION('',(0.,1.,0.)); -#37467=DIRECTION('',(0.,0.,1.)); -#37468=DIRECTION('',(0.,0.,-1.)); -#37469=DIRECTION('',(-1.,0.,0.)); -#37470=DIRECTION('',(0.,0.,1.)); -#37471=DIRECTION('',(0.,-1.,0.)); -#37472=DIRECTION('',(0.,0.,1.)); -#37473=DIRECTION('',(0.,0.,1.)); -#37474=DIRECTION('',(1.,0.,0.)); -#37475=DIRECTION('',(0.,-1.,0.)); -#37476=DIRECTION('',(-1.,0.,0.)); -#37477=DIRECTION('',(0.,1.,0.)); -#37478=DIRECTION('',(0.,0.,1.)); -#37479=DIRECTION('',(0.,0.,1.)); -#37480=DIRECTION('',(0.,1.,0.)); -#37481=DIRECTION('',(0.,0.,1.)); -#37482=DIRECTION('',(0.,0.,1.)); -#37483=DIRECTION('',(-1.,0.,0.)); -#37484=DIRECTION('',(0.,0.,1.)); -#37485=DIRECTION('',(0.,0.,-1.)); -#37486=DIRECTION('',(-1.,0.,0.)); -#37487=DIRECTION('',(0.,0.,1.)); -#37488=DIRECTION('',(0.,0.,-1.)); -#37489=DIRECTION('',(-1.,0.,0.)); -#37490=DIRECTION('',(0.,0.,1.)); -#37491=DIRECTION('',(0.,0.,-1.)); -#37492=DIRECTION('',(-1.,0.,0.)); -#37493=DIRECTION('',(0.,0.,1.)); -#37494=DIRECTION('',(0.,0.,-1.)); -#37495=DIRECTION('',(-1.,0.,0.)); -#37496=DIRECTION('',(0.,0.,1.)); -#37497=DIRECTION('',(0.,0.,-1.)); -#37498=DIRECTION('',(-1.,0.,0.)); -#37499=DIRECTION('',(0.,0.,1.)); -#37500=DIRECTION('',(0.,0.,-1.)); -#37501=DIRECTION('',(-1.,0.,0.)); -#37502=DIRECTION('',(0.,0.,1.)); -#37503=DIRECTION('',(0.,0.,-1.)); -#37504=DIRECTION('',(-1.,0.,0.)); -#37505=DIRECTION('',(0.,0.,1.)); -#37506=DIRECTION('',(-1.,0.,0.)); -#37507=DIRECTION('',(-1.,0.,0.)); -#37508=DIRECTION('',(0.,0.,1.)); -#37509=DIRECTION('',(0.,1.,0.)); -#37510=DIRECTION('',(0.,-1.,0.)); -#37511=DIRECTION('',(1.,0.,0.)); -#37512=DIRECTION('',(0.,0.,-1.)); -#37513=DIRECTION('',(0.,1.,0.)); -#37514=DIRECTION('',(0.,1.,0.)); -#37515=DIRECTION('',(0.,0.,1.)); -#37516=DIRECTION('',(1.,0.,0.)); -#37517=DIRECTION('',(-1.,4.33680868994202E-16,0.)); -#37518=DIRECTION('',(-4.33680868994202E-16,-1.,0.)); -#37519=DIRECTION('',(0.,0.,-1.)); -#37520=DIRECTION('',(0.,-1.,0.)); -#37521=DIRECTION('',(0.,0.,-1.)); -#37522=DIRECTION('',(2.60208521396521E-15,0.,1.)); -#37523=DIRECTION('',(1.,0.,0.)); -#37524=DIRECTION('',(0.,0.,-1.)); -#37525=DIRECTION('',(0.,0.,-1.)); -#37526=DIRECTION('',(0.,-1.,0.)); -#37527=DIRECTION('',(0.,0.,-1.)); -#37528=DIRECTION('',(8.67361737988404E-16,0.,-1.)); -#37529=DIRECTION('',(-1.,0.,0.)); -#37530=DIRECTION('',(0.,0.,1.)); -#37531=DIRECTION('',(0.,0.,-1.)); -#37532=DIRECTION('',(0.,1.,0.)); -#37533=DIRECTION('',(0.,1.,0.)); -#37534=DIRECTION('',(1.,0.,0.)); -#37535=DIRECTION('',(0.,0.,-1.)); -#37536=DIRECTION('',(0.,1.,0.)); -#37537=DIRECTION('',(0.,0.,-1.)); -#37538=DIRECTION('',(0.,-1.,0.)); -#37539=DIRECTION('',(0.,-1.,0.)); -#37540=DIRECTION('',(0.,0.,-1.)); -#37541=DIRECTION('',(-1.,0.,0.)); -#37542=DIRECTION('',(0.,0.,1.)); -#37543=DIRECTION('',(0.,0.,-1.)); -#37544=DIRECTION('',(-1.,0.,0.)); -#37545=DIRECTION('',(0.,0.,1.)); -#37546=DIRECTION('',(0.,0.,-1.)); -#37547=DIRECTION('',(-1.,0.,0.)); -#37548=DIRECTION('',(0.,0.,1.)); -#37549=DIRECTION('',(0.,0.,-1.)); -#37550=DIRECTION('',(-1.,0.,0.)); -#37551=DIRECTION('',(0.,0.,1.)); -#37552=DIRECTION('',(0.,0.,-1.)); -#37553=DIRECTION('',(-1.,0.,0.)); -#37554=DIRECTION('',(0.,0.,1.)); -#37555=DIRECTION('',(0.,0.,-1.)); -#37556=DIRECTION('',(-1.,0.,0.)); -#37557=DIRECTION('',(0.,0.,1.)); -#37558=DIRECTION('',(0.,0.,-1.)); -#37559=DIRECTION('',(-1.,0.,0.)); -#37560=DIRECTION('',(0.,0.,1.)); -#37561=DIRECTION('',(0.,0.,-1.)); -#37562=DIRECTION('',(-1.,0.,0.)); -#37563=DIRECTION('',(-1.,0.,0.)); -#37564=DIRECTION('',(0.,0.,1.)); -#37565=DIRECTION('',(1.,0.,0.)); -#37566=DIRECTION('',(1.,0.,0.)); -#37567=DIRECTION('',(0.,0.,-1.)); -#37568=DIRECTION('',(-1.,0.,0.)); -#37569=DIRECTION('',(0.,0.,1.)); -#37570=DIRECTION('',(0.,0.700708067553366,-0.713448108880827)); -#37571=DIRECTION('',(0.,0.713448108880827,0.700708067553366)); -#37572=DIRECTION('',(0.,0.700708067553366,-0.713448108880827)); -#37573=DIRECTION('',(0.,0.713448108880827,0.700708067553366)); -#37574=DIRECTION('',(0.,0.700708067553366,0.713448108880826)); -#37575=DIRECTION('',(0.,-0.713448108880826,0.700708067553366)); -#37576=DIRECTION('',(0.,0.700708067553366,0.713448108880826)); -#37577=DIRECTION('',(0.,-0.713448108880826,0.700708067553366)); -#37578=DIRECTION('',(0.,0.,-1.)); -#37579=DIRECTION('',(-1.,0.,0.)); -#37580=DIRECTION('',(0.,1.,0.)); -#37581=DIRECTION('',(1.,0.,0.)); -#37582=DIRECTION('',(0.,0.,-1.)); -#37583=DIRECTION('',(-1.,0.,0.)); -#37584=DIRECTION('',(0.,0.,1.)); -#37585=DIRECTION('',(0.,1.,0.)); -#37586=DIRECTION('',(0.,0.,-1.)); -#37587=DIRECTION('',(-1.,0.,0.)); -#37588=DIRECTION('',(0.,1.,0.)); -#37589=DIRECTION('',(1.,0.,0.)); -#37590=DIRECTION('',(0.,0.,-1.)); -#37591=DIRECTION('',(-1.,0.,0.)); -#37592=DIRECTION('',(0.,0.,1.)); -#37593=DIRECTION('',(0.,1.,0.)); -#37594=DIRECTION('',(0.,0.,-1.)); -#37595=DIRECTION('',(-1.,0.,0.)); -#37596=DIRECTION('',(0.,1.,0.)); -#37597=DIRECTION('',(1.,0.,0.)); -#37598=DIRECTION('',(0.,0.,-1.)); -#37599=DIRECTION('',(-1.,0.,0.)); -#37600=DIRECTION('',(0.,0.,1.)); -#37601=DIRECTION('',(0.,1.,0.)); -#37602=DIRECTION('',(0.,0.,-1.)); -#37603=DIRECTION('',(-1.,0.,0.)); -#37604=DIRECTION('',(0.,1.,0.)); -#37605=DIRECTION('',(1.,0.,0.)); -#37606=DIRECTION('',(0.,0.,-1.)); -#37607=DIRECTION('',(-1.,0.,0.)); -#37608=DIRECTION('',(0.,0.,1.)); -#37609=DIRECTION('',(0.,1.,0.)); -#37610=DIRECTION('',(0.,0.,-1.)); -#37611=DIRECTION('',(-1.,0.,0.)); -#37612=DIRECTION('',(0.,1.,0.)); -#37613=DIRECTION('',(1.,0.,0.)); -#37614=DIRECTION('',(0.,0.,-1.)); -#37615=DIRECTION('',(-1.,0.,0.)); -#37616=DIRECTION('',(0.,0.,1.)); -#37617=DIRECTION('',(0.,1.,0.)); -#37618=DIRECTION('',(0.,0.,-1.)); -#37619=DIRECTION('',(-1.,0.,0.)); -#37620=DIRECTION('',(0.,1.,0.)); -#37621=DIRECTION('',(1.,0.,0.)); -#37622=DIRECTION('',(0.,0.,-1.)); -#37623=DIRECTION('',(-1.,0.,0.)); -#37624=DIRECTION('',(0.,0.,1.)); -#37625=DIRECTION('',(0.,1.,0.)); -#37626=DIRECTION('',(0.,0.,-1.)); -#37627=DIRECTION('',(-1.,0.,0.)); -#37628=DIRECTION('',(0.,1.,0.)); -#37629=DIRECTION('',(1.,0.,0.)); -#37630=DIRECTION('',(0.,0.,-1.)); -#37631=DIRECTION('',(-1.,0.,0.)); -#37632=DIRECTION('',(0.,0.,1.)); -#37633=DIRECTION('',(0.,1.,0.)); -#37634=DIRECTION('',(0.,0.,-1.)); -#37635=DIRECTION('',(-1.,0.,0.)); -#37636=DIRECTION('',(0.,0.,1.)); -#37637=DIRECTION('',(1.,0.,0.)); -#37638=DIRECTION('',(0.,1.,0.)); -#37639=DIRECTION('',(-1.,0.,0.)); -#37640=DIRECTION('',(0.,0.,1.)); -#37641=DIRECTION('',(1.,0.,0.)); -#37642=DIRECTION('',(0.,0.,-1.)); -#37643=DIRECTION('',(0.,1.,0.)); -#37644=DIRECTION('',(0.,0.,1.)); -#37645=DIRECTION('',(1.,0.,0.)); -#37646=DIRECTION('',(0.,1.,0.)); -#37647=DIRECTION('',(-1.,0.,0.)); -#37648=DIRECTION('',(0.,0.,1.)); -#37649=DIRECTION('',(1.,0.,0.)); -#37650=DIRECTION('',(0.,0.,-1.)); -#37651=DIRECTION('',(0.,1.,0.)); -#37652=DIRECTION('',(0.,0.,1.)); -#37653=DIRECTION('',(1.,0.,0.)); -#37654=DIRECTION('',(0.,1.,0.)); -#37655=DIRECTION('',(-1.,0.,0.)); -#37656=DIRECTION('',(0.,0.,1.)); -#37657=DIRECTION('',(1.,0.,0.)); -#37658=DIRECTION('',(0.,0.,-1.)); -#37659=DIRECTION('',(0.,1.,0.)); -#37660=DIRECTION('',(0.,0.,1.)); -#37661=DIRECTION('',(1.,0.,0.)); -#37662=DIRECTION('',(0.,1.,0.)); -#37663=DIRECTION('',(-1.,0.,0.)); -#37664=DIRECTION('',(0.,0.,1.)); -#37665=DIRECTION('',(1.,0.,0.)); -#37666=DIRECTION('',(0.,0.,-1.)); -#37667=DIRECTION('',(0.,1.,0.)); -#37668=DIRECTION('',(0.,0.,1.)); -#37669=DIRECTION('',(1.,0.,0.)); -#37670=DIRECTION('',(0.,1.,0.)); -#37671=DIRECTION('',(-1.,0.,0.)); -#37672=DIRECTION('',(0.,0.,1.)); -#37673=DIRECTION('',(1.,0.,0.)); -#37674=DIRECTION('',(0.,0.,-1.)); -#37675=DIRECTION('',(0.,1.,0.)); -#37676=DIRECTION('',(0.,0.,1.)); -#37677=DIRECTION('',(1.,0.,0.)); -#37678=DIRECTION('',(0.,1.,0.)); -#37679=DIRECTION('',(-1.,0.,0.)); -#37680=DIRECTION('',(0.,0.,1.)); -#37681=DIRECTION('',(1.,0.,0.)); -#37682=DIRECTION('',(0.,0.,-1.)); -#37683=DIRECTION('',(0.,1.,0.)); -#37684=DIRECTION('',(0.,0.,1.)); -#37685=DIRECTION('',(1.,0.,0.)); -#37686=DIRECTION('',(0.,1.,0.)); -#37687=DIRECTION('',(-1.,0.,0.)); -#37688=DIRECTION('',(0.,0.,1.)); -#37689=DIRECTION('',(0.,0.,1.)); -#37690=DIRECTION('',(1.,0.,0.)); -#37691=DIRECTION('',(0.,1.,0.)); -#37692=DIRECTION('',(1.,0.,0.)); -#37693=DIRECTION('',(0.,0.,-1.)); -#37694=DIRECTION('',(0.,0.,1.)); -#37695=DIRECTION('',(1.,0.,0.)); -#37696=DIRECTION('',(0.,0.,1.)); -#37697=DIRECTION('',(1.,0.,0.)); -#37698=DIRECTION('',(0.,0.,1.)); -#37699=DIRECTION('',(1.,0.,0.)); -#37700=DIRECTION('',(0.,0.,1.)); -#37701=DIRECTION('',(1.,0.,0.)); -#37702=DIRECTION('',(0.,0.,1.)); -#37703=DIRECTION('',(1.,0.,0.)); -#37704=DIRECTION('',(0.,0.,1.)); -#37705=DIRECTION('',(1.,0.,0.)); -#37706=DIRECTION('',(0.,0.,1.)); -#37707=DIRECTION('',(1.,0.,0.)); -#37708=DIRECTION('',(0.,0.,1.)); -#37709=DIRECTION('',(1.,0.,0.)); -#37710=DIRECTION('',(0.,0.,1.)); -#37711=DIRECTION('',(1.,0.,0.)); -#37712=DIRECTION('',(0.,0.,1.)); -#37713=DIRECTION('',(1.,0.,0.)); -#37714=DIRECTION('',(0.,0.,1.)); -#37715=DIRECTION('',(1.,0.,0.)); -#37716=DIRECTION('',(0.,0.,1.)); -#37717=DIRECTION('',(1.,0.,0.)); -#37718=DIRECTION('',(0.,0.,1.)); -#37719=DIRECTION('',(1.,0.,0.)); -#37720=DIRECTION('',(0.,0.,1.)); -#37721=DIRECTION('',(1.,0.,0.)); -#37722=DIRECTION('',(0.,0.,1.)); -#37723=DIRECTION('',(1.,0.,0.)); -#37724=DIRECTION('',(0.,0.,1.)); -#37725=DIRECTION('',(1.,0.,0.)); -#37726=DIRECTION('',(0.,0.,1.)); -#37727=DIRECTION('',(1.,0.,0.)); -#37728=DIRECTION('',(0.,0.,1.)); -#37729=DIRECTION('',(1.,0.,0.)); -#37730=DIRECTION('',(0.,0.,1.)); -#37731=DIRECTION('',(1.,0.,0.)); -#37732=DIRECTION('',(0.,0.,1.)); -#37733=DIRECTION('',(1.,0.,0.)); -#37734=DIRECTION('',(0.,0.,1.)); -#37735=DIRECTION('',(1.,0.,0.)); -#37736=DIRECTION('',(0.,0.,1.)); -#37737=DIRECTION('',(1.,0.,0.)); -#37738=DIRECTION('',(0.,0.,1.)); -#37739=DIRECTION('',(1.,0.,0.)); -#37740=DIRECTION('',(0.,0.,1.)); -#37741=DIRECTION('',(1.,0.,0.)); -#37742=DIRECTION('',(0.,0.,1.)); -#37743=DIRECTION('',(1.,0.,0.)); -#37744=DIRECTION('',(0.,0.,1.)); -#37745=DIRECTION('',(1.,0.,0.)); -#37746=DIRECTION('',(0.,0.,1.)); -#37747=DIRECTION('',(1.,0.,0.)); -#37748=DIRECTION('',(0.,0.,1.)); -#37749=DIRECTION('',(1.,0.,0.)); -#37750=DIRECTION('',(0.,0.,1.)); -#37751=DIRECTION('',(1.,0.,0.)); -#37752=DIRECTION('',(0.,0.,1.)); -#37753=DIRECTION('',(1.,0.,0.)); -#37754=DIRECTION('',(0.,0.,1.)); -#37755=DIRECTION('',(1.,0.,0.)); -#37756=DIRECTION('',(0.,0.,1.)); -#37757=DIRECTION('',(1.,0.,0.)); -#37758=DIRECTION('',(0.,0.,1.)); -#37759=DIRECTION('',(1.,0.,0.)); -#37760=DIRECTION('',(0.,0.,1.)); -#37761=DIRECTION('',(1.,0.,0.)); -#37762=DIRECTION('',(0.,0.,1.)); -#37763=DIRECTION('',(1.,0.,0.)); -#37764=DIRECTION('',(0.,0.,1.)); -#37765=DIRECTION('',(1.,0.,0.)); -#37766=DIRECTION('',(0.,0.,1.)); -#37767=DIRECTION('',(1.,0.,0.)); -#37768=DIRECTION('',(0.,0.,1.)); -#37769=DIRECTION('',(1.,0.,0.)); -#37770=DIRECTION('',(0.,0.,1.)); -#37771=DIRECTION('',(1.,0.,0.)); -#37772=DIRECTION('',(0.,0.,1.)); -#37773=DIRECTION('',(1.,0.,0.)); -#37774=DIRECTION('',(0.,0.,1.)); -#37775=DIRECTION('',(1.,0.,0.)); -#37776=DIRECTION('',(-1.,0.,0.)); -#37777=DIRECTION('',(0.,0.,-1.)); -#37778=DIRECTION('',(-1.,0.,0.)); -#37779=DIRECTION('',(-1.,0.,0.)); -#37780=DIRECTION('',(-1.,0.,0.)); -#37781=DIRECTION('',(0.,0.,1.)); -#37782=DIRECTION('',(0.,0.,-1.)); -#37783=DIRECTION('',(-1.,0.,0.)); -#37784=DIRECTION('',(-1.,0.,0.)); -#37785=DIRECTION('',(0.,0.,1.)); -#37786=DIRECTION('',(1.,0.,0.)); -#37787=DIRECTION('',(-1.,0.,0.)); -#37788=DIRECTION('',(-1.,0.,0.)); -#37789=DIRECTION('',(0.,0.,1.)); -#37790=DIRECTION('',(0.,0.,-1.)); -#37791=DIRECTION('',(-1.,0.,0.)); -#37792=DIRECTION('',(-1.,0.,0.)); -#37793=DIRECTION('',(0.,0.,1.)); -#37794=DIRECTION('',(1.,0.,0.)); -#37795=DIRECTION('',(-1.,0.,0.)); -#37796=DIRECTION('',(-1.,0.,0.)); -#37797=DIRECTION('',(0.,0.,1.)); -#37798=DIRECTION('',(0.,0.,-1.)); -#37799=DIRECTION('',(-1.,0.,0.)); -#37800=DIRECTION('',(-1.,0.,0.)); -#37801=DIRECTION('',(0.,0.,1.)); -#37802=DIRECTION('',(1.,0.,0.)); -#37803=DIRECTION('',(-1.,0.,0.)); -#37804=DIRECTION('',(-1.,0.,0.)); -#37805=DIRECTION('',(0.,0.,1.)); -#37806=DIRECTION('',(0.,0.,-1.)); -#37807=DIRECTION('',(-1.,0.,0.)); -#37808=DIRECTION('',(-1.,0.,0.)); -#37809=DIRECTION('',(0.,0.,1.)); -#37810=DIRECTION('',(1.,0.,0.)); -#37811=DIRECTION('',(-1.,0.,0.)); -#37812=DIRECTION('',(-1.,0.,0.)); -#37813=DIRECTION('',(0.,0.,1.)); -#37814=DIRECTION('',(0.,0.,-1.)); -#37815=DIRECTION('',(-1.,0.,0.)); -#37816=DIRECTION('',(-1.,0.,0.)); -#37817=DIRECTION('',(0.,0.,1.)); -#37818=DIRECTION('',(1.,0.,0.)); -#37819=DIRECTION('',(-1.,0.,0.)); -#37820=DIRECTION('',(-1.,0.,0.)); -#37821=DIRECTION('',(0.,0.,1.)); -#37822=DIRECTION('',(0.,0.,-1.)); -#37823=DIRECTION('',(-1.,0.,0.)); -#37824=DIRECTION('',(-1.,0.,0.)); -#37825=DIRECTION('',(0.,0.,1.)); -#37826=DIRECTION('',(1.,0.,0.)); -#37827=DIRECTION('',(-1.,0.,0.)); -#37828=DIRECTION('',(-1.,0.,0.)); -#37829=DIRECTION('',(0.,0.,1.)); -#37830=DIRECTION('',(0.,0.,-1.)); -#37831=DIRECTION('',(-1.,0.,0.)); -#37832=DIRECTION('',(-1.,0.,0.)); -#37833=DIRECTION('',(0.,0.,1.)); -#37834=DIRECTION('',(1.,0.,0.)); -#37835=DIRECTION('',(-1.,0.,0.)); -#37836=DIRECTION('',(-1.,0.,0.)); -#37837=DIRECTION('',(0.,0.,1.)); -#37838=DIRECTION('',(0.,0.,-1.)); -#37839=DIRECTION('',(-1.,0.,0.)); -#37840=DIRECTION('',(-1.,0.,0.)); -#37841=DIRECTION('',(0.,0.,1.)); -#37842=DIRECTION('',(1.,0.,0.)); -#37843=DIRECTION('',(-1.,0.,0.)); -#37844=DIRECTION('',(-1.,0.,0.)); -#37845=DIRECTION('',(0.,0.,1.)); -#37846=DIRECTION('',(0.,0.,-1.)); -#37847=DIRECTION('',(-1.,0.,0.)); -#37848=DIRECTION('',(-1.,0.,0.)); -#37849=DIRECTION('',(0.,0.,1.)); -#37850=DIRECTION('',(1.,0.,0.)); -#37851=DIRECTION('',(-1.,0.,0.)); -#37852=DIRECTION('',(-1.,0.,0.)); -#37853=DIRECTION('',(0.,0.,1.)); -#37854=DIRECTION('',(0.,0.,-1.)); -#37855=DIRECTION('',(-1.,0.,0.)); -#37856=DIRECTION('',(-1.,0.,0.)); -#37857=DIRECTION('',(0.,0.,1.)); -#37858=DIRECTION('',(1.,0.,0.)); -#37859=DIRECTION('',(-1.,0.,0.)); -#37860=DIRECTION('',(-1.,0.,0.)); -#37861=DIRECTION('',(0.,0.,1.)); -#37862=DIRECTION('',(0.,0.,-1.)); -#37863=DIRECTION('',(-1.,0.,0.)); -#37864=DIRECTION('',(-1.,0.,0.)); -#37865=DIRECTION('',(0.,0.,1.)); -#37866=DIRECTION('',(1.,0.,0.)); -#37867=DIRECTION('',(-1.,0.,0.)); -#37868=DIRECTION('',(-1.,0.,0.)); -#37869=DIRECTION('',(0.,0.,1.)); -#37870=DIRECTION('',(0.,0.,-1.)); -#37871=DIRECTION('',(-1.,0.,0.)); -#37872=DIRECTION('',(-1.,0.,0.)); -#37873=DIRECTION('',(0.,0.,1.)); -#37874=DIRECTION('',(1.,0.,0.)); -#37875=DIRECTION('',(-1.,0.,0.)); -#37876=DIRECTION('',(-1.,0.,0.)); -#37877=DIRECTION('',(0.,0.,1.)); -#37878=DIRECTION('',(0.,0.,-1.)); -#37879=DIRECTION('',(-1.,0.,0.)); -#37880=DIRECTION('',(-1.,0.,0.)); -#37881=DIRECTION('',(0.,0.,1.)); -#37882=DIRECTION('',(1.,0.,0.)); -#37883=DIRECTION('',(-1.,0.,0.)); -#37884=DIRECTION('',(-1.,0.,0.)); -#37885=DIRECTION('',(0.,0.,1.)); -#37886=DIRECTION('',(0.,0.,-1.)); -#37887=DIRECTION('',(-1.,0.,0.)); -#37888=DIRECTION('',(-1.,0.,0.)); -#37889=DIRECTION('',(0.,0.,1.)); -#37890=DIRECTION('',(1.,0.,0.)); -#37891=DIRECTION('',(-1.,0.,0.)); -#37892=DIRECTION('',(-1.,0.,0.)); -#37893=DIRECTION('',(0.,0.,1.)); -#37894=DIRECTION('',(0.,0.,-1.)); -#37895=DIRECTION('',(-1.,0.,0.)); -#37896=DIRECTION('',(-1.,0.,0.)); -#37897=DIRECTION('',(0.,0.,1.)); -#37898=DIRECTION('',(1.,0.,0.)); -#37899=DIRECTION('',(-1.,0.,0.)); -#37900=DIRECTION('',(-1.,0.,0.)); -#37901=DIRECTION('',(0.,0.,1.)); -#37902=DIRECTION('',(0.,0.,-1.)); -#37903=DIRECTION('',(-1.,0.,0.)); -#37904=DIRECTION('',(-1.,0.,0.)); -#37905=DIRECTION('',(0.,0.,1.)); -#37906=DIRECTION('',(1.,0.,0.)); -#37907=DIRECTION('',(-1.,0.,0.)); -#37908=DIRECTION('',(-1.,0.,0.)); -#37909=DIRECTION('',(0.,0.,1.)); -#37910=DIRECTION('',(0.,0.,-1.)); -#37911=DIRECTION('',(-1.,0.,0.)); -#37912=DIRECTION('',(-1.,0.,0.)); -#37913=DIRECTION('',(0.,0.,1.)); -#37914=DIRECTION('',(1.,0.,0.)); -#37915=DIRECTION('',(-1.,0.,0.)); -#37916=DIRECTION('',(-1.,0.,0.)); -#37917=DIRECTION('',(0.,0.,1.)); -#37918=DIRECTION('',(0.,0.,-1.)); -#37919=DIRECTION('',(-1.,0.,0.)); -#37920=DIRECTION('',(-1.,0.,0.)); -#37921=DIRECTION('',(0.,0.,1.)); -#37922=DIRECTION('',(1.,0.,0.)); -#37923=DIRECTION('',(-1.,0.,0.)); -#37924=DIRECTION('',(-1.,0.,0.)); -#37925=DIRECTION('',(0.,0.,1.)); -#37926=DIRECTION('',(-1.,0.,0.)); -#37927=DIRECTION('',(0.,0.,1.)); -#37928=DIRECTION('',(-1.,0.,0.)); -#37929=DIRECTION('',(-1.,0.,0.)); -#37930=DIRECTION('',(0.,0.,-1.)); -#37931=DIRECTION('',(-1.,0.,0.)); -#37932=DIRECTION('',(0.,0.,1.)); -#37933=DIRECTION('',(1.,0.,0.)); -#37934=DIRECTION('',(-0.866025402944834,0.,0.500000001454238)); -#37935=DIRECTION('',(0.500000001454238,0.,0.866025402944834)); -#37936=DIRECTION('',(0.500000001454238,0.,0.866025402944834)); -#37937=DIRECTION('',(0.,1.,0.)); -#37938=DIRECTION('',(0.,1.,0.)); -#37939=DIRECTION('',(0.866025402944833,0.,0.500000001454239)); -#37940=DIRECTION('',(0.500000001454239,0.,-0.866025402944833)); -#37941=DIRECTION('',(0.,-1.,0.)); -#37942=DIRECTION('',(0.500000001454239,0.,-0.866025402944833)); -#37943=DIRECTION('',(0.,1.,0.)); -#37944=DIRECTION('',(0.,0.,1.)); -#37945=DIRECTION('',(1.,0.,0.)); -#37946=DIRECTION('',(0.923076923076923,0.384615384615385,0.)); -#37947=DIRECTION('',(-0.384615384615385,0.923076923076923,0.)); -#37948=DIRECTION('',(0.384615384615385,-0.923076923076923,0.)); -#37949=DIRECTION('',(0.,0.,-1.)); -#37950=DIRECTION('',(-0.923076923076923,0.384615384615385,0.)); -#37951=DIRECTION('',(-0.384615384615385,-0.923076923076923,0.)); -#37952=DIRECTION('',(0.384615384615385,0.923076923076923,0.)); -#37953=DIRECTION('',(0.,0.,1.)); -#37954=DIRECTION('',(1.,0.,0.)); -#37955=DIRECTION('',(0.,-1.,0.)); -#37956=DIRECTION('',(0.,0.,-1.)); -#37957=DIRECTION('',(0.,-1.,0.)); -#37958=DIRECTION('',(0.,0.,-1.)); -#37959=DIRECTION('',(0.,-1.,0.)); -#37960=DIRECTION('',(0.,0.,-1.)); -#37961=DIRECTION('',(0.,-1.,0.)); -#37962=DIRECTION('',(0.,0.,-1.)); -#37963=DIRECTION('',(0.,1.,0.)); -#37964=DIRECTION('',(0.,0.,1.)); -#37965=DIRECTION('',(-0.795828694120861,0.,-0.60552183248326)); -#37966=DIRECTION('',(-0.60552183248326,0.,0.795828694120861)); -#37967=DIRECTION('',(0.,1.,0.)); -#37968=DIRECTION('',(-0.60552183248326,0.,0.795828694120861)); -#37969=DIRECTION('',(0.,1.,0.)); -#37970=DIRECTION('',(0.,1.,0.)); -#37971=DIRECTION('',(0.,0.,1.)); -#37972=DIRECTION('',(0.,1.,0.)); -#37973=DIRECTION('',(1.,0.,0.)); -#37974=DIRECTION('',(0.,1.,0.)); -#37975=DIRECTION('',(-0.795828694120861,0.,0.60552183248326)); -#37976=DIRECTION('',(0.60552183248326,0.,0.795828694120861)); -#37977=DIRECTION('',(0.60552183248326,0.,0.795828694120861)); -#37978=DIRECTION('',(0.,1.,0.)); -#37979=DIRECTION('',(0.,1.,0.)); -#37980=DIRECTION('',(0.,0.,1.)); -#37981=DIRECTION('',(0.,1.,0.)); -#37982=DIRECTION('',(1.,0.,0.)); -#37983=DIRECTION('',(0.,1.,0.)); -#37984=DIRECTION('',(0.795828694120858,0.,0.605521832483264)); -#37985=DIRECTION('',(0.605521832483264,0.,-0.795828694120858)); -#37986=DIRECTION('',(0.605521832483264,0.,-0.795828694120858)); -#37987=DIRECTION('',(0.,1.,0.)); -#37988=DIRECTION('',(0.,1.,0.)); -#37989=DIRECTION('',(0.,0.,1.)); -#37990=DIRECTION('',(0.,1.,0.)); -#37991=DIRECTION('',(1.,0.,0.)); -#37992=DIRECTION('',(0.,1.,0.)); -#37993=DIRECTION('',(0.795828694120858,0.,-0.605521832483264)); -#37994=DIRECTION('',(-0.605521832483264,0.,-0.795828694120858)); -#37995=DIRECTION('',(-0.605521832483264,0.,-0.795828694120858)); -#37996=DIRECTION('',(0.,1.,0.)); -#37997=DIRECTION('',(0.,1.,0.)); -#37998=DIRECTION('',(0.,0.,1.)); -#37999=DIRECTION('',(0.,1.,0.)); -#38000=DIRECTION('',(1.,0.,0.)); -#38001=DIRECTION('',(0.,1.,0.)); -#38002=DIRECTION('',(0.,0.,1.)); -#38003=DIRECTION('',(1.,0.,0.)); -#38004=DIRECTION('',(0.,0.,-1.)); -#38005=DIRECTION('',(0.,-1.,0.)); -#38006=DIRECTION('',(0.,0.,1.)); -#38007=DIRECTION('',(0.,-1.,0.)); -#38008=DIRECTION('',(0.,-1.,0.)); -#38009=DIRECTION('',(0.,0.,-1.)); -#38010=DIRECTION('',(0.,1.,0.)); -#38011=DIRECTION('',(1.,0.,0.)); -#38012=DIRECTION('',(0.,-1.,0.)); -#38013=DIRECTION('',(0.,-1.,0.)); -#38014=DIRECTION('',(0.,0.,-1.)); -#38015=DIRECTION('',(0.,1.,0.)); -#38016=DIRECTION('',(1.,0.,0.)); -#38017=DIRECTION('',(0.,-1.,0.)); -#38018=DIRECTION('',(0.,-1.,0.)); -#38019=DIRECTION('',(0.,0.,-1.)); -#38020=DIRECTION('',(0.,1.,0.)); -#38021=DIRECTION('',(1.,0.,0.)); -#38022=DIRECTION('',(0.,-1.,0.)); -#38023=DIRECTION('',(0.,-1.,0.)); -#38024=DIRECTION('',(0.,0.,-1.)); -#38025=DIRECTION('',(0.,1.,0.)); -#38026=DIRECTION('',(1.,0.,0.)); -#38027=DIRECTION('',(0.,-1.,0.)); -#38028=DIRECTION('',(0.,-1.,0.)); -#38029=DIRECTION('',(0.,0.,-1.)); -#38030=DIRECTION('',(0.,1.,0.)); -#38031=DIRECTION('',(1.,0.,0.)); -#38032=DIRECTION('',(0.,-1.,0.)); -#38033=DIRECTION('',(-1.,0.,0.)); -#38034=DIRECTION('',(0.,0.,1.)); -#38035=DIRECTION('',(0.,0.,-1.)); -#38036=DIRECTION('',(0.,-1.,0.)); -#38037=DIRECTION('',(0.,-1.,0.)); -#38038=DIRECTION('',(0.,0.,-1.)); -#38039=DIRECTION('',(0.,1.,0.)); -#38040=DIRECTION('',(1.,0.,0.)); -#38041=DIRECTION('',(0.,-1.,0.)); -#38042=DIRECTION('',(0.,0.,1.)); -#38043=DIRECTION('',(1.,0.,0.)); -#38044=DIRECTION('',(-1.,0.,0.)); -#38045=DIRECTION('',(0.,-1.,0.)); -#38046=DIRECTION('',(0.707106781186548,0.,0.707106781186547)); -#38047=DIRECTION('',(0.707106781186547,0.,-0.707106781186548)); -#38048=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); -#38049=DIRECTION('',(0.,1.,0.)); -#38050=DIRECTION('',(0.,0.,1.)); -#38051=DIRECTION('',(1.,0.,0.)); -#38052=DIRECTION('',(0.,0.,-1.)); -#38053=DIRECTION('',(0.,-1.,0.)); -#38054=DIRECTION('',(0.,0.,1.)); -#38055=DIRECTION('',(0.,-1.,0.)); -#38056=DIRECTION('',(0.,-1.,0.)); -#38057=DIRECTION('',(0.,0.,-1.)); -#38058=DIRECTION('',(0.,1.,0.)); -#38059=DIRECTION('',(1.,0.,0.)); -#38060=DIRECTION('',(0.,-1.,0.)); -#38061=DIRECTION('',(0.,-1.,0.)); -#38062=DIRECTION('',(0.,0.,-1.)); -#38063=DIRECTION('',(0.,1.,0.)); -#38064=DIRECTION('',(1.,0.,0.)); -#38065=DIRECTION('',(0.,-1.,0.)); -#38066=DIRECTION('',(0.,-1.,0.)); -#38067=DIRECTION('',(0.,0.,-1.)); -#38068=DIRECTION('',(0.,1.,0.)); -#38069=DIRECTION('',(1.,0.,0.)); -#38070=DIRECTION('',(0.,-1.,0.)); -#38071=DIRECTION('',(0.,-1.,0.)); -#38072=DIRECTION('',(0.,0.,-1.)); -#38073=DIRECTION('',(0.,1.,0.)); -#38074=DIRECTION('',(1.,0.,0.)); -#38075=DIRECTION('',(0.,-1.,0.)); -#38076=DIRECTION('',(0.,-1.,0.)); -#38077=DIRECTION('',(0.,0.,-1.)); -#38078=DIRECTION('',(0.,1.,0.)); -#38079=DIRECTION('',(1.,0.,0.)); -#38080=DIRECTION('',(0.,-1.,0.)); -#38081=DIRECTION('',(-1.,0.,0.)); -#38082=DIRECTION('',(0.,0.,1.)); -#38083=DIRECTION('',(0.,0.,-1.)); -#38084=DIRECTION('',(0.,-1.,0.)); -#38085=DIRECTION('',(0.,-1.,0.)); -#38086=DIRECTION('',(0.,0.,-1.)); -#38087=DIRECTION('',(0.,1.,0.)); -#38088=DIRECTION('',(1.,0.,0.)); -#38089=DIRECTION('',(0.,-1.,0.)); -#38090=DIRECTION('',(0.,0.,1.)); -#38091=DIRECTION('',(1.,0.,0.)); -#38092=DIRECTION('',(-1.,0.,0.)); -#38093=DIRECTION('',(0.,-1.,0.)); -#38094=DIRECTION('',(0.,-1.,0.)); -#38095=DIRECTION('',(0.,0.,-1.)); -#38096=DIRECTION('',(0.,1.,0.)); -#38097=DIRECTION('',(1.,0.,0.)); -#38098=DIRECTION('',(0.,1.,0.)); -#38099=DIRECTION('',(0.,0.,1.)); -#38100=DIRECTION('',(0.,0.,-1.)); -#38101=DIRECTION('',(-1.,0.,0.)); -#38102=DIRECTION('',(1.,0.,0.)); -#38103=DIRECTION('',(0.,-1.,0.)); -#38104=DIRECTION('',(0.,0.,1.)); -#38105=DIRECTION('',(1.,0.,0.)); -#38106=DIRECTION('',(0.,-1.,0.)); -#38107=DIRECTION('',(-1.,0.,0.)); -#38108=DIRECTION('',(0.,1.,0.)); -#38109=DIRECTION('',(0.,0.,1.)); -#38110=DIRECTION('',(0.,1.,0.)); -#38111=DIRECTION('',(1.,0.,0.)); -#38112=DIRECTION('',(0.,0.,-1.)); -#38113=DIRECTION('',(0.,1.,0.)); -#38114=DIRECTION('',(1.,0.,0.)); -#38115=DIRECTION('',(0.,-1.,0.)); -#38116=DIRECTION('',(0.,0.,-1.)); -#38117=DIRECTION('',(0.,-1.,0.)); -#38118=DIRECTION('',(-1.,0.,0.)); -#38119=DIRECTION('',(0.,0.,1.)); -#38120=DIRECTION('',(0.,-1.,0.)); -#38121=DIRECTION('',(0.,-1.,0.)); -#38122=DIRECTION('',(0.,0.,-1.)); -#38123=DIRECTION('',(0.,0.,-1.)); -#38124=DIRECTION('',(-1.,0.,0.)); -#38125=DIRECTION('',(0.,-1.,0.)); -#38126=DIRECTION('',(1.,0.,0.)); -#38127=DIRECTION('',(0.,0.,1.)); -#38128=DIRECTION('',(1.,0.,0.)); -#38129=DIRECTION('',(-1.,0.,0.)); -#38130=DIRECTION('',(0.,-1.,0.)); -#38131=DIRECTION('',(0.,1.,0.)); -#38132=DIRECTION('',(0.,0.,1.)); -#38133=DIRECTION('',(0.,1.,0.)); -#38134=DIRECTION('',(1.,0.,0.)); -#38135=DIRECTION('',(0.,0.,1.)); -#38136=DIRECTION('',(0.,1.,0.)); -#38137=DIRECTION('',(1.,0.,0.)); -#38138=DIRECTION('',(1.,0.,0.)); -#38139=DIRECTION('',(0.,0.,-1.)); -#38140=DIRECTION('',(0.,-1.,0.)); -#38141=DIRECTION('',(0.,-1.,0.)); -#38142=DIRECTION('',(0.,-1.,0.)); -#38143=DIRECTION('',(0.,0.,-1.)); -#38144=DIRECTION('',(0.,-1.,0.)); -#38145=DIRECTION('',(0.,0.,-1.)); -#38146=DIRECTION('',(0.,0.,1.)); -#38147=DIRECTION('',(1.,0.,0.)); -#38148=DIRECTION('',(0.,0.,1.)); -#38149=DIRECTION('',(1.,0.,0.)); -#38150=DIRECTION('',(-1.,0.,0.)); -#38151=DIRECTION('',(0.,-1.,0.)); -#38152=DIRECTION('',(-1.,0.,0.)); -#38153=DIRECTION('',(0.,1.,0.)); -#38154=DIRECTION('',(-1.,6.19544098563143E-16,0.)); -#38155=DIRECTION('',(0.,-1.,0.)); -#38156=DIRECTION('',(-1.,0.,0.)); -#38157=DIRECTION('',(0.,1.,0.)); -#38158=DIRECTION('',(-1.,0.,0.)); -#38159=DIRECTION('',(0.,1.,0.)); -#38160=DIRECTION('',(-1.,0.,0.)); -#38161=DIRECTION('',(0.,-1.,0.)); -#38162=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38163=DIRECTION('',(0.,-1.,0.)); -#38164=DIRECTION('',(-1.,0.,0.)); -#38165=DIRECTION('',(0.,1.,0.)); -#38166=DIRECTION('',(-1.,0.,0.)); -#38167=DIRECTION('',(0.,1.,0.)); -#38168=DIRECTION('',(-1.,0.,0.)); -#38169=DIRECTION('',(0.,-1.,0.)); -#38170=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38171=DIRECTION('',(0.,-1.,0.)); -#38172=DIRECTION('',(-1.,0.,0.)); -#38173=DIRECTION('',(0.,1.,0.)); -#38174=DIRECTION('',(-1.,0.,0.)); -#38175=DIRECTION('',(0.,1.,0.)); -#38176=DIRECTION('',(-1.,0.,0.)); -#38177=DIRECTION('',(0.,-1.,0.)); -#38178=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38179=DIRECTION('',(0.,-1.,0.)); -#38180=DIRECTION('',(-1.,0.,0.)); -#38181=DIRECTION('',(0.,1.,0.)); -#38182=DIRECTION('',(-1.,0.,0.)); -#38183=DIRECTION('',(0.,1.,0.)); -#38184=DIRECTION('',(-1.,0.,0.)); -#38185=DIRECTION('',(0.,-1.,0.)); -#38186=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38187=DIRECTION('',(0.,-1.,0.)); -#38188=DIRECTION('',(-1.,0.,0.)); -#38189=DIRECTION('',(0.,1.,0.)); -#38190=DIRECTION('',(-1.,0.,0.)); -#38191=DIRECTION('',(0.,1.,0.)); -#38192=DIRECTION('',(-1.,0.,0.)); -#38193=DIRECTION('',(0.,-1.,0.)); -#38194=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38195=DIRECTION('',(0.,-1.,0.)); -#38196=DIRECTION('',(-1.,0.,0.)); -#38197=DIRECTION('',(0.,1.,0.)); -#38198=DIRECTION('',(-1.,0.,0.)); -#38199=DIRECTION('',(0.,1.,0.)); -#38200=DIRECTION('',(-1.,0.,0.)); -#38201=DIRECTION('',(0.,-1.,0.)); -#38202=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38203=DIRECTION('',(0.,-1.,0.)); -#38204=DIRECTION('',(-1.,0.,0.)); -#38205=DIRECTION('',(0.,1.,0.)); -#38206=DIRECTION('',(-1.,0.,0.)); -#38207=DIRECTION('',(0.,1.,0.)); -#38208=DIRECTION('',(-1.,0.,0.)); -#38209=DIRECTION('',(0.,-1.,0.)); -#38210=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38211=DIRECTION('',(0.,-1.,0.)); -#38212=DIRECTION('',(-1.,0.,0.)); -#38213=DIRECTION('',(0.,1.,0.)); -#38214=DIRECTION('',(-1.,0.,0.)); -#38215=DIRECTION('',(0.,1.,0.)); -#38216=DIRECTION('',(-1.,0.,0.)); -#38217=DIRECTION('',(0.,-1.,0.)); -#38218=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38219=DIRECTION('',(0.,-1.,0.)); -#38220=DIRECTION('',(-1.,0.,0.)); -#38221=DIRECTION('',(0.,1.,0.)); -#38222=DIRECTION('',(-1.,0.,0.)); -#38223=DIRECTION('',(0.,1.,0.)); -#38224=DIRECTION('',(-1.,0.,0.)); -#38225=DIRECTION('',(0.,-1.,0.)); -#38226=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38227=DIRECTION('',(0.,-1.,0.)); -#38228=DIRECTION('',(-1.,0.,0.)); -#38229=DIRECTION('',(0.,1.,0.)); -#38230=DIRECTION('',(-1.,0.,0.)); -#38231=DIRECTION('',(0.,1.,0.)); -#38232=DIRECTION('',(-1.,0.,0.)); -#38233=DIRECTION('',(0.,-1.,0.)); -#38234=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38235=DIRECTION('',(0.,-1.,0.)); -#38236=DIRECTION('',(-1.,0.,0.)); -#38237=DIRECTION('',(0.,1.,0.)); -#38238=DIRECTION('',(-1.,0.,0.)); -#38239=DIRECTION('',(0.,1.,0.)); -#38240=DIRECTION('',(-1.,0.,0.)); -#38241=DIRECTION('',(0.,-1.,0.)); -#38242=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38243=DIRECTION('',(0.,-1.,0.)); -#38244=DIRECTION('',(-1.,0.,0.)); -#38245=DIRECTION('',(0.,1.,0.)); -#38246=DIRECTION('',(-1.,0.,0.)); -#38247=DIRECTION('',(0.,1.,0.)); -#38248=DIRECTION('',(-1.,0.,0.)); -#38249=DIRECTION('',(0.,-1.,0.)); -#38250=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38251=DIRECTION('',(0.,-1.,0.)); -#38252=DIRECTION('',(-1.,0.,0.)); -#38253=DIRECTION('',(0.,1.,0.)); -#38254=DIRECTION('',(-1.,0.,0.)); -#38255=DIRECTION('',(0.,1.,0.)); -#38256=DIRECTION('',(-1.,0.,0.)); -#38257=DIRECTION('',(0.,-1.,0.)); -#38258=DIRECTION('',(-1.,6.19544098563145E-16,0.)); -#38259=DIRECTION('',(0.,-1.,0.)); -#38260=DIRECTION('',(-1.,0.,0.)); -#38261=DIRECTION('',(0.,1.,0.)); -#38262=DIRECTION('',(-1.,0.,0.)); -#38263=DIRECTION('',(0.,1.,0.)); -#38264=DIRECTION('',(-1.,0.,0.)); -#38265=DIRECTION('',(0.,-1.,0.)); -#38266=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38267=DIRECTION('',(0.,-1.,0.)); -#38268=DIRECTION('',(-1.,0.,0.)); -#38269=DIRECTION('',(0.,1.,0.)); -#38270=DIRECTION('',(-1.,0.,0.)); -#38271=DIRECTION('',(0.,1.,0.)); -#38272=DIRECTION('',(-1.,0.,0.)); -#38273=DIRECTION('',(0.,-1.,0.)); -#38274=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38275=DIRECTION('',(0.,-1.,0.)); -#38276=DIRECTION('',(-1.,0.,0.)); -#38277=DIRECTION('',(0.,1.,0.)); -#38278=DIRECTION('',(-1.,0.,0.)); -#38279=DIRECTION('',(0.,1.,0.)); -#38280=DIRECTION('',(-1.,0.,0.)); -#38281=DIRECTION('',(0.,-1.,0.)); -#38282=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38283=DIRECTION('',(0.,-1.,0.)); -#38284=DIRECTION('',(-1.,0.,0.)); -#38285=DIRECTION('',(0.,1.,0.)); -#38286=DIRECTION('',(-1.,0.,0.)); -#38287=DIRECTION('',(0.,1.,0.)); -#38288=DIRECTION('',(-1.,0.,0.)); -#38289=DIRECTION('',(0.,-1.,0.)); -#38290=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38291=DIRECTION('',(0.,-1.,0.)); -#38292=DIRECTION('',(-1.,0.,0.)); -#38293=DIRECTION('',(0.,1.,0.)); -#38294=DIRECTION('',(-1.,0.,0.)); -#38295=DIRECTION('',(0.,1.,0.)); -#38296=DIRECTION('',(-1.,0.,0.)); -#38297=DIRECTION('',(0.,-1.,0.)); -#38298=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38299=DIRECTION('',(0.,-1.,0.)); -#38300=DIRECTION('',(-1.,0.,0.)); -#38301=DIRECTION('',(0.,1.,0.)); -#38302=DIRECTION('',(-1.,0.,0.)); -#38303=DIRECTION('',(0.,1.,0.)); -#38304=DIRECTION('',(-1.,0.,0.)); -#38305=DIRECTION('',(0.,-1.,0.)); -#38306=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#38307=DIRECTION('',(0.,-1.,0.)); -#38308=DIRECTION('',(-1.,0.,0.)); -#38309=DIRECTION('',(0.,1.,0.)); -#38310=DIRECTION('',(-1.,0.,0.)); -#38311=DIRECTION('',(0.,1.,0.)); -#38312=DIRECTION('',(-1.,0.,0.)); -#38313=DIRECTION('',(0.,-1.,0.)); -#38314=DIRECTION('',(0.,0.,-1.)); -#38315=DIRECTION('',(-1.,0.,0.)); -#38316=DIRECTION('',(1.,0.,0.)); -#38317=DIRECTION('',(0.,-1.,0.)); -#38318=DIRECTION('',(-1.,0.,0.)); -#38319=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38320=DIRECTION('',(1.,0.,0.)); -#38321=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38322=DIRECTION('',(-1.,0.,0.)); -#38323=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38324=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38325=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38326=DIRECTION('',(-1.,0.,0.)); -#38327=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38328=DIRECTION('',(1.,0.,0.)); -#38329=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38330=DIRECTION('',(-1.,0.,0.)); -#38331=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38332=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38333=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38334=DIRECTION('',(-1.,0.,0.)); -#38335=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38336=DIRECTION('',(1.,0.,0.)); -#38337=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38338=DIRECTION('',(-1.,0.,0.)); -#38339=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38340=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38341=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38342=DIRECTION('',(-1.,0.,0.)); -#38343=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38344=DIRECTION('',(1.,0.,0.)); -#38345=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38346=DIRECTION('',(-1.,0.,0.)); -#38347=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38348=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38349=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38350=DIRECTION('',(-1.,0.,0.)); -#38351=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38352=DIRECTION('',(1.,0.,0.)); -#38353=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38354=DIRECTION('',(-1.,0.,0.)); -#38355=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38356=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38357=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38358=DIRECTION('',(-1.,0.,0.)); -#38359=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38360=DIRECTION('',(1.,0.,0.)); -#38361=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38362=DIRECTION('',(-1.,0.,0.)); -#38363=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38364=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38365=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38366=DIRECTION('',(-1.,0.,0.)); -#38367=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38368=DIRECTION('',(1.,0.,0.)); -#38369=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38370=DIRECTION('',(-1.,0.,0.)); -#38371=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38372=DIRECTION('',(1.,-6.19544098563145E-16,8.7785326862822E-30)); -#38373=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38374=DIRECTION('',(-1.,0.,0.)); -#38375=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38376=DIRECTION('',(1.,0.,0.)); -#38377=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38378=DIRECTION('',(-1.,0.,0.)); -#38379=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38380=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38381=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38382=DIRECTION('',(-1.,0.,0.)); -#38383=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38384=DIRECTION('',(1.,0.,0.)); -#38385=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38386=DIRECTION('',(-1.,0.,0.)); -#38387=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38388=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38389=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38390=DIRECTION('',(-1.,0.,0.)); -#38391=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38392=DIRECTION('',(1.,0.,0.)); -#38393=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38394=DIRECTION('',(-1.,0.,0.)); -#38395=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38396=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38397=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38398=DIRECTION('',(-1.,0.,0.)); -#38399=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38400=DIRECTION('',(1.,0.,0.)); -#38401=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38402=DIRECTION('',(-1.,0.,0.)); -#38403=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38404=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38405=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38406=DIRECTION('',(-1.,0.,0.)); -#38407=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38408=DIRECTION('',(1.,0.,0.)); -#38409=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38410=DIRECTION('',(-1.,0.,0.)); -#38411=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38412=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38413=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38414=DIRECTION('',(-1.,0.,0.)); -#38415=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38416=DIRECTION('',(1.,0.,0.)); -#38417=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38418=DIRECTION('',(-1.,0.,0.)); -#38419=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38420=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38421=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38422=DIRECTION('',(-1.,0.,0.)); -#38423=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38424=DIRECTION('',(1.,0.,0.)); -#38425=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38426=DIRECTION('',(-1.,0.,0.)); -#38427=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38428=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38429=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38430=DIRECTION('',(-1.,0.,0.)); -#38431=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38432=DIRECTION('',(1.,0.,0.)); -#38433=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38434=DIRECTION('',(-1.,0.,0.)); -#38435=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38436=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38437=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38438=DIRECTION('',(-1.,0.,0.)); -#38439=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38440=DIRECTION('',(1.,0.,0.)); -#38441=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38442=DIRECTION('',(-1.,0.,0.)); -#38443=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38444=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38445=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38446=DIRECTION('',(-1.,0.,0.)); -#38447=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38448=DIRECTION('',(1.,0.,0.)); -#38449=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38450=DIRECTION('',(-1.,0.,0.)); -#38451=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38452=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38453=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38454=DIRECTION('',(-1.,0.,0.)); -#38455=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38456=DIRECTION('',(1.,0.,0.)); -#38457=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38458=DIRECTION('',(-1.,0.,0.)); -#38459=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38460=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38461=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38462=DIRECTION('',(-1.,0.,0.)); -#38463=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38464=DIRECTION('',(1.,0.,0.)); -#38465=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38466=DIRECTION('',(-1.,0.,0.)); -#38467=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38468=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); -#38469=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38470=DIRECTION('',(-1.,0.,0.)); -#38471=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38472=DIRECTION('',(1.,0.,0.)); -#38473=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38474=DIRECTION('',(-1.,0.,0.)); -#38475=DIRECTION('',(0.,1.,-1.41693427580724E-14)); -#38476=DIRECTION('',(1.,-6.19544098563143E-16,8.77853268628218E-30)); -#38477=DIRECTION('',(0.,-1.,1.41693427580724E-14)); -#38478=DIRECTION('',(-1.,0.,0.)); -#38479=DIRECTION('',(0.,-1.,0.)); -#38480=DIRECTION('',(0.,0.,1.)); -#38481=DIRECTION('',(1.,0.,0.)); -#38482=DIRECTION('',(-1.,0.,0.)); -#38483=DIRECTION('',(0.,-1.,0.)); -#38484=DIRECTION('',(1.,0.,0.)); -#38485=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38486=DIRECTION('',(-1.,6.19544098563143E-16,2.04151922936795E-30)); -#38487=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38488=DIRECTION('',(-1.,0.,0.)); -#38489=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38490=DIRECTION('',(-1.,0.,0.)); -#38491=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38492=DIRECTION('',(1.,0.,0.)); -#38493=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38494=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38495=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38496=DIRECTION('',(-1.,0.,0.)); -#38497=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38498=DIRECTION('',(-1.,0.,0.)); -#38499=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38500=DIRECTION('',(1.,0.,0.)); -#38501=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38502=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38503=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38504=DIRECTION('',(-1.,0.,0.)); -#38505=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38506=DIRECTION('',(-1.,0.,0.)); -#38507=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38508=DIRECTION('',(1.,0.,0.)); -#38509=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38510=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38511=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38512=DIRECTION('',(-1.,0.,0.)); -#38513=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38514=DIRECTION('',(-1.,0.,0.)); -#38515=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38516=DIRECTION('',(1.,0.,0.)); -#38517=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38518=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38519=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38520=DIRECTION('',(-1.,0.,0.)); -#38521=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38522=DIRECTION('',(-1.,0.,0.)); -#38523=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38524=DIRECTION('',(1.,0.,0.)); -#38525=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38526=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38527=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38528=DIRECTION('',(-1.,0.,0.)); -#38529=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38530=DIRECTION('',(-1.,0.,0.)); -#38531=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38532=DIRECTION('',(1.,0.,0.)); -#38533=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38534=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38535=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38536=DIRECTION('',(-1.,0.,0.)); -#38537=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38538=DIRECTION('',(-1.,0.,0.)); -#38539=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38540=DIRECTION('',(1.,0.,0.)); -#38541=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38542=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38543=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38544=DIRECTION('',(-1.,0.,0.)); -#38545=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38546=DIRECTION('',(-1.,0.,0.)); -#38547=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38548=DIRECTION('',(1.,0.,0.)); -#38549=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38550=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38551=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38552=DIRECTION('',(-1.,0.,0.)); -#38553=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38554=DIRECTION('',(-1.,0.,0.)); -#38555=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38556=DIRECTION('',(1.,0.,0.)); -#38557=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38558=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38559=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38560=DIRECTION('',(-1.,0.,0.)); -#38561=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38562=DIRECTION('',(-1.,0.,0.)); -#38563=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38564=DIRECTION('',(1.,0.,0.)); -#38565=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38566=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38567=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38568=DIRECTION('',(-1.,0.,0.)); -#38569=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38570=DIRECTION('',(-1.,0.,0.)); -#38571=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38572=DIRECTION('',(1.,0.,0.)); -#38573=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38574=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38575=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38576=DIRECTION('',(-1.,0.,0.)); -#38577=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38578=DIRECTION('',(-1.,0.,0.)); -#38579=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38580=DIRECTION('',(1.,0.,0.)); -#38581=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38582=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38583=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38584=DIRECTION('',(-1.,0.,0.)); -#38585=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38586=DIRECTION('',(-1.,0.,0.)); -#38587=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38588=DIRECTION('',(1.,0.,0.)); -#38589=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38590=DIRECTION('',(-1.,6.19544098563145E-16,2.04151922936795E-30)); -#38591=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38592=DIRECTION('',(-1.,0.,0.)); -#38593=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38594=DIRECTION('',(-1.,0.,0.)); -#38595=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38596=DIRECTION('',(1.,0.,0.)); -#38597=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38598=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38599=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38600=DIRECTION('',(-1.,0.,0.)); -#38601=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38602=DIRECTION('',(-1.,0.,0.)); -#38603=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38604=DIRECTION('',(1.,0.,0.)); -#38605=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38606=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38607=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38608=DIRECTION('',(-1.,0.,0.)); -#38609=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38610=DIRECTION('',(-1.,0.,0.)); -#38611=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38612=DIRECTION('',(1.,0.,0.)); -#38613=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38614=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38615=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38616=DIRECTION('',(-1.,0.,0.)); -#38617=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38618=DIRECTION('',(-1.,0.,0.)); -#38619=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38620=DIRECTION('',(1.,0.,0.)); -#38621=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38622=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38623=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38624=DIRECTION('',(-1.,0.,0.)); -#38625=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38626=DIRECTION('',(-1.,0.,0.)); -#38627=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38628=DIRECTION('',(1.,0.,0.)); -#38629=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38630=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38631=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38632=DIRECTION('',(-1.,0.,0.)); -#38633=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38634=DIRECTION('',(-1.,0.,0.)); -#38635=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38636=DIRECTION('',(1.,0.,0.)); -#38637=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38638=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); -#38639=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); -#38640=DIRECTION('',(-1.,0.,0.)); -#38641=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38642=DIRECTION('',(-1.,0.,0.)); -#38643=DIRECTION('',(0.,1.,3.2951959902494E-15)); -#38644=DIRECTION('',(1.,0.,0.)); -#38645=DIRECTION('',(0.,-1.,0.)); -#38646=DIRECTION('',(0.,0.,-1.)); -#38647=DIRECTION('',(-1.,0.,0.)); -#38648=DIRECTION('',(1.,0.,0.)); -#38649=DIRECTION('',(0.,-1.,0.)); -#38650=DIRECTION('',(1.,0.,0.)); -#38651=DIRECTION('',(0.,-1.,0.)); -#38652=DIRECTION('',(1.,0.,0.)); -#38653=DIRECTION('',(0.,-1.,0.)); -#38654=DIRECTION('',(-1.,0.,0.)); -#38655=DIRECTION('',(0.,1.,0.)); -#38656=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38657=DIRECTION('',(0.,1.,0.)); -#38658=DIRECTION('',(1.,0.,0.)); -#38659=DIRECTION('',(0.,-1.,0.)); -#38660=DIRECTION('',(1.,0.,0.)); -#38661=DIRECTION('',(0.,-1.,0.)); -#38662=DIRECTION('',(-1.,0.,0.)); -#38663=DIRECTION('',(0.,1.,0.)); -#38664=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38665=DIRECTION('',(0.,1.,0.)); -#38666=DIRECTION('',(1.,0.,0.)); -#38667=DIRECTION('',(0.,-1.,0.)); -#38668=DIRECTION('',(1.,0.,0.)); -#38669=DIRECTION('',(0.,-1.,0.)); -#38670=DIRECTION('',(-1.,0.,0.)); -#38671=DIRECTION('',(0.,1.,0.)); -#38672=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38673=DIRECTION('',(0.,1.,0.)); -#38674=DIRECTION('',(1.,0.,0.)); -#38675=DIRECTION('',(0.,-1.,0.)); -#38676=DIRECTION('',(1.,0.,0.)); -#38677=DIRECTION('',(0.,-1.,0.)); -#38678=DIRECTION('',(-1.,0.,0.)); -#38679=DIRECTION('',(0.,1.,0.)); -#38680=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38681=DIRECTION('',(0.,1.,0.)); -#38682=DIRECTION('',(1.,0.,0.)); -#38683=DIRECTION('',(0.,-1.,0.)); -#38684=DIRECTION('',(1.,0.,0.)); -#38685=DIRECTION('',(0.,-1.,0.)); -#38686=DIRECTION('',(-1.,0.,0.)); -#38687=DIRECTION('',(0.,1.,0.)); -#38688=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38689=DIRECTION('',(0.,1.,0.)); -#38690=DIRECTION('',(1.,0.,0.)); -#38691=DIRECTION('',(0.,-1.,0.)); -#38692=DIRECTION('',(1.,0.,0.)); -#38693=DIRECTION('',(0.,-1.,0.)); -#38694=DIRECTION('',(-1.,0.,0.)); -#38695=DIRECTION('',(0.,1.,0.)); -#38696=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38697=DIRECTION('',(0.,1.,0.)); -#38698=DIRECTION('',(1.,0.,0.)); -#38699=DIRECTION('',(0.,-1.,0.)); -#38700=DIRECTION('',(1.,0.,0.)); -#38701=DIRECTION('',(0.,-1.,0.)); -#38702=DIRECTION('',(-1.,0.,0.)); -#38703=DIRECTION('',(0.,1.,0.)); -#38704=DIRECTION('',(1.,-6.19544098563145E-16,0.)); -#38705=DIRECTION('',(0.,1.,0.)); -#38706=DIRECTION('',(1.,0.,0.)); -#38707=DIRECTION('',(0.,-1.,0.)); -#38708=DIRECTION('',(1.,0.,0.)); -#38709=DIRECTION('',(0.,-1.,0.)); -#38710=DIRECTION('',(-1.,0.,0.)); -#38711=DIRECTION('',(0.,1.,0.)); -#38712=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38713=DIRECTION('',(0.,1.,0.)); -#38714=DIRECTION('',(1.,0.,0.)); -#38715=DIRECTION('',(0.,-1.,0.)); -#38716=DIRECTION('',(1.,0.,0.)); -#38717=DIRECTION('',(0.,-1.,0.)); -#38718=DIRECTION('',(-1.,0.,0.)); -#38719=DIRECTION('',(0.,1.,0.)); -#38720=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38721=DIRECTION('',(0.,1.,0.)); -#38722=DIRECTION('',(1.,0.,0.)); -#38723=DIRECTION('',(0.,-1.,0.)); -#38724=DIRECTION('',(1.,0.,0.)); -#38725=DIRECTION('',(0.,-1.,0.)); -#38726=DIRECTION('',(-1.,0.,0.)); -#38727=DIRECTION('',(0.,1.,0.)); -#38728=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38729=DIRECTION('',(0.,1.,0.)); -#38730=DIRECTION('',(1.,0.,0.)); -#38731=DIRECTION('',(0.,-1.,0.)); -#38732=DIRECTION('',(1.,0.,0.)); -#38733=DIRECTION('',(0.,-1.,0.)); -#38734=DIRECTION('',(-1.,0.,0.)); -#38735=DIRECTION('',(0.,1.,0.)); -#38736=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38737=DIRECTION('',(0.,1.,0.)); -#38738=DIRECTION('',(1.,0.,0.)); -#38739=DIRECTION('',(0.,-1.,0.)); -#38740=DIRECTION('',(1.,0.,0.)); -#38741=DIRECTION('',(0.,-1.,0.)); -#38742=DIRECTION('',(-1.,0.,0.)); -#38743=DIRECTION('',(0.,1.,0.)); -#38744=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38745=DIRECTION('',(0.,1.,0.)); -#38746=DIRECTION('',(1.,0.,0.)); -#38747=DIRECTION('',(0.,-1.,0.)); -#38748=DIRECTION('',(1.,0.,0.)); -#38749=DIRECTION('',(0.,-1.,0.)); -#38750=DIRECTION('',(-1.,0.,0.)); -#38751=DIRECTION('',(0.,1.,0.)); -#38752=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38753=DIRECTION('',(0.,1.,0.)); -#38754=DIRECTION('',(1.,0.,0.)); -#38755=DIRECTION('',(0.,-1.,0.)); -#38756=DIRECTION('',(1.,0.,0.)); -#38757=DIRECTION('',(0.,-1.,0.)); -#38758=DIRECTION('',(-1.,0.,0.)); -#38759=DIRECTION('',(0.,1.,0.)); -#38760=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38761=DIRECTION('',(0.,1.,0.)); -#38762=DIRECTION('',(1.,0.,0.)); -#38763=DIRECTION('',(0.,-1.,0.)); -#38764=DIRECTION('',(1.,0.,0.)); -#38765=DIRECTION('',(0.,-1.,0.)); -#38766=DIRECTION('',(-1.,0.,0.)); -#38767=DIRECTION('',(0.,1.,0.)); -#38768=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38769=DIRECTION('',(0.,1.,0.)); -#38770=DIRECTION('',(1.,0.,0.)); -#38771=DIRECTION('',(0.,-1.,0.)); -#38772=DIRECTION('',(1.,0.,0.)); -#38773=DIRECTION('',(0.,-1.,0.)); -#38774=DIRECTION('',(-1.,0.,0.)); -#38775=DIRECTION('',(0.,1.,0.)); -#38776=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38777=DIRECTION('',(0.,1.,0.)); -#38778=DIRECTION('',(1.,0.,0.)); -#38779=DIRECTION('',(0.,-1.,0.)); -#38780=DIRECTION('',(1.,0.,0.)); -#38781=DIRECTION('',(0.,-1.,0.)); -#38782=DIRECTION('',(-1.,0.,0.)); -#38783=DIRECTION('',(0.,1.,0.)); -#38784=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38785=DIRECTION('',(0.,1.,0.)); -#38786=DIRECTION('',(1.,0.,0.)); -#38787=DIRECTION('',(0.,-1.,0.)); -#38788=DIRECTION('',(1.,0.,0.)); -#38789=DIRECTION('',(0.,-1.,0.)); -#38790=DIRECTION('',(-1.,0.,0.)); -#38791=DIRECTION('',(0.,1.,0.)); -#38792=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38793=DIRECTION('',(0.,1.,0.)); -#38794=DIRECTION('',(1.,0.,0.)); -#38795=DIRECTION('',(0.,-1.,0.)); -#38796=DIRECTION('',(1.,0.,0.)); -#38797=DIRECTION('',(0.,-1.,0.)); -#38798=DIRECTION('',(-1.,0.,0.)); -#38799=DIRECTION('',(0.,1.,0.)); -#38800=DIRECTION('',(1.,-6.19544098563146E-16,0.)); -#38801=DIRECTION('',(0.,1.,0.)); -#38802=DIRECTION('',(1.,0.,0.)); -#38803=DIRECTION('',(0.,-1.,0.)); -#38804=DIRECTION('',(1.,0.,0.)); -#38805=DIRECTION('',(0.,-1.,0.)); -#38806=DIRECTION('',(-1.,0.,0.)); -#38807=DIRECTION('',(0.,1.,0.)); -#38808=DIRECTION('',(1.,-6.19544098563143E-16,0.)); -#38809=DIRECTION('',(0.,-1.,0.)); -#38810=DIRECTION('',(1.,0.,0.)); -#38811=DIRECTION('',(0.,-1.,0.)); -#38812=DIRECTION('',(1.,0.,0.)); -#38813=DIRECTION('',(0.,0.,-1.)); -#38814=DIRECTION('',(0.,0.,1.)); -#38815=DIRECTION('',(0.,0.,1.)); -#38816=DIRECTION('',(1.,0.,0.)); -#38817=DIRECTION('',(0.,0.,-1.)); -#38818=DIRECTION('',(0.,0.,1.)); -#38819=DIRECTION('',(0.,0.,1.)); -#38820=DIRECTION('',(-1.,0.,0.)); -#38821=DIRECTION('',(0.,0.,1.)); -#38822=DIRECTION('',(0.,0.,-1.)); -#38823=DIRECTION('',(0.,0.,-1.)); -#38824=DIRECTION('',(-1.,0.,0.)); -#38825=DIRECTION('',(0.,0.,1.)); -#38826=DIRECTION('',(0.,0.,-1.)); -#38827=DIRECTION('',(0.,0.,-1.)); -#38828=DIRECTION('',(1.,0.,0.)); -#38829=DIRECTION('',(0.,0.,-1.)); -#38830=DIRECTION('',(0.,0.,1.)); -#38831=DIRECTION('',(0.,0.,1.)); -#38832=DIRECTION('',(1.,0.,0.)); -#38833=DIRECTION('',(0.,0.,-1.)); -#38834=DIRECTION('',(0.,0.,1.)); -#38835=DIRECTION('',(0.,0.,1.)); -#38836=DIRECTION('',(1.,0.,0.)); -#38837=DIRECTION('',(0.,0.,-1.)); -#38838=DIRECTION('',(0.,0.,1.)); -#38839=DIRECTION('',(0.,0.,1.)); -#38840=DIRECTION('',(1.,0.,0.)); -#38841=DIRECTION('',(0.,0.,-1.)); -#38842=DIRECTION('',(0.,0.,1.)); -#38843=DIRECTION('',(0.,0.,1.)); -#38844=DIRECTION('',(-1.,0.,0.)); -#38845=DIRECTION('',(0.,0.,1.)); -#38846=DIRECTION('',(0.,0.,-1.)); -#38847=DIRECTION('',(0.,0.,-1.)); -#38848=DIRECTION('',(1.,0.,0.)); -#38849=DIRECTION('',(0.,0.,-1.)); -#38850=DIRECTION('',(0.,0.,1.)); -#38851=DIRECTION('',(0.,0.,-1.)); -#38852=DIRECTION('',(-1.,0.,0.)); -#38853=DIRECTION('',(0.,0.,1.)); -#38854=DIRECTION('',(0.,0.,-1.)); -#38855=DIRECTION('',(0.,0.,-1.)); -#38856=DIRECTION('',(1.,0.,0.)); -#38857=DIRECTION('',(0.,0.,-1.)); -#38858=DIRECTION('',(0.,0.,1.)); -#38859=DIRECTION('',(0.,0.,-1.)); -#38860=DIRECTION('',(-1.,0.,0.)); -#38861=DIRECTION('',(0.,0.,1.)); -#38862=DIRECTION('',(0.,0.,-1.)); -#38863=DIRECTION('',(0.,0.,-1.)); -#38864=DIRECTION('',(1.,0.,0.)); -#38865=DIRECTION('',(0.,0.,-1.)); -#38866=DIRECTION('',(0.,0.,1.)); -#38867=DIRECTION('',(0.,0.,-1.)); -#38868=DIRECTION('',(-1.,0.,0.)); -#38869=DIRECTION('',(0.,0.,1.)); -#38870=DIRECTION('',(0.,0.,-1.)); -#38871=DIRECTION('',(0.,0.,-1.)); -#38872=DIRECTION('',(1.,0.,0.)); -#38873=DIRECTION('',(0.,0.,-1.)); -#38874=DIRECTION('',(0.,0.,1.)); -#38875=DIRECTION('',(0.,0.,-1.)); -#38876=DIRECTION('',(-1.,0.,0.)); -#38877=DIRECTION('',(0.,0.,1.)); -#38878=DIRECTION('',(0.,0.,-1.)); -#38879=DIRECTION('',(0.,0.,-1.)); -#38880=DIRECTION('',(1.,0.,0.)); -#38881=DIRECTION('',(0.,0.,-1.)); -#38882=DIRECTION('',(0.,0.,1.)); -#38883=DIRECTION('',(0.,0.,-1.)); -#38884=DIRECTION('',(-1.,0.,0.)); -#38885=DIRECTION('',(0.,0.,1.)); -#38886=DIRECTION('',(0.,0.,-1.)); -#38887=DIRECTION('',(0.,0.,-1.)); -#38888=DIRECTION('',(1.,0.,0.)); -#38889=DIRECTION('',(0.,0.,-1.)); -#38890=DIRECTION('',(0.,0.,1.)); -#38891=DIRECTION('',(0.,0.,-1.)); -#38892=DIRECTION('',(-1.,0.,0.)); -#38893=DIRECTION('',(0.,0.,1.)); -#38894=DIRECTION('',(0.,0.,-1.)); -#38895=DIRECTION('',(0.,0.,-1.)); -#38896=DIRECTION('',(1.,0.,0.)); -#38897=DIRECTION('',(0.,0.,-1.)); -#38898=DIRECTION('',(0.,0.,1.)); -#38899=DIRECTION('',(0.,0.,-1.)); -#38900=DIRECTION('',(-1.,0.,0.)); -#38901=DIRECTION('',(0.,0.,1.)); -#38902=DIRECTION('',(0.,0.,-1.)); -#38903=DIRECTION('',(0.,0.,-1.)); -#38904=DIRECTION('',(1.,0.,0.)); -#38905=DIRECTION('',(0.,0.,-1.)); -#38906=DIRECTION('',(0.,0.,1.)); -#38907=DIRECTION('',(0.,0.,-1.)); -#38908=DIRECTION('',(-1.,0.,0.)); -#38909=DIRECTION('',(0.,0.,1.)); -#38910=DIRECTION('',(0.,0.,-1.)); -#38911=DIRECTION('',(0.,0.,-1.)); -#38912=DIRECTION('',(1.,0.,0.)); -#38913=DIRECTION('',(0.,0.,-1.)); -#38914=DIRECTION('',(0.,0.,1.)); -#38915=DIRECTION('',(0.,0.,-1.)); -#38916=DIRECTION('',(-1.,0.,0.)); -#38917=DIRECTION('',(0.,0.,1.)); -#38918=DIRECTION('',(0.,0.,-1.)); -#38919=DIRECTION('',(0.,0.,-1.)); -#38920=DIRECTION('',(1.,0.,0.)); -#38921=DIRECTION('',(0.,0.,-1.)); -#38922=DIRECTION('',(0.,0.,1.)); -#38923=DIRECTION('',(0.,0.,-1.)); -#38924=DIRECTION('',(-1.,0.,0.)); -#38925=DIRECTION('',(0.,0.,1.)); -#38926=DIRECTION('',(0.,0.,-1.)); -#38927=DIRECTION('',(0.,0.,-1.)); -#38928=DIRECTION('',(1.,0.,0.)); -#38929=DIRECTION('',(0.,0.,-1.)); -#38930=DIRECTION('',(0.,0.,1.)); -#38931=DIRECTION('',(0.,0.,-1.)); -#38932=DIRECTION('',(-1.,0.,0.)); -#38933=DIRECTION('',(0.,0.,1.)); -#38934=DIRECTION('',(0.,0.,-1.)); -#38935=DIRECTION('',(0.,0.,-1.)); -#38936=DIRECTION('',(1.,0.,0.)); -#38937=DIRECTION('',(0.,0.,-1.)); -#38938=DIRECTION('',(0.,0.,1.)); -#38939=DIRECTION('',(0.,0.,-1.)); -#38940=DIRECTION('',(-1.,0.,0.)); -#38941=DIRECTION('',(0.,0.,1.)); -#38942=DIRECTION('',(0.,0.,-1.)); -#38943=DIRECTION('',(0.,0.,-1.)); -#38944=DIRECTION('',(1.,0.,0.)); -#38945=DIRECTION('',(0.,0.,-1.)); -#38946=DIRECTION('',(0.,0.,1.)); -#38947=DIRECTION('',(0.,0.,-1.)); -#38948=DIRECTION('',(-1.,0.,0.)); -#38949=DIRECTION('',(0.,0.,1.)); -#38950=DIRECTION('',(0.,0.,-1.)); -#38951=DIRECTION('',(0.,0.,-1.)); -#38952=DIRECTION('',(1.,0.,0.)); -#38953=DIRECTION('',(0.,0.,-1.)); -#38954=DIRECTION('',(0.,0.,1.)); -#38955=DIRECTION('',(0.,0.,-1.)); -#38956=DIRECTION('',(-1.,0.,0.)); -#38957=DIRECTION('',(0.,0.,1.)); -#38958=DIRECTION('',(0.,0.,-1.)); -#38959=DIRECTION('',(0.,0.,-1.)); -#38960=DIRECTION('',(1.,0.,0.)); -#38961=DIRECTION('',(0.,0.,-1.)); -#38962=DIRECTION('',(0.,0.,1.)); -#38963=DIRECTION('',(0.,0.,-1.)); -#38964=DIRECTION('',(-1.,0.,0.)); -#38965=DIRECTION('',(0.,0.,1.)); -#38966=DIRECTION('',(0.,0.,-1.)); -#38967=DIRECTION('',(0.,0.,-1.)); -#38968=DIRECTION('',(1.,0.,0.)); -#38969=DIRECTION('',(0.,0.,-1.)); -#38970=DIRECTION('',(0.,0.,1.)); -#38971=DIRECTION('',(0.,0.,-1.)); -#38972=DIRECTION('',(-1.,0.,0.)); -#38973=DIRECTION('',(0.,0.,1.)); -#38974=DIRECTION('',(0.,0.,-1.)); -#38975=DIRECTION('',(0.,0.,-1.)); -#38976=DIRECTION('',(1.,0.,0.)); -#38977=DIRECTION('',(0.,0.,-1.)); -#38978=DIRECTION('',(0.,0.,1.)); -#38979=DIRECTION('',(0.,0.,-1.)); -#38980=DIRECTION('',(-1.,0.,0.)); -#38981=DIRECTION('',(0.,0.,1.)); -#38982=DIRECTION('',(0.,0.,-1.)); -#38983=DIRECTION('',(0.,0.,-1.)); -#38984=DIRECTION('',(1.,0.,0.)); -#38985=DIRECTION('',(0.,0.,-1.)); -#38986=DIRECTION('',(0.,0.,1.)); -#38987=DIRECTION('',(0.,0.,-1.)); -#38988=DIRECTION('',(-1.,0.,0.)); -#38989=DIRECTION('',(0.,0.,1.)); -#38990=DIRECTION('',(0.,0.,-1.)); -#38991=DIRECTION('',(0.,0.,-1.)); -#38992=DIRECTION('',(1.,0.,0.)); -#38993=DIRECTION('',(0.,0.,-1.)); -#38994=DIRECTION('',(0.,0.,1.)); -#38995=DIRECTION('',(0.,0.,-1.)); -#38996=DIRECTION('',(-1.,0.,0.)); -#38997=DIRECTION('',(0.,0.,1.)); -#38998=DIRECTION('',(0.,0.,-1.)); -#38999=DIRECTION('',(0.,0.,-1.)); -#39000=DIRECTION('',(1.,0.,0.)); -#39001=DIRECTION('',(0.,0.,-1.)); -#39002=DIRECTION('',(0.,0.,1.)); -#39003=DIRECTION('',(0.,0.,-1.)); -#39004=DIRECTION('',(-1.,0.,0.)); -#39005=DIRECTION('',(0.,0.,1.)); -#39006=DIRECTION('',(0.,0.,-1.)); -#39007=DIRECTION('',(0.,0.,-1.)); -#39008=DIRECTION('',(1.,0.,0.)); -#39009=DIRECTION('',(0.,0.,-1.)); -#39010=DIRECTION('',(0.,0.,1.)); -#39011=DIRECTION('',(0.,0.,-1.)); -#39012=DIRECTION('',(-1.,0.,0.)); -#39013=DIRECTION('',(0.,0.,1.)); -#39014=DIRECTION('',(0.,0.,-1.)); -#39015=DIRECTION('',(0.,0.,-1.)); -#39016=DIRECTION('',(1.,0.,0.)); -#39017=DIRECTION('',(0.,0.,-1.)); -#39018=DIRECTION('',(0.,0.,1.)); -#39019=DIRECTION('',(0.,0.,-1.)); -#39020=DIRECTION('',(-1.,0.,0.)); -#39021=DIRECTION('',(0.,0.,1.)); -#39022=DIRECTION('',(0.,0.,-1.)); -#39023=DIRECTION('',(0.,0.,-1.)); -#39024=DIRECTION('',(1.,0.,0.)); -#39025=DIRECTION('',(0.,0.,-1.)); -#39026=DIRECTION('',(0.,0.,1.)); -#39027=DIRECTION('',(0.,0.,-1.)); -#39028=DIRECTION('',(-1.,0.,0.)); -#39029=DIRECTION('',(0.,0.,1.)); -#39030=DIRECTION('',(0.,0.,-1.)); -#39031=DIRECTION('',(0.,0.,-1.)); -#39032=DIRECTION('',(1.,0.,0.)); -#39033=DIRECTION('',(0.,0.,-1.)); -#39034=DIRECTION('',(0.,0.,1.)); -#39035=DIRECTION('',(0.,0.,-1.)); -#39036=DIRECTION('',(-1.,0.,0.)); -#39037=DIRECTION('',(0.,0.,1.)); -#39038=DIRECTION('',(0.,0.,-1.)); -#39039=DIRECTION('',(0.,0.,-1.)); -#39040=DIRECTION('',(1.,0.,0.)); -#39041=DIRECTION('',(0.,0.,-1.)); -#39042=DIRECTION('',(0.,0.,1.)); -#39043=DIRECTION('',(0.,0.,-1.)); -#39044=DIRECTION('',(-1.,0.,0.)); -#39045=DIRECTION('',(0.,0.,1.)); -#39046=DIRECTION('',(0.,0.,-1.)); -#39047=DIRECTION('',(0.,0.,-1.)); -#39048=DIRECTION('',(1.,0.,0.)); -#39049=DIRECTION('',(0.,0.,-1.)); -#39050=DIRECTION('',(0.,0.,1.)); -#39051=DIRECTION('',(0.,0.,-1.)); -#39052=DIRECTION('',(-1.,0.,0.)); -#39053=DIRECTION('',(0.,0.,1.)); -#39054=DIRECTION('',(0.,0.,-1.)); -#39055=DIRECTION('',(0.,0.,-1.)); -#39056=DIRECTION('',(1.,0.,0.)); -#39057=DIRECTION('',(0.,0.,-1.)); -#39058=DIRECTION('',(0.,0.,1.)); -#39059=DIRECTION('',(0.,0.,-1.)); -#39060=DIRECTION('',(-1.,0.,0.)); -#39061=DIRECTION('',(0.,0.,1.)); -#39062=DIRECTION('',(0.,0.,-1.)); -#39063=DIRECTION('',(0.,0.,-1.)); -#39064=DIRECTION('',(1.,0.,0.)); -#39065=DIRECTION('',(0.,0.,-1.)); -#39066=DIRECTION('',(0.,0.,1.)); -#39067=DIRECTION('',(0.,0.,-1.)); -#39068=DIRECTION('',(-1.,0.,0.)); -#39069=DIRECTION('',(0.,0.,1.)); -#39070=DIRECTION('',(0.,0.,-1.)); -#39071=DIRECTION('',(0.,0.,-1.)); -#39072=DIRECTION('',(1.,0.,0.)); -#39073=DIRECTION('',(0.,0.,-1.)); -#39074=DIRECTION('',(0.,0.,1.)); -#39075=DIRECTION('',(0.,0.,-1.)); -#39076=DIRECTION('',(-1.,0.,0.)); -#39077=DIRECTION('',(0.,0.,1.)); -#39078=DIRECTION('',(0.,0.,-1.)); -#39079=DIRECTION('',(0.,0.,-1.)); -#39080=DIRECTION('',(1.,0.,0.)); -#39081=DIRECTION('',(0.,0.,-1.)); -#39082=DIRECTION('',(0.,0.,1.)); -#39083=DIRECTION('',(0.,0.,-1.)); -#39084=DIRECTION('',(-1.,0.,0.)); -#39085=DIRECTION('',(0.,0.,1.)); -#39086=DIRECTION('',(0.,0.,-1.)); -#39087=DIRECTION('',(0.,0.,-1.)); -#39088=DIRECTION('',(1.,0.,0.)); -#39089=DIRECTION('',(0.,0.,-1.)); -#39090=DIRECTION('',(0.,0.,1.)); -#39091=DIRECTION('',(0.,0.,-1.)); -#39092=DIRECTION('',(-1.,0.,0.)); -#39093=DIRECTION('',(0.,0.,1.)); -#39094=DIRECTION('',(0.,0.,-1.)); -#39095=DIRECTION('',(0.,0.,-1.)); -#39096=DIRECTION('',(1.,0.,0.)); -#39097=DIRECTION('',(0.,0.,-1.)); -#39098=DIRECTION('',(0.,0.,1.)); -#39099=DIRECTION('',(0.,0.,-1.)); -#39100=DIRECTION('',(-1.,0.,0.)); -#39101=DIRECTION('',(0.,0.,1.)); -#39102=DIRECTION('',(0.,0.,-1.)); -#39103=DIRECTION('',(0.,0.,-1.)); -#39104=DIRECTION('',(1.,0.,0.)); -#39105=DIRECTION('',(0.,0.,-1.)); -#39106=DIRECTION('',(0.,0.,1.)); -#39107=DIRECTION('',(0.,0.,-1.)); -#39108=DIRECTION('',(-1.,0.,0.)); -#39109=DIRECTION('',(0.,0.,1.)); -#39110=DIRECTION('',(0.,0.,-1.)); -#39111=DIRECTION('',(0.,0.,-1.)); -#39112=DIRECTION('',(1.,0.,0.)); -#39113=DIRECTION('',(0.,0.,-1.)); -#39114=DIRECTION('',(0.,0.,1.)); -#39115=DIRECTION('',(0.,0.,-1.)); -#39116=DIRECTION('',(-1.,0.,0.)); -#39117=DIRECTION('',(0.,0.,1.)); -#39118=DIRECTION('',(0.,0.,-1.)); -#39119=DIRECTION('',(0.,0.,-1.)); -#39120=DIRECTION('',(1.,0.,0.)); -#39121=DIRECTION('',(0.,0.,-1.)); -#39122=DIRECTION('',(0.,0.,1.)); -#39123=DIRECTION('',(0.,0.,-1.)); -#39124=DIRECTION('',(-1.,0.,0.)); -#39125=DIRECTION('',(0.,0.,1.)); -#39126=DIRECTION('',(0.,0.,-1.)); -#39127=DIRECTION('',(0.,0.,-1.)); -#39128=DIRECTION('',(1.,0.,0.)); -#39129=DIRECTION('',(0.,0.,-1.)); -#39130=DIRECTION('',(0.,0.,1.)); -#39131=DIRECTION('',(0.,0.,-1.)); -#39132=DIRECTION('',(-1.,0.,0.)); -#39133=DIRECTION('',(0.,0.,1.)); -#39134=DIRECTION('',(0.,0.,-1.)); -#39135=DIRECTION('',(0.,0.,-1.)); -#39136=DIRECTION('',(1.,0.,0.)); -#39137=DIRECTION('',(0.,0.,-1.)); -#39138=DIRECTION('',(0.,0.,1.)); -#39139=DIRECTION('',(0.,0.,-1.)); -#39140=DIRECTION('',(1.,0.,0.)); -#39141=DIRECTION('',(0.,0.,-1.)); -#39142=DIRECTION('',(0.,0.,1.)); -#39143=DIRECTION('',(0.,0.,-1.)); -#39144=DIRECTION('',(-1.,0.,0.)); -#39145=DIRECTION('',(0.,0.,1.)); -#39146=DIRECTION('',(0.,0.,-1.)); -#39147=DIRECTION('',(0.,0.,-1.)); -#39148=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39149=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39150=DIRECTION('',(-1.,0.,0.)); -#39151=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39152=DIRECTION('',(-1.,0.,0.)); -#39153=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39154=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39155=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39156=DIRECTION('',(-1.,0.,0.)); -#39157=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39158=DIRECTION('',(-1.,0.,0.)); -#39159=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39160=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39161=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39162=DIRECTION('',(-1.,0.,0.)); -#39163=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39164=DIRECTION('',(-1.,0.,0.)); -#39165=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39166=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39167=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39168=DIRECTION('',(-1.,0.,0.)); -#39169=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39170=DIRECTION('',(-1.,0.,0.)); -#39171=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39172=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39173=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39174=DIRECTION('',(-1.,0.,0.)); -#39175=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39176=DIRECTION('',(-1.,0.,0.)); -#39177=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39178=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39179=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39180=DIRECTION('',(-1.,0.,0.)); -#39181=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39182=DIRECTION('',(-1.,0.,0.)); -#39183=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39184=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39185=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39186=DIRECTION('',(-1.,0.,0.)); -#39187=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39188=DIRECTION('',(-1.,0.,0.)); -#39189=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39190=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39191=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39192=DIRECTION('',(-1.,0.,0.)); -#39193=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39194=DIRECTION('',(-1.,0.,0.)); -#39195=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39196=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39197=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39198=DIRECTION('',(-1.,0.,0.)); -#39199=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39200=DIRECTION('',(-1.,0.,0.)); -#39201=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39202=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39203=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39204=DIRECTION('',(-1.,0.,0.)); -#39205=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39206=DIRECTION('',(-1.,0.,0.)); -#39207=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39208=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39209=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39210=DIRECTION('',(-1.,0.,0.)); -#39211=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39212=DIRECTION('',(-1.,0.,0.)); -#39213=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39214=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39215=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39216=DIRECTION('',(-1.,0.,0.)); -#39217=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39218=DIRECTION('',(-1.,0.,0.)); -#39219=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39220=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39221=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39222=DIRECTION('',(-1.,0.,0.)); -#39223=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39224=DIRECTION('',(-1.,0.,0.)); -#39225=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39226=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39227=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39228=DIRECTION('',(-1.,0.,0.)); -#39229=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39230=DIRECTION('',(-1.,0.,0.)); -#39231=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39232=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39233=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39234=DIRECTION('',(-1.,0.,0.)); -#39235=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39236=DIRECTION('',(-1.,0.,0.)); -#39237=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39238=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39239=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39240=DIRECTION('',(-1.,0.,0.)); -#39241=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39242=DIRECTION('',(-1.,0.,0.)); -#39243=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39244=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39245=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39246=DIRECTION('',(-1.,0.,0.)); -#39247=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39248=DIRECTION('',(-1.,0.,0.)); -#39249=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39250=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39251=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39252=DIRECTION('',(-1.,0.,0.)); -#39253=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39254=DIRECTION('',(-1.,0.,0.)); -#39255=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39256=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39257=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39258=DIRECTION('',(-1.,0.,0.)); -#39259=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39260=DIRECTION('',(-1.,0.,0.)); -#39261=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39262=DIRECTION('',(-1.,0.,0.)); -#39263=DIRECTION('',(0.,0.,1.)); -#39264=DIRECTION('',(1.,0.,0.)); -#39265=DIRECTION('',(0.,0.,-1.)); -#39266=DIRECTION('',(-1.,0.,0.)); -#39267=DIRECTION('',(0.,0.,1.)); -#39268=DIRECTION('',(-1.,0.,0.)); -#39269=DIRECTION('',(0.,0.,1.)); -#39270=DIRECTION('',(1.,0.,0.)); -#39271=DIRECTION('',(0.,0.,-1.)); -#39272=DIRECTION('',(-1.,0.,0.)); -#39273=DIRECTION('',(0.,0.,1.)); -#39274=DIRECTION('',(-1.,0.,0.)); -#39275=DIRECTION('',(0.,0.,1.)); -#39276=DIRECTION('',(1.,0.,0.)); -#39277=DIRECTION('',(0.,0.,-1.)); -#39278=DIRECTION('',(-1.,0.,0.)); -#39279=DIRECTION('',(0.,0.,1.)); -#39280=DIRECTION('',(-1.,0.,0.)); -#39281=DIRECTION('',(0.,0.,1.)); -#39282=DIRECTION('',(1.,0.,0.)); -#39283=DIRECTION('',(0.,0.,-1.)); -#39284=DIRECTION('',(-1.,0.,0.)); -#39285=DIRECTION('',(0.,0.,1.)); -#39286=DIRECTION('',(-1.,0.,0.)); -#39287=DIRECTION('',(0.,0.,1.)); -#39288=DIRECTION('',(1.,0.,0.)); -#39289=DIRECTION('',(0.,0.,-1.)); -#39290=DIRECTION('',(-1.,0.,0.)); -#39291=DIRECTION('',(0.,0.,1.)); -#39292=DIRECTION('',(-1.,0.,0.)); -#39293=DIRECTION('',(0.,0.,1.)); -#39294=DIRECTION('',(1.,0.,0.)); -#39295=DIRECTION('',(0.,0.,-1.)); -#39296=DIRECTION('',(-1.,0.,0.)); -#39297=DIRECTION('',(0.,0.,1.)); -#39298=DIRECTION('',(-1.,0.,0.)); -#39299=DIRECTION('',(0.,0.,1.)); -#39300=DIRECTION('',(1.,0.,0.)); -#39301=DIRECTION('',(0.,0.,-1.)); -#39302=DIRECTION('',(-1.,0.,0.)); -#39303=DIRECTION('',(0.,0.,1.)); -#39304=DIRECTION('',(-1.,0.,0.)); -#39305=DIRECTION('',(0.,0.,1.)); -#39306=DIRECTION('',(1.,0.,0.)); -#39307=DIRECTION('',(0.,0.,-1.)); -#39308=DIRECTION('',(-1.,0.,0.)); -#39309=DIRECTION('',(0.,0.,1.)); -#39310=DIRECTION('',(-1.,0.,0.)); -#39311=DIRECTION('',(0.,0.,1.)); -#39312=DIRECTION('',(1.,0.,0.)); -#39313=DIRECTION('',(0.,0.,-1.)); -#39314=DIRECTION('',(-1.,0.,0.)); -#39315=DIRECTION('',(0.,0.,1.)); -#39316=DIRECTION('',(-1.,0.,0.)); -#39317=DIRECTION('',(0.,0.,1.)); -#39318=DIRECTION('',(1.,0.,0.)); -#39319=DIRECTION('',(0.,0.,-1.)); -#39320=DIRECTION('',(-1.,0.,0.)); -#39321=DIRECTION('',(0.,0.,1.)); -#39322=DIRECTION('',(-1.,0.,0.)); -#39323=DIRECTION('',(0.,0.,1.)); -#39324=DIRECTION('',(1.,0.,0.)); -#39325=DIRECTION('',(0.,0.,-1.)); -#39326=DIRECTION('',(-1.,0.,0.)); -#39327=DIRECTION('',(0.,0.,1.)); -#39328=DIRECTION('',(-1.,0.,0.)); -#39329=DIRECTION('',(0.,0.,1.)); -#39330=DIRECTION('',(1.,0.,0.)); -#39331=DIRECTION('',(0.,0.,-1.)); -#39332=DIRECTION('',(-1.,0.,0.)); -#39333=DIRECTION('',(0.,0.,1.)); -#39334=DIRECTION('',(-1.,0.,0.)); -#39335=DIRECTION('',(0.,0.,1.)); -#39336=DIRECTION('',(1.,0.,0.)); -#39337=DIRECTION('',(0.,0.,-1.)); -#39338=DIRECTION('',(-1.,0.,0.)); -#39339=DIRECTION('',(0.,0.,1.)); -#39340=DIRECTION('',(-1.,0.,0.)); -#39341=DIRECTION('',(0.,0.,1.)); -#39342=DIRECTION('',(1.,0.,0.)); -#39343=DIRECTION('',(0.,0.,-1.)); -#39344=DIRECTION('',(-1.,0.,0.)); -#39345=DIRECTION('',(0.,0.,1.)); -#39346=DIRECTION('',(-1.,0.,0.)); -#39347=DIRECTION('',(0.,0.,1.)); -#39348=DIRECTION('',(1.,0.,0.)); -#39349=DIRECTION('',(0.,0.,-1.)); -#39350=DIRECTION('',(-1.,0.,0.)); -#39351=DIRECTION('',(0.,0.,1.)); -#39352=DIRECTION('',(-1.,0.,0.)); -#39353=DIRECTION('',(0.,0.,1.)); -#39354=DIRECTION('',(1.,0.,0.)); -#39355=DIRECTION('',(0.,0.,-1.)); -#39356=DIRECTION('',(-1.,0.,0.)); -#39357=DIRECTION('',(0.,0.,1.)); -#39358=DIRECTION('',(-1.,0.,0.)); -#39359=DIRECTION('',(0.,0.,1.)); -#39360=DIRECTION('',(1.,0.,0.)); -#39361=DIRECTION('',(0.,0.,-1.)); -#39362=DIRECTION('',(-1.,0.,0.)); -#39363=DIRECTION('',(0.,0.,1.)); -#39364=DIRECTION('',(-1.,0.,0.)); -#39365=DIRECTION('',(0.,0.,1.)); -#39366=DIRECTION('',(1.,0.,0.)); -#39367=DIRECTION('',(0.,0.,-1.)); -#39368=DIRECTION('',(-1.,0.,0.)); -#39369=DIRECTION('',(0.,0.,1.)); -#39370=DIRECTION('',(-1.,0.,0.)); -#39371=DIRECTION('',(0.,0.,1.)); -#39372=DIRECTION('',(1.,0.,0.)); -#39373=DIRECTION('',(0.,0.,-1.)); -#39374=DIRECTION('',(-1.,0.,0.)); -#39375=DIRECTION('',(0.,0.,1.)); -#39376=DIRECTION('',(-1.,0.,0.)); -#39377=DIRECTION('',(0.,0.,1.)); -#39378=DIRECTION('',(1.,0.,0.)); -#39379=DIRECTION('',(0.,0.,-1.)); -#39380=DIRECTION('',(-1.,0.,0.)); -#39381=DIRECTION('',(-1.,0.,0.)); -#39382=DIRECTION('',(0.,0.,1.)); -#39383=DIRECTION('',(-1.,0.,0.)); -#39384=DIRECTION('',(0.,0.,1.)); -#39385=DIRECTION('',(1.,0.,0.)); -#39386=DIRECTION('',(0.,0.,-1.)); -#39387=DIRECTION('',(-1.,0.,0.)); -#39388=DIRECTION('',(-1.,0.,0.)); -#39389=DIRECTION('',(0.,0.,1.)); -#39390=DIRECTION('',(-1.,0.,0.)); -#39391=DIRECTION('',(0.,0.,1.)); -#39392=DIRECTION('',(1.,0.,0.)); -#39393=DIRECTION('',(0.,0.,-1.)); -#39394=DIRECTION('',(-1.,0.,0.)); -#39395=DIRECTION('',(-1.,0.,0.)); -#39396=DIRECTION('',(0.,0.,1.)); -#39397=DIRECTION('',(-1.,0.,0.)); -#39398=DIRECTION('',(0.,0.,1.)); -#39399=DIRECTION('',(1.,0.,0.)); -#39400=DIRECTION('',(0.,0.,-1.)); -#39401=DIRECTION('',(-1.,0.,0.)); -#39402=DIRECTION('',(-1.,0.,0.)); -#39403=DIRECTION('',(0.,0.,1.)); -#39404=DIRECTION('',(-1.,0.,0.)); -#39405=DIRECTION('',(0.,0.,1.)); -#39406=DIRECTION('',(1.,0.,0.)); -#39407=DIRECTION('',(0.,0.,-1.)); -#39408=DIRECTION('',(-1.,0.,0.)); -#39409=DIRECTION('',(-1.,0.,0.)); -#39410=DIRECTION('',(0.,0.,1.)); -#39411=DIRECTION('',(-1.,0.,0.)); -#39412=DIRECTION('',(0.,0.,1.)); -#39413=DIRECTION('',(1.,0.,0.)); -#39414=DIRECTION('',(0.,0.,-1.)); -#39415=DIRECTION('',(-1.,0.,0.)); -#39416=DIRECTION('',(-1.,0.,0.)); -#39417=DIRECTION('',(0.,0.,1.)); -#39418=DIRECTION('',(-1.,0.,0.)); -#39419=DIRECTION('',(0.,0.,1.)); -#39420=DIRECTION('',(1.,0.,0.)); -#39421=DIRECTION('',(0.,0.,-1.)); -#39422=DIRECTION('',(-1.,0.,0.)); -#39423=DIRECTION('',(-1.,0.,0.)); -#39424=DIRECTION('',(0.,0.,1.)); -#39425=DIRECTION('',(-1.,0.,0.)); -#39426=DIRECTION('',(0.,0.,1.)); -#39427=DIRECTION('',(1.,0.,0.)); -#39428=DIRECTION('',(0.,0.,-1.)); -#39429=DIRECTION('',(-1.,0.,0.)); -#39430=DIRECTION('',(-1.,0.,0.)); -#39431=DIRECTION('',(0.,0.,1.)); -#39432=DIRECTION('',(-1.,0.,0.)); -#39433=DIRECTION('',(0.,0.,1.)); -#39434=DIRECTION('',(1.,0.,0.)); -#39435=DIRECTION('',(0.,0.,-1.)); -#39436=DIRECTION('',(-1.,0.,0.)); -#39437=DIRECTION('',(-1.,0.,0.)); -#39438=DIRECTION('',(0.,0.,1.)); -#39439=DIRECTION('',(-1.,0.,0.)); -#39440=DIRECTION('',(0.,0.,1.)); -#39441=DIRECTION('',(1.,0.,0.)); -#39442=DIRECTION('',(0.,0.,-1.)); -#39443=DIRECTION('',(-1.,0.,0.)); -#39444=DIRECTION('',(-1.,0.,0.)); -#39445=DIRECTION('',(0.,0.,1.)); -#39446=DIRECTION('',(-1.,0.,0.)); -#39447=DIRECTION('',(0.,0.,1.)); -#39448=DIRECTION('',(1.,0.,0.)); -#39449=DIRECTION('',(0.,0.,-1.)); -#39450=DIRECTION('',(-1.,0.,0.)); -#39451=DIRECTION('',(-1.,0.,0.)); -#39452=DIRECTION('',(0.,0.,1.)); -#39453=DIRECTION('',(-1.,0.,0.)); -#39454=DIRECTION('',(0.,0.,1.)); -#39455=DIRECTION('',(1.,0.,0.)); -#39456=DIRECTION('',(0.,0.,-1.)); -#39457=DIRECTION('',(-1.,0.,0.)); -#39458=DIRECTION('',(-1.,0.,0.)); -#39459=DIRECTION('',(0.,0.,1.)); -#39460=DIRECTION('',(-1.,0.,0.)); -#39461=DIRECTION('',(0.,0.,1.)); -#39462=DIRECTION('',(1.,0.,0.)); -#39463=DIRECTION('',(0.,0.,-1.)); -#39464=DIRECTION('',(-1.,0.,0.)); -#39465=DIRECTION('',(-1.,0.,0.)); -#39466=DIRECTION('',(0.,0.,1.)); -#39467=DIRECTION('',(-1.,0.,0.)); -#39468=DIRECTION('',(0.,0.,1.)); -#39469=DIRECTION('',(1.,0.,0.)); -#39470=DIRECTION('',(0.,0.,-1.)); -#39471=DIRECTION('',(-1.,0.,0.)); -#39472=DIRECTION('',(-1.,0.,0.)); -#39473=DIRECTION('',(0.,0.,1.)); -#39474=DIRECTION('',(-1.,0.,0.)); -#39475=DIRECTION('',(0.,0.,1.)); -#39476=DIRECTION('',(1.,0.,0.)); -#39477=DIRECTION('',(0.,0.,-1.)); -#39478=DIRECTION('',(-1.,0.,0.)); -#39479=DIRECTION('',(-1.,0.,0.)); -#39480=DIRECTION('',(0.,0.,1.)); -#39481=DIRECTION('',(-1.,0.,0.)); -#39482=DIRECTION('',(0.,0.,1.)); -#39483=DIRECTION('',(1.,0.,0.)); -#39484=DIRECTION('',(0.,0.,-1.)); -#39485=DIRECTION('',(-1.,0.,0.)); -#39486=DIRECTION('',(-1.,0.,0.)); -#39487=DIRECTION('',(0.,0.,1.)); -#39488=DIRECTION('',(-1.,0.,0.)); -#39489=DIRECTION('',(0.,0.,1.)); -#39490=DIRECTION('',(1.,0.,0.)); -#39491=DIRECTION('',(0.,0.,-1.)); -#39492=DIRECTION('',(-1.,0.,0.)); -#39493=DIRECTION('',(-1.,0.,0.)); -#39494=DIRECTION('',(0.,0.,1.)); -#39495=DIRECTION('',(-1.,0.,0.)); -#39496=DIRECTION('',(0.,0.,1.)); -#39497=DIRECTION('',(1.,0.,0.)); -#39498=DIRECTION('',(0.,0.,-1.)); -#39499=DIRECTION('',(-1.,0.,0.)); -#39500=DIRECTION('',(-1.,0.,0.)); -#39501=DIRECTION('',(0.,0.,1.)); -#39502=DIRECTION('',(-1.,0.,0.)); -#39503=DIRECTION('',(0.,0.,1.)); -#39504=DIRECTION('',(1.,0.,0.)); -#39505=DIRECTION('',(0.,0.,-1.)); -#39506=DIRECTION('',(-1.,0.,0.)); -#39507=DIRECTION('',(-1.,0.,0.)); -#39508=DIRECTION('',(0.,0.,1.)); -#39509=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39510=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39511=DIRECTION('',(-1.,0.,0.)); -#39512=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39513=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39514=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39515=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39516=DIRECTION('',(-1.,0.,0.)); -#39517=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39518=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39519=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39520=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39521=DIRECTION('',(-1.,0.,0.)); -#39522=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39523=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39524=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39525=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39526=DIRECTION('',(-1.,0.,0.)); -#39527=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39528=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39529=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39530=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39531=DIRECTION('',(-1.,0.,0.)); -#39532=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39533=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39534=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39535=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39536=DIRECTION('',(-1.,0.,0.)); -#39537=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39538=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39539=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39540=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39541=DIRECTION('',(-1.,0.,0.)); -#39542=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39543=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39544=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39545=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39546=DIRECTION('',(-1.,0.,0.)); -#39547=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39548=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39549=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39550=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39551=DIRECTION('',(-1.,0.,0.)); -#39552=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39553=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39554=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39555=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39556=DIRECTION('',(-1.,0.,0.)); -#39557=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39558=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39559=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39560=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39561=DIRECTION('',(-1.,0.,0.)); -#39562=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39563=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39564=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39565=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39566=DIRECTION('',(-1.,0.,0.)); -#39567=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39568=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39569=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39570=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39571=DIRECTION('',(-1.,0.,0.)); -#39572=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39573=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39574=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39575=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39576=DIRECTION('',(-1.,0.,0.)); -#39577=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39578=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39579=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39580=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39581=DIRECTION('',(-1.,0.,0.)); -#39582=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39583=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39584=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39585=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39586=DIRECTION('',(-1.,0.,0.)); -#39587=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39588=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39589=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39590=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39591=DIRECTION('',(-1.,0.,0.)); -#39592=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39593=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39594=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39595=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39596=DIRECTION('',(-1.,0.,0.)); -#39597=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39598=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39599=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39600=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39601=DIRECTION('',(-1.,0.,0.)); -#39602=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39603=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39604=DIRECTION('',(-1.,0.,0.)); -#39605=DIRECTION('',(0.,0.,1.)); -#39606=DIRECTION('',(-1.,0.,0.)); -#39607=DIRECTION('',(0.,0.,1.)); -#39608=DIRECTION('',(1.,0.,0.)); -#39609=DIRECTION('',(0.,0.,-1.)); -#39610=DIRECTION('',(-1.,0.,0.)); -#39611=DIRECTION('',(0.,0.,1.)); -#39612=DIRECTION('',(-1.,0.,0.)); -#39613=DIRECTION('',(0.,0.,1.)); -#39614=DIRECTION('',(1.,0.,0.)); -#39615=DIRECTION('',(0.,0.,-1.)); -#39616=DIRECTION('',(-1.,0.,0.)); -#39617=DIRECTION('',(0.,0.,1.)); -#39618=DIRECTION('',(-1.,0.,0.)); -#39619=DIRECTION('',(0.,0.,1.)); -#39620=DIRECTION('',(1.,0.,0.)); -#39621=DIRECTION('',(0.,0.,-1.)); -#39622=DIRECTION('',(-1.,0.,0.)); -#39623=DIRECTION('',(0.,0.,1.)); -#39624=DIRECTION('',(-1.,0.,0.)); -#39625=DIRECTION('',(0.,0.,1.)); -#39626=DIRECTION('',(1.,0.,0.)); -#39627=DIRECTION('',(0.,0.,-1.)); -#39628=DIRECTION('',(-1.,0.,0.)); -#39629=DIRECTION('',(0.,0.,1.)); -#39630=DIRECTION('',(-1.,0.,0.)); -#39631=DIRECTION('',(0.,0.,1.)); -#39632=DIRECTION('',(1.,0.,0.)); -#39633=DIRECTION('',(0.,0.,-1.)); -#39634=DIRECTION('',(-1.,0.,0.)); -#39635=DIRECTION('',(0.,0.,1.)); -#39636=DIRECTION('',(-1.,0.,0.)); -#39637=DIRECTION('',(0.,0.,1.)); -#39638=DIRECTION('',(1.,0.,0.)); -#39639=DIRECTION('',(0.,0.,-1.)); -#39640=DIRECTION('',(-1.,0.,0.)); -#39641=DIRECTION('',(0.,0.,1.)); -#39642=DIRECTION('',(-1.,0.,0.)); -#39643=DIRECTION('',(0.,0.,1.)); -#39644=DIRECTION('',(1.,0.,0.)); -#39645=DIRECTION('',(0.,0.,-1.)); -#39646=DIRECTION('',(-1.,0.,0.)); -#39647=DIRECTION('',(0.,0.,1.)); -#39648=DIRECTION('',(-1.,0.,0.)); -#39649=DIRECTION('',(0.,0.,1.)); -#39650=DIRECTION('',(1.,0.,0.)); -#39651=DIRECTION('',(0.,0.,-1.)); -#39652=DIRECTION('',(-1.,0.,0.)); -#39653=DIRECTION('',(0.,0.,1.)); -#39654=DIRECTION('',(-1.,0.,0.)); -#39655=DIRECTION('',(0.,0.,1.)); -#39656=DIRECTION('',(1.,0.,0.)); -#39657=DIRECTION('',(0.,0.,-1.)); -#39658=DIRECTION('',(-1.,0.,0.)); -#39659=DIRECTION('',(0.,0.,1.)); -#39660=DIRECTION('',(-1.,0.,0.)); -#39661=DIRECTION('',(0.,0.,1.)); -#39662=DIRECTION('',(1.,0.,0.)); -#39663=DIRECTION('',(0.,0.,-1.)); -#39664=DIRECTION('',(-1.,0.,0.)); -#39665=DIRECTION('',(0.,0.,1.)); -#39666=DIRECTION('',(-1.,0.,0.)); -#39667=DIRECTION('',(0.,0.,1.)); -#39668=DIRECTION('',(1.,0.,0.)); -#39669=DIRECTION('',(0.,0.,-1.)); -#39670=DIRECTION('',(-1.,0.,0.)); -#39671=DIRECTION('',(0.,0.,1.)); -#39672=DIRECTION('',(-1.,0.,0.)); -#39673=DIRECTION('',(0.,0.,1.)); -#39674=DIRECTION('',(1.,0.,0.)); -#39675=DIRECTION('',(0.,0.,-1.)); -#39676=DIRECTION('',(-1.,0.,0.)); -#39677=DIRECTION('',(0.,0.,1.)); -#39678=DIRECTION('',(-1.,0.,0.)); -#39679=DIRECTION('',(0.,0.,1.)); -#39680=DIRECTION('',(1.,0.,0.)); -#39681=DIRECTION('',(0.,0.,-1.)); -#39682=DIRECTION('',(-1.,0.,0.)); -#39683=DIRECTION('',(0.,0.,1.)); -#39684=DIRECTION('',(-1.,0.,0.)); -#39685=DIRECTION('',(0.,0.,1.)); -#39686=DIRECTION('',(1.,0.,0.)); -#39687=DIRECTION('',(0.,0.,-1.)); -#39688=DIRECTION('',(-1.,0.,0.)); -#39689=DIRECTION('',(0.,0.,1.)); -#39690=DIRECTION('',(-1.,0.,0.)); -#39691=DIRECTION('',(0.,0.,1.)); -#39692=DIRECTION('',(1.,0.,0.)); -#39693=DIRECTION('',(0.,0.,-1.)); -#39694=DIRECTION('',(-1.,0.,0.)); -#39695=DIRECTION('',(0.,0.,1.)); -#39696=DIRECTION('',(-1.,0.,0.)); -#39697=DIRECTION('',(0.,0.,1.)); -#39698=DIRECTION('',(1.,0.,0.)); -#39699=DIRECTION('',(0.,0.,-1.)); -#39700=DIRECTION('',(-1.,0.,0.)); -#39701=DIRECTION('',(0.,0.,1.)); -#39702=DIRECTION('',(-1.,0.,0.)); -#39703=DIRECTION('',(0.,0.,1.)); -#39704=DIRECTION('',(1.,0.,0.)); -#39705=DIRECTION('',(0.,0.,-1.)); -#39706=DIRECTION('',(-1.,0.,0.)); -#39707=DIRECTION('',(0.,0.,1.)); -#39708=DIRECTION('',(-1.,0.,0.)); -#39709=DIRECTION('',(0.,0.,1.)); -#39710=DIRECTION('',(1.,0.,0.)); -#39711=DIRECTION('',(0.,0.,-1.)); -#39712=DIRECTION('',(-1.,0.,0.)); -#39713=DIRECTION('',(0.,0.,1.)); -#39714=DIRECTION('',(-1.,0.,0.)); -#39715=DIRECTION('',(0.,0.,1.)); -#39716=DIRECTION('',(1.,0.,0.)); -#39717=DIRECTION('',(0.,0.,-1.)); -#39718=DIRECTION('',(-1.,0.,0.)); -#39719=DIRECTION('',(0.,0.,1.)); -#39720=DIRECTION('',(-1.,0.,0.)); -#39721=DIRECTION('',(0.,0.,1.)); -#39722=DIRECTION('',(1.,0.,0.)); -#39723=DIRECTION('',(0.,0.,-1.)); -#39724=DIRECTION('',(-1.,0.,0.)); -#39725=DIRECTION('',(0.,0.,1.)); -#39726=DIRECTION('',(-1.,0.,0.)); -#39727=DIRECTION('',(0.,0.,1.)); -#39728=DIRECTION('',(1.,0.,0.)); -#39729=DIRECTION('',(0.,0.,-1.)); -#39730=DIRECTION('',(-1.,0.,0.)); -#39731=DIRECTION('',(0.,0.,1.)); -#39732=DIRECTION('',(-1.,0.,0.)); -#39733=DIRECTION('',(0.,0.,1.)); -#39734=DIRECTION('',(1.,0.,0.)); -#39735=DIRECTION('',(0.,0.,-1.)); -#39736=DIRECTION('',(-1.,0.,0.)); -#39737=DIRECTION('',(0.,0.,1.)); -#39738=DIRECTION('',(-1.,0.,0.)); -#39739=DIRECTION('',(0.,0.,1.)); -#39740=DIRECTION('',(1.,0.,0.)); -#39741=DIRECTION('',(0.,0.,-1.)); -#39742=DIRECTION('',(-1.,0.,0.)); -#39743=DIRECTION('',(0.,0.,1.)); -#39744=DIRECTION('',(-1.,0.,0.)); -#39745=DIRECTION('',(0.,0.,1.)); -#39746=DIRECTION('',(1.,0.,0.)); -#39747=DIRECTION('',(0.,0.,-1.)); -#39748=DIRECTION('',(-1.,0.,0.)); -#39749=DIRECTION('',(0.,0.,1.)); -#39750=DIRECTION('',(-1.,0.,0.)); -#39751=DIRECTION('',(0.,0.,1.)); -#39752=DIRECTION('',(1.,0.,0.)); -#39753=DIRECTION('',(0.,0.,-1.)); -#39754=DIRECTION('',(-1.,0.,0.)); -#39755=DIRECTION('',(0.,0.,1.)); -#39756=DIRECTION('',(-1.,0.,0.)); -#39757=DIRECTION('',(0.,0.,1.)); -#39758=DIRECTION('',(1.,0.,0.)); -#39759=DIRECTION('',(0.,0.,-1.)); -#39760=DIRECTION('',(-1.,0.,0.)); -#39761=DIRECTION('',(0.,0.,1.)); -#39762=DIRECTION('',(-1.,0.,0.)); -#39763=DIRECTION('',(0.,0.,1.)); -#39764=DIRECTION('',(1.,0.,0.)); -#39765=DIRECTION('',(0.,0.,-1.)); -#39766=DIRECTION('',(-1.,0.,0.)); -#39767=DIRECTION('',(0.,0.,1.)); -#39768=DIRECTION('',(-1.,0.,0.)); -#39769=DIRECTION('',(0.,0.,1.)); -#39770=DIRECTION('',(1.,0.,0.)); -#39771=DIRECTION('',(0.,0.,-1.)); -#39772=DIRECTION('',(-1.,0.,0.)); -#39773=DIRECTION('',(0.,0.,1.)); -#39774=DIRECTION('',(-1.,0.,0.)); -#39775=DIRECTION('',(0.,0.,1.)); -#39776=DIRECTION('',(1.,0.,0.)); -#39777=DIRECTION('',(0.,0.,-1.)); -#39778=DIRECTION('',(-1.,0.,0.)); -#39779=DIRECTION('',(0.,0.,1.)); -#39780=DIRECTION('',(-1.,0.,0.)); -#39781=DIRECTION('',(0.,0.,1.)); -#39782=DIRECTION('',(1.,0.,0.)); -#39783=DIRECTION('',(0.,0.,-1.)); -#39784=DIRECTION('',(-1.,0.,0.)); -#39785=DIRECTION('',(0.,0.,1.)); -#39786=DIRECTION('',(-1.,0.,0.)); -#39787=DIRECTION('',(0.,0.,1.)); -#39788=DIRECTION('',(1.,0.,0.)); -#39789=DIRECTION('',(0.,0.,-1.)); -#39790=DIRECTION('',(-1.,0.,0.)); -#39791=DIRECTION('',(0.,0.,1.)); -#39792=DIRECTION('',(-1.,0.,0.)); -#39793=DIRECTION('',(0.,0.,1.)); -#39794=DIRECTION('',(1.,0.,0.)); -#39795=DIRECTION('',(0.,0.,-1.)); -#39796=DIRECTION('',(-1.,0.,0.)); -#39797=DIRECTION('',(0.,0.,1.)); -#39798=DIRECTION('',(-1.,0.,0.)); -#39799=DIRECTION('',(0.,0.,1.)); -#39800=DIRECTION('',(1.,0.,0.)); -#39801=DIRECTION('',(0.,0.,-1.)); -#39802=DIRECTION('',(-1.,0.,0.)); -#39803=DIRECTION('',(0.,0.,1.)); -#39804=DIRECTION('',(-1.,0.,0.)); -#39805=DIRECTION('',(0.,0.,1.)); -#39806=DIRECTION('',(1.,0.,0.)); -#39807=DIRECTION('',(0.,0.,-1.)); -#39808=DIRECTION('',(-1.,0.,0.)); -#39809=DIRECTION('',(0.,0.,1.)); -#39810=DIRECTION('',(-1.,0.,0.)); -#39811=DIRECTION('',(0.,0.,1.)); -#39812=DIRECTION('',(1.,0.,0.)); -#39813=DIRECTION('',(0.,0.,-1.)); -#39814=DIRECTION('',(-1.,0.,0.)); -#39815=DIRECTION('',(0.,0.,1.)); -#39816=DIRECTION('',(-1.,0.,0.)); -#39817=DIRECTION('',(0.,0.,1.)); -#39818=DIRECTION('',(1.,0.,0.)); -#39819=DIRECTION('',(0.,0.,-1.)); -#39820=DIRECTION('',(-1.,0.,0.)); -#39821=DIRECTION('',(0.,0.,1.)); -#39822=DIRECTION('',(-1.,0.,0.)); -#39823=DIRECTION('',(0.,0.,1.)); -#39824=DIRECTION('',(1.,0.,0.)); -#39825=DIRECTION('',(0.,0.,-1.)); -#39826=DIRECTION('',(-1.,0.,0.)); -#39827=DIRECTION('',(0.,0.,1.)); -#39828=DIRECTION('',(-1.,0.,0.)); -#39829=DIRECTION('',(0.,0.,1.)); -#39830=DIRECTION('',(1.,0.,0.)); -#39831=DIRECTION('',(0.,0.,-1.)); -#39832=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); -#39833=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39834=DIRECTION('',(-1.,0.,0.)); -#39835=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); -#39836=DIRECTION('',(-1.,0.,0.)); -#39837=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); -#39838=DIRECTION('',(-1.,0.,0.)); -#39839=DIRECTION('',(0.,0.,1.)); -#39840=DIRECTION('',(1.,0.,0.)); -#39841=DIRECTION('',(0.,0.,-1.)); -#39842=DIRECTION('',(-1.,0.,0.)); -#39843=DIRECTION('',(0.,0.,1.)); -#39844=DIRECTION('',(-1.,0.,0.)); -#39845=DIRECTION('',(0.,0.,1.)); -#39846=DIRECTION('',(1.,0.,0.)); -#39847=DIRECTION('',(0.,0.,-1.)); -#39848=DIRECTION('',(-1.,0.,0.)); -#39849=DIRECTION('',(-1.,0.,0.)); -#39850=DIRECTION('',(0.,0.,1.)); -#39851=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); -#39852=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39853=DIRECTION('',(-1.,0.,0.)); -#39854=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); -#39855=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); -#39856=DIRECTION('',(-1.,0.,0.)); -#39857=DIRECTION('',(0.,0.,1.)); -#39858=DIRECTION('',(-1.,0.,0.)); -#39859=DIRECTION('',(0.,0.,1.)); -#39860=DIRECTION('',(1.,0.,0.)); -#39861=DIRECTION('',(0.,0.,-1.)); -#39862=DIRECTION('',(-1.,0.,0.)); -#39863=DIRECTION('',(0.,0.,1.)); -#39864=DIRECTION('',(-1.,0.,0.)); -#39865=DIRECTION('',(0.,0.,1.)); -#39866=DIRECTION('',(1.,0.,0.)); -#39867=DIRECTION('',(0.,0.,-1.)); -#39868=DIRECTION('',(0.,1.,0.)); -#39869=DIRECTION('',(0.,0.,1.)); -#39870=DIRECTION('',(0.,0.,-1.)); -#39871=DIRECTION('',(1.,0.,0.)); -#39872=DIRECTION('',(0.,0.,-1.)); -#39873=DIRECTION('',(0.,1.,0.)); -#39874=DIRECTION('',(0.,0.,1.)); -#39875=DIRECTION('',(0.,0.,-1.)); -#39876=DIRECTION('',(1.,0.,0.)); -#39877=DIRECTION('',(0.,0.,-1.)); -#39878=DIRECTION('',(6.19544098563143E-16,1.,0.)); -#39879=DIRECTION('',(-1.,6.19544098563143E-16,0.)); -#39880=DIRECTION('',(0.,0.,-1.)); -#39881=DIRECTION('',(-1.,0.,0.)); -#39882=DIRECTION('',(0.,0.,1.)); -#39883=DIRECTION('',(6.19544098563143E-16,1.,0.)); -#39884=DIRECTION('',(-1.,6.19544098563143E-16,0.)); -#39885=DIRECTION('',(0.,0.,-1.)); -#39886=DIRECTION('',(-1.,0.,0.)); -#39887=DIRECTION('',(0.,0.,1.)); -#39888=DIRECTION('',(-1.,0.,0.)); -#39889=DIRECTION('',(0.,0.,1.)); -#39890=DIRECTION('',(0.,0.,-1.)); -#39891=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39892=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39893=DIRECTION('',(1.,0.,0.)); -#39894=DIRECTION('',(0.,0.,-1.)); -#39895=DIRECTION('',(0.,0.,-1.)); -#39896=DIRECTION('',(0.,1.,0.)); -#39897=DIRECTION('',(0.,0.,1.)); -#39898=DIRECTION('',(-1.,0.,0.)); -#39899=DIRECTION('',(0.,0.,1.)); -#39900=DIRECTION('',(0.,0.,-1.)); -#39901=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39902=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39903=DIRECTION('',(1.,0.,0.)); -#39904=DIRECTION('',(0.,0.,-1.)); -#39905=DIRECTION('',(0.,0.,-1.)); -#39906=DIRECTION('',(0.,1.,0.)); -#39907=DIRECTION('',(0.,0.,1.)); -#39908=DIRECTION('',(-1.,0.,0.)); -#39909=DIRECTION('',(0.,0.,1.)); -#39910=DIRECTION('',(0.,0.,-1.)); -#39911=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39912=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39913=DIRECTION('',(1.,0.,0.)); -#39914=DIRECTION('',(0.,0.,-1.)); -#39915=DIRECTION('',(0.,0.,-1.)); -#39916=DIRECTION('',(0.,1.,0.)); -#39917=DIRECTION('',(0.,0.,1.)); -#39918=DIRECTION('',(-1.,0.,0.)); -#39919=DIRECTION('',(0.,0.,1.)); -#39920=DIRECTION('',(0.,0.,-1.)); -#39921=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39922=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39923=DIRECTION('',(1.,0.,0.)); -#39924=DIRECTION('',(0.,0.,-1.)); -#39925=DIRECTION('',(0.,0.,-1.)); -#39926=DIRECTION('',(0.,1.,0.)); -#39927=DIRECTION('',(0.,0.,1.)); -#39928=DIRECTION('',(-1.,0.,0.)); -#39929=DIRECTION('',(0.,0.,1.)); -#39930=DIRECTION('',(0.,0.,-1.)); -#39931=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39932=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39933=DIRECTION('',(1.,0.,0.)); -#39934=DIRECTION('',(0.,0.,-1.)); -#39935=DIRECTION('',(0.,0.,-1.)); -#39936=DIRECTION('',(0.,1.,0.)); -#39937=DIRECTION('',(0.,0.,1.)); -#39938=DIRECTION('',(-1.,0.,0.)); -#39939=DIRECTION('',(0.,0.,1.)); -#39940=DIRECTION('',(0.,0.,-1.)); -#39941=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39942=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39943=DIRECTION('',(1.,0.,0.)); -#39944=DIRECTION('',(0.,0.,-1.)); -#39945=DIRECTION('',(0.,0.,-1.)); -#39946=DIRECTION('',(0.,1.,0.)); -#39947=DIRECTION('',(0.,0.,1.)); -#39948=DIRECTION('',(-1.,0.,0.)); -#39949=DIRECTION('',(0.,0.,1.)); -#39950=DIRECTION('',(0.,0.,-1.)); -#39951=DIRECTION('',(6.19544098563145E-16,1.,0.)); -#39952=DIRECTION('',(-1.,6.19544098563145E-16,0.)); -#39953=DIRECTION('',(1.,0.,0.)); -#39954=DIRECTION('',(0.,0.,-1.)); -#39955=DIRECTION('',(0.,0.,-1.)); -#39956=DIRECTION('',(0.,1.,0.)); -#39957=DIRECTION('',(0.,0.,1.)); -#39958=DIRECTION('',(-1.,0.,0.)); -#39959=DIRECTION('',(0.,0.,1.)); -#39960=DIRECTION('',(0.,0.,-1.)); -#39961=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39962=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39963=DIRECTION('',(1.,0.,0.)); -#39964=DIRECTION('',(0.,0.,-1.)); -#39965=DIRECTION('',(0.,0.,-1.)); -#39966=DIRECTION('',(0.,1.,0.)); -#39967=DIRECTION('',(0.,0.,1.)); -#39968=DIRECTION('',(-1.,0.,0.)); -#39969=DIRECTION('',(0.,0.,1.)); -#39970=DIRECTION('',(0.,0.,-1.)); -#39971=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39972=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39973=DIRECTION('',(1.,0.,0.)); -#39974=DIRECTION('',(0.,0.,-1.)); -#39975=DIRECTION('',(0.,0.,-1.)); -#39976=DIRECTION('',(0.,1.,0.)); -#39977=DIRECTION('',(0.,0.,1.)); -#39978=DIRECTION('',(-1.,0.,0.)); -#39979=DIRECTION('',(0.,0.,1.)); -#39980=DIRECTION('',(0.,0.,-1.)); -#39981=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39982=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39983=DIRECTION('',(1.,0.,0.)); -#39984=DIRECTION('',(0.,0.,-1.)); -#39985=DIRECTION('',(0.,0.,-1.)); -#39986=DIRECTION('',(0.,1.,0.)); -#39987=DIRECTION('',(0.,0.,1.)); -#39988=DIRECTION('',(-1.,0.,0.)); -#39989=DIRECTION('',(0.,0.,1.)); -#39990=DIRECTION('',(0.,0.,-1.)); -#39991=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#39992=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#39993=DIRECTION('',(1.,0.,0.)); -#39994=DIRECTION('',(0.,0.,-1.)); -#39995=DIRECTION('',(0.,0.,-1.)); -#39996=DIRECTION('',(0.,1.,0.)); -#39997=DIRECTION('',(0.,0.,1.)); -#39998=DIRECTION('',(-1.,0.,0.)); -#39999=DIRECTION('',(0.,0.,1.)); -#40000=DIRECTION('',(0.,0.,-1.)); -#40001=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40002=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40003=DIRECTION('',(1.,0.,0.)); -#40004=DIRECTION('',(0.,0.,-1.)); -#40005=DIRECTION('',(0.,0.,-1.)); -#40006=DIRECTION('',(0.,1.,0.)); -#40007=DIRECTION('',(0.,0.,1.)); -#40008=DIRECTION('',(-1.,0.,0.)); -#40009=DIRECTION('',(0.,0.,1.)); -#40010=DIRECTION('',(0.,0.,-1.)); -#40011=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40012=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40013=DIRECTION('',(1.,0.,0.)); -#40014=DIRECTION('',(0.,0.,-1.)); -#40015=DIRECTION('',(0.,0.,-1.)); -#40016=DIRECTION('',(0.,1.,0.)); -#40017=DIRECTION('',(0.,0.,1.)); -#40018=DIRECTION('',(-1.,0.,0.)); -#40019=DIRECTION('',(0.,0.,1.)); -#40020=DIRECTION('',(0.,0.,-1.)); -#40021=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40022=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40023=DIRECTION('',(1.,0.,0.)); -#40024=DIRECTION('',(0.,0.,-1.)); -#40025=DIRECTION('',(0.,0.,-1.)); -#40026=DIRECTION('',(0.,1.,0.)); -#40027=DIRECTION('',(0.,0.,1.)); -#40028=DIRECTION('',(-1.,0.,0.)); -#40029=DIRECTION('',(0.,0.,1.)); -#40030=DIRECTION('',(0.,0.,-1.)); -#40031=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40032=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40033=DIRECTION('',(1.,0.,0.)); -#40034=DIRECTION('',(0.,0.,-1.)); -#40035=DIRECTION('',(0.,0.,-1.)); -#40036=DIRECTION('',(0.,1.,0.)); -#40037=DIRECTION('',(0.,0.,1.)); -#40038=DIRECTION('',(-1.,0.,0.)); -#40039=DIRECTION('',(0.,0.,1.)); -#40040=DIRECTION('',(0.,0.,-1.)); -#40041=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40042=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40043=DIRECTION('',(1.,0.,0.)); -#40044=DIRECTION('',(0.,0.,-1.)); -#40045=DIRECTION('',(0.,0.,-1.)); -#40046=DIRECTION('',(0.,1.,0.)); -#40047=DIRECTION('',(0.,0.,1.)); -#40048=DIRECTION('',(-1.,0.,0.)); -#40049=DIRECTION('',(0.,0.,1.)); -#40050=DIRECTION('',(0.,0.,-1.)); -#40051=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40052=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40053=DIRECTION('',(1.,0.,0.)); -#40054=DIRECTION('',(0.,0.,-1.)); -#40055=DIRECTION('',(0.,0.,-1.)); -#40056=DIRECTION('',(0.,1.,0.)); -#40057=DIRECTION('',(0.,0.,1.)); -#40058=DIRECTION('',(-1.,0.,0.)); -#40059=DIRECTION('',(0.,0.,1.)); -#40060=DIRECTION('',(0.,0.,-1.)); -#40061=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40062=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40063=DIRECTION('',(1.,0.,0.)); -#40064=DIRECTION('',(0.,0.,-1.)); -#40065=DIRECTION('',(0.,0.,-1.)); -#40066=DIRECTION('',(0.,1.,0.)); -#40067=DIRECTION('',(0.,0.,1.)); -#40068=DIRECTION('',(-1.,0.,0.)); -#40069=DIRECTION('',(0.,0.,1.)); -#40070=DIRECTION('',(0.,0.,-1.)); -#40071=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40072=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40073=DIRECTION('',(1.,0.,0.)); -#40074=DIRECTION('',(0.,0.,-1.)); -#40075=DIRECTION('',(0.,0.,-1.)); -#40076=DIRECTION('',(0.,1.,0.)); -#40077=DIRECTION('',(0.,0.,1.)); -#40078=DIRECTION('',(-1.,0.,0.)); -#40079=DIRECTION('',(0.,0.,1.)); -#40080=DIRECTION('',(0.,0.,-1.)); -#40081=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40082=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40083=DIRECTION('',(0.,1.,0.)); -#40084=DIRECTION('',(0.,0.,1.)); -#40085=DIRECTION('',(0.,0.,-1.)); -#40086=DIRECTION('',(1.,0.,0.)); -#40087=DIRECTION('',(0.,0.,-1.)); -#40088=DIRECTION('',(-1.,0.,0.)); -#40089=DIRECTION('',(0.,0.,1.)); -#40090=DIRECTION('',(0.,0.,-1.)); -#40091=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40092=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40093=DIRECTION('',(0.,1.,0.)); -#40094=DIRECTION('',(0.,0.,1.)); -#40095=DIRECTION('',(0.,0.,-1.)); -#40096=DIRECTION('',(1.,0.,0.)); -#40097=DIRECTION('',(0.,0.,-1.)); -#40098=DIRECTION('',(-1.,0.,0.)); -#40099=DIRECTION('',(0.,0.,1.)); -#40100=DIRECTION('',(0.,0.,-1.)); -#40101=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40102=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40103=DIRECTION('',(0.,1.,0.)); -#40104=DIRECTION('',(0.,0.,1.)); -#40105=DIRECTION('',(0.,0.,-1.)); -#40106=DIRECTION('',(1.,0.,0.)); -#40107=DIRECTION('',(0.,0.,-1.)); -#40108=DIRECTION('',(-1.,0.,0.)); -#40109=DIRECTION('',(0.,0.,1.)); -#40110=DIRECTION('',(0.,0.,-1.)); -#40111=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40112=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40113=DIRECTION('',(0.,1.,0.)); -#40114=DIRECTION('',(0.,0.,1.)); -#40115=DIRECTION('',(0.,0.,-1.)); -#40116=DIRECTION('',(1.,0.,0.)); -#40117=DIRECTION('',(0.,0.,-1.)); -#40118=DIRECTION('',(-1.,0.,0.)); -#40119=DIRECTION('',(0.,0.,1.)); -#40120=DIRECTION('',(0.,0.,-1.)); -#40121=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40122=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40123=DIRECTION('',(0.,1.,0.)); -#40124=DIRECTION('',(0.,0.,1.)); -#40125=DIRECTION('',(0.,0.,-1.)); -#40126=DIRECTION('',(1.,0.,0.)); -#40127=DIRECTION('',(0.,0.,-1.)); -#40128=DIRECTION('',(-1.,0.,0.)); -#40129=DIRECTION('',(0.,0.,1.)); -#40130=DIRECTION('',(0.,0.,-1.)); -#40131=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40132=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40133=DIRECTION('',(0.,1.,0.)); -#40134=DIRECTION('',(0.,0.,1.)); -#40135=DIRECTION('',(0.,0.,-1.)); -#40136=DIRECTION('',(1.,0.,0.)); -#40137=DIRECTION('',(0.,0.,-1.)); -#40138=DIRECTION('',(-1.,0.,0.)); -#40139=DIRECTION('',(0.,0.,1.)); -#40140=DIRECTION('',(0.,0.,-1.)); -#40141=DIRECTION('',(6.19544098563145E-16,1.,0.)); -#40142=DIRECTION('',(-1.,6.19544098563145E-16,0.)); -#40143=DIRECTION('',(0.,1.,0.)); -#40144=DIRECTION('',(0.,0.,1.)); -#40145=DIRECTION('',(0.,0.,-1.)); -#40146=DIRECTION('',(1.,0.,0.)); -#40147=DIRECTION('',(0.,0.,-1.)); -#40148=DIRECTION('',(-1.,0.,0.)); -#40149=DIRECTION('',(0.,0.,1.)); -#40150=DIRECTION('',(0.,0.,-1.)); -#40151=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40152=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40153=DIRECTION('',(0.,1.,0.)); -#40154=DIRECTION('',(0.,0.,1.)); -#40155=DIRECTION('',(0.,0.,-1.)); -#40156=DIRECTION('',(1.,0.,0.)); -#40157=DIRECTION('',(0.,0.,-1.)); -#40158=DIRECTION('',(-1.,0.,0.)); -#40159=DIRECTION('',(0.,0.,1.)); -#40160=DIRECTION('',(0.,0.,-1.)); -#40161=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40162=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40163=DIRECTION('',(0.,1.,0.)); -#40164=DIRECTION('',(0.,0.,1.)); -#40165=DIRECTION('',(0.,0.,-1.)); -#40166=DIRECTION('',(1.,0.,0.)); -#40167=DIRECTION('',(0.,0.,-1.)); -#40168=DIRECTION('',(-1.,0.,0.)); -#40169=DIRECTION('',(0.,0.,1.)); -#40170=DIRECTION('',(0.,0.,-1.)); -#40171=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40172=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40173=DIRECTION('',(0.,1.,0.)); -#40174=DIRECTION('',(0.,0.,1.)); -#40175=DIRECTION('',(0.,0.,-1.)); -#40176=DIRECTION('',(1.,0.,0.)); -#40177=DIRECTION('',(0.,0.,-1.)); -#40178=DIRECTION('',(-1.,0.,0.)); -#40179=DIRECTION('',(0.,0.,1.)); -#40180=DIRECTION('',(0.,0.,-1.)); -#40181=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40182=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40183=DIRECTION('',(0.,1.,0.)); -#40184=DIRECTION('',(0.,0.,1.)); -#40185=DIRECTION('',(0.,0.,-1.)); -#40186=DIRECTION('',(1.,0.,0.)); -#40187=DIRECTION('',(0.,0.,-1.)); -#40188=DIRECTION('',(-1.,0.,0.)); -#40189=DIRECTION('',(0.,0.,1.)); -#40190=DIRECTION('',(0.,0.,-1.)); -#40191=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40192=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40193=DIRECTION('',(0.,1.,0.)); -#40194=DIRECTION('',(0.,0.,1.)); -#40195=DIRECTION('',(0.,0.,-1.)); -#40196=DIRECTION('',(1.,0.,0.)); -#40197=DIRECTION('',(0.,0.,-1.)); -#40198=DIRECTION('',(-1.,0.,0.)); -#40199=DIRECTION('',(0.,0.,1.)); -#40200=DIRECTION('',(0.,0.,-1.)); -#40201=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40202=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40203=DIRECTION('',(0.,1.,0.)); -#40204=DIRECTION('',(0.,0.,1.)); -#40205=DIRECTION('',(0.,0.,-1.)); -#40206=DIRECTION('',(1.,0.,0.)); -#40207=DIRECTION('',(0.,0.,-1.)); -#40208=DIRECTION('',(-1.,0.,0.)); -#40209=DIRECTION('',(0.,0.,1.)); -#40210=DIRECTION('',(0.,0.,-1.)); -#40211=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40212=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40213=DIRECTION('',(0.,1.,0.)); -#40214=DIRECTION('',(0.,0.,1.)); -#40215=DIRECTION('',(0.,0.,-1.)); -#40216=DIRECTION('',(1.,0.,0.)); -#40217=DIRECTION('',(0.,0.,-1.)); -#40218=DIRECTION('',(-1.,0.,0.)); -#40219=DIRECTION('',(0.,0.,1.)); -#40220=DIRECTION('',(0.,0.,-1.)); -#40221=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40222=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40223=DIRECTION('',(0.,1.,0.)); -#40224=DIRECTION('',(0.,0.,1.)); -#40225=DIRECTION('',(0.,0.,-1.)); -#40226=DIRECTION('',(1.,0.,0.)); -#40227=DIRECTION('',(0.,0.,-1.)); -#40228=DIRECTION('',(-1.,0.,0.)); -#40229=DIRECTION('',(0.,0.,1.)); -#40230=DIRECTION('',(0.,0.,-1.)); -#40231=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40232=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40233=DIRECTION('',(0.,1.,0.)); -#40234=DIRECTION('',(0.,0.,1.)); -#40235=DIRECTION('',(0.,0.,-1.)); -#40236=DIRECTION('',(1.,0.,0.)); -#40237=DIRECTION('',(0.,0.,-1.)); -#40238=DIRECTION('',(-1.,0.,0.)); -#40239=DIRECTION('',(0.,0.,1.)); -#40240=DIRECTION('',(0.,0.,-1.)); -#40241=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40242=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40243=DIRECTION('',(0.,1.,0.)); -#40244=DIRECTION('',(0.,0.,1.)); -#40245=DIRECTION('',(0.,0.,-1.)); -#40246=DIRECTION('',(1.,0.,0.)); -#40247=DIRECTION('',(0.,0.,-1.)); -#40248=DIRECTION('',(-1.,0.,0.)); -#40249=DIRECTION('',(0.,0.,1.)); -#40250=DIRECTION('',(0.,0.,-1.)); -#40251=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40252=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40253=DIRECTION('',(0.,1.,0.)); -#40254=DIRECTION('',(0.,0.,1.)); -#40255=DIRECTION('',(0.,0.,-1.)); -#40256=DIRECTION('',(1.,0.,0.)); -#40257=DIRECTION('',(0.,0.,-1.)); -#40258=DIRECTION('',(0.,1.,0.)); -#40259=DIRECTION('',(0.,0.,1.)); -#40260=DIRECTION('',(0.,0.,-1.)); -#40261=DIRECTION('',(6.19544098563146E-16,1.,0.)); -#40262=DIRECTION('',(-1.,6.19544098563146E-16,0.)); -#40263=DIRECTION('',(0.,0.,-1.)); -#40264=DIRECTION('',(1.,0.,0.)); -#40265=DIRECTION('',(0.,0.,-1.)); -#40266=DIRECTION('',(-1.,0.,0.)); -#40267=DIRECTION('',(0.,0.,1.)); -#40268=DIRECTION('',(0.,1.,0.)); -#40269=DIRECTION('',(0.,0.,1.)); -#40270=DIRECTION('',(0.,1.,0.)); -#40271=DIRECTION('',(0.,0.,1.)); -#40272=DIRECTION('',(0.,1.,0.)); -#40273=DIRECTION('',(0.,0.,1.)); -#40274=DIRECTION('',(0.,1.,0.)); -#40275=DIRECTION('',(0.,0.,1.)); -#40276=DIRECTION('',(0.,1.,0.)); -#40277=DIRECTION('',(0.,0.,1.)); -#40278=DIRECTION('',(0.,1.,0.)); -#40279=DIRECTION('',(0.,0.,1.)); -#40280=DIRECTION('',(0.,1.,0.)); -#40281=DIRECTION('',(0.,0.,1.)); -#40282=DIRECTION('',(0.,1.,0.)); -#40283=DIRECTION('',(0.,0.,1.)); -#40284=DIRECTION('',(0.,1.,0.)); -#40285=DIRECTION('',(0.,0.,1.)); -#40286=DIRECTION('',(0.,1.,0.)); -#40287=DIRECTION('',(0.,0.,1.)); -#40288=DIRECTION('',(0.,1.,0.)); -#40289=DIRECTION('',(0.,0.,1.)); -#40290=DIRECTION('',(0.,1.,0.)); -#40291=DIRECTION('',(0.,0.,1.)); -#40292=DIRECTION('',(0.,1.,0.)); -#40293=DIRECTION('',(0.,0.,1.)); -#40294=DIRECTION('',(0.,1.,0.)); -#40295=DIRECTION('',(0.,0.,1.)); -#40296=DIRECTION('',(0.,1.,0.)); -#40297=DIRECTION('',(0.,0.,1.)); -#40298=DIRECTION('',(0.,1.,0.)); -#40299=DIRECTION('',(0.,0.,1.)); -#40300=DIRECTION('',(0.,1.,0.)); -#40301=DIRECTION('',(0.,0.,1.)); -#40302=DIRECTION('',(0.,1.,0.)); -#40303=DIRECTION('',(0.,0.,1.)); -#40304=DIRECTION('',(0.,1.,0.)); -#40305=DIRECTION('',(0.,0.,1.)); -#40306=DIRECTION('',(0.,1.,0.)); -#40307=DIRECTION('',(0.,0.,1.)); -#40308=DIRECTION('',(0.,1.,0.)); -#40309=DIRECTION('',(0.,0.,1.)); -#40310=DIRECTION('',(0.,1.,0.)); -#40311=DIRECTION('',(0.,0.,1.)); -#40312=DIRECTION('',(0.,1.,0.)); -#40313=DIRECTION('',(0.,0.,1.)); -#40314=DIRECTION('',(0.,1.,0.)); -#40315=DIRECTION('',(0.,0.,1.)); -#40316=DIRECTION('',(0.,1.,0.)); -#40317=DIRECTION('',(0.,0.,1.)); -#40318=DIRECTION('',(0.,1.,0.)); -#40319=DIRECTION('',(0.,0.,1.)); -#40320=DIRECTION('',(0.,1.,0.)); -#40321=DIRECTION('',(0.,0.,1.)); -#40322=DIRECTION('',(0.,1.,0.)); -#40323=DIRECTION('',(0.,0.,1.)); -#40324=DIRECTION('',(0.,1.,0.)); -#40325=DIRECTION('',(0.,0.,1.)); -#40326=DIRECTION('',(0.,1.,0.)); -#40327=DIRECTION('',(0.,0.,1.)); -#40328=DIRECTION('',(0.,1.,0.)); -#40329=DIRECTION('',(0.,0.,1.)); -#40330=DIRECTION('',(0.,1.,0.)); -#40331=DIRECTION('',(0.,0.,1.)); -#40332=DIRECTION('',(0.,1.,0.)); -#40333=DIRECTION('',(0.,0.,1.)); -#40334=DIRECTION('',(0.,1.,0.)); -#40335=DIRECTION('',(0.,0.,1.)); -#40336=DIRECTION('',(0.,1.,0.)); -#40337=DIRECTION('',(0.,0.,1.)); -#40338=DIRECTION('',(0.,1.,0.)); -#40339=DIRECTION('',(0.,0.,1.)); -#40340=DIRECTION('',(0.,1.,0.)); -#40341=DIRECTION('',(0.,0.,1.)); -#40342=DIRECTION('',(0.,1.,0.)); -#40343=DIRECTION('',(0.,0.,1.)); -#40344=DIRECTION('',(0.,1.,0.)); -#40345=DIRECTION('',(0.,0.,1.)); -#40346=DIRECTION('',(0.,1.,0.)); -#40347=DIRECTION('',(0.,0.,1.)); -#40348=DIRECTION('',(0.,1.,0.)); -#40349=DIRECTION('',(0.,0.,1.)); -#40350=DIRECTION('',(0.,0.,1.)); -#40351=DIRECTION('',(1.,0.,0.)); -#40352=DIRECTION('',(0.,0.,1.)); -#40353=DIRECTION('',(1.,0.,0.)); -#40354=DIRECTION('',(1.,0.,0.)); -#40355=DIRECTION('',(0.,-1.,0.)); -#40356=DIRECTION('',(-1.,0.,0.)); -#40357=DIRECTION('',(0.,1.,0.)); -#40358=DIRECTION('',(0.,0.,1.)); -#40359=DIRECTION('',(1.,0.,0.)); -#40360=DIRECTION('',(0.500000000000009,0.866025403784433,0.)); -#40361=DIRECTION('',(0.,0.,1.)); -#40362=DIRECTION('',(1.,0.,0.)); -#40363=DIRECTION('',(0.,1.,0.)); -#40364=DIRECTION('',(0.,0.,1.)); -#40365=DIRECTION('',(1.,0.,0.)); -#40366=DIRECTION('',(-1.,0.,0.)); -#40367=DIRECTION('',(0.,0.,1.)); -#40368=DIRECTION('',(1.,0.,0.)); -#40369=DIRECTION('',(0.,-1.,0.)); -#40370=DIRECTION('',(0.,0.,1.)); -#40371=DIRECTION('',(1.,0.,0.)); -#40372=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40373=DIRECTION('',(0.,0.,1.)); -#40374=DIRECTION('',(1.,0.,0.)); -#40375=DIRECTION('',(-2.91944582425155E-16,-1.,0.)); -#40376=DIRECTION('',(1.,-9.85638338623183E-16,0.)); -#40377=DIRECTION('',(0.,1.,0.)); -#40378=DIRECTION('',(0.,0.,1.)); -#40379=DIRECTION('',(1.,0.,0.)); -#40380=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#40381=DIRECTION('',(0.,0.,1.)); -#40382=DIRECTION('',(1.,0.,0.)); -#40383=DIRECTION('',(0.,1.,0.)); -#40384=DIRECTION('',(0.,0.,1.)); -#40385=DIRECTION('',(1.,0.,0.)); -#40386=DIRECTION('',(-1.,0.,0.)); -#40387=DIRECTION('',(0.,0.,1.)); -#40388=DIRECTION('',(1.,0.,0.)); -#40389=DIRECTION('',(0.,-1.,0.)); -#40390=DIRECTION('',(0.,0.,1.)); -#40391=DIRECTION('',(1.,0.,0.)); -#40392=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); -#40393=DIRECTION('',(0.,0.,1.)); -#40394=DIRECTION('',(1.,0.,0.)); -#40395=DIRECTION('',(0.,-1.,0.)); -#40396=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40397=DIRECTION('',(0.,1.,0.)); -#40398=DIRECTION('',(0.,0.,1.)); -#40399=DIRECTION('',(1.,0.,0.)); -#40400=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#40401=DIRECTION('',(0.,0.,1.)); -#40402=DIRECTION('',(1.,0.,0.)); -#40403=DIRECTION('',(0.,1.,0.)); -#40404=DIRECTION('',(0.,0.,1.)); -#40405=DIRECTION('',(1.,0.,0.)); -#40406=DIRECTION('',(-1.,0.,0.)); -#40407=DIRECTION('',(0.,0.,1.)); -#40408=DIRECTION('',(1.,0.,0.)); -#40409=DIRECTION('',(0.,-1.,0.)); -#40410=DIRECTION('',(0.,0.,1.)); -#40411=DIRECTION('',(1.,0.,0.)); -#40412=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40413=DIRECTION('',(0.,0.,1.)); -#40414=DIRECTION('',(1.,0.,0.)); -#40415=DIRECTION('',(0.,-1.,0.)); -#40416=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40417=DIRECTION('',(0.,1.,0.)); -#40418=DIRECTION('',(0.,0.,1.)); -#40419=DIRECTION('',(1.,0.,0.)); -#40420=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); -#40421=DIRECTION('',(0.,0.,1.)); -#40422=DIRECTION('',(1.,0.,0.)); -#40423=DIRECTION('',(0.,1.,0.)); -#40424=DIRECTION('',(0.,0.,1.)); -#40425=DIRECTION('',(1.,0.,0.)); -#40426=DIRECTION('',(-1.,0.,0.)); -#40427=DIRECTION('',(0.,0.,1.)); -#40428=DIRECTION('',(1.,0.,0.)); -#40429=DIRECTION('',(0.,-1.,0.)); -#40430=DIRECTION('',(0.,0.,1.)); -#40431=DIRECTION('',(1.,0.,0.)); -#40432=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40433=DIRECTION('',(0.,0.,1.)); -#40434=DIRECTION('',(1.,0.,0.)); -#40435=DIRECTION('',(0.,-1.,0.)); -#40436=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40437=DIRECTION('',(0.,1.,0.)); -#40438=DIRECTION('',(0.,0.,1.)); -#40439=DIRECTION('',(1.,0.,0.)); -#40440=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#40441=DIRECTION('',(0.,0.,1.)); -#40442=DIRECTION('',(1.,0.,0.)); -#40443=DIRECTION('',(0.,1.,0.)); -#40444=DIRECTION('',(0.,0.,1.)); -#40445=DIRECTION('',(1.,0.,0.)); -#40446=DIRECTION('',(-1.,0.,0.)); -#40447=DIRECTION('',(0.,0.,1.)); -#40448=DIRECTION('',(1.,0.,0.)); -#40449=DIRECTION('',(0.,-1.,0.)); -#40450=DIRECTION('',(0.,0.,1.)); -#40451=DIRECTION('',(1.,0.,0.)); -#40452=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40453=DIRECTION('',(0.,0.,1.)); -#40454=DIRECTION('',(1.,0.,0.)); -#40455=DIRECTION('',(0.,-1.,0.)); -#40456=DIRECTION('',(1.,-9.85638338623185E-16,0.)); -#40457=DIRECTION('',(0.,1.,0.)); -#40458=DIRECTION('',(0.,0.,1.)); -#40459=DIRECTION('',(1.,0.,0.)); -#40460=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#40461=DIRECTION('',(0.,0.,1.)); -#40462=DIRECTION('',(1.,0.,0.)); -#40463=DIRECTION('',(0.,1.,0.)); -#40464=DIRECTION('',(0.,0.,1.)); -#40465=DIRECTION('',(1.,0.,0.)); -#40466=DIRECTION('',(-1.,0.,0.)); -#40467=DIRECTION('',(0.,0.,1.)); -#40468=DIRECTION('',(1.,0.,0.)); -#40469=DIRECTION('',(0.,-1.,0.)); -#40470=DIRECTION('',(0.,0.,1.)); -#40471=DIRECTION('',(1.,0.,0.)); -#40472=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40473=DIRECTION('',(0.,0.,1.)); -#40474=DIRECTION('',(1.,0.,0.)); -#40475=DIRECTION('',(0.,-1.,0.)); -#40476=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40477=DIRECTION('',(0.,1.,0.)); -#40478=DIRECTION('',(0.,0.,1.)); -#40479=DIRECTION('',(1.,0.,0.)); -#40480=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#40481=DIRECTION('',(0.,0.,1.)); -#40482=DIRECTION('',(1.,0.,0.)); -#40483=DIRECTION('',(0.,1.,0.)); -#40484=DIRECTION('',(0.,0.,1.)); -#40485=DIRECTION('',(1.,0.,0.)); -#40486=DIRECTION('',(-1.,0.,0.)); -#40487=DIRECTION('',(0.,0.,1.)); -#40488=DIRECTION('',(1.,0.,0.)); -#40489=DIRECTION('',(0.,-1.,0.)); -#40490=DIRECTION('',(0.,0.,1.)); -#40491=DIRECTION('',(1.,0.,0.)); -#40492=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40493=DIRECTION('',(0.,0.,1.)); -#40494=DIRECTION('',(1.,0.,0.)); -#40495=DIRECTION('',(0.,-1.,0.)); -#40496=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40497=DIRECTION('',(0.,1.,0.)); -#40498=DIRECTION('',(0.,0.,1.)); -#40499=DIRECTION('',(1.,0.,0.)); -#40500=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#40501=DIRECTION('',(0.,0.,1.)); -#40502=DIRECTION('',(1.,0.,0.)); -#40503=DIRECTION('',(0.,1.,0.)); -#40504=DIRECTION('',(0.,0.,1.)); -#40505=DIRECTION('',(1.,0.,0.)); -#40506=DIRECTION('',(-1.,0.,0.)); -#40507=DIRECTION('',(0.,0.,1.)); -#40508=DIRECTION('',(1.,0.,0.)); -#40509=DIRECTION('',(0.,-1.,0.)); -#40510=DIRECTION('',(0.,0.,1.)); -#40511=DIRECTION('',(1.,0.,0.)); -#40512=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#40513=DIRECTION('',(0.,0.,1.)); -#40514=DIRECTION('',(1.,0.,0.)); -#40515=DIRECTION('',(0.,-1.,0.)); -#40516=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40517=DIRECTION('',(0.,1.,0.)); -#40518=DIRECTION('',(0.,0.,1.)); -#40519=DIRECTION('',(1.,0.,0.)); -#40520=DIRECTION('',(0.5,0.866025403784439,0.)); -#40521=DIRECTION('',(0.,0.,1.)); -#40522=DIRECTION('',(1.,0.,0.)); -#40523=DIRECTION('',(0.,1.,0.)); -#40524=DIRECTION('',(0.,0.,1.)); -#40525=DIRECTION('',(1.,0.,0.)); -#40526=DIRECTION('',(-1.,0.,0.)); -#40527=DIRECTION('',(0.,0.,1.)); -#40528=DIRECTION('',(1.,0.,0.)); -#40529=DIRECTION('',(0.,-1.,0.)); -#40530=DIRECTION('',(0.,0.,1.)); -#40531=DIRECTION('',(1.,0.,0.)); -#40532=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#40533=DIRECTION('',(0.,0.,1.)); -#40534=DIRECTION('',(1.,0.,0.)); -#40535=DIRECTION('',(0.,-1.,0.)); -#40536=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40537=DIRECTION('',(0.,1.,0.)); -#40538=DIRECTION('',(0.,0.,1.)); -#40539=DIRECTION('',(1.,0.,0.)); -#40540=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#40541=DIRECTION('',(0.,0.,1.)); -#40542=DIRECTION('',(1.,0.,0.)); -#40543=DIRECTION('',(0.,1.,0.)); -#40544=DIRECTION('',(0.,0.,1.)); -#40545=DIRECTION('',(1.,0.,0.)); -#40546=DIRECTION('',(-1.,0.,0.)); -#40547=DIRECTION('',(0.,0.,1.)); -#40548=DIRECTION('',(1.,0.,0.)); -#40549=DIRECTION('',(0.,-1.,0.)); -#40550=DIRECTION('',(0.,0.,1.)); -#40551=DIRECTION('',(1.,0.,0.)); -#40552=DIRECTION('',(0.500000000000002,-0.866025403784437,0.)); -#40553=DIRECTION('',(0.,0.,1.)); -#40554=DIRECTION('',(1.,0.,0.)); -#40555=DIRECTION('',(-9.12326820078609E-18,-1.,0.)); -#40556=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40557=DIRECTION('',(0.,1.,0.)); -#40558=DIRECTION('',(0.,0.,1.)); -#40559=DIRECTION('',(1.,0.,0.)); -#40560=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#40561=DIRECTION('',(0.,0.,1.)); -#40562=DIRECTION('',(1.,0.,0.)); -#40563=DIRECTION('',(0.,1.,0.)); -#40564=DIRECTION('',(0.,0.,1.)); -#40565=DIRECTION('',(1.,0.,0.)); -#40566=DIRECTION('',(-1.,0.,0.)); -#40567=DIRECTION('',(0.,0.,1.)); -#40568=DIRECTION('',(1.,0.,0.)); -#40569=DIRECTION('',(0.,-1.,0.)); -#40570=DIRECTION('',(0.,0.,1.)); -#40571=DIRECTION('',(1.,0.,0.)); -#40572=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#40573=DIRECTION('',(0.,0.,1.)); -#40574=DIRECTION('',(1.,0.,0.)); -#40575=DIRECTION('',(0.,-1.,0.)); -#40576=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40577=DIRECTION('',(0.,1.,0.)); -#40578=DIRECTION('',(0.,0.,1.)); -#40579=DIRECTION('',(1.,0.,0.)); -#40580=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#40581=DIRECTION('',(0.,0.,1.)); -#40582=DIRECTION('',(1.,0.,0.)); -#40583=DIRECTION('',(0.,1.,0.)); -#40584=DIRECTION('',(0.,0.,1.)); -#40585=DIRECTION('',(1.,0.,0.)); -#40586=DIRECTION('',(-1.,0.,0.)); -#40587=DIRECTION('',(0.,0.,1.)); -#40588=DIRECTION('',(1.,0.,0.)); -#40589=DIRECTION('',(0.,-1.,0.)); -#40590=DIRECTION('',(0.,0.,1.)); -#40591=DIRECTION('',(1.,0.,0.)); -#40592=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#40593=DIRECTION('',(0.,0.,1.)); -#40594=DIRECTION('',(1.,0.,0.)); -#40595=DIRECTION('',(0.,-1.,0.)); -#40596=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40597=DIRECTION('',(0.,1.,0.)); -#40598=DIRECTION('',(0.,0.,1.)); -#40599=DIRECTION('',(1.,0.,0.)); -#40600=DIRECTION('',(0.5,0.866025403784439,0.)); -#40601=DIRECTION('',(0.,0.,1.)); -#40602=DIRECTION('',(1.,0.,0.)); -#40603=DIRECTION('',(0.,1.,0.)); -#40604=DIRECTION('',(0.,0.,1.)); -#40605=DIRECTION('',(1.,0.,0.)); -#40606=DIRECTION('',(-1.,0.,0.)); -#40607=DIRECTION('',(0.,0.,1.)); -#40608=DIRECTION('',(1.,0.,0.)); -#40609=DIRECTION('',(0.,-1.,0.)); -#40610=DIRECTION('',(0.,0.,1.)); -#40611=DIRECTION('',(1.,0.,0.)); -#40612=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40613=DIRECTION('',(0.,0.,1.)); -#40614=DIRECTION('',(1.,0.,0.)); -#40615=DIRECTION('',(0.,-1.,0.)); -#40616=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40617=DIRECTION('',(0.,1.,0.)); -#40618=DIRECTION('',(0.,0.,1.)); -#40619=DIRECTION('',(1.,0.,0.)); -#40620=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#40621=DIRECTION('',(0.,0.,1.)); -#40622=DIRECTION('',(1.,0.,0.)); -#40623=DIRECTION('',(0.,1.,0.)); -#40624=DIRECTION('',(0.,0.,1.)); -#40625=DIRECTION('',(1.,0.,0.)); -#40626=DIRECTION('',(-1.,0.,0.)); -#40627=DIRECTION('',(0.,0.,1.)); -#40628=DIRECTION('',(1.,0.,0.)); -#40629=DIRECTION('',(0.,-1.,0.)); -#40630=DIRECTION('',(0.,0.,1.)); -#40631=DIRECTION('',(1.,0.,0.)); -#40632=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); -#40633=DIRECTION('',(0.,0.,1.)); -#40634=DIRECTION('',(1.,0.,0.)); -#40635=DIRECTION('',(0.,-1.,0.)); -#40636=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40637=DIRECTION('',(0.,1.,0.)); -#40638=DIRECTION('',(0.,0.,1.)); -#40639=DIRECTION('',(1.,0.,0.)); -#40640=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#40641=DIRECTION('',(0.,0.,1.)); -#40642=DIRECTION('',(1.,0.,0.)); -#40643=DIRECTION('',(0.,1.,0.)); -#40644=DIRECTION('',(0.,0.,1.)); -#40645=DIRECTION('',(1.,0.,0.)); -#40646=DIRECTION('',(-1.,0.,0.)); -#40647=DIRECTION('',(0.,0.,1.)); -#40648=DIRECTION('',(1.,0.,0.)); -#40649=DIRECTION('',(0.,-1.,0.)); -#40650=DIRECTION('',(0.,0.,1.)); -#40651=DIRECTION('',(1.,0.,0.)); -#40652=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); -#40653=DIRECTION('',(0.,0.,1.)); -#40654=DIRECTION('',(1.,0.,0.)); -#40655=DIRECTION('',(0.,-1.,0.)); -#40656=DIRECTION('',(1.,-9.85638338623185E-16,0.)); -#40657=DIRECTION('',(0.,1.,0.)); -#40658=DIRECTION('',(0.,0.,1.)); -#40659=DIRECTION('',(1.,0.,0.)); -#40660=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#40661=DIRECTION('',(0.,0.,1.)); -#40662=DIRECTION('',(1.,0.,0.)); -#40663=DIRECTION('',(0.,1.,0.)); -#40664=DIRECTION('',(0.,0.,1.)); -#40665=DIRECTION('',(1.,0.,0.)); -#40666=DIRECTION('',(-1.,0.,0.)); -#40667=DIRECTION('',(0.,0.,1.)); -#40668=DIRECTION('',(1.,0.,0.)); -#40669=DIRECTION('',(0.,-1.,0.)); -#40670=DIRECTION('',(0.,0.,1.)); -#40671=DIRECTION('',(1.,0.,0.)); -#40672=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40673=DIRECTION('',(0.,0.,1.)); -#40674=DIRECTION('',(1.,0.,0.)); -#40675=DIRECTION('',(0.,-1.,0.)); -#40676=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40677=DIRECTION('',(0.,1.,0.)); -#40678=DIRECTION('',(0.,0.,1.)); -#40679=DIRECTION('',(1.,0.,0.)); -#40680=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#40681=DIRECTION('',(0.,0.,1.)); -#40682=DIRECTION('',(1.,0.,0.)); -#40683=DIRECTION('',(0.,1.,0.)); -#40684=DIRECTION('',(0.,0.,1.)); -#40685=DIRECTION('',(1.,0.,0.)); -#40686=DIRECTION('',(-1.,0.,0.)); -#40687=DIRECTION('',(0.,0.,1.)); -#40688=DIRECTION('',(1.,0.,0.)); -#40689=DIRECTION('',(0.,-1.,0.)); -#40690=DIRECTION('',(0.,0.,1.)); -#40691=DIRECTION('',(1.,0.,0.)); -#40692=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); -#40693=DIRECTION('',(0.,0.,1.)); -#40694=DIRECTION('',(1.,0.,0.)); -#40695=DIRECTION('',(0.,-1.,0.)); -#40696=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40697=DIRECTION('',(0.,1.,0.)); -#40698=DIRECTION('',(0.,0.,1.)); -#40699=DIRECTION('',(1.,0.,0.)); -#40700=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#40701=DIRECTION('',(0.,0.,1.)); -#40702=DIRECTION('',(1.,0.,0.)); -#40703=DIRECTION('',(0.,1.,0.)); -#40704=DIRECTION('',(0.,0.,1.)); -#40705=DIRECTION('',(1.,0.,0.)); -#40706=DIRECTION('',(-1.,0.,0.)); -#40707=DIRECTION('',(0.,0.,1.)); -#40708=DIRECTION('',(1.,0.,0.)); -#40709=DIRECTION('',(0.,-1.,0.)); -#40710=DIRECTION('',(0.,0.,1.)); -#40711=DIRECTION('',(1.,0.,0.)); -#40712=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40713=DIRECTION('',(0.,0.,1.)); -#40714=DIRECTION('',(1.,0.,0.)); -#40715=DIRECTION('',(0.,-1.,0.)); -#40716=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40717=DIRECTION('',(0.,1.,0.)); -#40718=DIRECTION('',(0.,0.,1.)); -#40719=DIRECTION('',(1.,0.,0.)); -#40720=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); -#40721=DIRECTION('',(0.,0.,1.)); -#40722=DIRECTION('',(1.,0.,0.)); -#40723=DIRECTION('',(0.,1.,0.)); -#40724=DIRECTION('',(0.,0.,1.)); -#40725=DIRECTION('',(1.,0.,0.)); -#40726=DIRECTION('',(-1.,0.,0.)); -#40727=DIRECTION('',(0.,0.,1.)); -#40728=DIRECTION('',(1.,0.,0.)); -#40729=DIRECTION('',(0.,-1.,0.)); -#40730=DIRECTION('',(0.,0.,1.)); -#40731=DIRECTION('',(1.,0.,0.)); -#40732=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40733=DIRECTION('',(0.,0.,1.)); -#40734=DIRECTION('',(1.,0.,0.)); -#40735=DIRECTION('',(0.,-1.,0.)); -#40736=DIRECTION('',(1.,-9.85638338623187E-16,0.)); -#40737=DIRECTION('',(0.,1.,0.)); -#40738=DIRECTION('',(0.,0.,1.)); -#40739=DIRECTION('',(1.,0.,0.)); -#40740=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#40741=DIRECTION('',(0.,0.,1.)); -#40742=DIRECTION('',(1.,0.,0.)); -#40743=DIRECTION('',(0.,1.,0.)); -#40744=DIRECTION('',(0.,0.,1.)); -#40745=DIRECTION('',(1.,0.,0.)); -#40746=DIRECTION('',(-1.,0.,0.)); -#40747=DIRECTION('',(0.,0.,1.)); -#40748=DIRECTION('',(1.,0.,0.)); -#40749=DIRECTION('',(0.,-1.,0.)); -#40750=DIRECTION('',(0.,0.,1.)); -#40751=DIRECTION('',(1.,0.,0.)); -#40752=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#40753=DIRECTION('',(0.,0.,1.)); -#40754=DIRECTION('',(1.,0.,0.)); -#40755=DIRECTION('',(0.,1.,0.)); -#40756=DIRECTION('',(-1.,0.,0.)); -#40757=DIRECTION('',(0.,-1.,0.)); -#40758=DIRECTION('',(0.,0.,-1.)); -#40759=DIRECTION('',(-1.,0.,0.)); -#40760=DIRECTION('',(-1.,0.,0.)); -#40761=DIRECTION('',(0.,-1.,0.)); -#40762=DIRECTION('',(-1.,0.,0.)); -#40763=DIRECTION('',(0.,-1.,0.)); -#40764=DIRECTION('',(0.,0.,-1.)); -#40765=DIRECTION('',(-1.,0.,0.)); -#40766=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#40767=DIRECTION('',(0.,0.,-1.)); -#40768=DIRECTION('',(-1.,0.,0.)); -#40769=DIRECTION('',(0.,1.,0.)); -#40770=DIRECTION('',(0.,0.,-1.)); -#40771=DIRECTION('',(-1.,0.,0.)); -#40772=DIRECTION('',(-1.,0.,0.)); -#40773=DIRECTION('',(0.,0.,-1.)); -#40774=DIRECTION('',(-1.,0.,0.)); -#40775=DIRECTION('',(0.,-1.,0.)); -#40776=DIRECTION('',(0.,0.,-1.)); -#40777=DIRECTION('',(-1.,0.,0.)); -#40778=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#40779=DIRECTION('',(0.,0.,-1.)); -#40780=DIRECTION('',(-1.,0.,0.)); -#40781=DIRECTION('',(0.,-1.,0.)); -#40782=DIRECTION('',(-1.,0.,0.)); -#40783=DIRECTION('',(0.,1.,0.)); -#40784=DIRECTION('',(0.,0.,-1.)); -#40785=DIRECTION('',(-1.,0.,0.)); -#40786=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#40787=DIRECTION('',(0.,0.,-1.)); -#40788=DIRECTION('',(-1.,0.,0.)); -#40789=DIRECTION('',(0.,1.,0.)); -#40790=DIRECTION('',(0.,0.,-1.)); -#40791=DIRECTION('',(-1.,0.,0.)); -#40792=DIRECTION('',(-1.,0.,0.)); -#40793=DIRECTION('',(0.,0.,-1.)); -#40794=DIRECTION('',(-1.,0.,0.)); -#40795=DIRECTION('',(0.,-1.,0.)); -#40796=DIRECTION('',(0.,0.,-1.)); -#40797=DIRECTION('',(-1.,0.,0.)); -#40798=DIRECTION('',(-0.499999999999995,-0.866025403784442,0.)); -#40799=DIRECTION('',(0.,0.,-1.)); -#40800=DIRECTION('',(-1.,0.,0.)); -#40801=DIRECTION('',(0.,-1.,0.)); -#40802=DIRECTION('',(-1.,0.,0.)); -#40803=DIRECTION('',(0.,1.,0.)); -#40804=DIRECTION('',(0.,0.,-1.)); -#40805=DIRECTION('',(-1.,0.,0.)); -#40806=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#40807=DIRECTION('',(0.,0.,-1.)); -#40808=DIRECTION('',(-1.,0.,0.)); -#40809=DIRECTION('',(0.,1.,0.)); -#40810=DIRECTION('',(0.,0.,-1.)); -#40811=DIRECTION('',(-1.,0.,0.)); -#40812=DIRECTION('',(-1.,0.,0.)); -#40813=DIRECTION('',(0.,0.,-1.)); -#40814=DIRECTION('',(-1.,0.,0.)); -#40815=DIRECTION('',(0.,-1.,0.)); -#40816=DIRECTION('',(0.,0.,-1.)); -#40817=DIRECTION('',(-1.,0.,0.)); -#40818=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#40819=DIRECTION('',(0.,0.,-1.)); -#40820=DIRECTION('',(-1.,0.,0.)); -#40821=DIRECTION('',(0.,-1.,0.)); -#40822=DIRECTION('',(-1.,0.,0.)); -#40823=DIRECTION('',(0.,1.,0.)); -#40824=DIRECTION('',(0.,0.,-1.)); -#40825=DIRECTION('',(-1.,0.,0.)); -#40826=DIRECTION('',(-0.499999999999998,0.86602540378444,0.)); -#40827=DIRECTION('',(0.,0.,-1.)); -#40828=DIRECTION('',(-1.,0.,0.)); -#40829=DIRECTION('',(0.,1.,0.)); -#40830=DIRECTION('',(0.,0.,-1.)); -#40831=DIRECTION('',(-1.,0.,0.)); -#40832=DIRECTION('',(-1.,0.,0.)); -#40833=DIRECTION('',(0.,0.,-1.)); -#40834=DIRECTION('',(-1.,0.,0.)); -#40835=DIRECTION('',(0.,-1.,0.)); -#40836=DIRECTION('',(0.,0.,-1.)); -#40837=DIRECTION('',(-1.,0.,0.)); -#40838=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#40839=DIRECTION('',(0.,0.,-1.)); -#40840=DIRECTION('',(-1.,0.,0.)); -#40841=DIRECTION('',(0.,-1.,0.)); -#40842=DIRECTION('',(-1.,0.,0.)); -#40843=DIRECTION('',(0.,1.,0.)); -#40844=DIRECTION('',(0.,0.,-1.)); -#40845=DIRECTION('',(-1.,0.,0.)); -#40846=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#40847=DIRECTION('',(0.,0.,-1.)); -#40848=DIRECTION('',(-1.,0.,0.)); -#40849=DIRECTION('',(0.,1.,0.)); -#40850=DIRECTION('',(0.,0.,-1.)); -#40851=DIRECTION('',(-1.,0.,0.)); -#40852=DIRECTION('',(-1.,0.,0.)); -#40853=DIRECTION('',(0.,0.,-1.)); -#40854=DIRECTION('',(-1.,0.,0.)); -#40855=DIRECTION('',(0.,-1.,0.)); -#40856=DIRECTION('',(0.,0.,-1.)); -#40857=DIRECTION('',(-1.,0.,0.)); -#40858=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#40859=DIRECTION('',(0.,0.,-1.)); -#40860=DIRECTION('',(-1.,0.,0.)); -#40861=DIRECTION('',(0.,-1.,0.)); -#40862=DIRECTION('',(-1.,0.,0.)); -#40863=DIRECTION('',(0.,1.,0.)); -#40864=DIRECTION('',(0.,0.,-1.)); -#40865=DIRECTION('',(-1.,0.,0.)); -#40866=DIRECTION('',(-0.500000000000001,0.866025403784438,0.)); -#40867=DIRECTION('',(0.,0.,-1.)); -#40868=DIRECTION('',(-1.,0.,0.)); -#40869=DIRECTION('',(0.,1.,0.)); -#40870=DIRECTION('',(0.,0.,-1.)); -#40871=DIRECTION('',(-1.,0.,0.)); -#40872=DIRECTION('',(-1.,0.,0.)); -#40873=DIRECTION('',(0.,0.,-1.)); -#40874=DIRECTION('',(-1.,0.,0.)); -#40875=DIRECTION('',(0.,-1.,0.)); -#40876=DIRECTION('',(0.,0.,-1.)); -#40877=DIRECTION('',(-1.,0.,0.)); -#40878=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); -#40879=DIRECTION('',(0.,0.,-1.)); -#40880=DIRECTION('',(-1.,0.,0.)); -#40881=DIRECTION('',(0.,-1.,0.)); -#40882=DIRECTION('',(-1.,0.,0.)); -#40883=DIRECTION('',(0.,1.,0.)); -#40884=DIRECTION('',(0.,0.,-1.)); -#40885=DIRECTION('',(-1.,0.,0.)); -#40886=DIRECTION('',(-0.500000000000001,0.866025403784438,0.)); -#40887=DIRECTION('',(0.,0.,-1.)); -#40888=DIRECTION('',(-1.,0.,0.)); -#40889=DIRECTION('',(0.,1.,0.)); -#40890=DIRECTION('',(0.,0.,-1.)); -#40891=DIRECTION('',(-1.,0.,0.)); -#40892=DIRECTION('',(-1.,0.,0.)); -#40893=DIRECTION('',(0.,0.,-1.)); -#40894=DIRECTION('',(-1.,0.,0.)); -#40895=DIRECTION('',(0.,-1.,0.)); -#40896=DIRECTION('',(0.,0.,-1.)); -#40897=DIRECTION('',(-1.,0.,0.)); -#40898=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#40899=DIRECTION('',(0.,0.,-1.)); -#40900=DIRECTION('',(-1.,0.,0.)); -#40901=DIRECTION('',(0.,-1.,0.)); -#40902=DIRECTION('',(-1.,0.,0.)); -#40903=DIRECTION('',(0.,1.,0.)); -#40904=DIRECTION('',(0.,0.,-1.)); -#40905=DIRECTION('',(-1.,0.,0.)); -#40906=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#40907=DIRECTION('',(0.,0.,-1.)); -#40908=DIRECTION('',(-1.,0.,0.)); -#40909=DIRECTION('',(0.,1.,0.)); -#40910=DIRECTION('',(0.,0.,-1.)); -#40911=DIRECTION('',(-1.,0.,0.)); -#40912=DIRECTION('',(-1.,0.,0.)); -#40913=DIRECTION('',(0.,0.,-1.)); -#40914=DIRECTION('',(-1.,0.,0.)); -#40915=DIRECTION('',(0.,-1.,0.)); -#40916=DIRECTION('',(0.,0.,-1.)); -#40917=DIRECTION('',(-1.,0.,0.)); -#40918=DIRECTION('',(-0.5,-0.866025403784439,0.)); -#40919=DIRECTION('',(0.,0.,-1.)); -#40920=DIRECTION('',(-1.,0.,0.)); -#40921=DIRECTION('',(0.,-1.,0.)); -#40922=DIRECTION('',(-1.,0.,0.)); -#40923=DIRECTION('',(0.,1.,0.)); -#40924=DIRECTION('',(0.,0.,-1.)); -#40925=DIRECTION('',(-1.,0.,0.)); -#40926=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); -#40927=DIRECTION('',(0.,0.,-1.)); -#40928=DIRECTION('',(-1.,0.,0.)); -#40929=DIRECTION('',(0.,1.,0.)); -#40930=DIRECTION('',(0.,0.,-1.)); -#40931=DIRECTION('',(-1.,0.,0.)); -#40932=DIRECTION('',(-1.,0.,0.)); -#40933=DIRECTION('',(0.,0.,-1.)); -#40934=DIRECTION('',(-1.,0.,0.)); -#40935=DIRECTION('',(0.,-1.,0.)); -#40936=DIRECTION('',(0.,0.,-1.)); -#40937=DIRECTION('',(-1.,0.,0.)); -#40938=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); -#40939=DIRECTION('',(0.,0.,-1.)); -#40940=DIRECTION('',(-1.,0.,0.)); -#40941=DIRECTION('',(0.,-1.,0.)); -#40942=DIRECTION('',(-1.,0.,0.)); -#40943=DIRECTION('',(0.,1.,0.)); -#40944=DIRECTION('',(0.,0.,-1.)); -#40945=DIRECTION('',(-1.,0.,0.)); -#40946=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); -#40947=DIRECTION('',(0.,0.,-1.)); -#40948=DIRECTION('',(-1.,0.,0.)); -#40949=DIRECTION('',(0.,1.,0.)); -#40950=DIRECTION('',(0.,0.,-1.)); -#40951=DIRECTION('',(-1.,0.,0.)); -#40952=DIRECTION('',(-1.,0.,0.)); -#40953=DIRECTION('',(0.,0.,-1.)); -#40954=DIRECTION('',(-1.,0.,0.)); -#40955=DIRECTION('',(0.,-1.,0.)); -#40956=DIRECTION('',(0.,0.,-1.)); -#40957=DIRECTION('',(-1.,0.,0.)); -#40958=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); -#40959=DIRECTION('',(0.,0.,-1.)); -#40960=DIRECTION('',(-1.,0.,0.)); -#40961=DIRECTION('',(0.,-1.,0.)); -#40962=DIRECTION('',(-1.,0.,0.)); -#40963=DIRECTION('',(9.12326820078609E-18,1.,0.)); -#40964=DIRECTION('',(0.,0.,-1.)); -#40965=DIRECTION('',(-1.,0.,0.)); -#40966=DIRECTION('',(-0.500000000000002,0.866025403784437,0.)); -#40967=DIRECTION('',(0.,0.,-1.)); -#40968=DIRECTION('',(-1.,0.,0.)); -#40969=DIRECTION('',(0.,1.,0.)); -#40970=DIRECTION('',(0.,0.,-1.)); -#40971=DIRECTION('',(-1.,0.,0.)); -#40972=DIRECTION('',(-1.,0.,0.)); -#40973=DIRECTION('',(0.,0.,-1.)); -#40974=DIRECTION('',(-1.,0.,0.)); -#40975=DIRECTION('',(0.,-1.,0.)); -#40976=DIRECTION('',(0.,0.,-1.)); -#40977=DIRECTION('',(-1.,0.,0.)); -#40978=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); -#40979=DIRECTION('',(0.,0.,-1.)); -#40980=DIRECTION('',(-1.,0.,0.)); -#40981=DIRECTION('',(0.,-1.,0.)); -#40982=DIRECTION('',(-1.,0.,0.)); -#40983=DIRECTION('',(0.,1.,0.)); -#40984=DIRECTION('',(0.,0.,-1.)); -#40985=DIRECTION('',(-1.,0.,0.)); -#40986=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); -#40987=DIRECTION('',(0.,0.,-1.)); -#40988=DIRECTION('',(-1.,0.,0.)); -#40989=DIRECTION('',(0.,1.,0.)); -#40990=DIRECTION('',(0.,0.,-1.)); -#40991=DIRECTION('',(-1.,0.,0.)); -#40992=DIRECTION('',(-1.,0.,0.)); -#40993=DIRECTION('',(0.,0.,-1.)); -#40994=DIRECTION('',(-1.,0.,0.)); -#40995=DIRECTION('',(0.,-1.,0.)); -#40996=DIRECTION('',(0.,0.,-1.)); -#40997=DIRECTION('',(-1.,0.,0.)); -#40998=DIRECTION('',(-0.5,-0.866025403784439,0.)); -#40999=DIRECTION('',(0.,0.,-1.)); -#41000=DIRECTION('',(-1.,0.,0.)); -#41001=DIRECTION('',(0.,-1.,0.)); -#41002=DIRECTION('',(-1.,0.,0.)); -#41003=DIRECTION('',(0.,1.,0.)); -#41004=DIRECTION('',(0.,0.,-1.)); -#41005=DIRECTION('',(-1.,0.,0.)); -#41006=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); -#41007=DIRECTION('',(0.,0.,-1.)); -#41008=DIRECTION('',(-1.,0.,0.)); -#41009=DIRECTION('',(0.,1.,0.)); -#41010=DIRECTION('',(0.,0.,-1.)); -#41011=DIRECTION('',(-1.,0.,0.)); -#41012=DIRECTION('',(-1.,0.,0.)); -#41013=DIRECTION('',(0.,0.,-1.)); -#41014=DIRECTION('',(-1.,0.,0.)); -#41015=DIRECTION('',(0.,-1.,0.)); -#41016=DIRECTION('',(0.,0.,-1.)); -#41017=DIRECTION('',(-1.,0.,0.)); -#41018=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41019=DIRECTION('',(0.,0.,-1.)); -#41020=DIRECTION('',(-1.,0.,0.)); -#41021=DIRECTION('',(0.,-1.,0.)); -#41022=DIRECTION('',(-1.,0.,0.)); -#41023=DIRECTION('',(0.,1.,0.)); -#41024=DIRECTION('',(0.,0.,-1.)); -#41025=DIRECTION('',(-1.,0.,0.)); -#41026=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41027=DIRECTION('',(0.,0.,-1.)); -#41028=DIRECTION('',(-1.,0.,0.)); -#41029=DIRECTION('',(0.,1.,0.)); -#41030=DIRECTION('',(0.,0.,-1.)); -#41031=DIRECTION('',(-1.,0.,0.)); -#41032=DIRECTION('',(-1.,0.,0.)); -#41033=DIRECTION('',(0.,0.,-1.)); -#41034=DIRECTION('',(-1.,0.,0.)); -#41035=DIRECTION('',(0.,-1.,0.)); -#41036=DIRECTION('',(0.,0.,-1.)); -#41037=DIRECTION('',(-1.,0.,0.)); -#41038=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); -#41039=DIRECTION('',(0.,0.,-1.)); -#41040=DIRECTION('',(-1.,0.,0.)); -#41041=DIRECTION('',(0.,-1.,0.)); -#41042=DIRECTION('',(-1.,0.,0.)); -#41043=DIRECTION('',(0.,1.,0.)); -#41044=DIRECTION('',(0.,0.,-1.)); -#41045=DIRECTION('',(-1.,0.,0.)); -#41046=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41047=DIRECTION('',(0.,0.,-1.)); -#41048=DIRECTION('',(-1.,0.,0.)); -#41049=DIRECTION('',(0.,1.,0.)); -#41050=DIRECTION('',(0.,0.,-1.)); -#41051=DIRECTION('',(-1.,0.,0.)); -#41052=DIRECTION('',(-1.,0.,0.)); -#41053=DIRECTION('',(0.,0.,-1.)); -#41054=DIRECTION('',(-1.,0.,0.)); -#41055=DIRECTION('',(0.,-1.,0.)); -#41056=DIRECTION('',(0.,0.,-1.)); -#41057=DIRECTION('',(-1.,0.,0.)); -#41058=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); -#41059=DIRECTION('',(0.,0.,-1.)); -#41060=DIRECTION('',(-1.,0.,0.)); -#41061=DIRECTION('',(0.,-1.,0.)); -#41062=DIRECTION('',(-1.,0.,0.)); -#41063=DIRECTION('',(0.,1.,0.)); -#41064=DIRECTION('',(0.,0.,-1.)); -#41065=DIRECTION('',(-1.,0.,0.)); -#41066=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41067=DIRECTION('',(0.,0.,-1.)); -#41068=DIRECTION('',(-1.,0.,0.)); -#41069=DIRECTION('',(0.,1.,0.)); -#41070=DIRECTION('',(0.,0.,-1.)); -#41071=DIRECTION('',(-1.,0.,0.)); -#41072=DIRECTION('',(-1.,0.,0.)); -#41073=DIRECTION('',(0.,0.,-1.)); -#41074=DIRECTION('',(-1.,0.,0.)); -#41075=DIRECTION('',(0.,-1.,0.)); -#41076=DIRECTION('',(0.,0.,-1.)); -#41077=DIRECTION('',(-1.,0.,0.)); -#41078=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41079=DIRECTION('',(0.,0.,-1.)); -#41080=DIRECTION('',(-1.,0.,0.)); -#41081=DIRECTION('',(0.,-1.,0.)); -#41082=DIRECTION('',(-1.,0.,0.)); -#41083=DIRECTION('',(0.,1.,0.)); -#41084=DIRECTION('',(0.,0.,-1.)); -#41085=DIRECTION('',(-1.,0.,0.)); -#41086=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41087=DIRECTION('',(0.,0.,-1.)); -#41088=DIRECTION('',(-1.,0.,0.)); -#41089=DIRECTION('',(0.,1.,0.)); -#41090=DIRECTION('',(0.,0.,-1.)); -#41091=DIRECTION('',(-1.,0.,0.)); -#41092=DIRECTION('',(-1.,0.,0.)); -#41093=DIRECTION('',(0.,0.,-1.)); -#41094=DIRECTION('',(-1.,0.,0.)); -#41095=DIRECTION('',(0.,-1.,0.)); -#41096=DIRECTION('',(0.,0.,-1.)); -#41097=DIRECTION('',(-1.,0.,0.)); -#41098=DIRECTION('',(-0.499999999999995,-0.866025403784442,0.)); -#41099=DIRECTION('',(0.,0.,-1.)); -#41100=DIRECTION('',(-1.,0.,0.)); -#41101=DIRECTION('',(0.,-1.,0.)); -#41102=DIRECTION('',(-1.,0.,0.)); -#41103=DIRECTION('',(0.,1.,0.)); -#41104=DIRECTION('',(0.,0.,-1.)); -#41105=DIRECTION('',(-1.,0.,0.)); -#41106=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41107=DIRECTION('',(0.,0.,-1.)); -#41108=DIRECTION('',(-1.,0.,0.)); -#41109=DIRECTION('',(0.,1.,0.)); -#41110=DIRECTION('',(0.,0.,-1.)); -#41111=DIRECTION('',(-1.,0.,0.)); -#41112=DIRECTION('',(-1.,0.,0.)); -#41113=DIRECTION('',(0.,0.,-1.)); -#41114=DIRECTION('',(-1.,0.,0.)); -#41115=DIRECTION('',(0.,-1.,0.)); -#41116=DIRECTION('',(0.,0.,-1.)); -#41117=DIRECTION('',(-1.,0.,0.)); -#41118=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41119=DIRECTION('',(0.,0.,-1.)); -#41120=DIRECTION('',(-1.,0.,0.)); -#41121=DIRECTION('',(0.,-1.,0.)); -#41122=DIRECTION('',(-1.,0.,0.)); -#41123=DIRECTION('',(0.,1.,0.)); -#41124=DIRECTION('',(0.,0.,-1.)); -#41125=DIRECTION('',(-1.,0.,0.)); -#41126=DIRECTION('',(-0.499999999999998,0.86602540378444,0.)); -#41127=DIRECTION('',(0.,0.,-1.)); -#41128=DIRECTION('',(-1.,0.,0.)); -#41129=DIRECTION('',(0.,1.,0.)); -#41130=DIRECTION('',(0.,0.,-1.)); -#41131=DIRECTION('',(-1.,0.,0.)); -#41132=DIRECTION('',(-1.,0.,0.)); -#41133=DIRECTION('',(0.,0.,-1.)); -#41134=DIRECTION('',(-1.,0.,0.)); -#41135=DIRECTION('',(0.,-1.,0.)); -#41136=DIRECTION('',(0.,0.,-1.)); -#41137=DIRECTION('',(-1.,0.,0.)); -#41138=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41139=DIRECTION('',(0.,0.,-1.)); -#41140=DIRECTION('',(-1.,0.,0.)); -#41141=DIRECTION('',(0.,-1.,0.)); -#41142=DIRECTION('',(-1.,0.,0.)); -#41143=DIRECTION('',(2.91944582425155E-16,1.,0.)); -#41144=DIRECTION('',(0.,0.,-1.)); -#41145=DIRECTION('',(-1.,0.,0.)); -#41146=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41147=DIRECTION('',(0.,0.,-1.)); -#41148=DIRECTION('',(-1.,0.,0.)); -#41149=DIRECTION('',(0.,1.,0.)); -#41150=DIRECTION('',(0.,0.,-1.)); -#41151=DIRECTION('',(-1.,0.,0.)); -#41152=DIRECTION('',(-1.,0.,0.)); -#41153=DIRECTION('',(0.,0.,-1.)); -#41154=DIRECTION('',(-1.,0.,0.)); -#41155=DIRECTION('',(0.,-1.,0.)); -#41156=DIRECTION('',(0.,0.,-1.)); -#41157=DIRECTION('',(-1.,0.,0.)); -#41158=DIRECTION('',(-0.500000000000009,-0.866025403784433,0.)); -#41159=DIRECTION('',(0.,0.,-1.)); -#41160=DIRECTION('',(-1.,0.,0.)); -#41161=DIRECTION('',(0.,-1.,0.)); -#41162=DIRECTION('',(-1.,0.,0.)); -#41163=DIRECTION('',(0.,-1.,0.)); -#41164=DIRECTION('',(0.,0.,1.)); -#41165=DIRECTION('',(1.,0.,0.)); -#41166=DIRECTION('',(1.,0.,0.)); -#41167=DIRECTION('',(0.,-1.,0.)); -#41168=DIRECTION('',(1.,0.,0.)); -#41169=DIRECTION('',(0.,1.,0.)); -#41170=DIRECTION('',(0.,0.,1.)); -#41171=DIRECTION('',(1.,0.,0.)); -#41172=DIRECTION('',(0.500000000000009,0.866025403784433,0.)); -#41173=DIRECTION('',(0.,0.,1.)); -#41174=DIRECTION('',(1.,0.,0.)); -#41175=DIRECTION('',(0.,1.,0.)); -#41176=DIRECTION('',(0.,0.,1.)); -#41177=DIRECTION('',(1.,0.,0.)); -#41178=DIRECTION('',(-1.,0.,0.)); -#41179=DIRECTION('',(0.,0.,1.)); -#41180=DIRECTION('',(1.,0.,0.)); -#41181=DIRECTION('',(0.,-1.,0.)); -#41182=DIRECTION('',(0.,0.,1.)); -#41183=DIRECTION('',(1.,0.,0.)); -#41184=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41185=DIRECTION('',(0.,0.,1.)); -#41186=DIRECTION('',(1.,0.,0.)); -#41187=DIRECTION('',(-2.91944582425155E-16,-1.,0.)); -#41188=DIRECTION('',(1.,0.,0.)); -#41189=DIRECTION('',(0.,1.,0.)); -#41190=DIRECTION('',(0.,0.,1.)); -#41191=DIRECTION('',(1.,0.,0.)); -#41192=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#41193=DIRECTION('',(0.,0.,1.)); -#41194=DIRECTION('',(1.,0.,0.)); -#41195=DIRECTION('',(0.,1.,0.)); -#41196=DIRECTION('',(0.,0.,1.)); -#41197=DIRECTION('',(1.,0.,0.)); -#41198=DIRECTION('',(-1.,0.,0.)); -#41199=DIRECTION('',(0.,0.,1.)); -#41200=DIRECTION('',(1.,0.,0.)); -#41201=DIRECTION('',(0.,-1.,0.)); -#41202=DIRECTION('',(0.,0.,1.)); -#41203=DIRECTION('',(1.,0.,0.)); -#41204=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); -#41205=DIRECTION('',(0.,0.,1.)); -#41206=DIRECTION('',(1.,0.,0.)); -#41207=DIRECTION('',(0.,-1.,0.)); -#41208=DIRECTION('',(1.,0.,0.)); -#41209=DIRECTION('',(0.,1.,0.)); -#41210=DIRECTION('',(0.,0.,1.)); -#41211=DIRECTION('',(1.,0.,0.)); -#41212=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#41213=DIRECTION('',(0.,0.,1.)); -#41214=DIRECTION('',(1.,0.,0.)); -#41215=DIRECTION('',(0.,1.,0.)); -#41216=DIRECTION('',(0.,0.,1.)); -#41217=DIRECTION('',(1.,0.,0.)); -#41218=DIRECTION('',(-1.,0.,0.)); -#41219=DIRECTION('',(0.,0.,1.)); -#41220=DIRECTION('',(1.,0.,0.)); -#41221=DIRECTION('',(0.,-1.,0.)); -#41222=DIRECTION('',(0.,0.,1.)); -#41223=DIRECTION('',(1.,0.,0.)); -#41224=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41225=DIRECTION('',(0.,0.,1.)); -#41226=DIRECTION('',(1.,0.,0.)); -#41227=DIRECTION('',(0.,-1.,0.)); -#41228=DIRECTION('',(1.,0.,0.)); -#41229=DIRECTION('',(0.,1.,0.)); -#41230=DIRECTION('',(0.,0.,1.)); -#41231=DIRECTION('',(1.,0.,0.)); -#41232=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); -#41233=DIRECTION('',(0.,0.,1.)); -#41234=DIRECTION('',(1.,0.,0.)); -#41235=DIRECTION('',(0.,1.,0.)); -#41236=DIRECTION('',(0.,0.,1.)); -#41237=DIRECTION('',(1.,0.,0.)); -#41238=DIRECTION('',(-1.,0.,0.)); -#41239=DIRECTION('',(0.,0.,1.)); -#41240=DIRECTION('',(1.,0.,0.)); -#41241=DIRECTION('',(0.,-1.,0.)); -#41242=DIRECTION('',(0.,0.,1.)); -#41243=DIRECTION('',(1.,0.,0.)); -#41244=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41245=DIRECTION('',(0.,0.,1.)); -#41246=DIRECTION('',(1.,0.,0.)); -#41247=DIRECTION('',(0.,-1.,0.)); -#41248=DIRECTION('',(1.,0.,0.)); -#41249=DIRECTION('',(0.,1.,0.)); -#41250=DIRECTION('',(0.,0.,1.)); -#41251=DIRECTION('',(1.,0.,0.)); -#41252=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#41253=DIRECTION('',(0.,0.,1.)); -#41254=DIRECTION('',(1.,0.,0.)); -#41255=DIRECTION('',(0.,1.,0.)); -#41256=DIRECTION('',(0.,0.,1.)); -#41257=DIRECTION('',(1.,0.,0.)); -#41258=DIRECTION('',(-1.,0.,0.)); -#41259=DIRECTION('',(0.,0.,1.)); -#41260=DIRECTION('',(1.,0.,0.)); -#41261=DIRECTION('',(0.,-1.,0.)); -#41262=DIRECTION('',(0.,0.,1.)); -#41263=DIRECTION('',(1.,0.,0.)); -#41264=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41265=DIRECTION('',(0.,0.,1.)); -#41266=DIRECTION('',(1.,0.,0.)); -#41267=DIRECTION('',(0.,-1.,0.)); -#41268=DIRECTION('',(1.,0.,0.)); -#41269=DIRECTION('',(0.,1.,0.)); -#41270=DIRECTION('',(0.,0.,1.)); -#41271=DIRECTION('',(1.,0.,0.)); -#41272=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#41273=DIRECTION('',(0.,0.,1.)); -#41274=DIRECTION('',(1.,0.,0.)); -#41275=DIRECTION('',(0.,1.,0.)); -#41276=DIRECTION('',(0.,0.,1.)); -#41277=DIRECTION('',(1.,0.,0.)); -#41278=DIRECTION('',(-1.,0.,0.)); -#41279=DIRECTION('',(0.,0.,1.)); -#41280=DIRECTION('',(1.,0.,0.)); -#41281=DIRECTION('',(0.,-1.,0.)); -#41282=DIRECTION('',(0.,0.,1.)); -#41283=DIRECTION('',(1.,0.,0.)); -#41284=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41285=DIRECTION('',(0.,0.,1.)); -#41286=DIRECTION('',(1.,0.,0.)); -#41287=DIRECTION('',(0.,-1.,0.)); -#41288=DIRECTION('',(1.,0.,0.)); -#41289=DIRECTION('',(0.,1.,0.)); -#41290=DIRECTION('',(0.,0.,1.)); -#41291=DIRECTION('',(1.,0.,0.)); -#41292=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#41293=DIRECTION('',(0.,0.,1.)); -#41294=DIRECTION('',(1.,0.,0.)); -#41295=DIRECTION('',(0.,1.,0.)); -#41296=DIRECTION('',(0.,0.,1.)); -#41297=DIRECTION('',(1.,0.,0.)); -#41298=DIRECTION('',(-1.,0.,0.)); -#41299=DIRECTION('',(0.,0.,1.)); -#41300=DIRECTION('',(1.,0.,0.)); -#41301=DIRECTION('',(0.,-1.,0.)); -#41302=DIRECTION('',(0.,0.,1.)); -#41303=DIRECTION('',(1.,0.,0.)); -#41304=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41305=DIRECTION('',(0.,0.,1.)); -#41306=DIRECTION('',(1.,0.,0.)); -#41307=DIRECTION('',(0.,-1.,0.)); -#41308=DIRECTION('',(1.,0.,0.)); -#41309=DIRECTION('',(0.,1.,0.)); -#41310=DIRECTION('',(0.,0.,1.)); -#41311=DIRECTION('',(1.,0.,0.)); -#41312=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#41313=DIRECTION('',(0.,0.,1.)); -#41314=DIRECTION('',(1.,0.,0.)); -#41315=DIRECTION('',(0.,1.,0.)); -#41316=DIRECTION('',(0.,0.,1.)); -#41317=DIRECTION('',(1.,0.,0.)); -#41318=DIRECTION('',(-1.,0.,0.)); -#41319=DIRECTION('',(0.,0.,1.)); -#41320=DIRECTION('',(1.,0.,0.)); -#41321=DIRECTION('',(0.,-1.,0.)); -#41322=DIRECTION('',(0.,0.,1.)); -#41323=DIRECTION('',(1.,0.,0.)); -#41324=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#41325=DIRECTION('',(0.,0.,1.)); -#41326=DIRECTION('',(1.,0.,0.)); -#41327=DIRECTION('',(0.,-1.,0.)); -#41328=DIRECTION('',(1.,0.,0.)); -#41329=DIRECTION('',(0.,1.,0.)); -#41330=DIRECTION('',(0.,0.,1.)); -#41331=DIRECTION('',(1.,0.,0.)); -#41332=DIRECTION('',(0.5,0.866025403784439,0.)); -#41333=DIRECTION('',(0.,0.,1.)); -#41334=DIRECTION('',(1.,0.,0.)); -#41335=DIRECTION('',(0.,1.,0.)); -#41336=DIRECTION('',(0.,0.,1.)); -#41337=DIRECTION('',(1.,0.,0.)); -#41338=DIRECTION('',(-1.,0.,0.)); -#41339=DIRECTION('',(0.,0.,1.)); -#41340=DIRECTION('',(1.,0.,0.)); -#41341=DIRECTION('',(0.,-1.,0.)); -#41342=DIRECTION('',(0.,0.,1.)); -#41343=DIRECTION('',(1.,0.,0.)); -#41344=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#41345=DIRECTION('',(0.,0.,1.)); -#41346=DIRECTION('',(1.,0.,0.)); -#41347=DIRECTION('',(0.,-1.,0.)); -#41348=DIRECTION('',(1.,0.,0.)); -#41349=DIRECTION('',(0.,1.,0.)); -#41350=DIRECTION('',(0.,0.,1.)); -#41351=DIRECTION('',(1.,0.,0.)); -#41352=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#41353=DIRECTION('',(0.,0.,1.)); -#41354=DIRECTION('',(1.,0.,0.)); -#41355=DIRECTION('',(0.,1.,0.)); -#41356=DIRECTION('',(0.,0.,1.)); -#41357=DIRECTION('',(1.,0.,0.)); -#41358=DIRECTION('',(-1.,0.,0.)); -#41359=DIRECTION('',(0.,0.,1.)); -#41360=DIRECTION('',(1.,0.,0.)); -#41361=DIRECTION('',(0.,-1.,0.)); -#41362=DIRECTION('',(0.,0.,1.)); -#41363=DIRECTION('',(1.,0.,0.)); -#41364=DIRECTION('',(0.500000000000002,-0.866025403784437,0.)); -#41365=DIRECTION('',(0.,0.,1.)); -#41366=DIRECTION('',(1.,0.,0.)); -#41367=DIRECTION('',(-9.12326820078609E-18,-1.,0.)); -#41368=DIRECTION('',(1.,0.,0.)); -#41369=DIRECTION('',(0.,1.,0.)); -#41370=DIRECTION('',(0.,0.,1.)); -#41371=DIRECTION('',(1.,0.,0.)); -#41372=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#41373=DIRECTION('',(0.,0.,1.)); -#41374=DIRECTION('',(1.,0.,0.)); -#41375=DIRECTION('',(0.,1.,0.)); -#41376=DIRECTION('',(0.,0.,1.)); -#41377=DIRECTION('',(1.,0.,0.)); -#41378=DIRECTION('',(-1.,0.,0.)); -#41379=DIRECTION('',(0.,0.,1.)); -#41380=DIRECTION('',(1.,0.,0.)); -#41381=DIRECTION('',(0.,-1.,0.)); -#41382=DIRECTION('',(0.,0.,1.)); -#41383=DIRECTION('',(1.,0.,0.)); -#41384=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#41385=DIRECTION('',(0.,0.,1.)); -#41386=DIRECTION('',(1.,0.,0.)); -#41387=DIRECTION('',(0.,-1.,0.)); -#41388=DIRECTION('',(1.,0.,0.)); -#41389=DIRECTION('',(0.,1.,0.)); -#41390=DIRECTION('',(0.,0.,1.)); -#41391=DIRECTION('',(1.,0.,0.)); -#41392=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#41393=DIRECTION('',(0.,0.,1.)); -#41394=DIRECTION('',(1.,0.,0.)); -#41395=DIRECTION('',(0.,1.,0.)); -#41396=DIRECTION('',(0.,0.,1.)); -#41397=DIRECTION('',(1.,0.,0.)); -#41398=DIRECTION('',(-1.,0.,0.)); -#41399=DIRECTION('',(0.,0.,1.)); -#41400=DIRECTION('',(1.,0.,0.)); -#41401=DIRECTION('',(0.,-1.,0.)); -#41402=DIRECTION('',(0.,0.,1.)); -#41403=DIRECTION('',(1.,0.,0.)); -#41404=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#41405=DIRECTION('',(0.,0.,1.)); -#41406=DIRECTION('',(1.,0.,0.)); -#41407=DIRECTION('',(0.,-1.,0.)); -#41408=DIRECTION('',(1.,0.,0.)); -#41409=DIRECTION('',(0.,1.,0.)); -#41410=DIRECTION('',(0.,0.,1.)); -#41411=DIRECTION('',(1.,0.,0.)); -#41412=DIRECTION('',(0.5,0.866025403784439,0.)); -#41413=DIRECTION('',(0.,0.,1.)); -#41414=DIRECTION('',(1.,0.,0.)); -#41415=DIRECTION('',(0.,1.,0.)); -#41416=DIRECTION('',(0.,0.,1.)); -#41417=DIRECTION('',(1.,0.,0.)); -#41418=DIRECTION('',(-1.,0.,0.)); -#41419=DIRECTION('',(0.,0.,1.)); -#41420=DIRECTION('',(1.,0.,0.)); -#41421=DIRECTION('',(0.,-1.,0.)); -#41422=DIRECTION('',(0.,0.,1.)); -#41423=DIRECTION('',(1.,0.,0.)); -#41424=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41425=DIRECTION('',(0.,0.,1.)); -#41426=DIRECTION('',(1.,0.,0.)); -#41427=DIRECTION('',(0.,-1.,0.)); -#41428=DIRECTION('',(1.,0.,0.)); -#41429=DIRECTION('',(0.,1.,0.)); -#41430=DIRECTION('',(0.,0.,1.)); -#41431=DIRECTION('',(1.,0.,0.)); -#41432=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#41433=DIRECTION('',(0.,0.,1.)); -#41434=DIRECTION('',(1.,0.,0.)); -#41435=DIRECTION('',(0.,1.,0.)); -#41436=DIRECTION('',(0.,0.,1.)); -#41437=DIRECTION('',(1.,0.,0.)); -#41438=DIRECTION('',(-1.,0.,0.)); -#41439=DIRECTION('',(0.,0.,1.)); -#41440=DIRECTION('',(1.,0.,0.)); -#41441=DIRECTION('',(0.,-1.,0.)); -#41442=DIRECTION('',(0.,0.,1.)); -#41443=DIRECTION('',(1.,0.,0.)); -#41444=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); -#41445=DIRECTION('',(0.,0.,1.)); -#41446=DIRECTION('',(1.,0.,0.)); -#41447=DIRECTION('',(0.,-1.,0.)); -#41448=DIRECTION('',(1.,0.,0.)); -#41449=DIRECTION('',(0.,1.,0.)); -#41450=DIRECTION('',(0.,0.,1.)); -#41451=DIRECTION('',(1.,0.,0.)); -#41452=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#41453=DIRECTION('',(0.,0.,1.)); -#41454=DIRECTION('',(1.,0.,0.)); -#41455=DIRECTION('',(0.,1.,0.)); -#41456=DIRECTION('',(0.,0.,1.)); -#41457=DIRECTION('',(1.,0.,0.)); -#41458=DIRECTION('',(-1.,0.,0.)); -#41459=DIRECTION('',(0.,0.,1.)); -#41460=DIRECTION('',(1.,0.,0.)); -#41461=DIRECTION('',(0.,-1.,0.)); -#41462=DIRECTION('',(0.,0.,1.)); -#41463=DIRECTION('',(1.,0.,0.)); -#41464=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); -#41465=DIRECTION('',(0.,0.,1.)); -#41466=DIRECTION('',(1.,0.,0.)); -#41467=DIRECTION('',(0.,-1.,0.)); -#41468=DIRECTION('',(1.,0.,0.)); -#41469=DIRECTION('',(0.,1.,0.)); -#41470=DIRECTION('',(0.,0.,1.)); -#41471=DIRECTION('',(1.,0.,0.)); -#41472=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#41473=DIRECTION('',(0.,0.,1.)); -#41474=DIRECTION('',(1.,0.,0.)); -#41475=DIRECTION('',(0.,1.,0.)); -#41476=DIRECTION('',(0.,0.,1.)); -#41477=DIRECTION('',(1.,0.,0.)); -#41478=DIRECTION('',(-1.,0.,0.)); -#41479=DIRECTION('',(0.,0.,1.)); -#41480=DIRECTION('',(1.,0.,0.)); -#41481=DIRECTION('',(0.,-1.,0.)); -#41482=DIRECTION('',(0.,0.,1.)); -#41483=DIRECTION('',(1.,0.,0.)); -#41484=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41485=DIRECTION('',(0.,0.,1.)); -#41486=DIRECTION('',(1.,0.,0.)); -#41487=DIRECTION('',(0.,-1.,0.)); -#41488=DIRECTION('',(1.,0.,0.)); -#41489=DIRECTION('',(0.,1.,0.)); -#41490=DIRECTION('',(0.,0.,1.)); -#41491=DIRECTION('',(1.,0.,0.)); -#41492=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#41493=DIRECTION('',(0.,0.,1.)); -#41494=DIRECTION('',(1.,0.,0.)); -#41495=DIRECTION('',(0.,1.,0.)); -#41496=DIRECTION('',(0.,0.,1.)); -#41497=DIRECTION('',(1.,0.,0.)); -#41498=DIRECTION('',(-1.,0.,0.)); -#41499=DIRECTION('',(0.,0.,1.)); -#41500=DIRECTION('',(1.,0.,0.)); -#41501=DIRECTION('',(0.,-1.,0.)); -#41502=DIRECTION('',(0.,0.,1.)); -#41503=DIRECTION('',(1.,0.,0.)); -#41504=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); -#41505=DIRECTION('',(0.,0.,1.)); -#41506=DIRECTION('',(1.,0.,0.)); -#41507=DIRECTION('',(0.,-1.,0.)); -#41508=DIRECTION('',(1.,0.,0.)); -#41509=DIRECTION('',(0.,1.,0.)); -#41510=DIRECTION('',(0.,0.,1.)); -#41511=DIRECTION('',(1.,0.,0.)); -#41512=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#41513=DIRECTION('',(0.,0.,1.)); -#41514=DIRECTION('',(1.,0.,0.)); -#41515=DIRECTION('',(0.,1.,0.)); -#41516=DIRECTION('',(0.,0.,1.)); -#41517=DIRECTION('',(1.,0.,0.)); -#41518=DIRECTION('',(-1.,0.,0.)); -#41519=DIRECTION('',(0.,0.,1.)); -#41520=DIRECTION('',(1.,0.,0.)); -#41521=DIRECTION('',(0.,-1.,0.)); -#41522=DIRECTION('',(0.,0.,1.)); -#41523=DIRECTION('',(1.,0.,0.)); -#41524=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41525=DIRECTION('',(0.,0.,1.)); -#41526=DIRECTION('',(1.,0.,0.)); -#41527=DIRECTION('',(0.,-1.,0.)); -#41528=DIRECTION('',(1.,0.,0.)); -#41529=DIRECTION('',(0.,1.,0.)); -#41530=DIRECTION('',(0.,0.,1.)); -#41531=DIRECTION('',(1.,0.,0.)); -#41532=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); -#41533=DIRECTION('',(0.,0.,1.)); -#41534=DIRECTION('',(1.,0.,0.)); -#41535=DIRECTION('',(0.,1.,0.)); -#41536=DIRECTION('',(0.,0.,1.)); -#41537=DIRECTION('',(1.,0.,0.)); -#41538=DIRECTION('',(-1.,0.,0.)); -#41539=DIRECTION('',(0.,0.,1.)); -#41540=DIRECTION('',(1.,0.,0.)); -#41541=DIRECTION('',(0.,-1.,0.)); -#41542=DIRECTION('',(0.,0.,1.)); -#41543=DIRECTION('',(1.,0.,0.)); -#41544=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41545=DIRECTION('',(0.,0.,1.)); -#41546=DIRECTION('',(1.,0.,0.)); -#41547=DIRECTION('',(0.,-1.,0.)); -#41548=DIRECTION('',(1.,0.,0.)); -#41549=DIRECTION('',(0.,1.,0.)); -#41550=DIRECTION('',(0.,0.,1.)); -#41551=DIRECTION('',(1.,0.,0.)); -#41552=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#41553=DIRECTION('',(0.,0.,1.)); -#41554=DIRECTION('',(1.,0.,0.)); -#41555=DIRECTION('',(0.,1.,0.)); -#41556=DIRECTION('',(0.,0.,1.)); -#41557=DIRECTION('',(1.,0.,0.)); -#41558=DIRECTION('',(-1.,0.,0.)); -#41559=DIRECTION('',(0.,0.,1.)); -#41560=DIRECTION('',(1.,0.,0.)); -#41561=DIRECTION('',(0.,-1.,0.)); -#41562=DIRECTION('',(0.,0.,1.)); -#41563=DIRECTION('',(1.,0.,0.)); -#41564=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#41565=DIRECTION('',(0.,0.,1.)); -#41566=DIRECTION('',(1.,0.,0.)); -#41567=DIRECTION('',(0.,1.,0.)); -#41568=DIRECTION('',(1.,0.,0.)); -#41569=DIRECTION('',(0.,-1.,0.)); -#41570=DIRECTION('',(0.,0.,-1.)); -#41571=DIRECTION('',(-1.,0.,0.)); -#41572=DIRECTION('',(-1.,0.,0.)); -#41573=DIRECTION('',(0.,-1.,0.)); -#41574=DIRECTION('',(1.,0.,0.)); -#41575=DIRECTION('',(0.,-1.,0.)); -#41576=DIRECTION('',(0.,0.,-1.)); -#41577=DIRECTION('',(-1.,0.,0.)); -#41578=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41579=DIRECTION('',(0.,0.,-1.)); -#41580=DIRECTION('',(-1.,0.,0.)); -#41581=DIRECTION('',(0.,1.,0.)); -#41582=DIRECTION('',(0.,0.,-1.)); -#41583=DIRECTION('',(-1.,0.,0.)); -#41584=DIRECTION('',(-1.,0.,0.)); -#41585=DIRECTION('',(0.,0.,-1.)); -#41586=DIRECTION('',(-1.,0.,0.)); -#41587=DIRECTION('',(0.,-1.,0.)); -#41588=DIRECTION('',(0.,0.,-1.)); -#41589=DIRECTION('',(-1.,0.,0.)); -#41590=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41591=DIRECTION('',(0.,0.,-1.)); -#41592=DIRECTION('',(-1.,0.,0.)); -#41593=DIRECTION('',(0.,-1.,0.)); -#41594=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41595=DIRECTION('',(0.,1.,0.)); -#41596=DIRECTION('',(0.,0.,-1.)); -#41597=DIRECTION('',(-1.,0.,0.)); -#41598=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41599=DIRECTION('',(0.,0.,-1.)); -#41600=DIRECTION('',(-1.,0.,0.)); -#41601=DIRECTION('',(0.,1.,0.)); -#41602=DIRECTION('',(0.,0.,-1.)); -#41603=DIRECTION('',(-1.,0.,0.)); -#41604=DIRECTION('',(-1.,0.,0.)); -#41605=DIRECTION('',(0.,0.,-1.)); -#41606=DIRECTION('',(-1.,0.,0.)); -#41607=DIRECTION('',(0.,-1.,0.)); -#41608=DIRECTION('',(0.,0.,-1.)); -#41609=DIRECTION('',(-1.,0.,0.)); -#41610=DIRECTION('',(-0.499999999999995,-0.866025403784442,0.)); -#41611=DIRECTION('',(0.,0.,-1.)); -#41612=DIRECTION('',(-1.,0.,0.)); -#41613=DIRECTION('',(0.,-1.,0.)); -#41614=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41615=DIRECTION('',(0.,1.,0.)); -#41616=DIRECTION('',(0.,0.,-1.)); -#41617=DIRECTION('',(-1.,0.,0.)); -#41618=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41619=DIRECTION('',(0.,0.,-1.)); -#41620=DIRECTION('',(-1.,0.,0.)); -#41621=DIRECTION('',(0.,1.,0.)); -#41622=DIRECTION('',(0.,0.,-1.)); -#41623=DIRECTION('',(-1.,0.,0.)); -#41624=DIRECTION('',(-1.,0.,0.)); -#41625=DIRECTION('',(0.,0.,-1.)); -#41626=DIRECTION('',(-1.,0.,0.)); -#41627=DIRECTION('',(0.,-1.,0.)); -#41628=DIRECTION('',(0.,0.,-1.)); -#41629=DIRECTION('',(-1.,0.,0.)); -#41630=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41631=DIRECTION('',(0.,0.,-1.)); -#41632=DIRECTION('',(-1.,0.,0.)); -#41633=DIRECTION('',(0.,-1.,0.)); -#41634=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41635=DIRECTION('',(0.,1.,0.)); -#41636=DIRECTION('',(0.,0.,-1.)); -#41637=DIRECTION('',(-1.,0.,0.)); -#41638=DIRECTION('',(-0.499999999999998,0.86602540378444,0.)); -#41639=DIRECTION('',(0.,0.,-1.)); -#41640=DIRECTION('',(-1.,0.,0.)); -#41641=DIRECTION('',(0.,1.,0.)); -#41642=DIRECTION('',(0.,0.,-1.)); -#41643=DIRECTION('',(-1.,0.,0.)); -#41644=DIRECTION('',(-1.,0.,0.)); -#41645=DIRECTION('',(0.,0.,-1.)); -#41646=DIRECTION('',(-1.,0.,0.)); -#41647=DIRECTION('',(0.,-1.,0.)); -#41648=DIRECTION('',(0.,0.,-1.)); -#41649=DIRECTION('',(-1.,0.,0.)); -#41650=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41651=DIRECTION('',(0.,0.,-1.)); -#41652=DIRECTION('',(-1.,0.,0.)); -#41653=DIRECTION('',(0.,-1.,0.)); -#41654=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41655=DIRECTION('',(0.,1.,0.)); -#41656=DIRECTION('',(0.,0.,-1.)); -#41657=DIRECTION('',(-1.,0.,0.)); -#41658=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41659=DIRECTION('',(0.,0.,-1.)); -#41660=DIRECTION('',(-1.,0.,0.)); -#41661=DIRECTION('',(0.,1.,0.)); -#41662=DIRECTION('',(0.,0.,-1.)); -#41663=DIRECTION('',(-1.,0.,0.)); -#41664=DIRECTION('',(-1.,0.,0.)); -#41665=DIRECTION('',(0.,0.,-1.)); -#41666=DIRECTION('',(-1.,0.,0.)); -#41667=DIRECTION('',(0.,-1.,0.)); -#41668=DIRECTION('',(0.,0.,-1.)); -#41669=DIRECTION('',(-1.,0.,0.)); -#41670=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41671=DIRECTION('',(0.,0.,-1.)); -#41672=DIRECTION('',(-1.,0.,0.)); -#41673=DIRECTION('',(0.,-1.,0.)); -#41674=DIRECTION('',(-1.,9.85638338623185E-16,0.)); -#41675=DIRECTION('',(0.,1.,0.)); -#41676=DIRECTION('',(0.,0.,-1.)); -#41677=DIRECTION('',(-1.,0.,0.)); -#41678=DIRECTION('',(-0.500000000000001,0.866025403784438,0.)); -#41679=DIRECTION('',(0.,0.,-1.)); -#41680=DIRECTION('',(-1.,0.,0.)); -#41681=DIRECTION('',(0.,1.,0.)); -#41682=DIRECTION('',(0.,0.,-1.)); -#41683=DIRECTION('',(-1.,0.,0.)); -#41684=DIRECTION('',(-1.,0.,0.)); -#41685=DIRECTION('',(0.,0.,-1.)); -#41686=DIRECTION('',(-1.,0.,0.)); -#41687=DIRECTION('',(0.,-1.,0.)); -#41688=DIRECTION('',(0.,0.,-1.)); -#41689=DIRECTION('',(-1.,0.,0.)); -#41690=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); -#41691=DIRECTION('',(0.,0.,-1.)); -#41692=DIRECTION('',(-1.,0.,0.)); -#41693=DIRECTION('',(0.,-1.,0.)); -#41694=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41695=DIRECTION('',(0.,1.,0.)); -#41696=DIRECTION('',(0.,0.,-1.)); -#41697=DIRECTION('',(-1.,0.,0.)); -#41698=DIRECTION('',(-0.500000000000001,0.866025403784438,0.)); -#41699=DIRECTION('',(0.,0.,-1.)); -#41700=DIRECTION('',(-1.,0.,0.)); -#41701=DIRECTION('',(0.,1.,0.)); -#41702=DIRECTION('',(0.,0.,-1.)); -#41703=DIRECTION('',(-1.,0.,0.)); -#41704=DIRECTION('',(-1.,0.,0.)); -#41705=DIRECTION('',(0.,0.,-1.)); -#41706=DIRECTION('',(-1.,0.,0.)); -#41707=DIRECTION('',(0.,-1.,0.)); -#41708=DIRECTION('',(0.,0.,-1.)); -#41709=DIRECTION('',(-1.,0.,0.)); -#41710=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41711=DIRECTION('',(0.,0.,-1.)); -#41712=DIRECTION('',(-1.,0.,0.)); -#41713=DIRECTION('',(0.,-1.,0.)); -#41714=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41715=DIRECTION('',(0.,1.,0.)); -#41716=DIRECTION('',(0.,0.,-1.)); -#41717=DIRECTION('',(-1.,0.,0.)); -#41718=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41719=DIRECTION('',(0.,0.,-1.)); -#41720=DIRECTION('',(-1.,0.,0.)); -#41721=DIRECTION('',(0.,1.,0.)); -#41722=DIRECTION('',(0.,0.,-1.)); -#41723=DIRECTION('',(-1.,0.,0.)); -#41724=DIRECTION('',(-1.,0.,0.)); -#41725=DIRECTION('',(0.,0.,-1.)); -#41726=DIRECTION('',(-1.,0.,0.)); -#41727=DIRECTION('',(0.,-1.,0.)); -#41728=DIRECTION('',(0.,0.,-1.)); -#41729=DIRECTION('',(-1.,0.,0.)); -#41730=DIRECTION('',(-0.5,-0.866025403784439,0.)); -#41731=DIRECTION('',(0.,0.,-1.)); -#41732=DIRECTION('',(-1.,0.,0.)); -#41733=DIRECTION('',(0.,-1.,0.)); -#41734=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41735=DIRECTION('',(0.,1.,0.)); -#41736=DIRECTION('',(0.,0.,-1.)); -#41737=DIRECTION('',(-1.,0.,0.)); -#41738=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); -#41739=DIRECTION('',(0.,0.,-1.)); -#41740=DIRECTION('',(-1.,0.,0.)); -#41741=DIRECTION('',(0.,1.,0.)); -#41742=DIRECTION('',(0.,0.,-1.)); -#41743=DIRECTION('',(-1.,0.,0.)); -#41744=DIRECTION('',(-1.,0.,0.)); -#41745=DIRECTION('',(0.,0.,-1.)); -#41746=DIRECTION('',(-1.,0.,0.)); -#41747=DIRECTION('',(0.,-1.,0.)); -#41748=DIRECTION('',(0.,0.,-1.)); -#41749=DIRECTION('',(-1.,0.,0.)); -#41750=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); -#41751=DIRECTION('',(0.,0.,-1.)); -#41752=DIRECTION('',(-1.,0.,0.)); -#41753=DIRECTION('',(0.,-1.,0.)); -#41754=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41755=DIRECTION('',(0.,1.,0.)); -#41756=DIRECTION('',(0.,0.,-1.)); -#41757=DIRECTION('',(-1.,0.,0.)); -#41758=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); -#41759=DIRECTION('',(0.,0.,-1.)); -#41760=DIRECTION('',(-1.,0.,0.)); -#41761=DIRECTION('',(0.,1.,0.)); -#41762=DIRECTION('',(0.,0.,-1.)); -#41763=DIRECTION('',(-1.,0.,0.)); -#41764=DIRECTION('',(-1.,0.,0.)); -#41765=DIRECTION('',(0.,0.,-1.)); -#41766=DIRECTION('',(-1.,0.,0.)); -#41767=DIRECTION('',(0.,-1.,0.)); -#41768=DIRECTION('',(0.,0.,-1.)); -#41769=DIRECTION('',(-1.,0.,0.)); -#41770=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); -#41771=DIRECTION('',(0.,0.,-1.)); -#41772=DIRECTION('',(-1.,0.,0.)); -#41773=DIRECTION('',(0.,-1.,0.)); -#41774=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41775=DIRECTION('',(9.12326820078609E-18,1.,0.)); -#41776=DIRECTION('',(0.,0.,-1.)); -#41777=DIRECTION('',(-1.,0.,0.)); -#41778=DIRECTION('',(-0.500000000000002,0.866025403784437,0.)); -#41779=DIRECTION('',(0.,0.,-1.)); -#41780=DIRECTION('',(-1.,0.,0.)); -#41781=DIRECTION('',(0.,1.,0.)); -#41782=DIRECTION('',(0.,0.,-1.)); -#41783=DIRECTION('',(-1.,0.,0.)); -#41784=DIRECTION('',(-1.,0.,0.)); -#41785=DIRECTION('',(0.,0.,-1.)); -#41786=DIRECTION('',(-1.,0.,0.)); -#41787=DIRECTION('',(0.,-1.,0.)); -#41788=DIRECTION('',(0.,0.,-1.)); -#41789=DIRECTION('',(-1.,0.,0.)); -#41790=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); -#41791=DIRECTION('',(0.,0.,-1.)); -#41792=DIRECTION('',(-1.,0.,0.)); -#41793=DIRECTION('',(0.,-1.,0.)); -#41794=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41795=DIRECTION('',(0.,1.,0.)); -#41796=DIRECTION('',(0.,0.,-1.)); -#41797=DIRECTION('',(-1.,0.,0.)); -#41798=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); -#41799=DIRECTION('',(0.,0.,-1.)); -#41800=DIRECTION('',(-1.,0.,0.)); -#41801=DIRECTION('',(0.,1.,0.)); -#41802=DIRECTION('',(0.,0.,-1.)); -#41803=DIRECTION('',(-1.,0.,0.)); -#41804=DIRECTION('',(-1.,0.,0.)); -#41805=DIRECTION('',(0.,0.,-1.)); -#41806=DIRECTION('',(-1.,0.,0.)); -#41807=DIRECTION('',(0.,-1.,0.)); -#41808=DIRECTION('',(0.,0.,-1.)); -#41809=DIRECTION('',(-1.,0.,0.)); -#41810=DIRECTION('',(-0.5,-0.866025403784439,0.)); -#41811=DIRECTION('',(0.,0.,-1.)); -#41812=DIRECTION('',(-1.,0.,0.)); -#41813=DIRECTION('',(0.,-1.,0.)); -#41814=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41815=DIRECTION('',(0.,1.,0.)); -#41816=DIRECTION('',(0.,0.,-1.)); -#41817=DIRECTION('',(-1.,0.,0.)); -#41818=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); -#41819=DIRECTION('',(0.,0.,-1.)); -#41820=DIRECTION('',(-1.,0.,0.)); -#41821=DIRECTION('',(0.,1.,0.)); -#41822=DIRECTION('',(0.,0.,-1.)); -#41823=DIRECTION('',(-1.,0.,0.)); -#41824=DIRECTION('',(-1.,0.,0.)); -#41825=DIRECTION('',(0.,0.,-1.)); -#41826=DIRECTION('',(-1.,0.,0.)); -#41827=DIRECTION('',(0.,-1.,0.)); -#41828=DIRECTION('',(0.,0.,-1.)); -#41829=DIRECTION('',(-1.,0.,0.)); -#41830=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41831=DIRECTION('',(0.,0.,-1.)); -#41832=DIRECTION('',(-1.,0.,0.)); -#41833=DIRECTION('',(0.,-1.,0.)); -#41834=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41835=DIRECTION('',(0.,1.,0.)); -#41836=DIRECTION('',(0.,0.,-1.)); -#41837=DIRECTION('',(-1.,0.,0.)); -#41838=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41839=DIRECTION('',(0.,0.,-1.)); -#41840=DIRECTION('',(-1.,0.,0.)); -#41841=DIRECTION('',(0.,1.,0.)); -#41842=DIRECTION('',(0.,0.,-1.)); -#41843=DIRECTION('',(-1.,0.,0.)); -#41844=DIRECTION('',(-1.,0.,0.)); -#41845=DIRECTION('',(0.,0.,-1.)); -#41846=DIRECTION('',(-1.,0.,0.)); -#41847=DIRECTION('',(0.,-1.,0.)); -#41848=DIRECTION('',(0.,0.,-1.)); -#41849=DIRECTION('',(-1.,0.,0.)); -#41850=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); -#41851=DIRECTION('',(0.,0.,-1.)); -#41852=DIRECTION('',(-1.,0.,0.)); -#41853=DIRECTION('',(0.,-1.,0.)); -#41854=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41855=DIRECTION('',(0.,1.,0.)); -#41856=DIRECTION('',(0.,0.,-1.)); -#41857=DIRECTION('',(-1.,0.,0.)); -#41858=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41859=DIRECTION('',(0.,0.,-1.)); -#41860=DIRECTION('',(-1.,0.,0.)); -#41861=DIRECTION('',(0.,1.,0.)); -#41862=DIRECTION('',(0.,0.,-1.)); -#41863=DIRECTION('',(-1.,0.,0.)); -#41864=DIRECTION('',(-1.,0.,0.)); -#41865=DIRECTION('',(0.,0.,-1.)); -#41866=DIRECTION('',(-1.,0.,0.)); -#41867=DIRECTION('',(0.,-1.,0.)); -#41868=DIRECTION('',(0.,0.,-1.)); -#41869=DIRECTION('',(-1.,0.,0.)); -#41870=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); -#41871=DIRECTION('',(0.,0.,-1.)); -#41872=DIRECTION('',(-1.,0.,0.)); -#41873=DIRECTION('',(0.,-1.,0.)); -#41874=DIRECTION('',(-1.,9.85638338623185E-16,0.)); -#41875=DIRECTION('',(0.,1.,0.)); -#41876=DIRECTION('',(0.,0.,-1.)); -#41877=DIRECTION('',(-1.,0.,0.)); -#41878=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41879=DIRECTION('',(0.,0.,-1.)); -#41880=DIRECTION('',(-1.,0.,0.)); -#41881=DIRECTION('',(0.,1.,0.)); -#41882=DIRECTION('',(0.,0.,-1.)); -#41883=DIRECTION('',(-1.,0.,0.)); -#41884=DIRECTION('',(-1.,0.,0.)); -#41885=DIRECTION('',(0.,0.,-1.)); -#41886=DIRECTION('',(-1.,0.,0.)); -#41887=DIRECTION('',(0.,-1.,0.)); -#41888=DIRECTION('',(0.,0.,-1.)); -#41889=DIRECTION('',(-1.,0.,0.)); -#41890=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41891=DIRECTION('',(0.,0.,-1.)); -#41892=DIRECTION('',(-1.,0.,0.)); -#41893=DIRECTION('',(0.,-1.,0.)); -#41894=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41895=DIRECTION('',(0.,1.,0.)); -#41896=DIRECTION('',(0.,0.,-1.)); -#41897=DIRECTION('',(-1.,0.,0.)); -#41898=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41899=DIRECTION('',(0.,0.,-1.)); -#41900=DIRECTION('',(-1.,0.,0.)); -#41901=DIRECTION('',(0.,1.,0.)); -#41902=DIRECTION('',(0.,0.,-1.)); -#41903=DIRECTION('',(-1.,0.,0.)); -#41904=DIRECTION('',(-1.,0.,0.)); -#41905=DIRECTION('',(0.,0.,-1.)); -#41906=DIRECTION('',(-1.,0.,0.)); -#41907=DIRECTION('',(0.,-1.,0.)); -#41908=DIRECTION('',(0.,0.,-1.)); -#41909=DIRECTION('',(-1.,0.,0.)); -#41910=DIRECTION('',(-0.499999999999995,-0.866025403784442,0.)); -#41911=DIRECTION('',(0.,0.,-1.)); -#41912=DIRECTION('',(-1.,0.,0.)); -#41913=DIRECTION('',(0.,-1.,0.)); -#41914=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41915=DIRECTION('',(0.,1.,0.)); -#41916=DIRECTION('',(0.,0.,-1.)); -#41917=DIRECTION('',(-1.,0.,0.)); -#41918=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41919=DIRECTION('',(0.,0.,-1.)); -#41920=DIRECTION('',(-1.,0.,0.)); -#41921=DIRECTION('',(0.,1.,0.)); -#41922=DIRECTION('',(0.,0.,-1.)); -#41923=DIRECTION('',(-1.,0.,0.)); -#41924=DIRECTION('',(-1.,0.,0.)); -#41925=DIRECTION('',(0.,0.,-1.)); -#41926=DIRECTION('',(-1.,0.,0.)); -#41927=DIRECTION('',(0.,-1.,0.)); -#41928=DIRECTION('',(0.,0.,-1.)); -#41929=DIRECTION('',(-1.,0.,0.)); -#41930=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41931=DIRECTION('',(0.,0.,-1.)); -#41932=DIRECTION('',(-1.,0.,0.)); -#41933=DIRECTION('',(0.,-1.,0.)); -#41934=DIRECTION('',(-1.,9.85638338623187E-16,0.)); -#41935=DIRECTION('',(0.,1.,0.)); -#41936=DIRECTION('',(0.,0.,-1.)); -#41937=DIRECTION('',(-1.,0.,0.)); -#41938=DIRECTION('',(-0.499999999999998,0.86602540378444,0.)); -#41939=DIRECTION('',(0.,0.,-1.)); -#41940=DIRECTION('',(-1.,0.,0.)); -#41941=DIRECTION('',(0.,1.,0.)); -#41942=DIRECTION('',(0.,0.,-1.)); -#41943=DIRECTION('',(-1.,0.,0.)); -#41944=DIRECTION('',(-1.,0.,0.)); -#41945=DIRECTION('',(0.,0.,-1.)); -#41946=DIRECTION('',(-1.,0.,0.)); -#41947=DIRECTION('',(0.,-1.,0.)); -#41948=DIRECTION('',(0.,0.,-1.)); -#41949=DIRECTION('',(-1.,0.,0.)); -#41950=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); -#41951=DIRECTION('',(0.,0.,-1.)); -#41952=DIRECTION('',(-1.,0.,0.)); -#41953=DIRECTION('',(0.,-1.,0.)); -#41954=DIRECTION('',(-1.,9.85638338623183E-16,0.)); -#41955=DIRECTION('',(2.91944582425155E-16,1.,0.)); -#41956=DIRECTION('',(0.,0.,-1.)); -#41957=DIRECTION('',(-1.,0.,0.)); -#41958=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); -#41959=DIRECTION('',(0.,0.,-1.)); -#41960=DIRECTION('',(-1.,0.,0.)); -#41961=DIRECTION('',(0.,1.,0.)); -#41962=DIRECTION('',(0.,0.,-1.)); -#41963=DIRECTION('',(-1.,0.,0.)); -#41964=DIRECTION('',(-1.,0.,0.)); -#41965=DIRECTION('',(0.,0.,-1.)); -#41966=DIRECTION('',(-1.,0.,0.)); -#41967=DIRECTION('',(0.,-1.,0.)); -#41968=DIRECTION('',(0.,0.,-1.)); -#41969=DIRECTION('',(-1.,0.,0.)); -#41970=DIRECTION('',(-0.500000000000009,-0.866025403784433,0.)); -#41971=DIRECTION('',(0.,0.,-1.)); -#41972=DIRECTION('',(-1.,0.,0.)); -#41973=DIRECTION('',(0.,-1.,0.)); -#41974=DIRECTION('',(1.,0.,0.)); -#41975=DIRECTION('',(0.,-1.,0.)); -#41976=DIRECTION('',(1.,0.,0.)); -#41977=DIRECTION('',(0.,0.,-1.)); -#41978=DIRECTION('',(0.,0.,-1.)); -#41979=DIRECTION('',(0.,0.,1.)); -#41980=DIRECTION('',(1.,0.,0.)); -#41981=DIRECTION('',(0.,0.,-1.)); -#41982=DIRECTION('',(0.,0.,-1.)); -#41983=DIRECTION('',(0.,0.,1.)); -#41984=DIRECTION('',(-1.,0.,0.)); -#41985=DIRECTION('',(0.,0.,1.)); -#41986=DIRECTION('',(0.,0.,1.)); -#41987=DIRECTION('',(0.,0.,-1.)); -#41988=DIRECTION('',(-1.,0.,0.)); -#41989=DIRECTION('',(0.,0.,1.)); -#41990=DIRECTION('',(0.,0.,1.)); -#41991=DIRECTION('',(0.,0.,-1.)); -#41992=DIRECTION('',(0.,-1.,0.)); -#41993=DIRECTION('',(0.,0.,-1.)); -#41994=DIRECTION('',(0.,0.,-1.)); -#41995=DIRECTION('',(0.,0.,-1.)); -#41996=DIRECTION('',(0.,-1.,0.)); -#41997=DIRECTION('',(0.,0.,-1.)); -#41998=DIRECTION('',(0.,0.,-1.)); -#41999=DIRECTION('',(0.,0.,-1.)); -#42000=DIRECTION('',(0.,-1.,0.)); -#42001=DIRECTION('',(0.,0.,-1.)); -#42002=DIRECTION('',(0.,0.,-1.)); -#42003=DIRECTION('',(0.,0.,-1.)); -#42004=DIRECTION('',(0.,-1.,0.)); -#42005=DIRECTION('',(0.,0.,-1.)); -#42006=DIRECTION('',(0.,0.,-1.)); -#42007=DIRECTION('',(0.,0.,-1.)); -#42008=DIRECTION('',(0.,-1.,0.)); -#42009=DIRECTION('',(0.,0.,-1.)); -#42010=DIRECTION('',(0.,0.,-1.)); -#42011=DIRECTION('',(0.,0.,-1.)); -#42012=DIRECTION('',(0.,-1.,0.)); -#42013=DIRECTION('',(0.,0.,-1.)); -#42014=DIRECTION('',(0.,0.,-1.)); -#42015=DIRECTION('',(0.,0.,-1.)); -#42016=DIRECTION('',(0.,-1.,0.)); -#42017=DIRECTION('',(0.,0.,-1.)); -#42018=DIRECTION('',(0.,0.,-1.)); -#42019=DIRECTION('',(0.,0.,-1.)); -#42020=DIRECTION('',(0.,-1.,0.)); -#42021=DIRECTION('',(0.,0.,-1.)); -#42022=DIRECTION('',(0.,0.,-1.)); -#42023=DIRECTION('',(0.,0.,-1.)); -#42024=DIRECTION('',(0.,-1.,0.)); -#42025=DIRECTION('',(0.,0.,-1.)); -#42026=DIRECTION('',(0.,0.,-1.)); -#42027=DIRECTION('',(0.,0.,-1.)); -#42028=DIRECTION('',(0.,-1.,0.)); -#42029=DIRECTION('',(0.,0.,-1.)); -#42030=DIRECTION('',(0.,0.,-1.)); -#42031=DIRECTION('',(0.,0.,-1.)); -#42032=DIRECTION('',(0.,-1.,0.)); -#42033=DIRECTION('',(0.,0.,-1.)); -#42034=DIRECTION('',(0.,0.,-1.)); -#42035=DIRECTION('',(0.,0.,-1.)); -#42036=DIRECTION('',(0.,-1.,0.)); -#42037=DIRECTION('',(0.,0.,-1.)); -#42038=DIRECTION('',(0.,0.,-1.)); -#42039=DIRECTION('',(0.,0.,-1.)); -#42040=DIRECTION('',(0.,-1.,0.)); -#42041=DIRECTION('',(0.,0.,-1.)); -#42042=DIRECTION('',(0.,0.,-1.)); -#42043=DIRECTION('',(0.,0.,-1.)); -#42044=DIRECTION('',(0.,-1.,0.)); -#42045=DIRECTION('',(0.,0.,-1.)); -#42046=DIRECTION('',(0.,0.,-1.)); -#42047=DIRECTION('',(0.,0.,-1.)); -#42048=DIRECTION('',(0.,-1.,0.)); -#42049=DIRECTION('',(0.,0.,-1.)); -#42050=DIRECTION('',(0.,0.,-1.)); -#42051=DIRECTION('',(0.,0.,-1.)); -#42052=DIRECTION('',(0.,-1.,0.)); -#42053=DIRECTION('',(0.,0.,-1.)); -#42054=DIRECTION('',(0.,0.,-1.)); -#42055=DIRECTION('',(0.,0.,-1.)); -#42056=DIRECTION('',(0.,-1.,0.)); -#42057=DIRECTION('',(0.,0.,-1.)); -#42058=DIRECTION('',(0.,0.,-1.)); -#42059=DIRECTION('',(0.,0.,-1.)); -#42060=DIRECTION('',(0.,-1.,0.)); -#42061=DIRECTION('',(0.,0.,-1.)); -#42062=DIRECTION('',(0.,0.,-1.)); -#42063=DIRECTION('',(0.,0.,-1.)); -#42064=DIRECTION('',(0.,-1.,0.)); -#42065=DIRECTION('',(0.,0.,-1.)); -#42066=DIRECTION('',(0.,0.,-1.)); -#42067=DIRECTION('',(0.,0.,-1.)); -#42068=DIRECTION('',(0.,-1.,0.)); -#42069=DIRECTION('',(0.,0.,-1.)); -#42070=DIRECTION('',(0.,0.,-1.)); -#42071=DIRECTION('',(0.,0.,-1.)); -#42072=DIRECTION('',(0.,-1.,0.)); -#42073=DIRECTION('',(0.,0.,-1.)); -#42074=DIRECTION('',(0.,0.,-1.)); -#42075=DIRECTION('',(0.,0.,-1.)); -#42076=DIRECTION('',(0.,-1.,0.)); -#42077=DIRECTION('',(0.,0.,-1.)); -#42078=DIRECTION('',(0.,0.,-1.)); -#42079=DIRECTION('',(0.,0.,-1.)); -#42080=DIRECTION('',(0.,-1.,0.)); -#42081=DIRECTION('',(0.,0.,-1.)); -#42082=DIRECTION('',(0.,0.,-1.)); -#42083=DIRECTION('',(0.,0.,-1.)); -#42084=DIRECTION('',(0.,-1.,0.)); -#42085=DIRECTION('',(0.,0.,-1.)); -#42086=DIRECTION('',(0.,0.,-1.)); -#42087=DIRECTION('',(0.,0.,-1.)); -#42088=DIRECTION('',(0.,-1.,0.)); -#42089=DIRECTION('',(0.,0.,-1.)); -#42090=DIRECTION('',(0.,0.,-1.)); -#42091=DIRECTION('',(0.,0.,-1.)); -#42092=DIRECTION('',(0.,-1.,0.)); -#42093=DIRECTION('',(0.,0.,-1.)); -#42094=DIRECTION('',(0.,0.,-1.)); -#42095=DIRECTION('',(0.,0.,-1.)); -#42096=DIRECTION('',(0.,-1.,0.)); -#42097=DIRECTION('',(0.,0.,-1.)); -#42098=DIRECTION('',(0.,0.,-1.)); -#42099=DIRECTION('',(0.,0.,-1.)); -#42100=DIRECTION('',(0.,-1.,0.)); -#42101=DIRECTION('',(0.,0.,-1.)); -#42102=DIRECTION('',(0.,0.,-1.)); -#42103=DIRECTION('',(0.,0.,-1.)); -#42104=DIRECTION('',(0.,-1.,0.)); -#42105=DIRECTION('',(0.,0.,-1.)); -#42106=DIRECTION('',(0.,0.,-1.)); -#42107=DIRECTION('',(0.,0.,-1.)); -#42108=DIRECTION('',(0.,-1.,0.)); -#42109=DIRECTION('',(0.,0.,-1.)); -#42110=DIRECTION('',(0.,0.,-1.)); -#42111=DIRECTION('',(0.,0.,-1.)); -#42112=DIRECTION('',(0.,-1.,0.)); -#42113=DIRECTION('',(0.,0.,-1.)); -#42114=DIRECTION('',(0.,0.,-1.)); -#42115=DIRECTION('',(0.,0.,-1.)); -#42116=DIRECTION('',(0.,-1.,0.)); -#42117=DIRECTION('',(0.,0.,-1.)); -#42118=DIRECTION('',(0.,0.,-1.)); -#42119=DIRECTION('',(0.,0.,-1.)); -#42120=DIRECTION('',(0.,-1.,0.)); -#42121=DIRECTION('',(0.,0.,-1.)); -#42122=DIRECTION('',(0.,0.,-1.)); -#42123=DIRECTION('',(0.,0.,-1.)); -#42124=DIRECTION('',(0.,-1.,0.)); -#42125=DIRECTION('',(0.,0.,-1.)); -#42126=DIRECTION('',(0.,0.,-1.)); -#42127=DIRECTION('',(0.,0.,-1.)); -#42128=DIRECTION('',(0.,-1.,0.)); -#42129=DIRECTION('',(0.,0.,-1.)); -#42130=DIRECTION('',(0.,0.,-1.)); -#42131=DIRECTION('',(0.,0.,-1.)); -#42132=DIRECTION('',(0.,-1.,0.)); -#42133=DIRECTION('',(0.,0.,-1.)); -#42134=DIRECTION('',(0.,0.,-1.)); -#42135=DIRECTION('',(0.,0.,-1.)); -#42136=DIRECTION('',(0.,-1.,0.)); -#42137=DIRECTION('',(0.,0.,-1.)); -#42138=DIRECTION('',(0.,0.,-1.)); -#42139=DIRECTION('',(0.,0.,-1.)); -#42140=DIRECTION('',(0.,-1.,0.)); -#42141=DIRECTION('',(0.,0.,-1.)); -#42142=DIRECTION('',(0.,0.,-1.)); -#42143=DIRECTION('',(0.,0.,-1.)); -#42144=DIRECTION('',(1.,0.,0.)); -#42145=DIRECTION('',(0.,0.,-1.)); -#42146=DIRECTION('',(0.,0.,1.)); -#42147=DIRECTION('',(0.,0.,-1.)); -#42148=DIRECTION('',(1.,0.,0.)); -#42149=DIRECTION('',(0.,0.,-1.)); -#42150=DIRECTION('',(0.,0.,1.)); -#42151=DIRECTION('',(0.,0.,-1.)); -#42152=DIRECTION('',(-1.,0.,0.)); -#42153=DIRECTION('',(0.,0.,1.)); -#42154=DIRECTION('',(1.,0.,0.)); -#42155=DIRECTION('',(0.,0.,-1.)); -#42156=DIRECTION('',(-1.,0.,0.)); -#42157=DIRECTION('',(-1.,0.,0.)); -#42158=DIRECTION('',(0.,0.,1.)); -#42159=DIRECTION('',(-1.,0.,0.)); -#42160=DIRECTION('',(0.,0.,1.)); -#42161=DIRECTION('',(1.,0.,0.)); -#42162=DIRECTION('',(0.,0.,-1.)); -#42163=DIRECTION('',(-1.,0.,0.)); -#42164=DIRECTION('',(-1.,0.,0.)); -#42165=DIRECTION('',(0.,0.,1.)); -#42166=DIRECTION('',(-1.,0.,0.)); -#42167=DIRECTION('',(0.,0.,1.)); -#42168=DIRECTION('',(1.,0.,0.)); -#42169=DIRECTION('',(0.,0.,-1.)); -#42170=DIRECTION('',(-1.,0.,0.)); -#42171=DIRECTION('',(-1.,0.,0.)); -#42172=DIRECTION('',(0.,0.,1.)); -#42173=DIRECTION('',(-1.,0.,0.)); -#42174=DIRECTION('',(0.,0.,1.)); -#42175=DIRECTION('',(1.,0.,0.)); -#42176=DIRECTION('',(0.,0.,-1.)); -#42177=DIRECTION('',(-1.,0.,0.)); -#42178=DIRECTION('',(-1.,0.,0.)); -#42179=DIRECTION('',(0.,0.,1.)); -#42180=DIRECTION('',(-1.,0.,0.)); -#42181=DIRECTION('',(0.,0.,1.)); -#42182=DIRECTION('',(1.,0.,0.)); -#42183=DIRECTION('',(0.,0.,-1.)); -#42184=DIRECTION('',(-1.,0.,0.)); -#42185=DIRECTION('',(-1.,0.,0.)); -#42186=DIRECTION('',(0.,0.,1.)); -#42187=DIRECTION('',(-1.,0.,0.)); -#42188=DIRECTION('',(0.,0.,1.)); -#42189=DIRECTION('',(1.,0.,0.)); -#42190=DIRECTION('',(0.,0.,-1.)); -#42191=DIRECTION('',(-1.,0.,0.)); -#42192=DIRECTION('',(-1.,0.,0.)); -#42193=DIRECTION('',(0.,0.,1.)); -#42194=DIRECTION('',(-1.,0.,0.)); -#42195=DIRECTION('',(0.,0.,1.)); -#42196=DIRECTION('',(1.,0.,0.)); -#42197=DIRECTION('',(0.,0.,-1.)); -#42198=DIRECTION('',(-1.,0.,0.)); -#42199=DIRECTION('',(-1.,0.,0.)); -#42200=DIRECTION('',(0.,0.,1.)); -#42201=DIRECTION('',(-1.,0.,0.)); -#42202=DIRECTION('',(0.,0.,1.)); -#42203=DIRECTION('',(1.,0.,0.)); -#42204=DIRECTION('',(0.,0.,-1.)); -#42205=DIRECTION('',(-1.,0.,0.)); -#42206=DIRECTION('',(-1.,0.,0.)); -#42207=DIRECTION('',(0.,0.,1.)); -#42208=DIRECTION('',(-1.,0.,0.)); -#42209=DIRECTION('',(0.,0.,1.)); -#42210=DIRECTION('',(1.,0.,0.)); -#42211=DIRECTION('',(0.,0.,-1.)); -#42212=DIRECTION('',(-1.,0.,0.)); -#42213=DIRECTION('',(-1.,0.,0.)); -#42214=DIRECTION('',(0.,0.,1.)); -#42215=DIRECTION('',(-1.,0.,0.)); -#42216=DIRECTION('',(0.,0.,1.)); -#42217=DIRECTION('',(1.,0.,0.)); -#42218=DIRECTION('',(0.,0.,-1.)); -#42219=DIRECTION('',(-1.,0.,0.)); -#42220=DIRECTION('',(-1.,0.,0.)); -#42221=DIRECTION('',(0.,0.,1.)); -#42222=DIRECTION('',(-1.,0.,0.)); -#42223=DIRECTION('',(0.,0.,1.)); -#42224=DIRECTION('',(1.,0.,0.)); -#42225=DIRECTION('',(0.,0.,-1.)); -#42226=DIRECTION('',(-1.,0.,0.)); -#42227=DIRECTION('',(-1.,0.,0.)); -#42228=DIRECTION('',(0.,0.,1.)); -#42229=DIRECTION('',(-1.,0.,0.)); -#42230=DIRECTION('',(0.,0.,1.)); -#42231=DIRECTION('',(1.,0.,0.)); -#42232=DIRECTION('',(0.,0.,-1.)); -#42233=DIRECTION('',(-1.,0.,0.)); -#42234=DIRECTION('',(-1.,0.,0.)); -#42235=DIRECTION('',(0.,0.,1.)); -#42236=DIRECTION('',(-1.,0.,0.)); -#42237=DIRECTION('',(0.,0.,1.)); -#42238=DIRECTION('',(1.,0.,0.)); -#42239=DIRECTION('',(0.,0.,-1.)); -#42240=DIRECTION('',(-1.,0.,0.)); -#42241=DIRECTION('',(-1.,0.,0.)); -#42242=DIRECTION('',(0.,0.,1.)); -#42243=DIRECTION('',(-1.,0.,0.)); -#42244=DIRECTION('',(0.,0.,1.)); -#42245=DIRECTION('',(1.,0.,0.)); -#42246=DIRECTION('',(0.,0.,-1.)); -#42247=DIRECTION('',(-1.,0.,0.)); -#42248=DIRECTION('',(-1.,0.,0.)); -#42249=DIRECTION('',(0.,0.,1.)); -#42250=DIRECTION('',(-1.,0.,0.)); -#42251=DIRECTION('',(0.,0.,1.)); -#42252=DIRECTION('',(1.,0.,0.)); -#42253=DIRECTION('',(0.,0.,-1.)); -#42254=DIRECTION('',(-1.,0.,0.)); -#42255=DIRECTION('',(-1.,0.,0.)); -#42256=DIRECTION('',(0.,0.,1.)); -#42257=DIRECTION('',(-1.,0.,0.)); -#42258=DIRECTION('',(0.,0.,1.)); -#42259=DIRECTION('',(1.,0.,0.)); -#42260=DIRECTION('',(0.,0.,-1.)); -#42261=DIRECTION('',(-1.,0.,0.)); -#42262=DIRECTION('',(-1.,0.,0.)); -#42263=DIRECTION('',(0.,0.,1.)); -#42264=DIRECTION('',(-1.,0.,0.)); -#42265=DIRECTION('',(0.,0.,1.)); -#42266=DIRECTION('',(1.,0.,0.)); -#42267=DIRECTION('',(0.,0.,-1.)); -#42268=DIRECTION('',(-1.,0.,0.)); -#42269=DIRECTION('',(-1.,0.,0.)); -#42270=DIRECTION('',(0.,0.,1.)); -#42271=DIRECTION('',(-1.,0.,0.)); -#42272=DIRECTION('',(0.,0.,1.)); -#42273=DIRECTION('',(1.,0.,0.)); -#42274=DIRECTION('',(0.,0.,-1.)); -#42275=DIRECTION('',(-1.,0.,0.)); -#42276=DIRECTION('',(-1.,0.,0.)); -#42277=DIRECTION('',(0.,0.,1.)); -#42278=DIRECTION('',(-1.,0.,0.)); -#42279=DIRECTION('',(0.,0.,1.)); -#42280=DIRECTION('',(1.,0.,0.)); -#42281=DIRECTION('',(0.,0.,-1.)); -#42282=DIRECTION('',(-1.,0.,0.)); -#42283=DIRECTION('',(-1.,0.,0.)); -#42284=DIRECTION('',(0.,0.,1.)); -#42285=DIRECTION('',(-1.,0.,0.)); -#42286=DIRECTION('',(0.,0.,1.)); -#42287=DIRECTION('',(1.,0.,0.)); -#42288=DIRECTION('',(0.,0.,-1.)); -#42289=DIRECTION('',(-1.,0.,0.)); -#42290=DIRECTION('',(-1.,0.,0.)); -#42291=DIRECTION('',(0.,0.,1.)); -#42292=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42293=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42294=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42295=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42296=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42297=DIRECTION('',(-1.,0.,0.)); -#42298=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42299=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42300=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42301=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42302=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42303=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42304=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42305=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42306=DIRECTION('',(-1.,0.,0.)); -#42307=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42308=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42309=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42310=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42311=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42312=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42313=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42314=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42315=DIRECTION('',(-1.,0.,0.)); -#42316=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42317=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42318=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42319=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42320=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42321=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42322=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42323=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42324=DIRECTION('',(-1.,0.,0.)); -#42325=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42326=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42327=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42328=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42329=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42330=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42331=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42332=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42333=DIRECTION('',(-1.,0.,0.)); -#42334=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42335=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42336=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42337=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42338=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42339=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42340=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42341=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42342=DIRECTION('',(-1.,0.,0.)); -#42343=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42344=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42345=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42346=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42347=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42348=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42349=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42350=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42351=DIRECTION('',(-1.,0.,0.)); -#42352=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42353=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42354=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42355=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42356=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42357=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42358=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42359=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42360=DIRECTION('',(-1.,0.,0.)); -#42361=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42362=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42363=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42364=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42365=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42366=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42367=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42368=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42369=DIRECTION('',(-1.,0.,0.)); -#42370=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42371=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42372=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42373=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42374=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42375=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42376=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42377=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42378=DIRECTION('',(-1.,0.,0.)); -#42379=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42380=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42381=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42382=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42383=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42384=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42385=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42386=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42387=DIRECTION('',(-1.,0.,0.)); -#42388=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42389=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42390=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42391=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42392=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42393=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42394=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42395=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42396=DIRECTION('',(-1.,0.,0.)); -#42397=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42398=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42399=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42400=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42401=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42402=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42403=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42404=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42405=DIRECTION('',(-1.,0.,0.)); -#42406=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42407=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42408=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42409=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42410=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42411=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42412=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42413=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42414=DIRECTION('',(-1.,0.,0.)); -#42415=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42416=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42417=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42418=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42419=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42420=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42421=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42422=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42423=DIRECTION('',(-1.,0.,0.)); -#42424=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42425=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42426=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42427=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42428=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42429=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42430=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42431=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42432=DIRECTION('',(-1.,0.,0.)); -#42433=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42434=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42435=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42436=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42437=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42438=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42439=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42440=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42441=DIRECTION('',(-1.,0.,0.)); -#42442=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42443=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42444=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42445=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42446=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42447=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42448=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42449=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42450=DIRECTION('',(-1.,0.,0.)); -#42451=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42452=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42453=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42454=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42455=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42456=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42457=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42458=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#42459=DIRECTION('',(-1.,0.,0.)); -#42460=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42461=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#42462=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#42463=DIRECTION('',(-1.,0.,0.)); -#42464=DIRECTION('',(0.,0.,1.)); -#42465=DIRECTION('',(1.,0.,0.)); -#42466=DIRECTION('',(0.,0.,-1.)); -#42467=DIRECTION('',(-1.,0.,0.)); -#42468=DIRECTION('',(0.,0.,1.)); -#42469=DIRECTION('',(-1.,0.,0.)); -#42470=DIRECTION('',(0.,0.,1.)); -#42471=DIRECTION('',(1.,0.,0.)); -#42472=DIRECTION('',(0.,0.,-1.)); -#42473=DIRECTION('',(-1.,0.,0.)); -#42474=DIRECTION('',(0.,0.,1.)); -#42475=DIRECTION('',(-1.,0.,0.)); -#42476=DIRECTION('',(0.,0.,1.)); -#42477=DIRECTION('',(1.,0.,0.)); -#42478=DIRECTION('',(0.,0.,-1.)); -#42479=DIRECTION('',(-1.,0.,0.)); -#42480=DIRECTION('',(0.,0.,1.)); -#42481=DIRECTION('',(-1.,0.,0.)); -#42482=DIRECTION('',(0.,0.,1.)); -#42483=DIRECTION('',(1.,0.,0.)); -#42484=DIRECTION('',(0.,0.,-1.)); -#42485=DIRECTION('',(-1.,0.,0.)); -#42486=DIRECTION('',(0.,0.,1.)); -#42487=DIRECTION('',(-1.,0.,0.)); -#42488=DIRECTION('',(0.,0.,1.)); -#42489=DIRECTION('',(1.,0.,0.)); -#42490=DIRECTION('',(0.,0.,-1.)); -#42491=DIRECTION('',(-1.,0.,0.)); -#42492=DIRECTION('',(0.,0.,1.)); -#42493=DIRECTION('',(-1.,0.,0.)); -#42494=DIRECTION('',(0.,0.,1.)); -#42495=DIRECTION('',(1.,0.,0.)); -#42496=DIRECTION('',(0.,0.,-1.)); -#42497=DIRECTION('',(-1.,0.,0.)); -#42498=DIRECTION('',(0.,0.,1.)); -#42499=DIRECTION('',(-1.,0.,0.)); -#42500=DIRECTION('',(0.,0.,1.)); -#42501=DIRECTION('',(1.,0.,0.)); -#42502=DIRECTION('',(0.,0.,-1.)); -#42503=DIRECTION('',(-1.,0.,0.)); -#42504=DIRECTION('',(0.,0.,1.)); -#42505=DIRECTION('',(-1.,0.,0.)); -#42506=DIRECTION('',(0.,0.,1.)); -#42507=DIRECTION('',(1.,0.,0.)); -#42508=DIRECTION('',(0.,0.,-1.)); -#42509=DIRECTION('',(-1.,0.,0.)); -#42510=DIRECTION('',(0.,0.,1.)); -#42511=DIRECTION('',(-1.,0.,0.)); -#42512=DIRECTION('',(0.,0.,1.)); -#42513=DIRECTION('',(1.,0.,0.)); -#42514=DIRECTION('',(0.,0.,-1.)); -#42515=DIRECTION('',(-1.,0.,0.)); -#42516=DIRECTION('',(0.,0.,1.)); -#42517=DIRECTION('',(-1.,0.,0.)); -#42518=DIRECTION('',(0.,0.,1.)); -#42519=DIRECTION('',(1.,0.,0.)); -#42520=DIRECTION('',(0.,0.,-1.)); -#42521=DIRECTION('',(-1.,0.,0.)); -#42522=DIRECTION('',(0.,0.,1.)); -#42523=DIRECTION('',(-1.,0.,0.)); -#42524=DIRECTION('',(0.,0.,1.)); -#42525=DIRECTION('',(1.,0.,0.)); -#42526=DIRECTION('',(0.,0.,-1.)); -#42527=DIRECTION('',(-1.,0.,0.)); -#42528=DIRECTION('',(0.,0.,1.)); -#42529=DIRECTION('',(-1.,0.,0.)); -#42530=DIRECTION('',(0.,0.,1.)); -#42531=DIRECTION('',(1.,0.,0.)); -#42532=DIRECTION('',(0.,0.,-1.)); -#42533=DIRECTION('',(-1.,0.,0.)); -#42534=DIRECTION('',(0.,0.,1.)); -#42535=DIRECTION('',(-1.,0.,0.)); -#42536=DIRECTION('',(0.,0.,1.)); -#42537=DIRECTION('',(1.,0.,0.)); -#42538=DIRECTION('',(0.,0.,-1.)); -#42539=DIRECTION('',(-1.,0.,0.)); -#42540=DIRECTION('',(0.,0.,1.)); -#42541=DIRECTION('',(-1.,0.,0.)); -#42542=DIRECTION('',(0.,0.,1.)); -#42543=DIRECTION('',(1.,0.,0.)); -#42544=DIRECTION('',(0.,0.,-1.)); -#42545=DIRECTION('',(-1.,0.,0.)); -#42546=DIRECTION('',(0.,0.,1.)); -#42547=DIRECTION('',(-1.,0.,0.)); -#42548=DIRECTION('',(0.,0.,1.)); -#42549=DIRECTION('',(1.,0.,0.)); -#42550=DIRECTION('',(0.,0.,-1.)); -#42551=DIRECTION('',(-1.,0.,0.)); -#42552=DIRECTION('',(0.,0.,1.)); -#42553=DIRECTION('',(-1.,0.,0.)); -#42554=DIRECTION('',(0.,0.,1.)); -#42555=DIRECTION('',(1.,0.,0.)); -#42556=DIRECTION('',(0.,0.,-1.)); -#42557=DIRECTION('',(-1.,0.,0.)); -#42558=DIRECTION('',(0.,0.,1.)); -#42559=DIRECTION('',(-1.,0.,0.)); -#42560=DIRECTION('',(0.,0.,1.)); -#42561=DIRECTION('',(1.,0.,0.)); -#42562=DIRECTION('',(0.,0.,-1.)); -#42563=DIRECTION('',(-1.,0.,0.)); -#42564=DIRECTION('',(0.,0.,1.)); -#42565=DIRECTION('',(-1.,0.,0.)); -#42566=DIRECTION('',(0.,0.,1.)); -#42567=DIRECTION('',(1.,0.,0.)); -#42568=DIRECTION('',(0.,0.,-1.)); -#42569=DIRECTION('',(-1.,0.,0.)); -#42570=DIRECTION('',(0.,0.,1.)); -#42571=DIRECTION('',(-1.,0.,0.)); -#42572=DIRECTION('',(0.,0.,1.)); -#42573=DIRECTION('',(1.,0.,0.)); -#42574=DIRECTION('',(0.,0.,-1.)); -#42575=DIRECTION('',(-1.,0.,0.)); -#42576=DIRECTION('',(0.,0.,1.)); -#42577=DIRECTION('',(-1.,0.,0.)); -#42578=DIRECTION('',(0.,0.,1.)); -#42579=DIRECTION('',(1.,0.,0.)); -#42580=DIRECTION('',(0.,0.,-1.)); -#42581=DIRECTION('',(-1.,0.,0.)); -#42582=DIRECTION('',(0.,0.,1.)); -#42583=DIRECTION('',(-1.,0.,0.)); -#42584=DIRECTION('',(-1.,0.,0.)); -#42585=DIRECTION('',(0.,0.,1.)); -#42586=DIRECTION('',(1.,0.,0.)); -#42587=DIRECTION('',(0.,0.,-1.)); -#42588=DIRECTION('',(-1.,0.,0.)); -#42589=DIRECTION('',(-1.,0.,0.)); -#42590=DIRECTION('',(0.,0.,1.)); -#42591=DIRECTION('',(-1.,0.,0.)); -#42592=DIRECTION('',(0.,0.,1.)); -#42593=DIRECTION('',(1.,0.,0.)); -#42594=DIRECTION('',(0.,0.,-1.)); -#42595=DIRECTION('',(-1.,0.,0.)); -#42596=DIRECTION('',(-1.,0.,0.)); -#42597=DIRECTION('',(0.,0.,1.)); -#42598=DIRECTION('',(-1.,0.,0.)); -#42599=DIRECTION('',(0.,0.,1.)); -#42600=DIRECTION('',(1.,0.,0.)); -#42601=DIRECTION('',(0.,0.,-1.)); -#42602=DIRECTION('',(-1.,0.,0.)); -#42603=DIRECTION('',(-1.,0.,0.)); -#42604=DIRECTION('',(0.,0.,1.)); -#42605=DIRECTION('',(-1.,0.,0.)); -#42606=DIRECTION('',(0.,0.,1.)); -#42607=DIRECTION('',(1.,0.,0.)); -#42608=DIRECTION('',(0.,0.,-1.)); -#42609=DIRECTION('',(-1.,0.,0.)); -#42610=DIRECTION('',(-1.,0.,0.)); -#42611=DIRECTION('',(0.,0.,1.)); -#42612=DIRECTION('',(-1.,0.,0.)); -#42613=DIRECTION('',(0.,0.,1.)); -#42614=DIRECTION('',(1.,0.,0.)); -#42615=DIRECTION('',(0.,0.,-1.)); -#42616=DIRECTION('',(-1.,0.,0.)); -#42617=DIRECTION('',(-1.,0.,0.)); -#42618=DIRECTION('',(0.,0.,1.)); -#42619=DIRECTION('',(-1.,0.,0.)); -#42620=DIRECTION('',(0.,0.,1.)); -#42621=DIRECTION('',(1.,0.,0.)); -#42622=DIRECTION('',(0.,0.,-1.)); -#42623=DIRECTION('',(-1.,0.,0.)); -#42624=DIRECTION('',(-1.,0.,0.)); -#42625=DIRECTION('',(0.,0.,1.)); -#42626=DIRECTION('',(-1.,0.,0.)); -#42627=DIRECTION('',(0.,0.,1.)); -#42628=DIRECTION('',(1.,0.,0.)); -#42629=DIRECTION('',(0.,0.,-1.)); -#42630=DIRECTION('',(-1.,0.,0.)); -#42631=DIRECTION('',(-1.,0.,0.)); -#42632=DIRECTION('',(0.,0.,1.)); -#42633=DIRECTION('',(-1.,0.,0.)); -#42634=DIRECTION('',(0.,0.,1.)); -#42635=DIRECTION('',(1.,0.,0.)); -#42636=DIRECTION('',(0.,0.,-1.)); -#42637=DIRECTION('',(-1.,0.,0.)); -#42638=DIRECTION('',(-1.,0.,0.)); -#42639=DIRECTION('',(0.,0.,1.)); -#42640=DIRECTION('',(-1.,0.,0.)); -#42641=DIRECTION('',(0.,0.,1.)); -#42642=DIRECTION('',(1.,0.,0.)); -#42643=DIRECTION('',(0.,0.,-1.)); -#42644=DIRECTION('',(-1.,0.,0.)); -#42645=DIRECTION('',(-1.,0.,0.)); -#42646=DIRECTION('',(0.,0.,1.)); -#42647=DIRECTION('',(-1.,0.,0.)); -#42648=DIRECTION('',(0.,0.,1.)); -#42649=DIRECTION('',(1.,0.,0.)); -#42650=DIRECTION('',(0.,0.,-1.)); -#42651=DIRECTION('',(-1.,0.,0.)); -#42652=DIRECTION('',(-1.,0.,0.)); -#42653=DIRECTION('',(0.,0.,1.)); -#42654=DIRECTION('',(-1.,0.,0.)); -#42655=DIRECTION('',(0.,0.,1.)); -#42656=DIRECTION('',(1.,0.,0.)); -#42657=DIRECTION('',(0.,0.,-1.)); -#42658=DIRECTION('',(-1.,0.,0.)); -#42659=DIRECTION('',(-1.,0.,0.)); -#42660=DIRECTION('',(0.,0.,1.)); -#42661=DIRECTION('',(-1.,0.,0.)); -#42662=DIRECTION('',(0.,0.,1.)); -#42663=DIRECTION('',(1.,0.,0.)); -#42664=DIRECTION('',(0.,0.,-1.)); -#42665=DIRECTION('',(-1.,0.,0.)); -#42666=DIRECTION('',(-1.,0.,0.)); -#42667=DIRECTION('',(0.,0.,1.)); -#42668=DIRECTION('',(-1.,0.,0.)); -#42669=DIRECTION('',(0.,0.,1.)); -#42670=DIRECTION('',(1.,0.,0.)); -#42671=DIRECTION('',(0.,0.,-1.)); -#42672=DIRECTION('',(-1.,0.,0.)); -#42673=DIRECTION('',(-1.,0.,0.)); -#42674=DIRECTION('',(0.,0.,1.)); -#42675=DIRECTION('',(-1.,0.,0.)); -#42676=DIRECTION('',(0.,0.,1.)); -#42677=DIRECTION('',(1.,0.,0.)); -#42678=DIRECTION('',(0.,0.,-1.)); -#42679=DIRECTION('',(-1.,0.,0.)); -#42680=DIRECTION('',(-1.,0.,0.)); -#42681=DIRECTION('',(0.,0.,1.)); -#42682=DIRECTION('',(-1.,0.,0.)); -#42683=DIRECTION('',(0.,0.,1.)); -#42684=DIRECTION('',(1.,0.,0.)); -#42685=DIRECTION('',(0.,0.,-1.)); -#42686=DIRECTION('',(-1.,0.,0.)); -#42687=DIRECTION('',(-1.,0.,0.)); -#42688=DIRECTION('',(0.,0.,1.)); -#42689=DIRECTION('',(-1.,0.,0.)); -#42690=DIRECTION('',(0.,0.,1.)); -#42691=DIRECTION('',(1.,0.,0.)); -#42692=DIRECTION('',(0.,0.,-1.)); -#42693=DIRECTION('',(-1.,0.,0.)); -#42694=DIRECTION('',(-1.,0.,0.)); -#42695=DIRECTION('',(0.,0.,1.)); -#42696=DIRECTION('',(-1.,0.,0.)); -#42697=DIRECTION('',(0.,0.,1.)); -#42698=DIRECTION('',(1.,0.,0.)); -#42699=DIRECTION('',(0.,0.,-1.)); -#42700=DIRECTION('',(-1.,0.,0.)); -#42701=DIRECTION('',(-1.,0.,0.)); -#42702=DIRECTION('',(0.,0.,1.)); -#42703=DIRECTION('',(-1.,0.,0.)); -#42704=DIRECTION('',(0.,0.,1.)); -#42705=DIRECTION('',(1.,0.,0.)); -#42706=DIRECTION('',(0.,0.,-1.)); -#42707=DIRECTION('',(-1.,0.,0.)); -#42708=DIRECTION('',(-1.,0.,0.)); -#42709=DIRECTION('',(0.,0.,1.)); -#42710=DIRECTION('',(-1.,0.,0.)); -#42711=DIRECTION('',(0.,0.,1.)); -#42712=DIRECTION('',(1.,0.,0.)); -#42713=DIRECTION('',(0.,0.,-1.)); -#42714=DIRECTION('',(-1.,0.,0.)); -#42715=DIRECTION('',(-1.,0.,0.)); -#42716=DIRECTION('',(0.,0.,1.)); -#42717=DIRECTION('',(-1.,0.,0.)); -#42718=DIRECTION('',(0.,0.,1.)); -#42719=DIRECTION('',(1.,0.,0.)); -#42720=DIRECTION('',(0.,0.,-1.)); -#42721=DIRECTION('',(-1.,0.,0.)); -#42722=DIRECTION('',(-1.,0.,0.)); -#42723=DIRECTION('',(0.,0.,1.)); -#42724=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42725=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42726=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42727=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42728=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42729=DIRECTION('',(-1.,0.,0.)); -#42730=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42731=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42732=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42733=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42734=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42735=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42736=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42737=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42738=DIRECTION('',(-1.,0.,0.)); -#42739=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42740=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42741=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42742=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42743=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42744=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42745=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42746=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42747=DIRECTION('',(-1.,0.,0.)); -#42748=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42749=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42750=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42751=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42752=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42753=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42754=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42755=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42756=DIRECTION('',(-1.,0.,0.)); -#42757=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42758=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42759=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42760=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42761=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42762=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42763=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42764=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42765=DIRECTION('',(-1.,0.,0.)); -#42766=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42767=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42768=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42769=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42770=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42771=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42772=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42773=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42774=DIRECTION('',(-1.,0.,0.)); -#42775=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42776=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42777=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42778=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42779=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42780=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42781=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42782=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42783=DIRECTION('',(-1.,0.,0.)); -#42784=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42785=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42786=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42787=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42788=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42789=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42790=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42791=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42792=DIRECTION('',(-1.,0.,0.)); -#42793=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42794=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42795=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42796=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42797=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42798=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42799=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42800=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42801=DIRECTION('',(-1.,0.,0.)); -#42802=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42803=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42804=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42805=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42806=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42807=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42808=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42809=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42810=DIRECTION('',(-1.,0.,0.)); -#42811=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42812=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42813=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42814=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42815=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42816=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42817=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42818=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42819=DIRECTION('',(-1.,0.,0.)); -#42820=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42821=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42822=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42823=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42824=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42825=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42826=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42827=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42828=DIRECTION('',(-1.,0.,0.)); -#42829=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42830=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42831=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42832=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42833=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42834=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42835=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42836=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42837=DIRECTION('',(-1.,0.,0.)); -#42838=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42839=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42840=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42841=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42842=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42843=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42844=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42845=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42846=DIRECTION('',(-1.,0.,0.)); -#42847=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42848=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42849=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42850=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42851=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42852=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42853=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42854=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42855=DIRECTION('',(-1.,0.,0.)); -#42856=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42857=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42858=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42859=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42860=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42861=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42862=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42863=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42864=DIRECTION('',(-1.,0.,0.)); -#42865=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42866=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42867=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42868=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42869=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42870=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42871=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42872=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42873=DIRECTION('',(-1.,0.,0.)); -#42874=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42875=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42876=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42877=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42878=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42879=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42880=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42881=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42882=DIRECTION('',(-1.,0.,0.)); -#42883=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42884=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42885=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42886=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42887=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42888=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#42889=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42890=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42891=DIRECTION('',(-1.,0.,0.)); -#42892=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#42893=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42894=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#42895=DIRECTION('',(-1.,0.,0.)); -#42896=DIRECTION('',(0.,0.,1.)); -#42897=DIRECTION('',(-1.,0.,0.)); -#42898=DIRECTION('',(0.,0.,1.)); -#42899=DIRECTION('',(1.,0.,0.)); -#42900=DIRECTION('',(0.,0.,-1.)); -#42901=DIRECTION('',(-1.,0.,0.)); -#42902=DIRECTION('',(0.,0.,1.)); -#42903=DIRECTION('',(-1.,0.,0.)); -#42904=DIRECTION('',(0.,0.,1.)); -#42905=DIRECTION('',(1.,0.,0.)); -#42906=DIRECTION('',(0.,0.,-1.)); -#42907=DIRECTION('',(-1.,0.,0.)); -#42908=DIRECTION('',(0.,0.,1.)); -#42909=DIRECTION('',(-1.,0.,0.)); -#42910=DIRECTION('',(0.,0.,1.)); -#42911=DIRECTION('',(1.,0.,0.)); -#42912=DIRECTION('',(0.,0.,-1.)); -#42913=DIRECTION('',(-1.,0.,0.)); -#42914=DIRECTION('',(0.,0.,1.)); -#42915=DIRECTION('',(-1.,0.,0.)); -#42916=DIRECTION('',(0.,0.,1.)); -#42917=DIRECTION('',(1.,0.,0.)); -#42918=DIRECTION('',(0.,0.,-1.)); -#42919=DIRECTION('',(-1.,0.,0.)); -#42920=DIRECTION('',(0.,0.,1.)); -#42921=DIRECTION('',(-1.,0.,0.)); -#42922=DIRECTION('',(0.,0.,1.)); -#42923=DIRECTION('',(1.,0.,0.)); -#42924=DIRECTION('',(0.,0.,-1.)); -#42925=DIRECTION('',(-1.,0.,0.)); -#42926=DIRECTION('',(0.,0.,1.)); -#42927=DIRECTION('',(-1.,0.,0.)); -#42928=DIRECTION('',(0.,0.,1.)); -#42929=DIRECTION('',(1.,0.,0.)); -#42930=DIRECTION('',(0.,0.,-1.)); -#42931=DIRECTION('',(-1.,0.,0.)); -#42932=DIRECTION('',(0.,0.,1.)); -#42933=DIRECTION('',(-1.,0.,0.)); -#42934=DIRECTION('',(0.,0.,1.)); -#42935=DIRECTION('',(1.,0.,0.)); -#42936=DIRECTION('',(0.,0.,-1.)); -#42937=DIRECTION('',(-1.,0.,0.)); -#42938=DIRECTION('',(0.,0.,1.)); -#42939=DIRECTION('',(-1.,0.,0.)); -#42940=DIRECTION('',(0.,0.,1.)); -#42941=DIRECTION('',(1.,0.,0.)); -#42942=DIRECTION('',(0.,0.,-1.)); -#42943=DIRECTION('',(-1.,0.,0.)); -#42944=DIRECTION('',(0.,0.,1.)); -#42945=DIRECTION('',(-1.,0.,0.)); -#42946=DIRECTION('',(0.,0.,1.)); -#42947=DIRECTION('',(1.,0.,0.)); -#42948=DIRECTION('',(0.,0.,-1.)); -#42949=DIRECTION('',(-1.,0.,0.)); -#42950=DIRECTION('',(0.,0.,1.)); -#42951=DIRECTION('',(-1.,0.,0.)); -#42952=DIRECTION('',(0.,0.,1.)); -#42953=DIRECTION('',(1.,0.,0.)); -#42954=DIRECTION('',(0.,0.,-1.)); -#42955=DIRECTION('',(-1.,0.,0.)); -#42956=DIRECTION('',(0.,0.,1.)); -#42957=DIRECTION('',(-1.,0.,0.)); -#42958=DIRECTION('',(0.,0.,1.)); -#42959=DIRECTION('',(1.,0.,0.)); -#42960=DIRECTION('',(0.,0.,-1.)); -#42961=DIRECTION('',(-1.,0.,0.)); -#42962=DIRECTION('',(0.,0.,1.)); -#42963=DIRECTION('',(-1.,0.,0.)); -#42964=DIRECTION('',(0.,0.,1.)); -#42965=DIRECTION('',(1.,0.,0.)); -#42966=DIRECTION('',(0.,0.,-1.)); -#42967=DIRECTION('',(-1.,0.,0.)); -#42968=DIRECTION('',(0.,0.,1.)); -#42969=DIRECTION('',(-1.,0.,0.)); -#42970=DIRECTION('',(0.,0.,1.)); -#42971=DIRECTION('',(1.,0.,0.)); -#42972=DIRECTION('',(0.,0.,-1.)); -#42973=DIRECTION('',(-1.,0.,0.)); -#42974=DIRECTION('',(0.,0.,1.)); -#42975=DIRECTION('',(-1.,0.,0.)); -#42976=DIRECTION('',(0.,0.,1.)); -#42977=DIRECTION('',(1.,0.,0.)); -#42978=DIRECTION('',(0.,0.,-1.)); -#42979=DIRECTION('',(-1.,0.,0.)); -#42980=DIRECTION('',(0.,0.,1.)); -#42981=DIRECTION('',(-1.,0.,0.)); -#42982=DIRECTION('',(0.,0.,1.)); -#42983=DIRECTION('',(1.,0.,0.)); -#42984=DIRECTION('',(0.,0.,-1.)); -#42985=DIRECTION('',(-1.,0.,0.)); -#42986=DIRECTION('',(0.,0.,1.)); -#42987=DIRECTION('',(-1.,0.,0.)); -#42988=DIRECTION('',(0.,0.,1.)); -#42989=DIRECTION('',(1.,0.,0.)); -#42990=DIRECTION('',(0.,0.,-1.)); -#42991=DIRECTION('',(-1.,0.,0.)); -#42992=DIRECTION('',(0.,0.,1.)); -#42993=DIRECTION('',(-1.,0.,0.)); -#42994=DIRECTION('',(0.,0.,1.)); -#42995=DIRECTION('',(1.,0.,0.)); -#42996=DIRECTION('',(0.,0.,-1.)); -#42997=DIRECTION('',(-1.,0.,0.)); -#42998=DIRECTION('',(0.,0.,1.)); -#42999=DIRECTION('',(-1.,0.,0.)); -#43000=DIRECTION('',(0.,0.,1.)); -#43001=DIRECTION('',(1.,0.,0.)); -#43002=DIRECTION('',(0.,0.,-1.)); -#43003=DIRECTION('',(-1.,0.,0.)); -#43004=DIRECTION('',(0.,0.,1.)); -#43005=DIRECTION('',(-1.,0.,0.)); -#43006=DIRECTION('',(0.,0.,1.)); -#43007=DIRECTION('',(1.,0.,0.)); -#43008=DIRECTION('',(0.,0.,-1.)); -#43009=DIRECTION('',(-1.,0.,0.)); -#43010=DIRECTION('',(0.,0.,1.)); -#43011=DIRECTION('',(-1.,0.,0.)); -#43012=DIRECTION('',(0.,0.,1.)); -#43013=DIRECTION('',(-1.,0.,0.)); -#43014=DIRECTION('',(1.,0.,0.)); -#43015=DIRECTION('',(0.,0.,-1.)); -#43016=DIRECTION('',(1.,0.,0.)); -#43017=DIRECTION('',(0.,0.,-1.)); -#43018=DIRECTION('',(0.,0.,1.)); -#43019=DIRECTION('',(0.,0.,-1.)); -#43020=DIRECTION('',(1.,0.,0.)); -#43021=DIRECTION('',(0.,0.,-1.)); -#43022=DIRECTION('',(0.,0.,1.)); -#43023=DIRECTION('',(0.,0.,-1.)); -#43024=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#43025=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#43026=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#43027=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#43028=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); -#43029=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#43030=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); -#43031=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); -#43032=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#43033=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#43034=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); -#43035=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#43036=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#43037=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); -#43038=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#43039=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); -#43040=DIRECTION('',(0.,0.,-1.)); -#43041=DIRECTION('',(-1.,0.,0.)); -#43042=DIRECTION('',(0.,0.,-1.)); -#43043=DIRECTION('',(1.,0.,0.)); -#43044=DIRECTION('',(0.,0.,-1.)); -#43045=DIRECTION('',(0.,0.,-1.)); -#43046=DIRECTION('',(0.,0.,-1.)); -#43047=DIRECTION('',(-1.,0.,0.)); -#43048=DIRECTION('',(0.,0.,-1.)); -#43049=DIRECTION('',(0.,0.,-1.)); -#43050=DIRECTION('',(1.,0.,0.)); -#43051=DIRECTION('',(0.,0.,-1.)); -#43052=DIRECTION('',(0.,0.,-1.)); -#43053=DIRECTION('',(0.,0.,-1.)); -#43054=DIRECTION('',(-1.,0.,0.)); -#43055=DIRECTION('',(0.,0.,-1.)); -#43056=DIRECTION('',(0.,0.,-1.)); -#43057=DIRECTION('',(-1.,0.,0.)); -#43058=DIRECTION('',(0.,0.,-1.)); -#43059=DIRECTION('',(0.866025403784433,-0.500000000000009,0.)); -#43060=DIRECTION('',(0.500000000000009,0.866025403784433,0.)); -#43061=DIRECTION('',(0.,0.,-1.)); -#43062=DIRECTION('',(-1.,0.,0.)); -#43063=DIRECTION('',(0.,0.,-1.)); -#43064=DIRECTION('',(-1.,0.,0.)); -#43065=DIRECTION('',(0.,0.,-1.)); -#43066=DIRECTION('',(0.,0.,-1.)); -#43067=DIRECTION('',(1.,0.,0.)); -#43068=DIRECTION('',(0.,0.,-1.)); -#43069=DIRECTION('',(0.,0.,-1.)); -#43070=DIRECTION('',(0.,0.,-1.)); -#43071=DIRECTION('',(-1.,0.,0.)); -#43072=DIRECTION('',(0.,0.,-1.)); -#43073=DIRECTION('',(0.,0.,-1.)); -#43074=DIRECTION('',(-1.,0.,0.)); -#43075=DIRECTION('',(0.,0.,-1.)); -#43076=DIRECTION('',(0.866025403784433,-0.500000000000009,0.)); -#43077=DIRECTION('',(0.500000000000009,0.866025403784433,0.)); -#43078=DIRECTION('',(1.,0.,0.)); -#43079=DIRECTION('',(0.,0.,-1.)); -#43080=DIRECTION('',(0.,0.,-1.)); -#43081=DIRECTION('',(0.,0.,-1.)); -#43082=DIRECTION('',(0.,0.,-1.)); -#43083=DIRECTION('',(-1.,0.,0.)); -#43084=DIRECTION('',(0.,0.,-1.)); -#43085=DIRECTION('',(-1.,0.,0.)); -#43086=DIRECTION('',(0.,0.,-1.)); -#43087=DIRECTION('',(-1.,0.,0.)); -#43088=DIRECTION('',(0.,0.,-1.)); -#43089=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43090=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43091=DIRECTION('',(0.,0.,-1.)); -#43092=DIRECTION('',(0.,0.,-1.)); -#43093=DIRECTION('',(-1.,0.,0.)); -#43094=DIRECTION('',(0.,0.,-1.)); -#43095=DIRECTION('',(-1.,0.,0.)); -#43096=DIRECTION('',(0.,0.,1.)); -#43097=DIRECTION('',(0.,0.,-1.)); -#43098=DIRECTION('',(0.,0.,-1.)); -#43099=DIRECTION('',(-1.,0.,0.)); -#43100=DIRECTION('',(0.,0.,-1.)); -#43101=DIRECTION('',(0.,0.,-1.)); -#43102=DIRECTION('',(-1.,0.,0.)); -#43103=DIRECTION('',(0.,0.,-1.)); -#43104=DIRECTION('',(-1.,0.,0.)); -#43105=DIRECTION('',(0.,0.,1.)); -#43106=DIRECTION('',(0.,0.,-1.)); -#43107=DIRECTION('',(0.,0.,-1.)); -#43108=DIRECTION('',(-1.,0.,0.)); -#43109=DIRECTION('',(0.,0.,-1.)); -#43110=DIRECTION('',(-1.,0.,0.)); -#43111=DIRECTION('',(0.,0.,-1.)); -#43112=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43113=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43114=DIRECTION('',(0.,0.,-1.)); -#43115=DIRECTION('',(0.,0.,-1.)); -#43116=DIRECTION('',(-1.,0.,0.)); -#43117=DIRECTION('',(0.,0.,-1.)); -#43118=DIRECTION('',(-1.,0.,0.)); -#43119=DIRECTION('',(0.,0.,1.)); -#43120=DIRECTION('',(0.,0.,-1.)); -#43121=DIRECTION('',(0.,0.,-1.)); -#43122=DIRECTION('',(-1.,0.,0.)); -#43123=DIRECTION('',(0.,0.,-1.)); -#43124=DIRECTION('',(0.,0.,-1.)); -#43125=DIRECTION('',(-1.,0.,0.)); -#43126=DIRECTION('',(0.,0.,-1.)); -#43127=DIRECTION('',(-1.,0.,0.)); -#43128=DIRECTION('',(0.,0.,1.)); -#43129=DIRECTION('',(0.,0.,-1.)); -#43130=DIRECTION('',(0.,0.,-1.)); -#43131=DIRECTION('',(-1.,0.,0.)); -#43132=DIRECTION('',(0.,0.,-1.)); -#43133=DIRECTION('',(-1.,0.,0.)); -#43134=DIRECTION('',(0.,0.,-1.)); -#43135=DIRECTION('',(1.,0.,0.)); -#43136=DIRECTION('',(0.,0.,-1.)); -#43137=DIRECTION('',(0.,0.,-1.)); -#43138=DIRECTION('',(0.,0.,-1.)); -#43139=DIRECTION('',(-1.,0.,0.)); -#43140=DIRECTION('',(0.,0.,-1.)); -#43141=DIRECTION('',(0.,0.,-1.)); -#43142=DIRECTION('',(1.,0.,0.)); -#43143=DIRECTION('',(0.,0.,-1.)); -#43144=DIRECTION('',(0.,0.,-1.)); -#43145=DIRECTION('',(0.,0.,-1.)); -#43146=DIRECTION('',(-1.,0.,0.)); -#43147=DIRECTION('',(0.,0.,-1.)); -#43148=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#43149=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#43150=DIRECTION('',(0.,0.,-1.)); -#43151=DIRECTION('',(0.,0.,-1.)); -#43152=DIRECTION('',(-1.,0.,0.)); -#43153=DIRECTION('',(0.,0.,-1.)); -#43154=DIRECTION('',(1.,0.,0.)); -#43155=DIRECTION('',(0.,0.,-1.)); -#43156=DIRECTION('',(-1.,0.,0.)); -#43157=DIRECTION('',(0.,0.,1.)); -#43158=DIRECTION('',(0.,0.,-1.)); -#43159=DIRECTION('',(0.,0.,-1.)); -#43160=DIRECTION('',(-1.,0.,0.)); -#43161=DIRECTION('',(0.,0.,-1.)); -#43162=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43163=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43164=DIRECTION('',(0.,0.,-1.)); -#43165=DIRECTION('',(0.,0.,-1.)); -#43166=DIRECTION('',(-1.,0.,0.)); -#43167=DIRECTION('',(0.,0.,-1.)); -#43168=DIRECTION('',(-1.,0.,0.)); -#43169=DIRECTION('',(0.,0.,1.)); -#43170=DIRECTION('',(0.,0.,-1.)); -#43171=DIRECTION('',(0.,0.,-1.)); -#43172=DIRECTION('',(-1.,0.,0.)); -#43173=DIRECTION('',(0.,0.,-1.)); -#43174=DIRECTION('',(0.,0.,-1.)); -#43175=DIRECTION('',(-1.,0.,0.)); -#43176=DIRECTION('',(0.,0.,-1.)); -#43177=DIRECTION('',(-1.,0.,0.)); -#43178=DIRECTION('',(0.,0.,-1.)); -#43179=DIRECTION('',(-1.,0.,0.)); -#43180=DIRECTION('',(0.,0.,1.)); -#43181=DIRECTION('',(0.,0.,-1.)); -#43182=DIRECTION('',(0.,0.,-1.)); -#43183=DIRECTION('',(-1.,0.,0.)); -#43184=DIRECTION('',(0.,0.,-1.)); -#43185=DIRECTION('',(-1.,0.,0.)); -#43186=DIRECTION('',(0.,0.,-1.)); -#43187=DIRECTION('',(1.,0.,0.)); -#43188=DIRECTION('',(0.,0.,-1.)); -#43189=DIRECTION('',(0.,0.,-1.)); -#43190=DIRECTION('',(0.,0.,-1.)); -#43191=DIRECTION('',(-1.,0.,0.)); -#43192=DIRECTION('',(0.,0.,-1.)); -#43193=DIRECTION('',(0.,0.,-1.)); -#43194=DIRECTION('',(1.,0.,0.)); -#43195=DIRECTION('',(0.,0.,-1.)); -#43196=DIRECTION('',(0.,0.,-1.)); -#43197=DIRECTION('',(0.,0.,-1.)); -#43198=DIRECTION('',(-1.,0.,0.)); -#43199=DIRECTION('',(0.,0.,-1.)); -#43200=DIRECTION('',(0.866025403784442,-0.499999999999995,0.)); -#43201=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); -#43202=DIRECTION('',(0.,0.,-1.)); -#43203=DIRECTION('',(0.,0.,-1.)); -#43204=DIRECTION('',(-1.,0.,0.)); -#43205=DIRECTION('',(0.,0.,-1.)); -#43206=DIRECTION('',(1.,0.,0.)); -#43207=DIRECTION('',(0.,0.,-1.)); -#43208=DIRECTION('',(-1.,0.,0.)); -#43209=DIRECTION('',(0.,0.,1.)); -#43210=DIRECTION('',(0.,0.,-1.)); -#43211=DIRECTION('',(0.,0.,-1.)); -#43212=DIRECTION('',(-1.,0.,0.)); -#43213=DIRECTION('',(0.,0.,-1.)); -#43214=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43215=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43216=DIRECTION('',(0.,0.,-1.)); -#43217=DIRECTION('',(0.,0.,-1.)); -#43218=DIRECTION('',(-1.,0.,0.)); -#43219=DIRECTION('',(0.,0.,-1.)); -#43220=DIRECTION('',(-1.,0.,0.)); -#43221=DIRECTION('',(0.,0.,1.)); -#43222=DIRECTION('',(0.,0.,-1.)); -#43223=DIRECTION('',(0.,0.,-1.)); -#43224=DIRECTION('',(-1.,0.,0.)); -#43225=DIRECTION('',(0.,0.,-1.)); -#43226=DIRECTION('',(0.,0.,-1.)); -#43227=DIRECTION('',(-1.,0.,0.)); -#43228=DIRECTION('',(0.,0.,-1.)); -#43229=DIRECTION('',(-1.,0.,0.)); -#43230=DIRECTION('',(0.,0.,-1.)); -#43231=DIRECTION('',(-1.,0.,0.)); -#43232=DIRECTION('',(0.,0.,1.)); -#43233=DIRECTION('',(0.,0.,-1.)); -#43234=DIRECTION('',(0.,0.,-1.)); -#43235=DIRECTION('',(-1.,0.,0.)); -#43236=DIRECTION('',(0.,0.,-1.)); -#43237=DIRECTION('',(-1.,0.,0.)); -#43238=DIRECTION('',(0.,0.,-1.)); -#43239=DIRECTION('',(1.,0.,0.)); -#43240=DIRECTION('',(0.,0.,-1.)); -#43241=DIRECTION('',(0.,0.,-1.)); -#43242=DIRECTION('',(0.,0.,-1.)); -#43243=DIRECTION('',(-1.,0.,0.)); -#43244=DIRECTION('',(0.,0.,-1.)); -#43245=DIRECTION('',(0.,0.,-1.)); -#43246=DIRECTION('',(1.,0.,0.)); -#43247=DIRECTION('',(0.,0.,-1.)); -#43248=DIRECTION('',(0.,0.,-1.)); -#43249=DIRECTION('',(0.,0.,-1.)); -#43250=DIRECTION('',(-1.,0.,0.)); -#43251=DIRECTION('',(0.,0.,-1.)); -#43252=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#43253=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#43254=DIRECTION('',(0.,0.,-1.)); -#43255=DIRECTION('',(0.,0.,-1.)); -#43256=DIRECTION('',(-1.,0.,0.)); -#43257=DIRECTION('',(0.,0.,-1.)); -#43258=DIRECTION('',(1.,0.,0.)); -#43259=DIRECTION('',(0.,0.,-1.)); -#43260=DIRECTION('',(-1.,0.,0.)); -#43261=DIRECTION('',(0.,0.,1.)); -#43262=DIRECTION('',(0.,0.,-1.)); -#43263=DIRECTION('',(0.,0.,-1.)); -#43264=DIRECTION('',(-1.,0.,0.)); -#43265=DIRECTION('',(0.,0.,-1.)); -#43266=DIRECTION('',(-0.86602540378444,-0.499999999999998,0.)); -#43267=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); -#43268=DIRECTION('',(0.,0.,-1.)); -#43269=DIRECTION('',(0.,0.,-1.)); -#43270=DIRECTION('',(-1.,0.,0.)); -#43271=DIRECTION('',(0.,0.,-1.)); -#43272=DIRECTION('',(-1.,0.,0.)); -#43273=DIRECTION('',(0.,0.,1.)); -#43274=DIRECTION('',(0.,0.,-1.)); -#43275=DIRECTION('',(0.,0.,-1.)); -#43276=DIRECTION('',(-1.,0.,0.)); -#43277=DIRECTION('',(0.,0.,-1.)); -#43278=DIRECTION('',(0.,0.,-1.)); -#43279=DIRECTION('',(-1.,0.,0.)); -#43280=DIRECTION('',(0.,0.,-1.)); -#43281=DIRECTION('',(-1.,0.,0.)); -#43282=DIRECTION('',(0.,0.,-1.)); -#43283=DIRECTION('',(-1.,0.,0.)); -#43284=DIRECTION('',(0.,0.,1.)); -#43285=DIRECTION('',(0.,0.,-1.)); -#43286=DIRECTION('',(0.,0.,-1.)); -#43287=DIRECTION('',(-1.,0.,0.)); -#43288=DIRECTION('',(0.,0.,-1.)); -#43289=DIRECTION('',(-1.,0.,0.)); -#43290=DIRECTION('',(0.,0.,-1.)); -#43291=DIRECTION('',(1.,0.,0.)); -#43292=DIRECTION('',(0.,0.,-1.)); -#43293=DIRECTION('',(0.,0.,-1.)); -#43294=DIRECTION('',(0.,0.,-1.)); -#43295=DIRECTION('',(-1.,0.,0.)); -#43296=DIRECTION('',(0.,0.,-1.)); -#43297=DIRECTION('',(0.,0.,-1.)); -#43298=DIRECTION('',(1.,0.,0.)); -#43299=DIRECTION('',(0.,0.,-1.)); -#43300=DIRECTION('',(0.,0.,-1.)); -#43301=DIRECTION('',(0.,0.,-1.)); -#43302=DIRECTION('',(-1.,0.,0.)); -#43303=DIRECTION('',(0.,0.,-1.)); -#43304=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#43305=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#43306=DIRECTION('',(0.,0.,-1.)); -#43307=DIRECTION('',(0.,0.,-1.)); -#43308=DIRECTION('',(-1.,0.,0.)); -#43309=DIRECTION('',(0.,0.,-1.)); -#43310=DIRECTION('',(1.,0.,0.)); -#43311=DIRECTION('',(0.,0.,-1.)); -#43312=DIRECTION('',(-1.,0.,0.)); -#43313=DIRECTION('',(0.,0.,1.)); -#43314=DIRECTION('',(0.,0.,-1.)); -#43315=DIRECTION('',(0.,0.,-1.)); -#43316=DIRECTION('',(-1.,0.,0.)); -#43317=DIRECTION('',(0.,0.,-1.)); -#43318=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43319=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43320=DIRECTION('',(0.,0.,-1.)); -#43321=DIRECTION('',(0.,0.,-1.)); -#43322=DIRECTION('',(-1.,0.,0.)); -#43323=DIRECTION('',(0.,0.,-1.)); -#43324=DIRECTION('',(-1.,0.,0.)); -#43325=DIRECTION('',(0.,0.,1.)); -#43326=DIRECTION('',(0.,0.,-1.)); -#43327=DIRECTION('',(0.,0.,-1.)); -#43328=DIRECTION('',(-1.,0.,0.)); -#43329=DIRECTION('',(0.,0.,-1.)); -#43330=DIRECTION('',(0.,0.,-1.)); -#43331=DIRECTION('',(-1.,0.,0.)); -#43332=DIRECTION('',(0.,0.,-1.)); -#43333=DIRECTION('',(-1.,0.,0.)); -#43334=DIRECTION('',(0.,0.,-1.)); -#43335=DIRECTION('',(-1.,0.,0.)); -#43336=DIRECTION('',(0.,0.,1.)); -#43337=DIRECTION('',(0.,0.,-1.)); -#43338=DIRECTION('',(0.,0.,-1.)); -#43339=DIRECTION('',(-1.,0.,0.)); -#43340=DIRECTION('',(0.,0.,-1.)); -#43341=DIRECTION('',(-1.,0.,0.)); -#43342=DIRECTION('',(0.,0.,-1.)); -#43343=DIRECTION('',(1.,0.,0.)); -#43344=DIRECTION('',(0.,0.,-1.)); -#43345=DIRECTION('',(0.,0.,-1.)); -#43346=DIRECTION('',(0.,0.,-1.)); -#43347=DIRECTION('',(-1.,0.,0.)); -#43348=DIRECTION('',(0.,0.,-1.)); -#43349=DIRECTION('',(0.,0.,-1.)); -#43350=DIRECTION('',(1.,0.,0.)); -#43351=DIRECTION('',(0.,0.,-1.)); -#43352=DIRECTION('',(0.,0.,-1.)); -#43353=DIRECTION('',(0.,0.,-1.)); -#43354=DIRECTION('',(-1.,0.,0.)); -#43355=DIRECTION('',(0.,0.,-1.)); -#43356=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#43357=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#43358=DIRECTION('',(0.,0.,-1.)); -#43359=DIRECTION('',(0.,0.,-1.)); -#43360=DIRECTION('',(-1.,0.,0.)); -#43361=DIRECTION('',(0.,0.,-1.)); -#43362=DIRECTION('',(1.,0.,0.)); -#43363=DIRECTION('',(0.,0.,-1.)); -#43364=DIRECTION('',(-1.,0.,0.)); -#43365=DIRECTION('',(0.,0.,1.)); -#43366=DIRECTION('',(0.,0.,-1.)); -#43367=DIRECTION('',(0.,0.,-1.)); -#43368=DIRECTION('',(-1.,0.,0.)); -#43369=DIRECTION('',(0.,0.,-1.)); -#43370=DIRECTION('',(-0.866025403784438,-0.500000000000001,0.)); -#43371=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); -#43372=DIRECTION('',(0.,0.,-1.)); -#43373=DIRECTION('',(0.,0.,-1.)); -#43374=DIRECTION('',(-1.,0.,0.)); -#43375=DIRECTION('',(0.,0.,-1.)); -#43376=DIRECTION('',(-1.,0.,0.)); -#43377=DIRECTION('',(0.,0.,1.)); -#43378=DIRECTION('',(0.,0.,-1.)); -#43379=DIRECTION('',(0.,0.,-1.)); -#43380=DIRECTION('',(-1.,0.,0.)); -#43381=DIRECTION('',(0.,0.,-1.)); -#43382=DIRECTION('',(0.,0.,-1.)); -#43383=DIRECTION('',(-1.,0.,0.)); -#43384=DIRECTION('',(0.,0.,-1.)); -#43385=DIRECTION('',(-1.,0.,0.)); -#43386=DIRECTION('',(0.,0.,-1.)); -#43387=DIRECTION('',(-1.,0.,0.)); -#43388=DIRECTION('',(0.,0.,1.)); -#43389=DIRECTION('',(0.,0.,-1.)); -#43390=DIRECTION('',(0.,0.,-1.)); -#43391=DIRECTION('',(-1.,0.,0.)); -#43392=DIRECTION('',(0.,0.,-1.)); -#43393=DIRECTION('',(-1.,0.,0.)); -#43394=DIRECTION('',(0.,0.,-1.)); -#43395=DIRECTION('',(1.,0.,0.)); -#43396=DIRECTION('',(0.,0.,-1.)); -#43397=DIRECTION('',(0.,0.,-1.)); -#43398=DIRECTION('',(0.,0.,-1.)); -#43399=DIRECTION('',(-1.,0.,0.)); -#43400=DIRECTION('',(0.,0.,-1.)); -#43401=DIRECTION('',(0.,0.,-1.)); -#43402=DIRECTION('',(1.,0.,0.)); -#43403=DIRECTION('',(0.,0.,-1.)); -#43404=DIRECTION('',(0.,0.,-1.)); -#43405=DIRECTION('',(0.,0.,-1.)); -#43406=DIRECTION('',(-1.,0.,0.)); -#43407=DIRECTION('',(0.,0.,-1.)); -#43408=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); -#43409=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#43410=DIRECTION('',(0.,0.,-1.)); -#43411=DIRECTION('',(0.,0.,-1.)); -#43412=DIRECTION('',(-1.,0.,0.)); -#43413=DIRECTION('',(0.,0.,-1.)); -#43414=DIRECTION('',(1.,0.,0.)); -#43415=DIRECTION('',(0.,0.,-1.)); -#43416=DIRECTION('',(-1.,0.,0.)); -#43417=DIRECTION('',(0.,0.,1.)); -#43418=DIRECTION('',(0.,0.,-1.)); -#43419=DIRECTION('',(0.,0.,-1.)); -#43420=DIRECTION('',(-1.,0.,0.)); -#43421=DIRECTION('',(0.,0.,-1.)); -#43422=DIRECTION('',(-0.866025403784438,-0.500000000000001,0.)); -#43423=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); -#43424=DIRECTION('',(0.,0.,-1.)); -#43425=DIRECTION('',(0.,0.,-1.)); -#43426=DIRECTION('',(-1.,0.,0.)); -#43427=DIRECTION('',(0.,0.,-1.)); -#43428=DIRECTION('',(-1.,0.,0.)); -#43429=DIRECTION('',(0.,0.,1.)); -#43430=DIRECTION('',(0.,0.,-1.)); -#43431=DIRECTION('',(0.,0.,-1.)); -#43432=DIRECTION('',(-1.,0.,0.)); -#43433=DIRECTION('',(0.,0.,-1.)); -#43434=DIRECTION('',(0.,0.,-1.)); -#43435=DIRECTION('',(-1.,0.,0.)); -#43436=DIRECTION('',(0.,0.,-1.)); -#43437=DIRECTION('',(-1.,0.,0.)); -#43438=DIRECTION('',(0.,0.,-1.)); -#43439=DIRECTION('',(-1.,0.,0.)); -#43440=DIRECTION('',(0.,0.,1.)); -#43441=DIRECTION('',(0.,0.,-1.)); -#43442=DIRECTION('',(0.,0.,-1.)); -#43443=DIRECTION('',(-1.,0.,0.)); -#43444=DIRECTION('',(0.,0.,-1.)); -#43445=DIRECTION('',(-1.,0.,0.)); -#43446=DIRECTION('',(0.,0.,-1.)); -#43447=DIRECTION('',(1.,0.,0.)); -#43448=DIRECTION('',(0.,0.,-1.)); -#43449=DIRECTION('',(0.,0.,-1.)); -#43450=DIRECTION('',(0.,0.,-1.)); -#43451=DIRECTION('',(-1.,0.,0.)); -#43452=DIRECTION('',(0.,0.,-1.)); -#43453=DIRECTION('',(0.,0.,-1.)); -#43454=DIRECTION('',(1.,0.,0.)); -#43455=DIRECTION('',(0.,0.,-1.)); -#43456=DIRECTION('',(0.,0.,-1.)); -#43457=DIRECTION('',(0.,0.,-1.)); -#43458=DIRECTION('',(-1.,0.,0.)); -#43459=DIRECTION('',(0.,0.,-1.)); -#43460=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#43461=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#43462=DIRECTION('',(0.,0.,-1.)); -#43463=DIRECTION('',(0.,0.,-1.)); -#43464=DIRECTION('',(-1.,0.,0.)); -#43465=DIRECTION('',(0.,0.,-1.)); -#43466=DIRECTION('',(1.,0.,0.)); -#43467=DIRECTION('',(0.,0.,-1.)); -#43468=DIRECTION('',(-1.,0.,0.)); -#43469=DIRECTION('',(0.,0.,1.)); -#43470=DIRECTION('',(0.,0.,-1.)); -#43471=DIRECTION('',(0.,0.,-1.)); -#43472=DIRECTION('',(-1.,0.,0.)); -#43473=DIRECTION('',(0.,0.,-1.)); -#43474=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43475=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43476=DIRECTION('',(0.,0.,-1.)); -#43477=DIRECTION('',(0.,0.,-1.)); -#43478=DIRECTION('',(-1.,0.,0.)); -#43479=DIRECTION('',(0.,0.,-1.)); -#43480=DIRECTION('',(-1.,0.,0.)); -#43481=DIRECTION('',(0.,0.,1.)); -#43482=DIRECTION('',(0.,0.,-1.)); -#43483=DIRECTION('',(0.,0.,-1.)); -#43484=DIRECTION('',(-1.,0.,0.)); -#43485=DIRECTION('',(0.,0.,-1.)); -#43486=DIRECTION('',(0.,0.,-1.)); -#43487=DIRECTION('',(-1.,0.,0.)); -#43488=DIRECTION('',(0.,0.,-1.)); -#43489=DIRECTION('',(-1.,0.,0.)); -#43490=DIRECTION('',(0.,0.,-1.)); -#43491=DIRECTION('',(-1.,0.,0.)); -#43492=DIRECTION('',(0.,0.,1.)); -#43493=DIRECTION('',(0.,0.,-1.)); -#43494=DIRECTION('',(0.,0.,-1.)); -#43495=DIRECTION('',(-1.,0.,0.)); -#43496=DIRECTION('',(0.,0.,-1.)); -#43497=DIRECTION('',(-1.,0.,0.)); -#43498=DIRECTION('',(0.,0.,-1.)); -#43499=DIRECTION('',(1.,0.,0.)); -#43500=DIRECTION('',(0.,0.,-1.)); -#43501=DIRECTION('',(0.,0.,-1.)); -#43502=DIRECTION('',(0.,0.,-1.)); -#43503=DIRECTION('',(-1.,0.,0.)); -#43504=DIRECTION('',(0.,0.,-1.)); -#43505=DIRECTION('',(0.,0.,-1.)); -#43506=DIRECTION('',(1.,0.,0.)); -#43507=DIRECTION('',(0.,0.,-1.)); -#43508=DIRECTION('',(0.,0.,-1.)); -#43509=DIRECTION('',(0.,0.,-1.)); -#43510=DIRECTION('',(-1.,0.,0.)); -#43511=DIRECTION('',(0.,0.,-1.)); -#43512=DIRECTION('',(0.866025403784439,-0.5,0.)); -#43513=DIRECTION('',(0.5,0.866025403784439,0.)); -#43514=DIRECTION('',(0.,0.,-1.)); -#43515=DIRECTION('',(0.,0.,-1.)); -#43516=DIRECTION('',(-1.,0.,0.)); -#43517=DIRECTION('',(0.,0.,-1.)); -#43518=DIRECTION('',(1.,0.,0.)); -#43519=DIRECTION('',(0.,0.,-1.)); -#43520=DIRECTION('',(-1.,0.,0.)); -#43521=DIRECTION('',(0.,0.,1.)); -#43522=DIRECTION('',(0.,0.,-1.)); -#43523=DIRECTION('',(0.,0.,-1.)); -#43524=DIRECTION('',(-1.,0.,0.)); -#43525=DIRECTION('',(0.,0.,-1.)); -#43526=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); -#43527=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#43528=DIRECTION('',(0.,0.,-1.)); -#43529=DIRECTION('',(0.,0.,-1.)); -#43530=DIRECTION('',(-1.,0.,0.)); -#43531=DIRECTION('',(0.,0.,-1.)); -#43532=DIRECTION('',(-1.,0.,0.)); -#43533=DIRECTION('',(0.,0.,1.)); -#43534=DIRECTION('',(0.,0.,-1.)); -#43535=DIRECTION('',(0.,0.,-1.)); -#43536=DIRECTION('',(-1.,0.,0.)); -#43537=DIRECTION('',(0.,0.,-1.)); -#43538=DIRECTION('',(0.,0.,-1.)); -#43539=DIRECTION('',(-1.,0.,0.)); -#43540=DIRECTION('',(0.,0.,-1.)); -#43541=DIRECTION('',(-1.,0.,0.)); -#43542=DIRECTION('',(0.,0.,-1.)); -#43543=DIRECTION('',(-1.,0.,0.)); -#43544=DIRECTION('',(0.,0.,1.)); -#43545=DIRECTION('',(0.,0.,-1.)); -#43546=DIRECTION('',(0.,0.,-1.)); -#43547=DIRECTION('',(-1.,0.,0.)); -#43548=DIRECTION('',(0.,0.,-1.)); -#43549=DIRECTION('',(-1.,0.,0.)); -#43550=DIRECTION('',(0.,0.,-1.)); -#43551=DIRECTION('',(1.,0.,0.)); -#43552=DIRECTION('',(0.,0.,-1.)); -#43553=DIRECTION('',(0.,0.,-1.)); -#43554=DIRECTION('',(0.,0.,-1.)); -#43555=DIRECTION('',(-1.,0.,0.)); -#43556=DIRECTION('',(0.,0.,-1.)); -#43557=DIRECTION('',(0.,0.,-1.)); -#43558=DIRECTION('',(1.,0.,0.)); -#43559=DIRECTION('',(0.,0.,-1.)); -#43560=DIRECTION('',(0.,0.,-1.)); -#43561=DIRECTION('',(0.,0.,-1.)); -#43562=DIRECTION('',(-1.,0.,0.)); -#43563=DIRECTION('',(0.,0.,-1.)); -#43564=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); -#43565=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#43566=DIRECTION('',(0.,0.,-1.)); -#43567=DIRECTION('',(0.,0.,-1.)); -#43568=DIRECTION('',(-1.,0.,0.)); -#43569=DIRECTION('',(0.,0.,-1.)); -#43570=DIRECTION('',(1.,0.,0.)); -#43571=DIRECTION('',(0.,0.,-1.)); -#43572=DIRECTION('',(-1.,0.,0.)); -#43573=DIRECTION('',(0.,0.,1.)); -#43574=DIRECTION('',(0.,0.,-1.)); -#43575=DIRECTION('',(0.,0.,-1.)); -#43576=DIRECTION('',(-1.,0.,0.)); -#43577=DIRECTION('',(0.,0.,-1.)); -#43578=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); -#43579=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#43580=DIRECTION('',(0.,0.,-1.)); -#43581=DIRECTION('',(0.,0.,-1.)); -#43582=DIRECTION('',(-1.,0.,0.)); -#43583=DIRECTION('',(0.,0.,-1.)); -#43584=DIRECTION('',(-1.,0.,0.)); -#43585=DIRECTION('',(0.,0.,1.)); -#43586=DIRECTION('',(0.,0.,-1.)); -#43587=DIRECTION('',(0.,0.,-1.)); -#43588=DIRECTION('',(-1.,0.,0.)); -#43589=DIRECTION('',(0.,0.,-1.)); -#43590=DIRECTION('',(0.,0.,-1.)); -#43591=DIRECTION('',(-1.,0.,0.)); -#43592=DIRECTION('',(0.,0.,-1.)); -#43593=DIRECTION('',(-1.,0.,0.)); -#43594=DIRECTION('',(0.,0.,-1.)); -#43595=DIRECTION('',(-1.,0.,0.)); -#43596=DIRECTION('',(0.,0.,1.)); -#43597=DIRECTION('',(0.,0.,-1.)); -#43598=DIRECTION('',(0.,0.,-1.)); -#43599=DIRECTION('',(-1.,0.,0.)); -#43600=DIRECTION('',(0.,0.,-1.)); -#43601=DIRECTION('',(-1.,0.,0.)); -#43602=DIRECTION('',(0.,0.,-1.)); -#43603=DIRECTION('',(1.,0.,0.)); -#43604=DIRECTION('',(0.,0.,-1.)); -#43605=DIRECTION('',(0.,0.,-1.)); -#43606=DIRECTION('',(0.,0.,-1.)); -#43607=DIRECTION('',(-1.,0.,0.)); -#43608=DIRECTION('',(0.,0.,-1.)); -#43609=DIRECTION('',(0.,0.,-1.)); -#43610=DIRECTION('',(1.,0.,0.)); -#43611=DIRECTION('',(0.,0.,-1.)); -#43612=DIRECTION('',(0.,0.,-1.)); -#43613=DIRECTION('',(0.,0.,-1.)); -#43614=DIRECTION('',(-1.,0.,0.)); -#43615=DIRECTION('',(0.,0.,-1.)); -#43616=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); -#43617=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#43618=DIRECTION('',(0.,0.,-1.)); -#43619=DIRECTION('',(0.,0.,-1.)); -#43620=DIRECTION('',(-1.,0.,0.)); -#43621=DIRECTION('',(0.,0.,-1.)); -#43622=DIRECTION('',(1.,0.,0.)); -#43623=DIRECTION('',(0.,0.,-1.)); -#43624=DIRECTION('',(-1.,9.12326820078609E-18,0.)); -#43625=DIRECTION('',(-9.12326820078609E-18,-1.,0.)); -#43626=DIRECTION('',(0.,0.,-1.)); -#43627=DIRECTION('',(0.,0.,-1.)); -#43628=DIRECTION('',(-1.,0.,0.)); -#43629=DIRECTION('',(0.,0.,-1.)); -#43630=DIRECTION('',(-0.866025403784437,-0.500000000000002,0.)); -#43631=DIRECTION('',(0.500000000000002,-0.866025403784437,0.)); -#43632=DIRECTION('',(0.,0.,-1.)); -#43633=DIRECTION('',(0.,0.,-1.)); -#43634=DIRECTION('',(-1.,0.,0.)); -#43635=DIRECTION('',(0.,0.,-1.)); -#43636=DIRECTION('',(-1.,0.,0.)); -#43637=DIRECTION('',(0.,0.,1.)); -#43638=DIRECTION('',(0.,0.,-1.)); -#43639=DIRECTION('',(0.,0.,-1.)); -#43640=DIRECTION('',(-1.,0.,0.)); -#43641=DIRECTION('',(0.,0.,-1.)); -#43642=DIRECTION('',(0.,0.,-1.)); -#43643=DIRECTION('',(-1.,0.,0.)); -#43644=DIRECTION('',(0.,0.,-1.)); -#43645=DIRECTION('',(-1.,0.,0.)); -#43646=DIRECTION('',(0.,0.,-1.)); -#43647=DIRECTION('',(-1.,0.,0.)); -#43648=DIRECTION('',(0.,0.,1.)); -#43649=DIRECTION('',(0.,0.,-1.)); -#43650=DIRECTION('',(0.,0.,-1.)); -#43651=DIRECTION('',(-1.,0.,0.)); -#43652=DIRECTION('',(0.,0.,-1.)); -#43653=DIRECTION('',(-1.,0.,0.)); -#43654=DIRECTION('',(0.,0.,-1.)); -#43655=DIRECTION('',(1.,0.,0.)); -#43656=DIRECTION('',(0.,0.,-1.)); -#43657=DIRECTION('',(0.,0.,-1.)); -#43658=DIRECTION('',(0.,0.,-1.)); -#43659=DIRECTION('',(-1.,0.,0.)); -#43660=DIRECTION('',(0.,0.,-1.)); -#43661=DIRECTION('',(0.,0.,-1.)); -#43662=DIRECTION('',(1.,0.,0.)); -#43663=DIRECTION('',(0.,0.,-1.)); -#43664=DIRECTION('',(0.,0.,-1.)); -#43665=DIRECTION('',(0.,0.,-1.)); -#43666=DIRECTION('',(-1.,0.,0.)); -#43667=DIRECTION('',(0.,0.,-1.)); -#43668=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); -#43669=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#43670=DIRECTION('',(0.,0.,-1.)); -#43671=DIRECTION('',(0.,0.,-1.)); -#43672=DIRECTION('',(-1.,0.,0.)); -#43673=DIRECTION('',(0.,0.,-1.)); -#43674=DIRECTION('',(1.,0.,0.)); -#43675=DIRECTION('',(0.,0.,-1.)); -#43676=DIRECTION('',(-1.,0.,0.)); -#43677=DIRECTION('',(0.,0.,1.)); -#43678=DIRECTION('',(0.,0.,-1.)); -#43679=DIRECTION('',(0.,0.,-1.)); -#43680=DIRECTION('',(-1.,0.,0.)); -#43681=DIRECTION('',(0.,0.,-1.)); -#43682=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); -#43683=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#43684=DIRECTION('',(0.,0.,-1.)); -#43685=DIRECTION('',(0.,0.,-1.)); -#43686=DIRECTION('',(-1.,0.,0.)); -#43687=DIRECTION('',(0.,0.,-1.)); -#43688=DIRECTION('',(-1.,0.,0.)); -#43689=DIRECTION('',(0.,0.,1.)); -#43690=DIRECTION('',(0.,0.,-1.)); -#43691=DIRECTION('',(0.,0.,-1.)); -#43692=DIRECTION('',(-1.,0.,0.)); -#43693=DIRECTION('',(0.,0.,-1.)); -#43694=DIRECTION('',(0.,0.,-1.)); -#43695=DIRECTION('',(-1.,0.,0.)); -#43696=DIRECTION('',(0.,0.,-1.)); -#43697=DIRECTION('',(-1.,0.,0.)); -#43698=DIRECTION('',(0.,0.,-1.)); -#43699=DIRECTION('',(-1.,0.,0.)); -#43700=DIRECTION('',(0.,0.,1.)); -#43701=DIRECTION('',(0.,0.,-1.)); -#43702=DIRECTION('',(0.,0.,-1.)); -#43703=DIRECTION('',(-1.,0.,0.)); -#43704=DIRECTION('',(0.,0.,-1.)); -#43705=DIRECTION('',(-1.,0.,0.)); -#43706=DIRECTION('',(0.,0.,-1.)); -#43707=DIRECTION('',(1.,0.,0.)); -#43708=DIRECTION('',(0.,0.,-1.)); -#43709=DIRECTION('',(0.,0.,-1.)); -#43710=DIRECTION('',(0.,0.,-1.)); -#43711=DIRECTION('',(-1.,0.,0.)); -#43712=DIRECTION('',(0.,0.,-1.)); -#43713=DIRECTION('',(0.,0.,-1.)); -#43714=DIRECTION('',(1.,0.,0.)); -#43715=DIRECTION('',(0.,0.,-1.)); -#43716=DIRECTION('',(0.,0.,-1.)); -#43717=DIRECTION('',(0.,0.,-1.)); -#43718=DIRECTION('',(-1.,0.,0.)); -#43719=DIRECTION('',(0.,0.,-1.)); -#43720=DIRECTION('',(0.866025403784439,-0.5,0.)); -#43721=DIRECTION('',(0.5,0.866025403784439,0.)); -#43722=DIRECTION('',(0.,0.,-1.)); -#43723=DIRECTION('',(0.,0.,-1.)); -#43724=DIRECTION('',(-1.,0.,0.)); -#43725=DIRECTION('',(0.,0.,-1.)); -#43726=DIRECTION('',(1.,0.,0.)); -#43727=DIRECTION('',(0.,0.,-1.)); -#43728=DIRECTION('',(-1.,0.,0.)); -#43729=DIRECTION('',(0.,0.,1.)); -#43730=DIRECTION('',(0.,0.,-1.)); -#43731=DIRECTION('',(0.,0.,-1.)); -#43732=DIRECTION('',(-1.,0.,0.)); -#43733=DIRECTION('',(0.,0.,-1.)); -#43734=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); -#43735=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#43736=DIRECTION('',(0.,0.,-1.)); -#43737=DIRECTION('',(0.,0.,-1.)); -#43738=DIRECTION('',(-1.,0.,0.)); -#43739=DIRECTION('',(0.,0.,-1.)); -#43740=DIRECTION('',(-1.,0.,0.)); -#43741=DIRECTION('',(0.,0.,1.)); -#43742=DIRECTION('',(0.,0.,-1.)); -#43743=DIRECTION('',(0.,0.,-1.)); -#43744=DIRECTION('',(-1.,0.,0.)); -#43745=DIRECTION('',(0.,0.,-1.)); -#43746=DIRECTION('',(0.,0.,-1.)); -#43747=DIRECTION('',(-1.,0.,0.)); -#43748=DIRECTION('',(0.,0.,-1.)); -#43749=DIRECTION('',(-1.,0.,0.)); -#43750=DIRECTION('',(0.,0.,-1.)); -#43751=DIRECTION('',(-1.,0.,0.)); -#43752=DIRECTION('',(0.,0.,1.)); -#43753=DIRECTION('',(0.,0.,-1.)); -#43754=DIRECTION('',(0.,0.,-1.)); -#43755=DIRECTION('',(-1.,0.,0.)); -#43756=DIRECTION('',(0.,0.,-1.)); -#43757=DIRECTION('',(-1.,0.,0.)); -#43758=DIRECTION('',(0.,0.,-1.)); -#43759=DIRECTION('',(1.,0.,0.)); -#43760=DIRECTION('',(0.,0.,-1.)); -#43761=DIRECTION('',(0.,0.,-1.)); -#43762=DIRECTION('',(0.,0.,-1.)); -#43763=DIRECTION('',(-1.,0.,0.)); -#43764=DIRECTION('',(0.,0.,-1.)); -#43765=DIRECTION('',(0.,0.,-1.)); -#43766=DIRECTION('',(1.,0.,0.)); -#43767=DIRECTION('',(0.,0.,-1.)); -#43768=DIRECTION('',(0.,0.,-1.)); -#43769=DIRECTION('',(0.,0.,-1.)); -#43770=DIRECTION('',(-1.,0.,0.)); -#43771=DIRECTION('',(0.,0.,-1.)); -#43772=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#43773=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#43774=DIRECTION('',(0.,0.,-1.)); -#43775=DIRECTION('',(0.,0.,-1.)); -#43776=DIRECTION('',(-1.,0.,0.)); -#43777=DIRECTION('',(0.,0.,-1.)); -#43778=DIRECTION('',(1.,0.,0.)); -#43779=DIRECTION('',(0.,0.,-1.)); -#43780=DIRECTION('',(-1.,0.,0.)); -#43781=DIRECTION('',(0.,0.,1.)); -#43782=DIRECTION('',(0.,0.,-1.)); -#43783=DIRECTION('',(0.,0.,-1.)); -#43784=DIRECTION('',(-1.,0.,0.)); -#43785=DIRECTION('',(0.,0.,-1.)); -#43786=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43787=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43788=DIRECTION('',(0.,0.,-1.)); -#43789=DIRECTION('',(0.,0.,-1.)); -#43790=DIRECTION('',(-1.,0.,0.)); -#43791=DIRECTION('',(0.,0.,-1.)); -#43792=DIRECTION('',(-1.,0.,0.)); -#43793=DIRECTION('',(0.,0.,1.)); -#43794=DIRECTION('',(0.,0.,-1.)); -#43795=DIRECTION('',(0.,0.,-1.)); -#43796=DIRECTION('',(-1.,0.,0.)); -#43797=DIRECTION('',(0.,0.,-1.)); -#43798=DIRECTION('',(0.,0.,-1.)); -#43799=DIRECTION('',(-1.,0.,0.)); -#43800=DIRECTION('',(0.,0.,-1.)); -#43801=DIRECTION('',(-1.,0.,0.)); -#43802=DIRECTION('',(0.,0.,-1.)); -#43803=DIRECTION('',(-1.,0.,0.)); -#43804=DIRECTION('',(0.,0.,1.)); -#43805=DIRECTION('',(0.,0.,-1.)); -#43806=DIRECTION('',(0.,0.,-1.)); -#43807=DIRECTION('',(-1.,0.,0.)); -#43808=DIRECTION('',(0.,0.,-1.)); -#43809=DIRECTION('',(-1.,0.,0.)); -#43810=DIRECTION('',(0.,0.,-1.)); -#43811=DIRECTION('',(1.,0.,0.)); -#43812=DIRECTION('',(0.,0.,-1.)); -#43813=DIRECTION('',(0.,0.,-1.)); -#43814=DIRECTION('',(0.,0.,-1.)); -#43815=DIRECTION('',(-1.,0.,0.)); -#43816=DIRECTION('',(0.,0.,-1.)); -#43817=DIRECTION('',(0.,0.,-1.)); -#43818=DIRECTION('',(1.,0.,0.)); -#43819=DIRECTION('',(0.,0.,-1.)); -#43820=DIRECTION('',(0.,0.,-1.)); -#43821=DIRECTION('',(0.,0.,-1.)); -#43822=DIRECTION('',(-1.,0.,0.)); -#43823=DIRECTION('',(0.,0.,-1.)); -#43824=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); -#43825=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#43826=DIRECTION('',(0.,0.,-1.)); -#43827=DIRECTION('',(0.,0.,-1.)); -#43828=DIRECTION('',(-1.,0.,0.)); -#43829=DIRECTION('',(0.,0.,-1.)); -#43830=DIRECTION('',(1.,0.,0.)); -#43831=DIRECTION('',(0.,0.,-1.)); -#43832=DIRECTION('',(-1.,0.,0.)); -#43833=DIRECTION('',(0.,0.,1.)); -#43834=DIRECTION('',(0.,0.,-1.)); -#43835=DIRECTION('',(0.,0.,-1.)); -#43836=DIRECTION('',(-1.,0.,0.)); -#43837=DIRECTION('',(0.,0.,-1.)); -#43838=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43839=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43840=DIRECTION('',(0.,0.,-1.)); -#43841=DIRECTION('',(0.,0.,-1.)); -#43842=DIRECTION('',(-1.,0.,0.)); -#43843=DIRECTION('',(0.,0.,-1.)); -#43844=DIRECTION('',(-1.,0.,0.)); -#43845=DIRECTION('',(0.,0.,1.)); -#43846=DIRECTION('',(0.,0.,-1.)); -#43847=DIRECTION('',(0.,0.,-1.)); -#43848=DIRECTION('',(-1.,0.,0.)); -#43849=DIRECTION('',(0.,0.,-1.)); -#43850=DIRECTION('',(0.,0.,-1.)); -#43851=DIRECTION('',(-1.,0.,0.)); -#43852=DIRECTION('',(0.,0.,-1.)); -#43853=DIRECTION('',(-1.,0.,0.)); -#43854=DIRECTION('',(0.,0.,-1.)); -#43855=DIRECTION('',(-1.,0.,0.)); -#43856=DIRECTION('',(0.,0.,1.)); -#43857=DIRECTION('',(0.,0.,-1.)); -#43858=DIRECTION('',(0.,0.,-1.)); -#43859=DIRECTION('',(-1.,0.,0.)); -#43860=DIRECTION('',(0.,0.,-1.)); -#43861=DIRECTION('',(-1.,0.,0.)); -#43862=DIRECTION('',(0.,0.,-1.)); -#43863=DIRECTION('',(1.,0.,0.)); -#43864=DIRECTION('',(0.,0.,-1.)); -#43865=DIRECTION('',(0.,0.,-1.)); -#43866=DIRECTION('',(0.,0.,-1.)); -#43867=DIRECTION('',(-1.,0.,0.)); -#43868=DIRECTION('',(0.,0.,-1.)); -#43869=DIRECTION('',(0.,0.,-1.)); -#43870=DIRECTION('',(1.,0.,0.)); -#43871=DIRECTION('',(0.,0.,-1.)); -#43872=DIRECTION('',(0.,0.,-1.)); -#43873=DIRECTION('',(0.,0.,-1.)); -#43874=DIRECTION('',(-1.,0.,0.)); -#43875=DIRECTION('',(0.,0.,-1.)); -#43876=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); -#43877=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#43878=DIRECTION('',(0.,0.,-1.)); -#43879=DIRECTION('',(0.,0.,-1.)); -#43880=DIRECTION('',(-1.,0.,0.)); -#43881=DIRECTION('',(0.,0.,-1.)); -#43882=DIRECTION('',(1.,0.,0.)); -#43883=DIRECTION('',(0.,0.,-1.)); -#43884=DIRECTION('',(-1.,0.,0.)); -#43885=DIRECTION('',(0.,0.,1.)); -#43886=DIRECTION('',(0.,0.,-1.)); -#43887=DIRECTION('',(0.,0.,-1.)); -#43888=DIRECTION('',(-1.,0.,0.)); -#43889=DIRECTION('',(0.,0.,-1.)); -#43890=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43891=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43892=DIRECTION('',(0.,0.,-1.)); -#43893=DIRECTION('',(0.,0.,-1.)); -#43894=DIRECTION('',(-1.,0.,0.)); -#43895=DIRECTION('',(0.,0.,-1.)); -#43896=DIRECTION('',(-1.,0.,0.)); -#43897=DIRECTION('',(0.,0.,1.)); -#43898=DIRECTION('',(0.,0.,-1.)); -#43899=DIRECTION('',(0.,0.,-1.)); -#43900=DIRECTION('',(-1.,0.,0.)); -#43901=DIRECTION('',(0.,0.,-1.)); -#43902=DIRECTION('',(0.,0.,-1.)); -#43903=DIRECTION('',(-1.,0.,0.)); -#43904=DIRECTION('',(0.,0.,-1.)); -#43905=DIRECTION('',(-1.,0.,0.)); -#43906=DIRECTION('',(0.,0.,-1.)); -#43907=DIRECTION('',(-1.,0.,0.)); -#43908=DIRECTION('',(0.,0.,1.)); -#43909=DIRECTION('',(0.,0.,-1.)); -#43910=DIRECTION('',(0.,0.,-1.)); -#43911=DIRECTION('',(-1.,0.,0.)); -#43912=DIRECTION('',(0.,0.,-1.)); -#43913=DIRECTION('',(-1.,0.,0.)); -#43914=DIRECTION('',(0.,0.,-1.)); -#43915=DIRECTION('',(1.,0.,0.)); -#43916=DIRECTION('',(0.,0.,-1.)); -#43917=DIRECTION('',(0.,0.,-1.)); -#43918=DIRECTION('',(0.,0.,-1.)); -#43919=DIRECTION('',(-1.,0.,0.)); -#43920=DIRECTION('',(0.,0.,-1.)); -#43921=DIRECTION('',(0.,0.,-1.)); -#43922=DIRECTION('',(1.,0.,0.)); -#43923=DIRECTION('',(0.,0.,-1.)); -#43924=DIRECTION('',(0.,0.,-1.)); -#43925=DIRECTION('',(0.,0.,-1.)); -#43926=DIRECTION('',(-1.,0.,0.)); -#43927=DIRECTION('',(0.,0.,-1.)); -#43928=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#43929=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#43930=DIRECTION('',(0.,0.,-1.)); -#43931=DIRECTION('',(0.,0.,-1.)); -#43932=DIRECTION('',(-1.,0.,0.)); -#43933=DIRECTION('',(0.,0.,-1.)); -#43934=DIRECTION('',(1.,0.,0.)); -#43935=DIRECTION('',(0.,0.,-1.)); -#43936=DIRECTION('',(-1.,0.,0.)); -#43937=DIRECTION('',(0.,0.,1.)); -#43938=DIRECTION('',(0.,0.,-1.)); -#43939=DIRECTION('',(0.,0.,-1.)); -#43940=DIRECTION('',(-1.,0.,0.)); -#43941=DIRECTION('',(0.,0.,-1.)); -#43942=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43943=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43944=DIRECTION('',(0.,0.,-1.)); -#43945=DIRECTION('',(0.,0.,-1.)); -#43946=DIRECTION('',(-1.,0.,0.)); -#43947=DIRECTION('',(0.,0.,-1.)); -#43948=DIRECTION('',(-1.,0.,0.)); -#43949=DIRECTION('',(0.,0.,1.)); -#43950=DIRECTION('',(0.,0.,-1.)); -#43951=DIRECTION('',(0.,0.,-1.)); -#43952=DIRECTION('',(-1.,0.,0.)); -#43953=DIRECTION('',(0.,0.,-1.)); -#43954=DIRECTION('',(0.,0.,-1.)); -#43955=DIRECTION('',(-1.,0.,0.)); -#43956=DIRECTION('',(0.,0.,-1.)); -#43957=DIRECTION('',(-1.,0.,0.)); -#43958=DIRECTION('',(0.,0.,-1.)); -#43959=DIRECTION('',(-1.,0.,0.)); -#43960=DIRECTION('',(0.,0.,1.)); -#43961=DIRECTION('',(0.,0.,-1.)); -#43962=DIRECTION('',(0.,0.,-1.)); -#43963=DIRECTION('',(-1.,0.,0.)); -#43964=DIRECTION('',(0.,0.,-1.)); -#43965=DIRECTION('',(-1.,0.,0.)); -#43966=DIRECTION('',(0.,0.,-1.)); -#43967=DIRECTION('',(1.,0.,0.)); -#43968=DIRECTION('',(0.,0.,-1.)); -#43969=DIRECTION('',(0.,0.,-1.)); -#43970=DIRECTION('',(0.,0.,-1.)); -#43971=DIRECTION('',(-1.,0.,0.)); -#43972=DIRECTION('',(0.,0.,-1.)); -#43973=DIRECTION('',(0.,0.,-1.)); -#43974=DIRECTION('',(1.,0.,0.)); -#43975=DIRECTION('',(0.,0.,-1.)); -#43976=DIRECTION('',(0.,0.,-1.)); -#43977=DIRECTION('',(0.,0.,-1.)); -#43978=DIRECTION('',(-1.,0.,0.)); -#43979=DIRECTION('',(0.,0.,-1.)); -#43980=DIRECTION('',(0.866025403784442,-0.499999999999995,0.)); -#43981=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); -#43982=DIRECTION('',(0.,0.,-1.)); -#43983=DIRECTION('',(0.,0.,-1.)); -#43984=DIRECTION('',(-1.,0.,0.)); -#43985=DIRECTION('',(0.,0.,-1.)); -#43986=DIRECTION('',(1.,0.,0.)); -#43987=DIRECTION('',(0.,0.,-1.)); -#43988=DIRECTION('',(-1.,0.,0.)); -#43989=DIRECTION('',(0.,0.,1.)); -#43990=DIRECTION('',(0.,0.,-1.)); -#43991=DIRECTION('',(0.,0.,-1.)); -#43992=DIRECTION('',(-1.,0.,0.)); -#43993=DIRECTION('',(0.,0.,-1.)); -#43994=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#43995=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#43996=DIRECTION('',(0.,0.,-1.)); -#43997=DIRECTION('',(0.,0.,-1.)); -#43998=DIRECTION('',(-1.,0.,0.)); -#43999=DIRECTION('',(0.,0.,-1.)); -#44000=DIRECTION('',(-1.,0.,0.)); -#44001=DIRECTION('',(0.,0.,1.)); -#44002=DIRECTION('',(0.,0.,-1.)); -#44003=DIRECTION('',(0.,0.,-1.)); -#44004=DIRECTION('',(-1.,0.,0.)); -#44005=DIRECTION('',(0.,0.,-1.)); -#44006=DIRECTION('',(0.,0.,-1.)); -#44007=DIRECTION('',(-1.,0.,0.)); -#44008=DIRECTION('',(0.,0.,-1.)); -#44009=DIRECTION('',(-1.,0.,0.)); -#44010=DIRECTION('',(0.,0.,-1.)); -#44011=DIRECTION('',(-1.,0.,0.)); -#44012=DIRECTION('',(0.,0.,1.)); -#44013=DIRECTION('',(0.,0.,-1.)); -#44014=DIRECTION('',(0.,0.,-1.)); -#44015=DIRECTION('',(-1.,0.,0.)); -#44016=DIRECTION('',(0.,0.,-1.)); -#44017=DIRECTION('',(-1.,0.,0.)); -#44018=DIRECTION('',(0.,0.,-1.)); -#44019=DIRECTION('',(1.,0.,0.)); -#44020=DIRECTION('',(0.,0.,-1.)); -#44021=DIRECTION('',(0.,0.,-1.)); -#44022=DIRECTION('',(0.,0.,-1.)); -#44023=DIRECTION('',(-1.,0.,0.)); -#44024=DIRECTION('',(0.,0.,-1.)); -#44025=DIRECTION('',(0.,0.,-1.)); -#44026=DIRECTION('',(1.,0.,0.)); -#44027=DIRECTION('',(0.,0.,-1.)); -#44028=DIRECTION('',(0.,0.,-1.)); -#44029=DIRECTION('',(0.,0.,-1.)); -#44030=DIRECTION('',(-1.,0.,0.)); -#44031=DIRECTION('',(0.,0.,-1.)); -#44032=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#44033=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#44034=DIRECTION('',(0.,0.,-1.)); -#44035=DIRECTION('',(0.,0.,-1.)); -#44036=DIRECTION('',(-1.,0.,0.)); -#44037=DIRECTION('',(0.,0.,-1.)); -#44038=DIRECTION('',(1.,0.,0.)); -#44039=DIRECTION('',(0.,0.,-1.)); -#44040=DIRECTION('',(-1.,0.,0.)); -#44041=DIRECTION('',(0.,0.,1.)); -#44042=DIRECTION('',(0.,0.,-1.)); -#44043=DIRECTION('',(0.,0.,-1.)); -#44044=DIRECTION('',(-1.,0.,0.)); -#44045=DIRECTION('',(0.,0.,-1.)); -#44046=DIRECTION('',(-0.86602540378444,-0.499999999999998,0.)); -#44047=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); -#44048=DIRECTION('',(0.,0.,-1.)); -#44049=DIRECTION('',(0.,0.,-1.)); -#44050=DIRECTION('',(-1.,0.,0.)); -#44051=DIRECTION('',(0.,0.,-1.)); -#44052=DIRECTION('',(-1.,0.,0.)); -#44053=DIRECTION('',(0.,0.,1.)); -#44054=DIRECTION('',(0.,0.,-1.)); -#44055=DIRECTION('',(0.,0.,-1.)); -#44056=DIRECTION('',(-1.,0.,0.)); -#44057=DIRECTION('',(0.,0.,-1.)); -#44058=DIRECTION('',(0.,0.,-1.)); -#44059=DIRECTION('',(-1.,0.,0.)); -#44060=DIRECTION('',(0.,0.,-1.)); -#44061=DIRECTION('',(-1.,0.,0.)); -#44062=DIRECTION('',(0.,0.,-1.)); -#44063=DIRECTION('',(-1.,0.,0.)); -#44064=DIRECTION('',(0.,0.,1.)); -#44065=DIRECTION('',(0.,0.,-1.)); -#44066=DIRECTION('',(0.,0.,-1.)); -#44067=DIRECTION('',(-1.,0.,0.)); -#44068=DIRECTION('',(0.,0.,-1.)); -#44069=DIRECTION('',(-1.,0.,0.)); -#44070=DIRECTION('',(0.,0.,-1.)); -#44071=DIRECTION('',(1.,0.,0.)); -#44072=DIRECTION('',(0.,0.,-1.)); -#44073=DIRECTION('',(0.,0.,-1.)); -#44074=DIRECTION('',(0.,0.,-1.)); -#44075=DIRECTION('',(-1.,0.,0.)); -#44076=DIRECTION('',(0.,0.,-1.)); -#44077=DIRECTION('',(0.,0.,-1.)); -#44078=DIRECTION('',(1.,0.,0.)); -#44079=DIRECTION('',(0.,0.,-1.)); -#44080=DIRECTION('',(0.,0.,-1.)); -#44081=DIRECTION('',(0.,0.,-1.)); -#44082=DIRECTION('',(-1.,0.,0.)); -#44083=DIRECTION('',(0.,0.,-1.)); -#44084=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#44085=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#44086=DIRECTION('',(0.,0.,-1.)); -#44087=DIRECTION('',(0.,0.,-1.)); -#44088=DIRECTION('',(-1.,0.,0.)); -#44089=DIRECTION('',(0.,0.,-1.)); -#44090=DIRECTION('',(1.,0.,0.)); -#44091=DIRECTION('',(0.,0.,-1.)); -#44092=DIRECTION('',(-1.,2.91944582425155E-16,0.)); -#44093=DIRECTION('',(-2.91944582425155E-16,-1.,0.)); -#44094=DIRECTION('',(0.,0.,-1.)); -#44095=DIRECTION('',(0.,0.,-1.)); -#44096=DIRECTION('',(-1.,0.,0.)); -#44097=DIRECTION('',(0.,0.,-1.)); -#44098=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44099=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44100=DIRECTION('',(0.,0.,-1.)); -#44101=DIRECTION('',(0.,0.,-1.)); -#44102=DIRECTION('',(-1.,0.,0.)); -#44103=DIRECTION('',(0.,0.,-1.)); -#44104=DIRECTION('',(-1.,0.,0.)); -#44105=DIRECTION('',(0.,0.,1.)); -#44106=DIRECTION('',(0.,0.,-1.)); -#44107=DIRECTION('',(0.,0.,-1.)); -#44108=DIRECTION('',(-1.,0.,0.)); -#44109=DIRECTION('',(0.,0.,-1.)); -#44110=DIRECTION('',(0.,0.,-1.)); -#44111=DIRECTION('',(-1.,0.,0.)); -#44112=DIRECTION('',(0.,0.,-1.)); -#44113=DIRECTION('',(-1.,0.,0.)); -#44114=DIRECTION('',(0.,0.,-1.)); -#44115=DIRECTION('',(-1.,0.,0.)); -#44116=DIRECTION('',(0.,0.,1.)); -#44117=DIRECTION('',(0.,0.,-1.)); -#44118=DIRECTION('',(0.,0.,-1.)); -#44119=DIRECTION('',(-1.,0.,0.)); -#44120=DIRECTION('',(0.,0.,-1.)); -#44121=DIRECTION('',(-1.,0.,0.)); -#44122=DIRECTION('',(0.,0.,-1.)); -#44123=DIRECTION('',(0.,0.,-1.)); -#44124=DIRECTION('',(1.,0.,0.)); -#44125=DIRECTION('',(0.,0.,-1.)); -#44126=DIRECTION('',(0.,0.,-1.)); -#44127=DIRECTION('',(0.,0.,-1.)); -#44128=DIRECTION('',(-1.,0.,0.)); -#44129=DIRECTION('',(0.,0.,-1.)); -#44130=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#44131=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#44132=DIRECTION('',(0.,0.,-1.)); -#44133=DIRECTION('',(0.,0.,-1.)); -#44134=DIRECTION('',(-1.,0.,0.)); -#44135=DIRECTION('',(0.,0.,-1.)); -#44136=DIRECTION('',(1.,0.,0.)); -#44137=DIRECTION('',(0.,0.,-1.)); -#44138=DIRECTION('',(-1.,0.,0.)); -#44139=DIRECTION('',(0.,0.,1.)); -#44140=DIRECTION('',(0.,0.,-1.)); -#44141=DIRECTION('',(0.,0.,-1.)); -#44142=DIRECTION('',(-1.,0.,0.)); -#44143=DIRECTION('',(0.,0.,-1.)); -#44144=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44145=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44146=DIRECTION('',(0.,0.,-1.)); -#44147=DIRECTION('',(0.,0.,-1.)); -#44148=DIRECTION('',(-1.,0.,0.)); -#44149=DIRECTION('',(0.,0.,-1.)); -#44150=DIRECTION('',(-1.,0.,0.)); -#44151=DIRECTION('',(0.,0.,1.)); -#44152=DIRECTION('',(0.,0.,-1.)); -#44153=DIRECTION('',(0.,0.,-1.)); -#44154=DIRECTION('',(-1.,0.,0.)); -#44155=DIRECTION('',(0.,0.,-1.)); -#44156=DIRECTION('',(1.,0.,0.)); -#44157=DIRECTION('',(0.,0.,-1.)); -#44158=DIRECTION('',(0.,0.,-1.)); -#44159=DIRECTION('',(0.,0.,-1.)); -#44160=DIRECTION('',(0.,0.,-1.)); -#44161=DIRECTION('',(-1.,0.,0.)); -#44162=DIRECTION('',(0.,0.,-1.)); -#44163=DIRECTION('',(-1.,0.,0.)); -#44164=DIRECTION('',(0.,0.,-1.)); -#44165=DIRECTION('',(-1.,0.,0.)); -#44166=DIRECTION('',(0.,0.,1.)); -#44167=DIRECTION('',(0.,0.,-1.)); -#44168=DIRECTION('',(0.,0.,-1.)); -#44169=DIRECTION('',(-1.,0.,0.)); -#44170=DIRECTION('',(0.,0.,-1.)); -#44171=DIRECTION('',(-1.,0.,0.)); -#44172=DIRECTION('',(0.,0.,-1.)); -#44173=DIRECTION('',(-1.,0.,0.)); -#44174=DIRECTION('',(0.,0.,-1.)); -#44175=DIRECTION('',(0.,0.,-1.)); -#44176=DIRECTION('',(1.,0.,0.)); -#44177=DIRECTION('',(0.,0.,-1.)); -#44178=DIRECTION('',(0.,0.,-1.)); -#44179=DIRECTION('',(0.,0.,-1.)); -#44180=DIRECTION('',(-1.,0.,0.)); -#44181=DIRECTION('',(0.,0.,-1.)); -#44182=DIRECTION('',(0.866025403784442,-0.499999999999995,0.)); -#44183=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); -#44184=DIRECTION('',(0.,0.,-1.)); -#44185=DIRECTION('',(0.,0.,-1.)); -#44186=DIRECTION('',(-1.,0.,0.)); -#44187=DIRECTION('',(0.,0.,-1.)); -#44188=DIRECTION('',(1.,0.,0.)); -#44189=DIRECTION('',(0.,0.,-1.)); -#44190=DIRECTION('',(-1.,0.,0.)); -#44191=DIRECTION('',(0.,0.,1.)); -#44192=DIRECTION('',(0.,0.,-1.)); -#44193=DIRECTION('',(0.,0.,-1.)); -#44194=DIRECTION('',(-1.,0.,0.)); -#44195=DIRECTION('',(0.,0.,-1.)); -#44196=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44197=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44198=DIRECTION('',(0.,0.,-1.)); -#44199=DIRECTION('',(0.,0.,-1.)); -#44200=DIRECTION('',(-1.,0.,0.)); -#44201=DIRECTION('',(0.,0.,-1.)); -#44202=DIRECTION('',(-1.,0.,0.)); -#44203=DIRECTION('',(0.,0.,1.)); -#44204=DIRECTION('',(0.,0.,-1.)); -#44205=DIRECTION('',(0.,0.,-1.)); -#44206=DIRECTION('',(-1.,0.,0.)); -#44207=DIRECTION('',(0.,0.,-1.)); -#44208=DIRECTION('',(1.,0.,0.)); -#44209=DIRECTION('',(0.,0.,-1.)); -#44210=DIRECTION('',(0.,0.,-1.)); -#44211=DIRECTION('',(0.,0.,-1.)); -#44212=DIRECTION('',(0.,0.,-1.)); -#44213=DIRECTION('',(-1.,0.,0.)); -#44214=DIRECTION('',(0.,0.,-1.)); -#44215=DIRECTION('',(-1.,0.,0.)); -#44216=DIRECTION('',(0.,0.,-1.)); -#44217=DIRECTION('',(-1.,0.,0.)); -#44218=DIRECTION('',(0.,0.,1.)); -#44219=DIRECTION('',(0.,0.,-1.)); -#44220=DIRECTION('',(0.,0.,-1.)); -#44221=DIRECTION('',(-1.,0.,0.)); -#44222=DIRECTION('',(0.,0.,-1.)); -#44223=DIRECTION('',(-1.,0.,0.)); -#44224=DIRECTION('',(0.,0.,-1.)); -#44225=DIRECTION('',(-1.,0.,0.)); -#44226=DIRECTION('',(0.,0.,-1.)); -#44227=DIRECTION('',(0.,0.,-1.)); -#44228=DIRECTION('',(1.,0.,0.)); -#44229=DIRECTION('',(0.,0.,-1.)); -#44230=DIRECTION('',(0.,0.,-1.)); -#44231=DIRECTION('',(0.,0.,-1.)); -#44232=DIRECTION('',(-1.,0.,0.)); -#44233=DIRECTION('',(0.,0.,-1.)); -#44234=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#44235=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#44236=DIRECTION('',(0.,0.,-1.)); -#44237=DIRECTION('',(0.,0.,-1.)); -#44238=DIRECTION('',(-1.,0.,0.)); -#44239=DIRECTION('',(0.,0.,-1.)); -#44240=DIRECTION('',(1.,0.,0.)); -#44241=DIRECTION('',(0.,0.,-1.)); -#44242=DIRECTION('',(-1.,0.,0.)); -#44243=DIRECTION('',(0.,0.,1.)); -#44244=DIRECTION('',(0.,0.,-1.)); -#44245=DIRECTION('',(0.,0.,-1.)); -#44246=DIRECTION('',(-1.,0.,0.)); -#44247=DIRECTION('',(0.,0.,-1.)); -#44248=DIRECTION('',(-0.86602540378444,-0.499999999999998,0.)); -#44249=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); -#44250=DIRECTION('',(0.,0.,-1.)); -#44251=DIRECTION('',(0.,0.,-1.)); -#44252=DIRECTION('',(-1.,0.,0.)); -#44253=DIRECTION('',(0.,0.,-1.)); -#44254=DIRECTION('',(-1.,0.,0.)); -#44255=DIRECTION('',(0.,0.,1.)); -#44256=DIRECTION('',(0.,0.,-1.)); -#44257=DIRECTION('',(0.,0.,-1.)); -#44258=DIRECTION('',(-1.,0.,0.)); -#44259=DIRECTION('',(0.,0.,-1.)); -#44260=DIRECTION('',(1.,0.,0.)); -#44261=DIRECTION('',(0.,0.,-1.)); -#44262=DIRECTION('',(0.,0.,-1.)); -#44263=DIRECTION('',(0.,0.,-1.)); -#44264=DIRECTION('',(0.,0.,-1.)); -#44265=DIRECTION('',(-1.,0.,0.)); -#44266=DIRECTION('',(0.,0.,-1.)); -#44267=DIRECTION('',(-1.,0.,0.)); -#44268=DIRECTION('',(0.,0.,-1.)); -#44269=DIRECTION('',(-1.,0.,0.)); -#44270=DIRECTION('',(0.,0.,1.)); -#44271=DIRECTION('',(0.,0.,-1.)); -#44272=DIRECTION('',(0.,0.,-1.)); -#44273=DIRECTION('',(-1.,0.,0.)); -#44274=DIRECTION('',(0.,0.,-1.)); -#44275=DIRECTION('',(-1.,0.,0.)); -#44276=DIRECTION('',(0.,0.,-1.)); -#44277=DIRECTION('',(-1.,0.,0.)); -#44278=DIRECTION('',(0.,0.,-1.)); -#44279=DIRECTION('',(0.,0.,-1.)); -#44280=DIRECTION('',(1.,0.,0.)); -#44281=DIRECTION('',(0.,0.,-1.)); -#44282=DIRECTION('',(0.,0.,-1.)); -#44283=DIRECTION('',(0.,0.,-1.)); -#44284=DIRECTION('',(-1.,0.,0.)); -#44285=DIRECTION('',(0.,0.,-1.)); -#44286=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#44287=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#44288=DIRECTION('',(0.,0.,-1.)); -#44289=DIRECTION('',(0.,0.,-1.)); -#44290=DIRECTION('',(-1.,0.,0.)); -#44291=DIRECTION('',(0.,0.,-1.)); -#44292=DIRECTION('',(1.,0.,0.)); -#44293=DIRECTION('',(0.,0.,-1.)); -#44294=DIRECTION('',(-1.,0.,0.)); -#44295=DIRECTION('',(0.,0.,1.)); -#44296=DIRECTION('',(0.,0.,-1.)); -#44297=DIRECTION('',(0.,0.,-1.)); -#44298=DIRECTION('',(-1.,0.,0.)); -#44299=DIRECTION('',(0.,0.,-1.)); -#44300=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44301=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44302=DIRECTION('',(0.,0.,-1.)); -#44303=DIRECTION('',(0.,0.,-1.)); -#44304=DIRECTION('',(-1.,0.,0.)); -#44305=DIRECTION('',(0.,0.,-1.)); -#44306=DIRECTION('',(-1.,0.,0.)); -#44307=DIRECTION('',(0.,0.,1.)); -#44308=DIRECTION('',(0.,0.,-1.)); -#44309=DIRECTION('',(0.,0.,-1.)); -#44310=DIRECTION('',(-1.,0.,0.)); -#44311=DIRECTION('',(0.,0.,-1.)); -#44312=DIRECTION('',(1.,0.,0.)); -#44313=DIRECTION('',(0.,0.,-1.)); -#44314=DIRECTION('',(0.,0.,-1.)); -#44315=DIRECTION('',(0.,0.,-1.)); -#44316=DIRECTION('',(0.,0.,-1.)); -#44317=DIRECTION('',(-1.,0.,0.)); -#44318=DIRECTION('',(0.,0.,-1.)); -#44319=DIRECTION('',(-1.,0.,0.)); -#44320=DIRECTION('',(0.,0.,-1.)); -#44321=DIRECTION('',(-1.,0.,0.)); -#44322=DIRECTION('',(0.,0.,1.)); -#44323=DIRECTION('',(0.,0.,-1.)); -#44324=DIRECTION('',(0.,0.,-1.)); -#44325=DIRECTION('',(-1.,0.,0.)); -#44326=DIRECTION('',(0.,0.,-1.)); -#44327=DIRECTION('',(-1.,0.,0.)); -#44328=DIRECTION('',(0.,0.,-1.)); -#44329=DIRECTION('',(-1.,0.,0.)); -#44330=DIRECTION('',(0.,0.,-1.)); -#44331=DIRECTION('',(0.,0.,-1.)); -#44332=DIRECTION('',(1.,0.,0.)); -#44333=DIRECTION('',(0.,0.,-1.)); -#44334=DIRECTION('',(0.,0.,-1.)); -#44335=DIRECTION('',(0.,0.,-1.)); -#44336=DIRECTION('',(-1.,0.,0.)); -#44337=DIRECTION('',(0.,0.,-1.)); -#44338=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#44339=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#44340=DIRECTION('',(0.,0.,-1.)); -#44341=DIRECTION('',(0.,0.,-1.)); -#44342=DIRECTION('',(-1.,0.,0.)); -#44343=DIRECTION('',(0.,0.,-1.)); -#44344=DIRECTION('',(1.,0.,0.)); -#44345=DIRECTION('',(0.,0.,-1.)); -#44346=DIRECTION('',(-1.,0.,0.)); -#44347=DIRECTION('',(0.,0.,1.)); -#44348=DIRECTION('',(0.,0.,-1.)); -#44349=DIRECTION('',(0.,0.,-1.)); -#44350=DIRECTION('',(-1.,0.,0.)); -#44351=DIRECTION('',(0.,0.,-1.)); -#44352=DIRECTION('',(-0.866025403784438,-0.500000000000001,0.)); -#44353=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); -#44354=DIRECTION('',(0.,0.,-1.)); -#44355=DIRECTION('',(0.,0.,-1.)); -#44356=DIRECTION('',(-1.,0.,0.)); -#44357=DIRECTION('',(0.,0.,-1.)); -#44358=DIRECTION('',(-1.,0.,0.)); -#44359=DIRECTION('',(0.,0.,1.)); -#44360=DIRECTION('',(0.,0.,-1.)); -#44361=DIRECTION('',(0.,0.,-1.)); -#44362=DIRECTION('',(-1.,0.,0.)); -#44363=DIRECTION('',(0.,0.,-1.)); -#44364=DIRECTION('',(1.,0.,0.)); -#44365=DIRECTION('',(0.,0.,-1.)); -#44366=DIRECTION('',(0.,0.,-1.)); -#44367=DIRECTION('',(0.,0.,-1.)); -#44368=DIRECTION('',(0.,0.,-1.)); -#44369=DIRECTION('',(-1.,0.,0.)); -#44370=DIRECTION('',(0.,0.,-1.)); -#44371=DIRECTION('',(-1.,0.,0.)); -#44372=DIRECTION('',(0.,0.,-1.)); -#44373=DIRECTION('',(-1.,0.,0.)); -#44374=DIRECTION('',(0.,0.,1.)); -#44375=DIRECTION('',(0.,0.,-1.)); -#44376=DIRECTION('',(0.,0.,-1.)); -#44377=DIRECTION('',(-1.,0.,0.)); -#44378=DIRECTION('',(0.,0.,-1.)); -#44379=DIRECTION('',(-1.,0.,0.)); -#44380=DIRECTION('',(0.,0.,-1.)); -#44381=DIRECTION('',(-1.,0.,0.)); -#44382=DIRECTION('',(0.,0.,-1.)); -#44383=DIRECTION('',(0.,0.,-1.)); -#44384=DIRECTION('',(1.,0.,0.)); -#44385=DIRECTION('',(0.,0.,-1.)); -#44386=DIRECTION('',(0.,0.,-1.)); -#44387=DIRECTION('',(0.,0.,-1.)); -#44388=DIRECTION('',(-1.,0.,0.)); -#44389=DIRECTION('',(0.,0.,-1.)); -#44390=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); -#44391=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#44392=DIRECTION('',(0.,0.,-1.)); -#44393=DIRECTION('',(0.,0.,-1.)); -#44394=DIRECTION('',(-1.,0.,0.)); -#44395=DIRECTION('',(0.,0.,-1.)); -#44396=DIRECTION('',(1.,0.,0.)); -#44397=DIRECTION('',(0.,0.,-1.)); -#44398=DIRECTION('',(-1.,0.,0.)); -#44399=DIRECTION('',(0.,0.,1.)); -#44400=DIRECTION('',(0.,0.,-1.)); -#44401=DIRECTION('',(0.,0.,-1.)); -#44402=DIRECTION('',(-1.,0.,0.)); -#44403=DIRECTION('',(0.,0.,-1.)); -#44404=DIRECTION('',(-0.866025403784438,-0.500000000000001,0.)); -#44405=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); -#44406=DIRECTION('',(0.,0.,-1.)); -#44407=DIRECTION('',(0.,0.,-1.)); -#44408=DIRECTION('',(-1.,0.,0.)); -#44409=DIRECTION('',(0.,0.,-1.)); -#44410=DIRECTION('',(-1.,0.,0.)); -#44411=DIRECTION('',(0.,0.,1.)); -#44412=DIRECTION('',(0.,0.,-1.)); -#44413=DIRECTION('',(0.,0.,-1.)); -#44414=DIRECTION('',(-1.,0.,0.)); -#44415=DIRECTION('',(0.,0.,-1.)); -#44416=DIRECTION('',(1.,0.,0.)); -#44417=DIRECTION('',(0.,0.,-1.)); -#44418=DIRECTION('',(0.,0.,-1.)); -#44419=DIRECTION('',(0.,0.,-1.)); -#44420=DIRECTION('',(0.,0.,-1.)); -#44421=DIRECTION('',(-1.,0.,0.)); -#44422=DIRECTION('',(0.,0.,-1.)); -#44423=DIRECTION('',(-1.,0.,0.)); -#44424=DIRECTION('',(0.,0.,-1.)); -#44425=DIRECTION('',(-1.,0.,0.)); -#44426=DIRECTION('',(0.,0.,1.)); -#44427=DIRECTION('',(0.,0.,-1.)); -#44428=DIRECTION('',(0.,0.,-1.)); -#44429=DIRECTION('',(-1.,0.,0.)); -#44430=DIRECTION('',(0.,0.,-1.)); -#44431=DIRECTION('',(-1.,0.,0.)); -#44432=DIRECTION('',(0.,0.,-1.)); -#44433=DIRECTION('',(-1.,0.,0.)); -#44434=DIRECTION('',(0.,0.,-1.)); -#44435=DIRECTION('',(0.,0.,-1.)); -#44436=DIRECTION('',(1.,0.,0.)); -#44437=DIRECTION('',(0.,0.,-1.)); -#44438=DIRECTION('',(0.,0.,-1.)); -#44439=DIRECTION('',(0.,0.,-1.)); -#44440=DIRECTION('',(-1.,0.,0.)); -#44441=DIRECTION('',(0.,0.,-1.)); -#44442=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#44443=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#44444=DIRECTION('',(0.,0.,-1.)); -#44445=DIRECTION('',(0.,0.,-1.)); -#44446=DIRECTION('',(-1.,0.,0.)); -#44447=DIRECTION('',(0.,0.,-1.)); -#44448=DIRECTION('',(1.,0.,0.)); -#44449=DIRECTION('',(0.,0.,-1.)); -#44450=DIRECTION('',(-1.,0.,0.)); -#44451=DIRECTION('',(0.,0.,1.)); -#44452=DIRECTION('',(0.,0.,-1.)); -#44453=DIRECTION('',(0.,0.,-1.)); -#44454=DIRECTION('',(-1.,0.,0.)); -#44455=DIRECTION('',(0.,0.,-1.)); -#44456=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44457=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44458=DIRECTION('',(0.,0.,-1.)); -#44459=DIRECTION('',(0.,0.,-1.)); -#44460=DIRECTION('',(-1.,0.,0.)); -#44461=DIRECTION('',(0.,0.,-1.)); -#44462=DIRECTION('',(-1.,0.,0.)); -#44463=DIRECTION('',(0.,0.,1.)); -#44464=DIRECTION('',(0.,0.,-1.)); -#44465=DIRECTION('',(0.,0.,-1.)); -#44466=DIRECTION('',(-1.,0.,0.)); -#44467=DIRECTION('',(0.,0.,-1.)); -#44468=DIRECTION('',(1.,0.,0.)); -#44469=DIRECTION('',(0.,0.,-1.)); -#44470=DIRECTION('',(0.,0.,-1.)); -#44471=DIRECTION('',(0.,0.,-1.)); -#44472=DIRECTION('',(0.,0.,-1.)); -#44473=DIRECTION('',(-1.,0.,0.)); -#44474=DIRECTION('',(0.,0.,-1.)); -#44475=DIRECTION('',(-1.,0.,0.)); -#44476=DIRECTION('',(0.,0.,-1.)); -#44477=DIRECTION('',(-1.,0.,0.)); -#44478=DIRECTION('',(0.,0.,1.)); -#44479=DIRECTION('',(0.,0.,-1.)); -#44480=DIRECTION('',(0.,0.,-1.)); -#44481=DIRECTION('',(-1.,0.,0.)); -#44482=DIRECTION('',(0.,0.,-1.)); -#44483=DIRECTION('',(-1.,0.,0.)); -#44484=DIRECTION('',(0.,0.,-1.)); -#44485=DIRECTION('',(-1.,0.,0.)); -#44486=DIRECTION('',(0.,0.,-1.)); -#44487=DIRECTION('',(0.,0.,-1.)); -#44488=DIRECTION('',(1.,0.,0.)); -#44489=DIRECTION('',(0.,0.,-1.)); -#44490=DIRECTION('',(0.,0.,-1.)); -#44491=DIRECTION('',(0.,0.,-1.)); -#44492=DIRECTION('',(-1.,0.,0.)); -#44493=DIRECTION('',(0.,0.,-1.)); -#44494=DIRECTION('',(0.866025403784439,-0.5,0.)); -#44495=DIRECTION('',(0.5,0.866025403784439,0.)); -#44496=DIRECTION('',(0.,0.,-1.)); -#44497=DIRECTION('',(0.,0.,-1.)); -#44498=DIRECTION('',(-1.,0.,0.)); -#44499=DIRECTION('',(0.,0.,-1.)); -#44500=DIRECTION('',(1.,0.,0.)); -#44501=DIRECTION('',(0.,0.,-1.)); -#44502=DIRECTION('',(-1.,0.,0.)); -#44503=DIRECTION('',(0.,0.,1.)); -#44504=DIRECTION('',(0.,0.,-1.)); -#44505=DIRECTION('',(0.,0.,-1.)); -#44506=DIRECTION('',(-1.,0.,0.)); -#44507=DIRECTION('',(0.,0.,-1.)); -#44508=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); -#44509=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#44510=DIRECTION('',(0.,0.,-1.)); -#44511=DIRECTION('',(0.,0.,-1.)); -#44512=DIRECTION('',(-1.,0.,0.)); -#44513=DIRECTION('',(0.,0.,-1.)); -#44514=DIRECTION('',(-1.,0.,0.)); -#44515=DIRECTION('',(0.,0.,1.)); -#44516=DIRECTION('',(0.,0.,-1.)); -#44517=DIRECTION('',(0.,0.,-1.)); -#44518=DIRECTION('',(-1.,0.,0.)); -#44519=DIRECTION('',(0.,0.,-1.)); -#44520=DIRECTION('',(1.,0.,0.)); -#44521=DIRECTION('',(0.,0.,-1.)); -#44522=DIRECTION('',(0.,0.,-1.)); -#44523=DIRECTION('',(0.,0.,-1.)); -#44524=DIRECTION('',(0.,0.,-1.)); -#44525=DIRECTION('',(-1.,0.,0.)); -#44526=DIRECTION('',(0.,0.,-1.)); -#44527=DIRECTION('',(-1.,0.,0.)); -#44528=DIRECTION('',(0.,0.,-1.)); -#44529=DIRECTION('',(-1.,0.,0.)); -#44530=DIRECTION('',(0.,0.,1.)); -#44531=DIRECTION('',(0.,0.,-1.)); -#44532=DIRECTION('',(0.,0.,-1.)); -#44533=DIRECTION('',(-1.,0.,0.)); -#44534=DIRECTION('',(0.,0.,-1.)); -#44535=DIRECTION('',(-1.,0.,0.)); -#44536=DIRECTION('',(0.,0.,-1.)); -#44537=DIRECTION('',(-1.,0.,0.)); -#44538=DIRECTION('',(0.,0.,-1.)); -#44539=DIRECTION('',(0.,0.,-1.)); -#44540=DIRECTION('',(1.,0.,0.)); -#44541=DIRECTION('',(0.,0.,-1.)); -#44542=DIRECTION('',(0.,0.,-1.)); -#44543=DIRECTION('',(0.,0.,-1.)); -#44544=DIRECTION('',(-1.,0.,0.)); -#44545=DIRECTION('',(0.,0.,-1.)); -#44546=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); -#44547=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#44548=DIRECTION('',(0.,0.,-1.)); -#44549=DIRECTION('',(0.,0.,-1.)); -#44550=DIRECTION('',(-1.,0.,0.)); -#44551=DIRECTION('',(0.,0.,-1.)); -#44552=DIRECTION('',(1.,0.,0.)); -#44553=DIRECTION('',(0.,0.,-1.)); -#44554=DIRECTION('',(-1.,0.,0.)); -#44555=DIRECTION('',(0.,0.,1.)); -#44556=DIRECTION('',(0.,0.,-1.)); -#44557=DIRECTION('',(0.,0.,-1.)); -#44558=DIRECTION('',(-1.,0.,0.)); -#44559=DIRECTION('',(0.,0.,-1.)); -#44560=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); -#44561=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#44562=DIRECTION('',(0.,0.,-1.)); -#44563=DIRECTION('',(0.,0.,-1.)); -#44564=DIRECTION('',(-1.,0.,0.)); -#44565=DIRECTION('',(0.,0.,-1.)); -#44566=DIRECTION('',(-1.,0.,0.)); -#44567=DIRECTION('',(0.,0.,1.)); -#44568=DIRECTION('',(0.,0.,-1.)); -#44569=DIRECTION('',(0.,0.,-1.)); -#44570=DIRECTION('',(-1.,0.,0.)); -#44571=DIRECTION('',(0.,0.,-1.)); -#44572=DIRECTION('',(1.,0.,0.)); -#44573=DIRECTION('',(0.,0.,-1.)); -#44574=DIRECTION('',(0.,0.,-1.)); -#44575=DIRECTION('',(0.,0.,-1.)); -#44576=DIRECTION('',(0.,0.,-1.)); -#44577=DIRECTION('',(-1.,0.,0.)); -#44578=DIRECTION('',(0.,0.,-1.)); -#44579=DIRECTION('',(-1.,0.,0.)); -#44580=DIRECTION('',(0.,0.,-1.)); -#44581=DIRECTION('',(-1.,0.,0.)); -#44582=DIRECTION('',(0.,0.,1.)); -#44583=DIRECTION('',(0.,0.,-1.)); -#44584=DIRECTION('',(0.,0.,-1.)); -#44585=DIRECTION('',(-1.,0.,0.)); -#44586=DIRECTION('',(0.,0.,-1.)); -#44587=DIRECTION('',(-1.,0.,0.)); -#44588=DIRECTION('',(0.,0.,-1.)); -#44589=DIRECTION('',(-1.,0.,0.)); -#44590=DIRECTION('',(0.,0.,-1.)); -#44591=DIRECTION('',(0.,0.,-1.)); -#44592=DIRECTION('',(1.,0.,0.)); -#44593=DIRECTION('',(0.,0.,-1.)); -#44594=DIRECTION('',(0.,0.,-1.)); -#44595=DIRECTION('',(0.,0.,-1.)); -#44596=DIRECTION('',(-1.,0.,0.)); -#44597=DIRECTION('',(0.,0.,-1.)); -#44598=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); -#44599=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#44600=DIRECTION('',(0.,0.,-1.)); -#44601=DIRECTION('',(0.,0.,-1.)); -#44602=DIRECTION('',(-1.,0.,0.)); -#44603=DIRECTION('',(0.,0.,-1.)); -#44604=DIRECTION('',(1.,0.,0.)); -#44605=DIRECTION('',(0.,0.,-1.)); -#44606=DIRECTION('',(-1.,9.12326820078609E-18,0.)); -#44607=DIRECTION('',(-9.12326820078609E-18,-1.,0.)); -#44608=DIRECTION('',(0.,0.,-1.)); -#44609=DIRECTION('',(0.,0.,-1.)); -#44610=DIRECTION('',(-1.,0.,0.)); -#44611=DIRECTION('',(0.,0.,-1.)); -#44612=DIRECTION('',(-0.866025403784437,-0.500000000000002,0.)); -#44613=DIRECTION('',(0.500000000000002,-0.866025403784437,0.)); -#44614=DIRECTION('',(0.,0.,-1.)); -#44615=DIRECTION('',(0.,0.,-1.)); -#44616=DIRECTION('',(-1.,0.,0.)); -#44617=DIRECTION('',(0.,0.,-1.)); -#44618=DIRECTION('',(-1.,0.,0.)); -#44619=DIRECTION('',(0.,0.,1.)); -#44620=DIRECTION('',(0.,0.,-1.)); -#44621=DIRECTION('',(0.,0.,-1.)); -#44622=DIRECTION('',(-1.,0.,0.)); -#44623=DIRECTION('',(0.,0.,-1.)); -#44624=DIRECTION('',(1.,0.,0.)); -#44625=DIRECTION('',(0.,0.,-1.)); -#44626=DIRECTION('',(0.,0.,-1.)); -#44627=DIRECTION('',(0.,0.,-1.)); -#44628=DIRECTION('',(0.,0.,-1.)); -#44629=DIRECTION('',(-1.,0.,0.)); -#44630=DIRECTION('',(0.,0.,-1.)); -#44631=DIRECTION('',(-1.,0.,0.)); -#44632=DIRECTION('',(0.,0.,-1.)); -#44633=DIRECTION('',(-1.,0.,0.)); -#44634=DIRECTION('',(0.,0.,1.)); -#44635=DIRECTION('',(0.,0.,-1.)); -#44636=DIRECTION('',(0.,0.,-1.)); -#44637=DIRECTION('',(-1.,0.,0.)); -#44638=DIRECTION('',(0.,0.,-1.)); -#44639=DIRECTION('',(-1.,0.,0.)); -#44640=DIRECTION('',(0.,0.,-1.)); -#44641=DIRECTION('',(-1.,0.,0.)); -#44642=DIRECTION('',(0.,0.,-1.)); -#44643=DIRECTION('',(0.,0.,-1.)); -#44644=DIRECTION('',(1.,0.,0.)); -#44645=DIRECTION('',(0.,0.,-1.)); -#44646=DIRECTION('',(0.,0.,-1.)); -#44647=DIRECTION('',(0.,0.,-1.)); -#44648=DIRECTION('',(-1.,0.,0.)); -#44649=DIRECTION('',(0.,0.,-1.)); -#44650=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); -#44651=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); -#44652=DIRECTION('',(0.,0.,-1.)); -#44653=DIRECTION('',(0.,0.,-1.)); -#44654=DIRECTION('',(-1.,0.,0.)); -#44655=DIRECTION('',(0.,0.,-1.)); -#44656=DIRECTION('',(1.,0.,0.)); -#44657=DIRECTION('',(0.,0.,-1.)); -#44658=DIRECTION('',(-1.,0.,0.)); -#44659=DIRECTION('',(0.,0.,1.)); -#44660=DIRECTION('',(0.,0.,-1.)); -#44661=DIRECTION('',(0.,0.,-1.)); -#44662=DIRECTION('',(-1.,0.,0.)); -#44663=DIRECTION('',(0.,0.,-1.)); -#44664=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); -#44665=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#44666=DIRECTION('',(0.,0.,-1.)); -#44667=DIRECTION('',(0.,0.,-1.)); -#44668=DIRECTION('',(-1.,0.,0.)); -#44669=DIRECTION('',(0.,0.,-1.)); -#44670=DIRECTION('',(-1.,0.,0.)); -#44671=DIRECTION('',(0.,0.,1.)); -#44672=DIRECTION('',(0.,0.,-1.)); -#44673=DIRECTION('',(0.,0.,-1.)); -#44674=DIRECTION('',(-1.,0.,0.)); -#44675=DIRECTION('',(0.,0.,-1.)); -#44676=DIRECTION('',(1.,0.,0.)); -#44677=DIRECTION('',(0.,0.,-1.)); -#44678=DIRECTION('',(0.,0.,-1.)); -#44679=DIRECTION('',(0.,0.,-1.)); -#44680=DIRECTION('',(0.,0.,-1.)); -#44681=DIRECTION('',(-1.,0.,0.)); -#44682=DIRECTION('',(0.,0.,-1.)); -#44683=DIRECTION('',(-1.,0.,0.)); -#44684=DIRECTION('',(0.,0.,-1.)); -#44685=DIRECTION('',(-1.,0.,0.)); -#44686=DIRECTION('',(0.,0.,1.)); -#44687=DIRECTION('',(0.,0.,-1.)); -#44688=DIRECTION('',(0.,0.,-1.)); -#44689=DIRECTION('',(-1.,0.,0.)); -#44690=DIRECTION('',(0.,0.,-1.)); -#44691=DIRECTION('',(-1.,0.,0.)); -#44692=DIRECTION('',(0.,0.,-1.)); -#44693=DIRECTION('',(-1.,0.,0.)); -#44694=DIRECTION('',(0.,0.,-1.)); -#44695=DIRECTION('',(0.,0.,-1.)); -#44696=DIRECTION('',(1.,0.,0.)); -#44697=DIRECTION('',(0.,0.,-1.)); -#44698=DIRECTION('',(0.,0.,-1.)); -#44699=DIRECTION('',(0.,0.,-1.)); -#44700=DIRECTION('',(-1.,0.,0.)); -#44701=DIRECTION('',(0.,0.,-1.)); -#44702=DIRECTION('',(0.866025403784439,-0.5,0.)); -#44703=DIRECTION('',(0.5,0.866025403784439,0.)); -#44704=DIRECTION('',(0.,0.,-1.)); -#44705=DIRECTION('',(0.,0.,-1.)); -#44706=DIRECTION('',(-1.,0.,0.)); -#44707=DIRECTION('',(0.,0.,-1.)); -#44708=DIRECTION('',(1.,0.,0.)); -#44709=DIRECTION('',(0.,0.,-1.)); -#44710=DIRECTION('',(-1.,0.,0.)); -#44711=DIRECTION('',(0.,0.,1.)); -#44712=DIRECTION('',(0.,0.,-1.)); -#44713=DIRECTION('',(0.,0.,-1.)); -#44714=DIRECTION('',(-1.,0.,0.)); -#44715=DIRECTION('',(0.,0.,-1.)); -#44716=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); -#44717=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); -#44718=DIRECTION('',(0.,0.,-1.)); -#44719=DIRECTION('',(0.,0.,-1.)); -#44720=DIRECTION('',(-1.,0.,0.)); -#44721=DIRECTION('',(0.,0.,-1.)); -#44722=DIRECTION('',(-1.,0.,0.)); -#44723=DIRECTION('',(0.,0.,1.)); -#44724=DIRECTION('',(0.,0.,-1.)); -#44725=DIRECTION('',(0.,0.,-1.)); -#44726=DIRECTION('',(-1.,0.,0.)); -#44727=DIRECTION('',(0.,0.,-1.)); -#44728=DIRECTION('',(1.,0.,0.)); -#44729=DIRECTION('',(0.,0.,-1.)); -#44730=DIRECTION('',(0.,0.,-1.)); -#44731=DIRECTION('',(0.,0.,-1.)); -#44732=DIRECTION('',(0.,0.,-1.)); -#44733=DIRECTION('',(-1.,0.,0.)); -#44734=DIRECTION('',(0.,0.,-1.)); -#44735=DIRECTION('',(-1.,0.,0.)); -#44736=DIRECTION('',(0.,0.,-1.)); -#44737=DIRECTION('',(-1.,0.,0.)); -#44738=DIRECTION('',(0.,0.,1.)); -#44739=DIRECTION('',(0.,0.,-1.)); -#44740=DIRECTION('',(0.,0.,-1.)); -#44741=DIRECTION('',(-1.,0.,0.)); -#44742=DIRECTION('',(0.,0.,-1.)); -#44743=DIRECTION('',(-1.,0.,0.)); -#44744=DIRECTION('',(0.,0.,-1.)); -#44745=DIRECTION('',(-1.,0.,0.)); -#44746=DIRECTION('',(0.,0.,-1.)); -#44747=DIRECTION('',(0.,0.,-1.)); -#44748=DIRECTION('',(1.,0.,0.)); -#44749=DIRECTION('',(0.,0.,-1.)); -#44750=DIRECTION('',(0.,0.,-1.)); -#44751=DIRECTION('',(0.,0.,-1.)); -#44752=DIRECTION('',(-1.,0.,0.)); -#44753=DIRECTION('',(0.,0.,-1.)); -#44754=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#44755=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#44756=DIRECTION('',(0.,0.,-1.)); -#44757=DIRECTION('',(0.,0.,-1.)); -#44758=DIRECTION('',(-1.,0.,0.)); -#44759=DIRECTION('',(0.,0.,-1.)); -#44760=DIRECTION('',(1.,0.,0.)); -#44761=DIRECTION('',(0.,0.,-1.)); -#44762=DIRECTION('',(-1.,0.,0.)); -#44763=DIRECTION('',(0.,0.,1.)); -#44764=DIRECTION('',(0.,0.,-1.)); -#44765=DIRECTION('',(0.,0.,-1.)); -#44766=DIRECTION('',(-1.,0.,0.)); -#44767=DIRECTION('',(0.,0.,-1.)); -#44768=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44769=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44770=DIRECTION('',(0.,0.,-1.)); -#44771=DIRECTION('',(0.,0.,-1.)); -#44772=DIRECTION('',(-1.,0.,0.)); -#44773=DIRECTION('',(0.,0.,-1.)); -#44774=DIRECTION('',(-1.,0.,0.)); -#44775=DIRECTION('',(0.,0.,1.)); -#44776=DIRECTION('',(0.,0.,-1.)); -#44777=DIRECTION('',(0.,0.,-1.)); -#44778=DIRECTION('',(-1.,0.,0.)); -#44779=DIRECTION('',(0.,0.,-1.)); -#44780=DIRECTION('',(1.,0.,0.)); -#44781=DIRECTION('',(0.,0.,-1.)); -#44782=DIRECTION('',(0.,0.,-1.)); -#44783=DIRECTION('',(0.,0.,-1.)); -#44784=DIRECTION('',(0.,0.,-1.)); -#44785=DIRECTION('',(-1.,0.,0.)); -#44786=DIRECTION('',(0.,0.,-1.)); -#44787=DIRECTION('',(-1.,0.,0.)); -#44788=DIRECTION('',(0.,0.,-1.)); -#44789=DIRECTION('',(-1.,0.,0.)); -#44790=DIRECTION('',(0.,0.,1.)); -#44791=DIRECTION('',(0.,0.,-1.)); -#44792=DIRECTION('',(0.,0.,-1.)); -#44793=DIRECTION('',(-1.,0.,0.)); -#44794=DIRECTION('',(0.,0.,-1.)); -#44795=DIRECTION('',(-1.,0.,0.)); -#44796=DIRECTION('',(0.,0.,-1.)); -#44797=DIRECTION('',(-1.,0.,0.)); -#44798=DIRECTION('',(0.,0.,-1.)); -#44799=DIRECTION('',(0.,0.,-1.)); -#44800=DIRECTION('',(1.,0.,0.)); -#44801=DIRECTION('',(0.,0.,-1.)); -#44802=DIRECTION('',(0.,0.,-1.)); -#44803=DIRECTION('',(0.,0.,-1.)); -#44804=DIRECTION('',(-1.,0.,0.)); -#44805=DIRECTION('',(0.,0.,-1.)); -#44806=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); -#44807=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#44808=DIRECTION('',(0.,0.,-1.)); -#44809=DIRECTION('',(0.,0.,-1.)); -#44810=DIRECTION('',(-1.,0.,0.)); -#44811=DIRECTION('',(0.,0.,-1.)); -#44812=DIRECTION('',(1.,0.,0.)); -#44813=DIRECTION('',(0.,0.,-1.)); -#44814=DIRECTION('',(-1.,0.,0.)); -#44815=DIRECTION('',(0.,0.,1.)); -#44816=DIRECTION('',(0.,0.,-1.)); -#44817=DIRECTION('',(0.,0.,-1.)); -#44818=DIRECTION('',(-1.,0.,0.)); -#44819=DIRECTION('',(0.,0.,-1.)); -#44820=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44821=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44822=DIRECTION('',(0.,0.,-1.)); -#44823=DIRECTION('',(0.,0.,-1.)); -#44824=DIRECTION('',(-1.,0.,0.)); -#44825=DIRECTION('',(0.,0.,-1.)); -#44826=DIRECTION('',(-1.,0.,0.)); -#44827=DIRECTION('',(0.,0.,1.)); -#44828=DIRECTION('',(0.,0.,-1.)); -#44829=DIRECTION('',(0.,0.,-1.)); -#44830=DIRECTION('',(-1.,0.,0.)); -#44831=DIRECTION('',(0.,0.,-1.)); -#44832=DIRECTION('',(1.,0.,0.)); -#44833=DIRECTION('',(0.,0.,-1.)); -#44834=DIRECTION('',(0.,0.,-1.)); -#44835=DIRECTION('',(0.,0.,-1.)); -#44836=DIRECTION('',(0.,0.,-1.)); -#44837=DIRECTION('',(-1.,0.,0.)); -#44838=DIRECTION('',(0.,0.,-1.)); -#44839=DIRECTION('',(-1.,0.,0.)); -#44840=DIRECTION('',(0.,0.,-1.)); -#44841=DIRECTION('',(-1.,0.,0.)); -#44842=DIRECTION('',(0.,0.,1.)); -#44843=DIRECTION('',(0.,0.,-1.)); -#44844=DIRECTION('',(0.,0.,-1.)); -#44845=DIRECTION('',(-1.,0.,0.)); -#44846=DIRECTION('',(0.,0.,-1.)); -#44847=DIRECTION('',(-1.,0.,0.)); -#44848=DIRECTION('',(0.,0.,-1.)); -#44849=DIRECTION('',(-1.,0.,0.)); -#44850=DIRECTION('',(0.,0.,-1.)); -#44851=DIRECTION('',(0.,0.,-1.)); -#44852=DIRECTION('',(1.,0.,0.)); -#44853=DIRECTION('',(0.,0.,-1.)); -#44854=DIRECTION('',(0.,0.,-1.)); -#44855=DIRECTION('',(0.,0.,-1.)); -#44856=DIRECTION('',(-1.,0.,0.)); -#44857=DIRECTION('',(0.,0.,-1.)); -#44858=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); -#44859=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); -#44860=DIRECTION('',(0.,0.,-1.)); -#44861=DIRECTION('',(0.,0.,-1.)); -#44862=DIRECTION('',(-1.,0.,0.)); -#44863=DIRECTION('',(0.,0.,-1.)); -#44864=DIRECTION('',(1.,0.,0.)); -#44865=DIRECTION('',(0.,0.,-1.)); -#44866=DIRECTION('',(-1.,0.,0.)); -#44867=DIRECTION('',(0.,0.,1.)); -#44868=DIRECTION('',(0.,0.,-1.)); -#44869=DIRECTION('',(0.,0.,-1.)); -#44870=DIRECTION('',(-1.,0.,0.)); -#44871=DIRECTION('',(0.,0.,-1.)); -#44872=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44873=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44874=DIRECTION('',(0.,0.,-1.)); -#44875=DIRECTION('',(0.,0.,-1.)); -#44876=DIRECTION('',(-1.,0.,0.)); -#44877=DIRECTION('',(0.,0.,-1.)); -#44878=DIRECTION('',(-1.,0.,0.)); -#44879=DIRECTION('',(0.,0.,1.)); -#44880=DIRECTION('',(0.,0.,-1.)); -#44881=DIRECTION('',(0.,0.,-1.)); -#44882=DIRECTION('',(-1.,0.,0.)); -#44883=DIRECTION('',(0.,0.,-1.)); -#44884=DIRECTION('',(1.,0.,0.)); -#44885=DIRECTION('',(0.,0.,-1.)); -#44886=DIRECTION('',(0.,0.,-1.)); -#44887=DIRECTION('',(0.,0.,-1.)); -#44888=DIRECTION('',(0.,0.,-1.)); -#44889=DIRECTION('',(-1.,0.,0.)); -#44890=DIRECTION('',(0.,0.,-1.)); -#44891=DIRECTION('',(-1.,0.,0.)); -#44892=DIRECTION('',(0.,0.,-1.)); -#44893=DIRECTION('',(-1.,0.,0.)); -#44894=DIRECTION('',(0.,0.,1.)); -#44895=DIRECTION('',(0.,0.,-1.)); -#44896=DIRECTION('',(0.,0.,-1.)); -#44897=DIRECTION('',(-1.,0.,0.)); -#44898=DIRECTION('',(0.,0.,-1.)); -#44899=DIRECTION('',(-1.,0.,0.)); -#44900=DIRECTION('',(0.,0.,-1.)); -#44901=DIRECTION('',(-1.,0.,0.)); -#44902=DIRECTION('',(0.,0.,-1.)); -#44903=DIRECTION('',(0.,0.,-1.)); -#44904=DIRECTION('',(1.,0.,0.)); -#44905=DIRECTION('',(0.,0.,-1.)); -#44906=DIRECTION('',(0.,0.,-1.)); -#44907=DIRECTION('',(0.,0.,-1.)); -#44908=DIRECTION('',(-1.,0.,0.)); -#44909=DIRECTION('',(0.,0.,-1.)); -#44910=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#44911=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#44912=DIRECTION('',(0.,0.,-1.)); -#44913=DIRECTION('',(0.,0.,-1.)); -#44914=DIRECTION('',(-1.,0.,0.)); -#44915=DIRECTION('',(0.,0.,-1.)); -#44916=DIRECTION('',(1.,0.,0.)); -#44917=DIRECTION('',(0.,0.,-1.)); -#44918=DIRECTION('',(-1.,0.,0.)); -#44919=DIRECTION('',(0.,0.,1.)); -#44920=DIRECTION('',(0.,0.,-1.)); -#44921=DIRECTION('',(0.,0.,-1.)); -#44922=DIRECTION('',(-1.,0.,0.)); -#44923=DIRECTION('',(0.,0.,-1.)); -#44924=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44925=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44926=DIRECTION('',(0.,0.,-1.)); -#44927=DIRECTION('',(0.,0.,-1.)); -#44928=DIRECTION('',(-1.,0.,0.)); -#44929=DIRECTION('',(0.,0.,-1.)); -#44930=DIRECTION('',(-1.,0.,0.)); -#44931=DIRECTION('',(0.,0.,1.)); -#44932=DIRECTION('',(0.,0.,-1.)); -#44933=DIRECTION('',(0.,0.,-1.)); -#44934=DIRECTION('',(-1.,0.,0.)); -#44935=DIRECTION('',(0.,0.,-1.)); -#44936=DIRECTION('',(1.,0.,0.)); -#44937=DIRECTION('',(0.,0.,-1.)); -#44938=DIRECTION('',(0.,0.,-1.)); -#44939=DIRECTION('',(0.,0.,-1.)); -#44940=DIRECTION('',(0.,0.,-1.)); -#44941=DIRECTION('',(-1.,0.,0.)); -#44942=DIRECTION('',(0.,0.,-1.)); -#44943=DIRECTION('',(-1.,0.,0.)); -#44944=DIRECTION('',(0.,0.,-1.)); -#44945=DIRECTION('',(-1.,0.,0.)); -#44946=DIRECTION('',(0.,0.,1.)); -#44947=DIRECTION('',(0.,0.,-1.)); -#44948=DIRECTION('',(0.,0.,-1.)); -#44949=DIRECTION('',(-1.,0.,0.)); -#44950=DIRECTION('',(0.,0.,-1.)); -#44951=DIRECTION('',(-1.,0.,0.)); -#44952=DIRECTION('',(0.,0.,-1.)); -#44953=DIRECTION('',(-1.,0.,0.)); -#44954=DIRECTION('',(0.,0.,-1.)); -#44955=DIRECTION('',(0.,0.,-1.)); -#44956=DIRECTION('',(1.,0.,0.)); -#44957=DIRECTION('',(0.,0.,-1.)); -#44958=DIRECTION('',(0.,0.,-1.)); -#44959=DIRECTION('',(0.,0.,-1.)); -#44960=DIRECTION('',(-1.,0.,0.)); -#44961=DIRECTION('',(0.,0.,-1.)); -#44962=DIRECTION('',(0.866025403784442,-0.499999999999995,0.)); -#44963=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); -#44964=DIRECTION('',(0.,0.,-1.)); -#44965=DIRECTION('',(0.,0.,-1.)); -#44966=DIRECTION('',(-1.,0.,0.)); -#44967=DIRECTION('',(0.,0.,-1.)); -#44968=DIRECTION('',(1.,0.,0.)); -#44969=DIRECTION('',(0.,0.,-1.)); -#44970=DIRECTION('',(-1.,0.,0.)); -#44971=DIRECTION('',(0.,0.,1.)); -#44972=DIRECTION('',(0.,0.,-1.)); -#44973=DIRECTION('',(0.,0.,-1.)); -#44974=DIRECTION('',(-1.,0.,0.)); -#44975=DIRECTION('',(0.,0.,-1.)); -#44976=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#44977=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#44978=DIRECTION('',(0.,0.,-1.)); -#44979=DIRECTION('',(0.,0.,-1.)); -#44980=DIRECTION('',(-1.,0.,0.)); -#44981=DIRECTION('',(0.,0.,-1.)); -#44982=DIRECTION('',(-1.,0.,0.)); -#44983=DIRECTION('',(0.,0.,1.)); -#44984=DIRECTION('',(0.,0.,-1.)); -#44985=DIRECTION('',(0.,0.,-1.)); -#44986=DIRECTION('',(-1.,0.,0.)); -#44987=DIRECTION('',(0.,0.,-1.)); -#44988=DIRECTION('',(1.,0.,0.)); -#44989=DIRECTION('',(0.,0.,-1.)); -#44990=DIRECTION('',(0.,0.,-1.)); -#44991=DIRECTION('',(0.,0.,-1.)); -#44992=DIRECTION('',(0.,0.,-1.)); -#44993=DIRECTION('',(-1.,0.,0.)); -#44994=DIRECTION('',(0.,0.,-1.)); -#44995=DIRECTION('',(-1.,0.,0.)); -#44996=DIRECTION('',(0.,0.,-1.)); -#44997=DIRECTION('',(-1.,0.,0.)); -#44998=DIRECTION('',(0.,0.,1.)); -#44999=DIRECTION('',(0.,0.,-1.)); -#45000=DIRECTION('',(0.,0.,-1.)); -#45001=DIRECTION('',(-1.,0.,0.)); -#45002=DIRECTION('',(0.,0.,-1.)); -#45003=DIRECTION('',(-1.,0.,0.)); -#45004=DIRECTION('',(0.,0.,-1.)); -#45005=DIRECTION('',(-1.,0.,0.)); -#45006=DIRECTION('',(0.,0.,-1.)); -#45007=DIRECTION('',(0.,0.,-1.)); -#45008=DIRECTION('',(1.,0.,0.)); -#45009=DIRECTION('',(0.,0.,-1.)); -#45010=DIRECTION('',(0.,0.,-1.)); -#45011=DIRECTION('',(0.,0.,-1.)); -#45012=DIRECTION('',(-1.,0.,0.)); -#45013=DIRECTION('',(0.,0.,-1.)); -#45014=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#45015=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#45016=DIRECTION('',(0.,0.,-1.)); -#45017=DIRECTION('',(0.,0.,-1.)); -#45018=DIRECTION('',(-1.,0.,0.)); -#45019=DIRECTION('',(0.,0.,-1.)); -#45020=DIRECTION('',(1.,0.,0.)); -#45021=DIRECTION('',(0.,0.,-1.)); -#45022=DIRECTION('',(-1.,0.,0.)); -#45023=DIRECTION('',(0.,0.,1.)); -#45024=DIRECTION('',(0.,0.,-1.)); -#45025=DIRECTION('',(0.,0.,-1.)); -#45026=DIRECTION('',(-1.,0.,0.)); -#45027=DIRECTION('',(0.,0.,-1.)); -#45028=DIRECTION('',(-0.86602540378444,-0.499999999999998,0.)); -#45029=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); -#45030=DIRECTION('',(0.,0.,-1.)); -#45031=DIRECTION('',(0.,0.,-1.)); -#45032=DIRECTION('',(-1.,0.,0.)); -#45033=DIRECTION('',(0.,0.,-1.)); -#45034=DIRECTION('',(-1.,0.,0.)); -#45035=DIRECTION('',(0.,0.,1.)); -#45036=DIRECTION('',(0.,0.,-1.)); -#45037=DIRECTION('',(0.,0.,-1.)); -#45038=DIRECTION('',(-1.,0.,0.)); -#45039=DIRECTION('',(0.,0.,-1.)); -#45040=DIRECTION('',(1.,0.,0.)); -#45041=DIRECTION('',(0.,0.,-1.)); -#45042=DIRECTION('',(0.,0.,-1.)); -#45043=DIRECTION('',(0.,0.,-1.)); -#45044=DIRECTION('',(0.,0.,-1.)); -#45045=DIRECTION('',(-1.,0.,0.)); -#45046=DIRECTION('',(0.,0.,-1.)); -#45047=DIRECTION('',(-1.,0.,0.)); -#45048=DIRECTION('',(0.,0.,-1.)); -#45049=DIRECTION('',(-1.,0.,0.)); -#45050=DIRECTION('',(0.,0.,1.)); -#45051=DIRECTION('',(0.,0.,-1.)); -#45052=DIRECTION('',(0.,0.,-1.)); -#45053=DIRECTION('',(-1.,0.,0.)); -#45054=DIRECTION('',(0.,0.,-1.)); -#45055=DIRECTION('',(-1.,0.,0.)); -#45056=DIRECTION('',(0.,0.,-1.)); -#45057=DIRECTION('',(-1.,0.,0.)); -#45058=DIRECTION('',(0.,0.,-1.)); -#45059=DIRECTION('',(0.,0.,-1.)); -#45060=DIRECTION('',(1.,0.,0.)); -#45061=DIRECTION('',(0.,0.,-1.)); -#45062=DIRECTION('',(0.,0.,-1.)); -#45063=DIRECTION('',(0.,0.,-1.)); -#45064=DIRECTION('',(-1.,0.,0.)); -#45065=DIRECTION('',(0.,0.,-1.)); -#45066=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); -#45067=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); -#45068=DIRECTION('',(0.,0.,-1.)); -#45069=DIRECTION('',(0.,0.,-1.)); -#45070=DIRECTION('',(-1.,0.,0.)); -#45071=DIRECTION('',(0.,0.,-1.)); -#45072=DIRECTION('',(1.,0.,0.)); -#45073=DIRECTION('',(0.,0.,-1.)); -#45074=DIRECTION('',(-1.,2.91944582425155E-16,0.)); -#45075=DIRECTION('',(-2.91944582425155E-16,-1.,0.)); -#45076=DIRECTION('',(0.,0.,-1.)); -#45077=DIRECTION('',(0.,0.,-1.)); -#45078=DIRECTION('',(-1.,0.,0.)); -#45079=DIRECTION('',(0.,0.,-1.)); -#45080=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); -#45081=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); -#45082=DIRECTION('',(0.,0.,-1.)); -#45083=DIRECTION('',(0.,0.,-1.)); -#45084=DIRECTION('',(-1.,0.,0.)); -#45085=DIRECTION('',(0.,0.,-1.)); -#45086=DIRECTION('',(-1.,0.,0.)); -#45087=DIRECTION('',(0.,0.,1.)); -#45088=DIRECTION('',(0.,0.,-1.)); -#45089=DIRECTION('',(0.,0.,-1.)); -#45090=DIRECTION('',(-1.,0.,0.)); -#45091=DIRECTION('',(0.,0.,-1.)); -#45092=DIRECTION('',(1.,0.,0.)); -#45093=DIRECTION('',(0.,0.,-1.)); -#45094=DIRECTION('',(0.,0.,-1.)); -#45095=DIRECTION('',(0.,0.,-1.)); -#45096=DIRECTION('',(0.,0.,-1.)); -#45097=DIRECTION('',(-1.,0.,0.)); -#45098=DIRECTION('',(0.,0.,-1.)); -#45099=DIRECTION('',(-1.,0.,0.)); -#45100=DIRECTION('',(0.,0.,-1.)); -#45101=DIRECTION('',(-1.,0.,0.)); -#45102=DIRECTION('',(0.,0.,1.)); -#45103=DIRECTION('',(0.,0.,-1.)); -#45104=DIRECTION('',(0.,0.,-1.)); -#45105=DIRECTION('',(-1.,0.,0.)); -#45106=DIRECTION('',(0.,0.,-1.)); -#45107=DIRECTION('',(-1.,0.,0.)); -#45108=DIRECTION('',(0.,1.,0.)); -#45109=DIRECTION('',(0.,0.,1.)); -#45110=DIRECTION('',(0.,1.,0.)); -#45111=DIRECTION('',(0.,0.,1.)); -#45112=DIRECTION('',(0.,-1.,0.)); -#45113=DIRECTION('',(0.,0.,-1.)); -#45114=DIRECTION('',(0.,0.,1.)); -#45115=DIRECTION('',(1.,0.,0.)); -#45116=CARTESIAN_POINT('',(0.,0.,0.)); -#45117=CARTESIAN_POINT('',(11.,4.405,2.8)); -#45118=CARTESIAN_POINT('',(11.,4.405,2.5)); -#45119=CARTESIAN_POINT('',(11.,1.6,2.5)); -#45120=CARTESIAN_POINT('',(11.,0.,2.5)); -#45121=CARTESIAN_POINT('',(11.,1.6,2.8)); -#45122=CARTESIAN_POINT('',(11.,1.6,1.)); -#45123=CARTESIAN_POINT('',(11.,4.405,1.)); -#45124=CARTESIAN_POINT('',(11.,4.405,1.)); -#45125=CARTESIAN_POINT('',(11.,4.405,2.8)); -#45126=CARTESIAN_POINT('',(11.,4.405,2.8)); -#45127=CARTESIAN_POINT('',(11.,4.405,2.8)); -#45128=CARTESIAN_POINT('',(11.,0.,2.8)); -#45129=CARTESIAN_POINT('',(11.,0.,2.8)); -#45130=CARTESIAN_POINT('',(10.9,4.405,1.)); -#45131=CARTESIAN_POINT('',(10.9,4.405,0.9)); -#45132=CARTESIAN_POINT('',(10.9,0.,0.9)); -#45133=CARTESIAN_POINT('',(10.9,1.6,0.899999999999999)); -#45134=CARTESIAN_POINT('',(10.9,0.,1.)); -#45135=CARTESIAN_POINT('',(10.9,0.,-1.)); -#45136=CARTESIAN_POINT('',(10.9,4.405,-1.)); -#45137=CARTESIAN_POINT('',(10.9,4.405,-1.)); -#45138=CARTESIAN_POINT('',(10.9,4.405,1.)); -#45139=CARTESIAN_POINT('',(10.9,4.405,1.)); -#45140=CARTESIAN_POINT('',(10.9,4.405,1.)); -#45141=CARTESIAN_POINT('',(10.9,1.6,1.)); -#45142=CARTESIAN_POINT('',(10.9,1.6,1.)); -#45143=CARTESIAN_POINT('',(0.,0.,0.)); -#45144=CARTESIAN_POINT('',(10.8,0.,2.5)); -#45145=CARTESIAN_POINT('',(10.8,0.,2.5)); -#45146=CARTESIAN_POINT('',(-11.,0.,2.8)); -#45147=CARTESIAN_POINT('',(8.6,0.,2.8)); -#45148=CARTESIAN_POINT('',(8.6,0.,0.)); -#45149=CARTESIAN_POINT('',(8.6,0.,2.5)); -#45150=CARTESIAN_POINT('',(0.,0.,2.5)); -#45151=CARTESIAN_POINT('',(7.65,0.,2.5)); -#45152=CARTESIAN_POINT('',(7.65,0.,2.1)); -#45153=CARTESIAN_POINT('',(7.65,0.,2.1)); -#45154=CARTESIAN_POINT('',(-7.65,0.,2.1)); -#45155=CARTESIAN_POINT('',(-7.65,0.,2.1)); -#45156=CARTESIAN_POINT('',(-7.65,0.,2.1)); -#45157=CARTESIAN_POINT('',(-7.65,0.,2.5)); -#45158=CARTESIAN_POINT('',(0.,0.,2.5)); -#45159=CARTESIAN_POINT('',(-8.6,0.,2.5)); -#45160=CARTESIAN_POINT('',(-8.6,0.,0.)); -#45161=CARTESIAN_POINT('',(-8.6,0.,2.8)); -#45162=CARTESIAN_POINT('',(-11.,0.,2.8)); -#45163=CARTESIAN_POINT('',(-11.,0.,2.8)); -#45164=CARTESIAN_POINT('',(-11.,0.,-1.3)); -#45165=CARTESIAN_POINT('',(-11.,0.,2.5)); -#45166=CARTESIAN_POINT('',(-12.,0.,2.5)); -#45167=CARTESIAN_POINT('',(-10.8,0.,2.5)); -#45168=CARTESIAN_POINT('',(-10.8,0.,2.3)); -#45169=CARTESIAN_POINT('',(-10.6,0.,2.3)); -#45170=CARTESIAN_POINT('',(-10.6,0.,2.3)); -#45171=CARTESIAN_POINT('',(-10.6,0.,1.1)); -#45172=CARTESIAN_POINT('',(-10.8,0.,1.1)); -#45173=CARTESIAN_POINT('',(-10.8,0.,0.899999999999999)); -#45174=CARTESIAN_POINT('',(-10.8,0.,0.9)); -#45175=CARTESIAN_POINT('',(-11.,0.,0.9)); -#45176=CARTESIAN_POINT('',(-11.,0.,-1.3)); -#45177=CARTESIAN_POINT('',(-11.,0.,-1.3)); -#45178=CARTESIAN_POINT('',(-9.5,0.,-2.8)); -#45179=CARTESIAN_POINT('',(-9.5,0.,-2.8)); -#45180=CARTESIAN_POINT('',(11.,0.,-2.8)); -#45181=CARTESIAN_POINT('',(-8.9,0.,-2.8)); -#45182=CARTESIAN_POINT('',(-8.9,0.,0.)); -#45183=CARTESIAN_POINT('',(-8.9,0.,-2.5)); -#45184=CARTESIAN_POINT('',(0.,0.,-2.5)); -#45185=CARTESIAN_POINT('',(-7.65,0.,-2.5)); -#45186=CARTESIAN_POINT('',(-7.65,0.,-2.1)); -#45187=CARTESIAN_POINT('',(-7.65,0.,-2.1)); -#45188=CARTESIAN_POINT('',(-7.65,0.,-2.1)); -#45189=CARTESIAN_POINT('',(7.65,0.,-2.1)); -#45190=CARTESIAN_POINT('',(7.65,0.,-2.1)); -#45191=CARTESIAN_POINT('',(7.65,0.,-2.5)); -#45192=CARTESIAN_POINT('',(0.,0.,-2.5)); -#45193=CARTESIAN_POINT('',(8.9,0.,-2.5)); -#45194=CARTESIAN_POINT('',(8.9,0.,0.)); -#45195=CARTESIAN_POINT('',(8.9,0.,-2.8)); -#45196=CARTESIAN_POINT('',(11.,0.,-2.8)); -#45197=CARTESIAN_POINT('',(11.,0.,-2.8)); -#45198=CARTESIAN_POINT('',(11.,0.,-1.)); -#45199=CARTESIAN_POINT('',(11.,0.,-1.)); -#45200=CARTESIAN_POINT('',(10.9,0.,-1.)); -#45201=CARTESIAN_POINT('',(12.,0.,0.9)); -#45202=CARTESIAN_POINT('',(10.8,0.,0.9)); -#45203=CARTESIAN_POINT('',(10.8,0.,1.1)); -#45204=CARTESIAN_POINT('',(10.6,0.,1.1)); -#45205=CARTESIAN_POINT('',(10.6,0.,1.1)); -#45206=CARTESIAN_POINT('',(10.6,0.,2.3)); -#45207=CARTESIAN_POINT('',(10.8,0.,2.3)); -#45208=CARTESIAN_POINT('',(-10.3,0.,-1.295)); -#45209=CARTESIAN_POINT('',(-10.3,0.,-1.295)); -#45210=CARTESIAN_POINT('',(-10.3,0.,0.3)); -#45211=CARTESIAN_POINT('',(-10.1,0.,0.3)); -#45212=CARTESIAN_POINT('',(-10.0999998692754,0.,0.499999999999958)); -#45213=CARTESIAN_POINT('',(-10.09999975,0.,0.333334000000012)); -#45214=CARTESIAN_POINT('',(-9.99041113033376,0.,0.458904259200404)); -#45215=CARTESIAN_POINT('',(-9.3,0.,1.25)); -#45216=CARTESIAN_POINT('',(-8.60958887854188,0.,0.458904251454382)); -#45217=CARTESIAN_POINT('',(-8.50000025000005,0.,0.333334000000018)); -#45218=CARTESIAN_POINT('',(-8.5000001306866,0.,0.499999999999956)); -#45219=CARTESIAN_POINT('',(-8.5,0.,0.299999999999997)); -#45220=CARTESIAN_POINT('',(-8.3,0.,0.3)); -#45221=CARTESIAN_POINT('',(-8.3,0.,0.3)); -#45222=CARTESIAN_POINT('',(-8.3,0.,-2.1)); -#45223=CARTESIAN_POINT('',(-8.5,0.,-2.1)); -#45224=CARTESIAN_POINT('',(-8.5,0.,-2.3)); -#45225=CARTESIAN_POINT('',(-8.5,0.,-2.3)); -#45226=CARTESIAN_POINT('',(-9.295,0.,-2.3)); -#45227=CARTESIAN_POINT('',(-9.295,0.,-2.3)); -#45228=CARTESIAN_POINT('',(-9.4,0.,1.04)); -#45229=CARTESIAN_POINT('',(-9.24083426117583,0.,0.918895633503347)); -#45230=CARTESIAN_POINT('',(-9.55916573882417,0.,0.918895633503348)); -#45231=CARTESIAN_POINT('',(-9.55916573882417,0.,0.918895633503348)); -#45232=CARTESIAN_POINT('',(-9.90916573882417,0.,1.37889563350335)); -#45233=CARTESIAN_POINT('',(-9.74999999999999,0.,1.5)); -#45234=CARTESIAN_POINT('',(-9.90916573882417,0.,1.62110436649665)); -#45235=CARTESIAN_POINT('',(-9.90916573882417,0.,1.62110436649665)); -#45236=CARTESIAN_POINT('',(-9.55916573882417,0.,2.08110436649665)); -#45237=CARTESIAN_POINT('',(-9.4,0.,1.96)); -#45238=CARTESIAN_POINT('',(-9.24083426117583,0.,2.08110436649665)); -#45239=CARTESIAN_POINT('',(-9.24083426117583,0.,2.08110436649665)); -#45240=CARTESIAN_POINT('',(-8.89083426117583,0.,1.62110436649665)); -#45241=CARTESIAN_POINT('',(-9.05,0.,1.5)); -#45242=CARTESIAN_POINT('',(-8.89083426117583,0.,1.37889563350335)); -#45243=CARTESIAN_POINT('',(-8.89083426117583,0.,1.37889563350335)); -#45244=CARTESIAN_POINT('',(9.4,0.,1.5)); -#45245=CARTESIAN_POINT('',(9.4,0.,2.16)); -#45246=CARTESIAN_POINT('',(8.5,0.,-1.6)); -#45247=CARTESIAN_POINT('',(8.5,0.,-1.6)); -#45248=CARTESIAN_POINT('',(8.5,0.,-0.2)); -#45249=CARTESIAN_POINT('',(9.,0.,-0.199999999999999)); -#45250=CARTESIAN_POINT('',(9.00000001490116,0.,0.299999999999999)); -#45251=CARTESIAN_POINT('',(9.,0.,0.0499999999999967)); -#45252=CARTESIAN_POINT('',(9.09615384615385,0.,0.28076923076923)); -#45253=CARTESIAN_POINT('',(9.5,0.,1.25)); -#45254=CARTESIAN_POINT('',(9.90384615384615,0.,0.28076923076923)); -#45255=CARTESIAN_POINT('',(10.,0.,0.0500000000000159)); -#45256=CARTESIAN_POINT('',(10.,0.,0.300000000000001)); -#45257=CARTESIAN_POINT('',(10.,0.,-0.200000000000003)); -#45258=CARTESIAN_POINT('',(10.5,0.,-0.2)); -#45259=CARTESIAN_POINT('',(10.5,0.,-0.2)); -#45260=CARTESIAN_POINT('',(10.5,0.,-1.6)); -#45261=CARTESIAN_POINT('',(9.8,0.,-1.6)); -#45262=CARTESIAN_POINT('',(9.8,0.,-2.3)); -#45263=CARTESIAN_POINT('',(9.8,0.,-2.3)); -#45264=CARTESIAN_POINT('',(9.2,0.,-2.3)); -#45265=CARTESIAN_POINT('',(9.2,0.,-1.6)); -#45266=CARTESIAN_POINT('',(-11.,4.405,-1.3)); -#45267=CARTESIAN_POINT('',(-11.,4.405,2.5)); -#45268=CARTESIAN_POINT('',(-11.,1.6,2.5)); -#45269=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45270=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45271=CARTESIAN_POINT('',(-11.,4.405,-1.3)); -#45272=CARTESIAN_POINT('',(-11.,4.405,-1.3)); -#45273=CARTESIAN_POINT('',(-11.,4.405,-1.3)); -#45274=CARTESIAN_POINT('',(-11.,4.405,0.9)); -#45275=CARTESIAN_POINT('',(-11.,1.6,0.9)); -#45276=CARTESIAN_POINT('',(-11.,1.6,-1.3)); -#45277=CARTESIAN_POINT('',(0.,4.405,0.)); -#45278=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45279=CARTESIAN_POINT('',(-7.825,4.405,1.875)); -#45280=CARTESIAN_POINT('',(-7.375,4.405,1.875)); -#45281=CARTESIAN_POINT('',(-7.825,4.405,0.)); -#45282=CARTESIAN_POINT('',(-7.825,4.405,1.625)); -#45283=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45284=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45285=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45286=CARTESIAN_POINT('',(-10.1,4.405,-0.474917)); -#45287=CARTESIAN_POINT('',(-8.949917,4.405,-1.625)); -#45288=CARTESIAN_POINT('',(-8.949917,4.405,-1.625)); -#45289=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45290=CARTESIAN_POINT('',(-7.825,4.405,-1.625)); -#45291=CARTESIAN_POINT('',(-7.825,4.405,0.)); -#45292=CARTESIAN_POINT('',(-7.825,4.405,-1.875)); -#45293=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45294=CARTESIAN_POINT('',(-7.375,4.405,-1.875)); -#45295=CARTESIAN_POINT('',(-7.375,4.405,0.)); -#45296=CARTESIAN_POINT('',(-7.375,4.405,-1.625)); -#45297=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45298=CARTESIAN_POINT('',(-7.025,4.405,-1.625)); -#45299=CARTESIAN_POINT('',(-7.025,4.405,0.)); -#45300=CARTESIAN_POINT('',(-7.025,4.405,-1.875)); -#45301=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45302=CARTESIAN_POINT('',(-6.575,4.405,-1.875)); -#45303=CARTESIAN_POINT('',(-6.575,4.405,0.)); -#45304=CARTESIAN_POINT('',(-6.575,4.405,-1.625)); -#45305=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45306=CARTESIAN_POINT('',(-6.225,4.405,-1.625)); -#45307=CARTESIAN_POINT('',(-6.225,4.405,0.)); -#45308=CARTESIAN_POINT('',(-6.225,4.405,-1.875)); -#45309=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45310=CARTESIAN_POINT('',(-5.775,4.405,-1.875)); -#45311=CARTESIAN_POINT('',(-5.775,4.405,0.)); -#45312=CARTESIAN_POINT('',(-5.775,4.405,-1.625)); -#45313=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45314=CARTESIAN_POINT('',(-5.425,4.405,-1.625)); -#45315=CARTESIAN_POINT('',(-5.425,4.405,0.)); -#45316=CARTESIAN_POINT('',(-5.425,4.405,-1.875)); -#45317=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45318=CARTESIAN_POINT('',(-4.975,4.405,-1.875)); -#45319=CARTESIAN_POINT('',(-4.975,4.405,0.)); -#45320=CARTESIAN_POINT('',(-4.975,4.405,-1.625)); -#45321=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45322=CARTESIAN_POINT('',(-4.625,4.405,-1.625)); -#45323=CARTESIAN_POINT('',(-4.625,4.405,0.)); -#45324=CARTESIAN_POINT('',(-4.625,4.405,-1.875)); -#45325=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45326=CARTESIAN_POINT('',(-4.175,4.405,-1.875)); -#45327=CARTESIAN_POINT('',(-4.175,4.405,0.)); -#45328=CARTESIAN_POINT('',(-4.175,4.405,-1.625)); -#45329=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45330=CARTESIAN_POINT('',(-3.825,4.405,-1.625)); -#45331=CARTESIAN_POINT('',(-3.825,4.405,0.)); -#45332=CARTESIAN_POINT('',(-3.825,4.405,-1.875)); -#45333=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45334=CARTESIAN_POINT('',(-3.375,4.405,-1.875)); -#45335=CARTESIAN_POINT('',(-3.375,4.405,0.)); -#45336=CARTESIAN_POINT('',(-3.375,4.405,-1.625)); -#45337=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45338=CARTESIAN_POINT('',(-3.025,4.405,-1.625)); -#45339=CARTESIAN_POINT('',(-3.025,4.405,0.)); -#45340=CARTESIAN_POINT('',(-3.025,4.405,-1.875)); -#45341=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45342=CARTESIAN_POINT('',(-2.575,4.405,-1.875)); -#45343=CARTESIAN_POINT('',(-2.575,4.405,0.)); -#45344=CARTESIAN_POINT('',(-2.575,4.405,-1.625)); -#45345=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45346=CARTESIAN_POINT('',(-2.225,4.405,-1.625)); -#45347=CARTESIAN_POINT('',(-2.225,4.405,0.)); -#45348=CARTESIAN_POINT('',(-2.225,4.405,-1.875)); -#45349=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45350=CARTESIAN_POINT('',(-1.775,4.405,-1.875)); -#45351=CARTESIAN_POINT('',(-1.775,4.405,0.)); -#45352=CARTESIAN_POINT('',(-1.775,4.405,-1.625)); -#45353=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45354=CARTESIAN_POINT('',(-1.425,4.405,-1.625)); -#45355=CARTESIAN_POINT('',(-1.425,4.405,0.)); -#45356=CARTESIAN_POINT('',(-1.425,4.405,-1.875)); -#45357=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45358=CARTESIAN_POINT('',(-0.975,4.405,-1.875)); -#45359=CARTESIAN_POINT('',(-0.975,4.405,0.)); -#45360=CARTESIAN_POINT('',(-0.975,4.405,-1.625)); -#45361=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45362=CARTESIAN_POINT('',(-0.625,4.405,-1.625)); -#45363=CARTESIAN_POINT('',(-0.625,4.405,0.)); -#45364=CARTESIAN_POINT('',(-0.625,4.405,-1.875)); -#45365=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45366=CARTESIAN_POINT('',(-0.175,4.405,-1.875)); -#45367=CARTESIAN_POINT('',(-0.175,4.405,0.)); -#45368=CARTESIAN_POINT('',(-0.175,4.405,-1.625)); -#45369=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45370=CARTESIAN_POINT('',(0.175,4.405,-1.625)); -#45371=CARTESIAN_POINT('',(0.175,4.405,0.)); -#45372=CARTESIAN_POINT('',(0.175,4.405,-1.875)); -#45373=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45374=CARTESIAN_POINT('',(0.625,4.405,-1.875)); -#45375=CARTESIAN_POINT('',(0.625,4.405,0.)); -#45376=CARTESIAN_POINT('',(0.625,4.405,-1.625)); -#45377=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45378=CARTESIAN_POINT('',(0.975,4.405,-1.625)); -#45379=CARTESIAN_POINT('',(0.975,4.405,0.)); -#45380=CARTESIAN_POINT('',(0.975,4.405,-1.875)); -#45381=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45382=CARTESIAN_POINT('',(1.425,4.405,-1.875)); -#45383=CARTESIAN_POINT('',(1.425,4.405,0.)); -#45384=CARTESIAN_POINT('',(1.425,4.405,-1.625)); -#45385=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45386=CARTESIAN_POINT('',(1.775,4.405,-1.625)); -#45387=CARTESIAN_POINT('',(1.775,4.405,0.)); -#45388=CARTESIAN_POINT('',(1.775,4.405,-1.875)); -#45389=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45390=CARTESIAN_POINT('',(2.225,4.405,-1.875)); -#45391=CARTESIAN_POINT('',(2.225,4.405,0.)); -#45392=CARTESIAN_POINT('',(2.225,4.405,-1.625)); -#45393=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45394=CARTESIAN_POINT('',(2.575,4.405,-1.625)); -#45395=CARTESIAN_POINT('',(2.575,4.405,0.)); -#45396=CARTESIAN_POINT('',(2.575,4.405,-1.875)); -#45397=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45398=CARTESIAN_POINT('',(3.025,4.405,-1.875)); -#45399=CARTESIAN_POINT('',(3.025,4.405,0.)); -#45400=CARTESIAN_POINT('',(3.025,4.405,-1.625)); -#45401=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45402=CARTESIAN_POINT('',(3.375,4.405,-1.625)); -#45403=CARTESIAN_POINT('',(3.375,4.405,0.)); -#45404=CARTESIAN_POINT('',(3.375,4.405,-1.875)); -#45405=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45406=CARTESIAN_POINT('',(3.825,4.405,-1.875)); -#45407=CARTESIAN_POINT('',(3.825,4.405,0.)); -#45408=CARTESIAN_POINT('',(3.825,4.405,-1.625)); -#45409=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45410=CARTESIAN_POINT('',(4.175,4.405,-1.625)); -#45411=CARTESIAN_POINT('',(4.175,4.405,0.)); -#45412=CARTESIAN_POINT('',(4.175,4.405,-1.875)); -#45413=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45414=CARTESIAN_POINT('',(4.625,4.405,-1.875)); -#45415=CARTESIAN_POINT('',(4.625,4.405,0.)); -#45416=CARTESIAN_POINT('',(4.625,4.405,-1.625)); -#45417=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45418=CARTESIAN_POINT('',(4.975,4.405,-1.625)); -#45419=CARTESIAN_POINT('',(4.975,4.405,0.)); -#45420=CARTESIAN_POINT('',(4.975,4.405,-1.875)); -#45421=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45422=CARTESIAN_POINT('',(5.425,4.405,-1.875)); -#45423=CARTESIAN_POINT('',(5.425,4.405,0.)); -#45424=CARTESIAN_POINT('',(5.425,4.405,-1.625)); -#45425=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45426=CARTESIAN_POINT('',(5.775,4.405,-1.625)); -#45427=CARTESIAN_POINT('',(5.775,4.405,0.)); -#45428=CARTESIAN_POINT('',(5.775,4.405,-1.875)); -#45429=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45430=CARTESIAN_POINT('',(6.225,4.405,-1.875)); -#45431=CARTESIAN_POINT('',(6.225,4.405,0.)); -#45432=CARTESIAN_POINT('',(6.225,4.405,-1.625)); -#45433=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45434=CARTESIAN_POINT('',(6.575,4.405,-1.625)); -#45435=CARTESIAN_POINT('',(6.575,4.405,0.)); -#45436=CARTESIAN_POINT('',(6.575,4.405,-1.875)); -#45437=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45438=CARTESIAN_POINT('',(7.025,4.405,-1.875)); -#45439=CARTESIAN_POINT('',(7.025,4.405,0.)); -#45440=CARTESIAN_POINT('',(7.025,4.405,-1.625)); -#45441=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45442=CARTESIAN_POINT('',(7.375,4.405,-1.625)); -#45443=CARTESIAN_POINT('',(7.375,4.405,0.)); -#45444=CARTESIAN_POINT('',(7.375,4.405,-1.875)); -#45445=CARTESIAN_POINT('',(0.,4.405,-1.875)); -#45446=CARTESIAN_POINT('',(7.825,4.405,-1.875)); -#45447=CARTESIAN_POINT('',(7.825,4.405,0.)); -#45448=CARTESIAN_POINT('',(7.825,4.405,-1.625)); -#45449=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); -#45450=CARTESIAN_POINT('',(8.949917,4.405,-1.625)); -#45451=CARTESIAN_POINT('',(10.1,4.405,-0.474917)); -#45452=CARTESIAN_POINT('',(10.1,4.405,-0.474917)); -#45453=CARTESIAN_POINT('',(10.1,4.405,1.625)); -#45454=CARTESIAN_POINT('',(10.1,4.405,1.625)); -#45455=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45456=CARTESIAN_POINT('',(7.825,4.405,1.625)); -#45457=CARTESIAN_POINT('',(7.825,4.405,0.)); -#45458=CARTESIAN_POINT('',(7.825,4.405,1.875)); -#45459=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45460=CARTESIAN_POINT('',(7.375,4.405,1.875)); -#45461=CARTESIAN_POINT('',(7.375,4.405,0.)); -#45462=CARTESIAN_POINT('',(7.375,4.405,1.625)); -#45463=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45464=CARTESIAN_POINT('',(7.025,4.405,1.625)); -#45465=CARTESIAN_POINT('',(7.025,4.405,0.)); -#45466=CARTESIAN_POINT('',(7.025,4.405,1.875)); -#45467=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45468=CARTESIAN_POINT('',(6.575,4.405,1.875)); -#45469=CARTESIAN_POINT('',(6.575,4.405,0.)); -#45470=CARTESIAN_POINT('',(6.575,4.405,1.625)); -#45471=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45472=CARTESIAN_POINT('',(6.225,4.405,1.625)); -#45473=CARTESIAN_POINT('',(6.225,4.405,0.)); -#45474=CARTESIAN_POINT('',(6.225,4.405,1.875)); -#45475=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45476=CARTESIAN_POINT('',(5.775,4.405,1.875)); -#45477=CARTESIAN_POINT('',(5.775,4.405,0.)); -#45478=CARTESIAN_POINT('',(5.775,4.405,1.625)); -#45479=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45480=CARTESIAN_POINT('',(5.425,4.405,1.625)); -#45481=CARTESIAN_POINT('',(5.425,4.405,0.)); -#45482=CARTESIAN_POINT('',(5.425,4.405,1.875)); -#45483=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45484=CARTESIAN_POINT('',(4.975,4.405,1.875)); -#45485=CARTESIAN_POINT('',(4.975,4.405,0.)); -#45486=CARTESIAN_POINT('',(4.975,4.405,1.625)); -#45487=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45488=CARTESIAN_POINT('',(4.625,4.405,1.625)); -#45489=CARTESIAN_POINT('',(4.625,4.405,0.)); -#45490=CARTESIAN_POINT('',(4.625,4.405,1.875)); -#45491=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45492=CARTESIAN_POINT('',(4.175,4.405,1.875)); -#45493=CARTESIAN_POINT('',(4.175,4.405,0.)); -#45494=CARTESIAN_POINT('',(4.175,4.405,1.625)); -#45495=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45496=CARTESIAN_POINT('',(3.825,4.405,1.625)); -#45497=CARTESIAN_POINT('',(3.825,4.405,0.)); -#45498=CARTESIAN_POINT('',(3.825,4.405,1.875)); -#45499=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45500=CARTESIAN_POINT('',(3.375,4.405,1.875)); -#45501=CARTESIAN_POINT('',(3.375,4.405,0.)); -#45502=CARTESIAN_POINT('',(3.375,4.405,1.625)); -#45503=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45504=CARTESIAN_POINT('',(3.025,4.405,1.625)); -#45505=CARTESIAN_POINT('',(3.025,4.405,0.)); -#45506=CARTESIAN_POINT('',(3.025,4.405,1.875)); -#45507=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45508=CARTESIAN_POINT('',(2.575,4.405,1.875)); -#45509=CARTESIAN_POINT('',(2.575,4.405,0.)); -#45510=CARTESIAN_POINT('',(2.575,4.405,1.625)); -#45511=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45512=CARTESIAN_POINT('',(2.225,4.405,1.625)); -#45513=CARTESIAN_POINT('',(2.225,4.405,0.)); -#45514=CARTESIAN_POINT('',(2.225,4.405,1.875)); -#45515=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45516=CARTESIAN_POINT('',(1.775,4.405,1.875)); -#45517=CARTESIAN_POINT('',(1.775,4.405,0.)); -#45518=CARTESIAN_POINT('',(1.775,4.405,1.625)); -#45519=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45520=CARTESIAN_POINT('',(1.425,4.405,1.625)); -#45521=CARTESIAN_POINT('',(1.425,4.405,0.)); -#45522=CARTESIAN_POINT('',(1.425,4.405,1.875)); -#45523=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45524=CARTESIAN_POINT('',(0.975,4.405,1.875)); -#45525=CARTESIAN_POINT('',(0.975,4.405,0.)); -#45526=CARTESIAN_POINT('',(0.975,4.405,1.625)); -#45527=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45528=CARTESIAN_POINT('',(0.625,4.405,1.625)); -#45529=CARTESIAN_POINT('',(0.625,4.405,0.)); -#45530=CARTESIAN_POINT('',(0.625,4.405,1.875)); -#45531=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45532=CARTESIAN_POINT('',(0.175,4.405,1.875)); -#45533=CARTESIAN_POINT('',(0.175,4.405,0.)); -#45534=CARTESIAN_POINT('',(0.175,4.405,1.625)); -#45535=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45536=CARTESIAN_POINT('',(-0.175,4.405,1.625)); -#45537=CARTESIAN_POINT('',(-0.175,4.405,0.)); -#45538=CARTESIAN_POINT('',(-0.175,4.405,1.875)); -#45539=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45540=CARTESIAN_POINT('',(-0.625,4.405,1.875)); -#45541=CARTESIAN_POINT('',(-0.625,4.405,0.)); -#45542=CARTESIAN_POINT('',(-0.625,4.405,1.625)); -#45543=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45544=CARTESIAN_POINT('',(-0.975,4.405,1.625)); -#45545=CARTESIAN_POINT('',(-0.975,4.405,0.)); -#45546=CARTESIAN_POINT('',(-0.975,4.405,1.875)); -#45547=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45548=CARTESIAN_POINT('',(-1.425,4.405,1.875)); -#45549=CARTESIAN_POINT('',(-1.425,4.405,0.)); -#45550=CARTESIAN_POINT('',(-1.425,4.405,1.625)); -#45551=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45552=CARTESIAN_POINT('',(-1.775,4.405,1.625)); -#45553=CARTESIAN_POINT('',(-1.775,4.405,0.)); -#45554=CARTESIAN_POINT('',(-1.775,4.405,1.875)); -#45555=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45556=CARTESIAN_POINT('',(-2.225,4.405,1.875)); -#45557=CARTESIAN_POINT('',(-2.225,4.405,0.)); -#45558=CARTESIAN_POINT('',(-2.225,4.405,1.625)); -#45559=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45560=CARTESIAN_POINT('',(-2.575,4.405,1.625)); -#45561=CARTESIAN_POINT('',(-2.575,4.405,0.)); -#45562=CARTESIAN_POINT('',(-2.575,4.405,1.875)); -#45563=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45564=CARTESIAN_POINT('',(-3.025,4.405,1.875)); -#45565=CARTESIAN_POINT('',(-3.025,4.405,0.)); -#45566=CARTESIAN_POINT('',(-3.025,4.405,1.625)); -#45567=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45568=CARTESIAN_POINT('',(-3.375,4.405,1.625)); -#45569=CARTESIAN_POINT('',(-3.375,4.405,0.)); -#45570=CARTESIAN_POINT('',(-3.375,4.405,1.875)); -#45571=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45572=CARTESIAN_POINT('',(-3.825,4.405,1.875)); -#45573=CARTESIAN_POINT('',(-3.825,4.405,0.)); -#45574=CARTESIAN_POINT('',(-3.825,4.405,1.625)); -#45575=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45576=CARTESIAN_POINT('',(-4.175,4.405,1.625)); -#45577=CARTESIAN_POINT('',(-4.175,4.405,0.)); -#45578=CARTESIAN_POINT('',(-4.175,4.405,1.875)); -#45579=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45580=CARTESIAN_POINT('',(-4.625,4.405,1.875)); -#45581=CARTESIAN_POINT('',(-4.625,4.405,0.)); -#45582=CARTESIAN_POINT('',(-4.625,4.405,1.625)); -#45583=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45584=CARTESIAN_POINT('',(-4.975,4.405,1.625)); -#45585=CARTESIAN_POINT('',(-4.975,4.405,0.)); -#45586=CARTESIAN_POINT('',(-4.975,4.405,1.875)); -#45587=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45588=CARTESIAN_POINT('',(-5.425,4.405,1.875)); -#45589=CARTESIAN_POINT('',(-5.425,4.405,0.)); -#45590=CARTESIAN_POINT('',(-5.425,4.405,1.625)); -#45591=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45592=CARTESIAN_POINT('',(-5.775,4.405,1.625)); -#45593=CARTESIAN_POINT('',(-5.775,4.405,0.)); -#45594=CARTESIAN_POINT('',(-5.775,4.405,1.875)); -#45595=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45596=CARTESIAN_POINT('',(-6.225,4.405,1.875)); -#45597=CARTESIAN_POINT('',(-6.225,4.405,0.)); -#45598=CARTESIAN_POINT('',(-6.225,4.405,1.625)); -#45599=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45600=CARTESIAN_POINT('',(-6.575,4.405,1.625)); -#45601=CARTESIAN_POINT('',(-6.575,4.405,0.)); -#45602=CARTESIAN_POINT('',(-6.575,4.405,1.875)); -#45603=CARTESIAN_POINT('',(0.,4.405,1.875)); -#45604=CARTESIAN_POINT('',(-7.025,4.405,1.875)); -#45605=CARTESIAN_POINT('',(-7.025,4.405,0.)); -#45606=CARTESIAN_POINT('',(-7.025,4.405,1.625)); -#45607=CARTESIAN_POINT('',(-10.1,4.405,1.625)); -#45608=CARTESIAN_POINT('',(-7.375,4.405,1.625)); -#45609=CARTESIAN_POINT('',(-7.375,4.405,0.)); -#45610=CARTESIAN_POINT('',(0.,4.405,-2.7)); -#45611=CARTESIAN_POINT('',(-9.29791666666667,4.405,-2.7)); -#45612=CARTESIAN_POINT('',(-9.14641016285714,4.405,-2.7)); -#45613=CARTESIAN_POINT('',(-9.29791666666667,4.405,0.)); -#45614=CARTESIAN_POINT('',(-9.29791666666667,4.405,-2.8)); -#45615=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45616=CARTESIAN_POINT('',(-9.5,4.405,-2.8)); -#45617=CARTESIAN_POINT('',(-9.5,4.405,-2.8)); -#45618=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45619=CARTESIAN_POINT('',(-7.65,4.405,2.8)); -#45620=CARTESIAN_POINT('',(-7.65,4.405,2.275)); -#45621=CARTESIAN_POINT('',(-7.65,4.405,2.275)); -#45622=CARTESIAN_POINT('',(-6.35,4.405,2.275)); -#45623=CARTESIAN_POINT('',(-6.35,4.405,2.275)); -#45624=CARTESIAN_POINT('',(-6.35,4.405,2.8)); -#45625=CARTESIAN_POINT('',(-6.35,4.405,2.8)); -#45626=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45627=CARTESIAN_POINT('',(-5.65,4.405,2.8)); -#45628=CARTESIAN_POINT('',(-5.65,4.405,2.275)); -#45629=CARTESIAN_POINT('',(-5.65,4.405,2.275)); -#45630=CARTESIAN_POINT('',(-4.35,4.405,2.275)); -#45631=CARTESIAN_POINT('',(-4.35,4.405,2.275)); -#45632=CARTESIAN_POINT('',(-4.35,4.405,2.8)); -#45633=CARTESIAN_POINT('',(-4.35,4.405,2.8)); -#45634=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45635=CARTESIAN_POINT('',(-3.65,4.405,2.8)); -#45636=CARTESIAN_POINT('',(-3.65,4.405,2.275)); -#45637=CARTESIAN_POINT('',(-3.65,4.405,2.275)); -#45638=CARTESIAN_POINT('',(-2.35,4.405,2.275)); -#45639=CARTESIAN_POINT('',(-2.35,4.405,2.275)); -#45640=CARTESIAN_POINT('',(-2.35,4.405,2.8)); -#45641=CARTESIAN_POINT('',(-2.35,4.405,2.8)); -#45642=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45643=CARTESIAN_POINT('',(-1.65,4.405,2.8)); -#45644=CARTESIAN_POINT('',(-1.65,4.405,2.275)); -#45645=CARTESIAN_POINT('',(-1.65,4.405,2.275)); -#45646=CARTESIAN_POINT('',(-0.350000000000001,4.405,2.275)); -#45647=CARTESIAN_POINT('',(-0.350000000000001,4.405,2.275)); -#45648=CARTESIAN_POINT('',(-0.350000000000001,4.405,2.8)); -#45649=CARTESIAN_POINT('',(-0.350000000000001,4.405,2.8)); -#45650=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45651=CARTESIAN_POINT('',(0.35,4.405,2.8)); -#45652=CARTESIAN_POINT('',(0.35,4.405,2.275)); -#45653=CARTESIAN_POINT('',(0.35,4.405,2.275)); -#45654=CARTESIAN_POINT('',(1.65,4.405,2.275)); -#45655=CARTESIAN_POINT('',(1.65,4.405,2.275)); -#45656=CARTESIAN_POINT('',(1.65,4.405,2.8)); -#45657=CARTESIAN_POINT('',(1.65,4.405,2.8)); -#45658=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45659=CARTESIAN_POINT('',(2.35,4.405,2.8)); -#45660=CARTESIAN_POINT('',(2.35,4.405,2.275)); -#45661=CARTESIAN_POINT('',(2.35,4.405,2.275)); -#45662=CARTESIAN_POINT('',(3.65,4.405,2.275)); -#45663=CARTESIAN_POINT('',(3.65,4.405,2.275)); -#45664=CARTESIAN_POINT('',(3.65,4.405,2.8)); -#45665=CARTESIAN_POINT('',(3.65,4.405,2.8)); -#45666=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45667=CARTESIAN_POINT('',(4.35,4.405,2.8)); -#45668=CARTESIAN_POINT('',(4.35,4.405,2.275)); -#45669=CARTESIAN_POINT('',(4.35,4.405,2.275)); -#45670=CARTESIAN_POINT('',(5.65,4.405,2.275)); -#45671=CARTESIAN_POINT('',(5.65,4.405,2.275)); -#45672=CARTESIAN_POINT('',(5.65,4.405,2.8)); -#45673=CARTESIAN_POINT('',(5.65,4.405,2.8)); -#45674=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45675=CARTESIAN_POINT('',(6.35,4.405,2.8)); -#45676=CARTESIAN_POINT('',(6.35,4.405,2.275)); -#45677=CARTESIAN_POINT('',(6.35,4.405,2.275)); -#45678=CARTESIAN_POINT('',(7.65,4.405,2.275)); -#45679=CARTESIAN_POINT('',(7.65,4.405,2.275)); -#45680=CARTESIAN_POINT('',(7.65,4.405,3.275)); -#45681=CARTESIAN_POINT('',(7.65,4.405,2.8)); -#45682=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#45683=CARTESIAN_POINT('',(11.,4.405,1.)); -#45684=CARTESIAN_POINT('',(10.9,4.405,-1.)); -#45685=CARTESIAN_POINT('',(11.,4.405,-1.)); -#45686=CARTESIAN_POINT('',(11.,4.405,-1.)); -#45687=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45688=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45689=CARTESIAN_POINT('',(7.65,4.405,-2.8)); -#45690=CARTESIAN_POINT('',(7.65,4.405,-2.275)); -#45691=CARTESIAN_POINT('',(7.65,4.405,-2.275)); -#45692=CARTESIAN_POINT('',(6.35,4.405,-2.275)); -#45693=CARTESIAN_POINT('',(6.35,4.405,-2.275)); -#45694=CARTESIAN_POINT('',(6.35,4.405,-2.8)); -#45695=CARTESIAN_POINT('',(6.35,4.405,-2.8)); -#45696=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45697=CARTESIAN_POINT('',(5.65,4.405,-2.8)); -#45698=CARTESIAN_POINT('',(5.65,4.405,-2.275)); -#45699=CARTESIAN_POINT('',(5.65,4.405,-2.275)); -#45700=CARTESIAN_POINT('',(4.35,4.405,-2.275)); -#45701=CARTESIAN_POINT('',(4.35,4.405,-2.275)); -#45702=CARTESIAN_POINT('',(4.35,4.405,-2.8)); -#45703=CARTESIAN_POINT('',(4.35,4.405,-2.8)); -#45704=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45705=CARTESIAN_POINT('',(3.65,4.405,-2.8)); -#45706=CARTESIAN_POINT('',(3.65,4.405,-2.275)); -#45707=CARTESIAN_POINT('',(3.65,4.405,-2.275)); -#45708=CARTESIAN_POINT('',(2.35,4.405,-2.275)); -#45709=CARTESIAN_POINT('',(2.35,4.405,-2.275)); -#45710=CARTESIAN_POINT('',(2.35,4.405,-2.8)); -#45711=CARTESIAN_POINT('',(2.35,4.405,-2.8)); -#45712=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45713=CARTESIAN_POINT('',(1.65,4.405,-2.8)); -#45714=CARTESIAN_POINT('',(1.65,4.405,-2.275)); -#45715=CARTESIAN_POINT('',(1.65,4.405,-2.275)); -#45716=CARTESIAN_POINT('',(0.35,4.405,-2.275)); -#45717=CARTESIAN_POINT('',(0.35,4.405,-2.275)); -#45718=CARTESIAN_POINT('',(0.35,4.405,-2.8)); -#45719=CARTESIAN_POINT('',(0.35,4.405,-2.8)); -#45720=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45721=CARTESIAN_POINT('',(-0.350000000000001,4.405,-2.8)); -#45722=CARTESIAN_POINT('',(-0.350000000000001,4.405,-2.275)); -#45723=CARTESIAN_POINT('',(-0.35,4.405,-2.275)); -#45724=CARTESIAN_POINT('',(-1.65,4.405,-2.275)); -#45725=CARTESIAN_POINT('',(-1.65,4.405,-2.275)); -#45726=CARTESIAN_POINT('',(-1.65,4.405,-2.8)); -#45727=CARTESIAN_POINT('',(-1.65,4.405,-2.8)); -#45728=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45729=CARTESIAN_POINT('',(-2.35,4.405,-2.8)); -#45730=CARTESIAN_POINT('',(-2.35,4.405,-2.275)); -#45731=CARTESIAN_POINT('',(-2.35,4.405,-2.275)); -#45732=CARTESIAN_POINT('',(-3.65,4.405,-2.275)); -#45733=CARTESIAN_POINT('',(-3.65,4.405,-2.275)); -#45734=CARTESIAN_POINT('',(-3.65,4.405,-2.8)); -#45735=CARTESIAN_POINT('',(-3.65,4.405,-2.8)); -#45736=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45737=CARTESIAN_POINT('',(-4.35,4.405,-2.8)); -#45738=CARTESIAN_POINT('',(-4.35,4.405,-2.275)); -#45739=CARTESIAN_POINT('',(-4.35,4.405,-2.275)); -#45740=CARTESIAN_POINT('',(-5.65,4.405,-2.275)); -#45741=CARTESIAN_POINT('',(-5.65,4.405,-2.275)); -#45742=CARTESIAN_POINT('',(-5.65,4.405,-2.8)); -#45743=CARTESIAN_POINT('',(-5.65,4.405,-2.8)); -#45744=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45745=CARTESIAN_POINT('',(-6.35,4.405,-2.8)); -#45746=CARTESIAN_POINT('',(-6.35,4.405,-2.275)); -#45747=CARTESIAN_POINT('',(-6.35,4.405,-2.275)); -#45748=CARTESIAN_POINT('',(-7.65,4.405,-2.275)); -#45749=CARTESIAN_POINT('',(-7.65,4.405,-2.275)); -#45750=CARTESIAN_POINT('',(-7.65,4.405,-3.275)); -#45751=CARTESIAN_POINT('',(-7.65,4.405,-2.8)); -#45752=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45753=CARTESIAN_POINT('',(-8.30208333333333,4.405,-2.8)); -#45754=CARTESIAN_POINT('',(-8.30208333333334,4.405,0.)); -#45755=CARTESIAN_POINT('',(-8.30208333333333,4.405,-2.7)); -#45756=CARTESIAN_POINT('',(0.,4.405,-2.7)); -#45757=CARTESIAN_POINT('',(-8.45358983714286,4.405,-2.7)); -#45758=CARTESIAN_POINT('',(-8.8,4.405,-2.1)); -#45759=CARTESIAN_POINT('',(-8.8,4.405,-2.1)); -#45760=CARTESIAN_POINT('',(-9.20414519,4.405,-2.8)); -#45761=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#45762=CARTESIAN_POINT('',(-9.3,4.41,-2.8)); -#45763=CARTESIAN_POINT('',(-8.8,3.21,-2.8)); -#45764=CARTESIAN_POINT('',(-8.8,3.21,-2.8)); -#45765=CARTESIAN_POINT('',(-7.65,4.405,-2.8)); -#45766=CARTESIAN_POINT('',(-7.65,3.,-2.8)); -#45767=CARTESIAN_POINT('',(-6.7,3.,-2.8)); -#45768=CARTESIAN_POINT('',(-8.9,3.,-2.8)); -#45769=CARTESIAN_POINT('',(-8.9,3.,-2.8)); -#45770=CARTESIAN_POINT('',(-9.5,4.405,-2.8)); -#45771=CARTESIAN_POINT('',(7.375,4.16,1.875)); -#45772=CARTESIAN_POINT('',(7.825,4.16,1.875)); -#45773=CARTESIAN_POINT('',(7.825,4.16,1.875)); -#45774=CARTESIAN_POINT('',(7.825,4.16,0.35)); -#45775=CARTESIAN_POINT('',(7.375,4.16,0.35)); -#45776=CARTESIAN_POINT('',(7.375,4.16,0.35)); -#45777=CARTESIAN_POINT('',(7.375,4.16,1.875)); -#45778=CARTESIAN_POINT('',(7.375,4.16,1.875)); -#45779=CARTESIAN_POINT('',(7.375,4.16,1.875)); -#45780=CARTESIAN_POINT('',(7.375,4.16,1.875)); -#45781=CARTESIAN_POINT('',(7.375,4.16,1.875)); -#45782=CARTESIAN_POINT('',(7.375,4.16,-0.35)); -#45783=CARTESIAN_POINT('',(7.375,4.16,-1.875)); -#45784=CARTESIAN_POINT('',(7.375,4.16,-0.35)); -#45785=CARTESIAN_POINT('',(7.825,4.16,-0.35)); -#45786=CARTESIAN_POINT('',(7.825,4.16,1.875)); -#45787=CARTESIAN_POINT('',(7.825,4.16,-1.875)); -#45788=CARTESIAN_POINT('',(7.375,4.16,-1.875)); -#45789=CARTESIAN_POINT('',(7.825,4.16,1.875)); -#45790=CARTESIAN_POINT('',(7.825,7.21,1.89735380184963E-16)); -#45791=CARTESIAN_POINT('',(7.825,7.21,-0.35)); -#45792=CARTESIAN_POINT('',(7.825,7.21,0.35)); -#45793=CARTESIAN_POINT('',(7.825,4.16,0.35)); -#45794=CARTESIAN_POINT('',(7.825,4.16,1.875)); -#45795=CARTESIAN_POINT('',(7.825,-2.7148422399037E-15,1.625)); -#45796=CARTESIAN_POINT('',(7.825,7.605,1.625)); -#45797=CARTESIAN_POINT('',(7.825,7.605,1.625)); -#45798=CARTESIAN_POINT('',(7.825,7.605,-1.625)); -#45799=CARTESIAN_POINT('',(7.825,-2.7148422399037E-15,-1.625)); -#45800=CARTESIAN_POINT('',(7.825,4.16,-1.875)); -#45801=CARTESIAN_POINT('',(7.825,4.16,-0.35)); -#45802=CARTESIAN_POINT('',(7.375,8.41,1.875)); -#45803=CARTESIAN_POINT('',(7.375,8.41,0.35)); -#45804=CARTESIAN_POINT('',(7.375,7.21,0.35)); -#45805=CARTESIAN_POINT('',(7.375,7.21,1.89735380184963E-16)); -#45806=CARTESIAN_POINT('',(7.375,7.21,-0.35)); -#45807=CARTESIAN_POINT('',(7.375,8.41,-0.35)); -#45808=CARTESIAN_POINT('',(7.375,8.41,-1.875)); -#45809=CARTESIAN_POINT('',(7.375,0.,-1.625)); -#45810=CARTESIAN_POINT('',(7.375,7.605,-1.625)); -#45811=CARTESIAN_POINT('',(7.375,7.605,1.625)); -#45812=CARTESIAN_POINT('',(7.375,7.605,1.625)); -#45813=CARTESIAN_POINT('',(7.375,0.,1.625)); -#45814=CARTESIAN_POINT('',(7.375,8.41,1.875)); -#45815=CARTESIAN_POINT('',(6.575,4.16,1.875)); -#45816=CARTESIAN_POINT('',(7.025,4.16,1.875)); -#45817=CARTESIAN_POINT('',(7.025,4.16,1.875)); -#45818=CARTESIAN_POINT('',(7.025,4.16,0.35)); -#45819=CARTESIAN_POINT('',(6.575,4.16,0.35)); -#45820=CARTESIAN_POINT('',(6.575,4.16,0.35)); -#45821=CARTESIAN_POINT('',(6.575,4.16,1.875)); -#45822=CARTESIAN_POINT('',(6.575,4.16,1.875)); -#45823=CARTESIAN_POINT('',(6.575,4.16,1.875)); -#45824=CARTESIAN_POINT('',(6.575,4.16,1.875)); -#45825=CARTESIAN_POINT('',(6.575,4.16,1.875)); -#45826=CARTESIAN_POINT('',(6.575,4.16,-0.35)); -#45827=CARTESIAN_POINT('',(6.575,4.16,-1.875)); -#45828=CARTESIAN_POINT('',(6.575,4.16,-0.35)); -#45829=CARTESIAN_POINT('',(7.025,4.16,-0.35)); -#45830=CARTESIAN_POINT('',(7.025,4.16,1.875)); -#45831=CARTESIAN_POINT('',(7.025,4.16,-1.875)); -#45832=CARTESIAN_POINT('',(6.575,4.16,-1.875)); -#45833=CARTESIAN_POINT('',(7.025,4.16,1.875)); -#45834=CARTESIAN_POINT('',(7.025,7.21,1.89735380184963E-16)); -#45835=CARTESIAN_POINT('',(7.025,7.21,-0.35)); -#45836=CARTESIAN_POINT('',(7.025,7.21,0.35)); -#45837=CARTESIAN_POINT('',(7.025,4.16,0.35)); -#45838=CARTESIAN_POINT('',(7.025,4.16,1.875)); -#45839=CARTESIAN_POINT('',(7.025,0.,1.625)); -#45840=CARTESIAN_POINT('',(7.025,7.605,1.625)); -#45841=CARTESIAN_POINT('',(7.025,7.605,1.625)); -#45842=CARTESIAN_POINT('',(7.025,7.605,-1.625)); -#45843=CARTESIAN_POINT('',(7.025,0.,-1.625)); -#45844=CARTESIAN_POINT('',(7.025,4.16,-1.875)); -#45845=CARTESIAN_POINT('',(7.025,4.16,-0.35)); -#45846=CARTESIAN_POINT('',(6.575,8.41,1.875)); -#45847=CARTESIAN_POINT('',(6.575,8.41,0.35)); -#45848=CARTESIAN_POINT('',(6.575,7.21,0.35)); -#45849=CARTESIAN_POINT('',(6.575,7.21,1.89735380184963E-16)); -#45850=CARTESIAN_POINT('',(6.575,7.21,-0.35)); -#45851=CARTESIAN_POINT('',(6.575,8.41,-0.35)); -#45852=CARTESIAN_POINT('',(6.575,8.41,-1.875)); -#45853=CARTESIAN_POINT('',(6.575,0.,-1.625)); -#45854=CARTESIAN_POINT('',(6.575,7.605,-1.625)); -#45855=CARTESIAN_POINT('',(6.575,7.605,1.625)); -#45856=CARTESIAN_POINT('',(6.575,7.605,1.625)); -#45857=CARTESIAN_POINT('',(6.575,0.,1.625)); -#45858=CARTESIAN_POINT('',(6.575,8.41,1.875)); -#45859=CARTESIAN_POINT('',(5.775,4.16,1.875)); -#45860=CARTESIAN_POINT('',(6.225,4.16,1.875)); -#45861=CARTESIAN_POINT('',(6.225,4.16,1.875)); -#45862=CARTESIAN_POINT('',(6.225,4.16,0.35)); -#45863=CARTESIAN_POINT('',(5.775,4.16,0.35)); -#45864=CARTESIAN_POINT('',(5.775,4.16,0.35)); -#45865=CARTESIAN_POINT('',(5.775,4.16,1.875)); -#45866=CARTESIAN_POINT('',(5.775,4.16,1.875)); -#45867=CARTESIAN_POINT('',(5.775,4.16,1.875)); -#45868=CARTESIAN_POINT('',(5.775,4.16,1.875)); -#45869=CARTESIAN_POINT('',(5.775,4.16,1.875)); -#45870=CARTESIAN_POINT('',(5.775,4.16,-0.35)); -#45871=CARTESIAN_POINT('',(5.775,4.16,-1.875)); -#45872=CARTESIAN_POINT('',(5.775,4.16,-0.35)); -#45873=CARTESIAN_POINT('',(6.225,4.16,-0.35)); -#45874=CARTESIAN_POINT('',(6.225,4.16,1.875)); -#45875=CARTESIAN_POINT('',(6.225,4.16,-1.875)); -#45876=CARTESIAN_POINT('',(5.775,4.16,-1.875)); -#45877=CARTESIAN_POINT('',(6.225,4.16,1.875)); -#45878=CARTESIAN_POINT('',(6.225,7.21,1.89735380184963E-16)); -#45879=CARTESIAN_POINT('',(6.225,7.21,-0.35)); -#45880=CARTESIAN_POINT('',(6.225,7.21,0.35)); -#45881=CARTESIAN_POINT('',(6.225,4.16,0.35)); -#45882=CARTESIAN_POINT('',(6.225,4.16,1.875)); -#45883=CARTESIAN_POINT('',(6.225,0.,1.625)); -#45884=CARTESIAN_POINT('',(6.225,7.605,1.625)); -#45885=CARTESIAN_POINT('',(6.225,7.605,1.625)); -#45886=CARTESIAN_POINT('',(6.225,7.605,-1.625)); -#45887=CARTESIAN_POINT('',(6.225,0.,-1.625)); -#45888=CARTESIAN_POINT('',(6.225,4.16,-1.875)); -#45889=CARTESIAN_POINT('',(6.225,4.16,-0.35)); -#45890=CARTESIAN_POINT('',(5.775,8.41,1.875)); -#45891=CARTESIAN_POINT('',(5.775,8.41,0.35)); -#45892=CARTESIAN_POINT('',(5.775,7.21,0.35)); -#45893=CARTESIAN_POINT('',(5.775,7.21,1.89735380184963E-16)); -#45894=CARTESIAN_POINT('',(5.775,7.21,-0.35)); -#45895=CARTESIAN_POINT('',(5.775,8.41,-0.35)); -#45896=CARTESIAN_POINT('',(5.775,8.41,-1.875)); -#45897=CARTESIAN_POINT('',(5.775,0.,-1.625)); -#45898=CARTESIAN_POINT('',(5.775,7.605,-1.625)); -#45899=CARTESIAN_POINT('',(5.775,7.605,1.625)); -#45900=CARTESIAN_POINT('',(5.775,7.605,1.625)); -#45901=CARTESIAN_POINT('',(5.775,0.,1.625)); -#45902=CARTESIAN_POINT('',(5.775,8.41,1.875)); -#45903=CARTESIAN_POINT('',(4.975,4.16,1.875)); -#45904=CARTESIAN_POINT('',(5.425,4.16,1.875)); -#45905=CARTESIAN_POINT('',(5.425,4.16,1.875)); -#45906=CARTESIAN_POINT('',(5.425,4.16,0.35)); -#45907=CARTESIAN_POINT('',(4.975,4.16,0.35)); -#45908=CARTESIAN_POINT('',(4.975,4.16,0.35)); -#45909=CARTESIAN_POINT('',(4.975,4.16,1.875)); -#45910=CARTESIAN_POINT('',(4.975,4.16,1.875)); -#45911=CARTESIAN_POINT('',(4.975,4.16,1.875)); -#45912=CARTESIAN_POINT('',(4.975,4.16,1.875)); -#45913=CARTESIAN_POINT('',(4.975,4.16,1.875)); -#45914=CARTESIAN_POINT('',(4.975,4.16,-0.35)); -#45915=CARTESIAN_POINT('',(4.975,4.16,-1.875)); -#45916=CARTESIAN_POINT('',(4.975,4.16,-0.35)); -#45917=CARTESIAN_POINT('',(5.425,4.16,-0.35)); -#45918=CARTESIAN_POINT('',(5.425,4.16,1.875)); -#45919=CARTESIAN_POINT('',(5.425,4.16,-1.875)); -#45920=CARTESIAN_POINT('',(4.975,4.16,-1.875)); -#45921=CARTESIAN_POINT('',(5.425,4.16,1.875)); -#45922=CARTESIAN_POINT('',(5.425,7.21,1.89735380184963E-16)); -#45923=CARTESIAN_POINT('',(5.425,7.21,-0.35)); -#45924=CARTESIAN_POINT('',(5.425,7.21,0.35)); -#45925=CARTESIAN_POINT('',(5.425,4.16,0.35)); -#45926=CARTESIAN_POINT('',(5.425,4.16,1.875)); -#45927=CARTESIAN_POINT('',(5.425,0.,1.625)); -#45928=CARTESIAN_POINT('',(5.425,7.605,1.625)); -#45929=CARTESIAN_POINT('',(5.425,7.605,1.625)); -#45930=CARTESIAN_POINT('',(5.425,7.605,-1.625)); -#45931=CARTESIAN_POINT('',(5.425,0.,-1.625)); -#45932=CARTESIAN_POINT('',(5.425,4.16,-1.875)); -#45933=CARTESIAN_POINT('',(5.425,4.16,-0.35)); -#45934=CARTESIAN_POINT('',(4.975,8.41,1.875)); -#45935=CARTESIAN_POINT('',(4.975,8.41,0.35)); -#45936=CARTESIAN_POINT('',(4.975,7.21,0.35)); -#45937=CARTESIAN_POINT('',(4.975,7.21,1.89735380184963E-16)); -#45938=CARTESIAN_POINT('',(4.975,7.21,-0.35)); -#45939=CARTESIAN_POINT('',(4.975,8.41,-0.35)); -#45940=CARTESIAN_POINT('',(4.975,8.41,-1.875)); -#45941=CARTESIAN_POINT('',(4.975,0.,-1.625)); -#45942=CARTESIAN_POINT('',(4.975,7.605,-1.625)); -#45943=CARTESIAN_POINT('',(4.975,7.605,1.625)); -#45944=CARTESIAN_POINT('',(4.975,7.605,1.625)); -#45945=CARTESIAN_POINT('',(4.975,0.,1.625)); -#45946=CARTESIAN_POINT('',(4.975,8.41,1.875)); -#45947=CARTESIAN_POINT('',(4.175,4.16,1.875)); -#45948=CARTESIAN_POINT('',(4.625,4.16,1.875)); -#45949=CARTESIAN_POINT('',(4.625,4.16,1.875)); -#45950=CARTESIAN_POINT('',(4.625,4.16,0.35)); -#45951=CARTESIAN_POINT('',(4.175,4.16,0.35)); -#45952=CARTESIAN_POINT('',(4.175,4.16,0.35)); -#45953=CARTESIAN_POINT('',(4.175,4.16,1.875)); -#45954=CARTESIAN_POINT('',(4.175,4.16,1.875)); -#45955=CARTESIAN_POINT('',(4.175,4.16,1.875)); -#45956=CARTESIAN_POINT('',(4.175,4.16,1.875)); -#45957=CARTESIAN_POINT('',(4.175,4.16,1.875)); -#45958=CARTESIAN_POINT('',(4.175,4.16,-0.35)); -#45959=CARTESIAN_POINT('',(4.175,4.16,-1.875)); -#45960=CARTESIAN_POINT('',(4.175,4.16,-0.35)); -#45961=CARTESIAN_POINT('',(4.625,4.16,-0.35)); -#45962=CARTESIAN_POINT('',(4.625,4.16,1.875)); -#45963=CARTESIAN_POINT('',(4.625,4.16,-1.875)); -#45964=CARTESIAN_POINT('',(4.175,4.16,-1.875)); -#45965=CARTESIAN_POINT('',(4.625,4.16,1.875)); -#45966=CARTESIAN_POINT('',(4.625,7.21,1.89735380184963E-16)); -#45967=CARTESIAN_POINT('',(4.625,7.21,-0.35)); -#45968=CARTESIAN_POINT('',(4.625,7.21,0.35)); -#45969=CARTESIAN_POINT('',(4.625,4.16,0.35)); -#45970=CARTESIAN_POINT('',(4.625,4.16,1.875)); -#45971=CARTESIAN_POINT('',(4.625,0.,1.625)); -#45972=CARTESIAN_POINT('',(4.625,7.605,1.625)); -#45973=CARTESIAN_POINT('',(4.625,7.605,1.625)); -#45974=CARTESIAN_POINT('',(4.625,7.605,-1.625)); -#45975=CARTESIAN_POINT('',(4.625,0.,-1.625)); -#45976=CARTESIAN_POINT('',(4.625,4.16,-1.875)); -#45977=CARTESIAN_POINT('',(4.625,4.16,-0.35)); -#45978=CARTESIAN_POINT('',(4.175,8.41,1.875)); -#45979=CARTESIAN_POINT('',(4.175,8.41,0.35)); -#45980=CARTESIAN_POINT('',(4.175,7.21,0.35)); -#45981=CARTESIAN_POINT('',(4.175,7.21,1.89735380184963E-16)); -#45982=CARTESIAN_POINT('',(4.175,7.21,-0.35)); -#45983=CARTESIAN_POINT('',(4.175,8.41,-0.35)); -#45984=CARTESIAN_POINT('',(4.175,8.41,-1.875)); -#45985=CARTESIAN_POINT('',(4.175,0.,-1.625)); -#45986=CARTESIAN_POINT('',(4.175,7.605,-1.625)); -#45987=CARTESIAN_POINT('',(4.175,7.605,1.625)); -#45988=CARTESIAN_POINT('',(4.175,7.605,1.625)); -#45989=CARTESIAN_POINT('',(4.175,0.,1.625)); -#45990=CARTESIAN_POINT('',(4.175,8.41,1.875)); -#45991=CARTESIAN_POINT('',(3.375,4.16,1.875)); -#45992=CARTESIAN_POINT('',(3.825,4.16,1.875)); -#45993=CARTESIAN_POINT('',(3.825,4.16,1.875)); -#45994=CARTESIAN_POINT('',(3.825,4.16,0.35)); -#45995=CARTESIAN_POINT('',(3.375,4.16,0.35)); -#45996=CARTESIAN_POINT('',(3.375,4.16,0.35)); -#45997=CARTESIAN_POINT('',(3.375,4.16,1.875)); -#45998=CARTESIAN_POINT('',(3.375,4.16,1.875)); -#45999=CARTESIAN_POINT('',(3.375,4.16,1.875)); -#46000=CARTESIAN_POINT('',(3.375,4.16,1.875)); -#46001=CARTESIAN_POINT('',(3.375,4.16,1.875)); -#46002=CARTESIAN_POINT('',(3.375,4.16,-0.35)); -#46003=CARTESIAN_POINT('',(3.375,4.16,-1.875)); -#46004=CARTESIAN_POINT('',(3.375,4.16,-0.35)); -#46005=CARTESIAN_POINT('',(3.825,4.16,-0.35)); -#46006=CARTESIAN_POINT('',(3.825,4.16,1.875)); -#46007=CARTESIAN_POINT('',(3.825,4.16,-1.875)); -#46008=CARTESIAN_POINT('',(3.375,4.16,-1.875)); -#46009=CARTESIAN_POINT('',(3.825,4.16,1.875)); -#46010=CARTESIAN_POINT('',(3.825,7.21,1.89735380184963E-16)); -#46011=CARTESIAN_POINT('',(3.825,7.21,-0.35)); -#46012=CARTESIAN_POINT('',(3.825,7.21,0.35)); -#46013=CARTESIAN_POINT('',(3.825,4.16,0.35)); -#46014=CARTESIAN_POINT('',(3.825,4.16,1.875)); -#46015=CARTESIAN_POINT('',(3.825,0.,1.625)); -#46016=CARTESIAN_POINT('',(3.825,7.605,1.625)); -#46017=CARTESIAN_POINT('',(3.825,7.605,1.625)); -#46018=CARTESIAN_POINT('',(3.825,7.605,-1.625)); -#46019=CARTESIAN_POINT('',(3.825,0.,-1.625)); -#46020=CARTESIAN_POINT('',(3.825,4.16,-1.875)); -#46021=CARTESIAN_POINT('',(3.825,4.16,-0.35)); -#46022=CARTESIAN_POINT('',(3.375,8.41,1.875)); -#46023=CARTESIAN_POINT('',(3.375,8.41,0.35)); -#46024=CARTESIAN_POINT('',(3.375,7.21,0.35)); -#46025=CARTESIAN_POINT('',(3.375,7.21,1.89735380184963E-16)); -#46026=CARTESIAN_POINT('',(3.375,7.21,-0.35)); -#46027=CARTESIAN_POINT('',(3.375,8.41,-0.35)); -#46028=CARTESIAN_POINT('',(3.375,8.41,-1.875)); -#46029=CARTESIAN_POINT('',(3.375,0.,-1.625)); -#46030=CARTESIAN_POINT('',(3.375,7.605,-1.625)); -#46031=CARTESIAN_POINT('',(3.375,7.605,1.625)); -#46032=CARTESIAN_POINT('',(3.375,7.605,1.625)); -#46033=CARTESIAN_POINT('',(3.375,0.,1.625)); -#46034=CARTESIAN_POINT('',(3.375,8.41,1.875)); -#46035=CARTESIAN_POINT('',(2.575,4.16,1.875)); -#46036=CARTESIAN_POINT('',(3.025,4.16,1.875)); -#46037=CARTESIAN_POINT('',(3.025,4.16,1.875)); -#46038=CARTESIAN_POINT('',(3.025,4.16,0.35)); -#46039=CARTESIAN_POINT('',(2.575,4.16,0.35)); -#46040=CARTESIAN_POINT('',(2.575,4.16,0.35)); -#46041=CARTESIAN_POINT('',(2.575,4.16,1.875)); -#46042=CARTESIAN_POINT('',(2.575,4.16,1.875)); -#46043=CARTESIAN_POINT('',(2.575,4.16,1.875)); -#46044=CARTESIAN_POINT('',(2.575,4.16,1.875)); -#46045=CARTESIAN_POINT('',(2.575,4.16,1.875)); -#46046=CARTESIAN_POINT('',(2.575,4.16,-0.35)); -#46047=CARTESIAN_POINT('',(2.575,4.16,-1.875)); -#46048=CARTESIAN_POINT('',(2.575,4.16,-0.35)); -#46049=CARTESIAN_POINT('',(3.025,4.16,-0.35)); -#46050=CARTESIAN_POINT('',(3.025,4.16,1.875)); -#46051=CARTESIAN_POINT('',(3.025,4.16,-1.875)); -#46052=CARTESIAN_POINT('',(2.575,4.16,-1.875)); -#46053=CARTESIAN_POINT('',(3.025,4.16,1.875)); -#46054=CARTESIAN_POINT('',(3.025,7.21,1.89735380184963E-16)); -#46055=CARTESIAN_POINT('',(3.025,7.21,-0.35)); -#46056=CARTESIAN_POINT('',(3.025,7.21,0.35)); -#46057=CARTESIAN_POINT('',(3.025,4.16,0.35)); -#46058=CARTESIAN_POINT('',(3.025,4.16,1.875)); -#46059=CARTESIAN_POINT('',(3.025,0.,1.625)); -#46060=CARTESIAN_POINT('',(3.025,7.605,1.625)); -#46061=CARTESIAN_POINT('',(3.025,7.605,1.625)); -#46062=CARTESIAN_POINT('',(3.025,7.605,-1.625)); -#46063=CARTESIAN_POINT('',(3.025,0.,-1.625)); -#46064=CARTESIAN_POINT('',(3.025,4.16,-1.875)); -#46065=CARTESIAN_POINT('',(3.025,4.16,-0.35)); -#46066=CARTESIAN_POINT('',(2.575,8.41,1.875)); -#46067=CARTESIAN_POINT('',(2.575,8.41,0.35)); -#46068=CARTESIAN_POINT('',(2.575,7.21,0.35)); -#46069=CARTESIAN_POINT('',(2.575,7.21,1.89735380184963E-16)); -#46070=CARTESIAN_POINT('',(2.575,7.21,-0.35)); -#46071=CARTESIAN_POINT('',(2.575,8.41,-0.35)); -#46072=CARTESIAN_POINT('',(2.575,8.41,-1.875)); -#46073=CARTESIAN_POINT('',(2.575,0.,-1.625)); -#46074=CARTESIAN_POINT('',(2.575,7.605,-1.625)); -#46075=CARTESIAN_POINT('',(2.575,7.605,1.625)); -#46076=CARTESIAN_POINT('',(2.575,7.605,1.625)); -#46077=CARTESIAN_POINT('',(2.575,0.,1.625)); -#46078=CARTESIAN_POINT('',(2.575,8.41,1.875)); -#46079=CARTESIAN_POINT('',(1.775,4.16,1.875)); -#46080=CARTESIAN_POINT('',(2.225,4.16,1.875)); -#46081=CARTESIAN_POINT('',(2.225,4.16,1.875)); -#46082=CARTESIAN_POINT('',(2.225,4.16,0.35)); -#46083=CARTESIAN_POINT('',(1.775,4.16,0.35)); -#46084=CARTESIAN_POINT('',(1.775,4.16,0.35)); -#46085=CARTESIAN_POINT('',(1.775,4.16,1.875)); -#46086=CARTESIAN_POINT('',(1.775,4.16,1.875)); -#46087=CARTESIAN_POINT('',(1.775,4.16,1.875)); -#46088=CARTESIAN_POINT('',(1.775,4.16,1.875)); -#46089=CARTESIAN_POINT('',(1.775,4.16,1.875)); -#46090=CARTESIAN_POINT('',(1.775,4.16,-0.35)); -#46091=CARTESIAN_POINT('',(1.775,4.16,-1.875)); -#46092=CARTESIAN_POINT('',(1.775,4.16,-0.35)); -#46093=CARTESIAN_POINT('',(2.225,4.16,-0.35)); -#46094=CARTESIAN_POINT('',(2.225,4.16,1.875)); -#46095=CARTESIAN_POINT('',(2.225,4.16,-1.875)); -#46096=CARTESIAN_POINT('',(1.775,4.16,-1.875)); -#46097=CARTESIAN_POINT('',(2.225,4.16,1.875)); -#46098=CARTESIAN_POINT('',(2.225,7.21,1.89735380184963E-16)); -#46099=CARTESIAN_POINT('',(2.225,7.21,-0.35)); -#46100=CARTESIAN_POINT('',(2.225,7.21,0.35)); -#46101=CARTESIAN_POINT('',(2.225,4.16,0.35)); -#46102=CARTESIAN_POINT('',(2.225,4.16,1.875)); -#46103=CARTESIAN_POINT('',(2.225,0.,1.625)); -#46104=CARTESIAN_POINT('',(2.225,7.605,1.625)); -#46105=CARTESIAN_POINT('',(2.225,7.605,1.625)); -#46106=CARTESIAN_POINT('',(2.225,7.605,-1.625)); -#46107=CARTESIAN_POINT('',(2.225,0.,-1.625)); -#46108=CARTESIAN_POINT('',(2.225,4.16,-1.875)); -#46109=CARTESIAN_POINT('',(2.225,4.16,-0.35)); -#46110=CARTESIAN_POINT('',(1.775,8.41,1.875)); -#46111=CARTESIAN_POINT('',(1.775,8.41,0.35)); -#46112=CARTESIAN_POINT('',(1.775,7.21,0.35)); -#46113=CARTESIAN_POINT('',(1.775,7.21,1.89735380184963E-16)); -#46114=CARTESIAN_POINT('',(1.775,7.21,-0.35)); -#46115=CARTESIAN_POINT('',(1.775,8.41,-0.35)); -#46116=CARTESIAN_POINT('',(1.775,8.41,-1.875)); -#46117=CARTESIAN_POINT('',(1.775,0.,-1.625)); -#46118=CARTESIAN_POINT('',(1.775,7.605,-1.625)); -#46119=CARTESIAN_POINT('',(1.775,7.605,1.625)); -#46120=CARTESIAN_POINT('',(1.775,7.605,1.625)); -#46121=CARTESIAN_POINT('',(1.775,0.,1.625)); -#46122=CARTESIAN_POINT('',(1.775,8.41,1.875)); -#46123=CARTESIAN_POINT('',(0.975,4.16,1.875)); -#46124=CARTESIAN_POINT('',(1.425,4.16,1.875)); -#46125=CARTESIAN_POINT('',(1.425,4.16,1.875)); -#46126=CARTESIAN_POINT('',(1.425,4.16,0.35)); -#46127=CARTESIAN_POINT('',(0.975,4.16,0.35)); -#46128=CARTESIAN_POINT('',(0.975,4.16,0.35)); -#46129=CARTESIAN_POINT('',(0.975,4.16,1.875)); -#46130=CARTESIAN_POINT('',(0.975,4.16,1.875)); -#46131=CARTESIAN_POINT('',(0.975,4.16,1.875)); -#46132=CARTESIAN_POINT('',(0.975,4.16,1.875)); -#46133=CARTESIAN_POINT('',(0.975,4.16,1.875)); -#46134=CARTESIAN_POINT('',(0.975,4.16,-0.35)); -#46135=CARTESIAN_POINT('',(0.975,4.16,-1.875)); -#46136=CARTESIAN_POINT('',(0.975,4.16,-0.35)); -#46137=CARTESIAN_POINT('',(1.425,4.16,-0.35)); -#46138=CARTESIAN_POINT('',(1.425,4.16,1.875)); -#46139=CARTESIAN_POINT('',(1.425,4.16,-1.875)); -#46140=CARTESIAN_POINT('',(0.975,4.16,-1.875)); -#46141=CARTESIAN_POINT('',(1.425,4.16,1.875)); -#46142=CARTESIAN_POINT('',(1.425,7.21,1.89735380184963E-16)); -#46143=CARTESIAN_POINT('',(1.425,7.21,-0.35)); -#46144=CARTESIAN_POINT('',(1.425,7.21,0.35)); -#46145=CARTESIAN_POINT('',(1.425,4.16,0.35)); -#46146=CARTESIAN_POINT('',(1.425,4.16,1.875)); -#46147=CARTESIAN_POINT('',(1.425,0.,1.625)); -#46148=CARTESIAN_POINT('',(1.425,7.605,1.625)); -#46149=CARTESIAN_POINT('',(1.425,7.605,1.625)); -#46150=CARTESIAN_POINT('',(1.425,7.605,-1.625)); -#46151=CARTESIAN_POINT('',(1.425,0.,-1.625)); -#46152=CARTESIAN_POINT('',(1.425,4.16,-1.875)); -#46153=CARTESIAN_POINT('',(1.425,4.16,-0.35)); -#46154=CARTESIAN_POINT('',(0.975,8.41,1.875)); -#46155=CARTESIAN_POINT('',(0.975,8.41,0.35)); -#46156=CARTESIAN_POINT('',(0.975,7.21,0.35)); -#46157=CARTESIAN_POINT('',(0.975,7.21,1.89735380184963E-16)); -#46158=CARTESIAN_POINT('',(0.975,7.21,-0.35)); -#46159=CARTESIAN_POINT('',(0.975,8.41,-0.35)); -#46160=CARTESIAN_POINT('',(0.975,8.41,-1.875)); -#46161=CARTESIAN_POINT('',(0.975,0.,-1.625)); -#46162=CARTESIAN_POINT('',(0.974999999999999,7.605,-1.625)); -#46163=CARTESIAN_POINT('',(0.974999999999999,7.605,1.625)); -#46164=CARTESIAN_POINT('',(0.974999999999999,7.605,1.625)); -#46165=CARTESIAN_POINT('',(0.975,0.,1.625)); -#46166=CARTESIAN_POINT('',(0.975,8.41,1.875)); -#46167=CARTESIAN_POINT('',(0.175,4.16,1.875)); -#46168=CARTESIAN_POINT('',(0.625,4.16,1.875)); -#46169=CARTESIAN_POINT('',(0.625,4.16,1.875)); -#46170=CARTESIAN_POINT('',(0.625,4.16,0.35)); -#46171=CARTESIAN_POINT('',(0.175,4.16,0.35)); -#46172=CARTESIAN_POINT('',(0.175,4.16,0.35)); -#46173=CARTESIAN_POINT('',(0.175,4.16,1.875)); -#46174=CARTESIAN_POINT('',(0.175,4.16,1.875)); -#46175=CARTESIAN_POINT('',(0.175,4.16,1.875)); -#46176=CARTESIAN_POINT('',(0.175,4.16,1.875)); -#46177=CARTESIAN_POINT('',(0.175,4.16,1.875)); -#46178=CARTESIAN_POINT('',(0.175,4.16,-0.35)); -#46179=CARTESIAN_POINT('',(0.175,4.16,-1.875)); -#46180=CARTESIAN_POINT('',(0.175,4.16,-0.35)); -#46181=CARTESIAN_POINT('',(0.625,4.16,-0.35)); -#46182=CARTESIAN_POINT('',(0.625,4.16,1.875)); -#46183=CARTESIAN_POINT('',(0.625,4.16,-1.875)); -#46184=CARTESIAN_POINT('',(0.175,4.16,-1.875)); -#46185=CARTESIAN_POINT('',(0.625,4.16,1.875)); -#46186=CARTESIAN_POINT('',(0.625000000000001,7.21,1.89735380184963E-16)); -#46187=CARTESIAN_POINT('',(0.625000000000001,7.21,-0.35)); -#46188=CARTESIAN_POINT('',(0.625000000000001,7.21,0.35)); -#46189=CARTESIAN_POINT('',(0.625,4.16,0.35)); -#46190=CARTESIAN_POINT('',(0.625,4.16,1.875)); -#46191=CARTESIAN_POINT('',(0.625,0.,1.625)); -#46192=CARTESIAN_POINT('',(0.625,7.605,1.625)); -#46193=CARTESIAN_POINT('',(0.625,7.605,1.625)); -#46194=CARTESIAN_POINT('',(0.625,7.605,-1.625)); -#46195=CARTESIAN_POINT('',(0.625,0.,-1.625)); -#46196=CARTESIAN_POINT('',(0.625,4.16,-1.875)); -#46197=CARTESIAN_POINT('',(0.625,4.16,-0.35)); -#46198=CARTESIAN_POINT('',(0.175,8.41,1.875)); -#46199=CARTESIAN_POINT('',(0.175,8.41,0.35)); -#46200=CARTESIAN_POINT('',(0.175,7.21,0.35)); -#46201=CARTESIAN_POINT('',(0.175,7.21,1.89735380184963E-16)); -#46202=CARTESIAN_POINT('',(0.175,7.21,-0.35)); -#46203=CARTESIAN_POINT('',(0.175,8.41,-0.35)); -#46204=CARTESIAN_POINT('',(0.175,8.41,-1.875)); -#46205=CARTESIAN_POINT('',(0.175,0.,-1.625)); -#46206=CARTESIAN_POINT('',(0.175,7.605,-1.625)); -#46207=CARTESIAN_POINT('',(0.175,7.605,1.625)); -#46208=CARTESIAN_POINT('',(0.175,7.605,1.625)); -#46209=CARTESIAN_POINT('',(0.175,0.,1.625)); -#46210=CARTESIAN_POINT('',(0.175,8.41,1.875)); -#46211=CARTESIAN_POINT('',(-0.625,4.16,1.875)); -#46212=CARTESIAN_POINT('',(-0.175,4.16,1.875)); -#46213=CARTESIAN_POINT('',(-0.175,4.16,1.875)); -#46214=CARTESIAN_POINT('',(-0.175,4.16,0.35)); -#46215=CARTESIAN_POINT('',(-0.625,4.16,0.35)); -#46216=CARTESIAN_POINT('',(-0.625,4.16,0.35)); -#46217=CARTESIAN_POINT('',(-0.625,4.16,1.875)); -#46218=CARTESIAN_POINT('',(-0.625,4.16,1.875)); -#46219=CARTESIAN_POINT('',(-0.625,4.16,1.875)); -#46220=CARTESIAN_POINT('',(-0.625,4.16,1.875)); -#46221=CARTESIAN_POINT('',(-0.625,4.16,1.875)); -#46222=CARTESIAN_POINT('',(-0.625,4.16,-0.35)); -#46223=CARTESIAN_POINT('',(-0.625,4.16,-1.875)); -#46224=CARTESIAN_POINT('',(-0.625,4.16,-0.35)); -#46225=CARTESIAN_POINT('',(-0.175,4.16,-0.35)); -#46226=CARTESIAN_POINT('',(-0.175,4.16,1.875)); -#46227=CARTESIAN_POINT('',(-0.175,4.16,-1.875)); -#46228=CARTESIAN_POINT('',(-0.625,4.16,-1.875)); -#46229=CARTESIAN_POINT('',(-0.175,4.16,1.875)); -#46230=CARTESIAN_POINT('',(-0.175,7.21,1.89735380184963E-16)); -#46231=CARTESIAN_POINT('',(-0.175,7.21,-0.35)); -#46232=CARTESIAN_POINT('',(-0.175,7.21,0.35)); -#46233=CARTESIAN_POINT('',(-0.175,4.16,0.35)); -#46234=CARTESIAN_POINT('',(-0.175,4.16,1.875)); -#46235=CARTESIAN_POINT('',(-0.175,0.,1.625)); -#46236=CARTESIAN_POINT('',(-0.175,7.605,1.625)); -#46237=CARTESIAN_POINT('',(-0.175,7.605,1.625)); -#46238=CARTESIAN_POINT('',(-0.175,7.605,-1.625)); -#46239=CARTESIAN_POINT('',(-0.175,0.,-1.625)); -#46240=CARTESIAN_POINT('',(-0.175,4.16,-1.875)); -#46241=CARTESIAN_POINT('',(-0.175,4.16,-0.35)); -#46242=CARTESIAN_POINT('',(-0.625,8.41,1.875)); -#46243=CARTESIAN_POINT('',(-0.625,8.41,0.35)); -#46244=CARTESIAN_POINT('',(-0.625000000000001,7.21,0.35)); -#46245=CARTESIAN_POINT('',(-0.625000000000001,7.21,1.89735380184963E-16)); -#46246=CARTESIAN_POINT('',(-0.625000000000001,7.21,-0.35)); -#46247=CARTESIAN_POINT('',(-0.625,8.41,-0.35)); -#46248=CARTESIAN_POINT('',(-0.625,8.41,-1.875)); -#46249=CARTESIAN_POINT('',(-0.625,0.,-1.625)); -#46250=CARTESIAN_POINT('',(-0.625000000000001,7.605,-1.625)); -#46251=CARTESIAN_POINT('',(-0.625000000000001,7.605,1.625)); -#46252=CARTESIAN_POINT('',(-0.625000000000001,7.605,1.625)); -#46253=CARTESIAN_POINT('',(-0.625,0.,1.625)); -#46254=CARTESIAN_POINT('',(-0.625,8.41,1.875)); -#46255=CARTESIAN_POINT('',(-1.425,4.16,1.875)); -#46256=CARTESIAN_POINT('',(-0.975,4.16,1.875)); -#46257=CARTESIAN_POINT('',(-0.975,4.16,1.875)); -#46258=CARTESIAN_POINT('',(-0.975,4.16,0.35)); -#46259=CARTESIAN_POINT('',(-1.425,4.16,0.35)); -#46260=CARTESIAN_POINT('',(-1.425,4.16,0.35)); -#46261=CARTESIAN_POINT('',(-1.425,4.16,1.875)); -#46262=CARTESIAN_POINT('',(-1.425,4.16,1.875)); -#46263=CARTESIAN_POINT('',(-1.425,4.16,1.875)); -#46264=CARTESIAN_POINT('',(-1.425,4.16,1.875)); -#46265=CARTESIAN_POINT('',(-1.425,4.16,1.875)); -#46266=CARTESIAN_POINT('',(-1.425,4.16,-0.35)); -#46267=CARTESIAN_POINT('',(-1.425,4.16,-1.875)); -#46268=CARTESIAN_POINT('',(-1.425,4.16,-0.35)); -#46269=CARTESIAN_POINT('',(-0.975,4.16,-0.35)); -#46270=CARTESIAN_POINT('',(-0.975,4.16,1.875)); -#46271=CARTESIAN_POINT('',(-0.975,4.16,-1.875)); -#46272=CARTESIAN_POINT('',(-1.425,4.16,-1.875)); -#46273=CARTESIAN_POINT('',(-0.975,4.16,1.875)); -#46274=CARTESIAN_POINT('',(-0.975,7.21,1.89735380184963E-16)); -#46275=CARTESIAN_POINT('',(-0.975,7.21,-0.35)); -#46276=CARTESIAN_POINT('',(-0.975,7.21,0.35)); -#46277=CARTESIAN_POINT('',(-0.975,4.16,0.35)); -#46278=CARTESIAN_POINT('',(-0.975,4.16,1.875)); -#46279=CARTESIAN_POINT('',(-0.975,0.,1.625)); -#46280=CARTESIAN_POINT('',(-0.975,7.605,1.625)); -#46281=CARTESIAN_POINT('',(-0.975,7.605,1.625)); -#46282=CARTESIAN_POINT('',(-0.975,7.605,-1.625)); -#46283=CARTESIAN_POINT('',(-0.975,0.,-1.625)); -#46284=CARTESIAN_POINT('',(-0.975,4.16,-1.875)); -#46285=CARTESIAN_POINT('',(-0.975,4.16,-0.35)); -#46286=CARTESIAN_POINT('',(-1.425,8.41,1.875)); -#46287=CARTESIAN_POINT('',(-1.425,8.41,0.35)); -#46288=CARTESIAN_POINT('',(-1.425,7.21,0.35)); -#46289=CARTESIAN_POINT('',(-1.425,7.21,1.89735380184963E-16)); -#46290=CARTESIAN_POINT('',(-1.425,7.21,-0.35)); -#46291=CARTESIAN_POINT('',(-1.425,8.41,-0.35)); -#46292=CARTESIAN_POINT('',(-1.425,8.41,-1.875)); -#46293=CARTESIAN_POINT('',(-1.425,0.,-1.625)); -#46294=CARTESIAN_POINT('',(-1.425,7.605,-1.625)); -#46295=CARTESIAN_POINT('',(-1.425,7.605,1.625)); -#46296=CARTESIAN_POINT('',(-1.425,7.605,1.625)); -#46297=CARTESIAN_POINT('',(-1.425,0.,1.625)); -#46298=CARTESIAN_POINT('',(-1.425,8.41,1.875)); -#46299=CARTESIAN_POINT('',(-2.225,4.16,1.875)); -#46300=CARTESIAN_POINT('',(-1.775,4.16,1.875)); -#46301=CARTESIAN_POINT('',(-1.775,4.16,1.875)); -#46302=CARTESIAN_POINT('',(-1.775,4.16,0.35)); -#46303=CARTESIAN_POINT('',(-2.225,4.16,0.35)); -#46304=CARTESIAN_POINT('',(-2.225,4.16,0.35)); -#46305=CARTESIAN_POINT('',(-2.225,4.16,1.875)); -#46306=CARTESIAN_POINT('',(-2.225,4.16,1.875)); -#46307=CARTESIAN_POINT('',(-2.225,4.16,1.875)); -#46308=CARTESIAN_POINT('',(-2.225,4.16,1.875)); -#46309=CARTESIAN_POINT('',(-2.225,4.16,1.875)); -#46310=CARTESIAN_POINT('',(-2.225,4.16,-0.35)); -#46311=CARTESIAN_POINT('',(-2.225,4.16,-1.875)); -#46312=CARTESIAN_POINT('',(-2.225,4.16,-0.35)); -#46313=CARTESIAN_POINT('',(-1.775,4.16,-0.35)); -#46314=CARTESIAN_POINT('',(-1.775,4.16,1.875)); -#46315=CARTESIAN_POINT('',(-1.775,4.16,-1.875)); -#46316=CARTESIAN_POINT('',(-2.225,4.16,-1.875)); -#46317=CARTESIAN_POINT('',(-1.775,4.16,1.875)); -#46318=CARTESIAN_POINT('',(-1.775,7.21,1.89735380184963E-16)); -#46319=CARTESIAN_POINT('',(-1.775,7.21,-0.35)); -#46320=CARTESIAN_POINT('',(-1.775,7.21,0.35)); -#46321=CARTESIAN_POINT('',(-1.775,4.16,0.35)); -#46322=CARTESIAN_POINT('',(-1.775,4.16,1.875)); -#46323=CARTESIAN_POINT('',(-1.775,0.,1.625)); -#46324=CARTESIAN_POINT('',(-1.775,7.605,1.625)); -#46325=CARTESIAN_POINT('',(-1.775,7.605,1.625)); -#46326=CARTESIAN_POINT('',(-1.775,7.605,-1.625)); -#46327=CARTESIAN_POINT('',(-1.775,0.,-1.625)); -#46328=CARTESIAN_POINT('',(-1.775,4.16,-1.875)); -#46329=CARTESIAN_POINT('',(-1.775,4.16,-0.35)); -#46330=CARTESIAN_POINT('',(-2.225,8.41,1.875)); -#46331=CARTESIAN_POINT('',(-2.225,8.41,0.35)); -#46332=CARTESIAN_POINT('',(-2.225,7.21,0.35)); -#46333=CARTESIAN_POINT('',(-2.225,7.21,1.89735380184963E-16)); -#46334=CARTESIAN_POINT('',(-2.225,7.21,-0.35)); -#46335=CARTESIAN_POINT('',(-2.225,8.41,-0.35)); -#46336=CARTESIAN_POINT('',(-2.225,8.41,-1.875)); -#46337=CARTESIAN_POINT('',(-2.225,0.,-1.625)); -#46338=CARTESIAN_POINT('',(-2.225,7.605,-1.625)); -#46339=CARTESIAN_POINT('',(-2.225,7.605,1.625)); -#46340=CARTESIAN_POINT('',(-2.225,7.605,1.625)); -#46341=CARTESIAN_POINT('',(-2.225,0.,1.625)); -#46342=CARTESIAN_POINT('',(-2.225,8.41,1.875)); -#46343=CARTESIAN_POINT('',(-3.025,4.16,1.875)); -#46344=CARTESIAN_POINT('',(-2.575,4.16,1.875)); -#46345=CARTESIAN_POINT('',(-2.575,4.16,1.875)); -#46346=CARTESIAN_POINT('',(-2.575,4.16,0.35)); -#46347=CARTESIAN_POINT('',(-3.025,4.16,0.35)); -#46348=CARTESIAN_POINT('',(-3.025,4.16,0.35)); -#46349=CARTESIAN_POINT('',(-3.025,4.16,1.875)); -#46350=CARTESIAN_POINT('',(-3.025,4.16,1.875)); -#46351=CARTESIAN_POINT('',(-3.025,4.16,1.875)); -#46352=CARTESIAN_POINT('',(-3.025,4.16,1.875)); -#46353=CARTESIAN_POINT('',(-3.025,4.16,1.875)); -#46354=CARTESIAN_POINT('',(-3.025,4.16,-0.35)); -#46355=CARTESIAN_POINT('',(-3.025,4.16,-1.875)); -#46356=CARTESIAN_POINT('',(-3.025,4.16,-0.35)); -#46357=CARTESIAN_POINT('',(-2.575,4.16,-0.35)); -#46358=CARTESIAN_POINT('',(-2.575,4.16,1.875)); -#46359=CARTESIAN_POINT('',(-2.575,4.16,-1.875)); -#46360=CARTESIAN_POINT('',(-3.025,4.16,-1.875)); -#46361=CARTESIAN_POINT('',(-2.575,4.16,1.875)); -#46362=CARTESIAN_POINT('',(-2.575,7.21,1.89735380184963E-16)); -#46363=CARTESIAN_POINT('',(-2.575,7.21,-0.35)); -#46364=CARTESIAN_POINT('',(-2.575,7.21,0.35)); -#46365=CARTESIAN_POINT('',(-2.575,4.16,0.35)); -#46366=CARTESIAN_POINT('',(-2.575,4.16,1.875)); -#46367=CARTESIAN_POINT('',(-2.575,0.,1.625)); -#46368=CARTESIAN_POINT('',(-2.575,7.605,1.625)); -#46369=CARTESIAN_POINT('',(-2.575,7.605,1.625)); -#46370=CARTESIAN_POINT('',(-2.575,7.605,-1.625)); -#46371=CARTESIAN_POINT('',(-2.575,0.,-1.625)); -#46372=CARTESIAN_POINT('',(-2.575,4.16,-1.875)); -#46373=CARTESIAN_POINT('',(-2.575,4.16,-0.35)); -#46374=CARTESIAN_POINT('',(-3.025,8.41,1.875)); -#46375=CARTESIAN_POINT('',(-3.025,8.41,0.35)); -#46376=CARTESIAN_POINT('',(-3.025,7.21,0.35)); -#46377=CARTESIAN_POINT('',(-3.025,7.21,1.89735380184963E-16)); -#46378=CARTESIAN_POINT('',(-3.025,7.21,-0.35)); -#46379=CARTESIAN_POINT('',(-3.025,8.41,-0.35)); -#46380=CARTESIAN_POINT('',(-3.025,8.41,-1.875)); -#46381=CARTESIAN_POINT('',(-3.025,0.,-1.625)); -#46382=CARTESIAN_POINT('',(-3.025,7.605,-1.625)); -#46383=CARTESIAN_POINT('',(-3.025,7.605,1.625)); -#46384=CARTESIAN_POINT('',(-3.025,7.605,1.625)); -#46385=CARTESIAN_POINT('',(-3.025,0.,1.625)); -#46386=CARTESIAN_POINT('',(-3.025,8.41,1.875)); -#46387=CARTESIAN_POINT('',(-3.825,4.16,1.875)); -#46388=CARTESIAN_POINT('',(-3.375,4.16,1.875)); -#46389=CARTESIAN_POINT('',(-3.375,4.16,1.875)); -#46390=CARTESIAN_POINT('',(-3.375,4.16,0.35)); -#46391=CARTESIAN_POINT('',(-3.825,4.16,0.35)); -#46392=CARTESIAN_POINT('',(-3.825,4.16,0.35)); -#46393=CARTESIAN_POINT('',(-3.825,4.16,1.875)); -#46394=CARTESIAN_POINT('',(-3.825,4.16,1.875)); -#46395=CARTESIAN_POINT('',(-3.825,4.16,1.875)); -#46396=CARTESIAN_POINT('',(-3.825,4.16,1.875)); -#46397=CARTESIAN_POINT('',(-3.825,4.16,1.875)); -#46398=CARTESIAN_POINT('',(-3.825,4.16,-0.35)); -#46399=CARTESIAN_POINT('',(-3.825,4.16,-1.875)); -#46400=CARTESIAN_POINT('',(-3.825,4.16,-0.35)); -#46401=CARTESIAN_POINT('',(-3.375,4.16,-0.35)); -#46402=CARTESIAN_POINT('',(-3.375,4.16,1.875)); -#46403=CARTESIAN_POINT('',(-3.375,4.16,-1.875)); -#46404=CARTESIAN_POINT('',(-3.825,4.16,-1.875)); -#46405=CARTESIAN_POINT('',(-3.375,4.16,1.875)); -#46406=CARTESIAN_POINT('',(-3.375,7.21,1.89735380184963E-16)); -#46407=CARTESIAN_POINT('',(-3.375,7.21,-0.35)); -#46408=CARTESIAN_POINT('',(-3.375,7.21,0.35)); -#46409=CARTESIAN_POINT('',(-3.375,4.16,0.35)); -#46410=CARTESIAN_POINT('',(-3.375,4.16,1.875)); -#46411=CARTESIAN_POINT('',(-3.375,0.,1.625)); -#46412=CARTESIAN_POINT('',(-3.375,7.605,1.625)); -#46413=CARTESIAN_POINT('',(-3.375,7.605,1.625)); -#46414=CARTESIAN_POINT('',(-3.375,7.605,-1.625)); -#46415=CARTESIAN_POINT('',(-3.375,0.,-1.625)); -#46416=CARTESIAN_POINT('',(-3.375,4.16,-1.875)); -#46417=CARTESIAN_POINT('',(-3.375,4.16,-0.35)); -#46418=CARTESIAN_POINT('',(-3.825,8.41,1.875)); -#46419=CARTESIAN_POINT('',(-3.825,8.41,0.35)); -#46420=CARTESIAN_POINT('',(-3.825,7.21,0.35)); -#46421=CARTESIAN_POINT('',(-3.825,7.21,1.89735380184963E-16)); -#46422=CARTESIAN_POINT('',(-3.825,7.21,-0.35)); -#46423=CARTESIAN_POINT('',(-3.825,8.41,-0.35)); -#46424=CARTESIAN_POINT('',(-3.825,8.41,-1.875)); -#46425=CARTESIAN_POINT('',(-3.825,0.,-1.625)); -#46426=CARTESIAN_POINT('',(-3.825,7.605,-1.625)); -#46427=CARTESIAN_POINT('',(-3.825,7.605,1.625)); -#46428=CARTESIAN_POINT('',(-3.825,7.605,1.625)); -#46429=CARTESIAN_POINT('',(-3.825,0.,1.625)); -#46430=CARTESIAN_POINT('',(-3.825,8.41,1.875)); -#46431=CARTESIAN_POINT('',(-4.625,4.16,1.875)); -#46432=CARTESIAN_POINT('',(-4.175,4.16,1.875)); -#46433=CARTESIAN_POINT('',(-4.175,4.16,1.875)); -#46434=CARTESIAN_POINT('',(-4.175,4.16,0.35)); -#46435=CARTESIAN_POINT('',(-4.625,4.16,0.35)); -#46436=CARTESIAN_POINT('',(-4.625,4.16,0.35)); -#46437=CARTESIAN_POINT('',(-4.625,4.16,1.875)); -#46438=CARTESIAN_POINT('',(-4.625,4.16,1.875)); -#46439=CARTESIAN_POINT('',(-4.625,4.16,1.875)); -#46440=CARTESIAN_POINT('',(-4.625,4.16,1.875)); -#46441=CARTESIAN_POINT('',(-4.625,4.16,1.875)); -#46442=CARTESIAN_POINT('',(-4.625,4.16,-0.35)); -#46443=CARTESIAN_POINT('',(-4.625,4.16,-1.875)); -#46444=CARTESIAN_POINT('',(-4.625,4.16,-0.35)); -#46445=CARTESIAN_POINT('',(-4.175,4.16,-0.35)); -#46446=CARTESIAN_POINT('',(-4.175,4.16,1.875)); -#46447=CARTESIAN_POINT('',(-4.175,4.16,-1.875)); -#46448=CARTESIAN_POINT('',(-4.625,4.16,-1.875)); -#46449=CARTESIAN_POINT('',(-4.175,4.16,1.875)); -#46450=CARTESIAN_POINT('',(-4.175,7.21,1.89735380184963E-16)); -#46451=CARTESIAN_POINT('',(-4.175,7.21,-0.35)); -#46452=CARTESIAN_POINT('',(-4.175,7.21,0.35)); -#46453=CARTESIAN_POINT('',(-4.175,4.16,0.35)); -#46454=CARTESIAN_POINT('',(-4.175,4.16,1.875)); -#46455=CARTESIAN_POINT('',(-4.175,0.,1.625)); -#46456=CARTESIAN_POINT('',(-4.175,7.605,1.625)); -#46457=CARTESIAN_POINT('',(-4.175,7.605,1.625)); -#46458=CARTESIAN_POINT('',(-4.175,7.605,-1.625)); -#46459=CARTESIAN_POINT('',(-4.175,0.,-1.625)); -#46460=CARTESIAN_POINT('',(-4.175,4.16,-1.875)); -#46461=CARTESIAN_POINT('',(-4.175,4.16,-0.35)); -#46462=CARTESIAN_POINT('',(-4.625,8.41,1.875)); -#46463=CARTESIAN_POINT('',(-4.625,8.41,0.35)); -#46464=CARTESIAN_POINT('',(-4.625,7.21,0.35)); -#46465=CARTESIAN_POINT('',(-4.625,7.21,1.89735380184963E-16)); -#46466=CARTESIAN_POINT('',(-4.625,7.21,-0.35)); -#46467=CARTESIAN_POINT('',(-4.625,8.41,-0.35)); -#46468=CARTESIAN_POINT('',(-4.625,8.41,-1.875)); -#46469=CARTESIAN_POINT('',(-4.625,0.,-1.625)); -#46470=CARTESIAN_POINT('',(-4.625,7.605,-1.625)); -#46471=CARTESIAN_POINT('',(-4.625,7.605,1.625)); -#46472=CARTESIAN_POINT('',(-4.625,7.605,1.625)); -#46473=CARTESIAN_POINT('',(-4.625,0.,1.625)); -#46474=CARTESIAN_POINT('',(-4.625,8.41,1.875)); -#46475=CARTESIAN_POINT('',(-5.425,4.16,1.875)); -#46476=CARTESIAN_POINT('',(-4.975,4.16,1.875)); -#46477=CARTESIAN_POINT('',(-4.975,4.16,1.875)); -#46478=CARTESIAN_POINT('',(-4.975,4.16,0.35)); -#46479=CARTESIAN_POINT('',(-5.425,4.16,0.35)); -#46480=CARTESIAN_POINT('',(-5.425,4.16,0.35)); -#46481=CARTESIAN_POINT('',(-5.425,4.16,1.875)); -#46482=CARTESIAN_POINT('',(-5.425,4.16,1.875)); -#46483=CARTESIAN_POINT('',(-5.425,4.16,1.875)); -#46484=CARTESIAN_POINT('',(-5.425,4.16,1.875)); -#46485=CARTESIAN_POINT('',(-5.425,4.16,1.875)); -#46486=CARTESIAN_POINT('',(-5.425,4.16,-0.35)); -#46487=CARTESIAN_POINT('',(-5.425,4.16,-1.875)); -#46488=CARTESIAN_POINT('',(-5.425,4.16,-0.35)); -#46489=CARTESIAN_POINT('',(-4.975,4.16,-0.35)); -#46490=CARTESIAN_POINT('',(-4.975,4.16,1.875)); -#46491=CARTESIAN_POINT('',(-4.975,4.16,-1.875)); -#46492=CARTESIAN_POINT('',(-5.425,4.16,-1.875)); -#46493=CARTESIAN_POINT('',(-4.975,4.16,1.875)); -#46494=CARTESIAN_POINT('',(-4.975,7.21,1.89735380184963E-16)); -#46495=CARTESIAN_POINT('',(-4.975,7.21,-0.35)); -#46496=CARTESIAN_POINT('',(-4.975,7.21,0.35)); -#46497=CARTESIAN_POINT('',(-4.975,4.16,0.35)); -#46498=CARTESIAN_POINT('',(-4.975,4.16,1.875)); -#46499=CARTESIAN_POINT('',(-4.975,0.,1.625)); -#46500=CARTESIAN_POINT('',(-4.975,7.605,1.625)); -#46501=CARTESIAN_POINT('',(-4.975,7.605,1.625)); -#46502=CARTESIAN_POINT('',(-4.975,7.605,-1.625)); -#46503=CARTESIAN_POINT('',(-4.975,0.,-1.625)); -#46504=CARTESIAN_POINT('',(-4.975,4.16,-1.875)); -#46505=CARTESIAN_POINT('',(-4.975,4.16,-0.35)); -#46506=CARTESIAN_POINT('',(-5.425,8.41,1.875)); -#46507=CARTESIAN_POINT('',(-5.425,8.41,0.35)); -#46508=CARTESIAN_POINT('',(-5.425,7.21,0.35)); -#46509=CARTESIAN_POINT('',(-5.425,7.21,1.89735380184963E-16)); -#46510=CARTESIAN_POINT('',(-5.425,7.21,-0.35)); -#46511=CARTESIAN_POINT('',(-5.425,8.41,-0.35)); -#46512=CARTESIAN_POINT('',(-5.425,8.41,-1.875)); -#46513=CARTESIAN_POINT('',(-5.425,0.,-1.625)); -#46514=CARTESIAN_POINT('',(-5.425,7.605,-1.625)); -#46515=CARTESIAN_POINT('',(-5.425,7.605,1.625)); -#46516=CARTESIAN_POINT('',(-5.425,7.605,1.625)); -#46517=CARTESIAN_POINT('',(-5.425,0.,1.625)); -#46518=CARTESIAN_POINT('',(-5.425,8.41,1.875)); -#46519=CARTESIAN_POINT('',(-6.225,4.16,1.875)); -#46520=CARTESIAN_POINT('',(-5.775,4.16,1.875)); -#46521=CARTESIAN_POINT('',(-5.775,4.16,1.875)); -#46522=CARTESIAN_POINT('',(-5.775,4.16,0.35)); -#46523=CARTESIAN_POINT('',(-6.225,4.16,0.35)); -#46524=CARTESIAN_POINT('',(-6.225,4.16,0.35)); -#46525=CARTESIAN_POINT('',(-6.225,4.16,1.875)); -#46526=CARTESIAN_POINT('',(-6.225,4.16,1.875)); -#46527=CARTESIAN_POINT('',(-6.225,4.16,1.875)); -#46528=CARTESIAN_POINT('',(-6.225,4.16,1.875)); -#46529=CARTESIAN_POINT('',(-6.225,4.16,1.875)); -#46530=CARTESIAN_POINT('',(-6.225,4.16,-0.35)); -#46531=CARTESIAN_POINT('',(-6.225,4.16,-1.875)); -#46532=CARTESIAN_POINT('',(-6.225,4.16,-0.35)); -#46533=CARTESIAN_POINT('',(-5.775,4.16,-0.35)); -#46534=CARTESIAN_POINT('',(-5.775,4.16,1.875)); -#46535=CARTESIAN_POINT('',(-5.775,4.16,-1.875)); -#46536=CARTESIAN_POINT('',(-6.225,4.16,-1.875)); -#46537=CARTESIAN_POINT('',(-5.775,4.16,1.875)); -#46538=CARTESIAN_POINT('',(-5.775,7.21,1.89735380184963E-16)); -#46539=CARTESIAN_POINT('',(-5.775,7.21,-0.35)); -#46540=CARTESIAN_POINT('',(-5.775,7.21,0.35)); -#46541=CARTESIAN_POINT('',(-5.775,4.16,0.35)); -#46542=CARTESIAN_POINT('',(-5.775,4.16,1.875)); -#46543=CARTESIAN_POINT('',(-5.775,0.,1.625)); -#46544=CARTESIAN_POINT('',(-5.775,7.605,1.625)); -#46545=CARTESIAN_POINT('',(-5.775,7.605,1.625)); -#46546=CARTESIAN_POINT('',(-5.775,7.605,-1.625)); -#46547=CARTESIAN_POINT('',(-5.775,0.,-1.625)); -#46548=CARTESIAN_POINT('',(-5.775,4.16,-1.875)); -#46549=CARTESIAN_POINT('',(-5.775,4.16,-0.35)); -#46550=CARTESIAN_POINT('',(-6.225,8.41,1.875)); -#46551=CARTESIAN_POINT('',(-6.225,8.41,0.35)); -#46552=CARTESIAN_POINT('',(-6.225,7.21,0.35)); -#46553=CARTESIAN_POINT('',(-6.225,7.21,1.89735380184963E-16)); -#46554=CARTESIAN_POINT('',(-6.225,7.21,-0.35)); -#46555=CARTESIAN_POINT('',(-6.225,8.41,-0.35)); -#46556=CARTESIAN_POINT('',(-6.225,8.41,-1.875)); -#46557=CARTESIAN_POINT('',(-6.225,0.,-1.625)); -#46558=CARTESIAN_POINT('',(-6.225,7.605,-1.625)); -#46559=CARTESIAN_POINT('',(-6.225,7.605,1.625)); -#46560=CARTESIAN_POINT('',(-6.225,7.605,1.625)); -#46561=CARTESIAN_POINT('',(-6.225,0.,1.625)); -#46562=CARTESIAN_POINT('',(-6.225,8.41,1.875)); -#46563=CARTESIAN_POINT('',(-7.025,4.16,1.875)); -#46564=CARTESIAN_POINT('',(-6.575,4.16,1.875)); -#46565=CARTESIAN_POINT('',(-6.575,4.16,1.875)); -#46566=CARTESIAN_POINT('',(-6.575,4.16,0.35)); -#46567=CARTESIAN_POINT('',(-7.025,4.16,0.35)); -#46568=CARTESIAN_POINT('',(-7.025,4.16,0.35)); -#46569=CARTESIAN_POINT('',(-7.025,4.16,1.875)); -#46570=CARTESIAN_POINT('',(-7.025,4.16,1.875)); -#46571=CARTESIAN_POINT('',(-7.025,4.16,1.875)); -#46572=CARTESIAN_POINT('',(-7.025,4.16,1.875)); -#46573=CARTESIAN_POINT('',(-7.025,4.16,1.875)); -#46574=CARTESIAN_POINT('',(-7.025,4.16,-0.35)); -#46575=CARTESIAN_POINT('',(-7.025,4.16,-1.875)); -#46576=CARTESIAN_POINT('',(-7.025,4.16,-0.35)); -#46577=CARTESIAN_POINT('',(-6.575,4.16,-0.35)); -#46578=CARTESIAN_POINT('',(-6.575,4.16,1.875)); -#46579=CARTESIAN_POINT('',(-6.575,4.16,-1.875)); -#46580=CARTESIAN_POINT('',(-7.025,4.16,-1.875)); -#46581=CARTESIAN_POINT('',(-6.575,4.16,1.875)); -#46582=CARTESIAN_POINT('',(-6.575,7.21,1.89735380184963E-16)); -#46583=CARTESIAN_POINT('',(-6.575,7.21,-0.35)); -#46584=CARTESIAN_POINT('',(-6.575,7.21,0.35)); -#46585=CARTESIAN_POINT('',(-6.575,4.16,0.35)); -#46586=CARTESIAN_POINT('',(-6.575,4.16,1.875)); -#46587=CARTESIAN_POINT('',(-6.575,0.,1.625)); -#46588=CARTESIAN_POINT('',(-6.575,7.605,1.625)); -#46589=CARTESIAN_POINT('',(-6.575,7.605,1.625)); -#46590=CARTESIAN_POINT('',(-6.575,7.605,-1.625)); -#46591=CARTESIAN_POINT('',(-6.575,0.,-1.625)); -#46592=CARTESIAN_POINT('',(-6.575,4.16,-1.875)); -#46593=CARTESIAN_POINT('',(-6.575,4.16,-0.35)); -#46594=CARTESIAN_POINT('',(-7.025,8.41,1.875)); -#46595=CARTESIAN_POINT('',(-7.025,8.41,0.35)); -#46596=CARTESIAN_POINT('',(-7.025,7.21,0.35)); -#46597=CARTESIAN_POINT('',(-7.025,7.21,1.89735380184963E-16)); -#46598=CARTESIAN_POINT('',(-7.025,7.21,-0.35)); -#46599=CARTESIAN_POINT('',(-7.025,8.41,-0.35)); -#46600=CARTESIAN_POINT('',(-7.025,8.41,-1.875)); -#46601=CARTESIAN_POINT('',(-7.025,0.,-1.625)); -#46602=CARTESIAN_POINT('',(-7.025,7.605,-1.625)); -#46603=CARTESIAN_POINT('',(-7.025,7.605,1.625)); -#46604=CARTESIAN_POINT('',(-7.025,7.605,1.625)); -#46605=CARTESIAN_POINT('',(-7.025,0.,1.625)); -#46606=CARTESIAN_POINT('',(-7.025,8.41,1.875)); -#46607=CARTESIAN_POINT('',(-7.825,9.16,1.875)); -#46608=CARTESIAN_POINT('',(-7.825,4.16,1.875)); -#46609=CARTESIAN_POINT('',(-7.825,4.16,1.875)); -#46610=CARTESIAN_POINT('',(-7.825,4.16,0.35)); -#46611=CARTESIAN_POINT('',(-7.825,9.16,0.35)); -#46612=CARTESIAN_POINT('',(-7.825,7.21,0.35)); -#46613=CARTESIAN_POINT('',(-7.825,7.21,1.89735380184963E-16)); -#46614=CARTESIAN_POINT('',(-7.825,7.21,-0.35)); -#46615=CARTESIAN_POINT('',(-7.825,9.16,-0.35)); -#46616=CARTESIAN_POINT('',(-7.825,4.16,-0.35)); -#46617=CARTESIAN_POINT('',(-7.825,4.16,1.875)); -#46618=CARTESIAN_POINT('',(-7.825,4.16,-1.875)); -#46619=CARTESIAN_POINT('',(-7.825,9.16,-1.875)); -#46620=CARTESIAN_POINT('',(-7.825,0.,-1.625)); -#46621=CARTESIAN_POINT('',(-7.825,7.605,-1.625)); -#46622=CARTESIAN_POINT('',(-7.825,7.605,1.625)); -#46623=CARTESIAN_POINT('',(-7.825,7.605,1.625)); -#46624=CARTESIAN_POINT('',(-7.825,0.,1.625)); -#46625=CARTESIAN_POINT('',(-7.825,9.16,1.875)); -#46626=CARTESIAN_POINT('',(-7.825,4.16,1.875)); -#46627=CARTESIAN_POINT('',(-7.375,4.16,1.875)); -#46628=CARTESIAN_POINT('',(-7.375,4.16,1.875)); -#46629=CARTESIAN_POINT('',(-7.375,4.16,0.35)); -#46630=CARTESIAN_POINT('',(-7.825,4.16,0.35)); -#46631=CARTESIAN_POINT('',(-7.825,4.16,1.875)); -#46632=CARTESIAN_POINT('',(-7.825,4.16,1.875)); -#46633=CARTESIAN_POINT('',(-7.825,4.16,-0.35)); -#46634=CARTESIAN_POINT('',(-7.375,4.16,-0.35)); -#46635=CARTESIAN_POINT('',(-7.375,4.16,1.875)); -#46636=CARTESIAN_POINT('',(-7.375,4.16,-1.875)); -#46637=CARTESIAN_POINT('',(-7.825,4.16,-1.875)); -#46638=CARTESIAN_POINT('',(-7.375,4.16,1.875)); -#46639=CARTESIAN_POINT('',(-7.375,7.21,1.89735380184963E-16)); -#46640=CARTESIAN_POINT('',(-7.375,7.21,-0.35)); -#46641=CARTESIAN_POINT('',(-7.375,7.21,0.35)); -#46642=CARTESIAN_POINT('',(-7.375,4.16,0.35)); -#46643=CARTESIAN_POINT('',(-7.375,4.16,1.875)); -#46644=CARTESIAN_POINT('',(-7.375,0.,1.625)); -#46645=CARTESIAN_POINT('',(-7.375,7.605,1.625)); -#46646=CARTESIAN_POINT('',(-7.375,7.605,1.625)); -#46647=CARTESIAN_POINT('',(-7.375,7.605,-1.625)); -#46648=CARTESIAN_POINT('',(-7.375,0.,-1.625)); -#46649=CARTESIAN_POINT('',(-7.375,4.16,-1.875)); -#46650=CARTESIAN_POINT('',(-7.375,4.16,-0.35)); -#46651=CARTESIAN_POINT('',(0.,0.,1.625)); -#46652=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46653=CARTESIAN_POINT('',(-8.36,7.605,1.625)); -#46654=CARTESIAN_POINT('',(-8.36,7.605,1.625)); -#46655=CARTESIAN_POINT('',(-8.46330916546487,7.86327290694758,1.625)); -#46656=CARTESIAN_POINT('',(0.,7.86327290694758,1.625)); -#46657=CARTESIAN_POINT('',(-9.84172709305242,7.86327290694758,1.625)); -#46658=CARTESIAN_POINT('',(-9.,8.705,1.625)); -#46659=CARTESIAN_POINT('',(-10.1,7.605,1.625)); -#46660=CARTESIAN_POINT('',(-10.1,7.605,1.625)); -#46661=CARTESIAN_POINT('',(0.,0.,1.625)); -#46662=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46663=CARTESIAN_POINT('',(0.,0.,1.625)); -#46664=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46665=CARTESIAN_POINT('',(0.,0.,1.625)); -#46666=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46667=CARTESIAN_POINT('',(0.,0.,1.625)); -#46668=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46669=CARTESIAN_POINT('',(0.,0.,1.625)); -#46670=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46671=CARTESIAN_POINT('',(0.,0.,1.625)); -#46672=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46673=CARTESIAN_POINT('',(0.,0.,1.625)); -#46674=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46675=CARTESIAN_POINT('',(0.,0.,1.625)); -#46676=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46677=CARTESIAN_POINT('',(0.,0.,1.625)); -#46678=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46679=CARTESIAN_POINT('',(0.,0.,1.625)); -#46680=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46681=CARTESIAN_POINT('',(0.,0.,1.625)); -#46682=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46683=CARTESIAN_POINT('',(0.,0.,1.625)); -#46684=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46685=CARTESIAN_POINT('',(0.,0.,1.625)); -#46686=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46687=CARTESIAN_POINT('',(0.,0.,1.625)); -#46688=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46689=CARTESIAN_POINT('',(0.,0.,1.625)); -#46690=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46691=CARTESIAN_POINT('',(0.,0.,1.625)); -#46692=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46693=CARTESIAN_POINT('',(0.,0.,1.625)); -#46694=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46695=CARTESIAN_POINT('',(0.,0.,1.625)); -#46696=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46697=CARTESIAN_POINT('',(0.,0.,1.625)); -#46698=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46699=CARTESIAN_POINT('',(0.,0.,1.625)); -#46700=CARTESIAN_POINT('',(10.1,4.405,1.625)); -#46701=CARTESIAN_POINT('',(10.1,7.605,1.625)); -#46702=CARTESIAN_POINT('',(10.1,7.605,1.625)); -#46703=CARTESIAN_POINT('',(9.84172709305242,7.86327290694758,1.625)); -#46704=CARTESIAN_POINT('',(0.,7.86327290694758,1.625)); -#46705=CARTESIAN_POINT('',(8.46330916546487,7.86327290694758,1.625)); -#46706=CARTESIAN_POINT('',(8.80000001143915,8.705,1.625)); -#46707=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46708=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46709=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46710=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46711=CARTESIAN_POINT('',(-8.36,7.605,-1.625)); -#46712=CARTESIAN_POINT('',(-8.949917,0.,-1.625)); -#46713=CARTESIAN_POINT('',(-8.949917,7.86327290694758,-1.625)); -#46714=CARTESIAN_POINT('',(0.,7.86327290694758,-1.625)); -#46715=CARTESIAN_POINT('',(-8.46330916546487,7.86327290694758,-1.625)); -#46716=CARTESIAN_POINT('',(-8.36,7.605,-1.625)); -#46717=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46718=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46719=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46720=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46721=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46722=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46723=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46724=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46725=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46726=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46727=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46728=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46729=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46730=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46731=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46732=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46733=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46734=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46735=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46736=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46737=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46738=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46739=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46740=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46741=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46742=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46743=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46744=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46745=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46746=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46747=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46748=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46749=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46750=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46751=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46752=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46753=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46754=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46755=CARTESIAN_POINT('',(0.,0.,-1.625)); -#46756=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46757=CARTESIAN_POINT('',(8.36,7.605,-1.625)); -#46758=CARTESIAN_POINT('',(8.80000001143915,8.705,-1.625)); -#46759=CARTESIAN_POINT('',(8.46330916546487,7.86327290694758,-1.625)); -#46760=CARTESIAN_POINT('',(0.,7.86327290694758,-1.625)); -#46761=CARTESIAN_POINT('',(8.949917,7.86327290694758,-1.625)); -#46762=CARTESIAN_POINT('',(8.949917,0.,-1.625)); -#46763=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46764=CARTESIAN_POINT('',(-8.36,7.605,1.625)); -#46765=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46766=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46767=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46768=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46769=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46770=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46771=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46772=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46773=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46774=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46775=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46776=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46777=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46778=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46779=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46780=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46781=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46782=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46783=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46784=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46785=CARTESIAN_POINT('',(8.36,7.605,1.625)); -#46786=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#46787=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); -#46788=CARTESIAN_POINT('',(-5.65,2.20924875,-2.8)); -#46789=CARTESIAN_POINT('',(-6.35,2.20924875,-2.8)); -#46790=CARTESIAN_POINT('',(-6.35,-4.5,-2.8)); -#46791=CARTESIAN_POINT('',(-5.65,-4.5,-2.8)); -#46792=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#46793=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); -#46794=CARTESIAN_POINT('',(-3.65,2.20924875,-2.8)); -#46795=CARTESIAN_POINT('',(-4.35,2.20924875,-2.8)); -#46796=CARTESIAN_POINT('',(-4.35,-4.5,-2.8)); -#46797=CARTESIAN_POINT('',(-3.65,-4.5,-2.8)); -#46798=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#46799=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); -#46800=CARTESIAN_POINT('',(-1.65,2.20924875,-2.8)); -#46801=CARTESIAN_POINT('',(-2.35,2.20924875,-2.8)); -#46802=CARTESIAN_POINT('',(-2.35,-4.5,-2.8)); -#46803=CARTESIAN_POINT('',(-1.65,-4.5,-2.8)); -#46804=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#46805=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); -#46806=CARTESIAN_POINT('',(0.35,2.20924875,-2.8)); -#46807=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,-2.8)); -#46808=CARTESIAN_POINT('',(-0.350000000000001,-4.5,-2.8)); -#46809=CARTESIAN_POINT('',(0.35,-4.5,-2.8)); -#46810=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#46811=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); -#46812=CARTESIAN_POINT('',(2.35,2.20924875,-2.8)); -#46813=CARTESIAN_POINT('',(1.65,2.20924875,-2.8)); -#46814=CARTESIAN_POINT('',(1.65,-4.5,-2.8)); -#46815=CARTESIAN_POINT('',(2.35,-4.5,-2.8)); -#46816=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#46817=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); -#46818=CARTESIAN_POINT('',(4.35,2.20924875,-2.8)); -#46819=CARTESIAN_POINT('',(3.65,2.20924875,-2.8)); -#46820=CARTESIAN_POINT('',(3.65,-4.5,-2.8)); -#46821=CARTESIAN_POINT('',(4.35,-4.5,-2.8)); -#46822=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#46823=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); -#46824=CARTESIAN_POINT('',(6.35,2.20924875,-2.8)); -#46825=CARTESIAN_POINT('',(5.65,2.20924875,-2.8)); -#46826=CARTESIAN_POINT('',(5.65,-4.5,-2.8)); -#46827=CARTESIAN_POINT('',(6.35,-4.5,-2.8)); -#46828=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#46829=CARTESIAN_POINT('',(7.65,4.405,2.8)); -#46830=CARTESIAN_POINT('',(7.65,3.,2.8)); -#46831=CARTESIAN_POINT('',(8.6,3.,2.8)); -#46832=CARTESIAN_POINT('',(8.6,3.,2.8)); -#46833=CARTESIAN_POINT('',(8.6,-1.,2.8)); -#46834=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#46835=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); -#46836=CARTESIAN_POINT('',(6.35,2.20924875,2.8)); -#46837=CARTESIAN_POINT('',(5.65,2.20924875,2.8)); -#46838=CARTESIAN_POINT('',(6.35,-4.5,2.8)); -#46839=CARTESIAN_POINT('',(5.65,-4.5,2.8)); -#46840=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#46841=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); -#46842=CARTESIAN_POINT('',(4.35,2.20924875,2.8)); -#46843=CARTESIAN_POINT('',(3.65,2.20924875,2.8)); -#46844=CARTESIAN_POINT('',(4.35,-4.5,2.8)); -#46845=CARTESIAN_POINT('',(3.65,-4.5,2.8)); -#46846=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#46847=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); -#46848=CARTESIAN_POINT('',(2.35,2.20924875,2.8)); -#46849=CARTESIAN_POINT('',(1.65,2.20924875,2.8)); -#46850=CARTESIAN_POINT('',(2.35,-4.5,2.8)); -#46851=CARTESIAN_POINT('',(1.65,-4.5,2.8)); -#46852=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#46853=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); -#46854=CARTESIAN_POINT('',(0.35,2.20924875,2.8)); -#46855=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,2.8)); -#46856=CARTESIAN_POINT('',(0.35,-4.5,2.8)); -#46857=CARTESIAN_POINT('',(-0.350000000000001,-4.5,2.8)); -#46858=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#46859=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); -#46860=CARTESIAN_POINT('',(-1.65,2.20924875,2.8)); -#46861=CARTESIAN_POINT('',(-2.35,2.20924875,2.8)); -#46862=CARTESIAN_POINT('',(-1.65,-4.5,2.8)); -#46863=CARTESIAN_POINT('',(-2.35,-4.5,2.8)); -#46864=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#46865=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); -#46866=CARTESIAN_POINT('',(-3.65,2.20924875,2.8)); -#46867=CARTESIAN_POINT('',(-4.35,2.20924875,2.8)); -#46868=CARTESIAN_POINT('',(-3.65,-4.5,2.8)); -#46869=CARTESIAN_POINT('',(-4.35,-4.5,2.8)); -#46870=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#46871=CARTESIAN_POINT('',(-6.7,3.,2.8)); -#46872=CARTESIAN_POINT('',(-7.65,3.,2.8)); -#46873=CARTESIAN_POINT('',(-8.6,3.,2.8)); -#46874=CARTESIAN_POINT('',(-7.65,4.405,2.8)); -#46875=CARTESIAN_POINT('',(-8.6,3.,2.8)); -#46876=CARTESIAN_POINT('',(-9.,8.705,1.625)); -#46877=CARTESIAN_POINT('',(-9.27387597760632,8.43112402239368,1.06728900068649)); -#46878=CARTESIAN_POINT('',(-9.,8.705,0.798303625816191)); -#46879=CARTESIAN_POINT('',(-9.,8.705,1.625)); -#46880=CARTESIAN_POINT('',(-9.,8.705,-0.798303625816191)); -#46881=CARTESIAN_POINT('',(-8.19718451624686,9.50781548375314,-0.00982401640909464)); -#46882=CARTESIAN_POINT('',(-9.39180491686576,8.31319508313424,-1.18311208313424)); -#46883=CARTESIAN_POINT('',(-10.066639,7.638361,-0.508277999999999)); -#46884=CARTESIAN_POINT('',(-10.1,7.605,-0.474917)); -#46885=CARTESIAN_POINT('',(-10.1,7.605,1.625)); -#46886=CARTESIAN_POINT('',(10.1,7.605,1.625)); -#46887=CARTESIAN_POINT('',(10.0159647521586,7.68903524784141,1.79612629760673)); -#46888=CARTESIAN_POINT('',(9.,8.705,0.79830362581619)); -#46889=CARTESIAN_POINT('',(10.1,7.605,1.625)); -#46890=CARTESIAN_POINT('',(10.1,7.605,-0.474917)); -#46891=CARTESIAN_POINT('',(10.7999723333333,6.90502766666666,0.225055333333334)); -#46892=CARTESIAN_POINT('',(9.39180491686576,8.31319508313424,-1.18311208313424)); -#46893=CARTESIAN_POINT('',(8.93927329079913,8.76572670920087,-0.738661313329343)); -#46894=CARTESIAN_POINT('',(9.,8.705,-0.79830362581619)); -#46895=CARTESIAN_POINT('',(9.,8.705,1.625)); -#46896=CARTESIAN_POINT('',(9.,8.705,1.625)); -#46897=CARTESIAN_POINT('',(9.,8.705,0.79830362581619)); -#46898=CARTESIAN_POINT('',(8.80000001143915,8.705,0.798303625816191)); -#46899=CARTESIAN_POINT('',(9.,8.705,-0.79830362581619)); -#46900=CARTESIAN_POINT('',(8.80000001143915,8.705,-0.798303625816191)); -#46901=CARTESIAN_POINT('',(8.80000001143915,8.705,1.625)); -#46902=CARTESIAN_POINT('',(8.80000001143915,8.705,1.625)); -#46903=CARTESIAN_POINT('',(8.64713693828071,8.32284232703925,1.17363711004265)); -#46904=CARTESIAN_POINT('',(9.2480891176772,9.8252227364715,0.301915295688308)); -#46905=CARTESIAN_POINT('',(-8.36,7.605,1.625)); -#46906=CARTESIAN_POINT('',(-8.40690402696485,7.72226006436358,1.76349477656089)); -#46907=CARTESIAN_POINT('',(-8.80000001143915,8.705,0.798303625816191)); -#46908=CARTESIAN_POINT('',(-9.00785620636134,9.22464047379582,-0.287942370829941)); -#46909=CARTESIAN_POINT('',(-8.80000001143915,8.705,-0.79830362581619)); -#46910=CARTESIAN_POINT('',(-8.80000001143915,8.705,1.625)); -#46911=CARTESIAN_POINT('',(-8.80000001143915,8.705,1.625)); -#46912=CARTESIAN_POINT('',(-8.80000001143915,8.705,0.79830362581619)); -#46913=CARTESIAN_POINT('',(-8.80000001143915,8.705,-0.79830362581619)); -#46914=CARTESIAN_POINT('',(10.1,13.31,-0.474917)); -#46915=CARTESIAN_POINT('',(11.5336228036462,10.4939547912765,0.958705803646167)); -#46916=CARTESIAN_POINT('',(10.1,13.31,-0.474917)); -#46917=CARTESIAN_POINT('',(-8.949917,13.31,-1.625)); -#46918=CARTESIAN_POINT('',(-10.7761654934405,9.72272564386408,0.201248493440491)); -#46919=CARTESIAN_POINT('',(-10.1,13.31,-0.474917)); -#46920=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#46921=CARTESIAN_POINT('',(8.9,3.,-2.8)); -#46922=CARTESIAN_POINT('',(8.9,3.,-2.8)); -#46923=CARTESIAN_POINT('',(7.65,3.,-2.8)); -#46924=CARTESIAN_POINT('',(7.65,4.405,-2.8)); -#46925=CARTESIAN_POINT('',(11.,4.405,-2.8)); -#46926=CARTESIAN_POINT('',(8.9,-1.,-2.8)); -#46927=CARTESIAN_POINT('',(0.,0.,-2.5)); -#46928=CARTESIAN_POINT('',(7.65,0.,-2.5)); -#46929=CARTESIAN_POINT('',(7.65,3.,-2.5)); -#46930=CARTESIAN_POINT('',(8.9,3.,-2.5)); -#46931=CARTESIAN_POINT('',(8.9,3.,-2.5)); -#46932=CARTESIAN_POINT('',(8.9,-1.,-2.5)); -#46933=CARTESIAN_POINT('',(0.,0.,-2.5)); -#46934=CARTESIAN_POINT('',(-6.7,3.,-2.5)); -#46935=CARTESIAN_POINT('',(-7.65,3.,-2.5)); -#46936=CARTESIAN_POINT('',(-8.9,3.,-2.5)); -#46937=CARTESIAN_POINT('',(-7.65,0.,-2.5)); -#46938=CARTESIAN_POINT('',(-8.9,3.,-2.5)); -#46939=CARTESIAN_POINT('',(-9.5,4.405,-2.8)); -#46940=CARTESIAN_POINT('',(-11.,4.405,2.8)); -#46941=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); -#46942=CARTESIAN_POINT('',(-5.65,2.20924875,2.8)); -#46943=CARTESIAN_POINT('',(-6.35,2.20924875,2.8)); -#46944=CARTESIAN_POINT('',(-5.65,-4.5,2.8)); -#46945=CARTESIAN_POINT('',(-6.35,-4.5,2.8)); -#46946=CARTESIAN_POINT('',(11.,4.405,1.)); -#46947=CARTESIAN_POINT('',(11.,1.6,1.)); -#46948=CARTESIAN_POINT('',(10.9,4.405,-1.)); -#46949=CARTESIAN_POINT('',(11.,4.405,-1.)); -#46950=CARTESIAN_POINT('',(11.,4.405,-1.)); -#46951=CARTESIAN_POINT('',(0.,0.,2.5)); -#46952=CARTESIAN_POINT('',(8.6,3.,2.5)); -#46953=CARTESIAN_POINT('',(8.6,3.,2.5)); -#46954=CARTESIAN_POINT('',(7.65,3.,2.5)); -#46955=CARTESIAN_POINT('',(7.65,0.,2.5)); -#46956=CARTESIAN_POINT('',(8.6,-1.,2.5)); -#46957=CARTESIAN_POINT('',(8.6,-1.,2.5)); -#46958=CARTESIAN_POINT('',(8.6,3.,2.5)); -#46959=CARTESIAN_POINT('',(8.6,3.,2.5)); -#46960=CARTESIAN_POINT('',(7.65,3.,2.5)); -#46961=CARTESIAN_POINT('',(-8.6,3.,2.5)); -#46962=CARTESIAN_POINT('',(-8.6,3.,2.5)); -#46963=CARTESIAN_POINT('',(-8.6,3.,2.5)); -#46964=CARTESIAN_POINT('',(-8.6,3.,2.5)); -#46965=CARTESIAN_POINT('',(0.,0.,2.5)); -#46966=CARTESIAN_POINT('',(-7.65,0.,2.5)); -#46967=CARTESIAN_POINT('',(-7.65,3.,2.5)); -#46968=CARTESIAN_POINT('',(-6.7,3.,2.5)); -#46969=CARTESIAN_POINT('',(-6.7,3.,2.5)); -#46970=CARTESIAN_POINT('',(-7.65,3.,2.5)); -#46971=CARTESIAN_POINT('',(7.65,2.20924875,2.1)); -#46972=CARTESIAN_POINT('',(7.65,2.20924875,2.1)); -#46973=CARTESIAN_POINT('',(7.65,2.20924875,2.1)); -#46974=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); -#46975=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); -#46976=CARTESIAN_POINT('',(6.35,2.20924875,2.275)); -#46977=CARTESIAN_POINT('',(6.35,2.20924875,2.1)); -#46978=CARTESIAN_POINT('',(5.65,2.20924875,2.1)); -#46979=CARTESIAN_POINT('',(5.65,2.20924875,2.275)); -#46980=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); -#46981=CARTESIAN_POINT('',(4.35,2.20924875,2.275)); -#46982=CARTESIAN_POINT('',(4.35,2.20924875,2.1)); -#46983=CARTESIAN_POINT('',(3.65,2.20924875,2.1)); -#46984=CARTESIAN_POINT('',(3.65,2.20924875,2.275)); -#46985=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); -#46986=CARTESIAN_POINT('',(2.35,2.20924875,2.275)); -#46987=CARTESIAN_POINT('',(2.35,2.20924875,2.1)); -#46988=CARTESIAN_POINT('',(1.65,2.20924875,2.1)); -#46989=CARTESIAN_POINT('',(1.65,2.20924875,2.275)); -#46990=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); -#46991=CARTESIAN_POINT('',(0.35,2.20924875,2.275)); -#46992=CARTESIAN_POINT('',(0.35,2.20924875,2.1)); -#46993=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,2.1)); -#46994=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,2.275)); -#46995=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); -#46996=CARTESIAN_POINT('',(-1.65,2.20924875,2.275)); -#46997=CARTESIAN_POINT('',(-1.65,2.20924875,2.1)); -#46998=CARTESIAN_POINT('',(-2.35,2.20924875,2.1)); -#46999=CARTESIAN_POINT('',(-2.35,2.20924875,2.275)); -#47000=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); -#47001=CARTESIAN_POINT('',(-3.65,2.20924875,2.275)); -#47002=CARTESIAN_POINT('',(-3.65,2.20924875,2.1)); -#47003=CARTESIAN_POINT('',(-4.35,2.20924875,2.1)); -#47004=CARTESIAN_POINT('',(-4.35,2.20924875,2.275)); -#47005=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); -#47006=CARTESIAN_POINT('',(-5.65,2.20924875,2.275)); -#47007=CARTESIAN_POINT('',(-5.65,2.20924875,2.1)); -#47008=CARTESIAN_POINT('',(-6.35,2.20924875,2.1)); -#47009=CARTESIAN_POINT('',(-6.35,2.20924875,2.275)); -#47010=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); -#47011=CARTESIAN_POINT('',(-7.65,2.20924875,2.275)); -#47012=CARTESIAN_POINT('',(-7.65,2.20924875,2.1)); -#47013=CARTESIAN_POINT('',(-7.65,2.20924875,2.1)); -#47014=CARTESIAN_POINT('',(7.65,2.20924875,2.1)); -#47015=CARTESIAN_POINT('',(-7.65,2.20924875,2.1)); -#47016=CARTESIAN_POINT('',(-7.65,-4.5,2.275)); -#47017=CARTESIAN_POINT('',(-7.65,2.20924875,2.1)); -#47018=CARTESIAN_POINT('',(7.65,0.,2.1)); -#47019=CARTESIAN_POINT('',(7.65,-4.5,2.275)); -#47020=CARTESIAN_POINT('',(7.65,0.,2.1)); -#47021=CARTESIAN_POINT('',(0.,0.,2.1)); -#47022=CARTESIAN_POINT('',(8.9,-1.,-2.5)); -#47023=CARTESIAN_POINT('',(8.9,3.,-2.5)); -#47024=CARTESIAN_POINT('',(8.9,3.,-2.5)); -#47025=CARTESIAN_POINT('',(7.65,3.,-2.5)); -#47026=CARTESIAN_POINT('',(-8.9,3.,-2.5)); -#47027=CARTESIAN_POINT('',(-8.9,3.,-2.5)); -#47028=CARTESIAN_POINT('',(-6.7,3.,-2.5)); -#47029=CARTESIAN_POINT('',(-7.65,3.,-2.5)); -#47030=CARTESIAN_POINT('',(7.65,0.,-2.1)); -#47031=CARTESIAN_POINT('',(7.65,2.20924875,-2.1)); -#47032=CARTESIAN_POINT('',(7.65,2.20924875,-2.1)); -#47033=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); -#47034=CARTESIAN_POINT('',(7.65,-4.5,-2.275)); -#47035=CARTESIAN_POINT('',(7.65,0.,-2.1)); -#47036=CARTESIAN_POINT('',(-7.65,2.20924875,-2.1)); -#47037=CARTESIAN_POINT('',(-7.65,-4.5,-2.275)); -#47038=CARTESIAN_POINT('',(-7.65,2.20924875,-2.275)); -#47039=CARTESIAN_POINT('',(-7.65,2.20924875,-2.1)); -#47040=CARTESIAN_POINT('',(-7.65,2.20924875,-2.1)); -#47041=CARTESIAN_POINT('',(-7.65,2.20924875,-2.1)); -#47042=CARTESIAN_POINT('',(7.65,2.20924875,-2.1)); -#47043=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); -#47044=CARTESIAN_POINT('',(-6.35,2.20924875,-2.275)); -#47045=CARTESIAN_POINT('',(-6.35,2.20924875,-2.1)); -#47046=CARTESIAN_POINT('',(-5.65,2.20924875,-2.1)); -#47047=CARTESIAN_POINT('',(-5.65,2.20924875,-2.275)); -#47048=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); -#47049=CARTESIAN_POINT('',(-4.35,2.20924875,-2.275)); -#47050=CARTESIAN_POINT('',(-4.35,2.20924875,-2.1)); -#47051=CARTESIAN_POINT('',(-3.65,2.20924875,-2.1)); -#47052=CARTESIAN_POINT('',(-3.65,2.20924875,-2.275)); -#47053=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); -#47054=CARTESIAN_POINT('',(-2.35,2.20924875,-2.275)); -#47055=CARTESIAN_POINT('',(-2.35,2.20924875,-2.1)); -#47056=CARTESIAN_POINT('',(-1.65,2.20924875,-2.1)); -#47057=CARTESIAN_POINT('',(-1.65,2.20924875,-2.275)); -#47058=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); -#47059=CARTESIAN_POINT('',(-0.35,2.20924875,-2.275)); -#47060=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,-2.1)); -#47061=CARTESIAN_POINT('',(0.35,2.20924875,-2.1)); -#47062=CARTESIAN_POINT('',(0.35,2.20924875,-2.275)); -#47063=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); -#47064=CARTESIAN_POINT('',(1.65,2.20924875,-2.275)); -#47065=CARTESIAN_POINT('',(1.65,2.20924875,-2.1)); -#47066=CARTESIAN_POINT('',(2.35,2.20924875,-2.1)); -#47067=CARTESIAN_POINT('',(2.35,2.20924875,-2.275)); -#47068=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); -#47069=CARTESIAN_POINT('',(3.65,2.20924875,-2.275)); -#47070=CARTESIAN_POINT('',(3.65,2.20924875,-2.1)); -#47071=CARTESIAN_POINT('',(4.35,2.20924875,-2.1)); -#47072=CARTESIAN_POINT('',(4.35,2.20924875,-2.275)); -#47073=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); -#47074=CARTESIAN_POINT('',(5.65,2.20924875,-2.275)); -#47075=CARTESIAN_POINT('',(5.65,2.20924875,-2.1)); -#47076=CARTESIAN_POINT('',(6.35,2.20924875,-2.1)); -#47077=CARTESIAN_POINT('',(6.35,2.20924875,-2.275)); -#47078=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); -#47079=CARTESIAN_POINT('',(7.65,2.20924875,-2.1)); -#47080=CARTESIAN_POINT('',(0.,0.,-2.1)); -#47081=CARTESIAN_POINT('',(-10.1,7.605,1.625)); -#47082=CARTESIAN_POINT('',(10.1,4.405,1.625)); -#47083=CARTESIAN_POINT('',(22.,9.08,-0.430000000000001)); -#47084=CARTESIAN_POINT('',(22.,9.08,-0.430000000000001)); -#47085=CARTESIAN_POINT('',(22.,7.7869092818606,1.7)); -#47086=CARTESIAN_POINT('',(22.,7.7869092818606,1.7)); -#47087=CARTESIAN_POINT('',(-6.35,-4.5,2.275)); -#47088=CARTESIAN_POINT('',(-6.35,-4.5,2.275)); -#47089=CARTESIAN_POINT('',(-6.35,-4.5,2.8)); -#47090=CARTESIAN_POINT('',(-5.65,-4.5,2.275)); -#47091=CARTESIAN_POINT('',(-5.65,-4.5,2.275)); -#47092=CARTESIAN_POINT('',(-4.35,-4.5,2.275)); -#47093=CARTESIAN_POINT('',(-4.35,-4.5,2.275)); -#47094=CARTESIAN_POINT('',(-4.35,-4.5,2.8)); -#47095=CARTESIAN_POINT('',(-3.65,-4.5,2.275)); -#47096=CARTESIAN_POINT('',(-3.65,-4.5,2.275)); -#47097=CARTESIAN_POINT('',(-2.35,-4.5,2.275)); -#47098=CARTESIAN_POINT('',(-2.35,-4.5,2.275)); -#47099=CARTESIAN_POINT('',(-2.35,-4.5,2.8)); -#47100=CARTESIAN_POINT('',(-1.65,-4.5,2.275)); -#47101=CARTESIAN_POINT('',(-1.65,-4.5,2.275)); -#47102=CARTESIAN_POINT('',(-0.350000000000001,-4.5,2.275)); -#47103=CARTESIAN_POINT('',(-0.350000000000001,-4.5,2.275)); -#47104=CARTESIAN_POINT('',(-0.350000000000001,-4.5,2.8)); -#47105=CARTESIAN_POINT('',(0.35,-4.5,2.275)); -#47106=CARTESIAN_POINT('',(0.35,-4.5,2.275)); -#47107=CARTESIAN_POINT('',(1.65,-4.5,2.275)); -#47108=CARTESIAN_POINT('',(1.65,-4.5,2.275)); -#47109=CARTESIAN_POINT('',(1.65,-4.5,2.8)); -#47110=CARTESIAN_POINT('',(2.35,-4.5,2.275)); -#47111=CARTESIAN_POINT('',(2.35,-4.5,2.275)); -#47112=CARTESIAN_POINT('',(3.65,-4.5,2.275)); -#47113=CARTESIAN_POINT('',(3.65,-4.5,2.275)); -#47114=CARTESIAN_POINT('',(3.65,-4.5,2.8)); -#47115=CARTESIAN_POINT('',(4.35,-4.5,2.275)); -#47116=CARTESIAN_POINT('',(4.35,-4.5,2.275)); -#47117=CARTESIAN_POINT('',(5.65,-4.5,2.275)); -#47118=CARTESIAN_POINT('',(5.65,-4.5,2.275)); -#47119=CARTESIAN_POINT('',(5.65,-4.5,2.8)); -#47120=CARTESIAN_POINT('',(6.35,-4.5,2.275)); -#47121=CARTESIAN_POINT('',(6.35,-4.5,2.275)); -#47122=CARTESIAN_POINT('',(7.65,-4.5,2.275)); -#47123=CARTESIAN_POINT('',(6.35,-4.5,-2.275)); -#47124=CARTESIAN_POINT('',(6.35,-4.5,-2.275)); -#47125=CARTESIAN_POINT('',(6.35,-4.5,-2.8)); -#47126=CARTESIAN_POINT('',(5.65,-4.5,-2.275)); -#47127=CARTESIAN_POINT('',(5.65,-4.5,-2.275)); -#47128=CARTESIAN_POINT('',(4.35,-4.5,-2.275)); -#47129=CARTESIAN_POINT('',(4.35,-4.5,-2.275)); -#47130=CARTESIAN_POINT('',(4.35,-4.5,-2.8)); -#47131=CARTESIAN_POINT('',(3.65,-4.5,-2.275)); -#47132=CARTESIAN_POINT('',(3.65,-4.5,-2.275)); -#47133=CARTESIAN_POINT('',(2.35,-4.5,-2.275)); -#47134=CARTESIAN_POINT('',(2.35,-4.5,-2.275)); -#47135=CARTESIAN_POINT('',(2.35,-4.5,-2.8)); -#47136=CARTESIAN_POINT('',(1.65,-4.5,-2.275)); -#47137=CARTESIAN_POINT('',(1.65,-4.5,-2.275)); -#47138=CARTESIAN_POINT('',(0.35,-4.5,-2.275)); -#47139=CARTESIAN_POINT('',(0.35,-4.5,-2.275)); -#47140=CARTESIAN_POINT('',(0.35,-4.5,-2.8)); -#47141=CARTESIAN_POINT('',(-0.350000000000001,-4.5,-2.275)); -#47142=CARTESIAN_POINT('',(-0.35,-4.5,-2.275)); -#47143=CARTESIAN_POINT('',(-1.65,-4.5,-2.275)); -#47144=CARTESIAN_POINT('',(-1.65,-4.5,-2.275)); -#47145=CARTESIAN_POINT('',(-1.65,-4.5,-2.8)); -#47146=CARTESIAN_POINT('',(-2.35,-4.5,-2.275)); -#47147=CARTESIAN_POINT('',(-2.35,-4.5,-2.275)); -#47148=CARTESIAN_POINT('',(-3.65,-4.5,-2.275)); -#47149=CARTESIAN_POINT('',(-3.65,-4.5,-2.275)); -#47150=CARTESIAN_POINT('',(-3.65,-4.5,-2.8)); -#47151=CARTESIAN_POINT('',(-4.35,-4.5,-2.275)); -#47152=CARTESIAN_POINT('',(-4.35,-4.5,-2.275)); -#47153=CARTESIAN_POINT('',(-5.65,-4.5,-2.275)); -#47154=CARTESIAN_POINT('',(-5.65,-4.5,-2.275)); -#47155=CARTESIAN_POINT('',(-5.65,-4.5,-2.8)); -#47156=CARTESIAN_POINT('',(-7.65,-4.5,-2.275)); -#47157=CARTESIAN_POINT('',(-6.35,-4.5,-2.275)); -#47158=CARTESIAN_POINT('',(-6.35,-4.5,-2.275)); -#47159=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47160=CARTESIAN_POINT('',(0.,0.,1.875)); -#47161=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47162=CARTESIAN_POINT('',(0.,0.,1.875)); -#47163=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47164=CARTESIAN_POINT('',(0.,0.,1.875)); -#47165=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47166=CARTESIAN_POINT('',(0.,0.,1.875)); -#47167=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47168=CARTESIAN_POINT('',(0.,0.,1.875)); -#47169=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47170=CARTESIAN_POINT('',(0.,0.,1.875)); -#47171=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47172=CARTESIAN_POINT('',(0.,0.,1.875)); -#47173=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47174=CARTESIAN_POINT('',(0.,0.,1.875)); -#47175=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47176=CARTESIAN_POINT('',(0.,0.,1.875)); -#47177=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47178=CARTESIAN_POINT('',(0.,0.,1.875)); -#47179=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47180=CARTESIAN_POINT('',(0.,0.,1.875)); -#47181=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47182=CARTESIAN_POINT('',(0.,0.,1.875)); -#47183=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47184=CARTESIAN_POINT('',(0.,0.,1.875)); -#47185=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47186=CARTESIAN_POINT('',(0.,0.,1.875)); -#47187=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47188=CARTESIAN_POINT('',(0.,0.,1.875)); -#47189=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47190=CARTESIAN_POINT('',(0.,0.,1.875)); -#47191=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47192=CARTESIAN_POINT('',(0.,0.,1.875)); -#47193=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47194=CARTESIAN_POINT('',(0.,0.,1.875)); -#47195=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47196=CARTESIAN_POINT('',(0.,0.,1.875)); -#47197=CARTESIAN_POINT('',(0.,0.,1.875)); -#47198=CARTESIAN_POINT('',(0.,0.,-1.875)); -#47199=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47200=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47201=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47202=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47203=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47204=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47205=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47206=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47207=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47208=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47209=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47210=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47211=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47212=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47213=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47214=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47215=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47216=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47217=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47218=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47219=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47220=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47221=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47222=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47223=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47224=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47225=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47226=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47227=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47228=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47229=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47230=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47231=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47232=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47233=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47234=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47235=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47236=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47237=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47238=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47239=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47240=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47241=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47242=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47243=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47244=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47245=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47246=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47247=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47248=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47249=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47250=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47251=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47252=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47253=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47254=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47255=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47256=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47257=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47258=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47259=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47260=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47261=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47262=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47263=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47264=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47265=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47266=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47267=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47268=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47269=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47270=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47271=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47272=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47273=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47274=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47275=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47276=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47277=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47278=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47279=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47280=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47281=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47282=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47283=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47284=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47285=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47286=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47287=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47288=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47289=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47290=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47291=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47292=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47293=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47294=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); -#47295=CARTESIAN_POINT('',(9.6,7.21,-0.35)); -#47296=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47297=CARTESIAN_POINT('',(9.6,7.21,0.35)); -#47298=CARTESIAN_POINT('',(9.6,4.11,-0.35)); -#47299=CARTESIAN_POINT('',(-9.20414519,4.305,-2.8)); -#47300=CARTESIAN_POINT('',(-9.20414519,4.305,-2.8)); -#47301=CARTESIAN_POINT('',(-9.14641016285714,4.305,-2.7)); -#47302=CARTESIAN_POINT('',(-8.8,4.305,-2.1)); -#47303=CARTESIAN_POINT('',(-9.14641016285714,4.305,-2.7)); -#47304=CARTESIAN_POINT('',(-8.8,4.305,-2.1)); -#47305=CARTESIAN_POINT('',(-8.8,4.305,-2.1)); -#47306=CARTESIAN_POINT('',(-8.45358983714286,4.305,-2.7)); -#47307=CARTESIAN_POINT('',(-8.45358983714286,4.305,-2.7)); -#47308=CARTESIAN_POINT('',(-8.8,4.305,-2.1)); -#47309=CARTESIAN_POINT('',(0.,4.305,0.)); -#47310=CARTESIAN_POINT('',(0.,4.305,-2.7)); -#47311=CARTESIAN_POINT('',(-9.3,4.41,-2.7)); -#47312=CARTESIAN_POINT('',(-9.3,4.41,-2.7)); -#47313=CARTESIAN_POINT('',(-8.8,3.21,-2.7)); -#47314=CARTESIAN_POINT('',(-8.8,3.21,-2.7)); -#47315=CARTESIAN_POINT('',(-8.8,3.21,-2.7)); -#47316=CARTESIAN_POINT('',(-8.8,3.21,-2.7)); -#47317=CARTESIAN_POINT('',(0.,0.,-2.7)); -#47318=CARTESIAN_POINT('',(9.4,-1.265,1.5)); -#47319=CARTESIAN_POINT('',(9.4,-0.865,1.5)); -#47320=CARTESIAN_POINT('',(9.4,-0.865,0.839999999999999)); -#47321=CARTESIAN_POINT('',(9.4,-0.864999999999999,1.5)); -#47322=CARTESIAN_POINT('',(9.4,-1.265,1.5)); -#47323=CARTESIAN_POINT('',(9.4,-1.265,1.24)); -#47324=CARTESIAN_POINT('',(9.66,-1.265,1.5)); -#47325=CARTESIAN_POINT('',(-9.55916573882417,-1.265,0.918895633503348)); -#47326=CARTESIAN_POINT('',(-9.55916573882417,-1.265,0.918895633503348)); -#47327=CARTESIAN_POINT('',(-9.55916573882417,-1.265,0.918895633503348)); -#47328=CARTESIAN_POINT('',(-9.55916573882417,-1.265,0.918895633503348)); -#47329=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.37889563350335)); -#47330=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.37889563350335)); -#47331=CARTESIAN_POINT('',(-9.74999999999999,-1.265,1.5)); -#47332=CARTESIAN_POINT('',(-9.74999999999999,-1.265,1.5)); -#47333=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.62110436649665)); -#47334=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.62110436649665)); -#47335=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.62110436649665)); -#47336=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.62110436649665)); -#47337=CARTESIAN_POINT('',(-9.55916573882417,-1.265,2.08110436649665)); -#47338=CARTESIAN_POINT('',(-9.55916573882417,-1.265,2.08110436649665)); -#47339=CARTESIAN_POINT('',(-9.4,-1.265,1.96)); -#47340=CARTESIAN_POINT('',(-9.4,-1.265,1.96)); -#47341=CARTESIAN_POINT('',(-9.24083426117583,-1.265,2.08110436649665)); -#47342=CARTESIAN_POINT('',(-9.24083426117583,-1.265,2.08110436649665)); -#47343=CARTESIAN_POINT('',(-9.24083426117583,-1.265,2.08110436649665)); -#47344=CARTESIAN_POINT('',(-9.24083426117583,-1.265,2.08110436649665)); -#47345=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.62110436649665)); -#47346=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.62110436649665)); -#47347=CARTESIAN_POINT('',(-9.05,-1.265,1.5)); -#47348=CARTESIAN_POINT('',(-9.05,-1.265,1.5)); -#47349=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.37889563350335)); -#47350=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.37889563350335)); -#47351=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.37889563350335)); -#47352=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.37889563350335)); -#47353=CARTESIAN_POINT('',(-9.24083426117583,-1.265,0.918895633503347)); -#47354=CARTESIAN_POINT('',(-9.24083426117583,-1.265,0.918895633503347)); -#47355=CARTESIAN_POINT('',(-9.4,-1.265,1.04)); -#47356=CARTESIAN_POINT('',(-9.4,-1.265,1.04)); -#47357=CARTESIAN_POINT('',(-9.74999999999999,-1.265,1.5)); -#47358=CARTESIAN_POINT('',(-10.3,3.4,-1.295)); -#47359=CARTESIAN_POINT('',(-10.3,3.4,-1.295)); -#47360=CARTESIAN_POINT('',(-10.3,3.4,-1.295)); -#47361=CARTESIAN_POINT('',(-10.3,3.4,-1.295)); -#47362=CARTESIAN_POINT('',(-10.3,3.4,0.3)); -#47363=CARTESIAN_POINT('',(-10.3,3.4,0.3)); -#47364=CARTESIAN_POINT('',(-10.1,3.4,0.3)); -#47365=CARTESIAN_POINT('',(-10.1,3.4,0.3)); -#47366=CARTESIAN_POINT('',(-10.0999998692754,3.4,0.499999999999958)); -#47367=CARTESIAN_POINT('',(-10.0999998692754,3.4,0.499999999999958)); -#47368=CARTESIAN_POINT('',(-10.09999975,3.4,0.333334000000012)); -#47369=CARTESIAN_POINT('',(-10.09999975,3.4,0.333334000000012)); -#47370=CARTESIAN_POINT('',(-9.99041113033376,3.4,0.458904259200404)); -#47371=CARTESIAN_POINT('',(-9.99041113033376,3.4,0.458904259200404)); -#47372=CARTESIAN_POINT('',(-9.3,3.4,1.25)); -#47373=CARTESIAN_POINT('',(-9.3,3.4,1.25)); -#47374=CARTESIAN_POINT('',(-8.60958887854188,3.4,0.458904251454382)); -#47375=CARTESIAN_POINT('',(-8.60958887854188,3.4,0.458904251454382)); -#47376=CARTESIAN_POINT('',(-8.50000025000005,3.4,0.333334000000018)); -#47377=CARTESIAN_POINT('',(-8.50000025000005,3.4,0.333334000000018)); -#47378=CARTESIAN_POINT('',(-8.5000001306866,3.4,0.499999999999956)); -#47379=CARTESIAN_POINT('',(-8.5000001306866,3.4,0.499999999999956)); -#47380=CARTESIAN_POINT('',(-8.5,3.4,0.299999999999997)); -#47381=CARTESIAN_POINT('',(-8.5,3.4,0.299999999999997)); -#47382=CARTESIAN_POINT('',(-8.3,3.4,0.3)); -#47383=CARTESIAN_POINT('',(-8.3,3.4,0.3)); -#47384=CARTESIAN_POINT('',(-8.3,3.4,0.3)); -#47385=CARTESIAN_POINT('',(-8.3,3.4,0.3)); -#47386=CARTESIAN_POINT('',(-8.3,3.4,-2.1)); -#47387=CARTESIAN_POINT('',(-8.3,3.4,-2.1)); -#47388=CARTESIAN_POINT('',(-8.5,3.4,-2.1)); -#47389=CARTESIAN_POINT('',(-8.5,3.4,-2.1)); -#47390=CARTESIAN_POINT('',(-8.5,3.4,-2.3)); -#47391=CARTESIAN_POINT('',(-8.5,3.4,-2.3)); -#47392=CARTESIAN_POINT('',(-8.5,3.4,-2.3)); -#47393=CARTESIAN_POINT('',(-8.5,3.4,-2.3)); -#47394=CARTESIAN_POINT('',(-9.295,3.4,-2.3)); -#47395=CARTESIAN_POINT('',(-9.295,3.4,-2.3)); -#47396=CARTESIAN_POINT('',(-9.295,3.4,-2.3)); -#47397=CARTESIAN_POINT('',(-9.295,3.4,-2.3)); -#47398=CARTESIAN_POINT('',(-10.1,3.4,0.3)); -#47399=CARTESIAN_POINT('',(8.5,3.4,-1.6)); -#47400=CARTESIAN_POINT('',(8.5,3.4,-1.6)); -#47401=CARTESIAN_POINT('',(8.5,3.4,-1.6)); -#47402=CARTESIAN_POINT('',(8.5,3.4,-1.6)); -#47403=CARTESIAN_POINT('',(8.5,3.4,-0.2)); -#47404=CARTESIAN_POINT('',(8.5,3.4,-0.2)); -#47405=CARTESIAN_POINT('',(9.,3.4,-0.199999999999999)); -#47406=CARTESIAN_POINT('',(9.,3.4,-0.199999999999999)); -#47407=CARTESIAN_POINT('',(9.00000001490116,3.4,0.299999999999999)); -#47408=CARTESIAN_POINT('',(9.00000001490116,3.4,0.299999999999999)); -#47409=CARTESIAN_POINT('',(9.,3.4,0.0499999999999967)); -#47410=CARTESIAN_POINT('',(9.,3.4,0.0499999999999967)); -#47411=CARTESIAN_POINT('',(9.09615384615385,3.4,0.28076923076923)); -#47412=CARTESIAN_POINT('',(9.09615384615385,3.4,0.28076923076923)); -#47413=CARTESIAN_POINT('',(9.5,3.4,1.25)); -#47414=CARTESIAN_POINT('',(9.5,3.4,1.25)); -#47415=CARTESIAN_POINT('',(9.90384615384615,3.4,0.28076923076923)); -#47416=CARTESIAN_POINT('',(9.90384615384615,3.4,0.28076923076923)); -#47417=CARTESIAN_POINT('',(10.,3.4,0.0500000000000159)); -#47418=CARTESIAN_POINT('',(10.,3.4,0.0500000000000159)); -#47419=CARTESIAN_POINT('',(10.,3.4,0.300000000000001)); -#47420=CARTESIAN_POINT('',(10.,3.4,0.300000000000001)); -#47421=CARTESIAN_POINT('',(10.,3.4,-0.200000000000003)); -#47422=CARTESIAN_POINT('',(10.,3.4,-0.200000000000003)); -#47423=CARTESIAN_POINT('',(10.5,3.4,-0.2)); -#47424=CARTESIAN_POINT('',(10.5,3.4,-0.2)); -#47425=CARTESIAN_POINT('',(10.5,3.4,-0.2)); -#47426=CARTESIAN_POINT('',(10.5,3.4,-0.2)); -#47427=CARTESIAN_POINT('',(10.5,3.4,-1.6)); -#47428=CARTESIAN_POINT('',(10.5,3.4,-1.6)); -#47429=CARTESIAN_POINT('',(9.8,3.4,-1.6)); -#47430=CARTESIAN_POINT('',(9.8,3.4,-1.6)); -#47431=CARTESIAN_POINT('',(9.8,3.4,-2.3)); -#47432=CARTESIAN_POINT('',(9.8,3.4,-2.3)); -#47433=CARTESIAN_POINT('',(9.8,3.4,-2.3)); -#47434=CARTESIAN_POINT('',(9.8,3.4,-2.3)); -#47435=CARTESIAN_POINT('',(9.2,3.4,-2.3)); -#47436=CARTESIAN_POINT('',(9.2,3.4,-2.3)); -#47437=CARTESIAN_POINT('',(9.2,3.4,-1.6)); -#47438=CARTESIAN_POINT('',(9.2,3.4,-1.6)); -#47439=CARTESIAN_POINT('',(9.,3.4,-0.199999999999999)); -#47440=CARTESIAN_POINT('',(-12.,1.6,2.5)); -#47441=CARTESIAN_POINT('',(-12.,1.6,2.5)); -#47442=CARTESIAN_POINT('',(-10.8,1.6,2.5)); -#47443=CARTESIAN_POINT('',(-10.8,1.6,2.5)); -#47444=CARTESIAN_POINT('',(-10.8,1.6,0.9)); -#47445=CARTESIAN_POINT('',(-10.8,1.6,0.899999999999999)); -#47446=CARTESIAN_POINT('',(-10.8,1.6,0.899999999999999)); -#47447=CARTESIAN_POINT('',(-10.8,1.6,0.9)); -#47448=CARTESIAN_POINT('',(-12.,1.6,2.3)); -#47449=CARTESIAN_POINT('',(-10.8,1.6,1.1)); -#47450=CARTESIAN_POINT('',(-10.6,1.6,1.1)); -#47451=CARTESIAN_POINT('',(-10.6,1.6,2.3)); -#47452=CARTESIAN_POINT('',(-10.6,1.6,2.3)); -#47453=CARTESIAN_POINT('',(-10.8,1.6,2.3)); -#47454=CARTESIAN_POINT('',(-10.8,1.6,2.3)); -#47455=CARTESIAN_POINT('',(-10.6,1.6,2.3)); -#47456=CARTESIAN_POINT('',(-10.6,1.6,2.3)); -#47457=CARTESIAN_POINT('',(-10.6,1.6,1.1)); -#47458=CARTESIAN_POINT('',(-10.8,1.6,1.1)); -#47459=CARTESIAN_POINT('',(10.8,1.6,2.5)); -#47460=CARTESIAN_POINT('',(10.8,1.6,2.5)); -#47461=CARTESIAN_POINT('',(10.8,1.6,2.5)); -#47462=CARTESIAN_POINT('',(10.8,1.6,2.5)); -#47463=CARTESIAN_POINT('',(12.,1.6,0.9)); -#47464=CARTESIAN_POINT('',(12.,1.6,0.9)); -#47465=CARTESIAN_POINT('',(10.8,1.6,0.9)); -#47466=CARTESIAN_POINT('',(10.8,1.6,0.9)); -#47467=CARTESIAN_POINT('',(10.8,1.6,2.3)); -#47468=CARTESIAN_POINT('',(10.8,1.6,2.3)); -#47469=CARTESIAN_POINT('',(10.6,1.6,2.3)); -#47470=CARTESIAN_POINT('',(10.6,1.6,1.1)); -#47471=CARTESIAN_POINT('',(10.6,1.6,1.1)); -#47472=CARTESIAN_POINT('',(10.8,1.6,1.1)); -#47473=CARTESIAN_POINT('',(10.6,1.6,1.1)); -#47474=CARTESIAN_POINT('',(10.6,1.6,1.1)); -#47475=CARTESIAN_POINT('',(10.6,1.6,2.3)); -#47476=CARTESIAN_POINT('',(10.8,1.6,2.3)); -#47477=CARTESIAN_POINT('',(10.8,1.6,1.1)); -#47478=CARTESIAN_POINT('',(0.,0.,0.)); -#47479=CARTESIAN_POINT('',(7.89,0.377106686427072,-1.6)); -#47480=CARTESIAN_POINT('',(7.89,1.,-1.6)); -#47481=CARTESIAN_POINT('',(8.,1.,-1.6)); -#47482=CARTESIAN_POINT('',(-8.,1.,-1.6)); -#47483=CARTESIAN_POINT('',(8.,1.05,-1.6)); -#47484=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47485=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47486=CARTESIAN_POINT('',(7.89,0.95,-1.6)); -#47487=CARTESIAN_POINT('',(7.89,0.377106686427072,-1.6)); -#47488=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47489=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47490=CARTESIAN_POINT('',(7.715,0.5,-1.6)); -#47491=CARTESIAN_POINT('',(7.715,0.377106686427072,-1.6)); -#47492=CARTESIAN_POINT('',(7.715,0.377106686427073,-1.6)); -#47493=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47494=CARTESIAN_POINT('',(7.485,0.377106686427073,-1.6)); -#47495=CARTESIAN_POINT('',(7.485,0.377106686427072,-1.6)); -#47496=CARTESIAN_POINT('',(7.485,0.5,-1.6)); -#47497=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47498=CARTESIAN_POINT('',(7.31,0.5,-1.6)); -#47499=CARTESIAN_POINT('',(7.31,0.377106686427072,-1.6)); -#47500=CARTESIAN_POINT('',(7.31,0.95,-1.6)); -#47501=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47502=CARTESIAN_POINT('',(7.09,0.95,-1.6)); -#47503=CARTESIAN_POINT('',(7.09,0.377106686427072,-1.6)); -#47504=CARTESIAN_POINT('',(7.09,0.5,-1.6)); -#47505=CARTESIAN_POINT('',(7.89,0.499999999999999,-1.6)); -#47506=CARTESIAN_POINT('',(6.915,0.5,-1.6)); -#47507=CARTESIAN_POINT('',(6.915,0.377106686427072,-1.6)); -#47508=CARTESIAN_POINT('',(6.915,0.377106686427073,-1.6)); -#47509=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47510=CARTESIAN_POINT('',(6.685,0.377106686427073,-1.6)); -#47511=CARTESIAN_POINT('',(6.685,0.377106686427072,-1.6)); -#47512=CARTESIAN_POINT('',(6.685,0.5,-1.6)); -#47513=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47514=CARTESIAN_POINT('',(6.51,0.5,-1.6)); -#47515=CARTESIAN_POINT('',(6.51,0.377106686427072,-1.6)); -#47516=CARTESIAN_POINT('',(6.51,0.95,-1.6)); -#47517=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47518=CARTESIAN_POINT('',(6.29,0.95,-1.6)); -#47519=CARTESIAN_POINT('',(6.29,0.377106686427072,-1.6)); -#47520=CARTESIAN_POINT('',(6.29,0.5,-1.6)); -#47521=CARTESIAN_POINT('',(7.89,0.499999999999999,-1.6)); -#47522=CARTESIAN_POINT('',(6.115,0.5,-1.6)); -#47523=CARTESIAN_POINT('',(6.115,0.377106686427072,-1.6)); -#47524=CARTESIAN_POINT('',(6.115,0.377106686427073,-1.6)); -#47525=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47526=CARTESIAN_POINT('',(5.885,0.377106686427073,-1.6)); -#47527=CARTESIAN_POINT('',(5.885,0.377106686427072,-1.6)); -#47528=CARTESIAN_POINT('',(5.885,0.5,-1.6)); -#47529=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47530=CARTESIAN_POINT('',(5.71,0.5,-1.6)); -#47531=CARTESIAN_POINT('',(5.71,0.377106686427072,-1.6)); -#47532=CARTESIAN_POINT('',(5.71,0.95,-1.6)); -#47533=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47534=CARTESIAN_POINT('',(5.49,0.95,-1.6)); -#47535=CARTESIAN_POINT('',(5.49,0.377106686427072,-1.6)); -#47536=CARTESIAN_POINT('',(5.49,0.5,-1.6)); -#47537=CARTESIAN_POINT('',(7.89,0.499999999999998,-1.6)); -#47538=CARTESIAN_POINT('',(5.315,0.5,-1.6)); -#47539=CARTESIAN_POINT('',(5.315,0.377106686427072,-1.6)); -#47540=CARTESIAN_POINT('',(5.315,0.377106686427073,-1.6)); -#47541=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47542=CARTESIAN_POINT('',(5.085,0.377106686427073,-1.6)); -#47543=CARTESIAN_POINT('',(5.085,0.377106686427072,-1.6)); -#47544=CARTESIAN_POINT('',(5.085,0.5,-1.6)); -#47545=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47546=CARTESIAN_POINT('',(4.91,0.5,-1.6)); -#47547=CARTESIAN_POINT('',(4.91,0.377106686427072,-1.6)); -#47548=CARTESIAN_POINT('',(4.91,0.95,-1.6)); -#47549=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47550=CARTESIAN_POINT('',(4.69,0.95,-1.6)); -#47551=CARTESIAN_POINT('',(4.69,0.377106686427072,-1.6)); -#47552=CARTESIAN_POINT('',(4.69,0.5,-1.6)); -#47553=CARTESIAN_POINT('',(7.89,0.499999999999998,-1.6)); -#47554=CARTESIAN_POINT('',(4.515,0.5,-1.6)); -#47555=CARTESIAN_POINT('',(4.515,0.377106686427072,-1.6)); -#47556=CARTESIAN_POINT('',(4.515,0.377106686427073,-1.6)); -#47557=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47558=CARTESIAN_POINT('',(4.285,0.377106686427073,-1.6)); -#47559=CARTESIAN_POINT('',(4.285,0.377106686427072,-1.6)); -#47560=CARTESIAN_POINT('',(4.285,0.5,-1.6)); -#47561=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47562=CARTESIAN_POINT('',(4.11,0.5,-1.6)); -#47563=CARTESIAN_POINT('',(4.11,0.377106686427072,-1.6)); -#47564=CARTESIAN_POINT('',(4.11,0.95,-1.6)); -#47565=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47566=CARTESIAN_POINT('',(3.89,0.95,-1.6)); -#47567=CARTESIAN_POINT('',(3.89,0.377106686427072,-1.6)); -#47568=CARTESIAN_POINT('',(3.89,0.5,-1.6)); -#47569=CARTESIAN_POINT('',(7.89,0.499999999999997,-1.6)); -#47570=CARTESIAN_POINT('',(3.715,0.5,-1.6)); -#47571=CARTESIAN_POINT('',(3.715,0.377106686427072,-1.6)); -#47572=CARTESIAN_POINT('',(3.715,0.377106686427073,-1.6)); -#47573=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47574=CARTESIAN_POINT('',(3.485,0.377106686427073,-1.6)); -#47575=CARTESIAN_POINT('',(3.485,0.377106686427072,-1.6)); -#47576=CARTESIAN_POINT('',(3.485,0.5,-1.6)); -#47577=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47578=CARTESIAN_POINT('',(3.31,0.5,-1.6)); -#47579=CARTESIAN_POINT('',(3.31,0.377106686427072,-1.6)); -#47580=CARTESIAN_POINT('',(3.31,0.95,-1.6)); -#47581=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47582=CARTESIAN_POINT('',(3.09,0.95,-1.6)); -#47583=CARTESIAN_POINT('',(3.09,0.377106686427072,-1.6)); -#47584=CARTESIAN_POINT('',(3.09,0.5,-1.6)); -#47585=CARTESIAN_POINT('',(7.89,0.499999999999997,-1.6)); -#47586=CARTESIAN_POINT('',(2.915,0.5,-1.6)); -#47587=CARTESIAN_POINT('',(2.915,0.377106686427072,-1.6)); -#47588=CARTESIAN_POINT('',(2.915,0.377106686427073,-1.6)); -#47589=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47590=CARTESIAN_POINT('',(2.685,0.377106686427073,-1.6)); -#47591=CARTESIAN_POINT('',(2.685,0.377106686427072,-1.6)); -#47592=CARTESIAN_POINT('',(2.685,0.5,-1.6)); -#47593=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47594=CARTESIAN_POINT('',(2.51,0.5,-1.6)); -#47595=CARTESIAN_POINT('',(2.51,0.377106686427072,-1.6)); -#47596=CARTESIAN_POINT('',(2.51,0.95,-1.6)); -#47597=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47598=CARTESIAN_POINT('',(2.29,0.95,-1.6)); -#47599=CARTESIAN_POINT('',(2.29,0.377106686427072,-1.6)); -#47600=CARTESIAN_POINT('',(2.29,0.5,-1.6)); -#47601=CARTESIAN_POINT('',(7.89,0.499999999999996,-1.6)); -#47602=CARTESIAN_POINT('',(2.115,0.5,-1.6)); -#47603=CARTESIAN_POINT('',(2.115,0.377106686427072,-1.6)); -#47604=CARTESIAN_POINT('',(2.115,0.377106686427073,-1.6)); -#47605=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47606=CARTESIAN_POINT('',(1.885,0.377106686427073,-1.6)); -#47607=CARTESIAN_POINT('',(1.885,0.377106686427072,-1.6)); -#47608=CARTESIAN_POINT('',(1.885,0.5,-1.6)); -#47609=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47610=CARTESIAN_POINT('',(1.71,0.5,-1.6)); -#47611=CARTESIAN_POINT('',(1.71,0.377106686427072,-1.6)); -#47612=CARTESIAN_POINT('',(1.71,0.95,-1.6)); -#47613=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47614=CARTESIAN_POINT('',(1.49,0.95,-1.6)); -#47615=CARTESIAN_POINT('',(1.49,0.377106686427072,-1.6)); -#47616=CARTESIAN_POINT('',(1.49,0.5,-1.6)); -#47617=CARTESIAN_POINT('',(7.89,0.499999999999996,-1.6)); -#47618=CARTESIAN_POINT('',(1.315,0.5,-1.6)); -#47619=CARTESIAN_POINT('',(1.315,0.377106686427072,-1.6)); -#47620=CARTESIAN_POINT('',(1.315,0.377106686427073,-1.6)); -#47621=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47622=CARTESIAN_POINT('',(1.085,0.377106686427073,-1.6)); -#47623=CARTESIAN_POINT('',(1.085,0.377106686427072,-1.6)); -#47624=CARTESIAN_POINT('',(1.085,0.5,-1.6)); -#47625=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47626=CARTESIAN_POINT('',(0.909999999999999,0.5,-1.6)); -#47627=CARTESIAN_POINT('',(0.909999999999999,0.377106686427072,-1.6)); -#47628=CARTESIAN_POINT('',(0.909999999999999,0.95,-1.6)); -#47629=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47630=CARTESIAN_POINT('',(0.69,0.95,-1.6)); -#47631=CARTESIAN_POINT('',(0.69,0.377106686427072,-1.6)); -#47632=CARTESIAN_POINT('',(0.69,0.5,-1.6)); -#47633=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.6)); -#47634=CARTESIAN_POINT('',(0.515,0.5,-1.6)); -#47635=CARTESIAN_POINT('',(0.515,0.377106686427072,-1.6)); -#47636=CARTESIAN_POINT('',(0.515,0.377106686427073,-1.6)); -#47637=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47638=CARTESIAN_POINT('',(0.284999999999999,0.377106686427073,-1.6)); -#47639=CARTESIAN_POINT('',(0.284999999999999,0.377106686427072,-1.6)); -#47640=CARTESIAN_POINT('',(0.284999999999999,0.5,-1.6)); -#47641=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47642=CARTESIAN_POINT('',(0.109999999999999,0.5,-1.6)); -#47643=CARTESIAN_POINT('',(0.109999999999999,0.377106686427072,-1.6)); -#47644=CARTESIAN_POINT('',(0.109999999999999,0.95,-1.6)); -#47645=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47646=CARTESIAN_POINT('',(-0.110000000000001,0.95,-1.6)); -#47647=CARTESIAN_POINT('',(-0.110000000000001,0.377106686427072,-1.6)); -#47648=CARTESIAN_POINT('',(-0.110000000000001,0.5,-1.6)); -#47649=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.6)); -#47650=CARTESIAN_POINT('',(-0.285,0.5,-1.6)); -#47651=CARTESIAN_POINT('',(-0.285000000000001,0.377106686427072,-1.6)); -#47652=CARTESIAN_POINT('',(-0.285000000000001,0.377106686427073,-1.6)); -#47653=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47654=CARTESIAN_POINT('',(-0.515000000000002,0.377106686427073,-1.6)); -#47655=CARTESIAN_POINT('',(-0.515000000000002,0.377106686427072,-1.6)); -#47656=CARTESIAN_POINT('',(-0.515000000000001,0.5,-1.6)); -#47657=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47658=CARTESIAN_POINT('',(-0.690000000000001,0.5,-1.6)); -#47659=CARTESIAN_POINT('',(-0.690000000000001,0.377106686427072,-1.6)); -#47660=CARTESIAN_POINT('',(-0.690000000000001,0.95,-1.6)); -#47661=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47662=CARTESIAN_POINT('',(-0.910000000000001,0.95,-1.6)); -#47663=CARTESIAN_POINT('',(-0.910000000000001,0.377106686427072,-1.6)); -#47664=CARTESIAN_POINT('',(-0.910000000000001,0.5,-1.6)); -#47665=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.6)); -#47666=CARTESIAN_POINT('',(-1.085,0.5,-1.6)); -#47667=CARTESIAN_POINT('',(-1.085,0.377106686427072,-1.6)); -#47668=CARTESIAN_POINT('',(-1.085,0.377106686427073,-1.6)); -#47669=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47670=CARTESIAN_POINT('',(-1.315,0.377106686427073,-1.6)); -#47671=CARTESIAN_POINT('',(-1.315,0.377106686427072,-1.6)); -#47672=CARTESIAN_POINT('',(-1.315,0.5,-1.6)); -#47673=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47674=CARTESIAN_POINT('',(-1.49,0.5,-1.6)); -#47675=CARTESIAN_POINT('',(-1.49,0.377106686427072,-1.6)); -#47676=CARTESIAN_POINT('',(-1.49,0.95,-1.6)); -#47677=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47678=CARTESIAN_POINT('',(-1.71,0.95,-1.6)); -#47679=CARTESIAN_POINT('',(-1.71,0.377106686427072,-1.6)); -#47680=CARTESIAN_POINT('',(-1.71,0.5,-1.6)); -#47681=CARTESIAN_POINT('',(7.89,0.499999999999994,-1.6)); -#47682=CARTESIAN_POINT('',(-1.885,0.5,-1.6)); -#47683=CARTESIAN_POINT('',(-1.885,0.377106686427072,-1.6)); -#47684=CARTESIAN_POINT('',(-1.885,0.377106686427073,-1.6)); -#47685=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47686=CARTESIAN_POINT('',(-2.115,0.377106686427073,-1.6)); -#47687=CARTESIAN_POINT('',(-2.115,0.377106686427072,-1.6)); -#47688=CARTESIAN_POINT('',(-2.115,0.5,-1.6)); -#47689=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47690=CARTESIAN_POINT('',(-2.29,0.5,-1.6)); -#47691=CARTESIAN_POINT('',(-2.29,0.377106686427072,-1.6)); -#47692=CARTESIAN_POINT('',(-2.29,0.95,-1.6)); -#47693=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47694=CARTESIAN_POINT('',(-2.51,0.95,-1.6)); -#47695=CARTESIAN_POINT('',(-2.51,0.377106686427072,-1.6)); -#47696=CARTESIAN_POINT('',(-2.51,0.5,-1.6)); -#47697=CARTESIAN_POINT('',(7.89,0.499999999999994,-1.6)); -#47698=CARTESIAN_POINT('',(-2.685,0.5,-1.6)); -#47699=CARTESIAN_POINT('',(-2.685,0.377106686427072,-1.6)); -#47700=CARTESIAN_POINT('',(-2.685,0.377106686427073,-1.6)); -#47701=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47702=CARTESIAN_POINT('',(-2.915,0.377106686427073,-1.6)); -#47703=CARTESIAN_POINT('',(-2.915,0.377106686427072,-1.6)); -#47704=CARTESIAN_POINT('',(-2.915,0.5,-1.6)); -#47705=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47706=CARTESIAN_POINT('',(-3.09,0.5,-1.6)); -#47707=CARTESIAN_POINT('',(-3.09,0.377106686427072,-1.6)); -#47708=CARTESIAN_POINT('',(-3.09,0.95,-1.6)); -#47709=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47710=CARTESIAN_POINT('',(-3.31,0.95,-1.6)); -#47711=CARTESIAN_POINT('',(-3.31,0.377106686427072,-1.6)); -#47712=CARTESIAN_POINT('',(-3.31,0.5,-1.6)); -#47713=CARTESIAN_POINT('',(7.89,0.499999999999993,-1.6)); -#47714=CARTESIAN_POINT('',(-3.485,0.5,-1.6)); -#47715=CARTESIAN_POINT('',(-3.485,0.377106686427072,-1.6)); -#47716=CARTESIAN_POINT('',(-3.485,0.377106686427073,-1.6)); -#47717=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47718=CARTESIAN_POINT('',(-3.715,0.377106686427073,-1.6)); -#47719=CARTESIAN_POINT('',(-3.715,0.377106686427072,-1.6)); -#47720=CARTESIAN_POINT('',(-3.715,0.5,-1.6)); -#47721=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47722=CARTESIAN_POINT('',(-3.89,0.5,-1.6)); -#47723=CARTESIAN_POINT('',(-3.89,0.377106686427072,-1.6)); -#47724=CARTESIAN_POINT('',(-3.89,0.95,-1.6)); -#47725=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47726=CARTESIAN_POINT('',(-4.11,0.95,-1.6)); -#47727=CARTESIAN_POINT('',(-4.11,0.377106686427072,-1.6)); -#47728=CARTESIAN_POINT('',(-4.11,0.5,-1.6)); -#47729=CARTESIAN_POINT('',(7.89,0.499999999999992,-1.6)); -#47730=CARTESIAN_POINT('',(-4.285,0.5,-1.6)); -#47731=CARTESIAN_POINT('',(-4.285,0.377106686427072,-1.6)); -#47732=CARTESIAN_POINT('',(-4.285,0.377106686427073,-1.6)); -#47733=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47734=CARTESIAN_POINT('',(-4.515,0.377106686427073,-1.6)); -#47735=CARTESIAN_POINT('',(-4.515,0.377106686427072,-1.6)); -#47736=CARTESIAN_POINT('',(-4.515,0.5,-1.6)); -#47737=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47738=CARTESIAN_POINT('',(-4.69,0.5,-1.6)); -#47739=CARTESIAN_POINT('',(-4.69,0.377106686427072,-1.6)); -#47740=CARTESIAN_POINT('',(-4.69,0.95,-1.6)); -#47741=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47742=CARTESIAN_POINT('',(-4.91,0.95,-1.6)); -#47743=CARTESIAN_POINT('',(-4.91,0.377106686427072,-1.6)); -#47744=CARTESIAN_POINT('',(-4.91,0.5,-1.6)); -#47745=CARTESIAN_POINT('',(7.89,0.499999999999992,-1.6)); -#47746=CARTESIAN_POINT('',(-5.085,0.5,-1.6)); -#47747=CARTESIAN_POINT('',(-5.085,0.377106686427072,-1.6)); -#47748=CARTESIAN_POINT('',(-5.085,0.377106686427073,-1.6)); -#47749=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47750=CARTESIAN_POINT('',(-5.315,0.377106686427073,-1.6)); -#47751=CARTESIAN_POINT('',(-5.315,0.377106686427072,-1.6)); -#47752=CARTESIAN_POINT('',(-5.315,0.5,-1.6)); -#47753=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47754=CARTESIAN_POINT('',(-5.49,0.5,-1.6)); -#47755=CARTESIAN_POINT('',(-5.49,0.377106686427072,-1.6)); -#47756=CARTESIAN_POINT('',(-5.49,0.95,-1.6)); -#47757=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47758=CARTESIAN_POINT('',(-5.71,0.95,-1.6)); -#47759=CARTESIAN_POINT('',(-5.71,0.377106686427072,-1.6)); -#47760=CARTESIAN_POINT('',(-5.71,0.5,-1.6)); -#47761=CARTESIAN_POINT('',(7.89,0.499999999999991,-1.6)); -#47762=CARTESIAN_POINT('',(-5.885,0.5,-1.6)); -#47763=CARTESIAN_POINT('',(-5.885,0.377106686427072,-1.6)); -#47764=CARTESIAN_POINT('',(-5.885,0.377106686427073,-1.6)); -#47765=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47766=CARTESIAN_POINT('',(-6.115,0.377106686427073,-1.6)); -#47767=CARTESIAN_POINT('',(-6.115,0.377106686427072,-1.6)); -#47768=CARTESIAN_POINT('',(-6.115,0.5,-1.6)); -#47769=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47770=CARTESIAN_POINT('',(-6.29,0.5,-1.6)); -#47771=CARTESIAN_POINT('',(-6.29,0.377106686427072,-1.6)); -#47772=CARTESIAN_POINT('',(-6.29,0.95,-1.6)); -#47773=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47774=CARTESIAN_POINT('',(-6.51,0.95,-1.6)); -#47775=CARTESIAN_POINT('',(-6.51,0.377106686427072,-1.6)); -#47776=CARTESIAN_POINT('',(-6.51,0.5,-1.6)); -#47777=CARTESIAN_POINT('',(7.89,0.499999999999991,-1.6)); -#47778=CARTESIAN_POINT('',(-6.685,0.5,-1.6)); -#47779=CARTESIAN_POINT('',(-6.685,0.377106686427072,-1.6)); -#47780=CARTESIAN_POINT('',(-6.685,0.377106686427073,-1.6)); -#47781=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47782=CARTESIAN_POINT('',(-6.915,0.377106686427073,-1.6)); -#47783=CARTESIAN_POINT('',(-6.915,0.377106686427072,-1.6)); -#47784=CARTESIAN_POINT('',(-6.915,0.5,-1.6)); -#47785=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47786=CARTESIAN_POINT('',(-7.09,0.5,-1.6)); -#47787=CARTESIAN_POINT('',(-7.09,0.377106686427072,-1.6)); -#47788=CARTESIAN_POINT('',(-7.09,0.95,-1.6)); -#47789=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47790=CARTESIAN_POINT('',(-7.31,0.95,-1.6)); -#47791=CARTESIAN_POINT('',(-7.31,0.377106686427072,-1.6)); -#47792=CARTESIAN_POINT('',(-7.31,0.5,-1.6)); -#47793=CARTESIAN_POINT('',(7.89,0.49999999999999,-1.6)); -#47794=CARTESIAN_POINT('',(-7.485,0.5,-1.6)); -#47795=CARTESIAN_POINT('',(-7.485,0.377106686427072,-1.6)); -#47796=CARTESIAN_POINT('',(-7.485,0.377106686427073,-1.6)); -#47797=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); -#47798=CARTESIAN_POINT('',(-7.715,0.377106686427073,-1.6)); -#47799=CARTESIAN_POINT('',(-7.715,0.377106686427072,-1.6)); -#47800=CARTESIAN_POINT('',(-7.715,0.5,-1.6)); -#47801=CARTESIAN_POINT('',(7.89,0.5,-1.6)); -#47802=CARTESIAN_POINT('',(-7.89,0.5,-1.6)); -#47803=CARTESIAN_POINT('',(-7.89,0.377106686427072,-1.6)); -#47804=CARTESIAN_POINT('',(-7.89,0.95,-1.6)); -#47805=CARTESIAN_POINT('',(8.,0.95,-1.6)); -#47806=CARTESIAN_POINT('',(-8.,0.95,-1.6)); -#47807=CARTESIAN_POINT('',(-8.,1.05,-1.6)); -#47808=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#47809=CARTESIAN_POINT('',(7.89,1.,-1.435)); -#47810=CARTESIAN_POINT('',(-7.95,1.,-1.435)); -#47811=CARTESIAN_POINT('',(7.95,1.,-1.435)); -#47812=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); -#47813=CARTESIAN_POINT('',(-7.95,0.95,-1.435)); -#47814=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47815=CARTESIAN_POINT('',(-7.89,0.95,-1.435)); -#47816=CARTESIAN_POINT('',(-7.89,1.,-1.43500000000001)); -#47817=CARTESIAN_POINT('',(-7.89,0.5,-1.435)); -#47818=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47819=CARTESIAN_POINT('',(-7.715,0.5,-1.435)); -#47820=CARTESIAN_POINT('',(-7.715,1.,-1.43500000000001)); -#47821=CARTESIAN_POINT('',(-7.715,0.341949810758634,-1.435)); -#47822=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47823=CARTESIAN_POINT('',(-7.485,0.341949810758634,-1.435)); -#47824=CARTESIAN_POINT('',(-7.485,1.,-1.43500000000001)); -#47825=CARTESIAN_POINT('',(-7.485,0.5,-1.435)); -#47826=CARTESIAN_POINT('',(7.89,0.49999999999999,-1.435)); -#47827=CARTESIAN_POINT('',(-7.31,0.5,-1.435)); -#47828=CARTESIAN_POINT('',(-7.31,1.,-1.43500000000001)); -#47829=CARTESIAN_POINT('',(-7.31,0.95,-1.43500000000001)); -#47830=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47831=CARTESIAN_POINT('',(-7.09,0.95,-1.435)); -#47832=CARTESIAN_POINT('',(-7.09,1.,-1.43500000000001)); -#47833=CARTESIAN_POINT('',(-7.09,0.5,-1.43500000000001)); -#47834=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47835=CARTESIAN_POINT('',(-6.915,0.5,-1.435)); -#47836=CARTESIAN_POINT('',(-6.915,1.,-1.43500000000001)); -#47837=CARTESIAN_POINT('',(-6.915,0.341949810758634,-1.435)); -#47838=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47839=CARTESIAN_POINT('',(-6.685,0.341949810758634,-1.435)); -#47840=CARTESIAN_POINT('',(-6.685,1.,-1.43500000000001)); -#47841=CARTESIAN_POINT('',(-6.685,0.5,-1.435)); -#47842=CARTESIAN_POINT('',(7.89,0.499999999999991,-1.435)); -#47843=CARTESIAN_POINT('',(-6.51,0.5,-1.435)); -#47844=CARTESIAN_POINT('',(-6.51,1.,-1.43500000000001)); -#47845=CARTESIAN_POINT('',(-6.51,0.95,-1.43500000000001)); -#47846=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47847=CARTESIAN_POINT('',(-6.29,0.95,-1.435)); -#47848=CARTESIAN_POINT('',(-6.29,1.,-1.43500000000001)); -#47849=CARTESIAN_POINT('',(-6.29,0.5,-1.43500000000001)); -#47850=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47851=CARTESIAN_POINT('',(-6.115,0.5,-1.435)); -#47852=CARTESIAN_POINT('',(-6.115,1.,-1.43500000000001)); -#47853=CARTESIAN_POINT('',(-6.115,0.341949810758634,-1.435)); -#47854=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47855=CARTESIAN_POINT('',(-5.885,0.341949810758634,-1.435)); -#47856=CARTESIAN_POINT('',(-5.885,1.,-1.43500000000001)); -#47857=CARTESIAN_POINT('',(-5.885,0.5,-1.435)); -#47858=CARTESIAN_POINT('',(7.89,0.499999999999991,-1.435)); -#47859=CARTESIAN_POINT('',(-5.71,0.5,-1.435)); -#47860=CARTESIAN_POINT('',(-5.71,1.,-1.43500000000001)); -#47861=CARTESIAN_POINT('',(-5.71,0.95,-1.43500000000001)); -#47862=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47863=CARTESIAN_POINT('',(-5.49,0.95,-1.435)); -#47864=CARTESIAN_POINT('',(-5.49,1.,-1.43500000000001)); -#47865=CARTESIAN_POINT('',(-5.49,0.5,-1.43500000000001)); -#47866=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47867=CARTESIAN_POINT('',(-5.315,0.5,-1.435)); -#47868=CARTESIAN_POINT('',(-5.315,1.,-1.43500000000001)); -#47869=CARTESIAN_POINT('',(-5.315,0.341949810758634,-1.435)); -#47870=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47871=CARTESIAN_POINT('',(-5.085,0.341949810758634,-1.435)); -#47872=CARTESIAN_POINT('',(-5.085,1.,-1.43500000000001)); -#47873=CARTESIAN_POINT('',(-5.085,0.5,-1.435)); -#47874=CARTESIAN_POINT('',(7.89,0.499999999999992,-1.435)); -#47875=CARTESIAN_POINT('',(-4.91,0.5,-1.435)); -#47876=CARTESIAN_POINT('',(-4.91,1.,-1.43500000000001)); -#47877=CARTESIAN_POINT('',(-4.91,0.95,-1.43500000000001)); -#47878=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47879=CARTESIAN_POINT('',(-4.69,0.95,-1.435)); -#47880=CARTESIAN_POINT('',(-4.69,1.,-1.43500000000001)); -#47881=CARTESIAN_POINT('',(-4.69,0.5,-1.43500000000001)); -#47882=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47883=CARTESIAN_POINT('',(-4.515,0.5,-1.435)); -#47884=CARTESIAN_POINT('',(-4.515,1.,-1.43500000000001)); -#47885=CARTESIAN_POINT('',(-4.515,0.341949810758634,-1.435)); -#47886=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47887=CARTESIAN_POINT('',(-4.285,0.341949810758634,-1.435)); -#47888=CARTESIAN_POINT('',(-4.285,1.,-1.43500000000001)); -#47889=CARTESIAN_POINT('',(-4.285,0.5,-1.435)); -#47890=CARTESIAN_POINT('',(7.89,0.499999999999992,-1.435)); -#47891=CARTESIAN_POINT('',(-4.11,0.5,-1.435)); -#47892=CARTESIAN_POINT('',(-4.11,1.,-1.43500000000001)); -#47893=CARTESIAN_POINT('',(-4.11,0.95,-1.43500000000001)); -#47894=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47895=CARTESIAN_POINT('',(-3.89,0.95,-1.435)); -#47896=CARTESIAN_POINT('',(-3.89,1.,-1.43500000000001)); -#47897=CARTESIAN_POINT('',(-3.89,0.5,-1.43500000000001)); -#47898=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47899=CARTESIAN_POINT('',(-3.715,0.5,-1.435)); -#47900=CARTESIAN_POINT('',(-3.715,1.,-1.43500000000001)); -#47901=CARTESIAN_POINT('',(-3.715,0.341949810758634,-1.435)); -#47902=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47903=CARTESIAN_POINT('',(-3.485,0.341949810758634,-1.435)); -#47904=CARTESIAN_POINT('',(-3.485,1.,-1.43500000000001)); -#47905=CARTESIAN_POINT('',(-3.485,0.5,-1.435)); -#47906=CARTESIAN_POINT('',(7.89,0.499999999999993,-1.435)); -#47907=CARTESIAN_POINT('',(-3.31,0.5,-1.435)); -#47908=CARTESIAN_POINT('',(-3.31,1.,-1.43500000000001)); -#47909=CARTESIAN_POINT('',(-3.31,0.95,-1.43500000000001)); -#47910=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47911=CARTESIAN_POINT('',(-3.09,0.95,-1.435)); -#47912=CARTESIAN_POINT('',(-3.09,1.,-1.43500000000001)); -#47913=CARTESIAN_POINT('',(-3.09,0.5,-1.43500000000001)); -#47914=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47915=CARTESIAN_POINT('',(-2.915,0.5,-1.435)); -#47916=CARTESIAN_POINT('',(-2.915,1.,-1.43500000000001)); -#47917=CARTESIAN_POINT('',(-2.915,0.341949810758634,-1.435)); -#47918=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47919=CARTESIAN_POINT('',(-2.685,0.341949810758634,-1.435)); -#47920=CARTESIAN_POINT('',(-2.685,1.,-1.43500000000001)); -#47921=CARTESIAN_POINT('',(-2.685,0.5,-1.435)); -#47922=CARTESIAN_POINT('',(7.89,0.499999999999994,-1.435)); -#47923=CARTESIAN_POINT('',(-2.51,0.5,-1.435)); -#47924=CARTESIAN_POINT('',(-2.51,1.,-1.43500000000001)); -#47925=CARTESIAN_POINT('',(-2.51,0.95,-1.43500000000001)); -#47926=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47927=CARTESIAN_POINT('',(-2.29,0.95,-1.435)); -#47928=CARTESIAN_POINT('',(-2.29,1.,-1.43500000000001)); -#47929=CARTESIAN_POINT('',(-2.29,0.5,-1.43500000000001)); -#47930=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47931=CARTESIAN_POINT('',(-2.115,0.5,-1.435)); -#47932=CARTESIAN_POINT('',(-2.115,1.,-1.43500000000001)); -#47933=CARTESIAN_POINT('',(-2.115,0.341949810758634,-1.435)); -#47934=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47935=CARTESIAN_POINT('',(-1.885,0.341949810758634,-1.435)); -#47936=CARTESIAN_POINT('',(-1.885,1.,-1.43500000000001)); -#47937=CARTESIAN_POINT('',(-1.885,0.5,-1.435)); -#47938=CARTESIAN_POINT('',(7.89,0.499999999999994,-1.435)); -#47939=CARTESIAN_POINT('',(-1.71,0.5,-1.435)); -#47940=CARTESIAN_POINT('',(-1.71,1.,-1.43500000000001)); -#47941=CARTESIAN_POINT('',(-1.71,0.95,-1.43500000000001)); -#47942=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47943=CARTESIAN_POINT('',(-1.49,0.95,-1.435)); -#47944=CARTESIAN_POINT('',(-1.49,1.,-1.43500000000001)); -#47945=CARTESIAN_POINT('',(-1.49,0.5,-1.43500000000001)); -#47946=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47947=CARTESIAN_POINT('',(-1.315,0.5,-1.435)); -#47948=CARTESIAN_POINT('',(-1.315,1.,-1.43500000000001)); -#47949=CARTESIAN_POINT('',(-1.315,0.341949810758634,-1.435)); -#47950=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47951=CARTESIAN_POINT('',(-1.085,0.341949810758634,-1.435)); -#47952=CARTESIAN_POINT('',(-1.085,1.,-1.43500000000001)); -#47953=CARTESIAN_POINT('',(-1.085,0.5,-1.435)); -#47954=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.435)); -#47955=CARTESIAN_POINT('',(-0.910000000000001,0.5,-1.435)); -#47956=CARTESIAN_POINT('',(-0.910000000000001,1.,-1.43500000000001)); -#47957=CARTESIAN_POINT('',(-0.910000000000001,0.95,-1.43500000000001)); -#47958=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47959=CARTESIAN_POINT('',(-0.690000000000001,0.95,-1.435)); -#47960=CARTESIAN_POINT('',(-0.690000000000001,1.,-1.43500000000001)); -#47961=CARTESIAN_POINT('',(-0.690000000000001,0.5,-1.43500000000001)); -#47962=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47963=CARTESIAN_POINT('',(-0.515000000000001,0.5,-1.435)); -#47964=CARTESIAN_POINT('',(-0.515000000000002,1.,-1.43500000000001)); -#47965=CARTESIAN_POINT('',(-0.515000000000002,0.341949810758634,-1.435)); -#47966=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47967=CARTESIAN_POINT('',(-0.285000000000001,0.341949810758634,-1.435)); -#47968=CARTESIAN_POINT('',(-0.285000000000001,1.,-1.43500000000001)); -#47969=CARTESIAN_POINT('',(-0.285,0.5,-1.435)); -#47970=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.435)); -#47971=CARTESIAN_POINT('',(-0.110000000000001,0.5,-1.435)); -#47972=CARTESIAN_POINT('',(-0.110000000000001,1.,-1.43500000000001)); -#47973=CARTESIAN_POINT('',(-0.110000000000001,0.95,-1.43500000000001)); -#47974=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47975=CARTESIAN_POINT('',(0.109999999999999,0.95,-1.435)); -#47976=CARTESIAN_POINT('',(0.109999999999999,1.,-1.43500000000001)); -#47977=CARTESIAN_POINT('',(0.109999999999999,0.5,-1.43500000000001)); -#47978=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47979=CARTESIAN_POINT('',(0.284999999999999,0.5,-1.435)); -#47980=CARTESIAN_POINT('',(0.284999999999999,1.,-1.43500000000001)); -#47981=CARTESIAN_POINT('',(0.284999999999999,0.341949810758634,-1.435)); -#47982=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47983=CARTESIAN_POINT('',(0.515,0.341949810758634,-1.435)); -#47984=CARTESIAN_POINT('',(0.515,1.,-1.43500000000001)); -#47985=CARTESIAN_POINT('',(0.515,0.5,-1.435)); -#47986=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.435)); -#47987=CARTESIAN_POINT('',(0.69,0.5,-1.435)); -#47988=CARTESIAN_POINT('',(0.69,1.,-1.43500000000001)); -#47989=CARTESIAN_POINT('',(0.69,0.95,-1.43500000000001)); -#47990=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#47991=CARTESIAN_POINT('',(0.909999999999999,0.95,-1.435)); -#47992=CARTESIAN_POINT('',(0.909999999999999,1.,-1.43500000000001)); -#47993=CARTESIAN_POINT('',(0.909999999999999,0.5,-1.43500000000001)); -#47994=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#47995=CARTESIAN_POINT('',(1.085,0.5,-1.435)); -#47996=CARTESIAN_POINT('',(1.085,1.,-1.43500000000001)); -#47997=CARTESIAN_POINT('',(1.085,0.341949810758634,-1.435)); -#47998=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#47999=CARTESIAN_POINT('',(1.315,0.341949810758634,-1.435)); -#48000=CARTESIAN_POINT('',(1.315,1.,-1.43500000000001)); -#48001=CARTESIAN_POINT('',(1.315,0.5,-1.435)); -#48002=CARTESIAN_POINT('',(7.89,0.499999999999996,-1.435)); -#48003=CARTESIAN_POINT('',(1.49,0.5,-1.435)); -#48004=CARTESIAN_POINT('',(1.49,1.,-1.43500000000001)); -#48005=CARTESIAN_POINT('',(1.49,0.95,-1.43500000000001)); -#48006=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48007=CARTESIAN_POINT('',(1.71,0.95,-1.435)); -#48008=CARTESIAN_POINT('',(1.71,1.,-1.43500000000001)); -#48009=CARTESIAN_POINT('',(1.71,0.5,-1.43500000000001)); -#48010=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48011=CARTESIAN_POINT('',(1.885,0.5,-1.435)); -#48012=CARTESIAN_POINT('',(1.885,1.,-1.43500000000001)); -#48013=CARTESIAN_POINT('',(1.885,0.341949810758634,-1.435)); -#48014=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#48015=CARTESIAN_POINT('',(2.115,0.341949810758634,-1.435)); -#48016=CARTESIAN_POINT('',(2.115,1.,-1.43500000000001)); -#48017=CARTESIAN_POINT('',(2.115,0.5,-1.435)); -#48018=CARTESIAN_POINT('',(7.89,0.499999999999996,-1.435)); -#48019=CARTESIAN_POINT('',(2.29,0.5,-1.435)); -#48020=CARTESIAN_POINT('',(2.29,1.,-1.43500000000001)); -#48021=CARTESIAN_POINT('',(2.29,0.95,-1.43500000000001)); -#48022=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48023=CARTESIAN_POINT('',(2.51,0.95,-1.435)); -#48024=CARTESIAN_POINT('',(2.51,1.,-1.43500000000001)); -#48025=CARTESIAN_POINT('',(2.51,0.5,-1.43500000000001)); -#48026=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48027=CARTESIAN_POINT('',(2.685,0.5,-1.435)); -#48028=CARTESIAN_POINT('',(2.685,1.,-1.43500000000001)); -#48029=CARTESIAN_POINT('',(2.685,0.341949810758634,-1.435)); -#48030=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#48031=CARTESIAN_POINT('',(2.915,0.341949810758634,-1.435)); -#48032=CARTESIAN_POINT('',(2.915,1.,-1.43500000000001)); -#48033=CARTESIAN_POINT('',(2.915,0.5,-1.435)); -#48034=CARTESIAN_POINT('',(7.89,0.499999999999997,-1.435)); -#48035=CARTESIAN_POINT('',(3.09,0.5,-1.435)); -#48036=CARTESIAN_POINT('',(3.09,1.,-1.43500000000001)); -#48037=CARTESIAN_POINT('',(3.09,0.95,-1.43500000000001)); -#48038=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48039=CARTESIAN_POINT('',(3.31,0.95,-1.435)); -#48040=CARTESIAN_POINT('',(3.31,1.,-1.43500000000001)); -#48041=CARTESIAN_POINT('',(3.31,0.5,-1.43500000000001)); -#48042=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48043=CARTESIAN_POINT('',(3.485,0.5,-1.435)); -#48044=CARTESIAN_POINT('',(3.485,1.,-1.43500000000001)); -#48045=CARTESIAN_POINT('',(3.485,0.341949810758634,-1.435)); -#48046=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#48047=CARTESIAN_POINT('',(3.715,0.341949810758634,-1.435)); -#48048=CARTESIAN_POINT('',(3.715,1.,-1.43500000000001)); -#48049=CARTESIAN_POINT('',(3.715,0.5,-1.435)); -#48050=CARTESIAN_POINT('',(7.89,0.499999999999997,-1.435)); -#48051=CARTESIAN_POINT('',(3.89,0.5,-1.435)); -#48052=CARTESIAN_POINT('',(3.89,1.,-1.43500000000001)); -#48053=CARTESIAN_POINT('',(3.89,0.95,-1.43500000000001)); -#48054=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48055=CARTESIAN_POINT('',(4.11,0.95,-1.435)); -#48056=CARTESIAN_POINT('',(4.11,1.,-1.43500000000001)); -#48057=CARTESIAN_POINT('',(4.11,0.5,-1.43500000000001)); -#48058=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48059=CARTESIAN_POINT('',(4.285,0.5,-1.435)); -#48060=CARTESIAN_POINT('',(4.285,1.,-1.43500000000001)); -#48061=CARTESIAN_POINT('',(4.285,0.341949810758634,-1.435)); -#48062=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#48063=CARTESIAN_POINT('',(4.515,0.341949810758634,-1.435)); -#48064=CARTESIAN_POINT('',(4.515,1.,-1.43500000000001)); -#48065=CARTESIAN_POINT('',(4.515,0.5,-1.435)); -#48066=CARTESIAN_POINT('',(7.89,0.499999999999998,-1.435)); -#48067=CARTESIAN_POINT('',(4.69,0.5,-1.435)); -#48068=CARTESIAN_POINT('',(4.69,1.,-1.43500000000001)); -#48069=CARTESIAN_POINT('',(4.69,0.95,-1.43500000000001)); -#48070=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48071=CARTESIAN_POINT('',(4.91,0.95,-1.435)); -#48072=CARTESIAN_POINT('',(4.91,1.,-1.43500000000001)); -#48073=CARTESIAN_POINT('',(4.91,0.5,-1.43500000000001)); -#48074=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48075=CARTESIAN_POINT('',(5.085,0.5,-1.435)); -#48076=CARTESIAN_POINT('',(5.085,1.,-1.43500000000001)); -#48077=CARTESIAN_POINT('',(5.085,0.341949810758634,-1.435)); -#48078=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#48079=CARTESIAN_POINT('',(5.315,0.341949810758634,-1.435)); -#48080=CARTESIAN_POINT('',(5.315,1.,-1.43500000000001)); -#48081=CARTESIAN_POINT('',(5.315,0.5,-1.435)); -#48082=CARTESIAN_POINT('',(7.89,0.499999999999998,-1.435)); -#48083=CARTESIAN_POINT('',(5.49,0.5,-1.435)); -#48084=CARTESIAN_POINT('',(5.49,1.,-1.43500000000001)); -#48085=CARTESIAN_POINT('',(5.49,0.95,-1.43500000000001)); -#48086=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48087=CARTESIAN_POINT('',(5.71,0.95,-1.435)); -#48088=CARTESIAN_POINT('',(5.71,1.,-1.43500000000001)); -#48089=CARTESIAN_POINT('',(5.71,0.5,-1.43500000000001)); -#48090=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48091=CARTESIAN_POINT('',(5.885,0.5,-1.435)); -#48092=CARTESIAN_POINT('',(5.885,1.,-1.43500000000001)); -#48093=CARTESIAN_POINT('',(5.885,0.341949810758634,-1.435)); -#48094=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#48095=CARTESIAN_POINT('',(6.115,0.341949810758634,-1.435)); -#48096=CARTESIAN_POINT('',(6.115,1.,-1.43500000000001)); -#48097=CARTESIAN_POINT('',(6.115,0.5,-1.435)); -#48098=CARTESIAN_POINT('',(7.89,0.499999999999999,-1.435)); -#48099=CARTESIAN_POINT('',(6.29,0.5,-1.435)); -#48100=CARTESIAN_POINT('',(6.29,1.,-1.43500000000001)); -#48101=CARTESIAN_POINT('',(6.29,0.95,-1.43500000000001)); -#48102=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48103=CARTESIAN_POINT('',(6.51,0.95,-1.435)); -#48104=CARTESIAN_POINT('',(6.51,1.,-1.43500000000001)); -#48105=CARTESIAN_POINT('',(6.51,0.5,-1.43500000000001)); -#48106=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48107=CARTESIAN_POINT('',(6.685,0.5,-1.435)); -#48108=CARTESIAN_POINT('',(6.685,1.,-1.43500000000001)); -#48109=CARTESIAN_POINT('',(6.685,0.341949810758634,-1.435)); -#48110=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#48111=CARTESIAN_POINT('',(6.915,0.341949810758634,-1.435)); -#48112=CARTESIAN_POINT('',(6.915,1.,-1.43500000000001)); -#48113=CARTESIAN_POINT('',(6.915,0.5,-1.435)); -#48114=CARTESIAN_POINT('',(7.89,0.499999999999999,-1.435)); -#48115=CARTESIAN_POINT('',(7.09,0.5,-1.435)); -#48116=CARTESIAN_POINT('',(7.09,1.,-1.43500000000001)); -#48117=CARTESIAN_POINT('',(7.09,0.95,-1.43500000000001)); -#48118=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48119=CARTESIAN_POINT('',(7.31,0.95,-1.43500000000001)); -#48120=CARTESIAN_POINT('',(7.31,1.,-1.43500000000001)); -#48121=CARTESIAN_POINT('',(7.31,0.5,-1.43500000000001)); -#48122=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48123=CARTESIAN_POINT('',(7.485,0.5,-1.435)); -#48124=CARTESIAN_POINT('',(7.485,1.,-1.43500000000001)); -#48125=CARTESIAN_POINT('',(7.485,0.341949810758634,-1.435)); -#48126=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); -#48127=CARTESIAN_POINT('',(7.715,0.341949810758634,-1.435)); -#48128=CARTESIAN_POINT('',(7.715,1.,-1.43500000000001)); -#48129=CARTESIAN_POINT('',(7.715,0.5,-1.435)); -#48130=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48131=CARTESIAN_POINT('',(7.89,0.5,-1.435)); -#48132=CARTESIAN_POINT('',(7.89,1.,-1.43500000000001)); -#48133=CARTESIAN_POINT('',(7.89,0.95,-1.43500000000001)); -#48134=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48135=CARTESIAN_POINT('',(7.95,0.95,-1.435)); -#48136=CARTESIAN_POINT('',(7.95,1.05,-1.435)); -#48137=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#48138=CARTESIAN_POINT('',(7.89,1.,1.435)); -#48139=CARTESIAN_POINT('',(7.95,1.,1.435)); -#48140=CARTESIAN_POINT('',(-7.95,1.,1.435)); -#48141=CARTESIAN_POINT('',(7.95,1.05,1.435)); -#48142=CARTESIAN_POINT('',(7.95,0.95,1.435)); -#48143=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48144=CARTESIAN_POINT('',(7.89,0.95,1.435)); -#48145=CARTESIAN_POINT('',(7.89,0.341949810758634,1.435)); -#48146=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48147=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48148=CARTESIAN_POINT('',(7.715,0.5,1.435)); -#48149=CARTESIAN_POINT('',(7.715,0.341949810758634,1.435)); -#48150=CARTESIAN_POINT('',(7.715,0.341949810758633,1.435)); -#48151=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48152=CARTESIAN_POINT('',(7.485,0.341949810758633,1.435)); -#48153=CARTESIAN_POINT('',(7.485,0.341949810758634,1.435)); -#48154=CARTESIAN_POINT('',(7.485,0.5,1.435)); -#48155=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48156=CARTESIAN_POINT('',(7.31,0.5,1.435)); -#48157=CARTESIAN_POINT('',(7.31,0.341949810758634,1.435)); -#48158=CARTESIAN_POINT('',(7.31,0.95,1.435)); -#48159=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48160=CARTESIAN_POINT('',(7.09,0.95,1.435)); -#48161=CARTESIAN_POINT('',(7.09,0.341949810758634,1.435)); -#48162=CARTESIAN_POINT('',(7.09,0.5,1.435)); -#48163=CARTESIAN_POINT('',(7.89,0.499999999999999,1.435)); -#48164=CARTESIAN_POINT('',(6.915,0.5,1.435)); -#48165=CARTESIAN_POINT('',(6.915,0.341949810758634,1.435)); -#48166=CARTESIAN_POINT('',(6.915,0.341949810758633,1.435)); -#48167=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48168=CARTESIAN_POINT('',(6.685,0.341949810758633,1.435)); -#48169=CARTESIAN_POINT('',(6.685,0.341949810758634,1.435)); -#48170=CARTESIAN_POINT('',(6.685,0.5,1.435)); -#48171=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48172=CARTESIAN_POINT('',(6.51,0.5,1.435)); -#48173=CARTESIAN_POINT('',(6.51,0.341949810758634,1.435)); -#48174=CARTESIAN_POINT('',(6.51,0.95,1.435)); -#48175=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48176=CARTESIAN_POINT('',(6.29,0.95,1.435)); -#48177=CARTESIAN_POINT('',(6.29,0.341949810758634,1.435)); -#48178=CARTESIAN_POINT('',(6.29,0.5,1.435)); -#48179=CARTESIAN_POINT('',(7.89,0.499999999999999,1.435)); -#48180=CARTESIAN_POINT('',(6.115,0.5,1.435)); -#48181=CARTESIAN_POINT('',(6.115,0.341949810758634,1.435)); -#48182=CARTESIAN_POINT('',(6.115,0.341949810758633,1.435)); -#48183=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48184=CARTESIAN_POINT('',(5.885,0.341949810758633,1.435)); -#48185=CARTESIAN_POINT('',(5.885,0.341949810758634,1.435)); -#48186=CARTESIAN_POINT('',(5.885,0.5,1.435)); -#48187=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48188=CARTESIAN_POINT('',(5.71,0.5,1.435)); -#48189=CARTESIAN_POINT('',(5.71,0.341949810758634,1.435)); -#48190=CARTESIAN_POINT('',(5.71,0.95,1.435)); -#48191=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48192=CARTESIAN_POINT('',(5.49,0.95,1.435)); -#48193=CARTESIAN_POINT('',(5.49,0.341949810758634,1.435)); -#48194=CARTESIAN_POINT('',(5.49,0.5,1.435)); -#48195=CARTESIAN_POINT('',(7.89,0.499999999999998,1.435)); -#48196=CARTESIAN_POINT('',(5.315,0.5,1.435)); -#48197=CARTESIAN_POINT('',(5.315,0.341949810758634,1.435)); -#48198=CARTESIAN_POINT('',(5.315,0.341949810758633,1.435)); -#48199=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48200=CARTESIAN_POINT('',(5.085,0.341949810758633,1.435)); -#48201=CARTESIAN_POINT('',(5.085,0.341949810758634,1.435)); -#48202=CARTESIAN_POINT('',(5.085,0.5,1.435)); -#48203=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48204=CARTESIAN_POINT('',(4.91,0.5,1.435)); -#48205=CARTESIAN_POINT('',(4.91,0.341949810758634,1.435)); -#48206=CARTESIAN_POINT('',(4.91,0.95,1.435)); -#48207=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48208=CARTESIAN_POINT('',(4.69,0.95,1.435)); -#48209=CARTESIAN_POINT('',(4.69,0.341949810758634,1.435)); -#48210=CARTESIAN_POINT('',(4.69,0.5,1.435)); -#48211=CARTESIAN_POINT('',(7.89,0.499999999999998,1.435)); -#48212=CARTESIAN_POINT('',(4.515,0.5,1.435)); -#48213=CARTESIAN_POINT('',(4.515,0.341949810758634,1.435)); -#48214=CARTESIAN_POINT('',(4.515,0.341949810758633,1.435)); -#48215=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48216=CARTESIAN_POINT('',(4.285,0.341949810758633,1.435)); -#48217=CARTESIAN_POINT('',(4.285,0.341949810758634,1.435)); -#48218=CARTESIAN_POINT('',(4.285,0.5,1.435)); -#48219=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48220=CARTESIAN_POINT('',(4.11,0.5,1.435)); -#48221=CARTESIAN_POINT('',(4.11,0.341949810758634,1.435)); -#48222=CARTESIAN_POINT('',(4.11,0.95,1.435)); -#48223=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48224=CARTESIAN_POINT('',(3.89,0.95,1.435)); -#48225=CARTESIAN_POINT('',(3.89,0.341949810758634,1.435)); -#48226=CARTESIAN_POINT('',(3.89,0.5,1.435)); -#48227=CARTESIAN_POINT('',(7.89,0.499999999999997,1.435)); -#48228=CARTESIAN_POINT('',(3.715,0.5,1.435)); -#48229=CARTESIAN_POINT('',(3.715,0.341949810758634,1.435)); -#48230=CARTESIAN_POINT('',(3.715,0.341949810758633,1.435)); -#48231=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48232=CARTESIAN_POINT('',(3.485,0.341949810758633,1.435)); -#48233=CARTESIAN_POINT('',(3.485,0.341949810758634,1.435)); -#48234=CARTESIAN_POINT('',(3.485,0.5,1.435)); -#48235=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48236=CARTESIAN_POINT('',(3.31,0.5,1.435)); -#48237=CARTESIAN_POINT('',(3.31,0.341949810758634,1.435)); -#48238=CARTESIAN_POINT('',(3.31,0.95,1.435)); -#48239=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48240=CARTESIAN_POINT('',(3.09,0.95,1.435)); -#48241=CARTESIAN_POINT('',(3.09,0.341949810758634,1.435)); -#48242=CARTESIAN_POINT('',(3.09,0.5,1.435)); -#48243=CARTESIAN_POINT('',(7.89,0.499999999999997,1.435)); -#48244=CARTESIAN_POINT('',(2.915,0.5,1.435)); -#48245=CARTESIAN_POINT('',(2.915,0.341949810758634,1.435)); -#48246=CARTESIAN_POINT('',(2.915,0.341949810758633,1.435)); -#48247=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48248=CARTESIAN_POINT('',(2.685,0.341949810758633,1.435)); -#48249=CARTESIAN_POINT('',(2.685,0.341949810758634,1.435)); -#48250=CARTESIAN_POINT('',(2.685,0.5,1.435)); -#48251=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48252=CARTESIAN_POINT('',(2.51,0.5,1.435)); -#48253=CARTESIAN_POINT('',(2.51,0.341949810758634,1.435)); -#48254=CARTESIAN_POINT('',(2.51,0.95,1.435)); -#48255=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48256=CARTESIAN_POINT('',(2.29,0.95,1.435)); -#48257=CARTESIAN_POINT('',(2.29,0.341949810758634,1.435)); -#48258=CARTESIAN_POINT('',(2.29,0.5,1.435)); -#48259=CARTESIAN_POINT('',(7.89,0.499999999999996,1.435)); -#48260=CARTESIAN_POINT('',(2.115,0.5,1.435)); -#48261=CARTESIAN_POINT('',(2.115,0.341949810758634,1.435)); -#48262=CARTESIAN_POINT('',(2.115,0.341949810758633,1.435)); -#48263=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48264=CARTESIAN_POINT('',(1.885,0.341949810758633,1.435)); -#48265=CARTESIAN_POINT('',(1.885,0.341949810758634,1.435)); -#48266=CARTESIAN_POINT('',(1.885,0.5,1.435)); -#48267=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48268=CARTESIAN_POINT('',(1.71,0.5,1.435)); -#48269=CARTESIAN_POINT('',(1.71,0.341949810758634,1.435)); -#48270=CARTESIAN_POINT('',(1.71,0.95,1.435)); -#48271=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48272=CARTESIAN_POINT('',(1.49,0.95,1.435)); -#48273=CARTESIAN_POINT('',(1.49,0.341949810758634,1.435)); -#48274=CARTESIAN_POINT('',(1.49,0.5,1.435)); -#48275=CARTESIAN_POINT('',(7.89,0.499999999999996,1.435)); -#48276=CARTESIAN_POINT('',(1.315,0.5,1.435)); -#48277=CARTESIAN_POINT('',(1.315,0.341949810758634,1.435)); -#48278=CARTESIAN_POINT('',(1.315,0.341949810758633,1.435)); -#48279=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48280=CARTESIAN_POINT('',(1.085,0.341949810758633,1.435)); -#48281=CARTESIAN_POINT('',(1.085,0.341949810758634,1.435)); -#48282=CARTESIAN_POINT('',(1.085,0.5,1.435)); -#48283=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48284=CARTESIAN_POINT('',(0.909999999999999,0.5,1.435)); -#48285=CARTESIAN_POINT('',(0.909999999999999,0.341949810758634,1.435)); -#48286=CARTESIAN_POINT('',(0.909999999999999,0.95,1.435)); -#48287=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48288=CARTESIAN_POINT('',(0.69,0.95,1.435)); -#48289=CARTESIAN_POINT('',(0.69,0.341949810758634,1.435)); -#48290=CARTESIAN_POINT('',(0.69,0.5,1.435)); -#48291=CARTESIAN_POINT('',(7.89,0.499999999999995,1.435)); -#48292=CARTESIAN_POINT('',(0.515,0.5,1.435)); -#48293=CARTESIAN_POINT('',(0.515,0.341949810758634,1.435)); -#48294=CARTESIAN_POINT('',(0.515,0.341949810758633,1.435)); -#48295=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48296=CARTESIAN_POINT('',(0.284999999999999,0.341949810758633,1.435)); -#48297=CARTESIAN_POINT('',(0.284999999999999,0.341949810758634,1.435)); -#48298=CARTESIAN_POINT('',(0.284999999999999,0.5,1.435)); -#48299=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48300=CARTESIAN_POINT('',(0.109999999999999,0.5,1.435)); -#48301=CARTESIAN_POINT('',(0.109999999999999,0.341949810758634,1.435)); -#48302=CARTESIAN_POINT('',(0.109999999999999,0.95,1.435)); -#48303=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48304=CARTESIAN_POINT('',(-0.110000000000001,0.95,1.435)); -#48305=CARTESIAN_POINT('',(-0.110000000000001,0.341949810758634,1.435)); -#48306=CARTESIAN_POINT('',(-0.110000000000001,0.5,1.435)); -#48307=CARTESIAN_POINT('',(7.89,0.499999999999995,1.435)); -#48308=CARTESIAN_POINT('',(-0.285,0.5,1.435)); -#48309=CARTESIAN_POINT('',(-0.285000000000001,0.341949810758634,1.435)); -#48310=CARTESIAN_POINT('',(-0.285000000000001,0.341949810758633,1.435)); -#48311=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48312=CARTESIAN_POINT('',(-0.515000000000002,0.341949810758633,1.435)); -#48313=CARTESIAN_POINT('',(-0.515000000000002,0.341949810758634,1.435)); -#48314=CARTESIAN_POINT('',(-0.515000000000001,0.5,1.435)); -#48315=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48316=CARTESIAN_POINT('',(-0.690000000000001,0.5,1.435)); -#48317=CARTESIAN_POINT('',(-0.690000000000001,0.341949810758634,1.435)); -#48318=CARTESIAN_POINT('',(-0.690000000000001,0.95,1.435)); -#48319=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48320=CARTESIAN_POINT('',(-0.910000000000001,0.95,1.435)); -#48321=CARTESIAN_POINT('',(-0.910000000000001,0.341949810758634,1.435)); -#48322=CARTESIAN_POINT('',(-0.910000000000001,0.5,1.435)); -#48323=CARTESIAN_POINT('',(7.89,0.499999999999995,1.435)); -#48324=CARTESIAN_POINT('',(-1.085,0.5,1.435)); -#48325=CARTESIAN_POINT('',(-1.085,0.341949810758634,1.435)); -#48326=CARTESIAN_POINT('',(-1.085,0.341949810758633,1.435)); -#48327=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48328=CARTESIAN_POINT('',(-1.315,0.341949810758633,1.435)); -#48329=CARTESIAN_POINT('',(-1.315,0.341949810758634,1.435)); -#48330=CARTESIAN_POINT('',(-1.315,0.5,1.435)); -#48331=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48332=CARTESIAN_POINT('',(-1.49,0.5,1.435)); -#48333=CARTESIAN_POINT('',(-1.49,0.341949810758634,1.435)); -#48334=CARTESIAN_POINT('',(-1.49,0.95,1.435)); -#48335=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48336=CARTESIAN_POINT('',(-1.71,0.95,1.435)); -#48337=CARTESIAN_POINT('',(-1.71,0.341949810758634,1.435)); -#48338=CARTESIAN_POINT('',(-1.71,0.5,1.435)); -#48339=CARTESIAN_POINT('',(7.89,0.499999999999994,1.435)); -#48340=CARTESIAN_POINT('',(-1.885,0.5,1.435)); -#48341=CARTESIAN_POINT('',(-1.885,0.341949810758634,1.435)); -#48342=CARTESIAN_POINT('',(-1.885,0.341949810758633,1.435)); -#48343=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48344=CARTESIAN_POINT('',(-2.115,0.341949810758633,1.435)); -#48345=CARTESIAN_POINT('',(-2.115,0.341949810758634,1.435)); -#48346=CARTESIAN_POINT('',(-2.115,0.5,1.435)); -#48347=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48348=CARTESIAN_POINT('',(-2.29,0.5,1.435)); -#48349=CARTESIAN_POINT('',(-2.29,0.341949810758634,1.435)); -#48350=CARTESIAN_POINT('',(-2.29,0.95,1.435)); -#48351=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48352=CARTESIAN_POINT('',(-2.51,0.95,1.435)); -#48353=CARTESIAN_POINT('',(-2.51,0.341949810758634,1.435)); -#48354=CARTESIAN_POINT('',(-2.51,0.5,1.435)); -#48355=CARTESIAN_POINT('',(7.89,0.499999999999994,1.435)); -#48356=CARTESIAN_POINT('',(-2.685,0.5,1.435)); -#48357=CARTESIAN_POINT('',(-2.685,0.341949810758634,1.435)); -#48358=CARTESIAN_POINT('',(-2.685,0.341949810758633,1.435)); -#48359=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48360=CARTESIAN_POINT('',(-2.915,0.341949810758633,1.435)); -#48361=CARTESIAN_POINT('',(-2.915,0.341949810758634,1.435)); -#48362=CARTESIAN_POINT('',(-2.915,0.5,1.435)); -#48363=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48364=CARTESIAN_POINT('',(-3.09,0.5,1.435)); -#48365=CARTESIAN_POINT('',(-3.09,0.341949810758634,1.435)); -#48366=CARTESIAN_POINT('',(-3.09,0.95,1.435)); -#48367=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48368=CARTESIAN_POINT('',(-3.31,0.95,1.435)); -#48369=CARTESIAN_POINT('',(-3.31,0.341949810758634,1.435)); -#48370=CARTESIAN_POINT('',(-3.31,0.5,1.435)); -#48371=CARTESIAN_POINT('',(7.89,0.499999999999993,1.435)); -#48372=CARTESIAN_POINT('',(-3.485,0.5,1.435)); -#48373=CARTESIAN_POINT('',(-3.485,0.341949810758634,1.435)); -#48374=CARTESIAN_POINT('',(-3.485,0.341949810758633,1.435)); -#48375=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48376=CARTESIAN_POINT('',(-3.715,0.341949810758633,1.435)); -#48377=CARTESIAN_POINT('',(-3.715,0.341949810758634,1.435)); -#48378=CARTESIAN_POINT('',(-3.715,0.5,1.435)); -#48379=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48380=CARTESIAN_POINT('',(-3.89,0.5,1.435)); -#48381=CARTESIAN_POINT('',(-3.89,0.341949810758634,1.435)); -#48382=CARTESIAN_POINT('',(-3.89,0.95,1.435)); -#48383=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48384=CARTESIAN_POINT('',(-4.11,0.95,1.435)); -#48385=CARTESIAN_POINT('',(-4.11,0.341949810758634,1.435)); -#48386=CARTESIAN_POINT('',(-4.11,0.5,1.435)); -#48387=CARTESIAN_POINT('',(7.89,0.499999999999992,1.435)); -#48388=CARTESIAN_POINT('',(-4.285,0.5,1.435)); -#48389=CARTESIAN_POINT('',(-4.285,0.341949810758634,1.435)); -#48390=CARTESIAN_POINT('',(-4.285,0.341949810758633,1.435)); -#48391=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48392=CARTESIAN_POINT('',(-4.515,0.341949810758633,1.435)); -#48393=CARTESIAN_POINT('',(-4.515,0.341949810758634,1.435)); -#48394=CARTESIAN_POINT('',(-4.515,0.5,1.435)); -#48395=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48396=CARTESIAN_POINT('',(-4.69,0.5,1.435)); -#48397=CARTESIAN_POINT('',(-4.69,0.341949810758634,1.435)); -#48398=CARTESIAN_POINT('',(-4.69,0.95,1.435)); -#48399=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48400=CARTESIAN_POINT('',(-4.91,0.95,1.435)); -#48401=CARTESIAN_POINT('',(-4.91,0.341949810758634,1.435)); -#48402=CARTESIAN_POINT('',(-4.91,0.5,1.435)); -#48403=CARTESIAN_POINT('',(7.89,0.499999999999992,1.435)); -#48404=CARTESIAN_POINT('',(-5.085,0.5,1.435)); -#48405=CARTESIAN_POINT('',(-5.085,0.341949810758634,1.435)); -#48406=CARTESIAN_POINT('',(-5.085,0.341949810758633,1.435)); -#48407=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48408=CARTESIAN_POINT('',(-5.315,0.341949810758633,1.435)); -#48409=CARTESIAN_POINT('',(-5.315,0.341949810758634,1.435)); -#48410=CARTESIAN_POINT('',(-5.315,0.5,1.435)); -#48411=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48412=CARTESIAN_POINT('',(-5.49,0.5,1.435)); -#48413=CARTESIAN_POINT('',(-5.49,0.341949810758634,1.435)); -#48414=CARTESIAN_POINT('',(-5.49,0.95,1.435)); -#48415=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48416=CARTESIAN_POINT('',(-5.71,0.95,1.435)); -#48417=CARTESIAN_POINT('',(-5.71,0.341949810758634,1.435)); -#48418=CARTESIAN_POINT('',(-5.71,0.5,1.435)); -#48419=CARTESIAN_POINT('',(7.89,0.499999999999991,1.435)); -#48420=CARTESIAN_POINT('',(-5.885,0.5,1.435)); -#48421=CARTESIAN_POINT('',(-5.885,0.341949810758634,1.435)); -#48422=CARTESIAN_POINT('',(-5.885,0.341949810758633,1.435)); -#48423=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48424=CARTESIAN_POINT('',(-6.115,0.341949810758633,1.435)); -#48425=CARTESIAN_POINT('',(-6.115,0.341949810758634,1.435)); -#48426=CARTESIAN_POINT('',(-6.115,0.5,1.435)); -#48427=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48428=CARTESIAN_POINT('',(-6.29,0.5,1.435)); -#48429=CARTESIAN_POINT('',(-6.29,0.341949810758634,1.435)); -#48430=CARTESIAN_POINT('',(-6.29,0.95,1.435)); -#48431=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48432=CARTESIAN_POINT('',(-6.51,0.95,1.435)); -#48433=CARTESIAN_POINT('',(-6.51,0.341949810758634,1.435)); -#48434=CARTESIAN_POINT('',(-6.51,0.5,1.435)); -#48435=CARTESIAN_POINT('',(7.89,0.499999999999991,1.435)); -#48436=CARTESIAN_POINT('',(-6.685,0.5,1.435)); -#48437=CARTESIAN_POINT('',(-6.685,0.341949810758634,1.435)); -#48438=CARTESIAN_POINT('',(-6.685,0.341949810758633,1.435)); -#48439=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48440=CARTESIAN_POINT('',(-6.915,0.341949810758633,1.435)); -#48441=CARTESIAN_POINT('',(-6.915,0.341949810758634,1.435)); -#48442=CARTESIAN_POINT('',(-6.915,0.5,1.435)); -#48443=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48444=CARTESIAN_POINT('',(-7.09,0.5,1.435)); -#48445=CARTESIAN_POINT('',(-7.09,0.341949810758634,1.435)); -#48446=CARTESIAN_POINT('',(-7.09,0.95,1.435)); -#48447=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48448=CARTESIAN_POINT('',(-7.31,0.95,1.435)); -#48449=CARTESIAN_POINT('',(-7.31,0.341949810758634,1.435)); -#48450=CARTESIAN_POINT('',(-7.31,0.5,1.435)); -#48451=CARTESIAN_POINT('',(7.89,0.49999999999999,1.435)); -#48452=CARTESIAN_POINT('',(-7.485,0.5,1.435)); -#48453=CARTESIAN_POINT('',(-7.485,0.341949810758634,1.435)); -#48454=CARTESIAN_POINT('',(-7.485,0.341949810758633,1.435)); -#48455=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); -#48456=CARTESIAN_POINT('',(-7.715,0.341949810758633,1.435)); -#48457=CARTESIAN_POINT('',(-7.715,0.341949810758634,1.435)); -#48458=CARTESIAN_POINT('',(-7.715,0.5,1.435)); -#48459=CARTESIAN_POINT('',(7.89,0.5,1.435)); -#48460=CARTESIAN_POINT('',(-7.89,0.5,1.435)); -#48461=CARTESIAN_POINT('',(-7.89,0.341949810758634,1.435)); -#48462=CARTESIAN_POINT('',(-7.89,0.95,1.435)); -#48463=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48464=CARTESIAN_POINT('',(-7.95,0.95,1.435)); -#48465=CARTESIAN_POINT('',(-7.95,1.05,1.435)); -#48466=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#48467=CARTESIAN_POINT('',(7.89,1.,1.6)); -#48468=CARTESIAN_POINT('',(-8.,1.,1.6)); -#48469=CARTESIAN_POINT('',(8.,1.,1.6)); -#48470=CARTESIAN_POINT('',(-8.,1.05,1.6)); -#48471=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48472=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48473=CARTESIAN_POINT('',(-7.89,0.95,1.6)); -#48474=CARTESIAN_POINT('',(-7.89,7.155,1.6)); -#48475=CARTESIAN_POINT('',(-7.89,0.5,1.6)); -#48476=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48477=CARTESIAN_POINT('',(-7.715,0.5,1.6)); -#48478=CARTESIAN_POINT('',(-7.715,7.155,1.6)); -#48479=CARTESIAN_POINT('',(-7.715,0.377106686427072,1.6)); -#48480=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48481=CARTESIAN_POINT('',(-7.485,0.377106686427072,1.6)); -#48482=CARTESIAN_POINT('',(-7.485,7.155,1.6)); -#48483=CARTESIAN_POINT('',(-7.485,0.5,1.6)); -#48484=CARTESIAN_POINT('',(7.89,0.49999999999999,1.6)); -#48485=CARTESIAN_POINT('',(-7.31,0.5,1.6)); -#48486=CARTESIAN_POINT('',(-7.31,7.155,1.6)); -#48487=CARTESIAN_POINT('',(-7.31,0.95,1.6)); -#48488=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48489=CARTESIAN_POINT('',(-7.09,0.95,1.6)); -#48490=CARTESIAN_POINT('',(-7.09,7.155,1.6)); -#48491=CARTESIAN_POINT('',(-7.09,0.5,1.6)); -#48492=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48493=CARTESIAN_POINT('',(-6.915,0.5,1.6)); -#48494=CARTESIAN_POINT('',(-6.915,7.155,1.6)); -#48495=CARTESIAN_POINT('',(-6.915,0.377106686427072,1.6)); -#48496=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48497=CARTESIAN_POINT('',(-6.685,0.377106686427072,1.6)); -#48498=CARTESIAN_POINT('',(-6.685,7.155,1.6)); -#48499=CARTESIAN_POINT('',(-6.685,0.5,1.6)); -#48500=CARTESIAN_POINT('',(7.89,0.499999999999991,1.6)); -#48501=CARTESIAN_POINT('',(-6.51,0.5,1.6)); -#48502=CARTESIAN_POINT('',(-6.51,7.155,1.6)); -#48503=CARTESIAN_POINT('',(-6.51,0.95,1.6)); -#48504=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48505=CARTESIAN_POINT('',(-6.29,0.95,1.6)); -#48506=CARTESIAN_POINT('',(-6.29,7.155,1.6)); -#48507=CARTESIAN_POINT('',(-6.29,0.5,1.6)); -#48508=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48509=CARTESIAN_POINT('',(-6.115,0.5,1.6)); -#48510=CARTESIAN_POINT('',(-6.115,7.155,1.6)); -#48511=CARTESIAN_POINT('',(-6.115,0.377106686427072,1.6)); -#48512=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48513=CARTESIAN_POINT('',(-5.885,0.377106686427072,1.6)); -#48514=CARTESIAN_POINT('',(-5.885,7.155,1.6)); -#48515=CARTESIAN_POINT('',(-5.885,0.5,1.6)); -#48516=CARTESIAN_POINT('',(7.89,0.499999999999991,1.6)); -#48517=CARTESIAN_POINT('',(-5.71,0.5,1.6)); -#48518=CARTESIAN_POINT('',(-5.71,7.155,1.6)); -#48519=CARTESIAN_POINT('',(-5.71,0.95,1.6)); -#48520=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48521=CARTESIAN_POINT('',(-5.49,0.95,1.6)); -#48522=CARTESIAN_POINT('',(-5.49,7.155,1.6)); -#48523=CARTESIAN_POINT('',(-5.49,0.5,1.6)); -#48524=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48525=CARTESIAN_POINT('',(-5.315,0.5,1.6)); -#48526=CARTESIAN_POINT('',(-5.315,7.155,1.6)); -#48527=CARTESIAN_POINT('',(-5.315,0.377106686427072,1.6)); -#48528=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48529=CARTESIAN_POINT('',(-5.085,0.377106686427072,1.6)); -#48530=CARTESIAN_POINT('',(-5.085,7.155,1.6)); -#48531=CARTESIAN_POINT('',(-5.085,0.5,1.6)); -#48532=CARTESIAN_POINT('',(7.89,0.499999999999992,1.6)); -#48533=CARTESIAN_POINT('',(-4.91,0.5,1.6)); -#48534=CARTESIAN_POINT('',(-4.91,7.155,1.6)); -#48535=CARTESIAN_POINT('',(-4.91,0.95,1.6)); -#48536=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48537=CARTESIAN_POINT('',(-4.69,0.95,1.6)); -#48538=CARTESIAN_POINT('',(-4.69,7.155,1.6)); -#48539=CARTESIAN_POINT('',(-4.69,0.5,1.6)); -#48540=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48541=CARTESIAN_POINT('',(-4.515,0.5,1.6)); -#48542=CARTESIAN_POINT('',(-4.515,7.155,1.6)); -#48543=CARTESIAN_POINT('',(-4.515,0.377106686427072,1.6)); -#48544=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48545=CARTESIAN_POINT('',(-4.285,0.377106686427072,1.6)); -#48546=CARTESIAN_POINT('',(-4.285,7.155,1.6)); -#48547=CARTESIAN_POINT('',(-4.285,0.5,1.6)); -#48548=CARTESIAN_POINT('',(7.89,0.499999999999992,1.6)); -#48549=CARTESIAN_POINT('',(-4.11,0.5,1.6)); -#48550=CARTESIAN_POINT('',(-4.11,7.155,1.6)); -#48551=CARTESIAN_POINT('',(-4.11,0.95,1.6)); -#48552=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48553=CARTESIAN_POINT('',(-3.89,0.95,1.6)); -#48554=CARTESIAN_POINT('',(-3.89,7.155,1.6)); -#48555=CARTESIAN_POINT('',(-3.89,0.5,1.6)); -#48556=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48557=CARTESIAN_POINT('',(-3.715,0.5,1.6)); -#48558=CARTESIAN_POINT('',(-3.715,7.155,1.6)); -#48559=CARTESIAN_POINT('',(-3.715,0.377106686427072,1.6)); -#48560=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48561=CARTESIAN_POINT('',(-3.485,0.377106686427072,1.6)); -#48562=CARTESIAN_POINT('',(-3.485,7.155,1.6)); -#48563=CARTESIAN_POINT('',(-3.485,0.5,1.6)); -#48564=CARTESIAN_POINT('',(7.89,0.499999999999993,1.6)); -#48565=CARTESIAN_POINT('',(-3.31,0.5,1.6)); -#48566=CARTESIAN_POINT('',(-3.31,7.155,1.6)); -#48567=CARTESIAN_POINT('',(-3.31,0.95,1.6)); -#48568=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48569=CARTESIAN_POINT('',(-3.09,0.95,1.6)); -#48570=CARTESIAN_POINT('',(-3.09,7.155,1.6)); -#48571=CARTESIAN_POINT('',(-3.09,0.5,1.6)); -#48572=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48573=CARTESIAN_POINT('',(-2.915,0.5,1.6)); -#48574=CARTESIAN_POINT('',(-2.915,7.155,1.6)); -#48575=CARTESIAN_POINT('',(-2.915,0.377106686427072,1.6)); -#48576=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48577=CARTESIAN_POINT('',(-2.685,0.377106686427072,1.6)); -#48578=CARTESIAN_POINT('',(-2.685,7.155,1.6)); -#48579=CARTESIAN_POINT('',(-2.685,0.5,1.6)); -#48580=CARTESIAN_POINT('',(7.89,0.499999999999993,1.6)); -#48581=CARTESIAN_POINT('',(-2.51,0.5,1.6)); -#48582=CARTESIAN_POINT('',(-2.51,7.155,1.6)); -#48583=CARTESIAN_POINT('',(-2.51,0.95,1.6)); -#48584=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48585=CARTESIAN_POINT('',(-2.29,0.95,1.6)); -#48586=CARTESIAN_POINT('',(-2.29,7.155,1.6)); -#48587=CARTESIAN_POINT('',(-2.29,0.5,1.6)); -#48588=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48589=CARTESIAN_POINT('',(-2.115,0.5,1.6)); -#48590=CARTESIAN_POINT('',(-2.115,7.155,1.6)); -#48591=CARTESIAN_POINT('',(-2.115,0.377106686427072,1.6)); -#48592=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48593=CARTESIAN_POINT('',(-1.885,0.377106686427072,1.6)); -#48594=CARTESIAN_POINT('',(-1.885,7.155,1.6)); -#48595=CARTESIAN_POINT('',(-1.885,0.5,1.6)); -#48596=CARTESIAN_POINT('',(7.89,0.499999999999994,1.6)); -#48597=CARTESIAN_POINT('',(-1.71,0.5,1.6)); -#48598=CARTESIAN_POINT('',(-1.71,7.155,1.6)); -#48599=CARTESIAN_POINT('',(-1.71,0.95,1.6)); -#48600=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48601=CARTESIAN_POINT('',(-1.49,0.95,1.6)); -#48602=CARTESIAN_POINT('',(-1.49,7.155,1.6)); -#48603=CARTESIAN_POINT('',(-1.49,0.5,1.6)); -#48604=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48605=CARTESIAN_POINT('',(-1.315,0.5,1.6)); -#48606=CARTESIAN_POINT('',(-1.315,7.155,1.6)); -#48607=CARTESIAN_POINT('',(-1.315,0.377106686427072,1.6)); -#48608=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48609=CARTESIAN_POINT('',(-1.085,0.377106686427072,1.6)); -#48610=CARTESIAN_POINT('',(-1.085,7.155,1.6)); -#48611=CARTESIAN_POINT('',(-1.085,0.5,1.6)); -#48612=CARTESIAN_POINT('',(7.89,0.499999999999994,1.6)); -#48613=CARTESIAN_POINT('',(-0.910000000000001,0.5,1.6)); -#48614=CARTESIAN_POINT('',(-0.910000000000001,7.155,1.6)); -#48615=CARTESIAN_POINT('',(-0.910000000000001,0.95,1.6)); -#48616=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48617=CARTESIAN_POINT('',(-0.690000000000001,0.95,1.6)); -#48618=CARTESIAN_POINT('',(-0.690000000000001,7.155,1.6)); -#48619=CARTESIAN_POINT('',(-0.690000000000001,0.5,1.6)); -#48620=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48621=CARTESIAN_POINT('',(-0.515000000000001,0.5,1.6)); -#48622=CARTESIAN_POINT('',(-0.515000000000002,7.155,1.6)); -#48623=CARTESIAN_POINT('',(-0.515000000000002,0.377106686427072,1.6)); -#48624=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48625=CARTESIAN_POINT('',(-0.285000000000001,0.377106686427072,1.6)); -#48626=CARTESIAN_POINT('',(-0.285000000000001,7.155,1.6)); -#48627=CARTESIAN_POINT('',(-0.285,0.5,1.6)); -#48628=CARTESIAN_POINT('',(7.89,0.499999999999994,1.6)); -#48629=CARTESIAN_POINT('',(-0.110000000000001,0.5,1.6)); -#48630=CARTESIAN_POINT('',(-0.110000000000001,7.155,1.6)); -#48631=CARTESIAN_POINT('',(-0.110000000000001,0.95,1.6)); -#48632=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48633=CARTESIAN_POINT('',(0.109999999999999,0.95,1.6)); -#48634=CARTESIAN_POINT('',(0.109999999999999,7.155,1.6)); -#48635=CARTESIAN_POINT('',(0.109999999999999,0.5,1.6)); -#48636=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48637=CARTESIAN_POINT('',(0.284999999999999,0.5,1.6)); -#48638=CARTESIAN_POINT('',(0.284999999999999,7.155,1.6)); -#48639=CARTESIAN_POINT('',(0.284999999999999,0.377106686427072,1.6)); -#48640=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48641=CARTESIAN_POINT('',(0.515,0.377106686427072,1.6)); -#48642=CARTESIAN_POINT('',(0.515,7.155,1.6)); -#48643=CARTESIAN_POINT('',(0.515,0.5,1.6)); -#48644=CARTESIAN_POINT('',(7.89,0.499999999999995,1.6)); -#48645=CARTESIAN_POINT('',(0.69,0.5,1.6)); -#48646=CARTESIAN_POINT('',(0.69,7.155,1.6)); -#48647=CARTESIAN_POINT('',(0.69,0.95,1.6)); -#48648=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48649=CARTESIAN_POINT('',(0.909999999999999,0.95,1.6)); -#48650=CARTESIAN_POINT('',(0.909999999999999,7.155,1.6)); -#48651=CARTESIAN_POINT('',(0.909999999999999,0.5,1.6)); -#48652=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48653=CARTESIAN_POINT('',(1.085,0.5,1.6)); -#48654=CARTESIAN_POINT('',(1.085,7.155,1.6)); -#48655=CARTESIAN_POINT('',(1.085,0.377106686427072,1.6)); -#48656=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48657=CARTESIAN_POINT('',(1.315,0.377106686427072,1.6)); -#48658=CARTESIAN_POINT('',(1.315,7.155,1.6)); -#48659=CARTESIAN_POINT('',(1.315,0.5,1.6)); -#48660=CARTESIAN_POINT('',(7.89,0.499999999999995,1.6)); -#48661=CARTESIAN_POINT('',(1.49,0.5,1.6)); -#48662=CARTESIAN_POINT('',(1.49,7.155,1.6)); -#48663=CARTESIAN_POINT('',(1.49,0.95,1.6)); -#48664=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48665=CARTESIAN_POINT('',(1.71,0.95,1.6)); -#48666=CARTESIAN_POINT('',(1.71,7.155,1.6)); -#48667=CARTESIAN_POINT('',(1.71,0.5,1.6)); -#48668=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48669=CARTESIAN_POINT('',(1.885,0.5,1.6)); -#48670=CARTESIAN_POINT('',(1.885,7.155,1.6)); -#48671=CARTESIAN_POINT('',(1.885,0.377106686427072,1.6)); -#48672=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48673=CARTESIAN_POINT('',(2.115,0.377106686427072,1.6)); -#48674=CARTESIAN_POINT('',(2.115,7.155,1.6)); -#48675=CARTESIAN_POINT('',(2.115,0.5,1.6)); -#48676=CARTESIAN_POINT('',(7.89,0.499999999999996,1.6)); -#48677=CARTESIAN_POINT('',(2.29,0.5,1.6)); -#48678=CARTESIAN_POINT('',(2.29,7.155,1.6)); -#48679=CARTESIAN_POINT('',(2.29,0.95,1.6)); -#48680=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48681=CARTESIAN_POINT('',(2.51,0.95,1.6)); -#48682=CARTESIAN_POINT('',(2.51,7.155,1.6)); -#48683=CARTESIAN_POINT('',(2.51,0.5,1.6)); -#48684=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48685=CARTESIAN_POINT('',(2.685,0.5,1.6)); -#48686=CARTESIAN_POINT('',(2.685,7.155,1.6)); -#48687=CARTESIAN_POINT('',(2.685,0.377106686427072,1.6)); -#48688=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48689=CARTESIAN_POINT('',(2.915,0.377106686427072,1.6)); -#48690=CARTESIAN_POINT('',(2.915,7.155,1.6)); -#48691=CARTESIAN_POINT('',(2.915,0.5,1.6)); -#48692=CARTESIAN_POINT('',(7.89,0.499999999999996,1.6)); -#48693=CARTESIAN_POINT('',(3.09,0.5,1.6)); -#48694=CARTESIAN_POINT('',(3.09,7.155,1.6)); -#48695=CARTESIAN_POINT('',(3.09,0.95,1.6)); -#48696=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48697=CARTESIAN_POINT('',(3.31,0.95,1.6)); -#48698=CARTESIAN_POINT('',(3.31,7.155,1.6)); -#48699=CARTESIAN_POINT('',(3.31,0.5,1.6)); -#48700=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48701=CARTESIAN_POINT('',(3.485,0.5,1.6)); -#48702=CARTESIAN_POINT('',(3.485,7.155,1.6)); -#48703=CARTESIAN_POINT('',(3.485,0.377106686427072,1.6)); -#48704=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48705=CARTESIAN_POINT('',(3.715,0.377106686427072,1.6)); -#48706=CARTESIAN_POINT('',(3.715,7.155,1.6)); -#48707=CARTESIAN_POINT('',(3.715,0.5,1.6)); -#48708=CARTESIAN_POINT('',(7.89,0.499999999999997,1.6)); -#48709=CARTESIAN_POINT('',(3.89,0.5,1.6)); -#48710=CARTESIAN_POINT('',(3.89,7.155,1.6)); -#48711=CARTESIAN_POINT('',(3.89,0.95,1.6)); -#48712=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48713=CARTESIAN_POINT('',(4.11,0.95,1.6)); -#48714=CARTESIAN_POINT('',(4.11,7.155,1.6)); -#48715=CARTESIAN_POINT('',(4.11,0.5,1.6)); -#48716=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48717=CARTESIAN_POINT('',(4.285,0.5,1.6)); -#48718=CARTESIAN_POINT('',(4.285,7.155,1.6)); -#48719=CARTESIAN_POINT('',(4.285,0.377106686427072,1.6)); -#48720=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48721=CARTESIAN_POINT('',(4.515,0.377106686427072,1.6)); -#48722=CARTESIAN_POINT('',(4.515,7.155,1.6)); -#48723=CARTESIAN_POINT('',(4.515,0.5,1.6)); -#48724=CARTESIAN_POINT('',(7.89,0.499999999999998,1.6)); -#48725=CARTESIAN_POINT('',(4.69,0.5,1.6)); -#48726=CARTESIAN_POINT('',(4.69,7.155,1.6)); -#48727=CARTESIAN_POINT('',(4.69,0.95,1.6)); -#48728=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48729=CARTESIAN_POINT('',(4.91,0.95,1.6)); -#48730=CARTESIAN_POINT('',(4.91,7.155,1.6)); -#48731=CARTESIAN_POINT('',(4.91,0.5,1.6)); -#48732=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48733=CARTESIAN_POINT('',(5.085,0.5,1.6)); -#48734=CARTESIAN_POINT('',(5.085,7.155,1.6)); -#48735=CARTESIAN_POINT('',(5.085,0.377106686427072,1.6)); -#48736=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48737=CARTESIAN_POINT('',(5.315,0.377106686427072,1.6)); -#48738=CARTESIAN_POINT('',(5.315,7.155,1.6)); -#48739=CARTESIAN_POINT('',(5.315,0.5,1.6)); -#48740=CARTESIAN_POINT('',(7.89,0.499999999999998,1.6)); -#48741=CARTESIAN_POINT('',(5.49,0.5,1.6)); -#48742=CARTESIAN_POINT('',(5.49,7.155,1.6)); -#48743=CARTESIAN_POINT('',(5.49,0.95,1.6)); -#48744=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48745=CARTESIAN_POINT('',(5.71,0.95,1.6)); -#48746=CARTESIAN_POINT('',(5.71,7.155,1.6)); -#48747=CARTESIAN_POINT('',(5.71,0.5,1.6)); -#48748=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48749=CARTESIAN_POINT('',(5.885,0.5,1.6)); -#48750=CARTESIAN_POINT('',(5.885,7.155,1.6)); -#48751=CARTESIAN_POINT('',(5.885,0.377106686427072,1.6)); -#48752=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48753=CARTESIAN_POINT('',(6.115,0.377106686427072,1.6)); -#48754=CARTESIAN_POINT('',(6.115,7.155,1.6)); -#48755=CARTESIAN_POINT('',(6.115,0.5,1.6)); -#48756=CARTESIAN_POINT('',(7.89,0.499999999999999,1.6)); -#48757=CARTESIAN_POINT('',(6.29,0.5,1.6)); -#48758=CARTESIAN_POINT('',(6.29,7.155,1.6)); -#48759=CARTESIAN_POINT('',(6.29,0.95,1.6)); -#48760=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48761=CARTESIAN_POINT('',(6.51,0.95,1.6)); -#48762=CARTESIAN_POINT('',(6.51,7.155,1.6)); -#48763=CARTESIAN_POINT('',(6.51,0.5,1.6)); -#48764=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48765=CARTESIAN_POINT('',(6.685,0.5,1.6)); -#48766=CARTESIAN_POINT('',(6.685,7.155,1.6)); -#48767=CARTESIAN_POINT('',(6.685,0.377106686427072,1.6)); -#48768=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48769=CARTESIAN_POINT('',(6.915,0.377106686427072,1.6)); -#48770=CARTESIAN_POINT('',(6.915,7.155,1.6)); -#48771=CARTESIAN_POINT('',(6.915,0.5,1.6)); -#48772=CARTESIAN_POINT('',(7.89,0.499999999999999,1.6)); -#48773=CARTESIAN_POINT('',(7.09,0.5,1.6)); -#48774=CARTESIAN_POINT('',(7.09,7.155,1.6)); -#48775=CARTESIAN_POINT('',(7.09,0.95,1.6)); -#48776=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48777=CARTESIAN_POINT('',(7.31,0.95,1.6)); -#48778=CARTESIAN_POINT('',(7.31,7.155,1.6)); -#48779=CARTESIAN_POINT('',(7.31,0.5,1.6)); -#48780=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48781=CARTESIAN_POINT('',(7.485,0.5,1.6)); -#48782=CARTESIAN_POINT('',(7.485,7.155,1.6)); -#48783=CARTESIAN_POINT('',(7.485,0.377106686427072,1.6)); -#48784=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); -#48785=CARTESIAN_POINT('',(7.715,0.377106686427072,1.6)); -#48786=CARTESIAN_POINT('',(7.715,7.155,1.6)); -#48787=CARTESIAN_POINT('',(7.715,0.5,1.6)); -#48788=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48789=CARTESIAN_POINT('',(7.89,0.5,1.6)); -#48790=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#48791=CARTESIAN_POINT('',(7.89,0.95,1.6)); -#48792=CARTESIAN_POINT('',(-8.,0.95,1.6)); -#48793=CARTESIAN_POINT('',(8.,0.95,1.6)); -#48794=CARTESIAN_POINT('',(8.,1.05,1.6)); -#48795=CARTESIAN_POINT('',(-8.,1.05,-1.6)); -#48796=CARTESIAN_POINT('',(-8.,1.,-1.6)); -#48797=CARTESIAN_POINT('',(-8.,0.95,-1.6)); -#48798=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); -#48799=CARTESIAN_POINT('',(-7.95,1.,-1.435)); -#48800=CARTESIAN_POINT('',(-7.95,0.95,-1.435)); -#48801=CARTESIAN_POINT('',(7.95,1.05,1.435)); -#48802=CARTESIAN_POINT('',(7.95,1.,1.435)); -#48803=CARTESIAN_POINT('',(7.95,0.95,1.435)); -#48804=CARTESIAN_POINT('',(8.,1.05,1.6)); -#48805=CARTESIAN_POINT('',(8.,1.,1.6)); -#48806=CARTESIAN_POINT('',(8.,0.95,1.6)); -#48807=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#48808=CARTESIAN_POINT('',(7.89,0.95,2.0088)); -#48809=CARTESIAN_POINT('',(7.89,0.5,2.0088)); -#48810=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#48811=CARTESIAN_POINT('',(7.89,0.95,2.0088)); -#48812=CARTESIAN_POINT('',(7.89,0.5,2.0088)); -#48813=CARTESIAN_POINT('',(-7.89,0.6524,2.0088)); -#48814=CARTESIAN_POINT('',(-7.89,0.95,2.0088)); -#48815=CARTESIAN_POINT('',(-7.89,0.5,2.0088)); -#48816=CARTESIAN_POINT('',(-7.89,0.6524,2.0088)); -#48817=CARTESIAN_POINT('',(-7.89,0.95,2.0088)); -#48818=CARTESIAN_POINT('',(-7.89,0.5,2.0088)); -#48819=CARTESIAN_POINT('',(-7.31,0.5,4.)); -#48820=CARTESIAN_POINT('',(-7.31,0.95,4.)); -#48821=CARTESIAN_POINT('',(-7.31,0.5,4.)); -#48822=CARTESIAN_POINT('',(-7.09,1.,4.)); -#48823=CARTESIAN_POINT('',(-7.09,0.95,4.)); -#48824=CARTESIAN_POINT('',(-7.09,0.5,4.)); -#48825=CARTESIAN_POINT('',(-6.51,0.5,4.)); -#48826=CARTESIAN_POINT('',(-6.51,0.95,4.)); -#48827=CARTESIAN_POINT('',(-6.51,0.5,4.)); -#48828=CARTESIAN_POINT('',(-6.29,1.,4.)); -#48829=CARTESIAN_POINT('',(-6.29,0.95,4.)); -#48830=CARTESIAN_POINT('',(-6.29,0.5,4.)); -#48831=CARTESIAN_POINT('',(-5.71,0.5,4.)); -#48832=CARTESIAN_POINT('',(-5.71,0.95,4.)); -#48833=CARTESIAN_POINT('',(-5.71,0.5,4.)); -#48834=CARTESIAN_POINT('',(-5.49,1.,4.)); -#48835=CARTESIAN_POINT('',(-5.49,0.95,4.)); -#48836=CARTESIAN_POINT('',(-5.49,0.5,4.)); -#48837=CARTESIAN_POINT('',(-4.91,0.5,4.)); -#48838=CARTESIAN_POINT('',(-4.91,0.95,4.)); -#48839=CARTESIAN_POINT('',(-4.91,0.5,4.)); -#48840=CARTESIAN_POINT('',(-4.69,1.,4.)); -#48841=CARTESIAN_POINT('',(-4.69,0.95,4.)); -#48842=CARTESIAN_POINT('',(-4.69,0.5,4.)); -#48843=CARTESIAN_POINT('',(-4.11,0.5,4.)); -#48844=CARTESIAN_POINT('',(-4.11,0.95,4.)); -#48845=CARTESIAN_POINT('',(-4.11,0.5,4.)); -#48846=CARTESIAN_POINT('',(-3.89,1.,4.)); -#48847=CARTESIAN_POINT('',(-3.89,0.95,4.)); -#48848=CARTESIAN_POINT('',(-3.89,0.5,4.)); -#48849=CARTESIAN_POINT('',(-3.31,0.5,4.)); -#48850=CARTESIAN_POINT('',(-3.31,0.95,4.)); -#48851=CARTESIAN_POINT('',(-3.31,0.5,4.)); -#48852=CARTESIAN_POINT('',(-3.09,1.,4.)); -#48853=CARTESIAN_POINT('',(-3.09,0.95,4.)); -#48854=CARTESIAN_POINT('',(-3.09,0.5,4.)); -#48855=CARTESIAN_POINT('',(-2.51,0.5,4.)); -#48856=CARTESIAN_POINT('',(-2.51,0.95,4.)); -#48857=CARTESIAN_POINT('',(-2.51,0.5,4.)); -#48858=CARTESIAN_POINT('',(-2.29,1.,4.)); -#48859=CARTESIAN_POINT('',(-2.29,0.95,4.)); -#48860=CARTESIAN_POINT('',(-2.29,0.5,4.)); -#48861=CARTESIAN_POINT('',(-1.71,0.5,4.)); -#48862=CARTESIAN_POINT('',(-1.71,0.95,4.)); -#48863=CARTESIAN_POINT('',(-1.71,0.5,4.)); -#48864=CARTESIAN_POINT('',(-1.49,1.,4.)); -#48865=CARTESIAN_POINT('',(-1.49,0.95,4.)); -#48866=CARTESIAN_POINT('',(-1.49,0.5,4.)); -#48867=CARTESIAN_POINT('',(-0.910000000000001,0.5,4.)); -#48868=CARTESIAN_POINT('',(-0.910000000000001,0.95,4.)); -#48869=CARTESIAN_POINT('',(-0.910000000000001,0.5,4.)); -#48870=CARTESIAN_POINT('',(-0.690000000000001,1.,4.)); -#48871=CARTESIAN_POINT('',(-0.690000000000001,0.95,4.)); -#48872=CARTESIAN_POINT('',(-0.690000000000001,0.5,4.)); -#48873=CARTESIAN_POINT('',(-0.110000000000001,0.5,4.)); -#48874=CARTESIAN_POINT('',(-0.110000000000001,0.95,4.)); -#48875=CARTESIAN_POINT('',(-0.110000000000001,0.5,4.)); -#48876=CARTESIAN_POINT('',(0.109999999999999,1.,4.)); -#48877=CARTESIAN_POINT('',(0.109999999999999,0.95,4.)); -#48878=CARTESIAN_POINT('',(0.109999999999999,0.5,4.)); -#48879=CARTESIAN_POINT('',(0.69,0.5,4.)); -#48880=CARTESIAN_POINT('',(0.69,0.95,4.)); -#48881=CARTESIAN_POINT('',(0.69,0.5,4.)); -#48882=CARTESIAN_POINT('',(0.909999999999999,1.,4.)); -#48883=CARTESIAN_POINT('',(0.909999999999999,0.95,4.)); -#48884=CARTESIAN_POINT('',(0.909999999999999,0.5,4.)); -#48885=CARTESIAN_POINT('',(1.49,0.5,4.)); -#48886=CARTESIAN_POINT('',(1.49,0.95,4.)); -#48887=CARTESIAN_POINT('',(1.49,0.5,4.)); -#48888=CARTESIAN_POINT('',(1.71,1.,4.)); -#48889=CARTESIAN_POINT('',(1.71,0.95,4.)); -#48890=CARTESIAN_POINT('',(1.71,0.5,4.)); -#48891=CARTESIAN_POINT('',(2.29,0.5,4.)); -#48892=CARTESIAN_POINT('',(2.29,0.95,4.)); -#48893=CARTESIAN_POINT('',(2.29,0.5,4.)); -#48894=CARTESIAN_POINT('',(2.51,1.,4.)); -#48895=CARTESIAN_POINT('',(2.51,0.95,4.)); -#48896=CARTESIAN_POINT('',(2.51,0.5,4.)); -#48897=CARTESIAN_POINT('',(3.09,0.5,4.)); -#48898=CARTESIAN_POINT('',(3.09,0.95,4.)); -#48899=CARTESIAN_POINT('',(3.09,0.5,4.)); -#48900=CARTESIAN_POINT('',(3.31,1.,4.)); -#48901=CARTESIAN_POINT('',(3.31,0.95,4.)); -#48902=CARTESIAN_POINT('',(3.31,0.5,4.)); -#48903=CARTESIAN_POINT('',(3.89,0.5,4.)); -#48904=CARTESIAN_POINT('',(3.89,0.95,4.)); -#48905=CARTESIAN_POINT('',(3.89,0.5,4.)); -#48906=CARTESIAN_POINT('',(4.11,1.,4.)); -#48907=CARTESIAN_POINT('',(4.11,0.95,4.)); -#48908=CARTESIAN_POINT('',(4.11,0.5,4.)); -#48909=CARTESIAN_POINT('',(4.69,0.5,4.)); -#48910=CARTESIAN_POINT('',(4.69,0.95,4.)); -#48911=CARTESIAN_POINT('',(4.69,0.5,4.)); -#48912=CARTESIAN_POINT('',(4.91,1.,4.)); -#48913=CARTESIAN_POINT('',(4.91,0.95,4.)); -#48914=CARTESIAN_POINT('',(4.91,0.5,4.)); -#48915=CARTESIAN_POINT('',(5.49,0.5,4.)); -#48916=CARTESIAN_POINT('',(5.49,0.95,4.)); -#48917=CARTESIAN_POINT('',(5.49,0.5,4.)); -#48918=CARTESIAN_POINT('',(5.71,1.,4.)); -#48919=CARTESIAN_POINT('',(5.71,0.95,4.)); -#48920=CARTESIAN_POINT('',(5.71,0.5,4.)); -#48921=CARTESIAN_POINT('',(6.29,0.5,4.)); -#48922=CARTESIAN_POINT('',(6.29,0.95,4.)); -#48923=CARTESIAN_POINT('',(6.29,0.5,4.)); -#48924=CARTESIAN_POINT('',(6.51,1.,4.)); -#48925=CARTESIAN_POINT('',(6.51,0.95,4.)); -#48926=CARTESIAN_POINT('',(6.51,0.5,4.)); -#48927=CARTESIAN_POINT('',(7.09,0.5,4.)); -#48928=CARTESIAN_POINT('',(7.09,0.95,4.)); -#48929=CARTESIAN_POINT('',(7.09,0.5,4.)); -#48930=CARTESIAN_POINT('',(7.31,1.,4.)); -#48931=CARTESIAN_POINT('',(7.31,0.95,4.)); -#48932=CARTESIAN_POINT('',(7.31,0.5,4.)); -#48933=CARTESIAN_POINT('',(-7.31,0.5,4.)); -#48934=CARTESIAN_POINT('',(-7.31,0.95,4.)); -#48935=CARTESIAN_POINT('',(-7.31,0.5,4.)); -#48936=CARTESIAN_POINT('',(-7.09,1.,4.)); -#48937=CARTESIAN_POINT('',(-7.09,0.95,4.)); -#48938=CARTESIAN_POINT('',(-7.09,0.5,4.)); -#48939=CARTESIAN_POINT('',(-6.51,0.5,4.)); -#48940=CARTESIAN_POINT('',(-6.51,0.95,4.)); -#48941=CARTESIAN_POINT('',(-6.51,0.5,4.)); -#48942=CARTESIAN_POINT('',(-6.29,1.,4.)); -#48943=CARTESIAN_POINT('',(-6.29,0.95,4.)); -#48944=CARTESIAN_POINT('',(-6.29,0.5,4.)); -#48945=CARTESIAN_POINT('',(-5.71,0.5,4.)); -#48946=CARTESIAN_POINT('',(-5.71,0.95,4.)); -#48947=CARTESIAN_POINT('',(-5.71,0.5,4.)); -#48948=CARTESIAN_POINT('',(-5.49,1.,4.)); -#48949=CARTESIAN_POINT('',(-5.49,0.95,4.)); -#48950=CARTESIAN_POINT('',(-5.49,0.5,4.)); -#48951=CARTESIAN_POINT('',(-4.91,0.5,4.)); -#48952=CARTESIAN_POINT('',(-4.91,0.95,4.)); -#48953=CARTESIAN_POINT('',(-4.91,0.5,4.)); -#48954=CARTESIAN_POINT('',(-4.69,1.,4.)); -#48955=CARTESIAN_POINT('',(-4.69,0.95,4.)); -#48956=CARTESIAN_POINT('',(-4.69,0.5,4.)); -#48957=CARTESIAN_POINT('',(-4.11,0.5,4.)); -#48958=CARTESIAN_POINT('',(-4.11,0.95,4.)); -#48959=CARTESIAN_POINT('',(-4.11,0.5,4.)); -#48960=CARTESIAN_POINT('',(-3.89,1.,4.)); -#48961=CARTESIAN_POINT('',(-3.89,0.95,4.)); -#48962=CARTESIAN_POINT('',(-3.89,0.5,4.)); -#48963=CARTESIAN_POINT('',(-3.31,0.5,4.)); -#48964=CARTESIAN_POINT('',(-3.31,0.95,4.)); -#48965=CARTESIAN_POINT('',(-3.31,0.5,4.)); -#48966=CARTESIAN_POINT('',(-3.09,1.,4.)); -#48967=CARTESIAN_POINT('',(-3.09,0.95,4.)); -#48968=CARTESIAN_POINT('',(-3.09,0.5,4.)); -#48969=CARTESIAN_POINT('',(-2.51,0.5,4.)); -#48970=CARTESIAN_POINT('',(-2.51,0.95,4.)); -#48971=CARTESIAN_POINT('',(-2.51,0.5,4.)); -#48972=CARTESIAN_POINT('',(-2.29,1.,4.)); -#48973=CARTESIAN_POINT('',(-2.29,0.95,4.)); -#48974=CARTESIAN_POINT('',(-2.29,0.5,4.)); -#48975=CARTESIAN_POINT('',(-1.71,0.5,4.)); -#48976=CARTESIAN_POINT('',(-1.71,0.95,4.)); -#48977=CARTESIAN_POINT('',(-1.71,0.5,4.)); -#48978=CARTESIAN_POINT('',(-1.49,1.,4.)); -#48979=CARTESIAN_POINT('',(-1.49,0.95,4.)); -#48980=CARTESIAN_POINT('',(-1.49,0.5,4.)); -#48981=CARTESIAN_POINT('',(-0.910000000000001,0.5,4.)); -#48982=CARTESIAN_POINT('',(-0.910000000000001,0.95,4.)); -#48983=CARTESIAN_POINT('',(-0.910000000000001,0.5,4.)); -#48984=CARTESIAN_POINT('',(-0.690000000000001,1.,4.)); -#48985=CARTESIAN_POINT('',(-0.690000000000001,0.95,4.)); -#48986=CARTESIAN_POINT('',(-0.690000000000001,0.5,4.)); -#48987=CARTESIAN_POINT('',(-0.110000000000001,0.5,4.)); -#48988=CARTESIAN_POINT('',(-0.110000000000001,0.95,4.)); -#48989=CARTESIAN_POINT('',(-0.110000000000001,0.5,4.)); -#48990=CARTESIAN_POINT('',(0.109999999999999,1.,4.)); -#48991=CARTESIAN_POINT('',(0.109999999999999,0.95,4.)); -#48992=CARTESIAN_POINT('',(0.109999999999999,0.5,4.)); -#48993=CARTESIAN_POINT('',(0.69,0.5,4.)); -#48994=CARTESIAN_POINT('',(0.69,0.95,4.)); -#48995=CARTESIAN_POINT('',(0.69,0.5,4.)); -#48996=CARTESIAN_POINT('',(0.909999999999999,1.,4.)); -#48997=CARTESIAN_POINT('',(0.909999999999999,0.95,4.)); -#48998=CARTESIAN_POINT('',(0.909999999999999,0.5,4.)); -#48999=CARTESIAN_POINT('',(1.49,0.5,4.)); -#49000=CARTESIAN_POINT('',(1.49,0.95,4.)); -#49001=CARTESIAN_POINT('',(1.49,0.5,4.)); -#49002=CARTESIAN_POINT('',(1.71,1.,4.)); -#49003=CARTESIAN_POINT('',(1.71,0.95,4.)); -#49004=CARTESIAN_POINT('',(1.71,0.5,4.)); -#49005=CARTESIAN_POINT('',(2.29,0.5,4.)); -#49006=CARTESIAN_POINT('',(2.29,0.95,4.)); -#49007=CARTESIAN_POINT('',(2.29,0.5,4.)); -#49008=CARTESIAN_POINT('',(2.51,1.,4.)); -#49009=CARTESIAN_POINT('',(2.51,0.95,4.)); -#49010=CARTESIAN_POINT('',(2.51,0.5,4.)); -#49011=CARTESIAN_POINT('',(3.09,0.5,4.)); -#49012=CARTESIAN_POINT('',(3.09,0.95,4.)); -#49013=CARTESIAN_POINT('',(3.09,0.5,4.)); -#49014=CARTESIAN_POINT('',(3.31,1.,4.)); -#49015=CARTESIAN_POINT('',(3.31,0.95,4.)); -#49016=CARTESIAN_POINT('',(3.31,0.5,4.)); -#49017=CARTESIAN_POINT('',(3.89,0.5,4.)); -#49018=CARTESIAN_POINT('',(3.89,0.95,4.)); -#49019=CARTESIAN_POINT('',(3.89,0.5,4.)); -#49020=CARTESIAN_POINT('',(4.11,1.,4.)); -#49021=CARTESIAN_POINT('',(4.11,0.95,4.)); -#49022=CARTESIAN_POINT('',(4.11,0.5,4.)); -#49023=CARTESIAN_POINT('',(4.69,0.5,4.)); -#49024=CARTESIAN_POINT('',(4.69,0.95,4.)); -#49025=CARTESIAN_POINT('',(4.69,0.5,4.)); -#49026=CARTESIAN_POINT('',(4.91,1.,4.)); -#49027=CARTESIAN_POINT('',(4.91,0.95,4.)); -#49028=CARTESIAN_POINT('',(4.91,0.5,4.)); -#49029=CARTESIAN_POINT('',(5.49,0.5,4.)); -#49030=CARTESIAN_POINT('',(5.49,0.95,4.)); -#49031=CARTESIAN_POINT('',(5.49,0.5,4.)); -#49032=CARTESIAN_POINT('',(5.71,1.,4.)); -#49033=CARTESIAN_POINT('',(5.71,0.95,4.)); -#49034=CARTESIAN_POINT('',(5.71,0.5,4.)); -#49035=CARTESIAN_POINT('',(6.29,0.5,4.)); -#49036=CARTESIAN_POINT('',(6.29,0.95,4.)); -#49037=CARTESIAN_POINT('',(6.29,0.5,4.)); -#49038=CARTESIAN_POINT('',(6.51,1.,4.)); -#49039=CARTESIAN_POINT('',(6.51,0.95,4.)); -#49040=CARTESIAN_POINT('',(6.51,0.5,4.)); -#49041=CARTESIAN_POINT('',(7.31,1.,4.)); -#49042=CARTESIAN_POINT('',(7.31,0.95,4.)); -#49043=CARTESIAN_POINT('',(7.31,0.5,4.)); -#49044=CARTESIAN_POINT('',(7.09,0.5,4.)); -#49045=CARTESIAN_POINT('',(7.09,0.95,4.)); -#49046=CARTESIAN_POINT('',(7.09,0.5,4.)); -#49047=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49048=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49049=CARTESIAN_POINT('',(7.715,0.0874050265710325,2.335)); -#49050=CARTESIAN_POINT('',(7.485,0.0874050265710325,2.335)); -#49051=CARTESIAN_POINT('',(7.715,0.228871672020412,2.25332419416845)); -#49052=CARTESIAN_POINT('',(7.715,0.228871672020412,2.25332419416845)); -#49053=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49054=CARTESIAN_POINT('',(7.485,0.228871672020412,2.25332419416845)); -#49055=CARTESIAN_POINT('',(7.485,0.228871672020412,2.25332419416845)); -#49056=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49057=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49058=CARTESIAN_POINT('',(6.915,0.0874050265710325,2.335)); -#49059=CARTESIAN_POINT('',(6.685,0.0874050265710325,2.335)); -#49060=CARTESIAN_POINT('',(6.915,0.228871672020412,2.25332419416845)); -#49061=CARTESIAN_POINT('',(6.915,0.228871672020412,2.25332419416845)); -#49062=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49063=CARTESIAN_POINT('',(6.685,0.228871672020412,2.25332419416845)); -#49064=CARTESIAN_POINT('',(6.685,0.228871672020412,2.25332419416845)); -#49065=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49066=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49067=CARTESIAN_POINT('',(6.115,0.0874050265710325,2.335)); -#49068=CARTESIAN_POINT('',(5.885,0.0874050265710325,2.335)); -#49069=CARTESIAN_POINT('',(6.115,0.228871672020412,2.25332419416845)); -#49070=CARTESIAN_POINT('',(6.115,0.228871672020412,2.25332419416845)); -#49071=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49072=CARTESIAN_POINT('',(5.885,0.228871672020412,2.25332419416845)); -#49073=CARTESIAN_POINT('',(5.885,0.228871672020412,2.25332419416845)); -#49074=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49075=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49076=CARTESIAN_POINT('',(5.315,0.0874050265710325,2.335)); -#49077=CARTESIAN_POINT('',(5.085,0.0874050265710325,2.335)); -#49078=CARTESIAN_POINT('',(5.315,0.228871672020412,2.25332419416845)); -#49079=CARTESIAN_POINT('',(5.315,0.228871672020412,2.25332419416845)); -#49080=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49081=CARTESIAN_POINT('',(5.085,0.228871672020412,2.25332419416845)); -#49082=CARTESIAN_POINT('',(5.085,0.228871672020412,2.25332419416845)); -#49083=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49084=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49085=CARTESIAN_POINT('',(4.515,0.0874050265710325,2.335)); -#49086=CARTESIAN_POINT('',(4.285,0.0874050265710325,2.335)); -#49087=CARTESIAN_POINT('',(4.515,0.228871672020412,2.25332419416845)); -#49088=CARTESIAN_POINT('',(4.515,0.228871672020412,2.25332419416845)); -#49089=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49090=CARTESIAN_POINT('',(4.285,0.228871672020412,2.25332419416845)); -#49091=CARTESIAN_POINT('',(4.285,0.228871672020412,2.25332419416845)); -#49092=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49093=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49094=CARTESIAN_POINT('',(3.715,0.0874050265710325,2.335)); -#49095=CARTESIAN_POINT('',(3.485,0.0874050265710325,2.335)); -#49096=CARTESIAN_POINT('',(3.715,0.228871672020412,2.25332419416845)); -#49097=CARTESIAN_POINT('',(3.715,0.228871672020412,2.25332419416845)); -#49098=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49099=CARTESIAN_POINT('',(3.485,0.228871672020412,2.25332419416845)); -#49100=CARTESIAN_POINT('',(3.485,0.228871672020412,2.25332419416845)); -#49101=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49102=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49103=CARTESIAN_POINT('',(2.915,0.0874050265710325,2.335)); -#49104=CARTESIAN_POINT('',(2.685,0.0874050265710325,2.335)); -#49105=CARTESIAN_POINT('',(2.915,0.228871672020412,2.25332419416845)); -#49106=CARTESIAN_POINT('',(2.915,0.228871672020412,2.25332419416845)); -#49107=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49108=CARTESIAN_POINT('',(2.685,0.228871672020412,2.25332419416845)); -#49109=CARTESIAN_POINT('',(2.685,0.228871672020412,2.25332419416845)); -#49110=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49111=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49112=CARTESIAN_POINT('',(2.115,0.0874050265710325,2.335)); -#49113=CARTESIAN_POINT('',(1.885,0.0874050265710325,2.335)); -#49114=CARTESIAN_POINT('',(2.115,0.228871672020412,2.25332419416845)); -#49115=CARTESIAN_POINT('',(2.115,0.228871672020412,2.25332419416845)); -#49116=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49117=CARTESIAN_POINT('',(1.885,0.228871672020412,2.25332419416845)); -#49118=CARTESIAN_POINT('',(1.885,0.228871672020412,2.25332419416845)); -#49119=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49120=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49121=CARTESIAN_POINT('',(1.315,0.0874050265710325,2.335)); -#49122=CARTESIAN_POINT('',(1.085,0.0874050265710325,2.335)); -#49123=CARTESIAN_POINT('',(1.315,0.228871672020412,2.25332419416845)); -#49124=CARTESIAN_POINT('',(1.315,0.228871672020412,2.25332419416845)); -#49125=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49126=CARTESIAN_POINT('',(1.085,0.228871672020412,2.25332419416845)); -#49127=CARTESIAN_POINT('',(1.085,0.228871672020412,2.25332419416845)); -#49128=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49129=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49130=CARTESIAN_POINT('',(0.515,0.0874050265710325,2.335)); -#49131=CARTESIAN_POINT('',(0.284999999999999,0.0874050265710325,2.335)); -#49132=CARTESIAN_POINT('',(0.515,0.228871672020412,2.25332419416845)); -#49133=CARTESIAN_POINT('',(0.515,0.228871672020412,2.25332419416845)); -#49134=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49135=CARTESIAN_POINT('',(0.284999999999999,0.228871672020412,2.25332419416845)); -#49136=CARTESIAN_POINT('',(0.284999999999999,0.228871672020412,2.25332419416845)); -#49137=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49138=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49139=CARTESIAN_POINT('',(-0.285000000000001,0.0874050265710325,2.335)); -#49140=CARTESIAN_POINT('',(-0.515000000000002,0.0874050265710325,2.335)); -#49141=CARTESIAN_POINT('',(-0.285000000000001,0.228871672020412,2.25332419416845)); -#49142=CARTESIAN_POINT('',(-0.285000000000001,0.228871672020412,2.25332419416845)); -#49143=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49144=CARTESIAN_POINT('',(-0.515000000000002,0.228871672020412,2.25332419416845)); -#49145=CARTESIAN_POINT('',(-0.515000000000002,0.228871672020412,2.25332419416845)); -#49146=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49147=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49148=CARTESIAN_POINT('',(-1.085,0.0874050265710325,2.335)); -#49149=CARTESIAN_POINT('',(-1.315,0.0874050265710325,2.335)); -#49150=CARTESIAN_POINT('',(-1.085,0.228871672020412,2.25332419416845)); -#49151=CARTESIAN_POINT('',(-1.085,0.228871672020412,2.25332419416845)); -#49152=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49153=CARTESIAN_POINT('',(-1.315,0.228871672020412,2.25332419416845)); -#49154=CARTESIAN_POINT('',(-1.315,0.228871672020412,2.25332419416845)); -#49155=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49156=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49157=CARTESIAN_POINT('',(-1.885,0.0874050265710325,2.335)); -#49158=CARTESIAN_POINT('',(-2.115,0.0874050265710325,2.335)); -#49159=CARTESIAN_POINT('',(-1.885,0.228871672020412,2.25332419416845)); -#49160=CARTESIAN_POINT('',(-1.885,0.228871672020412,2.25332419416845)); -#49161=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49162=CARTESIAN_POINT('',(-2.115,0.228871672020412,2.25332419416845)); -#49163=CARTESIAN_POINT('',(-2.115,0.228871672020412,2.25332419416845)); -#49164=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49165=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49166=CARTESIAN_POINT('',(-2.685,0.0874050265710325,2.335)); -#49167=CARTESIAN_POINT('',(-2.915,0.0874050265710325,2.335)); -#49168=CARTESIAN_POINT('',(-2.685,0.228871672020412,2.25332419416845)); -#49169=CARTESIAN_POINT('',(-2.685,0.228871672020412,2.25332419416845)); -#49170=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49171=CARTESIAN_POINT('',(-2.915,0.228871672020412,2.25332419416845)); -#49172=CARTESIAN_POINT('',(-2.915,0.228871672020412,2.25332419416845)); -#49173=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49174=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49175=CARTESIAN_POINT('',(-3.485,0.0874050265710325,2.335)); -#49176=CARTESIAN_POINT('',(-3.715,0.0874050265710325,2.335)); -#49177=CARTESIAN_POINT('',(-3.485,0.228871672020412,2.25332419416845)); -#49178=CARTESIAN_POINT('',(-3.485,0.228871672020412,2.25332419416845)); -#49179=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49180=CARTESIAN_POINT('',(-3.715,0.228871672020412,2.25332419416845)); -#49181=CARTESIAN_POINT('',(-3.715,0.228871672020412,2.25332419416845)); -#49182=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49183=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49184=CARTESIAN_POINT('',(-4.285,0.0874050265710325,2.335)); -#49185=CARTESIAN_POINT('',(-4.515,0.0874050265710325,2.335)); -#49186=CARTESIAN_POINT('',(-4.285,0.228871672020412,2.25332419416845)); -#49187=CARTESIAN_POINT('',(-4.285,0.228871672020412,2.25332419416845)); -#49188=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49189=CARTESIAN_POINT('',(-4.515,0.228871672020412,2.25332419416845)); -#49190=CARTESIAN_POINT('',(-4.515,0.228871672020412,2.25332419416845)); -#49191=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49192=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49193=CARTESIAN_POINT('',(-5.085,0.0874050265710325,2.335)); -#49194=CARTESIAN_POINT('',(-5.315,0.0874050265710325,2.335)); -#49195=CARTESIAN_POINT('',(-5.085,0.228871672020412,2.25332419416845)); -#49196=CARTESIAN_POINT('',(-5.085,0.228871672020412,2.25332419416845)); -#49197=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49198=CARTESIAN_POINT('',(-5.315,0.228871672020412,2.25332419416845)); -#49199=CARTESIAN_POINT('',(-5.315,0.228871672020412,2.25332419416845)); -#49200=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49201=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49202=CARTESIAN_POINT('',(-5.885,0.0874050265710325,2.335)); -#49203=CARTESIAN_POINT('',(-6.115,0.0874050265710325,2.335)); -#49204=CARTESIAN_POINT('',(-5.885,0.228871672020412,2.25332419416845)); -#49205=CARTESIAN_POINT('',(-5.885,0.228871672020412,2.25332419416845)); -#49206=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49207=CARTESIAN_POINT('',(-6.115,0.228871672020412,2.25332419416845)); -#49208=CARTESIAN_POINT('',(-6.115,0.228871672020412,2.25332419416845)); -#49209=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49210=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49211=CARTESIAN_POINT('',(-6.685,0.0874050265710325,2.335)); -#49212=CARTESIAN_POINT('',(-6.915,0.0874050265710325,2.335)); -#49213=CARTESIAN_POINT('',(-6.685,0.228871672020412,2.25332419416845)); -#49214=CARTESIAN_POINT('',(-6.685,0.228871672020412,2.25332419416845)); -#49215=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49216=CARTESIAN_POINT('',(-6.915,0.228871672020412,2.25332419416845)); -#49217=CARTESIAN_POINT('',(-6.915,0.228871672020412,2.25332419416845)); -#49218=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49219=CARTESIAN_POINT('',(7.485,0.6524,2.0088)); -#49220=CARTESIAN_POINT('',(7.715,0.6524,2.0088)); -#49221=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49222=CARTESIAN_POINT('',(6.685,0.6524,2.0088)); -#49223=CARTESIAN_POINT('',(6.915,0.6524,2.0088)); -#49224=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49225=CARTESIAN_POINT('',(5.885,0.6524,2.0088)); -#49226=CARTESIAN_POINT('',(6.115,0.6524,2.0088)); -#49227=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49228=CARTESIAN_POINT('',(5.085,0.6524,2.0088)); -#49229=CARTESIAN_POINT('',(5.315,0.6524,2.0088)); -#49230=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49231=CARTESIAN_POINT('',(4.285,0.6524,2.0088)); -#49232=CARTESIAN_POINT('',(4.515,0.6524,2.0088)); -#49233=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49234=CARTESIAN_POINT('',(3.485,0.6524,2.0088)); -#49235=CARTESIAN_POINT('',(3.715,0.6524,2.0088)); -#49236=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49237=CARTESIAN_POINT('',(2.685,0.6524,2.0088)); -#49238=CARTESIAN_POINT('',(2.915,0.6524,2.0088)); -#49239=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49240=CARTESIAN_POINT('',(1.885,0.6524,2.0088)); -#49241=CARTESIAN_POINT('',(2.115,0.6524,2.0088)); -#49242=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49243=CARTESIAN_POINT('',(1.085,0.6524,2.0088)); -#49244=CARTESIAN_POINT('',(1.315,0.6524,2.0088)); -#49245=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49246=CARTESIAN_POINT('',(0.284999999999999,0.6524,2.0088)); -#49247=CARTESIAN_POINT('',(0.515,0.6524,2.0088)); -#49248=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49249=CARTESIAN_POINT('',(-0.515000000000002,0.6524,2.0088)); -#49250=CARTESIAN_POINT('',(-0.285000000000001,0.6524,2.0088)); -#49251=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49252=CARTESIAN_POINT('',(-1.315,0.6524,2.0088)); -#49253=CARTESIAN_POINT('',(-1.085,0.6524,2.0088)); -#49254=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49255=CARTESIAN_POINT('',(-2.115,0.6524,2.0088)); -#49256=CARTESIAN_POINT('',(-1.885,0.6524,2.0088)); -#49257=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49258=CARTESIAN_POINT('',(-2.915,0.6524,2.0088)); -#49259=CARTESIAN_POINT('',(-2.685,0.6524,2.0088)); -#49260=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49261=CARTESIAN_POINT('',(-3.715,0.6524,2.0088)); -#49262=CARTESIAN_POINT('',(-3.485,0.6524,2.0088)); -#49263=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49264=CARTESIAN_POINT('',(-4.515,0.6524,2.0088)); -#49265=CARTESIAN_POINT('',(-4.285,0.6524,2.0088)); -#49266=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49267=CARTESIAN_POINT('',(-5.315,0.6524,2.0088)); -#49268=CARTESIAN_POINT('',(-5.085,0.6524,2.0088)); -#49269=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49270=CARTESIAN_POINT('',(-6.115,0.6524,2.0088)); -#49271=CARTESIAN_POINT('',(-5.885,0.6524,2.0088)); -#49272=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49273=CARTESIAN_POINT('',(-6.915,0.6524,2.0088)); -#49274=CARTESIAN_POINT('',(-6.685,0.6524,2.0088)); -#49275=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49276=CARTESIAN_POINT('',(7.485,0.6524,-2.0088)); -#49277=CARTESIAN_POINT('',(7.485,0.0874050265710326,-2.335)); -#49278=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49279=CARTESIAN_POINT('',(7.715,0.0874050265710326,-2.335)); -#49280=CARTESIAN_POINT('',(7.715,0.6524,-2.0088)); -#49281=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49282=CARTESIAN_POINT('',(6.685,0.6524,-2.0088)); -#49283=CARTESIAN_POINT('',(6.685,0.0874050265710326,-2.335)); -#49284=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49285=CARTESIAN_POINT('',(6.915,0.0874050265710326,-2.335)); -#49286=CARTESIAN_POINT('',(6.915,0.6524,-2.0088)); -#49287=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49288=CARTESIAN_POINT('',(5.885,0.6524,-2.0088)); -#49289=CARTESIAN_POINT('',(5.885,0.0874050265710326,-2.335)); -#49290=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49291=CARTESIAN_POINT('',(6.115,0.0874050265710326,-2.335)); -#49292=CARTESIAN_POINT('',(6.115,0.6524,-2.0088)); -#49293=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49294=CARTESIAN_POINT('',(5.085,0.6524,-2.0088)); -#49295=CARTESIAN_POINT('',(5.085,0.0874050265710326,-2.335)); -#49296=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49297=CARTESIAN_POINT('',(5.315,0.0874050265710326,-2.335)); -#49298=CARTESIAN_POINT('',(5.315,0.6524,-2.0088)); -#49299=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49300=CARTESIAN_POINT('',(4.285,0.6524,-2.0088)); -#49301=CARTESIAN_POINT('',(4.285,0.0874050265710326,-2.335)); -#49302=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49303=CARTESIAN_POINT('',(4.515,0.0874050265710326,-2.335)); -#49304=CARTESIAN_POINT('',(4.515,0.6524,-2.0088)); -#49305=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49306=CARTESIAN_POINT('',(3.485,0.6524,-2.0088)); -#49307=CARTESIAN_POINT('',(3.485,0.0874050265710326,-2.335)); -#49308=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49309=CARTESIAN_POINT('',(3.715,0.0874050265710326,-2.335)); -#49310=CARTESIAN_POINT('',(3.715,0.6524,-2.0088)); -#49311=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49312=CARTESIAN_POINT('',(2.685,0.6524,-2.0088)); -#49313=CARTESIAN_POINT('',(2.685,0.0874050265710326,-2.335)); -#49314=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49315=CARTESIAN_POINT('',(2.915,0.0874050265710326,-2.335)); -#49316=CARTESIAN_POINT('',(2.915,0.6524,-2.0088)); -#49317=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49318=CARTESIAN_POINT('',(1.885,0.6524,-2.0088)); -#49319=CARTESIAN_POINT('',(1.885,0.0874050265710326,-2.335)); -#49320=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49321=CARTESIAN_POINT('',(2.115,0.0874050265710326,-2.335)); -#49322=CARTESIAN_POINT('',(2.115,0.6524,-2.0088)); -#49323=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49324=CARTESIAN_POINT('',(1.085,0.6524,-2.0088)); -#49325=CARTESIAN_POINT('',(1.085,0.0874050265710326,-2.335)); -#49326=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49327=CARTESIAN_POINT('',(1.315,0.0874050265710326,-2.335)); -#49328=CARTESIAN_POINT('',(1.315,0.6524,-2.0088)); -#49329=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49330=CARTESIAN_POINT('',(0.284999999999999,0.6524,-2.0088)); -#49331=CARTESIAN_POINT('',(0.284999999999999,0.0874050265710326,-2.335)); -#49332=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49333=CARTESIAN_POINT('',(0.515,0.0874050265710326,-2.335)); -#49334=CARTESIAN_POINT('',(0.515,0.6524,-2.0088)); -#49335=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49336=CARTESIAN_POINT('',(-0.515000000000002,0.6524,-2.0088)); -#49337=CARTESIAN_POINT('',(-0.515000000000002,0.0874050265710326,-2.335)); -#49338=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49339=CARTESIAN_POINT('',(-0.285000000000001,0.0874050265710326,-2.335)); -#49340=CARTESIAN_POINT('',(-0.285000000000001,0.6524,-2.0088)); -#49341=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49342=CARTESIAN_POINT('',(-1.315,0.6524,-2.0088)); -#49343=CARTESIAN_POINT('',(-1.315,0.0874050265710326,-2.335)); -#49344=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49345=CARTESIAN_POINT('',(-1.085,0.0874050265710326,-2.335)); -#49346=CARTESIAN_POINT('',(-1.085,0.6524,-2.0088)); -#49347=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49348=CARTESIAN_POINT('',(-2.115,0.6524,-2.0088)); -#49349=CARTESIAN_POINT('',(-2.115,0.0874050265710326,-2.335)); -#49350=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49351=CARTESIAN_POINT('',(-1.885,0.0874050265710326,-2.335)); -#49352=CARTESIAN_POINT('',(-1.885,0.6524,-2.0088)); -#49353=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49354=CARTESIAN_POINT('',(-2.915,0.6524,-2.0088)); -#49355=CARTESIAN_POINT('',(-2.915,0.0874050265710326,-2.335)); -#49356=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49357=CARTESIAN_POINT('',(-2.685,0.0874050265710326,-2.335)); -#49358=CARTESIAN_POINT('',(-2.685,0.6524,-2.0088)); -#49359=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49360=CARTESIAN_POINT('',(-3.715,0.6524,-2.0088)); -#49361=CARTESIAN_POINT('',(-3.715,0.0874050265710326,-2.335)); -#49362=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49363=CARTESIAN_POINT('',(-3.485,0.0874050265710326,-2.335)); -#49364=CARTESIAN_POINT('',(-3.485,0.6524,-2.0088)); -#49365=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49366=CARTESIAN_POINT('',(-4.515,0.6524,-2.0088)); -#49367=CARTESIAN_POINT('',(-4.515,0.0874050265710326,-2.335)); -#49368=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49369=CARTESIAN_POINT('',(-4.285,0.0874050265710326,-2.335)); -#49370=CARTESIAN_POINT('',(-4.285,0.6524,-2.0088)); -#49371=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49372=CARTESIAN_POINT('',(-5.315,0.6524,-2.0088)); -#49373=CARTESIAN_POINT('',(-5.315,0.0874050265710326,-2.335)); -#49374=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49375=CARTESIAN_POINT('',(-5.085,0.0874050265710326,-2.335)); -#49376=CARTESIAN_POINT('',(-5.085,0.6524,-2.0088)); -#49377=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49378=CARTESIAN_POINT('',(-6.115,0.6524,-2.0088)); -#49379=CARTESIAN_POINT('',(-6.115,0.0874050265710326,-2.335)); -#49380=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49381=CARTESIAN_POINT('',(-5.885,0.0874050265710326,-2.335)); -#49382=CARTESIAN_POINT('',(-5.885,0.6524,-2.0088)); -#49383=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49384=CARTESIAN_POINT('',(-6.915,0.6524,-2.0088)); -#49385=CARTESIAN_POINT('',(-6.915,0.0874050265710326,-2.335)); -#49386=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49387=CARTESIAN_POINT('',(-6.685,0.0874050265710326,-2.335)); -#49388=CARTESIAN_POINT('',(-6.685,0.6524,-2.0088)); -#49389=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49390=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49391=CARTESIAN_POINT('',(7.715,0.228871672020412,-2.25332419416845)); -#49392=CARTESIAN_POINT('',(7.485,0.228871672020412,-2.25332419416845)); -#49393=CARTESIAN_POINT('',(7.715,0.0874050265710324,-2.335)); -#49394=CARTESIAN_POINT('',(7.485,0.0874050265710324,-2.335)); -#49395=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49396=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49397=CARTESIAN_POINT('',(6.915,0.228871672020412,-2.25332419416845)); -#49398=CARTESIAN_POINT('',(6.685,0.228871672020412,-2.25332419416845)); -#49399=CARTESIAN_POINT('',(6.915,0.0874050265710324,-2.335)); -#49400=CARTESIAN_POINT('',(6.685,0.0874050265710324,-2.335)); -#49401=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49402=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49403=CARTESIAN_POINT('',(6.115,0.228871672020412,-2.25332419416845)); -#49404=CARTESIAN_POINT('',(5.885,0.228871672020412,-2.25332419416845)); -#49405=CARTESIAN_POINT('',(6.115,0.0874050265710324,-2.335)); -#49406=CARTESIAN_POINT('',(5.885,0.0874050265710324,-2.335)); -#49407=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49408=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49409=CARTESIAN_POINT('',(5.315,0.228871672020412,-2.25332419416845)); -#49410=CARTESIAN_POINT('',(5.085,0.228871672020412,-2.25332419416845)); -#49411=CARTESIAN_POINT('',(5.315,0.0874050265710324,-2.335)); -#49412=CARTESIAN_POINT('',(5.085,0.0874050265710324,-2.335)); -#49413=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49414=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49415=CARTESIAN_POINT('',(4.515,0.228871672020412,-2.25332419416845)); -#49416=CARTESIAN_POINT('',(4.285,0.228871672020412,-2.25332419416845)); -#49417=CARTESIAN_POINT('',(4.515,0.0874050265710324,-2.335)); -#49418=CARTESIAN_POINT('',(4.285,0.0874050265710324,-2.335)); -#49419=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49420=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49421=CARTESIAN_POINT('',(3.715,0.228871672020412,-2.25332419416845)); -#49422=CARTESIAN_POINT('',(3.485,0.228871672020412,-2.25332419416845)); -#49423=CARTESIAN_POINT('',(3.715,0.0874050265710324,-2.335)); -#49424=CARTESIAN_POINT('',(3.485,0.0874050265710324,-2.335)); -#49425=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49426=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49427=CARTESIAN_POINT('',(2.915,0.228871672020412,-2.25332419416845)); -#49428=CARTESIAN_POINT('',(2.685,0.228871672020412,-2.25332419416845)); -#49429=CARTESIAN_POINT('',(2.915,0.0874050265710324,-2.335)); -#49430=CARTESIAN_POINT('',(2.685,0.0874050265710324,-2.335)); -#49431=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49432=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49433=CARTESIAN_POINT('',(2.115,0.228871672020412,-2.25332419416845)); -#49434=CARTESIAN_POINT('',(1.885,0.228871672020412,-2.25332419416845)); -#49435=CARTESIAN_POINT('',(2.115,0.0874050265710324,-2.335)); -#49436=CARTESIAN_POINT('',(1.885,0.0874050265710324,-2.335)); -#49437=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49438=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49439=CARTESIAN_POINT('',(1.315,0.228871672020412,-2.25332419416845)); -#49440=CARTESIAN_POINT('',(1.085,0.228871672020412,-2.25332419416845)); -#49441=CARTESIAN_POINT('',(1.315,0.0874050265710324,-2.335)); -#49442=CARTESIAN_POINT('',(1.085,0.0874050265710324,-2.335)); -#49443=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49444=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49445=CARTESIAN_POINT('',(0.515,0.228871672020412,-2.25332419416845)); -#49446=CARTESIAN_POINT('',(0.284999999999999,0.228871672020412,-2.25332419416845)); -#49447=CARTESIAN_POINT('',(0.515,0.0874050265710324,-2.335)); -#49448=CARTESIAN_POINT('',(0.284999999999999,0.0874050265710324,-2.335)); -#49449=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49450=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49451=CARTESIAN_POINT('',(-0.285000000000001,0.228871672020412,-2.25332419416845)); -#49452=CARTESIAN_POINT('',(-0.515000000000002,0.228871672020412,-2.25332419416845)); -#49453=CARTESIAN_POINT('',(-0.285000000000001,0.0874050265710324,-2.335)); -#49454=CARTESIAN_POINT('',(-0.515000000000002,0.0874050265710324,-2.335)); -#49455=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49456=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49457=CARTESIAN_POINT('',(-1.085,0.228871672020412,-2.25332419416845)); -#49458=CARTESIAN_POINT('',(-1.315,0.228871672020412,-2.25332419416845)); -#49459=CARTESIAN_POINT('',(-1.085,0.0874050265710324,-2.335)); -#49460=CARTESIAN_POINT('',(-1.315,0.0874050265710324,-2.335)); -#49461=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49462=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49463=CARTESIAN_POINT('',(-1.885,0.228871672020412,-2.25332419416845)); -#49464=CARTESIAN_POINT('',(-2.115,0.228871672020412,-2.25332419416845)); -#49465=CARTESIAN_POINT('',(-1.885,0.0874050265710324,-2.335)); -#49466=CARTESIAN_POINT('',(-2.115,0.0874050265710324,-2.335)); -#49467=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49468=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49469=CARTESIAN_POINT('',(-2.685,0.228871672020412,-2.25332419416845)); -#49470=CARTESIAN_POINT('',(-2.915,0.228871672020412,-2.25332419416845)); -#49471=CARTESIAN_POINT('',(-2.685,0.0874050265710324,-2.335)); -#49472=CARTESIAN_POINT('',(-2.915,0.0874050265710324,-2.335)); -#49473=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49474=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49475=CARTESIAN_POINT('',(-3.485,0.228871672020412,-2.25332419416845)); -#49476=CARTESIAN_POINT('',(-3.715,0.228871672020412,-2.25332419416845)); -#49477=CARTESIAN_POINT('',(-3.485,0.0874050265710324,-2.335)); -#49478=CARTESIAN_POINT('',(-3.715,0.0874050265710324,-2.335)); -#49479=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49480=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49481=CARTESIAN_POINT('',(-4.285,0.228871672020412,-2.25332419416845)); -#49482=CARTESIAN_POINT('',(-4.515,0.228871672020412,-2.25332419416845)); -#49483=CARTESIAN_POINT('',(-4.285,0.0874050265710324,-2.335)); -#49484=CARTESIAN_POINT('',(-4.515,0.0874050265710324,-2.335)); -#49485=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49486=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49487=CARTESIAN_POINT('',(-5.085,0.228871672020412,-2.25332419416845)); -#49488=CARTESIAN_POINT('',(-5.315,0.228871672020412,-2.25332419416845)); -#49489=CARTESIAN_POINT('',(-5.085,0.0874050265710324,-2.335)); -#49490=CARTESIAN_POINT('',(-5.315,0.0874050265710324,-2.335)); -#49491=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49492=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49493=CARTESIAN_POINT('',(-5.885,0.228871672020412,-2.25332419416845)); -#49494=CARTESIAN_POINT('',(-6.115,0.228871672020412,-2.25332419416845)); -#49495=CARTESIAN_POINT('',(-5.885,0.0874050265710324,-2.335)); -#49496=CARTESIAN_POINT('',(-6.115,0.0874050265710324,-2.335)); -#49497=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49498=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49499=CARTESIAN_POINT('',(-6.685,0.228871672020412,-2.25332419416845)); -#49500=CARTESIAN_POINT('',(-6.915,0.228871672020412,-2.25332419416845)); -#49501=CARTESIAN_POINT('',(-6.685,0.0874050265710324,-2.335)); -#49502=CARTESIAN_POINT('',(-6.915,0.0874050265710324,-2.335)); -#49503=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49504=CARTESIAN_POINT('',(7.715,0.664999999999999,-2.0088)); -#49505=CARTESIAN_POINT('',(7.485,0.664999999999999,-2.0088)); -#49506=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49507=CARTESIAN_POINT('',(6.915,0.664999999999999,-2.0088)); -#49508=CARTESIAN_POINT('',(6.685,0.664999999999999,-2.0088)); -#49509=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49510=CARTESIAN_POINT('',(6.115,0.664999999999999,-2.0088)); -#49511=CARTESIAN_POINT('',(5.885,0.664999999999999,-2.0088)); -#49512=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49513=CARTESIAN_POINT('',(5.315,0.664999999999999,-2.0088)); -#49514=CARTESIAN_POINT('',(5.085,0.664999999999999,-2.0088)); -#49515=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49516=CARTESIAN_POINT('',(4.515,0.664999999999999,-2.0088)); -#49517=CARTESIAN_POINT('',(4.285,0.664999999999999,-2.0088)); -#49518=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49519=CARTESIAN_POINT('',(3.715,0.664999999999999,-2.0088)); -#49520=CARTESIAN_POINT('',(3.485,0.664999999999999,-2.0088)); -#49521=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49522=CARTESIAN_POINT('',(2.915,0.664999999999999,-2.0088)); -#49523=CARTESIAN_POINT('',(2.685,0.664999999999999,-2.0088)); -#49524=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49525=CARTESIAN_POINT('',(2.115,0.664999999999999,-2.0088)); -#49526=CARTESIAN_POINT('',(1.885,0.664999999999999,-2.0088)); -#49527=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49528=CARTESIAN_POINT('',(1.315,0.664999999999999,-2.0088)); -#49529=CARTESIAN_POINT('',(1.085,0.664999999999999,-2.0088)); -#49530=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49531=CARTESIAN_POINT('',(0.515,0.664999999999999,-2.0088)); -#49532=CARTESIAN_POINT('',(0.284999999999999,0.664999999999999,-2.0088)); -#49533=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49534=CARTESIAN_POINT('',(-0.285000000000001,0.664999999999999,-2.0088)); -#49535=CARTESIAN_POINT('',(-0.515000000000002,0.664999999999999,-2.0088)); -#49536=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49537=CARTESIAN_POINT('',(-1.085,0.664999999999999,-2.0088)); -#49538=CARTESIAN_POINT('',(-1.315,0.664999999999999,-2.0088)); -#49539=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49540=CARTESIAN_POINT('',(-1.885,0.664999999999999,-2.0088)); -#49541=CARTESIAN_POINT('',(-2.115,0.664999999999999,-2.0088)); -#49542=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49543=CARTESIAN_POINT('',(-2.685,0.664999999999999,-2.0088)); -#49544=CARTESIAN_POINT('',(-2.915,0.664999999999999,-2.0088)); -#49545=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49546=CARTESIAN_POINT('',(-3.485,0.664999999999999,-2.0088)); -#49547=CARTESIAN_POINT('',(-3.715,0.664999999999999,-2.0088)); -#49548=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49549=CARTESIAN_POINT('',(-4.285,0.664999999999999,-2.0088)); -#49550=CARTESIAN_POINT('',(-4.515,0.664999999999999,-2.0088)); -#49551=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49552=CARTESIAN_POINT('',(-5.085,0.664999999999999,-2.0088)); -#49553=CARTESIAN_POINT('',(-5.315,0.664999999999999,-2.0088)); -#49554=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49555=CARTESIAN_POINT('',(-5.885,0.664999999999999,-2.0088)); -#49556=CARTESIAN_POINT('',(-6.115,0.664999999999999,-2.0088)); -#49557=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49558=CARTESIAN_POINT('',(-6.685,0.664999999999999,-2.0088)); -#49559=CARTESIAN_POINT('',(-6.915,0.664999999999999,-2.0088)); -#49560=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49561=CARTESIAN_POINT('',(7.715,0.664999999999999,2.0088)); -#49562=CARTESIAN_POINT('',(7.485,0.664999999999999,2.0088)); -#49563=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49564=CARTESIAN_POINT('',(6.915,0.664999999999999,2.0088)); -#49565=CARTESIAN_POINT('',(6.685,0.664999999999999,2.0088)); -#49566=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49567=CARTESIAN_POINT('',(6.115,0.664999999999999,2.0088)); -#49568=CARTESIAN_POINT('',(5.885,0.664999999999999,2.0088)); -#49569=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49570=CARTESIAN_POINT('',(5.315,0.664999999999999,2.0088)); -#49571=CARTESIAN_POINT('',(5.085,0.664999999999999,2.0088)); -#49572=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49573=CARTESIAN_POINT('',(4.515,0.664999999999999,2.0088)); -#49574=CARTESIAN_POINT('',(4.285,0.664999999999999,2.0088)); -#49575=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49576=CARTESIAN_POINT('',(3.715,0.664999999999999,2.0088)); -#49577=CARTESIAN_POINT('',(3.485,0.664999999999999,2.0088)); -#49578=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49579=CARTESIAN_POINT('',(2.915,0.664999999999999,2.0088)); -#49580=CARTESIAN_POINT('',(2.685,0.664999999999999,2.0088)); -#49581=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49582=CARTESIAN_POINT('',(2.115,0.664999999999999,2.0088)); -#49583=CARTESIAN_POINT('',(1.885,0.664999999999999,2.0088)); -#49584=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49585=CARTESIAN_POINT('',(1.315,0.664999999999999,2.0088)); -#49586=CARTESIAN_POINT('',(1.085,0.664999999999999,2.0088)); -#49587=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49588=CARTESIAN_POINT('',(0.515,0.664999999999999,2.0088)); -#49589=CARTESIAN_POINT('',(0.284999999999999,0.664999999999999,2.0088)); -#49590=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49591=CARTESIAN_POINT('',(-0.285000000000001,0.664999999999999,2.0088)); -#49592=CARTESIAN_POINT('',(-0.515000000000002,0.664999999999999,2.0088)); -#49593=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49594=CARTESIAN_POINT('',(-1.085,0.664999999999999,2.0088)); -#49595=CARTESIAN_POINT('',(-1.315,0.664999999999999,2.0088)); -#49596=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49597=CARTESIAN_POINT('',(-1.885,0.664999999999999,2.0088)); -#49598=CARTESIAN_POINT('',(-2.115,0.664999999999999,2.0088)); -#49599=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49600=CARTESIAN_POINT('',(-2.685,0.664999999999999,2.0088)); -#49601=CARTESIAN_POINT('',(-2.915,0.664999999999999,2.0088)); -#49602=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49603=CARTESIAN_POINT('',(-3.485,0.664999999999999,2.0088)); -#49604=CARTESIAN_POINT('',(-3.715,0.664999999999999,2.0088)); -#49605=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49606=CARTESIAN_POINT('',(-4.285,0.664999999999999,2.0088)); -#49607=CARTESIAN_POINT('',(-4.515,0.664999999999999,2.0088)); -#49608=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49609=CARTESIAN_POINT('',(-5.085,0.664999999999999,2.0088)); -#49610=CARTESIAN_POINT('',(-5.315,0.664999999999999,2.0088)); -#49611=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49612=CARTESIAN_POINT('',(-5.885,0.664999999999999,2.0088)); -#49613=CARTESIAN_POINT('',(-6.115,0.664999999999999,2.0088)); -#49614=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49615=CARTESIAN_POINT('',(-6.685,0.664999999999999,2.0088)); -#49616=CARTESIAN_POINT('',(-6.915,0.664999999999999,2.0088)); -#49617=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49618=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); -#49619=CARTESIAN_POINT('',(-7.485,0.0874050265710325,2.335)); -#49620=CARTESIAN_POINT('',(-7.715,0.0874050265710325,2.335)); -#49621=CARTESIAN_POINT('',(-7.485,0.228871672020412,2.25332419416845)); -#49622=CARTESIAN_POINT('',(-7.485,0.228871672020412,2.25332419416845)); -#49623=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); -#49624=CARTESIAN_POINT('',(-7.715,0.228871672020412,2.25332419416845)); -#49625=CARTESIAN_POINT('',(-7.715,0.228871672020412,2.25332419416845)); -#49626=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#49627=CARTESIAN_POINT('',(-7.715,0.6524,2.0088)); -#49628=CARTESIAN_POINT('',(-7.485,0.6524,2.0088)); -#49629=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); -#49630=CARTESIAN_POINT('',(-7.715,0.6524,-2.0088)); -#49631=CARTESIAN_POINT('',(-7.715,0.0874050265710326,-2.335)); -#49632=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); -#49633=CARTESIAN_POINT('',(-7.485,0.0874050265710326,-2.335)); -#49634=CARTESIAN_POINT('',(-7.485,0.6524,-2.0088)); -#49635=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); -#49636=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); -#49637=CARTESIAN_POINT('',(-7.485,0.228871672020412,-2.25332419416845)); -#49638=CARTESIAN_POINT('',(-7.715,0.228871672020412,-2.25332419416845)); -#49639=CARTESIAN_POINT('',(-7.485,0.0874050265710324,-2.335)); -#49640=CARTESIAN_POINT('',(-7.715,0.0874050265710324,-2.335)); -#49641=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); -#49642=CARTESIAN_POINT('',(-7.485,0.664999999999999,-2.0088)); -#49643=CARTESIAN_POINT('',(-7.715,0.664999999999999,-2.0088)); -#49644=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); -#49645=CARTESIAN_POINT('',(-7.485,0.664999999999999,2.0088)); -#49646=CARTESIAN_POINT('',(-7.715,0.664999999999999,2.0088)); -#49647=CARTESIAN_POINT('',(-7.89,0.5,4.)); -#49648=CARTESIAN_POINT('',(-7.715,0.5,4.)); -#49649=CARTESIAN_POINT('',(-7.715,0.5,4.)); -#49650=CARTESIAN_POINT('',(-7.89,0.5,4.)); -#49651=CARTESIAN_POINT('',(-7.715,0.5,4.)); -#49652=CARTESIAN_POINT('',(-7.715,0.5,4.)); -#49653=CARTESIAN_POINT('',(7.715,0.5,4.)); -#49654=CARTESIAN_POINT('',(7.715,0.5,4.)); -#49655=CARTESIAN_POINT('',(7.715,0.,4.)); -#49656=CARTESIAN_POINT('',(7.715,0.5,4.)); -#49657=CARTESIAN_POINT('',(7.715,0.5,4.)); -#49658=CARTESIAN_POINT('',(7.715,0.,4.)); -#49659=CARTESIAN_POINT('',(-7.485,0.,4.)); -#49660=CARTESIAN_POINT('',(-7.485,0.5,4.)); -#49661=CARTESIAN_POINT('',(-7.485,0.5,4.)); -#49662=CARTESIAN_POINT('',(-6.915,0.5,4.)); -#49663=CARTESIAN_POINT('',(-6.915,0.5,4.)); -#49664=CARTESIAN_POINT('',(-7.09,0.5,4.)); -#49665=CARTESIAN_POINT('',(-6.685,0.,4.)); -#49666=CARTESIAN_POINT('',(-6.685,0.5,4.)); -#49667=CARTESIAN_POINT('',(-6.685,0.5,4.)); -#49668=CARTESIAN_POINT('',(-6.115,0.5,4.)); -#49669=CARTESIAN_POINT('',(-6.115,0.5,4.)); -#49670=CARTESIAN_POINT('',(-6.29,0.5,4.)); -#49671=CARTESIAN_POINT('',(-5.885,0.,4.)); -#49672=CARTESIAN_POINT('',(-5.885,0.5,4.)); -#49673=CARTESIAN_POINT('',(-5.885,0.5,4.)); -#49674=CARTESIAN_POINT('',(-5.315,0.5,4.)); -#49675=CARTESIAN_POINT('',(-5.315,0.5,4.)); -#49676=CARTESIAN_POINT('',(-5.49,0.5,4.)); -#49677=CARTESIAN_POINT('',(-5.085,0.,4.)); -#49678=CARTESIAN_POINT('',(-5.085,0.5,4.)); -#49679=CARTESIAN_POINT('',(-5.085,0.5,4.)); -#49680=CARTESIAN_POINT('',(-4.515,0.5,4.)); -#49681=CARTESIAN_POINT('',(-4.515,0.5,4.)); -#49682=CARTESIAN_POINT('',(-4.69,0.5,4.)); -#49683=CARTESIAN_POINT('',(-4.285,0.,4.)); -#49684=CARTESIAN_POINT('',(-4.285,0.5,4.)); -#49685=CARTESIAN_POINT('',(-4.285,0.5,4.)); -#49686=CARTESIAN_POINT('',(-3.715,0.5,4.)); -#49687=CARTESIAN_POINT('',(-3.715,0.5,4.)); -#49688=CARTESIAN_POINT('',(-3.89,0.5,4.)); -#49689=CARTESIAN_POINT('',(-3.485,0.,4.)); -#49690=CARTESIAN_POINT('',(-3.485,0.5,4.)); -#49691=CARTESIAN_POINT('',(-3.485,0.5,4.)); -#49692=CARTESIAN_POINT('',(-2.915,0.5,4.)); -#49693=CARTESIAN_POINT('',(-2.915,0.5,4.)); -#49694=CARTESIAN_POINT('',(-3.09,0.5,4.)); -#49695=CARTESIAN_POINT('',(-2.685,0.,4.)); -#49696=CARTESIAN_POINT('',(-2.685,0.5,4.)); -#49697=CARTESIAN_POINT('',(-2.685,0.5,4.)); -#49698=CARTESIAN_POINT('',(-2.115,0.5,4.)); -#49699=CARTESIAN_POINT('',(-2.115,0.5,4.)); -#49700=CARTESIAN_POINT('',(-2.29,0.5,4.)); -#49701=CARTESIAN_POINT('',(-1.885,0.,4.)); -#49702=CARTESIAN_POINT('',(-1.885,0.5,4.)); -#49703=CARTESIAN_POINT('',(-1.885,0.5,4.)); -#49704=CARTESIAN_POINT('',(-1.315,0.5,4.)); -#49705=CARTESIAN_POINT('',(-1.315,0.5,4.)); -#49706=CARTESIAN_POINT('',(-1.49,0.5,4.)); -#49707=CARTESIAN_POINT('',(-1.085,0.,4.)); -#49708=CARTESIAN_POINT('',(-1.085,0.5,4.)); -#49709=CARTESIAN_POINT('',(-1.085,0.5,4.)); -#49710=CARTESIAN_POINT('',(-0.515000000000001,0.5,4.)); -#49711=CARTESIAN_POINT('',(-0.515000000000001,0.5,4.)); -#49712=CARTESIAN_POINT('',(-0.690000000000001,0.5,4.)); -#49713=CARTESIAN_POINT('',(-0.285,0.,4.)); -#49714=CARTESIAN_POINT('',(-0.285,0.5,4.)); -#49715=CARTESIAN_POINT('',(-0.285,0.5,4.)); -#49716=CARTESIAN_POINT('',(0.284999999999999,0.5,4.)); -#49717=CARTESIAN_POINT('',(0.284999999999999,0.5,4.)); -#49718=CARTESIAN_POINT('',(0.109999999999999,0.5,4.)); -#49719=CARTESIAN_POINT('',(0.515,0.,4.)); -#49720=CARTESIAN_POINT('',(0.515,0.5,4.)); -#49721=CARTESIAN_POINT('',(0.515,0.5,4.)); -#49722=CARTESIAN_POINT('',(1.085,0.5,4.)); -#49723=CARTESIAN_POINT('',(1.085,0.5,4.)); -#49724=CARTESIAN_POINT('',(0.909999999999999,0.5,4.)); -#49725=CARTESIAN_POINT('',(1.315,0.,4.)); -#49726=CARTESIAN_POINT('',(1.315,0.5,4.)); -#49727=CARTESIAN_POINT('',(1.315,0.5,4.)); -#49728=CARTESIAN_POINT('',(1.885,0.5,4.)); -#49729=CARTESIAN_POINT('',(1.885,0.5,4.)); -#49730=CARTESIAN_POINT('',(1.71,0.5,4.)); -#49731=CARTESIAN_POINT('',(2.115,0.,4.)); -#49732=CARTESIAN_POINT('',(2.115,0.5,4.)); -#49733=CARTESIAN_POINT('',(2.115,0.5,4.)); -#49734=CARTESIAN_POINT('',(2.685,0.5,4.)); -#49735=CARTESIAN_POINT('',(2.685,0.5,4.)); -#49736=CARTESIAN_POINT('',(2.51,0.5,4.)); -#49737=CARTESIAN_POINT('',(2.915,0.,4.)); -#49738=CARTESIAN_POINT('',(2.915,0.5,4.)); -#49739=CARTESIAN_POINT('',(2.915,0.5,4.)); -#49740=CARTESIAN_POINT('',(3.485,0.5,4.)); -#49741=CARTESIAN_POINT('',(3.485,0.5,4.)); -#49742=CARTESIAN_POINT('',(3.31,0.5,4.)); -#49743=CARTESIAN_POINT('',(3.715,0.,4.)); -#49744=CARTESIAN_POINT('',(3.715,0.5,4.)); -#49745=CARTESIAN_POINT('',(3.715,0.5,4.)); -#49746=CARTESIAN_POINT('',(4.285,0.5,4.)); -#49747=CARTESIAN_POINT('',(4.285,0.5,4.)); -#49748=CARTESIAN_POINT('',(4.11,0.5,4.)); -#49749=CARTESIAN_POINT('',(4.515,0.,4.)); -#49750=CARTESIAN_POINT('',(4.515,0.5,4.)); -#49751=CARTESIAN_POINT('',(4.515,0.5,4.)); -#49752=CARTESIAN_POINT('',(5.085,0.5,4.)); -#49753=CARTESIAN_POINT('',(5.085,0.5,4.)); -#49754=CARTESIAN_POINT('',(4.91,0.5,4.)); -#49755=CARTESIAN_POINT('',(5.315,0.,4.)); -#49756=CARTESIAN_POINT('',(5.315,0.5,4.)); -#49757=CARTESIAN_POINT('',(5.315,0.5,4.)); -#49758=CARTESIAN_POINT('',(5.885,0.5,4.)); -#49759=CARTESIAN_POINT('',(5.885,0.5,4.)); -#49760=CARTESIAN_POINT('',(5.71,0.5,4.)); -#49761=CARTESIAN_POINT('',(6.115,0.,4.)); -#49762=CARTESIAN_POINT('',(6.115,0.5,4.)); -#49763=CARTESIAN_POINT('',(6.115,0.5,4.)); -#49764=CARTESIAN_POINT('',(6.685,0.5,4.)); -#49765=CARTESIAN_POINT('',(6.685,0.5,4.)); -#49766=CARTESIAN_POINT('',(6.51,0.5,4.)); -#49767=CARTESIAN_POINT('',(6.915,0.,4.)); -#49768=CARTESIAN_POINT('',(6.915,0.5,4.)); -#49769=CARTESIAN_POINT('',(6.915,0.5,4.)); -#49770=CARTESIAN_POINT('',(7.485,0.5,4.)); -#49771=CARTESIAN_POINT('',(7.485,0.5,4.)); -#49772=CARTESIAN_POINT('',(7.31,0.5,4.)); -#49773=CARTESIAN_POINT('',(-7.485,0.,4.)); -#49774=CARTESIAN_POINT('',(-7.485,0.5,4.)); -#49775=CARTESIAN_POINT('',(-7.485,0.5,4.)); -#49776=CARTESIAN_POINT('',(-7.09,0.5,4.)); -#49777=CARTESIAN_POINT('',(-6.915,0.5,4.)); -#49778=CARTESIAN_POINT('',(-6.915,0.5,4.)); -#49779=CARTESIAN_POINT('',(-6.685,0.,4.)); -#49780=CARTESIAN_POINT('',(-6.685,0.5,4.)); -#49781=CARTESIAN_POINT('',(-6.685,0.5,4.)); -#49782=CARTESIAN_POINT('',(-6.29,0.5,4.)); -#49783=CARTESIAN_POINT('',(-6.115,0.5,4.)); -#49784=CARTESIAN_POINT('',(-6.115,0.5,4.)); -#49785=CARTESIAN_POINT('',(-5.885,0.,4.)); -#49786=CARTESIAN_POINT('',(-5.885,0.5,4.)); -#49787=CARTESIAN_POINT('',(-5.885,0.5,4.)); -#49788=CARTESIAN_POINT('',(-5.49,0.5,4.)); -#49789=CARTESIAN_POINT('',(-5.315,0.5,4.)); -#49790=CARTESIAN_POINT('',(-5.315,0.5,4.)); -#49791=CARTESIAN_POINT('',(-5.085,0.,4.)); -#49792=CARTESIAN_POINT('',(-5.085,0.5,4.)); -#49793=CARTESIAN_POINT('',(-5.085,0.5,4.)); -#49794=CARTESIAN_POINT('',(-4.69,0.5,4.)); -#49795=CARTESIAN_POINT('',(-4.515,0.5,4.)); -#49796=CARTESIAN_POINT('',(-4.515,0.5,4.)); -#49797=CARTESIAN_POINT('',(-4.285,0.,4.)); -#49798=CARTESIAN_POINT('',(-4.285,0.5,4.)); -#49799=CARTESIAN_POINT('',(-4.285,0.5,4.)); -#49800=CARTESIAN_POINT('',(-3.89,0.5,4.)); -#49801=CARTESIAN_POINT('',(-3.715,0.5,4.)); -#49802=CARTESIAN_POINT('',(-3.715,0.5,4.)); -#49803=CARTESIAN_POINT('',(-3.485,0.,4.)); -#49804=CARTESIAN_POINT('',(-3.485,0.5,4.)); -#49805=CARTESIAN_POINT('',(-3.485,0.5,4.)); -#49806=CARTESIAN_POINT('',(-3.09,0.5,4.)); -#49807=CARTESIAN_POINT('',(-2.915,0.5,4.)); -#49808=CARTESIAN_POINT('',(-2.915,0.5,4.)); -#49809=CARTESIAN_POINT('',(-2.685,0.,4.)); -#49810=CARTESIAN_POINT('',(-2.685,0.5,4.)); -#49811=CARTESIAN_POINT('',(-2.685,0.5,4.)); -#49812=CARTESIAN_POINT('',(-2.29,0.5,4.)); -#49813=CARTESIAN_POINT('',(-2.115,0.5,4.)); -#49814=CARTESIAN_POINT('',(-2.115,0.5,4.)); -#49815=CARTESIAN_POINT('',(-1.885,0.,4.)); -#49816=CARTESIAN_POINT('',(-1.885,0.5,4.)); -#49817=CARTESIAN_POINT('',(-1.885,0.5,4.)); -#49818=CARTESIAN_POINT('',(-1.49,0.5,4.)); -#49819=CARTESIAN_POINT('',(-1.315,0.5,4.)); -#49820=CARTESIAN_POINT('',(-1.315,0.5,4.)); -#49821=CARTESIAN_POINT('',(-1.085,0.,4.)); -#49822=CARTESIAN_POINT('',(-1.085,0.5,4.)); -#49823=CARTESIAN_POINT('',(-1.085,0.5,4.)); -#49824=CARTESIAN_POINT('',(-0.690000000000001,0.5,4.)); -#49825=CARTESIAN_POINT('',(-0.515000000000001,0.5,4.)); -#49826=CARTESIAN_POINT('',(-0.515000000000001,0.5,4.)); -#49827=CARTESIAN_POINT('',(-0.285,0.,4.)); -#49828=CARTESIAN_POINT('',(-0.285,0.5,4.)); -#49829=CARTESIAN_POINT('',(-0.285,0.5,4.)); -#49830=CARTESIAN_POINT('',(0.109999999999999,0.5,4.)); -#49831=CARTESIAN_POINT('',(0.284999999999999,0.5,4.)); -#49832=CARTESIAN_POINT('',(0.284999999999999,0.5,4.)); -#49833=CARTESIAN_POINT('',(0.515,0.,4.)); -#49834=CARTESIAN_POINT('',(0.515,0.5,4.)); -#49835=CARTESIAN_POINT('',(0.515,0.5,4.)); -#49836=CARTESIAN_POINT('',(0.909999999999999,0.5,4.)); -#49837=CARTESIAN_POINT('',(1.085,0.5,4.)); -#49838=CARTESIAN_POINT('',(1.085,0.5,4.)); -#49839=CARTESIAN_POINT('',(1.315,0.,4.)); -#49840=CARTESIAN_POINT('',(1.315,0.5,4.)); -#49841=CARTESIAN_POINT('',(1.315,0.5,4.)); -#49842=CARTESIAN_POINT('',(1.71,0.5,4.)); -#49843=CARTESIAN_POINT('',(1.885,0.5,4.)); -#49844=CARTESIAN_POINT('',(1.885,0.5,4.)); -#49845=CARTESIAN_POINT('',(2.115,0.,4.)); -#49846=CARTESIAN_POINT('',(2.115,0.5,4.)); -#49847=CARTESIAN_POINT('',(2.115,0.5,4.)); -#49848=CARTESIAN_POINT('',(2.51,0.5,4.)); -#49849=CARTESIAN_POINT('',(2.685,0.5,4.)); -#49850=CARTESIAN_POINT('',(2.685,0.5,4.)); -#49851=CARTESIAN_POINT('',(2.915,0.,4.)); -#49852=CARTESIAN_POINT('',(2.915,0.5,4.)); -#49853=CARTESIAN_POINT('',(2.915,0.5,4.)); -#49854=CARTESIAN_POINT('',(3.31,0.5,4.)); -#49855=CARTESIAN_POINT('',(3.485,0.5,4.)); -#49856=CARTESIAN_POINT('',(3.485,0.5,4.)); -#49857=CARTESIAN_POINT('',(3.715,0.,4.)); -#49858=CARTESIAN_POINT('',(3.715,0.5,4.)); -#49859=CARTESIAN_POINT('',(3.715,0.5,4.)); -#49860=CARTESIAN_POINT('',(4.11,0.5,4.)); -#49861=CARTESIAN_POINT('',(4.285,0.5,4.)); -#49862=CARTESIAN_POINT('',(4.285,0.5,4.)); -#49863=CARTESIAN_POINT('',(4.515,0.,4.)); -#49864=CARTESIAN_POINT('',(4.515,0.5,4.)); -#49865=CARTESIAN_POINT('',(4.515,0.5,4.)); -#49866=CARTESIAN_POINT('',(4.91,0.5,4.)); -#49867=CARTESIAN_POINT('',(5.085,0.5,4.)); -#49868=CARTESIAN_POINT('',(5.085,0.5,4.)); -#49869=CARTESIAN_POINT('',(5.315,0.,4.)); -#49870=CARTESIAN_POINT('',(5.315,0.5,4.)); -#49871=CARTESIAN_POINT('',(5.315,0.5,4.)); -#49872=CARTESIAN_POINT('',(5.71,0.5,4.)); -#49873=CARTESIAN_POINT('',(5.885,0.5,4.)); -#49874=CARTESIAN_POINT('',(5.885,0.5,4.)); -#49875=CARTESIAN_POINT('',(6.115,0.,4.)); -#49876=CARTESIAN_POINT('',(6.115,0.5,4.)); -#49877=CARTESIAN_POINT('',(6.115,0.5,4.)); -#49878=CARTESIAN_POINT('',(6.51,0.5,4.)); -#49879=CARTESIAN_POINT('',(6.685,0.5,4.)); -#49880=CARTESIAN_POINT('',(6.685,0.5,4.)); -#49881=CARTESIAN_POINT('',(7.31,0.5,4.)); -#49882=CARTESIAN_POINT('',(7.485,0.5,4.)); -#49883=CARTESIAN_POINT('',(6.915,0.5,4.)); -#49884=CARTESIAN_POINT('',(6.915,0.5,4.)); -#49885=CARTESIAN_POINT('',(7.485,0.5,4.)); -#49886=CARTESIAN_POINT('',(6.915,0.,4.)); -#49887=CARTESIAN_POINT('',(0.,0.95,0.)); -#49888=CARTESIAN_POINT('',(0.,0.95,0.)); -#49889=CARTESIAN_POINT('',(0.,0.95,0.)); -#49890=CARTESIAN_POINT('',(0.,0.95,0.)); -#49891=CARTESIAN_POINT('',(0.,0.95,0.)); -#49892=CARTESIAN_POINT('',(0.,0.95,0.)); -#49893=CARTESIAN_POINT('',(0.,0.95,0.)); -#49894=CARTESIAN_POINT('',(0.,0.95,0.)); -#49895=CARTESIAN_POINT('',(0.,0.95,0.)); -#49896=CARTESIAN_POINT('',(0.,0.95,0.)); -#49897=CARTESIAN_POINT('',(0.,0.95,0.)); -#49898=CARTESIAN_POINT('',(0.,0.95,0.)); -#49899=CARTESIAN_POINT('',(0.,0.95,0.)); -#49900=CARTESIAN_POINT('',(0.,0.95,0.)); -#49901=CARTESIAN_POINT('',(0.,0.95,0.)); -#49902=CARTESIAN_POINT('',(0.,0.95,0.)); -#49903=CARTESIAN_POINT('',(0.,0.95,0.)); -#49904=CARTESIAN_POINT('',(0.,0.95,0.)); -#49905=CARTESIAN_POINT('',(0.,0.95,0.)); -#49906=CARTESIAN_POINT('',(0.,0.95,0.)); -#49907=CARTESIAN_POINT('',(0.,0.95,0.)); -#49908=CARTESIAN_POINT('',(0.,0.95,0.)); -#49909=CARTESIAN_POINT('',(0.,0.95,0.)); -#49910=CARTESIAN_POINT('',(0.,0.95,0.)); -#49911=CARTESIAN_POINT('',(0.,0.95,0.)); -#49912=CARTESIAN_POINT('',(0.,0.95,0.)); -#49913=CARTESIAN_POINT('',(0.,0.95,0.)); -#49914=CARTESIAN_POINT('',(0.,0.95,0.)); -#49915=CARTESIAN_POINT('',(0.,0.95,0.)); -#49916=CARTESIAN_POINT('',(0.,0.95,0.)); -#49917=CARTESIAN_POINT('',(0.,0.95,0.)); -#49918=CARTESIAN_POINT('',(0.,0.95,0.)); -#49919=CARTESIAN_POINT('',(0.,0.95,0.)); -#49920=CARTESIAN_POINT('',(0.,0.95,0.)); -#49921=CARTESIAN_POINT('',(0.,0.95,0.)); -#49922=CARTESIAN_POINT('',(0.,0.95,0.)); -#49923=CARTESIAN_POINT('',(0.,0.95,0.)); -#49924=CARTESIAN_POINT('',(0.,0.95,0.)); -#49925=CARTESIAN_POINT('',(0.,0.95,0.)); -#49926=CARTESIAN_POINT('',(0.,0.95,0.)); -#49927=CARTESIAN_POINT('',(9.89,1.,3.21)); -#49928=CARTESIAN_POINT('',(0.,-0.195,0.)); -#49929=CARTESIAN_POINT('',(7.89,0.377106686427072,-1.6)); -#49930=CARTESIAN_POINT('',(7.89,1.,-1.6)); -#49931=CARTESIAN_POINT('',(-8.,1.,-1.6)); -#49932=CARTESIAN_POINT('',(8.,1.,-1.6)); -#49933=CARTESIAN_POINT('',(-8.,1.05,-1.6)); -#49934=CARTESIAN_POINT('',(-8.,1.05,-1.6)); -#49935=CARTESIAN_POINT('',(8.,1.05,-1.6)); -#49936=CARTESIAN_POINT('',(-7.89,1.05,-1.6)); -#49937=CARTESIAN_POINT('',(-7.89,0.377106686427072,-1.6)); -#49938=CARTESIAN_POINT('',(-7.89,4.02098076211354,-1.6)); -#49939=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,-1.6)); -#49940=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,-1.6)); -#49941=CARTESIAN_POINT('',(-5.53212579117063,8.12637462505665,-1.6)); -#49942=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,-1.6)); -#49943=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,-1.6)); -#49944=CARTESIAN_POINT('',(-7.825,4.17643593539449,-1.6)); -#49945=CARTESIAN_POINT('',(-7.825,0.377106686427072,-1.6)); -#49946=CARTESIAN_POINT('',(-7.825,7.085,-1.6)); -#49947=CARTESIAN_POINT('',(-7.755,7.085,-1.6)); -#49948=CARTESIAN_POINT('',(-7.755,7.155,-1.6)); -#49949=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#49950=CARTESIAN_POINT('',(-7.445,7.155,-1.6)); -#49951=CARTESIAN_POINT('',(-7.445,7.085,-1.6)); -#49952=CARTESIAN_POINT('',(-7.375,7.085,-1.6)); -#49953=CARTESIAN_POINT('',(-7.375,0.377106686427072,-1.6)); -#49954=CARTESIAN_POINT('',(-7.375,4.17643593539449,-1.6)); -#49955=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,-1.6)); -#49956=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,-1.6)); -#49957=CARTESIAN_POINT('',(-1.92287420882915,-5.28835887956445,-1.6)); -#49958=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,-1.6)); -#49959=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,-1.6)); -#49960=CARTESIAN_POINT('',(-7.31,4.02098076211353,-1.6)); -#49961=CARTESIAN_POINT('',(-7.31,0.377106686427077,-1.6)); -#49962=CARTESIAN_POINT('',(-7.31,1.05,-1.6)); -#49963=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#49964=CARTESIAN_POINT('',(-7.09,1.05,-1.6)); -#49965=CARTESIAN_POINT('',(-7.09,0.377106686427072,-1.6)); -#49966=CARTESIAN_POINT('',(-7.09,4.02098076211353,-1.6)); -#49967=CARTESIAN_POINT('',(-7.01,4.02098076211353,-1.6)); -#49968=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,-1.6)); -#49969=CARTESIAN_POINT('',(-4.93212579117074,7.77996446354278,-1.6)); -#49970=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,-1.6)); -#49971=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,-1.6)); -#49972=CARTESIAN_POINT('',(-7.025,4.17643593539449,-1.6)); -#49973=CARTESIAN_POINT('',(-7.025,0.377106686427072,-1.6)); -#49974=CARTESIAN_POINT('',(-7.025,7.085,-1.6)); -#49975=CARTESIAN_POINT('',(-6.955,7.085,-1.6)); -#49976=CARTESIAN_POINT('',(-6.955,7.155,-1.6)); -#49977=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#49978=CARTESIAN_POINT('',(-6.645,7.155,-1.6)); -#49979=CARTESIAN_POINT('',(-6.645,7.085,-1.6)); -#49980=CARTESIAN_POINT('',(-6.575,7.085,-1.6)); -#49981=CARTESIAN_POINT('',(-6.575,0.377106686427072,-1.6)); -#49982=CARTESIAN_POINT('',(-6.575,4.17643593539449,-1.6)); -#49983=CARTESIAN_POINT('',(-6.495,4.17643593539449,-1.6)); -#49984=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,-1.6)); -#49985=CARTESIAN_POINT('',(-1.32287420882928,-4.94194871805064,-1.6)); -#49986=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,-1.6)); -#49987=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,-1.6)); -#49988=CARTESIAN_POINT('',(-6.51,4.02098076211353,-1.6)); -#49989=CARTESIAN_POINT('',(-6.51,0.377106686427072,-1.6)); -#49990=CARTESIAN_POINT('',(-6.51,1.05,-1.6)); -#49991=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#49992=CARTESIAN_POINT('',(-6.29,1.05,-1.6)); -#49993=CARTESIAN_POINT('',(-6.29,0.377106686427072,-1.6)); -#49994=CARTESIAN_POINT('',(-6.29,4.02098076211353,-1.6)); -#49995=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,-1.6)); -#49996=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,-1.6)); -#49997=CARTESIAN_POINT('',(-4.33212579117074,7.433554302029,-1.6)); -#49998=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,-1.6)); -#49999=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,-1.6)); -#50000=CARTESIAN_POINT('',(-6.225,4.17643593539449,-1.6)); -#50001=CARTESIAN_POINT('',(-6.225,0.377106686427072,-1.6)); -#50002=CARTESIAN_POINT('',(-6.225,7.085,-1.6)); -#50003=CARTESIAN_POINT('',(-6.155,7.085,-1.6)); -#50004=CARTESIAN_POINT('',(-6.155,7.155,-1.6)); -#50005=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50006=CARTESIAN_POINT('',(-5.845,7.155,-1.6)); -#50007=CARTESIAN_POINT('',(-5.845,7.085,-1.6)); -#50008=CARTESIAN_POINT('',(-5.775,7.085,-1.6)); -#50009=CARTESIAN_POINT('',(-5.775,0.377106686427072,-1.6)); -#50010=CARTESIAN_POINT('',(-5.775,4.17643593539449,-1.6)); -#50011=CARTESIAN_POINT('',(-5.695,4.17643593539449,-1.6)); -#50012=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,-1.6)); -#50013=CARTESIAN_POINT('',(-0.722874208829157,-4.59553855653689,-1.6)); -#50014=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,-1.6)); -#50015=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,-1.6)); -#50016=CARTESIAN_POINT('',(-5.71,4.02098076211353,-1.6)); -#50017=CARTESIAN_POINT('',(-5.71,0.377106686427072,-1.6)); -#50018=CARTESIAN_POINT('',(-5.71,1.05,-1.6)); -#50019=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50020=CARTESIAN_POINT('',(-5.49,1.05,-1.6)); -#50021=CARTESIAN_POINT('',(-5.49,0.377106686427072,-1.6)); -#50022=CARTESIAN_POINT('',(-5.49,4.02098076211353,-1.6)); -#50023=CARTESIAN_POINT('',(-5.41,4.02098076211353,-1.6)); -#50024=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,-1.6)); -#50025=CARTESIAN_POINT('',(-3.73212579117082,7.08714414051514,-1.6)); -#50026=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,-1.6)); -#50027=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,-1.6)); -#50028=CARTESIAN_POINT('',(-5.425,4.17643593539449,-1.6)); -#50029=CARTESIAN_POINT('',(-5.425,0.377106686427072,-1.6)); -#50030=CARTESIAN_POINT('',(-5.425,7.085,-1.6)); -#50031=CARTESIAN_POINT('',(-5.355,7.085,-1.6)); -#50032=CARTESIAN_POINT('',(-5.355,7.155,-1.6)); -#50033=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50034=CARTESIAN_POINT('',(-5.045,7.155,-1.6)); -#50035=CARTESIAN_POINT('',(-5.045,7.085,-1.6)); -#50036=CARTESIAN_POINT('',(-4.975,7.085,-1.6)); -#50037=CARTESIAN_POINT('',(-4.975,0.377106686427072,-1.6)); -#50038=CARTESIAN_POINT('',(-4.975,4.17643593539449,-1.6)); -#50039=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,-1.6)); -#50040=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,-1.6)); -#50041=CARTESIAN_POINT('',(-0.122874208829164,-4.24912839502312,-1.6)); -#50042=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,-1.6)); -#50043=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,-1.6)); -#50044=CARTESIAN_POINT('',(-4.91,4.02098076211353,-1.6)); -#50045=CARTESIAN_POINT('',(-4.91,0.377106686427072,-1.6)); -#50046=CARTESIAN_POINT('',(-4.91,1.05,-1.6)); -#50047=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50048=CARTESIAN_POINT('',(-4.69,1.05,-1.6)); -#50049=CARTESIAN_POINT('',(-4.69,0.377106686427072,-1.6)); -#50050=CARTESIAN_POINT('',(-4.69,4.02098076211353,-1.6)); -#50051=CARTESIAN_POINT('',(-4.61,4.02098076211353,-1.6)); -#50052=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,-1.6)); -#50053=CARTESIAN_POINT('',(-3.13212579117074,6.74073397900145,-1.6)); -#50054=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,-1.6)); -#50055=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,-1.6)); -#50056=CARTESIAN_POINT('',(-4.625,4.17643593539449,-1.6)); -#50057=CARTESIAN_POINT('',(-4.625,0.377106686427072,-1.6)); -#50058=CARTESIAN_POINT('',(-4.625,7.085,-1.6)); -#50059=CARTESIAN_POINT('',(-4.555,7.085,-1.6)); -#50060=CARTESIAN_POINT('',(-4.555,7.155,-1.6)); -#50061=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50062=CARTESIAN_POINT('',(-4.245,7.155,-1.6)); -#50063=CARTESIAN_POINT('',(-4.245,7.085,-1.6)); -#50064=CARTESIAN_POINT('',(-4.175,7.085,-1.6)); -#50065=CARTESIAN_POINT('',(-4.175,0.377106686427072,-1.6)); -#50066=CARTESIAN_POINT('',(-4.175,4.17643593539449,-1.6)); -#50067=CARTESIAN_POINT('',(-4.095,4.17643593539449,-1.6)); -#50068=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,-1.6)); -#50069=CARTESIAN_POINT('',(0.477125791170833,-3.90271823350934,-1.6)); -#50070=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,-1.6)); -#50071=CARTESIAN_POINT('',(-4.19,4.02098076211353,-1.6)); -#50072=CARTESIAN_POINT('',(-4.11,4.02098076211353,-1.6)); -#50073=CARTESIAN_POINT('',(-4.11,0.377106686427072,-1.6)); -#50074=CARTESIAN_POINT('',(-4.11,1.05,-1.6)); -#50075=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50076=CARTESIAN_POINT('',(-3.89,1.05,-1.6)); -#50077=CARTESIAN_POINT('',(-3.89,0.377106686427072,-1.6)); -#50078=CARTESIAN_POINT('',(-3.89,4.02098076211353,-1.6)); -#50079=CARTESIAN_POINT('',(-3.81,4.02098076211353,-1.6)); -#50080=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,-1.6)); -#50081=CARTESIAN_POINT('',(-2.53212579117078,6.39432381748763,-1.6)); -#50082=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,-1.6)); -#50083=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,-1.6)); -#50084=CARTESIAN_POINT('',(-3.825,4.17643593539449,-1.6)); -#50085=CARTESIAN_POINT('',(-3.825,0.377106686427072,-1.6)); -#50086=CARTESIAN_POINT('',(-3.825,7.085,-1.6)); -#50087=CARTESIAN_POINT('',(-3.755,7.085,-1.6)); -#50088=CARTESIAN_POINT('',(-3.755,7.155,-1.6)); -#50089=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50090=CARTESIAN_POINT('',(-3.445,7.155,-1.6)); -#50091=CARTESIAN_POINT('',(-3.445,7.085,-1.6)); -#50092=CARTESIAN_POINT('',(-3.375,7.085,-1.6)); -#50093=CARTESIAN_POINT('',(-3.375,0.377106686427072,-1.6)); -#50094=CARTESIAN_POINT('',(-3.375,4.17643593539449,-1.6)); -#50095=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,-1.6)); -#50096=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,-1.6)); -#50097=CARTESIAN_POINT('',(1.07712579117083,-3.55630807199556,-1.6)); -#50098=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,-1.6)); -#50099=CARTESIAN_POINT('',(-3.39,4.02098076211353,-1.6)); -#50100=CARTESIAN_POINT('',(-3.31,4.02098076211353,-1.6)); -#50101=CARTESIAN_POINT('',(-3.31,0.377106686427072,-1.6)); -#50102=CARTESIAN_POINT('',(-3.31,1.05,-1.6)); -#50103=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50104=CARTESIAN_POINT('',(-3.09,1.05,-1.6)); -#50105=CARTESIAN_POINT('',(-3.09,0.377106686427072,-1.6)); -#50106=CARTESIAN_POINT('',(-3.09,4.02098076211353,-1.6)); -#50107=CARTESIAN_POINT('',(-3.01,4.02098076211353,-1.6)); -#50108=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,-1.6)); -#50109=CARTESIAN_POINT('',(-1.93212579117078,6.04791365597386,-1.6)); -#50110=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,-1.6)); -#50111=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,-1.6)); -#50112=CARTESIAN_POINT('',(-3.025,4.17643593539449,-1.6)); -#50113=CARTESIAN_POINT('',(-3.025,0.377106686427072,-1.6)); -#50114=CARTESIAN_POINT('',(-3.025,7.085,-1.6)); -#50115=CARTESIAN_POINT('',(-2.955,7.085,-1.6)); -#50116=CARTESIAN_POINT('',(-2.955,7.155,-1.6)); -#50117=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50118=CARTESIAN_POINT('',(-2.645,7.155,-1.6)); -#50119=CARTESIAN_POINT('',(-2.645,7.085,-1.6)); -#50120=CARTESIAN_POINT('',(-2.575,7.085,-1.6)); -#50121=CARTESIAN_POINT('',(-2.575,0.377106686427072,-1.6)); -#50122=CARTESIAN_POINT('',(-2.575,4.17643593539449,-1.6)); -#50123=CARTESIAN_POINT('',(-2.495,4.17643593539449,-1.6)); -#50124=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,-1.6)); -#50125=CARTESIAN_POINT('',(1.67712579117083,-3.20989791048178,-1.6)); -#50126=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,-1.6)); -#50127=CARTESIAN_POINT('',(-2.59,4.02098076211353,-1.6)); -#50128=CARTESIAN_POINT('',(-2.51,4.02098076211353,-1.6)); -#50129=CARTESIAN_POINT('',(-2.51,0.377106686427072,-1.6)); -#50130=CARTESIAN_POINT('',(-2.51,1.05,-1.6)); -#50131=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50132=CARTESIAN_POINT('',(-2.29,1.05,-1.6)); -#50133=CARTESIAN_POINT('',(-2.29,0.377106686427072,-1.6)); -#50134=CARTESIAN_POINT('',(-2.29,4.02098076211353,-1.6)); -#50135=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,-1.6)); -#50136=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,-1.6)); -#50137=CARTESIAN_POINT('',(-1.33212579117075,5.70150349446012,-1.6)); -#50138=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,-1.6)); -#50139=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,-1.6)); -#50140=CARTESIAN_POINT('',(-2.225,4.17643593539449,-1.6)); -#50141=CARTESIAN_POINT('',(-2.225,0.377106686427072,-1.6)); -#50142=CARTESIAN_POINT('',(-2.225,7.085,-1.6)); -#50143=CARTESIAN_POINT('',(-2.155,7.085,-1.6)); -#50144=CARTESIAN_POINT('',(-2.155,7.155,-1.6)); -#50145=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50146=CARTESIAN_POINT('',(-1.845,7.155,-1.6)); -#50147=CARTESIAN_POINT('',(-1.845,7.085,-1.6)); -#50148=CARTESIAN_POINT('',(-1.775,7.085,-1.6)); -#50149=CARTESIAN_POINT('',(-1.775,0.377106686427072,-1.6)); -#50150=CARTESIAN_POINT('',(-1.775,4.17643593539449,-1.6)); -#50151=CARTESIAN_POINT('',(-1.695,4.17643593539449,-1.6)); -#50152=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,-1.6)); -#50153=CARTESIAN_POINT('',(2.2771257911708,-2.863487748968,-1.6)); -#50154=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,-1.6)); -#50155=CARTESIAN_POINT('',(-1.79,4.02098076211353,-1.6)); -#50156=CARTESIAN_POINT('',(-1.71,4.02098076211353,-1.6)); -#50157=CARTESIAN_POINT('',(-1.71,0.377106686427072,-1.6)); -#50158=CARTESIAN_POINT('',(-1.71,1.05,-1.6)); -#50159=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50160=CARTESIAN_POINT('',(-1.49,1.05,-1.6)); -#50161=CARTESIAN_POINT('',(-1.49,0.377106686427072,-1.6)); -#50162=CARTESIAN_POINT('',(-1.49,4.02098076211353,-1.6)); -#50163=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,-1.6)); -#50164=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,-1.6)); -#50165=CARTESIAN_POINT('',(-0.732125791170764,5.35509333294633,-1.6)); -#50166=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,-1.6)); -#50167=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,-1.6)); -#50168=CARTESIAN_POINT('',(-1.425,4.17643593539449,-1.6)); -#50169=CARTESIAN_POINT('',(-1.425,0.377106686427072,-1.6)); -#50170=CARTESIAN_POINT('',(-1.425,7.085,-1.6)); -#50171=CARTESIAN_POINT('',(-1.355,7.085,-1.6)); -#50172=CARTESIAN_POINT('',(-1.355,7.155,-1.6)); -#50173=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50174=CARTESIAN_POINT('',(-1.045,7.155,-1.6)); -#50175=CARTESIAN_POINT('',(-1.045,7.085,-1.6)); -#50176=CARTESIAN_POINT('',(-0.975000000000001,7.085,-1.6)); -#50177=CARTESIAN_POINT('',(-0.975000000000002,0.377106686427072,-1.6)); -#50178=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,-1.6)); -#50179=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,-1.6)); -#50180=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,-1.6)); -#50181=CARTESIAN_POINT('',(2.8771257911708,-2.51707758745422,-1.6)); -#50182=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,-1.6)); -#50183=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,-1.6)); -#50184=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,-1.6)); -#50185=CARTESIAN_POINT('',(-0.910000000000001,0.377106686427072,-1.6)); -#50186=CARTESIAN_POINT('',(-0.910000000000001,1.05,-1.6)); -#50187=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50188=CARTESIAN_POINT('',(-0.690000000000001,1.05,-1.6)); -#50189=CARTESIAN_POINT('',(-0.690000000000001,0.377106686427072,-1.6)); -#50190=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,-1.6)); -#50191=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,-1.6)); -#50192=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,-1.6)); -#50193=CARTESIAN_POINT('',(-0.132125791170759,5.00868317143256,-1.6)); -#50194=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,-1.6)); -#50195=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,-1.6)); -#50196=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,-1.6)); -#50197=CARTESIAN_POINT('',(-0.625000000000001,0.377106686427072,-1.6)); -#50198=CARTESIAN_POINT('',(-0.625000000000001,7.085,-1.6)); -#50199=CARTESIAN_POINT('',(-0.555,7.085,-1.6)); -#50200=CARTESIAN_POINT('',(-0.555000000000001,7.155,-1.6)); -#50201=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50202=CARTESIAN_POINT('',(-0.245000000000001,7.155,-1.6)); -#50203=CARTESIAN_POINT('',(-0.245000000000001,7.085,-1.6)); -#50204=CARTESIAN_POINT('',(-0.175000000000001,7.085,-1.6)); -#50205=CARTESIAN_POINT('',(-0.175000000000002,0.377106686427072,-1.6)); -#50206=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,-1.6)); -#50207=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,-1.6)); -#50208=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,-1.6)); -#50209=CARTESIAN_POINT('',(3.47712579117079,-2.17066742594045,-1.6)); -#50210=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,-1.6)); -#50211=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,-1.6)); -#50212=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,-1.6)); -#50213=CARTESIAN_POINT('',(-0.110000000000001,0.377106686427072,-1.6)); -#50214=CARTESIAN_POINT('',(-0.110000000000001,1.05,-1.6)); -#50215=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50216=CARTESIAN_POINT('',(0.109999999999999,1.05,-1.6)); -#50217=CARTESIAN_POINT('',(0.109999999999999,0.377106686427072,-1.6)); -#50218=CARTESIAN_POINT('',(0.11,4.02098076211353,-1.6)); -#50219=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,-1.6)); -#50220=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,-1.6)); -#50221=CARTESIAN_POINT('',(0.467874208829243,4.66227300991879,-1.6)); -#50222=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,-1.6)); -#50223=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,-1.6)); -#50224=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,-1.6)); -#50225=CARTESIAN_POINT('',(0.174999999999999,0.377106686427072,-1.6)); -#50226=CARTESIAN_POINT('',(0.174999999999999,7.085,-1.6)); -#50227=CARTESIAN_POINT('',(0.245,7.085,-1.6)); -#50228=CARTESIAN_POINT('',(0.244999999999999,7.155,-1.6)); -#50229=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50230=CARTESIAN_POINT('',(0.554999999999999,7.155,-1.6)); -#50231=CARTESIAN_POINT('',(0.554999999999999,7.085,-1.6)); -#50232=CARTESIAN_POINT('',(0.624999999999999,7.085,-1.6)); -#50233=CARTESIAN_POINT('',(0.624999999999999,0.377106686427072,-1.6)); -#50234=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,-1.6)); -#50235=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,-1.6)); -#50236=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,-1.6)); -#50237=CARTESIAN_POINT('',(4.07712579117079,-1.82425726442667,-1.6)); -#50238=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,-1.6)); -#50239=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,-1.6)); -#50240=CARTESIAN_POINT('',(0.69,4.02098076211353,-1.6)); -#50241=CARTESIAN_POINT('',(0.69,0.377106686427072,-1.6)); -#50242=CARTESIAN_POINT('',(0.69,1.05,-1.6)); -#50243=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50244=CARTESIAN_POINT('',(0.909999999999999,1.05,-1.6)); -#50245=CARTESIAN_POINT('',(0.909999999999999,0.377106686427072,-1.6)); -#50246=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,-1.6)); -#50247=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,-1.6)); -#50248=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,-1.6)); -#50249=CARTESIAN_POINT('',(1.06787420882924,4.31586284840501,-1.6)); -#50250=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,-1.6)); -#50251=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,-1.6)); -#50252=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,-1.6)); -#50253=CARTESIAN_POINT('',(0.974999999999998,0.377106686427072,-1.6)); -#50254=CARTESIAN_POINT('',(0.974999999999998,7.085,-1.6)); -#50255=CARTESIAN_POINT('',(1.045,7.085,-1.6)); -#50256=CARTESIAN_POINT('',(1.045,7.155,-1.6)); -#50257=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50258=CARTESIAN_POINT('',(1.355,7.155,-1.6)); -#50259=CARTESIAN_POINT('',(1.355,7.085,-1.6)); -#50260=CARTESIAN_POINT('',(1.425,7.085,-1.6)); -#50261=CARTESIAN_POINT('',(1.425,0.377106686427072,-1.6)); -#50262=CARTESIAN_POINT('',(1.425,4.17643593539449,-1.6)); -#50263=CARTESIAN_POINT('',(1.505,4.17643593539449,-1.6)); -#50264=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,-1.6)); -#50265=CARTESIAN_POINT('',(4.67712579117079,-1.47784710291289,-1.6)); -#50266=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,-1.6)); -#50267=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,-1.6)); -#50268=CARTESIAN_POINT('',(1.49,4.02098076211353,-1.6)); -#50269=CARTESIAN_POINT('',(1.49,0.377106686427072,-1.6)); -#50270=CARTESIAN_POINT('',(1.49,1.05,-1.6)); -#50271=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50272=CARTESIAN_POINT('',(1.71,1.05,-1.6)); -#50273=CARTESIAN_POINT('',(1.71,0.377106686427072,-1.6)); -#50274=CARTESIAN_POINT('',(1.71,4.02098076211353,-1.6)); -#50275=CARTESIAN_POINT('',(1.79,4.02098076211353,-1.6)); -#50276=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,-1.6)); -#50277=CARTESIAN_POINT('',(1.66787420882924,3.96945268689123,-1.6)); -#50278=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,-1.6)); -#50279=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,-1.6)); -#50280=CARTESIAN_POINT('',(1.775,4.17643593539449,-1.6)); -#50281=CARTESIAN_POINT('',(1.775,0.377106686427072,-1.6)); -#50282=CARTESIAN_POINT('',(1.775,7.085,-1.6)); -#50283=CARTESIAN_POINT('',(1.845,7.085,-1.6)); -#50284=CARTESIAN_POINT('',(1.845,7.155,-1.6)); -#50285=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50286=CARTESIAN_POINT('',(2.155,7.155,-1.6)); -#50287=CARTESIAN_POINT('',(2.155,7.085,-1.6)); -#50288=CARTESIAN_POINT('',(2.225,7.085,-1.6)); -#50289=CARTESIAN_POINT('',(2.225,0.377106686427072,-1.6)); -#50290=CARTESIAN_POINT('',(2.225,4.17643593539449,-1.6)); -#50291=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,-1.6)); -#50292=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,-1.6)); -#50293=CARTESIAN_POINT('',(5.2771257911708,-1.13143694139912,-1.6)); -#50294=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,-1.6)); -#50295=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,-1.6)); -#50296=CARTESIAN_POINT('',(2.29,4.02098076211353,-1.6)); -#50297=CARTESIAN_POINT('',(2.29,0.377106686427072,-1.6)); -#50298=CARTESIAN_POINT('',(2.29,1.05,-1.6)); -#50299=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); -#50300=CARTESIAN_POINT('',(2.51,1.05,-1.6)); -#50301=CARTESIAN_POINT('',(2.51,0.377106686427072,-1.6)); -#50302=CARTESIAN_POINT('',(2.51,4.02098076211353,-1.6)); -#50303=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,-1.6)); -#50304=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,-1.6)); -#50305=CARTESIAN_POINT('',(2.26787420882924,3.62304252537746,-1.6)); -#50306=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,-1.6)); -#50307=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,-1.6)); -#50308=CARTESIAN_POINT('',(2.575,4.17643593539449,-1.6)); -#50309=CARTESIAN_POINT('',(2.575,0.377106686427072,-1.6)); -#50310=CARTESIAN_POINT('',(2.575,7.085,-1.6)); -#50311=CARTESIAN_POINT('',(2.645,7.085,-1.6)); -#50312=CARTESIAN_POINT('',(2.645,7.155,-1.6)); -#50313=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50314=CARTESIAN_POINT('',(2.955,7.155,-1.6)); -#50315=CARTESIAN_POINT('',(2.955,7.085,-1.6)); -#50316=CARTESIAN_POINT('',(3.025,7.085,-1.6)); -#50317=CARTESIAN_POINT('',(3.025,0.377106686427072,-1.6)); -#50318=CARTESIAN_POINT('',(3.025,4.17643593539449,-1.6)); -#50319=CARTESIAN_POINT('',(3.105,4.17643593539449,-1.6)); -#50320=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,-1.6)); -#50321=CARTESIAN_POINT('',(5.87712579117077,-0.785026779885342,-1.6)); -#50322=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,-1.6)); -#50323=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,-1.6)); -#50324=CARTESIAN_POINT('',(3.09,4.02098076211353,-1.6)); -#50325=CARTESIAN_POINT('',(3.09,0.377106686427072,-1.6)); -#50326=CARTESIAN_POINT('',(3.09,1.05,-1.6)); -#50327=CARTESIAN_POINT('',(7.89,1.05,-1.6)); -#50328=CARTESIAN_POINT('',(3.31,1.05,-1.6)); -#50329=CARTESIAN_POINT('',(3.31,0.377106686427072,-1.6)); -#50330=CARTESIAN_POINT('',(3.31,4.02098076211353,-1.6)); -#50331=CARTESIAN_POINT('',(3.39,4.02098076211353,-1.6)); -#50332=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,-1.6)); -#50333=CARTESIAN_POINT('',(2.86787420882923,3.27663236386366,-1.6)); -#50334=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,-1.6)); -#50335=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,-1.6)); -#50336=CARTESIAN_POINT('',(3.375,4.17643593539449,-1.6)); -#50337=CARTESIAN_POINT('',(3.375,0.377106686427072,-1.6)); -#50338=CARTESIAN_POINT('',(3.375,7.085,-1.6)); -#50339=CARTESIAN_POINT('',(3.445,7.085,-1.6)); -#50340=CARTESIAN_POINT('',(3.445,7.155,-1.6)); -#50341=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50342=CARTESIAN_POINT('',(3.755,7.155,-1.6)); -#50343=CARTESIAN_POINT('',(3.755,7.085,-1.6)); -#50344=CARTESIAN_POINT('',(3.825,7.085,-1.6)); -#50345=CARTESIAN_POINT('',(3.825,0.377106686427072,-1.6)); -#50346=CARTESIAN_POINT('',(3.825,4.17643593539449,-1.6)); -#50347=CARTESIAN_POINT('',(3.905,4.17643593539449,-1.6)); -#50348=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,-1.6)); -#50349=CARTESIAN_POINT('',(6.47712579117077,-0.438616618371565,-1.6)); -#50350=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,-1.6)); -#50351=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,-1.6)); -#50352=CARTESIAN_POINT('',(3.89,4.02098076211353,-1.6)); -#50353=CARTESIAN_POINT('',(3.89,0.377106686427072,-1.6)); -#50354=CARTESIAN_POINT('',(3.89,1.05,-1.6)); -#50355=CARTESIAN_POINT('',(7.89,1.05,-1.6)); -#50356=CARTESIAN_POINT('',(4.11,1.05,-1.6)); -#50357=CARTESIAN_POINT('',(4.11,0.377106686427072,-1.6)); -#50358=CARTESIAN_POINT('',(4.11,4.02098076211353,-1.6)); -#50359=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,-1.6)); -#50360=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,-1.6)); -#50361=CARTESIAN_POINT('',(3.46787420882924,2.93022220234991,-1.6)); -#50362=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,-1.6)); -#50363=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,-1.6)); -#50364=CARTESIAN_POINT('',(4.175,4.17643593539449,-1.6)); -#50365=CARTESIAN_POINT('',(4.175,0.377106686427072,-1.6)); -#50366=CARTESIAN_POINT('',(4.175,7.085,-1.6)); -#50367=CARTESIAN_POINT('',(4.245,7.085,-1.6)); -#50368=CARTESIAN_POINT('',(4.245,7.155,-1.6)); -#50369=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50370=CARTESIAN_POINT('',(4.555,7.155,-1.6)); -#50371=CARTESIAN_POINT('',(4.555,7.085,-1.6)); -#50372=CARTESIAN_POINT('',(4.625,7.085,-1.6)); -#50373=CARTESIAN_POINT('',(4.625,0.377106686427072,-1.6)); -#50374=CARTESIAN_POINT('',(4.625,4.17643593539449,-1.6)); -#50375=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,-1.6)); -#50376=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,-1.6)); -#50377=CARTESIAN_POINT('',(7.07712579117079,-0.0922064568577828,-1.6)); -#50378=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,-1.6)); -#50379=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,-1.6)); -#50380=CARTESIAN_POINT('',(4.69,4.02098076211353,-1.6)); -#50381=CARTESIAN_POINT('',(4.69,0.377106686427072,-1.6)); -#50382=CARTESIAN_POINT('',(4.69,1.05,-1.6)); -#50383=CARTESIAN_POINT('',(7.89,1.05,-1.6)); -#50384=CARTESIAN_POINT('',(4.91,1.05,-1.6)); -#50385=CARTESIAN_POINT('',(4.91,0.377106686427072,-1.6)); -#50386=CARTESIAN_POINT('',(4.91,4.02098076211353,-1.6)); -#50387=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,-1.6)); -#50388=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,-1.6)); -#50389=CARTESIAN_POINT('',(4.06787420882924,2.58381204083613,-1.6)); -#50390=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,-1.6)); -#50391=CARTESIAN_POINT('',(4.895,4.17643593539449,-1.6)); -#50392=CARTESIAN_POINT('',(4.975,4.17643593539449,-1.6)); -#50393=CARTESIAN_POINT('',(4.975,0.377106686427072,-1.6)); -#50394=CARTESIAN_POINT('',(4.975,7.085,-1.6)); -#50395=CARTESIAN_POINT('',(5.045,7.085,-1.6)); -#50396=CARTESIAN_POINT('',(5.045,7.155,-1.6)); -#50397=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50398=CARTESIAN_POINT('',(5.355,7.155,-1.6)); -#50399=CARTESIAN_POINT('',(5.355,7.085,-1.6)); -#50400=CARTESIAN_POINT('',(5.425,7.085,-1.6)); -#50401=CARTESIAN_POINT('',(5.425,0.377106686427072,-1.6)); -#50402=CARTESIAN_POINT('',(5.425,4.17643593539449,-1.6)); -#50403=CARTESIAN_POINT('',(5.505,4.17643593539449,-1.6)); -#50404=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,-1.6)); -#50405=CARTESIAN_POINT('',(7.67712579117075,0.254203704655977,-1.6)); -#50406=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,-1.6)); -#50407=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,-1.6)); -#50408=CARTESIAN_POINT('',(5.49,4.02098076211353,-1.6)); -#50409=CARTESIAN_POINT('',(5.49,0.377106686427072,-1.6)); -#50410=CARTESIAN_POINT('',(5.49,1.05,-1.6)); -#50411=CARTESIAN_POINT('',(7.89,1.05,-1.6)); -#50412=CARTESIAN_POINT('',(5.71,1.05,-1.6)); -#50413=CARTESIAN_POINT('',(5.71,0.377106686427072,-1.6)); -#50414=CARTESIAN_POINT('',(5.71,4.02098076211353,-1.6)); -#50415=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,-1.6)); -#50416=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,-1.6)); -#50417=CARTESIAN_POINT('',(4.66787420882924,2.23740187932236,-1.6)); -#50418=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,-1.6)); -#50419=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,-1.6)); -#50420=CARTESIAN_POINT('',(5.775,4.17643593539449,-1.6)); -#50421=CARTESIAN_POINT('',(5.775,0.377106686427072,-1.6)); -#50422=CARTESIAN_POINT('',(5.775,7.085,-1.6)); -#50423=CARTESIAN_POINT('',(5.845,7.085,-1.6)); -#50424=CARTESIAN_POINT('',(5.845,7.155,-1.6)); -#50425=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50426=CARTESIAN_POINT('',(6.155,7.155,-1.6)); -#50427=CARTESIAN_POINT('',(6.155,7.085,-1.6)); -#50428=CARTESIAN_POINT('',(6.225,7.085,-1.6)); -#50429=CARTESIAN_POINT('',(6.225,0.377106686427072,-1.6)); -#50430=CARTESIAN_POINT('',(6.225,4.17643593539449,-1.6)); -#50431=CARTESIAN_POINT('',(6.305,4.17643593539449,-1.6)); -#50432=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,-1.6)); -#50433=CARTESIAN_POINT('',(8.27712579117078,0.600613866169773,-1.6)); -#50434=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,-1.6)); -#50435=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,-1.6)); -#50436=CARTESIAN_POINT('',(6.29,4.02098076211353,-1.6)); -#50437=CARTESIAN_POINT('',(6.29,0.377106686427072,-1.6)); -#50438=CARTESIAN_POINT('',(6.29,1.05,-1.6)); -#50439=CARTESIAN_POINT('',(7.89,1.05,-1.6)); -#50440=CARTESIAN_POINT('',(6.51,1.05,-1.6)); -#50441=CARTESIAN_POINT('',(6.51,0.377106686427072,-1.6)); -#50442=CARTESIAN_POINT('',(6.51,4.02098076211353,-1.6)); -#50443=CARTESIAN_POINT('',(6.59,4.02098076211353,-1.6)); -#50444=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,-1.6)); -#50445=CARTESIAN_POINT('',(5.26787420882924,1.89099171780855,-1.6)); -#50446=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,-1.6)); -#50447=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,-1.6)); -#50448=CARTESIAN_POINT('',(6.575,4.17643593539449,-1.6)); -#50449=CARTESIAN_POINT('',(6.575,0.377106686427072,-1.6)); -#50450=CARTESIAN_POINT('',(6.575,7.085,-1.6)); -#50451=CARTESIAN_POINT('',(6.645,7.085,-1.6)); -#50452=CARTESIAN_POINT('',(6.645,7.155,-1.6)); -#50453=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50454=CARTESIAN_POINT('',(6.955,7.155,-1.6)); -#50455=CARTESIAN_POINT('',(6.955,7.085,-1.6)); -#50456=CARTESIAN_POINT('',(7.025,7.085,-1.6)); -#50457=CARTESIAN_POINT('',(7.025,0.377106686427072,-1.6)); -#50458=CARTESIAN_POINT('',(7.025,4.17643593539449,-1.6)); -#50459=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,-1.6)); -#50460=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,-1.6)); -#50461=CARTESIAN_POINT('',(8.87712579117078,0.94702402768355,-1.6)); -#50462=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,-1.6)); -#50463=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,-1.6)); -#50464=CARTESIAN_POINT('',(7.09,4.02098076211353,-1.6)); -#50465=CARTESIAN_POINT('',(7.09,0.377106686427072,-1.6)); -#50466=CARTESIAN_POINT('',(7.09,1.05,-1.6)); -#50467=CARTESIAN_POINT('',(7.89,1.05,-1.6)); -#50468=CARTESIAN_POINT('',(7.31,1.05,-1.6)); -#50469=CARTESIAN_POINT('',(7.31,0.377106686427072,-1.6)); -#50470=CARTESIAN_POINT('',(7.31,4.02098076211353,-1.6)); -#50471=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,-1.6)); -#50472=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,-1.6)); -#50473=CARTESIAN_POINT('',(5.86787420882923,1.54458155629481,-1.6)); -#50474=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,-1.6)); -#50475=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,-1.6)); -#50476=CARTESIAN_POINT('',(7.375,4.17643593539449,-1.6)); -#50477=CARTESIAN_POINT('',(7.375,0.377106686427072,-1.6)); -#50478=CARTESIAN_POINT('',(7.375,7.085,-1.6)); -#50479=CARTESIAN_POINT('',(7.445,7.085,-1.6)); -#50480=CARTESIAN_POINT('',(7.445,7.155,-1.6)); -#50481=CARTESIAN_POINT('',(7.89,7.155,-1.6)); -#50482=CARTESIAN_POINT('',(7.755,7.155,-1.6)); -#50483=CARTESIAN_POINT('',(7.755,7.085,-1.6)); -#50484=CARTESIAN_POINT('',(7.825,7.085,-1.6)); -#50485=CARTESIAN_POINT('',(7.825,0.377106686427072,-1.6)); -#50486=CARTESIAN_POINT('',(7.825,4.17643593539449,-1.6)); -#50487=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,-1.6)); -#50488=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,-1.6)); -#50489=CARTESIAN_POINT('',(9.47712579117077,1.29343418919733,-1.6)); -#50490=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,-1.6)); -#50491=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,-1.6)); -#50492=CARTESIAN_POINT('',(7.89,4.02098076211353,-1.6)); -#50493=CARTESIAN_POINT('',(7.89,0.377106686427072,-1.6)); -#50494=CARTESIAN_POINT('',(7.89,1.05,-1.6)); -#50495=CARTESIAN_POINT('',(8.,1.05,-1.6)); -#50496=CARTESIAN_POINT('',(8.,1.05,-1.6)); -#50497=CARTESIAN_POINT('',(8.,1.05,-1.6)); -#50498=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50499=CARTESIAN_POINT('',(7.89,1.,-1.435)); -#50500=CARTESIAN_POINT('',(7.95,1.,-1.435)); -#50501=CARTESIAN_POINT('',(-7.95,1.,-1.435)); -#50502=CARTESIAN_POINT('',(7.95,1.05,-1.435)); -#50503=CARTESIAN_POINT('',(7.95,1.05,-1.435)); -#50504=CARTESIAN_POINT('',(7.95,1.05,-1.435)); -#50505=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50506=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50507=CARTESIAN_POINT('',(7.89,4.02098076211353,-1.435)); -#50508=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,-1.435)); -#50509=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,-1.435)); -#50510=CARTESIAN_POINT('',(6.54221189432333,6.37685417437699,-1.435)); -#50511=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,-1.435)); -#50512=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,-1.435)); -#50513=CARTESIAN_POINT('',(7.825,4.17643593539449,-1.435)); -#50514=CARTESIAN_POINT('',(7.825,7.155,-1.435)); -#50515=CARTESIAN_POINT('',(7.825,7.085,-1.435)); -#50516=CARTESIAN_POINT('',(7.755,7.085,-1.435)); -#50517=CARTESIAN_POINT('',(7.755,7.155,-1.435)); -#50518=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50519=CARTESIAN_POINT('',(7.445,7.155,-1.435)); -#50520=CARTESIAN_POINT('',(7.445,7.085,-1.435)); -#50521=CARTESIAN_POINT('',(7.375,7.085,-1.435)); -#50522=CARTESIAN_POINT('',(7.375,7.155,-1.435)); -#50523=CARTESIAN_POINT('',(7.375,4.17643593539449,-1.435)); -#50524=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,-1.435)); -#50525=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,-1.435)); -#50526=CARTESIAN_POINT('',(8.80278810567666,6.62800154147449,-1.435)); -#50527=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,-1.435)); -#50528=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,-1.435)); -#50529=CARTESIAN_POINT('',(7.31,4.02098076211353,-1.435)); -#50530=CARTESIAN_POINT('',(7.31,7.155,-1.435)); -#50531=CARTESIAN_POINT('',(7.31,1.05,-1.435)); -#50532=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50533=CARTESIAN_POINT('',(7.09,1.05,-1.435)); -#50534=CARTESIAN_POINT('',(7.09,7.155,-1.435)); -#50535=CARTESIAN_POINT('',(7.09,4.02098076211353,-1.435)); -#50536=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,-1.435)); -#50537=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,-1.435)); -#50538=CARTESIAN_POINT('',(5.94221189432333,6.03044401286321,-1.435)); -#50539=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,-1.435)); -#50540=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,-1.435)); -#50541=CARTESIAN_POINT('',(7.025,4.17643593539449,-1.435)); -#50542=CARTESIAN_POINT('',(7.025,7.155,-1.435)); -#50543=CARTESIAN_POINT('',(7.025,7.085,-1.435)); -#50544=CARTESIAN_POINT('',(6.955,7.085,-1.435)); -#50545=CARTESIAN_POINT('',(6.955,7.155,-1.435)); -#50546=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50547=CARTESIAN_POINT('',(6.645,7.155,-1.435)); -#50548=CARTESIAN_POINT('',(6.645,7.085,-1.435)); -#50549=CARTESIAN_POINT('',(6.575,7.085,-1.435)); -#50550=CARTESIAN_POINT('',(6.575,7.155,-1.435)); -#50551=CARTESIAN_POINT('',(6.575,4.17643593539449,-1.435)); -#50552=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,-1.435)); -#50553=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,-1.435)); -#50554=CARTESIAN_POINT('',(8.20278810567664,6.97441170298828,-1.435)); -#50555=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,-1.435)); -#50556=CARTESIAN_POINT('',(6.59,4.02098076211353,-1.435)); -#50557=CARTESIAN_POINT('',(6.51,4.02098076211353,-1.435)); -#50558=CARTESIAN_POINT('',(6.51,7.155,-1.435)); -#50559=CARTESIAN_POINT('',(6.51,1.05,-1.435)); -#50560=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50561=CARTESIAN_POINT('',(6.29,1.05,-1.435)); -#50562=CARTESIAN_POINT('',(6.29,7.155,-1.435)); -#50563=CARTESIAN_POINT('',(6.29,4.02098076211353,-1.435)); -#50564=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,-1.435)); -#50565=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,-1.435)); -#50566=CARTESIAN_POINT('',(5.34221189432334,5.68403385134944,-1.435)); -#50567=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,-1.435)); -#50568=CARTESIAN_POINT('',(6.305,4.17643593539449,-1.435)); -#50569=CARTESIAN_POINT('',(6.225,4.17643593539449,-1.435)); -#50570=CARTESIAN_POINT('',(6.225,7.155,-1.435)); -#50571=CARTESIAN_POINT('',(6.225,7.085,-1.435)); -#50572=CARTESIAN_POINT('',(6.155,7.085,-1.435)); -#50573=CARTESIAN_POINT('',(6.155,7.155,-1.435)); -#50574=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50575=CARTESIAN_POINT('',(5.845,7.155,-1.435)); -#50576=CARTESIAN_POINT('',(5.845,7.085,-1.435)); -#50577=CARTESIAN_POINT('',(5.775,7.085,-1.435)); -#50578=CARTESIAN_POINT('',(5.775,7.155,-1.435)); -#50579=CARTESIAN_POINT('',(5.775,4.17643593539449,-1.435)); -#50580=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,-1.435)); -#50581=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,-1.435)); -#50582=CARTESIAN_POINT('',(7.60278810567667,7.32082186450204,-1.435)); -#50583=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,-1.435)); -#50584=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,-1.435)); -#50585=CARTESIAN_POINT('',(5.71,4.02098076211353,-1.435)); -#50586=CARTESIAN_POINT('',(5.71,7.155,-1.435)); -#50587=CARTESIAN_POINT('',(5.71,1.05,-1.435)); -#50588=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50589=CARTESIAN_POINT('',(5.49,1.05,-1.435)); -#50590=CARTESIAN_POINT('',(5.49,7.155,-1.435)); -#50591=CARTESIAN_POINT('',(5.49,4.02098076211353,-1.435)); -#50592=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,-1.435)); -#50593=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,-1.435)); -#50594=CARTESIAN_POINT('',(4.74221189432334,5.33762368983569,-1.435)); -#50595=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,-1.435)); -#50596=CARTESIAN_POINT('',(5.505,4.17643593539449,-1.435)); -#50597=CARTESIAN_POINT('',(5.425,4.17643593539449,-1.435)); -#50598=CARTESIAN_POINT('',(5.425,7.155,-1.435)); -#50599=CARTESIAN_POINT('',(5.425,7.085,-1.435)); -#50600=CARTESIAN_POINT('',(5.355,7.085,-1.435)); -#50601=CARTESIAN_POINT('',(5.355,7.155,-1.435)); -#50602=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50603=CARTESIAN_POINT('',(5.045,7.155,-1.435)); -#50604=CARTESIAN_POINT('',(5.045,7.085,-1.435)); -#50605=CARTESIAN_POINT('',(4.975,7.085,-1.435)); -#50606=CARTESIAN_POINT('',(4.975,7.155,-1.435)); -#50607=CARTESIAN_POINT('',(4.975,4.17643593539449,-1.435)); -#50608=CARTESIAN_POINT('',(4.895,4.17643593539449,-1.435)); -#50609=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,-1.435)); -#50610=CARTESIAN_POINT('',(7.00278810567667,7.66723202601582,-1.435)); -#50611=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,-1.435)); -#50612=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,-1.435)); -#50613=CARTESIAN_POINT('',(4.91,4.02098076211353,-1.435)); -#50614=CARTESIAN_POINT('',(4.91,7.155,-1.435)); -#50615=CARTESIAN_POINT('',(4.91,1.05,-1.435)); -#50616=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50617=CARTESIAN_POINT('',(4.69,1.05,-1.435)); -#50618=CARTESIAN_POINT('',(4.69,7.155,-1.435)); -#50619=CARTESIAN_POINT('',(4.69,4.02098076211353,-1.435)); -#50620=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,-1.435)); -#50621=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,-1.435)); -#50622=CARTESIAN_POINT('',(4.14221189432335,4.99121352832188,-1.435)); -#50623=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,-1.435)); -#50624=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,-1.435)); -#50625=CARTESIAN_POINT('',(4.625,4.17643593539449,-1.435)); -#50626=CARTESIAN_POINT('',(4.625,7.155,-1.435)); -#50627=CARTESIAN_POINT('',(4.625,7.085,-1.435)); -#50628=CARTESIAN_POINT('',(4.555,7.085,-1.435)); -#50629=CARTESIAN_POINT('',(4.555,7.155,-1.435)); -#50630=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50631=CARTESIAN_POINT('',(4.245,7.155,-1.435)); -#50632=CARTESIAN_POINT('',(4.245,7.085,-1.435)); -#50633=CARTESIAN_POINT('',(4.175,7.085,-1.435)); -#50634=CARTESIAN_POINT('',(4.175,7.155,-1.435)); -#50635=CARTESIAN_POINT('',(4.175,4.17643593539449,-1.435)); -#50636=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,-1.435)); -#50637=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,-1.435)); -#50638=CARTESIAN_POINT('',(6.40278810567667,8.0136421875296,-1.435)); -#50639=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,-1.435)); -#50640=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,-1.435)); -#50641=CARTESIAN_POINT('',(4.11,4.02098076211353,-1.435)); -#50642=CARTESIAN_POINT('',(4.11,7.155,-1.435)); -#50643=CARTESIAN_POINT('',(4.11,1.05,-1.435)); -#50644=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50645=CARTESIAN_POINT('',(3.89,1.05,-1.435)); -#50646=CARTESIAN_POINT('',(3.89,7.155,-1.435)); -#50647=CARTESIAN_POINT('',(3.89,4.02098076211353,-1.435)); -#50648=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,-1.435)); -#50649=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,-1.435)); -#50650=CARTESIAN_POINT('',(3.54221189432334,4.64480336680812,-1.435)); -#50651=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,-1.435)); -#50652=CARTESIAN_POINT('',(3.905,4.17643593539449,-1.435)); -#50653=CARTESIAN_POINT('',(3.825,4.17643593539449,-1.435)); -#50654=CARTESIAN_POINT('',(3.825,7.155,-1.435)); -#50655=CARTESIAN_POINT('',(3.825,7.085,-1.435)); -#50656=CARTESIAN_POINT('',(3.755,7.085,-1.435)); -#50657=CARTESIAN_POINT('',(3.755,7.155,-1.435)); -#50658=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50659=CARTESIAN_POINT('',(3.445,7.155,-1.435)); -#50660=CARTESIAN_POINT('',(3.445,7.085,-1.435)); -#50661=CARTESIAN_POINT('',(3.375,7.085,-1.435)); -#50662=CARTESIAN_POINT('',(3.375,7.155,-1.435)); -#50663=CARTESIAN_POINT('',(3.375,4.17643593539449,-1.435)); -#50664=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,-1.435)); -#50665=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,-1.435)); -#50666=CARTESIAN_POINT('',(5.80278810567665,8.36005234904337,-1.435)); -#50667=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,-1.435)); -#50668=CARTESIAN_POINT('',(3.39,4.02098076211353,-1.435)); -#50669=CARTESIAN_POINT('',(3.31,4.02098076211353,-1.435)); -#50670=CARTESIAN_POINT('',(3.31,7.155,-1.435)); -#50671=CARTESIAN_POINT('',(3.31,1.05,-1.435)); -#50672=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50673=CARTESIAN_POINT('',(3.09,1.05,-1.435)); -#50674=CARTESIAN_POINT('',(3.09,7.155,-1.435)); -#50675=CARTESIAN_POINT('',(3.09,4.02098076211353,-1.435)); -#50676=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,-1.435)); -#50677=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,-1.435)); -#50678=CARTESIAN_POINT('',(2.94221189432334,4.29839320529435,-1.435)); -#50679=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,-1.435)); -#50680=CARTESIAN_POINT('',(3.105,4.17643593539449,-1.435)); -#50681=CARTESIAN_POINT('',(3.025,4.17643593539449,-1.435)); -#50682=CARTESIAN_POINT('',(3.025,7.155,-1.435)); -#50683=CARTESIAN_POINT('',(3.025,7.085,-1.435)); -#50684=CARTESIAN_POINT('',(2.955,7.085,-1.435)); -#50685=CARTESIAN_POINT('',(2.955,7.155,-1.435)); -#50686=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50687=CARTESIAN_POINT('',(2.645,7.155,-1.435)); -#50688=CARTESIAN_POINT('',(2.645,7.085,-1.435)); -#50689=CARTESIAN_POINT('',(2.575,7.085,-1.435)); -#50690=CARTESIAN_POINT('',(2.575,7.155,-1.435)); -#50691=CARTESIAN_POINT('',(2.575,4.17643593539449,-1.435)); -#50692=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,-1.435)); -#50693=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,-1.435)); -#50694=CARTESIAN_POINT('',(5.20278810567667,8.70646251055715,-1.435)); -#50695=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,-1.435)); -#50696=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,-1.435)); -#50697=CARTESIAN_POINT('',(2.51,4.02098076211353,-1.435)); -#50698=CARTESIAN_POINT('',(2.51,7.155,-1.435)); -#50699=CARTESIAN_POINT('',(2.51,1.05,-1.435)); -#50700=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50701=CARTESIAN_POINT('',(2.29,1.05,-1.435)); -#50702=CARTESIAN_POINT('',(2.29,7.155,-1.435)); -#50703=CARTESIAN_POINT('',(2.29,4.02098076211353,-1.435)); -#50704=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,-1.435)); -#50705=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,-1.435)); -#50706=CARTESIAN_POINT('',(2.34221189432336,3.95198304378055,-1.435)); -#50707=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,-1.435)); -#50708=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,-1.435)); -#50709=CARTESIAN_POINT('',(2.225,4.17643593539449,-1.435)); -#50710=CARTESIAN_POINT('',(2.225,7.155,-1.435)); -#50711=CARTESIAN_POINT('',(2.225,7.085,-1.435)); -#50712=CARTESIAN_POINT('',(2.155,7.085,-1.435)); -#50713=CARTESIAN_POINT('',(2.155,7.155,-1.435)); -#50714=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50715=CARTESIAN_POINT('',(1.845,7.155,-1.435)); -#50716=CARTESIAN_POINT('',(1.845,7.085,-1.435)); -#50717=CARTESIAN_POINT('',(1.775,7.085,-1.435)); -#50718=CARTESIAN_POINT('',(1.775,7.155,-1.435)); -#50719=CARTESIAN_POINT('',(1.775,4.17643593539449,-1.435)); -#50720=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,-1.435)); -#50721=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,-1.435)); -#50722=CARTESIAN_POINT('',(4.60278810567666,9.05287267207092,-1.435)); -#50723=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,-1.435)); -#50724=CARTESIAN_POINT('',(1.79,4.02098076211353,-1.435)); -#50725=CARTESIAN_POINT('',(1.71,4.02098076211353,-1.435)); -#50726=CARTESIAN_POINT('',(1.71,7.155,-1.435)); -#50727=CARTESIAN_POINT('',(1.71,1.05,-1.435)); -#50728=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50729=CARTESIAN_POINT('',(1.49,1.05,-1.435)); -#50730=CARTESIAN_POINT('',(1.49,7.155,-1.435)); -#50731=CARTESIAN_POINT('',(1.49,4.02098076211353,-1.435)); -#50732=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,-1.435)); -#50733=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,-1.435)); -#50734=CARTESIAN_POINT('',(1.74221189432335,3.60557288226678,-1.435)); -#50735=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,-1.435)); -#50736=CARTESIAN_POINT('',(1.505,4.17643593539449,-1.435)); -#50737=CARTESIAN_POINT('',(1.425,4.17643593539449,-1.435)); -#50738=CARTESIAN_POINT('',(1.425,7.155,-1.435)); -#50739=CARTESIAN_POINT('',(1.425,7.085,-1.435)); -#50740=CARTESIAN_POINT('',(1.355,7.085,-1.435)); -#50741=CARTESIAN_POINT('',(1.355,7.155,-1.435)); -#50742=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50743=CARTESIAN_POINT('',(1.045,7.155,-1.435)); -#50744=CARTESIAN_POINT('',(1.045,7.085,-1.435)); -#50745=CARTESIAN_POINT('',(0.974999999999998,7.085,-1.435)); -#50746=CARTESIAN_POINT('',(0.974999999999998,7.155,-1.435)); -#50747=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,-1.435)); -#50748=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,-1.435)); -#50749=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,-1.435)); -#50750=CARTESIAN_POINT('',(4.00278810567667,9.3992828335847,-1.435)); -#50751=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,-1.435)); -#50752=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,-1.435)); -#50753=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,-1.435)); -#50754=CARTESIAN_POINT('',(0.909999999999999,7.155,-1.435)); -#50755=CARTESIAN_POINT('',(0.909999999999999,1.05,-1.435)); -#50756=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50757=CARTESIAN_POINT('',(0.69,1.05,-1.435)); -#50758=CARTESIAN_POINT('',(0.69,7.155,-1.435)); -#50759=CARTESIAN_POINT('',(0.69,4.02098076211353,-1.435)); -#50760=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,-1.435)); -#50761=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,-1.435)); -#50762=CARTESIAN_POINT('',(1.14221189432336,3.259162720753,-1.435)); -#50763=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,-1.435)); -#50764=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,-1.435)); -#50765=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,-1.435)); -#50766=CARTESIAN_POINT('',(0.624999999999999,7.155,-1.435)); -#50767=CARTESIAN_POINT('',(0.624999999999999,7.085,-1.435)); -#50768=CARTESIAN_POINT('',(0.554999999999999,7.085,-1.435)); -#50769=CARTESIAN_POINT('',(0.554999999999999,7.155,-1.435)); -#50770=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50771=CARTESIAN_POINT('',(0.244999999999999,7.155,-1.435)); -#50772=CARTESIAN_POINT('',(0.245,7.085,-1.435)); -#50773=CARTESIAN_POINT('',(0.174999999999999,7.085,-1.435)); -#50774=CARTESIAN_POINT('',(0.174999999999999,7.155,-1.435)); -#50775=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,-1.435)); -#50776=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,-1.435)); -#50777=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,-1.435)); -#50778=CARTESIAN_POINT('',(3.40278810567667,9.74569299509848,-1.435)); -#50779=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,-1.435)); -#50780=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,-1.435)); -#50781=CARTESIAN_POINT('',(0.11,4.02098076211353,-1.435)); -#50782=CARTESIAN_POINT('',(0.109999999999999,7.155,-1.435)); -#50783=CARTESIAN_POINT('',(0.109999999999999,1.05,-1.435)); -#50784=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50785=CARTESIAN_POINT('',(-0.110000000000001,1.05,-1.435)); -#50786=CARTESIAN_POINT('',(-0.110000000000001,7.155,-1.435)); -#50787=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,-1.435)); -#50788=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,-1.435)); -#50789=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,-1.435)); -#50790=CARTESIAN_POINT('',(0.542211894323356,2.91275255923923,-1.435)); -#50791=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,-1.435)); -#50792=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,-1.435)); -#50793=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,-1.435)); -#50794=CARTESIAN_POINT('',(-0.175000000000002,7.155,-1.435)); -#50795=CARTESIAN_POINT('',(-0.175000000000001,7.085,-1.435)); -#50796=CARTESIAN_POINT('',(-0.245000000000001,7.085,-1.435)); -#50797=CARTESIAN_POINT('',(-0.245000000000001,7.155,-1.435)); -#50798=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50799=CARTESIAN_POINT('',(-0.555000000000001,7.155,-1.435)); -#50800=CARTESIAN_POINT('',(-0.555,7.085,-1.435)); -#50801=CARTESIAN_POINT('',(-0.625000000000001,7.085,-1.435)); -#50802=CARTESIAN_POINT('',(-0.625000000000001,7.155,-1.435)); -#50803=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,-1.435)); -#50804=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,-1.435)); -#50805=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,-1.435)); -#50806=CARTESIAN_POINT('',(2.80278810567667,10.0921031566123,-1.435)); -#50807=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,-1.435)); -#50808=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,-1.435)); -#50809=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,-1.435)); -#50810=CARTESIAN_POINT('',(-0.690000000000001,7.155,-1.435)); -#50811=CARTESIAN_POINT('',(-0.690000000000001,1.05,-1.435)); -#50812=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50813=CARTESIAN_POINT('',(-0.910000000000001,1.05,-1.435)); -#50814=CARTESIAN_POINT('',(-0.910000000000001,7.155,-1.435)); -#50815=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,-1.435)); -#50816=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,-1.435)); -#50817=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,-1.435)); -#50818=CARTESIAN_POINT('',(-0.0577881056766389,2.56634239772545,-1.435)); -#50819=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,-1.435)); -#50820=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,-1.435)); -#50821=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,-1.435)); -#50822=CARTESIAN_POINT('',(-0.975000000000002,7.155,-1.435)); -#50823=CARTESIAN_POINT('',(-0.975000000000001,7.085,-1.435)); -#50824=CARTESIAN_POINT('',(-1.045,7.085,-1.435)); -#50825=CARTESIAN_POINT('',(-1.045,7.155,-1.435)); -#50826=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50827=CARTESIAN_POINT('',(-1.355,7.155,-1.435)); -#50828=CARTESIAN_POINT('',(-1.355,7.085,-1.435)); -#50829=CARTESIAN_POINT('',(-1.425,7.085,-1.435)); -#50830=CARTESIAN_POINT('',(-1.425,7.155,-1.435)); -#50831=CARTESIAN_POINT('',(-1.425,4.17643593539449,-1.435)); -#50832=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,-1.435)); -#50833=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,-1.435)); -#50834=CARTESIAN_POINT('',(2.20278810567666,10.438513318126,-1.435)); -#50835=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,-1.435)); -#50836=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,-1.435)); -#50837=CARTESIAN_POINT('',(-1.49,4.02098076211353,-1.435)); -#50838=CARTESIAN_POINT('',(-1.49,7.155,-1.435)); -#50839=CARTESIAN_POINT('',(-1.49,1.05,-1.435)); -#50840=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50841=CARTESIAN_POINT('',(-1.71,1.05,-1.435)); -#50842=CARTESIAN_POINT('',(-1.71,7.155,-1.435)); -#50843=CARTESIAN_POINT('',(-1.71,4.02098076211353,-1.435)); -#50844=CARTESIAN_POINT('',(-1.79,4.02098076211353,-1.435)); -#50845=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,-1.435)); -#50846=CARTESIAN_POINT('',(-0.657788105676635,2.21993223621167,-1.435)); -#50847=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,-1.435)); -#50848=CARTESIAN_POINT('',(-1.695,4.17643593539449,-1.435)); -#50849=CARTESIAN_POINT('',(-1.775,4.17643593539449,-1.435)); -#50850=CARTESIAN_POINT('',(-1.775,7.155,-1.435)); -#50851=CARTESIAN_POINT('',(-1.775,7.085,-1.435)); -#50852=CARTESIAN_POINT('',(-1.845,7.085,-1.435)); -#50853=CARTESIAN_POINT('',(-1.845,7.155,-1.435)); -#50854=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50855=CARTESIAN_POINT('',(-2.155,7.155,-1.435)); -#50856=CARTESIAN_POINT('',(-2.155,7.085,-1.435)); -#50857=CARTESIAN_POINT('',(-2.225,7.085,-1.435)); -#50858=CARTESIAN_POINT('',(-2.225,7.155,-1.435)); -#50859=CARTESIAN_POINT('',(-2.225,4.17643593539449,-1.435)); -#50860=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,-1.435)); -#50861=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,-1.435)); -#50862=CARTESIAN_POINT('',(1.60278810567668,10.7849234796398,-1.435)); -#50863=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,-1.435)); -#50864=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,-1.435)); -#50865=CARTESIAN_POINT('',(-2.29,4.02098076211353,-1.435)); -#50866=CARTESIAN_POINT('',(-2.29,7.155,-1.435)); -#50867=CARTESIAN_POINT('',(-2.29,1.05,-1.435)); -#50868=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50869=CARTESIAN_POINT('',(-2.51,1.05,-1.435)); -#50870=CARTESIAN_POINT('',(-2.51,7.155,-1.435)); -#50871=CARTESIAN_POINT('',(-2.51,4.02098076211353,-1.435)); -#50872=CARTESIAN_POINT('',(-2.59,4.02098076211353,-1.435)); -#50873=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,-1.435)); -#50874=CARTESIAN_POINT('',(-1.25778810567662,1.87352207469788,-1.435)); -#50875=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,-1.435)); -#50876=CARTESIAN_POINT('',(-2.495,4.17643593539449,-1.435)); -#50877=CARTESIAN_POINT('',(-2.575,4.17643593539449,-1.435)); -#50878=CARTESIAN_POINT('',(-2.575,7.155,-1.435)); -#50879=CARTESIAN_POINT('',(-2.575,7.085,-1.435)); -#50880=CARTESIAN_POINT('',(-2.645,7.085,-1.435)); -#50881=CARTESIAN_POINT('',(-2.645,7.155,-1.435)); -#50882=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50883=CARTESIAN_POINT('',(-2.955,7.155,-1.435)); -#50884=CARTESIAN_POINT('',(-2.955,7.085,-1.435)); -#50885=CARTESIAN_POINT('',(-3.025,7.085,-1.435)); -#50886=CARTESIAN_POINT('',(-3.025,7.155,-1.435)); -#50887=CARTESIAN_POINT('',(-3.025,4.17643593539449,-1.435)); -#50888=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,-1.435)); -#50889=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,-1.435)); -#50890=CARTESIAN_POINT('',(1.00278810567664,11.1313336411536,-1.435)); -#50891=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,-1.435)); -#50892=CARTESIAN_POINT('',(-3.01,4.02098076211353,-1.435)); -#50893=CARTESIAN_POINT('',(-3.09,4.02098076211353,-1.435)); -#50894=CARTESIAN_POINT('',(-3.09,7.155,-1.435)); -#50895=CARTESIAN_POINT('',(-3.09,1.05,-1.435)); -#50896=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50897=CARTESIAN_POINT('',(-3.31,1.05,-1.435)); -#50898=CARTESIAN_POINT('',(-3.31,7.155,-1.435)); -#50899=CARTESIAN_POINT('',(-3.31,4.02098076211353,-1.435)); -#50900=CARTESIAN_POINT('',(-3.39,4.02098076211353,-1.435)); -#50901=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,-1.435)); -#50902=CARTESIAN_POINT('',(-1.85778810567661,1.5271119131841,-1.435)); -#50903=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,-1.435)); -#50904=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,-1.435)); -#50905=CARTESIAN_POINT('',(-3.375,4.17643593539449,-1.435)); -#50906=CARTESIAN_POINT('',(-3.375,7.155,-1.435)); -#50907=CARTESIAN_POINT('',(-3.375,7.085,-1.435)); -#50908=CARTESIAN_POINT('',(-3.445,7.085,-1.435)); -#50909=CARTESIAN_POINT('',(-3.445,7.155,-1.435)); -#50910=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50911=CARTESIAN_POINT('',(-3.755,7.155,-1.435)); -#50912=CARTESIAN_POINT('',(-3.755,7.085,-1.435)); -#50913=CARTESIAN_POINT('',(-3.825,7.085,-1.435)); -#50914=CARTESIAN_POINT('',(-3.825,7.155,-1.435)); -#50915=CARTESIAN_POINT('',(-3.825,4.17643593539449,-1.435)); -#50916=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,-1.435)); -#50917=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,-1.435)); -#50918=CARTESIAN_POINT('',(0.402788105676636,11.4777438026673,-1.435)); -#50919=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,-1.435)); -#50920=CARTESIAN_POINT('',(-3.81,4.02098076211353,-1.435)); -#50921=CARTESIAN_POINT('',(-3.89,4.02098076211353,-1.435)); -#50922=CARTESIAN_POINT('',(-3.89,7.155,-1.435)); -#50923=CARTESIAN_POINT('',(-3.89,1.05,-1.435)); -#50924=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50925=CARTESIAN_POINT('',(-4.11,1.05,-1.435)); -#50926=CARTESIAN_POINT('',(-4.11,7.155,-1.435)); -#50927=CARTESIAN_POINT('',(-4.11,4.02098076211353,-1.435)); -#50928=CARTESIAN_POINT('',(-4.19,4.02098076211353,-1.435)); -#50929=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,-1.435)); -#50930=CARTESIAN_POINT('',(-2.45778810567661,1.18070175167033,-1.435)); -#50931=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,-1.435)); -#50932=CARTESIAN_POINT('',(-4.095,4.17643593539449,-1.435)); -#50933=CARTESIAN_POINT('',(-4.175,4.17643593539449,-1.435)); -#50934=CARTESIAN_POINT('',(-4.175,7.155,-1.435)); -#50935=CARTESIAN_POINT('',(-4.175,7.085,-1.435)); -#50936=CARTESIAN_POINT('',(-4.245,7.085,-1.435)); -#50937=CARTESIAN_POINT('',(-4.245,7.155,-1.435)); -#50938=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50939=CARTESIAN_POINT('',(-4.555,7.155,-1.435)); -#50940=CARTESIAN_POINT('',(-4.555,7.085,-1.435)); -#50941=CARTESIAN_POINT('',(-4.625,7.085,-1.435)); -#50942=CARTESIAN_POINT('',(-4.625,7.155,-1.435)); -#50943=CARTESIAN_POINT('',(-4.625,4.17643593539449,-1.435)); -#50944=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,-1.435)); -#50945=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,-1.435)); -#50946=CARTESIAN_POINT('',(-0.197211894323316,11.8241539641811,-1.435)); -#50947=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,-1.435)); -#50948=CARTESIAN_POINT('',(-4.61,4.02098076211353,-1.435)); -#50949=CARTESIAN_POINT('',(-4.69,4.02098076211353,-1.435)); -#50950=CARTESIAN_POINT('',(-4.69,7.155,-1.435)); -#50951=CARTESIAN_POINT('',(-4.69,1.05,-1.435)); -#50952=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50953=CARTESIAN_POINT('',(-4.91,1.05,-1.435)); -#50954=CARTESIAN_POINT('',(-4.91,7.155,-1.435)); -#50955=CARTESIAN_POINT('',(-4.91,4.02098076211353,-1.435)); -#50956=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,-1.435)); -#50957=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,-1.435)); -#50958=CARTESIAN_POINT('',(-3.0577881056766,0.834291590156548,-1.435)); -#50959=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,-1.435)); -#50960=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,-1.435)); -#50961=CARTESIAN_POINT('',(-4.975,4.17643593539449,-1.435)); -#50962=CARTESIAN_POINT('',(-4.975,7.155,-1.435)); -#50963=CARTESIAN_POINT('',(-4.975,7.085,-1.435)); -#50964=CARTESIAN_POINT('',(-5.045,7.085,-1.435)); -#50965=CARTESIAN_POINT('',(-5.045,7.155,-1.435)); -#50966=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50967=CARTESIAN_POINT('',(-5.355,7.155,-1.435)); -#50968=CARTESIAN_POINT('',(-5.355,7.085,-1.435)); -#50969=CARTESIAN_POINT('',(-5.425,7.085,-1.435)); -#50970=CARTESIAN_POINT('',(-5.425,7.155,-1.435)); -#50971=CARTESIAN_POINT('',(-5.425,4.17643593539449,-1.435)); -#50972=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,-1.435)); -#50973=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,-1.435)); -#50974=CARTESIAN_POINT('',(-0.797211894323425,12.1705641256949,-1.435)); -#50975=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,-1.435)); -#50976=CARTESIAN_POINT('',(-5.41,4.02098076211353,-1.435)); -#50977=CARTESIAN_POINT('',(-5.49,4.02098076211353,-1.435)); -#50978=CARTESIAN_POINT('',(-5.49,7.155,-1.435)); -#50979=CARTESIAN_POINT('',(-5.49,1.05,-1.435)); -#50980=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#50981=CARTESIAN_POINT('',(-5.71,1.05,-1.435)); -#50982=CARTESIAN_POINT('',(-5.71,7.155,-1.435)); -#50983=CARTESIAN_POINT('',(-5.71,4.02098076211353,-1.435)); -#50984=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,-1.435)); -#50985=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,-1.435)); -#50986=CARTESIAN_POINT('',(-3.6577881056766,0.48788142864277,-1.435)); -#50987=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,-1.435)); -#50988=CARTESIAN_POINT('',(-5.695,4.17643593539449,-1.435)); -#50989=CARTESIAN_POINT('',(-5.775,4.17643593539449,-1.435)); -#50990=CARTESIAN_POINT('',(-5.775,7.155,-1.435)); -#50991=CARTESIAN_POINT('',(-5.775,7.085,-1.435)); -#50992=CARTESIAN_POINT('',(-5.845,7.085,-1.435)); -#50993=CARTESIAN_POINT('',(-5.845,7.155,-1.435)); -#50994=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#50995=CARTESIAN_POINT('',(-6.155,7.155,-1.435)); -#50996=CARTESIAN_POINT('',(-6.155,7.085,-1.435)); -#50997=CARTESIAN_POINT('',(-6.225,7.085,-1.435)); -#50998=CARTESIAN_POINT('',(-6.225,7.155,-1.435)); -#50999=CARTESIAN_POINT('',(-6.225,4.17643593539449,-1.435)); -#51000=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,-1.435)); -#51001=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,-1.435)); -#51002=CARTESIAN_POINT('',(-1.39721189432331,12.5169742872087,-1.435)); -#51003=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,-1.435)); -#51004=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,-1.435)); -#51005=CARTESIAN_POINT('',(-6.29,4.02098076211353,-1.435)); -#51006=CARTESIAN_POINT('',(-6.29,7.155,-1.435)); -#51007=CARTESIAN_POINT('',(-6.29,1.05,-1.435)); -#51008=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#51009=CARTESIAN_POINT('',(-6.51,1.05,-1.435)); -#51010=CARTESIAN_POINT('',(-6.51,7.155,-1.435)); -#51011=CARTESIAN_POINT('',(-6.51,4.02098076211353,-1.435)); -#51012=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,-1.435)); -#51013=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,-1.435)); -#51014=CARTESIAN_POINT('',(-4.25778810567669,0.141471267129077,-1.435)); -#51015=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,-1.435)); -#51016=CARTESIAN_POINT('',(-6.495,4.17643593539449,-1.435)); -#51017=CARTESIAN_POINT('',(-6.575,4.17643593539449,-1.435)); -#51018=CARTESIAN_POINT('',(-6.575,7.155,-1.435)); -#51019=CARTESIAN_POINT('',(-6.575,7.085,-1.435)); -#51020=CARTESIAN_POINT('',(-6.645,7.085,-1.435)); -#51021=CARTESIAN_POINT('',(-6.645,7.155,-1.435)); -#51022=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#51023=CARTESIAN_POINT('',(-6.955,7.155,-1.435)); -#51024=CARTESIAN_POINT('',(-6.955,7.085,-1.435)); -#51025=CARTESIAN_POINT('',(-7.025,7.085,-1.435)); -#51026=CARTESIAN_POINT('',(-7.025,7.155,-1.435)); -#51027=CARTESIAN_POINT('',(-7.025,4.17643593539449,-1.435)); -#51028=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,-1.435)); -#51029=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,-1.435)); -#51030=CARTESIAN_POINT('',(-1.99721189432331,12.8633844487225,-1.435)); -#51031=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,-1.435)); -#51032=CARTESIAN_POINT('',(-7.01,4.02098076211353,-1.435)); -#51033=CARTESIAN_POINT('',(-7.09,4.02098076211353,-1.435)); -#51034=CARTESIAN_POINT('',(-7.09,7.155,-1.435)); -#51035=CARTESIAN_POINT('',(-7.09,1.05,-1.435)); -#51036=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#51037=CARTESIAN_POINT('',(-7.31,1.05,-1.435)); -#51038=CARTESIAN_POINT('',(-7.31,7.15500000000001,-1.435)); -#51039=CARTESIAN_POINT('',(-7.31,4.02098076211353,-1.435)); -#51040=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,-1.435)); -#51041=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,-1.435)); -#51042=CARTESIAN_POINT('',(-4.85778810567659,-0.204938894384786,-1.435)); -#51043=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,-1.435)); -#51044=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,-1.435)); -#51045=CARTESIAN_POINT('',(-7.375,4.17643593539449,-1.435)); -#51046=CARTESIAN_POINT('',(-7.375,7.155,-1.435)); -#51047=CARTESIAN_POINT('',(-7.375,7.085,-1.435)); -#51048=CARTESIAN_POINT('',(-7.445,7.085,-1.435)); -#51049=CARTESIAN_POINT('',(-7.445,7.155,-1.435)); -#51050=CARTESIAN_POINT('',(7.89,7.155,-1.435)); -#51051=CARTESIAN_POINT('',(-7.755,7.155,-1.435)); -#51052=CARTESIAN_POINT('',(-7.755,7.085,-1.435)); -#51053=CARTESIAN_POINT('',(-7.825,7.085,-1.435)); -#51054=CARTESIAN_POINT('',(-7.825,7.155,-1.435)); -#51055=CARTESIAN_POINT('',(-7.825,4.17643593539449,-1.435)); -#51056=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,-1.435)); -#51057=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,-1.435)); -#51058=CARTESIAN_POINT('',(-2.59721189432318,13.2097946102363,-1.435)); -#51059=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,-1.435)); -#51060=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,-1.435)); -#51061=CARTESIAN_POINT('',(-7.89,4.02098076211353,-1.435)); -#51062=CARTESIAN_POINT('',(-7.89,7.155,-1.435)); -#51063=CARTESIAN_POINT('',(-7.88999999999999,1.05,-1.435)); -#51064=CARTESIAN_POINT('',(7.95,1.05,-1.435)); -#51065=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); -#51066=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); -#51067=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51068=CARTESIAN_POINT('',(7.89,1.,1.435)); -#51069=CARTESIAN_POINT('',(-7.95,1.,1.435)); -#51070=CARTESIAN_POINT('',(7.95,1.,1.435)); -#51071=CARTESIAN_POINT('',(-7.95,1.05,1.435)); -#51072=CARTESIAN_POINT('',(-7.95,1.05,1.435)); -#51073=CARTESIAN_POINT('',(-7.95,1.05,1.435)); -#51074=CARTESIAN_POINT('',(-7.89,1.05,1.435)); -#51075=CARTESIAN_POINT('',(-7.89,1.05,1.435)); -#51076=CARTESIAN_POINT('',(-7.89,4.02098076211354,1.435)); -#51077=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,1.435)); -#51078=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,1.435)); -#51079=CARTESIAN_POINT('',(-5.24075443937521,8.63104461023634,1.435)); -#51080=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,1.435)); -#51081=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,1.435)); -#51082=CARTESIAN_POINT('',(-7.825,4.17643593539449,1.435)); -#51083=CARTESIAN_POINT('',(-7.825,1.05,1.435)); -#51084=CARTESIAN_POINT('',(-7.825,7.085,1.435)); -#51085=CARTESIAN_POINT('',(-7.755,7.085,1.435)); -#51086=CARTESIAN_POINT('',(-7.755,7.155,1.435)); -#51087=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51088=CARTESIAN_POINT('',(-7.445,7.155,1.435)); -#51089=CARTESIAN_POINT('',(-7.445,7.085,1.435)); -#51090=CARTESIAN_POINT('',(-7.375,7.085,1.435)); -#51091=CARTESIAN_POINT('',(-7.375,1.05,1.435)); -#51092=CARTESIAN_POINT('',(-7.375,4.17643593539449,1.435)); -#51093=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,1.435)); -#51094=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,1.435)); -#51095=CARTESIAN_POINT('',(-2.21424556062457,-4.78368889438476,1.435)); -#51096=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,1.435)); -#51097=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,1.435)); -#51098=CARTESIAN_POINT('',(-7.31,4.02098076211353,1.435)); -#51099=CARTESIAN_POINT('',(-7.31,1.05000000000001,1.435)); -#51100=CARTESIAN_POINT('',(-7.31,1.05,1.435)); -#51101=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51102=CARTESIAN_POINT('',(-7.09,1.05,1.435)); -#51103=CARTESIAN_POINT('',(-7.09,1.05,1.435)); -#51104=CARTESIAN_POINT('',(-7.09,4.02098076211353,1.435)); -#51105=CARTESIAN_POINT('',(-7.01,4.02098076211353,1.435)); -#51106=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,1.435)); -#51107=CARTESIAN_POINT('',(-4.64075443937532,8.28463444872247,1.435)); -#51108=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,1.435)); -#51109=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,1.435)); -#51110=CARTESIAN_POINT('',(-7.025,4.17643593539449,1.435)); -#51111=CARTESIAN_POINT('',(-7.025,1.05,1.435)); -#51112=CARTESIAN_POINT('',(-7.025,7.085,1.435)); -#51113=CARTESIAN_POINT('',(-6.955,7.085,1.435)); -#51114=CARTESIAN_POINT('',(-6.955,7.155,1.435)); -#51115=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51116=CARTESIAN_POINT('',(-6.645,7.155,1.435)); -#51117=CARTESIAN_POINT('',(-6.645,7.085,1.435)); -#51118=CARTESIAN_POINT('',(-6.575,7.085,1.435)); -#51119=CARTESIAN_POINT('',(-6.575,1.05,1.435)); -#51120=CARTESIAN_POINT('',(-6.575,4.17643593539449,1.435)); -#51121=CARTESIAN_POINT('',(-6.495,4.17643593539449,1.435)); -#51122=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,1.435)); -#51123=CARTESIAN_POINT('',(-1.6142455606247,-4.43727873287094,1.435)); -#51124=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,1.435)); -#51125=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,1.435)); -#51126=CARTESIAN_POINT('',(-6.51,4.02098076211353,1.435)); -#51127=CARTESIAN_POINT('',(-6.51,1.05,1.435)); -#51128=CARTESIAN_POINT('',(-6.51,1.05,1.435)); -#51129=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51130=CARTESIAN_POINT('',(-6.29,1.05,1.435)); -#51131=CARTESIAN_POINT('',(-6.29,1.05,1.435)); -#51132=CARTESIAN_POINT('',(-6.29,4.02098076211353,1.435)); -#51133=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,1.435)); -#51134=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,1.435)); -#51135=CARTESIAN_POINT('',(-4.04075443937532,7.9382242872087,1.435)); -#51136=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,1.435)); -#51137=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,1.435)); -#51138=CARTESIAN_POINT('',(-6.225,4.17643593539449,1.435)); -#51139=CARTESIAN_POINT('',(-6.225,1.05,1.435)); -#51140=CARTESIAN_POINT('',(-6.225,7.085,1.435)); -#51141=CARTESIAN_POINT('',(-6.155,7.085,1.435)); -#51142=CARTESIAN_POINT('',(-6.155,7.155,1.435)); -#51143=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51144=CARTESIAN_POINT('',(-5.845,7.155,1.435)); -#51145=CARTESIAN_POINT('',(-5.845,7.085,1.435)); -#51146=CARTESIAN_POINT('',(-5.775,7.085,1.435)); -#51147=CARTESIAN_POINT('',(-5.775,1.05,1.435)); -#51148=CARTESIAN_POINT('',(-5.775,4.17643593539449,1.435)); -#51149=CARTESIAN_POINT('',(-5.695,4.17643593539449,1.435)); -#51150=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,1.435)); -#51151=CARTESIAN_POINT('',(-1.01424556062458,-4.0908685713572,1.435)); -#51152=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,1.435)); -#51153=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,1.435)); -#51154=CARTESIAN_POINT('',(-5.71,4.02098076211353,1.435)); -#51155=CARTESIAN_POINT('',(-5.71,1.05,1.435)); -#51156=CARTESIAN_POINT('',(-5.71,1.05,1.435)); -#51157=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51158=CARTESIAN_POINT('',(-5.49,1.05,1.435)); -#51159=CARTESIAN_POINT('',(-5.49,1.05,1.435)); -#51160=CARTESIAN_POINT('',(-5.49,4.02098076211353,1.435)); -#51161=CARTESIAN_POINT('',(-5.41,4.02098076211353,1.435)); -#51162=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,1.435)); -#51163=CARTESIAN_POINT('',(-3.44075443937541,7.59181412569484,1.435)); -#51164=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,1.435)); -#51165=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,1.435)); -#51166=CARTESIAN_POINT('',(-5.425,4.17643593539449,1.435)); -#51167=CARTESIAN_POINT('',(-5.425,1.05,1.435)); -#51168=CARTESIAN_POINT('',(-5.425,7.085,1.435)); -#51169=CARTESIAN_POINT('',(-5.355,7.085,1.435)); -#51170=CARTESIAN_POINT('',(-5.355,7.155,1.435)); -#51171=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51172=CARTESIAN_POINT('',(-5.045,7.155,1.435)); -#51173=CARTESIAN_POINT('',(-5.045,7.085,1.435)); -#51174=CARTESIAN_POINT('',(-4.975,7.085,1.435)); -#51175=CARTESIAN_POINT('',(-4.975,1.05,1.435)); -#51176=CARTESIAN_POINT('',(-4.975,4.17643593539449,1.435)); -#51177=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,1.435)); -#51178=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,1.435)); -#51179=CARTESIAN_POINT('',(-0.414245560624587,-3.74445840984342,1.435)); -#51180=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,1.435)); -#51181=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,1.435)); -#51182=CARTESIAN_POINT('',(-4.91,4.02098076211353,1.435)); -#51183=CARTESIAN_POINT('',(-4.91,1.05,1.435)); -#51184=CARTESIAN_POINT('',(-4.91,1.05,1.435)); -#51185=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51186=CARTESIAN_POINT('',(-4.69,1.05,1.435)); -#51187=CARTESIAN_POINT('',(-4.69,1.05,1.435)); -#51188=CARTESIAN_POINT('',(-4.69,4.02098076211353,1.435)); -#51189=CARTESIAN_POINT('',(-4.61,4.02098076211353,1.435)); -#51190=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,1.435)); -#51191=CARTESIAN_POINT('',(-2.84075443937532,7.24540396418114,1.435)); -#51192=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,1.435)); -#51193=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,1.435)); -#51194=CARTESIAN_POINT('',(-4.625,4.17643593539449,1.435)); -#51195=CARTESIAN_POINT('',(-4.625,1.05,1.435)); -#51196=CARTESIAN_POINT('',(-4.625,7.085,1.435)); -#51197=CARTESIAN_POINT('',(-4.555,7.085,1.435)); -#51198=CARTESIAN_POINT('',(-4.555,7.155,1.435)); -#51199=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51200=CARTESIAN_POINT('',(-4.245,7.155,1.435)); -#51201=CARTESIAN_POINT('',(-4.245,7.085,1.435)); -#51202=CARTESIAN_POINT('',(-4.175,7.085,1.435)); -#51203=CARTESIAN_POINT('',(-4.175,1.05,1.435)); -#51204=CARTESIAN_POINT('',(-4.175,4.17643593539449,1.435)); -#51205=CARTESIAN_POINT('',(-4.095,4.17643593539449,1.435)); -#51206=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,1.435)); -#51207=CARTESIAN_POINT('',(0.18575443937541,-3.39804824832965,1.435)); -#51208=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,1.435)); -#51209=CARTESIAN_POINT('',(-4.19,4.02098076211353,1.435)); -#51210=CARTESIAN_POINT('',(-4.11,4.02098076211353,1.435)); -#51211=CARTESIAN_POINT('',(-4.11,1.05,1.435)); -#51212=CARTESIAN_POINT('',(-4.11,1.05,1.435)); -#51213=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51214=CARTESIAN_POINT('',(-3.89,1.05,1.435)); -#51215=CARTESIAN_POINT('',(-3.89,1.05,1.435)); -#51216=CARTESIAN_POINT('',(-3.89,4.02098076211353,1.435)); -#51217=CARTESIAN_POINT('',(-3.81,4.02098076211353,1.435)); -#51218=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,1.435)); -#51219=CARTESIAN_POINT('',(-2.24075443937536,6.89899380266733,1.435)); -#51220=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,1.435)); -#51221=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,1.435)); -#51222=CARTESIAN_POINT('',(-3.825,4.17643593539449,1.435)); -#51223=CARTESIAN_POINT('',(-3.825,1.05,1.435)); -#51224=CARTESIAN_POINT('',(-3.825,7.085,1.435)); -#51225=CARTESIAN_POINT('',(-3.755,7.085,1.435)); -#51226=CARTESIAN_POINT('',(-3.755,7.155,1.435)); -#51227=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51228=CARTESIAN_POINT('',(-3.445,7.155,1.435)); -#51229=CARTESIAN_POINT('',(-3.445,7.085,1.435)); -#51230=CARTESIAN_POINT('',(-3.375,7.085,1.435)); -#51231=CARTESIAN_POINT('',(-3.375,1.05,1.435)); -#51232=CARTESIAN_POINT('',(-3.375,4.17643593539449,1.435)); -#51233=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,1.435)); -#51234=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,1.435)); -#51235=CARTESIAN_POINT('',(0.785754439375407,-3.05163808681587,1.435)); -#51236=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,1.435)); -#51237=CARTESIAN_POINT('',(-3.39,4.02098076211353,1.435)); -#51238=CARTESIAN_POINT('',(-3.31,4.02098076211353,1.435)); -#51239=CARTESIAN_POINT('',(-3.31,1.05,1.435)); -#51240=CARTESIAN_POINT('',(-3.31,1.05,1.435)); -#51241=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51242=CARTESIAN_POINT('',(-3.09,1.05,1.435)); -#51243=CARTESIAN_POINT('',(-3.09,1.05,1.435)); -#51244=CARTESIAN_POINT('',(-3.09,4.02098076211353,1.435)); -#51245=CARTESIAN_POINT('',(-3.01,4.02098076211353,1.435)); -#51246=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,1.435)); -#51247=CARTESIAN_POINT('',(-1.64075443937536,6.55258364115356,1.435)); -#51248=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,1.435)); -#51249=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,1.435)); -#51250=CARTESIAN_POINT('',(-3.025,4.17643593539449,1.435)); -#51251=CARTESIAN_POINT('',(-3.025,1.05,1.435)); -#51252=CARTESIAN_POINT('',(-3.025,7.085,1.435)); -#51253=CARTESIAN_POINT('',(-2.955,7.085,1.435)); -#51254=CARTESIAN_POINT('',(-2.955,7.155,1.435)); -#51255=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51256=CARTESIAN_POINT('',(-2.645,7.155,1.435)); -#51257=CARTESIAN_POINT('',(-2.645,7.085,1.435)); -#51258=CARTESIAN_POINT('',(-2.575,7.085,1.435)); -#51259=CARTESIAN_POINT('',(-2.575,1.05,1.435)); -#51260=CARTESIAN_POINT('',(-2.575,4.17643593539449,1.435)); -#51261=CARTESIAN_POINT('',(-2.495,4.17643593539449,1.435)); -#51262=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,1.435)); -#51263=CARTESIAN_POINT('',(1.3857544393754,-2.70522792530209,1.435)); -#51264=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,1.435)); -#51265=CARTESIAN_POINT('',(-2.59,4.02098076211353,1.435)); -#51266=CARTESIAN_POINT('',(-2.51,4.02098076211353,1.435)); -#51267=CARTESIAN_POINT('',(-2.51,1.05,1.435)); -#51268=CARTESIAN_POINT('',(-2.51,1.05,1.435)); -#51269=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51270=CARTESIAN_POINT('',(-2.29,1.05,1.435)); -#51271=CARTESIAN_POINT('',(-2.29,1.05,1.435)); -#51272=CARTESIAN_POINT('',(-2.29,4.02098076211353,1.435)); -#51273=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,1.435)); -#51274=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,1.435)); -#51275=CARTESIAN_POINT('',(-1.04075443937533,6.20617347963982,1.435)); -#51276=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,1.435)); -#51277=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,1.435)); -#51278=CARTESIAN_POINT('',(-2.225,4.17643593539449,1.435)); -#51279=CARTESIAN_POINT('',(-2.225,1.05,1.435)); -#51280=CARTESIAN_POINT('',(-2.225,7.085,1.435)); -#51281=CARTESIAN_POINT('',(-2.155,7.085,1.435)); -#51282=CARTESIAN_POINT('',(-2.155,7.155,1.435)); -#51283=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51284=CARTESIAN_POINT('',(-1.845,7.155,1.435)); -#51285=CARTESIAN_POINT('',(-1.845,7.085,1.435)); -#51286=CARTESIAN_POINT('',(-1.775,7.085,1.435)); -#51287=CARTESIAN_POINT('',(-1.775,1.05,1.435)); -#51288=CARTESIAN_POINT('',(-1.775,4.17643593539449,1.435)); -#51289=CARTESIAN_POINT('',(-1.695,4.17643593539449,1.435)); -#51290=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,1.435)); -#51291=CARTESIAN_POINT('',(1.98575443937538,-2.35881776378831,1.435)); -#51292=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,1.435)); -#51293=CARTESIAN_POINT('',(-1.79,4.02098076211353,1.435)); -#51294=CARTESIAN_POINT('',(-1.71,4.02098076211353,1.435)); -#51295=CARTESIAN_POINT('',(-1.71,1.05,1.435)); -#51296=CARTESIAN_POINT('',(-1.71,1.05,1.435)); -#51297=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51298=CARTESIAN_POINT('',(-1.49,1.05,1.435)); -#51299=CARTESIAN_POINT('',(-1.49,1.05,1.435)); -#51300=CARTESIAN_POINT('',(-1.49,4.02098076211353,1.435)); -#51301=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,1.435)); -#51302=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,1.435)); -#51303=CARTESIAN_POINT('',(-0.440754439375341,5.85976331812602,1.435)); -#51304=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,1.435)); -#51305=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,1.435)); -#51306=CARTESIAN_POINT('',(-1.425,4.17643593539449,1.435)); -#51307=CARTESIAN_POINT('',(-1.425,1.05,1.435)); -#51308=CARTESIAN_POINT('',(-1.425,7.085,1.435)); -#51309=CARTESIAN_POINT('',(-1.355,7.085,1.435)); -#51310=CARTESIAN_POINT('',(-1.355,7.155,1.435)); -#51311=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51312=CARTESIAN_POINT('',(-1.045,7.155,1.435)); -#51313=CARTESIAN_POINT('',(-1.045,7.085,1.435)); -#51314=CARTESIAN_POINT('',(-0.975000000000001,7.085,1.435)); -#51315=CARTESIAN_POINT('',(-0.975000000000002,1.05,1.435)); -#51316=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,1.435)); -#51317=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,1.435)); -#51318=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,1.435)); -#51319=CARTESIAN_POINT('',(2.58575443937537,-2.01240760227453,1.435)); -#51320=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,1.435)); -#51321=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,1.435)); -#51322=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,1.435)); -#51323=CARTESIAN_POINT('',(-0.910000000000001,1.05,1.435)); -#51324=CARTESIAN_POINT('',(-0.910000000000001,1.05,1.435)); -#51325=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51326=CARTESIAN_POINT('',(-0.690000000000001,1.05,1.435)); -#51327=CARTESIAN_POINT('',(-0.690000000000001,1.05,1.435)); -#51328=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,1.435)); -#51329=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,1.435)); -#51330=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,1.435)); -#51331=CARTESIAN_POINT('',(0.159245560624664,5.51335315661226,1.435)); -#51332=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,1.435)); -#51333=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,1.435)); -#51334=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,1.435)); -#51335=CARTESIAN_POINT('',(-0.625000000000001,1.05,1.435)); -#51336=CARTESIAN_POINT('',(-0.625000000000001,7.085,1.435)); -#51337=CARTESIAN_POINT('',(-0.555,7.085,1.435)); -#51338=CARTESIAN_POINT('',(-0.555000000000001,7.155,1.435)); -#51339=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51340=CARTESIAN_POINT('',(-0.245000000000001,7.155,1.435)); -#51341=CARTESIAN_POINT('',(-0.245000000000001,7.085,1.435)); -#51342=CARTESIAN_POINT('',(-0.175000000000001,7.085,1.435)); -#51343=CARTESIAN_POINT('',(-0.175000000000002,1.05,1.435)); -#51344=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,1.435)); -#51345=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,1.435)); -#51346=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,1.435)); -#51347=CARTESIAN_POINT('',(3.18575443937536,-1.66599744076075,1.435)); -#51348=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,1.435)); -#51349=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,1.435)); -#51350=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,1.435)); -#51351=CARTESIAN_POINT('',(-0.110000000000001,1.05,1.435)); -#51352=CARTESIAN_POINT('',(-0.110000000000001,1.05,1.435)); -#51353=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51354=CARTESIAN_POINT('',(0.109999999999999,1.05,1.435)); -#51355=CARTESIAN_POINT('',(0.109999999999999,1.05,1.435)); -#51356=CARTESIAN_POINT('',(0.11,4.02098076211353,1.435)); -#51357=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,1.435)); -#51358=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,1.435)); -#51359=CARTESIAN_POINT('',(0.759245560624665,5.16694299509848,1.435)); -#51360=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,1.435)); -#51361=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,1.435)); -#51362=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,1.435)); -#51363=CARTESIAN_POINT('',(0.174999999999999,1.05,1.435)); -#51364=CARTESIAN_POINT('',(0.174999999999999,7.085,1.435)); -#51365=CARTESIAN_POINT('',(0.245,7.085,1.435)); -#51366=CARTESIAN_POINT('',(0.244999999999999,7.155,1.435)); -#51367=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51368=CARTESIAN_POINT('',(0.554999999999999,7.155,1.435)); -#51369=CARTESIAN_POINT('',(0.554999999999999,7.085,1.435)); -#51370=CARTESIAN_POINT('',(0.624999999999999,7.085,1.435)); -#51371=CARTESIAN_POINT('',(0.624999999999999,1.05,1.435)); -#51372=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,1.435)); -#51373=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,1.435)); -#51374=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,1.435)); -#51375=CARTESIAN_POINT('',(3.78575443937537,-1.31958727924698,1.435)); -#51376=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,1.435)); -#51377=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,1.435)); -#51378=CARTESIAN_POINT('',(0.69,4.02098076211353,1.435)); -#51379=CARTESIAN_POINT('',(0.69,1.05,1.435)); -#51380=CARTESIAN_POINT('',(0.69,1.05,1.435)); -#51381=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51382=CARTESIAN_POINT('',(0.909999999999999,1.05,1.435)); -#51383=CARTESIAN_POINT('',(0.909999999999999,1.05,1.435)); -#51384=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,1.435)); -#51385=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,1.435)); -#51386=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,1.435)); -#51387=CARTESIAN_POINT('',(1.35924556062466,4.8205328335847,1.435)); -#51388=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,1.435)); -#51389=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,1.435)); -#51390=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,1.435)); -#51391=CARTESIAN_POINT('',(0.974999999999998,1.05,1.435)); -#51392=CARTESIAN_POINT('',(0.974999999999998,7.085,1.435)); -#51393=CARTESIAN_POINT('',(1.045,7.085,1.435)); -#51394=CARTESIAN_POINT('',(1.045,7.155,1.435)); -#51395=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51396=CARTESIAN_POINT('',(1.355,7.155,1.435)); -#51397=CARTESIAN_POINT('',(1.355,7.085,1.435)); -#51398=CARTESIAN_POINT('',(1.425,7.085,1.435)); -#51399=CARTESIAN_POINT('',(1.425,1.05,1.435)); -#51400=CARTESIAN_POINT('',(1.425,4.17643593539449,1.435)); -#51401=CARTESIAN_POINT('',(1.505,4.17643593539449,1.435)); -#51402=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,1.435)); -#51403=CARTESIAN_POINT('',(4.38575443937537,-0.9731771177332,1.435)); -#51404=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,1.435)); -#51405=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,1.435)); -#51406=CARTESIAN_POINT('',(1.49,4.02098076211353,1.435)); -#51407=CARTESIAN_POINT('',(1.49,1.05,1.435)); -#51408=CARTESIAN_POINT('',(1.49,1.05,1.435)); -#51409=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51410=CARTESIAN_POINT('',(1.71,1.05,1.435)); -#51411=CARTESIAN_POINT('',(1.71,1.05,1.435)); -#51412=CARTESIAN_POINT('',(1.71,4.02098076211353,1.435)); -#51413=CARTESIAN_POINT('',(1.79,4.02098076211353,1.435)); -#51414=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,1.435)); -#51415=CARTESIAN_POINT('',(1.95924556062466,4.47412267207092,1.435)); -#51416=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,1.435)); -#51417=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,1.435)); -#51418=CARTESIAN_POINT('',(1.775,4.17643593539449,1.435)); -#51419=CARTESIAN_POINT('',(1.775,1.05,1.435)); -#51420=CARTESIAN_POINT('',(1.775,7.085,1.435)); -#51421=CARTESIAN_POINT('',(1.845,7.085,1.435)); -#51422=CARTESIAN_POINT('',(1.845,7.155,1.435)); -#51423=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51424=CARTESIAN_POINT('',(2.155,7.155,1.435)); -#51425=CARTESIAN_POINT('',(2.155,7.085,1.435)); -#51426=CARTESIAN_POINT('',(2.225,7.085,1.435)); -#51427=CARTESIAN_POINT('',(2.225,1.05,1.435)); -#51428=CARTESIAN_POINT('',(2.225,4.17643593539449,1.435)); -#51429=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,1.435)); -#51430=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,1.435)); -#51431=CARTESIAN_POINT('',(4.98575443937538,-0.626766956219423,1.435)); -#51432=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,1.435)); -#51433=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,1.435)); -#51434=CARTESIAN_POINT('',(2.29,4.02098076211353,1.435)); -#51435=CARTESIAN_POINT('',(2.29,1.05,1.435)); -#51436=CARTESIAN_POINT('',(2.29,1.05,1.435)); -#51437=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51438=CARTESIAN_POINT('',(2.51,1.05,1.435)); -#51439=CARTESIAN_POINT('',(2.51,1.05,1.435)); -#51440=CARTESIAN_POINT('',(2.51,4.02098076211353,1.435)); -#51441=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,1.435)); -#51442=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,1.435)); -#51443=CARTESIAN_POINT('',(2.55924556062466,4.12771251055716,1.435)); -#51444=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,1.435)); -#51445=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,1.435)); -#51446=CARTESIAN_POINT('',(2.575,4.17643593539449,1.435)); -#51447=CARTESIAN_POINT('',(2.575,1.05,1.435)); -#51448=CARTESIAN_POINT('',(2.575,7.085,1.435)); -#51449=CARTESIAN_POINT('',(2.645,7.085,1.435)); -#51450=CARTESIAN_POINT('',(2.645,7.155,1.435)); -#51451=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51452=CARTESIAN_POINT('',(2.955,7.155,1.435)); -#51453=CARTESIAN_POINT('',(2.955,7.085,1.435)); -#51454=CARTESIAN_POINT('',(3.025,7.085,1.435)); -#51455=CARTESIAN_POINT('',(3.025,1.05,1.435)); -#51456=CARTESIAN_POINT('',(3.025,4.17643593539449,1.435)); -#51457=CARTESIAN_POINT('',(3.105,4.17643593539449,1.435)); -#51458=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,1.435)); -#51459=CARTESIAN_POINT('',(5.58575443937535,-0.280356794705646,1.435)); -#51460=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,1.435)); -#51461=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,1.435)); -#51462=CARTESIAN_POINT('',(3.09,4.02098076211353,1.435)); -#51463=CARTESIAN_POINT('',(3.09,1.05,1.435)); -#51464=CARTESIAN_POINT('',(3.09,1.05,1.435)); -#51465=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51466=CARTESIAN_POINT('',(3.31,1.05,1.435)); -#51467=CARTESIAN_POINT('',(3.31,1.05,1.435)); -#51468=CARTESIAN_POINT('',(3.31,4.02098076211353,1.435)); -#51469=CARTESIAN_POINT('',(3.39,4.02098076211353,1.435)); -#51470=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,1.435)); -#51471=CARTESIAN_POINT('',(3.15924556062465,3.78130234904336,1.435)); -#51472=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,1.435)); -#51473=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,1.435)); -#51474=CARTESIAN_POINT('',(3.375,4.17643593539449,1.435)); -#51475=CARTESIAN_POINT('',(3.375,1.05,1.435)); -#51476=CARTESIAN_POINT('',(3.375,7.085,1.435)); -#51477=CARTESIAN_POINT('',(3.445,7.085,1.435)); -#51478=CARTESIAN_POINT('',(3.445,7.155,1.435)); -#51479=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51480=CARTESIAN_POINT('',(3.755,7.155,1.435)); -#51481=CARTESIAN_POINT('',(3.755,7.085,1.435)); -#51482=CARTESIAN_POINT('',(3.825,7.085,1.435)); -#51483=CARTESIAN_POINT('',(3.825,1.05,1.435)); -#51484=CARTESIAN_POINT('',(3.825,4.17643593539449,1.435)); -#51485=CARTESIAN_POINT('',(3.905,4.17643593539449,1.435)); -#51486=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,1.435)); -#51487=CARTESIAN_POINT('',(6.18575443937535,0.06605336680813,1.435)); -#51488=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,1.435)); -#51489=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,1.435)); -#51490=CARTESIAN_POINT('',(3.89,4.02098076211353,1.435)); -#51491=CARTESIAN_POINT('',(3.89,1.05,1.435)); -#51492=CARTESIAN_POINT('',(3.89,1.05,1.435)); -#51493=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51494=CARTESIAN_POINT('',(4.11,1.05,1.435)); -#51495=CARTESIAN_POINT('',(4.11,1.05,1.435)); -#51496=CARTESIAN_POINT('',(4.11,4.02098076211353,1.435)); -#51497=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,1.435)); -#51498=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,1.435)); -#51499=CARTESIAN_POINT('',(3.75924556062466,3.43489218752961,1.435)); -#51500=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,1.435)); -#51501=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,1.435)); -#51502=CARTESIAN_POINT('',(4.175,4.17643593539449,1.435)); -#51503=CARTESIAN_POINT('',(4.175,1.05,1.435)); -#51504=CARTESIAN_POINT('',(4.175,7.085,1.435)); -#51505=CARTESIAN_POINT('',(4.245,7.085,1.435)); -#51506=CARTESIAN_POINT('',(4.245,7.155,1.435)); -#51507=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51508=CARTESIAN_POINT('',(4.555,7.155,1.435)); -#51509=CARTESIAN_POINT('',(4.555,7.085,1.435)); -#51510=CARTESIAN_POINT('',(4.625,7.085,1.435)); -#51511=CARTESIAN_POINT('',(4.625,1.05,1.435)); -#51512=CARTESIAN_POINT('',(4.625,4.17643593539449,1.435)); -#51513=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,1.435)); -#51514=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,1.435)); -#51515=CARTESIAN_POINT('',(6.78575443937537,0.41246352832191,1.435)); -#51516=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,1.435)); -#51517=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,1.435)); -#51518=CARTESIAN_POINT('',(4.69,4.02098076211353,1.435)); -#51519=CARTESIAN_POINT('',(4.69,1.05,1.435)); -#51520=CARTESIAN_POINT('',(4.69,1.05,1.435)); -#51521=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51522=CARTESIAN_POINT('',(4.91,1.05,1.435)); -#51523=CARTESIAN_POINT('',(4.91,1.05,1.435)); -#51524=CARTESIAN_POINT('',(4.91,4.02098076211353,1.435)); -#51525=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,1.435)); -#51526=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,1.435)); -#51527=CARTESIAN_POINT('',(4.35924556062466,3.08848202601583,1.435)); -#51528=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,1.435)); -#51529=CARTESIAN_POINT('',(4.895,4.17643593539449,1.435)); -#51530=CARTESIAN_POINT('',(4.975,4.17643593539449,1.435)); -#51531=CARTESIAN_POINT('',(4.975,1.05,1.435)); -#51532=CARTESIAN_POINT('',(4.975,7.085,1.435)); -#51533=CARTESIAN_POINT('',(5.045,7.085,1.435)); -#51534=CARTESIAN_POINT('',(5.045,7.155,1.435)); -#51535=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51536=CARTESIAN_POINT('',(5.355,7.155,1.435)); -#51537=CARTESIAN_POINT('',(5.355,7.085,1.435)); -#51538=CARTESIAN_POINT('',(5.425,7.085,1.435)); -#51539=CARTESIAN_POINT('',(5.425,1.05,1.435)); -#51540=CARTESIAN_POINT('',(5.425,4.17643593539449,1.435)); -#51541=CARTESIAN_POINT('',(5.505,4.17643593539449,1.435)); -#51542=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,1.435)); -#51543=CARTESIAN_POINT('',(7.38575443937533,0.758873689835675,1.435)); -#51544=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,1.435)); -#51545=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,1.435)); -#51546=CARTESIAN_POINT('',(5.49,4.02098076211353,1.435)); -#51547=CARTESIAN_POINT('',(5.49,1.05,1.435)); -#51548=CARTESIAN_POINT('',(5.49,1.05,1.435)); -#51549=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51550=CARTESIAN_POINT('',(5.71,1.05,1.435)); -#51551=CARTESIAN_POINT('',(5.71,1.05,1.435)); -#51552=CARTESIAN_POINT('',(5.71,4.02098076211353,1.435)); -#51553=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,1.435)); -#51554=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,1.435)); -#51555=CARTESIAN_POINT('',(4.95924556062466,2.74207186450205,1.435)); -#51556=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,1.435)); -#51557=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,1.435)); -#51558=CARTESIAN_POINT('',(5.775,4.17643593539449,1.435)); -#51559=CARTESIAN_POINT('',(5.775,1.05,1.435)); -#51560=CARTESIAN_POINT('',(5.775,7.085,1.435)); -#51561=CARTESIAN_POINT('',(5.845,7.085,1.435)); -#51562=CARTESIAN_POINT('',(5.845,7.155,1.435)); -#51563=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51564=CARTESIAN_POINT('',(6.155,7.155,1.435)); -#51565=CARTESIAN_POINT('',(6.155,7.085,1.435)); -#51566=CARTESIAN_POINT('',(6.225,7.085,1.435)); -#51567=CARTESIAN_POINT('',(6.225,1.05,1.435)); -#51568=CARTESIAN_POINT('',(6.225,4.17643593539449,1.435)); -#51569=CARTESIAN_POINT('',(6.305,4.17643593539449,1.435)); -#51570=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,1.435)); -#51571=CARTESIAN_POINT('',(7.98575443937536,1.10528385134947,1.435)); -#51572=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,1.435)); -#51573=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,1.435)); -#51574=CARTESIAN_POINT('',(6.29,4.02098076211353,1.435)); -#51575=CARTESIAN_POINT('',(6.29,1.05,1.435)); -#51576=CARTESIAN_POINT('',(6.29,1.05,1.435)); -#51577=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51578=CARTESIAN_POINT('',(6.51,1.05,1.435)); -#51579=CARTESIAN_POINT('',(6.51,1.05,1.435)); -#51580=CARTESIAN_POINT('',(6.51,4.02098076211353,1.435)); -#51581=CARTESIAN_POINT('',(6.59,4.02098076211353,1.435)); -#51582=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,1.435)); -#51583=CARTESIAN_POINT('',(5.55924556062466,2.39566170298825,1.435)); -#51584=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,1.435)); -#51585=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,1.435)); -#51586=CARTESIAN_POINT('',(6.575,4.17643593539449,1.435)); -#51587=CARTESIAN_POINT('',(6.575,1.05,1.435)); -#51588=CARTESIAN_POINT('',(6.575,7.085,1.435)); -#51589=CARTESIAN_POINT('',(6.645,7.085,1.435)); -#51590=CARTESIAN_POINT('',(6.645,7.155,1.435)); -#51591=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51592=CARTESIAN_POINT('',(6.955,7.155,1.435)); -#51593=CARTESIAN_POINT('',(6.955,7.085,1.435)); -#51594=CARTESIAN_POINT('',(7.025,7.085,1.435)); -#51595=CARTESIAN_POINT('',(7.025,1.05,1.435)); -#51596=CARTESIAN_POINT('',(7.025,4.17643593539449,1.435)); -#51597=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,1.435)); -#51598=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,1.435)); -#51599=CARTESIAN_POINT('',(8.58575443937535,1.45169401286324,1.435)); -#51600=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,1.435)); -#51601=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,1.435)); -#51602=CARTESIAN_POINT('',(7.09,4.02098076211353,1.435)); -#51603=CARTESIAN_POINT('',(7.09,1.05,1.435)); -#51604=CARTESIAN_POINT('',(7.09,1.05,1.435)); -#51605=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51606=CARTESIAN_POINT('',(7.31,1.05,1.435)); -#51607=CARTESIAN_POINT('',(7.31,1.05,1.435)); -#51608=CARTESIAN_POINT('',(7.31,4.02098076211353,1.435)); -#51609=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,1.435)); -#51610=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,1.435)); -#51611=CARTESIAN_POINT('',(6.15924556062466,2.0492515414745,1.435)); -#51612=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,1.435)); -#51613=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,1.435)); -#51614=CARTESIAN_POINT('',(7.375,4.17643593539449,1.435)); -#51615=CARTESIAN_POINT('',(7.375,1.05,1.435)); -#51616=CARTESIAN_POINT('',(7.375,7.085,1.435)); -#51617=CARTESIAN_POINT('',(7.445,7.085,1.435)); -#51618=CARTESIAN_POINT('',(7.445,7.155,1.435)); -#51619=CARTESIAN_POINT('',(7.89,7.155,1.435)); -#51620=CARTESIAN_POINT('',(7.755,7.155,1.435)); -#51621=CARTESIAN_POINT('',(7.755,7.085,1.435)); -#51622=CARTESIAN_POINT('',(7.825,7.085,1.435)); -#51623=CARTESIAN_POINT('',(7.825,1.05,1.435)); -#51624=CARTESIAN_POINT('',(7.825,4.17643593539449,1.435)); -#51625=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,1.435)); -#51626=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,1.435)); -#51627=CARTESIAN_POINT('',(9.18575443937535,1.79810417437702,1.435)); -#51628=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,1.435)); -#51629=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,1.435)); -#51630=CARTESIAN_POINT('',(7.89,4.02098076211353,1.435)); -#51631=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51632=CARTESIAN_POINT('',(7.89,1.05,1.435)); -#51633=CARTESIAN_POINT('',(-7.95,1.05,1.435)); -#51634=CARTESIAN_POINT('',(7.95,1.05,1.435)); -#51635=CARTESIAN_POINT('',(7.95,1.05,1.435)); -#51636=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51637=CARTESIAN_POINT('',(7.89,1.,1.6)); -#51638=CARTESIAN_POINT('',(8.,1.,1.6)); -#51639=CARTESIAN_POINT('',(-8.,1.,1.6)); -#51640=CARTESIAN_POINT('',(8.,1.05,1.6)); -#51641=CARTESIAN_POINT('',(8.,1.05,1.6)); -#51642=CARTESIAN_POINT('',(-8.,1.05,1.6)); -#51643=CARTESIAN_POINT('',(7.89,1.05,1.6)); -#51644=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51645=CARTESIAN_POINT('',(7.89,4.02098076211353,1.6)); -#51646=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,1.6)); -#51647=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,1.6)); -#51648=CARTESIAN_POINT('',(6.54221189432333,6.37685417437699,1.6)); -#51649=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,1.6)); -#51650=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,1.6)); -#51651=CARTESIAN_POINT('',(7.825,4.17643593539449,1.6)); -#51652=CARTESIAN_POINT('',(7.825,7.155,1.6)); -#51653=CARTESIAN_POINT('',(7.825,7.085,1.6)); -#51654=CARTESIAN_POINT('',(7.755,7.085,1.6)); -#51655=CARTESIAN_POINT('',(7.755,7.155,1.6)); -#51656=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51657=CARTESIAN_POINT('',(7.445,7.155,1.6)); -#51658=CARTESIAN_POINT('',(7.445,7.085,1.6)); -#51659=CARTESIAN_POINT('',(7.375,7.085,1.6)); -#51660=CARTESIAN_POINT('',(7.375,7.155,1.6)); -#51661=CARTESIAN_POINT('',(7.375,4.17643593539449,1.6)); -#51662=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,1.6)); -#51663=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,1.6)); -#51664=CARTESIAN_POINT('',(8.80278810567666,6.62800154147449,1.6)); -#51665=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,1.6)); -#51666=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,1.6)); -#51667=CARTESIAN_POINT('',(7.31,4.02098076211353,1.6)); -#51668=CARTESIAN_POINT('',(7.31,7.155,1.6)); -#51669=CARTESIAN_POINT('',(7.31,1.05,1.6)); -#51670=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); -#51671=CARTESIAN_POINT('',(7.09,1.05,1.6)); -#51672=CARTESIAN_POINT('',(7.09,7.155,1.6)); -#51673=CARTESIAN_POINT('',(7.09,4.02098076211353,1.6)); -#51674=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,1.6)); -#51675=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,1.6)); -#51676=CARTESIAN_POINT('',(5.94221189432333,6.03044401286321,1.6)); -#51677=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,1.6)); -#51678=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,1.6)); -#51679=CARTESIAN_POINT('',(7.025,4.17643593539449,1.6)); -#51680=CARTESIAN_POINT('',(7.025,7.155,1.6)); -#51681=CARTESIAN_POINT('',(7.025,7.085,1.6)); -#51682=CARTESIAN_POINT('',(6.955,7.085,1.6)); -#51683=CARTESIAN_POINT('',(6.955,7.155,1.6)); -#51684=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51685=CARTESIAN_POINT('',(6.645,7.155,1.6)); -#51686=CARTESIAN_POINT('',(6.645,7.085,1.6)); -#51687=CARTESIAN_POINT('',(6.575,7.085,1.6)); -#51688=CARTESIAN_POINT('',(6.575,7.155,1.6)); -#51689=CARTESIAN_POINT('',(6.575,4.17643593539449,1.6)); -#51690=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,1.6)); -#51691=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,1.6)); -#51692=CARTESIAN_POINT('',(8.20278810567664,6.97441170298828,1.6)); -#51693=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,1.6)); -#51694=CARTESIAN_POINT('',(6.59,4.02098076211353,1.6)); -#51695=CARTESIAN_POINT('',(6.51,4.02098076211353,1.6)); -#51696=CARTESIAN_POINT('',(6.51,7.155,1.6)); -#51697=CARTESIAN_POINT('',(6.51,1.05,1.6)); -#51698=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); -#51699=CARTESIAN_POINT('',(6.29,1.05,1.6)); -#51700=CARTESIAN_POINT('',(6.29,7.155,1.6)); -#51701=CARTESIAN_POINT('',(6.29,4.02098076211353,1.6)); -#51702=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,1.6)); -#51703=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,1.6)); -#51704=CARTESIAN_POINT('',(5.34221189432334,5.68403385134943,1.6)); -#51705=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,1.6)); -#51706=CARTESIAN_POINT('',(6.305,4.17643593539449,1.6)); -#51707=CARTESIAN_POINT('',(6.225,4.17643593539449,1.6)); -#51708=CARTESIAN_POINT('',(6.225,7.155,1.6)); -#51709=CARTESIAN_POINT('',(6.225,7.085,1.6)); -#51710=CARTESIAN_POINT('',(6.155,7.085,1.6)); -#51711=CARTESIAN_POINT('',(6.155,7.155,1.6)); -#51712=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51713=CARTESIAN_POINT('',(5.845,7.155,1.6)); -#51714=CARTESIAN_POINT('',(5.845,7.085,1.6)); -#51715=CARTESIAN_POINT('',(5.775,7.085,1.6)); -#51716=CARTESIAN_POINT('',(5.775,7.155,1.6)); -#51717=CARTESIAN_POINT('',(5.775,4.17643593539449,1.6)); -#51718=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,1.6)); -#51719=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,1.6)); -#51720=CARTESIAN_POINT('',(7.60278810567666,7.32082186450204,1.6)); -#51721=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,1.6)); -#51722=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,1.6)); -#51723=CARTESIAN_POINT('',(5.71,4.02098076211353,1.6)); -#51724=CARTESIAN_POINT('',(5.71,7.155,1.6)); -#51725=CARTESIAN_POINT('',(5.71,1.05,1.6)); -#51726=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); -#51727=CARTESIAN_POINT('',(5.49,1.05,1.6)); -#51728=CARTESIAN_POINT('',(5.49,7.155,1.6)); -#51729=CARTESIAN_POINT('',(5.49,4.02098076211353,1.6)); -#51730=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,1.6)); -#51731=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,1.6)); -#51732=CARTESIAN_POINT('',(4.74221189432334,5.33762368983569,1.6)); -#51733=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,1.6)); -#51734=CARTESIAN_POINT('',(5.505,4.17643593539449,1.6)); -#51735=CARTESIAN_POINT('',(5.425,4.17643593539449,1.6)); -#51736=CARTESIAN_POINT('',(5.425,7.155,1.6)); -#51737=CARTESIAN_POINT('',(5.425,7.085,1.6)); -#51738=CARTESIAN_POINT('',(5.355,7.085,1.6)); -#51739=CARTESIAN_POINT('',(5.355,7.155,1.6)); -#51740=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51741=CARTESIAN_POINT('',(5.045,7.155,1.6)); -#51742=CARTESIAN_POINT('',(5.045,7.085,1.6)); -#51743=CARTESIAN_POINT('',(4.975,7.085,1.6)); -#51744=CARTESIAN_POINT('',(4.975,7.155,1.6)); -#51745=CARTESIAN_POINT('',(4.975,4.17643593539449,1.6)); -#51746=CARTESIAN_POINT('',(4.895,4.17643593539449,1.6)); -#51747=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,1.6)); -#51748=CARTESIAN_POINT('',(7.00278810567667,7.66723202601582,1.6)); -#51749=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,1.6)); -#51750=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,1.6)); -#51751=CARTESIAN_POINT('',(4.91,4.02098076211353,1.6)); -#51752=CARTESIAN_POINT('',(4.91,7.155,1.6)); -#51753=CARTESIAN_POINT('',(4.91,1.05,1.6)); -#51754=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); -#51755=CARTESIAN_POINT('',(4.69,1.05,1.6)); -#51756=CARTESIAN_POINT('',(4.69,7.155,1.6)); -#51757=CARTESIAN_POINT('',(4.69,4.02098076211353,1.6)); -#51758=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,1.6)); -#51759=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,1.6)); -#51760=CARTESIAN_POINT('',(4.14221189432335,4.99121352832188,1.6)); -#51761=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,1.6)); -#51762=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,1.6)); -#51763=CARTESIAN_POINT('',(4.625,4.17643593539449,1.6)); -#51764=CARTESIAN_POINT('',(4.625,7.155,1.6)); -#51765=CARTESIAN_POINT('',(4.625,7.085,1.6)); -#51766=CARTESIAN_POINT('',(4.555,7.085,1.6)); -#51767=CARTESIAN_POINT('',(4.555,7.155,1.6)); -#51768=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51769=CARTESIAN_POINT('',(4.245,7.155,1.6)); -#51770=CARTESIAN_POINT('',(4.245,7.085,1.6)); -#51771=CARTESIAN_POINT('',(4.175,7.085,1.6)); -#51772=CARTESIAN_POINT('',(4.175,7.155,1.6)); -#51773=CARTESIAN_POINT('',(4.175,4.17643593539449,1.6)); -#51774=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,1.6)); -#51775=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,1.6)); -#51776=CARTESIAN_POINT('',(6.40278810567667,8.01364218752959,1.6)); -#51777=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,1.6)); -#51778=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,1.6)); -#51779=CARTESIAN_POINT('',(4.11,4.02098076211353,1.6)); -#51780=CARTESIAN_POINT('',(4.11,7.155,1.6)); -#51781=CARTESIAN_POINT('',(4.11,1.05,1.6)); -#51782=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); -#51783=CARTESIAN_POINT('',(3.89,1.05,1.6)); -#51784=CARTESIAN_POINT('',(3.89,7.155,1.6)); -#51785=CARTESIAN_POINT('',(3.89,4.02098076211353,1.6)); -#51786=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,1.6)); -#51787=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,1.6)); -#51788=CARTESIAN_POINT('',(3.54221189432334,4.64480336680812,1.6)); -#51789=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,1.6)); -#51790=CARTESIAN_POINT('',(3.905,4.17643593539449,1.6)); -#51791=CARTESIAN_POINT('',(3.825,4.17643593539449,1.6)); -#51792=CARTESIAN_POINT('',(3.825,7.155,1.6)); -#51793=CARTESIAN_POINT('',(3.825,7.085,1.6)); -#51794=CARTESIAN_POINT('',(3.755,7.085,1.6)); -#51795=CARTESIAN_POINT('',(3.755,7.155,1.6)); -#51796=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51797=CARTESIAN_POINT('',(3.445,7.155,1.6)); -#51798=CARTESIAN_POINT('',(3.445,7.085,1.6)); -#51799=CARTESIAN_POINT('',(3.375,7.085,1.6)); -#51800=CARTESIAN_POINT('',(3.375,7.155,1.6)); -#51801=CARTESIAN_POINT('',(3.375,4.17643593539449,1.6)); -#51802=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,1.6)); -#51803=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,1.6)); -#51804=CARTESIAN_POINT('',(5.80278810567665,8.36005234904337,1.6)); -#51805=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,1.6)); -#51806=CARTESIAN_POINT('',(3.39,4.02098076211353,1.6)); -#51807=CARTESIAN_POINT('',(3.31,4.02098076211353,1.6)); -#51808=CARTESIAN_POINT('',(3.31,7.155,1.6)); -#51809=CARTESIAN_POINT('',(3.31,1.05,1.6)); -#51810=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); -#51811=CARTESIAN_POINT('',(3.09,1.05,1.6)); -#51812=CARTESIAN_POINT('',(3.09,7.155,1.6)); -#51813=CARTESIAN_POINT('',(3.09,4.02098076211353,1.6)); -#51814=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,1.6)); -#51815=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,1.6)); -#51816=CARTESIAN_POINT('',(2.94221189432335,4.29839320529434,1.6)); -#51817=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,1.6)); -#51818=CARTESIAN_POINT('',(3.105,4.17643593539449,1.6)); -#51819=CARTESIAN_POINT('',(3.025,4.17643593539449,1.6)); -#51820=CARTESIAN_POINT('',(3.025,7.155,1.6)); -#51821=CARTESIAN_POINT('',(3.025,7.085,1.6)); -#51822=CARTESIAN_POINT('',(2.955,7.085,1.6)); -#51823=CARTESIAN_POINT('',(2.955,7.155,1.6)); -#51824=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51825=CARTESIAN_POINT('',(2.645,7.155,1.6)); -#51826=CARTESIAN_POINT('',(2.645,7.085,1.6)); -#51827=CARTESIAN_POINT('',(2.575,7.085,1.6)); -#51828=CARTESIAN_POINT('',(2.575,7.155,1.6)); -#51829=CARTESIAN_POINT('',(2.575,4.17643593539449,1.6)); -#51830=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,1.6)); -#51831=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,1.6)); -#51832=CARTESIAN_POINT('',(5.20278810567667,8.70646251055715,1.6)); -#51833=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,1.6)); -#51834=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,1.6)); -#51835=CARTESIAN_POINT('',(2.51,4.02098076211353,1.6)); -#51836=CARTESIAN_POINT('',(2.51,7.155,1.6)); -#51837=CARTESIAN_POINT('',(2.51,1.05,1.6)); -#51838=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#51839=CARTESIAN_POINT('',(2.29,1.05,1.6)); -#51840=CARTESIAN_POINT('',(2.29,7.155,1.6)); -#51841=CARTESIAN_POINT('',(2.29,4.02098076211353,1.6)); -#51842=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,1.6)); -#51843=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,1.6)); -#51844=CARTESIAN_POINT('',(2.34221189432336,3.95198304378055,1.6)); -#51845=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,1.6)); -#51846=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,1.6)); -#51847=CARTESIAN_POINT('',(2.225,4.17643593539449,1.6)); -#51848=CARTESIAN_POINT('',(2.225,7.155,1.6)); -#51849=CARTESIAN_POINT('',(2.225,7.085,1.6)); -#51850=CARTESIAN_POINT('',(2.155,7.085,1.6)); -#51851=CARTESIAN_POINT('',(2.155,7.155,1.6)); -#51852=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51853=CARTESIAN_POINT('',(1.845,7.155,1.6)); -#51854=CARTESIAN_POINT('',(1.845,7.085,1.6)); -#51855=CARTESIAN_POINT('',(1.775,7.085,1.6)); -#51856=CARTESIAN_POINT('',(1.775,7.155,1.6)); -#51857=CARTESIAN_POINT('',(1.775,4.17643593539449,1.6)); -#51858=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,1.6)); -#51859=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,1.6)); -#51860=CARTESIAN_POINT('',(4.60278810567666,9.05287267207092,1.6)); -#51861=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,1.6)); -#51862=CARTESIAN_POINT('',(1.79,4.02098076211353,1.6)); -#51863=CARTESIAN_POINT('',(1.71,4.02098076211353,1.6)); -#51864=CARTESIAN_POINT('',(1.71,7.155,1.6)); -#51865=CARTESIAN_POINT('',(1.71,1.05,1.6)); -#51866=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#51867=CARTESIAN_POINT('',(1.49,1.05,1.6)); -#51868=CARTESIAN_POINT('',(1.49,7.155,1.6)); -#51869=CARTESIAN_POINT('',(1.49,4.02098076211353,1.6)); -#51870=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,1.6)); -#51871=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,1.6)); -#51872=CARTESIAN_POINT('',(1.74221189432336,3.60557288226678,1.6)); -#51873=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,1.6)); -#51874=CARTESIAN_POINT('',(1.505,4.17643593539449,1.6)); -#51875=CARTESIAN_POINT('',(1.425,4.17643593539449,1.6)); -#51876=CARTESIAN_POINT('',(1.425,7.155,1.6)); -#51877=CARTESIAN_POINT('',(1.425,7.085,1.6)); -#51878=CARTESIAN_POINT('',(1.355,7.085,1.6)); -#51879=CARTESIAN_POINT('',(1.355,7.155,1.6)); -#51880=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51881=CARTESIAN_POINT('',(1.045,7.155,1.6)); -#51882=CARTESIAN_POINT('',(1.045,7.085,1.6)); -#51883=CARTESIAN_POINT('',(0.974999999999998,7.085,1.6)); -#51884=CARTESIAN_POINT('',(0.974999999999998,7.155,1.6)); -#51885=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,1.6)); -#51886=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,1.6)); -#51887=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,1.6)); -#51888=CARTESIAN_POINT('',(4.00278810567667,9.3992828335847,1.6)); -#51889=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,1.6)); -#51890=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,1.6)); -#51891=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,1.6)); -#51892=CARTESIAN_POINT('',(0.909999999999999,7.155,1.6)); -#51893=CARTESIAN_POINT('',(0.909999999999999,1.05,1.6)); -#51894=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#51895=CARTESIAN_POINT('',(0.69,1.05,1.6)); -#51896=CARTESIAN_POINT('',(0.69,7.155,1.6)); -#51897=CARTESIAN_POINT('',(0.69,4.02098076211353,1.6)); -#51898=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,1.6)); -#51899=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,1.6)); -#51900=CARTESIAN_POINT('',(1.14221189432336,3.259162720753,1.6)); -#51901=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,1.6)); -#51902=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,1.6)); -#51903=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,1.6)); -#51904=CARTESIAN_POINT('',(0.624999999999999,7.155,1.6)); -#51905=CARTESIAN_POINT('',(0.624999999999999,7.085,1.6)); -#51906=CARTESIAN_POINT('',(0.554999999999999,7.085,1.6)); -#51907=CARTESIAN_POINT('',(0.554999999999999,7.155,1.6)); -#51908=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51909=CARTESIAN_POINT('',(0.244999999999999,7.155,1.6)); -#51910=CARTESIAN_POINT('',(0.245,7.085,1.6)); -#51911=CARTESIAN_POINT('',(0.174999999999999,7.085,1.6)); -#51912=CARTESIAN_POINT('',(0.174999999999999,7.155,1.6)); -#51913=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,1.6)); -#51914=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,1.6)); -#51915=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,1.6)); -#51916=CARTESIAN_POINT('',(3.40278810567667,9.74569299509847,1.6)); -#51917=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,1.6)); -#51918=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,1.6)); -#51919=CARTESIAN_POINT('',(0.11,4.02098076211353,1.6)); -#51920=CARTESIAN_POINT('',(0.109999999999999,7.155,1.6)); -#51921=CARTESIAN_POINT('',(0.109999999999999,1.05,1.6)); -#51922=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#51923=CARTESIAN_POINT('',(-0.110000000000001,1.05,1.6)); -#51924=CARTESIAN_POINT('',(-0.110000000000001,7.155,1.6)); -#51925=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,1.6)); -#51926=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,1.6)); -#51927=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,1.6)); -#51928=CARTESIAN_POINT('',(0.542211894323356,2.91275255923923,1.6)); -#51929=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,1.6)); -#51930=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,1.6)); -#51931=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,1.6)); -#51932=CARTESIAN_POINT('',(-0.175000000000002,7.155,1.6)); -#51933=CARTESIAN_POINT('',(-0.175000000000001,7.085,1.6)); -#51934=CARTESIAN_POINT('',(-0.245000000000001,7.085,1.6)); -#51935=CARTESIAN_POINT('',(-0.245000000000001,7.155,1.6)); -#51936=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51937=CARTESIAN_POINT('',(-0.555000000000001,7.155,1.6)); -#51938=CARTESIAN_POINT('',(-0.555,7.085,1.6)); -#51939=CARTESIAN_POINT('',(-0.625000000000001,7.085,1.6)); -#51940=CARTESIAN_POINT('',(-0.625000000000001,7.155,1.6)); -#51941=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,1.6)); -#51942=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,1.6)); -#51943=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,1.6)); -#51944=CARTESIAN_POINT('',(2.80278810567667,10.0921031566123,1.6)); -#51945=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,1.6)); -#51946=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,1.6)); -#51947=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,1.6)); -#51948=CARTESIAN_POINT('',(-0.690000000000001,7.155,1.6)); -#51949=CARTESIAN_POINT('',(-0.690000000000001,1.05,1.6)); -#51950=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#51951=CARTESIAN_POINT('',(-0.910000000000001,1.05,1.6)); -#51952=CARTESIAN_POINT('',(-0.910000000000001,7.155,1.6)); -#51953=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,1.6)); -#51954=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,1.6)); -#51955=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,1.6)); -#51956=CARTESIAN_POINT('',(-0.0577881056766372,2.56634239772545,1.6)); -#51957=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,1.6)); -#51958=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,1.6)); -#51959=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,1.6)); -#51960=CARTESIAN_POINT('',(-0.975000000000002,7.155,1.6)); -#51961=CARTESIAN_POINT('',(-0.975000000000001,7.085,1.6)); -#51962=CARTESIAN_POINT('',(-1.045,7.085,1.6)); -#51963=CARTESIAN_POINT('',(-1.045,7.155,1.6)); -#51964=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51965=CARTESIAN_POINT('',(-1.355,7.155,1.6)); -#51966=CARTESIAN_POINT('',(-1.355,7.085,1.6)); -#51967=CARTESIAN_POINT('',(-1.425,7.085,1.6)); -#51968=CARTESIAN_POINT('',(-1.425,7.155,1.6)); -#51969=CARTESIAN_POINT('',(-1.425,4.17643593539449,1.6)); -#51970=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,1.6)); -#51971=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,1.6)); -#51972=CARTESIAN_POINT('',(2.20278810567666,10.438513318126,1.6)); -#51973=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,1.6)); -#51974=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,1.6)); -#51975=CARTESIAN_POINT('',(-1.49,4.02098076211353,1.6)); -#51976=CARTESIAN_POINT('',(-1.49,7.155,1.6)); -#51977=CARTESIAN_POINT('',(-1.49,1.05,1.6)); -#51978=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#51979=CARTESIAN_POINT('',(-1.71,1.05,1.6)); -#51980=CARTESIAN_POINT('',(-1.71,7.155,1.6)); -#51981=CARTESIAN_POINT('',(-1.71,4.02098076211353,1.6)); -#51982=CARTESIAN_POINT('',(-1.79,4.02098076211353,1.6)); -#51983=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,1.6)); -#51984=CARTESIAN_POINT('',(-0.657788105676633,2.21993223621167,1.6)); -#51985=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,1.6)); -#51986=CARTESIAN_POINT('',(-1.695,4.17643593539449,1.6)); -#51987=CARTESIAN_POINT('',(-1.775,4.17643593539449,1.6)); -#51988=CARTESIAN_POINT('',(-1.775,7.155,1.6)); -#51989=CARTESIAN_POINT('',(-1.775,7.085,1.6)); -#51990=CARTESIAN_POINT('',(-1.845,7.085,1.6)); -#51991=CARTESIAN_POINT('',(-1.845,7.155,1.6)); -#51992=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#51993=CARTESIAN_POINT('',(-2.155,7.155,1.6)); -#51994=CARTESIAN_POINT('',(-2.155,7.085,1.6)); -#51995=CARTESIAN_POINT('',(-2.225,7.085,1.6)); -#51996=CARTESIAN_POINT('',(-2.225,7.155,1.6)); -#51997=CARTESIAN_POINT('',(-2.225,4.17643593539449,1.6)); -#51998=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,1.6)); -#51999=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,1.6)); -#52000=CARTESIAN_POINT('',(1.60278810567668,10.7849234796398,1.6)); -#52001=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,1.6)); -#52002=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,1.6)); -#52003=CARTESIAN_POINT('',(-2.29,4.02098076211353,1.6)); -#52004=CARTESIAN_POINT('',(-2.29,7.155,1.6)); -#52005=CARTESIAN_POINT('',(-2.29,1.05,1.6)); -#52006=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#52007=CARTESIAN_POINT('',(-2.51,1.05,1.6)); -#52008=CARTESIAN_POINT('',(-2.51,7.155,1.6)); -#52009=CARTESIAN_POINT('',(-2.51,4.02098076211353,1.6)); -#52010=CARTESIAN_POINT('',(-2.59,4.02098076211353,1.6)); -#52011=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,1.6)); -#52012=CARTESIAN_POINT('',(-1.25778810567662,1.87352207469788,1.6)); -#52013=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,1.6)); -#52014=CARTESIAN_POINT('',(-2.495,4.17643593539449,1.6)); -#52015=CARTESIAN_POINT('',(-2.575,4.17643593539449,1.6)); -#52016=CARTESIAN_POINT('',(-2.575,7.155,1.6)); -#52017=CARTESIAN_POINT('',(-2.575,7.085,1.6)); -#52018=CARTESIAN_POINT('',(-2.645,7.085,1.6)); -#52019=CARTESIAN_POINT('',(-2.645,7.155,1.6)); -#52020=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#52021=CARTESIAN_POINT('',(-2.955,7.155,1.6)); -#52022=CARTESIAN_POINT('',(-2.955,7.085,1.6)); -#52023=CARTESIAN_POINT('',(-3.025,7.085,1.6)); -#52024=CARTESIAN_POINT('',(-3.025,7.155,1.6)); -#52025=CARTESIAN_POINT('',(-3.025,4.17643593539449,1.6)); -#52026=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,1.6)); -#52027=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,1.6)); -#52028=CARTESIAN_POINT('',(1.00278810567664,11.1313336411536,1.6)); -#52029=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,1.6)); -#52030=CARTESIAN_POINT('',(-3.01,4.02098076211353,1.6)); -#52031=CARTESIAN_POINT('',(-3.09,4.02098076211353,1.6)); -#52032=CARTESIAN_POINT('',(-3.09,7.155,1.6)); -#52033=CARTESIAN_POINT('',(-3.09,1.05,1.6)); -#52034=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#52035=CARTESIAN_POINT('',(-3.31,1.05,1.6)); -#52036=CARTESIAN_POINT('',(-3.31,7.155,1.6)); -#52037=CARTESIAN_POINT('',(-3.31,4.02098076211353,1.6)); -#52038=CARTESIAN_POINT('',(-3.39,4.02098076211353,1.6)); -#52039=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,1.6)); -#52040=CARTESIAN_POINT('',(-1.85778810567661,1.5271119131841,1.6)); -#52041=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,1.6)); -#52042=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,1.6)); -#52043=CARTESIAN_POINT('',(-3.375,4.17643593539449,1.6)); -#52044=CARTESIAN_POINT('',(-3.375,7.155,1.6)); -#52045=CARTESIAN_POINT('',(-3.375,7.085,1.6)); -#52046=CARTESIAN_POINT('',(-3.445,7.085,1.6)); -#52047=CARTESIAN_POINT('',(-3.445,7.155,1.6)); -#52048=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#52049=CARTESIAN_POINT('',(-3.755,7.155,1.6)); -#52050=CARTESIAN_POINT('',(-3.755,7.085,1.6)); -#52051=CARTESIAN_POINT('',(-3.825,7.085,1.6)); -#52052=CARTESIAN_POINT('',(-3.825,7.155,1.6)); -#52053=CARTESIAN_POINT('',(-3.825,4.17643593539449,1.6)); -#52054=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,1.6)); -#52055=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,1.6)); -#52056=CARTESIAN_POINT('',(0.402788105676634,11.4777438026673,1.6)); -#52057=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,1.6)); -#52058=CARTESIAN_POINT('',(-3.81,4.02098076211353,1.6)); -#52059=CARTESIAN_POINT('',(-3.89,4.02098076211353,1.6)); -#52060=CARTESIAN_POINT('',(-3.89,7.155,1.6)); -#52061=CARTESIAN_POINT('',(-3.89,1.05,1.6)); -#52062=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#52063=CARTESIAN_POINT('',(-4.11,1.05,1.6)); -#52064=CARTESIAN_POINT('',(-4.11,7.155,1.6)); -#52065=CARTESIAN_POINT('',(-4.11,4.02098076211353,1.6)); -#52066=CARTESIAN_POINT('',(-4.19,4.02098076211353,1.6)); -#52067=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,1.6)); -#52068=CARTESIAN_POINT('',(-2.45778810567661,1.18070175167032,1.6)); -#52069=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,1.6)); -#52070=CARTESIAN_POINT('',(-4.095,4.17643593539449,1.6)); -#52071=CARTESIAN_POINT('',(-4.175,4.17643593539449,1.6)); -#52072=CARTESIAN_POINT('',(-4.175,7.155,1.6)); -#52073=CARTESIAN_POINT('',(-4.175,7.085,1.6)); -#52074=CARTESIAN_POINT('',(-4.245,7.085,1.6)); -#52075=CARTESIAN_POINT('',(-4.245,7.155,1.6)); -#52076=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#52077=CARTESIAN_POINT('',(-4.555,7.155,1.6)); -#52078=CARTESIAN_POINT('',(-4.555,7.085,1.6)); -#52079=CARTESIAN_POINT('',(-4.625,7.085,1.6)); -#52080=CARTESIAN_POINT('',(-4.625,7.155,1.6)); -#52081=CARTESIAN_POINT('',(-4.625,4.17643593539449,1.6)); -#52082=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,1.6)); -#52083=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,1.6)); -#52084=CARTESIAN_POINT('',(-0.197211894323318,11.8241539641811,1.6)); -#52085=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,1.6)); -#52086=CARTESIAN_POINT('',(-4.61,4.02098076211353,1.6)); -#52087=CARTESIAN_POINT('',(-4.69,4.02098076211353,1.6)); -#52088=CARTESIAN_POINT('',(-4.69,7.155,1.6)); -#52089=CARTESIAN_POINT('',(-4.69,1.05,1.6)); -#52090=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#52091=CARTESIAN_POINT('',(-4.91,1.05,1.6)); -#52092=CARTESIAN_POINT('',(-4.91,7.155,1.6)); -#52093=CARTESIAN_POINT('',(-4.91,4.02098076211353,1.6)); -#52094=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,1.6)); -#52095=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,1.6)); -#52096=CARTESIAN_POINT('',(-3.0577881056766,0.834291590156546,1.6)); -#52097=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,1.6)); -#52098=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,1.6)); -#52099=CARTESIAN_POINT('',(-4.975,4.17643593539449,1.6)); -#52100=CARTESIAN_POINT('',(-4.975,7.155,1.6)); -#52101=CARTESIAN_POINT('',(-4.975,7.085,1.6)); -#52102=CARTESIAN_POINT('',(-5.045,7.085,1.6)); -#52103=CARTESIAN_POINT('',(-5.045,7.155,1.6)); -#52104=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#52105=CARTESIAN_POINT('',(-5.355,7.155,1.6)); -#52106=CARTESIAN_POINT('',(-5.355,7.085,1.6)); -#52107=CARTESIAN_POINT('',(-5.425,7.085,1.6)); -#52108=CARTESIAN_POINT('',(-5.425,7.155,1.6)); -#52109=CARTESIAN_POINT('',(-5.425,4.17643593539449,1.6)); -#52110=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,1.6)); -#52111=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,1.6)); -#52112=CARTESIAN_POINT('',(-0.797211894323425,12.1705641256949,1.6)); -#52113=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,1.6)); -#52114=CARTESIAN_POINT('',(-5.41,4.02098076211353,1.6)); -#52115=CARTESIAN_POINT('',(-5.49,4.02098076211353,1.6)); -#52116=CARTESIAN_POINT('',(-5.49,7.155,1.6)); -#52117=CARTESIAN_POINT('',(-5.49,1.05,1.6)); -#52118=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#52119=CARTESIAN_POINT('',(-5.71,1.05,1.6)); -#52120=CARTESIAN_POINT('',(-5.71,7.155,1.6)); -#52121=CARTESIAN_POINT('',(-5.71,4.02098076211353,1.6)); -#52122=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,1.6)); -#52123=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,1.6)); -#52124=CARTESIAN_POINT('',(-3.6577881056766,0.487881428642768,1.6)); -#52125=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,1.6)); -#52126=CARTESIAN_POINT('',(-5.695,4.17643593539449,1.6)); -#52127=CARTESIAN_POINT('',(-5.775,4.17643593539449,1.6)); -#52128=CARTESIAN_POINT('',(-5.775,7.155,1.6)); -#52129=CARTESIAN_POINT('',(-5.775,7.085,1.6)); -#52130=CARTESIAN_POINT('',(-5.845,7.085,1.6)); -#52131=CARTESIAN_POINT('',(-5.845,7.155,1.6)); -#52132=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#52133=CARTESIAN_POINT('',(-6.155,7.155,1.6)); -#52134=CARTESIAN_POINT('',(-6.155,7.085,1.6)); -#52135=CARTESIAN_POINT('',(-6.225,7.085,1.6)); -#52136=CARTESIAN_POINT('',(-6.225,7.155,1.6)); -#52137=CARTESIAN_POINT('',(-6.225,4.17643593539449,1.6)); -#52138=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,1.6)); -#52139=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,1.6)); -#52140=CARTESIAN_POINT('',(-1.39721189432331,12.5169742872087,1.6)); -#52141=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,1.6)); -#52142=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,1.6)); -#52143=CARTESIAN_POINT('',(-6.29,4.02098076211353,1.6)); -#52144=CARTESIAN_POINT('',(-6.29,7.155,1.6)); -#52145=CARTESIAN_POINT('',(-6.29,1.05,1.6)); -#52146=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); -#52147=CARTESIAN_POINT('',(-6.51,1.05,1.6)); -#52148=CARTESIAN_POINT('',(-6.51,7.155,1.6)); -#52149=CARTESIAN_POINT('',(-6.51,4.02098076211353,1.6)); -#52150=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,1.6)); -#52151=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,1.6)); -#52152=CARTESIAN_POINT('',(-4.25778810567669,0.141471267129076,1.6)); -#52153=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,1.6)); -#52154=CARTESIAN_POINT('',(-6.495,4.17643593539449,1.6)); -#52155=CARTESIAN_POINT('',(-6.575,4.17643593539449,1.6)); -#52156=CARTESIAN_POINT('',(-6.575,7.155,1.6)); -#52157=CARTESIAN_POINT('',(-6.575,7.085,1.6)); -#52158=CARTESIAN_POINT('',(-6.645,7.085,1.6)); -#52159=CARTESIAN_POINT('',(-6.645,7.155,1.6)); -#52160=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#52161=CARTESIAN_POINT('',(-6.955,7.155,1.6)); -#52162=CARTESIAN_POINT('',(-6.955,7.085,1.6)); -#52163=CARTESIAN_POINT('',(-7.025,7.085,1.6)); -#52164=CARTESIAN_POINT('',(-7.025,7.155,1.6)); -#52165=CARTESIAN_POINT('',(-7.025,4.17643593539449,1.6)); -#52166=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,1.6)); -#52167=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,1.6)); -#52168=CARTESIAN_POINT('',(-1.99721189432331,12.8633844487225,1.6)); -#52169=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,1.6)); -#52170=CARTESIAN_POINT('',(-7.01,4.02098076211353,1.6)); -#52171=CARTESIAN_POINT('',(-7.09,4.02098076211353,1.6)); -#52172=CARTESIAN_POINT('',(-7.09,7.155,1.6)); -#52173=CARTESIAN_POINT('',(-7.09,1.05,1.6)); -#52174=CARTESIAN_POINT('',(7.88999999999999,1.04999999999998,1.6)); -#52175=CARTESIAN_POINT('',(-7.31,1.05,1.6)); -#52176=CARTESIAN_POINT('',(-7.31,7.155,1.6)); -#52177=CARTESIAN_POINT('',(-7.31,4.02098076211353,1.6)); -#52178=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,1.6)); -#52179=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,1.6)); -#52180=CARTESIAN_POINT('',(-4.85778810567659,-0.204938894384788,1.6)); -#52181=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,1.6)); -#52182=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,1.6)); -#52183=CARTESIAN_POINT('',(-7.375,4.17643593539449,1.6)); -#52184=CARTESIAN_POINT('',(-7.375,7.155,1.6)); -#52185=CARTESIAN_POINT('',(-7.375,7.085,1.6)); -#52186=CARTESIAN_POINT('',(-7.445,7.085,1.6)); -#52187=CARTESIAN_POINT('',(-7.445,7.155,1.6)); -#52188=CARTESIAN_POINT('',(7.89,7.155,1.6)); -#52189=CARTESIAN_POINT('',(-7.755,7.155,1.6)); -#52190=CARTESIAN_POINT('',(-7.755,7.085,1.6)); -#52191=CARTESIAN_POINT('',(-7.825,7.085,1.6)); -#52192=CARTESIAN_POINT('',(-7.825,7.155,1.6)); -#52193=CARTESIAN_POINT('',(-7.825,4.17643593539449,1.6)); -#52194=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,1.6)); -#52195=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,1.6)); -#52196=CARTESIAN_POINT('',(-2.59721189432318,13.2097946102363,1.6)); -#52197=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,1.6)); -#52198=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,1.6)); -#52199=CARTESIAN_POINT('',(-7.89,4.02098076211353,1.6)); -#52200=CARTESIAN_POINT('',(-7.89,7.155,1.6)); -#52201=CARTESIAN_POINT('',(-7.89,1.05,1.6)); -#52202=CARTESIAN_POINT('',(-8.,1.05,1.6)); -#52203=CARTESIAN_POINT('',(-8.,1.05,1.6)); -#52204=CARTESIAN_POINT('',(-8.,1.05,1.6)); -#52205=CARTESIAN_POINT('',(-8.,1.05,-1.6)); -#52206=CARTESIAN_POINT('',(-8.,1.,-1.6)); -#52207=CARTESIAN_POINT('',(-8.,1.05,-1.6)); -#52208=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); -#52209=CARTESIAN_POINT('',(-7.95,1.,-1.435)); -#52210=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); -#52211=CARTESIAN_POINT('',(7.95,1.05,1.435)); -#52212=CARTESIAN_POINT('',(7.95,1.,1.435)); -#52213=CARTESIAN_POINT('',(7.95,1.05,1.435)); -#52214=CARTESIAN_POINT('',(8.,1.05,1.6)); -#52215=CARTESIAN_POINT('',(8.,1.,1.6)); -#52216=CARTESIAN_POINT('',(8.,1.05,1.6)); -#52217=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52218=CARTESIAN_POINT('',(-7.31,1.05,4.)); -#52219=CARTESIAN_POINT('',(-7.09,1.05,4.)); -#52220=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52221=CARTESIAN_POINT('',(-6.51,1.05,4.)); -#52222=CARTESIAN_POINT('',(-6.29,1.05,4.)); -#52223=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52224=CARTESIAN_POINT('',(-5.71,1.05,4.)); -#52225=CARTESIAN_POINT('',(-5.49,1.05,4.)); -#52226=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52227=CARTESIAN_POINT('',(-4.91,1.05,4.)); -#52228=CARTESIAN_POINT('',(-4.69,1.05,4.)); -#52229=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52230=CARTESIAN_POINT('',(-4.11,1.05,4.)); -#52231=CARTESIAN_POINT('',(-3.89,1.05,4.)); -#52232=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52233=CARTESIAN_POINT('',(-3.31,1.05,4.)); -#52234=CARTESIAN_POINT('',(-3.09,1.05,4.)); -#52235=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52236=CARTESIAN_POINT('',(-2.51,1.05,4.)); -#52237=CARTESIAN_POINT('',(-2.29,1.05,4.)); -#52238=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52239=CARTESIAN_POINT('',(-1.71,1.05,4.)); -#52240=CARTESIAN_POINT('',(-1.49,1.05,4.)); -#52241=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52242=CARTESIAN_POINT('',(-0.910000000000001,1.05,4.)); -#52243=CARTESIAN_POINT('',(-0.690000000000001,1.05,4.)); -#52244=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52245=CARTESIAN_POINT('',(-0.110000000000001,1.05,4.)); -#52246=CARTESIAN_POINT('',(0.109999999999999,1.05,4.)); -#52247=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52248=CARTESIAN_POINT('',(0.69,1.05,4.)); -#52249=CARTESIAN_POINT('',(0.909999999999999,1.05,4.)); -#52250=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52251=CARTESIAN_POINT('',(1.49,1.05,4.)); -#52252=CARTESIAN_POINT('',(1.71,1.05,4.)); -#52253=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52254=CARTESIAN_POINT('',(2.29,1.05,4.)); -#52255=CARTESIAN_POINT('',(2.51,1.05,4.)); -#52256=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52257=CARTESIAN_POINT('',(3.09,1.05,4.)); -#52258=CARTESIAN_POINT('',(3.31,1.05,4.)); -#52259=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52260=CARTESIAN_POINT('',(3.89,1.05,4.)); -#52261=CARTESIAN_POINT('',(4.11,1.05,4.)); -#52262=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52263=CARTESIAN_POINT('',(4.69,1.05,4.)); -#52264=CARTESIAN_POINT('',(4.91,1.05,4.)); -#52265=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52266=CARTESIAN_POINT('',(5.49,1.05,4.)); -#52267=CARTESIAN_POINT('',(5.71,1.05,4.)); -#52268=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52269=CARTESIAN_POINT('',(6.29,1.05,4.)); -#52270=CARTESIAN_POINT('',(6.51,1.05,4.)); -#52271=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52272=CARTESIAN_POINT('',(7.09,1.05,4.)); -#52273=CARTESIAN_POINT('',(7.31,1.05,4.)); -#52274=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52275=CARTESIAN_POINT('',(7.31,1.05,4.)); -#52276=CARTESIAN_POINT('',(7.09,1.05,4.)); -#52277=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52278=CARTESIAN_POINT('',(6.51,1.05,4.)); -#52279=CARTESIAN_POINT('',(6.29,1.05,4.)); -#52280=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52281=CARTESIAN_POINT('',(5.71,1.05,4.)); -#52282=CARTESIAN_POINT('',(5.49,1.05,4.)); -#52283=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52284=CARTESIAN_POINT('',(4.91,1.05,4.)); -#52285=CARTESIAN_POINT('',(4.69,1.05,4.)); -#52286=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52287=CARTESIAN_POINT('',(4.11,1.05,4.)); -#52288=CARTESIAN_POINT('',(3.89,1.05,4.)); -#52289=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52290=CARTESIAN_POINT('',(3.31,1.05,4.)); -#52291=CARTESIAN_POINT('',(3.09,1.05,4.)); -#52292=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52293=CARTESIAN_POINT('',(2.51,1.05,4.)); -#52294=CARTESIAN_POINT('',(2.29,1.05,4.)); -#52295=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52296=CARTESIAN_POINT('',(1.71,1.05,4.)); -#52297=CARTESIAN_POINT('',(1.49,1.05,4.)); -#52298=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52299=CARTESIAN_POINT('',(0.909999999999999,1.05,4.)); -#52300=CARTESIAN_POINT('',(0.69,1.05,4.)); -#52301=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52302=CARTESIAN_POINT('',(0.109999999999999,1.05,4.)); -#52303=CARTESIAN_POINT('',(-0.110000000000001,1.05,4.)); -#52304=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52305=CARTESIAN_POINT('',(-0.690000000000001,1.05,4.)); -#52306=CARTESIAN_POINT('',(-0.910000000000001,1.05,4.)); -#52307=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52308=CARTESIAN_POINT('',(-1.49,1.05,4.)); -#52309=CARTESIAN_POINT('',(-1.71,1.05,4.)); -#52310=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52311=CARTESIAN_POINT('',(-2.29,1.05,4.)); -#52312=CARTESIAN_POINT('',(-2.51,1.05,4.)); -#52313=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52314=CARTESIAN_POINT('',(-3.09,1.05,4.)); -#52315=CARTESIAN_POINT('',(-3.31,1.05,4.)); -#52316=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52317=CARTESIAN_POINT('',(-3.89,1.05,4.)); -#52318=CARTESIAN_POINT('',(-4.11,1.05,4.)); -#52319=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52320=CARTESIAN_POINT('',(-4.69,1.05,4.)); -#52321=CARTESIAN_POINT('',(-4.91,1.05,4.)); -#52322=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52323=CARTESIAN_POINT('',(-5.49,1.05,4.)); -#52324=CARTESIAN_POINT('',(-5.71,1.05,4.)); -#52325=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52326=CARTESIAN_POINT('',(-6.29,1.05,4.)); -#52327=CARTESIAN_POINT('',(-6.51,1.05,4.)); -#52328=CARTESIAN_POINT('',(7.89,1.05,-1.435)); -#52329=CARTESIAN_POINT('',(-7.09,1.05,4.)); -#52330=CARTESIAN_POINT('',(-7.31,1.05,4.)); -#52331=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#52332=CARTESIAN_POINT('',(7.89,1.05,2.0088)); -#52333=CARTESIAN_POINT('',(7.89,4.02098076211353,4.)); -#52334=CARTESIAN_POINT('',(-7.89,0.6524,2.0088)); -#52335=CARTESIAN_POINT('',(-7.89,1.05,2.0088)); -#52336=CARTESIAN_POINT('',(-7.89,4.02098076211354,4.)); -#52337=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52338=CARTESIAN_POINT('',(-7.72,7.19,-1.59877936908855)); -#52339=CARTESIAN_POINT('',(-7.72,7.17154879938732,-1.60006791379186)); -#52340=CARTESIAN_POINT('',(-7.7365034374292,7.15499999999984,-1.60000000000025)); -#52341=CARTESIAN_POINT('',(-7.75499999999996,7.15499999999982,-1.60000000000025)); -#52342=CARTESIAN_POINT('',(-7.72,7.19,-1.59877936908855)); -#52343=CARTESIAN_POINT('',(-7.72,7.155,-1.0976)); -#52344=CARTESIAN_POINT('',(-7.72,7.5374,-1.42344658967066)); -#52345=CARTESIAN_POINT('',(-7.72,7.5374,-1.42344658967066)); -#52346=CARTESIAN_POINT('',(-7.72,7.59787264997766,-1.35247840376812)); -#52347=CARTESIAN_POINT('',(-7.68244206675412,7.63403033891439,-1.27081952584834)); -#52348=CARTESIAN_POINT('',(-7.64365232163209,7.64917868677046,-1.18811621701012)); -#52349=CARTESIAN_POINT('',(-7.64365232163208,7.64917868677046,-1.18811621701012)); -#52350=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52351=CARTESIAN_POINT('',(-7.55634767836792,7.64917868677046,-1.18811621701012)); -#52352=CARTESIAN_POINT('',(-7.55634767836792,7.64917868677046,-1.18811621701012)); -#52353=CARTESIAN_POINT('',(-7.51750101965383,7.63400811275933,-1.27094087086789)); -#52354=CARTESIAN_POINT('',(-7.48,7.59805032943425,-1.35226988655065)); -#52355=CARTESIAN_POINT('',(-7.48,7.5374,-1.42344658967066)); -#52356=CARTESIAN_POINT('',(-7.48,7.5374,-1.42344658967066)); -#52357=CARTESIAN_POINT('',(-7.48,7.155,-1.0976)); -#52358=CARTESIAN_POINT('',(-7.48,7.19,-1.59877936908855)); -#52359=CARTESIAN_POINT('',(-7.445,7.155,-1.6)); -#52360=CARTESIAN_POINT('',(-7.46349664060179,7.155,-1.6)); -#52361=CARTESIAN_POINT('',(-7.48000000000013,7.17154844824344,-1.6000679383141)); -#52362=CARTESIAN_POINT('',(-7.48000000000015,7.18999999999997,-1.59877936908857)); -#52363=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52364=CARTESIAN_POINT('',(-6.92,7.19,-1.59877936908855)); -#52365=CARTESIAN_POINT('',(-6.92,7.17154879938732,-1.60006791379186)); -#52366=CARTESIAN_POINT('',(-6.9365034374292,7.15499999999984,-1.60000000000025)); -#52367=CARTESIAN_POINT('',(-6.95499999999996,7.15499999999982,-1.60000000000025)); -#52368=CARTESIAN_POINT('',(-6.92,7.19,-1.59877936908855)); -#52369=CARTESIAN_POINT('',(-6.92,7.155,-1.0976)); -#52370=CARTESIAN_POINT('',(-6.92,7.5374,-1.42344658967066)); -#52371=CARTESIAN_POINT('',(-6.92,7.5374,-1.42344658967066)); -#52372=CARTESIAN_POINT('',(-6.92,7.59787264997766,-1.35247840376812)); -#52373=CARTESIAN_POINT('',(-6.88244206675412,7.63403033891439,-1.27081952584833)); -#52374=CARTESIAN_POINT('',(-6.84365232163208,7.64917868677046,-1.18811621701012)); -#52375=CARTESIAN_POINT('',(-6.84365232163208,7.64917868677046,-1.18811621701012)); -#52376=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52377=CARTESIAN_POINT('',(-6.75634767836792,7.64917868677046,-1.18811621701012)); -#52378=CARTESIAN_POINT('',(-6.75634767836792,7.64917868677046,-1.18811621701012)); -#52379=CARTESIAN_POINT('',(-6.71750101965383,7.63400811275933,-1.27094087086789)); -#52380=CARTESIAN_POINT('',(-6.68,7.59805032943425,-1.35226988655065)); -#52381=CARTESIAN_POINT('',(-6.68,7.5374,-1.42344658967066)); -#52382=CARTESIAN_POINT('',(-6.68,7.5374,-1.42344658967066)); -#52383=CARTESIAN_POINT('',(-6.68,7.155,-1.0976)); -#52384=CARTESIAN_POINT('',(-6.68,7.19,-1.59877936908855)); -#52385=CARTESIAN_POINT('',(-6.645,7.155,-1.6)); -#52386=CARTESIAN_POINT('',(-6.66349664060179,7.155,-1.6)); -#52387=CARTESIAN_POINT('',(-6.68000000000014,7.17154844824344,-1.6000679383141)); -#52388=CARTESIAN_POINT('',(-6.68000000000015,7.18999999999997,-1.59877936908857)); -#52389=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52390=CARTESIAN_POINT('',(-6.12,7.19,-1.59877936908855)); -#52391=CARTESIAN_POINT('',(-6.12,7.17154879938732,-1.60006791379186)); -#52392=CARTESIAN_POINT('',(-6.1365034374292,7.15499999999984,-1.60000000000025)); -#52393=CARTESIAN_POINT('',(-6.15499999999996,7.15499999999982,-1.60000000000025)); -#52394=CARTESIAN_POINT('',(-6.12,7.19,-1.59877936908855)); -#52395=CARTESIAN_POINT('',(-6.12,7.155,-1.0976)); -#52396=CARTESIAN_POINT('',(-6.12,7.5374,-1.42344658967066)); -#52397=CARTESIAN_POINT('',(-6.12,7.5374,-1.42344658967066)); -#52398=CARTESIAN_POINT('',(-6.12,7.59787264997766,-1.35247840376812)); -#52399=CARTESIAN_POINT('',(-6.08244206675412,7.63403033891439,-1.27081952584834)); -#52400=CARTESIAN_POINT('',(-6.04365232163209,7.64917868677046,-1.18811621701012)); -#52401=CARTESIAN_POINT('',(-6.04365232163208,7.64917868677046,-1.18811621701012)); -#52402=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52403=CARTESIAN_POINT('',(-5.95634767836792,7.64917868677046,-1.18811621701012)); -#52404=CARTESIAN_POINT('',(-5.95634767836792,7.64917868677046,-1.18811621701012)); -#52405=CARTESIAN_POINT('',(-5.91750101965383,7.63400811275933,-1.27094087086789)); -#52406=CARTESIAN_POINT('',(-5.88,7.59805032943425,-1.35226988655065)); -#52407=CARTESIAN_POINT('',(-5.88,7.5374,-1.42344658967066)); -#52408=CARTESIAN_POINT('',(-5.88,7.5374,-1.42344658967066)); -#52409=CARTESIAN_POINT('',(-5.88,7.155,-1.0976)); -#52410=CARTESIAN_POINT('',(-5.88,7.19,-1.59877936908855)); -#52411=CARTESIAN_POINT('',(-5.845,7.155,-1.6)); -#52412=CARTESIAN_POINT('',(-5.86349664060179,7.155,-1.6)); -#52413=CARTESIAN_POINT('',(-5.88000000000014,7.17154844824344,-1.6000679383141)); -#52414=CARTESIAN_POINT('',(-5.88000000000015,7.18999999999997,-1.59877936908857)); -#52415=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52416=CARTESIAN_POINT('',(-5.32,7.19,-1.59877936908855)); -#52417=CARTESIAN_POINT('',(-5.32,7.17154879938732,-1.60006791379186)); -#52418=CARTESIAN_POINT('',(-5.3365034374292,7.15499999999984,-1.60000000000025)); -#52419=CARTESIAN_POINT('',(-5.35499999999996,7.15499999999982,-1.60000000000025)); -#52420=CARTESIAN_POINT('',(-5.32,7.19,-1.59877936908855)); -#52421=CARTESIAN_POINT('',(-5.32,7.155,-1.0976)); -#52422=CARTESIAN_POINT('',(-5.32,7.5374,-1.42344658967066)); -#52423=CARTESIAN_POINT('',(-5.32,7.5374,-1.42344658967066)); -#52424=CARTESIAN_POINT('',(-5.32,7.59787264997766,-1.35247840376812)); -#52425=CARTESIAN_POINT('',(-5.28244206675412,7.63403033891439,-1.27081952584834)); -#52426=CARTESIAN_POINT('',(-5.24365232163209,7.64917868677046,-1.18811621701012)); -#52427=CARTESIAN_POINT('',(-5.24365232163209,7.64917868677046,-1.18811621701012)); -#52428=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52429=CARTESIAN_POINT('',(-5.15634767836792,7.64917868677046,-1.18811621701012)); -#52430=CARTESIAN_POINT('',(-5.15634767836792,7.64917868677046,-1.18811621701012)); -#52431=CARTESIAN_POINT('',(-5.11750101965383,7.63400811275933,-1.27094087086789)); -#52432=CARTESIAN_POINT('',(-5.08,7.59805032943425,-1.35226988655065)); -#52433=CARTESIAN_POINT('',(-5.08,7.5374,-1.42344658967066)); -#52434=CARTESIAN_POINT('',(-5.08,7.5374,-1.42344658967066)); -#52435=CARTESIAN_POINT('',(-5.08,7.155,-1.0976)); -#52436=CARTESIAN_POINT('',(-5.08,7.19,-1.59877936908855)); -#52437=CARTESIAN_POINT('',(-5.045,7.155,-1.6)); -#52438=CARTESIAN_POINT('',(-5.06349664060178,7.155,-1.6)); -#52439=CARTESIAN_POINT('',(-5.08000000000014,7.17154844824344,-1.6000679383141)); -#52440=CARTESIAN_POINT('',(-5.08000000000015,7.18999999999997,-1.59877936908857)); -#52441=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52442=CARTESIAN_POINT('',(-4.52,7.19,-1.59877936908855)); -#52443=CARTESIAN_POINT('',(-4.52,7.17154879938732,-1.60006791379186)); -#52444=CARTESIAN_POINT('',(-4.5365034374292,7.15499999999984,-1.60000000000025)); -#52445=CARTESIAN_POINT('',(-4.55499999999996,7.15499999999982,-1.60000000000025)); -#52446=CARTESIAN_POINT('',(-4.52,7.19,-1.59877936908855)); -#52447=CARTESIAN_POINT('',(-4.52,7.155,-1.0976)); -#52448=CARTESIAN_POINT('',(-4.52,7.5374,-1.42344658967066)); -#52449=CARTESIAN_POINT('',(-4.52,7.5374,-1.42344658967066)); -#52450=CARTESIAN_POINT('',(-4.52,7.59787264997766,-1.35247840376812)); -#52451=CARTESIAN_POINT('',(-4.48244206675412,7.63403033891439,-1.27081952584833)); -#52452=CARTESIAN_POINT('',(-4.44365232163209,7.64917868677046,-1.18811621701012)); -#52453=CARTESIAN_POINT('',(-4.44365232163208,7.64917868677046,-1.18811621701012)); -#52454=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52455=CARTESIAN_POINT('',(-4.35634767836792,7.64917868677046,-1.18811621701012)); -#52456=CARTESIAN_POINT('',(-4.35634767836792,7.64917868677046,-1.18811621701012)); -#52457=CARTESIAN_POINT('',(-4.31750101965383,7.63400811275933,-1.27094087086789)); -#52458=CARTESIAN_POINT('',(-4.28,7.59805032943425,-1.35226988655065)); -#52459=CARTESIAN_POINT('',(-4.28,7.5374,-1.42344658967066)); -#52460=CARTESIAN_POINT('',(-4.28,7.5374,-1.42344658967066)); -#52461=CARTESIAN_POINT('',(-4.28,7.155,-1.0976)); -#52462=CARTESIAN_POINT('',(-4.28,7.19,-1.59877936908855)); -#52463=CARTESIAN_POINT('',(-4.245,7.155,-1.6)); -#52464=CARTESIAN_POINT('',(-4.26349664060179,7.155,-1.6)); -#52465=CARTESIAN_POINT('',(-4.28000000000014,7.17154844824344,-1.6000679383141)); -#52466=CARTESIAN_POINT('',(-4.28000000000015,7.18999999999997,-1.59877936908857)); -#52467=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52468=CARTESIAN_POINT('',(-3.72,7.19,-1.59877936908855)); -#52469=CARTESIAN_POINT('',(-3.72,7.17154879938732,-1.60006791379186)); -#52470=CARTESIAN_POINT('',(-3.7365034374292,7.15499999999984,-1.60000000000025)); -#52471=CARTESIAN_POINT('',(-3.75499999999996,7.15499999999982,-1.60000000000025)); -#52472=CARTESIAN_POINT('',(-3.72,7.19,-1.59877936908855)); -#52473=CARTESIAN_POINT('',(-3.72,7.155,-1.0976)); -#52474=CARTESIAN_POINT('',(-3.72,7.5374,-1.42344658967066)); -#52475=CARTESIAN_POINT('',(-3.72,7.5374,-1.42344658967066)); -#52476=CARTESIAN_POINT('',(-3.72,7.59787264997766,-1.35247840376812)); -#52477=CARTESIAN_POINT('',(-3.68244206675412,7.63403033891439,-1.27081952584834)); -#52478=CARTESIAN_POINT('',(-3.64365232163209,7.64917868677046,-1.18811621701012)); -#52479=CARTESIAN_POINT('',(-3.64365232163208,7.64917868677046,-1.18811621701012)); -#52480=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52481=CARTESIAN_POINT('',(-3.55634767836792,7.64917868677046,-1.18811621701012)); -#52482=CARTESIAN_POINT('',(-3.55634767836792,7.64917868677046,-1.18811621701012)); -#52483=CARTESIAN_POINT('',(-3.51750101965383,7.63400811275933,-1.27094087086789)); -#52484=CARTESIAN_POINT('',(-3.48,7.59805032943425,-1.35226988655065)); -#52485=CARTESIAN_POINT('',(-3.48,7.5374,-1.42344658967066)); -#52486=CARTESIAN_POINT('',(-3.48,7.5374,-1.42344658967066)); -#52487=CARTESIAN_POINT('',(-3.48,7.155,-1.0976)); -#52488=CARTESIAN_POINT('',(-3.48,7.19,-1.59877936908855)); -#52489=CARTESIAN_POINT('',(-3.445,7.155,-1.6)); -#52490=CARTESIAN_POINT('',(-3.46349664060179,7.155,-1.6)); -#52491=CARTESIAN_POINT('',(-3.48000000000014,7.17154844824344,-1.6000679383141)); -#52492=CARTESIAN_POINT('',(-3.48000000000015,7.18999999999997,-1.59877936908857)); -#52493=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52494=CARTESIAN_POINT('',(-2.92,7.19,-1.59877936908855)); -#52495=CARTESIAN_POINT('',(-2.92,7.17154879938732,-1.60006791379186)); -#52496=CARTESIAN_POINT('',(-2.9365034374292,7.15499999999984,-1.60000000000025)); -#52497=CARTESIAN_POINT('',(-2.95499999999996,7.15499999999982,-1.60000000000025)); -#52498=CARTESIAN_POINT('',(-2.92,7.19,-1.59877936908855)); -#52499=CARTESIAN_POINT('',(-2.92,7.155,-1.0976)); -#52500=CARTESIAN_POINT('',(-2.92,7.5374,-1.42344658967066)); -#52501=CARTESIAN_POINT('',(-2.92,7.5374,-1.42344658967066)); -#52502=CARTESIAN_POINT('',(-2.92,7.59787264997766,-1.35247840376812)); -#52503=CARTESIAN_POINT('',(-2.88244206675412,7.63403033891439,-1.27081952584834)); -#52504=CARTESIAN_POINT('',(-2.84365232163209,7.64917868677046,-1.18811621701012)); -#52505=CARTESIAN_POINT('',(-2.84365232163208,7.64917868677046,-1.18811621701012)); -#52506=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52507=CARTESIAN_POINT('',(-2.75634767836792,7.64917868677046,-1.18811621701012)); -#52508=CARTESIAN_POINT('',(-2.75634767836792,7.64917868677046,-1.18811621701012)); -#52509=CARTESIAN_POINT('',(-2.71750101965383,7.63400811275933,-1.27094087086789)); -#52510=CARTESIAN_POINT('',(-2.68,7.59805032943425,-1.35226988655065)); -#52511=CARTESIAN_POINT('',(-2.68,7.5374,-1.42344658967066)); -#52512=CARTESIAN_POINT('',(-2.68,7.5374,-1.42344658967066)); -#52513=CARTESIAN_POINT('',(-2.68,7.155,-1.0976)); -#52514=CARTESIAN_POINT('',(-2.68,7.19,-1.59877936908855)); -#52515=CARTESIAN_POINT('',(-2.645,7.155,-1.6)); -#52516=CARTESIAN_POINT('',(-2.66349664060179,7.155,-1.6)); -#52517=CARTESIAN_POINT('',(-2.68000000000014,7.17154844824344,-1.6000679383141)); -#52518=CARTESIAN_POINT('',(-2.68000000000015,7.18999999999997,-1.59877936908857)); -#52519=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52520=CARTESIAN_POINT('',(-2.12,7.19,-1.59877936908855)); -#52521=CARTESIAN_POINT('',(-2.12,7.17154879938732,-1.60006791379186)); -#52522=CARTESIAN_POINT('',(-2.1365034374292,7.15499999999984,-1.60000000000025)); -#52523=CARTESIAN_POINT('',(-2.15499999999996,7.15499999999982,-1.60000000000025)); -#52524=CARTESIAN_POINT('',(-2.12,7.19,-1.59877936908855)); -#52525=CARTESIAN_POINT('',(-2.12,7.155,-1.0976)); -#52526=CARTESIAN_POINT('',(-2.12,7.5374,-1.42344658967066)); -#52527=CARTESIAN_POINT('',(-2.12,7.5374,-1.42344658967066)); -#52528=CARTESIAN_POINT('',(-2.12,7.59787264997766,-1.35247840376812)); -#52529=CARTESIAN_POINT('',(-2.08244206675412,7.63403033891439,-1.27081952584833)); -#52530=CARTESIAN_POINT('',(-2.04365232163209,7.64917868677046,-1.18811621701012)); -#52531=CARTESIAN_POINT('',(-2.04365232163208,7.64917868677046,-1.18811621701012)); -#52532=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52533=CARTESIAN_POINT('',(-1.95634767836792,7.64917868677046,-1.18811621701012)); -#52534=CARTESIAN_POINT('',(-1.95634767836792,7.64917868677046,-1.18811621701012)); -#52535=CARTESIAN_POINT('',(-1.91750101965383,7.63400811275933,-1.27094087086789)); -#52536=CARTESIAN_POINT('',(-1.88,7.59805032943425,-1.35226988655065)); -#52537=CARTESIAN_POINT('',(-1.88,7.5374,-1.42344658967066)); -#52538=CARTESIAN_POINT('',(-1.88,7.5374,-1.42344658967066)); -#52539=CARTESIAN_POINT('',(-1.88,7.155,-1.0976)); -#52540=CARTESIAN_POINT('',(-1.88,7.19,-1.59877936908855)); -#52541=CARTESIAN_POINT('',(-1.845,7.155,-1.6)); -#52542=CARTESIAN_POINT('',(-1.86349664060179,7.155,-1.6)); -#52543=CARTESIAN_POINT('',(-1.88000000000014,7.17154844824344,-1.6000679383141)); -#52544=CARTESIAN_POINT('',(-1.88000000000015,7.18999999999997,-1.59877936908857)); -#52545=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52546=CARTESIAN_POINT('',(-1.32,7.19,-1.59877936908855)); -#52547=CARTESIAN_POINT('',(-1.32,7.17154879938732,-1.60006791379186)); -#52548=CARTESIAN_POINT('',(-1.3365034374292,7.15499999999984,-1.60000000000025)); -#52549=CARTESIAN_POINT('',(-1.35499999999996,7.15499999999982,-1.60000000000025)); -#52550=CARTESIAN_POINT('',(-1.32,7.19,-1.59877936908855)); -#52551=CARTESIAN_POINT('',(-1.32,7.155,-1.0976)); -#52552=CARTESIAN_POINT('',(-1.32,7.5374,-1.42344658967066)); -#52553=CARTESIAN_POINT('',(-1.32,7.5374,-1.42344658967066)); -#52554=CARTESIAN_POINT('',(-1.32,7.59787264997766,-1.35247840376812)); -#52555=CARTESIAN_POINT('',(-1.28244206675412,7.63403033891439,-1.27081952584834)); -#52556=CARTESIAN_POINT('',(-1.24365232163209,7.64917868677046,-1.18811621701012)); -#52557=CARTESIAN_POINT('',(-1.24365232163209,7.64917868677046,-1.18811621701012)); -#52558=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52559=CARTESIAN_POINT('',(-1.15634767836792,7.64917868677046,-1.18811621701012)); -#52560=CARTESIAN_POINT('',(-1.15634767836792,7.64917868677046,-1.18811621701012)); -#52561=CARTESIAN_POINT('',(-1.11750101965383,7.63400811275933,-1.27094087086789)); -#52562=CARTESIAN_POINT('',(-1.08,7.59805032943425,-1.35226988655065)); -#52563=CARTESIAN_POINT('',(-1.08,7.5374,-1.42344658967066)); -#52564=CARTESIAN_POINT('',(-1.08,7.5374,-1.42344658967066)); -#52565=CARTESIAN_POINT('',(-1.08,7.155,-1.0976)); -#52566=CARTESIAN_POINT('',(-1.08,7.19,-1.59877936908855)); -#52567=CARTESIAN_POINT('',(-1.045,7.155,-1.6)); -#52568=CARTESIAN_POINT('',(-1.06349664060179,7.155,-1.6)); -#52569=CARTESIAN_POINT('',(-1.08000000000014,7.17154844824344,-1.6000679383141)); -#52570=CARTESIAN_POINT('',(-1.08000000000015,7.18999999999997,-1.59877936908857)); -#52571=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52572=CARTESIAN_POINT('',(-0.520000000000001,7.19,-1.59877936908855)); -#52573=CARTESIAN_POINT('',(-0.520000000000001,7.17154879938732,-1.60006791379186)); -#52574=CARTESIAN_POINT('',(-0.536503437429199,7.15499999999984,-1.60000000000025)); -#52575=CARTESIAN_POINT('',(-0.554999999999959,7.15499999999982,-1.60000000000025)); -#52576=CARTESIAN_POINT('',(-0.520000000000001,7.19,-1.59877936908855)); -#52577=CARTESIAN_POINT('',(-0.520000000000001,7.155,-1.0976)); -#52578=CARTESIAN_POINT('',(-0.520000000000001,7.5374,-1.42344658967066)); -#52579=CARTESIAN_POINT('',(-0.520000000000001,7.5374,-1.42344658967066)); -#52580=CARTESIAN_POINT('',(-0.520000000000001,7.59787264997766,-1.35247840376812)); -#52581=CARTESIAN_POINT('',(-0.482442066754121,7.63403033891439,-1.27081952584834)); -#52582=CARTESIAN_POINT('',(-0.443652321632086,7.64917868677046,-1.18811621701012)); -#52583=CARTESIAN_POINT('',(-0.443652321632085,7.64917868677046,-1.18811621701012)); -#52584=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52585=CARTESIAN_POINT('',(-0.356347678367917,7.64917868677046,-1.18811621701012)); -#52586=CARTESIAN_POINT('',(-0.356347678367917,7.64917868677046,-1.18811621701012)); -#52587=CARTESIAN_POINT('',(-0.317501019653832,7.63400811275933,-1.27094087086789)); -#52588=CARTESIAN_POINT('',(-0.28,7.59805032943425,-1.35226988655065)); -#52589=CARTESIAN_POINT('',(-0.28,7.5374,-1.42344658967066)); -#52590=CARTESIAN_POINT('',(-0.280000000000001,7.5374,-1.42344658967066)); -#52591=CARTESIAN_POINT('',(-0.280000000000001,7.155,-1.0976)); -#52592=CARTESIAN_POINT('',(-0.28,7.19,-1.59877936908855)); -#52593=CARTESIAN_POINT('',(-0.245000000000001,7.155,-1.6)); -#52594=CARTESIAN_POINT('',(-0.263496640601786,7.155,-1.6)); -#52595=CARTESIAN_POINT('',(-0.280000000000136,7.17154844824344,-1.6000679383141)); -#52596=CARTESIAN_POINT('',(-0.280000000000154,7.18999999999997,-1.59877936908857)); -#52597=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52598=CARTESIAN_POINT('',(0.279999999999999,7.19,-1.59877936908855)); -#52599=CARTESIAN_POINT('',(0.28,7.17154879938732,-1.60006791379186)); -#52600=CARTESIAN_POINT('',(0.263496562570802,7.15499999999984,-1.60000000000025)); -#52601=CARTESIAN_POINT('',(0.245000000000041,7.15499999999982,-1.60000000000025)); -#52602=CARTESIAN_POINT('',(0.279999999999999,7.19,-1.59877936908855)); -#52603=CARTESIAN_POINT('',(0.279999999999999,7.155,-1.0976)); -#52604=CARTESIAN_POINT('',(0.279999999999999,7.5374,-1.42344658967066)); -#52605=CARTESIAN_POINT('',(0.279999999999999,7.5374,-1.42344658967066)); -#52606=CARTESIAN_POINT('',(0.279999999999999,7.59787264997766,-1.35247840376812)); -#52607=CARTESIAN_POINT('',(0.317557933245879,7.63403033891439,-1.27081952584834)); -#52608=CARTESIAN_POINT('',(0.356347678367914,7.64917868677046,-1.18811621701012)); -#52609=CARTESIAN_POINT('',(0.356347678367916,7.64917868677046,-1.18811621701012)); -#52610=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52611=CARTESIAN_POINT('',(0.443652321632083,7.64917868677046,-1.18811621701012)); -#52612=CARTESIAN_POINT('',(0.443652321632084,7.64917868677046,-1.18811621701012)); -#52613=CARTESIAN_POINT('',(0.482498980346168,7.63400811275933,-1.27094087086789)); -#52614=CARTESIAN_POINT('',(0.52,7.59805032943425,-1.35226988655065)); -#52615=CARTESIAN_POINT('',(0.52,7.5374,-1.42344658967066)); -#52616=CARTESIAN_POINT('',(0.52,7.5374,-1.42344658967066)); -#52617=CARTESIAN_POINT('',(0.52,7.155,-1.0976)); -#52618=CARTESIAN_POINT('',(0.52,7.19,-1.59877936908855)); -#52619=CARTESIAN_POINT('',(0.554999999999999,7.155,-1.6)); -#52620=CARTESIAN_POINT('',(0.536503359398214,7.155,-1.6)); -#52621=CARTESIAN_POINT('',(0.519999999999864,7.17154844824344,-1.6000679383141)); -#52622=CARTESIAN_POINT('',(0.519999999999846,7.18999999999997,-1.59877936908857)); -#52623=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52624=CARTESIAN_POINT('',(1.08,7.19,-1.59877936908855)); -#52625=CARTESIAN_POINT('',(1.08,7.17154879938732,-1.60006791379186)); -#52626=CARTESIAN_POINT('',(1.0634965625708,7.15499999999984,-1.60000000000025)); -#52627=CARTESIAN_POINT('',(1.04500000000004,7.15499999999982,-1.60000000000025)); -#52628=CARTESIAN_POINT('',(1.08,7.19,-1.59877936908855)); -#52629=CARTESIAN_POINT('',(1.08,7.155,-1.0976)); -#52630=CARTESIAN_POINT('',(1.08,7.5374,-1.42344658967066)); -#52631=CARTESIAN_POINT('',(1.08,7.5374,-1.42344658967066)); -#52632=CARTESIAN_POINT('',(1.08,7.59787264997766,-1.35247840376812)); -#52633=CARTESIAN_POINT('',(1.11755793324588,7.63403033891439,-1.27081952584833)); -#52634=CARTESIAN_POINT('',(1.15634767836791,7.64917868677046,-1.18811621701012)); -#52635=CARTESIAN_POINT('',(1.15634767836792,7.64917868677046,-1.18811621701012)); -#52636=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52637=CARTESIAN_POINT('',(1.24365232163208,7.64917868677046,-1.18811621701012)); -#52638=CARTESIAN_POINT('',(1.24365232163208,7.64917868677046,-1.18811621701012)); -#52639=CARTESIAN_POINT('',(1.28249898034617,7.63400811275933,-1.27094087086789)); -#52640=CARTESIAN_POINT('',(1.32,7.59805032943425,-1.35226988655065)); -#52641=CARTESIAN_POINT('',(1.32,7.5374,-1.42344658967066)); -#52642=CARTESIAN_POINT('',(1.32,7.5374,-1.42344658967066)); -#52643=CARTESIAN_POINT('',(1.32,7.155,-1.0976)); -#52644=CARTESIAN_POINT('',(1.32,7.19,-1.59877936908855)); -#52645=CARTESIAN_POINT('',(1.355,7.155,-1.6)); -#52646=CARTESIAN_POINT('',(1.33650335939821,7.155,-1.6)); -#52647=CARTESIAN_POINT('',(1.31999999999986,7.17154844824344,-1.6000679383141)); -#52648=CARTESIAN_POINT('',(1.31999999999985,7.18999999999997,-1.59877936908857)); -#52649=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52650=CARTESIAN_POINT('',(1.88,7.19,-1.59877936908855)); -#52651=CARTESIAN_POINT('',(1.88,7.17154879938732,-1.60006791379186)); -#52652=CARTESIAN_POINT('',(1.8634965625708,7.15499999999984,-1.60000000000025)); -#52653=CARTESIAN_POINT('',(1.84500000000004,7.15499999999982,-1.60000000000025)); -#52654=CARTESIAN_POINT('',(1.88,7.19,-1.59877936908855)); -#52655=CARTESIAN_POINT('',(1.88,7.155,-1.0976)); -#52656=CARTESIAN_POINT('',(1.88,7.5374,-1.42344658967066)); -#52657=CARTESIAN_POINT('',(1.88,7.5374,-1.42344658967066)); -#52658=CARTESIAN_POINT('',(1.88,7.59787264997766,-1.35247840376812)); -#52659=CARTESIAN_POINT('',(1.91755793324588,7.63403033891439,-1.27081952584833)); -#52660=CARTESIAN_POINT('',(1.95634767836791,7.64917868677046,-1.18811621701012)); -#52661=CARTESIAN_POINT('',(1.95634767836792,7.64917868677046,-1.18811621701012)); -#52662=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52663=CARTESIAN_POINT('',(2.04365232163208,7.64917868677046,-1.18811621701012)); -#52664=CARTESIAN_POINT('',(2.04365232163208,7.64917868677046,-1.18811621701012)); -#52665=CARTESIAN_POINT('',(2.08249898034617,7.63400811275933,-1.27094087086789)); -#52666=CARTESIAN_POINT('',(2.12,7.59805032943425,-1.35226988655065)); -#52667=CARTESIAN_POINT('',(2.12,7.5374,-1.42344658967066)); -#52668=CARTESIAN_POINT('',(2.12,7.5374,-1.42344658967066)); -#52669=CARTESIAN_POINT('',(2.12,7.155,-1.0976)); -#52670=CARTESIAN_POINT('',(2.12,7.19,-1.59877936908855)); -#52671=CARTESIAN_POINT('',(2.155,7.155,-1.6)); -#52672=CARTESIAN_POINT('',(2.13650335939821,7.155,-1.6)); -#52673=CARTESIAN_POINT('',(2.11999999999986,7.17154844824344,-1.6000679383141)); -#52674=CARTESIAN_POINT('',(2.11999999999985,7.18999999999997,-1.59877936908857)); -#52675=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52676=CARTESIAN_POINT('',(2.68,7.19,-1.59877936908855)); -#52677=CARTESIAN_POINT('',(2.68,7.17154879938732,-1.60006791379186)); -#52678=CARTESIAN_POINT('',(2.6634965625708,7.15499999999984,-1.60000000000025)); -#52679=CARTESIAN_POINT('',(2.64500000000004,7.15499999999982,-1.60000000000025)); -#52680=CARTESIAN_POINT('',(2.68,7.19,-1.59877936908855)); -#52681=CARTESIAN_POINT('',(2.68,7.155,-1.0976)); -#52682=CARTESIAN_POINT('',(2.68,7.5374,-1.42344658967066)); -#52683=CARTESIAN_POINT('',(2.68,7.5374,-1.42344658967066)); -#52684=CARTESIAN_POINT('',(2.68,7.59787264997766,-1.35247840376812)); -#52685=CARTESIAN_POINT('',(2.71755793324588,7.63403033891439,-1.27081952584834)); -#52686=CARTESIAN_POINT('',(2.75634767836791,7.64917868677046,-1.18811621701012)); -#52687=CARTESIAN_POINT('',(2.75634767836792,7.64917868677046,-1.18811621701012)); -#52688=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52689=CARTESIAN_POINT('',(2.84365232163208,7.64917868677046,-1.18811621701012)); -#52690=CARTESIAN_POINT('',(2.84365232163208,7.64917868677046,-1.18811621701012)); -#52691=CARTESIAN_POINT('',(2.88249898034617,7.63400811275933,-1.27094087086789)); -#52692=CARTESIAN_POINT('',(2.92,7.59805032943425,-1.35226988655065)); -#52693=CARTESIAN_POINT('',(2.92,7.5374,-1.42344658967066)); -#52694=CARTESIAN_POINT('',(2.92,7.5374,-1.42344658967066)); -#52695=CARTESIAN_POINT('',(2.92,7.155,-1.0976)); -#52696=CARTESIAN_POINT('',(2.92,7.19,-1.59877936908855)); -#52697=CARTESIAN_POINT('',(2.955,7.155,-1.6)); -#52698=CARTESIAN_POINT('',(2.93650335939821,7.155,-1.6)); -#52699=CARTESIAN_POINT('',(2.91999999999986,7.17154844824344,-1.6000679383141)); -#52700=CARTESIAN_POINT('',(2.91999999999985,7.18999999999997,-1.59877936908857)); -#52701=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52702=CARTESIAN_POINT('',(3.48,7.19,-1.59877936908855)); -#52703=CARTESIAN_POINT('',(3.48,7.17154879938732,-1.60006791379186)); -#52704=CARTESIAN_POINT('',(3.4634965625708,7.15499999999984,-1.60000000000025)); -#52705=CARTESIAN_POINT('',(3.44500000000004,7.15499999999982,-1.60000000000025)); -#52706=CARTESIAN_POINT('',(3.48,7.19,-1.59877936908855)); -#52707=CARTESIAN_POINT('',(3.48,7.155,-1.0976)); -#52708=CARTESIAN_POINT('',(3.48,7.5374,-1.42344658967066)); -#52709=CARTESIAN_POINT('',(3.48,7.5374,-1.42344658967066)); -#52710=CARTESIAN_POINT('',(3.48,7.59787264997766,-1.35247840376812)); -#52711=CARTESIAN_POINT('',(3.51755793324588,7.63403033891439,-1.27081952584834)); -#52712=CARTESIAN_POINT('',(3.55634767836791,7.64917868677046,-1.18811621701012)); -#52713=CARTESIAN_POINT('',(3.55634767836792,7.64917868677046,-1.18811621701012)); -#52714=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52715=CARTESIAN_POINT('',(3.64365232163208,7.64917868677046,-1.18811621701012)); -#52716=CARTESIAN_POINT('',(3.64365232163208,7.64917868677046,-1.18811621701012)); -#52717=CARTESIAN_POINT('',(3.68249898034617,7.63400811275933,-1.27094087086789)); -#52718=CARTESIAN_POINT('',(3.72,7.59805032943425,-1.35226988655065)); -#52719=CARTESIAN_POINT('',(3.72,7.5374,-1.42344658967066)); -#52720=CARTESIAN_POINT('',(3.72,7.5374,-1.42344658967066)); -#52721=CARTESIAN_POINT('',(3.72,7.155,-1.0976)); -#52722=CARTESIAN_POINT('',(3.72,7.19,-1.59877936908855)); -#52723=CARTESIAN_POINT('',(3.755,7.155,-1.6)); -#52724=CARTESIAN_POINT('',(3.73650335939821,7.155,-1.6)); -#52725=CARTESIAN_POINT('',(3.71999999999986,7.17154844824344,-1.6000679383141)); -#52726=CARTESIAN_POINT('',(3.71999999999985,7.18999999999997,-1.59877936908857)); -#52727=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52728=CARTESIAN_POINT('',(4.28,7.19,-1.59877936908855)); -#52729=CARTESIAN_POINT('',(4.28,7.17154879938732,-1.60006791379186)); -#52730=CARTESIAN_POINT('',(4.2634965625708,7.15499999999984,-1.60000000000025)); -#52731=CARTESIAN_POINT('',(4.24500000000004,7.15499999999982,-1.60000000000025)); -#52732=CARTESIAN_POINT('',(4.28,7.19,-1.59877936908855)); -#52733=CARTESIAN_POINT('',(4.28,7.155,-1.0976)); -#52734=CARTESIAN_POINT('',(4.28,7.5374,-1.42344658967066)); -#52735=CARTESIAN_POINT('',(4.28,7.5374,-1.42344658967066)); -#52736=CARTESIAN_POINT('',(4.28,7.59787264997766,-1.35247840376812)); -#52737=CARTESIAN_POINT('',(4.31755793324588,7.63403033891439,-1.27081952584834)); -#52738=CARTESIAN_POINT('',(4.35634767836791,7.64917868677046,-1.18811621701012)); -#52739=CARTESIAN_POINT('',(4.35634767836792,7.64917868677046,-1.18811621701012)); -#52740=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52741=CARTESIAN_POINT('',(4.44365232163208,7.64917868677046,-1.18811621701012)); -#52742=CARTESIAN_POINT('',(4.44365232163208,7.64917868677046,-1.18811621701012)); -#52743=CARTESIAN_POINT('',(4.48249898034617,7.63400811275933,-1.27094087086789)); -#52744=CARTESIAN_POINT('',(4.52,7.59805032943425,-1.35226988655065)); -#52745=CARTESIAN_POINT('',(4.52,7.5374,-1.42344658967066)); -#52746=CARTESIAN_POINT('',(4.52,7.5374,-1.42344658967066)); -#52747=CARTESIAN_POINT('',(4.52,7.155,-1.0976)); -#52748=CARTESIAN_POINT('',(4.52,7.19,-1.59877936908855)); -#52749=CARTESIAN_POINT('',(4.555,7.155,-1.6)); -#52750=CARTESIAN_POINT('',(4.53650335939821,7.155,-1.6)); -#52751=CARTESIAN_POINT('',(4.51999999999986,7.17154844824344,-1.6000679383141)); -#52752=CARTESIAN_POINT('',(4.51999999999985,7.18999999999997,-1.59877936908857)); -#52753=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52754=CARTESIAN_POINT('',(5.08,7.19,-1.59877936908855)); -#52755=CARTESIAN_POINT('',(5.08,7.17154879938732,-1.60006791379186)); -#52756=CARTESIAN_POINT('',(5.0634965625708,7.15499999999984,-1.60000000000025)); -#52757=CARTESIAN_POINT('',(5.04500000000004,7.15499999999982,-1.60000000000025)); -#52758=CARTESIAN_POINT('',(5.08,7.19,-1.59877936908855)); -#52759=CARTESIAN_POINT('',(5.08,7.155,-1.0976)); -#52760=CARTESIAN_POINT('',(5.08,7.5374,-1.42344658967066)); -#52761=CARTESIAN_POINT('',(5.08,7.5374,-1.42344658967066)); -#52762=CARTESIAN_POINT('',(5.08,7.59787264997766,-1.35247840376812)); -#52763=CARTESIAN_POINT('',(5.11755793324588,7.63403033891439,-1.27081952584834)); -#52764=CARTESIAN_POINT('',(5.15634767836791,7.64917868677046,-1.18811621701012)); -#52765=CARTESIAN_POINT('',(5.15634767836791,7.64917868677046,-1.18811621701012)); -#52766=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52767=CARTESIAN_POINT('',(5.24365232163209,7.64917868677046,-1.18811621701012)); -#52768=CARTESIAN_POINT('',(5.24365232163209,7.64917868677046,-1.18811621701012)); -#52769=CARTESIAN_POINT('',(5.28249898034617,7.63400811275933,-1.27094087086789)); -#52770=CARTESIAN_POINT('',(5.32,7.59805032943425,-1.35226988655065)); -#52771=CARTESIAN_POINT('',(5.32,7.5374,-1.42344658967066)); -#52772=CARTESIAN_POINT('',(5.32,7.5374,-1.42344658967066)); -#52773=CARTESIAN_POINT('',(5.32,7.155,-1.0976)); -#52774=CARTESIAN_POINT('',(5.32,7.19,-1.59877936908855)); -#52775=CARTESIAN_POINT('',(5.355,7.155,-1.6)); -#52776=CARTESIAN_POINT('',(5.33650335939821,7.155,-1.6)); -#52777=CARTESIAN_POINT('',(5.31999999999986,7.17154844824344,-1.6000679383141)); -#52778=CARTESIAN_POINT('',(5.31999999999985,7.18999999999997,-1.59877936908857)); -#52779=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52780=CARTESIAN_POINT('',(5.88,7.19,-1.59877936908855)); -#52781=CARTESIAN_POINT('',(5.88,7.17154879938732,-1.60006791379186)); -#52782=CARTESIAN_POINT('',(5.8634965625708,7.15499999999984,-1.60000000000025)); -#52783=CARTESIAN_POINT('',(5.84500000000004,7.15499999999982,-1.60000000000025)); -#52784=CARTESIAN_POINT('',(5.88,7.19,-1.59877936908855)); -#52785=CARTESIAN_POINT('',(5.88,7.155,-1.0976)); -#52786=CARTESIAN_POINT('',(5.88,7.5374,-1.42344658967066)); -#52787=CARTESIAN_POINT('',(5.88,7.5374,-1.42344658967066)); -#52788=CARTESIAN_POINT('',(5.88,7.59787264997766,-1.35247840376812)); -#52789=CARTESIAN_POINT('',(5.91755793324588,7.63403033891439,-1.27081952584834)); -#52790=CARTESIAN_POINT('',(5.95634767836791,7.64917868677046,-1.18811621701012)); -#52791=CARTESIAN_POINT('',(5.95634767836792,7.64917868677046,-1.18811621701012)); -#52792=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52793=CARTESIAN_POINT('',(6.04365232163208,7.64917868677046,-1.18811621701012)); -#52794=CARTESIAN_POINT('',(6.04365232163208,7.64917868677046,-1.18811621701012)); -#52795=CARTESIAN_POINT('',(6.08249898034617,7.63400811275933,-1.27094087086789)); -#52796=CARTESIAN_POINT('',(6.12,7.59805032943425,-1.35226988655065)); -#52797=CARTESIAN_POINT('',(6.12,7.5374,-1.42344658967066)); -#52798=CARTESIAN_POINT('',(6.12,7.5374,-1.42344658967066)); -#52799=CARTESIAN_POINT('',(6.12,7.155,-1.0976)); -#52800=CARTESIAN_POINT('',(6.12,7.19,-1.59877936908855)); -#52801=CARTESIAN_POINT('',(6.155,7.155,-1.6)); -#52802=CARTESIAN_POINT('',(6.13650335939821,7.155,-1.6)); -#52803=CARTESIAN_POINT('',(6.11999999999986,7.17154844824344,-1.6000679383141)); -#52804=CARTESIAN_POINT('',(6.11999999999985,7.18999999999997,-1.59877936908857)); -#52805=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52806=CARTESIAN_POINT('',(6.68,7.19,-1.59877936908855)); -#52807=CARTESIAN_POINT('',(6.68,7.17154879938732,-1.60006791379186)); -#52808=CARTESIAN_POINT('',(6.6634965625708,7.15499999999984,-1.60000000000025)); -#52809=CARTESIAN_POINT('',(6.64500000000004,7.15499999999982,-1.60000000000025)); -#52810=CARTESIAN_POINT('',(6.68,7.19,-1.59877936908855)); -#52811=CARTESIAN_POINT('',(6.68,7.155,-1.0976)); -#52812=CARTESIAN_POINT('',(6.68,7.5374,-1.42344658967066)); -#52813=CARTESIAN_POINT('',(6.68,7.5374,-1.42344658967066)); -#52814=CARTESIAN_POINT('',(6.68,7.59787264997766,-1.35247840376812)); -#52815=CARTESIAN_POINT('',(6.71755793324588,7.63403033891439,-1.27081952584833)); -#52816=CARTESIAN_POINT('',(6.75634767836791,7.64917868677046,-1.18811621701012)); -#52817=CARTESIAN_POINT('',(6.75634767836792,7.64917868677046,-1.18811621701012)); -#52818=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52819=CARTESIAN_POINT('',(6.84365232163208,7.64917868677046,-1.18811621701012)); -#52820=CARTESIAN_POINT('',(6.84365232163208,7.64917868677046,-1.18811621701012)); -#52821=CARTESIAN_POINT('',(6.88249898034617,7.63400811275933,-1.27094087086789)); -#52822=CARTESIAN_POINT('',(6.92,7.59805032943425,-1.35226988655065)); -#52823=CARTESIAN_POINT('',(6.92,7.5374,-1.42344658967066)); -#52824=CARTESIAN_POINT('',(6.92,7.5374,-1.42344658967066)); -#52825=CARTESIAN_POINT('',(6.92,7.155,-1.0976)); -#52826=CARTESIAN_POINT('',(6.92,7.19,-1.59877936908855)); -#52827=CARTESIAN_POINT('',(6.955,7.155,-1.6)); -#52828=CARTESIAN_POINT('',(6.93650335939821,7.155,-1.6)); -#52829=CARTESIAN_POINT('',(6.91999999999986,7.17154844824344,-1.6000679383141)); -#52830=CARTESIAN_POINT('',(6.91999999999984,7.18999999999997,-1.59877936908857)); -#52831=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#52832=CARTESIAN_POINT('',(7.48,7.19,-1.59877936908855)); -#52833=CARTESIAN_POINT('',(7.48,7.17154879938732,-1.60006791379186)); -#52834=CARTESIAN_POINT('',(7.4634965625708,7.15499999999984,-1.60000000000025)); -#52835=CARTESIAN_POINT('',(7.44500000000004,7.15499999999982,-1.60000000000025)); -#52836=CARTESIAN_POINT('',(7.48,7.19,-1.59877936908855)); -#52837=CARTESIAN_POINT('',(7.48,7.155,-1.0976)); -#52838=CARTESIAN_POINT('',(7.48,7.5374,-1.42344658967066)); -#52839=CARTESIAN_POINT('',(7.48,7.5374,-1.42344658967066)); -#52840=CARTESIAN_POINT('',(7.48,7.59787264997766,-1.35247840376812)); -#52841=CARTESIAN_POINT('',(7.51755793324588,7.63403033891439,-1.27081952584834)); -#52842=CARTESIAN_POINT('',(7.55634767836791,7.64917868677046,-1.18811621701012)); -#52843=CARTESIAN_POINT('',(7.55634767836792,7.64917868677046,-1.18811621701012)); -#52844=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52845=CARTESIAN_POINT('',(7.64365232163208,7.64917868677046,-1.18811621701012)); -#52846=CARTESIAN_POINT('',(7.64365232163208,7.64917868677046,-1.18811621701012)); -#52847=CARTESIAN_POINT('',(7.68249898034617,7.63400811275933,-1.27094087086789)); -#52848=CARTESIAN_POINT('',(7.72,7.59805032943425,-1.35226988655065)); -#52849=CARTESIAN_POINT('',(7.72,7.5374,-1.42344658967066)); -#52850=CARTESIAN_POINT('',(7.72,7.5374,-1.42344658967066)); -#52851=CARTESIAN_POINT('',(7.72,7.155,-1.0976)); -#52852=CARTESIAN_POINT('',(7.72,7.19,-1.59877936908855)); -#52853=CARTESIAN_POINT('',(7.755,7.155,-1.6)); -#52854=CARTESIAN_POINT('',(7.73650335939821,7.155,-1.6)); -#52855=CARTESIAN_POINT('',(7.71999999999986,7.17154844824344,-1.6000679383141)); -#52856=CARTESIAN_POINT('',(7.71999999999985,7.18999999999997,-1.59877936908857)); -#52857=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52858=CARTESIAN_POINT('',(-7.6,7.5374,-1.12358076211353)); -#52859=CARTESIAN_POINT('',(-7.72,7.5374,-1.12358076211353)); -#52860=CARTESIAN_POINT('',(-7.72,7.64917868677046,-1.18811621701012)); -#52861=CARTESIAN_POINT('',(-7.72,7.4924,-1.0976)); -#52862=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52863=CARTESIAN_POINT('',(-7.48,7.4924,-1.0976)); -#52864=CARTESIAN_POINT('',(-7.48,7.64917868677046,-1.18811621701012)); -#52865=CARTESIAN_POINT('',(-7.48,7.5374,-1.12358076211353)); -#52866=CARTESIAN_POINT('',(-7.6,7.5374,-1.12358076211353)); -#52867=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52868=CARTESIAN_POINT('',(-6.8,7.5374,-1.12358076211353)); -#52869=CARTESIAN_POINT('',(-6.92,7.5374,-1.12358076211353)); -#52870=CARTESIAN_POINT('',(-6.92,7.64917868677046,-1.18811621701012)); -#52871=CARTESIAN_POINT('',(-6.92,7.4924,-1.0976)); -#52872=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52873=CARTESIAN_POINT('',(-6.68,7.4924,-1.0976)); -#52874=CARTESIAN_POINT('',(-6.68,7.64917868677046,-1.18811621701012)); -#52875=CARTESIAN_POINT('',(-6.68,7.5374,-1.12358076211353)); -#52876=CARTESIAN_POINT('',(-6.8,7.5374,-1.12358076211353)); -#52877=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52878=CARTESIAN_POINT('',(-6.,7.5374,-1.12358076211353)); -#52879=CARTESIAN_POINT('',(-6.12,7.5374,-1.12358076211353)); -#52880=CARTESIAN_POINT('',(-6.12,7.64917868677046,-1.18811621701012)); -#52881=CARTESIAN_POINT('',(-6.12,7.4924,-1.0976)); -#52882=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52883=CARTESIAN_POINT('',(-5.88,7.4924,-1.0976)); -#52884=CARTESIAN_POINT('',(-5.88,7.64917868677046,-1.18811621701012)); -#52885=CARTESIAN_POINT('',(-5.88,7.5374,-1.12358076211353)); -#52886=CARTESIAN_POINT('',(-6.,7.5374,-1.12358076211353)); -#52887=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52888=CARTESIAN_POINT('',(-5.2,7.5374,-1.12358076211353)); -#52889=CARTESIAN_POINT('',(-5.32,7.5374,-1.12358076211353)); -#52890=CARTESIAN_POINT('',(-5.32,7.64917868677046,-1.18811621701012)); -#52891=CARTESIAN_POINT('',(-5.32,7.4924,-1.0976)); -#52892=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52893=CARTESIAN_POINT('',(-5.08,7.4924,-1.0976)); -#52894=CARTESIAN_POINT('',(-5.08,7.64917868677046,-1.18811621701012)); -#52895=CARTESIAN_POINT('',(-5.08,7.5374,-1.12358076211353)); -#52896=CARTESIAN_POINT('',(-5.2,7.5374,-1.12358076211353)); -#52897=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52898=CARTESIAN_POINT('',(-4.4,7.5374,-1.12358076211353)); -#52899=CARTESIAN_POINT('',(-4.52,7.5374,-1.12358076211353)); -#52900=CARTESIAN_POINT('',(-4.52,7.64917868677046,-1.18811621701012)); -#52901=CARTESIAN_POINT('',(-4.52,7.4924,-1.0976)); -#52902=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52903=CARTESIAN_POINT('',(-4.28,7.4924,-1.0976)); -#52904=CARTESIAN_POINT('',(-4.28,7.64917868677046,-1.18811621701012)); -#52905=CARTESIAN_POINT('',(-4.28,7.5374,-1.12358076211353)); -#52906=CARTESIAN_POINT('',(-4.4,7.5374,-1.12358076211353)); -#52907=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52908=CARTESIAN_POINT('',(-3.6,7.5374,-1.12358076211353)); -#52909=CARTESIAN_POINT('',(-3.72,7.5374,-1.12358076211353)); -#52910=CARTESIAN_POINT('',(-3.72,7.64917868677046,-1.18811621701012)); -#52911=CARTESIAN_POINT('',(-3.72,7.4924,-1.0976)); -#52912=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52913=CARTESIAN_POINT('',(-3.48,7.4924,-1.0976)); -#52914=CARTESIAN_POINT('',(-3.48,7.64917868677046,-1.18811621701012)); -#52915=CARTESIAN_POINT('',(-3.48,7.5374,-1.12358076211353)); -#52916=CARTESIAN_POINT('',(-3.6,7.5374,-1.12358076211353)); -#52917=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52918=CARTESIAN_POINT('',(-2.8,7.5374,-1.12358076211353)); -#52919=CARTESIAN_POINT('',(-2.92,7.5374,-1.12358076211353)); -#52920=CARTESIAN_POINT('',(-2.92,7.64917868677046,-1.18811621701012)); -#52921=CARTESIAN_POINT('',(-2.92,7.4924,-1.0976)); -#52922=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52923=CARTESIAN_POINT('',(-2.68,7.4924,-1.0976)); -#52924=CARTESIAN_POINT('',(-2.68,7.64917868677046,-1.18811621701012)); -#52925=CARTESIAN_POINT('',(-2.68,7.5374,-1.12358076211353)); -#52926=CARTESIAN_POINT('',(-2.8,7.5374,-1.12358076211353)); -#52927=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52928=CARTESIAN_POINT('',(-2.,7.5374,-1.12358076211353)); -#52929=CARTESIAN_POINT('',(-2.12,7.5374,-1.12358076211353)); -#52930=CARTESIAN_POINT('',(-2.12,7.64917868677046,-1.18811621701012)); -#52931=CARTESIAN_POINT('',(-2.12,7.4924,-1.0976)); -#52932=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52933=CARTESIAN_POINT('',(-1.88,7.4924,-1.0976)); -#52934=CARTESIAN_POINT('',(-1.88,7.64917868677046,-1.18811621701012)); -#52935=CARTESIAN_POINT('',(-1.88,7.5374,-1.12358076211353)); -#52936=CARTESIAN_POINT('',(-2.,7.5374,-1.12358076211353)); -#52937=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52938=CARTESIAN_POINT('',(-1.2,7.5374,-1.12358076211353)); -#52939=CARTESIAN_POINT('',(-1.32,7.5374,-1.12358076211353)); -#52940=CARTESIAN_POINT('',(-1.32,7.64917868677046,-1.18811621701012)); -#52941=CARTESIAN_POINT('',(-1.32,7.4924,-1.0976)); -#52942=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52943=CARTESIAN_POINT('',(-1.08,7.4924,-1.0976)); -#52944=CARTESIAN_POINT('',(-1.08,7.64917868677046,-1.18811621701012)); -#52945=CARTESIAN_POINT('',(-1.08,7.5374,-1.12358076211353)); -#52946=CARTESIAN_POINT('',(-1.2,7.5374,-1.12358076211353)); -#52947=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52948=CARTESIAN_POINT('',(-0.400000000000001,7.5374,-1.12358076211353)); -#52949=CARTESIAN_POINT('',(-0.520000000000001,7.5374,-1.12358076211353)); -#52950=CARTESIAN_POINT('',(-0.520000000000001,7.64917868677046,-1.18811621701012)); -#52951=CARTESIAN_POINT('',(-0.520000000000001,7.4924,-1.0976)); -#52952=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52953=CARTESIAN_POINT('',(-0.280000000000001,7.4924,-1.0976)); -#52954=CARTESIAN_POINT('',(-0.280000000000001,7.64917868677046,-1.18811621701012)); -#52955=CARTESIAN_POINT('',(-0.280000000000001,7.5374,-1.12358076211353)); -#52956=CARTESIAN_POINT('',(-0.400000000000001,7.5374,-1.12358076211353)); -#52957=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52958=CARTESIAN_POINT('',(0.399999999999999,7.5374,-1.12358076211353)); -#52959=CARTESIAN_POINT('',(0.279999999999999,7.5374,-1.12358076211353)); -#52960=CARTESIAN_POINT('',(0.279999999999999,7.64917868677046,-1.18811621701012)); -#52961=CARTESIAN_POINT('',(0.279999999999999,7.4924,-1.0976)); -#52962=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52963=CARTESIAN_POINT('',(0.52,7.4924,-1.0976)); -#52964=CARTESIAN_POINT('',(0.52,7.64917868677046,-1.18811621701012)); -#52965=CARTESIAN_POINT('',(0.52,7.5374,-1.12358076211353)); -#52966=CARTESIAN_POINT('',(0.399999999999999,7.5374,-1.12358076211353)); -#52967=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52968=CARTESIAN_POINT('',(1.2,7.5374,-1.12358076211353)); -#52969=CARTESIAN_POINT('',(1.08,7.5374,-1.12358076211353)); -#52970=CARTESIAN_POINT('',(1.08,7.64917868677046,-1.18811621701012)); -#52971=CARTESIAN_POINT('',(1.08,7.4924,-1.0976)); -#52972=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52973=CARTESIAN_POINT('',(1.32,7.4924,-1.0976)); -#52974=CARTESIAN_POINT('',(1.32,7.64917868677046,-1.18811621701012)); -#52975=CARTESIAN_POINT('',(1.32,7.5374,-1.12358076211353)); -#52976=CARTESIAN_POINT('',(1.2,7.5374,-1.12358076211353)); -#52977=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52978=CARTESIAN_POINT('',(2.,7.5374,-1.12358076211353)); -#52979=CARTESIAN_POINT('',(1.88,7.5374,-1.12358076211353)); -#52980=CARTESIAN_POINT('',(1.88,7.64917868677046,-1.18811621701012)); -#52981=CARTESIAN_POINT('',(1.88,7.4924,-1.0976)); -#52982=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52983=CARTESIAN_POINT('',(2.12,7.4924,-1.0976)); -#52984=CARTESIAN_POINT('',(2.12,7.64917868677046,-1.18811621701012)); -#52985=CARTESIAN_POINT('',(2.12,7.5374,-1.12358076211353)); -#52986=CARTESIAN_POINT('',(2.,7.5374,-1.12358076211353)); -#52987=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52988=CARTESIAN_POINT('',(2.8,7.5374,-1.12358076211353)); -#52989=CARTESIAN_POINT('',(2.68,7.5374,-1.12358076211353)); -#52990=CARTESIAN_POINT('',(2.68,7.64917868677046,-1.18811621701012)); -#52991=CARTESIAN_POINT('',(2.68,7.4924,-1.0976)); -#52992=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#52993=CARTESIAN_POINT('',(2.92,7.4924,-1.0976)); -#52994=CARTESIAN_POINT('',(2.92,7.64917868677046,-1.18811621701012)); -#52995=CARTESIAN_POINT('',(2.92,7.5374,-1.12358076211353)); -#52996=CARTESIAN_POINT('',(2.8,7.5374,-1.12358076211353)); -#52997=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#52998=CARTESIAN_POINT('',(3.6,7.5374,-1.12358076211353)); -#52999=CARTESIAN_POINT('',(3.48,7.5374,-1.12358076211353)); -#53000=CARTESIAN_POINT('',(3.48,7.64917868677046,-1.18811621701012)); -#53001=CARTESIAN_POINT('',(3.48,7.4924,-1.0976)); -#53002=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#53003=CARTESIAN_POINT('',(3.72,7.4924,-1.0976)); -#53004=CARTESIAN_POINT('',(3.72,7.64917868677046,-1.18811621701012)); -#53005=CARTESIAN_POINT('',(3.72,7.5374,-1.12358076211353)); -#53006=CARTESIAN_POINT('',(3.6,7.5374,-1.12358076211353)); -#53007=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#53008=CARTESIAN_POINT('',(4.4,7.5374,-1.12358076211353)); -#53009=CARTESIAN_POINT('',(4.28,7.5374,-1.12358076211353)); -#53010=CARTESIAN_POINT('',(4.28,7.64917868677046,-1.18811621701012)); -#53011=CARTESIAN_POINT('',(4.28,7.4924,-1.0976)); -#53012=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#53013=CARTESIAN_POINT('',(4.52,7.4924,-1.0976)); -#53014=CARTESIAN_POINT('',(4.52,7.64917868677046,-1.18811621701012)); -#53015=CARTESIAN_POINT('',(4.52,7.5374,-1.12358076211353)); -#53016=CARTESIAN_POINT('',(4.4,7.5374,-1.12358076211353)); -#53017=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#53018=CARTESIAN_POINT('',(5.2,7.5374,-1.12358076211353)); -#53019=CARTESIAN_POINT('',(5.08,7.5374,-1.12358076211353)); -#53020=CARTESIAN_POINT('',(5.08,7.64917868677046,-1.18811621701012)); -#53021=CARTESIAN_POINT('',(5.08,7.4924,-1.0976)); -#53022=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#53023=CARTESIAN_POINT('',(5.32,7.4924,-1.0976)); -#53024=CARTESIAN_POINT('',(5.32,7.64917868677046,-1.18811621701012)); -#53025=CARTESIAN_POINT('',(5.32,7.5374,-1.12358076211353)); -#53026=CARTESIAN_POINT('',(5.2,7.5374,-1.12358076211353)); -#53027=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#53028=CARTESIAN_POINT('',(6.,7.5374,-1.12358076211353)); -#53029=CARTESIAN_POINT('',(5.88,7.5374,-1.12358076211353)); -#53030=CARTESIAN_POINT('',(5.88,7.64917868677046,-1.18811621701012)); -#53031=CARTESIAN_POINT('',(5.88,7.4924,-1.0976)); -#53032=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#53033=CARTESIAN_POINT('',(6.12,7.4924,-1.0976)); -#53034=CARTESIAN_POINT('',(6.12,7.64917868677046,-1.18811621701012)); -#53035=CARTESIAN_POINT('',(6.12,7.5374,-1.12358076211353)); -#53036=CARTESIAN_POINT('',(6.,7.5374,-1.12358076211353)); -#53037=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#53038=CARTESIAN_POINT('',(6.8,7.5374,-1.12358076211353)); -#53039=CARTESIAN_POINT('',(6.68,7.5374,-1.12358076211353)); -#53040=CARTESIAN_POINT('',(6.68,7.64917868677046,-1.18811621701012)); -#53041=CARTESIAN_POINT('',(6.68,7.4924,-1.0976)); -#53042=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#53043=CARTESIAN_POINT('',(6.92,7.4924,-1.0976)); -#53044=CARTESIAN_POINT('',(6.92,7.64917868677046,-1.18811621701012)); -#53045=CARTESIAN_POINT('',(6.92,7.5374,-1.12358076211353)); -#53046=CARTESIAN_POINT('',(6.8,7.5374,-1.12358076211353)); -#53047=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53048=CARTESIAN_POINT('',(-7.72,7.155,-1.0976)); -#53049=CARTESIAN_POINT('',(-7.72,7.19,-1.43317973717136)); -#53050=CARTESIAN_POINT('',(-7.72,7.19,-1.43317973717136)); -#53051=CARTESIAN_POINT('',(-7.72,7.17159323925028,-1.43509950929965)); -#53052=CARTESIAN_POINT('',(-7.73649246073986,7.15499999999982,-1.43500000000041)); -#53053=CARTESIAN_POINT('',(-7.75499999999995,7.15499999999979,-1.43500000000041)); -#53054=CARTESIAN_POINT('',(-7.445,7.155,-1.435)); -#53055=CARTESIAN_POINT('',(-7.46350770821694,7.155,-1.435)); -#53056=CARTESIAN_POINT('',(-7.48000000000012,7.17159247157791,-1.43509958936568)); -#53057=CARTESIAN_POINT('',(-7.48000000000014,7.18999999999997,-1.43317973717138)); -#53058=CARTESIAN_POINT('',(-7.48,7.19,-1.43317973717136)); -#53059=CARTESIAN_POINT('',(-7.48,7.155,-1.0976)); -#53060=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53061=CARTESIAN_POINT('',(-6.92,7.155,-1.0976)); -#53062=CARTESIAN_POINT('',(-6.92,7.19,-1.43317973717136)); -#53063=CARTESIAN_POINT('',(-6.92,7.19,-1.43317973717136)); -#53064=CARTESIAN_POINT('',(-6.92,7.17159323925028,-1.43509950929965)); -#53065=CARTESIAN_POINT('',(-6.93649246073986,7.15499999999982,-1.43500000000041)); -#53066=CARTESIAN_POINT('',(-6.95499999999995,7.15499999999979,-1.43500000000041)); -#53067=CARTESIAN_POINT('',(-6.645,7.155,-1.435)); -#53068=CARTESIAN_POINT('',(-6.66350770821694,7.155,-1.435)); -#53069=CARTESIAN_POINT('',(-6.68000000000012,7.17159247157791,-1.43509958936568)); -#53070=CARTESIAN_POINT('',(-6.68000000000014,7.18999999999997,-1.43317973717138)); -#53071=CARTESIAN_POINT('',(-6.68,7.19,-1.43317973717136)); -#53072=CARTESIAN_POINT('',(-6.68,7.155,-1.0976)); -#53073=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53074=CARTESIAN_POINT('',(-6.12,7.155,-1.0976)); -#53075=CARTESIAN_POINT('',(-6.12,7.19,-1.43317973717136)); -#53076=CARTESIAN_POINT('',(-6.12,7.19,-1.43317973717136)); -#53077=CARTESIAN_POINT('',(-6.12,7.17159323925028,-1.43509950929965)); -#53078=CARTESIAN_POINT('',(-6.13649246073986,7.15499999999982,-1.43500000000041)); -#53079=CARTESIAN_POINT('',(-6.15499999999995,7.15499999999979,-1.43500000000041)); -#53080=CARTESIAN_POINT('',(-5.845,7.155,-1.435)); -#53081=CARTESIAN_POINT('',(-5.86350770821694,7.155,-1.435)); -#53082=CARTESIAN_POINT('',(-5.88000000000012,7.17159247157791,-1.43509958936568)); -#53083=CARTESIAN_POINT('',(-5.88000000000014,7.18999999999997,-1.43317973717138)); -#53084=CARTESIAN_POINT('',(-5.88,7.19,-1.43317973717136)); -#53085=CARTESIAN_POINT('',(-5.88,7.155,-1.0976)); -#53086=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53087=CARTESIAN_POINT('',(-5.32,7.155,-1.0976)); -#53088=CARTESIAN_POINT('',(-5.32,7.19,-1.43317973717136)); -#53089=CARTESIAN_POINT('',(-5.32,7.19,-1.43317973717136)); -#53090=CARTESIAN_POINT('',(-5.32,7.17159323925028,-1.43509950929965)); -#53091=CARTESIAN_POINT('',(-5.33649246073986,7.15499999999982,-1.43500000000041)); -#53092=CARTESIAN_POINT('',(-5.35499999999995,7.15499999999979,-1.43500000000041)); -#53093=CARTESIAN_POINT('',(-5.045,7.155,-1.435)); -#53094=CARTESIAN_POINT('',(-5.06350770821694,7.155,-1.435)); -#53095=CARTESIAN_POINT('',(-5.08000000000012,7.17159247157791,-1.43509958936568)); -#53096=CARTESIAN_POINT('',(-5.08000000000014,7.18999999999997,-1.43317973717138)); -#53097=CARTESIAN_POINT('',(-5.08,7.19,-1.43317973717136)); -#53098=CARTESIAN_POINT('',(-5.08,7.155,-1.0976)); -#53099=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53100=CARTESIAN_POINT('',(-4.52,7.155,-1.0976)); -#53101=CARTESIAN_POINT('',(-4.52,7.19,-1.43317973717136)); -#53102=CARTESIAN_POINT('',(-4.52,7.19,-1.43317973717136)); -#53103=CARTESIAN_POINT('',(-4.52,7.17159323925028,-1.43509950929965)); -#53104=CARTESIAN_POINT('',(-4.53649246073986,7.15499999999982,-1.43500000000041)); -#53105=CARTESIAN_POINT('',(-4.55499999999995,7.15499999999979,-1.43500000000041)); -#53106=CARTESIAN_POINT('',(-4.245,7.155,-1.435)); -#53107=CARTESIAN_POINT('',(-4.26350770821694,7.155,-1.435)); -#53108=CARTESIAN_POINT('',(-4.28000000000012,7.17159247157791,-1.43509958936568)); -#53109=CARTESIAN_POINT('',(-4.28000000000014,7.18999999999997,-1.43317973717138)); -#53110=CARTESIAN_POINT('',(-4.28,7.19,-1.43317973717136)); -#53111=CARTESIAN_POINT('',(-4.28,7.155,-1.0976)); -#53112=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53113=CARTESIAN_POINT('',(-3.72,7.155,-1.0976)); -#53114=CARTESIAN_POINT('',(-3.72,7.19,-1.43317973717136)); -#53115=CARTESIAN_POINT('',(-3.72,7.19,-1.43317973717136)); -#53116=CARTESIAN_POINT('',(-3.72,7.17159323925028,-1.43509950929965)); -#53117=CARTESIAN_POINT('',(-3.73649246073986,7.15499999999982,-1.43500000000041)); -#53118=CARTESIAN_POINT('',(-3.75499999999995,7.15499999999979,-1.43500000000041)); -#53119=CARTESIAN_POINT('',(-3.445,7.155,-1.435)); -#53120=CARTESIAN_POINT('',(-3.46350770821694,7.155,-1.435)); -#53121=CARTESIAN_POINT('',(-3.48000000000012,7.17159247157791,-1.43509958936568)); -#53122=CARTESIAN_POINT('',(-3.48000000000014,7.18999999999997,-1.43317973717138)); -#53123=CARTESIAN_POINT('',(-3.48,7.19,-1.43317973717136)); -#53124=CARTESIAN_POINT('',(-3.48,7.155,-1.0976)); -#53125=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53126=CARTESIAN_POINT('',(-2.92,7.155,-1.0976)); -#53127=CARTESIAN_POINT('',(-2.92,7.19,-1.43317973717136)); -#53128=CARTESIAN_POINT('',(-2.92,7.19,-1.43317973717136)); -#53129=CARTESIAN_POINT('',(-2.92,7.17159323925028,-1.43509950929965)); -#53130=CARTESIAN_POINT('',(-2.93649246073986,7.15499999999982,-1.43500000000041)); -#53131=CARTESIAN_POINT('',(-2.95499999999995,7.15499999999979,-1.43500000000041)); -#53132=CARTESIAN_POINT('',(-2.645,7.155,-1.435)); -#53133=CARTESIAN_POINT('',(-2.66350770821694,7.155,-1.435)); -#53134=CARTESIAN_POINT('',(-2.68000000000012,7.17159247157791,-1.43509958936568)); -#53135=CARTESIAN_POINT('',(-2.68000000000014,7.18999999999997,-1.43317973717138)); -#53136=CARTESIAN_POINT('',(-2.68,7.19,-1.43317973717136)); -#53137=CARTESIAN_POINT('',(-2.68,7.155,-1.0976)); -#53138=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53139=CARTESIAN_POINT('',(-2.12,7.155,-1.0976)); -#53140=CARTESIAN_POINT('',(-2.12,7.19,-1.43317973717136)); -#53141=CARTESIAN_POINT('',(-2.12,7.19,-1.43317973717136)); -#53142=CARTESIAN_POINT('',(-2.12,7.17159323925028,-1.43509950929965)); -#53143=CARTESIAN_POINT('',(-2.13649246073986,7.15499999999982,-1.43500000000041)); -#53144=CARTESIAN_POINT('',(-2.15499999999995,7.15499999999979,-1.43500000000041)); -#53145=CARTESIAN_POINT('',(-1.845,7.155,-1.435)); -#53146=CARTESIAN_POINT('',(-1.86350770821694,7.155,-1.435)); -#53147=CARTESIAN_POINT('',(-1.88000000000012,7.17159247157791,-1.43509958936568)); -#53148=CARTESIAN_POINT('',(-1.88000000000014,7.18999999999997,-1.43317973717138)); -#53149=CARTESIAN_POINT('',(-1.88,7.19,-1.43317973717136)); -#53150=CARTESIAN_POINT('',(-1.88,7.155,-1.0976)); -#53151=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53152=CARTESIAN_POINT('',(-1.32,7.155,-1.0976)); -#53153=CARTESIAN_POINT('',(-1.32,7.19,-1.43317973717136)); -#53154=CARTESIAN_POINT('',(-1.32,7.19,-1.43317973717136)); -#53155=CARTESIAN_POINT('',(-1.32,7.17159323925028,-1.43509950929965)); -#53156=CARTESIAN_POINT('',(-1.33649246073986,7.15499999999982,-1.43500000000041)); -#53157=CARTESIAN_POINT('',(-1.35499999999995,7.15499999999979,-1.43500000000041)); -#53158=CARTESIAN_POINT('',(-1.045,7.155,-1.435)); -#53159=CARTESIAN_POINT('',(-1.06350770821694,7.155,-1.435)); -#53160=CARTESIAN_POINT('',(-1.08000000000012,7.17159247157791,-1.43509958936568)); -#53161=CARTESIAN_POINT('',(-1.08000000000014,7.18999999999997,-1.43317973717138)); -#53162=CARTESIAN_POINT('',(-1.08,7.19,-1.43317973717136)); -#53163=CARTESIAN_POINT('',(-1.08,7.155,-1.0976)); -#53164=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53165=CARTESIAN_POINT('',(-0.520000000000001,7.155,-1.0976)); -#53166=CARTESIAN_POINT('',(-0.520000000000001,7.19,-1.43317973717136)); -#53167=CARTESIAN_POINT('',(-0.520000000000001,7.19,-1.43317973717136)); -#53168=CARTESIAN_POINT('',(-0.520000000000001,7.17159323925028,-1.43509950929965)); -#53169=CARTESIAN_POINT('',(-0.536492460739861,7.15499999999982,-1.43500000000041)); -#53170=CARTESIAN_POINT('',(-0.554999999999953,7.15499999999979,-1.43500000000041)); -#53171=CARTESIAN_POINT('',(-0.245000000000001,7.155,-1.435)); -#53172=CARTESIAN_POINT('',(-0.263507708216938,7.155,-1.435)); -#53173=CARTESIAN_POINT('',(-0.280000000000125,7.17159247157791,-1.43509958936568)); -#53174=CARTESIAN_POINT('',(-0.280000000000141,7.18999999999997,-1.43317973717138)); -#53175=CARTESIAN_POINT('',(-0.28,7.19,-1.43317973717136)); -#53176=CARTESIAN_POINT('',(-0.280000000000001,7.155,-1.0976)); -#53177=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53178=CARTESIAN_POINT('',(0.279999999999999,7.155,-1.0976)); -#53179=CARTESIAN_POINT('',(0.279999999999999,7.19,-1.43317973717136)); -#53180=CARTESIAN_POINT('',(0.279999999999999,7.19,-1.43317973717136)); -#53181=CARTESIAN_POINT('',(0.28,7.17159323925028,-1.43509950929965)); -#53182=CARTESIAN_POINT('',(0.26350753926014,7.15499999999982,-1.43500000000041)); -#53183=CARTESIAN_POINT('',(0.245000000000047,7.15499999999979,-1.43500000000041)); -#53184=CARTESIAN_POINT('',(0.554999999999999,7.155,-1.435)); -#53185=CARTESIAN_POINT('',(0.536492291783062,7.155,-1.435)); -#53186=CARTESIAN_POINT('',(0.519999999999875,7.17159247157791,-1.43509958936568)); -#53187=CARTESIAN_POINT('',(0.519999999999859,7.18999999999997,-1.43317973717138)); -#53188=CARTESIAN_POINT('',(0.52,7.19,-1.43317973717136)); -#53189=CARTESIAN_POINT('',(0.52,7.155,-1.0976)); -#53190=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53191=CARTESIAN_POINT('',(1.08,7.155,-1.0976)); -#53192=CARTESIAN_POINT('',(1.08,7.19,-1.43317973717136)); -#53193=CARTESIAN_POINT('',(1.08,7.19,-1.43317973717136)); -#53194=CARTESIAN_POINT('',(1.08,7.17159323925028,-1.43509950929965)); -#53195=CARTESIAN_POINT('',(1.06350753926014,7.15499999999982,-1.43500000000041)); -#53196=CARTESIAN_POINT('',(1.04500000000005,7.15499999999979,-1.43500000000041)); -#53197=CARTESIAN_POINT('',(1.355,7.155,-1.435)); -#53198=CARTESIAN_POINT('',(1.33649229178306,7.155,-1.435)); -#53199=CARTESIAN_POINT('',(1.31999999999988,7.17159247157791,-1.43509958936568)); -#53200=CARTESIAN_POINT('',(1.31999999999986,7.18999999999997,-1.43317973717138)); -#53201=CARTESIAN_POINT('',(1.32,7.19,-1.43317973717136)); -#53202=CARTESIAN_POINT('',(1.32,7.155,-1.0976)); -#53203=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53204=CARTESIAN_POINT('',(1.88,7.155,-1.0976)); -#53205=CARTESIAN_POINT('',(1.88,7.19,-1.43317973717136)); -#53206=CARTESIAN_POINT('',(1.88,7.19,-1.43317973717136)); -#53207=CARTESIAN_POINT('',(1.88,7.17159323925028,-1.43509950929965)); -#53208=CARTESIAN_POINT('',(1.86350753926014,7.15499999999982,-1.43500000000041)); -#53209=CARTESIAN_POINT('',(1.84500000000005,7.15499999999979,-1.43500000000041)); -#53210=CARTESIAN_POINT('',(2.155,7.155,-1.435)); -#53211=CARTESIAN_POINT('',(2.13649229178306,7.155,-1.435)); -#53212=CARTESIAN_POINT('',(2.11999999999988,7.17159247157791,-1.43509958936568)); -#53213=CARTESIAN_POINT('',(2.11999999999986,7.18999999999997,-1.43317973717138)); -#53214=CARTESIAN_POINT('',(2.12,7.19,-1.43317973717136)); -#53215=CARTESIAN_POINT('',(2.12,7.155,-1.0976)); -#53216=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53217=CARTESIAN_POINT('',(2.68,7.155,-1.0976)); -#53218=CARTESIAN_POINT('',(2.68,7.19,-1.43317973717136)); -#53219=CARTESIAN_POINT('',(2.68,7.19,-1.43317973717136)); -#53220=CARTESIAN_POINT('',(2.68,7.17159323925028,-1.43509950929965)); -#53221=CARTESIAN_POINT('',(2.66350753926014,7.15499999999982,-1.43500000000041)); -#53222=CARTESIAN_POINT('',(2.64500000000005,7.15499999999979,-1.43500000000041)); -#53223=CARTESIAN_POINT('',(2.955,7.155,-1.435)); -#53224=CARTESIAN_POINT('',(2.93649229178306,7.155,-1.435)); -#53225=CARTESIAN_POINT('',(2.91999999999988,7.17159247157791,-1.43509958936568)); -#53226=CARTESIAN_POINT('',(2.91999999999986,7.18999999999997,-1.43317973717138)); -#53227=CARTESIAN_POINT('',(2.92,7.19,-1.43317973717136)); -#53228=CARTESIAN_POINT('',(2.92,7.155,-1.0976)); -#53229=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53230=CARTESIAN_POINT('',(3.48,7.155,-1.0976)); -#53231=CARTESIAN_POINT('',(3.48,7.19,-1.43317973717136)); -#53232=CARTESIAN_POINT('',(3.48,7.19,-1.43317973717136)); -#53233=CARTESIAN_POINT('',(3.48,7.17159323925028,-1.43509950929965)); -#53234=CARTESIAN_POINT('',(3.46350753926014,7.15499999999982,-1.43500000000041)); -#53235=CARTESIAN_POINT('',(3.44500000000005,7.15499999999979,-1.43500000000041)); -#53236=CARTESIAN_POINT('',(3.755,7.155,-1.435)); -#53237=CARTESIAN_POINT('',(3.73649229178306,7.155,-1.435)); -#53238=CARTESIAN_POINT('',(3.71999999999988,7.17159247157791,-1.43509958936568)); -#53239=CARTESIAN_POINT('',(3.71999999999986,7.18999999999997,-1.43317973717138)); -#53240=CARTESIAN_POINT('',(3.72,7.19,-1.43317973717136)); -#53241=CARTESIAN_POINT('',(3.72,7.155,-1.0976)); -#53242=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53243=CARTESIAN_POINT('',(4.28,7.155,-1.0976)); -#53244=CARTESIAN_POINT('',(4.28,7.19,-1.43317973717136)); -#53245=CARTESIAN_POINT('',(4.28,7.19,-1.43317973717136)); -#53246=CARTESIAN_POINT('',(4.28,7.17159323925028,-1.43509950929965)); -#53247=CARTESIAN_POINT('',(4.26350753926014,7.15499999999982,-1.43500000000041)); -#53248=CARTESIAN_POINT('',(4.24500000000005,7.15499999999979,-1.43500000000041)); -#53249=CARTESIAN_POINT('',(4.555,7.155,-1.435)); -#53250=CARTESIAN_POINT('',(4.53649229178306,7.155,-1.435)); -#53251=CARTESIAN_POINT('',(4.51999999999988,7.17159247157791,-1.43509958936568)); -#53252=CARTESIAN_POINT('',(4.51999999999986,7.18999999999997,-1.43317973717138)); -#53253=CARTESIAN_POINT('',(4.52,7.19,-1.43317973717136)); -#53254=CARTESIAN_POINT('',(4.52,7.155,-1.0976)); -#53255=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53256=CARTESIAN_POINT('',(5.08,7.155,-1.0976)); -#53257=CARTESIAN_POINT('',(5.08,7.19,-1.43317973717136)); -#53258=CARTESIAN_POINT('',(5.08,7.19,-1.43317973717136)); -#53259=CARTESIAN_POINT('',(5.08,7.17159323925028,-1.43509950929965)); -#53260=CARTESIAN_POINT('',(5.06350753926014,7.15499999999982,-1.43500000000041)); -#53261=CARTESIAN_POINT('',(5.04500000000005,7.15499999999979,-1.43500000000041)); -#53262=CARTESIAN_POINT('',(5.355,7.155,-1.435)); -#53263=CARTESIAN_POINT('',(5.33649229178306,7.155,-1.435)); -#53264=CARTESIAN_POINT('',(5.31999999999988,7.17159247157791,-1.43509958936568)); -#53265=CARTESIAN_POINT('',(5.31999999999986,7.18999999999997,-1.43317973717138)); -#53266=CARTESIAN_POINT('',(5.32,7.19,-1.43317973717136)); -#53267=CARTESIAN_POINT('',(5.32,7.155,-1.0976)); -#53268=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53269=CARTESIAN_POINT('',(5.88,7.155,-1.0976)); -#53270=CARTESIAN_POINT('',(5.88,7.19,-1.43317973717136)); -#53271=CARTESIAN_POINT('',(5.88,7.19,-1.43317973717136)); -#53272=CARTESIAN_POINT('',(5.88,7.17159323925028,-1.43509950929965)); -#53273=CARTESIAN_POINT('',(5.86350753926014,7.15499999999982,-1.43500000000041)); -#53274=CARTESIAN_POINT('',(5.84500000000005,7.15499999999979,-1.43500000000041)); -#53275=CARTESIAN_POINT('',(6.155,7.155,-1.435)); -#53276=CARTESIAN_POINT('',(6.13649229178306,7.155,-1.435)); -#53277=CARTESIAN_POINT('',(6.11999999999988,7.17159247157791,-1.43509958936568)); -#53278=CARTESIAN_POINT('',(6.11999999999986,7.18999999999997,-1.43317973717138)); -#53279=CARTESIAN_POINT('',(6.12,7.19,-1.43317973717136)); -#53280=CARTESIAN_POINT('',(6.12,7.155,-1.0976)); -#53281=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53282=CARTESIAN_POINT('',(6.68,7.155,-1.0976)); -#53283=CARTESIAN_POINT('',(6.68,7.19,-1.43317973717136)); -#53284=CARTESIAN_POINT('',(6.68,7.19,-1.43317973717136)); -#53285=CARTESIAN_POINT('',(6.68,7.17159323925028,-1.43509950929965)); -#53286=CARTESIAN_POINT('',(6.66350753926014,7.15499999999982,-1.43500000000041)); -#53287=CARTESIAN_POINT('',(6.64500000000005,7.15499999999979,-1.43500000000041)); -#53288=CARTESIAN_POINT('',(6.955,7.155,-1.435)); -#53289=CARTESIAN_POINT('',(6.93649229178306,7.155,-1.435)); -#53290=CARTESIAN_POINT('',(6.91999999999987,7.17159247157791,-1.43509958936568)); -#53291=CARTESIAN_POINT('',(6.91999999999986,7.18999999999997,-1.43317973717138)); -#53292=CARTESIAN_POINT('',(6.92,7.19,-1.43317973717136)); -#53293=CARTESIAN_POINT('',(6.92,7.155,-1.0976)); -#53294=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); -#53295=CARTESIAN_POINT('',(7.48,7.155,-1.0976)); -#53296=CARTESIAN_POINT('',(7.48,7.19,-1.43317973717136)); -#53297=CARTESIAN_POINT('',(7.48,7.4924,-1.0976)); -#53298=CARTESIAN_POINT('',(7.48,7.19,-1.43317973717136)); -#53299=CARTESIAN_POINT('',(7.48,7.17159323925028,-1.43509950929965)); -#53300=CARTESIAN_POINT('',(7.46350753926014,7.15499999999982,-1.43500000000041)); -#53301=CARTESIAN_POINT('',(7.44500000000005,7.15499999999979,-1.43500000000041)); -#53302=CARTESIAN_POINT('',(7.755,7.155,-1.435)); -#53303=CARTESIAN_POINT('',(7.73649229178306,7.155,-1.435)); -#53304=CARTESIAN_POINT('',(7.71999999999987,7.17159247157791,-1.43509958936568)); -#53305=CARTESIAN_POINT('',(7.71999999999986,7.18999999999997,-1.43317973717138)); -#53306=CARTESIAN_POINT('',(7.72,7.19,-1.43317973717136)); -#53307=CARTESIAN_POINT('',(7.72,7.155,-1.0976)); -#53308=CARTESIAN_POINT('',(7.72,7.4924,-1.0976)); -#53309=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); -#53310=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53311=CARTESIAN_POINT('',(-7.755,7.155,1.435)); -#53312=CARTESIAN_POINT('',(-7.73649229178306,7.155,1.435)); -#53313=CARTESIAN_POINT('',(-7.71999999999988,7.17159247157791,1.43509958936568)); -#53314=CARTESIAN_POINT('',(-7.71999999999986,7.18999999999997,1.43317973717138)); -#53315=CARTESIAN_POINT('',(-7.72,7.19,1.43317973717136)); -#53316=CARTESIAN_POINT('',(-7.72,7.155,1.0976)); -#53317=CARTESIAN_POINT('',(-7.72,7.4924,1.0976)); -#53318=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53319=CARTESIAN_POINT('',(-7.48,7.4924,1.0976)); -#53320=CARTESIAN_POINT('',(-7.48,7.155,1.0976)); -#53321=CARTESIAN_POINT('',(-7.48,7.19,1.43317973717136)); -#53322=CARTESIAN_POINT('',(-7.48,7.19,1.43317973717136)); -#53323=CARTESIAN_POINT('',(-7.48,7.17159323925028,1.43509950929965)); -#53324=CARTESIAN_POINT('',(-7.46350753926014,7.15499999999982,1.43500000000041)); -#53325=CARTESIAN_POINT('',(-7.44500000000005,7.15499999999979,1.43500000000041)); -#53326=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53327=CARTESIAN_POINT('',(-6.92,7.19,1.43317973717136)); -#53328=CARTESIAN_POINT('',(-6.92,7.17159323925028,1.43509950929965)); -#53329=CARTESIAN_POINT('',(-6.93649246073986,7.15499999999982,1.43500000000041)); -#53330=CARTESIAN_POINT('',(-6.95499999999995,7.15499999999979,1.43500000000041)); -#53331=CARTESIAN_POINT('',(-6.92,7.19,1.43317973717136)); -#53332=CARTESIAN_POINT('',(-6.92,7.155,1.0976)); -#53333=CARTESIAN_POINT('',(-6.92,7.4924,1.0976)); -#53334=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53335=CARTESIAN_POINT('',(-6.68,7.4924,1.0976)); -#53336=CARTESIAN_POINT('',(-6.68,7.155,1.0976)); -#53337=CARTESIAN_POINT('',(-6.68,7.19,1.43317973717136)); -#53338=CARTESIAN_POINT('',(-6.68,7.19,1.43317973717136)); -#53339=CARTESIAN_POINT('',(-6.68,7.17159323925028,1.43509950929965)); -#53340=CARTESIAN_POINT('',(-6.66350753926014,7.15499999999982,1.43500000000041)); -#53341=CARTESIAN_POINT('',(-6.64500000000005,7.15499999999979,1.43500000000041)); -#53342=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53343=CARTESIAN_POINT('',(-6.12,7.19,1.43317973717136)); -#53344=CARTESIAN_POINT('',(-6.12,7.17159323925028,1.43509950929965)); -#53345=CARTESIAN_POINT('',(-6.13649246073986,7.15499999999982,1.43500000000041)); -#53346=CARTESIAN_POINT('',(-6.15499999999995,7.15499999999979,1.43500000000041)); -#53347=CARTESIAN_POINT('',(-6.12,7.19,1.43317973717136)); -#53348=CARTESIAN_POINT('',(-6.12,7.155,1.0976)); -#53349=CARTESIAN_POINT('',(-6.12,7.4924,1.0976)); -#53350=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53351=CARTESIAN_POINT('',(-5.88,7.4924,1.0976)); -#53352=CARTESIAN_POINT('',(-5.88,7.155,1.0976)); -#53353=CARTESIAN_POINT('',(-5.88,7.19,1.43317973717136)); -#53354=CARTESIAN_POINT('',(-5.88,7.19,1.43317973717136)); -#53355=CARTESIAN_POINT('',(-5.88,7.17159323925028,1.43509950929965)); -#53356=CARTESIAN_POINT('',(-5.86350753926014,7.15499999999982,1.43500000000041)); -#53357=CARTESIAN_POINT('',(-5.84500000000005,7.15499999999979,1.43500000000041)); -#53358=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53359=CARTESIAN_POINT('',(-5.355,7.155,1.435)); -#53360=CARTESIAN_POINT('',(-5.33649229178306,7.155,1.435)); -#53361=CARTESIAN_POINT('',(-5.31999999999988,7.17159247157791,1.43509958936568)); -#53362=CARTESIAN_POINT('',(-5.31999999999986,7.18999999999997,1.43317973717138)); -#53363=CARTESIAN_POINT('',(-5.32,7.19,1.43317973717136)); -#53364=CARTESIAN_POINT('',(-5.32,7.155,1.0976)); -#53365=CARTESIAN_POINT('',(-5.32,7.4924,1.0976)); -#53366=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53367=CARTESIAN_POINT('',(-5.08,7.4924,1.0976)); -#53368=CARTESIAN_POINT('',(-5.08,7.155,1.0976)); -#53369=CARTESIAN_POINT('',(-5.08,7.19,1.43317973717136)); -#53370=CARTESIAN_POINT('',(-5.08,7.19,1.43317973717136)); -#53371=CARTESIAN_POINT('',(-5.08,7.17159323925028,1.43509950929965)); -#53372=CARTESIAN_POINT('',(-5.06350753926014,7.15499999999982,1.43500000000041)); -#53373=CARTESIAN_POINT('',(-5.04500000000005,7.15499999999979,1.43500000000041)); -#53374=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53375=CARTESIAN_POINT('',(-4.52,7.19,1.43317973717136)); -#53376=CARTESIAN_POINT('',(-4.52,7.17159323925028,1.43509950929965)); -#53377=CARTESIAN_POINT('',(-4.53649246073986,7.15499999999982,1.43500000000041)); -#53378=CARTESIAN_POINT('',(-4.55499999999995,7.15499999999979,1.43500000000041)); -#53379=CARTESIAN_POINT('',(-4.52,7.19,1.43317973717136)); -#53380=CARTESIAN_POINT('',(-4.52,7.155,1.0976)); -#53381=CARTESIAN_POINT('',(-4.52,7.4924,1.0976)); -#53382=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53383=CARTESIAN_POINT('',(-4.28,7.4924,1.0976)); -#53384=CARTESIAN_POINT('',(-4.28,7.155,1.0976)); -#53385=CARTESIAN_POINT('',(-4.28,7.19,1.43317973717136)); -#53386=CARTESIAN_POINT('',(-4.28,7.19,1.43317973717136)); -#53387=CARTESIAN_POINT('',(-4.28,7.17159323925028,1.43509950929965)); -#53388=CARTESIAN_POINT('',(-4.26350753926014,7.15499999999982,1.43500000000041)); -#53389=CARTESIAN_POINT('',(-4.24500000000005,7.15499999999979,1.43500000000041)); -#53390=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53391=CARTESIAN_POINT('',(-3.72,7.19,1.43317973717136)); -#53392=CARTESIAN_POINT('',(-3.72,7.17159323925028,1.43509950929965)); -#53393=CARTESIAN_POINT('',(-3.73649246073986,7.15499999999982,1.43500000000041)); -#53394=CARTESIAN_POINT('',(-3.75499999999995,7.15499999999979,1.43500000000041)); -#53395=CARTESIAN_POINT('',(-3.72,7.19,1.43317973717136)); -#53396=CARTESIAN_POINT('',(-3.72,7.155,1.0976)); -#53397=CARTESIAN_POINT('',(-3.72,7.4924,1.0976)); -#53398=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53399=CARTESIAN_POINT('',(-3.48,7.4924,1.0976)); -#53400=CARTESIAN_POINT('',(-3.48,7.155,1.0976)); -#53401=CARTESIAN_POINT('',(-3.48,7.19,1.43317973717136)); -#53402=CARTESIAN_POINT('',(-3.48,7.19,1.43317973717136)); -#53403=CARTESIAN_POINT('',(-3.48,7.17159323925028,1.43509950929965)); -#53404=CARTESIAN_POINT('',(-3.46350753926014,7.15499999999982,1.43500000000041)); -#53405=CARTESIAN_POINT('',(-3.44500000000005,7.15499999999979,1.43500000000041)); -#53406=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53407=CARTESIAN_POINT('',(-2.92,7.19,1.43317973717136)); -#53408=CARTESIAN_POINT('',(-2.92,7.17159323925028,1.43509950929965)); -#53409=CARTESIAN_POINT('',(-2.93649246073986,7.15499999999982,1.43500000000041)); -#53410=CARTESIAN_POINT('',(-2.95499999999995,7.15499999999979,1.43500000000041)); -#53411=CARTESIAN_POINT('',(-2.92,7.19,1.43317973717136)); -#53412=CARTESIAN_POINT('',(-2.92,7.155,1.0976)); -#53413=CARTESIAN_POINT('',(-2.92,7.4924,1.0976)); -#53414=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53415=CARTESIAN_POINT('',(-2.68,7.4924,1.0976)); -#53416=CARTESIAN_POINT('',(-2.68,7.155,1.0976)); -#53417=CARTESIAN_POINT('',(-2.68,7.19,1.43317973717136)); -#53418=CARTESIAN_POINT('',(-2.68,7.19,1.43317973717136)); -#53419=CARTESIAN_POINT('',(-2.68,7.17159323925028,1.43509950929965)); -#53420=CARTESIAN_POINT('',(-2.66350753926014,7.15499999999982,1.43500000000041)); -#53421=CARTESIAN_POINT('',(-2.64500000000005,7.15499999999979,1.43500000000041)); -#53422=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53423=CARTESIAN_POINT('',(-2.12,7.19,1.43317973717136)); -#53424=CARTESIAN_POINT('',(-2.12,7.17159323925028,1.43509950929965)); -#53425=CARTESIAN_POINT('',(-2.13649246073986,7.15499999999982,1.43500000000041)); -#53426=CARTESIAN_POINT('',(-2.15499999999995,7.15499999999979,1.43500000000041)); -#53427=CARTESIAN_POINT('',(-2.12,7.19,1.43317973717136)); -#53428=CARTESIAN_POINT('',(-2.12,7.155,1.0976)); -#53429=CARTESIAN_POINT('',(-2.12,7.4924,1.0976)); -#53430=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53431=CARTESIAN_POINT('',(-1.88,7.4924,1.0976)); -#53432=CARTESIAN_POINT('',(-1.88,7.155,1.0976)); -#53433=CARTESIAN_POINT('',(-1.88,7.19,1.43317973717136)); -#53434=CARTESIAN_POINT('',(-1.88,7.19,1.43317973717136)); -#53435=CARTESIAN_POINT('',(-1.88,7.17159323925028,1.43509950929965)); -#53436=CARTESIAN_POINT('',(-1.86350753926014,7.15499999999982,1.43500000000041)); -#53437=CARTESIAN_POINT('',(-1.84500000000005,7.15499999999979,1.43500000000041)); -#53438=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53439=CARTESIAN_POINT('',(-1.32,7.19,1.43317973717136)); -#53440=CARTESIAN_POINT('',(-1.32,7.17159323925028,1.43509950929965)); -#53441=CARTESIAN_POINT('',(-1.33649246073986,7.15499999999982,1.43500000000041)); -#53442=CARTESIAN_POINT('',(-1.35499999999995,7.15499999999979,1.43500000000041)); -#53443=CARTESIAN_POINT('',(-1.32,7.19,1.43317973717136)); -#53444=CARTESIAN_POINT('',(-1.32,7.155,1.0976)); -#53445=CARTESIAN_POINT('',(-1.32,7.4924,1.0976)); -#53446=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53447=CARTESIAN_POINT('',(-1.08,7.4924,1.0976)); -#53448=CARTESIAN_POINT('',(-1.08,7.155,1.0976)); -#53449=CARTESIAN_POINT('',(-1.08,7.19,1.43317973717136)); -#53450=CARTESIAN_POINT('',(-1.08,7.19,1.43317973717136)); -#53451=CARTESIAN_POINT('',(-1.08,7.17159323925028,1.43509950929965)); -#53452=CARTESIAN_POINT('',(-1.06350753926014,7.15499999999982,1.43500000000041)); -#53453=CARTESIAN_POINT('',(-1.04500000000005,7.15499999999979,1.43500000000041)); -#53454=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53455=CARTESIAN_POINT('',(-0.555000000000001,7.155,1.435)); -#53456=CARTESIAN_POINT('',(-0.536492291783064,7.155,1.435)); -#53457=CARTESIAN_POINT('',(-0.519999999999877,7.17159247157791,1.43509958936568)); -#53458=CARTESIAN_POINT('',(-0.519999999999861,7.18999999999997,1.43317973717138)); -#53459=CARTESIAN_POINT('',(-0.520000000000001,7.19,1.43317973717136)); -#53460=CARTESIAN_POINT('',(-0.520000000000001,7.155,1.0976)); -#53461=CARTESIAN_POINT('',(-0.520000000000001,7.4924,1.0976)); -#53462=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53463=CARTESIAN_POINT('',(-0.280000000000001,7.4924,1.0976)); -#53464=CARTESIAN_POINT('',(-0.280000000000001,7.155,1.0976)); -#53465=CARTESIAN_POINT('',(-0.28,7.19,1.43317973717136)); -#53466=CARTESIAN_POINT('',(-0.28,7.19,1.43317973717136)); -#53467=CARTESIAN_POINT('',(-0.28,7.17159323925028,1.43509950929965)); -#53468=CARTESIAN_POINT('',(-0.263507539260141,7.15499999999982,1.43500000000041)); -#53469=CARTESIAN_POINT('',(-0.245000000000049,7.15499999999979,1.43500000000041)); -#53470=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53471=CARTESIAN_POINT('',(0.279999999999999,7.19,1.43317973717136)); -#53472=CARTESIAN_POINT('',(0.28,7.17159323925028,1.43509950929965)); -#53473=CARTESIAN_POINT('',(0.26350753926014,7.15499999999982,1.43500000000041)); -#53474=CARTESIAN_POINT('',(0.245000000000047,7.15499999999979,1.43500000000041)); -#53475=CARTESIAN_POINT('',(0.279999999999999,7.19,1.43317973717136)); -#53476=CARTESIAN_POINT('',(0.279999999999999,7.155,1.0976)); -#53477=CARTESIAN_POINT('',(0.279999999999999,7.4924,1.0976)); -#53478=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53479=CARTESIAN_POINT('',(0.52,7.4924,1.0976)); -#53480=CARTESIAN_POINT('',(0.52,7.155,1.0976)); -#53481=CARTESIAN_POINT('',(0.52,7.19,1.43317973717136)); -#53482=CARTESIAN_POINT('',(0.52,7.19,1.43317973717136)); -#53483=CARTESIAN_POINT('',(0.52,7.17159323925028,1.43509950929965)); -#53484=CARTESIAN_POINT('',(0.536492460739859,7.15499999999982,1.43500000000041)); -#53485=CARTESIAN_POINT('',(0.554999999999951,7.15499999999979,1.43500000000041)); -#53486=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53487=CARTESIAN_POINT('',(1.08,7.19,1.43317973717136)); -#53488=CARTESIAN_POINT('',(1.08,7.17159323925028,1.43509950929965)); -#53489=CARTESIAN_POINT('',(1.06350753926014,7.15499999999982,1.43500000000041)); -#53490=CARTESIAN_POINT('',(1.04500000000005,7.15499999999979,1.43500000000041)); -#53491=CARTESIAN_POINT('',(1.08,7.19,1.43317973717136)); -#53492=CARTESIAN_POINT('',(1.08,7.155,1.0976)); -#53493=CARTESIAN_POINT('',(1.08,7.4924,1.0976)); -#53494=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53495=CARTESIAN_POINT('',(1.32,7.4924,1.0976)); -#53496=CARTESIAN_POINT('',(1.32,7.155,1.0976)); -#53497=CARTESIAN_POINT('',(1.32,7.19,1.43317973717136)); -#53498=CARTESIAN_POINT('',(1.32,7.19,1.43317973717136)); -#53499=CARTESIAN_POINT('',(1.32,7.17159323925028,1.43509950929965)); -#53500=CARTESIAN_POINT('',(1.33649246073986,7.15499999999982,1.43500000000041)); -#53501=CARTESIAN_POINT('',(1.35499999999995,7.15499999999979,1.43500000000041)); -#53502=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53503=CARTESIAN_POINT('',(1.88,7.19,1.43317973717136)); -#53504=CARTESIAN_POINT('',(1.88,7.17159323925028,1.43509950929965)); -#53505=CARTESIAN_POINT('',(1.86350753926014,7.15499999999982,1.43500000000041)); -#53506=CARTESIAN_POINT('',(1.84500000000005,7.15499999999979,1.43500000000041)); -#53507=CARTESIAN_POINT('',(1.88,7.19,1.43317973717136)); -#53508=CARTESIAN_POINT('',(1.88,7.155,1.0976)); -#53509=CARTESIAN_POINT('',(1.88,7.4924,1.0976)); -#53510=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53511=CARTESIAN_POINT('',(2.12,7.4924,1.0976)); -#53512=CARTESIAN_POINT('',(2.12,7.155,1.0976)); -#53513=CARTESIAN_POINT('',(2.12,7.19,1.43317973717136)); -#53514=CARTESIAN_POINT('',(2.12,7.19,1.43317973717136)); -#53515=CARTESIAN_POINT('',(2.12,7.17159323925028,1.43509950929965)); -#53516=CARTESIAN_POINT('',(2.13649246073986,7.15499999999982,1.43500000000041)); -#53517=CARTESIAN_POINT('',(2.15499999999995,7.15499999999979,1.43500000000041)); -#53518=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53519=CARTESIAN_POINT('',(2.68,7.19,1.43317973717136)); -#53520=CARTESIAN_POINT('',(2.68,7.17159323925028,1.43509950929965)); -#53521=CARTESIAN_POINT('',(2.66350753926014,7.15499999999982,1.43500000000041)); -#53522=CARTESIAN_POINT('',(2.64500000000005,7.15499999999979,1.43500000000041)); -#53523=CARTESIAN_POINT('',(2.68,7.19,1.43317973717136)); -#53524=CARTESIAN_POINT('',(2.68,7.155,1.0976)); -#53525=CARTESIAN_POINT('',(2.68,7.4924,1.0976)); -#53526=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53527=CARTESIAN_POINT('',(2.92,7.4924,1.0976)); -#53528=CARTESIAN_POINT('',(2.92,7.155,1.0976)); -#53529=CARTESIAN_POINT('',(2.92,7.19,1.43317973717136)); -#53530=CARTESIAN_POINT('',(2.92,7.19,1.43317973717136)); -#53531=CARTESIAN_POINT('',(2.92,7.17159323925028,1.43509950929965)); -#53532=CARTESIAN_POINT('',(2.93649246073986,7.15499999999982,1.43500000000041)); -#53533=CARTESIAN_POINT('',(2.95499999999995,7.15499999999979,1.43500000000041)); -#53534=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53535=CARTESIAN_POINT('',(3.48,7.19,1.43317973717136)); -#53536=CARTESIAN_POINT('',(3.48,7.17159323925028,1.43509950929965)); -#53537=CARTESIAN_POINT('',(3.46350753926014,7.15499999999982,1.43500000000041)); -#53538=CARTESIAN_POINT('',(3.44500000000005,7.15499999999979,1.43500000000041)); -#53539=CARTESIAN_POINT('',(3.48,7.19,1.43317973717136)); -#53540=CARTESIAN_POINT('',(3.48,7.155,1.0976)); -#53541=CARTESIAN_POINT('',(3.48,7.4924,1.0976)); -#53542=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53543=CARTESIAN_POINT('',(3.72,7.4924,1.0976)); -#53544=CARTESIAN_POINT('',(3.72,7.155,1.0976)); -#53545=CARTESIAN_POINT('',(3.72,7.19,1.43317973717136)); -#53546=CARTESIAN_POINT('',(3.72,7.19,1.43317973717136)); -#53547=CARTESIAN_POINT('',(3.72,7.17159323925028,1.43509950929965)); -#53548=CARTESIAN_POINT('',(3.73649246073986,7.15499999999982,1.43500000000041)); -#53549=CARTESIAN_POINT('',(3.75499999999995,7.15499999999979,1.43500000000041)); -#53550=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53551=CARTESIAN_POINT('',(4.245,7.155,1.435)); -#53552=CARTESIAN_POINT('',(4.26350770821694,7.155,1.435)); -#53553=CARTESIAN_POINT('',(4.28000000000012,7.17159247157791,1.43509958936568)); -#53554=CARTESIAN_POINT('',(4.28000000000014,7.18999999999997,1.43317973717138)); -#53555=CARTESIAN_POINT('',(4.28,7.19,1.43317973717136)); -#53556=CARTESIAN_POINT('',(4.28,7.155,1.0976)); -#53557=CARTESIAN_POINT('',(4.28,7.4924,1.0976)); -#53558=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53559=CARTESIAN_POINT('',(4.52,7.4924,1.0976)); -#53560=CARTESIAN_POINT('',(4.52,7.155,1.0976)); -#53561=CARTESIAN_POINT('',(4.52,7.19,1.43317973717136)); -#53562=CARTESIAN_POINT('',(4.52,7.19,1.43317973717136)); -#53563=CARTESIAN_POINT('',(4.52,7.17159323925028,1.43509950929965)); -#53564=CARTESIAN_POINT('',(4.53649246073986,7.15499999999982,1.43500000000041)); -#53565=CARTESIAN_POINT('',(4.55499999999995,7.15499999999979,1.43500000000041)); -#53566=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53567=CARTESIAN_POINT('',(5.045,7.155,1.435)); -#53568=CARTESIAN_POINT('',(5.06350770821694,7.155,1.435)); -#53569=CARTESIAN_POINT('',(5.08000000000012,7.17159247157791,1.43509958936568)); -#53570=CARTESIAN_POINT('',(5.08000000000014,7.18999999999997,1.43317973717138)); -#53571=CARTESIAN_POINT('',(5.08,7.19,1.43317973717136)); -#53572=CARTESIAN_POINT('',(5.08,7.155,1.0976)); -#53573=CARTESIAN_POINT('',(5.08,7.4924,1.0976)); -#53574=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53575=CARTESIAN_POINT('',(5.32,7.4924,1.0976)); -#53576=CARTESIAN_POINT('',(5.32,7.155,1.0976)); -#53577=CARTESIAN_POINT('',(5.32,7.19,1.43317973717136)); -#53578=CARTESIAN_POINT('',(5.32,7.19,1.43317973717136)); -#53579=CARTESIAN_POINT('',(5.32,7.17159323925028,1.43509950929965)); -#53580=CARTESIAN_POINT('',(5.33649246073986,7.15499999999982,1.43500000000041)); -#53581=CARTESIAN_POINT('',(5.35499999999995,7.15499999999979,1.43500000000041)); -#53582=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53583=CARTESIAN_POINT('',(5.88,7.19,1.43317973717136)); -#53584=CARTESIAN_POINT('',(5.88,7.17159323925028,1.43509950929965)); -#53585=CARTESIAN_POINT('',(5.86350753926014,7.15499999999982,1.43500000000041)); -#53586=CARTESIAN_POINT('',(5.84500000000005,7.15499999999979,1.43500000000041)); -#53587=CARTESIAN_POINT('',(5.88,7.19,1.43317973717136)); -#53588=CARTESIAN_POINT('',(5.88,7.155,1.0976)); -#53589=CARTESIAN_POINT('',(5.88,7.4924,1.0976)); -#53590=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53591=CARTESIAN_POINT('',(6.12,7.4924,1.0976)); -#53592=CARTESIAN_POINT('',(6.12,7.155,1.0976)); -#53593=CARTESIAN_POINT('',(6.12,7.19,1.43317973717136)); -#53594=CARTESIAN_POINT('',(6.12,7.19,1.43317973717136)); -#53595=CARTESIAN_POINT('',(6.12,7.17159323925028,1.43509950929965)); -#53596=CARTESIAN_POINT('',(6.13649246073986,7.15499999999982,1.43500000000041)); -#53597=CARTESIAN_POINT('',(6.15499999999995,7.15499999999979,1.43500000000041)); -#53598=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53599=CARTESIAN_POINT('',(6.68,7.19,1.43317973717136)); -#53600=CARTESIAN_POINT('',(6.68,7.17159323925028,1.43509950929965)); -#53601=CARTESIAN_POINT('',(6.66350753926014,7.15499999999982,1.43500000000041)); -#53602=CARTESIAN_POINT('',(6.64500000000005,7.15499999999979,1.43500000000041)); -#53603=CARTESIAN_POINT('',(6.68,7.19,1.43317973717136)); -#53604=CARTESIAN_POINT('',(6.68,7.155,1.0976)); -#53605=CARTESIAN_POINT('',(6.68,7.4924,1.0976)); -#53606=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53607=CARTESIAN_POINT('',(6.92,7.4924,1.0976)); -#53608=CARTESIAN_POINT('',(6.92,7.155,1.0976)); -#53609=CARTESIAN_POINT('',(6.92,7.19,1.43317973717136)); -#53610=CARTESIAN_POINT('',(6.92,7.19,1.43317973717136)); -#53611=CARTESIAN_POINT('',(6.92,7.17159323925028,1.43509950929965)); -#53612=CARTESIAN_POINT('',(6.93649246073986,7.15499999999982,1.43500000000041)); -#53613=CARTESIAN_POINT('',(6.95499999999995,7.15499999999979,1.43500000000041)); -#53614=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53615=CARTESIAN_POINT('',(7.445,7.155,1.435)); -#53616=CARTESIAN_POINT('',(7.46350770821694,7.155,1.435)); -#53617=CARTESIAN_POINT('',(7.48000000000012,7.17159247157791,1.43509958936568)); -#53618=CARTESIAN_POINT('',(7.48000000000014,7.18999999999997,1.43317973717138)); -#53619=CARTESIAN_POINT('',(7.48,7.19,1.43317973717136)); -#53620=CARTESIAN_POINT('',(7.48,7.155,1.0976)); -#53621=CARTESIAN_POINT('',(7.48,7.4924,1.0976)); -#53622=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53623=CARTESIAN_POINT('',(7.72,7.4924,1.0976)); -#53624=CARTESIAN_POINT('',(7.72,7.155,1.0976)); -#53625=CARTESIAN_POINT('',(7.72,7.19,1.43317973717136)); -#53626=CARTESIAN_POINT('',(7.72,7.19,1.43317973717136)); -#53627=CARTESIAN_POINT('',(7.72,7.17159323925028,1.43509950929965)); -#53628=CARTESIAN_POINT('',(7.73649246073986,7.15499999999982,1.43500000000041)); -#53629=CARTESIAN_POINT('',(7.75499999999995,7.15499999999979,1.43500000000041)); -#53630=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53631=CARTESIAN_POINT('',(-7.72,7.4924,1.0976)); -#53632=CARTESIAN_POINT('',(-7.72,7.5374,1.12358076211353)); -#53633=CARTESIAN_POINT('',(-7.6,7.5374,1.12358076211353)); -#53634=CARTESIAN_POINT('',(-7.64365232163209,7.64917868677046,1.18811621701012)); -#53635=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53636=CARTESIAN_POINT('',(-7.55634767836791,7.64917868677046,1.18811621701012)); -#53637=CARTESIAN_POINT('',(-7.6,7.5374,1.12358076211353)); -#53638=CARTESIAN_POINT('',(-7.48,7.5374,1.12358076211353)); -#53639=CARTESIAN_POINT('',(-7.48,7.4924,1.0976)); -#53640=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53641=CARTESIAN_POINT('',(-6.92,7.4924,1.0976)); -#53642=CARTESIAN_POINT('',(-6.92,7.5374,1.12358076211353)); -#53643=CARTESIAN_POINT('',(-6.8,7.5374,1.12358076211353)); -#53644=CARTESIAN_POINT('',(-6.84365232163208,7.64917868677046,1.18811621701012)); -#53645=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53646=CARTESIAN_POINT('',(-6.75634767836791,7.64917868677046,1.18811621701012)); -#53647=CARTESIAN_POINT('',(-6.8,7.5374,1.12358076211353)); -#53648=CARTESIAN_POINT('',(-6.68,7.5374,1.12358076211353)); -#53649=CARTESIAN_POINT('',(-6.68,7.4924,1.0976)); -#53650=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53651=CARTESIAN_POINT('',(-6.12,7.4924,1.0976)); -#53652=CARTESIAN_POINT('',(-6.12,7.5374,1.12358076211353)); -#53653=CARTESIAN_POINT('',(-6.,7.5374,1.12358076211353)); -#53654=CARTESIAN_POINT('',(-6.04365232163209,7.64917868677046,1.18811621701012)); -#53655=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53656=CARTESIAN_POINT('',(-5.95634767836791,7.64917868677046,1.18811621701012)); -#53657=CARTESIAN_POINT('',(-6.,7.5374,1.12358076211353)); -#53658=CARTESIAN_POINT('',(-5.88,7.5374,1.12358076211353)); -#53659=CARTESIAN_POINT('',(-5.88,7.4924,1.0976)); -#53660=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53661=CARTESIAN_POINT('',(-5.32,7.4924,1.0976)); -#53662=CARTESIAN_POINT('',(-5.32,7.5374,1.12358076211353)); -#53663=CARTESIAN_POINT('',(-5.2,7.5374,1.12358076211353)); -#53664=CARTESIAN_POINT('',(-5.24365232163209,7.64917868677046,1.18811621701012)); -#53665=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53666=CARTESIAN_POINT('',(-5.15634767836791,7.64917868677046,1.18811621701012)); -#53667=CARTESIAN_POINT('',(-5.2,7.5374,1.12358076211353)); -#53668=CARTESIAN_POINT('',(-5.08,7.5374,1.12358076211353)); -#53669=CARTESIAN_POINT('',(-5.08,7.4924,1.0976)); -#53670=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53671=CARTESIAN_POINT('',(-4.52,7.4924,1.0976)); -#53672=CARTESIAN_POINT('',(-4.52,7.5374,1.12358076211353)); -#53673=CARTESIAN_POINT('',(-4.4,7.5374,1.12358076211353)); -#53674=CARTESIAN_POINT('',(-4.44365232163209,7.64917868677046,1.18811621701012)); -#53675=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53676=CARTESIAN_POINT('',(-4.35634767836791,7.64917868677046,1.18811621701012)); -#53677=CARTESIAN_POINT('',(-4.4,7.5374,1.12358076211353)); -#53678=CARTESIAN_POINT('',(-4.28,7.5374,1.12358076211353)); -#53679=CARTESIAN_POINT('',(-4.28,7.4924,1.0976)); -#53680=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53681=CARTESIAN_POINT('',(-3.72,7.4924,1.0976)); -#53682=CARTESIAN_POINT('',(-3.72,7.5374,1.12358076211353)); -#53683=CARTESIAN_POINT('',(-3.6,7.5374,1.12358076211353)); -#53684=CARTESIAN_POINT('',(-3.64365232163209,7.64917868677046,1.18811621701012)); -#53685=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53686=CARTESIAN_POINT('',(-3.55634767836791,7.64917868677046,1.18811621701012)); -#53687=CARTESIAN_POINT('',(-3.6,7.5374,1.12358076211353)); -#53688=CARTESIAN_POINT('',(-3.48,7.5374,1.12358076211353)); -#53689=CARTESIAN_POINT('',(-3.48,7.4924,1.0976)); -#53690=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53691=CARTESIAN_POINT('',(-2.92,7.4924,1.0976)); -#53692=CARTESIAN_POINT('',(-2.92,7.5374,1.12358076211353)); -#53693=CARTESIAN_POINT('',(-2.8,7.5374,1.12358076211353)); -#53694=CARTESIAN_POINT('',(-2.84365232163209,7.64917868677046,1.18811621701012)); -#53695=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53696=CARTESIAN_POINT('',(-2.75634767836791,7.64917868677046,1.18811621701012)); -#53697=CARTESIAN_POINT('',(-2.8,7.5374,1.12358076211353)); -#53698=CARTESIAN_POINT('',(-2.68,7.5374,1.12358076211353)); -#53699=CARTESIAN_POINT('',(-2.68,7.4924,1.0976)); -#53700=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53701=CARTESIAN_POINT('',(-2.12,7.4924,1.0976)); -#53702=CARTESIAN_POINT('',(-2.12,7.5374,1.12358076211353)); -#53703=CARTESIAN_POINT('',(-2.,7.5374,1.12358076211353)); -#53704=CARTESIAN_POINT('',(-2.04365232163209,7.64917868677046,1.18811621701012)); -#53705=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53706=CARTESIAN_POINT('',(-1.95634767836791,7.64917868677046,1.18811621701012)); -#53707=CARTESIAN_POINT('',(-2.,7.5374,1.12358076211353)); -#53708=CARTESIAN_POINT('',(-1.88,7.5374,1.12358076211353)); -#53709=CARTESIAN_POINT('',(-1.88,7.4924,1.0976)); -#53710=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53711=CARTESIAN_POINT('',(-1.32,7.4924,1.0976)); -#53712=CARTESIAN_POINT('',(-1.32,7.5374,1.12358076211353)); -#53713=CARTESIAN_POINT('',(-1.2,7.5374,1.12358076211353)); -#53714=CARTESIAN_POINT('',(-1.24365232163209,7.64917868677046,1.18811621701012)); -#53715=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53716=CARTESIAN_POINT('',(-1.15634767836791,7.64917868677046,1.18811621701012)); -#53717=CARTESIAN_POINT('',(-1.2,7.5374,1.12358076211353)); -#53718=CARTESIAN_POINT('',(-1.08,7.5374,1.12358076211353)); -#53719=CARTESIAN_POINT('',(-1.08,7.4924,1.0976)); -#53720=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53721=CARTESIAN_POINT('',(-0.520000000000001,7.4924,1.0976)); -#53722=CARTESIAN_POINT('',(-0.520000000000001,7.5374,1.12358076211353)); -#53723=CARTESIAN_POINT('',(-0.400000000000001,7.5374,1.12358076211353)); -#53724=CARTESIAN_POINT('',(-0.443652321632088,7.64917868677046,1.18811621701012)); -#53725=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53726=CARTESIAN_POINT('',(-0.356347678367914,7.64917868677046,1.18811621701012)); -#53727=CARTESIAN_POINT('',(-0.400000000000001,7.5374,1.12358076211353)); -#53728=CARTESIAN_POINT('',(-0.280000000000001,7.5374,1.12358076211353)); -#53729=CARTESIAN_POINT('',(-0.280000000000001,7.4924,1.0976)); -#53730=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53731=CARTESIAN_POINT('',(0.279999999999999,7.4924,1.0976)); -#53732=CARTESIAN_POINT('',(0.279999999999999,7.5374,1.12358076211353)); -#53733=CARTESIAN_POINT('',(0.399999999999999,7.5374,1.12358076211353)); -#53734=CARTESIAN_POINT('',(0.356347678367912,7.64917868677046,1.18811621701012)); -#53735=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53736=CARTESIAN_POINT('',(0.443652321632086,7.64917868677046,1.18811621701012)); -#53737=CARTESIAN_POINT('',(0.399999999999999,7.5374,1.12358076211353)); -#53738=CARTESIAN_POINT('',(0.52,7.5374,1.12358076211353)); -#53739=CARTESIAN_POINT('',(0.52,7.4924,1.0976)); -#53740=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53741=CARTESIAN_POINT('',(1.08,7.4924,1.0976)); -#53742=CARTESIAN_POINT('',(1.08,7.5374,1.12358076211353)); -#53743=CARTESIAN_POINT('',(1.2,7.5374,1.12358076211353)); -#53744=CARTESIAN_POINT('',(1.15634767836791,7.64917868677046,1.18811621701012)); -#53745=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53746=CARTESIAN_POINT('',(1.24365232163209,7.64917868677046,1.18811621701012)); -#53747=CARTESIAN_POINT('',(1.2,7.5374,1.12358076211353)); -#53748=CARTESIAN_POINT('',(1.32,7.5374,1.12358076211353)); -#53749=CARTESIAN_POINT('',(1.32,7.4924,1.0976)); -#53750=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53751=CARTESIAN_POINT('',(1.88,7.4924,1.0976)); -#53752=CARTESIAN_POINT('',(1.88,7.5374,1.12358076211353)); -#53753=CARTESIAN_POINT('',(2.,7.5374,1.12358076211353)); -#53754=CARTESIAN_POINT('',(1.95634767836791,7.64917868677046,1.18811621701012)); -#53755=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53756=CARTESIAN_POINT('',(2.04365232163209,7.64917868677046,1.18811621701012)); -#53757=CARTESIAN_POINT('',(2.,7.5374,1.12358076211353)); -#53758=CARTESIAN_POINT('',(2.12,7.5374,1.12358076211353)); -#53759=CARTESIAN_POINT('',(2.12,7.4924,1.0976)); -#53760=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53761=CARTESIAN_POINT('',(2.68,7.4924,1.0976)); -#53762=CARTESIAN_POINT('',(2.68,7.5374,1.12358076211353)); -#53763=CARTESIAN_POINT('',(2.8,7.5374,1.12358076211353)); -#53764=CARTESIAN_POINT('',(2.75634767836791,7.64917868677046,1.18811621701012)); -#53765=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53766=CARTESIAN_POINT('',(2.84365232163209,7.64917868677046,1.18811621701012)); -#53767=CARTESIAN_POINT('',(2.8,7.5374,1.12358076211353)); -#53768=CARTESIAN_POINT('',(2.92,7.5374,1.12358076211353)); -#53769=CARTESIAN_POINT('',(2.92,7.4924,1.0976)); -#53770=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53771=CARTESIAN_POINT('',(3.48,7.4924,1.0976)); -#53772=CARTESIAN_POINT('',(3.48,7.5374,1.12358076211353)); -#53773=CARTESIAN_POINT('',(3.6,7.5374,1.12358076211353)); -#53774=CARTESIAN_POINT('',(3.55634767836791,7.64917868677046,1.18811621701012)); -#53775=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53776=CARTESIAN_POINT('',(3.64365232163209,7.64917868677046,1.18811621701012)); -#53777=CARTESIAN_POINT('',(3.6,7.5374,1.12358076211353)); -#53778=CARTESIAN_POINT('',(3.72,7.5374,1.12358076211353)); -#53779=CARTESIAN_POINT('',(3.72,7.4924,1.0976)); -#53780=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53781=CARTESIAN_POINT('',(4.28,7.4924,1.0976)); -#53782=CARTESIAN_POINT('',(4.28,7.5374,1.12358076211353)); -#53783=CARTESIAN_POINT('',(4.4,7.5374,1.12358076211353)); -#53784=CARTESIAN_POINT('',(4.35634767836791,7.64917868677046,1.18811621701012)); -#53785=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53786=CARTESIAN_POINT('',(4.44365232163209,7.64917868677046,1.18811621701012)); -#53787=CARTESIAN_POINT('',(4.4,7.5374,1.12358076211353)); -#53788=CARTESIAN_POINT('',(4.52,7.5374,1.12358076211353)); -#53789=CARTESIAN_POINT('',(4.52,7.4924,1.0976)); -#53790=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53791=CARTESIAN_POINT('',(5.08,7.4924,1.0976)); -#53792=CARTESIAN_POINT('',(5.08,7.5374,1.12358076211353)); -#53793=CARTESIAN_POINT('',(5.2,7.5374,1.12358076211353)); -#53794=CARTESIAN_POINT('',(5.15634767836791,7.64917868677046,1.18811621701012)); -#53795=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53796=CARTESIAN_POINT('',(5.24365232163209,7.64917868677046,1.18811621701012)); -#53797=CARTESIAN_POINT('',(5.2,7.5374,1.12358076211353)); -#53798=CARTESIAN_POINT('',(5.32,7.5374,1.12358076211353)); -#53799=CARTESIAN_POINT('',(5.32,7.4924,1.0976)); -#53800=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53801=CARTESIAN_POINT('',(5.88,7.4924,1.0976)); -#53802=CARTESIAN_POINT('',(5.88,7.5374,1.12358076211353)); -#53803=CARTESIAN_POINT('',(6.,7.5374,1.12358076211353)); -#53804=CARTESIAN_POINT('',(5.95634767836791,7.64917868677046,1.18811621701012)); -#53805=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53806=CARTESIAN_POINT('',(6.04365232163209,7.64917868677046,1.18811621701012)); -#53807=CARTESIAN_POINT('',(6.,7.5374,1.12358076211353)); -#53808=CARTESIAN_POINT('',(6.12,7.5374,1.12358076211353)); -#53809=CARTESIAN_POINT('',(6.12,7.4924,1.0976)); -#53810=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#53811=CARTESIAN_POINT('',(6.68,7.4924,1.0976)); -#53812=CARTESIAN_POINT('',(6.68,7.5374,1.12358076211353)); -#53813=CARTESIAN_POINT('',(6.8,7.5374,1.12358076211353)); -#53814=CARTESIAN_POINT('',(6.75634767836791,7.64917868677046,1.18811621701012)); -#53815=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#53816=CARTESIAN_POINT('',(6.84365232163209,7.64917868677046,1.18811621701012)); -#53817=CARTESIAN_POINT('',(6.8,7.5374,1.12358076211353)); -#53818=CARTESIAN_POINT('',(6.92,7.5374,1.12358076211353)); -#53819=CARTESIAN_POINT('',(6.92,7.4924,1.0976)); -#53820=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53821=CARTESIAN_POINT('',(-7.72,7.19,1.59877936908855)); -#53822=CARTESIAN_POINT('',(-7.72,7.17154879938732,1.60006791379186)); -#53823=CARTESIAN_POINT('',(-7.7365034374292,7.15499999999984,1.60000000000025)); -#53824=CARTESIAN_POINT('',(-7.75499999999996,7.15499999999982,1.60000000000025)); -#53825=CARTESIAN_POINT('',(-7.72,7.19,1.59877936908855)); -#53826=CARTESIAN_POINT('',(-7.48,7.19,1.59877936908855)); -#53827=CARTESIAN_POINT('',(-7.48,7.17154879938732,1.60006791379186)); -#53828=CARTESIAN_POINT('',(-7.4634965625708,7.15499999999984,1.60000000000025)); -#53829=CARTESIAN_POINT('',(-7.44500000000004,7.15499999999982,1.60000000000025)); -#53830=CARTESIAN_POINT('',(-7.48,7.19,1.59877936908855)); -#53831=CARTESIAN_POINT('',(-7.48,7.155,1.0976)); -#53832=CARTESIAN_POINT('',(-7.48,7.5374,1.42344658967066)); -#53833=CARTESIAN_POINT('',(-7.48,7.5374,1.42344658967066)); -#53834=CARTESIAN_POINT('',(-7.48,7.59787264997766,1.35247840376812)); -#53835=CARTESIAN_POINT('',(-7.51755793324588,7.63403033891439,1.27081952584833)); -#53836=CARTESIAN_POINT('',(-7.55634767836791,7.64917868677046,1.18811621701012)); -#53837=CARTESIAN_POINT('',(-7.64365232163209,7.64917868677046,1.18811621701012)); -#53838=CARTESIAN_POINT('',(-7.68249898034617,7.63400811275933,1.27094087086789)); -#53839=CARTESIAN_POINT('',(-7.72,7.59805032943425,1.35226988655065)); -#53840=CARTESIAN_POINT('',(-7.72,7.5374,1.42344658967066)); -#53841=CARTESIAN_POINT('',(-7.72,7.5374,1.42344658967066)); -#53842=CARTESIAN_POINT('',(-7.72,7.155,1.0976)); -#53843=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53844=CARTESIAN_POINT('',(-6.92,7.19,1.59877936908855)); -#53845=CARTESIAN_POINT('',(-6.92,7.17154879938732,1.60006791379186)); -#53846=CARTESIAN_POINT('',(-6.9365034374292,7.15499999999984,1.60000000000025)); -#53847=CARTESIAN_POINT('',(-6.95499999999996,7.15499999999982,1.60000000000025)); -#53848=CARTESIAN_POINT('',(-6.92,7.19,1.59877936908855)); -#53849=CARTESIAN_POINT('',(-6.68,7.19,1.59877936908855)); -#53850=CARTESIAN_POINT('',(-6.68,7.17154879938732,1.60006791379186)); -#53851=CARTESIAN_POINT('',(-6.6634965625708,7.15499999999984,1.60000000000025)); -#53852=CARTESIAN_POINT('',(-6.64500000000004,7.15499999999982,1.60000000000025)); -#53853=CARTESIAN_POINT('',(-6.68,7.19,1.59877936908855)); -#53854=CARTESIAN_POINT('',(-6.68,7.155,1.0976)); -#53855=CARTESIAN_POINT('',(-6.68,7.5374,1.42344658967066)); -#53856=CARTESIAN_POINT('',(-6.68,7.5374,1.42344658967066)); -#53857=CARTESIAN_POINT('',(-6.68,7.59787264997766,1.35247840376812)); -#53858=CARTESIAN_POINT('',(-6.71755793324588,7.63403033891439,1.27081952584833)); -#53859=CARTESIAN_POINT('',(-6.75634767836791,7.64917868677046,1.18811621701012)); -#53860=CARTESIAN_POINT('',(-6.84365232163208,7.64917868677046,1.18811621701012)); -#53861=CARTESIAN_POINT('',(-6.88249898034617,7.63400811275933,1.27094087086789)); -#53862=CARTESIAN_POINT('',(-6.92,7.59805032943425,1.35226988655065)); -#53863=CARTESIAN_POINT('',(-6.92,7.5374,1.42344658967066)); -#53864=CARTESIAN_POINT('',(-6.92,7.5374,1.42344658967066)); -#53865=CARTESIAN_POINT('',(-6.92,7.155,1.0976)); -#53866=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53867=CARTESIAN_POINT('',(-6.12,7.19,1.59877936908855)); -#53868=CARTESIAN_POINT('',(-6.12,7.17154879938732,1.60006791379186)); -#53869=CARTESIAN_POINT('',(-6.1365034374292,7.15499999999984,1.60000000000025)); -#53870=CARTESIAN_POINT('',(-6.15499999999996,7.15499999999982,1.60000000000025)); -#53871=CARTESIAN_POINT('',(-6.12,7.19,1.59877936908855)); -#53872=CARTESIAN_POINT('',(-5.88,7.19,1.59877936908855)); -#53873=CARTESIAN_POINT('',(-5.88,7.17154879938732,1.60006791379186)); -#53874=CARTESIAN_POINT('',(-5.8634965625708,7.15499999999984,1.60000000000025)); -#53875=CARTESIAN_POINT('',(-5.84500000000004,7.15499999999982,1.60000000000025)); -#53876=CARTESIAN_POINT('',(-5.88,7.19,1.59877936908855)); -#53877=CARTESIAN_POINT('',(-5.88,7.155,1.0976)); -#53878=CARTESIAN_POINT('',(-5.88,7.5374,1.42344658967066)); -#53879=CARTESIAN_POINT('',(-5.88,7.5374,1.42344658967066)); -#53880=CARTESIAN_POINT('',(-5.88,7.59787264997766,1.35247840376812)); -#53881=CARTESIAN_POINT('',(-5.91755793324588,7.63403033891439,1.27081952584834)); -#53882=CARTESIAN_POINT('',(-5.95634767836791,7.64917868677046,1.18811621701012)); -#53883=CARTESIAN_POINT('',(-6.04365232163209,7.64917868677046,1.18811621701012)); -#53884=CARTESIAN_POINT('',(-6.08249898034617,7.63400811275932,1.27094087086789)); -#53885=CARTESIAN_POINT('',(-6.12,7.59805032943425,1.35226988655065)); -#53886=CARTESIAN_POINT('',(-6.12,7.5374,1.42344658967066)); -#53887=CARTESIAN_POINT('',(-6.12,7.5374,1.42344658967066)); -#53888=CARTESIAN_POINT('',(-6.12,7.155,1.0976)); -#53889=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53890=CARTESIAN_POINT('',(-5.32,7.19,1.59877936908855)); -#53891=CARTESIAN_POINT('',(-5.32,7.17154879938732,1.60006791379186)); -#53892=CARTESIAN_POINT('',(-5.3365034374292,7.15499999999984,1.60000000000025)); -#53893=CARTESIAN_POINT('',(-5.35499999999996,7.15499999999982,1.60000000000025)); -#53894=CARTESIAN_POINT('',(-5.32,7.19,1.59877936908855)); -#53895=CARTESIAN_POINT('',(-5.08,7.19,1.59877936908855)); -#53896=CARTESIAN_POINT('',(-5.08,7.17154879938732,1.60006791379186)); -#53897=CARTESIAN_POINT('',(-5.0634965625708,7.15499999999984,1.60000000000025)); -#53898=CARTESIAN_POINT('',(-5.04500000000004,7.15499999999982,1.60000000000025)); -#53899=CARTESIAN_POINT('',(-5.08,7.19,1.59877936908855)); -#53900=CARTESIAN_POINT('',(-5.08,7.155,1.0976)); -#53901=CARTESIAN_POINT('',(-5.08,7.5374,1.42344658967066)); -#53902=CARTESIAN_POINT('',(-5.08,7.5374,1.42344658967066)); -#53903=CARTESIAN_POINT('',(-5.08,7.59787264997766,1.35247840376812)); -#53904=CARTESIAN_POINT('',(-5.11755793324588,7.63403033891439,1.27081952584833)); -#53905=CARTESIAN_POINT('',(-5.15634767836791,7.64917868677046,1.18811621701012)); -#53906=CARTESIAN_POINT('',(-5.24365232163209,7.64917868677046,1.18811621701012)); -#53907=CARTESIAN_POINT('',(-5.28249898034617,7.63400811275933,1.27094087086789)); -#53908=CARTESIAN_POINT('',(-5.32,7.59805032943425,1.35226988655065)); -#53909=CARTESIAN_POINT('',(-5.32,7.5374,1.42344658967066)); -#53910=CARTESIAN_POINT('',(-5.32,7.5374,1.42344658967066)); -#53911=CARTESIAN_POINT('',(-5.32,7.155,1.0976)); -#53912=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53913=CARTESIAN_POINT('',(-4.52,7.19,1.59877936908855)); -#53914=CARTESIAN_POINT('',(-4.52,7.17154879938732,1.60006791379186)); -#53915=CARTESIAN_POINT('',(-4.5365034374292,7.15499999999984,1.60000000000025)); -#53916=CARTESIAN_POINT('',(-4.55499999999996,7.15499999999982,1.60000000000025)); -#53917=CARTESIAN_POINT('',(-4.52,7.19,1.59877936908855)); -#53918=CARTESIAN_POINT('',(-4.28,7.19,1.59877936908855)); -#53919=CARTESIAN_POINT('',(-4.28,7.17154879938732,1.60006791379186)); -#53920=CARTESIAN_POINT('',(-4.2634965625708,7.15499999999984,1.60000000000025)); -#53921=CARTESIAN_POINT('',(-4.24500000000004,7.15499999999982,1.60000000000025)); -#53922=CARTESIAN_POINT('',(-4.28,7.19,1.59877936908855)); -#53923=CARTESIAN_POINT('',(-4.28,7.155,1.0976)); -#53924=CARTESIAN_POINT('',(-4.28,7.5374,1.42344658967066)); -#53925=CARTESIAN_POINT('',(-4.28,7.5374,1.42344658967066)); -#53926=CARTESIAN_POINT('',(-4.28,7.59787264997766,1.35247840376812)); -#53927=CARTESIAN_POINT('',(-4.31755793324588,7.63403033891439,1.27081952584834)); -#53928=CARTESIAN_POINT('',(-4.35634767836791,7.64917868677046,1.18811621701012)); -#53929=CARTESIAN_POINT('',(-4.44365232163209,7.64917868677046,1.18811621701012)); -#53930=CARTESIAN_POINT('',(-4.48249898034617,7.63400811275932,1.27094087086789)); -#53931=CARTESIAN_POINT('',(-4.52,7.59805032943425,1.35226988655065)); -#53932=CARTESIAN_POINT('',(-4.52,7.5374,1.42344658967066)); -#53933=CARTESIAN_POINT('',(-4.52,7.5374,1.42344658967066)); -#53934=CARTESIAN_POINT('',(-4.52,7.155,1.0976)); -#53935=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53936=CARTESIAN_POINT('',(-3.72,7.19,1.59877936908855)); -#53937=CARTESIAN_POINT('',(-3.72,7.17154879938732,1.60006791379186)); -#53938=CARTESIAN_POINT('',(-3.7365034374292,7.15499999999984,1.60000000000025)); -#53939=CARTESIAN_POINT('',(-3.75499999999996,7.15499999999982,1.60000000000025)); -#53940=CARTESIAN_POINT('',(-3.72,7.19,1.59877936908855)); -#53941=CARTESIAN_POINT('',(-3.48,7.19,1.59877936908855)); -#53942=CARTESIAN_POINT('',(-3.48,7.17154879938732,1.60006791379186)); -#53943=CARTESIAN_POINT('',(-3.4634965625708,7.15499999999984,1.60000000000025)); -#53944=CARTESIAN_POINT('',(-3.44500000000004,7.15499999999982,1.60000000000025)); -#53945=CARTESIAN_POINT('',(-3.48,7.19,1.59877936908855)); -#53946=CARTESIAN_POINT('',(-3.48,7.155,1.0976)); -#53947=CARTESIAN_POINT('',(-3.48,7.5374,1.42344658967066)); -#53948=CARTESIAN_POINT('',(-3.48,7.5374,1.42344658967066)); -#53949=CARTESIAN_POINT('',(-3.48,7.59787264997766,1.35247840376812)); -#53950=CARTESIAN_POINT('',(-3.51755793324588,7.63403033891439,1.27081952584834)); -#53951=CARTESIAN_POINT('',(-3.55634767836791,7.64917868677046,1.18811621701012)); -#53952=CARTESIAN_POINT('',(-3.64365232163209,7.64917868677046,1.18811621701012)); -#53953=CARTESIAN_POINT('',(-3.68249898034617,7.63400811275932,1.27094087086789)); -#53954=CARTESIAN_POINT('',(-3.72,7.59805032943425,1.35226988655065)); -#53955=CARTESIAN_POINT('',(-3.72,7.5374,1.42344658967066)); -#53956=CARTESIAN_POINT('',(-3.72,7.5374,1.42344658967066)); -#53957=CARTESIAN_POINT('',(-3.72,7.155,1.0976)); -#53958=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53959=CARTESIAN_POINT('',(-2.92,7.19,1.59877936908855)); -#53960=CARTESIAN_POINT('',(-2.92,7.17154879938732,1.60006791379186)); -#53961=CARTESIAN_POINT('',(-2.9365034374292,7.15499999999984,1.60000000000025)); -#53962=CARTESIAN_POINT('',(-2.95499999999996,7.15499999999982,1.60000000000025)); -#53963=CARTESIAN_POINT('',(-2.92,7.19,1.59877936908855)); -#53964=CARTESIAN_POINT('',(-2.68,7.19,1.59877936908855)); -#53965=CARTESIAN_POINT('',(-2.68,7.17154879938732,1.60006791379186)); -#53966=CARTESIAN_POINT('',(-2.6634965625708,7.15499999999984,1.60000000000025)); -#53967=CARTESIAN_POINT('',(-2.64500000000004,7.15499999999982,1.60000000000025)); -#53968=CARTESIAN_POINT('',(-2.68,7.19,1.59877936908855)); -#53969=CARTESIAN_POINT('',(-2.68,7.155,1.0976)); -#53970=CARTESIAN_POINT('',(-2.68,7.5374,1.42344658967066)); -#53971=CARTESIAN_POINT('',(-2.68,7.5374,1.42344658967066)); -#53972=CARTESIAN_POINT('',(-2.68,7.59787264997766,1.35247840376812)); -#53973=CARTESIAN_POINT('',(-2.71755793324588,7.63403033891439,1.27081952584833)); -#53974=CARTESIAN_POINT('',(-2.75634767836791,7.64917868677046,1.18811621701012)); -#53975=CARTESIAN_POINT('',(-2.84365232163209,7.64917868677046,1.18811621701012)); -#53976=CARTESIAN_POINT('',(-2.88249898034617,7.63400811275932,1.27094087086789)); -#53977=CARTESIAN_POINT('',(-2.92,7.59805032943425,1.35226988655065)); -#53978=CARTESIAN_POINT('',(-2.92,7.5374,1.42344658967066)); -#53979=CARTESIAN_POINT('',(-2.92,7.5374,1.42344658967066)); -#53980=CARTESIAN_POINT('',(-2.92,7.155,1.0976)); -#53981=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#53982=CARTESIAN_POINT('',(-2.12,7.19,1.59877936908855)); -#53983=CARTESIAN_POINT('',(-2.12,7.17154879938732,1.60006791379186)); -#53984=CARTESIAN_POINT('',(-2.1365034374292,7.15499999999984,1.60000000000025)); -#53985=CARTESIAN_POINT('',(-2.15499999999996,7.15499999999982,1.60000000000025)); -#53986=CARTESIAN_POINT('',(-2.12,7.19,1.59877936908855)); -#53987=CARTESIAN_POINT('',(-1.88,7.19,1.59877936908855)); -#53988=CARTESIAN_POINT('',(-1.88,7.17154879938732,1.60006791379186)); -#53989=CARTESIAN_POINT('',(-1.8634965625708,7.15499999999984,1.60000000000025)); -#53990=CARTESIAN_POINT('',(-1.84500000000004,7.15499999999982,1.60000000000025)); -#53991=CARTESIAN_POINT('',(-1.88,7.19,1.59877936908855)); -#53992=CARTESIAN_POINT('',(-1.88,7.155,1.0976)); -#53993=CARTESIAN_POINT('',(-1.88,7.5374,1.42344658967066)); -#53994=CARTESIAN_POINT('',(-1.88,7.5374,1.42344658967066)); -#53995=CARTESIAN_POINT('',(-1.88,7.59787264997766,1.35247840376812)); -#53996=CARTESIAN_POINT('',(-1.91755793324588,7.63403033891439,1.27081952584834)); -#53997=CARTESIAN_POINT('',(-1.95634767836791,7.64917868677046,1.18811621701012)); -#53998=CARTESIAN_POINT('',(-2.04365232163209,7.64917868677046,1.18811621701012)); -#53999=CARTESIAN_POINT('',(-2.08249898034617,7.63400811275932,1.27094087086789)); -#54000=CARTESIAN_POINT('',(-2.12,7.59805032943425,1.35226988655065)); -#54001=CARTESIAN_POINT('',(-2.12,7.5374,1.42344658967066)); -#54002=CARTESIAN_POINT('',(-2.12,7.5374,1.42344658967066)); -#54003=CARTESIAN_POINT('',(-2.12,7.155,1.0976)); -#54004=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54005=CARTESIAN_POINT('',(-1.32,7.19,1.59877936908855)); -#54006=CARTESIAN_POINT('',(-1.32,7.17154879938732,1.60006791379186)); -#54007=CARTESIAN_POINT('',(-1.3365034374292,7.15499999999984,1.60000000000025)); -#54008=CARTESIAN_POINT('',(-1.35499999999996,7.15499999999982,1.60000000000025)); -#54009=CARTESIAN_POINT('',(-1.32,7.19,1.59877936908855)); -#54010=CARTESIAN_POINT('',(-1.08,7.19,1.59877936908855)); -#54011=CARTESIAN_POINT('',(-1.08,7.17154879938732,1.60006791379186)); -#54012=CARTESIAN_POINT('',(-1.0634965625708,7.15499999999984,1.60000000000025)); -#54013=CARTESIAN_POINT('',(-1.04500000000004,7.15499999999982,1.60000000000025)); -#54014=CARTESIAN_POINT('',(-1.08,7.19,1.59877936908855)); -#54015=CARTESIAN_POINT('',(-1.08,7.155,1.0976)); -#54016=CARTESIAN_POINT('',(-1.08,7.5374,1.42344658967066)); -#54017=CARTESIAN_POINT('',(-1.08,7.5374,1.42344658967066)); -#54018=CARTESIAN_POINT('',(-1.08,7.59787264997766,1.35247840376812)); -#54019=CARTESIAN_POINT('',(-1.11755793324588,7.63403033891439,1.27081952584833)); -#54020=CARTESIAN_POINT('',(-1.15634767836791,7.64917868677046,1.18811621701012)); -#54021=CARTESIAN_POINT('',(-1.24365232163209,7.64917868677046,1.18811621701012)); -#54022=CARTESIAN_POINT('',(-1.28249898034617,7.63400811275933,1.27094087086789)); -#54023=CARTESIAN_POINT('',(-1.32,7.59805032943425,1.35226988655065)); -#54024=CARTESIAN_POINT('',(-1.32,7.5374,1.42344658967066)); -#54025=CARTESIAN_POINT('',(-1.32,7.5374,1.42344658967066)); -#54026=CARTESIAN_POINT('',(-1.32,7.155,1.0976)); -#54027=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54028=CARTESIAN_POINT('',(-0.520000000000001,7.19,1.59877936908855)); -#54029=CARTESIAN_POINT('',(-0.520000000000001,7.17154879938732,1.60006791379186)); -#54030=CARTESIAN_POINT('',(-0.536503437429199,7.15499999999984,1.60000000000025)); -#54031=CARTESIAN_POINT('',(-0.554999999999959,7.15499999999982,1.60000000000025)); -#54032=CARTESIAN_POINT('',(-0.520000000000001,7.19,1.59877936908855)); -#54033=CARTESIAN_POINT('',(-0.28,7.19,1.59877936908855)); -#54034=CARTESIAN_POINT('',(-0.28,7.17154879938732,1.60006791379186)); -#54035=CARTESIAN_POINT('',(-0.263496562570803,7.15499999999984,1.60000000000025)); -#54036=CARTESIAN_POINT('',(-0.245000000000042,7.15499999999982,1.60000000000025)); -#54037=CARTESIAN_POINT('',(-0.28,7.19,1.59877936908855)); -#54038=CARTESIAN_POINT('',(-0.280000000000001,7.155,1.0976)); -#54039=CARTESIAN_POINT('',(-0.280000000000001,7.5374,1.42344658967066)); -#54040=CARTESIAN_POINT('',(-0.28,7.5374,1.42344658967066)); -#54041=CARTESIAN_POINT('',(-0.28,7.59787264997766,1.35247840376812)); -#54042=CARTESIAN_POINT('',(-0.317557933245881,7.63403033891439,1.27081952584834)); -#54043=CARTESIAN_POINT('',(-0.356347678367913,7.64917868677046,1.18811621701012)); -#54044=CARTESIAN_POINT('',(-0.443652321632087,7.64917868677046,1.18811621701012)); -#54045=CARTESIAN_POINT('',(-0.482498980346169,7.63400811275933,1.27094087086789)); -#54046=CARTESIAN_POINT('',(-0.520000000000001,7.59805032943425,1.35226988655065)); -#54047=CARTESIAN_POINT('',(-0.520000000000001,7.5374,1.42344658967066)); -#54048=CARTESIAN_POINT('',(-0.520000000000001,7.5374,1.42344658967066)); -#54049=CARTESIAN_POINT('',(-0.520000000000001,7.155,1.0976)); -#54050=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54051=CARTESIAN_POINT('',(0.279999999999999,7.19,1.59877936908855)); -#54052=CARTESIAN_POINT('',(0.28,7.17154879938732,1.60006791379186)); -#54053=CARTESIAN_POINT('',(0.263496562570802,7.15499999999984,1.60000000000025)); -#54054=CARTESIAN_POINT('',(0.245000000000041,7.15499999999982,1.60000000000025)); -#54055=CARTESIAN_POINT('',(0.279999999999999,7.19,1.59877936908855)); -#54056=CARTESIAN_POINT('',(0.52,7.19,1.59877936908855)); -#54057=CARTESIAN_POINT('',(0.52,7.17154879938732,1.60006791379186)); -#54058=CARTESIAN_POINT('',(0.536503437429197,7.15499999999984,1.60000000000025)); -#54059=CARTESIAN_POINT('',(0.554999999999958,7.15499999999982,1.60000000000025)); -#54060=CARTESIAN_POINT('',(0.52,7.19,1.59877936908855)); -#54061=CARTESIAN_POINT('',(0.52,7.155,1.0976)); -#54062=CARTESIAN_POINT('',(0.52,7.5374,1.42344658967066)); -#54063=CARTESIAN_POINT('',(0.52,7.5374,1.42344658967066)); -#54064=CARTESIAN_POINT('',(0.52,7.59787264997766,1.35247840376812)); -#54065=CARTESIAN_POINT('',(0.482442066754119,7.63403033891439,1.27081952584834)); -#54066=CARTESIAN_POINT('',(0.443652321632087,7.64917868677046,1.18811621701012)); -#54067=CARTESIAN_POINT('',(0.356347678367913,7.64917868677046,1.18811621701012)); -#54068=CARTESIAN_POINT('',(0.317501019653831,7.63400811275932,1.27094087086789)); -#54069=CARTESIAN_POINT('',(0.279999999999999,7.59805032943425,1.35226988655065)); -#54070=CARTESIAN_POINT('',(0.279999999999999,7.5374,1.42344658967066)); -#54071=CARTESIAN_POINT('',(0.279999999999999,7.5374,1.42344658967066)); -#54072=CARTESIAN_POINT('',(0.279999999999999,7.155,1.0976)); -#54073=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54074=CARTESIAN_POINT('',(1.08,7.19,1.59877936908855)); -#54075=CARTESIAN_POINT('',(1.08,7.17154879938732,1.60006791379186)); -#54076=CARTESIAN_POINT('',(1.0634965625708,7.15499999999984,1.60000000000025)); -#54077=CARTESIAN_POINT('',(1.04500000000004,7.15499999999982,1.60000000000025)); -#54078=CARTESIAN_POINT('',(1.08,7.19,1.59877936908855)); -#54079=CARTESIAN_POINT('',(1.32,7.19,1.59877936908855)); -#54080=CARTESIAN_POINT('',(1.32,7.17154879938732,1.60006791379186)); -#54081=CARTESIAN_POINT('',(1.3365034374292,7.15499999999984,1.60000000000025)); -#54082=CARTESIAN_POINT('',(1.35499999999996,7.15499999999982,1.60000000000025)); -#54083=CARTESIAN_POINT('',(1.32,7.19,1.59877936908855)); -#54084=CARTESIAN_POINT('',(1.32,7.155,1.0976)); -#54085=CARTESIAN_POINT('',(1.32,7.5374,1.42344658967066)); -#54086=CARTESIAN_POINT('',(1.32,7.5374,1.42344658967066)); -#54087=CARTESIAN_POINT('',(1.32,7.59787264997766,1.35247840376812)); -#54088=CARTESIAN_POINT('',(1.28244206675412,7.63403033891439,1.27081952584834)); -#54089=CARTESIAN_POINT('',(1.24365232163209,7.64917868677046,1.18811621701012)); -#54090=CARTESIAN_POINT('',(1.15634767836791,7.64917868677046,1.18811621701012)); -#54091=CARTESIAN_POINT('',(1.11750101965383,7.63400811275932,1.27094087086789)); -#54092=CARTESIAN_POINT('',(1.08,7.59805032943425,1.35226988655065)); -#54093=CARTESIAN_POINT('',(1.08,7.5374,1.42344658967066)); -#54094=CARTESIAN_POINT('',(1.08,7.5374,1.42344658967066)); -#54095=CARTESIAN_POINT('',(1.08,7.155,1.0976)); -#54096=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54097=CARTESIAN_POINT('',(1.88,7.19,1.59877936908855)); -#54098=CARTESIAN_POINT('',(1.88,7.17154879938732,1.60006791379186)); -#54099=CARTESIAN_POINT('',(1.8634965625708,7.15499999999984,1.60000000000025)); -#54100=CARTESIAN_POINT('',(1.84500000000004,7.15499999999982,1.60000000000025)); -#54101=CARTESIAN_POINT('',(1.88,7.19,1.59877936908855)); -#54102=CARTESIAN_POINT('',(2.12,7.19,1.59877936908855)); -#54103=CARTESIAN_POINT('',(2.12,7.17154879938732,1.60006791379186)); -#54104=CARTESIAN_POINT('',(2.1365034374292,7.15499999999984,1.60000000000025)); -#54105=CARTESIAN_POINT('',(2.15499999999996,7.15499999999982,1.60000000000025)); -#54106=CARTESIAN_POINT('',(2.12,7.19,1.59877936908855)); -#54107=CARTESIAN_POINT('',(2.12,7.155,1.0976)); -#54108=CARTESIAN_POINT('',(2.12,7.5374,1.42344658967066)); -#54109=CARTESIAN_POINT('',(2.12,7.5374,1.42344658967066)); -#54110=CARTESIAN_POINT('',(2.12,7.59787264997766,1.35247840376812)); -#54111=CARTESIAN_POINT('',(2.08244206675412,7.63403033891439,1.27081952584834)); -#54112=CARTESIAN_POINT('',(2.04365232163209,7.64917868677046,1.18811621701012)); -#54113=CARTESIAN_POINT('',(1.95634767836791,7.64917868677046,1.18811621701012)); -#54114=CARTESIAN_POINT('',(1.91750101965383,7.63400811275932,1.27094087086789)); -#54115=CARTESIAN_POINT('',(1.88,7.59805032943425,1.35226988655065)); -#54116=CARTESIAN_POINT('',(1.88,7.5374,1.42344658967066)); -#54117=CARTESIAN_POINT('',(1.88,7.5374,1.42344658967066)); -#54118=CARTESIAN_POINT('',(1.88,7.155,1.0976)); -#54119=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54120=CARTESIAN_POINT('',(2.68,7.19,1.59877936908855)); -#54121=CARTESIAN_POINT('',(2.68,7.17154879938732,1.60006791379186)); -#54122=CARTESIAN_POINT('',(2.6634965625708,7.15499999999984,1.60000000000025)); -#54123=CARTESIAN_POINT('',(2.64500000000004,7.15499999999982,1.60000000000025)); -#54124=CARTESIAN_POINT('',(2.68,7.19,1.59877936908855)); -#54125=CARTESIAN_POINT('',(2.92,7.19,1.59877936908855)); -#54126=CARTESIAN_POINT('',(2.92,7.17154879938732,1.60006791379186)); -#54127=CARTESIAN_POINT('',(2.9365034374292,7.15499999999984,1.60000000000025)); -#54128=CARTESIAN_POINT('',(2.95499999999996,7.15499999999982,1.60000000000025)); -#54129=CARTESIAN_POINT('',(2.92,7.19,1.59877936908855)); -#54130=CARTESIAN_POINT('',(2.92,7.155,1.0976)); -#54131=CARTESIAN_POINT('',(2.92,7.5374,1.42344658967066)); -#54132=CARTESIAN_POINT('',(2.92,7.5374,1.42344658967066)); -#54133=CARTESIAN_POINT('',(2.92,7.59787264997766,1.35247840376812)); -#54134=CARTESIAN_POINT('',(2.88244206675412,7.63403033891439,1.27081952584834)); -#54135=CARTESIAN_POINT('',(2.84365232163209,7.64917868677046,1.18811621701012)); -#54136=CARTESIAN_POINT('',(2.75634767836791,7.64917868677046,1.18811621701012)); -#54137=CARTESIAN_POINT('',(2.71750101965383,7.63400811275932,1.27094087086789)); -#54138=CARTESIAN_POINT('',(2.68,7.59805032943425,1.35226988655065)); -#54139=CARTESIAN_POINT('',(2.68,7.5374,1.42344658967066)); -#54140=CARTESIAN_POINT('',(2.68,7.5374,1.42344658967066)); -#54141=CARTESIAN_POINT('',(2.68,7.155,1.0976)); -#54142=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54143=CARTESIAN_POINT('',(3.48,7.19,1.59877936908855)); -#54144=CARTESIAN_POINT('',(3.48,7.17154879938732,1.60006791379186)); -#54145=CARTESIAN_POINT('',(3.4634965625708,7.15499999999984,1.60000000000025)); -#54146=CARTESIAN_POINT('',(3.44500000000004,7.15499999999982,1.60000000000025)); -#54147=CARTESIAN_POINT('',(3.48,7.19,1.59877936908855)); -#54148=CARTESIAN_POINT('',(3.72,7.19,1.59877936908855)); -#54149=CARTESIAN_POINT('',(3.72,7.17154879938732,1.60006791379186)); -#54150=CARTESIAN_POINT('',(3.7365034374292,7.15499999999984,1.60000000000025)); -#54151=CARTESIAN_POINT('',(3.75499999999996,7.15499999999982,1.60000000000025)); -#54152=CARTESIAN_POINT('',(3.72,7.19,1.59877936908855)); -#54153=CARTESIAN_POINT('',(3.72,7.155,1.0976)); -#54154=CARTESIAN_POINT('',(3.72,7.5374,1.42344658967066)); -#54155=CARTESIAN_POINT('',(3.72,7.5374,1.42344658967066)); -#54156=CARTESIAN_POINT('',(3.72,7.59787264997766,1.35247840376812)); -#54157=CARTESIAN_POINT('',(3.68244206675412,7.63403033891439,1.27081952584834)); -#54158=CARTESIAN_POINT('',(3.64365232163209,7.64917868677046,1.18811621701012)); -#54159=CARTESIAN_POINT('',(3.55634767836791,7.64917868677046,1.18811621701012)); -#54160=CARTESIAN_POINT('',(3.51750101965383,7.63400811275933,1.27094087086789)); -#54161=CARTESIAN_POINT('',(3.48,7.59805032943425,1.35226988655065)); -#54162=CARTESIAN_POINT('',(3.48,7.5374,1.42344658967066)); -#54163=CARTESIAN_POINT('',(3.48,7.5374,1.42344658967066)); -#54164=CARTESIAN_POINT('',(3.48,7.155,1.0976)); -#54165=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54166=CARTESIAN_POINT('',(4.28,7.19,1.59877936908855)); -#54167=CARTESIAN_POINT('',(4.28,7.17154879938732,1.60006791379186)); -#54168=CARTESIAN_POINT('',(4.2634965625708,7.15499999999984,1.60000000000025)); -#54169=CARTESIAN_POINT('',(4.24500000000004,7.15499999999982,1.60000000000025)); -#54170=CARTESIAN_POINT('',(4.28,7.19,1.59877936908855)); -#54171=CARTESIAN_POINT('',(4.52,7.19,1.59877936908855)); -#54172=CARTESIAN_POINT('',(4.52,7.17154879938732,1.60006791379186)); -#54173=CARTESIAN_POINT('',(4.5365034374292,7.15499999999984,1.60000000000025)); -#54174=CARTESIAN_POINT('',(4.55499999999996,7.15499999999982,1.60000000000025)); -#54175=CARTESIAN_POINT('',(4.52,7.19,1.59877936908855)); -#54176=CARTESIAN_POINT('',(4.52,7.155,1.0976)); -#54177=CARTESIAN_POINT('',(4.52,7.5374,1.42344658967066)); -#54178=CARTESIAN_POINT('',(4.52,7.5374,1.42344658967066)); -#54179=CARTESIAN_POINT('',(4.52,7.59787264997766,1.35247840376812)); -#54180=CARTESIAN_POINT('',(4.48244206675412,7.63403033891439,1.27081952584834)); -#54181=CARTESIAN_POINT('',(4.44365232163209,7.64917868677046,1.18811621701012)); -#54182=CARTESIAN_POINT('',(4.35634767836791,7.64917868677046,1.18811621701012)); -#54183=CARTESIAN_POINT('',(4.31750101965383,7.63400811275932,1.27094087086789)); -#54184=CARTESIAN_POINT('',(4.28,7.59805032943425,1.35226988655065)); -#54185=CARTESIAN_POINT('',(4.28,7.5374,1.42344658967066)); -#54186=CARTESIAN_POINT('',(4.28,7.5374,1.42344658967066)); -#54187=CARTESIAN_POINT('',(4.28,7.155,1.0976)); -#54188=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54189=CARTESIAN_POINT('',(5.08,7.19,1.59877936908855)); -#54190=CARTESIAN_POINT('',(5.08,7.17154879938732,1.60006791379186)); -#54191=CARTESIAN_POINT('',(5.0634965625708,7.15499999999984,1.60000000000025)); -#54192=CARTESIAN_POINT('',(5.04500000000004,7.15499999999982,1.60000000000025)); -#54193=CARTESIAN_POINT('',(5.08,7.19,1.59877936908855)); -#54194=CARTESIAN_POINT('',(5.32,7.19,1.59877936908855)); -#54195=CARTESIAN_POINT('',(5.32,7.17154879938732,1.60006791379186)); -#54196=CARTESIAN_POINT('',(5.3365034374292,7.15499999999984,1.60000000000025)); -#54197=CARTESIAN_POINT('',(5.35499999999996,7.15499999999982,1.60000000000025)); -#54198=CARTESIAN_POINT('',(5.32,7.19,1.59877936908855)); -#54199=CARTESIAN_POINT('',(5.32,7.155,1.0976)); -#54200=CARTESIAN_POINT('',(5.32,7.5374,1.42344658967066)); -#54201=CARTESIAN_POINT('',(5.32,7.5374,1.42344658967066)); -#54202=CARTESIAN_POINT('',(5.32,7.59787264997766,1.35247840376812)); -#54203=CARTESIAN_POINT('',(5.28244206675412,7.63403033891439,1.27081952584834)); -#54204=CARTESIAN_POINT('',(5.24365232163209,7.64917868677046,1.18811621701012)); -#54205=CARTESIAN_POINT('',(5.15634767836791,7.64917868677046,1.18811621701012)); -#54206=CARTESIAN_POINT('',(5.11750101965383,7.63400811275932,1.27094087086789)); -#54207=CARTESIAN_POINT('',(5.08,7.59805032943425,1.35226988655065)); -#54208=CARTESIAN_POINT('',(5.08,7.5374,1.42344658967066)); -#54209=CARTESIAN_POINT('',(5.08,7.5374,1.42344658967066)); -#54210=CARTESIAN_POINT('',(5.08,7.155,1.0976)); -#54211=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54212=CARTESIAN_POINT('',(5.88,7.19,1.59877936908855)); -#54213=CARTESIAN_POINT('',(5.88,7.17154879938732,1.60006791379186)); -#54214=CARTESIAN_POINT('',(5.8634965625708,7.15499999999984,1.60000000000025)); -#54215=CARTESIAN_POINT('',(5.84500000000004,7.15499999999982,1.60000000000025)); -#54216=CARTESIAN_POINT('',(5.88,7.19,1.59877936908855)); -#54217=CARTESIAN_POINT('',(6.12,7.19,1.59877936908855)); -#54218=CARTESIAN_POINT('',(6.12,7.17154879938732,1.60006791379186)); -#54219=CARTESIAN_POINT('',(6.1365034374292,7.15499999999984,1.60000000000025)); -#54220=CARTESIAN_POINT('',(6.15499999999996,7.15499999999982,1.60000000000025)); -#54221=CARTESIAN_POINT('',(6.12,7.19,1.59877936908855)); -#54222=CARTESIAN_POINT('',(6.12,7.155,1.0976)); -#54223=CARTESIAN_POINT('',(6.12,7.5374,1.42344658967066)); -#54224=CARTESIAN_POINT('',(6.12,7.5374,1.42344658967066)); -#54225=CARTESIAN_POINT('',(6.12,7.59787264997766,1.35247840376812)); -#54226=CARTESIAN_POINT('',(6.08244206675412,7.63403033891439,1.27081952584834)); -#54227=CARTESIAN_POINT('',(6.04365232163209,7.64917868677046,1.18811621701012)); -#54228=CARTESIAN_POINT('',(5.95634767836791,7.64917868677046,1.18811621701012)); -#54229=CARTESIAN_POINT('',(5.91750101965383,7.63400811275932,1.27094087086789)); -#54230=CARTESIAN_POINT('',(5.88,7.59805032943425,1.35226988655065)); -#54231=CARTESIAN_POINT('',(5.88,7.5374,1.42344658967066)); -#54232=CARTESIAN_POINT('',(5.88,7.5374,1.42344658967066)); -#54233=CARTESIAN_POINT('',(5.88,7.155,1.0976)); -#54234=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54235=CARTESIAN_POINT('',(6.68,7.19,1.59877936908855)); -#54236=CARTESIAN_POINT('',(6.68,7.17154879938732,1.60006791379186)); -#54237=CARTESIAN_POINT('',(6.6634965625708,7.15499999999984,1.60000000000025)); -#54238=CARTESIAN_POINT('',(6.64500000000004,7.15499999999982,1.60000000000025)); -#54239=CARTESIAN_POINT('',(6.68,7.19,1.59877936908855)); -#54240=CARTESIAN_POINT('',(6.92,7.19,1.59877936908855)); -#54241=CARTESIAN_POINT('',(6.92,7.17154879938732,1.60006791379186)); -#54242=CARTESIAN_POINT('',(6.9365034374292,7.15499999999984,1.60000000000025)); -#54243=CARTESIAN_POINT('',(6.95499999999996,7.15499999999982,1.60000000000025)); -#54244=CARTESIAN_POINT('',(6.92,7.19,1.59877936908855)); -#54245=CARTESIAN_POINT('',(6.92,7.155,1.0976)); -#54246=CARTESIAN_POINT('',(6.92,7.5374,1.42344658967066)); -#54247=CARTESIAN_POINT('',(6.92,7.5374,1.42344658967066)); -#54248=CARTESIAN_POINT('',(6.92,7.59787264997766,1.35247840376812)); -#54249=CARTESIAN_POINT('',(6.88244206675412,7.63403033891439,1.27081952584834)); -#54250=CARTESIAN_POINT('',(6.84365232163209,7.64917868677046,1.18811621701012)); -#54251=CARTESIAN_POINT('',(6.75634767836791,7.64917868677046,1.18811621701012)); -#54252=CARTESIAN_POINT('',(6.71750101965383,7.63400811275933,1.27094087086789)); -#54253=CARTESIAN_POINT('',(6.68,7.59805032943425,1.35226988655065)); -#54254=CARTESIAN_POINT('',(6.68,7.5374,1.42344658967066)); -#54255=CARTESIAN_POINT('',(6.68,7.5374,1.42344658967066)); -#54256=CARTESIAN_POINT('',(6.68,7.155,1.0976)); -#54257=CARTESIAN_POINT('',(7.89,7.155,1.0976)); -#54258=CARTESIAN_POINT('',(7.48,7.19,1.59877936908855)); -#54259=CARTESIAN_POINT('',(7.48,7.17154879938732,1.60006791379186)); -#54260=CARTESIAN_POINT('',(7.4634965625708,7.15499999999984,1.60000000000025)); -#54261=CARTESIAN_POINT('',(7.44500000000004,7.15499999999982,1.60000000000025)); -#54262=CARTESIAN_POINT('',(7.48,7.19,1.59877936908855)); -#54263=CARTESIAN_POINT('',(7.72,7.19,1.59877936908855)); -#54264=CARTESIAN_POINT('',(7.72,7.17154879938732,1.60006791379186)); -#54265=CARTESIAN_POINT('',(7.7365034374292,7.15499999999984,1.60000000000025)); -#54266=CARTESIAN_POINT('',(7.75499999999996,7.15499999999982,1.60000000000025)); -#54267=CARTESIAN_POINT('',(7.72,7.19,1.59877936908855)); -#54268=CARTESIAN_POINT('',(7.72,7.155,1.0976)); -#54269=CARTESIAN_POINT('',(7.72,7.5374,1.42344658967066)); -#54270=CARTESIAN_POINT('',(7.72,7.5374,1.42344658967066)); -#54271=CARTESIAN_POINT('',(7.72,7.59787264997766,1.35247840376812)); -#54272=CARTESIAN_POINT('',(7.68244206675412,7.63403033891439,1.27081952584834)); -#54273=CARTESIAN_POINT('',(7.64365232163209,7.64917868677046,1.18811621701012)); -#54274=CARTESIAN_POINT('',(7.64365232163209,7.64917868677046,1.18811621701012)); -#54275=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); -#54276=CARTESIAN_POINT('',(7.55634767836791,7.64917868677046,1.18811621701012)); -#54277=CARTESIAN_POINT('',(7.55634767836791,7.64917868677046,1.18811621701012)); -#54278=CARTESIAN_POINT('',(7.51750101965383,7.63400811275932,1.27094087086789)); -#54279=CARTESIAN_POINT('',(7.48,7.59805032943425,1.35226988655065)); -#54280=CARTESIAN_POINT('',(7.48,7.5374,1.42344658967066)); -#54281=CARTESIAN_POINT('',(7.48,7.5374,1.42344658967066)); -#54282=CARTESIAN_POINT('',(7.48,7.155,1.0976)); -#54283=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); -#54284=CARTESIAN_POINT('',(7.89,1.05,2.0088)); -#54285=CARTESIAN_POINT('',(7.89,4.02098076211353,4.)); -#54286=CARTESIAN_POINT('',(-7.89,0.6524,2.0088)); -#54287=CARTESIAN_POINT('',(-7.89,1.05,2.0088)); -#54288=CARTESIAN_POINT('',(-7.89,4.02098076211354,4.)); -#54289=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); -#54290=CARTESIAN_POINT('',(7.6,7.5374,-1.12358076211353)); -#54291=CARTESIAN_POINT('',(7.48,7.5374,-1.12358076211353)); -#54292=CARTESIAN_POINT('',(7.48,7.64917868677046,-1.18811621701012)); -#54293=CARTESIAN_POINT('',(7.72,7.64917868677046,-1.18811621701012)); -#54294=CARTESIAN_POINT('',(7.72,7.5374,-1.12358076211353)); -#54295=CARTESIAN_POINT('',(7.6,7.5374,-1.12358076211353)); -#54296=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); -#54297=CARTESIAN_POINT('',(7.48,7.4924,1.0976)); -#54298=CARTESIAN_POINT('',(7.48,7.5374,1.12358076211353)); -#54299=CARTESIAN_POINT('',(7.6,7.5374,1.12358076211353)); -#54300=CARTESIAN_POINT('',(7.6,7.5374,1.12358076211353)); -#54301=CARTESIAN_POINT('',(7.72,7.5374,1.12358076211353)); -#54302=CARTESIAN_POINT('',(7.72,7.4924,1.0976)); -#54303=CARTESIAN_POINT('',(-7.6,7.5374,4.)); -#54304=CARTESIAN_POINT('',(-7.72,7.5374,4.)); -#54305=CARTESIAN_POINT('',(-7.72,7.5374,4.)); -#54306=CARTESIAN_POINT('',(-7.72,7.19,4.)); -#54307=CARTESIAN_POINT('',(-7.755,7.085,4.)); -#54308=CARTESIAN_POINT('',(-7.825,7.085,4.)); -#54309=CARTESIAN_POINT('',(-7.755,7.155,4.)); -#54310=CARTESIAN_POINT('',(-7.825,7.085,4.)); -#54311=CARTESIAN_POINT('',(-7.825,4.17643593539449,4.)); -#54312=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,4.)); -#54313=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,4.)); -#54314=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,4.)); -#54315=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,4.)); -#54316=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,4.)); -#54317=CARTESIAN_POINT('',(-7.755,7.19,4.)); -#54318=CARTESIAN_POINT('',(-7.755,7.085,4.)); -#54319=CARTESIAN_POINT('',(-7.825,7.085,4.)); -#54320=CARTESIAN_POINT('',(-7.755,7.155,4.)); -#54321=CARTESIAN_POINT('',(-7.825,7.085,4.)); -#54322=CARTESIAN_POINT('',(-7.825,4.17643593539449,4.)); -#54323=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,4.)); -#54324=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,4.)); -#54325=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,4.)); -#54326=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,4.)); -#54327=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,4.)); -#54328=CARTESIAN_POINT('',(-7.72,7.5374,4.)); -#54329=CARTESIAN_POINT('',(-7.72,7.19,4.)); -#54330=CARTESIAN_POINT('',(-7.72,7.5374,4.)); -#54331=CARTESIAN_POINT('',(-7.755,7.19,4.)); -#54332=CARTESIAN_POINT('',(-7.6,7.5374,4.)); -#54333=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,4.)); -#54334=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,4.)); -#54335=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,4.)); -#54336=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,4.)); -#54337=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,4.)); -#54338=CARTESIAN_POINT('',(7.825,4.17643593539449,4.)); -#54339=CARTESIAN_POINT('',(7.825,4.17643593539449,4.)); -#54340=CARTESIAN_POINT('',(7.825,7.085,4.)); -#54341=CARTESIAN_POINT('',(7.755,7.085,4.)); -#54342=CARTESIAN_POINT('',(7.755,7.155,4.)); -#54343=CARTESIAN_POINT('',(7.755,7.19,4.)); -#54344=CARTESIAN_POINT('',(7.72,7.19,4.)); -#54345=CARTESIAN_POINT('',(7.72,7.19,4.)); -#54346=CARTESIAN_POINT('',(7.72,7.5374,4.)); -#54347=CARTESIAN_POINT('',(7.6,7.5374,4.)); -#54348=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,4.)); -#54349=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,4.)); -#54350=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,4.)); -#54351=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,4.)); -#54352=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,4.)); -#54353=CARTESIAN_POINT('',(7.825,4.17643593539449,4.)); -#54354=CARTESIAN_POINT('',(7.825,4.17643593539449,4.)); -#54355=CARTESIAN_POINT('',(7.825,7.085,4.)); -#54356=CARTESIAN_POINT('',(7.755,7.085,4.)); -#54357=CARTESIAN_POINT('',(7.755,7.155,4.)); -#54358=CARTESIAN_POINT('',(7.755,7.19,4.)); -#54359=CARTESIAN_POINT('',(7.72,7.19,4.)); -#54360=CARTESIAN_POINT('',(7.72,7.19,4.)); -#54361=CARTESIAN_POINT('',(7.72,7.5374,4.)); -#54362=CARTESIAN_POINT('',(7.6,7.5374,4.)); -#54363=CARTESIAN_POINT('',(7.6,7.5374,4.)); -#54364=CARTESIAN_POINT('',(7.48,7.5374,4.)); -#54365=CARTESIAN_POINT('',(7.48,7.5374,4.)); -#54366=CARTESIAN_POINT('',(7.48,7.19,4.)); -#54367=CARTESIAN_POINT('',(7.445,7.085,4.)); -#54368=CARTESIAN_POINT('',(7.375,7.085,4.)); -#54369=CARTESIAN_POINT('',(7.445,7.155,4.)); -#54370=CARTESIAN_POINT('',(7.375,7.085,4.)); -#54371=CARTESIAN_POINT('',(7.375,4.17643593539449,4.)); -#54372=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,4.)); -#54373=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,4.)); -#54374=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,4.)); -#54375=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,4.)); -#54376=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,4.)); -#54377=CARTESIAN_POINT('',(7.31,4.02098076211353,4.)); -#54378=CARTESIAN_POINT('',(7.31,4.02098076211353,4.)); -#54379=CARTESIAN_POINT('',(7.09,1.05,4.)); -#54380=CARTESIAN_POINT('',(7.09,4.02098076211353,4.)); -#54381=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,4.)); -#54382=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,4.)); -#54383=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,4.)); -#54384=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,4.)); -#54385=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,4.)); -#54386=CARTESIAN_POINT('',(7.025,4.17643593539449,4.)); -#54387=CARTESIAN_POINT('',(7.025,4.17643593539449,4.)); -#54388=CARTESIAN_POINT('',(7.025,7.085,4.)); -#54389=CARTESIAN_POINT('',(6.955,7.085,4.)); -#54390=CARTESIAN_POINT('',(6.955,7.155,4.)); -#54391=CARTESIAN_POINT('',(7.445,7.19,4.)); -#54392=CARTESIAN_POINT('',(6.955,7.19,4.)); -#54393=CARTESIAN_POINT('',(6.92,7.19,4.)); -#54394=CARTESIAN_POINT('',(6.92,7.19,4.)); -#54395=CARTESIAN_POINT('',(6.92,7.5374,4.)); -#54396=CARTESIAN_POINT('',(6.8,7.5374,4.)); -#54397=CARTESIAN_POINT('',(6.8,7.5374,4.)); -#54398=CARTESIAN_POINT('',(6.68,7.5374,4.)); -#54399=CARTESIAN_POINT('',(6.68,7.5374,4.)); -#54400=CARTESIAN_POINT('',(6.68,7.19,4.)); -#54401=CARTESIAN_POINT('',(6.645,7.085,4.)); -#54402=CARTESIAN_POINT('',(6.575,7.085,4.)); -#54403=CARTESIAN_POINT('',(6.645,7.155,4.)); -#54404=CARTESIAN_POINT('',(6.575,7.085,4.)); -#54405=CARTESIAN_POINT('',(6.575,4.17643593539449,4.)); -#54406=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,4.)); -#54407=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,4.)); -#54408=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,4.)); -#54409=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,4.)); -#54410=CARTESIAN_POINT('',(6.59,4.02098076211353,4.)); -#54411=CARTESIAN_POINT('',(6.51,4.02098076211353,4.)); -#54412=CARTESIAN_POINT('',(6.51,4.02098076211353,4.)); -#54413=CARTESIAN_POINT('',(6.29,1.05,4.)); -#54414=CARTESIAN_POINT('',(6.29,4.02098076211353,4.)); -#54415=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,4.)); -#54416=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,4.)); -#54417=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,4.)); -#54418=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,4.)); -#54419=CARTESIAN_POINT('',(6.305,4.17643593539449,4.)); -#54420=CARTESIAN_POINT('',(6.225,4.17643593539449,4.)); -#54421=CARTESIAN_POINT('',(6.225,4.17643593539449,4.)); -#54422=CARTESIAN_POINT('',(6.225,7.085,4.)); -#54423=CARTESIAN_POINT('',(6.155,7.085,4.)); -#54424=CARTESIAN_POINT('',(6.155,7.155,4.)); -#54425=CARTESIAN_POINT('',(6.645,7.19,4.)); -#54426=CARTESIAN_POINT('',(6.155,7.19,4.)); -#54427=CARTESIAN_POINT('',(6.12,7.19,4.)); -#54428=CARTESIAN_POINT('',(6.12,7.19,4.)); -#54429=CARTESIAN_POINT('',(6.12,7.5374,4.)); -#54430=CARTESIAN_POINT('',(6.,7.5374,4.)); -#54431=CARTESIAN_POINT('',(6.,7.5374,4.)); -#54432=CARTESIAN_POINT('',(5.88,7.5374,4.)); -#54433=CARTESIAN_POINT('',(5.88,7.5374,4.)); -#54434=CARTESIAN_POINT('',(5.88,7.19,4.)); -#54435=CARTESIAN_POINT('',(5.845,7.085,4.)); -#54436=CARTESIAN_POINT('',(5.775,7.085,4.)); -#54437=CARTESIAN_POINT('',(5.845,7.155,4.)); -#54438=CARTESIAN_POINT('',(5.775,7.085,4.)); -#54439=CARTESIAN_POINT('',(5.775,4.17643593539449,4.)); -#54440=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,4.)); -#54441=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,4.)); -#54442=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,4.)); -#54443=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,4.)); -#54444=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,4.)); -#54445=CARTESIAN_POINT('',(5.71,4.02098076211353,4.)); -#54446=CARTESIAN_POINT('',(5.71,4.02098076211353,4.)); -#54447=CARTESIAN_POINT('',(5.49,1.05,4.)); -#54448=CARTESIAN_POINT('',(5.49,4.02098076211353,4.)); -#54449=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,4.)); -#54450=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,4.)); -#54451=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,4.)); -#54452=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,4.)); -#54453=CARTESIAN_POINT('',(5.505,4.17643593539449,4.)); -#54454=CARTESIAN_POINT('',(5.425,4.17643593539449,4.)); -#54455=CARTESIAN_POINT('',(5.425,4.17643593539449,4.)); -#54456=CARTESIAN_POINT('',(5.425,7.085,4.)); -#54457=CARTESIAN_POINT('',(5.355,7.085,4.)); -#54458=CARTESIAN_POINT('',(5.355,7.155,4.)); -#54459=CARTESIAN_POINT('',(5.845,7.19,4.)); -#54460=CARTESIAN_POINT('',(5.355,7.19,4.)); -#54461=CARTESIAN_POINT('',(5.32,7.19,4.)); -#54462=CARTESIAN_POINT('',(5.32,7.19,4.)); -#54463=CARTESIAN_POINT('',(5.32,7.5374,4.)); -#54464=CARTESIAN_POINT('',(5.2,7.5374,4.)); -#54465=CARTESIAN_POINT('',(5.2,7.5374,4.)); -#54466=CARTESIAN_POINT('',(5.08,7.5374,4.)); -#54467=CARTESIAN_POINT('',(5.08,7.5374,4.)); -#54468=CARTESIAN_POINT('',(5.08,7.19,4.)); -#54469=CARTESIAN_POINT('',(5.045,7.085,4.)); -#54470=CARTESIAN_POINT('',(4.975,7.085,4.)); -#54471=CARTESIAN_POINT('',(5.045,7.155,4.)); -#54472=CARTESIAN_POINT('',(4.975,7.085,4.)); -#54473=CARTESIAN_POINT('',(4.975,4.17643593539449,4.)); -#54474=CARTESIAN_POINT('',(4.895,4.17643593539449,4.)); -#54475=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,4.)); -#54476=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,4.)); -#54477=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,4.)); -#54478=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,4.)); -#54479=CARTESIAN_POINT('',(4.91,4.02098076211353,4.)); -#54480=CARTESIAN_POINT('',(4.91,4.02098076211353,4.)); -#54481=CARTESIAN_POINT('',(4.69,1.05,4.)); -#54482=CARTESIAN_POINT('',(4.69,4.02098076211353,4.)); -#54483=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,4.)); -#54484=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,4.)); -#54485=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,4.)); -#54486=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,4.)); -#54487=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,4.)); -#54488=CARTESIAN_POINT('',(4.625,4.17643593539449,4.)); -#54489=CARTESIAN_POINT('',(4.625,4.17643593539449,4.)); -#54490=CARTESIAN_POINT('',(4.625,7.085,4.)); -#54491=CARTESIAN_POINT('',(4.555,7.085,4.)); -#54492=CARTESIAN_POINT('',(4.555,7.155,4.)); -#54493=CARTESIAN_POINT('',(5.045,7.19,4.)); -#54494=CARTESIAN_POINT('',(4.555,7.19,4.)); -#54495=CARTESIAN_POINT('',(4.52,7.19,4.)); -#54496=CARTESIAN_POINT('',(4.52,7.19,4.)); -#54497=CARTESIAN_POINT('',(4.52,7.5374,4.)); -#54498=CARTESIAN_POINT('',(4.4,7.5374,4.)); -#54499=CARTESIAN_POINT('',(4.4,7.5374,4.)); -#54500=CARTESIAN_POINT('',(4.28,7.5374,4.)); -#54501=CARTESIAN_POINT('',(4.28,7.5374,4.)); -#54502=CARTESIAN_POINT('',(4.28,7.19,4.)); -#54503=CARTESIAN_POINT('',(4.245,7.085,4.)); -#54504=CARTESIAN_POINT('',(4.175,7.085,4.)); -#54505=CARTESIAN_POINT('',(4.245,7.155,4.)); -#54506=CARTESIAN_POINT('',(4.175,7.085,4.)); -#54507=CARTESIAN_POINT('',(4.175,4.17643593539449,4.)); -#54508=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,4.)); -#54509=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,4.)); -#54510=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,4.)); -#54511=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,4.)); -#54512=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,4.)); -#54513=CARTESIAN_POINT('',(4.11,4.02098076211353,4.)); -#54514=CARTESIAN_POINT('',(4.11,4.02098076211353,4.)); -#54515=CARTESIAN_POINT('',(3.89,1.05,4.)); -#54516=CARTESIAN_POINT('',(3.89,4.02098076211353,4.)); -#54517=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,4.)); -#54518=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,4.)); -#54519=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,4.)); -#54520=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,4.)); -#54521=CARTESIAN_POINT('',(3.905,4.17643593539449,4.)); -#54522=CARTESIAN_POINT('',(3.825,4.17643593539449,4.)); -#54523=CARTESIAN_POINT('',(3.825,4.17643593539449,4.)); -#54524=CARTESIAN_POINT('',(3.825,7.085,4.)); -#54525=CARTESIAN_POINT('',(3.755,7.085,4.)); -#54526=CARTESIAN_POINT('',(3.755,7.155,4.)); -#54527=CARTESIAN_POINT('',(4.245,7.19,4.)); -#54528=CARTESIAN_POINT('',(3.755,7.19,4.)); -#54529=CARTESIAN_POINT('',(3.72,7.19,4.)); -#54530=CARTESIAN_POINT('',(3.72,7.19,4.)); -#54531=CARTESIAN_POINT('',(3.72,7.5374,4.)); -#54532=CARTESIAN_POINT('',(3.6,7.5374,4.)); -#54533=CARTESIAN_POINT('',(3.6,7.5374,4.)); -#54534=CARTESIAN_POINT('',(3.48,7.5374,4.)); -#54535=CARTESIAN_POINT('',(3.48,7.5374,4.)); -#54536=CARTESIAN_POINT('',(3.48,7.19,4.)); -#54537=CARTESIAN_POINT('',(3.445,7.085,4.)); -#54538=CARTESIAN_POINT('',(3.375,7.085,4.)); -#54539=CARTESIAN_POINT('',(3.445,7.155,4.)); -#54540=CARTESIAN_POINT('',(3.375,7.085,4.)); -#54541=CARTESIAN_POINT('',(3.375,4.17643593539449,4.)); -#54542=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,4.)); -#54543=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,4.)); -#54544=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,4.)); -#54545=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,4.)); -#54546=CARTESIAN_POINT('',(3.39,4.02098076211353,4.)); -#54547=CARTESIAN_POINT('',(3.31,4.02098076211353,4.)); -#54548=CARTESIAN_POINT('',(3.31,4.02098076211353,4.)); -#54549=CARTESIAN_POINT('',(3.09,1.05,4.)); -#54550=CARTESIAN_POINT('',(3.09,4.02098076211353,4.)); -#54551=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,4.)); -#54552=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,4.)); -#54553=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,4.)); -#54554=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,4.)); -#54555=CARTESIAN_POINT('',(3.105,4.17643593539449,4.)); -#54556=CARTESIAN_POINT('',(3.025,4.17643593539449,4.)); -#54557=CARTESIAN_POINT('',(3.025,4.17643593539449,4.)); -#54558=CARTESIAN_POINT('',(3.025,7.085,4.)); -#54559=CARTESIAN_POINT('',(2.955,7.085,4.)); -#54560=CARTESIAN_POINT('',(2.955,7.155,4.)); -#54561=CARTESIAN_POINT('',(3.445,7.19,4.)); -#54562=CARTESIAN_POINT('',(2.955,7.19,4.)); -#54563=CARTESIAN_POINT('',(2.92,7.19,4.)); -#54564=CARTESIAN_POINT('',(2.92,7.19,4.)); -#54565=CARTESIAN_POINT('',(2.92,7.5374,4.)); -#54566=CARTESIAN_POINT('',(2.8,7.5374,4.)); -#54567=CARTESIAN_POINT('',(2.8,7.5374,4.)); -#54568=CARTESIAN_POINT('',(2.68,7.5374,4.)); -#54569=CARTESIAN_POINT('',(2.68,7.5374,4.)); -#54570=CARTESIAN_POINT('',(2.68,7.19,4.)); -#54571=CARTESIAN_POINT('',(2.645,7.085,4.)); -#54572=CARTESIAN_POINT('',(2.575,7.085,4.)); -#54573=CARTESIAN_POINT('',(2.645,7.155,4.)); -#54574=CARTESIAN_POINT('',(2.575,7.085,4.)); -#54575=CARTESIAN_POINT('',(2.575,4.17643593539449,4.)); -#54576=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,4.)); -#54577=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,4.)); -#54578=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,4.)); -#54579=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,4.)); -#54580=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,4.)); -#54581=CARTESIAN_POINT('',(2.51,4.02098076211353,4.)); -#54582=CARTESIAN_POINT('',(2.51,4.02098076211353,4.)); -#54583=CARTESIAN_POINT('',(2.29,1.05,4.)); -#54584=CARTESIAN_POINT('',(2.29,4.02098076211353,4.)); -#54585=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,4.)); -#54586=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,4.)); -#54587=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,4.)); -#54588=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,4.)); -#54589=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,4.)); -#54590=CARTESIAN_POINT('',(2.225,4.17643593539449,4.)); -#54591=CARTESIAN_POINT('',(2.225,4.17643593539449,4.)); -#54592=CARTESIAN_POINT('',(2.225,7.085,4.)); -#54593=CARTESIAN_POINT('',(2.155,7.085,4.)); -#54594=CARTESIAN_POINT('',(2.155,7.155,4.)); -#54595=CARTESIAN_POINT('',(2.645,7.19,4.)); -#54596=CARTESIAN_POINT('',(2.155,7.19,4.)); -#54597=CARTESIAN_POINT('',(2.12,7.19,4.)); -#54598=CARTESIAN_POINT('',(2.12,7.19,4.)); -#54599=CARTESIAN_POINT('',(2.12,7.5374,4.)); -#54600=CARTESIAN_POINT('',(2.,7.5374,4.)); -#54601=CARTESIAN_POINT('',(2.,7.5374,4.)); -#54602=CARTESIAN_POINT('',(1.88,7.5374,4.)); -#54603=CARTESIAN_POINT('',(1.88,7.5374,4.)); -#54604=CARTESIAN_POINT('',(1.88,7.19,4.)); -#54605=CARTESIAN_POINT('',(1.845,7.085,4.)); -#54606=CARTESIAN_POINT('',(1.775,7.085,4.)); -#54607=CARTESIAN_POINT('',(1.845,7.155,4.)); -#54608=CARTESIAN_POINT('',(1.775,7.085,4.)); -#54609=CARTESIAN_POINT('',(1.775,4.17643593539449,4.)); -#54610=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,4.)); -#54611=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,4.)); -#54612=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,4.)); -#54613=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,4.)); -#54614=CARTESIAN_POINT('',(1.79,4.02098076211353,4.)); -#54615=CARTESIAN_POINT('',(1.71,4.02098076211353,4.)); -#54616=CARTESIAN_POINT('',(1.71,4.02098076211353,4.)); -#54617=CARTESIAN_POINT('',(1.49,1.05,4.)); -#54618=CARTESIAN_POINT('',(1.49,4.02098076211353,4.)); -#54619=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,4.)); -#54620=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,4.)); -#54621=CARTESIAN_POINT('',(1.47928203230276,4.06098076211353,4.)); -#54622=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,4.)); -#54623=CARTESIAN_POINT('',(1.505,4.17643593539449,4.)); -#54624=CARTESIAN_POINT('',(1.425,4.17643593539449,4.)); -#54625=CARTESIAN_POINT('',(1.425,4.17643593539449,4.)); -#54626=CARTESIAN_POINT('',(1.425,7.085,4.)); -#54627=CARTESIAN_POINT('',(1.355,7.085,4.)); -#54628=CARTESIAN_POINT('',(1.355,7.155,4.)); -#54629=CARTESIAN_POINT('',(1.845,7.19,4.)); -#54630=CARTESIAN_POINT('',(1.355,7.19,4.)); -#54631=CARTESIAN_POINT('',(1.32,7.19,4.)); -#54632=CARTESIAN_POINT('',(1.32,7.19,4.)); -#54633=CARTESIAN_POINT('',(1.32,7.5374,4.)); -#54634=CARTESIAN_POINT('',(1.2,7.5374,4.)); -#54635=CARTESIAN_POINT('',(1.2,7.5374,4.)); -#54636=CARTESIAN_POINT('',(1.08,7.5374,4.)); -#54637=CARTESIAN_POINT('',(1.08,7.5374,4.)); -#54638=CARTESIAN_POINT('',(1.08,7.19,4.)); -#54639=CARTESIAN_POINT('',(1.045,7.085,4.)); -#54640=CARTESIAN_POINT('',(0.974999999999998,7.085,4.)); -#54641=CARTESIAN_POINT('',(1.045,7.155,4.)); -#54642=CARTESIAN_POINT('',(0.974999999999999,7.085,4.)); -#54643=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,4.)); -#54644=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,4.)); -#54645=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,4.)); -#54646=CARTESIAN_POINT('',(0.964282032302754,4.13643593539449,4.)); -#54647=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,4.)); -#54648=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,4.)); -#54649=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,4.)); -#54650=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,4.)); -#54651=CARTESIAN_POINT('',(0.69,1.05,4.)); -#54652=CARTESIAN_POINT('',(0.69,4.02098076211353,4.)); -#54653=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,4.)); -#54654=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,4.)); -#54655=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,4.)); -#54656=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,4.)); -#54657=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,4.)); -#54658=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,4.)); -#54659=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,4.)); -#54660=CARTESIAN_POINT('',(0.624999999999999,7.085,4.)); -#54661=CARTESIAN_POINT('',(0.554999999999999,7.085,4.)); -#54662=CARTESIAN_POINT('',(0.554999999999999,7.155,4.)); -#54663=CARTESIAN_POINT('',(1.045,7.19,4.)); -#54664=CARTESIAN_POINT('',(0.554999999999999,7.19,4.)); -#54665=CARTESIAN_POINT('',(0.52,7.19,4.)); -#54666=CARTESIAN_POINT('',(0.52,7.19,4.)); -#54667=CARTESIAN_POINT('',(0.52,7.5374,4.)); -#54668=CARTESIAN_POINT('',(0.399999999999999,7.5374,4.)); -#54669=CARTESIAN_POINT('',(0.399999999999999,7.5374,4.)); -#54670=CARTESIAN_POINT('',(0.279999999999999,7.5374,4.)); -#54671=CARTESIAN_POINT('',(0.279999999999999,7.5374,4.)); -#54672=CARTESIAN_POINT('',(0.279999999999999,7.19,4.)); -#54673=CARTESIAN_POINT('',(0.245,7.085,4.)); -#54674=CARTESIAN_POINT('',(0.174999999999999,7.085,4.)); -#54675=CARTESIAN_POINT('',(0.244999999999999,7.155,4.)); -#54676=CARTESIAN_POINT('',(0.174999999999999,7.085,4.)); -#54677=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,4.)); -#54678=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,4.)); -#54679=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,4.)); -#54680=CARTESIAN_POINT('',(0.164282032302754,4.13643593539449,4.)); -#54681=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,4.)); -#54682=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,4.)); -#54683=CARTESIAN_POINT('',(0.11,4.02098076211353,4.)); -#54684=CARTESIAN_POINT('',(0.109999999999999,4.02098076211353,4.)); -#54685=CARTESIAN_POINT('',(-0.110000000000001,1.05,4.)); -#54686=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,4.)); -#54687=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,4.)); -#54688=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,4.)); -#54689=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,4.)); -#54690=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,4.)); -#54691=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,4.)); -#54692=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,4.)); -#54693=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,4.)); -#54694=CARTESIAN_POINT('',(-0.175000000000001,7.085,4.)); -#54695=CARTESIAN_POINT('',(-0.245000000000001,7.085,4.)); -#54696=CARTESIAN_POINT('',(-0.245000000000001,7.155,4.)); -#54697=CARTESIAN_POINT('',(0.245,7.19,4.)); -#54698=CARTESIAN_POINT('',(-0.245000000000001,7.19,4.)); -#54699=CARTESIAN_POINT('',(-0.28,7.19,4.)); -#54700=CARTESIAN_POINT('',(-0.28,7.19,4.)); -#54701=CARTESIAN_POINT('',(-0.28,7.5374,4.)); -#54702=CARTESIAN_POINT('',(-0.400000000000001,7.5374,4.)); -#54703=CARTESIAN_POINT('',(-0.400000000000001,7.5374,4.)); -#54704=CARTESIAN_POINT('',(-0.520000000000001,7.5374,4.)); -#54705=CARTESIAN_POINT('',(-0.520000000000001,7.5374,4.)); -#54706=CARTESIAN_POINT('',(-0.520000000000001,7.19,4.)); -#54707=CARTESIAN_POINT('',(-0.555,7.085,4.)); -#54708=CARTESIAN_POINT('',(-0.625000000000001,7.085,4.)); -#54709=CARTESIAN_POINT('',(-0.555000000000001,7.155,4.)); -#54710=CARTESIAN_POINT('',(-0.625000000000001,7.085,4.)); -#54711=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,4.)); -#54712=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,4.)); -#54713=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,4.)); -#54714=CARTESIAN_POINT('',(-0.635717967697246,4.13643593539449,4.)); -#54715=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,4.)); -#54716=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,4.)); -#54717=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,4.)); -#54718=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,4.)); -#54719=CARTESIAN_POINT('',(-0.910000000000001,1.05,4.)); -#54720=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,4.)); -#54721=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,4.)); -#54722=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,4.)); -#54723=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,4.)); -#54724=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,4.)); -#54725=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,4.)); -#54726=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,4.)); -#54727=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,4.)); -#54728=CARTESIAN_POINT('',(-0.975000000000001,7.085,4.)); -#54729=CARTESIAN_POINT('',(-1.045,7.085,4.)); -#54730=CARTESIAN_POINT('',(-1.045,7.155,4.)); -#54731=CARTESIAN_POINT('',(-0.555000000000001,7.19,4.)); -#54732=CARTESIAN_POINT('',(-1.045,7.19,4.)); -#54733=CARTESIAN_POINT('',(-1.08,7.19,4.)); -#54734=CARTESIAN_POINT('',(-1.08,7.19,4.)); -#54735=CARTESIAN_POINT('',(-1.08,7.5374,4.)); -#54736=CARTESIAN_POINT('',(-1.2,7.5374,4.)); -#54737=CARTESIAN_POINT('',(-1.2,7.5374,4.)); -#54738=CARTESIAN_POINT('',(-1.32,7.5374,4.)); -#54739=CARTESIAN_POINT('',(-1.32,7.5374,4.)); -#54740=CARTESIAN_POINT('',(-1.32,7.19,4.)); -#54741=CARTESIAN_POINT('',(-1.355,7.085,4.)); -#54742=CARTESIAN_POINT('',(-1.425,7.085,4.)); -#54743=CARTESIAN_POINT('',(-1.355,7.155,4.)); -#54744=CARTESIAN_POINT('',(-1.425,7.085,4.)); -#54745=CARTESIAN_POINT('',(-1.425,4.17643593539449,4.)); -#54746=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,4.)); -#54747=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,4.)); -#54748=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,4.)); -#54749=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,4.)); -#54750=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,4.)); -#54751=CARTESIAN_POINT('',(-1.49,4.02098076211353,4.)); -#54752=CARTESIAN_POINT('',(-1.49,4.02098076211353,4.)); -#54753=CARTESIAN_POINT('',(-1.71,1.05,4.)); -#54754=CARTESIAN_POINT('',(-1.71,4.02098076211353,4.)); -#54755=CARTESIAN_POINT('',(-1.79,4.02098076211353,4.)); -#54756=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,4.)); -#54757=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,4.)); -#54758=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,4.)); -#54759=CARTESIAN_POINT('',(-1.695,4.17643593539449,4.)); -#54760=CARTESIAN_POINT('',(-1.775,4.17643593539449,4.)); -#54761=CARTESIAN_POINT('',(-1.775,4.17643593539449,4.)); -#54762=CARTESIAN_POINT('',(-1.775,7.085,4.)); -#54763=CARTESIAN_POINT('',(-1.845,7.085,4.)); -#54764=CARTESIAN_POINT('',(-1.845,7.155,4.)); -#54765=CARTESIAN_POINT('',(-1.355,7.19,4.)); -#54766=CARTESIAN_POINT('',(-1.845,7.19,4.)); -#54767=CARTESIAN_POINT('',(-1.88,7.19,4.)); -#54768=CARTESIAN_POINT('',(-1.88,7.19,4.)); -#54769=CARTESIAN_POINT('',(-1.88,7.5374,4.)); -#54770=CARTESIAN_POINT('',(-2.,7.5374,4.)); -#54771=CARTESIAN_POINT('',(-2.,7.5374,4.)); -#54772=CARTESIAN_POINT('',(-2.12,7.5374,4.)); -#54773=CARTESIAN_POINT('',(-2.12,7.5374,4.)); -#54774=CARTESIAN_POINT('',(-2.12,7.19,4.)); -#54775=CARTESIAN_POINT('',(-2.155,7.085,4.)); -#54776=CARTESIAN_POINT('',(-2.225,7.085,4.)); -#54777=CARTESIAN_POINT('',(-2.155,7.155,4.)); -#54778=CARTESIAN_POINT('',(-2.225,7.085,4.)); -#54779=CARTESIAN_POINT('',(-2.225,4.17643593539449,4.)); -#54780=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,4.)); -#54781=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,4.)); -#54782=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,4.)); -#54783=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,4.)); -#54784=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,4.)); -#54785=CARTESIAN_POINT('',(-2.29,4.02098076211353,4.)); -#54786=CARTESIAN_POINT('',(-2.29,4.02098076211353,4.)); -#54787=CARTESIAN_POINT('',(-2.51,1.05,4.)); -#54788=CARTESIAN_POINT('',(-2.51,4.02098076211353,4.)); -#54789=CARTESIAN_POINT('',(-2.59,4.02098076211353,4.)); -#54790=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,4.)); -#54791=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,4.)); -#54792=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,4.)); -#54793=CARTESIAN_POINT('',(-2.495,4.17643593539449,4.)); -#54794=CARTESIAN_POINT('',(-2.575,4.17643593539449,4.)); -#54795=CARTESIAN_POINT('',(-2.575,4.17643593539449,4.)); -#54796=CARTESIAN_POINT('',(-2.575,7.085,4.)); -#54797=CARTESIAN_POINT('',(-2.645,7.085,4.)); -#54798=CARTESIAN_POINT('',(-2.645,7.155,4.)); -#54799=CARTESIAN_POINT('',(-2.155,7.19,4.)); -#54800=CARTESIAN_POINT('',(-2.645,7.19,4.)); -#54801=CARTESIAN_POINT('',(-2.68,7.19,4.)); -#54802=CARTESIAN_POINT('',(-2.68,7.19,4.)); -#54803=CARTESIAN_POINT('',(-2.68,7.5374,4.)); -#54804=CARTESIAN_POINT('',(-2.8,7.5374,4.)); -#54805=CARTESIAN_POINT('',(-2.8,7.5374,4.)); -#54806=CARTESIAN_POINT('',(-2.92,7.5374,4.)); -#54807=CARTESIAN_POINT('',(-2.92,7.5374,4.)); -#54808=CARTESIAN_POINT('',(-2.92,7.19,4.)); -#54809=CARTESIAN_POINT('',(-2.955,7.085,4.)); -#54810=CARTESIAN_POINT('',(-3.025,7.085,4.)); -#54811=CARTESIAN_POINT('',(-2.955,7.155,4.)); -#54812=CARTESIAN_POINT('',(-3.025,7.085,4.)); -#54813=CARTESIAN_POINT('',(-3.025,4.17643593539449,4.)); -#54814=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,4.)); -#54815=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,4.)); -#54816=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,4.)); -#54817=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,4.)); -#54818=CARTESIAN_POINT('',(-3.01,4.02098076211353,4.)); -#54819=CARTESIAN_POINT('',(-3.09,4.02098076211353,4.)); -#54820=CARTESIAN_POINT('',(-3.09,4.02098076211353,4.)); -#54821=CARTESIAN_POINT('',(-3.31,1.05,4.)); -#54822=CARTESIAN_POINT('',(-3.31,4.02098076211353,4.)); -#54823=CARTESIAN_POINT('',(-3.39,4.02098076211353,4.)); -#54824=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,4.)); -#54825=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,4.)); -#54826=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,4.)); -#54827=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,4.)); -#54828=CARTESIAN_POINT('',(-3.375,4.17643593539449,4.)); -#54829=CARTESIAN_POINT('',(-3.375,4.17643593539449,4.)); -#54830=CARTESIAN_POINT('',(-3.375,7.085,4.)); -#54831=CARTESIAN_POINT('',(-3.445,7.085,4.)); -#54832=CARTESIAN_POINT('',(-3.445,7.155,4.)); -#54833=CARTESIAN_POINT('',(-2.955,7.19,4.)); -#54834=CARTESIAN_POINT('',(-3.445,7.19,4.)); -#54835=CARTESIAN_POINT('',(-3.48,7.19,4.)); -#54836=CARTESIAN_POINT('',(-3.48,7.19,4.)); -#54837=CARTESIAN_POINT('',(-3.48,7.5374,4.)); -#54838=CARTESIAN_POINT('',(-3.6,7.5374,4.)); -#54839=CARTESIAN_POINT('',(-3.6,7.5374,4.)); -#54840=CARTESIAN_POINT('',(-3.72,7.5374,4.)); -#54841=CARTESIAN_POINT('',(-3.72,7.5374,4.)); -#54842=CARTESIAN_POINT('',(-3.72,7.19,4.)); -#54843=CARTESIAN_POINT('',(-3.755,7.085,4.)); -#54844=CARTESIAN_POINT('',(-3.825,7.085,4.)); -#54845=CARTESIAN_POINT('',(-3.755,7.155,4.)); -#54846=CARTESIAN_POINT('',(-3.825,7.085,4.)); -#54847=CARTESIAN_POINT('',(-3.825,4.17643593539449,4.)); -#54848=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,4.)); -#54849=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,4.)); -#54850=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,4.)); -#54851=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,4.)); -#54852=CARTESIAN_POINT('',(-3.81,4.02098076211353,4.)); -#54853=CARTESIAN_POINT('',(-3.89,4.02098076211353,4.)); -#54854=CARTESIAN_POINT('',(-3.89,4.02098076211353,4.)); -#54855=CARTESIAN_POINT('',(-4.11,1.05,4.)); -#54856=CARTESIAN_POINT('',(-4.11,4.02098076211353,4.)); -#54857=CARTESIAN_POINT('',(-4.19,4.02098076211353,4.)); -#54858=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,4.)); -#54859=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,4.)); -#54860=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,4.)); -#54861=CARTESIAN_POINT('',(-4.095,4.17643593539449,4.)); -#54862=CARTESIAN_POINT('',(-4.175,4.17643593539449,4.)); -#54863=CARTESIAN_POINT('',(-4.175,4.17643593539449,4.)); -#54864=CARTESIAN_POINT('',(-4.175,7.085,4.)); -#54865=CARTESIAN_POINT('',(-4.245,7.085,4.)); -#54866=CARTESIAN_POINT('',(-4.245,7.155,4.)); -#54867=CARTESIAN_POINT('',(-3.755,7.19,4.)); -#54868=CARTESIAN_POINT('',(-4.245,7.19,4.)); -#54869=CARTESIAN_POINT('',(-4.28,7.19,4.)); -#54870=CARTESIAN_POINT('',(-4.28,7.19,4.)); -#54871=CARTESIAN_POINT('',(-4.28,7.5374,4.)); -#54872=CARTESIAN_POINT('',(-4.4,7.5374,4.)); -#54873=CARTESIAN_POINT('',(-4.4,7.5374,4.)); -#54874=CARTESIAN_POINT('',(-4.52,7.5374,4.)); -#54875=CARTESIAN_POINT('',(-4.52,7.5374,4.)); -#54876=CARTESIAN_POINT('',(-4.52,7.19,4.)); -#54877=CARTESIAN_POINT('',(-4.555,7.085,4.)); -#54878=CARTESIAN_POINT('',(-4.625,7.085,4.)); -#54879=CARTESIAN_POINT('',(-4.555,7.155,4.)); -#54880=CARTESIAN_POINT('',(-4.625,7.085,4.)); -#54881=CARTESIAN_POINT('',(-4.625,4.17643593539449,4.)); -#54882=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,4.)); -#54883=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,4.)); -#54884=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,4.)); -#54885=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,4.)); -#54886=CARTESIAN_POINT('',(-4.61,4.02098076211353,4.)); -#54887=CARTESIAN_POINT('',(-4.69,4.02098076211353,4.)); -#54888=CARTESIAN_POINT('',(-4.69,4.02098076211353,4.)); -#54889=CARTESIAN_POINT('',(-4.91,1.05,4.)); -#54890=CARTESIAN_POINT('',(-4.91,4.02098076211353,4.)); -#54891=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,4.)); -#54892=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,4.)); -#54893=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,4.)); -#54894=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,4.)); -#54895=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,4.)); -#54896=CARTESIAN_POINT('',(-4.975,4.17643593539449,4.)); -#54897=CARTESIAN_POINT('',(-4.975,4.17643593539449,4.)); -#54898=CARTESIAN_POINT('',(-4.975,7.085,4.)); -#54899=CARTESIAN_POINT('',(-5.045,7.085,4.)); -#54900=CARTESIAN_POINT('',(-5.045,7.155,4.)); -#54901=CARTESIAN_POINT('',(-4.555,7.19,4.)); -#54902=CARTESIAN_POINT('',(-5.045,7.19,4.)); -#54903=CARTESIAN_POINT('',(-5.08,7.19,4.)); -#54904=CARTESIAN_POINT('',(-5.08,7.19,4.)); -#54905=CARTESIAN_POINT('',(-5.08,7.5374,4.)); -#54906=CARTESIAN_POINT('',(-5.2,7.5374,4.)); -#54907=CARTESIAN_POINT('',(-5.2,7.5374,4.)); -#54908=CARTESIAN_POINT('',(-5.32,7.5374,4.)); -#54909=CARTESIAN_POINT('',(-5.32,7.5374,4.)); -#54910=CARTESIAN_POINT('',(-5.32,7.19,4.)); -#54911=CARTESIAN_POINT('',(-5.355,7.085,4.)); -#54912=CARTESIAN_POINT('',(-5.425,7.085,4.)); -#54913=CARTESIAN_POINT('',(-5.355,7.155,4.)); -#54914=CARTESIAN_POINT('',(-5.425,7.085,4.)); -#54915=CARTESIAN_POINT('',(-5.425,4.17643593539449,4.)); -#54916=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,4.)); -#54917=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,4.)); -#54918=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,4.)); -#54919=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,4.)); -#54920=CARTESIAN_POINT('',(-5.41,4.02098076211353,4.)); -#54921=CARTESIAN_POINT('',(-5.49,4.02098076211353,4.)); -#54922=CARTESIAN_POINT('',(-5.49,4.02098076211353,4.)); -#54923=CARTESIAN_POINT('',(-5.71,1.05,4.)); -#54924=CARTESIAN_POINT('',(-5.71,4.02098076211353,4.)); -#54925=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,4.)); -#54926=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,4.)); -#54927=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,4.)); -#54928=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,4.)); -#54929=CARTESIAN_POINT('',(-5.695,4.17643593539449,4.)); -#54930=CARTESIAN_POINT('',(-5.775,4.17643593539449,4.)); -#54931=CARTESIAN_POINT('',(-5.775,4.17643593539449,4.)); -#54932=CARTESIAN_POINT('',(-5.775,7.085,4.)); -#54933=CARTESIAN_POINT('',(-5.845,7.085,4.)); -#54934=CARTESIAN_POINT('',(-5.845,7.155,4.)); -#54935=CARTESIAN_POINT('',(-5.355,7.19,4.)); -#54936=CARTESIAN_POINT('',(-5.845,7.19,4.)); -#54937=CARTESIAN_POINT('',(-5.88,7.19,4.)); -#54938=CARTESIAN_POINT('',(-5.88,7.19,4.)); -#54939=CARTESIAN_POINT('',(-5.88,7.5374,4.)); -#54940=CARTESIAN_POINT('',(-6.,7.5374,4.)); -#54941=CARTESIAN_POINT('',(-6.,7.5374,4.)); -#54942=CARTESIAN_POINT('',(-6.12,7.5374,4.)); -#54943=CARTESIAN_POINT('',(-6.12,7.5374,4.)); -#54944=CARTESIAN_POINT('',(-6.12,7.19,4.)); -#54945=CARTESIAN_POINT('',(-6.155,7.085,4.)); -#54946=CARTESIAN_POINT('',(-6.225,7.085,4.)); -#54947=CARTESIAN_POINT('',(-6.155,7.155,4.)); -#54948=CARTESIAN_POINT('',(-6.225,7.085,4.)); -#54949=CARTESIAN_POINT('',(-6.225,4.17643593539449,4.)); -#54950=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,4.)); -#54951=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,4.)); -#54952=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,4.)); -#54953=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,4.)); -#54954=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,4.)); -#54955=CARTESIAN_POINT('',(-6.29,4.02098076211353,4.)); -#54956=CARTESIAN_POINT('',(-6.29,4.02098076211353,4.)); -#54957=CARTESIAN_POINT('',(-6.51,1.05,4.)); -#54958=CARTESIAN_POINT('',(-6.51,4.02098076211353,4.)); -#54959=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,4.)); -#54960=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,4.)); -#54961=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,4.)); -#54962=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,4.)); -#54963=CARTESIAN_POINT('',(-6.495,4.17643593539449,4.)); -#54964=CARTESIAN_POINT('',(-6.575,4.17643593539449,4.)); -#54965=CARTESIAN_POINT('',(-6.575,4.17643593539449,4.)); -#54966=CARTESIAN_POINT('',(-6.575,7.085,4.)); -#54967=CARTESIAN_POINT('',(-6.645,7.085,4.)); -#54968=CARTESIAN_POINT('',(-6.645,7.155,4.)); -#54969=CARTESIAN_POINT('',(-6.155,7.19,4.)); -#54970=CARTESIAN_POINT('',(-6.645,7.19,4.)); -#54971=CARTESIAN_POINT('',(-6.68,7.19,4.)); -#54972=CARTESIAN_POINT('',(-6.68,7.19,4.)); -#54973=CARTESIAN_POINT('',(-6.68,7.5374,4.)); -#54974=CARTESIAN_POINT('',(-6.8,7.5374,4.)); -#54975=CARTESIAN_POINT('',(-6.8,7.5374,4.)); -#54976=CARTESIAN_POINT('',(-6.92,7.5374,4.)); -#54977=CARTESIAN_POINT('',(-6.92,7.5374,4.)); -#54978=CARTESIAN_POINT('',(-6.92,7.19,4.)); -#54979=CARTESIAN_POINT('',(-6.955,7.085,4.)); -#54980=CARTESIAN_POINT('',(-7.025,7.085,4.)); -#54981=CARTESIAN_POINT('',(-6.955,7.155,4.)); -#54982=CARTESIAN_POINT('',(-7.025,7.085,4.)); -#54983=CARTESIAN_POINT('',(-7.025,4.17643593539449,4.)); -#54984=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,4.)); -#54985=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,4.)); -#54986=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,4.)); -#54987=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,4.)); -#54988=CARTESIAN_POINT('',(-7.01,4.02098076211353,4.)); -#54989=CARTESIAN_POINT('',(-7.09,4.02098076211353,4.)); -#54990=CARTESIAN_POINT('',(-7.09,4.02098076211353,4.)); -#54991=CARTESIAN_POINT('',(-7.31,1.05,4.)); -#54992=CARTESIAN_POINT('',(-7.31,4.02098076211353,4.)); -#54993=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,4.)); -#54994=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,4.)); -#54995=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,4.)); -#54996=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,4.)); -#54997=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,4.)); -#54998=CARTESIAN_POINT('',(-7.375,4.17643593539449,4.)); -#54999=CARTESIAN_POINT('',(-7.375,4.17643593539449,4.)); -#55000=CARTESIAN_POINT('',(-7.375,7.085,4.)); -#55001=CARTESIAN_POINT('',(-7.445,7.085,4.)); -#55002=CARTESIAN_POINT('',(-7.445,7.155,4.)); -#55003=CARTESIAN_POINT('',(-6.955,7.19,4.)); -#55004=CARTESIAN_POINT('',(-7.445,7.19,4.)); -#55005=CARTESIAN_POINT('',(-7.48,7.19,4.)); -#55006=CARTESIAN_POINT('',(-7.48,7.19,4.)); -#55007=CARTESIAN_POINT('',(-7.48,7.5374,4.)); -#55008=CARTESIAN_POINT('',(-7.6,7.5374,4.)); -#55009=CARTESIAN_POINT('',(7.445,7.085,4.)); -#55010=CARTESIAN_POINT('',(7.375,7.085,4.)); -#55011=CARTESIAN_POINT('',(7.445,7.155,4.)); -#55012=CARTESIAN_POINT('',(7.375,7.085,4.)); -#55013=CARTESIAN_POINT('',(7.375,4.17643593539449,4.)); -#55014=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,4.)); -#55015=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,4.)); -#55016=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,4.)); -#55017=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,4.)); -#55018=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,4.)); -#55019=CARTESIAN_POINT('',(7.31,4.02098076211353,4.)); -#55020=CARTESIAN_POINT('',(7.31,4.02098076211353,4.)); -#55021=CARTESIAN_POINT('',(7.09,1.05,4.)); -#55022=CARTESIAN_POINT('',(7.09,4.02098076211353,4.)); -#55023=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,4.)); -#55024=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,4.)); -#55025=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,4.)); -#55026=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,4.)); -#55027=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,4.)); -#55028=CARTESIAN_POINT('',(7.025,4.17643593539449,4.)); -#55029=CARTESIAN_POINT('',(7.025,4.17643593539449,4.)); -#55030=CARTESIAN_POINT('',(7.025,7.085,4.)); -#55031=CARTESIAN_POINT('',(6.955,7.085,4.)); -#55032=CARTESIAN_POINT('',(6.955,7.155,4.)); -#55033=CARTESIAN_POINT('',(7.48,7.5374,4.)); -#55034=CARTESIAN_POINT('',(7.48,7.19,4.)); -#55035=CARTESIAN_POINT('',(7.48,7.5374,4.)); -#55036=CARTESIAN_POINT('',(7.445,7.19,4.)); -#55037=CARTESIAN_POINT('',(6.955,7.19,4.)); -#55038=CARTESIAN_POINT('',(6.92,7.19,4.)); -#55039=CARTESIAN_POINT('',(6.92,7.19,4.)); -#55040=CARTESIAN_POINT('',(6.92,7.5374,4.)); -#55041=CARTESIAN_POINT('',(7.6,7.5374,4.)); -#55042=CARTESIAN_POINT('',(6.8,7.5374,4.)); -#55043=CARTESIAN_POINT('',(6.645,7.085,4.)); -#55044=CARTESIAN_POINT('',(6.575,7.085,4.)); -#55045=CARTESIAN_POINT('',(6.645,7.155,4.)); -#55046=CARTESIAN_POINT('',(6.575,7.085,4.)); -#55047=CARTESIAN_POINT('',(6.575,4.17643593539449,4.)); -#55048=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,4.)); -#55049=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,4.)); -#55050=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,4.)); -#55051=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,4.)); -#55052=CARTESIAN_POINT('',(6.59,4.02098076211353,4.)); -#55053=CARTESIAN_POINT('',(6.51,4.02098076211353,4.)); -#55054=CARTESIAN_POINT('',(6.51,4.02098076211353,4.)); -#55055=CARTESIAN_POINT('',(6.29,1.05,4.)); -#55056=CARTESIAN_POINT('',(6.29,4.02098076211353,4.)); -#55057=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,4.)); -#55058=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,4.)); -#55059=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,4.)); -#55060=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,4.)); -#55061=CARTESIAN_POINT('',(6.305,4.17643593539449,4.)); -#55062=CARTESIAN_POINT('',(6.225,4.17643593539449,4.)); -#55063=CARTESIAN_POINT('',(6.225,4.17643593539449,4.)); -#55064=CARTESIAN_POINT('',(6.225,7.085,4.)); -#55065=CARTESIAN_POINT('',(6.155,7.085,4.)); -#55066=CARTESIAN_POINT('',(6.155,7.155,4.)); -#55067=CARTESIAN_POINT('',(6.68,7.5374,4.)); -#55068=CARTESIAN_POINT('',(6.68,7.19,4.)); -#55069=CARTESIAN_POINT('',(6.68,7.5374,4.)); -#55070=CARTESIAN_POINT('',(6.645,7.19,4.)); -#55071=CARTESIAN_POINT('',(6.155,7.19,4.)); -#55072=CARTESIAN_POINT('',(6.12,7.19,4.)); -#55073=CARTESIAN_POINT('',(6.12,7.19,4.)); -#55074=CARTESIAN_POINT('',(6.12,7.5374,4.)); -#55075=CARTESIAN_POINT('',(6.8,7.5374,4.)); -#55076=CARTESIAN_POINT('',(6.,7.5374,4.)); -#55077=CARTESIAN_POINT('',(5.845,7.085,4.)); -#55078=CARTESIAN_POINT('',(5.775,7.085,4.)); -#55079=CARTESIAN_POINT('',(5.845,7.155,4.)); -#55080=CARTESIAN_POINT('',(5.775,7.085,4.)); -#55081=CARTESIAN_POINT('',(5.775,4.17643593539449,4.)); -#55082=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,4.)); -#55083=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,4.)); -#55084=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,4.)); -#55085=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,4.)); -#55086=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,4.)); -#55087=CARTESIAN_POINT('',(5.71,4.02098076211353,4.)); -#55088=CARTESIAN_POINT('',(5.71,4.02098076211353,4.)); -#55089=CARTESIAN_POINT('',(5.49,1.05,4.)); -#55090=CARTESIAN_POINT('',(5.49,4.02098076211353,4.)); -#55091=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,4.)); -#55092=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,4.)); -#55093=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,4.)); -#55094=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,4.)); -#55095=CARTESIAN_POINT('',(5.505,4.17643593539449,4.)); -#55096=CARTESIAN_POINT('',(5.425,4.17643593539449,4.)); -#55097=CARTESIAN_POINT('',(5.425,4.17643593539449,4.)); -#55098=CARTESIAN_POINT('',(5.425,7.085,4.)); -#55099=CARTESIAN_POINT('',(5.355,7.085,4.)); -#55100=CARTESIAN_POINT('',(5.355,7.155,4.)); -#55101=CARTESIAN_POINT('',(5.88,7.5374,4.)); -#55102=CARTESIAN_POINT('',(5.88,7.19,4.)); -#55103=CARTESIAN_POINT('',(5.88,7.5374,4.)); -#55104=CARTESIAN_POINT('',(5.845,7.19,4.)); -#55105=CARTESIAN_POINT('',(5.355,7.19,4.)); -#55106=CARTESIAN_POINT('',(5.32,7.19,4.)); -#55107=CARTESIAN_POINT('',(5.32,7.19,4.)); -#55108=CARTESIAN_POINT('',(5.32,7.5374,4.)); -#55109=CARTESIAN_POINT('',(6.,7.5374,4.)); -#55110=CARTESIAN_POINT('',(5.2,7.5374,4.)); -#55111=CARTESIAN_POINT('',(5.045,7.085,4.)); -#55112=CARTESIAN_POINT('',(4.975,7.085,4.)); -#55113=CARTESIAN_POINT('',(5.045,7.155,4.)); -#55114=CARTESIAN_POINT('',(4.975,7.085,4.)); -#55115=CARTESIAN_POINT('',(4.975,4.17643593539449,4.)); -#55116=CARTESIAN_POINT('',(4.895,4.17643593539449,4.)); -#55117=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,4.)); -#55118=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,4.)); -#55119=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,4.)); -#55120=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,4.)); -#55121=CARTESIAN_POINT('',(4.91,4.02098076211353,4.)); -#55122=CARTESIAN_POINT('',(4.91,4.02098076211353,4.)); -#55123=CARTESIAN_POINT('',(4.69,1.05,4.)); -#55124=CARTESIAN_POINT('',(4.69,4.02098076211353,4.)); -#55125=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,4.)); -#55126=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,4.)); -#55127=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,4.)); -#55128=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,4.)); -#55129=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,4.)); -#55130=CARTESIAN_POINT('',(4.625,4.17643593539449,4.)); -#55131=CARTESIAN_POINT('',(4.625,4.17643593539449,4.)); -#55132=CARTESIAN_POINT('',(4.625,7.085,4.)); -#55133=CARTESIAN_POINT('',(4.555,7.085,4.)); -#55134=CARTESIAN_POINT('',(4.555,7.155,4.)); -#55135=CARTESIAN_POINT('',(5.08,7.5374,4.)); -#55136=CARTESIAN_POINT('',(5.08,7.19,4.)); -#55137=CARTESIAN_POINT('',(5.08,7.5374,4.)); -#55138=CARTESIAN_POINT('',(5.045,7.19,4.)); -#55139=CARTESIAN_POINT('',(4.555,7.19,4.)); -#55140=CARTESIAN_POINT('',(4.52,7.19,4.)); -#55141=CARTESIAN_POINT('',(4.52,7.19,4.)); -#55142=CARTESIAN_POINT('',(4.52,7.5374,4.)); -#55143=CARTESIAN_POINT('',(5.2,7.5374,4.)); -#55144=CARTESIAN_POINT('',(4.4,7.5374,4.)); -#55145=CARTESIAN_POINT('',(4.245,7.085,4.)); -#55146=CARTESIAN_POINT('',(4.175,7.085,4.)); -#55147=CARTESIAN_POINT('',(4.245,7.155,4.)); -#55148=CARTESIAN_POINT('',(4.175,7.085,4.)); -#55149=CARTESIAN_POINT('',(4.175,4.17643593539449,4.)); -#55150=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,4.)); -#55151=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,4.)); -#55152=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,4.)); -#55153=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,4.)); -#55154=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,4.)); -#55155=CARTESIAN_POINT('',(4.11,4.02098076211353,4.)); -#55156=CARTESIAN_POINT('',(4.11,4.02098076211353,4.)); -#55157=CARTESIAN_POINT('',(3.89,1.05,4.)); -#55158=CARTESIAN_POINT('',(3.89,4.02098076211353,4.)); -#55159=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,4.)); -#55160=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,4.)); -#55161=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,4.)); -#55162=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,4.)); -#55163=CARTESIAN_POINT('',(3.905,4.17643593539449,4.)); -#55164=CARTESIAN_POINT('',(3.825,4.17643593539449,4.)); -#55165=CARTESIAN_POINT('',(3.825,4.17643593539449,4.)); -#55166=CARTESIAN_POINT('',(3.825,7.085,4.)); -#55167=CARTESIAN_POINT('',(3.755,7.085,4.)); -#55168=CARTESIAN_POINT('',(3.755,7.155,4.)); -#55169=CARTESIAN_POINT('',(4.28,7.5374,4.)); -#55170=CARTESIAN_POINT('',(4.28,7.19,4.)); -#55171=CARTESIAN_POINT('',(4.28,7.5374,4.)); -#55172=CARTESIAN_POINT('',(4.245,7.19,4.)); -#55173=CARTESIAN_POINT('',(3.755,7.19,4.)); -#55174=CARTESIAN_POINT('',(3.72,7.19,4.)); -#55175=CARTESIAN_POINT('',(3.72,7.19,4.)); -#55176=CARTESIAN_POINT('',(3.72,7.5374,4.)); -#55177=CARTESIAN_POINT('',(4.4,7.5374,4.)); -#55178=CARTESIAN_POINT('',(3.6,7.5374,4.)); -#55179=CARTESIAN_POINT('',(3.445,7.085,4.)); -#55180=CARTESIAN_POINT('',(3.375,7.085,4.)); -#55181=CARTESIAN_POINT('',(3.445,7.155,4.)); -#55182=CARTESIAN_POINT('',(3.375,7.085,4.)); -#55183=CARTESIAN_POINT('',(3.375,4.17643593539449,4.)); -#55184=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,4.)); -#55185=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,4.)); -#55186=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,4.)); -#55187=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,4.)); -#55188=CARTESIAN_POINT('',(3.39,4.02098076211353,4.)); -#55189=CARTESIAN_POINT('',(3.31,4.02098076211353,4.)); -#55190=CARTESIAN_POINT('',(3.31,4.02098076211353,4.)); -#55191=CARTESIAN_POINT('',(3.09,1.05,4.)); -#55192=CARTESIAN_POINT('',(3.09,4.02098076211353,4.)); -#55193=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,4.)); -#55194=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,4.)); -#55195=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,4.)); -#55196=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,4.)); -#55197=CARTESIAN_POINT('',(3.105,4.17643593539449,4.)); -#55198=CARTESIAN_POINT('',(3.025,4.17643593539449,4.)); -#55199=CARTESIAN_POINT('',(3.025,4.17643593539449,4.)); -#55200=CARTESIAN_POINT('',(3.025,7.085,4.)); -#55201=CARTESIAN_POINT('',(2.955,7.085,4.)); -#55202=CARTESIAN_POINT('',(2.955,7.155,4.)); -#55203=CARTESIAN_POINT('',(3.48,7.5374,4.)); -#55204=CARTESIAN_POINT('',(3.48,7.19,4.)); -#55205=CARTESIAN_POINT('',(3.48,7.5374,4.)); -#55206=CARTESIAN_POINT('',(3.445,7.19,4.)); -#55207=CARTESIAN_POINT('',(2.955,7.19,4.)); -#55208=CARTESIAN_POINT('',(2.92,7.19,4.)); -#55209=CARTESIAN_POINT('',(2.92,7.19,4.)); -#55210=CARTESIAN_POINT('',(2.92,7.5374,4.)); -#55211=CARTESIAN_POINT('',(3.6,7.5374,4.)); -#55212=CARTESIAN_POINT('',(2.8,7.5374,4.)); -#55213=CARTESIAN_POINT('',(2.645,7.085,4.)); -#55214=CARTESIAN_POINT('',(2.575,7.085,4.)); -#55215=CARTESIAN_POINT('',(2.645,7.155,4.)); -#55216=CARTESIAN_POINT('',(2.575,7.085,4.)); -#55217=CARTESIAN_POINT('',(2.575,4.17643593539449,4.)); -#55218=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,4.)); -#55219=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,4.)); -#55220=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,4.)); -#55221=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,4.)); -#55222=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,4.)); -#55223=CARTESIAN_POINT('',(2.51,4.02098076211353,4.)); -#55224=CARTESIAN_POINT('',(2.51,4.02098076211353,4.)); -#55225=CARTESIAN_POINT('',(2.29,1.05,4.)); -#55226=CARTESIAN_POINT('',(2.29,4.02098076211353,4.)); -#55227=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,4.)); -#55228=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,4.)); -#55229=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,4.)); -#55230=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,4.)); -#55231=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,4.)); -#55232=CARTESIAN_POINT('',(2.225,4.17643593539449,4.)); -#55233=CARTESIAN_POINT('',(2.225,4.17643593539449,4.)); -#55234=CARTESIAN_POINT('',(2.225,7.085,4.)); -#55235=CARTESIAN_POINT('',(2.155,7.085,4.)); -#55236=CARTESIAN_POINT('',(2.155,7.155,4.)); -#55237=CARTESIAN_POINT('',(2.68,7.5374,4.)); -#55238=CARTESIAN_POINT('',(2.68,7.19,4.)); -#55239=CARTESIAN_POINT('',(2.68,7.5374,4.)); -#55240=CARTESIAN_POINT('',(2.645,7.19,4.)); -#55241=CARTESIAN_POINT('',(2.155,7.19,4.)); -#55242=CARTESIAN_POINT('',(2.12,7.19,4.)); -#55243=CARTESIAN_POINT('',(2.12,7.19,4.)); -#55244=CARTESIAN_POINT('',(2.12,7.5374,4.)); -#55245=CARTESIAN_POINT('',(2.8,7.5374,4.)); -#55246=CARTESIAN_POINT('',(2.,7.5374,4.)); -#55247=CARTESIAN_POINT('',(1.845,7.085,4.)); -#55248=CARTESIAN_POINT('',(1.775,7.085,4.)); -#55249=CARTESIAN_POINT('',(1.845,7.155,4.)); -#55250=CARTESIAN_POINT('',(1.775,7.085,4.)); -#55251=CARTESIAN_POINT('',(1.775,4.17643593539449,4.)); -#55252=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,4.)); -#55253=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,4.)); -#55254=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,4.)); -#55255=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,4.)); -#55256=CARTESIAN_POINT('',(1.79,4.02098076211353,4.)); -#55257=CARTESIAN_POINT('',(1.71,4.02098076211353,4.)); -#55258=CARTESIAN_POINT('',(1.71,4.02098076211353,4.)); -#55259=CARTESIAN_POINT('',(1.49,1.05,4.)); -#55260=CARTESIAN_POINT('',(1.49,4.02098076211353,4.)); -#55261=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,4.)); -#55262=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,4.)); -#55263=CARTESIAN_POINT('',(1.47928203230276,4.06098076211353,4.)); -#55264=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,4.)); -#55265=CARTESIAN_POINT('',(1.505,4.17643593539449,4.)); -#55266=CARTESIAN_POINT('',(1.425,4.17643593539449,4.)); -#55267=CARTESIAN_POINT('',(1.425,4.17643593539449,4.)); -#55268=CARTESIAN_POINT('',(1.425,7.085,4.)); -#55269=CARTESIAN_POINT('',(1.355,7.085,4.)); -#55270=CARTESIAN_POINT('',(1.355,7.155,4.)); -#55271=CARTESIAN_POINT('',(1.88,7.5374,4.)); -#55272=CARTESIAN_POINT('',(1.88,7.19,4.)); -#55273=CARTESIAN_POINT('',(1.88,7.5374,4.)); -#55274=CARTESIAN_POINT('',(1.845,7.19,4.)); -#55275=CARTESIAN_POINT('',(1.355,7.19,4.)); -#55276=CARTESIAN_POINT('',(1.32,7.19,4.)); -#55277=CARTESIAN_POINT('',(1.32,7.19,4.)); -#55278=CARTESIAN_POINT('',(1.32,7.5374,4.)); -#55279=CARTESIAN_POINT('',(2.,7.5374,4.)); -#55280=CARTESIAN_POINT('',(1.2,7.5374,4.)); -#55281=CARTESIAN_POINT('',(1.045,7.085,4.)); -#55282=CARTESIAN_POINT('',(0.974999999999998,7.085,4.)); -#55283=CARTESIAN_POINT('',(1.045,7.155,4.)); -#55284=CARTESIAN_POINT('',(0.974999999999999,7.085,4.)); -#55285=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,4.)); -#55286=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,4.)); -#55287=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,4.)); -#55288=CARTESIAN_POINT('',(0.964282032302754,4.13643593539449,4.)); -#55289=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,4.)); -#55290=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,4.)); -#55291=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,4.)); -#55292=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,4.)); -#55293=CARTESIAN_POINT('',(0.69,1.05,4.)); -#55294=CARTESIAN_POINT('',(0.69,4.02098076211353,4.)); -#55295=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,4.)); -#55296=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,4.)); -#55297=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,4.)); -#55298=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,4.)); -#55299=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,4.)); -#55300=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,4.)); -#55301=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,4.)); -#55302=CARTESIAN_POINT('',(0.624999999999999,7.085,4.)); -#55303=CARTESIAN_POINT('',(0.554999999999999,7.085,4.)); -#55304=CARTESIAN_POINT('',(0.554999999999999,7.155,4.)); -#55305=CARTESIAN_POINT('',(1.08,7.5374,4.)); -#55306=CARTESIAN_POINT('',(1.08,7.19,4.)); -#55307=CARTESIAN_POINT('',(1.08,7.5374,4.)); -#55308=CARTESIAN_POINT('',(1.045,7.19,4.)); -#55309=CARTESIAN_POINT('',(0.554999999999999,7.19,4.)); -#55310=CARTESIAN_POINT('',(0.52,7.19,4.)); -#55311=CARTESIAN_POINT('',(0.52,7.19,4.)); -#55312=CARTESIAN_POINT('',(0.52,7.5374,4.)); -#55313=CARTESIAN_POINT('',(1.2,7.5374,4.)); -#55314=CARTESIAN_POINT('',(0.399999999999999,7.5374,4.)); -#55315=CARTESIAN_POINT('',(0.245,7.085,4.)); -#55316=CARTESIAN_POINT('',(0.174999999999999,7.085,4.)); -#55317=CARTESIAN_POINT('',(0.244999999999999,7.155,4.)); -#55318=CARTESIAN_POINT('',(0.174999999999999,7.085,4.)); -#55319=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,4.)); -#55320=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,4.)); -#55321=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,4.)); -#55322=CARTESIAN_POINT('',(0.164282032302754,4.13643593539449,4.)); -#55323=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,4.)); -#55324=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,4.)); -#55325=CARTESIAN_POINT('',(0.11,4.02098076211353,4.)); -#55326=CARTESIAN_POINT('',(0.109999999999999,4.02098076211353,4.)); -#55327=CARTESIAN_POINT('',(-0.110000000000001,1.05,4.)); -#55328=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,4.)); -#55329=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,4.)); -#55330=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,4.)); -#55331=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,4.)); -#55332=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,4.)); -#55333=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,4.)); -#55334=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,4.)); -#55335=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,4.)); -#55336=CARTESIAN_POINT('',(-0.175000000000001,7.085,4.)); -#55337=CARTESIAN_POINT('',(-0.245000000000001,7.085,4.)); -#55338=CARTESIAN_POINT('',(-0.245000000000001,7.155,4.)); -#55339=CARTESIAN_POINT('',(0.279999999999999,7.5374,4.)); -#55340=CARTESIAN_POINT('',(0.279999999999999,7.19,4.)); -#55341=CARTESIAN_POINT('',(0.279999999999999,7.5374,4.)); -#55342=CARTESIAN_POINT('',(0.245,7.19,4.)); -#55343=CARTESIAN_POINT('',(-0.245000000000001,7.19,4.)); -#55344=CARTESIAN_POINT('',(-0.28,7.19,4.)); -#55345=CARTESIAN_POINT('',(-0.28,7.19,4.)); -#55346=CARTESIAN_POINT('',(-0.28,7.5374,4.)); -#55347=CARTESIAN_POINT('',(0.399999999999999,7.5374,4.)); -#55348=CARTESIAN_POINT('',(-0.400000000000001,7.5374,4.)); -#55349=CARTESIAN_POINT('',(-0.555,7.085,4.)); -#55350=CARTESIAN_POINT('',(-0.625000000000001,7.085,4.)); -#55351=CARTESIAN_POINT('',(-0.555000000000001,7.155,4.)); -#55352=CARTESIAN_POINT('',(-0.625000000000001,7.085,4.)); -#55353=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,4.)); -#55354=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,4.)); -#55355=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,4.)); -#55356=CARTESIAN_POINT('',(-0.635717967697246,4.13643593539449,4.)); -#55357=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,4.)); -#55358=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,4.)); -#55359=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,4.)); -#55360=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,4.)); -#55361=CARTESIAN_POINT('',(-0.910000000000001,1.05,4.)); -#55362=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,4.)); -#55363=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,4.)); -#55364=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,4.)); -#55365=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,4.)); -#55366=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,4.)); -#55367=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,4.)); -#55368=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,4.)); -#55369=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,4.)); -#55370=CARTESIAN_POINT('',(-0.975000000000001,7.085,4.)); -#55371=CARTESIAN_POINT('',(-1.045,7.085,4.)); -#55372=CARTESIAN_POINT('',(-1.045,7.155,4.)); -#55373=CARTESIAN_POINT('',(-0.520000000000001,7.5374,4.)); -#55374=CARTESIAN_POINT('',(-0.520000000000001,7.19,4.)); -#55375=CARTESIAN_POINT('',(-0.520000000000001,7.5374,4.)); -#55376=CARTESIAN_POINT('',(-0.555000000000001,7.19,4.)); -#55377=CARTESIAN_POINT('',(-1.045,7.19,4.)); -#55378=CARTESIAN_POINT('',(-1.08,7.19,4.)); -#55379=CARTESIAN_POINT('',(-1.08,7.19,4.)); -#55380=CARTESIAN_POINT('',(-1.08,7.5374,4.)); -#55381=CARTESIAN_POINT('',(-0.400000000000001,7.5374,4.)); -#55382=CARTESIAN_POINT('',(-1.2,7.5374,4.)); -#55383=CARTESIAN_POINT('',(-1.355,7.085,4.)); -#55384=CARTESIAN_POINT('',(-1.425,7.085,4.)); -#55385=CARTESIAN_POINT('',(-1.355,7.155,4.)); -#55386=CARTESIAN_POINT('',(-1.425,7.085,4.)); -#55387=CARTESIAN_POINT('',(-1.425,4.17643593539449,4.)); -#55388=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,4.)); -#55389=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,4.)); -#55390=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,4.)); -#55391=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,4.)); -#55392=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,4.)); -#55393=CARTESIAN_POINT('',(-1.49,4.02098076211353,4.)); -#55394=CARTESIAN_POINT('',(-1.49,4.02098076211353,4.)); -#55395=CARTESIAN_POINT('',(-1.71,1.05,4.)); -#55396=CARTESIAN_POINT('',(-1.71,4.02098076211353,4.)); -#55397=CARTESIAN_POINT('',(-1.79,4.02098076211353,4.)); -#55398=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,4.)); -#55399=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,4.)); -#55400=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,4.)); -#55401=CARTESIAN_POINT('',(-1.695,4.17643593539449,4.)); -#55402=CARTESIAN_POINT('',(-1.775,4.17643593539449,4.)); -#55403=CARTESIAN_POINT('',(-1.775,4.17643593539449,4.)); -#55404=CARTESIAN_POINT('',(-1.775,7.085,4.)); -#55405=CARTESIAN_POINT('',(-1.845,7.085,4.)); -#55406=CARTESIAN_POINT('',(-1.845,7.155,4.)); -#55407=CARTESIAN_POINT('',(-1.32,7.5374,4.)); -#55408=CARTESIAN_POINT('',(-1.32,7.19,4.)); -#55409=CARTESIAN_POINT('',(-1.32,7.5374,4.)); -#55410=CARTESIAN_POINT('',(-1.355,7.19,4.)); -#55411=CARTESIAN_POINT('',(-1.845,7.19,4.)); -#55412=CARTESIAN_POINT('',(-1.88,7.19,4.)); -#55413=CARTESIAN_POINT('',(-1.88,7.19,4.)); -#55414=CARTESIAN_POINT('',(-1.88,7.5374,4.)); -#55415=CARTESIAN_POINT('',(-1.2,7.5374,4.)); -#55416=CARTESIAN_POINT('',(-2.,7.5374,4.)); -#55417=CARTESIAN_POINT('',(-2.155,7.085,4.)); -#55418=CARTESIAN_POINT('',(-2.225,7.085,4.)); -#55419=CARTESIAN_POINT('',(-2.155,7.155,4.)); -#55420=CARTESIAN_POINT('',(-2.225,7.085,4.)); -#55421=CARTESIAN_POINT('',(-2.225,4.17643593539449,4.)); -#55422=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,4.)); -#55423=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,4.)); -#55424=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,4.)); -#55425=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,4.)); -#55426=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,4.)); -#55427=CARTESIAN_POINT('',(-2.29,4.02098076211353,4.)); -#55428=CARTESIAN_POINT('',(-2.29,4.02098076211353,4.)); -#55429=CARTESIAN_POINT('',(-2.51,1.05,4.)); -#55430=CARTESIAN_POINT('',(-2.51,4.02098076211353,4.)); -#55431=CARTESIAN_POINT('',(-2.59,4.02098076211353,4.)); -#55432=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,4.)); -#55433=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,4.)); -#55434=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,4.)); -#55435=CARTESIAN_POINT('',(-2.495,4.17643593539449,4.)); -#55436=CARTESIAN_POINT('',(-2.575,4.17643593539449,4.)); -#55437=CARTESIAN_POINT('',(-2.575,4.17643593539449,4.)); -#55438=CARTESIAN_POINT('',(-2.575,7.085,4.)); -#55439=CARTESIAN_POINT('',(-2.645,7.085,4.)); -#55440=CARTESIAN_POINT('',(-2.645,7.155,4.)); -#55441=CARTESIAN_POINT('',(-2.12,7.5374,4.)); -#55442=CARTESIAN_POINT('',(-2.12,7.19,4.)); -#55443=CARTESIAN_POINT('',(-2.12,7.5374,4.)); -#55444=CARTESIAN_POINT('',(-2.155,7.19,4.)); -#55445=CARTESIAN_POINT('',(-2.645,7.19,4.)); -#55446=CARTESIAN_POINT('',(-2.68,7.19,4.)); -#55447=CARTESIAN_POINT('',(-2.68,7.19,4.)); -#55448=CARTESIAN_POINT('',(-2.68,7.5374,4.)); -#55449=CARTESIAN_POINT('',(-2.,7.5374,4.)); -#55450=CARTESIAN_POINT('',(-2.8,7.5374,4.)); -#55451=CARTESIAN_POINT('',(-2.955,7.085,4.)); -#55452=CARTESIAN_POINT('',(-3.025,7.085,4.)); -#55453=CARTESIAN_POINT('',(-2.955,7.155,4.)); -#55454=CARTESIAN_POINT('',(-3.025,7.085,4.)); -#55455=CARTESIAN_POINT('',(-3.025,4.17643593539449,4.)); -#55456=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,4.)); -#55457=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,4.)); -#55458=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,4.)); -#55459=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,4.)); -#55460=CARTESIAN_POINT('',(-3.01,4.02098076211353,4.)); -#55461=CARTESIAN_POINT('',(-3.09,4.02098076211353,4.)); -#55462=CARTESIAN_POINT('',(-3.09,4.02098076211353,4.)); -#55463=CARTESIAN_POINT('',(-3.31,1.05,4.)); -#55464=CARTESIAN_POINT('',(-3.31,4.02098076211353,4.)); -#55465=CARTESIAN_POINT('',(-3.39,4.02098076211353,4.)); -#55466=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,4.)); -#55467=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,4.)); -#55468=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,4.)); -#55469=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,4.)); -#55470=CARTESIAN_POINT('',(-3.375,4.17643593539449,4.)); -#55471=CARTESIAN_POINT('',(-3.375,4.17643593539449,4.)); -#55472=CARTESIAN_POINT('',(-3.375,7.085,4.)); -#55473=CARTESIAN_POINT('',(-3.445,7.085,4.)); -#55474=CARTESIAN_POINT('',(-3.445,7.155,4.)); -#55475=CARTESIAN_POINT('',(-2.92,7.5374,4.)); -#55476=CARTESIAN_POINT('',(-2.92,7.19,4.)); -#55477=CARTESIAN_POINT('',(-2.92,7.5374,4.)); -#55478=CARTESIAN_POINT('',(-2.955,7.19,4.)); -#55479=CARTESIAN_POINT('',(-3.445,7.19,4.)); -#55480=CARTESIAN_POINT('',(-3.48,7.19,4.)); -#55481=CARTESIAN_POINT('',(-3.48,7.19,4.)); -#55482=CARTESIAN_POINT('',(-3.48,7.5374,4.)); -#55483=CARTESIAN_POINT('',(-2.8,7.5374,4.)); -#55484=CARTESIAN_POINT('',(-3.6,7.5374,4.)); -#55485=CARTESIAN_POINT('',(-3.755,7.085,4.)); -#55486=CARTESIAN_POINT('',(-3.825,7.085,4.)); -#55487=CARTESIAN_POINT('',(-3.755,7.155,4.)); -#55488=CARTESIAN_POINT('',(-3.825,7.085,4.)); -#55489=CARTESIAN_POINT('',(-3.825,4.17643593539449,4.)); -#55490=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,4.)); -#55491=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,4.)); -#55492=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,4.)); -#55493=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,4.)); -#55494=CARTESIAN_POINT('',(-3.81,4.02098076211353,4.)); -#55495=CARTESIAN_POINT('',(-3.89,4.02098076211353,4.)); -#55496=CARTESIAN_POINT('',(-3.89,4.02098076211353,4.)); -#55497=CARTESIAN_POINT('',(-4.11,1.05,4.)); -#55498=CARTESIAN_POINT('',(-4.11,4.02098076211353,4.)); -#55499=CARTESIAN_POINT('',(-4.19,4.02098076211353,4.)); -#55500=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,4.)); -#55501=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,4.)); -#55502=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,4.)); -#55503=CARTESIAN_POINT('',(-4.095,4.17643593539449,4.)); -#55504=CARTESIAN_POINT('',(-4.175,4.17643593539449,4.)); -#55505=CARTESIAN_POINT('',(-4.175,4.17643593539449,4.)); -#55506=CARTESIAN_POINT('',(-4.175,7.085,4.)); -#55507=CARTESIAN_POINT('',(-4.245,7.085,4.)); -#55508=CARTESIAN_POINT('',(-4.245,7.155,4.)); -#55509=CARTESIAN_POINT('',(-3.72,7.5374,4.)); -#55510=CARTESIAN_POINT('',(-3.72,7.19,4.)); -#55511=CARTESIAN_POINT('',(-3.72,7.5374,4.)); -#55512=CARTESIAN_POINT('',(-3.755,7.19,4.)); -#55513=CARTESIAN_POINT('',(-4.245,7.19,4.)); -#55514=CARTESIAN_POINT('',(-4.28,7.19,4.)); -#55515=CARTESIAN_POINT('',(-4.28,7.19,4.)); -#55516=CARTESIAN_POINT('',(-4.28,7.5374,4.)); -#55517=CARTESIAN_POINT('',(-3.6,7.5374,4.)); -#55518=CARTESIAN_POINT('',(-4.4,7.5374,4.)); -#55519=CARTESIAN_POINT('',(-4.555,7.085,4.)); -#55520=CARTESIAN_POINT('',(-4.625,7.085,4.)); -#55521=CARTESIAN_POINT('',(-4.555,7.155,4.)); -#55522=CARTESIAN_POINT('',(-4.625,7.085,4.)); -#55523=CARTESIAN_POINT('',(-4.625,4.17643593539449,4.)); -#55524=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,4.)); -#55525=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,4.)); -#55526=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,4.)); -#55527=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,4.)); -#55528=CARTESIAN_POINT('',(-4.61,4.02098076211353,4.)); -#55529=CARTESIAN_POINT('',(-4.69,4.02098076211353,4.)); -#55530=CARTESIAN_POINT('',(-4.69,4.02098076211353,4.)); -#55531=CARTESIAN_POINT('',(-4.91,1.05,4.)); -#55532=CARTESIAN_POINT('',(-4.91,4.02098076211353,4.)); -#55533=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,4.)); -#55534=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,4.)); -#55535=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,4.)); -#55536=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,4.)); -#55537=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,4.)); -#55538=CARTESIAN_POINT('',(-4.975,4.17643593539449,4.)); -#55539=CARTESIAN_POINT('',(-4.975,4.17643593539449,4.)); -#55540=CARTESIAN_POINT('',(-4.975,7.085,4.)); -#55541=CARTESIAN_POINT('',(-5.045,7.085,4.)); -#55542=CARTESIAN_POINT('',(-5.045,7.155,4.)); -#55543=CARTESIAN_POINT('',(-4.52,7.5374,4.)); -#55544=CARTESIAN_POINT('',(-4.52,7.19,4.)); -#55545=CARTESIAN_POINT('',(-4.52,7.5374,4.)); -#55546=CARTESIAN_POINT('',(-4.555,7.19,4.)); -#55547=CARTESIAN_POINT('',(-5.045,7.19,4.)); -#55548=CARTESIAN_POINT('',(-5.08,7.19,4.)); -#55549=CARTESIAN_POINT('',(-5.08,7.19,4.)); -#55550=CARTESIAN_POINT('',(-5.08,7.5374,4.)); -#55551=CARTESIAN_POINT('',(-4.4,7.5374,4.)); -#55552=CARTESIAN_POINT('',(-5.2,7.5374,4.)); -#55553=CARTESIAN_POINT('',(-5.355,7.085,4.)); -#55554=CARTESIAN_POINT('',(-5.425,7.085,4.)); -#55555=CARTESIAN_POINT('',(-5.355,7.155,4.)); -#55556=CARTESIAN_POINT('',(-5.425,7.085,4.)); -#55557=CARTESIAN_POINT('',(-5.425,4.17643593539449,4.)); -#55558=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,4.)); -#55559=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,4.)); -#55560=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,4.)); -#55561=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,4.)); -#55562=CARTESIAN_POINT('',(-5.41,4.02098076211353,4.)); -#55563=CARTESIAN_POINT('',(-5.49,4.02098076211353,4.)); -#55564=CARTESIAN_POINT('',(-5.49,4.02098076211353,4.)); -#55565=CARTESIAN_POINT('',(-5.71,1.05,4.)); -#55566=CARTESIAN_POINT('',(-5.71,4.02098076211353,4.)); -#55567=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,4.)); -#55568=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,4.)); -#55569=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,4.)); -#55570=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,4.)); -#55571=CARTESIAN_POINT('',(-5.695,4.17643593539449,4.)); -#55572=CARTESIAN_POINT('',(-5.775,4.17643593539449,4.)); -#55573=CARTESIAN_POINT('',(-5.775,4.17643593539449,4.)); -#55574=CARTESIAN_POINT('',(-5.775,7.085,4.)); -#55575=CARTESIAN_POINT('',(-5.845,7.085,4.)); -#55576=CARTESIAN_POINT('',(-5.845,7.155,4.)); -#55577=CARTESIAN_POINT('',(-5.32,7.5374,4.)); -#55578=CARTESIAN_POINT('',(-5.32,7.19,4.)); -#55579=CARTESIAN_POINT('',(-5.32,7.5374,4.)); -#55580=CARTESIAN_POINT('',(-5.355,7.19,4.)); -#55581=CARTESIAN_POINT('',(-5.845,7.19,4.)); -#55582=CARTESIAN_POINT('',(-5.88,7.19,4.)); -#55583=CARTESIAN_POINT('',(-5.88,7.19,4.)); -#55584=CARTESIAN_POINT('',(-5.88,7.5374,4.)); -#55585=CARTESIAN_POINT('',(-5.2,7.5374,4.)); -#55586=CARTESIAN_POINT('',(-6.,7.5374,4.)); -#55587=CARTESIAN_POINT('',(-6.155,7.085,4.)); -#55588=CARTESIAN_POINT('',(-6.225,7.085,4.)); -#55589=CARTESIAN_POINT('',(-6.155,7.155,4.)); -#55590=CARTESIAN_POINT('',(-6.225,7.085,4.)); -#55591=CARTESIAN_POINT('',(-6.225,4.17643593539449,4.)); -#55592=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,4.)); -#55593=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,4.)); -#55594=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,4.)); -#55595=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,4.)); -#55596=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,4.)); -#55597=CARTESIAN_POINT('',(-6.29,4.02098076211353,4.)); -#55598=CARTESIAN_POINT('',(-6.29,4.02098076211353,4.)); -#55599=CARTESIAN_POINT('',(-6.51,1.05,4.)); -#55600=CARTESIAN_POINT('',(-6.51,4.02098076211353,4.)); -#55601=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,4.)); -#55602=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,4.)); -#55603=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,4.)); -#55604=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,4.)); -#55605=CARTESIAN_POINT('',(-6.495,4.17643593539449,4.)); -#55606=CARTESIAN_POINT('',(-6.575,4.17643593539449,4.)); -#55607=CARTESIAN_POINT('',(-6.575,4.17643593539449,4.)); -#55608=CARTESIAN_POINT('',(-6.575,7.085,4.)); -#55609=CARTESIAN_POINT('',(-6.645,7.085,4.)); -#55610=CARTESIAN_POINT('',(-6.645,7.155,4.)); -#55611=CARTESIAN_POINT('',(-6.12,7.5374,4.)); -#55612=CARTESIAN_POINT('',(-6.12,7.19,4.)); -#55613=CARTESIAN_POINT('',(-6.12,7.5374,4.)); -#55614=CARTESIAN_POINT('',(-6.155,7.19,4.)); -#55615=CARTESIAN_POINT('',(-6.645,7.19,4.)); -#55616=CARTESIAN_POINT('',(-6.68,7.19,4.)); -#55617=CARTESIAN_POINT('',(-6.68,7.19,4.)); -#55618=CARTESIAN_POINT('',(-6.68,7.5374,4.)); -#55619=CARTESIAN_POINT('',(-6.,7.5374,4.)); -#55620=CARTESIAN_POINT('',(-6.8,7.5374,4.)); -#55621=CARTESIAN_POINT('',(-6.955,7.085,4.)); -#55622=CARTESIAN_POINT('',(-7.025,7.085,4.)); -#55623=CARTESIAN_POINT('',(-6.955,7.155,4.)); -#55624=CARTESIAN_POINT('',(-7.025,7.085,4.)); -#55625=CARTESIAN_POINT('',(-7.025,4.17643593539449,4.)); -#55626=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,4.)); -#55627=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,4.)); -#55628=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,4.)); -#55629=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,4.)); -#55630=CARTESIAN_POINT('',(-7.01,4.02098076211353,4.)); -#55631=CARTESIAN_POINT('',(-7.09,4.02098076211353,4.)); -#55632=CARTESIAN_POINT('',(-7.09,4.02098076211353,4.)); -#55633=CARTESIAN_POINT('',(-7.31,1.05,4.)); -#55634=CARTESIAN_POINT('',(-7.31,4.02098076211353,4.)); -#55635=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,4.)); -#55636=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,4.)); -#55637=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,4.)); -#55638=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,4.)); -#55639=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,4.)); -#55640=CARTESIAN_POINT('',(-7.375,4.17643593539449,4.)); -#55641=CARTESIAN_POINT('',(-7.375,4.17643593539449,4.)); -#55642=CARTESIAN_POINT('',(-7.375,7.085,4.)); -#55643=CARTESIAN_POINT('',(-7.445,7.085,4.)); -#55644=CARTESIAN_POINT('',(-7.445,7.155,4.)); -#55645=CARTESIAN_POINT('',(-6.92,7.5374,4.)); -#55646=CARTESIAN_POINT('',(-6.92,7.19,4.)); -#55647=CARTESIAN_POINT('',(-6.92,7.5374,4.)); -#55648=CARTESIAN_POINT('',(-6.955,7.19,4.)); -#55649=CARTESIAN_POINT('',(-7.445,7.19,4.)); -#55650=CARTESIAN_POINT('',(-7.48,7.19,4.)); -#55651=CARTESIAN_POINT('',(-7.48,7.19,4.)); -#55652=CARTESIAN_POINT('',(-7.48,7.5374,4.)); -#55653=CARTESIAN_POINT('',(-6.8,7.5374,4.)); -#55654=CARTESIAN_POINT('',(-7.6,7.5374,4.)); -#55655=CARTESIAN_POINT('',(0.,1.05,0.)); -#55656=CARTESIAN_POINT('',(0.,1.05,0.)); -#55657=CARTESIAN_POINT('',(9.89,1.,-3.21)); -#55658=CARTESIAN_POINT('',(0.,-0.195,-1.22464679914735E-16)); -#55659=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#33381, -#33382,#33383),#55660); -#55660=( -GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#55664)) -GLOBAL_UNIT_ASSIGNED_CONTEXT((#55670,#55669,#55668)) -REPRESENTATION_CONTEXT('ERM8-020-05.0-L-DV-TR', -'TOP_LEVEL_ASSEMBLY_PART') -); -#55661=( -GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#55665)) -GLOBAL_UNIT_ASSIGNED_CONTEXT((#55670,#55669,#55668)) -REPRESENTATION_CONTEXT('ERM8-020-05.0-DVT','COMPONENT_PART') -); -#55662=( -GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#55666)) -GLOBAL_UNIT_ASSIGNED_CONTEXT((#55670,#55669,#55668)) -REPRESENTATION_CONTEXT('ERM8-020-05.0-DV_pin','COMPONENT_PART') -); -#55663=( -GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#55667)) -GLOBAL_UNIT_ASSIGNED_CONTEXT((#55670,#55669,#55668)) -REPRESENTATION_CONTEXT('ERM8-020-05.0-DV3_pin','COMPONENT_PART') -); -#55664=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-5),#55670, -'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); -#55665=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-5),#55670, -'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); -#55666=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-5),#55670, -'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); -#55667=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-5),#55670, -'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); -#55668=( -NAMED_UNIT(*) -SI_UNIT($,.STERADIAN.) -SOLID_ANGLE_UNIT() -); -#55669=( -NAMED_UNIT(*) -PLANE_ANGLE_UNIT() -SI_UNIT($,.RADIAN.) -); -#55670=( -LENGTH_UNIT() -NAMED_UNIT(*) -SI_UNIT(.MILLI.,.METRE.) -); -#55671=PRODUCT_DEFINITION_SHAPE('','',#55678); -#55672=PRODUCT_DEFINITION_SHAPE('','',#55679); -#55673=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#341); -#55674=PRODUCT_DEFINITION_SHAPE('','',#55680); -#55675=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#342); -#55676=PRODUCT_DEFINITION_SHAPE('','',#55681); -#55677=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#343); -#55678=PRODUCT_DEFINITION('','',#55686,#55682); -#55679=PRODUCT_DEFINITION('','',#55687,#55683); -#55680=PRODUCT_DEFINITION('','',#55688,#55684); -#55681=PRODUCT_DEFINITION('','',#55689,#55685); -#55682=PRODUCT_DEFINITION_CONTEXT('',#55707,'design'); -#55683=PRODUCT_DEFINITION_CONTEXT('',#55707,'design'); -#55684=PRODUCT_DEFINITION_CONTEXT('',#55707,'design'); -#55685=PRODUCT_DEFINITION_CONTEXT('',#55707,'design'); -#55686=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#55694, - .NOT_KNOWN.); -#55687=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#55695, - .NOT_KNOWN.); -#55688=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#55696, - .NOT_KNOWN.); -#55689=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#55697, - .NOT_KNOWN.); -#55690=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#55694)); -#55691=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#55695)); -#55692=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#55696)); -#55693=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#55697)); -#55694=PRODUCT('ERM8-020-05.0-L-DV-TR','ERM8-020-05.0-L-DV-TR', -'ERM8-020-05.0-L-DV-TR',(#55702)); -#55695=PRODUCT('ERM8-020-05.0-DVT','ERM8-020-05.0-DVT', -'ERM8-020-05.0-DVT',(#55703)); -#55696=PRODUCT('ERM8-020-05.0-DV_pin','ERM8-020-05.0-DV_pin', -'ERM8-020-05.0-DV_pin',(#55704)); -#55697=PRODUCT('ERM8-020-05.0-DV3_pin','ERM8-020-05.0-DV3_pin', -'ERM8-020-05.0-DV3_pin',(#55705)); -#55698=PRODUCT_CATEGORY('',''); -#55699=PRODUCT_CATEGORY('',''); -#55700=PRODUCT_CATEGORY('',''); -#55701=PRODUCT_CATEGORY('',''); -#55702=PRODUCT_CONTEXT('',#55707,'mechanical'); -#55703=PRODUCT_CONTEXT('',#55707,'mechanical'); -#55704=PRODUCT_CONTEXT('',#55707,'mechanical'); -#55705=PRODUCT_CONTEXT('',#55707,'mechanical'); -#55706=APPLICATION_PROTOCOL_DEFINITION('international standard', -'automotive_design',2010,#55707); -#55707=APPLICATION_CONTEXT( -'core data for automotive mechanical design processes'); -ENDSEC; -END-ISO-10303-21; +ISO-10303-21; +HEADER; +/* Generated by software containing ST-Developer + * from STEP Tools, Inc. (www.steptools.com) + */ +/* OPTION: using custom renumber hook */ + +FILE_DESCRIPTION( +/* description */ ('STEP AP214'), +/* implementation_level */ '2;1'); + +FILE_NAME( +/* name */ 'ERM8-020-05.0-L-DV-TR', +/* time_stamp */ '2026-02-06T07:35:56+01:00', +/* author */ ('License CC BY-ND 4.0'), +/* organization */ ('CADENAS'), +/* preprocessor_version */ 'ST-DEVELOPER v20', +/* originating_system */ 'PARTsolutions', +/* authorisation */ ' '); + +FILE_SCHEMA (('AUTOMOTIVE_DESIGN {1 0 10303 214 3 1 1}')); +ENDSEC; + +DATA; +#10=PROPERTY_DEFINITION_REPRESENTATION(#14,#12); +#11=PROPERTY_DEFINITION_REPRESENTATION(#15,#13); +#12=REPRESENTATION('',(#16),#55660); +#13=REPRESENTATION('',(#17),#55660); +#14=PROPERTY_DEFINITION('pmi validation property','',#55671); +#15=PROPERTY_DEFINITION('pmi validation property','',#55671); +#16=VALUE_REPRESENTATION_ITEM('number of annotations',COUNT_MEASURE(0.)); +#17=VALUE_REPRESENTATION_ITEM('number of views',COUNT_MEASURE(0.)); +#18=ELLIPSE('',#35062,0.138564064605511,0.12); +#19=ELLIPSE('',#35063,0.138564064605511,0.12); +#20=ELLIPSE('',#35065,0.13856406460551,0.119999999999999); +#21=ELLIPSE('',#35066,0.13856406460551,0.119999999999999); +#22=ELLIPSE('',#35068,0.138564064605511,0.12); +#23=ELLIPSE('',#35069,0.138564064605511,0.12); +#24=ELLIPSE('',#35071,0.138564064605511,0.12); +#25=ELLIPSE('',#35072,0.138564064605511,0.12); +#26=ELLIPSE('',#35074,0.138564064605511,0.12); +#27=ELLIPSE('',#35075,0.138564064605511,0.12); +#28=ELLIPSE('',#35077,0.138564064605511,0.12); +#29=ELLIPSE('',#35078,0.138564064605511,0.12); +#30=ELLIPSE('',#35080,0.13856406460551,0.12); +#31=ELLIPSE('',#35081,0.13856406460551,0.12); +#32=ELLIPSE('',#35083,0.138564064605511,0.12); +#33=ELLIPSE('',#35084,0.138564064605511,0.12); +#34=ELLIPSE('',#35086,0.138564064605511,0.12); +#35=ELLIPSE('',#35087,0.138564064605511,0.12); +#36=ELLIPSE('',#35089,0.138564064605511,0.12); +#37=ELLIPSE('',#35090,0.138564064605511,0.12); +#38=ELLIPSE('',#35092,0.138564064605511,0.12); +#39=ELLIPSE('',#35093,0.138564064605511,0.12); +#40=ELLIPSE('',#35095,0.138564064605511,0.12); +#41=ELLIPSE('',#35096,0.138564064605511,0.12); +#42=ELLIPSE('',#35098,0.138564064605511,0.12); +#43=ELLIPSE('',#35099,0.138564064605511,0.12); +#44=ELLIPSE('',#35101,0.138564064605511,0.12); +#45=ELLIPSE('',#35102,0.138564064605511,0.12); +#46=ELLIPSE('',#35104,0.138564064605511,0.12); +#47=ELLIPSE('',#35105,0.138564064605511,0.12); +#48=ELLIPSE('',#35107,0.138564064605511,0.12); +#49=ELLIPSE('',#35108,0.138564064605511,0.12); +#50=ELLIPSE('',#35110,0.138564064605511,0.12); +#51=ELLIPSE('',#35111,0.138564064605511,0.12); +#52=ELLIPSE('',#35113,0.138564064605511,0.12); +#53=ELLIPSE('',#35114,0.138564064605511,0.12); +#54=ELLIPSE('',#35116,0.13856406460551,0.119999999999999); +#55=ELLIPSE('',#35117,0.13856406460551,0.119999999999999); +#56=ELLIPSE('',#35239,0.138564064605511,0.12); +#57=ELLIPSE('',#35240,0.138564064605511,0.12); +#58=ELLIPSE('',#35242,0.13856406460551,0.119999999999999); +#59=ELLIPSE('',#35243,0.13856406460551,0.119999999999999); +#60=ELLIPSE('',#35245,0.138564064605511,0.12); +#61=ELLIPSE('',#35246,0.138564064605511,0.12); +#62=ELLIPSE('',#35248,0.138564064605511,0.12); +#63=ELLIPSE('',#35249,0.138564064605511,0.12); +#64=ELLIPSE('',#35251,0.138564064605511,0.12); +#65=ELLIPSE('',#35252,0.138564064605511,0.12); +#66=ELLIPSE('',#35254,0.138564064605511,0.12); +#67=ELLIPSE('',#35255,0.138564064605511,0.12); +#68=ELLIPSE('',#35257,0.13856406460551,0.12); +#69=ELLIPSE('',#35258,0.13856406460551,0.12); +#70=ELLIPSE('',#35260,0.138564064605511,0.12); +#71=ELLIPSE('',#35261,0.138564064605511,0.12); +#72=ELLIPSE('',#35263,0.138564064605511,0.12); +#73=ELLIPSE('',#35264,0.138564064605511,0.12); +#74=ELLIPSE('',#35266,0.138564064605511,0.12); +#75=ELLIPSE('',#35267,0.138564064605511,0.12); +#76=ELLIPSE('',#35269,0.138564064605511,0.12); +#77=ELLIPSE('',#35270,0.138564064605511,0.12); +#78=ELLIPSE('',#35272,0.138564064605511,0.12); +#79=ELLIPSE('',#35273,0.138564064605511,0.12); +#80=ELLIPSE('',#35275,0.138564064605511,0.12); +#81=ELLIPSE('',#35276,0.138564064605511,0.12); +#82=ELLIPSE('',#35278,0.138564064605511,0.12); +#83=ELLIPSE('',#35279,0.138564064605511,0.12); +#84=ELLIPSE('',#35281,0.138564064605511,0.12); +#85=ELLIPSE('',#35282,0.138564064605511,0.12); +#86=ELLIPSE('',#35284,0.138564064605511,0.12); +#87=ELLIPSE('',#35285,0.138564064605511,0.12); +#88=ELLIPSE('',#35287,0.138564064605511,0.12); +#89=ELLIPSE('',#35288,0.138564064605511,0.12); +#90=ELLIPSE('',#35290,0.138564064605511,0.12); +#91=ELLIPSE('',#35291,0.138564064605511,0.12); +#92=ELLIPSE('',#35293,0.13856406460551,0.119999999999999); +#93=ELLIPSE('',#35294,0.13856406460551,0.119999999999999); +#94=ELLIPSE('',#35358,0.138564064605511,0.12); +#95=ELLIPSE('',#35359,0.138564064605511,0.12); +#96=ELLIPSE('',#35361,0.138564064605511,0.12); +#97=ELLIPSE('',#35362,0.138564064605511,0.12); +#98=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52338,#52339,#52340,#52341), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); +#99=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52345,#52346,#52347,#52348), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#100=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52352,#52353,#52354,#52355), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971945),.UNSPECIFIED.); +#101=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52359,#52360,#52361,#52362), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500616E-5),.UNSPECIFIED.); +#102=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52364,#52365,#52366,#52367), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#103=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52371,#52372,#52373,#52374), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416208),.UNSPECIFIED.); +#104=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52378,#52379,#52380,#52381), + .UNSPECIFIED.,.F.,.F.,(4,4),(4.33680868994202E-19,0.000274222294971944), + .UNSPECIFIED.); +#105=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52385,#52386,#52387,#52388), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500623E-5),.UNSPECIFIED.); +#106=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52390,#52391,#52392,#52393), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373297E-5),.UNSPECIFIED.); +#107=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52397,#52398,#52399,#52400), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#108=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52404,#52405,#52406,#52407), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#109=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52411,#52412,#52413,#52414), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500625E-5),.UNSPECIFIED.); +#110=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52416,#52417,#52418,#52419), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#111=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52423,#52424,#52425,#52426), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#112=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52430,#52431,#52432,#52433), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971945),.UNSPECIFIED.); +#113=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52437,#52438,#52439,#52440), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500616E-5),.UNSPECIFIED.); +#114=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52442,#52443,#52444,#52445), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#115=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52449,#52450,#52451,#52452), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#116=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52456,#52457,#52458,#52459), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#117=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52463,#52464,#52465,#52466), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500625E-5),.UNSPECIFIED.); +#118=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52468,#52469,#52470,#52471), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732967E-5),.UNSPECIFIED.); +#119=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52475,#52476,#52477,#52478), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#120=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52482,#52483,#52484,#52485), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), + .UNSPECIFIED.); +#121=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52489,#52490,#52491,#52492), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500619E-5),.UNSPECIFIED.); +#122=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52494,#52495,#52496,#52497), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#123=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52501,#52502,#52503,#52504), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#124=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52508,#52509,#52510,#52511), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971945), + .UNSPECIFIED.); +#125=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52515,#52516,#52517,#52518), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500619E-5),.UNSPECIFIED.); +#126=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52520,#52521,#52522,#52523), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#127=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52527,#52528,#52529,#52530), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#128=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52534,#52535,#52536,#52537), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), + .UNSPECIFIED.); +#129=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52541,#52542,#52543,#52544), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,5.47023897500626E-5), + .UNSPECIFIED.); +#130=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52546,#52547,#52548,#52549), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732966E-5),.UNSPECIFIED.); +#131=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52553,#52554,#52555,#52556), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#132=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52560,#52561,#52562,#52563), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), + .UNSPECIFIED.); +#133=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52567,#52568,#52569,#52570), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,5.47023897500623E-5), + .UNSPECIFIED.); +#134=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52572,#52573,#52574,#52575), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#135=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52579,#52580,#52581,#52582), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#136=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52586,#52587,#52588,#52589), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.23514003834094E-19,0.000274222294971944), + .UNSPECIFIED.); +#137=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52593,#52594,#52595,#52596), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500627E-5),.UNSPECIFIED.); +#138=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52598,#52599,#52600,#52601), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732967E-5),.UNSPECIFIED.); +#139=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52605,#52606,#52607,#52608), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#140=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52612,#52613,#52614,#52615), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.23514003834094E-19,0.000274222294971944), + .UNSPECIFIED.); +#141=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52619,#52620,#52621,#52622), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500626E-5),.UNSPECIFIED.); +#142=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52624,#52625,#52626,#52627), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732966E-5),.UNSPECIFIED.); +#143=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52631,#52632,#52633,#52634), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#144=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52638,#52639,#52640,#52641), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), + .UNSPECIFIED.); +#145=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52645,#52646,#52647,#52648), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500628E-5),.UNSPECIFIED.); +#146=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52650,#52651,#52652,#52653), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732962E-5),.UNSPECIFIED.); +#147=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52657,#52658,#52659,#52660), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#148=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52664,#52665,#52666,#52667), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), + .UNSPECIFIED.); +#149=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52671,#52672,#52673,#52674), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500619E-5),.UNSPECIFIED.); +#150=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52676,#52677,#52678,#52679), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#151=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52683,#52684,#52685,#52686), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#152=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52690,#52691,#52692,#52693), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), + .UNSPECIFIED.); +#153=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52697,#52698,#52699,#52700), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500624E-5),.UNSPECIFIED.); +#154=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52702,#52703,#52704,#52705), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732964E-5),.UNSPECIFIED.); +#155=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52709,#52710,#52711,#52712), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#156=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52716,#52717,#52718,#52719), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971944), + .UNSPECIFIED.); +#157=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52723,#52724,#52725,#52726), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500623E-5),.UNSPECIFIED.); +#158=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52728,#52729,#52730,#52731), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732954E-5),.UNSPECIFIED.); +#159=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52735,#52736,#52737,#52738), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#160=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52742,#52743,#52744,#52745), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#161=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52749,#52750,#52751,#52752), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500623E-5),.UNSPECIFIED.); +#162=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52754,#52755,#52756,#52757), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#163=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52761,#52762,#52763,#52764), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#164=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52768,#52769,#52770,#52771), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); +#165=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52775,#52776,#52777,#52778), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500616E-5),.UNSPECIFIED.); +#166=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52780,#52781,#52782,#52783), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373297E-5),.UNSPECIFIED.); +#167=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52787,#52788,#52789,#52790), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#168=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52794,#52795,#52796,#52797), + .UNSPECIFIED.,.F.,.F.,(4,4),(4.33680868994202E-19,0.000274222294971944), + .UNSPECIFIED.); +#169=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52801,#52802,#52803,#52804), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500625E-5),.UNSPECIFIED.); +#170=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52806,#52807,#52808,#52809), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#171=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52813,#52814,#52815,#52816), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#172=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52820,#52821,#52822,#52823), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#173=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52827,#52828,#52829,#52830), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500623E-5),.UNSPECIFIED.); +#174=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52832,#52833,#52834,#52835), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#175=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52839,#52840,#52841,#52842), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#176=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52846,#52847,#52848,#52849), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#177=B_SPLINE_CURVE_WITH_KNOTS('',3,(#52853,#52854,#52855,#52856), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47023897500618E-5),.UNSPECIFIED.); +#178=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53050,#53051,#53052,#53053), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302517E-5),.UNSPECIFIED.); +#179=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53054,#53055,#53056,#53057), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193561E-5),.UNSPECIFIED.); +#180=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53063,#53064,#53065,#53066), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302523E-5),.UNSPECIFIED.); +#181=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53067,#53068,#53069,#53070), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); +#182=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53076,#53077,#53078,#53079), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302532E-5),.UNSPECIFIED.); +#183=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53080,#53081,#53082,#53083), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193569E-5),.UNSPECIFIED.); +#184=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53089,#53090,#53091,#53092), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); +#185=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53093,#53094,#53095,#53096), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193561E-5),.UNSPECIFIED.); +#186=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53102,#53103,#53104,#53105), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302523E-5),.UNSPECIFIED.); +#187=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53106,#53107,#53108,#53109), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193569E-5),.UNSPECIFIED.); +#188=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53115,#53116,#53117,#53118), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302535E-5),.UNSPECIFIED.); +#189=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53119,#53120,#53121,#53122), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193556E-5),.UNSPECIFIED.); +#190=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53128,#53129,#53130,#53131), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302525E-5),.UNSPECIFIED.); +#191=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53132,#53133,#53134,#53135), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193556E-5),.UNSPECIFIED.); +#192=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53141,#53142,#53143,#53144), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); +#193=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53145,#53146,#53147,#53148), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,5.47352015193563E-5), + .UNSPECIFIED.); +#194=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53154,#53155,#53156,#53157), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); +#195=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53158,#53159,#53160,#53161), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,5.47352015193559E-5), + .UNSPECIFIED.); +#196=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53167,#53168,#53169,#53170), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); +#197=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53171,#53172,#53173,#53174), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193563E-5),.UNSPECIFIED.); +#198=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53180,#53181,#53182,#53183), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302534E-5),.UNSPECIFIED.); +#199=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53184,#53185,#53186,#53187), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193563E-5),.UNSPECIFIED.); +#200=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53193,#53194,#53195,#53196), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); +#201=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53197,#53198,#53199,#53200), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193564E-5),.UNSPECIFIED.); +#202=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53206,#53207,#53208,#53209), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302529E-5),.UNSPECIFIED.); +#203=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53210,#53211,#53212,#53213), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193556E-5),.UNSPECIFIED.); +#204=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53219,#53220,#53221,#53222), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); +#205=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53223,#53224,#53225,#53226), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193561E-5),.UNSPECIFIED.); +#206=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53232,#53233,#53234,#53235), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302532E-5),.UNSPECIFIED.); +#207=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53236,#53237,#53238,#53239), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193566E-5),.UNSPECIFIED.); +#208=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53245,#53246,#53247,#53248), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302517E-5),.UNSPECIFIED.); +#209=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53249,#53250,#53251,#53252), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); +#210=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53258,#53259,#53260,#53261), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); +#211=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53262,#53263,#53264,#53265), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193561E-5),.UNSPECIFIED.); +#212=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53271,#53272,#53273,#53274), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302532E-5),.UNSPECIFIED.); +#213=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53275,#53276,#53277,#53278), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193569E-5),.UNSPECIFIED.); +#214=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53284,#53285,#53286,#53287), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302523E-5),.UNSPECIFIED.); +#215=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53288,#53289,#53290,#53291), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); +#216=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53298,#53299,#53300,#53301), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); +#217=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53302,#53303,#53304,#53305), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193562E-5),.UNSPECIFIED.); +#218=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53311,#53312,#53313,#53314), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193569E-5),.UNSPECIFIED.); +#219=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53322,#53323,#53324,#53325), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302516E-5),.UNSPECIFIED.); +#220=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53327,#53328,#53329,#53330), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); +#221=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53338,#53339,#53340,#53341), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); +#222=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53343,#53344,#53345,#53346), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); +#223=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53354,#53355,#53356,#53357), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302519E-5),.UNSPECIFIED.); +#224=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53359,#53360,#53361,#53362), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); +#225=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53370,#53371,#53372,#53373), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302516E-5),.UNSPECIFIED.); +#226=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53375,#53376,#53377,#53378), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); +#227=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53386,#53387,#53388,#53389), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302519E-5),.UNSPECIFIED.); +#228=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53391,#53392,#53393,#53394), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302535E-5),.UNSPECIFIED.); +#229=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53402,#53403,#53404,#53405), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4735941530251E-5),.UNSPECIFIED.); +#230=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53407,#53408,#53409,#53410), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302526E-5),.UNSPECIFIED.); +#231=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53418,#53419,#53420,#53421), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302514E-5),.UNSPECIFIED.); +#232=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53423,#53424,#53425,#53426), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); +#233=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53434,#53435,#53436,#53437), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302522E-5),.UNSPECIFIED.); +#234=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53439,#53440,#53441,#53442), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); +#235=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53450,#53451,#53452,#53453), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302518E-5),.UNSPECIFIED.); +#236=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53455,#53456,#53457,#53458), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193571E-5),.UNSPECIFIED.); +#237=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53466,#53467,#53468,#53469), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302522E-5),.UNSPECIFIED.); +#238=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53471,#53472,#53473,#53474), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302534E-5),.UNSPECIFIED.); +#239=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53482,#53483,#53484,#53485), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302522E-5),.UNSPECIFIED.); +#240=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53487,#53488,#53489,#53490), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); +#241=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53498,#53499,#53500,#53501), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302522E-5),.UNSPECIFIED.); +#242=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53503,#53504,#53505,#53506), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); +#243=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53514,#53515,#53516,#53517), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302514E-5),.UNSPECIFIED.); +#244=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53519,#53520,#53521,#53522), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302528E-5),.UNSPECIFIED.); +#245=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53530,#53531,#53532,#53533), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302521E-5),.UNSPECIFIED.); +#246=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53535,#53536,#53537,#53538), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302532E-5),.UNSPECIFIED.); +#247=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53546,#53547,#53548,#53549), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302519E-5),.UNSPECIFIED.); +#248=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53551,#53552,#53553,#53554), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193562E-5),.UNSPECIFIED.); +#249=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53562,#53563,#53564,#53565), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); +#250=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53567,#53568,#53569,#53570), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); +#251=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53578,#53579,#53580,#53581), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302516E-5),.UNSPECIFIED.); +#252=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53583,#53584,#53585,#53586), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302533E-5),.UNSPECIFIED.); +#253=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53594,#53595,#53596,#53597), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302519E-5),.UNSPECIFIED.); +#254=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53599,#53600,#53601,#53602), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); +#255=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53610,#53611,#53612,#53613), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302524E-5),.UNSPECIFIED.); +#256=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53615,#53616,#53617,#53618), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47352015193567E-5),.UNSPECIFIED.); +#257=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53626,#53627,#53628,#53629), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47359415302517E-5),.UNSPECIFIED.); +#258=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53821,#53822,#53823,#53824), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); +#259=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53826,#53827,#53828,#53829), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732952E-5),.UNSPECIFIED.); +#260=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53833,#53834,#53835,#53836), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#261=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53837,#53838,#53839,#53840), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971943), + .UNSPECIFIED.); +#262=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53844,#53845,#53846,#53847), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#263=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53849,#53850,#53851,#53852), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#264=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53856,#53857,#53858,#53859), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416207),.UNSPECIFIED.); +#265=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53860,#53861,#53862,#53863), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971945), + .UNSPECIFIED.); +#266=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53867,#53868,#53869,#53870), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373297E-5),.UNSPECIFIED.); +#267=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53872,#53873,#53874,#53875), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); +#268=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53879,#53880,#53881,#53882), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#269=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53883,#53884,#53885,#53886), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#270=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53890,#53891,#53892,#53893), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#271=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53895,#53896,#53897,#53898), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732952E-5),.UNSPECIFIED.); +#272=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53902,#53903,#53904,#53905), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#273=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53906,#53907,#53908,#53909), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971943), + .UNSPECIFIED.); +#274=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53913,#53914,#53915,#53916), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#275=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53918,#53919,#53920,#53921), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); +#276=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53925,#53926,#53927,#53928), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#277=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53929,#53930,#53931,#53932), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#278=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53936,#53937,#53938,#53939), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732967E-5),.UNSPECIFIED.); +#279=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53941,#53942,#53943,#53944), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732946E-5),.UNSPECIFIED.); +#280=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53948,#53949,#53950,#53951), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#281=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53952,#53953,#53954,#53955), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#282=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53959,#53960,#53961,#53962), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#283=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53964,#53965,#53966,#53967), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732946E-5),.UNSPECIFIED.); +#284=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53971,#53972,#53973,#53974), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#285=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53975,#53976,#53977,#53978), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#286=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53982,#53983,#53984,#53985), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#287=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53987,#53988,#53989,#53990), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732956E-5),.UNSPECIFIED.); +#288=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53994,#53995,#53996,#53997), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#289=B_SPLINE_CURVE_WITH_KNOTS('',3,(#53998,#53999,#54000,#54001), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#290=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54005,#54006,#54007,#54008), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732966E-5),.UNSPECIFIED.); +#291=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54010,#54011,#54012,#54013), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732952E-5),.UNSPECIFIED.); +#292=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54017,#54018,#54019,#54020), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#293=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54021,#54022,#54023,#54024), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); +#294=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54028,#54029,#54030,#54031), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#295=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54033,#54034,#54035,#54036), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); +#296=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54040,#54041,#54042,#54043), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#297=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54044,#54045,#54046,#54047), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); +#298=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54051,#54052,#54053,#54054), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732967E-5),.UNSPECIFIED.); +#299=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54056,#54057,#54058,#54059), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); +#300=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54063,#54064,#54065,#54066), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#301=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54067,#54068,#54069,#54070), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#302=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54074,#54075,#54076,#54077), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732966E-5),.UNSPECIFIED.); +#303=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54079,#54080,#54081,#54082), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732958E-5),.UNSPECIFIED.); +#304=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54086,#54087,#54088,#54089), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#305=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54090,#54091,#54092,#54093), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#306=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54097,#54098,#54099,#54100), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732962E-5),.UNSPECIFIED.); +#307=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54102,#54103,#54104,#54105), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732946E-5),.UNSPECIFIED.); +#308=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54109,#54110,#54111,#54112), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#309=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54113,#54114,#54115,#54116), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#310=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54120,#54121,#54122,#54123), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#311=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54125,#54126,#54127,#54128), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732953E-5),.UNSPECIFIED.); +#312=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54132,#54133,#54134,#54135), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#313=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54136,#54137,#54138,#54139), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#314=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54143,#54144,#54145,#54146), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732964E-5),.UNSPECIFIED.); +#315=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54148,#54149,#54150,#54151), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732951E-5),.UNSPECIFIED.); +#316=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54155,#54156,#54157,#54158), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#317=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54159,#54160,#54161,#54162), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); +#318=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54166,#54167,#54168,#54169), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732954E-5),.UNSPECIFIED.); +#319=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54171,#54172,#54173,#54174), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#320=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54178,#54179,#54180,#54181), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#321=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54182,#54183,#54184,#54185), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#322=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54189,#54190,#54191,#54192), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#323=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54194,#54195,#54196,#54197), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732952E-5),.UNSPECIFIED.); +#324=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54201,#54202,#54203,#54204), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416205),.UNSPECIFIED.); +#325=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54205,#54206,#54207,#54208), + .UNSPECIFIED.,.F.,.F.,(4,4),(2.16840434497101E-19,0.000274222294971943), + .UNSPECIFIED.); +#326=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54212,#54213,#54214,#54215), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373297E-5),.UNSPECIFIED.); +#327=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54217,#54218,#54219,#54220), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732955E-5),.UNSPECIFIED.); +#328=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54224,#54225,#54226,#54227), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#329=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54228,#54229,#54230,#54231), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#330=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54235,#54236,#54237,#54238), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.4702719373296E-5),.UNSPECIFIED.); +#331=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54240,#54241,#54242,#54243), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#332=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54247,#54248,#54249,#54250), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#333=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54251,#54252,#54253,#54254), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971943),.UNSPECIFIED.); +#334=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54258,#54259,#54260,#54261), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732961E-5),.UNSPECIFIED.); +#335=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54263,#54264,#54265,#54266), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,5.47027193732954E-5),.UNSPECIFIED.); +#336=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54270,#54271,#54272,#54273), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000275812301416206),.UNSPECIFIED.); +#337=B_SPLINE_CURVE_WITH_KNOTS('',3,(#54277,#54278,#54279,#54280), + .UNSPECIFIED.,.F.,.F.,(4,4),(0.,0.000274222294971944),.UNSPECIFIED.); +#338=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#344,#55673); +#339=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#345,#55675); +#340=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#346,#55677); +#341=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO1','ERM8-020-05.0-DVT', +'ERM8-020-05.0-DVT',#55678,#55679,''); +#342=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO2','ERM8-020-05.0-DV_pin', +'ERM8-020-05.0-DV_pin',#55678,#55680,''); +#343=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO3','ERM8-020-05.0-DV3_pin', +'ERM8-020-05.0-DV3_pin',#55678,#55681,''); +#344=( +REPRESENTATION_RELATIONSHIP(' ',' ',#33413,#33412) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#347) +SHAPE_REPRESENTATION_RELATIONSHIP() +); +#345=( +REPRESENTATION_RELATIONSHIP(' ',' ',#33414,#33412) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#348) +SHAPE_REPRESENTATION_RELATIONSHIP() +); +#346=( +REPRESENTATION_RELATIONSHIP(' ',' ',#33415,#33412) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#349) +SHAPE_REPRESENTATION_RELATIONSHIP() +); +#347=ITEM_DEFINED_TRANSFORMATION(' ',' ',#33416,#33902); +#348=ITEM_DEFINED_TRANSFORMATION(' ',' ',#33416,#34472); +#349=ITEM_DEFINED_TRANSFORMATION(' ',' ',#33416,#36082); +#350=SHAPE_REPRESENTATION_RELATIONSHIP('','',#33413,#353); +#351=SHAPE_REPRESENTATION_RELATIONSHIP('','',#33414,#354); +#352=SHAPE_REPRESENTATION_RELATIONSHIP('','',#33415,#355); +#353=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#33405),#55661); +#354=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#33406),#55662); +#355=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#33407),#55663); +#356=DEGENERATE_TOROIDAL_SURFACE('',#33835,0.259999999999998,0.400000000000003, + .T.); +#357=CYLINDRICAL_SURFACE('',#33769,0.35); +#358=CYLINDRICAL_SURFACE('',#33772,0.35); +#359=CYLINDRICAL_SURFACE('',#33775,0.35); +#360=CYLINDRICAL_SURFACE('',#33778,0.35); +#361=CYLINDRICAL_SURFACE('',#33781,0.35); +#362=CYLINDRICAL_SURFACE('',#33784,0.35); +#363=CYLINDRICAL_SURFACE('',#33787,0.35); +#364=CYLINDRICAL_SURFACE('',#33790,0.35); +#365=CYLINDRICAL_SURFACE('',#33793,0.35); +#366=CYLINDRICAL_SURFACE('',#33796,0.35); +#367=CYLINDRICAL_SURFACE('',#33799,0.35); +#368=CYLINDRICAL_SURFACE('',#33802,0.35); +#369=CYLINDRICAL_SURFACE('',#33805,0.35); +#370=CYLINDRICAL_SURFACE('',#33808,0.35); +#371=CYLINDRICAL_SURFACE('',#33811,0.35); +#372=CYLINDRICAL_SURFACE('',#33814,0.35); +#373=CYLINDRICAL_SURFACE('',#33817,0.35); +#374=CYLINDRICAL_SURFACE('',#33820,0.35); +#375=CYLINDRICAL_SURFACE('',#33823,0.35); +#376=CYLINDRICAL_SURFACE('',#33824,0.35); +#377=CYLINDRICAL_SURFACE('',#33833,0.660000000000001); +#378=CYLINDRICAL_SURFACE('',#33839,0.200000000000006); +#379=CYLINDRICAL_SURFACE('',#33842,0.2); +#380=CYLINDRICAL_SURFACE('',#33845,0.200000000000004); +#381=CYLINDRICAL_SURFACE('',#33848,0.2); +#382=CYLINDRICAL_SURFACE('',#33852,0.200000000000001); +#383=CYLINDRICAL_SURFACE('',#33854,0.166665999999988); +#384=CYLINDRICAL_SURFACE('',#33856,1.05); +#385=CYLINDRICAL_SURFACE('',#33858,0.16666599999998); +#386=CYLINDRICAL_SURFACE('',#33860,0.200000000000003); +#387=CYLINDRICAL_SURFACE('',#33863,0.200000000000001); +#388=CYLINDRICAL_SURFACE('',#33869,0.499999999999999); +#389=CYLINDRICAL_SURFACE('',#33871,0.250000000000003); +#390=CYLINDRICAL_SURFACE('',#33873,1.05); +#391=CYLINDRICAL_SURFACE('',#33875,0.249999999999985); +#392=CYLINDRICAL_SURFACE('',#33877,0.500000000000003); +#393=CYLINDRICAL_SURFACE('',#33880,0.699999999999999); +#394=CYLINDRICAL_SURFACE('',#33883,0.700000000000001); +#395=CYLINDRICAL_SURFACE('',#33891,0.199999999999998); +#396=CYLINDRICAL_SURFACE('',#33893,0.199999999999999); +#397=CYLINDRICAL_SURFACE('',#33900,0.199999999999999); +#398=CYLINDRICAL_SURFACE('',#33901,0.199999999999997); +#399=CYLINDRICAL_SURFACE('',#34010,0.6524); +#400=CYLINDRICAL_SURFACE('',#34013,0.6524); +#401=CYLINDRICAL_SURFACE('',#34016,0.6524); +#402=CYLINDRICAL_SURFACE('',#34019,0.6524); +#403=CYLINDRICAL_SURFACE('',#34022,0.6524); +#404=CYLINDRICAL_SURFACE('',#34025,0.6524); +#405=CYLINDRICAL_SURFACE('',#34028,0.6524); +#406=CYLINDRICAL_SURFACE('',#34031,0.6524); +#407=CYLINDRICAL_SURFACE('',#34034,0.6524); +#408=CYLINDRICAL_SURFACE('',#34037,0.6524); +#409=CYLINDRICAL_SURFACE('',#34040,0.6524); +#410=CYLINDRICAL_SURFACE('',#34043,0.6524); +#411=CYLINDRICAL_SURFACE('',#34046,0.6524); +#412=CYLINDRICAL_SURFACE('',#34049,0.6524); +#413=CYLINDRICAL_SURFACE('',#34052,0.6524); +#414=CYLINDRICAL_SURFACE('',#34055,0.6524); +#415=CYLINDRICAL_SURFACE('',#34058,0.6524); +#416=CYLINDRICAL_SURFACE('',#34061,0.6524); +#417=CYLINDRICAL_SURFACE('',#34064,0.6524); +#418=CYLINDRICAL_SURFACE('',#34067,0.6524); +#419=CYLINDRICAL_SURFACE('',#34070,0.6524); +#420=CYLINDRICAL_SURFACE('',#34073,0.6524); +#421=CYLINDRICAL_SURFACE('',#34076,0.6524); +#422=CYLINDRICAL_SURFACE('',#34079,0.6524); +#423=CYLINDRICAL_SURFACE('',#34082,0.6524); +#424=CYLINDRICAL_SURFACE('',#34085,0.6524); +#425=CYLINDRICAL_SURFACE('',#34088,0.6524); +#426=CYLINDRICAL_SURFACE('',#34091,0.6524); +#427=CYLINDRICAL_SURFACE('',#34094,0.6524); +#428=CYLINDRICAL_SURFACE('',#34097,0.6524); +#429=CYLINDRICAL_SURFACE('',#34100,0.6524); +#430=CYLINDRICAL_SURFACE('',#34103,0.6524); +#431=CYLINDRICAL_SURFACE('',#34106,0.6524); +#432=CYLINDRICAL_SURFACE('',#34109,0.6524); +#433=CYLINDRICAL_SURFACE('',#34112,0.6524); +#434=CYLINDRICAL_SURFACE('',#34115,0.6524); +#435=CYLINDRICAL_SURFACE('',#34118,0.6524); +#436=CYLINDRICAL_SURFACE('',#34121,0.6524); +#437=CYLINDRICAL_SURFACE('',#34143,0.499999999999999); +#438=CYLINDRICAL_SURFACE('',#34146,0.499999999999999); +#439=CYLINDRICAL_SURFACE('',#34149,0.499999999999999); +#440=CYLINDRICAL_SURFACE('',#34152,0.499999999999999); +#441=CYLINDRICAL_SURFACE('',#34155,0.499999999999999); +#442=CYLINDRICAL_SURFACE('',#34158,0.499999999999999); +#443=CYLINDRICAL_SURFACE('',#34161,0.499999999999999); +#444=CYLINDRICAL_SURFACE('',#34164,0.499999999999999); +#445=CYLINDRICAL_SURFACE('',#34167,0.499999999999999); +#446=CYLINDRICAL_SURFACE('',#34170,0.499999999999999); +#447=CYLINDRICAL_SURFACE('',#34173,0.499999999999999); +#448=CYLINDRICAL_SURFACE('',#34176,0.499999999999999); +#449=CYLINDRICAL_SURFACE('',#34179,0.499999999999999); +#450=CYLINDRICAL_SURFACE('',#34182,0.499999999999999); +#451=CYLINDRICAL_SURFACE('',#34185,0.499999999999999); +#452=CYLINDRICAL_SURFACE('',#34188,0.499999999999999); +#453=CYLINDRICAL_SURFACE('',#34191,0.499999999999999); +#454=CYLINDRICAL_SURFACE('',#34194,0.499999999999999); +#455=CYLINDRICAL_SURFACE('',#34197,0.499999999999999); +#456=CYLINDRICAL_SURFACE('',#34200,0.499999999999999); +#457=CYLINDRICAL_SURFACE('',#34203,0.499999999999999); +#458=CYLINDRICAL_SURFACE('',#34206,0.499999999999999); +#459=CYLINDRICAL_SURFACE('',#34209,0.499999999999999); +#460=CYLINDRICAL_SURFACE('',#34212,0.499999999999999); +#461=CYLINDRICAL_SURFACE('',#34215,0.499999999999999); +#462=CYLINDRICAL_SURFACE('',#34218,0.499999999999999); +#463=CYLINDRICAL_SURFACE('',#34221,0.499999999999999); +#464=CYLINDRICAL_SURFACE('',#34224,0.499999999999999); +#465=CYLINDRICAL_SURFACE('',#34227,0.499999999999999); +#466=CYLINDRICAL_SURFACE('',#34230,0.499999999999999); +#467=CYLINDRICAL_SURFACE('',#34233,0.499999999999999); +#468=CYLINDRICAL_SURFACE('',#34236,0.499999999999999); +#469=CYLINDRICAL_SURFACE('',#34239,0.499999999999999); +#470=CYLINDRICAL_SURFACE('',#34242,0.499999999999999); +#471=CYLINDRICAL_SURFACE('',#34245,0.499999999999999); +#472=CYLINDRICAL_SURFACE('',#34248,0.499999999999999); +#473=CYLINDRICAL_SURFACE('',#34251,0.499999999999999); +#474=CYLINDRICAL_SURFACE('',#34254,0.499999999999999); +#475=CYLINDRICAL_SURFACE('',#34258,0.6524); +#476=CYLINDRICAL_SURFACE('',#34261,0.6524); +#477=CYLINDRICAL_SURFACE('',#34265,0.499999999999999); +#478=CYLINDRICAL_SURFACE('',#34268,0.499999999999999); +#479=CYLINDRICAL_SURFACE('',#35001,0.5024); +#480=CYLINDRICAL_SURFACE('',#35004,0.5024); +#481=CYLINDRICAL_SURFACE('',#35007,0.5024); +#482=CYLINDRICAL_SURFACE('',#35010,0.5024); +#483=CYLINDRICAL_SURFACE('',#35013,0.5024); +#484=CYLINDRICAL_SURFACE('',#35016,0.5024); +#485=CYLINDRICAL_SURFACE('',#35019,0.5024); +#486=CYLINDRICAL_SURFACE('',#35022,0.5024); +#487=CYLINDRICAL_SURFACE('',#35025,0.5024); +#488=CYLINDRICAL_SURFACE('',#35028,0.5024); +#489=CYLINDRICAL_SURFACE('',#35031,0.5024); +#490=CYLINDRICAL_SURFACE('',#35034,0.5024); +#491=CYLINDRICAL_SURFACE('',#35037,0.5024); +#492=CYLINDRICAL_SURFACE('',#35040,0.5024); +#493=CYLINDRICAL_SURFACE('',#35043,0.5024); +#494=CYLINDRICAL_SURFACE('',#35046,0.5024); +#495=CYLINDRICAL_SURFACE('',#35049,0.5024); +#496=CYLINDRICAL_SURFACE('',#35052,0.5024); +#497=CYLINDRICAL_SURFACE('',#35055,0.5024); +#498=CYLINDRICAL_SURFACE('',#35058,0.5024); +#499=CYLINDRICAL_SURFACE('',#35118,0.337399999999999); +#500=CYLINDRICAL_SURFACE('',#35121,0.337399999999999); +#501=CYLINDRICAL_SURFACE('',#35124,0.337399999999999); +#502=CYLINDRICAL_SURFACE('',#35127,0.337399999999999); +#503=CYLINDRICAL_SURFACE('',#35130,0.337399999999999); +#504=CYLINDRICAL_SURFACE('',#35133,0.337399999999999); +#505=CYLINDRICAL_SURFACE('',#35136,0.337399999999999); +#506=CYLINDRICAL_SURFACE('',#35139,0.337399999999999); +#507=CYLINDRICAL_SURFACE('',#35142,0.337399999999999); +#508=CYLINDRICAL_SURFACE('',#35145,0.337399999999999); +#509=CYLINDRICAL_SURFACE('',#35148,0.337399999999999); +#510=CYLINDRICAL_SURFACE('',#35151,0.337399999999999); +#511=CYLINDRICAL_SURFACE('',#35154,0.337399999999999); +#512=CYLINDRICAL_SURFACE('',#35157,0.337399999999999); +#513=CYLINDRICAL_SURFACE('',#35160,0.337399999999999); +#514=CYLINDRICAL_SURFACE('',#35163,0.337399999999999); +#515=CYLINDRICAL_SURFACE('',#35166,0.337399999999999); +#516=CYLINDRICAL_SURFACE('',#35169,0.337399999999999); +#517=CYLINDRICAL_SURFACE('',#35172,0.337399999999999); +#518=CYLINDRICAL_SURFACE('',#35175,0.337399999999999); +#519=CYLINDRICAL_SURFACE('',#35178,0.337399999999999); +#520=CYLINDRICAL_SURFACE('',#35181,0.337399999999999); +#521=CYLINDRICAL_SURFACE('',#35184,0.337399999999999); +#522=CYLINDRICAL_SURFACE('',#35187,0.337399999999999); +#523=CYLINDRICAL_SURFACE('',#35190,0.337399999999999); +#524=CYLINDRICAL_SURFACE('',#35193,0.337399999999999); +#525=CYLINDRICAL_SURFACE('',#35196,0.337399999999999); +#526=CYLINDRICAL_SURFACE('',#35199,0.337399999999999); +#527=CYLINDRICAL_SURFACE('',#35202,0.337399999999999); +#528=CYLINDRICAL_SURFACE('',#35205,0.337399999999999); +#529=CYLINDRICAL_SURFACE('',#35208,0.337399999999999); +#530=CYLINDRICAL_SURFACE('',#35211,0.337399999999999); +#531=CYLINDRICAL_SURFACE('',#35214,0.337399999999999); +#532=CYLINDRICAL_SURFACE('',#35217,0.337399999999999); +#533=CYLINDRICAL_SURFACE('',#35220,0.337399999999999); +#534=CYLINDRICAL_SURFACE('',#35223,0.337399999999999); +#535=CYLINDRICAL_SURFACE('',#35226,0.337399999999999); +#536=CYLINDRICAL_SURFACE('',#35229,0.337399999999999); +#537=CYLINDRICAL_SURFACE('',#35232,0.337399999999999); +#538=CYLINDRICAL_SURFACE('',#35235,0.337399999999999); +#539=CYLINDRICAL_SURFACE('',#35295,0.502399999999999); +#540=CYLINDRICAL_SURFACE('',#35298,0.502399999999999); +#541=CYLINDRICAL_SURFACE('',#35301,0.502399999999999); +#542=CYLINDRICAL_SURFACE('',#35304,0.502399999999999); +#543=CYLINDRICAL_SURFACE('',#35307,0.502399999999999); +#544=CYLINDRICAL_SURFACE('',#35310,0.502399999999999); +#545=CYLINDRICAL_SURFACE('',#35313,0.502399999999999); +#546=CYLINDRICAL_SURFACE('',#35316,0.502399999999999); +#547=CYLINDRICAL_SURFACE('',#35319,0.502399999999999); +#548=CYLINDRICAL_SURFACE('',#35322,0.502399999999999); +#549=CYLINDRICAL_SURFACE('',#35325,0.502399999999999); +#550=CYLINDRICAL_SURFACE('',#35328,0.502399999999999); +#551=CYLINDRICAL_SURFACE('',#35331,0.502399999999999); +#552=CYLINDRICAL_SURFACE('',#35334,0.502399999999999); +#553=CYLINDRICAL_SURFACE('',#35337,0.502399999999999); +#554=CYLINDRICAL_SURFACE('',#35340,0.502399999999999); +#555=CYLINDRICAL_SURFACE('',#35343,0.502399999999999); +#556=CYLINDRICAL_SURFACE('',#35346,0.502399999999999); +#557=CYLINDRICAL_SURFACE('',#35349,0.502399999999999); +#558=CYLINDRICAL_SURFACE('',#35352,0.502399999999999); +#559=CYLINDRICAL_SURFACE('',#35363,0.12); +#560=CYLINDRICAL_SURFACE('',#35365,0.0700000000000015); +#561=CYLINDRICAL_SURFACE('',#35367,0.080000000000021); +#562=CYLINDRICAL_SURFACE('',#35368,0.0799999999999831); +#563=CYLINDRICAL_SURFACE('',#35370,0.0349999999999986); +#564=CYLINDRICAL_SURFACE('',#35371,0.0700000000000015); +#565=CYLINDRICAL_SURFACE('',#35373,0.080000000000021); +#566=CYLINDRICAL_SURFACE('',#35374,0.0799999999999831); +#567=CYLINDRICAL_SURFACE('',#35377,0.0349999999999986); +#568=CYLINDRICAL_SURFACE('',#35378,0.12); +#569=CYLINDRICAL_SURFACE('',#35379,0.0800000000000063); +#570=CYLINDRICAL_SURFACE('',#35381,0.0800000000000316); +#571=CYLINDRICAL_SURFACE('',#35383,0.0699999999999989); +#572=CYLINDRICAL_SURFACE('',#35384,0.0349999999999994); +#573=CYLINDRICAL_SURFACE('',#35386,0.12); +#574=CYLINDRICAL_SURFACE('',#35387,0.0800000000000063); +#575=CYLINDRICAL_SURFACE('',#35389,0.0800000000000316); +#576=CYLINDRICAL_SURFACE('',#35391,0.0699999999999989); +#577=CYLINDRICAL_SURFACE('',#35392,0.0349999999999994); +#578=CYLINDRICAL_SURFACE('',#35394,0.12); +#579=CYLINDRICAL_SURFACE('',#35395,0.12); +#580=CYLINDRICAL_SURFACE('',#35397,0.0700000000000006); +#581=CYLINDRICAL_SURFACE('',#35399,0.0800000000000158); +#582=CYLINDRICAL_SURFACE('',#35401,0.0799999999999958); +#583=CYLINDRICAL_SURFACE('',#35404,0.0799999999999863); +#584=CYLINDRICAL_SURFACE('',#35406,0.0800000000000079); +#585=CYLINDRICAL_SURFACE('',#35408,0.0699999999999998); +#586=CYLINDRICAL_SURFACE('',#35409,0.0350000000000003); +#587=CYLINDRICAL_SURFACE('',#35410,0.0350000000000003); +#588=CYLINDRICAL_SURFACE('',#35412,0.119999999999999); +#589=CYLINDRICAL_SURFACE('',#35413,0.119999999999999); +#590=CYLINDRICAL_SURFACE('',#35415,0.0700000000000006); +#591=CYLINDRICAL_SURFACE('',#35417,0.0799999999999933); +#592=CYLINDRICAL_SURFACE('',#35419,0.0799999999999965); +#593=CYLINDRICAL_SURFACE('',#35422,0.0800000000000098); +#594=CYLINDRICAL_SURFACE('',#35424,0.0799999999999965); +#595=CYLINDRICAL_SURFACE('',#35426,0.0699999999999998); +#596=CYLINDRICAL_SURFACE('',#35427,0.0350000000000012); +#597=CYLINDRICAL_SURFACE('',#35428,0.0349999999999986); +#598=CYLINDRICAL_SURFACE('',#35430,0.12); +#599=CYLINDRICAL_SURFACE('',#35431,0.12); +#600=CYLINDRICAL_SURFACE('',#35433,0.0700000000000015); +#601=CYLINDRICAL_SURFACE('',#35435,0.0799999999999924); +#602=CYLINDRICAL_SURFACE('',#35437,0.0800000000000195); +#603=CYLINDRICAL_SURFACE('',#35440,0.0799999999999872); +#604=CYLINDRICAL_SURFACE('',#35442,0.0799999999999958); +#605=CYLINDRICAL_SURFACE('',#35444,0.0699999999999989); +#606=CYLINDRICAL_SURFACE('',#35445,0.0349999999999994); +#607=CYLINDRICAL_SURFACE('',#35446,0.0350000000000003); +#608=CYLINDRICAL_SURFACE('',#35448,0.12); +#609=CYLINDRICAL_SURFACE('',#35449,0.12); +#610=CYLINDRICAL_SURFACE('',#35451,0.0700000000000024); +#611=CYLINDRICAL_SURFACE('',#35453,0.0800000000000028); +#612=CYLINDRICAL_SURFACE('',#35455,0.0799999999999958); +#613=CYLINDRICAL_SURFACE('',#35458,0.0799999999999863); +#614=CYLINDRICAL_SURFACE('',#35460,0.080000000000021); +#615=CYLINDRICAL_SURFACE('',#35462,0.069999999999998); +#616=CYLINDRICAL_SURFACE('',#35463,0.0350000000000003); +#617=CYLINDRICAL_SURFACE('',#35464,0.0350000000000003); +#618=CYLINDRICAL_SURFACE('',#35466,0.12); +#619=CYLINDRICAL_SURFACE('',#35467,0.12); +#620=CYLINDRICAL_SURFACE('',#35469,0.0700000000000006); +#621=CYLINDRICAL_SURFACE('',#35471,0.0799999999999933); +#622=CYLINDRICAL_SURFACE('',#35473,0.0800000000000079); +#623=CYLINDRICAL_SURFACE('',#35476,0.0799999999999868); +#624=CYLINDRICAL_SURFACE('',#35478,0.0799999999999961); +#625=CYLINDRICAL_SURFACE('',#35480,0.0700000000000006); +#626=CYLINDRICAL_SURFACE('',#35481,0.0349999999999994); +#627=CYLINDRICAL_SURFACE('',#35482,0.0349999999999986); +#628=CYLINDRICAL_SURFACE('',#35484,0.12); +#629=CYLINDRICAL_SURFACE('',#35485,0.12); +#630=CYLINDRICAL_SURFACE('',#35487,0.0700000000000006); +#631=CYLINDRICAL_SURFACE('',#35489,0.0799999999999928); +#632=CYLINDRICAL_SURFACE('',#35491,0.0799999999999958); +#633=CYLINDRICAL_SURFACE('',#35494,0.0799999999999868); +#634=CYLINDRICAL_SURFACE('',#35496,0.0799999999999965); +#635=CYLINDRICAL_SURFACE('',#35498,0.0700000000000002); +#636=CYLINDRICAL_SURFACE('',#35499,0.0349999999999999); +#637=CYLINDRICAL_SURFACE('',#35500,0.0349999999999994); +#638=CYLINDRICAL_SURFACE('',#35502,0.12); +#639=CYLINDRICAL_SURFACE('',#35503,0.12); +#640=CYLINDRICAL_SURFACE('',#35505,0.0700000000000006); +#641=CYLINDRICAL_SURFACE('',#35507,0.0800000000000163); +#642=CYLINDRICAL_SURFACE('',#35509,0.0800000000000202); +#643=CYLINDRICAL_SURFACE('',#35512,0.0799999999999868); +#644=CYLINDRICAL_SURFACE('',#35514,0.0800000000000202); +#645=CYLINDRICAL_SURFACE('',#35516,0.0700000000000002); +#646=CYLINDRICAL_SURFACE('',#35517,0.0349999999999999); +#647=CYLINDRICAL_SURFACE('',#35518,0.0349999999999986); +#648=CYLINDRICAL_SURFACE('',#35520,0.12); +#649=CYLINDRICAL_SURFACE('',#35521,0.12); +#650=CYLINDRICAL_SURFACE('',#35523,0.0700000000000006); +#651=CYLINDRICAL_SURFACE('',#35525,0.080000000000016); +#652=CYLINDRICAL_SURFACE('',#35527,0.0799999999999963); +#653=CYLINDRICAL_SURFACE('',#35530,0.08000000000001); +#654=CYLINDRICAL_SURFACE('',#35532,0.0799999999999963); +#655=CYLINDRICAL_SURFACE('',#35534,0.0700000000000008); +#656=CYLINDRICAL_SURFACE('',#35535,0.0349999999999999); +#657=CYLINDRICAL_SURFACE('',#35536,0.0349999999999994); +#658=CYLINDRICAL_SURFACE('',#35538,0.12); +#659=CYLINDRICAL_SURFACE('',#35539,0.12); +#660=CYLINDRICAL_SURFACE('',#35541,0.0700000000000015); +#661=CYLINDRICAL_SURFACE('',#35543,0.0800000000000078); +#662=CYLINDRICAL_SURFACE('',#35545,0.0799999999999963); +#663=CYLINDRICAL_SURFACE('',#35548,0.0799999999999869); +#664=CYLINDRICAL_SURFACE('',#35550,0.0799999999999962); +#665=CYLINDRICAL_SURFACE('',#35552,0.0700000000000005); +#666=CYLINDRICAL_SURFACE('',#35553,0.034999999999999); +#667=CYLINDRICAL_SURFACE('',#35554,0.0349999999999994); +#668=CYLINDRICAL_SURFACE('',#35556,0.12); +#669=CYLINDRICAL_SURFACE('',#35557,0.12); +#670=CYLINDRICAL_SURFACE('',#35559,0.0700000000000006); +#671=CYLINDRICAL_SURFACE('',#35561,0.0800000000000046); +#672=CYLINDRICAL_SURFACE('',#35563,0.0800000000000072); +#673=CYLINDRICAL_SURFACE('',#35566,0.0799999999999963); +#674=CYLINDRICAL_SURFACE('',#35568,0.0799999999999867); +#675=CYLINDRICAL_SURFACE('',#35570,0.0700000000000005); +#676=CYLINDRICAL_SURFACE('',#35571,0.0349999999999993); +#677=CYLINDRICAL_SURFACE('',#35572,0.0349999999999994); +#678=CYLINDRICAL_SURFACE('',#35574,0.12); +#679=CYLINDRICAL_SURFACE('',#35575,0.12); +#680=CYLINDRICAL_SURFACE('',#35577,0.0700000000000006); +#681=CYLINDRICAL_SURFACE('',#35579,0.080000000000008); +#682=CYLINDRICAL_SURFACE('',#35581,0.0799999999999962); +#683=CYLINDRICAL_SURFACE('',#35584,0.0799999999999868); +#684=CYLINDRICAL_SURFACE('',#35586,0.0799999999999967); +#685=CYLINDRICAL_SURFACE('',#35588,0.0700000000000008); +#686=CYLINDRICAL_SURFACE('',#35589,0.0349999999999998); +#687=CYLINDRICAL_SURFACE('',#35590,0.0349999999999986); +#688=CYLINDRICAL_SURFACE('',#35592,0.12); +#689=CYLINDRICAL_SURFACE('',#35593,0.12); +#690=CYLINDRICAL_SURFACE('',#35595,0.0700000000000006); +#691=CYLINDRICAL_SURFACE('',#35597,0.0800000000000048); +#692=CYLINDRICAL_SURFACE('',#35599,0.0800000000000071); +#693=CYLINDRICAL_SURFACE('',#35602,0.0799999999999987); +#694=CYLINDRICAL_SURFACE('',#35604,0.0799999999999963); +#695=CYLINDRICAL_SURFACE('',#35606,0.070000000000001); +#696=CYLINDRICAL_SURFACE('',#35607,0.034999999999999); +#697=CYLINDRICAL_SURFACE('',#35608,0.0349999999999994); +#698=CYLINDRICAL_SURFACE('',#35610,0.12); +#699=CYLINDRICAL_SURFACE('',#35611,0.12); +#700=CYLINDRICAL_SURFACE('',#35613,0.0700000000000006); +#701=CYLINDRICAL_SURFACE('',#35615,0.0800000000000045); +#702=CYLINDRICAL_SURFACE('',#35617,0.0799999999999958); +#703=CYLINDRICAL_SURFACE('',#35620,0.0799999999999989); +#704=CYLINDRICAL_SURFACE('',#35622,0.0799999999999965); +#705=CYLINDRICAL_SURFACE('',#35624,0.0700000000000002); +#706=CYLINDRICAL_SURFACE('',#35625,0.0349999999999999); +#707=CYLINDRICAL_SURFACE('',#35626,0.0349999999999986); +#708=CYLINDRICAL_SURFACE('',#35628,0.12); +#709=CYLINDRICAL_SURFACE('',#35629,0.12); +#710=CYLINDRICAL_SURFACE('',#35631,0.0700000000000006); +#711=CYLINDRICAL_SURFACE('',#35633,0.0800000000000054); +#712=CYLINDRICAL_SURFACE('',#35635,0.0799999999999961); +#713=CYLINDRICAL_SURFACE('',#35638,0.079999999999998); +#714=CYLINDRICAL_SURFACE('',#35640,0.0799999999999958); +#715=CYLINDRICAL_SURFACE('',#35642,0.070000000000001); +#716=CYLINDRICAL_SURFACE('',#35643,0.0350000000000007); +#717=CYLINDRICAL_SURFACE('',#35644,0.0349999999999986); +#718=CYLINDRICAL_SURFACE('',#35646,0.12); +#719=CYLINDRICAL_SURFACE('',#35647,0.12); +#720=CYLINDRICAL_SURFACE('',#35649,0.0700000000000006); +#721=CYLINDRICAL_SURFACE('',#35651,0.0799999999999928); +#722=CYLINDRICAL_SURFACE('',#35653,0.0799999999999961); +#723=CYLINDRICAL_SURFACE('',#35656,0.0799999999999967); +#724=CYLINDRICAL_SURFACE('',#35658,0.0799999999999965); +#725=CYLINDRICAL_SURFACE('',#35660,0.0699999999999989); +#726=CYLINDRICAL_SURFACE('',#35661,0.0350000000000003); +#727=CYLINDRICAL_SURFACE('',#35662,0.0349999999999986); +#728=CYLINDRICAL_SURFACE('',#35664,0.12); +#729=CYLINDRICAL_SURFACE('',#35665,0.12); +#730=CYLINDRICAL_SURFACE('',#35667,0.0700000000000015); +#731=CYLINDRICAL_SURFACE('',#35669,0.0800000000000176); +#732=CYLINDRICAL_SURFACE('',#35671,0.0799999999999965); +#733=CYLINDRICAL_SURFACE('',#35674,0.0799999999999872); +#734=CYLINDRICAL_SURFACE('',#35676,0.0800000000000064); +#735=CYLINDRICAL_SURFACE('',#35678,0.0700000000000006); +#736=CYLINDRICAL_SURFACE('',#35679,0.0350000000000012); +#737=CYLINDRICAL_SURFACE('',#35680,0.0350000000000003); +#738=CYLINDRICAL_SURFACE('',#35682,0.12); +#739=CYLINDRICAL_SURFACE('',#35683,0.12); +#740=CYLINDRICAL_SURFACE('',#35685,0.0700000000000006); +#741=CYLINDRICAL_SURFACE('',#35687,0.0799999999999924); +#742=CYLINDRICAL_SURFACE('',#35689,0.0799999999999958); +#743=CYLINDRICAL_SURFACE('',#35692,0.0800000000000115); +#744=CYLINDRICAL_SURFACE('',#35694,0.0799999999999958); +#745=CYLINDRICAL_SURFACE('',#35696,0.069999999999998); +#746=CYLINDRICAL_SURFACE('',#35697,0.0350000000000003); +#747=CYLINDRICAL_SURFACE('',#35698,0.0349999999999986); +#748=CYLINDRICAL_SURFACE('',#35700,0.12); +#749=CYLINDRICAL_SURFACE('',#35701,0.12); +#750=CYLINDRICAL_SURFACE('',#35703,0.0700000000000006); +#751=CYLINDRICAL_SURFACE('',#35705,0.0799999999999933); +#752=CYLINDRICAL_SURFACE('',#35707,0.080000000000021); +#753=CYLINDRICAL_SURFACE('',#35710,0.0799999999999863); +#754=CYLINDRICAL_SURFACE('',#35712,0.0799999999999965); +#755=CYLINDRICAL_SURFACE('',#35714,0.0699999999999989); +#756=CYLINDRICAL_SURFACE('',#35715,0.0349999999999994); +#757=CYLINDRICAL_SURFACE('',#35716,0.0350000000000003); +#758=CYLINDRICAL_SURFACE('',#35718,0.119999999999999); +#759=CYLINDRICAL_SURFACE('',#35719,0.119999999999999); +#760=CYLINDRICAL_SURFACE('',#35721,0.0700000000000024); +#761=CYLINDRICAL_SURFACE('',#35723,0.0800000000000045); +#762=CYLINDRICAL_SURFACE('',#35725,0.0799999999999965); +#763=CYLINDRICAL_SURFACE('',#35728,0.0799999999999872); +#764=CYLINDRICAL_SURFACE('',#35730,0.0800000000000195); +#765=CYLINDRICAL_SURFACE('',#35732,0.0699999999999998); +#766=CYLINDRICAL_SURFACE('',#35733,0.0350000000000012); +#767=CYLINDRICAL_SURFACE('',#35734,0.0350000000000003); +#768=CYLINDRICAL_SURFACE('',#35736,0.12); +#769=CYLINDRICAL_SURFACE('',#35737,0.0700000000000006); +#770=CYLINDRICAL_SURFACE('',#35739,0.0800000000000158); +#771=CYLINDRICAL_SURFACE('',#35741,0.0799999999999958); +#772=CYLINDRICAL_SURFACE('',#35744,0.0799999999999863); +#773=CYLINDRICAL_SURFACE('',#35746,0.0800000000000079); +#774=CYLINDRICAL_SURFACE('',#35748,0.0699999999999998); +#775=CYLINDRICAL_SURFACE('',#35750,0.0350000000000003); +#776=CYLINDRICAL_SURFACE('',#35751,0.0350000000000003); +#777=CYLINDRICAL_SURFACE('',#35753,0.12); +#778=CYLINDRICAL_SURFACE('',#35754,0.119999999999999); +#779=CYLINDRICAL_SURFACE('',#35755,0.0700000000000006); +#780=CYLINDRICAL_SURFACE('',#35757,0.0799999999999933); +#781=CYLINDRICAL_SURFACE('',#35759,0.0799999999999965); +#782=CYLINDRICAL_SURFACE('',#35762,0.0800000000000098); +#783=CYLINDRICAL_SURFACE('',#35764,0.0799999999999965); +#784=CYLINDRICAL_SURFACE('',#35766,0.0699999999999998); +#785=CYLINDRICAL_SURFACE('',#35768,0.0350000000000012); +#786=CYLINDRICAL_SURFACE('',#35769,0.0349999999999986); +#787=CYLINDRICAL_SURFACE('',#35771,0.119999999999999); +#788=CYLINDRICAL_SURFACE('',#35772,0.12); +#789=CYLINDRICAL_SURFACE('',#35773,0.0700000000000015); +#790=CYLINDRICAL_SURFACE('',#35775,0.0799999999999924); +#791=CYLINDRICAL_SURFACE('',#35777,0.0800000000000195); +#792=CYLINDRICAL_SURFACE('',#35780,0.0799999999999872); +#793=CYLINDRICAL_SURFACE('',#35782,0.0799999999999958); +#794=CYLINDRICAL_SURFACE('',#35784,0.0699999999999989); +#795=CYLINDRICAL_SURFACE('',#35786,0.0349999999999994); +#796=CYLINDRICAL_SURFACE('',#35787,0.0350000000000003); +#797=CYLINDRICAL_SURFACE('',#35789,0.12); +#798=CYLINDRICAL_SURFACE('',#35790,0.12); +#799=CYLINDRICAL_SURFACE('',#35791,0.0700000000000024); +#800=CYLINDRICAL_SURFACE('',#35793,0.0800000000000028); +#801=CYLINDRICAL_SURFACE('',#35795,0.0799999999999958); +#802=CYLINDRICAL_SURFACE('',#35798,0.0799999999999863); +#803=CYLINDRICAL_SURFACE('',#35800,0.080000000000021); +#804=CYLINDRICAL_SURFACE('',#35802,0.069999999999998); +#805=CYLINDRICAL_SURFACE('',#35804,0.0350000000000003); +#806=CYLINDRICAL_SURFACE('',#35805,0.0350000000000003); +#807=CYLINDRICAL_SURFACE('',#35807,0.12); +#808=CYLINDRICAL_SURFACE('',#35808,0.12); +#809=CYLINDRICAL_SURFACE('',#35809,0.0700000000000006); +#810=CYLINDRICAL_SURFACE('',#35811,0.0799999999999933); +#811=CYLINDRICAL_SURFACE('',#35813,0.0800000000000079); +#812=CYLINDRICAL_SURFACE('',#35816,0.0799999999999868); +#813=CYLINDRICAL_SURFACE('',#35818,0.0799999999999961); +#814=CYLINDRICAL_SURFACE('',#35820,0.0700000000000006); +#815=CYLINDRICAL_SURFACE('',#35822,0.0349999999999994); +#816=CYLINDRICAL_SURFACE('',#35823,0.0349999999999986); +#817=CYLINDRICAL_SURFACE('',#35825,0.12); +#818=CYLINDRICAL_SURFACE('',#35826,0.12); +#819=CYLINDRICAL_SURFACE('',#35827,0.0700000000000006); +#820=CYLINDRICAL_SURFACE('',#35829,0.0799999999999928); +#821=CYLINDRICAL_SURFACE('',#35831,0.0799999999999958); +#822=CYLINDRICAL_SURFACE('',#35834,0.0799999999999868); +#823=CYLINDRICAL_SURFACE('',#35836,0.0799999999999965); +#824=CYLINDRICAL_SURFACE('',#35838,0.0700000000000002); +#825=CYLINDRICAL_SURFACE('',#35840,0.0349999999999999); +#826=CYLINDRICAL_SURFACE('',#35841,0.0349999999999994); +#827=CYLINDRICAL_SURFACE('',#35843,0.12); +#828=CYLINDRICAL_SURFACE('',#35844,0.12); +#829=CYLINDRICAL_SURFACE('',#35845,0.0700000000000006); +#830=CYLINDRICAL_SURFACE('',#35847,0.0800000000000163); +#831=CYLINDRICAL_SURFACE('',#35849,0.0800000000000202); +#832=CYLINDRICAL_SURFACE('',#35852,0.0799999999999868); +#833=CYLINDRICAL_SURFACE('',#35854,0.0800000000000202); +#834=CYLINDRICAL_SURFACE('',#35856,0.0700000000000002); +#835=CYLINDRICAL_SURFACE('',#35858,0.0349999999999999); +#836=CYLINDRICAL_SURFACE('',#35859,0.0349999999999986); +#837=CYLINDRICAL_SURFACE('',#35861,0.12); +#838=CYLINDRICAL_SURFACE('',#35862,0.12); +#839=CYLINDRICAL_SURFACE('',#35863,0.0700000000000006); +#840=CYLINDRICAL_SURFACE('',#35865,0.080000000000016); +#841=CYLINDRICAL_SURFACE('',#35867,0.0799999999999963); +#842=CYLINDRICAL_SURFACE('',#35870,0.08000000000001); +#843=CYLINDRICAL_SURFACE('',#35872,0.0799999999999963); +#844=CYLINDRICAL_SURFACE('',#35874,0.0700000000000008); +#845=CYLINDRICAL_SURFACE('',#35876,0.0349999999999999); +#846=CYLINDRICAL_SURFACE('',#35877,0.0349999999999994); +#847=CYLINDRICAL_SURFACE('',#35879,0.12); +#848=CYLINDRICAL_SURFACE('',#35880,0.12); +#849=CYLINDRICAL_SURFACE('',#35881,0.0700000000000015); +#850=CYLINDRICAL_SURFACE('',#35883,0.0800000000000078); +#851=CYLINDRICAL_SURFACE('',#35885,0.0799999999999963); +#852=CYLINDRICAL_SURFACE('',#35888,0.0799999999999869); +#853=CYLINDRICAL_SURFACE('',#35890,0.0799999999999962); +#854=CYLINDRICAL_SURFACE('',#35892,0.0700000000000005); +#855=CYLINDRICAL_SURFACE('',#35894,0.034999999999999); +#856=CYLINDRICAL_SURFACE('',#35895,0.0349999999999994); +#857=CYLINDRICAL_SURFACE('',#35897,0.12); +#858=CYLINDRICAL_SURFACE('',#35898,0.12); +#859=CYLINDRICAL_SURFACE('',#35899,0.0700000000000006); +#860=CYLINDRICAL_SURFACE('',#35901,0.0800000000000046); +#861=CYLINDRICAL_SURFACE('',#35903,0.0800000000000072); +#862=CYLINDRICAL_SURFACE('',#35906,0.0799999999999963); +#863=CYLINDRICAL_SURFACE('',#35908,0.0799999999999867); +#864=CYLINDRICAL_SURFACE('',#35910,0.0700000000000005); +#865=CYLINDRICAL_SURFACE('',#35912,0.0349999999999993); +#866=CYLINDRICAL_SURFACE('',#35913,0.0349999999999994); +#867=CYLINDRICAL_SURFACE('',#35915,0.12); +#868=CYLINDRICAL_SURFACE('',#35916,0.12); +#869=CYLINDRICAL_SURFACE('',#35917,0.0700000000000006); +#870=CYLINDRICAL_SURFACE('',#35919,0.080000000000008); +#871=CYLINDRICAL_SURFACE('',#35921,0.0799999999999962); +#872=CYLINDRICAL_SURFACE('',#35924,0.0799999999999868); +#873=CYLINDRICAL_SURFACE('',#35926,0.0799999999999967); +#874=CYLINDRICAL_SURFACE('',#35928,0.0700000000000008); +#875=CYLINDRICAL_SURFACE('',#35930,0.0349999999999998); +#876=CYLINDRICAL_SURFACE('',#35931,0.0349999999999986); +#877=CYLINDRICAL_SURFACE('',#35933,0.12); +#878=CYLINDRICAL_SURFACE('',#35934,0.12); +#879=CYLINDRICAL_SURFACE('',#35935,0.0700000000000006); +#880=CYLINDRICAL_SURFACE('',#35937,0.0800000000000048); +#881=CYLINDRICAL_SURFACE('',#35939,0.0800000000000071); +#882=CYLINDRICAL_SURFACE('',#35942,0.0799999999999987); +#883=CYLINDRICAL_SURFACE('',#35944,0.0799999999999963); +#884=CYLINDRICAL_SURFACE('',#35946,0.070000000000001); +#885=CYLINDRICAL_SURFACE('',#35948,0.034999999999999); +#886=CYLINDRICAL_SURFACE('',#35949,0.0349999999999994); +#887=CYLINDRICAL_SURFACE('',#35951,0.12); +#888=CYLINDRICAL_SURFACE('',#35952,0.12); +#889=CYLINDRICAL_SURFACE('',#35953,0.0700000000000006); +#890=CYLINDRICAL_SURFACE('',#35955,0.0800000000000045); +#891=CYLINDRICAL_SURFACE('',#35957,0.0799999999999958); +#892=CYLINDRICAL_SURFACE('',#35960,0.0799999999999989); +#893=CYLINDRICAL_SURFACE('',#35962,0.0799999999999965); +#894=CYLINDRICAL_SURFACE('',#35964,0.0700000000000002); +#895=CYLINDRICAL_SURFACE('',#35966,0.0349999999999999); +#896=CYLINDRICAL_SURFACE('',#35967,0.0349999999999986); +#897=CYLINDRICAL_SURFACE('',#35969,0.12); +#898=CYLINDRICAL_SURFACE('',#35970,0.12); +#899=CYLINDRICAL_SURFACE('',#35971,0.0700000000000006); +#900=CYLINDRICAL_SURFACE('',#35973,0.0800000000000054); +#901=CYLINDRICAL_SURFACE('',#35975,0.0799999999999961); +#902=CYLINDRICAL_SURFACE('',#35978,0.079999999999998); +#903=CYLINDRICAL_SURFACE('',#35980,0.0799999999999958); +#904=CYLINDRICAL_SURFACE('',#35982,0.070000000000001); +#905=CYLINDRICAL_SURFACE('',#35984,0.0350000000000007); +#906=CYLINDRICAL_SURFACE('',#35985,0.0349999999999986); +#907=CYLINDRICAL_SURFACE('',#35987,0.12); +#908=CYLINDRICAL_SURFACE('',#35988,0.12); +#909=CYLINDRICAL_SURFACE('',#35989,0.0700000000000006); +#910=CYLINDRICAL_SURFACE('',#35991,0.0799999999999928); +#911=CYLINDRICAL_SURFACE('',#35993,0.0799999999999961); +#912=CYLINDRICAL_SURFACE('',#35996,0.0799999999999967); +#913=CYLINDRICAL_SURFACE('',#35998,0.0799999999999965); +#914=CYLINDRICAL_SURFACE('',#36000,0.0699999999999989); +#915=CYLINDRICAL_SURFACE('',#36002,0.0350000000000003); +#916=CYLINDRICAL_SURFACE('',#36003,0.0349999999999986); +#917=CYLINDRICAL_SURFACE('',#36005,0.12); +#918=CYLINDRICAL_SURFACE('',#36006,0.12); +#919=CYLINDRICAL_SURFACE('',#36007,0.0700000000000015); +#920=CYLINDRICAL_SURFACE('',#36009,0.0800000000000176); +#921=CYLINDRICAL_SURFACE('',#36011,0.0799999999999965); +#922=CYLINDRICAL_SURFACE('',#36014,0.0799999999999872); +#923=CYLINDRICAL_SURFACE('',#36016,0.0800000000000064); +#924=CYLINDRICAL_SURFACE('',#36018,0.0700000000000006); +#925=CYLINDRICAL_SURFACE('',#36020,0.0350000000000012); +#926=CYLINDRICAL_SURFACE('',#36021,0.0350000000000003); +#927=CYLINDRICAL_SURFACE('',#36023,0.12); +#928=CYLINDRICAL_SURFACE('',#36024,0.12); +#929=CYLINDRICAL_SURFACE('',#36025,0.0700000000000006); +#930=CYLINDRICAL_SURFACE('',#36027,0.0799999999999924); +#931=CYLINDRICAL_SURFACE('',#36029,0.0799999999999958); +#932=CYLINDRICAL_SURFACE('',#36032,0.0800000000000115); +#933=CYLINDRICAL_SURFACE('',#36034,0.0799999999999958); +#934=CYLINDRICAL_SURFACE('',#36036,0.069999999999998); +#935=CYLINDRICAL_SURFACE('',#36038,0.0350000000000003); +#936=CYLINDRICAL_SURFACE('',#36039,0.0349999999999986); +#937=CYLINDRICAL_SURFACE('',#36041,0.12); +#938=CYLINDRICAL_SURFACE('',#36042,0.12); +#939=CYLINDRICAL_SURFACE('',#36043,0.0700000000000006); +#940=CYLINDRICAL_SURFACE('',#36045,0.0799999999999933); +#941=CYLINDRICAL_SURFACE('',#36047,0.080000000000021); +#942=CYLINDRICAL_SURFACE('',#36050,0.0799999999999863); +#943=CYLINDRICAL_SURFACE('',#36052,0.0799999999999965); +#944=CYLINDRICAL_SURFACE('',#36054,0.0699999999999989); +#945=CYLINDRICAL_SURFACE('',#36056,0.0349999999999994); +#946=CYLINDRICAL_SURFACE('',#36057,0.0350000000000003); +#947=CYLINDRICAL_SURFACE('',#36059,0.12); +#948=CYLINDRICAL_SURFACE('',#36060,0.119999999999999); +#949=CYLINDRICAL_SURFACE('',#36061,0.0700000000000024); +#950=CYLINDRICAL_SURFACE('',#36063,0.0800000000000045); +#951=CYLINDRICAL_SURFACE('',#36065,0.0799999999999965); +#952=CYLINDRICAL_SURFACE('',#36068,0.0799999999999872); +#953=CYLINDRICAL_SURFACE('',#36070,0.0800000000000195); +#954=CYLINDRICAL_SURFACE('',#36072,0.0699999999999998); +#955=CYLINDRICAL_SURFACE('',#36074,0.0350000000000012); +#956=CYLINDRICAL_SURFACE('',#36075,0.0350000000000003); +#957=CYLINDRICAL_SURFACE('',#36077,0.119999999999999); +#958=CYLINDRICAL_SURFACE('',#36078,0.12); +#959=CIRCLE('',#33420,0.199999999999998); +#960=CIRCLE('',#33421,0.199999999999999); +#961=CIRCLE('',#33422,0.199999999999997); +#962=CIRCLE('',#33423,0.199999999999999); +#963=CIRCLE('',#33424,0.200000000000001); +#964=CIRCLE('',#33425,0.166665999999988); +#965=CIRCLE('',#33426,1.05); +#966=CIRCLE('',#33427,0.16666599999998); +#967=CIRCLE('',#33428,0.200000000000003); +#968=CIRCLE('',#33429,0.200000000000001); +#969=CIRCLE('',#33430,0.2); +#970=CIRCLE('',#33431,0.200000000000006); +#971=CIRCLE('',#33432,0.2); +#972=CIRCLE('',#33433,0.200000000000004); +#973=CIRCLE('',#33434,0.660000000000001); +#974=CIRCLE('',#33435,0.499999999999999); +#975=CIRCLE('',#33436,0.250000000000003); +#976=CIRCLE('',#33437,1.05); +#977=CIRCLE('',#33438,0.249999999999985); +#978=CIRCLE('',#33439,0.500000000000003); +#979=CIRCLE('',#33440,0.699999999999999); +#980=CIRCLE('',#33441,0.700000000000001); +#981=CIRCLE('',#33448,0.35); +#982=CIRCLE('',#33450,0.35); +#983=CIRCLE('',#33454,0.35); +#984=CIRCLE('',#33456,0.35); +#985=CIRCLE('',#33460,0.35); +#986=CIRCLE('',#33462,0.35); +#987=CIRCLE('',#33466,0.35); +#988=CIRCLE('',#33468,0.35); +#989=CIRCLE('',#33472,0.35); +#990=CIRCLE('',#33474,0.35); +#991=CIRCLE('',#33478,0.35); +#992=CIRCLE('',#33480,0.35); +#993=CIRCLE('',#33484,0.35); +#994=CIRCLE('',#33486,0.35); +#995=CIRCLE('',#33490,0.35); +#996=CIRCLE('',#33492,0.35); +#997=CIRCLE('',#33496,0.35); +#998=CIRCLE('',#33498,0.35); +#999=CIRCLE('',#33502,0.35); +#1000=CIRCLE('',#33504,0.35); +#1001=CIRCLE('',#33508,0.35); +#1002=CIRCLE('',#33510,0.35); +#1003=CIRCLE('',#33514,0.35); +#1004=CIRCLE('',#33516,0.35); +#1005=CIRCLE('',#33520,0.35); +#1006=CIRCLE('',#33522,0.35); +#1007=CIRCLE('',#33526,0.35); +#1008=CIRCLE('',#33528,0.35); +#1009=CIRCLE('',#33532,0.35); +#1010=CIRCLE('',#33534,0.35); +#1011=CIRCLE('',#33538,0.35); +#1012=CIRCLE('',#33540,0.35); +#1013=CIRCLE('',#33544,0.35); +#1014=CIRCLE('',#33546,0.35); +#1015=CIRCLE('',#33550,0.35); +#1016=CIRCLE('',#33552,0.35); +#1017=CIRCLE('',#33556,0.35); +#1018=CIRCLE('',#33558,0.35); +#1019=CIRCLE('',#33560,0.35); +#1020=CIRCLE('',#33564,0.35); +#1021=CIRCLE('',#33834,0.660000000000001); +#1022=CIRCLE('',#33836,0.26); +#1023=CIRCLE('',#33840,0.200000000000006); +#1024=CIRCLE('',#33843,0.2); +#1025=CIRCLE('',#33846,0.200000000000004); +#1026=CIRCLE('',#33849,0.2); +#1027=CIRCLE('',#33853,0.200000000000001); +#1028=CIRCLE('',#33855,0.166665999999988); +#1029=CIRCLE('',#33857,1.05); +#1030=CIRCLE('',#33859,0.16666599999998); +#1031=CIRCLE('',#33861,0.200000000000003); +#1032=CIRCLE('',#33864,0.200000000000001); +#1033=CIRCLE('',#33870,0.499999999999999); +#1034=CIRCLE('',#33872,0.250000000000003); +#1035=CIRCLE('',#33874,1.05); +#1036=CIRCLE('',#33876,0.249999999999985); +#1037=CIRCLE('',#33878,0.500000000000003); +#1038=CIRCLE('',#33881,0.699999999999999); +#1039=CIRCLE('',#33884,0.700000000000001); +#1040=CIRCLE('',#33889,0.199999999999999); +#1041=CIRCLE('',#33890,0.199999999999998); +#1042=CIRCLE('',#33897,0.199999999999999); +#1043=CIRCLE('',#33898,0.199999999999997); +#1044=CIRCLE('',#34011,0.6524); +#1045=CIRCLE('',#34012,0.6524); +#1046=CIRCLE('',#34014,0.6524); +#1047=CIRCLE('',#34015,0.6524); +#1048=CIRCLE('',#34017,0.6524); +#1049=CIRCLE('',#34018,0.6524); +#1050=CIRCLE('',#34020,0.6524); +#1051=CIRCLE('',#34021,0.6524); +#1052=CIRCLE('',#34023,0.6524); +#1053=CIRCLE('',#34024,0.6524); +#1054=CIRCLE('',#34026,0.6524); +#1055=CIRCLE('',#34027,0.6524); +#1056=CIRCLE('',#34029,0.6524); +#1057=CIRCLE('',#34030,0.6524); +#1058=CIRCLE('',#34032,0.6524); +#1059=CIRCLE('',#34033,0.6524); +#1060=CIRCLE('',#34035,0.6524); +#1061=CIRCLE('',#34036,0.6524); +#1062=CIRCLE('',#34038,0.6524); +#1063=CIRCLE('',#34039,0.6524); +#1064=CIRCLE('',#34041,0.6524); +#1065=CIRCLE('',#34042,0.6524); +#1066=CIRCLE('',#34044,0.6524); +#1067=CIRCLE('',#34045,0.6524); +#1068=CIRCLE('',#34047,0.6524); +#1069=CIRCLE('',#34048,0.6524); +#1070=CIRCLE('',#34050,0.6524); +#1071=CIRCLE('',#34051,0.6524); +#1072=CIRCLE('',#34053,0.6524); +#1073=CIRCLE('',#34054,0.6524); +#1074=CIRCLE('',#34056,0.6524); +#1075=CIRCLE('',#34057,0.6524); +#1076=CIRCLE('',#34059,0.6524); +#1077=CIRCLE('',#34060,0.6524); +#1078=CIRCLE('',#34062,0.6524); +#1079=CIRCLE('',#34063,0.6524); +#1080=CIRCLE('',#34065,0.6524); +#1081=CIRCLE('',#34066,0.6524); +#1082=CIRCLE('',#34068,0.6524); +#1083=CIRCLE('',#34069,0.6524); +#1084=CIRCLE('',#34071,0.6524); +#1085=CIRCLE('',#34072,0.6524); +#1086=CIRCLE('',#34074,0.6524); +#1087=CIRCLE('',#34075,0.6524); +#1088=CIRCLE('',#34077,0.6524); +#1089=CIRCLE('',#34078,0.6524); +#1090=CIRCLE('',#34080,0.6524); +#1091=CIRCLE('',#34081,0.6524); +#1092=CIRCLE('',#34083,0.6524); +#1093=CIRCLE('',#34084,0.6524); +#1094=CIRCLE('',#34086,0.6524); +#1095=CIRCLE('',#34087,0.6524); +#1096=CIRCLE('',#34089,0.6524); +#1097=CIRCLE('',#34090,0.6524); +#1098=CIRCLE('',#34092,0.6524); +#1099=CIRCLE('',#34093,0.6524); +#1100=CIRCLE('',#34095,0.6524); +#1101=CIRCLE('',#34096,0.6524); +#1102=CIRCLE('',#34098,0.6524); +#1103=CIRCLE('',#34099,0.6524); +#1104=CIRCLE('',#34101,0.6524); +#1105=CIRCLE('',#34102,0.6524); +#1106=CIRCLE('',#34104,0.6524); +#1107=CIRCLE('',#34105,0.6524); +#1108=CIRCLE('',#34107,0.6524); +#1109=CIRCLE('',#34108,0.6524); +#1110=CIRCLE('',#34110,0.6524); +#1111=CIRCLE('',#34111,0.6524); +#1112=CIRCLE('',#34113,0.6524); +#1113=CIRCLE('',#34114,0.6524); +#1114=CIRCLE('',#34116,0.6524); +#1115=CIRCLE('',#34117,0.6524); +#1116=CIRCLE('',#34119,0.6524); +#1117=CIRCLE('',#34120,0.6524); +#1118=CIRCLE('',#34122,0.6524); +#1119=CIRCLE('',#34123,0.6524); +#1120=CIRCLE('',#34144,0.499999999999999); +#1121=CIRCLE('',#34145,0.499999999999999); +#1122=CIRCLE('',#34147,0.499999999999999); +#1123=CIRCLE('',#34148,0.499999999999999); +#1124=CIRCLE('',#34150,0.499999999999999); +#1125=CIRCLE('',#34151,0.499999999999999); +#1126=CIRCLE('',#34153,0.499999999999999); +#1127=CIRCLE('',#34154,0.499999999999999); +#1128=CIRCLE('',#34156,0.499999999999999); +#1129=CIRCLE('',#34157,0.499999999999999); +#1130=CIRCLE('',#34159,0.499999999999999); +#1131=CIRCLE('',#34160,0.499999999999999); +#1132=CIRCLE('',#34162,0.499999999999999); +#1133=CIRCLE('',#34163,0.499999999999999); +#1134=CIRCLE('',#34165,0.499999999999999); +#1135=CIRCLE('',#34166,0.499999999999999); +#1136=CIRCLE('',#34168,0.499999999999999); +#1137=CIRCLE('',#34169,0.499999999999999); +#1138=CIRCLE('',#34171,0.499999999999999); +#1139=CIRCLE('',#34172,0.499999999999999); +#1140=CIRCLE('',#34174,0.499999999999999); +#1141=CIRCLE('',#34175,0.499999999999999); +#1142=CIRCLE('',#34177,0.499999999999999); +#1143=CIRCLE('',#34178,0.499999999999999); +#1144=CIRCLE('',#34180,0.499999999999999); +#1145=CIRCLE('',#34181,0.499999999999999); +#1146=CIRCLE('',#34183,0.499999999999999); +#1147=CIRCLE('',#34184,0.499999999999999); +#1148=CIRCLE('',#34186,0.499999999999999); +#1149=CIRCLE('',#34187,0.499999999999999); +#1150=CIRCLE('',#34189,0.499999999999999); +#1151=CIRCLE('',#34190,0.499999999999999); +#1152=CIRCLE('',#34192,0.499999999999999); +#1153=CIRCLE('',#34193,0.499999999999999); +#1154=CIRCLE('',#34195,0.499999999999999); +#1155=CIRCLE('',#34196,0.499999999999999); +#1156=CIRCLE('',#34198,0.499999999999999); +#1157=CIRCLE('',#34199,0.499999999999999); +#1158=CIRCLE('',#34201,0.499999999999999); +#1159=CIRCLE('',#34202,0.499999999999999); +#1160=CIRCLE('',#34204,0.499999999999999); +#1161=CIRCLE('',#34205,0.499999999999999); +#1162=CIRCLE('',#34207,0.499999999999999); +#1163=CIRCLE('',#34208,0.499999999999999); +#1164=CIRCLE('',#34210,0.499999999999999); +#1165=CIRCLE('',#34211,0.499999999999999); +#1166=CIRCLE('',#34213,0.499999999999999); +#1167=CIRCLE('',#34214,0.499999999999999); +#1168=CIRCLE('',#34216,0.499999999999999); +#1169=CIRCLE('',#34217,0.499999999999999); +#1170=CIRCLE('',#34219,0.499999999999999); +#1171=CIRCLE('',#34220,0.499999999999999); +#1172=CIRCLE('',#34222,0.499999999999999); +#1173=CIRCLE('',#34223,0.499999999999999); +#1174=CIRCLE('',#34225,0.499999999999999); +#1175=CIRCLE('',#34226,0.499999999999999); +#1176=CIRCLE('',#34228,0.499999999999999); +#1177=CIRCLE('',#34229,0.499999999999999); +#1178=CIRCLE('',#34231,0.499999999999999); +#1179=CIRCLE('',#34232,0.499999999999999); +#1180=CIRCLE('',#34234,0.499999999999999); +#1181=CIRCLE('',#34235,0.499999999999999); +#1182=CIRCLE('',#34237,0.499999999999999); +#1183=CIRCLE('',#34238,0.499999999999999); +#1184=CIRCLE('',#34240,0.499999999999999); +#1185=CIRCLE('',#34241,0.499999999999999); +#1186=CIRCLE('',#34243,0.499999999999999); +#1187=CIRCLE('',#34244,0.499999999999999); +#1188=CIRCLE('',#34246,0.499999999999999); +#1189=CIRCLE('',#34247,0.499999999999999); +#1190=CIRCLE('',#34249,0.499999999999999); +#1191=CIRCLE('',#34250,0.499999999999999); +#1192=CIRCLE('',#34252,0.499999999999999); +#1193=CIRCLE('',#34253,0.499999999999999); +#1194=CIRCLE('',#34255,0.499999999999999); +#1195=CIRCLE('',#34256,0.499999999999999); +#1196=CIRCLE('',#34259,0.6524); +#1197=CIRCLE('',#34260,0.6524); +#1198=CIRCLE('',#34262,0.6524); +#1199=CIRCLE('',#34263,0.6524); +#1200=CIRCLE('',#34266,0.499999999999999); +#1201=CIRCLE('',#34267,0.499999999999999); +#1202=CIRCLE('',#34269,0.499999999999999); +#1203=CIRCLE('',#34270,0.499999999999999); +#1204=CIRCLE('',#34474,0.0799999999999831); +#1205=CIRCLE('',#34475,0.080000000000021); +#1206=CIRCLE('',#34476,0.0700000000000015); +#1207=CIRCLE('',#34477,0.0699999999999998); +#1208=CIRCLE('',#34478,0.0800000000000195); +#1209=CIRCLE('',#34479,0.0799999999999872); +#1210=CIRCLE('',#34480,0.0799999999999965); +#1211=CIRCLE('',#34481,0.0800000000000045); +#1212=CIRCLE('',#34482,0.0700000000000024); +#1213=CIRCLE('',#34483,0.0699999999999989); +#1214=CIRCLE('',#34484,0.0799999999999965); +#1215=CIRCLE('',#34485,0.0799999999999863); +#1216=CIRCLE('',#34486,0.080000000000021); +#1217=CIRCLE('',#34487,0.0799999999999933); +#1218=CIRCLE('',#34488,0.0700000000000006); +#1219=CIRCLE('',#34489,0.069999999999998); +#1220=CIRCLE('',#34490,0.0799999999999958); +#1221=CIRCLE('',#34491,0.0800000000000115); +#1222=CIRCLE('',#34492,0.0799999999999958); +#1223=CIRCLE('',#34493,0.0799999999999924); +#1224=CIRCLE('',#34494,0.0700000000000006); +#1225=CIRCLE('',#34495,0.0700000000000006); +#1226=CIRCLE('',#34496,0.0800000000000064); +#1227=CIRCLE('',#34497,0.0799999999999872); +#1228=CIRCLE('',#34498,0.0799999999999965); +#1229=CIRCLE('',#34499,0.0800000000000176); +#1230=CIRCLE('',#34500,0.0700000000000015); +#1231=CIRCLE('',#34501,0.0699999999999989); +#1232=CIRCLE('',#34502,0.0799999999999965); +#1233=CIRCLE('',#34503,0.0799999999999967); +#1234=CIRCLE('',#34504,0.0799999999999961); +#1235=CIRCLE('',#34505,0.0799999999999928); +#1236=CIRCLE('',#34506,0.0700000000000006); +#1237=CIRCLE('',#34507,0.070000000000001); +#1238=CIRCLE('',#34508,0.0799999999999958); +#1239=CIRCLE('',#34509,0.079999999999998); +#1240=CIRCLE('',#34510,0.0799999999999961); +#1241=CIRCLE('',#34511,0.0800000000000054); +#1242=CIRCLE('',#34512,0.0700000000000006); +#1243=CIRCLE('',#34513,0.0700000000000002); +#1244=CIRCLE('',#34514,0.0799999999999965); +#1245=CIRCLE('',#34515,0.0799999999999989); +#1246=CIRCLE('',#34516,0.0799999999999958); +#1247=CIRCLE('',#34517,0.0800000000000045); +#1248=CIRCLE('',#34518,0.0700000000000006); +#1249=CIRCLE('',#34519,0.070000000000001); +#1250=CIRCLE('',#34520,0.0799999999999963); +#1251=CIRCLE('',#34521,0.0799999999999987); +#1252=CIRCLE('',#34522,0.0800000000000071); +#1253=CIRCLE('',#34523,0.0800000000000048); +#1254=CIRCLE('',#34524,0.0700000000000006); +#1255=CIRCLE('',#34525,0.0700000000000008); +#1256=CIRCLE('',#34526,0.0799999999999967); +#1257=CIRCLE('',#34527,0.0799999999999868); +#1258=CIRCLE('',#34528,0.0799999999999962); +#1259=CIRCLE('',#34529,0.080000000000008); +#1260=CIRCLE('',#34530,0.0700000000000006); +#1261=CIRCLE('',#34531,0.0700000000000005); +#1262=CIRCLE('',#34532,0.0799999999999867); +#1263=CIRCLE('',#34533,0.0799999999999963); +#1264=CIRCLE('',#34534,0.0800000000000072); +#1265=CIRCLE('',#34535,0.0800000000000046); +#1266=CIRCLE('',#34536,0.0700000000000006); +#1267=CIRCLE('',#34537,0.0700000000000005); +#1268=CIRCLE('',#34538,0.0799999999999962); +#1269=CIRCLE('',#34539,0.0799999999999869); +#1270=CIRCLE('',#34540,0.0799999999999963); +#1271=CIRCLE('',#34541,0.0800000000000078); +#1272=CIRCLE('',#34542,0.0700000000000015); +#1273=CIRCLE('',#34543,0.0700000000000008); +#1274=CIRCLE('',#34544,0.0799999999999963); +#1275=CIRCLE('',#34545,0.08000000000001); +#1276=CIRCLE('',#34546,0.0799999999999963); +#1277=CIRCLE('',#34547,0.080000000000016); +#1278=CIRCLE('',#34548,0.0700000000000006); +#1279=CIRCLE('',#34549,0.0700000000000002); +#1280=CIRCLE('',#34550,0.0800000000000202); +#1281=CIRCLE('',#34551,0.0799999999999868); +#1282=CIRCLE('',#34552,0.0800000000000202); +#1283=CIRCLE('',#34553,0.0800000000000163); +#1284=CIRCLE('',#34554,0.0700000000000006); +#1285=CIRCLE('',#34555,0.0700000000000002); +#1286=CIRCLE('',#34556,0.0799999999999965); +#1287=CIRCLE('',#34557,0.0799999999999868); +#1288=CIRCLE('',#34558,0.0799999999999958); +#1289=CIRCLE('',#34559,0.0799999999999928); +#1290=CIRCLE('',#34560,0.0700000000000006); +#1291=CIRCLE('',#34561,0.0700000000000006); +#1292=CIRCLE('',#34562,0.0799999999999961); +#1293=CIRCLE('',#34563,0.0799999999999868); +#1294=CIRCLE('',#34564,0.0800000000000079); +#1295=CIRCLE('',#34565,0.0799999999999933); +#1296=CIRCLE('',#34566,0.0700000000000006); +#1297=CIRCLE('',#34567,0.069999999999998); +#1298=CIRCLE('',#34568,0.080000000000021); +#1299=CIRCLE('',#34569,0.0799999999999863); +#1300=CIRCLE('',#34570,0.0799999999999958); +#1301=CIRCLE('',#34571,0.0800000000000028); +#1302=CIRCLE('',#34572,0.0700000000000024); +#1303=CIRCLE('',#34573,0.0699999999999989); +#1304=CIRCLE('',#34574,0.0799999999999958); +#1305=CIRCLE('',#34575,0.0799999999999872); +#1306=CIRCLE('',#34576,0.0800000000000195); +#1307=CIRCLE('',#34577,0.0799999999999924); +#1308=CIRCLE('',#34578,0.0700000000000015); +#1309=CIRCLE('',#34579,0.0699999999999998); +#1310=CIRCLE('',#34580,0.0799999999999965); +#1311=CIRCLE('',#34581,0.0800000000000098); +#1312=CIRCLE('',#34582,0.0799999999999965); +#1313=CIRCLE('',#34583,0.0799999999999933); +#1314=CIRCLE('',#34584,0.0700000000000006); +#1315=CIRCLE('',#34585,0.0699999999999998); +#1316=CIRCLE('',#34586,0.0800000000000079); +#1317=CIRCLE('',#34587,0.0799999999999863); +#1318=CIRCLE('',#34588,0.0799999999999958); +#1319=CIRCLE('',#34589,0.0800000000000158); +#1320=CIRCLE('',#34590,0.0700000000000006); +#1321=CIRCLE('',#34591,0.0699999999999989); +#1322=CIRCLE('',#34592,0.0800000000000316); +#1323=CIRCLE('',#34593,0.0800000000000063); +#1324=CIRCLE('',#34595,0.0800000000000063); +#1325=CIRCLE('',#34596,0.0800000000000316); +#1326=CIRCLE('',#34597,0.0699999999999989); +#1327=CIRCLE('',#34598,0.0700000000000006); +#1328=CIRCLE('',#34599,0.0800000000000158); +#1329=CIRCLE('',#34600,0.0799999999999958); +#1330=CIRCLE('',#34601,0.0799999999999863); +#1331=CIRCLE('',#34602,0.0800000000000079); +#1332=CIRCLE('',#34603,0.0699999999999998); +#1333=CIRCLE('',#34604,0.0700000000000006); +#1334=CIRCLE('',#34605,0.0799999999999933); +#1335=CIRCLE('',#34606,0.0799999999999965); +#1336=CIRCLE('',#34607,0.0800000000000098); +#1337=CIRCLE('',#34608,0.0799999999999965); +#1338=CIRCLE('',#34609,0.0699999999999998); +#1339=CIRCLE('',#34610,0.0700000000000015); +#1340=CIRCLE('',#34611,0.0799999999999924); +#1341=CIRCLE('',#34612,0.0800000000000195); +#1342=CIRCLE('',#34613,0.0799999999999872); +#1343=CIRCLE('',#34614,0.0799999999999958); +#1344=CIRCLE('',#34615,0.0699999999999989); +#1345=CIRCLE('',#34616,0.0700000000000024); +#1346=CIRCLE('',#34617,0.0800000000000028); +#1347=CIRCLE('',#34618,0.0799999999999958); +#1348=CIRCLE('',#34619,0.0799999999999863); +#1349=CIRCLE('',#34620,0.080000000000021); +#1350=CIRCLE('',#34621,0.069999999999998); +#1351=CIRCLE('',#34622,0.0700000000000006); +#1352=CIRCLE('',#34623,0.0799999999999933); +#1353=CIRCLE('',#34624,0.0800000000000079); +#1354=CIRCLE('',#34625,0.0799999999999868); +#1355=CIRCLE('',#34626,0.0799999999999961); +#1356=CIRCLE('',#34627,0.0700000000000006); +#1357=CIRCLE('',#34628,0.0700000000000006); +#1358=CIRCLE('',#34629,0.0799999999999928); +#1359=CIRCLE('',#34630,0.0799999999999958); +#1360=CIRCLE('',#34631,0.0799999999999868); +#1361=CIRCLE('',#34632,0.0799999999999965); +#1362=CIRCLE('',#34633,0.0700000000000002); +#1363=CIRCLE('',#34634,0.0700000000000006); +#1364=CIRCLE('',#34635,0.0800000000000163); +#1365=CIRCLE('',#34636,0.0800000000000202); +#1366=CIRCLE('',#34637,0.0799999999999868); +#1367=CIRCLE('',#34638,0.0800000000000202); +#1368=CIRCLE('',#34639,0.0700000000000002); +#1369=CIRCLE('',#34640,0.0700000000000006); +#1370=CIRCLE('',#34641,0.080000000000016); +#1371=CIRCLE('',#34642,0.0799999999999963); +#1372=CIRCLE('',#34643,0.08000000000001); +#1373=CIRCLE('',#34644,0.0799999999999963); +#1374=CIRCLE('',#34645,0.0700000000000008); +#1375=CIRCLE('',#34646,0.0700000000000015); +#1376=CIRCLE('',#34647,0.0800000000000078); +#1377=CIRCLE('',#34648,0.0799999999999963); +#1378=CIRCLE('',#34649,0.0799999999999869); +#1379=CIRCLE('',#34650,0.0799999999999962); +#1380=CIRCLE('',#34651,0.0700000000000005); +#1381=CIRCLE('',#34652,0.0700000000000006); +#1382=CIRCLE('',#34653,0.0800000000000046); +#1383=CIRCLE('',#34654,0.0800000000000072); +#1384=CIRCLE('',#34655,0.0799999999999963); +#1385=CIRCLE('',#34656,0.0799999999999867); +#1386=CIRCLE('',#34657,0.0700000000000005); +#1387=CIRCLE('',#34658,0.0700000000000006); +#1388=CIRCLE('',#34659,0.080000000000008); +#1389=CIRCLE('',#34660,0.0799999999999962); +#1390=CIRCLE('',#34661,0.0799999999999868); +#1391=CIRCLE('',#34662,0.0799999999999967); +#1392=CIRCLE('',#34663,0.0700000000000008); +#1393=CIRCLE('',#34664,0.0700000000000006); +#1394=CIRCLE('',#34665,0.0800000000000048); +#1395=CIRCLE('',#34666,0.0800000000000071); +#1396=CIRCLE('',#34667,0.0799999999999987); +#1397=CIRCLE('',#34668,0.0799999999999963); +#1398=CIRCLE('',#34669,0.070000000000001); +#1399=CIRCLE('',#34670,0.0700000000000006); +#1400=CIRCLE('',#34671,0.0800000000000045); +#1401=CIRCLE('',#34672,0.0799999999999958); +#1402=CIRCLE('',#34673,0.0799999999999989); +#1403=CIRCLE('',#34674,0.0799999999999965); +#1404=CIRCLE('',#34675,0.0700000000000002); +#1405=CIRCLE('',#34676,0.0700000000000006); +#1406=CIRCLE('',#34677,0.0800000000000054); +#1407=CIRCLE('',#34678,0.0799999999999961); +#1408=CIRCLE('',#34679,0.079999999999998); +#1409=CIRCLE('',#34680,0.0799999999999958); +#1410=CIRCLE('',#34681,0.070000000000001); +#1411=CIRCLE('',#34682,0.0700000000000006); +#1412=CIRCLE('',#34683,0.0799999999999928); +#1413=CIRCLE('',#34684,0.0799999999999961); +#1414=CIRCLE('',#34685,0.0799999999999967); +#1415=CIRCLE('',#34686,0.0799999999999965); +#1416=CIRCLE('',#34687,0.0699999999999989); +#1417=CIRCLE('',#34688,0.0700000000000015); +#1418=CIRCLE('',#34689,0.0800000000000176); +#1419=CIRCLE('',#34690,0.0799999999999965); +#1420=CIRCLE('',#34691,0.0799999999999872); +#1421=CIRCLE('',#34692,0.0800000000000064); +#1422=CIRCLE('',#34693,0.0700000000000006); +#1423=CIRCLE('',#34694,0.0700000000000006); +#1424=CIRCLE('',#34695,0.0799999999999924); +#1425=CIRCLE('',#34696,0.0799999999999958); +#1426=CIRCLE('',#34697,0.0800000000000115); +#1427=CIRCLE('',#34698,0.0799999999999958); +#1428=CIRCLE('',#34699,0.069999999999998); +#1429=CIRCLE('',#34700,0.0700000000000006); +#1430=CIRCLE('',#34701,0.0799999999999933); +#1431=CIRCLE('',#34702,0.080000000000021); +#1432=CIRCLE('',#34703,0.0799999999999863); +#1433=CIRCLE('',#34704,0.0799999999999965); +#1434=CIRCLE('',#34705,0.0699999999999989); +#1435=CIRCLE('',#34706,0.0700000000000024); +#1436=CIRCLE('',#34707,0.0800000000000045); +#1437=CIRCLE('',#34708,0.0799999999999965); +#1438=CIRCLE('',#34709,0.0799999999999872); +#1439=CIRCLE('',#34710,0.0800000000000195); +#1440=CIRCLE('',#34711,0.0699999999999998); +#1441=CIRCLE('',#34712,0.0700000000000015); +#1442=CIRCLE('',#34713,0.080000000000021); +#1443=CIRCLE('',#34714,0.0799999999999831); +#1444=CIRCLE('',#34716,0.0799999999999831); +#1445=CIRCLE('',#34717,0.080000000000021); +#1446=CIRCLE('',#34718,0.0700000000000015); +#1447=CIRCLE('',#34719,0.0699999999999998); +#1448=CIRCLE('',#34720,0.0800000000000195); +#1449=CIRCLE('',#34721,0.0799999999999872); +#1450=CIRCLE('',#34722,0.0799999999999965); +#1451=CIRCLE('',#34723,0.0800000000000045); +#1452=CIRCLE('',#34724,0.0700000000000024); +#1453=CIRCLE('',#34725,0.0699999999999989); +#1454=CIRCLE('',#34726,0.0799999999999965); +#1455=CIRCLE('',#34727,0.0799999999999863); +#1456=CIRCLE('',#34728,0.080000000000021); +#1457=CIRCLE('',#34729,0.0799999999999933); +#1458=CIRCLE('',#34730,0.0700000000000006); +#1459=CIRCLE('',#34731,0.069999999999998); +#1460=CIRCLE('',#34732,0.0799999999999958); +#1461=CIRCLE('',#34733,0.0800000000000115); +#1462=CIRCLE('',#34734,0.0799999999999958); +#1463=CIRCLE('',#34735,0.0799999999999924); +#1464=CIRCLE('',#34736,0.0700000000000006); +#1465=CIRCLE('',#34737,0.0700000000000006); +#1466=CIRCLE('',#34738,0.0800000000000064); +#1467=CIRCLE('',#34739,0.0799999999999872); +#1468=CIRCLE('',#34740,0.0799999999999965); +#1469=CIRCLE('',#34741,0.0800000000000176); +#1470=CIRCLE('',#34742,0.0700000000000015); +#1471=CIRCLE('',#34743,0.0699999999999989); +#1472=CIRCLE('',#34744,0.0799999999999965); +#1473=CIRCLE('',#34745,0.0799999999999967); +#1474=CIRCLE('',#34746,0.0799999999999961); +#1475=CIRCLE('',#34747,0.0799999999999928); +#1476=CIRCLE('',#34748,0.0700000000000006); +#1477=CIRCLE('',#34749,0.070000000000001); +#1478=CIRCLE('',#34750,0.0799999999999958); +#1479=CIRCLE('',#34751,0.079999999999998); +#1480=CIRCLE('',#34752,0.0799999999999961); +#1481=CIRCLE('',#34753,0.0800000000000054); +#1482=CIRCLE('',#34754,0.0700000000000006); +#1483=CIRCLE('',#34755,0.0700000000000002); +#1484=CIRCLE('',#34756,0.0799999999999965); +#1485=CIRCLE('',#34757,0.0799999999999989); +#1486=CIRCLE('',#34758,0.0799999999999958); +#1487=CIRCLE('',#34759,0.0800000000000045); +#1488=CIRCLE('',#34760,0.0700000000000006); +#1489=CIRCLE('',#34761,0.070000000000001); +#1490=CIRCLE('',#34762,0.0799999999999963); +#1491=CIRCLE('',#34763,0.0799999999999987); +#1492=CIRCLE('',#34764,0.0800000000000071); +#1493=CIRCLE('',#34765,0.0800000000000048); +#1494=CIRCLE('',#34766,0.0700000000000006); +#1495=CIRCLE('',#34767,0.0700000000000008); +#1496=CIRCLE('',#34768,0.0799999999999967); +#1497=CIRCLE('',#34769,0.0799999999999868); +#1498=CIRCLE('',#34770,0.0799999999999962); +#1499=CIRCLE('',#34771,0.080000000000008); +#1500=CIRCLE('',#34772,0.0700000000000006); +#1501=CIRCLE('',#34773,0.0700000000000005); +#1502=CIRCLE('',#34774,0.0799999999999867); +#1503=CIRCLE('',#34775,0.0799999999999963); +#1504=CIRCLE('',#34776,0.0800000000000072); +#1505=CIRCLE('',#34777,0.0800000000000046); +#1506=CIRCLE('',#34778,0.0700000000000006); +#1507=CIRCLE('',#34779,0.0700000000000005); +#1508=CIRCLE('',#34780,0.0799999999999962); +#1509=CIRCLE('',#34781,0.0799999999999869); +#1510=CIRCLE('',#34782,0.0799999999999963); +#1511=CIRCLE('',#34783,0.0800000000000078); +#1512=CIRCLE('',#34784,0.0700000000000015); +#1513=CIRCLE('',#34785,0.0700000000000008); +#1514=CIRCLE('',#34786,0.0799999999999963); +#1515=CIRCLE('',#34787,0.08000000000001); +#1516=CIRCLE('',#34788,0.0799999999999963); +#1517=CIRCLE('',#34789,0.080000000000016); +#1518=CIRCLE('',#34790,0.0700000000000006); +#1519=CIRCLE('',#34791,0.0700000000000002); +#1520=CIRCLE('',#34792,0.0800000000000202); +#1521=CIRCLE('',#34793,0.0799999999999868); +#1522=CIRCLE('',#34794,0.0800000000000202); +#1523=CIRCLE('',#34795,0.0800000000000163); +#1524=CIRCLE('',#34796,0.0700000000000006); +#1525=CIRCLE('',#34797,0.0700000000000002); +#1526=CIRCLE('',#34798,0.0799999999999965); +#1527=CIRCLE('',#34799,0.0799999999999868); +#1528=CIRCLE('',#34800,0.0799999999999958); +#1529=CIRCLE('',#34801,0.0799999999999928); +#1530=CIRCLE('',#34802,0.0700000000000006); +#1531=CIRCLE('',#34803,0.0700000000000006); +#1532=CIRCLE('',#34804,0.0799999999999961); +#1533=CIRCLE('',#34805,0.0799999999999868); +#1534=CIRCLE('',#34806,0.0800000000000079); +#1535=CIRCLE('',#34807,0.0799999999999933); +#1536=CIRCLE('',#34808,0.0700000000000006); +#1537=CIRCLE('',#34809,0.069999999999998); +#1538=CIRCLE('',#34810,0.080000000000021); +#1539=CIRCLE('',#34811,0.0799999999999863); +#1540=CIRCLE('',#34812,0.0799999999999958); +#1541=CIRCLE('',#34813,0.0800000000000028); +#1542=CIRCLE('',#34814,0.0700000000000024); +#1543=CIRCLE('',#34815,0.0699999999999989); +#1544=CIRCLE('',#34816,0.0799999999999958); +#1545=CIRCLE('',#34817,0.0799999999999872); +#1546=CIRCLE('',#34818,0.0800000000000195); +#1547=CIRCLE('',#34819,0.0799999999999924); +#1548=CIRCLE('',#34820,0.0700000000000015); +#1549=CIRCLE('',#34821,0.0699999999999998); +#1550=CIRCLE('',#34822,0.0799999999999965); +#1551=CIRCLE('',#34823,0.0800000000000098); +#1552=CIRCLE('',#34824,0.0799999999999965); +#1553=CIRCLE('',#34825,0.0799999999999933); +#1554=CIRCLE('',#34826,0.0700000000000006); +#1555=CIRCLE('',#34827,0.0699999999999998); +#1556=CIRCLE('',#34828,0.0800000000000079); +#1557=CIRCLE('',#34829,0.0799999999999863); +#1558=CIRCLE('',#34830,0.0799999999999958); +#1559=CIRCLE('',#34831,0.0800000000000158); +#1560=CIRCLE('',#34832,0.0700000000000006); +#1561=CIRCLE('',#34833,0.0699999999999989); +#1562=CIRCLE('',#34834,0.0800000000000316); +#1563=CIRCLE('',#34835,0.0800000000000063); +#1564=CIRCLE('',#34837,0.0800000000000063); +#1565=CIRCLE('',#34838,0.0800000000000316); +#1566=CIRCLE('',#34839,0.0699999999999989); +#1567=CIRCLE('',#34840,0.0700000000000006); +#1568=CIRCLE('',#34841,0.0800000000000158); +#1569=CIRCLE('',#34842,0.0799999999999958); +#1570=CIRCLE('',#34843,0.0799999999999863); +#1571=CIRCLE('',#34844,0.0800000000000079); +#1572=CIRCLE('',#34845,0.0699999999999998); +#1573=CIRCLE('',#34846,0.0700000000000006); +#1574=CIRCLE('',#34847,0.0799999999999933); +#1575=CIRCLE('',#34848,0.0799999999999965); +#1576=CIRCLE('',#34849,0.0800000000000098); +#1577=CIRCLE('',#34850,0.0799999999999965); +#1578=CIRCLE('',#34851,0.0699999999999998); +#1579=CIRCLE('',#34852,0.0700000000000015); +#1580=CIRCLE('',#34853,0.0799999999999924); +#1581=CIRCLE('',#34854,0.0800000000000195); +#1582=CIRCLE('',#34855,0.0799999999999872); +#1583=CIRCLE('',#34856,0.0799999999999958); +#1584=CIRCLE('',#34857,0.0699999999999989); +#1585=CIRCLE('',#34858,0.0700000000000024); +#1586=CIRCLE('',#34859,0.0800000000000028); +#1587=CIRCLE('',#34860,0.0799999999999958); +#1588=CIRCLE('',#34861,0.0799999999999863); +#1589=CIRCLE('',#34862,0.080000000000021); +#1590=CIRCLE('',#34863,0.069999999999998); +#1591=CIRCLE('',#34864,0.0700000000000006); +#1592=CIRCLE('',#34865,0.0799999999999933); +#1593=CIRCLE('',#34866,0.0800000000000079); +#1594=CIRCLE('',#34867,0.0799999999999868); +#1595=CIRCLE('',#34868,0.0799999999999961); +#1596=CIRCLE('',#34869,0.0700000000000006); +#1597=CIRCLE('',#34870,0.0700000000000006); +#1598=CIRCLE('',#34871,0.0799999999999928); +#1599=CIRCLE('',#34872,0.0799999999999958); +#1600=CIRCLE('',#34873,0.0799999999999868); +#1601=CIRCLE('',#34874,0.0799999999999965); +#1602=CIRCLE('',#34875,0.0700000000000002); +#1603=CIRCLE('',#34876,0.0700000000000006); +#1604=CIRCLE('',#34877,0.0800000000000163); +#1605=CIRCLE('',#34878,0.0800000000000202); +#1606=CIRCLE('',#34879,0.0799999999999868); +#1607=CIRCLE('',#34880,0.0800000000000202); +#1608=CIRCLE('',#34881,0.0700000000000002); +#1609=CIRCLE('',#34882,0.0700000000000006); +#1610=CIRCLE('',#34883,0.080000000000016); +#1611=CIRCLE('',#34884,0.0799999999999963); +#1612=CIRCLE('',#34885,0.08000000000001); +#1613=CIRCLE('',#34886,0.0799999999999963); +#1614=CIRCLE('',#34887,0.0700000000000008); +#1615=CIRCLE('',#34888,0.0700000000000015); +#1616=CIRCLE('',#34889,0.0800000000000078); +#1617=CIRCLE('',#34890,0.0799999999999963); +#1618=CIRCLE('',#34891,0.0799999999999869); +#1619=CIRCLE('',#34892,0.0799999999999962); +#1620=CIRCLE('',#34893,0.0700000000000005); +#1621=CIRCLE('',#34894,0.0700000000000006); +#1622=CIRCLE('',#34895,0.0800000000000046); +#1623=CIRCLE('',#34896,0.0800000000000072); +#1624=CIRCLE('',#34897,0.0799999999999963); +#1625=CIRCLE('',#34898,0.0799999999999867); +#1626=CIRCLE('',#34899,0.0700000000000005); +#1627=CIRCLE('',#34900,0.0700000000000006); +#1628=CIRCLE('',#34901,0.080000000000008); +#1629=CIRCLE('',#34902,0.0799999999999962); +#1630=CIRCLE('',#34903,0.0799999999999868); +#1631=CIRCLE('',#34904,0.0799999999999967); +#1632=CIRCLE('',#34905,0.0700000000000008); +#1633=CIRCLE('',#34906,0.0700000000000006); +#1634=CIRCLE('',#34907,0.0800000000000048); +#1635=CIRCLE('',#34908,0.0800000000000071); +#1636=CIRCLE('',#34909,0.0799999999999987); +#1637=CIRCLE('',#34910,0.0799999999999963); +#1638=CIRCLE('',#34911,0.070000000000001); +#1639=CIRCLE('',#34912,0.0700000000000006); +#1640=CIRCLE('',#34913,0.0800000000000045); +#1641=CIRCLE('',#34914,0.0799999999999958); +#1642=CIRCLE('',#34915,0.0799999999999989); +#1643=CIRCLE('',#34916,0.0799999999999965); +#1644=CIRCLE('',#34917,0.0700000000000002); +#1645=CIRCLE('',#34918,0.0700000000000006); +#1646=CIRCLE('',#34919,0.0800000000000054); +#1647=CIRCLE('',#34920,0.0799999999999961); +#1648=CIRCLE('',#34921,0.079999999999998); +#1649=CIRCLE('',#34922,0.0799999999999958); +#1650=CIRCLE('',#34923,0.070000000000001); +#1651=CIRCLE('',#34924,0.0700000000000006); +#1652=CIRCLE('',#34925,0.0799999999999928); +#1653=CIRCLE('',#34926,0.0799999999999961); +#1654=CIRCLE('',#34927,0.0799999999999967); +#1655=CIRCLE('',#34928,0.0799999999999965); +#1656=CIRCLE('',#34929,0.0699999999999989); +#1657=CIRCLE('',#34930,0.0700000000000015); +#1658=CIRCLE('',#34931,0.0800000000000176); +#1659=CIRCLE('',#34932,0.0799999999999965); +#1660=CIRCLE('',#34933,0.0799999999999872); +#1661=CIRCLE('',#34934,0.0800000000000064); +#1662=CIRCLE('',#34935,0.0700000000000006); +#1663=CIRCLE('',#34936,0.0700000000000006); +#1664=CIRCLE('',#34937,0.0799999999999924); +#1665=CIRCLE('',#34938,0.0799999999999958); +#1666=CIRCLE('',#34939,0.0800000000000115); +#1667=CIRCLE('',#34940,0.0799999999999958); +#1668=CIRCLE('',#34941,0.069999999999998); +#1669=CIRCLE('',#34942,0.0700000000000006); +#1670=CIRCLE('',#34943,0.0799999999999933); +#1671=CIRCLE('',#34944,0.080000000000021); +#1672=CIRCLE('',#34945,0.0799999999999863); +#1673=CIRCLE('',#34946,0.0799999999999965); +#1674=CIRCLE('',#34947,0.0699999999999989); +#1675=CIRCLE('',#34948,0.0700000000000024); +#1676=CIRCLE('',#34949,0.0800000000000045); +#1677=CIRCLE('',#34950,0.0799999999999965); +#1678=CIRCLE('',#34951,0.0799999999999872); +#1679=CIRCLE('',#34952,0.0800000000000195); +#1680=CIRCLE('',#34953,0.0699999999999998); +#1681=CIRCLE('',#34954,0.0700000000000015); +#1682=CIRCLE('',#34955,0.080000000000021); +#1683=CIRCLE('',#34956,0.0799999999999831); +#1684=CIRCLE('',#35002,0.5024); +#1685=CIRCLE('',#35003,0.5024); +#1686=CIRCLE('',#35005,0.5024); +#1687=CIRCLE('',#35006,0.5024); +#1688=CIRCLE('',#35008,0.5024); +#1689=CIRCLE('',#35009,0.5024); +#1690=CIRCLE('',#35011,0.5024); +#1691=CIRCLE('',#35012,0.5024); +#1692=CIRCLE('',#35014,0.5024); +#1693=CIRCLE('',#35015,0.5024); +#1694=CIRCLE('',#35017,0.5024); +#1695=CIRCLE('',#35018,0.5024); +#1696=CIRCLE('',#35020,0.5024); +#1697=CIRCLE('',#35021,0.5024); +#1698=CIRCLE('',#35023,0.5024); +#1699=CIRCLE('',#35024,0.5024); +#1700=CIRCLE('',#35026,0.5024); +#1701=CIRCLE('',#35027,0.5024); +#1702=CIRCLE('',#35029,0.5024); +#1703=CIRCLE('',#35030,0.5024); +#1704=CIRCLE('',#35032,0.5024); +#1705=CIRCLE('',#35033,0.5024); +#1706=CIRCLE('',#35035,0.5024); +#1707=CIRCLE('',#35036,0.5024); +#1708=CIRCLE('',#35038,0.5024); +#1709=CIRCLE('',#35039,0.5024); +#1710=CIRCLE('',#35041,0.5024); +#1711=CIRCLE('',#35042,0.5024); +#1712=CIRCLE('',#35044,0.5024); +#1713=CIRCLE('',#35045,0.5024); +#1714=CIRCLE('',#35047,0.5024); +#1715=CIRCLE('',#35048,0.5024); +#1716=CIRCLE('',#35050,0.5024); +#1717=CIRCLE('',#35051,0.5024); +#1718=CIRCLE('',#35053,0.5024); +#1719=CIRCLE('',#35054,0.5024); +#1720=CIRCLE('',#35056,0.5024); +#1721=CIRCLE('',#35057,0.5024); +#1722=CIRCLE('',#35059,0.5024); +#1723=CIRCLE('',#35060,0.5024); +#1724=CIRCLE('',#35119,0.337399999999999); +#1725=CIRCLE('',#35120,0.337399999999999); +#1726=CIRCLE('',#35122,0.337399999999999); +#1727=CIRCLE('',#35123,0.337399999999999); +#1728=CIRCLE('',#35125,0.337399999999999); +#1729=CIRCLE('',#35126,0.337399999999999); +#1730=CIRCLE('',#35128,0.337399999999999); +#1731=CIRCLE('',#35129,0.337399999999999); +#1732=CIRCLE('',#35131,0.337399999999999); +#1733=CIRCLE('',#35132,0.337399999999999); +#1734=CIRCLE('',#35134,0.337399999999999); +#1735=CIRCLE('',#35135,0.337399999999999); +#1736=CIRCLE('',#35137,0.337399999999999); +#1737=CIRCLE('',#35138,0.337399999999999); +#1738=CIRCLE('',#35140,0.337399999999999); +#1739=CIRCLE('',#35141,0.337399999999999); +#1740=CIRCLE('',#35143,0.337399999999999); +#1741=CIRCLE('',#35144,0.337399999999999); +#1742=CIRCLE('',#35146,0.337399999999999); +#1743=CIRCLE('',#35147,0.337399999999999); +#1744=CIRCLE('',#35149,0.337399999999999); +#1745=CIRCLE('',#35150,0.337399999999999); +#1746=CIRCLE('',#35152,0.337399999999999); +#1747=CIRCLE('',#35153,0.337399999999999); +#1748=CIRCLE('',#35155,0.337399999999999); +#1749=CIRCLE('',#35156,0.337399999999999); +#1750=CIRCLE('',#35158,0.337399999999999); +#1751=CIRCLE('',#35159,0.337399999999999); +#1752=CIRCLE('',#35161,0.337399999999999); +#1753=CIRCLE('',#35162,0.337399999999999); +#1754=CIRCLE('',#35164,0.337399999999999); +#1755=CIRCLE('',#35165,0.337399999999999); +#1756=CIRCLE('',#35167,0.337399999999999); +#1757=CIRCLE('',#35168,0.337399999999999); +#1758=CIRCLE('',#35170,0.337399999999999); +#1759=CIRCLE('',#35171,0.337399999999999); +#1760=CIRCLE('',#35173,0.337399999999999); +#1761=CIRCLE('',#35174,0.337399999999999); +#1762=CIRCLE('',#35176,0.337399999999999); +#1763=CIRCLE('',#35177,0.337399999999999); +#1764=CIRCLE('',#35179,0.337399999999999); +#1765=CIRCLE('',#35180,0.337399999999999); +#1766=CIRCLE('',#35182,0.337399999999999); +#1767=CIRCLE('',#35183,0.337399999999999); +#1768=CIRCLE('',#35185,0.337399999999999); +#1769=CIRCLE('',#35186,0.337399999999999); +#1770=CIRCLE('',#35188,0.337399999999999); +#1771=CIRCLE('',#35189,0.337399999999999); +#1772=CIRCLE('',#35191,0.337399999999999); +#1773=CIRCLE('',#35192,0.337399999999999); +#1774=CIRCLE('',#35194,0.337399999999999); +#1775=CIRCLE('',#35195,0.337399999999999); +#1776=CIRCLE('',#35197,0.337399999999999); +#1777=CIRCLE('',#35198,0.337399999999999); +#1778=CIRCLE('',#35200,0.337399999999999); +#1779=CIRCLE('',#35201,0.337399999999999); +#1780=CIRCLE('',#35203,0.337399999999999); +#1781=CIRCLE('',#35204,0.337399999999999); +#1782=CIRCLE('',#35206,0.337399999999999); +#1783=CIRCLE('',#35207,0.337399999999999); +#1784=CIRCLE('',#35209,0.337399999999999); +#1785=CIRCLE('',#35210,0.337399999999999); +#1786=CIRCLE('',#35212,0.337399999999999); +#1787=CIRCLE('',#35213,0.337399999999999); +#1788=CIRCLE('',#35215,0.337399999999999); +#1789=CIRCLE('',#35216,0.337399999999999); +#1790=CIRCLE('',#35218,0.337399999999999); +#1791=CIRCLE('',#35219,0.337399999999999); +#1792=CIRCLE('',#35221,0.337399999999999); +#1793=CIRCLE('',#35222,0.337399999999999); +#1794=CIRCLE('',#35224,0.337399999999999); +#1795=CIRCLE('',#35225,0.337399999999999); +#1796=CIRCLE('',#35227,0.337399999999999); +#1797=CIRCLE('',#35228,0.337399999999999); +#1798=CIRCLE('',#35230,0.337399999999999); +#1799=CIRCLE('',#35231,0.337399999999999); +#1800=CIRCLE('',#35233,0.337399999999999); +#1801=CIRCLE('',#35234,0.337399999999999); +#1802=CIRCLE('',#35236,0.337399999999999); +#1803=CIRCLE('',#35237,0.337399999999999); +#1804=CIRCLE('',#35296,0.502399999999999); +#1805=CIRCLE('',#35297,0.502399999999999); +#1806=CIRCLE('',#35299,0.502399999999999); +#1807=CIRCLE('',#35300,0.502399999999999); +#1808=CIRCLE('',#35302,0.502399999999999); +#1809=CIRCLE('',#35303,0.502399999999999); +#1810=CIRCLE('',#35305,0.502399999999999); +#1811=CIRCLE('',#35306,0.502399999999999); +#1812=CIRCLE('',#35308,0.502399999999999); +#1813=CIRCLE('',#35309,0.502399999999999); +#1814=CIRCLE('',#35311,0.502399999999999); +#1815=CIRCLE('',#35312,0.502399999999999); +#1816=CIRCLE('',#35314,0.502399999999999); +#1817=CIRCLE('',#35315,0.502399999999999); +#1818=CIRCLE('',#35317,0.502399999999999); +#1819=CIRCLE('',#35318,0.502399999999999); +#1820=CIRCLE('',#35320,0.502399999999999); +#1821=CIRCLE('',#35321,0.502399999999999); +#1822=CIRCLE('',#35323,0.502399999999999); +#1823=CIRCLE('',#35324,0.502399999999999); +#1824=CIRCLE('',#35326,0.502399999999999); +#1825=CIRCLE('',#35327,0.502399999999999); +#1826=CIRCLE('',#35329,0.502399999999999); +#1827=CIRCLE('',#35330,0.502399999999999); +#1828=CIRCLE('',#35332,0.502399999999999); +#1829=CIRCLE('',#35333,0.502399999999999); +#1830=CIRCLE('',#35335,0.502399999999999); +#1831=CIRCLE('',#35336,0.502399999999999); +#1832=CIRCLE('',#35338,0.502399999999999); +#1833=CIRCLE('',#35339,0.502399999999999); +#1834=CIRCLE('',#35341,0.502399999999999); +#1835=CIRCLE('',#35342,0.502399999999999); +#1836=CIRCLE('',#35344,0.502399999999999); +#1837=CIRCLE('',#35345,0.502399999999999); +#1838=CIRCLE('',#35347,0.502399999999999); +#1839=CIRCLE('',#35348,0.502399999999999); +#1840=CIRCLE('',#35350,0.502399999999999); +#1841=CIRCLE('',#35351,0.502399999999999); +#1842=CIRCLE('',#35353,0.502399999999999); +#1843=CIRCLE('',#35354,0.502399999999999); +#1844=ORIENTED_EDGE('',*,*,#11652,.F.); +#1845=ORIENTED_EDGE('',*,*,#11653,.T.); +#1846=ORIENTED_EDGE('',*,*,#11654,.F.); +#1847=ORIENTED_EDGE('',*,*,#11655,.F.); +#1848=ORIENTED_EDGE('',*,*,#11656,.T.); +#1849=ORIENTED_EDGE('',*,*,#11657,.T.); +#1850=ORIENTED_EDGE('',*,*,#11658,.F.); +#1851=ORIENTED_EDGE('',*,*,#11659,.T.); +#1852=ORIENTED_EDGE('',*,*,#11660,.F.); +#1853=ORIENTED_EDGE('',*,*,#11661,.F.); +#1854=ORIENTED_EDGE('',*,*,#11662,.T.); +#1855=ORIENTED_EDGE('',*,*,#11663,.T.); +#1856=ORIENTED_EDGE('',*,*,#11664,.T.); +#1857=ORIENTED_EDGE('',*,*,#11657,.F.); +#1858=ORIENTED_EDGE('',*,*,#11665,.F.); +#1859=ORIENTED_EDGE('',*,*,#11666,.T.); +#1860=ORIENTED_EDGE('',*,*,#11667,.F.); +#1861=ORIENTED_EDGE('',*,*,#11668,.F.); +#1862=ORIENTED_EDGE('',*,*,#11669,.F.); +#1863=ORIENTED_EDGE('',*,*,#11670,.T.); +#1864=ORIENTED_EDGE('',*,*,#11671,.F.); +#1865=ORIENTED_EDGE('',*,*,#11672,.T.); +#1866=ORIENTED_EDGE('',*,*,#11673,.F.); +#1867=ORIENTED_EDGE('',*,*,#11674,.F.); +#1868=ORIENTED_EDGE('',*,*,#11675,.T.); +#1869=ORIENTED_EDGE('',*,*,#11676,.T.); +#1870=ORIENTED_EDGE('',*,*,#11677,.T.); +#1871=ORIENTED_EDGE('',*,*,#11678,.T.); +#1872=ORIENTED_EDGE('',*,*,#11679,.T.); +#1873=ORIENTED_EDGE('',*,*,#11680,.F.); +#1874=ORIENTED_EDGE('',*,*,#11681,.F.); +#1875=ORIENTED_EDGE('',*,*,#11682,.F.); +#1876=ORIENTED_EDGE('',*,*,#11683,.F.); +#1877=ORIENTED_EDGE('',*,*,#11684,.T.); +#1878=ORIENTED_EDGE('',*,*,#11685,.F.); +#1879=ORIENTED_EDGE('',*,*,#11686,.T.); +#1880=ORIENTED_EDGE('',*,*,#11687,.T.); +#1881=ORIENTED_EDGE('',*,*,#11688,.T.); +#1882=ORIENTED_EDGE('',*,*,#11689,.F.); +#1883=ORIENTED_EDGE('',*,*,#11690,.F.); +#1884=ORIENTED_EDGE('',*,*,#11691,.F.); +#1885=ORIENTED_EDGE('',*,*,#11692,.F.); +#1886=ORIENTED_EDGE('',*,*,#11659,.F.); +#1887=ORIENTED_EDGE('',*,*,#11693,.T.); +#1888=ORIENTED_EDGE('',*,*,#11694,.T.); +#1889=ORIENTED_EDGE('',*,*,#11695,.T.); +#1890=ORIENTED_EDGE('',*,*,#11696,.T.); +#1891=ORIENTED_EDGE('',*,*,#11697,.T.); +#1892=ORIENTED_EDGE('',*,*,#11698,.T.); +#1893=ORIENTED_EDGE('',*,*,#11699,.T.); +#1894=ORIENTED_EDGE('',*,*,#11700,.F.); +#1895=ORIENTED_EDGE('',*,*,#11701,.T.); +#1896=ORIENTED_EDGE('',*,*,#11702,.T.); +#1897=ORIENTED_EDGE('',*,*,#11703,.T.); +#1898=ORIENTED_EDGE('',*,*,#11704,.T.); +#1899=ORIENTED_EDGE('',*,*,#11705,.T.); +#1900=ORIENTED_EDGE('',*,*,#11706,.T.); +#1901=ORIENTED_EDGE('',*,*,#11707,.T.); +#1902=ORIENTED_EDGE('',*,*,#11708,.T.); +#1903=ORIENTED_EDGE('',*,*,#11709,.T.); +#1904=ORIENTED_EDGE('',*,*,#11710,.T.); +#1905=ORIENTED_EDGE('',*,*,#11711,.T.); +#1906=ORIENTED_EDGE('',*,*,#11712,.T.); +#1907=ORIENTED_EDGE('',*,*,#11713,.T.); +#1908=ORIENTED_EDGE('',*,*,#11714,.T.); +#1909=ORIENTED_EDGE('',*,*,#11715,.F.); +#1910=ORIENTED_EDGE('',*,*,#11716,.T.); +#1911=ORIENTED_EDGE('',*,*,#11717,.T.); +#1912=ORIENTED_EDGE('',*,*,#11718,.T.); +#1913=ORIENTED_EDGE('',*,*,#11719,.F.); +#1914=ORIENTED_EDGE('',*,*,#11720,.T.); +#1915=ORIENTED_EDGE('',*,*,#11721,.T.); +#1916=ORIENTED_EDGE('',*,*,#11722,.T.); +#1917=ORIENTED_EDGE('',*,*,#11723,.T.); +#1918=ORIENTED_EDGE('',*,*,#11724,.T.); +#1919=ORIENTED_EDGE('',*,*,#11725,.T.); +#1920=ORIENTED_EDGE('',*,*,#11726,.F.); +#1921=ORIENTED_EDGE('',*,*,#11674,.T.); +#1922=ORIENTED_EDGE('',*,*,#11727,.F.); +#1923=ORIENTED_EDGE('',*,*,#11728,.F.); +#1924=ORIENTED_EDGE('',*,*,#11729,.T.); +#1925=ORIENTED_EDGE('',*,*,#11680,.T.); +#1926=ORIENTED_EDGE('',*,*,#11730,.F.); +#1927=ORIENTED_EDGE('',*,*,#11731,.T.); +#1928=ORIENTED_EDGE('',*,*,#11732,.F.); +#1929=ORIENTED_EDGE('',*,*,#11733,.T.); +#1930=ORIENTED_EDGE('',*,*,#11734,.F.); +#1931=ORIENTED_EDGE('',*,*,#11735,.T.); +#1932=ORIENTED_EDGE('',*,*,#11736,.F.); +#1933=ORIENTED_EDGE('',*,*,#11737,.T.); +#1934=ORIENTED_EDGE('',*,*,#11738,.T.); +#1935=ORIENTED_EDGE('',*,*,#11739,.T.); +#1936=ORIENTED_EDGE('',*,*,#11740,.T.); +#1937=ORIENTED_EDGE('',*,*,#11741,.T.); +#1938=ORIENTED_EDGE('',*,*,#11742,.T.); +#1939=ORIENTED_EDGE('',*,*,#11743,.T.); +#1940=ORIENTED_EDGE('',*,*,#11744,.T.); +#1941=ORIENTED_EDGE('',*,*,#11745,.T.); +#1942=ORIENTED_EDGE('',*,*,#11746,.T.); +#1943=ORIENTED_EDGE('',*,*,#11747,.T.); +#1944=ORIENTED_EDGE('',*,*,#11748,.T.); +#1945=ORIENTED_EDGE('',*,*,#11749,.T.); +#1946=ORIENTED_EDGE('',*,*,#11750,.T.); +#1947=ORIENTED_EDGE('',*,*,#11751,.T.); +#1948=ORIENTED_EDGE('',*,*,#11752,.T.); +#1949=ORIENTED_EDGE('',*,*,#11753,.T.); +#1950=ORIENTED_EDGE('',*,*,#11754,.T.); +#1951=ORIENTED_EDGE('',*,*,#11755,.T.); +#1952=ORIENTED_EDGE('',*,*,#11756,.T.); +#1953=ORIENTED_EDGE('',*,*,#11757,.T.); +#1954=ORIENTED_EDGE('',*,*,#11758,.T.); +#1955=ORIENTED_EDGE('',*,*,#11759,.T.); +#1956=ORIENTED_EDGE('',*,*,#11760,.T.); +#1957=ORIENTED_EDGE('',*,*,#11761,.T.); +#1958=ORIENTED_EDGE('',*,*,#11762,.T.); +#1959=ORIENTED_EDGE('',*,*,#11763,.T.); +#1960=ORIENTED_EDGE('',*,*,#11764,.T.); +#1961=ORIENTED_EDGE('',*,*,#11765,.T.); +#1962=ORIENTED_EDGE('',*,*,#11766,.T.); +#1963=ORIENTED_EDGE('',*,*,#11767,.T.); +#1964=ORIENTED_EDGE('',*,*,#11768,.T.); +#1965=ORIENTED_EDGE('',*,*,#11769,.T.); +#1966=ORIENTED_EDGE('',*,*,#11770,.T.); +#1967=ORIENTED_EDGE('',*,*,#11771,.T.); +#1968=ORIENTED_EDGE('',*,*,#11772,.T.); +#1969=ORIENTED_EDGE('',*,*,#11773,.T.); +#1970=ORIENTED_EDGE('',*,*,#11774,.T.); +#1971=ORIENTED_EDGE('',*,*,#11775,.T.); +#1972=ORIENTED_EDGE('',*,*,#11776,.T.); +#1973=ORIENTED_EDGE('',*,*,#11777,.T.); +#1974=ORIENTED_EDGE('',*,*,#11778,.T.); +#1975=ORIENTED_EDGE('',*,*,#11779,.T.); +#1976=ORIENTED_EDGE('',*,*,#11780,.T.); +#1977=ORIENTED_EDGE('',*,*,#11781,.T.); +#1978=ORIENTED_EDGE('',*,*,#11782,.T.); +#1979=ORIENTED_EDGE('',*,*,#11783,.T.); +#1980=ORIENTED_EDGE('',*,*,#11784,.T.); +#1981=ORIENTED_EDGE('',*,*,#11785,.T.); +#1982=ORIENTED_EDGE('',*,*,#11786,.T.); +#1983=ORIENTED_EDGE('',*,*,#11787,.T.); +#1984=ORIENTED_EDGE('',*,*,#11788,.T.); +#1985=ORIENTED_EDGE('',*,*,#11789,.T.); +#1986=ORIENTED_EDGE('',*,*,#11790,.T.); +#1987=ORIENTED_EDGE('',*,*,#11791,.T.); +#1988=ORIENTED_EDGE('',*,*,#11792,.T.); +#1989=ORIENTED_EDGE('',*,*,#11793,.T.); +#1990=ORIENTED_EDGE('',*,*,#11794,.T.); +#1991=ORIENTED_EDGE('',*,*,#11795,.T.); +#1992=ORIENTED_EDGE('',*,*,#11796,.T.); +#1993=ORIENTED_EDGE('',*,*,#11797,.T.); +#1994=ORIENTED_EDGE('',*,*,#11798,.T.); +#1995=ORIENTED_EDGE('',*,*,#11799,.T.); +#1996=ORIENTED_EDGE('',*,*,#11800,.T.); +#1997=ORIENTED_EDGE('',*,*,#11801,.T.); +#1998=ORIENTED_EDGE('',*,*,#11802,.T.); +#1999=ORIENTED_EDGE('',*,*,#11803,.T.); +#2000=ORIENTED_EDGE('',*,*,#11804,.T.); +#2001=ORIENTED_EDGE('',*,*,#11805,.T.); +#2002=ORIENTED_EDGE('',*,*,#11806,.T.); +#2003=ORIENTED_EDGE('',*,*,#11807,.T.); +#2004=ORIENTED_EDGE('',*,*,#11808,.T.); +#2005=ORIENTED_EDGE('',*,*,#11809,.T.); +#2006=ORIENTED_EDGE('',*,*,#11810,.T.); +#2007=ORIENTED_EDGE('',*,*,#11811,.T.); +#2008=ORIENTED_EDGE('',*,*,#11812,.T.); +#2009=ORIENTED_EDGE('',*,*,#11813,.T.); +#2010=ORIENTED_EDGE('',*,*,#11814,.T.); +#2011=ORIENTED_EDGE('',*,*,#11815,.T.); +#2012=ORIENTED_EDGE('',*,*,#11816,.T.); +#2013=ORIENTED_EDGE('',*,*,#11817,.T.); +#2014=ORIENTED_EDGE('',*,*,#11818,.F.); +#2015=ORIENTED_EDGE('',*,*,#11819,.F.); +#2016=ORIENTED_EDGE('',*,*,#11820,.F.); +#2017=ORIENTED_EDGE('',*,*,#11821,.T.); +#2018=ORIENTED_EDGE('',*,*,#11822,.F.); +#2019=ORIENTED_EDGE('',*,*,#11823,.T.); +#2020=ORIENTED_EDGE('',*,*,#11824,.F.); +#2021=ORIENTED_EDGE('',*,*,#11825,.T.); +#2022=ORIENTED_EDGE('',*,*,#11826,.F.); +#2023=ORIENTED_EDGE('',*,*,#11827,.T.); +#2024=ORIENTED_EDGE('',*,*,#11828,.F.); +#2025=ORIENTED_EDGE('',*,*,#11829,.T.); +#2026=ORIENTED_EDGE('',*,*,#11830,.F.); +#2027=ORIENTED_EDGE('',*,*,#11831,.T.); +#2028=ORIENTED_EDGE('',*,*,#11832,.F.); +#2029=ORIENTED_EDGE('',*,*,#11833,.T.); +#2030=ORIENTED_EDGE('',*,*,#11834,.F.); +#2031=ORIENTED_EDGE('',*,*,#11835,.T.); +#2032=ORIENTED_EDGE('',*,*,#11836,.F.); +#2033=ORIENTED_EDGE('',*,*,#11837,.T.); +#2034=ORIENTED_EDGE('',*,*,#11838,.F.); +#2035=ORIENTED_EDGE('',*,*,#11839,.T.); +#2036=ORIENTED_EDGE('',*,*,#11840,.F.); +#2037=ORIENTED_EDGE('',*,*,#11841,.T.); +#2038=ORIENTED_EDGE('',*,*,#11842,.F.); +#2039=ORIENTED_EDGE('',*,*,#11843,.T.); +#2040=ORIENTED_EDGE('',*,*,#11844,.F.); +#2041=ORIENTED_EDGE('',*,*,#11845,.T.); +#2042=ORIENTED_EDGE('',*,*,#11846,.F.); +#2043=ORIENTED_EDGE('',*,*,#11847,.T.); +#2044=ORIENTED_EDGE('',*,*,#11848,.F.); +#2045=ORIENTED_EDGE('',*,*,#11849,.T.); +#2046=ORIENTED_EDGE('',*,*,#11850,.F.); +#2047=ORIENTED_EDGE('',*,*,#11851,.T.); +#2048=ORIENTED_EDGE('',*,*,#11852,.F.); +#2049=ORIENTED_EDGE('',*,*,#11853,.T.); +#2050=ORIENTED_EDGE('',*,*,#11854,.F.); +#2051=ORIENTED_EDGE('',*,*,#11855,.T.); +#2052=ORIENTED_EDGE('',*,*,#11856,.F.); +#2053=ORIENTED_EDGE('',*,*,#11857,.T.); +#2054=ORIENTED_EDGE('',*,*,#11858,.F.); +#2055=ORIENTED_EDGE('',*,*,#11859,.T.); +#2056=ORIENTED_EDGE('',*,*,#11860,.F.); +#2057=ORIENTED_EDGE('',*,*,#11861,.T.); +#2058=ORIENTED_EDGE('',*,*,#11862,.F.); +#2059=ORIENTED_EDGE('',*,*,#11863,.T.); +#2060=ORIENTED_EDGE('',*,*,#11864,.F.); +#2061=ORIENTED_EDGE('',*,*,#11865,.T.); +#2062=ORIENTED_EDGE('',*,*,#11866,.F.); +#2063=ORIENTED_EDGE('',*,*,#11867,.T.); +#2064=ORIENTED_EDGE('',*,*,#11868,.F.); +#2065=ORIENTED_EDGE('',*,*,#11869,.T.); +#2066=ORIENTED_EDGE('',*,*,#11870,.F.); +#2067=ORIENTED_EDGE('',*,*,#11871,.T.); +#2068=ORIENTED_EDGE('',*,*,#11872,.F.); +#2069=ORIENTED_EDGE('',*,*,#11873,.T.); +#2070=ORIENTED_EDGE('',*,*,#11874,.F.); +#2071=ORIENTED_EDGE('',*,*,#11875,.T.); +#2072=ORIENTED_EDGE('',*,*,#11876,.F.); +#2073=ORIENTED_EDGE('',*,*,#11877,.T.); +#2074=ORIENTED_EDGE('',*,*,#11878,.F.); +#2075=ORIENTED_EDGE('',*,*,#11879,.T.); +#2076=ORIENTED_EDGE('',*,*,#11880,.F.); +#2077=ORIENTED_EDGE('',*,*,#11881,.T.); +#2078=ORIENTED_EDGE('',*,*,#11882,.F.); +#2079=ORIENTED_EDGE('',*,*,#11883,.T.); +#2080=ORIENTED_EDGE('',*,*,#11884,.F.); +#2081=ORIENTED_EDGE('',*,*,#11885,.T.); +#2082=ORIENTED_EDGE('',*,*,#11886,.F.); +#2083=ORIENTED_EDGE('',*,*,#11887,.T.); +#2084=ORIENTED_EDGE('',*,*,#11888,.F.); +#2085=ORIENTED_EDGE('',*,*,#11889,.T.); +#2086=ORIENTED_EDGE('',*,*,#11890,.F.); +#2087=ORIENTED_EDGE('',*,*,#11891,.T.); +#2088=ORIENTED_EDGE('',*,*,#11892,.F.); +#2089=ORIENTED_EDGE('',*,*,#11893,.T.); +#2090=ORIENTED_EDGE('',*,*,#11894,.F.); +#2091=ORIENTED_EDGE('',*,*,#11895,.T.); +#2092=ORIENTED_EDGE('',*,*,#11896,.F.); +#2093=ORIENTED_EDGE('',*,*,#11897,.T.); +#2094=ORIENTED_EDGE('',*,*,#11898,.F.); +#2095=ORIENTED_EDGE('',*,*,#11899,.T.); +#2096=ORIENTED_EDGE('',*,*,#11900,.T.); +#2097=ORIENTED_EDGE('',*,*,#11901,.T.); +#2098=ORIENTED_EDGE('',*,*,#11728,.T.); +#2099=ORIENTED_EDGE('',*,*,#11902,.T.); +#2100=ORIENTED_EDGE('',*,*,#11903,.F.); +#2101=ORIENTED_EDGE('',*,*,#11904,.F.); +#2102=ORIENTED_EDGE('',*,*,#11905,.F.); +#2103=ORIENTED_EDGE('',*,*,#11906,.T.); +#2104=ORIENTED_EDGE('',*,*,#11907,.F.); +#2105=ORIENTED_EDGE('',*,*,#11908,.F.); +#2106=ORIENTED_EDGE('',*,*,#11909,.F.); +#2107=ORIENTED_EDGE('',*,*,#11910,.T.); +#2108=ORIENTED_EDGE('',*,*,#11911,.F.); +#2109=ORIENTED_EDGE('',*,*,#11912,.F.); +#2110=ORIENTED_EDGE('',*,*,#11913,.F.); +#2111=ORIENTED_EDGE('',*,*,#11914,.T.); +#2112=ORIENTED_EDGE('',*,*,#11915,.F.); +#2113=ORIENTED_EDGE('',*,*,#11916,.F.); +#2114=ORIENTED_EDGE('',*,*,#11917,.F.); +#2115=ORIENTED_EDGE('',*,*,#11918,.T.); +#2116=ORIENTED_EDGE('',*,*,#11919,.F.); +#2117=ORIENTED_EDGE('',*,*,#11920,.F.); +#2118=ORIENTED_EDGE('',*,*,#11921,.F.); +#2119=ORIENTED_EDGE('',*,*,#11922,.T.); +#2120=ORIENTED_EDGE('',*,*,#11923,.F.); +#2121=ORIENTED_EDGE('',*,*,#11924,.F.); +#2122=ORIENTED_EDGE('',*,*,#11925,.F.); +#2123=ORIENTED_EDGE('',*,*,#11926,.T.); +#2124=ORIENTED_EDGE('',*,*,#11927,.F.); +#2125=ORIENTED_EDGE('',*,*,#11928,.F.); +#2126=ORIENTED_EDGE('',*,*,#11929,.F.); +#2127=ORIENTED_EDGE('',*,*,#11930,.T.); +#2128=ORIENTED_EDGE('',*,*,#11931,.F.); +#2129=ORIENTED_EDGE('',*,*,#11932,.F.); +#2130=ORIENTED_EDGE('',*,*,#11933,.F.); +#2131=ORIENTED_EDGE('',*,*,#11934,.T.); +#2132=ORIENTED_EDGE('',*,*,#11655,.T.); +#2133=ORIENTED_EDGE('',*,*,#11935,.T.); +#2134=ORIENTED_EDGE('',*,*,#11661,.T.); +#2135=ORIENTED_EDGE('',*,*,#11936,.T.); +#2136=ORIENTED_EDGE('',*,*,#11937,.T.); +#2137=ORIENTED_EDGE('',*,*,#11938,.T.); +#2138=ORIENTED_EDGE('',*,*,#11939,.F.); +#2139=ORIENTED_EDGE('',*,*,#11940,.F.); +#2140=ORIENTED_EDGE('',*,*,#11941,.F.); +#2141=ORIENTED_EDGE('',*,*,#11942,.T.); +#2142=ORIENTED_EDGE('',*,*,#11943,.F.); +#2143=ORIENTED_EDGE('',*,*,#11944,.F.); +#2144=ORIENTED_EDGE('',*,*,#11945,.F.); +#2145=ORIENTED_EDGE('',*,*,#11946,.T.); +#2146=ORIENTED_EDGE('',*,*,#11947,.F.); +#2147=ORIENTED_EDGE('',*,*,#11948,.F.); +#2148=ORIENTED_EDGE('',*,*,#11949,.F.); +#2149=ORIENTED_EDGE('',*,*,#11950,.T.); +#2150=ORIENTED_EDGE('',*,*,#11951,.F.); +#2151=ORIENTED_EDGE('',*,*,#11952,.F.); +#2152=ORIENTED_EDGE('',*,*,#11953,.F.); +#2153=ORIENTED_EDGE('',*,*,#11954,.T.); +#2154=ORIENTED_EDGE('',*,*,#11955,.F.); +#2155=ORIENTED_EDGE('',*,*,#11956,.F.); +#2156=ORIENTED_EDGE('',*,*,#11957,.F.); +#2157=ORIENTED_EDGE('',*,*,#11958,.T.); +#2158=ORIENTED_EDGE('',*,*,#11959,.F.); +#2159=ORIENTED_EDGE('',*,*,#11960,.F.); +#2160=ORIENTED_EDGE('',*,*,#11961,.F.); +#2161=ORIENTED_EDGE('',*,*,#11962,.T.); +#2162=ORIENTED_EDGE('',*,*,#11963,.F.); +#2163=ORIENTED_EDGE('',*,*,#11964,.F.); +#2164=ORIENTED_EDGE('',*,*,#11965,.F.); +#2165=ORIENTED_EDGE('',*,*,#11966,.T.); +#2166=ORIENTED_EDGE('',*,*,#11967,.F.); +#2167=ORIENTED_EDGE('',*,*,#11968,.F.); +#2168=ORIENTED_EDGE('',*,*,#11969,.F.); +#2169=ORIENTED_EDGE('',*,*,#11970,.T.); +#2170=ORIENTED_EDGE('',*,*,#11971,.T.); +#2171=ORIENTED_EDGE('',*,*,#11972,.F.); +#2172=ORIENTED_EDGE('',*,*,#11973,.F.); +#2173=ORIENTED_EDGE('',*,*,#11974,.F.); +#2174=ORIENTED_EDGE('',*,*,#11975,.T.); +#2175=ORIENTED_EDGE('',*,*,#11976,.T.); +#2176=ORIENTED_EDGE('',*,*,#11970,.F.); +#2177=ORIENTED_EDGE('',*,*,#11977,.T.); +#2178=ORIENTED_EDGE('',*,*,#11978,.T.); +#2179=ORIENTED_EDGE('',*,*,#11979,.T.); +#2180=ORIENTED_EDGE('',*,*,#11682,.T.); +#2181=ORIENTED_EDGE('',*,*,#11980,.F.); +#2182=ORIENTED_EDGE('',*,*,#11900,.F.); +#2183=ORIENTED_EDGE('',*,*,#11981,.T.); +#2184=ORIENTED_EDGE('',*,*,#11982,.T.); +#2185=ORIENTED_EDGE('',*,*,#11983,.F.); +#2186=ORIENTED_EDGE('',*,*,#11984,.T.); +#2187=ORIENTED_EDGE('',*,*,#11985,.F.); +#2188=ORIENTED_EDGE('',*,*,#11986,.T.); +#2189=ORIENTED_EDGE('',*,*,#11987,.T.); +#2190=ORIENTED_EDGE('',*,*,#11988,.F.); +#2191=ORIENTED_EDGE('',*,*,#11989,.T.); +#2192=ORIENTED_EDGE('',*,*,#11990,.T.); +#2193=ORIENTED_EDGE('',*,*,#11981,.F.); +#2194=ORIENTED_EDGE('',*,*,#11991,.T.); +#2195=ORIENTED_EDGE('',*,*,#11821,.F.); +#2196=ORIENTED_EDGE('',*,*,#11992,.T.); +#2197=ORIENTED_EDGE('',*,*,#11993,.T.); +#2198=ORIENTED_EDGE('',*,*,#11994,.F.); +#2199=ORIENTED_EDGE('',*,*,#11816,.F.); +#2200=ORIENTED_EDGE('',*,*,#11995,.F.); +#2201=ORIENTED_EDGE('',*,*,#11987,.F.); +#2202=ORIENTED_EDGE('',*,*,#11996,.T.); +#2203=ORIENTED_EDGE('',*,*,#11983,.T.); +#2204=ORIENTED_EDGE('',*,*,#11997,.T.); +#2205=ORIENTED_EDGE('',*,*,#11998,.T.); +#2206=ORIENTED_EDGE('',*,*,#11999,.T.); +#2207=ORIENTED_EDGE('',*,*,#11985,.T.); +#2208=ORIENTED_EDGE('',*,*,#12000,.F.); +#2209=ORIENTED_EDGE('',*,*,#11814,.F.); +#2210=ORIENTED_EDGE('',*,*,#12001,.F.); +#2211=ORIENTED_EDGE('',*,*,#12002,.T.); +#2212=ORIENTED_EDGE('',*,*,#12003,.T.); +#2213=ORIENTED_EDGE('',*,*,#11823,.F.); +#2214=ORIENTED_EDGE('',*,*,#12004,.T.); +#2215=ORIENTED_EDGE('',*,*,#12005,.T.); +#2216=ORIENTED_EDGE('',*,*,#12006,.T.); +#2217=ORIENTED_EDGE('',*,*,#12007,.F.); +#2218=ORIENTED_EDGE('',*,*,#12008,.T.); +#2219=ORIENTED_EDGE('',*,*,#12009,.F.); +#2220=ORIENTED_EDGE('',*,*,#12010,.T.); +#2221=ORIENTED_EDGE('',*,*,#12011,.T.); +#2222=ORIENTED_EDGE('',*,*,#12012,.F.); +#2223=ORIENTED_EDGE('',*,*,#12013,.T.); +#2224=ORIENTED_EDGE('',*,*,#12014,.T.); +#2225=ORIENTED_EDGE('',*,*,#12005,.F.); +#2226=ORIENTED_EDGE('',*,*,#12015,.T.); +#2227=ORIENTED_EDGE('',*,*,#11825,.F.); +#2228=ORIENTED_EDGE('',*,*,#12016,.T.); +#2229=ORIENTED_EDGE('',*,*,#12017,.T.); +#2230=ORIENTED_EDGE('',*,*,#12018,.F.); +#2231=ORIENTED_EDGE('',*,*,#11812,.F.); +#2232=ORIENTED_EDGE('',*,*,#12019,.F.); +#2233=ORIENTED_EDGE('',*,*,#12011,.F.); +#2234=ORIENTED_EDGE('',*,*,#12020,.T.); +#2235=ORIENTED_EDGE('',*,*,#12007,.T.); +#2236=ORIENTED_EDGE('',*,*,#12021,.T.); +#2237=ORIENTED_EDGE('',*,*,#12022,.T.); +#2238=ORIENTED_EDGE('',*,*,#12023,.T.); +#2239=ORIENTED_EDGE('',*,*,#12009,.T.); +#2240=ORIENTED_EDGE('',*,*,#12024,.F.); +#2241=ORIENTED_EDGE('',*,*,#11810,.F.); +#2242=ORIENTED_EDGE('',*,*,#12025,.F.); +#2243=ORIENTED_EDGE('',*,*,#12026,.T.); +#2244=ORIENTED_EDGE('',*,*,#12027,.T.); +#2245=ORIENTED_EDGE('',*,*,#11827,.F.); +#2246=ORIENTED_EDGE('',*,*,#12028,.T.); +#2247=ORIENTED_EDGE('',*,*,#12029,.T.); +#2248=ORIENTED_EDGE('',*,*,#12030,.T.); +#2249=ORIENTED_EDGE('',*,*,#12031,.F.); +#2250=ORIENTED_EDGE('',*,*,#12032,.T.); +#2251=ORIENTED_EDGE('',*,*,#12033,.F.); +#2252=ORIENTED_EDGE('',*,*,#12034,.T.); +#2253=ORIENTED_EDGE('',*,*,#12035,.T.); +#2254=ORIENTED_EDGE('',*,*,#12036,.F.); +#2255=ORIENTED_EDGE('',*,*,#12037,.T.); +#2256=ORIENTED_EDGE('',*,*,#12038,.T.); +#2257=ORIENTED_EDGE('',*,*,#12029,.F.); +#2258=ORIENTED_EDGE('',*,*,#12039,.T.); +#2259=ORIENTED_EDGE('',*,*,#11829,.F.); +#2260=ORIENTED_EDGE('',*,*,#12040,.T.); +#2261=ORIENTED_EDGE('',*,*,#12041,.T.); +#2262=ORIENTED_EDGE('',*,*,#12042,.F.); +#2263=ORIENTED_EDGE('',*,*,#11808,.F.); +#2264=ORIENTED_EDGE('',*,*,#12043,.F.); +#2265=ORIENTED_EDGE('',*,*,#12035,.F.); +#2266=ORIENTED_EDGE('',*,*,#12044,.T.); +#2267=ORIENTED_EDGE('',*,*,#12031,.T.); +#2268=ORIENTED_EDGE('',*,*,#12045,.T.); +#2269=ORIENTED_EDGE('',*,*,#12046,.T.); +#2270=ORIENTED_EDGE('',*,*,#12047,.T.); +#2271=ORIENTED_EDGE('',*,*,#12033,.T.); +#2272=ORIENTED_EDGE('',*,*,#12048,.F.); +#2273=ORIENTED_EDGE('',*,*,#11806,.F.); +#2274=ORIENTED_EDGE('',*,*,#12049,.F.); +#2275=ORIENTED_EDGE('',*,*,#12050,.T.); +#2276=ORIENTED_EDGE('',*,*,#12051,.T.); +#2277=ORIENTED_EDGE('',*,*,#11831,.F.); +#2278=ORIENTED_EDGE('',*,*,#12052,.T.); +#2279=ORIENTED_EDGE('',*,*,#12053,.T.); +#2280=ORIENTED_EDGE('',*,*,#12054,.T.); +#2281=ORIENTED_EDGE('',*,*,#12055,.F.); +#2282=ORIENTED_EDGE('',*,*,#12056,.T.); +#2283=ORIENTED_EDGE('',*,*,#12057,.F.); +#2284=ORIENTED_EDGE('',*,*,#12058,.T.); +#2285=ORIENTED_EDGE('',*,*,#12059,.T.); +#2286=ORIENTED_EDGE('',*,*,#12060,.F.); +#2287=ORIENTED_EDGE('',*,*,#12061,.T.); +#2288=ORIENTED_EDGE('',*,*,#12062,.T.); +#2289=ORIENTED_EDGE('',*,*,#12053,.F.); +#2290=ORIENTED_EDGE('',*,*,#12063,.T.); +#2291=ORIENTED_EDGE('',*,*,#11833,.F.); +#2292=ORIENTED_EDGE('',*,*,#12064,.T.); +#2293=ORIENTED_EDGE('',*,*,#12065,.T.); +#2294=ORIENTED_EDGE('',*,*,#12066,.F.); +#2295=ORIENTED_EDGE('',*,*,#11804,.F.); +#2296=ORIENTED_EDGE('',*,*,#12067,.F.); +#2297=ORIENTED_EDGE('',*,*,#12059,.F.); +#2298=ORIENTED_EDGE('',*,*,#12068,.T.); +#2299=ORIENTED_EDGE('',*,*,#12055,.T.); +#2300=ORIENTED_EDGE('',*,*,#12069,.T.); +#2301=ORIENTED_EDGE('',*,*,#12070,.T.); +#2302=ORIENTED_EDGE('',*,*,#12071,.T.); +#2303=ORIENTED_EDGE('',*,*,#12057,.T.); +#2304=ORIENTED_EDGE('',*,*,#12072,.F.); +#2305=ORIENTED_EDGE('',*,*,#11802,.F.); +#2306=ORIENTED_EDGE('',*,*,#12073,.F.); +#2307=ORIENTED_EDGE('',*,*,#12074,.T.); +#2308=ORIENTED_EDGE('',*,*,#12075,.T.); +#2309=ORIENTED_EDGE('',*,*,#11835,.F.); +#2310=ORIENTED_EDGE('',*,*,#12076,.T.); +#2311=ORIENTED_EDGE('',*,*,#12077,.T.); +#2312=ORIENTED_EDGE('',*,*,#12078,.T.); +#2313=ORIENTED_EDGE('',*,*,#12079,.F.); +#2314=ORIENTED_EDGE('',*,*,#12080,.T.); +#2315=ORIENTED_EDGE('',*,*,#12081,.F.); +#2316=ORIENTED_EDGE('',*,*,#12082,.T.); +#2317=ORIENTED_EDGE('',*,*,#12083,.T.); +#2318=ORIENTED_EDGE('',*,*,#12084,.F.); +#2319=ORIENTED_EDGE('',*,*,#12085,.T.); +#2320=ORIENTED_EDGE('',*,*,#12086,.T.); +#2321=ORIENTED_EDGE('',*,*,#12077,.F.); +#2322=ORIENTED_EDGE('',*,*,#12087,.T.); +#2323=ORIENTED_EDGE('',*,*,#11837,.F.); +#2324=ORIENTED_EDGE('',*,*,#12088,.T.); +#2325=ORIENTED_EDGE('',*,*,#12089,.T.); +#2326=ORIENTED_EDGE('',*,*,#12090,.F.); +#2327=ORIENTED_EDGE('',*,*,#11800,.F.); +#2328=ORIENTED_EDGE('',*,*,#12091,.F.); +#2329=ORIENTED_EDGE('',*,*,#12083,.F.); +#2330=ORIENTED_EDGE('',*,*,#12092,.T.); +#2331=ORIENTED_EDGE('',*,*,#12079,.T.); +#2332=ORIENTED_EDGE('',*,*,#12093,.T.); +#2333=ORIENTED_EDGE('',*,*,#12094,.T.); +#2334=ORIENTED_EDGE('',*,*,#12095,.T.); +#2335=ORIENTED_EDGE('',*,*,#12081,.T.); +#2336=ORIENTED_EDGE('',*,*,#12096,.F.); +#2337=ORIENTED_EDGE('',*,*,#11798,.F.); +#2338=ORIENTED_EDGE('',*,*,#12097,.F.); +#2339=ORIENTED_EDGE('',*,*,#12098,.T.); +#2340=ORIENTED_EDGE('',*,*,#12099,.T.); +#2341=ORIENTED_EDGE('',*,*,#11839,.F.); +#2342=ORIENTED_EDGE('',*,*,#12100,.T.); +#2343=ORIENTED_EDGE('',*,*,#12101,.T.); +#2344=ORIENTED_EDGE('',*,*,#12102,.T.); +#2345=ORIENTED_EDGE('',*,*,#12103,.F.); +#2346=ORIENTED_EDGE('',*,*,#12104,.T.); +#2347=ORIENTED_EDGE('',*,*,#12105,.F.); +#2348=ORIENTED_EDGE('',*,*,#12106,.T.); +#2349=ORIENTED_EDGE('',*,*,#12107,.T.); +#2350=ORIENTED_EDGE('',*,*,#12108,.F.); +#2351=ORIENTED_EDGE('',*,*,#12109,.T.); +#2352=ORIENTED_EDGE('',*,*,#12110,.T.); +#2353=ORIENTED_EDGE('',*,*,#12101,.F.); +#2354=ORIENTED_EDGE('',*,*,#12111,.T.); +#2355=ORIENTED_EDGE('',*,*,#11841,.F.); +#2356=ORIENTED_EDGE('',*,*,#12112,.T.); +#2357=ORIENTED_EDGE('',*,*,#12113,.T.); +#2358=ORIENTED_EDGE('',*,*,#12114,.F.); +#2359=ORIENTED_EDGE('',*,*,#11796,.F.); +#2360=ORIENTED_EDGE('',*,*,#12115,.F.); +#2361=ORIENTED_EDGE('',*,*,#12107,.F.); +#2362=ORIENTED_EDGE('',*,*,#12116,.T.); +#2363=ORIENTED_EDGE('',*,*,#12103,.T.); +#2364=ORIENTED_EDGE('',*,*,#12117,.T.); +#2365=ORIENTED_EDGE('',*,*,#12118,.T.); +#2366=ORIENTED_EDGE('',*,*,#12119,.T.); +#2367=ORIENTED_EDGE('',*,*,#12105,.T.); +#2368=ORIENTED_EDGE('',*,*,#12120,.F.); +#2369=ORIENTED_EDGE('',*,*,#11794,.F.); +#2370=ORIENTED_EDGE('',*,*,#12121,.F.); +#2371=ORIENTED_EDGE('',*,*,#12122,.T.); +#2372=ORIENTED_EDGE('',*,*,#12123,.T.); +#2373=ORIENTED_EDGE('',*,*,#11843,.F.); +#2374=ORIENTED_EDGE('',*,*,#12124,.T.); +#2375=ORIENTED_EDGE('',*,*,#12125,.T.); +#2376=ORIENTED_EDGE('',*,*,#12126,.T.); +#2377=ORIENTED_EDGE('',*,*,#12127,.F.); +#2378=ORIENTED_EDGE('',*,*,#12128,.T.); +#2379=ORIENTED_EDGE('',*,*,#12129,.F.); +#2380=ORIENTED_EDGE('',*,*,#12130,.T.); +#2381=ORIENTED_EDGE('',*,*,#12131,.T.); +#2382=ORIENTED_EDGE('',*,*,#12132,.F.); +#2383=ORIENTED_EDGE('',*,*,#12133,.T.); +#2384=ORIENTED_EDGE('',*,*,#12134,.T.); +#2385=ORIENTED_EDGE('',*,*,#12125,.F.); +#2386=ORIENTED_EDGE('',*,*,#12135,.T.); +#2387=ORIENTED_EDGE('',*,*,#11845,.F.); +#2388=ORIENTED_EDGE('',*,*,#12136,.T.); +#2389=ORIENTED_EDGE('',*,*,#12137,.T.); +#2390=ORIENTED_EDGE('',*,*,#12138,.F.); +#2391=ORIENTED_EDGE('',*,*,#11792,.F.); +#2392=ORIENTED_EDGE('',*,*,#12139,.F.); +#2393=ORIENTED_EDGE('',*,*,#12131,.F.); +#2394=ORIENTED_EDGE('',*,*,#12140,.T.); +#2395=ORIENTED_EDGE('',*,*,#12127,.T.); +#2396=ORIENTED_EDGE('',*,*,#12141,.T.); +#2397=ORIENTED_EDGE('',*,*,#12142,.T.); +#2398=ORIENTED_EDGE('',*,*,#12143,.T.); +#2399=ORIENTED_EDGE('',*,*,#12129,.T.); +#2400=ORIENTED_EDGE('',*,*,#12144,.F.); +#2401=ORIENTED_EDGE('',*,*,#11790,.F.); +#2402=ORIENTED_EDGE('',*,*,#12145,.F.); +#2403=ORIENTED_EDGE('',*,*,#12146,.T.); +#2404=ORIENTED_EDGE('',*,*,#12147,.T.); +#2405=ORIENTED_EDGE('',*,*,#11847,.F.); +#2406=ORIENTED_EDGE('',*,*,#12148,.T.); +#2407=ORIENTED_EDGE('',*,*,#12149,.T.); +#2408=ORIENTED_EDGE('',*,*,#12150,.T.); +#2409=ORIENTED_EDGE('',*,*,#12151,.F.); +#2410=ORIENTED_EDGE('',*,*,#12152,.T.); +#2411=ORIENTED_EDGE('',*,*,#12153,.F.); +#2412=ORIENTED_EDGE('',*,*,#12154,.T.); +#2413=ORIENTED_EDGE('',*,*,#12155,.T.); +#2414=ORIENTED_EDGE('',*,*,#12156,.F.); +#2415=ORIENTED_EDGE('',*,*,#12157,.T.); +#2416=ORIENTED_EDGE('',*,*,#12158,.T.); +#2417=ORIENTED_EDGE('',*,*,#12149,.F.); +#2418=ORIENTED_EDGE('',*,*,#12159,.T.); +#2419=ORIENTED_EDGE('',*,*,#11849,.F.); +#2420=ORIENTED_EDGE('',*,*,#12160,.T.); +#2421=ORIENTED_EDGE('',*,*,#12161,.T.); +#2422=ORIENTED_EDGE('',*,*,#12162,.F.); +#2423=ORIENTED_EDGE('',*,*,#11788,.F.); +#2424=ORIENTED_EDGE('',*,*,#12163,.F.); +#2425=ORIENTED_EDGE('',*,*,#12155,.F.); +#2426=ORIENTED_EDGE('',*,*,#12164,.T.); +#2427=ORIENTED_EDGE('',*,*,#12151,.T.); +#2428=ORIENTED_EDGE('',*,*,#12165,.T.); +#2429=ORIENTED_EDGE('',*,*,#12166,.T.); +#2430=ORIENTED_EDGE('',*,*,#12167,.T.); +#2431=ORIENTED_EDGE('',*,*,#12153,.T.); +#2432=ORIENTED_EDGE('',*,*,#12168,.F.); +#2433=ORIENTED_EDGE('',*,*,#11786,.F.); +#2434=ORIENTED_EDGE('',*,*,#12169,.F.); +#2435=ORIENTED_EDGE('',*,*,#12170,.T.); +#2436=ORIENTED_EDGE('',*,*,#12171,.T.); +#2437=ORIENTED_EDGE('',*,*,#11851,.F.); +#2438=ORIENTED_EDGE('',*,*,#12172,.T.); +#2439=ORIENTED_EDGE('',*,*,#12173,.T.); +#2440=ORIENTED_EDGE('',*,*,#12174,.T.); +#2441=ORIENTED_EDGE('',*,*,#12175,.F.); +#2442=ORIENTED_EDGE('',*,*,#12176,.T.); +#2443=ORIENTED_EDGE('',*,*,#12177,.F.); +#2444=ORIENTED_EDGE('',*,*,#12178,.T.); +#2445=ORIENTED_EDGE('',*,*,#12179,.T.); +#2446=ORIENTED_EDGE('',*,*,#12180,.F.); +#2447=ORIENTED_EDGE('',*,*,#12181,.T.); +#2448=ORIENTED_EDGE('',*,*,#12182,.T.); +#2449=ORIENTED_EDGE('',*,*,#12173,.F.); +#2450=ORIENTED_EDGE('',*,*,#12183,.T.); +#2451=ORIENTED_EDGE('',*,*,#11853,.F.); +#2452=ORIENTED_EDGE('',*,*,#12184,.T.); +#2453=ORIENTED_EDGE('',*,*,#12185,.T.); +#2454=ORIENTED_EDGE('',*,*,#12186,.F.); +#2455=ORIENTED_EDGE('',*,*,#11784,.F.); +#2456=ORIENTED_EDGE('',*,*,#12187,.F.); +#2457=ORIENTED_EDGE('',*,*,#12179,.F.); +#2458=ORIENTED_EDGE('',*,*,#12188,.T.); +#2459=ORIENTED_EDGE('',*,*,#12175,.T.); +#2460=ORIENTED_EDGE('',*,*,#12189,.T.); +#2461=ORIENTED_EDGE('',*,*,#12190,.T.); +#2462=ORIENTED_EDGE('',*,*,#12191,.T.); +#2463=ORIENTED_EDGE('',*,*,#12177,.T.); +#2464=ORIENTED_EDGE('',*,*,#12192,.F.); +#2465=ORIENTED_EDGE('',*,*,#11782,.F.); +#2466=ORIENTED_EDGE('',*,*,#12193,.F.); +#2467=ORIENTED_EDGE('',*,*,#12194,.T.); +#2468=ORIENTED_EDGE('',*,*,#12195,.T.); +#2469=ORIENTED_EDGE('',*,*,#11855,.F.); +#2470=ORIENTED_EDGE('',*,*,#12196,.T.); +#2471=ORIENTED_EDGE('',*,*,#12197,.T.); +#2472=ORIENTED_EDGE('',*,*,#12198,.T.); +#2473=ORIENTED_EDGE('',*,*,#12199,.F.); +#2474=ORIENTED_EDGE('',*,*,#12200,.T.); +#2475=ORIENTED_EDGE('',*,*,#12201,.F.); +#2476=ORIENTED_EDGE('',*,*,#12202,.T.); +#2477=ORIENTED_EDGE('',*,*,#12203,.T.); +#2478=ORIENTED_EDGE('',*,*,#12204,.F.); +#2479=ORIENTED_EDGE('',*,*,#12205,.T.); +#2480=ORIENTED_EDGE('',*,*,#12206,.T.); +#2481=ORIENTED_EDGE('',*,*,#12197,.F.); +#2482=ORIENTED_EDGE('',*,*,#12207,.T.); +#2483=ORIENTED_EDGE('',*,*,#11857,.F.); +#2484=ORIENTED_EDGE('',*,*,#12208,.T.); +#2485=ORIENTED_EDGE('',*,*,#12209,.T.); +#2486=ORIENTED_EDGE('',*,*,#12210,.F.); +#2487=ORIENTED_EDGE('',*,*,#11780,.F.); +#2488=ORIENTED_EDGE('',*,*,#12211,.F.); +#2489=ORIENTED_EDGE('',*,*,#12203,.F.); +#2490=ORIENTED_EDGE('',*,*,#12212,.T.); +#2491=ORIENTED_EDGE('',*,*,#12199,.T.); +#2492=ORIENTED_EDGE('',*,*,#12213,.T.); +#2493=ORIENTED_EDGE('',*,*,#12214,.T.); +#2494=ORIENTED_EDGE('',*,*,#12215,.T.); +#2495=ORIENTED_EDGE('',*,*,#12201,.T.); +#2496=ORIENTED_EDGE('',*,*,#12216,.F.); +#2497=ORIENTED_EDGE('',*,*,#11778,.F.); +#2498=ORIENTED_EDGE('',*,*,#12217,.F.); +#2499=ORIENTED_EDGE('',*,*,#12218,.T.); +#2500=ORIENTED_EDGE('',*,*,#12219,.T.); +#2501=ORIENTED_EDGE('',*,*,#11859,.F.); +#2502=ORIENTED_EDGE('',*,*,#12220,.T.); +#2503=ORIENTED_EDGE('',*,*,#12221,.T.); +#2504=ORIENTED_EDGE('',*,*,#12222,.T.); +#2505=ORIENTED_EDGE('',*,*,#12223,.F.); +#2506=ORIENTED_EDGE('',*,*,#12224,.T.); +#2507=ORIENTED_EDGE('',*,*,#12225,.F.); +#2508=ORIENTED_EDGE('',*,*,#12226,.T.); +#2509=ORIENTED_EDGE('',*,*,#12227,.T.); +#2510=ORIENTED_EDGE('',*,*,#12228,.F.); +#2511=ORIENTED_EDGE('',*,*,#12229,.T.); +#2512=ORIENTED_EDGE('',*,*,#12230,.T.); +#2513=ORIENTED_EDGE('',*,*,#12221,.F.); +#2514=ORIENTED_EDGE('',*,*,#12231,.T.); +#2515=ORIENTED_EDGE('',*,*,#11861,.F.); +#2516=ORIENTED_EDGE('',*,*,#12232,.T.); +#2517=ORIENTED_EDGE('',*,*,#12233,.T.); +#2518=ORIENTED_EDGE('',*,*,#12234,.F.); +#2519=ORIENTED_EDGE('',*,*,#11776,.F.); +#2520=ORIENTED_EDGE('',*,*,#12235,.F.); +#2521=ORIENTED_EDGE('',*,*,#12227,.F.); +#2522=ORIENTED_EDGE('',*,*,#12236,.T.); +#2523=ORIENTED_EDGE('',*,*,#12223,.T.); +#2524=ORIENTED_EDGE('',*,*,#12237,.T.); +#2525=ORIENTED_EDGE('',*,*,#12238,.T.); +#2526=ORIENTED_EDGE('',*,*,#12239,.T.); +#2527=ORIENTED_EDGE('',*,*,#12225,.T.); +#2528=ORIENTED_EDGE('',*,*,#12240,.F.); +#2529=ORIENTED_EDGE('',*,*,#11774,.F.); +#2530=ORIENTED_EDGE('',*,*,#12241,.F.); +#2531=ORIENTED_EDGE('',*,*,#12242,.T.); +#2532=ORIENTED_EDGE('',*,*,#12243,.T.); +#2533=ORIENTED_EDGE('',*,*,#11863,.F.); +#2534=ORIENTED_EDGE('',*,*,#12244,.T.); +#2535=ORIENTED_EDGE('',*,*,#12245,.T.); +#2536=ORIENTED_EDGE('',*,*,#12246,.T.); +#2537=ORIENTED_EDGE('',*,*,#12247,.F.); +#2538=ORIENTED_EDGE('',*,*,#12248,.T.); +#2539=ORIENTED_EDGE('',*,*,#12249,.F.); +#2540=ORIENTED_EDGE('',*,*,#12250,.T.); +#2541=ORIENTED_EDGE('',*,*,#12251,.T.); +#2542=ORIENTED_EDGE('',*,*,#12252,.F.); +#2543=ORIENTED_EDGE('',*,*,#12253,.T.); +#2544=ORIENTED_EDGE('',*,*,#12254,.T.); +#2545=ORIENTED_EDGE('',*,*,#12245,.F.); +#2546=ORIENTED_EDGE('',*,*,#12255,.T.); +#2547=ORIENTED_EDGE('',*,*,#11865,.F.); +#2548=ORIENTED_EDGE('',*,*,#12256,.T.); +#2549=ORIENTED_EDGE('',*,*,#12257,.T.); +#2550=ORIENTED_EDGE('',*,*,#12258,.F.); +#2551=ORIENTED_EDGE('',*,*,#11772,.F.); +#2552=ORIENTED_EDGE('',*,*,#12259,.F.); +#2553=ORIENTED_EDGE('',*,*,#12251,.F.); +#2554=ORIENTED_EDGE('',*,*,#12260,.T.); +#2555=ORIENTED_EDGE('',*,*,#12247,.T.); +#2556=ORIENTED_EDGE('',*,*,#12261,.T.); +#2557=ORIENTED_EDGE('',*,*,#12262,.T.); +#2558=ORIENTED_EDGE('',*,*,#12263,.T.); +#2559=ORIENTED_EDGE('',*,*,#12249,.T.); +#2560=ORIENTED_EDGE('',*,*,#12264,.F.); +#2561=ORIENTED_EDGE('',*,*,#11770,.F.); +#2562=ORIENTED_EDGE('',*,*,#12265,.F.); +#2563=ORIENTED_EDGE('',*,*,#12266,.T.); +#2564=ORIENTED_EDGE('',*,*,#12267,.T.); +#2565=ORIENTED_EDGE('',*,*,#11867,.F.); +#2566=ORIENTED_EDGE('',*,*,#12268,.T.); +#2567=ORIENTED_EDGE('',*,*,#12269,.T.); +#2568=ORIENTED_EDGE('',*,*,#12270,.T.); +#2569=ORIENTED_EDGE('',*,*,#12271,.F.); +#2570=ORIENTED_EDGE('',*,*,#12272,.T.); +#2571=ORIENTED_EDGE('',*,*,#12273,.F.); +#2572=ORIENTED_EDGE('',*,*,#12274,.T.); +#2573=ORIENTED_EDGE('',*,*,#12275,.T.); +#2574=ORIENTED_EDGE('',*,*,#12276,.F.); +#2575=ORIENTED_EDGE('',*,*,#12277,.T.); +#2576=ORIENTED_EDGE('',*,*,#12278,.T.); +#2577=ORIENTED_EDGE('',*,*,#12269,.F.); +#2578=ORIENTED_EDGE('',*,*,#12279,.T.); +#2579=ORIENTED_EDGE('',*,*,#11869,.F.); +#2580=ORIENTED_EDGE('',*,*,#12280,.T.); +#2581=ORIENTED_EDGE('',*,*,#12281,.T.); +#2582=ORIENTED_EDGE('',*,*,#12282,.F.); +#2583=ORIENTED_EDGE('',*,*,#11768,.F.); +#2584=ORIENTED_EDGE('',*,*,#12283,.F.); +#2585=ORIENTED_EDGE('',*,*,#12275,.F.); +#2586=ORIENTED_EDGE('',*,*,#12284,.T.); +#2587=ORIENTED_EDGE('',*,*,#12271,.T.); +#2588=ORIENTED_EDGE('',*,*,#12285,.T.); +#2589=ORIENTED_EDGE('',*,*,#12286,.T.); +#2590=ORIENTED_EDGE('',*,*,#12287,.T.); +#2591=ORIENTED_EDGE('',*,*,#12273,.T.); +#2592=ORIENTED_EDGE('',*,*,#12288,.F.); +#2593=ORIENTED_EDGE('',*,*,#11766,.F.); +#2594=ORIENTED_EDGE('',*,*,#12289,.F.); +#2595=ORIENTED_EDGE('',*,*,#12290,.T.); +#2596=ORIENTED_EDGE('',*,*,#12291,.T.); +#2597=ORIENTED_EDGE('',*,*,#11871,.F.); +#2598=ORIENTED_EDGE('',*,*,#12292,.T.); +#2599=ORIENTED_EDGE('',*,*,#12293,.T.); +#2600=ORIENTED_EDGE('',*,*,#12294,.T.); +#2601=ORIENTED_EDGE('',*,*,#12295,.F.); +#2602=ORIENTED_EDGE('',*,*,#12296,.T.); +#2603=ORIENTED_EDGE('',*,*,#12297,.F.); +#2604=ORIENTED_EDGE('',*,*,#12298,.T.); +#2605=ORIENTED_EDGE('',*,*,#12299,.T.); +#2606=ORIENTED_EDGE('',*,*,#12300,.F.); +#2607=ORIENTED_EDGE('',*,*,#12301,.T.); +#2608=ORIENTED_EDGE('',*,*,#12302,.T.); +#2609=ORIENTED_EDGE('',*,*,#12293,.F.); +#2610=ORIENTED_EDGE('',*,*,#12303,.T.); +#2611=ORIENTED_EDGE('',*,*,#11873,.F.); +#2612=ORIENTED_EDGE('',*,*,#12304,.T.); +#2613=ORIENTED_EDGE('',*,*,#12305,.T.); +#2614=ORIENTED_EDGE('',*,*,#12306,.F.); +#2615=ORIENTED_EDGE('',*,*,#11764,.F.); +#2616=ORIENTED_EDGE('',*,*,#12307,.F.); +#2617=ORIENTED_EDGE('',*,*,#12299,.F.); +#2618=ORIENTED_EDGE('',*,*,#12308,.T.); +#2619=ORIENTED_EDGE('',*,*,#12295,.T.); +#2620=ORIENTED_EDGE('',*,*,#12309,.T.); +#2621=ORIENTED_EDGE('',*,*,#12310,.T.); +#2622=ORIENTED_EDGE('',*,*,#12311,.T.); +#2623=ORIENTED_EDGE('',*,*,#12297,.T.); +#2624=ORIENTED_EDGE('',*,*,#12312,.F.); +#2625=ORIENTED_EDGE('',*,*,#11762,.F.); +#2626=ORIENTED_EDGE('',*,*,#12313,.F.); +#2627=ORIENTED_EDGE('',*,*,#12314,.T.); +#2628=ORIENTED_EDGE('',*,*,#12315,.T.); +#2629=ORIENTED_EDGE('',*,*,#11875,.F.); +#2630=ORIENTED_EDGE('',*,*,#12316,.T.); +#2631=ORIENTED_EDGE('',*,*,#12317,.T.); +#2632=ORIENTED_EDGE('',*,*,#12318,.T.); +#2633=ORIENTED_EDGE('',*,*,#12319,.F.); +#2634=ORIENTED_EDGE('',*,*,#12320,.T.); +#2635=ORIENTED_EDGE('',*,*,#12321,.F.); +#2636=ORIENTED_EDGE('',*,*,#12322,.T.); +#2637=ORIENTED_EDGE('',*,*,#12323,.T.); +#2638=ORIENTED_EDGE('',*,*,#12324,.F.); +#2639=ORIENTED_EDGE('',*,*,#12325,.T.); +#2640=ORIENTED_EDGE('',*,*,#12326,.T.); +#2641=ORIENTED_EDGE('',*,*,#12317,.F.); +#2642=ORIENTED_EDGE('',*,*,#12327,.T.); +#2643=ORIENTED_EDGE('',*,*,#11877,.F.); +#2644=ORIENTED_EDGE('',*,*,#12328,.T.); +#2645=ORIENTED_EDGE('',*,*,#12329,.T.); +#2646=ORIENTED_EDGE('',*,*,#12330,.F.); +#2647=ORIENTED_EDGE('',*,*,#11760,.F.); +#2648=ORIENTED_EDGE('',*,*,#12331,.F.); +#2649=ORIENTED_EDGE('',*,*,#12323,.F.); +#2650=ORIENTED_EDGE('',*,*,#12332,.T.); +#2651=ORIENTED_EDGE('',*,*,#12319,.T.); +#2652=ORIENTED_EDGE('',*,*,#12333,.T.); +#2653=ORIENTED_EDGE('',*,*,#12334,.T.); +#2654=ORIENTED_EDGE('',*,*,#12335,.T.); +#2655=ORIENTED_EDGE('',*,*,#12321,.T.); +#2656=ORIENTED_EDGE('',*,*,#12336,.F.); +#2657=ORIENTED_EDGE('',*,*,#11758,.F.); +#2658=ORIENTED_EDGE('',*,*,#12337,.F.); +#2659=ORIENTED_EDGE('',*,*,#12338,.T.); +#2660=ORIENTED_EDGE('',*,*,#12339,.T.); +#2661=ORIENTED_EDGE('',*,*,#11879,.F.); +#2662=ORIENTED_EDGE('',*,*,#12340,.T.); +#2663=ORIENTED_EDGE('',*,*,#12341,.T.); +#2664=ORIENTED_EDGE('',*,*,#12342,.T.); +#2665=ORIENTED_EDGE('',*,*,#12343,.F.); +#2666=ORIENTED_EDGE('',*,*,#12344,.T.); +#2667=ORIENTED_EDGE('',*,*,#12345,.F.); +#2668=ORIENTED_EDGE('',*,*,#12346,.T.); +#2669=ORIENTED_EDGE('',*,*,#12347,.T.); +#2670=ORIENTED_EDGE('',*,*,#12348,.F.); +#2671=ORIENTED_EDGE('',*,*,#12349,.T.); +#2672=ORIENTED_EDGE('',*,*,#12350,.T.); +#2673=ORIENTED_EDGE('',*,*,#12341,.F.); +#2674=ORIENTED_EDGE('',*,*,#12351,.T.); +#2675=ORIENTED_EDGE('',*,*,#11881,.F.); +#2676=ORIENTED_EDGE('',*,*,#12352,.T.); +#2677=ORIENTED_EDGE('',*,*,#12353,.T.); +#2678=ORIENTED_EDGE('',*,*,#12354,.F.); +#2679=ORIENTED_EDGE('',*,*,#11756,.F.); +#2680=ORIENTED_EDGE('',*,*,#12355,.F.); +#2681=ORIENTED_EDGE('',*,*,#12347,.F.); +#2682=ORIENTED_EDGE('',*,*,#12356,.T.); +#2683=ORIENTED_EDGE('',*,*,#12343,.T.); +#2684=ORIENTED_EDGE('',*,*,#12357,.T.); +#2685=ORIENTED_EDGE('',*,*,#12358,.T.); +#2686=ORIENTED_EDGE('',*,*,#12359,.T.); +#2687=ORIENTED_EDGE('',*,*,#12345,.T.); +#2688=ORIENTED_EDGE('',*,*,#12360,.F.); +#2689=ORIENTED_EDGE('',*,*,#11754,.F.); +#2690=ORIENTED_EDGE('',*,*,#12361,.F.); +#2691=ORIENTED_EDGE('',*,*,#12362,.T.); +#2692=ORIENTED_EDGE('',*,*,#12363,.T.); +#2693=ORIENTED_EDGE('',*,*,#11883,.F.); +#2694=ORIENTED_EDGE('',*,*,#12364,.T.); +#2695=ORIENTED_EDGE('',*,*,#12365,.T.); +#2696=ORIENTED_EDGE('',*,*,#12366,.T.); +#2697=ORIENTED_EDGE('',*,*,#12367,.F.); +#2698=ORIENTED_EDGE('',*,*,#12368,.T.); +#2699=ORIENTED_EDGE('',*,*,#12369,.F.); +#2700=ORIENTED_EDGE('',*,*,#12370,.T.); +#2701=ORIENTED_EDGE('',*,*,#12371,.T.); +#2702=ORIENTED_EDGE('',*,*,#12372,.F.); +#2703=ORIENTED_EDGE('',*,*,#12373,.T.); +#2704=ORIENTED_EDGE('',*,*,#12374,.T.); +#2705=ORIENTED_EDGE('',*,*,#12365,.F.); +#2706=ORIENTED_EDGE('',*,*,#12375,.T.); +#2707=ORIENTED_EDGE('',*,*,#11885,.F.); +#2708=ORIENTED_EDGE('',*,*,#12376,.T.); +#2709=ORIENTED_EDGE('',*,*,#12377,.T.); +#2710=ORIENTED_EDGE('',*,*,#12378,.F.); +#2711=ORIENTED_EDGE('',*,*,#11752,.F.); +#2712=ORIENTED_EDGE('',*,*,#12379,.F.); +#2713=ORIENTED_EDGE('',*,*,#12371,.F.); +#2714=ORIENTED_EDGE('',*,*,#12380,.T.); +#2715=ORIENTED_EDGE('',*,*,#12367,.T.); +#2716=ORIENTED_EDGE('',*,*,#12381,.T.); +#2717=ORIENTED_EDGE('',*,*,#12382,.T.); +#2718=ORIENTED_EDGE('',*,*,#12383,.T.); +#2719=ORIENTED_EDGE('',*,*,#12369,.T.); +#2720=ORIENTED_EDGE('',*,*,#12384,.F.); +#2721=ORIENTED_EDGE('',*,*,#11750,.F.); +#2722=ORIENTED_EDGE('',*,*,#12385,.F.); +#2723=ORIENTED_EDGE('',*,*,#12386,.T.); +#2724=ORIENTED_EDGE('',*,*,#12387,.T.); +#2725=ORIENTED_EDGE('',*,*,#11887,.F.); +#2726=ORIENTED_EDGE('',*,*,#12388,.T.); +#2727=ORIENTED_EDGE('',*,*,#12389,.T.); +#2728=ORIENTED_EDGE('',*,*,#12390,.T.); +#2729=ORIENTED_EDGE('',*,*,#12391,.F.); +#2730=ORIENTED_EDGE('',*,*,#12392,.T.); +#2731=ORIENTED_EDGE('',*,*,#12393,.F.); +#2732=ORIENTED_EDGE('',*,*,#12394,.T.); +#2733=ORIENTED_EDGE('',*,*,#12395,.T.); +#2734=ORIENTED_EDGE('',*,*,#12396,.F.); +#2735=ORIENTED_EDGE('',*,*,#12397,.T.); +#2736=ORIENTED_EDGE('',*,*,#12398,.T.); +#2737=ORIENTED_EDGE('',*,*,#12389,.F.); +#2738=ORIENTED_EDGE('',*,*,#12399,.T.); +#2739=ORIENTED_EDGE('',*,*,#11889,.F.); +#2740=ORIENTED_EDGE('',*,*,#12400,.T.); +#2741=ORIENTED_EDGE('',*,*,#12401,.T.); +#2742=ORIENTED_EDGE('',*,*,#12402,.F.); +#2743=ORIENTED_EDGE('',*,*,#11748,.F.); +#2744=ORIENTED_EDGE('',*,*,#12403,.F.); +#2745=ORIENTED_EDGE('',*,*,#12395,.F.); +#2746=ORIENTED_EDGE('',*,*,#12404,.T.); +#2747=ORIENTED_EDGE('',*,*,#12391,.T.); +#2748=ORIENTED_EDGE('',*,*,#12405,.T.); +#2749=ORIENTED_EDGE('',*,*,#12406,.T.); +#2750=ORIENTED_EDGE('',*,*,#12407,.T.); +#2751=ORIENTED_EDGE('',*,*,#12393,.T.); +#2752=ORIENTED_EDGE('',*,*,#12408,.F.); +#2753=ORIENTED_EDGE('',*,*,#11746,.F.); +#2754=ORIENTED_EDGE('',*,*,#12409,.F.); +#2755=ORIENTED_EDGE('',*,*,#12410,.T.); +#2756=ORIENTED_EDGE('',*,*,#12411,.T.); +#2757=ORIENTED_EDGE('',*,*,#11891,.F.); +#2758=ORIENTED_EDGE('',*,*,#12412,.T.); +#2759=ORIENTED_EDGE('',*,*,#12413,.T.); +#2760=ORIENTED_EDGE('',*,*,#12414,.T.); +#2761=ORIENTED_EDGE('',*,*,#12415,.F.); +#2762=ORIENTED_EDGE('',*,*,#12416,.T.); +#2763=ORIENTED_EDGE('',*,*,#12417,.F.); +#2764=ORIENTED_EDGE('',*,*,#12418,.T.); +#2765=ORIENTED_EDGE('',*,*,#12419,.T.); +#2766=ORIENTED_EDGE('',*,*,#12420,.F.); +#2767=ORIENTED_EDGE('',*,*,#12421,.T.); +#2768=ORIENTED_EDGE('',*,*,#12422,.T.); +#2769=ORIENTED_EDGE('',*,*,#12413,.F.); +#2770=ORIENTED_EDGE('',*,*,#12423,.T.); +#2771=ORIENTED_EDGE('',*,*,#11893,.F.); +#2772=ORIENTED_EDGE('',*,*,#12424,.T.); +#2773=ORIENTED_EDGE('',*,*,#12425,.T.); +#2774=ORIENTED_EDGE('',*,*,#12426,.F.); +#2775=ORIENTED_EDGE('',*,*,#11744,.F.); +#2776=ORIENTED_EDGE('',*,*,#12427,.F.); +#2777=ORIENTED_EDGE('',*,*,#12419,.F.); +#2778=ORIENTED_EDGE('',*,*,#12428,.T.); +#2779=ORIENTED_EDGE('',*,*,#12415,.T.); +#2780=ORIENTED_EDGE('',*,*,#12429,.T.); +#2781=ORIENTED_EDGE('',*,*,#12430,.T.); +#2782=ORIENTED_EDGE('',*,*,#12431,.T.); +#2783=ORIENTED_EDGE('',*,*,#12417,.T.); +#2784=ORIENTED_EDGE('',*,*,#12432,.F.); +#2785=ORIENTED_EDGE('',*,*,#11742,.F.); +#2786=ORIENTED_EDGE('',*,*,#12433,.F.); +#2787=ORIENTED_EDGE('',*,*,#12434,.T.); +#2788=ORIENTED_EDGE('',*,*,#12435,.T.); +#2789=ORIENTED_EDGE('',*,*,#11895,.F.); +#2790=ORIENTED_EDGE('',*,*,#12436,.T.); +#2791=ORIENTED_EDGE('',*,*,#12437,.T.); +#2792=ORIENTED_EDGE('',*,*,#12438,.T.); +#2793=ORIENTED_EDGE('',*,*,#12439,.T.); +#2794=ORIENTED_EDGE('',*,*,#12440,.T.); +#2795=ORIENTED_EDGE('',*,*,#12441,.T.); +#2796=ORIENTED_EDGE('',*,*,#12442,.F.); +#2797=ORIENTED_EDGE('',*,*,#11738,.F.); +#2798=ORIENTED_EDGE('',*,*,#12443,.F.); +#2799=ORIENTED_EDGE('',*,*,#12444,.T.); +#2800=ORIENTED_EDGE('',*,*,#12445,.T.); +#2801=ORIENTED_EDGE('',*,*,#11733,.F.); +#2802=ORIENTED_EDGE('',*,*,#12446,.T.); +#2803=ORIENTED_EDGE('',*,*,#12447,.T.); +#2804=ORIENTED_EDGE('',*,*,#12448,.T.); +#2805=ORIENTED_EDGE('',*,*,#12437,.F.); +#2806=ORIENTED_EDGE('',*,*,#12449,.T.); +#2807=ORIENTED_EDGE('',*,*,#12441,.F.); +#2808=ORIENTED_EDGE('',*,*,#12450,.T.); +#2809=ORIENTED_EDGE('',*,*,#12451,.T.); +#2810=ORIENTED_EDGE('',*,*,#12452,.F.); +#2811=ORIENTED_EDGE('',*,*,#12453,.T.); +#2812=ORIENTED_EDGE('',*,*,#12454,.T.); +#2813=ORIENTED_EDGE('',*,*,#12447,.F.); +#2814=ORIENTED_EDGE('',*,*,#12455,.T.); +#2815=ORIENTED_EDGE('',*,*,#11897,.F.); +#2816=ORIENTED_EDGE('',*,*,#12456,.T.); +#2817=ORIENTED_EDGE('',*,*,#12457,.T.); +#2818=ORIENTED_EDGE('',*,*,#12458,.F.); +#2819=ORIENTED_EDGE('',*,*,#11740,.F.); +#2820=ORIENTED_EDGE('',*,*,#12459,.F.); +#2821=ORIENTED_EDGE('',*,*,#12451,.F.); +#2822=ORIENTED_EDGE('',*,*,#12460,.T.); +#2823=ORIENTED_EDGE('',*,*,#12445,.F.); +#2824=ORIENTED_EDGE('',*,*,#12461,.T.); +#2825=ORIENTED_EDGE('',*,*,#12462,.T.); +#2826=ORIENTED_EDGE('',*,*,#12463,.F.); +#2827=ORIENTED_EDGE('',*,*,#12464,.T.); +#2828=ORIENTED_EDGE('',*,*,#12465,.T.); +#2829=ORIENTED_EDGE('',*,*,#11734,.T.); +#2830=ORIENTED_EDGE('',*,*,#12456,.F.); +#2831=ORIENTED_EDGE('',*,*,#11896,.T.); +#2832=ORIENTED_EDGE('',*,*,#12435,.F.); +#2833=ORIENTED_EDGE('',*,*,#12466,.T.); +#2834=ORIENTED_EDGE('',*,*,#12424,.F.); +#2835=ORIENTED_EDGE('',*,*,#11892,.T.); +#2836=ORIENTED_EDGE('',*,*,#12411,.F.); +#2837=ORIENTED_EDGE('',*,*,#12467,.T.); +#2838=ORIENTED_EDGE('',*,*,#12400,.F.); +#2839=ORIENTED_EDGE('',*,*,#11888,.T.); +#2840=ORIENTED_EDGE('',*,*,#12387,.F.); +#2841=ORIENTED_EDGE('',*,*,#12468,.T.); +#2842=ORIENTED_EDGE('',*,*,#12376,.F.); +#2843=ORIENTED_EDGE('',*,*,#11884,.T.); +#2844=ORIENTED_EDGE('',*,*,#12363,.F.); +#2845=ORIENTED_EDGE('',*,*,#12469,.T.); +#2846=ORIENTED_EDGE('',*,*,#12352,.F.); +#2847=ORIENTED_EDGE('',*,*,#11880,.T.); +#2848=ORIENTED_EDGE('',*,*,#12339,.F.); +#2849=ORIENTED_EDGE('',*,*,#12470,.T.); +#2850=ORIENTED_EDGE('',*,*,#12328,.F.); +#2851=ORIENTED_EDGE('',*,*,#11876,.T.); +#2852=ORIENTED_EDGE('',*,*,#12315,.F.); +#2853=ORIENTED_EDGE('',*,*,#12471,.T.); +#2854=ORIENTED_EDGE('',*,*,#12304,.F.); +#2855=ORIENTED_EDGE('',*,*,#11872,.T.); +#2856=ORIENTED_EDGE('',*,*,#12291,.F.); +#2857=ORIENTED_EDGE('',*,*,#12472,.T.); +#2858=ORIENTED_EDGE('',*,*,#12280,.F.); +#2859=ORIENTED_EDGE('',*,*,#11868,.T.); +#2860=ORIENTED_EDGE('',*,*,#12267,.F.); +#2861=ORIENTED_EDGE('',*,*,#12473,.T.); +#2862=ORIENTED_EDGE('',*,*,#12256,.F.); +#2863=ORIENTED_EDGE('',*,*,#11864,.T.); +#2864=ORIENTED_EDGE('',*,*,#12243,.F.); +#2865=ORIENTED_EDGE('',*,*,#12474,.T.); +#2866=ORIENTED_EDGE('',*,*,#12232,.F.); +#2867=ORIENTED_EDGE('',*,*,#11860,.T.); +#2868=ORIENTED_EDGE('',*,*,#12219,.F.); +#2869=ORIENTED_EDGE('',*,*,#12475,.T.); +#2870=ORIENTED_EDGE('',*,*,#12208,.F.); +#2871=ORIENTED_EDGE('',*,*,#11856,.T.); +#2872=ORIENTED_EDGE('',*,*,#12195,.F.); +#2873=ORIENTED_EDGE('',*,*,#12476,.T.); +#2874=ORIENTED_EDGE('',*,*,#12184,.F.); +#2875=ORIENTED_EDGE('',*,*,#11852,.T.); +#2876=ORIENTED_EDGE('',*,*,#12171,.F.); +#2877=ORIENTED_EDGE('',*,*,#12477,.T.); +#2878=ORIENTED_EDGE('',*,*,#12160,.F.); +#2879=ORIENTED_EDGE('',*,*,#11848,.T.); +#2880=ORIENTED_EDGE('',*,*,#12147,.F.); +#2881=ORIENTED_EDGE('',*,*,#12478,.T.); +#2882=ORIENTED_EDGE('',*,*,#12136,.F.); +#2883=ORIENTED_EDGE('',*,*,#11844,.T.); +#2884=ORIENTED_EDGE('',*,*,#12123,.F.); +#2885=ORIENTED_EDGE('',*,*,#12479,.T.); +#2886=ORIENTED_EDGE('',*,*,#12112,.F.); +#2887=ORIENTED_EDGE('',*,*,#11840,.T.); +#2888=ORIENTED_EDGE('',*,*,#12099,.F.); +#2889=ORIENTED_EDGE('',*,*,#12480,.T.); +#2890=ORIENTED_EDGE('',*,*,#12088,.F.); +#2891=ORIENTED_EDGE('',*,*,#11836,.T.); +#2892=ORIENTED_EDGE('',*,*,#12075,.F.); +#2893=ORIENTED_EDGE('',*,*,#12481,.T.); +#2894=ORIENTED_EDGE('',*,*,#12064,.F.); +#2895=ORIENTED_EDGE('',*,*,#11832,.T.); +#2896=ORIENTED_EDGE('',*,*,#12051,.F.); +#2897=ORIENTED_EDGE('',*,*,#12482,.T.); +#2898=ORIENTED_EDGE('',*,*,#12040,.F.); +#2899=ORIENTED_EDGE('',*,*,#11828,.T.); +#2900=ORIENTED_EDGE('',*,*,#12027,.F.); +#2901=ORIENTED_EDGE('',*,*,#12483,.T.); +#2902=ORIENTED_EDGE('',*,*,#12016,.F.); +#2903=ORIENTED_EDGE('',*,*,#11824,.T.); +#2904=ORIENTED_EDGE('',*,*,#12003,.F.); +#2905=ORIENTED_EDGE('',*,*,#12484,.T.); +#2906=ORIENTED_EDGE('',*,*,#11992,.F.); +#2907=ORIENTED_EDGE('',*,*,#11820,.T.); +#2908=ORIENTED_EDGE('',*,*,#12485,.T.); +#2909=ORIENTED_EDGE('',*,*,#12486,.T.); +#2910=ORIENTED_EDGE('',*,*,#12487,.F.); +#2911=ORIENTED_EDGE('',*,*,#12488,.T.); +#2912=ORIENTED_EDGE('',*,*,#12489,.T.); +#2913=ORIENTED_EDGE('',*,*,#12490,.F.); +#2914=ORIENTED_EDGE('',*,*,#12443,.T.); +#2915=ORIENTED_EDGE('',*,*,#11737,.F.); +#2916=ORIENTED_EDGE('',*,*,#12491,.F.); +#2917=ORIENTED_EDGE('',*,*,#12492,.T.); +#2918=ORIENTED_EDGE('',*,*,#12493,.F.); +#2919=ORIENTED_EDGE('',*,*,#11741,.F.); +#2920=ORIENTED_EDGE('',*,*,#12458,.T.); +#2921=ORIENTED_EDGE('',*,*,#12494,.F.); +#2922=ORIENTED_EDGE('',*,*,#12433,.T.); +#2923=ORIENTED_EDGE('',*,*,#11745,.F.); +#2924=ORIENTED_EDGE('',*,*,#12426,.T.); +#2925=ORIENTED_EDGE('',*,*,#12495,.F.); +#2926=ORIENTED_EDGE('',*,*,#12409,.T.); +#2927=ORIENTED_EDGE('',*,*,#11749,.F.); +#2928=ORIENTED_EDGE('',*,*,#12402,.T.); +#2929=ORIENTED_EDGE('',*,*,#12496,.F.); +#2930=ORIENTED_EDGE('',*,*,#12385,.T.); +#2931=ORIENTED_EDGE('',*,*,#11753,.F.); +#2932=ORIENTED_EDGE('',*,*,#12378,.T.); +#2933=ORIENTED_EDGE('',*,*,#12497,.F.); +#2934=ORIENTED_EDGE('',*,*,#12361,.T.); +#2935=ORIENTED_EDGE('',*,*,#11757,.F.); +#2936=ORIENTED_EDGE('',*,*,#12354,.T.); +#2937=ORIENTED_EDGE('',*,*,#12498,.F.); +#2938=ORIENTED_EDGE('',*,*,#12337,.T.); +#2939=ORIENTED_EDGE('',*,*,#11761,.F.); +#2940=ORIENTED_EDGE('',*,*,#12330,.T.); +#2941=ORIENTED_EDGE('',*,*,#12499,.F.); +#2942=ORIENTED_EDGE('',*,*,#12313,.T.); +#2943=ORIENTED_EDGE('',*,*,#11765,.F.); +#2944=ORIENTED_EDGE('',*,*,#12306,.T.); +#2945=ORIENTED_EDGE('',*,*,#12500,.F.); +#2946=ORIENTED_EDGE('',*,*,#12289,.T.); +#2947=ORIENTED_EDGE('',*,*,#11769,.F.); +#2948=ORIENTED_EDGE('',*,*,#12282,.T.); +#2949=ORIENTED_EDGE('',*,*,#12501,.F.); +#2950=ORIENTED_EDGE('',*,*,#12265,.T.); +#2951=ORIENTED_EDGE('',*,*,#11773,.F.); +#2952=ORIENTED_EDGE('',*,*,#12258,.T.); +#2953=ORIENTED_EDGE('',*,*,#12502,.F.); +#2954=ORIENTED_EDGE('',*,*,#12241,.T.); +#2955=ORIENTED_EDGE('',*,*,#11777,.F.); +#2956=ORIENTED_EDGE('',*,*,#12234,.T.); +#2957=ORIENTED_EDGE('',*,*,#12503,.F.); +#2958=ORIENTED_EDGE('',*,*,#12217,.T.); +#2959=ORIENTED_EDGE('',*,*,#11781,.F.); +#2960=ORIENTED_EDGE('',*,*,#12210,.T.); +#2961=ORIENTED_EDGE('',*,*,#12504,.F.); +#2962=ORIENTED_EDGE('',*,*,#12193,.T.); +#2963=ORIENTED_EDGE('',*,*,#11785,.F.); +#2964=ORIENTED_EDGE('',*,*,#12186,.T.); +#2965=ORIENTED_EDGE('',*,*,#12505,.F.); +#2966=ORIENTED_EDGE('',*,*,#12169,.T.); +#2967=ORIENTED_EDGE('',*,*,#11789,.F.); +#2968=ORIENTED_EDGE('',*,*,#12162,.T.); +#2969=ORIENTED_EDGE('',*,*,#12506,.F.); +#2970=ORIENTED_EDGE('',*,*,#12145,.T.); +#2971=ORIENTED_EDGE('',*,*,#11793,.F.); +#2972=ORIENTED_EDGE('',*,*,#12138,.T.); +#2973=ORIENTED_EDGE('',*,*,#12507,.F.); +#2974=ORIENTED_EDGE('',*,*,#12121,.T.); +#2975=ORIENTED_EDGE('',*,*,#11797,.F.); +#2976=ORIENTED_EDGE('',*,*,#12114,.T.); +#2977=ORIENTED_EDGE('',*,*,#12508,.F.); +#2978=ORIENTED_EDGE('',*,*,#12097,.T.); +#2979=ORIENTED_EDGE('',*,*,#11801,.F.); +#2980=ORIENTED_EDGE('',*,*,#12090,.T.); +#2981=ORIENTED_EDGE('',*,*,#12509,.F.); +#2982=ORIENTED_EDGE('',*,*,#12073,.T.); +#2983=ORIENTED_EDGE('',*,*,#11805,.F.); +#2984=ORIENTED_EDGE('',*,*,#12066,.T.); +#2985=ORIENTED_EDGE('',*,*,#12510,.F.); +#2986=ORIENTED_EDGE('',*,*,#12049,.T.); +#2987=ORIENTED_EDGE('',*,*,#11809,.F.); +#2988=ORIENTED_EDGE('',*,*,#12042,.T.); +#2989=ORIENTED_EDGE('',*,*,#12511,.F.); +#2990=ORIENTED_EDGE('',*,*,#12025,.T.); +#2991=ORIENTED_EDGE('',*,*,#11813,.F.); +#2992=ORIENTED_EDGE('',*,*,#12018,.T.); +#2993=ORIENTED_EDGE('',*,*,#12512,.F.); +#2994=ORIENTED_EDGE('',*,*,#12001,.T.); +#2995=ORIENTED_EDGE('',*,*,#11817,.F.); +#2996=ORIENTED_EDGE('',*,*,#11994,.T.); +#2997=ORIENTED_EDGE('',*,*,#12513,.F.); +#2998=ORIENTED_EDGE('',*,*,#12514,.F.); +#2999=ORIENTED_EDGE('',*,*,#12515,.T.); +#3000=ORIENTED_EDGE('',*,*,#12516,.F.); +#3001=ORIENTED_EDGE('',*,*,#12444,.F.); +#3002=ORIENTED_EDGE('',*,*,#12490,.T.); +#3003=ORIENTED_EDGE('',*,*,#12517,.F.); +#3004=ORIENTED_EDGE('',*,*,#12461,.F.); +#3005=ORIENTED_EDGE('',*,*,#12457,.F.); +#3006=ORIENTED_EDGE('',*,*,#12466,.F.); +#3007=ORIENTED_EDGE('',*,*,#12434,.F.); +#3008=ORIENTED_EDGE('',*,*,#12494,.T.); +#3009=ORIENTED_EDGE('',*,*,#12425,.F.); +#3010=ORIENTED_EDGE('',*,*,#12467,.F.); +#3011=ORIENTED_EDGE('',*,*,#12410,.F.); +#3012=ORIENTED_EDGE('',*,*,#12495,.T.); +#3013=ORIENTED_EDGE('',*,*,#12401,.F.); +#3014=ORIENTED_EDGE('',*,*,#12468,.F.); +#3015=ORIENTED_EDGE('',*,*,#12386,.F.); +#3016=ORIENTED_EDGE('',*,*,#12496,.T.); +#3017=ORIENTED_EDGE('',*,*,#12377,.F.); +#3018=ORIENTED_EDGE('',*,*,#12469,.F.); +#3019=ORIENTED_EDGE('',*,*,#12362,.F.); +#3020=ORIENTED_EDGE('',*,*,#12497,.T.); +#3021=ORIENTED_EDGE('',*,*,#12353,.F.); +#3022=ORIENTED_EDGE('',*,*,#12470,.F.); +#3023=ORIENTED_EDGE('',*,*,#12338,.F.); +#3024=ORIENTED_EDGE('',*,*,#12498,.T.); +#3025=ORIENTED_EDGE('',*,*,#12329,.F.); +#3026=ORIENTED_EDGE('',*,*,#12471,.F.); +#3027=ORIENTED_EDGE('',*,*,#12314,.F.); +#3028=ORIENTED_EDGE('',*,*,#12499,.T.); +#3029=ORIENTED_EDGE('',*,*,#12305,.F.); +#3030=ORIENTED_EDGE('',*,*,#12472,.F.); +#3031=ORIENTED_EDGE('',*,*,#12290,.F.); +#3032=ORIENTED_EDGE('',*,*,#12500,.T.); +#3033=ORIENTED_EDGE('',*,*,#12281,.F.); +#3034=ORIENTED_EDGE('',*,*,#12473,.F.); +#3035=ORIENTED_EDGE('',*,*,#12266,.F.); +#3036=ORIENTED_EDGE('',*,*,#12501,.T.); +#3037=ORIENTED_EDGE('',*,*,#12257,.F.); +#3038=ORIENTED_EDGE('',*,*,#12474,.F.); +#3039=ORIENTED_EDGE('',*,*,#12242,.F.); +#3040=ORIENTED_EDGE('',*,*,#12502,.T.); +#3041=ORIENTED_EDGE('',*,*,#12233,.F.); +#3042=ORIENTED_EDGE('',*,*,#12475,.F.); +#3043=ORIENTED_EDGE('',*,*,#12218,.F.); +#3044=ORIENTED_EDGE('',*,*,#12503,.T.); +#3045=ORIENTED_EDGE('',*,*,#12209,.F.); +#3046=ORIENTED_EDGE('',*,*,#12476,.F.); +#3047=ORIENTED_EDGE('',*,*,#12194,.F.); +#3048=ORIENTED_EDGE('',*,*,#12504,.T.); +#3049=ORIENTED_EDGE('',*,*,#12185,.F.); +#3050=ORIENTED_EDGE('',*,*,#12477,.F.); +#3051=ORIENTED_EDGE('',*,*,#12170,.F.); +#3052=ORIENTED_EDGE('',*,*,#12505,.T.); +#3053=ORIENTED_EDGE('',*,*,#12161,.F.); +#3054=ORIENTED_EDGE('',*,*,#12478,.F.); +#3055=ORIENTED_EDGE('',*,*,#12146,.F.); +#3056=ORIENTED_EDGE('',*,*,#12506,.T.); +#3057=ORIENTED_EDGE('',*,*,#12137,.F.); +#3058=ORIENTED_EDGE('',*,*,#12479,.F.); +#3059=ORIENTED_EDGE('',*,*,#12122,.F.); +#3060=ORIENTED_EDGE('',*,*,#12507,.T.); +#3061=ORIENTED_EDGE('',*,*,#12113,.F.); +#3062=ORIENTED_EDGE('',*,*,#12480,.F.); +#3063=ORIENTED_EDGE('',*,*,#12098,.F.); +#3064=ORIENTED_EDGE('',*,*,#12508,.T.); +#3065=ORIENTED_EDGE('',*,*,#12089,.F.); +#3066=ORIENTED_EDGE('',*,*,#12481,.F.); +#3067=ORIENTED_EDGE('',*,*,#12074,.F.); +#3068=ORIENTED_EDGE('',*,*,#12509,.T.); +#3069=ORIENTED_EDGE('',*,*,#12065,.F.); +#3070=ORIENTED_EDGE('',*,*,#12482,.F.); +#3071=ORIENTED_EDGE('',*,*,#12050,.F.); +#3072=ORIENTED_EDGE('',*,*,#12510,.T.); +#3073=ORIENTED_EDGE('',*,*,#12041,.F.); +#3074=ORIENTED_EDGE('',*,*,#12483,.F.); +#3075=ORIENTED_EDGE('',*,*,#12026,.F.); +#3076=ORIENTED_EDGE('',*,*,#12511,.T.); +#3077=ORIENTED_EDGE('',*,*,#12017,.F.); +#3078=ORIENTED_EDGE('',*,*,#12484,.F.); +#3079=ORIENTED_EDGE('',*,*,#12002,.F.); +#3080=ORIENTED_EDGE('',*,*,#12512,.T.); +#3081=ORIENTED_EDGE('',*,*,#11993,.F.); +#3082=ORIENTED_EDGE('',*,*,#12489,.F.); +#3083=ORIENTED_EDGE('',*,*,#12518,.T.); +#3084=ORIENTED_EDGE('',*,*,#12513,.T.); +#3085=ORIENTED_EDGE('',*,*,#12519,.T.); +#3086=ORIENTED_EDGE('',*,*,#12520,.T.); +#3087=ORIENTED_EDGE('',*,*,#11966,.F.); +#3088=ORIENTED_EDGE('',*,*,#12521,.F.); +#3089=ORIENTED_EDGE('',*,*,#12522,.T.); +#3090=ORIENTED_EDGE('',*,*,#12523,.T.); +#3091=ORIENTED_EDGE('',*,*,#11962,.F.); +#3092=ORIENTED_EDGE('',*,*,#12524,.F.); +#3093=ORIENTED_EDGE('',*,*,#12525,.T.); +#3094=ORIENTED_EDGE('',*,*,#12526,.T.); +#3095=ORIENTED_EDGE('',*,*,#11958,.F.); +#3096=ORIENTED_EDGE('',*,*,#12527,.F.); +#3097=ORIENTED_EDGE('',*,*,#12528,.T.); +#3098=ORIENTED_EDGE('',*,*,#12529,.T.); +#3099=ORIENTED_EDGE('',*,*,#11954,.F.); +#3100=ORIENTED_EDGE('',*,*,#12530,.F.); +#3101=ORIENTED_EDGE('',*,*,#12531,.T.); +#3102=ORIENTED_EDGE('',*,*,#12532,.T.); +#3103=ORIENTED_EDGE('',*,*,#11950,.F.); +#3104=ORIENTED_EDGE('',*,*,#12533,.F.); +#3105=ORIENTED_EDGE('',*,*,#12534,.T.); +#3106=ORIENTED_EDGE('',*,*,#12535,.T.); +#3107=ORIENTED_EDGE('',*,*,#11946,.F.); +#3108=ORIENTED_EDGE('',*,*,#12536,.F.); +#3109=ORIENTED_EDGE('',*,*,#12537,.T.); +#3110=ORIENTED_EDGE('',*,*,#12538,.T.); +#3111=ORIENTED_EDGE('',*,*,#11942,.F.); +#3112=ORIENTED_EDGE('',*,*,#12539,.F.); +#3113=ORIENTED_EDGE('',*,*,#11934,.F.); +#3114=ORIENTED_EDGE('',*,*,#12540,.T.); +#3115=ORIENTED_EDGE('',*,*,#12541,.F.); +#3116=ORIENTED_EDGE('',*,*,#12542,.F.); +#3117=ORIENTED_EDGE('',*,*,#11665,.T.); +#3118=ORIENTED_EDGE('',*,*,#11656,.F.); +#3119=ORIENTED_EDGE('',*,*,#12543,.F.); +#3120=ORIENTED_EDGE('',*,*,#12544,.T.); +#3121=ORIENTED_EDGE('',*,*,#11930,.F.); +#3122=ORIENTED_EDGE('',*,*,#12545,.F.); +#3123=ORIENTED_EDGE('',*,*,#12546,.F.); +#3124=ORIENTED_EDGE('',*,*,#12547,.T.); +#3125=ORIENTED_EDGE('',*,*,#11926,.F.); +#3126=ORIENTED_EDGE('',*,*,#12548,.F.); +#3127=ORIENTED_EDGE('',*,*,#12549,.F.); +#3128=ORIENTED_EDGE('',*,*,#12550,.T.); +#3129=ORIENTED_EDGE('',*,*,#11922,.F.); +#3130=ORIENTED_EDGE('',*,*,#12551,.F.); +#3131=ORIENTED_EDGE('',*,*,#12552,.F.); +#3132=ORIENTED_EDGE('',*,*,#12553,.T.); +#3133=ORIENTED_EDGE('',*,*,#11918,.F.); +#3134=ORIENTED_EDGE('',*,*,#12554,.F.); +#3135=ORIENTED_EDGE('',*,*,#12555,.F.); +#3136=ORIENTED_EDGE('',*,*,#12556,.T.); +#3137=ORIENTED_EDGE('',*,*,#11914,.F.); +#3138=ORIENTED_EDGE('',*,*,#12557,.F.); +#3139=ORIENTED_EDGE('',*,*,#12558,.F.); +#3140=ORIENTED_EDGE('',*,*,#12559,.T.); +#3141=ORIENTED_EDGE('',*,*,#11910,.F.); +#3142=ORIENTED_EDGE('',*,*,#12560,.F.); +#3143=ORIENTED_EDGE('',*,*,#12561,.F.); +#3144=ORIENTED_EDGE('',*,*,#12562,.T.); +#3145=ORIENTED_EDGE('',*,*,#11902,.F.); +#3146=ORIENTED_EDGE('',*,*,#11727,.T.); +#3147=ORIENTED_EDGE('',*,*,#11673,.T.); +#3148=ORIENTED_EDGE('',*,*,#12563,.F.); +#3149=ORIENTED_EDGE('',*,*,#12564,.F.); +#3150=ORIENTED_EDGE('',*,*,#12565,.T.); +#3151=ORIENTED_EDGE('',*,*,#12566,.F.); +#3152=ORIENTED_EDGE('',*,*,#12567,.T.); +#3153=ORIENTED_EDGE('',*,*,#12568,.F.); +#3154=ORIENTED_EDGE('',*,*,#12464,.F.); +#3155=ORIENTED_EDGE('',*,*,#12569,.F.); +#3156=ORIENTED_EDGE('',*,*,#12486,.F.); +#3157=ORIENTED_EDGE('',*,*,#12570,.T.); +#3158=ORIENTED_EDGE('',*,*,#12571,.T.); +#3159=ORIENTED_EDGE('',*,*,#12572,.F.); +#3160=ORIENTED_EDGE('',*,*,#12573,.F.); +#3161=ORIENTED_EDGE('',*,*,#12574,.F.); +#3162=ORIENTED_EDGE('',*,*,#12573,.T.); +#3163=ORIENTED_EDGE('',*,*,#12575,.F.); +#3164=ORIENTED_EDGE('',*,*,#12576,.F.); +#3165=ORIENTED_EDGE('',*,*,#12577,.F.); +#3166=ORIENTED_EDGE('',*,*,#12576,.T.); +#3167=ORIENTED_EDGE('',*,*,#12578,.F.); +#3168=ORIENTED_EDGE('',*,*,#12514,.T.); +#3169=ORIENTED_EDGE('',*,*,#12518,.F.); +#3170=ORIENTED_EDGE('',*,*,#12488,.F.); +#3171=ORIENTED_EDGE('',*,*,#12579,.F.); +#3172=ORIENTED_EDGE('',*,*,#12462,.F.); +#3173=ORIENTED_EDGE('',*,*,#12517,.T.); +#3174=ORIENTED_EDGE('',*,*,#12493,.T.); +#3175=ORIENTED_EDGE('',*,*,#12580,.F.); +#3176=ORIENTED_EDGE('',*,*,#12581,.F.); +#3177=ORIENTED_EDGE('',*,*,#12582,.F.); +#3178=ORIENTED_EDGE('',*,*,#12581,.T.); +#3179=ORIENTED_EDGE('',*,*,#12583,.F.); +#3180=ORIENTED_EDGE('',*,*,#12565,.F.); +#3181=ORIENTED_EDGE('',*,*,#12584,.F.); +#3182=ORIENTED_EDGE('',*,*,#12571,.F.); +#3183=ORIENTED_EDGE('',*,*,#12585,.T.); +#3184=ORIENTED_EDGE('',*,*,#11818,.T.); +#3185=ORIENTED_EDGE('',*,*,#12516,.T.); +#3186=ORIENTED_EDGE('',*,*,#12586,.F.); +#3187=ORIENTED_EDGE('',*,*,#12491,.T.); +#3188=ORIENTED_EDGE('',*,*,#11736,.T.); +#3189=ORIENTED_EDGE('',*,*,#12587,.F.); +#3190=ORIENTED_EDGE('',*,*,#12567,.F.); +#3191=ORIENTED_EDGE('',*,*,#12588,.T.); +#3192=ORIENTED_EDGE('',*,*,#12589,.T.); +#3193=ORIENTED_EDGE('',*,*,#11938,.F.); +#3194=ORIENTED_EDGE('',*,*,#12590,.T.); +#3195=ORIENTED_EDGE('',*,*,#11690,.T.); +#3196=ORIENTED_EDGE('',*,*,#12591,.T.); +#3197=ORIENTED_EDGE('',*,*,#12592,.F.); +#3198=ORIENTED_EDGE('',*,*,#12593,.F.); +#3199=ORIENTED_EDGE('',*,*,#12594,.F.); +#3200=ORIENTED_EDGE('',*,*,#11688,.F.); +#3201=ORIENTED_EDGE('',*,*,#12595,.F.); +#3202=ORIENTED_EDGE('',*,*,#12596,.F.); +#3203=ORIENTED_EDGE('',*,*,#11684,.F.); +#3204=ORIENTED_EDGE('',*,*,#12597,.F.); +#3205=ORIENTED_EDGE('',*,*,#11681,.T.); +#3206=ORIENTED_EDGE('',*,*,#11729,.F.); +#3207=ORIENTED_EDGE('',*,*,#11901,.F.); +#3208=ORIENTED_EDGE('',*,*,#11980,.T.); +#3209=ORIENTED_EDGE('',*,*,#12598,.F.); +#3210=ORIENTED_EDGE('',*,*,#12599,.T.); +#3211=ORIENTED_EDGE('',*,*,#11906,.F.); +#3212=ORIENTED_EDGE('',*,*,#12600,.F.); +#3213=ORIENTED_EDGE('',*,*,#11654,.T.); +#3214=ORIENTED_EDGE('',*,*,#12601,.T.); +#3215=ORIENTED_EDGE('',*,*,#11662,.F.); +#3216=ORIENTED_EDGE('',*,*,#11935,.F.); +#3217=ORIENTED_EDGE('',*,*,#11692,.T.); +#3218=ORIENTED_EDGE('',*,*,#12602,.F.); +#3219=ORIENTED_EDGE('',*,*,#11936,.F.); +#3220=ORIENTED_EDGE('',*,*,#11660,.T.); +#3221=ORIENTED_EDGE('',*,*,#11691,.T.); +#3222=ORIENTED_EDGE('',*,*,#12590,.F.); +#3223=ORIENTED_EDGE('',*,*,#11937,.F.); +#3224=ORIENTED_EDGE('',*,*,#12602,.T.); +#3225=ORIENTED_EDGE('',*,*,#12603,.T.); +#3226=ORIENTED_EDGE('',*,*,#12604,.F.); +#3227=ORIENTED_EDGE('',*,*,#11667,.T.); +#3228=ORIENTED_EDGE('',*,*,#12605,.T.); +#3229=ORIENTED_EDGE('',*,*,#12542,.T.); +#3230=ORIENTED_EDGE('',*,*,#12606,.F.); +#3231=ORIENTED_EDGE('',*,*,#12605,.F.); +#3232=ORIENTED_EDGE('',*,*,#11666,.F.); +#3233=ORIENTED_EDGE('',*,*,#12541,.T.); +#3234=ORIENTED_EDGE('',*,*,#12607,.T.); +#3235=ORIENTED_EDGE('',*,*,#12603,.F.); +#3236=ORIENTED_EDGE('',*,*,#12606,.T.); +#3237=ORIENTED_EDGE('',*,*,#12608,.F.); +#3238=ORIENTED_EDGE('',*,*,#12609,.T.); +#3239=ORIENTED_EDGE('',*,*,#12563,.T.); +#3240=ORIENTED_EDGE('',*,*,#11672,.F.); +#3241=ORIENTED_EDGE('',*,*,#12610,.F.); +#3242=ORIENTED_EDGE('',*,*,#12611,.T.); +#3243=ORIENTED_EDGE('',*,*,#12608,.T.); +#3244=ORIENTED_EDGE('',*,*,#11671,.T.); +#3245=ORIENTED_EDGE('',*,*,#12611,.F.); +#3246=ORIENTED_EDGE('',*,*,#12612,.T.); +#3247=ORIENTED_EDGE('',*,*,#12561,.T.); +#3248=ORIENTED_EDGE('',*,*,#12609,.F.); +#3249=ORIENTED_EDGE('',*,*,#12613,.T.); +#3250=ORIENTED_EDGE('',*,*,#12614,.T.); +#3251=ORIENTED_EDGE('',*,*,#12615,.T.); +#3252=ORIENTED_EDGE('',*,*,#12543,.T.); +#3253=ORIENTED_EDGE('',*,*,#12616,.T.); +#3254=ORIENTED_EDGE('',*,*,#12617,.T.); +#3255=ORIENTED_EDGE('',*,*,#12618,.T.); +#3256=ORIENTED_EDGE('',*,*,#12546,.T.); +#3257=ORIENTED_EDGE('',*,*,#12619,.T.); +#3258=ORIENTED_EDGE('',*,*,#12620,.T.); +#3259=ORIENTED_EDGE('',*,*,#12621,.T.); +#3260=ORIENTED_EDGE('',*,*,#12549,.T.); +#3261=ORIENTED_EDGE('',*,*,#12622,.T.); +#3262=ORIENTED_EDGE('',*,*,#12623,.T.); +#3263=ORIENTED_EDGE('',*,*,#12624,.T.); +#3264=ORIENTED_EDGE('',*,*,#12552,.T.); +#3265=ORIENTED_EDGE('',*,*,#12625,.T.); +#3266=ORIENTED_EDGE('',*,*,#12626,.T.); +#3267=ORIENTED_EDGE('',*,*,#12627,.T.); +#3268=ORIENTED_EDGE('',*,*,#12555,.T.); +#3269=ORIENTED_EDGE('',*,*,#12628,.T.); +#3270=ORIENTED_EDGE('',*,*,#12629,.T.); +#3271=ORIENTED_EDGE('',*,*,#12630,.T.); +#3272=ORIENTED_EDGE('',*,*,#12558,.T.); +#3273=ORIENTED_EDGE('',*,*,#12631,.T.); +#3274=ORIENTED_EDGE('',*,*,#12632,.T.); +#3275=ORIENTED_EDGE('',*,*,#12633,.T.); +#3276=ORIENTED_EDGE('',*,*,#12598,.T.); +#3277=ORIENTED_EDGE('',*,*,#12634,.T.); +#3278=ORIENTED_EDGE('',*,*,#12635,.T.); +#3279=ORIENTED_EDGE('',*,*,#12636,.F.); +#3280=ORIENTED_EDGE('',*,*,#12637,.F.); +#3281=ORIENTED_EDGE('',*,*,#12636,.T.); +#3282=ORIENTED_EDGE('',*,*,#12638,.T.); +#3283=ORIENTED_EDGE('',*,*,#11903,.T.); +#3284=ORIENTED_EDGE('',*,*,#12562,.F.); +#3285=ORIENTED_EDGE('',*,*,#12612,.F.); +#3286=ORIENTED_EDGE('',*,*,#12610,.T.); +#3287=ORIENTED_EDGE('',*,*,#11670,.F.); +#3288=ORIENTED_EDGE('',*,*,#12639,.F.); +#3289=ORIENTED_EDGE('',*,*,#11668,.T.); +#3290=ORIENTED_EDGE('',*,*,#12604,.T.); +#3291=ORIENTED_EDGE('',*,*,#12607,.F.); +#3292=ORIENTED_EDGE('',*,*,#12540,.F.); +#3293=ORIENTED_EDGE('',*,*,#11933,.T.); +#3294=ORIENTED_EDGE('',*,*,#12640,.F.); +#3295=ORIENTED_EDGE('',*,*,#12613,.F.); +#3296=ORIENTED_EDGE('',*,*,#12641,.F.); +#3297=ORIENTED_EDGE('',*,*,#12637,.T.); +#3298=ORIENTED_EDGE('',*,*,#12639,.T.); +#3299=ORIENTED_EDGE('',*,*,#11669,.T.); +#3300=ORIENTED_EDGE('',*,*,#12641,.T.); +#3301=ORIENTED_EDGE('',*,*,#11689,.T.); +#3302=ORIENTED_EDGE('',*,*,#12594,.T.); +#3303=ORIENTED_EDGE('',*,*,#12642,.T.); +#3304=ORIENTED_EDGE('',*,*,#12591,.F.); +#3305=ORIENTED_EDGE('',*,*,#12643,.F.); +#3306=ORIENTED_EDGE('',*,*,#12588,.F.); +#3307=ORIENTED_EDGE('',*,*,#12642,.F.); +#3308=ORIENTED_EDGE('',*,*,#12593,.T.); +#3309=ORIENTED_EDGE('',*,*,#11683,.T.); +#3310=ORIENTED_EDGE('',*,*,#11979,.F.); +#3311=ORIENTED_EDGE('',*,*,#12644,.F.); +#3312=ORIENTED_EDGE('',*,*,#12597,.T.); +#3313=ORIENTED_EDGE('',*,*,#12645,.F.); +#3314=ORIENTED_EDGE('',*,*,#12595,.T.); +#3315=ORIENTED_EDGE('',*,*,#12644,.T.); +#3316=ORIENTED_EDGE('',*,*,#11978,.F.); +#3317=ORIENTED_EDGE('',*,*,#12646,.T.); +#3318=ORIENTED_EDGE('',*,*,#12647,.T.); +#3319=ORIENTED_EDGE('',*,*,#11939,.T.); +#3320=ORIENTED_EDGE('',*,*,#12589,.F.); +#3321=ORIENTED_EDGE('',*,*,#12643,.T.); +#3322=ORIENTED_EDGE('',*,*,#12592,.T.); +#3323=ORIENTED_EDGE('',*,*,#11687,.F.); +#3324=ORIENTED_EDGE('',*,*,#12648,.T.); +#3325=ORIENTED_EDGE('',*,*,#11685,.T.); +#3326=ORIENTED_EDGE('',*,*,#12596,.T.); +#3327=ORIENTED_EDGE('',*,*,#12645,.T.); +#3328=ORIENTED_EDGE('',*,*,#11977,.F.); +#3329=ORIENTED_EDGE('',*,*,#11969,.T.); +#3330=ORIENTED_EDGE('',*,*,#12649,.F.); +#3331=ORIENTED_EDGE('',*,*,#12650,.F.); +#3332=ORIENTED_EDGE('',*,*,#12651,.T.); +#3333=ORIENTED_EDGE('',*,*,#12652,.F.); +#3334=ORIENTED_EDGE('',*,*,#12653,.F.); +#3335=ORIENTED_EDGE('',*,*,#12519,.F.); +#3336=ORIENTED_EDGE('',*,*,#12654,.F.); +#3337=ORIENTED_EDGE('',*,*,#12655,.F.); +#3338=ORIENTED_EDGE('',*,*,#12656,.F.); +#3339=ORIENTED_EDGE('',*,*,#12522,.F.); +#3340=ORIENTED_EDGE('',*,*,#12657,.F.); +#3341=ORIENTED_EDGE('',*,*,#12658,.F.); +#3342=ORIENTED_EDGE('',*,*,#12659,.F.); +#3343=ORIENTED_EDGE('',*,*,#12525,.F.); +#3344=ORIENTED_EDGE('',*,*,#12660,.F.); +#3345=ORIENTED_EDGE('',*,*,#12661,.F.); +#3346=ORIENTED_EDGE('',*,*,#12662,.F.); +#3347=ORIENTED_EDGE('',*,*,#12528,.F.); +#3348=ORIENTED_EDGE('',*,*,#12663,.F.); +#3349=ORIENTED_EDGE('',*,*,#12664,.F.); +#3350=ORIENTED_EDGE('',*,*,#12665,.F.); +#3351=ORIENTED_EDGE('',*,*,#12531,.F.); +#3352=ORIENTED_EDGE('',*,*,#12666,.F.); +#3353=ORIENTED_EDGE('',*,*,#12667,.F.); +#3354=ORIENTED_EDGE('',*,*,#12668,.F.); +#3355=ORIENTED_EDGE('',*,*,#12534,.F.); +#3356=ORIENTED_EDGE('',*,*,#12669,.F.); +#3357=ORIENTED_EDGE('',*,*,#12670,.F.); +#3358=ORIENTED_EDGE('',*,*,#12671,.F.); +#3359=ORIENTED_EDGE('',*,*,#12537,.F.); +#3360=ORIENTED_EDGE('',*,*,#12672,.F.); +#3361=ORIENTED_EDGE('',*,*,#12673,.F.); +#3362=ORIENTED_EDGE('',*,*,#12646,.F.); +#3363=ORIENTED_EDGE('',*,*,#12674,.T.); +#3364=ORIENTED_EDGE('',*,*,#12650,.T.); +#3365=ORIENTED_EDGE('',*,*,#12674,.F.); +#3366=ORIENTED_EDGE('',*,*,#12648,.F.); +#3367=ORIENTED_EDGE('',*,*,#11686,.F.); +#3368=ORIENTED_EDGE('',*,*,#12651,.F.); +#3369=ORIENTED_EDGE('',*,*,#12568,.T.); +#3370=ORIENTED_EDGE('',*,*,#12587,.T.); +#3371=ORIENTED_EDGE('',*,*,#11735,.F.); +#3372=ORIENTED_EDGE('',*,*,#12465,.F.); +#3373=ORIENTED_EDGE('',*,*,#11819,.T.); +#3374=ORIENTED_EDGE('',*,*,#12585,.F.); +#3375=ORIENTED_EDGE('',*,*,#12570,.F.); +#3376=ORIENTED_EDGE('',*,*,#12485,.F.); +#3377=ORIENTED_EDGE('',*,*,#12583,.T.); +#3378=ORIENTED_EDGE('',*,*,#12580,.T.); +#3379=ORIENTED_EDGE('',*,*,#12492,.F.); +#3380=ORIENTED_EDGE('',*,*,#12586,.T.); +#3381=ORIENTED_EDGE('',*,*,#12566,.T.); +#3382=ORIENTED_EDGE('',*,*,#12572,.T.); +#3383=ORIENTED_EDGE('',*,*,#12584,.T.); +#3384=ORIENTED_EDGE('',*,*,#12515,.F.); +#3385=ORIENTED_EDGE('',*,*,#12578,.T.); +#3386=ORIENTED_EDGE('',*,*,#12575,.T.); +#3387=ORIENTED_EDGE('',*,*,#12569,.T.); +#3388=ORIENTED_EDGE('',*,*,#12574,.T.); +#3389=ORIENTED_EDGE('',*,*,#12577,.T.); +#3390=ORIENTED_EDGE('',*,*,#12487,.T.); +#3391=ORIENTED_EDGE('',*,*,#12582,.T.); +#3392=ORIENTED_EDGE('',*,*,#12564,.T.); +#3393=ORIENTED_EDGE('',*,*,#12463,.T.); +#3394=ORIENTED_EDGE('',*,*,#12579,.T.); +#3395=ORIENTED_EDGE('',*,*,#12675,.T.); +#3396=ORIENTED_EDGE('',*,*,#11904,.T.); +#3397=ORIENTED_EDGE('',*,*,#12638,.F.); +#3398=ORIENTED_EDGE('',*,*,#12635,.F.); +#3399=ORIENTED_EDGE('',*,*,#12600,.T.); +#3400=ORIENTED_EDGE('',*,*,#11905,.T.); +#3401=ORIENTED_EDGE('',*,*,#12675,.F.); +#3402=ORIENTED_EDGE('',*,*,#12634,.F.); +#3403=ORIENTED_EDGE('',*,*,#12676,.T.); +#3404=ORIENTED_EDGE('',*,*,#11907,.T.); +#3405=ORIENTED_EDGE('',*,*,#12599,.F.); +#3406=ORIENTED_EDGE('',*,*,#12633,.F.); +#3407=ORIENTED_EDGE('',*,*,#12677,.T.); +#3408=ORIENTED_EDGE('',*,*,#11908,.T.); +#3409=ORIENTED_EDGE('',*,*,#12676,.F.); +#3410=ORIENTED_EDGE('',*,*,#12632,.F.); +#3411=ORIENTED_EDGE('',*,*,#12560,.T.); +#3412=ORIENTED_EDGE('',*,*,#11909,.T.); +#3413=ORIENTED_EDGE('',*,*,#12677,.F.); +#3414=ORIENTED_EDGE('',*,*,#12631,.F.); +#3415=ORIENTED_EDGE('',*,*,#12678,.T.); +#3416=ORIENTED_EDGE('',*,*,#11911,.T.); +#3417=ORIENTED_EDGE('',*,*,#12559,.F.); +#3418=ORIENTED_EDGE('',*,*,#12630,.F.); +#3419=ORIENTED_EDGE('',*,*,#12679,.T.); +#3420=ORIENTED_EDGE('',*,*,#11912,.T.); +#3421=ORIENTED_EDGE('',*,*,#12678,.F.); +#3422=ORIENTED_EDGE('',*,*,#12629,.F.); +#3423=ORIENTED_EDGE('',*,*,#12557,.T.); +#3424=ORIENTED_EDGE('',*,*,#11913,.T.); +#3425=ORIENTED_EDGE('',*,*,#12679,.F.); +#3426=ORIENTED_EDGE('',*,*,#12628,.F.); +#3427=ORIENTED_EDGE('',*,*,#12680,.T.); +#3428=ORIENTED_EDGE('',*,*,#11915,.T.); +#3429=ORIENTED_EDGE('',*,*,#12556,.F.); +#3430=ORIENTED_EDGE('',*,*,#12627,.F.); +#3431=ORIENTED_EDGE('',*,*,#12681,.T.); +#3432=ORIENTED_EDGE('',*,*,#11916,.T.); +#3433=ORIENTED_EDGE('',*,*,#12680,.F.); +#3434=ORIENTED_EDGE('',*,*,#12626,.F.); +#3435=ORIENTED_EDGE('',*,*,#12554,.T.); +#3436=ORIENTED_EDGE('',*,*,#11917,.T.); +#3437=ORIENTED_EDGE('',*,*,#12681,.F.); +#3438=ORIENTED_EDGE('',*,*,#12625,.F.); +#3439=ORIENTED_EDGE('',*,*,#12682,.T.); +#3440=ORIENTED_EDGE('',*,*,#11919,.T.); +#3441=ORIENTED_EDGE('',*,*,#12553,.F.); +#3442=ORIENTED_EDGE('',*,*,#12624,.F.); +#3443=ORIENTED_EDGE('',*,*,#12683,.T.); +#3444=ORIENTED_EDGE('',*,*,#11920,.T.); +#3445=ORIENTED_EDGE('',*,*,#12682,.F.); +#3446=ORIENTED_EDGE('',*,*,#12623,.F.); +#3447=ORIENTED_EDGE('',*,*,#12551,.T.); +#3448=ORIENTED_EDGE('',*,*,#11921,.T.); +#3449=ORIENTED_EDGE('',*,*,#12683,.F.); +#3450=ORIENTED_EDGE('',*,*,#12622,.F.); +#3451=ORIENTED_EDGE('',*,*,#12684,.T.); +#3452=ORIENTED_EDGE('',*,*,#11923,.T.); +#3453=ORIENTED_EDGE('',*,*,#12550,.F.); +#3454=ORIENTED_EDGE('',*,*,#12621,.F.); +#3455=ORIENTED_EDGE('',*,*,#12685,.T.); +#3456=ORIENTED_EDGE('',*,*,#11924,.T.); +#3457=ORIENTED_EDGE('',*,*,#12684,.F.); +#3458=ORIENTED_EDGE('',*,*,#12620,.F.); +#3459=ORIENTED_EDGE('',*,*,#12548,.T.); +#3460=ORIENTED_EDGE('',*,*,#11925,.T.); +#3461=ORIENTED_EDGE('',*,*,#12685,.F.); +#3462=ORIENTED_EDGE('',*,*,#12619,.F.); +#3463=ORIENTED_EDGE('',*,*,#12686,.T.); +#3464=ORIENTED_EDGE('',*,*,#11927,.T.); +#3465=ORIENTED_EDGE('',*,*,#12547,.F.); +#3466=ORIENTED_EDGE('',*,*,#12618,.F.); +#3467=ORIENTED_EDGE('',*,*,#12687,.T.); +#3468=ORIENTED_EDGE('',*,*,#11928,.T.); +#3469=ORIENTED_EDGE('',*,*,#12686,.F.); +#3470=ORIENTED_EDGE('',*,*,#12617,.F.); +#3471=ORIENTED_EDGE('',*,*,#12545,.T.); +#3472=ORIENTED_EDGE('',*,*,#11929,.T.); +#3473=ORIENTED_EDGE('',*,*,#12687,.F.); +#3474=ORIENTED_EDGE('',*,*,#12616,.F.); +#3475=ORIENTED_EDGE('',*,*,#12688,.T.); +#3476=ORIENTED_EDGE('',*,*,#11931,.T.); +#3477=ORIENTED_EDGE('',*,*,#12544,.F.); +#3478=ORIENTED_EDGE('',*,*,#12615,.F.); +#3479=ORIENTED_EDGE('',*,*,#12640,.T.); +#3480=ORIENTED_EDGE('',*,*,#11932,.T.); +#3481=ORIENTED_EDGE('',*,*,#12688,.F.); +#3482=ORIENTED_EDGE('',*,*,#12614,.F.); +#3483=ORIENTED_EDGE('',*,*,#12673,.T.); +#3484=ORIENTED_EDGE('',*,*,#12689,.T.); +#3485=ORIENTED_EDGE('',*,*,#11940,.T.); +#3486=ORIENTED_EDGE('',*,*,#12647,.F.); +#3487=ORIENTED_EDGE('',*,*,#12672,.T.); +#3488=ORIENTED_EDGE('',*,*,#12539,.T.); +#3489=ORIENTED_EDGE('',*,*,#11941,.T.); +#3490=ORIENTED_EDGE('',*,*,#12689,.F.); +#3491=ORIENTED_EDGE('',*,*,#12671,.T.); +#3492=ORIENTED_EDGE('',*,*,#12690,.T.); +#3493=ORIENTED_EDGE('',*,*,#11943,.T.); +#3494=ORIENTED_EDGE('',*,*,#12538,.F.); +#3495=ORIENTED_EDGE('',*,*,#12670,.T.); +#3496=ORIENTED_EDGE('',*,*,#12691,.T.); +#3497=ORIENTED_EDGE('',*,*,#11944,.T.); +#3498=ORIENTED_EDGE('',*,*,#12690,.F.); +#3499=ORIENTED_EDGE('',*,*,#12669,.T.); +#3500=ORIENTED_EDGE('',*,*,#12536,.T.); +#3501=ORIENTED_EDGE('',*,*,#11945,.T.); +#3502=ORIENTED_EDGE('',*,*,#12691,.F.); +#3503=ORIENTED_EDGE('',*,*,#12668,.T.); +#3504=ORIENTED_EDGE('',*,*,#12692,.T.); +#3505=ORIENTED_EDGE('',*,*,#11947,.T.); +#3506=ORIENTED_EDGE('',*,*,#12535,.F.); +#3507=ORIENTED_EDGE('',*,*,#12667,.T.); +#3508=ORIENTED_EDGE('',*,*,#12693,.T.); +#3509=ORIENTED_EDGE('',*,*,#11948,.T.); +#3510=ORIENTED_EDGE('',*,*,#12692,.F.); +#3511=ORIENTED_EDGE('',*,*,#12666,.T.); +#3512=ORIENTED_EDGE('',*,*,#12533,.T.); +#3513=ORIENTED_EDGE('',*,*,#11949,.T.); +#3514=ORIENTED_EDGE('',*,*,#12693,.F.); +#3515=ORIENTED_EDGE('',*,*,#12665,.T.); +#3516=ORIENTED_EDGE('',*,*,#12694,.T.); +#3517=ORIENTED_EDGE('',*,*,#11951,.T.); +#3518=ORIENTED_EDGE('',*,*,#12532,.F.); +#3519=ORIENTED_EDGE('',*,*,#12664,.T.); +#3520=ORIENTED_EDGE('',*,*,#12695,.T.); +#3521=ORIENTED_EDGE('',*,*,#11952,.T.); +#3522=ORIENTED_EDGE('',*,*,#12694,.F.); +#3523=ORIENTED_EDGE('',*,*,#12663,.T.); +#3524=ORIENTED_EDGE('',*,*,#12530,.T.); +#3525=ORIENTED_EDGE('',*,*,#11953,.T.); +#3526=ORIENTED_EDGE('',*,*,#12695,.F.); +#3527=ORIENTED_EDGE('',*,*,#12662,.T.); +#3528=ORIENTED_EDGE('',*,*,#12696,.T.); +#3529=ORIENTED_EDGE('',*,*,#11955,.T.); +#3530=ORIENTED_EDGE('',*,*,#12529,.F.); +#3531=ORIENTED_EDGE('',*,*,#12661,.T.); +#3532=ORIENTED_EDGE('',*,*,#12697,.T.); +#3533=ORIENTED_EDGE('',*,*,#11956,.T.); +#3534=ORIENTED_EDGE('',*,*,#12696,.F.); +#3535=ORIENTED_EDGE('',*,*,#12660,.T.); +#3536=ORIENTED_EDGE('',*,*,#12527,.T.); +#3537=ORIENTED_EDGE('',*,*,#11957,.T.); +#3538=ORIENTED_EDGE('',*,*,#12697,.F.); +#3539=ORIENTED_EDGE('',*,*,#12659,.T.); +#3540=ORIENTED_EDGE('',*,*,#12698,.T.); +#3541=ORIENTED_EDGE('',*,*,#11959,.T.); +#3542=ORIENTED_EDGE('',*,*,#12526,.F.); +#3543=ORIENTED_EDGE('',*,*,#12658,.T.); +#3544=ORIENTED_EDGE('',*,*,#12699,.T.); +#3545=ORIENTED_EDGE('',*,*,#11960,.T.); +#3546=ORIENTED_EDGE('',*,*,#12698,.F.); +#3547=ORIENTED_EDGE('',*,*,#12657,.T.); +#3548=ORIENTED_EDGE('',*,*,#12524,.T.); +#3549=ORIENTED_EDGE('',*,*,#11961,.T.); +#3550=ORIENTED_EDGE('',*,*,#12699,.F.); +#3551=ORIENTED_EDGE('',*,*,#12656,.T.); +#3552=ORIENTED_EDGE('',*,*,#12700,.T.); +#3553=ORIENTED_EDGE('',*,*,#11963,.T.); +#3554=ORIENTED_EDGE('',*,*,#12523,.F.); +#3555=ORIENTED_EDGE('',*,*,#12655,.T.); +#3556=ORIENTED_EDGE('',*,*,#12701,.T.); +#3557=ORIENTED_EDGE('',*,*,#11964,.T.); +#3558=ORIENTED_EDGE('',*,*,#12700,.F.); +#3559=ORIENTED_EDGE('',*,*,#12654,.T.); +#3560=ORIENTED_EDGE('',*,*,#12521,.T.); +#3561=ORIENTED_EDGE('',*,*,#11965,.T.); +#3562=ORIENTED_EDGE('',*,*,#12701,.F.); +#3563=ORIENTED_EDGE('',*,*,#12652,.T.); +#3564=ORIENTED_EDGE('',*,*,#12649,.T.); +#3565=ORIENTED_EDGE('',*,*,#11968,.T.); +#3566=ORIENTED_EDGE('',*,*,#12702,.F.); +#3567=ORIENTED_EDGE('',*,*,#12653,.T.); +#3568=ORIENTED_EDGE('',*,*,#12702,.T.); +#3569=ORIENTED_EDGE('',*,*,#11967,.T.); +#3570=ORIENTED_EDGE('',*,*,#12520,.F.); +#3571=ORIENTED_EDGE('',*,*,#12000,.T.); +#3572=ORIENTED_EDGE('',*,*,#11988,.T.); +#3573=ORIENTED_EDGE('',*,*,#11995,.T.); +#3574=ORIENTED_EDGE('',*,*,#11815,.F.); +#3575=ORIENTED_EDGE('',*,*,#11822,.T.); +#3576=ORIENTED_EDGE('',*,*,#11991,.F.); +#3577=ORIENTED_EDGE('',*,*,#11984,.F.); +#3578=ORIENTED_EDGE('',*,*,#12004,.F.); +#3579=ORIENTED_EDGE('',*,*,#12024,.T.); +#3580=ORIENTED_EDGE('',*,*,#12012,.T.); +#3581=ORIENTED_EDGE('',*,*,#12019,.T.); +#3582=ORIENTED_EDGE('',*,*,#11811,.F.); +#3583=ORIENTED_EDGE('',*,*,#11826,.T.); +#3584=ORIENTED_EDGE('',*,*,#12015,.F.); +#3585=ORIENTED_EDGE('',*,*,#12008,.F.); +#3586=ORIENTED_EDGE('',*,*,#12028,.F.); +#3587=ORIENTED_EDGE('',*,*,#12048,.T.); +#3588=ORIENTED_EDGE('',*,*,#12036,.T.); +#3589=ORIENTED_EDGE('',*,*,#12043,.T.); +#3590=ORIENTED_EDGE('',*,*,#11807,.F.); +#3591=ORIENTED_EDGE('',*,*,#11830,.T.); +#3592=ORIENTED_EDGE('',*,*,#12039,.F.); +#3593=ORIENTED_EDGE('',*,*,#12032,.F.); +#3594=ORIENTED_EDGE('',*,*,#12052,.F.); +#3595=ORIENTED_EDGE('',*,*,#12072,.T.); +#3596=ORIENTED_EDGE('',*,*,#12060,.T.); +#3597=ORIENTED_EDGE('',*,*,#12067,.T.); +#3598=ORIENTED_EDGE('',*,*,#11803,.F.); +#3599=ORIENTED_EDGE('',*,*,#11834,.T.); +#3600=ORIENTED_EDGE('',*,*,#12063,.F.); +#3601=ORIENTED_EDGE('',*,*,#12056,.F.); +#3602=ORIENTED_EDGE('',*,*,#12076,.F.); +#3603=ORIENTED_EDGE('',*,*,#12096,.T.); +#3604=ORIENTED_EDGE('',*,*,#12084,.T.); +#3605=ORIENTED_EDGE('',*,*,#12091,.T.); +#3606=ORIENTED_EDGE('',*,*,#11799,.F.); +#3607=ORIENTED_EDGE('',*,*,#11838,.T.); +#3608=ORIENTED_EDGE('',*,*,#12087,.F.); +#3609=ORIENTED_EDGE('',*,*,#12080,.F.); +#3610=ORIENTED_EDGE('',*,*,#12100,.F.); +#3611=ORIENTED_EDGE('',*,*,#12120,.T.); +#3612=ORIENTED_EDGE('',*,*,#12108,.T.); +#3613=ORIENTED_EDGE('',*,*,#12115,.T.); +#3614=ORIENTED_EDGE('',*,*,#11795,.F.); +#3615=ORIENTED_EDGE('',*,*,#11842,.T.); +#3616=ORIENTED_EDGE('',*,*,#12111,.F.); +#3617=ORIENTED_EDGE('',*,*,#12104,.F.); +#3618=ORIENTED_EDGE('',*,*,#12124,.F.); +#3619=ORIENTED_EDGE('',*,*,#12144,.T.); +#3620=ORIENTED_EDGE('',*,*,#12132,.T.); +#3621=ORIENTED_EDGE('',*,*,#12139,.T.); +#3622=ORIENTED_EDGE('',*,*,#11791,.F.); +#3623=ORIENTED_EDGE('',*,*,#11846,.T.); +#3624=ORIENTED_EDGE('',*,*,#12135,.F.); +#3625=ORIENTED_EDGE('',*,*,#12128,.F.); +#3626=ORIENTED_EDGE('',*,*,#12148,.F.); +#3627=ORIENTED_EDGE('',*,*,#12168,.T.); +#3628=ORIENTED_EDGE('',*,*,#12156,.T.); +#3629=ORIENTED_EDGE('',*,*,#12163,.T.); +#3630=ORIENTED_EDGE('',*,*,#11787,.F.); +#3631=ORIENTED_EDGE('',*,*,#11850,.T.); +#3632=ORIENTED_EDGE('',*,*,#12159,.F.); +#3633=ORIENTED_EDGE('',*,*,#12152,.F.); +#3634=ORIENTED_EDGE('',*,*,#12172,.F.); +#3635=ORIENTED_EDGE('',*,*,#12192,.T.); +#3636=ORIENTED_EDGE('',*,*,#12180,.T.); +#3637=ORIENTED_EDGE('',*,*,#12187,.T.); +#3638=ORIENTED_EDGE('',*,*,#11783,.F.); +#3639=ORIENTED_EDGE('',*,*,#11854,.T.); +#3640=ORIENTED_EDGE('',*,*,#12183,.F.); +#3641=ORIENTED_EDGE('',*,*,#12176,.F.); +#3642=ORIENTED_EDGE('',*,*,#12196,.F.); +#3643=ORIENTED_EDGE('',*,*,#12216,.T.); +#3644=ORIENTED_EDGE('',*,*,#12204,.T.); +#3645=ORIENTED_EDGE('',*,*,#12211,.T.); +#3646=ORIENTED_EDGE('',*,*,#11779,.F.); +#3647=ORIENTED_EDGE('',*,*,#11858,.T.); +#3648=ORIENTED_EDGE('',*,*,#12207,.F.); +#3649=ORIENTED_EDGE('',*,*,#12200,.F.); +#3650=ORIENTED_EDGE('',*,*,#12220,.F.); +#3651=ORIENTED_EDGE('',*,*,#12240,.T.); +#3652=ORIENTED_EDGE('',*,*,#12228,.T.); +#3653=ORIENTED_EDGE('',*,*,#12235,.T.); +#3654=ORIENTED_EDGE('',*,*,#11775,.F.); +#3655=ORIENTED_EDGE('',*,*,#11862,.T.); +#3656=ORIENTED_EDGE('',*,*,#12231,.F.); +#3657=ORIENTED_EDGE('',*,*,#12224,.F.); +#3658=ORIENTED_EDGE('',*,*,#12244,.F.); +#3659=ORIENTED_EDGE('',*,*,#12264,.T.); +#3660=ORIENTED_EDGE('',*,*,#12252,.T.); +#3661=ORIENTED_EDGE('',*,*,#12259,.T.); +#3662=ORIENTED_EDGE('',*,*,#11771,.F.); +#3663=ORIENTED_EDGE('',*,*,#11866,.T.); +#3664=ORIENTED_EDGE('',*,*,#12255,.F.); +#3665=ORIENTED_EDGE('',*,*,#12248,.F.); +#3666=ORIENTED_EDGE('',*,*,#12268,.F.); +#3667=ORIENTED_EDGE('',*,*,#12288,.T.); +#3668=ORIENTED_EDGE('',*,*,#12276,.T.); +#3669=ORIENTED_EDGE('',*,*,#12283,.T.); +#3670=ORIENTED_EDGE('',*,*,#11767,.F.); +#3671=ORIENTED_EDGE('',*,*,#11870,.T.); +#3672=ORIENTED_EDGE('',*,*,#12279,.F.); +#3673=ORIENTED_EDGE('',*,*,#12272,.F.); +#3674=ORIENTED_EDGE('',*,*,#12292,.F.); +#3675=ORIENTED_EDGE('',*,*,#12312,.T.); +#3676=ORIENTED_EDGE('',*,*,#12300,.T.); +#3677=ORIENTED_EDGE('',*,*,#12307,.T.); +#3678=ORIENTED_EDGE('',*,*,#11763,.F.); +#3679=ORIENTED_EDGE('',*,*,#11874,.T.); +#3680=ORIENTED_EDGE('',*,*,#12303,.F.); +#3681=ORIENTED_EDGE('',*,*,#12296,.F.); +#3682=ORIENTED_EDGE('',*,*,#12316,.F.); +#3683=ORIENTED_EDGE('',*,*,#12336,.T.); +#3684=ORIENTED_EDGE('',*,*,#12324,.T.); +#3685=ORIENTED_EDGE('',*,*,#12331,.T.); +#3686=ORIENTED_EDGE('',*,*,#11759,.F.); +#3687=ORIENTED_EDGE('',*,*,#11878,.T.); +#3688=ORIENTED_EDGE('',*,*,#12327,.F.); +#3689=ORIENTED_EDGE('',*,*,#12320,.F.); +#3690=ORIENTED_EDGE('',*,*,#12340,.F.); +#3691=ORIENTED_EDGE('',*,*,#12360,.T.); +#3692=ORIENTED_EDGE('',*,*,#12348,.T.); +#3693=ORIENTED_EDGE('',*,*,#12355,.T.); +#3694=ORIENTED_EDGE('',*,*,#11755,.F.); +#3695=ORIENTED_EDGE('',*,*,#11882,.T.); +#3696=ORIENTED_EDGE('',*,*,#12351,.F.); +#3697=ORIENTED_EDGE('',*,*,#12344,.F.); +#3698=ORIENTED_EDGE('',*,*,#12364,.F.); +#3699=ORIENTED_EDGE('',*,*,#12384,.T.); +#3700=ORIENTED_EDGE('',*,*,#12372,.T.); +#3701=ORIENTED_EDGE('',*,*,#12379,.T.); +#3702=ORIENTED_EDGE('',*,*,#11751,.F.); +#3703=ORIENTED_EDGE('',*,*,#11886,.T.); +#3704=ORIENTED_EDGE('',*,*,#12375,.F.); +#3705=ORIENTED_EDGE('',*,*,#12368,.F.); +#3706=ORIENTED_EDGE('',*,*,#12388,.F.); +#3707=ORIENTED_EDGE('',*,*,#12408,.T.); +#3708=ORIENTED_EDGE('',*,*,#12396,.T.); +#3709=ORIENTED_EDGE('',*,*,#12403,.T.); +#3710=ORIENTED_EDGE('',*,*,#11747,.F.); +#3711=ORIENTED_EDGE('',*,*,#11890,.T.); +#3712=ORIENTED_EDGE('',*,*,#12399,.F.); +#3713=ORIENTED_EDGE('',*,*,#12392,.F.); +#3714=ORIENTED_EDGE('',*,*,#12412,.F.); +#3715=ORIENTED_EDGE('',*,*,#12432,.T.); +#3716=ORIENTED_EDGE('',*,*,#12420,.T.); +#3717=ORIENTED_EDGE('',*,*,#12427,.T.); +#3718=ORIENTED_EDGE('',*,*,#11743,.F.); +#3719=ORIENTED_EDGE('',*,*,#11894,.T.); +#3720=ORIENTED_EDGE('',*,*,#12423,.F.); +#3721=ORIENTED_EDGE('',*,*,#12416,.F.); +#3722=ORIENTED_EDGE('',*,*,#12436,.F.); +#3723=ORIENTED_EDGE('',*,*,#11732,.T.); +#3724=ORIENTED_EDGE('',*,*,#12455,.F.); +#3725=ORIENTED_EDGE('',*,*,#12449,.F.); +#3726=ORIENTED_EDGE('',*,*,#12446,.F.); +#3727=ORIENTED_EDGE('',*,*,#12442,.T.); +#3728=ORIENTED_EDGE('',*,*,#12452,.T.); +#3729=ORIENTED_EDGE('',*,*,#12459,.T.); +#3730=ORIENTED_EDGE('',*,*,#11739,.F.); +#3731=ORIENTED_EDGE('',*,*,#12440,.F.); +#3732=ORIENTED_EDGE('',*,*,#12703,.F.); +#3733=ORIENTED_EDGE('',*,*,#12460,.F.); +#3734=ORIENTED_EDGE('',*,*,#12450,.F.); +#3735=ORIENTED_EDGE('',*,*,#12438,.F.); +#3736=ORIENTED_EDGE('',*,*,#12448,.F.); +#3737=ORIENTED_EDGE('',*,*,#12454,.F.); +#3738=ORIENTED_EDGE('',*,*,#12704,.T.); +#3739=ORIENTED_EDGE('',*,*,#12439,.F.); +#3740=ORIENTED_EDGE('',*,*,#12704,.F.); +#3741=ORIENTED_EDGE('',*,*,#12453,.F.); +#3742=ORIENTED_EDGE('',*,*,#12703,.T.); +#3743=ORIENTED_EDGE('',*,*,#12422,.F.); +#3744=ORIENTED_EDGE('',*,*,#12705,.T.); +#3745=ORIENTED_EDGE('',*,*,#12429,.F.); +#3746=ORIENTED_EDGE('',*,*,#12414,.F.); +#3747=ORIENTED_EDGE('',*,*,#12428,.F.); +#3748=ORIENTED_EDGE('',*,*,#12418,.F.); +#3749=ORIENTED_EDGE('',*,*,#12431,.F.); +#3750=ORIENTED_EDGE('',*,*,#12706,.F.); +#3751=ORIENTED_EDGE('',*,*,#12421,.F.); +#3752=ORIENTED_EDGE('',*,*,#12706,.T.); +#3753=ORIENTED_EDGE('',*,*,#12430,.F.); +#3754=ORIENTED_EDGE('',*,*,#12705,.F.); +#3755=ORIENTED_EDGE('',*,*,#12398,.F.); +#3756=ORIENTED_EDGE('',*,*,#12707,.T.); +#3757=ORIENTED_EDGE('',*,*,#12405,.F.); +#3758=ORIENTED_EDGE('',*,*,#12390,.F.); +#3759=ORIENTED_EDGE('',*,*,#12404,.F.); +#3760=ORIENTED_EDGE('',*,*,#12394,.F.); +#3761=ORIENTED_EDGE('',*,*,#12407,.F.); +#3762=ORIENTED_EDGE('',*,*,#12708,.F.); +#3763=ORIENTED_EDGE('',*,*,#12397,.F.); +#3764=ORIENTED_EDGE('',*,*,#12708,.T.); +#3765=ORIENTED_EDGE('',*,*,#12406,.F.); +#3766=ORIENTED_EDGE('',*,*,#12707,.F.); +#3767=ORIENTED_EDGE('',*,*,#12374,.F.); +#3768=ORIENTED_EDGE('',*,*,#12709,.T.); +#3769=ORIENTED_EDGE('',*,*,#12381,.F.); +#3770=ORIENTED_EDGE('',*,*,#12366,.F.); +#3771=ORIENTED_EDGE('',*,*,#12380,.F.); +#3772=ORIENTED_EDGE('',*,*,#12370,.F.); +#3773=ORIENTED_EDGE('',*,*,#12383,.F.); +#3774=ORIENTED_EDGE('',*,*,#12710,.F.); +#3775=ORIENTED_EDGE('',*,*,#12373,.F.); +#3776=ORIENTED_EDGE('',*,*,#12710,.T.); +#3777=ORIENTED_EDGE('',*,*,#12382,.F.); +#3778=ORIENTED_EDGE('',*,*,#12709,.F.); +#3779=ORIENTED_EDGE('',*,*,#12350,.F.); +#3780=ORIENTED_EDGE('',*,*,#12711,.T.); +#3781=ORIENTED_EDGE('',*,*,#12357,.F.); +#3782=ORIENTED_EDGE('',*,*,#12342,.F.); +#3783=ORIENTED_EDGE('',*,*,#12356,.F.); +#3784=ORIENTED_EDGE('',*,*,#12346,.F.); +#3785=ORIENTED_EDGE('',*,*,#12359,.F.); +#3786=ORIENTED_EDGE('',*,*,#12712,.F.); +#3787=ORIENTED_EDGE('',*,*,#12349,.F.); +#3788=ORIENTED_EDGE('',*,*,#12712,.T.); +#3789=ORIENTED_EDGE('',*,*,#12358,.F.); +#3790=ORIENTED_EDGE('',*,*,#12711,.F.); +#3791=ORIENTED_EDGE('',*,*,#12326,.F.); +#3792=ORIENTED_EDGE('',*,*,#12713,.T.); +#3793=ORIENTED_EDGE('',*,*,#12333,.F.); +#3794=ORIENTED_EDGE('',*,*,#12318,.F.); +#3795=ORIENTED_EDGE('',*,*,#12332,.F.); +#3796=ORIENTED_EDGE('',*,*,#12322,.F.); +#3797=ORIENTED_EDGE('',*,*,#12335,.F.); +#3798=ORIENTED_EDGE('',*,*,#12714,.F.); +#3799=ORIENTED_EDGE('',*,*,#12325,.F.); +#3800=ORIENTED_EDGE('',*,*,#12714,.T.); +#3801=ORIENTED_EDGE('',*,*,#12334,.F.); +#3802=ORIENTED_EDGE('',*,*,#12713,.F.); +#3803=ORIENTED_EDGE('',*,*,#12302,.F.); +#3804=ORIENTED_EDGE('',*,*,#12715,.T.); +#3805=ORIENTED_EDGE('',*,*,#12309,.F.); +#3806=ORIENTED_EDGE('',*,*,#12294,.F.); +#3807=ORIENTED_EDGE('',*,*,#12308,.F.); +#3808=ORIENTED_EDGE('',*,*,#12298,.F.); +#3809=ORIENTED_EDGE('',*,*,#12311,.F.); +#3810=ORIENTED_EDGE('',*,*,#12716,.F.); +#3811=ORIENTED_EDGE('',*,*,#12301,.F.); +#3812=ORIENTED_EDGE('',*,*,#12716,.T.); +#3813=ORIENTED_EDGE('',*,*,#12310,.F.); +#3814=ORIENTED_EDGE('',*,*,#12715,.F.); +#3815=ORIENTED_EDGE('',*,*,#12278,.F.); +#3816=ORIENTED_EDGE('',*,*,#12717,.T.); +#3817=ORIENTED_EDGE('',*,*,#12285,.F.); +#3818=ORIENTED_EDGE('',*,*,#12270,.F.); +#3819=ORIENTED_EDGE('',*,*,#12284,.F.); +#3820=ORIENTED_EDGE('',*,*,#12274,.F.); +#3821=ORIENTED_EDGE('',*,*,#12287,.F.); +#3822=ORIENTED_EDGE('',*,*,#12718,.F.); +#3823=ORIENTED_EDGE('',*,*,#12277,.F.); +#3824=ORIENTED_EDGE('',*,*,#12718,.T.); +#3825=ORIENTED_EDGE('',*,*,#12286,.F.); +#3826=ORIENTED_EDGE('',*,*,#12717,.F.); +#3827=ORIENTED_EDGE('',*,*,#12254,.F.); +#3828=ORIENTED_EDGE('',*,*,#12719,.T.); +#3829=ORIENTED_EDGE('',*,*,#12261,.F.); +#3830=ORIENTED_EDGE('',*,*,#12246,.F.); +#3831=ORIENTED_EDGE('',*,*,#12260,.F.); +#3832=ORIENTED_EDGE('',*,*,#12250,.F.); +#3833=ORIENTED_EDGE('',*,*,#12263,.F.); +#3834=ORIENTED_EDGE('',*,*,#12720,.F.); +#3835=ORIENTED_EDGE('',*,*,#12253,.F.); +#3836=ORIENTED_EDGE('',*,*,#12720,.T.); +#3837=ORIENTED_EDGE('',*,*,#12262,.F.); +#3838=ORIENTED_EDGE('',*,*,#12719,.F.); +#3839=ORIENTED_EDGE('',*,*,#12230,.F.); +#3840=ORIENTED_EDGE('',*,*,#12721,.T.); +#3841=ORIENTED_EDGE('',*,*,#12237,.F.); +#3842=ORIENTED_EDGE('',*,*,#12222,.F.); +#3843=ORIENTED_EDGE('',*,*,#12236,.F.); +#3844=ORIENTED_EDGE('',*,*,#12226,.F.); +#3845=ORIENTED_EDGE('',*,*,#12239,.F.); +#3846=ORIENTED_EDGE('',*,*,#12722,.F.); +#3847=ORIENTED_EDGE('',*,*,#12229,.F.); +#3848=ORIENTED_EDGE('',*,*,#12722,.T.); +#3849=ORIENTED_EDGE('',*,*,#12238,.F.); +#3850=ORIENTED_EDGE('',*,*,#12721,.F.); +#3851=ORIENTED_EDGE('',*,*,#12206,.F.); +#3852=ORIENTED_EDGE('',*,*,#12723,.T.); +#3853=ORIENTED_EDGE('',*,*,#12213,.F.); +#3854=ORIENTED_EDGE('',*,*,#12198,.F.); +#3855=ORIENTED_EDGE('',*,*,#12212,.F.); +#3856=ORIENTED_EDGE('',*,*,#12202,.F.); +#3857=ORIENTED_EDGE('',*,*,#12215,.F.); +#3858=ORIENTED_EDGE('',*,*,#12724,.F.); +#3859=ORIENTED_EDGE('',*,*,#12205,.F.); +#3860=ORIENTED_EDGE('',*,*,#12724,.T.); +#3861=ORIENTED_EDGE('',*,*,#12214,.F.); +#3862=ORIENTED_EDGE('',*,*,#12723,.F.); +#3863=ORIENTED_EDGE('',*,*,#12182,.F.); +#3864=ORIENTED_EDGE('',*,*,#12725,.T.); +#3865=ORIENTED_EDGE('',*,*,#12189,.F.); +#3866=ORIENTED_EDGE('',*,*,#12174,.F.); +#3867=ORIENTED_EDGE('',*,*,#12188,.F.); +#3868=ORIENTED_EDGE('',*,*,#12178,.F.); +#3869=ORIENTED_EDGE('',*,*,#12191,.F.); +#3870=ORIENTED_EDGE('',*,*,#12726,.F.); +#3871=ORIENTED_EDGE('',*,*,#12181,.F.); +#3872=ORIENTED_EDGE('',*,*,#12726,.T.); +#3873=ORIENTED_EDGE('',*,*,#12190,.F.); +#3874=ORIENTED_EDGE('',*,*,#12725,.F.); +#3875=ORIENTED_EDGE('',*,*,#12158,.F.); +#3876=ORIENTED_EDGE('',*,*,#12727,.T.); +#3877=ORIENTED_EDGE('',*,*,#12165,.F.); +#3878=ORIENTED_EDGE('',*,*,#12150,.F.); +#3879=ORIENTED_EDGE('',*,*,#12164,.F.); +#3880=ORIENTED_EDGE('',*,*,#12154,.F.); +#3881=ORIENTED_EDGE('',*,*,#12167,.F.); +#3882=ORIENTED_EDGE('',*,*,#12728,.F.); +#3883=ORIENTED_EDGE('',*,*,#12157,.F.); +#3884=ORIENTED_EDGE('',*,*,#12728,.T.); +#3885=ORIENTED_EDGE('',*,*,#12166,.F.); +#3886=ORIENTED_EDGE('',*,*,#12727,.F.); +#3887=ORIENTED_EDGE('',*,*,#12134,.F.); +#3888=ORIENTED_EDGE('',*,*,#12729,.T.); +#3889=ORIENTED_EDGE('',*,*,#12141,.F.); +#3890=ORIENTED_EDGE('',*,*,#12126,.F.); +#3891=ORIENTED_EDGE('',*,*,#12140,.F.); +#3892=ORIENTED_EDGE('',*,*,#12130,.F.); +#3893=ORIENTED_EDGE('',*,*,#12143,.F.); +#3894=ORIENTED_EDGE('',*,*,#12730,.F.); +#3895=ORIENTED_EDGE('',*,*,#12133,.F.); +#3896=ORIENTED_EDGE('',*,*,#12730,.T.); +#3897=ORIENTED_EDGE('',*,*,#12142,.F.); +#3898=ORIENTED_EDGE('',*,*,#12729,.F.); +#3899=ORIENTED_EDGE('',*,*,#12110,.F.); +#3900=ORIENTED_EDGE('',*,*,#12731,.T.); +#3901=ORIENTED_EDGE('',*,*,#12117,.F.); +#3902=ORIENTED_EDGE('',*,*,#12102,.F.); +#3903=ORIENTED_EDGE('',*,*,#12116,.F.); +#3904=ORIENTED_EDGE('',*,*,#12106,.F.); +#3905=ORIENTED_EDGE('',*,*,#12119,.F.); +#3906=ORIENTED_EDGE('',*,*,#12732,.F.); +#3907=ORIENTED_EDGE('',*,*,#12109,.F.); +#3908=ORIENTED_EDGE('',*,*,#12732,.T.); +#3909=ORIENTED_EDGE('',*,*,#12118,.F.); +#3910=ORIENTED_EDGE('',*,*,#12731,.F.); +#3911=ORIENTED_EDGE('',*,*,#12086,.F.); +#3912=ORIENTED_EDGE('',*,*,#12733,.T.); +#3913=ORIENTED_EDGE('',*,*,#12093,.F.); +#3914=ORIENTED_EDGE('',*,*,#12078,.F.); +#3915=ORIENTED_EDGE('',*,*,#12092,.F.); +#3916=ORIENTED_EDGE('',*,*,#12082,.F.); +#3917=ORIENTED_EDGE('',*,*,#12095,.F.); +#3918=ORIENTED_EDGE('',*,*,#12734,.F.); +#3919=ORIENTED_EDGE('',*,*,#12085,.F.); +#3920=ORIENTED_EDGE('',*,*,#12734,.T.); +#3921=ORIENTED_EDGE('',*,*,#12094,.F.); +#3922=ORIENTED_EDGE('',*,*,#12733,.F.); +#3923=ORIENTED_EDGE('',*,*,#12062,.F.); +#3924=ORIENTED_EDGE('',*,*,#12735,.T.); +#3925=ORIENTED_EDGE('',*,*,#12069,.F.); +#3926=ORIENTED_EDGE('',*,*,#12054,.F.); +#3927=ORIENTED_EDGE('',*,*,#12068,.F.); +#3928=ORIENTED_EDGE('',*,*,#12058,.F.); +#3929=ORIENTED_EDGE('',*,*,#12071,.F.); +#3930=ORIENTED_EDGE('',*,*,#12736,.F.); +#3931=ORIENTED_EDGE('',*,*,#12061,.F.); +#3932=ORIENTED_EDGE('',*,*,#12736,.T.); +#3933=ORIENTED_EDGE('',*,*,#12070,.F.); +#3934=ORIENTED_EDGE('',*,*,#12735,.F.); +#3935=ORIENTED_EDGE('',*,*,#12038,.F.); +#3936=ORIENTED_EDGE('',*,*,#12737,.T.); +#3937=ORIENTED_EDGE('',*,*,#12045,.F.); +#3938=ORIENTED_EDGE('',*,*,#12030,.F.); +#3939=ORIENTED_EDGE('',*,*,#12044,.F.); +#3940=ORIENTED_EDGE('',*,*,#12034,.F.); +#3941=ORIENTED_EDGE('',*,*,#12047,.F.); +#3942=ORIENTED_EDGE('',*,*,#12738,.F.); +#3943=ORIENTED_EDGE('',*,*,#12037,.F.); +#3944=ORIENTED_EDGE('',*,*,#12738,.T.); +#3945=ORIENTED_EDGE('',*,*,#12046,.F.); +#3946=ORIENTED_EDGE('',*,*,#12737,.F.); +#3947=ORIENTED_EDGE('',*,*,#12014,.F.); +#3948=ORIENTED_EDGE('',*,*,#12739,.T.); +#3949=ORIENTED_EDGE('',*,*,#12021,.F.); +#3950=ORIENTED_EDGE('',*,*,#12006,.F.); +#3951=ORIENTED_EDGE('',*,*,#12020,.F.); +#3952=ORIENTED_EDGE('',*,*,#12010,.F.); +#3953=ORIENTED_EDGE('',*,*,#12023,.F.); +#3954=ORIENTED_EDGE('',*,*,#12740,.F.); +#3955=ORIENTED_EDGE('',*,*,#12013,.F.); +#3956=ORIENTED_EDGE('',*,*,#12740,.T.); +#3957=ORIENTED_EDGE('',*,*,#12022,.F.); +#3958=ORIENTED_EDGE('',*,*,#12739,.F.); +#3959=ORIENTED_EDGE('',*,*,#11989,.F.); +#3960=ORIENTED_EDGE('',*,*,#12741,.T.); +#3961=ORIENTED_EDGE('',*,*,#11998,.F.); +#3962=ORIENTED_EDGE('',*,*,#12742,.F.); +#3963=ORIENTED_EDGE('',*,*,#11990,.F.); +#3964=ORIENTED_EDGE('',*,*,#12742,.T.); +#3965=ORIENTED_EDGE('',*,*,#11997,.F.); +#3966=ORIENTED_EDGE('',*,*,#11982,.F.); +#3967=ORIENTED_EDGE('',*,*,#11996,.F.); +#3968=ORIENTED_EDGE('',*,*,#11986,.F.); +#3969=ORIENTED_EDGE('',*,*,#11999,.F.); +#3970=ORIENTED_EDGE('',*,*,#12741,.F.); +#3971=ORIENTED_EDGE('',*,*,#12743,.F.); +#3972=ORIENTED_EDGE('',*,*,#12744,.T.); +#3973=ORIENTED_EDGE('',*,*,#11974,.T.); +#3974=ORIENTED_EDGE('',*,*,#12745,.F.); +#3975=ORIENTED_EDGE('',*,*,#11973,.T.); +#3976=ORIENTED_EDGE('',*,*,#12746,.T.); +#3977=ORIENTED_EDGE('',*,*,#12747,.F.); +#3978=ORIENTED_EDGE('',*,*,#12745,.T.); +#3979=ORIENTED_EDGE('',*,*,#12748,.F.); +#3980=ORIENTED_EDGE('',*,*,#12743,.T.); +#3981=ORIENTED_EDGE('',*,*,#12747,.T.); +#3982=ORIENTED_EDGE('',*,*,#12749,.T.); +#3983=ORIENTED_EDGE('',*,*,#12750,.T.); +#3984=ORIENTED_EDGE('',*,*,#11975,.F.); +#3985=ORIENTED_EDGE('',*,*,#11899,.F.); +#3986=ORIENTED_EDGE('',*,*,#11976,.F.); +#3987=ORIENTED_EDGE('',*,*,#12750,.F.); +#3988=ORIENTED_EDGE('',*,*,#12751,.T.); +#3989=ORIENTED_EDGE('',*,*,#11971,.F.); +#3990=ORIENTED_EDGE('',*,*,#11898,.T.); +#3991=ORIENTED_EDGE('',*,*,#12744,.F.); +#3992=ORIENTED_EDGE('',*,*,#12748,.T.); +#3993=ORIENTED_EDGE('',*,*,#12746,.F.); +#3994=ORIENTED_EDGE('',*,*,#11972,.T.); +#3995=ORIENTED_EDGE('',*,*,#12751,.F.); +#3996=ORIENTED_EDGE('',*,*,#12749,.F.); +#3997=ORIENTED_EDGE('',*,*,#12752,.F.); +#3998=ORIENTED_EDGE('',*,*,#11715,.T.); +#3999=ORIENTED_EDGE('',*,*,#12752,.T.); +#4000=ORIENTED_EDGE('',*,*,#12753,.F.); +#4001=ORIENTED_EDGE('',*,*,#12753,.T.); +#4002=ORIENTED_EDGE('',*,*,#11708,.F.); +#4003=ORIENTED_EDGE('',*,*,#12754,.F.); +#4004=ORIENTED_EDGE('',*,*,#12755,.T.); +#4005=ORIENTED_EDGE('',*,*,#12756,.T.); +#4006=ORIENTED_EDGE('',*,*,#11709,.F.); +#4007=ORIENTED_EDGE('',*,*,#12756,.F.); +#4008=ORIENTED_EDGE('',*,*,#12757,.T.); +#4009=ORIENTED_EDGE('',*,*,#12758,.T.); +#4010=ORIENTED_EDGE('',*,*,#11710,.F.); +#4011=ORIENTED_EDGE('',*,*,#12758,.F.); +#4012=ORIENTED_EDGE('',*,*,#12759,.T.); +#4013=ORIENTED_EDGE('',*,*,#12760,.T.); +#4014=ORIENTED_EDGE('',*,*,#11711,.F.); +#4015=ORIENTED_EDGE('',*,*,#12760,.F.); +#4016=ORIENTED_EDGE('',*,*,#12761,.T.); +#4017=ORIENTED_EDGE('',*,*,#12762,.T.); +#4018=ORIENTED_EDGE('',*,*,#11712,.F.); +#4019=ORIENTED_EDGE('',*,*,#12762,.F.); +#4020=ORIENTED_EDGE('',*,*,#12763,.T.); +#4021=ORIENTED_EDGE('',*,*,#12764,.T.); +#4022=ORIENTED_EDGE('',*,*,#11713,.F.); +#4023=ORIENTED_EDGE('',*,*,#12764,.F.); +#4024=ORIENTED_EDGE('',*,*,#12765,.T.); +#4025=ORIENTED_EDGE('',*,*,#12766,.T.); +#4026=ORIENTED_EDGE('',*,*,#11714,.F.); +#4027=ORIENTED_EDGE('',*,*,#12766,.F.); +#4028=ORIENTED_EDGE('',*,*,#12767,.T.); +#4029=ORIENTED_EDGE('',*,*,#12768,.T.); +#4030=ORIENTED_EDGE('',*,*,#11707,.F.); +#4031=ORIENTED_EDGE('',*,*,#12768,.F.); +#4032=ORIENTED_EDGE('',*,*,#12769,.T.); +#4033=ORIENTED_EDGE('',*,*,#12754,.T.); +#4034=ORIENTED_EDGE('',*,*,#12755,.F.); +#4035=ORIENTED_EDGE('',*,*,#12769,.F.); +#4036=ORIENTED_EDGE('',*,*,#12767,.F.); +#4037=ORIENTED_EDGE('',*,*,#12765,.F.); +#4038=ORIENTED_EDGE('',*,*,#12763,.F.); +#4039=ORIENTED_EDGE('',*,*,#12761,.F.); +#4040=ORIENTED_EDGE('',*,*,#12759,.F.); +#4041=ORIENTED_EDGE('',*,*,#12757,.F.); +#4042=ORIENTED_EDGE('',*,*,#11697,.F.); +#4043=ORIENTED_EDGE('',*,*,#12770,.F.); +#4044=ORIENTED_EDGE('',*,*,#12771,.T.); +#4045=ORIENTED_EDGE('',*,*,#12772,.T.); +#4046=ORIENTED_EDGE('',*,*,#11698,.F.); +#4047=ORIENTED_EDGE('',*,*,#12772,.F.); +#4048=ORIENTED_EDGE('',*,*,#12773,.T.); +#4049=ORIENTED_EDGE('',*,*,#12774,.T.); +#4050=ORIENTED_EDGE('',*,*,#11699,.F.); +#4051=ORIENTED_EDGE('',*,*,#12774,.F.); +#4052=ORIENTED_EDGE('',*,*,#12775,.T.); +#4053=ORIENTED_EDGE('',*,*,#12776,.T.); +#4054=ORIENTED_EDGE('',*,*,#11700,.T.); +#4055=ORIENTED_EDGE('',*,*,#12776,.F.); +#4056=ORIENTED_EDGE('',*,*,#12777,.F.); +#4057=ORIENTED_EDGE('',*,*,#12778,.T.); +#4058=ORIENTED_EDGE('',*,*,#11701,.F.); +#4059=ORIENTED_EDGE('',*,*,#12778,.F.); +#4060=ORIENTED_EDGE('',*,*,#12779,.T.); +#4061=ORIENTED_EDGE('',*,*,#12780,.T.); +#4062=ORIENTED_EDGE('',*,*,#11702,.F.); +#4063=ORIENTED_EDGE('',*,*,#12780,.F.); +#4064=ORIENTED_EDGE('',*,*,#12781,.T.); +#4065=ORIENTED_EDGE('',*,*,#12782,.T.); +#4066=ORIENTED_EDGE('',*,*,#11703,.F.); +#4067=ORIENTED_EDGE('',*,*,#12782,.F.); +#4068=ORIENTED_EDGE('',*,*,#12783,.T.); +#4069=ORIENTED_EDGE('',*,*,#12784,.T.); +#4070=ORIENTED_EDGE('',*,*,#11704,.F.); +#4071=ORIENTED_EDGE('',*,*,#12784,.F.); +#4072=ORIENTED_EDGE('',*,*,#12785,.T.); +#4073=ORIENTED_EDGE('',*,*,#12786,.T.); +#4074=ORIENTED_EDGE('',*,*,#11705,.F.); +#4075=ORIENTED_EDGE('',*,*,#12786,.F.); +#4076=ORIENTED_EDGE('',*,*,#12787,.T.); +#4077=ORIENTED_EDGE('',*,*,#12788,.T.); +#4078=ORIENTED_EDGE('',*,*,#11706,.F.); +#4079=ORIENTED_EDGE('',*,*,#12788,.F.); +#4080=ORIENTED_EDGE('',*,*,#12789,.T.); +#4081=ORIENTED_EDGE('',*,*,#12770,.T.); +#4082=ORIENTED_EDGE('',*,*,#12771,.F.); +#4083=ORIENTED_EDGE('',*,*,#12789,.F.); +#4084=ORIENTED_EDGE('',*,*,#12787,.F.); +#4085=ORIENTED_EDGE('',*,*,#12785,.F.); +#4086=ORIENTED_EDGE('',*,*,#12783,.F.); +#4087=ORIENTED_EDGE('',*,*,#12781,.F.); +#4088=ORIENTED_EDGE('',*,*,#12779,.F.); +#4089=ORIENTED_EDGE('',*,*,#12777,.T.); +#4090=ORIENTED_EDGE('',*,*,#12775,.F.); +#4091=ORIENTED_EDGE('',*,*,#12773,.F.); +#4092=ORIENTED_EDGE('',*,*,#11716,.F.); +#4093=ORIENTED_EDGE('',*,*,#12790,.F.); +#4094=ORIENTED_EDGE('',*,*,#12791,.T.); +#4095=ORIENTED_EDGE('',*,*,#12792,.T.); +#4096=ORIENTED_EDGE('',*,*,#11717,.F.); +#4097=ORIENTED_EDGE('',*,*,#12792,.F.); +#4098=ORIENTED_EDGE('',*,*,#12793,.T.); +#4099=ORIENTED_EDGE('',*,*,#12794,.T.); +#4100=ORIENTED_EDGE('',*,*,#11718,.F.); +#4101=ORIENTED_EDGE('',*,*,#12794,.F.); +#4102=ORIENTED_EDGE('',*,*,#12795,.T.); +#4103=ORIENTED_EDGE('',*,*,#12796,.T.); +#4104=ORIENTED_EDGE('',*,*,#11719,.T.); +#4105=ORIENTED_EDGE('',*,*,#12796,.F.); +#4106=ORIENTED_EDGE('',*,*,#12797,.F.); +#4107=ORIENTED_EDGE('',*,*,#12798,.T.); +#4108=ORIENTED_EDGE('',*,*,#11720,.F.); +#4109=ORIENTED_EDGE('',*,*,#12798,.F.); +#4110=ORIENTED_EDGE('',*,*,#12799,.T.); +#4111=ORIENTED_EDGE('',*,*,#12800,.T.); +#4112=ORIENTED_EDGE('',*,*,#11721,.F.); +#4113=ORIENTED_EDGE('',*,*,#12800,.F.); +#4114=ORIENTED_EDGE('',*,*,#12801,.T.); +#4115=ORIENTED_EDGE('',*,*,#12802,.T.); +#4116=ORIENTED_EDGE('',*,*,#11722,.F.); +#4117=ORIENTED_EDGE('',*,*,#12802,.F.); +#4118=ORIENTED_EDGE('',*,*,#12803,.T.); +#4119=ORIENTED_EDGE('',*,*,#12804,.T.); +#4120=ORIENTED_EDGE('',*,*,#11723,.F.); +#4121=ORIENTED_EDGE('',*,*,#12804,.F.); +#4122=ORIENTED_EDGE('',*,*,#12805,.T.); +#4123=ORIENTED_EDGE('',*,*,#12806,.T.); +#4124=ORIENTED_EDGE('',*,*,#11724,.F.); +#4125=ORIENTED_EDGE('',*,*,#12806,.F.); +#4126=ORIENTED_EDGE('',*,*,#12807,.T.); +#4127=ORIENTED_EDGE('',*,*,#12808,.T.); +#4128=ORIENTED_EDGE('',*,*,#11725,.F.); +#4129=ORIENTED_EDGE('',*,*,#12808,.F.); +#4130=ORIENTED_EDGE('',*,*,#12809,.T.); +#4131=ORIENTED_EDGE('',*,*,#12790,.T.); +#4132=ORIENTED_EDGE('',*,*,#12791,.F.); +#4133=ORIENTED_EDGE('',*,*,#12809,.F.); +#4134=ORIENTED_EDGE('',*,*,#12807,.F.); +#4135=ORIENTED_EDGE('',*,*,#12805,.F.); +#4136=ORIENTED_EDGE('',*,*,#12803,.F.); +#4137=ORIENTED_EDGE('',*,*,#12801,.F.); +#4138=ORIENTED_EDGE('',*,*,#12799,.F.); +#4139=ORIENTED_EDGE('',*,*,#12797,.T.); +#4140=ORIENTED_EDGE('',*,*,#12795,.F.); +#4141=ORIENTED_EDGE('',*,*,#12793,.F.); +#4142=ORIENTED_EDGE('',*,*,#11726,.T.); +#4143=ORIENTED_EDGE('',*,*,#12810,.T.); +#4144=ORIENTED_EDGE('',*,*,#12811,.T.); +#4145=ORIENTED_EDGE('',*,*,#11675,.F.); +#4146=ORIENTED_EDGE('',*,*,#11730,.T.); +#4147=ORIENTED_EDGE('',*,*,#11679,.F.); +#4148=ORIENTED_EDGE('',*,*,#12812,.F.); +#4149=ORIENTED_EDGE('',*,*,#12813,.T.); +#4150=ORIENTED_EDGE('',*,*,#12813,.F.); +#4151=ORIENTED_EDGE('',*,*,#12814,.F.); +#4152=ORIENTED_EDGE('',*,*,#12815,.F.); +#4153=ORIENTED_EDGE('',*,*,#12816,.F.); +#4154=ORIENTED_EDGE('',*,*,#12810,.F.); +#4155=ORIENTED_EDGE('',*,*,#11731,.F.); +#4156=ORIENTED_EDGE('',*,*,#11676,.F.); +#4157=ORIENTED_EDGE('',*,*,#12811,.F.); +#4158=ORIENTED_EDGE('',*,*,#12816,.T.); +#4159=ORIENTED_EDGE('',*,*,#12817,.T.); +#4160=ORIENTED_EDGE('',*,*,#11677,.F.); +#4161=ORIENTED_EDGE('',*,*,#12817,.F.); +#4162=ORIENTED_EDGE('',*,*,#12815,.T.); +#4163=ORIENTED_EDGE('',*,*,#12818,.T.); +#4164=ORIENTED_EDGE('',*,*,#11678,.F.); +#4165=ORIENTED_EDGE('',*,*,#12818,.F.); +#4166=ORIENTED_EDGE('',*,*,#12814,.T.); +#4167=ORIENTED_EDGE('',*,*,#12812,.T.); +#4168=ORIENTED_EDGE('',*,*,#11652,.T.); +#4169=ORIENTED_EDGE('',*,*,#11664,.F.); +#4170=ORIENTED_EDGE('',*,*,#12819,.F.); +#4171=ORIENTED_EDGE('',*,*,#12820,.T.); +#4172=ORIENTED_EDGE('',*,*,#11658,.T.); +#4173=ORIENTED_EDGE('',*,*,#12821,.T.); +#4174=ORIENTED_EDGE('',*,*,#12822,.T.); +#4175=ORIENTED_EDGE('',*,*,#11693,.F.); +#4176=ORIENTED_EDGE('',*,*,#12820,.F.); +#4177=ORIENTED_EDGE('',*,*,#12823,.F.); +#4178=ORIENTED_EDGE('',*,*,#12824,.F.); +#4179=ORIENTED_EDGE('',*,*,#12825,.F.); +#4180=ORIENTED_EDGE('',*,*,#12821,.F.); +#4181=ORIENTED_EDGE('',*,*,#11663,.F.); +#4182=ORIENTED_EDGE('',*,*,#12601,.F.); +#4183=ORIENTED_EDGE('',*,*,#11653,.F.); +#4184=ORIENTED_EDGE('',*,*,#11695,.F.); +#4185=ORIENTED_EDGE('',*,*,#12826,.F.); +#4186=ORIENTED_EDGE('',*,*,#12824,.T.); +#4187=ORIENTED_EDGE('',*,*,#12827,.T.); +#4188=ORIENTED_EDGE('',*,*,#11696,.F.); +#4189=ORIENTED_EDGE('',*,*,#12827,.F.); +#4190=ORIENTED_EDGE('',*,*,#12823,.T.); +#4191=ORIENTED_EDGE('',*,*,#12819,.T.); +#4192=ORIENTED_EDGE('',*,*,#11694,.F.); +#4193=ORIENTED_EDGE('',*,*,#12822,.F.); +#4194=ORIENTED_EDGE('',*,*,#12825,.T.); +#4195=ORIENTED_EDGE('',*,*,#12826,.T.); +#4196=ORIENTED_EDGE('',*,*,#12828,.F.); +#4197=ORIENTED_EDGE('',*,*,#12829,.T.); +#4198=ORIENTED_EDGE('',*,*,#12830,.T.); +#4199=ORIENTED_EDGE('',*,*,#12831,.F.); +#4200=ORIENTED_EDGE('',*,*,#12832,.T.); +#4201=ORIENTED_EDGE('',*,*,#12833,.T.); +#4202=ORIENTED_EDGE('',*,*,#12834,.T.); +#4203=ORIENTED_EDGE('',*,*,#12835,.T.); +#4204=ORIENTED_EDGE('',*,*,#12836,.T.); +#4205=ORIENTED_EDGE('',*,*,#12837,.T.); +#4206=ORIENTED_EDGE('',*,*,#12838,.T.); +#4207=ORIENTED_EDGE('',*,*,#12839,.T.); +#4208=ORIENTED_EDGE('',*,*,#12840,.T.); +#4209=ORIENTED_EDGE('',*,*,#12841,.T.); +#4210=ORIENTED_EDGE('',*,*,#12842,.T.); +#4211=ORIENTED_EDGE('',*,*,#12843,.T.); +#4212=ORIENTED_EDGE('',*,*,#12844,.T.); +#4213=ORIENTED_EDGE('',*,*,#12845,.T.); +#4214=ORIENTED_EDGE('',*,*,#12846,.T.); +#4215=ORIENTED_EDGE('',*,*,#12847,.T.); +#4216=ORIENTED_EDGE('',*,*,#12848,.T.); +#4217=ORIENTED_EDGE('',*,*,#12849,.T.); +#4218=ORIENTED_EDGE('',*,*,#12850,.T.); +#4219=ORIENTED_EDGE('',*,*,#12851,.T.); +#4220=ORIENTED_EDGE('',*,*,#12852,.T.); +#4221=ORIENTED_EDGE('',*,*,#12853,.T.); +#4222=ORIENTED_EDGE('',*,*,#12854,.T.); +#4223=ORIENTED_EDGE('',*,*,#12855,.T.); +#4224=ORIENTED_EDGE('',*,*,#12856,.T.); +#4225=ORIENTED_EDGE('',*,*,#12857,.T.); +#4226=ORIENTED_EDGE('',*,*,#12858,.T.); +#4227=ORIENTED_EDGE('',*,*,#12859,.T.); +#4228=ORIENTED_EDGE('',*,*,#12860,.T.); +#4229=ORIENTED_EDGE('',*,*,#12861,.T.); +#4230=ORIENTED_EDGE('',*,*,#12862,.T.); +#4231=ORIENTED_EDGE('',*,*,#12863,.T.); +#4232=ORIENTED_EDGE('',*,*,#12864,.T.); +#4233=ORIENTED_EDGE('',*,*,#12865,.T.); +#4234=ORIENTED_EDGE('',*,*,#12866,.T.); +#4235=ORIENTED_EDGE('',*,*,#12867,.T.); +#4236=ORIENTED_EDGE('',*,*,#12868,.T.); +#4237=ORIENTED_EDGE('',*,*,#12869,.T.); +#4238=ORIENTED_EDGE('',*,*,#12870,.T.); +#4239=ORIENTED_EDGE('',*,*,#12871,.T.); +#4240=ORIENTED_EDGE('',*,*,#12872,.T.); +#4241=ORIENTED_EDGE('',*,*,#12873,.T.); +#4242=ORIENTED_EDGE('',*,*,#12874,.T.); +#4243=ORIENTED_EDGE('',*,*,#12875,.T.); +#4244=ORIENTED_EDGE('',*,*,#12876,.T.); +#4245=ORIENTED_EDGE('',*,*,#12877,.T.); +#4246=ORIENTED_EDGE('',*,*,#12878,.T.); +#4247=ORIENTED_EDGE('',*,*,#12879,.T.); +#4248=ORIENTED_EDGE('',*,*,#12880,.T.); +#4249=ORIENTED_EDGE('',*,*,#12881,.T.); +#4250=ORIENTED_EDGE('',*,*,#12882,.T.); +#4251=ORIENTED_EDGE('',*,*,#12883,.T.); +#4252=ORIENTED_EDGE('',*,*,#12884,.T.); +#4253=ORIENTED_EDGE('',*,*,#12885,.T.); +#4254=ORIENTED_EDGE('',*,*,#12886,.T.); +#4255=ORIENTED_EDGE('',*,*,#12887,.T.); +#4256=ORIENTED_EDGE('',*,*,#12888,.T.); +#4257=ORIENTED_EDGE('',*,*,#12889,.T.); +#4258=ORIENTED_EDGE('',*,*,#12890,.T.); +#4259=ORIENTED_EDGE('',*,*,#12891,.T.); +#4260=ORIENTED_EDGE('',*,*,#12892,.T.); +#4261=ORIENTED_EDGE('',*,*,#12893,.T.); +#4262=ORIENTED_EDGE('',*,*,#12894,.T.); +#4263=ORIENTED_EDGE('',*,*,#12895,.T.); +#4264=ORIENTED_EDGE('',*,*,#12896,.T.); +#4265=ORIENTED_EDGE('',*,*,#12897,.T.); +#4266=ORIENTED_EDGE('',*,*,#12898,.T.); +#4267=ORIENTED_EDGE('',*,*,#12899,.T.); +#4268=ORIENTED_EDGE('',*,*,#12900,.T.); +#4269=ORIENTED_EDGE('',*,*,#12901,.T.); +#4270=ORIENTED_EDGE('',*,*,#12902,.T.); +#4271=ORIENTED_EDGE('',*,*,#12903,.T.); +#4272=ORIENTED_EDGE('',*,*,#12904,.T.); +#4273=ORIENTED_EDGE('',*,*,#12905,.T.); +#4274=ORIENTED_EDGE('',*,*,#12906,.T.); +#4275=ORIENTED_EDGE('',*,*,#12907,.T.); +#4276=ORIENTED_EDGE('',*,*,#12908,.T.); +#4277=ORIENTED_EDGE('',*,*,#12909,.T.); +#4278=ORIENTED_EDGE('',*,*,#12910,.T.); +#4279=ORIENTED_EDGE('',*,*,#12911,.T.); +#4280=ORIENTED_EDGE('',*,*,#12912,.T.); +#4281=ORIENTED_EDGE('',*,*,#12913,.T.); +#4282=ORIENTED_EDGE('',*,*,#12914,.T.); +#4283=ORIENTED_EDGE('',*,*,#12915,.T.); +#4284=ORIENTED_EDGE('',*,*,#12916,.T.); +#4285=ORIENTED_EDGE('',*,*,#12917,.T.); +#4286=ORIENTED_EDGE('',*,*,#12918,.T.); +#4287=ORIENTED_EDGE('',*,*,#12919,.T.); +#4288=ORIENTED_EDGE('',*,*,#12920,.T.); +#4289=ORIENTED_EDGE('',*,*,#12921,.T.); +#4290=ORIENTED_EDGE('',*,*,#12922,.T.); +#4291=ORIENTED_EDGE('',*,*,#12923,.T.); +#4292=ORIENTED_EDGE('',*,*,#12924,.T.); +#4293=ORIENTED_EDGE('',*,*,#12925,.T.); +#4294=ORIENTED_EDGE('',*,*,#12926,.T.); +#4295=ORIENTED_EDGE('',*,*,#12927,.T.); +#4296=ORIENTED_EDGE('',*,*,#12928,.T.); +#4297=ORIENTED_EDGE('',*,*,#12929,.T.); +#4298=ORIENTED_EDGE('',*,*,#12930,.T.); +#4299=ORIENTED_EDGE('',*,*,#12931,.T.); +#4300=ORIENTED_EDGE('',*,*,#12932,.T.); +#4301=ORIENTED_EDGE('',*,*,#12933,.T.); +#4302=ORIENTED_EDGE('',*,*,#12934,.T.); +#4303=ORIENTED_EDGE('',*,*,#12935,.T.); +#4304=ORIENTED_EDGE('',*,*,#12936,.T.); +#4305=ORIENTED_EDGE('',*,*,#12937,.T.); +#4306=ORIENTED_EDGE('',*,*,#12938,.T.); +#4307=ORIENTED_EDGE('',*,*,#12939,.T.); +#4308=ORIENTED_EDGE('',*,*,#12940,.T.); +#4309=ORIENTED_EDGE('',*,*,#12941,.T.); +#4310=ORIENTED_EDGE('',*,*,#12942,.T.); +#4311=ORIENTED_EDGE('',*,*,#12943,.T.); +#4312=ORIENTED_EDGE('',*,*,#12944,.T.); +#4313=ORIENTED_EDGE('',*,*,#12945,.T.); +#4314=ORIENTED_EDGE('',*,*,#12946,.T.); +#4315=ORIENTED_EDGE('',*,*,#12947,.T.); +#4316=ORIENTED_EDGE('',*,*,#12948,.T.); +#4317=ORIENTED_EDGE('',*,*,#12949,.T.); +#4318=ORIENTED_EDGE('',*,*,#12950,.T.); +#4319=ORIENTED_EDGE('',*,*,#12951,.T.); +#4320=ORIENTED_EDGE('',*,*,#12952,.T.); +#4321=ORIENTED_EDGE('',*,*,#12953,.T.); +#4322=ORIENTED_EDGE('',*,*,#12954,.T.); +#4323=ORIENTED_EDGE('',*,*,#12955,.T.); +#4324=ORIENTED_EDGE('',*,*,#12956,.T.); +#4325=ORIENTED_EDGE('',*,*,#12957,.T.); +#4326=ORIENTED_EDGE('',*,*,#12958,.T.); +#4327=ORIENTED_EDGE('',*,*,#12959,.T.); +#4328=ORIENTED_EDGE('',*,*,#12960,.T.); +#4329=ORIENTED_EDGE('',*,*,#12961,.T.); +#4330=ORIENTED_EDGE('',*,*,#12962,.T.); +#4331=ORIENTED_EDGE('',*,*,#12963,.T.); +#4332=ORIENTED_EDGE('',*,*,#12964,.T.); +#4333=ORIENTED_EDGE('',*,*,#12965,.T.); +#4334=ORIENTED_EDGE('',*,*,#12966,.T.); +#4335=ORIENTED_EDGE('',*,*,#12967,.T.); +#4336=ORIENTED_EDGE('',*,*,#12968,.T.); +#4337=ORIENTED_EDGE('',*,*,#12969,.T.); +#4338=ORIENTED_EDGE('',*,*,#12970,.T.); +#4339=ORIENTED_EDGE('',*,*,#12971,.T.); +#4340=ORIENTED_EDGE('',*,*,#12972,.T.); +#4341=ORIENTED_EDGE('',*,*,#12973,.T.); +#4342=ORIENTED_EDGE('',*,*,#12974,.T.); +#4343=ORIENTED_EDGE('',*,*,#12975,.T.); +#4344=ORIENTED_EDGE('',*,*,#12976,.T.); +#4345=ORIENTED_EDGE('',*,*,#12977,.T.); +#4346=ORIENTED_EDGE('',*,*,#12978,.T.); +#4347=ORIENTED_EDGE('',*,*,#12979,.T.); +#4348=ORIENTED_EDGE('',*,*,#12980,.T.); +#4349=ORIENTED_EDGE('',*,*,#12981,.T.); +#4350=ORIENTED_EDGE('',*,*,#12982,.T.); +#4351=ORIENTED_EDGE('',*,*,#12983,.T.); +#4352=ORIENTED_EDGE('',*,*,#12984,.T.); +#4353=ORIENTED_EDGE('',*,*,#12985,.T.); +#4354=ORIENTED_EDGE('',*,*,#12986,.T.); +#4355=ORIENTED_EDGE('',*,*,#12987,.T.); +#4356=ORIENTED_EDGE('',*,*,#12988,.T.); +#4357=ORIENTED_EDGE('',*,*,#12989,.T.); +#4358=ORIENTED_EDGE('',*,*,#12990,.T.); +#4359=ORIENTED_EDGE('',*,*,#12991,.F.); +#4360=ORIENTED_EDGE('',*,*,#12992,.F.); +#4361=ORIENTED_EDGE('',*,*,#12993,.T.); +#4362=ORIENTED_EDGE('',*,*,#12994,.F.); +#4363=ORIENTED_EDGE('',*,*,#12995,.T.); +#4364=ORIENTED_EDGE('',*,*,#12996,.T.); +#4365=ORIENTED_EDGE('',*,*,#12997,.T.); +#4366=ORIENTED_EDGE('',*,*,#12998,.F.); +#4367=ORIENTED_EDGE('',*,*,#12999,.T.); +#4368=ORIENTED_EDGE('',*,*,#13000,.T.); +#4369=ORIENTED_EDGE('',*,*,#13001,.T.); +#4370=ORIENTED_EDGE('',*,*,#13002,.F.); +#4371=ORIENTED_EDGE('',*,*,#13003,.T.); +#4372=ORIENTED_EDGE('',*,*,#13004,.T.); +#4373=ORIENTED_EDGE('',*,*,#13005,.T.); +#4374=ORIENTED_EDGE('',*,*,#13006,.F.); +#4375=ORIENTED_EDGE('',*,*,#13007,.T.); +#4376=ORIENTED_EDGE('',*,*,#13008,.T.); +#4377=ORIENTED_EDGE('',*,*,#13009,.T.); +#4378=ORIENTED_EDGE('',*,*,#13010,.F.); +#4379=ORIENTED_EDGE('',*,*,#13011,.T.); +#4380=ORIENTED_EDGE('',*,*,#13012,.T.); +#4381=ORIENTED_EDGE('',*,*,#13013,.T.); +#4382=ORIENTED_EDGE('',*,*,#13014,.F.); +#4383=ORIENTED_EDGE('',*,*,#13015,.T.); +#4384=ORIENTED_EDGE('',*,*,#13016,.T.); +#4385=ORIENTED_EDGE('',*,*,#13017,.T.); +#4386=ORIENTED_EDGE('',*,*,#13018,.F.); +#4387=ORIENTED_EDGE('',*,*,#13019,.T.); +#4388=ORIENTED_EDGE('',*,*,#13020,.T.); +#4389=ORIENTED_EDGE('',*,*,#13021,.T.); +#4390=ORIENTED_EDGE('',*,*,#13022,.F.); +#4391=ORIENTED_EDGE('',*,*,#13023,.T.); +#4392=ORIENTED_EDGE('',*,*,#13024,.T.); +#4393=ORIENTED_EDGE('',*,*,#13025,.T.); +#4394=ORIENTED_EDGE('',*,*,#13026,.F.); +#4395=ORIENTED_EDGE('',*,*,#13027,.T.); +#4396=ORIENTED_EDGE('',*,*,#13028,.T.); +#4397=ORIENTED_EDGE('',*,*,#13029,.T.); +#4398=ORIENTED_EDGE('',*,*,#13030,.F.); +#4399=ORIENTED_EDGE('',*,*,#13031,.T.); +#4400=ORIENTED_EDGE('',*,*,#13032,.T.); +#4401=ORIENTED_EDGE('',*,*,#13033,.T.); +#4402=ORIENTED_EDGE('',*,*,#13034,.F.); +#4403=ORIENTED_EDGE('',*,*,#13035,.T.); +#4404=ORIENTED_EDGE('',*,*,#13036,.T.); +#4405=ORIENTED_EDGE('',*,*,#13037,.T.); +#4406=ORIENTED_EDGE('',*,*,#13038,.F.); +#4407=ORIENTED_EDGE('',*,*,#13039,.T.); +#4408=ORIENTED_EDGE('',*,*,#13040,.T.); +#4409=ORIENTED_EDGE('',*,*,#13041,.T.); +#4410=ORIENTED_EDGE('',*,*,#13042,.F.); +#4411=ORIENTED_EDGE('',*,*,#13043,.T.); +#4412=ORIENTED_EDGE('',*,*,#13044,.T.); +#4413=ORIENTED_EDGE('',*,*,#13045,.T.); +#4414=ORIENTED_EDGE('',*,*,#13046,.F.); +#4415=ORIENTED_EDGE('',*,*,#13047,.T.); +#4416=ORIENTED_EDGE('',*,*,#13048,.T.); +#4417=ORIENTED_EDGE('',*,*,#13049,.T.); +#4418=ORIENTED_EDGE('',*,*,#13050,.F.); +#4419=ORIENTED_EDGE('',*,*,#13051,.T.); +#4420=ORIENTED_EDGE('',*,*,#13052,.T.); +#4421=ORIENTED_EDGE('',*,*,#13053,.T.); +#4422=ORIENTED_EDGE('',*,*,#13054,.F.); +#4423=ORIENTED_EDGE('',*,*,#13055,.T.); +#4424=ORIENTED_EDGE('',*,*,#13056,.T.); +#4425=ORIENTED_EDGE('',*,*,#13057,.T.); +#4426=ORIENTED_EDGE('',*,*,#13058,.F.); +#4427=ORIENTED_EDGE('',*,*,#13059,.T.); +#4428=ORIENTED_EDGE('',*,*,#13060,.T.); +#4429=ORIENTED_EDGE('',*,*,#13061,.T.); +#4430=ORIENTED_EDGE('',*,*,#13062,.F.); +#4431=ORIENTED_EDGE('',*,*,#13063,.T.); +#4432=ORIENTED_EDGE('',*,*,#13064,.T.); +#4433=ORIENTED_EDGE('',*,*,#13065,.T.); +#4434=ORIENTED_EDGE('',*,*,#13066,.F.); +#4435=ORIENTED_EDGE('',*,*,#13067,.T.); +#4436=ORIENTED_EDGE('',*,*,#13068,.T.); +#4437=ORIENTED_EDGE('',*,*,#13069,.T.); +#4438=ORIENTED_EDGE('',*,*,#13070,.F.); +#4439=ORIENTED_EDGE('',*,*,#13071,.T.); +#4440=ORIENTED_EDGE('',*,*,#13072,.T.); +#4441=ORIENTED_EDGE('',*,*,#13073,.T.); +#4442=ORIENTED_EDGE('',*,*,#13074,.F.); +#4443=ORIENTED_EDGE('',*,*,#13075,.T.); +#4444=ORIENTED_EDGE('',*,*,#13076,.T.); +#4445=ORIENTED_EDGE('',*,*,#13077,.T.); +#4446=ORIENTED_EDGE('',*,*,#13078,.F.); +#4447=ORIENTED_EDGE('',*,*,#13079,.T.); +#4448=ORIENTED_EDGE('',*,*,#13080,.T.); +#4449=ORIENTED_EDGE('',*,*,#13081,.T.); +#4450=ORIENTED_EDGE('',*,*,#13082,.F.); +#4451=ORIENTED_EDGE('',*,*,#13083,.T.); +#4452=ORIENTED_EDGE('',*,*,#13084,.T.); +#4453=ORIENTED_EDGE('',*,*,#13085,.T.); +#4454=ORIENTED_EDGE('',*,*,#13086,.F.); +#4455=ORIENTED_EDGE('',*,*,#13087,.T.); +#4456=ORIENTED_EDGE('',*,*,#13088,.T.); +#4457=ORIENTED_EDGE('',*,*,#13089,.T.); +#4458=ORIENTED_EDGE('',*,*,#13090,.F.); +#4459=ORIENTED_EDGE('',*,*,#13091,.T.); +#4460=ORIENTED_EDGE('',*,*,#13092,.T.); +#4461=ORIENTED_EDGE('',*,*,#13093,.T.); +#4462=ORIENTED_EDGE('',*,*,#13094,.F.); +#4463=ORIENTED_EDGE('',*,*,#13095,.T.); +#4464=ORIENTED_EDGE('',*,*,#13096,.T.); +#4465=ORIENTED_EDGE('',*,*,#13097,.T.); +#4466=ORIENTED_EDGE('',*,*,#13098,.F.); +#4467=ORIENTED_EDGE('',*,*,#13099,.T.); +#4468=ORIENTED_EDGE('',*,*,#13100,.T.); +#4469=ORIENTED_EDGE('',*,*,#13101,.T.); +#4470=ORIENTED_EDGE('',*,*,#13102,.F.); +#4471=ORIENTED_EDGE('',*,*,#13103,.T.); +#4472=ORIENTED_EDGE('',*,*,#13104,.T.); +#4473=ORIENTED_EDGE('',*,*,#13105,.T.); +#4474=ORIENTED_EDGE('',*,*,#13106,.F.); +#4475=ORIENTED_EDGE('',*,*,#13107,.T.); +#4476=ORIENTED_EDGE('',*,*,#13108,.T.); +#4477=ORIENTED_EDGE('',*,*,#13109,.T.); +#4478=ORIENTED_EDGE('',*,*,#13110,.F.); +#4479=ORIENTED_EDGE('',*,*,#13111,.T.); +#4480=ORIENTED_EDGE('',*,*,#13112,.T.); +#4481=ORIENTED_EDGE('',*,*,#13113,.T.); +#4482=ORIENTED_EDGE('',*,*,#13114,.F.); +#4483=ORIENTED_EDGE('',*,*,#13115,.T.); +#4484=ORIENTED_EDGE('',*,*,#13116,.T.); +#4485=ORIENTED_EDGE('',*,*,#13117,.T.); +#4486=ORIENTED_EDGE('',*,*,#13118,.F.); +#4487=ORIENTED_EDGE('',*,*,#13119,.T.); +#4488=ORIENTED_EDGE('',*,*,#13120,.T.); +#4489=ORIENTED_EDGE('',*,*,#13121,.T.); +#4490=ORIENTED_EDGE('',*,*,#13122,.F.); +#4491=ORIENTED_EDGE('',*,*,#13123,.T.); +#4492=ORIENTED_EDGE('',*,*,#13124,.T.); +#4493=ORIENTED_EDGE('',*,*,#13125,.T.); +#4494=ORIENTED_EDGE('',*,*,#13126,.F.); +#4495=ORIENTED_EDGE('',*,*,#13127,.T.); +#4496=ORIENTED_EDGE('',*,*,#13128,.T.); +#4497=ORIENTED_EDGE('',*,*,#13129,.T.); +#4498=ORIENTED_EDGE('',*,*,#13130,.F.); +#4499=ORIENTED_EDGE('',*,*,#13131,.T.); +#4500=ORIENTED_EDGE('',*,*,#13132,.T.); +#4501=ORIENTED_EDGE('',*,*,#13133,.T.); +#4502=ORIENTED_EDGE('',*,*,#13134,.F.); +#4503=ORIENTED_EDGE('',*,*,#13135,.T.); +#4504=ORIENTED_EDGE('',*,*,#13136,.T.); +#4505=ORIENTED_EDGE('',*,*,#13137,.T.); +#4506=ORIENTED_EDGE('',*,*,#13138,.F.); +#4507=ORIENTED_EDGE('',*,*,#13139,.T.); +#4508=ORIENTED_EDGE('',*,*,#13140,.T.); +#4509=ORIENTED_EDGE('',*,*,#13141,.T.); +#4510=ORIENTED_EDGE('',*,*,#13142,.F.); +#4511=ORIENTED_EDGE('',*,*,#13143,.T.); +#4512=ORIENTED_EDGE('',*,*,#13144,.T.); +#4513=ORIENTED_EDGE('',*,*,#13145,.T.); +#4514=ORIENTED_EDGE('',*,*,#13146,.F.); +#4515=ORIENTED_EDGE('',*,*,#13147,.T.); +#4516=ORIENTED_EDGE('',*,*,#13148,.T.); +#4517=ORIENTED_EDGE('',*,*,#13149,.T.); +#4518=ORIENTED_EDGE('',*,*,#13150,.F.); +#4519=ORIENTED_EDGE('',*,*,#13151,.T.); +#4520=ORIENTED_EDGE('',*,*,#13152,.T.); +#4521=ORIENTED_EDGE('',*,*,#13153,.F.); +#4522=ORIENTED_EDGE('',*,*,#13154,.F.); +#4523=ORIENTED_EDGE('',*,*,#13155,.F.); +#4524=ORIENTED_EDGE('',*,*,#13156,.F.); +#4525=ORIENTED_EDGE('',*,*,#13157,.T.); +#4526=ORIENTED_EDGE('',*,*,#13158,.F.); +#4527=ORIENTED_EDGE('',*,*,#13159,.F.); +#4528=ORIENTED_EDGE('',*,*,#13160,.T.); +#4529=ORIENTED_EDGE('',*,*,#13161,.T.); +#4530=ORIENTED_EDGE('',*,*,#13162,.T.); +#4531=ORIENTED_EDGE('',*,*,#13163,.T.); +#4532=ORIENTED_EDGE('',*,*,#13164,.T.); +#4533=ORIENTED_EDGE('',*,*,#13165,.T.); +#4534=ORIENTED_EDGE('',*,*,#13166,.F.); +#4535=ORIENTED_EDGE('',*,*,#13167,.T.); +#4536=ORIENTED_EDGE('',*,*,#13168,.T.); +#4537=ORIENTED_EDGE('',*,*,#13169,.T.); +#4538=ORIENTED_EDGE('',*,*,#13170,.T.); +#4539=ORIENTED_EDGE('',*,*,#13171,.T.); +#4540=ORIENTED_EDGE('',*,*,#13172,.T.); +#4541=ORIENTED_EDGE('',*,*,#13173,.T.); +#4542=ORIENTED_EDGE('',*,*,#13174,.F.); +#4543=ORIENTED_EDGE('',*,*,#13175,.T.); +#4544=ORIENTED_EDGE('',*,*,#13176,.T.); +#4545=ORIENTED_EDGE('',*,*,#13177,.T.); +#4546=ORIENTED_EDGE('',*,*,#13178,.T.); +#4547=ORIENTED_EDGE('',*,*,#13179,.T.); +#4548=ORIENTED_EDGE('',*,*,#13180,.T.); +#4549=ORIENTED_EDGE('',*,*,#13181,.T.); +#4550=ORIENTED_EDGE('',*,*,#13182,.F.); +#4551=ORIENTED_EDGE('',*,*,#13183,.T.); +#4552=ORIENTED_EDGE('',*,*,#13184,.T.); +#4553=ORIENTED_EDGE('',*,*,#13185,.T.); +#4554=ORIENTED_EDGE('',*,*,#13186,.T.); +#4555=ORIENTED_EDGE('',*,*,#13187,.T.); +#4556=ORIENTED_EDGE('',*,*,#13188,.T.); +#4557=ORIENTED_EDGE('',*,*,#13189,.T.); +#4558=ORIENTED_EDGE('',*,*,#13190,.F.); +#4559=ORIENTED_EDGE('',*,*,#13191,.T.); +#4560=ORIENTED_EDGE('',*,*,#13192,.T.); +#4561=ORIENTED_EDGE('',*,*,#13193,.T.); +#4562=ORIENTED_EDGE('',*,*,#13194,.T.); +#4563=ORIENTED_EDGE('',*,*,#13195,.T.); +#4564=ORIENTED_EDGE('',*,*,#13196,.T.); +#4565=ORIENTED_EDGE('',*,*,#13197,.T.); +#4566=ORIENTED_EDGE('',*,*,#13198,.F.); +#4567=ORIENTED_EDGE('',*,*,#13199,.T.); +#4568=ORIENTED_EDGE('',*,*,#13200,.T.); +#4569=ORIENTED_EDGE('',*,*,#13201,.T.); +#4570=ORIENTED_EDGE('',*,*,#13202,.T.); +#4571=ORIENTED_EDGE('',*,*,#13203,.T.); +#4572=ORIENTED_EDGE('',*,*,#13204,.T.); +#4573=ORIENTED_EDGE('',*,*,#13205,.T.); +#4574=ORIENTED_EDGE('',*,*,#13206,.F.); +#4575=ORIENTED_EDGE('',*,*,#13207,.T.); +#4576=ORIENTED_EDGE('',*,*,#13208,.T.); +#4577=ORIENTED_EDGE('',*,*,#13209,.T.); +#4578=ORIENTED_EDGE('',*,*,#13210,.T.); +#4579=ORIENTED_EDGE('',*,*,#13211,.T.); +#4580=ORIENTED_EDGE('',*,*,#13212,.T.); +#4581=ORIENTED_EDGE('',*,*,#13213,.T.); +#4582=ORIENTED_EDGE('',*,*,#13214,.F.); +#4583=ORIENTED_EDGE('',*,*,#13215,.T.); +#4584=ORIENTED_EDGE('',*,*,#13216,.T.); +#4585=ORIENTED_EDGE('',*,*,#13217,.T.); +#4586=ORIENTED_EDGE('',*,*,#13218,.T.); +#4587=ORIENTED_EDGE('',*,*,#13219,.T.); +#4588=ORIENTED_EDGE('',*,*,#13220,.T.); +#4589=ORIENTED_EDGE('',*,*,#13221,.T.); +#4590=ORIENTED_EDGE('',*,*,#13222,.F.); +#4591=ORIENTED_EDGE('',*,*,#13223,.T.); +#4592=ORIENTED_EDGE('',*,*,#13224,.T.); +#4593=ORIENTED_EDGE('',*,*,#13225,.T.); +#4594=ORIENTED_EDGE('',*,*,#13226,.T.); +#4595=ORIENTED_EDGE('',*,*,#13227,.T.); +#4596=ORIENTED_EDGE('',*,*,#13228,.T.); +#4597=ORIENTED_EDGE('',*,*,#13229,.T.); +#4598=ORIENTED_EDGE('',*,*,#13230,.F.); +#4599=ORIENTED_EDGE('',*,*,#13231,.T.); +#4600=ORIENTED_EDGE('',*,*,#13232,.T.); +#4601=ORIENTED_EDGE('',*,*,#13233,.T.); +#4602=ORIENTED_EDGE('',*,*,#13234,.T.); +#4603=ORIENTED_EDGE('',*,*,#13235,.T.); +#4604=ORIENTED_EDGE('',*,*,#13236,.T.); +#4605=ORIENTED_EDGE('',*,*,#13237,.T.); +#4606=ORIENTED_EDGE('',*,*,#13238,.F.); +#4607=ORIENTED_EDGE('',*,*,#13239,.T.); +#4608=ORIENTED_EDGE('',*,*,#13240,.T.); +#4609=ORIENTED_EDGE('',*,*,#13241,.T.); +#4610=ORIENTED_EDGE('',*,*,#13242,.T.); +#4611=ORIENTED_EDGE('',*,*,#13243,.T.); +#4612=ORIENTED_EDGE('',*,*,#13244,.T.); +#4613=ORIENTED_EDGE('',*,*,#13245,.T.); +#4614=ORIENTED_EDGE('',*,*,#13246,.F.); +#4615=ORIENTED_EDGE('',*,*,#13247,.T.); +#4616=ORIENTED_EDGE('',*,*,#13248,.T.); +#4617=ORIENTED_EDGE('',*,*,#13249,.T.); +#4618=ORIENTED_EDGE('',*,*,#13250,.T.); +#4619=ORIENTED_EDGE('',*,*,#13251,.T.); +#4620=ORIENTED_EDGE('',*,*,#13252,.T.); +#4621=ORIENTED_EDGE('',*,*,#13253,.T.); +#4622=ORIENTED_EDGE('',*,*,#13254,.F.); +#4623=ORIENTED_EDGE('',*,*,#13255,.T.); +#4624=ORIENTED_EDGE('',*,*,#13256,.T.); +#4625=ORIENTED_EDGE('',*,*,#13257,.T.); +#4626=ORIENTED_EDGE('',*,*,#13258,.T.); +#4627=ORIENTED_EDGE('',*,*,#13259,.T.); +#4628=ORIENTED_EDGE('',*,*,#13260,.T.); +#4629=ORIENTED_EDGE('',*,*,#13261,.T.); +#4630=ORIENTED_EDGE('',*,*,#13262,.F.); +#4631=ORIENTED_EDGE('',*,*,#13263,.T.); +#4632=ORIENTED_EDGE('',*,*,#13264,.T.); +#4633=ORIENTED_EDGE('',*,*,#13265,.T.); +#4634=ORIENTED_EDGE('',*,*,#13266,.T.); +#4635=ORIENTED_EDGE('',*,*,#13267,.T.); +#4636=ORIENTED_EDGE('',*,*,#13268,.T.); +#4637=ORIENTED_EDGE('',*,*,#13269,.T.); +#4638=ORIENTED_EDGE('',*,*,#13270,.F.); +#4639=ORIENTED_EDGE('',*,*,#13271,.T.); +#4640=ORIENTED_EDGE('',*,*,#13272,.T.); +#4641=ORIENTED_EDGE('',*,*,#13273,.T.); +#4642=ORIENTED_EDGE('',*,*,#13274,.T.); +#4643=ORIENTED_EDGE('',*,*,#13275,.T.); +#4644=ORIENTED_EDGE('',*,*,#13276,.T.); +#4645=ORIENTED_EDGE('',*,*,#13277,.T.); +#4646=ORIENTED_EDGE('',*,*,#13278,.F.); +#4647=ORIENTED_EDGE('',*,*,#13279,.T.); +#4648=ORIENTED_EDGE('',*,*,#13280,.T.); +#4649=ORIENTED_EDGE('',*,*,#13281,.T.); +#4650=ORIENTED_EDGE('',*,*,#13282,.T.); +#4651=ORIENTED_EDGE('',*,*,#13283,.T.); +#4652=ORIENTED_EDGE('',*,*,#13284,.T.); +#4653=ORIENTED_EDGE('',*,*,#13285,.T.); +#4654=ORIENTED_EDGE('',*,*,#13286,.F.); +#4655=ORIENTED_EDGE('',*,*,#13287,.T.); +#4656=ORIENTED_EDGE('',*,*,#13288,.T.); +#4657=ORIENTED_EDGE('',*,*,#13289,.T.); +#4658=ORIENTED_EDGE('',*,*,#13290,.T.); +#4659=ORIENTED_EDGE('',*,*,#13291,.T.); +#4660=ORIENTED_EDGE('',*,*,#13292,.T.); +#4661=ORIENTED_EDGE('',*,*,#13293,.T.); +#4662=ORIENTED_EDGE('',*,*,#13294,.F.); +#4663=ORIENTED_EDGE('',*,*,#13295,.T.); +#4664=ORIENTED_EDGE('',*,*,#13296,.T.); +#4665=ORIENTED_EDGE('',*,*,#13297,.T.); +#4666=ORIENTED_EDGE('',*,*,#13298,.T.); +#4667=ORIENTED_EDGE('',*,*,#13299,.T.); +#4668=ORIENTED_EDGE('',*,*,#13300,.T.); +#4669=ORIENTED_EDGE('',*,*,#13301,.T.); +#4670=ORIENTED_EDGE('',*,*,#13302,.F.); +#4671=ORIENTED_EDGE('',*,*,#13303,.T.); +#4672=ORIENTED_EDGE('',*,*,#13304,.T.); +#4673=ORIENTED_EDGE('',*,*,#13305,.T.); +#4674=ORIENTED_EDGE('',*,*,#13306,.T.); +#4675=ORIENTED_EDGE('',*,*,#13307,.T.); +#4676=ORIENTED_EDGE('',*,*,#13308,.T.); +#4677=ORIENTED_EDGE('',*,*,#13309,.T.); +#4678=ORIENTED_EDGE('',*,*,#13310,.F.); +#4679=ORIENTED_EDGE('',*,*,#13311,.T.); +#4680=ORIENTED_EDGE('',*,*,#13312,.T.); +#4681=ORIENTED_EDGE('',*,*,#13313,.T.); +#4682=ORIENTED_EDGE('',*,*,#13314,.T.); +#4683=ORIENTED_EDGE('',*,*,#13315,.T.); +#4684=ORIENTED_EDGE('',*,*,#13316,.T.); +#4685=ORIENTED_EDGE('',*,*,#13317,.T.); +#4686=ORIENTED_EDGE('',*,*,#13318,.F.); +#4687=ORIENTED_EDGE('',*,*,#13319,.F.); +#4688=ORIENTED_EDGE('',*,*,#13320,.F.); +#4689=ORIENTED_EDGE('',*,*,#13321,.T.); +#4690=ORIENTED_EDGE('',*,*,#13322,.T.); +#4691=ORIENTED_EDGE('',*,*,#13323,.T.); +#4692=ORIENTED_EDGE('',*,*,#13324,.T.); +#4693=ORIENTED_EDGE('',*,*,#13325,.T.); +#4694=ORIENTED_EDGE('',*,*,#13326,.F.); +#4695=ORIENTED_EDGE('',*,*,#13327,.T.); +#4696=ORIENTED_EDGE('',*,*,#13328,.T.); +#4697=ORIENTED_EDGE('',*,*,#13329,.T.); +#4698=ORIENTED_EDGE('',*,*,#13330,.T.); +#4699=ORIENTED_EDGE('',*,*,#13331,.T.); +#4700=ORIENTED_EDGE('',*,*,#13332,.T.); +#4701=ORIENTED_EDGE('',*,*,#13333,.T.); +#4702=ORIENTED_EDGE('',*,*,#13334,.F.); +#4703=ORIENTED_EDGE('',*,*,#13335,.T.); +#4704=ORIENTED_EDGE('',*,*,#13336,.T.); +#4705=ORIENTED_EDGE('',*,*,#13337,.T.); +#4706=ORIENTED_EDGE('',*,*,#13338,.T.); +#4707=ORIENTED_EDGE('',*,*,#13339,.T.); +#4708=ORIENTED_EDGE('',*,*,#13340,.T.); +#4709=ORIENTED_EDGE('',*,*,#13341,.T.); +#4710=ORIENTED_EDGE('',*,*,#13342,.F.); +#4711=ORIENTED_EDGE('',*,*,#13343,.T.); +#4712=ORIENTED_EDGE('',*,*,#13344,.T.); +#4713=ORIENTED_EDGE('',*,*,#13345,.T.); +#4714=ORIENTED_EDGE('',*,*,#13346,.T.); +#4715=ORIENTED_EDGE('',*,*,#13347,.T.); +#4716=ORIENTED_EDGE('',*,*,#13348,.T.); +#4717=ORIENTED_EDGE('',*,*,#13349,.T.); +#4718=ORIENTED_EDGE('',*,*,#13350,.F.); +#4719=ORIENTED_EDGE('',*,*,#13351,.T.); +#4720=ORIENTED_EDGE('',*,*,#13352,.T.); +#4721=ORIENTED_EDGE('',*,*,#13353,.T.); +#4722=ORIENTED_EDGE('',*,*,#13354,.T.); +#4723=ORIENTED_EDGE('',*,*,#13355,.T.); +#4724=ORIENTED_EDGE('',*,*,#13356,.T.); +#4725=ORIENTED_EDGE('',*,*,#13357,.T.); +#4726=ORIENTED_EDGE('',*,*,#13358,.F.); +#4727=ORIENTED_EDGE('',*,*,#13359,.T.); +#4728=ORIENTED_EDGE('',*,*,#13360,.T.); +#4729=ORIENTED_EDGE('',*,*,#13361,.T.); +#4730=ORIENTED_EDGE('',*,*,#13362,.T.); +#4731=ORIENTED_EDGE('',*,*,#13363,.T.); +#4732=ORIENTED_EDGE('',*,*,#13364,.T.); +#4733=ORIENTED_EDGE('',*,*,#13365,.T.); +#4734=ORIENTED_EDGE('',*,*,#13366,.F.); +#4735=ORIENTED_EDGE('',*,*,#13367,.T.); +#4736=ORIENTED_EDGE('',*,*,#13368,.T.); +#4737=ORIENTED_EDGE('',*,*,#13369,.T.); +#4738=ORIENTED_EDGE('',*,*,#13370,.T.); +#4739=ORIENTED_EDGE('',*,*,#13371,.T.); +#4740=ORIENTED_EDGE('',*,*,#13372,.T.); +#4741=ORIENTED_EDGE('',*,*,#13373,.T.); +#4742=ORIENTED_EDGE('',*,*,#13374,.F.); +#4743=ORIENTED_EDGE('',*,*,#13375,.T.); +#4744=ORIENTED_EDGE('',*,*,#13376,.T.); +#4745=ORIENTED_EDGE('',*,*,#13377,.T.); +#4746=ORIENTED_EDGE('',*,*,#13378,.T.); +#4747=ORIENTED_EDGE('',*,*,#13379,.T.); +#4748=ORIENTED_EDGE('',*,*,#13380,.T.); +#4749=ORIENTED_EDGE('',*,*,#13381,.T.); +#4750=ORIENTED_EDGE('',*,*,#13382,.F.); +#4751=ORIENTED_EDGE('',*,*,#13383,.T.); +#4752=ORIENTED_EDGE('',*,*,#13384,.T.); +#4753=ORIENTED_EDGE('',*,*,#13385,.T.); +#4754=ORIENTED_EDGE('',*,*,#13386,.T.); +#4755=ORIENTED_EDGE('',*,*,#13387,.T.); +#4756=ORIENTED_EDGE('',*,*,#13388,.T.); +#4757=ORIENTED_EDGE('',*,*,#13389,.T.); +#4758=ORIENTED_EDGE('',*,*,#13390,.F.); +#4759=ORIENTED_EDGE('',*,*,#13391,.T.); +#4760=ORIENTED_EDGE('',*,*,#13392,.T.); +#4761=ORIENTED_EDGE('',*,*,#13393,.T.); +#4762=ORIENTED_EDGE('',*,*,#13394,.T.); +#4763=ORIENTED_EDGE('',*,*,#13395,.T.); +#4764=ORIENTED_EDGE('',*,*,#13396,.T.); +#4765=ORIENTED_EDGE('',*,*,#13397,.T.); +#4766=ORIENTED_EDGE('',*,*,#13398,.F.); +#4767=ORIENTED_EDGE('',*,*,#13399,.T.); +#4768=ORIENTED_EDGE('',*,*,#13400,.T.); +#4769=ORIENTED_EDGE('',*,*,#13401,.T.); +#4770=ORIENTED_EDGE('',*,*,#13402,.T.); +#4771=ORIENTED_EDGE('',*,*,#13403,.T.); +#4772=ORIENTED_EDGE('',*,*,#13404,.T.); +#4773=ORIENTED_EDGE('',*,*,#13405,.T.); +#4774=ORIENTED_EDGE('',*,*,#13406,.F.); +#4775=ORIENTED_EDGE('',*,*,#13407,.T.); +#4776=ORIENTED_EDGE('',*,*,#13408,.T.); +#4777=ORIENTED_EDGE('',*,*,#13409,.T.); +#4778=ORIENTED_EDGE('',*,*,#13410,.T.); +#4779=ORIENTED_EDGE('',*,*,#13411,.T.); +#4780=ORIENTED_EDGE('',*,*,#13412,.T.); +#4781=ORIENTED_EDGE('',*,*,#13413,.T.); +#4782=ORIENTED_EDGE('',*,*,#13414,.F.); +#4783=ORIENTED_EDGE('',*,*,#13415,.T.); +#4784=ORIENTED_EDGE('',*,*,#13416,.T.); +#4785=ORIENTED_EDGE('',*,*,#13417,.T.); +#4786=ORIENTED_EDGE('',*,*,#13418,.T.); +#4787=ORIENTED_EDGE('',*,*,#13419,.T.); +#4788=ORIENTED_EDGE('',*,*,#13420,.T.); +#4789=ORIENTED_EDGE('',*,*,#13421,.T.); +#4790=ORIENTED_EDGE('',*,*,#13422,.F.); +#4791=ORIENTED_EDGE('',*,*,#13423,.T.); +#4792=ORIENTED_EDGE('',*,*,#13424,.T.); +#4793=ORIENTED_EDGE('',*,*,#13425,.T.); +#4794=ORIENTED_EDGE('',*,*,#13426,.T.); +#4795=ORIENTED_EDGE('',*,*,#13427,.T.); +#4796=ORIENTED_EDGE('',*,*,#13428,.T.); +#4797=ORIENTED_EDGE('',*,*,#13429,.T.); +#4798=ORIENTED_EDGE('',*,*,#13430,.F.); +#4799=ORIENTED_EDGE('',*,*,#13431,.T.); +#4800=ORIENTED_EDGE('',*,*,#13432,.T.); +#4801=ORIENTED_EDGE('',*,*,#13433,.T.); +#4802=ORIENTED_EDGE('',*,*,#13434,.T.); +#4803=ORIENTED_EDGE('',*,*,#13435,.T.); +#4804=ORIENTED_EDGE('',*,*,#13436,.T.); +#4805=ORIENTED_EDGE('',*,*,#13437,.T.); +#4806=ORIENTED_EDGE('',*,*,#13438,.F.); +#4807=ORIENTED_EDGE('',*,*,#13439,.T.); +#4808=ORIENTED_EDGE('',*,*,#13440,.T.); +#4809=ORIENTED_EDGE('',*,*,#13441,.T.); +#4810=ORIENTED_EDGE('',*,*,#13442,.T.); +#4811=ORIENTED_EDGE('',*,*,#13443,.T.); +#4812=ORIENTED_EDGE('',*,*,#13444,.T.); +#4813=ORIENTED_EDGE('',*,*,#13445,.T.); +#4814=ORIENTED_EDGE('',*,*,#13446,.F.); +#4815=ORIENTED_EDGE('',*,*,#13447,.T.); +#4816=ORIENTED_EDGE('',*,*,#13448,.T.); +#4817=ORIENTED_EDGE('',*,*,#13449,.T.); +#4818=ORIENTED_EDGE('',*,*,#13450,.T.); +#4819=ORIENTED_EDGE('',*,*,#13451,.T.); +#4820=ORIENTED_EDGE('',*,*,#13452,.T.); +#4821=ORIENTED_EDGE('',*,*,#13453,.T.); +#4822=ORIENTED_EDGE('',*,*,#13454,.F.); +#4823=ORIENTED_EDGE('',*,*,#13455,.T.); +#4824=ORIENTED_EDGE('',*,*,#13456,.T.); +#4825=ORIENTED_EDGE('',*,*,#13457,.T.); +#4826=ORIENTED_EDGE('',*,*,#13458,.T.); +#4827=ORIENTED_EDGE('',*,*,#13459,.T.); +#4828=ORIENTED_EDGE('',*,*,#13460,.T.); +#4829=ORIENTED_EDGE('',*,*,#13461,.T.); +#4830=ORIENTED_EDGE('',*,*,#13462,.F.); +#4831=ORIENTED_EDGE('',*,*,#13463,.T.); +#4832=ORIENTED_EDGE('',*,*,#13464,.T.); +#4833=ORIENTED_EDGE('',*,*,#13465,.T.); +#4834=ORIENTED_EDGE('',*,*,#13466,.T.); +#4835=ORIENTED_EDGE('',*,*,#13467,.T.); +#4836=ORIENTED_EDGE('',*,*,#13468,.T.); +#4837=ORIENTED_EDGE('',*,*,#13469,.T.); +#4838=ORIENTED_EDGE('',*,*,#13470,.F.); +#4839=ORIENTED_EDGE('',*,*,#13471,.T.); +#4840=ORIENTED_EDGE('',*,*,#13472,.T.); +#4841=ORIENTED_EDGE('',*,*,#13473,.T.); +#4842=ORIENTED_EDGE('',*,*,#13474,.T.); +#4843=ORIENTED_EDGE('',*,*,#13475,.T.); +#4844=ORIENTED_EDGE('',*,*,#13476,.T.); +#4845=ORIENTED_EDGE('',*,*,#13477,.T.); +#4846=ORIENTED_EDGE('',*,*,#13478,.F.); +#4847=ORIENTED_EDGE('',*,*,#13479,.T.); +#4848=ORIENTED_EDGE('',*,*,#13480,.T.); +#4849=ORIENTED_EDGE('',*,*,#13481,.F.); +#4850=ORIENTED_EDGE('',*,*,#13482,.T.); +#4851=ORIENTED_EDGE('',*,*,#13483,.F.); +#4852=ORIENTED_EDGE('',*,*,#13484,.F.); +#4853=ORIENTED_EDGE('',*,*,#12991,.T.); +#4854=ORIENTED_EDGE('',*,*,#13485,.T.); +#4855=ORIENTED_EDGE('',*,*,#13321,.F.); +#4856=ORIENTED_EDGE('',*,*,#12993,.F.); +#4857=ORIENTED_EDGE('',*,*,#13486,.T.); +#4858=ORIENTED_EDGE('',*,*,#13319,.T.); +#4859=ORIENTED_EDGE('',*,*,#13487,.F.); +#4860=ORIENTED_EDGE('',*,*,#13157,.F.); +#4861=ORIENTED_EDGE('',*,*,#13488,.T.); +#4862=ORIENTED_EDGE('',*,*,#13155,.T.); +#4863=ORIENTED_EDGE('',*,*,#13489,.F.); +#4864=ORIENTED_EDGE('',*,*,#13490,.F.); +#4865=ORIENTED_EDGE('',*,*,#13483,.T.); +#4866=ORIENTED_EDGE('',*,*,#13491,.T.); +#4867=ORIENTED_EDGE('',*,*,#12829,.F.); +#4868=ORIENTED_EDGE('',*,*,#12831,.T.); +#4869=ORIENTED_EDGE('',*,*,#13492,.T.); +#4870=ORIENTED_EDGE('',*,*,#13153,.T.); +#4871=ORIENTED_EDGE('',*,*,#13493,.F.); +#4872=ORIENTED_EDGE('',*,*,#13159,.T.); +#4873=ORIENTED_EDGE('',*,*,#13494,.T.); +#4874=ORIENTED_EDGE('',*,*,#13481,.T.); +#4875=ORIENTED_EDGE('',*,*,#13495,.F.); +#4876=ORIENTED_EDGE('',*,*,#13496,.F.); +#4877=ORIENTED_EDGE('',*,*,#12989,.F.); +#4878=ORIENTED_EDGE('',*,*,#13497,.T.); +#4879=ORIENTED_EDGE('',*,*,#12995,.F.); +#4880=ORIENTED_EDGE('',*,*,#13498,.F.); +#4881=ORIENTED_EDGE('',*,*,#13317,.F.); +#4882=ORIENTED_EDGE('',*,*,#13499,.T.); +#4883=ORIENTED_EDGE('',*,*,#13323,.F.); +#4884=ORIENTED_EDGE('',*,*,#13500,.F.); +#4885=ORIENTED_EDGE('',*,*,#13329,.F.); +#4886=ORIENTED_EDGE('',*,*,#13501,.T.); +#4887=ORIENTED_EDGE('',*,*,#13311,.F.); +#4888=ORIENTED_EDGE('',*,*,#13502,.F.); +#4889=ORIENTED_EDGE('',*,*,#13309,.F.); +#4890=ORIENTED_EDGE('',*,*,#13503,.F.); +#4891=ORIENTED_EDGE('',*,*,#13331,.F.); +#4892=ORIENTED_EDGE('',*,*,#13504,.F.); +#4893=ORIENTED_EDGE('',*,*,#13337,.F.); +#4894=ORIENTED_EDGE('',*,*,#13505,.T.); +#4895=ORIENTED_EDGE('',*,*,#13303,.F.); +#4896=ORIENTED_EDGE('',*,*,#13506,.F.); +#4897=ORIENTED_EDGE('',*,*,#13301,.F.); +#4898=ORIENTED_EDGE('',*,*,#13507,.F.); +#4899=ORIENTED_EDGE('',*,*,#13339,.F.); +#4900=ORIENTED_EDGE('',*,*,#13508,.F.); +#4901=ORIENTED_EDGE('',*,*,#13345,.F.); +#4902=ORIENTED_EDGE('',*,*,#13509,.T.); +#4903=ORIENTED_EDGE('',*,*,#13295,.F.); +#4904=ORIENTED_EDGE('',*,*,#13510,.F.); +#4905=ORIENTED_EDGE('',*,*,#13293,.F.); +#4906=ORIENTED_EDGE('',*,*,#13511,.F.); +#4907=ORIENTED_EDGE('',*,*,#13347,.F.); +#4908=ORIENTED_EDGE('',*,*,#13512,.F.); +#4909=ORIENTED_EDGE('',*,*,#13353,.F.); +#4910=ORIENTED_EDGE('',*,*,#13513,.T.); +#4911=ORIENTED_EDGE('',*,*,#13287,.F.); +#4912=ORIENTED_EDGE('',*,*,#13514,.F.); +#4913=ORIENTED_EDGE('',*,*,#13285,.F.); +#4914=ORIENTED_EDGE('',*,*,#13515,.F.); +#4915=ORIENTED_EDGE('',*,*,#13355,.F.); +#4916=ORIENTED_EDGE('',*,*,#13516,.F.); +#4917=ORIENTED_EDGE('',*,*,#13361,.F.); +#4918=ORIENTED_EDGE('',*,*,#13517,.T.); +#4919=ORIENTED_EDGE('',*,*,#13279,.F.); +#4920=ORIENTED_EDGE('',*,*,#13518,.F.); +#4921=ORIENTED_EDGE('',*,*,#13277,.F.); +#4922=ORIENTED_EDGE('',*,*,#13519,.F.); +#4923=ORIENTED_EDGE('',*,*,#13363,.F.); +#4924=ORIENTED_EDGE('',*,*,#13520,.F.); +#4925=ORIENTED_EDGE('',*,*,#13369,.F.); +#4926=ORIENTED_EDGE('',*,*,#13521,.T.); +#4927=ORIENTED_EDGE('',*,*,#13271,.F.); +#4928=ORIENTED_EDGE('',*,*,#13522,.F.); +#4929=ORIENTED_EDGE('',*,*,#13269,.F.); +#4930=ORIENTED_EDGE('',*,*,#13523,.F.); +#4931=ORIENTED_EDGE('',*,*,#13371,.F.); +#4932=ORIENTED_EDGE('',*,*,#13524,.F.); +#4933=ORIENTED_EDGE('',*,*,#13377,.F.); +#4934=ORIENTED_EDGE('',*,*,#13525,.T.); +#4935=ORIENTED_EDGE('',*,*,#13263,.F.); +#4936=ORIENTED_EDGE('',*,*,#13526,.F.); +#4937=ORIENTED_EDGE('',*,*,#13261,.F.); +#4938=ORIENTED_EDGE('',*,*,#13527,.F.); +#4939=ORIENTED_EDGE('',*,*,#13379,.F.); +#4940=ORIENTED_EDGE('',*,*,#13528,.F.); +#4941=ORIENTED_EDGE('',*,*,#13385,.F.); +#4942=ORIENTED_EDGE('',*,*,#13529,.T.); +#4943=ORIENTED_EDGE('',*,*,#13255,.F.); +#4944=ORIENTED_EDGE('',*,*,#13530,.F.); +#4945=ORIENTED_EDGE('',*,*,#13253,.F.); +#4946=ORIENTED_EDGE('',*,*,#13531,.F.); +#4947=ORIENTED_EDGE('',*,*,#13387,.F.); +#4948=ORIENTED_EDGE('',*,*,#13532,.F.); +#4949=ORIENTED_EDGE('',*,*,#13393,.F.); +#4950=ORIENTED_EDGE('',*,*,#13533,.T.); +#4951=ORIENTED_EDGE('',*,*,#13247,.F.); +#4952=ORIENTED_EDGE('',*,*,#13534,.F.); +#4953=ORIENTED_EDGE('',*,*,#13245,.F.); +#4954=ORIENTED_EDGE('',*,*,#13535,.F.); +#4955=ORIENTED_EDGE('',*,*,#13395,.F.); +#4956=ORIENTED_EDGE('',*,*,#13536,.F.); +#4957=ORIENTED_EDGE('',*,*,#13401,.F.); +#4958=ORIENTED_EDGE('',*,*,#13537,.T.); +#4959=ORIENTED_EDGE('',*,*,#13239,.F.); +#4960=ORIENTED_EDGE('',*,*,#13538,.F.); +#4961=ORIENTED_EDGE('',*,*,#13237,.F.); +#4962=ORIENTED_EDGE('',*,*,#13539,.F.); +#4963=ORIENTED_EDGE('',*,*,#13403,.F.); +#4964=ORIENTED_EDGE('',*,*,#13540,.F.); +#4965=ORIENTED_EDGE('',*,*,#13409,.F.); +#4966=ORIENTED_EDGE('',*,*,#13541,.T.); +#4967=ORIENTED_EDGE('',*,*,#13231,.F.); +#4968=ORIENTED_EDGE('',*,*,#13542,.F.); +#4969=ORIENTED_EDGE('',*,*,#13229,.F.); +#4970=ORIENTED_EDGE('',*,*,#13543,.F.); +#4971=ORIENTED_EDGE('',*,*,#13411,.F.); +#4972=ORIENTED_EDGE('',*,*,#13544,.F.); +#4973=ORIENTED_EDGE('',*,*,#13417,.F.); +#4974=ORIENTED_EDGE('',*,*,#13545,.T.); +#4975=ORIENTED_EDGE('',*,*,#13223,.F.); +#4976=ORIENTED_EDGE('',*,*,#13546,.F.); +#4977=ORIENTED_EDGE('',*,*,#13221,.F.); +#4978=ORIENTED_EDGE('',*,*,#13547,.F.); +#4979=ORIENTED_EDGE('',*,*,#13419,.F.); +#4980=ORIENTED_EDGE('',*,*,#13548,.F.); +#4981=ORIENTED_EDGE('',*,*,#13425,.F.); +#4982=ORIENTED_EDGE('',*,*,#13549,.T.); +#4983=ORIENTED_EDGE('',*,*,#13215,.F.); +#4984=ORIENTED_EDGE('',*,*,#13550,.F.); +#4985=ORIENTED_EDGE('',*,*,#13213,.F.); +#4986=ORIENTED_EDGE('',*,*,#13551,.F.); +#4987=ORIENTED_EDGE('',*,*,#13427,.F.); +#4988=ORIENTED_EDGE('',*,*,#13552,.F.); +#4989=ORIENTED_EDGE('',*,*,#13433,.F.); +#4990=ORIENTED_EDGE('',*,*,#13553,.T.); +#4991=ORIENTED_EDGE('',*,*,#13207,.F.); +#4992=ORIENTED_EDGE('',*,*,#13554,.F.); +#4993=ORIENTED_EDGE('',*,*,#13205,.F.); +#4994=ORIENTED_EDGE('',*,*,#13555,.F.); +#4995=ORIENTED_EDGE('',*,*,#13435,.F.); +#4996=ORIENTED_EDGE('',*,*,#13556,.F.); +#4997=ORIENTED_EDGE('',*,*,#13441,.F.); +#4998=ORIENTED_EDGE('',*,*,#13557,.T.); +#4999=ORIENTED_EDGE('',*,*,#13199,.F.); +#5000=ORIENTED_EDGE('',*,*,#13558,.F.); +#5001=ORIENTED_EDGE('',*,*,#13197,.F.); +#5002=ORIENTED_EDGE('',*,*,#13559,.F.); +#5003=ORIENTED_EDGE('',*,*,#13443,.F.); +#5004=ORIENTED_EDGE('',*,*,#13560,.F.); +#5005=ORIENTED_EDGE('',*,*,#13449,.F.); +#5006=ORIENTED_EDGE('',*,*,#13561,.T.); +#5007=ORIENTED_EDGE('',*,*,#13191,.F.); +#5008=ORIENTED_EDGE('',*,*,#13562,.F.); +#5009=ORIENTED_EDGE('',*,*,#13189,.F.); +#5010=ORIENTED_EDGE('',*,*,#13563,.F.); +#5011=ORIENTED_EDGE('',*,*,#13451,.F.); +#5012=ORIENTED_EDGE('',*,*,#13564,.F.); +#5013=ORIENTED_EDGE('',*,*,#13457,.F.); +#5014=ORIENTED_EDGE('',*,*,#13565,.T.); +#5015=ORIENTED_EDGE('',*,*,#13183,.F.); +#5016=ORIENTED_EDGE('',*,*,#13566,.F.); +#5017=ORIENTED_EDGE('',*,*,#13181,.F.); +#5018=ORIENTED_EDGE('',*,*,#13567,.F.); +#5019=ORIENTED_EDGE('',*,*,#13459,.F.); +#5020=ORIENTED_EDGE('',*,*,#13568,.F.); +#5021=ORIENTED_EDGE('',*,*,#13465,.F.); +#5022=ORIENTED_EDGE('',*,*,#13569,.T.); +#5023=ORIENTED_EDGE('',*,*,#13175,.F.); +#5024=ORIENTED_EDGE('',*,*,#13570,.F.); +#5025=ORIENTED_EDGE('',*,*,#13173,.F.); +#5026=ORIENTED_EDGE('',*,*,#13571,.F.); +#5027=ORIENTED_EDGE('',*,*,#13467,.F.); +#5028=ORIENTED_EDGE('',*,*,#13572,.F.); +#5029=ORIENTED_EDGE('',*,*,#13473,.F.); +#5030=ORIENTED_EDGE('',*,*,#13573,.T.); +#5031=ORIENTED_EDGE('',*,*,#13167,.F.); +#5032=ORIENTED_EDGE('',*,*,#13574,.F.); +#5033=ORIENTED_EDGE('',*,*,#13165,.F.); +#5034=ORIENTED_EDGE('',*,*,#13575,.F.); +#5035=ORIENTED_EDGE('',*,*,#13475,.F.); +#5036=ORIENTED_EDGE('',*,*,#13576,.F.); +#5037=ORIENTED_EDGE('',*,*,#13001,.F.); +#5038=ORIENTED_EDGE('',*,*,#13577,.T.); +#5039=ORIENTED_EDGE('',*,*,#12983,.F.); +#5040=ORIENTED_EDGE('',*,*,#13578,.F.); +#5041=ORIENTED_EDGE('',*,*,#12981,.F.); +#5042=ORIENTED_EDGE('',*,*,#13579,.F.); +#5043=ORIENTED_EDGE('',*,*,#13003,.F.); +#5044=ORIENTED_EDGE('',*,*,#13580,.F.); +#5045=ORIENTED_EDGE('',*,*,#13009,.F.); +#5046=ORIENTED_EDGE('',*,*,#13581,.T.); +#5047=ORIENTED_EDGE('',*,*,#12975,.F.); +#5048=ORIENTED_EDGE('',*,*,#13582,.F.); +#5049=ORIENTED_EDGE('',*,*,#12973,.F.); +#5050=ORIENTED_EDGE('',*,*,#13583,.F.); +#5051=ORIENTED_EDGE('',*,*,#13011,.F.); +#5052=ORIENTED_EDGE('',*,*,#13584,.F.); +#5053=ORIENTED_EDGE('',*,*,#13017,.F.); +#5054=ORIENTED_EDGE('',*,*,#13585,.T.); +#5055=ORIENTED_EDGE('',*,*,#12967,.F.); +#5056=ORIENTED_EDGE('',*,*,#13586,.F.); +#5057=ORIENTED_EDGE('',*,*,#12965,.F.); +#5058=ORIENTED_EDGE('',*,*,#13587,.F.); +#5059=ORIENTED_EDGE('',*,*,#13019,.F.); +#5060=ORIENTED_EDGE('',*,*,#13588,.F.); +#5061=ORIENTED_EDGE('',*,*,#13025,.F.); +#5062=ORIENTED_EDGE('',*,*,#13589,.T.); +#5063=ORIENTED_EDGE('',*,*,#12959,.F.); +#5064=ORIENTED_EDGE('',*,*,#13590,.F.); +#5065=ORIENTED_EDGE('',*,*,#12957,.F.); +#5066=ORIENTED_EDGE('',*,*,#13591,.F.); +#5067=ORIENTED_EDGE('',*,*,#13027,.F.); +#5068=ORIENTED_EDGE('',*,*,#13592,.F.); +#5069=ORIENTED_EDGE('',*,*,#13033,.F.); +#5070=ORIENTED_EDGE('',*,*,#13593,.T.); +#5071=ORIENTED_EDGE('',*,*,#12951,.F.); +#5072=ORIENTED_EDGE('',*,*,#13594,.F.); +#5073=ORIENTED_EDGE('',*,*,#12949,.F.); +#5074=ORIENTED_EDGE('',*,*,#13595,.F.); +#5075=ORIENTED_EDGE('',*,*,#13035,.F.); +#5076=ORIENTED_EDGE('',*,*,#13596,.F.); +#5077=ORIENTED_EDGE('',*,*,#13041,.F.); +#5078=ORIENTED_EDGE('',*,*,#13597,.T.); +#5079=ORIENTED_EDGE('',*,*,#12943,.F.); +#5080=ORIENTED_EDGE('',*,*,#13598,.F.); +#5081=ORIENTED_EDGE('',*,*,#12941,.F.); +#5082=ORIENTED_EDGE('',*,*,#13599,.F.); +#5083=ORIENTED_EDGE('',*,*,#13043,.F.); +#5084=ORIENTED_EDGE('',*,*,#13600,.F.); +#5085=ORIENTED_EDGE('',*,*,#13049,.F.); +#5086=ORIENTED_EDGE('',*,*,#13601,.T.); +#5087=ORIENTED_EDGE('',*,*,#12935,.F.); +#5088=ORIENTED_EDGE('',*,*,#13602,.F.); +#5089=ORIENTED_EDGE('',*,*,#12933,.F.); +#5090=ORIENTED_EDGE('',*,*,#13603,.F.); +#5091=ORIENTED_EDGE('',*,*,#13051,.F.); +#5092=ORIENTED_EDGE('',*,*,#13604,.F.); +#5093=ORIENTED_EDGE('',*,*,#13057,.F.); +#5094=ORIENTED_EDGE('',*,*,#13605,.T.); +#5095=ORIENTED_EDGE('',*,*,#12927,.F.); +#5096=ORIENTED_EDGE('',*,*,#13606,.F.); +#5097=ORIENTED_EDGE('',*,*,#12925,.F.); +#5098=ORIENTED_EDGE('',*,*,#13607,.F.); +#5099=ORIENTED_EDGE('',*,*,#13059,.F.); +#5100=ORIENTED_EDGE('',*,*,#13608,.F.); +#5101=ORIENTED_EDGE('',*,*,#13065,.F.); +#5102=ORIENTED_EDGE('',*,*,#13609,.T.); +#5103=ORIENTED_EDGE('',*,*,#12919,.F.); +#5104=ORIENTED_EDGE('',*,*,#13610,.F.); +#5105=ORIENTED_EDGE('',*,*,#12917,.F.); +#5106=ORIENTED_EDGE('',*,*,#13611,.F.); +#5107=ORIENTED_EDGE('',*,*,#13067,.F.); +#5108=ORIENTED_EDGE('',*,*,#13612,.F.); +#5109=ORIENTED_EDGE('',*,*,#13073,.F.); +#5110=ORIENTED_EDGE('',*,*,#13613,.T.); +#5111=ORIENTED_EDGE('',*,*,#12911,.F.); +#5112=ORIENTED_EDGE('',*,*,#13614,.F.); +#5113=ORIENTED_EDGE('',*,*,#12909,.F.); +#5114=ORIENTED_EDGE('',*,*,#13615,.F.); +#5115=ORIENTED_EDGE('',*,*,#13075,.F.); +#5116=ORIENTED_EDGE('',*,*,#13616,.F.); +#5117=ORIENTED_EDGE('',*,*,#13081,.F.); +#5118=ORIENTED_EDGE('',*,*,#13617,.T.); +#5119=ORIENTED_EDGE('',*,*,#12903,.F.); +#5120=ORIENTED_EDGE('',*,*,#13618,.F.); +#5121=ORIENTED_EDGE('',*,*,#12901,.F.); +#5122=ORIENTED_EDGE('',*,*,#13619,.F.); +#5123=ORIENTED_EDGE('',*,*,#13083,.F.); +#5124=ORIENTED_EDGE('',*,*,#13620,.F.); +#5125=ORIENTED_EDGE('',*,*,#13089,.F.); +#5126=ORIENTED_EDGE('',*,*,#13621,.T.); +#5127=ORIENTED_EDGE('',*,*,#12895,.F.); +#5128=ORIENTED_EDGE('',*,*,#13622,.F.); +#5129=ORIENTED_EDGE('',*,*,#12893,.F.); +#5130=ORIENTED_EDGE('',*,*,#13623,.F.); +#5131=ORIENTED_EDGE('',*,*,#13091,.F.); +#5132=ORIENTED_EDGE('',*,*,#13624,.F.); +#5133=ORIENTED_EDGE('',*,*,#13097,.F.); +#5134=ORIENTED_EDGE('',*,*,#13625,.T.); +#5135=ORIENTED_EDGE('',*,*,#12887,.F.); +#5136=ORIENTED_EDGE('',*,*,#13626,.F.); +#5137=ORIENTED_EDGE('',*,*,#12885,.F.); +#5138=ORIENTED_EDGE('',*,*,#13627,.F.); +#5139=ORIENTED_EDGE('',*,*,#13099,.F.); +#5140=ORIENTED_EDGE('',*,*,#13628,.F.); +#5141=ORIENTED_EDGE('',*,*,#13105,.F.); +#5142=ORIENTED_EDGE('',*,*,#13629,.T.); +#5143=ORIENTED_EDGE('',*,*,#12879,.F.); +#5144=ORIENTED_EDGE('',*,*,#13630,.F.); +#5145=ORIENTED_EDGE('',*,*,#12877,.F.); +#5146=ORIENTED_EDGE('',*,*,#13631,.F.); +#5147=ORIENTED_EDGE('',*,*,#13107,.F.); +#5148=ORIENTED_EDGE('',*,*,#13632,.F.); +#5149=ORIENTED_EDGE('',*,*,#13113,.F.); +#5150=ORIENTED_EDGE('',*,*,#13633,.T.); +#5151=ORIENTED_EDGE('',*,*,#12871,.F.); +#5152=ORIENTED_EDGE('',*,*,#13634,.F.); +#5153=ORIENTED_EDGE('',*,*,#12869,.F.); +#5154=ORIENTED_EDGE('',*,*,#13635,.F.); +#5155=ORIENTED_EDGE('',*,*,#13115,.F.); +#5156=ORIENTED_EDGE('',*,*,#13636,.F.); +#5157=ORIENTED_EDGE('',*,*,#13121,.F.); +#5158=ORIENTED_EDGE('',*,*,#13637,.T.); +#5159=ORIENTED_EDGE('',*,*,#12863,.F.); +#5160=ORIENTED_EDGE('',*,*,#13638,.F.); +#5161=ORIENTED_EDGE('',*,*,#12861,.F.); +#5162=ORIENTED_EDGE('',*,*,#13639,.F.); +#5163=ORIENTED_EDGE('',*,*,#13123,.F.); +#5164=ORIENTED_EDGE('',*,*,#13640,.F.); +#5165=ORIENTED_EDGE('',*,*,#13129,.F.); +#5166=ORIENTED_EDGE('',*,*,#13641,.T.); +#5167=ORIENTED_EDGE('',*,*,#12855,.F.); +#5168=ORIENTED_EDGE('',*,*,#13642,.F.); +#5169=ORIENTED_EDGE('',*,*,#12853,.F.); +#5170=ORIENTED_EDGE('',*,*,#13643,.F.); +#5171=ORIENTED_EDGE('',*,*,#13131,.F.); +#5172=ORIENTED_EDGE('',*,*,#13644,.F.); +#5173=ORIENTED_EDGE('',*,*,#13137,.F.); +#5174=ORIENTED_EDGE('',*,*,#13645,.T.); +#5175=ORIENTED_EDGE('',*,*,#12847,.F.); +#5176=ORIENTED_EDGE('',*,*,#13646,.F.); +#5177=ORIENTED_EDGE('',*,*,#12845,.F.); +#5178=ORIENTED_EDGE('',*,*,#13647,.F.); +#5179=ORIENTED_EDGE('',*,*,#13139,.F.); +#5180=ORIENTED_EDGE('',*,*,#13648,.F.); +#5181=ORIENTED_EDGE('',*,*,#12837,.F.); +#5182=ORIENTED_EDGE('',*,*,#13649,.F.); +#5183=ORIENTED_EDGE('',*,*,#13147,.F.); +#5184=ORIENTED_EDGE('',*,*,#13650,.F.); +#5185=ORIENTED_EDGE('',*,*,#13145,.F.); +#5186=ORIENTED_EDGE('',*,*,#13651,.T.); +#5187=ORIENTED_EDGE('',*,*,#12839,.F.); +#5188=ORIENTED_EDGE('',*,*,#13652,.F.); +#5189=ORIENTED_EDGE('',*,*,#13653,.T.); +#5190=ORIENTED_EDGE('',*,*,#13654,.T.); +#5191=ORIENTED_EDGE('',*,*,#13655,.T.); +#5192=ORIENTED_EDGE('',*,*,#13656,.F.); +#5193=ORIENTED_EDGE('',*,*,#13657,.T.); +#5194=ORIENTED_EDGE('',*,*,#13658,.T.); +#5195=ORIENTED_EDGE('',*,*,#13659,.T.); +#5196=ORIENTED_EDGE('',*,*,#13660,.F.); +#5197=ORIENTED_EDGE('',*,*,#13661,.T.); +#5198=ORIENTED_EDGE('',*,*,#13662,.T.); +#5199=ORIENTED_EDGE('',*,*,#13663,.T.); +#5200=ORIENTED_EDGE('',*,*,#13664,.F.); +#5201=ORIENTED_EDGE('',*,*,#13665,.T.); +#5202=ORIENTED_EDGE('',*,*,#13666,.T.); +#5203=ORIENTED_EDGE('',*,*,#13667,.T.); +#5204=ORIENTED_EDGE('',*,*,#13668,.F.); +#5205=ORIENTED_EDGE('',*,*,#13669,.T.); +#5206=ORIENTED_EDGE('',*,*,#13670,.T.); +#5207=ORIENTED_EDGE('',*,*,#13671,.T.); +#5208=ORIENTED_EDGE('',*,*,#13672,.F.); +#5209=ORIENTED_EDGE('',*,*,#13673,.T.); +#5210=ORIENTED_EDGE('',*,*,#13674,.T.); +#5211=ORIENTED_EDGE('',*,*,#13675,.T.); +#5212=ORIENTED_EDGE('',*,*,#13676,.F.); +#5213=ORIENTED_EDGE('',*,*,#13677,.T.); +#5214=ORIENTED_EDGE('',*,*,#13678,.T.); +#5215=ORIENTED_EDGE('',*,*,#13679,.T.); +#5216=ORIENTED_EDGE('',*,*,#13680,.F.); +#5217=ORIENTED_EDGE('',*,*,#13681,.T.); +#5218=ORIENTED_EDGE('',*,*,#13682,.T.); +#5219=ORIENTED_EDGE('',*,*,#13683,.T.); +#5220=ORIENTED_EDGE('',*,*,#13684,.F.); +#5221=ORIENTED_EDGE('',*,*,#13685,.T.); +#5222=ORIENTED_EDGE('',*,*,#13686,.T.); +#5223=ORIENTED_EDGE('',*,*,#13687,.T.); +#5224=ORIENTED_EDGE('',*,*,#13688,.F.); +#5225=ORIENTED_EDGE('',*,*,#13689,.T.); +#5226=ORIENTED_EDGE('',*,*,#13690,.T.); +#5227=ORIENTED_EDGE('',*,*,#13691,.T.); +#5228=ORIENTED_EDGE('',*,*,#13692,.F.); +#5229=ORIENTED_EDGE('',*,*,#13693,.T.); +#5230=ORIENTED_EDGE('',*,*,#13694,.T.); +#5231=ORIENTED_EDGE('',*,*,#13695,.T.); +#5232=ORIENTED_EDGE('',*,*,#13696,.F.); +#5233=ORIENTED_EDGE('',*,*,#13697,.T.); +#5234=ORIENTED_EDGE('',*,*,#13698,.T.); +#5235=ORIENTED_EDGE('',*,*,#13699,.T.); +#5236=ORIENTED_EDGE('',*,*,#13700,.F.); +#5237=ORIENTED_EDGE('',*,*,#13701,.T.); +#5238=ORIENTED_EDGE('',*,*,#13702,.T.); +#5239=ORIENTED_EDGE('',*,*,#13703,.T.); +#5240=ORIENTED_EDGE('',*,*,#13704,.F.); +#5241=ORIENTED_EDGE('',*,*,#13705,.T.); +#5242=ORIENTED_EDGE('',*,*,#13706,.T.); +#5243=ORIENTED_EDGE('',*,*,#13707,.T.); +#5244=ORIENTED_EDGE('',*,*,#13708,.F.); +#5245=ORIENTED_EDGE('',*,*,#13709,.T.); +#5246=ORIENTED_EDGE('',*,*,#13710,.T.); +#5247=ORIENTED_EDGE('',*,*,#13711,.T.); +#5248=ORIENTED_EDGE('',*,*,#13712,.F.); +#5249=ORIENTED_EDGE('',*,*,#13713,.T.); +#5250=ORIENTED_EDGE('',*,*,#13714,.T.); +#5251=ORIENTED_EDGE('',*,*,#13715,.T.); +#5252=ORIENTED_EDGE('',*,*,#13716,.F.); +#5253=ORIENTED_EDGE('',*,*,#13717,.T.); +#5254=ORIENTED_EDGE('',*,*,#13718,.T.); +#5255=ORIENTED_EDGE('',*,*,#13719,.T.); +#5256=ORIENTED_EDGE('',*,*,#13720,.F.); +#5257=ORIENTED_EDGE('',*,*,#13721,.T.); +#5258=ORIENTED_EDGE('',*,*,#13722,.T.); +#5259=ORIENTED_EDGE('',*,*,#13723,.T.); +#5260=ORIENTED_EDGE('',*,*,#13724,.F.); +#5261=ORIENTED_EDGE('',*,*,#13725,.T.); +#5262=ORIENTED_EDGE('',*,*,#13726,.T.); +#5263=ORIENTED_EDGE('',*,*,#13727,.T.); +#5264=ORIENTED_EDGE('',*,*,#13652,.T.); +#5265=ORIENTED_EDGE('',*,*,#13728,.T.); +#5266=ORIENTED_EDGE('',*,*,#13162,.F.); +#5267=ORIENTED_EDGE('',*,*,#13729,.T.); +#5268=ORIENTED_EDGE('',*,*,#13656,.T.); +#5269=ORIENTED_EDGE('',*,*,#13730,.T.); +#5270=ORIENTED_EDGE('',*,*,#13170,.F.); +#5271=ORIENTED_EDGE('',*,*,#13731,.T.); +#5272=ORIENTED_EDGE('',*,*,#13660,.T.); +#5273=ORIENTED_EDGE('',*,*,#13732,.T.); +#5274=ORIENTED_EDGE('',*,*,#13178,.F.); +#5275=ORIENTED_EDGE('',*,*,#13733,.T.); +#5276=ORIENTED_EDGE('',*,*,#13664,.T.); +#5277=ORIENTED_EDGE('',*,*,#13734,.T.); +#5278=ORIENTED_EDGE('',*,*,#13186,.F.); +#5279=ORIENTED_EDGE('',*,*,#13735,.T.); +#5280=ORIENTED_EDGE('',*,*,#13668,.T.); +#5281=ORIENTED_EDGE('',*,*,#13736,.T.); +#5282=ORIENTED_EDGE('',*,*,#13194,.F.); +#5283=ORIENTED_EDGE('',*,*,#13737,.T.); +#5284=ORIENTED_EDGE('',*,*,#13672,.T.); +#5285=ORIENTED_EDGE('',*,*,#13738,.T.); +#5286=ORIENTED_EDGE('',*,*,#13202,.F.); +#5287=ORIENTED_EDGE('',*,*,#13739,.T.); +#5288=ORIENTED_EDGE('',*,*,#13676,.T.); +#5289=ORIENTED_EDGE('',*,*,#13740,.T.); +#5290=ORIENTED_EDGE('',*,*,#13210,.F.); +#5291=ORIENTED_EDGE('',*,*,#13741,.T.); +#5292=ORIENTED_EDGE('',*,*,#13680,.T.); +#5293=ORIENTED_EDGE('',*,*,#13742,.T.); +#5294=ORIENTED_EDGE('',*,*,#13218,.F.); +#5295=ORIENTED_EDGE('',*,*,#13743,.T.); +#5296=ORIENTED_EDGE('',*,*,#13684,.T.); +#5297=ORIENTED_EDGE('',*,*,#13744,.T.); +#5298=ORIENTED_EDGE('',*,*,#13226,.F.); +#5299=ORIENTED_EDGE('',*,*,#13745,.T.); +#5300=ORIENTED_EDGE('',*,*,#13688,.T.); +#5301=ORIENTED_EDGE('',*,*,#13746,.T.); +#5302=ORIENTED_EDGE('',*,*,#13234,.F.); +#5303=ORIENTED_EDGE('',*,*,#13747,.T.); +#5304=ORIENTED_EDGE('',*,*,#13692,.T.); +#5305=ORIENTED_EDGE('',*,*,#13748,.T.); +#5306=ORIENTED_EDGE('',*,*,#13242,.F.); +#5307=ORIENTED_EDGE('',*,*,#13749,.T.); +#5308=ORIENTED_EDGE('',*,*,#13696,.T.); +#5309=ORIENTED_EDGE('',*,*,#13750,.T.); +#5310=ORIENTED_EDGE('',*,*,#13250,.F.); +#5311=ORIENTED_EDGE('',*,*,#13751,.T.); +#5312=ORIENTED_EDGE('',*,*,#13700,.T.); +#5313=ORIENTED_EDGE('',*,*,#13752,.T.); +#5314=ORIENTED_EDGE('',*,*,#13258,.F.); +#5315=ORIENTED_EDGE('',*,*,#13753,.T.); +#5316=ORIENTED_EDGE('',*,*,#13704,.T.); +#5317=ORIENTED_EDGE('',*,*,#13754,.T.); +#5318=ORIENTED_EDGE('',*,*,#13266,.F.); +#5319=ORIENTED_EDGE('',*,*,#13755,.T.); +#5320=ORIENTED_EDGE('',*,*,#13708,.T.); +#5321=ORIENTED_EDGE('',*,*,#13756,.T.); +#5322=ORIENTED_EDGE('',*,*,#13274,.F.); +#5323=ORIENTED_EDGE('',*,*,#13757,.T.); +#5324=ORIENTED_EDGE('',*,*,#13712,.T.); +#5325=ORIENTED_EDGE('',*,*,#13758,.T.); +#5326=ORIENTED_EDGE('',*,*,#13282,.F.); +#5327=ORIENTED_EDGE('',*,*,#13759,.T.); +#5328=ORIENTED_EDGE('',*,*,#13716,.T.); +#5329=ORIENTED_EDGE('',*,*,#13760,.T.); +#5330=ORIENTED_EDGE('',*,*,#13290,.F.); +#5331=ORIENTED_EDGE('',*,*,#13761,.T.); +#5332=ORIENTED_EDGE('',*,*,#13720,.T.); +#5333=ORIENTED_EDGE('',*,*,#13762,.T.); +#5334=ORIENTED_EDGE('',*,*,#13298,.F.); +#5335=ORIENTED_EDGE('',*,*,#13763,.T.); +#5336=ORIENTED_EDGE('',*,*,#13724,.T.); +#5337=ORIENTED_EDGE('',*,*,#13764,.T.); +#5338=ORIENTED_EDGE('',*,*,#13306,.F.); +#5339=ORIENTED_EDGE('',*,*,#13765,.T.); +#5340=ORIENTED_EDGE('',*,*,#13766,.T.); +#5341=ORIENTED_EDGE('',*,*,#13767,.F.); +#5342=ORIENTED_EDGE('',*,*,#13768,.T.); +#5343=ORIENTED_EDGE('',*,*,#13150,.T.); +#5344=ORIENTED_EDGE('',*,*,#13769,.T.); +#5345=ORIENTED_EDGE('',*,*,#13770,.F.); +#5346=ORIENTED_EDGE('',*,*,#13771,.T.); +#5347=ORIENTED_EDGE('',*,*,#13142,.T.); +#5348=ORIENTED_EDGE('',*,*,#13772,.T.); +#5349=ORIENTED_EDGE('',*,*,#13773,.F.); +#5350=ORIENTED_EDGE('',*,*,#13774,.T.); +#5351=ORIENTED_EDGE('',*,*,#13134,.T.); +#5352=ORIENTED_EDGE('',*,*,#13775,.T.); +#5353=ORIENTED_EDGE('',*,*,#13776,.F.); +#5354=ORIENTED_EDGE('',*,*,#13777,.T.); +#5355=ORIENTED_EDGE('',*,*,#13126,.T.); +#5356=ORIENTED_EDGE('',*,*,#13778,.T.); +#5357=ORIENTED_EDGE('',*,*,#13779,.F.); +#5358=ORIENTED_EDGE('',*,*,#13780,.T.); +#5359=ORIENTED_EDGE('',*,*,#13118,.T.); +#5360=ORIENTED_EDGE('',*,*,#13781,.T.); +#5361=ORIENTED_EDGE('',*,*,#13782,.F.); +#5362=ORIENTED_EDGE('',*,*,#13783,.T.); +#5363=ORIENTED_EDGE('',*,*,#13110,.T.); +#5364=ORIENTED_EDGE('',*,*,#13784,.T.); +#5365=ORIENTED_EDGE('',*,*,#13785,.F.); +#5366=ORIENTED_EDGE('',*,*,#13786,.T.); +#5367=ORIENTED_EDGE('',*,*,#13102,.T.); +#5368=ORIENTED_EDGE('',*,*,#13787,.T.); +#5369=ORIENTED_EDGE('',*,*,#13788,.F.); +#5370=ORIENTED_EDGE('',*,*,#13789,.T.); +#5371=ORIENTED_EDGE('',*,*,#13094,.T.); +#5372=ORIENTED_EDGE('',*,*,#13790,.T.); +#5373=ORIENTED_EDGE('',*,*,#13791,.F.); +#5374=ORIENTED_EDGE('',*,*,#13792,.T.); +#5375=ORIENTED_EDGE('',*,*,#13086,.T.); +#5376=ORIENTED_EDGE('',*,*,#13793,.T.); +#5377=ORIENTED_EDGE('',*,*,#13794,.F.); +#5378=ORIENTED_EDGE('',*,*,#13795,.T.); +#5379=ORIENTED_EDGE('',*,*,#13078,.T.); +#5380=ORIENTED_EDGE('',*,*,#13796,.T.); +#5381=ORIENTED_EDGE('',*,*,#13797,.F.); +#5382=ORIENTED_EDGE('',*,*,#13798,.T.); +#5383=ORIENTED_EDGE('',*,*,#13070,.T.); +#5384=ORIENTED_EDGE('',*,*,#13799,.T.); +#5385=ORIENTED_EDGE('',*,*,#13800,.F.); +#5386=ORIENTED_EDGE('',*,*,#13801,.T.); +#5387=ORIENTED_EDGE('',*,*,#13062,.T.); +#5388=ORIENTED_EDGE('',*,*,#13802,.T.); +#5389=ORIENTED_EDGE('',*,*,#13803,.F.); +#5390=ORIENTED_EDGE('',*,*,#13804,.T.); +#5391=ORIENTED_EDGE('',*,*,#13054,.T.); +#5392=ORIENTED_EDGE('',*,*,#13805,.T.); +#5393=ORIENTED_EDGE('',*,*,#13806,.F.); +#5394=ORIENTED_EDGE('',*,*,#13807,.T.); +#5395=ORIENTED_EDGE('',*,*,#13046,.T.); +#5396=ORIENTED_EDGE('',*,*,#13808,.T.); +#5397=ORIENTED_EDGE('',*,*,#13809,.F.); +#5398=ORIENTED_EDGE('',*,*,#13810,.T.); +#5399=ORIENTED_EDGE('',*,*,#13038,.T.); +#5400=ORIENTED_EDGE('',*,*,#13811,.T.); +#5401=ORIENTED_EDGE('',*,*,#13812,.F.); +#5402=ORIENTED_EDGE('',*,*,#13813,.T.); +#5403=ORIENTED_EDGE('',*,*,#13030,.T.); +#5404=ORIENTED_EDGE('',*,*,#13814,.T.); +#5405=ORIENTED_EDGE('',*,*,#13815,.F.); +#5406=ORIENTED_EDGE('',*,*,#13816,.T.); +#5407=ORIENTED_EDGE('',*,*,#13022,.T.); +#5408=ORIENTED_EDGE('',*,*,#13817,.T.); +#5409=ORIENTED_EDGE('',*,*,#13818,.F.); +#5410=ORIENTED_EDGE('',*,*,#13819,.T.); +#5411=ORIENTED_EDGE('',*,*,#13014,.T.); +#5412=ORIENTED_EDGE('',*,*,#13820,.T.); +#5413=ORIENTED_EDGE('',*,*,#13821,.F.); +#5414=ORIENTED_EDGE('',*,*,#13822,.T.); +#5415=ORIENTED_EDGE('',*,*,#13006,.T.); +#5416=ORIENTED_EDGE('',*,*,#13823,.F.); +#5417=ORIENTED_EDGE('',*,*,#13824,.T.); +#5418=ORIENTED_EDGE('',*,*,#13767,.T.); +#5419=ORIENTED_EDGE('',*,*,#13825,.T.); +#5420=ORIENTED_EDGE('',*,*,#13826,.F.); +#5421=ORIENTED_EDGE('',*,*,#13827,.T.); +#5422=ORIENTED_EDGE('',*,*,#13770,.T.); +#5423=ORIENTED_EDGE('',*,*,#13828,.T.); +#5424=ORIENTED_EDGE('',*,*,#13829,.F.); +#5425=ORIENTED_EDGE('',*,*,#13830,.T.); +#5426=ORIENTED_EDGE('',*,*,#13773,.T.); +#5427=ORIENTED_EDGE('',*,*,#13831,.T.); +#5428=ORIENTED_EDGE('',*,*,#13832,.F.); +#5429=ORIENTED_EDGE('',*,*,#13833,.T.); +#5430=ORIENTED_EDGE('',*,*,#13776,.T.); +#5431=ORIENTED_EDGE('',*,*,#13834,.T.); +#5432=ORIENTED_EDGE('',*,*,#13835,.F.); +#5433=ORIENTED_EDGE('',*,*,#13836,.T.); +#5434=ORIENTED_EDGE('',*,*,#13779,.T.); +#5435=ORIENTED_EDGE('',*,*,#13837,.T.); +#5436=ORIENTED_EDGE('',*,*,#13838,.F.); +#5437=ORIENTED_EDGE('',*,*,#13839,.T.); +#5438=ORIENTED_EDGE('',*,*,#13782,.T.); +#5439=ORIENTED_EDGE('',*,*,#13840,.T.); +#5440=ORIENTED_EDGE('',*,*,#13841,.F.); +#5441=ORIENTED_EDGE('',*,*,#13842,.T.); +#5442=ORIENTED_EDGE('',*,*,#13785,.T.); +#5443=ORIENTED_EDGE('',*,*,#13843,.T.); +#5444=ORIENTED_EDGE('',*,*,#13844,.F.); +#5445=ORIENTED_EDGE('',*,*,#13845,.T.); +#5446=ORIENTED_EDGE('',*,*,#13788,.T.); +#5447=ORIENTED_EDGE('',*,*,#13846,.T.); +#5448=ORIENTED_EDGE('',*,*,#13847,.F.); +#5449=ORIENTED_EDGE('',*,*,#13848,.T.); +#5450=ORIENTED_EDGE('',*,*,#13791,.T.); +#5451=ORIENTED_EDGE('',*,*,#13849,.T.); +#5452=ORIENTED_EDGE('',*,*,#13850,.F.); +#5453=ORIENTED_EDGE('',*,*,#13851,.T.); +#5454=ORIENTED_EDGE('',*,*,#13794,.T.); +#5455=ORIENTED_EDGE('',*,*,#13852,.T.); +#5456=ORIENTED_EDGE('',*,*,#13853,.F.); +#5457=ORIENTED_EDGE('',*,*,#13854,.T.); +#5458=ORIENTED_EDGE('',*,*,#13797,.T.); +#5459=ORIENTED_EDGE('',*,*,#13855,.T.); +#5460=ORIENTED_EDGE('',*,*,#13856,.F.); +#5461=ORIENTED_EDGE('',*,*,#13857,.T.); +#5462=ORIENTED_EDGE('',*,*,#13800,.T.); +#5463=ORIENTED_EDGE('',*,*,#13858,.T.); +#5464=ORIENTED_EDGE('',*,*,#13859,.F.); +#5465=ORIENTED_EDGE('',*,*,#13860,.T.); +#5466=ORIENTED_EDGE('',*,*,#13803,.T.); +#5467=ORIENTED_EDGE('',*,*,#13861,.T.); +#5468=ORIENTED_EDGE('',*,*,#13862,.F.); +#5469=ORIENTED_EDGE('',*,*,#13863,.T.); +#5470=ORIENTED_EDGE('',*,*,#13806,.T.); +#5471=ORIENTED_EDGE('',*,*,#13864,.T.); +#5472=ORIENTED_EDGE('',*,*,#13865,.F.); +#5473=ORIENTED_EDGE('',*,*,#13866,.T.); +#5474=ORIENTED_EDGE('',*,*,#13809,.T.); +#5475=ORIENTED_EDGE('',*,*,#13867,.T.); +#5476=ORIENTED_EDGE('',*,*,#13868,.F.); +#5477=ORIENTED_EDGE('',*,*,#13869,.T.); +#5478=ORIENTED_EDGE('',*,*,#13812,.T.); +#5479=ORIENTED_EDGE('',*,*,#13870,.T.); +#5480=ORIENTED_EDGE('',*,*,#13871,.F.); +#5481=ORIENTED_EDGE('',*,*,#13872,.T.); +#5482=ORIENTED_EDGE('',*,*,#13815,.T.); +#5483=ORIENTED_EDGE('',*,*,#13873,.T.); +#5484=ORIENTED_EDGE('',*,*,#13874,.F.); +#5485=ORIENTED_EDGE('',*,*,#13875,.T.); +#5486=ORIENTED_EDGE('',*,*,#13818,.T.); +#5487=ORIENTED_EDGE('',*,*,#13876,.T.); +#5488=ORIENTED_EDGE('',*,*,#13877,.F.); +#5489=ORIENTED_EDGE('',*,*,#13878,.T.); +#5490=ORIENTED_EDGE('',*,*,#13821,.T.); +#5491=ORIENTED_EDGE('',*,*,#13879,.T.); +#5492=ORIENTED_EDGE('',*,*,#13880,.F.); +#5493=ORIENTED_EDGE('',*,*,#13823,.T.); +#5494=ORIENTED_EDGE('',*,*,#13881,.F.); +#5495=ORIENTED_EDGE('',*,*,#12834,.F.); +#5496=ORIENTED_EDGE('',*,*,#13882,.F.); +#5497=ORIENTED_EDGE('',*,*,#13826,.T.); +#5498=ORIENTED_EDGE('',*,*,#13883,.F.); +#5499=ORIENTED_EDGE('',*,*,#12842,.F.); +#5500=ORIENTED_EDGE('',*,*,#13884,.F.); +#5501=ORIENTED_EDGE('',*,*,#13829,.T.); +#5502=ORIENTED_EDGE('',*,*,#13885,.F.); +#5503=ORIENTED_EDGE('',*,*,#12850,.F.); +#5504=ORIENTED_EDGE('',*,*,#13886,.F.); +#5505=ORIENTED_EDGE('',*,*,#13832,.T.); +#5506=ORIENTED_EDGE('',*,*,#13887,.F.); +#5507=ORIENTED_EDGE('',*,*,#12858,.F.); +#5508=ORIENTED_EDGE('',*,*,#13888,.F.); +#5509=ORIENTED_EDGE('',*,*,#13835,.T.); +#5510=ORIENTED_EDGE('',*,*,#13889,.F.); +#5511=ORIENTED_EDGE('',*,*,#12866,.F.); +#5512=ORIENTED_EDGE('',*,*,#13890,.F.); +#5513=ORIENTED_EDGE('',*,*,#13838,.T.); +#5514=ORIENTED_EDGE('',*,*,#13891,.F.); +#5515=ORIENTED_EDGE('',*,*,#12874,.F.); +#5516=ORIENTED_EDGE('',*,*,#13892,.F.); +#5517=ORIENTED_EDGE('',*,*,#13841,.T.); +#5518=ORIENTED_EDGE('',*,*,#13893,.F.); +#5519=ORIENTED_EDGE('',*,*,#12882,.F.); +#5520=ORIENTED_EDGE('',*,*,#13894,.F.); +#5521=ORIENTED_EDGE('',*,*,#13844,.T.); +#5522=ORIENTED_EDGE('',*,*,#13895,.F.); +#5523=ORIENTED_EDGE('',*,*,#12890,.F.); +#5524=ORIENTED_EDGE('',*,*,#13896,.F.); +#5525=ORIENTED_EDGE('',*,*,#13847,.T.); +#5526=ORIENTED_EDGE('',*,*,#13897,.F.); +#5527=ORIENTED_EDGE('',*,*,#12898,.F.); +#5528=ORIENTED_EDGE('',*,*,#13898,.F.); +#5529=ORIENTED_EDGE('',*,*,#13850,.T.); +#5530=ORIENTED_EDGE('',*,*,#13899,.F.); +#5531=ORIENTED_EDGE('',*,*,#12906,.F.); +#5532=ORIENTED_EDGE('',*,*,#13900,.F.); +#5533=ORIENTED_EDGE('',*,*,#13853,.T.); +#5534=ORIENTED_EDGE('',*,*,#13901,.F.); +#5535=ORIENTED_EDGE('',*,*,#12914,.F.); +#5536=ORIENTED_EDGE('',*,*,#13902,.F.); +#5537=ORIENTED_EDGE('',*,*,#13856,.T.); +#5538=ORIENTED_EDGE('',*,*,#13903,.F.); +#5539=ORIENTED_EDGE('',*,*,#12922,.F.); +#5540=ORIENTED_EDGE('',*,*,#13904,.F.); +#5541=ORIENTED_EDGE('',*,*,#13859,.T.); +#5542=ORIENTED_EDGE('',*,*,#13905,.F.); +#5543=ORIENTED_EDGE('',*,*,#12930,.F.); +#5544=ORIENTED_EDGE('',*,*,#13906,.F.); +#5545=ORIENTED_EDGE('',*,*,#13862,.T.); +#5546=ORIENTED_EDGE('',*,*,#13907,.F.); +#5547=ORIENTED_EDGE('',*,*,#12938,.F.); +#5548=ORIENTED_EDGE('',*,*,#13908,.F.); +#5549=ORIENTED_EDGE('',*,*,#13865,.T.); +#5550=ORIENTED_EDGE('',*,*,#13909,.F.); +#5551=ORIENTED_EDGE('',*,*,#12946,.F.); +#5552=ORIENTED_EDGE('',*,*,#13910,.F.); +#5553=ORIENTED_EDGE('',*,*,#13868,.T.); +#5554=ORIENTED_EDGE('',*,*,#13911,.F.); +#5555=ORIENTED_EDGE('',*,*,#12954,.F.); +#5556=ORIENTED_EDGE('',*,*,#13912,.F.); +#5557=ORIENTED_EDGE('',*,*,#13871,.T.); +#5558=ORIENTED_EDGE('',*,*,#13913,.F.); +#5559=ORIENTED_EDGE('',*,*,#12962,.F.); +#5560=ORIENTED_EDGE('',*,*,#13914,.F.); +#5561=ORIENTED_EDGE('',*,*,#13874,.T.); +#5562=ORIENTED_EDGE('',*,*,#13915,.F.); +#5563=ORIENTED_EDGE('',*,*,#12970,.F.); +#5564=ORIENTED_EDGE('',*,*,#13916,.F.); +#5565=ORIENTED_EDGE('',*,*,#13877,.T.); +#5566=ORIENTED_EDGE('',*,*,#13917,.F.); +#5567=ORIENTED_EDGE('',*,*,#12978,.F.); +#5568=ORIENTED_EDGE('',*,*,#13918,.F.); +#5569=ORIENTED_EDGE('',*,*,#13478,.T.); +#5570=ORIENTED_EDGE('',*,*,#13919,.F.); +#5571=ORIENTED_EDGE('',*,*,#13654,.F.); +#5572=ORIENTED_EDGE('',*,*,#13920,.F.); +#5573=ORIENTED_EDGE('',*,*,#13470,.T.); +#5574=ORIENTED_EDGE('',*,*,#13921,.F.); +#5575=ORIENTED_EDGE('',*,*,#13658,.F.); +#5576=ORIENTED_EDGE('',*,*,#13922,.F.); +#5577=ORIENTED_EDGE('',*,*,#13462,.T.); +#5578=ORIENTED_EDGE('',*,*,#13923,.F.); +#5579=ORIENTED_EDGE('',*,*,#13662,.F.); +#5580=ORIENTED_EDGE('',*,*,#13924,.F.); +#5581=ORIENTED_EDGE('',*,*,#13454,.T.); +#5582=ORIENTED_EDGE('',*,*,#13925,.F.); +#5583=ORIENTED_EDGE('',*,*,#13666,.F.); +#5584=ORIENTED_EDGE('',*,*,#13926,.F.); +#5585=ORIENTED_EDGE('',*,*,#13446,.T.); +#5586=ORIENTED_EDGE('',*,*,#13927,.F.); +#5587=ORIENTED_EDGE('',*,*,#13670,.F.); +#5588=ORIENTED_EDGE('',*,*,#13928,.F.); +#5589=ORIENTED_EDGE('',*,*,#13438,.T.); +#5590=ORIENTED_EDGE('',*,*,#13929,.F.); +#5591=ORIENTED_EDGE('',*,*,#13674,.F.); +#5592=ORIENTED_EDGE('',*,*,#13930,.F.); +#5593=ORIENTED_EDGE('',*,*,#13430,.T.); +#5594=ORIENTED_EDGE('',*,*,#13931,.F.); +#5595=ORIENTED_EDGE('',*,*,#13678,.F.); +#5596=ORIENTED_EDGE('',*,*,#13932,.F.); +#5597=ORIENTED_EDGE('',*,*,#13422,.T.); +#5598=ORIENTED_EDGE('',*,*,#13933,.F.); +#5599=ORIENTED_EDGE('',*,*,#13682,.F.); +#5600=ORIENTED_EDGE('',*,*,#13934,.F.); +#5601=ORIENTED_EDGE('',*,*,#13414,.T.); +#5602=ORIENTED_EDGE('',*,*,#13935,.F.); +#5603=ORIENTED_EDGE('',*,*,#13686,.F.); +#5604=ORIENTED_EDGE('',*,*,#13936,.F.); +#5605=ORIENTED_EDGE('',*,*,#13406,.T.); +#5606=ORIENTED_EDGE('',*,*,#13937,.F.); +#5607=ORIENTED_EDGE('',*,*,#13690,.F.); +#5608=ORIENTED_EDGE('',*,*,#13938,.F.); +#5609=ORIENTED_EDGE('',*,*,#13398,.T.); +#5610=ORIENTED_EDGE('',*,*,#13939,.F.); +#5611=ORIENTED_EDGE('',*,*,#13694,.F.); +#5612=ORIENTED_EDGE('',*,*,#13940,.F.); +#5613=ORIENTED_EDGE('',*,*,#13390,.T.); +#5614=ORIENTED_EDGE('',*,*,#13941,.F.); +#5615=ORIENTED_EDGE('',*,*,#13698,.F.); +#5616=ORIENTED_EDGE('',*,*,#13942,.F.); +#5617=ORIENTED_EDGE('',*,*,#13382,.T.); +#5618=ORIENTED_EDGE('',*,*,#13943,.F.); +#5619=ORIENTED_EDGE('',*,*,#13702,.F.); +#5620=ORIENTED_EDGE('',*,*,#13944,.F.); +#5621=ORIENTED_EDGE('',*,*,#13374,.T.); +#5622=ORIENTED_EDGE('',*,*,#13945,.F.); +#5623=ORIENTED_EDGE('',*,*,#13706,.F.); +#5624=ORIENTED_EDGE('',*,*,#13946,.F.); +#5625=ORIENTED_EDGE('',*,*,#13366,.T.); +#5626=ORIENTED_EDGE('',*,*,#13947,.F.); +#5627=ORIENTED_EDGE('',*,*,#13710,.F.); +#5628=ORIENTED_EDGE('',*,*,#13948,.F.); +#5629=ORIENTED_EDGE('',*,*,#13358,.T.); +#5630=ORIENTED_EDGE('',*,*,#13949,.F.); +#5631=ORIENTED_EDGE('',*,*,#13714,.F.); +#5632=ORIENTED_EDGE('',*,*,#13950,.F.); +#5633=ORIENTED_EDGE('',*,*,#13350,.T.); +#5634=ORIENTED_EDGE('',*,*,#13951,.F.); +#5635=ORIENTED_EDGE('',*,*,#13718,.F.); +#5636=ORIENTED_EDGE('',*,*,#13952,.F.); +#5637=ORIENTED_EDGE('',*,*,#13342,.T.); +#5638=ORIENTED_EDGE('',*,*,#13953,.F.); +#5639=ORIENTED_EDGE('',*,*,#13722,.F.); +#5640=ORIENTED_EDGE('',*,*,#13954,.F.); +#5641=ORIENTED_EDGE('',*,*,#13334,.T.); +#5642=ORIENTED_EDGE('',*,*,#13955,.F.); +#5643=ORIENTED_EDGE('',*,*,#13726,.F.); +#5644=ORIENTED_EDGE('',*,*,#13956,.F.); +#5645=ORIENTED_EDGE('',*,*,#13957,.T.); +#5646=ORIENTED_EDGE('',*,*,#13958,.T.); +#5647=ORIENTED_EDGE('',*,*,#13959,.T.); +#5648=ORIENTED_EDGE('',*,*,#13956,.T.); +#5649=ORIENTED_EDGE('',*,*,#13960,.T.); +#5650=ORIENTED_EDGE('',*,*,#13314,.F.); +#5651=ORIENTED_EDGE('',*,*,#13961,.T.); +#5652=ORIENTED_EDGE('',*,*,#13962,.T.); +#5653=ORIENTED_EDGE('',*,*,#13963,.F.); +#5654=ORIENTED_EDGE('',*,*,#13964,.T.); +#5655=ORIENTED_EDGE('',*,*,#12998,.T.); +#5656=ORIENTED_EDGE('',*,*,#13965,.F.); +#5657=ORIENTED_EDGE('',*,*,#13966,.T.); +#5658=ORIENTED_EDGE('',*,*,#13963,.T.); +#5659=ORIENTED_EDGE('',*,*,#13967,.T.); +#5660=ORIENTED_EDGE('',*,*,#13968,.F.); +#5661=ORIENTED_EDGE('',*,*,#13965,.T.); +#5662=ORIENTED_EDGE('',*,*,#13969,.F.); +#5663=ORIENTED_EDGE('',*,*,#12986,.F.); +#5664=ORIENTED_EDGE('',*,*,#13970,.F.); +#5665=ORIENTED_EDGE('',*,*,#13326,.T.); +#5666=ORIENTED_EDGE('',*,*,#13971,.F.); +#5667=ORIENTED_EDGE('',*,*,#13958,.F.); +#5668=ORIENTED_EDGE('',*,*,#13972,.F.); +#5669=ORIENTED_EDGE('',*,*,#13324,.F.); +#5670=ORIENTED_EDGE('',*,*,#13499,.F.); +#5671=ORIENTED_EDGE('',*,*,#13316,.F.); +#5672=ORIENTED_EDGE('',*,*,#13960,.F.); +#5673=ORIENTED_EDGE('',*,*,#13959,.F.); +#5674=ORIENTED_EDGE('',*,*,#13971,.T.); +#5675=ORIENTED_EDGE('',*,*,#13325,.F.); +#5676=ORIENTED_EDGE('',*,*,#13972,.T.); +#5677=ORIENTED_EDGE('',*,*,#13315,.F.); +#5678=ORIENTED_EDGE('',*,*,#13497,.F.); +#5679=ORIENTED_EDGE('',*,*,#12988,.F.); +#5680=ORIENTED_EDGE('',*,*,#13973,.F.); +#5681=ORIENTED_EDGE('',*,*,#12996,.F.); +#5682=ORIENTED_EDGE('',*,*,#13973,.T.); +#5683=ORIENTED_EDGE('',*,*,#12987,.F.); +#5684=ORIENTED_EDGE('',*,*,#13969,.T.); +#5685=ORIENTED_EDGE('',*,*,#13967,.F.); +#5686=ORIENTED_EDGE('',*,*,#13962,.F.); +#5687=ORIENTED_EDGE('',*,*,#12997,.F.); +#5688=ORIENTED_EDGE('',*,*,#13495,.T.); +#5689=ORIENTED_EDGE('',*,*,#13480,.F.); +#5690=ORIENTED_EDGE('',*,*,#13974,.T.); +#5691=ORIENTED_EDGE('',*,*,#13160,.F.); +#5692=ORIENTED_EDGE('',*,*,#13974,.F.); +#5693=ORIENTED_EDGE('',*,*,#13479,.F.); +#5694=ORIENTED_EDGE('',*,*,#13918,.T.); +#5695=ORIENTED_EDGE('',*,*,#13653,.F.); +#5696=ORIENTED_EDGE('',*,*,#13729,.F.); +#5697=ORIENTED_EDGE('',*,*,#13161,.F.); +#5698=ORIENTED_EDGE('',*,*,#13975,.T.); +#5699=ORIENTED_EDGE('',*,*,#12832,.F.); +#5700=ORIENTED_EDGE('',*,*,#13493,.T.); +#5701=ORIENTED_EDGE('',*,*,#13152,.F.); +#5702=ORIENTED_EDGE('',*,*,#13768,.F.); +#5703=ORIENTED_EDGE('',*,*,#13824,.F.); +#5704=ORIENTED_EDGE('',*,*,#13880,.T.); +#5705=ORIENTED_EDGE('',*,*,#12833,.F.); +#5706=ORIENTED_EDGE('',*,*,#13975,.F.); +#5707=ORIENTED_EDGE('',*,*,#13151,.F.); +#5708=ORIENTED_EDGE('',*,*,#13976,.F.); +#5709=ORIENTED_EDGE('',*,*,#13327,.F.); +#5710=ORIENTED_EDGE('',*,*,#13970,.T.); +#5711=ORIENTED_EDGE('',*,*,#13957,.F.); +#5712=ORIENTED_EDGE('',*,*,#13961,.F.); +#5713=ORIENTED_EDGE('',*,*,#13313,.F.); +#5714=ORIENTED_EDGE('',*,*,#13501,.F.); +#5715=ORIENTED_EDGE('',*,*,#13328,.F.); +#5716=ORIENTED_EDGE('',*,*,#13976,.T.); +#5717=ORIENTED_EDGE('',*,*,#13312,.F.); +#5718=ORIENTED_EDGE('',*,*,#13764,.F.); +#5719=ORIENTED_EDGE('',*,*,#13727,.F.); +#5720=ORIENTED_EDGE('',*,*,#13955,.T.); +#5721=ORIENTED_EDGE('',*,*,#13333,.F.); +#5722=ORIENTED_EDGE('',*,*,#13977,.T.); +#5723=ORIENTED_EDGE('',*,*,#13307,.F.); +#5724=ORIENTED_EDGE('',*,*,#13977,.F.); +#5725=ORIENTED_EDGE('',*,*,#13332,.F.); +#5726=ORIENTED_EDGE('',*,*,#13503,.T.); +#5727=ORIENTED_EDGE('',*,*,#13308,.F.); +#5728=ORIENTED_EDGE('',*,*,#13978,.F.); +#5729=ORIENTED_EDGE('',*,*,#13335,.F.); +#5730=ORIENTED_EDGE('',*,*,#13954,.T.); +#5731=ORIENTED_EDGE('',*,*,#13725,.F.); +#5732=ORIENTED_EDGE('',*,*,#13765,.F.); +#5733=ORIENTED_EDGE('',*,*,#13305,.F.); +#5734=ORIENTED_EDGE('',*,*,#13505,.F.); +#5735=ORIENTED_EDGE('',*,*,#13336,.F.); +#5736=ORIENTED_EDGE('',*,*,#13978,.T.); +#5737=ORIENTED_EDGE('',*,*,#13304,.F.); +#5738=ORIENTED_EDGE('',*,*,#13762,.F.); +#5739=ORIENTED_EDGE('',*,*,#13723,.F.); +#5740=ORIENTED_EDGE('',*,*,#13953,.T.); +#5741=ORIENTED_EDGE('',*,*,#13341,.F.); +#5742=ORIENTED_EDGE('',*,*,#13979,.T.); +#5743=ORIENTED_EDGE('',*,*,#13299,.F.); +#5744=ORIENTED_EDGE('',*,*,#13979,.F.); +#5745=ORIENTED_EDGE('',*,*,#13340,.F.); +#5746=ORIENTED_EDGE('',*,*,#13507,.T.); +#5747=ORIENTED_EDGE('',*,*,#13300,.F.); +#5748=ORIENTED_EDGE('',*,*,#13980,.F.); +#5749=ORIENTED_EDGE('',*,*,#13343,.F.); +#5750=ORIENTED_EDGE('',*,*,#13952,.T.); +#5751=ORIENTED_EDGE('',*,*,#13721,.F.); +#5752=ORIENTED_EDGE('',*,*,#13763,.F.); +#5753=ORIENTED_EDGE('',*,*,#13297,.F.); +#5754=ORIENTED_EDGE('',*,*,#13509,.F.); +#5755=ORIENTED_EDGE('',*,*,#13344,.F.); +#5756=ORIENTED_EDGE('',*,*,#13980,.T.); +#5757=ORIENTED_EDGE('',*,*,#13296,.F.); +#5758=ORIENTED_EDGE('',*,*,#13760,.F.); +#5759=ORIENTED_EDGE('',*,*,#13719,.F.); +#5760=ORIENTED_EDGE('',*,*,#13951,.T.); +#5761=ORIENTED_EDGE('',*,*,#13349,.F.); +#5762=ORIENTED_EDGE('',*,*,#13981,.T.); +#5763=ORIENTED_EDGE('',*,*,#13291,.F.); +#5764=ORIENTED_EDGE('',*,*,#13981,.F.); +#5765=ORIENTED_EDGE('',*,*,#13348,.F.); +#5766=ORIENTED_EDGE('',*,*,#13511,.T.); +#5767=ORIENTED_EDGE('',*,*,#13292,.F.); +#5768=ORIENTED_EDGE('',*,*,#13982,.F.); +#5769=ORIENTED_EDGE('',*,*,#13351,.F.); +#5770=ORIENTED_EDGE('',*,*,#13950,.T.); +#5771=ORIENTED_EDGE('',*,*,#13717,.F.); +#5772=ORIENTED_EDGE('',*,*,#13761,.F.); +#5773=ORIENTED_EDGE('',*,*,#13289,.F.); +#5774=ORIENTED_EDGE('',*,*,#13513,.F.); +#5775=ORIENTED_EDGE('',*,*,#13352,.F.); +#5776=ORIENTED_EDGE('',*,*,#13982,.T.); +#5777=ORIENTED_EDGE('',*,*,#13288,.F.); +#5778=ORIENTED_EDGE('',*,*,#13758,.F.); +#5779=ORIENTED_EDGE('',*,*,#13715,.F.); +#5780=ORIENTED_EDGE('',*,*,#13949,.T.); +#5781=ORIENTED_EDGE('',*,*,#13357,.F.); +#5782=ORIENTED_EDGE('',*,*,#13983,.T.); +#5783=ORIENTED_EDGE('',*,*,#13283,.F.); +#5784=ORIENTED_EDGE('',*,*,#13983,.F.); +#5785=ORIENTED_EDGE('',*,*,#13356,.F.); +#5786=ORIENTED_EDGE('',*,*,#13515,.T.); +#5787=ORIENTED_EDGE('',*,*,#13284,.F.); +#5788=ORIENTED_EDGE('',*,*,#13984,.F.); +#5789=ORIENTED_EDGE('',*,*,#13359,.F.); +#5790=ORIENTED_EDGE('',*,*,#13948,.T.); +#5791=ORIENTED_EDGE('',*,*,#13713,.F.); +#5792=ORIENTED_EDGE('',*,*,#13759,.F.); +#5793=ORIENTED_EDGE('',*,*,#13281,.F.); +#5794=ORIENTED_EDGE('',*,*,#13517,.F.); +#5795=ORIENTED_EDGE('',*,*,#13360,.F.); +#5796=ORIENTED_EDGE('',*,*,#13984,.T.); +#5797=ORIENTED_EDGE('',*,*,#13280,.F.); +#5798=ORIENTED_EDGE('',*,*,#13756,.F.); +#5799=ORIENTED_EDGE('',*,*,#13711,.F.); +#5800=ORIENTED_EDGE('',*,*,#13947,.T.); +#5801=ORIENTED_EDGE('',*,*,#13365,.F.); +#5802=ORIENTED_EDGE('',*,*,#13985,.T.); +#5803=ORIENTED_EDGE('',*,*,#13275,.F.); +#5804=ORIENTED_EDGE('',*,*,#13985,.F.); +#5805=ORIENTED_EDGE('',*,*,#13364,.F.); +#5806=ORIENTED_EDGE('',*,*,#13519,.T.); +#5807=ORIENTED_EDGE('',*,*,#13276,.F.); +#5808=ORIENTED_EDGE('',*,*,#13986,.F.); +#5809=ORIENTED_EDGE('',*,*,#13367,.F.); +#5810=ORIENTED_EDGE('',*,*,#13946,.T.); +#5811=ORIENTED_EDGE('',*,*,#13709,.F.); +#5812=ORIENTED_EDGE('',*,*,#13757,.F.); +#5813=ORIENTED_EDGE('',*,*,#13273,.F.); +#5814=ORIENTED_EDGE('',*,*,#13521,.F.); +#5815=ORIENTED_EDGE('',*,*,#13368,.F.); +#5816=ORIENTED_EDGE('',*,*,#13986,.T.); +#5817=ORIENTED_EDGE('',*,*,#13272,.F.); +#5818=ORIENTED_EDGE('',*,*,#13754,.F.); +#5819=ORIENTED_EDGE('',*,*,#13707,.F.); +#5820=ORIENTED_EDGE('',*,*,#13945,.T.); +#5821=ORIENTED_EDGE('',*,*,#13373,.F.); +#5822=ORIENTED_EDGE('',*,*,#13987,.T.); +#5823=ORIENTED_EDGE('',*,*,#13267,.F.); +#5824=ORIENTED_EDGE('',*,*,#13987,.F.); +#5825=ORIENTED_EDGE('',*,*,#13372,.F.); +#5826=ORIENTED_EDGE('',*,*,#13523,.T.); +#5827=ORIENTED_EDGE('',*,*,#13268,.F.); +#5828=ORIENTED_EDGE('',*,*,#13988,.F.); +#5829=ORIENTED_EDGE('',*,*,#13375,.F.); +#5830=ORIENTED_EDGE('',*,*,#13944,.T.); +#5831=ORIENTED_EDGE('',*,*,#13705,.F.); +#5832=ORIENTED_EDGE('',*,*,#13755,.F.); +#5833=ORIENTED_EDGE('',*,*,#13265,.F.); +#5834=ORIENTED_EDGE('',*,*,#13525,.F.); +#5835=ORIENTED_EDGE('',*,*,#13376,.F.); +#5836=ORIENTED_EDGE('',*,*,#13988,.T.); +#5837=ORIENTED_EDGE('',*,*,#13264,.F.); +#5838=ORIENTED_EDGE('',*,*,#13752,.F.); +#5839=ORIENTED_EDGE('',*,*,#13703,.F.); +#5840=ORIENTED_EDGE('',*,*,#13943,.T.); +#5841=ORIENTED_EDGE('',*,*,#13381,.F.); +#5842=ORIENTED_EDGE('',*,*,#13989,.T.); +#5843=ORIENTED_EDGE('',*,*,#13259,.F.); +#5844=ORIENTED_EDGE('',*,*,#13989,.F.); +#5845=ORIENTED_EDGE('',*,*,#13380,.F.); +#5846=ORIENTED_EDGE('',*,*,#13527,.T.); +#5847=ORIENTED_EDGE('',*,*,#13260,.F.); +#5848=ORIENTED_EDGE('',*,*,#13990,.F.); +#5849=ORIENTED_EDGE('',*,*,#13383,.F.); +#5850=ORIENTED_EDGE('',*,*,#13942,.T.); +#5851=ORIENTED_EDGE('',*,*,#13701,.F.); +#5852=ORIENTED_EDGE('',*,*,#13753,.F.); +#5853=ORIENTED_EDGE('',*,*,#13257,.F.); +#5854=ORIENTED_EDGE('',*,*,#13529,.F.); +#5855=ORIENTED_EDGE('',*,*,#13384,.F.); +#5856=ORIENTED_EDGE('',*,*,#13990,.T.); +#5857=ORIENTED_EDGE('',*,*,#13256,.F.); +#5858=ORIENTED_EDGE('',*,*,#13750,.F.); +#5859=ORIENTED_EDGE('',*,*,#13699,.F.); +#5860=ORIENTED_EDGE('',*,*,#13941,.T.); +#5861=ORIENTED_EDGE('',*,*,#13389,.F.); +#5862=ORIENTED_EDGE('',*,*,#13991,.T.); +#5863=ORIENTED_EDGE('',*,*,#13251,.F.); +#5864=ORIENTED_EDGE('',*,*,#13991,.F.); +#5865=ORIENTED_EDGE('',*,*,#13388,.F.); +#5866=ORIENTED_EDGE('',*,*,#13531,.T.); +#5867=ORIENTED_EDGE('',*,*,#13252,.F.); +#5868=ORIENTED_EDGE('',*,*,#13992,.F.); +#5869=ORIENTED_EDGE('',*,*,#13391,.F.); +#5870=ORIENTED_EDGE('',*,*,#13940,.T.); +#5871=ORIENTED_EDGE('',*,*,#13697,.F.); +#5872=ORIENTED_EDGE('',*,*,#13751,.F.); +#5873=ORIENTED_EDGE('',*,*,#13249,.F.); +#5874=ORIENTED_EDGE('',*,*,#13533,.F.); +#5875=ORIENTED_EDGE('',*,*,#13392,.F.); +#5876=ORIENTED_EDGE('',*,*,#13992,.T.); +#5877=ORIENTED_EDGE('',*,*,#13248,.F.); +#5878=ORIENTED_EDGE('',*,*,#13748,.F.); +#5879=ORIENTED_EDGE('',*,*,#13695,.F.); +#5880=ORIENTED_EDGE('',*,*,#13939,.T.); +#5881=ORIENTED_EDGE('',*,*,#13397,.F.); +#5882=ORIENTED_EDGE('',*,*,#13993,.T.); +#5883=ORIENTED_EDGE('',*,*,#13243,.F.); +#5884=ORIENTED_EDGE('',*,*,#13993,.F.); +#5885=ORIENTED_EDGE('',*,*,#13396,.F.); +#5886=ORIENTED_EDGE('',*,*,#13535,.T.); +#5887=ORIENTED_EDGE('',*,*,#13244,.F.); +#5888=ORIENTED_EDGE('',*,*,#13994,.F.); +#5889=ORIENTED_EDGE('',*,*,#13399,.F.); +#5890=ORIENTED_EDGE('',*,*,#13938,.T.); +#5891=ORIENTED_EDGE('',*,*,#13693,.F.); +#5892=ORIENTED_EDGE('',*,*,#13749,.F.); +#5893=ORIENTED_EDGE('',*,*,#13241,.F.); +#5894=ORIENTED_EDGE('',*,*,#13537,.F.); +#5895=ORIENTED_EDGE('',*,*,#13400,.F.); +#5896=ORIENTED_EDGE('',*,*,#13994,.T.); +#5897=ORIENTED_EDGE('',*,*,#13240,.F.); +#5898=ORIENTED_EDGE('',*,*,#13746,.F.); +#5899=ORIENTED_EDGE('',*,*,#13691,.F.); +#5900=ORIENTED_EDGE('',*,*,#13937,.T.); +#5901=ORIENTED_EDGE('',*,*,#13405,.F.); +#5902=ORIENTED_EDGE('',*,*,#13995,.T.); +#5903=ORIENTED_EDGE('',*,*,#13235,.F.); +#5904=ORIENTED_EDGE('',*,*,#13995,.F.); +#5905=ORIENTED_EDGE('',*,*,#13404,.F.); +#5906=ORIENTED_EDGE('',*,*,#13539,.T.); +#5907=ORIENTED_EDGE('',*,*,#13236,.F.); +#5908=ORIENTED_EDGE('',*,*,#13996,.F.); +#5909=ORIENTED_EDGE('',*,*,#13407,.F.); +#5910=ORIENTED_EDGE('',*,*,#13936,.T.); +#5911=ORIENTED_EDGE('',*,*,#13689,.F.); +#5912=ORIENTED_EDGE('',*,*,#13747,.F.); +#5913=ORIENTED_EDGE('',*,*,#13233,.F.); +#5914=ORIENTED_EDGE('',*,*,#13541,.F.); +#5915=ORIENTED_EDGE('',*,*,#13408,.F.); +#5916=ORIENTED_EDGE('',*,*,#13996,.T.); +#5917=ORIENTED_EDGE('',*,*,#13232,.F.); +#5918=ORIENTED_EDGE('',*,*,#13744,.F.); +#5919=ORIENTED_EDGE('',*,*,#13687,.F.); +#5920=ORIENTED_EDGE('',*,*,#13935,.T.); +#5921=ORIENTED_EDGE('',*,*,#13413,.F.); +#5922=ORIENTED_EDGE('',*,*,#13997,.T.); +#5923=ORIENTED_EDGE('',*,*,#13227,.F.); +#5924=ORIENTED_EDGE('',*,*,#13997,.F.); +#5925=ORIENTED_EDGE('',*,*,#13412,.F.); +#5926=ORIENTED_EDGE('',*,*,#13543,.T.); +#5927=ORIENTED_EDGE('',*,*,#13228,.F.); +#5928=ORIENTED_EDGE('',*,*,#13998,.F.); +#5929=ORIENTED_EDGE('',*,*,#13415,.F.); +#5930=ORIENTED_EDGE('',*,*,#13934,.T.); +#5931=ORIENTED_EDGE('',*,*,#13685,.F.); +#5932=ORIENTED_EDGE('',*,*,#13745,.F.); +#5933=ORIENTED_EDGE('',*,*,#13225,.F.); +#5934=ORIENTED_EDGE('',*,*,#13545,.F.); +#5935=ORIENTED_EDGE('',*,*,#13416,.F.); +#5936=ORIENTED_EDGE('',*,*,#13998,.T.); +#5937=ORIENTED_EDGE('',*,*,#13224,.F.); +#5938=ORIENTED_EDGE('',*,*,#13742,.F.); +#5939=ORIENTED_EDGE('',*,*,#13683,.F.); +#5940=ORIENTED_EDGE('',*,*,#13933,.T.); +#5941=ORIENTED_EDGE('',*,*,#13421,.F.); +#5942=ORIENTED_EDGE('',*,*,#13999,.T.); +#5943=ORIENTED_EDGE('',*,*,#13219,.F.); +#5944=ORIENTED_EDGE('',*,*,#13999,.F.); +#5945=ORIENTED_EDGE('',*,*,#13420,.F.); +#5946=ORIENTED_EDGE('',*,*,#13547,.T.); +#5947=ORIENTED_EDGE('',*,*,#13220,.F.); +#5948=ORIENTED_EDGE('',*,*,#14000,.F.); +#5949=ORIENTED_EDGE('',*,*,#13423,.F.); +#5950=ORIENTED_EDGE('',*,*,#13932,.T.); +#5951=ORIENTED_EDGE('',*,*,#13681,.F.); +#5952=ORIENTED_EDGE('',*,*,#13743,.F.); +#5953=ORIENTED_EDGE('',*,*,#13217,.F.); +#5954=ORIENTED_EDGE('',*,*,#13549,.F.); +#5955=ORIENTED_EDGE('',*,*,#13424,.F.); +#5956=ORIENTED_EDGE('',*,*,#14000,.T.); +#5957=ORIENTED_EDGE('',*,*,#13216,.F.); +#5958=ORIENTED_EDGE('',*,*,#13740,.F.); +#5959=ORIENTED_EDGE('',*,*,#13679,.F.); +#5960=ORIENTED_EDGE('',*,*,#13931,.T.); +#5961=ORIENTED_EDGE('',*,*,#13429,.F.); +#5962=ORIENTED_EDGE('',*,*,#14001,.T.); +#5963=ORIENTED_EDGE('',*,*,#13211,.F.); +#5964=ORIENTED_EDGE('',*,*,#14001,.F.); +#5965=ORIENTED_EDGE('',*,*,#13428,.F.); +#5966=ORIENTED_EDGE('',*,*,#13551,.T.); +#5967=ORIENTED_EDGE('',*,*,#13212,.F.); +#5968=ORIENTED_EDGE('',*,*,#14002,.F.); +#5969=ORIENTED_EDGE('',*,*,#13431,.F.); +#5970=ORIENTED_EDGE('',*,*,#13930,.T.); +#5971=ORIENTED_EDGE('',*,*,#13677,.F.); +#5972=ORIENTED_EDGE('',*,*,#13741,.F.); +#5973=ORIENTED_EDGE('',*,*,#13209,.F.); +#5974=ORIENTED_EDGE('',*,*,#13553,.F.); +#5975=ORIENTED_EDGE('',*,*,#13432,.F.); +#5976=ORIENTED_EDGE('',*,*,#14002,.T.); +#5977=ORIENTED_EDGE('',*,*,#13208,.F.); +#5978=ORIENTED_EDGE('',*,*,#13738,.F.); +#5979=ORIENTED_EDGE('',*,*,#13675,.F.); +#5980=ORIENTED_EDGE('',*,*,#13929,.T.); +#5981=ORIENTED_EDGE('',*,*,#13437,.F.); +#5982=ORIENTED_EDGE('',*,*,#14003,.T.); +#5983=ORIENTED_EDGE('',*,*,#13203,.F.); +#5984=ORIENTED_EDGE('',*,*,#14003,.F.); +#5985=ORIENTED_EDGE('',*,*,#13436,.F.); +#5986=ORIENTED_EDGE('',*,*,#13555,.T.); +#5987=ORIENTED_EDGE('',*,*,#13204,.F.); +#5988=ORIENTED_EDGE('',*,*,#14004,.F.); +#5989=ORIENTED_EDGE('',*,*,#13439,.F.); +#5990=ORIENTED_EDGE('',*,*,#13928,.T.); +#5991=ORIENTED_EDGE('',*,*,#13673,.F.); +#5992=ORIENTED_EDGE('',*,*,#13739,.F.); +#5993=ORIENTED_EDGE('',*,*,#13201,.F.); +#5994=ORIENTED_EDGE('',*,*,#13557,.F.); +#5995=ORIENTED_EDGE('',*,*,#13440,.F.); +#5996=ORIENTED_EDGE('',*,*,#14004,.T.); +#5997=ORIENTED_EDGE('',*,*,#13200,.F.); +#5998=ORIENTED_EDGE('',*,*,#13736,.F.); +#5999=ORIENTED_EDGE('',*,*,#13671,.F.); +#6000=ORIENTED_EDGE('',*,*,#13927,.T.); +#6001=ORIENTED_EDGE('',*,*,#13445,.F.); +#6002=ORIENTED_EDGE('',*,*,#14005,.T.); +#6003=ORIENTED_EDGE('',*,*,#13195,.F.); +#6004=ORIENTED_EDGE('',*,*,#14005,.F.); +#6005=ORIENTED_EDGE('',*,*,#13444,.F.); +#6006=ORIENTED_EDGE('',*,*,#13559,.T.); +#6007=ORIENTED_EDGE('',*,*,#13196,.F.); +#6008=ORIENTED_EDGE('',*,*,#14006,.F.); +#6009=ORIENTED_EDGE('',*,*,#13447,.F.); +#6010=ORIENTED_EDGE('',*,*,#13926,.T.); +#6011=ORIENTED_EDGE('',*,*,#13669,.F.); +#6012=ORIENTED_EDGE('',*,*,#13737,.F.); +#6013=ORIENTED_EDGE('',*,*,#13193,.F.); +#6014=ORIENTED_EDGE('',*,*,#13561,.F.); +#6015=ORIENTED_EDGE('',*,*,#13448,.F.); +#6016=ORIENTED_EDGE('',*,*,#14006,.T.); +#6017=ORIENTED_EDGE('',*,*,#13192,.F.); +#6018=ORIENTED_EDGE('',*,*,#13734,.F.); +#6019=ORIENTED_EDGE('',*,*,#13667,.F.); +#6020=ORIENTED_EDGE('',*,*,#13925,.T.); +#6021=ORIENTED_EDGE('',*,*,#13453,.F.); +#6022=ORIENTED_EDGE('',*,*,#14007,.T.); +#6023=ORIENTED_EDGE('',*,*,#13187,.F.); +#6024=ORIENTED_EDGE('',*,*,#14007,.F.); +#6025=ORIENTED_EDGE('',*,*,#13452,.F.); +#6026=ORIENTED_EDGE('',*,*,#13563,.T.); +#6027=ORIENTED_EDGE('',*,*,#13188,.F.); +#6028=ORIENTED_EDGE('',*,*,#14008,.F.); +#6029=ORIENTED_EDGE('',*,*,#13455,.F.); +#6030=ORIENTED_EDGE('',*,*,#13924,.T.); +#6031=ORIENTED_EDGE('',*,*,#13665,.F.); +#6032=ORIENTED_EDGE('',*,*,#13735,.F.); +#6033=ORIENTED_EDGE('',*,*,#13185,.F.); +#6034=ORIENTED_EDGE('',*,*,#13565,.F.); +#6035=ORIENTED_EDGE('',*,*,#13456,.F.); +#6036=ORIENTED_EDGE('',*,*,#14008,.T.); +#6037=ORIENTED_EDGE('',*,*,#13184,.F.); +#6038=ORIENTED_EDGE('',*,*,#13732,.F.); +#6039=ORIENTED_EDGE('',*,*,#13663,.F.); +#6040=ORIENTED_EDGE('',*,*,#13923,.T.); +#6041=ORIENTED_EDGE('',*,*,#13461,.F.); +#6042=ORIENTED_EDGE('',*,*,#14009,.T.); +#6043=ORIENTED_EDGE('',*,*,#13179,.F.); +#6044=ORIENTED_EDGE('',*,*,#14009,.F.); +#6045=ORIENTED_EDGE('',*,*,#13460,.F.); +#6046=ORIENTED_EDGE('',*,*,#13567,.T.); +#6047=ORIENTED_EDGE('',*,*,#13180,.F.); +#6048=ORIENTED_EDGE('',*,*,#14010,.F.); +#6049=ORIENTED_EDGE('',*,*,#13463,.F.); +#6050=ORIENTED_EDGE('',*,*,#13922,.T.); +#6051=ORIENTED_EDGE('',*,*,#13661,.F.); +#6052=ORIENTED_EDGE('',*,*,#13733,.F.); +#6053=ORIENTED_EDGE('',*,*,#13177,.F.); +#6054=ORIENTED_EDGE('',*,*,#13569,.F.); +#6055=ORIENTED_EDGE('',*,*,#13464,.F.); +#6056=ORIENTED_EDGE('',*,*,#14010,.T.); +#6057=ORIENTED_EDGE('',*,*,#13176,.F.); +#6058=ORIENTED_EDGE('',*,*,#13730,.F.); +#6059=ORIENTED_EDGE('',*,*,#13659,.F.); +#6060=ORIENTED_EDGE('',*,*,#13921,.T.); +#6061=ORIENTED_EDGE('',*,*,#13469,.F.); +#6062=ORIENTED_EDGE('',*,*,#14011,.T.); +#6063=ORIENTED_EDGE('',*,*,#13171,.F.); +#6064=ORIENTED_EDGE('',*,*,#14011,.F.); +#6065=ORIENTED_EDGE('',*,*,#13468,.F.); +#6066=ORIENTED_EDGE('',*,*,#13571,.T.); +#6067=ORIENTED_EDGE('',*,*,#13172,.F.); +#6068=ORIENTED_EDGE('',*,*,#14012,.F.); +#6069=ORIENTED_EDGE('',*,*,#13471,.F.); +#6070=ORIENTED_EDGE('',*,*,#13920,.T.); +#6071=ORIENTED_EDGE('',*,*,#13657,.F.); +#6072=ORIENTED_EDGE('',*,*,#13731,.F.); +#6073=ORIENTED_EDGE('',*,*,#13169,.F.); +#6074=ORIENTED_EDGE('',*,*,#13573,.F.); +#6075=ORIENTED_EDGE('',*,*,#13472,.F.); +#6076=ORIENTED_EDGE('',*,*,#14012,.T.); +#6077=ORIENTED_EDGE('',*,*,#13168,.F.); +#6078=ORIENTED_EDGE('',*,*,#13728,.F.); +#6079=ORIENTED_EDGE('',*,*,#13655,.F.); +#6080=ORIENTED_EDGE('',*,*,#13919,.T.); +#6081=ORIENTED_EDGE('',*,*,#13477,.F.); +#6082=ORIENTED_EDGE('',*,*,#14013,.T.); +#6083=ORIENTED_EDGE('',*,*,#13163,.F.); +#6084=ORIENTED_EDGE('',*,*,#14013,.F.); +#6085=ORIENTED_EDGE('',*,*,#13476,.F.); +#6086=ORIENTED_EDGE('',*,*,#13575,.T.); +#6087=ORIENTED_EDGE('',*,*,#13164,.F.); +#6088=ORIENTED_EDGE('',*,*,#13964,.F.); +#6089=ORIENTED_EDGE('',*,*,#13966,.F.); +#6090=ORIENTED_EDGE('',*,*,#13968,.T.); +#6091=ORIENTED_EDGE('',*,*,#12985,.F.); +#6092=ORIENTED_EDGE('',*,*,#14014,.F.); +#6093=ORIENTED_EDGE('',*,*,#12999,.F.); +#6094=ORIENTED_EDGE('',*,*,#14014,.T.); +#6095=ORIENTED_EDGE('',*,*,#12984,.F.); +#6096=ORIENTED_EDGE('',*,*,#13577,.F.); +#6097=ORIENTED_EDGE('',*,*,#13000,.F.); +#6098=ORIENTED_EDGE('',*,*,#13579,.T.); +#6099=ORIENTED_EDGE('',*,*,#12980,.F.); +#6100=ORIENTED_EDGE('',*,*,#14015,.F.); +#6101=ORIENTED_EDGE('',*,*,#13004,.F.); +#6102=ORIENTED_EDGE('',*,*,#14015,.T.); +#6103=ORIENTED_EDGE('',*,*,#12979,.F.); +#6104=ORIENTED_EDGE('',*,*,#13917,.T.); +#6105=ORIENTED_EDGE('',*,*,#13879,.F.); +#6106=ORIENTED_EDGE('',*,*,#13820,.F.); +#6107=ORIENTED_EDGE('',*,*,#13005,.F.); +#6108=ORIENTED_EDGE('',*,*,#13822,.F.); +#6109=ORIENTED_EDGE('',*,*,#13878,.F.); +#6110=ORIENTED_EDGE('',*,*,#13916,.T.); +#6111=ORIENTED_EDGE('',*,*,#12977,.F.); +#6112=ORIENTED_EDGE('',*,*,#14016,.F.); +#6113=ORIENTED_EDGE('',*,*,#13007,.F.); +#6114=ORIENTED_EDGE('',*,*,#14016,.T.); +#6115=ORIENTED_EDGE('',*,*,#12976,.F.); +#6116=ORIENTED_EDGE('',*,*,#13581,.F.); +#6117=ORIENTED_EDGE('',*,*,#13008,.F.); +#6118=ORIENTED_EDGE('',*,*,#13583,.T.); +#6119=ORIENTED_EDGE('',*,*,#12972,.F.); +#6120=ORIENTED_EDGE('',*,*,#14017,.F.); +#6121=ORIENTED_EDGE('',*,*,#13012,.F.); +#6122=ORIENTED_EDGE('',*,*,#14017,.T.); +#6123=ORIENTED_EDGE('',*,*,#12971,.F.); +#6124=ORIENTED_EDGE('',*,*,#13915,.T.); +#6125=ORIENTED_EDGE('',*,*,#13876,.F.); +#6126=ORIENTED_EDGE('',*,*,#13817,.F.); +#6127=ORIENTED_EDGE('',*,*,#13013,.F.); +#6128=ORIENTED_EDGE('',*,*,#13819,.F.); +#6129=ORIENTED_EDGE('',*,*,#13875,.F.); +#6130=ORIENTED_EDGE('',*,*,#13914,.T.); +#6131=ORIENTED_EDGE('',*,*,#12969,.F.); +#6132=ORIENTED_EDGE('',*,*,#14018,.F.); +#6133=ORIENTED_EDGE('',*,*,#13015,.F.); +#6134=ORIENTED_EDGE('',*,*,#14018,.T.); +#6135=ORIENTED_EDGE('',*,*,#12968,.F.); +#6136=ORIENTED_EDGE('',*,*,#13585,.F.); +#6137=ORIENTED_EDGE('',*,*,#13016,.F.); +#6138=ORIENTED_EDGE('',*,*,#13587,.T.); +#6139=ORIENTED_EDGE('',*,*,#12964,.F.); +#6140=ORIENTED_EDGE('',*,*,#14019,.F.); +#6141=ORIENTED_EDGE('',*,*,#13020,.F.); +#6142=ORIENTED_EDGE('',*,*,#14019,.T.); +#6143=ORIENTED_EDGE('',*,*,#12963,.F.); +#6144=ORIENTED_EDGE('',*,*,#13913,.T.); +#6145=ORIENTED_EDGE('',*,*,#13873,.F.); +#6146=ORIENTED_EDGE('',*,*,#13814,.F.); +#6147=ORIENTED_EDGE('',*,*,#13021,.F.); +#6148=ORIENTED_EDGE('',*,*,#13816,.F.); +#6149=ORIENTED_EDGE('',*,*,#13872,.F.); +#6150=ORIENTED_EDGE('',*,*,#13912,.T.); +#6151=ORIENTED_EDGE('',*,*,#12961,.F.); +#6152=ORIENTED_EDGE('',*,*,#14020,.F.); +#6153=ORIENTED_EDGE('',*,*,#13023,.F.); +#6154=ORIENTED_EDGE('',*,*,#14020,.T.); +#6155=ORIENTED_EDGE('',*,*,#12960,.F.); +#6156=ORIENTED_EDGE('',*,*,#13589,.F.); +#6157=ORIENTED_EDGE('',*,*,#13024,.F.); +#6158=ORIENTED_EDGE('',*,*,#13591,.T.); +#6159=ORIENTED_EDGE('',*,*,#12956,.F.); +#6160=ORIENTED_EDGE('',*,*,#14021,.F.); +#6161=ORIENTED_EDGE('',*,*,#13028,.F.); +#6162=ORIENTED_EDGE('',*,*,#14021,.T.); +#6163=ORIENTED_EDGE('',*,*,#12955,.F.); +#6164=ORIENTED_EDGE('',*,*,#13911,.T.); +#6165=ORIENTED_EDGE('',*,*,#13870,.F.); +#6166=ORIENTED_EDGE('',*,*,#13811,.F.); +#6167=ORIENTED_EDGE('',*,*,#13029,.F.); +#6168=ORIENTED_EDGE('',*,*,#13813,.F.); +#6169=ORIENTED_EDGE('',*,*,#13869,.F.); +#6170=ORIENTED_EDGE('',*,*,#13910,.T.); +#6171=ORIENTED_EDGE('',*,*,#12953,.F.); +#6172=ORIENTED_EDGE('',*,*,#14022,.F.); +#6173=ORIENTED_EDGE('',*,*,#13031,.F.); +#6174=ORIENTED_EDGE('',*,*,#14022,.T.); +#6175=ORIENTED_EDGE('',*,*,#12952,.F.); +#6176=ORIENTED_EDGE('',*,*,#13593,.F.); +#6177=ORIENTED_EDGE('',*,*,#13032,.F.); +#6178=ORIENTED_EDGE('',*,*,#13595,.T.); +#6179=ORIENTED_EDGE('',*,*,#12948,.F.); +#6180=ORIENTED_EDGE('',*,*,#14023,.F.); +#6181=ORIENTED_EDGE('',*,*,#13036,.F.); +#6182=ORIENTED_EDGE('',*,*,#14023,.T.); +#6183=ORIENTED_EDGE('',*,*,#12947,.F.); +#6184=ORIENTED_EDGE('',*,*,#13909,.T.); +#6185=ORIENTED_EDGE('',*,*,#13867,.F.); +#6186=ORIENTED_EDGE('',*,*,#13808,.F.); +#6187=ORIENTED_EDGE('',*,*,#13037,.F.); +#6188=ORIENTED_EDGE('',*,*,#13810,.F.); +#6189=ORIENTED_EDGE('',*,*,#13866,.F.); +#6190=ORIENTED_EDGE('',*,*,#13908,.T.); +#6191=ORIENTED_EDGE('',*,*,#12945,.F.); +#6192=ORIENTED_EDGE('',*,*,#14024,.F.); +#6193=ORIENTED_EDGE('',*,*,#13039,.F.); +#6194=ORIENTED_EDGE('',*,*,#14024,.T.); +#6195=ORIENTED_EDGE('',*,*,#12944,.F.); +#6196=ORIENTED_EDGE('',*,*,#13597,.F.); +#6197=ORIENTED_EDGE('',*,*,#13040,.F.); +#6198=ORIENTED_EDGE('',*,*,#13599,.T.); +#6199=ORIENTED_EDGE('',*,*,#12940,.F.); +#6200=ORIENTED_EDGE('',*,*,#14025,.F.); +#6201=ORIENTED_EDGE('',*,*,#13044,.F.); +#6202=ORIENTED_EDGE('',*,*,#14025,.T.); +#6203=ORIENTED_EDGE('',*,*,#12939,.F.); +#6204=ORIENTED_EDGE('',*,*,#13907,.T.); +#6205=ORIENTED_EDGE('',*,*,#13864,.F.); +#6206=ORIENTED_EDGE('',*,*,#13805,.F.); +#6207=ORIENTED_EDGE('',*,*,#13045,.F.); +#6208=ORIENTED_EDGE('',*,*,#13807,.F.); +#6209=ORIENTED_EDGE('',*,*,#13863,.F.); +#6210=ORIENTED_EDGE('',*,*,#13906,.T.); +#6211=ORIENTED_EDGE('',*,*,#12937,.F.); +#6212=ORIENTED_EDGE('',*,*,#14026,.F.); +#6213=ORIENTED_EDGE('',*,*,#13047,.F.); +#6214=ORIENTED_EDGE('',*,*,#14026,.T.); +#6215=ORIENTED_EDGE('',*,*,#12936,.F.); +#6216=ORIENTED_EDGE('',*,*,#13601,.F.); +#6217=ORIENTED_EDGE('',*,*,#13048,.F.); +#6218=ORIENTED_EDGE('',*,*,#13603,.T.); +#6219=ORIENTED_EDGE('',*,*,#12932,.F.); +#6220=ORIENTED_EDGE('',*,*,#14027,.F.); +#6221=ORIENTED_EDGE('',*,*,#13052,.F.); +#6222=ORIENTED_EDGE('',*,*,#14027,.T.); +#6223=ORIENTED_EDGE('',*,*,#12931,.F.); +#6224=ORIENTED_EDGE('',*,*,#13905,.T.); +#6225=ORIENTED_EDGE('',*,*,#13861,.F.); +#6226=ORIENTED_EDGE('',*,*,#13802,.F.); +#6227=ORIENTED_EDGE('',*,*,#13053,.F.); +#6228=ORIENTED_EDGE('',*,*,#13804,.F.); +#6229=ORIENTED_EDGE('',*,*,#13860,.F.); +#6230=ORIENTED_EDGE('',*,*,#13904,.T.); +#6231=ORIENTED_EDGE('',*,*,#12929,.F.); +#6232=ORIENTED_EDGE('',*,*,#14028,.F.); +#6233=ORIENTED_EDGE('',*,*,#13055,.F.); +#6234=ORIENTED_EDGE('',*,*,#14028,.T.); +#6235=ORIENTED_EDGE('',*,*,#12928,.F.); +#6236=ORIENTED_EDGE('',*,*,#13605,.F.); +#6237=ORIENTED_EDGE('',*,*,#13056,.F.); +#6238=ORIENTED_EDGE('',*,*,#13607,.T.); +#6239=ORIENTED_EDGE('',*,*,#12924,.F.); +#6240=ORIENTED_EDGE('',*,*,#14029,.F.); +#6241=ORIENTED_EDGE('',*,*,#13060,.F.); +#6242=ORIENTED_EDGE('',*,*,#14029,.T.); +#6243=ORIENTED_EDGE('',*,*,#12923,.F.); +#6244=ORIENTED_EDGE('',*,*,#13903,.T.); +#6245=ORIENTED_EDGE('',*,*,#13858,.F.); +#6246=ORIENTED_EDGE('',*,*,#13799,.F.); +#6247=ORIENTED_EDGE('',*,*,#13061,.F.); +#6248=ORIENTED_EDGE('',*,*,#13801,.F.); +#6249=ORIENTED_EDGE('',*,*,#13857,.F.); +#6250=ORIENTED_EDGE('',*,*,#13902,.T.); +#6251=ORIENTED_EDGE('',*,*,#12921,.F.); +#6252=ORIENTED_EDGE('',*,*,#14030,.F.); +#6253=ORIENTED_EDGE('',*,*,#13063,.F.); +#6254=ORIENTED_EDGE('',*,*,#14030,.T.); +#6255=ORIENTED_EDGE('',*,*,#12920,.F.); +#6256=ORIENTED_EDGE('',*,*,#13609,.F.); +#6257=ORIENTED_EDGE('',*,*,#13064,.F.); +#6258=ORIENTED_EDGE('',*,*,#13611,.T.); +#6259=ORIENTED_EDGE('',*,*,#12916,.F.); +#6260=ORIENTED_EDGE('',*,*,#14031,.F.); +#6261=ORIENTED_EDGE('',*,*,#13068,.F.); +#6262=ORIENTED_EDGE('',*,*,#14031,.T.); +#6263=ORIENTED_EDGE('',*,*,#12915,.F.); +#6264=ORIENTED_EDGE('',*,*,#13901,.T.); +#6265=ORIENTED_EDGE('',*,*,#13855,.F.); +#6266=ORIENTED_EDGE('',*,*,#13796,.F.); +#6267=ORIENTED_EDGE('',*,*,#13069,.F.); +#6268=ORIENTED_EDGE('',*,*,#13798,.F.); +#6269=ORIENTED_EDGE('',*,*,#13854,.F.); +#6270=ORIENTED_EDGE('',*,*,#13900,.T.); +#6271=ORIENTED_EDGE('',*,*,#12913,.F.); +#6272=ORIENTED_EDGE('',*,*,#14032,.F.); +#6273=ORIENTED_EDGE('',*,*,#13071,.F.); +#6274=ORIENTED_EDGE('',*,*,#14032,.T.); +#6275=ORIENTED_EDGE('',*,*,#12912,.F.); +#6276=ORIENTED_EDGE('',*,*,#13613,.F.); +#6277=ORIENTED_EDGE('',*,*,#13072,.F.); +#6278=ORIENTED_EDGE('',*,*,#13615,.T.); +#6279=ORIENTED_EDGE('',*,*,#12908,.F.); +#6280=ORIENTED_EDGE('',*,*,#14033,.F.); +#6281=ORIENTED_EDGE('',*,*,#13076,.F.); +#6282=ORIENTED_EDGE('',*,*,#14033,.T.); +#6283=ORIENTED_EDGE('',*,*,#12907,.F.); +#6284=ORIENTED_EDGE('',*,*,#13899,.T.); +#6285=ORIENTED_EDGE('',*,*,#13852,.F.); +#6286=ORIENTED_EDGE('',*,*,#13793,.F.); +#6287=ORIENTED_EDGE('',*,*,#13077,.F.); +#6288=ORIENTED_EDGE('',*,*,#13795,.F.); +#6289=ORIENTED_EDGE('',*,*,#13851,.F.); +#6290=ORIENTED_EDGE('',*,*,#13898,.T.); +#6291=ORIENTED_EDGE('',*,*,#12905,.F.); +#6292=ORIENTED_EDGE('',*,*,#14034,.F.); +#6293=ORIENTED_EDGE('',*,*,#13079,.F.); +#6294=ORIENTED_EDGE('',*,*,#14034,.T.); +#6295=ORIENTED_EDGE('',*,*,#12904,.F.); +#6296=ORIENTED_EDGE('',*,*,#13617,.F.); +#6297=ORIENTED_EDGE('',*,*,#13080,.F.); +#6298=ORIENTED_EDGE('',*,*,#13619,.T.); +#6299=ORIENTED_EDGE('',*,*,#12900,.F.); +#6300=ORIENTED_EDGE('',*,*,#14035,.F.); +#6301=ORIENTED_EDGE('',*,*,#13084,.F.); +#6302=ORIENTED_EDGE('',*,*,#14035,.T.); +#6303=ORIENTED_EDGE('',*,*,#12899,.F.); +#6304=ORIENTED_EDGE('',*,*,#13897,.T.); +#6305=ORIENTED_EDGE('',*,*,#13849,.F.); +#6306=ORIENTED_EDGE('',*,*,#13790,.F.); +#6307=ORIENTED_EDGE('',*,*,#13085,.F.); +#6308=ORIENTED_EDGE('',*,*,#13792,.F.); +#6309=ORIENTED_EDGE('',*,*,#13848,.F.); +#6310=ORIENTED_EDGE('',*,*,#13896,.T.); +#6311=ORIENTED_EDGE('',*,*,#12897,.F.); +#6312=ORIENTED_EDGE('',*,*,#14036,.F.); +#6313=ORIENTED_EDGE('',*,*,#13087,.F.); +#6314=ORIENTED_EDGE('',*,*,#14036,.T.); +#6315=ORIENTED_EDGE('',*,*,#12896,.F.); +#6316=ORIENTED_EDGE('',*,*,#13621,.F.); +#6317=ORIENTED_EDGE('',*,*,#13088,.F.); +#6318=ORIENTED_EDGE('',*,*,#13623,.T.); +#6319=ORIENTED_EDGE('',*,*,#12892,.F.); +#6320=ORIENTED_EDGE('',*,*,#14037,.F.); +#6321=ORIENTED_EDGE('',*,*,#13092,.F.); +#6322=ORIENTED_EDGE('',*,*,#14037,.T.); +#6323=ORIENTED_EDGE('',*,*,#12891,.F.); +#6324=ORIENTED_EDGE('',*,*,#13895,.T.); +#6325=ORIENTED_EDGE('',*,*,#13846,.F.); +#6326=ORIENTED_EDGE('',*,*,#13787,.F.); +#6327=ORIENTED_EDGE('',*,*,#13093,.F.); +#6328=ORIENTED_EDGE('',*,*,#13789,.F.); +#6329=ORIENTED_EDGE('',*,*,#13845,.F.); +#6330=ORIENTED_EDGE('',*,*,#13894,.T.); +#6331=ORIENTED_EDGE('',*,*,#12889,.F.); +#6332=ORIENTED_EDGE('',*,*,#14038,.F.); +#6333=ORIENTED_EDGE('',*,*,#13095,.F.); +#6334=ORIENTED_EDGE('',*,*,#14038,.T.); +#6335=ORIENTED_EDGE('',*,*,#12888,.F.); +#6336=ORIENTED_EDGE('',*,*,#13625,.F.); +#6337=ORIENTED_EDGE('',*,*,#13096,.F.); +#6338=ORIENTED_EDGE('',*,*,#13627,.T.); +#6339=ORIENTED_EDGE('',*,*,#12884,.F.); +#6340=ORIENTED_EDGE('',*,*,#14039,.F.); +#6341=ORIENTED_EDGE('',*,*,#13100,.F.); +#6342=ORIENTED_EDGE('',*,*,#14039,.T.); +#6343=ORIENTED_EDGE('',*,*,#12883,.F.); +#6344=ORIENTED_EDGE('',*,*,#13893,.T.); +#6345=ORIENTED_EDGE('',*,*,#13843,.F.); +#6346=ORIENTED_EDGE('',*,*,#13784,.F.); +#6347=ORIENTED_EDGE('',*,*,#13101,.F.); +#6348=ORIENTED_EDGE('',*,*,#13786,.F.); +#6349=ORIENTED_EDGE('',*,*,#13842,.F.); +#6350=ORIENTED_EDGE('',*,*,#13892,.T.); +#6351=ORIENTED_EDGE('',*,*,#12881,.F.); +#6352=ORIENTED_EDGE('',*,*,#14040,.F.); +#6353=ORIENTED_EDGE('',*,*,#13103,.F.); +#6354=ORIENTED_EDGE('',*,*,#14040,.T.); +#6355=ORIENTED_EDGE('',*,*,#12880,.F.); +#6356=ORIENTED_EDGE('',*,*,#13629,.F.); +#6357=ORIENTED_EDGE('',*,*,#13104,.F.); +#6358=ORIENTED_EDGE('',*,*,#13631,.T.); +#6359=ORIENTED_EDGE('',*,*,#12876,.F.); +#6360=ORIENTED_EDGE('',*,*,#14041,.F.); +#6361=ORIENTED_EDGE('',*,*,#13108,.F.); +#6362=ORIENTED_EDGE('',*,*,#14041,.T.); +#6363=ORIENTED_EDGE('',*,*,#12875,.F.); +#6364=ORIENTED_EDGE('',*,*,#13891,.T.); +#6365=ORIENTED_EDGE('',*,*,#13840,.F.); +#6366=ORIENTED_EDGE('',*,*,#13781,.F.); +#6367=ORIENTED_EDGE('',*,*,#13109,.F.); +#6368=ORIENTED_EDGE('',*,*,#13783,.F.); +#6369=ORIENTED_EDGE('',*,*,#13839,.F.); +#6370=ORIENTED_EDGE('',*,*,#13890,.T.); +#6371=ORIENTED_EDGE('',*,*,#12873,.F.); +#6372=ORIENTED_EDGE('',*,*,#14042,.F.); +#6373=ORIENTED_EDGE('',*,*,#13111,.F.); +#6374=ORIENTED_EDGE('',*,*,#14042,.T.); +#6375=ORIENTED_EDGE('',*,*,#12872,.F.); +#6376=ORIENTED_EDGE('',*,*,#13633,.F.); +#6377=ORIENTED_EDGE('',*,*,#13112,.F.); +#6378=ORIENTED_EDGE('',*,*,#13635,.T.); +#6379=ORIENTED_EDGE('',*,*,#12868,.F.); +#6380=ORIENTED_EDGE('',*,*,#14043,.F.); +#6381=ORIENTED_EDGE('',*,*,#13116,.F.); +#6382=ORIENTED_EDGE('',*,*,#14043,.T.); +#6383=ORIENTED_EDGE('',*,*,#12867,.F.); +#6384=ORIENTED_EDGE('',*,*,#13889,.T.); +#6385=ORIENTED_EDGE('',*,*,#13837,.F.); +#6386=ORIENTED_EDGE('',*,*,#13778,.F.); +#6387=ORIENTED_EDGE('',*,*,#13117,.F.); +#6388=ORIENTED_EDGE('',*,*,#13780,.F.); +#6389=ORIENTED_EDGE('',*,*,#13836,.F.); +#6390=ORIENTED_EDGE('',*,*,#13888,.T.); +#6391=ORIENTED_EDGE('',*,*,#12865,.F.); +#6392=ORIENTED_EDGE('',*,*,#14044,.F.); +#6393=ORIENTED_EDGE('',*,*,#13119,.F.); +#6394=ORIENTED_EDGE('',*,*,#14044,.T.); +#6395=ORIENTED_EDGE('',*,*,#12864,.F.); +#6396=ORIENTED_EDGE('',*,*,#13637,.F.); +#6397=ORIENTED_EDGE('',*,*,#13120,.F.); +#6398=ORIENTED_EDGE('',*,*,#13639,.T.); +#6399=ORIENTED_EDGE('',*,*,#12860,.F.); +#6400=ORIENTED_EDGE('',*,*,#14045,.F.); +#6401=ORIENTED_EDGE('',*,*,#13124,.F.); +#6402=ORIENTED_EDGE('',*,*,#14045,.T.); +#6403=ORIENTED_EDGE('',*,*,#12859,.F.); +#6404=ORIENTED_EDGE('',*,*,#13887,.T.); +#6405=ORIENTED_EDGE('',*,*,#13834,.F.); +#6406=ORIENTED_EDGE('',*,*,#13775,.F.); +#6407=ORIENTED_EDGE('',*,*,#13125,.F.); +#6408=ORIENTED_EDGE('',*,*,#13777,.F.); +#6409=ORIENTED_EDGE('',*,*,#13833,.F.); +#6410=ORIENTED_EDGE('',*,*,#13886,.T.); +#6411=ORIENTED_EDGE('',*,*,#12857,.F.); +#6412=ORIENTED_EDGE('',*,*,#14046,.F.); +#6413=ORIENTED_EDGE('',*,*,#13127,.F.); +#6414=ORIENTED_EDGE('',*,*,#14046,.T.); +#6415=ORIENTED_EDGE('',*,*,#12856,.F.); +#6416=ORIENTED_EDGE('',*,*,#13641,.F.); +#6417=ORIENTED_EDGE('',*,*,#13128,.F.); +#6418=ORIENTED_EDGE('',*,*,#13643,.T.); +#6419=ORIENTED_EDGE('',*,*,#12852,.F.); +#6420=ORIENTED_EDGE('',*,*,#14047,.F.); +#6421=ORIENTED_EDGE('',*,*,#13132,.F.); +#6422=ORIENTED_EDGE('',*,*,#14047,.T.); +#6423=ORIENTED_EDGE('',*,*,#12851,.F.); +#6424=ORIENTED_EDGE('',*,*,#13885,.T.); +#6425=ORIENTED_EDGE('',*,*,#13831,.F.); +#6426=ORIENTED_EDGE('',*,*,#13772,.F.); +#6427=ORIENTED_EDGE('',*,*,#13133,.F.); +#6428=ORIENTED_EDGE('',*,*,#13774,.F.); +#6429=ORIENTED_EDGE('',*,*,#13830,.F.); +#6430=ORIENTED_EDGE('',*,*,#13884,.T.); +#6431=ORIENTED_EDGE('',*,*,#12849,.F.); +#6432=ORIENTED_EDGE('',*,*,#14048,.F.); +#6433=ORIENTED_EDGE('',*,*,#13135,.F.); +#6434=ORIENTED_EDGE('',*,*,#14048,.T.); +#6435=ORIENTED_EDGE('',*,*,#12848,.F.); +#6436=ORIENTED_EDGE('',*,*,#13645,.F.); +#6437=ORIENTED_EDGE('',*,*,#13136,.F.); +#6438=ORIENTED_EDGE('',*,*,#13647,.T.); +#6439=ORIENTED_EDGE('',*,*,#12844,.F.); +#6440=ORIENTED_EDGE('',*,*,#14049,.F.); +#6441=ORIENTED_EDGE('',*,*,#13140,.F.); +#6442=ORIENTED_EDGE('',*,*,#14049,.T.); +#6443=ORIENTED_EDGE('',*,*,#12843,.F.); +#6444=ORIENTED_EDGE('',*,*,#13883,.T.); +#6445=ORIENTED_EDGE('',*,*,#13828,.F.); +#6446=ORIENTED_EDGE('',*,*,#13769,.F.); +#6447=ORIENTED_EDGE('',*,*,#13141,.F.); +#6448=ORIENTED_EDGE('',*,*,#13649,.T.); +#6449=ORIENTED_EDGE('',*,*,#12836,.F.); +#6450=ORIENTED_EDGE('',*,*,#14050,.F.); +#6451=ORIENTED_EDGE('',*,*,#13148,.F.); +#6452=ORIENTED_EDGE('',*,*,#14051,.T.); +#6453=ORIENTED_EDGE('',*,*,#12840,.F.); +#6454=ORIENTED_EDGE('',*,*,#13651,.F.); +#6455=ORIENTED_EDGE('',*,*,#13144,.F.); +#6456=ORIENTED_EDGE('',*,*,#14050,.T.); +#6457=ORIENTED_EDGE('',*,*,#12835,.F.); +#6458=ORIENTED_EDGE('',*,*,#13881,.T.); +#6459=ORIENTED_EDGE('',*,*,#13825,.F.); +#6460=ORIENTED_EDGE('',*,*,#13766,.F.); +#6461=ORIENTED_EDGE('',*,*,#13149,.F.); +#6462=ORIENTED_EDGE('',*,*,#13771,.F.); +#6463=ORIENTED_EDGE('',*,*,#13827,.F.); +#6464=ORIENTED_EDGE('',*,*,#13882,.T.); +#6465=ORIENTED_EDGE('',*,*,#12841,.F.); +#6466=ORIENTED_EDGE('',*,*,#14051,.F.); +#6467=ORIENTED_EDGE('',*,*,#13143,.F.); +#6468=ORIENTED_EDGE('',*,*,#12838,.F.); +#6469=ORIENTED_EDGE('',*,*,#13648,.T.); +#6470=ORIENTED_EDGE('',*,*,#13146,.T.); +#6471=ORIENTED_EDGE('',*,*,#13650,.T.); +#6472=ORIENTED_EDGE('',*,*,#13138,.T.); +#6473=ORIENTED_EDGE('',*,*,#13644,.T.); +#6474=ORIENTED_EDGE('',*,*,#12846,.F.); +#6475=ORIENTED_EDGE('',*,*,#13646,.T.); +#6476=ORIENTED_EDGE('',*,*,#13130,.T.); +#6477=ORIENTED_EDGE('',*,*,#13640,.T.); +#6478=ORIENTED_EDGE('',*,*,#12854,.F.); +#6479=ORIENTED_EDGE('',*,*,#13642,.T.); +#6480=ORIENTED_EDGE('',*,*,#13122,.T.); +#6481=ORIENTED_EDGE('',*,*,#13636,.T.); +#6482=ORIENTED_EDGE('',*,*,#12862,.F.); +#6483=ORIENTED_EDGE('',*,*,#13638,.T.); +#6484=ORIENTED_EDGE('',*,*,#13114,.T.); +#6485=ORIENTED_EDGE('',*,*,#13632,.T.); +#6486=ORIENTED_EDGE('',*,*,#12870,.F.); +#6487=ORIENTED_EDGE('',*,*,#13634,.T.); +#6488=ORIENTED_EDGE('',*,*,#13106,.T.); +#6489=ORIENTED_EDGE('',*,*,#13628,.T.); +#6490=ORIENTED_EDGE('',*,*,#12878,.F.); +#6491=ORIENTED_EDGE('',*,*,#13630,.T.); +#6492=ORIENTED_EDGE('',*,*,#13098,.T.); +#6493=ORIENTED_EDGE('',*,*,#13624,.T.); +#6494=ORIENTED_EDGE('',*,*,#12886,.F.); +#6495=ORIENTED_EDGE('',*,*,#13626,.T.); +#6496=ORIENTED_EDGE('',*,*,#13090,.T.); +#6497=ORIENTED_EDGE('',*,*,#13620,.T.); +#6498=ORIENTED_EDGE('',*,*,#12894,.F.); +#6499=ORIENTED_EDGE('',*,*,#13622,.T.); +#6500=ORIENTED_EDGE('',*,*,#13082,.T.); +#6501=ORIENTED_EDGE('',*,*,#13616,.T.); +#6502=ORIENTED_EDGE('',*,*,#12902,.F.); +#6503=ORIENTED_EDGE('',*,*,#13618,.T.); +#6504=ORIENTED_EDGE('',*,*,#13074,.T.); +#6505=ORIENTED_EDGE('',*,*,#13612,.T.); +#6506=ORIENTED_EDGE('',*,*,#12910,.F.); +#6507=ORIENTED_EDGE('',*,*,#13614,.T.); +#6508=ORIENTED_EDGE('',*,*,#13066,.T.); +#6509=ORIENTED_EDGE('',*,*,#13608,.T.); +#6510=ORIENTED_EDGE('',*,*,#12918,.F.); +#6511=ORIENTED_EDGE('',*,*,#13610,.T.); +#6512=ORIENTED_EDGE('',*,*,#13058,.T.); +#6513=ORIENTED_EDGE('',*,*,#13604,.T.); +#6514=ORIENTED_EDGE('',*,*,#12926,.F.); +#6515=ORIENTED_EDGE('',*,*,#13606,.T.); +#6516=ORIENTED_EDGE('',*,*,#13050,.T.); +#6517=ORIENTED_EDGE('',*,*,#13600,.T.); +#6518=ORIENTED_EDGE('',*,*,#12934,.F.); +#6519=ORIENTED_EDGE('',*,*,#13602,.T.); +#6520=ORIENTED_EDGE('',*,*,#13042,.T.); +#6521=ORIENTED_EDGE('',*,*,#13596,.T.); +#6522=ORIENTED_EDGE('',*,*,#12942,.F.); +#6523=ORIENTED_EDGE('',*,*,#13598,.T.); +#6524=ORIENTED_EDGE('',*,*,#13034,.T.); +#6525=ORIENTED_EDGE('',*,*,#13592,.T.); +#6526=ORIENTED_EDGE('',*,*,#12950,.F.); +#6527=ORIENTED_EDGE('',*,*,#13594,.T.); +#6528=ORIENTED_EDGE('',*,*,#13026,.T.); +#6529=ORIENTED_EDGE('',*,*,#13588,.T.); +#6530=ORIENTED_EDGE('',*,*,#12958,.F.); +#6531=ORIENTED_EDGE('',*,*,#13590,.T.); +#6532=ORIENTED_EDGE('',*,*,#13018,.T.); +#6533=ORIENTED_EDGE('',*,*,#13584,.T.); +#6534=ORIENTED_EDGE('',*,*,#12966,.F.); +#6535=ORIENTED_EDGE('',*,*,#13586,.T.); +#6536=ORIENTED_EDGE('',*,*,#13010,.T.); +#6537=ORIENTED_EDGE('',*,*,#13580,.T.); +#6538=ORIENTED_EDGE('',*,*,#12974,.F.); +#6539=ORIENTED_EDGE('',*,*,#13582,.T.); +#6540=ORIENTED_EDGE('',*,*,#13002,.T.); +#6541=ORIENTED_EDGE('',*,*,#13576,.T.); +#6542=ORIENTED_EDGE('',*,*,#12982,.F.); +#6543=ORIENTED_EDGE('',*,*,#13578,.T.); +#6544=ORIENTED_EDGE('',*,*,#13474,.F.); +#6545=ORIENTED_EDGE('',*,*,#13572,.T.); +#6546=ORIENTED_EDGE('',*,*,#13166,.T.); +#6547=ORIENTED_EDGE('',*,*,#13574,.T.); +#6548=ORIENTED_EDGE('',*,*,#13466,.F.); +#6549=ORIENTED_EDGE('',*,*,#13568,.T.); +#6550=ORIENTED_EDGE('',*,*,#13174,.T.); +#6551=ORIENTED_EDGE('',*,*,#13570,.T.); +#6552=ORIENTED_EDGE('',*,*,#13458,.F.); +#6553=ORIENTED_EDGE('',*,*,#13564,.T.); +#6554=ORIENTED_EDGE('',*,*,#13182,.T.); +#6555=ORIENTED_EDGE('',*,*,#13566,.T.); +#6556=ORIENTED_EDGE('',*,*,#13450,.F.); +#6557=ORIENTED_EDGE('',*,*,#13560,.T.); +#6558=ORIENTED_EDGE('',*,*,#13190,.T.); +#6559=ORIENTED_EDGE('',*,*,#13562,.T.); +#6560=ORIENTED_EDGE('',*,*,#13442,.F.); +#6561=ORIENTED_EDGE('',*,*,#13556,.T.); +#6562=ORIENTED_EDGE('',*,*,#13198,.T.); +#6563=ORIENTED_EDGE('',*,*,#13558,.T.); +#6564=ORIENTED_EDGE('',*,*,#13434,.F.); +#6565=ORIENTED_EDGE('',*,*,#13552,.T.); +#6566=ORIENTED_EDGE('',*,*,#13206,.T.); +#6567=ORIENTED_EDGE('',*,*,#13554,.T.); +#6568=ORIENTED_EDGE('',*,*,#13426,.F.); +#6569=ORIENTED_EDGE('',*,*,#13548,.T.); +#6570=ORIENTED_EDGE('',*,*,#13214,.T.); +#6571=ORIENTED_EDGE('',*,*,#13550,.T.); +#6572=ORIENTED_EDGE('',*,*,#13418,.F.); +#6573=ORIENTED_EDGE('',*,*,#13544,.T.); +#6574=ORIENTED_EDGE('',*,*,#13222,.T.); +#6575=ORIENTED_EDGE('',*,*,#13546,.T.); +#6576=ORIENTED_EDGE('',*,*,#13410,.F.); +#6577=ORIENTED_EDGE('',*,*,#13540,.T.); +#6578=ORIENTED_EDGE('',*,*,#13230,.T.); +#6579=ORIENTED_EDGE('',*,*,#13542,.T.); +#6580=ORIENTED_EDGE('',*,*,#13402,.F.); +#6581=ORIENTED_EDGE('',*,*,#13536,.T.); +#6582=ORIENTED_EDGE('',*,*,#13238,.T.); +#6583=ORIENTED_EDGE('',*,*,#13538,.T.); +#6584=ORIENTED_EDGE('',*,*,#13394,.F.); +#6585=ORIENTED_EDGE('',*,*,#13532,.T.); +#6586=ORIENTED_EDGE('',*,*,#13246,.T.); +#6587=ORIENTED_EDGE('',*,*,#13534,.T.); +#6588=ORIENTED_EDGE('',*,*,#13386,.F.); +#6589=ORIENTED_EDGE('',*,*,#13528,.T.); +#6590=ORIENTED_EDGE('',*,*,#13254,.T.); +#6591=ORIENTED_EDGE('',*,*,#13530,.T.); +#6592=ORIENTED_EDGE('',*,*,#13378,.F.); +#6593=ORIENTED_EDGE('',*,*,#13524,.T.); +#6594=ORIENTED_EDGE('',*,*,#13262,.T.); +#6595=ORIENTED_EDGE('',*,*,#13526,.T.); +#6596=ORIENTED_EDGE('',*,*,#13370,.F.); +#6597=ORIENTED_EDGE('',*,*,#13520,.T.); +#6598=ORIENTED_EDGE('',*,*,#13270,.T.); +#6599=ORIENTED_EDGE('',*,*,#13522,.T.); +#6600=ORIENTED_EDGE('',*,*,#13362,.F.); +#6601=ORIENTED_EDGE('',*,*,#13516,.T.); +#6602=ORIENTED_EDGE('',*,*,#13278,.T.); +#6603=ORIENTED_EDGE('',*,*,#13518,.T.); +#6604=ORIENTED_EDGE('',*,*,#13354,.F.); +#6605=ORIENTED_EDGE('',*,*,#13512,.T.); +#6606=ORIENTED_EDGE('',*,*,#13286,.T.); +#6607=ORIENTED_EDGE('',*,*,#13514,.T.); +#6608=ORIENTED_EDGE('',*,*,#13346,.F.); +#6609=ORIENTED_EDGE('',*,*,#13508,.T.); +#6610=ORIENTED_EDGE('',*,*,#13294,.T.); +#6611=ORIENTED_EDGE('',*,*,#13510,.T.); +#6612=ORIENTED_EDGE('',*,*,#13338,.F.); +#6613=ORIENTED_EDGE('',*,*,#13504,.T.); +#6614=ORIENTED_EDGE('',*,*,#13302,.T.); +#6615=ORIENTED_EDGE('',*,*,#13506,.T.); +#6616=ORIENTED_EDGE('',*,*,#13330,.F.); +#6617=ORIENTED_EDGE('',*,*,#13500,.T.); +#6618=ORIENTED_EDGE('',*,*,#13310,.T.); +#6619=ORIENTED_EDGE('',*,*,#13502,.T.); +#6620=ORIENTED_EDGE('',*,*,#12990,.F.); +#6621=ORIENTED_EDGE('',*,*,#13496,.T.); +#6622=ORIENTED_EDGE('',*,*,#12994,.T.); +#6623=ORIENTED_EDGE('',*,*,#13487,.T.); +#6624=ORIENTED_EDGE('',*,*,#13318,.T.); +#6625=ORIENTED_EDGE('',*,*,#13498,.T.); +#6626=ORIENTED_EDGE('',*,*,#13322,.F.); +#6627=ORIENTED_EDGE('',*,*,#13485,.F.); +#6628=ORIENTED_EDGE('',*,*,#13492,.F.); +#6629=ORIENTED_EDGE('',*,*,#12830,.F.); +#6630=ORIENTED_EDGE('',*,*,#13491,.F.); +#6631=ORIENTED_EDGE('',*,*,#13482,.F.); +#6632=ORIENTED_EDGE('',*,*,#13494,.F.); +#6633=ORIENTED_EDGE('',*,*,#13158,.T.); +#6634=ORIENTED_EDGE('',*,*,#13489,.T.); +#6635=ORIENTED_EDGE('',*,*,#13154,.T.); +#6636=ORIENTED_EDGE('',*,*,#12992,.T.); +#6637=ORIENTED_EDGE('',*,*,#13488,.F.); +#6638=ORIENTED_EDGE('',*,*,#13156,.T.); +#6639=ORIENTED_EDGE('',*,*,#13486,.F.); +#6640=ORIENTED_EDGE('',*,*,#13484,.T.); +#6641=ORIENTED_EDGE('',*,*,#13320,.T.); +#6642=ORIENTED_EDGE('',*,*,#13490,.T.); +#6643=ORIENTED_EDGE('',*,*,#12828,.T.); +#6644=ORIENTED_EDGE('',*,*,#14052,.F.); +#6645=ORIENTED_EDGE('',*,*,#14053,.F.); +#6646=ORIENTED_EDGE('',*,*,#14054,.F.); +#6647=ORIENTED_EDGE('',*,*,#14055,.T.); +#6648=ORIENTED_EDGE('',*,*,#14056,.T.); +#6649=ORIENTED_EDGE('',*,*,#14057,.T.); +#6650=ORIENTED_EDGE('',*,*,#14058,.F.); +#6651=ORIENTED_EDGE('',*,*,#14059,.T.); +#6652=ORIENTED_EDGE('',*,*,#14060,.T.); +#6653=ORIENTED_EDGE('',*,*,#14061,.F.); +#6654=ORIENTED_EDGE('',*,*,#14062,.T.); +#6655=ORIENTED_EDGE('',*,*,#14063,.T.); +#6656=ORIENTED_EDGE('',*,*,#14064,.F.); +#6657=ORIENTED_EDGE('',*,*,#14065,.T.); +#6658=ORIENTED_EDGE('',*,*,#14066,.T.); +#6659=ORIENTED_EDGE('',*,*,#14067,.T.); +#6660=ORIENTED_EDGE('',*,*,#14068,.T.); +#6661=ORIENTED_EDGE('',*,*,#14069,.T.); +#6662=ORIENTED_EDGE('',*,*,#14070,.T.); +#6663=ORIENTED_EDGE('',*,*,#14071,.T.); +#6664=ORIENTED_EDGE('',*,*,#14072,.F.); +#6665=ORIENTED_EDGE('',*,*,#14073,.T.); +#6666=ORIENTED_EDGE('',*,*,#14074,.T.); +#6667=ORIENTED_EDGE('',*,*,#14075,.F.); +#6668=ORIENTED_EDGE('',*,*,#14076,.T.); +#6669=ORIENTED_EDGE('',*,*,#14077,.T.); +#6670=ORIENTED_EDGE('',*,*,#14078,.F.); +#6671=ORIENTED_EDGE('',*,*,#14079,.T.); +#6672=ORIENTED_EDGE('',*,*,#14080,.T.); +#6673=ORIENTED_EDGE('',*,*,#14081,.T.); +#6674=ORIENTED_EDGE('',*,*,#14082,.T.); +#6675=ORIENTED_EDGE('',*,*,#14083,.T.); +#6676=ORIENTED_EDGE('',*,*,#14084,.T.); +#6677=ORIENTED_EDGE('',*,*,#14085,.T.); +#6678=ORIENTED_EDGE('',*,*,#14086,.F.); +#6679=ORIENTED_EDGE('',*,*,#14087,.T.); +#6680=ORIENTED_EDGE('',*,*,#14088,.T.); +#6681=ORIENTED_EDGE('',*,*,#14089,.F.); +#6682=ORIENTED_EDGE('',*,*,#14090,.T.); +#6683=ORIENTED_EDGE('',*,*,#14091,.T.); +#6684=ORIENTED_EDGE('',*,*,#14092,.F.); +#6685=ORIENTED_EDGE('',*,*,#14093,.T.); +#6686=ORIENTED_EDGE('',*,*,#14094,.T.); +#6687=ORIENTED_EDGE('',*,*,#14095,.T.); +#6688=ORIENTED_EDGE('',*,*,#14096,.T.); +#6689=ORIENTED_EDGE('',*,*,#14097,.T.); +#6690=ORIENTED_EDGE('',*,*,#14098,.T.); +#6691=ORIENTED_EDGE('',*,*,#14099,.T.); +#6692=ORIENTED_EDGE('',*,*,#14100,.F.); +#6693=ORIENTED_EDGE('',*,*,#14101,.T.); +#6694=ORIENTED_EDGE('',*,*,#14102,.T.); +#6695=ORIENTED_EDGE('',*,*,#14103,.F.); +#6696=ORIENTED_EDGE('',*,*,#14104,.T.); +#6697=ORIENTED_EDGE('',*,*,#14105,.T.); +#6698=ORIENTED_EDGE('',*,*,#14106,.F.); +#6699=ORIENTED_EDGE('',*,*,#14107,.T.); +#6700=ORIENTED_EDGE('',*,*,#14108,.T.); +#6701=ORIENTED_EDGE('',*,*,#14109,.T.); +#6702=ORIENTED_EDGE('',*,*,#14110,.T.); +#6703=ORIENTED_EDGE('',*,*,#14111,.T.); +#6704=ORIENTED_EDGE('',*,*,#14112,.T.); +#6705=ORIENTED_EDGE('',*,*,#14113,.T.); +#6706=ORIENTED_EDGE('',*,*,#14114,.F.); +#6707=ORIENTED_EDGE('',*,*,#14115,.T.); +#6708=ORIENTED_EDGE('',*,*,#14116,.T.); +#6709=ORIENTED_EDGE('',*,*,#14117,.F.); +#6710=ORIENTED_EDGE('',*,*,#14118,.T.); +#6711=ORIENTED_EDGE('',*,*,#14119,.T.); +#6712=ORIENTED_EDGE('',*,*,#14120,.F.); +#6713=ORIENTED_EDGE('',*,*,#14121,.T.); +#6714=ORIENTED_EDGE('',*,*,#14122,.T.); +#6715=ORIENTED_EDGE('',*,*,#14123,.T.); +#6716=ORIENTED_EDGE('',*,*,#14124,.T.); +#6717=ORIENTED_EDGE('',*,*,#14125,.T.); +#6718=ORIENTED_EDGE('',*,*,#14126,.T.); +#6719=ORIENTED_EDGE('',*,*,#14127,.T.); +#6720=ORIENTED_EDGE('',*,*,#14128,.F.); +#6721=ORIENTED_EDGE('',*,*,#14129,.T.); +#6722=ORIENTED_EDGE('',*,*,#14130,.T.); +#6723=ORIENTED_EDGE('',*,*,#14131,.F.); +#6724=ORIENTED_EDGE('',*,*,#14132,.T.); +#6725=ORIENTED_EDGE('',*,*,#14133,.T.); +#6726=ORIENTED_EDGE('',*,*,#14134,.F.); +#6727=ORIENTED_EDGE('',*,*,#14135,.T.); +#6728=ORIENTED_EDGE('',*,*,#14136,.T.); +#6729=ORIENTED_EDGE('',*,*,#14137,.T.); +#6730=ORIENTED_EDGE('',*,*,#14138,.T.); +#6731=ORIENTED_EDGE('',*,*,#14139,.T.); +#6732=ORIENTED_EDGE('',*,*,#14140,.T.); +#6733=ORIENTED_EDGE('',*,*,#14141,.T.); +#6734=ORIENTED_EDGE('',*,*,#14142,.F.); +#6735=ORIENTED_EDGE('',*,*,#14143,.T.); +#6736=ORIENTED_EDGE('',*,*,#14144,.T.); +#6737=ORIENTED_EDGE('',*,*,#14145,.F.); +#6738=ORIENTED_EDGE('',*,*,#14146,.T.); +#6739=ORIENTED_EDGE('',*,*,#14147,.T.); +#6740=ORIENTED_EDGE('',*,*,#14148,.F.); +#6741=ORIENTED_EDGE('',*,*,#14149,.T.); +#6742=ORIENTED_EDGE('',*,*,#14150,.T.); +#6743=ORIENTED_EDGE('',*,*,#14151,.T.); +#6744=ORIENTED_EDGE('',*,*,#14152,.T.); +#6745=ORIENTED_EDGE('',*,*,#14153,.T.); +#6746=ORIENTED_EDGE('',*,*,#14154,.T.); +#6747=ORIENTED_EDGE('',*,*,#14155,.T.); +#6748=ORIENTED_EDGE('',*,*,#14156,.F.); +#6749=ORIENTED_EDGE('',*,*,#14157,.T.); +#6750=ORIENTED_EDGE('',*,*,#14158,.T.); +#6751=ORIENTED_EDGE('',*,*,#14159,.F.); +#6752=ORIENTED_EDGE('',*,*,#14160,.T.); +#6753=ORIENTED_EDGE('',*,*,#14161,.T.); +#6754=ORIENTED_EDGE('',*,*,#14162,.F.); +#6755=ORIENTED_EDGE('',*,*,#14163,.T.); +#6756=ORIENTED_EDGE('',*,*,#14164,.T.); +#6757=ORIENTED_EDGE('',*,*,#14165,.T.); +#6758=ORIENTED_EDGE('',*,*,#14166,.T.); +#6759=ORIENTED_EDGE('',*,*,#14167,.T.); +#6760=ORIENTED_EDGE('',*,*,#14168,.T.); +#6761=ORIENTED_EDGE('',*,*,#14169,.T.); +#6762=ORIENTED_EDGE('',*,*,#14170,.F.); +#6763=ORIENTED_EDGE('',*,*,#14171,.T.); +#6764=ORIENTED_EDGE('',*,*,#14172,.T.); +#6765=ORIENTED_EDGE('',*,*,#14173,.F.); +#6766=ORIENTED_EDGE('',*,*,#14174,.T.); +#6767=ORIENTED_EDGE('',*,*,#14175,.T.); +#6768=ORIENTED_EDGE('',*,*,#14176,.F.); +#6769=ORIENTED_EDGE('',*,*,#14177,.T.); +#6770=ORIENTED_EDGE('',*,*,#14178,.T.); +#6771=ORIENTED_EDGE('',*,*,#14179,.T.); +#6772=ORIENTED_EDGE('',*,*,#14180,.T.); +#6773=ORIENTED_EDGE('',*,*,#14181,.T.); +#6774=ORIENTED_EDGE('',*,*,#14182,.T.); +#6775=ORIENTED_EDGE('',*,*,#14183,.T.); +#6776=ORIENTED_EDGE('',*,*,#14184,.F.); +#6777=ORIENTED_EDGE('',*,*,#14185,.T.); +#6778=ORIENTED_EDGE('',*,*,#14186,.T.); +#6779=ORIENTED_EDGE('',*,*,#14187,.F.); +#6780=ORIENTED_EDGE('',*,*,#14188,.T.); +#6781=ORIENTED_EDGE('',*,*,#14189,.T.); +#6782=ORIENTED_EDGE('',*,*,#14190,.F.); +#6783=ORIENTED_EDGE('',*,*,#14191,.T.); +#6784=ORIENTED_EDGE('',*,*,#14192,.T.); +#6785=ORIENTED_EDGE('',*,*,#14193,.T.); +#6786=ORIENTED_EDGE('',*,*,#14194,.T.); +#6787=ORIENTED_EDGE('',*,*,#14195,.T.); +#6788=ORIENTED_EDGE('',*,*,#14196,.T.); +#6789=ORIENTED_EDGE('',*,*,#14197,.T.); +#6790=ORIENTED_EDGE('',*,*,#14198,.F.); +#6791=ORIENTED_EDGE('',*,*,#14199,.T.); +#6792=ORIENTED_EDGE('',*,*,#14200,.T.); +#6793=ORIENTED_EDGE('',*,*,#14201,.F.); +#6794=ORIENTED_EDGE('',*,*,#14202,.T.); +#6795=ORIENTED_EDGE('',*,*,#14203,.T.); +#6796=ORIENTED_EDGE('',*,*,#14204,.F.); +#6797=ORIENTED_EDGE('',*,*,#14205,.T.); +#6798=ORIENTED_EDGE('',*,*,#14206,.T.); +#6799=ORIENTED_EDGE('',*,*,#14207,.T.); +#6800=ORIENTED_EDGE('',*,*,#14208,.T.); +#6801=ORIENTED_EDGE('',*,*,#14209,.T.); +#6802=ORIENTED_EDGE('',*,*,#14210,.T.); +#6803=ORIENTED_EDGE('',*,*,#14211,.T.); +#6804=ORIENTED_EDGE('',*,*,#14212,.F.); +#6805=ORIENTED_EDGE('',*,*,#14213,.T.); +#6806=ORIENTED_EDGE('',*,*,#14214,.T.); +#6807=ORIENTED_EDGE('',*,*,#14215,.F.); +#6808=ORIENTED_EDGE('',*,*,#14216,.T.); +#6809=ORIENTED_EDGE('',*,*,#14217,.T.); +#6810=ORIENTED_EDGE('',*,*,#14218,.F.); +#6811=ORIENTED_EDGE('',*,*,#14219,.T.); +#6812=ORIENTED_EDGE('',*,*,#14220,.T.); +#6813=ORIENTED_EDGE('',*,*,#14221,.T.); +#6814=ORIENTED_EDGE('',*,*,#14222,.T.); +#6815=ORIENTED_EDGE('',*,*,#14223,.T.); +#6816=ORIENTED_EDGE('',*,*,#14224,.T.); +#6817=ORIENTED_EDGE('',*,*,#14225,.T.); +#6818=ORIENTED_EDGE('',*,*,#14226,.F.); +#6819=ORIENTED_EDGE('',*,*,#14227,.T.); +#6820=ORIENTED_EDGE('',*,*,#14228,.T.); +#6821=ORIENTED_EDGE('',*,*,#14229,.F.); +#6822=ORIENTED_EDGE('',*,*,#14230,.T.); +#6823=ORIENTED_EDGE('',*,*,#14231,.T.); +#6824=ORIENTED_EDGE('',*,*,#14232,.F.); +#6825=ORIENTED_EDGE('',*,*,#14233,.T.); +#6826=ORIENTED_EDGE('',*,*,#14234,.T.); +#6827=ORIENTED_EDGE('',*,*,#14235,.T.); +#6828=ORIENTED_EDGE('',*,*,#14236,.T.); +#6829=ORIENTED_EDGE('',*,*,#14237,.T.); +#6830=ORIENTED_EDGE('',*,*,#14238,.T.); +#6831=ORIENTED_EDGE('',*,*,#14239,.T.); +#6832=ORIENTED_EDGE('',*,*,#14240,.F.); +#6833=ORIENTED_EDGE('',*,*,#14241,.T.); +#6834=ORIENTED_EDGE('',*,*,#14242,.T.); +#6835=ORIENTED_EDGE('',*,*,#14243,.F.); +#6836=ORIENTED_EDGE('',*,*,#14244,.T.); +#6837=ORIENTED_EDGE('',*,*,#14245,.T.); +#6838=ORIENTED_EDGE('',*,*,#14246,.F.); +#6839=ORIENTED_EDGE('',*,*,#14247,.T.); +#6840=ORIENTED_EDGE('',*,*,#14248,.T.); +#6841=ORIENTED_EDGE('',*,*,#14249,.T.); +#6842=ORIENTED_EDGE('',*,*,#14250,.T.); +#6843=ORIENTED_EDGE('',*,*,#14251,.T.); +#6844=ORIENTED_EDGE('',*,*,#14252,.T.); +#6845=ORIENTED_EDGE('',*,*,#14253,.T.); +#6846=ORIENTED_EDGE('',*,*,#14254,.F.); +#6847=ORIENTED_EDGE('',*,*,#14255,.T.); +#6848=ORIENTED_EDGE('',*,*,#14256,.T.); +#6849=ORIENTED_EDGE('',*,*,#14257,.F.); +#6850=ORIENTED_EDGE('',*,*,#14258,.T.); +#6851=ORIENTED_EDGE('',*,*,#14259,.T.); +#6852=ORIENTED_EDGE('',*,*,#14260,.F.); +#6853=ORIENTED_EDGE('',*,*,#14261,.T.); +#6854=ORIENTED_EDGE('',*,*,#14262,.T.); +#6855=ORIENTED_EDGE('',*,*,#14263,.T.); +#6856=ORIENTED_EDGE('',*,*,#14264,.T.); +#6857=ORIENTED_EDGE('',*,*,#14265,.T.); +#6858=ORIENTED_EDGE('',*,*,#14266,.T.); +#6859=ORIENTED_EDGE('',*,*,#14267,.T.); +#6860=ORIENTED_EDGE('',*,*,#14268,.F.); +#6861=ORIENTED_EDGE('',*,*,#14269,.T.); +#6862=ORIENTED_EDGE('',*,*,#14270,.T.); +#6863=ORIENTED_EDGE('',*,*,#14271,.F.); +#6864=ORIENTED_EDGE('',*,*,#14272,.T.); +#6865=ORIENTED_EDGE('',*,*,#14273,.T.); +#6866=ORIENTED_EDGE('',*,*,#14274,.F.); +#6867=ORIENTED_EDGE('',*,*,#14275,.T.); +#6868=ORIENTED_EDGE('',*,*,#14276,.T.); +#6869=ORIENTED_EDGE('',*,*,#14277,.T.); +#6870=ORIENTED_EDGE('',*,*,#14278,.T.); +#6871=ORIENTED_EDGE('',*,*,#14279,.T.); +#6872=ORIENTED_EDGE('',*,*,#14280,.T.); +#6873=ORIENTED_EDGE('',*,*,#14281,.T.); +#6874=ORIENTED_EDGE('',*,*,#14282,.F.); +#6875=ORIENTED_EDGE('',*,*,#14283,.T.); +#6876=ORIENTED_EDGE('',*,*,#14284,.T.); +#6877=ORIENTED_EDGE('',*,*,#14285,.F.); +#6878=ORIENTED_EDGE('',*,*,#14286,.T.); +#6879=ORIENTED_EDGE('',*,*,#14287,.T.); +#6880=ORIENTED_EDGE('',*,*,#14288,.F.); +#6881=ORIENTED_EDGE('',*,*,#14289,.T.); +#6882=ORIENTED_EDGE('',*,*,#14290,.T.); +#6883=ORIENTED_EDGE('',*,*,#14291,.T.); +#6884=ORIENTED_EDGE('',*,*,#14292,.T.); +#6885=ORIENTED_EDGE('',*,*,#14293,.T.); +#6886=ORIENTED_EDGE('',*,*,#14294,.T.); +#6887=ORIENTED_EDGE('',*,*,#14295,.T.); +#6888=ORIENTED_EDGE('',*,*,#14296,.F.); +#6889=ORIENTED_EDGE('',*,*,#14297,.T.); +#6890=ORIENTED_EDGE('',*,*,#14298,.T.); +#6891=ORIENTED_EDGE('',*,*,#14299,.F.); +#6892=ORIENTED_EDGE('',*,*,#14300,.T.); +#6893=ORIENTED_EDGE('',*,*,#14301,.T.); +#6894=ORIENTED_EDGE('',*,*,#14302,.F.); +#6895=ORIENTED_EDGE('',*,*,#14303,.T.); +#6896=ORIENTED_EDGE('',*,*,#14304,.T.); +#6897=ORIENTED_EDGE('',*,*,#14305,.T.); +#6898=ORIENTED_EDGE('',*,*,#14306,.T.); +#6899=ORIENTED_EDGE('',*,*,#14307,.T.); +#6900=ORIENTED_EDGE('',*,*,#14308,.T.); +#6901=ORIENTED_EDGE('',*,*,#14309,.T.); +#6902=ORIENTED_EDGE('',*,*,#14310,.F.); +#6903=ORIENTED_EDGE('',*,*,#14311,.T.); +#6904=ORIENTED_EDGE('',*,*,#14312,.T.); +#6905=ORIENTED_EDGE('',*,*,#14313,.F.); +#6906=ORIENTED_EDGE('',*,*,#14314,.T.); +#6907=ORIENTED_EDGE('',*,*,#14315,.T.); +#6908=ORIENTED_EDGE('',*,*,#14316,.F.); +#6909=ORIENTED_EDGE('',*,*,#14317,.T.); +#6910=ORIENTED_EDGE('',*,*,#14318,.T.); +#6911=ORIENTED_EDGE('',*,*,#14319,.T.); +#6912=ORIENTED_EDGE('',*,*,#14320,.T.); +#6913=ORIENTED_EDGE('',*,*,#14321,.T.); +#6914=ORIENTED_EDGE('',*,*,#14322,.T.); +#6915=ORIENTED_EDGE('',*,*,#14323,.T.); +#6916=ORIENTED_EDGE('',*,*,#14324,.F.); +#6917=ORIENTED_EDGE('',*,*,#14325,.T.); +#6918=ORIENTED_EDGE('',*,*,#14326,.T.); +#6919=ORIENTED_EDGE('',*,*,#14327,.F.); +#6920=ORIENTED_EDGE('',*,*,#14328,.T.); +#6921=ORIENTED_EDGE('',*,*,#14329,.T.); +#6922=ORIENTED_EDGE('',*,*,#14330,.F.); +#6923=ORIENTED_EDGE('',*,*,#14331,.T.); +#6924=ORIENTED_EDGE('',*,*,#14332,.T.); +#6925=ORIENTED_EDGE('',*,*,#14333,.F.); +#6926=ORIENTED_EDGE('',*,*,#14334,.F.); +#6927=ORIENTED_EDGE('',*,*,#14335,.T.); +#6928=ORIENTED_EDGE('',*,*,#14336,.F.); +#6929=ORIENTED_EDGE('',*,*,#14337,.F.); +#6930=ORIENTED_EDGE('',*,*,#14338,.T.); +#6931=ORIENTED_EDGE('',*,*,#14339,.F.); +#6932=ORIENTED_EDGE('',*,*,#14340,.T.); +#6933=ORIENTED_EDGE('',*,*,#14341,.T.); +#6934=ORIENTED_EDGE('',*,*,#14342,.F.); +#6935=ORIENTED_EDGE('',*,*,#14343,.T.); +#6936=ORIENTED_EDGE('',*,*,#14344,.T.); +#6937=ORIENTED_EDGE('',*,*,#14345,.T.); +#6938=ORIENTED_EDGE('',*,*,#14346,.T.); +#6939=ORIENTED_EDGE('',*,*,#14347,.T.); +#6940=ORIENTED_EDGE('',*,*,#14348,.F.); +#6941=ORIENTED_EDGE('',*,*,#14349,.T.); +#6942=ORIENTED_EDGE('',*,*,#14350,.T.); +#6943=ORIENTED_EDGE('',*,*,#14351,.T.); +#6944=ORIENTED_EDGE('',*,*,#14352,.T.); +#6945=ORIENTED_EDGE('',*,*,#14353,.T.); +#6946=ORIENTED_EDGE('',*,*,#14354,.T.); +#6947=ORIENTED_EDGE('',*,*,#14355,.T.); +#6948=ORIENTED_EDGE('',*,*,#14356,.F.); +#6949=ORIENTED_EDGE('',*,*,#14357,.T.); +#6950=ORIENTED_EDGE('',*,*,#14358,.T.); +#6951=ORIENTED_EDGE('',*,*,#14359,.T.); +#6952=ORIENTED_EDGE('',*,*,#14360,.T.); +#6953=ORIENTED_EDGE('',*,*,#14361,.T.); +#6954=ORIENTED_EDGE('',*,*,#14362,.F.); +#6955=ORIENTED_EDGE('',*,*,#14363,.T.); +#6956=ORIENTED_EDGE('',*,*,#14364,.T.); +#6957=ORIENTED_EDGE('',*,*,#14365,.T.); +#6958=ORIENTED_EDGE('',*,*,#14366,.T.); +#6959=ORIENTED_EDGE('',*,*,#14367,.T.); +#6960=ORIENTED_EDGE('',*,*,#14368,.T.); +#6961=ORIENTED_EDGE('',*,*,#14369,.T.); +#6962=ORIENTED_EDGE('',*,*,#14370,.F.); +#6963=ORIENTED_EDGE('',*,*,#14371,.T.); +#6964=ORIENTED_EDGE('',*,*,#14372,.T.); +#6965=ORIENTED_EDGE('',*,*,#14373,.T.); +#6966=ORIENTED_EDGE('',*,*,#14374,.T.); +#6967=ORIENTED_EDGE('',*,*,#14375,.T.); +#6968=ORIENTED_EDGE('',*,*,#14376,.F.); +#6969=ORIENTED_EDGE('',*,*,#14377,.T.); +#6970=ORIENTED_EDGE('',*,*,#14378,.T.); +#6971=ORIENTED_EDGE('',*,*,#14379,.T.); +#6972=ORIENTED_EDGE('',*,*,#14380,.T.); +#6973=ORIENTED_EDGE('',*,*,#14381,.T.); +#6974=ORIENTED_EDGE('',*,*,#14382,.T.); +#6975=ORIENTED_EDGE('',*,*,#14383,.T.); +#6976=ORIENTED_EDGE('',*,*,#14384,.F.); +#6977=ORIENTED_EDGE('',*,*,#14385,.T.); +#6978=ORIENTED_EDGE('',*,*,#14386,.T.); +#6979=ORIENTED_EDGE('',*,*,#14387,.T.); +#6980=ORIENTED_EDGE('',*,*,#14388,.T.); +#6981=ORIENTED_EDGE('',*,*,#14389,.T.); +#6982=ORIENTED_EDGE('',*,*,#14390,.F.); +#6983=ORIENTED_EDGE('',*,*,#14391,.T.); +#6984=ORIENTED_EDGE('',*,*,#14392,.T.); +#6985=ORIENTED_EDGE('',*,*,#14393,.T.); +#6986=ORIENTED_EDGE('',*,*,#14394,.T.); +#6987=ORIENTED_EDGE('',*,*,#14395,.T.); +#6988=ORIENTED_EDGE('',*,*,#14396,.T.); +#6989=ORIENTED_EDGE('',*,*,#14397,.T.); +#6990=ORIENTED_EDGE('',*,*,#14398,.F.); +#6991=ORIENTED_EDGE('',*,*,#14399,.T.); +#6992=ORIENTED_EDGE('',*,*,#14400,.T.); +#6993=ORIENTED_EDGE('',*,*,#14401,.T.); +#6994=ORIENTED_EDGE('',*,*,#14402,.T.); +#6995=ORIENTED_EDGE('',*,*,#14403,.T.); +#6996=ORIENTED_EDGE('',*,*,#14404,.F.); +#6997=ORIENTED_EDGE('',*,*,#14405,.T.); +#6998=ORIENTED_EDGE('',*,*,#14406,.T.); +#6999=ORIENTED_EDGE('',*,*,#14407,.T.); +#7000=ORIENTED_EDGE('',*,*,#14408,.T.); +#7001=ORIENTED_EDGE('',*,*,#14409,.T.); +#7002=ORIENTED_EDGE('',*,*,#14410,.T.); +#7003=ORIENTED_EDGE('',*,*,#14411,.T.); +#7004=ORIENTED_EDGE('',*,*,#14412,.F.); +#7005=ORIENTED_EDGE('',*,*,#14413,.T.); +#7006=ORIENTED_EDGE('',*,*,#14414,.T.); +#7007=ORIENTED_EDGE('',*,*,#14415,.T.); +#7008=ORIENTED_EDGE('',*,*,#14416,.T.); +#7009=ORIENTED_EDGE('',*,*,#14417,.T.); +#7010=ORIENTED_EDGE('',*,*,#14418,.F.); +#7011=ORIENTED_EDGE('',*,*,#14419,.T.); +#7012=ORIENTED_EDGE('',*,*,#14420,.T.); +#7013=ORIENTED_EDGE('',*,*,#14421,.T.); +#7014=ORIENTED_EDGE('',*,*,#14422,.T.); +#7015=ORIENTED_EDGE('',*,*,#14423,.T.); +#7016=ORIENTED_EDGE('',*,*,#14424,.T.); +#7017=ORIENTED_EDGE('',*,*,#14425,.T.); +#7018=ORIENTED_EDGE('',*,*,#14426,.F.); +#7019=ORIENTED_EDGE('',*,*,#14427,.T.); +#7020=ORIENTED_EDGE('',*,*,#14428,.T.); +#7021=ORIENTED_EDGE('',*,*,#14429,.T.); +#7022=ORIENTED_EDGE('',*,*,#14430,.T.); +#7023=ORIENTED_EDGE('',*,*,#14431,.T.); +#7024=ORIENTED_EDGE('',*,*,#14432,.F.); +#7025=ORIENTED_EDGE('',*,*,#14433,.T.); +#7026=ORIENTED_EDGE('',*,*,#14434,.T.); +#7027=ORIENTED_EDGE('',*,*,#14435,.T.); +#7028=ORIENTED_EDGE('',*,*,#14436,.T.); +#7029=ORIENTED_EDGE('',*,*,#14437,.T.); +#7030=ORIENTED_EDGE('',*,*,#14438,.T.); +#7031=ORIENTED_EDGE('',*,*,#14439,.T.); +#7032=ORIENTED_EDGE('',*,*,#14440,.F.); +#7033=ORIENTED_EDGE('',*,*,#14441,.T.); +#7034=ORIENTED_EDGE('',*,*,#14442,.T.); +#7035=ORIENTED_EDGE('',*,*,#14443,.T.); +#7036=ORIENTED_EDGE('',*,*,#14444,.T.); +#7037=ORIENTED_EDGE('',*,*,#14445,.T.); +#7038=ORIENTED_EDGE('',*,*,#14446,.F.); +#7039=ORIENTED_EDGE('',*,*,#14447,.T.); +#7040=ORIENTED_EDGE('',*,*,#14448,.T.); +#7041=ORIENTED_EDGE('',*,*,#14449,.T.); +#7042=ORIENTED_EDGE('',*,*,#14450,.T.); +#7043=ORIENTED_EDGE('',*,*,#14451,.T.); +#7044=ORIENTED_EDGE('',*,*,#14452,.T.); +#7045=ORIENTED_EDGE('',*,*,#14453,.T.); +#7046=ORIENTED_EDGE('',*,*,#14454,.F.); +#7047=ORIENTED_EDGE('',*,*,#14455,.T.); +#7048=ORIENTED_EDGE('',*,*,#14456,.T.); +#7049=ORIENTED_EDGE('',*,*,#14457,.T.); +#7050=ORIENTED_EDGE('',*,*,#14458,.T.); +#7051=ORIENTED_EDGE('',*,*,#14459,.T.); +#7052=ORIENTED_EDGE('',*,*,#14460,.F.); +#7053=ORIENTED_EDGE('',*,*,#14461,.T.); +#7054=ORIENTED_EDGE('',*,*,#14462,.T.); +#7055=ORIENTED_EDGE('',*,*,#14463,.T.); +#7056=ORIENTED_EDGE('',*,*,#14464,.T.); +#7057=ORIENTED_EDGE('',*,*,#14465,.T.); +#7058=ORIENTED_EDGE('',*,*,#14466,.T.); +#7059=ORIENTED_EDGE('',*,*,#14467,.T.); +#7060=ORIENTED_EDGE('',*,*,#14468,.F.); +#7061=ORIENTED_EDGE('',*,*,#14469,.T.); +#7062=ORIENTED_EDGE('',*,*,#14470,.T.); +#7063=ORIENTED_EDGE('',*,*,#14471,.T.); +#7064=ORIENTED_EDGE('',*,*,#14472,.T.); +#7065=ORIENTED_EDGE('',*,*,#14473,.T.); +#7066=ORIENTED_EDGE('',*,*,#14474,.F.); +#7067=ORIENTED_EDGE('',*,*,#14475,.T.); +#7068=ORIENTED_EDGE('',*,*,#14476,.T.); +#7069=ORIENTED_EDGE('',*,*,#14477,.T.); +#7070=ORIENTED_EDGE('',*,*,#14478,.T.); +#7071=ORIENTED_EDGE('',*,*,#14479,.T.); +#7072=ORIENTED_EDGE('',*,*,#14480,.T.); +#7073=ORIENTED_EDGE('',*,*,#14481,.T.); +#7074=ORIENTED_EDGE('',*,*,#14482,.F.); +#7075=ORIENTED_EDGE('',*,*,#14483,.T.); +#7076=ORIENTED_EDGE('',*,*,#14484,.T.); +#7077=ORIENTED_EDGE('',*,*,#14485,.T.); +#7078=ORIENTED_EDGE('',*,*,#14486,.T.); +#7079=ORIENTED_EDGE('',*,*,#14487,.T.); +#7080=ORIENTED_EDGE('',*,*,#14488,.F.); +#7081=ORIENTED_EDGE('',*,*,#14489,.T.); +#7082=ORIENTED_EDGE('',*,*,#14490,.T.); +#7083=ORIENTED_EDGE('',*,*,#14491,.T.); +#7084=ORIENTED_EDGE('',*,*,#14492,.T.); +#7085=ORIENTED_EDGE('',*,*,#14493,.T.); +#7086=ORIENTED_EDGE('',*,*,#14494,.T.); +#7087=ORIENTED_EDGE('',*,*,#14495,.T.); +#7088=ORIENTED_EDGE('',*,*,#14496,.F.); +#7089=ORIENTED_EDGE('',*,*,#14497,.T.); +#7090=ORIENTED_EDGE('',*,*,#14498,.T.); +#7091=ORIENTED_EDGE('',*,*,#14499,.T.); +#7092=ORIENTED_EDGE('',*,*,#14500,.T.); +#7093=ORIENTED_EDGE('',*,*,#14501,.T.); +#7094=ORIENTED_EDGE('',*,*,#14502,.F.); +#7095=ORIENTED_EDGE('',*,*,#14503,.T.); +#7096=ORIENTED_EDGE('',*,*,#14504,.T.); +#7097=ORIENTED_EDGE('',*,*,#14505,.T.); +#7098=ORIENTED_EDGE('',*,*,#14506,.T.); +#7099=ORIENTED_EDGE('',*,*,#14507,.T.); +#7100=ORIENTED_EDGE('',*,*,#14508,.T.); +#7101=ORIENTED_EDGE('',*,*,#14509,.T.); +#7102=ORIENTED_EDGE('',*,*,#14510,.F.); +#7103=ORIENTED_EDGE('',*,*,#14511,.T.); +#7104=ORIENTED_EDGE('',*,*,#14512,.T.); +#7105=ORIENTED_EDGE('',*,*,#14513,.T.); +#7106=ORIENTED_EDGE('',*,*,#14514,.T.); +#7107=ORIENTED_EDGE('',*,*,#14515,.T.); +#7108=ORIENTED_EDGE('',*,*,#14516,.F.); +#7109=ORIENTED_EDGE('',*,*,#14517,.T.); +#7110=ORIENTED_EDGE('',*,*,#14518,.T.); +#7111=ORIENTED_EDGE('',*,*,#14519,.T.); +#7112=ORIENTED_EDGE('',*,*,#14520,.T.); +#7113=ORIENTED_EDGE('',*,*,#14521,.T.); +#7114=ORIENTED_EDGE('',*,*,#14522,.T.); +#7115=ORIENTED_EDGE('',*,*,#14523,.T.); +#7116=ORIENTED_EDGE('',*,*,#14524,.F.); +#7117=ORIENTED_EDGE('',*,*,#14525,.T.); +#7118=ORIENTED_EDGE('',*,*,#14526,.T.); +#7119=ORIENTED_EDGE('',*,*,#14527,.T.); +#7120=ORIENTED_EDGE('',*,*,#14528,.T.); +#7121=ORIENTED_EDGE('',*,*,#14529,.T.); +#7122=ORIENTED_EDGE('',*,*,#14530,.F.); +#7123=ORIENTED_EDGE('',*,*,#14531,.T.); +#7124=ORIENTED_EDGE('',*,*,#14532,.T.); +#7125=ORIENTED_EDGE('',*,*,#14533,.T.); +#7126=ORIENTED_EDGE('',*,*,#14534,.T.); +#7127=ORIENTED_EDGE('',*,*,#14535,.T.); +#7128=ORIENTED_EDGE('',*,*,#14536,.T.); +#7129=ORIENTED_EDGE('',*,*,#14537,.T.); +#7130=ORIENTED_EDGE('',*,*,#14538,.F.); +#7131=ORIENTED_EDGE('',*,*,#14539,.T.); +#7132=ORIENTED_EDGE('',*,*,#14540,.T.); +#7133=ORIENTED_EDGE('',*,*,#14541,.T.); +#7134=ORIENTED_EDGE('',*,*,#14542,.T.); +#7135=ORIENTED_EDGE('',*,*,#14543,.T.); +#7136=ORIENTED_EDGE('',*,*,#14544,.F.); +#7137=ORIENTED_EDGE('',*,*,#14545,.T.); +#7138=ORIENTED_EDGE('',*,*,#14546,.T.); +#7139=ORIENTED_EDGE('',*,*,#14547,.T.); +#7140=ORIENTED_EDGE('',*,*,#14548,.T.); +#7141=ORIENTED_EDGE('',*,*,#14549,.T.); +#7142=ORIENTED_EDGE('',*,*,#14550,.T.); +#7143=ORIENTED_EDGE('',*,*,#14551,.T.); +#7144=ORIENTED_EDGE('',*,*,#14552,.F.); +#7145=ORIENTED_EDGE('',*,*,#14553,.T.); +#7146=ORIENTED_EDGE('',*,*,#14554,.T.); +#7147=ORIENTED_EDGE('',*,*,#14555,.T.); +#7148=ORIENTED_EDGE('',*,*,#14556,.T.); +#7149=ORIENTED_EDGE('',*,*,#14557,.T.); +#7150=ORIENTED_EDGE('',*,*,#14558,.F.); +#7151=ORIENTED_EDGE('',*,*,#14559,.T.); +#7152=ORIENTED_EDGE('',*,*,#14560,.T.); +#7153=ORIENTED_EDGE('',*,*,#14561,.T.); +#7154=ORIENTED_EDGE('',*,*,#14562,.T.); +#7155=ORIENTED_EDGE('',*,*,#14563,.T.); +#7156=ORIENTED_EDGE('',*,*,#14564,.T.); +#7157=ORIENTED_EDGE('',*,*,#14565,.T.); +#7158=ORIENTED_EDGE('',*,*,#14566,.F.); +#7159=ORIENTED_EDGE('',*,*,#14567,.T.); +#7160=ORIENTED_EDGE('',*,*,#14568,.T.); +#7161=ORIENTED_EDGE('',*,*,#14569,.T.); +#7162=ORIENTED_EDGE('',*,*,#14570,.T.); +#7163=ORIENTED_EDGE('',*,*,#14571,.T.); +#7164=ORIENTED_EDGE('',*,*,#14572,.F.); +#7165=ORIENTED_EDGE('',*,*,#14573,.T.); +#7166=ORIENTED_EDGE('',*,*,#14574,.T.); +#7167=ORIENTED_EDGE('',*,*,#14575,.T.); +#7168=ORIENTED_EDGE('',*,*,#14576,.T.); +#7169=ORIENTED_EDGE('',*,*,#14577,.T.); +#7170=ORIENTED_EDGE('',*,*,#14578,.T.); +#7171=ORIENTED_EDGE('',*,*,#14579,.T.); +#7172=ORIENTED_EDGE('',*,*,#14580,.F.); +#7173=ORIENTED_EDGE('',*,*,#14581,.T.); +#7174=ORIENTED_EDGE('',*,*,#14582,.T.); +#7175=ORIENTED_EDGE('',*,*,#14583,.T.); +#7176=ORIENTED_EDGE('',*,*,#14584,.T.); +#7177=ORIENTED_EDGE('',*,*,#14585,.T.); +#7178=ORIENTED_EDGE('',*,*,#14586,.F.); +#7179=ORIENTED_EDGE('',*,*,#14587,.T.); +#7180=ORIENTED_EDGE('',*,*,#14588,.T.); +#7181=ORIENTED_EDGE('',*,*,#14589,.T.); +#7182=ORIENTED_EDGE('',*,*,#14590,.T.); +#7183=ORIENTED_EDGE('',*,*,#14591,.T.); +#7184=ORIENTED_EDGE('',*,*,#14592,.T.); +#7185=ORIENTED_EDGE('',*,*,#14593,.T.); +#7186=ORIENTED_EDGE('',*,*,#14594,.F.); +#7187=ORIENTED_EDGE('',*,*,#14595,.T.); +#7188=ORIENTED_EDGE('',*,*,#14596,.T.); +#7189=ORIENTED_EDGE('',*,*,#14597,.T.); +#7190=ORIENTED_EDGE('',*,*,#14598,.T.); +#7191=ORIENTED_EDGE('',*,*,#14599,.T.); +#7192=ORIENTED_EDGE('',*,*,#14600,.F.); +#7193=ORIENTED_EDGE('',*,*,#14601,.T.); +#7194=ORIENTED_EDGE('',*,*,#14602,.T.); +#7195=ORIENTED_EDGE('',*,*,#14603,.T.); +#7196=ORIENTED_EDGE('',*,*,#14604,.T.); +#7197=ORIENTED_EDGE('',*,*,#14605,.T.); +#7198=ORIENTED_EDGE('',*,*,#14606,.T.); +#7199=ORIENTED_EDGE('',*,*,#14607,.T.); +#7200=ORIENTED_EDGE('',*,*,#14608,.F.); +#7201=ORIENTED_EDGE('',*,*,#14609,.T.); +#7202=ORIENTED_EDGE('',*,*,#14610,.T.); +#7203=ORIENTED_EDGE('',*,*,#14611,.T.); +#7204=ORIENTED_EDGE('',*,*,#14612,.T.); +#7205=ORIENTED_EDGE('',*,*,#14613,.T.); +#7206=ORIENTED_EDGE('',*,*,#14614,.F.); +#7207=ORIENTED_EDGE('',*,*,#14615,.T.); +#7208=ORIENTED_EDGE('',*,*,#14616,.T.); +#7209=ORIENTED_EDGE('',*,*,#14617,.T.); +#7210=ORIENTED_EDGE('',*,*,#14618,.T.); +#7211=ORIENTED_EDGE('',*,*,#14619,.T.); +#7212=ORIENTED_EDGE('',*,*,#14620,.F.); +#7213=ORIENTED_EDGE('',*,*,#14621,.F.); +#7214=ORIENTED_EDGE('',*,*,#14622,.T.); +#7215=ORIENTED_EDGE('',*,*,#14623,.T.); +#7216=ORIENTED_EDGE('',*,*,#14624,.T.); +#7217=ORIENTED_EDGE('',*,*,#14625,.T.); +#7218=ORIENTED_EDGE('',*,*,#14626,.F.); +#7219=ORIENTED_EDGE('',*,*,#14627,.T.); +#7220=ORIENTED_EDGE('',*,*,#14628,.T.); +#7221=ORIENTED_EDGE('',*,*,#14629,.F.); +#7222=ORIENTED_EDGE('',*,*,#14630,.T.); +#7223=ORIENTED_EDGE('',*,*,#14631,.T.); +#7224=ORIENTED_EDGE('',*,*,#14632,.F.); +#7225=ORIENTED_EDGE('',*,*,#14633,.T.); +#7226=ORIENTED_EDGE('',*,*,#14634,.T.); +#7227=ORIENTED_EDGE('',*,*,#14635,.T.); +#7228=ORIENTED_EDGE('',*,*,#14636,.T.); +#7229=ORIENTED_EDGE('',*,*,#14637,.T.); +#7230=ORIENTED_EDGE('',*,*,#14638,.T.); +#7231=ORIENTED_EDGE('',*,*,#14639,.T.); +#7232=ORIENTED_EDGE('',*,*,#14640,.F.); +#7233=ORIENTED_EDGE('',*,*,#14641,.T.); +#7234=ORIENTED_EDGE('',*,*,#14642,.T.); +#7235=ORIENTED_EDGE('',*,*,#14643,.F.); +#7236=ORIENTED_EDGE('',*,*,#14644,.T.); +#7237=ORIENTED_EDGE('',*,*,#14645,.T.); +#7238=ORIENTED_EDGE('',*,*,#14646,.F.); +#7239=ORIENTED_EDGE('',*,*,#14647,.T.); +#7240=ORIENTED_EDGE('',*,*,#14648,.T.); +#7241=ORIENTED_EDGE('',*,*,#14649,.T.); +#7242=ORIENTED_EDGE('',*,*,#14650,.T.); +#7243=ORIENTED_EDGE('',*,*,#14651,.T.); +#7244=ORIENTED_EDGE('',*,*,#14652,.T.); +#7245=ORIENTED_EDGE('',*,*,#14653,.T.); +#7246=ORIENTED_EDGE('',*,*,#14654,.F.); +#7247=ORIENTED_EDGE('',*,*,#14655,.T.); +#7248=ORIENTED_EDGE('',*,*,#14656,.T.); +#7249=ORIENTED_EDGE('',*,*,#14657,.F.); +#7250=ORIENTED_EDGE('',*,*,#14658,.T.); +#7251=ORIENTED_EDGE('',*,*,#14659,.T.); +#7252=ORIENTED_EDGE('',*,*,#14660,.F.); +#7253=ORIENTED_EDGE('',*,*,#14661,.T.); +#7254=ORIENTED_EDGE('',*,*,#14662,.T.); +#7255=ORIENTED_EDGE('',*,*,#14663,.T.); +#7256=ORIENTED_EDGE('',*,*,#14664,.T.); +#7257=ORIENTED_EDGE('',*,*,#14665,.T.); +#7258=ORIENTED_EDGE('',*,*,#14666,.T.); +#7259=ORIENTED_EDGE('',*,*,#14667,.T.); +#7260=ORIENTED_EDGE('',*,*,#14668,.F.); +#7261=ORIENTED_EDGE('',*,*,#14669,.T.); +#7262=ORIENTED_EDGE('',*,*,#14670,.T.); +#7263=ORIENTED_EDGE('',*,*,#14671,.F.); +#7264=ORIENTED_EDGE('',*,*,#14672,.T.); +#7265=ORIENTED_EDGE('',*,*,#14673,.T.); +#7266=ORIENTED_EDGE('',*,*,#14674,.F.); +#7267=ORIENTED_EDGE('',*,*,#14675,.T.); +#7268=ORIENTED_EDGE('',*,*,#14676,.T.); +#7269=ORIENTED_EDGE('',*,*,#14677,.T.); +#7270=ORIENTED_EDGE('',*,*,#14678,.T.); +#7271=ORIENTED_EDGE('',*,*,#14679,.T.); +#7272=ORIENTED_EDGE('',*,*,#14680,.T.); +#7273=ORIENTED_EDGE('',*,*,#14681,.T.); +#7274=ORIENTED_EDGE('',*,*,#14682,.F.); +#7275=ORIENTED_EDGE('',*,*,#14683,.T.); +#7276=ORIENTED_EDGE('',*,*,#14684,.T.); +#7277=ORIENTED_EDGE('',*,*,#14685,.F.); +#7278=ORIENTED_EDGE('',*,*,#14686,.T.); +#7279=ORIENTED_EDGE('',*,*,#14687,.T.); +#7280=ORIENTED_EDGE('',*,*,#14688,.F.); +#7281=ORIENTED_EDGE('',*,*,#14689,.T.); +#7282=ORIENTED_EDGE('',*,*,#14690,.T.); +#7283=ORIENTED_EDGE('',*,*,#14691,.T.); +#7284=ORIENTED_EDGE('',*,*,#14692,.T.); +#7285=ORIENTED_EDGE('',*,*,#14693,.T.); +#7286=ORIENTED_EDGE('',*,*,#14694,.T.); +#7287=ORIENTED_EDGE('',*,*,#14695,.T.); +#7288=ORIENTED_EDGE('',*,*,#14696,.F.); +#7289=ORIENTED_EDGE('',*,*,#14697,.T.); +#7290=ORIENTED_EDGE('',*,*,#14698,.T.); +#7291=ORIENTED_EDGE('',*,*,#14699,.F.); +#7292=ORIENTED_EDGE('',*,*,#14700,.T.); +#7293=ORIENTED_EDGE('',*,*,#14701,.T.); +#7294=ORIENTED_EDGE('',*,*,#14702,.F.); +#7295=ORIENTED_EDGE('',*,*,#14703,.T.); +#7296=ORIENTED_EDGE('',*,*,#14704,.T.); +#7297=ORIENTED_EDGE('',*,*,#14705,.T.); +#7298=ORIENTED_EDGE('',*,*,#14706,.T.); +#7299=ORIENTED_EDGE('',*,*,#14707,.T.); +#7300=ORIENTED_EDGE('',*,*,#14708,.T.); +#7301=ORIENTED_EDGE('',*,*,#14709,.T.); +#7302=ORIENTED_EDGE('',*,*,#14710,.F.); +#7303=ORIENTED_EDGE('',*,*,#14711,.T.); +#7304=ORIENTED_EDGE('',*,*,#14712,.T.); +#7305=ORIENTED_EDGE('',*,*,#14713,.F.); +#7306=ORIENTED_EDGE('',*,*,#14714,.T.); +#7307=ORIENTED_EDGE('',*,*,#14715,.T.); +#7308=ORIENTED_EDGE('',*,*,#14716,.F.); +#7309=ORIENTED_EDGE('',*,*,#14717,.T.); +#7310=ORIENTED_EDGE('',*,*,#14718,.T.); +#7311=ORIENTED_EDGE('',*,*,#14719,.T.); +#7312=ORIENTED_EDGE('',*,*,#14720,.T.); +#7313=ORIENTED_EDGE('',*,*,#14721,.T.); +#7314=ORIENTED_EDGE('',*,*,#14722,.T.); +#7315=ORIENTED_EDGE('',*,*,#14723,.T.); +#7316=ORIENTED_EDGE('',*,*,#14724,.F.); +#7317=ORIENTED_EDGE('',*,*,#14725,.T.); +#7318=ORIENTED_EDGE('',*,*,#14726,.T.); +#7319=ORIENTED_EDGE('',*,*,#14727,.F.); +#7320=ORIENTED_EDGE('',*,*,#14728,.T.); +#7321=ORIENTED_EDGE('',*,*,#14729,.T.); +#7322=ORIENTED_EDGE('',*,*,#14730,.F.); +#7323=ORIENTED_EDGE('',*,*,#14731,.T.); +#7324=ORIENTED_EDGE('',*,*,#14732,.T.); +#7325=ORIENTED_EDGE('',*,*,#14733,.T.); +#7326=ORIENTED_EDGE('',*,*,#14734,.T.); +#7327=ORIENTED_EDGE('',*,*,#14735,.T.); +#7328=ORIENTED_EDGE('',*,*,#14736,.T.); +#7329=ORIENTED_EDGE('',*,*,#14737,.T.); +#7330=ORIENTED_EDGE('',*,*,#14738,.F.); +#7331=ORIENTED_EDGE('',*,*,#14739,.T.); +#7332=ORIENTED_EDGE('',*,*,#14740,.T.); +#7333=ORIENTED_EDGE('',*,*,#14741,.F.); +#7334=ORIENTED_EDGE('',*,*,#14742,.T.); +#7335=ORIENTED_EDGE('',*,*,#14743,.T.); +#7336=ORIENTED_EDGE('',*,*,#14744,.F.); +#7337=ORIENTED_EDGE('',*,*,#14745,.T.); +#7338=ORIENTED_EDGE('',*,*,#14746,.T.); +#7339=ORIENTED_EDGE('',*,*,#14747,.T.); +#7340=ORIENTED_EDGE('',*,*,#14748,.T.); +#7341=ORIENTED_EDGE('',*,*,#14749,.T.); +#7342=ORIENTED_EDGE('',*,*,#14750,.T.); +#7343=ORIENTED_EDGE('',*,*,#14751,.T.); +#7344=ORIENTED_EDGE('',*,*,#14752,.F.); +#7345=ORIENTED_EDGE('',*,*,#14753,.T.); +#7346=ORIENTED_EDGE('',*,*,#14754,.T.); +#7347=ORIENTED_EDGE('',*,*,#14755,.F.); +#7348=ORIENTED_EDGE('',*,*,#14756,.T.); +#7349=ORIENTED_EDGE('',*,*,#14757,.T.); +#7350=ORIENTED_EDGE('',*,*,#14758,.F.); +#7351=ORIENTED_EDGE('',*,*,#14759,.T.); +#7352=ORIENTED_EDGE('',*,*,#14760,.T.); +#7353=ORIENTED_EDGE('',*,*,#14761,.T.); +#7354=ORIENTED_EDGE('',*,*,#14762,.T.); +#7355=ORIENTED_EDGE('',*,*,#14763,.T.); +#7356=ORIENTED_EDGE('',*,*,#14764,.T.); +#7357=ORIENTED_EDGE('',*,*,#14765,.T.); +#7358=ORIENTED_EDGE('',*,*,#14766,.F.); +#7359=ORIENTED_EDGE('',*,*,#14767,.T.); +#7360=ORIENTED_EDGE('',*,*,#14768,.T.); +#7361=ORIENTED_EDGE('',*,*,#14769,.F.); +#7362=ORIENTED_EDGE('',*,*,#14770,.T.); +#7363=ORIENTED_EDGE('',*,*,#14771,.T.); +#7364=ORIENTED_EDGE('',*,*,#14772,.F.); +#7365=ORIENTED_EDGE('',*,*,#14773,.T.); +#7366=ORIENTED_EDGE('',*,*,#14774,.T.); +#7367=ORIENTED_EDGE('',*,*,#14775,.T.); +#7368=ORIENTED_EDGE('',*,*,#14776,.T.); +#7369=ORIENTED_EDGE('',*,*,#14777,.T.); +#7370=ORIENTED_EDGE('',*,*,#14778,.T.); +#7371=ORIENTED_EDGE('',*,*,#14779,.T.); +#7372=ORIENTED_EDGE('',*,*,#14780,.F.); +#7373=ORIENTED_EDGE('',*,*,#14781,.T.); +#7374=ORIENTED_EDGE('',*,*,#14782,.T.); +#7375=ORIENTED_EDGE('',*,*,#14783,.F.); +#7376=ORIENTED_EDGE('',*,*,#14784,.T.); +#7377=ORIENTED_EDGE('',*,*,#14785,.T.); +#7378=ORIENTED_EDGE('',*,*,#14786,.F.); +#7379=ORIENTED_EDGE('',*,*,#14787,.T.); +#7380=ORIENTED_EDGE('',*,*,#14788,.T.); +#7381=ORIENTED_EDGE('',*,*,#14789,.T.); +#7382=ORIENTED_EDGE('',*,*,#14790,.T.); +#7383=ORIENTED_EDGE('',*,*,#14791,.T.); +#7384=ORIENTED_EDGE('',*,*,#14792,.T.); +#7385=ORIENTED_EDGE('',*,*,#14793,.T.); +#7386=ORIENTED_EDGE('',*,*,#14794,.F.); +#7387=ORIENTED_EDGE('',*,*,#14795,.T.); +#7388=ORIENTED_EDGE('',*,*,#14796,.T.); +#7389=ORIENTED_EDGE('',*,*,#14797,.F.); +#7390=ORIENTED_EDGE('',*,*,#14798,.T.); +#7391=ORIENTED_EDGE('',*,*,#14799,.T.); +#7392=ORIENTED_EDGE('',*,*,#14800,.F.); +#7393=ORIENTED_EDGE('',*,*,#14801,.T.); +#7394=ORIENTED_EDGE('',*,*,#14802,.T.); +#7395=ORIENTED_EDGE('',*,*,#14803,.T.); +#7396=ORIENTED_EDGE('',*,*,#14804,.T.); +#7397=ORIENTED_EDGE('',*,*,#14805,.T.); +#7398=ORIENTED_EDGE('',*,*,#14806,.T.); +#7399=ORIENTED_EDGE('',*,*,#14807,.T.); +#7400=ORIENTED_EDGE('',*,*,#14808,.F.); +#7401=ORIENTED_EDGE('',*,*,#14809,.T.); +#7402=ORIENTED_EDGE('',*,*,#14810,.T.); +#7403=ORIENTED_EDGE('',*,*,#14811,.F.); +#7404=ORIENTED_EDGE('',*,*,#14812,.T.); +#7405=ORIENTED_EDGE('',*,*,#14813,.T.); +#7406=ORIENTED_EDGE('',*,*,#14814,.F.); +#7407=ORIENTED_EDGE('',*,*,#14815,.T.); +#7408=ORIENTED_EDGE('',*,*,#14816,.T.); +#7409=ORIENTED_EDGE('',*,*,#14817,.T.); +#7410=ORIENTED_EDGE('',*,*,#14818,.T.); +#7411=ORIENTED_EDGE('',*,*,#14819,.T.); +#7412=ORIENTED_EDGE('',*,*,#14820,.T.); +#7413=ORIENTED_EDGE('',*,*,#14821,.T.); +#7414=ORIENTED_EDGE('',*,*,#14822,.F.); +#7415=ORIENTED_EDGE('',*,*,#14823,.T.); +#7416=ORIENTED_EDGE('',*,*,#14824,.T.); +#7417=ORIENTED_EDGE('',*,*,#14825,.F.); +#7418=ORIENTED_EDGE('',*,*,#14826,.T.); +#7419=ORIENTED_EDGE('',*,*,#14827,.T.); +#7420=ORIENTED_EDGE('',*,*,#14828,.F.); +#7421=ORIENTED_EDGE('',*,*,#14829,.T.); +#7422=ORIENTED_EDGE('',*,*,#14830,.T.); +#7423=ORIENTED_EDGE('',*,*,#14831,.T.); +#7424=ORIENTED_EDGE('',*,*,#14832,.T.); +#7425=ORIENTED_EDGE('',*,*,#14833,.T.); +#7426=ORIENTED_EDGE('',*,*,#14834,.T.); +#7427=ORIENTED_EDGE('',*,*,#14835,.T.); +#7428=ORIENTED_EDGE('',*,*,#14836,.F.); +#7429=ORIENTED_EDGE('',*,*,#14837,.T.); +#7430=ORIENTED_EDGE('',*,*,#14838,.T.); +#7431=ORIENTED_EDGE('',*,*,#14839,.F.); +#7432=ORIENTED_EDGE('',*,*,#14840,.T.); +#7433=ORIENTED_EDGE('',*,*,#14841,.T.); +#7434=ORIENTED_EDGE('',*,*,#14842,.F.); +#7435=ORIENTED_EDGE('',*,*,#14843,.T.); +#7436=ORIENTED_EDGE('',*,*,#14844,.T.); +#7437=ORIENTED_EDGE('',*,*,#14845,.T.); +#7438=ORIENTED_EDGE('',*,*,#14846,.T.); +#7439=ORIENTED_EDGE('',*,*,#14847,.T.); +#7440=ORIENTED_EDGE('',*,*,#14848,.T.); +#7441=ORIENTED_EDGE('',*,*,#14849,.T.); +#7442=ORIENTED_EDGE('',*,*,#14850,.F.); +#7443=ORIENTED_EDGE('',*,*,#14851,.T.); +#7444=ORIENTED_EDGE('',*,*,#14852,.T.); +#7445=ORIENTED_EDGE('',*,*,#14853,.F.); +#7446=ORIENTED_EDGE('',*,*,#14854,.T.); +#7447=ORIENTED_EDGE('',*,*,#14855,.T.); +#7448=ORIENTED_EDGE('',*,*,#14856,.F.); +#7449=ORIENTED_EDGE('',*,*,#14857,.T.); +#7450=ORIENTED_EDGE('',*,*,#14858,.T.); +#7451=ORIENTED_EDGE('',*,*,#14859,.T.); +#7452=ORIENTED_EDGE('',*,*,#14860,.T.); +#7453=ORIENTED_EDGE('',*,*,#14861,.T.); +#7454=ORIENTED_EDGE('',*,*,#14862,.T.); +#7455=ORIENTED_EDGE('',*,*,#14863,.T.); +#7456=ORIENTED_EDGE('',*,*,#14864,.F.); +#7457=ORIENTED_EDGE('',*,*,#14865,.T.); +#7458=ORIENTED_EDGE('',*,*,#14866,.T.); +#7459=ORIENTED_EDGE('',*,*,#14867,.F.); +#7460=ORIENTED_EDGE('',*,*,#14868,.T.); +#7461=ORIENTED_EDGE('',*,*,#14869,.T.); +#7462=ORIENTED_EDGE('',*,*,#14870,.F.); +#7463=ORIENTED_EDGE('',*,*,#14871,.T.); +#7464=ORIENTED_EDGE('',*,*,#14872,.T.); +#7465=ORIENTED_EDGE('',*,*,#14873,.T.); +#7466=ORIENTED_EDGE('',*,*,#14874,.T.); +#7467=ORIENTED_EDGE('',*,*,#14875,.T.); +#7468=ORIENTED_EDGE('',*,*,#14876,.T.); +#7469=ORIENTED_EDGE('',*,*,#14877,.T.); +#7470=ORIENTED_EDGE('',*,*,#14878,.F.); +#7471=ORIENTED_EDGE('',*,*,#14879,.T.); +#7472=ORIENTED_EDGE('',*,*,#14880,.T.); +#7473=ORIENTED_EDGE('',*,*,#14881,.F.); +#7474=ORIENTED_EDGE('',*,*,#14882,.T.); +#7475=ORIENTED_EDGE('',*,*,#14883,.T.); +#7476=ORIENTED_EDGE('',*,*,#14884,.F.); +#7477=ORIENTED_EDGE('',*,*,#14885,.T.); +#7478=ORIENTED_EDGE('',*,*,#14886,.T.); +#7479=ORIENTED_EDGE('',*,*,#14887,.T.); +#7480=ORIENTED_EDGE('',*,*,#14888,.T.); +#7481=ORIENTED_EDGE('',*,*,#14889,.T.); +#7482=ORIENTED_EDGE('',*,*,#14890,.T.); +#7483=ORIENTED_EDGE('',*,*,#14891,.T.); +#7484=ORIENTED_EDGE('',*,*,#14892,.F.); +#7485=ORIENTED_EDGE('',*,*,#14893,.T.); +#7486=ORIENTED_EDGE('',*,*,#14894,.T.); +#7487=ORIENTED_EDGE('',*,*,#14895,.F.); +#7488=ORIENTED_EDGE('',*,*,#14896,.T.); +#7489=ORIENTED_EDGE('',*,*,#14897,.T.); +#7490=ORIENTED_EDGE('',*,*,#14898,.F.); +#7491=ORIENTED_EDGE('',*,*,#14899,.T.); +#7492=ORIENTED_EDGE('',*,*,#14900,.T.); +#7493=ORIENTED_EDGE('',*,*,#14901,.F.); +#7494=ORIENTED_EDGE('',*,*,#14902,.T.); +#7495=ORIENTED_EDGE('',*,*,#14903,.T.); +#7496=ORIENTED_EDGE('',*,*,#14904,.F.); +#7497=ORIENTED_EDGE('',*,*,#14905,.F.); +#7498=ORIENTED_EDGE('',*,*,#14906,.F.); +#7499=ORIENTED_EDGE('',*,*,#14907,.F.); +#7500=ORIENTED_EDGE('',*,*,#14908,.T.); +#7501=ORIENTED_EDGE('',*,*,#14909,.T.); +#7502=ORIENTED_EDGE('',*,*,#14910,.F.); +#7503=ORIENTED_EDGE('',*,*,#14911,.T.); +#7504=ORIENTED_EDGE('',*,*,#14912,.T.); +#7505=ORIENTED_EDGE('',*,*,#14913,.T.); +#7506=ORIENTED_EDGE('',*,*,#14914,.T.); +#7507=ORIENTED_EDGE('',*,*,#14915,.T.); +#7508=ORIENTED_EDGE('',*,*,#14916,.F.); +#7509=ORIENTED_EDGE('',*,*,#14917,.T.); +#7510=ORIENTED_EDGE('',*,*,#14918,.T.); +#7511=ORIENTED_EDGE('',*,*,#14919,.T.); +#7512=ORIENTED_EDGE('',*,*,#14920,.T.); +#7513=ORIENTED_EDGE('',*,*,#14921,.T.); +#7514=ORIENTED_EDGE('',*,*,#14922,.T.); +#7515=ORIENTED_EDGE('',*,*,#14923,.T.); +#7516=ORIENTED_EDGE('',*,*,#14924,.F.); +#7517=ORIENTED_EDGE('',*,*,#14925,.T.); +#7518=ORIENTED_EDGE('',*,*,#14926,.T.); +#7519=ORIENTED_EDGE('',*,*,#14927,.T.); +#7520=ORIENTED_EDGE('',*,*,#14928,.T.); +#7521=ORIENTED_EDGE('',*,*,#14929,.T.); +#7522=ORIENTED_EDGE('',*,*,#14930,.F.); +#7523=ORIENTED_EDGE('',*,*,#14931,.T.); +#7524=ORIENTED_EDGE('',*,*,#14932,.T.); +#7525=ORIENTED_EDGE('',*,*,#14933,.T.); +#7526=ORIENTED_EDGE('',*,*,#14934,.T.); +#7527=ORIENTED_EDGE('',*,*,#14935,.T.); +#7528=ORIENTED_EDGE('',*,*,#14936,.T.); +#7529=ORIENTED_EDGE('',*,*,#14937,.T.); +#7530=ORIENTED_EDGE('',*,*,#14938,.F.); +#7531=ORIENTED_EDGE('',*,*,#14939,.T.); +#7532=ORIENTED_EDGE('',*,*,#14940,.T.); +#7533=ORIENTED_EDGE('',*,*,#14941,.T.); +#7534=ORIENTED_EDGE('',*,*,#14942,.T.); +#7535=ORIENTED_EDGE('',*,*,#14943,.T.); +#7536=ORIENTED_EDGE('',*,*,#14944,.F.); +#7537=ORIENTED_EDGE('',*,*,#14945,.T.); +#7538=ORIENTED_EDGE('',*,*,#14946,.T.); +#7539=ORIENTED_EDGE('',*,*,#14947,.T.); +#7540=ORIENTED_EDGE('',*,*,#14948,.T.); +#7541=ORIENTED_EDGE('',*,*,#14949,.T.); +#7542=ORIENTED_EDGE('',*,*,#14950,.T.); +#7543=ORIENTED_EDGE('',*,*,#14951,.T.); +#7544=ORIENTED_EDGE('',*,*,#14952,.F.); +#7545=ORIENTED_EDGE('',*,*,#14953,.T.); +#7546=ORIENTED_EDGE('',*,*,#14954,.T.); +#7547=ORIENTED_EDGE('',*,*,#14955,.T.); +#7548=ORIENTED_EDGE('',*,*,#14956,.T.); +#7549=ORIENTED_EDGE('',*,*,#14957,.T.); +#7550=ORIENTED_EDGE('',*,*,#14958,.F.); +#7551=ORIENTED_EDGE('',*,*,#14959,.T.); +#7552=ORIENTED_EDGE('',*,*,#14960,.T.); +#7553=ORIENTED_EDGE('',*,*,#14961,.T.); +#7554=ORIENTED_EDGE('',*,*,#14962,.T.); +#7555=ORIENTED_EDGE('',*,*,#14963,.T.); +#7556=ORIENTED_EDGE('',*,*,#14964,.T.); +#7557=ORIENTED_EDGE('',*,*,#14965,.T.); +#7558=ORIENTED_EDGE('',*,*,#14966,.F.); +#7559=ORIENTED_EDGE('',*,*,#14967,.T.); +#7560=ORIENTED_EDGE('',*,*,#14968,.T.); +#7561=ORIENTED_EDGE('',*,*,#14969,.T.); +#7562=ORIENTED_EDGE('',*,*,#14970,.T.); +#7563=ORIENTED_EDGE('',*,*,#14971,.T.); +#7564=ORIENTED_EDGE('',*,*,#14972,.F.); +#7565=ORIENTED_EDGE('',*,*,#14973,.T.); +#7566=ORIENTED_EDGE('',*,*,#14974,.T.); +#7567=ORIENTED_EDGE('',*,*,#14975,.T.); +#7568=ORIENTED_EDGE('',*,*,#14976,.T.); +#7569=ORIENTED_EDGE('',*,*,#14977,.T.); +#7570=ORIENTED_EDGE('',*,*,#14978,.T.); +#7571=ORIENTED_EDGE('',*,*,#14979,.T.); +#7572=ORIENTED_EDGE('',*,*,#14980,.F.); +#7573=ORIENTED_EDGE('',*,*,#14981,.T.); +#7574=ORIENTED_EDGE('',*,*,#14982,.T.); +#7575=ORIENTED_EDGE('',*,*,#14983,.T.); +#7576=ORIENTED_EDGE('',*,*,#14984,.T.); +#7577=ORIENTED_EDGE('',*,*,#14985,.T.); +#7578=ORIENTED_EDGE('',*,*,#14986,.F.); +#7579=ORIENTED_EDGE('',*,*,#14987,.T.); +#7580=ORIENTED_EDGE('',*,*,#14988,.T.); +#7581=ORIENTED_EDGE('',*,*,#14989,.T.); +#7582=ORIENTED_EDGE('',*,*,#14990,.T.); +#7583=ORIENTED_EDGE('',*,*,#14991,.T.); +#7584=ORIENTED_EDGE('',*,*,#14992,.T.); +#7585=ORIENTED_EDGE('',*,*,#14993,.T.); +#7586=ORIENTED_EDGE('',*,*,#14994,.F.); +#7587=ORIENTED_EDGE('',*,*,#14995,.T.); +#7588=ORIENTED_EDGE('',*,*,#14996,.T.); +#7589=ORIENTED_EDGE('',*,*,#14997,.T.); +#7590=ORIENTED_EDGE('',*,*,#14998,.T.); +#7591=ORIENTED_EDGE('',*,*,#14999,.T.); +#7592=ORIENTED_EDGE('',*,*,#15000,.F.); +#7593=ORIENTED_EDGE('',*,*,#15001,.T.); +#7594=ORIENTED_EDGE('',*,*,#15002,.T.); +#7595=ORIENTED_EDGE('',*,*,#15003,.T.); +#7596=ORIENTED_EDGE('',*,*,#15004,.T.); +#7597=ORIENTED_EDGE('',*,*,#15005,.T.); +#7598=ORIENTED_EDGE('',*,*,#15006,.T.); +#7599=ORIENTED_EDGE('',*,*,#15007,.T.); +#7600=ORIENTED_EDGE('',*,*,#15008,.F.); +#7601=ORIENTED_EDGE('',*,*,#15009,.T.); +#7602=ORIENTED_EDGE('',*,*,#15010,.T.); +#7603=ORIENTED_EDGE('',*,*,#15011,.T.); +#7604=ORIENTED_EDGE('',*,*,#15012,.T.); +#7605=ORIENTED_EDGE('',*,*,#15013,.T.); +#7606=ORIENTED_EDGE('',*,*,#15014,.F.); +#7607=ORIENTED_EDGE('',*,*,#15015,.T.); +#7608=ORIENTED_EDGE('',*,*,#15016,.T.); +#7609=ORIENTED_EDGE('',*,*,#15017,.T.); +#7610=ORIENTED_EDGE('',*,*,#15018,.T.); +#7611=ORIENTED_EDGE('',*,*,#15019,.T.); +#7612=ORIENTED_EDGE('',*,*,#15020,.T.); +#7613=ORIENTED_EDGE('',*,*,#15021,.T.); +#7614=ORIENTED_EDGE('',*,*,#15022,.F.); +#7615=ORIENTED_EDGE('',*,*,#15023,.T.); +#7616=ORIENTED_EDGE('',*,*,#15024,.T.); +#7617=ORIENTED_EDGE('',*,*,#15025,.T.); +#7618=ORIENTED_EDGE('',*,*,#15026,.T.); +#7619=ORIENTED_EDGE('',*,*,#15027,.T.); +#7620=ORIENTED_EDGE('',*,*,#15028,.F.); +#7621=ORIENTED_EDGE('',*,*,#15029,.T.); +#7622=ORIENTED_EDGE('',*,*,#15030,.T.); +#7623=ORIENTED_EDGE('',*,*,#15031,.T.); +#7624=ORIENTED_EDGE('',*,*,#15032,.T.); +#7625=ORIENTED_EDGE('',*,*,#15033,.T.); +#7626=ORIENTED_EDGE('',*,*,#15034,.T.); +#7627=ORIENTED_EDGE('',*,*,#15035,.T.); +#7628=ORIENTED_EDGE('',*,*,#15036,.F.); +#7629=ORIENTED_EDGE('',*,*,#15037,.T.); +#7630=ORIENTED_EDGE('',*,*,#15038,.T.); +#7631=ORIENTED_EDGE('',*,*,#15039,.T.); +#7632=ORIENTED_EDGE('',*,*,#15040,.T.); +#7633=ORIENTED_EDGE('',*,*,#15041,.T.); +#7634=ORIENTED_EDGE('',*,*,#15042,.F.); +#7635=ORIENTED_EDGE('',*,*,#15043,.T.); +#7636=ORIENTED_EDGE('',*,*,#15044,.T.); +#7637=ORIENTED_EDGE('',*,*,#15045,.T.); +#7638=ORIENTED_EDGE('',*,*,#15046,.T.); +#7639=ORIENTED_EDGE('',*,*,#15047,.T.); +#7640=ORIENTED_EDGE('',*,*,#15048,.T.); +#7641=ORIENTED_EDGE('',*,*,#15049,.T.); +#7642=ORIENTED_EDGE('',*,*,#15050,.F.); +#7643=ORIENTED_EDGE('',*,*,#15051,.T.); +#7644=ORIENTED_EDGE('',*,*,#15052,.T.); +#7645=ORIENTED_EDGE('',*,*,#15053,.T.); +#7646=ORIENTED_EDGE('',*,*,#15054,.T.); +#7647=ORIENTED_EDGE('',*,*,#15055,.T.); +#7648=ORIENTED_EDGE('',*,*,#15056,.F.); +#7649=ORIENTED_EDGE('',*,*,#15057,.T.); +#7650=ORIENTED_EDGE('',*,*,#15058,.T.); +#7651=ORIENTED_EDGE('',*,*,#15059,.T.); +#7652=ORIENTED_EDGE('',*,*,#15060,.T.); +#7653=ORIENTED_EDGE('',*,*,#15061,.T.); +#7654=ORIENTED_EDGE('',*,*,#15062,.T.); +#7655=ORIENTED_EDGE('',*,*,#15063,.T.); +#7656=ORIENTED_EDGE('',*,*,#15064,.F.); +#7657=ORIENTED_EDGE('',*,*,#15065,.T.); +#7658=ORIENTED_EDGE('',*,*,#15066,.T.); +#7659=ORIENTED_EDGE('',*,*,#15067,.T.); +#7660=ORIENTED_EDGE('',*,*,#15068,.T.); +#7661=ORIENTED_EDGE('',*,*,#15069,.T.); +#7662=ORIENTED_EDGE('',*,*,#15070,.F.); +#7663=ORIENTED_EDGE('',*,*,#15071,.T.); +#7664=ORIENTED_EDGE('',*,*,#15072,.T.); +#7665=ORIENTED_EDGE('',*,*,#15073,.T.); +#7666=ORIENTED_EDGE('',*,*,#15074,.T.); +#7667=ORIENTED_EDGE('',*,*,#15075,.T.); +#7668=ORIENTED_EDGE('',*,*,#15076,.T.); +#7669=ORIENTED_EDGE('',*,*,#15077,.T.); +#7670=ORIENTED_EDGE('',*,*,#15078,.F.); +#7671=ORIENTED_EDGE('',*,*,#15079,.T.); +#7672=ORIENTED_EDGE('',*,*,#15080,.T.); +#7673=ORIENTED_EDGE('',*,*,#15081,.T.); +#7674=ORIENTED_EDGE('',*,*,#15082,.T.); +#7675=ORIENTED_EDGE('',*,*,#15083,.T.); +#7676=ORIENTED_EDGE('',*,*,#15084,.F.); +#7677=ORIENTED_EDGE('',*,*,#15085,.T.); +#7678=ORIENTED_EDGE('',*,*,#15086,.T.); +#7679=ORIENTED_EDGE('',*,*,#15087,.T.); +#7680=ORIENTED_EDGE('',*,*,#15088,.T.); +#7681=ORIENTED_EDGE('',*,*,#15089,.T.); +#7682=ORIENTED_EDGE('',*,*,#15090,.T.); +#7683=ORIENTED_EDGE('',*,*,#15091,.T.); +#7684=ORIENTED_EDGE('',*,*,#15092,.F.); +#7685=ORIENTED_EDGE('',*,*,#15093,.T.); +#7686=ORIENTED_EDGE('',*,*,#15094,.T.); +#7687=ORIENTED_EDGE('',*,*,#15095,.T.); +#7688=ORIENTED_EDGE('',*,*,#15096,.T.); +#7689=ORIENTED_EDGE('',*,*,#15097,.T.); +#7690=ORIENTED_EDGE('',*,*,#15098,.F.); +#7691=ORIENTED_EDGE('',*,*,#15099,.T.); +#7692=ORIENTED_EDGE('',*,*,#15100,.T.); +#7693=ORIENTED_EDGE('',*,*,#15101,.T.); +#7694=ORIENTED_EDGE('',*,*,#15102,.T.); +#7695=ORIENTED_EDGE('',*,*,#15103,.T.); +#7696=ORIENTED_EDGE('',*,*,#15104,.T.); +#7697=ORIENTED_EDGE('',*,*,#15105,.T.); +#7698=ORIENTED_EDGE('',*,*,#15106,.F.); +#7699=ORIENTED_EDGE('',*,*,#15107,.T.); +#7700=ORIENTED_EDGE('',*,*,#15108,.T.); +#7701=ORIENTED_EDGE('',*,*,#15109,.T.); +#7702=ORIENTED_EDGE('',*,*,#15110,.T.); +#7703=ORIENTED_EDGE('',*,*,#15111,.T.); +#7704=ORIENTED_EDGE('',*,*,#15112,.F.); +#7705=ORIENTED_EDGE('',*,*,#15113,.T.); +#7706=ORIENTED_EDGE('',*,*,#15114,.T.); +#7707=ORIENTED_EDGE('',*,*,#15115,.T.); +#7708=ORIENTED_EDGE('',*,*,#15116,.T.); +#7709=ORIENTED_EDGE('',*,*,#15117,.T.); +#7710=ORIENTED_EDGE('',*,*,#15118,.T.); +#7711=ORIENTED_EDGE('',*,*,#15119,.T.); +#7712=ORIENTED_EDGE('',*,*,#15120,.F.); +#7713=ORIENTED_EDGE('',*,*,#15121,.T.); +#7714=ORIENTED_EDGE('',*,*,#15122,.T.); +#7715=ORIENTED_EDGE('',*,*,#15123,.T.); +#7716=ORIENTED_EDGE('',*,*,#15124,.T.); +#7717=ORIENTED_EDGE('',*,*,#15125,.T.); +#7718=ORIENTED_EDGE('',*,*,#15126,.F.); +#7719=ORIENTED_EDGE('',*,*,#15127,.T.); +#7720=ORIENTED_EDGE('',*,*,#15128,.T.); +#7721=ORIENTED_EDGE('',*,*,#15129,.T.); +#7722=ORIENTED_EDGE('',*,*,#15130,.T.); +#7723=ORIENTED_EDGE('',*,*,#15131,.T.); +#7724=ORIENTED_EDGE('',*,*,#15132,.T.); +#7725=ORIENTED_EDGE('',*,*,#15133,.T.); +#7726=ORIENTED_EDGE('',*,*,#15134,.F.); +#7727=ORIENTED_EDGE('',*,*,#15135,.T.); +#7728=ORIENTED_EDGE('',*,*,#15136,.T.); +#7729=ORIENTED_EDGE('',*,*,#15137,.T.); +#7730=ORIENTED_EDGE('',*,*,#15138,.T.); +#7731=ORIENTED_EDGE('',*,*,#15139,.T.); +#7732=ORIENTED_EDGE('',*,*,#15140,.F.); +#7733=ORIENTED_EDGE('',*,*,#15141,.T.); +#7734=ORIENTED_EDGE('',*,*,#15142,.T.); +#7735=ORIENTED_EDGE('',*,*,#15143,.T.); +#7736=ORIENTED_EDGE('',*,*,#15144,.T.); +#7737=ORIENTED_EDGE('',*,*,#15145,.T.); +#7738=ORIENTED_EDGE('',*,*,#15146,.T.); +#7739=ORIENTED_EDGE('',*,*,#15147,.T.); +#7740=ORIENTED_EDGE('',*,*,#15148,.F.); +#7741=ORIENTED_EDGE('',*,*,#15149,.T.); +#7742=ORIENTED_EDGE('',*,*,#15150,.T.); +#7743=ORIENTED_EDGE('',*,*,#15151,.T.); +#7744=ORIENTED_EDGE('',*,*,#15152,.T.); +#7745=ORIENTED_EDGE('',*,*,#15153,.T.); +#7746=ORIENTED_EDGE('',*,*,#15154,.F.); +#7747=ORIENTED_EDGE('',*,*,#15155,.T.); +#7748=ORIENTED_EDGE('',*,*,#15156,.T.); +#7749=ORIENTED_EDGE('',*,*,#15157,.T.); +#7750=ORIENTED_EDGE('',*,*,#15158,.T.); +#7751=ORIENTED_EDGE('',*,*,#15159,.T.); +#7752=ORIENTED_EDGE('',*,*,#15160,.T.); +#7753=ORIENTED_EDGE('',*,*,#15161,.T.); +#7754=ORIENTED_EDGE('',*,*,#15162,.F.); +#7755=ORIENTED_EDGE('',*,*,#15163,.T.); +#7756=ORIENTED_EDGE('',*,*,#15164,.T.); +#7757=ORIENTED_EDGE('',*,*,#15165,.T.); +#7758=ORIENTED_EDGE('',*,*,#15166,.T.); +#7759=ORIENTED_EDGE('',*,*,#15167,.T.); +#7760=ORIENTED_EDGE('',*,*,#15168,.F.); +#7761=ORIENTED_EDGE('',*,*,#15169,.T.); +#7762=ORIENTED_EDGE('',*,*,#15170,.T.); +#7763=ORIENTED_EDGE('',*,*,#15171,.T.); +#7764=ORIENTED_EDGE('',*,*,#15172,.T.); +#7765=ORIENTED_EDGE('',*,*,#15173,.T.); +#7766=ORIENTED_EDGE('',*,*,#15174,.T.); +#7767=ORIENTED_EDGE('',*,*,#15175,.T.); +#7768=ORIENTED_EDGE('',*,*,#15176,.F.); +#7769=ORIENTED_EDGE('',*,*,#15177,.T.); +#7770=ORIENTED_EDGE('',*,*,#15178,.T.); +#7771=ORIENTED_EDGE('',*,*,#15179,.T.); +#7772=ORIENTED_EDGE('',*,*,#15180,.T.); +#7773=ORIENTED_EDGE('',*,*,#15181,.T.); +#7774=ORIENTED_EDGE('',*,*,#15182,.F.); +#7775=ORIENTED_EDGE('',*,*,#15183,.T.); +#7776=ORIENTED_EDGE('',*,*,#15184,.T.); +#7777=ORIENTED_EDGE('',*,*,#15185,.T.); +#7778=ORIENTED_EDGE('',*,*,#15186,.F.); +#7779=ORIENTED_EDGE('',*,*,#15187,.T.); +#7780=ORIENTED_EDGE('',*,*,#15188,.F.); +#7781=ORIENTED_EDGE('',*,*,#15187,.F.); +#7782=ORIENTED_EDGE('',*,*,#15189,.F.); +#7783=ORIENTED_EDGE('',*,*,#14053,.T.); +#7784=ORIENTED_EDGE('',*,*,#14621,.T.); +#7785=ORIENTED_EDGE('',*,*,#15190,.T.); +#7786=ORIENTED_EDGE('',*,*,#14619,.F.); +#7787=ORIENTED_EDGE('',*,*,#15191,.T.); +#7788=ORIENTED_EDGE('',*,*,#14337,.T.); +#7789=ORIENTED_EDGE('',*,*,#15192,.T.); +#7790=ORIENTED_EDGE('',*,*,#14903,.F.); +#7791=ORIENTED_EDGE('',*,*,#15193,.T.); +#7792=ORIENTED_EDGE('',*,*,#15194,.F.); +#7793=ORIENTED_EDGE('',*,*,#14335,.F.); +#7794=ORIENTED_EDGE('',*,*,#15195,.F.); +#7795=ORIENTED_EDGE('',*,*,#14905,.T.); +#7796=ORIENTED_EDGE('',*,*,#14636,.F.); +#7797=ORIENTED_EDGE('',*,*,#15196,.F.); +#7798=ORIENTED_EDGE('',*,*,#15172,.F.); +#7799=ORIENTED_EDGE('',*,*,#15197,.T.); +#7800=ORIENTED_EDGE('',*,*,#14650,.F.); +#7801=ORIENTED_EDGE('',*,*,#15198,.F.); +#7802=ORIENTED_EDGE('',*,*,#15158,.F.); +#7803=ORIENTED_EDGE('',*,*,#15199,.T.); +#7804=ORIENTED_EDGE('',*,*,#14664,.F.); +#7805=ORIENTED_EDGE('',*,*,#15200,.F.); +#7806=ORIENTED_EDGE('',*,*,#15144,.F.); +#7807=ORIENTED_EDGE('',*,*,#15201,.T.); +#7808=ORIENTED_EDGE('',*,*,#14678,.F.); +#7809=ORIENTED_EDGE('',*,*,#15202,.F.); +#7810=ORIENTED_EDGE('',*,*,#15130,.F.); +#7811=ORIENTED_EDGE('',*,*,#15203,.T.); +#7812=ORIENTED_EDGE('',*,*,#14692,.F.); +#7813=ORIENTED_EDGE('',*,*,#15204,.F.); +#7814=ORIENTED_EDGE('',*,*,#15116,.F.); +#7815=ORIENTED_EDGE('',*,*,#15205,.T.); +#7816=ORIENTED_EDGE('',*,*,#14706,.F.); +#7817=ORIENTED_EDGE('',*,*,#15206,.F.); +#7818=ORIENTED_EDGE('',*,*,#15102,.F.); +#7819=ORIENTED_EDGE('',*,*,#15207,.T.); +#7820=ORIENTED_EDGE('',*,*,#14720,.F.); +#7821=ORIENTED_EDGE('',*,*,#15208,.F.); +#7822=ORIENTED_EDGE('',*,*,#15088,.F.); +#7823=ORIENTED_EDGE('',*,*,#15209,.T.); +#7824=ORIENTED_EDGE('',*,*,#14734,.F.); +#7825=ORIENTED_EDGE('',*,*,#15210,.F.); +#7826=ORIENTED_EDGE('',*,*,#15074,.F.); +#7827=ORIENTED_EDGE('',*,*,#15211,.T.); +#7828=ORIENTED_EDGE('',*,*,#14748,.F.); +#7829=ORIENTED_EDGE('',*,*,#15212,.F.); +#7830=ORIENTED_EDGE('',*,*,#15060,.F.); +#7831=ORIENTED_EDGE('',*,*,#15213,.T.); +#7832=ORIENTED_EDGE('',*,*,#14762,.F.); +#7833=ORIENTED_EDGE('',*,*,#15214,.F.); +#7834=ORIENTED_EDGE('',*,*,#15046,.F.); +#7835=ORIENTED_EDGE('',*,*,#15215,.T.); +#7836=ORIENTED_EDGE('',*,*,#14776,.F.); +#7837=ORIENTED_EDGE('',*,*,#15216,.F.); +#7838=ORIENTED_EDGE('',*,*,#15032,.F.); +#7839=ORIENTED_EDGE('',*,*,#15217,.T.); +#7840=ORIENTED_EDGE('',*,*,#14790,.F.); +#7841=ORIENTED_EDGE('',*,*,#15218,.F.); +#7842=ORIENTED_EDGE('',*,*,#15018,.F.); +#7843=ORIENTED_EDGE('',*,*,#15219,.T.); +#7844=ORIENTED_EDGE('',*,*,#14804,.F.); +#7845=ORIENTED_EDGE('',*,*,#15220,.F.); +#7846=ORIENTED_EDGE('',*,*,#15004,.F.); +#7847=ORIENTED_EDGE('',*,*,#15221,.T.); +#7848=ORIENTED_EDGE('',*,*,#14818,.F.); +#7849=ORIENTED_EDGE('',*,*,#15222,.F.); +#7850=ORIENTED_EDGE('',*,*,#14990,.F.); +#7851=ORIENTED_EDGE('',*,*,#15223,.T.); +#7852=ORIENTED_EDGE('',*,*,#14832,.F.); +#7853=ORIENTED_EDGE('',*,*,#15224,.F.); +#7854=ORIENTED_EDGE('',*,*,#14976,.F.); +#7855=ORIENTED_EDGE('',*,*,#15225,.T.); +#7856=ORIENTED_EDGE('',*,*,#14846,.F.); +#7857=ORIENTED_EDGE('',*,*,#15226,.F.); +#7858=ORIENTED_EDGE('',*,*,#14962,.F.); +#7859=ORIENTED_EDGE('',*,*,#15227,.T.); +#7860=ORIENTED_EDGE('',*,*,#14860,.F.); +#7861=ORIENTED_EDGE('',*,*,#15228,.F.); +#7862=ORIENTED_EDGE('',*,*,#14948,.F.); +#7863=ORIENTED_EDGE('',*,*,#15229,.T.); +#7864=ORIENTED_EDGE('',*,*,#14874,.F.); +#7865=ORIENTED_EDGE('',*,*,#15230,.F.); +#7866=ORIENTED_EDGE('',*,*,#14934,.F.); +#7867=ORIENTED_EDGE('',*,*,#15231,.T.); +#7868=ORIENTED_EDGE('',*,*,#14888,.F.); +#7869=ORIENTED_EDGE('',*,*,#15232,.F.); +#7870=ORIENTED_EDGE('',*,*,#14920,.F.); +#7871=ORIENTED_EDGE('',*,*,#15233,.T.); +#7872=ORIENTED_EDGE('',*,*,#14352,.F.); +#7873=ORIENTED_EDGE('',*,*,#15234,.T.); +#7874=ORIENTED_EDGE('',*,*,#14320,.F.); +#7875=ORIENTED_EDGE('',*,*,#15235,.F.); +#7876=ORIENTED_EDGE('',*,*,#14366,.F.); +#7877=ORIENTED_EDGE('',*,*,#15236,.T.); +#7878=ORIENTED_EDGE('',*,*,#14306,.F.); +#7879=ORIENTED_EDGE('',*,*,#15237,.F.); +#7880=ORIENTED_EDGE('',*,*,#14380,.F.); +#7881=ORIENTED_EDGE('',*,*,#15238,.T.); +#7882=ORIENTED_EDGE('',*,*,#14292,.F.); +#7883=ORIENTED_EDGE('',*,*,#15239,.F.); +#7884=ORIENTED_EDGE('',*,*,#14394,.F.); +#7885=ORIENTED_EDGE('',*,*,#15240,.T.); +#7886=ORIENTED_EDGE('',*,*,#14278,.F.); +#7887=ORIENTED_EDGE('',*,*,#15241,.F.); +#7888=ORIENTED_EDGE('',*,*,#14408,.F.); +#7889=ORIENTED_EDGE('',*,*,#15242,.T.); +#7890=ORIENTED_EDGE('',*,*,#14264,.F.); +#7891=ORIENTED_EDGE('',*,*,#15243,.F.); +#7892=ORIENTED_EDGE('',*,*,#14422,.F.); +#7893=ORIENTED_EDGE('',*,*,#15244,.T.); +#7894=ORIENTED_EDGE('',*,*,#14250,.F.); +#7895=ORIENTED_EDGE('',*,*,#15245,.F.); +#7896=ORIENTED_EDGE('',*,*,#14436,.F.); +#7897=ORIENTED_EDGE('',*,*,#15246,.T.); +#7898=ORIENTED_EDGE('',*,*,#14236,.F.); +#7899=ORIENTED_EDGE('',*,*,#15247,.F.); +#7900=ORIENTED_EDGE('',*,*,#14450,.F.); +#7901=ORIENTED_EDGE('',*,*,#15248,.T.); +#7902=ORIENTED_EDGE('',*,*,#14222,.F.); +#7903=ORIENTED_EDGE('',*,*,#15249,.F.); +#7904=ORIENTED_EDGE('',*,*,#14464,.F.); +#7905=ORIENTED_EDGE('',*,*,#15250,.T.); +#7906=ORIENTED_EDGE('',*,*,#14208,.F.); +#7907=ORIENTED_EDGE('',*,*,#15251,.F.); +#7908=ORIENTED_EDGE('',*,*,#14478,.F.); +#7909=ORIENTED_EDGE('',*,*,#15252,.T.); +#7910=ORIENTED_EDGE('',*,*,#14194,.F.); +#7911=ORIENTED_EDGE('',*,*,#15253,.F.); +#7912=ORIENTED_EDGE('',*,*,#14492,.F.); +#7913=ORIENTED_EDGE('',*,*,#15254,.T.); +#7914=ORIENTED_EDGE('',*,*,#14180,.F.); +#7915=ORIENTED_EDGE('',*,*,#15255,.F.); +#7916=ORIENTED_EDGE('',*,*,#14506,.F.); +#7917=ORIENTED_EDGE('',*,*,#15256,.T.); +#7918=ORIENTED_EDGE('',*,*,#14166,.F.); +#7919=ORIENTED_EDGE('',*,*,#15257,.F.); +#7920=ORIENTED_EDGE('',*,*,#14520,.F.); +#7921=ORIENTED_EDGE('',*,*,#15258,.T.); +#7922=ORIENTED_EDGE('',*,*,#14152,.F.); +#7923=ORIENTED_EDGE('',*,*,#15259,.F.); +#7924=ORIENTED_EDGE('',*,*,#14534,.F.); +#7925=ORIENTED_EDGE('',*,*,#15260,.T.); +#7926=ORIENTED_EDGE('',*,*,#14138,.F.); +#7927=ORIENTED_EDGE('',*,*,#15261,.F.); +#7928=ORIENTED_EDGE('',*,*,#14548,.F.); +#7929=ORIENTED_EDGE('',*,*,#15262,.T.); +#7930=ORIENTED_EDGE('',*,*,#14124,.F.); +#7931=ORIENTED_EDGE('',*,*,#15263,.F.); +#7932=ORIENTED_EDGE('',*,*,#14562,.F.); +#7933=ORIENTED_EDGE('',*,*,#15264,.T.); +#7934=ORIENTED_EDGE('',*,*,#14110,.F.); +#7935=ORIENTED_EDGE('',*,*,#15265,.F.); +#7936=ORIENTED_EDGE('',*,*,#14576,.F.); +#7937=ORIENTED_EDGE('',*,*,#15266,.T.); +#7938=ORIENTED_EDGE('',*,*,#14096,.F.); +#7939=ORIENTED_EDGE('',*,*,#15267,.F.); +#7940=ORIENTED_EDGE('',*,*,#14590,.F.); +#7941=ORIENTED_EDGE('',*,*,#15268,.T.); +#7942=ORIENTED_EDGE('',*,*,#14082,.F.); +#7943=ORIENTED_EDGE('',*,*,#15269,.F.); +#7944=ORIENTED_EDGE('',*,*,#14604,.F.); +#7945=ORIENTED_EDGE('',*,*,#15270,.T.); +#7946=ORIENTED_EDGE('',*,*,#14068,.F.); +#7947=ORIENTED_EDGE('',*,*,#15271,.F.); +#7948=ORIENTED_EDGE('',*,*,#15272,.F.); +#7949=ORIENTED_EDGE('',*,*,#14333,.T.); +#7950=ORIENTED_EDGE('',*,*,#15273,.T.); +#7951=ORIENTED_EDGE('',*,*,#14339,.T.); +#7952=ORIENTED_EDGE('',*,*,#14055,.F.); +#7953=ORIENTED_EDGE('',*,*,#15274,.T.); +#7954=ORIENTED_EDGE('',*,*,#14617,.F.); +#7955=ORIENTED_EDGE('',*,*,#15275,.F.); +#7956=ORIENTED_EDGE('',*,*,#15276,.F.); +#7957=ORIENTED_EDGE('',*,*,#15277,.T.); +#7958=ORIENTED_EDGE('',*,*,#15278,.T.); +#7959=ORIENTED_EDGE('',*,*,#15279,.F.); +#7960=ORIENTED_EDGE('',*,*,#15280,.T.); +#7961=ORIENTED_EDGE('',*,*,#15281,.T.); +#7962=ORIENTED_EDGE('',*,*,#15282,.F.); +#7963=ORIENTED_EDGE('',*,*,#14061,.T.); +#7964=ORIENTED_EDGE('',*,*,#15283,.F.); +#7965=ORIENTED_EDGE('',*,*,#15284,.T.); +#7966=ORIENTED_EDGE('',*,*,#15285,.T.); +#7967=ORIENTED_EDGE('',*,*,#15286,.F.); +#7968=ORIENTED_EDGE('',*,*,#15287,.T.); +#7969=ORIENTED_EDGE('',*,*,#15288,.T.); +#7970=ORIENTED_EDGE('',*,*,#15289,.F.); +#7971=ORIENTED_EDGE('',*,*,#14075,.T.); +#7972=ORIENTED_EDGE('',*,*,#15290,.F.); +#7973=ORIENTED_EDGE('',*,*,#15291,.T.); +#7974=ORIENTED_EDGE('',*,*,#15292,.T.); +#7975=ORIENTED_EDGE('',*,*,#15293,.F.); +#7976=ORIENTED_EDGE('',*,*,#15294,.T.); +#7977=ORIENTED_EDGE('',*,*,#15295,.T.); +#7978=ORIENTED_EDGE('',*,*,#15296,.F.); +#7979=ORIENTED_EDGE('',*,*,#14089,.T.); +#7980=ORIENTED_EDGE('',*,*,#15297,.F.); +#7981=ORIENTED_EDGE('',*,*,#15298,.T.); +#7982=ORIENTED_EDGE('',*,*,#15299,.T.); +#7983=ORIENTED_EDGE('',*,*,#15300,.F.); +#7984=ORIENTED_EDGE('',*,*,#15301,.T.); +#7985=ORIENTED_EDGE('',*,*,#15302,.T.); +#7986=ORIENTED_EDGE('',*,*,#15303,.F.); +#7987=ORIENTED_EDGE('',*,*,#14103,.T.); +#7988=ORIENTED_EDGE('',*,*,#15304,.F.); +#7989=ORIENTED_EDGE('',*,*,#15305,.T.); +#7990=ORIENTED_EDGE('',*,*,#15306,.T.); +#7991=ORIENTED_EDGE('',*,*,#15307,.F.); +#7992=ORIENTED_EDGE('',*,*,#15308,.T.); +#7993=ORIENTED_EDGE('',*,*,#15309,.T.); +#7994=ORIENTED_EDGE('',*,*,#15310,.F.); +#7995=ORIENTED_EDGE('',*,*,#14117,.T.); +#7996=ORIENTED_EDGE('',*,*,#15311,.F.); +#7997=ORIENTED_EDGE('',*,*,#15312,.T.); +#7998=ORIENTED_EDGE('',*,*,#15313,.T.); +#7999=ORIENTED_EDGE('',*,*,#15314,.F.); +#8000=ORIENTED_EDGE('',*,*,#15315,.T.); +#8001=ORIENTED_EDGE('',*,*,#15316,.T.); +#8002=ORIENTED_EDGE('',*,*,#15317,.F.); +#8003=ORIENTED_EDGE('',*,*,#14131,.T.); +#8004=ORIENTED_EDGE('',*,*,#15318,.F.); +#8005=ORIENTED_EDGE('',*,*,#15319,.T.); +#8006=ORIENTED_EDGE('',*,*,#15320,.T.); +#8007=ORIENTED_EDGE('',*,*,#15321,.F.); +#8008=ORIENTED_EDGE('',*,*,#15322,.T.); +#8009=ORIENTED_EDGE('',*,*,#15323,.T.); +#8010=ORIENTED_EDGE('',*,*,#15324,.F.); +#8011=ORIENTED_EDGE('',*,*,#14145,.T.); +#8012=ORIENTED_EDGE('',*,*,#15325,.F.); +#8013=ORIENTED_EDGE('',*,*,#15326,.T.); +#8014=ORIENTED_EDGE('',*,*,#15327,.T.); +#8015=ORIENTED_EDGE('',*,*,#15328,.F.); +#8016=ORIENTED_EDGE('',*,*,#15329,.T.); +#8017=ORIENTED_EDGE('',*,*,#15330,.T.); +#8018=ORIENTED_EDGE('',*,*,#15331,.F.); +#8019=ORIENTED_EDGE('',*,*,#14159,.T.); +#8020=ORIENTED_EDGE('',*,*,#15332,.F.); +#8021=ORIENTED_EDGE('',*,*,#15333,.T.); +#8022=ORIENTED_EDGE('',*,*,#15334,.T.); +#8023=ORIENTED_EDGE('',*,*,#15335,.F.); +#8024=ORIENTED_EDGE('',*,*,#15336,.T.); +#8025=ORIENTED_EDGE('',*,*,#15337,.T.); +#8026=ORIENTED_EDGE('',*,*,#15338,.F.); +#8027=ORIENTED_EDGE('',*,*,#14173,.T.); +#8028=ORIENTED_EDGE('',*,*,#15339,.F.); +#8029=ORIENTED_EDGE('',*,*,#15340,.T.); +#8030=ORIENTED_EDGE('',*,*,#15341,.T.); +#8031=ORIENTED_EDGE('',*,*,#15342,.F.); +#8032=ORIENTED_EDGE('',*,*,#15343,.T.); +#8033=ORIENTED_EDGE('',*,*,#15344,.T.); +#8034=ORIENTED_EDGE('',*,*,#15345,.F.); +#8035=ORIENTED_EDGE('',*,*,#14187,.T.); +#8036=ORIENTED_EDGE('',*,*,#15346,.F.); +#8037=ORIENTED_EDGE('',*,*,#15347,.T.); +#8038=ORIENTED_EDGE('',*,*,#15348,.T.); +#8039=ORIENTED_EDGE('',*,*,#15349,.F.); +#8040=ORIENTED_EDGE('',*,*,#15350,.T.); +#8041=ORIENTED_EDGE('',*,*,#15351,.T.); +#8042=ORIENTED_EDGE('',*,*,#15352,.F.); +#8043=ORIENTED_EDGE('',*,*,#14201,.T.); +#8044=ORIENTED_EDGE('',*,*,#15353,.F.); +#8045=ORIENTED_EDGE('',*,*,#15354,.T.); +#8046=ORIENTED_EDGE('',*,*,#15355,.T.); +#8047=ORIENTED_EDGE('',*,*,#15356,.F.); +#8048=ORIENTED_EDGE('',*,*,#15357,.T.); +#8049=ORIENTED_EDGE('',*,*,#15358,.T.); +#8050=ORIENTED_EDGE('',*,*,#15359,.F.); +#8051=ORIENTED_EDGE('',*,*,#14215,.T.); +#8052=ORIENTED_EDGE('',*,*,#15360,.F.); +#8053=ORIENTED_EDGE('',*,*,#15361,.T.); +#8054=ORIENTED_EDGE('',*,*,#15362,.T.); +#8055=ORIENTED_EDGE('',*,*,#15363,.F.); +#8056=ORIENTED_EDGE('',*,*,#15364,.T.); +#8057=ORIENTED_EDGE('',*,*,#15365,.T.); +#8058=ORIENTED_EDGE('',*,*,#15366,.F.); +#8059=ORIENTED_EDGE('',*,*,#14229,.T.); +#8060=ORIENTED_EDGE('',*,*,#15367,.F.); +#8061=ORIENTED_EDGE('',*,*,#15368,.T.); +#8062=ORIENTED_EDGE('',*,*,#15369,.T.); +#8063=ORIENTED_EDGE('',*,*,#15370,.F.); +#8064=ORIENTED_EDGE('',*,*,#15371,.T.); +#8065=ORIENTED_EDGE('',*,*,#15372,.T.); +#8066=ORIENTED_EDGE('',*,*,#15373,.F.); +#8067=ORIENTED_EDGE('',*,*,#14243,.T.); +#8068=ORIENTED_EDGE('',*,*,#15374,.F.); +#8069=ORIENTED_EDGE('',*,*,#15375,.T.); +#8070=ORIENTED_EDGE('',*,*,#15376,.T.); +#8071=ORIENTED_EDGE('',*,*,#15377,.F.); +#8072=ORIENTED_EDGE('',*,*,#15378,.T.); +#8073=ORIENTED_EDGE('',*,*,#15379,.T.); +#8074=ORIENTED_EDGE('',*,*,#15380,.F.); +#8075=ORIENTED_EDGE('',*,*,#14257,.T.); +#8076=ORIENTED_EDGE('',*,*,#15381,.F.); +#8077=ORIENTED_EDGE('',*,*,#15382,.T.); +#8078=ORIENTED_EDGE('',*,*,#15383,.T.); +#8079=ORIENTED_EDGE('',*,*,#15384,.F.); +#8080=ORIENTED_EDGE('',*,*,#15385,.T.); +#8081=ORIENTED_EDGE('',*,*,#15386,.T.); +#8082=ORIENTED_EDGE('',*,*,#15387,.F.); +#8083=ORIENTED_EDGE('',*,*,#14271,.T.); +#8084=ORIENTED_EDGE('',*,*,#15388,.F.); +#8085=ORIENTED_EDGE('',*,*,#15389,.T.); +#8086=ORIENTED_EDGE('',*,*,#15390,.T.); +#8087=ORIENTED_EDGE('',*,*,#15391,.F.); +#8088=ORIENTED_EDGE('',*,*,#15392,.T.); +#8089=ORIENTED_EDGE('',*,*,#15393,.T.); +#8090=ORIENTED_EDGE('',*,*,#15394,.F.); +#8091=ORIENTED_EDGE('',*,*,#14285,.T.); +#8092=ORIENTED_EDGE('',*,*,#15395,.F.); +#8093=ORIENTED_EDGE('',*,*,#15396,.T.); +#8094=ORIENTED_EDGE('',*,*,#15397,.T.); +#8095=ORIENTED_EDGE('',*,*,#15398,.F.); +#8096=ORIENTED_EDGE('',*,*,#15399,.T.); +#8097=ORIENTED_EDGE('',*,*,#15400,.T.); +#8098=ORIENTED_EDGE('',*,*,#15401,.F.); +#8099=ORIENTED_EDGE('',*,*,#14299,.T.); +#8100=ORIENTED_EDGE('',*,*,#15402,.F.); +#8101=ORIENTED_EDGE('',*,*,#15403,.T.); +#8102=ORIENTED_EDGE('',*,*,#15404,.T.); +#8103=ORIENTED_EDGE('',*,*,#15405,.F.); +#8104=ORIENTED_EDGE('',*,*,#15406,.T.); +#8105=ORIENTED_EDGE('',*,*,#15407,.T.); +#8106=ORIENTED_EDGE('',*,*,#15408,.F.); +#8107=ORIENTED_EDGE('',*,*,#14313,.T.); +#8108=ORIENTED_EDGE('',*,*,#15409,.F.); +#8109=ORIENTED_EDGE('',*,*,#15410,.T.); +#8110=ORIENTED_EDGE('',*,*,#15411,.T.); +#8111=ORIENTED_EDGE('',*,*,#15412,.F.); +#8112=ORIENTED_EDGE('',*,*,#15413,.T.); +#8113=ORIENTED_EDGE('',*,*,#15414,.T.); +#8114=ORIENTED_EDGE('',*,*,#15415,.F.); +#8115=ORIENTED_EDGE('',*,*,#14327,.T.); +#8116=ORIENTED_EDGE('',*,*,#15416,.T.); +#8117=ORIENTED_EDGE('',*,*,#15417,.T.); +#8118=ORIENTED_EDGE('',*,*,#15418,.F.); +#8119=ORIENTED_EDGE('',*,*,#15419,.T.); +#8120=ORIENTED_EDGE('',*,*,#15420,.T.); +#8121=ORIENTED_EDGE('',*,*,#15279,.T.); +#8122=ORIENTED_EDGE('',*,*,#15421,.T.); +#8123=ORIENTED_EDGE('',*,*,#15422,.T.); +#8124=ORIENTED_EDGE('',*,*,#15423,.F.); +#8125=ORIENTED_EDGE('',*,*,#15424,.T.); +#8126=ORIENTED_EDGE('',*,*,#15425,.T.); +#8127=ORIENTED_EDGE('',*,*,#15286,.T.); +#8128=ORIENTED_EDGE('',*,*,#15426,.T.); +#8129=ORIENTED_EDGE('',*,*,#15427,.T.); +#8130=ORIENTED_EDGE('',*,*,#15428,.F.); +#8131=ORIENTED_EDGE('',*,*,#15429,.T.); +#8132=ORIENTED_EDGE('',*,*,#15430,.T.); +#8133=ORIENTED_EDGE('',*,*,#15293,.T.); +#8134=ORIENTED_EDGE('',*,*,#15431,.T.); +#8135=ORIENTED_EDGE('',*,*,#15432,.T.); +#8136=ORIENTED_EDGE('',*,*,#15433,.F.); +#8137=ORIENTED_EDGE('',*,*,#15434,.T.); +#8138=ORIENTED_EDGE('',*,*,#15435,.T.); +#8139=ORIENTED_EDGE('',*,*,#15300,.T.); +#8140=ORIENTED_EDGE('',*,*,#15436,.T.); +#8141=ORIENTED_EDGE('',*,*,#15437,.T.); +#8142=ORIENTED_EDGE('',*,*,#15438,.F.); +#8143=ORIENTED_EDGE('',*,*,#15439,.T.); +#8144=ORIENTED_EDGE('',*,*,#15440,.T.); +#8145=ORIENTED_EDGE('',*,*,#15307,.T.); +#8146=ORIENTED_EDGE('',*,*,#15441,.T.); +#8147=ORIENTED_EDGE('',*,*,#15442,.T.); +#8148=ORIENTED_EDGE('',*,*,#15443,.F.); +#8149=ORIENTED_EDGE('',*,*,#15444,.T.); +#8150=ORIENTED_EDGE('',*,*,#15445,.T.); +#8151=ORIENTED_EDGE('',*,*,#15314,.T.); +#8152=ORIENTED_EDGE('',*,*,#15446,.T.); +#8153=ORIENTED_EDGE('',*,*,#15447,.T.); +#8154=ORIENTED_EDGE('',*,*,#15448,.F.); +#8155=ORIENTED_EDGE('',*,*,#15449,.T.); +#8156=ORIENTED_EDGE('',*,*,#15450,.T.); +#8157=ORIENTED_EDGE('',*,*,#15321,.T.); +#8158=ORIENTED_EDGE('',*,*,#15451,.T.); +#8159=ORIENTED_EDGE('',*,*,#15452,.T.); +#8160=ORIENTED_EDGE('',*,*,#15453,.F.); +#8161=ORIENTED_EDGE('',*,*,#15454,.T.); +#8162=ORIENTED_EDGE('',*,*,#15455,.T.); +#8163=ORIENTED_EDGE('',*,*,#15328,.T.); +#8164=ORIENTED_EDGE('',*,*,#15456,.T.); +#8165=ORIENTED_EDGE('',*,*,#15457,.T.); +#8166=ORIENTED_EDGE('',*,*,#15458,.F.); +#8167=ORIENTED_EDGE('',*,*,#15459,.T.); +#8168=ORIENTED_EDGE('',*,*,#15460,.T.); +#8169=ORIENTED_EDGE('',*,*,#15335,.T.); +#8170=ORIENTED_EDGE('',*,*,#15461,.T.); +#8171=ORIENTED_EDGE('',*,*,#15462,.T.); +#8172=ORIENTED_EDGE('',*,*,#15463,.F.); +#8173=ORIENTED_EDGE('',*,*,#15464,.T.); +#8174=ORIENTED_EDGE('',*,*,#15465,.T.); +#8175=ORIENTED_EDGE('',*,*,#15342,.T.); +#8176=ORIENTED_EDGE('',*,*,#15466,.T.); +#8177=ORIENTED_EDGE('',*,*,#15467,.T.); +#8178=ORIENTED_EDGE('',*,*,#15468,.F.); +#8179=ORIENTED_EDGE('',*,*,#15469,.T.); +#8180=ORIENTED_EDGE('',*,*,#15470,.T.); +#8181=ORIENTED_EDGE('',*,*,#15349,.T.); +#8182=ORIENTED_EDGE('',*,*,#15471,.T.); +#8183=ORIENTED_EDGE('',*,*,#15472,.T.); +#8184=ORIENTED_EDGE('',*,*,#15473,.F.); +#8185=ORIENTED_EDGE('',*,*,#15474,.T.); +#8186=ORIENTED_EDGE('',*,*,#15475,.T.); +#8187=ORIENTED_EDGE('',*,*,#15356,.T.); +#8188=ORIENTED_EDGE('',*,*,#15476,.T.); +#8189=ORIENTED_EDGE('',*,*,#15477,.T.); +#8190=ORIENTED_EDGE('',*,*,#15478,.F.); +#8191=ORIENTED_EDGE('',*,*,#15479,.T.); +#8192=ORIENTED_EDGE('',*,*,#15480,.T.); +#8193=ORIENTED_EDGE('',*,*,#15363,.T.); +#8194=ORIENTED_EDGE('',*,*,#15481,.T.); +#8195=ORIENTED_EDGE('',*,*,#15482,.T.); +#8196=ORIENTED_EDGE('',*,*,#15483,.F.); +#8197=ORIENTED_EDGE('',*,*,#15484,.T.); +#8198=ORIENTED_EDGE('',*,*,#15485,.T.); +#8199=ORIENTED_EDGE('',*,*,#15370,.T.); +#8200=ORIENTED_EDGE('',*,*,#15486,.T.); +#8201=ORIENTED_EDGE('',*,*,#15487,.T.); +#8202=ORIENTED_EDGE('',*,*,#15488,.F.); +#8203=ORIENTED_EDGE('',*,*,#15489,.T.); +#8204=ORIENTED_EDGE('',*,*,#15490,.T.); +#8205=ORIENTED_EDGE('',*,*,#15377,.T.); +#8206=ORIENTED_EDGE('',*,*,#15491,.T.); +#8207=ORIENTED_EDGE('',*,*,#15492,.T.); +#8208=ORIENTED_EDGE('',*,*,#15493,.F.); +#8209=ORIENTED_EDGE('',*,*,#15494,.T.); +#8210=ORIENTED_EDGE('',*,*,#15495,.T.); +#8211=ORIENTED_EDGE('',*,*,#15384,.T.); +#8212=ORIENTED_EDGE('',*,*,#15496,.T.); +#8213=ORIENTED_EDGE('',*,*,#15497,.T.); +#8214=ORIENTED_EDGE('',*,*,#15498,.F.); +#8215=ORIENTED_EDGE('',*,*,#15499,.T.); +#8216=ORIENTED_EDGE('',*,*,#15500,.T.); +#8217=ORIENTED_EDGE('',*,*,#15391,.T.); +#8218=ORIENTED_EDGE('',*,*,#15501,.T.); +#8219=ORIENTED_EDGE('',*,*,#15502,.T.); +#8220=ORIENTED_EDGE('',*,*,#15503,.F.); +#8221=ORIENTED_EDGE('',*,*,#15504,.T.); +#8222=ORIENTED_EDGE('',*,*,#15505,.T.); +#8223=ORIENTED_EDGE('',*,*,#15398,.T.); +#8224=ORIENTED_EDGE('',*,*,#15506,.T.); +#8225=ORIENTED_EDGE('',*,*,#15507,.T.); +#8226=ORIENTED_EDGE('',*,*,#15508,.F.); +#8227=ORIENTED_EDGE('',*,*,#15509,.T.); +#8228=ORIENTED_EDGE('',*,*,#15510,.T.); +#8229=ORIENTED_EDGE('',*,*,#15405,.T.); +#8230=ORIENTED_EDGE('',*,*,#15511,.F.); +#8231=ORIENTED_EDGE('',*,*,#15512,.T.); +#8232=ORIENTED_EDGE('',*,*,#14611,.F.); +#8233=ORIENTED_EDGE('',*,*,#15513,.T.); +#8234=ORIENTED_EDGE('',*,*,#15514,.F.); +#8235=ORIENTED_EDGE('',*,*,#15418,.T.); +#8236=ORIENTED_EDGE('',*,*,#15515,.F.); +#8237=ORIENTED_EDGE('',*,*,#15516,.T.); +#8238=ORIENTED_EDGE('',*,*,#14597,.F.); +#8239=ORIENTED_EDGE('',*,*,#15517,.T.); +#8240=ORIENTED_EDGE('',*,*,#15518,.F.); +#8241=ORIENTED_EDGE('',*,*,#15423,.T.); +#8242=ORIENTED_EDGE('',*,*,#15519,.F.); +#8243=ORIENTED_EDGE('',*,*,#15520,.T.); +#8244=ORIENTED_EDGE('',*,*,#14583,.F.); +#8245=ORIENTED_EDGE('',*,*,#15521,.T.); +#8246=ORIENTED_EDGE('',*,*,#15522,.F.); +#8247=ORIENTED_EDGE('',*,*,#15428,.T.); +#8248=ORIENTED_EDGE('',*,*,#15523,.F.); +#8249=ORIENTED_EDGE('',*,*,#15524,.T.); +#8250=ORIENTED_EDGE('',*,*,#14569,.F.); +#8251=ORIENTED_EDGE('',*,*,#15525,.T.); +#8252=ORIENTED_EDGE('',*,*,#15526,.F.); +#8253=ORIENTED_EDGE('',*,*,#15433,.T.); +#8254=ORIENTED_EDGE('',*,*,#15527,.F.); +#8255=ORIENTED_EDGE('',*,*,#15528,.T.); +#8256=ORIENTED_EDGE('',*,*,#14555,.F.); +#8257=ORIENTED_EDGE('',*,*,#15529,.T.); +#8258=ORIENTED_EDGE('',*,*,#15530,.F.); +#8259=ORIENTED_EDGE('',*,*,#15438,.T.); +#8260=ORIENTED_EDGE('',*,*,#15531,.F.); +#8261=ORIENTED_EDGE('',*,*,#15532,.T.); +#8262=ORIENTED_EDGE('',*,*,#14541,.F.); +#8263=ORIENTED_EDGE('',*,*,#15533,.T.); +#8264=ORIENTED_EDGE('',*,*,#15534,.F.); +#8265=ORIENTED_EDGE('',*,*,#15443,.T.); +#8266=ORIENTED_EDGE('',*,*,#15535,.F.); +#8267=ORIENTED_EDGE('',*,*,#15536,.T.); +#8268=ORIENTED_EDGE('',*,*,#14527,.F.); +#8269=ORIENTED_EDGE('',*,*,#15537,.T.); +#8270=ORIENTED_EDGE('',*,*,#15538,.F.); +#8271=ORIENTED_EDGE('',*,*,#15448,.T.); +#8272=ORIENTED_EDGE('',*,*,#15539,.F.); +#8273=ORIENTED_EDGE('',*,*,#15540,.T.); +#8274=ORIENTED_EDGE('',*,*,#14513,.F.); +#8275=ORIENTED_EDGE('',*,*,#15541,.T.); +#8276=ORIENTED_EDGE('',*,*,#15542,.F.); +#8277=ORIENTED_EDGE('',*,*,#15453,.T.); +#8278=ORIENTED_EDGE('',*,*,#15543,.F.); +#8279=ORIENTED_EDGE('',*,*,#15544,.T.); +#8280=ORIENTED_EDGE('',*,*,#14499,.F.); +#8281=ORIENTED_EDGE('',*,*,#15545,.T.); +#8282=ORIENTED_EDGE('',*,*,#15546,.F.); +#8283=ORIENTED_EDGE('',*,*,#15458,.T.); +#8284=ORIENTED_EDGE('',*,*,#15547,.F.); +#8285=ORIENTED_EDGE('',*,*,#15548,.T.); +#8286=ORIENTED_EDGE('',*,*,#14485,.F.); +#8287=ORIENTED_EDGE('',*,*,#15549,.T.); +#8288=ORIENTED_EDGE('',*,*,#15550,.F.); +#8289=ORIENTED_EDGE('',*,*,#15463,.T.); +#8290=ORIENTED_EDGE('',*,*,#15551,.F.); +#8291=ORIENTED_EDGE('',*,*,#15552,.T.); +#8292=ORIENTED_EDGE('',*,*,#14471,.F.); +#8293=ORIENTED_EDGE('',*,*,#15553,.T.); +#8294=ORIENTED_EDGE('',*,*,#15554,.F.); +#8295=ORIENTED_EDGE('',*,*,#15468,.T.); +#8296=ORIENTED_EDGE('',*,*,#15555,.F.); +#8297=ORIENTED_EDGE('',*,*,#15556,.T.); +#8298=ORIENTED_EDGE('',*,*,#14457,.F.); +#8299=ORIENTED_EDGE('',*,*,#15557,.T.); +#8300=ORIENTED_EDGE('',*,*,#15558,.F.); +#8301=ORIENTED_EDGE('',*,*,#15473,.T.); +#8302=ORIENTED_EDGE('',*,*,#15559,.F.); +#8303=ORIENTED_EDGE('',*,*,#15560,.T.); +#8304=ORIENTED_EDGE('',*,*,#14443,.F.); +#8305=ORIENTED_EDGE('',*,*,#15561,.T.); +#8306=ORIENTED_EDGE('',*,*,#15562,.F.); +#8307=ORIENTED_EDGE('',*,*,#15478,.T.); +#8308=ORIENTED_EDGE('',*,*,#15563,.F.); +#8309=ORIENTED_EDGE('',*,*,#15564,.T.); +#8310=ORIENTED_EDGE('',*,*,#14429,.F.); +#8311=ORIENTED_EDGE('',*,*,#15565,.T.); +#8312=ORIENTED_EDGE('',*,*,#15566,.F.); +#8313=ORIENTED_EDGE('',*,*,#15483,.T.); +#8314=ORIENTED_EDGE('',*,*,#15567,.F.); +#8315=ORIENTED_EDGE('',*,*,#15568,.T.); +#8316=ORIENTED_EDGE('',*,*,#14415,.F.); +#8317=ORIENTED_EDGE('',*,*,#15569,.T.); +#8318=ORIENTED_EDGE('',*,*,#15570,.F.); +#8319=ORIENTED_EDGE('',*,*,#15488,.T.); +#8320=ORIENTED_EDGE('',*,*,#15571,.F.); +#8321=ORIENTED_EDGE('',*,*,#15572,.T.); +#8322=ORIENTED_EDGE('',*,*,#14401,.F.); +#8323=ORIENTED_EDGE('',*,*,#15573,.T.); +#8324=ORIENTED_EDGE('',*,*,#15574,.F.); +#8325=ORIENTED_EDGE('',*,*,#15493,.T.); +#8326=ORIENTED_EDGE('',*,*,#15575,.F.); +#8327=ORIENTED_EDGE('',*,*,#15576,.T.); +#8328=ORIENTED_EDGE('',*,*,#14387,.F.); +#8329=ORIENTED_EDGE('',*,*,#15577,.T.); +#8330=ORIENTED_EDGE('',*,*,#15578,.F.); +#8331=ORIENTED_EDGE('',*,*,#15498,.T.); +#8332=ORIENTED_EDGE('',*,*,#15579,.F.); +#8333=ORIENTED_EDGE('',*,*,#15580,.T.); +#8334=ORIENTED_EDGE('',*,*,#14373,.F.); +#8335=ORIENTED_EDGE('',*,*,#15581,.T.); +#8336=ORIENTED_EDGE('',*,*,#15582,.F.); +#8337=ORIENTED_EDGE('',*,*,#15503,.T.); +#8338=ORIENTED_EDGE('',*,*,#15583,.F.); +#8339=ORIENTED_EDGE('',*,*,#15584,.T.); +#8340=ORIENTED_EDGE('',*,*,#14359,.F.); +#8341=ORIENTED_EDGE('',*,*,#15585,.T.); +#8342=ORIENTED_EDGE('',*,*,#15586,.F.); +#8343=ORIENTED_EDGE('',*,*,#15508,.T.); +#8344=ORIENTED_EDGE('',*,*,#15587,.F.); +#8345=ORIENTED_EDGE('',*,*,#15588,.T.); +#8346=ORIENTED_EDGE('',*,*,#14345,.F.); +#8347=ORIENTED_EDGE('',*,*,#15589,.T.); +#8348=ORIENTED_EDGE('',*,*,#15590,.F.); +#8349=ORIENTED_EDGE('',*,*,#15591,.T.); +#8350=ORIENTED_EDGE('',*,*,#14629,.T.); +#8351=ORIENTED_EDGE('',*,*,#15592,.T.); +#8352=ORIENTED_EDGE('',*,*,#15593,.F.); +#8353=ORIENTED_EDGE('',*,*,#15594,.F.); +#8354=ORIENTED_EDGE('',*,*,#15595,.F.); +#8355=ORIENTED_EDGE('',*,*,#15596,.T.); +#8356=ORIENTED_EDGE('',*,*,#14643,.T.); +#8357=ORIENTED_EDGE('',*,*,#15597,.T.); +#8358=ORIENTED_EDGE('',*,*,#15598,.F.); +#8359=ORIENTED_EDGE('',*,*,#15599,.F.); +#8360=ORIENTED_EDGE('',*,*,#15600,.F.); +#8361=ORIENTED_EDGE('',*,*,#15601,.T.); +#8362=ORIENTED_EDGE('',*,*,#14657,.T.); +#8363=ORIENTED_EDGE('',*,*,#15602,.T.); +#8364=ORIENTED_EDGE('',*,*,#15603,.F.); +#8365=ORIENTED_EDGE('',*,*,#15604,.F.); +#8366=ORIENTED_EDGE('',*,*,#15605,.F.); +#8367=ORIENTED_EDGE('',*,*,#15606,.T.); +#8368=ORIENTED_EDGE('',*,*,#14671,.T.); +#8369=ORIENTED_EDGE('',*,*,#15607,.T.); +#8370=ORIENTED_EDGE('',*,*,#15608,.F.); +#8371=ORIENTED_EDGE('',*,*,#15609,.F.); +#8372=ORIENTED_EDGE('',*,*,#15610,.F.); +#8373=ORIENTED_EDGE('',*,*,#15611,.T.); +#8374=ORIENTED_EDGE('',*,*,#14685,.T.); +#8375=ORIENTED_EDGE('',*,*,#15612,.T.); +#8376=ORIENTED_EDGE('',*,*,#15613,.F.); +#8377=ORIENTED_EDGE('',*,*,#15614,.F.); +#8378=ORIENTED_EDGE('',*,*,#15615,.F.); +#8379=ORIENTED_EDGE('',*,*,#15616,.T.); +#8380=ORIENTED_EDGE('',*,*,#14699,.T.); +#8381=ORIENTED_EDGE('',*,*,#15617,.T.); +#8382=ORIENTED_EDGE('',*,*,#15618,.F.); +#8383=ORIENTED_EDGE('',*,*,#15619,.F.); +#8384=ORIENTED_EDGE('',*,*,#15620,.F.); +#8385=ORIENTED_EDGE('',*,*,#15621,.T.); +#8386=ORIENTED_EDGE('',*,*,#14713,.T.); +#8387=ORIENTED_EDGE('',*,*,#15622,.T.); +#8388=ORIENTED_EDGE('',*,*,#15623,.F.); +#8389=ORIENTED_EDGE('',*,*,#15624,.F.); +#8390=ORIENTED_EDGE('',*,*,#15625,.F.); +#8391=ORIENTED_EDGE('',*,*,#15626,.T.); +#8392=ORIENTED_EDGE('',*,*,#14727,.T.); +#8393=ORIENTED_EDGE('',*,*,#15627,.T.); +#8394=ORIENTED_EDGE('',*,*,#15628,.F.); +#8395=ORIENTED_EDGE('',*,*,#15629,.F.); +#8396=ORIENTED_EDGE('',*,*,#15630,.F.); +#8397=ORIENTED_EDGE('',*,*,#15631,.T.); +#8398=ORIENTED_EDGE('',*,*,#14741,.T.); +#8399=ORIENTED_EDGE('',*,*,#15632,.T.); +#8400=ORIENTED_EDGE('',*,*,#15633,.F.); +#8401=ORIENTED_EDGE('',*,*,#15634,.F.); +#8402=ORIENTED_EDGE('',*,*,#15635,.F.); +#8403=ORIENTED_EDGE('',*,*,#15636,.T.); +#8404=ORIENTED_EDGE('',*,*,#14755,.T.); +#8405=ORIENTED_EDGE('',*,*,#15637,.T.); +#8406=ORIENTED_EDGE('',*,*,#15638,.F.); +#8407=ORIENTED_EDGE('',*,*,#15639,.F.); +#8408=ORIENTED_EDGE('',*,*,#15640,.F.); +#8409=ORIENTED_EDGE('',*,*,#15641,.T.); +#8410=ORIENTED_EDGE('',*,*,#14769,.T.); +#8411=ORIENTED_EDGE('',*,*,#15642,.T.); +#8412=ORIENTED_EDGE('',*,*,#15643,.F.); +#8413=ORIENTED_EDGE('',*,*,#15644,.F.); +#8414=ORIENTED_EDGE('',*,*,#15645,.F.); +#8415=ORIENTED_EDGE('',*,*,#15646,.T.); +#8416=ORIENTED_EDGE('',*,*,#14783,.T.); +#8417=ORIENTED_EDGE('',*,*,#15647,.T.); +#8418=ORIENTED_EDGE('',*,*,#15648,.F.); +#8419=ORIENTED_EDGE('',*,*,#15649,.F.); +#8420=ORIENTED_EDGE('',*,*,#15650,.F.); +#8421=ORIENTED_EDGE('',*,*,#15651,.T.); +#8422=ORIENTED_EDGE('',*,*,#14797,.T.); +#8423=ORIENTED_EDGE('',*,*,#15652,.T.); +#8424=ORIENTED_EDGE('',*,*,#15653,.F.); +#8425=ORIENTED_EDGE('',*,*,#15654,.F.); +#8426=ORIENTED_EDGE('',*,*,#15655,.F.); +#8427=ORIENTED_EDGE('',*,*,#15656,.T.); +#8428=ORIENTED_EDGE('',*,*,#14811,.T.); +#8429=ORIENTED_EDGE('',*,*,#15657,.T.); +#8430=ORIENTED_EDGE('',*,*,#15658,.F.); +#8431=ORIENTED_EDGE('',*,*,#15659,.F.); +#8432=ORIENTED_EDGE('',*,*,#15660,.F.); +#8433=ORIENTED_EDGE('',*,*,#15661,.T.); +#8434=ORIENTED_EDGE('',*,*,#14825,.T.); +#8435=ORIENTED_EDGE('',*,*,#15662,.T.); +#8436=ORIENTED_EDGE('',*,*,#15663,.F.); +#8437=ORIENTED_EDGE('',*,*,#15664,.F.); +#8438=ORIENTED_EDGE('',*,*,#15665,.F.); +#8439=ORIENTED_EDGE('',*,*,#15666,.T.); +#8440=ORIENTED_EDGE('',*,*,#14839,.T.); +#8441=ORIENTED_EDGE('',*,*,#15667,.T.); +#8442=ORIENTED_EDGE('',*,*,#15668,.F.); +#8443=ORIENTED_EDGE('',*,*,#15669,.F.); +#8444=ORIENTED_EDGE('',*,*,#15670,.F.); +#8445=ORIENTED_EDGE('',*,*,#15671,.T.); +#8446=ORIENTED_EDGE('',*,*,#14853,.T.); +#8447=ORIENTED_EDGE('',*,*,#15672,.T.); +#8448=ORIENTED_EDGE('',*,*,#15673,.F.); +#8449=ORIENTED_EDGE('',*,*,#15674,.F.); +#8450=ORIENTED_EDGE('',*,*,#15675,.F.); +#8451=ORIENTED_EDGE('',*,*,#15676,.T.); +#8452=ORIENTED_EDGE('',*,*,#14867,.T.); +#8453=ORIENTED_EDGE('',*,*,#15677,.T.); +#8454=ORIENTED_EDGE('',*,*,#15678,.F.); +#8455=ORIENTED_EDGE('',*,*,#15679,.F.); +#8456=ORIENTED_EDGE('',*,*,#15680,.F.); +#8457=ORIENTED_EDGE('',*,*,#15681,.T.); +#8458=ORIENTED_EDGE('',*,*,#14881,.T.); +#8459=ORIENTED_EDGE('',*,*,#15682,.T.); +#8460=ORIENTED_EDGE('',*,*,#15683,.F.); +#8461=ORIENTED_EDGE('',*,*,#15684,.F.); +#8462=ORIENTED_EDGE('',*,*,#15685,.F.); +#8463=ORIENTED_EDGE('',*,*,#15686,.T.); +#8464=ORIENTED_EDGE('',*,*,#14895,.T.); +#8465=ORIENTED_EDGE('',*,*,#15687,.T.); +#8466=ORIENTED_EDGE('',*,*,#15688,.F.); +#8467=ORIENTED_EDGE('',*,*,#15689,.F.); +#8468=ORIENTED_EDGE('',*,*,#15690,.F.); +#8469=ORIENTED_EDGE('',*,*,#15691,.T.); +#8470=ORIENTED_EDGE('',*,*,#15594,.T.); +#8471=ORIENTED_EDGE('',*,*,#15692,.T.); +#8472=ORIENTED_EDGE('',*,*,#15693,.T.); +#8473=ORIENTED_EDGE('',*,*,#15694,.F.); +#8474=ORIENTED_EDGE('',*,*,#15695,.T.); +#8475=ORIENTED_EDGE('',*,*,#15696,.T.); +#8476=ORIENTED_EDGE('',*,*,#15599,.T.); +#8477=ORIENTED_EDGE('',*,*,#15697,.T.); +#8478=ORIENTED_EDGE('',*,*,#15698,.T.); +#8479=ORIENTED_EDGE('',*,*,#15699,.F.); +#8480=ORIENTED_EDGE('',*,*,#15700,.T.); +#8481=ORIENTED_EDGE('',*,*,#15701,.T.); +#8482=ORIENTED_EDGE('',*,*,#15604,.T.); +#8483=ORIENTED_EDGE('',*,*,#15702,.T.); +#8484=ORIENTED_EDGE('',*,*,#15703,.T.); +#8485=ORIENTED_EDGE('',*,*,#15704,.F.); +#8486=ORIENTED_EDGE('',*,*,#15705,.T.); +#8487=ORIENTED_EDGE('',*,*,#15706,.T.); +#8488=ORIENTED_EDGE('',*,*,#15609,.T.); +#8489=ORIENTED_EDGE('',*,*,#15707,.T.); +#8490=ORIENTED_EDGE('',*,*,#15708,.T.); +#8491=ORIENTED_EDGE('',*,*,#15709,.F.); +#8492=ORIENTED_EDGE('',*,*,#15710,.T.); +#8493=ORIENTED_EDGE('',*,*,#15711,.T.); +#8494=ORIENTED_EDGE('',*,*,#15614,.T.); +#8495=ORIENTED_EDGE('',*,*,#15712,.T.); +#8496=ORIENTED_EDGE('',*,*,#15713,.T.); +#8497=ORIENTED_EDGE('',*,*,#15714,.F.); +#8498=ORIENTED_EDGE('',*,*,#15715,.T.); +#8499=ORIENTED_EDGE('',*,*,#15716,.T.); +#8500=ORIENTED_EDGE('',*,*,#15619,.T.); +#8501=ORIENTED_EDGE('',*,*,#15717,.T.); +#8502=ORIENTED_EDGE('',*,*,#15718,.T.); +#8503=ORIENTED_EDGE('',*,*,#15719,.F.); +#8504=ORIENTED_EDGE('',*,*,#15720,.T.); +#8505=ORIENTED_EDGE('',*,*,#15721,.T.); +#8506=ORIENTED_EDGE('',*,*,#15624,.T.); +#8507=ORIENTED_EDGE('',*,*,#15722,.T.); +#8508=ORIENTED_EDGE('',*,*,#15723,.T.); +#8509=ORIENTED_EDGE('',*,*,#15724,.F.); +#8510=ORIENTED_EDGE('',*,*,#15725,.T.); +#8511=ORIENTED_EDGE('',*,*,#15726,.T.); +#8512=ORIENTED_EDGE('',*,*,#15629,.T.); +#8513=ORIENTED_EDGE('',*,*,#15727,.T.); +#8514=ORIENTED_EDGE('',*,*,#15728,.T.); +#8515=ORIENTED_EDGE('',*,*,#15729,.F.); +#8516=ORIENTED_EDGE('',*,*,#15730,.T.); +#8517=ORIENTED_EDGE('',*,*,#15731,.T.); +#8518=ORIENTED_EDGE('',*,*,#15634,.T.); +#8519=ORIENTED_EDGE('',*,*,#15732,.T.); +#8520=ORIENTED_EDGE('',*,*,#15733,.T.); +#8521=ORIENTED_EDGE('',*,*,#15734,.F.); +#8522=ORIENTED_EDGE('',*,*,#15735,.T.); +#8523=ORIENTED_EDGE('',*,*,#15736,.T.); +#8524=ORIENTED_EDGE('',*,*,#15639,.T.); +#8525=ORIENTED_EDGE('',*,*,#15737,.T.); +#8526=ORIENTED_EDGE('',*,*,#15738,.T.); +#8527=ORIENTED_EDGE('',*,*,#15739,.F.); +#8528=ORIENTED_EDGE('',*,*,#15740,.T.); +#8529=ORIENTED_EDGE('',*,*,#15741,.T.); +#8530=ORIENTED_EDGE('',*,*,#15644,.T.); +#8531=ORIENTED_EDGE('',*,*,#15742,.T.); +#8532=ORIENTED_EDGE('',*,*,#15743,.T.); +#8533=ORIENTED_EDGE('',*,*,#15744,.F.); +#8534=ORIENTED_EDGE('',*,*,#15745,.T.); +#8535=ORIENTED_EDGE('',*,*,#15746,.T.); +#8536=ORIENTED_EDGE('',*,*,#15649,.T.); +#8537=ORIENTED_EDGE('',*,*,#15747,.T.); +#8538=ORIENTED_EDGE('',*,*,#15748,.T.); +#8539=ORIENTED_EDGE('',*,*,#15749,.F.); +#8540=ORIENTED_EDGE('',*,*,#15750,.T.); +#8541=ORIENTED_EDGE('',*,*,#15751,.T.); +#8542=ORIENTED_EDGE('',*,*,#15654,.T.); +#8543=ORIENTED_EDGE('',*,*,#15752,.T.); +#8544=ORIENTED_EDGE('',*,*,#15753,.T.); +#8545=ORIENTED_EDGE('',*,*,#15754,.F.); +#8546=ORIENTED_EDGE('',*,*,#15755,.T.); +#8547=ORIENTED_EDGE('',*,*,#15756,.T.); +#8548=ORIENTED_EDGE('',*,*,#15659,.T.); +#8549=ORIENTED_EDGE('',*,*,#15757,.T.); +#8550=ORIENTED_EDGE('',*,*,#15758,.T.); +#8551=ORIENTED_EDGE('',*,*,#15759,.F.); +#8552=ORIENTED_EDGE('',*,*,#15760,.T.); +#8553=ORIENTED_EDGE('',*,*,#15761,.T.); +#8554=ORIENTED_EDGE('',*,*,#15664,.T.); +#8555=ORIENTED_EDGE('',*,*,#15762,.T.); +#8556=ORIENTED_EDGE('',*,*,#15763,.T.); +#8557=ORIENTED_EDGE('',*,*,#15764,.F.); +#8558=ORIENTED_EDGE('',*,*,#15765,.T.); +#8559=ORIENTED_EDGE('',*,*,#15766,.T.); +#8560=ORIENTED_EDGE('',*,*,#15669,.T.); +#8561=ORIENTED_EDGE('',*,*,#15767,.T.); +#8562=ORIENTED_EDGE('',*,*,#15768,.T.); +#8563=ORIENTED_EDGE('',*,*,#15769,.F.); +#8564=ORIENTED_EDGE('',*,*,#15770,.T.); +#8565=ORIENTED_EDGE('',*,*,#15771,.T.); +#8566=ORIENTED_EDGE('',*,*,#15674,.T.); +#8567=ORIENTED_EDGE('',*,*,#15772,.T.); +#8568=ORIENTED_EDGE('',*,*,#15773,.T.); +#8569=ORIENTED_EDGE('',*,*,#15774,.F.); +#8570=ORIENTED_EDGE('',*,*,#15775,.T.); +#8571=ORIENTED_EDGE('',*,*,#15776,.T.); +#8572=ORIENTED_EDGE('',*,*,#15679,.T.); +#8573=ORIENTED_EDGE('',*,*,#15777,.T.); +#8574=ORIENTED_EDGE('',*,*,#15778,.T.); +#8575=ORIENTED_EDGE('',*,*,#15779,.F.); +#8576=ORIENTED_EDGE('',*,*,#15780,.T.); +#8577=ORIENTED_EDGE('',*,*,#15781,.T.); +#8578=ORIENTED_EDGE('',*,*,#15684,.T.); +#8579=ORIENTED_EDGE('',*,*,#15782,.T.); +#8580=ORIENTED_EDGE('',*,*,#15783,.T.); +#8581=ORIENTED_EDGE('',*,*,#15784,.F.); +#8582=ORIENTED_EDGE('',*,*,#15785,.T.); +#8583=ORIENTED_EDGE('',*,*,#15786,.T.); +#8584=ORIENTED_EDGE('',*,*,#15787,.F.); +#8585=ORIENTED_EDGE('',*,*,#15179,.F.); +#8586=ORIENTED_EDGE('',*,*,#15788,.F.); +#8587=ORIENTED_EDGE('',*,*,#15789,.T.); +#8588=ORIENTED_EDGE('',*,*,#15790,.T.); +#8589=ORIENTED_EDGE('',*,*,#15694,.T.); +#8590=ORIENTED_EDGE('',*,*,#15791,.T.); +#8591=ORIENTED_EDGE('',*,*,#15792,.T.); +#8592=ORIENTED_EDGE('',*,*,#15793,.F.); +#8593=ORIENTED_EDGE('',*,*,#15165,.F.); +#8594=ORIENTED_EDGE('',*,*,#15794,.F.); +#8595=ORIENTED_EDGE('',*,*,#15795,.T.); +#8596=ORIENTED_EDGE('',*,*,#15796,.T.); +#8597=ORIENTED_EDGE('',*,*,#15699,.T.); +#8598=ORIENTED_EDGE('',*,*,#15797,.T.); +#8599=ORIENTED_EDGE('',*,*,#15798,.T.); +#8600=ORIENTED_EDGE('',*,*,#15799,.F.); +#8601=ORIENTED_EDGE('',*,*,#15151,.F.); +#8602=ORIENTED_EDGE('',*,*,#15800,.F.); +#8603=ORIENTED_EDGE('',*,*,#15801,.T.); +#8604=ORIENTED_EDGE('',*,*,#15802,.T.); +#8605=ORIENTED_EDGE('',*,*,#15704,.T.); +#8606=ORIENTED_EDGE('',*,*,#15803,.T.); +#8607=ORIENTED_EDGE('',*,*,#15804,.T.); +#8608=ORIENTED_EDGE('',*,*,#15805,.F.); +#8609=ORIENTED_EDGE('',*,*,#15137,.F.); +#8610=ORIENTED_EDGE('',*,*,#15806,.F.); +#8611=ORIENTED_EDGE('',*,*,#15807,.T.); +#8612=ORIENTED_EDGE('',*,*,#15808,.T.); +#8613=ORIENTED_EDGE('',*,*,#15709,.T.); +#8614=ORIENTED_EDGE('',*,*,#15809,.T.); +#8615=ORIENTED_EDGE('',*,*,#15810,.T.); +#8616=ORIENTED_EDGE('',*,*,#15811,.F.); +#8617=ORIENTED_EDGE('',*,*,#15123,.F.); +#8618=ORIENTED_EDGE('',*,*,#15812,.F.); +#8619=ORIENTED_EDGE('',*,*,#15813,.T.); +#8620=ORIENTED_EDGE('',*,*,#15814,.T.); +#8621=ORIENTED_EDGE('',*,*,#15714,.T.); +#8622=ORIENTED_EDGE('',*,*,#15815,.T.); +#8623=ORIENTED_EDGE('',*,*,#15816,.T.); +#8624=ORIENTED_EDGE('',*,*,#15817,.F.); +#8625=ORIENTED_EDGE('',*,*,#15109,.F.); +#8626=ORIENTED_EDGE('',*,*,#15818,.F.); +#8627=ORIENTED_EDGE('',*,*,#15819,.T.); +#8628=ORIENTED_EDGE('',*,*,#15820,.T.); +#8629=ORIENTED_EDGE('',*,*,#15719,.T.); +#8630=ORIENTED_EDGE('',*,*,#15821,.T.); +#8631=ORIENTED_EDGE('',*,*,#15822,.T.); +#8632=ORIENTED_EDGE('',*,*,#15823,.F.); +#8633=ORIENTED_EDGE('',*,*,#15095,.F.); +#8634=ORIENTED_EDGE('',*,*,#15824,.F.); +#8635=ORIENTED_EDGE('',*,*,#15825,.T.); +#8636=ORIENTED_EDGE('',*,*,#15826,.T.); +#8637=ORIENTED_EDGE('',*,*,#15724,.T.); +#8638=ORIENTED_EDGE('',*,*,#15827,.T.); +#8639=ORIENTED_EDGE('',*,*,#15828,.T.); +#8640=ORIENTED_EDGE('',*,*,#15829,.F.); +#8641=ORIENTED_EDGE('',*,*,#15081,.F.); +#8642=ORIENTED_EDGE('',*,*,#15830,.F.); +#8643=ORIENTED_EDGE('',*,*,#15831,.T.); +#8644=ORIENTED_EDGE('',*,*,#15832,.T.); +#8645=ORIENTED_EDGE('',*,*,#15729,.T.); +#8646=ORIENTED_EDGE('',*,*,#15833,.T.); +#8647=ORIENTED_EDGE('',*,*,#15834,.T.); +#8648=ORIENTED_EDGE('',*,*,#15835,.F.); +#8649=ORIENTED_EDGE('',*,*,#15067,.F.); +#8650=ORIENTED_EDGE('',*,*,#15836,.F.); +#8651=ORIENTED_EDGE('',*,*,#15837,.T.); +#8652=ORIENTED_EDGE('',*,*,#15838,.T.); +#8653=ORIENTED_EDGE('',*,*,#15734,.T.); +#8654=ORIENTED_EDGE('',*,*,#15839,.T.); +#8655=ORIENTED_EDGE('',*,*,#15840,.T.); +#8656=ORIENTED_EDGE('',*,*,#15841,.F.); +#8657=ORIENTED_EDGE('',*,*,#15053,.F.); +#8658=ORIENTED_EDGE('',*,*,#15842,.F.); +#8659=ORIENTED_EDGE('',*,*,#15843,.T.); +#8660=ORIENTED_EDGE('',*,*,#15844,.T.); +#8661=ORIENTED_EDGE('',*,*,#15739,.T.); +#8662=ORIENTED_EDGE('',*,*,#15845,.T.); +#8663=ORIENTED_EDGE('',*,*,#15846,.T.); +#8664=ORIENTED_EDGE('',*,*,#15847,.F.); +#8665=ORIENTED_EDGE('',*,*,#15039,.F.); +#8666=ORIENTED_EDGE('',*,*,#15848,.F.); +#8667=ORIENTED_EDGE('',*,*,#15849,.T.); +#8668=ORIENTED_EDGE('',*,*,#15850,.T.); +#8669=ORIENTED_EDGE('',*,*,#15744,.T.); +#8670=ORIENTED_EDGE('',*,*,#15851,.T.); +#8671=ORIENTED_EDGE('',*,*,#15852,.T.); +#8672=ORIENTED_EDGE('',*,*,#15853,.F.); +#8673=ORIENTED_EDGE('',*,*,#15025,.F.); +#8674=ORIENTED_EDGE('',*,*,#15854,.F.); +#8675=ORIENTED_EDGE('',*,*,#15855,.T.); +#8676=ORIENTED_EDGE('',*,*,#15856,.T.); +#8677=ORIENTED_EDGE('',*,*,#15749,.T.); +#8678=ORIENTED_EDGE('',*,*,#15857,.T.); +#8679=ORIENTED_EDGE('',*,*,#15858,.T.); +#8680=ORIENTED_EDGE('',*,*,#15859,.F.); +#8681=ORIENTED_EDGE('',*,*,#15011,.F.); +#8682=ORIENTED_EDGE('',*,*,#15860,.F.); +#8683=ORIENTED_EDGE('',*,*,#15861,.T.); +#8684=ORIENTED_EDGE('',*,*,#15862,.T.); +#8685=ORIENTED_EDGE('',*,*,#15754,.T.); +#8686=ORIENTED_EDGE('',*,*,#15863,.T.); +#8687=ORIENTED_EDGE('',*,*,#15864,.T.); +#8688=ORIENTED_EDGE('',*,*,#15865,.F.); +#8689=ORIENTED_EDGE('',*,*,#14997,.F.); +#8690=ORIENTED_EDGE('',*,*,#15866,.F.); +#8691=ORIENTED_EDGE('',*,*,#15867,.T.); +#8692=ORIENTED_EDGE('',*,*,#15868,.T.); +#8693=ORIENTED_EDGE('',*,*,#15759,.T.); +#8694=ORIENTED_EDGE('',*,*,#15869,.T.); +#8695=ORIENTED_EDGE('',*,*,#15870,.T.); +#8696=ORIENTED_EDGE('',*,*,#15871,.F.); +#8697=ORIENTED_EDGE('',*,*,#14983,.F.); +#8698=ORIENTED_EDGE('',*,*,#15872,.F.); +#8699=ORIENTED_EDGE('',*,*,#15873,.T.); +#8700=ORIENTED_EDGE('',*,*,#15874,.T.); +#8701=ORIENTED_EDGE('',*,*,#15764,.T.); +#8702=ORIENTED_EDGE('',*,*,#15875,.T.); +#8703=ORIENTED_EDGE('',*,*,#15876,.T.); +#8704=ORIENTED_EDGE('',*,*,#15877,.F.); +#8705=ORIENTED_EDGE('',*,*,#14969,.F.); +#8706=ORIENTED_EDGE('',*,*,#15878,.F.); +#8707=ORIENTED_EDGE('',*,*,#15879,.T.); +#8708=ORIENTED_EDGE('',*,*,#15880,.T.); +#8709=ORIENTED_EDGE('',*,*,#15769,.T.); +#8710=ORIENTED_EDGE('',*,*,#15881,.T.); +#8711=ORIENTED_EDGE('',*,*,#15882,.T.); +#8712=ORIENTED_EDGE('',*,*,#15883,.F.); +#8713=ORIENTED_EDGE('',*,*,#14955,.F.); +#8714=ORIENTED_EDGE('',*,*,#15884,.F.); +#8715=ORIENTED_EDGE('',*,*,#15885,.T.); +#8716=ORIENTED_EDGE('',*,*,#15886,.T.); +#8717=ORIENTED_EDGE('',*,*,#15774,.T.); +#8718=ORIENTED_EDGE('',*,*,#15887,.T.); +#8719=ORIENTED_EDGE('',*,*,#15888,.T.); +#8720=ORIENTED_EDGE('',*,*,#15889,.F.); +#8721=ORIENTED_EDGE('',*,*,#14941,.F.); +#8722=ORIENTED_EDGE('',*,*,#15890,.F.); +#8723=ORIENTED_EDGE('',*,*,#15891,.T.); +#8724=ORIENTED_EDGE('',*,*,#15892,.T.); +#8725=ORIENTED_EDGE('',*,*,#15779,.T.); +#8726=ORIENTED_EDGE('',*,*,#15893,.T.); +#8727=ORIENTED_EDGE('',*,*,#15894,.T.); +#8728=ORIENTED_EDGE('',*,*,#15895,.F.); +#8729=ORIENTED_EDGE('',*,*,#14927,.F.); +#8730=ORIENTED_EDGE('',*,*,#15896,.F.); +#8731=ORIENTED_EDGE('',*,*,#15897,.T.); +#8732=ORIENTED_EDGE('',*,*,#15898,.T.); +#8733=ORIENTED_EDGE('',*,*,#15784,.T.); +#8734=ORIENTED_EDGE('',*,*,#15899,.T.); +#8735=ORIENTED_EDGE('',*,*,#15900,.T.); +#8736=ORIENTED_EDGE('',*,*,#15901,.F.); +#8737=ORIENTED_EDGE('',*,*,#14913,.F.); +#8738=ORIENTED_EDGE('',*,*,#15902,.F.); +#8739=ORIENTED_EDGE('',*,*,#15903,.T.); +#8740=ORIENTED_EDGE('',*,*,#15904,.T.); +#8741=ORIENTED_EDGE('',*,*,#15905,.T.); +#8742=ORIENTED_EDGE('',*,*,#15906,.T.); +#8743=ORIENTED_EDGE('',*,*,#15907,.T.); +#8744=ORIENTED_EDGE('',*,*,#15908,.F.); +#8745=ORIENTED_EDGE('',*,*,#14901,.T.); +#8746=ORIENTED_EDGE('',*,*,#15909,.T.); +#8747=ORIENTED_EDGE('',*,*,#14907,.T.); +#8748=ORIENTED_EDGE('',*,*,#14623,.F.); +#8749=ORIENTED_EDGE('',*,*,#15910,.T.); +#8750=ORIENTED_EDGE('',*,*,#15185,.F.); +#8751=ORIENTED_EDGE('',*,*,#15911,.F.); +#8752=ORIENTED_EDGE('',*,*,#15912,.T.); +#8753=ORIENTED_EDGE('',*,*,#15913,.T.); +#8754=ORIENTED_EDGE('',*,*,#15591,.F.); +#8755=ORIENTED_EDGE('',*,*,#15914,.T.); +#8756=ORIENTED_EDGE('',*,*,#15915,.T.); +#8757=ORIENTED_EDGE('',*,*,#15412,.T.); +#8758=ORIENTED_EDGE('',*,*,#15689,.T.); +#8759=ORIENTED_EDGE('',*,*,#15916,.T.); +#8760=ORIENTED_EDGE('',*,*,#15917,.T.); +#8761=ORIENTED_EDGE('',*,*,#15905,.F.); +#8762=ORIENTED_EDGE('',*,*,#15918,.T.); +#8763=ORIENTED_EDGE('',*,*,#15919,.T.); +#8764=ORIENTED_EDGE('',*,*,#15920,.F.); +#8765=ORIENTED_EDGE('',*,*,#15791,.F.); +#8766=ORIENTED_EDGE('',*,*,#15693,.F.); +#8767=ORIENTED_EDGE('',*,*,#15593,.T.); +#8768=ORIENTED_EDGE('',*,*,#15921,.F.); +#8769=ORIENTED_EDGE('',*,*,#15792,.F.); +#8770=ORIENTED_EDGE('',*,*,#15920,.T.); +#8771=ORIENTED_EDGE('',*,*,#15692,.F.); +#8772=ORIENTED_EDGE('',*,*,#15922,.F.); +#8773=ORIENTED_EDGE('',*,*,#15180,.F.); +#8774=ORIENTED_EDGE('',*,*,#15923,.T.); +#8775=ORIENTED_EDGE('',*,*,#14628,.F.); +#8776=ORIENTED_EDGE('',*,*,#15924,.F.); +#8777=ORIENTED_EDGE('',*,*,#15181,.F.); +#8778=ORIENTED_EDGE('',*,*,#15922,.T.); +#8779=ORIENTED_EDGE('',*,*,#14627,.F.); +#8780=ORIENTED_EDGE('',*,*,#14626,.T.); +#8781=ORIENTED_EDGE('',*,*,#15925,.F.); +#8782=ORIENTED_EDGE('',*,*,#15182,.T.); +#8783=ORIENTED_EDGE('',*,*,#15924,.T.); +#8784=ORIENTED_EDGE('',*,*,#15911,.T.); +#8785=ORIENTED_EDGE('',*,*,#15184,.F.); +#8786=ORIENTED_EDGE('',*,*,#15926,.T.); +#8787=ORIENTED_EDGE('',*,*,#14624,.F.); +#8788=ORIENTED_EDGE('',*,*,#15926,.F.); +#8789=ORIENTED_EDGE('',*,*,#15183,.F.); +#8790=ORIENTED_EDGE('',*,*,#15925,.T.); +#8791=ORIENTED_EDGE('',*,*,#14625,.F.); +#8792=ORIENTED_EDGE('',*,*,#15923,.F.); +#8793=ORIENTED_EDGE('',*,*,#15787,.T.); +#8794=ORIENTED_EDGE('',*,*,#15921,.T.); +#8795=ORIENTED_EDGE('',*,*,#15592,.F.); +#8796=ORIENTED_EDGE('',*,*,#15927,.F.); +#8797=ORIENTED_EDGE('',*,*,#14612,.F.); +#8798=ORIENTED_EDGE('',*,*,#15928,.T.); +#8799=ORIENTED_EDGE('',*,*,#14060,.F.); +#8800=ORIENTED_EDGE('',*,*,#15929,.F.); +#8801=ORIENTED_EDGE('',*,*,#14613,.F.); +#8802=ORIENTED_EDGE('',*,*,#15927,.T.); +#8803=ORIENTED_EDGE('',*,*,#14059,.F.); +#8804=ORIENTED_EDGE('',*,*,#14058,.T.); +#8805=ORIENTED_EDGE('',*,*,#15930,.F.); +#8806=ORIENTED_EDGE('',*,*,#14614,.T.); +#8807=ORIENTED_EDGE('',*,*,#15929,.T.); +#8808=ORIENTED_EDGE('',*,*,#15275,.T.); +#8809=ORIENTED_EDGE('',*,*,#14616,.F.); +#8810=ORIENTED_EDGE('',*,*,#15931,.T.); +#8811=ORIENTED_EDGE('',*,*,#14056,.F.); +#8812=ORIENTED_EDGE('',*,*,#15931,.F.); +#8813=ORIENTED_EDGE('',*,*,#14615,.F.); +#8814=ORIENTED_EDGE('',*,*,#15930,.T.); +#8815=ORIENTED_EDGE('',*,*,#14057,.F.); +#8816=ORIENTED_EDGE('',*,*,#15932,.F.); +#8817=ORIENTED_EDGE('',*,*,#15511,.T.); +#8818=ORIENTED_EDGE('',*,*,#15417,.F.); +#8819=ORIENTED_EDGE('',*,*,#15933,.T.); +#8820=ORIENTED_EDGE('',*,*,#15277,.F.); +#8821=ORIENTED_EDGE('',*,*,#15276,.T.); +#8822=ORIENTED_EDGE('',*,*,#15928,.F.); +#8823=ORIENTED_EDGE('',*,*,#15512,.F.); +#8824=ORIENTED_EDGE('',*,*,#15932,.T.); +#8825=ORIENTED_EDGE('',*,*,#15933,.F.); +#8826=ORIENTED_EDGE('',*,*,#15416,.F.); +#8827=ORIENTED_EDGE('',*,*,#15278,.F.); +#8828=ORIENTED_EDGE('',*,*,#15934,.F.); +#8829=ORIENTED_EDGE('',*,*,#14908,.F.); +#8830=ORIENTED_EDGE('',*,*,#15909,.F.); +#8831=ORIENTED_EDGE('',*,*,#14900,.F.); +#8832=ORIENTED_EDGE('',*,*,#15935,.F.); +#8833=ORIENTED_EDGE('',*,*,#14909,.F.); +#8834=ORIENTED_EDGE('',*,*,#15934,.T.); +#8835=ORIENTED_EDGE('',*,*,#14899,.F.); +#8836=ORIENTED_EDGE('',*,*,#14898,.T.); +#8837=ORIENTED_EDGE('',*,*,#15936,.F.); +#8838=ORIENTED_EDGE('',*,*,#14910,.T.); +#8839=ORIENTED_EDGE('',*,*,#15935,.T.); +#8840=ORIENTED_EDGE('',*,*,#15937,.F.); +#8841=ORIENTED_EDGE('',*,*,#14911,.F.); +#8842=ORIENTED_EDGE('',*,*,#15936,.T.); +#8843=ORIENTED_EDGE('',*,*,#14897,.F.); +#8844=ORIENTED_EDGE('',*,*,#15938,.F.); +#8845=ORIENTED_EDGE('',*,*,#14912,.F.); +#8846=ORIENTED_EDGE('',*,*,#15937,.T.); +#8847=ORIENTED_EDGE('',*,*,#14896,.F.); +#8848=ORIENTED_EDGE('',*,*,#15939,.F.); +#8849=ORIENTED_EDGE('',*,*,#15902,.T.); +#8850=ORIENTED_EDGE('',*,*,#15938,.T.); +#8851=ORIENTED_EDGE('',*,*,#15691,.F.); +#8852=ORIENTED_EDGE('',*,*,#15690,.T.); +#8853=ORIENTED_EDGE('',*,*,#15919,.F.); +#8854=ORIENTED_EDGE('',*,*,#15940,.F.); +#8855=ORIENTED_EDGE('',*,*,#15903,.F.); +#8856=ORIENTED_EDGE('',*,*,#15939,.T.); +#8857=ORIENTED_EDGE('',*,*,#15904,.F.); +#8858=ORIENTED_EDGE('',*,*,#15940,.T.); +#8859=ORIENTED_EDGE('',*,*,#15918,.F.); +#8860=ORIENTED_EDGE('',*,*,#15941,.F.); +#8861=ORIENTED_EDGE('',*,*,#14340,.F.); +#8862=ORIENTED_EDGE('',*,*,#15273,.F.); +#8863=ORIENTED_EDGE('',*,*,#14332,.F.); +#8864=ORIENTED_EDGE('',*,*,#15942,.F.); +#8865=ORIENTED_EDGE('',*,*,#14341,.F.); +#8866=ORIENTED_EDGE('',*,*,#15941,.T.); +#8867=ORIENTED_EDGE('',*,*,#14331,.F.); +#8868=ORIENTED_EDGE('',*,*,#14330,.T.); +#8869=ORIENTED_EDGE('',*,*,#15943,.F.); +#8870=ORIENTED_EDGE('',*,*,#14342,.T.); +#8871=ORIENTED_EDGE('',*,*,#15942,.T.); +#8872=ORIENTED_EDGE('',*,*,#15944,.F.); +#8873=ORIENTED_EDGE('',*,*,#14343,.F.); +#8874=ORIENTED_EDGE('',*,*,#15943,.T.); +#8875=ORIENTED_EDGE('',*,*,#14329,.F.); +#8876=ORIENTED_EDGE('',*,*,#15945,.F.); +#8877=ORIENTED_EDGE('',*,*,#14344,.F.); +#8878=ORIENTED_EDGE('',*,*,#15944,.T.); +#8879=ORIENTED_EDGE('',*,*,#14328,.F.); +#8880=ORIENTED_EDGE('',*,*,#15415,.T.); +#8881=ORIENTED_EDGE('',*,*,#15946,.F.); +#8882=ORIENTED_EDGE('',*,*,#15589,.F.); +#8883=ORIENTED_EDGE('',*,*,#15945,.T.); +#8884=ORIENTED_EDGE('',*,*,#15947,.F.); +#8885=ORIENTED_EDGE('',*,*,#15914,.F.); +#8886=ORIENTED_EDGE('',*,*,#15590,.T.); +#8887=ORIENTED_EDGE('',*,*,#15946,.T.); +#8888=ORIENTED_EDGE('',*,*,#15414,.F.); +#8889=ORIENTED_EDGE('',*,*,#15915,.F.); +#8890=ORIENTED_EDGE('',*,*,#15947,.T.); +#8891=ORIENTED_EDGE('',*,*,#15413,.F.); +#8892=ORIENTED_EDGE('',*,*,#15948,.F.); +#8893=ORIENTED_EDGE('',*,*,#15906,.F.); +#8894=ORIENTED_EDGE('',*,*,#15917,.F.); +#8895=ORIENTED_EDGE('',*,*,#15688,.T.); +#8896=ORIENTED_EDGE('',*,*,#15949,.F.); +#8897=ORIENTED_EDGE('',*,*,#15907,.F.); +#8898=ORIENTED_EDGE('',*,*,#15948,.T.); +#8899=ORIENTED_EDGE('',*,*,#15916,.F.); +#8900=ORIENTED_EDGE('',*,*,#15950,.F.); +#8901=ORIENTED_EDGE('',*,*,#14914,.F.); +#8902=ORIENTED_EDGE('',*,*,#15951,.T.); +#8903=ORIENTED_EDGE('',*,*,#14894,.F.); +#8904=ORIENTED_EDGE('',*,*,#15952,.F.); +#8905=ORIENTED_EDGE('',*,*,#14915,.F.); +#8906=ORIENTED_EDGE('',*,*,#15950,.T.); +#8907=ORIENTED_EDGE('',*,*,#14893,.F.); +#8908=ORIENTED_EDGE('',*,*,#14892,.T.); +#8909=ORIENTED_EDGE('',*,*,#15953,.F.); +#8910=ORIENTED_EDGE('',*,*,#14916,.T.); +#8911=ORIENTED_EDGE('',*,*,#15952,.T.); +#8912=ORIENTED_EDGE('',*,*,#15954,.F.); +#8913=ORIENTED_EDGE('',*,*,#14917,.F.); +#8914=ORIENTED_EDGE('',*,*,#15953,.T.); +#8915=ORIENTED_EDGE('',*,*,#14891,.F.); +#8916=ORIENTED_EDGE('',*,*,#15955,.F.); +#8917=ORIENTED_EDGE('',*,*,#14918,.F.); +#8918=ORIENTED_EDGE('',*,*,#15954,.T.); +#8919=ORIENTED_EDGE('',*,*,#14890,.F.); +#8920=ORIENTED_EDGE('',*,*,#15233,.F.); +#8921=ORIENTED_EDGE('',*,*,#14919,.F.); +#8922=ORIENTED_EDGE('',*,*,#15955,.T.); +#8923=ORIENTED_EDGE('',*,*,#14889,.F.); +#8924=ORIENTED_EDGE('',*,*,#15956,.F.); +#8925=ORIENTED_EDGE('',*,*,#14921,.F.); +#8926=ORIENTED_EDGE('',*,*,#15232,.T.); +#8927=ORIENTED_EDGE('',*,*,#14887,.F.); +#8928=ORIENTED_EDGE('',*,*,#15957,.F.); +#8929=ORIENTED_EDGE('',*,*,#14922,.F.); +#8930=ORIENTED_EDGE('',*,*,#15956,.T.); +#8931=ORIENTED_EDGE('',*,*,#14886,.F.); +#8932=ORIENTED_EDGE('',*,*,#15958,.F.); +#8933=ORIENTED_EDGE('',*,*,#14923,.F.); +#8934=ORIENTED_EDGE('',*,*,#15957,.T.); +#8935=ORIENTED_EDGE('',*,*,#14885,.F.); +#8936=ORIENTED_EDGE('',*,*,#14884,.T.); +#8937=ORIENTED_EDGE('',*,*,#15959,.F.); +#8938=ORIENTED_EDGE('',*,*,#14924,.T.); +#8939=ORIENTED_EDGE('',*,*,#15958,.T.); +#8940=ORIENTED_EDGE('',*,*,#15960,.F.); +#8941=ORIENTED_EDGE('',*,*,#14925,.F.); +#8942=ORIENTED_EDGE('',*,*,#15959,.T.); +#8943=ORIENTED_EDGE('',*,*,#14883,.F.); +#8944=ORIENTED_EDGE('',*,*,#15961,.F.); +#8945=ORIENTED_EDGE('',*,*,#14926,.F.); +#8946=ORIENTED_EDGE('',*,*,#15960,.T.); +#8947=ORIENTED_EDGE('',*,*,#14882,.F.); +#8948=ORIENTED_EDGE('',*,*,#15951,.F.); +#8949=ORIENTED_EDGE('',*,*,#15901,.T.); +#8950=ORIENTED_EDGE('',*,*,#15949,.T.); +#8951=ORIENTED_EDGE('',*,*,#15687,.F.); +#8952=ORIENTED_EDGE('',*,*,#15962,.F.); +#8953=ORIENTED_EDGE('',*,*,#15896,.T.); +#8954=ORIENTED_EDGE('',*,*,#15961,.T.); +#8955=ORIENTED_EDGE('',*,*,#15686,.F.); +#8956=ORIENTED_EDGE('',*,*,#15685,.T.); +#8957=ORIENTED_EDGE('',*,*,#15786,.F.); +#8958=ORIENTED_EDGE('',*,*,#15963,.F.); +#8959=ORIENTED_EDGE('',*,*,#15897,.F.); +#8960=ORIENTED_EDGE('',*,*,#15962,.T.); +#8961=ORIENTED_EDGE('',*,*,#15898,.F.); +#8962=ORIENTED_EDGE('',*,*,#15963,.T.); +#8963=ORIENTED_EDGE('',*,*,#15785,.F.); +#8964=ORIENTED_EDGE('',*,*,#15964,.F.); +#8965=ORIENTED_EDGE('',*,*,#15899,.F.); +#8966=ORIENTED_EDGE('',*,*,#15783,.F.); +#8967=ORIENTED_EDGE('',*,*,#15683,.T.); +#8968=ORIENTED_EDGE('',*,*,#15965,.F.); +#8969=ORIENTED_EDGE('',*,*,#15900,.F.); +#8970=ORIENTED_EDGE('',*,*,#15964,.T.); +#8971=ORIENTED_EDGE('',*,*,#15782,.F.); +#8972=ORIENTED_EDGE('',*,*,#15966,.F.); +#8973=ORIENTED_EDGE('',*,*,#14928,.F.); +#8974=ORIENTED_EDGE('',*,*,#15967,.T.); +#8975=ORIENTED_EDGE('',*,*,#14880,.F.); +#8976=ORIENTED_EDGE('',*,*,#15968,.F.); +#8977=ORIENTED_EDGE('',*,*,#14929,.F.); +#8978=ORIENTED_EDGE('',*,*,#15966,.T.); +#8979=ORIENTED_EDGE('',*,*,#14879,.F.); +#8980=ORIENTED_EDGE('',*,*,#14878,.T.); +#8981=ORIENTED_EDGE('',*,*,#15969,.F.); +#8982=ORIENTED_EDGE('',*,*,#14930,.T.); +#8983=ORIENTED_EDGE('',*,*,#15968,.T.); +#8984=ORIENTED_EDGE('',*,*,#15970,.F.); +#8985=ORIENTED_EDGE('',*,*,#14931,.F.); +#8986=ORIENTED_EDGE('',*,*,#15969,.T.); +#8987=ORIENTED_EDGE('',*,*,#14877,.F.); +#8988=ORIENTED_EDGE('',*,*,#15971,.F.); +#8989=ORIENTED_EDGE('',*,*,#14932,.F.); +#8990=ORIENTED_EDGE('',*,*,#15970,.T.); +#8991=ORIENTED_EDGE('',*,*,#14876,.F.); +#8992=ORIENTED_EDGE('',*,*,#15231,.F.); +#8993=ORIENTED_EDGE('',*,*,#14933,.F.); +#8994=ORIENTED_EDGE('',*,*,#15971,.T.); +#8995=ORIENTED_EDGE('',*,*,#14875,.F.); +#8996=ORIENTED_EDGE('',*,*,#15972,.F.); +#8997=ORIENTED_EDGE('',*,*,#14935,.F.); +#8998=ORIENTED_EDGE('',*,*,#15230,.T.); +#8999=ORIENTED_EDGE('',*,*,#14873,.F.); +#9000=ORIENTED_EDGE('',*,*,#15973,.F.); +#9001=ORIENTED_EDGE('',*,*,#14936,.F.); +#9002=ORIENTED_EDGE('',*,*,#15972,.T.); +#9003=ORIENTED_EDGE('',*,*,#14872,.F.); +#9004=ORIENTED_EDGE('',*,*,#15974,.F.); +#9005=ORIENTED_EDGE('',*,*,#14937,.F.); +#9006=ORIENTED_EDGE('',*,*,#15973,.T.); +#9007=ORIENTED_EDGE('',*,*,#14871,.F.); +#9008=ORIENTED_EDGE('',*,*,#14870,.T.); +#9009=ORIENTED_EDGE('',*,*,#15975,.F.); +#9010=ORIENTED_EDGE('',*,*,#14938,.T.); +#9011=ORIENTED_EDGE('',*,*,#15974,.T.); +#9012=ORIENTED_EDGE('',*,*,#15976,.F.); +#9013=ORIENTED_EDGE('',*,*,#14939,.F.); +#9014=ORIENTED_EDGE('',*,*,#15975,.T.); +#9015=ORIENTED_EDGE('',*,*,#14869,.F.); +#9016=ORIENTED_EDGE('',*,*,#15977,.F.); +#9017=ORIENTED_EDGE('',*,*,#14940,.F.); +#9018=ORIENTED_EDGE('',*,*,#15976,.T.); +#9019=ORIENTED_EDGE('',*,*,#14868,.F.); +#9020=ORIENTED_EDGE('',*,*,#15967,.F.); +#9021=ORIENTED_EDGE('',*,*,#15895,.T.); +#9022=ORIENTED_EDGE('',*,*,#15965,.T.); +#9023=ORIENTED_EDGE('',*,*,#15682,.F.); +#9024=ORIENTED_EDGE('',*,*,#15978,.F.); +#9025=ORIENTED_EDGE('',*,*,#15890,.T.); +#9026=ORIENTED_EDGE('',*,*,#15977,.T.); +#9027=ORIENTED_EDGE('',*,*,#15681,.F.); +#9028=ORIENTED_EDGE('',*,*,#15680,.T.); +#9029=ORIENTED_EDGE('',*,*,#15781,.F.); +#9030=ORIENTED_EDGE('',*,*,#15979,.F.); +#9031=ORIENTED_EDGE('',*,*,#15891,.F.); +#9032=ORIENTED_EDGE('',*,*,#15978,.T.); +#9033=ORIENTED_EDGE('',*,*,#15892,.F.); +#9034=ORIENTED_EDGE('',*,*,#15979,.T.); +#9035=ORIENTED_EDGE('',*,*,#15780,.F.); +#9036=ORIENTED_EDGE('',*,*,#15980,.F.); +#9037=ORIENTED_EDGE('',*,*,#15893,.F.); +#9038=ORIENTED_EDGE('',*,*,#15778,.F.); +#9039=ORIENTED_EDGE('',*,*,#15678,.T.); +#9040=ORIENTED_EDGE('',*,*,#15981,.F.); +#9041=ORIENTED_EDGE('',*,*,#15894,.F.); +#9042=ORIENTED_EDGE('',*,*,#15980,.T.); +#9043=ORIENTED_EDGE('',*,*,#15777,.F.); +#9044=ORIENTED_EDGE('',*,*,#15982,.F.); +#9045=ORIENTED_EDGE('',*,*,#14942,.F.); +#9046=ORIENTED_EDGE('',*,*,#15983,.T.); +#9047=ORIENTED_EDGE('',*,*,#14866,.F.); +#9048=ORIENTED_EDGE('',*,*,#15984,.F.); +#9049=ORIENTED_EDGE('',*,*,#14943,.F.); +#9050=ORIENTED_EDGE('',*,*,#15982,.T.); +#9051=ORIENTED_EDGE('',*,*,#14865,.F.); +#9052=ORIENTED_EDGE('',*,*,#14864,.T.); +#9053=ORIENTED_EDGE('',*,*,#15985,.F.); +#9054=ORIENTED_EDGE('',*,*,#14944,.T.); +#9055=ORIENTED_EDGE('',*,*,#15984,.T.); +#9056=ORIENTED_EDGE('',*,*,#15986,.F.); +#9057=ORIENTED_EDGE('',*,*,#14945,.F.); +#9058=ORIENTED_EDGE('',*,*,#15985,.T.); +#9059=ORIENTED_EDGE('',*,*,#14863,.F.); +#9060=ORIENTED_EDGE('',*,*,#15987,.F.); +#9061=ORIENTED_EDGE('',*,*,#14946,.F.); +#9062=ORIENTED_EDGE('',*,*,#15986,.T.); +#9063=ORIENTED_EDGE('',*,*,#14862,.F.); +#9064=ORIENTED_EDGE('',*,*,#15229,.F.); +#9065=ORIENTED_EDGE('',*,*,#14947,.F.); +#9066=ORIENTED_EDGE('',*,*,#15987,.T.); +#9067=ORIENTED_EDGE('',*,*,#14861,.F.); +#9068=ORIENTED_EDGE('',*,*,#15988,.F.); +#9069=ORIENTED_EDGE('',*,*,#14949,.F.); +#9070=ORIENTED_EDGE('',*,*,#15228,.T.); +#9071=ORIENTED_EDGE('',*,*,#14859,.F.); +#9072=ORIENTED_EDGE('',*,*,#15989,.F.); +#9073=ORIENTED_EDGE('',*,*,#14950,.F.); +#9074=ORIENTED_EDGE('',*,*,#15988,.T.); +#9075=ORIENTED_EDGE('',*,*,#14858,.F.); +#9076=ORIENTED_EDGE('',*,*,#15990,.F.); +#9077=ORIENTED_EDGE('',*,*,#14951,.F.); +#9078=ORIENTED_EDGE('',*,*,#15989,.T.); +#9079=ORIENTED_EDGE('',*,*,#14857,.F.); +#9080=ORIENTED_EDGE('',*,*,#14856,.T.); +#9081=ORIENTED_EDGE('',*,*,#15991,.F.); +#9082=ORIENTED_EDGE('',*,*,#14952,.T.); +#9083=ORIENTED_EDGE('',*,*,#15990,.T.); +#9084=ORIENTED_EDGE('',*,*,#15992,.F.); +#9085=ORIENTED_EDGE('',*,*,#14953,.F.); +#9086=ORIENTED_EDGE('',*,*,#15991,.T.); +#9087=ORIENTED_EDGE('',*,*,#14855,.F.); +#9088=ORIENTED_EDGE('',*,*,#15993,.F.); +#9089=ORIENTED_EDGE('',*,*,#14954,.F.); +#9090=ORIENTED_EDGE('',*,*,#15992,.T.); +#9091=ORIENTED_EDGE('',*,*,#14854,.F.); +#9092=ORIENTED_EDGE('',*,*,#15983,.F.); +#9093=ORIENTED_EDGE('',*,*,#15889,.T.); +#9094=ORIENTED_EDGE('',*,*,#15981,.T.); +#9095=ORIENTED_EDGE('',*,*,#15677,.F.); +#9096=ORIENTED_EDGE('',*,*,#15994,.F.); +#9097=ORIENTED_EDGE('',*,*,#15884,.T.); +#9098=ORIENTED_EDGE('',*,*,#15993,.T.); +#9099=ORIENTED_EDGE('',*,*,#15676,.F.); +#9100=ORIENTED_EDGE('',*,*,#15675,.T.); +#9101=ORIENTED_EDGE('',*,*,#15776,.F.); +#9102=ORIENTED_EDGE('',*,*,#15995,.F.); +#9103=ORIENTED_EDGE('',*,*,#15885,.F.); +#9104=ORIENTED_EDGE('',*,*,#15994,.T.); +#9105=ORIENTED_EDGE('',*,*,#15886,.F.); +#9106=ORIENTED_EDGE('',*,*,#15995,.T.); +#9107=ORIENTED_EDGE('',*,*,#15775,.F.); +#9108=ORIENTED_EDGE('',*,*,#15996,.F.); +#9109=ORIENTED_EDGE('',*,*,#15887,.F.); +#9110=ORIENTED_EDGE('',*,*,#15773,.F.); +#9111=ORIENTED_EDGE('',*,*,#15673,.T.); +#9112=ORIENTED_EDGE('',*,*,#15997,.F.); +#9113=ORIENTED_EDGE('',*,*,#15888,.F.); +#9114=ORIENTED_EDGE('',*,*,#15996,.T.); +#9115=ORIENTED_EDGE('',*,*,#15772,.F.); +#9116=ORIENTED_EDGE('',*,*,#15998,.F.); +#9117=ORIENTED_EDGE('',*,*,#14956,.F.); +#9118=ORIENTED_EDGE('',*,*,#15999,.T.); +#9119=ORIENTED_EDGE('',*,*,#14852,.F.); +#9120=ORIENTED_EDGE('',*,*,#16000,.F.); +#9121=ORIENTED_EDGE('',*,*,#14957,.F.); +#9122=ORIENTED_EDGE('',*,*,#15998,.T.); +#9123=ORIENTED_EDGE('',*,*,#14851,.F.); +#9124=ORIENTED_EDGE('',*,*,#14850,.T.); +#9125=ORIENTED_EDGE('',*,*,#16001,.F.); +#9126=ORIENTED_EDGE('',*,*,#14958,.T.); +#9127=ORIENTED_EDGE('',*,*,#16000,.T.); +#9128=ORIENTED_EDGE('',*,*,#16002,.F.); +#9129=ORIENTED_EDGE('',*,*,#14959,.F.); +#9130=ORIENTED_EDGE('',*,*,#16001,.T.); +#9131=ORIENTED_EDGE('',*,*,#14849,.F.); +#9132=ORIENTED_EDGE('',*,*,#16003,.F.); +#9133=ORIENTED_EDGE('',*,*,#14960,.F.); +#9134=ORIENTED_EDGE('',*,*,#16002,.T.); +#9135=ORIENTED_EDGE('',*,*,#14848,.F.); +#9136=ORIENTED_EDGE('',*,*,#15227,.F.); +#9137=ORIENTED_EDGE('',*,*,#14961,.F.); +#9138=ORIENTED_EDGE('',*,*,#16003,.T.); +#9139=ORIENTED_EDGE('',*,*,#14847,.F.); +#9140=ORIENTED_EDGE('',*,*,#16004,.F.); +#9141=ORIENTED_EDGE('',*,*,#14963,.F.); +#9142=ORIENTED_EDGE('',*,*,#15226,.T.); +#9143=ORIENTED_EDGE('',*,*,#14845,.F.); +#9144=ORIENTED_EDGE('',*,*,#16005,.F.); +#9145=ORIENTED_EDGE('',*,*,#14964,.F.); +#9146=ORIENTED_EDGE('',*,*,#16004,.T.); +#9147=ORIENTED_EDGE('',*,*,#14844,.F.); +#9148=ORIENTED_EDGE('',*,*,#16006,.F.); +#9149=ORIENTED_EDGE('',*,*,#14965,.F.); +#9150=ORIENTED_EDGE('',*,*,#16005,.T.); +#9151=ORIENTED_EDGE('',*,*,#14843,.F.); +#9152=ORIENTED_EDGE('',*,*,#14842,.T.); +#9153=ORIENTED_EDGE('',*,*,#16007,.F.); +#9154=ORIENTED_EDGE('',*,*,#14966,.T.); +#9155=ORIENTED_EDGE('',*,*,#16006,.T.); +#9156=ORIENTED_EDGE('',*,*,#16008,.F.); +#9157=ORIENTED_EDGE('',*,*,#14967,.F.); +#9158=ORIENTED_EDGE('',*,*,#16007,.T.); +#9159=ORIENTED_EDGE('',*,*,#14841,.F.); +#9160=ORIENTED_EDGE('',*,*,#16009,.F.); +#9161=ORIENTED_EDGE('',*,*,#14968,.F.); +#9162=ORIENTED_EDGE('',*,*,#16008,.T.); +#9163=ORIENTED_EDGE('',*,*,#14840,.F.); +#9164=ORIENTED_EDGE('',*,*,#15999,.F.); +#9165=ORIENTED_EDGE('',*,*,#15883,.T.); +#9166=ORIENTED_EDGE('',*,*,#15997,.T.); +#9167=ORIENTED_EDGE('',*,*,#15672,.F.); +#9168=ORIENTED_EDGE('',*,*,#16010,.F.); +#9169=ORIENTED_EDGE('',*,*,#15878,.T.); +#9170=ORIENTED_EDGE('',*,*,#16009,.T.); +#9171=ORIENTED_EDGE('',*,*,#15671,.F.); +#9172=ORIENTED_EDGE('',*,*,#15670,.T.); +#9173=ORIENTED_EDGE('',*,*,#15771,.F.); +#9174=ORIENTED_EDGE('',*,*,#16011,.F.); +#9175=ORIENTED_EDGE('',*,*,#15879,.F.); +#9176=ORIENTED_EDGE('',*,*,#16010,.T.); +#9177=ORIENTED_EDGE('',*,*,#15880,.F.); +#9178=ORIENTED_EDGE('',*,*,#16011,.T.); +#9179=ORIENTED_EDGE('',*,*,#15770,.F.); +#9180=ORIENTED_EDGE('',*,*,#16012,.F.); +#9181=ORIENTED_EDGE('',*,*,#15881,.F.); +#9182=ORIENTED_EDGE('',*,*,#15768,.F.); +#9183=ORIENTED_EDGE('',*,*,#15668,.T.); +#9184=ORIENTED_EDGE('',*,*,#16013,.F.); +#9185=ORIENTED_EDGE('',*,*,#15882,.F.); +#9186=ORIENTED_EDGE('',*,*,#16012,.T.); +#9187=ORIENTED_EDGE('',*,*,#15767,.F.); +#9188=ORIENTED_EDGE('',*,*,#16014,.F.); +#9189=ORIENTED_EDGE('',*,*,#14970,.F.); +#9190=ORIENTED_EDGE('',*,*,#16015,.T.); +#9191=ORIENTED_EDGE('',*,*,#14838,.F.); +#9192=ORIENTED_EDGE('',*,*,#16016,.F.); +#9193=ORIENTED_EDGE('',*,*,#14971,.F.); +#9194=ORIENTED_EDGE('',*,*,#16014,.T.); +#9195=ORIENTED_EDGE('',*,*,#14837,.F.); +#9196=ORIENTED_EDGE('',*,*,#14836,.T.); +#9197=ORIENTED_EDGE('',*,*,#16017,.F.); +#9198=ORIENTED_EDGE('',*,*,#14972,.T.); +#9199=ORIENTED_EDGE('',*,*,#16016,.T.); +#9200=ORIENTED_EDGE('',*,*,#16018,.F.); +#9201=ORIENTED_EDGE('',*,*,#14973,.F.); +#9202=ORIENTED_EDGE('',*,*,#16017,.T.); +#9203=ORIENTED_EDGE('',*,*,#14835,.F.); +#9204=ORIENTED_EDGE('',*,*,#16019,.F.); +#9205=ORIENTED_EDGE('',*,*,#14974,.F.); +#9206=ORIENTED_EDGE('',*,*,#16018,.T.); +#9207=ORIENTED_EDGE('',*,*,#14834,.F.); +#9208=ORIENTED_EDGE('',*,*,#15225,.F.); +#9209=ORIENTED_EDGE('',*,*,#14975,.F.); +#9210=ORIENTED_EDGE('',*,*,#16019,.T.); +#9211=ORIENTED_EDGE('',*,*,#14833,.F.); +#9212=ORIENTED_EDGE('',*,*,#16020,.F.); +#9213=ORIENTED_EDGE('',*,*,#14977,.F.); +#9214=ORIENTED_EDGE('',*,*,#15224,.T.); +#9215=ORIENTED_EDGE('',*,*,#14831,.F.); +#9216=ORIENTED_EDGE('',*,*,#16021,.F.); +#9217=ORIENTED_EDGE('',*,*,#14978,.F.); +#9218=ORIENTED_EDGE('',*,*,#16020,.T.); +#9219=ORIENTED_EDGE('',*,*,#14830,.F.); +#9220=ORIENTED_EDGE('',*,*,#16022,.F.); +#9221=ORIENTED_EDGE('',*,*,#14979,.F.); +#9222=ORIENTED_EDGE('',*,*,#16021,.T.); +#9223=ORIENTED_EDGE('',*,*,#14829,.F.); +#9224=ORIENTED_EDGE('',*,*,#14828,.T.); +#9225=ORIENTED_EDGE('',*,*,#16023,.F.); +#9226=ORIENTED_EDGE('',*,*,#14980,.T.); +#9227=ORIENTED_EDGE('',*,*,#16022,.T.); +#9228=ORIENTED_EDGE('',*,*,#16024,.F.); +#9229=ORIENTED_EDGE('',*,*,#14981,.F.); +#9230=ORIENTED_EDGE('',*,*,#16023,.T.); +#9231=ORIENTED_EDGE('',*,*,#14827,.F.); +#9232=ORIENTED_EDGE('',*,*,#16025,.F.); +#9233=ORIENTED_EDGE('',*,*,#14982,.F.); +#9234=ORIENTED_EDGE('',*,*,#16024,.T.); +#9235=ORIENTED_EDGE('',*,*,#14826,.F.); +#9236=ORIENTED_EDGE('',*,*,#16015,.F.); +#9237=ORIENTED_EDGE('',*,*,#15877,.T.); +#9238=ORIENTED_EDGE('',*,*,#16013,.T.); +#9239=ORIENTED_EDGE('',*,*,#15667,.F.); +#9240=ORIENTED_EDGE('',*,*,#16026,.F.); +#9241=ORIENTED_EDGE('',*,*,#15872,.T.); +#9242=ORIENTED_EDGE('',*,*,#16025,.T.); +#9243=ORIENTED_EDGE('',*,*,#15666,.F.); +#9244=ORIENTED_EDGE('',*,*,#15665,.T.); +#9245=ORIENTED_EDGE('',*,*,#15766,.F.); +#9246=ORIENTED_EDGE('',*,*,#16027,.F.); +#9247=ORIENTED_EDGE('',*,*,#15873,.F.); +#9248=ORIENTED_EDGE('',*,*,#16026,.T.); +#9249=ORIENTED_EDGE('',*,*,#15874,.F.); +#9250=ORIENTED_EDGE('',*,*,#16027,.T.); +#9251=ORIENTED_EDGE('',*,*,#15765,.F.); +#9252=ORIENTED_EDGE('',*,*,#16028,.F.); +#9253=ORIENTED_EDGE('',*,*,#15875,.F.); +#9254=ORIENTED_EDGE('',*,*,#15763,.F.); +#9255=ORIENTED_EDGE('',*,*,#15663,.T.); +#9256=ORIENTED_EDGE('',*,*,#16029,.F.); +#9257=ORIENTED_EDGE('',*,*,#15876,.F.); +#9258=ORIENTED_EDGE('',*,*,#16028,.T.); +#9259=ORIENTED_EDGE('',*,*,#15762,.F.); +#9260=ORIENTED_EDGE('',*,*,#16030,.F.); +#9261=ORIENTED_EDGE('',*,*,#14984,.F.); +#9262=ORIENTED_EDGE('',*,*,#16031,.T.); +#9263=ORIENTED_EDGE('',*,*,#14824,.F.); +#9264=ORIENTED_EDGE('',*,*,#16032,.F.); +#9265=ORIENTED_EDGE('',*,*,#14985,.F.); +#9266=ORIENTED_EDGE('',*,*,#16030,.T.); +#9267=ORIENTED_EDGE('',*,*,#14823,.F.); +#9268=ORIENTED_EDGE('',*,*,#14822,.T.); +#9269=ORIENTED_EDGE('',*,*,#16033,.F.); +#9270=ORIENTED_EDGE('',*,*,#14986,.T.); +#9271=ORIENTED_EDGE('',*,*,#16032,.T.); +#9272=ORIENTED_EDGE('',*,*,#16034,.F.); +#9273=ORIENTED_EDGE('',*,*,#14987,.F.); +#9274=ORIENTED_EDGE('',*,*,#16033,.T.); +#9275=ORIENTED_EDGE('',*,*,#14821,.F.); +#9276=ORIENTED_EDGE('',*,*,#16035,.F.); +#9277=ORIENTED_EDGE('',*,*,#14988,.F.); +#9278=ORIENTED_EDGE('',*,*,#16034,.T.); +#9279=ORIENTED_EDGE('',*,*,#14820,.F.); +#9280=ORIENTED_EDGE('',*,*,#15223,.F.); +#9281=ORIENTED_EDGE('',*,*,#14989,.F.); +#9282=ORIENTED_EDGE('',*,*,#16035,.T.); +#9283=ORIENTED_EDGE('',*,*,#14819,.F.); +#9284=ORIENTED_EDGE('',*,*,#16036,.F.); +#9285=ORIENTED_EDGE('',*,*,#14991,.F.); +#9286=ORIENTED_EDGE('',*,*,#15222,.T.); +#9287=ORIENTED_EDGE('',*,*,#14817,.F.); +#9288=ORIENTED_EDGE('',*,*,#16037,.F.); +#9289=ORIENTED_EDGE('',*,*,#14992,.F.); +#9290=ORIENTED_EDGE('',*,*,#16036,.T.); +#9291=ORIENTED_EDGE('',*,*,#14816,.F.); +#9292=ORIENTED_EDGE('',*,*,#16038,.F.); +#9293=ORIENTED_EDGE('',*,*,#14993,.F.); +#9294=ORIENTED_EDGE('',*,*,#16037,.T.); +#9295=ORIENTED_EDGE('',*,*,#14815,.F.); +#9296=ORIENTED_EDGE('',*,*,#14814,.T.); +#9297=ORIENTED_EDGE('',*,*,#16039,.F.); +#9298=ORIENTED_EDGE('',*,*,#14994,.T.); +#9299=ORIENTED_EDGE('',*,*,#16038,.T.); +#9300=ORIENTED_EDGE('',*,*,#16040,.F.); +#9301=ORIENTED_EDGE('',*,*,#14995,.F.); +#9302=ORIENTED_EDGE('',*,*,#16039,.T.); +#9303=ORIENTED_EDGE('',*,*,#14813,.F.); +#9304=ORIENTED_EDGE('',*,*,#16041,.F.); +#9305=ORIENTED_EDGE('',*,*,#14996,.F.); +#9306=ORIENTED_EDGE('',*,*,#16040,.T.); +#9307=ORIENTED_EDGE('',*,*,#14812,.F.); +#9308=ORIENTED_EDGE('',*,*,#16031,.F.); +#9309=ORIENTED_EDGE('',*,*,#15871,.T.); +#9310=ORIENTED_EDGE('',*,*,#16029,.T.); +#9311=ORIENTED_EDGE('',*,*,#15662,.F.); +#9312=ORIENTED_EDGE('',*,*,#16042,.F.); +#9313=ORIENTED_EDGE('',*,*,#15866,.T.); +#9314=ORIENTED_EDGE('',*,*,#16041,.T.); +#9315=ORIENTED_EDGE('',*,*,#15661,.F.); +#9316=ORIENTED_EDGE('',*,*,#15660,.T.); +#9317=ORIENTED_EDGE('',*,*,#15761,.F.); +#9318=ORIENTED_EDGE('',*,*,#16043,.F.); +#9319=ORIENTED_EDGE('',*,*,#15867,.F.); +#9320=ORIENTED_EDGE('',*,*,#16042,.T.); +#9321=ORIENTED_EDGE('',*,*,#15868,.F.); +#9322=ORIENTED_EDGE('',*,*,#16043,.T.); +#9323=ORIENTED_EDGE('',*,*,#15760,.F.); +#9324=ORIENTED_EDGE('',*,*,#16044,.F.); +#9325=ORIENTED_EDGE('',*,*,#15869,.F.); +#9326=ORIENTED_EDGE('',*,*,#15758,.F.); +#9327=ORIENTED_EDGE('',*,*,#15658,.T.); +#9328=ORIENTED_EDGE('',*,*,#16045,.F.); +#9329=ORIENTED_EDGE('',*,*,#15870,.F.); +#9330=ORIENTED_EDGE('',*,*,#16044,.T.); +#9331=ORIENTED_EDGE('',*,*,#15757,.F.); +#9332=ORIENTED_EDGE('',*,*,#16046,.F.); +#9333=ORIENTED_EDGE('',*,*,#14998,.F.); +#9334=ORIENTED_EDGE('',*,*,#16047,.T.); +#9335=ORIENTED_EDGE('',*,*,#14810,.F.); +#9336=ORIENTED_EDGE('',*,*,#16048,.F.); +#9337=ORIENTED_EDGE('',*,*,#14999,.F.); +#9338=ORIENTED_EDGE('',*,*,#16046,.T.); +#9339=ORIENTED_EDGE('',*,*,#14809,.F.); +#9340=ORIENTED_EDGE('',*,*,#14808,.T.); +#9341=ORIENTED_EDGE('',*,*,#16049,.F.); +#9342=ORIENTED_EDGE('',*,*,#15000,.T.); +#9343=ORIENTED_EDGE('',*,*,#16048,.T.); +#9344=ORIENTED_EDGE('',*,*,#16050,.F.); +#9345=ORIENTED_EDGE('',*,*,#15001,.F.); +#9346=ORIENTED_EDGE('',*,*,#16049,.T.); +#9347=ORIENTED_EDGE('',*,*,#14807,.F.); +#9348=ORIENTED_EDGE('',*,*,#16051,.F.); +#9349=ORIENTED_EDGE('',*,*,#15002,.F.); +#9350=ORIENTED_EDGE('',*,*,#16050,.T.); +#9351=ORIENTED_EDGE('',*,*,#14806,.F.); +#9352=ORIENTED_EDGE('',*,*,#15221,.F.); +#9353=ORIENTED_EDGE('',*,*,#15003,.F.); +#9354=ORIENTED_EDGE('',*,*,#16051,.T.); +#9355=ORIENTED_EDGE('',*,*,#14805,.F.); +#9356=ORIENTED_EDGE('',*,*,#16052,.F.); +#9357=ORIENTED_EDGE('',*,*,#15005,.F.); +#9358=ORIENTED_EDGE('',*,*,#15220,.T.); +#9359=ORIENTED_EDGE('',*,*,#14803,.F.); +#9360=ORIENTED_EDGE('',*,*,#16053,.F.); +#9361=ORIENTED_EDGE('',*,*,#15006,.F.); +#9362=ORIENTED_EDGE('',*,*,#16052,.T.); +#9363=ORIENTED_EDGE('',*,*,#14802,.F.); +#9364=ORIENTED_EDGE('',*,*,#16054,.F.); +#9365=ORIENTED_EDGE('',*,*,#15007,.F.); +#9366=ORIENTED_EDGE('',*,*,#16053,.T.); +#9367=ORIENTED_EDGE('',*,*,#14801,.F.); +#9368=ORIENTED_EDGE('',*,*,#14800,.T.); +#9369=ORIENTED_EDGE('',*,*,#16055,.F.); +#9370=ORIENTED_EDGE('',*,*,#15008,.T.); +#9371=ORIENTED_EDGE('',*,*,#16054,.T.); +#9372=ORIENTED_EDGE('',*,*,#16056,.F.); +#9373=ORIENTED_EDGE('',*,*,#15009,.F.); +#9374=ORIENTED_EDGE('',*,*,#16055,.T.); +#9375=ORIENTED_EDGE('',*,*,#14799,.F.); +#9376=ORIENTED_EDGE('',*,*,#16057,.F.); +#9377=ORIENTED_EDGE('',*,*,#15010,.F.); +#9378=ORIENTED_EDGE('',*,*,#16056,.T.); +#9379=ORIENTED_EDGE('',*,*,#14798,.F.); +#9380=ORIENTED_EDGE('',*,*,#16047,.F.); +#9381=ORIENTED_EDGE('',*,*,#15865,.T.); +#9382=ORIENTED_EDGE('',*,*,#16045,.T.); +#9383=ORIENTED_EDGE('',*,*,#15657,.F.); +#9384=ORIENTED_EDGE('',*,*,#16058,.F.); +#9385=ORIENTED_EDGE('',*,*,#15860,.T.); +#9386=ORIENTED_EDGE('',*,*,#16057,.T.); +#9387=ORIENTED_EDGE('',*,*,#15656,.F.); +#9388=ORIENTED_EDGE('',*,*,#15655,.T.); +#9389=ORIENTED_EDGE('',*,*,#15756,.F.); +#9390=ORIENTED_EDGE('',*,*,#16059,.F.); +#9391=ORIENTED_EDGE('',*,*,#15861,.F.); +#9392=ORIENTED_EDGE('',*,*,#16058,.T.); +#9393=ORIENTED_EDGE('',*,*,#15862,.F.); +#9394=ORIENTED_EDGE('',*,*,#16059,.T.); +#9395=ORIENTED_EDGE('',*,*,#15755,.F.); +#9396=ORIENTED_EDGE('',*,*,#16060,.F.); +#9397=ORIENTED_EDGE('',*,*,#15863,.F.); +#9398=ORIENTED_EDGE('',*,*,#15753,.F.); +#9399=ORIENTED_EDGE('',*,*,#15653,.T.); +#9400=ORIENTED_EDGE('',*,*,#16061,.F.); +#9401=ORIENTED_EDGE('',*,*,#15864,.F.); +#9402=ORIENTED_EDGE('',*,*,#16060,.T.); +#9403=ORIENTED_EDGE('',*,*,#15752,.F.); +#9404=ORIENTED_EDGE('',*,*,#16062,.F.); +#9405=ORIENTED_EDGE('',*,*,#15012,.F.); +#9406=ORIENTED_EDGE('',*,*,#16063,.T.); +#9407=ORIENTED_EDGE('',*,*,#14796,.F.); +#9408=ORIENTED_EDGE('',*,*,#16064,.F.); +#9409=ORIENTED_EDGE('',*,*,#15013,.F.); +#9410=ORIENTED_EDGE('',*,*,#16062,.T.); +#9411=ORIENTED_EDGE('',*,*,#14795,.F.); +#9412=ORIENTED_EDGE('',*,*,#14794,.T.); +#9413=ORIENTED_EDGE('',*,*,#16065,.F.); +#9414=ORIENTED_EDGE('',*,*,#15014,.T.); +#9415=ORIENTED_EDGE('',*,*,#16064,.T.); +#9416=ORIENTED_EDGE('',*,*,#16066,.F.); +#9417=ORIENTED_EDGE('',*,*,#15015,.F.); +#9418=ORIENTED_EDGE('',*,*,#16065,.T.); +#9419=ORIENTED_EDGE('',*,*,#14793,.F.); +#9420=ORIENTED_EDGE('',*,*,#16067,.F.); +#9421=ORIENTED_EDGE('',*,*,#15016,.F.); +#9422=ORIENTED_EDGE('',*,*,#16066,.T.); +#9423=ORIENTED_EDGE('',*,*,#14792,.F.); +#9424=ORIENTED_EDGE('',*,*,#15219,.F.); +#9425=ORIENTED_EDGE('',*,*,#15017,.F.); +#9426=ORIENTED_EDGE('',*,*,#16067,.T.); +#9427=ORIENTED_EDGE('',*,*,#14791,.F.); +#9428=ORIENTED_EDGE('',*,*,#16068,.F.); +#9429=ORIENTED_EDGE('',*,*,#15019,.F.); +#9430=ORIENTED_EDGE('',*,*,#15218,.T.); +#9431=ORIENTED_EDGE('',*,*,#14789,.F.); +#9432=ORIENTED_EDGE('',*,*,#16069,.F.); +#9433=ORIENTED_EDGE('',*,*,#15020,.F.); +#9434=ORIENTED_EDGE('',*,*,#16068,.T.); +#9435=ORIENTED_EDGE('',*,*,#14788,.F.); +#9436=ORIENTED_EDGE('',*,*,#16070,.F.); +#9437=ORIENTED_EDGE('',*,*,#15021,.F.); +#9438=ORIENTED_EDGE('',*,*,#16069,.T.); +#9439=ORIENTED_EDGE('',*,*,#14787,.F.); +#9440=ORIENTED_EDGE('',*,*,#14786,.T.); +#9441=ORIENTED_EDGE('',*,*,#16071,.F.); +#9442=ORIENTED_EDGE('',*,*,#15022,.T.); +#9443=ORIENTED_EDGE('',*,*,#16070,.T.); +#9444=ORIENTED_EDGE('',*,*,#16072,.F.); +#9445=ORIENTED_EDGE('',*,*,#15023,.F.); +#9446=ORIENTED_EDGE('',*,*,#16071,.T.); +#9447=ORIENTED_EDGE('',*,*,#14785,.F.); +#9448=ORIENTED_EDGE('',*,*,#16073,.F.); +#9449=ORIENTED_EDGE('',*,*,#15024,.F.); +#9450=ORIENTED_EDGE('',*,*,#16072,.T.); +#9451=ORIENTED_EDGE('',*,*,#14784,.F.); +#9452=ORIENTED_EDGE('',*,*,#16063,.F.); +#9453=ORIENTED_EDGE('',*,*,#15859,.T.); +#9454=ORIENTED_EDGE('',*,*,#16061,.T.); +#9455=ORIENTED_EDGE('',*,*,#15652,.F.); +#9456=ORIENTED_EDGE('',*,*,#16074,.F.); +#9457=ORIENTED_EDGE('',*,*,#15854,.T.); +#9458=ORIENTED_EDGE('',*,*,#16073,.T.); +#9459=ORIENTED_EDGE('',*,*,#15651,.F.); +#9460=ORIENTED_EDGE('',*,*,#15650,.T.); +#9461=ORIENTED_EDGE('',*,*,#15751,.F.); +#9462=ORIENTED_EDGE('',*,*,#16075,.F.); +#9463=ORIENTED_EDGE('',*,*,#15855,.F.); +#9464=ORIENTED_EDGE('',*,*,#16074,.T.); +#9465=ORIENTED_EDGE('',*,*,#15856,.F.); +#9466=ORIENTED_EDGE('',*,*,#16075,.T.); +#9467=ORIENTED_EDGE('',*,*,#15750,.F.); +#9468=ORIENTED_EDGE('',*,*,#16076,.F.); +#9469=ORIENTED_EDGE('',*,*,#15857,.F.); +#9470=ORIENTED_EDGE('',*,*,#15748,.F.); +#9471=ORIENTED_EDGE('',*,*,#15648,.T.); +#9472=ORIENTED_EDGE('',*,*,#16077,.F.); +#9473=ORIENTED_EDGE('',*,*,#15858,.F.); +#9474=ORIENTED_EDGE('',*,*,#16076,.T.); +#9475=ORIENTED_EDGE('',*,*,#15747,.F.); +#9476=ORIENTED_EDGE('',*,*,#16078,.F.); +#9477=ORIENTED_EDGE('',*,*,#15026,.F.); +#9478=ORIENTED_EDGE('',*,*,#16079,.T.); +#9479=ORIENTED_EDGE('',*,*,#14782,.F.); +#9480=ORIENTED_EDGE('',*,*,#16080,.F.); +#9481=ORIENTED_EDGE('',*,*,#15027,.F.); +#9482=ORIENTED_EDGE('',*,*,#16078,.T.); +#9483=ORIENTED_EDGE('',*,*,#14781,.F.); +#9484=ORIENTED_EDGE('',*,*,#14780,.T.); +#9485=ORIENTED_EDGE('',*,*,#16081,.F.); +#9486=ORIENTED_EDGE('',*,*,#15028,.T.); +#9487=ORIENTED_EDGE('',*,*,#16080,.T.); +#9488=ORIENTED_EDGE('',*,*,#16082,.F.); +#9489=ORIENTED_EDGE('',*,*,#15029,.F.); +#9490=ORIENTED_EDGE('',*,*,#16081,.T.); +#9491=ORIENTED_EDGE('',*,*,#14779,.F.); +#9492=ORIENTED_EDGE('',*,*,#16083,.F.); +#9493=ORIENTED_EDGE('',*,*,#15030,.F.); +#9494=ORIENTED_EDGE('',*,*,#16082,.T.); +#9495=ORIENTED_EDGE('',*,*,#14778,.F.); +#9496=ORIENTED_EDGE('',*,*,#15217,.F.); +#9497=ORIENTED_EDGE('',*,*,#15031,.F.); +#9498=ORIENTED_EDGE('',*,*,#16083,.T.); +#9499=ORIENTED_EDGE('',*,*,#14777,.F.); +#9500=ORIENTED_EDGE('',*,*,#16084,.F.); +#9501=ORIENTED_EDGE('',*,*,#15033,.F.); +#9502=ORIENTED_EDGE('',*,*,#15216,.T.); +#9503=ORIENTED_EDGE('',*,*,#14775,.F.); +#9504=ORIENTED_EDGE('',*,*,#16085,.F.); +#9505=ORIENTED_EDGE('',*,*,#15034,.F.); +#9506=ORIENTED_EDGE('',*,*,#16084,.T.); +#9507=ORIENTED_EDGE('',*,*,#14774,.F.); +#9508=ORIENTED_EDGE('',*,*,#16086,.F.); +#9509=ORIENTED_EDGE('',*,*,#15035,.F.); +#9510=ORIENTED_EDGE('',*,*,#16085,.T.); +#9511=ORIENTED_EDGE('',*,*,#14773,.F.); +#9512=ORIENTED_EDGE('',*,*,#14772,.T.); +#9513=ORIENTED_EDGE('',*,*,#16087,.F.); +#9514=ORIENTED_EDGE('',*,*,#15036,.T.); +#9515=ORIENTED_EDGE('',*,*,#16086,.T.); +#9516=ORIENTED_EDGE('',*,*,#16088,.F.); +#9517=ORIENTED_EDGE('',*,*,#15037,.F.); +#9518=ORIENTED_EDGE('',*,*,#16087,.T.); +#9519=ORIENTED_EDGE('',*,*,#14771,.F.); +#9520=ORIENTED_EDGE('',*,*,#16089,.F.); +#9521=ORIENTED_EDGE('',*,*,#15038,.F.); +#9522=ORIENTED_EDGE('',*,*,#16088,.T.); +#9523=ORIENTED_EDGE('',*,*,#14770,.F.); +#9524=ORIENTED_EDGE('',*,*,#16079,.F.); +#9525=ORIENTED_EDGE('',*,*,#15853,.T.); +#9526=ORIENTED_EDGE('',*,*,#16077,.T.); +#9527=ORIENTED_EDGE('',*,*,#15647,.F.); +#9528=ORIENTED_EDGE('',*,*,#16090,.F.); +#9529=ORIENTED_EDGE('',*,*,#15848,.T.); +#9530=ORIENTED_EDGE('',*,*,#16089,.T.); +#9531=ORIENTED_EDGE('',*,*,#15646,.F.); +#9532=ORIENTED_EDGE('',*,*,#15645,.T.); +#9533=ORIENTED_EDGE('',*,*,#15746,.F.); +#9534=ORIENTED_EDGE('',*,*,#16091,.F.); +#9535=ORIENTED_EDGE('',*,*,#15849,.F.); +#9536=ORIENTED_EDGE('',*,*,#16090,.T.); +#9537=ORIENTED_EDGE('',*,*,#15850,.F.); +#9538=ORIENTED_EDGE('',*,*,#16091,.T.); +#9539=ORIENTED_EDGE('',*,*,#15745,.F.); +#9540=ORIENTED_EDGE('',*,*,#16092,.F.); +#9541=ORIENTED_EDGE('',*,*,#15851,.F.); +#9542=ORIENTED_EDGE('',*,*,#15743,.F.); +#9543=ORIENTED_EDGE('',*,*,#15643,.T.); +#9544=ORIENTED_EDGE('',*,*,#16093,.F.); +#9545=ORIENTED_EDGE('',*,*,#15852,.F.); +#9546=ORIENTED_EDGE('',*,*,#16092,.T.); +#9547=ORIENTED_EDGE('',*,*,#15742,.F.); +#9548=ORIENTED_EDGE('',*,*,#16094,.F.); +#9549=ORIENTED_EDGE('',*,*,#15040,.F.); +#9550=ORIENTED_EDGE('',*,*,#16095,.T.); +#9551=ORIENTED_EDGE('',*,*,#14768,.F.); +#9552=ORIENTED_EDGE('',*,*,#16096,.F.); +#9553=ORIENTED_EDGE('',*,*,#15041,.F.); +#9554=ORIENTED_EDGE('',*,*,#16094,.T.); +#9555=ORIENTED_EDGE('',*,*,#14767,.F.); +#9556=ORIENTED_EDGE('',*,*,#14766,.T.); +#9557=ORIENTED_EDGE('',*,*,#16097,.F.); +#9558=ORIENTED_EDGE('',*,*,#15042,.T.); +#9559=ORIENTED_EDGE('',*,*,#16096,.T.); +#9560=ORIENTED_EDGE('',*,*,#16098,.F.); +#9561=ORIENTED_EDGE('',*,*,#15043,.F.); +#9562=ORIENTED_EDGE('',*,*,#16097,.T.); +#9563=ORIENTED_EDGE('',*,*,#14765,.F.); +#9564=ORIENTED_EDGE('',*,*,#16099,.F.); +#9565=ORIENTED_EDGE('',*,*,#15044,.F.); +#9566=ORIENTED_EDGE('',*,*,#16098,.T.); +#9567=ORIENTED_EDGE('',*,*,#14764,.F.); +#9568=ORIENTED_EDGE('',*,*,#15215,.F.); +#9569=ORIENTED_EDGE('',*,*,#15045,.F.); +#9570=ORIENTED_EDGE('',*,*,#16099,.T.); +#9571=ORIENTED_EDGE('',*,*,#14763,.F.); +#9572=ORIENTED_EDGE('',*,*,#16100,.F.); +#9573=ORIENTED_EDGE('',*,*,#15047,.F.); +#9574=ORIENTED_EDGE('',*,*,#15214,.T.); +#9575=ORIENTED_EDGE('',*,*,#14761,.F.); +#9576=ORIENTED_EDGE('',*,*,#16101,.F.); +#9577=ORIENTED_EDGE('',*,*,#15048,.F.); +#9578=ORIENTED_EDGE('',*,*,#16100,.T.); +#9579=ORIENTED_EDGE('',*,*,#14760,.F.); +#9580=ORIENTED_EDGE('',*,*,#16102,.F.); +#9581=ORIENTED_EDGE('',*,*,#15049,.F.); +#9582=ORIENTED_EDGE('',*,*,#16101,.T.); +#9583=ORIENTED_EDGE('',*,*,#14759,.F.); +#9584=ORIENTED_EDGE('',*,*,#14758,.T.); +#9585=ORIENTED_EDGE('',*,*,#16103,.F.); +#9586=ORIENTED_EDGE('',*,*,#15050,.T.); +#9587=ORIENTED_EDGE('',*,*,#16102,.T.); +#9588=ORIENTED_EDGE('',*,*,#16104,.F.); +#9589=ORIENTED_EDGE('',*,*,#15051,.F.); +#9590=ORIENTED_EDGE('',*,*,#16103,.T.); +#9591=ORIENTED_EDGE('',*,*,#14757,.F.); +#9592=ORIENTED_EDGE('',*,*,#16105,.F.); +#9593=ORIENTED_EDGE('',*,*,#15052,.F.); +#9594=ORIENTED_EDGE('',*,*,#16104,.T.); +#9595=ORIENTED_EDGE('',*,*,#14756,.F.); +#9596=ORIENTED_EDGE('',*,*,#16095,.F.); +#9597=ORIENTED_EDGE('',*,*,#15847,.T.); +#9598=ORIENTED_EDGE('',*,*,#16093,.T.); +#9599=ORIENTED_EDGE('',*,*,#15642,.F.); +#9600=ORIENTED_EDGE('',*,*,#16106,.F.); +#9601=ORIENTED_EDGE('',*,*,#15842,.T.); +#9602=ORIENTED_EDGE('',*,*,#16105,.T.); +#9603=ORIENTED_EDGE('',*,*,#15641,.F.); +#9604=ORIENTED_EDGE('',*,*,#15640,.T.); +#9605=ORIENTED_EDGE('',*,*,#15741,.F.); +#9606=ORIENTED_EDGE('',*,*,#16107,.F.); +#9607=ORIENTED_EDGE('',*,*,#15843,.F.); +#9608=ORIENTED_EDGE('',*,*,#16106,.T.); +#9609=ORIENTED_EDGE('',*,*,#15844,.F.); +#9610=ORIENTED_EDGE('',*,*,#16107,.T.); +#9611=ORIENTED_EDGE('',*,*,#15740,.F.); +#9612=ORIENTED_EDGE('',*,*,#16108,.F.); +#9613=ORIENTED_EDGE('',*,*,#15845,.F.); +#9614=ORIENTED_EDGE('',*,*,#15738,.F.); +#9615=ORIENTED_EDGE('',*,*,#15638,.T.); +#9616=ORIENTED_EDGE('',*,*,#16109,.F.); +#9617=ORIENTED_EDGE('',*,*,#15846,.F.); +#9618=ORIENTED_EDGE('',*,*,#16108,.T.); +#9619=ORIENTED_EDGE('',*,*,#15737,.F.); +#9620=ORIENTED_EDGE('',*,*,#16110,.F.); +#9621=ORIENTED_EDGE('',*,*,#15054,.F.); +#9622=ORIENTED_EDGE('',*,*,#16111,.T.); +#9623=ORIENTED_EDGE('',*,*,#14754,.F.); +#9624=ORIENTED_EDGE('',*,*,#16112,.F.); +#9625=ORIENTED_EDGE('',*,*,#15055,.F.); +#9626=ORIENTED_EDGE('',*,*,#16110,.T.); +#9627=ORIENTED_EDGE('',*,*,#14753,.F.); +#9628=ORIENTED_EDGE('',*,*,#14752,.T.); +#9629=ORIENTED_EDGE('',*,*,#16113,.F.); +#9630=ORIENTED_EDGE('',*,*,#15056,.T.); +#9631=ORIENTED_EDGE('',*,*,#16112,.T.); +#9632=ORIENTED_EDGE('',*,*,#16114,.F.); +#9633=ORIENTED_EDGE('',*,*,#15057,.F.); +#9634=ORIENTED_EDGE('',*,*,#16113,.T.); +#9635=ORIENTED_EDGE('',*,*,#14751,.F.); +#9636=ORIENTED_EDGE('',*,*,#16115,.F.); +#9637=ORIENTED_EDGE('',*,*,#15058,.F.); +#9638=ORIENTED_EDGE('',*,*,#16114,.T.); +#9639=ORIENTED_EDGE('',*,*,#14750,.F.); +#9640=ORIENTED_EDGE('',*,*,#15213,.F.); +#9641=ORIENTED_EDGE('',*,*,#15059,.F.); +#9642=ORIENTED_EDGE('',*,*,#16115,.T.); +#9643=ORIENTED_EDGE('',*,*,#14749,.F.); +#9644=ORIENTED_EDGE('',*,*,#16116,.F.); +#9645=ORIENTED_EDGE('',*,*,#15061,.F.); +#9646=ORIENTED_EDGE('',*,*,#15212,.T.); +#9647=ORIENTED_EDGE('',*,*,#14747,.F.); +#9648=ORIENTED_EDGE('',*,*,#16117,.F.); +#9649=ORIENTED_EDGE('',*,*,#15062,.F.); +#9650=ORIENTED_EDGE('',*,*,#16116,.T.); +#9651=ORIENTED_EDGE('',*,*,#14746,.F.); +#9652=ORIENTED_EDGE('',*,*,#16118,.F.); +#9653=ORIENTED_EDGE('',*,*,#15063,.F.); +#9654=ORIENTED_EDGE('',*,*,#16117,.T.); +#9655=ORIENTED_EDGE('',*,*,#14745,.F.); +#9656=ORIENTED_EDGE('',*,*,#14744,.T.); +#9657=ORIENTED_EDGE('',*,*,#16119,.F.); +#9658=ORIENTED_EDGE('',*,*,#15064,.T.); +#9659=ORIENTED_EDGE('',*,*,#16118,.T.); +#9660=ORIENTED_EDGE('',*,*,#16120,.F.); +#9661=ORIENTED_EDGE('',*,*,#15065,.F.); +#9662=ORIENTED_EDGE('',*,*,#16119,.T.); +#9663=ORIENTED_EDGE('',*,*,#14743,.F.); +#9664=ORIENTED_EDGE('',*,*,#16121,.F.); +#9665=ORIENTED_EDGE('',*,*,#15066,.F.); +#9666=ORIENTED_EDGE('',*,*,#16120,.T.); +#9667=ORIENTED_EDGE('',*,*,#14742,.F.); +#9668=ORIENTED_EDGE('',*,*,#16111,.F.); +#9669=ORIENTED_EDGE('',*,*,#15841,.T.); +#9670=ORIENTED_EDGE('',*,*,#16109,.T.); +#9671=ORIENTED_EDGE('',*,*,#15637,.F.); +#9672=ORIENTED_EDGE('',*,*,#16122,.F.); +#9673=ORIENTED_EDGE('',*,*,#15836,.T.); +#9674=ORIENTED_EDGE('',*,*,#16121,.T.); +#9675=ORIENTED_EDGE('',*,*,#15636,.F.); +#9676=ORIENTED_EDGE('',*,*,#15635,.T.); +#9677=ORIENTED_EDGE('',*,*,#15736,.F.); +#9678=ORIENTED_EDGE('',*,*,#16123,.F.); +#9679=ORIENTED_EDGE('',*,*,#15837,.F.); +#9680=ORIENTED_EDGE('',*,*,#16122,.T.); +#9681=ORIENTED_EDGE('',*,*,#15838,.F.); +#9682=ORIENTED_EDGE('',*,*,#16123,.T.); +#9683=ORIENTED_EDGE('',*,*,#15735,.F.); +#9684=ORIENTED_EDGE('',*,*,#16124,.F.); +#9685=ORIENTED_EDGE('',*,*,#15839,.F.); +#9686=ORIENTED_EDGE('',*,*,#15733,.F.); +#9687=ORIENTED_EDGE('',*,*,#15633,.T.); +#9688=ORIENTED_EDGE('',*,*,#16125,.F.); +#9689=ORIENTED_EDGE('',*,*,#15840,.F.); +#9690=ORIENTED_EDGE('',*,*,#16124,.T.); +#9691=ORIENTED_EDGE('',*,*,#15732,.F.); +#9692=ORIENTED_EDGE('',*,*,#16126,.F.); +#9693=ORIENTED_EDGE('',*,*,#15068,.F.); +#9694=ORIENTED_EDGE('',*,*,#16127,.T.); +#9695=ORIENTED_EDGE('',*,*,#14740,.F.); +#9696=ORIENTED_EDGE('',*,*,#16128,.F.); +#9697=ORIENTED_EDGE('',*,*,#15069,.F.); +#9698=ORIENTED_EDGE('',*,*,#16126,.T.); +#9699=ORIENTED_EDGE('',*,*,#14739,.F.); +#9700=ORIENTED_EDGE('',*,*,#14738,.T.); +#9701=ORIENTED_EDGE('',*,*,#16129,.F.); +#9702=ORIENTED_EDGE('',*,*,#15070,.T.); +#9703=ORIENTED_EDGE('',*,*,#16128,.T.); +#9704=ORIENTED_EDGE('',*,*,#16130,.F.); +#9705=ORIENTED_EDGE('',*,*,#15071,.F.); +#9706=ORIENTED_EDGE('',*,*,#16129,.T.); +#9707=ORIENTED_EDGE('',*,*,#14737,.F.); +#9708=ORIENTED_EDGE('',*,*,#16131,.F.); +#9709=ORIENTED_EDGE('',*,*,#15072,.F.); +#9710=ORIENTED_EDGE('',*,*,#16130,.T.); +#9711=ORIENTED_EDGE('',*,*,#14736,.F.); +#9712=ORIENTED_EDGE('',*,*,#15211,.F.); +#9713=ORIENTED_EDGE('',*,*,#15073,.F.); +#9714=ORIENTED_EDGE('',*,*,#16131,.T.); +#9715=ORIENTED_EDGE('',*,*,#14735,.F.); +#9716=ORIENTED_EDGE('',*,*,#16132,.F.); +#9717=ORIENTED_EDGE('',*,*,#15075,.F.); +#9718=ORIENTED_EDGE('',*,*,#15210,.T.); +#9719=ORIENTED_EDGE('',*,*,#14733,.F.); +#9720=ORIENTED_EDGE('',*,*,#16133,.F.); +#9721=ORIENTED_EDGE('',*,*,#15076,.F.); +#9722=ORIENTED_EDGE('',*,*,#16132,.T.); +#9723=ORIENTED_EDGE('',*,*,#14732,.F.); +#9724=ORIENTED_EDGE('',*,*,#16134,.F.); +#9725=ORIENTED_EDGE('',*,*,#15077,.F.); +#9726=ORIENTED_EDGE('',*,*,#16133,.T.); +#9727=ORIENTED_EDGE('',*,*,#14731,.F.); +#9728=ORIENTED_EDGE('',*,*,#14730,.T.); +#9729=ORIENTED_EDGE('',*,*,#16135,.F.); +#9730=ORIENTED_EDGE('',*,*,#15078,.T.); +#9731=ORIENTED_EDGE('',*,*,#16134,.T.); +#9732=ORIENTED_EDGE('',*,*,#16136,.F.); +#9733=ORIENTED_EDGE('',*,*,#15079,.F.); +#9734=ORIENTED_EDGE('',*,*,#16135,.T.); +#9735=ORIENTED_EDGE('',*,*,#14729,.F.); +#9736=ORIENTED_EDGE('',*,*,#16137,.F.); +#9737=ORIENTED_EDGE('',*,*,#15080,.F.); +#9738=ORIENTED_EDGE('',*,*,#16136,.T.); +#9739=ORIENTED_EDGE('',*,*,#14728,.F.); +#9740=ORIENTED_EDGE('',*,*,#16127,.F.); +#9741=ORIENTED_EDGE('',*,*,#15835,.T.); +#9742=ORIENTED_EDGE('',*,*,#16125,.T.); +#9743=ORIENTED_EDGE('',*,*,#15632,.F.); +#9744=ORIENTED_EDGE('',*,*,#16138,.F.); +#9745=ORIENTED_EDGE('',*,*,#15830,.T.); +#9746=ORIENTED_EDGE('',*,*,#16137,.T.); +#9747=ORIENTED_EDGE('',*,*,#15631,.F.); +#9748=ORIENTED_EDGE('',*,*,#15630,.T.); +#9749=ORIENTED_EDGE('',*,*,#15731,.F.); +#9750=ORIENTED_EDGE('',*,*,#16139,.F.); +#9751=ORIENTED_EDGE('',*,*,#15831,.F.); +#9752=ORIENTED_EDGE('',*,*,#16138,.T.); +#9753=ORIENTED_EDGE('',*,*,#15832,.F.); +#9754=ORIENTED_EDGE('',*,*,#16139,.T.); +#9755=ORIENTED_EDGE('',*,*,#15730,.F.); +#9756=ORIENTED_EDGE('',*,*,#16140,.F.); +#9757=ORIENTED_EDGE('',*,*,#15833,.F.); +#9758=ORIENTED_EDGE('',*,*,#15728,.F.); +#9759=ORIENTED_EDGE('',*,*,#15628,.T.); +#9760=ORIENTED_EDGE('',*,*,#16141,.F.); +#9761=ORIENTED_EDGE('',*,*,#15834,.F.); +#9762=ORIENTED_EDGE('',*,*,#16140,.T.); +#9763=ORIENTED_EDGE('',*,*,#15727,.F.); +#9764=ORIENTED_EDGE('',*,*,#16142,.F.); +#9765=ORIENTED_EDGE('',*,*,#15082,.F.); +#9766=ORIENTED_EDGE('',*,*,#16143,.T.); +#9767=ORIENTED_EDGE('',*,*,#14726,.F.); +#9768=ORIENTED_EDGE('',*,*,#16144,.F.); +#9769=ORIENTED_EDGE('',*,*,#15083,.F.); +#9770=ORIENTED_EDGE('',*,*,#16142,.T.); +#9771=ORIENTED_EDGE('',*,*,#14725,.F.); +#9772=ORIENTED_EDGE('',*,*,#14724,.T.); +#9773=ORIENTED_EDGE('',*,*,#16145,.F.); +#9774=ORIENTED_EDGE('',*,*,#15084,.T.); +#9775=ORIENTED_EDGE('',*,*,#16144,.T.); +#9776=ORIENTED_EDGE('',*,*,#16146,.F.); +#9777=ORIENTED_EDGE('',*,*,#15085,.F.); +#9778=ORIENTED_EDGE('',*,*,#16145,.T.); +#9779=ORIENTED_EDGE('',*,*,#14723,.F.); +#9780=ORIENTED_EDGE('',*,*,#16147,.F.); +#9781=ORIENTED_EDGE('',*,*,#15086,.F.); +#9782=ORIENTED_EDGE('',*,*,#16146,.T.); +#9783=ORIENTED_EDGE('',*,*,#14722,.F.); +#9784=ORIENTED_EDGE('',*,*,#15209,.F.); +#9785=ORIENTED_EDGE('',*,*,#15087,.F.); +#9786=ORIENTED_EDGE('',*,*,#16147,.T.); +#9787=ORIENTED_EDGE('',*,*,#14721,.F.); +#9788=ORIENTED_EDGE('',*,*,#16148,.F.); +#9789=ORIENTED_EDGE('',*,*,#15089,.F.); +#9790=ORIENTED_EDGE('',*,*,#15208,.T.); +#9791=ORIENTED_EDGE('',*,*,#14719,.F.); +#9792=ORIENTED_EDGE('',*,*,#16149,.F.); +#9793=ORIENTED_EDGE('',*,*,#15090,.F.); +#9794=ORIENTED_EDGE('',*,*,#16148,.T.); +#9795=ORIENTED_EDGE('',*,*,#14718,.F.); +#9796=ORIENTED_EDGE('',*,*,#16150,.F.); +#9797=ORIENTED_EDGE('',*,*,#15091,.F.); +#9798=ORIENTED_EDGE('',*,*,#16149,.T.); +#9799=ORIENTED_EDGE('',*,*,#14717,.F.); +#9800=ORIENTED_EDGE('',*,*,#14716,.T.); +#9801=ORIENTED_EDGE('',*,*,#16151,.F.); +#9802=ORIENTED_EDGE('',*,*,#15092,.T.); +#9803=ORIENTED_EDGE('',*,*,#16150,.T.); +#9804=ORIENTED_EDGE('',*,*,#16152,.F.); +#9805=ORIENTED_EDGE('',*,*,#15093,.F.); +#9806=ORIENTED_EDGE('',*,*,#16151,.T.); +#9807=ORIENTED_EDGE('',*,*,#14715,.F.); +#9808=ORIENTED_EDGE('',*,*,#16153,.F.); +#9809=ORIENTED_EDGE('',*,*,#15094,.F.); +#9810=ORIENTED_EDGE('',*,*,#16152,.T.); +#9811=ORIENTED_EDGE('',*,*,#14714,.F.); +#9812=ORIENTED_EDGE('',*,*,#16143,.F.); +#9813=ORIENTED_EDGE('',*,*,#15829,.T.); +#9814=ORIENTED_EDGE('',*,*,#16141,.T.); +#9815=ORIENTED_EDGE('',*,*,#15627,.F.); +#9816=ORIENTED_EDGE('',*,*,#16154,.F.); +#9817=ORIENTED_EDGE('',*,*,#15824,.T.); +#9818=ORIENTED_EDGE('',*,*,#16153,.T.); +#9819=ORIENTED_EDGE('',*,*,#15626,.F.); +#9820=ORIENTED_EDGE('',*,*,#15625,.T.); +#9821=ORIENTED_EDGE('',*,*,#15726,.F.); +#9822=ORIENTED_EDGE('',*,*,#16155,.F.); +#9823=ORIENTED_EDGE('',*,*,#15825,.F.); +#9824=ORIENTED_EDGE('',*,*,#16154,.T.); +#9825=ORIENTED_EDGE('',*,*,#15826,.F.); +#9826=ORIENTED_EDGE('',*,*,#16155,.T.); +#9827=ORIENTED_EDGE('',*,*,#15725,.F.); +#9828=ORIENTED_EDGE('',*,*,#16156,.F.); +#9829=ORIENTED_EDGE('',*,*,#15827,.F.); +#9830=ORIENTED_EDGE('',*,*,#15723,.F.); +#9831=ORIENTED_EDGE('',*,*,#15623,.T.); +#9832=ORIENTED_EDGE('',*,*,#16157,.F.); +#9833=ORIENTED_EDGE('',*,*,#15828,.F.); +#9834=ORIENTED_EDGE('',*,*,#16156,.T.); +#9835=ORIENTED_EDGE('',*,*,#15722,.F.); +#9836=ORIENTED_EDGE('',*,*,#16158,.F.); +#9837=ORIENTED_EDGE('',*,*,#15096,.F.); +#9838=ORIENTED_EDGE('',*,*,#16159,.T.); +#9839=ORIENTED_EDGE('',*,*,#14712,.F.); +#9840=ORIENTED_EDGE('',*,*,#16160,.F.); +#9841=ORIENTED_EDGE('',*,*,#15097,.F.); +#9842=ORIENTED_EDGE('',*,*,#16158,.T.); +#9843=ORIENTED_EDGE('',*,*,#14711,.F.); +#9844=ORIENTED_EDGE('',*,*,#14710,.T.); +#9845=ORIENTED_EDGE('',*,*,#16161,.F.); +#9846=ORIENTED_EDGE('',*,*,#15098,.T.); +#9847=ORIENTED_EDGE('',*,*,#16160,.T.); +#9848=ORIENTED_EDGE('',*,*,#16162,.F.); +#9849=ORIENTED_EDGE('',*,*,#15099,.F.); +#9850=ORIENTED_EDGE('',*,*,#16161,.T.); +#9851=ORIENTED_EDGE('',*,*,#14709,.F.); +#9852=ORIENTED_EDGE('',*,*,#16163,.F.); +#9853=ORIENTED_EDGE('',*,*,#15100,.F.); +#9854=ORIENTED_EDGE('',*,*,#16162,.T.); +#9855=ORIENTED_EDGE('',*,*,#14708,.F.); +#9856=ORIENTED_EDGE('',*,*,#15207,.F.); +#9857=ORIENTED_EDGE('',*,*,#15101,.F.); +#9858=ORIENTED_EDGE('',*,*,#16163,.T.); +#9859=ORIENTED_EDGE('',*,*,#14707,.F.); +#9860=ORIENTED_EDGE('',*,*,#16164,.F.); +#9861=ORIENTED_EDGE('',*,*,#15103,.F.); +#9862=ORIENTED_EDGE('',*,*,#15206,.T.); +#9863=ORIENTED_EDGE('',*,*,#14705,.F.); +#9864=ORIENTED_EDGE('',*,*,#16165,.F.); +#9865=ORIENTED_EDGE('',*,*,#15104,.F.); +#9866=ORIENTED_EDGE('',*,*,#16164,.T.); +#9867=ORIENTED_EDGE('',*,*,#14704,.F.); +#9868=ORIENTED_EDGE('',*,*,#16166,.F.); +#9869=ORIENTED_EDGE('',*,*,#15105,.F.); +#9870=ORIENTED_EDGE('',*,*,#16165,.T.); +#9871=ORIENTED_EDGE('',*,*,#14703,.F.); +#9872=ORIENTED_EDGE('',*,*,#14702,.T.); +#9873=ORIENTED_EDGE('',*,*,#16167,.F.); +#9874=ORIENTED_EDGE('',*,*,#15106,.T.); +#9875=ORIENTED_EDGE('',*,*,#16166,.T.); +#9876=ORIENTED_EDGE('',*,*,#16168,.F.); +#9877=ORIENTED_EDGE('',*,*,#15107,.F.); +#9878=ORIENTED_EDGE('',*,*,#16167,.T.); +#9879=ORIENTED_EDGE('',*,*,#14701,.F.); +#9880=ORIENTED_EDGE('',*,*,#16169,.F.); +#9881=ORIENTED_EDGE('',*,*,#15108,.F.); +#9882=ORIENTED_EDGE('',*,*,#16168,.T.); +#9883=ORIENTED_EDGE('',*,*,#14700,.F.); +#9884=ORIENTED_EDGE('',*,*,#16159,.F.); +#9885=ORIENTED_EDGE('',*,*,#15823,.T.); +#9886=ORIENTED_EDGE('',*,*,#16157,.T.); +#9887=ORIENTED_EDGE('',*,*,#15622,.F.); +#9888=ORIENTED_EDGE('',*,*,#16170,.F.); +#9889=ORIENTED_EDGE('',*,*,#15818,.T.); +#9890=ORIENTED_EDGE('',*,*,#16169,.T.); +#9891=ORIENTED_EDGE('',*,*,#15621,.F.); +#9892=ORIENTED_EDGE('',*,*,#15620,.T.); +#9893=ORIENTED_EDGE('',*,*,#15721,.F.); +#9894=ORIENTED_EDGE('',*,*,#16171,.F.); +#9895=ORIENTED_EDGE('',*,*,#15819,.F.); +#9896=ORIENTED_EDGE('',*,*,#16170,.T.); +#9897=ORIENTED_EDGE('',*,*,#15820,.F.); +#9898=ORIENTED_EDGE('',*,*,#16171,.T.); +#9899=ORIENTED_EDGE('',*,*,#15720,.F.); +#9900=ORIENTED_EDGE('',*,*,#16172,.F.); +#9901=ORIENTED_EDGE('',*,*,#15821,.F.); +#9902=ORIENTED_EDGE('',*,*,#15718,.F.); +#9903=ORIENTED_EDGE('',*,*,#15618,.T.); +#9904=ORIENTED_EDGE('',*,*,#16173,.F.); +#9905=ORIENTED_EDGE('',*,*,#15822,.F.); +#9906=ORIENTED_EDGE('',*,*,#16172,.T.); +#9907=ORIENTED_EDGE('',*,*,#15717,.F.); +#9908=ORIENTED_EDGE('',*,*,#16174,.F.); +#9909=ORIENTED_EDGE('',*,*,#15110,.F.); +#9910=ORIENTED_EDGE('',*,*,#16175,.T.); +#9911=ORIENTED_EDGE('',*,*,#14698,.F.); +#9912=ORIENTED_EDGE('',*,*,#16176,.F.); +#9913=ORIENTED_EDGE('',*,*,#15111,.F.); +#9914=ORIENTED_EDGE('',*,*,#16174,.T.); +#9915=ORIENTED_EDGE('',*,*,#14697,.F.); +#9916=ORIENTED_EDGE('',*,*,#14696,.T.); +#9917=ORIENTED_EDGE('',*,*,#16177,.F.); +#9918=ORIENTED_EDGE('',*,*,#15112,.T.); +#9919=ORIENTED_EDGE('',*,*,#16176,.T.); +#9920=ORIENTED_EDGE('',*,*,#16178,.F.); +#9921=ORIENTED_EDGE('',*,*,#15113,.F.); +#9922=ORIENTED_EDGE('',*,*,#16177,.T.); +#9923=ORIENTED_EDGE('',*,*,#14695,.F.); +#9924=ORIENTED_EDGE('',*,*,#16179,.F.); +#9925=ORIENTED_EDGE('',*,*,#15114,.F.); +#9926=ORIENTED_EDGE('',*,*,#16178,.T.); +#9927=ORIENTED_EDGE('',*,*,#14694,.F.); +#9928=ORIENTED_EDGE('',*,*,#15205,.F.); +#9929=ORIENTED_EDGE('',*,*,#15115,.F.); +#9930=ORIENTED_EDGE('',*,*,#16179,.T.); +#9931=ORIENTED_EDGE('',*,*,#14693,.F.); +#9932=ORIENTED_EDGE('',*,*,#16180,.F.); +#9933=ORIENTED_EDGE('',*,*,#15117,.F.); +#9934=ORIENTED_EDGE('',*,*,#15204,.T.); +#9935=ORIENTED_EDGE('',*,*,#14691,.F.); +#9936=ORIENTED_EDGE('',*,*,#16181,.F.); +#9937=ORIENTED_EDGE('',*,*,#15118,.F.); +#9938=ORIENTED_EDGE('',*,*,#16180,.T.); +#9939=ORIENTED_EDGE('',*,*,#14690,.F.); +#9940=ORIENTED_EDGE('',*,*,#16182,.F.); +#9941=ORIENTED_EDGE('',*,*,#15119,.F.); +#9942=ORIENTED_EDGE('',*,*,#16181,.T.); +#9943=ORIENTED_EDGE('',*,*,#14689,.F.); +#9944=ORIENTED_EDGE('',*,*,#14688,.T.); +#9945=ORIENTED_EDGE('',*,*,#16183,.F.); +#9946=ORIENTED_EDGE('',*,*,#15120,.T.); +#9947=ORIENTED_EDGE('',*,*,#16182,.T.); +#9948=ORIENTED_EDGE('',*,*,#16184,.F.); +#9949=ORIENTED_EDGE('',*,*,#15121,.F.); +#9950=ORIENTED_EDGE('',*,*,#16183,.T.); +#9951=ORIENTED_EDGE('',*,*,#14687,.F.); +#9952=ORIENTED_EDGE('',*,*,#16185,.F.); +#9953=ORIENTED_EDGE('',*,*,#15122,.F.); +#9954=ORIENTED_EDGE('',*,*,#16184,.T.); +#9955=ORIENTED_EDGE('',*,*,#14686,.F.); +#9956=ORIENTED_EDGE('',*,*,#16175,.F.); +#9957=ORIENTED_EDGE('',*,*,#15817,.T.); +#9958=ORIENTED_EDGE('',*,*,#16173,.T.); +#9959=ORIENTED_EDGE('',*,*,#15617,.F.); +#9960=ORIENTED_EDGE('',*,*,#16186,.F.); +#9961=ORIENTED_EDGE('',*,*,#15812,.T.); +#9962=ORIENTED_EDGE('',*,*,#16185,.T.); +#9963=ORIENTED_EDGE('',*,*,#15616,.F.); +#9964=ORIENTED_EDGE('',*,*,#15615,.T.); +#9965=ORIENTED_EDGE('',*,*,#15716,.F.); +#9966=ORIENTED_EDGE('',*,*,#16187,.F.); +#9967=ORIENTED_EDGE('',*,*,#15813,.F.); +#9968=ORIENTED_EDGE('',*,*,#16186,.T.); +#9969=ORIENTED_EDGE('',*,*,#15814,.F.); +#9970=ORIENTED_EDGE('',*,*,#16187,.T.); +#9971=ORIENTED_EDGE('',*,*,#15715,.F.); +#9972=ORIENTED_EDGE('',*,*,#16188,.F.); +#9973=ORIENTED_EDGE('',*,*,#15815,.F.); +#9974=ORIENTED_EDGE('',*,*,#15713,.F.); +#9975=ORIENTED_EDGE('',*,*,#15613,.T.); +#9976=ORIENTED_EDGE('',*,*,#16189,.F.); +#9977=ORIENTED_EDGE('',*,*,#15816,.F.); +#9978=ORIENTED_EDGE('',*,*,#16188,.T.); +#9979=ORIENTED_EDGE('',*,*,#15712,.F.); +#9980=ORIENTED_EDGE('',*,*,#16190,.F.); +#9981=ORIENTED_EDGE('',*,*,#15124,.F.); +#9982=ORIENTED_EDGE('',*,*,#16191,.T.); +#9983=ORIENTED_EDGE('',*,*,#14684,.F.); +#9984=ORIENTED_EDGE('',*,*,#16192,.F.); +#9985=ORIENTED_EDGE('',*,*,#15125,.F.); +#9986=ORIENTED_EDGE('',*,*,#16190,.T.); +#9987=ORIENTED_EDGE('',*,*,#14683,.F.); +#9988=ORIENTED_EDGE('',*,*,#14682,.T.); +#9989=ORIENTED_EDGE('',*,*,#16193,.F.); +#9990=ORIENTED_EDGE('',*,*,#15126,.T.); +#9991=ORIENTED_EDGE('',*,*,#16192,.T.); +#9992=ORIENTED_EDGE('',*,*,#16194,.F.); +#9993=ORIENTED_EDGE('',*,*,#15127,.F.); +#9994=ORIENTED_EDGE('',*,*,#16193,.T.); +#9995=ORIENTED_EDGE('',*,*,#14681,.F.); +#9996=ORIENTED_EDGE('',*,*,#16195,.F.); +#9997=ORIENTED_EDGE('',*,*,#15128,.F.); +#9998=ORIENTED_EDGE('',*,*,#16194,.T.); +#9999=ORIENTED_EDGE('',*,*,#14680,.F.); +#10000=ORIENTED_EDGE('',*,*,#15203,.F.); +#10001=ORIENTED_EDGE('',*,*,#15129,.F.); +#10002=ORIENTED_EDGE('',*,*,#16195,.T.); +#10003=ORIENTED_EDGE('',*,*,#14679,.F.); +#10004=ORIENTED_EDGE('',*,*,#16196,.F.); +#10005=ORIENTED_EDGE('',*,*,#15131,.F.); +#10006=ORIENTED_EDGE('',*,*,#15202,.T.); +#10007=ORIENTED_EDGE('',*,*,#14677,.F.); +#10008=ORIENTED_EDGE('',*,*,#16197,.F.); +#10009=ORIENTED_EDGE('',*,*,#15132,.F.); +#10010=ORIENTED_EDGE('',*,*,#16196,.T.); +#10011=ORIENTED_EDGE('',*,*,#14676,.F.); +#10012=ORIENTED_EDGE('',*,*,#16198,.F.); +#10013=ORIENTED_EDGE('',*,*,#15133,.F.); +#10014=ORIENTED_EDGE('',*,*,#16197,.T.); +#10015=ORIENTED_EDGE('',*,*,#14675,.F.); +#10016=ORIENTED_EDGE('',*,*,#14674,.T.); +#10017=ORIENTED_EDGE('',*,*,#16199,.F.); +#10018=ORIENTED_EDGE('',*,*,#15134,.T.); +#10019=ORIENTED_EDGE('',*,*,#16198,.T.); +#10020=ORIENTED_EDGE('',*,*,#16200,.F.); +#10021=ORIENTED_EDGE('',*,*,#15135,.F.); +#10022=ORIENTED_EDGE('',*,*,#16199,.T.); +#10023=ORIENTED_EDGE('',*,*,#14673,.F.); +#10024=ORIENTED_EDGE('',*,*,#16201,.F.); +#10025=ORIENTED_EDGE('',*,*,#15136,.F.); +#10026=ORIENTED_EDGE('',*,*,#16200,.T.); +#10027=ORIENTED_EDGE('',*,*,#14672,.F.); +#10028=ORIENTED_EDGE('',*,*,#16191,.F.); +#10029=ORIENTED_EDGE('',*,*,#15811,.T.); +#10030=ORIENTED_EDGE('',*,*,#16189,.T.); +#10031=ORIENTED_EDGE('',*,*,#15612,.F.); +#10032=ORIENTED_EDGE('',*,*,#16202,.F.); +#10033=ORIENTED_EDGE('',*,*,#15806,.T.); +#10034=ORIENTED_EDGE('',*,*,#16201,.T.); +#10035=ORIENTED_EDGE('',*,*,#15611,.F.); +#10036=ORIENTED_EDGE('',*,*,#15610,.T.); +#10037=ORIENTED_EDGE('',*,*,#15711,.F.); +#10038=ORIENTED_EDGE('',*,*,#16203,.F.); +#10039=ORIENTED_EDGE('',*,*,#15807,.F.); +#10040=ORIENTED_EDGE('',*,*,#16202,.T.); +#10041=ORIENTED_EDGE('',*,*,#15808,.F.); +#10042=ORIENTED_EDGE('',*,*,#16203,.T.); +#10043=ORIENTED_EDGE('',*,*,#15710,.F.); +#10044=ORIENTED_EDGE('',*,*,#16204,.F.); +#10045=ORIENTED_EDGE('',*,*,#15809,.F.); +#10046=ORIENTED_EDGE('',*,*,#15708,.F.); +#10047=ORIENTED_EDGE('',*,*,#15608,.T.); +#10048=ORIENTED_EDGE('',*,*,#16205,.F.); +#10049=ORIENTED_EDGE('',*,*,#15810,.F.); +#10050=ORIENTED_EDGE('',*,*,#16204,.T.); +#10051=ORIENTED_EDGE('',*,*,#15707,.F.); +#10052=ORIENTED_EDGE('',*,*,#16206,.F.); +#10053=ORIENTED_EDGE('',*,*,#15138,.F.); +#10054=ORIENTED_EDGE('',*,*,#16207,.T.); +#10055=ORIENTED_EDGE('',*,*,#14670,.F.); +#10056=ORIENTED_EDGE('',*,*,#16208,.F.); +#10057=ORIENTED_EDGE('',*,*,#15139,.F.); +#10058=ORIENTED_EDGE('',*,*,#16206,.T.); +#10059=ORIENTED_EDGE('',*,*,#14669,.F.); +#10060=ORIENTED_EDGE('',*,*,#14668,.T.); +#10061=ORIENTED_EDGE('',*,*,#16209,.F.); +#10062=ORIENTED_EDGE('',*,*,#15140,.T.); +#10063=ORIENTED_EDGE('',*,*,#16208,.T.); +#10064=ORIENTED_EDGE('',*,*,#16210,.F.); +#10065=ORIENTED_EDGE('',*,*,#15141,.F.); +#10066=ORIENTED_EDGE('',*,*,#16209,.T.); +#10067=ORIENTED_EDGE('',*,*,#14667,.F.); +#10068=ORIENTED_EDGE('',*,*,#16211,.F.); +#10069=ORIENTED_EDGE('',*,*,#15142,.F.); +#10070=ORIENTED_EDGE('',*,*,#16210,.T.); +#10071=ORIENTED_EDGE('',*,*,#14666,.F.); +#10072=ORIENTED_EDGE('',*,*,#15201,.F.); +#10073=ORIENTED_EDGE('',*,*,#15143,.F.); +#10074=ORIENTED_EDGE('',*,*,#16211,.T.); +#10075=ORIENTED_EDGE('',*,*,#14665,.F.); +#10076=ORIENTED_EDGE('',*,*,#16212,.F.); +#10077=ORIENTED_EDGE('',*,*,#15145,.F.); +#10078=ORIENTED_EDGE('',*,*,#15200,.T.); +#10079=ORIENTED_EDGE('',*,*,#14663,.F.); +#10080=ORIENTED_EDGE('',*,*,#16213,.F.); +#10081=ORIENTED_EDGE('',*,*,#15146,.F.); +#10082=ORIENTED_EDGE('',*,*,#16212,.T.); +#10083=ORIENTED_EDGE('',*,*,#14662,.F.); +#10084=ORIENTED_EDGE('',*,*,#16214,.F.); +#10085=ORIENTED_EDGE('',*,*,#15147,.F.); +#10086=ORIENTED_EDGE('',*,*,#16213,.T.); +#10087=ORIENTED_EDGE('',*,*,#14661,.F.); +#10088=ORIENTED_EDGE('',*,*,#14660,.T.); +#10089=ORIENTED_EDGE('',*,*,#16215,.F.); +#10090=ORIENTED_EDGE('',*,*,#15148,.T.); +#10091=ORIENTED_EDGE('',*,*,#16214,.T.); +#10092=ORIENTED_EDGE('',*,*,#16216,.F.); +#10093=ORIENTED_EDGE('',*,*,#15149,.F.); +#10094=ORIENTED_EDGE('',*,*,#16215,.T.); +#10095=ORIENTED_EDGE('',*,*,#14659,.F.); +#10096=ORIENTED_EDGE('',*,*,#16217,.F.); +#10097=ORIENTED_EDGE('',*,*,#15150,.F.); +#10098=ORIENTED_EDGE('',*,*,#16216,.T.); +#10099=ORIENTED_EDGE('',*,*,#14658,.F.); +#10100=ORIENTED_EDGE('',*,*,#16207,.F.); +#10101=ORIENTED_EDGE('',*,*,#15805,.T.); +#10102=ORIENTED_EDGE('',*,*,#16205,.T.); +#10103=ORIENTED_EDGE('',*,*,#15607,.F.); +#10104=ORIENTED_EDGE('',*,*,#16218,.F.); +#10105=ORIENTED_EDGE('',*,*,#15800,.T.); +#10106=ORIENTED_EDGE('',*,*,#16217,.T.); +#10107=ORIENTED_EDGE('',*,*,#15606,.F.); +#10108=ORIENTED_EDGE('',*,*,#15605,.T.); +#10109=ORIENTED_EDGE('',*,*,#15706,.F.); +#10110=ORIENTED_EDGE('',*,*,#16219,.F.); +#10111=ORIENTED_EDGE('',*,*,#15801,.F.); +#10112=ORIENTED_EDGE('',*,*,#16218,.T.); +#10113=ORIENTED_EDGE('',*,*,#15802,.F.); +#10114=ORIENTED_EDGE('',*,*,#16219,.T.); +#10115=ORIENTED_EDGE('',*,*,#15705,.F.); +#10116=ORIENTED_EDGE('',*,*,#16220,.F.); +#10117=ORIENTED_EDGE('',*,*,#15803,.F.); +#10118=ORIENTED_EDGE('',*,*,#15703,.F.); +#10119=ORIENTED_EDGE('',*,*,#15603,.T.); +#10120=ORIENTED_EDGE('',*,*,#16221,.F.); +#10121=ORIENTED_EDGE('',*,*,#15804,.F.); +#10122=ORIENTED_EDGE('',*,*,#16220,.T.); +#10123=ORIENTED_EDGE('',*,*,#15702,.F.); +#10124=ORIENTED_EDGE('',*,*,#16222,.F.); +#10125=ORIENTED_EDGE('',*,*,#15152,.F.); +#10126=ORIENTED_EDGE('',*,*,#16223,.T.); +#10127=ORIENTED_EDGE('',*,*,#14656,.F.); +#10128=ORIENTED_EDGE('',*,*,#16224,.F.); +#10129=ORIENTED_EDGE('',*,*,#15153,.F.); +#10130=ORIENTED_EDGE('',*,*,#16222,.T.); +#10131=ORIENTED_EDGE('',*,*,#14655,.F.); +#10132=ORIENTED_EDGE('',*,*,#14654,.T.); +#10133=ORIENTED_EDGE('',*,*,#16225,.F.); +#10134=ORIENTED_EDGE('',*,*,#15154,.T.); +#10135=ORIENTED_EDGE('',*,*,#16224,.T.); +#10136=ORIENTED_EDGE('',*,*,#16226,.F.); +#10137=ORIENTED_EDGE('',*,*,#15155,.F.); +#10138=ORIENTED_EDGE('',*,*,#16225,.T.); +#10139=ORIENTED_EDGE('',*,*,#14653,.F.); +#10140=ORIENTED_EDGE('',*,*,#16227,.F.); +#10141=ORIENTED_EDGE('',*,*,#15156,.F.); +#10142=ORIENTED_EDGE('',*,*,#16226,.T.); +#10143=ORIENTED_EDGE('',*,*,#14652,.F.); +#10144=ORIENTED_EDGE('',*,*,#15199,.F.); +#10145=ORIENTED_EDGE('',*,*,#15157,.F.); +#10146=ORIENTED_EDGE('',*,*,#16227,.T.); +#10147=ORIENTED_EDGE('',*,*,#14651,.F.); +#10148=ORIENTED_EDGE('',*,*,#16228,.F.); +#10149=ORIENTED_EDGE('',*,*,#15159,.F.); +#10150=ORIENTED_EDGE('',*,*,#15198,.T.); +#10151=ORIENTED_EDGE('',*,*,#14649,.F.); +#10152=ORIENTED_EDGE('',*,*,#16229,.F.); +#10153=ORIENTED_EDGE('',*,*,#15160,.F.); +#10154=ORIENTED_EDGE('',*,*,#16228,.T.); +#10155=ORIENTED_EDGE('',*,*,#14648,.F.); +#10156=ORIENTED_EDGE('',*,*,#16230,.F.); +#10157=ORIENTED_EDGE('',*,*,#15161,.F.); +#10158=ORIENTED_EDGE('',*,*,#16229,.T.); +#10159=ORIENTED_EDGE('',*,*,#14647,.F.); +#10160=ORIENTED_EDGE('',*,*,#14646,.T.); +#10161=ORIENTED_EDGE('',*,*,#16231,.F.); +#10162=ORIENTED_EDGE('',*,*,#15162,.T.); +#10163=ORIENTED_EDGE('',*,*,#16230,.T.); +#10164=ORIENTED_EDGE('',*,*,#16232,.F.); +#10165=ORIENTED_EDGE('',*,*,#15163,.F.); +#10166=ORIENTED_EDGE('',*,*,#16231,.T.); +#10167=ORIENTED_EDGE('',*,*,#14645,.F.); +#10168=ORIENTED_EDGE('',*,*,#16233,.F.); +#10169=ORIENTED_EDGE('',*,*,#15164,.F.); +#10170=ORIENTED_EDGE('',*,*,#16232,.T.); +#10171=ORIENTED_EDGE('',*,*,#14644,.F.); +#10172=ORIENTED_EDGE('',*,*,#16223,.F.); +#10173=ORIENTED_EDGE('',*,*,#15799,.T.); +#10174=ORIENTED_EDGE('',*,*,#16221,.T.); +#10175=ORIENTED_EDGE('',*,*,#15602,.F.); +#10176=ORIENTED_EDGE('',*,*,#16234,.F.); +#10177=ORIENTED_EDGE('',*,*,#15794,.T.); +#10178=ORIENTED_EDGE('',*,*,#16233,.T.); +#10179=ORIENTED_EDGE('',*,*,#15601,.F.); +#10180=ORIENTED_EDGE('',*,*,#15600,.T.); +#10181=ORIENTED_EDGE('',*,*,#15701,.F.); +#10182=ORIENTED_EDGE('',*,*,#16235,.F.); +#10183=ORIENTED_EDGE('',*,*,#15795,.F.); +#10184=ORIENTED_EDGE('',*,*,#16234,.T.); +#10185=ORIENTED_EDGE('',*,*,#15796,.F.); +#10186=ORIENTED_EDGE('',*,*,#16235,.T.); +#10187=ORIENTED_EDGE('',*,*,#15700,.F.); +#10188=ORIENTED_EDGE('',*,*,#16236,.F.); +#10189=ORIENTED_EDGE('',*,*,#15797,.F.); +#10190=ORIENTED_EDGE('',*,*,#15698,.F.); +#10191=ORIENTED_EDGE('',*,*,#15598,.T.); +#10192=ORIENTED_EDGE('',*,*,#16237,.F.); +#10193=ORIENTED_EDGE('',*,*,#15798,.F.); +#10194=ORIENTED_EDGE('',*,*,#16236,.T.); +#10195=ORIENTED_EDGE('',*,*,#15697,.F.); +#10196=ORIENTED_EDGE('',*,*,#16238,.F.); +#10197=ORIENTED_EDGE('',*,*,#15166,.F.); +#10198=ORIENTED_EDGE('',*,*,#16239,.T.); +#10199=ORIENTED_EDGE('',*,*,#14642,.F.); +#10200=ORIENTED_EDGE('',*,*,#16240,.F.); +#10201=ORIENTED_EDGE('',*,*,#15167,.F.); +#10202=ORIENTED_EDGE('',*,*,#16238,.T.); +#10203=ORIENTED_EDGE('',*,*,#14641,.F.); +#10204=ORIENTED_EDGE('',*,*,#14640,.T.); +#10205=ORIENTED_EDGE('',*,*,#16241,.F.); +#10206=ORIENTED_EDGE('',*,*,#15168,.T.); +#10207=ORIENTED_EDGE('',*,*,#16240,.T.); +#10208=ORIENTED_EDGE('',*,*,#16242,.F.); +#10209=ORIENTED_EDGE('',*,*,#15169,.F.); +#10210=ORIENTED_EDGE('',*,*,#16241,.T.); +#10211=ORIENTED_EDGE('',*,*,#14639,.F.); +#10212=ORIENTED_EDGE('',*,*,#16243,.F.); +#10213=ORIENTED_EDGE('',*,*,#15170,.F.); +#10214=ORIENTED_EDGE('',*,*,#16242,.T.); +#10215=ORIENTED_EDGE('',*,*,#14638,.F.); +#10216=ORIENTED_EDGE('',*,*,#15197,.F.); +#10217=ORIENTED_EDGE('',*,*,#15171,.F.); +#10218=ORIENTED_EDGE('',*,*,#16243,.T.); +#10219=ORIENTED_EDGE('',*,*,#14637,.F.); +#10220=ORIENTED_EDGE('',*,*,#16244,.F.); +#10221=ORIENTED_EDGE('',*,*,#15173,.F.); +#10222=ORIENTED_EDGE('',*,*,#15196,.T.); +#10223=ORIENTED_EDGE('',*,*,#14635,.F.); +#10224=ORIENTED_EDGE('',*,*,#16245,.F.); +#10225=ORIENTED_EDGE('',*,*,#15174,.F.); +#10226=ORIENTED_EDGE('',*,*,#16244,.T.); +#10227=ORIENTED_EDGE('',*,*,#14634,.F.); +#10228=ORIENTED_EDGE('',*,*,#16246,.F.); +#10229=ORIENTED_EDGE('',*,*,#15175,.F.); +#10230=ORIENTED_EDGE('',*,*,#16245,.T.); +#10231=ORIENTED_EDGE('',*,*,#14633,.F.); +#10232=ORIENTED_EDGE('',*,*,#14632,.T.); +#10233=ORIENTED_EDGE('',*,*,#16247,.F.); +#10234=ORIENTED_EDGE('',*,*,#15176,.T.); +#10235=ORIENTED_EDGE('',*,*,#16246,.T.); +#10236=ORIENTED_EDGE('',*,*,#16248,.F.); +#10237=ORIENTED_EDGE('',*,*,#15177,.F.); +#10238=ORIENTED_EDGE('',*,*,#16247,.T.); +#10239=ORIENTED_EDGE('',*,*,#14631,.F.); +#10240=ORIENTED_EDGE('',*,*,#16249,.F.); +#10241=ORIENTED_EDGE('',*,*,#15178,.F.); +#10242=ORIENTED_EDGE('',*,*,#16248,.T.); +#10243=ORIENTED_EDGE('',*,*,#14630,.F.); +#10244=ORIENTED_EDGE('',*,*,#16239,.F.); +#10245=ORIENTED_EDGE('',*,*,#15793,.T.); +#10246=ORIENTED_EDGE('',*,*,#16237,.T.); +#10247=ORIENTED_EDGE('',*,*,#15597,.F.); +#10248=ORIENTED_EDGE('',*,*,#16250,.F.); +#10249=ORIENTED_EDGE('',*,*,#15788,.T.); +#10250=ORIENTED_EDGE('',*,*,#16249,.T.); +#10251=ORIENTED_EDGE('',*,*,#15596,.F.); +#10252=ORIENTED_EDGE('',*,*,#15595,.T.); +#10253=ORIENTED_EDGE('',*,*,#15696,.F.); +#10254=ORIENTED_EDGE('',*,*,#16251,.F.); +#10255=ORIENTED_EDGE('',*,*,#15789,.F.); +#10256=ORIENTED_EDGE('',*,*,#16250,.T.); +#10257=ORIENTED_EDGE('',*,*,#15790,.F.); +#10258=ORIENTED_EDGE('',*,*,#16251,.T.); +#10259=ORIENTED_EDGE('',*,*,#15695,.F.); +#10260=ORIENTED_EDGE('',*,*,#16252,.F.); +#10261=ORIENTED_EDGE('',*,*,#14346,.F.); +#10262=ORIENTED_EDGE('',*,*,#16253,.T.); +#10263=ORIENTED_EDGE('',*,*,#14326,.F.); +#10264=ORIENTED_EDGE('',*,*,#16254,.F.); +#10265=ORIENTED_EDGE('',*,*,#14347,.F.); +#10266=ORIENTED_EDGE('',*,*,#16252,.T.); +#10267=ORIENTED_EDGE('',*,*,#14325,.F.); +#10268=ORIENTED_EDGE('',*,*,#14324,.T.); +#10269=ORIENTED_EDGE('',*,*,#16255,.F.); +#10270=ORIENTED_EDGE('',*,*,#14348,.T.); +#10271=ORIENTED_EDGE('',*,*,#16254,.T.); +#10272=ORIENTED_EDGE('',*,*,#16256,.F.); +#10273=ORIENTED_EDGE('',*,*,#14349,.F.); +#10274=ORIENTED_EDGE('',*,*,#16255,.T.); +#10275=ORIENTED_EDGE('',*,*,#14323,.F.); +#10276=ORIENTED_EDGE('',*,*,#16257,.F.); +#10277=ORIENTED_EDGE('',*,*,#14350,.F.); +#10278=ORIENTED_EDGE('',*,*,#16256,.T.); +#10279=ORIENTED_EDGE('',*,*,#14322,.F.); +#10280=ORIENTED_EDGE('',*,*,#15234,.F.); +#10281=ORIENTED_EDGE('',*,*,#14351,.F.); +#10282=ORIENTED_EDGE('',*,*,#16257,.T.); +#10283=ORIENTED_EDGE('',*,*,#14321,.F.); +#10284=ORIENTED_EDGE('',*,*,#16258,.F.); +#10285=ORIENTED_EDGE('',*,*,#14353,.F.); +#10286=ORIENTED_EDGE('',*,*,#15235,.T.); +#10287=ORIENTED_EDGE('',*,*,#14319,.F.); +#10288=ORIENTED_EDGE('',*,*,#16259,.F.); +#10289=ORIENTED_EDGE('',*,*,#14354,.F.); +#10290=ORIENTED_EDGE('',*,*,#16258,.T.); +#10291=ORIENTED_EDGE('',*,*,#14318,.F.); +#10292=ORIENTED_EDGE('',*,*,#16260,.F.); +#10293=ORIENTED_EDGE('',*,*,#14355,.F.); +#10294=ORIENTED_EDGE('',*,*,#16259,.T.); +#10295=ORIENTED_EDGE('',*,*,#14317,.F.); +#10296=ORIENTED_EDGE('',*,*,#14316,.T.); +#10297=ORIENTED_EDGE('',*,*,#16261,.F.); +#10298=ORIENTED_EDGE('',*,*,#14356,.T.); +#10299=ORIENTED_EDGE('',*,*,#16260,.T.); +#10300=ORIENTED_EDGE('',*,*,#16262,.F.); +#10301=ORIENTED_EDGE('',*,*,#14357,.F.); +#10302=ORIENTED_EDGE('',*,*,#16261,.T.); +#10303=ORIENTED_EDGE('',*,*,#14315,.F.); +#10304=ORIENTED_EDGE('',*,*,#16263,.F.); +#10305=ORIENTED_EDGE('',*,*,#14358,.F.); +#10306=ORIENTED_EDGE('',*,*,#16262,.T.); +#10307=ORIENTED_EDGE('',*,*,#14314,.F.); +#10308=ORIENTED_EDGE('',*,*,#16264,.F.); +#10309=ORIENTED_EDGE('',*,*,#15587,.T.); +#10310=ORIENTED_EDGE('',*,*,#15913,.F.); +#10311=ORIENTED_EDGE('',*,*,#16265,.T.); +#10312=ORIENTED_EDGE('',*,*,#15410,.F.); +#10313=ORIENTED_EDGE('',*,*,#15409,.T.); +#10314=ORIENTED_EDGE('',*,*,#16253,.F.); +#10315=ORIENTED_EDGE('',*,*,#15588,.F.); +#10316=ORIENTED_EDGE('',*,*,#16264,.T.); +#10317=ORIENTED_EDGE('',*,*,#15408,.T.); +#10318=ORIENTED_EDGE('',*,*,#16266,.F.); +#10319=ORIENTED_EDGE('',*,*,#15585,.F.); +#10320=ORIENTED_EDGE('',*,*,#16263,.T.); +#10321=ORIENTED_EDGE('',*,*,#16267,.F.); +#10322=ORIENTED_EDGE('',*,*,#15509,.F.); +#10323=ORIENTED_EDGE('',*,*,#15586,.T.); +#10324=ORIENTED_EDGE('',*,*,#16266,.T.); +#10325=ORIENTED_EDGE('',*,*,#15407,.F.); +#10326=ORIENTED_EDGE('',*,*,#16265,.F.); +#10327=ORIENTED_EDGE('',*,*,#15912,.F.); +#10328=ORIENTED_EDGE('',*,*,#15411,.F.); +#10329=ORIENTED_EDGE('',*,*,#15510,.F.); +#10330=ORIENTED_EDGE('',*,*,#16267,.T.); +#10331=ORIENTED_EDGE('',*,*,#15406,.F.); +#10332=ORIENTED_EDGE('',*,*,#16268,.F.); +#10333=ORIENTED_EDGE('',*,*,#14360,.F.); +#10334=ORIENTED_EDGE('',*,*,#16269,.T.); +#10335=ORIENTED_EDGE('',*,*,#14312,.F.); +#10336=ORIENTED_EDGE('',*,*,#16270,.F.); +#10337=ORIENTED_EDGE('',*,*,#14361,.F.); +#10338=ORIENTED_EDGE('',*,*,#16268,.T.); +#10339=ORIENTED_EDGE('',*,*,#14311,.F.); +#10340=ORIENTED_EDGE('',*,*,#14310,.T.); +#10341=ORIENTED_EDGE('',*,*,#16271,.F.); +#10342=ORIENTED_EDGE('',*,*,#14362,.T.); +#10343=ORIENTED_EDGE('',*,*,#16270,.T.); +#10344=ORIENTED_EDGE('',*,*,#16272,.F.); +#10345=ORIENTED_EDGE('',*,*,#14363,.F.); +#10346=ORIENTED_EDGE('',*,*,#16271,.T.); +#10347=ORIENTED_EDGE('',*,*,#14309,.F.); +#10348=ORIENTED_EDGE('',*,*,#16273,.F.); +#10349=ORIENTED_EDGE('',*,*,#14364,.F.); +#10350=ORIENTED_EDGE('',*,*,#16272,.T.); +#10351=ORIENTED_EDGE('',*,*,#14308,.F.); +#10352=ORIENTED_EDGE('',*,*,#15236,.F.); +#10353=ORIENTED_EDGE('',*,*,#14365,.F.); +#10354=ORIENTED_EDGE('',*,*,#16273,.T.); +#10355=ORIENTED_EDGE('',*,*,#14307,.F.); +#10356=ORIENTED_EDGE('',*,*,#16274,.F.); +#10357=ORIENTED_EDGE('',*,*,#14367,.F.); +#10358=ORIENTED_EDGE('',*,*,#15237,.T.); +#10359=ORIENTED_EDGE('',*,*,#14305,.F.); +#10360=ORIENTED_EDGE('',*,*,#16275,.F.); +#10361=ORIENTED_EDGE('',*,*,#14368,.F.); +#10362=ORIENTED_EDGE('',*,*,#16274,.T.); +#10363=ORIENTED_EDGE('',*,*,#14304,.F.); +#10364=ORIENTED_EDGE('',*,*,#16276,.F.); +#10365=ORIENTED_EDGE('',*,*,#14369,.F.); +#10366=ORIENTED_EDGE('',*,*,#16275,.T.); +#10367=ORIENTED_EDGE('',*,*,#14303,.F.); +#10368=ORIENTED_EDGE('',*,*,#14302,.T.); +#10369=ORIENTED_EDGE('',*,*,#16277,.F.); +#10370=ORIENTED_EDGE('',*,*,#14370,.T.); +#10371=ORIENTED_EDGE('',*,*,#16276,.T.); +#10372=ORIENTED_EDGE('',*,*,#16278,.F.); +#10373=ORIENTED_EDGE('',*,*,#14371,.F.); +#10374=ORIENTED_EDGE('',*,*,#16277,.T.); +#10375=ORIENTED_EDGE('',*,*,#14301,.F.); +#10376=ORIENTED_EDGE('',*,*,#16279,.F.); +#10377=ORIENTED_EDGE('',*,*,#14372,.F.); +#10378=ORIENTED_EDGE('',*,*,#16278,.T.); +#10379=ORIENTED_EDGE('',*,*,#14300,.F.); +#10380=ORIENTED_EDGE('',*,*,#16280,.F.); +#10381=ORIENTED_EDGE('',*,*,#15583,.T.); +#10382=ORIENTED_EDGE('',*,*,#15507,.F.); +#10383=ORIENTED_EDGE('',*,*,#16281,.T.); +#10384=ORIENTED_EDGE('',*,*,#15403,.F.); +#10385=ORIENTED_EDGE('',*,*,#15402,.T.); +#10386=ORIENTED_EDGE('',*,*,#16269,.F.); +#10387=ORIENTED_EDGE('',*,*,#15584,.F.); +#10388=ORIENTED_EDGE('',*,*,#16280,.T.); +#10389=ORIENTED_EDGE('',*,*,#15401,.T.); +#10390=ORIENTED_EDGE('',*,*,#16282,.F.); +#10391=ORIENTED_EDGE('',*,*,#15581,.F.); +#10392=ORIENTED_EDGE('',*,*,#16279,.T.); +#10393=ORIENTED_EDGE('',*,*,#16283,.F.); +#10394=ORIENTED_EDGE('',*,*,#15504,.F.); +#10395=ORIENTED_EDGE('',*,*,#15582,.T.); +#10396=ORIENTED_EDGE('',*,*,#16282,.T.); +#10397=ORIENTED_EDGE('',*,*,#15400,.F.); +#10398=ORIENTED_EDGE('',*,*,#16281,.F.); +#10399=ORIENTED_EDGE('',*,*,#15506,.F.); +#10400=ORIENTED_EDGE('',*,*,#15404,.F.); +#10401=ORIENTED_EDGE('',*,*,#15505,.F.); +#10402=ORIENTED_EDGE('',*,*,#16283,.T.); +#10403=ORIENTED_EDGE('',*,*,#15399,.F.); +#10404=ORIENTED_EDGE('',*,*,#16284,.F.); +#10405=ORIENTED_EDGE('',*,*,#14374,.F.); +#10406=ORIENTED_EDGE('',*,*,#16285,.T.); +#10407=ORIENTED_EDGE('',*,*,#14298,.F.); +#10408=ORIENTED_EDGE('',*,*,#16286,.F.); +#10409=ORIENTED_EDGE('',*,*,#14375,.F.); +#10410=ORIENTED_EDGE('',*,*,#16284,.T.); +#10411=ORIENTED_EDGE('',*,*,#14297,.F.); +#10412=ORIENTED_EDGE('',*,*,#14296,.T.); +#10413=ORIENTED_EDGE('',*,*,#16287,.F.); +#10414=ORIENTED_EDGE('',*,*,#14376,.T.); +#10415=ORIENTED_EDGE('',*,*,#16286,.T.); +#10416=ORIENTED_EDGE('',*,*,#16288,.F.); +#10417=ORIENTED_EDGE('',*,*,#14377,.F.); +#10418=ORIENTED_EDGE('',*,*,#16287,.T.); +#10419=ORIENTED_EDGE('',*,*,#14295,.F.); +#10420=ORIENTED_EDGE('',*,*,#16289,.F.); +#10421=ORIENTED_EDGE('',*,*,#14378,.F.); +#10422=ORIENTED_EDGE('',*,*,#16288,.T.); +#10423=ORIENTED_EDGE('',*,*,#14294,.F.); +#10424=ORIENTED_EDGE('',*,*,#15238,.F.); +#10425=ORIENTED_EDGE('',*,*,#14379,.F.); +#10426=ORIENTED_EDGE('',*,*,#16289,.T.); +#10427=ORIENTED_EDGE('',*,*,#14293,.F.); +#10428=ORIENTED_EDGE('',*,*,#16290,.F.); +#10429=ORIENTED_EDGE('',*,*,#14381,.F.); +#10430=ORIENTED_EDGE('',*,*,#15239,.T.); +#10431=ORIENTED_EDGE('',*,*,#14291,.F.); +#10432=ORIENTED_EDGE('',*,*,#16291,.F.); +#10433=ORIENTED_EDGE('',*,*,#14382,.F.); +#10434=ORIENTED_EDGE('',*,*,#16290,.T.); +#10435=ORIENTED_EDGE('',*,*,#14290,.F.); +#10436=ORIENTED_EDGE('',*,*,#16292,.F.); +#10437=ORIENTED_EDGE('',*,*,#14383,.F.); +#10438=ORIENTED_EDGE('',*,*,#16291,.T.); +#10439=ORIENTED_EDGE('',*,*,#14289,.F.); +#10440=ORIENTED_EDGE('',*,*,#14288,.T.); +#10441=ORIENTED_EDGE('',*,*,#16293,.F.); +#10442=ORIENTED_EDGE('',*,*,#14384,.T.); +#10443=ORIENTED_EDGE('',*,*,#16292,.T.); +#10444=ORIENTED_EDGE('',*,*,#16294,.F.); +#10445=ORIENTED_EDGE('',*,*,#14385,.F.); +#10446=ORIENTED_EDGE('',*,*,#16293,.T.); +#10447=ORIENTED_EDGE('',*,*,#14287,.F.); +#10448=ORIENTED_EDGE('',*,*,#16295,.F.); +#10449=ORIENTED_EDGE('',*,*,#14386,.F.); +#10450=ORIENTED_EDGE('',*,*,#16294,.T.); +#10451=ORIENTED_EDGE('',*,*,#14286,.F.); +#10452=ORIENTED_EDGE('',*,*,#16296,.F.); +#10453=ORIENTED_EDGE('',*,*,#15579,.T.); +#10454=ORIENTED_EDGE('',*,*,#15502,.F.); +#10455=ORIENTED_EDGE('',*,*,#16297,.T.); +#10456=ORIENTED_EDGE('',*,*,#15396,.F.); +#10457=ORIENTED_EDGE('',*,*,#15395,.T.); +#10458=ORIENTED_EDGE('',*,*,#16285,.F.); +#10459=ORIENTED_EDGE('',*,*,#15580,.F.); +#10460=ORIENTED_EDGE('',*,*,#16296,.T.); +#10461=ORIENTED_EDGE('',*,*,#15394,.T.); +#10462=ORIENTED_EDGE('',*,*,#16298,.F.); +#10463=ORIENTED_EDGE('',*,*,#15577,.F.); +#10464=ORIENTED_EDGE('',*,*,#16295,.T.); +#10465=ORIENTED_EDGE('',*,*,#16299,.F.); +#10466=ORIENTED_EDGE('',*,*,#15499,.F.); +#10467=ORIENTED_EDGE('',*,*,#15578,.T.); +#10468=ORIENTED_EDGE('',*,*,#16298,.T.); +#10469=ORIENTED_EDGE('',*,*,#15393,.F.); +#10470=ORIENTED_EDGE('',*,*,#16297,.F.); +#10471=ORIENTED_EDGE('',*,*,#15501,.F.); +#10472=ORIENTED_EDGE('',*,*,#15397,.F.); +#10473=ORIENTED_EDGE('',*,*,#15500,.F.); +#10474=ORIENTED_EDGE('',*,*,#16299,.T.); +#10475=ORIENTED_EDGE('',*,*,#15392,.F.); +#10476=ORIENTED_EDGE('',*,*,#16300,.F.); +#10477=ORIENTED_EDGE('',*,*,#14388,.F.); +#10478=ORIENTED_EDGE('',*,*,#16301,.T.); +#10479=ORIENTED_EDGE('',*,*,#14284,.F.); +#10480=ORIENTED_EDGE('',*,*,#16302,.F.); +#10481=ORIENTED_EDGE('',*,*,#14389,.F.); +#10482=ORIENTED_EDGE('',*,*,#16300,.T.); +#10483=ORIENTED_EDGE('',*,*,#14283,.F.); +#10484=ORIENTED_EDGE('',*,*,#14282,.T.); +#10485=ORIENTED_EDGE('',*,*,#16303,.F.); +#10486=ORIENTED_EDGE('',*,*,#14390,.T.); +#10487=ORIENTED_EDGE('',*,*,#16302,.T.); +#10488=ORIENTED_EDGE('',*,*,#16304,.F.); +#10489=ORIENTED_EDGE('',*,*,#14391,.F.); +#10490=ORIENTED_EDGE('',*,*,#16303,.T.); +#10491=ORIENTED_EDGE('',*,*,#14281,.F.); +#10492=ORIENTED_EDGE('',*,*,#16305,.F.); +#10493=ORIENTED_EDGE('',*,*,#14392,.F.); +#10494=ORIENTED_EDGE('',*,*,#16304,.T.); +#10495=ORIENTED_EDGE('',*,*,#14280,.F.); +#10496=ORIENTED_EDGE('',*,*,#15240,.F.); +#10497=ORIENTED_EDGE('',*,*,#14393,.F.); +#10498=ORIENTED_EDGE('',*,*,#16305,.T.); +#10499=ORIENTED_EDGE('',*,*,#14279,.F.); +#10500=ORIENTED_EDGE('',*,*,#16306,.F.); +#10501=ORIENTED_EDGE('',*,*,#14395,.F.); +#10502=ORIENTED_EDGE('',*,*,#15241,.T.); +#10503=ORIENTED_EDGE('',*,*,#14277,.F.); +#10504=ORIENTED_EDGE('',*,*,#16307,.F.); +#10505=ORIENTED_EDGE('',*,*,#14396,.F.); +#10506=ORIENTED_EDGE('',*,*,#16306,.T.); +#10507=ORIENTED_EDGE('',*,*,#14276,.F.); +#10508=ORIENTED_EDGE('',*,*,#16308,.F.); +#10509=ORIENTED_EDGE('',*,*,#14397,.F.); +#10510=ORIENTED_EDGE('',*,*,#16307,.T.); +#10511=ORIENTED_EDGE('',*,*,#14275,.F.); +#10512=ORIENTED_EDGE('',*,*,#14274,.T.); +#10513=ORIENTED_EDGE('',*,*,#16309,.F.); +#10514=ORIENTED_EDGE('',*,*,#14398,.T.); +#10515=ORIENTED_EDGE('',*,*,#16308,.T.); +#10516=ORIENTED_EDGE('',*,*,#16310,.F.); +#10517=ORIENTED_EDGE('',*,*,#14399,.F.); +#10518=ORIENTED_EDGE('',*,*,#16309,.T.); +#10519=ORIENTED_EDGE('',*,*,#14273,.F.); +#10520=ORIENTED_EDGE('',*,*,#16311,.F.); +#10521=ORIENTED_EDGE('',*,*,#14400,.F.); +#10522=ORIENTED_EDGE('',*,*,#16310,.T.); +#10523=ORIENTED_EDGE('',*,*,#14272,.F.); +#10524=ORIENTED_EDGE('',*,*,#16312,.F.); +#10525=ORIENTED_EDGE('',*,*,#15575,.T.); +#10526=ORIENTED_EDGE('',*,*,#15497,.F.); +#10527=ORIENTED_EDGE('',*,*,#16313,.T.); +#10528=ORIENTED_EDGE('',*,*,#15389,.F.); +#10529=ORIENTED_EDGE('',*,*,#15388,.T.); +#10530=ORIENTED_EDGE('',*,*,#16301,.F.); +#10531=ORIENTED_EDGE('',*,*,#15576,.F.); +#10532=ORIENTED_EDGE('',*,*,#16312,.T.); +#10533=ORIENTED_EDGE('',*,*,#15387,.T.); +#10534=ORIENTED_EDGE('',*,*,#16314,.F.); +#10535=ORIENTED_EDGE('',*,*,#15573,.F.); +#10536=ORIENTED_EDGE('',*,*,#16311,.T.); +#10537=ORIENTED_EDGE('',*,*,#16315,.F.); +#10538=ORIENTED_EDGE('',*,*,#15494,.F.); +#10539=ORIENTED_EDGE('',*,*,#15574,.T.); +#10540=ORIENTED_EDGE('',*,*,#16314,.T.); +#10541=ORIENTED_EDGE('',*,*,#15386,.F.); +#10542=ORIENTED_EDGE('',*,*,#16313,.F.); +#10543=ORIENTED_EDGE('',*,*,#15496,.F.); +#10544=ORIENTED_EDGE('',*,*,#15390,.F.); +#10545=ORIENTED_EDGE('',*,*,#15495,.F.); +#10546=ORIENTED_EDGE('',*,*,#16315,.T.); +#10547=ORIENTED_EDGE('',*,*,#15385,.F.); +#10548=ORIENTED_EDGE('',*,*,#16316,.F.); +#10549=ORIENTED_EDGE('',*,*,#14402,.F.); +#10550=ORIENTED_EDGE('',*,*,#16317,.T.); +#10551=ORIENTED_EDGE('',*,*,#14270,.F.); +#10552=ORIENTED_EDGE('',*,*,#16318,.F.); +#10553=ORIENTED_EDGE('',*,*,#14403,.F.); +#10554=ORIENTED_EDGE('',*,*,#16316,.T.); +#10555=ORIENTED_EDGE('',*,*,#14269,.F.); +#10556=ORIENTED_EDGE('',*,*,#14268,.T.); +#10557=ORIENTED_EDGE('',*,*,#16319,.F.); +#10558=ORIENTED_EDGE('',*,*,#14404,.T.); +#10559=ORIENTED_EDGE('',*,*,#16318,.T.); +#10560=ORIENTED_EDGE('',*,*,#16320,.F.); +#10561=ORIENTED_EDGE('',*,*,#14405,.F.); +#10562=ORIENTED_EDGE('',*,*,#16319,.T.); +#10563=ORIENTED_EDGE('',*,*,#14267,.F.); +#10564=ORIENTED_EDGE('',*,*,#16321,.F.); +#10565=ORIENTED_EDGE('',*,*,#14406,.F.); +#10566=ORIENTED_EDGE('',*,*,#16320,.T.); +#10567=ORIENTED_EDGE('',*,*,#14266,.F.); +#10568=ORIENTED_EDGE('',*,*,#15242,.F.); +#10569=ORIENTED_EDGE('',*,*,#14407,.F.); +#10570=ORIENTED_EDGE('',*,*,#16321,.T.); +#10571=ORIENTED_EDGE('',*,*,#14265,.F.); +#10572=ORIENTED_EDGE('',*,*,#16322,.F.); +#10573=ORIENTED_EDGE('',*,*,#14409,.F.); +#10574=ORIENTED_EDGE('',*,*,#15243,.T.); +#10575=ORIENTED_EDGE('',*,*,#14263,.F.); +#10576=ORIENTED_EDGE('',*,*,#16323,.F.); +#10577=ORIENTED_EDGE('',*,*,#14410,.F.); +#10578=ORIENTED_EDGE('',*,*,#16322,.T.); +#10579=ORIENTED_EDGE('',*,*,#14262,.F.); +#10580=ORIENTED_EDGE('',*,*,#16324,.F.); +#10581=ORIENTED_EDGE('',*,*,#14411,.F.); +#10582=ORIENTED_EDGE('',*,*,#16323,.T.); +#10583=ORIENTED_EDGE('',*,*,#14261,.F.); +#10584=ORIENTED_EDGE('',*,*,#14260,.T.); +#10585=ORIENTED_EDGE('',*,*,#16325,.F.); +#10586=ORIENTED_EDGE('',*,*,#14412,.T.); +#10587=ORIENTED_EDGE('',*,*,#16324,.T.); +#10588=ORIENTED_EDGE('',*,*,#16326,.F.); +#10589=ORIENTED_EDGE('',*,*,#14413,.F.); +#10590=ORIENTED_EDGE('',*,*,#16325,.T.); +#10591=ORIENTED_EDGE('',*,*,#14259,.F.); +#10592=ORIENTED_EDGE('',*,*,#16327,.F.); +#10593=ORIENTED_EDGE('',*,*,#14414,.F.); +#10594=ORIENTED_EDGE('',*,*,#16326,.T.); +#10595=ORIENTED_EDGE('',*,*,#14258,.F.); +#10596=ORIENTED_EDGE('',*,*,#16328,.F.); +#10597=ORIENTED_EDGE('',*,*,#15571,.T.); +#10598=ORIENTED_EDGE('',*,*,#15492,.F.); +#10599=ORIENTED_EDGE('',*,*,#16329,.T.); +#10600=ORIENTED_EDGE('',*,*,#15382,.F.); +#10601=ORIENTED_EDGE('',*,*,#15381,.T.); +#10602=ORIENTED_EDGE('',*,*,#16317,.F.); +#10603=ORIENTED_EDGE('',*,*,#15572,.F.); +#10604=ORIENTED_EDGE('',*,*,#16328,.T.); +#10605=ORIENTED_EDGE('',*,*,#15380,.T.); +#10606=ORIENTED_EDGE('',*,*,#16330,.F.); +#10607=ORIENTED_EDGE('',*,*,#15569,.F.); +#10608=ORIENTED_EDGE('',*,*,#16327,.T.); +#10609=ORIENTED_EDGE('',*,*,#16331,.F.); +#10610=ORIENTED_EDGE('',*,*,#15489,.F.); +#10611=ORIENTED_EDGE('',*,*,#15570,.T.); +#10612=ORIENTED_EDGE('',*,*,#16330,.T.); +#10613=ORIENTED_EDGE('',*,*,#15379,.F.); +#10614=ORIENTED_EDGE('',*,*,#16329,.F.); +#10615=ORIENTED_EDGE('',*,*,#15491,.F.); +#10616=ORIENTED_EDGE('',*,*,#15383,.F.); +#10617=ORIENTED_EDGE('',*,*,#15490,.F.); +#10618=ORIENTED_EDGE('',*,*,#16331,.T.); +#10619=ORIENTED_EDGE('',*,*,#15378,.F.); +#10620=ORIENTED_EDGE('',*,*,#16332,.F.); +#10621=ORIENTED_EDGE('',*,*,#14416,.F.); +#10622=ORIENTED_EDGE('',*,*,#16333,.T.); +#10623=ORIENTED_EDGE('',*,*,#14256,.F.); +#10624=ORIENTED_EDGE('',*,*,#16334,.F.); +#10625=ORIENTED_EDGE('',*,*,#14417,.F.); +#10626=ORIENTED_EDGE('',*,*,#16332,.T.); +#10627=ORIENTED_EDGE('',*,*,#14255,.F.); +#10628=ORIENTED_EDGE('',*,*,#14254,.T.); +#10629=ORIENTED_EDGE('',*,*,#16335,.F.); +#10630=ORIENTED_EDGE('',*,*,#14418,.T.); +#10631=ORIENTED_EDGE('',*,*,#16334,.T.); +#10632=ORIENTED_EDGE('',*,*,#16336,.F.); +#10633=ORIENTED_EDGE('',*,*,#14419,.F.); +#10634=ORIENTED_EDGE('',*,*,#16335,.T.); +#10635=ORIENTED_EDGE('',*,*,#14253,.F.); +#10636=ORIENTED_EDGE('',*,*,#16337,.F.); +#10637=ORIENTED_EDGE('',*,*,#14420,.F.); +#10638=ORIENTED_EDGE('',*,*,#16336,.T.); +#10639=ORIENTED_EDGE('',*,*,#14252,.F.); +#10640=ORIENTED_EDGE('',*,*,#15244,.F.); +#10641=ORIENTED_EDGE('',*,*,#14421,.F.); +#10642=ORIENTED_EDGE('',*,*,#16337,.T.); +#10643=ORIENTED_EDGE('',*,*,#14251,.F.); +#10644=ORIENTED_EDGE('',*,*,#16338,.F.); +#10645=ORIENTED_EDGE('',*,*,#14423,.F.); +#10646=ORIENTED_EDGE('',*,*,#15245,.T.); +#10647=ORIENTED_EDGE('',*,*,#14249,.F.); +#10648=ORIENTED_EDGE('',*,*,#16339,.F.); +#10649=ORIENTED_EDGE('',*,*,#14424,.F.); +#10650=ORIENTED_EDGE('',*,*,#16338,.T.); +#10651=ORIENTED_EDGE('',*,*,#14248,.F.); +#10652=ORIENTED_EDGE('',*,*,#16340,.F.); +#10653=ORIENTED_EDGE('',*,*,#14425,.F.); +#10654=ORIENTED_EDGE('',*,*,#16339,.T.); +#10655=ORIENTED_EDGE('',*,*,#14247,.F.); +#10656=ORIENTED_EDGE('',*,*,#14246,.T.); +#10657=ORIENTED_EDGE('',*,*,#16341,.F.); +#10658=ORIENTED_EDGE('',*,*,#14426,.T.); +#10659=ORIENTED_EDGE('',*,*,#16340,.T.); +#10660=ORIENTED_EDGE('',*,*,#16342,.F.); +#10661=ORIENTED_EDGE('',*,*,#14427,.F.); +#10662=ORIENTED_EDGE('',*,*,#16341,.T.); +#10663=ORIENTED_EDGE('',*,*,#14245,.F.); +#10664=ORIENTED_EDGE('',*,*,#16343,.F.); +#10665=ORIENTED_EDGE('',*,*,#14428,.F.); +#10666=ORIENTED_EDGE('',*,*,#16342,.T.); +#10667=ORIENTED_EDGE('',*,*,#14244,.F.); +#10668=ORIENTED_EDGE('',*,*,#16344,.F.); +#10669=ORIENTED_EDGE('',*,*,#15567,.T.); +#10670=ORIENTED_EDGE('',*,*,#15487,.F.); +#10671=ORIENTED_EDGE('',*,*,#16345,.T.); +#10672=ORIENTED_EDGE('',*,*,#15375,.F.); +#10673=ORIENTED_EDGE('',*,*,#15374,.T.); +#10674=ORIENTED_EDGE('',*,*,#16333,.F.); +#10675=ORIENTED_EDGE('',*,*,#15568,.F.); +#10676=ORIENTED_EDGE('',*,*,#16344,.T.); +#10677=ORIENTED_EDGE('',*,*,#15373,.T.); +#10678=ORIENTED_EDGE('',*,*,#16346,.F.); +#10679=ORIENTED_EDGE('',*,*,#15565,.F.); +#10680=ORIENTED_EDGE('',*,*,#16343,.T.); +#10681=ORIENTED_EDGE('',*,*,#16347,.F.); +#10682=ORIENTED_EDGE('',*,*,#15484,.F.); +#10683=ORIENTED_EDGE('',*,*,#15566,.T.); +#10684=ORIENTED_EDGE('',*,*,#16346,.T.); +#10685=ORIENTED_EDGE('',*,*,#15372,.F.); +#10686=ORIENTED_EDGE('',*,*,#16345,.F.); +#10687=ORIENTED_EDGE('',*,*,#15486,.F.); +#10688=ORIENTED_EDGE('',*,*,#15376,.F.); +#10689=ORIENTED_EDGE('',*,*,#15485,.F.); +#10690=ORIENTED_EDGE('',*,*,#16347,.T.); +#10691=ORIENTED_EDGE('',*,*,#15371,.F.); +#10692=ORIENTED_EDGE('',*,*,#16348,.F.); +#10693=ORIENTED_EDGE('',*,*,#14430,.F.); +#10694=ORIENTED_EDGE('',*,*,#16349,.T.); +#10695=ORIENTED_EDGE('',*,*,#14242,.F.); +#10696=ORIENTED_EDGE('',*,*,#16350,.F.); +#10697=ORIENTED_EDGE('',*,*,#14431,.F.); +#10698=ORIENTED_EDGE('',*,*,#16348,.T.); +#10699=ORIENTED_EDGE('',*,*,#14241,.F.); +#10700=ORIENTED_EDGE('',*,*,#14240,.T.); +#10701=ORIENTED_EDGE('',*,*,#16351,.F.); +#10702=ORIENTED_EDGE('',*,*,#14432,.T.); +#10703=ORIENTED_EDGE('',*,*,#16350,.T.); +#10704=ORIENTED_EDGE('',*,*,#16352,.F.); +#10705=ORIENTED_EDGE('',*,*,#14433,.F.); +#10706=ORIENTED_EDGE('',*,*,#16351,.T.); +#10707=ORIENTED_EDGE('',*,*,#14239,.F.); +#10708=ORIENTED_EDGE('',*,*,#16353,.F.); +#10709=ORIENTED_EDGE('',*,*,#14434,.F.); +#10710=ORIENTED_EDGE('',*,*,#16352,.T.); +#10711=ORIENTED_EDGE('',*,*,#14238,.F.); +#10712=ORIENTED_EDGE('',*,*,#15246,.F.); +#10713=ORIENTED_EDGE('',*,*,#14435,.F.); +#10714=ORIENTED_EDGE('',*,*,#16353,.T.); +#10715=ORIENTED_EDGE('',*,*,#14237,.F.); +#10716=ORIENTED_EDGE('',*,*,#16354,.F.); +#10717=ORIENTED_EDGE('',*,*,#14437,.F.); +#10718=ORIENTED_EDGE('',*,*,#15247,.T.); +#10719=ORIENTED_EDGE('',*,*,#14235,.F.); +#10720=ORIENTED_EDGE('',*,*,#16355,.F.); +#10721=ORIENTED_EDGE('',*,*,#14438,.F.); +#10722=ORIENTED_EDGE('',*,*,#16354,.T.); +#10723=ORIENTED_EDGE('',*,*,#14234,.F.); +#10724=ORIENTED_EDGE('',*,*,#16356,.F.); +#10725=ORIENTED_EDGE('',*,*,#14439,.F.); +#10726=ORIENTED_EDGE('',*,*,#16355,.T.); +#10727=ORIENTED_EDGE('',*,*,#14233,.F.); +#10728=ORIENTED_EDGE('',*,*,#14232,.T.); +#10729=ORIENTED_EDGE('',*,*,#16357,.F.); +#10730=ORIENTED_EDGE('',*,*,#14440,.T.); +#10731=ORIENTED_EDGE('',*,*,#16356,.T.); +#10732=ORIENTED_EDGE('',*,*,#16358,.F.); +#10733=ORIENTED_EDGE('',*,*,#14441,.F.); +#10734=ORIENTED_EDGE('',*,*,#16357,.T.); +#10735=ORIENTED_EDGE('',*,*,#14231,.F.); +#10736=ORIENTED_EDGE('',*,*,#16359,.F.); +#10737=ORIENTED_EDGE('',*,*,#14442,.F.); +#10738=ORIENTED_EDGE('',*,*,#16358,.T.); +#10739=ORIENTED_EDGE('',*,*,#14230,.F.); +#10740=ORIENTED_EDGE('',*,*,#16360,.F.); +#10741=ORIENTED_EDGE('',*,*,#15563,.T.); +#10742=ORIENTED_EDGE('',*,*,#15482,.F.); +#10743=ORIENTED_EDGE('',*,*,#16361,.T.); +#10744=ORIENTED_EDGE('',*,*,#15368,.F.); +#10745=ORIENTED_EDGE('',*,*,#15367,.T.); +#10746=ORIENTED_EDGE('',*,*,#16349,.F.); +#10747=ORIENTED_EDGE('',*,*,#15564,.F.); +#10748=ORIENTED_EDGE('',*,*,#16360,.T.); +#10749=ORIENTED_EDGE('',*,*,#15366,.T.); +#10750=ORIENTED_EDGE('',*,*,#16362,.F.); +#10751=ORIENTED_EDGE('',*,*,#15561,.F.); +#10752=ORIENTED_EDGE('',*,*,#16359,.T.); +#10753=ORIENTED_EDGE('',*,*,#16363,.F.); +#10754=ORIENTED_EDGE('',*,*,#15479,.F.); +#10755=ORIENTED_EDGE('',*,*,#15562,.T.); +#10756=ORIENTED_EDGE('',*,*,#16362,.T.); +#10757=ORIENTED_EDGE('',*,*,#15365,.F.); +#10758=ORIENTED_EDGE('',*,*,#16361,.F.); +#10759=ORIENTED_EDGE('',*,*,#15481,.F.); +#10760=ORIENTED_EDGE('',*,*,#15369,.F.); +#10761=ORIENTED_EDGE('',*,*,#15480,.F.); +#10762=ORIENTED_EDGE('',*,*,#16363,.T.); +#10763=ORIENTED_EDGE('',*,*,#15364,.F.); +#10764=ORIENTED_EDGE('',*,*,#16364,.F.); +#10765=ORIENTED_EDGE('',*,*,#14444,.F.); +#10766=ORIENTED_EDGE('',*,*,#16365,.T.); +#10767=ORIENTED_EDGE('',*,*,#14228,.F.); +#10768=ORIENTED_EDGE('',*,*,#16366,.F.); +#10769=ORIENTED_EDGE('',*,*,#14445,.F.); +#10770=ORIENTED_EDGE('',*,*,#16364,.T.); +#10771=ORIENTED_EDGE('',*,*,#14227,.F.); +#10772=ORIENTED_EDGE('',*,*,#14226,.T.); +#10773=ORIENTED_EDGE('',*,*,#16367,.F.); +#10774=ORIENTED_EDGE('',*,*,#14446,.T.); +#10775=ORIENTED_EDGE('',*,*,#16366,.T.); +#10776=ORIENTED_EDGE('',*,*,#16368,.F.); +#10777=ORIENTED_EDGE('',*,*,#14447,.F.); +#10778=ORIENTED_EDGE('',*,*,#16367,.T.); +#10779=ORIENTED_EDGE('',*,*,#14225,.F.); +#10780=ORIENTED_EDGE('',*,*,#16369,.F.); +#10781=ORIENTED_EDGE('',*,*,#14448,.F.); +#10782=ORIENTED_EDGE('',*,*,#16368,.T.); +#10783=ORIENTED_EDGE('',*,*,#14224,.F.); +#10784=ORIENTED_EDGE('',*,*,#15248,.F.); +#10785=ORIENTED_EDGE('',*,*,#14449,.F.); +#10786=ORIENTED_EDGE('',*,*,#16369,.T.); +#10787=ORIENTED_EDGE('',*,*,#14223,.F.); +#10788=ORIENTED_EDGE('',*,*,#16370,.F.); +#10789=ORIENTED_EDGE('',*,*,#14451,.F.); +#10790=ORIENTED_EDGE('',*,*,#15249,.T.); +#10791=ORIENTED_EDGE('',*,*,#14221,.F.); +#10792=ORIENTED_EDGE('',*,*,#16371,.F.); +#10793=ORIENTED_EDGE('',*,*,#14452,.F.); +#10794=ORIENTED_EDGE('',*,*,#16370,.T.); +#10795=ORIENTED_EDGE('',*,*,#14220,.F.); +#10796=ORIENTED_EDGE('',*,*,#16372,.F.); +#10797=ORIENTED_EDGE('',*,*,#14453,.F.); +#10798=ORIENTED_EDGE('',*,*,#16371,.T.); +#10799=ORIENTED_EDGE('',*,*,#14219,.F.); +#10800=ORIENTED_EDGE('',*,*,#14218,.T.); +#10801=ORIENTED_EDGE('',*,*,#16373,.F.); +#10802=ORIENTED_EDGE('',*,*,#14454,.T.); +#10803=ORIENTED_EDGE('',*,*,#16372,.T.); +#10804=ORIENTED_EDGE('',*,*,#16374,.F.); +#10805=ORIENTED_EDGE('',*,*,#14455,.F.); +#10806=ORIENTED_EDGE('',*,*,#16373,.T.); +#10807=ORIENTED_EDGE('',*,*,#14217,.F.); +#10808=ORIENTED_EDGE('',*,*,#16375,.F.); +#10809=ORIENTED_EDGE('',*,*,#14456,.F.); +#10810=ORIENTED_EDGE('',*,*,#16374,.T.); +#10811=ORIENTED_EDGE('',*,*,#14216,.F.); +#10812=ORIENTED_EDGE('',*,*,#16376,.F.); +#10813=ORIENTED_EDGE('',*,*,#15559,.T.); +#10814=ORIENTED_EDGE('',*,*,#15477,.F.); +#10815=ORIENTED_EDGE('',*,*,#16377,.T.); +#10816=ORIENTED_EDGE('',*,*,#15361,.F.); +#10817=ORIENTED_EDGE('',*,*,#15360,.T.); +#10818=ORIENTED_EDGE('',*,*,#16365,.F.); +#10819=ORIENTED_EDGE('',*,*,#15560,.F.); +#10820=ORIENTED_EDGE('',*,*,#16376,.T.); +#10821=ORIENTED_EDGE('',*,*,#15359,.T.); +#10822=ORIENTED_EDGE('',*,*,#16378,.F.); +#10823=ORIENTED_EDGE('',*,*,#15557,.F.); +#10824=ORIENTED_EDGE('',*,*,#16375,.T.); +#10825=ORIENTED_EDGE('',*,*,#16379,.F.); +#10826=ORIENTED_EDGE('',*,*,#15474,.F.); +#10827=ORIENTED_EDGE('',*,*,#15558,.T.); +#10828=ORIENTED_EDGE('',*,*,#16378,.T.); +#10829=ORIENTED_EDGE('',*,*,#15358,.F.); +#10830=ORIENTED_EDGE('',*,*,#16377,.F.); +#10831=ORIENTED_EDGE('',*,*,#15476,.F.); +#10832=ORIENTED_EDGE('',*,*,#15362,.F.); +#10833=ORIENTED_EDGE('',*,*,#15475,.F.); +#10834=ORIENTED_EDGE('',*,*,#16379,.T.); +#10835=ORIENTED_EDGE('',*,*,#15357,.F.); +#10836=ORIENTED_EDGE('',*,*,#16380,.F.); +#10837=ORIENTED_EDGE('',*,*,#14458,.F.); +#10838=ORIENTED_EDGE('',*,*,#16381,.T.); +#10839=ORIENTED_EDGE('',*,*,#14214,.F.); +#10840=ORIENTED_EDGE('',*,*,#16382,.F.); +#10841=ORIENTED_EDGE('',*,*,#14459,.F.); +#10842=ORIENTED_EDGE('',*,*,#16380,.T.); +#10843=ORIENTED_EDGE('',*,*,#14213,.F.); +#10844=ORIENTED_EDGE('',*,*,#14212,.T.); +#10845=ORIENTED_EDGE('',*,*,#16383,.F.); +#10846=ORIENTED_EDGE('',*,*,#14460,.T.); +#10847=ORIENTED_EDGE('',*,*,#16382,.T.); +#10848=ORIENTED_EDGE('',*,*,#16384,.F.); +#10849=ORIENTED_EDGE('',*,*,#14461,.F.); +#10850=ORIENTED_EDGE('',*,*,#16383,.T.); +#10851=ORIENTED_EDGE('',*,*,#14211,.F.); +#10852=ORIENTED_EDGE('',*,*,#16385,.F.); +#10853=ORIENTED_EDGE('',*,*,#14462,.F.); +#10854=ORIENTED_EDGE('',*,*,#16384,.T.); +#10855=ORIENTED_EDGE('',*,*,#14210,.F.); +#10856=ORIENTED_EDGE('',*,*,#15250,.F.); +#10857=ORIENTED_EDGE('',*,*,#14463,.F.); +#10858=ORIENTED_EDGE('',*,*,#16385,.T.); +#10859=ORIENTED_EDGE('',*,*,#14209,.F.); +#10860=ORIENTED_EDGE('',*,*,#16386,.F.); +#10861=ORIENTED_EDGE('',*,*,#14465,.F.); +#10862=ORIENTED_EDGE('',*,*,#15251,.T.); +#10863=ORIENTED_EDGE('',*,*,#14207,.F.); +#10864=ORIENTED_EDGE('',*,*,#16387,.F.); +#10865=ORIENTED_EDGE('',*,*,#14466,.F.); +#10866=ORIENTED_EDGE('',*,*,#16386,.T.); +#10867=ORIENTED_EDGE('',*,*,#14206,.F.); +#10868=ORIENTED_EDGE('',*,*,#16388,.F.); +#10869=ORIENTED_EDGE('',*,*,#14467,.F.); +#10870=ORIENTED_EDGE('',*,*,#16387,.T.); +#10871=ORIENTED_EDGE('',*,*,#14205,.F.); +#10872=ORIENTED_EDGE('',*,*,#14204,.T.); +#10873=ORIENTED_EDGE('',*,*,#16389,.F.); +#10874=ORIENTED_EDGE('',*,*,#14468,.T.); +#10875=ORIENTED_EDGE('',*,*,#16388,.T.); +#10876=ORIENTED_EDGE('',*,*,#16390,.F.); +#10877=ORIENTED_EDGE('',*,*,#14469,.F.); +#10878=ORIENTED_EDGE('',*,*,#16389,.T.); +#10879=ORIENTED_EDGE('',*,*,#14203,.F.); +#10880=ORIENTED_EDGE('',*,*,#16391,.F.); +#10881=ORIENTED_EDGE('',*,*,#14470,.F.); +#10882=ORIENTED_EDGE('',*,*,#16390,.T.); +#10883=ORIENTED_EDGE('',*,*,#14202,.F.); +#10884=ORIENTED_EDGE('',*,*,#16392,.F.); +#10885=ORIENTED_EDGE('',*,*,#15555,.T.); +#10886=ORIENTED_EDGE('',*,*,#15472,.F.); +#10887=ORIENTED_EDGE('',*,*,#16393,.T.); +#10888=ORIENTED_EDGE('',*,*,#15354,.F.); +#10889=ORIENTED_EDGE('',*,*,#15353,.T.); +#10890=ORIENTED_EDGE('',*,*,#16381,.F.); +#10891=ORIENTED_EDGE('',*,*,#15556,.F.); +#10892=ORIENTED_EDGE('',*,*,#16392,.T.); +#10893=ORIENTED_EDGE('',*,*,#15352,.T.); +#10894=ORIENTED_EDGE('',*,*,#16394,.F.); +#10895=ORIENTED_EDGE('',*,*,#15553,.F.); +#10896=ORIENTED_EDGE('',*,*,#16391,.T.); +#10897=ORIENTED_EDGE('',*,*,#16395,.F.); +#10898=ORIENTED_EDGE('',*,*,#15469,.F.); +#10899=ORIENTED_EDGE('',*,*,#15554,.T.); +#10900=ORIENTED_EDGE('',*,*,#16394,.T.); +#10901=ORIENTED_EDGE('',*,*,#15351,.F.); +#10902=ORIENTED_EDGE('',*,*,#16393,.F.); +#10903=ORIENTED_EDGE('',*,*,#15471,.F.); +#10904=ORIENTED_EDGE('',*,*,#15355,.F.); +#10905=ORIENTED_EDGE('',*,*,#15470,.F.); +#10906=ORIENTED_EDGE('',*,*,#16395,.T.); +#10907=ORIENTED_EDGE('',*,*,#15350,.F.); +#10908=ORIENTED_EDGE('',*,*,#16396,.F.); +#10909=ORIENTED_EDGE('',*,*,#14472,.F.); +#10910=ORIENTED_EDGE('',*,*,#16397,.T.); +#10911=ORIENTED_EDGE('',*,*,#14200,.F.); +#10912=ORIENTED_EDGE('',*,*,#16398,.F.); +#10913=ORIENTED_EDGE('',*,*,#14473,.F.); +#10914=ORIENTED_EDGE('',*,*,#16396,.T.); +#10915=ORIENTED_EDGE('',*,*,#14199,.F.); +#10916=ORIENTED_EDGE('',*,*,#14198,.T.); +#10917=ORIENTED_EDGE('',*,*,#16399,.F.); +#10918=ORIENTED_EDGE('',*,*,#14474,.T.); +#10919=ORIENTED_EDGE('',*,*,#16398,.T.); +#10920=ORIENTED_EDGE('',*,*,#16400,.F.); +#10921=ORIENTED_EDGE('',*,*,#14475,.F.); +#10922=ORIENTED_EDGE('',*,*,#16399,.T.); +#10923=ORIENTED_EDGE('',*,*,#14197,.F.); +#10924=ORIENTED_EDGE('',*,*,#16401,.F.); +#10925=ORIENTED_EDGE('',*,*,#14476,.F.); +#10926=ORIENTED_EDGE('',*,*,#16400,.T.); +#10927=ORIENTED_EDGE('',*,*,#14196,.F.); +#10928=ORIENTED_EDGE('',*,*,#15252,.F.); +#10929=ORIENTED_EDGE('',*,*,#14477,.F.); +#10930=ORIENTED_EDGE('',*,*,#16401,.T.); +#10931=ORIENTED_EDGE('',*,*,#14195,.F.); +#10932=ORIENTED_EDGE('',*,*,#16402,.F.); +#10933=ORIENTED_EDGE('',*,*,#14479,.F.); +#10934=ORIENTED_EDGE('',*,*,#15253,.T.); +#10935=ORIENTED_EDGE('',*,*,#14193,.F.); +#10936=ORIENTED_EDGE('',*,*,#16403,.F.); +#10937=ORIENTED_EDGE('',*,*,#14480,.F.); +#10938=ORIENTED_EDGE('',*,*,#16402,.T.); +#10939=ORIENTED_EDGE('',*,*,#14192,.F.); +#10940=ORIENTED_EDGE('',*,*,#16404,.F.); +#10941=ORIENTED_EDGE('',*,*,#14481,.F.); +#10942=ORIENTED_EDGE('',*,*,#16403,.T.); +#10943=ORIENTED_EDGE('',*,*,#14191,.F.); +#10944=ORIENTED_EDGE('',*,*,#14190,.T.); +#10945=ORIENTED_EDGE('',*,*,#16405,.F.); +#10946=ORIENTED_EDGE('',*,*,#14482,.T.); +#10947=ORIENTED_EDGE('',*,*,#16404,.T.); +#10948=ORIENTED_EDGE('',*,*,#16406,.F.); +#10949=ORIENTED_EDGE('',*,*,#14483,.F.); +#10950=ORIENTED_EDGE('',*,*,#16405,.T.); +#10951=ORIENTED_EDGE('',*,*,#14189,.F.); +#10952=ORIENTED_EDGE('',*,*,#16407,.F.); +#10953=ORIENTED_EDGE('',*,*,#14484,.F.); +#10954=ORIENTED_EDGE('',*,*,#16406,.T.); +#10955=ORIENTED_EDGE('',*,*,#14188,.F.); +#10956=ORIENTED_EDGE('',*,*,#16408,.F.); +#10957=ORIENTED_EDGE('',*,*,#15551,.T.); +#10958=ORIENTED_EDGE('',*,*,#15467,.F.); +#10959=ORIENTED_EDGE('',*,*,#16409,.T.); +#10960=ORIENTED_EDGE('',*,*,#15347,.F.); +#10961=ORIENTED_EDGE('',*,*,#15346,.T.); +#10962=ORIENTED_EDGE('',*,*,#16397,.F.); +#10963=ORIENTED_EDGE('',*,*,#15552,.F.); +#10964=ORIENTED_EDGE('',*,*,#16408,.T.); +#10965=ORIENTED_EDGE('',*,*,#15345,.T.); +#10966=ORIENTED_EDGE('',*,*,#16410,.F.); +#10967=ORIENTED_EDGE('',*,*,#15549,.F.); +#10968=ORIENTED_EDGE('',*,*,#16407,.T.); +#10969=ORIENTED_EDGE('',*,*,#16411,.F.); +#10970=ORIENTED_EDGE('',*,*,#15464,.F.); +#10971=ORIENTED_EDGE('',*,*,#15550,.T.); +#10972=ORIENTED_EDGE('',*,*,#16410,.T.); +#10973=ORIENTED_EDGE('',*,*,#15344,.F.); +#10974=ORIENTED_EDGE('',*,*,#16409,.F.); +#10975=ORIENTED_EDGE('',*,*,#15466,.F.); +#10976=ORIENTED_EDGE('',*,*,#15348,.F.); +#10977=ORIENTED_EDGE('',*,*,#15465,.F.); +#10978=ORIENTED_EDGE('',*,*,#16411,.T.); +#10979=ORIENTED_EDGE('',*,*,#15343,.F.); +#10980=ORIENTED_EDGE('',*,*,#16412,.F.); +#10981=ORIENTED_EDGE('',*,*,#14486,.F.); +#10982=ORIENTED_EDGE('',*,*,#16413,.T.); +#10983=ORIENTED_EDGE('',*,*,#14186,.F.); +#10984=ORIENTED_EDGE('',*,*,#16414,.F.); +#10985=ORIENTED_EDGE('',*,*,#14487,.F.); +#10986=ORIENTED_EDGE('',*,*,#16412,.T.); +#10987=ORIENTED_EDGE('',*,*,#14185,.F.); +#10988=ORIENTED_EDGE('',*,*,#14184,.T.); +#10989=ORIENTED_EDGE('',*,*,#16415,.F.); +#10990=ORIENTED_EDGE('',*,*,#14488,.T.); +#10991=ORIENTED_EDGE('',*,*,#16414,.T.); +#10992=ORIENTED_EDGE('',*,*,#16416,.F.); +#10993=ORIENTED_EDGE('',*,*,#14489,.F.); +#10994=ORIENTED_EDGE('',*,*,#16415,.T.); +#10995=ORIENTED_EDGE('',*,*,#14183,.F.); +#10996=ORIENTED_EDGE('',*,*,#16417,.F.); +#10997=ORIENTED_EDGE('',*,*,#14490,.F.); +#10998=ORIENTED_EDGE('',*,*,#16416,.T.); +#10999=ORIENTED_EDGE('',*,*,#14182,.F.); +#11000=ORIENTED_EDGE('',*,*,#15254,.F.); +#11001=ORIENTED_EDGE('',*,*,#14491,.F.); +#11002=ORIENTED_EDGE('',*,*,#16417,.T.); +#11003=ORIENTED_EDGE('',*,*,#14181,.F.); +#11004=ORIENTED_EDGE('',*,*,#16418,.F.); +#11005=ORIENTED_EDGE('',*,*,#14493,.F.); +#11006=ORIENTED_EDGE('',*,*,#15255,.T.); +#11007=ORIENTED_EDGE('',*,*,#14179,.F.); +#11008=ORIENTED_EDGE('',*,*,#16419,.F.); +#11009=ORIENTED_EDGE('',*,*,#14494,.F.); +#11010=ORIENTED_EDGE('',*,*,#16418,.T.); +#11011=ORIENTED_EDGE('',*,*,#14178,.F.); +#11012=ORIENTED_EDGE('',*,*,#16420,.F.); +#11013=ORIENTED_EDGE('',*,*,#14495,.F.); +#11014=ORIENTED_EDGE('',*,*,#16419,.T.); +#11015=ORIENTED_EDGE('',*,*,#14177,.F.); +#11016=ORIENTED_EDGE('',*,*,#14176,.T.); +#11017=ORIENTED_EDGE('',*,*,#16421,.F.); +#11018=ORIENTED_EDGE('',*,*,#14496,.T.); +#11019=ORIENTED_EDGE('',*,*,#16420,.T.); +#11020=ORIENTED_EDGE('',*,*,#16422,.F.); +#11021=ORIENTED_EDGE('',*,*,#14497,.F.); +#11022=ORIENTED_EDGE('',*,*,#16421,.T.); +#11023=ORIENTED_EDGE('',*,*,#14175,.F.); +#11024=ORIENTED_EDGE('',*,*,#16423,.F.); +#11025=ORIENTED_EDGE('',*,*,#14498,.F.); +#11026=ORIENTED_EDGE('',*,*,#16422,.T.); +#11027=ORIENTED_EDGE('',*,*,#14174,.F.); +#11028=ORIENTED_EDGE('',*,*,#16424,.F.); +#11029=ORIENTED_EDGE('',*,*,#15547,.T.); +#11030=ORIENTED_EDGE('',*,*,#15462,.F.); +#11031=ORIENTED_EDGE('',*,*,#16425,.T.); +#11032=ORIENTED_EDGE('',*,*,#15340,.F.); +#11033=ORIENTED_EDGE('',*,*,#15339,.T.); +#11034=ORIENTED_EDGE('',*,*,#16413,.F.); +#11035=ORIENTED_EDGE('',*,*,#15548,.F.); +#11036=ORIENTED_EDGE('',*,*,#16424,.T.); +#11037=ORIENTED_EDGE('',*,*,#15338,.T.); +#11038=ORIENTED_EDGE('',*,*,#16426,.F.); +#11039=ORIENTED_EDGE('',*,*,#15545,.F.); +#11040=ORIENTED_EDGE('',*,*,#16423,.T.); +#11041=ORIENTED_EDGE('',*,*,#16427,.F.); +#11042=ORIENTED_EDGE('',*,*,#15459,.F.); +#11043=ORIENTED_EDGE('',*,*,#15546,.T.); +#11044=ORIENTED_EDGE('',*,*,#16426,.T.); +#11045=ORIENTED_EDGE('',*,*,#15337,.F.); +#11046=ORIENTED_EDGE('',*,*,#16425,.F.); +#11047=ORIENTED_EDGE('',*,*,#15461,.F.); +#11048=ORIENTED_EDGE('',*,*,#15341,.F.); +#11049=ORIENTED_EDGE('',*,*,#15460,.F.); +#11050=ORIENTED_EDGE('',*,*,#16427,.T.); +#11051=ORIENTED_EDGE('',*,*,#15336,.F.); +#11052=ORIENTED_EDGE('',*,*,#16428,.F.); +#11053=ORIENTED_EDGE('',*,*,#14500,.F.); +#11054=ORIENTED_EDGE('',*,*,#16429,.T.); +#11055=ORIENTED_EDGE('',*,*,#14172,.F.); +#11056=ORIENTED_EDGE('',*,*,#16430,.F.); +#11057=ORIENTED_EDGE('',*,*,#14501,.F.); +#11058=ORIENTED_EDGE('',*,*,#16428,.T.); +#11059=ORIENTED_EDGE('',*,*,#14171,.F.); +#11060=ORIENTED_EDGE('',*,*,#14170,.T.); +#11061=ORIENTED_EDGE('',*,*,#16431,.F.); +#11062=ORIENTED_EDGE('',*,*,#14502,.T.); +#11063=ORIENTED_EDGE('',*,*,#16430,.T.); +#11064=ORIENTED_EDGE('',*,*,#16432,.F.); +#11065=ORIENTED_EDGE('',*,*,#14503,.F.); +#11066=ORIENTED_EDGE('',*,*,#16431,.T.); +#11067=ORIENTED_EDGE('',*,*,#14169,.F.); +#11068=ORIENTED_EDGE('',*,*,#16433,.F.); +#11069=ORIENTED_EDGE('',*,*,#14504,.F.); +#11070=ORIENTED_EDGE('',*,*,#16432,.T.); +#11071=ORIENTED_EDGE('',*,*,#14168,.F.); +#11072=ORIENTED_EDGE('',*,*,#15256,.F.); +#11073=ORIENTED_EDGE('',*,*,#14505,.F.); +#11074=ORIENTED_EDGE('',*,*,#16433,.T.); +#11075=ORIENTED_EDGE('',*,*,#14167,.F.); +#11076=ORIENTED_EDGE('',*,*,#16434,.F.); +#11077=ORIENTED_EDGE('',*,*,#14507,.F.); +#11078=ORIENTED_EDGE('',*,*,#15257,.T.); +#11079=ORIENTED_EDGE('',*,*,#14165,.F.); +#11080=ORIENTED_EDGE('',*,*,#16435,.F.); +#11081=ORIENTED_EDGE('',*,*,#14508,.F.); +#11082=ORIENTED_EDGE('',*,*,#16434,.T.); +#11083=ORIENTED_EDGE('',*,*,#14164,.F.); +#11084=ORIENTED_EDGE('',*,*,#16436,.F.); +#11085=ORIENTED_EDGE('',*,*,#14509,.F.); +#11086=ORIENTED_EDGE('',*,*,#16435,.T.); +#11087=ORIENTED_EDGE('',*,*,#14163,.F.); +#11088=ORIENTED_EDGE('',*,*,#14162,.T.); +#11089=ORIENTED_EDGE('',*,*,#16437,.F.); +#11090=ORIENTED_EDGE('',*,*,#14510,.T.); +#11091=ORIENTED_EDGE('',*,*,#16436,.T.); +#11092=ORIENTED_EDGE('',*,*,#16438,.F.); +#11093=ORIENTED_EDGE('',*,*,#14511,.F.); +#11094=ORIENTED_EDGE('',*,*,#16437,.T.); +#11095=ORIENTED_EDGE('',*,*,#14161,.F.); +#11096=ORIENTED_EDGE('',*,*,#16439,.F.); +#11097=ORIENTED_EDGE('',*,*,#14512,.F.); +#11098=ORIENTED_EDGE('',*,*,#16438,.T.); +#11099=ORIENTED_EDGE('',*,*,#14160,.F.); +#11100=ORIENTED_EDGE('',*,*,#16440,.F.); +#11101=ORIENTED_EDGE('',*,*,#15543,.T.); +#11102=ORIENTED_EDGE('',*,*,#15457,.F.); +#11103=ORIENTED_EDGE('',*,*,#16441,.T.); +#11104=ORIENTED_EDGE('',*,*,#15333,.F.); +#11105=ORIENTED_EDGE('',*,*,#15332,.T.); +#11106=ORIENTED_EDGE('',*,*,#16429,.F.); +#11107=ORIENTED_EDGE('',*,*,#15544,.F.); +#11108=ORIENTED_EDGE('',*,*,#16440,.T.); +#11109=ORIENTED_EDGE('',*,*,#15331,.T.); +#11110=ORIENTED_EDGE('',*,*,#16442,.F.); +#11111=ORIENTED_EDGE('',*,*,#15541,.F.); +#11112=ORIENTED_EDGE('',*,*,#16439,.T.); +#11113=ORIENTED_EDGE('',*,*,#16443,.F.); +#11114=ORIENTED_EDGE('',*,*,#15454,.F.); +#11115=ORIENTED_EDGE('',*,*,#15542,.T.); +#11116=ORIENTED_EDGE('',*,*,#16442,.T.); +#11117=ORIENTED_EDGE('',*,*,#15330,.F.); +#11118=ORIENTED_EDGE('',*,*,#16441,.F.); +#11119=ORIENTED_EDGE('',*,*,#15456,.F.); +#11120=ORIENTED_EDGE('',*,*,#15334,.F.); +#11121=ORIENTED_EDGE('',*,*,#15455,.F.); +#11122=ORIENTED_EDGE('',*,*,#16443,.T.); +#11123=ORIENTED_EDGE('',*,*,#15329,.F.); +#11124=ORIENTED_EDGE('',*,*,#16444,.F.); +#11125=ORIENTED_EDGE('',*,*,#14514,.F.); +#11126=ORIENTED_EDGE('',*,*,#16445,.T.); +#11127=ORIENTED_EDGE('',*,*,#14158,.F.); +#11128=ORIENTED_EDGE('',*,*,#16446,.F.); +#11129=ORIENTED_EDGE('',*,*,#14515,.F.); +#11130=ORIENTED_EDGE('',*,*,#16444,.T.); +#11131=ORIENTED_EDGE('',*,*,#14157,.F.); +#11132=ORIENTED_EDGE('',*,*,#14156,.T.); +#11133=ORIENTED_EDGE('',*,*,#16447,.F.); +#11134=ORIENTED_EDGE('',*,*,#14516,.T.); +#11135=ORIENTED_EDGE('',*,*,#16446,.T.); +#11136=ORIENTED_EDGE('',*,*,#16448,.F.); +#11137=ORIENTED_EDGE('',*,*,#14517,.F.); +#11138=ORIENTED_EDGE('',*,*,#16447,.T.); +#11139=ORIENTED_EDGE('',*,*,#14155,.F.); +#11140=ORIENTED_EDGE('',*,*,#16449,.F.); +#11141=ORIENTED_EDGE('',*,*,#14518,.F.); +#11142=ORIENTED_EDGE('',*,*,#16448,.T.); +#11143=ORIENTED_EDGE('',*,*,#14154,.F.); +#11144=ORIENTED_EDGE('',*,*,#15258,.F.); +#11145=ORIENTED_EDGE('',*,*,#14519,.F.); +#11146=ORIENTED_EDGE('',*,*,#16449,.T.); +#11147=ORIENTED_EDGE('',*,*,#14153,.F.); +#11148=ORIENTED_EDGE('',*,*,#16450,.F.); +#11149=ORIENTED_EDGE('',*,*,#14521,.F.); +#11150=ORIENTED_EDGE('',*,*,#15259,.T.); +#11151=ORIENTED_EDGE('',*,*,#14151,.F.); +#11152=ORIENTED_EDGE('',*,*,#16451,.F.); +#11153=ORIENTED_EDGE('',*,*,#14522,.F.); +#11154=ORIENTED_EDGE('',*,*,#16450,.T.); +#11155=ORIENTED_EDGE('',*,*,#14150,.F.); +#11156=ORIENTED_EDGE('',*,*,#16452,.F.); +#11157=ORIENTED_EDGE('',*,*,#14523,.F.); +#11158=ORIENTED_EDGE('',*,*,#16451,.T.); +#11159=ORIENTED_EDGE('',*,*,#14149,.F.); +#11160=ORIENTED_EDGE('',*,*,#14148,.T.); +#11161=ORIENTED_EDGE('',*,*,#16453,.F.); +#11162=ORIENTED_EDGE('',*,*,#14524,.T.); +#11163=ORIENTED_EDGE('',*,*,#16452,.T.); +#11164=ORIENTED_EDGE('',*,*,#16454,.F.); +#11165=ORIENTED_EDGE('',*,*,#14525,.F.); +#11166=ORIENTED_EDGE('',*,*,#16453,.T.); +#11167=ORIENTED_EDGE('',*,*,#14147,.F.); +#11168=ORIENTED_EDGE('',*,*,#16455,.F.); +#11169=ORIENTED_EDGE('',*,*,#14526,.F.); +#11170=ORIENTED_EDGE('',*,*,#16454,.T.); +#11171=ORIENTED_EDGE('',*,*,#14146,.F.); +#11172=ORIENTED_EDGE('',*,*,#16456,.F.); +#11173=ORIENTED_EDGE('',*,*,#15539,.T.); +#11174=ORIENTED_EDGE('',*,*,#15452,.F.); +#11175=ORIENTED_EDGE('',*,*,#16457,.T.); +#11176=ORIENTED_EDGE('',*,*,#15326,.F.); +#11177=ORIENTED_EDGE('',*,*,#15325,.T.); +#11178=ORIENTED_EDGE('',*,*,#16445,.F.); +#11179=ORIENTED_EDGE('',*,*,#15540,.F.); +#11180=ORIENTED_EDGE('',*,*,#16456,.T.); +#11181=ORIENTED_EDGE('',*,*,#15324,.T.); +#11182=ORIENTED_EDGE('',*,*,#16458,.F.); +#11183=ORIENTED_EDGE('',*,*,#15537,.F.); +#11184=ORIENTED_EDGE('',*,*,#16455,.T.); +#11185=ORIENTED_EDGE('',*,*,#16459,.F.); +#11186=ORIENTED_EDGE('',*,*,#15449,.F.); +#11187=ORIENTED_EDGE('',*,*,#15538,.T.); +#11188=ORIENTED_EDGE('',*,*,#16458,.T.); +#11189=ORIENTED_EDGE('',*,*,#15323,.F.); +#11190=ORIENTED_EDGE('',*,*,#16457,.F.); +#11191=ORIENTED_EDGE('',*,*,#15451,.F.); +#11192=ORIENTED_EDGE('',*,*,#15327,.F.); +#11193=ORIENTED_EDGE('',*,*,#15450,.F.); +#11194=ORIENTED_EDGE('',*,*,#16459,.T.); +#11195=ORIENTED_EDGE('',*,*,#15322,.F.); +#11196=ORIENTED_EDGE('',*,*,#16460,.F.); +#11197=ORIENTED_EDGE('',*,*,#14528,.F.); +#11198=ORIENTED_EDGE('',*,*,#16461,.T.); +#11199=ORIENTED_EDGE('',*,*,#14144,.F.); +#11200=ORIENTED_EDGE('',*,*,#16462,.F.); +#11201=ORIENTED_EDGE('',*,*,#14529,.F.); +#11202=ORIENTED_EDGE('',*,*,#16460,.T.); +#11203=ORIENTED_EDGE('',*,*,#14143,.F.); +#11204=ORIENTED_EDGE('',*,*,#14142,.T.); +#11205=ORIENTED_EDGE('',*,*,#16463,.F.); +#11206=ORIENTED_EDGE('',*,*,#14530,.T.); +#11207=ORIENTED_EDGE('',*,*,#16462,.T.); +#11208=ORIENTED_EDGE('',*,*,#16464,.F.); +#11209=ORIENTED_EDGE('',*,*,#14531,.F.); +#11210=ORIENTED_EDGE('',*,*,#16463,.T.); +#11211=ORIENTED_EDGE('',*,*,#14141,.F.); +#11212=ORIENTED_EDGE('',*,*,#16465,.F.); +#11213=ORIENTED_EDGE('',*,*,#14532,.F.); +#11214=ORIENTED_EDGE('',*,*,#16464,.T.); +#11215=ORIENTED_EDGE('',*,*,#14140,.F.); +#11216=ORIENTED_EDGE('',*,*,#15260,.F.); +#11217=ORIENTED_EDGE('',*,*,#14533,.F.); +#11218=ORIENTED_EDGE('',*,*,#16465,.T.); +#11219=ORIENTED_EDGE('',*,*,#14139,.F.); +#11220=ORIENTED_EDGE('',*,*,#16466,.F.); +#11221=ORIENTED_EDGE('',*,*,#14535,.F.); +#11222=ORIENTED_EDGE('',*,*,#15261,.T.); +#11223=ORIENTED_EDGE('',*,*,#14137,.F.); +#11224=ORIENTED_EDGE('',*,*,#16467,.F.); +#11225=ORIENTED_EDGE('',*,*,#14536,.F.); +#11226=ORIENTED_EDGE('',*,*,#16466,.T.); +#11227=ORIENTED_EDGE('',*,*,#14136,.F.); +#11228=ORIENTED_EDGE('',*,*,#16468,.F.); +#11229=ORIENTED_EDGE('',*,*,#14537,.F.); +#11230=ORIENTED_EDGE('',*,*,#16467,.T.); +#11231=ORIENTED_EDGE('',*,*,#14135,.F.); +#11232=ORIENTED_EDGE('',*,*,#14134,.T.); +#11233=ORIENTED_EDGE('',*,*,#16469,.F.); +#11234=ORIENTED_EDGE('',*,*,#14538,.T.); +#11235=ORIENTED_EDGE('',*,*,#16468,.T.); +#11236=ORIENTED_EDGE('',*,*,#16470,.F.); +#11237=ORIENTED_EDGE('',*,*,#14539,.F.); +#11238=ORIENTED_EDGE('',*,*,#16469,.T.); +#11239=ORIENTED_EDGE('',*,*,#14133,.F.); +#11240=ORIENTED_EDGE('',*,*,#16471,.F.); +#11241=ORIENTED_EDGE('',*,*,#14540,.F.); +#11242=ORIENTED_EDGE('',*,*,#16470,.T.); +#11243=ORIENTED_EDGE('',*,*,#14132,.F.); +#11244=ORIENTED_EDGE('',*,*,#16472,.F.); +#11245=ORIENTED_EDGE('',*,*,#15535,.T.); +#11246=ORIENTED_EDGE('',*,*,#15447,.F.); +#11247=ORIENTED_EDGE('',*,*,#16473,.T.); +#11248=ORIENTED_EDGE('',*,*,#15319,.F.); +#11249=ORIENTED_EDGE('',*,*,#15318,.T.); +#11250=ORIENTED_EDGE('',*,*,#16461,.F.); +#11251=ORIENTED_EDGE('',*,*,#15536,.F.); +#11252=ORIENTED_EDGE('',*,*,#16472,.T.); +#11253=ORIENTED_EDGE('',*,*,#15317,.T.); +#11254=ORIENTED_EDGE('',*,*,#16474,.F.); +#11255=ORIENTED_EDGE('',*,*,#15533,.F.); +#11256=ORIENTED_EDGE('',*,*,#16471,.T.); +#11257=ORIENTED_EDGE('',*,*,#16475,.F.); +#11258=ORIENTED_EDGE('',*,*,#15444,.F.); +#11259=ORIENTED_EDGE('',*,*,#15534,.T.); +#11260=ORIENTED_EDGE('',*,*,#16474,.T.); +#11261=ORIENTED_EDGE('',*,*,#15316,.F.); +#11262=ORIENTED_EDGE('',*,*,#16473,.F.); +#11263=ORIENTED_EDGE('',*,*,#15446,.F.); +#11264=ORIENTED_EDGE('',*,*,#15320,.F.); +#11265=ORIENTED_EDGE('',*,*,#15445,.F.); +#11266=ORIENTED_EDGE('',*,*,#16475,.T.); +#11267=ORIENTED_EDGE('',*,*,#15315,.F.); +#11268=ORIENTED_EDGE('',*,*,#16476,.F.); +#11269=ORIENTED_EDGE('',*,*,#14542,.F.); +#11270=ORIENTED_EDGE('',*,*,#16477,.T.); +#11271=ORIENTED_EDGE('',*,*,#14130,.F.); +#11272=ORIENTED_EDGE('',*,*,#16478,.F.); +#11273=ORIENTED_EDGE('',*,*,#14543,.F.); +#11274=ORIENTED_EDGE('',*,*,#16476,.T.); +#11275=ORIENTED_EDGE('',*,*,#14129,.F.); +#11276=ORIENTED_EDGE('',*,*,#14128,.T.); +#11277=ORIENTED_EDGE('',*,*,#16479,.F.); +#11278=ORIENTED_EDGE('',*,*,#14544,.T.); +#11279=ORIENTED_EDGE('',*,*,#16478,.T.); +#11280=ORIENTED_EDGE('',*,*,#16480,.F.); +#11281=ORIENTED_EDGE('',*,*,#14545,.F.); +#11282=ORIENTED_EDGE('',*,*,#16479,.T.); +#11283=ORIENTED_EDGE('',*,*,#14127,.F.); +#11284=ORIENTED_EDGE('',*,*,#16481,.F.); +#11285=ORIENTED_EDGE('',*,*,#14546,.F.); +#11286=ORIENTED_EDGE('',*,*,#16480,.T.); +#11287=ORIENTED_EDGE('',*,*,#14126,.F.); +#11288=ORIENTED_EDGE('',*,*,#15262,.F.); +#11289=ORIENTED_EDGE('',*,*,#14547,.F.); +#11290=ORIENTED_EDGE('',*,*,#16481,.T.); +#11291=ORIENTED_EDGE('',*,*,#14125,.F.); +#11292=ORIENTED_EDGE('',*,*,#16482,.F.); +#11293=ORIENTED_EDGE('',*,*,#14549,.F.); +#11294=ORIENTED_EDGE('',*,*,#15263,.T.); +#11295=ORIENTED_EDGE('',*,*,#14123,.F.); +#11296=ORIENTED_EDGE('',*,*,#16483,.F.); +#11297=ORIENTED_EDGE('',*,*,#14550,.F.); +#11298=ORIENTED_EDGE('',*,*,#16482,.T.); +#11299=ORIENTED_EDGE('',*,*,#14122,.F.); +#11300=ORIENTED_EDGE('',*,*,#16484,.F.); +#11301=ORIENTED_EDGE('',*,*,#14551,.F.); +#11302=ORIENTED_EDGE('',*,*,#16483,.T.); +#11303=ORIENTED_EDGE('',*,*,#14121,.F.); +#11304=ORIENTED_EDGE('',*,*,#14120,.T.); +#11305=ORIENTED_EDGE('',*,*,#16485,.F.); +#11306=ORIENTED_EDGE('',*,*,#14552,.T.); +#11307=ORIENTED_EDGE('',*,*,#16484,.T.); +#11308=ORIENTED_EDGE('',*,*,#16486,.F.); +#11309=ORIENTED_EDGE('',*,*,#14553,.F.); +#11310=ORIENTED_EDGE('',*,*,#16485,.T.); +#11311=ORIENTED_EDGE('',*,*,#14119,.F.); +#11312=ORIENTED_EDGE('',*,*,#16487,.F.); +#11313=ORIENTED_EDGE('',*,*,#14554,.F.); +#11314=ORIENTED_EDGE('',*,*,#16486,.T.); +#11315=ORIENTED_EDGE('',*,*,#14118,.F.); +#11316=ORIENTED_EDGE('',*,*,#16488,.F.); +#11317=ORIENTED_EDGE('',*,*,#15531,.T.); +#11318=ORIENTED_EDGE('',*,*,#15442,.F.); +#11319=ORIENTED_EDGE('',*,*,#16489,.T.); +#11320=ORIENTED_EDGE('',*,*,#15312,.F.); +#11321=ORIENTED_EDGE('',*,*,#15311,.T.); +#11322=ORIENTED_EDGE('',*,*,#16477,.F.); +#11323=ORIENTED_EDGE('',*,*,#15532,.F.); +#11324=ORIENTED_EDGE('',*,*,#16488,.T.); +#11325=ORIENTED_EDGE('',*,*,#15310,.T.); +#11326=ORIENTED_EDGE('',*,*,#16490,.F.); +#11327=ORIENTED_EDGE('',*,*,#15529,.F.); +#11328=ORIENTED_EDGE('',*,*,#16487,.T.); +#11329=ORIENTED_EDGE('',*,*,#16491,.F.); +#11330=ORIENTED_EDGE('',*,*,#15439,.F.); +#11331=ORIENTED_EDGE('',*,*,#15530,.T.); +#11332=ORIENTED_EDGE('',*,*,#16490,.T.); +#11333=ORIENTED_EDGE('',*,*,#15309,.F.); +#11334=ORIENTED_EDGE('',*,*,#16489,.F.); +#11335=ORIENTED_EDGE('',*,*,#15441,.F.); +#11336=ORIENTED_EDGE('',*,*,#15313,.F.); +#11337=ORIENTED_EDGE('',*,*,#15440,.F.); +#11338=ORIENTED_EDGE('',*,*,#16491,.T.); +#11339=ORIENTED_EDGE('',*,*,#15308,.F.); +#11340=ORIENTED_EDGE('',*,*,#16492,.F.); +#11341=ORIENTED_EDGE('',*,*,#14556,.F.); +#11342=ORIENTED_EDGE('',*,*,#16493,.T.); +#11343=ORIENTED_EDGE('',*,*,#14116,.F.); +#11344=ORIENTED_EDGE('',*,*,#16494,.F.); +#11345=ORIENTED_EDGE('',*,*,#14557,.F.); +#11346=ORIENTED_EDGE('',*,*,#16492,.T.); +#11347=ORIENTED_EDGE('',*,*,#14115,.F.); +#11348=ORIENTED_EDGE('',*,*,#14114,.T.); +#11349=ORIENTED_EDGE('',*,*,#16495,.F.); +#11350=ORIENTED_EDGE('',*,*,#14558,.T.); +#11351=ORIENTED_EDGE('',*,*,#16494,.T.); +#11352=ORIENTED_EDGE('',*,*,#16496,.F.); +#11353=ORIENTED_EDGE('',*,*,#14559,.F.); +#11354=ORIENTED_EDGE('',*,*,#16495,.T.); +#11355=ORIENTED_EDGE('',*,*,#14113,.F.); +#11356=ORIENTED_EDGE('',*,*,#16497,.F.); +#11357=ORIENTED_EDGE('',*,*,#14560,.F.); +#11358=ORIENTED_EDGE('',*,*,#16496,.T.); +#11359=ORIENTED_EDGE('',*,*,#14112,.F.); +#11360=ORIENTED_EDGE('',*,*,#15264,.F.); +#11361=ORIENTED_EDGE('',*,*,#14561,.F.); +#11362=ORIENTED_EDGE('',*,*,#16497,.T.); +#11363=ORIENTED_EDGE('',*,*,#14111,.F.); +#11364=ORIENTED_EDGE('',*,*,#16498,.F.); +#11365=ORIENTED_EDGE('',*,*,#14563,.F.); +#11366=ORIENTED_EDGE('',*,*,#15265,.T.); +#11367=ORIENTED_EDGE('',*,*,#14109,.F.); +#11368=ORIENTED_EDGE('',*,*,#16499,.F.); +#11369=ORIENTED_EDGE('',*,*,#14564,.F.); +#11370=ORIENTED_EDGE('',*,*,#16498,.T.); +#11371=ORIENTED_EDGE('',*,*,#14108,.F.); +#11372=ORIENTED_EDGE('',*,*,#16500,.F.); +#11373=ORIENTED_EDGE('',*,*,#14565,.F.); +#11374=ORIENTED_EDGE('',*,*,#16499,.T.); +#11375=ORIENTED_EDGE('',*,*,#14107,.F.); +#11376=ORIENTED_EDGE('',*,*,#14106,.T.); +#11377=ORIENTED_EDGE('',*,*,#16501,.F.); +#11378=ORIENTED_EDGE('',*,*,#14566,.T.); +#11379=ORIENTED_EDGE('',*,*,#16500,.T.); +#11380=ORIENTED_EDGE('',*,*,#16502,.F.); +#11381=ORIENTED_EDGE('',*,*,#14567,.F.); +#11382=ORIENTED_EDGE('',*,*,#16501,.T.); +#11383=ORIENTED_EDGE('',*,*,#14105,.F.); +#11384=ORIENTED_EDGE('',*,*,#16503,.F.); +#11385=ORIENTED_EDGE('',*,*,#14568,.F.); +#11386=ORIENTED_EDGE('',*,*,#16502,.T.); +#11387=ORIENTED_EDGE('',*,*,#14104,.F.); +#11388=ORIENTED_EDGE('',*,*,#16504,.F.); +#11389=ORIENTED_EDGE('',*,*,#15527,.T.); +#11390=ORIENTED_EDGE('',*,*,#15437,.F.); +#11391=ORIENTED_EDGE('',*,*,#16505,.T.); +#11392=ORIENTED_EDGE('',*,*,#15305,.F.); +#11393=ORIENTED_EDGE('',*,*,#15304,.T.); +#11394=ORIENTED_EDGE('',*,*,#16493,.F.); +#11395=ORIENTED_EDGE('',*,*,#15528,.F.); +#11396=ORIENTED_EDGE('',*,*,#16504,.T.); +#11397=ORIENTED_EDGE('',*,*,#15303,.T.); +#11398=ORIENTED_EDGE('',*,*,#16506,.F.); +#11399=ORIENTED_EDGE('',*,*,#15525,.F.); +#11400=ORIENTED_EDGE('',*,*,#16503,.T.); +#11401=ORIENTED_EDGE('',*,*,#16507,.F.); +#11402=ORIENTED_EDGE('',*,*,#15434,.F.); +#11403=ORIENTED_EDGE('',*,*,#15526,.T.); +#11404=ORIENTED_EDGE('',*,*,#16506,.T.); +#11405=ORIENTED_EDGE('',*,*,#15302,.F.); +#11406=ORIENTED_EDGE('',*,*,#16505,.F.); +#11407=ORIENTED_EDGE('',*,*,#15436,.F.); +#11408=ORIENTED_EDGE('',*,*,#15306,.F.); +#11409=ORIENTED_EDGE('',*,*,#15435,.F.); +#11410=ORIENTED_EDGE('',*,*,#16507,.T.); +#11411=ORIENTED_EDGE('',*,*,#15301,.F.); +#11412=ORIENTED_EDGE('',*,*,#16508,.F.); +#11413=ORIENTED_EDGE('',*,*,#14570,.F.); +#11414=ORIENTED_EDGE('',*,*,#16509,.T.); +#11415=ORIENTED_EDGE('',*,*,#14102,.F.); +#11416=ORIENTED_EDGE('',*,*,#16510,.F.); +#11417=ORIENTED_EDGE('',*,*,#14571,.F.); +#11418=ORIENTED_EDGE('',*,*,#16508,.T.); +#11419=ORIENTED_EDGE('',*,*,#14101,.F.); +#11420=ORIENTED_EDGE('',*,*,#14100,.T.); +#11421=ORIENTED_EDGE('',*,*,#16511,.F.); +#11422=ORIENTED_EDGE('',*,*,#14572,.T.); +#11423=ORIENTED_EDGE('',*,*,#16510,.T.); +#11424=ORIENTED_EDGE('',*,*,#16512,.F.); +#11425=ORIENTED_EDGE('',*,*,#14573,.F.); +#11426=ORIENTED_EDGE('',*,*,#16511,.T.); +#11427=ORIENTED_EDGE('',*,*,#14099,.F.); +#11428=ORIENTED_EDGE('',*,*,#16513,.F.); +#11429=ORIENTED_EDGE('',*,*,#14574,.F.); +#11430=ORIENTED_EDGE('',*,*,#16512,.T.); +#11431=ORIENTED_EDGE('',*,*,#14098,.F.); +#11432=ORIENTED_EDGE('',*,*,#15266,.F.); +#11433=ORIENTED_EDGE('',*,*,#14575,.F.); +#11434=ORIENTED_EDGE('',*,*,#16513,.T.); +#11435=ORIENTED_EDGE('',*,*,#14097,.F.); +#11436=ORIENTED_EDGE('',*,*,#16514,.F.); +#11437=ORIENTED_EDGE('',*,*,#14577,.F.); +#11438=ORIENTED_EDGE('',*,*,#15267,.T.); +#11439=ORIENTED_EDGE('',*,*,#14095,.F.); +#11440=ORIENTED_EDGE('',*,*,#16515,.F.); +#11441=ORIENTED_EDGE('',*,*,#14578,.F.); +#11442=ORIENTED_EDGE('',*,*,#16514,.T.); +#11443=ORIENTED_EDGE('',*,*,#14094,.F.); +#11444=ORIENTED_EDGE('',*,*,#16516,.F.); +#11445=ORIENTED_EDGE('',*,*,#14579,.F.); +#11446=ORIENTED_EDGE('',*,*,#16515,.T.); +#11447=ORIENTED_EDGE('',*,*,#14093,.F.); +#11448=ORIENTED_EDGE('',*,*,#14092,.T.); +#11449=ORIENTED_EDGE('',*,*,#16517,.F.); +#11450=ORIENTED_EDGE('',*,*,#14580,.T.); +#11451=ORIENTED_EDGE('',*,*,#16516,.T.); +#11452=ORIENTED_EDGE('',*,*,#16518,.F.); +#11453=ORIENTED_EDGE('',*,*,#14581,.F.); +#11454=ORIENTED_EDGE('',*,*,#16517,.T.); +#11455=ORIENTED_EDGE('',*,*,#14091,.F.); +#11456=ORIENTED_EDGE('',*,*,#16519,.F.); +#11457=ORIENTED_EDGE('',*,*,#14582,.F.); +#11458=ORIENTED_EDGE('',*,*,#16518,.T.); +#11459=ORIENTED_EDGE('',*,*,#14090,.F.); +#11460=ORIENTED_EDGE('',*,*,#16520,.F.); +#11461=ORIENTED_EDGE('',*,*,#15523,.T.); +#11462=ORIENTED_EDGE('',*,*,#15432,.F.); +#11463=ORIENTED_EDGE('',*,*,#16521,.T.); +#11464=ORIENTED_EDGE('',*,*,#15298,.F.); +#11465=ORIENTED_EDGE('',*,*,#15297,.T.); +#11466=ORIENTED_EDGE('',*,*,#16509,.F.); +#11467=ORIENTED_EDGE('',*,*,#15524,.F.); +#11468=ORIENTED_EDGE('',*,*,#16520,.T.); +#11469=ORIENTED_EDGE('',*,*,#15296,.T.); +#11470=ORIENTED_EDGE('',*,*,#16522,.F.); +#11471=ORIENTED_EDGE('',*,*,#15521,.F.); +#11472=ORIENTED_EDGE('',*,*,#16519,.T.); +#11473=ORIENTED_EDGE('',*,*,#16523,.F.); +#11474=ORIENTED_EDGE('',*,*,#15429,.F.); +#11475=ORIENTED_EDGE('',*,*,#15522,.T.); +#11476=ORIENTED_EDGE('',*,*,#16522,.T.); +#11477=ORIENTED_EDGE('',*,*,#15295,.F.); +#11478=ORIENTED_EDGE('',*,*,#16521,.F.); +#11479=ORIENTED_EDGE('',*,*,#15431,.F.); +#11480=ORIENTED_EDGE('',*,*,#15299,.F.); +#11481=ORIENTED_EDGE('',*,*,#15430,.F.); +#11482=ORIENTED_EDGE('',*,*,#16523,.T.); +#11483=ORIENTED_EDGE('',*,*,#15294,.F.); +#11484=ORIENTED_EDGE('',*,*,#16524,.F.); +#11485=ORIENTED_EDGE('',*,*,#14584,.F.); +#11486=ORIENTED_EDGE('',*,*,#16525,.T.); +#11487=ORIENTED_EDGE('',*,*,#14088,.F.); +#11488=ORIENTED_EDGE('',*,*,#16526,.F.); +#11489=ORIENTED_EDGE('',*,*,#14585,.F.); +#11490=ORIENTED_EDGE('',*,*,#16524,.T.); +#11491=ORIENTED_EDGE('',*,*,#14087,.F.); +#11492=ORIENTED_EDGE('',*,*,#14086,.T.); +#11493=ORIENTED_EDGE('',*,*,#16527,.F.); +#11494=ORIENTED_EDGE('',*,*,#14586,.T.); +#11495=ORIENTED_EDGE('',*,*,#16526,.T.); +#11496=ORIENTED_EDGE('',*,*,#16528,.F.); +#11497=ORIENTED_EDGE('',*,*,#14587,.F.); +#11498=ORIENTED_EDGE('',*,*,#16527,.T.); +#11499=ORIENTED_EDGE('',*,*,#14085,.F.); +#11500=ORIENTED_EDGE('',*,*,#16529,.F.); +#11501=ORIENTED_EDGE('',*,*,#14588,.F.); +#11502=ORIENTED_EDGE('',*,*,#16528,.T.); +#11503=ORIENTED_EDGE('',*,*,#14084,.F.); +#11504=ORIENTED_EDGE('',*,*,#15268,.F.); +#11505=ORIENTED_EDGE('',*,*,#14589,.F.); +#11506=ORIENTED_EDGE('',*,*,#16529,.T.); +#11507=ORIENTED_EDGE('',*,*,#14083,.F.); +#11508=ORIENTED_EDGE('',*,*,#16530,.F.); +#11509=ORIENTED_EDGE('',*,*,#14591,.F.); +#11510=ORIENTED_EDGE('',*,*,#15269,.T.); +#11511=ORIENTED_EDGE('',*,*,#14081,.F.); +#11512=ORIENTED_EDGE('',*,*,#16531,.F.); +#11513=ORIENTED_EDGE('',*,*,#14592,.F.); +#11514=ORIENTED_EDGE('',*,*,#16530,.T.); +#11515=ORIENTED_EDGE('',*,*,#14080,.F.); +#11516=ORIENTED_EDGE('',*,*,#16532,.F.); +#11517=ORIENTED_EDGE('',*,*,#14593,.F.); +#11518=ORIENTED_EDGE('',*,*,#16531,.T.); +#11519=ORIENTED_EDGE('',*,*,#14079,.F.); +#11520=ORIENTED_EDGE('',*,*,#14078,.T.); +#11521=ORIENTED_EDGE('',*,*,#16533,.F.); +#11522=ORIENTED_EDGE('',*,*,#14594,.T.); +#11523=ORIENTED_EDGE('',*,*,#16532,.T.); +#11524=ORIENTED_EDGE('',*,*,#16534,.F.); +#11525=ORIENTED_EDGE('',*,*,#14595,.F.); +#11526=ORIENTED_EDGE('',*,*,#16533,.T.); +#11527=ORIENTED_EDGE('',*,*,#14077,.F.); +#11528=ORIENTED_EDGE('',*,*,#16535,.F.); +#11529=ORIENTED_EDGE('',*,*,#14596,.F.); +#11530=ORIENTED_EDGE('',*,*,#16534,.T.); +#11531=ORIENTED_EDGE('',*,*,#14076,.F.); +#11532=ORIENTED_EDGE('',*,*,#16536,.F.); +#11533=ORIENTED_EDGE('',*,*,#15519,.T.); +#11534=ORIENTED_EDGE('',*,*,#15427,.F.); +#11535=ORIENTED_EDGE('',*,*,#16537,.T.); +#11536=ORIENTED_EDGE('',*,*,#15291,.F.); +#11537=ORIENTED_EDGE('',*,*,#15290,.T.); +#11538=ORIENTED_EDGE('',*,*,#16525,.F.); +#11539=ORIENTED_EDGE('',*,*,#15520,.F.); +#11540=ORIENTED_EDGE('',*,*,#16536,.T.); +#11541=ORIENTED_EDGE('',*,*,#15289,.T.); +#11542=ORIENTED_EDGE('',*,*,#16538,.F.); +#11543=ORIENTED_EDGE('',*,*,#15517,.F.); +#11544=ORIENTED_EDGE('',*,*,#16535,.T.); +#11545=ORIENTED_EDGE('',*,*,#16539,.F.); +#11546=ORIENTED_EDGE('',*,*,#15424,.F.); +#11547=ORIENTED_EDGE('',*,*,#15518,.T.); +#11548=ORIENTED_EDGE('',*,*,#16538,.T.); +#11549=ORIENTED_EDGE('',*,*,#15288,.F.); +#11550=ORIENTED_EDGE('',*,*,#16537,.F.); +#11551=ORIENTED_EDGE('',*,*,#15426,.F.); +#11552=ORIENTED_EDGE('',*,*,#15292,.F.); +#11553=ORIENTED_EDGE('',*,*,#15425,.F.); +#11554=ORIENTED_EDGE('',*,*,#16539,.T.); +#11555=ORIENTED_EDGE('',*,*,#15287,.F.); +#11556=ORIENTED_EDGE('',*,*,#16540,.F.); +#11557=ORIENTED_EDGE('',*,*,#14598,.F.); +#11558=ORIENTED_EDGE('',*,*,#16541,.T.); +#11559=ORIENTED_EDGE('',*,*,#14074,.F.); +#11560=ORIENTED_EDGE('',*,*,#16542,.F.); +#11561=ORIENTED_EDGE('',*,*,#14599,.F.); +#11562=ORIENTED_EDGE('',*,*,#16540,.T.); +#11563=ORIENTED_EDGE('',*,*,#14073,.F.); +#11564=ORIENTED_EDGE('',*,*,#14072,.T.); +#11565=ORIENTED_EDGE('',*,*,#16543,.F.); +#11566=ORIENTED_EDGE('',*,*,#14600,.T.); +#11567=ORIENTED_EDGE('',*,*,#16542,.T.); +#11568=ORIENTED_EDGE('',*,*,#16544,.F.); +#11569=ORIENTED_EDGE('',*,*,#14601,.F.); +#11570=ORIENTED_EDGE('',*,*,#16543,.T.); +#11571=ORIENTED_EDGE('',*,*,#14071,.F.); +#11572=ORIENTED_EDGE('',*,*,#16545,.F.); +#11573=ORIENTED_EDGE('',*,*,#14602,.F.); +#11574=ORIENTED_EDGE('',*,*,#16544,.T.); +#11575=ORIENTED_EDGE('',*,*,#14070,.F.); +#11576=ORIENTED_EDGE('',*,*,#15270,.F.); +#11577=ORIENTED_EDGE('',*,*,#14603,.F.); +#11578=ORIENTED_EDGE('',*,*,#16545,.T.); +#11579=ORIENTED_EDGE('',*,*,#14069,.F.); +#11580=ORIENTED_EDGE('',*,*,#16546,.F.); +#11581=ORIENTED_EDGE('',*,*,#14605,.F.); +#11582=ORIENTED_EDGE('',*,*,#15271,.T.); +#11583=ORIENTED_EDGE('',*,*,#14067,.F.); +#11584=ORIENTED_EDGE('',*,*,#16547,.F.); +#11585=ORIENTED_EDGE('',*,*,#14606,.F.); +#11586=ORIENTED_EDGE('',*,*,#16546,.T.); +#11587=ORIENTED_EDGE('',*,*,#14066,.F.); +#11588=ORIENTED_EDGE('',*,*,#16548,.F.); +#11589=ORIENTED_EDGE('',*,*,#14607,.F.); +#11590=ORIENTED_EDGE('',*,*,#16547,.T.); +#11591=ORIENTED_EDGE('',*,*,#14065,.F.); +#11592=ORIENTED_EDGE('',*,*,#14064,.T.); +#11593=ORIENTED_EDGE('',*,*,#16549,.F.); +#11594=ORIENTED_EDGE('',*,*,#14608,.T.); +#11595=ORIENTED_EDGE('',*,*,#16548,.T.); +#11596=ORIENTED_EDGE('',*,*,#16550,.F.); +#11597=ORIENTED_EDGE('',*,*,#14609,.F.); +#11598=ORIENTED_EDGE('',*,*,#16549,.T.); +#11599=ORIENTED_EDGE('',*,*,#14063,.F.); +#11600=ORIENTED_EDGE('',*,*,#16551,.F.); +#11601=ORIENTED_EDGE('',*,*,#14610,.F.); +#11602=ORIENTED_EDGE('',*,*,#16550,.T.); +#11603=ORIENTED_EDGE('',*,*,#14062,.F.); +#11604=ORIENTED_EDGE('',*,*,#16552,.F.); +#11605=ORIENTED_EDGE('',*,*,#15515,.T.); +#11606=ORIENTED_EDGE('',*,*,#15422,.F.); +#11607=ORIENTED_EDGE('',*,*,#16553,.T.); +#11608=ORIENTED_EDGE('',*,*,#15284,.F.); +#11609=ORIENTED_EDGE('',*,*,#15283,.T.); +#11610=ORIENTED_EDGE('',*,*,#16541,.F.); +#11611=ORIENTED_EDGE('',*,*,#15516,.F.); +#11612=ORIENTED_EDGE('',*,*,#16552,.T.); +#11613=ORIENTED_EDGE('',*,*,#15282,.T.); +#11614=ORIENTED_EDGE('',*,*,#16554,.F.); +#11615=ORIENTED_EDGE('',*,*,#15513,.F.); +#11616=ORIENTED_EDGE('',*,*,#16551,.T.); +#11617=ORIENTED_EDGE('',*,*,#16555,.F.); +#11618=ORIENTED_EDGE('',*,*,#15419,.F.); +#11619=ORIENTED_EDGE('',*,*,#15514,.T.); +#11620=ORIENTED_EDGE('',*,*,#16554,.T.); +#11621=ORIENTED_EDGE('',*,*,#15281,.F.); +#11622=ORIENTED_EDGE('',*,*,#16553,.F.); +#11623=ORIENTED_EDGE('',*,*,#15421,.F.); +#11624=ORIENTED_EDGE('',*,*,#15285,.F.); +#11625=ORIENTED_EDGE('',*,*,#15420,.F.); +#11626=ORIENTED_EDGE('',*,*,#16555,.T.); +#11627=ORIENTED_EDGE('',*,*,#15280,.F.); +#11628=ORIENTED_EDGE('',*,*,#15274,.F.); +#11629=ORIENTED_EDGE('',*,*,#14054,.T.); +#11630=ORIENTED_EDGE('',*,*,#15189,.T.); +#11631=ORIENTED_EDGE('',*,*,#15186,.T.); +#11632=ORIENTED_EDGE('',*,*,#15910,.F.); +#11633=ORIENTED_EDGE('',*,*,#14622,.F.); +#11634=ORIENTED_EDGE('',*,*,#15191,.F.); +#11635=ORIENTED_EDGE('',*,*,#14618,.F.); +#11636=ORIENTED_EDGE('',*,*,#14334,.T.); +#11637=ORIENTED_EDGE('',*,*,#15272,.T.); +#11638=ORIENTED_EDGE('',*,*,#14338,.F.); +#11639=ORIENTED_EDGE('',*,*,#15193,.F.); +#11640=ORIENTED_EDGE('',*,*,#14902,.F.); +#11641=ORIENTED_EDGE('',*,*,#15908,.T.); +#11642=ORIENTED_EDGE('',*,*,#14906,.T.); +#11643=ORIENTED_EDGE('',*,*,#15195,.T.); +#11644=ORIENTED_EDGE('',*,*,#14620,.T.); +#11645=ORIENTED_EDGE('',*,*,#15192,.F.); +#11646=ORIENTED_EDGE('',*,*,#14336,.T.); +#11647=ORIENTED_EDGE('',*,*,#15190,.F.); +#11648=ORIENTED_EDGE('',*,*,#15188,.T.); +#11649=ORIENTED_EDGE('',*,*,#14052,.T.); +#11650=ORIENTED_EDGE('',*,*,#15194,.T.); +#11651=ORIENTED_EDGE('',*,*,#14904,.T.); +#11652=EDGE_CURVE('',#16556,#16557,#19773,.T.); +#11653=EDGE_CURVE('',#16556,#16558,#19774,.T.); +#11654=EDGE_CURVE('',#16559,#16558,#19775,.T.); +#11655=EDGE_CURVE('',#16560,#16559,#19776,.T.); +#11656=EDGE_CURVE('',#16560,#16561,#19777,.T.); +#11657=EDGE_CURVE('',#16561,#16557,#19778,.T.); +#11658=EDGE_CURVE('',#16562,#16563,#19779,.T.); +#11659=EDGE_CURVE('',#16562,#16564,#19780,.T.); +#11660=EDGE_CURVE('',#16565,#16564,#19781,.T.); +#11661=EDGE_CURVE('',#16566,#16565,#19782,.T.); +#11662=EDGE_CURVE('',#16566,#16567,#19783,.T.); +#11663=EDGE_CURVE('',#16567,#16563,#19784,.T.); +#11664=EDGE_CURVE('',#16568,#16557,#19785,.T.); +#11665=EDGE_CURVE('',#16569,#16561,#19786,.T.); +#11666=EDGE_CURVE('',#16569,#16570,#19787,.T.); +#11667=EDGE_CURVE('',#16571,#16570,#19788,.T.); +#11668=EDGE_CURVE('',#16572,#16571,#19789,.T.); +#11669=EDGE_CURVE('',#16573,#16572,#19790,.T.); +#11670=EDGE_CURVE('',#16573,#16574,#19791,.T.); +#11671=EDGE_CURVE('',#16575,#16574,#19792,.T.); +#11672=EDGE_CURVE('',#16575,#16576,#19793,.T.); +#11673=EDGE_CURVE('',#16577,#16576,#19794,.T.); +#11674=EDGE_CURVE('',#16578,#16577,#19795,.T.); +#11675=EDGE_CURVE('',#16578,#16579,#19796,.T.); +#11676=EDGE_CURVE('',#16579,#16580,#959,.T.); +#11677=EDGE_CURVE('',#16580,#16581,#19797,.T.); +#11678=EDGE_CURVE('',#16581,#16582,#960,.T.); +#11679=EDGE_CURVE('',#16582,#16583,#19798,.T.); +#11680=EDGE_CURVE('',#16584,#16583,#19799,.T.); +#11681=EDGE_CURVE('',#16585,#16584,#19800,.T.); +#11682=EDGE_CURVE('',#16586,#16585,#19801,.T.); +#11683=EDGE_CURVE('',#16587,#16586,#19802,.T.); +#11684=EDGE_CURVE('',#16587,#16588,#19803,.T.); +#11685=EDGE_CURVE('',#16589,#16588,#19804,.T.); +#11686=EDGE_CURVE('',#16589,#16590,#19805,.T.); +#11687=EDGE_CURVE('',#16590,#16591,#19806,.T.); +#11688=EDGE_CURVE('',#16591,#16592,#19807,.T.); +#11689=EDGE_CURVE('',#16593,#16592,#19808,.T.); +#11690=EDGE_CURVE('',#16594,#16593,#19809,.T.); +#11691=EDGE_CURVE('',#16595,#16594,#19810,.T.); +#11692=EDGE_CURVE('',#16564,#16595,#19811,.T.); +#11693=EDGE_CURVE('',#16562,#16596,#19812,.T.); +#11694=EDGE_CURVE('',#16596,#16597,#961,.T.); +#11695=EDGE_CURVE('',#16597,#16598,#19813,.T.); +#11696=EDGE_CURVE('',#16598,#16568,#962,.T.); +#11697=EDGE_CURVE('',#16599,#16600,#19814,.T.); +#11698=EDGE_CURVE('',#16600,#16601,#963,.T.); +#11699=EDGE_CURVE('',#16601,#16602,#964,.T.); +#11700=EDGE_CURVE('',#16603,#16602,#965,.T.); +#11701=EDGE_CURVE('',#16603,#16604,#966,.T.); +#11702=EDGE_CURVE('',#16604,#16605,#967,.T.); +#11703=EDGE_CURVE('',#16605,#16606,#19815,.T.); +#11704=EDGE_CURVE('',#16606,#16607,#968,.T.); +#11705=EDGE_CURVE('',#16607,#16608,#19816,.T.); +#11706=EDGE_CURVE('',#16608,#16599,#19817,.T.); +#11707=EDGE_CURVE('',#16609,#16610,#969,.T.); +#11708=EDGE_CURVE('',#16610,#16611,#19818,.T.); +#11709=EDGE_CURVE('',#16611,#16612,#970,.T.); +#11710=EDGE_CURVE('',#16612,#16613,#19819,.T.); +#11711=EDGE_CURVE('',#16613,#16614,#971,.T.); +#11712=EDGE_CURVE('',#16614,#16615,#19820,.T.); +#11713=EDGE_CURVE('',#16615,#16616,#972,.T.); +#11714=EDGE_CURVE('',#16616,#16609,#19821,.T.); +#11715=EDGE_CURVE('',#16617,#16617,#973,.F.); +#11716=EDGE_CURVE('',#16618,#16619,#19822,.T.); +#11717=EDGE_CURVE('',#16619,#16620,#974,.T.); +#11718=EDGE_CURVE('',#16620,#16621,#975,.T.); +#11719=EDGE_CURVE('',#16622,#16621,#976,.T.); +#11720=EDGE_CURVE('',#16622,#16623,#977,.T.); +#11721=EDGE_CURVE('',#16623,#16624,#978,.T.); +#11722=EDGE_CURVE('',#16624,#16625,#19823,.T.); +#11723=EDGE_CURVE('',#16625,#16626,#979,.T.); +#11724=EDGE_CURVE('',#16626,#16627,#19824,.T.); +#11725=EDGE_CURVE('',#16627,#16618,#980,.T.); +#11726=EDGE_CURVE('',#16578,#16628,#19825,.T.); +#11727=EDGE_CURVE('',#16629,#16577,#19826,.T.); +#11728=EDGE_CURVE('',#16630,#16629,#19827,.T.); +#11729=EDGE_CURVE('',#16630,#16584,#19828,.T.); +#11730=EDGE_CURVE('',#16631,#16583,#19829,.T.); +#11731=EDGE_CURVE('',#16631,#16628,#19830,.T.); +#11732=EDGE_CURVE('',#16632,#16633,#19831,.T.); +#11733=EDGE_CURVE('',#16632,#16634,#19832,.T.); +#11734=EDGE_CURVE('',#16635,#16634,#19833,.T.); +#11735=EDGE_CURVE('',#16635,#16636,#19834,.T.); +#11736=EDGE_CURVE('',#16637,#16636,#19835,.T.); +#11737=EDGE_CURVE('',#16637,#16638,#19836,.T.); +#11738=EDGE_CURVE('',#16638,#16639,#19837,.T.); +#11739=EDGE_CURVE('',#16639,#16640,#19838,.T.); +#11740=EDGE_CURVE('',#16640,#16641,#19839,.T.); +#11741=EDGE_CURVE('',#16641,#16642,#19840,.T.); +#11742=EDGE_CURVE('',#16642,#16643,#19841,.T.); +#11743=EDGE_CURVE('',#16643,#16644,#19842,.T.); +#11744=EDGE_CURVE('',#16644,#16645,#19843,.T.); +#11745=EDGE_CURVE('',#16645,#16646,#19844,.T.); +#11746=EDGE_CURVE('',#16646,#16647,#19845,.T.); +#11747=EDGE_CURVE('',#16647,#16648,#19846,.T.); +#11748=EDGE_CURVE('',#16648,#16649,#19847,.T.); +#11749=EDGE_CURVE('',#16649,#16650,#19848,.T.); +#11750=EDGE_CURVE('',#16650,#16651,#19849,.T.); +#11751=EDGE_CURVE('',#16651,#16652,#19850,.T.); +#11752=EDGE_CURVE('',#16652,#16653,#19851,.T.); +#11753=EDGE_CURVE('',#16653,#16654,#19852,.T.); +#11754=EDGE_CURVE('',#16654,#16655,#19853,.T.); +#11755=EDGE_CURVE('',#16655,#16656,#19854,.T.); +#11756=EDGE_CURVE('',#16656,#16657,#19855,.T.); +#11757=EDGE_CURVE('',#16657,#16658,#19856,.T.); +#11758=EDGE_CURVE('',#16658,#16659,#19857,.T.); +#11759=EDGE_CURVE('',#16659,#16660,#19858,.T.); +#11760=EDGE_CURVE('',#16660,#16661,#19859,.T.); +#11761=EDGE_CURVE('',#16661,#16662,#19860,.T.); +#11762=EDGE_CURVE('',#16662,#16663,#19861,.T.); +#11763=EDGE_CURVE('',#16663,#16664,#19862,.T.); +#11764=EDGE_CURVE('',#16664,#16665,#19863,.T.); +#11765=EDGE_CURVE('',#16665,#16666,#19864,.T.); +#11766=EDGE_CURVE('',#16666,#16667,#19865,.T.); +#11767=EDGE_CURVE('',#16667,#16668,#19866,.T.); +#11768=EDGE_CURVE('',#16668,#16669,#19867,.T.); +#11769=EDGE_CURVE('',#16669,#16670,#19868,.T.); +#11770=EDGE_CURVE('',#16670,#16671,#19869,.T.); +#11771=EDGE_CURVE('',#16671,#16672,#19870,.T.); +#11772=EDGE_CURVE('',#16672,#16673,#19871,.T.); +#11773=EDGE_CURVE('',#16673,#16674,#19872,.T.); +#11774=EDGE_CURVE('',#16674,#16675,#19873,.T.); +#11775=EDGE_CURVE('',#16675,#16676,#19874,.T.); +#11776=EDGE_CURVE('',#16676,#16677,#19875,.T.); +#11777=EDGE_CURVE('',#16677,#16678,#19876,.T.); +#11778=EDGE_CURVE('',#16678,#16679,#19877,.T.); +#11779=EDGE_CURVE('',#16679,#16680,#19878,.T.); +#11780=EDGE_CURVE('',#16680,#16681,#19879,.T.); +#11781=EDGE_CURVE('',#16681,#16682,#19880,.T.); +#11782=EDGE_CURVE('',#16682,#16683,#19881,.T.); +#11783=EDGE_CURVE('',#16683,#16684,#19882,.T.); +#11784=EDGE_CURVE('',#16684,#16685,#19883,.T.); +#11785=EDGE_CURVE('',#16685,#16686,#19884,.T.); +#11786=EDGE_CURVE('',#16686,#16687,#19885,.T.); +#11787=EDGE_CURVE('',#16687,#16688,#19886,.T.); +#11788=EDGE_CURVE('',#16688,#16689,#19887,.T.); +#11789=EDGE_CURVE('',#16689,#16690,#19888,.T.); +#11790=EDGE_CURVE('',#16690,#16691,#19889,.T.); +#11791=EDGE_CURVE('',#16691,#16692,#19890,.T.); +#11792=EDGE_CURVE('',#16692,#16693,#19891,.T.); +#11793=EDGE_CURVE('',#16693,#16694,#19892,.T.); +#11794=EDGE_CURVE('',#16694,#16695,#19893,.T.); +#11795=EDGE_CURVE('',#16695,#16696,#19894,.T.); +#11796=EDGE_CURVE('',#16696,#16697,#19895,.T.); +#11797=EDGE_CURVE('',#16697,#16698,#19896,.T.); +#11798=EDGE_CURVE('',#16698,#16699,#19897,.T.); +#11799=EDGE_CURVE('',#16699,#16700,#19898,.T.); +#11800=EDGE_CURVE('',#16700,#16701,#19899,.T.); +#11801=EDGE_CURVE('',#16701,#16702,#19900,.T.); +#11802=EDGE_CURVE('',#16702,#16703,#19901,.T.); +#11803=EDGE_CURVE('',#16703,#16704,#19902,.T.); +#11804=EDGE_CURVE('',#16704,#16705,#19903,.T.); +#11805=EDGE_CURVE('',#16705,#16706,#19904,.T.); +#11806=EDGE_CURVE('',#16706,#16707,#19905,.T.); +#11807=EDGE_CURVE('',#16707,#16708,#19906,.T.); +#11808=EDGE_CURVE('',#16708,#16709,#19907,.T.); +#11809=EDGE_CURVE('',#16709,#16710,#19908,.T.); +#11810=EDGE_CURVE('',#16710,#16711,#19909,.T.); +#11811=EDGE_CURVE('',#16711,#16712,#19910,.T.); +#11812=EDGE_CURVE('',#16712,#16713,#19911,.T.); +#11813=EDGE_CURVE('',#16713,#16714,#19912,.T.); +#11814=EDGE_CURVE('',#16714,#16715,#19913,.T.); +#11815=EDGE_CURVE('',#16715,#16716,#19914,.T.); +#11816=EDGE_CURVE('',#16716,#16717,#19915,.T.); +#11817=EDGE_CURVE('',#16717,#16718,#19916,.T.); +#11818=EDGE_CURVE('',#16719,#16718,#19917,.T.); +#11819=EDGE_CURVE('',#16720,#16719,#19918,.T.); +#11820=EDGE_CURVE('',#16721,#16720,#19919,.T.); +#11821=EDGE_CURVE('',#16721,#16722,#19920,.T.); +#11822=EDGE_CURVE('',#16723,#16722,#19921,.T.); +#11823=EDGE_CURVE('',#16723,#16724,#19922,.T.); +#11824=EDGE_CURVE('',#16725,#16724,#19923,.T.); +#11825=EDGE_CURVE('',#16725,#16726,#19924,.T.); +#11826=EDGE_CURVE('',#16727,#16726,#19925,.T.); +#11827=EDGE_CURVE('',#16727,#16728,#19926,.T.); +#11828=EDGE_CURVE('',#16729,#16728,#19927,.T.); +#11829=EDGE_CURVE('',#16729,#16730,#19928,.T.); +#11830=EDGE_CURVE('',#16731,#16730,#19929,.T.); +#11831=EDGE_CURVE('',#16731,#16732,#19930,.T.); +#11832=EDGE_CURVE('',#16733,#16732,#19931,.T.); +#11833=EDGE_CURVE('',#16733,#16734,#19932,.T.); +#11834=EDGE_CURVE('',#16735,#16734,#19933,.T.); +#11835=EDGE_CURVE('',#16735,#16736,#19934,.T.); +#11836=EDGE_CURVE('',#16737,#16736,#19935,.T.); +#11837=EDGE_CURVE('',#16737,#16738,#19936,.T.); +#11838=EDGE_CURVE('',#16739,#16738,#19937,.T.); +#11839=EDGE_CURVE('',#16739,#16740,#19938,.T.); +#11840=EDGE_CURVE('',#16741,#16740,#19939,.T.); +#11841=EDGE_CURVE('',#16741,#16742,#19940,.T.); +#11842=EDGE_CURVE('',#16743,#16742,#19941,.T.); +#11843=EDGE_CURVE('',#16743,#16744,#19942,.T.); +#11844=EDGE_CURVE('',#16745,#16744,#19943,.T.); +#11845=EDGE_CURVE('',#16745,#16746,#19944,.T.); +#11846=EDGE_CURVE('',#16747,#16746,#19945,.T.); +#11847=EDGE_CURVE('',#16747,#16748,#19946,.T.); +#11848=EDGE_CURVE('',#16749,#16748,#19947,.T.); +#11849=EDGE_CURVE('',#16749,#16750,#19948,.T.); +#11850=EDGE_CURVE('',#16751,#16750,#19949,.T.); +#11851=EDGE_CURVE('',#16751,#16752,#19950,.T.); +#11852=EDGE_CURVE('',#16753,#16752,#19951,.T.); +#11853=EDGE_CURVE('',#16753,#16754,#19952,.T.); +#11854=EDGE_CURVE('',#16755,#16754,#19953,.T.); +#11855=EDGE_CURVE('',#16755,#16756,#19954,.T.); +#11856=EDGE_CURVE('',#16757,#16756,#19955,.T.); +#11857=EDGE_CURVE('',#16757,#16758,#19956,.T.); +#11858=EDGE_CURVE('',#16759,#16758,#19957,.T.); +#11859=EDGE_CURVE('',#16759,#16760,#19958,.T.); +#11860=EDGE_CURVE('',#16761,#16760,#19959,.T.); +#11861=EDGE_CURVE('',#16761,#16762,#19960,.T.); +#11862=EDGE_CURVE('',#16763,#16762,#19961,.T.); +#11863=EDGE_CURVE('',#16763,#16764,#19962,.T.); +#11864=EDGE_CURVE('',#16765,#16764,#19963,.T.); +#11865=EDGE_CURVE('',#16765,#16766,#19964,.T.); +#11866=EDGE_CURVE('',#16767,#16766,#19965,.T.); +#11867=EDGE_CURVE('',#16767,#16768,#19966,.T.); +#11868=EDGE_CURVE('',#16769,#16768,#19967,.T.); +#11869=EDGE_CURVE('',#16769,#16770,#19968,.T.); +#11870=EDGE_CURVE('',#16771,#16770,#19969,.T.); +#11871=EDGE_CURVE('',#16771,#16772,#19970,.T.); +#11872=EDGE_CURVE('',#16773,#16772,#19971,.T.); +#11873=EDGE_CURVE('',#16773,#16774,#19972,.T.); +#11874=EDGE_CURVE('',#16775,#16774,#19973,.T.); +#11875=EDGE_CURVE('',#16775,#16776,#19974,.T.); +#11876=EDGE_CURVE('',#16777,#16776,#19975,.T.); +#11877=EDGE_CURVE('',#16777,#16778,#19976,.T.); +#11878=EDGE_CURVE('',#16779,#16778,#19977,.T.); +#11879=EDGE_CURVE('',#16779,#16780,#19978,.T.); +#11880=EDGE_CURVE('',#16781,#16780,#19979,.T.); +#11881=EDGE_CURVE('',#16781,#16782,#19980,.T.); +#11882=EDGE_CURVE('',#16783,#16782,#19981,.T.); +#11883=EDGE_CURVE('',#16783,#16784,#19982,.T.); +#11884=EDGE_CURVE('',#16785,#16784,#19983,.T.); +#11885=EDGE_CURVE('',#16785,#16786,#19984,.T.); +#11886=EDGE_CURVE('',#16787,#16786,#19985,.T.); +#11887=EDGE_CURVE('',#16787,#16788,#19986,.T.); +#11888=EDGE_CURVE('',#16789,#16788,#19987,.T.); +#11889=EDGE_CURVE('',#16789,#16790,#19988,.T.); +#11890=EDGE_CURVE('',#16791,#16790,#19989,.T.); +#11891=EDGE_CURVE('',#16791,#16792,#19990,.T.); +#11892=EDGE_CURVE('',#16793,#16792,#19991,.T.); +#11893=EDGE_CURVE('',#16793,#16794,#19992,.T.); +#11894=EDGE_CURVE('',#16795,#16794,#19993,.T.); +#11895=EDGE_CURVE('',#16795,#16796,#19994,.T.); +#11896=EDGE_CURVE('',#16797,#16796,#19995,.T.); +#11897=EDGE_CURVE('',#16797,#16633,#19996,.T.); +#11898=EDGE_CURVE('',#16798,#16799,#19997,.T.); +#11899=EDGE_CURVE('',#16798,#16800,#19998,.T.); +#11900=EDGE_CURVE('',#16800,#16801,#19999,.T.); +#11901=EDGE_CURVE('',#16801,#16630,#20000,.T.); +#11902=EDGE_CURVE('',#16629,#16802,#20001,.T.); +#11903=EDGE_CURVE('',#16803,#16802,#20002,.T.); +#11904=EDGE_CURVE('',#16804,#16803,#20003,.T.); +#11905=EDGE_CURVE('',#16805,#16804,#20004,.T.); +#11906=EDGE_CURVE('',#16805,#16806,#20005,.T.); +#11907=EDGE_CURVE('',#16807,#16806,#20006,.T.); +#11908=EDGE_CURVE('',#16808,#16807,#20007,.T.); +#11909=EDGE_CURVE('',#16809,#16808,#20008,.T.); +#11910=EDGE_CURVE('',#16809,#16810,#20009,.T.); +#11911=EDGE_CURVE('',#16811,#16810,#20010,.T.); +#11912=EDGE_CURVE('',#16812,#16811,#20011,.T.); +#11913=EDGE_CURVE('',#16813,#16812,#20012,.T.); +#11914=EDGE_CURVE('',#16813,#16814,#20013,.T.); +#11915=EDGE_CURVE('',#16815,#16814,#20014,.T.); +#11916=EDGE_CURVE('',#16816,#16815,#20015,.T.); +#11917=EDGE_CURVE('',#16817,#16816,#20016,.T.); +#11918=EDGE_CURVE('',#16817,#16818,#20017,.T.); +#11919=EDGE_CURVE('',#16819,#16818,#20018,.T.); +#11920=EDGE_CURVE('',#16820,#16819,#20019,.T.); +#11921=EDGE_CURVE('',#16821,#16820,#20020,.T.); +#11922=EDGE_CURVE('',#16821,#16822,#20021,.T.); +#11923=EDGE_CURVE('',#16823,#16822,#20022,.T.); +#11924=EDGE_CURVE('',#16824,#16823,#20023,.T.); +#11925=EDGE_CURVE('',#16825,#16824,#20024,.T.); +#11926=EDGE_CURVE('',#16825,#16826,#20025,.T.); +#11927=EDGE_CURVE('',#16827,#16826,#20026,.T.); +#11928=EDGE_CURVE('',#16828,#16827,#20027,.T.); +#11929=EDGE_CURVE('',#16829,#16828,#20028,.T.); +#11930=EDGE_CURVE('',#16829,#16830,#20029,.T.); +#11931=EDGE_CURVE('',#16831,#16830,#20030,.T.); +#11932=EDGE_CURVE('',#16832,#16831,#20031,.T.); +#11933=EDGE_CURVE('',#16833,#16832,#20032,.T.); +#11934=EDGE_CURVE('',#16833,#16560,#20033,.T.); +#11935=EDGE_CURVE('',#16559,#16566,#20034,.T.); +#11936=EDGE_CURVE('',#16565,#16834,#20035,.T.); +#11937=EDGE_CURVE('',#16834,#16835,#20036,.T.); +#11938=EDGE_CURVE('',#16835,#16836,#20037,.T.); +#11939=EDGE_CURVE('',#16837,#16836,#20038,.T.); +#11940=EDGE_CURVE('',#16838,#16837,#20039,.T.); +#11941=EDGE_CURVE('',#16839,#16838,#20040,.T.); +#11942=EDGE_CURVE('',#16839,#16840,#20041,.T.); +#11943=EDGE_CURVE('',#16841,#16840,#20042,.T.); +#11944=EDGE_CURVE('',#16842,#16841,#20043,.T.); +#11945=EDGE_CURVE('',#16843,#16842,#20044,.T.); +#11946=EDGE_CURVE('',#16843,#16844,#20045,.T.); +#11947=EDGE_CURVE('',#16845,#16844,#20046,.T.); +#11948=EDGE_CURVE('',#16846,#16845,#20047,.T.); +#11949=EDGE_CURVE('',#16847,#16846,#20048,.T.); +#11950=EDGE_CURVE('',#16847,#16848,#20049,.T.); +#11951=EDGE_CURVE('',#16849,#16848,#20050,.T.); +#11952=EDGE_CURVE('',#16850,#16849,#20051,.T.); +#11953=EDGE_CURVE('',#16851,#16850,#20052,.T.); +#11954=EDGE_CURVE('',#16851,#16852,#20053,.T.); +#11955=EDGE_CURVE('',#16853,#16852,#20054,.T.); +#11956=EDGE_CURVE('',#16854,#16853,#20055,.T.); +#11957=EDGE_CURVE('',#16855,#16854,#20056,.T.); +#11958=EDGE_CURVE('',#16855,#16856,#20057,.T.); +#11959=EDGE_CURVE('',#16857,#16856,#20058,.T.); +#11960=EDGE_CURVE('',#16858,#16857,#20059,.T.); +#11961=EDGE_CURVE('',#16859,#16858,#20060,.T.); +#11962=EDGE_CURVE('',#16859,#16860,#20061,.T.); +#11963=EDGE_CURVE('',#16861,#16860,#20062,.T.); +#11964=EDGE_CURVE('',#16862,#16861,#20063,.T.); +#11965=EDGE_CURVE('',#16863,#16862,#20064,.T.); +#11966=EDGE_CURVE('',#16863,#16864,#20065,.T.); +#11967=EDGE_CURVE('',#16865,#16864,#20066,.T.); +#11968=EDGE_CURVE('',#16866,#16865,#20067,.T.); +#11969=EDGE_CURVE('',#16867,#16866,#20068,.T.); +#11970=EDGE_CURVE('',#16867,#16868,#20069,.T.); +#11971=EDGE_CURVE('',#16868,#16869,#20070,.T.); +#11972=EDGE_CURVE('',#16870,#16869,#20071,.T.); +#11973=EDGE_CURVE('',#16871,#16870,#20072,.T.); +#11974=EDGE_CURVE('',#16799,#16871,#20073,.T.); +#11975=EDGE_CURVE('',#16800,#16872,#20074,.T.); +#11976=EDGE_CURVE('',#16872,#16868,#20075,.T.); +#11977=EDGE_CURVE('',#16867,#16873,#20076,.T.); +#11978=EDGE_CURVE('',#16873,#16874,#20077,.T.); +#11979=EDGE_CURVE('',#16874,#16586,#20078,.T.); +#11980=EDGE_CURVE('',#16801,#16585,#20079,.T.); +#11981=EDGE_CURVE('',#16875,#16876,#20080,.T.); +#11982=EDGE_CURVE('',#16876,#16877,#20081,.T.); +#11983=EDGE_CURVE('',#16878,#16877,#20082,.T.); +#11984=EDGE_CURVE('',#16878,#16875,#20083,.T.); +#11985=EDGE_CURVE('',#16879,#16880,#20084,.T.); +#11986=EDGE_CURVE('',#16879,#16881,#20085,.T.); +#11987=EDGE_CURVE('',#16881,#16882,#20086,.T.); +#11988=EDGE_CURVE('',#16880,#16882,#20087,.T.); +#11989=EDGE_CURVE('',#16883,#16884,#981,.F.); +#11990=EDGE_CURVE('',#16884,#16876,#20088,.T.); +#11991=EDGE_CURVE('',#16875,#16722,#20089,.T.); +#11992=EDGE_CURVE('',#16721,#16885,#20090,.T.); +#11993=EDGE_CURVE('',#16885,#16886,#20091,.T.); +#11994=EDGE_CURVE('',#16717,#16886,#20092,.T.); +#11995=EDGE_CURVE('',#16882,#16716,#20093,.T.); +#11996=EDGE_CURVE('',#16881,#16883,#20094,.T.); +#11997=EDGE_CURVE('',#16877,#16887,#20095,.T.); +#11998=EDGE_CURVE('',#16887,#16888,#982,.F.); +#11999=EDGE_CURVE('',#16888,#16879,#20096,.T.); +#12000=EDGE_CURVE('',#16715,#16880,#20097,.T.); +#12001=EDGE_CURVE('',#16889,#16714,#20098,.T.); +#12002=EDGE_CURVE('',#16889,#16890,#20099,.T.); +#12003=EDGE_CURVE('',#16890,#16724,#20100,.T.); +#12004=EDGE_CURVE('',#16723,#16878,#20101,.T.); +#12005=EDGE_CURVE('',#16891,#16892,#20102,.T.); +#12006=EDGE_CURVE('',#16892,#16893,#20103,.T.); +#12007=EDGE_CURVE('',#16894,#16893,#20104,.T.); +#12008=EDGE_CURVE('',#16894,#16891,#20105,.T.); +#12009=EDGE_CURVE('',#16895,#16896,#20106,.T.); +#12010=EDGE_CURVE('',#16895,#16897,#20107,.T.); +#12011=EDGE_CURVE('',#16897,#16898,#20108,.T.); +#12012=EDGE_CURVE('',#16896,#16898,#20109,.T.); +#12013=EDGE_CURVE('',#16899,#16900,#983,.F.); +#12014=EDGE_CURVE('',#16900,#16892,#20110,.T.); +#12015=EDGE_CURVE('',#16891,#16726,#20111,.T.); +#12016=EDGE_CURVE('',#16725,#16901,#20112,.T.); +#12017=EDGE_CURVE('',#16901,#16902,#20113,.T.); +#12018=EDGE_CURVE('',#16713,#16902,#20114,.T.); +#12019=EDGE_CURVE('',#16898,#16712,#20115,.T.); +#12020=EDGE_CURVE('',#16897,#16899,#20116,.T.); +#12021=EDGE_CURVE('',#16893,#16903,#20117,.T.); +#12022=EDGE_CURVE('',#16903,#16904,#984,.F.); +#12023=EDGE_CURVE('',#16904,#16895,#20118,.T.); +#12024=EDGE_CURVE('',#16711,#16896,#20119,.T.); +#12025=EDGE_CURVE('',#16905,#16710,#20120,.T.); +#12026=EDGE_CURVE('',#16905,#16906,#20121,.T.); +#12027=EDGE_CURVE('',#16906,#16728,#20122,.T.); +#12028=EDGE_CURVE('',#16727,#16894,#20123,.T.); +#12029=EDGE_CURVE('',#16907,#16908,#20124,.T.); +#12030=EDGE_CURVE('',#16908,#16909,#20125,.T.); +#12031=EDGE_CURVE('',#16910,#16909,#20126,.T.); +#12032=EDGE_CURVE('',#16910,#16907,#20127,.T.); +#12033=EDGE_CURVE('',#16911,#16912,#20128,.T.); +#12034=EDGE_CURVE('',#16911,#16913,#20129,.T.); +#12035=EDGE_CURVE('',#16913,#16914,#20130,.T.); +#12036=EDGE_CURVE('',#16912,#16914,#20131,.T.); +#12037=EDGE_CURVE('',#16915,#16916,#985,.F.); +#12038=EDGE_CURVE('',#16916,#16908,#20132,.T.); +#12039=EDGE_CURVE('',#16907,#16730,#20133,.T.); +#12040=EDGE_CURVE('',#16729,#16917,#20134,.T.); +#12041=EDGE_CURVE('',#16917,#16918,#20135,.T.); +#12042=EDGE_CURVE('',#16709,#16918,#20136,.T.); +#12043=EDGE_CURVE('',#16914,#16708,#20137,.T.); +#12044=EDGE_CURVE('',#16913,#16915,#20138,.T.); +#12045=EDGE_CURVE('',#16909,#16919,#20139,.T.); +#12046=EDGE_CURVE('',#16919,#16920,#986,.F.); +#12047=EDGE_CURVE('',#16920,#16911,#20140,.T.); +#12048=EDGE_CURVE('',#16707,#16912,#20141,.T.); +#12049=EDGE_CURVE('',#16921,#16706,#20142,.T.); +#12050=EDGE_CURVE('',#16921,#16922,#20143,.T.); +#12051=EDGE_CURVE('',#16922,#16732,#20144,.T.); +#12052=EDGE_CURVE('',#16731,#16910,#20145,.T.); +#12053=EDGE_CURVE('',#16923,#16924,#20146,.T.); +#12054=EDGE_CURVE('',#16924,#16925,#20147,.T.); +#12055=EDGE_CURVE('',#16926,#16925,#20148,.T.); +#12056=EDGE_CURVE('',#16926,#16923,#20149,.T.); +#12057=EDGE_CURVE('',#16927,#16928,#20150,.T.); +#12058=EDGE_CURVE('',#16927,#16929,#20151,.T.); +#12059=EDGE_CURVE('',#16929,#16930,#20152,.T.); +#12060=EDGE_CURVE('',#16928,#16930,#20153,.T.); +#12061=EDGE_CURVE('',#16931,#16932,#987,.F.); +#12062=EDGE_CURVE('',#16932,#16924,#20154,.T.); +#12063=EDGE_CURVE('',#16923,#16734,#20155,.T.); +#12064=EDGE_CURVE('',#16733,#16933,#20156,.T.); +#12065=EDGE_CURVE('',#16933,#16934,#20157,.T.); +#12066=EDGE_CURVE('',#16705,#16934,#20158,.T.); +#12067=EDGE_CURVE('',#16930,#16704,#20159,.T.); +#12068=EDGE_CURVE('',#16929,#16931,#20160,.T.); +#12069=EDGE_CURVE('',#16925,#16935,#20161,.T.); +#12070=EDGE_CURVE('',#16935,#16936,#988,.F.); +#12071=EDGE_CURVE('',#16936,#16927,#20162,.T.); +#12072=EDGE_CURVE('',#16703,#16928,#20163,.T.); +#12073=EDGE_CURVE('',#16937,#16702,#20164,.T.); +#12074=EDGE_CURVE('',#16937,#16938,#20165,.T.); +#12075=EDGE_CURVE('',#16938,#16736,#20166,.T.); +#12076=EDGE_CURVE('',#16735,#16926,#20167,.T.); +#12077=EDGE_CURVE('',#16939,#16940,#20168,.T.); +#12078=EDGE_CURVE('',#16940,#16941,#20169,.T.); +#12079=EDGE_CURVE('',#16942,#16941,#20170,.T.); +#12080=EDGE_CURVE('',#16942,#16939,#20171,.T.); +#12081=EDGE_CURVE('',#16943,#16944,#20172,.T.); +#12082=EDGE_CURVE('',#16943,#16945,#20173,.T.); +#12083=EDGE_CURVE('',#16945,#16946,#20174,.T.); +#12084=EDGE_CURVE('',#16944,#16946,#20175,.T.); +#12085=EDGE_CURVE('',#16947,#16948,#989,.F.); +#12086=EDGE_CURVE('',#16948,#16940,#20176,.T.); +#12087=EDGE_CURVE('',#16939,#16738,#20177,.T.); +#12088=EDGE_CURVE('',#16737,#16949,#20178,.T.); +#12089=EDGE_CURVE('',#16949,#16950,#20179,.T.); +#12090=EDGE_CURVE('',#16701,#16950,#20180,.T.); +#12091=EDGE_CURVE('',#16946,#16700,#20181,.T.); +#12092=EDGE_CURVE('',#16945,#16947,#20182,.T.); +#12093=EDGE_CURVE('',#16941,#16951,#20183,.T.); +#12094=EDGE_CURVE('',#16951,#16952,#990,.F.); +#12095=EDGE_CURVE('',#16952,#16943,#20184,.T.); +#12096=EDGE_CURVE('',#16699,#16944,#20185,.T.); +#12097=EDGE_CURVE('',#16953,#16698,#20186,.T.); +#12098=EDGE_CURVE('',#16953,#16954,#20187,.T.); +#12099=EDGE_CURVE('',#16954,#16740,#20188,.T.); +#12100=EDGE_CURVE('',#16739,#16942,#20189,.T.); +#12101=EDGE_CURVE('',#16955,#16956,#20190,.T.); +#12102=EDGE_CURVE('',#16956,#16957,#20191,.T.); +#12103=EDGE_CURVE('',#16958,#16957,#20192,.T.); +#12104=EDGE_CURVE('',#16958,#16955,#20193,.T.); +#12105=EDGE_CURVE('',#16959,#16960,#20194,.T.); +#12106=EDGE_CURVE('',#16959,#16961,#20195,.T.); +#12107=EDGE_CURVE('',#16961,#16962,#20196,.T.); +#12108=EDGE_CURVE('',#16960,#16962,#20197,.T.); +#12109=EDGE_CURVE('',#16963,#16964,#991,.F.); +#12110=EDGE_CURVE('',#16964,#16956,#20198,.T.); +#12111=EDGE_CURVE('',#16955,#16742,#20199,.T.); +#12112=EDGE_CURVE('',#16741,#16965,#20200,.T.); +#12113=EDGE_CURVE('',#16965,#16966,#20201,.T.); +#12114=EDGE_CURVE('',#16697,#16966,#20202,.T.); +#12115=EDGE_CURVE('',#16962,#16696,#20203,.T.); +#12116=EDGE_CURVE('',#16961,#16963,#20204,.T.); +#12117=EDGE_CURVE('',#16957,#16967,#20205,.T.); +#12118=EDGE_CURVE('',#16967,#16968,#992,.F.); +#12119=EDGE_CURVE('',#16968,#16959,#20206,.T.); +#12120=EDGE_CURVE('',#16695,#16960,#20207,.T.); +#12121=EDGE_CURVE('',#16969,#16694,#20208,.T.); +#12122=EDGE_CURVE('',#16969,#16970,#20209,.T.); +#12123=EDGE_CURVE('',#16970,#16744,#20210,.T.); +#12124=EDGE_CURVE('',#16743,#16958,#20211,.T.); +#12125=EDGE_CURVE('',#16971,#16972,#20212,.T.); +#12126=EDGE_CURVE('',#16972,#16973,#20213,.T.); +#12127=EDGE_CURVE('',#16974,#16973,#20214,.T.); +#12128=EDGE_CURVE('',#16974,#16971,#20215,.T.); +#12129=EDGE_CURVE('',#16975,#16976,#20216,.T.); +#12130=EDGE_CURVE('',#16975,#16977,#20217,.T.); +#12131=EDGE_CURVE('',#16977,#16978,#20218,.T.); +#12132=EDGE_CURVE('',#16976,#16978,#20219,.T.); +#12133=EDGE_CURVE('',#16979,#16980,#993,.F.); +#12134=EDGE_CURVE('',#16980,#16972,#20220,.T.); +#12135=EDGE_CURVE('',#16971,#16746,#20221,.T.); +#12136=EDGE_CURVE('',#16745,#16981,#20222,.T.); +#12137=EDGE_CURVE('',#16981,#16982,#20223,.T.); +#12138=EDGE_CURVE('',#16693,#16982,#20224,.T.); +#12139=EDGE_CURVE('',#16978,#16692,#20225,.T.); +#12140=EDGE_CURVE('',#16977,#16979,#20226,.T.); +#12141=EDGE_CURVE('',#16973,#16983,#20227,.T.); +#12142=EDGE_CURVE('',#16983,#16984,#994,.F.); +#12143=EDGE_CURVE('',#16984,#16975,#20228,.T.); +#12144=EDGE_CURVE('',#16691,#16976,#20229,.T.); +#12145=EDGE_CURVE('',#16985,#16690,#20230,.T.); +#12146=EDGE_CURVE('',#16985,#16986,#20231,.T.); +#12147=EDGE_CURVE('',#16986,#16748,#20232,.T.); +#12148=EDGE_CURVE('',#16747,#16974,#20233,.T.); +#12149=EDGE_CURVE('',#16987,#16988,#20234,.T.); +#12150=EDGE_CURVE('',#16988,#16989,#20235,.T.); +#12151=EDGE_CURVE('',#16990,#16989,#20236,.T.); +#12152=EDGE_CURVE('',#16990,#16987,#20237,.T.); +#12153=EDGE_CURVE('',#16991,#16992,#20238,.T.); +#12154=EDGE_CURVE('',#16991,#16993,#20239,.T.); +#12155=EDGE_CURVE('',#16993,#16994,#20240,.T.); +#12156=EDGE_CURVE('',#16992,#16994,#20241,.T.); +#12157=EDGE_CURVE('',#16995,#16996,#995,.F.); +#12158=EDGE_CURVE('',#16996,#16988,#20242,.T.); +#12159=EDGE_CURVE('',#16987,#16750,#20243,.T.); +#12160=EDGE_CURVE('',#16749,#16997,#20244,.T.); +#12161=EDGE_CURVE('',#16997,#16998,#20245,.T.); +#12162=EDGE_CURVE('',#16689,#16998,#20246,.T.); +#12163=EDGE_CURVE('',#16994,#16688,#20247,.T.); +#12164=EDGE_CURVE('',#16993,#16995,#20248,.T.); +#12165=EDGE_CURVE('',#16989,#16999,#20249,.T.); +#12166=EDGE_CURVE('',#16999,#17000,#996,.F.); +#12167=EDGE_CURVE('',#17000,#16991,#20250,.T.); +#12168=EDGE_CURVE('',#16687,#16992,#20251,.T.); +#12169=EDGE_CURVE('',#17001,#16686,#20252,.T.); +#12170=EDGE_CURVE('',#17001,#17002,#20253,.T.); +#12171=EDGE_CURVE('',#17002,#16752,#20254,.T.); +#12172=EDGE_CURVE('',#16751,#16990,#20255,.T.); +#12173=EDGE_CURVE('',#17003,#17004,#20256,.T.); +#12174=EDGE_CURVE('',#17004,#17005,#20257,.T.); +#12175=EDGE_CURVE('',#17006,#17005,#20258,.T.); +#12176=EDGE_CURVE('',#17006,#17003,#20259,.T.); +#12177=EDGE_CURVE('',#17007,#17008,#20260,.T.); +#12178=EDGE_CURVE('',#17007,#17009,#20261,.T.); +#12179=EDGE_CURVE('',#17009,#17010,#20262,.T.); +#12180=EDGE_CURVE('',#17008,#17010,#20263,.T.); +#12181=EDGE_CURVE('',#17011,#17012,#997,.F.); +#12182=EDGE_CURVE('',#17012,#17004,#20264,.T.); +#12183=EDGE_CURVE('',#17003,#16754,#20265,.T.); +#12184=EDGE_CURVE('',#16753,#17013,#20266,.T.); +#12185=EDGE_CURVE('',#17013,#17014,#20267,.T.); +#12186=EDGE_CURVE('',#16685,#17014,#20268,.T.); +#12187=EDGE_CURVE('',#17010,#16684,#20269,.T.); +#12188=EDGE_CURVE('',#17009,#17011,#20270,.T.); +#12189=EDGE_CURVE('',#17005,#17015,#20271,.T.); +#12190=EDGE_CURVE('',#17015,#17016,#998,.F.); +#12191=EDGE_CURVE('',#17016,#17007,#20272,.T.); +#12192=EDGE_CURVE('',#16683,#17008,#20273,.T.); +#12193=EDGE_CURVE('',#17017,#16682,#20274,.T.); +#12194=EDGE_CURVE('',#17017,#17018,#20275,.T.); +#12195=EDGE_CURVE('',#17018,#16756,#20276,.T.); +#12196=EDGE_CURVE('',#16755,#17006,#20277,.T.); +#12197=EDGE_CURVE('',#17019,#17020,#20278,.T.); +#12198=EDGE_CURVE('',#17020,#17021,#20279,.T.); +#12199=EDGE_CURVE('',#17022,#17021,#20280,.T.); +#12200=EDGE_CURVE('',#17022,#17019,#20281,.T.); +#12201=EDGE_CURVE('',#17023,#17024,#20282,.T.); +#12202=EDGE_CURVE('',#17023,#17025,#20283,.T.); +#12203=EDGE_CURVE('',#17025,#17026,#20284,.T.); +#12204=EDGE_CURVE('',#17024,#17026,#20285,.T.); +#12205=EDGE_CURVE('',#17027,#17028,#999,.F.); +#12206=EDGE_CURVE('',#17028,#17020,#20286,.T.); +#12207=EDGE_CURVE('',#17019,#16758,#20287,.T.); +#12208=EDGE_CURVE('',#16757,#17029,#20288,.T.); +#12209=EDGE_CURVE('',#17029,#17030,#20289,.T.); +#12210=EDGE_CURVE('',#16681,#17030,#20290,.T.); +#12211=EDGE_CURVE('',#17026,#16680,#20291,.T.); +#12212=EDGE_CURVE('',#17025,#17027,#20292,.T.); +#12213=EDGE_CURVE('',#17021,#17031,#20293,.T.); +#12214=EDGE_CURVE('',#17031,#17032,#1000,.F.); +#12215=EDGE_CURVE('',#17032,#17023,#20294,.T.); +#12216=EDGE_CURVE('',#16679,#17024,#20295,.T.); +#12217=EDGE_CURVE('',#17033,#16678,#20296,.T.); +#12218=EDGE_CURVE('',#17033,#17034,#20297,.T.); +#12219=EDGE_CURVE('',#17034,#16760,#20298,.T.); +#12220=EDGE_CURVE('',#16759,#17022,#20299,.T.); +#12221=EDGE_CURVE('',#17035,#17036,#20300,.T.); +#12222=EDGE_CURVE('',#17036,#17037,#20301,.T.); +#12223=EDGE_CURVE('',#17038,#17037,#20302,.T.); +#12224=EDGE_CURVE('',#17038,#17035,#20303,.T.); +#12225=EDGE_CURVE('',#17039,#17040,#20304,.T.); +#12226=EDGE_CURVE('',#17039,#17041,#20305,.T.); +#12227=EDGE_CURVE('',#17041,#17042,#20306,.T.); +#12228=EDGE_CURVE('',#17040,#17042,#20307,.T.); +#12229=EDGE_CURVE('',#17043,#17044,#1001,.F.); +#12230=EDGE_CURVE('',#17044,#17036,#20308,.T.); +#12231=EDGE_CURVE('',#17035,#16762,#20309,.T.); +#12232=EDGE_CURVE('',#16761,#17045,#20310,.T.); +#12233=EDGE_CURVE('',#17045,#17046,#20311,.T.); +#12234=EDGE_CURVE('',#16677,#17046,#20312,.T.); +#12235=EDGE_CURVE('',#17042,#16676,#20313,.T.); +#12236=EDGE_CURVE('',#17041,#17043,#20314,.T.); +#12237=EDGE_CURVE('',#17037,#17047,#20315,.T.); +#12238=EDGE_CURVE('',#17047,#17048,#1002,.F.); +#12239=EDGE_CURVE('',#17048,#17039,#20316,.T.); +#12240=EDGE_CURVE('',#16675,#17040,#20317,.T.); +#12241=EDGE_CURVE('',#17049,#16674,#20318,.T.); +#12242=EDGE_CURVE('',#17049,#17050,#20319,.T.); +#12243=EDGE_CURVE('',#17050,#16764,#20320,.T.); +#12244=EDGE_CURVE('',#16763,#17038,#20321,.T.); +#12245=EDGE_CURVE('',#17051,#17052,#20322,.T.); +#12246=EDGE_CURVE('',#17052,#17053,#20323,.T.); +#12247=EDGE_CURVE('',#17054,#17053,#20324,.T.); +#12248=EDGE_CURVE('',#17054,#17051,#20325,.T.); +#12249=EDGE_CURVE('',#17055,#17056,#20326,.T.); +#12250=EDGE_CURVE('',#17055,#17057,#20327,.T.); +#12251=EDGE_CURVE('',#17057,#17058,#20328,.T.); +#12252=EDGE_CURVE('',#17056,#17058,#20329,.T.); +#12253=EDGE_CURVE('',#17059,#17060,#1003,.F.); +#12254=EDGE_CURVE('',#17060,#17052,#20330,.T.); +#12255=EDGE_CURVE('',#17051,#16766,#20331,.T.); +#12256=EDGE_CURVE('',#16765,#17061,#20332,.T.); +#12257=EDGE_CURVE('',#17061,#17062,#20333,.T.); +#12258=EDGE_CURVE('',#16673,#17062,#20334,.T.); +#12259=EDGE_CURVE('',#17058,#16672,#20335,.T.); +#12260=EDGE_CURVE('',#17057,#17059,#20336,.T.); +#12261=EDGE_CURVE('',#17053,#17063,#20337,.T.); +#12262=EDGE_CURVE('',#17063,#17064,#1004,.F.); +#12263=EDGE_CURVE('',#17064,#17055,#20338,.T.); +#12264=EDGE_CURVE('',#16671,#17056,#20339,.T.); +#12265=EDGE_CURVE('',#17065,#16670,#20340,.T.); +#12266=EDGE_CURVE('',#17065,#17066,#20341,.T.); +#12267=EDGE_CURVE('',#17066,#16768,#20342,.T.); +#12268=EDGE_CURVE('',#16767,#17054,#20343,.T.); +#12269=EDGE_CURVE('',#17067,#17068,#20344,.T.); +#12270=EDGE_CURVE('',#17068,#17069,#20345,.T.); +#12271=EDGE_CURVE('',#17070,#17069,#20346,.T.); +#12272=EDGE_CURVE('',#17070,#17067,#20347,.T.); +#12273=EDGE_CURVE('',#17071,#17072,#20348,.T.); +#12274=EDGE_CURVE('',#17071,#17073,#20349,.T.); +#12275=EDGE_CURVE('',#17073,#17074,#20350,.T.); +#12276=EDGE_CURVE('',#17072,#17074,#20351,.T.); +#12277=EDGE_CURVE('',#17075,#17076,#1005,.F.); +#12278=EDGE_CURVE('',#17076,#17068,#20352,.T.); +#12279=EDGE_CURVE('',#17067,#16770,#20353,.T.); +#12280=EDGE_CURVE('',#16769,#17077,#20354,.T.); +#12281=EDGE_CURVE('',#17077,#17078,#20355,.T.); +#12282=EDGE_CURVE('',#16669,#17078,#20356,.T.); +#12283=EDGE_CURVE('',#17074,#16668,#20357,.T.); +#12284=EDGE_CURVE('',#17073,#17075,#20358,.T.); +#12285=EDGE_CURVE('',#17069,#17079,#20359,.T.); +#12286=EDGE_CURVE('',#17079,#17080,#1006,.F.); +#12287=EDGE_CURVE('',#17080,#17071,#20360,.T.); +#12288=EDGE_CURVE('',#16667,#17072,#20361,.T.); +#12289=EDGE_CURVE('',#17081,#16666,#20362,.T.); +#12290=EDGE_CURVE('',#17081,#17082,#20363,.T.); +#12291=EDGE_CURVE('',#17082,#16772,#20364,.T.); +#12292=EDGE_CURVE('',#16771,#17070,#20365,.T.); +#12293=EDGE_CURVE('',#17083,#17084,#20366,.T.); +#12294=EDGE_CURVE('',#17084,#17085,#20367,.T.); +#12295=EDGE_CURVE('',#17086,#17085,#20368,.T.); +#12296=EDGE_CURVE('',#17086,#17083,#20369,.T.); +#12297=EDGE_CURVE('',#17087,#17088,#20370,.T.); +#12298=EDGE_CURVE('',#17087,#17089,#20371,.T.); +#12299=EDGE_CURVE('',#17089,#17090,#20372,.T.); +#12300=EDGE_CURVE('',#17088,#17090,#20373,.T.); +#12301=EDGE_CURVE('',#17091,#17092,#1007,.F.); +#12302=EDGE_CURVE('',#17092,#17084,#20374,.T.); +#12303=EDGE_CURVE('',#17083,#16774,#20375,.T.); +#12304=EDGE_CURVE('',#16773,#17093,#20376,.T.); +#12305=EDGE_CURVE('',#17093,#17094,#20377,.T.); +#12306=EDGE_CURVE('',#16665,#17094,#20378,.T.); +#12307=EDGE_CURVE('',#17090,#16664,#20379,.T.); +#12308=EDGE_CURVE('',#17089,#17091,#20380,.T.); +#12309=EDGE_CURVE('',#17085,#17095,#20381,.T.); +#12310=EDGE_CURVE('',#17095,#17096,#1008,.F.); +#12311=EDGE_CURVE('',#17096,#17087,#20382,.T.); +#12312=EDGE_CURVE('',#16663,#17088,#20383,.T.); +#12313=EDGE_CURVE('',#17097,#16662,#20384,.T.); +#12314=EDGE_CURVE('',#17097,#17098,#20385,.T.); +#12315=EDGE_CURVE('',#17098,#16776,#20386,.T.); +#12316=EDGE_CURVE('',#16775,#17086,#20387,.T.); +#12317=EDGE_CURVE('',#17099,#17100,#20388,.T.); +#12318=EDGE_CURVE('',#17100,#17101,#20389,.T.); +#12319=EDGE_CURVE('',#17102,#17101,#20390,.T.); +#12320=EDGE_CURVE('',#17102,#17099,#20391,.T.); +#12321=EDGE_CURVE('',#17103,#17104,#20392,.T.); +#12322=EDGE_CURVE('',#17103,#17105,#20393,.T.); +#12323=EDGE_CURVE('',#17105,#17106,#20394,.T.); +#12324=EDGE_CURVE('',#17104,#17106,#20395,.T.); +#12325=EDGE_CURVE('',#17107,#17108,#1009,.F.); +#12326=EDGE_CURVE('',#17108,#17100,#20396,.T.); +#12327=EDGE_CURVE('',#17099,#16778,#20397,.T.); +#12328=EDGE_CURVE('',#16777,#17109,#20398,.T.); +#12329=EDGE_CURVE('',#17109,#17110,#20399,.T.); +#12330=EDGE_CURVE('',#16661,#17110,#20400,.T.); +#12331=EDGE_CURVE('',#17106,#16660,#20401,.T.); +#12332=EDGE_CURVE('',#17105,#17107,#20402,.T.); +#12333=EDGE_CURVE('',#17101,#17111,#20403,.T.); +#12334=EDGE_CURVE('',#17111,#17112,#1010,.F.); +#12335=EDGE_CURVE('',#17112,#17103,#20404,.T.); +#12336=EDGE_CURVE('',#16659,#17104,#20405,.T.); +#12337=EDGE_CURVE('',#17113,#16658,#20406,.T.); +#12338=EDGE_CURVE('',#17113,#17114,#20407,.T.); +#12339=EDGE_CURVE('',#17114,#16780,#20408,.T.); +#12340=EDGE_CURVE('',#16779,#17102,#20409,.T.); +#12341=EDGE_CURVE('',#17115,#17116,#20410,.T.); +#12342=EDGE_CURVE('',#17116,#17117,#20411,.T.); +#12343=EDGE_CURVE('',#17118,#17117,#20412,.T.); +#12344=EDGE_CURVE('',#17118,#17115,#20413,.T.); +#12345=EDGE_CURVE('',#17119,#17120,#20414,.T.); +#12346=EDGE_CURVE('',#17119,#17121,#20415,.T.); +#12347=EDGE_CURVE('',#17121,#17122,#20416,.T.); +#12348=EDGE_CURVE('',#17120,#17122,#20417,.T.); +#12349=EDGE_CURVE('',#17123,#17124,#1011,.F.); +#12350=EDGE_CURVE('',#17124,#17116,#20418,.T.); +#12351=EDGE_CURVE('',#17115,#16782,#20419,.T.); +#12352=EDGE_CURVE('',#16781,#17125,#20420,.T.); +#12353=EDGE_CURVE('',#17125,#17126,#20421,.T.); +#12354=EDGE_CURVE('',#16657,#17126,#20422,.T.); +#12355=EDGE_CURVE('',#17122,#16656,#20423,.T.); +#12356=EDGE_CURVE('',#17121,#17123,#20424,.T.); +#12357=EDGE_CURVE('',#17117,#17127,#20425,.T.); +#12358=EDGE_CURVE('',#17127,#17128,#1012,.F.); +#12359=EDGE_CURVE('',#17128,#17119,#20426,.T.); +#12360=EDGE_CURVE('',#16655,#17120,#20427,.T.); +#12361=EDGE_CURVE('',#17129,#16654,#20428,.T.); +#12362=EDGE_CURVE('',#17129,#17130,#20429,.T.); +#12363=EDGE_CURVE('',#17130,#16784,#20430,.T.); +#12364=EDGE_CURVE('',#16783,#17118,#20431,.T.); +#12365=EDGE_CURVE('',#17131,#17132,#20432,.T.); +#12366=EDGE_CURVE('',#17132,#17133,#20433,.T.); +#12367=EDGE_CURVE('',#17134,#17133,#20434,.T.); +#12368=EDGE_CURVE('',#17134,#17131,#20435,.T.); +#12369=EDGE_CURVE('',#17135,#17136,#20436,.T.); +#12370=EDGE_CURVE('',#17135,#17137,#20437,.T.); +#12371=EDGE_CURVE('',#17137,#17138,#20438,.T.); +#12372=EDGE_CURVE('',#17136,#17138,#20439,.T.); +#12373=EDGE_CURVE('',#17139,#17140,#1013,.F.); +#12374=EDGE_CURVE('',#17140,#17132,#20440,.T.); +#12375=EDGE_CURVE('',#17131,#16786,#20441,.T.); +#12376=EDGE_CURVE('',#16785,#17141,#20442,.T.); +#12377=EDGE_CURVE('',#17141,#17142,#20443,.T.); +#12378=EDGE_CURVE('',#16653,#17142,#20444,.T.); +#12379=EDGE_CURVE('',#17138,#16652,#20445,.T.); +#12380=EDGE_CURVE('',#17137,#17139,#20446,.T.); +#12381=EDGE_CURVE('',#17133,#17143,#20447,.T.); +#12382=EDGE_CURVE('',#17143,#17144,#1014,.F.); +#12383=EDGE_CURVE('',#17144,#17135,#20448,.T.); +#12384=EDGE_CURVE('',#16651,#17136,#20449,.T.); +#12385=EDGE_CURVE('',#17145,#16650,#20450,.T.); +#12386=EDGE_CURVE('',#17145,#17146,#20451,.T.); +#12387=EDGE_CURVE('',#17146,#16788,#20452,.T.); +#12388=EDGE_CURVE('',#16787,#17134,#20453,.T.); +#12389=EDGE_CURVE('',#17147,#17148,#20454,.T.); +#12390=EDGE_CURVE('',#17148,#17149,#20455,.T.); +#12391=EDGE_CURVE('',#17150,#17149,#20456,.T.); +#12392=EDGE_CURVE('',#17150,#17147,#20457,.T.); +#12393=EDGE_CURVE('',#17151,#17152,#20458,.T.); +#12394=EDGE_CURVE('',#17151,#17153,#20459,.T.); +#12395=EDGE_CURVE('',#17153,#17154,#20460,.T.); +#12396=EDGE_CURVE('',#17152,#17154,#20461,.T.); +#12397=EDGE_CURVE('',#17155,#17156,#1015,.F.); +#12398=EDGE_CURVE('',#17156,#17148,#20462,.T.); +#12399=EDGE_CURVE('',#17147,#16790,#20463,.T.); +#12400=EDGE_CURVE('',#16789,#17157,#20464,.T.); +#12401=EDGE_CURVE('',#17157,#17158,#20465,.T.); +#12402=EDGE_CURVE('',#16649,#17158,#20466,.T.); +#12403=EDGE_CURVE('',#17154,#16648,#20467,.T.); +#12404=EDGE_CURVE('',#17153,#17155,#20468,.T.); +#12405=EDGE_CURVE('',#17149,#17159,#20469,.T.); +#12406=EDGE_CURVE('',#17159,#17160,#1016,.F.); +#12407=EDGE_CURVE('',#17160,#17151,#20470,.T.); +#12408=EDGE_CURVE('',#16647,#17152,#20471,.T.); +#12409=EDGE_CURVE('',#17161,#16646,#20472,.T.); +#12410=EDGE_CURVE('',#17161,#17162,#20473,.T.); +#12411=EDGE_CURVE('',#17162,#16792,#20474,.T.); +#12412=EDGE_CURVE('',#16791,#17150,#20475,.T.); +#12413=EDGE_CURVE('',#17163,#17164,#20476,.T.); +#12414=EDGE_CURVE('',#17164,#17165,#20477,.T.); +#12415=EDGE_CURVE('',#17166,#17165,#20478,.T.); +#12416=EDGE_CURVE('',#17166,#17163,#20479,.T.); +#12417=EDGE_CURVE('',#17167,#17168,#20480,.T.); +#12418=EDGE_CURVE('',#17167,#17169,#20481,.T.); +#12419=EDGE_CURVE('',#17169,#17170,#20482,.T.); +#12420=EDGE_CURVE('',#17168,#17170,#20483,.T.); +#12421=EDGE_CURVE('',#17171,#17172,#1017,.F.); +#12422=EDGE_CURVE('',#17172,#17164,#20484,.T.); +#12423=EDGE_CURVE('',#17163,#16794,#20485,.T.); +#12424=EDGE_CURVE('',#16793,#17173,#20486,.T.); +#12425=EDGE_CURVE('',#17173,#17174,#20487,.T.); +#12426=EDGE_CURVE('',#16645,#17174,#20488,.T.); +#12427=EDGE_CURVE('',#17170,#16644,#20489,.T.); +#12428=EDGE_CURVE('',#17169,#17171,#20490,.T.); +#12429=EDGE_CURVE('',#17165,#17175,#20491,.T.); +#12430=EDGE_CURVE('',#17175,#17176,#1018,.F.); +#12431=EDGE_CURVE('',#17176,#17167,#20492,.T.); +#12432=EDGE_CURVE('',#16643,#17168,#20493,.T.); +#12433=EDGE_CURVE('',#17177,#16642,#20494,.T.); +#12434=EDGE_CURVE('',#17177,#17178,#20495,.T.); +#12435=EDGE_CURVE('',#17178,#16796,#20496,.T.); +#12436=EDGE_CURVE('',#16795,#17166,#20497,.T.); +#12437=EDGE_CURVE('',#17179,#17180,#20498,.T.); +#12438=EDGE_CURVE('',#17180,#17181,#20499,.T.); +#12439=EDGE_CURVE('',#17181,#17182,#1019,.F.); +#12440=EDGE_CURVE('',#17182,#17183,#20500,.T.); +#12441=EDGE_CURVE('',#17183,#17184,#20501,.T.); +#12442=EDGE_CURVE('',#16639,#17184,#20502,.T.); +#12443=EDGE_CURVE('',#17185,#16638,#20503,.T.); +#12444=EDGE_CURVE('',#17185,#17186,#20504,.T.); +#12445=EDGE_CURVE('',#17186,#16634,#20505,.T.); +#12446=EDGE_CURVE('',#16632,#17179,#20506,.T.); +#12447=EDGE_CURVE('',#17187,#17188,#20507,.T.); +#12448=EDGE_CURVE('',#17188,#17180,#20508,.T.); +#12449=EDGE_CURVE('',#17179,#17187,#20509,.T.); +#12450=EDGE_CURVE('',#17183,#17189,#20510,.T.); +#12451=EDGE_CURVE('',#17189,#17190,#20511,.T.); +#12452=EDGE_CURVE('',#17184,#17190,#20512,.T.); +#12453=EDGE_CURVE('',#17191,#17192,#1020,.F.); +#12454=EDGE_CURVE('',#17192,#17188,#20513,.T.); +#12455=EDGE_CURVE('',#17187,#16633,#20514,.T.); +#12456=EDGE_CURVE('',#16797,#17193,#20515,.T.); +#12457=EDGE_CURVE('',#17193,#17194,#20516,.T.); +#12458=EDGE_CURVE('',#16641,#17194,#20517,.T.); +#12459=EDGE_CURVE('',#17190,#16640,#20518,.T.); +#12460=EDGE_CURVE('',#17189,#17191,#20519,.T.); +#12461=EDGE_CURVE('',#17186,#17195,#20520,.T.); +#12462=EDGE_CURVE('',#17195,#17196,#20521,.T.); +#12463=EDGE_CURVE('',#17197,#17196,#20522,.T.); +#12464=EDGE_CURVE('',#17197,#17198,#20523,.T.); +#12465=EDGE_CURVE('',#17198,#16635,#20524,.T.); +#12466=EDGE_CURVE('',#17178,#17193,#20525,.T.); +#12467=EDGE_CURVE('',#17162,#17173,#20526,.T.); +#12468=EDGE_CURVE('',#17146,#17157,#20527,.T.); +#12469=EDGE_CURVE('',#17130,#17141,#20528,.T.); +#12470=EDGE_CURVE('',#17114,#17125,#20529,.T.); +#12471=EDGE_CURVE('',#17098,#17109,#20530,.T.); +#12472=EDGE_CURVE('',#17082,#17093,#20531,.T.); +#12473=EDGE_CURVE('',#17066,#17077,#20532,.T.); +#12474=EDGE_CURVE('',#17050,#17061,#20533,.T.); +#12475=EDGE_CURVE('',#17034,#17045,#20534,.T.); +#12476=EDGE_CURVE('',#17018,#17029,#20535,.T.); +#12477=EDGE_CURVE('',#17002,#17013,#20536,.T.); +#12478=EDGE_CURVE('',#16986,#16997,#20537,.T.); +#12479=EDGE_CURVE('',#16970,#16981,#20538,.T.); +#12480=EDGE_CURVE('',#16954,#16965,#20539,.T.); +#12481=EDGE_CURVE('',#16938,#16949,#20540,.T.); +#12482=EDGE_CURVE('',#16922,#16933,#20541,.T.); +#12483=EDGE_CURVE('',#16906,#16917,#20542,.T.); +#12484=EDGE_CURVE('',#16890,#16901,#20543,.T.); +#12485=EDGE_CURVE('',#16720,#17199,#20544,.T.); +#12486=EDGE_CURVE('',#17199,#17200,#20545,.T.); +#12487=EDGE_CURVE('',#17201,#17200,#20546,.T.); +#12488=EDGE_CURVE('',#17201,#17202,#20547,.T.); +#12489=EDGE_CURVE('',#17202,#16885,#20548,.T.); +#12490=EDGE_CURVE('',#17185,#17203,#20549,.T.); +#12491=EDGE_CURVE('',#17204,#16637,#20550,.T.); +#12492=EDGE_CURVE('',#17204,#17205,#20551,.T.); +#12493=EDGE_CURVE('',#17203,#17205,#20552,.T.); +#12494=EDGE_CURVE('',#17177,#17194,#20553,.T.); +#12495=EDGE_CURVE('',#17161,#17174,#20554,.T.); +#12496=EDGE_CURVE('',#17145,#17158,#20555,.T.); +#12497=EDGE_CURVE('',#17129,#17142,#20556,.T.); +#12498=EDGE_CURVE('',#17113,#17126,#20557,.T.); +#12499=EDGE_CURVE('',#17097,#17110,#20558,.T.); +#12500=EDGE_CURVE('',#17081,#17094,#20559,.T.); +#12501=EDGE_CURVE('',#17065,#17078,#20560,.T.); +#12502=EDGE_CURVE('',#17049,#17062,#20561,.T.); +#12503=EDGE_CURVE('',#17033,#17046,#20562,.T.); +#12504=EDGE_CURVE('',#17017,#17030,#20563,.T.); +#12505=EDGE_CURVE('',#17001,#17014,#20564,.T.); +#12506=EDGE_CURVE('',#16985,#16998,#20565,.T.); +#12507=EDGE_CURVE('',#16969,#16982,#20566,.T.); +#12508=EDGE_CURVE('',#16953,#16966,#20567,.T.); +#12509=EDGE_CURVE('',#16937,#16950,#20568,.T.); +#12510=EDGE_CURVE('',#16921,#16934,#20569,.T.); +#12511=EDGE_CURVE('',#16905,#16918,#20570,.T.); +#12512=EDGE_CURVE('',#16889,#16902,#20571,.T.); +#12513=EDGE_CURVE('',#17206,#16886,#20572,.T.); +#12514=EDGE_CURVE('',#17207,#17206,#20573,.T.); +#12515=EDGE_CURVE('',#17207,#17208,#20574,.T.); +#12516=EDGE_CURVE('',#16718,#17208,#20575,.T.); +#12517=EDGE_CURVE('',#17195,#17203,#20576,.T.); +#12518=EDGE_CURVE('',#17202,#17206,#20577,.T.); +#12519=EDGE_CURVE('',#17209,#17210,#20578,.T.); +#12520=EDGE_CURVE('',#17210,#16864,#20579,.T.); +#12521=EDGE_CURVE('',#17209,#16863,#20580,.T.); +#12522=EDGE_CURVE('',#17211,#17212,#20581,.T.); +#12523=EDGE_CURVE('',#17212,#16860,#20582,.T.); +#12524=EDGE_CURVE('',#17211,#16859,#20583,.T.); +#12525=EDGE_CURVE('',#17213,#17214,#20584,.T.); +#12526=EDGE_CURVE('',#17214,#16856,#20585,.T.); +#12527=EDGE_CURVE('',#17213,#16855,#20586,.T.); +#12528=EDGE_CURVE('',#17215,#17216,#20587,.T.); +#12529=EDGE_CURVE('',#17216,#16852,#20588,.T.); +#12530=EDGE_CURVE('',#17215,#16851,#20589,.T.); +#12531=EDGE_CURVE('',#17217,#17218,#20590,.T.); +#12532=EDGE_CURVE('',#17218,#16848,#20591,.T.); +#12533=EDGE_CURVE('',#17217,#16847,#20592,.T.); +#12534=EDGE_CURVE('',#17219,#17220,#20593,.T.); +#12535=EDGE_CURVE('',#17220,#16844,#20594,.T.); +#12536=EDGE_CURVE('',#17219,#16843,#20595,.T.); +#12537=EDGE_CURVE('',#17221,#17222,#20596,.T.); +#12538=EDGE_CURVE('',#17222,#16840,#20597,.T.); +#12539=EDGE_CURVE('',#17221,#16839,#20598,.T.); +#12540=EDGE_CURVE('',#16833,#17223,#20599,.T.); +#12541=EDGE_CURVE('',#17224,#17223,#20600,.T.); +#12542=EDGE_CURVE('',#16569,#17224,#20601,.T.); +#12543=EDGE_CURVE('',#17225,#17226,#20602,.T.); +#12544=EDGE_CURVE('',#17225,#16830,#20603,.T.); +#12545=EDGE_CURVE('',#17226,#16829,#20604,.T.); +#12546=EDGE_CURVE('',#17227,#17228,#20605,.T.); +#12547=EDGE_CURVE('',#17227,#16826,#20606,.T.); +#12548=EDGE_CURVE('',#17228,#16825,#20607,.T.); +#12549=EDGE_CURVE('',#17229,#17230,#20608,.T.); +#12550=EDGE_CURVE('',#17229,#16822,#20609,.T.); +#12551=EDGE_CURVE('',#17230,#16821,#20610,.T.); +#12552=EDGE_CURVE('',#17231,#17232,#20611,.T.); +#12553=EDGE_CURVE('',#17231,#16818,#20612,.T.); +#12554=EDGE_CURVE('',#17232,#16817,#20613,.T.); +#12555=EDGE_CURVE('',#17233,#17234,#20614,.T.); +#12556=EDGE_CURVE('',#17233,#16814,#20615,.T.); +#12557=EDGE_CURVE('',#17234,#16813,#20616,.T.); +#12558=EDGE_CURVE('',#17235,#17236,#20617,.T.); +#12559=EDGE_CURVE('',#17235,#16810,#20618,.T.); +#12560=EDGE_CURVE('',#17236,#16809,#20619,.T.); +#12561=EDGE_CURVE('',#17237,#17238,#20620,.T.); +#12562=EDGE_CURVE('',#17237,#16802,#20621,.T.); +#12563=EDGE_CURVE('',#17238,#16576,#20622,.T.); +#12564=EDGE_CURVE('',#17239,#17197,#20623,.T.); +#12565=EDGE_CURVE('',#17239,#17240,#20624,.T.); +#12566=EDGE_CURVE('',#17241,#17240,#20625,.T.); +#12567=EDGE_CURVE('',#17241,#17242,#20626,.T.); +#12568=EDGE_CURVE('',#17198,#17242,#20627,.T.); +#12569=EDGE_CURVE('',#17200,#17243,#20628,.T.); +#12570=EDGE_CURVE('',#17199,#17244,#20629,.T.); +#12571=EDGE_CURVE('',#17244,#17245,#20630,.T.); +#12572=EDGE_CURVE('',#17246,#17245,#20631,.T.); +#12573=EDGE_CURVE('',#17243,#17246,#20632,.T.); +#12574=EDGE_CURVE('',#17243,#17247,#20633,.T.); +#12575=EDGE_CURVE('',#17248,#17246,#20634,.T.); +#12576=EDGE_CURVE('',#17247,#17248,#20635,.T.); +#12577=EDGE_CURVE('',#17247,#17201,#20636,.T.); +#12578=EDGE_CURVE('',#17207,#17248,#20637,.T.); +#12579=EDGE_CURVE('',#17196,#17249,#20638,.T.); +#12580=EDGE_CURVE('',#17250,#17205,#20639,.T.); +#12581=EDGE_CURVE('',#17249,#17250,#20640,.T.); +#12582=EDGE_CURVE('',#17249,#17239,#20641,.T.); +#12583=EDGE_CURVE('',#17240,#17250,#20642,.T.); +#12584=EDGE_CURVE('',#17245,#17208,#20643,.T.); +#12585=EDGE_CURVE('',#17244,#16719,#20644,.T.); +#12586=EDGE_CURVE('',#17204,#17241,#20645,.T.); +#12587=EDGE_CURVE('',#17242,#16636,#20646,.T.); +#12588=EDGE_CURVE('',#17251,#17252,#20647,.T.); +#12589=EDGE_CURVE('',#17252,#16836,#20648,.T.); +#12590=EDGE_CURVE('',#16835,#16594,#20649,.T.); +#12591=EDGE_CURVE('',#16593,#17251,#20650,.T.); +#12592=EDGE_CURVE('',#17253,#16591,#20651,.T.); +#12593=EDGE_CURVE('',#17254,#17253,#20652,.T.); +#12594=EDGE_CURVE('',#16592,#17254,#20653,.T.); +#12595=EDGE_CURVE('',#17255,#17256,#20654,.T.); +#12596=EDGE_CURVE('',#16588,#17255,#20655,.T.); +#12597=EDGE_CURVE('',#17256,#16587,#20656,.T.); +#12598=EDGE_CURVE('',#17257,#17258,#20657,.T.); +#12599=EDGE_CURVE('',#17257,#16806,#20658,.T.); +#12600=EDGE_CURVE('',#17258,#16805,#20659,.T.); +#12601=EDGE_CURVE('',#16558,#16567,#20660,.T.); +#12602=EDGE_CURVE('',#16834,#16595,#20661,.T.); +#12603=EDGE_CURVE('',#17259,#17260,#20662,.T.); +#12604=EDGE_CURVE('',#16571,#17260,#20663,.T.); +#12605=EDGE_CURVE('',#16570,#17259,#20664,.T.); +#12606=EDGE_CURVE('',#17259,#17224,#20665,.T.); +#12607=EDGE_CURVE('',#17223,#17260,#20666,.T.); +#12608=EDGE_CURVE('',#17261,#16575,#20667,.T.); +#12609=EDGE_CURVE('',#17261,#17238,#20668,.T.); +#12610=EDGE_CURVE('',#17262,#16574,#20669,.T.); +#12611=EDGE_CURVE('',#17262,#17261,#20670,.T.); +#12612=EDGE_CURVE('',#17262,#17237,#20671,.T.); +#12613=EDGE_CURVE('',#17263,#17264,#20672,.T.); +#12614=EDGE_CURVE('',#17264,#17265,#20673,.T.); +#12615=EDGE_CURVE('',#17265,#17225,#20674,.T.); +#12616=EDGE_CURVE('',#17226,#17266,#20675,.T.); +#12617=EDGE_CURVE('',#17266,#17267,#20676,.T.); +#12618=EDGE_CURVE('',#17267,#17227,#20677,.T.); +#12619=EDGE_CURVE('',#17228,#17268,#20678,.T.); +#12620=EDGE_CURVE('',#17268,#17269,#20679,.T.); +#12621=EDGE_CURVE('',#17269,#17229,#20680,.T.); +#12622=EDGE_CURVE('',#17230,#17270,#20681,.T.); +#12623=EDGE_CURVE('',#17270,#17271,#20682,.T.); +#12624=EDGE_CURVE('',#17271,#17231,#20683,.T.); +#12625=EDGE_CURVE('',#17232,#17272,#20684,.T.); +#12626=EDGE_CURVE('',#17272,#17273,#20685,.T.); +#12627=EDGE_CURVE('',#17273,#17233,#20686,.T.); +#12628=EDGE_CURVE('',#17234,#17274,#20687,.T.); +#12629=EDGE_CURVE('',#17274,#17275,#20688,.T.); +#12630=EDGE_CURVE('',#17275,#17235,#20689,.T.); +#12631=EDGE_CURVE('',#17236,#17276,#20690,.T.); +#12632=EDGE_CURVE('',#17276,#17277,#20691,.T.); +#12633=EDGE_CURVE('',#17277,#17257,#20692,.T.); +#12634=EDGE_CURVE('',#17258,#17278,#20693,.T.); +#12635=EDGE_CURVE('',#17278,#17279,#20694,.T.); +#12636=EDGE_CURVE('',#17280,#17279,#20695,.T.); +#12637=EDGE_CURVE('',#17263,#17280,#20696,.T.); +#12638=EDGE_CURVE('',#17279,#16803,#20697,.T.); +#12639=EDGE_CURVE('',#17280,#16573,#20698,.T.); +#12640=EDGE_CURVE('',#17264,#16832,#20699,.T.); +#12641=EDGE_CURVE('',#16572,#17263,#20700,.T.); +#12642=EDGE_CURVE('',#17254,#17251,#20701,.T.); +#12643=EDGE_CURVE('',#17252,#17253,#20702,.T.); +#12644=EDGE_CURVE('',#17256,#16874,#20703,.T.); +#12645=EDGE_CURVE('',#17255,#16873,#20704,.T.); +#12646=EDGE_CURVE('',#17281,#17282,#20705,.T.); +#12647=EDGE_CURVE('',#17282,#16837,#20706,.T.); +#12648=EDGE_CURVE('',#16590,#17281,#20707,.T.); +#12649=EDGE_CURVE('',#17283,#16866,#20708,.T.); +#12650=EDGE_CURVE('',#17284,#17283,#20709,.T.); +#12651=EDGE_CURVE('',#17284,#16589,#20710,.T.); +#12652=EDGE_CURVE('',#17285,#17283,#20711,.T.); +#12653=EDGE_CURVE('',#17210,#17285,#20712,.T.); +#12654=EDGE_CURVE('',#17286,#17209,#20713,.T.); +#12655=EDGE_CURVE('',#17287,#17286,#20714,.T.); +#12656=EDGE_CURVE('',#17212,#17287,#20715,.T.); +#12657=EDGE_CURVE('',#17288,#17211,#20716,.T.); +#12658=EDGE_CURVE('',#17289,#17288,#20717,.T.); +#12659=EDGE_CURVE('',#17214,#17289,#20718,.T.); +#12660=EDGE_CURVE('',#17290,#17213,#20719,.T.); +#12661=EDGE_CURVE('',#17291,#17290,#20720,.T.); +#12662=EDGE_CURVE('',#17216,#17291,#20721,.T.); +#12663=EDGE_CURVE('',#17292,#17215,#20722,.T.); +#12664=EDGE_CURVE('',#17293,#17292,#20723,.T.); +#12665=EDGE_CURVE('',#17218,#17293,#20724,.T.); +#12666=EDGE_CURVE('',#17294,#17217,#20725,.T.); +#12667=EDGE_CURVE('',#17295,#17294,#20726,.T.); +#12668=EDGE_CURVE('',#17220,#17295,#20727,.T.); +#12669=EDGE_CURVE('',#17296,#17219,#20728,.T.); +#12670=EDGE_CURVE('',#17297,#17296,#20729,.T.); +#12671=EDGE_CURVE('',#17222,#17297,#20730,.T.); +#12672=EDGE_CURVE('',#17298,#17221,#20731,.T.); +#12673=EDGE_CURVE('',#17282,#17298,#20732,.T.); +#12674=EDGE_CURVE('',#17281,#17284,#20733,.T.); +#12675=EDGE_CURVE('',#17278,#16804,#20734,.T.); +#12676=EDGE_CURVE('',#17277,#16807,#20735,.T.); +#12677=EDGE_CURVE('',#17276,#16808,#20736,.T.); +#12678=EDGE_CURVE('',#17275,#16811,#20737,.T.); +#12679=EDGE_CURVE('',#17274,#16812,#20738,.T.); +#12680=EDGE_CURVE('',#17273,#16815,#20739,.T.); +#12681=EDGE_CURVE('',#17272,#16816,#20740,.T.); +#12682=EDGE_CURVE('',#17271,#16819,#20741,.T.); +#12683=EDGE_CURVE('',#17270,#16820,#20742,.T.); +#12684=EDGE_CURVE('',#17269,#16823,#20743,.T.); +#12685=EDGE_CURVE('',#17268,#16824,#20744,.T.); +#12686=EDGE_CURVE('',#17267,#16827,#20745,.T.); +#12687=EDGE_CURVE('',#17266,#16828,#20746,.T.); +#12688=EDGE_CURVE('',#17265,#16831,#20747,.T.); +#12689=EDGE_CURVE('',#17298,#16838,#20748,.T.); +#12690=EDGE_CURVE('',#17297,#16841,#20749,.T.); +#12691=EDGE_CURVE('',#17296,#16842,#20750,.T.); +#12692=EDGE_CURVE('',#17295,#16845,#20751,.T.); +#12693=EDGE_CURVE('',#17294,#16846,#20752,.T.); +#12694=EDGE_CURVE('',#17293,#16849,#20753,.T.); +#12695=EDGE_CURVE('',#17292,#16850,#20754,.T.); +#12696=EDGE_CURVE('',#17291,#16853,#20755,.T.); +#12697=EDGE_CURVE('',#17290,#16854,#20756,.T.); +#12698=EDGE_CURVE('',#17289,#16857,#20757,.T.); +#12699=EDGE_CURVE('',#17288,#16858,#20758,.T.); +#12700=EDGE_CURVE('',#17287,#16861,#20759,.T.); +#12701=EDGE_CURVE('',#17286,#16862,#20760,.T.); +#12702=EDGE_CURVE('',#17285,#16865,#20761,.T.); +#12703=EDGE_CURVE('',#17191,#17182,#20762,.T.); +#12704=EDGE_CURVE('',#17192,#17181,#20763,.T.); +#12705=EDGE_CURVE('',#17172,#17175,#20764,.T.); +#12706=EDGE_CURVE('',#17171,#17176,#20765,.T.); +#12707=EDGE_CURVE('',#17156,#17159,#20766,.T.); +#12708=EDGE_CURVE('',#17155,#17160,#20767,.T.); +#12709=EDGE_CURVE('',#17140,#17143,#20768,.T.); +#12710=EDGE_CURVE('',#17139,#17144,#20769,.T.); +#12711=EDGE_CURVE('',#17124,#17127,#20770,.T.); +#12712=EDGE_CURVE('',#17123,#17128,#20771,.T.); +#12713=EDGE_CURVE('',#17108,#17111,#20772,.T.); +#12714=EDGE_CURVE('',#17107,#17112,#20773,.T.); +#12715=EDGE_CURVE('',#17092,#17095,#20774,.T.); +#12716=EDGE_CURVE('',#17091,#17096,#20775,.T.); +#12717=EDGE_CURVE('',#17076,#17079,#20776,.T.); +#12718=EDGE_CURVE('',#17075,#17080,#20777,.T.); +#12719=EDGE_CURVE('',#17060,#17063,#20778,.T.); +#12720=EDGE_CURVE('',#17059,#17064,#20779,.T.); +#12721=EDGE_CURVE('',#17044,#17047,#20780,.T.); +#12722=EDGE_CURVE('',#17043,#17048,#20781,.T.); +#12723=EDGE_CURVE('',#17028,#17031,#20782,.T.); +#12724=EDGE_CURVE('',#17027,#17032,#20783,.T.); +#12725=EDGE_CURVE('',#17012,#17015,#20784,.T.); +#12726=EDGE_CURVE('',#17011,#17016,#20785,.T.); +#12727=EDGE_CURVE('',#16996,#16999,#20786,.T.); +#12728=EDGE_CURVE('',#16995,#17000,#20787,.T.); +#12729=EDGE_CURVE('',#16980,#16983,#20788,.T.); +#12730=EDGE_CURVE('',#16979,#16984,#20789,.T.); +#12731=EDGE_CURVE('',#16964,#16967,#20790,.T.); +#12732=EDGE_CURVE('',#16963,#16968,#20791,.T.); +#12733=EDGE_CURVE('',#16948,#16951,#20792,.T.); +#12734=EDGE_CURVE('',#16947,#16952,#20793,.T.); +#12735=EDGE_CURVE('',#16932,#16935,#20794,.T.); +#12736=EDGE_CURVE('',#16931,#16936,#20795,.T.); +#12737=EDGE_CURVE('',#16916,#16919,#20796,.T.); +#12738=EDGE_CURVE('',#16915,#16920,#20797,.T.); +#12739=EDGE_CURVE('',#16900,#16903,#20798,.T.); +#12740=EDGE_CURVE('',#16899,#16904,#20799,.T.); +#12741=EDGE_CURVE('',#16883,#16888,#20800,.T.); +#12742=EDGE_CURVE('',#16884,#16887,#20801,.T.); +#12743=EDGE_CURVE('',#17299,#17300,#20802,.T.); +#12744=EDGE_CURVE('',#17299,#16799,#20803,.T.); +#12745=EDGE_CURVE('',#17300,#16871,#20804,.T.); +#12746=EDGE_CURVE('',#16870,#17301,#20805,.T.); +#12747=EDGE_CURVE('',#17300,#17301,#20806,.T.); +#12748=EDGE_CURVE('',#17299,#17301,#20807,.T.); +#12749=EDGE_CURVE('',#16798,#17302,#20808,.T.); +#12750=EDGE_CURVE('',#17302,#16872,#20809,.T.); +#12751=EDGE_CURVE('',#17302,#16869,#20810,.T.); +#12752=EDGE_CURVE('',#17303,#17303,#1021,.T.); +#12753=EDGE_CURVE('',#17304,#17304,#1022,.T.); +#12754=EDGE_CURVE('',#17305,#16610,#20811,.T.); +#12755=EDGE_CURVE('',#17305,#17306,#20812,.T.); +#12756=EDGE_CURVE('',#17306,#16611,#20813,.T.); +#12757=EDGE_CURVE('',#17306,#17307,#1023,.T.); +#12758=EDGE_CURVE('',#17307,#16612,#20814,.T.); +#12759=EDGE_CURVE('',#17307,#17308,#20815,.T.); +#12760=EDGE_CURVE('',#17308,#16613,#20816,.T.); +#12761=EDGE_CURVE('',#17308,#17309,#1024,.T.); +#12762=EDGE_CURVE('',#17309,#16614,#20817,.T.); +#12763=EDGE_CURVE('',#17309,#17310,#20818,.T.); +#12764=EDGE_CURVE('',#17310,#16615,#20819,.T.); +#12765=EDGE_CURVE('',#17310,#17311,#1025,.T.); +#12766=EDGE_CURVE('',#17311,#16616,#20820,.T.); +#12767=EDGE_CURVE('',#17311,#17312,#20821,.T.); +#12768=EDGE_CURVE('',#17312,#16609,#20822,.T.); +#12769=EDGE_CURVE('',#17312,#17305,#1026,.T.); +#12770=EDGE_CURVE('',#17313,#16599,#20823,.T.); +#12771=EDGE_CURVE('',#17313,#17314,#20824,.T.); +#12772=EDGE_CURVE('',#17314,#16600,#20825,.T.); +#12773=EDGE_CURVE('',#17314,#17315,#1027,.T.); +#12774=EDGE_CURVE('',#17315,#16601,#20826,.T.); +#12775=EDGE_CURVE('',#17315,#17316,#1028,.T.); +#12776=EDGE_CURVE('',#17316,#16602,#20827,.T.); +#12777=EDGE_CURVE('',#17317,#17316,#1029,.T.); +#12778=EDGE_CURVE('',#17317,#16603,#20828,.T.); +#12779=EDGE_CURVE('',#17317,#17318,#1030,.T.); +#12780=EDGE_CURVE('',#17318,#16604,#20829,.T.); +#12781=EDGE_CURVE('',#17318,#17319,#1031,.T.); +#12782=EDGE_CURVE('',#17319,#16605,#20830,.T.); +#12783=EDGE_CURVE('',#17319,#17320,#20831,.T.); +#12784=EDGE_CURVE('',#17320,#16606,#20832,.T.); +#12785=EDGE_CURVE('',#17320,#17321,#1032,.T.); +#12786=EDGE_CURVE('',#17321,#16607,#20833,.T.); +#12787=EDGE_CURVE('',#17321,#17322,#20834,.T.); +#12788=EDGE_CURVE('',#17322,#16608,#20835,.T.); +#12789=EDGE_CURVE('',#17322,#17313,#20836,.T.); +#12790=EDGE_CURVE('',#17323,#16618,#20837,.T.); +#12791=EDGE_CURVE('',#17323,#17324,#20838,.T.); +#12792=EDGE_CURVE('',#17324,#16619,#20839,.T.); +#12793=EDGE_CURVE('',#17324,#17325,#1033,.T.); +#12794=EDGE_CURVE('',#17325,#16620,#20840,.T.); +#12795=EDGE_CURVE('',#17325,#17326,#1034,.T.); +#12796=EDGE_CURVE('',#17326,#16621,#20841,.T.); +#12797=EDGE_CURVE('',#17327,#17326,#1035,.T.); +#12798=EDGE_CURVE('',#17327,#16622,#20842,.T.); +#12799=EDGE_CURVE('',#17327,#17328,#1036,.T.); +#12800=EDGE_CURVE('',#17328,#16623,#20843,.T.); +#12801=EDGE_CURVE('',#17328,#17329,#1037,.T.); +#12802=EDGE_CURVE('',#17329,#16624,#20844,.T.); +#12803=EDGE_CURVE('',#17329,#17330,#20845,.T.); +#12804=EDGE_CURVE('',#17330,#16625,#20846,.T.); +#12805=EDGE_CURVE('',#17330,#17331,#1038,.T.); +#12806=EDGE_CURVE('',#17331,#16626,#20847,.T.); +#12807=EDGE_CURVE('',#17331,#17332,#20848,.T.); +#12808=EDGE_CURVE('',#17332,#16627,#20849,.T.); +#12809=EDGE_CURVE('',#17332,#17323,#1039,.T.); +#12810=EDGE_CURVE('',#16628,#17333,#20850,.T.); +#12811=EDGE_CURVE('',#17333,#16579,#20851,.T.); +#12812=EDGE_CURVE('',#17334,#16582,#20852,.T.); +#12813=EDGE_CURVE('',#17334,#16631,#20853,.T.); +#12814=EDGE_CURVE('',#17335,#17334,#1040,.T.); +#12815=EDGE_CURVE('',#17336,#17335,#20854,.T.); +#12816=EDGE_CURVE('',#17333,#17336,#1041,.T.); +#12817=EDGE_CURVE('',#17336,#16580,#20855,.T.); +#12818=EDGE_CURVE('',#17335,#16581,#20856,.T.); +#12819=EDGE_CURVE('',#17337,#16568,#20857,.T.); +#12820=EDGE_CURVE('',#17337,#16556,#20858,.T.); +#12821=EDGE_CURVE('',#16563,#17338,#20859,.T.); +#12822=EDGE_CURVE('',#17338,#16596,#20860,.T.); +#12823=EDGE_CURVE('',#17339,#17337,#1042,.T.); +#12824=EDGE_CURVE('',#17340,#17339,#20861,.T.); +#12825=EDGE_CURVE('',#17338,#17340,#1043,.T.); +#12826=EDGE_CURVE('',#17340,#16597,#20862,.T.); +#12827=EDGE_CURVE('',#17339,#16598,#20863,.T.); +#12828=EDGE_CURVE('',#17341,#17342,#20864,.T.); +#12829=EDGE_CURVE('',#17341,#17343,#20865,.T.); +#12830=EDGE_CURVE('',#17343,#17344,#20866,.T.); +#12831=EDGE_CURVE('',#17345,#17344,#20867,.T.); +#12832=EDGE_CURVE('',#17345,#17346,#20868,.T.); +#12833=EDGE_CURVE('',#17346,#17347,#20869,.T.); +#12834=EDGE_CURVE('',#17347,#17348,#20870,.T.); +#12835=EDGE_CURVE('',#17348,#17349,#20871,.T.); +#12836=EDGE_CURVE('',#17349,#17350,#20872,.T.); +#12837=EDGE_CURVE('',#17350,#17351,#20873,.T.); +#12838=EDGE_CURVE('',#17351,#17352,#20874,.T.); +#12839=EDGE_CURVE('',#17352,#17353,#20875,.T.); +#12840=EDGE_CURVE('',#17353,#17354,#20876,.T.); +#12841=EDGE_CURVE('',#17354,#17355,#20877,.T.); +#12842=EDGE_CURVE('',#17355,#17356,#20878,.T.); +#12843=EDGE_CURVE('',#17356,#17357,#20879,.T.); +#12844=EDGE_CURVE('',#17357,#17358,#20880,.T.); +#12845=EDGE_CURVE('',#17358,#17359,#20881,.T.); +#12846=EDGE_CURVE('',#17359,#17360,#20882,.T.); +#12847=EDGE_CURVE('',#17360,#17361,#20883,.T.); +#12848=EDGE_CURVE('',#17361,#17362,#20884,.T.); +#12849=EDGE_CURVE('',#17362,#17363,#20885,.T.); +#12850=EDGE_CURVE('',#17363,#17364,#20886,.T.); +#12851=EDGE_CURVE('',#17364,#17365,#20887,.T.); +#12852=EDGE_CURVE('',#17365,#17366,#20888,.T.); +#12853=EDGE_CURVE('',#17366,#17367,#20889,.T.); +#12854=EDGE_CURVE('',#17367,#17368,#20890,.T.); +#12855=EDGE_CURVE('',#17368,#17369,#20891,.T.); +#12856=EDGE_CURVE('',#17369,#17370,#20892,.T.); +#12857=EDGE_CURVE('',#17370,#17371,#20893,.T.); +#12858=EDGE_CURVE('',#17371,#17372,#20894,.T.); +#12859=EDGE_CURVE('',#17372,#17373,#20895,.T.); +#12860=EDGE_CURVE('',#17373,#17374,#20896,.T.); +#12861=EDGE_CURVE('',#17374,#17375,#20897,.T.); +#12862=EDGE_CURVE('',#17375,#17376,#20898,.T.); +#12863=EDGE_CURVE('',#17376,#17377,#20899,.T.); +#12864=EDGE_CURVE('',#17377,#17378,#20900,.T.); +#12865=EDGE_CURVE('',#17378,#17379,#20901,.T.); +#12866=EDGE_CURVE('',#17379,#17380,#20902,.T.); +#12867=EDGE_CURVE('',#17380,#17381,#20903,.T.); +#12868=EDGE_CURVE('',#17381,#17382,#20904,.T.); +#12869=EDGE_CURVE('',#17382,#17383,#20905,.T.); +#12870=EDGE_CURVE('',#17383,#17384,#20906,.T.); +#12871=EDGE_CURVE('',#17384,#17385,#20907,.T.); +#12872=EDGE_CURVE('',#17385,#17386,#20908,.T.); +#12873=EDGE_CURVE('',#17386,#17387,#20909,.T.); +#12874=EDGE_CURVE('',#17387,#17388,#20910,.T.); +#12875=EDGE_CURVE('',#17388,#17389,#20911,.T.); +#12876=EDGE_CURVE('',#17389,#17390,#20912,.T.); +#12877=EDGE_CURVE('',#17390,#17391,#20913,.T.); +#12878=EDGE_CURVE('',#17391,#17392,#20914,.T.); +#12879=EDGE_CURVE('',#17392,#17393,#20915,.T.); +#12880=EDGE_CURVE('',#17393,#17394,#20916,.T.); +#12881=EDGE_CURVE('',#17394,#17395,#20917,.T.); +#12882=EDGE_CURVE('',#17395,#17396,#20918,.T.); +#12883=EDGE_CURVE('',#17396,#17397,#20919,.T.); +#12884=EDGE_CURVE('',#17397,#17398,#20920,.T.); +#12885=EDGE_CURVE('',#17398,#17399,#20921,.T.); +#12886=EDGE_CURVE('',#17399,#17400,#20922,.T.); +#12887=EDGE_CURVE('',#17400,#17401,#20923,.T.); +#12888=EDGE_CURVE('',#17401,#17402,#20924,.T.); +#12889=EDGE_CURVE('',#17402,#17403,#20925,.T.); +#12890=EDGE_CURVE('',#17403,#17404,#20926,.T.); +#12891=EDGE_CURVE('',#17404,#17405,#20927,.T.); +#12892=EDGE_CURVE('',#17405,#17406,#20928,.T.); +#12893=EDGE_CURVE('',#17406,#17407,#20929,.T.); +#12894=EDGE_CURVE('',#17407,#17408,#20930,.T.); +#12895=EDGE_CURVE('',#17408,#17409,#20931,.T.); +#12896=EDGE_CURVE('',#17409,#17410,#20932,.T.); +#12897=EDGE_CURVE('',#17410,#17411,#20933,.T.); +#12898=EDGE_CURVE('',#17411,#17412,#20934,.T.); +#12899=EDGE_CURVE('',#17412,#17413,#20935,.T.); +#12900=EDGE_CURVE('',#17413,#17414,#20936,.T.); +#12901=EDGE_CURVE('',#17414,#17415,#20937,.T.); +#12902=EDGE_CURVE('',#17415,#17416,#20938,.T.); +#12903=EDGE_CURVE('',#17416,#17417,#20939,.T.); +#12904=EDGE_CURVE('',#17417,#17418,#20940,.T.); +#12905=EDGE_CURVE('',#17418,#17419,#20941,.T.); +#12906=EDGE_CURVE('',#17419,#17420,#20942,.T.); +#12907=EDGE_CURVE('',#17420,#17421,#20943,.T.); +#12908=EDGE_CURVE('',#17421,#17422,#20944,.T.); +#12909=EDGE_CURVE('',#17422,#17423,#20945,.T.); +#12910=EDGE_CURVE('',#17423,#17424,#20946,.T.); +#12911=EDGE_CURVE('',#17424,#17425,#20947,.T.); +#12912=EDGE_CURVE('',#17425,#17426,#20948,.T.); +#12913=EDGE_CURVE('',#17426,#17427,#20949,.T.); +#12914=EDGE_CURVE('',#17427,#17428,#20950,.T.); +#12915=EDGE_CURVE('',#17428,#17429,#20951,.T.); +#12916=EDGE_CURVE('',#17429,#17430,#20952,.T.); +#12917=EDGE_CURVE('',#17430,#17431,#20953,.T.); +#12918=EDGE_CURVE('',#17431,#17432,#20954,.T.); +#12919=EDGE_CURVE('',#17432,#17433,#20955,.T.); +#12920=EDGE_CURVE('',#17433,#17434,#20956,.T.); +#12921=EDGE_CURVE('',#17434,#17435,#20957,.T.); +#12922=EDGE_CURVE('',#17435,#17436,#20958,.T.); +#12923=EDGE_CURVE('',#17436,#17437,#20959,.T.); +#12924=EDGE_CURVE('',#17437,#17438,#20960,.T.); +#12925=EDGE_CURVE('',#17438,#17439,#20961,.T.); +#12926=EDGE_CURVE('',#17439,#17440,#20962,.T.); +#12927=EDGE_CURVE('',#17440,#17441,#20963,.T.); +#12928=EDGE_CURVE('',#17441,#17442,#20964,.T.); +#12929=EDGE_CURVE('',#17442,#17443,#20965,.T.); +#12930=EDGE_CURVE('',#17443,#17444,#20966,.T.); +#12931=EDGE_CURVE('',#17444,#17445,#20967,.T.); +#12932=EDGE_CURVE('',#17445,#17446,#20968,.T.); +#12933=EDGE_CURVE('',#17446,#17447,#20969,.T.); +#12934=EDGE_CURVE('',#17447,#17448,#20970,.T.); +#12935=EDGE_CURVE('',#17448,#17449,#20971,.T.); +#12936=EDGE_CURVE('',#17449,#17450,#20972,.T.); +#12937=EDGE_CURVE('',#17450,#17451,#20973,.T.); +#12938=EDGE_CURVE('',#17451,#17452,#20974,.T.); +#12939=EDGE_CURVE('',#17452,#17453,#20975,.T.); +#12940=EDGE_CURVE('',#17453,#17454,#20976,.T.); +#12941=EDGE_CURVE('',#17454,#17455,#20977,.T.); +#12942=EDGE_CURVE('',#17455,#17456,#20978,.T.); +#12943=EDGE_CURVE('',#17456,#17457,#20979,.T.); +#12944=EDGE_CURVE('',#17457,#17458,#20980,.T.); +#12945=EDGE_CURVE('',#17458,#17459,#20981,.T.); +#12946=EDGE_CURVE('',#17459,#17460,#20982,.T.); +#12947=EDGE_CURVE('',#17460,#17461,#20983,.T.); +#12948=EDGE_CURVE('',#17461,#17462,#20984,.T.); +#12949=EDGE_CURVE('',#17462,#17463,#20985,.T.); +#12950=EDGE_CURVE('',#17463,#17464,#20986,.T.); +#12951=EDGE_CURVE('',#17464,#17465,#20987,.T.); +#12952=EDGE_CURVE('',#17465,#17466,#20988,.T.); +#12953=EDGE_CURVE('',#17466,#17467,#20989,.T.); +#12954=EDGE_CURVE('',#17467,#17468,#20990,.T.); +#12955=EDGE_CURVE('',#17468,#17469,#20991,.T.); +#12956=EDGE_CURVE('',#17469,#17470,#20992,.T.); +#12957=EDGE_CURVE('',#17470,#17471,#20993,.T.); +#12958=EDGE_CURVE('',#17471,#17472,#20994,.T.); +#12959=EDGE_CURVE('',#17472,#17473,#20995,.T.); +#12960=EDGE_CURVE('',#17473,#17474,#20996,.T.); +#12961=EDGE_CURVE('',#17474,#17475,#20997,.T.); +#12962=EDGE_CURVE('',#17475,#17476,#20998,.T.); +#12963=EDGE_CURVE('',#17476,#17477,#20999,.T.); +#12964=EDGE_CURVE('',#17477,#17478,#21000,.T.); +#12965=EDGE_CURVE('',#17478,#17479,#21001,.T.); +#12966=EDGE_CURVE('',#17479,#17480,#21002,.T.); +#12967=EDGE_CURVE('',#17480,#17481,#21003,.T.); +#12968=EDGE_CURVE('',#17481,#17482,#21004,.T.); +#12969=EDGE_CURVE('',#17482,#17483,#21005,.T.); +#12970=EDGE_CURVE('',#17483,#17484,#21006,.T.); +#12971=EDGE_CURVE('',#17484,#17485,#21007,.T.); +#12972=EDGE_CURVE('',#17485,#17486,#21008,.T.); +#12973=EDGE_CURVE('',#17486,#17487,#21009,.T.); +#12974=EDGE_CURVE('',#17487,#17488,#21010,.T.); +#12975=EDGE_CURVE('',#17488,#17489,#21011,.T.); +#12976=EDGE_CURVE('',#17489,#17490,#21012,.T.); +#12977=EDGE_CURVE('',#17490,#17491,#21013,.T.); +#12978=EDGE_CURVE('',#17491,#17492,#21014,.T.); +#12979=EDGE_CURVE('',#17492,#17493,#21015,.T.); +#12980=EDGE_CURVE('',#17493,#17494,#21016,.T.); +#12981=EDGE_CURVE('',#17494,#17495,#21017,.T.); +#12982=EDGE_CURVE('',#17495,#17496,#21018,.T.); +#12983=EDGE_CURVE('',#17496,#17497,#21019,.T.); +#12984=EDGE_CURVE('',#17497,#17498,#21020,.T.); +#12985=EDGE_CURVE('',#17498,#17499,#21021,.T.); +#12986=EDGE_CURVE('',#17499,#17500,#21022,.T.); +#12987=EDGE_CURVE('',#17500,#17501,#21023,.T.); +#12988=EDGE_CURVE('',#17501,#17502,#21024,.T.); +#12989=EDGE_CURVE('',#17502,#17503,#21025,.T.); +#12990=EDGE_CURVE('',#17503,#17504,#21026,.T.); +#12991=EDGE_CURVE('',#17342,#17504,#21027,.T.); +#12992=EDGE_CURVE('',#17505,#17506,#21028,.T.); +#12993=EDGE_CURVE('',#17505,#17507,#21029,.T.); +#12994=EDGE_CURVE('',#17508,#17507,#21030,.T.); +#12995=EDGE_CURVE('',#17508,#17509,#21031,.T.); +#12996=EDGE_CURVE('',#17509,#17510,#21032,.T.); +#12997=EDGE_CURVE('',#17510,#17511,#21033,.T.); +#12998=EDGE_CURVE('',#17512,#17511,#21034,.T.); +#12999=EDGE_CURVE('',#17512,#17513,#21035,.T.); +#13000=EDGE_CURVE('',#17513,#17514,#21036,.T.); +#13001=EDGE_CURVE('',#17514,#17515,#21037,.T.); +#13002=EDGE_CURVE('',#17516,#17515,#21038,.T.); +#13003=EDGE_CURVE('',#17516,#17517,#21039,.T.); +#13004=EDGE_CURVE('',#17517,#17518,#21040,.T.); +#13005=EDGE_CURVE('',#17518,#17519,#21041,.T.); +#13006=EDGE_CURVE('',#17520,#17519,#21042,.T.); +#13007=EDGE_CURVE('',#17520,#17521,#21043,.T.); +#13008=EDGE_CURVE('',#17521,#17522,#21044,.T.); +#13009=EDGE_CURVE('',#17522,#17523,#21045,.T.); +#13010=EDGE_CURVE('',#17524,#17523,#21046,.T.); +#13011=EDGE_CURVE('',#17524,#17525,#21047,.T.); +#13012=EDGE_CURVE('',#17525,#17526,#21048,.T.); +#13013=EDGE_CURVE('',#17526,#17527,#21049,.T.); +#13014=EDGE_CURVE('',#17528,#17527,#21050,.T.); +#13015=EDGE_CURVE('',#17528,#17529,#21051,.T.); +#13016=EDGE_CURVE('',#17529,#17530,#21052,.T.); +#13017=EDGE_CURVE('',#17530,#17531,#21053,.T.); +#13018=EDGE_CURVE('',#17532,#17531,#21054,.T.); +#13019=EDGE_CURVE('',#17532,#17533,#21055,.T.); +#13020=EDGE_CURVE('',#17533,#17534,#21056,.T.); +#13021=EDGE_CURVE('',#17534,#17535,#21057,.T.); +#13022=EDGE_CURVE('',#17536,#17535,#21058,.T.); +#13023=EDGE_CURVE('',#17536,#17537,#21059,.T.); +#13024=EDGE_CURVE('',#17537,#17538,#21060,.T.); +#13025=EDGE_CURVE('',#17538,#17539,#21061,.T.); +#13026=EDGE_CURVE('',#17540,#17539,#21062,.T.); +#13027=EDGE_CURVE('',#17540,#17541,#21063,.T.); +#13028=EDGE_CURVE('',#17541,#17542,#21064,.T.); +#13029=EDGE_CURVE('',#17542,#17543,#21065,.T.); +#13030=EDGE_CURVE('',#17544,#17543,#21066,.T.); +#13031=EDGE_CURVE('',#17544,#17545,#21067,.T.); +#13032=EDGE_CURVE('',#17545,#17546,#21068,.T.); +#13033=EDGE_CURVE('',#17546,#17547,#21069,.T.); +#13034=EDGE_CURVE('',#17548,#17547,#21070,.T.); +#13035=EDGE_CURVE('',#17548,#17549,#21071,.T.); +#13036=EDGE_CURVE('',#17549,#17550,#21072,.T.); +#13037=EDGE_CURVE('',#17550,#17551,#21073,.T.); +#13038=EDGE_CURVE('',#17552,#17551,#21074,.T.); +#13039=EDGE_CURVE('',#17552,#17553,#21075,.T.); +#13040=EDGE_CURVE('',#17553,#17554,#21076,.T.); +#13041=EDGE_CURVE('',#17554,#17555,#21077,.T.); +#13042=EDGE_CURVE('',#17556,#17555,#21078,.T.); +#13043=EDGE_CURVE('',#17556,#17557,#21079,.T.); +#13044=EDGE_CURVE('',#17557,#17558,#21080,.T.); +#13045=EDGE_CURVE('',#17558,#17559,#21081,.T.); +#13046=EDGE_CURVE('',#17560,#17559,#21082,.T.); +#13047=EDGE_CURVE('',#17560,#17561,#21083,.T.); +#13048=EDGE_CURVE('',#17561,#17562,#21084,.T.); +#13049=EDGE_CURVE('',#17562,#17563,#21085,.T.); +#13050=EDGE_CURVE('',#17564,#17563,#21086,.T.); +#13051=EDGE_CURVE('',#17564,#17565,#21087,.T.); +#13052=EDGE_CURVE('',#17565,#17566,#21088,.T.); +#13053=EDGE_CURVE('',#17566,#17567,#21089,.T.); +#13054=EDGE_CURVE('',#17568,#17567,#21090,.T.); +#13055=EDGE_CURVE('',#17568,#17569,#21091,.T.); +#13056=EDGE_CURVE('',#17569,#17570,#21092,.T.); +#13057=EDGE_CURVE('',#17570,#17571,#21093,.T.); +#13058=EDGE_CURVE('',#17572,#17571,#21094,.T.); +#13059=EDGE_CURVE('',#17572,#17573,#21095,.T.); +#13060=EDGE_CURVE('',#17573,#17574,#21096,.T.); +#13061=EDGE_CURVE('',#17574,#17575,#21097,.T.); +#13062=EDGE_CURVE('',#17576,#17575,#21098,.T.); +#13063=EDGE_CURVE('',#17576,#17577,#21099,.T.); +#13064=EDGE_CURVE('',#17577,#17578,#21100,.T.); +#13065=EDGE_CURVE('',#17578,#17579,#21101,.T.); +#13066=EDGE_CURVE('',#17580,#17579,#21102,.T.); +#13067=EDGE_CURVE('',#17580,#17581,#21103,.T.); +#13068=EDGE_CURVE('',#17581,#17582,#21104,.T.); +#13069=EDGE_CURVE('',#17582,#17583,#21105,.T.); +#13070=EDGE_CURVE('',#17584,#17583,#21106,.T.); +#13071=EDGE_CURVE('',#17584,#17585,#21107,.T.); +#13072=EDGE_CURVE('',#17585,#17586,#21108,.T.); +#13073=EDGE_CURVE('',#17586,#17587,#21109,.T.); +#13074=EDGE_CURVE('',#17588,#17587,#21110,.T.); +#13075=EDGE_CURVE('',#17588,#17589,#21111,.T.); +#13076=EDGE_CURVE('',#17589,#17590,#21112,.T.); +#13077=EDGE_CURVE('',#17590,#17591,#21113,.T.); +#13078=EDGE_CURVE('',#17592,#17591,#21114,.T.); +#13079=EDGE_CURVE('',#17592,#17593,#21115,.T.); +#13080=EDGE_CURVE('',#17593,#17594,#21116,.T.); +#13081=EDGE_CURVE('',#17594,#17595,#21117,.T.); +#13082=EDGE_CURVE('',#17596,#17595,#21118,.T.); +#13083=EDGE_CURVE('',#17596,#17597,#21119,.T.); +#13084=EDGE_CURVE('',#17597,#17598,#21120,.T.); +#13085=EDGE_CURVE('',#17598,#17599,#21121,.T.); +#13086=EDGE_CURVE('',#17600,#17599,#21122,.T.); +#13087=EDGE_CURVE('',#17600,#17601,#21123,.T.); +#13088=EDGE_CURVE('',#17601,#17602,#21124,.T.); +#13089=EDGE_CURVE('',#17602,#17603,#21125,.T.); +#13090=EDGE_CURVE('',#17604,#17603,#21126,.T.); +#13091=EDGE_CURVE('',#17604,#17605,#21127,.T.); +#13092=EDGE_CURVE('',#17605,#17606,#21128,.T.); +#13093=EDGE_CURVE('',#17606,#17607,#21129,.T.); +#13094=EDGE_CURVE('',#17608,#17607,#21130,.T.); +#13095=EDGE_CURVE('',#17608,#17609,#21131,.T.); +#13096=EDGE_CURVE('',#17609,#17610,#21132,.T.); +#13097=EDGE_CURVE('',#17610,#17611,#21133,.T.); +#13098=EDGE_CURVE('',#17612,#17611,#21134,.T.); +#13099=EDGE_CURVE('',#17612,#17613,#21135,.T.); +#13100=EDGE_CURVE('',#17613,#17614,#21136,.T.); +#13101=EDGE_CURVE('',#17614,#17615,#21137,.T.); +#13102=EDGE_CURVE('',#17616,#17615,#21138,.T.); +#13103=EDGE_CURVE('',#17616,#17617,#21139,.T.); +#13104=EDGE_CURVE('',#17617,#17618,#21140,.T.); +#13105=EDGE_CURVE('',#17618,#17619,#21141,.T.); +#13106=EDGE_CURVE('',#17620,#17619,#21142,.T.); +#13107=EDGE_CURVE('',#17620,#17621,#21143,.T.); +#13108=EDGE_CURVE('',#17621,#17622,#21144,.T.); +#13109=EDGE_CURVE('',#17622,#17623,#21145,.T.); +#13110=EDGE_CURVE('',#17624,#17623,#21146,.T.); +#13111=EDGE_CURVE('',#17624,#17625,#21147,.T.); +#13112=EDGE_CURVE('',#17625,#17626,#21148,.T.); +#13113=EDGE_CURVE('',#17626,#17627,#21149,.T.); +#13114=EDGE_CURVE('',#17628,#17627,#21150,.T.); +#13115=EDGE_CURVE('',#17628,#17629,#21151,.T.); +#13116=EDGE_CURVE('',#17629,#17630,#21152,.T.); +#13117=EDGE_CURVE('',#17630,#17631,#21153,.T.); +#13118=EDGE_CURVE('',#17632,#17631,#21154,.T.); +#13119=EDGE_CURVE('',#17632,#17633,#21155,.T.); +#13120=EDGE_CURVE('',#17633,#17634,#21156,.T.); +#13121=EDGE_CURVE('',#17634,#17635,#21157,.T.); +#13122=EDGE_CURVE('',#17636,#17635,#21158,.T.); +#13123=EDGE_CURVE('',#17636,#17637,#21159,.T.); +#13124=EDGE_CURVE('',#17637,#17638,#21160,.T.); +#13125=EDGE_CURVE('',#17638,#17639,#21161,.T.); +#13126=EDGE_CURVE('',#17640,#17639,#21162,.T.); +#13127=EDGE_CURVE('',#17640,#17641,#21163,.T.); +#13128=EDGE_CURVE('',#17641,#17642,#21164,.T.); +#13129=EDGE_CURVE('',#17642,#17643,#21165,.T.); +#13130=EDGE_CURVE('',#17644,#17643,#21166,.T.); +#13131=EDGE_CURVE('',#17644,#17645,#21167,.T.); +#13132=EDGE_CURVE('',#17645,#17646,#21168,.T.); +#13133=EDGE_CURVE('',#17646,#17647,#21169,.T.); +#13134=EDGE_CURVE('',#17648,#17647,#21170,.T.); +#13135=EDGE_CURVE('',#17648,#17649,#21171,.T.); +#13136=EDGE_CURVE('',#17649,#17650,#21172,.T.); +#13137=EDGE_CURVE('',#17650,#17651,#21173,.T.); +#13138=EDGE_CURVE('',#17652,#17651,#21174,.T.); +#13139=EDGE_CURVE('',#17652,#17653,#21175,.T.); +#13140=EDGE_CURVE('',#17653,#17654,#21176,.T.); +#13141=EDGE_CURVE('',#17654,#17655,#21177,.T.); +#13142=EDGE_CURVE('',#17656,#17655,#21178,.T.); +#13143=EDGE_CURVE('',#17656,#17657,#21179,.T.); +#13144=EDGE_CURVE('',#17657,#17658,#21180,.T.); +#13145=EDGE_CURVE('',#17658,#17659,#21181,.T.); +#13146=EDGE_CURVE('',#17660,#17659,#21182,.T.); +#13147=EDGE_CURVE('',#17660,#17661,#21183,.T.); +#13148=EDGE_CURVE('',#17661,#17662,#21184,.T.); +#13149=EDGE_CURVE('',#17662,#17663,#21185,.T.); +#13150=EDGE_CURVE('',#17664,#17663,#21186,.T.); +#13151=EDGE_CURVE('',#17664,#17665,#21187,.T.); +#13152=EDGE_CURVE('',#17665,#17666,#21188,.T.); +#13153=EDGE_CURVE('',#17667,#17666,#21189,.T.); +#13154=EDGE_CURVE('',#17668,#17667,#21190,.T.); +#13155=EDGE_CURVE('',#17506,#17668,#21191,.T.); +#13156=EDGE_CURVE('',#17669,#17670,#21192,.T.); +#13157=EDGE_CURVE('',#17669,#17671,#21193,.T.); +#13158=EDGE_CURVE('',#17672,#17671,#21194,.T.); +#13159=EDGE_CURVE('',#17673,#17672,#21195,.T.); +#13160=EDGE_CURVE('',#17673,#17674,#21196,.T.); +#13161=EDGE_CURVE('',#17674,#17675,#21197,.T.); +#13162=EDGE_CURVE('',#17675,#17676,#21198,.T.); +#13163=EDGE_CURVE('',#17676,#17677,#21199,.T.); +#13164=EDGE_CURVE('',#17677,#17678,#21200,.T.); +#13165=EDGE_CURVE('',#17678,#17679,#21201,.T.); +#13166=EDGE_CURVE('',#17680,#17679,#21202,.T.); +#13167=EDGE_CURVE('',#17680,#17681,#21203,.T.); +#13168=EDGE_CURVE('',#17681,#17682,#21204,.T.); +#13169=EDGE_CURVE('',#17682,#17683,#21205,.T.); +#13170=EDGE_CURVE('',#17683,#17684,#21206,.T.); +#13171=EDGE_CURVE('',#17684,#17685,#21207,.T.); +#13172=EDGE_CURVE('',#17685,#17686,#21208,.T.); +#13173=EDGE_CURVE('',#17686,#17687,#21209,.T.); +#13174=EDGE_CURVE('',#17688,#17687,#21210,.T.); +#13175=EDGE_CURVE('',#17688,#17689,#21211,.T.); +#13176=EDGE_CURVE('',#17689,#17690,#21212,.T.); +#13177=EDGE_CURVE('',#17690,#17691,#21213,.T.); +#13178=EDGE_CURVE('',#17691,#17692,#21214,.T.); +#13179=EDGE_CURVE('',#17692,#17693,#21215,.T.); +#13180=EDGE_CURVE('',#17693,#17694,#21216,.T.); +#13181=EDGE_CURVE('',#17694,#17695,#21217,.T.); +#13182=EDGE_CURVE('',#17696,#17695,#21218,.T.); +#13183=EDGE_CURVE('',#17696,#17697,#21219,.T.); +#13184=EDGE_CURVE('',#17697,#17698,#21220,.T.); +#13185=EDGE_CURVE('',#17698,#17699,#21221,.T.); +#13186=EDGE_CURVE('',#17699,#17700,#21222,.T.); +#13187=EDGE_CURVE('',#17700,#17701,#21223,.T.); +#13188=EDGE_CURVE('',#17701,#17702,#21224,.T.); +#13189=EDGE_CURVE('',#17702,#17703,#21225,.T.); +#13190=EDGE_CURVE('',#17704,#17703,#21226,.T.); +#13191=EDGE_CURVE('',#17704,#17705,#21227,.T.); +#13192=EDGE_CURVE('',#17705,#17706,#21228,.T.); +#13193=EDGE_CURVE('',#17706,#17707,#21229,.T.); +#13194=EDGE_CURVE('',#17707,#17708,#21230,.T.); +#13195=EDGE_CURVE('',#17708,#17709,#21231,.T.); +#13196=EDGE_CURVE('',#17709,#17710,#21232,.T.); +#13197=EDGE_CURVE('',#17710,#17711,#21233,.T.); +#13198=EDGE_CURVE('',#17712,#17711,#21234,.T.); +#13199=EDGE_CURVE('',#17712,#17713,#21235,.T.); +#13200=EDGE_CURVE('',#17713,#17714,#21236,.T.); +#13201=EDGE_CURVE('',#17714,#17715,#21237,.T.); +#13202=EDGE_CURVE('',#17715,#17716,#21238,.T.); +#13203=EDGE_CURVE('',#17716,#17717,#21239,.T.); +#13204=EDGE_CURVE('',#17717,#17718,#21240,.T.); +#13205=EDGE_CURVE('',#17718,#17719,#21241,.T.); +#13206=EDGE_CURVE('',#17720,#17719,#21242,.T.); +#13207=EDGE_CURVE('',#17720,#17721,#21243,.T.); +#13208=EDGE_CURVE('',#17721,#17722,#21244,.T.); +#13209=EDGE_CURVE('',#17722,#17723,#21245,.T.); +#13210=EDGE_CURVE('',#17723,#17724,#21246,.T.); +#13211=EDGE_CURVE('',#17724,#17725,#21247,.T.); +#13212=EDGE_CURVE('',#17725,#17726,#21248,.T.); +#13213=EDGE_CURVE('',#17726,#17727,#21249,.T.); +#13214=EDGE_CURVE('',#17728,#17727,#21250,.T.); +#13215=EDGE_CURVE('',#17728,#17729,#21251,.T.); +#13216=EDGE_CURVE('',#17729,#17730,#21252,.T.); +#13217=EDGE_CURVE('',#17730,#17731,#21253,.T.); +#13218=EDGE_CURVE('',#17731,#17732,#21254,.T.); +#13219=EDGE_CURVE('',#17732,#17733,#21255,.T.); +#13220=EDGE_CURVE('',#17733,#17734,#21256,.T.); +#13221=EDGE_CURVE('',#17734,#17735,#21257,.T.); +#13222=EDGE_CURVE('',#17736,#17735,#21258,.T.); +#13223=EDGE_CURVE('',#17736,#17737,#21259,.T.); +#13224=EDGE_CURVE('',#17737,#17738,#21260,.T.); +#13225=EDGE_CURVE('',#17738,#17739,#21261,.T.); +#13226=EDGE_CURVE('',#17739,#17740,#21262,.T.); +#13227=EDGE_CURVE('',#17740,#17741,#21263,.T.); +#13228=EDGE_CURVE('',#17741,#17742,#21264,.T.); +#13229=EDGE_CURVE('',#17742,#17743,#21265,.T.); +#13230=EDGE_CURVE('',#17744,#17743,#21266,.T.); +#13231=EDGE_CURVE('',#17744,#17745,#21267,.T.); +#13232=EDGE_CURVE('',#17745,#17746,#21268,.T.); +#13233=EDGE_CURVE('',#17746,#17747,#21269,.T.); +#13234=EDGE_CURVE('',#17747,#17748,#21270,.T.); +#13235=EDGE_CURVE('',#17748,#17749,#21271,.T.); +#13236=EDGE_CURVE('',#17749,#17750,#21272,.T.); +#13237=EDGE_CURVE('',#17750,#17751,#21273,.T.); +#13238=EDGE_CURVE('',#17752,#17751,#21274,.T.); +#13239=EDGE_CURVE('',#17752,#17753,#21275,.T.); +#13240=EDGE_CURVE('',#17753,#17754,#21276,.T.); +#13241=EDGE_CURVE('',#17754,#17755,#21277,.T.); +#13242=EDGE_CURVE('',#17755,#17756,#21278,.T.); +#13243=EDGE_CURVE('',#17756,#17757,#21279,.T.); +#13244=EDGE_CURVE('',#17757,#17758,#21280,.T.); +#13245=EDGE_CURVE('',#17758,#17759,#21281,.T.); +#13246=EDGE_CURVE('',#17760,#17759,#21282,.T.); +#13247=EDGE_CURVE('',#17760,#17761,#21283,.T.); +#13248=EDGE_CURVE('',#17761,#17762,#21284,.T.); +#13249=EDGE_CURVE('',#17762,#17763,#21285,.T.); +#13250=EDGE_CURVE('',#17763,#17764,#21286,.T.); +#13251=EDGE_CURVE('',#17764,#17765,#21287,.T.); +#13252=EDGE_CURVE('',#17765,#17766,#21288,.T.); +#13253=EDGE_CURVE('',#17766,#17767,#21289,.T.); +#13254=EDGE_CURVE('',#17768,#17767,#21290,.T.); +#13255=EDGE_CURVE('',#17768,#17769,#21291,.T.); +#13256=EDGE_CURVE('',#17769,#17770,#21292,.T.); +#13257=EDGE_CURVE('',#17770,#17771,#21293,.T.); +#13258=EDGE_CURVE('',#17771,#17772,#21294,.T.); +#13259=EDGE_CURVE('',#17772,#17773,#21295,.T.); +#13260=EDGE_CURVE('',#17773,#17774,#21296,.T.); +#13261=EDGE_CURVE('',#17774,#17775,#21297,.T.); +#13262=EDGE_CURVE('',#17776,#17775,#21298,.T.); +#13263=EDGE_CURVE('',#17776,#17777,#21299,.T.); +#13264=EDGE_CURVE('',#17777,#17778,#21300,.T.); +#13265=EDGE_CURVE('',#17778,#17779,#21301,.T.); +#13266=EDGE_CURVE('',#17779,#17780,#21302,.T.); +#13267=EDGE_CURVE('',#17780,#17781,#21303,.T.); +#13268=EDGE_CURVE('',#17781,#17782,#21304,.T.); +#13269=EDGE_CURVE('',#17782,#17783,#21305,.T.); +#13270=EDGE_CURVE('',#17784,#17783,#21306,.T.); +#13271=EDGE_CURVE('',#17784,#17785,#21307,.T.); +#13272=EDGE_CURVE('',#17785,#17786,#21308,.T.); +#13273=EDGE_CURVE('',#17786,#17787,#21309,.T.); +#13274=EDGE_CURVE('',#17787,#17788,#21310,.T.); +#13275=EDGE_CURVE('',#17788,#17789,#21311,.T.); +#13276=EDGE_CURVE('',#17789,#17790,#21312,.T.); +#13277=EDGE_CURVE('',#17790,#17791,#21313,.T.); +#13278=EDGE_CURVE('',#17792,#17791,#21314,.T.); +#13279=EDGE_CURVE('',#17792,#17793,#21315,.T.); +#13280=EDGE_CURVE('',#17793,#17794,#21316,.T.); +#13281=EDGE_CURVE('',#17794,#17795,#21317,.T.); +#13282=EDGE_CURVE('',#17795,#17796,#21318,.T.); +#13283=EDGE_CURVE('',#17796,#17797,#21319,.T.); +#13284=EDGE_CURVE('',#17797,#17798,#21320,.T.); +#13285=EDGE_CURVE('',#17798,#17799,#21321,.T.); +#13286=EDGE_CURVE('',#17800,#17799,#21322,.T.); +#13287=EDGE_CURVE('',#17800,#17801,#21323,.T.); +#13288=EDGE_CURVE('',#17801,#17802,#21324,.T.); +#13289=EDGE_CURVE('',#17802,#17803,#21325,.T.); +#13290=EDGE_CURVE('',#17803,#17804,#21326,.T.); +#13291=EDGE_CURVE('',#17804,#17805,#21327,.T.); +#13292=EDGE_CURVE('',#17805,#17806,#21328,.T.); +#13293=EDGE_CURVE('',#17806,#17807,#21329,.T.); +#13294=EDGE_CURVE('',#17808,#17807,#21330,.T.); +#13295=EDGE_CURVE('',#17808,#17809,#21331,.T.); +#13296=EDGE_CURVE('',#17809,#17810,#21332,.T.); +#13297=EDGE_CURVE('',#17810,#17811,#21333,.T.); +#13298=EDGE_CURVE('',#17811,#17812,#21334,.T.); +#13299=EDGE_CURVE('',#17812,#17813,#21335,.T.); +#13300=EDGE_CURVE('',#17813,#17814,#21336,.T.); +#13301=EDGE_CURVE('',#17814,#17815,#21337,.T.); +#13302=EDGE_CURVE('',#17816,#17815,#21338,.T.); +#13303=EDGE_CURVE('',#17816,#17817,#21339,.T.); +#13304=EDGE_CURVE('',#17817,#17818,#21340,.T.); +#13305=EDGE_CURVE('',#17818,#17819,#21341,.T.); +#13306=EDGE_CURVE('',#17819,#17820,#21342,.T.); +#13307=EDGE_CURVE('',#17820,#17821,#21343,.T.); +#13308=EDGE_CURVE('',#17821,#17822,#21344,.T.); +#13309=EDGE_CURVE('',#17822,#17823,#21345,.T.); +#13310=EDGE_CURVE('',#17824,#17823,#21346,.T.); +#13311=EDGE_CURVE('',#17824,#17825,#21347,.T.); +#13312=EDGE_CURVE('',#17825,#17826,#21348,.T.); +#13313=EDGE_CURVE('',#17826,#17827,#21349,.T.); +#13314=EDGE_CURVE('',#17827,#17828,#21350,.T.); +#13315=EDGE_CURVE('',#17828,#17829,#21351,.T.); +#13316=EDGE_CURVE('',#17829,#17830,#21352,.T.); +#13317=EDGE_CURVE('',#17830,#17831,#21353,.T.); +#13318=EDGE_CURVE('',#17832,#17831,#21354,.T.); +#13319=EDGE_CURVE('',#17670,#17832,#21355,.T.); +#13320=EDGE_CURVE('',#17833,#17834,#21356,.T.); +#13321=EDGE_CURVE('',#17833,#17835,#21357,.T.); +#13322=EDGE_CURVE('',#17835,#17836,#21358,.T.); +#13323=EDGE_CURVE('',#17836,#17837,#21359,.T.); +#13324=EDGE_CURVE('',#17837,#17838,#21360,.T.); +#13325=EDGE_CURVE('',#17838,#17839,#21361,.T.); +#13326=EDGE_CURVE('',#17840,#17839,#21362,.T.); +#13327=EDGE_CURVE('',#17840,#17841,#21363,.T.); +#13328=EDGE_CURVE('',#17841,#17842,#21364,.T.); +#13329=EDGE_CURVE('',#17842,#17843,#21365,.T.); +#13330=EDGE_CURVE('',#17843,#17844,#21366,.T.); +#13331=EDGE_CURVE('',#17844,#17845,#21367,.T.); +#13332=EDGE_CURVE('',#17845,#17846,#21368,.T.); +#13333=EDGE_CURVE('',#17846,#17847,#21369,.T.); +#13334=EDGE_CURVE('',#17848,#17847,#21370,.T.); +#13335=EDGE_CURVE('',#17848,#17849,#21371,.T.); +#13336=EDGE_CURVE('',#17849,#17850,#21372,.T.); +#13337=EDGE_CURVE('',#17850,#17851,#21373,.T.); +#13338=EDGE_CURVE('',#17851,#17852,#21374,.T.); +#13339=EDGE_CURVE('',#17852,#17853,#21375,.T.); +#13340=EDGE_CURVE('',#17853,#17854,#21376,.T.); +#13341=EDGE_CURVE('',#17854,#17855,#21377,.T.); +#13342=EDGE_CURVE('',#17856,#17855,#21378,.T.); +#13343=EDGE_CURVE('',#17856,#17857,#21379,.T.); +#13344=EDGE_CURVE('',#17857,#17858,#21380,.T.); +#13345=EDGE_CURVE('',#17858,#17859,#21381,.T.); +#13346=EDGE_CURVE('',#17859,#17860,#21382,.T.); +#13347=EDGE_CURVE('',#17860,#17861,#21383,.T.); +#13348=EDGE_CURVE('',#17861,#17862,#21384,.T.); +#13349=EDGE_CURVE('',#17862,#17863,#21385,.T.); +#13350=EDGE_CURVE('',#17864,#17863,#21386,.T.); +#13351=EDGE_CURVE('',#17864,#17865,#21387,.T.); +#13352=EDGE_CURVE('',#17865,#17866,#21388,.T.); +#13353=EDGE_CURVE('',#17866,#17867,#21389,.T.); +#13354=EDGE_CURVE('',#17867,#17868,#21390,.T.); +#13355=EDGE_CURVE('',#17868,#17869,#21391,.T.); +#13356=EDGE_CURVE('',#17869,#17870,#21392,.T.); +#13357=EDGE_CURVE('',#17870,#17871,#21393,.T.); +#13358=EDGE_CURVE('',#17872,#17871,#21394,.T.); +#13359=EDGE_CURVE('',#17872,#17873,#21395,.T.); +#13360=EDGE_CURVE('',#17873,#17874,#21396,.T.); +#13361=EDGE_CURVE('',#17874,#17875,#21397,.T.); +#13362=EDGE_CURVE('',#17875,#17876,#21398,.T.); +#13363=EDGE_CURVE('',#17876,#17877,#21399,.T.); +#13364=EDGE_CURVE('',#17877,#17878,#21400,.T.); +#13365=EDGE_CURVE('',#17878,#17879,#21401,.T.); +#13366=EDGE_CURVE('',#17880,#17879,#21402,.T.); +#13367=EDGE_CURVE('',#17880,#17881,#21403,.T.); +#13368=EDGE_CURVE('',#17881,#17882,#21404,.T.); +#13369=EDGE_CURVE('',#17882,#17883,#21405,.T.); +#13370=EDGE_CURVE('',#17883,#17884,#21406,.T.); +#13371=EDGE_CURVE('',#17884,#17885,#21407,.T.); +#13372=EDGE_CURVE('',#17885,#17886,#21408,.T.); +#13373=EDGE_CURVE('',#17886,#17887,#21409,.T.); +#13374=EDGE_CURVE('',#17888,#17887,#21410,.T.); +#13375=EDGE_CURVE('',#17888,#17889,#21411,.T.); +#13376=EDGE_CURVE('',#17889,#17890,#21412,.T.); +#13377=EDGE_CURVE('',#17890,#17891,#21413,.T.); +#13378=EDGE_CURVE('',#17891,#17892,#21414,.T.); +#13379=EDGE_CURVE('',#17892,#17893,#21415,.T.); +#13380=EDGE_CURVE('',#17893,#17894,#21416,.T.); +#13381=EDGE_CURVE('',#17894,#17895,#21417,.T.); +#13382=EDGE_CURVE('',#17896,#17895,#21418,.T.); +#13383=EDGE_CURVE('',#17896,#17897,#21419,.T.); +#13384=EDGE_CURVE('',#17897,#17898,#21420,.T.); +#13385=EDGE_CURVE('',#17898,#17899,#21421,.T.); +#13386=EDGE_CURVE('',#17899,#17900,#21422,.T.); +#13387=EDGE_CURVE('',#17900,#17901,#21423,.T.); +#13388=EDGE_CURVE('',#17901,#17902,#21424,.T.); +#13389=EDGE_CURVE('',#17902,#17903,#21425,.T.); +#13390=EDGE_CURVE('',#17904,#17903,#21426,.T.); +#13391=EDGE_CURVE('',#17904,#17905,#21427,.T.); +#13392=EDGE_CURVE('',#17905,#17906,#21428,.T.); +#13393=EDGE_CURVE('',#17906,#17907,#21429,.T.); +#13394=EDGE_CURVE('',#17907,#17908,#21430,.T.); +#13395=EDGE_CURVE('',#17908,#17909,#21431,.T.); +#13396=EDGE_CURVE('',#17909,#17910,#21432,.T.); +#13397=EDGE_CURVE('',#17910,#17911,#21433,.T.); +#13398=EDGE_CURVE('',#17912,#17911,#21434,.T.); +#13399=EDGE_CURVE('',#17912,#17913,#21435,.T.); +#13400=EDGE_CURVE('',#17913,#17914,#21436,.T.); +#13401=EDGE_CURVE('',#17914,#17915,#21437,.T.); +#13402=EDGE_CURVE('',#17915,#17916,#21438,.T.); +#13403=EDGE_CURVE('',#17916,#17917,#21439,.T.); +#13404=EDGE_CURVE('',#17917,#17918,#21440,.T.); +#13405=EDGE_CURVE('',#17918,#17919,#21441,.T.); +#13406=EDGE_CURVE('',#17920,#17919,#21442,.T.); +#13407=EDGE_CURVE('',#17920,#17921,#21443,.T.); +#13408=EDGE_CURVE('',#17921,#17922,#21444,.T.); +#13409=EDGE_CURVE('',#17922,#17923,#21445,.T.); +#13410=EDGE_CURVE('',#17923,#17924,#21446,.T.); +#13411=EDGE_CURVE('',#17924,#17925,#21447,.T.); +#13412=EDGE_CURVE('',#17925,#17926,#21448,.T.); +#13413=EDGE_CURVE('',#17926,#17927,#21449,.T.); +#13414=EDGE_CURVE('',#17928,#17927,#21450,.T.); +#13415=EDGE_CURVE('',#17928,#17929,#21451,.T.); +#13416=EDGE_CURVE('',#17929,#17930,#21452,.T.); +#13417=EDGE_CURVE('',#17930,#17931,#21453,.T.); +#13418=EDGE_CURVE('',#17931,#17932,#21454,.T.); +#13419=EDGE_CURVE('',#17932,#17933,#21455,.T.); +#13420=EDGE_CURVE('',#17933,#17934,#21456,.T.); +#13421=EDGE_CURVE('',#17934,#17935,#21457,.T.); +#13422=EDGE_CURVE('',#17936,#17935,#21458,.T.); +#13423=EDGE_CURVE('',#17936,#17937,#21459,.T.); +#13424=EDGE_CURVE('',#17937,#17938,#21460,.T.); +#13425=EDGE_CURVE('',#17938,#17939,#21461,.T.); +#13426=EDGE_CURVE('',#17939,#17940,#21462,.T.); +#13427=EDGE_CURVE('',#17940,#17941,#21463,.T.); +#13428=EDGE_CURVE('',#17941,#17942,#21464,.T.); +#13429=EDGE_CURVE('',#17942,#17943,#21465,.T.); +#13430=EDGE_CURVE('',#17944,#17943,#21466,.T.); +#13431=EDGE_CURVE('',#17944,#17945,#21467,.T.); +#13432=EDGE_CURVE('',#17945,#17946,#21468,.T.); +#13433=EDGE_CURVE('',#17946,#17947,#21469,.T.); +#13434=EDGE_CURVE('',#17947,#17948,#21470,.T.); +#13435=EDGE_CURVE('',#17948,#17949,#21471,.T.); +#13436=EDGE_CURVE('',#17949,#17950,#21472,.T.); +#13437=EDGE_CURVE('',#17950,#17951,#21473,.T.); +#13438=EDGE_CURVE('',#17952,#17951,#21474,.T.); +#13439=EDGE_CURVE('',#17952,#17953,#21475,.T.); +#13440=EDGE_CURVE('',#17953,#17954,#21476,.T.); +#13441=EDGE_CURVE('',#17954,#17955,#21477,.T.); +#13442=EDGE_CURVE('',#17955,#17956,#21478,.T.); +#13443=EDGE_CURVE('',#17956,#17957,#21479,.T.); +#13444=EDGE_CURVE('',#17957,#17958,#21480,.T.); +#13445=EDGE_CURVE('',#17958,#17959,#21481,.T.); +#13446=EDGE_CURVE('',#17960,#17959,#21482,.T.); +#13447=EDGE_CURVE('',#17960,#17961,#21483,.T.); +#13448=EDGE_CURVE('',#17961,#17962,#21484,.T.); +#13449=EDGE_CURVE('',#17962,#17963,#21485,.T.); +#13450=EDGE_CURVE('',#17963,#17964,#21486,.T.); +#13451=EDGE_CURVE('',#17964,#17965,#21487,.T.); +#13452=EDGE_CURVE('',#17965,#17966,#21488,.T.); +#13453=EDGE_CURVE('',#17966,#17967,#21489,.T.); +#13454=EDGE_CURVE('',#17968,#17967,#21490,.T.); +#13455=EDGE_CURVE('',#17968,#17969,#21491,.T.); +#13456=EDGE_CURVE('',#17969,#17970,#21492,.T.); +#13457=EDGE_CURVE('',#17970,#17971,#21493,.T.); +#13458=EDGE_CURVE('',#17971,#17972,#21494,.T.); +#13459=EDGE_CURVE('',#17972,#17973,#21495,.T.); +#13460=EDGE_CURVE('',#17973,#17974,#21496,.T.); +#13461=EDGE_CURVE('',#17974,#17975,#21497,.T.); +#13462=EDGE_CURVE('',#17976,#17975,#21498,.T.); +#13463=EDGE_CURVE('',#17976,#17977,#21499,.T.); +#13464=EDGE_CURVE('',#17977,#17978,#21500,.T.); +#13465=EDGE_CURVE('',#17978,#17979,#21501,.T.); +#13466=EDGE_CURVE('',#17979,#17980,#21502,.T.); +#13467=EDGE_CURVE('',#17980,#17981,#21503,.T.); +#13468=EDGE_CURVE('',#17981,#17982,#21504,.T.); +#13469=EDGE_CURVE('',#17982,#17983,#21505,.T.); +#13470=EDGE_CURVE('',#17984,#17983,#21506,.T.); +#13471=EDGE_CURVE('',#17984,#17985,#21507,.T.); +#13472=EDGE_CURVE('',#17985,#17986,#21508,.T.); +#13473=EDGE_CURVE('',#17986,#17987,#21509,.T.); +#13474=EDGE_CURVE('',#17987,#17988,#21510,.T.); +#13475=EDGE_CURVE('',#17988,#17989,#21511,.T.); +#13476=EDGE_CURVE('',#17989,#17990,#21512,.T.); +#13477=EDGE_CURVE('',#17990,#17991,#21513,.T.); +#13478=EDGE_CURVE('',#17992,#17991,#21514,.T.); +#13479=EDGE_CURVE('',#17992,#17993,#21515,.T.); +#13480=EDGE_CURVE('',#17993,#17994,#21516,.T.); +#13481=EDGE_CURVE('',#17995,#17994,#21517,.T.); +#13482=EDGE_CURVE('',#17995,#17996,#21518,.T.); +#13483=EDGE_CURVE('',#17834,#17996,#21519,.T.); +#13484=EDGE_CURVE('',#17342,#17833,#21520,.T.); +#13485=EDGE_CURVE('',#17504,#17835,#21521,.T.); +#13486=EDGE_CURVE('',#17505,#17670,#21522,.T.); +#13487=EDGE_CURVE('',#17507,#17832,#21523,.T.); +#13488=EDGE_CURVE('',#17669,#17506,#21524,.T.); +#13489=EDGE_CURVE('',#17671,#17668,#21525,.T.); +#13490=EDGE_CURVE('',#17834,#17341,#21526,.T.); +#13491=EDGE_CURVE('',#17996,#17343,#21527,.T.); +#13492=EDGE_CURVE('',#17344,#17667,#21528,.T.); +#13493=EDGE_CURVE('',#17345,#17666,#21529,.T.); +#13494=EDGE_CURVE('',#17672,#17995,#21530,.T.); +#13495=EDGE_CURVE('',#17673,#17994,#21531,.T.); +#13496=EDGE_CURVE('',#17503,#17508,#21532,.T.); +#13497=EDGE_CURVE('',#17502,#17509,#21533,.T.); +#13498=EDGE_CURVE('',#17831,#17836,#21534,.T.); +#13499=EDGE_CURVE('',#17830,#17837,#21535,.T.); +#13500=EDGE_CURVE('',#17843,#17824,#21536,.T.); +#13501=EDGE_CURVE('',#17842,#17825,#21537,.T.); +#13502=EDGE_CURVE('',#17823,#17844,#21538,.T.); +#13503=EDGE_CURVE('',#17845,#17822,#21539,.T.); +#13504=EDGE_CURVE('',#17851,#17816,#21540,.T.); +#13505=EDGE_CURVE('',#17850,#17817,#21541,.T.); +#13506=EDGE_CURVE('',#17815,#17852,#21542,.T.); +#13507=EDGE_CURVE('',#17853,#17814,#21543,.T.); +#13508=EDGE_CURVE('',#17859,#17808,#21544,.T.); +#13509=EDGE_CURVE('',#17858,#17809,#21545,.T.); +#13510=EDGE_CURVE('',#17807,#17860,#21546,.T.); +#13511=EDGE_CURVE('',#17861,#17806,#21547,.T.); +#13512=EDGE_CURVE('',#17867,#17800,#21548,.T.); +#13513=EDGE_CURVE('',#17866,#17801,#21549,.T.); +#13514=EDGE_CURVE('',#17799,#17868,#21550,.T.); +#13515=EDGE_CURVE('',#17869,#17798,#21551,.T.); +#13516=EDGE_CURVE('',#17875,#17792,#21552,.T.); +#13517=EDGE_CURVE('',#17874,#17793,#21553,.T.); +#13518=EDGE_CURVE('',#17791,#17876,#21554,.T.); +#13519=EDGE_CURVE('',#17877,#17790,#21555,.T.); +#13520=EDGE_CURVE('',#17883,#17784,#21556,.T.); +#13521=EDGE_CURVE('',#17882,#17785,#21557,.T.); +#13522=EDGE_CURVE('',#17783,#17884,#21558,.T.); +#13523=EDGE_CURVE('',#17885,#17782,#21559,.T.); +#13524=EDGE_CURVE('',#17891,#17776,#21560,.T.); +#13525=EDGE_CURVE('',#17890,#17777,#21561,.T.); +#13526=EDGE_CURVE('',#17775,#17892,#21562,.T.); +#13527=EDGE_CURVE('',#17893,#17774,#21563,.T.); +#13528=EDGE_CURVE('',#17899,#17768,#21564,.T.); +#13529=EDGE_CURVE('',#17898,#17769,#21565,.T.); +#13530=EDGE_CURVE('',#17767,#17900,#21566,.T.); +#13531=EDGE_CURVE('',#17901,#17766,#21567,.T.); +#13532=EDGE_CURVE('',#17907,#17760,#21568,.T.); +#13533=EDGE_CURVE('',#17906,#17761,#21569,.T.); +#13534=EDGE_CURVE('',#17759,#17908,#21570,.T.); +#13535=EDGE_CURVE('',#17909,#17758,#21571,.T.); +#13536=EDGE_CURVE('',#17915,#17752,#21572,.T.); +#13537=EDGE_CURVE('',#17914,#17753,#21573,.T.); +#13538=EDGE_CURVE('',#17751,#17916,#21574,.T.); +#13539=EDGE_CURVE('',#17917,#17750,#21575,.T.); +#13540=EDGE_CURVE('',#17923,#17744,#21576,.T.); +#13541=EDGE_CURVE('',#17922,#17745,#21577,.T.); +#13542=EDGE_CURVE('',#17743,#17924,#21578,.T.); +#13543=EDGE_CURVE('',#17925,#17742,#21579,.T.); +#13544=EDGE_CURVE('',#17931,#17736,#21580,.T.); +#13545=EDGE_CURVE('',#17930,#17737,#21581,.T.); +#13546=EDGE_CURVE('',#17735,#17932,#21582,.T.); +#13547=EDGE_CURVE('',#17933,#17734,#21583,.T.); +#13548=EDGE_CURVE('',#17939,#17728,#21584,.T.); +#13549=EDGE_CURVE('',#17938,#17729,#21585,.T.); +#13550=EDGE_CURVE('',#17727,#17940,#21586,.T.); +#13551=EDGE_CURVE('',#17941,#17726,#21587,.T.); +#13552=EDGE_CURVE('',#17947,#17720,#21588,.T.); +#13553=EDGE_CURVE('',#17946,#17721,#21589,.T.); +#13554=EDGE_CURVE('',#17719,#17948,#21590,.T.); +#13555=EDGE_CURVE('',#17949,#17718,#21591,.T.); +#13556=EDGE_CURVE('',#17955,#17712,#21592,.T.); +#13557=EDGE_CURVE('',#17954,#17713,#21593,.T.); +#13558=EDGE_CURVE('',#17711,#17956,#21594,.T.); +#13559=EDGE_CURVE('',#17957,#17710,#21595,.T.); +#13560=EDGE_CURVE('',#17963,#17704,#21596,.T.); +#13561=EDGE_CURVE('',#17962,#17705,#21597,.T.); +#13562=EDGE_CURVE('',#17703,#17964,#21598,.T.); +#13563=EDGE_CURVE('',#17965,#17702,#21599,.T.); +#13564=EDGE_CURVE('',#17971,#17696,#21600,.T.); +#13565=EDGE_CURVE('',#17970,#17697,#21601,.T.); +#13566=EDGE_CURVE('',#17695,#17972,#21602,.T.); +#13567=EDGE_CURVE('',#17973,#17694,#21603,.T.); +#13568=EDGE_CURVE('',#17979,#17688,#21604,.T.); +#13569=EDGE_CURVE('',#17978,#17689,#21605,.T.); +#13570=EDGE_CURVE('',#17687,#17980,#21606,.T.); +#13571=EDGE_CURVE('',#17981,#17686,#21607,.T.); +#13572=EDGE_CURVE('',#17987,#17680,#21608,.T.); +#13573=EDGE_CURVE('',#17986,#17681,#21609,.T.); +#13574=EDGE_CURVE('',#17679,#17988,#21610,.T.); +#13575=EDGE_CURVE('',#17989,#17678,#21611,.T.); +#13576=EDGE_CURVE('',#17515,#17496,#21612,.T.); +#13577=EDGE_CURVE('',#17514,#17497,#21613,.T.); +#13578=EDGE_CURVE('',#17495,#17516,#21614,.T.); +#13579=EDGE_CURVE('',#17517,#17494,#21615,.T.); +#13580=EDGE_CURVE('',#17523,#17488,#21616,.T.); +#13581=EDGE_CURVE('',#17522,#17489,#21617,.T.); +#13582=EDGE_CURVE('',#17487,#17524,#21618,.T.); +#13583=EDGE_CURVE('',#17525,#17486,#21619,.T.); +#13584=EDGE_CURVE('',#17531,#17480,#21620,.T.); +#13585=EDGE_CURVE('',#17530,#17481,#21621,.T.); +#13586=EDGE_CURVE('',#17479,#17532,#21622,.T.); +#13587=EDGE_CURVE('',#17533,#17478,#21623,.T.); +#13588=EDGE_CURVE('',#17539,#17472,#21624,.T.); +#13589=EDGE_CURVE('',#17538,#17473,#21625,.T.); +#13590=EDGE_CURVE('',#17471,#17540,#21626,.T.); +#13591=EDGE_CURVE('',#17541,#17470,#21627,.T.); +#13592=EDGE_CURVE('',#17547,#17464,#21628,.T.); +#13593=EDGE_CURVE('',#17546,#17465,#21629,.T.); +#13594=EDGE_CURVE('',#17463,#17548,#21630,.T.); +#13595=EDGE_CURVE('',#17549,#17462,#21631,.T.); +#13596=EDGE_CURVE('',#17555,#17456,#21632,.T.); +#13597=EDGE_CURVE('',#17554,#17457,#21633,.T.); +#13598=EDGE_CURVE('',#17455,#17556,#21634,.T.); +#13599=EDGE_CURVE('',#17557,#17454,#21635,.T.); +#13600=EDGE_CURVE('',#17563,#17448,#21636,.T.); +#13601=EDGE_CURVE('',#17562,#17449,#21637,.T.); +#13602=EDGE_CURVE('',#17447,#17564,#21638,.T.); +#13603=EDGE_CURVE('',#17565,#17446,#21639,.T.); +#13604=EDGE_CURVE('',#17571,#17440,#21640,.T.); +#13605=EDGE_CURVE('',#17570,#17441,#21641,.T.); +#13606=EDGE_CURVE('',#17439,#17572,#21642,.T.); +#13607=EDGE_CURVE('',#17573,#17438,#21643,.T.); +#13608=EDGE_CURVE('',#17579,#17432,#21644,.T.); +#13609=EDGE_CURVE('',#17578,#17433,#21645,.T.); +#13610=EDGE_CURVE('',#17431,#17580,#21646,.T.); +#13611=EDGE_CURVE('',#17581,#17430,#21647,.T.); +#13612=EDGE_CURVE('',#17587,#17424,#21648,.T.); +#13613=EDGE_CURVE('',#17586,#17425,#21649,.T.); +#13614=EDGE_CURVE('',#17423,#17588,#21650,.T.); +#13615=EDGE_CURVE('',#17589,#17422,#21651,.T.); +#13616=EDGE_CURVE('',#17595,#17416,#21652,.T.); +#13617=EDGE_CURVE('',#17594,#17417,#21653,.T.); +#13618=EDGE_CURVE('',#17415,#17596,#21654,.T.); +#13619=EDGE_CURVE('',#17597,#17414,#21655,.T.); +#13620=EDGE_CURVE('',#17603,#17408,#21656,.T.); +#13621=EDGE_CURVE('',#17602,#17409,#21657,.T.); +#13622=EDGE_CURVE('',#17407,#17604,#21658,.T.); +#13623=EDGE_CURVE('',#17605,#17406,#21659,.T.); +#13624=EDGE_CURVE('',#17611,#17400,#21660,.T.); +#13625=EDGE_CURVE('',#17610,#17401,#21661,.T.); +#13626=EDGE_CURVE('',#17399,#17612,#21662,.T.); +#13627=EDGE_CURVE('',#17613,#17398,#21663,.T.); +#13628=EDGE_CURVE('',#17619,#17392,#21664,.T.); +#13629=EDGE_CURVE('',#17618,#17393,#21665,.T.); +#13630=EDGE_CURVE('',#17391,#17620,#21666,.T.); +#13631=EDGE_CURVE('',#17621,#17390,#21667,.T.); +#13632=EDGE_CURVE('',#17627,#17384,#21668,.T.); +#13633=EDGE_CURVE('',#17626,#17385,#21669,.T.); +#13634=EDGE_CURVE('',#17383,#17628,#21670,.T.); +#13635=EDGE_CURVE('',#17629,#17382,#21671,.T.); +#13636=EDGE_CURVE('',#17635,#17376,#21672,.T.); +#13637=EDGE_CURVE('',#17634,#17377,#21673,.T.); +#13638=EDGE_CURVE('',#17375,#17636,#21674,.T.); +#13639=EDGE_CURVE('',#17637,#17374,#21675,.T.); +#13640=EDGE_CURVE('',#17643,#17368,#21676,.T.); +#13641=EDGE_CURVE('',#17642,#17369,#21677,.T.); +#13642=EDGE_CURVE('',#17367,#17644,#21678,.T.); +#13643=EDGE_CURVE('',#17645,#17366,#21679,.T.); +#13644=EDGE_CURVE('',#17651,#17360,#21680,.T.); +#13645=EDGE_CURVE('',#17650,#17361,#21681,.T.); +#13646=EDGE_CURVE('',#17359,#17652,#21682,.T.); +#13647=EDGE_CURVE('',#17653,#17358,#21683,.T.); +#13648=EDGE_CURVE('',#17351,#17660,#21684,.T.); +#13649=EDGE_CURVE('',#17661,#17350,#21685,.T.); +#13650=EDGE_CURVE('',#17659,#17352,#21686,.T.); +#13651=EDGE_CURVE('',#17658,#17353,#21687,.T.); +#13652=EDGE_CURVE('',#17997,#17998,#21688,.T.); +#13653=EDGE_CURVE('',#17997,#17999,#21689,.T.); +#13654=EDGE_CURVE('',#17999,#18000,#21690,.T.); +#13655=EDGE_CURVE('',#18000,#17998,#21691,.T.); +#13656=EDGE_CURVE('',#18001,#18002,#21692,.T.); +#13657=EDGE_CURVE('',#18001,#18003,#21693,.T.); +#13658=EDGE_CURVE('',#18003,#18004,#21694,.T.); +#13659=EDGE_CURVE('',#18004,#18002,#21695,.T.); +#13660=EDGE_CURVE('',#18005,#18006,#21696,.T.); +#13661=EDGE_CURVE('',#18005,#18007,#21697,.T.); +#13662=EDGE_CURVE('',#18007,#18008,#21698,.T.); +#13663=EDGE_CURVE('',#18008,#18006,#21699,.T.); +#13664=EDGE_CURVE('',#18009,#18010,#21700,.T.); +#13665=EDGE_CURVE('',#18009,#18011,#21701,.T.); +#13666=EDGE_CURVE('',#18011,#18012,#21702,.T.); +#13667=EDGE_CURVE('',#18012,#18010,#21703,.T.); +#13668=EDGE_CURVE('',#18013,#18014,#21704,.T.); +#13669=EDGE_CURVE('',#18013,#18015,#21705,.T.); +#13670=EDGE_CURVE('',#18015,#18016,#21706,.T.); +#13671=EDGE_CURVE('',#18016,#18014,#21707,.T.); +#13672=EDGE_CURVE('',#18017,#18018,#21708,.T.); +#13673=EDGE_CURVE('',#18017,#18019,#21709,.T.); +#13674=EDGE_CURVE('',#18019,#18020,#21710,.T.); +#13675=EDGE_CURVE('',#18020,#18018,#21711,.T.); +#13676=EDGE_CURVE('',#18021,#18022,#21712,.T.); +#13677=EDGE_CURVE('',#18021,#18023,#21713,.T.); +#13678=EDGE_CURVE('',#18023,#18024,#21714,.T.); +#13679=EDGE_CURVE('',#18024,#18022,#21715,.T.); +#13680=EDGE_CURVE('',#18025,#18026,#21716,.T.); +#13681=EDGE_CURVE('',#18025,#18027,#21717,.T.); +#13682=EDGE_CURVE('',#18027,#18028,#21718,.T.); +#13683=EDGE_CURVE('',#18028,#18026,#21719,.T.); +#13684=EDGE_CURVE('',#18029,#18030,#21720,.T.); +#13685=EDGE_CURVE('',#18029,#18031,#21721,.T.); +#13686=EDGE_CURVE('',#18031,#18032,#21722,.T.); +#13687=EDGE_CURVE('',#18032,#18030,#21723,.T.); +#13688=EDGE_CURVE('',#18033,#18034,#21724,.T.); +#13689=EDGE_CURVE('',#18033,#18035,#21725,.T.); +#13690=EDGE_CURVE('',#18035,#18036,#21726,.T.); +#13691=EDGE_CURVE('',#18036,#18034,#21727,.T.); +#13692=EDGE_CURVE('',#18037,#18038,#21728,.T.); +#13693=EDGE_CURVE('',#18037,#18039,#21729,.T.); +#13694=EDGE_CURVE('',#18039,#18040,#21730,.T.); +#13695=EDGE_CURVE('',#18040,#18038,#21731,.T.); +#13696=EDGE_CURVE('',#18041,#18042,#21732,.T.); +#13697=EDGE_CURVE('',#18041,#18043,#21733,.T.); +#13698=EDGE_CURVE('',#18043,#18044,#21734,.T.); +#13699=EDGE_CURVE('',#18044,#18042,#21735,.T.); +#13700=EDGE_CURVE('',#18045,#18046,#21736,.T.); +#13701=EDGE_CURVE('',#18045,#18047,#21737,.T.); +#13702=EDGE_CURVE('',#18047,#18048,#21738,.T.); +#13703=EDGE_CURVE('',#18048,#18046,#21739,.T.); +#13704=EDGE_CURVE('',#18049,#18050,#21740,.T.); +#13705=EDGE_CURVE('',#18049,#18051,#21741,.T.); +#13706=EDGE_CURVE('',#18051,#18052,#21742,.T.); +#13707=EDGE_CURVE('',#18052,#18050,#21743,.T.); +#13708=EDGE_CURVE('',#18053,#18054,#21744,.T.); +#13709=EDGE_CURVE('',#18053,#18055,#21745,.T.); +#13710=EDGE_CURVE('',#18055,#18056,#21746,.T.); +#13711=EDGE_CURVE('',#18056,#18054,#21747,.T.); +#13712=EDGE_CURVE('',#18057,#18058,#21748,.T.); +#13713=EDGE_CURVE('',#18057,#18059,#21749,.T.); +#13714=EDGE_CURVE('',#18059,#18060,#21750,.T.); +#13715=EDGE_CURVE('',#18060,#18058,#21751,.T.); +#13716=EDGE_CURVE('',#18061,#18062,#21752,.T.); +#13717=EDGE_CURVE('',#18061,#18063,#21753,.T.); +#13718=EDGE_CURVE('',#18063,#18064,#21754,.T.); +#13719=EDGE_CURVE('',#18064,#18062,#21755,.T.); +#13720=EDGE_CURVE('',#18065,#18066,#21756,.T.); +#13721=EDGE_CURVE('',#18065,#18067,#21757,.T.); +#13722=EDGE_CURVE('',#18067,#18068,#21758,.T.); +#13723=EDGE_CURVE('',#18068,#18066,#21759,.T.); +#13724=EDGE_CURVE('',#18069,#18070,#21760,.T.); +#13725=EDGE_CURVE('',#18069,#18071,#21761,.T.); +#13726=EDGE_CURVE('',#18071,#18072,#21762,.T.); +#13727=EDGE_CURVE('',#18072,#18070,#21763,.T.); +#13728=EDGE_CURVE('',#17998,#17676,#1044,.T.); +#13729=EDGE_CURVE('',#17675,#17997,#1045,.T.); +#13730=EDGE_CURVE('',#18002,#17684,#1046,.T.); +#13731=EDGE_CURVE('',#17683,#18001,#1047,.T.); +#13732=EDGE_CURVE('',#18006,#17692,#1048,.T.); +#13733=EDGE_CURVE('',#17691,#18005,#1049,.T.); +#13734=EDGE_CURVE('',#18010,#17700,#1050,.T.); +#13735=EDGE_CURVE('',#17699,#18009,#1051,.T.); +#13736=EDGE_CURVE('',#18014,#17708,#1052,.T.); +#13737=EDGE_CURVE('',#17707,#18013,#1053,.T.); +#13738=EDGE_CURVE('',#18018,#17716,#1054,.T.); +#13739=EDGE_CURVE('',#17715,#18017,#1055,.T.); +#13740=EDGE_CURVE('',#18022,#17724,#1056,.T.); +#13741=EDGE_CURVE('',#17723,#18021,#1057,.T.); +#13742=EDGE_CURVE('',#18026,#17732,#1058,.T.); +#13743=EDGE_CURVE('',#17731,#18025,#1059,.T.); +#13744=EDGE_CURVE('',#18030,#17740,#1060,.T.); +#13745=EDGE_CURVE('',#17739,#18029,#1061,.T.); +#13746=EDGE_CURVE('',#18034,#17748,#1062,.T.); +#13747=EDGE_CURVE('',#17747,#18033,#1063,.T.); +#13748=EDGE_CURVE('',#18038,#17756,#1064,.T.); +#13749=EDGE_CURVE('',#17755,#18037,#1065,.T.); +#13750=EDGE_CURVE('',#18042,#17764,#1066,.T.); +#13751=EDGE_CURVE('',#17763,#18041,#1067,.T.); +#13752=EDGE_CURVE('',#18046,#17772,#1068,.T.); +#13753=EDGE_CURVE('',#17771,#18045,#1069,.T.); +#13754=EDGE_CURVE('',#18050,#17780,#1070,.T.); +#13755=EDGE_CURVE('',#17779,#18049,#1071,.T.); +#13756=EDGE_CURVE('',#18054,#17788,#1072,.T.); +#13757=EDGE_CURVE('',#17787,#18053,#1073,.T.); +#13758=EDGE_CURVE('',#18058,#17796,#1074,.T.); +#13759=EDGE_CURVE('',#17795,#18057,#1075,.T.); +#13760=EDGE_CURVE('',#18062,#17804,#1076,.T.); +#13761=EDGE_CURVE('',#17803,#18061,#1077,.T.); +#13762=EDGE_CURVE('',#18066,#17812,#1078,.T.); +#13763=EDGE_CURVE('',#17811,#18065,#1079,.T.); +#13764=EDGE_CURVE('',#18070,#17820,#1080,.T.); +#13765=EDGE_CURVE('',#17819,#18069,#1081,.T.); +#13766=EDGE_CURVE('',#17663,#18073,#1082,.T.); +#13767=EDGE_CURVE('',#18074,#18073,#21764,.T.); +#13768=EDGE_CURVE('',#18074,#17664,#1083,.T.); +#13769=EDGE_CURVE('',#17655,#18075,#1084,.T.); +#13770=EDGE_CURVE('',#18076,#18075,#21765,.T.); +#13771=EDGE_CURVE('',#18076,#17656,#1085,.T.); +#13772=EDGE_CURVE('',#17647,#18077,#1086,.T.); +#13773=EDGE_CURVE('',#18078,#18077,#21766,.T.); +#13774=EDGE_CURVE('',#18078,#17648,#1087,.T.); +#13775=EDGE_CURVE('',#17639,#18079,#1088,.T.); +#13776=EDGE_CURVE('',#18080,#18079,#21767,.T.); +#13777=EDGE_CURVE('',#18080,#17640,#1089,.T.); +#13778=EDGE_CURVE('',#17631,#18081,#1090,.T.); +#13779=EDGE_CURVE('',#18082,#18081,#21768,.T.); +#13780=EDGE_CURVE('',#18082,#17632,#1091,.T.); +#13781=EDGE_CURVE('',#17623,#18083,#1092,.T.); +#13782=EDGE_CURVE('',#18084,#18083,#21769,.T.); +#13783=EDGE_CURVE('',#18084,#17624,#1093,.T.); +#13784=EDGE_CURVE('',#17615,#18085,#1094,.T.); +#13785=EDGE_CURVE('',#18086,#18085,#21770,.T.); +#13786=EDGE_CURVE('',#18086,#17616,#1095,.T.); +#13787=EDGE_CURVE('',#17607,#18087,#1096,.T.); +#13788=EDGE_CURVE('',#18088,#18087,#21771,.T.); +#13789=EDGE_CURVE('',#18088,#17608,#1097,.T.); +#13790=EDGE_CURVE('',#17599,#18089,#1098,.T.); +#13791=EDGE_CURVE('',#18090,#18089,#21772,.T.); +#13792=EDGE_CURVE('',#18090,#17600,#1099,.T.); +#13793=EDGE_CURVE('',#17591,#18091,#1100,.T.); +#13794=EDGE_CURVE('',#18092,#18091,#21773,.T.); +#13795=EDGE_CURVE('',#18092,#17592,#1101,.T.); +#13796=EDGE_CURVE('',#17583,#18093,#1102,.T.); +#13797=EDGE_CURVE('',#18094,#18093,#21774,.T.); +#13798=EDGE_CURVE('',#18094,#17584,#1103,.T.); +#13799=EDGE_CURVE('',#17575,#18095,#1104,.T.); +#13800=EDGE_CURVE('',#18096,#18095,#21775,.T.); +#13801=EDGE_CURVE('',#18096,#17576,#1105,.T.); +#13802=EDGE_CURVE('',#17567,#18097,#1106,.T.); +#13803=EDGE_CURVE('',#18098,#18097,#21776,.T.); +#13804=EDGE_CURVE('',#18098,#17568,#1107,.T.); +#13805=EDGE_CURVE('',#17559,#18099,#1108,.T.); +#13806=EDGE_CURVE('',#18100,#18099,#21777,.T.); +#13807=EDGE_CURVE('',#18100,#17560,#1109,.T.); +#13808=EDGE_CURVE('',#17551,#18101,#1110,.T.); +#13809=EDGE_CURVE('',#18102,#18101,#21778,.T.); +#13810=EDGE_CURVE('',#18102,#17552,#1111,.T.); +#13811=EDGE_CURVE('',#17543,#18103,#1112,.T.); +#13812=EDGE_CURVE('',#18104,#18103,#21779,.T.); +#13813=EDGE_CURVE('',#18104,#17544,#1113,.T.); +#13814=EDGE_CURVE('',#17535,#18105,#1114,.T.); +#13815=EDGE_CURVE('',#18106,#18105,#21780,.T.); +#13816=EDGE_CURVE('',#18106,#17536,#1115,.T.); +#13817=EDGE_CURVE('',#17527,#18107,#1116,.T.); +#13818=EDGE_CURVE('',#18108,#18107,#21781,.T.); +#13819=EDGE_CURVE('',#18108,#17528,#1117,.T.); +#13820=EDGE_CURVE('',#17519,#18109,#1118,.T.); +#13821=EDGE_CURVE('',#18110,#18109,#21782,.T.); +#13822=EDGE_CURVE('',#18110,#17520,#1119,.T.); +#13823=EDGE_CURVE('',#18111,#18112,#21783,.T.); +#13824=EDGE_CURVE('',#18111,#18074,#21784,.T.); +#13825=EDGE_CURVE('',#18073,#18112,#21785,.T.); +#13826=EDGE_CURVE('',#18113,#18114,#21786,.T.); +#13827=EDGE_CURVE('',#18113,#18076,#21787,.T.); +#13828=EDGE_CURVE('',#18075,#18114,#21788,.T.); +#13829=EDGE_CURVE('',#18115,#18116,#21789,.T.); +#13830=EDGE_CURVE('',#18115,#18078,#21790,.T.); +#13831=EDGE_CURVE('',#18077,#18116,#21791,.T.); +#13832=EDGE_CURVE('',#18117,#18118,#21792,.T.); +#13833=EDGE_CURVE('',#18117,#18080,#21793,.T.); +#13834=EDGE_CURVE('',#18079,#18118,#21794,.T.); +#13835=EDGE_CURVE('',#18119,#18120,#21795,.T.); +#13836=EDGE_CURVE('',#18119,#18082,#21796,.T.); +#13837=EDGE_CURVE('',#18081,#18120,#21797,.T.); +#13838=EDGE_CURVE('',#18121,#18122,#21798,.T.); +#13839=EDGE_CURVE('',#18121,#18084,#21799,.T.); +#13840=EDGE_CURVE('',#18083,#18122,#21800,.T.); +#13841=EDGE_CURVE('',#18123,#18124,#21801,.T.); +#13842=EDGE_CURVE('',#18123,#18086,#21802,.T.); +#13843=EDGE_CURVE('',#18085,#18124,#21803,.T.); +#13844=EDGE_CURVE('',#18125,#18126,#21804,.T.); +#13845=EDGE_CURVE('',#18125,#18088,#21805,.T.); +#13846=EDGE_CURVE('',#18087,#18126,#21806,.T.); +#13847=EDGE_CURVE('',#18127,#18128,#21807,.T.); +#13848=EDGE_CURVE('',#18127,#18090,#21808,.T.); +#13849=EDGE_CURVE('',#18089,#18128,#21809,.T.); +#13850=EDGE_CURVE('',#18129,#18130,#21810,.T.); +#13851=EDGE_CURVE('',#18129,#18092,#21811,.T.); +#13852=EDGE_CURVE('',#18091,#18130,#21812,.T.); +#13853=EDGE_CURVE('',#18131,#18132,#21813,.T.); +#13854=EDGE_CURVE('',#18131,#18094,#21814,.T.); +#13855=EDGE_CURVE('',#18093,#18132,#21815,.T.); +#13856=EDGE_CURVE('',#18133,#18134,#21816,.T.); +#13857=EDGE_CURVE('',#18133,#18096,#21817,.T.); +#13858=EDGE_CURVE('',#18095,#18134,#21818,.T.); +#13859=EDGE_CURVE('',#18135,#18136,#21819,.T.); +#13860=EDGE_CURVE('',#18135,#18098,#21820,.T.); +#13861=EDGE_CURVE('',#18097,#18136,#21821,.T.); +#13862=EDGE_CURVE('',#18137,#18138,#21822,.T.); +#13863=EDGE_CURVE('',#18137,#18100,#21823,.T.); +#13864=EDGE_CURVE('',#18099,#18138,#21824,.T.); +#13865=EDGE_CURVE('',#18139,#18140,#21825,.T.); +#13866=EDGE_CURVE('',#18139,#18102,#21826,.T.); +#13867=EDGE_CURVE('',#18101,#18140,#21827,.T.); +#13868=EDGE_CURVE('',#18141,#18142,#21828,.T.); +#13869=EDGE_CURVE('',#18141,#18104,#21829,.T.); +#13870=EDGE_CURVE('',#18103,#18142,#21830,.T.); +#13871=EDGE_CURVE('',#18143,#18144,#21831,.T.); +#13872=EDGE_CURVE('',#18143,#18106,#21832,.T.); +#13873=EDGE_CURVE('',#18105,#18144,#21833,.T.); +#13874=EDGE_CURVE('',#18145,#18146,#21834,.T.); +#13875=EDGE_CURVE('',#18145,#18108,#21835,.T.); +#13876=EDGE_CURVE('',#18107,#18146,#21836,.T.); +#13877=EDGE_CURVE('',#18147,#18148,#21837,.T.); +#13878=EDGE_CURVE('',#18147,#18110,#21838,.T.); +#13879=EDGE_CURVE('',#18109,#18148,#21839,.T.); +#13880=EDGE_CURVE('',#18111,#17347,#1120,.T.); +#13881=EDGE_CURVE('',#17348,#18112,#1121,.T.); +#13882=EDGE_CURVE('',#18113,#17355,#1122,.T.); +#13883=EDGE_CURVE('',#17356,#18114,#1123,.T.); +#13884=EDGE_CURVE('',#18115,#17363,#1124,.T.); +#13885=EDGE_CURVE('',#17364,#18116,#1125,.T.); +#13886=EDGE_CURVE('',#18117,#17371,#1126,.T.); +#13887=EDGE_CURVE('',#17372,#18118,#1127,.T.); +#13888=EDGE_CURVE('',#18119,#17379,#1128,.T.); +#13889=EDGE_CURVE('',#17380,#18120,#1129,.T.); +#13890=EDGE_CURVE('',#18121,#17387,#1130,.T.); +#13891=EDGE_CURVE('',#17388,#18122,#1131,.T.); +#13892=EDGE_CURVE('',#18123,#17395,#1132,.T.); +#13893=EDGE_CURVE('',#17396,#18124,#1133,.T.); +#13894=EDGE_CURVE('',#18125,#17403,#1134,.T.); +#13895=EDGE_CURVE('',#17404,#18126,#1135,.T.); +#13896=EDGE_CURVE('',#18127,#17411,#1136,.T.); +#13897=EDGE_CURVE('',#17412,#18128,#1137,.T.); +#13898=EDGE_CURVE('',#18129,#17419,#1138,.T.); +#13899=EDGE_CURVE('',#17420,#18130,#1139,.T.); +#13900=EDGE_CURVE('',#18131,#17427,#1140,.T.); +#13901=EDGE_CURVE('',#17428,#18132,#1141,.T.); +#13902=EDGE_CURVE('',#18133,#17435,#1142,.T.); +#13903=EDGE_CURVE('',#17436,#18134,#1143,.T.); +#13904=EDGE_CURVE('',#18135,#17443,#1144,.T.); +#13905=EDGE_CURVE('',#17444,#18136,#1145,.T.); +#13906=EDGE_CURVE('',#18137,#17451,#1146,.T.); +#13907=EDGE_CURVE('',#17452,#18138,#1147,.T.); +#13908=EDGE_CURVE('',#18139,#17459,#1148,.T.); +#13909=EDGE_CURVE('',#17460,#18140,#1149,.T.); +#13910=EDGE_CURVE('',#18141,#17467,#1150,.T.); +#13911=EDGE_CURVE('',#17468,#18142,#1151,.T.); +#13912=EDGE_CURVE('',#18143,#17475,#1152,.T.); +#13913=EDGE_CURVE('',#17476,#18144,#1153,.T.); +#13914=EDGE_CURVE('',#18145,#17483,#1154,.T.); +#13915=EDGE_CURVE('',#17484,#18146,#1155,.T.); +#13916=EDGE_CURVE('',#18147,#17491,#1156,.T.); +#13917=EDGE_CURVE('',#17492,#18148,#1157,.T.); +#13918=EDGE_CURVE('',#17992,#17999,#1158,.T.); +#13919=EDGE_CURVE('',#18000,#17991,#1159,.T.); +#13920=EDGE_CURVE('',#17984,#18003,#1160,.T.); +#13921=EDGE_CURVE('',#18004,#17983,#1161,.T.); +#13922=EDGE_CURVE('',#17976,#18007,#1162,.T.); +#13923=EDGE_CURVE('',#18008,#17975,#1163,.T.); +#13924=EDGE_CURVE('',#17968,#18011,#1164,.T.); +#13925=EDGE_CURVE('',#18012,#17967,#1165,.T.); +#13926=EDGE_CURVE('',#17960,#18015,#1166,.T.); +#13927=EDGE_CURVE('',#18016,#17959,#1167,.T.); +#13928=EDGE_CURVE('',#17952,#18019,#1168,.T.); +#13929=EDGE_CURVE('',#18020,#17951,#1169,.T.); +#13930=EDGE_CURVE('',#17944,#18023,#1170,.T.); +#13931=EDGE_CURVE('',#18024,#17943,#1171,.T.); +#13932=EDGE_CURVE('',#17936,#18027,#1172,.T.); +#13933=EDGE_CURVE('',#18028,#17935,#1173,.T.); +#13934=EDGE_CURVE('',#17928,#18031,#1174,.T.); +#13935=EDGE_CURVE('',#18032,#17927,#1175,.T.); +#13936=EDGE_CURVE('',#17920,#18035,#1176,.T.); +#13937=EDGE_CURVE('',#18036,#17919,#1177,.T.); +#13938=EDGE_CURVE('',#17912,#18039,#1178,.T.); +#13939=EDGE_CURVE('',#18040,#17911,#1179,.T.); +#13940=EDGE_CURVE('',#17904,#18043,#1180,.T.); +#13941=EDGE_CURVE('',#18044,#17903,#1181,.T.); +#13942=EDGE_CURVE('',#17896,#18047,#1182,.T.); +#13943=EDGE_CURVE('',#18048,#17895,#1183,.T.); +#13944=EDGE_CURVE('',#17888,#18051,#1184,.T.); +#13945=EDGE_CURVE('',#18052,#17887,#1185,.T.); +#13946=EDGE_CURVE('',#17880,#18055,#1186,.T.); +#13947=EDGE_CURVE('',#18056,#17879,#1187,.T.); +#13948=EDGE_CURVE('',#17872,#18059,#1188,.T.); +#13949=EDGE_CURVE('',#18060,#17871,#1189,.T.); +#13950=EDGE_CURVE('',#17864,#18063,#1190,.T.); +#13951=EDGE_CURVE('',#18064,#17863,#1191,.T.); +#13952=EDGE_CURVE('',#17856,#18067,#1192,.T.); +#13953=EDGE_CURVE('',#18068,#17855,#1193,.T.); +#13954=EDGE_CURVE('',#17848,#18071,#1194,.T.); +#13955=EDGE_CURVE('',#18072,#17847,#1195,.T.); +#13956=EDGE_CURVE('',#18149,#18150,#21840,.T.); +#13957=EDGE_CURVE('',#18149,#18151,#21841,.T.); +#13958=EDGE_CURVE('',#18151,#18152,#21842,.T.); +#13959=EDGE_CURVE('',#18152,#18150,#21843,.T.); +#13960=EDGE_CURVE('',#18150,#17828,#1196,.T.); +#13961=EDGE_CURVE('',#17827,#18149,#1197,.T.); +#13962=EDGE_CURVE('',#17511,#18153,#1198,.T.); +#13963=EDGE_CURVE('',#18154,#18153,#21844,.T.); +#13964=EDGE_CURVE('',#18154,#17512,#1199,.T.); +#13965=EDGE_CURVE('',#18155,#18156,#21845,.T.); +#13966=EDGE_CURVE('',#18155,#18154,#21846,.T.); +#13967=EDGE_CURVE('',#18153,#18156,#21847,.T.); +#13968=EDGE_CURVE('',#18155,#17499,#1200,.T.); +#13969=EDGE_CURVE('',#17500,#18156,#1201,.T.); +#13970=EDGE_CURVE('',#17840,#18151,#1202,.T.); +#13971=EDGE_CURVE('',#18152,#17839,#1203,.T.); +#13972=EDGE_CURVE('',#17838,#17829,#21848,.T.); +#13973=EDGE_CURVE('',#17510,#17501,#21849,.T.); +#13974=EDGE_CURVE('',#17993,#17674,#21850,.T.); +#13975=EDGE_CURVE('',#17665,#17346,#21851,.T.); +#13976=EDGE_CURVE('',#17841,#17826,#21852,.T.); +#13977=EDGE_CURVE('',#17846,#17821,#21853,.T.); +#13978=EDGE_CURVE('',#17849,#17818,#21854,.T.); +#13979=EDGE_CURVE('',#17854,#17813,#21855,.T.); +#13980=EDGE_CURVE('',#17857,#17810,#21856,.T.); +#13981=EDGE_CURVE('',#17862,#17805,#21857,.T.); +#13982=EDGE_CURVE('',#17865,#17802,#21858,.T.); +#13983=EDGE_CURVE('',#17870,#17797,#21859,.T.); +#13984=EDGE_CURVE('',#17873,#17794,#21860,.T.); +#13985=EDGE_CURVE('',#17878,#17789,#21861,.T.); +#13986=EDGE_CURVE('',#17881,#17786,#21862,.T.); +#13987=EDGE_CURVE('',#17886,#17781,#21863,.T.); +#13988=EDGE_CURVE('',#17889,#17778,#21864,.T.); +#13989=EDGE_CURVE('',#17894,#17773,#21865,.T.); +#13990=EDGE_CURVE('',#17897,#17770,#21866,.T.); +#13991=EDGE_CURVE('',#17902,#17765,#21867,.T.); +#13992=EDGE_CURVE('',#17905,#17762,#21868,.T.); +#13993=EDGE_CURVE('',#17910,#17757,#21869,.T.); +#13994=EDGE_CURVE('',#17913,#17754,#21870,.T.); +#13995=EDGE_CURVE('',#17918,#17749,#21871,.T.); +#13996=EDGE_CURVE('',#17921,#17746,#21872,.T.); +#13997=EDGE_CURVE('',#17926,#17741,#21873,.T.); +#13998=EDGE_CURVE('',#17929,#17738,#21874,.T.); +#13999=EDGE_CURVE('',#17934,#17733,#21875,.T.); +#14000=EDGE_CURVE('',#17937,#17730,#21876,.T.); +#14001=EDGE_CURVE('',#17942,#17725,#21877,.T.); +#14002=EDGE_CURVE('',#17945,#17722,#21878,.T.); +#14003=EDGE_CURVE('',#17950,#17717,#21879,.T.); +#14004=EDGE_CURVE('',#17953,#17714,#21880,.T.); +#14005=EDGE_CURVE('',#17958,#17709,#21881,.T.); +#14006=EDGE_CURVE('',#17961,#17706,#21882,.T.); +#14007=EDGE_CURVE('',#17966,#17701,#21883,.T.); +#14008=EDGE_CURVE('',#17969,#17698,#21884,.T.); +#14009=EDGE_CURVE('',#17974,#17693,#21885,.T.); +#14010=EDGE_CURVE('',#17977,#17690,#21886,.T.); +#14011=EDGE_CURVE('',#17982,#17685,#21887,.T.); +#14012=EDGE_CURVE('',#17985,#17682,#21888,.T.); +#14013=EDGE_CURVE('',#17990,#17677,#21889,.T.); +#14014=EDGE_CURVE('',#17513,#17498,#21890,.T.); +#14015=EDGE_CURVE('',#17518,#17493,#21891,.T.); +#14016=EDGE_CURVE('',#17521,#17490,#21892,.T.); +#14017=EDGE_CURVE('',#17526,#17485,#21893,.T.); +#14018=EDGE_CURVE('',#17529,#17482,#21894,.T.); +#14019=EDGE_CURVE('',#17534,#17477,#21895,.T.); +#14020=EDGE_CURVE('',#17537,#17474,#21896,.T.); +#14021=EDGE_CURVE('',#17542,#17469,#21897,.T.); +#14022=EDGE_CURVE('',#17545,#17466,#21898,.T.); +#14023=EDGE_CURVE('',#17550,#17461,#21899,.T.); +#14024=EDGE_CURVE('',#17553,#17458,#21900,.T.); +#14025=EDGE_CURVE('',#17558,#17453,#21901,.T.); +#14026=EDGE_CURVE('',#17561,#17450,#21902,.T.); +#14027=EDGE_CURVE('',#17566,#17445,#21903,.T.); +#14028=EDGE_CURVE('',#17569,#17442,#21904,.T.); +#14029=EDGE_CURVE('',#17574,#17437,#21905,.T.); +#14030=EDGE_CURVE('',#17577,#17434,#21906,.T.); +#14031=EDGE_CURVE('',#17582,#17429,#21907,.T.); +#14032=EDGE_CURVE('',#17585,#17426,#21908,.T.); +#14033=EDGE_CURVE('',#17590,#17421,#21909,.T.); +#14034=EDGE_CURVE('',#17593,#17418,#21910,.T.); +#14035=EDGE_CURVE('',#17598,#17413,#21911,.T.); +#14036=EDGE_CURVE('',#17601,#17410,#21912,.T.); +#14037=EDGE_CURVE('',#17606,#17405,#21913,.T.); +#14038=EDGE_CURVE('',#17609,#17402,#21914,.T.); +#14039=EDGE_CURVE('',#17614,#17397,#21915,.T.); +#14040=EDGE_CURVE('',#17617,#17394,#21916,.T.); +#14041=EDGE_CURVE('',#17622,#17389,#21917,.T.); +#14042=EDGE_CURVE('',#17625,#17386,#21918,.T.); +#14043=EDGE_CURVE('',#17630,#17381,#21919,.T.); +#14044=EDGE_CURVE('',#17633,#17378,#21920,.T.); +#14045=EDGE_CURVE('',#17638,#17373,#21921,.T.); +#14046=EDGE_CURVE('',#17641,#17370,#21922,.T.); +#14047=EDGE_CURVE('',#17646,#17365,#21923,.T.); +#14048=EDGE_CURVE('',#17649,#17362,#21924,.T.); +#14049=EDGE_CURVE('',#17654,#17357,#21925,.T.); +#14050=EDGE_CURVE('',#17662,#17349,#21926,.T.); +#14051=EDGE_CURVE('',#17657,#17354,#21927,.T.); +#14052=EDGE_CURVE('',#18157,#18158,#21928,.T.); +#14053=EDGE_CURVE('',#18159,#18157,#21929,.T.); +#14054=EDGE_CURVE('',#18160,#18159,#21930,.T.); +#14055=EDGE_CURVE('',#18160,#18161,#21931,.T.); +#14056=EDGE_CURVE('',#18161,#18162,#1204,.F.); +#14057=EDGE_CURVE('',#18162,#18163,#21932,.T.); +#14058=EDGE_CURVE('',#18164,#18163,#1205,.F.); +#14059=EDGE_CURVE('',#18164,#18165,#21933,.T.); +#14060=EDGE_CURVE('',#18165,#18166,#1206,.F.); +#14061=EDGE_CURVE('',#18167,#18166,#21934,.T.); +#14062=EDGE_CURVE('',#18167,#18168,#1207,.F.); +#14063=EDGE_CURVE('',#18168,#18169,#21935,.T.); +#14064=EDGE_CURVE('',#18170,#18169,#1208,.F.); +#14065=EDGE_CURVE('',#18170,#18171,#21936,.T.); +#14066=EDGE_CURVE('',#18171,#18172,#1209,.F.); +#14067=EDGE_CURVE('',#18172,#18173,#21937,.T.); +#14068=EDGE_CURVE('',#18173,#18174,#21938,.T.); +#14069=EDGE_CURVE('',#18174,#18175,#21939,.T.); +#14070=EDGE_CURVE('',#18175,#18176,#1210,.F.); +#14071=EDGE_CURVE('',#18176,#18177,#21940,.T.); +#14072=EDGE_CURVE('',#18178,#18177,#1211,.F.); +#14073=EDGE_CURVE('',#18178,#18179,#21941,.T.); +#14074=EDGE_CURVE('',#18179,#18180,#1212,.F.); +#14075=EDGE_CURVE('',#18181,#18180,#21942,.T.); +#14076=EDGE_CURVE('',#18181,#18182,#1213,.F.); +#14077=EDGE_CURVE('',#18182,#18183,#21943,.T.); +#14078=EDGE_CURVE('',#18184,#18183,#1214,.F.); +#14079=EDGE_CURVE('',#18184,#18185,#21944,.T.); +#14080=EDGE_CURVE('',#18185,#18186,#1215,.F.); +#14081=EDGE_CURVE('',#18186,#18187,#21945,.T.); +#14082=EDGE_CURVE('',#18187,#18188,#21946,.T.); +#14083=EDGE_CURVE('',#18188,#18189,#21947,.T.); +#14084=EDGE_CURVE('',#18189,#18190,#1216,.F.); +#14085=EDGE_CURVE('',#18190,#18191,#21948,.T.); +#14086=EDGE_CURVE('',#18192,#18191,#1217,.F.); +#14087=EDGE_CURVE('',#18192,#18193,#21949,.T.); +#14088=EDGE_CURVE('',#18193,#18194,#1218,.F.); +#14089=EDGE_CURVE('',#18195,#18194,#21950,.T.); +#14090=EDGE_CURVE('',#18195,#18196,#1219,.F.); +#14091=EDGE_CURVE('',#18196,#18197,#21951,.T.); +#14092=EDGE_CURVE('',#18198,#18197,#1220,.F.); +#14093=EDGE_CURVE('',#18198,#18199,#21952,.T.); +#14094=EDGE_CURVE('',#18199,#18200,#1221,.F.); +#14095=EDGE_CURVE('',#18200,#18201,#21953,.T.); +#14096=EDGE_CURVE('',#18201,#18202,#21954,.T.); +#14097=EDGE_CURVE('',#18202,#18203,#21955,.T.); +#14098=EDGE_CURVE('',#18203,#18204,#1222,.F.); +#14099=EDGE_CURVE('',#18204,#18205,#21956,.T.); +#14100=EDGE_CURVE('',#18206,#18205,#1223,.F.); +#14101=EDGE_CURVE('',#18206,#18207,#21957,.T.); +#14102=EDGE_CURVE('',#18207,#18208,#1224,.F.); +#14103=EDGE_CURVE('',#18209,#18208,#21958,.T.); +#14104=EDGE_CURVE('',#18209,#18210,#1225,.F.); +#14105=EDGE_CURVE('',#18210,#18211,#21959,.T.); +#14106=EDGE_CURVE('',#18212,#18211,#1226,.F.); +#14107=EDGE_CURVE('',#18212,#18213,#21960,.T.); +#14108=EDGE_CURVE('',#18213,#18214,#1227,.F.); +#14109=EDGE_CURVE('',#18214,#18215,#21961,.T.); +#14110=EDGE_CURVE('',#18215,#18216,#21962,.T.); +#14111=EDGE_CURVE('',#18216,#18217,#21963,.T.); +#14112=EDGE_CURVE('',#18217,#18218,#1228,.F.); +#14113=EDGE_CURVE('',#18218,#18219,#21964,.T.); +#14114=EDGE_CURVE('',#18220,#18219,#1229,.F.); +#14115=EDGE_CURVE('',#18220,#18221,#21965,.T.); +#14116=EDGE_CURVE('',#18221,#18222,#1230,.F.); +#14117=EDGE_CURVE('',#18223,#18222,#21966,.T.); +#14118=EDGE_CURVE('',#18223,#18224,#1231,.F.); +#14119=EDGE_CURVE('',#18224,#18225,#21967,.T.); +#14120=EDGE_CURVE('',#18226,#18225,#1232,.F.); +#14121=EDGE_CURVE('',#18226,#18227,#21968,.T.); +#14122=EDGE_CURVE('',#18227,#18228,#1233,.F.); +#14123=EDGE_CURVE('',#18228,#18229,#21969,.T.); +#14124=EDGE_CURVE('',#18229,#18230,#21970,.T.); +#14125=EDGE_CURVE('',#18230,#18231,#21971,.T.); +#14126=EDGE_CURVE('',#18231,#18232,#1234,.F.); +#14127=EDGE_CURVE('',#18232,#18233,#21972,.T.); +#14128=EDGE_CURVE('',#18234,#18233,#1235,.F.); +#14129=EDGE_CURVE('',#18234,#18235,#21973,.T.); +#14130=EDGE_CURVE('',#18235,#18236,#1236,.F.); +#14131=EDGE_CURVE('',#18237,#18236,#21974,.T.); +#14132=EDGE_CURVE('',#18237,#18238,#1237,.F.); +#14133=EDGE_CURVE('',#18238,#18239,#21975,.T.); +#14134=EDGE_CURVE('',#18240,#18239,#1238,.F.); +#14135=EDGE_CURVE('',#18240,#18241,#21976,.T.); +#14136=EDGE_CURVE('',#18241,#18242,#1239,.F.); +#14137=EDGE_CURVE('',#18242,#18243,#21977,.T.); +#14138=EDGE_CURVE('',#18243,#18244,#21978,.T.); +#14139=EDGE_CURVE('',#18244,#18245,#21979,.T.); +#14140=EDGE_CURVE('',#18245,#18246,#1240,.F.); +#14141=EDGE_CURVE('',#18246,#18247,#21980,.T.); +#14142=EDGE_CURVE('',#18248,#18247,#1241,.F.); +#14143=EDGE_CURVE('',#18248,#18249,#21981,.T.); +#14144=EDGE_CURVE('',#18249,#18250,#1242,.F.); +#14145=EDGE_CURVE('',#18251,#18250,#21982,.T.); +#14146=EDGE_CURVE('',#18251,#18252,#1243,.F.); +#14147=EDGE_CURVE('',#18252,#18253,#21983,.T.); +#14148=EDGE_CURVE('',#18254,#18253,#1244,.F.); +#14149=EDGE_CURVE('',#18254,#18255,#21984,.T.); +#14150=EDGE_CURVE('',#18255,#18256,#1245,.F.); +#14151=EDGE_CURVE('',#18256,#18257,#21985,.T.); +#14152=EDGE_CURVE('',#18257,#18258,#21986,.T.); +#14153=EDGE_CURVE('',#18258,#18259,#21987,.T.); +#14154=EDGE_CURVE('',#18259,#18260,#1246,.F.); +#14155=EDGE_CURVE('',#18260,#18261,#21988,.T.); +#14156=EDGE_CURVE('',#18262,#18261,#1247,.F.); +#14157=EDGE_CURVE('',#18262,#18263,#21989,.T.); +#14158=EDGE_CURVE('',#18263,#18264,#1248,.F.); +#14159=EDGE_CURVE('',#18265,#18264,#21990,.T.); +#14160=EDGE_CURVE('',#18265,#18266,#1249,.F.); +#14161=EDGE_CURVE('',#18266,#18267,#21991,.T.); +#14162=EDGE_CURVE('',#18268,#18267,#1250,.F.); +#14163=EDGE_CURVE('',#18268,#18269,#21992,.T.); +#14164=EDGE_CURVE('',#18269,#18270,#1251,.F.); +#14165=EDGE_CURVE('',#18270,#18271,#21993,.T.); +#14166=EDGE_CURVE('',#18271,#18272,#21994,.T.); +#14167=EDGE_CURVE('',#18272,#18273,#21995,.T.); +#14168=EDGE_CURVE('',#18273,#18274,#1252,.F.); +#14169=EDGE_CURVE('',#18274,#18275,#21996,.T.); +#14170=EDGE_CURVE('',#18276,#18275,#1253,.F.); +#14171=EDGE_CURVE('',#18276,#18277,#21997,.T.); +#14172=EDGE_CURVE('',#18277,#18278,#1254,.F.); +#14173=EDGE_CURVE('',#18279,#18278,#21998,.T.); +#14174=EDGE_CURVE('',#18279,#18280,#1255,.F.); +#14175=EDGE_CURVE('',#18280,#18281,#21999,.T.); +#14176=EDGE_CURVE('',#18282,#18281,#1256,.F.); +#14177=EDGE_CURVE('',#18282,#18283,#22000,.T.); +#14178=EDGE_CURVE('',#18283,#18284,#1257,.F.); +#14179=EDGE_CURVE('',#18284,#18285,#22001,.T.); +#14180=EDGE_CURVE('',#18285,#18286,#22002,.T.); +#14181=EDGE_CURVE('',#18286,#18287,#22003,.T.); +#14182=EDGE_CURVE('',#18287,#18288,#1258,.F.); +#14183=EDGE_CURVE('',#18288,#18289,#22004,.T.); +#14184=EDGE_CURVE('',#18290,#18289,#1259,.F.); +#14185=EDGE_CURVE('',#18290,#18291,#22005,.T.); +#14186=EDGE_CURVE('',#18291,#18292,#1260,.F.); +#14187=EDGE_CURVE('',#18293,#18292,#22006,.T.); +#14188=EDGE_CURVE('',#18293,#18294,#1261,.F.); +#14189=EDGE_CURVE('',#18294,#18295,#22007,.T.); +#14190=EDGE_CURVE('',#18296,#18295,#1262,.F.); +#14191=EDGE_CURVE('',#18296,#18297,#22008,.T.); +#14192=EDGE_CURVE('',#18297,#18298,#1263,.F.); +#14193=EDGE_CURVE('',#18298,#18299,#22009,.T.); +#14194=EDGE_CURVE('',#18299,#18300,#22010,.T.); +#14195=EDGE_CURVE('',#18300,#18301,#22011,.T.); +#14196=EDGE_CURVE('',#18301,#18302,#1264,.F.); +#14197=EDGE_CURVE('',#18302,#18303,#22012,.T.); +#14198=EDGE_CURVE('',#18304,#18303,#1265,.F.); +#14199=EDGE_CURVE('',#18304,#18305,#22013,.T.); +#14200=EDGE_CURVE('',#18305,#18306,#1266,.F.); +#14201=EDGE_CURVE('',#18307,#18306,#22014,.T.); +#14202=EDGE_CURVE('',#18307,#18308,#1267,.F.); +#14203=EDGE_CURVE('',#18308,#18309,#22015,.T.); +#14204=EDGE_CURVE('',#18310,#18309,#1268,.F.); +#14205=EDGE_CURVE('',#18310,#18311,#22016,.T.); +#14206=EDGE_CURVE('',#18311,#18312,#1269,.F.); +#14207=EDGE_CURVE('',#18312,#18313,#22017,.T.); +#14208=EDGE_CURVE('',#18313,#18314,#22018,.T.); +#14209=EDGE_CURVE('',#18314,#18315,#22019,.T.); +#14210=EDGE_CURVE('',#18315,#18316,#1270,.F.); +#14211=EDGE_CURVE('',#18316,#18317,#22020,.T.); +#14212=EDGE_CURVE('',#18318,#18317,#1271,.F.); +#14213=EDGE_CURVE('',#18318,#18319,#22021,.T.); +#14214=EDGE_CURVE('',#18319,#18320,#1272,.F.); +#14215=EDGE_CURVE('',#18321,#18320,#22022,.T.); +#14216=EDGE_CURVE('',#18321,#18322,#1273,.F.); +#14217=EDGE_CURVE('',#18322,#18323,#22023,.T.); +#14218=EDGE_CURVE('',#18324,#18323,#1274,.F.); +#14219=EDGE_CURVE('',#18324,#18325,#22024,.T.); +#14220=EDGE_CURVE('',#18325,#18326,#1275,.F.); +#14221=EDGE_CURVE('',#18326,#18327,#22025,.T.); +#14222=EDGE_CURVE('',#18327,#18328,#22026,.T.); +#14223=EDGE_CURVE('',#18328,#18329,#22027,.T.); +#14224=EDGE_CURVE('',#18329,#18330,#1276,.F.); +#14225=EDGE_CURVE('',#18330,#18331,#22028,.T.); +#14226=EDGE_CURVE('',#18332,#18331,#1277,.F.); +#14227=EDGE_CURVE('',#18332,#18333,#22029,.T.); +#14228=EDGE_CURVE('',#18333,#18334,#1278,.F.); +#14229=EDGE_CURVE('',#18335,#18334,#22030,.T.); +#14230=EDGE_CURVE('',#18335,#18336,#1279,.F.); +#14231=EDGE_CURVE('',#18336,#18337,#22031,.T.); +#14232=EDGE_CURVE('',#18338,#18337,#1280,.F.); +#14233=EDGE_CURVE('',#18338,#18339,#22032,.T.); +#14234=EDGE_CURVE('',#18339,#18340,#1281,.F.); +#14235=EDGE_CURVE('',#18340,#18341,#22033,.T.); +#14236=EDGE_CURVE('',#18341,#18342,#22034,.T.); +#14237=EDGE_CURVE('',#18342,#18343,#22035,.T.); +#14238=EDGE_CURVE('',#18343,#18344,#1282,.F.); +#14239=EDGE_CURVE('',#18344,#18345,#22036,.T.); +#14240=EDGE_CURVE('',#18346,#18345,#1283,.F.); +#14241=EDGE_CURVE('',#18346,#18347,#22037,.T.); +#14242=EDGE_CURVE('',#18347,#18348,#1284,.F.); +#14243=EDGE_CURVE('',#18349,#18348,#22038,.T.); +#14244=EDGE_CURVE('',#18349,#18350,#1285,.F.); +#14245=EDGE_CURVE('',#18350,#18351,#22039,.T.); +#14246=EDGE_CURVE('',#18352,#18351,#1286,.F.); +#14247=EDGE_CURVE('',#18352,#18353,#22040,.T.); +#14248=EDGE_CURVE('',#18353,#18354,#1287,.F.); +#14249=EDGE_CURVE('',#18354,#18355,#22041,.T.); +#14250=EDGE_CURVE('',#18355,#18356,#22042,.T.); +#14251=EDGE_CURVE('',#18356,#18357,#22043,.T.); +#14252=EDGE_CURVE('',#18357,#18358,#1288,.F.); +#14253=EDGE_CURVE('',#18358,#18359,#22044,.T.); +#14254=EDGE_CURVE('',#18360,#18359,#1289,.F.); +#14255=EDGE_CURVE('',#18360,#18361,#22045,.T.); +#14256=EDGE_CURVE('',#18361,#18362,#1290,.F.); +#14257=EDGE_CURVE('',#18363,#18362,#22046,.T.); +#14258=EDGE_CURVE('',#18363,#18364,#1291,.F.); +#14259=EDGE_CURVE('',#18364,#18365,#22047,.T.); +#14260=EDGE_CURVE('',#18366,#18365,#1292,.F.); +#14261=EDGE_CURVE('',#18366,#18367,#22048,.T.); +#14262=EDGE_CURVE('',#18367,#18368,#1293,.F.); +#14263=EDGE_CURVE('',#18368,#18369,#22049,.T.); +#14264=EDGE_CURVE('',#18369,#18370,#22050,.T.); +#14265=EDGE_CURVE('',#18370,#18371,#22051,.T.); +#14266=EDGE_CURVE('',#18371,#18372,#1294,.F.); +#14267=EDGE_CURVE('',#18372,#18373,#22052,.T.); +#14268=EDGE_CURVE('',#18374,#18373,#1295,.F.); +#14269=EDGE_CURVE('',#18374,#18375,#22053,.T.); +#14270=EDGE_CURVE('',#18375,#18376,#1296,.F.); +#14271=EDGE_CURVE('',#18377,#18376,#22054,.T.); +#14272=EDGE_CURVE('',#18377,#18378,#1297,.F.); +#14273=EDGE_CURVE('',#18378,#18379,#22055,.T.); +#14274=EDGE_CURVE('',#18380,#18379,#1298,.F.); +#14275=EDGE_CURVE('',#18380,#18381,#22056,.T.); +#14276=EDGE_CURVE('',#18381,#18382,#1299,.F.); +#14277=EDGE_CURVE('',#18382,#18383,#22057,.T.); +#14278=EDGE_CURVE('',#18383,#18384,#22058,.T.); +#14279=EDGE_CURVE('',#18384,#18385,#22059,.T.); +#14280=EDGE_CURVE('',#18385,#18386,#1300,.F.); +#14281=EDGE_CURVE('',#18386,#18387,#22060,.T.); +#14282=EDGE_CURVE('',#18388,#18387,#1301,.F.); +#14283=EDGE_CURVE('',#18388,#18389,#22061,.T.); +#14284=EDGE_CURVE('',#18389,#18390,#1302,.F.); +#14285=EDGE_CURVE('',#18391,#18390,#22062,.T.); +#14286=EDGE_CURVE('',#18391,#18392,#1303,.F.); +#14287=EDGE_CURVE('',#18392,#18393,#22063,.T.); +#14288=EDGE_CURVE('',#18394,#18393,#1304,.F.); +#14289=EDGE_CURVE('',#18394,#18395,#22064,.T.); +#14290=EDGE_CURVE('',#18395,#18396,#1305,.F.); +#14291=EDGE_CURVE('',#18396,#18397,#22065,.T.); +#14292=EDGE_CURVE('',#18397,#18398,#22066,.T.); +#14293=EDGE_CURVE('',#18398,#18399,#22067,.T.); +#14294=EDGE_CURVE('',#18399,#18400,#1306,.F.); +#14295=EDGE_CURVE('',#18400,#18401,#22068,.T.); +#14296=EDGE_CURVE('',#18402,#18401,#1307,.F.); +#14297=EDGE_CURVE('',#18402,#18403,#22069,.T.); +#14298=EDGE_CURVE('',#18403,#18404,#1308,.F.); +#14299=EDGE_CURVE('',#18405,#18404,#22070,.T.); +#14300=EDGE_CURVE('',#18405,#18406,#1309,.F.); +#14301=EDGE_CURVE('',#18406,#18407,#22071,.T.); +#14302=EDGE_CURVE('',#18408,#18407,#1310,.F.); +#14303=EDGE_CURVE('',#18408,#18409,#22072,.T.); +#14304=EDGE_CURVE('',#18409,#18410,#1311,.F.); +#14305=EDGE_CURVE('',#18410,#18411,#22073,.T.); +#14306=EDGE_CURVE('',#18411,#18412,#22074,.T.); +#14307=EDGE_CURVE('',#18412,#18413,#22075,.T.); +#14308=EDGE_CURVE('',#18413,#18414,#1312,.F.); +#14309=EDGE_CURVE('',#18414,#18415,#22076,.T.); +#14310=EDGE_CURVE('',#18416,#18415,#1313,.F.); +#14311=EDGE_CURVE('',#18416,#18417,#22077,.T.); +#14312=EDGE_CURVE('',#18417,#18418,#1314,.F.); +#14313=EDGE_CURVE('',#18419,#18418,#22078,.T.); +#14314=EDGE_CURVE('',#18419,#18420,#1315,.F.); +#14315=EDGE_CURVE('',#18420,#18421,#22079,.T.); +#14316=EDGE_CURVE('',#18422,#18421,#1316,.F.); +#14317=EDGE_CURVE('',#18422,#18423,#22080,.T.); +#14318=EDGE_CURVE('',#18423,#18424,#1317,.F.); +#14319=EDGE_CURVE('',#18424,#18425,#22081,.T.); +#14320=EDGE_CURVE('',#18425,#18426,#22082,.T.); +#14321=EDGE_CURVE('',#18426,#18427,#22083,.T.); +#14322=EDGE_CURVE('',#18427,#18428,#1318,.F.); +#14323=EDGE_CURVE('',#18428,#18429,#22084,.T.); +#14324=EDGE_CURVE('',#18430,#18429,#1319,.F.); +#14325=EDGE_CURVE('',#18430,#18431,#22085,.T.); +#14326=EDGE_CURVE('',#18431,#18432,#1320,.F.); +#14327=EDGE_CURVE('',#18433,#18432,#22086,.T.); +#14328=EDGE_CURVE('',#18433,#18434,#1321,.F.); +#14329=EDGE_CURVE('',#18434,#18435,#22087,.T.); +#14330=EDGE_CURVE('',#18436,#18435,#1322,.F.); +#14331=EDGE_CURVE('',#18436,#18437,#22088,.T.); +#14332=EDGE_CURVE('',#18437,#18438,#1323,.F.); +#14333=EDGE_CURVE('',#18439,#18438,#22089,.T.); +#14334=EDGE_CURVE('',#18440,#18439,#22090,.T.); +#14335=EDGE_CURVE('',#18440,#18158,#22091,.T.); +#14336=EDGE_CURVE('',#18441,#18442,#22092,.T.); +#14337=EDGE_CURVE('',#18443,#18441,#22093,.T.); +#14338=EDGE_CURVE('',#18443,#18444,#22094,.T.); +#14339=EDGE_CURVE('',#18445,#18444,#22095,.T.); +#14340=EDGE_CURVE('',#18445,#18446,#1324,.F.); +#14341=EDGE_CURVE('',#18446,#18447,#22096,.T.); +#14342=EDGE_CURVE('',#18448,#18447,#1325,.F.); +#14343=EDGE_CURVE('',#18448,#18449,#22097,.T.); +#14344=EDGE_CURVE('',#18449,#18450,#1326,.F.); +#14345=EDGE_CURVE('',#18450,#18451,#22098,.T.); +#14346=EDGE_CURVE('',#18451,#18452,#1327,.F.); +#14347=EDGE_CURVE('',#18452,#18453,#22099,.T.); +#14348=EDGE_CURVE('',#18454,#18453,#1328,.F.); +#14349=EDGE_CURVE('',#18454,#18455,#22100,.T.); +#14350=EDGE_CURVE('',#18455,#18456,#1329,.F.); +#14351=EDGE_CURVE('',#18456,#18457,#22101,.T.); +#14352=EDGE_CURVE('',#18457,#18458,#22102,.T.); +#14353=EDGE_CURVE('',#18458,#18459,#22103,.T.); +#14354=EDGE_CURVE('',#18459,#18460,#1330,.F.); +#14355=EDGE_CURVE('',#18460,#18461,#22104,.T.); +#14356=EDGE_CURVE('',#18462,#18461,#1331,.F.); +#14357=EDGE_CURVE('',#18462,#18463,#22105,.T.); +#14358=EDGE_CURVE('',#18463,#18464,#1332,.F.); +#14359=EDGE_CURVE('',#18464,#18465,#22106,.T.); +#14360=EDGE_CURVE('',#18465,#18466,#1333,.F.); +#14361=EDGE_CURVE('',#18466,#18467,#22107,.T.); +#14362=EDGE_CURVE('',#18468,#18467,#1334,.F.); +#14363=EDGE_CURVE('',#18468,#18469,#22108,.T.); +#14364=EDGE_CURVE('',#18469,#18470,#1335,.F.); +#14365=EDGE_CURVE('',#18470,#18471,#22109,.T.); +#14366=EDGE_CURVE('',#18471,#18472,#22110,.T.); +#14367=EDGE_CURVE('',#18472,#18473,#22111,.T.); +#14368=EDGE_CURVE('',#18473,#18474,#1336,.F.); +#14369=EDGE_CURVE('',#18474,#18475,#22112,.T.); +#14370=EDGE_CURVE('',#18476,#18475,#1337,.F.); +#14371=EDGE_CURVE('',#18476,#18477,#22113,.T.); +#14372=EDGE_CURVE('',#18477,#18478,#1338,.F.); +#14373=EDGE_CURVE('',#18478,#18479,#22114,.T.); +#14374=EDGE_CURVE('',#18479,#18480,#1339,.F.); +#14375=EDGE_CURVE('',#18480,#18481,#22115,.T.); +#14376=EDGE_CURVE('',#18482,#18481,#1340,.F.); +#14377=EDGE_CURVE('',#18482,#18483,#22116,.T.); +#14378=EDGE_CURVE('',#18483,#18484,#1341,.F.); +#14379=EDGE_CURVE('',#18484,#18485,#22117,.T.); +#14380=EDGE_CURVE('',#18485,#18486,#22118,.T.); +#14381=EDGE_CURVE('',#18486,#18487,#22119,.T.); +#14382=EDGE_CURVE('',#18487,#18488,#1342,.F.); +#14383=EDGE_CURVE('',#18488,#18489,#22120,.T.); +#14384=EDGE_CURVE('',#18490,#18489,#1343,.F.); +#14385=EDGE_CURVE('',#18490,#18491,#22121,.T.); +#14386=EDGE_CURVE('',#18491,#18492,#1344,.F.); +#14387=EDGE_CURVE('',#18492,#18493,#22122,.T.); +#14388=EDGE_CURVE('',#18493,#18494,#1345,.F.); +#14389=EDGE_CURVE('',#18494,#18495,#22123,.T.); +#14390=EDGE_CURVE('',#18496,#18495,#1346,.F.); +#14391=EDGE_CURVE('',#18496,#18497,#22124,.T.); +#14392=EDGE_CURVE('',#18497,#18498,#1347,.F.); +#14393=EDGE_CURVE('',#18498,#18499,#22125,.T.); +#14394=EDGE_CURVE('',#18499,#18500,#22126,.T.); +#14395=EDGE_CURVE('',#18500,#18501,#22127,.T.); +#14396=EDGE_CURVE('',#18501,#18502,#1348,.F.); +#14397=EDGE_CURVE('',#18502,#18503,#22128,.T.); +#14398=EDGE_CURVE('',#18504,#18503,#1349,.F.); +#14399=EDGE_CURVE('',#18504,#18505,#22129,.T.); +#14400=EDGE_CURVE('',#18505,#18506,#1350,.F.); +#14401=EDGE_CURVE('',#18506,#18507,#22130,.T.); +#14402=EDGE_CURVE('',#18507,#18508,#1351,.F.); +#14403=EDGE_CURVE('',#18508,#18509,#22131,.T.); +#14404=EDGE_CURVE('',#18510,#18509,#1352,.F.); +#14405=EDGE_CURVE('',#18510,#18511,#22132,.T.); +#14406=EDGE_CURVE('',#18511,#18512,#1353,.F.); +#14407=EDGE_CURVE('',#18512,#18513,#22133,.T.); +#14408=EDGE_CURVE('',#18513,#18514,#22134,.T.); +#14409=EDGE_CURVE('',#18514,#18515,#22135,.T.); +#14410=EDGE_CURVE('',#18515,#18516,#1354,.F.); +#14411=EDGE_CURVE('',#18516,#18517,#22136,.T.); +#14412=EDGE_CURVE('',#18518,#18517,#1355,.F.); +#14413=EDGE_CURVE('',#18518,#18519,#22137,.T.); +#14414=EDGE_CURVE('',#18519,#18520,#1356,.F.); +#14415=EDGE_CURVE('',#18520,#18521,#22138,.T.); +#14416=EDGE_CURVE('',#18521,#18522,#1357,.F.); +#14417=EDGE_CURVE('',#18522,#18523,#22139,.T.); +#14418=EDGE_CURVE('',#18524,#18523,#1358,.F.); +#14419=EDGE_CURVE('',#18524,#18525,#22140,.T.); +#14420=EDGE_CURVE('',#18525,#18526,#1359,.F.); +#14421=EDGE_CURVE('',#18526,#18527,#22141,.T.); +#14422=EDGE_CURVE('',#18527,#18528,#22142,.T.); +#14423=EDGE_CURVE('',#18528,#18529,#22143,.T.); +#14424=EDGE_CURVE('',#18529,#18530,#1360,.F.); +#14425=EDGE_CURVE('',#18530,#18531,#22144,.T.); +#14426=EDGE_CURVE('',#18532,#18531,#1361,.F.); +#14427=EDGE_CURVE('',#18532,#18533,#22145,.T.); +#14428=EDGE_CURVE('',#18533,#18534,#1362,.F.); +#14429=EDGE_CURVE('',#18534,#18535,#22146,.T.); +#14430=EDGE_CURVE('',#18535,#18536,#1363,.F.); +#14431=EDGE_CURVE('',#18536,#18537,#22147,.T.); +#14432=EDGE_CURVE('',#18538,#18537,#1364,.F.); +#14433=EDGE_CURVE('',#18538,#18539,#22148,.T.); +#14434=EDGE_CURVE('',#18539,#18540,#1365,.F.); +#14435=EDGE_CURVE('',#18540,#18541,#22149,.T.); +#14436=EDGE_CURVE('',#18541,#18542,#22150,.T.); +#14437=EDGE_CURVE('',#18542,#18543,#22151,.T.); +#14438=EDGE_CURVE('',#18543,#18544,#1366,.F.); +#14439=EDGE_CURVE('',#18544,#18545,#22152,.T.); +#14440=EDGE_CURVE('',#18546,#18545,#1367,.F.); +#14441=EDGE_CURVE('',#18546,#18547,#22153,.T.); +#14442=EDGE_CURVE('',#18547,#18548,#1368,.F.); +#14443=EDGE_CURVE('',#18548,#18549,#22154,.T.); +#14444=EDGE_CURVE('',#18549,#18550,#1369,.F.); +#14445=EDGE_CURVE('',#18550,#18551,#22155,.T.); +#14446=EDGE_CURVE('',#18552,#18551,#1370,.F.); +#14447=EDGE_CURVE('',#18552,#18553,#22156,.T.); +#14448=EDGE_CURVE('',#18553,#18554,#1371,.F.); +#14449=EDGE_CURVE('',#18554,#18555,#22157,.T.); +#14450=EDGE_CURVE('',#18555,#18556,#22158,.T.); +#14451=EDGE_CURVE('',#18556,#18557,#22159,.T.); +#14452=EDGE_CURVE('',#18557,#18558,#1372,.F.); +#14453=EDGE_CURVE('',#18558,#18559,#22160,.T.); +#14454=EDGE_CURVE('',#18560,#18559,#1373,.F.); +#14455=EDGE_CURVE('',#18560,#18561,#22161,.T.); +#14456=EDGE_CURVE('',#18561,#18562,#1374,.F.); +#14457=EDGE_CURVE('',#18562,#18563,#22162,.T.); +#14458=EDGE_CURVE('',#18563,#18564,#1375,.F.); +#14459=EDGE_CURVE('',#18564,#18565,#22163,.T.); +#14460=EDGE_CURVE('',#18566,#18565,#1376,.F.); +#14461=EDGE_CURVE('',#18566,#18567,#22164,.T.); +#14462=EDGE_CURVE('',#18567,#18568,#1377,.F.); +#14463=EDGE_CURVE('',#18568,#18569,#22165,.T.); +#14464=EDGE_CURVE('',#18569,#18570,#22166,.T.); +#14465=EDGE_CURVE('',#18570,#18571,#22167,.T.); +#14466=EDGE_CURVE('',#18571,#18572,#1378,.F.); +#14467=EDGE_CURVE('',#18572,#18573,#22168,.T.); +#14468=EDGE_CURVE('',#18574,#18573,#1379,.F.); +#14469=EDGE_CURVE('',#18574,#18575,#22169,.T.); +#14470=EDGE_CURVE('',#18575,#18576,#1380,.F.); +#14471=EDGE_CURVE('',#18576,#18577,#22170,.T.); +#14472=EDGE_CURVE('',#18577,#18578,#1381,.F.); +#14473=EDGE_CURVE('',#18578,#18579,#22171,.T.); +#14474=EDGE_CURVE('',#18580,#18579,#1382,.F.); +#14475=EDGE_CURVE('',#18580,#18581,#22172,.T.); +#14476=EDGE_CURVE('',#18581,#18582,#1383,.F.); +#14477=EDGE_CURVE('',#18582,#18583,#22173,.T.); +#14478=EDGE_CURVE('',#18583,#18584,#22174,.T.); +#14479=EDGE_CURVE('',#18584,#18585,#22175,.T.); +#14480=EDGE_CURVE('',#18585,#18586,#1384,.F.); +#14481=EDGE_CURVE('',#18586,#18587,#22176,.T.); +#14482=EDGE_CURVE('',#18588,#18587,#1385,.F.); +#14483=EDGE_CURVE('',#18588,#18589,#22177,.T.); +#14484=EDGE_CURVE('',#18589,#18590,#1386,.F.); +#14485=EDGE_CURVE('',#18590,#18591,#22178,.T.); +#14486=EDGE_CURVE('',#18591,#18592,#1387,.F.); +#14487=EDGE_CURVE('',#18592,#18593,#22179,.T.); +#14488=EDGE_CURVE('',#18594,#18593,#1388,.F.); +#14489=EDGE_CURVE('',#18594,#18595,#22180,.T.); +#14490=EDGE_CURVE('',#18595,#18596,#1389,.F.); +#14491=EDGE_CURVE('',#18596,#18597,#22181,.T.); +#14492=EDGE_CURVE('',#18597,#18598,#22182,.T.); +#14493=EDGE_CURVE('',#18598,#18599,#22183,.T.); +#14494=EDGE_CURVE('',#18599,#18600,#1390,.F.); +#14495=EDGE_CURVE('',#18600,#18601,#22184,.T.); +#14496=EDGE_CURVE('',#18602,#18601,#1391,.F.); +#14497=EDGE_CURVE('',#18602,#18603,#22185,.T.); +#14498=EDGE_CURVE('',#18603,#18604,#1392,.F.); +#14499=EDGE_CURVE('',#18604,#18605,#22186,.T.); +#14500=EDGE_CURVE('',#18605,#18606,#1393,.F.); +#14501=EDGE_CURVE('',#18606,#18607,#22187,.T.); +#14502=EDGE_CURVE('',#18608,#18607,#1394,.F.); +#14503=EDGE_CURVE('',#18608,#18609,#22188,.T.); +#14504=EDGE_CURVE('',#18609,#18610,#1395,.F.); +#14505=EDGE_CURVE('',#18610,#18611,#22189,.T.); +#14506=EDGE_CURVE('',#18611,#18612,#22190,.T.); +#14507=EDGE_CURVE('',#18612,#18613,#22191,.T.); +#14508=EDGE_CURVE('',#18613,#18614,#1396,.F.); +#14509=EDGE_CURVE('',#18614,#18615,#22192,.T.); +#14510=EDGE_CURVE('',#18616,#18615,#1397,.F.); +#14511=EDGE_CURVE('',#18616,#18617,#22193,.T.); +#14512=EDGE_CURVE('',#18617,#18618,#1398,.F.); +#14513=EDGE_CURVE('',#18618,#18619,#22194,.T.); +#14514=EDGE_CURVE('',#18619,#18620,#1399,.F.); +#14515=EDGE_CURVE('',#18620,#18621,#22195,.T.); +#14516=EDGE_CURVE('',#18622,#18621,#1400,.F.); +#14517=EDGE_CURVE('',#18622,#18623,#22196,.T.); +#14518=EDGE_CURVE('',#18623,#18624,#1401,.F.); +#14519=EDGE_CURVE('',#18624,#18625,#22197,.T.); +#14520=EDGE_CURVE('',#18625,#18626,#22198,.T.); +#14521=EDGE_CURVE('',#18626,#18627,#22199,.T.); +#14522=EDGE_CURVE('',#18627,#18628,#1402,.F.); +#14523=EDGE_CURVE('',#18628,#18629,#22200,.T.); +#14524=EDGE_CURVE('',#18630,#18629,#1403,.F.); +#14525=EDGE_CURVE('',#18630,#18631,#22201,.T.); +#14526=EDGE_CURVE('',#18631,#18632,#1404,.F.); +#14527=EDGE_CURVE('',#18632,#18633,#22202,.T.); +#14528=EDGE_CURVE('',#18633,#18634,#1405,.F.); +#14529=EDGE_CURVE('',#18634,#18635,#22203,.T.); +#14530=EDGE_CURVE('',#18636,#18635,#1406,.F.); +#14531=EDGE_CURVE('',#18636,#18637,#22204,.T.); +#14532=EDGE_CURVE('',#18637,#18638,#1407,.F.); +#14533=EDGE_CURVE('',#18638,#18639,#22205,.T.); +#14534=EDGE_CURVE('',#18639,#18640,#22206,.T.); +#14535=EDGE_CURVE('',#18640,#18641,#22207,.T.); +#14536=EDGE_CURVE('',#18641,#18642,#1408,.F.); +#14537=EDGE_CURVE('',#18642,#18643,#22208,.T.); +#14538=EDGE_CURVE('',#18644,#18643,#1409,.F.); +#14539=EDGE_CURVE('',#18644,#18645,#22209,.T.); +#14540=EDGE_CURVE('',#18645,#18646,#1410,.F.); +#14541=EDGE_CURVE('',#18646,#18647,#22210,.T.); +#14542=EDGE_CURVE('',#18647,#18648,#1411,.F.); +#14543=EDGE_CURVE('',#18648,#18649,#22211,.T.); +#14544=EDGE_CURVE('',#18650,#18649,#1412,.F.); +#14545=EDGE_CURVE('',#18650,#18651,#22212,.T.); +#14546=EDGE_CURVE('',#18651,#18652,#1413,.F.); +#14547=EDGE_CURVE('',#18652,#18653,#22213,.T.); +#14548=EDGE_CURVE('',#18653,#18654,#22214,.T.); +#14549=EDGE_CURVE('',#18654,#18655,#22215,.T.); +#14550=EDGE_CURVE('',#18655,#18656,#1414,.F.); +#14551=EDGE_CURVE('',#18656,#18657,#22216,.T.); +#14552=EDGE_CURVE('',#18658,#18657,#1415,.F.); +#14553=EDGE_CURVE('',#18658,#18659,#22217,.T.); +#14554=EDGE_CURVE('',#18659,#18660,#1416,.F.); +#14555=EDGE_CURVE('',#18660,#18661,#22218,.T.); +#14556=EDGE_CURVE('',#18661,#18662,#1417,.F.); +#14557=EDGE_CURVE('',#18662,#18663,#22219,.T.); +#14558=EDGE_CURVE('',#18664,#18663,#1418,.F.); +#14559=EDGE_CURVE('',#18664,#18665,#22220,.T.); +#14560=EDGE_CURVE('',#18665,#18666,#1419,.F.); +#14561=EDGE_CURVE('',#18666,#18667,#22221,.T.); +#14562=EDGE_CURVE('',#18667,#18668,#22222,.T.); +#14563=EDGE_CURVE('',#18668,#18669,#22223,.T.); +#14564=EDGE_CURVE('',#18669,#18670,#1420,.F.); +#14565=EDGE_CURVE('',#18670,#18671,#22224,.T.); +#14566=EDGE_CURVE('',#18672,#18671,#1421,.F.); +#14567=EDGE_CURVE('',#18672,#18673,#22225,.T.); +#14568=EDGE_CURVE('',#18673,#18674,#1422,.F.); +#14569=EDGE_CURVE('',#18674,#18675,#22226,.T.); +#14570=EDGE_CURVE('',#18675,#18676,#1423,.F.); +#14571=EDGE_CURVE('',#18676,#18677,#22227,.T.); +#14572=EDGE_CURVE('',#18678,#18677,#1424,.F.); +#14573=EDGE_CURVE('',#18678,#18679,#22228,.T.); +#14574=EDGE_CURVE('',#18679,#18680,#1425,.F.); +#14575=EDGE_CURVE('',#18680,#18681,#22229,.T.); +#14576=EDGE_CURVE('',#18681,#18682,#22230,.T.); +#14577=EDGE_CURVE('',#18682,#18683,#22231,.T.); +#14578=EDGE_CURVE('',#18683,#18684,#1426,.F.); +#14579=EDGE_CURVE('',#18684,#18685,#22232,.T.); +#14580=EDGE_CURVE('',#18686,#18685,#1427,.F.); +#14581=EDGE_CURVE('',#18686,#18687,#22233,.T.); +#14582=EDGE_CURVE('',#18687,#18688,#1428,.F.); +#14583=EDGE_CURVE('',#18688,#18689,#22234,.T.); +#14584=EDGE_CURVE('',#18689,#18690,#1429,.F.); +#14585=EDGE_CURVE('',#18690,#18691,#22235,.T.); +#14586=EDGE_CURVE('',#18692,#18691,#1430,.F.); +#14587=EDGE_CURVE('',#18692,#18693,#22236,.T.); +#14588=EDGE_CURVE('',#18693,#18694,#1431,.F.); +#14589=EDGE_CURVE('',#18694,#18695,#22237,.T.); +#14590=EDGE_CURVE('',#18695,#18696,#22238,.T.); +#14591=EDGE_CURVE('',#18696,#18697,#22239,.T.); +#14592=EDGE_CURVE('',#18697,#18698,#1432,.F.); +#14593=EDGE_CURVE('',#18698,#18699,#22240,.T.); +#14594=EDGE_CURVE('',#18700,#18699,#1433,.F.); +#14595=EDGE_CURVE('',#18700,#18701,#22241,.T.); +#14596=EDGE_CURVE('',#18701,#18702,#1434,.F.); +#14597=EDGE_CURVE('',#18702,#18703,#22242,.T.); +#14598=EDGE_CURVE('',#18703,#18704,#1435,.F.); +#14599=EDGE_CURVE('',#18704,#18705,#22243,.T.); +#14600=EDGE_CURVE('',#18706,#18705,#1436,.F.); +#14601=EDGE_CURVE('',#18706,#18707,#22244,.T.); +#14602=EDGE_CURVE('',#18707,#18708,#1437,.F.); +#14603=EDGE_CURVE('',#18708,#18709,#22245,.T.); +#14604=EDGE_CURVE('',#18709,#18710,#22246,.T.); +#14605=EDGE_CURVE('',#18710,#18711,#22247,.T.); +#14606=EDGE_CURVE('',#18711,#18712,#1438,.F.); +#14607=EDGE_CURVE('',#18712,#18713,#22248,.T.); +#14608=EDGE_CURVE('',#18714,#18713,#1439,.F.); +#14609=EDGE_CURVE('',#18714,#18715,#22249,.T.); +#14610=EDGE_CURVE('',#18715,#18716,#1440,.F.); +#14611=EDGE_CURVE('',#18716,#18717,#22250,.T.); +#14612=EDGE_CURVE('',#18717,#18718,#1441,.F.); +#14613=EDGE_CURVE('',#18718,#18719,#22251,.T.); +#14614=EDGE_CURVE('',#18720,#18719,#1442,.F.); +#14615=EDGE_CURVE('',#18720,#18721,#22252,.T.); +#14616=EDGE_CURVE('',#18721,#18722,#1443,.F.); +#14617=EDGE_CURVE('',#18722,#18723,#22253,.T.); +#14618=EDGE_CURVE('',#18723,#18724,#22254,.T.); +#14619=EDGE_CURVE('',#18724,#18442,#22255,.T.); +#14620=EDGE_CURVE('',#18725,#18726,#22256,.T.); +#14621=EDGE_CURVE('',#18727,#18725,#22257,.T.); +#14622=EDGE_CURVE('',#18727,#18728,#22258,.T.); +#14623=EDGE_CURVE('',#18728,#18729,#22259,.T.); +#14624=EDGE_CURVE('',#18729,#18730,#1444,.F.); +#14625=EDGE_CURVE('',#18730,#18731,#22260,.T.); +#14626=EDGE_CURVE('',#18732,#18731,#1445,.F.); +#14627=EDGE_CURVE('',#18732,#18733,#22261,.T.); +#14628=EDGE_CURVE('',#18733,#18734,#1446,.F.); +#14629=EDGE_CURVE('',#18735,#18734,#22262,.T.); +#14630=EDGE_CURVE('',#18735,#18736,#1447,.F.); +#14631=EDGE_CURVE('',#18736,#18737,#22263,.T.); +#14632=EDGE_CURVE('',#18738,#18737,#1448,.F.); +#14633=EDGE_CURVE('',#18738,#18739,#22264,.T.); +#14634=EDGE_CURVE('',#18739,#18740,#1449,.F.); +#14635=EDGE_CURVE('',#18740,#18741,#22265,.T.); +#14636=EDGE_CURVE('',#18741,#18742,#22266,.T.); +#14637=EDGE_CURVE('',#18742,#18743,#22267,.T.); +#14638=EDGE_CURVE('',#18743,#18744,#1450,.F.); +#14639=EDGE_CURVE('',#18744,#18745,#22268,.T.); +#14640=EDGE_CURVE('',#18746,#18745,#1451,.F.); +#14641=EDGE_CURVE('',#18746,#18747,#22269,.T.); +#14642=EDGE_CURVE('',#18747,#18748,#1452,.F.); +#14643=EDGE_CURVE('',#18749,#18748,#22270,.T.); +#14644=EDGE_CURVE('',#18749,#18750,#1453,.F.); +#14645=EDGE_CURVE('',#18750,#18751,#22271,.T.); +#14646=EDGE_CURVE('',#18752,#18751,#1454,.F.); +#14647=EDGE_CURVE('',#18752,#18753,#22272,.T.); +#14648=EDGE_CURVE('',#18753,#18754,#1455,.F.); +#14649=EDGE_CURVE('',#18754,#18755,#22273,.T.); +#14650=EDGE_CURVE('',#18755,#18756,#22274,.T.); +#14651=EDGE_CURVE('',#18756,#18757,#22275,.T.); +#14652=EDGE_CURVE('',#18757,#18758,#1456,.F.); +#14653=EDGE_CURVE('',#18758,#18759,#22276,.T.); +#14654=EDGE_CURVE('',#18760,#18759,#1457,.F.); +#14655=EDGE_CURVE('',#18760,#18761,#22277,.T.); +#14656=EDGE_CURVE('',#18761,#18762,#1458,.F.); +#14657=EDGE_CURVE('',#18763,#18762,#22278,.T.); +#14658=EDGE_CURVE('',#18763,#18764,#1459,.F.); +#14659=EDGE_CURVE('',#18764,#18765,#22279,.T.); +#14660=EDGE_CURVE('',#18766,#18765,#1460,.F.); +#14661=EDGE_CURVE('',#18766,#18767,#22280,.T.); +#14662=EDGE_CURVE('',#18767,#18768,#1461,.F.); +#14663=EDGE_CURVE('',#18768,#18769,#22281,.T.); +#14664=EDGE_CURVE('',#18769,#18770,#22282,.T.); +#14665=EDGE_CURVE('',#18770,#18771,#22283,.T.); +#14666=EDGE_CURVE('',#18771,#18772,#1462,.F.); +#14667=EDGE_CURVE('',#18772,#18773,#22284,.T.); +#14668=EDGE_CURVE('',#18774,#18773,#1463,.F.); +#14669=EDGE_CURVE('',#18774,#18775,#22285,.T.); +#14670=EDGE_CURVE('',#18775,#18776,#1464,.F.); +#14671=EDGE_CURVE('',#18777,#18776,#22286,.T.); +#14672=EDGE_CURVE('',#18777,#18778,#1465,.F.); +#14673=EDGE_CURVE('',#18778,#18779,#22287,.T.); +#14674=EDGE_CURVE('',#18780,#18779,#1466,.F.); +#14675=EDGE_CURVE('',#18780,#18781,#22288,.T.); +#14676=EDGE_CURVE('',#18781,#18782,#1467,.F.); +#14677=EDGE_CURVE('',#18782,#18783,#22289,.T.); +#14678=EDGE_CURVE('',#18783,#18784,#22290,.T.); +#14679=EDGE_CURVE('',#18784,#18785,#22291,.T.); +#14680=EDGE_CURVE('',#18785,#18786,#1468,.F.); +#14681=EDGE_CURVE('',#18786,#18787,#22292,.T.); +#14682=EDGE_CURVE('',#18788,#18787,#1469,.F.); +#14683=EDGE_CURVE('',#18788,#18789,#22293,.T.); +#14684=EDGE_CURVE('',#18789,#18790,#1470,.F.); +#14685=EDGE_CURVE('',#18791,#18790,#22294,.T.); +#14686=EDGE_CURVE('',#18791,#18792,#1471,.F.); +#14687=EDGE_CURVE('',#18792,#18793,#22295,.T.); +#14688=EDGE_CURVE('',#18794,#18793,#1472,.F.); +#14689=EDGE_CURVE('',#18794,#18795,#22296,.T.); +#14690=EDGE_CURVE('',#18795,#18796,#1473,.F.); +#14691=EDGE_CURVE('',#18796,#18797,#22297,.T.); +#14692=EDGE_CURVE('',#18797,#18798,#22298,.T.); +#14693=EDGE_CURVE('',#18798,#18799,#22299,.T.); +#14694=EDGE_CURVE('',#18799,#18800,#1474,.F.); +#14695=EDGE_CURVE('',#18800,#18801,#22300,.T.); +#14696=EDGE_CURVE('',#18802,#18801,#1475,.F.); +#14697=EDGE_CURVE('',#18802,#18803,#22301,.T.); +#14698=EDGE_CURVE('',#18803,#18804,#1476,.F.); +#14699=EDGE_CURVE('',#18805,#18804,#22302,.T.); +#14700=EDGE_CURVE('',#18805,#18806,#1477,.F.); +#14701=EDGE_CURVE('',#18806,#18807,#22303,.T.); +#14702=EDGE_CURVE('',#18808,#18807,#1478,.F.); +#14703=EDGE_CURVE('',#18808,#18809,#22304,.T.); +#14704=EDGE_CURVE('',#18809,#18810,#1479,.F.); +#14705=EDGE_CURVE('',#18810,#18811,#22305,.T.); +#14706=EDGE_CURVE('',#18811,#18812,#22306,.T.); +#14707=EDGE_CURVE('',#18812,#18813,#22307,.T.); +#14708=EDGE_CURVE('',#18813,#18814,#1480,.F.); +#14709=EDGE_CURVE('',#18814,#18815,#22308,.T.); +#14710=EDGE_CURVE('',#18816,#18815,#1481,.F.); +#14711=EDGE_CURVE('',#18816,#18817,#22309,.T.); +#14712=EDGE_CURVE('',#18817,#18818,#1482,.F.); +#14713=EDGE_CURVE('',#18819,#18818,#22310,.T.); +#14714=EDGE_CURVE('',#18819,#18820,#1483,.F.); +#14715=EDGE_CURVE('',#18820,#18821,#22311,.T.); +#14716=EDGE_CURVE('',#18822,#18821,#1484,.F.); +#14717=EDGE_CURVE('',#18822,#18823,#22312,.T.); +#14718=EDGE_CURVE('',#18823,#18824,#1485,.F.); +#14719=EDGE_CURVE('',#18824,#18825,#22313,.T.); +#14720=EDGE_CURVE('',#18825,#18826,#22314,.T.); +#14721=EDGE_CURVE('',#18826,#18827,#22315,.T.); +#14722=EDGE_CURVE('',#18827,#18828,#1486,.F.); +#14723=EDGE_CURVE('',#18828,#18829,#22316,.T.); +#14724=EDGE_CURVE('',#18830,#18829,#1487,.F.); +#14725=EDGE_CURVE('',#18830,#18831,#22317,.T.); +#14726=EDGE_CURVE('',#18831,#18832,#1488,.F.); +#14727=EDGE_CURVE('',#18833,#18832,#22318,.T.); +#14728=EDGE_CURVE('',#18833,#18834,#1489,.F.); +#14729=EDGE_CURVE('',#18834,#18835,#22319,.T.); +#14730=EDGE_CURVE('',#18836,#18835,#1490,.F.); +#14731=EDGE_CURVE('',#18836,#18837,#22320,.T.); +#14732=EDGE_CURVE('',#18837,#18838,#1491,.F.); +#14733=EDGE_CURVE('',#18838,#18839,#22321,.T.); +#14734=EDGE_CURVE('',#18839,#18840,#22322,.T.); +#14735=EDGE_CURVE('',#18840,#18841,#22323,.T.); +#14736=EDGE_CURVE('',#18841,#18842,#1492,.F.); +#14737=EDGE_CURVE('',#18842,#18843,#22324,.T.); +#14738=EDGE_CURVE('',#18844,#18843,#1493,.F.); +#14739=EDGE_CURVE('',#18844,#18845,#22325,.T.); +#14740=EDGE_CURVE('',#18845,#18846,#1494,.F.); +#14741=EDGE_CURVE('',#18847,#18846,#22326,.T.); +#14742=EDGE_CURVE('',#18847,#18848,#1495,.F.); +#14743=EDGE_CURVE('',#18848,#18849,#22327,.T.); +#14744=EDGE_CURVE('',#18850,#18849,#1496,.F.); +#14745=EDGE_CURVE('',#18850,#18851,#22328,.T.); +#14746=EDGE_CURVE('',#18851,#18852,#1497,.F.); +#14747=EDGE_CURVE('',#18852,#18853,#22329,.T.); +#14748=EDGE_CURVE('',#18853,#18854,#22330,.T.); +#14749=EDGE_CURVE('',#18854,#18855,#22331,.T.); +#14750=EDGE_CURVE('',#18855,#18856,#1498,.F.); +#14751=EDGE_CURVE('',#18856,#18857,#22332,.T.); +#14752=EDGE_CURVE('',#18858,#18857,#1499,.F.); +#14753=EDGE_CURVE('',#18858,#18859,#22333,.T.); +#14754=EDGE_CURVE('',#18859,#18860,#1500,.F.); +#14755=EDGE_CURVE('',#18861,#18860,#22334,.T.); +#14756=EDGE_CURVE('',#18861,#18862,#1501,.F.); +#14757=EDGE_CURVE('',#18862,#18863,#22335,.T.); +#14758=EDGE_CURVE('',#18864,#18863,#1502,.F.); +#14759=EDGE_CURVE('',#18864,#18865,#22336,.T.); +#14760=EDGE_CURVE('',#18865,#18866,#1503,.F.); +#14761=EDGE_CURVE('',#18866,#18867,#22337,.T.); +#14762=EDGE_CURVE('',#18867,#18868,#22338,.T.); +#14763=EDGE_CURVE('',#18868,#18869,#22339,.T.); +#14764=EDGE_CURVE('',#18869,#18870,#1504,.F.); +#14765=EDGE_CURVE('',#18870,#18871,#22340,.T.); +#14766=EDGE_CURVE('',#18872,#18871,#1505,.F.); +#14767=EDGE_CURVE('',#18872,#18873,#22341,.T.); +#14768=EDGE_CURVE('',#18873,#18874,#1506,.F.); +#14769=EDGE_CURVE('',#18875,#18874,#22342,.T.); +#14770=EDGE_CURVE('',#18875,#18876,#1507,.F.); +#14771=EDGE_CURVE('',#18876,#18877,#22343,.T.); +#14772=EDGE_CURVE('',#18878,#18877,#1508,.F.); +#14773=EDGE_CURVE('',#18878,#18879,#22344,.T.); +#14774=EDGE_CURVE('',#18879,#18880,#1509,.F.); +#14775=EDGE_CURVE('',#18880,#18881,#22345,.T.); +#14776=EDGE_CURVE('',#18881,#18882,#22346,.T.); +#14777=EDGE_CURVE('',#18882,#18883,#22347,.T.); +#14778=EDGE_CURVE('',#18883,#18884,#1510,.F.); +#14779=EDGE_CURVE('',#18884,#18885,#22348,.T.); +#14780=EDGE_CURVE('',#18886,#18885,#1511,.F.); +#14781=EDGE_CURVE('',#18886,#18887,#22349,.T.); +#14782=EDGE_CURVE('',#18887,#18888,#1512,.F.); +#14783=EDGE_CURVE('',#18889,#18888,#22350,.T.); +#14784=EDGE_CURVE('',#18889,#18890,#1513,.F.); +#14785=EDGE_CURVE('',#18890,#18891,#22351,.T.); +#14786=EDGE_CURVE('',#18892,#18891,#1514,.F.); +#14787=EDGE_CURVE('',#18892,#18893,#22352,.T.); +#14788=EDGE_CURVE('',#18893,#18894,#1515,.F.); +#14789=EDGE_CURVE('',#18894,#18895,#22353,.T.); +#14790=EDGE_CURVE('',#18895,#18896,#22354,.T.); +#14791=EDGE_CURVE('',#18896,#18897,#22355,.T.); +#14792=EDGE_CURVE('',#18897,#18898,#1516,.F.); +#14793=EDGE_CURVE('',#18898,#18899,#22356,.T.); +#14794=EDGE_CURVE('',#18900,#18899,#1517,.F.); +#14795=EDGE_CURVE('',#18900,#18901,#22357,.T.); +#14796=EDGE_CURVE('',#18901,#18902,#1518,.F.); +#14797=EDGE_CURVE('',#18903,#18902,#22358,.T.); +#14798=EDGE_CURVE('',#18903,#18904,#1519,.F.); +#14799=EDGE_CURVE('',#18904,#18905,#22359,.T.); +#14800=EDGE_CURVE('',#18906,#18905,#1520,.F.); +#14801=EDGE_CURVE('',#18906,#18907,#22360,.T.); +#14802=EDGE_CURVE('',#18907,#18908,#1521,.F.); +#14803=EDGE_CURVE('',#18908,#18909,#22361,.T.); +#14804=EDGE_CURVE('',#18909,#18910,#22362,.T.); +#14805=EDGE_CURVE('',#18910,#18911,#22363,.T.); +#14806=EDGE_CURVE('',#18911,#18912,#1522,.F.); +#14807=EDGE_CURVE('',#18912,#18913,#22364,.T.); +#14808=EDGE_CURVE('',#18914,#18913,#1523,.F.); +#14809=EDGE_CURVE('',#18914,#18915,#22365,.T.); +#14810=EDGE_CURVE('',#18915,#18916,#1524,.F.); +#14811=EDGE_CURVE('',#18917,#18916,#22366,.T.); +#14812=EDGE_CURVE('',#18917,#18918,#1525,.F.); +#14813=EDGE_CURVE('',#18918,#18919,#22367,.T.); +#14814=EDGE_CURVE('',#18920,#18919,#1526,.F.); +#14815=EDGE_CURVE('',#18920,#18921,#22368,.T.); +#14816=EDGE_CURVE('',#18921,#18922,#1527,.F.); +#14817=EDGE_CURVE('',#18922,#18923,#22369,.T.); +#14818=EDGE_CURVE('',#18923,#18924,#22370,.T.); +#14819=EDGE_CURVE('',#18924,#18925,#22371,.T.); +#14820=EDGE_CURVE('',#18925,#18926,#1528,.F.); +#14821=EDGE_CURVE('',#18926,#18927,#22372,.T.); +#14822=EDGE_CURVE('',#18928,#18927,#1529,.F.); +#14823=EDGE_CURVE('',#18928,#18929,#22373,.T.); +#14824=EDGE_CURVE('',#18929,#18930,#1530,.F.); +#14825=EDGE_CURVE('',#18931,#18930,#22374,.T.); +#14826=EDGE_CURVE('',#18931,#18932,#1531,.F.); +#14827=EDGE_CURVE('',#18932,#18933,#22375,.T.); +#14828=EDGE_CURVE('',#18934,#18933,#1532,.F.); +#14829=EDGE_CURVE('',#18934,#18935,#22376,.T.); +#14830=EDGE_CURVE('',#18935,#18936,#1533,.F.); +#14831=EDGE_CURVE('',#18936,#18937,#22377,.T.); +#14832=EDGE_CURVE('',#18937,#18938,#22378,.T.); +#14833=EDGE_CURVE('',#18938,#18939,#22379,.T.); +#14834=EDGE_CURVE('',#18939,#18940,#1534,.F.); +#14835=EDGE_CURVE('',#18940,#18941,#22380,.T.); +#14836=EDGE_CURVE('',#18942,#18941,#1535,.F.); +#14837=EDGE_CURVE('',#18942,#18943,#22381,.T.); +#14838=EDGE_CURVE('',#18943,#18944,#1536,.F.); +#14839=EDGE_CURVE('',#18945,#18944,#22382,.T.); +#14840=EDGE_CURVE('',#18945,#18946,#1537,.F.); +#14841=EDGE_CURVE('',#18946,#18947,#22383,.T.); +#14842=EDGE_CURVE('',#18948,#18947,#1538,.F.); +#14843=EDGE_CURVE('',#18948,#18949,#22384,.T.); +#14844=EDGE_CURVE('',#18949,#18950,#1539,.F.); +#14845=EDGE_CURVE('',#18950,#18951,#22385,.T.); +#14846=EDGE_CURVE('',#18951,#18952,#22386,.T.); +#14847=EDGE_CURVE('',#18952,#18953,#22387,.T.); +#14848=EDGE_CURVE('',#18953,#18954,#1540,.F.); +#14849=EDGE_CURVE('',#18954,#18955,#22388,.T.); +#14850=EDGE_CURVE('',#18956,#18955,#1541,.F.); +#14851=EDGE_CURVE('',#18956,#18957,#22389,.T.); +#14852=EDGE_CURVE('',#18957,#18958,#1542,.F.); +#14853=EDGE_CURVE('',#18959,#18958,#22390,.T.); +#14854=EDGE_CURVE('',#18959,#18960,#1543,.F.); +#14855=EDGE_CURVE('',#18960,#18961,#22391,.T.); +#14856=EDGE_CURVE('',#18962,#18961,#1544,.F.); +#14857=EDGE_CURVE('',#18962,#18963,#22392,.T.); +#14858=EDGE_CURVE('',#18963,#18964,#1545,.F.); +#14859=EDGE_CURVE('',#18964,#18965,#22393,.T.); +#14860=EDGE_CURVE('',#18965,#18966,#22394,.T.); +#14861=EDGE_CURVE('',#18966,#18967,#22395,.T.); +#14862=EDGE_CURVE('',#18967,#18968,#1546,.F.); +#14863=EDGE_CURVE('',#18968,#18969,#22396,.T.); +#14864=EDGE_CURVE('',#18970,#18969,#1547,.F.); +#14865=EDGE_CURVE('',#18970,#18971,#22397,.T.); +#14866=EDGE_CURVE('',#18971,#18972,#1548,.F.); +#14867=EDGE_CURVE('',#18973,#18972,#22398,.T.); +#14868=EDGE_CURVE('',#18973,#18974,#1549,.F.); +#14869=EDGE_CURVE('',#18974,#18975,#22399,.T.); +#14870=EDGE_CURVE('',#18976,#18975,#1550,.F.); +#14871=EDGE_CURVE('',#18976,#18977,#22400,.T.); +#14872=EDGE_CURVE('',#18977,#18978,#1551,.F.); +#14873=EDGE_CURVE('',#18978,#18979,#22401,.T.); +#14874=EDGE_CURVE('',#18979,#18980,#22402,.T.); +#14875=EDGE_CURVE('',#18980,#18981,#22403,.T.); +#14876=EDGE_CURVE('',#18981,#18982,#1552,.F.); +#14877=EDGE_CURVE('',#18982,#18983,#22404,.T.); +#14878=EDGE_CURVE('',#18984,#18983,#1553,.F.); +#14879=EDGE_CURVE('',#18984,#18985,#22405,.T.); +#14880=EDGE_CURVE('',#18985,#18986,#1554,.F.); +#14881=EDGE_CURVE('',#18987,#18986,#22406,.T.); +#14882=EDGE_CURVE('',#18987,#18988,#1555,.F.); +#14883=EDGE_CURVE('',#18988,#18989,#22407,.T.); +#14884=EDGE_CURVE('',#18990,#18989,#1556,.F.); +#14885=EDGE_CURVE('',#18990,#18991,#22408,.T.); +#14886=EDGE_CURVE('',#18991,#18992,#1557,.F.); +#14887=EDGE_CURVE('',#18992,#18993,#22409,.T.); +#14888=EDGE_CURVE('',#18993,#18994,#22410,.T.); +#14889=EDGE_CURVE('',#18994,#18995,#22411,.T.); +#14890=EDGE_CURVE('',#18995,#18996,#1558,.F.); +#14891=EDGE_CURVE('',#18996,#18997,#22412,.T.); +#14892=EDGE_CURVE('',#18998,#18997,#1559,.F.); +#14893=EDGE_CURVE('',#18998,#18999,#22413,.T.); +#14894=EDGE_CURVE('',#18999,#19000,#1560,.F.); +#14895=EDGE_CURVE('',#19001,#19000,#22414,.T.); +#14896=EDGE_CURVE('',#19001,#19002,#1561,.F.); +#14897=EDGE_CURVE('',#19002,#19003,#22415,.T.); +#14898=EDGE_CURVE('',#19004,#19003,#1562,.F.); +#14899=EDGE_CURVE('',#19004,#19005,#22416,.T.); +#14900=EDGE_CURVE('',#19005,#19006,#1563,.F.); +#14901=EDGE_CURVE('',#19007,#19006,#22417,.T.); +#14902=EDGE_CURVE('',#19007,#19008,#22418,.T.); +#14903=EDGE_CURVE('',#19008,#18726,#22419,.T.); +#14904=EDGE_CURVE('',#19009,#19010,#22420,.T.); +#14905=EDGE_CURVE('',#19011,#19009,#22421,.T.); +#14906=EDGE_CURVE('',#19012,#19011,#22422,.T.); +#14907=EDGE_CURVE('',#19013,#19012,#22423,.T.); +#14908=EDGE_CURVE('',#19013,#19014,#1564,.F.); +#14909=EDGE_CURVE('',#19014,#19015,#22424,.T.); +#14910=EDGE_CURVE('',#19016,#19015,#1565,.F.); +#14911=EDGE_CURVE('',#19016,#19017,#22425,.T.); +#14912=EDGE_CURVE('',#19017,#19018,#1566,.F.); +#14913=EDGE_CURVE('',#19018,#19019,#22426,.T.); +#14914=EDGE_CURVE('',#19019,#19020,#1567,.F.); +#14915=EDGE_CURVE('',#19020,#19021,#22427,.T.); +#14916=EDGE_CURVE('',#19022,#19021,#1568,.F.); +#14917=EDGE_CURVE('',#19022,#19023,#22428,.T.); +#14918=EDGE_CURVE('',#19023,#19024,#1569,.F.); +#14919=EDGE_CURVE('',#19024,#19025,#22429,.T.); +#14920=EDGE_CURVE('',#19025,#19026,#22430,.T.); +#14921=EDGE_CURVE('',#19026,#19027,#22431,.T.); +#14922=EDGE_CURVE('',#19027,#19028,#1570,.F.); +#14923=EDGE_CURVE('',#19028,#19029,#22432,.T.); +#14924=EDGE_CURVE('',#19030,#19029,#1571,.F.); +#14925=EDGE_CURVE('',#19030,#19031,#22433,.T.); +#14926=EDGE_CURVE('',#19031,#19032,#1572,.F.); +#14927=EDGE_CURVE('',#19032,#19033,#22434,.T.); +#14928=EDGE_CURVE('',#19033,#19034,#1573,.F.); +#14929=EDGE_CURVE('',#19034,#19035,#22435,.T.); +#14930=EDGE_CURVE('',#19036,#19035,#1574,.F.); +#14931=EDGE_CURVE('',#19036,#19037,#22436,.T.); +#14932=EDGE_CURVE('',#19037,#19038,#1575,.F.); +#14933=EDGE_CURVE('',#19038,#19039,#22437,.T.); +#14934=EDGE_CURVE('',#19039,#19040,#22438,.T.); +#14935=EDGE_CURVE('',#19040,#19041,#22439,.T.); +#14936=EDGE_CURVE('',#19041,#19042,#1576,.F.); +#14937=EDGE_CURVE('',#19042,#19043,#22440,.T.); +#14938=EDGE_CURVE('',#19044,#19043,#1577,.F.); +#14939=EDGE_CURVE('',#19044,#19045,#22441,.T.); +#14940=EDGE_CURVE('',#19045,#19046,#1578,.F.); +#14941=EDGE_CURVE('',#19046,#19047,#22442,.T.); +#14942=EDGE_CURVE('',#19047,#19048,#1579,.F.); +#14943=EDGE_CURVE('',#19048,#19049,#22443,.T.); +#14944=EDGE_CURVE('',#19050,#19049,#1580,.F.); +#14945=EDGE_CURVE('',#19050,#19051,#22444,.T.); +#14946=EDGE_CURVE('',#19051,#19052,#1581,.F.); +#14947=EDGE_CURVE('',#19052,#19053,#22445,.T.); +#14948=EDGE_CURVE('',#19053,#19054,#22446,.T.); +#14949=EDGE_CURVE('',#19054,#19055,#22447,.T.); +#14950=EDGE_CURVE('',#19055,#19056,#1582,.F.); +#14951=EDGE_CURVE('',#19056,#19057,#22448,.T.); +#14952=EDGE_CURVE('',#19058,#19057,#1583,.F.); +#14953=EDGE_CURVE('',#19058,#19059,#22449,.T.); +#14954=EDGE_CURVE('',#19059,#19060,#1584,.F.); +#14955=EDGE_CURVE('',#19060,#19061,#22450,.T.); +#14956=EDGE_CURVE('',#19061,#19062,#1585,.F.); +#14957=EDGE_CURVE('',#19062,#19063,#22451,.T.); +#14958=EDGE_CURVE('',#19064,#19063,#1586,.F.); +#14959=EDGE_CURVE('',#19064,#19065,#22452,.T.); +#14960=EDGE_CURVE('',#19065,#19066,#1587,.F.); +#14961=EDGE_CURVE('',#19066,#19067,#22453,.T.); +#14962=EDGE_CURVE('',#19067,#19068,#22454,.T.); +#14963=EDGE_CURVE('',#19068,#19069,#22455,.T.); +#14964=EDGE_CURVE('',#19069,#19070,#1588,.F.); +#14965=EDGE_CURVE('',#19070,#19071,#22456,.T.); +#14966=EDGE_CURVE('',#19072,#19071,#1589,.F.); +#14967=EDGE_CURVE('',#19072,#19073,#22457,.T.); +#14968=EDGE_CURVE('',#19073,#19074,#1590,.F.); +#14969=EDGE_CURVE('',#19074,#19075,#22458,.T.); +#14970=EDGE_CURVE('',#19075,#19076,#1591,.F.); +#14971=EDGE_CURVE('',#19076,#19077,#22459,.T.); +#14972=EDGE_CURVE('',#19078,#19077,#1592,.F.); +#14973=EDGE_CURVE('',#19078,#19079,#22460,.T.); +#14974=EDGE_CURVE('',#19079,#19080,#1593,.F.); +#14975=EDGE_CURVE('',#19080,#19081,#22461,.T.); +#14976=EDGE_CURVE('',#19081,#19082,#22462,.T.); +#14977=EDGE_CURVE('',#19082,#19083,#22463,.T.); +#14978=EDGE_CURVE('',#19083,#19084,#1594,.F.); +#14979=EDGE_CURVE('',#19084,#19085,#22464,.T.); +#14980=EDGE_CURVE('',#19086,#19085,#1595,.F.); +#14981=EDGE_CURVE('',#19086,#19087,#22465,.T.); +#14982=EDGE_CURVE('',#19087,#19088,#1596,.F.); +#14983=EDGE_CURVE('',#19088,#19089,#22466,.T.); +#14984=EDGE_CURVE('',#19089,#19090,#1597,.F.); +#14985=EDGE_CURVE('',#19090,#19091,#22467,.T.); +#14986=EDGE_CURVE('',#19092,#19091,#1598,.F.); +#14987=EDGE_CURVE('',#19092,#19093,#22468,.T.); +#14988=EDGE_CURVE('',#19093,#19094,#1599,.F.); +#14989=EDGE_CURVE('',#19094,#19095,#22469,.T.); +#14990=EDGE_CURVE('',#19095,#19096,#22470,.T.); +#14991=EDGE_CURVE('',#19096,#19097,#22471,.T.); +#14992=EDGE_CURVE('',#19097,#19098,#1600,.F.); +#14993=EDGE_CURVE('',#19098,#19099,#22472,.T.); +#14994=EDGE_CURVE('',#19100,#19099,#1601,.F.); +#14995=EDGE_CURVE('',#19100,#19101,#22473,.T.); +#14996=EDGE_CURVE('',#19101,#19102,#1602,.F.); +#14997=EDGE_CURVE('',#19102,#19103,#22474,.T.); +#14998=EDGE_CURVE('',#19103,#19104,#1603,.F.); +#14999=EDGE_CURVE('',#19104,#19105,#22475,.T.); +#15000=EDGE_CURVE('',#19106,#19105,#1604,.F.); +#15001=EDGE_CURVE('',#19106,#19107,#22476,.T.); +#15002=EDGE_CURVE('',#19107,#19108,#1605,.F.); +#15003=EDGE_CURVE('',#19108,#19109,#22477,.T.); +#15004=EDGE_CURVE('',#19109,#19110,#22478,.T.); +#15005=EDGE_CURVE('',#19110,#19111,#22479,.T.); +#15006=EDGE_CURVE('',#19111,#19112,#1606,.F.); +#15007=EDGE_CURVE('',#19112,#19113,#22480,.T.); +#15008=EDGE_CURVE('',#19114,#19113,#1607,.F.); +#15009=EDGE_CURVE('',#19114,#19115,#22481,.T.); +#15010=EDGE_CURVE('',#19115,#19116,#1608,.F.); +#15011=EDGE_CURVE('',#19116,#19117,#22482,.T.); +#15012=EDGE_CURVE('',#19117,#19118,#1609,.F.); +#15013=EDGE_CURVE('',#19118,#19119,#22483,.T.); +#15014=EDGE_CURVE('',#19120,#19119,#1610,.F.); +#15015=EDGE_CURVE('',#19120,#19121,#22484,.T.); +#15016=EDGE_CURVE('',#19121,#19122,#1611,.F.); +#15017=EDGE_CURVE('',#19122,#19123,#22485,.T.); +#15018=EDGE_CURVE('',#19123,#19124,#22486,.T.); +#15019=EDGE_CURVE('',#19124,#19125,#22487,.T.); +#15020=EDGE_CURVE('',#19125,#19126,#1612,.F.); +#15021=EDGE_CURVE('',#19126,#19127,#22488,.T.); +#15022=EDGE_CURVE('',#19128,#19127,#1613,.F.); +#15023=EDGE_CURVE('',#19128,#19129,#22489,.T.); +#15024=EDGE_CURVE('',#19129,#19130,#1614,.F.); +#15025=EDGE_CURVE('',#19130,#19131,#22490,.T.); +#15026=EDGE_CURVE('',#19131,#19132,#1615,.F.); +#15027=EDGE_CURVE('',#19132,#19133,#22491,.T.); +#15028=EDGE_CURVE('',#19134,#19133,#1616,.F.); +#15029=EDGE_CURVE('',#19134,#19135,#22492,.T.); +#15030=EDGE_CURVE('',#19135,#19136,#1617,.F.); +#15031=EDGE_CURVE('',#19136,#19137,#22493,.T.); +#15032=EDGE_CURVE('',#19137,#19138,#22494,.T.); +#15033=EDGE_CURVE('',#19138,#19139,#22495,.T.); +#15034=EDGE_CURVE('',#19139,#19140,#1618,.F.); +#15035=EDGE_CURVE('',#19140,#19141,#22496,.T.); +#15036=EDGE_CURVE('',#19142,#19141,#1619,.F.); +#15037=EDGE_CURVE('',#19142,#19143,#22497,.T.); +#15038=EDGE_CURVE('',#19143,#19144,#1620,.F.); +#15039=EDGE_CURVE('',#19144,#19145,#22498,.T.); +#15040=EDGE_CURVE('',#19145,#19146,#1621,.F.); +#15041=EDGE_CURVE('',#19146,#19147,#22499,.T.); +#15042=EDGE_CURVE('',#19148,#19147,#1622,.F.); +#15043=EDGE_CURVE('',#19148,#19149,#22500,.T.); +#15044=EDGE_CURVE('',#19149,#19150,#1623,.F.); +#15045=EDGE_CURVE('',#19150,#19151,#22501,.T.); +#15046=EDGE_CURVE('',#19151,#19152,#22502,.T.); +#15047=EDGE_CURVE('',#19152,#19153,#22503,.T.); +#15048=EDGE_CURVE('',#19153,#19154,#1624,.F.); +#15049=EDGE_CURVE('',#19154,#19155,#22504,.T.); +#15050=EDGE_CURVE('',#19156,#19155,#1625,.F.); +#15051=EDGE_CURVE('',#19156,#19157,#22505,.T.); +#15052=EDGE_CURVE('',#19157,#19158,#1626,.F.); +#15053=EDGE_CURVE('',#19158,#19159,#22506,.T.); +#15054=EDGE_CURVE('',#19159,#19160,#1627,.F.); +#15055=EDGE_CURVE('',#19160,#19161,#22507,.T.); +#15056=EDGE_CURVE('',#19162,#19161,#1628,.F.); +#15057=EDGE_CURVE('',#19162,#19163,#22508,.T.); +#15058=EDGE_CURVE('',#19163,#19164,#1629,.F.); +#15059=EDGE_CURVE('',#19164,#19165,#22509,.T.); +#15060=EDGE_CURVE('',#19165,#19166,#22510,.T.); +#15061=EDGE_CURVE('',#19166,#19167,#22511,.T.); +#15062=EDGE_CURVE('',#19167,#19168,#1630,.F.); +#15063=EDGE_CURVE('',#19168,#19169,#22512,.T.); +#15064=EDGE_CURVE('',#19170,#19169,#1631,.F.); +#15065=EDGE_CURVE('',#19170,#19171,#22513,.T.); +#15066=EDGE_CURVE('',#19171,#19172,#1632,.F.); +#15067=EDGE_CURVE('',#19172,#19173,#22514,.T.); +#15068=EDGE_CURVE('',#19173,#19174,#1633,.F.); +#15069=EDGE_CURVE('',#19174,#19175,#22515,.T.); +#15070=EDGE_CURVE('',#19176,#19175,#1634,.F.); +#15071=EDGE_CURVE('',#19176,#19177,#22516,.T.); +#15072=EDGE_CURVE('',#19177,#19178,#1635,.F.); +#15073=EDGE_CURVE('',#19178,#19179,#22517,.T.); +#15074=EDGE_CURVE('',#19179,#19180,#22518,.T.); +#15075=EDGE_CURVE('',#19180,#19181,#22519,.T.); +#15076=EDGE_CURVE('',#19181,#19182,#1636,.F.); +#15077=EDGE_CURVE('',#19182,#19183,#22520,.T.); +#15078=EDGE_CURVE('',#19184,#19183,#1637,.F.); +#15079=EDGE_CURVE('',#19184,#19185,#22521,.T.); +#15080=EDGE_CURVE('',#19185,#19186,#1638,.F.); +#15081=EDGE_CURVE('',#19186,#19187,#22522,.T.); +#15082=EDGE_CURVE('',#19187,#19188,#1639,.F.); +#15083=EDGE_CURVE('',#19188,#19189,#22523,.T.); +#15084=EDGE_CURVE('',#19190,#19189,#1640,.F.); +#15085=EDGE_CURVE('',#19190,#19191,#22524,.T.); +#15086=EDGE_CURVE('',#19191,#19192,#1641,.F.); +#15087=EDGE_CURVE('',#19192,#19193,#22525,.T.); +#15088=EDGE_CURVE('',#19193,#19194,#22526,.T.); +#15089=EDGE_CURVE('',#19194,#19195,#22527,.T.); +#15090=EDGE_CURVE('',#19195,#19196,#1642,.F.); +#15091=EDGE_CURVE('',#19196,#19197,#22528,.T.); +#15092=EDGE_CURVE('',#19198,#19197,#1643,.F.); +#15093=EDGE_CURVE('',#19198,#19199,#22529,.T.); +#15094=EDGE_CURVE('',#19199,#19200,#1644,.F.); +#15095=EDGE_CURVE('',#19200,#19201,#22530,.T.); +#15096=EDGE_CURVE('',#19201,#19202,#1645,.F.); +#15097=EDGE_CURVE('',#19202,#19203,#22531,.T.); +#15098=EDGE_CURVE('',#19204,#19203,#1646,.F.); +#15099=EDGE_CURVE('',#19204,#19205,#22532,.T.); +#15100=EDGE_CURVE('',#19205,#19206,#1647,.F.); +#15101=EDGE_CURVE('',#19206,#19207,#22533,.T.); +#15102=EDGE_CURVE('',#19207,#19208,#22534,.T.); +#15103=EDGE_CURVE('',#19208,#19209,#22535,.T.); +#15104=EDGE_CURVE('',#19209,#19210,#1648,.F.); +#15105=EDGE_CURVE('',#19210,#19211,#22536,.T.); +#15106=EDGE_CURVE('',#19212,#19211,#1649,.F.); +#15107=EDGE_CURVE('',#19212,#19213,#22537,.T.); +#15108=EDGE_CURVE('',#19213,#19214,#1650,.F.); +#15109=EDGE_CURVE('',#19214,#19215,#22538,.T.); +#15110=EDGE_CURVE('',#19215,#19216,#1651,.F.); +#15111=EDGE_CURVE('',#19216,#19217,#22539,.T.); +#15112=EDGE_CURVE('',#19218,#19217,#1652,.F.); +#15113=EDGE_CURVE('',#19218,#19219,#22540,.T.); +#15114=EDGE_CURVE('',#19219,#19220,#1653,.F.); +#15115=EDGE_CURVE('',#19220,#19221,#22541,.T.); +#15116=EDGE_CURVE('',#19221,#19222,#22542,.T.); +#15117=EDGE_CURVE('',#19222,#19223,#22543,.T.); +#15118=EDGE_CURVE('',#19223,#19224,#1654,.F.); +#15119=EDGE_CURVE('',#19224,#19225,#22544,.T.); +#15120=EDGE_CURVE('',#19226,#19225,#1655,.F.); +#15121=EDGE_CURVE('',#19226,#19227,#22545,.T.); +#15122=EDGE_CURVE('',#19227,#19228,#1656,.F.); +#15123=EDGE_CURVE('',#19228,#19229,#22546,.T.); +#15124=EDGE_CURVE('',#19229,#19230,#1657,.F.); +#15125=EDGE_CURVE('',#19230,#19231,#22547,.T.); +#15126=EDGE_CURVE('',#19232,#19231,#1658,.F.); +#15127=EDGE_CURVE('',#19232,#19233,#22548,.T.); +#15128=EDGE_CURVE('',#19233,#19234,#1659,.F.); +#15129=EDGE_CURVE('',#19234,#19235,#22549,.T.); +#15130=EDGE_CURVE('',#19235,#19236,#22550,.T.); +#15131=EDGE_CURVE('',#19236,#19237,#22551,.T.); +#15132=EDGE_CURVE('',#19237,#19238,#1660,.F.); +#15133=EDGE_CURVE('',#19238,#19239,#22552,.T.); +#15134=EDGE_CURVE('',#19240,#19239,#1661,.F.); +#15135=EDGE_CURVE('',#19240,#19241,#22553,.T.); +#15136=EDGE_CURVE('',#19241,#19242,#1662,.F.); +#15137=EDGE_CURVE('',#19242,#19243,#22554,.T.); +#15138=EDGE_CURVE('',#19243,#19244,#1663,.F.); +#15139=EDGE_CURVE('',#19244,#19245,#22555,.T.); +#15140=EDGE_CURVE('',#19246,#19245,#1664,.F.); +#15141=EDGE_CURVE('',#19246,#19247,#22556,.T.); +#15142=EDGE_CURVE('',#19247,#19248,#1665,.F.); +#15143=EDGE_CURVE('',#19248,#19249,#22557,.T.); +#15144=EDGE_CURVE('',#19249,#19250,#22558,.T.); +#15145=EDGE_CURVE('',#19250,#19251,#22559,.T.); +#15146=EDGE_CURVE('',#19251,#19252,#1666,.F.); +#15147=EDGE_CURVE('',#19252,#19253,#22560,.T.); +#15148=EDGE_CURVE('',#19254,#19253,#1667,.F.); +#15149=EDGE_CURVE('',#19254,#19255,#22561,.T.); +#15150=EDGE_CURVE('',#19255,#19256,#1668,.F.); +#15151=EDGE_CURVE('',#19256,#19257,#22562,.T.); +#15152=EDGE_CURVE('',#19257,#19258,#1669,.F.); +#15153=EDGE_CURVE('',#19258,#19259,#22563,.T.); +#15154=EDGE_CURVE('',#19260,#19259,#1670,.F.); +#15155=EDGE_CURVE('',#19260,#19261,#22564,.T.); +#15156=EDGE_CURVE('',#19261,#19262,#1671,.F.); +#15157=EDGE_CURVE('',#19262,#19263,#22565,.T.); +#15158=EDGE_CURVE('',#19263,#19264,#22566,.T.); +#15159=EDGE_CURVE('',#19264,#19265,#22567,.T.); +#15160=EDGE_CURVE('',#19265,#19266,#1672,.F.); +#15161=EDGE_CURVE('',#19266,#19267,#22568,.T.); +#15162=EDGE_CURVE('',#19268,#19267,#1673,.F.); +#15163=EDGE_CURVE('',#19268,#19269,#22569,.T.); +#15164=EDGE_CURVE('',#19269,#19270,#1674,.F.); +#15165=EDGE_CURVE('',#19270,#19271,#22570,.T.); +#15166=EDGE_CURVE('',#19271,#19272,#1675,.F.); +#15167=EDGE_CURVE('',#19272,#19273,#22571,.T.); +#15168=EDGE_CURVE('',#19274,#19273,#1676,.F.); +#15169=EDGE_CURVE('',#19274,#19275,#22572,.T.); +#15170=EDGE_CURVE('',#19275,#19276,#1677,.F.); +#15171=EDGE_CURVE('',#19276,#19277,#22573,.T.); +#15172=EDGE_CURVE('',#19277,#19278,#22574,.T.); +#15173=EDGE_CURVE('',#19278,#19279,#22575,.T.); +#15174=EDGE_CURVE('',#19279,#19280,#1678,.F.); +#15175=EDGE_CURVE('',#19280,#19281,#22576,.T.); +#15176=EDGE_CURVE('',#19282,#19281,#1679,.F.); +#15177=EDGE_CURVE('',#19282,#19283,#22577,.T.); +#15178=EDGE_CURVE('',#19283,#19284,#1680,.F.); +#15179=EDGE_CURVE('',#19284,#19285,#22578,.T.); +#15180=EDGE_CURVE('',#19285,#19286,#1681,.F.); +#15181=EDGE_CURVE('',#19286,#19287,#22579,.T.); +#15182=EDGE_CURVE('',#19288,#19287,#1682,.F.); +#15183=EDGE_CURVE('',#19288,#19289,#22580,.T.); +#15184=EDGE_CURVE('',#19289,#19290,#1683,.F.); +#15185=EDGE_CURVE('',#19290,#19291,#22581,.T.); +#15186=EDGE_CURVE('',#19292,#19291,#22582,.T.); +#15187=EDGE_CURVE('',#19292,#19010,#22583,.T.); +#15188=EDGE_CURVE('',#19010,#18157,#22584,.T.); +#15189=EDGE_CURVE('',#18159,#19292,#22585,.T.); +#15190=EDGE_CURVE('',#18725,#18442,#22586,.T.); +#15191=EDGE_CURVE('',#18724,#18727,#22587,.T.); +#15192=EDGE_CURVE('',#18441,#18726,#22588,.T.); +#15193=EDGE_CURVE('',#19008,#18443,#22589,.T.); +#15194=EDGE_CURVE('',#18158,#19009,#22590,.T.); +#15195=EDGE_CURVE('',#19011,#18440,#22591,.T.); +#15196=EDGE_CURVE('',#19278,#18741,#22592,.T.); +#15197=EDGE_CURVE('',#19277,#18742,#22593,.T.); +#15198=EDGE_CURVE('',#19264,#18755,#22594,.T.); +#15199=EDGE_CURVE('',#19263,#18756,#22595,.T.); +#15200=EDGE_CURVE('',#19250,#18769,#22596,.T.); +#15201=EDGE_CURVE('',#19249,#18770,#22597,.T.); +#15202=EDGE_CURVE('',#19236,#18783,#22598,.T.); +#15203=EDGE_CURVE('',#19235,#18784,#22599,.T.); +#15204=EDGE_CURVE('',#19222,#18797,#22600,.T.); +#15205=EDGE_CURVE('',#19221,#18798,#22601,.T.); +#15206=EDGE_CURVE('',#19208,#18811,#22602,.T.); +#15207=EDGE_CURVE('',#19207,#18812,#22603,.T.); +#15208=EDGE_CURVE('',#19194,#18825,#22604,.T.); +#15209=EDGE_CURVE('',#19193,#18826,#22605,.T.); +#15210=EDGE_CURVE('',#19180,#18839,#22606,.T.); +#15211=EDGE_CURVE('',#19179,#18840,#22607,.T.); +#15212=EDGE_CURVE('',#19166,#18853,#22608,.T.); +#15213=EDGE_CURVE('',#19165,#18854,#22609,.T.); +#15214=EDGE_CURVE('',#19152,#18867,#22610,.T.); +#15215=EDGE_CURVE('',#19151,#18868,#22611,.T.); +#15216=EDGE_CURVE('',#19138,#18881,#22612,.T.); +#15217=EDGE_CURVE('',#19137,#18882,#22613,.T.); +#15218=EDGE_CURVE('',#19124,#18895,#22614,.T.); +#15219=EDGE_CURVE('',#19123,#18896,#22615,.T.); +#15220=EDGE_CURVE('',#19110,#18909,#22616,.T.); +#15221=EDGE_CURVE('',#19109,#18910,#22617,.T.); +#15222=EDGE_CURVE('',#19096,#18923,#22618,.T.); +#15223=EDGE_CURVE('',#19095,#18924,#22619,.T.); +#15224=EDGE_CURVE('',#19082,#18937,#22620,.T.); +#15225=EDGE_CURVE('',#19081,#18938,#22621,.T.); +#15226=EDGE_CURVE('',#19068,#18951,#22622,.T.); +#15227=EDGE_CURVE('',#19067,#18952,#22623,.T.); +#15228=EDGE_CURVE('',#19054,#18965,#22624,.T.); +#15229=EDGE_CURVE('',#19053,#18966,#22625,.T.); +#15230=EDGE_CURVE('',#19040,#18979,#22626,.T.); +#15231=EDGE_CURVE('',#19039,#18980,#22627,.T.); +#15232=EDGE_CURVE('',#19026,#18993,#22628,.T.); +#15233=EDGE_CURVE('',#19025,#18994,#22629,.T.); +#15234=EDGE_CURVE('',#18457,#18426,#22630,.T.); +#15235=EDGE_CURVE('',#18458,#18425,#22631,.T.); +#15236=EDGE_CURVE('',#18471,#18412,#22632,.T.); +#15237=EDGE_CURVE('',#18472,#18411,#22633,.T.); +#15238=EDGE_CURVE('',#18485,#18398,#22634,.T.); +#15239=EDGE_CURVE('',#18486,#18397,#22635,.T.); +#15240=EDGE_CURVE('',#18499,#18384,#22636,.T.); +#15241=EDGE_CURVE('',#18500,#18383,#22637,.T.); +#15242=EDGE_CURVE('',#18513,#18370,#22638,.T.); +#15243=EDGE_CURVE('',#18514,#18369,#22639,.T.); +#15244=EDGE_CURVE('',#18527,#18356,#22640,.T.); +#15245=EDGE_CURVE('',#18528,#18355,#22641,.T.); +#15246=EDGE_CURVE('',#18541,#18342,#22642,.T.); +#15247=EDGE_CURVE('',#18542,#18341,#22643,.T.); +#15248=EDGE_CURVE('',#18555,#18328,#22644,.T.); +#15249=EDGE_CURVE('',#18556,#18327,#22645,.T.); +#15250=EDGE_CURVE('',#18569,#18314,#22646,.T.); +#15251=EDGE_CURVE('',#18570,#18313,#22647,.T.); +#15252=EDGE_CURVE('',#18583,#18300,#22648,.T.); +#15253=EDGE_CURVE('',#18584,#18299,#22649,.T.); +#15254=EDGE_CURVE('',#18597,#18286,#22650,.T.); +#15255=EDGE_CURVE('',#18598,#18285,#22651,.T.); +#15256=EDGE_CURVE('',#18611,#18272,#22652,.T.); +#15257=EDGE_CURVE('',#18612,#18271,#22653,.T.); +#15258=EDGE_CURVE('',#18625,#18258,#22654,.T.); +#15259=EDGE_CURVE('',#18626,#18257,#22655,.T.); +#15260=EDGE_CURVE('',#18639,#18244,#22656,.T.); +#15261=EDGE_CURVE('',#18640,#18243,#22657,.T.); +#15262=EDGE_CURVE('',#18653,#18230,#22658,.T.); +#15263=EDGE_CURVE('',#18654,#18229,#22659,.T.); +#15264=EDGE_CURVE('',#18667,#18216,#22660,.T.); +#15265=EDGE_CURVE('',#18668,#18215,#22661,.T.); +#15266=EDGE_CURVE('',#18681,#18202,#22662,.T.); +#15267=EDGE_CURVE('',#18682,#18201,#22663,.T.); +#15268=EDGE_CURVE('',#18695,#18188,#22664,.T.); +#15269=EDGE_CURVE('',#18696,#18187,#22665,.T.); +#15270=EDGE_CURVE('',#18709,#18174,#22666,.T.); +#15271=EDGE_CURVE('',#18710,#18173,#22667,.T.); +#15272=EDGE_CURVE('',#18439,#18444,#22668,.T.); +#15273=EDGE_CURVE('',#18438,#18445,#22669,.F.); +#15274=EDGE_CURVE('',#18160,#18723,#22670,.T.); +#15275=EDGE_CURVE('',#18161,#18722,#22671,.F.); +#15276=EDGE_CURVE('',#19293,#18166,#98,.T.); +#15277=EDGE_CURVE('',#19293,#19294,#1684,.T.); +#15278=EDGE_CURVE('',#19294,#19295,#99,.T.); +#15279=EDGE_CURVE('',#19296,#19295,#22672,.T.); +#15280=EDGE_CURVE('',#19296,#19297,#100,.T.); +#15281=EDGE_CURVE('',#19297,#19298,#1685,.T.); +#15282=EDGE_CURVE('',#18167,#19298,#101,.T.); +#15283=EDGE_CURVE('',#19299,#18180,#102,.T.); +#15284=EDGE_CURVE('',#19299,#19300,#1686,.T.); +#15285=EDGE_CURVE('',#19300,#19301,#103,.T.); +#15286=EDGE_CURVE('',#19302,#19301,#22673,.T.); +#15287=EDGE_CURVE('',#19302,#19303,#104,.T.); +#15288=EDGE_CURVE('',#19303,#19304,#1687,.T.); +#15289=EDGE_CURVE('',#18181,#19304,#105,.T.); +#15290=EDGE_CURVE('',#19305,#18194,#106,.T.); +#15291=EDGE_CURVE('',#19305,#19306,#1688,.T.); +#15292=EDGE_CURVE('',#19306,#19307,#107,.T.); +#15293=EDGE_CURVE('',#19308,#19307,#22674,.T.); +#15294=EDGE_CURVE('',#19308,#19309,#108,.T.); +#15295=EDGE_CURVE('',#19309,#19310,#1689,.T.); +#15296=EDGE_CURVE('',#18195,#19310,#109,.T.); +#15297=EDGE_CURVE('',#19311,#18208,#110,.T.); +#15298=EDGE_CURVE('',#19311,#19312,#1690,.T.); +#15299=EDGE_CURVE('',#19312,#19313,#111,.T.); +#15300=EDGE_CURVE('',#19314,#19313,#22675,.T.); +#15301=EDGE_CURVE('',#19314,#19315,#112,.T.); +#15302=EDGE_CURVE('',#19315,#19316,#1691,.T.); +#15303=EDGE_CURVE('',#18209,#19316,#113,.T.); +#15304=EDGE_CURVE('',#19317,#18222,#114,.T.); +#15305=EDGE_CURVE('',#19317,#19318,#1692,.T.); +#15306=EDGE_CURVE('',#19318,#19319,#115,.T.); +#15307=EDGE_CURVE('',#19320,#19319,#22676,.T.); +#15308=EDGE_CURVE('',#19320,#19321,#116,.T.); +#15309=EDGE_CURVE('',#19321,#19322,#1693,.T.); +#15310=EDGE_CURVE('',#18223,#19322,#117,.T.); +#15311=EDGE_CURVE('',#19323,#18236,#118,.T.); +#15312=EDGE_CURVE('',#19323,#19324,#1694,.T.); +#15313=EDGE_CURVE('',#19324,#19325,#119,.T.); +#15314=EDGE_CURVE('',#19326,#19325,#22677,.T.); +#15315=EDGE_CURVE('',#19326,#19327,#120,.T.); +#15316=EDGE_CURVE('',#19327,#19328,#1695,.T.); +#15317=EDGE_CURVE('',#18237,#19328,#121,.T.); +#15318=EDGE_CURVE('',#19329,#18250,#122,.T.); +#15319=EDGE_CURVE('',#19329,#19330,#1696,.T.); +#15320=EDGE_CURVE('',#19330,#19331,#123,.T.); +#15321=EDGE_CURVE('',#19332,#19331,#22678,.T.); +#15322=EDGE_CURVE('',#19332,#19333,#124,.T.); +#15323=EDGE_CURVE('',#19333,#19334,#1697,.T.); +#15324=EDGE_CURVE('',#18251,#19334,#125,.T.); +#15325=EDGE_CURVE('',#19335,#18264,#126,.T.); +#15326=EDGE_CURVE('',#19335,#19336,#1698,.T.); +#15327=EDGE_CURVE('',#19336,#19337,#127,.T.); +#15328=EDGE_CURVE('',#19338,#19337,#22679,.T.); +#15329=EDGE_CURVE('',#19338,#19339,#128,.T.); +#15330=EDGE_CURVE('',#19339,#19340,#1699,.T.); +#15331=EDGE_CURVE('',#18265,#19340,#129,.T.); +#15332=EDGE_CURVE('',#19341,#18278,#130,.T.); +#15333=EDGE_CURVE('',#19341,#19342,#1700,.T.); +#15334=EDGE_CURVE('',#19342,#19343,#131,.T.); +#15335=EDGE_CURVE('',#19344,#19343,#22680,.T.); +#15336=EDGE_CURVE('',#19344,#19345,#132,.T.); +#15337=EDGE_CURVE('',#19345,#19346,#1701,.T.); +#15338=EDGE_CURVE('',#18279,#19346,#133,.T.); +#15339=EDGE_CURVE('',#19347,#18292,#134,.T.); +#15340=EDGE_CURVE('',#19347,#19348,#1702,.T.); +#15341=EDGE_CURVE('',#19348,#19349,#135,.T.); +#15342=EDGE_CURVE('',#19350,#19349,#22681,.T.); +#15343=EDGE_CURVE('',#19350,#19351,#136,.T.); +#15344=EDGE_CURVE('',#19351,#19352,#1703,.T.); +#15345=EDGE_CURVE('',#18293,#19352,#137,.T.); +#15346=EDGE_CURVE('',#19353,#18306,#138,.T.); +#15347=EDGE_CURVE('',#19353,#19354,#1704,.T.); +#15348=EDGE_CURVE('',#19354,#19355,#139,.T.); +#15349=EDGE_CURVE('',#19356,#19355,#22682,.T.); +#15350=EDGE_CURVE('',#19356,#19357,#140,.T.); +#15351=EDGE_CURVE('',#19357,#19358,#1705,.T.); +#15352=EDGE_CURVE('',#18307,#19358,#141,.T.); +#15353=EDGE_CURVE('',#19359,#18320,#142,.T.); +#15354=EDGE_CURVE('',#19359,#19360,#1706,.T.); +#15355=EDGE_CURVE('',#19360,#19361,#143,.T.); +#15356=EDGE_CURVE('',#19362,#19361,#22683,.T.); +#15357=EDGE_CURVE('',#19362,#19363,#144,.T.); +#15358=EDGE_CURVE('',#19363,#19364,#1707,.T.); +#15359=EDGE_CURVE('',#18321,#19364,#145,.T.); +#15360=EDGE_CURVE('',#19365,#18334,#146,.T.); +#15361=EDGE_CURVE('',#19365,#19366,#1708,.T.); +#15362=EDGE_CURVE('',#19366,#19367,#147,.T.); +#15363=EDGE_CURVE('',#19368,#19367,#22684,.T.); +#15364=EDGE_CURVE('',#19368,#19369,#148,.T.); +#15365=EDGE_CURVE('',#19369,#19370,#1709,.T.); +#15366=EDGE_CURVE('',#18335,#19370,#149,.T.); +#15367=EDGE_CURVE('',#19371,#18348,#150,.T.); +#15368=EDGE_CURVE('',#19371,#19372,#1710,.T.); +#15369=EDGE_CURVE('',#19372,#19373,#151,.T.); +#15370=EDGE_CURVE('',#19374,#19373,#22685,.T.); +#15371=EDGE_CURVE('',#19374,#19375,#152,.T.); +#15372=EDGE_CURVE('',#19375,#19376,#1711,.T.); +#15373=EDGE_CURVE('',#18349,#19376,#153,.T.); +#15374=EDGE_CURVE('',#19377,#18362,#154,.T.); +#15375=EDGE_CURVE('',#19377,#19378,#1712,.T.); +#15376=EDGE_CURVE('',#19378,#19379,#155,.T.); +#15377=EDGE_CURVE('',#19380,#19379,#22686,.T.); +#15378=EDGE_CURVE('',#19380,#19381,#156,.T.); +#15379=EDGE_CURVE('',#19381,#19382,#1713,.T.); +#15380=EDGE_CURVE('',#18363,#19382,#157,.T.); +#15381=EDGE_CURVE('',#19383,#18376,#158,.T.); +#15382=EDGE_CURVE('',#19383,#19384,#1714,.T.); +#15383=EDGE_CURVE('',#19384,#19385,#159,.T.); +#15384=EDGE_CURVE('',#19386,#19385,#22687,.T.); +#15385=EDGE_CURVE('',#19386,#19387,#160,.T.); +#15386=EDGE_CURVE('',#19387,#19388,#1715,.T.); +#15387=EDGE_CURVE('',#18377,#19388,#161,.T.); +#15388=EDGE_CURVE('',#19389,#18390,#162,.T.); +#15389=EDGE_CURVE('',#19389,#19390,#1716,.T.); +#15390=EDGE_CURVE('',#19390,#19391,#163,.T.); +#15391=EDGE_CURVE('',#19392,#19391,#22688,.T.); +#15392=EDGE_CURVE('',#19392,#19393,#164,.T.); +#15393=EDGE_CURVE('',#19393,#19394,#1717,.T.); +#15394=EDGE_CURVE('',#18391,#19394,#165,.T.); +#15395=EDGE_CURVE('',#19395,#18404,#166,.T.); +#15396=EDGE_CURVE('',#19395,#19396,#1718,.T.); +#15397=EDGE_CURVE('',#19396,#19397,#167,.T.); +#15398=EDGE_CURVE('',#19398,#19397,#22689,.T.); +#15399=EDGE_CURVE('',#19398,#19399,#168,.T.); +#15400=EDGE_CURVE('',#19399,#19400,#1719,.T.); +#15401=EDGE_CURVE('',#18405,#19400,#169,.T.); +#15402=EDGE_CURVE('',#19401,#18418,#170,.T.); +#15403=EDGE_CURVE('',#19401,#19402,#1720,.T.); +#15404=EDGE_CURVE('',#19402,#19403,#171,.T.); +#15405=EDGE_CURVE('',#19404,#19403,#22690,.T.); +#15406=EDGE_CURVE('',#19404,#19405,#172,.T.); +#15407=EDGE_CURVE('',#19405,#19406,#1721,.T.); +#15408=EDGE_CURVE('',#18419,#19406,#173,.T.); +#15409=EDGE_CURVE('',#19407,#18432,#174,.T.); +#15410=EDGE_CURVE('',#19407,#19408,#1722,.T.); +#15411=EDGE_CURVE('',#19408,#19409,#175,.T.); +#15412=EDGE_CURVE('',#19410,#19409,#22691,.T.); +#15413=EDGE_CURVE('',#19410,#19411,#176,.T.); +#15414=EDGE_CURVE('',#19411,#19412,#1723,.T.); +#15415=EDGE_CURVE('',#18433,#19412,#177,.T.); +#15416=EDGE_CURVE('',#19295,#19413,#18,.F.); +#15417=EDGE_CURVE('',#19413,#19414,#22692,.T.); +#15418=EDGE_CURVE('',#19415,#19414,#22693,.T.); +#15419=EDGE_CURVE('',#19415,#19416,#22694,.T.); +#15420=EDGE_CURVE('',#19416,#19296,#19,.F.); +#15421=EDGE_CURVE('',#19301,#19417,#20,.F.); +#15422=EDGE_CURVE('',#19417,#19418,#22695,.T.); +#15423=EDGE_CURVE('',#19419,#19418,#22696,.T.); +#15424=EDGE_CURVE('',#19419,#19420,#22697,.T.); +#15425=EDGE_CURVE('',#19420,#19302,#21,.F.); +#15426=EDGE_CURVE('',#19307,#19421,#22,.F.); +#15427=EDGE_CURVE('',#19421,#19422,#22698,.T.); +#15428=EDGE_CURVE('',#19423,#19422,#22699,.T.); +#15429=EDGE_CURVE('',#19423,#19424,#22700,.T.); +#15430=EDGE_CURVE('',#19424,#19308,#23,.F.); +#15431=EDGE_CURVE('',#19313,#19425,#24,.F.); +#15432=EDGE_CURVE('',#19425,#19426,#22701,.T.); +#15433=EDGE_CURVE('',#19427,#19426,#22702,.T.); +#15434=EDGE_CURVE('',#19427,#19428,#22703,.T.); +#15435=EDGE_CURVE('',#19428,#19314,#25,.F.); +#15436=EDGE_CURVE('',#19319,#19429,#26,.F.); +#15437=EDGE_CURVE('',#19429,#19430,#22704,.T.); +#15438=EDGE_CURVE('',#19431,#19430,#22705,.T.); +#15439=EDGE_CURVE('',#19431,#19432,#22706,.T.); +#15440=EDGE_CURVE('',#19432,#19320,#27,.F.); +#15441=EDGE_CURVE('',#19325,#19433,#28,.F.); +#15442=EDGE_CURVE('',#19433,#19434,#22707,.T.); +#15443=EDGE_CURVE('',#19435,#19434,#22708,.T.); +#15444=EDGE_CURVE('',#19435,#19436,#22709,.T.); +#15445=EDGE_CURVE('',#19436,#19326,#29,.F.); +#15446=EDGE_CURVE('',#19331,#19437,#30,.F.); +#15447=EDGE_CURVE('',#19437,#19438,#22710,.T.); +#15448=EDGE_CURVE('',#19439,#19438,#22711,.T.); +#15449=EDGE_CURVE('',#19439,#19440,#22712,.T.); +#15450=EDGE_CURVE('',#19440,#19332,#31,.F.); +#15451=EDGE_CURVE('',#19337,#19441,#32,.F.); +#15452=EDGE_CURVE('',#19441,#19442,#22713,.T.); +#15453=EDGE_CURVE('',#19443,#19442,#22714,.T.); +#15454=EDGE_CURVE('',#19443,#19444,#22715,.T.); +#15455=EDGE_CURVE('',#19444,#19338,#33,.F.); +#15456=EDGE_CURVE('',#19343,#19445,#34,.F.); +#15457=EDGE_CURVE('',#19445,#19446,#22716,.T.); +#15458=EDGE_CURVE('',#19447,#19446,#22717,.T.); +#15459=EDGE_CURVE('',#19447,#19448,#22718,.T.); +#15460=EDGE_CURVE('',#19448,#19344,#35,.F.); +#15461=EDGE_CURVE('',#19349,#19449,#36,.F.); +#15462=EDGE_CURVE('',#19449,#19450,#22719,.T.); +#15463=EDGE_CURVE('',#19451,#19450,#22720,.T.); +#15464=EDGE_CURVE('',#19451,#19452,#22721,.T.); +#15465=EDGE_CURVE('',#19452,#19350,#37,.F.); +#15466=EDGE_CURVE('',#19355,#19453,#38,.F.); +#15467=EDGE_CURVE('',#19453,#19454,#22722,.T.); +#15468=EDGE_CURVE('',#19455,#19454,#22723,.T.); +#15469=EDGE_CURVE('',#19455,#19456,#22724,.T.); +#15470=EDGE_CURVE('',#19456,#19356,#39,.F.); +#15471=EDGE_CURVE('',#19361,#19457,#40,.F.); +#15472=EDGE_CURVE('',#19457,#19458,#22725,.T.); +#15473=EDGE_CURVE('',#19459,#19458,#22726,.T.); +#15474=EDGE_CURVE('',#19459,#19460,#22727,.T.); +#15475=EDGE_CURVE('',#19460,#19362,#41,.F.); +#15476=EDGE_CURVE('',#19367,#19461,#42,.F.); +#15477=EDGE_CURVE('',#19461,#19462,#22728,.T.); +#15478=EDGE_CURVE('',#19463,#19462,#22729,.T.); +#15479=EDGE_CURVE('',#19463,#19464,#22730,.T.); +#15480=EDGE_CURVE('',#19464,#19368,#43,.F.); +#15481=EDGE_CURVE('',#19373,#19465,#44,.F.); +#15482=EDGE_CURVE('',#19465,#19466,#22731,.T.); +#15483=EDGE_CURVE('',#19467,#19466,#22732,.T.); +#15484=EDGE_CURVE('',#19467,#19468,#22733,.T.); +#15485=EDGE_CURVE('',#19468,#19374,#45,.F.); +#15486=EDGE_CURVE('',#19379,#19469,#46,.F.); +#15487=EDGE_CURVE('',#19469,#19470,#22734,.T.); +#15488=EDGE_CURVE('',#19471,#19470,#22735,.T.); +#15489=EDGE_CURVE('',#19471,#19472,#22736,.T.); +#15490=EDGE_CURVE('',#19472,#19380,#47,.F.); +#15491=EDGE_CURVE('',#19385,#19473,#48,.F.); +#15492=EDGE_CURVE('',#19473,#19474,#22737,.T.); +#15493=EDGE_CURVE('',#19475,#19474,#22738,.T.); +#15494=EDGE_CURVE('',#19475,#19476,#22739,.T.); +#15495=EDGE_CURVE('',#19476,#19386,#49,.F.); +#15496=EDGE_CURVE('',#19391,#19477,#50,.F.); +#15497=EDGE_CURVE('',#19477,#19478,#22740,.T.); +#15498=EDGE_CURVE('',#19479,#19478,#22741,.T.); +#15499=EDGE_CURVE('',#19479,#19480,#22742,.T.); +#15500=EDGE_CURVE('',#19480,#19392,#51,.F.); +#15501=EDGE_CURVE('',#19397,#19481,#52,.F.); +#15502=EDGE_CURVE('',#19481,#19482,#22743,.T.); +#15503=EDGE_CURVE('',#19483,#19482,#22744,.T.); +#15504=EDGE_CURVE('',#19483,#19484,#22745,.T.); +#15505=EDGE_CURVE('',#19484,#19398,#53,.F.); +#15506=EDGE_CURVE('',#19403,#19485,#54,.F.); +#15507=EDGE_CURVE('',#19485,#19486,#22746,.T.); +#15508=EDGE_CURVE('',#19487,#19486,#22747,.T.); +#15509=EDGE_CURVE('',#19487,#19488,#22748,.T.); +#15510=EDGE_CURVE('',#19488,#19404,#55,.F.); +#15511=EDGE_CURVE('',#19489,#19414,#1724,.T.); +#15512=EDGE_CURVE('',#19489,#18717,#178,.T.); +#15513=EDGE_CURVE('',#18716,#19490,#179,.T.); +#15514=EDGE_CURVE('',#19415,#19490,#1725,.T.); +#15515=EDGE_CURVE('',#19491,#19418,#1726,.T.); +#15516=EDGE_CURVE('',#19491,#18703,#180,.T.); +#15517=EDGE_CURVE('',#18702,#19492,#181,.T.); +#15518=EDGE_CURVE('',#19419,#19492,#1727,.T.); +#15519=EDGE_CURVE('',#19493,#19422,#1728,.T.); +#15520=EDGE_CURVE('',#19493,#18689,#182,.T.); +#15521=EDGE_CURVE('',#18688,#19494,#183,.T.); +#15522=EDGE_CURVE('',#19423,#19494,#1729,.T.); +#15523=EDGE_CURVE('',#19495,#19426,#1730,.T.); +#15524=EDGE_CURVE('',#19495,#18675,#184,.T.); +#15525=EDGE_CURVE('',#18674,#19496,#185,.T.); +#15526=EDGE_CURVE('',#19427,#19496,#1731,.T.); +#15527=EDGE_CURVE('',#19497,#19430,#1732,.T.); +#15528=EDGE_CURVE('',#19497,#18661,#186,.T.); +#15529=EDGE_CURVE('',#18660,#19498,#187,.T.); +#15530=EDGE_CURVE('',#19431,#19498,#1733,.T.); +#15531=EDGE_CURVE('',#19499,#19434,#1734,.T.); +#15532=EDGE_CURVE('',#19499,#18647,#188,.T.); +#15533=EDGE_CURVE('',#18646,#19500,#189,.T.); +#15534=EDGE_CURVE('',#19435,#19500,#1735,.T.); +#15535=EDGE_CURVE('',#19501,#19438,#1736,.T.); +#15536=EDGE_CURVE('',#19501,#18633,#190,.T.); +#15537=EDGE_CURVE('',#18632,#19502,#191,.T.); +#15538=EDGE_CURVE('',#19439,#19502,#1737,.T.); +#15539=EDGE_CURVE('',#19503,#19442,#1738,.T.); +#15540=EDGE_CURVE('',#19503,#18619,#192,.T.); +#15541=EDGE_CURVE('',#18618,#19504,#193,.T.); +#15542=EDGE_CURVE('',#19443,#19504,#1739,.T.); +#15543=EDGE_CURVE('',#19505,#19446,#1740,.T.); +#15544=EDGE_CURVE('',#19505,#18605,#194,.T.); +#15545=EDGE_CURVE('',#18604,#19506,#195,.T.); +#15546=EDGE_CURVE('',#19447,#19506,#1741,.T.); +#15547=EDGE_CURVE('',#19507,#19450,#1742,.T.); +#15548=EDGE_CURVE('',#19507,#18591,#196,.T.); +#15549=EDGE_CURVE('',#18590,#19508,#197,.T.); +#15550=EDGE_CURVE('',#19451,#19508,#1743,.T.); +#15551=EDGE_CURVE('',#19509,#19454,#1744,.T.); +#15552=EDGE_CURVE('',#19509,#18577,#198,.T.); +#15553=EDGE_CURVE('',#18576,#19510,#199,.T.); +#15554=EDGE_CURVE('',#19455,#19510,#1745,.T.); +#15555=EDGE_CURVE('',#19511,#19458,#1746,.T.); +#15556=EDGE_CURVE('',#19511,#18563,#200,.T.); +#15557=EDGE_CURVE('',#18562,#19512,#201,.T.); +#15558=EDGE_CURVE('',#19459,#19512,#1747,.T.); +#15559=EDGE_CURVE('',#19513,#19462,#1748,.T.); +#15560=EDGE_CURVE('',#19513,#18549,#202,.T.); +#15561=EDGE_CURVE('',#18548,#19514,#203,.T.); +#15562=EDGE_CURVE('',#19463,#19514,#1749,.T.); +#15563=EDGE_CURVE('',#19515,#19466,#1750,.T.); +#15564=EDGE_CURVE('',#19515,#18535,#204,.T.); +#15565=EDGE_CURVE('',#18534,#19516,#205,.T.); +#15566=EDGE_CURVE('',#19467,#19516,#1751,.T.); +#15567=EDGE_CURVE('',#19517,#19470,#1752,.T.); +#15568=EDGE_CURVE('',#19517,#18521,#206,.T.); +#15569=EDGE_CURVE('',#18520,#19518,#207,.T.); +#15570=EDGE_CURVE('',#19471,#19518,#1753,.T.); +#15571=EDGE_CURVE('',#19519,#19474,#1754,.T.); +#15572=EDGE_CURVE('',#19519,#18507,#208,.T.); +#15573=EDGE_CURVE('',#18506,#19520,#209,.T.); +#15574=EDGE_CURVE('',#19475,#19520,#1755,.T.); +#15575=EDGE_CURVE('',#19521,#19478,#1756,.T.); +#15576=EDGE_CURVE('',#19521,#18493,#210,.T.); +#15577=EDGE_CURVE('',#18492,#19522,#211,.T.); +#15578=EDGE_CURVE('',#19479,#19522,#1757,.T.); +#15579=EDGE_CURVE('',#19523,#19482,#1758,.T.); +#15580=EDGE_CURVE('',#19523,#18479,#212,.T.); +#15581=EDGE_CURVE('',#18478,#19524,#213,.T.); +#15582=EDGE_CURVE('',#19483,#19524,#1759,.T.); +#15583=EDGE_CURVE('',#19525,#19486,#1760,.T.); +#15584=EDGE_CURVE('',#19525,#18465,#214,.T.); +#15585=EDGE_CURVE('',#18464,#19526,#215,.T.); +#15586=EDGE_CURVE('',#19487,#19526,#1761,.T.); +#15587=EDGE_CURVE('',#19527,#19528,#1762,.T.); +#15588=EDGE_CURVE('',#19527,#18451,#216,.T.); +#15589=EDGE_CURVE('',#18450,#19529,#217,.T.); +#15590=EDGE_CURVE('',#19530,#19529,#1763,.T.); +#15591=EDGE_CURVE('',#19530,#19528,#22749,.T.); +#15592=EDGE_CURVE('',#18734,#19531,#218,.T.); +#15593=EDGE_CURVE('',#19532,#19531,#1764,.T.); +#15594=EDGE_CURVE('',#19533,#19532,#22750,.T.); +#15595=EDGE_CURVE('',#19534,#19533,#1765,.T.); +#15596=EDGE_CURVE('',#19534,#18735,#219,.T.); +#15597=EDGE_CURVE('',#18748,#19535,#220,.F.); +#15598=EDGE_CURVE('',#19536,#19535,#1766,.T.); +#15599=EDGE_CURVE('',#19537,#19536,#22751,.T.); +#15600=EDGE_CURVE('',#19538,#19537,#1767,.T.); +#15601=EDGE_CURVE('',#19538,#18749,#221,.T.); +#15602=EDGE_CURVE('',#18762,#19539,#222,.F.); +#15603=EDGE_CURVE('',#19540,#19539,#1768,.T.); +#15604=EDGE_CURVE('',#19541,#19540,#22752,.T.); +#15605=EDGE_CURVE('',#19542,#19541,#1769,.T.); +#15606=EDGE_CURVE('',#19542,#18763,#223,.T.); +#15607=EDGE_CURVE('',#18776,#19543,#224,.T.); +#15608=EDGE_CURVE('',#19544,#19543,#1770,.T.); +#15609=EDGE_CURVE('',#19545,#19544,#22753,.T.); +#15610=EDGE_CURVE('',#19546,#19545,#1771,.T.); +#15611=EDGE_CURVE('',#19546,#18777,#225,.T.); +#15612=EDGE_CURVE('',#18790,#19547,#226,.F.); +#15613=EDGE_CURVE('',#19548,#19547,#1772,.T.); +#15614=EDGE_CURVE('',#19549,#19548,#22754,.T.); +#15615=EDGE_CURVE('',#19550,#19549,#1773,.T.); +#15616=EDGE_CURVE('',#19550,#18791,#227,.T.); +#15617=EDGE_CURVE('',#18804,#19551,#228,.F.); +#15618=EDGE_CURVE('',#19552,#19551,#1774,.T.); +#15619=EDGE_CURVE('',#19553,#19552,#22755,.T.); +#15620=EDGE_CURVE('',#19554,#19553,#1775,.T.); +#15621=EDGE_CURVE('',#19554,#18805,#229,.T.); +#15622=EDGE_CURVE('',#18818,#19555,#230,.F.); +#15623=EDGE_CURVE('',#19556,#19555,#1776,.T.); +#15624=EDGE_CURVE('',#19557,#19556,#22756,.T.); +#15625=EDGE_CURVE('',#19558,#19557,#1777,.T.); +#15626=EDGE_CURVE('',#19558,#18819,#231,.T.); +#15627=EDGE_CURVE('',#18832,#19559,#232,.F.); +#15628=EDGE_CURVE('',#19560,#19559,#1778,.T.); +#15629=EDGE_CURVE('',#19561,#19560,#22757,.T.); +#15630=EDGE_CURVE('',#19562,#19561,#1779,.T.); +#15631=EDGE_CURVE('',#19562,#18833,#233,.T.); +#15632=EDGE_CURVE('',#18846,#19563,#234,.F.); +#15633=EDGE_CURVE('',#19564,#19563,#1780,.T.); +#15634=EDGE_CURVE('',#19565,#19564,#22758,.T.); +#15635=EDGE_CURVE('',#19566,#19565,#1781,.T.); +#15636=EDGE_CURVE('',#19566,#18847,#235,.T.); +#15637=EDGE_CURVE('',#18860,#19567,#236,.T.); +#15638=EDGE_CURVE('',#19568,#19567,#1782,.T.); +#15639=EDGE_CURVE('',#19569,#19568,#22759,.T.); +#15640=EDGE_CURVE('',#19570,#19569,#1783,.T.); +#15641=EDGE_CURVE('',#19570,#18861,#237,.T.); +#15642=EDGE_CURVE('',#18874,#19571,#238,.F.); +#15643=EDGE_CURVE('',#19572,#19571,#1784,.T.); +#15644=EDGE_CURVE('',#19573,#19572,#22760,.T.); +#15645=EDGE_CURVE('',#19574,#19573,#1785,.T.); +#15646=EDGE_CURVE('',#19574,#18875,#239,.T.); +#15647=EDGE_CURVE('',#18888,#19575,#240,.F.); +#15648=EDGE_CURVE('',#19576,#19575,#1786,.T.); +#15649=EDGE_CURVE('',#19577,#19576,#22761,.T.); +#15650=EDGE_CURVE('',#19578,#19577,#1787,.T.); +#15651=EDGE_CURVE('',#19578,#18889,#241,.T.); +#15652=EDGE_CURVE('',#18902,#19579,#242,.F.); +#15653=EDGE_CURVE('',#19580,#19579,#1788,.T.); +#15654=EDGE_CURVE('',#19581,#19580,#22762,.T.); +#15655=EDGE_CURVE('',#19582,#19581,#1789,.T.); +#15656=EDGE_CURVE('',#19582,#18903,#243,.T.); +#15657=EDGE_CURVE('',#18916,#19583,#244,.F.); +#15658=EDGE_CURVE('',#19584,#19583,#1790,.T.); +#15659=EDGE_CURVE('',#19585,#19584,#22763,.T.); +#15660=EDGE_CURVE('',#19586,#19585,#1791,.T.); +#15661=EDGE_CURVE('',#19586,#18917,#245,.T.); +#15662=EDGE_CURVE('',#18930,#19587,#246,.F.); +#15663=EDGE_CURVE('',#19588,#19587,#1792,.T.); +#15664=EDGE_CURVE('',#19589,#19588,#22764,.T.); +#15665=EDGE_CURVE('',#19590,#19589,#1793,.T.); +#15666=EDGE_CURVE('',#19590,#18931,#247,.T.); +#15667=EDGE_CURVE('',#18944,#19591,#248,.T.); +#15668=EDGE_CURVE('',#19592,#19591,#1794,.T.); +#15669=EDGE_CURVE('',#19593,#19592,#22765,.T.); +#15670=EDGE_CURVE('',#19594,#19593,#1795,.T.); +#15671=EDGE_CURVE('',#19594,#18945,#249,.T.); +#15672=EDGE_CURVE('',#18958,#19595,#250,.T.); +#15673=EDGE_CURVE('',#19596,#19595,#1796,.T.); +#15674=EDGE_CURVE('',#19597,#19596,#22766,.T.); +#15675=EDGE_CURVE('',#19598,#19597,#1797,.T.); +#15676=EDGE_CURVE('',#19598,#18959,#251,.T.); +#15677=EDGE_CURVE('',#18972,#19599,#252,.F.); +#15678=EDGE_CURVE('',#19600,#19599,#1798,.T.); +#15679=EDGE_CURVE('',#19601,#19600,#22767,.T.); +#15680=EDGE_CURVE('',#19602,#19601,#1799,.T.); +#15681=EDGE_CURVE('',#19602,#18973,#253,.T.); +#15682=EDGE_CURVE('',#18986,#19603,#254,.F.); +#15683=EDGE_CURVE('',#19604,#19603,#1800,.T.); +#15684=EDGE_CURVE('',#19605,#19604,#22768,.T.); +#15685=EDGE_CURVE('',#19606,#19605,#1801,.T.); +#15686=EDGE_CURVE('',#19606,#18987,#255,.T.); +#15687=EDGE_CURVE('',#19000,#19607,#256,.T.); +#15688=EDGE_CURVE('',#19608,#19607,#1802,.T.); +#15689=EDGE_CURVE('',#19609,#19608,#22769,.T.); +#15690=EDGE_CURVE('',#19610,#19609,#1803,.T.); +#15691=EDGE_CURVE('',#19610,#19001,#257,.T.); +#15692=EDGE_CURVE('',#19532,#19611,#22770,.T.); +#15693=EDGE_CURVE('',#19611,#19612,#56,.F.); +#15694=EDGE_CURVE('',#19613,#19612,#22771,.T.); +#15695=EDGE_CURVE('',#19613,#19614,#57,.F.); +#15696=EDGE_CURVE('',#19614,#19533,#22772,.T.); +#15697=EDGE_CURVE('',#19536,#19615,#22773,.T.); +#15698=EDGE_CURVE('',#19615,#19616,#58,.F.); +#15699=EDGE_CURVE('',#19617,#19616,#22774,.T.); +#15700=EDGE_CURVE('',#19617,#19618,#59,.F.); +#15701=EDGE_CURVE('',#19618,#19537,#22775,.T.); +#15702=EDGE_CURVE('',#19540,#19619,#22776,.T.); +#15703=EDGE_CURVE('',#19619,#19620,#60,.F.); +#15704=EDGE_CURVE('',#19621,#19620,#22777,.T.); +#15705=EDGE_CURVE('',#19621,#19622,#61,.F.); +#15706=EDGE_CURVE('',#19622,#19541,#22778,.T.); +#15707=EDGE_CURVE('',#19544,#19623,#22779,.T.); +#15708=EDGE_CURVE('',#19623,#19624,#62,.F.); +#15709=EDGE_CURVE('',#19625,#19624,#22780,.T.); +#15710=EDGE_CURVE('',#19625,#19626,#63,.F.); +#15711=EDGE_CURVE('',#19626,#19545,#22781,.T.); +#15712=EDGE_CURVE('',#19548,#19627,#22782,.T.); +#15713=EDGE_CURVE('',#19627,#19628,#64,.F.); +#15714=EDGE_CURVE('',#19629,#19628,#22783,.T.); +#15715=EDGE_CURVE('',#19629,#19630,#65,.F.); +#15716=EDGE_CURVE('',#19630,#19549,#22784,.T.); +#15717=EDGE_CURVE('',#19552,#19631,#22785,.T.); +#15718=EDGE_CURVE('',#19631,#19632,#66,.F.); +#15719=EDGE_CURVE('',#19633,#19632,#22786,.T.); +#15720=EDGE_CURVE('',#19633,#19634,#67,.F.); +#15721=EDGE_CURVE('',#19634,#19553,#22787,.T.); +#15722=EDGE_CURVE('',#19556,#19635,#22788,.T.); +#15723=EDGE_CURVE('',#19635,#19636,#68,.F.); +#15724=EDGE_CURVE('',#19637,#19636,#22789,.T.); +#15725=EDGE_CURVE('',#19637,#19638,#69,.F.); +#15726=EDGE_CURVE('',#19638,#19557,#22790,.T.); +#15727=EDGE_CURVE('',#19560,#19639,#22791,.T.); +#15728=EDGE_CURVE('',#19639,#19640,#70,.F.); +#15729=EDGE_CURVE('',#19641,#19640,#22792,.T.); +#15730=EDGE_CURVE('',#19641,#19642,#71,.F.); +#15731=EDGE_CURVE('',#19642,#19561,#22793,.T.); +#15732=EDGE_CURVE('',#19564,#19643,#22794,.T.); +#15733=EDGE_CURVE('',#19643,#19644,#72,.F.); +#15734=EDGE_CURVE('',#19645,#19644,#22795,.T.); +#15735=EDGE_CURVE('',#19645,#19646,#73,.F.); +#15736=EDGE_CURVE('',#19646,#19565,#22796,.T.); +#15737=EDGE_CURVE('',#19568,#19647,#22797,.T.); +#15738=EDGE_CURVE('',#19647,#19648,#74,.F.); +#15739=EDGE_CURVE('',#19649,#19648,#22798,.T.); +#15740=EDGE_CURVE('',#19649,#19650,#75,.F.); +#15741=EDGE_CURVE('',#19650,#19569,#22799,.T.); +#15742=EDGE_CURVE('',#19572,#19651,#22800,.T.); +#15743=EDGE_CURVE('',#19651,#19652,#76,.F.); +#15744=EDGE_CURVE('',#19653,#19652,#22801,.T.); +#15745=EDGE_CURVE('',#19653,#19654,#77,.F.); +#15746=EDGE_CURVE('',#19654,#19573,#22802,.T.); +#15747=EDGE_CURVE('',#19576,#19655,#22803,.T.); +#15748=EDGE_CURVE('',#19655,#19656,#78,.F.); +#15749=EDGE_CURVE('',#19657,#19656,#22804,.T.); +#15750=EDGE_CURVE('',#19657,#19658,#79,.F.); +#15751=EDGE_CURVE('',#19658,#19577,#22805,.T.); +#15752=EDGE_CURVE('',#19580,#19659,#22806,.T.); +#15753=EDGE_CURVE('',#19659,#19660,#80,.F.); +#15754=EDGE_CURVE('',#19661,#19660,#22807,.T.); +#15755=EDGE_CURVE('',#19661,#19662,#81,.F.); +#15756=EDGE_CURVE('',#19662,#19581,#22808,.T.); +#15757=EDGE_CURVE('',#19584,#19663,#22809,.T.); +#15758=EDGE_CURVE('',#19663,#19664,#82,.F.); +#15759=EDGE_CURVE('',#19665,#19664,#22810,.T.); +#15760=EDGE_CURVE('',#19665,#19666,#83,.F.); +#15761=EDGE_CURVE('',#19666,#19585,#22811,.T.); +#15762=EDGE_CURVE('',#19588,#19667,#22812,.T.); +#15763=EDGE_CURVE('',#19667,#19668,#84,.F.); +#15764=EDGE_CURVE('',#19669,#19668,#22813,.T.); +#15765=EDGE_CURVE('',#19669,#19670,#85,.F.); +#15766=EDGE_CURVE('',#19670,#19589,#22814,.T.); +#15767=EDGE_CURVE('',#19592,#19671,#22815,.T.); +#15768=EDGE_CURVE('',#19671,#19672,#86,.F.); +#15769=EDGE_CURVE('',#19673,#19672,#22816,.T.); +#15770=EDGE_CURVE('',#19673,#19674,#87,.F.); +#15771=EDGE_CURVE('',#19674,#19593,#22817,.T.); +#15772=EDGE_CURVE('',#19596,#19675,#22818,.T.); +#15773=EDGE_CURVE('',#19675,#19676,#88,.F.); +#15774=EDGE_CURVE('',#19677,#19676,#22819,.T.); +#15775=EDGE_CURVE('',#19677,#19678,#89,.F.); +#15776=EDGE_CURVE('',#19678,#19597,#22820,.T.); +#15777=EDGE_CURVE('',#19600,#19679,#22821,.T.); +#15778=EDGE_CURVE('',#19679,#19680,#90,.F.); +#15779=EDGE_CURVE('',#19681,#19680,#22822,.T.); +#15780=EDGE_CURVE('',#19681,#19682,#91,.F.); +#15781=EDGE_CURVE('',#19682,#19601,#22823,.T.); +#15782=EDGE_CURVE('',#19604,#19683,#22824,.T.); +#15783=EDGE_CURVE('',#19683,#19684,#92,.F.); +#15784=EDGE_CURVE('',#19685,#19684,#22825,.T.); +#15785=EDGE_CURVE('',#19685,#19686,#93,.F.); +#15786=EDGE_CURVE('',#19686,#19605,#22826,.T.); +#15787=EDGE_CURVE('',#19285,#19687,#258,.F.); +#15788=EDGE_CURVE('',#19688,#19284,#259,.T.); +#15789=EDGE_CURVE('',#19688,#19689,#1804,.T.); +#15790=EDGE_CURVE('',#19689,#19613,#260,.T.); +#15791=EDGE_CURVE('',#19612,#19690,#261,.T.); +#15792=EDGE_CURVE('',#19690,#19687,#1805,.T.); +#15793=EDGE_CURVE('',#19271,#19691,#262,.F.); +#15794=EDGE_CURVE('',#19692,#19270,#263,.T.); +#15795=EDGE_CURVE('',#19692,#19693,#1806,.T.); +#15796=EDGE_CURVE('',#19693,#19617,#264,.T.); +#15797=EDGE_CURVE('',#19616,#19694,#265,.T.); +#15798=EDGE_CURVE('',#19694,#19691,#1807,.T.); +#15799=EDGE_CURVE('',#19257,#19695,#266,.F.); +#15800=EDGE_CURVE('',#19696,#19256,#267,.T.); +#15801=EDGE_CURVE('',#19696,#19697,#1808,.T.); +#15802=EDGE_CURVE('',#19697,#19621,#268,.T.); +#15803=EDGE_CURVE('',#19620,#19698,#269,.T.); +#15804=EDGE_CURVE('',#19698,#19695,#1809,.T.); +#15805=EDGE_CURVE('',#19243,#19699,#270,.F.); +#15806=EDGE_CURVE('',#19700,#19242,#271,.T.); +#15807=EDGE_CURVE('',#19700,#19701,#1810,.T.); +#15808=EDGE_CURVE('',#19701,#19625,#272,.T.); +#15809=EDGE_CURVE('',#19624,#19702,#273,.T.); +#15810=EDGE_CURVE('',#19702,#19699,#1811,.T.); +#15811=EDGE_CURVE('',#19229,#19703,#274,.F.); +#15812=EDGE_CURVE('',#19704,#19228,#275,.T.); +#15813=EDGE_CURVE('',#19704,#19705,#1812,.T.); +#15814=EDGE_CURVE('',#19705,#19629,#276,.T.); +#15815=EDGE_CURVE('',#19628,#19706,#277,.T.); +#15816=EDGE_CURVE('',#19706,#19703,#1813,.T.); +#15817=EDGE_CURVE('',#19215,#19707,#278,.F.); +#15818=EDGE_CURVE('',#19708,#19214,#279,.T.); +#15819=EDGE_CURVE('',#19708,#19709,#1814,.T.); +#15820=EDGE_CURVE('',#19709,#19633,#280,.T.); +#15821=EDGE_CURVE('',#19632,#19710,#281,.T.); +#15822=EDGE_CURVE('',#19710,#19707,#1815,.T.); +#15823=EDGE_CURVE('',#19201,#19711,#282,.F.); +#15824=EDGE_CURVE('',#19712,#19200,#283,.T.); +#15825=EDGE_CURVE('',#19712,#19713,#1816,.T.); +#15826=EDGE_CURVE('',#19713,#19637,#284,.T.); +#15827=EDGE_CURVE('',#19636,#19714,#285,.T.); +#15828=EDGE_CURVE('',#19714,#19711,#1817,.T.); +#15829=EDGE_CURVE('',#19187,#19715,#286,.F.); +#15830=EDGE_CURVE('',#19716,#19186,#287,.T.); +#15831=EDGE_CURVE('',#19716,#19717,#1818,.T.); +#15832=EDGE_CURVE('',#19717,#19641,#288,.T.); +#15833=EDGE_CURVE('',#19640,#19718,#289,.T.); +#15834=EDGE_CURVE('',#19718,#19715,#1819,.T.); +#15835=EDGE_CURVE('',#19173,#19719,#290,.F.); +#15836=EDGE_CURVE('',#19720,#19172,#291,.T.); +#15837=EDGE_CURVE('',#19720,#19721,#1820,.T.); +#15838=EDGE_CURVE('',#19721,#19645,#292,.T.); +#15839=EDGE_CURVE('',#19644,#19722,#293,.T.); +#15840=EDGE_CURVE('',#19722,#19719,#1821,.T.); +#15841=EDGE_CURVE('',#19159,#19723,#294,.F.); +#15842=EDGE_CURVE('',#19724,#19158,#295,.T.); +#15843=EDGE_CURVE('',#19724,#19725,#1822,.T.); +#15844=EDGE_CURVE('',#19725,#19649,#296,.T.); +#15845=EDGE_CURVE('',#19648,#19726,#297,.T.); +#15846=EDGE_CURVE('',#19726,#19723,#1823,.T.); +#15847=EDGE_CURVE('',#19145,#19727,#298,.F.); +#15848=EDGE_CURVE('',#19728,#19144,#299,.T.); +#15849=EDGE_CURVE('',#19728,#19729,#1824,.T.); +#15850=EDGE_CURVE('',#19729,#19653,#300,.T.); +#15851=EDGE_CURVE('',#19652,#19730,#301,.T.); +#15852=EDGE_CURVE('',#19730,#19727,#1825,.T.); +#15853=EDGE_CURVE('',#19131,#19731,#302,.F.); +#15854=EDGE_CURVE('',#19732,#19130,#303,.T.); +#15855=EDGE_CURVE('',#19732,#19733,#1826,.T.); +#15856=EDGE_CURVE('',#19733,#19657,#304,.T.); +#15857=EDGE_CURVE('',#19656,#19734,#305,.T.); +#15858=EDGE_CURVE('',#19734,#19731,#1827,.T.); +#15859=EDGE_CURVE('',#19117,#19735,#306,.F.); +#15860=EDGE_CURVE('',#19736,#19116,#307,.T.); +#15861=EDGE_CURVE('',#19736,#19737,#1828,.T.); +#15862=EDGE_CURVE('',#19737,#19661,#308,.T.); +#15863=EDGE_CURVE('',#19660,#19738,#309,.T.); +#15864=EDGE_CURVE('',#19738,#19735,#1829,.T.); +#15865=EDGE_CURVE('',#19103,#19739,#310,.F.); +#15866=EDGE_CURVE('',#19740,#19102,#311,.T.); +#15867=EDGE_CURVE('',#19740,#19741,#1830,.T.); +#15868=EDGE_CURVE('',#19741,#19665,#312,.T.); +#15869=EDGE_CURVE('',#19664,#19742,#313,.T.); +#15870=EDGE_CURVE('',#19742,#19739,#1831,.T.); +#15871=EDGE_CURVE('',#19089,#19743,#314,.F.); +#15872=EDGE_CURVE('',#19744,#19088,#315,.T.); +#15873=EDGE_CURVE('',#19744,#19745,#1832,.T.); +#15874=EDGE_CURVE('',#19745,#19669,#316,.T.); +#15875=EDGE_CURVE('',#19668,#19746,#317,.T.); +#15876=EDGE_CURVE('',#19746,#19743,#1833,.T.); +#15877=EDGE_CURVE('',#19075,#19747,#318,.F.); +#15878=EDGE_CURVE('',#19748,#19074,#319,.T.); +#15879=EDGE_CURVE('',#19748,#19749,#1834,.T.); +#15880=EDGE_CURVE('',#19749,#19673,#320,.T.); +#15881=EDGE_CURVE('',#19672,#19750,#321,.T.); +#15882=EDGE_CURVE('',#19750,#19747,#1835,.T.); +#15883=EDGE_CURVE('',#19061,#19751,#322,.F.); +#15884=EDGE_CURVE('',#19752,#19060,#323,.T.); +#15885=EDGE_CURVE('',#19752,#19753,#1836,.T.); +#15886=EDGE_CURVE('',#19753,#19677,#324,.T.); +#15887=EDGE_CURVE('',#19676,#19754,#325,.T.); +#15888=EDGE_CURVE('',#19754,#19751,#1837,.T.); +#15889=EDGE_CURVE('',#19047,#19755,#326,.F.); +#15890=EDGE_CURVE('',#19756,#19046,#327,.T.); +#15891=EDGE_CURVE('',#19756,#19757,#1838,.T.); +#15892=EDGE_CURVE('',#19757,#19681,#328,.T.); +#15893=EDGE_CURVE('',#19680,#19758,#329,.T.); +#15894=EDGE_CURVE('',#19758,#19755,#1839,.T.); +#15895=EDGE_CURVE('',#19033,#19759,#330,.F.); +#15896=EDGE_CURVE('',#19760,#19032,#331,.T.); +#15897=EDGE_CURVE('',#19760,#19761,#1840,.T.); +#15898=EDGE_CURVE('',#19761,#19685,#332,.T.); +#15899=EDGE_CURVE('',#19684,#19762,#333,.T.); +#15900=EDGE_CURVE('',#19762,#19759,#1841,.T.); +#15901=EDGE_CURVE('',#19019,#19763,#334,.F.); +#15902=EDGE_CURVE('',#19764,#19018,#335,.T.); +#15903=EDGE_CURVE('',#19764,#19765,#1842,.T.); +#15904=EDGE_CURVE('',#19765,#19766,#336,.T.); +#15905=EDGE_CURVE('',#19766,#19767,#22827,.T.); +#15906=EDGE_CURVE('',#19767,#19768,#337,.T.); +#15907=EDGE_CURVE('',#19768,#19763,#1843,.T.); +#15908=EDGE_CURVE('',#19007,#19012,#22828,.T.); +#15909=EDGE_CURVE('',#19006,#19013,#22829,.F.); +#15910=EDGE_CURVE('',#18728,#19291,#22830,.T.); +#15911=EDGE_CURVE('',#18729,#19290,#22831,.F.); +#15912=EDGE_CURVE('',#19409,#19769,#94,.F.); +#15913=EDGE_CURVE('',#19769,#19528,#22832,.T.); +#15914=EDGE_CURVE('',#19530,#19770,#22833,.T.); +#15915=EDGE_CURVE('',#19770,#19410,#95,.F.); +#15916=EDGE_CURVE('',#19608,#19771,#22834,.T.); +#15917=EDGE_CURVE('',#19771,#19767,#96,.F.); +#15918=EDGE_CURVE('',#19766,#19772,#97,.F.); +#15919=EDGE_CURVE('',#19772,#19609,#22835,.T.); +#15920=EDGE_CURVE('',#19690,#19611,#22836,.T.); +#15921=EDGE_CURVE('',#19687,#19531,#22837,.T.); +#15922=EDGE_CURVE('',#19286,#18733,#22838,.T.); +#15923=EDGE_CURVE('',#19285,#18734,#22839,.T.); +#15924=EDGE_CURVE('',#19287,#18732,#22840,.T.); +#15925=EDGE_CURVE('',#19288,#18731,#22841,.T.); +#15926=EDGE_CURVE('',#19289,#18730,#22842,.T.); +#15927=EDGE_CURVE('',#18718,#18165,#22843,.T.); +#15928=EDGE_CURVE('',#18717,#18166,#22844,.T.); +#15929=EDGE_CURVE('',#18719,#18164,#22845,.T.); +#15930=EDGE_CURVE('',#18720,#18163,#22846,.T.); +#15931=EDGE_CURVE('',#18721,#18162,#22847,.T.); +#15932=EDGE_CURVE('',#19489,#19293,#22848,.T.); +#15933=EDGE_CURVE('',#19413,#19294,#22849,.T.); +#15934=EDGE_CURVE('',#19014,#19005,#22850,.T.); +#15935=EDGE_CURVE('',#19015,#19004,#22851,.T.); +#15936=EDGE_CURVE('',#19016,#19003,#22852,.T.); +#15937=EDGE_CURVE('',#19017,#19002,#22853,.T.); +#15938=EDGE_CURVE('',#19018,#19001,#22854,.T.); +#15939=EDGE_CURVE('',#19764,#19610,#22855,.T.); +#15940=EDGE_CURVE('',#19765,#19772,#22856,.T.); +#15941=EDGE_CURVE('',#18446,#18437,#22857,.T.); +#15942=EDGE_CURVE('',#18447,#18436,#22858,.T.); +#15943=EDGE_CURVE('',#18448,#18435,#22859,.T.); +#15944=EDGE_CURVE('',#18449,#18434,#22860,.T.); +#15945=EDGE_CURVE('',#18450,#18433,#22861,.T.); +#15946=EDGE_CURVE('',#19529,#19412,#22862,.T.); +#15947=EDGE_CURVE('',#19770,#19411,#22863,.T.); +#15948=EDGE_CURVE('',#19768,#19771,#22864,.T.); +#15949=EDGE_CURVE('',#19763,#19607,#22865,.T.); +#15950=EDGE_CURVE('',#19020,#18999,#22866,.T.); +#15951=EDGE_CURVE('',#19019,#19000,#22867,.T.); +#15952=EDGE_CURVE('',#19021,#18998,#22868,.T.); +#15953=EDGE_CURVE('',#19022,#18997,#22869,.T.); +#15954=EDGE_CURVE('',#19023,#18996,#22870,.T.); +#15955=EDGE_CURVE('',#19024,#18995,#22871,.T.); +#15956=EDGE_CURVE('',#19027,#18992,#22872,.T.); +#15957=EDGE_CURVE('',#19028,#18991,#22873,.T.); +#15958=EDGE_CURVE('',#19029,#18990,#22874,.T.); +#15959=EDGE_CURVE('',#19030,#18989,#22875,.T.); +#15960=EDGE_CURVE('',#19031,#18988,#22876,.T.); +#15961=EDGE_CURVE('',#19032,#18987,#22877,.T.); +#15962=EDGE_CURVE('',#19760,#19606,#22878,.T.); +#15963=EDGE_CURVE('',#19761,#19686,#22879,.T.); +#15964=EDGE_CURVE('',#19762,#19683,#22880,.T.); +#15965=EDGE_CURVE('',#19759,#19603,#22881,.T.); +#15966=EDGE_CURVE('',#19034,#18985,#22882,.T.); +#15967=EDGE_CURVE('',#19033,#18986,#22883,.T.); +#15968=EDGE_CURVE('',#19035,#18984,#22884,.T.); +#15969=EDGE_CURVE('',#19036,#18983,#22885,.T.); +#15970=EDGE_CURVE('',#19037,#18982,#22886,.T.); +#15971=EDGE_CURVE('',#19038,#18981,#22887,.T.); +#15972=EDGE_CURVE('',#19041,#18978,#22888,.T.); +#15973=EDGE_CURVE('',#19042,#18977,#22889,.T.); +#15974=EDGE_CURVE('',#19043,#18976,#22890,.T.); +#15975=EDGE_CURVE('',#19044,#18975,#22891,.T.); +#15976=EDGE_CURVE('',#19045,#18974,#22892,.T.); +#15977=EDGE_CURVE('',#19046,#18973,#22893,.T.); +#15978=EDGE_CURVE('',#19756,#19602,#22894,.T.); +#15979=EDGE_CURVE('',#19757,#19682,#22895,.T.); +#15980=EDGE_CURVE('',#19758,#19679,#22896,.T.); +#15981=EDGE_CURVE('',#19755,#19599,#22897,.T.); +#15982=EDGE_CURVE('',#19048,#18971,#22898,.T.); +#15983=EDGE_CURVE('',#19047,#18972,#22899,.T.); +#15984=EDGE_CURVE('',#19049,#18970,#22900,.T.); +#15985=EDGE_CURVE('',#19050,#18969,#22901,.T.); +#15986=EDGE_CURVE('',#19051,#18968,#22902,.T.); +#15987=EDGE_CURVE('',#19052,#18967,#22903,.T.); +#15988=EDGE_CURVE('',#19055,#18964,#22904,.T.); +#15989=EDGE_CURVE('',#19056,#18963,#22905,.T.); +#15990=EDGE_CURVE('',#19057,#18962,#22906,.T.); +#15991=EDGE_CURVE('',#19058,#18961,#22907,.T.); +#15992=EDGE_CURVE('',#19059,#18960,#22908,.T.); +#15993=EDGE_CURVE('',#19060,#18959,#22909,.T.); +#15994=EDGE_CURVE('',#19752,#19598,#22910,.T.); +#15995=EDGE_CURVE('',#19753,#19678,#22911,.T.); +#15996=EDGE_CURVE('',#19754,#19675,#22912,.T.); +#15997=EDGE_CURVE('',#19751,#19595,#22913,.T.); +#15998=EDGE_CURVE('',#19062,#18957,#22914,.T.); +#15999=EDGE_CURVE('',#19061,#18958,#22915,.T.); +#16000=EDGE_CURVE('',#19063,#18956,#22916,.T.); +#16001=EDGE_CURVE('',#19064,#18955,#22917,.T.); +#16002=EDGE_CURVE('',#19065,#18954,#22918,.T.); +#16003=EDGE_CURVE('',#19066,#18953,#22919,.T.); +#16004=EDGE_CURVE('',#19069,#18950,#22920,.T.); +#16005=EDGE_CURVE('',#19070,#18949,#22921,.T.); +#16006=EDGE_CURVE('',#19071,#18948,#22922,.T.); +#16007=EDGE_CURVE('',#19072,#18947,#22923,.T.); +#16008=EDGE_CURVE('',#19073,#18946,#22924,.T.); +#16009=EDGE_CURVE('',#19074,#18945,#22925,.T.); +#16010=EDGE_CURVE('',#19748,#19594,#22926,.T.); +#16011=EDGE_CURVE('',#19749,#19674,#22927,.T.); +#16012=EDGE_CURVE('',#19750,#19671,#22928,.T.); +#16013=EDGE_CURVE('',#19747,#19591,#22929,.T.); +#16014=EDGE_CURVE('',#19076,#18943,#22930,.T.); +#16015=EDGE_CURVE('',#19075,#18944,#22931,.T.); +#16016=EDGE_CURVE('',#19077,#18942,#22932,.T.); +#16017=EDGE_CURVE('',#19078,#18941,#22933,.T.); +#16018=EDGE_CURVE('',#19079,#18940,#22934,.T.); +#16019=EDGE_CURVE('',#19080,#18939,#22935,.T.); +#16020=EDGE_CURVE('',#19083,#18936,#22936,.T.); +#16021=EDGE_CURVE('',#19084,#18935,#22937,.T.); +#16022=EDGE_CURVE('',#19085,#18934,#22938,.T.); +#16023=EDGE_CURVE('',#19086,#18933,#22939,.T.); +#16024=EDGE_CURVE('',#19087,#18932,#22940,.T.); +#16025=EDGE_CURVE('',#19088,#18931,#22941,.T.); +#16026=EDGE_CURVE('',#19744,#19590,#22942,.T.); +#16027=EDGE_CURVE('',#19745,#19670,#22943,.T.); +#16028=EDGE_CURVE('',#19746,#19667,#22944,.T.); +#16029=EDGE_CURVE('',#19743,#19587,#22945,.T.); +#16030=EDGE_CURVE('',#19090,#18929,#22946,.T.); +#16031=EDGE_CURVE('',#19089,#18930,#22947,.T.); +#16032=EDGE_CURVE('',#19091,#18928,#22948,.T.); +#16033=EDGE_CURVE('',#19092,#18927,#22949,.T.); +#16034=EDGE_CURVE('',#19093,#18926,#22950,.T.); +#16035=EDGE_CURVE('',#19094,#18925,#22951,.T.); +#16036=EDGE_CURVE('',#19097,#18922,#22952,.T.); +#16037=EDGE_CURVE('',#19098,#18921,#22953,.T.); +#16038=EDGE_CURVE('',#19099,#18920,#22954,.T.); +#16039=EDGE_CURVE('',#19100,#18919,#22955,.T.); +#16040=EDGE_CURVE('',#19101,#18918,#22956,.T.); +#16041=EDGE_CURVE('',#19102,#18917,#22957,.T.); +#16042=EDGE_CURVE('',#19740,#19586,#22958,.T.); +#16043=EDGE_CURVE('',#19741,#19666,#22959,.T.); +#16044=EDGE_CURVE('',#19742,#19663,#22960,.T.); +#16045=EDGE_CURVE('',#19739,#19583,#22961,.T.); +#16046=EDGE_CURVE('',#19104,#18915,#22962,.T.); +#16047=EDGE_CURVE('',#19103,#18916,#22963,.T.); +#16048=EDGE_CURVE('',#19105,#18914,#22964,.T.); +#16049=EDGE_CURVE('',#19106,#18913,#22965,.T.); +#16050=EDGE_CURVE('',#19107,#18912,#22966,.T.); +#16051=EDGE_CURVE('',#19108,#18911,#22967,.T.); +#16052=EDGE_CURVE('',#19111,#18908,#22968,.T.); +#16053=EDGE_CURVE('',#19112,#18907,#22969,.T.); +#16054=EDGE_CURVE('',#19113,#18906,#22970,.T.); +#16055=EDGE_CURVE('',#19114,#18905,#22971,.T.); +#16056=EDGE_CURVE('',#19115,#18904,#22972,.T.); +#16057=EDGE_CURVE('',#19116,#18903,#22973,.T.); +#16058=EDGE_CURVE('',#19736,#19582,#22974,.T.); +#16059=EDGE_CURVE('',#19737,#19662,#22975,.T.); +#16060=EDGE_CURVE('',#19738,#19659,#22976,.T.); +#16061=EDGE_CURVE('',#19735,#19579,#22977,.T.); +#16062=EDGE_CURVE('',#19118,#18901,#22978,.T.); +#16063=EDGE_CURVE('',#19117,#18902,#22979,.T.); +#16064=EDGE_CURVE('',#19119,#18900,#22980,.T.); +#16065=EDGE_CURVE('',#19120,#18899,#22981,.T.); +#16066=EDGE_CURVE('',#19121,#18898,#22982,.T.); +#16067=EDGE_CURVE('',#19122,#18897,#22983,.T.); +#16068=EDGE_CURVE('',#19125,#18894,#22984,.T.); +#16069=EDGE_CURVE('',#19126,#18893,#22985,.T.); +#16070=EDGE_CURVE('',#19127,#18892,#22986,.T.); +#16071=EDGE_CURVE('',#19128,#18891,#22987,.T.); +#16072=EDGE_CURVE('',#19129,#18890,#22988,.T.); +#16073=EDGE_CURVE('',#19130,#18889,#22989,.T.); +#16074=EDGE_CURVE('',#19732,#19578,#22990,.T.); +#16075=EDGE_CURVE('',#19733,#19658,#22991,.T.); +#16076=EDGE_CURVE('',#19734,#19655,#22992,.T.); +#16077=EDGE_CURVE('',#19731,#19575,#22993,.T.); +#16078=EDGE_CURVE('',#19132,#18887,#22994,.T.); +#16079=EDGE_CURVE('',#19131,#18888,#22995,.T.); +#16080=EDGE_CURVE('',#19133,#18886,#22996,.T.); +#16081=EDGE_CURVE('',#19134,#18885,#22997,.T.); +#16082=EDGE_CURVE('',#19135,#18884,#22998,.T.); +#16083=EDGE_CURVE('',#19136,#18883,#22999,.T.); +#16084=EDGE_CURVE('',#19139,#18880,#23000,.T.); +#16085=EDGE_CURVE('',#19140,#18879,#23001,.T.); +#16086=EDGE_CURVE('',#19141,#18878,#23002,.T.); +#16087=EDGE_CURVE('',#19142,#18877,#23003,.T.); +#16088=EDGE_CURVE('',#19143,#18876,#23004,.T.); +#16089=EDGE_CURVE('',#19144,#18875,#23005,.T.); +#16090=EDGE_CURVE('',#19728,#19574,#23006,.T.); +#16091=EDGE_CURVE('',#19729,#19654,#23007,.T.); +#16092=EDGE_CURVE('',#19730,#19651,#23008,.T.); +#16093=EDGE_CURVE('',#19727,#19571,#23009,.T.); +#16094=EDGE_CURVE('',#19146,#18873,#23010,.T.); +#16095=EDGE_CURVE('',#19145,#18874,#23011,.T.); +#16096=EDGE_CURVE('',#19147,#18872,#23012,.T.); +#16097=EDGE_CURVE('',#19148,#18871,#23013,.T.); +#16098=EDGE_CURVE('',#19149,#18870,#23014,.T.); +#16099=EDGE_CURVE('',#19150,#18869,#23015,.T.); +#16100=EDGE_CURVE('',#19153,#18866,#23016,.T.); +#16101=EDGE_CURVE('',#19154,#18865,#23017,.T.); +#16102=EDGE_CURVE('',#19155,#18864,#23018,.T.); +#16103=EDGE_CURVE('',#19156,#18863,#23019,.T.); +#16104=EDGE_CURVE('',#19157,#18862,#23020,.T.); +#16105=EDGE_CURVE('',#19158,#18861,#23021,.T.); +#16106=EDGE_CURVE('',#19724,#19570,#23022,.T.); +#16107=EDGE_CURVE('',#19725,#19650,#23023,.T.); +#16108=EDGE_CURVE('',#19726,#19647,#23024,.T.); +#16109=EDGE_CURVE('',#19723,#19567,#23025,.T.); +#16110=EDGE_CURVE('',#19160,#18859,#23026,.T.); +#16111=EDGE_CURVE('',#19159,#18860,#23027,.T.); +#16112=EDGE_CURVE('',#19161,#18858,#23028,.T.); +#16113=EDGE_CURVE('',#19162,#18857,#23029,.T.); +#16114=EDGE_CURVE('',#19163,#18856,#23030,.T.); +#16115=EDGE_CURVE('',#19164,#18855,#23031,.T.); +#16116=EDGE_CURVE('',#19167,#18852,#23032,.T.); +#16117=EDGE_CURVE('',#19168,#18851,#23033,.T.); +#16118=EDGE_CURVE('',#19169,#18850,#23034,.T.); +#16119=EDGE_CURVE('',#19170,#18849,#23035,.T.); +#16120=EDGE_CURVE('',#19171,#18848,#23036,.T.); +#16121=EDGE_CURVE('',#19172,#18847,#23037,.T.); +#16122=EDGE_CURVE('',#19720,#19566,#23038,.T.); +#16123=EDGE_CURVE('',#19721,#19646,#23039,.T.); +#16124=EDGE_CURVE('',#19722,#19643,#23040,.T.); +#16125=EDGE_CURVE('',#19719,#19563,#23041,.T.); +#16126=EDGE_CURVE('',#19174,#18845,#23042,.T.); +#16127=EDGE_CURVE('',#19173,#18846,#23043,.T.); +#16128=EDGE_CURVE('',#19175,#18844,#23044,.T.); +#16129=EDGE_CURVE('',#19176,#18843,#23045,.T.); +#16130=EDGE_CURVE('',#19177,#18842,#23046,.T.); +#16131=EDGE_CURVE('',#19178,#18841,#23047,.T.); +#16132=EDGE_CURVE('',#19181,#18838,#23048,.T.); +#16133=EDGE_CURVE('',#19182,#18837,#23049,.T.); +#16134=EDGE_CURVE('',#19183,#18836,#23050,.T.); +#16135=EDGE_CURVE('',#19184,#18835,#23051,.T.); +#16136=EDGE_CURVE('',#19185,#18834,#23052,.T.); +#16137=EDGE_CURVE('',#19186,#18833,#23053,.T.); +#16138=EDGE_CURVE('',#19716,#19562,#23054,.T.); +#16139=EDGE_CURVE('',#19717,#19642,#23055,.T.); +#16140=EDGE_CURVE('',#19718,#19639,#23056,.T.); +#16141=EDGE_CURVE('',#19715,#19559,#23057,.T.); +#16142=EDGE_CURVE('',#19188,#18831,#23058,.T.); +#16143=EDGE_CURVE('',#19187,#18832,#23059,.T.); +#16144=EDGE_CURVE('',#19189,#18830,#23060,.T.); +#16145=EDGE_CURVE('',#19190,#18829,#23061,.T.); +#16146=EDGE_CURVE('',#19191,#18828,#23062,.T.); +#16147=EDGE_CURVE('',#19192,#18827,#23063,.T.); +#16148=EDGE_CURVE('',#19195,#18824,#23064,.T.); +#16149=EDGE_CURVE('',#19196,#18823,#23065,.T.); +#16150=EDGE_CURVE('',#19197,#18822,#23066,.T.); +#16151=EDGE_CURVE('',#19198,#18821,#23067,.T.); +#16152=EDGE_CURVE('',#19199,#18820,#23068,.T.); +#16153=EDGE_CURVE('',#19200,#18819,#23069,.T.); +#16154=EDGE_CURVE('',#19712,#19558,#23070,.T.); +#16155=EDGE_CURVE('',#19713,#19638,#23071,.T.); +#16156=EDGE_CURVE('',#19714,#19635,#23072,.T.); +#16157=EDGE_CURVE('',#19711,#19555,#23073,.T.); +#16158=EDGE_CURVE('',#19202,#18817,#23074,.T.); +#16159=EDGE_CURVE('',#19201,#18818,#23075,.T.); +#16160=EDGE_CURVE('',#19203,#18816,#23076,.T.); +#16161=EDGE_CURVE('',#19204,#18815,#23077,.T.); +#16162=EDGE_CURVE('',#19205,#18814,#23078,.T.); +#16163=EDGE_CURVE('',#19206,#18813,#23079,.T.); +#16164=EDGE_CURVE('',#19209,#18810,#23080,.T.); +#16165=EDGE_CURVE('',#19210,#18809,#23081,.T.); +#16166=EDGE_CURVE('',#19211,#18808,#23082,.T.); +#16167=EDGE_CURVE('',#19212,#18807,#23083,.T.); +#16168=EDGE_CURVE('',#19213,#18806,#23084,.T.); +#16169=EDGE_CURVE('',#19214,#18805,#23085,.T.); +#16170=EDGE_CURVE('',#19708,#19554,#23086,.T.); +#16171=EDGE_CURVE('',#19709,#19634,#23087,.T.); +#16172=EDGE_CURVE('',#19710,#19631,#23088,.T.); +#16173=EDGE_CURVE('',#19707,#19551,#23089,.T.); +#16174=EDGE_CURVE('',#19216,#18803,#23090,.T.); +#16175=EDGE_CURVE('',#19215,#18804,#23091,.T.); +#16176=EDGE_CURVE('',#19217,#18802,#23092,.T.); +#16177=EDGE_CURVE('',#19218,#18801,#23093,.T.); +#16178=EDGE_CURVE('',#19219,#18800,#23094,.T.); +#16179=EDGE_CURVE('',#19220,#18799,#23095,.T.); +#16180=EDGE_CURVE('',#19223,#18796,#23096,.T.); +#16181=EDGE_CURVE('',#19224,#18795,#23097,.T.); +#16182=EDGE_CURVE('',#19225,#18794,#23098,.T.); +#16183=EDGE_CURVE('',#19226,#18793,#23099,.T.); +#16184=EDGE_CURVE('',#19227,#18792,#23100,.T.); +#16185=EDGE_CURVE('',#19228,#18791,#23101,.T.); +#16186=EDGE_CURVE('',#19704,#19550,#23102,.T.); +#16187=EDGE_CURVE('',#19705,#19630,#23103,.T.); +#16188=EDGE_CURVE('',#19706,#19627,#23104,.T.); +#16189=EDGE_CURVE('',#19703,#19547,#23105,.T.); +#16190=EDGE_CURVE('',#19230,#18789,#23106,.T.); +#16191=EDGE_CURVE('',#19229,#18790,#23107,.T.); +#16192=EDGE_CURVE('',#19231,#18788,#23108,.T.); +#16193=EDGE_CURVE('',#19232,#18787,#23109,.T.); +#16194=EDGE_CURVE('',#19233,#18786,#23110,.T.); +#16195=EDGE_CURVE('',#19234,#18785,#23111,.T.); +#16196=EDGE_CURVE('',#19237,#18782,#23112,.T.); +#16197=EDGE_CURVE('',#19238,#18781,#23113,.T.); +#16198=EDGE_CURVE('',#19239,#18780,#23114,.T.); +#16199=EDGE_CURVE('',#19240,#18779,#23115,.T.); +#16200=EDGE_CURVE('',#19241,#18778,#23116,.T.); +#16201=EDGE_CURVE('',#19242,#18777,#23117,.T.); +#16202=EDGE_CURVE('',#19700,#19546,#23118,.T.); +#16203=EDGE_CURVE('',#19701,#19626,#23119,.T.); +#16204=EDGE_CURVE('',#19702,#19623,#23120,.T.); +#16205=EDGE_CURVE('',#19699,#19543,#23121,.T.); +#16206=EDGE_CURVE('',#19244,#18775,#23122,.T.); +#16207=EDGE_CURVE('',#19243,#18776,#23123,.T.); +#16208=EDGE_CURVE('',#19245,#18774,#23124,.T.); +#16209=EDGE_CURVE('',#19246,#18773,#23125,.T.); +#16210=EDGE_CURVE('',#19247,#18772,#23126,.T.); +#16211=EDGE_CURVE('',#19248,#18771,#23127,.T.); +#16212=EDGE_CURVE('',#19251,#18768,#23128,.T.); +#16213=EDGE_CURVE('',#19252,#18767,#23129,.T.); +#16214=EDGE_CURVE('',#19253,#18766,#23130,.T.); +#16215=EDGE_CURVE('',#19254,#18765,#23131,.T.); +#16216=EDGE_CURVE('',#19255,#18764,#23132,.T.); +#16217=EDGE_CURVE('',#19256,#18763,#23133,.T.); +#16218=EDGE_CURVE('',#19696,#19542,#23134,.T.); +#16219=EDGE_CURVE('',#19697,#19622,#23135,.T.); +#16220=EDGE_CURVE('',#19698,#19619,#23136,.T.); +#16221=EDGE_CURVE('',#19695,#19539,#23137,.T.); +#16222=EDGE_CURVE('',#19258,#18761,#23138,.T.); +#16223=EDGE_CURVE('',#19257,#18762,#23139,.T.); +#16224=EDGE_CURVE('',#19259,#18760,#23140,.T.); +#16225=EDGE_CURVE('',#19260,#18759,#23141,.T.); +#16226=EDGE_CURVE('',#19261,#18758,#23142,.T.); +#16227=EDGE_CURVE('',#19262,#18757,#23143,.T.); +#16228=EDGE_CURVE('',#19265,#18754,#23144,.T.); +#16229=EDGE_CURVE('',#19266,#18753,#23145,.T.); +#16230=EDGE_CURVE('',#19267,#18752,#23146,.T.); +#16231=EDGE_CURVE('',#19268,#18751,#23147,.T.); +#16232=EDGE_CURVE('',#19269,#18750,#23148,.T.); +#16233=EDGE_CURVE('',#19270,#18749,#23149,.T.); +#16234=EDGE_CURVE('',#19692,#19538,#23150,.T.); +#16235=EDGE_CURVE('',#19693,#19618,#23151,.T.); +#16236=EDGE_CURVE('',#19694,#19615,#23152,.T.); +#16237=EDGE_CURVE('',#19691,#19535,#23153,.T.); +#16238=EDGE_CURVE('',#19272,#18747,#23154,.T.); +#16239=EDGE_CURVE('',#19271,#18748,#23155,.T.); +#16240=EDGE_CURVE('',#19273,#18746,#23156,.T.); +#16241=EDGE_CURVE('',#19274,#18745,#23157,.T.); +#16242=EDGE_CURVE('',#19275,#18744,#23158,.T.); +#16243=EDGE_CURVE('',#19276,#18743,#23159,.T.); +#16244=EDGE_CURVE('',#19279,#18740,#23160,.T.); +#16245=EDGE_CURVE('',#19280,#18739,#23161,.T.); +#16246=EDGE_CURVE('',#19281,#18738,#23162,.T.); +#16247=EDGE_CURVE('',#19282,#18737,#23163,.T.); +#16248=EDGE_CURVE('',#19283,#18736,#23164,.T.); +#16249=EDGE_CURVE('',#19284,#18735,#23165,.T.); +#16250=EDGE_CURVE('',#19688,#19534,#23166,.T.); +#16251=EDGE_CURVE('',#19689,#19614,#23167,.T.); +#16252=EDGE_CURVE('',#18452,#18431,#23168,.T.); +#16253=EDGE_CURVE('',#18451,#18432,#23169,.T.); +#16254=EDGE_CURVE('',#18453,#18430,#23170,.T.); +#16255=EDGE_CURVE('',#18454,#18429,#23171,.T.); +#16256=EDGE_CURVE('',#18455,#18428,#23172,.T.); +#16257=EDGE_CURVE('',#18456,#18427,#23173,.T.); +#16258=EDGE_CURVE('',#18459,#18424,#23174,.T.); +#16259=EDGE_CURVE('',#18460,#18423,#23175,.T.); +#16260=EDGE_CURVE('',#18461,#18422,#23176,.T.); +#16261=EDGE_CURVE('',#18462,#18421,#23177,.T.); +#16262=EDGE_CURVE('',#18463,#18420,#23178,.T.); +#16263=EDGE_CURVE('',#18464,#18419,#23179,.T.); +#16264=EDGE_CURVE('',#19527,#19407,#23180,.T.); +#16265=EDGE_CURVE('',#19769,#19408,#23181,.T.); +#16266=EDGE_CURVE('',#19526,#19406,#23182,.T.); +#16267=EDGE_CURVE('',#19488,#19405,#23183,.T.); +#16268=EDGE_CURVE('',#18466,#18417,#23184,.T.); +#16269=EDGE_CURVE('',#18465,#18418,#23185,.T.); +#16270=EDGE_CURVE('',#18467,#18416,#23186,.T.); +#16271=EDGE_CURVE('',#18468,#18415,#23187,.T.); +#16272=EDGE_CURVE('',#18469,#18414,#23188,.T.); +#16273=EDGE_CURVE('',#18470,#18413,#23189,.T.); +#16274=EDGE_CURVE('',#18473,#18410,#23190,.T.); +#16275=EDGE_CURVE('',#18474,#18409,#23191,.T.); +#16276=EDGE_CURVE('',#18475,#18408,#23192,.T.); +#16277=EDGE_CURVE('',#18476,#18407,#23193,.T.); +#16278=EDGE_CURVE('',#18477,#18406,#23194,.T.); +#16279=EDGE_CURVE('',#18478,#18405,#23195,.T.); +#16280=EDGE_CURVE('',#19525,#19401,#23196,.T.); +#16281=EDGE_CURVE('',#19485,#19402,#23197,.T.); +#16282=EDGE_CURVE('',#19524,#19400,#23198,.T.); +#16283=EDGE_CURVE('',#19484,#19399,#23199,.T.); +#16284=EDGE_CURVE('',#18480,#18403,#23200,.T.); +#16285=EDGE_CURVE('',#18479,#18404,#23201,.T.); +#16286=EDGE_CURVE('',#18481,#18402,#23202,.T.); +#16287=EDGE_CURVE('',#18482,#18401,#23203,.T.); +#16288=EDGE_CURVE('',#18483,#18400,#23204,.T.); +#16289=EDGE_CURVE('',#18484,#18399,#23205,.T.); +#16290=EDGE_CURVE('',#18487,#18396,#23206,.T.); +#16291=EDGE_CURVE('',#18488,#18395,#23207,.T.); +#16292=EDGE_CURVE('',#18489,#18394,#23208,.T.); +#16293=EDGE_CURVE('',#18490,#18393,#23209,.T.); +#16294=EDGE_CURVE('',#18491,#18392,#23210,.T.); +#16295=EDGE_CURVE('',#18492,#18391,#23211,.T.); +#16296=EDGE_CURVE('',#19523,#19395,#23212,.T.); +#16297=EDGE_CURVE('',#19481,#19396,#23213,.T.); +#16298=EDGE_CURVE('',#19522,#19394,#23214,.T.); +#16299=EDGE_CURVE('',#19480,#19393,#23215,.T.); +#16300=EDGE_CURVE('',#18494,#18389,#23216,.T.); +#16301=EDGE_CURVE('',#18493,#18390,#23217,.T.); +#16302=EDGE_CURVE('',#18495,#18388,#23218,.T.); +#16303=EDGE_CURVE('',#18496,#18387,#23219,.T.); +#16304=EDGE_CURVE('',#18497,#18386,#23220,.T.); +#16305=EDGE_CURVE('',#18498,#18385,#23221,.T.); +#16306=EDGE_CURVE('',#18501,#18382,#23222,.T.); +#16307=EDGE_CURVE('',#18502,#18381,#23223,.T.); +#16308=EDGE_CURVE('',#18503,#18380,#23224,.T.); +#16309=EDGE_CURVE('',#18504,#18379,#23225,.T.); +#16310=EDGE_CURVE('',#18505,#18378,#23226,.T.); +#16311=EDGE_CURVE('',#18506,#18377,#23227,.T.); +#16312=EDGE_CURVE('',#19521,#19389,#23228,.T.); +#16313=EDGE_CURVE('',#19477,#19390,#23229,.T.); +#16314=EDGE_CURVE('',#19520,#19388,#23230,.T.); +#16315=EDGE_CURVE('',#19476,#19387,#23231,.T.); +#16316=EDGE_CURVE('',#18508,#18375,#23232,.T.); +#16317=EDGE_CURVE('',#18507,#18376,#23233,.T.); +#16318=EDGE_CURVE('',#18509,#18374,#23234,.T.); +#16319=EDGE_CURVE('',#18510,#18373,#23235,.T.); +#16320=EDGE_CURVE('',#18511,#18372,#23236,.T.); +#16321=EDGE_CURVE('',#18512,#18371,#23237,.T.); +#16322=EDGE_CURVE('',#18515,#18368,#23238,.T.); +#16323=EDGE_CURVE('',#18516,#18367,#23239,.T.); +#16324=EDGE_CURVE('',#18517,#18366,#23240,.T.); +#16325=EDGE_CURVE('',#18518,#18365,#23241,.T.); +#16326=EDGE_CURVE('',#18519,#18364,#23242,.T.); +#16327=EDGE_CURVE('',#18520,#18363,#23243,.T.); +#16328=EDGE_CURVE('',#19519,#19383,#23244,.T.); +#16329=EDGE_CURVE('',#19473,#19384,#23245,.T.); +#16330=EDGE_CURVE('',#19518,#19382,#23246,.T.); +#16331=EDGE_CURVE('',#19472,#19381,#23247,.T.); +#16332=EDGE_CURVE('',#18522,#18361,#23248,.T.); +#16333=EDGE_CURVE('',#18521,#18362,#23249,.T.); +#16334=EDGE_CURVE('',#18523,#18360,#23250,.T.); +#16335=EDGE_CURVE('',#18524,#18359,#23251,.T.); +#16336=EDGE_CURVE('',#18525,#18358,#23252,.T.); +#16337=EDGE_CURVE('',#18526,#18357,#23253,.T.); +#16338=EDGE_CURVE('',#18529,#18354,#23254,.T.); +#16339=EDGE_CURVE('',#18530,#18353,#23255,.T.); +#16340=EDGE_CURVE('',#18531,#18352,#23256,.T.); +#16341=EDGE_CURVE('',#18532,#18351,#23257,.T.); +#16342=EDGE_CURVE('',#18533,#18350,#23258,.T.); +#16343=EDGE_CURVE('',#18534,#18349,#23259,.T.); +#16344=EDGE_CURVE('',#19517,#19377,#23260,.T.); +#16345=EDGE_CURVE('',#19469,#19378,#23261,.T.); +#16346=EDGE_CURVE('',#19516,#19376,#23262,.T.); +#16347=EDGE_CURVE('',#19468,#19375,#23263,.T.); +#16348=EDGE_CURVE('',#18536,#18347,#23264,.T.); +#16349=EDGE_CURVE('',#18535,#18348,#23265,.T.); +#16350=EDGE_CURVE('',#18537,#18346,#23266,.T.); +#16351=EDGE_CURVE('',#18538,#18345,#23267,.T.); +#16352=EDGE_CURVE('',#18539,#18344,#23268,.T.); +#16353=EDGE_CURVE('',#18540,#18343,#23269,.T.); +#16354=EDGE_CURVE('',#18543,#18340,#23270,.T.); +#16355=EDGE_CURVE('',#18544,#18339,#23271,.T.); +#16356=EDGE_CURVE('',#18545,#18338,#23272,.T.); +#16357=EDGE_CURVE('',#18546,#18337,#23273,.T.); +#16358=EDGE_CURVE('',#18547,#18336,#23274,.T.); +#16359=EDGE_CURVE('',#18548,#18335,#23275,.T.); +#16360=EDGE_CURVE('',#19515,#19371,#23276,.T.); +#16361=EDGE_CURVE('',#19465,#19372,#23277,.T.); +#16362=EDGE_CURVE('',#19514,#19370,#23278,.T.); +#16363=EDGE_CURVE('',#19464,#19369,#23279,.T.); +#16364=EDGE_CURVE('',#18550,#18333,#23280,.T.); +#16365=EDGE_CURVE('',#18549,#18334,#23281,.T.); +#16366=EDGE_CURVE('',#18551,#18332,#23282,.T.); +#16367=EDGE_CURVE('',#18552,#18331,#23283,.T.); +#16368=EDGE_CURVE('',#18553,#18330,#23284,.T.); +#16369=EDGE_CURVE('',#18554,#18329,#23285,.T.); +#16370=EDGE_CURVE('',#18557,#18326,#23286,.T.); +#16371=EDGE_CURVE('',#18558,#18325,#23287,.T.); +#16372=EDGE_CURVE('',#18559,#18324,#23288,.T.); +#16373=EDGE_CURVE('',#18560,#18323,#23289,.T.); +#16374=EDGE_CURVE('',#18561,#18322,#23290,.T.); +#16375=EDGE_CURVE('',#18562,#18321,#23291,.T.); +#16376=EDGE_CURVE('',#19513,#19365,#23292,.T.); +#16377=EDGE_CURVE('',#19461,#19366,#23293,.T.); +#16378=EDGE_CURVE('',#19512,#19364,#23294,.T.); +#16379=EDGE_CURVE('',#19460,#19363,#23295,.T.); +#16380=EDGE_CURVE('',#18564,#18319,#23296,.T.); +#16381=EDGE_CURVE('',#18563,#18320,#23297,.T.); +#16382=EDGE_CURVE('',#18565,#18318,#23298,.T.); +#16383=EDGE_CURVE('',#18566,#18317,#23299,.T.); +#16384=EDGE_CURVE('',#18567,#18316,#23300,.T.); +#16385=EDGE_CURVE('',#18568,#18315,#23301,.T.); +#16386=EDGE_CURVE('',#18571,#18312,#23302,.T.); +#16387=EDGE_CURVE('',#18572,#18311,#23303,.T.); +#16388=EDGE_CURVE('',#18573,#18310,#23304,.T.); +#16389=EDGE_CURVE('',#18574,#18309,#23305,.T.); +#16390=EDGE_CURVE('',#18575,#18308,#23306,.T.); +#16391=EDGE_CURVE('',#18576,#18307,#23307,.T.); +#16392=EDGE_CURVE('',#19511,#19359,#23308,.T.); +#16393=EDGE_CURVE('',#19457,#19360,#23309,.T.); +#16394=EDGE_CURVE('',#19510,#19358,#23310,.T.); +#16395=EDGE_CURVE('',#19456,#19357,#23311,.T.); +#16396=EDGE_CURVE('',#18578,#18305,#23312,.T.); +#16397=EDGE_CURVE('',#18577,#18306,#23313,.T.); +#16398=EDGE_CURVE('',#18579,#18304,#23314,.T.); +#16399=EDGE_CURVE('',#18580,#18303,#23315,.T.); +#16400=EDGE_CURVE('',#18581,#18302,#23316,.T.); +#16401=EDGE_CURVE('',#18582,#18301,#23317,.T.); +#16402=EDGE_CURVE('',#18585,#18298,#23318,.T.); +#16403=EDGE_CURVE('',#18586,#18297,#23319,.T.); +#16404=EDGE_CURVE('',#18587,#18296,#23320,.T.); +#16405=EDGE_CURVE('',#18588,#18295,#23321,.T.); +#16406=EDGE_CURVE('',#18589,#18294,#23322,.T.); +#16407=EDGE_CURVE('',#18590,#18293,#23323,.T.); +#16408=EDGE_CURVE('',#19509,#19353,#23324,.T.); +#16409=EDGE_CURVE('',#19453,#19354,#23325,.T.); +#16410=EDGE_CURVE('',#19508,#19352,#23326,.T.); +#16411=EDGE_CURVE('',#19452,#19351,#23327,.T.); +#16412=EDGE_CURVE('',#18592,#18291,#23328,.T.); +#16413=EDGE_CURVE('',#18591,#18292,#23329,.T.); +#16414=EDGE_CURVE('',#18593,#18290,#23330,.T.); +#16415=EDGE_CURVE('',#18594,#18289,#23331,.T.); +#16416=EDGE_CURVE('',#18595,#18288,#23332,.T.); +#16417=EDGE_CURVE('',#18596,#18287,#23333,.T.); +#16418=EDGE_CURVE('',#18599,#18284,#23334,.T.); +#16419=EDGE_CURVE('',#18600,#18283,#23335,.T.); +#16420=EDGE_CURVE('',#18601,#18282,#23336,.T.); +#16421=EDGE_CURVE('',#18602,#18281,#23337,.T.); +#16422=EDGE_CURVE('',#18603,#18280,#23338,.T.); +#16423=EDGE_CURVE('',#18604,#18279,#23339,.T.); +#16424=EDGE_CURVE('',#19507,#19347,#23340,.T.); +#16425=EDGE_CURVE('',#19449,#19348,#23341,.T.); +#16426=EDGE_CURVE('',#19506,#19346,#23342,.T.); +#16427=EDGE_CURVE('',#19448,#19345,#23343,.T.); +#16428=EDGE_CURVE('',#18606,#18277,#23344,.T.); +#16429=EDGE_CURVE('',#18605,#18278,#23345,.T.); +#16430=EDGE_CURVE('',#18607,#18276,#23346,.T.); +#16431=EDGE_CURVE('',#18608,#18275,#23347,.T.); +#16432=EDGE_CURVE('',#18609,#18274,#23348,.T.); +#16433=EDGE_CURVE('',#18610,#18273,#23349,.T.); +#16434=EDGE_CURVE('',#18613,#18270,#23350,.T.); +#16435=EDGE_CURVE('',#18614,#18269,#23351,.T.); +#16436=EDGE_CURVE('',#18615,#18268,#23352,.T.); +#16437=EDGE_CURVE('',#18616,#18267,#23353,.T.); +#16438=EDGE_CURVE('',#18617,#18266,#23354,.T.); +#16439=EDGE_CURVE('',#18618,#18265,#23355,.T.); +#16440=EDGE_CURVE('',#19505,#19341,#23356,.T.); +#16441=EDGE_CURVE('',#19445,#19342,#23357,.T.); +#16442=EDGE_CURVE('',#19504,#19340,#23358,.T.); +#16443=EDGE_CURVE('',#19444,#19339,#23359,.T.); +#16444=EDGE_CURVE('',#18620,#18263,#23360,.T.); +#16445=EDGE_CURVE('',#18619,#18264,#23361,.T.); +#16446=EDGE_CURVE('',#18621,#18262,#23362,.T.); +#16447=EDGE_CURVE('',#18622,#18261,#23363,.T.); +#16448=EDGE_CURVE('',#18623,#18260,#23364,.T.); +#16449=EDGE_CURVE('',#18624,#18259,#23365,.T.); +#16450=EDGE_CURVE('',#18627,#18256,#23366,.T.); +#16451=EDGE_CURVE('',#18628,#18255,#23367,.T.); +#16452=EDGE_CURVE('',#18629,#18254,#23368,.T.); +#16453=EDGE_CURVE('',#18630,#18253,#23369,.T.); +#16454=EDGE_CURVE('',#18631,#18252,#23370,.T.); +#16455=EDGE_CURVE('',#18632,#18251,#23371,.T.); +#16456=EDGE_CURVE('',#19503,#19335,#23372,.T.); +#16457=EDGE_CURVE('',#19441,#19336,#23373,.T.); +#16458=EDGE_CURVE('',#19502,#19334,#23374,.T.); +#16459=EDGE_CURVE('',#19440,#19333,#23375,.T.); +#16460=EDGE_CURVE('',#18634,#18249,#23376,.T.); +#16461=EDGE_CURVE('',#18633,#18250,#23377,.T.); +#16462=EDGE_CURVE('',#18635,#18248,#23378,.T.); +#16463=EDGE_CURVE('',#18636,#18247,#23379,.T.); +#16464=EDGE_CURVE('',#18637,#18246,#23380,.T.); +#16465=EDGE_CURVE('',#18638,#18245,#23381,.T.); +#16466=EDGE_CURVE('',#18641,#18242,#23382,.T.); +#16467=EDGE_CURVE('',#18642,#18241,#23383,.T.); +#16468=EDGE_CURVE('',#18643,#18240,#23384,.T.); +#16469=EDGE_CURVE('',#18644,#18239,#23385,.T.); +#16470=EDGE_CURVE('',#18645,#18238,#23386,.T.); +#16471=EDGE_CURVE('',#18646,#18237,#23387,.T.); +#16472=EDGE_CURVE('',#19501,#19329,#23388,.T.); +#16473=EDGE_CURVE('',#19437,#19330,#23389,.T.); +#16474=EDGE_CURVE('',#19500,#19328,#23390,.T.); +#16475=EDGE_CURVE('',#19436,#19327,#23391,.T.); +#16476=EDGE_CURVE('',#18648,#18235,#23392,.T.); +#16477=EDGE_CURVE('',#18647,#18236,#23393,.T.); +#16478=EDGE_CURVE('',#18649,#18234,#23394,.T.); +#16479=EDGE_CURVE('',#18650,#18233,#23395,.T.); +#16480=EDGE_CURVE('',#18651,#18232,#23396,.T.); +#16481=EDGE_CURVE('',#18652,#18231,#23397,.T.); +#16482=EDGE_CURVE('',#18655,#18228,#23398,.T.); +#16483=EDGE_CURVE('',#18656,#18227,#23399,.T.); +#16484=EDGE_CURVE('',#18657,#18226,#23400,.T.); +#16485=EDGE_CURVE('',#18658,#18225,#23401,.T.); +#16486=EDGE_CURVE('',#18659,#18224,#23402,.T.); +#16487=EDGE_CURVE('',#18660,#18223,#23403,.T.); +#16488=EDGE_CURVE('',#19499,#19323,#23404,.T.); +#16489=EDGE_CURVE('',#19433,#19324,#23405,.T.); +#16490=EDGE_CURVE('',#19498,#19322,#23406,.T.); +#16491=EDGE_CURVE('',#19432,#19321,#23407,.T.); +#16492=EDGE_CURVE('',#18662,#18221,#23408,.T.); +#16493=EDGE_CURVE('',#18661,#18222,#23409,.T.); +#16494=EDGE_CURVE('',#18663,#18220,#23410,.T.); +#16495=EDGE_CURVE('',#18664,#18219,#23411,.T.); +#16496=EDGE_CURVE('',#18665,#18218,#23412,.T.); +#16497=EDGE_CURVE('',#18666,#18217,#23413,.T.); +#16498=EDGE_CURVE('',#18669,#18214,#23414,.T.); +#16499=EDGE_CURVE('',#18670,#18213,#23415,.T.); +#16500=EDGE_CURVE('',#18671,#18212,#23416,.T.); +#16501=EDGE_CURVE('',#18672,#18211,#23417,.T.); +#16502=EDGE_CURVE('',#18673,#18210,#23418,.T.); +#16503=EDGE_CURVE('',#18674,#18209,#23419,.T.); +#16504=EDGE_CURVE('',#19497,#19317,#23420,.T.); +#16505=EDGE_CURVE('',#19429,#19318,#23421,.T.); +#16506=EDGE_CURVE('',#19496,#19316,#23422,.T.); +#16507=EDGE_CURVE('',#19428,#19315,#23423,.T.); +#16508=EDGE_CURVE('',#18676,#18207,#23424,.T.); +#16509=EDGE_CURVE('',#18675,#18208,#23425,.T.); +#16510=EDGE_CURVE('',#18677,#18206,#23426,.T.); +#16511=EDGE_CURVE('',#18678,#18205,#23427,.T.); +#16512=EDGE_CURVE('',#18679,#18204,#23428,.T.); +#16513=EDGE_CURVE('',#18680,#18203,#23429,.T.); +#16514=EDGE_CURVE('',#18683,#18200,#23430,.T.); +#16515=EDGE_CURVE('',#18684,#18199,#23431,.T.); +#16516=EDGE_CURVE('',#18685,#18198,#23432,.T.); +#16517=EDGE_CURVE('',#18686,#18197,#23433,.T.); +#16518=EDGE_CURVE('',#18687,#18196,#23434,.T.); +#16519=EDGE_CURVE('',#18688,#18195,#23435,.T.); +#16520=EDGE_CURVE('',#19495,#19311,#23436,.T.); +#16521=EDGE_CURVE('',#19425,#19312,#23437,.T.); +#16522=EDGE_CURVE('',#19494,#19310,#23438,.T.); +#16523=EDGE_CURVE('',#19424,#19309,#23439,.T.); +#16524=EDGE_CURVE('',#18690,#18193,#23440,.T.); +#16525=EDGE_CURVE('',#18689,#18194,#23441,.T.); +#16526=EDGE_CURVE('',#18691,#18192,#23442,.T.); +#16527=EDGE_CURVE('',#18692,#18191,#23443,.T.); +#16528=EDGE_CURVE('',#18693,#18190,#23444,.T.); +#16529=EDGE_CURVE('',#18694,#18189,#23445,.T.); +#16530=EDGE_CURVE('',#18697,#18186,#23446,.T.); +#16531=EDGE_CURVE('',#18698,#18185,#23447,.T.); +#16532=EDGE_CURVE('',#18699,#18184,#23448,.T.); +#16533=EDGE_CURVE('',#18700,#18183,#23449,.T.); +#16534=EDGE_CURVE('',#18701,#18182,#23450,.T.); +#16535=EDGE_CURVE('',#18702,#18181,#23451,.T.); +#16536=EDGE_CURVE('',#19493,#19305,#23452,.T.); +#16537=EDGE_CURVE('',#19421,#19306,#23453,.T.); +#16538=EDGE_CURVE('',#19492,#19304,#23454,.T.); +#16539=EDGE_CURVE('',#19420,#19303,#23455,.T.); +#16540=EDGE_CURVE('',#18704,#18179,#23456,.T.); +#16541=EDGE_CURVE('',#18703,#18180,#23457,.T.); +#16542=EDGE_CURVE('',#18705,#18178,#23458,.T.); +#16543=EDGE_CURVE('',#18706,#18177,#23459,.T.); +#16544=EDGE_CURVE('',#18707,#18176,#23460,.T.); +#16545=EDGE_CURVE('',#18708,#18175,#23461,.T.); +#16546=EDGE_CURVE('',#18711,#18172,#23462,.T.); +#16547=EDGE_CURVE('',#18712,#18171,#23463,.T.); +#16548=EDGE_CURVE('',#18713,#18170,#23464,.T.); +#16549=EDGE_CURVE('',#18714,#18169,#23465,.T.); +#16550=EDGE_CURVE('',#18715,#18168,#23466,.T.); +#16551=EDGE_CURVE('',#18716,#18167,#23467,.T.); +#16552=EDGE_CURVE('',#19491,#19299,#23468,.T.); +#16553=EDGE_CURVE('',#19417,#19300,#23469,.T.); +#16554=EDGE_CURVE('',#19490,#19298,#23470,.T.); +#16555=EDGE_CURVE('',#19416,#19297,#23471,.T.); +#16556=VERTEX_POINT('',#45119); +#16557=VERTEX_POINT('',#45120); +#16558=VERTEX_POINT('',#45122); +#16559=VERTEX_POINT('',#45124); +#16560=VERTEX_POINT('',#45126); +#16561=VERTEX_POINT('',#45128); +#16562=VERTEX_POINT('',#45132); +#16563=VERTEX_POINT('',#45133); +#16564=VERTEX_POINT('',#45135); +#16565=VERTEX_POINT('',#45137); +#16566=VERTEX_POINT('',#45139); +#16567=VERTEX_POINT('',#45141); +#16568=VERTEX_POINT('',#45145); +#16569=VERTEX_POINT('',#45147); +#16570=VERTEX_POINT('',#45149); +#16571=VERTEX_POINT('',#45151); +#16572=VERTEX_POINT('',#45153); +#16573=VERTEX_POINT('',#45155); +#16574=VERTEX_POINT('',#45157); +#16575=VERTEX_POINT('',#45159); +#16576=VERTEX_POINT('',#45161); +#16577=VERTEX_POINT('',#45163); +#16578=VERTEX_POINT('',#45165); +#16579=VERTEX_POINT('',#45167); +#16580=VERTEX_POINT('',#45169); +#16581=VERTEX_POINT('',#45171); +#16582=VERTEX_POINT('',#45173); +#16583=VERTEX_POINT('',#45175); +#16584=VERTEX_POINT('',#45177); +#16585=VERTEX_POINT('',#45179); +#16586=VERTEX_POINT('',#45181); +#16587=VERTEX_POINT('',#45183); +#16588=VERTEX_POINT('',#45185); +#16589=VERTEX_POINT('',#45187); +#16590=VERTEX_POINT('',#45189); +#16591=VERTEX_POINT('',#45191); +#16592=VERTEX_POINT('',#45193); +#16593=VERTEX_POINT('',#45195); +#16594=VERTEX_POINT('',#45197); +#16595=VERTEX_POINT('',#45199); +#16596=VERTEX_POINT('',#45202); +#16597=VERTEX_POINT('',#45204); +#16598=VERTEX_POINT('',#45206); +#16599=VERTEX_POINT('',#45209); +#16600=VERTEX_POINT('',#45210); +#16601=VERTEX_POINT('',#45212); +#16602=VERTEX_POINT('',#45214); +#16603=VERTEX_POINT('',#45216); +#16604=VERTEX_POINT('',#45218); +#16605=VERTEX_POINT('',#45220); +#16606=VERTEX_POINT('',#45222); +#16607=VERTEX_POINT('',#45224); +#16608=VERTEX_POINT('',#45226); +#16609=VERTEX_POINT('',#45229); +#16610=VERTEX_POINT('',#45230); +#16611=VERTEX_POINT('',#45232); +#16612=VERTEX_POINT('',#45234); +#16613=VERTEX_POINT('',#45236); +#16614=VERTEX_POINT('',#45238); +#16615=VERTEX_POINT('',#45240); +#16616=VERTEX_POINT('',#45242); +#16617=VERTEX_POINT('',#45245); +#16618=VERTEX_POINT('',#45247); +#16619=VERTEX_POINT('',#45248); +#16620=VERTEX_POINT('',#45250); +#16621=VERTEX_POINT('',#45252); +#16622=VERTEX_POINT('',#45254); +#16623=VERTEX_POINT('',#45256); +#16624=VERTEX_POINT('',#45258); +#16625=VERTEX_POINT('',#45260); +#16626=VERTEX_POINT('',#45262); +#16627=VERTEX_POINT('',#45264); +#16628=VERTEX_POINT('',#45268); +#16629=VERTEX_POINT('',#45270); +#16630=VERTEX_POINT('',#45272); +#16631=VERTEX_POINT('',#45275); +#16632=VERTEX_POINT('',#45279); +#16633=VERTEX_POINT('',#45280); +#16634=VERTEX_POINT('',#45282); +#16635=VERTEX_POINT('',#45284); +#16636=VERTEX_POINT('',#45286); +#16637=VERTEX_POINT('',#45288); +#16638=VERTEX_POINT('',#45290); +#16639=VERTEX_POINT('',#45292); +#16640=VERTEX_POINT('',#45294); +#16641=VERTEX_POINT('',#45296); +#16642=VERTEX_POINT('',#45298); +#16643=VERTEX_POINT('',#45300); +#16644=VERTEX_POINT('',#45302); +#16645=VERTEX_POINT('',#45304); +#16646=VERTEX_POINT('',#45306); +#16647=VERTEX_POINT('',#45308); +#16648=VERTEX_POINT('',#45310); +#16649=VERTEX_POINT('',#45312); +#16650=VERTEX_POINT('',#45314); +#16651=VERTEX_POINT('',#45316); +#16652=VERTEX_POINT('',#45318); +#16653=VERTEX_POINT('',#45320); +#16654=VERTEX_POINT('',#45322); +#16655=VERTEX_POINT('',#45324); +#16656=VERTEX_POINT('',#45326); +#16657=VERTEX_POINT('',#45328); +#16658=VERTEX_POINT('',#45330); +#16659=VERTEX_POINT('',#45332); +#16660=VERTEX_POINT('',#45334); +#16661=VERTEX_POINT('',#45336); +#16662=VERTEX_POINT('',#45338); +#16663=VERTEX_POINT('',#45340); +#16664=VERTEX_POINT('',#45342); +#16665=VERTEX_POINT('',#45344); +#16666=VERTEX_POINT('',#45346); +#16667=VERTEX_POINT('',#45348); +#16668=VERTEX_POINT('',#45350); +#16669=VERTEX_POINT('',#45352); +#16670=VERTEX_POINT('',#45354); +#16671=VERTEX_POINT('',#45356); +#16672=VERTEX_POINT('',#45358); +#16673=VERTEX_POINT('',#45360); +#16674=VERTEX_POINT('',#45362); +#16675=VERTEX_POINT('',#45364); +#16676=VERTEX_POINT('',#45366); +#16677=VERTEX_POINT('',#45368); +#16678=VERTEX_POINT('',#45370); +#16679=VERTEX_POINT('',#45372); +#16680=VERTEX_POINT('',#45374); +#16681=VERTEX_POINT('',#45376); +#16682=VERTEX_POINT('',#45378); +#16683=VERTEX_POINT('',#45380); +#16684=VERTEX_POINT('',#45382); +#16685=VERTEX_POINT('',#45384); +#16686=VERTEX_POINT('',#45386); +#16687=VERTEX_POINT('',#45388); +#16688=VERTEX_POINT('',#45390); +#16689=VERTEX_POINT('',#45392); +#16690=VERTEX_POINT('',#45394); +#16691=VERTEX_POINT('',#45396); +#16692=VERTEX_POINT('',#45398); +#16693=VERTEX_POINT('',#45400); +#16694=VERTEX_POINT('',#45402); +#16695=VERTEX_POINT('',#45404); +#16696=VERTEX_POINT('',#45406); +#16697=VERTEX_POINT('',#45408); +#16698=VERTEX_POINT('',#45410); +#16699=VERTEX_POINT('',#45412); +#16700=VERTEX_POINT('',#45414); +#16701=VERTEX_POINT('',#45416); +#16702=VERTEX_POINT('',#45418); +#16703=VERTEX_POINT('',#45420); +#16704=VERTEX_POINT('',#45422); +#16705=VERTEX_POINT('',#45424); +#16706=VERTEX_POINT('',#45426); +#16707=VERTEX_POINT('',#45428); +#16708=VERTEX_POINT('',#45430); +#16709=VERTEX_POINT('',#45432); +#16710=VERTEX_POINT('',#45434); +#16711=VERTEX_POINT('',#45436); +#16712=VERTEX_POINT('',#45438); +#16713=VERTEX_POINT('',#45440); +#16714=VERTEX_POINT('',#45442); +#16715=VERTEX_POINT('',#45444); +#16716=VERTEX_POINT('',#45446); +#16717=VERTEX_POINT('',#45448); +#16718=VERTEX_POINT('',#45450); +#16719=VERTEX_POINT('',#45452); +#16720=VERTEX_POINT('',#45454); +#16721=VERTEX_POINT('',#45456); +#16722=VERTEX_POINT('',#45458); +#16723=VERTEX_POINT('',#45460); +#16724=VERTEX_POINT('',#45462); +#16725=VERTEX_POINT('',#45464); +#16726=VERTEX_POINT('',#45466); +#16727=VERTEX_POINT('',#45468); +#16728=VERTEX_POINT('',#45470); +#16729=VERTEX_POINT('',#45472); +#16730=VERTEX_POINT('',#45474); +#16731=VERTEX_POINT('',#45476); +#16732=VERTEX_POINT('',#45478); +#16733=VERTEX_POINT('',#45480); +#16734=VERTEX_POINT('',#45482); +#16735=VERTEX_POINT('',#45484); +#16736=VERTEX_POINT('',#45486); +#16737=VERTEX_POINT('',#45488); +#16738=VERTEX_POINT('',#45490); +#16739=VERTEX_POINT('',#45492); +#16740=VERTEX_POINT('',#45494); +#16741=VERTEX_POINT('',#45496); +#16742=VERTEX_POINT('',#45498); +#16743=VERTEX_POINT('',#45500); +#16744=VERTEX_POINT('',#45502); +#16745=VERTEX_POINT('',#45504); +#16746=VERTEX_POINT('',#45506); +#16747=VERTEX_POINT('',#45508); +#16748=VERTEX_POINT('',#45510); +#16749=VERTEX_POINT('',#45512); +#16750=VERTEX_POINT('',#45514); +#16751=VERTEX_POINT('',#45516); +#16752=VERTEX_POINT('',#45518); +#16753=VERTEX_POINT('',#45520); +#16754=VERTEX_POINT('',#45522); +#16755=VERTEX_POINT('',#45524); +#16756=VERTEX_POINT('',#45526); +#16757=VERTEX_POINT('',#45528); +#16758=VERTEX_POINT('',#45530); +#16759=VERTEX_POINT('',#45532); +#16760=VERTEX_POINT('',#45534); +#16761=VERTEX_POINT('',#45536); +#16762=VERTEX_POINT('',#45538); +#16763=VERTEX_POINT('',#45540); +#16764=VERTEX_POINT('',#45542); +#16765=VERTEX_POINT('',#45544); +#16766=VERTEX_POINT('',#45546); +#16767=VERTEX_POINT('',#45548); +#16768=VERTEX_POINT('',#45550); +#16769=VERTEX_POINT('',#45552); +#16770=VERTEX_POINT('',#45554); +#16771=VERTEX_POINT('',#45556); +#16772=VERTEX_POINT('',#45558); +#16773=VERTEX_POINT('',#45560); +#16774=VERTEX_POINT('',#45562); +#16775=VERTEX_POINT('',#45564); +#16776=VERTEX_POINT('',#45566); +#16777=VERTEX_POINT('',#45568); +#16778=VERTEX_POINT('',#45570); +#16779=VERTEX_POINT('',#45572); +#16780=VERTEX_POINT('',#45574); +#16781=VERTEX_POINT('',#45576); +#16782=VERTEX_POINT('',#45578); +#16783=VERTEX_POINT('',#45580); +#16784=VERTEX_POINT('',#45582); +#16785=VERTEX_POINT('',#45584); +#16786=VERTEX_POINT('',#45586); +#16787=VERTEX_POINT('',#45588); +#16788=VERTEX_POINT('',#45590); +#16789=VERTEX_POINT('',#45592); +#16790=VERTEX_POINT('',#45594); +#16791=VERTEX_POINT('',#45596); +#16792=VERTEX_POINT('',#45598); +#16793=VERTEX_POINT('',#45600); +#16794=VERTEX_POINT('',#45602); +#16795=VERTEX_POINT('',#45604); +#16796=VERTEX_POINT('',#45606); +#16797=VERTEX_POINT('',#45608); +#16798=VERTEX_POINT('',#45611); +#16799=VERTEX_POINT('',#45612); +#16800=VERTEX_POINT('',#45614); +#16801=VERTEX_POINT('',#45616); +#16802=VERTEX_POINT('',#45619); +#16803=VERTEX_POINT('',#45621); +#16804=VERTEX_POINT('',#45623); +#16805=VERTEX_POINT('',#45625); +#16806=VERTEX_POINT('',#45627); +#16807=VERTEX_POINT('',#45629); +#16808=VERTEX_POINT('',#45631); +#16809=VERTEX_POINT('',#45633); +#16810=VERTEX_POINT('',#45635); +#16811=VERTEX_POINT('',#45637); +#16812=VERTEX_POINT('',#45639); +#16813=VERTEX_POINT('',#45641); +#16814=VERTEX_POINT('',#45643); +#16815=VERTEX_POINT('',#45645); +#16816=VERTEX_POINT('',#45647); +#16817=VERTEX_POINT('',#45649); +#16818=VERTEX_POINT('',#45651); +#16819=VERTEX_POINT('',#45653); +#16820=VERTEX_POINT('',#45655); +#16821=VERTEX_POINT('',#45657); +#16822=VERTEX_POINT('',#45659); +#16823=VERTEX_POINT('',#45661); +#16824=VERTEX_POINT('',#45663); +#16825=VERTEX_POINT('',#45665); +#16826=VERTEX_POINT('',#45667); +#16827=VERTEX_POINT('',#45669); +#16828=VERTEX_POINT('',#45671); +#16829=VERTEX_POINT('',#45673); +#16830=VERTEX_POINT('',#45675); +#16831=VERTEX_POINT('',#45677); +#16832=VERTEX_POINT('',#45679); +#16833=VERTEX_POINT('',#45681); +#16834=VERTEX_POINT('',#45685); +#16835=VERTEX_POINT('',#45687); +#16836=VERTEX_POINT('',#45689); +#16837=VERTEX_POINT('',#45691); +#16838=VERTEX_POINT('',#45693); +#16839=VERTEX_POINT('',#45695); +#16840=VERTEX_POINT('',#45697); +#16841=VERTEX_POINT('',#45699); +#16842=VERTEX_POINT('',#45701); +#16843=VERTEX_POINT('',#45703); +#16844=VERTEX_POINT('',#45705); +#16845=VERTEX_POINT('',#45707); +#16846=VERTEX_POINT('',#45709); +#16847=VERTEX_POINT('',#45711); +#16848=VERTEX_POINT('',#45713); +#16849=VERTEX_POINT('',#45715); +#16850=VERTEX_POINT('',#45717); +#16851=VERTEX_POINT('',#45719); +#16852=VERTEX_POINT('',#45721); +#16853=VERTEX_POINT('',#45723); +#16854=VERTEX_POINT('',#45725); +#16855=VERTEX_POINT('',#45727); +#16856=VERTEX_POINT('',#45729); +#16857=VERTEX_POINT('',#45731); +#16858=VERTEX_POINT('',#45733); +#16859=VERTEX_POINT('',#45735); +#16860=VERTEX_POINT('',#45737); +#16861=VERTEX_POINT('',#45739); +#16862=VERTEX_POINT('',#45741); +#16863=VERTEX_POINT('',#45743); +#16864=VERTEX_POINT('',#45745); +#16865=VERTEX_POINT('',#45747); +#16866=VERTEX_POINT('',#45749); +#16867=VERTEX_POINT('',#45751); +#16868=VERTEX_POINT('',#45753); +#16869=VERTEX_POINT('',#45755); +#16870=VERTEX_POINT('',#45757); +#16871=VERTEX_POINT('',#45759); +#16872=VERTEX_POINT('',#45763); +#16873=VERTEX_POINT('',#45766); +#16874=VERTEX_POINT('',#45768); +#16875=VERTEX_POINT('',#45773); +#16876=VERTEX_POINT('',#45774); +#16877=VERTEX_POINT('',#45776); +#16878=VERTEX_POINT('',#45778); +#16879=VERTEX_POINT('',#45782); +#16880=VERTEX_POINT('',#45783); +#16881=VERTEX_POINT('',#45785); +#16882=VERTEX_POINT('',#45787); +#16883=VERTEX_POINT('',#45791); +#16884=VERTEX_POINT('',#45792); +#16885=VERTEX_POINT('',#45796); +#16886=VERTEX_POINT('',#45798); +#16887=VERTEX_POINT('',#45804); +#16888=VERTEX_POINT('',#45806); +#16889=VERTEX_POINT('',#45810); +#16890=VERTEX_POINT('',#45812); +#16891=VERTEX_POINT('',#45817); +#16892=VERTEX_POINT('',#45818); +#16893=VERTEX_POINT('',#45820); +#16894=VERTEX_POINT('',#45822); +#16895=VERTEX_POINT('',#45826); +#16896=VERTEX_POINT('',#45827); +#16897=VERTEX_POINT('',#45829); +#16898=VERTEX_POINT('',#45831); +#16899=VERTEX_POINT('',#45835); +#16900=VERTEX_POINT('',#45836); +#16901=VERTEX_POINT('',#45840); +#16902=VERTEX_POINT('',#45842); +#16903=VERTEX_POINT('',#45848); +#16904=VERTEX_POINT('',#45850); +#16905=VERTEX_POINT('',#45854); +#16906=VERTEX_POINT('',#45856); +#16907=VERTEX_POINT('',#45861); +#16908=VERTEX_POINT('',#45862); +#16909=VERTEX_POINT('',#45864); +#16910=VERTEX_POINT('',#45866); +#16911=VERTEX_POINT('',#45870); +#16912=VERTEX_POINT('',#45871); +#16913=VERTEX_POINT('',#45873); +#16914=VERTEX_POINT('',#45875); +#16915=VERTEX_POINT('',#45879); +#16916=VERTEX_POINT('',#45880); +#16917=VERTEX_POINT('',#45884); +#16918=VERTEX_POINT('',#45886); +#16919=VERTEX_POINT('',#45892); +#16920=VERTEX_POINT('',#45894); +#16921=VERTEX_POINT('',#45898); +#16922=VERTEX_POINT('',#45900); +#16923=VERTEX_POINT('',#45905); +#16924=VERTEX_POINT('',#45906); +#16925=VERTEX_POINT('',#45908); +#16926=VERTEX_POINT('',#45910); +#16927=VERTEX_POINT('',#45914); +#16928=VERTEX_POINT('',#45915); +#16929=VERTEX_POINT('',#45917); +#16930=VERTEX_POINT('',#45919); +#16931=VERTEX_POINT('',#45923); +#16932=VERTEX_POINT('',#45924); +#16933=VERTEX_POINT('',#45928); +#16934=VERTEX_POINT('',#45930); +#16935=VERTEX_POINT('',#45936); +#16936=VERTEX_POINT('',#45938); +#16937=VERTEX_POINT('',#45942); +#16938=VERTEX_POINT('',#45944); +#16939=VERTEX_POINT('',#45949); +#16940=VERTEX_POINT('',#45950); +#16941=VERTEX_POINT('',#45952); +#16942=VERTEX_POINT('',#45954); +#16943=VERTEX_POINT('',#45958); +#16944=VERTEX_POINT('',#45959); +#16945=VERTEX_POINT('',#45961); +#16946=VERTEX_POINT('',#45963); +#16947=VERTEX_POINT('',#45967); +#16948=VERTEX_POINT('',#45968); +#16949=VERTEX_POINT('',#45972); +#16950=VERTEX_POINT('',#45974); +#16951=VERTEX_POINT('',#45980); +#16952=VERTEX_POINT('',#45982); +#16953=VERTEX_POINT('',#45986); +#16954=VERTEX_POINT('',#45988); +#16955=VERTEX_POINT('',#45993); +#16956=VERTEX_POINT('',#45994); +#16957=VERTEX_POINT('',#45996); +#16958=VERTEX_POINT('',#45998); +#16959=VERTEX_POINT('',#46002); +#16960=VERTEX_POINT('',#46003); +#16961=VERTEX_POINT('',#46005); +#16962=VERTEX_POINT('',#46007); +#16963=VERTEX_POINT('',#46011); +#16964=VERTEX_POINT('',#46012); +#16965=VERTEX_POINT('',#46016); +#16966=VERTEX_POINT('',#46018); +#16967=VERTEX_POINT('',#46024); +#16968=VERTEX_POINT('',#46026); +#16969=VERTEX_POINT('',#46030); +#16970=VERTEX_POINT('',#46032); +#16971=VERTEX_POINT('',#46037); +#16972=VERTEX_POINT('',#46038); +#16973=VERTEX_POINT('',#46040); +#16974=VERTEX_POINT('',#46042); +#16975=VERTEX_POINT('',#46046); +#16976=VERTEX_POINT('',#46047); +#16977=VERTEX_POINT('',#46049); +#16978=VERTEX_POINT('',#46051); +#16979=VERTEX_POINT('',#46055); +#16980=VERTEX_POINT('',#46056); +#16981=VERTEX_POINT('',#46060); +#16982=VERTEX_POINT('',#46062); +#16983=VERTEX_POINT('',#46068); +#16984=VERTEX_POINT('',#46070); +#16985=VERTEX_POINT('',#46074); +#16986=VERTEX_POINT('',#46076); +#16987=VERTEX_POINT('',#46081); +#16988=VERTEX_POINT('',#46082); +#16989=VERTEX_POINT('',#46084); +#16990=VERTEX_POINT('',#46086); +#16991=VERTEX_POINT('',#46090); +#16992=VERTEX_POINT('',#46091); +#16993=VERTEX_POINT('',#46093); +#16994=VERTEX_POINT('',#46095); +#16995=VERTEX_POINT('',#46099); +#16996=VERTEX_POINT('',#46100); +#16997=VERTEX_POINT('',#46104); +#16998=VERTEX_POINT('',#46106); +#16999=VERTEX_POINT('',#46112); +#17000=VERTEX_POINT('',#46114); +#17001=VERTEX_POINT('',#46118); +#17002=VERTEX_POINT('',#46120); +#17003=VERTEX_POINT('',#46125); +#17004=VERTEX_POINT('',#46126); +#17005=VERTEX_POINT('',#46128); +#17006=VERTEX_POINT('',#46130); +#17007=VERTEX_POINT('',#46134); +#17008=VERTEX_POINT('',#46135); +#17009=VERTEX_POINT('',#46137); +#17010=VERTEX_POINT('',#46139); +#17011=VERTEX_POINT('',#46143); +#17012=VERTEX_POINT('',#46144); +#17013=VERTEX_POINT('',#46148); +#17014=VERTEX_POINT('',#46150); +#17015=VERTEX_POINT('',#46156); +#17016=VERTEX_POINT('',#46158); +#17017=VERTEX_POINT('',#46162); +#17018=VERTEX_POINT('',#46164); +#17019=VERTEX_POINT('',#46169); +#17020=VERTEX_POINT('',#46170); +#17021=VERTEX_POINT('',#46172); +#17022=VERTEX_POINT('',#46174); +#17023=VERTEX_POINT('',#46178); +#17024=VERTEX_POINT('',#46179); +#17025=VERTEX_POINT('',#46181); +#17026=VERTEX_POINT('',#46183); +#17027=VERTEX_POINT('',#46187); +#17028=VERTEX_POINT('',#46188); +#17029=VERTEX_POINT('',#46192); +#17030=VERTEX_POINT('',#46194); +#17031=VERTEX_POINT('',#46200); +#17032=VERTEX_POINT('',#46202); +#17033=VERTEX_POINT('',#46206); +#17034=VERTEX_POINT('',#46208); +#17035=VERTEX_POINT('',#46213); +#17036=VERTEX_POINT('',#46214); +#17037=VERTEX_POINT('',#46216); +#17038=VERTEX_POINT('',#46218); +#17039=VERTEX_POINT('',#46222); +#17040=VERTEX_POINT('',#46223); +#17041=VERTEX_POINT('',#46225); +#17042=VERTEX_POINT('',#46227); +#17043=VERTEX_POINT('',#46231); +#17044=VERTEX_POINT('',#46232); +#17045=VERTEX_POINT('',#46236); +#17046=VERTEX_POINT('',#46238); +#17047=VERTEX_POINT('',#46244); +#17048=VERTEX_POINT('',#46246); +#17049=VERTEX_POINT('',#46250); +#17050=VERTEX_POINT('',#46252); +#17051=VERTEX_POINT('',#46257); +#17052=VERTEX_POINT('',#46258); +#17053=VERTEX_POINT('',#46260); +#17054=VERTEX_POINT('',#46262); +#17055=VERTEX_POINT('',#46266); +#17056=VERTEX_POINT('',#46267); +#17057=VERTEX_POINT('',#46269); +#17058=VERTEX_POINT('',#46271); +#17059=VERTEX_POINT('',#46275); +#17060=VERTEX_POINT('',#46276); +#17061=VERTEX_POINT('',#46280); +#17062=VERTEX_POINT('',#46282); +#17063=VERTEX_POINT('',#46288); +#17064=VERTEX_POINT('',#46290); +#17065=VERTEX_POINT('',#46294); +#17066=VERTEX_POINT('',#46296); +#17067=VERTEX_POINT('',#46301); +#17068=VERTEX_POINT('',#46302); +#17069=VERTEX_POINT('',#46304); +#17070=VERTEX_POINT('',#46306); +#17071=VERTEX_POINT('',#46310); +#17072=VERTEX_POINT('',#46311); +#17073=VERTEX_POINT('',#46313); +#17074=VERTEX_POINT('',#46315); +#17075=VERTEX_POINT('',#46319); +#17076=VERTEX_POINT('',#46320); +#17077=VERTEX_POINT('',#46324); +#17078=VERTEX_POINT('',#46326); +#17079=VERTEX_POINT('',#46332); +#17080=VERTEX_POINT('',#46334); +#17081=VERTEX_POINT('',#46338); +#17082=VERTEX_POINT('',#46340); +#17083=VERTEX_POINT('',#46345); +#17084=VERTEX_POINT('',#46346); +#17085=VERTEX_POINT('',#46348); +#17086=VERTEX_POINT('',#46350); +#17087=VERTEX_POINT('',#46354); +#17088=VERTEX_POINT('',#46355); +#17089=VERTEX_POINT('',#46357); +#17090=VERTEX_POINT('',#46359); +#17091=VERTEX_POINT('',#46363); +#17092=VERTEX_POINT('',#46364); +#17093=VERTEX_POINT('',#46368); +#17094=VERTEX_POINT('',#46370); +#17095=VERTEX_POINT('',#46376); +#17096=VERTEX_POINT('',#46378); +#17097=VERTEX_POINT('',#46382); +#17098=VERTEX_POINT('',#46384); +#17099=VERTEX_POINT('',#46389); +#17100=VERTEX_POINT('',#46390); +#17101=VERTEX_POINT('',#46392); +#17102=VERTEX_POINT('',#46394); +#17103=VERTEX_POINT('',#46398); +#17104=VERTEX_POINT('',#46399); +#17105=VERTEX_POINT('',#46401); +#17106=VERTEX_POINT('',#46403); +#17107=VERTEX_POINT('',#46407); +#17108=VERTEX_POINT('',#46408); +#17109=VERTEX_POINT('',#46412); +#17110=VERTEX_POINT('',#46414); +#17111=VERTEX_POINT('',#46420); +#17112=VERTEX_POINT('',#46422); +#17113=VERTEX_POINT('',#46426); +#17114=VERTEX_POINT('',#46428); +#17115=VERTEX_POINT('',#46433); +#17116=VERTEX_POINT('',#46434); +#17117=VERTEX_POINT('',#46436); +#17118=VERTEX_POINT('',#46438); +#17119=VERTEX_POINT('',#46442); +#17120=VERTEX_POINT('',#46443); +#17121=VERTEX_POINT('',#46445); +#17122=VERTEX_POINT('',#46447); +#17123=VERTEX_POINT('',#46451); +#17124=VERTEX_POINT('',#46452); +#17125=VERTEX_POINT('',#46456); +#17126=VERTEX_POINT('',#46458); +#17127=VERTEX_POINT('',#46464); +#17128=VERTEX_POINT('',#46466); +#17129=VERTEX_POINT('',#46470); +#17130=VERTEX_POINT('',#46472); +#17131=VERTEX_POINT('',#46477); +#17132=VERTEX_POINT('',#46478); +#17133=VERTEX_POINT('',#46480); +#17134=VERTEX_POINT('',#46482); +#17135=VERTEX_POINT('',#46486); +#17136=VERTEX_POINT('',#46487); +#17137=VERTEX_POINT('',#46489); +#17138=VERTEX_POINT('',#46491); +#17139=VERTEX_POINT('',#46495); +#17140=VERTEX_POINT('',#46496); +#17141=VERTEX_POINT('',#46500); +#17142=VERTEX_POINT('',#46502); +#17143=VERTEX_POINT('',#46508); +#17144=VERTEX_POINT('',#46510); +#17145=VERTEX_POINT('',#46514); +#17146=VERTEX_POINT('',#46516); +#17147=VERTEX_POINT('',#46521); +#17148=VERTEX_POINT('',#46522); +#17149=VERTEX_POINT('',#46524); +#17150=VERTEX_POINT('',#46526); +#17151=VERTEX_POINT('',#46530); +#17152=VERTEX_POINT('',#46531); +#17153=VERTEX_POINT('',#46533); +#17154=VERTEX_POINT('',#46535); +#17155=VERTEX_POINT('',#46539); +#17156=VERTEX_POINT('',#46540); +#17157=VERTEX_POINT('',#46544); +#17158=VERTEX_POINT('',#46546); +#17159=VERTEX_POINT('',#46552); +#17160=VERTEX_POINT('',#46554); +#17161=VERTEX_POINT('',#46558); +#17162=VERTEX_POINT('',#46560); +#17163=VERTEX_POINT('',#46565); +#17164=VERTEX_POINT('',#46566); +#17165=VERTEX_POINT('',#46568); +#17166=VERTEX_POINT('',#46570); +#17167=VERTEX_POINT('',#46574); +#17168=VERTEX_POINT('',#46575); +#17169=VERTEX_POINT('',#46577); +#17170=VERTEX_POINT('',#46579); +#17171=VERTEX_POINT('',#46583); +#17172=VERTEX_POINT('',#46584); +#17173=VERTEX_POINT('',#46588); +#17174=VERTEX_POINT('',#46590); +#17175=VERTEX_POINT('',#46596); +#17176=VERTEX_POINT('',#46598); +#17177=VERTEX_POINT('',#46602); +#17178=VERTEX_POINT('',#46604); +#17179=VERTEX_POINT('',#46609); +#17180=VERTEX_POINT('',#46610); +#17181=VERTEX_POINT('',#46612); +#17182=VERTEX_POINT('',#46614); +#17183=VERTEX_POINT('',#46616); +#17184=VERTEX_POINT('',#46618); +#17185=VERTEX_POINT('',#46621); +#17186=VERTEX_POINT('',#46623); +#17187=VERTEX_POINT('',#46628); +#17188=VERTEX_POINT('',#46629); +#17189=VERTEX_POINT('',#46634); +#17190=VERTEX_POINT('',#46636); +#17191=VERTEX_POINT('',#46640); +#17192=VERTEX_POINT('',#46641); +#17193=VERTEX_POINT('',#46645); +#17194=VERTEX_POINT('',#46647); +#17195=VERTEX_POINT('',#46653); +#17196=VERTEX_POINT('',#46655); +#17197=VERTEX_POINT('',#46657); +#17198=VERTEX_POINT('',#46659); +#17199=VERTEX_POINT('',#46701); +#17200=VERTEX_POINT('',#46703); +#17201=VERTEX_POINT('',#46705); +#17202=VERTEX_POINT('',#46707); +#17203=VERTEX_POINT('',#46711); +#17204=VERTEX_POINT('',#46713); +#17205=VERTEX_POINT('',#46715); +#17206=VERTEX_POINT('',#46757); +#17207=VERTEX_POINT('',#46759); +#17208=VERTEX_POINT('',#46761); +#17209=VERTEX_POINT('',#46788); +#17210=VERTEX_POINT('',#46789); +#17211=VERTEX_POINT('',#46794); +#17212=VERTEX_POINT('',#46795); +#17213=VERTEX_POINT('',#46800); +#17214=VERTEX_POINT('',#46801); +#17215=VERTEX_POINT('',#46806); +#17216=VERTEX_POINT('',#46807); +#17217=VERTEX_POINT('',#46812); +#17218=VERTEX_POINT('',#46813); +#17219=VERTEX_POINT('',#46818); +#17220=VERTEX_POINT('',#46819); +#17221=VERTEX_POINT('',#46824); +#17222=VERTEX_POINT('',#46825); +#17223=VERTEX_POINT('',#46830); +#17224=VERTEX_POINT('',#46832); +#17225=VERTEX_POINT('',#46836); +#17226=VERTEX_POINT('',#46837); +#17227=VERTEX_POINT('',#46842); +#17228=VERTEX_POINT('',#46843); +#17229=VERTEX_POINT('',#46848); +#17230=VERTEX_POINT('',#46849); +#17231=VERTEX_POINT('',#46854); +#17232=VERTEX_POINT('',#46855); +#17233=VERTEX_POINT('',#46860); +#17234=VERTEX_POINT('',#46861); +#17235=VERTEX_POINT('',#46866); +#17236=VERTEX_POINT('',#46867); +#17237=VERTEX_POINT('',#46872); +#17238=VERTEX_POINT('',#46873); +#17239=VERTEX_POINT('',#46878); +#17240=VERTEX_POINT('',#46880); +#17241=VERTEX_POINT('',#46882); +#17242=VERTEX_POINT('',#46884); +#17243=VERTEX_POINT('',#46888); +#17244=VERTEX_POINT('',#46890); +#17245=VERTEX_POINT('',#46892); +#17246=VERTEX_POINT('',#46894); +#17247=VERTEX_POINT('',#46898); +#17248=VERTEX_POINT('',#46900); +#17249=VERTEX_POINT('',#46907); +#17250=VERTEX_POINT('',#46909); +#17251=VERTEX_POINT('',#46922); +#17252=VERTEX_POINT('',#46923); +#17253=VERTEX_POINT('',#46929); +#17254=VERTEX_POINT('',#46931); +#17255=VERTEX_POINT('',#46935); +#17256=VERTEX_POINT('',#46936); +#17257=VERTEX_POINT('',#46942); +#17258=VERTEX_POINT('',#46943); +#17259=VERTEX_POINT('',#46953); +#17260=VERTEX_POINT('',#46954); +#17261=VERTEX_POINT('',#46963); +#17262=VERTEX_POINT('',#46967); +#17263=VERTEX_POINT('',#46973); +#17264=VERTEX_POINT('',#46974); +#17265=VERTEX_POINT('',#46976); +#17266=VERTEX_POINT('',#46979); +#17267=VERTEX_POINT('',#46981); +#17268=VERTEX_POINT('',#46984); +#17269=VERTEX_POINT('',#46986); +#17270=VERTEX_POINT('',#46989); +#17271=VERTEX_POINT('',#46991); +#17272=VERTEX_POINT('',#46994); +#17273=VERTEX_POINT('',#46996); +#17274=VERTEX_POINT('',#46999); +#17275=VERTEX_POINT('',#47001); +#17276=VERTEX_POINT('',#47004); +#17277=VERTEX_POINT('',#47006); +#17278=VERTEX_POINT('',#47009); +#17279=VERTEX_POINT('',#47011); +#17280=VERTEX_POINT('',#47013); +#17281=VERTEX_POINT('',#47032); +#17282=VERTEX_POINT('',#47033); +#17283=VERTEX_POINT('',#47038); +#17284=VERTEX_POINT('',#47040); +#17285=VERTEX_POINT('',#47044); +#17286=VERTEX_POINT('',#47047); +#17287=VERTEX_POINT('',#47049); +#17288=VERTEX_POINT('',#47052); +#17289=VERTEX_POINT('',#47054); +#17290=VERTEX_POINT('',#47057); +#17291=VERTEX_POINT('',#47059); +#17292=VERTEX_POINT('',#47062); +#17293=VERTEX_POINT('',#47064); +#17294=VERTEX_POINT('',#47067); +#17295=VERTEX_POINT('',#47069); +#17296=VERTEX_POINT('',#47072); +#17297=VERTEX_POINT('',#47074); +#17298=VERTEX_POINT('',#47077); +#17299=VERTEX_POINT('',#47301); +#17300=VERTEX_POINT('',#47302); +#17301=VERTEX_POINT('',#47307); +#17302=VERTEX_POINT('',#47313); +#17303=VERTEX_POINT('',#47320); +#17304=VERTEX_POINT('',#47323); +#17305=VERTEX_POINT('',#47327); +#17306=VERTEX_POINT('',#47329); +#17307=VERTEX_POINT('',#47333); +#17308=VERTEX_POINT('',#47337); +#17309=VERTEX_POINT('',#47341); +#17310=VERTEX_POINT('',#47345); +#17311=VERTEX_POINT('',#47349); +#17312=VERTEX_POINT('',#47353); +#17313=VERTEX_POINT('',#47360); +#17314=VERTEX_POINT('',#47362); +#17315=VERTEX_POINT('',#47366); +#17316=VERTEX_POINT('',#47370); +#17317=VERTEX_POINT('',#47374); +#17318=VERTEX_POINT('',#47378); +#17319=VERTEX_POINT('',#47382); +#17320=VERTEX_POINT('',#47386); +#17321=VERTEX_POINT('',#47390); +#17322=VERTEX_POINT('',#47394); +#17323=VERTEX_POINT('',#47401); +#17324=VERTEX_POINT('',#47403); +#17325=VERTEX_POINT('',#47407); +#17326=VERTEX_POINT('',#47411); +#17327=VERTEX_POINT('',#47415); +#17328=VERTEX_POINT('',#47419); +#17329=VERTEX_POINT('',#47423); +#17330=VERTEX_POINT('',#47427); +#17331=VERTEX_POINT('',#47431); +#17332=VERTEX_POINT('',#47435); +#17333=VERTEX_POINT('',#47442); +#17334=VERTEX_POINT('',#47446); +#17335=VERTEX_POINT('',#47450); +#17336=VERTEX_POINT('',#47452); +#17337=VERTEX_POINT('',#47461); +#17338=VERTEX_POINT('',#47465); +#17339=VERTEX_POINT('',#47469); +#17340=VERTEX_POINT('',#47471); +#17341=VERTEX_POINT('',#47481); +#17342=VERTEX_POINT('',#47482); +#17343=VERTEX_POINT('',#47484); +#17344=VERTEX_POINT('',#47486); +#17345=VERTEX_POINT('',#47488); +#17346=VERTEX_POINT('',#47490); +#17347=VERTEX_POINT('',#47492); +#17348=VERTEX_POINT('',#47494); +#17349=VERTEX_POINT('',#47496); +#17350=VERTEX_POINT('',#47498); +#17351=VERTEX_POINT('',#47500); +#17352=VERTEX_POINT('',#47502); +#17353=VERTEX_POINT('',#47504); +#17354=VERTEX_POINT('',#47506); +#17355=VERTEX_POINT('',#47508); +#17356=VERTEX_POINT('',#47510); +#17357=VERTEX_POINT('',#47512); +#17358=VERTEX_POINT('',#47514); +#17359=VERTEX_POINT('',#47516); +#17360=VERTEX_POINT('',#47518); +#17361=VERTEX_POINT('',#47520); +#17362=VERTEX_POINT('',#47522); +#17363=VERTEX_POINT('',#47524); +#17364=VERTEX_POINT('',#47526); +#17365=VERTEX_POINT('',#47528); +#17366=VERTEX_POINT('',#47530); +#17367=VERTEX_POINT('',#47532); +#17368=VERTEX_POINT('',#47534); +#17369=VERTEX_POINT('',#47536); +#17370=VERTEX_POINT('',#47538); +#17371=VERTEX_POINT('',#47540); +#17372=VERTEX_POINT('',#47542); +#17373=VERTEX_POINT('',#47544); +#17374=VERTEX_POINT('',#47546); +#17375=VERTEX_POINT('',#47548); +#17376=VERTEX_POINT('',#47550); +#17377=VERTEX_POINT('',#47552); +#17378=VERTEX_POINT('',#47554); +#17379=VERTEX_POINT('',#47556); +#17380=VERTEX_POINT('',#47558); +#17381=VERTEX_POINT('',#47560); +#17382=VERTEX_POINT('',#47562); +#17383=VERTEX_POINT('',#47564); +#17384=VERTEX_POINT('',#47566); +#17385=VERTEX_POINT('',#47568); +#17386=VERTEX_POINT('',#47570); +#17387=VERTEX_POINT('',#47572); +#17388=VERTEX_POINT('',#47574); +#17389=VERTEX_POINT('',#47576); +#17390=VERTEX_POINT('',#47578); +#17391=VERTEX_POINT('',#47580); +#17392=VERTEX_POINT('',#47582); +#17393=VERTEX_POINT('',#47584); +#17394=VERTEX_POINT('',#47586); +#17395=VERTEX_POINT('',#47588); +#17396=VERTEX_POINT('',#47590); +#17397=VERTEX_POINT('',#47592); +#17398=VERTEX_POINT('',#47594); +#17399=VERTEX_POINT('',#47596); +#17400=VERTEX_POINT('',#47598); +#17401=VERTEX_POINT('',#47600); +#17402=VERTEX_POINT('',#47602); +#17403=VERTEX_POINT('',#47604); +#17404=VERTEX_POINT('',#47606); +#17405=VERTEX_POINT('',#47608); +#17406=VERTEX_POINT('',#47610); +#17407=VERTEX_POINT('',#47612); +#17408=VERTEX_POINT('',#47614); +#17409=VERTEX_POINT('',#47616); +#17410=VERTEX_POINT('',#47618); +#17411=VERTEX_POINT('',#47620); +#17412=VERTEX_POINT('',#47622); +#17413=VERTEX_POINT('',#47624); +#17414=VERTEX_POINT('',#47626); +#17415=VERTEX_POINT('',#47628); +#17416=VERTEX_POINT('',#47630); +#17417=VERTEX_POINT('',#47632); +#17418=VERTEX_POINT('',#47634); +#17419=VERTEX_POINT('',#47636); +#17420=VERTEX_POINT('',#47638); +#17421=VERTEX_POINT('',#47640); +#17422=VERTEX_POINT('',#47642); +#17423=VERTEX_POINT('',#47644); +#17424=VERTEX_POINT('',#47646); +#17425=VERTEX_POINT('',#47648); +#17426=VERTEX_POINT('',#47650); +#17427=VERTEX_POINT('',#47652); +#17428=VERTEX_POINT('',#47654); +#17429=VERTEX_POINT('',#47656); +#17430=VERTEX_POINT('',#47658); +#17431=VERTEX_POINT('',#47660); +#17432=VERTEX_POINT('',#47662); +#17433=VERTEX_POINT('',#47664); +#17434=VERTEX_POINT('',#47666); +#17435=VERTEX_POINT('',#47668); +#17436=VERTEX_POINT('',#47670); +#17437=VERTEX_POINT('',#47672); +#17438=VERTEX_POINT('',#47674); +#17439=VERTEX_POINT('',#47676); +#17440=VERTEX_POINT('',#47678); +#17441=VERTEX_POINT('',#47680); +#17442=VERTEX_POINT('',#47682); +#17443=VERTEX_POINT('',#47684); +#17444=VERTEX_POINT('',#47686); +#17445=VERTEX_POINT('',#47688); +#17446=VERTEX_POINT('',#47690); +#17447=VERTEX_POINT('',#47692); +#17448=VERTEX_POINT('',#47694); +#17449=VERTEX_POINT('',#47696); +#17450=VERTEX_POINT('',#47698); +#17451=VERTEX_POINT('',#47700); +#17452=VERTEX_POINT('',#47702); +#17453=VERTEX_POINT('',#47704); +#17454=VERTEX_POINT('',#47706); +#17455=VERTEX_POINT('',#47708); +#17456=VERTEX_POINT('',#47710); +#17457=VERTEX_POINT('',#47712); +#17458=VERTEX_POINT('',#47714); +#17459=VERTEX_POINT('',#47716); +#17460=VERTEX_POINT('',#47718); +#17461=VERTEX_POINT('',#47720); +#17462=VERTEX_POINT('',#47722); +#17463=VERTEX_POINT('',#47724); +#17464=VERTEX_POINT('',#47726); +#17465=VERTEX_POINT('',#47728); +#17466=VERTEX_POINT('',#47730); +#17467=VERTEX_POINT('',#47732); +#17468=VERTEX_POINT('',#47734); +#17469=VERTEX_POINT('',#47736); +#17470=VERTEX_POINT('',#47738); +#17471=VERTEX_POINT('',#47740); +#17472=VERTEX_POINT('',#47742); +#17473=VERTEX_POINT('',#47744); +#17474=VERTEX_POINT('',#47746); +#17475=VERTEX_POINT('',#47748); +#17476=VERTEX_POINT('',#47750); +#17477=VERTEX_POINT('',#47752); +#17478=VERTEX_POINT('',#47754); +#17479=VERTEX_POINT('',#47756); +#17480=VERTEX_POINT('',#47758); +#17481=VERTEX_POINT('',#47760); +#17482=VERTEX_POINT('',#47762); +#17483=VERTEX_POINT('',#47764); +#17484=VERTEX_POINT('',#47766); +#17485=VERTEX_POINT('',#47768); +#17486=VERTEX_POINT('',#47770); +#17487=VERTEX_POINT('',#47772); +#17488=VERTEX_POINT('',#47774); +#17489=VERTEX_POINT('',#47776); +#17490=VERTEX_POINT('',#47778); +#17491=VERTEX_POINT('',#47780); +#17492=VERTEX_POINT('',#47782); +#17493=VERTEX_POINT('',#47784); +#17494=VERTEX_POINT('',#47786); +#17495=VERTEX_POINT('',#47788); +#17496=VERTEX_POINT('',#47790); +#17497=VERTEX_POINT('',#47792); +#17498=VERTEX_POINT('',#47794); +#17499=VERTEX_POINT('',#47796); +#17500=VERTEX_POINT('',#47798); +#17501=VERTEX_POINT('',#47800); +#17502=VERTEX_POINT('',#47802); +#17503=VERTEX_POINT('',#47804); +#17504=VERTEX_POINT('',#47806); +#17505=VERTEX_POINT('',#47810); +#17506=VERTEX_POINT('',#47811); +#17507=VERTEX_POINT('',#47813); +#17508=VERTEX_POINT('',#47815); +#17509=VERTEX_POINT('',#47817); +#17510=VERTEX_POINT('',#47819); +#17511=VERTEX_POINT('',#47821); +#17512=VERTEX_POINT('',#47823); +#17513=VERTEX_POINT('',#47825); +#17514=VERTEX_POINT('',#47827); +#17515=VERTEX_POINT('',#47829); +#17516=VERTEX_POINT('',#47831); +#17517=VERTEX_POINT('',#47833); +#17518=VERTEX_POINT('',#47835); +#17519=VERTEX_POINT('',#47837); +#17520=VERTEX_POINT('',#47839); +#17521=VERTEX_POINT('',#47841); +#17522=VERTEX_POINT('',#47843); +#17523=VERTEX_POINT('',#47845); +#17524=VERTEX_POINT('',#47847); +#17525=VERTEX_POINT('',#47849); +#17526=VERTEX_POINT('',#47851); +#17527=VERTEX_POINT('',#47853); +#17528=VERTEX_POINT('',#47855); +#17529=VERTEX_POINT('',#47857); +#17530=VERTEX_POINT('',#47859); +#17531=VERTEX_POINT('',#47861); +#17532=VERTEX_POINT('',#47863); +#17533=VERTEX_POINT('',#47865); +#17534=VERTEX_POINT('',#47867); +#17535=VERTEX_POINT('',#47869); +#17536=VERTEX_POINT('',#47871); +#17537=VERTEX_POINT('',#47873); +#17538=VERTEX_POINT('',#47875); +#17539=VERTEX_POINT('',#47877); +#17540=VERTEX_POINT('',#47879); +#17541=VERTEX_POINT('',#47881); +#17542=VERTEX_POINT('',#47883); +#17543=VERTEX_POINT('',#47885); +#17544=VERTEX_POINT('',#47887); +#17545=VERTEX_POINT('',#47889); +#17546=VERTEX_POINT('',#47891); +#17547=VERTEX_POINT('',#47893); +#17548=VERTEX_POINT('',#47895); +#17549=VERTEX_POINT('',#47897); +#17550=VERTEX_POINT('',#47899); +#17551=VERTEX_POINT('',#47901); +#17552=VERTEX_POINT('',#47903); +#17553=VERTEX_POINT('',#47905); +#17554=VERTEX_POINT('',#47907); +#17555=VERTEX_POINT('',#47909); +#17556=VERTEX_POINT('',#47911); +#17557=VERTEX_POINT('',#47913); +#17558=VERTEX_POINT('',#47915); +#17559=VERTEX_POINT('',#47917); +#17560=VERTEX_POINT('',#47919); +#17561=VERTEX_POINT('',#47921); +#17562=VERTEX_POINT('',#47923); +#17563=VERTEX_POINT('',#47925); +#17564=VERTEX_POINT('',#47927); +#17565=VERTEX_POINT('',#47929); +#17566=VERTEX_POINT('',#47931); +#17567=VERTEX_POINT('',#47933); +#17568=VERTEX_POINT('',#47935); +#17569=VERTEX_POINT('',#47937); +#17570=VERTEX_POINT('',#47939); +#17571=VERTEX_POINT('',#47941); +#17572=VERTEX_POINT('',#47943); +#17573=VERTEX_POINT('',#47945); +#17574=VERTEX_POINT('',#47947); +#17575=VERTEX_POINT('',#47949); +#17576=VERTEX_POINT('',#47951); +#17577=VERTEX_POINT('',#47953); +#17578=VERTEX_POINT('',#47955); +#17579=VERTEX_POINT('',#47957); +#17580=VERTEX_POINT('',#47959); +#17581=VERTEX_POINT('',#47961); +#17582=VERTEX_POINT('',#47963); +#17583=VERTEX_POINT('',#47965); +#17584=VERTEX_POINT('',#47967); +#17585=VERTEX_POINT('',#47969); +#17586=VERTEX_POINT('',#47971); +#17587=VERTEX_POINT('',#47973); +#17588=VERTEX_POINT('',#47975); +#17589=VERTEX_POINT('',#47977); +#17590=VERTEX_POINT('',#47979); +#17591=VERTEX_POINT('',#47981); +#17592=VERTEX_POINT('',#47983); +#17593=VERTEX_POINT('',#47985); +#17594=VERTEX_POINT('',#47987); +#17595=VERTEX_POINT('',#47989); +#17596=VERTEX_POINT('',#47991); +#17597=VERTEX_POINT('',#47993); +#17598=VERTEX_POINT('',#47995); +#17599=VERTEX_POINT('',#47997); +#17600=VERTEX_POINT('',#47999); +#17601=VERTEX_POINT('',#48001); +#17602=VERTEX_POINT('',#48003); +#17603=VERTEX_POINT('',#48005); +#17604=VERTEX_POINT('',#48007); +#17605=VERTEX_POINT('',#48009); +#17606=VERTEX_POINT('',#48011); +#17607=VERTEX_POINT('',#48013); +#17608=VERTEX_POINT('',#48015); +#17609=VERTEX_POINT('',#48017); +#17610=VERTEX_POINT('',#48019); +#17611=VERTEX_POINT('',#48021); +#17612=VERTEX_POINT('',#48023); +#17613=VERTEX_POINT('',#48025); +#17614=VERTEX_POINT('',#48027); +#17615=VERTEX_POINT('',#48029); +#17616=VERTEX_POINT('',#48031); +#17617=VERTEX_POINT('',#48033); +#17618=VERTEX_POINT('',#48035); +#17619=VERTEX_POINT('',#48037); +#17620=VERTEX_POINT('',#48039); +#17621=VERTEX_POINT('',#48041); +#17622=VERTEX_POINT('',#48043); +#17623=VERTEX_POINT('',#48045); +#17624=VERTEX_POINT('',#48047); +#17625=VERTEX_POINT('',#48049); +#17626=VERTEX_POINT('',#48051); +#17627=VERTEX_POINT('',#48053); +#17628=VERTEX_POINT('',#48055); +#17629=VERTEX_POINT('',#48057); +#17630=VERTEX_POINT('',#48059); +#17631=VERTEX_POINT('',#48061); +#17632=VERTEX_POINT('',#48063); +#17633=VERTEX_POINT('',#48065); +#17634=VERTEX_POINT('',#48067); +#17635=VERTEX_POINT('',#48069); +#17636=VERTEX_POINT('',#48071); +#17637=VERTEX_POINT('',#48073); +#17638=VERTEX_POINT('',#48075); +#17639=VERTEX_POINT('',#48077); +#17640=VERTEX_POINT('',#48079); +#17641=VERTEX_POINT('',#48081); +#17642=VERTEX_POINT('',#48083); +#17643=VERTEX_POINT('',#48085); +#17644=VERTEX_POINT('',#48087); +#17645=VERTEX_POINT('',#48089); +#17646=VERTEX_POINT('',#48091); +#17647=VERTEX_POINT('',#48093); +#17648=VERTEX_POINT('',#48095); +#17649=VERTEX_POINT('',#48097); +#17650=VERTEX_POINT('',#48099); +#17651=VERTEX_POINT('',#48101); +#17652=VERTEX_POINT('',#48103); +#17653=VERTEX_POINT('',#48105); +#17654=VERTEX_POINT('',#48107); +#17655=VERTEX_POINT('',#48109); +#17656=VERTEX_POINT('',#48111); +#17657=VERTEX_POINT('',#48113); +#17658=VERTEX_POINT('',#48115); +#17659=VERTEX_POINT('',#48117); +#17660=VERTEX_POINT('',#48119); +#17661=VERTEX_POINT('',#48121); +#17662=VERTEX_POINT('',#48123); +#17663=VERTEX_POINT('',#48125); +#17664=VERTEX_POINT('',#48127); +#17665=VERTEX_POINT('',#48129); +#17666=VERTEX_POINT('',#48131); +#17667=VERTEX_POINT('',#48133); +#17668=VERTEX_POINT('',#48135); +#17669=VERTEX_POINT('',#48139); +#17670=VERTEX_POINT('',#48140); +#17671=VERTEX_POINT('',#48142); +#17672=VERTEX_POINT('',#48144); +#17673=VERTEX_POINT('',#48146); +#17674=VERTEX_POINT('',#48148); +#17675=VERTEX_POINT('',#48150); +#17676=VERTEX_POINT('',#48152); +#17677=VERTEX_POINT('',#48154); +#17678=VERTEX_POINT('',#48156); +#17679=VERTEX_POINT('',#48158); +#17680=VERTEX_POINT('',#48160); +#17681=VERTEX_POINT('',#48162); +#17682=VERTEX_POINT('',#48164); +#17683=VERTEX_POINT('',#48166); +#17684=VERTEX_POINT('',#48168); +#17685=VERTEX_POINT('',#48170); +#17686=VERTEX_POINT('',#48172); +#17687=VERTEX_POINT('',#48174); +#17688=VERTEX_POINT('',#48176); +#17689=VERTEX_POINT('',#48178); +#17690=VERTEX_POINT('',#48180); +#17691=VERTEX_POINT('',#48182); +#17692=VERTEX_POINT('',#48184); +#17693=VERTEX_POINT('',#48186); +#17694=VERTEX_POINT('',#48188); +#17695=VERTEX_POINT('',#48190); +#17696=VERTEX_POINT('',#48192); +#17697=VERTEX_POINT('',#48194); +#17698=VERTEX_POINT('',#48196); +#17699=VERTEX_POINT('',#48198); +#17700=VERTEX_POINT('',#48200); +#17701=VERTEX_POINT('',#48202); +#17702=VERTEX_POINT('',#48204); +#17703=VERTEX_POINT('',#48206); +#17704=VERTEX_POINT('',#48208); +#17705=VERTEX_POINT('',#48210); +#17706=VERTEX_POINT('',#48212); +#17707=VERTEX_POINT('',#48214); +#17708=VERTEX_POINT('',#48216); +#17709=VERTEX_POINT('',#48218); +#17710=VERTEX_POINT('',#48220); +#17711=VERTEX_POINT('',#48222); +#17712=VERTEX_POINT('',#48224); +#17713=VERTEX_POINT('',#48226); +#17714=VERTEX_POINT('',#48228); +#17715=VERTEX_POINT('',#48230); +#17716=VERTEX_POINT('',#48232); +#17717=VERTEX_POINT('',#48234); +#17718=VERTEX_POINT('',#48236); +#17719=VERTEX_POINT('',#48238); +#17720=VERTEX_POINT('',#48240); +#17721=VERTEX_POINT('',#48242); +#17722=VERTEX_POINT('',#48244); +#17723=VERTEX_POINT('',#48246); +#17724=VERTEX_POINT('',#48248); +#17725=VERTEX_POINT('',#48250); +#17726=VERTEX_POINT('',#48252); +#17727=VERTEX_POINT('',#48254); +#17728=VERTEX_POINT('',#48256); +#17729=VERTEX_POINT('',#48258); +#17730=VERTEX_POINT('',#48260); +#17731=VERTEX_POINT('',#48262); +#17732=VERTEX_POINT('',#48264); +#17733=VERTEX_POINT('',#48266); +#17734=VERTEX_POINT('',#48268); +#17735=VERTEX_POINT('',#48270); +#17736=VERTEX_POINT('',#48272); +#17737=VERTEX_POINT('',#48274); +#17738=VERTEX_POINT('',#48276); +#17739=VERTEX_POINT('',#48278); +#17740=VERTEX_POINT('',#48280); +#17741=VERTEX_POINT('',#48282); +#17742=VERTEX_POINT('',#48284); +#17743=VERTEX_POINT('',#48286); +#17744=VERTEX_POINT('',#48288); +#17745=VERTEX_POINT('',#48290); +#17746=VERTEX_POINT('',#48292); +#17747=VERTEX_POINT('',#48294); +#17748=VERTEX_POINT('',#48296); +#17749=VERTEX_POINT('',#48298); +#17750=VERTEX_POINT('',#48300); +#17751=VERTEX_POINT('',#48302); +#17752=VERTEX_POINT('',#48304); +#17753=VERTEX_POINT('',#48306); +#17754=VERTEX_POINT('',#48308); +#17755=VERTEX_POINT('',#48310); +#17756=VERTEX_POINT('',#48312); +#17757=VERTEX_POINT('',#48314); +#17758=VERTEX_POINT('',#48316); +#17759=VERTEX_POINT('',#48318); +#17760=VERTEX_POINT('',#48320); +#17761=VERTEX_POINT('',#48322); +#17762=VERTEX_POINT('',#48324); +#17763=VERTEX_POINT('',#48326); +#17764=VERTEX_POINT('',#48328); +#17765=VERTEX_POINT('',#48330); +#17766=VERTEX_POINT('',#48332); +#17767=VERTEX_POINT('',#48334); +#17768=VERTEX_POINT('',#48336); +#17769=VERTEX_POINT('',#48338); +#17770=VERTEX_POINT('',#48340); +#17771=VERTEX_POINT('',#48342); +#17772=VERTEX_POINT('',#48344); +#17773=VERTEX_POINT('',#48346); +#17774=VERTEX_POINT('',#48348); +#17775=VERTEX_POINT('',#48350); +#17776=VERTEX_POINT('',#48352); +#17777=VERTEX_POINT('',#48354); +#17778=VERTEX_POINT('',#48356); +#17779=VERTEX_POINT('',#48358); +#17780=VERTEX_POINT('',#48360); +#17781=VERTEX_POINT('',#48362); +#17782=VERTEX_POINT('',#48364); +#17783=VERTEX_POINT('',#48366); +#17784=VERTEX_POINT('',#48368); +#17785=VERTEX_POINT('',#48370); +#17786=VERTEX_POINT('',#48372); +#17787=VERTEX_POINT('',#48374); +#17788=VERTEX_POINT('',#48376); +#17789=VERTEX_POINT('',#48378); +#17790=VERTEX_POINT('',#48380); +#17791=VERTEX_POINT('',#48382); +#17792=VERTEX_POINT('',#48384); +#17793=VERTEX_POINT('',#48386); +#17794=VERTEX_POINT('',#48388); +#17795=VERTEX_POINT('',#48390); +#17796=VERTEX_POINT('',#48392); +#17797=VERTEX_POINT('',#48394); +#17798=VERTEX_POINT('',#48396); +#17799=VERTEX_POINT('',#48398); +#17800=VERTEX_POINT('',#48400); +#17801=VERTEX_POINT('',#48402); +#17802=VERTEX_POINT('',#48404); +#17803=VERTEX_POINT('',#48406); +#17804=VERTEX_POINT('',#48408); +#17805=VERTEX_POINT('',#48410); +#17806=VERTEX_POINT('',#48412); +#17807=VERTEX_POINT('',#48414); +#17808=VERTEX_POINT('',#48416); +#17809=VERTEX_POINT('',#48418); +#17810=VERTEX_POINT('',#48420); +#17811=VERTEX_POINT('',#48422); +#17812=VERTEX_POINT('',#48424); +#17813=VERTEX_POINT('',#48426); +#17814=VERTEX_POINT('',#48428); +#17815=VERTEX_POINT('',#48430); +#17816=VERTEX_POINT('',#48432); +#17817=VERTEX_POINT('',#48434); +#17818=VERTEX_POINT('',#48436); +#17819=VERTEX_POINT('',#48438); +#17820=VERTEX_POINT('',#48440); +#17821=VERTEX_POINT('',#48442); +#17822=VERTEX_POINT('',#48444); +#17823=VERTEX_POINT('',#48446); +#17824=VERTEX_POINT('',#48448); +#17825=VERTEX_POINT('',#48450); +#17826=VERTEX_POINT('',#48452); +#17827=VERTEX_POINT('',#48454); +#17828=VERTEX_POINT('',#48456); +#17829=VERTEX_POINT('',#48458); +#17830=VERTEX_POINT('',#48460); +#17831=VERTEX_POINT('',#48462); +#17832=VERTEX_POINT('',#48464); +#17833=VERTEX_POINT('',#48468); +#17834=VERTEX_POINT('',#48469); +#17835=VERTEX_POINT('',#48471); +#17836=VERTEX_POINT('',#48473); +#17837=VERTEX_POINT('',#48475); +#17838=VERTEX_POINT('',#48477); +#17839=VERTEX_POINT('',#48479); +#17840=VERTEX_POINT('',#48481); +#17841=VERTEX_POINT('',#48483); +#17842=VERTEX_POINT('',#48485); +#17843=VERTEX_POINT('',#48487); +#17844=VERTEX_POINT('',#48489); +#17845=VERTEX_POINT('',#48491); +#17846=VERTEX_POINT('',#48493); +#17847=VERTEX_POINT('',#48495); +#17848=VERTEX_POINT('',#48497); +#17849=VERTEX_POINT('',#48499); +#17850=VERTEX_POINT('',#48501); +#17851=VERTEX_POINT('',#48503); +#17852=VERTEX_POINT('',#48505); +#17853=VERTEX_POINT('',#48507); +#17854=VERTEX_POINT('',#48509); +#17855=VERTEX_POINT('',#48511); +#17856=VERTEX_POINT('',#48513); +#17857=VERTEX_POINT('',#48515); +#17858=VERTEX_POINT('',#48517); +#17859=VERTEX_POINT('',#48519); +#17860=VERTEX_POINT('',#48521); +#17861=VERTEX_POINT('',#48523); +#17862=VERTEX_POINT('',#48525); +#17863=VERTEX_POINT('',#48527); +#17864=VERTEX_POINT('',#48529); +#17865=VERTEX_POINT('',#48531); +#17866=VERTEX_POINT('',#48533); +#17867=VERTEX_POINT('',#48535); +#17868=VERTEX_POINT('',#48537); +#17869=VERTEX_POINT('',#48539); +#17870=VERTEX_POINT('',#48541); +#17871=VERTEX_POINT('',#48543); +#17872=VERTEX_POINT('',#48545); +#17873=VERTEX_POINT('',#48547); +#17874=VERTEX_POINT('',#48549); +#17875=VERTEX_POINT('',#48551); +#17876=VERTEX_POINT('',#48553); +#17877=VERTEX_POINT('',#48555); +#17878=VERTEX_POINT('',#48557); +#17879=VERTEX_POINT('',#48559); +#17880=VERTEX_POINT('',#48561); +#17881=VERTEX_POINT('',#48563); +#17882=VERTEX_POINT('',#48565); +#17883=VERTEX_POINT('',#48567); +#17884=VERTEX_POINT('',#48569); +#17885=VERTEX_POINT('',#48571); +#17886=VERTEX_POINT('',#48573); +#17887=VERTEX_POINT('',#48575); +#17888=VERTEX_POINT('',#48577); +#17889=VERTEX_POINT('',#48579); +#17890=VERTEX_POINT('',#48581); +#17891=VERTEX_POINT('',#48583); +#17892=VERTEX_POINT('',#48585); +#17893=VERTEX_POINT('',#48587); +#17894=VERTEX_POINT('',#48589); +#17895=VERTEX_POINT('',#48591); +#17896=VERTEX_POINT('',#48593); +#17897=VERTEX_POINT('',#48595); +#17898=VERTEX_POINT('',#48597); +#17899=VERTEX_POINT('',#48599); +#17900=VERTEX_POINT('',#48601); +#17901=VERTEX_POINT('',#48603); +#17902=VERTEX_POINT('',#48605); +#17903=VERTEX_POINT('',#48607); +#17904=VERTEX_POINT('',#48609); +#17905=VERTEX_POINT('',#48611); +#17906=VERTEX_POINT('',#48613); +#17907=VERTEX_POINT('',#48615); +#17908=VERTEX_POINT('',#48617); +#17909=VERTEX_POINT('',#48619); +#17910=VERTEX_POINT('',#48621); +#17911=VERTEX_POINT('',#48623); +#17912=VERTEX_POINT('',#48625); +#17913=VERTEX_POINT('',#48627); +#17914=VERTEX_POINT('',#48629); +#17915=VERTEX_POINT('',#48631); +#17916=VERTEX_POINT('',#48633); +#17917=VERTEX_POINT('',#48635); +#17918=VERTEX_POINT('',#48637); +#17919=VERTEX_POINT('',#48639); +#17920=VERTEX_POINT('',#48641); +#17921=VERTEX_POINT('',#48643); +#17922=VERTEX_POINT('',#48645); +#17923=VERTEX_POINT('',#48647); +#17924=VERTEX_POINT('',#48649); +#17925=VERTEX_POINT('',#48651); +#17926=VERTEX_POINT('',#48653); +#17927=VERTEX_POINT('',#48655); +#17928=VERTEX_POINT('',#48657); +#17929=VERTEX_POINT('',#48659); +#17930=VERTEX_POINT('',#48661); +#17931=VERTEX_POINT('',#48663); +#17932=VERTEX_POINT('',#48665); +#17933=VERTEX_POINT('',#48667); +#17934=VERTEX_POINT('',#48669); +#17935=VERTEX_POINT('',#48671); +#17936=VERTEX_POINT('',#48673); +#17937=VERTEX_POINT('',#48675); +#17938=VERTEX_POINT('',#48677); +#17939=VERTEX_POINT('',#48679); +#17940=VERTEX_POINT('',#48681); +#17941=VERTEX_POINT('',#48683); +#17942=VERTEX_POINT('',#48685); +#17943=VERTEX_POINT('',#48687); +#17944=VERTEX_POINT('',#48689); +#17945=VERTEX_POINT('',#48691); +#17946=VERTEX_POINT('',#48693); +#17947=VERTEX_POINT('',#48695); +#17948=VERTEX_POINT('',#48697); +#17949=VERTEX_POINT('',#48699); +#17950=VERTEX_POINT('',#48701); +#17951=VERTEX_POINT('',#48703); +#17952=VERTEX_POINT('',#48705); +#17953=VERTEX_POINT('',#48707); +#17954=VERTEX_POINT('',#48709); +#17955=VERTEX_POINT('',#48711); +#17956=VERTEX_POINT('',#48713); +#17957=VERTEX_POINT('',#48715); +#17958=VERTEX_POINT('',#48717); +#17959=VERTEX_POINT('',#48719); +#17960=VERTEX_POINT('',#48721); +#17961=VERTEX_POINT('',#48723); +#17962=VERTEX_POINT('',#48725); +#17963=VERTEX_POINT('',#48727); +#17964=VERTEX_POINT('',#48729); +#17965=VERTEX_POINT('',#48731); +#17966=VERTEX_POINT('',#48733); +#17967=VERTEX_POINT('',#48735); +#17968=VERTEX_POINT('',#48737); +#17969=VERTEX_POINT('',#48739); +#17970=VERTEX_POINT('',#48741); +#17971=VERTEX_POINT('',#48743); +#17972=VERTEX_POINT('',#48745); +#17973=VERTEX_POINT('',#48747); +#17974=VERTEX_POINT('',#48749); +#17975=VERTEX_POINT('',#48751); +#17976=VERTEX_POINT('',#48753); +#17977=VERTEX_POINT('',#48755); +#17978=VERTEX_POINT('',#48757); +#17979=VERTEX_POINT('',#48759); +#17980=VERTEX_POINT('',#48761); +#17981=VERTEX_POINT('',#48763); +#17982=VERTEX_POINT('',#48765); +#17983=VERTEX_POINT('',#48767); +#17984=VERTEX_POINT('',#48769); +#17985=VERTEX_POINT('',#48771); +#17986=VERTEX_POINT('',#48773); +#17987=VERTEX_POINT('',#48775); +#17988=VERTEX_POINT('',#48777); +#17989=VERTEX_POINT('',#48779); +#17990=VERTEX_POINT('',#48781); +#17991=VERTEX_POINT('',#48783); +#17992=VERTEX_POINT('',#48785); +#17993=VERTEX_POINT('',#48787); +#17994=VERTEX_POINT('',#48789); +#17995=VERTEX_POINT('',#48791); +#17996=VERTEX_POINT('',#48793); +#17997=VERTEX_POINT('',#49049); +#17998=VERTEX_POINT('',#49050); +#17999=VERTEX_POINT('',#49052); +#18000=VERTEX_POINT('',#49054); +#18001=VERTEX_POINT('',#49058); +#18002=VERTEX_POINT('',#49059); +#18003=VERTEX_POINT('',#49061); +#18004=VERTEX_POINT('',#49063); +#18005=VERTEX_POINT('',#49067); +#18006=VERTEX_POINT('',#49068); +#18007=VERTEX_POINT('',#49070); +#18008=VERTEX_POINT('',#49072); +#18009=VERTEX_POINT('',#49076); +#18010=VERTEX_POINT('',#49077); +#18011=VERTEX_POINT('',#49079); +#18012=VERTEX_POINT('',#49081); +#18013=VERTEX_POINT('',#49085); +#18014=VERTEX_POINT('',#49086); +#18015=VERTEX_POINT('',#49088); +#18016=VERTEX_POINT('',#49090); +#18017=VERTEX_POINT('',#49094); +#18018=VERTEX_POINT('',#49095); +#18019=VERTEX_POINT('',#49097); +#18020=VERTEX_POINT('',#49099); +#18021=VERTEX_POINT('',#49103); +#18022=VERTEX_POINT('',#49104); +#18023=VERTEX_POINT('',#49106); +#18024=VERTEX_POINT('',#49108); +#18025=VERTEX_POINT('',#49112); +#18026=VERTEX_POINT('',#49113); +#18027=VERTEX_POINT('',#49115); +#18028=VERTEX_POINT('',#49117); +#18029=VERTEX_POINT('',#49121); +#18030=VERTEX_POINT('',#49122); +#18031=VERTEX_POINT('',#49124); +#18032=VERTEX_POINT('',#49126); +#18033=VERTEX_POINT('',#49130); +#18034=VERTEX_POINT('',#49131); +#18035=VERTEX_POINT('',#49133); +#18036=VERTEX_POINT('',#49135); +#18037=VERTEX_POINT('',#49139); +#18038=VERTEX_POINT('',#49140); +#18039=VERTEX_POINT('',#49142); +#18040=VERTEX_POINT('',#49144); +#18041=VERTEX_POINT('',#49148); +#18042=VERTEX_POINT('',#49149); +#18043=VERTEX_POINT('',#49151); +#18044=VERTEX_POINT('',#49153); +#18045=VERTEX_POINT('',#49157); +#18046=VERTEX_POINT('',#49158); +#18047=VERTEX_POINT('',#49160); +#18048=VERTEX_POINT('',#49162); +#18049=VERTEX_POINT('',#49166); +#18050=VERTEX_POINT('',#49167); +#18051=VERTEX_POINT('',#49169); +#18052=VERTEX_POINT('',#49171); +#18053=VERTEX_POINT('',#49175); +#18054=VERTEX_POINT('',#49176); +#18055=VERTEX_POINT('',#49178); +#18056=VERTEX_POINT('',#49180); +#18057=VERTEX_POINT('',#49184); +#18058=VERTEX_POINT('',#49185); +#18059=VERTEX_POINT('',#49187); +#18060=VERTEX_POINT('',#49189); +#18061=VERTEX_POINT('',#49193); +#18062=VERTEX_POINT('',#49194); +#18063=VERTEX_POINT('',#49196); +#18064=VERTEX_POINT('',#49198); +#18065=VERTEX_POINT('',#49202); +#18066=VERTEX_POINT('',#49203); +#18067=VERTEX_POINT('',#49205); +#18068=VERTEX_POINT('',#49207); +#18069=VERTEX_POINT('',#49211); +#18070=VERTEX_POINT('',#49212); +#18071=VERTEX_POINT('',#49214); +#18072=VERTEX_POINT('',#49216); +#18073=VERTEX_POINT('',#49277); +#18074=VERTEX_POINT('',#49279); +#18075=VERTEX_POINT('',#49283); +#18076=VERTEX_POINT('',#49285); +#18077=VERTEX_POINT('',#49289); +#18078=VERTEX_POINT('',#49291); +#18079=VERTEX_POINT('',#49295); +#18080=VERTEX_POINT('',#49297); +#18081=VERTEX_POINT('',#49301); +#18082=VERTEX_POINT('',#49303); +#18083=VERTEX_POINT('',#49307); +#18084=VERTEX_POINT('',#49309); +#18085=VERTEX_POINT('',#49313); +#18086=VERTEX_POINT('',#49315); +#18087=VERTEX_POINT('',#49319); +#18088=VERTEX_POINT('',#49321); +#18089=VERTEX_POINT('',#49325); +#18090=VERTEX_POINT('',#49327); +#18091=VERTEX_POINT('',#49331); +#18092=VERTEX_POINT('',#49333); +#18093=VERTEX_POINT('',#49337); +#18094=VERTEX_POINT('',#49339); +#18095=VERTEX_POINT('',#49343); +#18096=VERTEX_POINT('',#49345); +#18097=VERTEX_POINT('',#49349); +#18098=VERTEX_POINT('',#49351); +#18099=VERTEX_POINT('',#49355); +#18100=VERTEX_POINT('',#49357); +#18101=VERTEX_POINT('',#49361); +#18102=VERTEX_POINT('',#49363); +#18103=VERTEX_POINT('',#49367); +#18104=VERTEX_POINT('',#49369); +#18105=VERTEX_POINT('',#49373); +#18106=VERTEX_POINT('',#49375); +#18107=VERTEX_POINT('',#49379); +#18108=VERTEX_POINT('',#49381); +#18109=VERTEX_POINT('',#49385); +#18110=VERTEX_POINT('',#49387); +#18111=VERTEX_POINT('',#49391); +#18112=VERTEX_POINT('',#49392); +#18113=VERTEX_POINT('',#49397); +#18114=VERTEX_POINT('',#49398); +#18115=VERTEX_POINT('',#49403); +#18116=VERTEX_POINT('',#49404); +#18117=VERTEX_POINT('',#49409); +#18118=VERTEX_POINT('',#49410); +#18119=VERTEX_POINT('',#49415); +#18120=VERTEX_POINT('',#49416); +#18121=VERTEX_POINT('',#49421); +#18122=VERTEX_POINT('',#49422); +#18123=VERTEX_POINT('',#49427); +#18124=VERTEX_POINT('',#49428); +#18125=VERTEX_POINT('',#49433); +#18126=VERTEX_POINT('',#49434); +#18127=VERTEX_POINT('',#49439); +#18128=VERTEX_POINT('',#49440); +#18129=VERTEX_POINT('',#49445); +#18130=VERTEX_POINT('',#49446); +#18131=VERTEX_POINT('',#49451); +#18132=VERTEX_POINT('',#49452); +#18133=VERTEX_POINT('',#49457); +#18134=VERTEX_POINT('',#49458); +#18135=VERTEX_POINT('',#49463); +#18136=VERTEX_POINT('',#49464); +#18137=VERTEX_POINT('',#49469); +#18138=VERTEX_POINT('',#49470); +#18139=VERTEX_POINT('',#49475); +#18140=VERTEX_POINT('',#49476); +#18141=VERTEX_POINT('',#49481); +#18142=VERTEX_POINT('',#49482); +#18143=VERTEX_POINT('',#49487); +#18144=VERTEX_POINT('',#49488); +#18145=VERTEX_POINT('',#49493); +#18146=VERTEX_POINT('',#49494); +#18147=VERTEX_POINT('',#49499); +#18148=VERTEX_POINT('',#49500); +#18149=VERTEX_POINT('',#49619); +#18150=VERTEX_POINT('',#49620); +#18151=VERTEX_POINT('',#49622); +#18152=VERTEX_POINT('',#49624); +#18153=VERTEX_POINT('',#49631); +#18154=VERTEX_POINT('',#49633); +#18155=VERTEX_POINT('',#49637); +#18156=VERTEX_POINT('',#49638); +#18157=VERTEX_POINT('',#49931); +#18158=VERTEX_POINT('',#49932); +#18159=VERTEX_POINT('',#49934); +#18160=VERTEX_POINT('',#49936); +#18161=VERTEX_POINT('',#49938); +#18162=VERTEX_POINT('',#49940); +#18163=VERTEX_POINT('',#49942); +#18164=VERTEX_POINT('',#49944); +#18165=VERTEX_POINT('',#49946); +#18166=VERTEX_POINT('',#49948); +#18167=VERTEX_POINT('',#49950); +#18168=VERTEX_POINT('',#49952); +#18169=VERTEX_POINT('',#49954); +#18170=VERTEX_POINT('',#49956); +#18171=VERTEX_POINT('',#49958); +#18172=VERTEX_POINT('',#49960); +#18173=VERTEX_POINT('',#49962); +#18174=VERTEX_POINT('',#49964); +#18175=VERTEX_POINT('',#49966); +#18176=VERTEX_POINT('',#49968); +#18177=VERTEX_POINT('',#49970); +#18178=VERTEX_POINT('',#49972); +#18179=VERTEX_POINT('',#49974); +#18180=VERTEX_POINT('',#49976); +#18181=VERTEX_POINT('',#49978); +#18182=VERTEX_POINT('',#49980); +#18183=VERTEX_POINT('',#49982); +#18184=VERTEX_POINT('',#49984); +#18185=VERTEX_POINT('',#49986); +#18186=VERTEX_POINT('',#49988); +#18187=VERTEX_POINT('',#49990); +#18188=VERTEX_POINT('',#49992); +#18189=VERTEX_POINT('',#49994); +#18190=VERTEX_POINT('',#49996); +#18191=VERTEX_POINT('',#49998); +#18192=VERTEX_POINT('',#50000); +#18193=VERTEX_POINT('',#50002); +#18194=VERTEX_POINT('',#50004); +#18195=VERTEX_POINT('',#50006); +#18196=VERTEX_POINT('',#50008); +#18197=VERTEX_POINT('',#50010); +#18198=VERTEX_POINT('',#50012); +#18199=VERTEX_POINT('',#50014); +#18200=VERTEX_POINT('',#50016); +#18201=VERTEX_POINT('',#50018); +#18202=VERTEX_POINT('',#50020); +#18203=VERTEX_POINT('',#50022); +#18204=VERTEX_POINT('',#50024); +#18205=VERTEX_POINT('',#50026); +#18206=VERTEX_POINT('',#50028); +#18207=VERTEX_POINT('',#50030); +#18208=VERTEX_POINT('',#50032); +#18209=VERTEX_POINT('',#50034); +#18210=VERTEX_POINT('',#50036); +#18211=VERTEX_POINT('',#50038); +#18212=VERTEX_POINT('',#50040); +#18213=VERTEX_POINT('',#50042); +#18214=VERTEX_POINT('',#50044); +#18215=VERTEX_POINT('',#50046); +#18216=VERTEX_POINT('',#50048); +#18217=VERTEX_POINT('',#50050); +#18218=VERTEX_POINT('',#50052); +#18219=VERTEX_POINT('',#50054); +#18220=VERTEX_POINT('',#50056); +#18221=VERTEX_POINT('',#50058); +#18222=VERTEX_POINT('',#50060); +#18223=VERTEX_POINT('',#50062); +#18224=VERTEX_POINT('',#50064); +#18225=VERTEX_POINT('',#50066); +#18226=VERTEX_POINT('',#50068); +#18227=VERTEX_POINT('',#50070); +#18228=VERTEX_POINT('',#50072); +#18229=VERTEX_POINT('',#50074); +#18230=VERTEX_POINT('',#50076); +#18231=VERTEX_POINT('',#50078); +#18232=VERTEX_POINT('',#50080); +#18233=VERTEX_POINT('',#50082); +#18234=VERTEX_POINT('',#50084); +#18235=VERTEX_POINT('',#50086); +#18236=VERTEX_POINT('',#50088); +#18237=VERTEX_POINT('',#50090); +#18238=VERTEX_POINT('',#50092); +#18239=VERTEX_POINT('',#50094); +#18240=VERTEX_POINT('',#50096); +#18241=VERTEX_POINT('',#50098); +#18242=VERTEX_POINT('',#50100); +#18243=VERTEX_POINT('',#50102); +#18244=VERTEX_POINT('',#50104); +#18245=VERTEX_POINT('',#50106); +#18246=VERTEX_POINT('',#50108); +#18247=VERTEX_POINT('',#50110); +#18248=VERTEX_POINT('',#50112); +#18249=VERTEX_POINT('',#50114); +#18250=VERTEX_POINT('',#50116); +#18251=VERTEX_POINT('',#50118); +#18252=VERTEX_POINT('',#50120); +#18253=VERTEX_POINT('',#50122); +#18254=VERTEX_POINT('',#50124); +#18255=VERTEX_POINT('',#50126); +#18256=VERTEX_POINT('',#50128); +#18257=VERTEX_POINT('',#50130); +#18258=VERTEX_POINT('',#50132); +#18259=VERTEX_POINT('',#50134); +#18260=VERTEX_POINT('',#50136); +#18261=VERTEX_POINT('',#50138); +#18262=VERTEX_POINT('',#50140); +#18263=VERTEX_POINT('',#50142); +#18264=VERTEX_POINT('',#50144); +#18265=VERTEX_POINT('',#50146); +#18266=VERTEX_POINT('',#50148); +#18267=VERTEX_POINT('',#50150); +#18268=VERTEX_POINT('',#50152); +#18269=VERTEX_POINT('',#50154); +#18270=VERTEX_POINT('',#50156); +#18271=VERTEX_POINT('',#50158); +#18272=VERTEX_POINT('',#50160); +#18273=VERTEX_POINT('',#50162); +#18274=VERTEX_POINT('',#50164); +#18275=VERTEX_POINT('',#50166); +#18276=VERTEX_POINT('',#50168); +#18277=VERTEX_POINT('',#50170); +#18278=VERTEX_POINT('',#50172); +#18279=VERTEX_POINT('',#50174); +#18280=VERTEX_POINT('',#50176); +#18281=VERTEX_POINT('',#50178); +#18282=VERTEX_POINT('',#50180); +#18283=VERTEX_POINT('',#50182); +#18284=VERTEX_POINT('',#50184); +#18285=VERTEX_POINT('',#50186); +#18286=VERTEX_POINT('',#50188); +#18287=VERTEX_POINT('',#50190); +#18288=VERTEX_POINT('',#50192); +#18289=VERTEX_POINT('',#50194); +#18290=VERTEX_POINT('',#50196); +#18291=VERTEX_POINT('',#50198); +#18292=VERTEX_POINT('',#50200); +#18293=VERTEX_POINT('',#50202); +#18294=VERTEX_POINT('',#50204); +#18295=VERTEX_POINT('',#50206); +#18296=VERTEX_POINT('',#50208); +#18297=VERTEX_POINT('',#50210); +#18298=VERTEX_POINT('',#50212); +#18299=VERTEX_POINT('',#50214); +#18300=VERTEX_POINT('',#50216); +#18301=VERTEX_POINT('',#50218); +#18302=VERTEX_POINT('',#50220); +#18303=VERTEX_POINT('',#50222); +#18304=VERTEX_POINT('',#50224); +#18305=VERTEX_POINT('',#50226); +#18306=VERTEX_POINT('',#50228); +#18307=VERTEX_POINT('',#50230); +#18308=VERTEX_POINT('',#50232); +#18309=VERTEX_POINT('',#50234); +#18310=VERTEX_POINT('',#50236); +#18311=VERTEX_POINT('',#50238); +#18312=VERTEX_POINT('',#50240); +#18313=VERTEX_POINT('',#50242); +#18314=VERTEX_POINT('',#50244); +#18315=VERTEX_POINT('',#50246); +#18316=VERTEX_POINT('',#50248); +#18317=VERTEX_POINT('',#50250); +#18318=VERTEX_POINT('',#50252); +#18319=VERTEX_POINT('',#50254); +#18320=VERTEX_POINT('',#50256); +#18321=VERTEX_POINT('',#50258); +#18322=VERTEX_POINT('',#50260); +#18323=VERTEX_POINT('',#50262); +#18324=VERTEX_POINT('',#50264); +#18325=VERTEX_POINT('',#50266); +#18326=VERTEX_POINT('',#50268); +#18327=VERTEX_POINT('',#50270); +#18328=VERTEX_POINT('',#50272); +#18329=VERTEX_POINT('',#50274); +#18330=VERTEX_POINT('',#50276); +#18331=VERTEX_POINT('',#50278); +#18332=VERTEX_POINT('',#50280); +#18333=VERTEX_POINT('',#50282); +#18334=VERTEX_POINT('',#50284); +#18335=VERTEX_POINT('',#50286); +#18336=VERTEX_POINT('',#50288); +#18337=VERTEX_POINT('',#50290); +#18338=VERTEX_POINT('',#50292); +#18339=VERTEX_POINT('',#50294); +#18340=VERTEX_POINT('',#50296); +#18341=VERTEX_POINT('',#50298); +#18342=VERTEX_POINT('',#50300); +#18343=VERTEX_POINT('',#50302); +#18344=VERTEX_POINT('',#50304); +#18345=VERTEX_POINT('',#50306); +#18346=VERTEX_POINT('',#50308); +#18347=VERTEX_POINT('',#50310); +#18348=VERTEX_POINT('',#50312); +#18349=VERTEX_POINT('',#50314); +#18350=VERTEX_POINT('',#50316); +#18351=VERTEX_POINT('',#50318); +#18352=VERTEX_POINT('',#50320); +#18353=VERTEX_POINT('',#50322); +#18354=VERTEX_POINT('',#50324); +#18355=VERTEX_POINT('',#50326); +#18356=VERTEX_POINT('',#50328); +#18357=VERTEX_POINT('',#50330); +#18358=VERTEX_POINT('',#50332); +#18359=VERTEX_POINT('',#50334); +#18360=VERTEX_POINT('',#50336); +#18361=VERTEX_POINT('',#50338); +#18362=VERTEX_POINT('',#50340); +#18363=VERTEX_POINT('',#50342); +#18364=VERTEX_POINT('',#50344); +#18365=VERTEX_POINT('',#50346); +#18366=VERTEX_POINT('',#50348); +#18367=VERTEX_POINT('',#50350); +#18368=VERTEX_POINT('',#50352); +#18369=VERTEX_POINT('',#50354); +#18370=VERTEX_POINT('',#50356); +#18371=VERTEX_POINT('',#50358); +#18372=VERTEX_POINT('',#50360); +#18373=VERTEX_POINT('',#50362); +#18374=VERTEX_POINT('',#50364); +#18375=VERTEX_POINT('',#50366); +#18376=VERTEX_POINT('',#50368); +#18377=VERTEX_POINT('',#50370); +#18378=VERTEX_POINT('',#50372); +#18379=VERTEX_POINT('',#50374); +#18380=VERTEX_POINT('',#50376); +#18381=VERTEX_POINT('',#50378); +#18382=VERTEX_POINT('',#50380); +#18383=VERTEX_POINT('',#50382); +#18384=VERTEX_POINT('',#50384); +#18385=VERTEX_POINT('',#50386); +#18386=VERTEX_POINT('',#50388); +#18387=VERTEX_POINT('',#50390); +#18388=VERTEX_POINT('',#50392); +#18389=VERTEX_POINT('',#50394); +#18390=VERTEX_POINT('',#50396); +#18391=VERTEX_POINT('',#50398); +#18392=VERTEX_POINT('',#50400); +#18393=VERTEX_POINT('',#50402); +#18394=VERTEX_POINT('',#50404); +#18395=VERTEX_POINT('',#50406); +#18396=VERTEX_POINT('',#50408); +#18397=VERTEX_POINT('',#50410); +#18398=VERTEX_POINT('',#50412); +#18399=VERTEX_POINT('',#50414); +#18400=VERTEX_POINT('',#50416); +#18401=VERTEX_POINT('',#50418); +#18402=VERTEX_POINT('',#50420); +#18403=VERTEX_POINT('',#50422); +#18404=VERTEX_POINT('',#50424); +#18405=VERTEX_POINT('',#50426); +#18406=VERTEX_POINT('',#50428); +#18407=VERTEX_POINT('',#50430); +#18408=VERTEX_POINT('',#50432); +#18409=VERTEX_POINT('',#50434); +#18410=VERTEX_POINT('',#50436); +#18411=VERTEX_POINT('',#50438); +#18412=VERTEX_POINT('',#50440); +#18413=VERTEX_POINT('',#50442); +#18414=VERTEX_POINT('',#50444); +#18415=VERTEX_POINT('',#50446); +#18416=VERTEX_POINT('',#50448); +#18417=VERTEX_POINT('',#50450); +#18418=VERTEX_POINT('',#50452); +#18419=VERTEX_POINT('',#50454); +#18420=VERTEX_POINT('',#50456); +#18421=VERTEX_POINT('',#50458); +#18422=VERTEX_POINT('',#50460); +#18423=VERTEX_POINT('',#50462); +#18424=VERTEX_POINT('',#50464); +#18425=VERTEX_POINT('',#50466); +#18426=VERTEX_POINT('',#50468); +#18427=VERTEX_POINT('',#50470); +#18428=VERTEX_POINT('',#50472); +#18429=VERTEX_POINT('',#50474); +#18430=VERTEX_POINT('',#50476); +#18431=VERTEX_POINT('',#50478); +#18432=VERTEX_POINT('',#50480); +#18433=VERTEX_POINT('',#50482); +#18434=VERTEX_POINT('',#50484); +#18435=VERTEX_POINT('',#50486); +#18436=VERTEX_POINT('',#50488); +#18437=VERTEX_POINT('',#50490); +#18438=VERTEX_POINT('',#50492); +#18439=VERTEX_POINT('',#50494); +#18440=VERTEX_POINT('',#50496); +#18441=VERTEX_POINT('',#50500); +#18442=VERTEX_POINT('',#50501); +#18443=VERTEX_POINT('',#50503); +#18444=VERTEX_POINT('',#50505); +#18445=VERTEX_POINT('',#50507); +#18446=VERTEX_POINT('',#50509); +#18447=VERTEX_POINT('',#50511); +#18448=VERTEX_POINT('',#50513); +#18449=VERTEX_POINT('',#50515); +#18450=VERTEX_POINT('',#50517); +#18451=VERTEX_POINT('',#50519); +#18452=VERTEX_POINT('',#50521); +#18453=VERTEX_POINT('',#50523); +#18454=VERTEX_POINT('',#50525); +#18455=VERTEX_POINT('',#50527); +#18456=VERTEX_POINT('',#50529); +#18457=VERTEX_POINT('',#50531); +#18458=VERTEX_POINT('',#50533); +#18459=VERTEX_POINT('',#50535); +#18460=VERTEX_POINT('',#50537); +#18461=VERTEX_POINT('',#50539); +#18462=VERTEX_POINT('',#50541); +#18463=VERTEX_POINT('',#50543); +#18464=VERTEX_POINT('',#50545); +#18465=VERTEX_POINT('',#50547); +#18466=VERTEX_POINT('',#50549); +#18467=VERTEX_POINT('',#50551); +#18468=VERTEX_POINT('',#50553); +#18469=VERTEX_POINT('',#50555); +#18470=VERTEX_POINT('',#50557); +#18471=VERTEX_POINT('',#50559); +#18472=VERTEX_POINT('',#50561); +#18473=VERTEX_POINT('',#50563); +#18474=VERTEX_POINT('',#50565); +#18475=VERTEX_POINT('',#50567); +#18476=VERTEX_POINT('',#50569); +#18477=VERTEX_POINT('',#50571); +#18478=VERTEX_POINT('',#50573); +#18479=VERTEX_POINT('',#50575); +#18480=VERTEX_POINT('',#50577); +#18481=VERTEX_POINT('',#50579); +#18482=VERTEX_POINT('',#50581); +#18483=VERTEX_POINT('',#50583); +#18484=VERTEX_POINT('',#50585); +#18485=VERTEX_POINT('',#50587); +#18486=VERTEX_POINT('',#50589); +#18487=VERTEX_POINT('',#50591); +#18488=VERTEX_POINT('',#50593); +#18489=VERTEX_POINT('',#50595); +#18490=VERTEX_POINT('',#50597); +#18491=VERTEX_POINT('',#50599); +#18492=VERTEX_POINT('',#50601); +#18493=VERTEX_POINT('',#50603); +#18494=VERTEX_POINT('',#50605); +#18495=VERTEX_POINT('',#50607); +#18496=VERTEX_POINT('',#50609); +#18497=VERTEX_POINT('',#50611); +#18498=VERTEX_POINT('',#50613); +#18499=VERTEX_POINT('',#50615); +#18500=VERTEX_POINT('',#50617); +#18501=VERTEX_POINT('',#50619); +#18502=VERTEX_POINT('',#50621); +#18503=VERTEX_POINT('',#50623); +#18504=VERTEX_POINT('',#50625); +#18505=VERTEX_POINT('',#50627); +#18506=VERTEX_POINT('',#50629); +#18507=VERTEX_POINT('',#50631); +#18508=VERTEX_POINT('',#50633); +#18509=VERTEX_POINT('',#50635); +#18510=VERTEX_POINT('',#50637); +#18511=VERTEX_POINT('',#50639); +#18512=VERTEX_POINT('',#50641); +#18513=VERTEX_POINT('',#50643); +#18514=VERTEX_POINT('',#50645); +#18515=VERTEX_POINT('',#50647); +#18516=VERTEX_POINT('',#50649); +#18517=VERTEX_POINT('',#50651); +#18518=VERTEX_POINT('',#50653); +#18519=VERTEX_POINT('',#50655); +#18520=VERTEX_POINT('',#50657); +#18521=VERTEX_POINT('',#50659); +#18522=VERTEX_POINT('',#50661); +#18523=VERTEX_POINT('',#50663); +#18524=VERTEX_POINT('',#50665); +#18525=VERTEX_POINT('',#50667); +#18526=VERTEX_POINT('',#50669); +#18527=VERTEX_POINT('',#50671); +#18528=VERTEX_POINT('',#50673); +#18529=VERTEX_POINT('',#50675); +#18530=VERTEX_POINT('',#50677); +#18531=VERTEX_POINT('',#50679); +#18532=VERTEX_POINT('',#50681); +#18533=VERTEX_POINT('',#50683); +#18534=VERTEX_POINT('',#50685); +#18535=VERTEX_POINT('',#50687); +#18536=VERTEX_POINT('',#50689); +#18537=VERTEX_POINT('',#50691); +#18538=VERTEX_POINT('',#50693); +#18539=VERTEX_POINT('',#50695); +#18540=VERTEX_POINT('',#50697); +#18541=VERTEX_POINT('',#50699); +#18542=VERTEX_POINT('',#50701); +#18543=VERTEX_POINT('',#50703); +#18544=VERTEX_POINT('',#50705); +#18545=VERTEX_POINT('',#50707); +#18546=VERTEX_POINT('',#50709); +#18547=VERTEX_POINT('',#50711); +#18548=VERTEX_POINT('',#50713); +#18549=VERTEX_POINT('',#50715); +#18550=VERTEX_POINT('',#50717); +#18551=VERTEX_POINT('',#50719); +#18552=VERTEX_POINT('',#50721); +#18553=VERTEX_POINT('',#50723); +#18554=VERTEX_POINT('',#50725); +#18555=VERTEX_POINT('',#50727); +#18556=VERTEX_POINT('',#50729); +#18557=VERTEX_POINT('',#50731); +#18558=VERTEX_POINT('',#50733); +#18559=VERTEX_POINT('',#50735); +#18560=VERTEX_POINT('',#50737); +#18561=VERTEX_POINT('',#50739); +#18562=VERTEX_POINT('',#50741); +#18563=VERTEX_POINT('',#50743); +#18564=VERTEX_POINT('',#50745); +#18565=VERTEX_POINT('',#50747); +#18566=VERTEX_POINT('',#50749); +#18567=VERTEX_POINT('',#50751); +#18568=VERTEX_POINT('',#50753); +#18569=VERTEX_POINT('',#50755); +#18570=VERTEX_POINT('',#50757); +#18571=VERTEX_POINT('',#50759); +#18572=VERTEX_POINT('',#50761); +#18573=VERTEX_POINT('',#50763); +#18574=VERTEX_POINT('',#50765); +#18575=VERTEX_POINT('',#50767); +#18576=VERTEX_POINT('',#50769); +#18577=VERTEX_POINT('',#50771); +#18578=VERTEX_POINT('',#50773); +#18579=VERTEX_POINT('',#50775); +#18580=VERTEX_POINT('',#50777); +#18581=VERTEX_POINT('',#50779); +#18582=VERTEX_POINT('',#50781); +#18583=VERTEX_POINT('',#50783); +#18584=VERTEX_POINT('',#50785); +#18585=VERTEX_POINT('',#50787); +#18586=VERTEX_POINT('',#50789); +#18587=VERTEX_POINT('',#50791); +#18588=VERTEX_POINT('',#50793); +#18589=VERTEX_POINT('',#50795); +#18590=VERTEX_POINT('',#50797); +#18591=VERTEX_POINT('',#50799); +#18592=VERTEX_POINT('',#50801); +#18593=VERTEX_POINT('',#50803); +#18594=VERTEX_POINT('',#50805); +#18595=VERTEX_POINT('',#50807); +#18596=VERTEX_POINT('',#50809); +#18597=VERTEX_POINT('',#50811); +#18598=VERTEX_POINT('',#50813); +#18599=VERTEX_POINT('',#50815); +#18600=VERTEX_POINT('',#50817); +#18601=VERTEX_POINT('',#50819); +#18602=VERTEX_POINT('',#50821); +#18603=VERTEX_POINT('',#50823); +#18604=VERTEX_POINT('',#50825); +#18605=VERTEX_POINT('',#50827); +#18606=VERTEX_POINT('',#50829); +#18607=VERTEX_POINT('',#50831); +#18608=VERTEX_POINT('',#50833); +#18609=VERTEX_POINT('',#50835); +#18610=VERTEX_POINT('',#50837); +#18611=VERTEX_POINT('',#50839); +#18612=VERTEX_POINT('',#50841); +#18613=VERTEX_POINT('',#50843); +#18614=VERTEX_POINT('',#50845); +#18615=VERTEX_POINT('',#50847); +#18616=VERTEX_POINT('',#50849); +#18617=VERTEX_POINT('',#50851); +#18618=VERTEX_POINT('',#50853); +#18619=VERTEX_POINT('',#50855); +#18620=VERTEX_POINT('',#50857); +#18621=VERTEX_POINT('',#50859); +#18622=VERTEX_POINT('',#50861); +#18623=VERTEX_POINT('',#50863); +#18624=VERTEX_POINT('',#50865); +#18625=VERTEX_POINT('',#50867); +#18626=VERTEX_POINT('',#50869); +#18627=VERTEX_POINT('',#50871); +#18628=VERTEX_POINT('',#50873); +#18629=VERTEX_POINT('',#50875); +#18630=VERTEX_POINT('',#50877); +#18631=VERTEX_POINT('',#50879); +#18632=VERTEX_POINT('',#50881); +#18633=VERTEX_POINT('',#50883); +#18634=VERTEX_POINT('',#50885); +#18635=VERTEX_POINT('',#50887); +#18636=VERTEX_POINT('',#50889); +#18637=VERTEX_POINT('',#50891); +#18638=VERTEX_POINT('',#50893); +#18639=VERTEX_POINT('',#50895); +#18640=VERTEX_POINT('',#50897); +#18641=VERTEX_POINT('',#50899); +#18642=VERTEX_POINT('',#50901); +#18643=VERTEX_POINT('',#50903); +#18644=VERTEX_POINT('',#50905); +#18645=VERTEX_POINT('',#50907); +#18646=VERTEX_POINT('',#50909); +#18647=VERTEX_POINT('',#50911); +#18648=VERTEX_POINT('',#50913); +#18649=VERTEX_POINT('',#50915); +#18650=VERTEX_POINT('',#50917); +#18651=VERTEX_POINT('',#50919); +#18652=VERTEX_POINT('',#50921); +#18653=VERTEX_POINT('',#50923); +#18654=VERTEX_POINT('',#50925); +#18655=VERTEX_POINT('',#50927); +#18656=VERTEX_POINT('',#50929); +#18657=VERTEX_POINT('',#50931); +#18658=VERTEX_POINT('',#50933); +#18659=VERTEX_POINT('',#50935); +#18660=VERTEX_POINT('',#50937); +#18661=VERTEX_POINT('',#50939); +#18662=VERTEX_POINT('',#50941); +#18663=VERTEX_POINT('',#50943); +#18664=VERTEX_POINT('',#50945); +#18665=VERTEX_POINT('',#50947); +#18666=VERTEX_POINT('',#50949); +#18667=VERTEX_POINT('',#50951); +#18668=VERTEX_POINT('',#50953); +#18669=VERTEX_POINT('',#50955); +#18670=VERTEX_POINT('',#50957); +#18671=VERTEX_POINT('',#50959); +#18672=VERTEX_POINT('',#50961); +#18673=VERTEX_POINT('',#50963); +#18674=VERTEX_POINT('',#50965); +#18675=VERTEX_POINT('',#50967); +#18676=VERTEX_POINT('',#50969); +#18677=VERTEX_POINT('',#50971); +#18678=VERTEX_POINT('',#50973); +#18679=VERTEX_POINT('',#50975); +#18680=VERTEX_POINT('',#50977); +#18681=VERTEX_POINT('',#50979); +#18682=VERTEX_POINT('',#50981); +#18683=VERTEX_POINT('',#50983); +#18684=VERTEX_POINT('',#50985); +#18685=VERTEX_POINT('',#50987); +#18686=VERTEX_POINT('',#50989); +#18687=VERTEX_POINT('',#50991); +#18688=VERTEX_POINT('',#50993); +#18689=VERTEX_POINT('',#50995); +#18690=VERTEX_POINT('',#50997); +#18691=VERTEX_POINT('',#50999); +#18692=VERTEX_POINT('',#51001); +#18693=VERTEX_POINT('',#51003); +#18694=VERTEX_POINT('',#51005); +#18695=VERTEX_POINT('',#51007); +#18696=VERTEX_POINT('',#51009); +#18697=VERTEX_POINT('',#51011); +#18698=VERTEX_POINT('',#51013); +#18699=VERTEX_POINT('',#51015); +#18700=VERTEX_POINT('',#51017); +#18701=VERTEX_POINT('',#51019); +#18702=VERTEX_POINT('',#51021); +#18703=VERTEX_POINT('',#51023); +#18704=VERTEX_POINT('',#51025); +#18705=VERTEX_POINT('',#51027); +#18706=VERTEX_POINT('',#51029); +#18707=VERTEX_POINT('',#51031); +#18708=VERTEX_POINT('',#51033); +#18709=VERTEX_POINT('',#51035); +#18710=VERTEX_POINT('',#51037); +#18711=VERTEX_POINT('',#51039); +#18712=VERTEX_POINT('',#51041); +#18713=VERTEX_POINT('',#51043); +#18714=VERTEX_POINT('',#51045); +#18715=VERTEX_POINT('',#51047); +#18716=VERTEX_POINT('',#51049); +#18717=VERTEX_POINT('',#51051); +#18718=VERTEX_POINT('',#51053); +#18719=VERTEX_POINT('',#51055); +#18720=VERTEX_POINT('',#51057); +#18721=VERTEX_POINT('',#51059); +#18722=VERTEX_POINT('',#51061); +#18723=VERTEX_POINT('',#51063); +#18724=VERTEX_POINT('',#51065); +#18725=VERTEX_POINT('',#51069); +#18726=VERTEX_POINT('',#51070); +#18727=VERTEX_POINT('',#51072); +#18728=VERTEX_POINT('',#51074); +#18729=VERTEX_POINT('',#51076); +#18730=VERTEX_POINT('',#51078); +#18731=VERTEX_POINT('',#51080); +#18732=VERTEX_POINT('',#51082); +#18733=VERTEX_POINT('',#51084); +#18734=VERTEX_POINT('',#51086); +#18735=VERTEX_POINT('',#51088); +#18736=VERTEX_POINT('',#51090); +#18737=VERTEX_POINT('',#51092); +#18738=VERTEX_POINT('',#51094); +#18739=VERTEX_POINT('',#51096); +#18740=VERTEX_POINT('',#51098); +#18741=VERTEX_POINT('',#51100); +#18742=VERTEX_POINT('',#51102); +#18743=VERTEX_POINT('',#51104); +#18744=VERTEX_POINT('',#51106); +#18745=VERTEX_POINT('',#51108); +#18746=VERTEX_POINT('',#51110); +#18747=VERTEX_POINT('',#51112); +#18748=VERTEX_POINT('',#51114); +#18749=VERTEX_POINT('',#51116); +#18750=VERTEX_POINT('',#51118); +#18751=VERTEX_POINT('',#51120); +#18752=VERTEX_POINT('',#51122); +#18753=VERTEX_POINT('',#51124); +#18754=VERTEX_POINT('',#51126); +#18755=VERTEX_POINT('',#51128); +#18756=VERTEX_POINT('',#51130); +#18757=VERTEX_POINT('',#51132); +#18758=VERTEX_POINT('',#51134); +#18759=VERTEX_POINT('',#51136); +#18760=VERTEX_POINT('',#51138); +#18761=VERTEX_POINT('',#51140); +#18762=VERTEX_POINT('',#51142); +#18763=VERTEX_POINT('',#51144); +#18764=VERTEX_POINT('',#51146); +#18765=VERTEX_POINT('',#51148); +#18766=VERTEX_POINT('',#51150); +#18767=VERTEX_POINT('',#51152); +#18768=VERTEX_POINT('',#51154); +#18769=VERTEX_POINT('',#51156); +#18770=VERTEX_POINT('',#51158); +#18771=VERTEX_POINT('',#51160); +#18772=VERTEX_POINT('',#51162); +#18773=VERTEX_POINT('',#51164); +#18774=VERTEX_POINT('',#51166); +#18775=VERTEX_POINT('',#51168); +#18776=VERTEX_POINT('',#51170); +#18777=VERTEX_POINT('',#51172); +#18778=VERTEX_POINT('',#51174); +#18779=VERTEX_POINT('',#51176); +#18780=VERTEX_POINT('',#51178); +#18781=VERTEX_POINT('',#51180); +#18782=VERTEX_POINT('',#51182); +#18783=VERTEX_POINT('',#51184); +#18784=VERTEX_POINT('',#51186); +#18785=VERTEX_POINT('',#51188); +#18786=VERTEX_POINT('',#51190); +#18787=VERTEX_POINT('',#51192); +#18788=VERTEX_POINT('',#51194); +#18789=VERTEX_POINT('',#51196); +#18790=VERTEX_POINT('',#51198); +#18791=VERTEX_POINT('',#51200); +#18792=VERTEX_POINT('',#51202); +#18793=VERTEX_POINT('',#51204); +#18794=VERTEX_POINT('',#51206); +#18795=VERTEX_POINT('',#51208); +#18796=VERTEX_POINT('',#51210); +#18797=VERTEX_POINT('',#51212); +#18798=VERTEX_POINT('',#51214); +#18799=VERTEX_POINT('',#51216); +#18800=VERTEX_POINT('',#51218); +#18801=VERTEX_POINT('',#51220); +#18802=VERTEX_POINT('',#51222); +#18803=VERTEX_POINT('',#51224); +#18804=VERTEX_POINT('',#51226); +#18805=VERTEX_POINT('',#51228); +#18806=VERTEX_POINT('',#51230); +#18807=VERTEX_POINT('',#51232); +#18808=VERTEX_POINT('',#51234); +#18809=VERTEX_POINT('',#51236); +#18810=VERTEX_POINT('',#51238); +#18811=VERTEX_POINT('',#51240); +#18812=VERTEX_POINT('',#51242); +#18813=VERTEX_POINT('',#51244); +#18814=VERTEX_POINT('',#51246); +#18815=VERTEX_POINT('',#51248); +#18816=VERTEX_POINT('',#51250); +#18817=VERTEX_POINT('',#51252); +#18818=VERTEX_POINT('',#51254); +#18819=VERTEX_POINT('',#51256); +#18820=VERTEX_POINT('',#51258); +#18821=VERTEX_POINT('',#51260); +#18822=VERTEX_POINT('',#51262); +#18823=VERTEX_POINT('',#51264); +#18824=VERTEX_POINT('',#51266); +#18825=VERTEX_POINT('',#51268); +#18826=VERTEX_POINT('',#51270); +#18827=VERTEX_POINT('',#51272); +#18828=VERTEX_POINT('',#51274); +#18829=VERTEX_POINT('',#51276); +#18830=VERTEX_POINT('',#51278); +#18831=VERTEX_POINT('',#51280); +#18832=VERTEX_POINT('',#51282); +#18833=VERTEX_POINT('',#51284); +#18834=VERTEX_POINT('',#51286); +#18835=VERTEX_POINT('',#51288); +#18836=VERTEX_POINT('',#51290); +#18837=VERTEX_POINT('',#51292); +#18838=VERTEX_POINT('',#51294); +#18839=VERTEX_POINT('',#51296); +#18840=VERTEX_POINT('',#51298); +#18841=VERTEX_POINT('',#51300); +#18842=VERTEX_POINT('',#51302); +#18843=VERTEX_POINT('',#51304); +#18844=VERTEX_POINT('',#51306); +#18845=VERTEX_POINT('',#51308); +#18846=VERTEX_POINT('',#51310); +#18847=VERTEX_POINT('',#51312); +#18848=VERTEX_POINT('',#51314); +#18849=VERTEX_POINT('',#51316); +#18850=VERTEX_POINT('',#51318); +#18851=VERTEX_POINT('',#51320); +#18852=VERTEX_POINT('',#51322); +#18853=VERTEX_POINT('',#51324); +#18854=VERTEX_POINT('',#51326); +#18855=VERTEX_POINT('',#51328); +#18856=VERTEX_POINT('',#51330); +#18857=VERTEX_POINT('',#51332); +#18858=VERTEX_POINT('',#51334); +#18859=VERTEX_POINT('',#51336); +#18860=VERTEX_POINT('',#51338); +#18861=VERTEX_POINT('',#51340); +#18862=VERTEX_POINT('',#51342); +#18863=VERTEX_POINT('',#51344); +#18864=VERTEX_POINT('',#51346); +#18865=VERTEX_POINT('',#51348); +#18866=VERTEX_POINT('',#51350); +#18867=VERTEX_POINT('',#51352); +#18868=VERTEX_POINT('',#51354); +#18869=VERTEX_POINT('',#51356); +#18870=VERTEX_POINT('',#51358); +#18871=VERTEX_POINT('',#51360); +#18872=VERTEX_POINT('',#51362); +#18873=VERTEX_POINT('',#51364); +#18874=VERTEX_POINT('',#51366); +#18875=VERTEX_POINT('',#51368); +#18876=VERTEX_POINT('',#51370); +#18877=VERTEX_POINT('',#51372); +#18878=VERTEX_POINT('',#51374); +#18879=VERTEX_POINT('',#51376); +#18880=VERTEX_POINT('',#51378); +#18881=VERTEX_POINT('',#51380); +#18882=VERTEX_POINT('',#51382); +#18883=VERTEX_POINT('',#51384); +#18884=VERTEX_POINT('',#51386); +#18885=VERTEX_POINT('',#51388); +#18886=VERTEX_POINT('',#51390); +#18887=VERTEX_POINT('',#51392); +#18888=VERTEX_POINT('',#51394); +#18889=VERTEX_POINT('',#51396); +#18890=VERTEX_POINT('',#51398); +#18891=VERTEX_POINT('',#51400); +#18892=VERTEX_POINT('',#51402); +#18893=VERTEX_POINT('',#51404); +#18894=VERTEX_POINT('',#51406); +#18895=VERTEX_POINT('',#51408); +#18896=VERTEX_POINT('',#51410); +#18897=VERTEX_POINT('',#51412); +#18898=VERTEX_POINT('',#51414); +#18899=VERTEX_POINT('',#51416); +#18900=VERTEX_POINT('',#51418); +#18901=VERTEX_POINT('',#51420); +#18902=VERTEX_POINT('',#51422); +#18903=VERTEX_POINT('',#51424); +#18904=VERTEX_POINT('',#51426); +#18905=VERTEX_POINT('',#51428); +#18906=VERTEX_POINT('',#51430); +#18907=VERTEX_POINT('',#51432); +#18908=VERTEX_POINT('',#51434); +#18909=VERTEX_POINT('',#51436); +#18910=VERTEX_POINT('',#51438); +#18911=VERTEX_POINT('',#51440); +#18912=VERTEX_POINT('',#51442); +#18913=VERTEX_POINT('',#51444); +#18914=VERTEX_POINT('',#51446); +#18915=VERTEX_POINT('',#51448); +#18916=VERTEX_POINT('',#51450); +#18917=VERTEX_POINT('',#51452); +#18918=VERTEX_POINT('',#51454); +#18919=VERTEX_POINT('',#51456); +#18920=VERTEX_POINT('',#51458); +#18921=VERTEX_POINT('',#51460); +#18922=VERTEX_POINT('',#51462); +#18923=VERTEX_POINT('',#51464); +#18924=VERTEX_POINT('',#51466); +#18925=VERTEX_POINT('',#51468); +#18926=VERTEX_POINT('',#51470); +#18927=VERTEX_POINT('',#51472); +#18928=VERTEX_POINT('',#51474); +#18929=VERTEX_POINT('',#51476); +#18930=VERTEX_POINT('',#51478); +#18931=VERTEX_POINT('',#51480); +#18932=VERTEX_POINT('',#51482); +#18933=VERTEX_POINT('',#51484); +#18934=VERTEX_POINT('',#51486); +#18935=VERTEX_POINT('',#51488); +#18936=VERTEX_POINT('',#51490); +#18937=VERTEX_POINT('',#51492); +#18938=VERTEX_POINT('',#51494); +#18939=VERTEX_POINT('',#51496); +#18940=VERTEX_POINT('',#51498); +#18941=VERTEX_POINT('',#51500); +#18942=VERTEX_POINT('',#51502); +#18943=VERTEX_POINT('',#51504); +#18944=VERTEX_POINT('',#51506); +#18945=VERTEX_POINT('',#51508); +#18946=VERTEX_POINT('',#51510); +#18947=VERTEX_POINT('',#51512); +#18948=VERTEX_POINT('',#51514); +#18949=VERTEX_POINT('',#51516); +#18950=VERTEX_POINT('',#51518); +#18951=VERTEX_POINT('',#51520); +#18952=VERTEX_POINT('',#51522); +#18953=VERTEX_POINT('',#51524); +#18954=VERTEX_POINT('',#51526); +#18955=VERTEX_POINT('',#51528); +#18956=VERTEX_POINT('',#51530); +#18957=VERTEX_POINT('',#51532); +#18958=VERTEX_POINT('',#51534); +#18959=VERTEX_POINT('',#51536); +#18960=VERTEX_POINT('',#51538); +#18961=VERTEX_POINT('',#51540); +#18962=VERTEX_POINT('',#51542); +#18963=VERTEX_POINT('',#51544); +#18964=VERTEX_POINT('',#51546); +#18965=VERTEX_POINT('',#51548); +#18966=VERTEX_POINT('',#51550); +#18967=VERTEX_POINT('',#51552); +#18968=VERTEX_POINT('',#51554); +#18969=VERTEX_POINT('',#51556); +#18970=VERTEX_POINT('',#51558); +#18971=VERTEX_POINT('',#51560); +#18972=VERTEX_POINT('',#51562); +#18973=VERTEX_POINT('',#51564); +#18974=VERTEX_POINT('',#51566); +#18975=VERTEX_POINT('',#51568); +#18976=VERTEX_POINT('',#51570); +#18977=VERTEX_POINT('',#51572); +#18978=VERTEX_POINT('',#51574); +#18979=VERTEX_POINT('',#51576); +#18980=VERTEX_POINT('',#51578); +#18981=VERTEX_POINT('',#51580); +#18982=VERTEX_POINT('',#51582); +#18983=VERTEX_POINT('',#51584); +#18984=VERTEX_POINT('',#51586); +#18985=VERTEX_POINT('',#51588); +#18986=VERTEX_POINT('',#51590); +#18987=VERTEX_POINT('',#51592); +#18988=VERTEX_POINT('',#51594); +#18989=VERTEX_POINT('',#51596); +#18990=VERTEX_POINT('',#51598); +#18991=VERTEX_POINT('',#51600); +#18992=VERTEX_POINT('',#51602); +#18993=VERTEX_POINT('',#51604); +#18994=VERTEX_POINT('',#51606); +#18995=VERTEX_POINT('',#51608); +#18996=VERTEX_POINT('',#51610); +#18997=VERTEX_POINT('',#51612); +#18998=VERTEX_POINT('',#51614); +#18999=VERTEX_POINT('',#51616); +#19000=VERTEX_POINT('',#51618); +#19001=VERTEX_POINT('',#51620); +#19002=VERTEX_POINT('',#51622); +#19003=VERTEX_POINT('',#51624); +#19004=VERTEX_POINT('',#51626); +#19005=VERTEX_POINT('',#51628); +#19006=VERTEX_POINT('',#51630); +#19007=VERTEX_POINT('',#51632); +#19008=VERTEX_POINT('',#51634); +#19009=VERTEX_POINT('',#51638); +#19010=VERTEX_POINT('',#51639); +#19011=VERTEX_POINT('',#51641); +#19012=VERTEX_POINT('',#51643); +#19013=VERTEX_POINT('',#51645); +#19014=VERTEX_POINT('',#51647); +#19015=VERTEX_POINT('',#51649); +#19016=VERTEX_POINT('',#51651); +#19017=VERTEX_POINT('',#51653); +#19018=VERTEX_POINT('',#51655); +#19019=VERTEX_POINT('',#51657); +#19020=VERTEX_POINT('',#51659); +#19021=VERTEX_POINT('',#51661); +#19022=VERTEX_POINT('',#51663); +#19023=VERTEX_POINT('',#51665); +#19024=VERTEX_POINT('',#51667); +#19025=VERTEX_POINT('',#51669); +#19026=VERTEX_POINT('',#51671); +#19027=VERTEX_POINT('',#51673); +#19028=VERTEX_POINT('',#51675); +#19029=VERTEX_POINT('',#51677); +#19030=VERTEX_POINT('',#51679); +#19031=VERTEX_POINT('',#51681); +#19032=VERTEX_POINT('',#51683); +#19033=VERTEX_POINT('',#51685); +#19034=VERTEX_POINT('',#51687); +#19035=VERTEX_POINT('',#51689); +#19036=VERTEX_POINT('',#51691); +#19037=VERTEX_POINT('',#51693); +#19038=VERTEX_POINT('',#51695); +#19039=VERTEX_POINT('',#51697); +#19040=VERTEX_POINT('',#51699); +#19041=VERTEX_POINT('',#51701); +#19042=VERTEX_POINT('',#51703); +#19043=VERTEX_POINT('',#51705); +#19044=VERTEX_POINT('',#51707); +#19045=VERTEX_POINT('',#51709); +#19046=VERTEX_POINT('',#51711); +#19047=VERTEX_POINT('',#51713); +#19048=VERTEX_POINT('',#51715); +#19049=VERTEX_POINT('',#51717); +#19050=VERTEX_POINT('',#51719); +#19051=VERTEX_POINT('',#51721); +#19052=VERTEX_POINT('',#51723); +#19053=VERTEX_POINT('',#51725); +#19054=VERTEX_POINT('',#51727); +#19055=VERTEX_POINT('',#51729); +#19056=VERTEX_POINT('',#51731); +#19057=VERTEX_POINT('',#51733); +#19058=VERTEX_POINT('',#51735); +#19059=VERTEX_POINT('',#51737); +#19060=VERTEX_POINT('',#51739); +#19061=VERTEX_POINT('',#51741); +#19062=VERTEX_POINT('',#51743); +#19063=VERTEX_POINT('',#51745); +#19064=VERTEX_POINT('',#51747); +#19065=VERTEX_POINT('',#51749); +#19066=VERTEX_POINT('',#51751); +#19067=VERTEX_POINT('',#51753); +#19068=VERTEX_POINT('',#51755); +#19069=VERTEX_POINT('',#51757); +#19070=VERTEX_POINT('',#51759); +#19071=VERTEX_POINT('',#51761); +#19072=VERTEX_POINT('',#51763); +#19073=VERTEX_POINT('',#51765); +#19074=VERTEX_POINT('',#51767); +#19075=VERTEX_POINT('',#51769); +#19076=VERTEX_POINT('',#51771); +#19077=VERTEX_POINT('',#51773); +#19078=VERTEX_POINT('',#51775); +#19079=VERTEX_POINT('',#51777); +#19080=VERTEX_POINT('',#51779); +#19081=VERTEX_POINT('',#51781); +#19082=VERTEX_POINT('',#51783); +#19083=VERTEX_POINT('',#51785); +#19084=VERTEX_POINT('',#51787); +#19085=VERTEX_POINT('',#51789); +#19086=VERTEX_POINT('',#51791); +#19087=VERTEX_POINT('',#51793); +#19088=VERTEX_POINT('',#51795); +#19089=VERTEX_POINT('',#51797); +#19090=VERTEX_POINT('',#51799); +#19091=VERTEX_POINT('',#51801); +#19092=VERTEX_POINT('',#51803); +#19093=VERTEX_POINT('',#51805); +#19094=VERTEX_POINT('',#51807); +#19095=VERTEX_POINT('',#51809); +#19096=VERTEX_POINT('',#51811); +#19097=VERTEX_POINT('',#51813); +#19098=VERTEX_POINT('',#51815); +#19099=VERTEX_POINT('',#51817); +#19100=VERTEX_POINT('',#51819); +#19101=VERTEX_POINT('',#51821); +#19102=VERTEX_POINT('',#51823); +#19103=VERTEX_POINT('',#51825); +#19104=VERTEX_POINT('',#51827); +#19105=VERTEX_POINT('',#51829); +#19106=VERTEX_POINT('',#51831); +#19107=VERTEX_POINT('',#51833); +#19108=VERTEX_POINT('',#51835); +#19109=VERTEX_POINT('',#51837); +#19110=VERTEX_POINT('',#51839); +#19111=VERTEX_POINT('',#51841); +#19112=VERTEX_POINT('',#51843); +#19113=VERTEX_POINT('',#51845); +#19114=VERTEX_POINT('',#51847); +#19115=VERTEX_POINT('',#51849); +#19116=VERTEX_POINT('',#51851); +#19117=VERTEX_POINT('',#51853); +#19118=VERTEX_POINT('',#51855); +#19119=VERTEX_POINT('',#51857); +#19120=VERTEX_POINT('',#51859); +#19121=VERTEX_POINT('',#51861); +#19122=VERTEX_POINT('',#51863); +#19123=VERTEX_POINT('',#51865); +#19124=VERTEX_POINT('',#51867); +#19125=VERTEX_POINT('',#51869); +#19126=VERTEX_POINT('',#51871); +#19127=VERTEX_POINT('',#51873); +#19128=VERTEX_POINT('',#51875); +#19129=VERTEX_POINT('',#51877); +#19130=VERTEX_POINT('',#51879); +#19131=VERTEX_POINT('',#51881); +#19132=VERTEX_POINT('',#51883); +#19133=VERTEX_POINT('',#51885); +#19134=VERTEX_POINT('',#51887); +#19135=VERTEX_POINT('',#51889); +#19136=VERTEX_POINT('',#51891); +#19137=VERTEX_POINT('',#51893); +#19138=VERTEX_POINT('',#51895); +#19139=VERTEX_POINT('',#51897); +#19140=VERTEX_POINT('',#51899); +#19141=VERTEX_POINT('',#51901); +#19142=VERTEX_POINT('',#51903); +#19143=VERTEX_POINT('',#51905); +#19144=VERTEX_POINT('',#51907); +#19145=VERTEX_POINT('',#51909); +#19146=VERTEX_POINT('',#51911); +#19147=VERTEX_POINT('',#51913); +#19148=VERTEX_POINT('',#51915); +#19149=VERTEX_POINT('',#51917); +#19150=VERTEX_POINT('',#51919); +#19151=VERTEX_POINT('',#51921); +#19152=VERTEX_POINT('',#51923); +#19153=VERTEX_POINT('',#51925); +#19154=VERTEX_POINT('',#51927); +#19155=VERTEX_POINT('',#51929); +#19156=VERTEX_POINT('',#51931); +#19157=VERTEX_POINT('',#51933); +#19158=VERTEX_POINT('',#51935); +#19159=VERTEX_POINT('',#51937); +#19160=VERTEX_POINT('',#51939); +#19161=VERTEX_POINT('',#51941); +#19162=VERTEX_POINT('',#51943); +#19163=VERTEX_POINT('',#51945); +#19164=VERTEX_POINT('',#51947); +#19165=VERTEX_POINT('',#51949); +#19166=VERTEX_POINT('',#51951); +#19167=VERTEX_POINT('',#51953); +#19168=VERTEX_POINT('',#51955); +#19169=VERTEX_POINT('',#51957); +#19170=VERTEX_POINT('',#51959); +#19171=VERTEX_POINT('',#51961); +#19172=VERTEX_POINT('',#51963); +#19173=VERTEX_POINT('',#51965); +#19174=VERTEX_POINT('',#51967); +#19175=VERTEX_POINT('',#51969); +#19176=VERTEX_POINT('',#51971); +#19177=VERTEX_POINT('',#51973); +#19178=VERTEX_POINT('',#51975); +#19179=VERTEX_POINT('',#51977); +#19180=VERTEX_POINT('',#51979); +#19181=VERTEX_POINT('',#51981); +#19182=VERTEX_POINT('',#51983); +#19183=VERTEX_POINT('',#51985); +#19184=VERTEX_POINT('',#51987); +#19185=VERTEX_POINT('',#51989); +#19186=VERTEX_POINT('',#51991); +#19187=VERTEX_POINT('',#51993); +#19188=VERTEX_POINT('',#51995); +#19189=VERTEX_POINT('',#51997); +#19190=VERTEX_POINT('',#51999); +#19191=VERTEX_POINT('',#52001); +#19192=VERTEX_POINT('',#52003); +#19193=VERTEX_POINT('',#52005); +#19194=VERTEX_POINT('',#52007); +#19195=VERTEX_POINT('',#52009); +#19196=VERTEX_POINT('',#52011); +#19197=VERTEX_POINT('',#52013); +#19198=VERTEX_POINT('',#52015); +#19199=VERTEX_POINT('',#52017); +#19200=VERTEX_POINT('',#52019); +#19201=VERTEX_POINT('',#52021); +#19202=VERTEX_POINT('',#52023); +#19203=VERTEX_POINT('',#52025); +#19204=VERTEX_POINT('',#52027); +#19205=VERTEX_POINT('',#52029); +#19206=VERTEX_POINT('',#52031); +#19207=VERTEX_POINT('',#52033); +#19208=VERTEX_POINT('',#52035); +#19209=VERTEX_POINT('',#52037); +#19210=VERTEX_POINT('',#52039); +#19211=VERTEX_POINT('',#52041); +#19212=VERTEX_POINT('',#52043); +#19213=VERTEX_POINT('',#52045); +#19214=VERTEX_POINT('',#52047); +#19215=VERTEX_POINT('',#52049); +#19216=VERTEX_POINT('',#52051); +#19217=VERTEX_POINT('',#52053); +#19218=VERTEX_POINT('',#52055); +#19219=VERTEX_POINT('',#52057); +#19220=VERTEX_POINT('',#52059); +#19221=VERTEX_POINT('',#52061); +#19222=VERTEX_POINT('',#52063); +#19223=VERTEX_POINT('',#52065); +#19224=VERTEX_POINT('',#52067); +#19225=VERTEX_POINT('',#52069); +#19226=VERTEX_POINT('',#52071); +#19227=VERTEX_POINT('',#52073); +#19228=VERTEX_POINT('',#52075); +#19229=VERTEX_POINT('',#52077); +#19230=VERTEX_POINT('',#52079); +#19231=VERTEX_POINT('',#52081); +#19232=VERTEX_POINT('',#52083); +#19233=VERTEX_POINT('',#52085); +#19234=VERTEX_POINT('',#52087); +#19235=VERTEX_POINT('',#52089); +#19236=VERTEX_POINT('',#52091); +#19237=VERTEX_POINT('',#52093); +#19238=VERTEX_POINT('',#52095); +#19239=VERTEX_POINT('',#52097); +#19240=VERTEX_POINT('',#52099); +#19241=VERTEX_POINT('',#52101); +#19242=VERTEX_POINT('',#52103); +#19243=VERTEX_POINT('',#52105); +#19244=VERTEX_POINT('',#52107); +#19245=VERTEX_POINT('',#52109); +#19246=VERTEX_POINT('',#52111); +#19247=VERTEX_POINT('',#52113); +#19248=VERTEX_POINT('',#52115); +#19249=VERTEX_POINT('',#52117); +#19250=VERTEX_POINT('',#52119); +#19251=VERTEX_POINT('',#52121); +#19252=VERTEX_POINT('',#52123); +#19253=VERTEX_POINT('',#52125); +#19254=VERTEX_POINT('',#52127); +#19255=VERTEX_POINT('',#52129); +#19256=VERTEX_POINT('',#52131); +#19257=VERTEX_POINT('',#52133); +#19258=VERTEX_POINT('',#52135); +#19259=VERTEX_POINT('',#52137); +#19260=VERTEX_POINT('',#52139); +#19261=VERTEX_POINT('',#52141); +#19262=VERTEX_POINT('',#52143); +#19263=VERTEX_POINT('',#52145); +#19264=VERTEX_POINT('',#52147); +#19265=VERTEX_POINT('',#52149); +#19266=VERTEX_POINT('',#52151); +#19267=VERTEX_POINT('',#52153); +#19268=VERTEX_POINT('',#52155); +#19269=VERTEX_POINT('',#52157); +#19270=VERTEX_POINT('',#52159); +#19271=VERTEX_POINT('',#52161); +#19272=VERTEX_POINT('',#52163); +#19273=VERTEX_POINT('',#52165); +#19274=VERTEX_POINT('',#52167); +#19275=VERTEX_POINT('',#52169); +#19276=VERTEX_POINT('',#52171); +#19277=VERTEX_POINT('',#52173); +#19278=VERTEX_POINT('',#52175); +#19279=VERTEX_POINT('',#52177); +#19280=VERTEX_POINT('',#52179); +#19281=VERTEX_POINT('',#52181); +#19282=VERTEX_POINT('',#52183); +#19283=VERTEX_POINT('',#52185); +#19284=VERTEX_POINT('',#52187); +#19285=VERTEX_POINT('',#52189); +#19286=VERTEX_POINT('',#52191); +#19287=VERTEX_POINT('',#52193); +#19288=VERTEX_POINT('',#52195); +#19289=VERTEX_POINT('',#52197); +#19290=VERTEX_POINT('',#52199); +#19291=VERTEX_POINT('',#52201); +#19292=VERTEX_POINT('',#52203); +#19293=VERTEX_POINT('',#52342); +#19294=VERTEX_POINT('',#52344); +#19295=VERTEX_POINT('',#52349); +#19296=VERTEX_POINT('',#52351); +#19297=VERTEX_POINT('',#52356); +#19298=VERTEX_POINT('',#52358); +#19299=VERTEX_POINT('',#52368); +#19300=VERTEX_POINT('',#52370); +#19301=VERTEX_POINT('',#52375); +#19302=VERTEX_POINT('',#52377); +#19303=VERTEX_POINT('',#52382); +#19304=VERTEX_POINT('',#52384); +#19305=VERTEX_POINT('',#52394); +#19306=VERTEX_POINT('',#52396); +#19307=VERTEX_POINT('',#52401); +#19308=VERTEX_POINT('',#52403); +#19309=VERTEX_POINT('',#52408); +#19310=VERTEX_POINT('',#52410); +#19311=VERTEX_POINT('',#52420); +#19312=VERTEX_POINT('',#52422); +#19313=VERTEX_POINT('',#52427); +#19314=VERTEX_POINT('',#52429); +#19315=VERTEX_POINT('',#52434); +#19316=VERTEX_POINT('',#52436); +#19317=VERTEX_POINT('',#52446); +#19318=VERTEX_POINT('',#52448); +#19319=VERTEX_POINT('',#52453); +#19320=VERTEX_POINT('',#52455); +#19321=VERTEX_POINT('',#52460); +#19322=VERTEX_POINT('',#52462); +#19323=VERTEX_POINT('',#52472); +#19324=VERTEX_POINT('',#52474); +#19325=VERTEX_POINT('',#52479); +#19326=VERTEX_POINT('',#52481); +#19327=VERTEX_POINT('',#52486); +#19328=VERTEX_POINT('',#52488); +#19329=VERTEX_POINT('',#52498); +#19330=VERTEX_POINT('',#52500); +#19331=VERTEX_POINT('',#52505); +#19332=VERTEX_POINT('',#52507); +#19333=VERTEX_POINT('',#52512); +#19334=VERTEX_POINT('',#52514); +#19335=VERTEX_POINT('',#52524); +#19336=VERTEX_POINT('',#52526); +#19337=VERTEX_POINT('',#52531); +#19338=VERTEX_POINT('',#52533); +#19339=VERTEX_POINT('',#52538); +#19340=VERTEX_POINT('',#52540); +#19341=VERTEX_POINT('',#52550); +#19342=VERTEX_POINT('',#52552); +#19343=VERTEX_POINT('',#52557); +#19344=VERTEX_POINT('',#52559); +#19345=VERTEX_POINT('',#52564); +#19346=VERTEX_POINT('',#52566); +#19347=VERTEX_POINT('',#52576); +#19348=VERTEX_POINT('',#52578); +#19349=VERTEX_POINT('',#52583); +#19350=VERTEX_POINT('',#52585); +#19351=VERTEX_POINT('',#52590); +#19352=VERTEX_POINT('',#52592); +#19353=VERTEX_POINT('',#52602); +#19354=VERTEX_POINT('',#52604); +#19355=VERTEX_POINT('',#52609); +#19356=VERTEX_POINT('',#52611); +#19357=VERTEX_POINT('',#52616); +#19358=VERTEX_POINT('',#52618); +#19359=VERTEX_POINT('',#52628); +#19360=VERTEX_POINT('',#52630); +#19361=VERTEX_POINT('',#52635); +#19362=VERTEX_POINT('',#52637); +#19363=VERTEX_POINT('',#52642); +#19364=VERTEX_POINT('',#52644); +#19365=VERTEX_POINT('',#52654); +#19366=VERTEX_POINT('',#52656); +#19367=VERTEX_POINT('',#52661); +#19368=VERTEX_POINT('',#52663); +#19369=VERTEX_POINT('',#52668); +#19370=VERTEX_POINT('',#52670); +#19371=VERTEX_POINT('',#52680); +#19372=VERTEX_POINT('',#52682); +#19373=VERTEX_POINT('',#52687); +#19374=VERTEX_POINT('',#52689); +#19375=VERTEX_POINT('',#52694); +#19376=VERTEX_POINT('',#52696); +#19377=VERTEX_POINT('',#52706); +#19378=VERTEX_POINT('',#52708); +#19379=VERTEX_POINT('',#52713); +#19380=VERTEX_POINT('',#52715); +#19381=VERTEX_POINT('',#52720); +#19382=VERTEX_POINT('',#52722); +#19383=VERTEX_POINT('',#52732); +#19384=VERTEX_POINT('',#52734); +#19385=VERTEX_POINT('',#52739); +#19386=VERTEX_POINT('',#52741); +#19387=VERTEX_POINT('',#52746); +#19388=VERTEX_POINT('',#52748); +#19389=VERTEX_POINT('',#52758); +#19390=VERTEX_POINT('',#52760); +#19391=VERTEX_POINT('',#52765); +#19392=VERTEX_POINT('',#52767); +#19393=VERTEX_POINT('',#52772); +#19394=VERTEX_POINT('',#52774); +#19395=VERTEX_POINT('',#52784); +#19396=VERTEX_POINT('',#52786); +#19397=VERTEX_POINT('',#52791); +#19398=VERTEX_POINT('',#52793); +#19399=VERTEX_POINT('',#52798); +#19400=VERTEX_POINT('',#52800); +#19401=VERTEX_POINT('',#52810); +#19402=VERTEX_POINT('',#52812); +#19403=VERTEX_POINT('',#52817); +#19404=VERTEX_POINT('',#52819); +#19405=VERTEX_POINT('',#52824); +#19406=VERTEX_POINT('',#52826); +#19407=VERTEX_POINT('',#52836); +#19408=VERTEX_POINT('',#52838); +#19409=VERTEX_POINT('',#52843); +#19410=VERTEX_POINT('',#52845); +#19411=VERTEX_POINT('',#52850); +#19412=VERTEX_POINT('',#52852); +#19413=VERTEX_POINT('',#52859); +#19414=VERTEX_POINT('',#52861); +#19415=VERTEX_POINT('',#52863); +#19416=VERTEX_POINT('',#52865); +#19417=VERTEX_POINT('',#52869); +#19418=VERTEX_POINT('',#52871); +#19419=VERTEX_POINT('',#52873); +#19420=VERTEX_POINT('',#52875); +#19421=VERTEX_POINT('',#52879); +#19422=VERTEX_POINT('',#52881); +#19423=VERTEX_POINT('',#52883); +#19424=VERTEX_POINT('',#52885); +#19425=VERTEX_POINT('',#52889); +#19426=VERTEX_POINT('',#52891); +#19427=VERTEX_POINT('',#52893); +#19428=VERTEX_POINT('',#52895); +#19429=VERTEX_POINT('',#52899); +#19430=VERTEX_POINT('',#52901); +#19431=VERTEX_POINT('',#52903); +#19432=VERTEX_POINT('',#52905); +#19433=VERTEX_POINT('',#52909); +#19434=VERTEX_POINT('',#52911); +#19435=VERTEX_POINT('',#52913); +#19436=VERTEX_POINT('',#52915); +#19437=VERTEX_POINT('',#52919); +#19438=VERTEX_POINT('',#52921); +#19439=VERTEX_POINT('',#52923); +#19440=VERTEX_POINT('',#52925); +#19441=VERTEX_POINT('',#52929); +#19442=VERTEX_POINT('',#52931); +#19443=VERTEX_POINT('',#52933); +#19444=VERTEX_POINT('',#52935); +#19445=VERTEX_POINT('',#52939); +#19446=VERTEX_POINT('',#52941); +#19447=VERTEX_POINT('',#52943); +#19448=VERTEX_POINT('',#52945); +#19449=VERTEX_POINT('',#52949); +#19450=VERTEX_POINT('',#52951); +#19451=VERTEX_POINT('',#52953); +#19452=VERTEX_POINT('',#52955); +#19453=VERTEX_POINT('',#52959); +#19454=VERTEX_POINT('',#52961); +#19455=VERTEX_POINT('',#52963); +#19456=VERTEX_POINT('',#52965); +#19457=VERTEX_POINT('',#52969); +#19458=VERTEX_POINT('',#52971); +#19459=VERTEX_POINT('',#52973); +#19460=VERTEX_POINT('',#52975); +#19461=VERTEX_POINT('',#52979); +#19462=VERTEX_POINT('',#52981); +#19463=VERTEX_POINT('',#52983); +#19464=VERTEX_POINT('',#52985); +#19465=VERTEX_POINT('',#52989); +#19466=VERTEX_POINT('',#52991); +#19467=VERTEX_POINT('',#52993); +#19468=VERTEX_POINT('',#52995); +#19469=VERTEX_POINT('',#52999); +#19470=VERTEX_POINT('',#53001); +#19471=VERTEX_POINT('',#53003); +#19472=VERTEX_POINT('',#53005); +#19473=VERTEX_POINT('',#53009); +#19474=VERTEX_POINT('',#53011); +#19475=VERTEX_POINT('',#53013); +#19476=VERTEX_POINT('',#53015); +#19477=VERTEX_POINT('',#53019); +#19478=VERTEX_POINT('',#53021); +#19479=VERTEX_POINT('',#53023); +#19480=VERTEX_POINT('',#53025); +#19481=VERTEX_POINT('',#53029); +#19482=VERTEX_POINT('',#53031); +#19483=VERTEX_POINT('',#53033); +#19484=VERTEX_POINT('',#53035); +#19485=VERTEX_POINT('',#53039); +#19486=VERTEX_POINT('',#53041); +#19487=VERTEX_POINT('',#53043); +#19488=VERTEX_POINT('',#53045); +#19489=VERTEX_POINT('',#53049); +#19490=VERTEX_POINT('',#53058); +#19491=VERTEX_POINT('',#53062); +#19492=VERTEX_POINT('',#53071); +#19493=VERTEX_POINT('',#53075); +#19494=VERTEX_POINT('',#53084); +#19495=VERTEX_POINT('',#53088); +#19496=VERTEX_POINT('',#53097); +#19497=VERTEX_POINT('',#53101); +#19498=VERTEX_POINT('',#53110); +#19499=VERTEX_POINT('',#53114); +#19500=VERTEX_POINT('',#53123); +#19501=VERTEX_POINT('',#53127); +#19502=VERTEX_POINT('',#53136); +#19503=VERTEX_POINT('',#53140); +#19504=VERTEX_POINT('',#53149); +#19505=VERTEX_POINT('',#53153); +#19506=VERTEX_POINT('',#53162); +#19507=VERTEX_POINT('',#53166); +#19508=VERTEX_POINT('',#53175); +#19509=VERTEX_POINT('',#53179); +#19510=VERTEX_POINT('',#53188); +#19511=VERTEX_POINT('',#53192); +#19512=VERTEX_POINT('',#53201); +#19513=VERTEX_POINT('',#53205); +#19514=VERTEX_POINT('',#53214); +#19515=VERTEX_POINT('',#53218); +#19516=VERTEX_POINT('',#53227); +#19517=VERTEX_POINT('',#53231); +#19518=VERTEX_POINT('',#53240); +#19519=VERTEX_POINT('',#53244); +#19520=VERTEX_POINT('',#53253); +#19521=VERTEX_POINT('',#53257); +#19522=VERTEX_POINT('',#53266); +#19523=VERTEX_POINT('',#53270); +#19524=VERTEX_POINT('',#53279); +#19525=VERTEX_POINT('',#53283); +#19526=VERTEX_POINT('',#53292); +#19527=VERTEX_POINT('',#53296); +#19528=VERTEX_POINT('',#53297); +#19529=VERTEX_POINT('',#53306); +#19530=VERTEX_POINT('',#53308); +#19531=VERTEX_POINT('',#53315); +#19532=VERTEX_POINT('',#53317); +#19533=VERTEX_POINT('',#53319); +#19534=VERTEX_POINT('',#53321); +#19535=VERTEX_POINT('',#53331); +#19536=VERTEX_POINT('',#53333); +#19537=VERTEX_POINT('',#53335); +#19538=VERTEX_POINT('',#53337); +#19539=VERTEX_POINT('',#53347); +#19540=VERTEX_POINT('',#53349); +#19541=VERTEX_POINT('',#53351); +#19542=VERTEX_POINT('',#53353); +#19543=VERTEX_POINT('',#53363); +#19544=VERTEX_POINT('',#53365); +#19545=VERTEX_POINT('',#53367); +#19546=VERTEX_POINT('',#53369); +#19547=VERTEX_POINT('',#53379); +#19548=VERTEX_POINT('',#53381); +#19549=VERTEX_POINT('',#53383); +#19550=VERTEX_POINT('',#53385); +#19551=VERTEX_POINT('',#53395); +#19552=VERTEX_POINT('',#53397); +#19553=VERTEX_POINT('',#53399); +#19554=VERTEX_POINT('',#53401); +#19555=VERTEX_POINT('',#53411); +#19556=VERTEX_POINT('',#53413); +#19557=VERTEX_POINT('',#53415); +#19558=VERTEX_POINT('',#53417); +#19559=VERTEX_POINT('',#53427); +#19560=VERTEX_POINT('',#53429); +#19561=VERTEX_POINT('',#53431); +#19562=VERTEX_POINT('',#53433); +#19563=VERTEX_POINT('',#53443); +#19564=VERTEX_POINT('',#53445); +#19565=VERTEX_POINT('',#53447); +#19566=VERTEX_POINT('',#53449); +#19567=VERTEX_POINT('',#53459); +#19568=VERTEX_POINT('',#53461); +#19569=VERTEX_POINT('',#53463); +#19570=VERTEX_POINT('',#53465); +#19571=VERTEX_POINT('',#53475); +#19572=VERTEX_POINT('',#53477); +#19573=VERTEX_POINT('',#53479); +#19574=VERTEX_POINT('',#53481); +#19575=VERTEX_POINT('',#53491); +#19576=VERTEX_POINT('',#53493); +#19577=VERTEX_POINT('',#53495); +#19578=VERTEX_POINT('',#53497); +#19579=VERTEX_POINT('',#53507); +#19580=VERTEX_POINT('',#53509); +#19581=VERTEX_POINT('',#53511); +#19582=VERTEX_POINT('',#53513); +#19583=VERTEX_POINT('',#53523); +#19584=VERTEX_POINT('',#53525); +#19585=VERTEX_POINT('',#53527); +#19586=VERTEX_POINT('',#53529); +#19587=VERTEX_POINT('',#53539); +#19588=VERTEX_POINT('',#53541); +#19589=VERTEX_POINT('',#53543); +#19590=VERTEX_POINT('',#53545); +#19591=VERTEX_POINT('',#53555); +#19592=VERTEX_POINT('',#53557); +#19593=VERTEX_POINT('',#53559); +#19594=VERTEX_POINT('',#53561); +#19595=VERTEX_POINT('',#53571); +#19596=VERTEX_POINT('',#53573); +#19597=VERTEX_POINT('',#53575); +#19598=VERTEX_POINT('',#53577); +#19599=VERTEX_POINT('',#53587); +#19600=VERTEX_POINT('',#53589); +#19601=VERTEX_POINT('',#53591); +#19602=VERTEX_POINT('',#53593); +#19603=VERTEX_POINT('',#53603); +#19604=VERTEX_POINT('',#53605); +#19605=VERTEX_POINT('',#53607); +#19606=VERTEX_POINT('',#53609); +#19607=VERTEX_POINT('',#53619); +#19608=VERTEX_POINT('',#53621); +#19609=VERTEX_POINT('',#53623); +#19610=VERTEX_POINT('',#53625); +#19611=VERTEX_POINT('',#53632); +#19612=VERTEX_POINT('',#53634); +#19613=VERTEX_POINT('',#53636); +#19614=VERTEX_POINT('',#53638); +#19615=VERTEX_POINT('',#53642); +#19616=VERTEX_POINT('',#53644); +#19617=VERTEX_POINT('',#53646); +#19618=VERTEX_POINT('',#53648); +#19619=VERTEX_POINT('',#53652); +#19620=VERTEX_POINT('',#53654); +#19621=VERTEX_POINT('',#53656); +#19622=VERTEX_POINT('',#53658); +#19623=VERTEX_POINT('',#53662); +#19624=VERTEX_POINT('',#53664); +#19625=VERTEX_POINT('',#53666); +#19626=VERTEX_POINT('',#53668); +#19627=VERTEX_POINT('',#53672); +#19628=VERTEX_POINT('',#53674); +#19629=VERTEX_POINT('',#53676); +#19630=VERTEX_POINT('',#53678); +#19631=VERTEX_POINT('',#53682); +#19632=VERTEX_POINT('',#53684); +#19633=VERTEX_POINT('',#53686); +#19634=VERTEX_POINT('',#53688); +#19635=VERTEX_POINT('',#53692); +#19636=VERTEX_POINT('',#53694); +#19637=VERTEX_POINT('',#53696); +#19638=VERTEX_POINT('',#53698); +#19639=VERTEX_POINT('',#53702); +#19640=VERTEX_POINT('',#53704); +#19641=VERTEX_POINT('',#53706); +#19642=VERTEX_POINT('',#53708); +#19643=VERTEX_POINT('',#53712); +#19644=VERTEX_POINT('',#53714); +#19645=VERTEX_POINT('',#53716); +#19646=VERTEX_POINT('',#53718); +#19647=VERTEX_POINT('',#53722); +#19648=VERTEX_POINT('',#53724); +#19649=VERTEX_POINT('',#53726); +#19650=VERTEX_POINT('',#53728); +#19651=VERTEX_POINT('',#53732); +#19652=VERTEX_POINT('',#53734); +#19653=VERTEX_POINT('',#53736); +#19654=VERTEX_POINT('',#53738); +#19655=VERTEX_POINT('',#53742); +#19656=VERTEX_POINT('',#53744); +#19657=VERTEX_POINT('',#53746); +#19658=VERTEX_POINT('',#53748); +#19659=VERTEX_POINT('',#53752); +#19660=VERTEX_POINT('',#53754); +#19661=VERTEX_POINT('',#53756); +#19662=VERTEX_POINT('',#53758); +#19663=VERTEX_POINT('',#53762); +#19664=VERTEX_POINT('',#53764); +#19665=VERTEX_POINT('',#53766); +#19666=VERTEX_POINT('',#53768); +#19667=VERTEX_POINT('',#53772); +#19668=VERTEX_POINT('',#53774); +#19669=VERTEX_POINT('',#53776); +#19670=VERTEX_POINT('',#53778); +#19671=VERTEX_POINT('',#53782); +#19672=VERTEX_POINT('',#53784); +#19673=VERTEX_POINT('',#53786); +#19674=VERTEX_POINT('',#53788); +#19675=VERTEX_POINT('',#53792); +#19676=VERTEX_POINT('',#53794); +#19677=VERTEX_POINT('',#53796); +#19678=VERTEX_POINT('',#53798); +#19679=VERTEX_POINT('',#53802); +#19680=VERTEX_POINT('',#53804); +#19681=VERTEX_POINT('',#53806); +#19682=VERTEX_POINT('',#53808); +#19683=VERTEX_POINT('',#53812); +#19684=VERTEX_POINT('',#53814); +#19685=VERTEX_POINT('',#53816); +#19686=VERTEX_POINT('',#53818); +#19687=VERTEX_POINT('',#53825); +#19688=VERTEX_POINT('',#53830); +#19689=VERTEX_POINT('',#53832); +#19690=VERTEX_POINT('',#53841); +#19691=VERTEX_POINT('',#53848); +#19692=VERTEX_POINT('',#53853); +#19693=VERTEX_POINT('',#53855); +#19694=VERTEX_POINT('',#53864); +#19695=VERTEX_POINT('',#53871); +#19696=VERTEX_POINT('',#53876); +#19697=VERTEX_POINT('',#53878); +#19698=VERTEX_POINT('',#53887); +#19699=VERTEX_POINT('',#53894); +#19700=VERTEX_POINT('',#53899); +#19701=VERTEX_POINT('',#53901); +#19702=VERTEX_POINT('',#53910); +#19703=VERTEX_POINT('',#53917); +#19704=VERTEX_POINT('',#53922); +#19705=VERTEX_POINT('',#53924); +#19706=VERTEX_POINT('',#53933); +#19707=VERTEX_POINT('',#53940); +#19708=VERTEX_POINT('',#53945); +#19709=VERTEX_POINT('',#53947); +#19710=VERTEX_POINT('',#53956); +#19711=VERTEX_POINT('',#53963); +#19712=VERTEX_POINT('',#53968); +#19713=VERTEX_POINT('',#53970); +#19714=VERTEX_POINT('',#53979); +#19715=VERTEX_POINT('',#53986); +#19716=VERTEX_POINT('',#53991); +#19717=VERTEX_POINT('',#53993); +#19718=VERTEX_POINT('',#54002); +#19719=VERTEX_POINT('',#54009); +#19720=VERTEX_POINT('',#54014); +#19721=VERTEX_POINT('',#54016); +#19722=VERTEX_POINT('',#54025); +#19723=VERTEX_POINT('',#54032); +#19724=VERTEX_POINT('',#54037); +#19725=VERTEX_POINT('',#54039); +#19726=VERTEX_POINT('',#54048); +#19727=VERTEX_POINT('',#54055); +#19728=VERTEX_POINT('',#54060); +#19729=VERTEX_POINT('',#54062); +#19730=VERTEX_POINT('',#54071); +#19731=VERTEX_POINT('',#54078); +#19732=VERTEX_POINT('',#54083); +#19733=VERTEX_POINT('',#54085); +#19734=VERTEX_POINT('',#54094); +#19735=VERTEX_POINT('',#54101); +#19736=VERTEX_POINT('',#54106); +#19737=VERTEX_POINT('',#54108); +#19738=VERTEX_POINT('',#54117); +#19739=VERTEX_POINT('',#54124); +#19740=VERTEX_POINT('',#54129); +#19741=VERTEX_POINT('',#54131); +#19742=VERTEX_POINT('',#54140); +#19743=VERTEX_POINT('',#54147); +#19744=VERTEX_POINT('',#54152); +#19745=VERTEX_POINT('',#54154); +#19746=VERTEX_POINT('',#54163); +#19747=VERTEX_POINT('',#54170); +#19748=VERTEX_POINT('',#54175); +#19749=VERTEX_POINT('',#54177); +#19750=VERTEX_POINT('',#54186); +#19751=VERTEX_POINT('',#54193); +#19752=VERTEX_POINT('',#54198); +#19753=VERTEX_POINT('',#54200); +#19754=VERTEX_POINT('',#54209); +#19755=VERTEX_POINT('',#54216); +#19756=VERTEX_POINT('',#54221); +#19757=VERTEX_POINT('',#54223); +#19758=VERTEX_POINT('',#54232); +#19759=VERTEX_POINT('',#54239); +#19760=VERTEX_POINT('',#54244); +#19761=VERTEX_POINT('',#54246); +#19762=VERTEX_POINT('',#54255); +#19763=VERTEX_POINT('',#54262); +#19764=VERTEX_POINT('',#54267); +#19765=VERTEX_POINT('',#54269); +#19766=VERTEX_POINT('',#54274); +#19767=VERTEX_POINT('',#54276); +#19768=VERTEX_POINT('',#54281); +#19769=VERTEX_POINT('',#54291); +#19770=VERTEX_POINT('',#54294); +#19771=VERTEX_POINT('',#54298); +#19772=VERTEX_POINT('',#54301); +#19773=LINE('',#45118,#23472); +#19774=LINE('',#45121,#23473); +#19775=LINE('',#45123,#23474); +#19776=LINE('',#45125,#23475); +#19777=LINE('',#45127,#23476); +#19778=LINE('',#45129,#23477); +#19779=LINE('',#45131,#23478); +#19780=LINE('',#45134,#23479); +#19781=LINE('',#45136,#23480); +#19782=LINE('',#45138,#23481); +#19783=LINE('',#45140,#23482); +#19784=LINE('',#45142,#23483); +#19785=LINE('',#45144,#23484); +#19786=LINE('',#45146,#23485); +#19787=LINE('',#45148,#23486); +#19788=LINE('',#45150,#23487); +#19789=LINE('',#45152,#23488); +#19790=LINE('',#45154,#23489); +#19791=LINE('',#45156,#23490); +#19792=LINE('',#45158,#23491); +#19793=LINE('',#45160,#23492); +#19794=LINE('',#45162,#23493); +#19795=LINE('',#45164,#23494); +#19796=LINE('',#45166,#23495); +#19797=LINE('',#45170,#23496); +#19798=LINE('',#45174,#23497); +#19799=LINE('',#45176,#23498); +#19800=LINE('',#45178,#23499); +#19801=LINE('',#45180,#23500); +#19802=LINE('',#45182,#23501); +#19803=LINE('',#45184,#23502); +#19804=LINE('',#45186,#23503); +#19805=LINE('',#45188,#23504); +#19806=LINE('',#45190,#23505); +#19807=LINE('',#45192,#23506); +#19808=LINE('',#45194,#23507); +#19809=LINE('',#45196,#23508); +#19810=LINE('',#45198,#23509); +#19811=LINE('',#45200,#23510); +#19812=LINE('',#45201,#23511); +#19813=LINE('',#45205,#23512); +#19814=LINE('',#45208,#23513); +#19815=LINE('',#45221,#23514); +#19816=LINE('',#45225,#23515); +#19817=LINE('',#45227,#23516); +#19818=LINE('',#45231,#23517); +#19819=LINE('',#45235,#23518); +#19820=LINE('',#45239,#23519); +#19821=LINE('',#45243,#23520); +#19822=LINE('',#45246,#23521); +#19823=LINE('',#45259,#23522); +#19824=LINE('',#45263,#23523); +#19825=LINE('',#45267,#23524); +#19826=LINE('',#45269,#23525); +#19827=LINE('',#45271,#23526); +#19828=LINE('',#45273,#23527); +#19829=LINE('',#45274,#23528); +#19830=LINE('',#45276,#23529); +#19831=LINE('',#45278,#23530); +#19832=LINE('',#45281,#23531); +#19833=LINE('',#45283,#23532); +#19834=LINE('',#45285,#23533); +#19835=LINE('',#45287,#23534); +#19836=LINE('',#45289,#23535); +#19837=LINE('',#45291,#23536); +#19838=LINE('',#45293,#23537); +#19839=LINE('',#45295,#23538); +#19840=LINE('',#45297,#23539); +#19841=LINE('',#45299,#23540); +#19842=LINE('',#45301,#23541); +#19843=LINE('',#45303,#23542); +#19844=LINE('',#45305,#23543); +#19845=LINE('',#45307,#23544); +#19846=LINE('',#45309,#23545); +#19847=LINE('',#45311,#23546); +#19848=LINE('',#45313,#23547); +#19849=LINE('',#45315,#23548); +#19850=LINE('',#45317,#23549); +#19851=LINE('',#45319,#23550); +#19852=LINE('',#45321,#23551); +#19853=LINE('',#45323,#23552); +#19854=LINE('',#45325,#23553); +#19855=LINE('',#45327,#23554); +#19856=LINE('',#45329,#23555); +#19857=LINE('',#45331,#23556); +#19858=LINE('',#45333,#23557); +#19859=LINE('',#45335,#23558); +#19860=LINE('',#45337,#23559); +#19861=LINE('',#45339,#23560); +#19862=LINE('',#45341,#23561); +#19863=LINE('',#45343,#23562); +#19864=LINE('',#45345,#23563); +#19865=LINE('',#45347,#23564); +#19866=LINE('',#45349,#23565); +#19867=LINE('',#45351,#23566); +#19868=LINE('',#45353,#23567); +#19869=LINE('',#45355,#23568); +#19870=LINE('',#45357,#23569); +#19871=LINE('',#45359,#23570); +#19872=LINE('',#45361,#23571); +#19873=LINE('',#45363,#23572); +#19874=LINE('',#45365,#23573); +#19875=LINE('',#45367,#23574); +#19876=LINE('',#45369,#23575); +#19877=LINE('',#45371,#23576); +#19878=LINE('',#45373,#23577); +#19879=LINE('',#45375,#23578); +#19880=LINE('',#45377,#23579); +#19881=LINE('',#45379,#23580); +#19882=LINE('',#45381,#23581); +#19883=LINE('',#45383,#23582); +#19884=LINE('',#45385,#23583); +#19885=LINE('',#45387,#23584); +#19886=LINE('',#45389,#23585); +#19887=LINE('',#45391,#23586); +#19888=LINE('',#45393,#23587); +#19889=LINE('',#45395,#23588); +#19890=LINE('',#45397,#23589); +#19891=LINE('',#45399,#23590); +#19892=LINE('',#45401,#23591); +#19893=LINE('',#45403,#23592); +#19894=LINE('',#45405,#23593); +#19895=LINE('',#45407,#23594); +#19896=LINE('',#45409,#23595); +#19897=LINE('',#45411,#23596); +#19898=LINE('',#45413,#23597); +#19899=LINE('',#45415,#23598); +#19900=LINE('',#45417,#23599); +#19901=LINE('',#45419,#23600); +#19902=LINE('',#45421,#23601); +#19903=LINE('',#45423,#23602); +#19904=LINE('',#45425,#23603); +#19905=LINE('',#45427,#23604); +#19906=LINE('',#45429,#23605); +#19907=LINE('',#45431,#23606); +#19908=LINE('',#45433,#23607); +#19909=LINE('',#45435,#23608); +#19910=LINE('',#45437,#23609); +#19911=LINE('',#45439,#23610); +#19912=LINE('',#45441,#23611); +#19913=LINE('',#45443,#23612); +#19914=LINE('',#45445,#23613); +#19915=LINE('',#45447,#23614); +#19916=LINE('',#45449,#23615); +#19917=LINE('',#45451,#23616); +#19918=LINE('',#45453,#23617); +#19919=LINE('',#45455,#23618); +#19920=LINE('',#45457,#23619); +#19921=LINE('',#45459,#23620); +#19922=LINE('',#45461,#23621); +#19923=LINE('',#45463,#23622); +#19924=LINE('',#45465,#23623); +#19925=LINE('',#45467,#23624); +#19926=LINE('',#45469,#23625); +#19927=LINE('',#45471,#23626); +#19928=LINE('',#45473,#23627); +#19929=LINE('',#45475,#23628); +#19930=LINE('',#45477,#23629); +#19931=LINE('',#45479,#23630); +#19932=LINE('',#45481,#23631); +#19933=LINE('',#45483,#23632); +#19934=LINE('',#45485,#23633); +#19935=LINE('',#45487,#23634); +#19936=LINE('',#45489,#23635); +#19937=LINE('',#45491,#23636); +#19938=LINE('',#45493,#23637); +#19939=LINE('',#45495,#23638); +#19940=LINE('',#45497,#23639); +#19941=LINE('',#45499,#23640); +#19942=LINE('',#45501,#23641); +#19943=LINE('',#45503,#23642); +#19944=LINE('',#45505,#23643); +#19945=LINE('',#45507,#23644); +#19946=LINE('',#45509,#23645); +#19947=LINE('',#45511,#23646); +#19948=LINE('',#45513,#23647); +#19949=LINE('',#45515,#23648); +#19950=LINE('',#45517,#23649); +#19951=LINE('',#45519,#23650); +#19952=LINE('',#45521,#23651); +#19953=LINE('',#45523,#23652); +#19954=LINE('',#45525,#23653); +#19955=LINE('',#45527,#23654); +#19956=LINE('',#45529,#23655); +#19957=LINE('',#45531,#23656); +#19958=LINE('',#45533,#23657); +#19959=LINE('',#45535,#23658); +#19960=LINE('',#45537,#23659); +#19961=LINE('',#45539,#23660); +#19962=LINE('',#45541,#23661); +#19963=LINE('',#45543,#23662); +#19964=LINE('',#45545,#23663); +#19965=LINE('',#45547,#23664); +#19966=LINE('',#45549,#23665); +#19967=LINE('',#45551,#23666); +#19968=LINE('',#45553,#23667); +#19969=LINE('',#45555,#23668); +#19970=LINE('',#45557,#23669); +#19971=LINE('',#45559,#23670); +#19972=LINE('',#45561,#23671); +#19973=LINE('',#45563,#23672); +#19974=LINE('',#45565,#23673); +#19975=LINE('',#45567,#23674); +#19976=LINE('',#45569,#23675); +#19977=LINE('',#45571,#23676); +#19978=LINE('',#45573,#23677); +#19979=LINE('',#45575,#23678); +#19980=LINE('',#45577,#23679); +#19981=LINE('',#45579,#23680); +#19982=LINE('',#45581,#23681); +#19983=LINE('',#45583,#23682); +#19984=LINE('',#45585,#23683); +#19985=LINE('',#45587,#23684); +#19986=LINE('',#45589,#23685); +#19987=LINE('',#45591,#23686); +#19988=LINE('',#45593,#23687); +#19989=LINE('',#45595,#23688); +#19990=LINE('',#45597,#23689); +#19991=LINE('',#45599,#23690); +#19992=LINE('',#45601,#23691); +#19993=LINE('',#45603,#23692); +#19994=LINE('',#45605,#23693); +#19995=LINE('',#45607,#23694); +#19996=LINE('',#45609,#23695); +#19997=LINE('',#45610,#23696); +#19998=LINE('',#45613,#23697); +#19999=LINE('',#45615,#23698); +#20000=LINE('',#45617,#23699); +#20001=LINE('',#45618,#23700); +#20002=LINE('',#45620,#23701); +#20003=LINE('',#45622,#23702); +#20004=LINE('',#45624,#23703); +#20005=LINE('',#45626,#23704); +#20006=LINE('',#45628,#23705); +#20007=LINE('',#45630,#23706); +#20008=LINE('',#45632,#23707); +#20009=LINE('',#45634,#23708); +#20010=LINE('',#45636,#23709); +#20011=LINE('',#45638,#23710); +#20012=LINE('',#45640,#23711); +#20013=LINE('',#45642,#23712); +#20014=LINE('',#45644,#23713); +#20015=LINE('',#45646,#23714); +#20016=LINE('',#45648,#23715); +#20017=LINE('',#45650,#23716); +#20018=LINE('',#45652,#23717); +#20019=LINE('',#45654,#23718); +#20020=LINE('',#45656,#23719); +#20021=LINE('',#45658,#23720); +#20022=LINE('',#45660,#23721); +#20023=LINE('',#45662,#23722); +#20024=LINE('',#45664,#23723); +#20025=LINE('',#45666,#23724); +#20026=LINE('',#45668,#23725); +#20027=LINE('',#45670,#23726); +#20028=LINE('',#45672,#23727); +#20029=LINE('',#45674,#23728); +#20030=LINE('',#45676,#23729); +#20031=LINE('',#45678,#23730); +#20032=LINE('',#45680,#23731); +#20033=LINE('',#45682,#23732); +#20034=LINE('',#45683,#23733); +#20035=LINE('',#45684,#23734); +#20036=LINE('',#45686,#23735); +#20037=LINE('',#45688,#23736); +#20038=LINE('',#45690,#23737); +#20039=LINE('',#45692,#23738); +#20040=LINE('',#45694,#23739); +#20041=LINE('',#45696,#23740); +#20042=LINE('',#45698,#23741); +#20043=LINE('',#45700,#23742); +#20044=LINE('',#45702,#23743); +#20045=LINE('',#45704,#23744); +#20046=LINE('',#45706,#23745); +#20047=LINE('',#45708,#23746); +#20048=LINE('',#45710,#23747); +#20049=LINE('',#45712,#23748); +#20050=LINE('',#45714,#23749); +#20051=LINE('',#45716,#23750); +#20052=LINE('',#45718,#23751); +#20053=LINE('',#45720,#23752); +#20054=LINE('',#45722,#23753); +#20055=LINE('',#45724,#23754); +#20056=LINE('',#45726,#23755); +#20057=LINE('',#45728,#23756); +#20058=LINE('',#45730,#23757); +#20059=LINE('',#45732,#23758); +#20060=LINE('',#45734,#23759); +#20061=LINE('',#45736,#23760); +#20062=LINE('',#45738,#23761); +#20063=LINE('',#45740,#23762); +#20064=LINE('',#45742,#23763); +#20065=LINE('',#45744,#23764); +#20066=LINE('',#45746,#23765); +#20067=LINE('',#45748,#23766); +#20068=LINE('',#45750,#23767); +#20069=LINE('',#45752,#23768); +#20070=LINE('',#45754,#23769); +#20071=LINE('',#45756,#23770); +#20072=LINE('',#45758,#23771); +#20073=LINE('',#45760,#23772); +#20074=LINE('',#45762,#23773); +#20075=LINE('',#45764,#23774); +#20076=LINE('',#45765,#23775); +#20077=LINE('',#45767,#23776); +#20078=LINE('',#45769,#23777); +#20079=LINE('',#45770,#23778); +#20080=LINE('',#45772,#23779); +#20081=LINE('',#45775,#23780); +#20082=LINE('',#45777,#23781); +#20083=LINE('',#45779,#23782); +#20084=LINE('',#45781,#23783); +#20085=LINE('',#45784,#23784); +#20086=LINE('',#45786,#23785); +#20087=LINE('',#45788,#23786); +#20088=LINE('',#45793,#23787); +#20089=LINE('',#45794,#23788); +#20090=LINE('',#45795,#23789); +#20091=LINE('',#45797,#23790); +#20092=LINE('',#45799,#23791); +#20093=LINE('',#45800,#23792); +#20094=LINE('',#45801,#23793); +#20095=LINE('',#45803,#23794); +#20096=LINE('',#45807,#23795); +#20097=LINE('',#45808,#23796); +#20098=LINE('',#45809,#23797); +#20099=LINE('',#45811,#23798); +#20100=LINE('',#45813,#23799); +#20101=LINE('',#45814,#23800); +#20102=LINE('',#45816,#23801); +#20103=LINE('',#45819,#23802); +#20104=LINE('',#45821,#23803); +#20105=LINE('',#45823,#23804); +#20106=LINE('',#45825,#23805); +#20107=LINE('',#45828,#23806); +#20108=LINE('',#45830,#23807); +#20109=LINE('',#45832,#23808); +#20110=LINE('',#45837,#23809); +#20111=LINE('',#45838,#23810); +#20112=LINE('',#45839,#23811); +#20113=LINE('',#45841,#23812); +#20114=LINE('',#45843,#23813); +#20115=LINE('',#45844,#23814); +#20116=LINE('',#45845,#23815); +#20117=LINE('',#45847,#23816); +#20118=LINE('',#45851,#23817); +#20119=LINE('',#45852,#23818); +#20120=LINE('',#45853,#23819); +#20121=LINE('',#45855,#23820); +#20122=LINE('',#45857,#23821); +#20123=LINE('',#45858,#23822); +#20124=LINE('',#45860,#23823); +#20125=LINE('',#45863,#23824); +#20126=LINE('',#45865,#23825); +#20127=LINE('',#45867,#23826); +#20128=LINE('',#45869,#23827); +#20129=LINE('',#45872,#23828); +#20130=LINE('',#45874,#23829); +#20131=LINE('',#45876,#23830); +#20132=LINE('',#45881,#23831); +#20133=LINE('',#45882,#23832); +#20134=LINE('',#45883,#23833); +#20135=LINE('',#45885,#23834); +#20136=LINE('',#45887,#23835); +#20137=LINE('',#45888,#23836); +#20138=LINE('',#45889,#23837); +#20139=LINE('',#45891,#23838); +#20140=LINE('',#45895,#23839); +#20141=LINE('',#45896,#23840); +#20142=LINE('',#45897,#23841); +#20143=LINE('',#45899,#23842); +#20144=LINE('',#45901,#23843); +#20145=LINE('',#45902,#23844); +#20146=LINE('',#45904,#23845); +#20147=LINE('',#45907,#23846); +#20148=LINE('',#45909,#23847); +#20149=LINE('',#45911,#23848); +#20150=LINE('',#45913,#23849); +#20151=LINE('',#45916,#23850); +#20152=LINE('',#45918,#23851); +#20153=LINE('',#45920,#23852); +#20154=LINE('',#45925,#23853); +#20155=LINE('',#45926,#23854); +#20156=LINE('',#45927,#23855); +#20157=LINE('',#45929,#23856); +#20158=LINE('',#45931,#23857); +#20159=LINE('',#45932,#23858); +#20160=LINE('',#45933,#23859); +#20161=LINE('',#45935,#23860); +#20162=LINE('',#45939,#23861); +#20163=LINE('',#45940,#23862); +#20164=LINE('',#45941,#23863); +#20165=LINE('',#45943,#23864); +#20166=LINE('',#45945,#23865); +#20167=LINE('',#45946,#23866); +#20168=LINE('',#45948,#23867); +#20169=LINE('',#45951,#23868); +#20170=LINE('',#45953,#23869); +#20171=LINE('',#45955,#23870); +#20172=LINE('',#45957,#23871); +#20173=LINE('',#45960,#23872); +#20174=LINE('',#45962,#23873); +#20175=LINE('',#45964,#23874); +#20176=LINE('',#45969,#23875); +#20177=LINE('',#45970,#23876); +#20178=LINE('',#45971,#23877); +#20179=LINE('',#45973,#23878); +#20180=LINE('',#45975,#23879); +#20181=LINE('',#45976,#23880); +#20182=LINE('',#45977,#23881); +#20183=LINE('',#45979,#23882); +#20184=LINE('',#45983,#23883); +#20185=LINE('',#45984,#23884); +#20186=LINE('',#45985,#23885); +#20187=LINE('',#45987,#23886); +#20188=LINE('',#45989,#23887); +#20189=LINE('',#45990,#23888); +#20190=LINE('',#45992,#23889); +#20191=LINE('',#45995,#23890); +#20192=LINE('',#45997,#23891); +#20193=LINE('',#45999,#23892); +#20194=LINE('',#46001,#23893); +#20195=LINE('',#46004,#23894); +#20196=LINE('',#46006,#23895); +#20197=LINE('',#46008,#23896); +#20198=LINE('',#46013,#23897); +#20199=LINE('',#46014,#23898); +#20200=LINE('',#46015,#23899); +#20201=LINE('',#46017,#23900); +#20202=LINE('',#46019,#23901); +#20203=LINE('',#46020,#23902); +#20204=LINE('',#46021,#23903); +#20205=LINE('',#46023,#23904); +#20206=LINE('',#46027,#23905); +#20207=LINE('',#46028,#23906); +#20208=LINE('',#46029,#23907); +#20209=LINE('',#46031,#23908); +#20210=LINE('',#46033,#23909); +#20211=LINE('',#46034,#23910); +#20212=LINE('',#46036,#23911); +#20213=LINE('',#46039,#23912); +#20214=LINE('',#46041,#23913); +#20215=LINE('',#46043,#23914); +#20216=LINE('',#46045,#23915); +#20217=LINE('',#46048,#23916); +#20218=LINE('',#46050,#23917); +#20219=LINE('',#46052,#23918); +#20220=LINE('',#46057,#23919); +#20221=LINE('',#46058,#23920); +#20222=LINE('',#46059,#23921); +#20223=LINE('',#46061,#23922); +#20224=LINE('',#46063,#23923); +#20225=LINE('',#46064,#23924); +#20226=LINE('',#46065,#23925); +#20227=LINE('',#46067,#23926); +#20228=LINE('',#46071,#23927); +#20229=LINE('',#46072,#23928); +#20230=LINE('',#46073,#23929); +#20231=LINE('',#46075,#23930); +#20232=LINE('',#46077,#23931); +#20233=LINE('',#46078,#23932); +#20234=LINE('',#46080,#23933); +#20235=LINE('',#46083,#23934); +#20236=LINE('',#46085,#23935); +#20237=LINE('',#46087,#23936); +#20238=LINE('',#46089,#23937); +#20239=LINE('',#46092,#23938); +#20240=LINE('',#46094,#23939); +#20241=LINE('',#46096,#23940); +#20242=LINE('',#46101,#23941); +#20243=LINE('',#46102,#23942); +#20244=LINE('',#46103,#23943); +#20245=LINE('',#46105,#23944); +#20246=LINE('',#46107,#23945); +#20247=LINE('',#46108,#23946); +#20248=LINE('',#46109,#23947); +#20249=LINE('',#46111,#23948); +#20250=LINE('',#46115,#23949); +#20251=LINE('',#46116,#23950); +#20252=LINE('',#46117,#23951); +#20253=LINE('',#46119,#23952); +#20254=LINE('',#46121,#23953); +#20255=LINE('',#46122,#23954); +#20256=LINE('',#46124,#23955); +#20257=LINE('',#46127,#23956); +#20258=LINE('',#46129,#23957); +#20259=LINE('',#46131,#23958); +#20260=LINE('',#46133,#23959); +#20261=LINE('',#46136,#23960); +#20262=LINE('',#46138,#23961); +#20263=LINE('',#46140,#23962); +#20264=LINE('',#46145,#23963); +#20265=LINE('',#46146,#23964); +#20266=LINE('',#46147,#23965); +#20267=LINE('',#46149,#23966); +#20268=LINE('',#46151,#23967); +#20269=LINE('',#46152,#23968); +#20270=LINE('',#46153,#23969); +#20271=LINE('',#46155,#23970); +#20272=LINE('',#46159,#23971); +#20273=LINE('',#46160,#23972); +#20274=LINE('',#46161,#23973); +#20275=LINE('',#46163,#23974); +#20276=LINE('',#46165,#23975); +#20277=LINE('',#46166,#23976); +#20278=LINE('',#46168,#23977); +#20279=LINE('',#46171,#23978); +#20280=LINE('',#46173,#23979); +#20281=LINE('',#46175,#23980); +#20282=LINE('',#46177,#23981); +#20283=LINE('',#46180,#23982); +#20284=LINE('',#46182,#23983); +#20285=LINE('',#46184,#23984); +#20286=LINE('',#46189,#23985); +#20287=LINE('',#46190,#23986); +#20288=LINE('',#46191,#23987); +#20289=LINE('',#46193,#23988); +#20290=LINE('',#46195,#23989); +#20291=LINE('',#46196,#23990); +#20292=LINE('',#46197,#23991); +#20293=LINE('',#46199,#23992); +#20294=LINE('',#46203,#23993); +#20295=LINE('',#46204,#23994); +#20296=LINE('',#46205,#23995); +#20297=LINE('',#46207,#23996); +#20298=LINE('',#46209,#23997); +#20299=LINE('',#46210,#23998); +#20300=LINE('',#46212,#23999); +#20301=LINE('',#46215,#24000); +#20302=LINE('',#46217,#24001); +#20303=LINE('',#46219,#24002); +#20304=LINE('',#46221,#24003); +#20305=LINE('',#46224,#24004); +#20306=LINE('',#46226,#24005); +#20307=LINE('',#46228,#24006); +#20308=LINE('',#46233,#24007); +#20309=LINE('',#46234,#24008); +#20310=LINE('',#46235,#24009); +#20311=LINE('',#46237,#24010); +#20312=LINE('',#46239,#24011); +#20313=LINE('',#46240,#24012); +#20314=LINE('',#46241,#24013); +#20315=LINE('',#46243,#24014); +#20316=LINE('',#46247,#24015); +#20317=LINE('',#46248,#24016); +#20318=LINE('',#46249,#24017); +#20319=LINE('',#46251,#24018); +#20320=LINE('',#46253,#24019); +#20321=LINE('',#46254,#24020); +#20322=LINE('',#46256,#24021); +#20323=LINE('',#46259,#24022); +#20324=LINE('',#46261,#24023); +#20325=LINE('',#46263,#24024); +#20326=LINE('',#46265,#24025); +#20327=LINE('',#46268,#24026); +#20328=LINE('',#46270,#24027); +#20329=LINE('',#46272,#24028); +#20330=LINE('',#46277,#24029); +#20331=LINE('',#46278,#24030); +#20332=LINE('',#46279,#24031); +#20333=LINE('',#46281,#24032); +#20334=LINE('',#46283,#24033); +#20335=LINE('',#46284,#24034); +#20336=LINE('',#46285,#24035); +#20337=LINE('',#46287,#24036); +#20338=LINE('',#46291,#24037); +#20339=LINE('',#46292,#24038); +#20340=LINE('',#46293,#24039); +#20341=LINE('',#46295,#24040); +#20342=LINE('',#46297,#24041); +#20343=LINE('',#46298,#24042); +#20344=LINE('',#46300,#24043); +#20345=LINE('',#46303,#24044); +#20346=LINE('',#46305,#24045); +#20347=LINE('',#46307,#24046); +#20348=LINE('',#46309,#24047); +#20349=LINE('',#46312,#24048); +#20350=LINE('',#46314,#24049); +#20351=LINE('',#46316,#24050); +#20352=LINE('',#46321,#24051); +#20353=LINE('',#46322,#24052); +#20354=LINE('',#46323,#24053); +#20355=LINE('',#46325,#24054); +#20356=LINE('',#46327,#24055); +#20357=LINE('',#46328,#24056); +#20358=LINE('',#46329,#24057); +#20359=LINE('',#46331,#24058); +#20360=LINE('',#46335,#24059); +#20361=LINE('',#46336,#24060); +#20362=LINE('',#46337,#24061); +#20363=LINE('',#46339,#24062); +#20364=LINE('',#46341,#24063); +#20365=LINE('',#46342,#24064); +#20366=LINE('',#46344,#24065); +#20367=LINE('',#46347,#24066); +#20368=LINE('',#46349,#24067); +#20369=LINE('',#46351,#24068); +#20370=LINE('',#46353,#24069); +#20371=LINE('',#46356,#24070); +#20372=LINE('',#46358,#24071); +#20373=LINE('',#46360,#24072); +#20374=LINE('',#46365,#24073); +#20375=LINE('',#46366,#24074); +#20376=LINE('',#46367,#24075); +#20377=LINE('',#46369,#24076); +#20378=LINE('',#46371,#24077); +#20379=LINE('',#46372,#24078); +#20380=LINE('',#46373,#24079); +#20381=LINE('',#46375,#24080); +#20382=LINE('',#46379,#24081); +#20383=LINE('',#46380,#24082); +#20384=LINE('',#46381,#24083); +#20385=LINE('',#46383,#24084); +#20386=LINE('',#46385,#24085); +#20387=LINE('',#46386,#24086); +#20388=LINE('',#46388,#24087); +#20389=LINE('',#46391,#24088); +#20390=LINE('',#46393,#24089); +#20391=LINE('',#46395,#24090); +#20392=LINE('',#46397,#24091); +#20393=LINE('',#46400,#24092); +#20394=LINE('',#46402,#24093); +#20395=LINE('',#46404,#24094); +#20396=LINE('',#46409,#24095); +#20397=LINE('',#46410,#24096); +#20398=LINE('',#46411,#24097); +#20399=LINE('',#46413,#24098); +#20400=LINE('',#46415,#24099); +#20401=LINE('',#46416,#24100); +#20402=LINE('',#46417,#24101); +#20403=LINE('',#46419,#24102); +#20404=LINE('',#46423,#24103); +#20405=LINE('',#46424,#24104); +#20406=LINE('',#46425,#24105); +#20407=LINE('',#46427,#24106); +#20408=LINE('',#46429,#24107); +#20409=LINE('',#46430,#24108); +#20410=LINE('',#46432,#24109); +#20411=LINE('',#46435,#24110); +#20412=LINE('',#46437,#24111); +#20413=LINE('',#46439,#24112); +#20414=LINE('',#46441,#24113); +#20415=LINE('',#46444,#24114); +#20416=LINE('',#46446,#24115); +#20417=LINE('',#46448,#24116); +#20418=LINE('',#46453,#24117); +#20419=LINE('',#46454,#24118); +#20420=LINE('',#46455,#24119); +#20421=LINE('',#46457,#24120); +#20422=LINE('',#46459,#24121); +#20423=LINE('',#46460,#24122); +#20424=LINE('',#46461,#24123); +#20425=LINE('',#46463,#24124); +#20426=LINE('',#46467,#24125); +#20427=LINE('',#46468,#24126); +#20428=LINE('',#46469,#24127); +#20429=LINE('',#46471,#24128); +#20430=LINE('',#46473,#24129); +#20431=LINE('',#46474,#24130); +#20432=LINE('',#46476,#24131); +#20433=LINE('',#46479,#24132); +#20434=LINE('',#46481,#24133); +#20435=LINE('',#46483,#24134); +#20436=LINE('',#46485,#24135); +#20437=LINE('',#46488,#24136); +#20438=LINE('',#46490,#24137); +#20439=LINE('',#46492,#24138); +#20440=LINE('',#46497,#24139); +#20441=LINE('',#46498,#24140); +#20442=LINE('',#46499,#24141); +#20443=LINE('',#46501,#24142); +#20444=LINE('',#46503,#24143); +#20445=LINE('',#46504,#24144); +#20446=LINE('',#46505,#24145); +#20447=LINE('',#46507,#24146); +#20448=LINE('',#46511,#24147); +#20449=LINE('',#46512,#24148); +#20450=LINE('',#46513,#24149); +#20451=LINE('',#46515,#24150); +#20452=LINE('',#46517,#24151); +#20453=LINE('',#46518,#24152); +#20454=LINE('',#46520,#24153); +#20455=LINE('',#46523,#24154); +#20456=LINE('',#46525,#24155); +#20457=LINE('',#46527,#24156); +#20458=LINE('',#46529,#24157); +#20459=LINE('',#46532,#24158); +#20460=LINE('',#46534,#24159); +#20461=LINE('',#46536,#24160); +#20462=LINE('',#46541,#24161); +#20463=LINE('',#46542,#24162); +#20464=LINE('',#46543,#24163); +#20465=LINE('',#46545,#24164); +#20466=LINE('',#46547,#24165); +#20467=LINE('',#46548,#24166); +#20468=LINE('',#46549,#24167); +#20469=LINE('',#46551,#24168); +#20470=LINE('',#46555,#24169); +#20471=LINE('',#46556,#24170); +#20472=LINE('',#46557,#24171); +#20473=LINE('',#46559,#24172); +#20474=LINE('',#46561,#24173); +#20475=LINE('',#46562,#24174); +#20476=LINE('',#46564,#24175); +#20477=LINE('',#46567,#24176); +#20478=LINE('',#46569,#24177); +#20479=LINE('',#46571,#24178); +#20480=LINE('',#46573,#24179); +#20481=LINE('',#46576,#24180); +#20482=LINE('',#46578,#24181); +#20483=LINE('',#46580,#24182); +#20484=LINE('',#46585,#24183); +#20485=LINE('',#46586,#24184); +#20486=LINE('',#46587,#24185); +#20487=LINE('',#46589,#24186); +#20488=LINE('',#46591,#24187); +#20489=LINE('',#46592,#24188); +#20490=LINE('',#46593,#24189); +#20491=LINE('',#46595,#24190); +#20492=LINE('',#46599,#24191); +#20493=LINE('',#46600,#24192); +#20494=LINE('',#46601,#24193); +#20495=LINE('',#46603,#24194); +#20496=LINE('',#46605,#24195); +#20497=LINE('',#46606,#24196); +#20498=LINE('',#46608,#24197); +#20499=LINE('',#46611,#24198); +#20500=LINE('',#46615,#24199); +#20501=LINE('',#46617,#24200); +#20502=LINE('',#46619,#24201); +#20503=LINE('',#46620,#24202); +#20504=LINE('',#46622,#24203); +#20505=LINE('',#46624,#24204); +#20506=LINE('',#46625,#24205); +#20507=LINE('',#46627,#24206); +#20508=LINE('',#46630,#24207); +#20509=LINE('',#46631,#24208); +#20510=LINE('',#46633,#24209); +#20511=LINE('',#46635,#24210); +#20512=LINE('',#46637,#24211); +#20513=LINE('',#46642,#24212); +#20514=LINE('',#46643,#24213); +#20515=LINE('',#46644,#24214); +#20516=LINE('',#46646,#24215); +#20517=LINE('',#46648,#24216); +#20518=LINE('',#46649,#24217); +#20519=LINE('',#46650,#24218); +#20520=LINE('',#46652,#24219); +#20521=LINE('',#46654,#24220); +#20522=LINE('',#46656,#24221); +#20523=LINE('',#46658,#24222); +#20524=LINE('',#46660,#24223); +#20525=LINE('',#46662,#24224); +#20526=LINE('',#46664,#24225); +#20527=LINE('',#46666,#24226); +#20528=LINE('',#46668,#24227); +#20529=LINE('',#46670,#24228); +#20530=LINE('',#46672,#24229); +#20531=LINE('',#46674,#24230); +#20532=LINE('',#46676,#24231); +#20533=LINE('',#46678,#24232); +#20534=LINE('',#46680,#24233); +#20535=LINE('',#46682,#24234); +#20536=LINE('',#46684,#24235); +#20537=LINE('',#46686,#24236); +#20538=LINE('',#46688,#24237); +#20539=LINE('',#46690,#24238); +#20540=LINE('',#46692,#24239); +#20541=LINE('',#46694,#24240); +#20542=LINE('',#46696,#24241); +#20543=LINE('',#46698,#24242); +#20544=LINE('',#46700,#24243); +#20545=LINE('',#46702,#24244); +#20546=LINE('',#46704,#24245); +#20547=LINE('',#46706,#24246); +#20548=LINE('',#46708,#24247); +#20549=LINE('',#46710,#24248); +#20550=LINE('',#46712,#24249); +#20551=LINE('',#46714,#24250); +#20552=LINE('',#46716,#24251); +#20553=LINE('',#46718,#24252); +#20554=LINE('',#46720,#24253); +#20555=LINE('',#46722,#24254); +#20556=LINE('',#46724,#24255); +#20557=LINE('',#46726,#24256); +#20558=LINE('',#46728,#24257); +#20559=LINE('',#46730,#24258); +#20560=LINE('',#46732,#24259); +#20561=LINE('',#46734,#24260); +#20562=LINE('',#46736,#24261); +#20563=LINE('',#46738,#24262); +#20564=LINE('',#46740,#24263); +#20565=LINE('',#46742,#24264); +#20566=LINE('',#46744,#24265); +#20567=LINE('',#46746,#24266); +#20568=LINE('',#46748,#24267); +#20569=LINE('',#46750,#24268); +#20570=LINE('',#46752,#24269); +#20571=LINE('',#46754,#24270); +#20572=LINE('',#46756,#24271); +#20573=LINE('',#46758,#24272); +#20574=LINE('',#46760,#24273); +#20575=LINE('',#46762,#24274); +#20576=LINE('',#46764,#24275); +#20577=LINE('',#46785,#24276); +#20578=LINE('',#46787,#24277); +#20579=LINE('',#46790,#24278); +#20580=LINE('',#46791,#24279); +#20581=LINE('',#46793,#24280); +#20582=LINE('',#46796,#24281); +#20583=LINE('',#46797,#24282); +#20584=LINE('',#46799,#24283); +#20585=LINE('',#46802,#24284); +#20586=LINE('',#46803,#24285); +#20587=LINE('',#46805,#24286); +#20588=LINE('',#46808,#24287); +#20589=LINE('',#46809,#24288); +#20590=LINE('',#46811,#24289); +#20591=LINE('',#46814,#24290); +#20592=LINE('',#46815,#24291); +#20593=LINE('',#46817,#24292); +#20594=LINE('',#46820,#24293); +#20595=LINE('',#46821,#24294); +#20596=LINE('',#46823,#24295); +#20597=LINE('',#46826,#24296); +#20598=LINE('',#46827,#24297); +#20599=LINE('',#46829,#24298); +#20600=LINE('',#46831,#24299); +#20601=LINE('',#46833,#24300); +#20602=LINE('',#46835,#24301); +#20603=LINE('',#46838,#24302); +#20604=LINE('',#46839,#24303); +#20605=LINE('',#46841,#24304); +#20606=LINE('',#46844,#24305); +#20607=LINE('',#46845,#24306); +#20608=LINE('',#46847,#24307); +#20609=LINE('',#46850,#24308); +#20610=LINE('',#46851,#24309); +#20611=LINE('',#46853,#24310); +#20612=LINE('',#46856,#24311); +#20613=LINE('',#46857,#24312); +#20614=LINE('',#46859,#24313); +#20615=LINE('',#46862,#24314); +#20616=LINE('',#46863,#24315); +#20617=LINE('',#46865,#24316); +#20618=LINE('',#46868,#24317); +#20619=LINE('',#46869,#24318); +#20620=LINE('',#46871,#24319); +#20621=LINE('',#46874,#24320); +#20622=LINE('',#46875,#24321); +#20623=LINE('',#46877,#24322); +#20624=LINE('',#46879,#24323); +#20625=LINE('',#46881,#24324); +#20626=LINE('',#46883,#24325); +#20627=LINE('',#46885,#24326); +#20628=LINE('',#46887,#24327); +#20629=LINE('',#46889,#24328); +#20630=LINE('',#46891,#24329); +#20631=LINE('',#46893,#24330); +#20632=LINE('',#46895,#24331); +#20633=LINE('',#46897,#24332); +#20634=LINE('',#46899,#24333); +#20635=LINE('',#46901,#24334); +#20636=LINE('',#46903,#24335); +#20637=LINE('',#46904,#24336); +#20638=LINE('',#46906,#24337); +#20639=LINE('',#46908,#24338); +#20640=LINE('',#46910,#24339); +#20641=LINE('',#46912,#24340); +#20642=LINE('',#46913,#24341); +#20643=LINE('',#46915,#24342); +#20644=LINE('',#46916,#24343); +#20645=LINE('',#46918,#24344); +#20646=LINE('',#46919,#24345); +#20647=LINE('',#46921,#24346); +#20648=LINE('',#46924,#24347); +#20649=LINE('',#46925,#24348); +#20650=LINE('',#46926,#24349); +#20651=LINE('',#46928,#24350); +#20652=LINE('',#46930,#24351); +#20653=LINE('',#46932,#24352); +#20654=LINE('',#46934,#24353); +#20655=LINE('',#46937,#24354); +#20656=LINE('',#46938,#24355); +#20657=LINE('',#46941,#24356); +#20658=LINE('',#46944,#24357); +#20659=LINE('',#46945,#24358); +#20660=LINE('',#46947,#24359); +#20661=LINE('',#46949,#24360); +#20662=LINE('',#46952,#24361); +#20663=LINE('',#46955,#24362); +#20664=LINE('',#46956,#24363); +#20665=LINE('',#46958,#24364); +#20666=LINE('',#46960,#24365); +#20667=LINE('',#46962,#24366); +#20668=LINE('',#46964,#24367); +#20669=LINE('',#46966,#24368); +#20670=LINE('',#46968,#24369); +#20671=LINE('',#46970,#24370); +#20672=LINE('',#46972,#24371); +#20673=LINE('',#46975,#24372); +#20674=LINE('',#46977,#24373); +#20675=LINE('',#46978,#24374); +#20676=LINE('',#46980,#24375); +#20677=LINE('',#46982,#24376); +#20678=LINE('',#46983,#24377); +#20679=LINE('',#46985,#24378); +#20680=LINE('',#46987,#24379); +#20681=LINE('',#46988,#24380); +#20682=LINE('',#46990,#24381); +#20683=LINE('',#46992,#24382); +#20684=LINE('',#46993,#24383); +#20685=LINE('',#46995,#24384); +#20686=LINE('',#46997,#24385); +#20687=LINE('',#46998,#24386); +#20688=LINE('',#47000,#24387); +#20689=LINE('',#47002,#24388); +#20690=LINE('',#47003,#24389); +#20691=LINE('',#47005,#24390); +#20692=LINE('',#47007,#24391); +#20693=LINE('',#47008,#24392); +#20694=LINE('',#47010,#24393); +#20695=LINE('',#47012,#24394); +#20696=LINE('',#47014,#24395); +#20697=LINE('',#47016,#24396); +#20698=LINE('',#47017,#24397); +#20699=LINE('',#47019,#24398); +#20700=LINE('',#47020,#24399); +#20701=LINE('',#47023,#24400); +#20702=LINE('',#47025,#24401); +#20703=LINE('',#47027,#24402); +#20704=LINE('',#47029,#24403); +#20705=LINE('',#47031,#24404); +#20706=LINE('',#47034,#24405); +#20707=LINE('',#47035,#24406); +#20708=LINE('',#47037,#24407); +#20709=LINE('',#47039,#24408); +#20710=LINE('',#47041,#24409); +#20711=LINE('',#47043,#24410); +#20712=LINE('',#47045,#24411); +#20713=LINE('',#47046,#24412); +#20714=LINE('',#47048,#24413); +#20715=LINE('',#47050,#24414); +#20716=LINE('',#47051,#24415); +#20717=LINE('',#47053,#24416); +#20718=LINE('',#47055,#24417); +#20719=LINE('',#47056,#24418); +#20720=LINE('',#47058,#24419); +#20721=LINE('',#47060,#24420); +#20722=LINE('',#47061,#24421); +#20723=LINE('',#47063,#24422); +#20724=LINE('',#47065,#24423); +#20725=LINE('',#47066,#24424); +#20726=LINE('',#47068,#24425); +#20727=LINE('',#47070,#24426); +#20728=LINE('',#47071,#24427); +#20729=LINE('',#47073,#24428); +#20730=LINE('',#47075,#24429); +#20731=LINE('',#47076,#24430); +#20732=LINE('',#47078,#24431); +#20733=LINE('',#47079,#24432); +#20734=LINE('',#47088,#24433); +#20735=LINE('',#47091,#24434); +#20736=LINE('',#47093,#24435); +#20737=LINE('',#47096,#24436); +#20738=LINE('',#47098,#24437); +#20739=LINE('',#47101,#24438); +#20740=LINE('',#47103,#24439); +#20741=LINE('',#47106,#24440); +#20742=LINE('',#47108,#24441); +#20743=LINE('',#47111,#24442); +#20744=LINE('',#47113,#24443); +#20745=LINE('',#47116,#24444); +#20746=LINE('',#47118,#24445); +#20747=LINE('',#47121,#24446); +#20748=LINE('',#47124,#24447); +#20749=LINE('',#47127,#24448); +#20750=LINE('',#47129,#24449); +#20751=LINE('',#47132,#24450); +#20752=LINE('',#47134,#24451); +#20753=LINE('',#47137,#24452); +#20754=LINE('',#47139,#24453); +#20755=LINE('',#47142,#24454); +#20756=LINE('',#47144,#24455); +#20757=LINE('',#47147,#24456); +#20758=LINE('',#47149,#24457); +#20759=LINE('',#47152,#24458); +#20760=LINE('',#47154,#24459); +#20761=LINE('',#47157,#24460); +#20762=LINE('',#47200,#24461); +#20763=LINE('',#47202,#24462); +#20764=LINE('',#47205,#24463); +#20765=LINE('',#47207,#24464); +#20766=LINE('',#47210,#24465); +#20767=LINE('',#47212,#24466); +#20768=LINE('',#47215,#24467); +#20769=LINE('',#47217,#24468); +#20770=LINE('',#47220,#24469); +#20771=LINE('',#47222,#24470); +#20772=LINE('',#47225,#24471); +#20773=LINE('',#47227,#24472); +#20774=LINE('',#47230,#24473); +#20775=LINE('',#47232,#24474); +#20776=LINE('',#47235,#24475); +#20777=LINE('',#47237,#24476); +#20778=LINE('',#47240,#24477); +#20779=LINE('',#47242,#24478); +#20780=LINE('',#47245,#24479); +#20781=LINE('',#47247,#24480); +#20782=LINE('',#47250,#24481); +#20783=LINE('',#47252,#24482); +#20784=LINE('',#47255,#24483); +#20785=LINE('',#47257,#24484); +#20786=LINE('',#47260,#24485); +#20787=LINE('',#47262,#24486); +#20788=LINE('',#47265,#24487); +#20789=LINE('',#47267,#24488); +#20790=LINE('',#47270,#24489); +#20791=LINE('',#47272,#24490); +#20792=LINE('',#47275,#24491); +#20793=LINE('',#47277,#24492); +#20794=LINE('',#47280,#24493); +#20795=LINE('',#47282,#24494); +#20796=LINE('',#47285,#24495); +#20797=LINE('',#47287,#24496); +#20798=LINE('',#47290,#24497); +#20799=LINE('',#47292,#24498); +#20800=LINE('',#47295,#24499); +#20801=LINE('',#47296,#24500); +#20802=LINE('',#47300,#24501); +#20803=LINE('',#47303,#24502); +#20804=LINE('',#47304,#24503); +#20805=LINE('',#47306,#24504); +#20806=LINE('',#47308,#24505); +#20807=LINE('',#47310,#24506); +#20808=LINE('',#47312,#24507); +#20809=LINE('',#47314,#24508); +#20810=LINE('',#47316,#24509); +#20811=LINE('',#47326,#24510); +#20812=LINE('',#47328,#24511); +#20813=LINE('',#47330,#24512); +#20814=LINE('',#47334,#24513); +#20815=LINE('',#47336,#24514); +#20816=LINE('',#47338,#24515); +#20817=LINE('',#47342,#24516); +#20818=LINE('',#47344,#24517); +#20819=LINE('',#47346,#24518); +#20820=LINE('',#47350,#24519); +#20821=LINE('',#47352,#24520); +#20822=LINE('',#47354,#24521); +#20823=LINE('',#47359,#24522); +#20824=LINE('',#47361,#24523); +#20825=LINE('',#47363,#24524); +#20826=LINE('',#47367,#24525); +#20827=LINE('',#47371,#24526); +#20828=LINE('',#47375,#24527); +#20829=LINE('',#47379,#24528); +#20830=LINE('',#47383,#24529); +#20831=LINE('',#47385,#24530); +#20832=LINE('',#47387,#24531); +#20833=LINE('',#47391,#24532); +#20834=LINE('',#47393,#24533); +#20835=LINE('',#47395,#24534); +#20836=LINE('',#47397,#24535); +#20837=LINE('',#47400,#24536); +#20838=LINE('',#47402,#24537); +#20839=LINE('',#47404,#24538); +#20840=LINE('',#47408,#24539); +#20841=LINE('',#47412,#24540); +#20842=LINE('',#47416,#24541); +#20843=LINE('',#47420,#24542); +#20844=LINE('',#47424,#24543); +#20845=LINE('',#47426,#24544); +#20846=LINE('',#47428,#24545); +#20847=LINE('',#47432,#24546); +#20848=LINE('',#47434,#24547); +#20849=LINE('',#47436,#24548); +#20850=LINE('',#47441,#24549); +#20851=LINE('',#47443,#24550); +#20852=LINE('',#47445,#24551); +#20853=LINE('',#47447,#24552); +#20854=LINE('',#47451,#24553); +#20855=LINE('',#47455,#24554); +#20856=LINE('',#47457,#24555); +#20857=LINE('',#47460,#24556); +#20858=LINE('',#47462,#24557); +#20859=LINE('',#47464,#24558); +#20860=LINE('',#47466,#24559); +#20861=LINE('',#47470,#24560); +#20862=LINE('',#47474,#24561); +#20863=LINE('',#47475,#24562); +#20864=LINE('',#47480,#24563); +#20865=LINE('',#47483,#24564); +#20866=LINE('',#47485,#24565); +#20867=LINE('',#47487,#24566); +#20868=LINE('',#47489,#24567); +#20869=LINE('',#47491,#24568); +#20870=LINE('',#47493,#24569); +#20871=LINE('',#47495,#24570); +#20872=LINE('',#47497,#24571); +#20873=LINE('',#47499,#24572); +#20874=LINE('',#47501,#24573); +#20875=LINE('',#47503,#24574); +#20876=LINE('',#47505,#24575); +#20877=LINE('',#47507,#24576); +#20878=LINE('',#47509,#24577); +#20879=LINE('',#47511,#24578); +#20880=LINE('',#47513,#24579); +#20881=LINE('',#47515,#24580); +#20882=LINE('',#47517,#24581); +#20883=LINE('',#47519,#24582); +#20884=LINE('',#47521,#24583); +#20885=LINE('',#47523,#24584); +#20886=LINE('',#47525,#24585); +#20887=LINE('',#47527,#24586); +#20888=LINE('',#47529,#24587); +#20889=LINE('',#47531,#24588); +#20890=LINE('',#47533,#24589); +#20891=LINE('',#47535,#24590); +#20892=LINE('',#47537,#24591); +#20893=LINE('',#47539,#24592); +#20894=LINE('',#47541,#24593); +#20895=LINE('',#47543,#24594); +#20896=LINE('',#47545,#24595); +#20897=LINE('',#47547,#24596); +#20898=LINE('',#47549,#24597); +#20899=LINE('',#47551,#24598); +#20900=LINE('',#47553,#24599); +#20901=LINE('',#47555,#24600); +#20902=LINE('',#47557,#24601); +#20903=LINE('',#47559,#24602); +#20904=LINE('',#47561,#24603); +#20905=LINE('',#47563,#24604); +#20906=LINE('',#47565,#24605); +#20907=LINE('',#47567,#24606); +#20908=LINE('',#47569,#24607); +#20909=LINE('',#47571,#24608); +#20910=LINE('',#47573,#24609); +#20911=LINE('',#47575,#24610); +#20912=LINE('',#47577,#24611); +#20913=LINE('',#47579,#24612); +#20914=LINE('',#47581,#24613); +#20915=LINE('',#47583,#24614); +#20916=LINE('',#47585,#24615); +#20917=LINE('',#47587,#24616); +#20918=LINE('',#47589,#24617); +#20919=LINE('',#47591,#24618); +#20920=LINE('',#47593,#24619); +#20921=LINE('',#47595,#24620); +#20922=LINE('',#47597,#24621); +#20923=LINE('',#47599,#24622); +#20924=LINE('',#47601,#24623); +#20925=LINE('',#47603,#24624); +#20926=LINE('',#47605,#24625); +#20927=LINE('',#47607,#24626); +#20928=LINE('',#47609,#24627); +#20929=LINE('',#47611,#24628); +#20930=LINE('',#47613,#24629); +#20931=LINE('',#47615,#24630); +#20932=LINE('',#47617,#24631); +#20933=LINE('',#47619,#24632); +#20934=LINE('',#47621,#24633); +#20935=LINE('',#47623,#24634); +#20936=LINE('',#47625,#24635); +#20937=LINE('',#47627,#24636); +#20938=LINE('',#47629,#24637); +#20939=LINE('',#47631,#24638); +#20940=LINE('',#47633,#24639); +#20941=LINE('',#47635,#24640); +#20942=LINE('',#47637,#24641); +#20943=LINE('',#47639,#24642); +#20944=LINE('',#47641,#24643); +#20945=LINE('',#47643,#24644); +#20946=LINE('',#47645,#24645); +#20947=LINE('',#47647,#24646); +#20948=LINE('',#47649,#24647); +#20949=LINE('',#47651,#24648); +#20950=LINE('',#47653,#24649); +#20951=LINE('',#47655,#24650); +#20952=LINE('',#47657,#24651); +#20953=LINE('',#47659,#24652); +#20954=LINE('',#47661,#24653); +#20955=LINE('',#47663,#24654); +#20956=LINE('',#47665,#24655); +#20957=LINE('',#47667,#24656); +#20958=LINE('',#47669,#24657); +#20959=LINE('',#47671,#24658); +#20960=LINE('',#47673,#24659); +#20961=LINE('',#47675,#24660); +#20962=LINE('',#47677,#24661); +#20963=LINE('',#47679,#24662); +#20964=LINE('',#47681,#24663); +#20965=LINE('',#47683,#24664); +#20966=LINE('',#47685,#24665); +#20967=LINE('',#47687,#24666); +#20968=LINE('',#47689,#24667); +#20969=LINE('',#47691,#24668); +#20970=LINE('',#47693,#24669); +#20971=LINE('',#47695,#24670); +#20972=LINE('',#47697,#24671); +#20973=LINE('',#47699,#24672); +#20974=LINE('',#47701,#24673); +#20975=LINE('',#47703,#24674); +#20976=LINE('',#47705,#24675); +#20977=LINE('',#47707,#24676); +#20978=LINE('',#47709,#24677); +#20979=LINE('',#47711,#24678); +#20980=LINE('',#47713,#24679); +#20981=LINE('',#47715,#24680); +#20982=LINE('',#47717,#24681); +#20983=LINE('',#47719,#24682); +#20984=LINE('',#47721,#24683); +#20985=LINE('',#47723,#24684); +#20986=LINE('',#47725,#24685); +#20987=LINE('',#47727,#24686); +#20988=LINE('',#47729,#24687); +#20989=LINE('',#47731,#24688); +#20990=LINE('',#47733,#24689); +#20991=LINE('',#47735,#24690); +#20992=LINE('',#47737,#24691); +#20993=LINE('',#47739,#24692); +#20994=LINE('',#47741,#24693); +#20995=LINE('',#47743,#24694); +#20996=LINE('',#47745,#24695); +#20997=LINE('',#47747,#24696); +#20998=LINE('',#47749,#24697); +#20999=LINE('',#47751,#24698); +#21000=LINE('',#47753,#24699); +#21001=LINE('',#47755,#24700); +#21002=LINE('',#47757,#24701); +#21003=LINE('',#47759,#24702); +#21004=LINE('',#47761,#24703); +#21005=LINE('',#47763,#24704); +#21006=LINE('',#47765,#24705); +#21007=LINE('',#47767,#24706); +#21008=LINE('',#47769,#24707); +#21009=LINE('',#47771,#24708); +#21010=LINE('',#47773,#24709); +#21011=LINE('',#47775,#24710); +#21012=LINE('',#47777,#24711); +#21013=LINE('',#47779,#24712); +#21014=LINE('',#47781,#24713); +#21015=LINE('',#47783,#24714); +#21016=LINE('',#47785,#24715); +#21017=LINE('',#47787,#24716); +#21018=LINE('',#47789,#24717); +#21019=LINE('',#47791,#24718); +#21020=LINE('',#47793,#24719); +#21021=LINE('',#47795,#24720); +#21022=LINE('',#47797,#24721); +#21023=LINE('',#47799,#24722); +#21024=LINE('',#47801,#24723); +#21025=LINE('',#47803,#24724); +#21026=LINE('',#47805,#24725); +#21027=LINE('',#47807,#24726); +#21028=LINE('',#47809,#24727); +#21029=LINE('',#47812,#24728); +#21030=LINE('',#47814,#24729); +#21031=LINE('',#47816,#24730); +#21032=LINE('',#47818,#24731); +#21033=LINE('',#47820,#24732); +#21034=LINE('',#47822,#24733); +#21035=LINE('',#47824,#24734); +#21036=LINE('',#47826,#24735); +#21037=LINE('',#47828,#24736); +#21038=LINE('',#47830,#24737); +#21039=LINE('',#47832,#24738); +#21040=LINE('',#47834,#24739); +#21041=LINE('',#47836,#24740); +#21042=LINE('',#47838,#24741); +#21043=LINE('',#47840,#24742); +#21044=LINE('',#47842,#24743); +#21045=LINE('',#47844,#24744); +#21046=LINE('',#47846,#24745); +#21047=LINE('',#47848,#24746); +#21048=LINE('',#47850,#24747); +#21049=LINE('',#47852,#24748); +#21050=LINE('',#47854,#24749); +#21051=LINE('',#47856,#24750); +#21052=LINE('',#47858,#24751); +#21053=LINE('',#47860,#24752); +#21054=LINE('',#47862,#24753); +#21055=LINE('',#47864,#24754); +#21056=LINE('',#47866,#24755); +#21057=LINE('',#47868,#24756); +#21058=LINE('',#47870,#24757); +#21059=LINE('',#47872,#24758); +#21060=LINE('',#47874,#24759); +#21061=LINE('',#47876,#24760); +#21062=LINE('',#47878,#24761); +#21063=LINE('',#47880,#24762); +#21064=LINE('',#47882,#24763); +#21065=LINE('',#47884,#24764); +#21066=LINE('',#47886,#24765); +#21067=LINE('',#47888,#24766); +#21068=LINE('',#47890,#24767); +#21069=LINE('',#47892,#24768); +#21070=LINE('',#47894,#24769); +#21071=LINE('',#47896,#24770); +#21072=LINE('',#47898,#24771); +#21073=LINE('',#47900,#24772); +#21074=LINE('',#47902,#24773); +#21075=LINE('',#47904,#24774); +#21076=LINE('',#47906,#24775); +#21077=LINE('',#47908,#24776); +#21078=LINE('',#47910,#24777); +#21079=LINE('',#47912,#24778); +#21080=LINE('',#47914,#24779); +#21081=LINE('',#47916,#24780); +#21082=LINE('',#47918,#24781); +#21083=LINE('',#47920,#24782); +#21084=LINE('',#47922,#24783); +#21085=LINE('',#47924,#24784); +#21086=LINE('',#47926,#24785); +#21087=LINE('',#47928,#24786); +#21088=LINE('',#47930,#24787); +#21089=LINE('',#47932,#24788); +#21090=LINE('',#47934,#24789); +#21091=LINE('',#47936,#24790); +#21092=LINE('',#47938,#24791); +#21093=LINE('',#47940,#24792); +#21094=LINE('',#47942,#24793); +#21095=LINE('',#47944,#24794); +#21096=LINE('',#47946,#24795); +#21097=LINE('',#47948,#24796); +#21098=LINE('',#47950,#24797); +#21099=LINE('',#47952,#24798); +#21100=LINE('',#47954,#24799); +#21101=LINE('',#47956,#24800); +#21102=LINE('',#47958,#24801); +#21103=LINE('',#47960,#24802); +#21104=LINE('',#47962,#24803); +#21105=LINE('',#47964,#24804); +#21106=LINE('',#47966,#24805); +#21107=LINE('',#47968,#24806); +#21108=LINE('',#47970,#24807); +#21109=LINE('',#47972,#24808); +#21110=LINE('',#47974,#24809); +#21111=LINE('',#47976,#24810); +#21112=LINE('',#47978,#24811); +#21113=LINE('',#47980,#24812); +#21114=LINE('',#47982,#24813); +#21115=LINE('',#47984,#24814); +#21116=LINE('',#47986,#24815); +#21117=LINE('',#47988,#24816); +#21118=LINE('',#47990,#24817); +#21119=LINE('',#47992,#24818); +#21120=LINE('',#47994,#24819); +#21121=LINE('',#47996,#24820); +#21122=LINE('',#47998,#24821); +#21123=LINE('',#48000,#24822); +#21124=LINE('',#48002,#24823); +#21125=LINE('',#48004,#24824); +#21126=LINE('',#48006,#24825); +#21127=LINE('',#48008,#24826); +#21128=LINE('',#48010,#24827); +#21129=LINE('',#48012,#24828); +#21130=LINE('',#48014,#24829); +#21131=LINE('',#48016,#24830); +#21132=LINE('',#48018,#24831); +#21133=LINE('',#48020,#24832); +#21134=LINE('',#48022,#24833); +#21135=LINE('',#48024,#24834); +#21136=LINE('',#48026,#24835); +#21137=LINE('',#48028,#24836); +#21138=LINE('',#48030,#24837); +#21139=LINE('',#48032,#24838); +#21140=LINE('',#48034,#24839); +#21141=LINE('',#48036,#24840); +#21142=LINE('',#48038,#24841); +#21143=LINE('',#48040,#24842); +#21144=LINE('',#48042,#24843); +#21145=LINE('',#48044,#24844); +#21146=LINE('',#48046,#24845); +#21147=LINE('',#48048,#24846); +#21148=LINE('',#48050,#24847); +#21149=LINE('',#48052,#24848); +#21150=LINE('',#48054,#24849); +#21151=LINE('',#48056,#24850); +#21152=LINE('',#48058,#24851); +#21153=LINE('',#48060,#24852); +#21154=LINE('',#48062,#24853); +#21155=LINE('',#48064,#24854); +#21156=LINE('',#48066,#24855); +#21157=LINE('',#48068,#24856); +#21158=LINE('',#48070,#24857); +#21159=LINE('',#48072,#24858); +#21160=LINE('',#48074,#24859); +#21161=LINE('',#48076,#24860); +#21162=LINE('',#48078,#24861); +#21163=LINE('',#48080,#24862); +#21164=LINE('',#48082,#24863); +#21165=LINE('',#48084,#24864); +#21166=LINE('',#48086,#24865); +#21167=LINE('',#48088,#24866); +#21168=LINE('',#48090,#24867); +#21169=LINE('',#48092,#24868); +#21170=LINE('',#48094,#24869); +#21171=LINE('',#48096,#24870); +#21172=LINE('',#48098,#24871); +#21173=LINE('',#48100,#24872); +#21174=LINE('',#48102,#24873); +#21175=LINE('',#48104,#24874); +#21176=LINE('',#48106,#24875); +#21177=LINE('',#48108,#24876); +#21178=LINE('',#48110,#24877); +#21179=LINE('',#48112,#24878); +#21180=LINE('',#48114,#24879); +#21181=LINE('',#48116,#24880); +#21182=LINE('',#48118,#24881); +#21183=LINE('',#48120,#24882); +#21184=LINE('',#48122,#24883); +#21185=LINE('',#48124,#24884); +#21186=LINE('',#48126,#24885); +#21187=LINE('',#48128,#24886); +#21188=LINE('',#48130,#24887); +#21189=LINE('',#48132,#24888); +#21190=LINE('',#48134,#24889); +#21191=LINE('',#48136,#24890); +#21192=LINE('',#48138,#24891); +#21193=LINE('',#48141,#24892); +#21194=LINE('',#48143,#24893); +#21195=LINE('',#48145,#24894); +#21196=LINE('',#48147,#24895); +#21197=LINE('',#48149,#24896); +#21198=LINE('',#48151,#24897); +#21199=LINE('',#48153,#24898); +#21200=LINE('',#48155,#24899); +#21201=LINE('',#48157,#24900); +#21202=LINE('',#48159,#24901); +#21203=LINE('',#48161,#24902); +#21204=LINE('',#48163,#24903); +#21205=LINE('',#48165,#24904); +#21206=LINE('',#48167,#24905); +#21207=LINE('',#48169,#24906); +#21208=LINE('',#48171,#24907); +#21209=LINE('',#48173,#24908); +#21210=LINE('',#48175,#24909); +#21211=LINE('',#48177,#24910); +#21212=LINE('',#48179,#24911); +#21213=LINE('',#48181,#24912); +#21214=LINE('',#48183,#24913); +#21215=LINE('',#48185,#24914); +#21216=LINE('',#48187,#24915); +#21217=LINE('',#48189,#24916); +#21218=LINE('',#48191,#24917); +#21219=LINE('',#48193,#24918); +#21220=LINE('',#48195,#24919); +#21221=LINE('',#48197,#24920); +#21222=LINE('',#48199,#24921); +#21223=LINE('',#48201,#24922); +#21224=LINE('',#48203,#24923); +#21225=LINE('',#48205,#24924); +#21226=LINE('',#48207,#24925); +#21227=LINE('',#48209,#24926); +#21228=LINE('',#48211,#24927); +#21229=LINE('',#48213,#24928); +#21230=LINE('',#48215,#24929); +#21231=LINE('',#48217,#24930); +#21232=LINE('',#48219,#24931); +#21233=LINE('',#48221,#24932); +#21234=LINE('',#48223,#24933); +#21235=LINE('',#48225,#24934); +#21236=LINE('',#48227,#24935); +#21237=LINE('',#48229,#24936); +#21238=LINE('',#48231,#24937); +#21239=LINE('',#48233,#24938); +#21240=LINE('',#48235,#24939); +#21241=LINE('',#48237,#24940); +#21242=LINE('',#48239,#24941); +#21243=LINE('',#48241,#24942); +#21244=LINE('',#48243,#24943); +#21245=LINE('',#48245,#24944); +#21246=LINE('',#48247,#24945); +#21247=LINE('',#48249,#24946); +#21248=LINE('',#48251,#24947); +#21249=LINE('',#48253,#24948); +#21250=LINE('',#48255,#24949); +#21251=LINE('',#48257,#24950); +#21252=LINE('',#48259,#24951); +#21253=LINE('',#48261,#24952); +#21254=LINE('',#48263,#24953); +#21255=LINE('',#48265,#24954); +#21256=LINE('',#48267,#24955); +#21257=LINE('',#48269,#24956); +#21258=LINE('',#48271,#24957); +#21259=LINE('',#48273,#24958); +#21260=LINE('',#48275,#24959); +#21261=LINE('',#48277,#24960); +#21262=LINE('',#48279,#24961); +#21263=LINE('',#48281,#24962); +#21264=LINE('',#48283,#24963); +#21265=LINE('',#48285,#24964); +#21266=LINE('',#48287,#24965); +#21267=LINE('',#48289,#24966); +#21268=LINE('',#48291,#24967); +#21269=LINE('',#48293,#24968); +#21270=LINE('',#48295,#24969); +#21271=LINE('',#48297,#24970); +#21272=LINE('',#48299,#24971); +#21273=LINE('',#48301,#24972); +#21274=LINE('',#48303,#24973); +#21275=LINE('',#48305,#24974); +#21276=LINE('',#48307,#24975); +#21277=LINE('',#48309,#24976); +#21278=LINE('',#48311,#24977); +#21279=LINE('',#48313,#24978); +#21280=LINE('',#48315,#24979); +#21281=LINE('',#48317,#24980); +#21282=LINE('',#48319,#24981); +#21283=LINE('',#48321,#24982); +#21284=LINE('',#48323,#24983); +#21285=LINE('',#48325,#24984); +#21286=LINE('',#48327,#24985); +#21287=LINE('',#48329,#24986); +#21288=LINE('',#48331,#24987); +#21289=LINE('',#48333,#24988); +#21290=LINE('',#48335,#24989); +#21291=LINE('',#48337,#24990); +#21292=LINE('',#48339,#24991); +#21293=LINE('',#48341,#24992); +#21294=LINE('',#48343,#24993); +#21295=LINE('',#48345,#24994); +#21296=LINE('',#48347,#24995); +#21297=LINE('',#48349,#24996); +#21298=LINE('',#48351,#24997); +#21299=LINE('',#48353,#24998); +#21300=LINE('',#48355,#24999); +#21301=LINE('',#48357,#25000); +#21302=LINE('',#48359,#25001); +#21303=LINE('',#48361,#25002); +#21304=LINE('',#48363,#25003); +#21305=LINE('',#48365,#25004); +#21306=LINE('',#48367,#25005); +#21307=LINE('',#48369,#25006); +#21308=LINE('',#48371,#25007); +#21309=LINE('',#48373,#25008); +#21310=LINE('',#48375,#25009); +#21311=LINE('',#48377,#25010); +#21312=LINE('',#48379,#25011); +#21313=LINE('',#48381,#25012); +#21314=LINE('',#48383,#25013); +#21315=LINE('',#48385,#25014); +#21316=LINE('',#48387,#25015); +#21317=LINE('',#48389,#25016); +#21318=LINE('',#48391,#25017); +#21319=LINE('',#48393,#25018); +#21320=LINE('',#48395,#25019); +#21321=LINE('',#48397,#25020); +#21322=LINE('',#48399,#25021); +#21323=LINE('',#48401,#25022); +#21324=LINE('',#48403,#25023); +#21325=LINE('',#48405,#25024); +#21326=LINE('',#48407,#25025); +#21327=LINE('',#48409,#25026); +#21328=LINE('',#48411,#25027); +#21329=LINE('',#48413,#25028); +#21330=LINE('',#48415,#25029); +#21331=LINE('',#48417,#25030); +#21332=LINE('',#48419,#25031); +#21333=LINE('',#48421,#25032); +#21334=LINE('',#48423,#25033); +#21335=LINE('',#48425,#25034); +#21336=LINE('',#48427,#25035); +#21337=LINE('',#48429,#25036); +#21338=LINE('',#48431,#25037); +#21339=LINE('',#48433,#25038); +#21340=LINE('',#48435,#25039); +#21341=LINE('',#48437,#25040); +#21342=LINE('',#48439,#25041); +#21343=LINE('',#48441,#25042); +#21344=LINE('',#48443,#25043); +#21345=LINE('',#48445,#25044); +#21346=LINE('',#48447,#25045); +#21347=LINE('',#48449,#25046); +#21348=LINE('',#48451,#25047); +#21349=LINE('',#48453,#25048); +#21350=LINE('',#48455,#25049); +#21351=LINE('',#48457,#25050); +#21352=LINE('',#48459,#25051); +#21353=LINE('',#48461,#25052); +#21354=LINE('',#48463,#25053); +#21355=LINE('',#48465,#25054); +#21356=LINE('',#48467,#25055); +#21357=LINE('',#48470,#25056); +#21358=LINE('',#48472,#25057); +#21359=LINE('',#48474,#25058); +#21360=LINE('',#48476,#25059); +#21361=LINE('',#48478,#25060); +#21362=LINE('',#48480,#25061); +#21363=LINE('',#48482,#25062); +#21364=LINE('',#48484,#25063); +#21365=LINE('',#48486,#25064); +#21366=LINE('',#48488,#25065); +#21367=LINE('',#48490,#25066); +#21368=LINE('',#48492,#25067); +#21369=LINE('',#48494,#25068); +#21370=LINE('',#48496,#25069); +#21371=LINE('',#48498,#25070); +#21372=LINE('',#48500,#25071); +#21373=LINE('',#48502,#25072); +#21374=LINE('',#48504,#25073); +#21375=LINE('',#48506,#25074); +#21376=LINE('',#48508,#25075); +#21377=LINE('',#48510,#25076); +#21378=LINE('',#48512,#25077); +#21379=LINE('',#48514,#25078); +#21380=LINE('',#48516,#25079); +#21381=LINE('',#48518,#25080); +#21382=LINE('',#48520,#25081); +#21383=LINE('',#48522,#25082); +#21384=LINE('',#48524,#25083); +#21385=LINE('',#48526,#25084); +#21386=LINE('',#48528,#25085); +#21387=LINE('',#48530,#25086); +#21388=LINE('',#48532,#25087); +#21389=LINE('',#48534,#25088); +#21390=LINE('',#48536,#25089); +#21391=LINE('',#48538,#25090); +#21392=LINE('',#48540,#25091); +#21393=LINE('',#48542,#25092); +#21394=LINE('',#48544,#25093); +#21395=LINE('',#48546,#25094); +#21396=LINE('',#48548,#25095); +#21397=LINE('',#48550,#25096); +#21398=LINE('',#48552,#25097); +#21399=LINE('',#48554,#25098); +#21400=LINE('',#48556,#25099); +#21401=LINE('',#48558,#25100); +#21402=LINE('',#48560,#25101); +#21403=LINE('',#48562,#25102); +#21404=LINE('',#48564,#25103); +#21405=LINE('',#48566,#25104); +#21406=LINE('',#48568,#25105); +#21407=LINE('',#48570,#25106); +#21408=LINE('',#48572,#25107); +#21409=LINE('',#48574,#25108); +#21410=LINE('',#48576,#25109); +#21411=LINE('',#48578,#25110); +#21412=LINE('',#48580,#25111); +#21413=LINE('',#48582,#25112); +#21414=LINE('',#48584,#25113); +#21415=LINE('',#48586,#25114); +#21416=LINE('',#48588,#25115); +#21417=LINE('',#48590,#25116); +#21418=LINE('',#48592,#25117); +#21419=LINE('',#48594,#25118); +#21420=LINE('',#48596,#25119); +#21421=LINE('',#48598,#25120); +#21422=LINE('',#48600,#25121); +#21423=LINE('',#48602,#25122); +#21424=LINE('',#48604,#25123); +#21425=LINE('',#48606,#25124); +#21426=LINE('',#48608,#25125); +#21427=LINE('',#48610,#25126); +#21428=LINE('',#48612,#25127); +#21429=LINE('',#48614,#25128); +#21430=LINE('',#48616,#25129); +#21431=LINE('',#48618,#25130); +#21432=LINE('',#48620,#25131); +#21433=LINE('',#48622,#25132); +#21434=LINE('',#48624,#25133); +#21435=LINE('',#48626,#25134); +#21436=LINE('',#48628,#25135); +#21437=LINE('',#48630,#25136); +#21438=LINE('',#48632,#25137); +#21439=LINE('',#48634,#25138); +#21440=LINE('',#48636,#25139); +#21441=LINE('',#48638,#25140); +#21442=LINE('',#48640,#25141); +#21443=LINE('',#48642,#25142); +#21444=LINE('',#48644,#25143); +#21445=LINE('',#48646,#25144); +#21446=LINE('',#48648,#25145); +#21447=LINE('',#48650,#25146); +#21448=LINE('',#48652,#25147); +#21449=LINE('',#48654,#25148); +#21450=LINE('',#48656,#25149); +#21451=LINE('',#48658,#25150); +#21452=LINE('',#48660,#25151); +#21453=LINE('',#48662,#25152); +#21454=LINE('',#48664,#25153); +#21455=LINE('',#48666,#25154); +#21456=LINE('',#48668,#25155); +#21457=LINE('',#48670,#25156); +#21458=LINE('',#48672,#25157); +#21459=LINE('',#48674,#25158); +#21460=LINE('',#48676,#25159); +#21461=LINE('',#48678,#25160); +#21462=LINE('',#48680,#25161); +#21463=LINE('',#48682,#25162); +#21464=LINE('',#48684,#25163); +#21465=LINE('',#48686,#25164); +#21466=LINE('',#48688,#25165); +#21467=LINE('',#48690,#25166); +#21468=LINE('',#48692,#25167); +#21469=LINE('',#48694,#25168); +#21470=LINE('',#48696,#25169); +#21471=LINE('',#48698,#25170); +#21472=LINE('',#48700,#25171); +#21473=LINE('',#48702,#25172); +#21474=LINE('',#48704,#25173); +#21475=LINE('',#48706,#25174); +#21476=LINE('',#48708,#25175); +#21477=LINE('',#48710,#25176); +#21478=LINE('',#48712,#25177); +#21479=LINE('',#48714,#25178); +#21480=LINE('',#48716,#25179); +#21481=LINE('',#48718,#25180); +#21482=LINE('',#48720,#25181); +#21483=LINE('',#48722,#25182); +#21484=LINE('',#48724,#25183); +#21485=LINE('',#48726,#25184); +#21486=LINE('',#48728,#25185); +#21487=LINE('',#48730,#25186); +#21488=LINE('',#48732,#25187); +#21489=LINE('',#48734,#25188); +#21490=LINE('',#48736,#25189); +#21491=LINE('',#48738,#25190); +#21492=LINE('',#48740,#25191); +#21493=LINE('',#48742,#25192); +#21494=LINE('',#48744,#25193); +#21495=LINE('',#48746,#25194); +#21496=LINE('',#48748,#25195); +#21497=LINE('',#48750,#25196); +#21498=LINE('',#48752,#25197); +#21499=LINE('',#48754,#25198); +#21500=LINE('',#48756,#25199); +#21501=LINE('',#48758,#25200); +#21502=LINE('',#48760,#25201); +#21503=LINE('',#48762,#25202); +#21504=LINE('',#48764,#25203); +#21505=LINE('',#48766,#25204); +#21506=LINE('',#48768,#25205); +#21507=LINE('',#48770,#25206); +#21508=LINE('',#48772,#25207); +#21509=LINE('',#48774,#25208); +#21510=LINE('',#48776,#25209); +#21511=LINE('',#48778,#25210); +#21512=LINE('',#48780,#25211); +#21513=LINE('',#48782,#25212); +#21514=LINE('',#48784,#25213); +#21515=LINE('',#48786,#25214); +#21516=LINE('',#48788,#25215); +#21517=LINE('',#48790,#25216); +#21518=LINE('',#48792,#25217); +#21519=LINE('',#48794,#25218); +#21520=LINE('',#48796,#25219); +#21521=LINE('',#48797,#25220); +#21522=LINE('',#48799,#25221); +#21523=LINE('',#48800,#25222); +#21524=LINE('',#48802,#25223); +#21525=LINE('',#48803,#25224); +#21526=LINE('',#48805,#25225); +#21527=LINE('',#48806,#25226); +#21528=LINE('',#48808,#25227); +#21529=LINE('',#48809,#25228); +#21530=LINE('',#48811,#25229); +#21531=LINE('',#48812,#25230); +#21532=LINE('',#48814,#25231); +#21533=LINE('',#48815,#25232); +#21534=LINE('',#48817,#25233); +#21535=LINE('',#48818,#25234); +#21536=LINE('',#48820,#25235); +#21537=LINE('',#48821,#25236); +#21538=LINE('',#48823,#25237); +#21539=LINE('',#48824,#25238); +#21540=LINE('',#48826,#25239); +#21541=LINE('',#48827,#25240); +#21542=LINE('',#48829,#25241); +#21543=LINE('',#48830,#25242); +#21544=LINE('',#48832,#25243); +#21545=LINE('',#48833,#25244); +#21546=LINE('',#48835,#25245); +#21547=LINE('',#48836,#25246); +#21548=LINE('',#48838,#25247); +#21549=LINE('',#48839,#25248); +#21550=LINE('',#48841,#25249); +#21551=LINE('',#48842,#25250); +#21552=LINE('',#48844,#25251); +#21553=LINE('',#48845,#25252); +#21554=LINE('',#48847,#25253); +#21555=LINE('',#48848,#25254); +#21556=LINE('',#48850,#25255); +#21557=LINE('',#48851,#25256); +#21558=LINE('',#48853,#25257); +#21559=LINE('',#48854,#25258); +#21560=LINE('',#48856,#25259); +#21561=LINE('',#48857,#25260); +#21562=LINE('',#48859,#25261); +#21563=LINE('',#48860,#25262); +#21564=LINE('',#48862,#25263); +#21565=LINE('',#48863,#25264); +#21566=LINE('',#48865,#25265); +#21567=LINE('',#48866,#25266); +#21568=LINE('',#48868,#25267); +#21569=LINE('',#48869,#25268); +#21570=LINE('',#48871,#25269); +#21571=LINE('',#48872,#25270); +#21572=LINE('',#48874,#25271); +#21573=LINE('',#48875,#25272); +#21574=LINE('',#48877,#25273); +#21575=LINE('',#48878,#25274); +#21576=LINE('',#48880,#25275); +#21577=LINE('',#48881,#25276); +#21578=LINE('',#48883,#25277); +#21579=LINE('',#48884,#25278); +#21580=LINE('',#48886,#25279); +#21581=LINE('',#48887,#25280); +#21582=LINE('',#48889,#25281); +#21583=LINE('',#48890,#25282); +#21584=LINE('',#48892,#25283); +#21585=LINE('',#48893,#25284); +#21586=LINE('',#48895,#25285); +#21587=LINE('',#48896,#25286); +#21588=LINE('',#48898,#25287); +#21589=LINE('',#48899,#25288); +#21590=LINE('',#48901,#25289); +#21591=LINE('',#48902,#25290); +#21592=LINE('',#48904,#25291); +#21593=LINE('',#48905,#25292); +#21594=LINE('',#48907,#25293); +#21595=LINE('',#48908,#25294); +#21596=LINE('',#48910,#25295); +#21597=LINE('',#48911,#25296); +#21598=LINE('',#48913,#25297); +#21599=LINE('',#48914,#25298); +#21600=LINE('',#48916,#25299); +#21601=LINE('',#48917,#25300); +#21602=LINE('',#48919,#25301); +#21603=LINE('',#48920,#25302); +#21604=LINE('',#48922,#25303); +#21605=LINE('',#48923,#25304); +#21606=LINE('',#48925,#25305); +#21607=LINE('',#48926,#25306); +#21608=LINE('',#48928,#25307); +#21609=LINE('',#48929,#25308); +#21610=LINE('',#48931,#25309); +#21611=LINE('',#48932,#25310); +#21612=LINE('',#48934,#25311); +#21613=LINE('',#48935,#25312); +#21614=LINE('',#48937,#25313); +#21615=LINE('',#48938,#25314); +#21616=LINE('',#48940,#25315); +#21617=LINE('',#48941,#25316); +#21618=LINE('',#48943,#25317); +#21619=LINE('',#48944,#25318); +#21620=LINE('',#48946,#25319); +#21621=LINE('',#48947,#25320); +#21622=LINE('',#48949,#25321); +#21623=LINE('',#48950,#25322); +#21624=LINE('',#48952,#25323); +#21625=LINE('',#48953,#25324); +#21626=LINE('',#48955,#25325); +#21627=LINE('',#48956,#25326); +#21628=LINE('',#48958,#25327); +#21629=LINE('',#48959,#25328); +#21630=LINE('',#48961,#25329); +#21631=LINE('',#48962,#25330); +#21632=LINE('',#48964,#25331); +#21633=LINE('',#48965,#25332); +#21634=LINE('',#48967,#25333); +#21635=LINE('',#48968,#25334); +#21636=LINE('',#48970,#25335); +#21637=LINE('',#48971,#25336); +#21638=LINE('',#48973,#25337); +#21639=LINE('',#48974,#25338); +#21640=LINE('',#48976,#25339); +#21641=LINE('',#48977,#25340); +#21642=LINE('',#48979,#25341); +#21643=LINE('',#48980,#25342); +#21644=LINE('',#48982,#25343); +#21645=LINE('',#48983,#25344); +#21646=LINE('',#48985,#25345); +#21647=LINE('',#48986,#25346); +#21648=LINE('',#48988,#25347); +#21649=LINE('',#48989,#25348); +#21650=LINE('',#48991,#25349); +#21651=LINE('',#48992,#25350); +#21652=LINE('',#48994,#25351); +#21653=LINE('',#48995,#25352); +#21654=LINE('',#48997,#25353); +#21655=LINE('',#48998,#25354); +#21656=LINE('',#49000,#25355); +#21657=LINE('',#49001,#25356); +#21658=LINE('',#49003,#25357); +#21659=LINE('',#49004,#25358); +#21660=LINE('',#49006,#25359); +#21661=LINE('',#49007,#25360); +#21662=LINE('',#49009,#25361); +#21663=LINE('',#49010,#25362); +#21664=LINE('',#49012,#25363); +#21665=LINE('',#49013,#25364); +#21666=LINE('',#49015,#25365); +#21667=LINE('',#49016,#25366); +#21668=LINE('',#49018,#25367); +#21669=LINE('',#49019,#25368); +#21670=LINE('',#49021,#25369); +#21671=LINE('',#49022,#25370); +#21672=LINE('',#49024,#25371); +#21673=LINE('',#49025,#25372); +#21674=LINE('',#49027,#25373); +#21675=LINE('',#49028,#25374); +#21676=LINE('',#49030,#25375); +#21677=LINE('',#49031,#25376); +#21678=LINE('',#49033,#25377); +#21679=LINE('',#49034,#25378); +#21680=LINE('',#49036,#25379); +#21681=LINE('',#49037,#25380); +#21682=LINE('',#49039,#25381); +#21683=LINE('',#49040,#25382); +#21684=LINE('',#49042,#25383); +#21685=LINE('',#49043,#25384); +#21686=LINE('',#49045,#25385); +#21687=LINE('',#49046,#25386); +#21688=LINE('',#49048,#25387); +#21689=LINE('',#49051,#25388); +#21690=LINE('',#49053,#25389); +#21691=LINE('',#49055,#25390); +#21692=LINE('',#49057,#25391); +#21693=LINE('',#49060,#25392); +#21694=LINE('',#49062,#25393); +#21695=LINE('',#49064,#25394); +#21696=LINE('',#49066,#25395); +#21697=LINE('',#49069,#25396); +#21698=LINE('',#49071,#25397); +#21699=LINE('',#49073,#25398); +#21700=LINE('',#49075,#25399); +#21701=LINE('',#49078,#25400); +#21702=LINE('',#49080,#25401); +#21703=LINE('',#49082,#25402); +#21704=LINE('',#49084,#25403); +#21705=LINE('',#49087,#25404); +#21706=LINE('',#49089,#25405); +#21707=LINE('',#49091,#25406); +#21708=LINE('',#49093,#25407); +#21709=LINE('',#49096,#25408); +#21710=LINE('',#49098,#25409); +#21711=LINE('',#49100,#25410); +#21712=LINE('',#49102,#25411); +#21713=LINE('',#49105,#25412); +#21714=LINE('',#49107,#25413); +#21715=LINE('',#49109,#25414); +#21716=LINE('',#49111,#25415); +#21717=LINE('',#49114,#25416); +#21718=LINE('',#49116,#25417); +#21719=LINE('',#49118,#25418); +#21720=LINE('',#49120,#25419); +#21721=LINE('',#49123,#25420); +#21722=LINE('',#49125,#25421); +#21723=LINE('',#49127,#25422); +#21724=LINE('',#49129,#25423); +#21725=LINE('',#49132,#25424); +#21726=LINE('',#49134,#25425); +#21727=LINE('',#49136,#25426); +#21728=LINE('',#49138,#25427); +#21729=LINE('',#49141,#25428); +#21730=LINE('',#49143,#25429); +#21731=LINE('',#49145,#25430); +#21732=LINE('',#49147,#25431); +#21733=LINE('',#49150,#25432); +#21734=LINE('',#49152,#25433); +#21735=LINE('',#49154,#25434); +#21736=LINE('',#49156,#25435); +#21737=LINE('',#49159,#25436); +#21738=LINE('',#49161,#25437); +#21739=LINE('',#49163,#25438); +#21740=LINE('',#49165,#25439); +#21741=LINE('',#49168,#25440); +#21742=LINE('',#49170,#25441); +#21743=LINE('',#49172,#25442); +#21744=LINE('',#49174,#25443); +#21745=LINE('',#49177,#25444); +#21746=LINE('',#49179,#25445); +#21747=LINE('',#49181,#25446); +#21748=LINE('',#49183,#25447); +#21749=LINE('',#49186,#25448); +#21750=LINE('',#49188,#25449); +#21751=LINE('',#49190,#25450); +#21752=LINE('',#49192,#25451); +#21753=LINE('',#49195,#25452); +#21754=LINE('',#49197,#25453); +#21755=LINE('',#49199,#25454); +#21756=LINE('',#49201,#25455); +#21757=LINE('',#49204,#25456); +#21758=LINE('',#49206,#25457); +#21759=LINE('',#49208,#25458); +#21760=LINE('',#49210,#25459); +#21761=LINE('',#49213,#25460); +#21762=LINE('',#49215,#25461); +#21763=LINE('',#49217,#25462); +#21764=LINE('',#49278,#25463); +#21765=LINE('',#49284,#25464); +#21766=LINE('',#49290,#25465); +#21767=LINE('',#49296,#25466); +#21768=LINE('',#49302,#25467); +#21769=LINE('',#49308,#25468); +#21770=LINE('',#49314,#25469); +#21771=LINE('',#49320,#25470); +#21772=LINE('',#49326,#25471); +#21773=LINE('',#49332,#25472); +#21774=LINE('',#49338,#25473); +#21775=LINE('',#49344,#25474); +#21776=LINE('',#49350,#25475); +#21777=LINE('',#49356,#25476); +#21778=LINE('',#49362,#25477); +#21779=LINE('',#49368,#25478); +#21780=LINE('',#49374,#25479); +#21781=LINE('',#49380,#25480); +#21782=LINE('',#49386,#25481); +#21783=LINE('',#49390,#25482); +#21784=LINE('',#49393,#25483); +#21785=LINE('',#49394,#25484); +#21786=LINE('',#49396,#25485); +#21787=LINE('',#49399,#25486); +#21788=LINE('',#49400,#25487); +#21789=LINE('',#49402,#25488); +#21790=LINE('',#49405,#25489); +#21791=LINE('',#49406,#25490); +#21792=LINE('',#49408,#25491); +#21793=LINE('',#49411,#25492); +#21794=LINE('',#49412,#25493); +#21795=LINE('',#49414,#25494); +#21796=LINE('',#49417,#25495); +#21797=LINE('',#49418,#25496); +#21798=LINE('',#49420,#25497); +#21799=LINE('',#49423,#25498); +#21800=LINE('',#49424,#25499); +#21801=LINE('',#49426,#25500); +#21802=LINE('',#49429,#25501); +#21803=LINE('',#49430,#25502); +#21804=LINE('',#49432,#25503); +#21805=LINE('',#49435,#25504); +#21806=LINE('',#49436,#25505); +#21807=LINE('',#49438,#25506); +#21808=LINE('',#49441,#25507); +#21809=LINE('',#49442,#25508); +#21810=LINE('',#49444,#25509); +#21811=LINE('',#49447,#25510); +#21812=LINE('',#49448,#25511); +#21813=LINE('',#49450,#25512); +#21814=LINE('',#49453,#25513); +#21815=LINE('',#49454,#25514); +#21816=LINE('',#49456,#25515); +#21817=LINE('',#49459,#25516); +#21818=LINE('',#49460,#25517); +#21819=LINE('',#49462,#25518); +#21820=LINE('',#49465,#25519); +#21821=LINE('',#49466,#25520); +#21822=LINE('',#49468,#25521); +#21823=LINE('',#49471,#25522); +#21824=LINE('',#49472,#25523); +#21825=LINE('',#49474,#25524); +#21826=LINE('',#49477,#25525); +#21827=LINE('',#49478,#25526); +#21828=LINE('',#49480,#25527); +#21829=LINE('',#49483,#25528); +#21830=LINE('',#49484,#25529); +#21831=LINE('',#49486,#25530); +#21832=LINE('',#49489,#25531); +#21833=LINE('',#49490,#25532); +#21834=LINE('',#49492,#25533); +#21835=LINE('',#49495,#25534); +#21836=LINE('',#49496,#25535); +#21837=LINE('',#49498,#25536); +#21838=LINE('',#49501,#25537); +#21839=LINE('',#49502,#25538); +#21840=LINE('',#49618,#25539); +#21841=LINE('',#49621,#25540); +#21842=LINE('',#49623,#25541); +#21843=LINE('',#49625,#25542); +#21844=LINE('',#49632,#25543); +#21845=LINE('',#49636,#25544); +#21846=LINE('',#49639,#25545); +#21847=LINE('',#49640,#25546); +#21848=LINE('',#49648,#25547); +#21849=LINE('',#49651,#25548); +#21850=LINE('',#49654,#25549); +#21851=LINE('',#49657,#25550); +#21852=LINE('',#49660,#25551); +#21853=LINE('',#49663,#25552); +#21854=LINE('',#49666,#25553); +#21855=LINE('',#49669,#25554); +#21856=LINE('',#49672,#25555); +#21857=LINE('',#49675,#25556); +#21858=LINE('',#49678,#25557); +#21859=LINE('',#49681,#25558); +#21860=LINE('',#49684,#25559); +#21861=LINE('',#49687,#25560); +#21862=LINE('',#49690,#25561); +#21863=LINE('',#49693,#25562); +#21864=LINE('',#49696,#25563); +#21865=LINE('',#49699,#25564); +#21866=LINE('',#49702,#25565); +#21867=LINE('',#49705,#25566); +#21868=LINE('',#49708,#25567); +#21869=LINE('',#49711,#25568); +#21870=LINE('',#49714,#25569); +#21871=LINE('',#49717,#25570); +#21872=LINE('',#49720,#25571); +#21873=LINE('',#49723,#25572); +#21874=LINE('',#49726,#25573); +#21875=LINE('',#49729,#25574); +#21876=LINE('',#49732,#25575); +#21877=LINE('',#49735,#25576); +#21878=LINE('',#49738,#25577); +#21879=LINE('',#49741,#25578); +#21880=LINE('',#49744,#25579); +#21881=LINE('',#49747,#25580); +#21882=LINE('',#49750,#25581); +#21883=LINE('',#49753,#25582); +#21884=LINE('',#49756,#25583); +#21885=LINE('',#49759,#25584); +#21886=LINE('',#49762,#25585); +#21887=LINE('',#49765,#25586); +#21888=LINE('',#49768,#25587); +#21889=LINE('',#49771,#25588); +#21890=LINE('',#49774,#25589); +#21891=LINE('',#49777,#25590); +#21892=LINE('',#49780,#25591); +#21893=LINE('',#49783,#25592); +#21894=LINE('',#49786,#25593); +#21895=LINE('',#49789,#25594); +#21896=LINE('',#49792,#25595); +#21897=LINE('',#49795,#25596); +#21898=LINE('',#49798,#25597); +#21899=LINE('',#49801,#25598); +#21900=LINE('',#49804,#25599); +#21901=LINE('',#49807,#25600); +#21902=LINE('',#49810,#25601); +#21903=LINE('',#49813,#25602); +#21904=LINE('',#49816,#25603); +#21905=LINE('',#49819,#25604); +#21906=LINE('',#49822,#25605); +#21907=LINE('',#49825,#25606); +#21908=LINE('',#49828,#25607); +#21909=LINE('',#49831,#25608); +#21910=LINE('',#49834,#25609); +#21911=LINE('',#49837,#25610); +#21912=LINE('',#49840,#25611); +#21913=LINE('',#49843,#25612); +#21914=LINE('',#49846,#25613); +#21915=LINE('',#49849,#25614); +#21916=LINE('',#49852,#25615); +#21917=LINE('',#49855,#25616); +#21918=LINE('',#49858,#25617); +#21919=LINE('',#49861,#25618); +#21920=LINE('',#49864,#25619); +#21921=LINE('',#49867,#25620); +#21922=LINE('',#49870,#25621); +#21923=LINE('',#49873,#25622); +#21924=LINE('',#49876,#25623); +#21925=LINE('',#49879,#25624); +#21926=LINE('',#49882,#25625); +#21927=LINE('',#49884,#25626); +#21928=LINE('',#49930,#25627); +#21929=LINE('',#49933,#25628); +#21930=LINE('',#49935,#25629); +#21931=LINE('',#49937,#25630); +#21932=LINE('',#49941,#25631); +#21933=LINE('',#49945,#25632); +#21934=LINE('',#49949,#25633); +#21935=LINE('',#49953,#25634); +#21936=LINE('',#49957,#25635); +#21937=LINE('',#49961,#25636); +#21938=LINE('',#49963,#25637); +#21939=LINE('',#49965,#25638); +#21940=LINE('',#49969,#25639); +#21941=LINE('',#49973,#25640); +#21942=LINE('',#49977,#25641); +#21943=LINE('',#49981,#25642); +#21944=LINE('',#49985,#25643); +#21945=LINE('',#49989,#25644); +#21946=LINE('',#49991,#25645); +#21947=LINE('',#49993,#25646); +#21948=LINE('',#49997,#25647); +#21949=LINE('',#50001,#25648); +#21950=LINE('',#50005,#25649); +#21951=LINE('',#50009,#25650); +#21952=LINE('',#50013,#25651); +#21953=LINE('',#50017,#25652); +#21954=LINE('',#50019,#25653); +#21955=LINE('',#50021,#25654); +#21956=LINE('',#50025,#25655); +#21957=LINE('',#50029,#25656); +#21958=LINE('',#50033,#25657); +#21959=LINE('',#50037,#25658); +#21960=LINE('',#50041,#25659); +#21961=LINE('',#50045,#25660); +#21962=LINE('',#50047,#25661); +#21963=LINE('',#50049,#25662); +#21964=LINE('',#50053,#25663); +#21965=LINE('',#50057,#25664); +#21966=LINE('',#50061,#25665); +#21967=LINE('',#50065,#25666); +#21968=LINE('',#50069,#25667); +#21969=LINE('',#50073,#25668); +#21970=LINE('',#50075,#25669); +#21971=LINE('',#50077,#25670); +#21972=LINE('',#50081,#25671); +#21973=LINE('',#50085,#25672); +#21974=LINE('',#50089,#25673); +#21975=LINE('',#50093,#25674); +#21976=LINE('',#50097,#25675); +#21977=LINE('',#50101,#25676); +#21978=LINE('',#50103,#25677); +#21979=LINE('',#50105,#25678); +#21980=LINE('',#50109,#25679); +#21981=LINE('',#50113,#25680); +#21982=LINE('',#50117,#25681); +#21983=LINE('',#50121,#25682); +#21984=LINE('',#50125,#25683); +#21985=LINE('',#50129,#25684); +#21986=LINE('',#50131,#25685); +#21987=LINE('',#50133,#25686); +#21988=LINE('',#50137,#25687); +#21989=LINE('',#50141,#25688); +#21990=LINE('',#50145,#25689); +#21991=LINE('',#50149,#25690); +#21992=LINE('',#50153,#25691); +#21993=LINE('',#50157,#25692); +#21994=LINE('',#50159,#25693); +#21995=LINE('',#50161,#25694); +#21996=LINE('',#50165,#25695); +#21997=LINE('',#50169,#25696); +#21998=LINE('',#50173,#25697); +#21999=LINE('',#50177,#25698); +#22000=LINE('',#50181,#25699); +#22001=LINE('',#50185,#25700); +#22002=LINE('',#50187,#25701); +#22003=LINE('',#50189,#25702); +#22004=LINE('',#50193,#25703); +#22005=LINE('',#50197,#25704); +#22006=LINE('',#50201,#25705); +#22007=LINE('',#50205,#25706); +#22008=LINE('',#50209,#25707); +#22009=LINE('',#50213,#25708); +#22010=LINE('',#50215,#25709); +#22011=LINE('',#50217,#25710); +#22012=LINE('',#50221,#25711); +#22013=LINE('',#50225,#25712); +#22014=LINE('',#50229,#25713); +#22015=LINE('',#50233,#25714); +#22016=LINE('',#50237,#25715); +#22017=LINE('',#50241,#25716); +#22018=LINE('',#50243,#25717); +#22019=LINE('',#50245,#25718); +#22020=LINE('',#50249,#25719); +#22021=LINE('',#50253,#25720); +#22022=LINE('',#50257,#25721); +#22023=LINE('',#50261,#25722); +#22024=LINE('',#50265,#25723); +#22025=LINE('',#50269,#25724); +#22026=LINE('',#50271,#25725); +#22027=LINE('',#50273,#25726); +#22028=LINE('',#50277,#25727); +#22029=LINE('',#50281,#25728); +#22030=LINE('',#50285,#25729); +#22031=LINE('',#50289,#25730); +#22032=LINE('',#50293,#25731); +#22033=LINE('',#50297,#25732); +#22034=LINE('',#50299,#25733); +#22035=LINE('',#50301,#25734); +#22036=LINE('',#50305,#25735); +#22037=LINE('',#50309,#25736); +#22038=LINE('',#50313,#25737); +#22039=LINE('',#50317,#25738); +#22040=LINE('',#50321,#25739); +#22041=LINE('',#50325,#25740); +#22042=LINE('',#50327,#25741); +#22043=LINE('',#50329,#25742); +#22044=LINE('',#50333,#25743); +#22045=LINE('',#50337,#25744); +#22046=LINE('',#50341,#25745); +#22047=LINE('',#50345,#25746); +#22048=LINE('',#50349,#25747); +#22049=LINE('',#50353,#25748); +#22050=LINE('',#50355,#25749); +#22051=LINE('',#50357,#25750); +#22052=LINE('',#50361,#25751); +#22053=LINE('',#50365,#25752); +#22054=LINE('',#50369,#25753); +#22055=LINE('',#50373,#25754); +#22056=LINE('',#50377,#25755); +#22057=LINE('',#50381,#25756); +#22058=LINE('',#50383,#25757); +#22059=LINE('',#50385,#25758); +#22060=LINE('',#50389,#25759); +#22061=LINE('',#50393,#25760); +#22062=LINE('',#50397,#25761); +#22063=LINE('',#50401,#25762); +#22064=LINE('',#50405,#25763); +#22065=LINE('',#50409,#25764); +#22066=LINE('',#50411,#25765); +#22067=LINE('',#50413,#25766); +#22068=LINE('',#50417,#25767); +#22069=LINE('',#50421,#25768); +#22070=LINE('',#50425,#25769); +#22071=LINE('',#50429,#25770); +#22072=LINE('',#50433,#25771); +#22073=LINE('',#50437,#25772); +#22074=LINE('',#50439,#25773); +#22075=LINE('',#50441,#25774); +#22076=LINE('',#50445,#25775); +#22077=LINE('',#50449,#25776); +#22078=LINE('',#50453,#25777); +#22079=LINE('',#50457,#25778); +#22080=LINE('',#50461,#25779); +#22081=LINE('',#50465,#25780); +#22082=LINE('',#50467,#25781); +#22083=LINE('',#50469,#25782); +#22084=LINE('',#50473,#25783); +#22085=LINE('',#50477,#25784); +#22086=LINE('',#50481,#25785); +#22087=LINE('',#50485,#25786); +#22088=LINE('',#50489,#25787); +#22089=LINE('',#50493,#25788); +#22090=LINE('',#50495,#25789); +#22091=LINE('',#50497,#25790); +#22092=LINE('',#50499,#25791); +#22093=LINE('',#50502,#25792); +#22094=LINE('',#50504,#25793); +#22095=LINE('',#50506,#25794); +#22096=LINE('',#50510,#25795); +#22097=LINE('',#50514,#25796); +#22098=LINE('',#50518,#25797); +#22099=LINE('',#50522,#25798); +#22100=LINE('',#50526,#25799); +#22101=LINE('',#50530,#25800); +#22102=LINE('',#50532,#25801); +#22103=LINE('',#50534,#25802); +#22104=LINE('',#50538,#25803); +#22105=LINE('',#50542,#25804); +#22106=LINE('',#50546,#25805); +#22107=LINE('',#50550,#25806); +#22108=LINE('',#50554,#25807); +#22109=LINE('',#50558,#25808); +#22110=LINE('',#50560,#25809); +#22111=LINE('',#50562,#25810); +#22112=LINE('',#50566,#25811); +#22113=LINE('',#50570,#25812); +#22114=LINE('',#50574,#25813); +#22115=LINE('',#50578,#25814); +#22116=LINE('',#50582,#25815); +#22117=LINE('',#50586,#25816); +#22118=LINE('',#50588,#25817); +#22119=LINE('',#50590,#25818); +#22120=LINE('',#50594,#25819); +#22121=LINE('',#50598,#25820); +#22122=LINE('',#50602,#25821); +#22123=LINE('',#50606,#25822); +#22124=LINE('',#50610,#25823); +#22125=LINE('',#50614,#25824); +#22126=LINE('',#50616,#25825); +#22127=LINE('',#50618,#25826); +#22128=LINE('',#50622,#25827); +#22129=LINE('',#50626,#25828); +#22130=LINE('',#50630,#25829); +#22131=LINE('',#50634,#25830); +#22132=LINE('',#50638,#25831); +#22133=LINE('',#50642,#25832); +#22134=LINE('',#50644,#25833); +#22135=LINE('',#50646,#25834); +#22136=LINE('',#50650,#25835); +#22137=LINE('',#50654,#25836); +#22138=LINE('',#50658,#25837); +#22139=LINE('',#50662,#25838); +#22140=LINE('',#50666,#25839); +#22141=LINE('',#50670,#25840); +#22142=LINE('',#50672,#25841); +#22143=LINE('',#50674,#25842); +#22144=LINE('',#50678,#25843); +#22145=LINE('',#50682,#25844); +#22146=LINE('',#50686,#25845); +#22147=LINE('',#50690,#25846); +#22148=LINE('',#50694,#25847); +#22149=LINE('',#50698,#25848); +#22150=LINE('',#50700,#25849); +#22151=LINE('',#50702,#25850); +#22152=LINE('',#50706,#25851); +#22153=LINE('',#50710,#25852); +#22154=LINE('',#50714,#25853); +#22155=LINE('',#50718,#25854); +#22156=LINE('',#50722,#25855); +#22157=LINE('',#50726,#25856); +#22158=LINE('',#50728,#25857); +#22159=LINE('',#50730,#25858); +#22160=LINE('',#50734,#25859); +#22161=LINE('',#50738,#25860); +#22162=LINE('',#50742,#25861); +#22163=LINE('',#50746,#25862); +#22164=LINE('',#50750,#25863); +#22165=LINE('',#50754,#25864); +#22166=LINE('',#50756,#25865); +#22167=LINE('',#50758,#25866); +#22168=LINE('',#50762,#25867); +#22169=LINE('',#50766,#25868); +#22170=LINE('',#50770,#25869); +#22171=LINE('',#50774,#25870); +#22172=LINE('',#50778,#25871); +#22173=LINE('',#50782,#25872); +#22174=LINE('',#50784,#25873); +#22175=LINE('',#50786,#25874); +#22176=LINE('',#50790,#25875); +#22177=LINE('',#50794,#25876); +#22178=LINE('',#50798,#25877); +#22179=LINE('',#50802,#25878); +#22180=LINE('',#50806,#25879); +#22181=LINE('',#50810,#25880); +#22182=LINE('',#50812,#25881); +#22183=LINE('',#50814,#25882); +#22184=LINE('',#50818,#25883); +#22185=LINE('',#50822,#25884); +#22186=LINE('',#50826,#25885); +#22187=LINE('',#50830,#25886); +#22188=LINE('',#50834,#25887); +#22189=LINE('',#50838,#25888); +#22190=LINE('',#50840,#25889); +#22191=LINE('',#50842,#25890); +#22192=LINE('',#50846,#25891); +#22193=LINE('',#50850,#25892); +#22194=LINE('',#50854,#25893); +#22195=LINE('',#50858,#25894); +#22196=LINE('',#50862,#25895); +#22197=LINE('',#50866,#25896); +#22198=LINE('',#50868,#25897); +#22199=LINE('',#50870,#25898); +#22200=LINE('',#50874,#25899); +#22201=LINE('',#50878,#25900); +#22202=LINE('',#50882,#25901); +#22203=LINE('',#50886,#25902); +#22204=LINE('',#50890,#25903); +#22205=LINE('',#50894,#25904); +#22206=LINE('',#50896,#25905); +#22207=LINE('',#50898,#25906); +#22208=LINE('',#50902,#25907); +#22209=LINE('',#50906,#25908); +#22210=LINE('',#50910,#25909); +#22211=LINE('',#50914,#25910); +#22212=LINE('',#50918,#25911); +#22213=LINE('',#50922,#25912); +#22214=LINE('',#50924,#25913); +#22215=LINE('',#50926,#25914); +#22216=LINE('',#50930,#25915); +#22217=LINE('',#50934,#25916); +#22218=LINE('',#50938,#25917); +#22219=LINE('',#50942,#25918); +#22220=LINE('',#50946,#25919); +#22221=LINE('',#50950,#25920); +#22222=LINE('',#50952,#25921); +#22223=LINE('',#50954,#25922); +#22224=LINE('',#50958,#25923); +#22225=LINE('',#50962,#25924); +#22226=LINE('',#50966,#25925); +#22227=LINE('',#50970,#25926); +#22228=LINE('',#50974,#25927); +#22229=LINE('',#50978,#25928); +#22230=LINE('',#50980,#25929); +#22231=LINE('',#50982,#25930); +#22232=LINE('',#50986,#25931); +#22233=LINE('',#50990,#25932); +#22234=LINE('',#50994,#25933); +#22235=LINE('',#50998,#25934); +#22236=LINE('',#51002,#25935); +#22237=LINE('',#51006,#25936); +#22238=LINE('',#51008,#25937); +#22239=LINE('',#51010,#25938); +#22240=LINE('',#51014,#25939); +#22241=LINE('',#51018,#25940); +#22242=LINE('',#51022,#25941); +#22243=LINE('',#51026,#25942); +#22244=LINE('',#51030,#25943); +#22245=LINE('',#51034,#25944); +#22246=LINE('',#51036,#25945); +#22247=LINE('',#51038,#25946); +#22248=LINE('',#51042,#25947); +#22249=LINE('',#51046,#25948); +#22250=LINE('',#51050,#25949); +#22251=LINE('',#51054,#25950); +#22252=LINE('',#51058,#25951); +#22253=LINE('',#51062,#25952); +#22254=LINE('',#51064,#25953); +#22255=LINE('',#51066,#25954); +#22256=LINE('',#51068,#25955); +#22257=LINE('',#51071,#25956); +#22258=LINE('',#51073,#25957); +#22259=LINE('',#51075,#25958); +#22260=LINE('',#51079,#25959); +#22261=LINE('',#51083,#25960); +#22262=LINE('',#51087,#25961); +#22263=LINE('',#51091,#25962); +#22264=LINE('',#51095,#25963); +#22265=LINE('',#51099,#25964); +#22266=LINE('',#51101,#25965); +#22267=LINE('',#51103,#25966); +#22268=LINE('',#51107,#25967); +#22269=LINE('',#51111,#25968); +#22270=LINE('',#51115,#25969); +#22271=LINE('',#51119,#25970); +#22272=LINE('',#51123,#25971); +#22273=LINE('',#51127,#25972); +#22274=LINE('',#51129,#25973); +#22275=LINE('',#51131,#25974); +#22276=LINE('',#51135,#25975); +#22277=LINE('',#51139,#25976); +#22278=LINE('',#51143,#25977); +#22279=LINE('',#51147,#25978); +#22280=LINE('',#51151,#25979); +#22281=LINE('',#51155,#25980); +#22282=LINE('',#51157,#25981); +#22283=LINE('',#51159,#25982); +#22284=LINE('',#51163,#25983); +#22285=LINE('',#51167,#25984); +#22286=LINE('',#51171,#25985); +#22287=LINE('',#51175,#25986); +#22288=LINE('',#51179,#25987); +#22289=LINE('',#51183,#25988); +#22290=LINE('',#51185,#25989); +#22291=LINE('',#51187,#25990); +#22292=LINE('',#51191,#25991); +#22293=LINE('',#51195,#25992); +#22294=LINE('',#51199,#25993); +#22295=LINE('',#51203,#25994); +#22296=LINE('',#51207,#25995); +#22297=LINE('',#51211,#25996); +#22298=LINE('',#51213,#25997); +#22299=LINE('',#51215,#25998); +#22300=LINE('',#51219,#25999); +#22301=LINE('',#51223,#26000); +#22302=LINE('',#51227,#26001); +#22303=LINE('',#51231,#26002); +#22304=LINE('',#51235,#26003); +#22305=LINE('',#51239,#26004); +#22306=LINE('',#51241,#26005); +#22307=LINE('',#51243,#26006); +#22308=LINE('',#51247,#26007); +#22309=LINE('',#51251,#26008); +#22310=LINE('',#51255,#26009); +#22311=LINE('',#51259,#26010); +#22312=LINE('',#51263,#26011); +#22313=LINE('',#51267,#26012); +#22314=LINE('',#51269,#26013); +#22315=LINE('',#51271,#26014); +#22316=LINE('',#51275,#26015); +#22317=LINE('',#51279,#26016); +#22318=LINE('',#51283,#26017); +#22319=LINE('',#51287,#26018); +#22320=LINE('',#51291,#26019); +#22321=LINE('',#51295,#26020); +#22322=LINE('',#51297,#26021); +#22323=LINE('',#51299,#26022); +#22324=LINE('',#51303,#26023); +#22325=LINE('',#51307,#26024); +#22326=LINE('',#51311,#26025); +#22327=LINE('',#51315,#26026); +#22328=LINE('',#51319,#26027); +#22329=LINE('',#51323,#26028); +#22330=LINE('',#51325,#26029); +#22331=LINE('',#51327,#26030); +#22332=LINE('',#51331,#26031); +#22333=LINE('',#51335,#26032); +#22334=LINE('',#51339,#26033); +#22335=LINE('',#51343,#26034); +#22336=LINE('',#51347,#26035); +#22337=LINE('',#51351,#26036); +#22338=LINE('',#51353,#26037); +#22339=LINE('',#51355,#26038); +#22340=LINE('',#51359,#26039); +#22341=LINE('',#51363,#26040); +#22342=LINE('',#51367,#26041); +#22343=LINE('',#51371,#26042); +#22344=LINE('',#51375,#26043); +#22345=LINE('',#51379,#26044); +#22346=LINE('',#51381,#26045); +#22347=LINE('',#51383,#26046); +#22348=LINE('',#51387,#26047); +#22349=LINE('',#51391,#26048); +#22350=LINE('',#51395,#26049); +#22351=LINE('',#51399,#26050); +#22352=LINE('',#51403,#26051); +#22353=LINE('',#51407,#26052); +#22354=LINE('',#51409,#26053); +#22355=LINE('',#51411,#26054); +#22356=LINE('',#51415,#26055); +#22357=LINE('',#51419,#26056); +#22358=LINE('',#51423,#26057); +#22359=LINE('',#51427,#26058); +#22360=LINE('',#51431,#26059); +#22361=LINE('',#51435,#26060); +#22362=LINE('',#51437,#26061); +#22363=LINE('',#51439,#26062); +#22364=LINE('',#51443,#26063); +#22365=LINE('',#51447,#26064); +#22366=LINE('',#51451,#26065); +#22367=LINE('',#51455,#26066); +#22368=LINE('',#51459,#26067); +#22369=LINE('',#51463,#26068); +#22370=LINE('',#51465,#26069); +#22371=LINE('',#51467,#26070); +#22372=LINE('',#51471,#26071); +#22373=LINE('',#51475,#26072); +#22374=LINE('',#51479,#26073); +#22375=LINE('',#51483,#26074); +#22376=LINE('',#51487,#26075); +#22377=LINE('',#51491,#26076); +#22378=LINE('',#51493,#26077); +#22379=LINE('',#51495,#26078); +#22380=LINE('',#51499,#26079); +#22381=LINE('',#51503,#26080); +#22382=LINE('',#51507,#26081); +#22383=LINE('',#51511,#26082); +#22384=LINE('',#51515,#26083); +#22385=LINE('',#51519,#26084); +#22386=LINE('',#51521,#26085); +#22387=LINE('',#51523,#26086); +#22388=LINE('',#51527,#26087); +#22389=LINE('',#51531,#26088); +#22390=LINE('',#51535,#26089); +#22391=LINE('',#51539,#26090); +#22392=LINE('',#51543,#26091); +#22393=LINE('',#51547,#26092); +#22394=LINE('',#51549,#26093); +#22395=LINE('',#51551,#26094); +#22396=LINE('',#51555,#26095); +#22397=LINE('',#51559,#26096); +#22398=LINE('',#51563,#26097); +#22399=LINE('',#51567,#26098); +#22400=LINE('',#51571,#26099); +#22401=LINE('',#51575,#26100); +#22402=LINE('',#51577,#26101); +#22403=LINE('',#51579,#26102); +#22404=LINE('',#51583,#26103); +#22405=LINE('',#51587,#26104); +#22406=LINE('',#51591,#26105); +#22407=LINE('',#51595,#26106); +#22408=LINE('',#51599,#26107); +#22409=LINE('',#51603,#26108); +#22410=LINE('',#51605,#26109); +#22411=LINE('',#51607,#26110); +#22412=LINE('',#51611,#26111); +#22413=LINE('',#51615,#26112); +#22414=LINE('',#51619,#26113); +#22415=LINE('',#51623,#26114); +#22416=LINE('',#51627,#26115); +#22417=LINE('',#51631,#26116); +#22418=LINE('',#51633,#26117); +#22419=LINE('',#51635,#26118); +#22420=LINE('',#51637,#26119); +#22421=LINE('',#51640,#26120); +#22422=LINE('',#51642,#26121); +#22423=LINE('',#51644,#26122); +#22424=LINE('',#51648,#26123); +#22425=LINE('',#51652,#26124); +#22426=LINE('',#51656,#26125); +#22427=LINE('',#51660,#26126); +#22428=LINE('',#51664,#26127); +#22429=LINE('',#51668,#26128); +#22430=LINE('',#51670,#26129); +#22431=LINE('',#51672,#26130); +#22432=LINE('',#51676,#26131); +#22433=LINE('',#51680,#26132); +#22434=LINE('',#51684,#26133); +#22435=LINE('',#51688,#26134); +#22436=LINE('',#51692,#26135); +#22437=LINE('',#51696,#26136); +#22438=LINE('',#51698,#26137); +#22439=LINE('',#51700,#26138); +#22440=LINE('',#51704,#26139); +#22441=LINE('',#51708,#26140); +#22442=LINE('',#51712,#26141); +#22443=LINE('',#51716,#26142); +#22444=LINE('',#51720,#26143); +#22445=LINE('',#51724,#26144); +#22446=LINE('',#51726,#26145); +#22447=LINE('',#51728,#26146); +#22448=LINE('',#51732,#26147); +#22449=LINE('',#51736,#26148); +#22450=LINE('',#51740,#26149); +#22451=LINE('',#51744,#26150); +#22452=LINE('',#51748,#26151); +#22453=LINE('',#51752,#26152); +#22454=LINE('',#51754,#26153); +#22455=LINE('',#51756,#26154); +#22456=LINE('',#51760,#26155); +#22457=LINE('',#51764,#26156); +#22458=LINE('',#51768,#26157); +#22459=LINE('',#51772,#26158); +#22460=LINE('',#51776,#26159); +#22461=LINE('',#51780,#26160); +#22462=LINE('',#51782,#26161); +#22463=LINE('',#51784,#26162); +#22464=LINE('',#51788,#26163); +#22465=LINE('',#51792,#26164); +#22466=LINE('',#51796,#26165); +#22467=LINE('',#51800,#26166); +#22468=LINE('',#51804,#26167); +#22469=LINE('',#51808,#26168); +#22470=LINE('',#51810,#26169); +#22471=LINE('',#51812,#26170); +#22472=LINE('',#51816,#26171); +#22473=LINE('',#51820,#26172); +#22474=LINE('',#51824,#26173); +#22475=LINE('',#51828,#26174); +#22476=LINE('',#51832,#26175); +#22477=LINE('',#51836,#26176); +#22478=LINE('',#51838,#26177); +#22479=LINE('',#51840,#26178); +#22480=LINE('',#51844,#26179); +#22481=LINE('',#51848,#26180); +#22482=LINE('',#51852,#26181); +#22483=LINE('',#51856,#26182); +#22484=LINE('',#51860,#26183); +#22485=LINE('',#51864,#26184); +#22486=LINE('',#51866,#26185); +#22487=LINE('',#51868,#26186); +#22488=LINE('',#51872,#26187); +#22489=LINE('',#51876,#26188); +#22490=LINE('',#51880,#26189); +#22491=LINE('',#51884,#26190); +#22492=LINE('',#51888,#26191); +#22493=LINE('',#51892,#26192); +#22494=LINE('',#51894,#26193); +#22495=LINE('',#51896,#26194); +#22496=LINE('',#51900,#26195); +#22497=LINE('',#51904,#26196); +#22498=LINE('',#51908,#26197); +#22499=LINE('',#51912,#26198); +#22500=LINE('',#51916,#26199); +#22501=LINE('',#51920,#26200); +#22502=LINE('',#51922,#26201); +#22503=LINE('',#51924,#26202); +#22504=LINE('',#51928,#26203); +#22505=LINE('',#51932,#26204); +#22506=LINE('',#51936,#26205); +#22507=LINE('',#51940,#26206); +#22508=LINE('',#51944,#26207); +#22509=LINE('',#51948,#26208); +#22510=LINE('',#51950,#26209); +#22511=LINE('',#51952,#26210); +#22512=LINE('',#51956,#26211); +#22513=LINE('',#51960,#26212); +#22514=LINE('',#51964,#26213); +#22515=LINE('',#51968,#26214); +#22516=LINE('',#51972,#26215); +#22517=LINE('',#51976,#26216); +#22518=LINE('',#51978,#26217); +#22519=LINE('',#51980,#26218); +#22520=LINE('',#51984,#26219); +#22521=LINE('',#51988,#26220); +#22522=LINE('',#51992,#26221); +#22523=LINE('',#51996,#26222); +#22524=LINE('',#52000,#26223); +#22525=LINE('',#52004,#26224); +#22526=LINE('',#52006,#26225); +#22527=LINE('',#52008,#26226); +#22528=LINE('',#52012,#26227); +#22529=LINE('',#52016,#26228); +#22530=LINE('',#52020,#26229); +#22531=LINE('',#52024,#26230); +#22532=LINE('',#52028,#26231); +#22533=LINE('',#52032,#26232); +#22534=LINE('',#52034,#26233); +#22535=LINE('',#52036,#26234); +#22536=LINE('',#52040,#26235); +#22537=LINE('',#52044,#26236); +#22538=LINE('',#52048,#26237); +#22539=LINE('',#52052,#26238); +#22540=LINE('',#52056,#26239); +#22541=LINE('',#52060,#26240); +#22542=LINE('',#52062,#26241); +#22543=LINE('',#52064,#26242); +#22544=LINE('',#52068,#26243); +#22545=LINE('',#52072,#26244); +#22546=LINE('',#52076,#26245); +#22547=LINE('',#52080,#26246); +#22548=LINE('',#52084,#26247); +#22549=LINE('',#52088,#26248); +#22550=LINE('',#52090,#26249); +#22551=LINE('',#52092,#26250); +#22552=LINE('',#52096,#26251); +#22553=LINE('',#52100,#26252); +#22554=LINE('',#52104,#26253); +#22555=LINE('',#52108,#26254); +#22556=LINE('',#52112,#26255); +#22557=LINE('',#52116,#26256); +#22558=LINE('',#52118,#26257); +#22559=LINE('',#52120,#26258); +#22560=LINE('',#52124,#26259); +#22561=LINE('',#52128,#26260); +#22562=LINE('',#52132,#26261); +#22563=LINE('',#52136,#26262); +#22564=LINE('',#52140,#26263); +#22565=LINE('',#52144,#26264); +#22566=LINE('',#52146,#26265); +#22567=LINE('',#52148,#26266); +#22568=LINE('',#52152,#26267); +#22569=LINE('',#52156,#26268); +#22570=LINE('',#52160,#26269); +#22571=LINE('',#52164,#26270); +#22572=LINE('',#52168,#26271); +#22573=LINE('',#52172,#26272); +#22574=LINE('',#52174,#26273); +#22575=LINE('',#52176,#26274); +#22576=LINE('',#52180,#26275); +#22577=LINE('',#52184,#26276); +#22578=LINE('',#52188,#26277); +#22579=LINE('',#52192,#26278); +#22580=LINE('',#52196,#26279); +#22581=LINE('',#52200,#26280); +#22582=LINE('',#52202,#26281); +#22583=LINE('',#52204,#26282); +#22584=LINE('',#52206,#26283); +#22585=LINE('',#52207,#26284); +#22586=LINE('',#52209,#26285); +#22587=LINE('',#52210,#26286); +#22588=LINE('',#52212,#26287); +#22589=LINE('',#52213,#26288); +#22590=LINE('',#52215,#26289); +#22591=LINE('',#52216,#26290); +#22592=LINE('',#52218,#26291); +#22593=LINE('',#52219,#26292); +#22594=LINE('',#52221,#26293); +#22595=LINE('',#52222,#26294); +#22596=LINE('',#52224,#26295); +#22597=LINE('',#52225,#26296); +#22598=LINE('',#52227,#26297); +#22599=LINE('',#52228,#26298); +#22600=LINE('',#52230,#26299); +#22601=LINE('',#52231,#26300); +#22602=LINE('',#52233,#26301); +#22603=LINE('',#52234,#26302); +#22604=LINE('',#52236,#26303); +#22605=LINE('',#52237,#26304); +#22606=LINE('',#52239,#26305); +#22607=LINE('',#52240,#26306); +#22608=LINE('',#52242,#26307); +#22609=LINE('',#52243,#26308); +#22610=LINE('',#52245,#26309); +#22611=LINE('',#52246,#26310); +#22612=LINE('',#52248,#26311); +#22613=LINE('',#52249,#26312); +#22614=LINE('',#52251,#26313); +#22615=LINE('',#52252,#26314); +#22616=LINE('',#52254,#26315); +#22617=LINE('',#52255,#26316); +#22618=LINE('',#52257,#26317); +#22619=LINE('',#52258,#26318); +#22620=LINE('',#52260,#26319); +#22621=LINE('',#52261,#26320); +#22622=LINE('',#52263,#26321); +#22623=LINE('',#52264,#26322); +#22624=LINE('',#52266,#26323); +#22625=LINE('',#52267,#26324); +#22626=LINE('',#52269,#26325); +#22627=LINE('',#52270,#26326); +#22628=LINE('',#52272,#26327); +#22629=LINE('',#52273,#26328); +#22630=LINE('',#52275,#26329); +#22631=LINE('',#52276,#26330); +#22632=LINE('',#52278,#26331); +#22633=LINE('',#52279,#26332); +#22634=LINE('',#52281,#26333); +#22635=LINE('',#52282,#26334); +#22636=LINE('',#52284,#26335); +#22637=LINE('',#52285,#26336); +#22638=LINE('',#52287,#26337); +#22639=LINE('',#52288,#26338); +#22640=LINE('',#52290,#26339); +#22641=LINE('',#52291,#26340); +#22642=LINE('',#52293,#26341); +#22643=LINE('',#52294,#26342); +#22644=LINE('',#52296,#26343); +#22645=LINE('',#52297,#26344); +#22646=LINE('',#52299,#26345); +#22647=LINE('',#52300,#26346); +#22648=LINE('',#52302,#26347); +#22649=LINE('',#52303,#26348); +#22650=LINE('',#52305,#26349); +#22651=LINE('',#52306,#26350); +#22652=LINE('',#52308,#26351); +#22653=LINE('',#52309,#26352); +#22654=LINE('',#52311,#26353); +#22655=LINE('',#52312,#26354); +#22656=LINE('',#52314,#26355); +#22657=LINE('',#52315,#26356); +#22658=LINE('',#52317,#26357); +#22659=LINE('',#52318,#26358); +#22660=LINE('',#52320,#26359); +#22661=LINE('',#52321,#26360); +#22662=LINE('',#52323,#26361); +#22663=LINE('',#52324,#26362); +#22664=LINE('',#52326,#26363); +#22665=LINE('',#52327,#26364); +#22666=LINE('',#52329,#26365); +#22667=LINE('',#52330,#26366); +#22668=LINE('',#52332,#26367); +#22669=LINE('',#52333,#26368); +#22670=LINE('',#52335,#26369); +#22671=LINE('',#52336,#26370); +#22672=LINE('',#52350,#26371); +#22673=LINE('',#52376,#26372); +#22674=LINE('',#52402,#26373); +#22675=LINE('',#52428,#26374); +#22676=LINE('',#52454,#26375); +#22677=LINE('',#52480,#26376); +#22678=LINE('',#52506,#26377); +#22679=LINE('',#52532,#26378); +#22680=LINE('',#52558,#26379); +#22681=LINE('',#52584,#26380); +#22682=LINE('',#52610,#26381); +#22683=LINE('',#52636,#26382); +#22684=LINE('',#52662,#26383); +#22685=LINE('',#52688,#26384); +#22686=LINE('',#52714,#26385); +#22687=LINE('',#52740,#26386); +#22688=LINE('',#52766,#26387); +#22689=LINE('',#52792,#26388); +#22690=LINE('',#52818,#26389); +#22691=LINE('',#52844,#26390); +#22692=LINE('',#52860,#26391); +#22693=LINE('',#52862,#26392); +#22694=LINE('',#52864,#26393); +#22695=LINE('',#52870,#26394); +#22696=LINE('',#52872,#26395); +#22697=LINE('',#52874,#26396); +#22698=LINE('',#52880,#26397); +#22699=LINE('',#52882,#26398); +#22700=LINE('',#52884,#26399); +#22701=LINE('',#52890,#26400); +#22702=LINE('',#52892,#26401); +#22703=LINE('',#52894,#26402); +#22704=LINE('',#52900,#26403); +#22705=LINE('',#52902,#26404); +#22706=LINE('',#52904,#26405); +#22707=LINE('',#52910,#26406); +#22708=LINE('',#52912,#26407); +#22709=LINE('',#52914,#26408); +#22710=LINE('',#52920,#26409); +#22711=LINE('',#52922,#26410); +#22712=LINE('',#52924,#26411); +#22713=LINE('',#52930,#26412); +#22714=LINE('',#52932,#26413); +#22715=LINE('',#52934,#26414); +#22716=LINE('',#52940,#26415); +#22717=LINE('',#52942,#26416); +#22718=LINE('',#52944,#26417); +#22719=LINE('',#52950,#26418); +#22720=LINE('',#52952,#26419); +#22721=LINE('',#52954,#26420); +#22722=LINE('',#52960,#26421); +#22723=LINE('',#52962,#26422); +#22724=LINE('',#52964,#26423); +#22725=LINE('',#52970,#26424); +#22726=LINE('',#52972,#26425); +#22727=LINE('',#52974,#26426); +#22728=LINE('',#52980,#26427); +#22729=LINE('',#52982,#26428); +#22730=LINE('',#52984,#26429); +#22731=LINE('',#52990,#26430); +#22732=LINE('',#52992,#26431); +#22733=LINE('',#52994,#26432); +#22734=LINE('',#53000,#26433); +#22735=LINE('',#53002,#26434); +#22736=LINE('',#53004,#26435); +#22737=LINE('',#53010,#26436); +#22738=LINE('',#53012,#26437); +#22739=LINE('',#53014,#26438); +#22740=LINE('',#53020,#26439); +#22741=LINE('',#53022,#26440); +#22742=LINE('',#53024,#26441); +#22743=LINE('',#53030,#26442); +#22744=LINE('',#53032,#26443); +#22745=LINE('',#53034,#26444); +#22746=LINE('',#53040,#26445); +#22747=LINE('',#53042,#26446); +#22748=LINE('',#53044,#26447); +#22749=LINE('',#53309,#26448); +#22750=LINE('',#53318,#26449); +#22751=LINE('',#53334,#26450); +#22752=LINE('',#53350,#26451); +#22753=LINE('',#53366,#26452); +#22754=LINE('',#53382,#26453); +#22755=LINE('',#53398,#26454); +#22756=LINE('',#53414,#26455); +#22757=LINE('',#53430,#26456); +#22758=LINE('',#53446,#26457); +#22759=LINE('',#53462,#26458); +#22760=LINE('',#53478,#26459); +#22761=LINE('',#53494,#26460); +#22762=LINE('',#53510,#26461); +#22763=LINE('',#53526,#26462); +#22764=LINE('',#53542,#26463); +#22765=LINE('',#53558,#26464); +#22766=LINE('',#53574,#26465); +#22767=LINE('',#53590,#26466); +#22768=LINE('',#53606,#26467); +#22769=LINE('',#53622,#26468); +#22770=LINE('',#53631,#26469); +#22771=LINE('',#53635,#26470); +#22772=LINE('',#53639,#26471); +#22773=LINE('',#53641,#26472); +#22774=LINE('',#53645,#26473); +#22775=LINE('',#53649,#26474); +#22776=LINE('',#53651,#26475); +#22777=LINE('',#53655,#26476); +#22778=LINE('',#53659,#26477); +#22779=LINE('',#53661,#26478); +#22780=LINE('',#53665,#26479); +#22781=LINE('',#53669,#26480); +#22782=LINE('',#53671,#26481); +#22783=LINE('',#53675,#26482); +#22784=LINE('',#53679,#26483); +#22785=LINE('',#53681,#26484); +#22786=LINE('',#53685,#26485); +#22787=LINE('',#53689,#26486); +#22788=LINE('',#53691,#26487); +#22789=LINE('',#53695,#26488); +#22790=LINE('',#53699,#26489); +#22791=LINE('',#53701,#26490); +#22792=LINE('',#53705,#26491); +#22793=LINE('',#53709,#26492); +#22794=LINE('',#53711,#26493); +#22795=LINE('',#53715,#26494); +#22796=LINE('',#53719,#26495); +#22797=LINE('',#53721,#26496); +#22798=LINE('',#53725,#26497); +#22799=LINE('',#53729,#26498); +#22800=LINE('',#53731,#26499); +#22801=LINE('',#53735,#26500); +#22802=LINE('',#53739,#26501); +#22803=LINE('',#53741,#26502); +#22804=LINE('',#53745,#26503); +#22805=LINE('',#53749,#26504); +#22806=LINE('',#53751,#26505); +#22807=LINE('',#53755,#26506); +#22808=LINE('',#53759,#26507); +#22809=LINE('',#53761,#26508); +#22810=LINE('',#53765,#26509); +#22811=LINE('',#53769,#26510); +#22812=LINE('',#53771,#26511); +#22813=LINE('',#53775,#26512); +#22814=LINE('',#53779,#26513); +#22815=LINE('',#53781,#26514); +#22816=LINE('',#53785,#26515); +#22817=LINE('',#53789,#26516); +#22818=LINE('',#53791,#26517); +#22819=LINE('',#53795,#26518); +#22820=LINE('',#53799,#26519); +#22821=LINE('',#53801,#26520); +#22822=LINE('',#53805,#26521); +#22823=LINE('',#53809,#26522); +#22824=LINE('',#53811,#26523); +#22825=LINE('',#53815,#26524); +#22826=LINE('',#53819,#26525); +#22827=LINE('',#54275,#26526); +#22828=LINE('',#54284,#26527); +#22829=LINE('',#54285,#26528); +#22830=LINE('',#54287,#26529); +#22831=LINE('',#54288,#26530); +#22832=LINE('',#54292,#26531); +#22833=LINE('',#54293,#26532); +#22834=LINE('',#54297,#26533); +#22835=LINE('',#54302,#26534); +#22836=LINE('',#54304,#26535); +#22837=LINE('',#54306,#26536); +#22838=LINE('',#54308,#26537); +#22839=LINE('',#54309,#26538); +#22840=LINE('',#54311,#26539); +#22841=LINE('',#54313,#26540); +#22842=LINE('',#54315,#26541); +#22843=LINE('',#54319,#26542); +#22844=LINE('',#54320,#26543); +#22845=LINE('',#54322,#26544); +#22846=LINE('',#54324,#26545); +#22847=LINE('',#54326,#26546); +#22848=LINE('',#54329,#26547); +#22849=LINE('',#54330,#26548); +#22850=LINE('',#54334,#26549); +#22851=LINE('',#54336,#26550); +#22852=LINE('',#54338,#26551); +#22853=LINE('',#54340,#26552); +#22854=LINE('',#54342,#26553); +#22855=LINE('',#54344,#26554); +#22856=LINE('',#54346,#26555); +#22857=LINE('',#54349,#26556); +#22858=LINE('',#54351,#26557); +#22859=LINE('',#54353,#26558); +#22860=LINE('',#54355,#26559); +#22861=LINE('',#54357,#26560); +#22862=LINE('',#54359,#26561); +#22863=LINE('',#54361,#26562); +#22864=LINE('',#54364,#26563); +#22865=LINE('',#54366,#26564); +#22866=LINE('',#54368,#26565); +#22867=LINE('',#54369,#26566); +#22868=LINE('',#54371,#26567); +#22869=LINE('',#54373,#26568); +#22870=LINE('',#54375,#26569); +#22871=LINE('',#54377,#26570); +#22872=LINE('',#54380,#26571); +#22873=LINE('',#54382,#26572); +#22874=LINE('',#54384,#26573); +#22875=LINE('',#54386,#26574); +#22876=LINE('',#54388,#26575); +#22877=LINE('',#54390,#26576); +#22878=LINE('',#54393,#26577); +#22879=LINE('',#54395,#26578); +#22880=LINE('',#54398,#26579); +#22881=LINE('',#54400,#26580); +#22882=LINE('',#54402,#26581); +#22883=LINE('',#54403,#26582); +#22884=LINE('',#54405,#26583); +#22885=LINE('',#54407,#26584); +#22886=LINE('',#54409,#26585); +#22887=LINE('',#54411,#26586); +#22888=LINE('',#54414,#26587); +#22889=LINE('',#54416,#26588); +#22890=LINE('',#54418,#26589); +#22891=LINE('',#54420,#26590); +#22892=LINE('',#54422,#26591); +#22893=LINE('',#54424,#26592); +#22894=LINE('',#54427,#26593); +#22895=LINE('',#54429,#26594); +#22896=LINE('',#54432,#26595); +#22897=LINE('',#54434,#26596); +#22898=LINE('',#54436,#26597); +#22899=LINE('',#54437,#26598); +#22900=LINE('',#54439,#26599); +#22901=LINE('',#54441,#26600); +#22902=LINE('',#54443,#26601); +#22903=LINE('',#54445,#26602); +#22904=LINE('',#54448,#26603); +#22905=LINE('',#54450,#26604); +#22906=LINE('',#54452,#26605); +#22907=LINE('',#54454,#26606); +#22908=LINE('',#54456,#26607); +#22909=LINE('',#54458,#26608); +#22910=LINE('',#54461,#26609); +#22911=LINE('',#54463,#26610); +#22912=LINE('',#54466,#26611); +#22913=LINE('',#54468,#26612); +#22914=LINE('',#54470,#26613); +#22915=LINE('',#54471,#26614); +#22916=LINE('',#54473,#26615); +#22917=LINE('',#54475,#26616); +#22918=LINE('',#54477,#26617); +#22919=LINE('',#54479,#26618); +#22920=LINE('',#54482,#26619); +#22921=LINE('',#54484,#26620); +#22922=LINE('',#54486,#26621); +#22923=LINE('',#54488,#26622); +#22924=LINE('',#54490,#26623); +#22925=LINE('',#54492,#26624); +#22926=LINE('',#54495,#26625); +#22927=LINE('',#54497,#26626); +#22928=LINE('',#54500,#26627); +#22929=LINE('',#54502,#26628); +#22930=LINE('',#54504,#26629); +#22931=LINE('',#54505,#26630); +#22932=LINE('',#54507,#26631); +#22933=LINE('',#54509,#26632); +#22934=LINE('',#54511,#26633); +#22935=LINE('',#54513,#26634); +#22936=LINE('',#54516,#26635); +#22937=LINE('',#54518,#26636); +#22938=LINE('',#54520,#26637); +#22939=LINE('',#54522,#26638); +#22940=LINE('',#54524,#26639); +#22941=LINE('',#54526,#26640); +#22942=LINE('',#54529,#26641); +#22943=LINE('',#54531,#26642); +#22944=LINE('',#54534,#26643); +#22945=LINE('',#54536,#26644); +#22946=LINE('',#54538,#26645); +#22947=LINE('',#54539,#26646); +#22948=LINE('',#54541,#26647); +#22949=LINE('',#54543,#26648); +#22950=LINE('',#54545,#26649); +#22951=LINE('',#54547,#26650); +#22952=LINE('',#54550,#26651); +#22953=LINE('',#54552,#26652); +#22954=LINE('',#54554,#26653); +#22955=LINE('',#54556,#26654); +#22956=LINE('',#54558,#26655); +#22957=LINE('',#54560,#26656); +#22958=LINE('',#54563,#26657); +#22959=LINE('',#54565,#26658); +#22960=LINE('',#54568,#26659); +#22961=LINE('',#54570,#26660); +#22962=LINE('',#54572,#26661); +#22963=LINE('',#54573,#26662); +#22964=LINE('',#54575,#26663); +#22965=LINE('',#54577,#26664); +#22966=LINE('',#54579,#26665); +#22967=LINE('',#54581,#26666); +#22968=LINE('',#54584,#26667); +#22969=LINE('',#54586,#26668); +#22970=LINE('',#54588,#26669); +#22971=LINE('',#54590,#26670); +#22972=LINE('',#54592,#26671); +#22973=LINE('',#54594,#26672); +#22974=LINE('',#54597,#26673); +#22975=LINE('',#54599,#26674); +#22976=LINE('',#54602,#26675); +#22977=LINE('',#54604,#26676); +#22978=LINE('',#54606,#26677); +#22979=LINE('',#54607,#26678); +#22980=LINE('',#54609,#26679); +#22981=LINE('',#54611,#26680); +#22982=LINE('',#54613,#26681); +#22983=LINE('',#54615,#26682); +#22984=LINE('',#54618,#26683); +#22985=LINE('',#54620,#26684); +#22986=LINE('',#54622,#26685); +#22987=LINE('',#54624,#26686); +#22988=LINE('',#54626,#26687); +#22989=LINE('',#54628,#26688); +#22990=LINE('',#54631,#26689); +#22991=LINE('',#54633,#26690); +#22992=LINE('',#54636,#26691); +#22993=LINE('',#54638,#26692); +#22994=LINE('',#54640,#26693); +#22995=LINE('',#54641,#26694); +#22996=LINE('',#54643,#26695); +#22997=LINE('',#54645,#26696); +#22998=LINE('',#54647,#26697); +#22999=LINE('',#54649,#26698); +#23000=LINE('',#54652,#26699); +#23001=LINE('',#54654,#26700); +#23002=LINE('',#54656,#26701); +#23003=LINE('',#54658,#26702); +#23004=LINE('',#54660,#26703); +#23005=LINE('',#54662,#26704); +#23006=LINE('',#54665,#26705); +#23007=LINE('',#54667,#26706); +#23008=LINE('',#54670,#26707); +#23009=LINE('',#54672,#26708); +#23010=LINE('',#54674,#26709); +#23011=LINE('',#54675,#26710); +#23012=LINE('',#54677,#26711); +#23013=LINE('',#54679,#26712); +#23014=LINE('',#54681,#26713); +#23015=LINE('',#54683,#26714); +#23016=LINE('',#54686,#26715); +#23017=LINE('',#54688,#26716); +#23018=LINE('',#54690,#26717); +#23019=LINE('',#54692,#26718); +#23020=LINE('',#54694,#26719); +#23021=LINE('',#54696,#26720); +#23022=LINE('',#54699,#26721); +#23023=LINE('',#54701,#26722); +#23024=LINE('',#54704,#26723); +#23025=LINE('',#54706,#26724); +#23026=LINE('',#54708,#26725); +#23027=LINE('',#54709,#26726); +#23028=LINE('',#54711,#26727); +#23029=LINE('',#54713,#26728); +#23030=LINE('',#54715,#26729); +#23031=LINE('',#54717,#26730); +#23032=LINE('',#54720,#26731); +#23033=LINE('',#54722,#26732); +#23034=LINE('',#54724,#26733); +#23035=LINE('',#54726,#26734); +#23036=LINE('',#54728,#26735); +#23037=LINE('',#54730,#26736); +#23038=LINE('',#54733,#26737); +#23039=LINE('',#54735,#26738); +#23040=LINE('',#54738,#26739); +#23041=LINE('',#54740,#26740); +#23042=LINE('',#54742,#26741); +#23043=LINE('',#54743,#26742); +#23044=LINE('',#54745,#26743); +#23045=LINE('',#54747,#26744); +#23046=LINE('',#54749,#26745); +#23047=LINE('',#54751,#26746); +#23048=LINE('',#54754,#26747); +#23049=LINE('',#54756,#26748); +#23050=LINE('',#54758,#26749); +#23051=LINE('',#54760,#26750); +#23052=LINE('',#54762,#26751); +#23053=LINE('',#54764,#26752); +#23054=LINE('',#54767,#26753); +#23055=LINE('',#54769,#26754); +#23056=LINE('',#54772,#26755); +#23057=LINE('',#54774,#26756); +#23058=LINE('',#54776,#26757); +#23059=LINE('',#54777,#26758); +#23060=LINE('',#54779,#26759); +#23061=LINE('',#54781,#26760); +#23062=LINE('',#54783,#26761); +#23063=LINE('',#54785,#26762); +#23064=LINE('',#54788,#26763); +#23065=LINE('',#54790,#26764); +#23066=LINE('',#54792,#26765); +#23067=LINE('',#54794,#26766); +#23068=LINE('',#54796,#26767); +#23069=LINE('',#54798,#26768); +#23070=LINE('',#54801,#26769); +#23071=LINE('',#54803,#26770); +#23072=LINE('',#54806,#26771); +#23073=LINE('',#54808,#26772); +#23074=LINE('',#54810,#26773); +#23075=LINE('',#54811,#26774); +#23076=LINE('',#54813,#26775); +#23077=LINE('',#54815,#26776); +#23078=LINE('',#54817,#26777); +#23079=LINE('',#54819,#26778); +#23080=LINE('',#54822,#26779); +#23081=LINE('',#54824,#26780); +#23082=LINE('',#54826,#26781); +#23083=LINE('',#54828,#26782); +#23084=LINE('',#54830,#26783); +#23085=LINE('',#54832,#26784); +#23086=LINE('',#54835,#26785); +#23087=LINE('',#54837,#26786); +#23088=LINE('',#54840,#26787); +#23089=LINE('',#54842,#26788); +#23090=LINE('',#54844,#26789); +#23091=LINE('',#54845,#26790); +#23092=LINE('',#54847,#26791); +#23093=LINE('',#54849,#26792); +#23094=LINE('',#54851,#26793); +#23095=LINE('',#54853,#26794); +#23096=LINE('',#54856,#26795); +#23097=LINE('',#54858,#26796); +#23098=LINE('',#54860,#26797); +#23099=LINE('',#54862,#26798); +#23100=LINE('',#54864,#26799); +#23101=LINE('',#54866,#26800); +#23102=LINE('',#54869,#26801); +#23103=LINE('',#54871,#26802); +#23104=LINE('',#54874,#26803); +#23105=LINE('',#54876,#26804); +#23106=LINE('',#54878,#26805); +#23107=LINE('',#54879,#26806); +#23108=LINE('',#54881,#26807); +#23109=LINE('',#54883,#26808); +#23110=LINE('',#54885,#26809); +#23111=LINE('',#54887,#26810); +#23112=LINE('',#54890,#26811); +#23113=LINE('',#54892,#26812); +#23114=LINE('',#54894,#26813); +#23115=LINE('',#54896,#26814); +#23116=LINE('',#54898,#26815); +#23117=LINE('',#54900,#26816); +#23118=LINE('',#54903,#26817); +#23119=LINE('',#54905,#26818); +#23120=LINE('',#54908,#26819); +#23121=LINE('',#54910,#26820); +#23122=LINE('',#54912,#26821); +#23123=LINE('',#54913,#26822); +#23124=LINE('',#54915,#26823); +#23125=LINE('',#54917,#26824); +#23126=LINE('',#54919,#26825); +#23127=LINE('',#54921,#26826); +#23128=LINE('',#54924,#26827); +#23129=LINE('',#54926,#26828); +#23130=LINE('',#54928,#26829); +#23131=LINE('',#54930,#26830); +#23132=LINE('',#54932,#26831); +#23133=LINE('',#54934,#26832); +#23134=LINE('',#54937,#26833); +#23135=LINE('',#54939,#26834); +#23136=LINE('',#54942,#26835); +#23137=LINE('',#54944,#26836); +#23138=LINE('',#54946,#26837); +#23139=LINE('',#54947,#26838); +#23140=LINE('',#54949,#26839); +#23141=LINE('',#54951,#26840); +#23142=LINE('',#54953,#26841); +#23143=LINE('',#54955,#26842); +#23144=LINE('',#54958,#26843); +#23145=LINE('',#54960,#26844); +#23146=LINE('',#54962,#26845); +#23147=LINE('',#54964,#26846); +#23148=LINE('',#54966,#26847); +#23149=LINE('',#54968,#26848); +#23150=LINE('',#54971,#26849); +#23151=LINE('',#54973,#26850); +#23152=LINE('',#54976,#26851); +#23153=LINE('',#54978,#26852); +#23154=LINE('',#54980,#26853); +#23155=LINE('',#54981,#26854); +#23156=LINE('',#54983,#26855); +#23157=LINE('',#54985,#26856); +#23158=LINE('',#54987,#26857); +#23159=LINE('',#54989,#26858); +#23160=LINE('',#54992,#26859); +#23161=LINE('',#54994,#26860); +#23162=LINE('',#54996,#26861); +#23163=LINE('',#54998,#26862); +#23164=LINE('',#55000,#26863); +#23165=LINE('',#55002,#26864); +#23166=LINE('',#55005,#26865); +#23167=LINE('',#55007,#26866); +#23168=LINE('',#55010,#26867); +#23169=LINE('',#55011,#26868); +#23170=LINE('',#55013,#26869); +#23171=LINE('',#55015,#26870); +#23172=LINE('',#55017,#26871); +#23173=LINE('',#55019,#26872); +#23174=LINE('',#55022,#26873); +#23175=LINE('',#55024,#26874); +#23176=LINE('',#55026,#26875); +#23177=LINE('',#55028,#26876); +#23178=LINE('',#55030,#26877); +#23179=LINE('',#55032,#26878); +#23180=LINE('',#55034,#26879); +#23181=LINE('',#55035,#26880); +#23182=LINE('',#55038,#26881); +#23183=LINE('',#55040,#26882); +#23184=LINE('',#55044,#26883); +#23185=LINE('',#55045,#26884); +#23186=LINE('',#55047,#26885); +#23187=LINE('',#55049,#26886); +#23188=LINE('',#55051,#26887); +#23189=LINE('',#55053,#26888); +#23190=LINE('',#55056,#26889); +#23191=LINE('',#55058,#26890); +#23192=LINE('',#55060,#26891); +#23193=LINE('',#55062,#26892); +#23194=LINE('',#55064,#26893); +#23195=LINE('',#55066,#26894); +#23196=LINE('',#55068,#26895); +#23197=LINE('',#55069,#26896); +#23198=LINE('',#55072,#26897); +#23199=LINE('',#55074,#26898); +#23200=LINE('',#55078,#26899); +#23201=LINE('',#55079,#26900); +#23202=LINE('',#55081,#26901); +#23203=LINE('',#55083,#26902); +#23204=LINE('',#55085,#26903); +#23205=LINE('',#55087,#26904); +#23206=LINE('',#55090,#26905); +#23207=LINE('',#55092,#26906); +#23208=LINE('',#55094,#26907); +#23209=LINE('',#55096,#26908); +#23210=LINE('',#55098,#26909); +#23211=LINE('',#55100,#26910); +#23212=LINE('',#55102,#26911); +#23213=LINE('',#55103,#26912); +#23214=LINE('',#55106,#26913); +#23215=LINE('',#55108,#26914); +#23216=LINE('',#55112,#26915); +#23217=LINE('',#55113,#26916); +#23218=LINE('',#55115,#26917); +#23219=LINE('',#55117,#26918); +#23220=LINE('',#55119,#26919); +#23221=LINE('',#55121,#26920); +#23222=LINE('',#55124,#26921); +#23223=LINE('',#55126,#26922); +#23224=LINE('',#55128,#26923); +#23225=LINE('',#55130,#26924); +#23226=LINE('',#55132,#26925); +#23227=LINE('',#55134,#26926); +#23228=LINE('',#55136,#26927); +#23229=LINE('',#55137,#26928); +#23230=LINE('',#55140,#26929); +#23231=LINE('',#55142,#26930); +#23232=LINE('',#55146,#26931); +#23233=LINE('',#55147,#26932); +#23234=LINE('',#55149,#26933); +#23235=LINE('',#55151,#26934); +#23236=LINE('',#55153,#26935); +#23237=LINE('',#55155,#26936); +#23238=LINE('',#55158,#26937); +#23239=LINE('',#55160,#26938); +#23240=LINE('',#55162,#26939); +#23241=LINE('',#55164,#26940); +#23242=LINE('',#55166,#26941); +#23243=LINE('',#55168,#26942); +#23244=LINE('',#55170,#26943); +#23245=LINE('',#55171,#26944); +#23246=LINE('',#55174,#26945); +#23247=LINE('',#55176,#26946); +#23248=LINE('',#55180,#26947); +#23249=LINE('',#55181,#26948); +#23250=LINE('',#55183,#26949); +#23251=LINE('',#55185,#26950); +#23252=LINE('',#55187,#26951); +#23253=LINE('',#55189,#26952); +#23254=LINE('',#55192,#26953); +#23255=LINE('',#55194,#26954); +#23256=LINE('',#55196,#26955); +#23257=LINE('',#55198,#26956); +#23258=LINE('',#55200,#26957); +#23259=LINE('',#55202,#26958); +#23260=LINE('',#55204,#26959); +#23261=LINE('',#55205,#26960); +#23262=LINE('',#55208,#26961); +#23263=LINE('',#55210,#26962); +#23264=LINE('',#55214,#26963); +#23265=LINE('',#55215,#26964); +#23266=LINE('',#55217,#26965); +#23267=LINE('',#55219,#26966); +#23268=LINE('',#55221,#26967); +#23269=LINE('',#55223,#26968); +#23270=LINE('',#55226,#26969); +#23271=LINE('',#55228,#26970); +#23272=LINE('',#55230,#26971); +#23273=LINE('',#55232,#26972); +#23274=LINE('',#55234,#26973); +#23275=LINE('',#55236,#26974); +#23276=LINE('',#55238,#26975); +#23277=LINE('',#55239,#26976); +#23278=LINE('',#55242,#26977); +#23279=LINE('',#55244,#26978); +#23280=LINE('',#55248,#26979); +#23281=LINE('',#55249,#26980); +#23282=LINE('',#55251,#26981); +#23283=LINE('',#55253,#26982); +#23284=LINE('',#55255,#26983); +#23285=LINE('',#55257,#26984); +#23286=LINE('',#55260,#26985); +#23287=LINE('',#55262,#26986); +#23288=LINE('',#55264,#26987); +#23289=LINE('',#55266,#26988); +#23290=LINE('',#55268,#26989); +#23291=LINE('',#55270,#26990); +#23292=LINE('',#55272,#26991); +#23293=LINE('',#55273,#26992); +#23294=LINE('',#55276,#26993); +#23295=LINE('',#55278,#26994); +#23296=LINE('',#55282,#26995); +#23297=LINE('',#55283,#26996); +#23298=LINE('',#55285,#26997); +#23299=LINE('',#55287,#26998); +#23300=LINE('',#55289,#26999); +#23301=LINE('',#55291,#27000); +#23302=LINE('',#55294,#27001); +#23303=LINE('',#55296,#27002); +#23304=LINE('',#55298,#27003); +#23305=LINE('',#55300,#27004); +#23306=LINE('',#55302,#27005); +#23307=LINE('',#55304,#27006); +#23308=LINE('',#55306,#27007); +#23309=LINE('',#55307,#27008); +#23310=LINE('',#55310,#27009); +#23311=LINE('',#55312,#27010); +#23312=LINE('',#55316,#27011); +#23313=LINE('',#55317,#27012); +#23314=LINE('',#55319,#27013); +#23315=LINE('',#55321,#27014); +#23316=LINE('',#55323,#27015); +#23317=LINE('',#55325,#27016); +#23318=LINE('',#55328,#27017); +#23319=LINE('',#55330,#27018); +#23320=LINE('',#55332,#27019); +#23321=LINE('',#55334,#27020); +#23322=LINE('',#55336,#27021); +#23323=LINE('',#55338,#27022); +#23324=LINE('',#55340,#27023); +#23325=LINE('',#55341,#27024); +#23326=LINE('',#55344,#27025); +#23327=LINE('',#55346,#27026); +#23328=LINE('',#55350,#27027); +#23329=LINE('',#55351,#27028); +#23330=LINE('',#55353,#27029); +#23331=LINE('',#55355,#27030); +#23332=LINE('',#55357,#27031); +#23333=LINE('',#55359,#27032); +#23334=LINE('',#55362,#27033); +#23335=LINE('',#55364,#27034); +#23336=LINE('',#55366,#27035); +#23337=LINE('',#55368,#27036); +#23338=LINE('',#55370,#27037); +#23339=LINE('',#55372,#27038); +#23340=LINE('',#55374,#27039); +#23341=LINE('',#55375,#27040); +#23342=LINE('',#55378,#27041); +#23343=LINE('',#55380,#27042); +#23344=LINE('',#55384,#27043); +#23345=LINE('',#55385,#27044); +#23346=LINE('',#55387,#27045); +#23347=LINE('',#55389,#27046); +#23348=LINE('',#55391,#27047); +#23349=LINE('',#55393,#27048); +#23350=LINE('',#55396,#27049); +#23351=LINE('',#55398,#27050); +#23352=LINE('',#55400,#27051); +#23353=LINE('',#55402,#27052); +#23354=LINE('',#55404,#27053); +#23355=LINE('',#55406,#27054); +#23356=LINE('',#55408,#27055); +#23357=LINE('',#55409,#27056); +#23358=LINE('',#55412,#27057); +#23359=LINE('',#55414,#27058); +#23360=LINE('',#55418,#27059); +#23361=LINE('',#55419,#27060); +#23362=LINE('',#55421,#27061); +#23363=LINE('',#55423,#27062); +#23364=LINE('',#55425,#27063); +#23365=LINE('',#55427,#27064); +#23366=LINE('',#55430,#27065); +#23367=LINE('',#55432,#27066); +#23368=LINE('',#55434,#27067); +#23369=LINE('',#55436,#27068); +#23370=LINE('',#55438,#27069); +#23371=LINE('',#55440,#27070); +#23372=LINE('',#55442,#27071); +#23373=LINE('',#55443,#27072); +#23374=LINE('',#55446,#27073); +#23375=LINE('',#55448,#27074); +#23376=LINE('',#55452,#27075); +#23377=LINE('',#55453,#27076); +#23378=LINE('',#55455,#27077); +#23379=LINE('',#55457,#27078); +#23380=LINE('',#55459,#27079); +#23381=LINE('',#55461,#27080); +#23382=LINE('',#55464,#27081); +#23383=LINE('',#55466,#27082); +#23384=LINE('',#55468,#27083); +#23385=LINE('',#55470,#27084); +#23386=LINE('',#55472,#27085); +#23387=LINE('',#55474,#27086); +#23388=LINE('',#55476,#27087); +#23389=LINE('',#55477,#27088); +#23390=LINE('',#55480,#27089); +#23391=LINE('',#55482,#27090); +#23392=LINE('',#55486,#27091); +#23393=LINE('',#55487,#27092); +#23394=LINE('',#55489,#27093); +#23395=LINE('',#55491,#27094); +#23396=LINE('',#55493,#27095); +#23397=LINE('',#55495,#27096); +#23398=LINE('',#55498,#27097); +#23399=LINE('',#55500,#27098); +#23400=LINE('',#55502,#27099); +#23401=LINE('',#55504,#27100); +#23402=LINE('',#55506,#27101); +#23403=LINE('',#55508,#27102); +#23404=LINE('',#55510,#27103); +#23405=LINE('',#55511,#27104); +#23406=LINE('',#55514,#27105); +#23407=LINE('',#55516,#27106); +#23408=LINE('',#55520,#27107); +#23409=LINE('',#55521,#27108); +#23410=LINE('',#55523,#27109); +#23411=LINE('',#55525,#27110); +#23412=LINE('',#55527,#27111); +#23413=LINE('',#55529,#27112); +#23414=LINE('',#55532,#27113); +#23415=LINE('',#55534,#27114); +#23416=LINE('',#55536,#27115); +#23417=LINE('',#55538,#27116); +#23418=LINE('',#55540,#27117); +#23419=LINE('',#55542,#27118); +#23420=LINE('',#55544,#27119); +#23421=LINE('',#55545,#27120); +#23422=LINE('',#55548,#27121); +#23423=LINE('',#55550,#27122); +#23424=LINE('',#55554,#27123); +#23425=LINE('',#55555,#27124); +#23426=LINE('',#55557,#27125); +#23427=LINE('',#55559,#27126); +#23428=LINE('',#55561,#27127); +#23429=LINE('',#55563,#27128); +#23430=LINE('',#55566,#27129); +#23431=LINE('',#55568,#27130); +#23432=LINE('',#55570,#27131); +#23433=LINE('',#55572,#27132); +#23434=LINE('',#55574,#27133); +#23435=LINE('',#55576,#27134); +#23436=LINE('',#55578,#27135); +#23437=LINE('',#55579,#27136); +#23438=LINE('',#55582,#27137); +#23439=LINE('',#55584,#27138); +#23440=LINE('',#55588,#27139); +#23441=LINE('',#55589,#27140); +#23442=LINE('',#55591,#27141); +#23443=LINE('',#55593,#27142); +#23444=LINE('',#55595,#27143); +#23445=LINE('',#55597,#27144); +#23446=LINE('',#55600,#27145); +#23447=LINE('',#55602,#27146); +#23448=LINE('',#55604,#27147); +#23449=LINE('',#55606,#27148); +#23450=LINE('',#55608,#27149); +#23451=LINE('',#55610,#27150); +#23452=LINE('',#55612,#27151); +#23453=LINE('',#55613,#27152); +#23454=LINE('',#55616,#27153); +#23455=LINE('',#55618,#27154); +#23456=LINE('',#55622,#27155); +#23457=LINE('',#55623,#27156); +#23458=LINE('',#55625,#27157); +#23459=LINE('',#55627,#27158); +#23460=LINE('',#55629,#27159); +#23461=LINE('',#55631,#27160); +#23462=LINE('',#55634,#27161); +#23463=LINE('',#55636,#27162); +#23464=LINE('',#55638,#27163); +#23465=LINE('',#55640,#27164); +#23466=LINE('',#55642,#27165); +#23467=LINE('',#55644,#27166); +#23468=LINE('',#55646,#27167); +#23469=LINE('',#55647,#27168); +#23470=LINE('',#55650,#27169); +#23471=LINE('',#55652,#27170); +#23472=VECTOR('',#36087,1000.); +#23473=VECTOR('',#36088,1000.); +#23474=VECTOR('',#36089,1000.); +#23475=VECTOR('',#36090,1000.); +#23476=VECTOR('',#36091,1000.); +#23477=VECTOR('',#36092,1000.); +#23478=VECTOR('',#36095,1000.); +#23479=VECTOR('',#36096,1000.); +#23480=VECTOR('',#36097,1000.); +#23481=VECTOR('',#36098,1000.); +#23482=VECTOR('',#36099,1000.); +#23483=VECTOR('',#36100,1000.); +#23484=VECTOR('',#36103,1000.); +#23485=VECTOR('',#36104,1000.); +#23486=VECTOR('',#36105,1000.); +#23487=VECTOR('',#36106,1000.); +#23488=VECTOR('',#36107,1000.); +#23489=VECTOR('',#36108,1000.); +#23490=VECTOR('',#36109,1000.); +#23491=VECTOR('',#36110,1000.); +#23492=VECTOR('',#36111,1000.); +#23493=VECTOR('',#36112,1000.); +#23494=VECTOR('',#36113,1000.); +#23495=VECTOR('',#36114,1000.); +#23496=VECTOR('',#36117,1000.); +#23497=VECTOR('',#36120,1000.); +#23498=VECTOR('',#36121,1000.); +#23499=VECTOR('',#36122,1000.); +#23500=VECTOR('',#36123,1000.); +#23501=VECTOR('',#36124,1000.); +#23502=VECTOR('',#36125,1000.); +#23503=VECTOR('',#36126,1000.); +#23504=VECTOR('',#36127,1000.); +#23505=VECTOR('',#36128,1000.); +#23506=VECTOR('',#36129,1000.); +#23507=VECTOR('',#36130,1000.); +#23508=VECTOR('',#36131,1000.); +#23509=VECTOR('',#36132,1000.); +#23510=VECTOR('',#36133,1000.); +#23511=VECTOR('',#36134,1000.); +#23512=VECTOR('',#36137,1000.); +#23513=VECTOR('',#36140,1000.); +#23514=VECTOR('',#36151,1000.); +#23515=VECTOR('',#36154,1000.); +#23516=VECTOR('',#36155,1000.); +#23517=VECTOR('',#36158,1000.); +#23518=VECTOR('',#36161,1000.); +#23519=VECTOR('',#36164,1000.); +#23520=VECTOR('',#36167,1000.); +#23521=VECTOR('',#36170,1000.); +#23522=VECTOR('',#36181,1000.); +#23523=VECTOR('',#36184,1000.); +#23524=VECTOR('',#36189,1000.); +#23525=VECTOR('',#36190,1000.); +#23526=VECTOR('',#36191,1000.); +#23527=VECTOR('',#36192,1000.); +#23528=VECTOR('',#36193,1000.); +#23529=VECTOR('',#36194,1000.); +#23530=VECTOR('',#36197,1000.); +#23531=VECTOR('',#36198,1000.); +#23532=VECTOR('',#36199,1000.); +#23533=VECTOR('',#36200,1000.); +#23534=VECTOR('',#36201,1000.); +#23535=VECTOR('',#36202,1000.); +#23536=VECTOR('',#36203,1000.); +#23537=VECTOR('',#36204,1000.); +#23538=VECTOR('',#36205,1000.); +#23539=VECTOR('',#36206,1000.); +#23540=VECTOR('',#36207,1000.); +#23541=VECTOR('',#36208,1000.); +#23542=VECTOR('',#36209,1000.); +#23543=VECTOR('',#36210,1000.); +#23544=VECTOR('',#36211,1000.); +#23545=VECTOR('',#36212,1000.); +#23546=VECTOR('',#36213,1000.); +#23547=VECTOR('',#36214,1000.); +#23548=VECTOR('',#36215,1000.); +#23549=VECTOR('',#36216,1000.); +#23550=VECTOR('',#36217,1000.); +#23551=VECTOR('',#36218,1000.); +#23552=VECTOR('',#36219,1000.); +#23553=VECTOR('',#36220,1000.); +#23554=VECTOR('',#36221,1000.); +#23555=VECTOR('',#36222,1000.); +#23556=VECTOR('',#36223,1000.); +#23557=VECTOR('',#36224,1000.); +#23558=VECTOR('',#36225,1000.); +#23559=VECTOR('',#36226,1000.); +#23560=VECTOR('',#36227,1000.); +#23561=VECTOR('',#36228,1000.); +#23562=VECTOR('',#36229,1000.); +#23563=VECTOR('',#36230,1000.); +#23564=VECTOR('',#36231,1000.); +#23565=VECTOR('',#36232,1000.); +#23566=VECTOR('',#36233,1000.); +#23567=VECTOR('',#36234,1000.); +#23568=VECTOR('',#36235,1000.); +#23569=VECTOR('',#36236,1000.); +#23570=VECTOR('',#36237,1000.); +#23571=VECTOR('',#36238,1000.); +#23572=VECTOR('',#36239,1000.); +#23573=VECTOR('',#36240,1000.); +#23574=VECTOR('',#36241,1000.); +#23575=VECTOR('',#36242,1000.); +#23576=VECTOR('',#36243,1000.); +#23577=VECTOR('',#36244,1000.); +#23578=VECTOR('',#36245,1000.); +#23579=VECTOR('',#36246,1000.); +#23580=VECTOR('',#36247,1000.); +#23581=VECTOR('',#36248,1000.); +#23582=VECTOR('',#36249,1000.); +#23583=VECTOR('',#36250,1000.); +#23584=VECTOR('',#36251,1000.); +#23585=VECTOR('',#36252,1000.); +#23586=VECTOR('',#36253,1000.); +#23587=VECTOR('',#36254,1000.); +#23588=VECTOR('',#36255,1000.); +#23589=VECTOR('',#36256,1000.); +#23590=VECTOR('',#36257,1000.); +#23591=VECTOR('',#36258,1000.); +#23592=VECTOR('',#36259,1000.); +#23593=VECTOR('',#36260,1000.); +#23594=VECTOR('',#36261,1000.); +#23595=VECTOR('',#36262,1000.); +#23596=VECTOR('',#36263,1000.); +#23597=VECTOR('',#36264,1000.); +#23598=VECTOR('',#36265,1000.); +#23599=VECTOR('',#36266,1000.); +#23600=VECTOR('',#36267,1000.); +#23601=VECTOR('',#36268,1000.); +#23602=VECTOR('',#36269,1000.); +#23603=VECTOR('',#36270,1000.); +#23604=VECTOR('',#36271,1000.); +#23605=VECTOR('',#36272,1000.); +#23606=VECTOR('',#36273,1000.); +#23607=VECTOR('',#36274,1000.); +#23608=VECTOR('',#36275,1000.); +#23609=VECTOR('',#36276,1000.); +#23610=VECTOR('',#36277,1000.); +#23611=VECTOR('',#36278,1000.); +#23612=VECTOR('',#36279,1000.); +#23613=VECTOR('',#36280,1000.); +#23614=VECTOR('',#36281,1000.); +#23615=VECTOR('',#36282,1000.); +#23616=VECTOR('',#36283,1000.); +#23617=VECTOR('',#36284,1000.); +#23618=VECTOR('',#36285,1000.); +#23619=VECTOR('',#36286,1000.); +#23620=VECTOR('',#36287,1000.); +#23621=VECTOR('',#36288,1000.); +#23622=VECTOR('',#36289,1000.); +#23623=VECTOR('',#36290,1000.); +#23624=VECTOR('',#36291,1000.); +#23625=VECTOR('',#36292,1000.); +#23626=VECTOR('',#36293,1000.); +#23627=VECTOR('',#36294,1000.); +#23628=VECTOR('',#36295,1000.); +#23629=VECTOR('',#36296,1000.); +#23630=VECTOR('',#36297,1000.); +#23631=VECTOR('',#36298,1000.); +#23632=VECTOR('',#36299,1000.); +#23633=VECTOR('',#36300,1000.); +#23634=VECTOR('',#36301,1000.); +#23635=VECTOR('',#36302,1000.); +#23636=VECTOR('',#36303,1000.); +#23637=VECTOR('',#36304,1000.); +#23638=VECTOR('',#36305,1000.); +#23639=VECTOR('',#36306,1000.); +#23640=VECTOR('',#36307,1000.); +#23641=VECTOR('',#36308,1000.); +#23642=VECTOR('',#36309,1000.); +#23643=VECTOR('',#36310,1000.); +#23644=VECTOR('',#36311,1000.); +#23645=VECTOR('',#36312,1000.); +#23646=VECTOR('',#36313,1000.); +#23647=VECTOR('',#36314,1000.); +#23648=VECTOR('',#36315,1000.); +#23649=VECTOR('',#36316,1000.); +#23650=VECTOR('',#36317,1000.); +#23651=VECTOR('',#36318,1000.); +#23652=VECTOR('',#36319,1000.); +#23653=VECTOR('',#36320,1000.); +#23654=VECTOR('',#36321,1000.); +#23655=VECTOR('',#36322,1000.); +#23656=VECTOR('',#36323,1000.); +#23657=VECTOR('',#36324,1000.); +#23658=VECTOR('',#36325,1000.); +#23659=VECTOR('',#36326,1000.); +#23660=VECTOR('',#36327,1000.); +#23661=VECTOR('',#36328,1000.); +#23662=VECTOR('',#36329,1000.); +#23663=VECTOR('',#36330,1000.); +#23664=VECTOR('',#36331,1000.); +#23665=VECTOR('',#36332,1000.); +#23666=VECTOR('',#36333,1000.); +#23667=VECTOR('',#36334,1000.); +#23668=VECTOR('',#36335,1000.); +#23669=VECTOR('',#36336,1000.); +#23670=VECTOR('',#36337,1000.); +#23671=VECTOR('',#36338,1000.); +#23672=VECTOR('',#36339,1000.); +#23673=VECTOR('',#36340,1000.); +#23674=VECTOR('',#36341,1000.); +#23675=VECTOR('',#36342,1000.); +#23676=VECTOR('',#36343,1000.); +#23677=VECTOR('',#36344,1000.); +#23678=VECTOR('',#36345,1000.); +#23679=VECTOR('',#36346,1000.); +#23680=VECTOR('',#36347,1000.); +#23681=VECTOR('',#36348,1000.); +#23682=VECTOR('',#36349,1000.); +#23683=VECTOR('',#36350,1000.); +#23684=VECTOR('',#36351,1000.); +#23685=VECTOR('',#36352,1000.); +#23686=VECTOR('',#36353,1000.); +#23687=VECTOR('',#36354,1000.); +#23688=VECTOR('',#36355,1000.); +#23689=VECTOR('',#36356,1000.); +#23690=VECTOR('',#36357,1000.); +#23691=VECTOR('',#36358,1000.); +#23692=VECTOR('',#36359,1000.); +#23693=VECTOR('',#36360,1000.); +#23694=VECTOR('',#36361,1000.); +#23695=VECTOR('',#36362,1000.); +#23696=VECTOR('',#36363,1000.); +#23697=VECTOR('',#36364,1000.); +#23698=VECTOR('',#36365,1000.); +#23699=VECTOR('',#36366,1000.); +#23700=VECTOR('',#36367,1000.); +#23701=VECTOR('',#36368,1000.); +#23702=VECTOR('',#36369,1000.); +#23703=VECTOR('',#36370,1000.); +#23704=VECTOR('',#36371,1000.); +#23705=VECTOR('',#36372,1000.); +#23706=VECTOR('',#36373,1000.); +#23707=VECTOR('',#36374,1000.); +#23708=VECTOR('',#36375,1000.); +#23709=VECTOR('',#36376,1000.); +#23710=VECTOR('',#36377,1000.); +#23711=VECTOR('',#36378,1000.); +#23712=VECTOR('',#36379,1000.); +#23713=VECTOR('',#36380,1000.); +#23714=VECTOR('',#36381,1000.); +#23715=VECTOR('',#36382,1000.); +#23716=VECTOR('',#36383,1000.); +#23717=VECTOR('',#36384,1000.); +#23718=VECTOR('',#36385,1000.); +#23719=VECTOR('',#36386,1000.); +#23720=VECTOR('',#36387,1000.); +#23721=VECTOR('',#36388,1000.); +#23722=VECTOR('',#36389,1000.); +#23723=VECTOR('',#36390,1000.); +#23724=VECTOR('',#36391,1000.); +#23725=VECTOR('',#36392,1000.); +#23726=VECTOR('',#36393,1000.); +#23727=VECTOR('',#36394,1000.); +#23728=VECTOR('',#36395,1000.); +#23729=VECTOR('',#36396,1000.); +#23730=VECTOR('',#36397,1000.); +#23731=VECTOR('',#36398,1000.); +#23732=VECTOR('',#36399,1000.); +#23733=VECTOR('',#36400,1000.); +#23734=VECTOR('',#36401,1000.); +#23735=VECTOR('',#36402,1000.); +#23736=VECTOR('',#36403,1000.); +#23737=VECTOR('',#36404,1000.); +#23738=VECTOR('',#36405,1000.); +#23739=VECTOR('',#36406,1000.); +#23740=VECTOR('',#36407,1000.); +#23741=VECTOR('',#36408,1000.); +#23742=VECTOR('',#36409,1000.); +#23743=VECTOR('',#36410,1000.); +#23744=VECTOR('',#36411,1000.); +#23745=VECTOR('',#36412,1000.); +#23746=VECTOR('',#36413,1000.); +#23747=VECTOR('',#36414,1000.); +#23748=VECTOR('',#36415,1000.); +#23749=VECTOR('',#36416,1000.); +#23750=VECTOR('',#36417,1000.); +#23751=VECTOR('',#36418,1000.); +#23752=VECTOR('',#36419,1000.); +#23753=VECTOR('',#36420,1000.); +#23754=VECTOR('',#36421,1000.); +#23755=VECTOR('',#36422,1000.); +#23756=VECTOR('',#36423,1000.); +#23757=VECTOR('',#36424,1000.); +#23758=VECTOR('',#36425,1000.); +#23759=VECTOR('',#36426,1000.); +#23760=VECTOR('',#36427,1000.); +#23761=VECTOR('',#36428,1000.); +#23762=VECTOR('',#36429,1000.); +#23763=VECTOR('',#36430,1000.); +#23764=VECTOR('',#36431,1000.); +#23765=VECTOR('',#36432,1000.); +#23766=VECTOR('',#36433,1000.); +#23767=VECTOR('',#36434,1000.); +#23768=VECTOR('',#36435,1000.); +#23769=VECTOR('',#36436,1000.); +#23770=VECTOR('',#36437,1000.); +#23771=VECTOR('',#36438,1000.); +#23772=VECTOR('',#36439,1000.); +#23773=VECTOR('',#36442,1000.); +#23774=VECTOR('',#36443,1000.); +#23775=VECTOR('',#36444,1000.); +#23776=VECTOR('',#36445,1000.); +#23777=VECTOR('',#36446,1000.); +#23778=VECTOR('',#36447,1000.); +#23779=VECTOR('',#36450,1000.); +#23780=VECTOR('',#36451,1000.); +#23781=VECTOR('',#36452,1000.); +#23782=VECTOR('',#36453,1000.); +#23783=VECTOR('',#36456,1000.); +#23784=VECTOR('',#36457,1000.); +#23785=VECTOR('',#36458,1000.); +#23786=VECTOR('',#36459,1000.); +#23787=VECTOR('',#36464,1000.); +#23788=VECTOR('',#36465,1000.); +#23789=VECTOR('',#36466,1000.); +#23790=VECTOR('',#36467,1000.); +#23791=VECTOR('',#36468,1000.); +#23792=VECTOR('',#36469,1000.); +#23793=VECTOR('',#36470,1000.); +#23794=VECTOR('',#36473,1000.); +#23795=VECTOR('',#36476,1000.); +#23796=VECTOR('',#36477,1000.); +#23797=VECTOR('',#36478,1000.); +#23798=VECTOR('',#36479,1000.); +#23799=VECTOR('',#36480,1000.); +#23800=VECTOR('',#36481,1000.); +#23801=VECTOR('',#36484,1000.); +#23802=VECTOR('',#36485,1000.); +#23803=VECTOR('',#36486,1000.); +#23804=VECTOR('',#36487,1000.); +#23805=VECTOR('',#36490,1000.); +#23806=VECTOR('',#36491,1000.); +#23807=VECTOR('',#36492,1000.); +#23808=VECTOR('',#36493,1000.); +#23809=VECTOR('',#36498,1000.); +#23810=VECTOR('',#36499,1000.); +#23811=VECTOR('',#36500,1000.); +#23812=VECTOR('',#36501,1000.); +#23813=VECTOR('',#36502,1000.); +#23814=VECTOR('',#36503,1000.); +#23815=VECTOR('',#36504,1000.); +#23816=VECTOR('',#36507,1000.); +#23817=VECTOR('',#36510,1000.); +#23818=VECTOR('',#36511,1000.); +#23819=VECTOR('',#36512,1000.); +#23820=VECTOR('',#36513,1000.); +#23821=VECTOR('',#36514,1000.); +#23822=VECTOR('',#36515,1000.); +#23823=VECTOR('',#36518,1000.); +#23824=VECTOR('',#36519,1000.); +#23825=VECTOR('',#36520,1000.); +#23826=VECTOR('',#36521,1000.); +#23827=VECTOR('',#36524,1000.); +#23828=VECTOR('',#36525,1000.); +#23829=VECTOR('',#36526,1000.); +#23830=VECTOR('',#36527,1000.); +#23831=VECTOR('',#36532,1000.); +#23832=VECTOR('',#36533,1000.); +#23833=VECTOR('',#36534,1000.); +#23834=VECTOR('',#36535,1000.); +#23835=VECTOR('',#36536,1000.); +#23836=VECTOR('',#36537,1000.); +#23837=VECTOR('',#36538,1000.); +#23838=VECTOR('',#36541,1000.); +#23839=VECTOR('',#36544,1000.); +#23840=VECTOR('',#36545,1000.); +#23841=VECTOR('',#36546,1000.); +#23842=VECTOR('',#36547,1000.); +#23843=VECTOR('',#36548,1000.); +#23844=VECTOR('',#36549,1000.); +#23845=VECTOR('',#36552,1000.); +#23846=VECTOR('',#36553,1000.); +#23847=VECTOR('',#36554,1000.); +#23848=VECTOR('',#36555,1000.); +#23849=VECTOR('',#36558,1000.); +#23850=VECTOR('',#36559,1000.); +#23851=VECTOR('',#36560,1000.); +#23852=VECTOR('',#36561,1000.); +#23853=VECTOR('',#36566,1000.); +#23854=VECTOR('',#36567,1000.); +#23855=VECTOR('',#36568,1000.); +#23856=VECTOR('',#36569,1000.); +#23857=VECTOR('',#36570,1000.); +#23858=VECTOR('',#36571,1000.); +#23859=VECTOR('',#36572,1000.); +#23860=VECTOR('',#36575,1000.); +#23861=VECTOR('',#36578,1000.); +#23862=VECTOR('',#36579,1000.); +#23863=VECTOR('',#36580,1000.); +#23864=VECTOR('',#36581,1000.); +#23865=VECTOR('',#36582,1000.); +#23866=VECTOR('',#36583,1000.); +#23867=VECTOR('',#36586,1000.); +#23868=VECTOR('',#36587,1000.); +#23869=VECTOR('',#36588,1000.); +#23870=VECTOR('',#36589,1000.); +#23871=VECTOR('',#36592,1000.); +#23872=VECTOR('',#36593,1000.); +#23873=VECTOR('',#36594,1000.); +#23874=VECTOR('',#36595,1000.); +#23875=VECTOR('',#36600,1000.); +#23876=VECTOR('',#36601,1000.); +#23877=VECTOR('',#36602,1000.); +#23878=VECTOR('',#36603,1000.); +#23879=VECTOR('',#36604,1000.); +#23880=VECTOR('',#36605,1000.); +#23881=VECTOR('',#36606,1000.); +#23882=VECTOR('',#36609,1000.); +#23883=VECTOR('',#36612,1000.); +#23884=VECTOR('',#36613,1000.); +#23885=VECTOR('',#36614,1000.); +#23886=VECTOR('',#36615,1000.); +#23887=VECTOR('',#36616,1000.); +#23888=VECTOR('',#36617,1000.); +#23889=VECTOR('',#36620,1000.); +#23890=VECTOR('',#36621,1000.); +#23891=VECTOR('',#36622,1000.); +#23892=VECTOR('',#36623,1000.); +#23893=VECTOR('',#36626,1000.); +#23894=VECTOR('',#36627,1000.); +#23895=VECTOR('',#36628,1000.); +#23896=VECTOR('',#36629,1000.); +#23897=VECTOR('',#36634,1000.); +#23898=VECTOR('',#36635,1000.); +#23899=VECTOR('',#36636,1000.); +#23900=VECTOR('',#36637,1000.); +#23901=VECTOR('',#36638,1000.); +#23902=VECTOR('',#36639,1000.); +#23903=VECTOR('',#36640,1000.); +#23904=VECTOR('',#36643,1000.); +#23905=VECTOR('',#36646,1000.); +#23906=VECTOR('',#36647,1000.); +#23907=VECTOR('',#36648,1000.); +#23908=VECTOR('',#36649,1000.); +#23909=VECTOR('',#36650,1000.); +#23910=VECTOR('',#36651,1000.); +#23911=VECTOR('',#36654,1000.); +#23912=VECTOR('',#36655,1000.); +#23913=VECTOR('',#36656,1000.); +#23914=VECTOR('',#36657,1000.); +#23915=VECTOR('',#36660,1000.); +#23916=VECTOR('',#36661,1000.); +#23917=VECTOR('',#36662,1000.); +#23918=VECTOR('',#36663,1000.); +#23919=VECTOR('',#36668,1000.); +#23920=VECTOR('',#36669,1000.); +#23921=VECTOR('',#36670,1000.); +#23922=VECTOR('',#36671,1000.); +#23923=VECTOR('',#36672,1000.); +#23924=VECTOR('',#36673,1000.); +#23925=VECTOR('',#36674,1000.); +#23926=VECTOR('',#36677,1000.); +#23927=VECTOR('',#36680,1000.); +#23928=VECTOR('',#36681,1000.); +#23929=VECTOR('',#36682,1000.); +#23930=VECTOR('',#36683,1000.); +#23931=VECTOR('',#36684,1000.); +#23932=VECTOR('',#36685,1000.); +#23933=VECTOR('',#36688,1000.); +#23934=VECTOR('',#36689,1000.); +#23935=VECTOR('',#36690,1000.); +#23936=VECTOR('',#36691,1000.); +#23937=VECTOR('',#36694,1000.); +#23938=VECTOR('',#36695,1000.); +#23939=VECTOR('',#36696,1000.); +#23940=VECTOR('',#36697,1000.); +#23941=VECTOR('',#36702,1000.); +#23942=VECTOR('',#36703,1000.); +#23943=VECTOR('',#36704,1000.); +#23944=VECTOR('',#36705,1000.); +#23945=VECTOR('',#36706,1000.); +#23946=VECTOR('',#36707,1000.); +#23947=VECTOR('',#36708,1000.); +#23948=VECTOR('',#36711,1000.); +#23949=VECTOR('',#36714,1000.); +#23950=VECTOR('',#36715,1000.); +#23951=VECTOR('',#36716,1000.); +#23952=VECTOR('',#36717,1000.); +#23953=VECTOR('',#36718,1000.); +#23954=VECTOR('',#36719,1000.); +#23955=VECTOR('',#36722,1000.); +#23956=VECTOR('',#36723,1000.); +#23957=VECTOR('',#36724,1000.); +#23958=VECTOR('',#36725,1000.); +#23959=VECTOR('',#36728,1000.); +#23960=VECTOR('',#36729,1000.); +#23961=VECTOR('',#36730,1000.); +#23962=VECTOR('',#36731,1000.); +#23963=VECTOR('',#36736,1000.); +#23964=VECTOR('',#36737,1000.); +#23965=VECTOR('',#36738,1000.); +#23966=VECTOR('',#36739,1000.); +#23967=VECTOR('',#36740,1000.); +#23968=VECTOR('',#36741,1000.); +#23969=VECTOR('',#36742,1000.); +#23970=VECTOR('',#36745,1000.); +#23971=VECTOR('',#36748,1000.); +#23972=VECTOR('',#36749,1000.); +#23973=VECTOR('',#36750,1000.); +#23974=VECTOR('',#36751,1000.); +#23975=VECTOR('',#36752,1000.); +#23976=VECTOR('',#36753,1000.); +#23977=VECTOR('',#36756,1000.); +#23978=VECTOR('',#36757,1000.); +#23979=VECTOR('',#36758,1000.); +#23980=VECTOR('',#36759,1000.); +#23981=VECTOR('',#36762,1000.); +#23982=VECTOR('',#36763,1000.); +#23983=VECTOR('',#36764,1000.); +#23984=VECTOR('',#36765,1000.); +#23985=VECTOR('',#36770,1000.); +#23986=VECTOR('',#36771,1000.); +#23987=VECTOR('',#36772,1000.); +#23988=VECTOR('',#36773,1000.); +#23989=VECTOR('',#36774,1000.); +#23990=VECTOR('',#36775,1000.); +#23991=VECTOR('',#36776,1000.); +#23992=VECTOR('',#36779,1000.); +#23993=VECTOR('',#36782,1000.); +#23994=VECTOR('',#36783,1000.); +#23995=VECTOR('',#36784,1000.); +#23996=VECTOR('',#36785,1000.); +#23997=VECTOR('',#36786,1000.); +#23998=VECTOR('',#36787,1000.); +#23999=VECTOR('',#36790,1000.); +#24000=VECTOR('',#36791,1000.); +#24001=VECTOR('',#36792,1000.); +#24002=VECTOR('',#36793,1000.); +#24003=VECTOR('',#36796,1000.); +#24004=VECTOR('',#36797,1000.); +#24005=VECTOR('',#36798,1000.); +#24006=VECTOR('',#36799,1000.); +#24007=VECTOR('',#36804,1000.); +#24008=VECTOR('',#36805,1000.); +#24009=VECTOR('',#36806,1000.); +#24010=VECTOR('',#36807,1000.); +#24011=VECTOR('',#36808,1000.); +#24012=VECTOR('',#36809,1000.); +#24013=VECTOR('',#36810,1000.); +#24014=VECTOR('',#36813,1000.); +#24015=VECTOR('',#36816,1000.); +#24016=VECTOR('',#36817,1000.); +#24017=VECTOR('',#36818,1000.); +#24018=VECTOR('',#36819,1000.); +#24019=VECTOR('',#36820,1000.); +#24020=VECTOR('',#36821,1000.); +#24021=VECTOR('',#36824,1000.); +#24022=VECTOR('',#36825,1000.); +#24023=VECTOR('',#36826,1000.); +#24024=VECTOR('',#36827,1000.); +#24025=VECTOR('',#36830,1000.); +#24026=VECTOR('',#36831,1000.); +#24027=VECTOR('',#36832,1000.); +#24028=VECTOR('',#36833,1000.); +#24029=VECTOR('',#36838,1000.); +#24030=VECTOR('',#36839,1000.); +#24031=VECTOR('',#36840,1000.); +#24032=VECTOR('',#36841,1000.); +#24033=VECTOR('',#36842,1000.); +#24034=VECTOR('',#36843,1000.); +#24035=VECTOR('',#36844,1000.); +#24036=VECTOR('',#36847,1000.); +#24037=VECTOR('',#36850,1000.); +#24038=VECTOR('',#36851,1000.); +#24039=VECTOR('',#36852,1000.); +#24040=VECTOR('',#36853,1000.); +#24041=VECTOR('',#36854,1000.); +#24042=VECTOR('',#36855,1000.); +#24043=VECTOR('',#36858,1000.); +#24044=VECTOR('',#36859,1000.); +#24045=VECTOR('',#36860,1000.); +#24046=VECTOR('',#36861,1000.); +#24047=VECTOR('',#36864,1000.); +#24048=VECTOR('',#36865,1000.); +#24049=VECTOR('',#36866,1000.); +#24050=VECTOR('',#36867,1000.); +#24051=VECTOR('',#36872,1000.); +#24052=VECTOR('',#36873,1000.); +#24053=VECTOR('',#36874,1000.); +#24054=VECTOR('',#36875,1000.); +#24055=VECTOR('',#36876,1000.); +#24056=VECTOR('',#36877,1000.); +#24057=VECTOR('',#36878,1000.); +#24058=VECTOR('',#36881,1000.); +#24059=VECTOR('',#36884,1000.); +#24060=VECTOR('',#36885,1000.); +#24061=VECTOR('',#36886,1000.); +#24062=VECTOR('',#36887,1000.); +#24063=VECTOR('',#36888,1000.); +#24064=VECTOR('',#36889,1000.); +#24065=VECTOR('',#36892,1000.); +#24066=VECTOR('',#36893,1000.); +#24067=VECTOR('',#36894,1000.); +#24068=VECTOR('',#36895,1000.); +#24069=VECTOR('',#36898,1000.); +#24070=VECTOR('',#36899,1000.); +#24071=VECTOR('',#36900,1000.); +#24072=VECTOR('',#36901,1000.); +#24073=VECTOR('',#36906,1000.); +#24074=VECTOR('',#36907,1000.); +#24075=VECTOR('',#36908,1000.); +#24076=VECTOR('',#36909,1000.); +#24077=VECTOR('',#36910,1000.); +#24078=VECTOR('',#36911,1000.); +#24079=VECTOR('',#36912,1000.); +#24080=VECTOR('',#36915,1000.); +#24081=VECTOR('',#36918,1000.); +#24082=VECTOR('',#36919,1000.); +#24083=VECTOR('',#36920,1000.); +#24084=VECTOR('',#36921,1000.); +#24085=VECTOR('',#36922,1000.); +#24086=VECTOR('',#36923,1000.); +#24087=VECTOR('',#36926,1000.); +#24088=VECTOR('',#36927,1000.); +#24089=VECTOR('',#36928,1000.); +#24090=VECTOR('',#36929,1000.); +#24091=VECTOR('',#36932,1000.); +#24092=VECTOR('',#36933,1000.); +#24093=VECTOR('',#36934,1000.); +#24094=VECTOR('',#36935,1000.); +#24095=VECTOR('',#36940,1000.); +#24096=VECTOR('',#36941,1000.); +#24097=VECTOR('',#36942,1000.); +#24098=VECTOR('',#36943,1000.); +#24099=VECTOR('',#36944,1000.); +#24100=VECTOR('',#36945,1000.); +#24101=VECTOR('',#36946,1000.); +#24102=VECTOR('',#36949,1000.); +#24103=VECTOR('',#36952,1000.); +#24104=VECTOR('',#36953,1000.); +#24105=VECTOR('',#36954,1000.); +#24106=VECTOR('',#36955,1000.); +#24107=VECTOR('',#36956,1000.); +#24108=VECTOR('',#36957,1000.); +#24109=VECTOR('',#36960,1000.); +#24110=VECTOR('',#36961,1000.); +#24111=VECTOR('',#36962,1000.); +#24112=VECTOR('',#36963,1000.); +#24113=VECTOR('',#36966,1000.); +#24114=VECTOR('',#36967,1000.); +#24115=VECTOR('',#36968,1000.); +#24116=VECTOR('',#36969,1000.); +#24117=VECTOR('',#36974,1000.); +#24118=VECTOR('',#36975,1000.); +#24119=VECTOR('',#36976,1000.); +#24120=VECTOR('',#36977,1000.); +#24121=VECTOR('',#36978,1000.); +#24122=VECTOR('',#36979,1000.); +#24123=VECTOR('',#36980,1000.); +#24124=VECTOR('',#36983,1000.); +#24125=VECTOR('',#36986,1000.); +#24126=VECTOR('',#36987,1000.); +#24127=VECTOR('',#36988,1000.); +#24128=VECTOR('',#36989,1000.); +#24129=VECTOR('',#36990,1000.); +#24130=VECTOR('',#36991,1000.); +#24131=VECTOR('',#36994,1000.); +#24132=VECTOR('',#36995,1000.); +#24133=VECTOR('',#36996,1000.); +#24134=VECTOR('',#36997,1000.); +#24135=VECTOR('',#37000,1000.); +#24136=VECTOR('',#37001,1000.); +#24137=VECTOR('',#37002,1000.); +#24138=VECTOR('',#37003,1000.); +#24139=VECTOR('',#37008,1000.); +#24140=VECTOR('',#37009,1000.); +#24141=VECTOR('',#37010,1000.); +#24142=VECTOR('',#37011,1000.); +#24143=VECTOR('',#37012,1000.); +#24144=VECTOR('',#37013,1000.); +#24145=VECTOR('',#37014,1000.); +#24146=VECTOR('',#37017,1000.); +#24147=VECTOR('',#37020,1000.); +#24148=VECTOR('',#37021,1000.); +#24149=VECTOR('',#37022,1000.); +#24150=VECTOR('',#37023,1000.); +#24151=VECTOR('',#37024,1000.); +#24152=VECTOR('',#37025,1000.); +#24153=VECTOR('',#37028,1000.); +#24154=VECTOR('',#37029,1000.); +#24155=VECTOR('',#37030,1000.); +#24156=VECTOR('',#37031,1000.); +#24157=VECTOR('',#37034,1000.); +#24158=VECTOR('',#37035,1000.); +#24159=VECTOR('',#37036,1000.); +#24160=VECTOR('',#37037,1000.); +#24161=VECTOR('',#37042,1000.); +#24162=VECTOR('',#37043,1000.); +#24163=VECTOR('',#37044,1000.); +#24164=VECTOR('',#37045,1000.); +#24165=VECTOR('',#37046,1000.); +#24166=VECTOR('',#37047,1000.); +#24167=VECTOR('',#37048,1000.); +#24168=VECTOR('',#37051,1000.); +#24169=VECTOR('',#37054,1000.); +#24170=VECTOR('',#37055,1000.); +#24171=VECTOR('',#37056,1000.); +#24172=VECTOR('',#37057,1000.); +#24173=VECTOR('',#37058,1000.); +#24174=VECTOR('',#37059,1000.); +#24175=VECTOR('',#37062,1000.); +#24176=VECTOR('',#37063,1000.); +#24177=VECTOR('',#37064,1000.); +#24178=VECTOR('',#37065,1000.); +#24179=VECTOR('',#37068,1000.); +#24180=VECTOR('',#37069,1000.); +#24181=VECTOR('',#37070,1000.); +#24182=VECTOR('',#37071,1000.); +#24183=VECTOR('',#37076,1000.); +#24184=VECTOR('',#37077,1000.); +#24185=VECTOR('',#37078,1000.); +#24186=VECTOR('',#37079,1000.); +#24187=VECTOR('',#37080,1000.); +#24188=VECTOR('',#37081,1000.); +#24189=VECTOR('',#37082,1000.); +#24190=VECTOR('',#37085,1000.); +#24191=VECTOR('',#37088,1000.); +#24192=VECTOR('',#37089,1000.); +#24193=VECTOR('',#37090,1000.); +#24194=VECTOR('',#37091,1000.); +#24195=VECTOR('',#37092,1000.); +#24196=VECTOR('',#37093,1000.); +#24197=VECTOR('',#37096,1000.); +#24198=VECTOR('',#37097,1000.); +#24199=VECTOR('',#37100,1000.); +#24200=VECTOR('',#37101,1000.); +#24201=VECTOR('',#37102,1000.); +#24202=VECTOR('',#37103,1000.); +#24203=VECTOR('',#37104,1000.); +#24204=VECTOR('',#37105,1000.); +#24205=VECTOR('',#37106,1000.); +#24206=VECTOR('',#37109,1000.); +#24207=VECTOR('',#37110,1000.); +#24208=VECTOR('',#37111,1000.); +#24209=VECTOR('',#37114,1000.); +#24210=VECTOR('',#37115,1000.); +#24211=VECTOR('',#37116,1000.); +#24212=VECTOR('',#37121,1000.); +#24213=VECTOR('',#37122,1000.); +#24214=VECTOR('',#37123,1000.); +#24215=VECTOR('',#37124,1000.); +#24216=VECTOR('',#37125,1000.); +#24217=VECTOR('',#37126,1000.); +#24218=VECTOR('',#37127,1000.); +#24219=VECTOR('',#37130,1000.); +#24220=VECTOR('',#37131,1000.); +#24221=VECTOR('',#37132,1000.); +#24222=VECTOR('',#37133,1000.); +#24223=VECTOR('',#37134,1000.); +#24224=VECTOR('',#37137,1000.); +#24225=VECTOR('',#37140,1000.); +#24226=VECTOR('',#37143,1000.); +#24227=VECTOR('',#37146,1000.); +#24228=VECTOR('',#37149,1000.); +#24229=VECTOR('',#37152,1000.); +#24230=VECTOR('',#37155,1000.); +#24231=VECTOR('',#37158,1000.); +#24232=VECTOR('',#37161,1000.); +#24233=VECTOR('',#37164,1000.); +#24234=VECTOR('',#37167,1000.); +#24235=VECTOR('',#37170,1000.); +#24236=VECTOR('',#37173,1000.); +#24237=VECTOR('',#37176,1000.); +#24238=VECTOR('',#37179,1000.); +#24239=VECTOR('',#37182,1000.); +#24240=VECTOR('',#37185,1000.); +#24241=VECTOR('',#37188,1000.); +#24242=VECTOR('',#37191,1000.); +#24243=VECTOR('',#37194,1000.); +#24244=VECTOR('',#37195,1000.); +#24245=VECTOR('',#37196,1000.); +#24246=VECTOR('',#37197,1000.); +#24247=VECTOR('',#37198,1000.); +#24248=VECTOR('',#37201,1000.); +#24249=VECTOR('',#37202,1000.); +#24250=VECTOR('',#37203,1000.); +#24251=VECTOR('',#37204,1000.); +#24252=VECTOR('',#37207,1000.); +#24253=VECTOR('',#37210,1000.); +#24254=VECTOR('',#37213,1000.); +#24255=VECTOR('',#37216,1000.); +#24256=VECTOR('',#37219,1000.); +#24257=VECTOR('',#37222,1000.); +#24258=VECTOR('',#37225,1000.); +#24259=VECTOR('',#37228,1000.); +#24260=VECTOR('',#37231,1000.); +#24261=VECTOR('',#37234,1000.); +#24262=VECTOR('',#37237,1000.); +#24263=VECTOR('',#37240,1000.); +#24264=VECTOR('',#37243,1000.); +#24265=VECTOR('',#37246,1000.); +#24266=VECTOR('',#37249,1000.); +#24267=VECTOR('',#37252,1000.); +#24268=VECTOR('',#37255,1000.); +#24269=VECTOR('',#37258,1000.); +#24270=VECTOR('',#37261,1000.); +#24271=VECTOR('',#37264,1000.); +#24272=VECTOR('',#37265,1000.); +#24273=VECTOR('',#37266,1000.); +#24274=VECTOR('',#37267,1000.); +#24275=VECTOR('',#37270,1000.); +#24276=VECTOR('',#37311,1000.); +#24277=VECTOR('',#37314,1000.); +#24278=VECTOR('',#37315,1000.); +#24279=VECTOR('',#37316,1000.); +#24280=VECTOR('',#37319,1000.); +#24281=VECTOR('',#37320,1000.); +#24282=VECTOR('',#37321,1000.); +#24283=VECTOR('',#37324,1000.); +#24284=VECTOR('',#37325,1000.); +#24285=VECTOR('',#37326,1000.); +#24286=VECTOR('',#37329,1000.); +#24287=VECTOR('',#37330,1000.); +#24288=VECTOR('',#37331,1000.); +#24289=VECTOR('',#37334,1000.); +#24290=VECTOR('',#37335,1000.); +#24291=VECTOR('',#37336,1000.); +#24292=VECTOR('',#37339,1000.); +#24293=VECTOR('',#37340,1000.); +#24294=VECTOR('',#37341,1000.); +#24295=VECTOR('',#37344,1000.); +#24296=VECTOR('',#37345,1000.); +#24297=VECTOR('',#37346,1000.); +#24298=VECTOR('',#37349,1000.); +#24299=VECTOR('',#37350,1000.); +#24300=VECTOR('',#37351,1000.); +#24301=VECTOR('',#37354,1000.); +#24302=VECTOR('',#37355,1000.); +#24303=VECTOR('',#37356,1000.); +#24304=VECTOR('',#37359,1000.); +#24305=VECTOR('',#37360,1000.); +#24306=VECTOR('',#37361,1000.); +#24307=VECTOR('',#37364,1000.); +#24308=VECTOR('',#37365,1000.); +#24309=VECTOR('',#37366,1000.); +#24310=VECTOR('',#37369,1000.); +#24311=VECTOR('',#37370,1000.); +#24312=VECTOR('',#37371,1000.); +#24313=VECTOR('',#37374,1000.); +#24314=VECTOR('',#37375,1000.); +#24315=VECTOR('',#37376,1000.); +#24316=VECTOR('',#37379,1000.); +#24317=VECTOR('',#37380,1000.); +#24318=VECTOR('',#37381,1000.); +#24319=VECTOR('',#37384,1000.); +#24320=VECTOR('',#37385,1000.); +#24321=VECTOR('',#37386,1000.); +#24322=VECTOR('',#37389,1000.); +#24323=VECTOR('',#37390,1000.); +#24324=VECTOR('',#37391,1000.); +#24325=VECTOR('',#37392,1000.); +#24326=VECTOR('',#37393,1000.); +#24327=VECTOR('',#37396,1000.); +#24328=VECTOR('',#37397,1000.); +#24329=VECTOR('',#37398,1000.); +#24330=VECTOR('',#37399,1000.); +#24331=VECTOR('',#37400,1000.); +#24332=VECTOR('',#37403,1000.); +#24333=VECTOR('',#37404,1000.); +#24334=VECTOR('',#37405,1000.); +#24335=VECTOR('',#37408,1000.); +#24336=VECTOR('',#37409,1000.); +#24337=VECTOR('',#37412,1000.); +#24338=VECTOR('',#37413,1000.); +#24339=VECTOR('',#37414,1000.); +#24340=VECTOR('',#37417,1000.); +#24341=VECTOR('',#37418,1000.); +#24342=VECTOR('',#37421,1000.); +#24343=VECTOR('',#37422,1000.); +#24344=VECTOR('',#37425,1000.); +#24345=VECTOR('',#37426,1000.); +#24346=VECTOR('',#37429,1000.); +#24347=VECTOR('',#37430,1000.); +#24348=VECTOR('',#37431,1000.); +#24349=VECTOR('',#37432,1000.); +#24350=VECTOR('',#37435,1000.); +#24351=VECTOR('',#37436,1000.); +#24352=VECTOR('',#37437,1000.); +#24353=VECTOR('',#37440,1000.); +#24354=VECTOR('',#37441,1000.); +#24355=VECTOR('',#37442,1000.); +#24356=VECTOR('',#37447,1000.); +#24357=VECTOR('',#37448,1000.); +#24358=VECTOR('',#37449,1000.); +#24359=VECTOR('',#37452,1000.); +#24360=VECTOR('',#37455,1000.); +#24361=VECTOR('',#37460,1000.); +#24362=VECTOR('',#37461,1000.); +#24363=VECTOR('',#37462,1000.); +#24364=VECTOR('',#37465,1000.); +#24365=VECTOR('',#37468,1000.); +#24366=VECTOR('',#37471,1000.); +#24367=VECTOR('',#37472,1000.); +#24368=VECTOR('',#37475,1000.); +#24369=VECTOR('',#37476,1000.); +#24370=VECTOR('',#37479,1000.); +#24371=VECTOR('',#37482,1000.); +#24372=VECTOR('',#37483,1000.); +#24373=VECTOR('',#37484,1000.); +#24374=VECTOR('',#37485,1000.); +#24375=VECTOR('',#37486,1000.); +#24376=VECTOR('',#37487,1000.); +#24377=VECTOR('',#37488,1000.); +#24378=VECTOR('',#37489,1000.); +#24379=VECTOR('',#37490,1000.); +#24380=VECTOR('',#37491,1000.); +#24381=VECTOR('',#37492,1000.); +#24382=VECTOR('',#37493,1000.); +#24383=VECTOR('',#37494,1000.); +#24384=VECTOR('',#37495,1000.); +#24385=VECTOR('',#37496,1000.); +#24386=VECTOR('',#37497,1000.); +#24387=VECTOR('',#37498,1000.); +#24388=VECTOR('',#37499,1000.); +#24389=VECTOR('',#37500,1000.); +#24390=VECTOR('',#37501,1000.); +#24391=VECTOR('',#37502,1000.); +#24392=VECTOR('',#37503,1000.); +#24393=VECTOR('',#37504,1000.); +#24394=VECTOR('',#37505,1000.); +#24395=VECTOR('',#37506,1000.); +#24396=VECTOR('',#37509,1000.); +#24397=VECTOR('',#37510,1000.); +#24398=VECTOR('',#37513,1000.); +#24399=VECTOR('',#37514,1000.); +#24400=VECTOR('',#37519,1000.); +#24401=VECTOR('',#37522,1000.); +#24402=VECTOR('',#37525,1000.); +#24403=VECTOR('',#37528,1000.); +#24404=VECTOR('',#37531,1000.); +#24405=VECTOR('',#37532,1000.); +#24406=VECTOR('',#37533,1000.); +#24407=VECTOR('',#37536,1000.); +#24408=VECTOR('',#37537,1000.); +#24409=VECTOR('',#37538,1000.); +#24410=VECTOR('',#37541,1000.); +#24411=VECTOR('',#37542,1000.); +#24412=VECTOR('',#37543,1000.); +#24413=VECTOR('',#37544,1000.); +#24414=VECTOR('',#37545,1000.); +#24415=VECTOR('',#37546,1000.); +#24416=VECTOR('',#37547,1000.); +#24417=VECTOR('',#37548,1000.); +#24418=VECTOR('',#37549,1000.); +#24419=VECTOR('',#37550,1000.); +#24420=VECTOR('',#37551,1000.); +#24421=VECTOR('',#37552,1000.); +#24422=VECTOR('',#37553,1000.); +#24423=VECTOR('',#37554,1000.); +#24424=VECTOR('',#37555,1000.); +#24425=VECTOR('',#37556,1000.); +#24426=VECTOR('',#37557,1000.); +#24427=VECTOR('',#37558,1000.); +#24428=VECTOR('',#37559,1000.); +#24429=VECTOR('',#37560,1000.); +#24430=VECTOR('',#37561,1000.); +#24431=VECTOR('',#37562,1000.); +#24432=VECTOR('',#37563,1000.); +#24433=VECTOR('',#37580,1000.); +#24434=VECTOR('',#37585,1000.); +#24435=VECTOR('',#37588,1000.); +#24436=VECTOR('',#37593,1000.); +#24437=VECTOR('',#37596,1000.); +#24438=VECTOR('',#37601,1000.); +#24439=VECTOR('',#37604,1000.); +#24440=VECTOR('',#37609,1000.); +#24441=VECTOR('',#37612,1000.); +#24442=VECTOR('',#37617,1000.); +#24443=VECTOR('',#37620,1000.); +#24444=VECTOR('',#37625,1000.); +#24445=VECTOR('',#37628,1000.); +#24446=VECTOR('',#37633,1000.); +#24447=VECTOR('',#37638,1000.); +#24448=VECTOR('',#37643,1000.); +#24449=VECTOR('',#37646,1000.); +#24450=VECTOR('',#37651,1000.); +#24451=VECTOR('',#37654,1000.); +#24452=VECTOR('',#37659,1000.); +#24453=VECTOR('',#37662,1000.); +#24454=VECTOR('',#37667,1000.); +#24455=VECTOR('',#37670,1000.); +#24456=VECTOR('',#37675,1000.); +#24457=VECTOR('',#37678,1000.); +#24458=VECTOR('',#37683,1000.); +#24459=VECTOR('',#37686,1000.); +#24460=VECTOR('',#37691,1000.); +#24461=VECTOR('',#37776,1000.); +#24462=VECTOR('',#37779,1000.); +#24463=VECTOR('',#37784,1000.); +#24464=VECTOR('',#37787,1000.); +#24465=VECTOR('',#37792,1000.); +#24466=VECTOR('',#37795,1000.); +#24467=VECTOR('',#37800,1000.); +#24468=VECTOR('',#37803,1000.); +#24469=VECTOR('',#37808,1000.); +#24470=VECTOR('',#37811,1000.); +#24471=VECTOR('',#37816,1000.); +#24472=VECTOR('',#37819,1000.); +#24473=VECTOR('',#37824,1000.); +#24474=VECTOR('',#37827,1000.); +#24475=VECTOR('',#37832,1000.); +#24476=VECTOR('',#37835,1000.); +#24477=VECTOR('',#37840,1000.); +#24478=VECTOR('',#37843,1000.); +#24479=VECTOR('',#37848,1000.); +#24480=VECTOR('',#37851,1000.); +#24481=VECTOR('',#37856,1000.); +#24482=VECTOR('',#37859,1000.); +#24483=VECTOR('',#37864,1000.); +#24484=VECTOR('',#37867,1000.); +#24485=VECTOR('',#37872,1000.); +#24486=VECTOR('',#37875,1000.); +#24487=VECTOR('',#37880,1000.); +#24488=VECTOR('',#37883,1000.); +#24489=VECTOR('',#37888,1000.); +#24490=VECTOR('',#37891,1000.); +#24491=VECTOR('',#37896,1000.); +#24492=VECTOR('',#37899,1000.); +#24493=VECTOR('',#37904,1000.); +#24494=VECTOR('',#37907,1000.); +#24495=VECTOR('',#37912,1000.); +#24496=VECTOR('',#37915,1000.); +#24497=VECTOR('',#37920,1000.); +#24498=VECTOR('',#37923,1000.); +#24499=VECTOR('',#37928,1000.); +#24500=VECTOR('',#37929,1000.); +#24501=VECTOR('',#37936,1000.); +#24502=VECTOR('',#37937,1000.); +#24503=VECTOR('',#37938,1000.); +#24504=VECTOR('',#37941,1000.); +#24505=VECTOR('',#37942,1000.); +#24506=VECTOR('',#37945,1000.); +#24507=VECTOR('',#37948,1000.); +#24508=VECTOR('',#37949,1000.); +#24509=VECTOR('',#37952,1000.); +#24510=VECTOR('',#37967,1000.); +#24511=VECTOR('',#37968,1000.); +#24512=VECTOR('',#37969,1000.); +#24513=VECTOR('',#37974,1000.); +#24514=VECTOR('',#37977,1000.); +#24515=VECTOR('',#37978,1000.); +#24516=VECTOR('',#37983,1000.); +#24517=VECTOR('',#37986,1000.); +#24518=VECTOR('',#37987,1000.); +#24519=VECTOR('',#37992,1000.); +#24520=VECTOR('',#37995,1000.); +#24521=VECTOR('',#37996,1000.); +#24522=VECTOR('',#38005,1000.); +#24523=VECTOR('',#38006,1000.); +#24524=VECTOR('',#38007,1000.); +#24525=VECTOR('',#38012,1000.); +#24526=VECTOR('',#38017,1000.); +#24527=VECTOR('',#38022,1000.); +#24528=VECTOR('',#38027,1000.); +#24529=VECTOR('',#38032,1000.); +#24530=VECTOR('',#38035,1000.); +#24531=VECTOR('',#38036,1000.); +#24532=VECTOR('',#38041,1000.); +#24533=VECTOR('',#38044,1000.); +#24534=VECTOR('',#38045,1000.); +#24535=VECTOR('',#38048,1000.); +#24536=VECTOR('',#38053,1000.); +#24537=VECTOR('',#38054,1000.); +#24538=VECTOR('',#38055,1000.); +#24539=VECTOR('',#38060,1000.); +#24540=VECTOR('',#38065,1000.); +#24541=VECTOR('',#38070,1000.); +#24542=VECTOR('',#38075,1000.); +#24543=VECTOR('',#38080,1000.); +#24544=VECTOR('',#38083,1000.); +#24545=VECTOR('',#38084,1000.); +#24546=VECTOR('',#38089,1000.); +#24547=VECTOR('',#38092,1000.); +#24548=VECTOR('',#38093,1000.); +#24549=VECTOR('',#38102,1000.); +#24550=VECTOR('',#38103,1000.); +#24551=VECTOR('',#38106,1000.); +#24552=VECTOR('',#38107,1000.); +#24553=VECTOR('',#38112,1000.); +#24554=VECTOR('',#38117,1000.); +#24555=VECTOR('',#38120,1000.); +#24556=VECTOR('',#38125,1000.); +#24557=VECTOR('',#38126,1000.); +#24558=VECTOR('',#38129,1000.); +#24559=VECTOR('',#38130,1000.); +#24560=VECTOR('',#38135,1000.); +#24561=VECTOR('',#38140,1000.); +#24562=VECTOR('',#38141,1000.); +#24563=VECTOR('',#38150,1000.); +#24564=VECTOR('',#38151,1000.); +#24565=VECTOR('',#38152,1000.); +#24566=VECTOR('',#38153,1000.); +#24567=VECTOR('',#38154,1000.); +#24568=VECTOR('',#38155,1000.); +#24569=VECTOR('',#38156,1000.); +#24570=VECTOR('',#38157,1000.); +#24571=VECTOR('',#38158,1000.); +#24572=VECTOR('',#38159,1000.); +#24573=VECTOR('',#38160,1000.); +#24574=VECTOR('',#38161,1000.); +#24575=VECTOR('',#38162,1000.); +#24576=VECTOR('',#38163,1000.); +#24577=VECTOR('',#38164,1000.); +#24578=VECTOR('',#38165,1000.); +#24579=VECTOR('',#38166,1000.); +#24580=VECTOR('',#38167,1000.); +#24581=VECTOR('',#38168,1000.); +#24582=VECTOR('',#38169,1000.); +#24583=VECTOR('',#38170,1000.); +#24584=VECTOR('',#38171,1000.); +#24585=VECTOR('',#38172,1000.); +#24586=VECTOR('',#38173,1000.); +#24587=VECTOR('',#38174,1000.); +#24588=VECTOR('',#38175,1000.); +#24589=VECTOR('',#38176,1000.); +#24590=VECTOR('',#38177,1000.); +#24591=VECTOR('',#38178,1000.); +#24592=VECTOR('',#38179,1000.); +#24593=VECTOR('',#38180,1000.); +#24594=VECTOR('',#38181,1000.); +#24595=VECTOR('',#38182,1000.); +#24596=VECTOR('',#38183,1000.); +#24597=VECTOR('',#38184,1000.); +#24598=VECTOR('',#38185,1000.); +#24599=VECTOR('',#38186,1000.); +#24600=VECTOR('',#38187,1000.); +#24601=VECTOR('',#38188,1000.); +#24602=VECTOR('',#38189,1000.); +#24603=VECTOR('',#38190,1000.); +#24604=VECTOR('',#38191,1000.); +#24605=VECTOR('',#38192,1000.); +#24606=VECTOR('',#38193,1000.); +#24607=VECTOR('',#38194,1000.); +#24608=VECTOR('',#38195,1000.); +#24609=VECTOR('',#38196,1000.); +#24610=VECTOR('',#38197,1000.); +#24611=VECTOR('',#38198,1000.); +#24612=VECTOR('',#38199,1000.); +#24613=VECTOR('',#38200,1000.); +#24614=VECTOR('',#38201,1000.); +#24615=VECTOR('',#38202,1000.); +#24616=VECTOR('',#38203,1000.); +#24617=VECTOR('',#38204,1000.); +#24618=VECTOR('',#38205,1000.); +#24619=VECTOR('',#38206,1000.); +#24620=VECTOR('',#38207,1000.); +#24621=VECTOR('',#38208,1000.); +#24622=VECTOR('',#38209,1000.); +#24623=VECTOR('',#38210,1000.); +#24624=VECTOR('',#38211,1000.); +#24625=VECTOR('',#38212,1000.); +#24626=VECTOR('',#38213,1000.); +#24627=VECTOR('',#38214,1000.); +#24628=VECTOR('',#38215,1000.); +#24629=VECTOR('',#38216,1000.); +#24630=VECTOR('',#38217,1000.); +#24631=VECTOR('',#38218,1000.); +#24632=VECTOR('',#38219,1000.); +#24633=VECTOR('',#38220,1000.); +#24634=VECTOR('',#38221,1000.); +#24635=VECTOR('',#38222,1000.); +#24636=VECTOR('',#38223,1000.); +#24637=VECTOR('',#38224,1000.); +#24638=VECTOR('',#38225,1000.); +#24639=VECTOR('',#38226,1000.); +#24640=VECTOR('',#38227,1000.); +#24641=VECTOR('',#38228,1000.); +#24642=VECTOR('',#38229,1000.); +#24643=VECTOR('',#38230,1000.); +#24644=VECTOR('',#38231,1000.); +#24645=VECTOR('',#38232,1000.); +#24646=VECTOR('',#38233,1000.); +#24647=VECTOR('',#38234,1000.); +#24648=VECTOR('',#38235,1000.); +#24649=VECTOR('',#38236,1000.); +#24650=VECTOR('',#38237,1000.); +#24651=VECTOR('',#38238,1000.); +#24652=VECTOR('',#38239,1000.); +#24653=VECTOR('',#38240,1000.); +#24654=VECTOR('',#38241,1000.); +#24655=VECTOR('',#38242,1000.); +#24656=VECTOR('',#38243,1000.); +#24657=VECTOR('',#38244,1000.); +#24658=VECTOR('',#38245,1000.); +#24659=VECTOR('',#38246,1000.); +#24660=VECTOR('',#38247,1000.); +#24661=VECTOR('',#38248,1000.); +#24662=VECTOR('',#38249,1000.); +#24663=VECTOR('',#38250,1000.); +#24664=VECTOR('',#38251,1000.); +#24665=VECTOR('',#38252,1000.); +#24666=VECTOR('',#38253,1000.); +#24667=VECTOR('',#38254,1000.); +#24668=VECTOR('',#38255,1000.); +#24669=VECTOR('',#38256,1000.); +#24670=VECTOR('',#38257,1000.); +#24671=VECTOR('',#38258,1000.); +#24672=VECTOR('',#38259,1000.); +#24673=VECTOR('',#38260,1000.); +#24674=VECTOR('',#38261,1000.); +#24675=VECTOR('',#38262,1000.); +#24676=VECTOR('',#38263,1000.); +#24677=VECTOR('',#38264,1000.); +#24678=VECTOR('',#38265,1000.); +#24679=VECTOR('',#38266,1000.); +#24680=VECTOR('',#38267,1000.); +#24681=VECTOR('',#38268,1000.); +#24682=VECTOR('',#38269,1000.); +#24683=VECTOR('',#38270,1000.); +#24684=VECTOR('',#38271,1000.); +#24685=VECTOR('',#38272,1000.); +#24686=VECTOR('',#38273,1000.); +#24687=VECTOR('',#38274,1000.); +#24688=VECTOR('',#38275,1000.); +#24689=VECTOR('',#38276,1000.); +#24690=VECTOR('',#38277,1000.); +#24691=VECTOR('',#38278,1000.); +#24692=VECTOR('',#38279,1000.); +#24693=VECTOR('',#38280,1000.); +#24694=VECTOR('',#38281,1000.); +#24695=VECTOR('',#38282,1000.); +#24696=VECTOR('',#38283,1000.); +#24697=VECTOR('',#38284,1000.); +#24698=VECTOR('',#38285,1000.); +#24699=VECTOR('',#38286,1000.); +#24700=VECTOR('',#38287,1000.); +#24701=VECTOR('',#38288,1000.); +#24702=VECTOR('',#38289,1000.); +#24703=VECTOR('',#38290,1000.); +#24704=VECTOR('',#38291,1000.); +#24705=VECTOR('',#38292,1000.); +#24706=VECTOR('',#38293,1000.); +#24707=VECTOR('',#38294,1000.); +#24708=VECTOR('',#38295,1000.); +#24709=VECTOR('',#38296,1000.); +#24710=VECTOR('',#38297,1000.); +#24711=VECTOR('',#38298,1000.); +#24712=VECTOR('',#38299,1000.); +#24713=VECTOR('',#38300,1000.); +#24714=VECTOR('',#38301,1000.); +#24715=VECTOR('',#38302,1000.); +#24716=VECTOR('',#38303,1000.); +#24717=VECTOR('',#38304,1000.); +#24718=VECTOR('',#38305,1000.); +#24719=VECTOR('',#38306,1000.); +#24720=VECTOR('',#38307,1000.); +#24721=VECTOR('',#38308,1000.); +#24722=VECTOR('',#38309,1000.); +#24723=VECTOR('',#38310,1000.); +#24724=VECTOR('',#38311,1000.); +#24725=VECTOR('',#38312,1000.); +#24726=VECTOR('',#38313,1000.); +#24727=VECTOR('',#38316,1000.); +#24728=VECTOR('',#38317,1000.); +#24729=VECTOR('',#38318,1000.); +#24730=VECTOR('',#38319,1000.); +#24731=VECTOR('',#38320,1000.); +#24732=VECTOR('',#38321,1000.); +#24733=VECTOR('',#38322,1000.); +#24734=VECTOR('',#38323,1000.); +#24735=VECTOR('',#38324,1000.); +#24736=VECTOR('',#38325,1000.); +#24737=VECTOR('',#38326,1000.); +#24738=VECTOR('',#38327,1000.); +#24739=VECTOR('',#38328,1000.); +#24740=VECTOR('',#38329,1000.); +#24741=VECTOR('',#38330,1000.); +#24742=VECTOR('',#38331,1000.); +#24743=VECTOR('',#38332,1000.); +#24744=VECTOR('',#38333,1000.); +#24745=VECTOR('',#38334,1000.); +#24746=VECTOR('',#38335,1000.); +#24747=VECTOR('',#38336,1000.); +#24748=VECTOR('',#38337,1000.); +#24749=VECTOR('',#38338,1000.); +#24750=VECTOR('',#38339,1000.); +#24751=VECTOR('',#38340,1000.); +#24752=VECTOR('',#38341,1000.); +#24753=VECTOR('',#38342,1000.); +#24754=VECTOR('',#38343,1000.); +#24755=VECTOR('',#38344,1000.); +#24756=VECTOR('',#38345,1000.); +#24757=VECTOR('',#38346,1000.); +#24758=VECTOR('',#38347,1000.); +#24759=VECTOR('',#38348,1000.); +#24760=VECTOR('',#38349,1000.); +#24761=VECTOR('',#38350,1000.); +#24762=VECTOR('',#38351,1000.); +#24763=VECTOR('',#38352,1000.); +#24764=VECTOR('',#38353,1000.); +#24765=VECTOR('',#38354,1000.); +#24766=VECTOR('',#38355,1000.); +#24767=VECTOR('',#38356,1000.); +#24768=VECTOR('',#38357,1000.); +#24769=VECTOR('',#38358,1000.); +#24770=VECTOR('',#38359,1000.); +#24771=VECTOR('',#38360,1000.); +#24772=VECTOR('',#38361,1000.); +#24773=VECTOR('',#38362,1000.); +#24774=VECTOR('',#38363,1000.); +#24775=VECTOR('',#38364,1000.); +#24776=VECTOR('',#38365,1000.); +#24777=VECTOR('',#38366,1000.); +#24778=VECTOR('',#38367,1000.); +#24779=VECTOR('',#38368,1000.); +#24780=VECTOR('',#38369,1000.); +#24781=VECTOR('',#38370,1000.); +#24782=VECTOR('',#38371,1000.); +#24783=VECTOR('',#38372,1000.); +#24784=VECTOR('',#38373,1000.); +#24785=VECTOR('',#38374,1000.); +#24786=VECTOR('',#38375,1000.); +#24787=VECTOR('',#38376,1000.); +#24788=VECTOR('',#38377,1000.); +#24789=VECTOR('',#38378,1000.); +#24790=VECTOR('',#38379,1000.); +#24791=VECTOR('',#38380,1000.); +#24792=VECTOR('',#38381,1000.); +#24793=VECTOR('',#38382,1000.); +#24794=VECTOR('',#38383,1000.); +#24795=VECTOR('',#38384,1000.); +#24796=VECTOR('',#38385,1000.); +#24797=VECTOR('',#38386,1000.); +#24798=VECTOR('',#38387,1000.); +#24799=VECTOR('',#38388,1000.); +#24800=VECTOR('',#38389,1000.); +#24801=VECTOR('',#38390,1000.); +#24802=VECTOR('',#38391,1000.); +#24803=VECTOR('',#38392,1000.); +#24804=VECTOR('',#38393,1000.); +#24805=VECTOR('',#38394,1000.); +#24806=VECTOR('',#38395,1000.); +#24807=VECTOR('',#38396,1000.); +#24808=VECTOR('',#38397,1000.); +#24809=VECTOR('',#38398,1000.); +#24810=VECTOR('',#38399,1000.); +#24811=VECTOR('',#38400,1000.); +#24812=VECTOR('',#38401,1000.); +#24813=VECTOR('',#38402,1000.); +#24814=VECTOR('',#38403,1000.); +#24815=VECTOR('',#38404,1000.); +#24816=VECTOR('',#38405,1000.); +#24817=VECTOR('',#38406,1000.); +#24818=VECTOR('',#38407,1000.); +#24819=VECTOR('',#38408,1000.); +#24820=VECTOR('',#38409,1000.); +#24821=VECTOR('',#38410,1000.); +#24822=VECTOR('',#38411,1000.); +#24823=VECTOR('',#38412,1000.); +#24824=VECTOR('',#38413,1000.); +#24825=VECTOR('',#38414,1000.); +#24826=VECTOR('',#38415,1000.); +#24827=VECTOR('',#38416,1000.); +#24828=VECTOR('',#38417,1000.); +#24829=VECTOR('',#38418,1000.); +#24830=VECTOR('',#38419,1000.); +#24831=VECTOR('',#38420,1000.); +#24832=VECTOR('',#38421,1000.); +#24833=VECTOR('',#38422,1000.); +#24834=VECTOR('',#38423,1000.); +#24835=VECTOR('',#38424,1000.); +#24836=VECTOR('',#38425,1000.); +#24837=VECTOR('',#38426,1000.); +#24838=VECTOR('',#38427,1000.); +#24839=VECTOR('',#38428,1000.); +#24840=VECTOR('',#38429,1000.); +#24841=VECTOR('',#38430,1000.); +#24842=VECTOR('',#38431,1000.); +#24843=VECTOR('',#38432,1000.); +#24844=VECTOR('',#38433,1000.); +#24845=VECTOR('',#38434,1000.); +#24846=VECTOR('',#38435,1000.); +#24847=VECTOR('',#38436,1000.); +#24848=VECTOR('',#38437,1000.); +#24849=VECTOR('',#38438,1000.); +#24850=VECTOR('',#38439,1000.); +#24851=VECTOR('',#38440,1000.); +#24852=VECTOR('',#38441,1000.); +#24853=VECTOR('',#38442,1000.); +#24854=VECTOR('',#38443,1000.); +#24855=VECTOR('',#38444,1000.); +#24856=VECTOR('',#38445,1000.); +#24857=VECTOR('',#38446,1000.); +#24858=VECTOR('',#38447,1000.); +#24859=VECTOR('',#38448,1000.); +#24860=VECTOR('',#38449,1000.); +#24861=VECTOR('',#38450,1000.); +#24862=VECTOR('',#38451,1000.); +#24863=VECTOR('',#38452,1000.); +#24864=VECTOR('',#38453,1000.); +#24865=VECTOR('',#38454,1000.); +#24866=VECTOR('',#38455,1000.); +#24867=VECTOR('',#38456,1000.); +#24868=VECTOR('',#38457,1000.); +#24869=VECTOR('',#38458,1000.); +#24870=VECTOR('',#38459,1000.); +#24871=VECTOR('',#38460,1000.); +#24872=VECTOR('',#38461,1000.); +#24873=VECTOR('',#38462,1000.); +#24874=VECTOR('',#38463,1000.); +#24875=VECTOR('',#38464,1000.); +#24876=VECTOR('',#38465,1000.); +#24877=VECTOR('',#38466,1000.); +#24878=VECTOR('',#38467,1000.); +#24879=VECTOR('',#38468,1000.); +#24880=VECTOR('',#38469,1000.); +#24881=VECTOR('',#38470,1000.); +#24882=VECTOR('',#38471,1000.); +#24883=VECTOR('',#38472,1000.); +#24884=VECTOR('',#38473,1000.); +#24885=VECTOR('',#38474,1000.); +#24886=VECTOR('',#38475,1000.); +#24887=VECTOR('',#38476,1000.); +#24888=VECTOR('',#38477,1000.); +#24889=VECTOR('',#38478,1000.); +#24890=VECTOR('',#38479,1000.); +#24891=VECTOR('',#38482,1000.); +#24892=VECTOR('',#38483,1000.); +#24893=VECTOR('',#38484,1000.); +#24894=VECTOR('',#38485,1000.); +#24895=VECTOR('',#38486,1000.); +#24896=VECTOR('',#38487,1000.); +#24897=VECTOR('',#38488,1000.); +#24898=VECTOR('',#38489,1000.); +#24899=VECTOR('',#38490,1000.); +#24900=VECTOR('',#38491,1000.); +#24901=VECTOR('',#38492,1000.); +#24902=VECTOR('',#38493,1000.); +#24903=VECTOR('',#38494,1000.); +#24904=VECTOR('',#38495,1000.); +#24905=VECTOR('',#38496,1000.); +#24906=VECTOR('',#38497,1000.); +#24907=VECTOR('',#38498,1000.); +#24908=VECTOR('',#38499,1000.); +#24909=VECTOR('',#38500,1000.); +#24910=VECTOR('',#38501,1000.); +#24911=VECTOR('',#38502,1000.); +#24912=VECTOR('',#38503,1000.); +#24913=VECTOR('',#38504,1000.); +#24914=VECTOR('',#38505,1000.); +#24915=VECTOR('',#38506,1000.); +#24916=VECTOR('',#38507,1000.); +#24917=VECTOR('',#38508,1000.); +#24918=VECTOR('',#38509,1000.); +#24919=VECTOR('',#38510,1000.); +#24920=VECTOR('',#38511,1000.); +#24921=VECTOR('',#38512,1000.); +#24922=VECTOR('',#38513,1000.); +#24923=VECTOR('',#38514,1000.); +#24924=VECTOR('',#38515,1000.); +#24925=VECTOR('',#38516,1000.); +#24926=VECTOR('',#38517,1000.); +#24927=VECTOR('',#38518,1000.); +#24928=VECTOR('',#38519,1000.); +#24929=VECTOR('',#38520,1000.); +#24930=VECTOR('',#38521,1000.); +#24931=VECTOR('',#38522,1000.); +#24932=VECTOR('',#38523,1000.); +#24933=VECTOR('',#38524,1000.); +#24934=VECTOR('',#38525,1000.); +#24935=VECTOR('',#38526,1000.); +#24936=VECTOR('',#38527,1000.); +#24937=VECTOR('',#38528,1000.); +#24938=VECTOR('',#38529,1000.); +#24939=VECTOR('',#38530,1000.); +#24940=VECTOR('',#38531,1000.); +#24941=VECTOR('',#38532,1000.); +#24942=VECTOR('',#38533,1000.); +#24943=VECTOR('',#38534,1000.); +#24944=VECTOR('',#38535,1000.); +#24945=VECTOR('',#38536,1000.); +#24946=VECTOR('',#38537,1000.); +#24947=VECTOR('',#38538,1000.); +#24948=VECTOR('',#38539,1000.); +#24949=VECTOR('',#38540,1000.); +#24950=VECTOR('',#38541,1000.); +#24951=VECTOR('',#38542,1000.); +#24952=VECTOR('',#38543,1000.); +#24953=VECTOR('',#38544,1000.); +#24954=VECTOR('',#38545,1000.); +#24955=VECTOR('',#38546,1000.); +#24956=VECTOR('',#38547,1000.); +#24957=VECTOR('',#38548,1000.); +#24958=VECTOR('',#38549,1000.); +#24959=VECTOR('',#38550,1000.); +#24960=VECTOR('',#38551,1000.); +#24961=VECTOR('',#38552,1000.); +#24962=VECTOR('',#38553,1000.); +#24963=VECTOR('',#38554,1000.); +#24964=VECTOR('',#38555,1000.); +#24965=VECTOR('',#38556,1000.); +#24966=VECTOR('',#38557,1000.); +#24967=VECTOR('',#38558,1000.); +#24968=VECTOR('',#38559,1000.); +#24969=VECTOR('',#38560,1000.); +#24970=VECTOR('',#38561,1000.); +#24971=VECTOR('',#38562,1000.); +#24972=VECTOR('',#38563,1000.); +#24973=VECTOR('',#38564,1000.); +#24974=VECTOR('',#38565,1000.); +#24975=VECTOR('',#38566,1000.); +#24976=VECTOR('',#38567,1000.); +#24977=VECTOR('',#38568,1000.); +#24978=VECTOR('',#38569,1000.); +#24979=VECTOR('',#38570,1000.); +#24980=VECTOR('',#38571,1000.); +#24981=VECTOR('',#38572,1000.); +#24982=VECTOR('',#38573,1000.); +#24983=VECTOR('',#38574,1000.); +#24984=VECTOR('',#38575,1000.); +#24985=VECTOR('',#38576,1000.); +#24986=VECTOR('',#38577,1000.); +#24987=VECTOR('',#38578,1000.); +#24988=VECTOR('',#38579,1000.); +#24989=VECTOR('',#38580,1000.); +#24990=VECTOR('',#38581,1000.); +#24991=VECTOR('',#38582,1000.); +#24992=VECTOR('',#38583,1000.); +#24993=VECTOR('',#38584,1000.); +#24994=VECTOR('',#38585,1000.); +#24995=VECTOR('',#38586,1000.); +#24996=VECTOR('',#38587,1000.); +#24997=VECTOR('',#38588,1000.); +#24998=VECTOR('',#38589,1000.); +#24999=VECTOR('',#38590,1000.); +#25000=VECTOR('',#38591,1000.); +#25001=VECTOR('',#38592,1000.); +#25002=VECTOR('',#38593,1000.); +#25003=VECTOR('',#38594,1000.); +#25004=VECTOR('',#38595,1000.); +#25005=VECTOR('',#38596,1000.); +#25006=VECTOR('',#38597,1000.); +#25007=VECTOR('',#38598,1000.); +#25008=VECTOR('',#38599,1000.); +#25009=VECTOR('',#38600,1000.); +#25010=VECTOR('',#38601,1000.); +#25011=VECTOR('',#38602,1000.); +#25012=VECTOR('',#38603,1000.); +#25013=VECTOR('',#38604,1000.); +#25014=VECTOR('',#38605,1000.); +#25015=VECTOR('',#38606,1000.); +#25016=VECTOR('',#38607,1000.); +#25017=VECTOR('',#38608,1000.); +#25018=VECTOR('',#38609,1000.); +#25019=VECTOR('',#38610,1000.); +#25020=VECTOR('',#38611,1000.); +#25021=VECTOR('',#38612,1000.); +#25022=VECTOR('',#38613,1000.); +#25023=VECTOR('',#38614,1000.); +#25024=VECTOR('',#38615,1000.); +#25025=VECTOR('',#38616,1000.); +#25026=VECTOR('',#38617,1000.); +#25027=VECTOR('',#38618,1000.); +#25028=VECTOR('',#38619,1000.); +#25029=VECTOR('',#38620,1000.); +#25030=VECTOR('',#38621,1000.); +#25031=VECTOR('',#38622,1000.); +#25032=VECTOR('',#38623,1000.); +#25033=VECTOR('',#38624,1000.); +#25034=VECTOR('',#38625,1000.); +#25035=VECTOR('',#38626,1000.); +#25036=VECTOR('',#38627,1000.); +#25037=VECTOR('',#38628,1000.); +#25038=VECTOR('',#38629,1000.); +#25039=VECTOR('',#38630,1000.); +#25040=VECTOR('',#38631,1000.); +#25041=VECTOR('',#38632,1000.); +#25042=VECTOR('',#38633,1000.); +#25043=VECTOR('',#38634,1000.); +#25044=VECTOR('',#38635,1000.); +#25045=VECTOR('',#38636,1000.); +#25046=VECTOR('',#38637,1000.); +#25047=VECTOR('',#38638,1000.); +#25048=VECTOR('',#38639,1000.); +#25049=VECTOR('',#38640,1000.); +#25050=VECTOR('',#38641,1000.); +#25051=VECTOR('',#38642,1000.); +#25052=VECTOR('',#38643,1000.); +#25053=VECTOR('',#38644,1000.); +#25054=VECTOR('',#38645,1000.); +#25055=VECTOR('',#38648,1000.); +#25056=VECTOR('',#38649,1000.); +#25057=VECTOR('',#38650,1000.); +#25058=VECTOR('',#38651,1000.); +#25059=VECTOR('',#38652,1000.); +#25060=VECTOR('',#38653,1000.); +#25061=VECTOR('',#38654,1000.); +#25062=VECTOR('',#38655,1000.); +#25063=VECTOR('',#38656,1000.); +#25064=VECTOR('',#38657,1000.); +#25065=VECTOR('',#38658,1000.); +#25066=VECTOR('',#38659,1000.); +#25067=VECTOR('',#38660,1000.); +#25068=VECTOR('',#38661,1000.); +#25069=VECTOR('',#38662,1000.); +#25070=VECTOR('',#38663,1000.); +#25071=VECTOR('',#38664,1000.); +#25072=VECTOR('',#38665,1000.); +#25073=VECTOR('',#38666,1000.); +#25074=VECTOR('',#38667,1000.); +#25075=VECTOR('',#38668,1000.); +#25076=VECTOR('',#38669,1000.); +#25077=VECTOR('',#38670,1000.); +#25078=VECTOR('',#38671,1000.); +#25079=VECTOR('',#38672,1000.); +#25080=VECTOR('',#38673,1000.); +#25081=VECTOR('',#38674,1000.); +#25082=VECTOR('',#38675,1000.); +#25083=VECTOR('',#38676,1000.); +#25084=VECTOR('',#38677,1000.); +#25085=VECTOR('',#38678,1000.); +#25086=VECTOR('',#38679,1000.); +#25087=VECTOR('',#38680,1000.); +#25088=VECTOR('',#38681,1000.); +#25089=VECTOR('',#38682,1000.); +#25090=VECTOR('',#38683,1000.); +#25091=VECTOR('',#38684,1000.); +#25092=VECTOR('',#38685,1000.); +#25093=VECTOR('',#38686,1000.); +#25094=VECTOR('',#38687,1000.); +#25095=VECTOR('',#38688,1000.); +#25096=VECTOR('',#38689,1000.); +#25097=VECTOR('',#38690,1000.); +#25098=VECTOR('',#38691,1000.); +#25099=VECTOR('',#38692,1000.); +#25100=VECTOR('',#38693,1000.); +#25101=VECTOR('',#38694,1000.); +#25102=VECTOR('',#38695,1000.); +#25103=VECTOR('',#38696,1000.); +#25104=VECTOR('',#38697,1000.); +#25105=VECTOR('',#38698,1000.); +#25106=VECTOR('',#38699,1000.); +#25107=VECTOR('',#38700,1000.); +#25108=VECTOR('',#38701,1000.); +#25109=VECTOR('',#38702,1000.); +#25110=VECTOR('',#38703,1000.); +#25111=VECTOR('',#38704,1000.); +#25112=VECTOR('',#38705,1000.); +#25113=VECTOR('',#38706,1000.); +#25114=VECTOR('',#38707,1000.); +#25115=VECTOR('',#38708,1000.); +#25116=VECTOR('',#38709,1000.); +#25117=VECTOR('',#38710,1000.); +#25118=VECTOR('',#38711,1000.); +#25119=VECTOR('',#38712,1000.); +#25120=VECTOR('',#38713,1000.); +#25121=VECTOR('',#38714,1000.); +#25122=VECTOR('',#38715,1000.); +#25123=VECTOR('',#38716,1000.); +#25124=VECTOR('',#38717,1000.); +#25125=VECTOR('',#38718,1000.); +#25126=VECTOR('',#38719,1000.); +#25127=VECTOR('',#38720,1000.); +#25128=VECTOR('',#38721,1000.); +#25129=VECTOR('',#38722,1000.); +#25130=VECTOR('',#38723,1000.); +#25131=VECTOR('',#38724,1000.); +#25132=VECTOR('',#38725,1000.); +#25133=VECTOR('',#38726,1000.); +#25134=VECTOR('',#38727,1000.); +#25135=VECTOR('',#38728,1000.); +#25136=VECTOR('',#38729,1000.); +#25137=VECTOR('',#38730,1000.); +#25138=VECTOR('',#38731,1000.); +#25139=VECTOR('',#38732,1000.); +#25140=VECTOR('',#38733,1000.); +#25141=VECTOR('',#38734,1000.); +#25142=VECTOR('',#38735,1000.); +#25143=VECTOR('',#38736,1000.); +#25144=VECTOR('',#38737,1000.); +#25145=VECTOR('',#38738,1000.); +#25146=VECTOR('',#38739,1000.); +#25147=VECTOR('',#38740,1000.); +#25148=VECTOR('',#38741,1000.); +#25149=VECTOR('',#38742,1000.); +#25150=VECTOR('',#38743,1000.); +#25151=VECTOR('',#38744,1000.); +#25152=VECTOR('',#38745,1000.); +#25153=VECTOR('',#38746,1000.); +#25154=VECTOR('',#38747,1000.); +#25155=VECTOR('',#38748,1000.); +#25156=VECTOR('',#38749,1000.); +#25157=VECTOR('',#38750,1000.); +#25158=VECTOR('',#38751,1000.); +#25159=VECTOR('',#38752,1000.); +#25160=VECTOR('',#38753,1000.); +#25161=VECTOR('',#38754,1000.); +#25162=VECTOR('',#38755,1000.); +#25163=VECTOR('',#38756,1000.); +#25164=VECTOR('',#38757,1000.); +#25165=VECTOR('',#38758,1000.); +#25166=VECTOR('',#38759,1000.); +#25167=VECTOR('',#38760,1000.); +#25168=VECTOR('',#38761,1000.); +#25169=VECTOR('',#38762,1000.); +#25170=VECTOR('',#38763,1000.); +#25171=VECTOR('',#38764,1000.); +#25172=VECTOR('',#38765,1000.); +#25173=VECTOR('',#38766,1000.); +#25174=VECTOR('',#38767,1000.); +#25175=VECTOR('',#38768,1000.); +#25176=VECTOR('',#38769,1000.); +#25177=VECTOR('',#38770,1000.); +#25178=VECTOR('',#38771,1000.); +#25179=VECTOR('',#38772,1000.); +#25180=VECTOR('',#38773,1000.); +#25181=VECTOR('',#38774,1000.); +#25182=VECTOR('',#38775,1000.); +#25183=VECTOR('',#38776,1000.); +#25184=VECTOR('',#38777,1000.); +#25185=VECTOR('',#38778,1000.); +#25186=VECTOR('',#38779,1000.); +#25187=VECTOR('',#38780,1000.); +#25188=VECTOR('',#38781,1000.); +#25189=VECTOR('',#38782,1000.); +#25190=VECTOR('',#38783,1000.); +#25191=VECTOR('',#38784,1000.); +#25192=VECTOR('',#38785,1000.); +#25193=VECTOR('',#38786,1000.); +#25194=VECTOR('',#38787,1000.); +#25195=VECTOR('',#38788,1000.); +#25196=VECTOR('',#38789,1000.); +#25197=VECTOR('',#38790,1000.); +#25198=VECTOR('',#38791,1000.); +#25199=VECTOR('',#38792,1000.); +#25200=VECTOR('',#38793,1000.); +#25201=VECTOR('',#38794,1000.); +#25202=VECTOR('',#38795,1000.); +#25203=VECTOR('',#38796,1000.); +#25204=VECTOR('',#38797,1000.); +#25205=VECTOR('',#38798,1000.); +#25206=VECTOR('',#38799,1000.); +#25207=VECTOR('',#38800,1000.); +#25208=VECTOR('',#38801,1000.); +#25209=VECTOR('',#38802,1000.); +#25210=VECTOR('',#38803,1000.); +#25211=VECTOR('',#38804,1000.); +#25212=VECTOR('',#38805,1000.); +#25213=VECTOR('',#38806,1000.); +#25214=VECTOR('',#38807,1000.); +#25215=VECTOR('',#38808,1000.); +#25216=VECTOR('',#38809,1000.); +#25217=VECTOR('',#38810,1000.); +#25218=VECTOR('',#38811,1000.); +#25219=VECTOR('',#38814,1000.); +#25220=VECTOR('',#38815,1000.); +#25221=VECTOR('',#38818,1000.); +#25222=VECTOR('',#38819,1000.); +#25223=VECTOR('',#38822,1000.); +#25224=VECTOR('',#38823,1000.); +#25225=VECTOR('',#38826,1000.); +#25226=VECTOR('',#38827,1000.); +#25227=VECTOR('',#38830,1000.); +#25228=VECTOR('',#38831,1000.); +#25229=VECTOR('',#38834,1000.); +#25230=VECTOR('',#38835,1000.); +#25231=VECTOR('',#38838,1000.); +#25232=VECTOR('',#38839,1000.); +#25233=VECTOR('',#38842,1000.); +#25234=VECTOR('',#38843,1000.); +#25235=VECTOR('',#38846,1000.); +#25236=VECTOR('',#38847,1000.); +#25237=VECTOR('',#38850,1000.); +#25238=VECTOR('',#38851,1000.); +#25239=VECTOR('',#38854,1000.); +#25240=VECTOR('',#38855,1000.); +#25241=VECTOR('',#38858,1000.); +#25242=VECTOR('',#38859,1000.); +#25243=VECTOR('',#38862,1000.); +#25244=VECTOR('',#38863,1000.); +#25245=VECTOR('',#38866,1000.); +#25246=VECTOR('',#38867,1000.); +#25247=VECTOR('',#38870,1000.); +#25248=VECTOR('',#38871,1000.); +#25249=VECTOR('',#38874,1000.); +#25250=VECTOR('',#38875,1000.); +#25251=VECTOR('',#38878,1000.); +#25252=VECTOR('',#38879,1000.); +#25253=VECTOR('',#38882,1000.); +#25254=VECTOR('',#38883,1000.); +#25255=VECTOR('',#38886,1000.); +#25256=VECTOR('',#38887,1000.); +#25257=VECTOR('',#38890,1000.); +#25258=VECTOR('',#38891,1000.); +#25259=VECTOR('',#38894,1000.); +#25260=VECTOR('',#38895,1000.); +#25261=VECTOR('',#38898,1000.); +#25262=VECTOR('',#38899,1000.); +#25263=VECTOR('',#38902,1000.); +#25264=VECTOR('',#38903,1000.); +#25265=VECTOR('',#38906,1000.); +#25266=VECTOR('',#38907,1000.); +#25267=VECTOR('',#38910,1000.); +#25268=VECTOR('',#38911,1000.); +#25269=VECTOR('',#38914,1000.); +#25270=VECTOR('',#38915,1000.); +#25271=VECTOR('',#38918,1000.); +#25272=VECTOR('',#38919,1000.); +#25273=VECTOR('',#38922,1000.); +#25274=VECTOR('',#38923,1000.); +#25275=VECTOR('',#38926,1000.); +#25276=VECTOR('',#38927,1000.); +#25277=VECTOR('',#38930,1000.); +#25278=VECTOR('',#38931,1000.); +#25279=VECTOR('',#38934,1000.); +#25280=VECTOR('',#38935,1000.); +#25281=VECTOR('',#38938,1000.); +#25282=VECTOR('',#38939,1000.); +#25283=VECTOR('',#38942,1000.); +#25284=VECTOR('',#38943,1000.); +#25285=VECTOR('',#38946,1000.); +#25286=VECTOR('',#38947,1000.); +#25287=VECTOR('',#38950,1000.); +#25288=VECTOR('',#38951,1000.); +#25289=VECTOR('',#38954,1000.); +#25290=VECTOR('',#38955,1000.); +#25291=VECTOR('',#38958,1000.); +#25292=VECTOR('',#38959,1000.); +#25293=VECTOR('',#38962,1000.); +#25294=VECTOR('',#38963,1000.); +#25295=VECTOR('',#38966,1000.); +#25296=VECTOR('',#38967,1000.); +#25297=VECTOR('',#38970,1000.); +#25298=VECTOR('',#38971,1000.); +#25299=VECTOR('',#38974,1000.); +#25300=VECTOR('',#38975,1000.); +#25301=VECTOR('',#38978,1000.); +#25302=VECTOR('',#38979,1000.); +#25303=VECTOR('',#38982,1000.); +#25304=VECTOR('',#38983,1000.); +#25305=VECTOR('',#38986,1000.); +#25306=VECTOR('',#38987,1000.); +#25307=VECTOR('',#38990,1000.); +#25308=VECTOR('',#38991,1000.); +#25309=VECTOR('',#38994,1000.); +#25310=VECTOR('',#38995,1000.); +#25311=VECTOR('',#38998,1000.); +#25312=VECTOR('',#38999,1000.); +#25313=VECTOR('',#39002,1000.); +#25314=VECTOR('',#39003,1000.); +#25315=VECTOR('',#39006,1000.); +#25316=VECTOR('',#39007,1000.); +#25317=VECTOR('',#39010,1000.); +#25318=VECTOR('',#39011,1000.); +#25319=VECTOR('',#39014,1000.); +#25320=VECTOR('',#39015,1000.); +#25321=VECTOR('',#39018,1000.); +#25322=VECTOR('',#39019,1000.); +#25323=VECTOR('',#39022,1000.); +#25324=VECTOR('',#39023,1000.); +#25325=VECTOR('',#39026,1000.); +#25326=VECTOR('',#39027,1000.); +#25327=VECTOR('',#39030,1000.); +#25328=VECTOR('',#39031,1000.); +#25329=VECTOR('',#39034,1000.); +#25330=VECTOR('',#39035,1000.); +#25331=VECTOR('',#39038,1000.); +#25332=VECTOR('',#39039,1000.); +#25333=VECTOR('',#39042,1000.); +#25334=VECTOR('',#39043,1000.); +#25335=VECTOR('',#39046,1000.); +#25336=VECTOR('',#39047,1000.); +#25337=VECTOR('',#39050,1000.); +#25338=VECTOR('',#39051,1000.); +#25339=VECTOR('',#39054,1000.); +#25340=VECTOR('',#39055,1000.); +#25341=VECTOR('',#39058,1000.); +#25342=VECTOR('',#39059,1000.); +#25343=VECTOR('',#39062,1000.); +#25344=VECTOR('',#39063,1000.); +#25345=VECTOR('',#39066,1000.); +#25346=VECTOR('',#39067,1000.); +#25347=VECTOR('',#39070,1000.); +#25348=VECTOR('',#39071,1000.); +#25349=VECTOR('',#39074,1000.); +#25350=VECTOR('',#39075,1000.); +#25351=VECTOR('',#39078,1000.); +#25352=VECTOR('',#39079,1000.); +#25353=VECTOR('',#39082,1000.); +#25354=VECTOR('',#39083,1000.); +#25355=VECTOR('',#39086,1000.); +#25356=VECTOR('',#39087,1000.); +#25357=VECTOR('',#39090,1000.); +#25358=VECTOR('',#39091,1000.); +#25359=VECTOR('',#39094,1000.); +#25360=VECTOR('',#39095,1000.); +#25361=VECTOR('',#39098,1000.); +#25362=VECTOR('',#39099,1000.); +#25363=VECTOR('',#39102,1000.); +#25364=VECTOR('',#39103,1000.); +#25365=VECTOR('',#39106,1000.); +#25366=VECTOR('',#39107,1000.); +#25367=VECTOR('',#39110,1000.); +#25368=VECTOR('',#39111,1000.); +#25369=VECTOR('',#39114,1000.); +#25370=VECTOR('',#39115,1000.); +#25371=VECTOR('',#39118,1000.); +#25372=VECTOR('',#39119,1000.); +#25373=VECTOR('',#39122,1000.); +#25374=VECTOR('',#39123,1000.); +#25375=VECTOR('',#39126,1000.); +#25376=VECTOR('',#39127,1000.); +#25377=VECTOR('',#39130,1000.); +#25378=VECTOR('',#39131,1000.); +#25379=VECTOR('',#39134,1000.); +#25380=VECTOR('',#39135,1000.); +#25381=VECTOR('',#39138,1000.); +#25382=VECTOR('',#39139,1000.); +#25383=VECTOR('',#39142,1000.); +#25384=VECTOR('',#39143,1000.); +#25385=VECTOR('',#39146,1000.); +#25386=VECTOR('',#39147,1000.); +#25387=VECTOR('',#39150,1000.); +#25388=VECTOR('',#39151,1000.); +#25389=VECTOR('',#39152,1000.); +#25390=VECTOR('',#39153,1000.); +#25391=VECTOR('',#39156,1000.); +#25392=VECTOR('',#39157,1000.); +#25393=VECTOR('',#39158,1000.); +#25394=VECTOR('',#39159,1000.); +#25395=VECTOR('',#39162,1000.); +#25396=VECTOR('',#39163,1000.); +#25397=VECTOR('',#39164,1000.); +#25398=VECTOR('',#39165,1000.); +#25399=VECTOR('',#39168,1000.); +#25400=VECTOR('',#39169,1000.); +#25401=VECTOR('',#39170,1000.); +#25402=VECTOR('',#39171,1000.); +#25403=VECTOR('',#39174,1000.); +#25404=VECTOR('',#39175,1000.); +#25405=VECTOR('',#39176,1000.); +#25406=VECTOR('',#39177,1000.); +#25407=VECTOR('',#39180,1000.); +#25408=VECTOR('',#39181,1000.); +#25409=VECTOR('',#39182,1000.); +#25410=VECTOR('',#39183,1000.); +#25411=VECTOR('',#39186,1000.); +#25412=VECTOR('',#39187,1000.); +#25413=VECTOR('',#39188,1000.); +#25414=VECTOR('',#39189,1000.); +#25415=VECTOR('',#39192,1000.); +#25416=VECTOR('',#39193,1000.); +#25417=VECTOR('',#39194,1000.); +#25418=VECTOR('',#39195,1000.); +#25419=VECTOR('',#39198,1000.); +#25420=VECTOR('',#39199,1000.); +#25421=VECTOR('',#39200,1000.); +#25422=VECTOR('',#39201,1000.); +#25423=VECTOR('',#39204,1000.); +#25424=VECTOR('',#39205,1000.); +#25425=VECTOR('',#39206,1000.); +#25426=VECTOR('',#39207,1000.); +#25427=VECTOR('',#39210,1000.); +#25428=VECTOR('',#39211,1000.); +#25429=VECTOR('',#39212,1000.); +#25430=VECTOR('',#39213,1000.); +#25431=VECTOR('',#39216,1000.); +#25432=VECTOR('',#39217,1000.); +#25433=VECTOR('',#39218,1000.); +#25434=VECTOR('',#39219,1000.); +#25435=VECTOR('',#39222,1000.); +#25436=VECTOR('',#39223,1000.); +#25437=VECTOR('',#39224,1000.); +#25438=VECTOR('',#39225,1000.); +#25439=VECTOR('',#39228,1000.); +#25440=VECTOR('',#39229,1000.); +#25441=VECTOR('',#39230,1000.); +#25442=VECTOR('',#39231,1000.); +#25443=VECTOR('',#39234,1000.); +#25444=VECTOR('',#39235,1000.); +#25445=VECTOR('',#39236,1000.); +#25446=VECTOR('',#39237,1000.); +#25447=VECTOR('',#39240,1000.); +#25448=VECTOR('',#39241,1000.); +#25449=VECTOR('',#39242,1000.); +#25450=VECTOR('',#39243,1000.); +#25451=VECTOR('',#39246,1000.); +#25452=VECTOR('',#39247,1000.); +#25453=VECTOR('',#39248,1000.); +#25454=VECTOR('',#39249,1000.); +#25455=VECTOR('',#39252,1000.); +#25456=VECTOR('',#39253,1000.); +#25457=VECTOR('',#39254,1000.); +#25458=VECTOR('',#39255,1000.); +#25459=VECTOR('',#39258,1000.); +#25460=VECTOR('',#39259,1000.); +#25461=VECTOR('',#39260,1000.); +#25462=VECTOR('',#39261,1000.); +#25463=VECTOR('',#39380,1000.); +#25464=VECTOR('',#39387,1000.); +#25465=VECTOR('',#39394,1000.); +#25466=VECTOR('',#39401,1000.); +#25467=VECTOR('',#39408,1000.); +#25468=VECTOR('',#39415,1000.); +#25469=VECTOR('',#39422,1000.); +#25470=VECTOR('',#39429,1000.); +#25471=VECTOR('',#39436,1000.); +#25472=VECTOR('',#39443,1000.); +#25473=VECTOR('',#39450,1000.); +#25474=VECTOR('',#39457,1000.); +#25475=VECTOR('',#39464,1000.); +#25476=VECTOR('',#39471,1000.); +#25477=VECTOR('',#39478,1000.); +#25478=VECTOR('',#39485,1000.); +#25479=VECTOR('',#39492,1000.); +#25480=VECTOR('',#39499,1000.); +#25481=VECTOR('',#39506,1000.); +#25482=VECTOR('',#39511,1000.); +#25483=VECTOR('',#39512,1000.); +#25484=VECTOR('',#39513,1000.); +#25485=VECTOR('',#39516,1000.); +#25486=VECTOR('',#39517,1000.); +#25487=VECTOR('',#39518,1000.); +#25488=VECTOR('',#39521,1000.); +#25489=VECTOR('',#39522,1000.); +#25490=VECTOR('',#39523,1000.); +#25491=VECTOR('',#39526,1000.); +#25492=VECTOR('',#39527,1000.); +#25493=VECTOR('',#39528,1000.); +#25494=VECTOR('',#39531,1000.); +#25495=VECTOR('',#39532,1000.); +#25496=VECTOR('',#39533,1000.); +#25497=VECTOR('',#39536,1000.); +#25498=VECTOR('',#39537,1000.); +#25499=VECTOR('',#39538,1000.); +#25500=VECTOR('',#39541,1000.); +#25501=VECTOR('',#39542,1000.); +#25502=VECTOR('',#39543,1000.); +#25503=VECTOR('',#39546,1000.); +#25504=VECTOR('',#39547,1000.); +#25505=VECTOR('',#39548,1000.); +#25506=VECTOR('',#39551,1000.); +#25507=VECTOR('',#39552,1000.); +#25508=VECTOR('',#39553,1000.); +#25509=VECTOR('',#39556,1000.); +#25510=VECTOR('',#39557,1000.); +#25511=VECTOR('',#39558,1000.); +#25512=VECTOR('',#39561,1000.); +#25513=VECTOR('',#39562,1000.); +#25514=VECTOR('',#39563,1000.); +#25515=VECTOR('',#39566,1000.); +#25516=VECTOR('',#39567,1000.); +#25517=VECTOR('',#39568,1000.); +#25518=VECTOR('',#39571,1000.); +#25519=VECTOR('',#39572,1000.); +#25520=VECTOR('',#39573,1000.); +#25521=VECTOR('',#39576,1000.); +#25522=VECTOR('',#39577,1000.); +#25523=VECTOR('',#39578,1000.); +#25524=VECTOR('',#39581,1000.); +#25525=VECTOR('',#39582,1000.); +#25526=VECTOR('',#39583,1000.); +#25527=VECTOR('',#39586,1000.); +#25528=VECTOR('',#39587,1000.); +#25529=VECTOR('',#39588,1000.); +#25530=VECTOR('',#39591,1000.); +#25531=VECTOR('',#39592,1000.); +#25532=VECTOR('',#39593,1000.); +#25533=VECTOR('',#39596,1000.); +#25534=VECTOR('',#39597,1000.); +#25535=VECTOR('',#39598,1000.); +#25536=VECTOR('',#39601,1000.); +#25537=VECTOR('',#39602,1000.); +#25538=VECTOR('',#39603,1000.); +#25539=VECTOR('',#39834,1000.); +#25540=VECTOR('',#39835,1000.); +#25541=VECTOR('',#39836,1000.); +#25542=VECTOR('',#39837,1000.); +#25543=VECTOR('',#39848,1000.); +#25544=VECTOR('',#39853,1000.); +#25545=VECTOR('',#39854,1000.); +#25546=VECTOR('',#39855,1000.); +#25547=VECTOR('',#39870,1000.); +#25548=VECTOR('',#39875,1000.); +#25549=VECTOR('',#39880,1000.); +#25550=VECTOR('',#39885,1000.); +#25551=VECTOR('',#39890,1000.); +#25552=VECTOR('',#39895,1000.); +#25553=VECTOR('',#39900,1000.); +#25554=VECTOR('',#39905,1000.); +#25555=VECTOR('',#39910,1000.); +#25556=VECTOR('',#39915,1000.); +#25557=VECTOR('',#39920,1000.); +#25558=VECTOR('',#39925,1000.); +#25559=VECTOR('',#39930,1000.); +#25560=VECTOR('',#39935,1000.); +#25561=VECTOR('',#39940,1000.); +#25562=VECTOR('',#39945,1000.); +#25563=VECTOR('',#39950,1000.); +#25564=VECTOR('',#39955,1000.); +#25565=VECTOR('',#39960,1000.); +#25566=VECTOR('',#39965,1000.); +#25567=VECTOR('',#39970,1000.); +#25568=VECTOR('',#39975,1000.); +#25569=VECTOR('',#39980,1000.); +#25570=VECTOR('',#39985,1000.); +#25571=VECTOR('',#39990,1000.); +#25572=VECTOR('',#39995,1000.); +#25573=VECTOR('',#40000,1000.); +#25574=VECTOR('',#40005,1000.); +#25575=VECTOR('',#40010,1000.); +#25576=VECTOR('',#40015,1000.); +#25577=VECTOR('',#40020,1000.); +#25578=VECTOR('',#40025,1000.); +#25579=VECTOR('',#40030,1000.); +#25580=VECTOR('',#40035,1000.); +#25581=VECTOR('',#40040,1000.); +#25582=VECTOR('',#40045,1000.); +#25583=VECTOR('',#40050,1000.); +#25584=VECTOR('',#40055,1000.); +#25585=VECTOR('',#40060,1000.); +#25586=VECTOR('',#40065,1000.); +#25587=VECTOR('',#40070,1000.); +#25588=VECTOR('',#40075,1000.); +#25589=VECTOR('',#40080,1000.); +#25590=VECTOR('',#40085,1000.); +#25591=VECTOR('',#40090,1000.); +#25592=VECTOR('',#40095,1000.); +#25593=VECTOR('',#40100,1000.); +#25594=VECTOR('',#40105,1000.); +#25595=VECTOR('',#40110,1000.); +#25596=VECTOR('',#40115,1000.); +#25597=VECTOR('',#40120,1000.); +#25598=VECTOR('',#40125,1000.); +#25599=VECTOR('',#40130,1000.); +#25600=VECTOR('',#40135,1000.); +#25601=VECTOR('',#40140,1000.); +#25602=VECTOR('',#40145,1000.); +#25603=VECTOR('',#40150,1000.); +#25604=VECTOR('',#40155,1000.); +#25605=VECTOR('',#40160,1000.); +#25606=VECTOR('',#40165,1000.); +#25607=VECTOR('',#40170,1000.); +#25608=VECTOR('',#40175,1000.); +#25609=VECTOR('',#40180,1000.); +#25610=VECTOR('',#40185,1000.); +#25611=VECTOR('',#40190,1000.); +#25612=VECTOR('',#40195,1000.); +#25613=VECTOR('',#40200,1000.); +#25614=VECTOR('',#40205,1000.); +#25615=VECTOR('',#40210,1000.); +#25616=VECTOR('',#40215,1000.); +#25617=VECTOR('',#40220,1000.); +#25618=VECTOR('',#40225,1000.); +#25619=VECTOR('',#40230,1000.); +#25620=VECTOR('',#40235,1000.); +#25621=VECTOR('',#40240,1000.); +#25622=VECTOR('',#40245,1000.); +#25623=VECTOR('',#40250,1000.); +#25624=VECTOR('',#40255,1000.); +#25625=VECTOR('',#40260,1000.); +#25626=VECTOR('',#40263,1000.); +#25627=VECTOR('',#40354,1000.); +#25628=VECTOR('',#40355,1000.); +#25629=VECTOR('',#40356,1000.); +#25630=VECTOR('',#40357,1000.); +#25631=VECTOR('',#40360,1000.); +#25632=VECTOR('',#40363,1000.); +#25633=VECTOR('',#40366,1000.); +#25634=VECTOR('',#40369,1000.); +#25635=VECTOR('',#40372,1000.); +#25636=VECTOR('',#40375,1000.); +#25637=VECTOR('',#40376,1000.); +#25638=VECTOR('',#40377,1000.); +#25639=VECTOR('',#40380,1000.); +#25640=VECTOR('',#40383,1000.); +#25641=VECTOR('',#40386,1000.); +#25642=VECTOR('',#40389,1000.); +#25643=VECTOR('',#40392,1000.); +#25644=VECTOR('',#40395,1000.); +#25645=VECTOR('',#40396,1000.); +#25646=VECTOR('',#40397,1000.); +#25647=VECTOR('',#40400,1000.); +#25648=VECTOR('',#40403,1000.); +#25649=VECTOR('',#40406,1000.); +#25650=VECTOR('',#40409,1000.); +#25651=VECTOR('',#40412,1000.); +#25652=VECTOR('',#40415,1000.); +#25653=VECTOR('',#40416,1000.); +#25654=VECTOR('',#40417,1000.); +#25655=VECTOR('',#40420,1000.); +#25656=VECTOR('',#40423,1000.); +#25657=VECTOR('',#40426,1000.); +#25658=VECTOR('',#40429,1000.); +#25659=VECTOR('',#40432,1000.); +#25660=VECTOR('',#40435,1000.); +#25661=VECTOR('',#40436,1000.); +#25662=VECTOR('',#40437,1000.); +#25663=VECTOR('',#40440,1000.); +#25664=VECTOR('',#40443,1000.); +#25665=VECTOR('',#40446,1000.); +#25666=VECTOR('',#40449,1000.); +#25667=VECTOR('',#40452,1000.); +#25668=VECTOR('',#40455,1000.); +#25669=VECTOR('',#40456,1000.); +#25670=VECTOR('',#40457,1000.); +#25671=VECTOR('',#40460,1000.); +#25672=VECTOR('',#40463,1000.); +#25673=VECTOR('',#40466,1000.); +#25674=VECTOR('',#40469,1000.); +#25675=VECTOR('',#40472,1000.); +#25676=VECTOR('',#40475,1000.); +#25677=VECTOR('',#40476,1000.); +#25678=VECTOR('',#40477,1000.); +#25679=VECTOR('',#40480,1000.); +#25680=VECTOR('',#40483,1000.); +#25681=VECTOR('',#40486,1000.); +#25682=VECTOR('',#40489,1000.); +#25683=VECTOR('',#40492,1000.); +#25684=VECTOR('',#40495,1000.); +#25685=VECTOR('',#40496,1000.); +#25686=VECTOR('',#40497,1000.); +#25687=VECTOR('',#40500,1000.); +#25688=VECTOR('',#40503,1000.); +#25689=VECTOR('',#40506,1000.); +#25690=VECTOR('',#40509,1000.); +#25691=VECTOR('',#40512,1000.); +#25692=VECTOR('',#40515,1000.); +#25693=VECTOR('',#40516,1000.); +#25694=VECTOR('',#40517,1000.); +#25695=VECTOR('',#40520,1000.); +#25696=VECTOR('',#40523,1000.); +#25697=VECTOR('',#40526,1000.); +#25698=VECTOR('',#40529,1000.); +#25699=VECTOR('',#40532,1000.); +#25700=VECTOR('',#40535,1000.); +#25701=VECTOR('',#40536,1000.); +#25702=VECTOR('',#40537,1000.); +#25703=VECTOR('',#40540,1000.); +#25704=VECTOR('',#40543,1000.); +#25705=VECTOR('',#40546,1000.); +#25706=VECTOR('',#40549,1000.); +#25707=VECTOR('',#40552,1000.); +#25708=VECTOR('',#40555,1000.); +#25709=VECTOR('',#40556,1000.); +#25710=VECTOR('',#40557,1000.); +#25711=VECTOR('',#40560,1000.); +#25712=VECTOR('',#40563,1000.); +#25713=VECTOR('',#40566,1000.); +#25714=VECTOR('',#40569,1000.); +#25715=VECTOR('',#40572,1000.); +#25716=VECTOR('',#40575,1000.); +#25717=VECTOR('',#40576,1000.); +#25718=VECTOR('',#40577,1000.); +#25719=VECTOR('',#40580,1000.); +#25720=VECTOR('',#40583,1000.); +#25721=VECTOR('',#40586,1000.); +#25722=VECTOR('',#40589,1000.); +#25723=VECTOR('',#40592,1000.); +#25724=VECTOR('',#40595,1000.); +#25725=VECTOR('',#40596,1000.); +#25726=VECTOR('',#40597,1000.); +#25727=VECTOR('',#40600,1000.); +#25728=VECTOR('',#40603,1000.); +#25729=VECTOR('',#40606,1000.); +#25730=VECTOR('',#40609,1000.); +#25731=VECTOR('',#40612,1000.); +#25732=VECTOR('',#40615,1000.); +#25733=VECTOR('',#40616,1000.); +#25734=VECTOR('',#40617,1000.); +#25735=VECTOR('',#40620,1000.); +#25736=VECTOR('',#40623,1000.); +#25737=VECTOR('',#40626,1000.); +#25738=VECTOR('',#40629,1000.); +#25739=VECTOR('',#40632,1000.); +#25740=VECTOR('',#40635,1000.); +#25741=VECTOR('',#40636,1000.); +#25742=VECTOR('',#40637,1000.); +#25743=VECTOR('',#40640,1000.); +#25744=VECTOR('',#40643,1000.); +#25745=VECTOR('',#40646,1000.); +#25746=VECTOR('',#40649,1000.); +#25747=VECTOR('',#40652,1000.); +#25748=VECTOR('',#40655,1000.); +#25749=VECTOR('',#40656,1000.); +#25750=VECTOR('',#40657,1000.); +#25751=VECTOR('',#40660,1000.); +#25752=VECTOR('',#40663,1000.); +#25753=VECTOR('',#40666,1000.); +#25754=VECTOR('',#40669,1000.); +#25755=VECTOR('',#40672,1000.); +#25756=VECTOR('',#40675,1000.); +#25757=VECTOR('',#40676,1000.); +#25758=VECTOR('',#40677,1000.); +#25759=VECTOR('',#40680,1000.); +#25760=VECTOR('',#40683,1000.); +#25761=VECTOR('',#40686,1000.); +#25762=VECTOR('',#40689,1000.); +#25763=VECTOR('',#40692,1000.); +#25764=VECTOR('',#40695,1000.); +#25765=VECTOR('',#40696,1000.); +#25766=VECTOR('',#40697,1000.); +#25767=VECTOR('',#40700,1000.); +#25768=VECTOR('',#40703,1000.); +#25769=VECTOR('',#40706,1000.); +#25770=VECTOR('',#40709,1000.); +#25771=VECTOR('',#40712,1000.); +#25772=VECTOR('',#40715,1000.); +#25773=VECTOR('',#40716,1000.); +#25774=VECTOR('',#40717,1000.); +#25775=VECTOR('',#40720,1000.); +#25776=VECTOR('',#40723,1000.); +#25777=VECTOR('',#40726,1000.); +#25778=VECTOR('',#40729,1000.); +#25779=VECTOR('',#40732,1000.); +#25780=VECTOR('',#40735,1000.); +#25781=VECTOR('',#40736,1000.); +#25782=VECTOR('',#40737,1000.); +#25783=VECTOR('',#40740,1000.); +#25784=VECTOR('',#40743,1000.); +#25785=VECTOR('',#40746,1000.); +#25786=VECTOR('',#40749,1000.); +#25787=VECTOR('',#40752,1000.); +#25788=VECTOR('',#40755,1000.); +#25789=VECTOR('',#40756,1000.); +#25790=VECTOR('',#40757,1000.); +#25791=VECTOR('',#40760,1000.); +#25792=VECTOR('',#40761,1000.); +#25793=VECTOR('',#40762,1000.); +#25794=VECTOR('',#40763,1000.); +#25795=VECTOR('',#40766,1000.); +#25796=VECTOR('',#40769,1000.); +#25797=VECTOR('',#40772,1000.); +#25798=VECTOR('',#40775,1000.); +#25799=VECTOR('',#40778,1000.); +#25800=VECTOR('',#40781,1000.); +#25801=VECTOR('',#40782,1000.); +#25802=VECTOR('',#40783,1000.); +#25803=VECTOR('',#40786,1000.); +#25804=VECTOR('',#40789,1000.); +#25805=VECTOR('',#40792,1000.); +#25806=VECTOR('',#40795,1000.); +#25807=VECTOR('',#40798,1000.); +#25808=VECTOR('',#40801,1000.); +#25809=VECTOR('',#40802,1000.); +#25810=VECTOR('',#40803,1000.); +#25811=VECTOR('',#40806,1000.); +#25812=VECTOR('',#40809,1000.); +#25813=VECTOR('',#40812,1000.); +#25814=VECTOR('',#40815,1000.); +#25815=VECTOR('',#40818,1000.); +#25816=VECTOR('',#40821,1000.); +#25817=VECTOR('',#40822,1000.); +#25818=VECTOR('',#40823,1000.); +#25819=VECTOR('',#40826,1000.); +#25820=VECTOR('',#40829,1000.); +#25821=VECTOR('',#40832,1000.); +#25822=VECTOR('',#40835,1000.); +#25823=VECTOR('',#40838,1000.); +#25824=VECTOR('',#40841,1000.); +#25825=VECTOR('',#40842,1000.); +#25826=VECTOR('',#40843,1000.); +#25827=VECTOR('',#40846,1000.); +#25828=VECTOR('',#40849,1000.); +#25829=VECTOR('',#40852,1000.); +#25830=VECTOR('',#40855,1000.); +#25831=VECTOR('',#40858,1000.); +#25832=VECTOR('',#40861,1000.); +#25833=VECTOR('',#40862,1000.); +#25834=VECTOR('',#40863,1000.); +#25835=VECTOR('',#40866,1000.); +#25836=VECTOR('',#40869,1000.); +#25837=VECTOR('',#40872,1000.); +#25838=VECTOR('',#40875,1000.); +#25839=VECTOR('',#40878,1000.); +#25840=VECTOR('',#40881,1000.); +#25841=VECTOR('',#40882,1000.); +#25842=VECTOR('',#40883,1000.); +#25843=VECTOR('',#40886,1000.); +#25844=VECTOR('',#40889,1000.); +#25845=VECTOR('',#40892,1000.); +#25846=VECTOR('',#40895,1000.); +#25847=VECTOR('',#40898,1000.); +#25848=VECTOR('',#40901,1000.); +#25849=VECTOR('',#40902,1000.); +#25850=VECTOR('',#40903,1000.); +#25851=VECTOR('',#40906,1000.); +#25852=VECTOR('',#40909,1000.); +#25853=VECTOR('',#40912,1000.); +#25854=VECTOR('',#40915,1000.); +#25855=VECTOR('',#40918,1000.); +#25856=VECTOR('',#40921,1000.); +#25857=VECTOR('',#40922,1000.); +#25858=VECTOR('',#40923,1000.); +#25859=VECTOR('',#40926,1000.); +#25860=VECTOR('',#40929,1000.); +#25861=VECTOR('',#40932,1000.); +#25862=VECTOR('',#40935,1000.); +#25863=VECTOR('',#40938,1000.); +#25864=VECTOR('',#40941,1000.); +#25865=VECTOR('',#40942,1000.); +#25866=VECTOR('',#40943,1000.); +#25867=VECTOR('',#40946,1000.); +#25868=VECTOR('',#40949,1000.); +#25869=VECTOR('',#40952,1000.); +#25870=VECTOR('',#40955,1000.); +#25871=VECTOR('',#40958,1000.); +#25872=VECTOR('',#40961,1000.); +#25873=VECTOR('',#40962,1000.); +#25874=VECTOR('',#40963,1000.); +#25875=VECTOR('',#40966,1000.); +#25876=VECTOR('',#40969,1000.); +#25877=VECTOR('',#40972,1000.); +#25878=VECTOR('',#40975,1000.); +#25879=VECTOR('',#40978,1000.); +#25880=VECTOR('',#40981,1000.); +#25881=VECTOR('',#40982,1000.); +#25882=VECTOR('',#40983,1000.); +#25883=VECTOR('',#40986,1000.); +#25884=VECTOR('',#40989,1000.); +#25885=VECTOR('',#40992,1000.); +#25886=VECTOR('',#40995,1000.); +#25887=VECTOR('',#40998,1000.); +#25888=VECTOR('',#41001,1000.); +#25889=VECTOR('',#41002,1000.); +#25890=VECTOR('',#41003,1000.); +#25891=VECTOR('',#41006,1000.); +#25892=VECTOR('',#41009,1000.); +#25893=VECTOR('',#41012,1000.); +#25894=VECTOR('',#41015,1000.); +#25895=VECTOR('',#41018,1000.); +#25896=VECTOR('',#41021,1000.); +#25897=VECTOR('',#41022,1000.); +#25898=VECTOR('',#41023,1000.); +#25899=VECTOR('',#41026,1000.); +#25900=VECTOR('',#41029,1000.); +#25901=VECTOR('',#41032,1000.); +#25902=VECTOR('',#41035,1000.); +#25903=VECTOR('',#41038,1000.); +#25904=VECTOR('',#41041,1000.); +#25905=VECTOR('',#41042,1000.); +#25906=VECTOR('',#41043,1000.); +#25907=VECTOR('',#41046,1000.); +#25908=VECTOR('',#41049,1000.); +#25909=VECTOR('',#41052,1000.); +#25910=VECTOR('',#41055,1000.); +#25911=VECTOR('',#41058,1000.); +#25912=VECTOR('',#41061,1000.); +#25913=VECTOR('',#41062,1000.); +#25914=VECTOR('',#41063,1000.); +#25915=VECTOR('',#41066,1000.); +#25916=VECTOR('',#41069,1000.); +#25917=VECTOR('',#41072,1000.); +#25918=VECTOR('',#41075,1000.); +#25919=VECTOR('',#41078,1000.); +#25920=VECTOR('',#41081,1000.); +#25921=VECTOR('',#41082,1000.); +#25922=VECTOR('',#41083,1000.); +#25923=VECTOR('',#41086,1000.); +#25924=VECTOR('',#41089,1000.); +#25925=VECTOR('',#41092,1000.); +#25926=VECTOR('',#41095,1000.); +#25927=VECTOR('',#41098,1000.); +#25928=VECTOR('',#41101,1000.); +#25929=VECTOR('',#41102,1000.); +#25930=VECTOR('',#41103,1000.); +#25931=VECTOR('',#41106,1000.); +#25932=VECTOR('',#41109,1000.); +#25933=VECTOR('',#41112,1000.); +#25934=VECTOR('',#41115,1000.); +#25935=VECTOR('',#41118,1000.); +#25936=VECTOR('',#41121,1000.); +#25937=VECTOR('',#41122,1000.); +#25938=VECTOR('',#41123,1000.); +#25939=VECTOR('',#41126,1000.); +#25940=VECTOR('',#41129,1000.); +#25941=VECTOR('',#41132,1000.); +#25942=VECTOR('',#41135,1000.); +#25943=VECTOR('',#41138,1000.); +#25944=VECTOR('',#41141,1000.); +#25945=VECTOR('',#41142,1000.); +#25946=VECTOR('',#41143,1000.); +#25947=VECTOR('',#41146,1000.); +#25948=VECTOR('',#41149,1000.); +#25949=VECTOR('',#41152,1000.); +#25950=VECTOR('',#41155,1000.); +#25951=VECTOR('',#41158,1000.); +#25952=VECTOR('',#41161,1000.); +#25953=VECTOR('',#41162,1000.); +#25954=VECTOR('',#41163,1000.); +#25955=VECTOR('',#41166,1000.); +#25956=VECTOR('',#41167,1000.); +#25957=VECTOR('',#41168,1000.); +#25958=VECTOR('',#41169,1000.); +#25959=VECTOR('',#41172,1000.); +#25960=VECTOR('',#41175,1000.); +#25961=VECTOR('',#41178,1000.); +#25962=VECTOR('',#41181,1000.); +#25963=VECTOR('',#41184,1000.); +#25964=VECTOR('',#41187,1000.); +#25965=VECTOR('',#41188,1000.); +#25966=VECTOR('',#41189,1000.); +#25967=VECTOR('',#41192,1000.); +#25968=VECTOR('',#41195,1000.); +#25969=VECTOR('',#41198,1000.); +#25970=VECTOR('',#41201,1000.); +#25971=VECTOR('',#41204,1000.); +#25972=VECTOR('',#41207,1000.); +#25973=VECTOR('',#41208,1000.); +#25974=VECTOR('',#41209,1000.); +#25975=VECTOR('',#41212,1000.); +#25976=VECTOR('',#41215,1000.); +#25977=VECTOR('',#41218,1000.); +#25978=VECTOR('',#41221,1000.); +#25979=VECTOR('',#41224,1000.); +#25980=VECTOR('',#41227,1000.); +#25981=VECTOR('',#41228,1000.); +#25982=VECTOR('',#41229,1000.); +#25983=VECTOR('',#41232,1000.); +#25984=VECTOR('',#41235,1000.); +#25985=VECTOR('',#41238,1000.); +#25986=VECTOR('',#41241,1000.); +#25987=VECTOR('',#41244,1000.); +#25988=VECTOR('',#41247,1000.); +#25989=VECTOR('',#41248,1000.); +#25990=VECTOR('',#41249,1000.); +#25991=VECTOR('',#41252,1000.); +#25992=VECTOR('',#41255,1000.); +#25993=VECTOR('',#41258,1000.); +#25994=VECTOR('',#41261,1000.); +#25995=VECTOR('',#41264,1000.); +#25996=VECTOR('',#41267,1000.); +#25997=VECTOR('',#41268,1000.); +#25998=VECTOR('',#41269,1000.); +#25999=VECTOR('',#41272,1000.); +#26000=VECTOR('',#41275,1000.); +#26001=VECTOR('',#41278,1000.); +#26002=VECTOR('',#41281,1000.); +#26003=VECTOR('',#41284,1000.); +#26004=VECTOR('',#41287,1000.); +#26005=VECTOR('',#41288,1000.); +#26006=VECTOR('',#41289,1000.); +#26007=VECTOR('',#41292,1000.); +#26008=VECTOR('',#41295,1000.); +#26009=VECTOR('',#41298,1000.); +#26010=VECTOR('',#41301,1000.); +#26011=VECTOR('',#41304,1000.); +#26012=VECTOR('',#41307,1000.); +#26013=VECTOR('',#41308,1000.); +#26014=VECTOR('',#41309,1000.); +#26015=VECTOR('',#41312,1000.); +#26016=VECTOR('',#41315,1000.); +#26017=VECTOR('',#41318,1000.); +#26018=VECTOR('',#41321,1000.); +#26019=VECTOR('',#41324,1000.); +#26020=VECTOR('',#41327,1000.); +#26021=VECTOR('',#41328,1000.); +#26022=VECTOR('',#41329,1000.); +#26023=VECTOR('',#41332,1000.); +#26024=VECTOR('',#41335,1000.); +#26025=VECTOR('',#41338,1000.); +#26026=VECTOR('',#41341,1000.); +#26027=VECTOR('',#41344,1000.); +#26028=VECTOR('',#41347,1000.); +#26029=VECTOR('',#41348,1000.); +#26030=VECTOR('',#41349,1000.); +#26031=VECTOR('',#41352,1000.); +#26032=VECTOR('',#41355,1000.); +#26033=VECTOR('',#41358,1000.); +#26034=VECTOR('',#41361,1000.); +#26035=VECTOR('',#41364,1000.); +#26036=VECTOR('',#41367,1000.); +#26037=VECTOR('',#41368,1000.); +#26038=VECTOR('',#41369,1000.); +#26039=VECTOR('',#41372,1000.); +#26040=VECTOR('',#41375,1000.); +#26041=VECTOR('',#41378,1000.); +#26042=VECTOR('',#41381,1000.); +#26043=VECTOR('',#41384,1000.); +#26044=VECTOR('',#41387,1000.); +#26045=VECTOR('',#41388,1000.); +#26046=VECTOR('',#41389,1000.); +#26047=VECTOR('',#41392,1000.); +#26048=VECTOR('',#41395,1000.); +#26049=VECTOR('',#41398,1000.); +#26050=VECTOR('',#41401,1000.); +#26051=VECTOR('',#41404,1000.); +#26052=VECTOR('',#41407,1000.); +#26053=VECTOR('',#41408,1000.); +#26054=VECTOR('',#41409,1000.); +#26055=VECTOR('',#41412,1000.); +#26056=VECTOR('',#41415,1000.); +#26057=VECTOR('',#41418,1000.); +#26058=VECTOR('',#41421,1000.); +#26059=VECTOR('',#41424,1000.); +#26060=VECTOR('',#41427,1000.); +#26061=VECTOR('',#41428,1000.); +#26062=VECTOR('',#41429,1000.); +#26063=VECTOR('',#41432,1000.); +#26064=VECTOR('',#41435,1000.); +#26065=VECTOR('',#41438,1000.); +#26066=VECTOR('',#41441,1000.); +#26067=VECTOR('',#41444,1000.); +#26068=VECTOR('',#41447,1000.); +#26069=VECTOR('',#41448,1000.); +#26070=VECTOR('',#41449,1000.); +#26071=VECTOR('',#41452,1000.); +#26072=VECTOR('',#41455,1000.); +#26073=VECTOR('',#41458,1000.); +#26074=VECTOR('',#41461,1000.); +#26075=VECTOR('',#41464,1000.); +#26076=VECTOR('',#41467,1000.); +#26077=VECTOR('',#41468,1000.); +#26078=VECTOR('',#41469,1000.); +#26079=VECTOR('',#41472,1000.); +#26080=VECTOR('',#41475,1000.); +#26081=VECTOR('',#41478,1000.); +#26082=VECTOR('',#41481,1000.); +#26083=VECTOR('',#41484,1000.); +#26084=VECTOR('',#41487,1000.); +#26085=VECTOR('',#41488,1000.); +#26086=VECTOR('',#41489,1000.); +#26087=VECTOR('',#41492,1000.); +#26088=VECTOR('',#41495,1000.); +#26089=VECTOR('',#41498,1000.); +#26090=VECTOR('',#41501,1000.); +#26091=VECTOR('',#41504,1000.); +#26092=VECTOR('',#41507,1000.); +#26093=VECTOR('',#41508,1000.); +#26094=VECTOR('',#41509,1000.); +#26095=VECTOR('',#41512,1000.); +#26096=VECTOR('',#41515,1000.); +#26097=VECTOR('',#41518,1000.); +#26098=VECTOR('',#41521,1000.); +#26099=VECTOR('',#41524,1000.); +#26100=VECTOR('',#41527,1000.); +#26101=VECTOR('',#41528,1000.); +#26102=VECTOR('',#41529,1000.); +#26103=VECTOR('',#41532,1000.); +#26104=VECTOR('',#41535,1000.); +#26105=VECTOR('',#41538,1000.); +#26106=VECTOR('',#41541,1000.); +#26107=VECTOR('',#41544,1000.); +#26108=VECTOR('',#41547,1000.); +#26109=VECTOR('',#41548,1000.); +#26110=VECTOR('',#41549,1000.); +#26111=VECTOR('',#41552,1000.); +#26112=VECTOR('',#41555,1000.); +#26113=VECTOR('',#41558,1000.); +#26114=VECTOR('',#41561,1000.); +#26115=VECTOR('',#41564,1000.); +#26116=VECTOR('',#41567,1000.); +#26117=VECTOR('',#41568,1000.); +#26118=VECTOR('',#41569,1000.); +#26119=VECTOR('',#41572,1000.); +#26120=VECTOR('',#41573,1000.); +#26121=VECTOR('',#41574,1000.); +#26122=VECTOR('',#41575,1000.); +#26123=VECTOR('',#41578,1000.); +#26124=VECTOR('',#41581,1000.); +#26125=VECTOR('',#41584,1000.); +#26126=VECTOR('',#41587,1000.); +#26127=VECTOR('',#41590,1000.); +#26128=VECTOR('',#41593,1000.); +#26129=VECTOR('',#41594,1000.); +#26130=VECTOR('',#41595,1000.); +#26131=VECTOR('',#41598,1000.); +#26132=VECTOR('',#41601,1000.); +#26133=VECTOR('',#41604,1000.); +#26134=VECTOR('',#41607,1000.); +#26135=VECTOR('',#41610,1000.); +#26136=VECTOR('',#41613,1000.); +#26137=VECTOR('',#41614,1000.); +#26138=VECTOR('',#41615,1000.); +#26139=VECTOR('',#41618,1000.); +#26140=VECTOR('',#41621,1000.); +#26141=VECTOR('',#41624,1000.); +#26142=VECTOR('',#41627,1000.); +#26143=VECTOR('',#41630,1000.); +#26144=VECTOR('',#41633,1000.); +#26145=VECTOR('',#41634,1000.); +#26146=VECTOR('',#41635,1000.); +#26147=VECTOR('',#41638,1000.); +#26148=VECTOR('',#41641,1000.); +#26149=VECTOR('',#41644,1000.); +#26150=VECTOR('',#41647,1000.); +#26151=VECTOR('',#41650,1000.); +#26152=VECTOR('',#41653,1000.); +#26153=VECTOR('',#41654,1000.); +#26154=VECTOR('',#41655,1000.); +#26155=VECTOR('',#41658,1000.); +#26156=VECTOR('',#41661,1000.); +#26157=VECTOR('',#41664,1000.); +#26158=VECTOR('',#41667,1000.); +#26159=VECTOR('',#41670,1000.); +#26160=VECTOR('',#41673,1000.); +#26161=VECTOR('',#41674,1000.); +#26162=VECTOR('',#41675,1000.); +#26163=VECTOR('',#41678,1000.); +#26164=VECTOR('',#41681,1000.); +#26165=VECTOR('',#41684,1000.); +#26166=VECTOR('',#41687,1000.); +#26167=VECTOR('',#41690,1000.); +#26168=VECTOR('',#41693,1000.); +#26169=VECTOR('',#41694,1000.); +#26170=VECTOR('',#41695,1000.); +#26171=VECTOR('',#41698,1000.); +#26172=VECTOR('',#41701,1000.); +#26173=VECTOR('',#41704,1000.); +#26174=VECTOR('',#41707,1000.); +#26175=VECTOR('',#41710,1000.); +#26176=VECTOR('',#41713,1000.); +#26177=VECTOR('',#41714,1000.); +#26178=VECTOR('',#41715,1000.); +#26179=VECTOR('',#41718,1000.); +#26180=VECTOR('',#41721,1000.); +#26181=VECTOR('',#41724,1000.); +#26182=VECTOR('',#41727,1000.); +#26183=VECTOR('',#41730,1000.); +#26184=VECTOR('',#41733,1000.); +#26185=VECTOR('',#41734,1000.); +#26186=VECTOR('',#41735,1000.); +#26187=VECTOR('',#41738,1000.); +#26188=VECTOR('',#41741,1000.); +#26189=VECTOR('',#41744,1000.); +#26190=VECTOR('',#41747,1000.); +#26191=VECTOR('',#41750,1000.); +#26192=VECTOR('',#41753,1000.); +#26193=VECTOR('',#41754,1000.); +#26194=VECTOR('',#41755,1000.); +#26195=VECTOR('',#41758,1000.); +#26196=VECTOR('',#41761,1000.); +#26197=VECTOR('',#41764,1000.); +#26198=VECTOR('',#41767,1000.); +#26199=VECTOR('',#41770,1000.); +#26200=VECTOR('',#41773,1000.); +#26201=VECTOR('',#41774,1000.); +#26202=VECTOR('',#41775,1000.); +#26203=VECTOR('',#41778,1000.); +#26204=VECTOR('',#41781,1000.); +#26205=VECTOR('',#41784,1000.); +#26206=VECTOR('',#41787,1000.); +#26207=VECTOR('',#41790,1000.); +#26208=VECTOR('',#41793,1000.); +#26209=VECTOR('',#41794,1000.); +#26210=VECTOR('',#41795,1000.); +#26211=VECTOR('',#41798,1000.); +#26212=VECTOR('',#41801,1000.); +#26213=VECTOR('',#41804,1000.); +#26214=VECTOR('',#41807,1000.); +#26215=VECTOR('',#41810,1000.); +#26216=VECTOR('',#41813,1000.); +#26217=VECTOR('',#41814,1000.); +#26218=VECTOR('',#41815,1000.); +#26219=VECTOR('',#41818,1000.); +#26220=VECTOR('',#41821,1000.); +#26221=VECTOR('',#41824,1000.); +#26222=VECTOR('',#41827,1000.); +#26223=VECTOR('',#41830,1000.); +#26224=VECTOR('',#41833,1000.); +#26225=VECTOR('',#41834,1000.); +#26226=VECTOR('',#41835,1000.); +#26227=VECTOR('',#41838,1000.); +#26228=VECTOR('',#41841,1000.); +#26229=VECTOR('',#41844,1000.); +#26230=VECTOR('',#41847,1000.); +#26231=VECTOR('',#41850,1000.); +#26232=VECTOR('',#41853,1000.); +#26233=VECTOR('',#41854,1000.); +#26234=VECTOR('',#41855,1000.); +#26235=VECTOR('',#41858,1000.); +#26236=VECTOR('',#41861,1000.); +#26237=VECTOR('',#41864,1000.); +#26238=VECTOR('',#41867,1000.); +#26239=VECTOR('',#41870,1000.); +#26240=VECTOR('',#41873,1000.); +#26241=VECTOR('',#41874,1000.); +#26242=VECTOR('',#41875,1000.); +#26243=VECTOR('',#41878,1000.); +#26244=VECTOR('',#41881,1000.); +#26245=VECTOR('',#41884,1000.); +#26246=VECTOR('',#41887,1000.); +#26247=VECTOR('',#41890,1000.); +#26248=VECTOR('',#41893,1000.); +#26249=VECTOR('',#41894,1000.); +#26250=VECTOR('',#41895,1000.); +#26251=VECTOR('',#41898,1000.); +#26252=VECTOR('',#41901,1000.); +#26253=VECTOR('',#41904,1000.); +#26254=VECTOR('',#41907,1000.); +#26255=VECTOR('',#41910,1000.); +#26256=VECTOR('',#41913,1000.); +#26257=VECTOR('',#41914,1000.); +#26258=VECTOR('',#41915,1000.); +#26259=VECTOR('',#41918,1000.); +#26260=VECTOR('',#41921,1000.); +#26261=VECTOR('',#41924,1000.); +#26262=VECTOR('',#41927,1000.); +#26263=VECTOR('',#41930,1000.); +#26264=VECTOR('',#41933,1000.); +#26265=VECTOR('',#41934,1000.); +#26266=VECTOR('',#41935,1000.); +#26267=VECTOR('',#41938,1000.); +#26268=VECTOR('',#41941,1000.); +#26269=VECTOR('',#41944,1000.); +#26270=VECTOR('',#41947,1000.); +#26271=VECTOR('',#41950,1000.); +#26272=VECTOR('',#41953,1000.); +#26273=VECTOR('',#41954,1000.); +#26274=VECTOR('',#41955,1000.); +#26275=VECTOR('',#41958,1000.); +#26276=VECTOR('',#41961,1000.); +#26277=VECTOR('',#41964,1000.); +#26278=VECTOR('',#41967,1000.); +#26279=VECTOR('',#41970,1000.); +#26280=VECTOR('',#41973,1000.); +#26281=VECTOR('',#41974,1000.); +#26282=VECTOR('',#41975,1000.); +#26283=VECTOR('',#41978,1000.); +#26284=VECTOR('',#41979,1000.); +#26285=VECTOR('',#41982,1000.); +#26286=VECTOR('',#41983,1000.); +#26287=VECTOR('',#41986,1000.); +#26288=VECTOR('',#41987,1000.); +#26289=VECTOR('',#41990,1000.); +#26290=VECTOR('',#41991,1000.); +#26291=VECTOR('',#41994,1000.); +#26292=VECTOR('',#41995,1000.); +#26293=VECTOR('',#41998,1000.); +#26294=VECTOR('',#41999,1000.); +#26295=VECTOR('',#42002,1000.); +#26296=VECTOR('',#42003,1000.); +#26297=VECTOR('',#42006,1000.); +#26298=VECTOR('',#42007,1000.); +#26299=VECTOR('',#42010,1000.); +#26300=VECTOR('',#42011,1000.); +#26301=VECTOR('',#42014,1000.); +#26302=VECTOR('',#42015,1000.); +#26303=VECTOR('',#42018,1000.); +#26304=VECTOR('',#42019,1000.); +#26305=VECTOR('',#42022,1000.); +#26306=VECTOR('',#42023,1000.); +#26307=VECTOR('',#42026,1000.); +#26308=VECTOR('',#42027,1000.); +#26309=VECTOR('',#42030,1000.); +#26310=VECTOR('',#42031,1000.); +#26311=VECTOR('',#42034,1000.); +#26312=VECTOR('',#42035,1000.); +#26313=VECTOR('',#42038,1000.); +#26314=VECTOR('',#42039,1000.); +#26315=VECTOR('',#42042,1000.); +#26316=VECTOR('',#42043,1000.); +#26317=VECTOR('',#42046,1000.); +#26318=VECTOR('',#42047,1000.); +#26319=VECTOR('',#42050,1000.); +#26320=VECTOR('',#42051,1000.); +#26321=VECTOR('',#42054,1000.); +#26322=VECTOR('',#42055,1000.); +#26323=VECTOR('',#42058,1000.); +#26324=VECTOR('',#42059,1000.); +#26325=VECTOR('',#42062,1000.); +#26326=VECTOR('',#42063,1000.); +#26327=VECTOR('',#42066,1000.); +#26328=VECTOR('',#42067,1000.); +#26329=VECTOR('',#42070,1000.); +#26330=VECTOR('',#42071,1000.); +#26331=VECTOR('',#42074,1000.); +#26332=VECTOR('',#42075,1000.); +#26333=VECTOR('',#42078,1000.); +#26334=VECTOR('',#42079,1000.); +#26335=VECTOR('',#42082,1000.); +#26336=VECTOR('',#42083,1000.); +#26337=VECTOR('',#42086,1000.); +#26338=VECTOR('',#42087,1000.); +#26339=VECTOR('',#42090,1000.); +#26340=VECTOR('',#42091,1000.); +#26341=VECTOR('',#42094,1000.); +#26342=VECTOR('',#42095,1000.); +#26343=VECTOR('',#42098,1000.); +#26344=VECTOR('',#42099,1000.); +#26345=VECTOR('',#42102,1000.); +#26346=VECTOR('',#42103,1000.); +#26347=VECTOR('',#42106,1000.); +#26348=VECTOR('',#42107,1000.); +#26349=VECTOR('',#42110,1000.); +#26350=VECTOR('',#42111,1000.); +#26351=VECTOR('',#42114,1000.); +#26352=VECTOR('',#42115,1000.); +#26353=VECTOR('',#42118,1000.); +#26354=VECTOR('',#42119,1000.); +#26355=VECTOR('',#42122,1000.); +#26356=VECTOR('',#42123,1000.); +#26357=VECTOR('',#42126,1000.); +#26358=VECTOR('',#42127,1000.); +#26359=VECTOR('',#42130,1000.); +#26360=VECTOR('',#42131,1000.); +#26361=VECTOR('',#42134,1000.); +#26362=VECTOR('',#42135,1000.); +#26363=VECTOR('',#42138,1000.); +#26364=VECTOR('',#42139,1000.); +#26365=VECTOR('',#42142,1000.); +#26366=VECTOR('',#42143,1000.); +#26367=VECTOR('',#42146,1000.); +#26368=VECTOR('',#42147,1000.); +#26369=VECTOR('',#42150,1000.); +#26370=VECTOR('',#42151,1000.); +#26371=VECTOR('',#42156,1000.); +#26372=VECTOR('',#42163,1000.); +#26373=VECTOR('',#42170,1000.); +#26374=VECTOR('',#42177,1000.); +#26375=VECTOR('',#42184,1000.); +#26376=VECTOR('',#42191,1000.); +#26377=VECTOR('',#42198,1000.); +#26378=VECTOR('',#42205,1000.); +#26379=VECTOR('',#42212,1000.); +#26380=VECTOR('',#42219,1000.); +#26381=VECTOR('',#42226,1000.); +#26382=VECTOR('',#42233,1000.); +#26383=VECTOR('',#42240,1000.); +#26384=VECTOR('',#42247,1000.); +#26385=VECTOR('',#42254,1000.); +#26386=VECTOR('',#42261,1000.); +#26387=VECTOR('',#42268,1000.); +#26388=VECTOR('',#42275,1000.); +#26389=VECTOR('',#42282,1000.); +#26390=VECTOR('',#42289,1000.); +#26391=VECTOR('',#42296,1000.); +#26392=VECTOR('',#42297,1000.); +#26393=VECTOR('',#42298,1000.); +#26394=VECTOR('',#42305,1000.); +#26395=VECTOR('',#42306,1000.); +#26396=VECTOR('',#42307,1000.); +#26397=VECTOR('',#42314,1000.); +#26398=VECTOR('',#42315,1000.); +#26399=VECTOR('',#42316,1000.); +#26400=VECTOR('',#42323,1000.); +#26401=VECTOR('',#42324,1000.); +#26402=VECTOR('',#42325,1000.); +#26403=VECTOR('',#42332,1000.); +#26404=VECTOR('',#42333,1000.); +#26405=VECTOR('',#42334,1000.); +#26406=VECTOR('',#42341,1000.); +#26407=VECTOR('',#42342,1000.); +#26408=VECTOR('',#42343,1000.); +#26409=VECTOR('',#42350,1000.); +#26410=VECTOR('',#42351,1000.); +#26411=VECTOR('',#42352,1000.); +#26412=VECTOR('',#42359,1000.); +#26413=VECTOR('',#42360,1000.); +#26414=VECTOR('',#42361,1000.); +#26415=VECTOR('',#42368,1000.); +#26416=VECTOR('',#42369,1000.); +#26417=VECTOR('',#42370,1000.); +#26418=VECTOR('',#42377,1000.); +#26419=VECTOR('',#42378,1000.); +#26420=VECTOR('',#42379,1000.); +#26421=VECTOR('',#42386,1000.); +#26422=VECTOR('',#42387,1000.); +#26423=VECTOR('',#42388,1000.); +#26424=VECTOR('',#42395,1000.); +#26425=VECTOR('',#42396,1000.); +#26426=VECTOR('',#42397,1000.); +#26427=VECTOR('',#42404,1000.); +#26428=VECTOR('',#42405,1000.); +#26429=VECTOR('',#42406,1000.); +#26430=VECTOR('',#42413,1000.); +#26431=VECTOR('',#42414,1000.); +#26432=VECTOR('',#42415,1000.); +#26433=VECTOR('',#42422,1000.); +#26434=VECTOR('',#42423,1000.); +#26435=VECTOR('',#42424,1000.); +#26436=VECTOR('',#42431,1000.); +#26437=VECTOR('',#42432,1000.); +#26438=VECTOR('',#42433,1000.); +#26439=VECTOR('',#42440,1000.); +#26440=VECTOR('',#42441,1000.); +#26441=VECTOR('',#42442,1000.); +#26442=VECTOR('',#42449,1000.); +#26443=VECTOR('',#42450,1000.); +#26444=VECTOR('',#42451,1000.); +#26445=VECTOR('',#42458,1000.); +#26446=VECTOR('',#42459,1000.); +#26447=VECTOR('',#42460,1000.); +#26448=VECTOR('',#42583,1000.); +#26449=VECTOR('',#42588,1000.); +#26450=VECTOR('',#42595,1000.); +#26451=VECTOR('',#42602,1000.); +#26452=VECTOR('',#42609,1000.); +#26453=VECTOR('',#42616,1000.); +#26454=VECTOR('',#42623,1000.); +#26455=VECTOR('',#42630,1000.); +#26456=VECTOR('',#42637,1000.); +#26457=VECTOR('',#42644,1000.); +#26458=VECTOR('',#42651,1000.); +#26459=VECTOR('',#42658,1000.); +#26460=VECTOR('',#42665,1000.); +#26461=VECTOR('',#42672,1000.); +#26462=VECTOR('',#42679,1000.); +#26463=VECTOR('',#42686,1000.); +#26464=VECTOR('',#42693,1000.); +#26465=VECTOR('',#42700,1000.); +#26466=VECTOR('',#42707,1000.); +#26467=VECTOR('',#42714,1000.); +#26468=VECTOR('',#42721,1000.); +#26469=VECTOR('',#42726,1000.); +#26470=VECTOR('',#42729,1000.); +#26471=VECTOR('',#42732,1000.); +#26472=VECTOR('',#42735,1000.); +#26473=VECTOR('',#42738,1000.); +#26474=VECTOR('',#42741,1000.); +#26475=VECTOR('',#42744,1000.); +#26476=VECTOR('',#42747,1000.); +#26477=VECTOR('',#42750,1000.); +#26478=VECTOR('',#42753,1000.); +#26479=VECTOR('',#42756,1000.); +#26480=VECTOR('',#42759,1000.); +#26481=VECTOR('',#42762,1000.); +#26482=VECTOR('',#42765,1000.); +#26483=VECTOR('',#42768,1000.); +#26484=VECTOR('',#42771,1000.); +#26485=VECTOR('',#42774,1000.); +#26486=VECTOR('',#42777,1000.); +#26487=VECTOR('',#42780,1000.); +#26488=VECTOR('',#42783,1000.); +#26489=VECTOR('',#42786,1000.); +#26490=VECTOR('',#42789,1000.); +#26491=VECTOR('',#42792,1000.); +#26492=VECTOR('',#42795,1000.); +#26493=VECTOR('',#42798,1000.); +#26494=VECTOR('',#42801,1000.); +#26495=VECTOR('',#42804,1000.); +#26496=VECTOR('',#42807,1000.); +#26497=VECTOR('',#42810,1000.); +#26498=VECTOR('',#42813,1000.); +#26499=VECTOR('',#42816,1000.); +#26500=VECTOR('',#42819,1000.); +#26501=VECTOR('',#42822,1000.); +#26502=VECTOR('',#42825,1000.); +#26503=VECTOR('',#42828,1000.); +#26504=VECTOR('',#42831,1000.); +#26505=VECTOR('',#42834,1000.); +#26506=VECTOR('',#42837,1000.); +#26507=VECTOR('',#42840,1000.); +#26508=VECTOR('',#42843,1000.); +#26509=VECTOR('',#42846,1000.); +#26510=VECTOR('',#42849,1000.); +#26511=VECTOR('',#42852,1000.); +#26512=VECTOR('',#42855,1000.); +#26513=VECTOR('',#42858,1000.); +#26514=VECTOR('',#42861,1000.); +#26515=VECTOR('',#42864,1000.); +#26516=VECTOR('',#42867,1000.); +#26517=VECTOR('',#42870,1000.); +#26518=VECTOR('',#42873,1000.); +#26519=VECTOR('',#42876,1000.); +#26520=VECTOR('',#42879,1000.); +#26521=VECTOR('',#42882,1000.); +#26522=VECTOR('',#42885,1000.); +#26523=VECTOR('',#42888,1000.); +#26524=VECTOR('',#42891,1000.); +#26525=VECTOR('',#42894,1000.); +#26526=VECTOR('',#43013,1000.); +#26527=VECTOR('',#43018,1000.); +#26528=VECTOR('',#43019,1000.); +#26529=VECTOR('',#43022,1000.); +#26530=VECTOR('',#43023,1000.); +#26531=VECTOR('',#43028,1000.); +#26532=VECTOR('',#43029,1000.); +#26533=VECTOR('',#43034,1000.); +#26534=VECTOR('',#43039,1000.); +#26535=VECTOR('',#43042,1000.); +#26536=VECTOR('',#43045,1000.); +#26537=VECTOR('',#43048,1000.); +#26538=VECTOR('',#43049,1000.); +#26539=VECTOR('',#43052,1000.); +#26540=VECTOR('',#43055,1000.); +#26541=VECTOR('',#43058,1000.); +#26542=VECTOR('',#43065,1000.); +#26543=VECTOR('',#43066,1000.); +#26544=VECTOR('',#43069,1000.); +#26545=VECTOR('',#43072,1000.); +#26546=VECTOR('',#43075,1000.); +#26547=VECTOR('',#43080,1000.); +#26548=VECTOR('',#43081,1000.); +#26549=VECTOR('',#43088,1000.); +#26550=VECTOR('',#43091,1000.); +#26551=VECTOR('',#43094,1000.); +#26552=VECTOR('',#43097,1000.); +#26553=VECTOR('',#43100,1000.); +#26554=VECTOR('',#43103,1000.); +#26555=VECTOR('',#43106,1000.); +#26556=VECTOR('',#43111,1000.); +#26557=VECTOR('',#43114,1000.); +#26558=VECTOR('',#43117,1000.); +#26559=VECTOR('',#43120,1000.); +#26560=VECTOR('',#43123,1000.); +#26561=VECTOR('',#43126,1000.); +#26562=VECTOR('',#43129,1000.); +#26563=VECTOR('',#43134,1000.); +#26564=VECTOR('',#43137,1000.); +#26565=VECTOR('',#43140,1000.); +#26566=VECTOR('',#43141,1000.); +#26567=VECTOR('',#43144,1000.); +#26568=VECTOR('',#43147,1000.); +#26569=VECTOR('',#43150,1000.); +#26570=VECTOR('',#43153,1000.); +#26571=VECTOR('',#43158,1000.); +#26572=VECTOR('',#43161,1000.); +#26573=VECTOR('',#43164,1000.); +#26574=VECTOR('',#43167,1000.); +#26575=VECTOR('',#43170,1000.); +#26576=VECTOR('',#43173,1000.); +#26577=VECTOR('',#43178,1000.); +#26578=VECTOR('',#43181,1000.); +#26579=VECTOR('',#43186,1000.); +#26580=VECTOR('',#43189,1000.); +#26581=VECTOR('',#43192,1000.); +#26582=VECTOR('',#43193,1000.); +#26583=VECTOR('',#43196,1000.); +#26584=VECTOR('',#43199,1000.); +#26585=VECTOR('',#43202,1000.); +#26586=VECTOR('',#43205,1000.); +#26587=VECTOR('',#43210,1000.); +#26588=VECTOR('',#43213,1000.); +#26589=VECTOR('',#43216,1000.); +#26590=VECTOR('',#43219,1000.); +#26591=VECTOR('',#43222,1000.); +#26592=VECTOR('',#43225,1000.); +#26593=VECTOR('',#43230,1000.); +#26594=VECTOR('',#43233,1000.); +#26595=VECTOR('',#43238,1000.); +#26596=VECTOR('',#43241,1000.); +#26597=VECTOR('',#43244,1000.); +#26598=VECTOR('',#43245,1000.); +#26599=VECTOR('',#43248,1000.); +#26600=VECTOR('',#43251,1000.); +#26601=VECTOR('',#43254,1000.); +#26602=VECTOR('',#43257,1000.); +#26603=VECTOR('',#43262,1000.); +#26604=VECTOR('',#43265,1000.); +#26605=VECTOR('',#43268,1000.); +#26606=VECTOR('',#43271,1000.); +#26607=VECTOR('',#43274,1000.); +#26608=VECTOR('',#43277,1000.); +#26609=VECTOR('',#43282,1000.); +#26610=VECTOR('',#43285,1000.); +#26611=VECTOR('',#43290,1000.); +#26612=VECTOR('',#43293,1000.); +#26613=VECTOR('',#43296,1000.); +#26614=VECTOR('',#43297,1000.); +#26615=VECTOR('',#43300,1000.); +#26616=VECTOR('',#43303,1000.); +#26617=VECTOR('',#43306,1000.); +#26618=VECTOR('',#43309,1000.); +#26619=VECTOR('',#43314,1000.); +#26620=VECTOR('',#43317,1000.); +#26621=VECTOR('',#43320,1000.); +#26622=VECTOR('',#43323,1000.); +#26623=VECTOR('',#43326,1000.); +#26624=VECTOR('',#43329,1000.); +#26625=VECTOR('',#43334,1000.); +#26626=VECTOR('',#43337,1000.); +#26627=VECTOR('',#43342,1000.); +#26628=VECTOR('',#43345,1000.); +#26629=VECTOR('',#43348,1000.); +#26630=VECTOR('',#43349,1000.); +#26631=VECTOR('',#43352,1000.); +#26632=VECTOR('',#43355,1000.); +#26633=VECTOR('',#43358,1000.); +#26634=VECTOR('',#43361,1000.); +#26635=VECTOR('',#43366,1000.); +#26636=VECTOR('',#43369,1000.); +#26637=VECTOR('',#43372,1000.); +#26638=VECTOR('',#43375,1000.); +#26639=VECTOR('',#43378,1000.); +#26640=VECTOR('',#43381,1000.); +#26641=VECTOR('',#43386,1000.); +#26642=VECTOR('',#43389,1000.); +#26643=VECTOR('',#43394,1000.); +#26644=VECTOR('',#43397,1000.); +#26645=VECTOR('',#43400,1000.); +#26646=VECTOR('',#43401,1000.); +#26647=VECTOR('',#43404,1000.); +#26648=VECTOR('',#43407,1000.); +#26649=VECTOR('',#43410,1000.); +#26650=VECTOR('',#43413,1000.); +#26651=VECTOR('',#43418,1000.); +#26652=VECTOR('',#43421,1000.); +#26653=VECTOR('',#43424,1000.); +#26654=VECTOR('',#43427,1000.); +#26655=VECTOR('',#43430,1000.); +#26656=VECTOR('',#43433,1000.); +#26657=VECTOR('',#43438,1000.); +#26658=VECTOR('',#43441,1000.); +#26659=VECTOR('',#43446,1000.); +#26660=VECTOR('',#43449,1000.); +#26661=VECTOR('',#43452,1000.); +#26662=VECTOR('',#43453,1000.); +#26663=VECTOR('',#43456,1000.); +#26664=VECTOR('',#43459,1000.); +#26665=VECTOR('',#43462,1000.); +#26666=VECTOR('',#43465,1000.); +#26667=VECTOR('',#43470,1000.); +#26668=VECTOR('',#43473,1000.); +#26669=VECTOR('',#43476,1000.); +#26670=VECTOR('',#43479,1000.); +#26671=VECTOR('',#43482,1000.); +#26672=VECTOR('',#43485,1000.); +#26673=VECTOR('',#43490,1000.); +#26674=VECTOR('',#43493,1000.); +#26675=VECTOR('',#43498,1000.); +#26676=VECTOR('',#43501,1000.); +#26677=VECTOR('',#43504,1000.); +#26678=VECTOR('',#43505,1000.); +#26679=VECTOR('',#43508,1000.); +#26680=VECTOR('',#43511,1000.); +#26681=VECTOR('',#43514,1000.); +#26682=VECTOR('',#43517,1000.); +#26683=VECTOR('',#43522,1000.); +#26684=VECTOR('',#43525,1000.); +#26685=VECTOR('',#43528,1000.); +#26686=VECTOR('',#43531,1000.); +#26687=VECTOR('',#43534,1000.); +#26688=VECTOR('',#43537,1000.); +#26689=VECTOR('',#43542,1000.); +#26690=VECTOR('',#43545,1000.); +#26691=VECTOR('',#43550,1000.); +#26692=VECTOR('',#43553,1000.); +#26693=VECTOR('',#43556,1000.); +#26694=VECTOR('',#43557,1000.); +#26695=VECTOR('',#43560,1000.); +#26696=VECTOR('',#43563,1000.); +#26697=VECTOR('',#43566,1000.); +#26698=VECTOR('',#43569,1000.); +#26699=VECTOR('',#43574,1000.); +#26700=VECTOR('',#43577,1000.); +#26701=VECTOR('',#43580,1000.); +#26702=VECTOR('',#43583,1000.); +#26703=VECTOR('',#43586,1000.); +#26704=VECTOR('',#43589,1000.); +#26705=VECTOR('',#43594,1000.); +#26706=VECTOR('',#43597,1000.); +#26707=VECTOR('',#43602,1000.); +#26708=VECTOR('',#43605,1000.); +#26709=VECTOR('',#43608,1000.); +#26710=VECTOR('',#43609,1000.); +#26711=VECTOR('',#43612,1000.); +#26712=VECTOR('',#43615,1000.); +#26713=VECTOR('',#43618,1000.); +#26714=VECTOR('',#43621,1000.); +#26715=VECTOR('',#43626,1000.); +#26716=VECTOR('',#43629,1000.); +#26717=VECTOR('',#43632,1000.); +#26718=VECTOR('',#43635,1000.); +#26719=VECTOR('',#43638,1000.); +#26720=VECTOR('',#43641,1000.); +#26721=VECTOR('',#43646,1000.); +#26722=VECTOR('',#43649,1000.); +#26723=VECTOR('',#43654,1000.); +#26724=VECTOR('',#43657,1000.); +#26725=VECTOR('',#43660,1000.); +#26726=VECTOR('',#43661,1000.); +#26727=VECTOR('',#43664,1000.); +#26728=VECTOR('',#43667,1000.); +#26729=VECTOR('',#43670,1000.); +#26730=VECTOR('',#43673,1000.); +#26731=VECTOR('',#43678,1000.); +#26732=VECTOR('',#43681,1000.); +#26733=VECTOR('',#43684,1000.); +#26734=VECTOR('',#43687,1000.); +#26735=VECTOR('',#43690,1000.); +#26736=VECTOR('',#43693,1000.); +#26737=VECTOR('',#43698,1000.); +#26738=VECTOR('',#43701,1000.); +#26739=VECTOR('',#43706,1000.); +#26740=VECTOR('',#43709,1000.); +#26741=VECTOR('',#43712,1000.); +#26742=VECTOR('',#43713,1000.); +#26743=VECTOR('',#43716,1000.); +#26744=VECTOR('',#43719,1000.); +#26745=VECTOR('',#43722,1000.); +#26746=VECTOR('',#43725,1000.); +#26747=VECTOR('',#43730,1000.); +#26748=VECTOR('',#43733,1000.); +#26749=VECTOR('',#43736,1000.); +#26750=VECTOR('',#43739,1000.); +#26751=VECTOR('',#43742,1000.); +#26752=VECTOR('',#43745,1000.); +#26753=VECTOR('',#43750,1000.); +#26754=VECTOR('',#43753,1000.); +#26755=VECTOR('',#43758,1000.); +#26756=VECTOR('',#43761,1000.); +#26757=VECTOR('',#43764,1000.); +#26758=VECTOR('',#43765,1000.); +#26759=VECTOR('',#43768,1000.); +#26760=VECTOR('',#43771,1000.); +#26761=VECTOR('',#43774,1000.); +#26762=VECTOR('',#43777,1000.); +#26763=VECTOR('',#43782,1000.); +#26764=VECTOR('',#43785,1000.); +#26765=VECTOR('',#43788,1000.); +#26766=VECTOR('',#43791,1000.); +#26767=VECTOR('',#43794,1000.); +#26768=VECTOR('',#43797,1000.); +#26769=VECTOR('',#43802,1000.); +#26770=VECTOR('',#43805,1000.); +#26771=VECTOR('',#43810,1000.); +#26772=VECTOR('',#43813,1000.); +#26773=VECTOR('',#43816,1000.); +#26774=VECTOR('',#43817,1000.); +#26775=VECTOR('',#43820,1000.); +#26776=VECTOR('',#43823,1000.); +#26777=VECTOR('',#43826,1000.); +#26778=VECTOR('',#43829,1000.); +#26779=VECTOR('',#43834,1000.); +#26780=VECTOR('',#43837,1000.); +#26781=VECTOR('',#43840,1000.); +#26782=VECTOR('',#43843,1000.); +#26783=VECTOR('',#43846,1000.); +#26784=VECTOR('',#43849,1000.); +#26785=VECTOR('',#43854,1000.); +#26786=VECTOR('',#43857,1000.); +#26787=VECTOR('',#43862,1000.); +#26788=VECTOR('',#43865,1000.); +#26789=VECTOR('',#43868,1000.); +#26790=VECTOR('',#43869,1000.); +#26791=VECTOR('',#43872,1000.); +#26792=VECTOR('',#43875,1000.); +#26793=VECTOR('',#43878,1000.); +#26794=VECTOR('',#43881,1000.); +#26795=VECTOR('',#43886,1000.); +#26796=VECTOR('',#43889,1000.); +#26797=VECTOR('',#43892,1000.); +#26798=VECTOR('',#43895,1000.); +#26799=VECTOR('',#43898,1000.); +#26800=VECTOR('',#43901,1000.); +#26801=VECTOR('',#43906,1000.); +#26802=VECTOR('',#43909,1000.); +#26803=VECTOR('',#43914,1000.); +#26804=VECTOR('',#43917,1000.); +#26805=VECTOR('',#43920,1000.); +#26806=VECTOR('',#43921,1000.); +#26807=VECTOR('',#43924,1000.); +#26808=VECTOR('',#43927,1000.); +#26809=VECTOR('',#43930,1000.); +#26810=VECTOR('',#43933,1000.); +#26811=VECTOR('',#43938,1000.); +#26812=VECTOR('',#43941,1000.); +#26813=VECTOR('',#43944,1000.); +#26814=VECTOR('',#43947,1000.); +#26815=VECTOR('',#43950,1000.); +#26816=VECTOR('',#43953,1000.); +#26817=VECTOR('',#43958,1000.); +#26818=VECTOR('',#43961,1000.); +#26819=VECTOR('',#43966,1000.); +#26820=VECTOR('',#43969,1000.); +#26821=VECTOR('',#43972,1000.); +#26822=VECTOR('',#43973,1000.); +#26823=VECTOR('',#43976,1000.); +#26824=VECTOR('',#43979,1000.); +#26825=VECTOR('',#43982,1000.); +#26826=VECTOR('',#43985,1000.); +#26827=VECTOR('',#43990,1000.); +#26828=VECTOR('',#43993,1000.); +#26829=VECTOR('',#43996,1000.); +#26830=VECTOR('',#43999,1000.); +#26831=VECTOR('',#44002,1000.); +#26832=VECTOR('',#44005,1000.); +#26833=VECTOR('',#44010,1000.); +#26834=VECTOR('',#44013,1000.); +#26835=VECTOR('',#44018,1000.); +#26836=VECTOR('',#44021,1000.); +#26837=VECTOR('',#44024,1000.); +#26838=VECTOR('',#44025,1000.); +#26839=VECTOR('',#44028,1000.); +#26840=VECTOR('',#44031,1000.); +#26841=VECTOR('',#44034,1000.); +#26842=VECTOR('',#44037,1000.); +#26843=VECTOR('',#44042,1000.); +#26844=VECTOR('',#44045,1000.); +#26845=VECTOR('',#44048,1000.); +#26846=VECTOR('',#44051,1000.); +#26847=VECTOR('',#44054,1000.); +#26848=VECTOR('',#44057,1000.); +#26849=VECTOR('',#44062,1000.); +#26850=VECTOR('',#44065,1000.); +#26851=VECTOR('',#44070,1000.); +#26852=VECTOR('',#44073,1000.); +#26853=VECTOR('',#44076,1000.); +#26854=VECTOR('',#44077,1000.); +#26855=VECTOR('',#44080,1000.); +#26856=VECTOR('',#44083,1000.); +#26857=VECTOR('',#44086,1000.); +#26858=VECTOR('',#44089,1000.); +#26859=VECTOR('',#44094,1000.); +#26860=VECTOR('',#44097,1000.); +#26861=VECTOR('',#44100,1000.); +#26862=VECTOR('',#44103,1000.); +#26863=VECTOR('',#44106,1000.); +#26864=VECTOR('',#44109,1000.); +#26865=VECTOR('',#44114,1000.); +#26866=VECTOR('',#44117,1000.); +#26867=VECTOR('',#44122,1000.); +#26868=VECTOR('',#44123,1000.); +#26869=VECTOR('',#44126,1000.); +#26870=VECTOR('',#44129,1000.); +#26871=VECTOR('',#44132,1000.); +#26872=VECTOR('',#44135,1000.); +#26873=VECTOR('',#44140,1000.); +#26874=VECTOR('',#44143,1000.); +#26875=VECTOR('',#44146,1000.); +#26876=VECTOR('',#44149,1000.); +#26877=VECTOR('',#44152,1000.); +#26878=VECTOR('',#44155,1000.); +#26879=VECTOR('',#44158,1000.); +#26880=VECTOR('',#44159,1000.); +#26881=VECTOR('',#44164,1000.); +#26882=VECTOR('',#44167,1000.); +#26883=VECTOR('',#44174,1000.); +#26884=VECTOR('',#44175,1000.); +#26885=VECTOR('',#44178,1000.); +#26886=VECTOR('',#44181,1000.); +#26887=VECTOR('',#44184,1000.); +#26888=VECTOR('',#44187,1000.); +#26889=VECTOR('',#44192,1000.); +#26890=VECTOR('',#44195,1000.); +#26891=VECTOR('',#44198,1000.); +#26892=VECTOR('',#44201,1000.); +#26893=VECTOR('',#44204,1000.); +#26894=VECTOR('',#44207,1000.); +#26895=VECTOR('',#44210,1000.); +#26896=VECTOR('',#44211,1000.); +#26897=VECTOR('',#44216,1000.); +#26898=VECTOR('',#44219,1000.); +#26899=VECTOR('',#44226,1000.); +#26900=VECTOR('',#44227,1000.); +#26901=VECTOR('',#44230,1000.); +#26902=VECTOR('',#44233,1000.); +#26903=VECTOR('',#44236,1000.); +#26904=VECTOR('',#44239,1000.); +#26905=VECTOR('',#44244,1000.); +#26906=VECTOR('',#44247,1000.); +#26907=VECTOR('',#44250,1000.); +#26908=VECTOR('',#44253,1000.); +#26909=VECTOR('',#44256,1000.); +#26910=VECTOR('',#44259,1000.); +#26911=VECTOR('',#44262,1000.); +#26912=VECTOR('',#44263,1000.); +#26913=VECTOR('',#44268,1000.); +#26914=VECTOR('',#44271,1000.); +#26915=VECTOR('',#44278,1000.); +#26916=VECTOR('',#44279,1000.); +#26917=VECTOR('',#44282,1000.); +#26918=VECTOR('',#44285,1000.); +#26919=VECTOR('',#44288,1000.); +#26920=VECTOR('',#44291,1000.); +#26921=VECTOR('',#44296,1000.); +#26922=VECTOR('',#44299,1000.); +#26923=VECTOR('',#44302,1000.); +#26924=VECTOR('',#44305,1000.); +#26925=VECTOR('',#44308,1000.); +#26926=VECTOR('',#44311,1000.); +#26927=VECTOR('',#44314,1000.); +#26928=VECTOR('',#44315,1000.); +#26929=VECTOR('',#44320,1000.); +#26930=VECTOR('',#44323,1000.); +#26931=VECTOR('',#44330,1000.); +#26932=VECTOR('',#44331,1000.); +#26933=VECTOR('',#44334,1000.); +#26934=VECTOR('',#44337,1000.); +#26935=VECTOR('',#44340,1000.); +#26936=VECTOR('',#44343,1000.); +#26937=VECTOR('',#44348,1000.); +#26938=VECTOR('',#44351,1000.); +#26939=VECTOR('',#44354,1000.); +#26940=VECTOR('',#44357,1000.); +#26941=VECTOR('',#44360,1000.); +#26942=VECTOR('',#44363,1000.); +#26943=VECTOR('',#44366,1000.); +#26944=VECTOR('',#44367,1000.); +#26945=VECTOR('',#44372,1000.); +#26946=VECTOR('',#44375,1000.); +#26947=VECTOR('',#44382,1000.); +#26948=VECTOR('',#44383,1000.); +#26949=VECTOR('',#44386,1000.); +#26950=VECTOR('',#44389,1000.); +#26951=VECTOR('',#44392,1000.); +#26952=VECTOR('',#44395,1000.); +#26953=VECTOR('',#44400,1000.); +#26954=VECTOR('',#44403,1000.); +#26955=VECTOR('',#44406,1000.); +#26956=VECTOR('',#44409,1000.); +#26957=VECTOR('',#44412,1000.); +#26958=VECTOR('',#44415,1000.); +#26959=VECTOR('',#44418,1000.); +#26960=VECTOR('',#44419,1000.); +#26961=VECTOR('',#44424,1000.); +#26962=VECTOR('',#44427,1000.); +#26963=VECTOR('',#44434,1000.); +#26964=VECTOR('',#44435,1000.); +#26965=VECTOR('',#44438,1000.); +#26966=VECTOR('',#44441,1000.); +#26967=VECTOR('',#44444,1000.); +#26968=VECTOR('',#44447,1000.); +#26969=VECTOR('',#44452,1000.); +#26970=VECTOR('',#44455,1000.); +#26971=VECTOR('',#44458,1000.); +#26972=VECTOR('',#44461,1000.); +#26973=VECTOR('',#44464,1000.); +#26974=VECTOR('',#44467,1000.); +#26975=VECTOR('',#44470,1000.); +#26976=VECTOR('',#44471,1000.); +#26977=VECTOR('',#44476,1000.); +#26978=VECTOR('',#44479,1000.); +#26979=VECTOR('',#44486,1000.); +#26980=VECTOR('',#44487,1000.); +#26981=VECTOR('',#44490,1000.); +#26982=VECTOR('',#44493,1000.); +#26983=VECTOR('',#44496,1000.); +#26984=VECTOR('',#44499,1000.); +#26985=VECTOR('',#44504,1000.); +#26986=VECTOR('',#44507,1000.); +#26987=VECTOR('',#44510,1000.); +#26988=VECTOR('',#44513,1000.); +#26989=VECTOR('',#44516,1000.); +#26990=VECTOR('',#44519,1000.); +#26991=VECTOR('',#44522,1000.); +#26992=VECTOR('',#44523,1000.); +#26993=VECTOR('',#44528,1000.); +#26994=VECTOR('',#44531,1000.); +#26995=VECTOR('',#44538,1000.); +#26996=VECTOR('',#44539,1000.); +#26997=VECTOR('',#44542,1000.); +#26998=VECTOR('',#44545,1000.); +#26999=VECTOR('',#44548,1000.); +#27000=VECTOR('',#44551,1000.); +#27001=VECTOR('',#44556,1000.); +#27002=VECTOR('',#44559,1000.); +#27003=VECTOR('',#44562,1000.); +#27004=VECTOR('',#44565,1000.); +#27005=VECTOR('',#44568,1000.); +#27006=VECTOR('',#44571,1000.); +#27007=VECTOR('',#44574,1000.); +#27008=VECTOR('',#44575,1000.); +#27009=VECTOR('',#44580,1000.); +#27010=VECTOR('',#44583,1000.); +#27011=VECTOR('',#44590,1000.); +#27012=VECTOR('',#44591,1000.); +#27013=VECTOR('',#44594,1000.); +#27014=VECTOR('',#44597,1000.); +#27015=VECTOR('',#44600,1000.); +#27016=VECTOR('',#44603,1000.); +#27017=VECTOR('',#44608,1000.); +#27018=VECTOR('',#44611,1000.); +#27019=VECTOR('',#44614,1000.); +#27020=VECTOR('',#44617,1000.); +#27021=VECTOR('',#44620,1000.); +#27022=VECTOR('',#44623,1000.); +#27023=VECTOR('',#44626,1000.); +#27024=VECTOR('',#44627,1000.); +#27025=VECTOR('',#44632,1000.); +#27026=VECTOR('',#44635,1000.); +#27027=VECTOR('',#44642,1000.); +#27028=VECTOR('',#44643,1000.); +#27029=VECTOR('',#44646,1000.); +#27030=VECTOR('',#44649,1000.); +#27031=VECTOR('',#44652,1000.); +#27032=VECTOR('',#44655,1000.); +#27033=VECTOR('',#44660,1000.); +#27034=VECTOR('',#44663,1000.); +#27035=VECTOR('',#44666,1000.); +#27036=VECTOR('',#44669,1000.); +#27037=VECTOR('',#44672,1000.); +#27038=VECTOR('',#44675,1000.); +#27039=VECTOR('',#44678,1000.); +#27040=VECTOR('',#44679,1000.); +#27041=VECTOR('',#44684,1000.); +#27042=VECTOR('',#44687,1000.); +#27043=VECTOR('',#44694,1000.); +#27044=VECTOR('',#44695,1000.); +#27045=VECTOR('',#44698,1000.); +#27046=VECTOR('',#44701,1000.); +#27047=VECTOR('',#44704,1000.); +#27048=VECTOR('',#44707,1000.); +#27049=VECTOR('',#44712,1000.); +#27050=VECTOR('',#44715,1000.); +#27051=VECTOR('',#44718,1000.); +#27052=VECTOR('',#44721,1000.); +#27053=VECTOR('',#44724,1000.); +#27054=VECTOR('',#44727,1000.); +#27055=VECTOR('',#44730,1000.); +#27056=VECTOR('',#44731,1000.); +#27057=VECTOR('',#44736,1000.); +#27058=VECTOR('',#44739,1000.); +#27059=VECTOR('',#44746,1000.); +#27060=VECTOR('',#44747,1000.); +#27061=VECTOR('',#44750,1000.); +#27062=VECTOR('',#44753,1000.); +#27063=VECTOR('',#44756,1000.); +#27064=VECTOR('',#44759,1000.); +#27065=VECTOR('',#44764,1000.); +#27066=VECTOR('',#44767,1000.); +#27067=VECTOR('',#44770,1000.); +#27068=VECTOR('',#44773,1000.); +#27069=VECTOR('',#44776,1000.); +#27070=VECTOR('',#44779,1000.); +#27071=VECTOR('',#44782,1000.); +#27072=VECTOR('',#44783,1000.); +#27073=VECTOR('',#44788,1000.); +#27074=VECTOR('',#44791,1000.); +#27075=VECTOR('',#44798,1000.); +#27076=VECTOR('',#44799,1000.); +#27077=VECTOR('',#44802,1000.); +#27078=VECTOR('',#44805,1000.); +#27079=VECTOR('',#44808,1000.); +#27080=VECTOR('',#44811,1000.); +#27081=VECTOR('',#44816,1000.); +#27082=VECTOR('',#44819,1000.); +#27083=VECTOR('',#44822,1000.); +#27084=VECTOR('',#44825,1000.); +#27085=VECTOR('',#44828,1000.); +#27086=VECTOR('',#44831,1000.); +#27087=VECTOR('',#44834,1000.); +#27088=VECTOR('',#44835,1000.); +#27089=VECTOR('',#44840,1000.); +#27090=VECTOR('',#44843,1000.); +#27091=VECTOR('',#44850,1000.); +#27092=VECTOR('',#44851,1000.); +#27093=VECTOR('',#44854,1000.); +#27094=VECTOR('',#44857,1000.); +#27095=VECTOR('',#44860,1000.); +#27096=VECTOR('',#44863,1000.); +#27097=VECTOR('',#44868,1000.); +#27098=VECTOR('',#44871,1000.); +#27099=VECTOR('',#44874,1000.); +#27100=VECTOR('',#44877,1000.); +#27101=VECTOR('',#44880,1000.); +#27102=VECTOR('',#44883,1000.); +#27103=VECTOR('',#44886,1000.); +#27104=VECTOR('',#44887,1000.); +#27105=VECTOR('',#44892,1000.); +#27106=VECTOR('',#44895,1000.); +#27107=VECTOR('',#44902,1000.); +#27108=VECTOR('',#44903,1000.); +#27109=VECTOR('',#44906,1000.); +#27110=VECTOR('',#44909,1000.); +#27111=VECTOR('',#44912,1000.); +#27112=VECTOR('',#44915,1000.); +#27113=VECTOR('',#44920,1000.); +#27114=VECTOR('',#44923,1000.); +#27115=VECTOR('',#44926,1000.); +#27116=VECTOR('',#44929,1000.); +#27117=VECTOR('',#44932,1000.); +#27118=VECTOR('',#44935,1000.); +#27119=VECTOR('',#44938,1000.); +#27120=VECTOR('',#44939,1000.); +#27121=VECTOR('',#44944,1000.); +#27122=VECTOR('',#44947,1000.); +#27123=VECTOR('',#44954,1000.); +#27124=VECTOR('',#44955,1000.); +#27125=VECTOR('',#44958,1000.); +#27126=VECTOR('',#44961,1000.); +#27127=VECTOR('',#44964,1000.); +#27128=VECTOR('',#44967,1000.); +#27129=VECTOR('',#44972,1000.); +#27130=VECTOR('',#44975,1000.); +#27131=VECTOR('',#44978,1000.); +#27132=VECTOR('',#44981,1000.); +#27133=VECTOR('',#44984,1000.); +#27134=VECTOR('',#44987,1000.); +#27135=VECTOR('',#44990,1000.); +#27136=VECTOR('',#44991,1000.); +#27137=VECTOR('',#44996,1000.); +#27138=VECTOR('',#44999,1000.); +#27139=VECTOR('',#45006,1000.); +#27140=VECTOR('',#45007,1000.); +#27141=VECTOR('',#45010,1000.); +#27142=VECTOR('',#45013,1000.); +#27143=VECTOR('',#45016,1000.); +#27144=VECTOR('',#45019,1000.); +#27145=VECTOR('',#45024,1000.); +#27146=VECTOR('',#45027,1000.); +#27147=VECTOR('',#45030,1000.); +#27148=VECTOR('',#45033,1000.); +#27149=VECTOR('',#45036,1000.); +#27150=VECTOR('',#45039,1000.); +#27151=VECTOR('',#45042,1000.); +#27152=VECTOR('',#45043,1000.); +#27153=VECTOR('',#45048,1000.); +#27154=VECTOR('',#45051,1000.); +#27155=VECTOR('',#45058,1000.); +#27156=VECTOR('',#45059,1000.); +#27157=VECTOR('',#45062,1000.); +#27158=VECTOR('',#45065,1000.); +#27159=VECTOR('',#45068,1000.); +#27160=VECTOR('',#45071,1000.); +#27161=VECTOR('',#45076,1000.); +#27162=VECTOR('',#45079,1000.); +#27163=VECTOR('',#45082,1000.); +#27164=VECTOR('',#45085,1000.); +#27165=VECTOR('',#45088,1000.); +#27166=VECTOR('',#45091,1000.); +#27167=VECTOR('',#45094,1000.); +#27168=VECTOR('',#45095,1000.); +#27169=VECTOR('',#45100,1000.); +#27170=VECTOR('',#45103,1000.); +#27171=EDGE_LOOP('',(#1844,#1845,#1846,#1847,#1848,#1849)); +#27172=EDGE_LOOP('',(#1850,#1851,#1852,#1853,#1854,#1855)); +#27173=EDGE_LOOP('',(#1856,#1857,#1858,#1859,#1860,#1861,#1862,#1863,#1864, +#1865,#1866,#1867,#1868,#1869,#1870,#1871,#1872,#1873,#1874,#1875,#1876, +#1877,#1878,#1879,#1880,#1881,#1882,#1883,#1884,#1885,#1886,#1887,#1888, +#1889,#1890)); +#27174=EDGE_LOOP('',(#1891,#1892,#1893,#1894,#1895,#1896,#1897,#1898,#1899, +#1900)); +#27175=EDGE_LOOP('',(#1901,#1902,#1903,#1904,#1905,#1906,#1907,#1908)); +#27176=EDGE_LOOP('',(#1909)); +#27177=EDGE_LOOP('',(#1910,#1911,#1912,#1913,#1914,#1915,#1916,#1917,#1918, +#1919)); +#27178=EDGE_LOOP('',(#1920,#1921,#1922,#1923,#1924,#1925,#1926,#1927)); +#27179=EDGE_LOOP('',(#1928,#1929,#1930,#1931,#1932,#1933,#1934,#1935,#1936, +#1937,#1938,#1939,#1940,#1941,#1942,#1943,#1944,#1945,#1946,#1947,#1948, +#1949,#1950,#1951,#1952,#1953,#1954,#1955,#1956,#1957,#1958,#1959,#1960, +#1961,#1962,#1963,#1964,#1965,#1966,#1967,#1968,#1969,#1970,#1971,#1972, +#1973,#1974,#1975,#1976,#1977,#1978,#1979,#1980,#1981,#1982,#1983,#1984, +#1985,#1986,#1987,#1988,#1989,#1990,#1991,#1992,#1993,#1994,#1995,#1996, +#1997,#1998,#1999,#2000,#2001,#2002,#2003,#2004,#2005,#2006,#2007,#2008, +#2009,#2010,#2011,#2012,#2013,#2014,#2015,#2016,#2017,#2018,#2019,#2020, +#2021,#2022,#2023,#2024,#2025,#2026,#2027,#2028,#2029,#2030,#2031,#2032, +#2033,#2034,#2035,#2036,#2037,#2038,#2039,#2040,#2041,#2042,#2043,#2044, +#2045,#2046,#2047,#2048,#2049,#2050,#2051,#2052,#2053,#2054,#2055,#2056, +#2057,#2058,#2059,#2060,#2061,#2062,#2063,#2064,#2065,#2066,#2067,#2068, +#2069,#2070,#2071,#2072,#2073,#2074,#2075,#2076,#2077,#2078,#2079,#2080, +#2081,#2082,#2083,#2084,#2085,#2086,#2087,#2088,#2089,#2090,#2091,#2092, +#2093)); +#27180=EDGE_LOOP('',(#2094,#2095,#2096,#2097,#2098,#2099,#2100,#2101,#2102, +#2103,#2104,#2105,#2106,#2107,#2108,#2109,#2110,#2111,#2112,#2113,#2114, +#2115,#2116,#2117,#2118,#2119,#2120,#2121,#2122,#2123,#2124,#2125,#2126, +#2127,#2128,#2129,#2130,#2131,#2132,#2133,#2134,#2135,#2136,#2137,#2138, +#2139,#2140,#2141,#2142,#2143,#2144,#2145,#2146,#2147,#2148,#2149,#2150, +#2151,#2152,#2153,#2154,#2155,#2156,#2157,#2158,#2159,#2160,#2161,#2162, +#2163,#2164,#2165,#2166,#2167,#2168,#2169,#2170,#2171,#2172,#2173)); +#27181=EDGE_LOOP('',(#2174,#2175,#2176,#2177,#2178,#2179,#2180,#2181,#2182)); +#27182=EDGE_LOOP('',(#2183,#2184,#2185,#2186)); +#27183=EDGE_LOOP('',(#2187,#2188,#2189,#2190)); +#27184=EDGE_LOOP('',(#2191,#2192,#2193,#2194,#2195,#2196,#2197,#2198,#2199, +#2200,#2201,#2202)); +#27185=EDGE_LOOP('',(#2203,#2204,#2205,#2206,#2207,#2208,#2209,#2210,#2211, +#2212,#2213,#2214)); +#27186=EDGE_LOOP('',(#2215,#2216,#2217,#2218)); +#27187=EDGE_LOOP('',(#2219,#2220,#2221,#2222)); +#27188=EDGE_LOOP('',(#2223,#2224,#2225,#2226,#2227,#2228,#2229,#2230,#2231, +#2232,#2233,#2234)); +#27189=EDGE_LOOP('',(#2235,#2236,#2237,#2238,#2239,#2240,#2241,#2242,#2243, +#2244,#2245,#2246)); +#27190=EDGE_LOOP('',(#2247,#2248,#2249,#2250)); +#27191=EDGE_LOOP('',(#2251,#2252,#2253,#2254)); +#27192=EDGE_LOOP('',(#2255,#2256,#2257,#2258,#2259,#2260,#2261,#2262,#2263, +#2264,#2265,#2266)); +#27193=EDGE_LOOP('',(#2267,#2268,#2269,#2270,#2271,#2272,#2273,#2274,#2275, +#2276,#2277,#2278)); +#27194=EDGE_LOOP('',(#2279,#2280,#2281,#2282)); +#27195=EDGE_LOOP('',(#2283,#2284,#2285,#2286)); +#27196=EDGE_LOOP('',(#2287,#2288,#2289,#2290,#2291,#2292,#2293,#2294,#2295, +#2296,#2297,#2298)); +#27197=EDGE_LOOP('',(#2299,#2300,#2301,#2302,#2303,#2304,#2305,#2306,#2307, +#2308,#2309,#2310)); +#27198=EDGE_LOOP('',(#2311,#2312,#2313,#2314)); +#27199=EDGE_LOOP('',(#2315,#2316,#2317,#2318)); +#27200=EDGE_LOOP('',(#2319,#2320,#2321,#2322,#2323,#2324,#2325,#2326,#2327, +#2328,#2329,#2330)); +#27201=EDGE_LOOP('',(#2331,#2332,#2333,#2334,#2335,#2336,#2337,#2338,#2339, +#2340,#2341,#2342)); +#27202=EDGE_LOOP('',(#2343,#2344,#2345,#2346)); +#27203=EDGE_LOOP('',(#2347,#2348,#2349,#2350)); +#27204=EDGE_LOOP('',(#2351,#2352,#2353,#2354,#2355,#2356,#2357,#2358,#2359, +#2360,#2361,#2362)); +#27205=EDGE_LOOP('',(#2363,#2364,#2365,#2366,#2367,#2368,#2369,#2370,#2371, +#2372,#2373,#2374)); +#27206=EDGE_LOOP('',(#2375,#2376,#2377,#2378)); +#27207=EDGE_LOOP('',(#2379,#2380,#2381,#2382)); +#27208=EDGE_LOOP('',(#2383,#2384,#2385,#2386,#2387,#2388,#2389,#2390,#2391, +#2392,#2393,#2394)); +#27209=EDGE_LOOP('',(#2395,#2396,#2397,#2398,#2399,#2400,#2401,#2402,#2403, +#2404,#2405,#2406)); +#27210=EDGE_LOOP('',(#2407,#2408,#2409,#2410)); +#27211=EDGE_LOOP('',(#2411,#2412,#2413,#2414)); +#27212=EDGE_LOOP('',(#2415,#2416,#2417,#2418,#2419,#2420,#2421,#2422,#2423, +#2424,#2425,#2426)); +#27213=EDGE_LOOP('',(#2427,#2428,#2429,#2430,#2431,#2432,#2433,#2434,#2435, +#2436,#2437,#2438)); +#27214=EDGE_LOOP('',(#2439,#2440,#2441,#2442)); +#27215=EDGE_LOOP('',(#2443,#2444,#2445,#2446)); +#27216=EDGE_LOOP('',(#2447,#2448,#2449,#2450,#2451,#2452,#2453,#2454,#2455, +#2456,#2457,#2458)); +#27217=EDGE_LOOP('',(#2459,#2460,#2461,#2462,#2463,#2464,#2465,#2466,#2467, +#2468,#2469,#2470)); +#27218=EDGE_LOOP('',(#2471,#2472,#2473,#2474)); +#27219=EDGE_LOOP('',(#2475,#2476,#2477,#2478)); +#27220=EDGE_LOOP('',(#2479,#2480,#2481,#2482,#2483,#2484,#2485,#2486,#2487, +#2488,#2489,#2490)); +#27221=EDGE_LOOP('',(#2491,#2492,#2493,#2494,#2495,#2496,#2497,#2498,#2499, +#2500,#2501,#2502)); +#27222=EDGE_LOOP('',(#2503,#2504,#2505,#2506)); +#27223=EDGE_LOOP('',(#2507,#2508,#2509,#2510)); +#27224=EDGE_LOOP('',(#2511,#2512,#2513,#2514,#2515,#2516,#2517,#2518,#2519, +#2520,#2521,#2522)); +#27225=EDGE_LOOP('',(#2523,#2524,#2525,#2526,#2527,#2528,#2529,#2530,#2531, +#2532,#2533,#2534)); +#27226=EDGE_LOOP('',(#2535,#2536,#2537,#2538)); +#27227=EDGE_LOOP('',(#2539,#2540,#2541,#2542)); +#27228=EDGE_LOOP('',(#2543,#2544,#2545,#2546,#2547,#2548,#2549,#2550,#2551, +#2552,#2553,#2554)); +#27229=EDGE_LOOP('',(#2555,#2556,#2557,#2558,#2559,#2560,#2561,#2562,#2563, +#2564,#2565,#2566)); +#27230=EDGE_LOOP('',(#2567,#2568,#2569,#2570)); +#27231=EDGE_LOOP('',(#2571,#2572,#2573,#2574)); +#27232=EDGE_LOOP('',(#2575,#2576,#2577,#2578,#2579,#2580,#2581,#2582,#2583, +#2584,#2585,#2586)); +#27233=EDGE_LOOP('',(#2587,#2588,#2589,#2590,#2591,#2592,#2593,#2594,#2595, +#2596,#2597,#2598)); +#27234=EDGE_LOOP('',(#2599,#2600,#2601,#2602)); +#27235=EDGE_LOOP('',(#2603,#2604,#2605,#2606)); +#27236=EDGE_LOOP('',(#2607,#2608,#2609,#2610,#2611,#2612,#2613,#2614,#2615, +#2616,#2617,#2618)); +#27237=EDGE_LOOP('',(#2619,#2620,#2621,#2622,#2623,#2624,#2625,#2626,#2627, +#2628,#2629,#2630)); +#27238=EDGE_LOOP('',(#2631,#2632,#2633,#2634)); +#27239=EDGE_LOOP('',(#2635,#2636,#2637,#2638)); +#27240=EDGE_LOOP('',(#2639,#2640,#2641,#2642,#2643,#2644,#2645,#2646,#2647, +#2648,#2649,#2650)); +#27241=EDGE_LOOP('',(#2651,#2652,#2653,#2654,#2655,#2656,#2657,#2658,#2659, +#2660,#2661,#2662)); +#27242=EDGE_LOOP('',(#2663,#2664,#2665,#2666)); +#27243=EDGE_LOOP('',(#2667,#2668,#2669,#2670)); +#27244=EDGE_LOOP('',(#2671,#2672,#2673,#2674,#2675,#2676,#2677,#2678,#2679, +#2680,#2681,#2682)); +#27245=EDGE_LOOP('',(#2683,#2684,#2685,#2686,#2687,#2688,#2689,#2690,#2691, +#2692,#2693,#2694)); +#27246=EDGE_LOOP('',(#2695,#2696,#2697,#2698)); +#27247=EDGE_LOOP('',(#2699,#2700,#2701,#2702)); +#27248=EDGE_LOOP('',(#2703,#2704,#2705,#2706,#2707,#2708,#2709,#2710,#2711, +#2712,#2713,#2714)); +#27249=EDGE_LOOP('',(#2715,#2716,#2717,#2718,#2719,#2720,#2721,#2722,#2723, +#2724,#2725,#2726)); +#27250=EDGE_LOOP('',(#2727,#2728,#2729,#2730)); +#27251=EDGE_LOOP('',(#2731,#2732,#2733,#2734)); +#27252=EDGE_LOOP('',(#2735,#2736,#2737,#2738,#2739,#2740,#2741,#2742,#2743, +#2744,#2745,#2746)); +#27253=EDGE_LOOP('',(#2747,#2748,#2749,#2750,#2751,#2752,#2753,#2754,#2755, +#2756,#2757,#2758)); +#27254=EDGE_LOOP('',(#2759,#2760,#2761,#2762)); +#27255=EDGE_LOOP('',(#2763,#2764,#2765,#2766)); +#27256=EDGE_LOOP('',(#2767,#2768,#2769,#2770,#2771,#2772,#2773,#2774,#2775, +#2776,#2777,#2778)); +#27257=EDGE_LOOP('',(#2779,#2780,#2781,#2782,#2783,#2784,#2785,#2786,#2787, +#2788,#2789,#2790)); +#27258=EDGE_LOOP('',(#2791,#2792,#2793,#2794,#2795,#2796,#2797,#2798,#2799, +#2800,#2801,#2802)); +#27259=EDGE_LOOP('',(#2803,#2804,#2805,#2806)); +#27260=EDGE_LOOP('',(#2807,#2808,#2809,#2810)); +#27261=EDGE_LOOP('',(#2811,#2812,#2813,#2814,#2815,#2816,#2817,#2818,#2819, +#2820,#2821,#2822)); +#27262=EDGE_LOOP('',(#2823,#2824,#2825,#2826,#2827,#2828,#2829)); +#27263=EDGE_LOOP('',(#2830,#2831,#2832,#2833)); +#27264=EDGE_LOOP('',(#2834,#2835,#2836,#2837)); +#27265=EDGE_LOOP('',(#2838,#2839,#2840,#2841)); +#27266=EDGE_LOOP('',(#2842,#2843,#2844,#2845)); +#27267=EDGE_LOOP('',(#2846,#2847,#2848,#2849)); +#27268=EDGE_LOOP('',(#2850,#2851,#2852,#2853)); +#27269=EDGE_LOOP('',(#2854,#2855,#2856,#2857)); +#27270=EDGE_LOOP('',(#2858,#2859,#2860,#2861)); +#27271=EDGE_LOOP('',(#2862,#2863,#2864,#2865)); +#27272=EDGE_LOOP('',(#2866,#2867,#2868,#2869)); +#27273=EDGE_LOOP('',(#2870,#2871,#2872,#2873)); +#27274=EDGE_LOOP('',(#2874,#2875,#2876,#2877)); +#27275=EDGE_LOOP('',(#2878,#2879,#2880,#2881)); +#27276=EDGE_LOOP('',(#2882,#2883,#2884,#2885)); +#27277=EDGE_LOOP('',(#2886,#2887,#2888,#2889)); +#27278=EDGE_LOOP('',(#2890,#2891,#2892,#2893)); +#27279=EDGE_LOOP('',(#2894,#2895,#2896,#2897)); +#27280=EDGE_LOOP('',(#2898,#2899,#2900,#2901)); +#27281=EDGE_LOOP('',(#2902,#2903,#2904,#2905)); +#27282=EDGE_LOOP('',(#2906,#2907,#2908,#2909,#2910,#2911,#2912)); +#27283=EDGE_LOOP('',(#2913,#2914,#2915,#2916,#2917,#2918)); +#27284=EDGE_LOOP('',(#2919,#2920,#2921,#2922)); +#27285=EDGE_LOOP('',(#2923,#2924,#2925,#2926)); +#27286=EDGE_LOOP('',(#2927,#2928,#2929,#2930)); +#27287=EDGE_LOOP('',(#2931,#2932,#2933,#2934)); +#27288=EDGE_LOOP('',(#2935,#2936,#2937,#2938)); +#27289=EDGE_LOOP('',(#2939,#2940,#2941,#2942)); +#27290=EDGE_LOOP('',(#2943,#2944,#2945,#2946)); +#27291=EDGE_LOOP('',(#2947,#2948,#2949,#2950)); +#27292=EDGE_LOOP('',(#2951,#2952,#2953,#2954)); +#27293=EDGE_LOOP('',(#2955,#2956,#2957,#2958)); +#27294=EDGE_LOOP('',(#2959,#2960,#2961,#2962)); +#27295=EDGE_LOOP('',(#2963,#2964,#2965,#2966)); +#27296=EDGE_LOOP('',(#2967,#2968,#2969,#2970)); +#27297=EDGE_LOOP('',(#2971,#2972,#2973,#2974)); +#27298=EDGE_LOOP('',(#2975,#2976,#2977,#2978)); +#27299=EDGE_LOOP('',(#2979,#2980,#2981,#2982)); +#27300=EDGE_LOOP('',(#2983,#2984,#2985,#2986)); +#27301=EDGE_LOOP('',(#2987,#2988,#2989,#2990)); +#27302=EDGE_LOOP('',(#2991,#2992,#2993,#2994)); +#27303=EDGE_LOOP('',(#2995,#2996,#2997,#2998,#2999,#3000)); +#27304=EDGE_LOOP('',(#3001,#3002,#3003,#3004)); +#27305=EDGE_LOOP('',(#3005,#3006,#3007,#3008)); +#27306=EDGE_LOOP('',(#3009,#3010,#3011,#3012)); +#27307=EDGE_LOOP('',(#3013,#3014,#3015,#3016)); +#27308=EDGE_LOOP('',(#3017,#3018,#3019,#3020)); +#27309=EDGE_LOOP('',(#3021,#3022,#3023,#3024)); +#27310=EDGE_LOOP('',(#3025,#3026,#3027,#3028)); +#27311=EDGE_LOOP('',(#3029,#3030,#3031,#3032)); +#27312=EDGE_LOOP('',(#3033,#3034,#3035,#3036)); +#27313=EDGE_LOOP('',(#3037,#3038,#3039,#3040)); +#27314=EDGE_LOOP('',(#3041,#3042,#3043,#3044)); +#27315=EDGE_LOOP('',(#3045,#3046,#3047,#3048)); +#27316=EDGE_LOOP('',(#3049,#3050,#3051,#3052)); +#27317=EDGE_LOOP('',(#3053,#3054,#3055,#3056)); +#27318=EDGE_LOOP('',(#3057,#3058,#3059,#3060)); +#27319=EDGE_LOOP('',(#3061,#3062,#3063,#3064)); +#27320=EDGE_LOOP('',(#3065,#3066,#3067,#3068)); +#27321=EDGE_LOOP('',(#3069,#3070,#3071,#3072)); +#27322=EDGE_LOOP('',(#3073,#3074,#3075,#3076)); +#27323=EDGE_LOOP('',(#3077,#3078,#3079,#3080)); +#27324=EDGE_LOOP('',(#3081,#3082,#3083,#3084)); +#27325=EDGE_LOOP('',(#3085,#3086,#3087,#3088)); +#27326=EDGE_LOOP('',(#3089,#3090,#3091,#3092)); +#27327=EDGE_LOOP('',(#3093,#3094,#3095,#3096)); +#27328=EDGE_LOOP('',(#3097,#3098,#3099,#3100)); +#27329=EDGE_LOOP('',(#3101,#3102,#3103,#3104)); +#27330=EDGE_LOOP('',(#3105,#3106,#3107,#3108)); +#27331=EDGE_LOOP('',(#3109,#3110,#3111,#3112)); +#27332=EDGE_LOOP('',(#3113,#3114,#3115,#3116,#3117,#3118)); +#27333=EDGE_LOOP('',(#3119,#3120,#3121,#3122)); +#27334=EDGE_LOOP('',(#3123,#3124,#3125,#3126)); +#27335=EDGE_LOOP('',(#3127,#3128,#3129,#3130)); +#27336=EDGE_LOOP('',(#3131,#3132,#3133,#3134)); +#27337=EDGE_LOOP('',(#3135,#3136,#3137,#3138)); +#27338=EDGE_LOOP('',(#3139,#3140,#3141,#3142)); +#27339=EDGE_LOOP('',(#3143,#3144,#3145,#3146,#3147,#3148)); +#27340=EDGE_LOOP('',(#3149,#3150,#3151,#3152,#3153,#3154)); +#27341=EDGE_LOOP('',(#3155,#3156,#3157,#3158,#3159,#3160)); +#27342=EDGE_LOOP('',(#3161,#3162,#3163,#3164)); +#27343=EDGE_LOOP('',(#3165,#3166,#3167,#3168,#3169,#3170)); +#27344=EDGE_LOOP('',(#3171,#3172,#3173,#3174,#3175,#3176)); +#27345=EDGE_LOOP('',(#3177,#3178,#3179,#3180)); +#27346=EDGE_LOOP('',(#3181,#3182,#3183,#3184,#3185)); +#27347=EDGE_LOOP('',(#3186,#3187,#3188,#3189,#3190)); +#27348=EDGE_LOOP('',(#3191,#3192,#3193,#3194,#3195,#3196)); +#27349=EDGE_LOOP('',(#3197,#3198,#3199,#3200)); +#27350=EDGE_LOOP('',(#3201,#3202,#3203,#3204)); +#27351=EDGE_LOOP('',(#3205,#3206,#3207,#3208)); +#27352=EDGE_LOOP('',(#3209,#3210,#3211,#3212)); +#27353=EDGE_LOOP('',(#3213,#3214,#3215,#3216)); +#27354=EDGE_LOOP('',(#3217,#3218,#3219,#3220)); +#27355=EDGE_LOOP('',(#3221,#3222,#3223,#3224)); +#27356=EDGE_LOOP('',(#3225,#3226,#3227,#3228)); +#27357=EDGE_LOOP('',(#3229,#3230,#3231,#3232)); +#27358=EDGE_LOOP('',(#3233,#3234,#3235,#3236)); +#27359=EDGE_LOOP('',(#3237,#3238,#3239,#3240)); +#27360=EDGE_LOOP('',(#3241,#3242,#3243,#3244)); +#27361=EDGE_LOOP('',(#3245,#3246,#3247,#3248)); +#27362=EDGE_LOOP('',(#3249,#3250,#3251,#3252,#3253,#3254,#3255,#3256,#3257, +#3258,#3259,#3260,#3261,#3262,#3263,#3264,#3265,#3266,#3267,#3268,#3269, +#3270,#3271,#3272,#3273,#3274,#3275,#3276,#3277,#3278,#3279,#3280)); +#27363=EDGE_LOOP('',(#3281,#3282,#3283,#3284,#3285,#3286,#3287,#3288)); +#27364=EDGE_LOOP('',(#3289,#3290,#3291,#3292,#3293,#3294,#3295,#3296)); +#27365=EDGE_LOOP('',(#3297,#3298,#3299,#3300)); +#27366=EDGE_LOOP('',(#3301,#3302,#3303,#3304)); +#27367=EDGE_LOOP('',(#3305,#3306,#3307,#3308)); +#27368=EDGE_LOOP('',(#3309,#3310,#3311,#3312)); +#27369=EDGE_LOOP('',(#3313,#3314,#3315,#3316)); +#27370=EDGE_LOOP('',(#3317,#3318,#3319,#3320,#3321,#3322,#3323,#3324)); +#27371=EDGE_LOOP('',(#3325,#3326,#3327,#3328,#3329,#3330,#3331,#3332)); +#27372=EDGE_LOOP('',(#3333,#3334,#3335,#3336,#3337,#3338,#3339,#3340,#3341, +#3342,#3343,#3344,#3345,#3346,#3347,#3348,#3349,#3350,#3351,#3352,#3353, +#3354,#3355,#3356,#3357,#3358,#3359,#3360,#3361,#3362,#3363,#3364)); +#27373=EDGE_LOOP('',(#3365,#3366,#3367,#3368)); +#27374=EDGE_LOOP('',(#3369,#3370,#3371,#3372)); +#27375=EDGE_LOOP('',(#3373,#3374,#3375,#3376)); +#27376=EDGE_LOOP('',(#3377,#3378,#3379,#3380,#3381)); +#27377=EDGE_LOOP('',(#3382,#3383,#3384,#3385,#3386)); +#27378=EDGE_LOOP('',(#3387,#3388,#3389,#3390)); +#27379=EDGE_LOOP('',(#3391,#3392,#3393,#3394)); +#27380=EDGE_LOOP('',(#3395,#3396,#3397,#3398)); +#27381=EDGE_LOOP('',(#3399,#3400,#3401,#3402)); +#27382=EDGE_LOOP('',(#3403,#3404,#3405,#3406)); +#27383=EDGE_LOOP('',(#3407,#3408,#3409,#3410)); +#27384=EDGE_LOOP('',(#3411,#3412,#3413,#3414)); +#27385=EDGE_LOOP('',(#3415,#3416,#3417,#3418)); +#27386=EDGE_LOOP('',(#3419,#3420,#3421,#3422)); +#27387=EDGE_LOOP('',(#3423,#3424,#3425,#3426)); +#27388=EDGE_LOOP('',(#3427,#3428,#3429,#3430)); +#27389=EDGE_LOOP('',(#3431,#3432,#3433,#3434)); +#27390=EDGE_LOOP('',(#3435,#3436,#3437,#3438)); +#27391=EDGE_LOOP('',(#3439,#3440,#3441,#3442)); +#27392=EDGE_LOOP('',(#3443,#3444,#3445,#3446)); +#27393=EDGE_LOOP('',(#3447,#3448,#3449,#3450)); +#27394=EDGE_LOOP('',(#3451,#3452,#3453,#3454)); +#27395=EDGE_LOOP('',(#3455,#3456,#3457,#3458)); +#27396=EDGE_LOOP('',(#3459,#3460,#3461,#3462)); +#27397=EDGE_LOOP('',(#3463,#3464,#3465,#3466)); +#27398=EDGE_LOOP('',(#3467,#3468,#3469,#3470)); +#27399=EDGE_LOOP('',(#3471,#3472,#3473,#3474)); +#27400=EDGE_LOOP('',(#3475,#3476,#3477,#3478)); +#27401=EDGE_LOOP('',(#3479,#3480,#3481,#3482)); +#27402=EDGE_LOOP('',(#3483,#3484,#3485,#3486)); +#27403=EDGE_LOOP('',(#3487,#3488,#3489,#3490)); +#27404=EDGE_LOOP('',(#3491,#3492,#3493,#3494)); +#27405=EDGE_LOOP('',(#3495,#3496,#3497,#3498)); +#27406=EDGE_LOOP('',(#3499,#3500,#3501,#3502)); +#27407=EDGE_LOOP('',(#3503,#3504,#3505,#3506)); +#27408=EDGE_LOOP('',(#3507,#3508,#3509,#3510)); +#27409=EDGE_LOOP('',(#3511,#3512,#3513,#3514)); +#27410=EDGE_LOOP('',(#3515,#3516,#3517,#3518)); +#27411=EDGE_LOOP('',(#3519,#3520,#3521,#3522)); +#27412=EDGE_LOOP('',(#3523,#3524,#3525,#3526)); +#27413=EDGE_LOOP('',(#3527,#3528,#3529,#3530)); +#27414=EDGE_LOOP('',(#3531,#3532,#3533,#3534)); +#27415=EDGE_LOOP('',(#3535,#3536,#3537,#3538)); +#27416=EDGE_LOOP('',(#3539,#3540,#3541,#3542)); +#27417=EDGE_LOOP('',(#3543,#3544,#3545,#3546)); +#27418=EDGE_LOOP('',(#3547,#3548,#3549,#3550)); +#27419=EDGE_LOOP('',(#3551,#3552,#3553,#3554)); +#27420=EDGE_LOOP('',(#3555,#3556,#3557,#3558)); +#27421=EDGE_LOOP('',(#3559,#3560,#3561,#3562)); +#27422=EDGE_LOOP('',(#3563,#3564,#3565,#3566)); +#27423=EDGE_LOOP('',(#3567,#3568,#3569,#3570)); +#27424=EDGE_LOOP('',(#3571,#3572,#3573,#3574)); +#27425=EDGE_LOOP('',(#3575,#3576,#3577,#3578)); +#27426=EDGE_LOOP('',(#3579,#3580,#3581,#3582)); +#27427=EDGE_LOOP('',(#3583,#3584,#3585,#3586)); +#27428=EDGE_LOOP('',(#3587,#3588,#3589,#3590)); +#27429=EDGE_LOOP('',(#3591,#3592,#3593,#3594)); +#27430=EDGE_LOOP('',(#3595,#3596,#3597,#3598)); +#27431=EDGE_LOOP('',(#3599,#3600,#3601,#3602)); +#27432=EDGE_LOOP('',(#3603,#3604,#3605,#3606)); +#27433=EDGE_LOOP('',(#3607,#3608,#3609,#3610)); +#27434=EDGE_LOOP('',(#3611,#3612,#3613,#3614)); +#27435=EDGE_LOOP('',(#3615,#3616,#3617,#3618)); +#27436=EDGE_LOOP('',(#3619,#3620,#3621,#3622)); +#27437=EDGE_LOOP('',(#3623,#3624,#3625,#3626)); +#27438=EDGE_LOOP('',(#3627,#3628,#3629,#3630)); +#27439=EDGE_LOOP('',(#3631,#3632,#3633,#3634)); +#27440=EDGE_LOOP('',(#3635,#3636,#3637,#3638)); +#27441=EDGE_LOOP('',(#3639,#3640,#3641,#3642)); +#27442=EDGE_LOOP('',(#3643,#3644,#3645,#3646)); +#27443=EDGE_LOOP('',(#3647,#3648,#3649,#3650)); +#27444=EDGE_LOOP('',(#3651,#3652,#3653,#3654)); +#27445=EDGE_LOOP('',(#3655,#3656,#3657,#3658)); +#27446=EDGE_LOOP('',(#3659,#3660,#3661,#3662)); +#27447=EDGE_LOOP('',(#3663,#3664,#3665,#3666)); +#27448=EDGE_LOOP('',(#3667,#3668,#3669,#3670)); +#27449=EDGE_LOOP('',(#3671,#3672,#3673,#3674)); +#27450=EDGE_LOOP('',(#3675,#3676,#3677,#3678)); +#27451=EDGE_LOOP('',(#3679,#3680,#3681,#3682)); +#27452=EDGE_LOOP('',(#3683,#3684,#3685,#3686)); +#27453=EDGE_LOOP('',(#3687,#3688,#3689,#3690)); +#27454=EDGE_LOOP('',(#3691,#3692,#3693,#3694)); +#27455=EDGE_LOOP('',(#3695,#3696,#3697,#3698)); +#27456=EDGE_LOOP('',(#3699,#3700,#3701,#3702)); +#27457=EDGE_LOOP('',(#3703,#3704,#3705,#3706)); +#27458=EDGE_LOOP('',(#3707,#3708,#3709,#3710)); +#27459=EDGE_LOOP('',(#3711,#3712,#3713,#3714)); +#27460=EDGE_LOOP('',(#3715,#3716,#3717,#3718)); +#27461=EDGE_LOOP('',(#3719,#3720,#3721,#3722)); +#27462=EDGE_LOOP('',(#3723,#3724,#3725,#3726)); +#27463=EDGE_LOOP('',(#3727,#3728,#3729,#3730)); +#27464=EDGE_LOOP('',(#3731,#3732,#3733,#3734)); +#27465=EDGE_LOOP('',(#3735,#3736,#3737,#3738)); +#27466=EDGE_LOOP('',(#3739,#3740,#3741,#3742)); +#27467=EDGE_LOOP('',(#3743,#3744,#3745,#3746)); +#27468=EDGE_LOOP('',(#3747,#3748,#3749,#3750)); +#27469=EDGE_LOOP('',(#3751,#3752,#3753,#3754)); +#27470=EDGE_LOOP('',(#3755,#3756,#3757,#3758)); +#27471=EDGE_LOOP('',(#3759,#3760,#3761,#3762)); +#27472=EDGE_LOOP('',(#3763,#3764,#3765,#3766)); +#27473=EDGE_LOOP('',(#3767,#3768,#3769,#3770)); +#27474=EDGE_LOOP('',(#3771,#3772,#3773,#3774)); +#27475=EDGE_LOOP('',(#3775,#3776,#3777,#3778)); +#27476=EDGE_LOOP('',(#3779,#3780,#3781,#3782)); +#27477=EDGE_LOOP('',(#3783,#3784,#3785,#3786)); +#27478=EDGE_LOOP('',(#3787,#3788,#3789,#3790)); +#27479=EDGE_LOOP('',(#3791,#3792,#3793,#3794)); +#27480=EDGE_LOOP('',(#3795,#3796,#3797,#3798)); +#27481=EDGE_LOOP('',(#3799,#3800,#3801,#3802)); +#27482=EDGE_LOOP('',(#3803,#3804,#3805,#3806)); +#27483=EDGE_LOOP('',(#3807,#3808,#3809,#3810)); +#27484=EDGE_LOOP('',(#3811,#3812,#3813,#3814)); +#27485=EDGE_LOOP('',(#3815,#3816,#3817,#3818)); +#27486=EDGE_LOOP('',(#3819,#3820,#3821,#3822)); +#27487=EDGE_LOOP('',(#3823,#3824,#3825,#3826)); +#27488=EDGE_LOOP('',(#3827,#3828,#3829,#3830)); +#27489=EDGE_LOOP('',(#3831,#3832,#3833,#3834)); +#27490=EDGE_LOOP('',(#3835,#3836,#3837,#3838)); +#27491=EDGE_LOOP('',(#3839,#3840,#3841,#3842)); +#27492=EDGE_LOOP('',(#3843,#3844,#3845,#3846)); +#27493=EDGE_LOOP('',(#3847,#3848,#3849,#3850)); +#27494=EDGE_LOOP('',(#3851,#3852,#3853,#3854)); +#27495=EDGE_LOOP('',(#3855,#3856,#3857,#3858)); +#27496=EDGE_LOOP('',(#3859,#3860,#3861,#3862)); +#27497=EDGE_LOOP('',(#3863,#3864,#3865,#3866)); +#27498=EDGE_LOOP('',(#3867,#3868,#3869,#3870)); +#27499=EDGE_LOOP('',(#3871,#3872,#3873,#3874)); +#27500=EDGE_LOOP('',(#3875,#3876,#3877,#3878)); +#27501=EDGE_LOOP('',(#3879,#3880,#3881,#3882)); +#27502=EDGE_LOOP('',(#3883,#3884,#3885,#3886)); +#27503=EDGE_LOOP('',(#3887,#3888,#3889,#3890)); +#27504=EDGE_LOOP('',(#3891,#3892,#3893,#3894)); +#27505=EDGE_LOOP('',(#3895,#3896,#3897,#3898)); +#27506=EDGE_LOOP('',(#3899,#3900,#3901,#3902)); +#27507=EDGE_LOOP('',(#3903,#3904,#3905,#3906)); +#27508=EDGE_LOOP('',(#3907,#3908,#3909,#3910)); +#27509=EDGE_LOOP('',(#3911,#3912,#3913,#3914)); +#27510=EDGE_LOOP('',(#3915,#3916,#3917,#3918)); +#27511=EDGE_LOOP('',(#3919,#3920,#3921,#3922)); +#27512=EDGE_LOOP('',(#3923,#3924,#3925,#3926)); +#27513=EDGE_LOOP('',(#3927,#3928,#3929,#3930)); +#27514=EDGE_LOOP('',(#3931,#3932,#3933,#3934)); +#27515=EDGE_LOOP('',(#3935,#3936,#3937,#3938)); +#27516=EDGE_LOOP('',(#3939,#3940,#3941,#3942)); +#27517=EDGE_LOOP('',(#3943,#3944,#3945,#3946)); +#27518=EDGE_LOOP('',(#3947,#3948,#3949,#3950)); +#27519=EDGE_LOOP('',(#3951,#3952,#3953,#3954)); +#27520=EDGE_LOOP('',(#3955,#3956,#3957,#3958)); +#27521=EDGE_LOOP('',(#3959,#3960,#3961,#3962)); +#27522=EDGE_LOOP('',(#3963,#3964,#3965,#3966)); +#27523=EDGE_LOOP('',(#3967,#3968,#3969,#3970)); +#27524=EDGE_LOOP('',(#3971,#3972,#3973,#3974)); +#27525=EDGE_LOOP('',(#3975,#3976,#3977,#3978)); +#27526=EDGE_LOOP('',(#3979,#3980,#3981)); +#27527=EDGE_LOOP('',(#3982,#3983,#3984,#3985)); +#27528=EDGE_LOOP('',(#3986,#3987,#3988,#3989)); +#27529=EDGE_LOOP('',(#3990,#3991,#3992,#3993,#3994,#3995,#3996)); +#27530=EDGE_LOOP('',(#3997)); +#27531=EDGE_LOOP('',(#3998)); +#27532=EDGE_LOOP('',(#3999)); +#27533=EDGE_LOOP('',(#4000)); +#27534=EDGE_LOOP('',(#4001)); +#27535=EDGE_LOOP('',(#4002,#4003,#4004,#4005)); +#27536=EDGE_LOOP('',(#4006,#4007,#4008,#4009)); +#27537=EDGE_LOOP('',(#4010,#4011,#4012,#4013)); +#27538=EDGE_LOOP('',(#4014,#4015,#4016,#4017)); +#27539=EDGE_LOOP('',(#4018,#4019,#4020,#4021)); +#27540=EDGE_LOOP('',(#4022,#4023,#4024,#4025)); +#27541=EDGE_LOOP('',(#4026,#4027,#4028,#4029)); +#27542=EDGE_LOOP('',(#4030,#4031,#4032,#4033)); +#27543=EDGE_LOOP('',(#4034,#4035,#4036,#4037,#4038,#4039,#4040,#4041)); +#27544=EDGE_LOOP('',(#4042,#4043,#4044,#4045)); +#27545=EDGE_LOOP('',(#4046,#4047,#4048,#4049)); +#27546=EDGE_LOOP('',(#4050,#4051,#4052,#4053)); +#27547=EDGE_LOOP('',(#4054,#4055,#4056,#4057)); +#27548=EDGE_LOOP('',(#4058,#4059,#4060,#4061)); +#27549=EDGE_LOOP('',(#4062,#4063,#4064,#4065)); +#27550=EDGE_LOOP('',(#4066,#4067,#4068,#4069)); +#27551=EDGE_LOOP('',(#4070,#4071,#4072,#4073)); +#27552=EDGE_LOOP('',(#4074,#4075,#4076,#4077)); +#27553=EDGE_LOOP('',(#4078,#4079,#4080,#4081)); +#27554=EDGE_LOOP('',(#4082,#4083,#4084,#4085,#4086,#4087,#4088,#4089,#4090, +#4091)); +#27555=EDGE_LOOP('',(#4092,#4093,#4094,#4095)); +#27556=EDGE_LOOP('',(#4096,#4097,#4098,#4099)); +#27557=EDGE_LOOP('',(#4100,#4101,#4102,#4103)); +#27558=EDGE_LOOP('',(#4104,#4105,#4106,#4107)); +#27559=EDGE_LOOP('',(#4108,#4109,#4110,#4111)); +#27560=EDGE_LOOP('',(#4112,#4113,#4114,#4115)); +#27561=EDGE_LOOP('',(#4116,#4117,#4118,#4119)); +#27562=EDGE_LOOP('',(#4120,#4121,#4122,#4123)); +#27563=EDGE_LOOP('',(#4124,#4125,#4126,#4127)); +#27564=EDGE_LOOP('',(#4128,#4129,#4130,#4131)); +#27565=EDGE_LOOP('',(#4132,#4133,#4134,#4135,#4136,#4137,#4138,#4139,#4140, +#4141)); +#27566=EDGE_LOOP('',(#4142,#4143,#4144,#4145)); +#27567=EDGE_LOOP('',(#4146,#4147,#4148,#4149)); +#27568=EDGE_LOOP('',(#4150,#4151,#4152,#4153,#4154,#4155)); +#27569=EDGE_LOOP('',(#4156,#4157,#4158,#4159)); +#27570=EDGE_LOOP('',(#4160,#4161,#4162,#4163)); +#27571=EDGE_LOOP('',(#4164,#4165,#4166,#4167)); +#27572=EDGE_LOOP('',(#4168,#4169,#4170,#4171)); +#27573=EDGE_LOOP('',(#4172,#4173,#4174,#4175)); +#27574=EDGE_LOOP('',(#4176,#4177,#4178,#4179,#4180,#4181,#4182,#4183)); +#27575=EDGE_LOOP('',(#4184,#4185,#4186,#4187)); +#27576=EDGE_LOOP('',(#4188,#4189,#4190,#4191)); +#27577=EDGE_LOOP('',(#4192,#4193,#4194,#4195)); +#27578=EDGE_LOOP('',(#4196,#4197,#4198,#4199,#4200,#4201,#4202,#4203,#4204, +#4205,#4206,#4207,#4208,#4209,#4210,#4211,#4212,#4213,#4214,#4215,#4216, +#4217,#4218,#4219,#4220,#4221,#4222,#4223,#4224,#4225,#4226,#4227,#4228, +#4229,#4230,#4231,#4232,#4233,#4234,#4235,#4236,#4237,#4238,#4239,#4240, +#4241,#4242,#4243,#4244,#4245,#4246,#4247,#4248,#4249,#4250,#4251,#4252, +#4253,#4254,#4255,#4256,#4257,#4258,#4259,#4260,#4261,#4262,#4263,#4264, +#4265,#4266,#4267,#4268,#4269,#4270,#4271,#4272,#4273,#4274,#4275,#4276, +#4277,#4278,#4279,#4280,#4281,#4282,#4283,#4284,#4285,#4286,#4287,#4288, +#4289,#4290,#4291,#4292,#4293,#4294,#4295,#4296,#4297,#4298,#4299,#4300, +#4301,#4302,#4303,#4304,#4305,#4306,#4307,#4308,#4309,#4310,#4311,#4312, +#4313,#4314,#4315,#4316,#4317,#4318,#4319,#4320,#4321,#4322,#4323,#4324, +#4325,#4326,#4327,#4328,#4329,#4330,#4331,#4332,#4333,#4334,#4335,#4336, +#4337,#4338,#4339,#4340,#4341,#4342,#4343,#4344,#4345,#4346,#4347,#4348, +#4349,#4350,#4351,#4352,#4353,#4354,#4355,#4356,#4357,#4358,#4359)); +#27579=EDGE_LOOP('',(#4360,#4361,#4362,#4363,#4364,#4365,#4366,#4367,#4368, +#4369,#4370,#4371,#4372,#4373,#4374,#4375,#4376,#4377,#4378,#4379,#4380, +#4381,#4382,#4383,#4384,#4385,#4386,#4387,#4388,#4389,#4390,#4391,#4392, +#4393,#4394,#4395,#4396,#4397,#4398,#4399,#4400,#4401,#4402,#4403,#4404, +#4405,#4406,#4407,#4408,#4409,#4410,#4411,#4412,#4413,#4414,#4415,#4416, +#4417,#4418,#4419,#4420,#4421,#4422,#4423,#4424,#4425,#4426,#4427,#4428, +#4429,#4430,#4431,#4432,#4433,#4434,#4435,#4436,#4437,#4438,#4439,#4440, +#4441,#4442,#4443,#4444,#4445,#4446,#4447,#4448,#4449,#4450,#4451,#4452, +#4453,#4454,#4455,#4456,#4457,#4458,#4459,#4460,#4461,#4462,#4463,#4464, +#4465,#4466,#4467,#4468,#4469,#4470,#4471,#4472,#4473,#4474,#4475,#4476, +#4477,#4478,#4479,#4480,#4481,#4482,#4483,#4484,#4485,#4486,#4487,#4488, +#4489,#4490,#4491,#4492,#4493,#4494,#4495,#4496,#4497,#4498,#4499,#4500, +#4501,#4502,#4503,#4504,#4505,#4506,#4507,#4508,#4509,#4510,#4511,#4512, +#4513,#4514,#4515,#4516,#4517,#4518,#4519,#4520,#4521,#4522,#4523)); +#27580=EDGE_LOOP('',(#4524,#4525,#4526,#4527,#4528,#4529,#4530,#4531,#4532, +#4533,#4534,#4535,#4536,#4537,#4538,#4539,#4540,#4541,#4542,#4543,#4544, +#4545,#4546,#4547,#4548,#4549,#4550,#4551,#4552,#4553,#4554,#4555,#4556, +#4557,#4558,#4559,#4560,#4561,#4562,#4563,#4564,#4565,#4566,#4567,#4568, +#4569,#4570,#4571,#4572,#4573,#4574,#4575,#4576,#4577,#4578,#4579,#4580, +#4581,#4582,#4583,#4584,#4585,#4586,#4587,#4588,#4589,#4590,#4591,#4592, +#4593,#4594,#4595,#4596,#4597,#4598,#4599,#4600,#4601,#4602,#4603,#4604, +#4605,#4606,#4607,#4608,#4609,#4610,#4611,#4612,#4613,#4614,#4615,#4616, +#4617,#4618,#4619,#4620,#4621,#4622,#4623,#4624,#4625,#4626,#4627,#4628, +#4629,#4630,#4631,#4632,#4633,#4634,#4635,#4636,#4637,#4638,#4639,#4640, +#4641,#4642,#4643,#4644,#4645,#4646,#4647,#4648,#4649,#4650,#4651,#4652, +#4653,#4654,#4655,#4656,#4657,#4658,#4659,#4660,#4661,#4662,#4663,#4664, +#4665,#4666,#4667,#4668,#4669,#4670,#4671,#4672,#4673,#4674,#4675,#4676, +#4677,#4678,#4679,#4680,#4681,#4682,#4683,#4684,#4685,#4686,#4687)); +#27581=EDGE_LOOP('',(#4688,#4689,#4690,#4691,#4692,#4693,#4694,#4695,#4696, +#4697,#4698,#4699,#4700,#4701,#4702,#4703,#4704,#4705,#4706,#4707,#4708, +#4709,#4710,#4711,#4712,#4713,#4714,#4715,#4716,#4717,#4718,#4719,#4720, +#4721,#4722,#4723,#4724,#4725,#4726,#4727,#4728,#4729,#4730,#4731,#4732, +#4733,#4734,#4735,#4736,#4737,#4738,#4739,#4740,#4741,#4742,#4743,#4744, +#4745,#4746,#4747,#4748,#4749,#4750,#4751,#4752,#4753,#4754,#4755,#4756, +#4757,#4758,#4759,#4760,#4761,#4762,#4763,#4764,#4765,#4766,#4767,#4768, +#4769,#4770,#4771,#4772,#4773,#4774,#4775,#4776,#4777,#4778,#4779,#4780, +#4781,#4782,#4783,#4784,#4785,#4786,#4787,#4788,#4789,#4790,#4791,#4792, +#4793,#4794,#4795,#4796,#4797,#4798,#4799,#4800,#4801,#4802,#4803,#4804, +#4805,#4806,#4807,#4808,#4809,#4810,#4811,#4812,#4813,#4814,#4815,#4816, +#4817,#4818,#4819,#4820,#4821,#4822,#4823,#4824,#4825,#4826,#4827,#4828, +#4829,#4830,#4831,#4832,#4833,#4834,#4835,#4836,#4837,#4838,#4839,#4840, +#4841,#4842,#4843,#4844,#4845,#4846,#4847,#4848,#4849,#4850,#4851)); +#27582=EDGE_LOOP('',(#4852,#4853,#4854,#4855)); +#27583=EDGE_LOOP('',(#4856,#4857,#4858,#4859)); +#27584=EDGE_LOOP('',(#4860,#4861,#4862,#4863)); +#27585=EDGE_LOOP('',(#4864,#4865,#4866,#4867)); +#27586=EDGE_LOOP('',(#4868,#4869,#4870,#4871)); +#27587=EDGE_LOOP('',(#4872,#4873,#4874,#4875)); +#27588=EDGE_LOOP('',(#4876,#4877,#4878,#4879)); +#27589=EDGE_LOOP('',(#4880,#4881,#4882,#4883)); +#27590=EDGE_LOOP('',(#4884,#4885,#4886,#4887)); +#27591=EDGE_LOOP('',(#4888,#4889,#4890,#4891)); +#27592=EDGE_LOOP('',(#4892,#4893,#4894,#4895)); +#27593=EDGE_LOOP('',(#4896,#4897,#4898,#4899)); +#27594=EDGE_LOOP('',(#4900,#4901,#4902,#4903)); +#27595=EDGE_LOOP('',(#4904,#4905,#4906,#4907)); +#27596=EDGE_LOOP('',(#4908,#4909,#4910,#4911)); +#27597=EDGE_LOOP('',(#4912,#4913,#4914,#4915)); +#27598=EDGE_LOOP('',(#4916,#4917,#4918,#4919)); +#27599=EDGE_LOOP('',(#4920,#4921,#4922,#4923)); +#27600=EDGE_LOOP('',(#4924,#4925,#4926,#4927)); +#27601=EDGE_LOOP('',(#4928,#4929,#4930,#4931)); +#27602=EDGE_LOOP('',(#4932,#4933,#4934,#4935)); +#27603=EDGE_LOOP('',(#4936,#4937,#4938,#4939)); +#27604=EDGE_LOOP('',(#4940,#4941,#4942,#4943)); +#27605=EDGE_LOOP('',(#4944,#4945,#4946,#4947)); +#27606=EDGE_LOOP('',(#4948,#4949,#4950,#4951)); +#27607=EDGE_LOOP('',(#4952,#4953,#4954,#4955)); +#27608=EDGE_LOOP('',(#4956,#4957,#4958,#4959)); +#27609=EDGE_LOOP('',(#4960,#4961,#4962,#4963)); +#27610=EDGE_LOOP('',(#4964,#4965,#4966,#4967)); +#27611=EDGE_LOOP('',(#4968,#4969,#4970,#4971)); +#27612=EDGE_LOOP('',(#4972,#4973,#4974,#4975)); +#27613=EDGE_LOOP('',(#4976,#4977,#4978,#4979)); +#27614=EDGE_LOOP('',(#4980,#4981,#4982,#4983)); +#27615=EDGE_LOOP('',(#4984,#4985,#4986,#4987)); +#27616=EDGE_LOOP('',(#4988,#4989,#4990,#4991)); +#27617=EDGE_LOOP('',(#4992,#4993,#4994,#4995)); +#27618=EDGE_LOOP('',(#4996,#4997,#4998,#4999)); +#27619=EDGE_LOOP('',(#5000,#5001,#5002,#5003)); +#27620=EDGE_LOOP('',(#5004,#5005,#5006,#5007)); +#27621=EDGE_LOOP('',(#5008,#5009,#5010,#5011)); +#27622=EDGE_LOOP('',(#5012,#5013,#5014,#5015)); +#27623=EDGE_LOOP('',(#5016,#5017,#5018,#5019)); +#27624=EDGE_LOOP('',(#5020,#5021,#5022,#5023)); +#27625=EDGE_LOOP('',(#5024,#5025,#5026,#5027)); +#27626=EDGE_LOOP('',(#5028,#5029,#5030,#5031)); +#27627=EDGE_LOOP('',(#5032,#5033,#5034,#5035)); +#27628=EDGE_LOOP('',(#5036,#5037,#5038,#5039)); +#27629=EDGE_LOOP('',(#5040,#5041,#5042,#5043)); +#27630=EDGE_LOOP('',(#5044,#5045,#5046,#5047)); +#27631=EDGE_LOOP('',(#5048,#5049,#5050,#5051)); +#27632=EDGE_LOOP('',(#5052,#5053,#5054,#5055)); +#27633=EDGE_LOOP('',(#5056,#5057,#5058,#5059)); +#27634=EDGE_LOOP('',(#5060,#5061,#5062,#5063)); +#27635=EDGE_LOOP('',(#5064,#5065,#5066,#5067)); +#27636=EDGE_LOOP('',(#5068,#5069,#5070,#5071)); +#27637=EDGE_LOOP('',(#5072,#5073,#5074,#5075)); +#27638=EDGE_LOOP('',(#5076,#5077,#5078,#5079)); +#27639=EDGE_LOOP('',(#5080,#5081,#5082,#5083)); +#27640=EDGE_LOOP('',(#5084,#5085,#5086,#5087)); +#27641=EDGE_LOOP('',(#5088,#5089,#5090,#5091)); +#27642=EDGE_LOOP('',(#5092,#5093,#5094,#5095)); +#27643=EDGE_LOOP('',(#5096,#5097,#5098,#5099)); +#27644=EDGE_LOOP('',(#5100,#5101,#5102,#5103)); +#27645=EDGE_LOOP('',(#5104,#5105,#5106,#5107)); +#27646=EDGE_LOOP('',(#5108,#5109,#5110,#5111)); +#27647=EDGE_LOOP('',(#5112,#5113,#5114,#5115)); +#27648=EDGE_LOOP('',(#5116,#5117,#5118,#5119)); +#27649=EDGE_LOOP('',(#5120,#5121,#5122,#5123)); +#27650=EDGE_LOOP('',(#5124,#5125,#5126,#5127)); +#27651=EDGE_LOOP('',(#5128,#5129,#5130,#5131)); +#27652=EDGE_LOOP('',(#5132,#5133,#5134,#5135)); +#27653=EDGE_LOOP('',(#5136,#5137,#5138,#5139)); +#27654=EDGE_LOOP('',(#5140,#5141,#5142,#5143)); +#27655=EDGE_LOOP('',(#5144,#5145,#5146,#5147)); +#27656=EDGE_LOOP('',(#5148,#5149,#5150,#5151)); +#27657=EDGE_LOOP('',(#5152,#5153,#5154,#5155)); +#27658=EDGE_LOOP('',(#5156,#5157,#5158,#5159)); +#27659=EDGE_LOOP('',(#5160,#5161,#5162,#5163)); +#27660=EDGE_LOOP('',(#5164,#5165,#5166,#5167)); +#27661=EDGE_LOOP('',(#5168,#5169,#5170,#5171)); +#27662=EDGE_LOOP('',(#5172,#5173,#5174,#5175)); +#27663=EDGE_LOOP('',(#5176,#5177,#5178,#5179)); +#27664=EDGE_LOOP('',(#5180,#5181,#5182,#5183)); +#27665=EDGE_LOOP('',(#5184,#5185,#5186,#5187)); +#27666=EDGE_LOOP('',(#5188,#5189,#5190,#5191)); +#27667=EDGE_LOOP('',(#5192,#5193,#5194,#5195)); +#27668=EDGE_LOOP('',(#5196,#5197,#5198,#5199)); +#27669=EDGE_LOOP('',(#5200,#5201,#5202,#5203)); +#27670=EDGE_LOOP('',(#5204,#5205,#5206,#5207)); +#27671=EDGE_LOOP('',(#5208,#5209,#5210,#5211)); +#27672=EDGE_LOOP('',(#5212,#5213,#5214,#5215)); +#27673=EDGE_LOOP('',(#5216,#5217,#5218,#5219)); +#27674=EDGE_LOOP('',(#5220,#5221,#5222,#5223)); +#27675=EDGE_LOOP('',(#5224,#5225,#5226,#5227)); +#27676=EDGE_LOOP('',(#5228,#5229,#5230,#5231)); +#27677=EDGE_LOOP('',(#5232,#5233,#5234,#5235)); +#27678=EDGE_LOOP('',(#5236,#5237,#5238,#5239)); +#27679=EDGE_LOOP('',(#5240,#5241,#5242,#5243)); +#27680=EDGE_LOOP('',(#5244,#5245,#5246,#5247)); +#27681=EDGE_LOOP('',(#5248,#5249,#5250,#5251)); +#27682=EDGE_LOOP('',(#5252,#5253,#5254,#5255)); +#27683=EDGE_LOOP('',(#5256,#5257,#5258,#5259)); +#27684=EDGE_LOOP('',(#5260,#5261,#5262,#5263)); +#27685=EDGE_LOOP('',(#5264,#5265,#5266,#5267)); +#27686=EDGE_LOOP('',(#5268,#5269,#5270,#5271)); +#27687=EDGE_LOOP('',(#5272,#5273,#5274,#5275)); +#27688=EDGE_LOOP('',(#5276,#5277,#5278,#5279)); +#27689=EDGE_LOOP('',(#5280,#5281,#5282,#5283)); +#27690=EDGE_LOOP('',(#5284,#5285,#5286,#5287)); +#27691=EDGE_LOOP('',(#5288,#5289,#5290,#5291)); +#27692=EDGE_LOOP('',(#5292,#5293,#5294,#5295)); +#27693=EDGE_LOOP('',(#5296,#5297,#5298,#5299)); +#27694=EDGE_LOOP('',(#5300,#5301,#5302,#5303)); +#27695=EDGE_LOOP('',(#5304,#5305,#5306,#5307)); +#27696=EDGE_LOOP('',(#5308,#5309,#5310,#5311)); +#27697=EDGE_LOOP('',(#5312,#5313,#5314,#5315)); +#27698=EDGE_LOOP('',(#5316,#5317,#5318,#5319)); +#27699=EDGE_LOOP('',(#5320,#5321,#5322,#5323)); +#27700=EDGE_LOOP('',(#5324,#5325,#5326,#5327)); +#27701=EDGE_LOOP('',(#5328,#5329,#5330,#5331)); +#27702=EDGE_LOOP('',(#5332,#5333,#5334,#5335)); +#27703=EDGE_LOOP('',(#5336,#5337,#5338,#5339)); +#27704=EDGE_LOOP('',(#5340,#5341,#5342,#5343)); +#27705=EDGE_LOOP('',(#5344,#5345,#5346,#5347)); +#27706=EDGE_LOOP('',(#5348,#5349,#5350,#5351)); +#27707=EDGE_LOOP('',(#5352,#5353,#5354,#5355)); +#27708=EDGE_LOOP('',(#5356,#5357,#5358,#5359)); +#27709=EDGE_LOOP('',(#5360,#5361,#5362,#5363)); +#27710=EDGE_LOOP('',(#5364,#5365,#5366,#5367)); +#27711=EDGE_LOOP('',(#5368,#5369,#5370,#5371)); +#27712=EDGE_LOOP('',(#5372,#5373,#5374,#5375)); +#27713=EDGE_LOOP('',(#5376,#5377,#5378,#5379)); +#27714=EDGE_LOOP('',(#5380,#5381,#5382,#5383)); +#27715=EDGE_LOOP('',(#5384,#5385,#5386,#5387)); +#27716=EDGE_LOOP('',(#5388,#5389,#5390,#5391)); +#27717=EDGE_LOOP('',(#5392,#5393,#5394,#5395)); +#27718=EDGE_LOOP('',(#5396,#5397,#5398,#5399)); +#27719=EDGE_LOOP('',(#5400,#5401,#5402,#5403)); +#27720=EDGE_LOOP('',(#5404,#5405,#5406,#5407)); +#27721=EDGE_LOOP('',(#5408,#5409,#5410,#5411)); +#27722=EDGE_LOOP('',(#5412,#5413,#5414,#5415)); +#27723=EDGE_LOOP('',(#5416,#5417,#5418,#5419)); +#27724=EDGE_LOOP('',(#5420,#5421,#5422,#5423)); +#27725=EDGE_LOOP('',(#5424,#5425,#5426,#5427)); +#27726=EDGE_LOOP('',(#5428,#5429,#5430,#5431)); +#27727=EDGE_LOOP('',(#5432,#5433,#5434,#5435)); +#27728=EDGE_LOOP('',(#5436,#5437,#5438,#5439)); +#27729=EDGE_LOOP('',(#5440,#5441,#5442,#5443)); +#27730=EDGE_LOOP('',(#5444,#5445,#5446,#5447)); +#27731=EDGE_LOOP('',(#5448,#5449,#5450,#5451)); +#27732=EDGE_LOOP('',(#5452,#5453,#5454,#5455)); +#27733=EDGE_LOOP('',(#5456,#5457,#5458,#5459)); +#27734=EDGE_LOOP('',(#5460,#5461,#5462,#5463)); +#27735=EDGE_LOOP('',(#5464,#5465,#5466,#5467)); +#27736=EDGE_LOOP('',(#5468,#5469,#5470,#5471)); +#27737=EDGE_LOOP('',(#5472,#5473,#5474,#5475)); +#27738=EDGE_LOOP('',(#5476,#5477,#5478,#5479)); +#27739=EDGE_LOOP('',(#5480,#5481,#5482,#5483)); +#27740=EDGE_LOOP('',(#5484,#5485,#5486,#5487)); +#27741=EDGE_LOOP('',(#5488,#5489,#5490,#5491)); +#27742=EDGE_LOOP('',(#5492,#5493,#5494,#5495)); +#27743=EDGE_LOOP('',(#5496,#5497,#5498,#5499)); +#27744=EDGE_LOOP('',(#5500,#5501,#5502,#5503)); +#27745=EDGE_LOOP('',(#5504,#5505,#5506,#5507)); +#27746=EDGE_LOOP('',(#5508,#5509,#5510,#5511)); +#27747=EDGE_LOOP('',(#5512,#5513,#5514,#5515)); +#27748=EDGE_LOOP('',(#5516,#5517,#5518,#5519)); +#27749=EDGE_LOOP('',(#5520,#5521,#5522,#5523)); +#27750=EDGE_LOOP('',(#5524,#5525,#5526,#5527)); +#27751=EDGE_LOOP('',(#5528,#5529,#5530,#5531)); +#27752=EDGE_LOOP('',(#5532,#5533,#5534,#5535)); +#27753=EDGE_LOOP('',(#5536,#5537,#5538,#5539)); +#27754=EDGE_LOOP('',(#5540,#5541,#5542,#5543)); +#27755=EDGE_LOOP('',(#5544,#5545,#5546,#5547)); +#27756=EDGE_LOOP('',(#5548,#5549,#5550,#5551)); +#27757=EDGE_LOOP('',(#5552,#5553,#5554,#5555)); +#27758=EDGE_LOOP('',(#5556,#5557,#5558,#5559)); +#27759=EDGE_LOOP('',(#5560,#5561,#5562,#5563)); +#27760=EDGE_LOOP('',(#5564,#5565,#5566,#5567)); +#27761=EDGE_LOOP('',(#5568,#5569,#5570,#5571)); +#27762=EDGE_LOOP('',(#5572,#5573,#5574,#5575)); +#27763=EDGE_LOOP('',(#5576,#5577,#5578,#5579)); +#27764=EDGE_LOOP('',(#5580,#5581,#5582,#5583)); +#27765=EDGE_LOOP('',(#5584,#5585,#5586,#5587)); +#27766=EDGE_LOOP('',(#5588,#5589,#5590,#5591)); +#27767=EDGE_LOOP('',(#5592,#5593,#5594,#5595)); +#27768=EDGE_LOOP('',(#5596,#5597,#5598,#5599)); +#27769=EDGE_LOOP('',(#5600,#5601,#5602,#5603)); +#27770=EDGE_LOOP('',(#5604,#5605,#5606,#5607)); +#27771=EDGE_LOOP('',(#5608,#5609,#5610,#5611)); +#27772=EDGE_LOOP('',(#5612,#5613,#5614,#5615)); +#27773=EDGE_LOOP('',(#5616,#5617,#5618,#5619)); +#27774=EDGE_LOOP('',(#5620,#5621,#5622,#5623)); +#27775=EDGE_LOOP('',(#5624,#5625,#5626,#5627)); +#27776=EDGE_LOOP('',(#5628,#5629,#5630,#5631)); +#27777=EDGE_LOOP('',(#5632,#5633,#5634,#5635)); +#27778=EDGE_LOOP('',(#5636,#5637,#5638,#5639)); +#27779=EDGE_LOOP('',(#5640,#5641,#5642,#5643)); +#27780=EDGE_LOOP('',(#5644,#5645,#5646,#5647)); +#27781=EDGE_LOOP('',(#5648,#5649,#5650,#5651)); +#27782=EDGE_LOOP('',(#5652,#5653,#5654,#5655)); +#27783=EDGE_LOOP('',(#5656,#5657,#5658,#5659)); +#27784=EDGE_LOOP('',(#5660,#5661,#5662,#5663)); +#27785=EDGE_LOOP('',(#5664,#5665,#5666,#5667)); +#27786=EDGE_LOOP('',(#5668,#5669,#5670,#5671)); +#27787=EDGE_LOOP('',(#5672,#5673,#5674,#5675,#5676,#5677)); +#27788=EDGE_LOOP('',(#5678,#5679,#5680,#5681)); +#27789=EDGE_LOOP('',(#5682,#5683,#5684,#5685,#5686,#5687)); +#27790=EDGE_LOOP('',(#5688,#5689,#5690,#5691)); +#27791=EDGE_LOOP('',(#5692,#5693,#5694,#5695,#5696,#5697)); +#27792=EDGE_LOOP('',(#5698,#5699,#5700,#5701)); +#27793=EDGE_LOOP('',(#5702,#5703,#5704,#5705,#5706,#5707)); +#27794=EDGE_LOOP('',(#5708,#5709,#5710,#5711,#5712,#5713)); +#27795=EDGE_LOOP('',(#5714,#5715,#5716,#5717)); +#27796=EDGE_LOOP('',(#5718,#5719,#5720,#5721,#5722,#5723)); +#27797=EDGE_LOOP('',(#5724,#5725,#5726,#5727)); +#27798=EDGE_LOOP('',(#5728,#5729,#5730,#5731,#5732,#5733)); +#27799=EDGE_LOOP('',(#5734,#5735,#5736,#5737)); +#27800=EDGE_LOOP('',(#5738,#5739,#5740,#5741,#5742,#5743)); +#27801=EDGE_LOOP('',(#5744,#5745,#5746,#5747)); +#27802=EDGE_LOOP('',(#5748,#5749,#5750,#5751,#5752,#5753)); +#27803=EDGE_LOOP('',(#5754,#5755,#5756,#5757)); +#27804=EDGE_LOOP('',(#5758,#5759,#5760,#5761,#5762,#5763)); +#27805=EDGE_LOOP('',(#5764,#5765,#5766,#5767)); +#27806=EDGE_LOOP('',(#5768,#5769,#5770,#5771,#5772,#5773)); +#27807=EDGE_LOOP('',(#5774,#5775,#5776,#5777)); +#27808=EDGE_LOOP('',(#5778,#5779,#5780,#5781,#5782,#5783)); +#27809=EDGE_LOOP('',(#5784,#5785,#5786,#5787)); +#27810=EDGE_LOOP('',(#5788,#5789,#5790,#5791,#5792,#5793)); +#27811=EDGE_LOOP('',(#5794,#5795,#5796,#5797)); +#27812=EDGE_LOOP('',(#5798,#5799,#5800,#5801,#5802,#5803)); +#27813=EDGE_LOOP('',(#5804,#5805,#5806,#5807)); +#27814=EDGE_LOOP('',(#5808,#5809,#5810,#5811,#5812,#5813)); +#27815=EDGE_LOOP('',(#5814,#5815,#5816,#5817)); +#27816=EDGE_LOOP('',(#5818,#5819,#5820,#5821,#5822,#5823)); +#27817=EDGE_LOOP('',(#5824,#5825,#5826,#5827)); +#27818=EDGE_LOOP('',(#5828,#5829,#5830,#5831,#5832,#5833)); +#27819=EDGE_LOOP('',(#5834,#5835,#5836,#5837)); +#27820=EDGE_LOOP('',(#5838,#5839,#5840,#5841,#5842,#5843)); +#27821=EDGE_LOOP('',(#5844,#5845,#5846,#5847)); +#27822=EDGE_LOOP('',(#5848,#5849,#5850,#5851,#5852,#5853)); +#27823=EDGE_LOOP('',(#5854,#5855,#5856,#5857)); +#27824=EDGE_LOOP('',(#5858,#5859,#5860,#5861,#5862,#5863)); +#27825=EDGE_LOOP('',(#5864,#5865,#5866,#5867)); +#27826=EDGE_LOOP('',(#5868,#5869,#5870,#5871,#5872,#5873)); +#27827=EDGE_LOOP('',(#5874,#5875,#5876,#5877)); +#27828=EDGE_LOOP('',(#5878,#5879,#5880,#5881,#5882,#5883)); +#27829=EDGE_LOOP('',(#5884,#5885,#5886,#5887)); +#27830=EDGE_LOOP('',(#5888,#5889,#5890,#5891,#5892,#5893)); +#27831=EDGE_LOOP('',(#5894,#5895,#5896,#5897)); +#27832=EDGE_LOOP('',(#5898,#5899,#5900,#5901,#5902,#5903)); +#27833=EDGE_LOOP('',(#5904,#5905,#5906,#5907)); +#27834=EDGE_LOOP('',(#5908,#5909,#5910,#5911,#5912,#5913)); +#27835=EDGE_LOOP('',(#5914,#5915,#5916,#5917)); +#27836=EDGE_LOOP('',(#5918,#5919,#5920,#5921,#5922,#5923)); +#27837=EDGE_LOOP('',(#5924,#5925,#5926,#5927)); +#27838=EDGE_LOOP('',(#5928,#5929,#5930,#5931,#5932,#5933)); +#27839=EDGE_LOOP('',(#5934,#5935,#5936,#5937)); +#27840=EDGE_LOOP('',(#5938,#5939,#5940,#5941,#5942,#5943)); +#27841=EDGE_LOOP('',(#5944,#5945,#5946,#5947)); +#27842=EDGE_LOOP('',(#5948,#5949,#5950,#5951,#5952,#5953)); +#27843=EDGE_LOOP('',(#5954,#5955,#5956,#5957)); +#27844=EDGE_LOOP('',(#5958,#5959,#5960,#5961,#5962,#5963)); +#27845=EDGE_LOOP('',(#5964,#5965,#5966,#5967)); +#27846=EDGE_LOOP('',(#5968,#5969,#5970,#5971,#5972,#5973)); +#27847=EDGE_LOOP('',(#5974,#5975,#5976,#5977)); +#27848=EDGE_LOOP('',(#5978,#5979,#5980,#5981,#5982,#5983)); +#27849=EDGE_LOOP('',(#5984,#5985,#5986,#5987)); +#27850=EDGE_LOOP('',(#5988,#5989,#5990,#5991,#5992,#5993)); +#27851=EDGE_LOOP('',(#5994,#5995,#5996,#5997)); +#27852=EDGE_LOOP('',(#5998,#5999,#6000,#6001,#6002,#6003)); +#27853=EDGE_LOOP('',(#6004,#6005,#6006,#6007)); +#27854=EDGE_LOOP('',(#6008,#6009,#6010,#6011,#6012,#6013)); +#27855=EDGE_LOOP('',(#6014,#6015,#6016,#6017)); +#27856=EDGE_LOOP('',(#6018,#6019,#6020,#6021,#6022,#6023)); +#27857=EDGE_LOOP('',(#6024,#6025,#6026,#6027)); +#27858=EDGE_LOOP('',(#6028,#6029,#6030,#6031,#6032,#6033)); +#27859=EDGE_LOOP('',(#6034,#6035,#6036,#6037)); +#27860=EDGE_LOOP('',(#6038,#6039,#6040,#6041,#6042,#6043)); +#27861=EDGE_LOOP('',(#6044,#6045,#6046,#6047)); +#27862=EDGE_LOOP('',(#6048,#6049,#6050,#6051,#6052,#6053)); +#27863=EDGE_LOOP('',(#6054,#6055,#6056,#6057)); +#27864=EDGE_LOOP('',(#6058,#6059,#6060,#6061,#6062,#6063)); +#27865=EDGE_LOOP('',(#6064,#6065,#6066,#6067)); +#27866=EDGE_LOOP('',(#6068,#6069,#6070,#6071,#6072,#6073)); +#27867=EDGE_LOOP('',(#6074,#6075,#6076,#6077)); +#27868=EDGE_LOOP('',(#6078,#6079,#6080,#6081,#6082,#6083)); +#27869=EDGE_LOOP('',(#6084,#6085,#6086,#6087)); +#27870=EDGE_LOOP('',(#6088,#6089,#6090,#6091,#6092,#6093)); +#27871=EDGE_LOOP('',(#6094,#6095,#6096,#6097)); +#27872=EDGE_LOOP('',(#6098,#6099,#6100,#6101)); +#27873=EDGE_LOOP('',(#6102,#6103,#6104,#6105,#6106,#6107)); +#27874=EDGE_LOOP('',(#6108,#6109,#6110,#6111,#6112,#6113)); +#27875=EDGE_LOOP('',(#6114,#6115,#6116,#6117)); +#27876=EDGE_LOOP('',(#6118,#6119,#6120,#6121)); +#27877=EDGE_LOOP('',(#6122,#6123,#6124,#6125,#6126,#6127)); +#27878=EDGE_LOOP('',(#6128,#6129,#6130,#6131,#6132,#6133)); +#27879=EDGE_LOOP('',(#6134,#6135,#6136,#6137)); +#27880=EDGE_LOOP('',(#6138,#6139,#6140,#6141)); +#27881=EDGE_LOOP('',(#6142,#6143,#6144,#6145,#6146,#6147)); +#27882=EDGE_LOOP('',(#6148,#6149,#6150,#6151,#6152,#6153)); +#27883=EDGE_LOOP('',(#6154,#6155,#6156,#6157)); +#27884=EDGE_LOOP('',(#6158,#6159,#6160,#6161)); +#27885=EDGE_LOOP('',(#6162,#6163,#6164,#6165,#6166,#6167)); +#27886=EDGE_LOOP('',(#6168,#6169,#6170,#6171,#6172,#6173)); +#27887=EDGE_LOOP('',(#6174,#6175,#6176,#6177)); +#27888=EDGE_LOOP('',(#6178,#6179,#6180,#6181)); +#27889=EDGE_LOOP('',(#6182,#6183,#6184,#6185,#6186,#6187)); +#27890=EDGE_LOOP('',(#6188,#6189,#6190,#6191,#6192,#6193)); +#27891=EDGE_LOOP('',(#6194,#6195,#6196,#6197)); +#27892=EDGE_LOOP('',(#6198,#6199,#6200,#6201)); +#27893=EDGE_LOOP('',(#6202,#6203,#6204,#6205,#6206,#6207)); +#27894=EDGE_LOOP('',(#6208,#6209,#6210,#6211,#6212,#6213)); +#27895=EDGE_LOOP('',(#6214,#6215,#6216,#6217)); +#27896=EDGE_LOOP('',(#6218,#6219,#6220,#6221)); +#27897=EDGE_LOOP('',(#6222,#6223,#6224,#6225,#6226,#6227)); +#27898=EDGE_LOOP('',(#6228,#6229,#6230,#6231,#6232,#6233)); +#27899=EDGE_LOOP('',(#6234,#6235,#6236,#6237)); +#27900=EDGE_LOOP('',(#6238,#6239,#6240,#6241)); +#27901=EDGE_LOOP('',(#6242,#6243,#6244,#6245,#6246,#6247)); +#27902=EDGE_LOOP('',(#6248,#6249,#6250,#6251,#6252,#6253)); +#27903=EDGE_LOOP('',(#6254,#6255,#6256,#6257)); +#27904=EDGE_LOOP('',(#6258,#6259,#6260,#6261)); +#27905=EDGE_LOOP('',(#6262,#6263,#6264,#6265,#6266,#6267)); +#27906=EDGE_LOOP('',(#6268,#6269,#6270,#6271,#6272,#6273)); +#27907=EDGE_LOOP('',(#6274,#6275,#6276,#6277)); +#27908=EDGE_LOOP('',(#6278,#6279,#6280,#6281)); +#27909=EDGE_LOOP('',(#6282,#6283,#6284,#6285,#6286,#6287)); +#27910=EDGE_LOOP('',(#6288,#6289,#6290,#6291,#6292,#6293)); +#27911=EDGE_LOOP('',(#6294,#6295,#6296,#6297)); +#27912=EDGE_LOOP('',(#6298,#6299,#6300,#6301)); +#27913=EDGE_LOOP('',(#6302,#6303,#6304,#6305,#6306,#6307)); +#27914=EDGE_LOOP('',(#6308,#6309,#6310,#6311,#6312,#6313)); +#27915=EDGE_LOOP('',(#6314,#6315,#6316,#6317)); +#27916=EDGE_LOOP('',(#6318,#6319,#6320,#6321)); +#27917=EDGE_LOOP('',(#6322,#6323,#6324,#6325,#6326,#6327)); +#27918=EDGE_LOOP('',(#6328,#6329,#6330,#6331,#6332,#6333)); +#27919=EDGE_LOOP('',(#6334,#6335,#6336,#6337)); +#27920=EDGE_LOOP('',(#6338,#6339,#6340,#6341)); +#27921=EDGE_LOOP('',(#6342,#6343,#6344,#6345,#6346,#6347)); +#27922=EDGE_LOOP('',(#6348,#6349,#6350,#6351,#6352,#6353)); +#27923=EDGE_LOOP('',(#6354,#6355,#6356,#6357)); +#27924=EDGE_LOOP('',(#6358,#6359,#6360,#6361)); +#27925=EDGE_LOOP('',(#6362,#6363,#6364,#6365,#6366,#6367)); +#27926=EDGE_LOOP('',(#6368,#6369,#6370,#6371,#6372,#6373)); +#27927=EDGE_LOOP('',(#6374,#6375,#6376,#6377)); +#27928=EDGE_LOOP('',(#6378,#6379,#6380,#6381)); +#27929=EDGE_LOOP('',(#6382,#6383,#6384,#6385,#6386,#6387)); +#27930=EDGE_LOOP('',(#6388,#6389,#6390,#6391,#6392,#6393)); +#27931=EDGE_LOOP('',(#6394,#6395,#6396,#6397)); +#27932=EDGE_LOOP('',(#6398,#6399,#6400,#6401)); +#27933=EDGE_LOOP('',(#6402,#6403,#6404,#6405,#6406,#6407)); +#27934=EDGE_LOOP('',(#6408,#6409,#6410,#6411,#6412,#6413)); +#27935=EDGE_LOOP('',(#6414,#6415,#6416,#6417)); +#27936=EDGE_LOOP('',(#6418,#6419,#6420,#6421)); +#27937=EDGE_LOOP('',(#6422,#6423,#6424,#6425,#6426,#6427)); +#27938=EDGE_LOOP('',(#6428,#6429,#6430,#6431,#6432,#6433)); +#27939=EDGE_LOOP('',(#6434,#6435,#6436,#6437)); +#27940=EDGE_LOOP('',(#6438,#6439,#6440,#6441)); +#27941=EDGE_LOOP('',(#6442,#6443,#6444,#6445,#6446,#6447)); +#27942=EDGE_LOOP('',(#6448,#6449,#6450,#6451)); +#27943=EDGE_LOOP('',(#6452,#6453,#6454,#6455)); +#27944=EDGE_LOOP('',(#6456,#6457,#6458,#6459,#6460,#6461)); +#27945=EDGE_LOOP('',(#6462,#6463,#6464,#6465,#6466,#6467)); +#27946=EDGE_LOOP('',(#6468,#6469,#6470,#6471)); +#27947=EDGE_LOOP('',(#6472,#6473,#6474,#6475)); +#27948=EDGE_LOOP('',(#6476,#6477,#6478,#6479)); +#27949=EDGE_LOOP('',(#6480,#6481,#6482,#6483)); +#27950=EDGE_LOOP('',(#6484,#6485,#6486,#6487)); +#27951=EDGE_LOOP('',(#6488,#6489,#6490,#6491)); +#27952=EDGE_LOOP('',(#6492,#6493,#6494,#6495)); +#27953=EDGE_LOOP('',(#6496,#6497,#6498,#6499)); +#27954=EDGE_LOOP('',(#6500,#6501,#6502,#6503)); +#27955=EDGE_LOOP('',(#6504,#6505,#6506,#6507)); +#27956=EDGE_LOOP('',(#6508,#6509,#6510,#6511)); +#27957=EDGE_LOOP('',(#6512,#6513,#6514,#6515)); +#27958=EDGE_LOOP('',(#6516,#6517,#6518,#6519)); +#27959=EDGE_LOOP('',(#6520,#6521,#6522,#6523)); +#27960=EDGE_LOOP('',(#6524,#6525,#6526,#6527)); +#27961=EDGE_LOOP('',(#6528,#6529,#6530,#6531)); +#27962=EDGE_LOOP('',(#6532,#6533,#6534,#6535)); +#27963=EDGE_LOOP('',(#6536,#6537,#6538,#6539)); +#27964=EDGE_LOOP('',(#6540,#6541,#6542,#6543)); +#27965=EDGE_LOOP('',(#6544,#6545,#6546,#6547)); +#27966=EDGE_LOOP('',(#6548,#6549,#6550,#6551)); +#27967=EDGE_LOOP('',(#6552,#6553,#6554,#6555)); +#27968=EDGE_LOOP('',(#6556,#6557,#6558,#6559)); +#27969=EDGE_LOOP('',(#6560,#6561,#6562,#6563)); +#27970=EDGE_LOOP('',(#6564,#6565,#6566,#6567)); +#27971=EDGE_LOOP('',(#6568,#6569,#6570,#6571)); +#27972=EDGE_LOOP('',(#6572,#6573,#6574,#6575)); +#27973=EDGE_LOOP('',(#6576,#6577,#6578,#6579)); +#27974=EDGE_LOOP('',(#6580,#6581,#6582,#6583)); +#27975=EDGE_LOOP('',(#6584,#6585,#6586,#6587)); +#27976=EDGE_LOOP('',(#6588,#6589,#6590,#6591)); +#27977=EDGE_LOOP('',(#6592,#6593,#6594,#6595)); +#27978=EDGE_LOOP('',(#6596,#6597,#6598,#6599)); +#27979=EDGE_LOOP('',(#6600,#6601,#6602,#6603)); +#27980=EDGE_LOOP('',(#6604,#6605,#6606,#6607)); +#27981=EDGE_LOOP('',(#6608,#6609,#6610,#6611)); +#27982=EDGE_LOOP('',(#6612,#6613,#6614,#6615)); +#27983=EDGE_LOOP('',(#6616,#6617,#6618,#6619)); +#27984=EDGE_LOOP('',(#6620,#6621,#6622,#6623,#6624,#6625,#6626,#6627)); +#27985=EDGE_LOOP('',(#6628,#6629,#6630,#6631,#6632,#6633,#6634,#6635)); +#27986=EDGE_LOOP('',(#6636,#6637,#6638,#6639)); +#27987=EDGE_LOOP('',(#6640,#6641,#6642,#6643)); +#27988=EDGE_LOOP('',(#6644,#6645,#6646,#6647,#6648,#6649,#6650,#6651,#6652, +#6653,#6654,#6655,#6656,#6657,#6658,#6659,#6660,#6661,#6662,#6663,#6664, +#6665,#6666,#6667,#6668,#6669,#6670,#6671,#6672,#6673,#6674,#6675,#6676, +#6677,#6678,#6679,#6680,#6681,#6682,#6683,#6684,#6685,#6686,#6687,#6688, +#6689,#6690,#6691,#6692,#6693,#6694,#6695,#6696,#6697,#6698,#6699,#6700, +#6701,#6702,#6703,#6704,#6705,#6706,#6707,#6708,#6709,#6710,#6711,#6712, +#6713,#6714,#6715,#6716,#6717,#6718,#6719,#6720,#6721,#6722,#6723,#6724, +#6725,#6726,#6727,#6728,#6729,#6730,#6731,#6732,#6733,#6734,#6735,#6736, +#6737,#6738,#6739,#6740,#6741,#6742,#6743,#6744,#6745,#6746,#6747,#6748, +#6749,#6750,#6751,#6752,#6753,#6754,#6755,#6756,#6757,#6758,#6759,#6760, +#6761,#6762,#6763,#6764,#6765,#6766,#6767,#6768,#6769,#6770,#6771,#6772, +#6773,#6774,#6775,#6776,#6777,#6778,#6779,#6780,#6781,#6782,#6783,#6784, +#6785,#6786,#6787,#6788,#6789,#6790,#6791,#6792,#6793,#6794,#6795,#6796, +#6797,#6798,#6799,#6800,#6801,#6802,#6803,#6804,#6805,#6806,#6807,#6808, +#6809,#6810,#6811,#6812,#6813,#6814,#6815,#6816,#6817,#6818,#6819,#6820, +#6821,#6822,#6823,#6824,#6825,#6826,#6827,#6828,#6829,#6830,#6831,#6832, +#6833,#6834,#6835,#6836,#6837,#6838,#6839,#6840,#6841,#6842,#6843,#6844, +#6845,#6846,#6847,#6848,#6849,#6850,#6851,#6852,#6853,#6854,#6855,#6856, +#6857,#6858,#6859,#6860,#6861,#6862,#6863,#6864,#6865,#6866,#6867,#6868, +#6869,#6870,#6871,#6872,#6873,#6874,#6875,#6876,#6877,#6878,#6879,#6880, +#6881,#6882,#6883,#6884,#6885,#6886,#6887,#6888,#6889,#6890,#6891,#6892, +#6893,#6894,#6895,#6896,#6897,#6898,#6899,#6900,#6901,#6902,#6903,#6904, +#6905,#6906,#6907,#6908,#6909,#6910,#6911,#6912,#6913,#6914,#6915,#6916, +#6917,#6918,#6919,#6920,#6921,#6922,#6923,#6924,#6925,#6926,#6927)); +#27989=EDGE_LOOP('',(#6928,#6929,#6930,#6931,#6932,#6933,#6934,#6935,#6936, +#6937,#6938,#6939,#6940,#6941,#6942,#6943,#6944,#6945,#6946,#6947,#6948, +#6949,#6950,#6951,#6952,#6953,#6954,#6955,#6956,#6957,#6958,#6959,#6960, +#6961,#6962,#6963,#6964,#6965,#6966,#6967,#6968,#6969,#6970,#6971,#6972, +#6973,#6974,#6975,#6976,#6977,#6978,#6979,#6980,#6981,#6982,#6983,#6984, +#6985,#6986,#6987,#6988,#6989,#6990,#6991,#6992,#6993,#6994,#6995,#6996, +#6997,#6998,#6999,#7000,#7001,#7002,#7003,#7004,#7005,#7006,#7007,#7008, +#7009,#7010,#7011,#7012,#7013,#7014,#7015,#7016,#7017,#7018,#7019,#7020, +#7021,#7022,#7023,#7024,#7025,#7026,#7027,#7028,#7029,#7030,#7031,#7032, +#7033,#7034,#7035,#7036,#7037,#7038,#7039,#7040,#7041,#7042,#7043,#7044, +#7045,#7046,#7047,#7048,#7049,#7050,#7051,#7052,#7053,#7054,#7055,#7056, +#7057,#7058,#7059,#7060,#7061,#7062,#7063,#7064,#7065,#7066,#7067,#7068, +#7069,#7070,#7071,#7072,#7073,#7074,#7075,#7076,#7077,#7078,#7079,#7080, +#7081,#7082,#7083,#7084,#7085,#7086,#7087,#7088,#7089,#7090,#7091,#7092, +#7093,#7094,#7095,#7096,#7097,#7098,#7099,#7100,#7101,#7102,#7103,#7104, +#7105,#7106,#7107,#7108,#7109,#7110,#7111,#7112,#7113,#7114,#7115,#7116, +#7117,#7118,#7119,#7120,#7121,#7122,#7123,#7124,#7125,#7126,#7127,#7128, +#7129,#7130,#7131,#7132,#7133,#7134,#7135,#7136,#7137,#7138,#7139,#7140, +#7141,#7142,#7143,#7144,#7145,#7146,#7147,#7148,#7149,#7150,#7151,#7152, +#7153,#7154,#7155,#7156,#7157,#7158,#7159,#7160,#7161,#7162,#7163,#7164, +#7165,#7166,#7167,#7168,#7169,#7170,#7171,#7172,#7173,#7174,#7175,#7176, +#7177,#7178,#7179,#7180,#7181,#7182,#7183,#7184,#7185,#7186,#7187,#7188, +#7189,#7190,#7191,#7192,#7193,#7194,#7195,#7196,#7197,#7198,#7199,#7200, +#7201,#7202,#7203,#7204,#7205,#7206,#7207,#7208,#7209,#7210,#7211)); +#27990=EDGE_LOOP('',(#7212,#7213,#7214,#7215,#7216,#7217,#7218,#7219,#7220, +#7221,#7222,#7223,#7224,#7225,#7226,#7227,#7228,#7229,#7230,#7231,#7232, +#7233,#7234,#7235,#7236,#7237,#7238,#7239,#7240,#7241,#7242,#7243,#7244, +#7245,#7246,#7247,#7248,#7249,#7250,#7251,#7252,#7253,#7254,#7255,#7256, +#7257,#7258,#7259,#7260,#7261,#7262,#7263,#7264,#7265,#7266,#7267,#7268, +#7269,#7270,#7271,#7272,#7273,#7274,#7275,#7276,#7277,#7278,#7279,#7280, +#7281,#7282,#7283,#7284,#7285,#7286,#7287,#7288,#7289,#7290,#7291,#7292, +#7293,#7294,#7295,#7296,#7297,#7298,#7299,#7300,#7301,#7302,#7303,#7304, +#7305,#7306,#7307,#7308,#7309,#7310,#7311,#7312,#7313,#7314,#7315,#7316, +#7317,#7318,#7319,#7320,#7321,#7322,#7323,#7324,#7325,#7326,#7327,#7328, +#7329,#7330,#7331,#7332,#7333,#7334,#7335,#7336,#7337,#7338,#7339,#7340, +#7341,#7342,#7343,#7344,#7345,#7346,#7347,#7348,#7349,#7350,#7351,#7352, +#7353,#7354,#7355,#7356,#7357,#7358,#7359,#7360,#7361,#7362,#7363,#7364, +#7365,#7366,#7367,#7368,#7369,#7370,#7371,#7372,#7373,#7374,#7375,#7376, +#7377,#7378,#7379,#7380,#7381,#7382,#7383,#7384,#7385,#7386,#7387,#7388, +#7389,#7390,#7391,#7392,#7393,#7394,#7395,#7396,#7397,#7398,#7399,#7400, +#7401,#7402,#7403,#7404,#7405,#7406,#7407,#7408,#7409,#7410,#7411,#7412, +#7413,#7414,#7415,#7416,#7417,#7418,#7419,#7420,#7421,#7422,#7423,#7424, +#7425,#7426,#7427,#7428,#7429,#7430,#7431,#7432,#7433,#7434,#7435,#7436, +#7437,#7438,#7439,#7440,#7441,#7442,#7443,#7444,#7445,#7446,#7447,#7448, +#7449,#7450,#7451,#7452,#7453,#7454,#7455,#7456,#7457,#7458,#7459,#7460, +#7461,#7462,#7463,#7464,#7465,#7466,#7467,#7468,#7469,#7470,#7471,#7472, +#7473,#7474,#7475,#7476,#7477,#7478,#7479,#7480,#7481,#7482,#7483,#7484, +#7485,#7486,#7487,#7488,#7489,#7490,#7491,#7492,#7493,#7494,#7495)); +#27991=EDGE_LOOP('',(#7496,#7497,#7498,#7499,#7500,#7501,#7502,#7503,#7504, +#7505,#7506,#7507,#7508,#7509,#7510,#7511,#7512,#7513,#7514,#7515,#7516, +#7517,#7518,#7519,#7520,#7521,#7522,#7523,#7524,#7525,#7526,#7527,#7528, +#7529,#7530,#7531,#7532,#7533,#7534,#7535,#7536,#7537,#7538,#7539,#7540, +#7541,#7542,#7543,#7544,#7545,#7546,#7547,#7548,#7549,#7550,#7551,#7552, +#7553,#7554,#7555,#7556,#7557,#7558,#7559,#7560,#7561,#7562,#7563,#7564, +#7565,#7566,#7567,#7568,#7569,#7570,#7571,#7572,#7573,#7574,#7575,#7576, +#7577,#7578,#7579,#7580,#7581,#7582,#7583,#7584,#7585,#7586,#7587,#7588, +#7589,#7590,#7591,#7592,#7593,#7594,#7595,#7596,#7597,#7598,#7599,#7600, +#7601,#7602,#7603,#7604,#7605,#7606,#7607,#7608,#7609,#7610,#7611,#7612, +#7613,#7614,#7615,#7616,#7617,#7618,#7619,#7620,#7621,#7622,#7623,#7624, +#7625,#7626,#7627,#7628,#7629,#7630,#7631,#7632,#7633,#7634,#7635,#7636, +#7637,#7638,#7639,#7640,#7641,#7642,#7643,#7644,#7645,#7646,#7647,#7648, +#7649,#7650,#7651,#7652,#7653,#7654,#7655,#7656,#7657,#7658,#7659,#7660, +#7661,#7662,#7663,#7664,#7665,#7666,#7667,#7668,#7669,#7670,#7671,#7672, +#7673,#7674,#7675,#7676,#7677,#7678,#7679,#7680,#7681,#7682,#7683,#7684, +#7685,#7686,#7687,#7688,#7689,#7690,#7691,#7692,#7693,#7694,#7695,#7696, +#7697,#7698,#7699,#7700,#7701,#7702,#7703,#7704,#7705,#7706,#7707,#7708, +#7709,#7710,#7711,#7712,#7713,#7714,#7715,#7716,#7717,#7718,#7719,#7720, +#7721,#7722,#7723,#7724,#7725,#7726,#7727,#7728,#7729,#7730,#7731,#7732, +#7733,#7734,#7735,#7736,#7737,#7738,#7739,#7740,#7741,#7742,#7743,#7744, +#7745,#7746,#7747,#7748,#7749,#7750,#7751,#7752,#7753,#7754,#7755,#7756, +#7757,#7758,#7759,#7760,#7761,#7762,#7763,#7764,#7765,#7766,#7767,#7768, +#7769,#7770,#7771,#7772,#7773,#7774,#7775,#7776,#7777,#7778,#7779)); +#27992=EDGE_LOOP('',(#7780,#7781,#7782,#7783)); +#27993=EDGE_LOOP('',(#7784,#7785,#7786,#7787)); +#27994=EDGE_LOOP('',(#7788,#7789,#7790,#7791)); +#27995=EDGE_LOOP('',(#7792,#7793,#7794,#7795)); +#27996=EDGE_LOOP('',(#7796,#7797,#7798,#7799)); +#27997=EDGE_LOOP('',(#7800,#7801,#7802,#7803)); +#27998=EDGE_LOOP('',(#7804,#7805,#7806,#7807)); +#27999=EDGE_LOOP('',(#7808,#7809,#7810,#7811)); +#28000=EDGE_LOOP('',(#7812,#7813,#7814,#7815)); +#28001=EDGE_LOOP('',(#7816,#7817,#7818,#7819)); +#28002=EDGE_LOOP('',(#7820,#7821,#7822,#7823)); +#28003=EDGE_LOOP('',(#7824,#7825,#7826,#7827)); +#28004=EDGE_LOOP('',(#7828,#7829,#7830,#7831)); +#28005=EDGE_LOOP('',(#7832,#7833,#7834,#7835)); +#28006=EDGE_LOOP('',(#7836,#7837,#7838,#7839)); +#28007=EDGE_LOOP('',(#7840,#7841,#7842,#7843)); +#28008=EDGE_LOOP('',(#7844,#7845,#7846,#7847)); +#28009=EDGE_LOOP('',(#7848,#7849,#7850,#7851)); +#28010=EDGE_LOOP('',(#7852,#7853,#7854,#7855)); +#28011=EDGE_LOOP('',(#7856,#7857,#7858,#7859)); +#28012=EDGE_LOOP('',(#7860,#7861,#7862,#7863)); +#28013=EDGE_LOOP('',(#7864,#7865,#7866,#7867)); +#28014=EDGE_LOOP('',(#7868,#7869,#7870,#7871)); +#28015=EDGE_LOOP('',(#7872,#7873,#7874,#7875)); +#28016=EDGE_LOOP('',(#7876,#7877,#7878,#7879)); +#28017=EDGE_LOOP('',(#7880,#7881,#7882,#7883)); +#28018=EDGE_LOOP('',(#7884,#7885,#7886,#7887)); +#28019=EDGE_LOOP('',(#7888,#7889,#7890,#7891)); +#28020=EDGE_LOOP('',(#7892,#7893,#7894,#7895)); +#28021=EDGE_LOOP('',(#7896,#7897,#7898,#7899)); +#28022=EDGE_LOOP('',(#7900,#7901,#7902,#7903)); +#28023=EDGE_LOOP('',(#7904,#7905,#7906,#7907)); +#28024=EDGE_LOOP('',(#7908,#7909,#7910,#7911)); +#28025=EDGE_LOOP('',(#7912,#7913,#7914,#7915)); +#28026=EDGE_LOOP('',(#7916,#7917,#7918,#7919)); +#28027=EDGE_LOOP('',(#7920,#7921,#7922,#7923)); +#28028=EDGE_LOOP('',(#7924,#7925,#7926,#7927)); +#28029=EDGE_LOOP('',(#7928,#7929,#7930,#7931)); +#28030=EDGE_LOOP('',(#7932,#7933,#7934,#7935)); +#28031=EDGE_LOOP('',(#7936,#7937,#7938,#7939)); +#28032=EDGE_LOOP('',(#7940,#7941,#7942,#7943)); +#28033=EDGE_LOOP('',(#7944,#7945,#7946,#7947)); +#28034=EDGE_LOOP('',(#7948,#7949,#7950,#7951)); +#28035=EDGE_LOOP('',(#7952,#7953,#7954,#7955)); +#28036=EDGE_LOOP('',(#7956,#7957,#7958,#7959,#7960,#7961,#7962,#7963)); +#28037=EDGE_LOOP('',(#7964,#7965,#7966,#7967,#7968,#7969,#7970,#7971)); +#28038=EDGE_LOOP('',(#7972,#7973,#7974,#7975,#7976,#7977,#7978,#7979)); +#28039=EDGE_LOOP('',(#7980,#7981,#7982,#7983,#7984,#7985,#7986,#7987)); +#28040=EDGE_LOOP('',(#7988,#7989,#7990,#7991,#7992,#7993,#7994,#7995)); +#28041=EDGE_LOOP('',(#7996,#7997,#7998,#7999,#8000,#8001,#8002,#8003)); +#28042=EDGE_LOOP('',(#8004,#8005,#8006,#8007,#8008,#8009,#8010,#8011)); +#28043=EDGE_LOOP('',(#8012,#8013,#8014,#8015,#8016,#8017,#8018,#8019)); +#28044=EDGE_LOOP('',(#8020,#8021,#8022,#8023,#8024,#8025,#8026,#8027)); +#28045=EDGE_LOOP('',(#8028,#8029,#8030,#8031,#8032,#8033,#8034,#8035)); +#28046=EDGE_LOOP('',(#8036,#8037,#8038,#8039,#8040,#8041,#8042,#8043)); +#28047=EDGE_LOOP('',(#8044,#8045,#8046,#8047,#8048,#8049,#8050,#8051)); +#28048=EDGE_LOOP('',(#8052,#8053,#8054,#8055,#8056,#8057,#8058,#8059)); +#28049=EDGE_LOOP('',(#8060,#8061,#8062,#8063,#8064,#8065,#8066,#8067)); +#28050=EDGE_LOOP('',(#8068,#8069,#8070,#8071,#8072,#8073,#8074,#8075)); +#28051=EDGE_LOOP('',(#8076,#8077,#8078,#8079,#8080,#8081,#8082,#8083)); +#28052=EDGE_LOOP('',(#8084,#8085,#8086,#8087,#8088,#8089,#8090,#8091)); +#28053=EDGE_LOOP('',(#8092,#8093,#8094,#8095,#8096,#8097,#8098,#8099)); +#28054=EDGE_LOOP('',(#8100,#8101,#8102,#8103,#8104,#8105,#8106,#8107)); +#28055=EDGE_LOOP('',(#8108,#8109,#8110,#8111,#8112,#8113,#8114,#8115)); +#28056=EDGE_LOOP('',(#8116,#8117,#8118,#8119,#8120,#8121)); +#28057=EDGE_LOOP('',(#8122,#8123,#8124,#8125,#8126,#8127)); +#28058=EDGE_LOOP('',(#8128,#8129,#8130,#8131,#8132,#8133)); +#28059=EDGE_LOOP('',(#8134,#8135,#8136,#8137,#8138,#8139)); +#28060=EDGE_LOOP('',(#8140,#8141,#8142,#8143,#8144,#8145)); +#28061=EDGE_LOOP('',(#8146,#8147,#8148,#8149,#8150,#8151)); +#28062=EDGE_LOOP('',(#8152,#8153,#8154,#8155,#8156,#8157)); +#28063=EDGE_LOOP('',(#8158,#8159,#8160,#8161,#8162,#8163)); +#28064=EDGE_LOOP('',(#8164,#8165,#8166,#8167,#8168,#8169)); +#28065=EDGE_LOOP('',(#8170,#8171,#8172,#8173,#8174,#8175)); +#28066=EDGE_LOOP('',(#8176,#8177,#8178,#8179,#8180,#8181)); +#28067=EDGE_LOOP('',(#8182,#8183,#8184,#8185,#8186,#8187)); +#28068=EDGE_LOOP('',(#8188,#8189,#8190,#8191,#8192,#8193)); +#28069=EDGE_LOOP('',(#8194,#8195,#8196,#8197,#8198,#8199)); +#28070=EDGE_LOOP('',(#8200,#8201,#8202,#8203,#8204,#8205)); +#28071=EDGE_LOOP('',(#8206,#8207,#8208,#8209,#8210,#8211)); +#28072=EDGE_LOOP('',(#8212,#8213,#8214,#8215,#8216,#8217)); +#28073=EDGE_LOOP('',(#8218,#8219,#8220,#8221,#8222,#8223)); +#28074=EDGE_LOOP('',(#8224,#8225,#8226,#8227,#8228,#8229)); +#28075=EDGE_LOOP('',(#8230,#8231,#8232,#8233,#8234,#8235)); +#28076=EDGE_LOOP('',(#8236,#8237,#8238,#8239,#8240,#8241)); +#28077=EDGE_LOOP('',(#8242,#8243,#8244,#8245,#8246,#8247)); +#28078=EDGE_LOOP('',(#8248,#8249,#8250,#8251,#8252,#8253)); +#28079=EDGE_LOOP('',(#8254,#8255,#8256,#8257,#8258,#8259)); +#28080=EDGE_LOOP('',(#8260,#8261,#8262,#8263,#8264,#8265)); +#28081=EDGE_LOOP('',(#8266,#8267,#8268,#8269,#8270,#8271)); +#28082=EDGE_LOOP('',(#8272,#8273,#8274,#8275,#8276,#8277)); +#28083=EDGE_LOOP('',(#8278,#8279,#8280,#8281,#8282,#8283)); +#28084=EDGE_LOOP('',(#8284,#8285,#8286,#8287,#8288,#8289)); +#28085=EDGE_LOOP('',(#8290,#8291,#8292,#8293,#8294,#8295)); +#28086=EDGE_LOOP('',(#8296,#8297,#8298,#8299,#8300,#8301)); +#28087=EDGE_LOOP('',(#8302,#8303,#8304,#8305,#8306,#8307)); +#28088=EDGE_LOOP('',(#8308,#8309,#8310,#8311,#8312,#8313)); +#28089=EDGE_LOOP('',(#8314,#8315,#8316,#8317,#8318,#8319)); +#28090=EDGE_LOOP('',(#8320,#8321,#8322,#8323,#8324,#8325)); +#28091=EDGE_LOOP('',(#8326,#8327,#8328,#8329,#8330,#8331)); +#28092=EDGE_LOOP('',(#8332,#8333,#8334,#8335,#8336,#8337)); +#28093=EDGE_LOOP('',(#8338,#8339,#8340,#8341,#8342,#8343)); +#28094=EDGE_LOOP('',(#8344,#8345,#8346,#8347,#8348,#8349)); +#28095=EDGE_LOOP('',(#8350,#8351,#8352,#8353,#8354,#8355)); +#28096=EDGE_LOOP('',(#8356,#8357,#8358,#8359,#8360,#8361)); +#28097=EDGE_LOOP('',(#8362,#8363,#8364,#8365,#8366,#8367)); +#28098=EDGE_LOOP('',(#8368,#8369,#8370,#8371,#8372,#8373)); +#28099=EDGE_LOOP('',(#8374,#8375,#8376,#8377,#8378,#8379)); +#28100=EDGE_LOOP('',(#8380,#8381,#8382,#8383,#8384,#8385)); +#28101=EDGE_LOOP('',(#8386,#8387,#8388,#8389,#8390,#8391)); +#28102=EDGE_LOOP('',(#8392,#8393,#8394,#8395,#8396,#8397)); +#28103=EDGE_LOOP('',(#8398,#8399,#8400,#8401,#8402,#8403)); +#28104=EDGE_LOOP('',(#8404,#8405,#8406,#8407,#8408,#8409)); +#28105=EDGE_LOOP('',(#8410,#8411,#8412,#8413,#8414,#8415)); +#28106=EDGE_LOOP('',(#8416,#8417,#8418,#8419,#8420,#8421)); +#28107=EDGE_LOOP('',(#8422,#8423,#8424,#8425,#8426,#8427)); +#28108=EDGE_LOOP('',(#8428,#8429,#8430,#8431,#8432,#8433)); +#28109=EDGE_LOOP('',(#8434,#8435,#8436,#8437,#8438,#8439)); +#28110=EDGE_LOOP('',(#8440,#8441,#8442,#8443,#8444,#8445)); +#28111=EDGE_LOOP('',(#8446,#8447,#8448,#8449,#8450,#8451)); +#28112=EDGE_LOOP('',(#8452,#8453,#8454,#8455,#8456,#8457)); +#28113=EDGE_LOOP('',(#8458,#8459,#8460,#8461,#8462,#8463)); +#28114=EDGE_LOOP('',(#8464,#8465,#8466,#8467,#8468,#8469)); +#28115=EDGE_LOOP('',(#8470,#8471,#8472,#8473,#8474,#8475)); +#28116=EDGE_LOOP('',(#8476,#8477,#8478,#8479,#8480,#8481)); +#28117=EDGE_LOOP('',(#8482,#8483,#8484,#8485,#8486,#8487)); +#28118=EDGE_LOOP('',(#8488,#8489,#8490,#8491,#8492,#8493)); +#28119=EDGE_LOOP('',(#8494,#8495,#8496,#8497,#8498,#8499)); +#28120=EDGE_LOOP('',(#8500,#8501,#8502,#8503,#8504,#8505)); +#28121=EDGE_LOOP('',(#8506,#8507,#8508,#8509,#8510,#8511)); +#28122=EDGE_LOOP('',(#8512,#8513,#8514,#8515,#8516,#8517)); +#28123=EDGE_LOOP('',(#8518,#8519,#8520,#8521,#8522,#8523)); +#28124=EDGE_LOOP('',(#8524,#8525,#8526,#8527,#8528,#8529)); +#28125=EDGE_LOOP('',(#8530,#8531,#8532,#8533,#8534,#8535)); +#28126=EDGE_LOOP('',(#8536,#8537,#8538,#8539,#8540,#8541)); +#28127=EDGE_LOOP('',(#8542,#8543,#8544,#8545,#8546,#8547)); +#28128=EDGE_LOOP('',(#8548,#8549,#8550,#8551,#8552,#8553)); +#28129=EDGE_LOOP('',(#8554,#8555,#8556,#8557,#8558,#8559)); +#28130=EDGE_LOOP('',(#8560,#8561,#8562,#8563,#8564,#8565)); +#28131=EDGE_LOOP('',(#8566,#8567,#8568,#8569,#8570,#8571)); +#28132=EDGE_LOOP('',(#8572,#8573,#8574,#8575,#8576,#8577)); +#28133=EDGE_LOOP('',(#8578,#8579,#8580,#8581,#8582,#8583)); +#28134=EDGE_LOOP('',(#8584,#8585,#8586,#8587,#8588,#8589,#8590,#8591)); +#28135=EDGE_LOOP('',(#8592,#8593,#8594,#8595,#8596,#8597,#8598,#8599)); +#28136=EDGE_LOOP('',(#8600,#8601,#8602,#8603,#8604,#8605,#8606,#8607)); +#28137=EDGE_LOOP('',(#8608,#8609,#8610,#8611,#8612,#8613,#8614,#8615)); +#28138=EDGE_LOOP('',(#8616,#8617,#8618,#8619,#8620,#8621,#8622,#8623)); +#28139=EDGE_LOOP('',(#8624,#8625,#8626,#8627,#8628,#8629,#8630,#8631)); +#28140=EDGE_LOOP('',(#8632,#8633,#8634,#8635,#8636,#8637,#8638,#8639)); +#28141=EDGE_LOOP('',(#8640,#8641,#8642,#8643,#8644,#8645,#8646,#8647)); +#28142=EDGE_LOOP('',(#8648,#8649,#8650,#8651,#8652,#8653,#8654,#8655)); +#28143=EDGE_LOOP('',(#8656,#8657,#8658,#8659,#8660,#8661,#8662,#8663)); +#28144=EDGE_LOOP('',(#8664,#8665,#8666,#8667,#8668,#8669,#8670,#8671)); +#28145=EDGE_LOOP('',(#8672,#8673,#8674,#8675,#8676,#8677,#8678,#8679)); +#28146=EDGE_LOOP('',(#8680,#8681,#8682,#8683,#8684,#8685,#8686,#8687)); +#28147=EDGE_LOOP('',(#8688,#8689,#8690,#8691,#8692,#8693,#8694,#8695)); +#28148=EDGE_LOOP('',(#8696,#8697,#8698,#8699,#8700,#8701,#8702,#8703)); +#28149=EDGE_LOOP('',(#8704,#8705,#8706,#8707,#8708,#8709,#8710,#8711)); +#28150=EDGE_LOOP('',(#8712,#8713,#8714,#8715,#8716,#8717,#8718,#8719)); +#28151=EDGE_LOOP('',(#8720,#8721,#8722,#8723,#8724,#8725,#8726,#8727)); +#28152=EDGE_LOOP('',(#8728,#8729,#8730,#8731,#8732,#8733,#8734,#8735)); +#28153=EDGE_LOOP('',(#8736,#8737,#8738,#8739,#8740,#8741,#8742,#8743)); +#28154=EDGE_LOOP('',(#8744,#8745,#8746,#8747)); +#28155=EDGE_LOOP('',(#8748,#8749,#8750,#8751)); +#28156=EDGE_LOOP('',(#8752,#8753,#8754,#8755,#8756,#8757)); +#28157=EDGE_LOOP('',(#8758,#8759,#8760,#8761,#8762,#8763)); +#28158=EDGE_LOOP('',(#8764,#8765,#8766)); +#28159=EDGE_LOOP('',(#8767,#8768,#8769,#8770,#8771)); +#28160=EDGE_LOOP('',(#8772,#8773,#8774,#8775)); +#28161=EDGE_LOOP('',(#8776,#8777,#8778,#8779)); +#28162=EDGE_LOOP('',(#8780,#8781,#8782,#8783)); +#28163=EDGE_LOOP('',(#8784,#8785,#8786,#8787)); +#28164=EDGE_LOOP('',(#8788,#8789,#8790,#8791)); +#28165=EDGE_LOOP('',(#8792,#8793,#8794,#8795)); +#28166=EDGE_LOOP('',(#8796,#8797,#8798,#8799)); +#28167=EDGE_LOOP('',(#8800,#8801,#8802,#8803)); +#28168=EDGE_LOOP('',(#8804,#8805,#8806,#8807)); +#28169=EDGE_LOOP('',(#8808,#8809,#8810,#8811)); +#28170=EDGE_LOOP('',(#8812,#8813,#8814,#8815)); +#28171=EDGE_LOOP('',(#8816,#8817,#8818,#8819,#8820)); +#28172=EDGE_LOOP('',(#8821,#8822,#8823,#8824)); +#28173=EDGE_LOOP('',(#8825,#8826,#8827)); +#28174=EDGE_LOOP('',(#8828,#8829,#8830,#8831)); +#28175=EDGE_LOOP('',(#8832,#8833,#8834,#8835)); +#28176=EDGE_LOOP('',(#8836,#8837,#8838,#8839)); +#28177=EDGE_LOOP('',(#8840,#8841,#8842,#8843)); +#28178=EDGE_LOOP('',(#8844,#8845,#8846,#8847)); +#28179=EDGE_LOOP('',(#8848,#8849,#8850,#8851)); +#28180=EDGE_LOOP('',(#8852,#8853,#8854,#8855,#8856)); +#28181=EDGE_LOOP('',(#8857,#8858,#8859)); +#28182=EDGE_LOOP('',(#8860,#8861,#8862,#8863)); +#28183=EDGE_LOOP('',(#8864,#8865,#8866,#8867)); +#28184=EDGE_LOOP('',(#8868,#8869,#8870,#8871)); +#28185=EDGE_LOOP('',(#8872,#8873,#8874,#8875)); +#28186=EDGE_LOOP('',(#8876,#8877,#8878,#8879)); +#28187=EDGE_LOOP('',(#8880,#8881,#8882,#8883)); +#28188=EDGE_LOOP('',(#8884,#8885,#8886,#8887,#8888)); +#28189=EDGE_LOOP('',(#8889,#8890,#8891)); +#28190=EDGE_LOOP('',(#8892,#8893,#8894)); +#28191=EDGE_LOOP('',(#8895,#8896,#8897,#8898,#8899)); +#28192=EDGE_LOOP('',(#8900,#8901,#8902,#8903)); +#28193=EDGE_LOOP('',(#8904,#8905,#8906,#8907)); +#28194=EDGE_LOOP('',(#8908,#8909,#8910,#8911)); +#28195=EDGE_LOOP('',(#8912,#8913,#8914,#8915)); +#28196=EDGE_LOOP('',(#8916,#8917,#8918,#8919)); +#28197=EDGE_LOOP('',(#8920,#8921,#8922,#8923)); +#28198=EDGE_LOOP('',(#8924,#8925,#8926,#8927)); +#28199=EDGE_LOOP('',(#8928,#8929,#8930,#8931)); +#28200=EDGE_LOOP('',(#8932,#8933,#8934,#8935)); +#28201=EDGE_LOOP('',(#8936,#8937,#8938,#8939)); +#28202=EDGE_LOOP('',(#8940,#8941,#8942,#8943)); +#28203=EDGE_LOOP('',(#8944,#8945,#8946,#8947)); +#28204=EDGE_LOOP('',(#8948,#8949,#8950,#8951)); +#28205=EDGE_LOOP('',(#8952,#8953,#8954,#8955)); +#28206=EDGE_LOOP('',(#8956,#8957,#8958,#8959,#8960)); +#28207=EDGE_LOOP('',(#8961,#8962,#8963)); +#28208=EDGE_LOOP('',(#8964,#8965,#8966)); +#28209=EDGE_LOOP('',(#8967,#8968,#8969,#8970,#8971)); +#28210=EDGE_LOOP('',(#8972,#8973,#8974,#8975)); +#28211=EDGE_LOOP('',(#8976,#8977,#8978,#8979)); +#28212=EDGE_LOOP('',(#8980,#8981,#8982,#8983)); +#28213=EDGE_LOOP('',(#8984,#8985,#8986,#8987)); +#28214=EDGE_LOOP('',(#8988,#8989,#8990,#8991)); +#28215=EDGE_LOOP('',(#8992,#8993,#8994,#8995)); +#28216=EDGE_LOOP('',(#8996,#8997,#8998,#8999)); +#28217=EDGE_LOOP('',(#9000,#9001,#9002,#9003)); +#28218=EDGE_LOOP('',(#9004,#9005,#9006,#9007)); +#28219=EDGE_LOOP('',(#9008,#9009,#9010,#9011)); +#28220=EDGE_LOOP('',(#9012,#9013,#9014,#9015)); +#28221=EDGE_LOOP('',(#9016,#9017,#9018,#9019)); +#28222=EDGE_LOOP('',(#9020,#9021,#9022,#9023)); +#28223=EDGE_LOOP('',(#9024,#9025,#9026,#9027)); +#28224=EDGE_LOOP('',(#9028,#9029,#9030,#9031,#9032)); +#28225=EDGE_LOOP('',(#9033,#9034,#9035)); +#28226=EDGE_LOOP('',(#9036,#9037,#9038)); +#28227=EDGE_LOOP('',(#9039,#9040,#9041,#9042,#9043)); +#28228=EDGE_LOOP('',(#9044,#9045,#9046,#9047)); +#28229=EDGE_LOOP('',(#9048,#9049,#9050,#9051)); +#28230=EDGE_LOOP('',(#9052,#9053,#9054,#9055)); +#28231=EDGE_LOOP('',(#9056,#9057,#9058,#9059)); +#28232=EDGE_LOOP('',(#9060,#9061,#9062,#9063)); +#28233=EDGE_LOOP('',(#9064,#9065,#9066,#9067)); +#28234=EDGE_LOOP('',(#9068,#9069,#9070,#9071)); +#28235=EDGE_LOOP('',(#9072,#9073,#9074,#9075)); +#28236=EDGE_LOOP('',(#9076,#9077,#9078,#9079)); +#28237=EDGE_LOOP('',(#9080,#9081,#9082,#9083)); +#28238=EDGE_LOOP('',(#9084,#9085,#9086,#9087)); +#28239=EDGE_LOOP('',(#9088,#9089,#9090,#9091)); +#28240=EDGE_LOOP('',(#9092,#9093,#9094,#9095)); +#28241=EDGE_LOOP('',(#9096,#9097,#9098,#9099)); +#28242=EDGE_LOOP('',(#9100,#9101,#9102,#9103,#9104)); +#28243=EDGE_LOOP('',(#9105,#9106,#9107)); +#28244=EDGE_LOOP('',(#9108,#9109,#9110)); +#28245=EDGE_LOOP('',(#9111,#9112,#9113,#9114,#9115)); +#28246=EDGE_LOOP('',(#9116,#9117,#9118,#9119)); +#28247=EDGE_LOOP('',(#9120,#9121,#9122,#9123)); +#28248=EDGE_LOOP('',(#9124,#9125,#9126,#9127)); +#28249=EDGE_LOOP('',(#9128,#9129,#9130,#9131)); +#28250=EDGE_LOOP('',(#9132,#9133,#9134,#9135)); +#28251=EDGE_LOOP('',(#9136,#9137,#9138,#9139)); +#28252=EDGE_LOOP('',(#9140,#9141,#9142,#9143)); +#28253=EDGE_LOOP('',(#9144,#9145,#9146,#9147)); +#28254=EDGE_LOOP('',(#9148,#9149,#9150,#9151)); +#28255=EDGE_LOOP('',(#9152,#9153,#9154,#9155)); +#28256=EDGE_LOOP('',(#9156,#9157,#9158,#9159)); +#28257=EDGE_LOOP('',(#9160,#9161,#9162,#9163)); +#28258=EDGE_LOOP('',(#9164,#9165,#9166,#9167)); +#28259=EDGE_LOOP('',(#9168,#9169,#9170,#9171)); +#28260=EDGE_LOOP('',(#9172,#9173,#9174,#9175,#9176)); +#28261=EDGE_LOOP('',(#9177,#9178,#9179)); +#28262=EDGE_LOOP('',(#9180,#9181,#9182)); +#28263=EDGE_LOOP('',(#9183,#9184,#9185,#9186,#9187)); +#28264=EDGE_LOOP('',(#9188,#9189,#9190,#9191)); +#28265=EDGE_LOOP('',(#9192,#9193,#9194,#9195)); +#28266=EDGE_LOOP('',(#9196,#9197,#9198,#9199)); +#28267=EDGE_LOOP('',(#9200,#9201,#9202,#9203)); +#28268=EDGE_LOOP('',(#9204,#9205,#9206,#9207)); +#28269=EDGE_LOOP('',(#9208,#9209,#9210,#9211)); +#28270=EDGE_LOOP('',(#9212,#9213,#9214,#9215)); +#28271=EDGE_LOOP('',(#9216,#9217,#9218,#9219)); +#28272=EDGE_LOOP('',(#9220,#9221,#9222,#9223)); +#28273=EDGE_LOOP('',(#9224,#9225,#9226,#9227)); +#28274=EDGE_LOOP('',(#9228,#9229,#9230,#9231)); +#28275=EDGE_LOOP('',(#9232,#9233,#9234,#9235)); +#28276=EDGE_LOOP('',(#9236,#9237,#9238,#9239)); +#28277=EDGE_LOOP('',(#9240,#9241,#9242,#9243)); +#28278=EDGE_LOOP('',(#9244,#9245,#9246,#9247,#9248)); +#28279=EDGE_LOOP('',(#9249,#9250,#9251)); +#28280=EDGE_LOOP('',(#9252,#9253,#9254)); +#28281=EDGE_LOOP('',(#9255,#9256,#9257,#9258,#9259)); +#28282=EDGE_LOOP('',(#9260,#9261,#9262,#9263)); +#28283=EDGE_LOOP('',(#9264,#9265,#9266,#9267)); +#28284=EDGE_LOOP('',(#9268,#9269,#9270,#9271)); +#28285=EDGE_LOOP('',(#9272,#9273,#9274,#9275)); +#28286=EDGE_LOOP('',(#9276,#9277,#9278,#9279)); +#28287=EDGE_LOOP('',(#9280,#9281,#9282,#9283)); +#28288=EDGE_LOOP('',(#9284,#9285,#9286,#9287)); +#28289=EDGE_LOOP('',(#9288,#9289,#9290,#9291)); +#28290=EDGE_LOOP('',(#9292,#9293,#9294,#9295)); +#28291=EDGE_LOOP('',(#9296,#9297,#9298,#9299)); +#28292=EDGE_LOOP('',(#9300,#9301,#9302,#9303)); +#28293=EDGE_LOOP('',(#9304,#9305,#9306,#9307)); +#28294=EDGE_LOOP('',(#9308,#9309,#9310,#9311)); +#28295=EDGE_LOOP('',(#9312,#9313,#9314,#9315)); +#28296=EDGE_LOOP('',(#9316,#9317,#9318,#9319,#9320)); +#28297=EDGE_LOOP('',(#9321,#9322,#9323)); +#28298=EDGE_LOOP('',(#9324,#9325,#9326)); +#28299=EDGE_LOOP('',(#9327,#9328,#9329,#9330,#9331)); +#28300=EDGE_LOOP('',(#9332,#9333,#9334,#9335)); +#28301=EDGE_LOOP('',(#9336,#9337,#9338,#9339)); +#28302=EDGE_LOOP('',(#9340,#9341,#9342,#9343)); +#28303=EDGE_LOOP('',(#9344,#9345,#9346,#9347)); +#28304=EDGE_LOOP('',(#9348,#9349,#9350,#9351)); +#28305=EDGE_LOOP('',(#9352,#9353,#9354,#9355)); +#28306=EDGE_LOOP('',(#9356,#9357,#9358,#9359)); +#28307=EDGE_LOOP('',(#9360,#9361,#9362,#9363)); +#28308=EDGE_LOOP('',(#9364,#9365,#9366,#9367)); +#28309=EDGE_LOOP('',(#9368,#9369,#9370,#9371)); +#28310=EDGE_LOOP('',(#9372,#9373,#9374,#9375)); +#28311=EDGE_LOOP('',(#9376,#9377,#9378,#9379)); +#28312=EDGE_LOOP('',(#9380,#9381,#9382,#9383)); +#28313=EDGE_LOOP('',(#9384,#9385,#9386,#9387)); +#28314=EDGE_LOOP('',(#9388,#9389,#9390,#9391,#9392)); +#28315=EDGE_LOOP('',(#9393,#9394,#9395)); +#28316=EDGE_LOOP('',(#9396,#9397,#9398)); +#28317=EDGE_LOOP('',(#9399,#9400,#9401,#9402,#9403)); +#28318=EDGE_LOOP('',(#9404,#9405,#9406,#9407)); +#28319=EDGE_LOOP('',(#9408,#9409,#9410,#9411)); +#28320=EDGE_LOOP('',(#9412,#9413,#9414,#9415)); +#28321=EDGE_LOOP('',(#9416,#9417,#9418,#9419)); +#28322=EDGE_LOOP('',(#9420,#9421,#9422,#9423)); +#28323=EDGE_LOOP('',(#9424,#9425,#9426,#9427)); +#28324=EDGE_LOOP('',(#9428,#9429,#9430,#9431)); +#28325=EDGE_LOOP('',(#9432,#9433,#9434,#9435)); +#28326=EDGE_LOOP('',(#9436,#9437,#9438,#9439)); +#28327=EDGE_LOOP('',(#9440,#9441,#9442,#9443)); +#28328=EDGE_LOOP('',(#9444,#9445,#9446,#9447)); +#28329=EDGE_LOOP('',(#9448,#9449,#9450,#9451)); +#28330=EDGE_LOOP('',(#9452,#9453,#9454,#9455)); +#28331=EDGE_LOOP('',(#9456,#9457,#9458,#9459)); +#28332=EDGE_LOOP('',(#9460,#9461,#9462,#9463,#9464)); +#28333=EDGE_LOOP('',(#9465,#9466,#9467)); +#28334=EDGE_LOOP('',(#9468,#9469,#9470)); +#28335=EDGE_LOOP('',(#9471,#9472,#9473,#9474,#9475)); +#28336=EDGE_LOOP('',(#9476,#9477,#9478,#9479)); +#28337=EDGE_LOOP('',(#9480,#9481,#9482,#9483)); +#28338=EDGE_LOOP('',(#9484,#9485,#9486,#9487)); +#28339=EDGE_LOOP('',(#9488,#9489,#9490,#9491)); +#28340=EDGE_LOOP('',(#9492,#9493,#9494,#9495)); +#28341=EDGE_LOOP('',(#9496,#9497,#9498,#9499)); +#28342=EDGE_LOOP('',(#9500,#9501,#9502,#9503)); +#28343=EDGE_LOOP('',(#9504,#9505,#9506,#9507)); +#28344=EDGE_LOOP('',(#9508,#9509,#9510,#9511)); +#28345=EDGE_LOOP('',(#9512,#9513,#9514,#9515)); +#28346=EDGE_LOOP('',(#9516,#9517,#9518,#9519)); +#28347=EDGE_LOOP('',(#9520,#9521,#9522,#9523)); +#28348=EDGE_LOOP('',(#9524,#9525,#9526,#9527)); +#28349=EDGE_LOOP('',(#9528,#9529,#9530,#9531)); +#28350=EDGE_LOOP('',(#9532,#9533,#9534,#9535,#9536)); +#28351=EDGE_LOOP('',(#9537,#9538,#9539)); +#28352=EDGE_LOOP('',(#9540,#9541,#9542)); +#28353=EDGE_LOOP('',(#9543,#9544,#9545,#9546,#9547)); +#28354=EDGE_LOOP('',(#9548,#9549,#9550,#9551)); +#28355=EDGE_LOOP('',(#9552,#9553,#9554,#9555)); +#28356=EDGE_LOOP('',(#9556,#9557,#9558,#9559)); +#28357=EDGE_LOOP('',(#9560,#9561,#9562,#9563)); +#28358=EDGE_LOOP('',(#9564,#9565,#9566,#9567)); +#28359=EDGE_LOOP('',(#9568,#9569,#9570,#9571)); +#28360=EDGE_LOOP('',(#9572,#9573,#9574,#9575)); +#28361=EDGE_LOOP('',(#9576,#9577,#9578,#9579)); +#28362=EDGE_LOOP('',(#9580,#9581,#9582,#9583)); +#28363=EDGE_LOOP('',(#9584,#9585,#9586,#9587)); +#28364=EDGE_LOOP('',(#9588,#9589,#9590,#9591)); +#28365=EDGE_LOOP('',(#9592,#9593,#9594,#9595)); +#28366=EDGE_LOOP('',(#9596,#9597,#9598,#9599)); +#28367=EDGE_LOOP('',(#9600,#9601,#9602,#9603)); +#28368=EDGE_LOOP('',(#9604,#9605,#9606,#9607,#9608)); +#28369=EDGE_LOOP('',(#9609,#9610,#9611)); +#28370=EDGE_LOOP('',(#9612,#9613,#9614)); +#28371=EDGE_LOOP('',(#9615,#9616,#9617,#9618,#9619)); +#28372=EDGE_LOOP('',(#9620,#9621,#9622,#9623)); +#28373=EDGE_LOOP('',(#9624,#9625,#9626,#9627)); +#28374=EDGE_LOOP('',(#9628,#9629,#9630,#9631)); +#28375=EDGE_LOOP('',(#9632,#9633,#9634,#9635)); +#28376=EDGE_LOOP('',(#9636,#9637,#9638,#9639)); +#28377=EDGE_LOOP('',(#9640,#9641,#9642,#9643)); +#28378=EDGE_LOOP('',(#9644,#9645,#9646,#9647)); +#28379=EDGE_LOOP('',(#9648,#9649,#9650,#9651)); +#28380=EDGE_LOOP('',(#9652,#9653,#9654,#9655)); +#28381=EDGE_LOOP('',(#9656,#9657,#9658,#9659)); +#28382=EDGE_LOOP('',(#9660,#9661,#9662,#9663)); +#28383=EDGE_LOOP('',(#9664,#9665,#9666,#9667)); +#28384=EDGE_LOOP('',(#9668,#9669,#9670,#9671)); +#28385=EDGE_LOOP('',(#9672,#9673,#9674,#9675)); +#28386=EDGE_LOOP('',(#9676,#9677,#9678,#9679,#9680)); +#28387=EDGE_LOOP('',(#9681,#9682,#9683)); +#28388=EDGE_LOOP('',(#9684,#9685,#9686)); +#28389=EDGE_LOOP('',(#9687,#9688,#9689,#9690,#9691)); +#28390=EDGE_LOOP('',(#9692,#9693,#9694,#9695)); +#28391=EDGE_LOOP('',(#9696,#9697,#9698,#9699)); +#28392=EDGE_LOOP('',(#9700,#9701,#9702,#9703)); +#28393=EDGE_LOOP('',(#9704,#9705,#9706,#9707)); +#28394=EDGE_LOOP('',(#9708,#9709,#9710,#9711)); +#28395=EDGE_LOOP('',(#9712,#9713,#9714,#9715)); +#28396=EDGE_LOOP('',(#9716,#9717,#9718,#9719)); +#28397=EDGE_LOOP('',(#9720,#9721,#9722,#9723)); +#28398=EDGE_LOOP('',(#9724,#9725,#9726,#9727)); +#28399=EDGE_LOOP('',(#9728,#9729,#9730,#9731)); +#28400=EDGE_LOOP('',(#9732,#9733,#9734,#9735)); +#28401=EDGE_LOOP('',(#9736,#9737,#9738,#9739)); +#28402=EDGE_LOOP('',(#9740,#9741,#9742,#9743)); +#28403=EDGE_LOOP('',(#9744,#9745,#9746,#9747)); +#28404=EDGE_LOOP('',(#9748,#9749,#9750,#9751,#9752)); +#28405=EDGE_LOOP('',(#9753,#9754,#9755)); +#28406=EDGE_LOOP('',(#9756,#9757,#9758)); +#28407=EDGE_LOOP('',(#9759,#9760,#9761,#9762,#9763)); +#28408=EDGE_LOOP('',(#9764,#9765,#9766,#9767)); +#28409=EDGE_LOOP('',(#9768,#9769,#9770,#9771)); +#28410=EDGE_LOOP('',(#9772,#9773,#9774,#9775)); +#28411=EDGE_LOOP('',(#9776,#9777,#9778,#9779)); +#28412=EDGE_LOOP('',(#9780,#9781,#9782,#9783)); +#28413=EDGE_LOOP('',(#9784,#9785,#9786,#9787)); +#28414=EDGE_LOOP('',(#9788,#9789,#9790,#9791)); +#28415=EDGE_LOOP('',(#9792,#9793,#9794,#9795)); +#28416=EDGE_LOOP('',(#9796,#9797,#9798,#9799)); +#28417=EDGE_LOOP('',(#9800,#9801,#9802,#9803)); +#28418=EDGE_LOOP('',(#9804,#9805,#9806,#9807)); +#28419=EDGE_LOOP('',(#9808,#9809,#9810,#9811)); +#28420=EDGE_LOOP('',(#9812,#9813,#9814,#9815)); +#28421=EDGE_LOOP('',(#9816,#9817,#9818,#9819)); +#28422=EDGE_LOOP('',(#9820,#9821,#9822,#9823,#9824)); +#28423=EDGE_LOOP('',(#9825,#9826,#9827)); +#28424=EDGE_LOOP('',(#9828,#9829,#9830)); +#28425=EDGE_LOOP('',(#9831,#9832,#9833,#9834,#9835)); +#28426=EDGE_LOOP('',(#9836,#9837,#9838,#9839)); +#28427=EDGE_LOOP('',(#9840,#9841,#9842,#9843)); +#28428=EDGE_LOOP('',(#9844,#9845,#9846,#9847)); +#28429=EDGE_LOOP('',(#9848,#9849,#9850,#9851)); +#28430=EDGE_LOOP('',(#9852,#9853,#9854,#9855)); +#28431=EDGE_LOOP('',(#9856,#9857,#9858,#9859)); +#28432=EDGE_LOOP('',(#9860,#9861,#9862,#9863)); +#28433=EDGE_LOOP('',(#9864,#9865,#9866,#9867)); +#28434=EDGE_LOOP('',(#9868,#9869,#9870,#9871)); +#28435=EDGE_LOOP('',(#9872,#9873,#9874,#9875)); +#28436=EDGE_LOOP('',(#9876,#9877,#9878,#9879)); +#28437=EDGE_LOOP('',(#9880,#9881,#9882,#9883)); +#28438=EDGE_LOOP('',(#9884,#9885,#9886,#9887)); +#28439=EDGE_LOOP('',(#9888,#9889,#9890,#9891)); +#28440=EDGE_LOOP('',(#9892,#9893,#9894,#9895,#9896)); +#28441=EDGE_LOOP('',(#9897,#9898,#9899)); +#28442=EDGE_LOOP('',(#9900,#9901,#9902)); +#28443=EDGE_LOOP('',(#9903,#9904,#9905,#9906,#9907)); +#28444=EDGE_LOOP('',(#9908,#9909,#9910,#9911)); +#28445=EDGE_LOOP('',(#9912,#9913,#9914,#9915)); +#28446=EDGE_LOOP('',(#9916,#9917,#9918,#9919)); +#28447=EDGE_LOOP('',(#9920,#9921,#9922,#9923)); +#28448=EDGE_LOOP('',(#9924,#9925,#9926,#9927)); +#28449=EDGE_LOOP('',(#9928,#9929,#9930,#9931)); +#28450=EDGE_LOOP('',(#9932,#9933,#9934,#9935)); +#28451=EDGE_LOOP('',(#9936,#9937,#9938,#9939)); +#28452=EDGE_LOOP('',(#9940,#9941,#9942,#9943)); +#28453=EDGE_LOOP('',(#9944,#9945,#9946,#9947)); +#28454=EDGE_LOOP('',(#9948,#9949,#9950,#9951)); +#28455=EDGE_LOOP('',(#9952,#9953,#9954,#9955)); +#28456=EDGE_LOOP('',(#9956,#9957,#9958,#9959)); +#28457=EDGE_LOOP('',(#9960,#9961,#9962,#9963)); +#28458=EDGE_LOOP('',(#9964,#9965,#9966,#9967,#9968)); +#28459=EDGE_LOOP('',(#9969,#9970,#9971)); +#28460=EDGE_LOOP('',(#9972,#9973,#9974)); +#28461=EDGE_LOOP('',(#9975,#9976,#9977,#9978,#9979)); +#28462=EDGE_LOOP('',(#9980,#9981,#9982,#9983)); +#28463=EDGE_LOOP('',(#9984,#9985,#9986,#9987)); +#28464=EDGE_LOOP('',(#9988,#9989,#9990,#9991)); +#28465=EDGE_LOOP('',(#9992,#9993,#9994,#9995)); +#28466=EDGE_LOOP('',(#9996,#9997,#9998,#9999)); +#28467=EDGE_LOOP('',(#10000,#10001,#10002,#10003)); +#28468=EDGE_LOOP('',(#10004,#10005,#10006,#10007)); +#28469=EDGE_LOOP('',(#10008,#10009,#10010,#10011)); +#28470=EDGE_LOOP('',(#10012,#10013,#10014,#10015)); +#28471=EDGE_LOOP('',(#10016,#10017,#10018,#10019)); +#28472=EDGE_LOOP('',(#10020,#10021,#10022,#10023)); +#28473=EDGE_LOOP('',(#10024,#10025,#10026,#10027)); +#28474=EDGE_LOOP('',(#10028,#10029,#10030,#10031)); +#28475=EDGE_LOOP('',(#10032,#10033,#10034,#10035)); +#28476=EDGE_LOOP('',(#10036,#10037,#10038,#10039,#10040)); +#28477=EDGE_LOOP('',(#10041,#10042,#10043)); +#28478=EDGE_LOOP('',(#10044,#10045,#10046)); +#28479=EDGE_LOOP('',(#10047,#10048,#10049,#10050,#10051)); +#28480=EDGE_LOOP('',(#10052,#10053,#10054,#10055)); +#28481=EDGE_LOOP('',(#10056,#10057,#10058,#10059)); +#28482=EDGE_LOOP('',(#10060,#10061,#10062,#10063)); +#28483=EDGE_LOOP('',(#10064,#10065,#10066,#10067)); +#28484=EDGE_LOOP('',(#10068,#10069,#10070,#10071)); +#28485=EDGE_LOOP('',(#10072,#10073,#10074,#10075)); +#28486=EDGE_LOOP('',(#10076,#10077,#10078,#10079)); +#28487=EDGE_LOOP('',(#10080,#10081,#10082,#10083)); +#28488=EDGE_LOOP('',(#10084,#10085,#10086,#10087)); +#28489=EDGE_LOOP('',(#10088,#10089,#10090,#10091)); +#28490=EDGE_LOOP('',(#10092,#10093,#10094,#10095)); +#28491=EDGE_LOOP('',(#10096,#10097,#10098,#10099)); +#28492=EDGE_LOOP('',(#10100,#10101,#10102,#10103)); +#28493=EDGE_LOOP('',(#10104,#10105,#10106,#10107)); +#28494=EDGE_LOOP('',(#10108,#10109,#10110,#10111,#10112)); +#28495=EDGE_LOOP('',(#10113,#10114,#10115)); +#28496=EDGE_LOOP('',(#10116,#10117,#10118)); +#28497=EDGE_LOOP('',(#10119,#10120,#10121,#10122,#10123)); +#28498=EDGE_LOOP('',(#10124,#10125,#10126,#10127)); +#28499=EDGE_LOOP('',(#10128,#10129,#10130,#10131)); +#28500=EDGE_LOOP('',(#10132,#10133,#10134,#10135)); +#28501=EDGE_LOOP('',(#10136,#10137,#10138,#10139)); +#28502=EDGE_LOOP('',(#10140,#10141,#10142,#10143)); +#28503=EDGE_LOOP('',(#10144,#10145,#10146,#10147)); +#28504=EDGE_LOOP('',(#10148,#10149,#10150,#10151)); +#28505=EDGE_LOOP('',(#10152,#10153,#10154,#10155)); +#28506=EDGE_LOOP('',(#10156,#10157,#10158,#10159)); +#28507=EDGE_LOOP('',(#10160,#10161,#10162,#10163)); +#28508=EDGE_LOOP('',(#10164,#10165,#10166,#10167)); +#28509=EDGE_LOOP('',(#10168,#10169,#10170,#10171)); +#28510=EDGE_LOOP('',(#10172,#10173,#10174,#10175)); +#28511=EDGE_LOOP('',(#10176,#10177,#10178,#10179)); +#28512=EDGE_LOOP('',(#10180,#10181,#10182,#10183,#10184)); +#28513=EDGE_LOOP('',(#10185,#10186,#10187)); +#28514=EDGE_LOOP('',(#10188,#10189,#10190)); +#28515=EDGE_LOOP('',(#10191,#10192,#10193,#10194,#10195)); +#28516=EDGE_LOOP('',(#10196,#10197,#10198,#10199)); +#28517=EDGE_LOOP('',(#10200,#10201,#10202,#10203)); +#28518=EDGE_LOOP('',(#10204,#10205,#10206,#10207)); +#28519=EDGE_LOOP('',(#10208,#10209,#10210,#10211)); +#28520=EDGE_LOOP('',(#10212,#10213,#10214,#10215)); +#28521=EDGE_LOOP('',(#10216,#10217,#10218,#10219)); +#28522=EDGE_LOOP('',(#10220,#10221,#10222,#10223)); +#28523=EDGE_LOOP('',(#10224,#10225,#10226,#10227)); +#28524=EDGE_LOOP('',(#10228,#10229,#10230,#10231)); +#28525=EDGE_LOOP('',(#10232,#10233,#10234,#10235)); +#28526=EDGE_LOOP('',(#10236,#10237,#10238,#10239)); +#28527=EDGE_LOOP('',(#10240,#10241,#10242,#10243)); +#28528=EDGE_LOOP('',(#10244,#10245,#10246,#10247)); +#28529=EDGE_LOOP('',(#10248,#10249,#10250,#10251)); +#28530=EDGE_LOOP('',(#10252,#10253,#10254,#10255,#10256)); +#28531=EDGE_LOOP('',(#10257,#10258,#10259)); +#28532=EDGE_LOOP('',(#10260,#10261,#10262,#10263)); +#28533=EDGE_LOOP('',(#10264,#10265,#10266,#10267)); +#28534=EDGE_LOOP('',(#10268,#10269,#10270,#10271)); +#28535=EDGE_LOOP('',(#10272,#10273,#10274,#10275)); +#28536=EDGE_LOOP('',(#10276,#10277,#10278,#10279)); +#28537=EDGE_LOOP('',(#10280,#10281,#10282,#10283)); +#28538=EDGE_LOOP('',(#10284,#10285,#10286,#10287)); +#28539=EDGE_LOOP('',(#10288,#10289,#10290,#10291)); +#28540=EDGE_LOOP('',(#10292,#10293,#10294,#10295)); +#28541=EDGE_LOOP('',(#10296,#10297,#10298,#10299)); +#28542=EDGE_LOOP('',(#10300,#10301,#10302,#10303)); +#28543=EDGE_LOOP('',(#10304,#10305,#10306,#10307)); +#28544=EDGE_LOOP('',(#10308,#10309,#10310,#10311,#10312)); +#28545=EDGE_LOOP('',(#10313,#10314,#10315,#10316)); +#28546=EDGE_LOOP('',(#10317,#10318,#10319,#10320)); +#28547=EDGE_LOOP('',(#10321,#10322,#10323,#10324,#10325)); +#28548=EDGE_LOOP('',(#10326,#10327,#10328)); +#28549=EDGE_LOOP('',(#10329,#10330,#10331)); +#28550=EDGE_LOOP('',(#10332,#10333,#10334,#10335)); +#28551=EDGE_LOOP('',(#10336,#10337,#10338,#10339)); +#28552=EDGE_LOOP('',(#10340,#10341,#10342,#10343)); +#28553=EDGE_LOOP('',(#10344,#10345,#10346,#10347)); +#28554=EDGE_LOOP('',(#10348,#10349,#10350,#10351)); +#28555=EDGE_LOOP('',(#10352,#10353,#10354,#10355)); +#28556=EDGE_LOOP('',(#10356,#10357,#10358,#10359)); +#28557=EDGE_LOOP('',(#10360,#10361,#10362,#10363)); +#28558=EDGE_LOOP('',(#10364,#10365,#10366,#10367)); +#28559=EDGE_LOOP('',(#10368,#10369,#10370,#10371)); +#28560=EDGE_LOOP('',(#10372,#10373,#10374,#10375)); +#28561=EDGE_LOOP('',(#10376,#10377,#10378,#10379)); +#28562=EDGE_LOOP('',(#10380,#10381,#10382,#10383,#10384)); +#28563=EDGE_LOOP('',(#10385,#10386,#10387,#10388)); +#28564=EDGE_LOOP('',(#10389,#10390,#10391,#10392)); +#28565=EDGE_LOOP('',(#10393,#10394,#10395,#10396,#10397)); +#28566=EDGE_LOOP('',(#10398,#10399,#10400)); +#28567=EDGE_LOOP('',(#10401,#10402,#10403)); +#28568=EDGE_LOOP('',(#10404,#10405,#10406,#10407)); +#28569=EDGE_LOOP('',(#10408,#10409,#10410,#10411)); +#28570=EDGE_LOOP('',(#10412,#10413,#10414,#10415)); +#28571=EDGE_LOOP('',(#10416,#10417,#10418,#10419)); +#28572=EDGE_LOOP('',(#10420,#10421,#10422,#10423)); +#28573=EDGE_LOOP('',(#10424,#10425,#10426,#10427)); +#28574=EDGE_LOOP('',(#10428,#10429,#10430,#10431)); +#28575=EDGE_LOOP('',(#10432,#10433,#10434,#10435)); +#28576=EDGE_LOOP('',(#10436,#10437,#10438,#10439)); +#28577=EDGE_LOOP('',(#10440,#10441,#10442,#10443)); +#28578=EDGE_LOOP('',(#10444,#10445,#10446,#10447)); +#28579=EDGE_LOOP('',(#10448,#10449,#10450,#10451)); +#28580=EDGE_LOOP('',(#10452,#10453,#10454,#10455,#10456)); +#28581=EDGE_LOOP('',(#10457,#10458,#10459,#10460)); +#28582=EDGE_LOOP('',(#10461,#10462,#10463,#10464)); +#28583=EDGE_LOOP('',(#10465,#10466,#10467,#10468,#10469)); +#28584=EDGE_LOOP('',(#10470,#10471,#10472)); +#28585=EDGE_LOOP('',(#10473,#10474,#10475)); +#28586=EDGE_LOOP('',(#10476,#10477,#10478,#10479)); +#28587=EDGE_LOOP('',(#10480,#10481,#10482,#10483)); +#28588=EDGE_LOOP('',(#10484,#10485,#10486,#10487)); +#28589=EDGE_LOOP('',(#10488,#10489,#10490,#10491)); +#28590=EDGE_LOOP('',(#10492,#10493,#10494,#10495)); +#28591=EDGE_LOOP('',(#10496,#10497,#10498,#10499)); +#28592=EDGE_LOOP('',(#10500,#10501,#10502,#10503)); +#28593=EDGE_LOOP('',(#10504,#10505,#10506,#10507)); +#28594=EDGE_LOOP('',(#10508,#10509,#10510,#10511)); +#28595=EDGE_LOOP('',(#10512,#10513,#10514,#10515)); +#28596=EDGE_LOOP('',(#10516,#10517,#10518,#10519)); +#28597=EDGE_LOOP('',(#10520,#10521,#10522,#10523)); +#28598=EDGE_LOOP('',(#10524,#10525,#10526,#10527,#10528)); +#28599=EDGE_LOOP('',(#10529,#10530,#10531,#10532)); +#28600=EDGE_LOOP('',(#10533,#10534,#10535,#10536)); +#28601=EDGE_LOOP('',(#10537,#10538,#10539,#10540,#10541)); +#28602=EDGE_LOOP('',(#10542,#10543,#10544)); +#28603=EDGE_LOOP('',(#10545,#10546,#10547)); +#28604=EDGE_LOOP('',(#10548,#10549,#10550,#10551)); +#28605=EDGE_LOOP('',(#10552,#10553,#10554,#10555)); +#28606=EDGE_LOOP('',(#10556,#10557,#10558,#10559)); +#28607=EDGE_LOOP('',(#10560,#10561,#10562,#10563)); +#28608=EDGE_LOOP('',(#10564,#10565,#10566,#10567)); +#28609=EDGE_LOOP('',(#10568,#10569,#10570,#10571)); +#28610=EDGE_LOOP('',(#10572,#10573,#10574,#10575)); +#28611=EDGE_LOOP('',(#10576,#10577,#10578,#10579)); +#28612=EDGE_LOOP('',(#10580,#10581,#10582,#10583)); +#28613=EDGE_LOOP('',(#10584,#10585,#10586,#10587)); +#28614=EDGE_LOOP('',(#10588,#10589,#10590,#10591)); +#28615=EDGE_LOOP('',(#10592,#10593,#10594,#10595)); +#28616=EDGE_LOOP('',(#10596,#10597,#10598,#10599,#10600)); +#28617=EDGE_LOOP('',(#10601,#10602,#10603,#10604)); +#28618=EDGE_LOOP('',(#10605,#10606,#10607,#10608)); +#28619=EDGE_LOOP('',(#10609,#10610,#10611,#10612,#10613)); +#28620=EDGE_LOOP('',(#10614,#10615,#10616)); +#28621=EDGE_LOOP('',(#10617,#10618,#10619)); +#28622=EDGE_LOOP('',(#10620,#10621,#10622,#10623)); +#28623=EDGE_LOOP('',(#10624,#10625,#10626,#10627)); +#28624=EDGE_LOOP('',(#10628,#10629,#10630,#10631)); +#28625=EDGE_LOOP('',(#10632,#10633,#10634,#10635)); +#28626=EDGE_LOOP('',(#10636,#10637,#10638,#10639)); +#28627=EDGE_LOOP('',(#10640,#10641,#10642,#10643)); +#28628=EDGE_LOOP('',(#10644,#10645,#10646,#10647)); +#28629=EDGE_LOOP('',(#10648,#10649,#10650,#10651)); +#28630=EDGE_LOOP('',(#10652,#10653,#10654,#10655)); +#28631=EDGE_LOOP('',(#10656,#10657,#10658,#10659)); +#28632=EDGE_LOOP('',(#10660,#10661,#10662,#10663)); +#28633=EDGE_LOOP('',(#10664,#10665,#10666,#10667)); +#28634=EDGE_LOOP('',(#10668,#10669,#10670,#10671,#10672)); +#28635=EDGE_LOOP('',(#10673,#10674,#10675,#10676)); +#28636=EDGE_LOOP('',(#10677,#10678,#10679,#10680)); +#28637=EDGE_LOOP('',(#10681,#10682,#10683,#10684,#10685)); +#28638=EDGE_LOOP('',(#10686,#10687,#10688)); +#28639=EDGE_LOOP('',(#10689,#10690,#10691)); +#28640=EDGE_LOOP('',(#10692,#10693,#10694,#10695)); +#28641=EDGE_LOOP('',(#10696,#10697,#10698,#10699)); +#28642=EDGE_LOOP('',(#10700,#10701,#10702,#10703)); +#28643=EDGE_LOOP('',(#10704,#10705,#10706,#10707)); +#28644=EDGE_LOOP('',(#10708,#10709,#10710,#10711)); +#28645=EDGE_LOOP('',(#10712,#10713,#10714,#10715)); +#28646=EDGE_LOOP('',(#10716,#10717,#10718,#10719)); +#28647=EDGE_LOOP('',(#10720,#10721,#10722,#10723)); +#28648=EDGE_LOOP('',(#10724,#10725,#10726,#10727)); +#28649=EDGE_LOOP('',(#10728,#10729,#10730,#10731)); +#28650=EDGE_LOOP('',(#10732,#10733,#10734,#10735)); +#28651=EDGE_LOOP('',(#10736,#10737,#10738,#10739)); +#28652=EDGE_LOOP('',(#10740,#10741,#10742,#10743,#10744)); +#28653=EDGE_LOOP('',(#10745,#10746,#10747,#10748)); +#28654=EDGE_LOOP('',(#10749,#10750,#10751,#10752)); +#28655=EDGE_LOOP('',(#10753,#10754,#10755,#10756,#10757)); +#28656=EDGE_LOOP('',(#10758,#10759,#10760)); +#28657=EDGE_LOOP('',(#10761,#10762,#10763)); +#28658=EDGE_LOOP('',(#10764,#10765,#10766,#10767)); +#28659=EDGE_LOOP('',(#10768,#10769,#10770,#10771)); +#28660=EDGE_LOOP('',(#10772,#10773,#10774,#10775)); +#28661=EDGE_LOOP('',(#10776,#10777,#10778,#10779)); +#28662=EDGE_LOOP('',(#10780,#10781,#10782,#10783)); +#28663=EDGE_LOOP('',(#10784,#10785,#10786,#10787)); +#28664=EDGE_LOOP('',(#10788,#10789,#10790,#10791)); +#28665=EDGE_LOOP('',(#10792,#10793,#10794,#10795)); +#28666=EDGE_LOOP('',(#10796,#10797,#10798,#10799)); +#28667=EDGE_LOOP('',(#10800,#10801,#10802,#10803)); +#28668=EDGE_LOOP('',(#10804,#10805,#10806,#10807)); +#28669=EDGE_LOOP('',(#10808,#10809,#10810,#10811)); +#28670=EDGE_LOOP('',(#10812,#10813,#10814,#10815,#10816)); +#28671=EDGE_LOOP('',(#10817,#10818,#10819,#10820)); +#28672=EDGE_LOOP('',(#10821,#10822,#10823,#10824)); +#28673=EDGE_LOOP('',(#10825,#10826,#10827,#10828,#10829)); +#28674=EDGE_LOOP('',(#10830,#10831,#10832)); +#28675=EDGE_LOOP('',(#10833,#10834,#10835)); +#28676=EDGE_LOOP('',(#10836,#10837,#10838,#10839)); +#28677=EDGE_LOOP('',(#10840,#10841,#10842,#10843)); +#28678=EDGE_LOOP('',(#10844,#10845,#10846,#10847)); +#28679=EDGE_LOOP('',(#10848,#10849,#10850,#10851)); +#28680=EDGE_LOOP('',(#10852,#10853,#10854,#10855)); +#28681=EDGE_LOOP('',(#10856,#10857,#10858,#10859)); +#28682=EDGE_LOOP('',(#10860,#10861,#10862,#10863)); +#28683=EDGE_LOOP('',(#10864,#10865,#10866,#10867)); +#28684=EDGE_LOOP('',(#10868,#10869,#10870,#10871)); +#28685=EDGE_LOOP('',(#10872,#10873,#10874,#10875)); +#28686=EDGE_LOOP('',(#10876,#10877,#10878,#10879)); +#28687=EDGE_LOOP('',(#10880,#10881,#10882,#10883)); +#28688=EDGE_LOOP('',(#10884,#10885,#10886,#10887,#10888)); +#28689=EDGE_LOOP('',(#10889,#10890,#10891,#10892)); +#28690=EDGE_LOOP('',(#10893,#10894,#10895,#10896)); +#28691=EDGE_LOOP('',(#10897,#10898,#10899,#10900,#10901)); +#28692=EDGE_LOOP('',(#10902,#10903,#10904)); +#28693=EDGE_LOOP('',(#10905,#10906,#10907)); +#28694=EDGE_LOOP('',(#10908,#10909,#10910,#10911)); +#28695=EDGE_LOOP('',(#10912,#10913,#10914,#10915)); +#28696=EDGE_LOOP('',(#10916,#10917,#10918,#10919)); +#28697=EDGE_LOOP('',(#10920,#10921,#10922,#10923)); +#28698=EDGE_LOOP('',(#10924,#10925,#10926,#10927)); +#28699=EDGE_LOOP('',(#10928,#10929,#10930,#10931)); +#28700=EDGE_LOOP('',(#10932,#10933,#10934,#10935)); +#28701=EDGE_LOOP('',(#10936,#10937,#10938,#10939)); +#28702=EDGE_LOOP('',(#10940,#10941,#10942,#10943)); +#28703=EDGE_LOOP('',(#10944,#10945,#10946,#10947)); +#28704=EDGE_LOOP('',(#10948,#10949,#10950,#10951)); +#28705=EDGE_LOOP('',(#10952,#10953,#10954,#10955)); +#28706=EDGE_LOOP('',(#10956,#10957,#10958,#10959,#10960)); +#28707=EDGE_LOOP('',(#10961,#10962,#10963,#10964)); +#28708=EDGE_LOOP('',(#10965,#10966,#10967,#10968)); +#28709=EDGE_LOOP('',(#10969,#10970,#10971,#10972,#10973)); +#28710=EDGE_LOOP('',(#10974,#10975,#10976)); +#28711=EDGE_LOOP('',(#10977,#10978,#10979)); +#28712=EDGE_LOOP('',(#10980,#10981,#10982,#10983)); +#28713=EDGE_LOOP('',(#10984,#10985,#10986,#10987)); +#28714=EDGE_LOOP('',(#10988,#10989,#10990,#10991)); +#28715=EDGE_LOOP('',(#10992,#10993,#10994,#10995)); +#28716=EDGE_LOOP('',(#10996,#10997,#10998,#10999)); +#28717=EDGE_LOOP('',(#11000,#11001,#11002,#11003)); +#28718=EDGE_LOOP('',(#11004,#11005,#11006,#11007)); +#28719=EDGE_LOOP('',(#11008,#11009,#11010,#11011)); +#28720=EDGE_LOOP('',(#11012,#11013,#11014,#11015)); +#28721=EDGE_LOOP('',(#11016,#11017,#11018,#11019)); +#28722=EDGE_LOOP('',(#11020,#11021,#11022,#11023)); +#28723=EDGE_LOOP('',(#11024,#11025,#11026,#11027)); +#28724=EDGE_LOOP('',(#11028,#11029,#11030,#11031,#11032)); +#28725=EDGE_LOOP('',(#11033,#11034,#11035,#11036)); +#28726=EDGE_LOOP('',(#11037,#11038,#11039,#11040)); +#28727=EDGE_LOOP('',(#11041,#11042,#11043,#11044,#11045)); +#28728=EDGE_LOOP('',(#11046,#11047,#11048)); +#28729=EDGE_LOOP('',(#11049,#11050,#11051)); +#28730=EDGE_LOOP('',(#11052,#11053,#11054,#11055)); +#28731=EDGE_LOOP('',(#11056,#11057,#11058,#11059)); +#28732=EDGE_LOOP('',(#11060,#11061,#11062,#11063)); +#28733=EDGE_LOOP('',(#11064,#11065,#11066,#11067)); +#28734=EDGE_LOOP('',(#11068,#11069,#11070,#11071)); +#28735=EDGE_LOOP('',(#11072,#11073,#11074,#11075)); +#28736=EDGE_LOOP('',(#11076,#11077,#11078,#11079)); +#28737=EDGE_LOOP('',(#11080,#11081,#11082,#11083)); +#28738=EDGE_LOOP('',(#11084,#11085,#11086,#11087)); +#28739=EDGE_LOOP('',(#11088,#11089,#11090,#11091)); +#28740=EDGE_LOOP('',(#11092,#11093,#11094,#11095)); +#28741=EDGE_LOOP('',(#11096,#11097,#11098,#11099)); +#28742=EDGE_LOOP('',(#11100,#11101,#11102,#11103,#11104)); +#28743=EDGE_LOOP('',(#11105,#11106,#11107,#11108)); +#28744=EDGE_LOOP('',(#11109,#11110,#11111,#11112)); +#28745=EDGE_LOOP('',(#11113,#11114,#11115,#11116,#11117)); +#28746=EDGE_LOOP('',(#11118,#11119,#11120)); +#28747=EDGE_LOOP('',(#11121,#11122,#11123)); +#28748=EDGE_LOOP('',(#11124,#11125,#11126,#11127)); +#28749=EDGE_LOOP('',(#11128,#11129,#11130,#11131)); +#28750=EDGE_LOOP('',(#11132,#11133,#11134,#11135)); +#28751=EDGE_LOOP('',(#11136,#11137,#11138,#11139)); +#28752=EDGE_LOOP('',(#11140,#11141,#11142,#11143)); +#28753=EDGE_LOOP('',(#11144,#11145,#11146,#11147)); +#28754=EDGE_LOOP('',(#11148,#11149,#11150,#11151)); +#28755=EDGE_LOOP('',(#11152,#11153,#11154,#11155)); +#28756=EDGE_LOOP('',(#11156,#11157,#11158,#11159)); +#28757=EDGE_LOOP('',(#11160,#11161,#11162,#11163)); +#28758=EDGE_LOOP('',(#11164,#11165,#11166,#11167)); +#28759=EDGE_LOOP('',(#11168,#11169,#11170,#11171)); +#28760=EDGE_LOOP('',(#11172,#11173,#11174,#11175,#11176)); +#28761=EDGE_LOOP('',(#11177,#11178,#11179,#11180)); +#28762=EDGE_LOOP('',(#11181,#11182,#11183,#11184)); +#28763=EDGE_LOOP('',(#11185,#11186,#11187,#11188,#11189)); +#28764=EDGE_LOOP('',(#11190,#11191,#11192)); +#28765=EDGE_LOOP('',(#11193,#11194,#11195)); +#28766=EDGE_LOOP('',(#11196,#11197,#11198,#11199)); +#28767=EDGE_LOOP('',(#11200,#11201,#11202,#11203)); +#28768=EDGE_LOOP('',(#11204,#11205,#11206,#11207)); +#28769=EDGE_LOOP('',(#11208,#11209,#11210,#11211)); +#28770=EDGE_LOOP('',(#11212,#11213,#11214,#11215)); +#28771=EDGE_LOOP('',(#11216,#11217,#11218,#11219)); +#28772=EDGE_LOOP('',(#11220,#11221,#11222,#11223)); +#28773=EDGE_LOOP('',(#11224,#11225,#11226,#11227)); +#28774=EDGE_LOOP('',(#11228,#11229,#11230,#11231)); +#28775=EDGE_LOOP('',(#11232,#11233,#11234,#11235)); +#28776=EDGE_LOOP('',(#11236,#11237,#11238,#11239)); +#28777=EDGE_LOOP('',(#11240,#11241,#11242,#11243)); +#28778=EDGE_LOOP('',(#11244,#11245,#11246,#11247,#11248)); +#28779=EDGE_LOOP('',(#11249,#11250,#11251,#11252)); +#28780=EDGE_LOOP('',(#11253,#11254,#11255,#11256)); +#28781=EDGE_LOOP('',(#11257,#11258,#11259,#11260,#11261)); +#28782=EDGE_LOOP('',(#11262,#11263,#11264)); +#28783=EDGE_LOOP('',(#11265,#11266,#11267)); +#28784=EDGE_LOOP('',(#11268,#11269,#11270,#11271)); +#28785=EDGE_LOOP('',(#11272,#11273,#11274,#11275)); +#28786=EDGE_LOOP('',(#11276,#11277,#11278,#11279)); +#28787=EDGE_LOOP('',(#11280,#11281,#11282,#11283)); +#28788=EDGE_LOOP('',(#11284,#11285,#11286,#11287)); +#28789=EDGE_LOOP('',(#11288,#11289,#11290,#11291)); +#28790=EDGE_LOOP('',(#11292,#11293,#11294,#11295)); +#28791=EDGE_LOOP('',(#11296,#11297,#11298,#11299)); +#28792=EDGE_LOOP('',(#11300,#11301,#11302,#11303)); +#28793=EDGE_LOOP('',(#11304,#11305,#11306,#11307)); +#28794=EDGE_LOOP('',(#11308,#11309,#11310,#11311)); +#28795=EDGE_LOOP('',(#11312,#11313,#11314,#11315)); +#28796=EDGE_LOOP('',(#11316,#11317,#11318,#11319,#11320)); +#28797=EDGE_LOOP('',(#11321,#11322,#11323,#11324)); +#28798=EDGE_LOOP('',(#11325,#11326,#11327,#11328)); +#28799=EDGE_LOOP('',(#11329,#11330,#11331,#11332,#11333)); +#28800=EDGE_LOOP('',(#11334,#11335,#11336)); +#28801=EDGE_LOOP('',(#11337,#11338,#11339)); +#28802=EDGE_LOOP('',(#11340,#11341,#11342,#11343)); +#28803=EDGE_LOOP('',(#11344,#11345,#11346,#11347)); +#28804=EDGE_LOOP('',(#11348,#11349,#11350,#11351)); +#28805=EDGE_LOOP('',(#11352,#11353,#11354,#11355)); +#28806=EDGE_LOOP('',(#11356,#11357,#11358,#11359)); +#28807=EDGE_LOOP('',(#11360,#11361,#11362,#11363)); +#28808=EDGE_LOOP('',(#11364,#11365,#11366,#11367)); +#28809=EDGE_LOOP('',(#11368,#11369,#11370,#11371)); +#28810=EDGE_LOOP('',(#11372,#11373,#11374,#11375)); +#28811=EDGE_LOOP('',(#11376,#11377,#11378,#11379)); +#28812=EDGE_LOOP('',(#11380,#11381,#11382,#11383)); +#28813=EDGE_LOOP('',(#11384,#11385,#11386,#11387)); +#28814=EDGE_LOOP('',(#11388,#11389,#11390,#11391,#11392)); +#28815=EDGE_LOOP('',(#11393,#11394,#11395,#11396)); +#28816=EDGE_LOOP('',(#11397,#11398,#11399,#11400)); +#28817=EDGE_LOOP('',(#11401,#11402,#11403,#11404,#11405)); +#28818=EDGE_LOOP('',(#11406,#11407,#11408)); +#28819=EDGE_LOOP('',(#11409,#11410,#11411)); +#28820=EDGE_LOOP('',(#11412,#11413,#11414,#11415)); +#28821=EDGE_LOOP('',(#11416,#11417,#11418,#11419)); +#28822=EDGE_LOOP('',(#11420,#11421,#11422,#11423)); +#28823=EDGE_LOOP('',(#11424,#11425,#11426,#11427)); +#28824=EDGE_LOOP('',(#11428,#11429,#11430,#11431)); +#28825=EDGE_LOOP('',(#11432,#11433,#11434,#11435)); +#28826=EDGE_LOOP('',(#11436,#11437,#11438,#11439)); +#28827=EDGE_LOOP('',(#11440,#11441,#11442,#11443)); +#28828=EDGE_LOOP('',(#11444,#11445,#11446,#11447)); +#28829=EDGE_LOOP('',(#11448,#11449,#11450,#11451)); +#28830=EDGE_LOOP('',(#11452,#11453,#11454,#11455)); +#28831=EDGE_LOOP('',(#11456,#11457,#11458,#11459)); +#28832=EDGE_LOOP('',(#11460,#11461,#11462,#11463,#11464)); +#28833=EDGE_LOOP('',(#11465,#11466,#11467,#11468)); +#28834=EDGE_LOOP('',(#11469,#11470,#11471,#11472)); +#28835=EDGE_LOOP('',(#11473,#11474,#11475,#11476,#11477)); +#28836=EDGE_LOOP('',(#11478,#11479,#11480)); +#28837=EDGE_LOOP('',(#11481,#11482,#11483)); +#28838=EDGE_LOOP('',(#11484,#11485,#11486,#11487)); +#28839=EDGE_LOOP('',(#11488,#11489,#11490,#11491)); +#28840=EDGE_LOOP('',(#11492,#11493,#11494,#11495)); +#28841=EDGE_LOOP('',(#11496,#11497,#11498,#11499)); +#28842=EDGE_LOOP('',(#11500,#11501,#11502,#11503)); +#28843=EDGE_LOOP('',(#11504,#11505,#11506,#11507)); +#28844=EDGE_LOOP('',(#11508,#11509,#11510,#11511)); +#28845=EDGE_LOOP('',(#11512,#11513,#11514,#11515)); +#28846=EDGE_LOOP('',(#11516,#11517,#11518,#11519)); +#28847=EDGE_LOOP('',(#11520,#11521,#11522,#11523)); +#28848=EDGE_LOOP('',(#11524,#11525,#11526,#11527)); +#28849=EDGE_LOOP('',(#11528,#11529,#11530,#11531)); +#28850=EDGE_LOOP('',(#11532,#11533,#11534,#11535,#11536)); +#28851=EDGE_LOOP('',(#11537,#11538,#11539,#11540)); +#28852=EDGE_LOOP('',(#11541,#11542,#11543,#11544)); +#28853=EDGE_LOOP('',(#11545,#11546,#11547,#11548,#11549)); +#28854=EDGE_LOOP('',(#11550,#11551,#11552)); +#28855=EDGE_LOOP('',(#11553,#11554,#11555)); +#28856=EDGE_LOOP('',(#11556,#11557,#11558,#11559)); +#28857=EDGE_LOOP('',(#11560,#11561,#11562,#11563)); +#28858=EDGE_LOOP('',(#11564,#11565,#11566,#11567)); +#28859=EDGE_LOOP('',(#11568,#11569,#11570,#11571)); +#28860=EDGE_LOOP('',(#11572,#11573,#11574,#11575)); +#28861=EDGE_LOOP('',(#11576,#11577,#11578,#11579)); +#28862=EDGE_LOOP('',(#11580,#11581,#11582,#11583)); +#28863=EDGE_LOOP('',(#11584,#11585,#11586,#11587)); +#28864=EDGE_LOOP('',(#11588,#11589,#11590,#11591)); +#28865=EDGE_LOOP('',(#11592,#11593,#11594,#11595)); +#28866=EDGE_LOOP('',(#11596,#11597,#11598,#11599)); +#28867=EDGE_LOOP('',(#11600,#11601,#11602,#11603)); +#28868=EDGE_LOOP('',(#11604,#11605,#11606,#11607,#11608)); +#28869=EDGE_LOOP('',(#11609,#11610,#11611,#11612)); +#28870=EDGE_LOOP('',(#11613,#11614,#11615,#11616)); +#28871=EDGE_LOOP('',(#11617,#11618,#11619,#11620,#11621)); +#28872=EDGE_LOOP('',(#11622,#11623,#11624)); +#28873=EDGE_LOOP('',(#11625,#11626,#11627)); +#28874=EDGE_LOOP('',(#11628,#11629,#11630,#11631,#11632,#11633,#11634,#11635)); +#28875=EDGE_LOOP('',(#11636,#11637,#11638,#11639,#11640,#11641,#11642,#11643)); +#28876=EDGE_LOOP('',(#11644,#11645,#11646,#11647)); +#28877=EDGE_LOOP('',(#11648,#11649,#11650,#11651)); +#28878=FACE_BOUND('',#27171,.T.); +#28879=FACE_BOUND('',#27172,.T.); +#28880=FACE_BOUND('',#27173,.T.); +#28881=FACE_BOUND('',#27174,.T.); +#28882=FACE_BOUND('',#27175,.T.); +#28883=FACE_BOUND('',#27176,.T.); +#28884=FACE_BOUND('',#27177,.T.); +#28885=FACE_BOUND('',#27178,.T.); +#28886=FACE_BOUND('',#27179,.T.); +#28887=FACE_BOUND('',#27180,.T.); +#28888=FACE_BOUND('',#27181,.T.); +#28889=FACE_BOUND('',#27182,.T.); +#28890=FACE_BOUND('',#27183,.T.); +#28891=FACE_BOUND('',#27184,.T.); +#28892=FACE_BOUND('',#27185,.T.); +#28893=FACE_BOUND('',#27186,.T.); +#28894=FACE_BOUND('',#27187,.T.); +#28895=FACE_BOUND('',#27188,.T.); +#28896=FACE_BOUND('',#27189,.T.); +#28897=FACE_BOUND('',#27190,.T.); +#28898=FACE_BOUND('',#27191,.T.); +#28899=FACE_BOUND('',#27192,.T.); +#28900=FACE_BOUND('',#27193,.T.); +#28901=FACE_BOUND('',#27194,.T.); +#28902=FACE_BOUND('',#27195,.T.); +#28903=FACE_BOUND('',#27196,.T.); +#28904=FACE_BOUND('',#27197,.T.); +#28905=FACE_BOUND('',#27198,.T.); +#28906=FACE_BOUND('',#27199,.T.); +#28907=FACE_BOUND('',#27200,.T.); +#28908=FACE_BOUND('',#27201,.T.); +#28909=FACE_BOUND('',#27202,.T.); +#28910=FACE_BOUND('',#27203,.T.); +#28911=FACE_BOUND('',#27204,.T.); +#28912=FACE_BOUND('',#27205,.T.); +#28913=FACE_BOUND('',#27206,.T.); +#28914=FACE_BOUND('',#27207,.T.); +#28915=FACE_BOUND('',#27208,.T.); +#28916=FACE_BOUND('',#27209,.T.); +#28917=FACE_BOUND('',#27210,.T.); +#28918=FACE_BOUND('',#27211,.T.); +#28919=FACE_BOUND('',#27212,.T.); +#28920=FACE_BOUND('',#27213,.T.); +#28921=FACE_BOUND('',#27214,.T.); +#28922=FACE_BOUND('',#27215,.T.); +#28923=FACE_BOUND('',#27216,.T.); +#28924=FACE_BOUND('',#27217,.T.); +#28925=FACE_BOUND('',#27218,.T.); +#28926=FACE_BOUND('',#27219,.T.); +#28927=FACE_BOUND('',#27220,.T.); +#28928=FACE_BOUND('',#27221,.T.); +#28929=FACE_BOUND('',#27222,.T.); +#28930=FACE_BOUND('',#27223,.T.); +#28931=FACE_BOUND('',#27224,.T.); +#28932=FACE_BOUND('',#27225,.T.); +#28933=FACE_BOUND('',#27226,.T.); +#28934=FACE_BOUND('',#27227,.T.); +#28935=FACE_BOUND('',#27228,.T.); +#28936=FACE_BOUND('',#27229,.T.); +#28937=FACE_BOUND('',#27230,.T.); +#28938=FACE_BOUND('',#27231,.T.); +#28939=FACE_BOUND('',#27232,.T.); +#28940=FACE_BOUND('',#27233,.T.); +#28941=FACE_BOUND('',#27234,.T.); +#28942=FACE_BOUND('',#27235,.T.); +#28943=FACE_BOUND('',#27236,.T.); +#28944=FACE_BOUND('',#27237,.T.); +#28945=FACE_BOUND('',#27238,.T.); +#28946=FACE_BOUND('',#27239,.T.); +#28947=FACE_BOUND('',#27240,.T.); +#28948=FACE_BOUND('',#27241,.T.); +#28949=FACE_BOUND('',#27242,.T.); +#28950=FACE_BOUND('',#27243,.T.); +#28951=FACE_BOUND('',#27244,.T.); +#28952=FACE_BOUND('',#27245,.T.); +#28953=FACE_BOUND('',#27246,.T.); +#28954=FACE_BOUND('',#27247,.T.); +#28955=FACE_BOUND('',#27248,.T.); +#28956=FACE_BOUND('',#27249,.T.); +#28957=FACE_BOUND('',#27250,.T.); +#28958=FACE_BOUND('',#27251,.T.); +#28959=FACE_BOUND('',#27252,.T.); +#28960=FACE_BOUND('',#27253,.T.); +#28961=FACE_BOUND('',#27254,.T.); +#28962=FACE_BOUND('',#27255,.T.); +#28963=FACE_BOUND('',#27256,.T.); +#28964=FACE_BOUND('',#27257,.T.); +#28965=FACE_BOUND('',#27258,.T.); +#28966=FACE_BOUND('',#27259,.T.); +#28967=FACE_BOUND('',#27260,.T.); +#28968=FACE_BOUND('',#27261,.T.); +#28969=FACE_BOUND('',#27262,.T.); +#28970=FACE_BOUND('',#27263,.T.); +#28971=FACE_BOUND('',#27264,.T.); +#28972=FACE_BOUND('',#27265,.T.); +#28973=FACE_BOUND('',#27266,.T.); +#28974=FACE_BOUND('',#27267,.T.); +#28975=FACE_BOUND('',#27268,.T.); +#28976=FACE_BOUND('',#27269,.T.); +#28977=FACE_BOUND('',#27270,.T.); +#28978=FACE_BOUND('',#27271,.T.); +#28979=FACE_BOUND('',#27272,.T.); +#28980=FACE_BOUND('',#27273,.T.); +#28981=FACE_BOUND('',#27274,.T.); +#28982=FACE_BOUND('',#27275,.T.); +#28983=FACE_BOUND('',#27276,.T.); +#28984=FACE_BOUND('',#27277,.T.); +#28985=FACE_BOUND('',#27278,.T.); +#28986=FACE_BOUND('',#27279,.T.); +#28987=FACE_BOUND('',#27280,.T.); +#28988=FACE_BOUND('',#27281,.T.); +#28989=FACE_BOUND('',#27282,.T.); +#28990=FACE_BOUND('',#27283,.T.); +#28991=FACE_BOUND('',#27284,.T.); +#28992=FACE_BOUND('',#27285,.T.); +#28993=FACE_BOUND('',#27286,.T.); +#28994=FACE_BOUND('',#27287,.T.); +#28995=FACE_BOUND('',#27288,.T.); +#28996=FACE_BOUND('',#27289,.T.); +#28997=FACE_BOUND('',#27290,.T.); +#28998=FACE_BOUND('',#27291,.T.); +#28999=FACE_BOUND('',#27292,.T.); +#29000=FACE_BOUND('',#27293,.T.); +#29001=FACE_BOUND('',#27294,.T.); +#29002=FACE_BOUND('',#27295,.T.); +#29003=FACE_BOUND('',#27296,.T.); +#29004=FACE_BOUND('',#27297,.T.); +#29005=FACE_BOUND('',#27298,.T.); +#29006=FACE_BOUND('',#27299,.T.); +#29007=FACE_BOUND('',#27300,.T.); +#29008=FACE_BOUND('',#27301,.T.); +#29009=FACE_BOUND('',#27302,.T.); +#29010=FACE_BOUND('',#27303,.T.); +#29011=FACE_BOUND('',#27304,.T.); +#29012=FACE_BOUND('',#27305,.T.); +#29013=FACE_BOUND('',#27306,.T.); +#29014=FACE_BOUND('',#27307,.T.); +#29015=FACE_BOUND('',#27308,.T.); +#29016=FACE_BOUND('',#27309,.T.); +#29017=FACE_BOUND('',#27310,.T.); +#29018=FACE_BOUND('',#27311,.T.); +#29019=FACE_BOUND('',#27312,.T.); +#29020=FACE_BOUND('',#27313,.T.); +#29021=FACE_BOUND('',#27314,.T.); +#29022=FACE_BOUND('',#27315,.T.); +#29023=FACE_BOUND('',#27316,.T.); +#29024=FACE_BOUND('',#27317,.T.); +#29025=FACE_BOUND('',#27318,.T.); +#29026=FACE_BOUND('',#27319,.T.); +#29027=FACE_BOUND('',#27320,.T.); +#29028=FACE_BOUND('',#27321,.T.); +#29029=FACE_BOUND('',#27322,.T.); +#29030=FACE_BOUND('',#27323,.T.); +#29031=FACE_BOUND('',#27324,.T.); +#29032=FACE_BOUND('',#27325,.T.); +#29033=FACE_BOUND('',#27326,.T.); +#29034=FACE_BOUND('',#27327,.T.); +#29035=FACE_BOUND('',#27328,.T.); +#29036=FACE_BOUND('',#27329,.T.); +#29037=FACE_BOUND('',#27330,.T.); +#29038=FACE_BOUND('',#27331,.T.); +#29039=FACE_BOUND('',#27332,.T.); +#29040=FACE_BOUND('',#27333,.T.); +#29041=FACE_BOUND('',#27334,.T.); +#29042=FACE_BOUND('',#27335,.T.); +#29043=FACE_BOUND('',#27336,.T.); +#29044=FACE_BOUND('',#27337,.T.); +#29045=FACE_BOUND('',#27338,.T.); +#29046=FACE_BOUND('',#27339,.T.); +#29047=FACE_BOUND('',#27340,.T.); +#29048=FACE_BOUND('',#27341,.T.); +#29049=FACE_BOUND('',#27342,.T.); +#29050=FACE_BOUND('',#27343,.T.); +#29051=FACE_BOUND('',#27344,.T.); +#29052=FACE_BOUND('',#27345,.T.); +#29053=FACE_BOUND('',#27346,.T.); +#29054=FACE_BOUND('',#27347,.T.); +#29055=FACE_BOUND('',#27348,.T.); +#29056=FACE_BOUND('',#27349,.T.); +#29057=FACE_BOUND('',#27350,.T.); +#29058=FACE_BOUND('',#27351,.T.); +#29059=FACE_BOUND('',#27352,.T.); +#29060=FACE_BOUND('',#27353,.T.); +#29061=FACE_BOUND('',#27354,.T.); +#29062=FACE_BOUND('',#27355,.T.); +#29063=FACE_BOUND('',#27356,.T.); +#29064=FACE_BOUND('',#27357,.T.); +#29065=FACE_BOUND('',#27358,.T.); +#29066=FACE_BOUND('',#27359,.T.); +#29067=FACE_BOUND('',#27360,.T.); +#29068=FACE_BOUND('',#27361,.T.); +#29069=FACE_BOUND('',#27362,.T.); +#29070=FACE_BOUND('',#27363,.T.); +#29071=FACE_BOUND('',#27364,.T.); +#29072=FACE_BOUND('',#27365,.T.); +#29073=FACE_BOUND('',#27366,.T.); +#29074=FACE_BOUND('',#27367,.T.); +#29075=FACE_BOUND('',#27368,.T.); +#29076=FACE_BOUND('',#27369,.T.); +#29077=FACE_BOUND('',#27370,.T.); +#29078=FACE_BOUND('',#27371,.T.); +#29079=FACE_BOUND('',#27372,.T.); +#29080=FACE_BOUND('',#27373,.T.); +#29081=FACE_BOUND('',#27374,.T.); +#29082=FACE_BOUND('',#27375,.T.); +#29083=FACE_BOUND('',#27376,.T.); +#29084=FACE_BOUND('',#27377,.T.); +#29085=FACE_BOUND('',#27378,.T.); +#29086=FACE_BOUND('',#27379,.T.); +#29087=FACE_BOUND('',#27380,.T.); +#29088=FACE_BOUND('',#27381,.T.); +#29089=FACE_BOUND('',#27382,.T.); +#29090=FACE_BOUND('',#27383,.T.); +#29091=FACE_BOUND('',#27384,.T.); +#29092=FACE_BOUND('',#27385,.T.); +#29093=FACE_BOUND('',#27386,.T.); +#29094=FACE_BOUND('',#27387,.T.); +#29095=FACE_BOUND('',#27388,.T.); +#29096=FACE_BOUND('',#27389,.T.); +#29097=FACE_BOUND('',#27390,.T.); +#29098=FACE_BOUND('',#27391,.T.); +#29099=FACE_BOUND('',#27392,.T.); +#29100=FACE_BOUND('',#27393,.T.); +#29101=FACE_BOUND('',#27394,.T.); +#29102=FACE_BOUND('',#27395,.T.); +#29103=FACE_BOUND('',#27396,.T.); +#29104=FACE_BOUND('',#27397,.T.); +#29105=FACE_BOUND('',#27398,.T.); +#29106=FACE_BOUND('',#27399,.T.); +#29107=FACE_BOUND('',#27400,.T.); +#29108=FACE_BOUND('',#27401,.T.); +#29109=FACE_BOUND('',#27402,.T.); +#29110=FACE_BOUND('',#27403,.T.); +#29111=FACE_BOUND('',#27404,.T.); +#29112=FACE_BOUND('',#27405,.T.); +#29113=FACE_BOUND('',#27406,.T.); +#29114=FACE_BOUND('',#27407,.T.); +#29115=FACE_BOUND('',#27408,.T.); +#29116=FACE_BOUND('',#27409,.T.); +#29117=FACE_BOUND('',#27410,.T.); +#29118=FACE_BOUND('',#27411,.T.); +#29119=FACE_BOUND('',#27412,.T.); +#29120=FACE_BOUND('',#27413,.T.); +#29121=FACE_BOUND('',#27414,.T.); +#29122=FACE_BOUND('',#27415,.T.); +#29123=FACE_BOUND('',#27416,.T.); +#29124=FACE_BOUND('',#27417,.T.); +#29125=FACE_BOUND('',#27418,.T.); +#29126=FACE_BOUND('',#27419,.T.); +#29127=FACE_BOUND('',#27420,.T.); +#29128=FACE_BOUND('',#27421,.T.); +#29129=FACE_BOUND('',#27422,.T.); +#29130=FACE_BOUND('',#27423,.T.); +#29131=FACE_BOUND('',#27424,.T.); +#29132=FACE_BOUND('',#27425,.T.); +#29133=FACE_BOUND('',#27426,.T.); +#29134=FACE_BOUND('',#27427,.T.); +#29135=FACE_BOUND('',#27428,.T.); +#29136=FACE_BOUND('',#27429,.T.); +#29137=FACE_BOUND('',#27430,.T.); +#29138=FACE_BOUND('',#27431,.T.); +#29139=FACE_BOUND('',#27432,.T.); +#29140=FACE_BOUND('',#27433,.T.); +#29141=FACE_BOUND('',#27434,.T.); +#29142=FACE_BOUND('',#27435,.T.); +#29143=FACE_BOUND('',#27436,.T.); +#29144=FACE_BOUND('',#27437,.T.); +#29145=FACE_BOUND('',#27438,.T.); +#29146=FACE_BOUND('',#27439,.T.); +#29147=FACE_BOUND('',#27440,.T.); +#29148=FACE_BOUND('',#27441,.T.); +#29149=FACE_BOUND('',#27442,.T.); +#29150=FACE_BOUND('',#27443,.T.); +#29151=FACE_BOUND('',#27444,.T.); +#29152=FACE_BOUND('',#27445,.T.); +#29153=FACE_BOUND('',#27446,.T.); +#29154=FACE_BOUND('',#27447,.T.); +#29155=FACE_BOUND('',#27448,.T.); +#29156=FACE_BOUND('',#27449,.T.); +#29157=FACE_BOUND('',#27450,.T.); +#29158=FACE_BOUND('',#27451,.T.); +#29159=FACE_BOUND('',#27452,.T.); +#29160=FACE_BOUND('',#27453,.T.); +#29161=FACE_BOUND('',#27454,.T.); +#29162=FACE_BOUND('',#27455,.T.); +#29163=FACE_BOUND('',#27456,.T.); +#29164=FACE_BOUND('',#27457,.T.); +#29165=FACE_BOUND('',#27458,.T.); +#29166=FACE_BOUND('',#27459,.T.); +#29167=FACE_BOUND('',#27460,.T.); +#29168=FACE_BOUND('',#27461,.T.); +#29169=FACE_BOUND('',#27462,.T.); +#29170=FACE_BOUND('',#27463,.T.); +#29171=FACE_BOUND('',#27464,.T.); +#29172=FACE_BOUND('',#27465,.T.); +#29173=FACE_BOUND('',#27466,.T.); +#29174=FACE_BOUND('',#27467,.T.); +#29175=FACE_BOUND('',#27468,.T.); +#29176=FACE_BOUND('',#27469,.T.); +#29177=FACE_BOUND('',#27470,.T.); +#29178=FACE_BOUND('',#27471,.T.); +#29179=FACE_BOUND('',#27472,.T.); +#29180=FACE_BOUND('',#27473,.T.); +#29181=FACE_BOUND('',#27474,.T.); +#29182=FACE_BOUND('',#27475,.T.); +#29183=FACE_BOUND('',#27476,.T.); +#29184=FACE_BOUND('',#27477,.T.); +#29185=FACE_BOUND('',#27478,.T.); +#29186=FACE_BOUND('',#27479,.T.); +#29187=FACE_BOUND('',#27480,.T.); +#29188=FACE_BOUND('',#27481,.T.); +#29189=FACE_BOUND('',#27482,.T.); +#29190=FACE_BOUND('',#27483,.T.); +#29191=FACE_BOUND('',#27484,.T.); +#29192=FACE_BOUND('',#27485,.T.); +#29193=FACE_BOUND('',#27486,.T.); +#29194=FACE_BOUND('',#27487,.T.); +#29195=FACE_BOUND('',#27488,.T.); +#29196=FACE_BOUND('',#27489,.T.); +#29197=FACE_BOUND('',#27490,.T.); +#29198=FACE_BOUND('',#27491,.T.); +#29199=FACE_BOUND('',#27492,.T.); +#29200=FACE_BOUND('',#27493,.T.); +#29201=FACE_BOUND('',#27494,.T.); +#29202=FACE_BOUND('',#27495,.T.); +#29203=FACE_BOUND('',#27496,.T.); +#29204=FACE_BOUND('',#27497,.T.); +#29205=FACE_BOUND('',#27498,.T.); +#29206=FACE_BOUND('',#27499,.T.); +#29207=FACE_BOUND('',#27500,.T.); +#29208=FACE_BOUND('',#27501,.T.); +#29209=FACE_BOUND('',#27502,.T.); +#29210=FACE_BOUND('',#27503,.T.); +#29211=FACE_BOUND('',#27504,.T.); +#29212=FACE_BOUND('',#27505,.T.); +#29213=FACE_BOUND('',#27506,.T.); +#29214=FACE_BOUND('',#27507,.T.); +#29215=FACE_BOUND('',#27508,.T.); +#29216=FACE_BOUND('',#27509,.T.); +#29217=FACE_BOUND('',#27510,.T.); +#29218=FACE_BOUND('',#27511,.T.); +#29219=FACE_BOUND('',#27512,.T.); +#29220=FACE_BOUND('',#27513,.T.); +#29221=FACE_BOUND('',#27514,.T.); +#29222=FACE_BOUND('',#27515,.T.); +#29223=FACE_BOUND('',#27516,.T.); +#29224=FACE_BOUND('',#27517,.T.); +#29225=FACE_BOUND('',#27518,.T.); +#29226=FACE_BOUND('',#27519,.T.); +#29227=FACE_BOUND('',#27520,.T.); +#29228=FACE_BOUND('',#27521,.T.); +#29229=FACE_BOUND('',#27522,.T.); +#29230=FACE_BOUND('',#27523,.T.); +#29231=FACE_BOUND('',#27524,.T.); +#29232=FACE_BOUND('',#27525,.T.); +#29233=FACE_BOUND('',#27526,.T.); +#29234=FACE_BOUND('',#27527,.T.); +#29235=FACE_BOUND('',#27528,.T.); +#29236=FACE_BOUND('',#27529,.T.); +#29237=FACE_BOUND('',#27530,.T.); +#29238=FACE_BOUND('',#27531,.T.); +#29239=FACE_BOUND('',#27532,.T.); +#29240=FACE_BOUND('',#27533,.T.); +#29241=FACE_BOUND('',#27534,.T.); +#29242=FACE_BOUND('',#27535,.T.); +#29243=FACE_BOUND('',#27536,.T.); +#29244=FACE_BOUND('',#27537,.T.); +#29245=FACE_BOUND('',#27538,.T.); +#29246=FACE_BOUND('',#27539,.T.); +#29247=FACE_BOUND('',#27540,.T.); +#29248=FACE_BOUND('',#27541,.T.); +#29249=FACE_BOUND('',#27542,.T.); +#29250=FACE_BOUND('',#27543,.T.); +#29251=FACE_BOUND('',#27544,.T.); +#29252=FACE_BOUND('',#27545,.T.); +#29253=FACE_BOUND('',#27546,.T.); +#29254=FACE_BOUND('',#27547,.T.); +#29255=FACE_BOUND('',#27548,.T.); +#29256=FACE_BOUND('',#27549,.T.); +#29257=FACE_BOUND('',#27550,.T.); +#29258=FACE_BOUND('',#27551,.T.); +#29259=FACE_BOUND('',#27552,.T.); +#29260=FACE_BOUND('',#27553,.T.); +#29261=FACE_BOUND('',#27554,.T.); +#29262=FACE_BOUND('',#27555,.T.); +#29263=FACE_BOUND('',#27556,.T.); +#29264=FACE_BOUND('',#27557,.T.); +#29265=FACE_BOUND('',#27558,.T.); +#29266=FACE_BOUND('',#27559,.T.); +#29267=FACE_BOUND('',#27560,.T.); +#29268=FACE_BOUND('',#27561,.T.); +#29269=FACE_BOUND('',#27562,.T.); +#29270=FACE_BOUND('',#27563,.T.); +#29271=FACE_BOUND('',#27564,.T.); +#29272=FACE_BOUND('',#27565,.T.); +#29273=FACE_BOUND('',#27566,.T.); +#29274=FACE_BOUND('',#27567,.T.); +#29275=FACE_BOUND('',#27568,.T.); +#29276=FACE_BOUND('',#27569,.T.); +#29277=FACE_BOUND('',#27570,.T.); +#29278=FACE_BOUND('',#27571,.T.); +#29279=FACE_BOUND('',#27572,.T.); +#29280=FACE_BOUND('',#27573,.T.); +#29281=FACE_BOUND('',#27574,.T.); +#29282=FACE_BOUND('',#27575,.T.); +#29283=FACE_BOUND('',#27576,.T.); +#29284=FACE_BOUND('',#27577,.T.); +#29285=FACE_BOUND('',#27578,.T.); +#29286=FACE_BOUND('',#27579,.T.); +#29287=FACE_BOUND('',#27580,.T.); +#29288=FACE_BOUND('',#27581,.T.); +#29289=FACE_BOUND('',#27582,.T.); +#29290=FACE_BOUND('',#27583,.T.); +#29291=FACE_BOUND('',#27584,.T.); +#29292=FACE_BOUND('',#27585,.T.); +#29293=FACE_BOUND('',#27586,.T.); +#29294=FACE_BOUND('',#27587,.T.); +#29295=FACE_BOUND('',#27588,.T.); +#29296=FACE_BOUND('',#27589,.T.); +#29297=FACE_BOUND('',#27590,.T.); +#29298=FACE_BOUND('',#27591,.T.); +#29299=FACE_BOUND('',#27592,.T.); +#29300=FACE_BOUND('',#27593,.T.); +#29301=FACE_BOUND('',#27594,.T.); +#29302=FACE_BOUND('',#27595,.T.); +#29303=FACE_BOUND('',#27596,.T.); +#29304=FACE_BOUND('',#27597,.T.); +#29305=FACE_BOUND('',#27598,.T.); +#29306=FACE_BOUND('',#27599,.T.); +#29307=FACE_BOUND('',#27600,.T.); +#29308=FACE_BOUND('',#27601,.T.); +#29309=FACE_BOUND('',#27602,.T.); +#29310=FACE_BOUND('',#27603,.T.); +#29311=FACE_BOUND('',#27604,.T.); +#29312=FACE_BOUND('',#27605,.T.); +#29313=FACE_BOUND('',#27606,.T.); +#29314=FACE_BOUND('',#27607,.T.); +#29315=FACE_BOUND('',#27608,.T.); +#29316=FACE_BOUND('',#27609,.T.); +#29317=FACE_BOUND('',#27610,.T.); +#29318=FACE_BOUND('',#27611,.T.); +#29319=FACE_BOUND('',#27612,.T.); +#29320=FACE_BOUND('',#27613,.T.); +#29321=FACE_BOUND('',#27614,.T.); +#29322=FACE_BOUND('',#27615,.T.); +#29323=FACE_BOUND('',#27616,.T.); +#29324=FACE_BOUND('',#27617,.T.); +#29325=FACE_BOUND('',#27618,.T.); +#29326=FACE_BOUND('',#27619,.T.); +#29327=FACE_BOUND('',#27620,.T.); +#29328=FACE_BOUND('',#27621,.T.); +#29329=FACE_BOUND('',#27622,.T.); +#29330=FACE_BOUND('',#27623,.T.); +#29331=FACE_BOUND('',#27624,.T.); +#29332=FACE_BOUND('',#27625,.T.); +#29333=FACE_BOUND('',#27626,.T.); +#29334=FACE_BOUND('',#27627,.T.); +#29335=FACE_BOUND('',#27628,.T.); +#29336=FACE_BOUND('',#27629,.T.); +#29337=FACE_BOUND('',#27630,.T.); +#29338=FACE_BOUND('',#27631,.T.); +#29339=FACE_BOUND('',#27632,.T.); +#29340=FACE_BOUND('',#27633,.T.); +#29341=FACE_BOUND('',#27634,.T.); +#29342=FACE_BOUND('',#27635,.T.); +#29343=FACE_BOUND('',#27636,.T.); +#29344=FACE_BOUND('',#27637,.T.); +#29345=FACE_BOUND('',#27638,.T.); +#29346=FACE_BOUND('',#27639,.T.); +#29347=FACE_BOUND('',#27640,.T.); +#29348=FACE_BOUND('',#27641,.T.); +#29349=FACE_BOUND('',#27642,.T.); +#29350=FACE_BOUND('',#27643,.T.); +#29351=FACE_BOUND('',#27644,.T.); +#29352=FACE_BOUND('',#27645,.T.); +#29353=FACE_BOUND('',#27646,.T.); +#29354=FACE_BOUND('',#27647,.T.); +#29355=FACE_BOUND('',#27648,.T.); +#29356=FACE_BOUND('',#27649,.T.); +#29357=FACE_BOUND('',#27650,.T.); +#29358=FACE_BOUND('',#27651,.T.); +#29359=FACE_BOUND('',#27652,.T.); +#29360=FACE_BOUND('',#27653,.T.); +#29361=FACE_BOUND('',#27654,.T.); +#29362=FACE_BOUND('',#27655,.T.); +#29363=FACE_BOUND('',#27656,.T.); +#29364=FACE_BOUND('',#27657,.T.); +#29365=FACE_BOUND('',#27658,.T.); +#29366=FACE_BOUND('',#27659,.T.); +#29367=FACE_BOUND('',#27660,.T.); +#29368=FACE_BOUND('',#27661,.T.); +#29369=FACE_BOUND('',#27662,.T.); +#29370=FACE_BOUND('',#27663,.T.); +#29371=FACE_BOUND('',#27664,.T.); +#29372=FACE_BOUND('',#27665,.T.); +#29373=FACE_BOUND('',#27666,.T.); +#29374=FACE_BOUND('',#27667,.T.); +#29375=FACE_BOUND('',#27668,.T.); +#29376=FACE_BOUND('',#27669,.T.); +#29377=FACE_BOUND('',#27670,.T.); +#29378=FACE_BOUND('',#27671,.T.); +#29379=FACE_BOUND('',#27672,.T.); +#29380=FACE_BOUND('',#27673,.T.); +#29381=FACE_BOUND('',#27674,.T.); +#29382=FACE_BOUND('',#27675,.T.); +#29383=FACE_BOUND('',#27676,.T.); +#29384=FACE_BOUND('',#27677,.T.); +#29385=FACE_BOUND('',#27678,.T.); +#29386=FACE_BOUND('',#27679,.T.); +#29387=FACE_BOUND('',#27680,.T.); +#29388=FACE_BOUND('',#27681,.T.); +#29389=FACE_BOUND('',#27682,.T.); +#29390=FACE_BOUND('',#27683,.T.); +#29391=FACE_BOUND('',#27684,.T.); +#29392=FACE_BOUND('',#27685,.T.); +#29393=FACE_BOUND('',#27686,.T.); +#29394=FACE_BOUND('',#27687,.T.); +#29395=FACE_BOUND('',#27688,.T.); +#29396=FACE_BOUND('',#27689,.T.); +#29397=FACE_BOUND('',#27690,.T.); +#29398=FACE_BOUND('',#27691,.T.); +#29399=FACE_BOUND('',#27692,.T.); +#29400=FACE_BOUND('',#27693,.T.); +#29401=FACE_BOUND('',#27694,.T.); +#29402=FACE_BOUND('',#27695,.T.); +#29403=FACE_BOUND('',#27696,.T.); +#29404=FACE_BOUND('',#27697,.T.); +#29405=FACE_BOUND('',#27698,.T.); +#29406=FACE_BOUND('',#27699,.T.); +#29407=FACE_BOUND('',#27700,.T.); +#29408=FACE_BOUND('',#27701,.T.); +#29409=FACE_BOUND('',#27702,.T.); +#29410=FACE_BOUND('',#27703,.T.); +#29411=FACE_BOUND('',#27704,.T.); +#29412=FACE_BOUND('',#27705,.T.); +#29413=FACE_BOUND('',#27706,.T.); +#29414=FACE_BOUND('',#27707,.T.); +#29415=FACE_BOUND('',#27708,.T.); +#29416=FACE_BOUND('',#27709,.T.); +#29417=FACE_BOUND('',#27710,.T.); +#29418=FACE_BOUND('',#27711,.T.); +#29419=FACE_BOUND('',#27712,.T.); +#29420=FACE_BOUND('',#27713,.T.); +#29421=FACE_BOUND('',#27714,.T.); +#29422=FACE_BOUND('',#27715,.T.); +#29423=FACE_BOUND('',#27716,.T.); +#29424=FACE_BOUND('',#27717,.T.); +#29425=FACE_BOUND('',#27718,.T.); +#29426=FACE_BOUND('',#27719,.T.); +#29427=FACE_BOUND('',#27720,.T.); +#29428=FACE_BOUND('',#27721,.T.); +#29429=FACE_BOUND('',#27722,.T.); +#29430=FACE_BOUND('',#27723,.T.); +#29431=FACE_BOUND('',#27724,.T.); +#29432=FACE_BOUND('',#27725,.T.); +#29433=FACE_BOUND('',#27726,.T.); +#29434=FACE_BOUND('',#27727,.T.); +#29435=FACE_BOUND('',#27728,.T.); +#29436=FACE_BOUND('',#27729,.T.); +#29437=FACE_BOUND('',#27730,.T.); +#29438=FACE_BOUND('',#27731,.T.); +#29439=FACE_BOUND('',#27732,.T.); +#29440=FACE_BOUND('',#27733,.T.); +#29441=FACE_BOUND('',#27734,.T.); +#29442=FACE_BOUND('',#27735,.T.); +#29443=FACE_BOUND('',#27736,.T.); +#29444=FACE_BOUND('',#27737,.T.); +#29445=FACE_BOUND('',#27738,.T.); +#29446=FACE_BOUND('',#27739,.T.); +#29447=FACE_BOUND('',#27740,.T.); +#29448=FACE_BOUND('',#27741,.T.); +#29449=FACE_BOUND('',#27742,.T.); +#29450=FACE_BOUND('',#27743,.T.); +#29451=FACE_BOUND('',#27744,.T.); +#29452=FACE_BOUND('',#27745,.T.); +#29453=FACE_BOUND('',#27746,.T.); +#29454=FACE_BOUND('',#27747,.T.); +#29455=FACE_BOUND('',#27748,.T.); +#29456=FACE_BOUND('',#27749,.T.); +#29457=FACE_BOUND('',#27750,.T.); +#29458=FACE_BOUND('',#27751,.T.); +#29459=FACE_BOUND('',#27752,.T.); +#29460=FACE_BOUND('',#27753,.T.); +#29461=FACE_BOUND('',#27754,.T.); +#29462=FACE_BOUND('',#27755,.T.); +#29463=FACE_BOUND('',#27756,.T.); +#29464=FACE_BOUND('',#27757,.T.); +#29465=FACE_BOUND('',#27758,.T.); +#29466=FACE_BOUND('',#27759,.T.); +#29467=FACE_BOUND('',#27760,.T.); +#29468=FACE_BOUND('',#27761,.T.); +#29469=FACE_BOUND('',#27762,.T.); +#29470=FACE_BOUND('',#27763,.T.); +#29471=FACE_BOUND('',#27764,.T.); +#29472=FACE_BOUND('',#27765,.T.); +#29473=FACE_BOUND('',#27766,.T.); +#29474=FACE_BOUND('',#27767,.T.); +#29475=FACE_BOUND('',#27768,.T.); +#29476=FACE_BOUND('',#27769,.T.); +#29477=FACE_BOUND('',#27770,.T.); +#29478=FACE_BOUND('',#27771,.T.); +#29479=FACE_BOUND('',#27772,.T.); +#29480=FACE_BOUND('',#27773,.T.); +#29481=FACE_BOUND('',#27774,.T.); +#29482=FACE_BOUND('',#27775,.T.); +#29483=FACE_BOUND('',#27776,.T.); +#29484=FACE_BOUND('',#27777,.T.); +#29485=FACE_BOUND('',#27778,.T.); +#29486=FACE_BOUND('',#27779,.T.); +#29487=FACE_BOUND('',#27780,.T.); +#29488=FACE_BOUND('',#27781,.T.); +#29489=FACE_BOUND('',#27782,.T.); +#29490=FACE_BOUND('',#27783,.T.); +#29491=FACE_BOUND('',#27784,.T.); +#29492=FACE_BOUND('',#27785,.T.); +#29493=FACE_BOUND('',#27786,.T.); +#29494=FACE_BOUND('',#27787,.T.); +#29495=FACE_BOUND('',#27788,.T.); +#29496=FACE_BOUND('',#27789,.T.); +#29497=FACE_BOUND('',#27790,.T.); +#29498=FACE_BOUND('',#27791,.T.); +#29499=FACE_BOUND('',#27792,.T.); +#29500=FACE_BOUND('',#27793,.T.); +#29501=FACE_BOUND('',#27794,.T.); +#29502=FACE_BOUND('',#27795,.T.); +#29503=FACE_BOUND('',#27796,.T.); +#29504=FACE_BOUND('',#27797,.T.); +#29505=FACE_BOUND('',#27798,.T.); +#29506=FACE_BOUND('',#27799,.T.); +#29507=FACE_BOUND('',#27800,.T.); +#29508=FACE_BOUND('',#27801,.T.); +#29509=FACE_BOUND('',#27802,.T.); +#29510=FACE_BOUND('',#27803,.T.); +#29511=FACE_BOUND('',#27804,.T.); +#29512=FACE_BOUND('',#27805,.T.); +#29513=FACE_BOUND('',#27806,.T.); +#29514=FACE_BOUND('',#27807,.T.); +#29515=FACE_BOUND('',#27808,.T.); +#29516=FACE_BOUND('',#27809,.T.); +#29517=FACE_BOUND('',#27810,.T.); +#29518=FACE_BOUND('',#27811,.T.); +#29519=FACE_BOUND('',#27812,.T.); +#29520=FACE_BOUND('',#27813,.T.); +#29521=FACE_BOUND('',#27814,.T.); +#29522=FACE_BOUND('',#27815,.T.); +#29523=FACE_BOUND('',#27816,.T.); +#29524=FACE_BOUND('',#27817,.T.); +#29525=FACE_BOUND('',#27818,.T.); +#29526=FACE_BOUND('',#27819,.T.); +#29527=FACE_BOUND('',#27820,.T.); +#29528=FACE_BOUND('',#27821,.T.); +#29529=FACE_BOUND('',#27822,.T.); +#29530=FACE_BOUND('',#27823,.T.); +#29531=FACE_BOUND('',#27824,.T.); +#29532=FACE_BOUND('',#27825,.T.); +#29533=FACE_BOUND('',#27826,.T.); +#29534=FACE_BOUND('',#27827,.T.); +#29535=FACE_BOUND('',#27828,.T.); +#29536=FACE_BOUND('',#27829,.T.); +#29537=FACE_BOUND('',#27830,.T.); +#29538=FACE_BOUND('',#27831,.T.); +#29539=FACE_BOUND('',#27832,.T.); +#29540=FACE_BOUND('',#27833,.T.); +#29541=FACE_BOUND('',#27834,.T.); +#29542=FACE_BOUND('',#27835,.T.); +#29543=FACE_BOUND('',#27836,.T.); +#29544=FACE_BOUND('',#27837,.T.); +#29545=FACE_BOUND('',#27838,.T.); +#29546=FACE_BOUND('',#27839,.T.); +#29547=FACE_BOUND('',#27840,.T.); +#29548=FACE_BOUND('',#27841,.T.); +#29549=FACE_BOUND('',#27842,.T.); +#29550=FACE_BOUND('',#27843,.T.); +#29551=FACE_BOUND('',#27844,.T.); +#29552=FACE_BOUND('',#27845,.T.); +#29553=FACE_BOUND('',#27846,.T.); +#29554=FACE_BOUND('',#27847,.T.); +#29555=FACE_BOUND('',#27848,.T.); +#29556=FACE_BOUND('',#27849,.T.); +#29557=FACE_BOUND('',#27850,.T.); +#29558=FACE_BOUND('',#27851,.T.); +#29559=FACE_BOUND('',#27852,.T.); +#29560=FACE_BOUND('',#27853,.T.); +#29561=FACE_BOUND('',#27854,.T.); +#29562=FACE_BOUND('',#27855,.T.); +#29563=FACE_BOUND('',#27856,.T.); +#29564=FACE_BOUND('',#27857,.T.); +#29565=FACE_BOUND('',#27858,.T.); +#29566=FACE_BOUND('',#27859,.T.); +#29567=FACE_BOUND('',#27860,.T.); +#29568=FACE_BOUND('',#27861,.T.); +#29569=FACE_BOUND('',#27862,.T.); +#29570=FACE_BOUND('',#27863,.T.); +#29571=FACE_BOUND('',#27864,.T.); +#29572=FACE_BOUND('',#27865,.T.); +#29573=FACE_BOUND('',#27866,.T.); +#29574=FACE_BOUND('',#27867,.T.); +#29575=FACE_BOUND('',#27868,.T.); +#29576=FACE_BOUND('',#27869,.T.); +#29577=FACE_BOUND('',#27870,.T.); +#29578=FACE_BOUND('',#27871,.T.); +#29579=FACE_BOUND('',#27872,.T.); +#29580=FACE_BOUND('',#27873,.T.); +#29581=FACE_BOUND('',#27874,.T.); +#29582=FACE_BOUND('',#27875,.T.); +#29583=FACE_BOUND('',#27876,.T.); +#29584=FACE_BOUND('',#27877,.T.); +#29585=FACE_BOUND('',#27878,.T.); +#29586=FACE_BOUND('',#27879,.T.); +#29587=FACE_BOUND('',#27880,.T.); +#29588=FACE_BOUND('',#27881,.T.); +#29589=FACE_BOUND('',#27882,.T.); +#29590=FACE_BOUND('',#27883,.T.); +#29591=FACE_BOUND('',#27884,.T.); +#29592=FACE_BOUND('',#27885,.T.); +#29593=FACE_BOUND('',#27886,.T.); +#29594=FACE_BOUND('',#27887,.T.); +#29595=FACE_BOUND('',#27888,.T.); +#29596=FACE_BOUND('',#27889,.T.); +#29597=FACE_BOUND('',#27890,.T.); +#29598=FACE_BOUND('',#27891,.T.); +#29599=FACE_BOUND('',#27892,.T.); +#29600=FACE_BOUND('',#27893,.T.); +#29601=FACE_BOUND('',#27894,.T.); +#29602=FACE_BOUND('',#27895,.T.); +#29603=FACE_BOUND('',#27896,.T.); +#29604=FACE_BOUND('',#27897,.T.); +#29605=FACE_BOUND('',#27898,.T.); +#29606=FACE_BOUND('',#27899,.T.); +#29607=FACE_BOUND('',#27900,.T.); +#29608=FACE_BOUND('',#27901,.T.); +#29609=FACE_BOUND('',#27902,.T.); +#29610=FACE_BOUND('',#27903,.T.); +#29611=FACE_BOUND('',#27904,.T.); +#29612=FACE_BOUND('',#27905,.T.); +#29613=FACE_BOUND('',#27906,.T.); +#29614=FACE_BOUND('',#27907,.T.); +#29615=FACE_BOUND('',#27908,.T.); +#29616=FACE_BOUND('',#27909,.T.); +#29617=FACE_BOUND('',#27910,.T.); +#29618=FACE_BOUND('',#27911,.T.); +#29619=FACE_BOUND('',#27912,.T.); +#29620=FACE_BOUND('',#27913,.T.); +#29621=FACE_BOUND('',#27914,.T.); +#29622=FACE_BOUND('',#27915,.T.); +#29623=FACE_BOUND('',#27916,.T.); +#29624=FACE_BOUND('',#27917,.T.); +#29625=FACE_BOUND('',#27918,.T.); +#29626=FACE_BOUND('',#27919,.T.); +#29627=FACE_BOUND('',#27920,.T.); +#29628=FACE_BOUND('',#27921,.T.); +#29629=FACE_BOUND('',#27922,.T.); +#29630=FACE_BOUND('',#27923,.T.); +#29631=FACE_BOUND('',#27924,.T.); +#29632=FACE_BOUND('',#27925,.T.); +#29633=FACE_BOUND('',#27926,.T.); +#29634=FACE_BOUND('',#27927,.T.); +#29635=FACE_BOUND('',#27928,.T.); +#29636=FACE_BOUND('',#27929,.T.); +#29637=FACE_BOUND('',#27930,.T.); +#29638=FACE_BOUND('',#27931,.T.); +#29639=FACE_BOUND('',#27932,.T.); +#29640=FACE_BOUND('',#27933,.T.); +#29641=FACE_BOUND('',#27934,.T.); +#29642=FACE_BOUND('',#27935,.T.); +#29643=FACE_BOUND('',#27936,.T.); +#29644=FACE_BOUND('',#27937,.T.); +#29645=FACE_BOUND('',#27938,.T.); +#29646=FACE_BOUND('',#27939,.T.); +#29647=FACE_BOUND('',#27940,.T.); +#29648=FACE_BOUND('',#27941,.T.); +#29649=FACE_BOUND('',#27942,.T.); +#29650=FACE_BOUND('',#27943,.T.); +#29651=FACE_BOUND('',#27944,.T.); +#29652=FACE_BOUND('',#27945,.T.); +#29653=FACE_BOUND('',#27946,.T.); +#29654=FACE_BOUND('',#27947,.T.); +#29655=FACE_BOUND('',#27948,.T.); +#29656=FACE_BOUND('',#27949,.T.); +#29657=FACE_BOUND('',#27950,.T.); +#29658=FACE_BOUND('',#27951,.T.); +#29659=FACE_BOUND('',#27952,.T.); +#29660=FACE_BOUND('',#27953,.T.); +#29661=FACE_BOUND('',#27954,.T.); +#29662=FACE_BOUND('',#27955,.T.); +#29663=FACE_BOUND('',#27956,.T.); +#29664=FACE_BOUND('',#27957,.T.); +#29665=FACE_BOUND('',#27958,.T.); +#29666=FACE_BOUND('',#27959,.T.); +#29667=FACE_BOUND('',#27960,.T.); +#29668=FACE_BOUND('',#27961,.T.); +#29669=FACE_BOUND('',#27962,.T.); +#29670=FACE_BOUND('',#27963,.T.); +#29671=FACE_BOUND('',#27964,.T.); +#29672=FACE_BOUND('',#27965,.T.); +#29673=FACE_BOUND('',#27966,.T.); +#29674=FACE_BOUND('',#27967,.T.); +#29675=FACE_BOUND('',#27968,.T.); +#29676=FACE_BOUND('',#27969,.T.); +#29677=FACE_BOUND('',#27970,.T.); +#29678=FACE_BOUND('',#27971,.T.); +#29679=FACE_BOUND('',#27972,.T.); +#29680=FACE_BOUND('',#27973,.T.); +#29681=FACE_BOUND('',#27974,.T.); +#29682=FACE_BOUND('',#27975,.T.); +#29683=FACE_BOUND('',#27976,.T.); +#29684=FACE_BOUND('',#27977,.T.); +#29685=FACE_BOUND('',#27978,.T.); +#29686=FACE_BOUND('',#27979,.T.); +#29687=FACE_BOUND('',#27980,.T.); +#29688=FACE_BOUND('',#27981,.T.); +#29689=FACE_BOUND('',#27982,.T.); +#29690=FACE_BOUND('',#27983,.T.); +#29691=FACE_BOUND('',#27984,.T.); +#29692=FACE_BOUND('',#27985,.T.); +#29693=FACE_BOUND('',#27986,.T.); +#29694=FACE_BOUND('',#27987,.T.); +#29695=FACE_BOUND('',#27988,.T.); +#29696=FACE_BOUND('',#27989,.T.); +#29697=FACE_BOUND('',#27990,.T.); +#29698=FACE_BOUND('',#27991,.T.); +#29699=FACE_BOUND('',#27992,.T.); +#29700=FACE_BOUND('',#27993,.T.); +#29701=FACE_BOUND('',#27994,.T.); +#29702=FACE_BOUND('',#27995,.T.); +#29703=FACE_BOUND('',#27996,.T.); +#29704=FACE_BOUND('',#27997,.T.); +#29705=FACE_BOUND('',#27998,.T.); +#29706=FACE_BOUND('',#27999,.T.); +#29707=FACE_BOUND('',#28000,.T.); +#29708=FACE_BOUND('',#28001,.T.); +#29709=FACE_BOUND('',#28002,.T.); +#29710=FACE_BOUND('',#28003,.T.); +#29711=FACE_BOUND('',#28004,.T.); +#29712=FACE_BOUND('',#28005,.T.); +#29713=FACE_BOUND('',#28006,.T.); +#29714=FACE_BOUND('',#28007,.T.); +#29715=FACE_BOUND('',#28008,.T.); +#29716=FACE_BOUND('',#28009,.T.); +#29717=FACE_BOUND('',#28010,.T.); +#29718=FACE_BOUND('',#28011,.T.); +#29719=FACE_BOUND('',#28012,.T.); +#29720=FACE_BOUND('',#28013,.T.); +#29721=FACE_BOUND('',#28014,.T.); +#29722=FACE_BOUND('',#28015,.T.); +#29723=FACE_BOUND('',#28016,.T.); +#29724=FACE_BOUND('',#28017,.T.); +#29725=FACE_BOUND('',#28018,.T.); +#29726=FACE_BOUND('',#28019,.T.); +#29727=FACE_BOUND('',#28020,.T.); +#29728=FACE_BOUND('',#28021,.T.); +#29729=FACE_BOUND('',#28022,.T.); +#29730=FACE_BOUND('',#28023,.T.); +#29731=FACE_BOUND('',#28024,.T.); +#29732=FACE_BOUND('',#28025,.T.); +#29733=FACE_BOUND('',#28026,.T.); +#29734=FACE_BOUND('',#28027,.T.); +#29735=FACE_BOUND('',#28028,.T.); +#29736=FACE_BOUND('',#28029,.T.); +#29737=FACE_BOUND('',#28030,.T.); +#29738=FACE_BOUND('',#28031,.T.); +#29739=FACE_BOUND('',#28032,.T.); +#29740=FACE_BOUND('',#28033,.T.); +#29741=FACE_BOUND('',#28034,.T.); +#29742=FACE_BOUND('',#28035,.T.); +#29743=FACE_BOUND('',#28036,.T.); +#29744=FACE_BOUND('',#28037,.T.); +#29745=FACE_BOUND('',#28038,.T.); +#29746=FACE_BOUND('',#28039,.T.); +#29747=FACE_BOUND('',#28040,.T.); +#29748=FACE_BOUND('',#28041,.T.); +#29749=FACE_BOUND('',#28042,.T.); +#29750=FACE_BOUND('',#28043,.T.); +#29751=FACE_BOUND('',#28044,.T.); +#29752=FACE_BOUND('',#28045,.T.); +#29753=FACE_BOUND('',#28046,.T.); +#29754=FACE_BOUND('',#28047,.T.); +#29755=FACE_BOUND('',#28048,.T.); +#29756=FACE_BOUND('',#28049,.T.); +#29757=FACE_BOUND('',#28050,.T.); +#29758=FACE_BOUND('',#28051,.T.); +#29759=FACE_BOUND('',#28052,.T.); +#29760=FACE_BOUND('',#28053,.T.); +#29761=FACE_BOUND('',#28054,.T.); +#29762=FACE_BOUND('',#28055,.T.); +#29763=FACE_BOUND('',#28056,.T.); +#29764=FACE_BOUND('',#28057,.T.); +#29765=FACE_BOUND('',#28058,.T.); +#29766=FACE_BOUND('',#28059,.T.); +#29767=FACE_BOUND('',#28060,.T.); +#29768=FACE_BOUND('',#28061,.T.); +#29769=FACE_BOUND('',#28062,.T.); +#29770=FACE_BOUND('',#28063,.T.); +#29771=FACE_BOUND('',#28064,.T.); +#29772=FACE_BOUND('',#28065,.T.); +#29773=FACE_BOUND('',#28066,.T.); +#29774=FACE_BOUND('',#28067,.T.); +#29775=FACE_BOUND('',#28068,.T.); +#29776=FACE_BOUND('',#28069,.T.); +#29777=FACE_BOUND('',#28070,.T.); +#29778=FACE_BOUND('',#28071,.T.); +#29779=FACE_BOUND('',#28072,.T.); +#29780=FACE_BOUND('',#28073,.T.); +#29781=FACE_BOUND('',#28074,.T.); +#29782=FACE_BOUND('',#28075,.T.); +#29783=FACE_BOUND('',#28076,.T.); +#29784=FACE_BOUND('',#28077,.T.); +#29785=FACE_BOUND('',#28078,.T.); +#29786=FACE_BOUND('',#28079,.T.); +#29787=FACE_BOUND('',#28080,.T.); +#29788=FACE_BOUND('',#28081,.T.); +#29789=FACE_BOUND('',#28082,.T.); +#29790=FACE_BOUND('',#28083,.T.); +#29791=FACE_BOUND('',#28084,.T.); +#29792=FACE_BOUND('',#28085,.T.); +#29793=FACE_BOUND('',#28086,.T.); +#29794=FACE_BOUND('',#28087,.T.); +#29795=FACE_BOUND('',#28088,.T.); +#29796=FACE_BOUND('',#28089,.T.); +#29797=FACE_BOUND('',#28090,.T.); +#29798=FACE_BOUND('',#28091,.T.); +#29799=FACE_BOUND('',#28092,.T.); +#29800=FACE_BOUND('',#28093,.T.); +#29801=FACE_BOUND('',#28094,.T.); +#29802=FACE_BOUND('',#28095,.T.); +#29803=FACE_BOUND('',#28096,.T.); +#29804=FACE_BOUND('',#28097,.T.); +#29805=FACE_BOUND('',#28098,.T.); +#29806=FACE_BOUND('',#28099,.T.); +#29807=FACE_BOUND('',#28100,.T.); +#29808=FACE_BOUND('',#28101,.T.); +#29809=FACE_BOUND('',#28102,.T.); +#29810=FACE_BOUND('',#28103,.T.); +#29811=FACE_BOUND('',#28104,.T.); +#29812=FACE_BOUND('',#28105,.T.); +#29813=FACE_BOUND('',#28106,.T.); +#29814=FACE_BOUND('',#28107,.T.); +#29815=FACE_BOUND('',#28108,.T.); +#29816=FACE_BOUND('',#28109,.T.); +#29817=FACE_BOUND('',#28110,.T.); +#29818=FACE_BOUND('',#28111,.T.); +#29819=FACE_BOUND('',#28112,.T.); +#29820=FACE_BOUND('',#28113,.T.); +#29821=FACE_BOUND('',#28114,.T.); +#29822=FACE_BOUND('',#28115,.T.); +#29823=FACE_BOUND('',#28116,.T.); +#29824=FACE_BOUND('',#28117,.T.); +#29825=FACE_BOUND('',#28118,.T.); +#29826=FACE_BOUND('',#28119,.T.); +#29827=FACE_BOUND('',#28120,.T.); +#29828=FACE_BOUND('',#28121,.T.); +#29829=FACE_BOUND('',#28122,.T.); +#29830=FACE_BOUND('',#28123,.T.); +#29831=FACE_BOUND('',#28124,.T.); +#29832=FACE_BOUND('',#28125,.T.); +#29833=FACE_BOUND('',#28126,.T.); +#29834=FACE_BOUND('',#28127,.T.); +#29835=FACE_BOUND('',#28128,.T.); +#29836=FACE_BOUND('',#28129,.T.); +#29837=FACE_BOUND('',#28130,.T.); +#29838=FACE_BOUND('',#28131,.T.); +#29839=FACE_BOUND('',#28132,.T.); +#29840=FACE_BOUND('',#28133,.T.); +#29841=FACE_BOUND('',#28134,.T.); +#29842=FACE_BOUND('',#28135,.T.); +#29843=FACE_BOUND('',#28136,.T.); +#29844=FACE_BOUND('',#28137,.T.); +#29845=FACE_BOUND('',#28138,.T.); +#29846=FACE_BOUND('',#28139,.T.); +#29847=FACE_BOUND('',#28140,.T.); +#29848=FACE_BOUND('',#28141,.T.); +#29849=FACE_BOUND('',#28142,.T.); +#29850=FACE_BOUND('',#28143,.T.); +#29851=FACE_BOUND('',#28144,.T.); +#29852=FACE_BOUND('',#28145,.T.); +#29853=FACE_BOUND('',#28146,.T.); +#29854=FACE_BOUND('',#28147,.T.); +#29855=FACE_BOUND('',#28148,.T.); +#29856=FACE_BOUND('',#28149,.T.); +#29857=FACE_BOUND('',#28150,.T.); +#29858=FACE_BOUND('',#28151,.T.); +#29859=FACE_BOUND('',#28152,.T.); +#29860=FACE_BOUND('',#28153,.T.); +#29861=FACE_BOUND('',#28154,.T.); +#29862=FACE_BOUND('',#28155,.T.); +#29863=FACE_BOUND('',#28156,.T.); +#29864=FACE_BOUND('',#28157,.T.); +#29865=FACE_BOUND('',#28158,.T.); +#29866=FACE_BOUND('',#28159,.T.); +#29867=FACE_BOUND('',#28160,.T.); +#29868=FACE_BOUND('',#28161,.T.); +#29869=FACE_BOUND('',#28162,.T.); +#29870=FACE_BOUND('',#28163,.T.); +#29871=FACE_BOUND('',#28164,.T.); +#29872=FACE_BOUND('',#28165,.T.); +#29873=FACE_BOUND('',#28166,.T.); +#29874=FACE_BOUND('',#28167,.T.); +#29875=FACE_BOUND('',#28168,.T.); +#29876=FACE_BOUND('',#28169,.T.); +#29877=FACE_BOUND('',#28170,.T.); +#29878=FACE_BOUND('',#28171,.T.); +#29879=FACE_BOUND('',#28172,.T.); +#29880=FACE_BOUND('',#28173,.T.); +#29881=FACE_BOUND('',#28174,.T.); +#29882=FACE_BOUND('',#28175,.T.); +#29883=FACE_BOUND('',#28176,.T.); +#29884=FACE_BOUND('',#28177,.T.); +#29885=FACE_BOUND('',#28178,.T.); +#29886=FACE_BOUND('',#28179,.T.); +#29887=FACE_BOUND('',#28180,.T.); +#29888=FACE_BOUND('',#28181,.T.); +#29889=FACE_BOUND('',#28182,.T.); +#29890=FACE_BOUND('',#28183,.T.); +#29891=FACE_BOUND('',#28184,.T.); +#29892=FACE_BOUND('',#28185,.T.); +#29893=FACE_BOUND('',#28186,.T.); +#29894=FACE_BOUND('',#28187,.T.); +#29895=FACE_BOUND('',#28188,.T.); +#29896=FACE_BOUND('',#28189,.T.); +#29897=FACE_BOUND('',#28190,.T.); +#29898=FACE_BOUND('',#28191,.T.); +#29899=FACE_BOUND('',#28192,.T.); +#29900=FACE_BOUND('',#28193,.T.); +#29901=FACE_BOUND('',#28194,.T.); +#29902=FACE_BOUND('',#28195,.T.); +#29903=FACE_BOUND('',#28196,.T.); +#29904=FACE_BOUND('',#28197,.T.); +#29905=FACE_BOUND('',#28198,.T.); +#29906=FACE_BOUND('',#28199,.T.); +#29907=FACE_BOUND('',#28200,.T.); +#29908=FACE_BOUND('',#28201,.T.); +#29909=FACE_BOUND('',#28202,.T.); +#29910=FACE_BOUND('',#28203,.T.); +#29911=FACE_BOUND('',#28204,.T.); +#29912=FACE_BOUND('',#28205,.T.); +#29913=FACE_BOUND('',#28206,.T.); +#29914=FACE_BOUND('',#28207,.T.); +#29915=FACE_BOUND('',#28208,.T.); +#29916=FACE_BOUND('',#28209,.T.); +#29917=FACE_BOUND('',#28210,.T.); +#29918=FACE_BOUND('',#28211,.T.); +#29919=FACE_BOUND('',#28212,.T.); +#29920=FACE_BOUND('',#28213,.T.); +#29921=FACE_BOUND('',#28214,.T.); +#29922=FACE_BOUND('',#28215,.T.); +#29923=FACE_BOUND('',#28216,.T.); +#29924=FACE_BOUND('',#28217,.T.); +#29925=FACE_BOUND('',#28218,.T.); +#29926=FACE_BOUND('',#28219,.T.); +#29927=FACE_BOUND('',#28220,.T.); +#29928=FACE_BOUND('',#28221,.T.); +#29929=FACE_BOUND('',#28222,.T.); +#29930=FACE_BOUND('',#28223,.T.); +#29931=FACE_BOUND('',#28224,.T.); +#29932=FACE_BOUND('',#28225,.T.); +#29933=FACE_BOUND('',#28226,.T.); +#29934=FACE_BOUND('',#28227,.T.); +#29935=FACE_BOUND('',#28228,.T.); +#29936=FACE_BOUND('',#28229,.T.); +#29937=FACE_BOUND('',#28230,.T.); +#29938=FACE_BOUND('',#28231,.T.); +#29939=FACE_BOUND('',#28232,.T.); +#29940=FACE_BOUND('',#28233,.T.); +#29941=FACE_BOUND('',#28234,.T.); +#29942=FACE_BOUND('',#28235,.T.); +#29943=FACE_BOUND('',#28236,.T.); +#29944=FACE_BOUND('',#28237,.T.); +#29945=FACE_BOUND('',#28238,.T.); +#29946=FACE_BOUND('',#28239,.T.); +#29947=FACE_BOUND('',#28240,.T.); +#29948=FACE_BOUND('',#28241,.T.); +#29949=FACE_BOUND('',#28242,.T.); +#29950=FACE_BOUND('',#28243,.T.); +#29951=FACE_BOUND('',#28244,.T.); +#29952=FACE_BOUND('',#28245,.T.); +#29953=FACE_BOUND('',#28246,.T.); +#29954=FACE_BOUND('',#28247,.T.); +#29955=FACE_BOUND('',#28248,.T.); +#29956=FACE_BOUND('',#28249,.T.); +#29957=FACE_BOUND('',#28250,.T.); +#29958=FACE_BOUND('',#28251,.T.); +#29959=FACE_BOUND('',#28252,.T.); +#29960=FACE_BOUND('',#28253,.T.); +#29961=FACE_BOUND('',#28254,.T.); +#29962=FACE_BOUND('',#28255,.T.); +#29963=FACE_BOUND('',#28256,.T.); +#29964=FACE_BOUND('',#28257,.T.); +#29965=FACE_BOUND('',#28258,.T.); +#29966=FACE_BOUND('',#28259,.T.); +#29967=FACE_BOUND('',#28260,.T.); +#29968=FACE_BOUND('',#28261,.T.); +#29969=FACE_BOUND('',#28262,.T.); +#29970=FACE_BOUND('',#28263,.T.); +#29971=FACE_BOUND('',#28264,.T.); +#29972=FACE_BOUND('',#28265,.T.); +#29973=FACE_BOUND('',#28266,.T.); +#29974=FACE_BOUND('',#28267,.T.); +#29975=FACE_BOUND('',#28268,.T.); +#29976=FACE_BOUND('',#28269,.T.); +#29977=FACE_BOUND('',#28270,.T.); +#29978=FACE_BOUND('',#28271,.T.); +#29979=FACE_BOUND('',#28272,.T.); +#29980=FACE_BOUND('',#28273,.T.); +#29981=FACE_BOUND('',#28274,.T.); +#29982=FACE_BOUND('',#28275,.T.); +#29983=FACE_BOUND('',#28276,.T.); +#29984=FACE_BOUND('',#28277,.T.); +#29985=FACE_BOUND('',#28278,.T.); +#29986=FACE_BOUND('',#28279,.T.); +#29987=FACE_BOUND('',#28280,.T.); +#29988=FACE_BOUND('',#28281,.T.); +#29989=FACE_BOUND('',#28282,.T.); +#29990=FACE_BOUND('',#28283,.T.); +#29991=FACE_BOUND('',#28284,.T.); +#29992=FACE_BOUND('',#28285,.T.); +#29993=FACE_BOUND('',#28286,.T.); +#29994=FACE_BOUND('',#28287,.T.); +#29995=FACE_BOUND('',#28288,.T.); +#29996=FACE_BOUND('',#28289,.T.); +#29997=FACE_BOUND('',#28290,.T.); +#29998=FACE_BOUND('',#28291,.T.); +#29999=FACE_BOUND('',#28292,.T.); +#30000=FACE_BOUND('',#28293,.T.); +#30001=FACE_BOUND('',#28294,.T.); +#30002=FACE_BOUND('',#28295,.T.); +#30003=FACE_BOUND('',#28296,.T.); +#30004=FACE_BOUND('',#28297,.T.); +#30005=FACE_BOUND('',#28298,.T.); +#30006=FACE_BOUND('',#28299,.T.); +#30007=FACE_BOUND('',#28300,.T.); +#30008=FACE_BOUND('',#28301,.T.); +#30009=FACE_BOUND('',#28302,.T.); +#30010=FACE_BOUND('',#28303,.T.); +#30011=FACE_BOUND('',#28304,.T.); +#30012=FACE_BOUND('',#28305,.T.); +#30013=FACE_BOUND('',#28306,.T.); +#30014=FACE_BOUND('',#28307,.T.); +#30015=FACE_BOUND('',#28308,.T.); +#30016=FACE_BOUND('',#28309,.T.); +#30017=FACE_BOUND('',#28310,.T.); +#30018=FACE_BOUND('',#28311,.T.); +#30019=FACE_BOUND('',#28312,.T.); +#30020=FACE_BOUND('',#28313,.T.); +#30021=FACE_BOUND('',#28314,.T.); +#30022=FACE_BOUND('',#28315,.T.); +#30023=FACE_BOUND('',#28316,.T.); +#30024=FACE_BOUND('',#28317,.T.); +#30025=FACE_BOUND('',#28318,.T.); +#30026=FACE_BOUND('',#28319,.T.); +#30027=FACE_BOUND('',#28320,.T.); +#30028=FACE_BOUND('',#28321,.T.); +#30029=FACE_BOUND('',#28322,.T.); +#30030=FACE_BOUND('',#28323,.T.); +#30031=FACE_BOUND('',#28324,.T.); +#30032=FACE_BOUND('',#28325,.T.); +#30033=FACE_BOUND('',#28326,.T.); +#30034=FACE_BOUND('',#28327,.T.); +#30035=FACE_BOUND('',#28328,.T.); +#30036=FACE_BOUND('',#28329,.T.); +#30037=FACE_BOUND('',#28330,.T.); +#30038=FACE_BOUND('',#28331,.T.); +#30039=FACE_BOUND('',#28332,.T.); +#30040=FACE_BOUND('',#28333,.T.); +#30041=FACE_BOUND('',#28334,.T.); +#30042=FACE_BOUND('',#28335,.T.); +#30043=FACE_BOUND('',#28336,.T.); +#30044=FACE_BOUND('',#28337,.T.); +#30045=FACE_BOUND('',#28338,.T.); +#30046=FACE_BOUND('',#28339,.T.); +#30047=FACE_BOUND('',#28340,.T.); +#30048=FACE_BOUND('',#28341,.T.); +#30049=FACE_BOUND('',#28342,.T.); +#30050=FACE_BOUND('',#28343,.T.); +#30051=FACE_BOUND('',#28344,.T.); +#30052=FACE_BOUND('',#28345,.T.); +#30053=FACE_BOUND('',#28346,.T.); +#30054=FACE_BOUND('',#28347,.T.); +#30055=FACE_BOUND('',#28348,.T.); +#30056=FACE_BOUND('',#28349,.T.); +#30057=FACE_BOUND('',#28350,.T.); +#30058=FACE_BOUND('',#28351,.T.); +#30059=FACE_BOUND('',#28352,.T.); +#30060=FACE_BOUND('',#28353,.T.); +#30061=FACE_BOUND('',#28354,.T.); +#30062=FACE_BOUND('',#28355,.T.); +#30063=FACE_BOUND('',#28356,.T.); +#30064=FACE_BOUND('',#28357,.T.); +#30065=FACE_BOUND('',#28358,.T.); +#30066=FACE_BOUND('',#28359,.T.); +#30067=FACE_BOUND('',#28360,.T.); +#30068=FACE_BOUND('',#28361,.T.); +#30069=FACE_BOUND('',#28362,.T.); +#30070=FACE_BOUND('',#28363,.T.); +#30071=FACE_BOUND('',#28364,.T.); +#30072=FACE_BOUND('',#28365,.T.); +#30073=FACE_BOUND('',#28366,.T.); +#30074=FACE_BOUND('',#28367,.T.); +#30075=FACE_BOUND('',#28368,.T.); +#30076=FACE_BOUND('',#28369,.T.); +#30077=FACE_BOUND('',#28370,.T.); +#30078=FACE_BOUND('',#28371,.T.); +#30079=FACE_BOUND('',#28372,.T.); +#30080=FACE_BOUND('',#28373,.T.); +#30081=FACE_BOUND('',#28374,.T.); +#30082=FACE_BOUND('',#28375,.T.); +#30083=FACE_BOUND('',#28376,.T.); +#30084=FACE_BOUND('',#28377,.T.); +#30085=FACE_BOUND('',#28378,.T.); +#30086=FACE_BOUND('',#28379,.T.); +#30087=FACE_BOUND('',#28380,.T.); +#30088=FACE_BOUND('',#28381,.T.); +#30089=FACE_BOUND('',#28382,.T.); +#30090=FACE_BOUND('',#28383,.T.); +#30091=FACE_BOUND('',#28384,.T.); +#30092=FACE_BOUND('',#28385,.T.); +#30093=FACE_BOUND('',#28386,.T.); +#30094=FACE_BOUND('',#28387,.T.); +#30095=FACE_BOUND('',#28388,.T.); +#30096=FACE_BOUND('',#28389,.T.); +#30097=FACE_BOUND('',#28390,.T.); +#30098=FACE_BOUND('',#28391,.T.); +#30099=FACE_BOUND('',#28392,.T.); +#30100=FACE_BOUND('',#28393,.T.); +#30101=FACE_BOUND('',#28394,.T.); +#30102=FACE_BOUND('',#28395,.T.); +#30103=FACE_BOUND('',#28396,.T.); +#30104=FACE_BOUND('',#28397,.T.); +#30105=FACE_BOUND('',#28398,.T.); +#30106=FACE_BOUND('',#28399,.T.); +#30107=FACE_BOUND('',#28400,.T.); +#30108=FACE_BOUND('',#28401,.T.); +#30109=FACE_BOUND('',#28402,.T.); +#30110=FACE_BOUND('',#28403,.T.); +#30111=FACE_BOUND('',#28404,.T.); +#30112=FACE_BOUND('',#28405,.T.); +#30113=FACE_BOUND('',#28406,.T.); +#30114=FACE_BOUND('',#28407,.T.); +#30115=FACE_BOUND('',#28408,.T.); +#30116=FACE_BOUND('',#28409,.T.); +#30117=FACE_BOUND('',#28410,.T.); +#30118=FACE_BOUND('',#28411,.T.); +#30119=FACE_BOUND('',#28412,.T.); +#30120=FACE_BOUND('',#28413,.T.); +#30121=FACE_BOUND('',#28414,.T.); +#30122=FACE_BOUND('',#28415,.T.); +#30123=FACE_BOUND('',#28416,.T.); +#30124=FACE_BOUND('',#28417,.T.); +#30125=FACE_BOUND('',#28418,.T.); +#30126=FACE_BOUND('',#28419,.T.); +#30127=FACE_BOUND('',#28420,.T.); +#30128=FACE_BOUND('',#28421,.T.); +#30129=FACE_BOUND('',#28422,.T.); +#30130=FACE_BOUND('',#28423,.T.); +#30131=FACE_BOUND('',#28424,.T.); +#30132=FACE_BOUND('',#28425,.T.); +#30133=FACE_BOUND('',#28426,.T.); +#30134=FACE_BOUND('',#28427,.T.); +#30135=FACE_BOUND('',#28428,.T.); +#30136=FACE_BOUND('',#28429,.T.); +#30137=FACE_BOUND('',#28430,.T.); +#30138=FACE_BOUND('',#28431,.T.); +#30139=FACE_BOUND('',#28432,.T.); +#30140=FACE_BOUND('',#28433,.T.); +#30141=FACE_BOUND('',#28434,.T.); +#30142=FACE_BOUND('',#28435,.T.); +#30143=FACE_BOUND('',#28436,.T.); +#30144=FACE_BOUND('',#28437,.T.); +#30145=FACE_BOUND('',#28438,.T.); +#30146=FACE_BOUND('',#28439,.T.); +#30147=FACE_BOUND('',#28440,.T.); +#30148=FACE_BOUND('',#28441,.T.); +#30149=FACE_BOUND('',#28442,.T.); +#30150=FACE_BOUND('',#28443,.T.); +#30151=FACE_BOUND('',#28444,.T.); +#30152=FACE_BOUND('',#28445,.T.); +#30153=FACE_BOUND('',#28446,.T.); +#30154=FACE_BOUND('',#28447,.T.); +#30155=FACE_BOUND('',#28448,.T.); +#30156=FACE_BOUND('',#28449,.T.); +#30157=FACE_BOUND('',#28450,.T.); +#30158=FACE_BOUND('',#28451,.T.); +#30159=FACE_BOUND('',#28452,.T.); +#30160=FACE_BOUND('',#28453,.T.); +#30161=FACE_BOUND('',#28454,.T.); +#30162=FACE_BOUND('',#28455,.T.); +#30163=FACE_BOUND('',#28456,.T.); +#30164=FACE_BOUND('',#28457,.T.); +#30165=FACE_BOUND('',#28458,.T.); +#30166=FACE_BOUND('',#28459,.T.); +#30167=FACE_BOUND('',#28460,.T.); +#30168=FACE_BOUND('',#28461,.T.); +#30169=FACE_BOUND('',#28462,.T.); +#30170=FACE_BOUND('',#28463,.T.); +#30171=FACE_BOUND('',#28464,.T.); +#30172=FACE_BOUND('',#28465,.T.); +#30173=FACE_BOUND('',#28466,.T.); +#30174=FACE_BOUND('',#28467,.T.); +#30175=FACE_BOUND('',#28468,.T.); +#30176=FACE_BOUND('',#28469,.T.); +#30177=FACE_BOUND('',#28470,.T.); +#30178=FACE_BOUND('',#28471,.T.); +#30179=FACE_BOUND('',#28472,.T.); +#30180=FACE_BOUND('',#28473,.T.); +#30181=FACE_BOUND('',#28474,.T.); +#30182=FACE_BOUND('',#28475,.T.); +#30183=FACE_BOUND('',#28476,.T.); +#30184=FACE_BOUND('',#28477,.T.); +#30185=FACE_BOUND('',#28478,.T.); +#30186=FACE_BOUND('',#28479,.T.); +#30187=FACE_BOUND('',#28480,.T.); +#30188=FACE_BOUND('',#28481,.T.); +#30189=FACE_BOUND('',#28482,.T.); +#30190=FACE_BOUND('',#28483,.T.); +#30191=FACE_BOUND('',#28484,.T.); +#30192=FACE_BOUND('',#28485,.T.); +#30193=FACE_BOUND('',#28486,.T.); +#30194=FACE_BOUND('',#28487,.T.); +#30195=FACE_BOUND('',#28488,.T.); +#30196=FACE_BOUND('',#28489,.T.); +#30197=FACE_BOUND('',#28490,.T.); +#30198=FACE_BOUND('',#28491,.T.); +#30199=FACE_BOUND('',#28492,.T.); +#30200=FACE_BOUND('',#28493,.T.); +#30201=FACE_BOUND('',#28494,.T.); +#30202=FACE_BOUND('',#28495,.T.); +#30203=FACE_BOUND('',#28496,.T.); +#30204=FACE_BOUND('',#28497,.T.); +#30205=FACE_BOUND('',#28498,.T.); +#30206=FACE_BOUND('',#28499,.T.); +#30207=FACE_BOUND('',#28500,.T.); +#30208=FACE_BOUND('',#28501,.T.); +#30209=FACE_BOUND('',#28502,.T.); +#30210=FACE_BOUND('',#28503,.T.); +#30211=FACE_BOUND('',#28504,.T.); +#30212=FACE_BOUND('',#28505,.T.); +#30213=FACE_BOUND('',#28506,.T.); +#30214=FACE_BOUND('',#28507,.T.); +#30215=FACE_BOUND('',#28508,.T.); +#30216=FACE_BOUND('',#28509,.T.); +#30217=FACE_BOUND('',#28510,.T.); +#30218=FACE_BOUND('',#28511,.T.); +#30219=FACE_BOUND('',#28512,.T.); +#30220=FACE_BOUND('',#28513,.T.); +#30221=FACE_BOUND('',#28514,.T.); +#30222=FACE_BOUND('',#28515,.T.); +#30223=FACE_BOUND('',#28516,.T.); +#30224=FACE_BOUND('',#28517,.T.); +#30225=FACE_BOUND('',#28518,.T.); +#30226=FACE_BOUND('',#28519,.T.); +#30227=FACE_BOUND('',#28520,.T.); +#30228=FACE_BOUND('',#28521,.T.); +#30229=FACE_BOUND('',#28522,.T.); +#30230=FACE_BOUND('',#28523,.T.); +#30231=FACE_BOUND('',#28524,.T.); +#30232=FACE_BOUND('',#28525,.T.); +#30233=FACE_BOUND('',#28526,.T.); +#30234=FACE_BOUND('',#28527,.T.); +#30235=FACE_BOUND('',#28528,.T.); +#30236=FACE_BOUND('',#28529,.T.); +#30237=FACE_BOUND('',#28530,.T.); +#30238=FACE_BOUND('',#28531,.T.); +#30239=FACE_BOUND('',#28532,.T.); +#30240=FACE_BOUND('',#28533,.T.); +#30241=FACE_BOUND('',#28534,.T.); +#30242=FACE_BOUND('',#28535,.T.); +#30243=FACE_BOUND('',#28536,.T.); +#30244=FACE_BOUND('',#28537,.T.); +#30245=FACE_BOUND('',#28538,.T.); +#30246=FACE_BOUND('',#28539,.T.); +#30247=FACE_BOUND('',#28540,.T.); +#30248=FACE_BOUND('',#28541,.T.); +#30249=FACE_BOUND('',#28542,.T.); +#30250=FACE_BOUND('',#28543,.T.); +#30251=FACE_BOUND('',#28544,.T.); +#30252=FACE_BOUND('',#28545,.T.); +#30253=FACE_BOUND('',#28546,.T.); +#30254=FACE_BOUND('',#28547,.T.); +#30255=FACE_BOUND('',#28548,.T.); +#30256=FACE_BOUND('',#28549,.T.); +#30257=FACE_BOUND('',#28550,.T.); +#30258=FACE_BOUND('',#28551,.T.); +#30259=FACE_BOUND('',#28552,.T.); +#30260=FACE_BOUND('',#28553,.T.); +#30261=FACE_BOUND('',#28554,.T.); +#30262=FACE_BOUND('',#28555,.T.); +#30263=FACE_BOUND('',#28556,.T.); +#30264=FACE_BOUND('',#28557,.T.); +#30265=FACE_BOUND('',#28558,.T.); +#30266=FACE_BOUND('',#28559,.T.); +#30267=FACE_BOUND('',#28560,.T.); +#30268=FACE_BOUND('',#28561,.T.); +#30269=FACE_BOUND('',#28562,.T.); +#30270=FACE_BOUND('',#28563,.T.); +#30271=FACE_BOUND('',#28564,.T.); +#30272=FACE_BOUND('',#28565,.T.); +#30273=FACE_BOUND('',#28566,.T.); +#30274=FACE_BOUND('',#28567,.T.); +#30275=FACE_BOUND('',#28568,.T.); +#30276=FACE_BOUND('',#28569,.T.); +#30277=FACE_BOUND('',#28570,.T.); +#30278=FACE_BOUND('',#28571,.T.); +#30279=FACE_BOUND('',#28572,.T.); +#30280=FACE_BOUND('',#28573,.T.); +#30281=FACE_BOUND('',#28574,.T.); +#30282=FACE_BOUND('',#28575,.T.); +#30283=FACE_BOUND('',#28576,.T.); +#30284=FACE_BOUND('',#28577,.T.); +#30285=FACE_BOUND('',#28578,.T.); +#30286=FACE_BOUND('',#28579,.T.); +#30287=FACE_BOUND('',#28580,.T.); +#30288=FACE_BOUND('',#28581,.T.); +#30289=FACE_BOUND('',#28582,.T.); +#30290=FACE_BOUND('',#28583,.T.); +#30291=FACE_BOUND('',#28584,.T.); +#30292=FACE_BOUND('',#28585,.T.); +#30293=FACE_BOUND('',#28586,.T.); +#30294=FACE_BOUND('',#28587,.T.); +#30295=FACE_BOUND('',#28588,.T.); +#30296=FACE_BOUND('',#28589,.T.); +#30297=FACE_BOUND('',#28590,.T.); +#30298=FACE_BOUND('',#28591,.T.); +#30299=FACE_BOUND('',#28592,.T.); +#30300=FACE_BOUND('',#28593,.T.); +#30301=FACE_BOUND('',#28594,.T.); +#30302=FACE_BOUND('',#28595,.T.); +#30303=FACE_BOUND('',#28596,.T.); +#30304=FACE_BOUND('',#28597,.T.); +#30305=FACE_BOUND('',#28598,.T.); +#30306=FACE_BOUND('',#28599,.T.); +#30307=FACE_BOUND('',#28600,.T.); +#30308=FACE_BOUND('',#28601,.T.); +#30309=FACE_BOUND('',#28602,.T.); +#30310=FACE_BOUND('',#28603,.T.); +#30311=FACE_BOUND('',#28604,.T.); +#30312=FACE_BOUND('',#28605,.T.); +#30313=FACE_BOUND('',#28606,.T.); +#30314=FACE_BOUND('',#28607,.T.); +#30315=FACE_BOUND('',#28608,.T.); +#30316=FACE_BOUND('',#28609,.T.); +#30317=FACE_BOUND('',#28610,.T.); +#30318=FACE_BOUND('',#28611,.T.); +#30319=FACE_BOUND('',#28612,.T.); +#30320=FACE_BOUND('',#28613,.T.); +#30321=FACE_BOUND('',#28614,.T.); +#30322=FACE_BOUND('',#28615,.T.); +#30323=FACE_BOUND('',#28616,.T.); +#30324=FACE_BOUND('',#28617,.T.); +#30325=FACE_BOUND('',#28618,.T.); +#30326=FACE_BOUND('',#28619,.T.); +#30327=FACE_BOUND('',#28620,.T.); +#30328=FACE_BOUND('',#28621,.T.); +#30329=FACE_BOUND('',#28622,.T.); +#30330=FACE_BOUND('',#28623,.T.); +#30331=FACE_BOUND('',#28624,.T.); +#30332=FACE_BOUND('',#28625,.T.); +#30333=FACE_BOUND('',#28626,.T.); +#30334=FACE_BOUND('',#28627,.T.); +#30335=FACE_BOUND('',#28628,.T.); +#30336=FACE_BOUND('',#28629,.T.); +#30337=FACE_BOUND('',#28630,.T.); +#30338=FACE_BOUND('',#28631,.T.); +#30339=FACE_BOUND('',#28632,.T.); +#30340=FACE_BOUND('',#28633,.T.); +#30341=FACE_BOUND('',#28634,.T.); +#30342=FACE_BOUND('',#28635,.T.); +#30343=FACE_BOUND('',#28636,.T.); +#30344=FACE_BOUND('',#28637,.T.); +#30345=FACE_BOUND('',#28638,.T.); +#30346=FACE_BOUND('',#28639,.T.); +#30347=FACE_BOUND('',#28640,.T.); +#30348=FACE_BOUND('',#28641,.T.); +#30349=FACE_BOUND('',#28642,.T.); +#30350=FACE_BOUND('',#28643,.T.); +#30351=FACE_BOUND('',#28644,.T.); +#30352=FACE_BOUND('',#28645,.T.); +#30353=FACE_BOUND('',#28646,.T.); +#30354=FACE_BOUND('',#28647,.T.); +#30355=FACE_BOUND('',#28648,.T.); +#30356=FACE_BOUND('',#28649,.T.); +#30357=FACE_BOUND('',#28650,.T.); +#30358=FACE_BOUND('',#28651,.T.); +#30359=FACE_BOUND('',#28652,.T.); +#30360=FACE_BOUND('',#28653,.T.); +#30361=FACE_BOUND('',#28654,.T.); +#30362=FACE_BOUND('',#28655,.T.); +#30363=FACE_BOUND('',#28656,.T.); +#30364=FACE_BOUND('',#28657,.T.); +#30365=FACE_BOUND('',#28658,.T.); +#30366=FACE_BOUND('',#28659,.T.); +#30367=FACE_BOUND('',#28660,.T.); +#30368=FACE_BOUND('',#28661,.T.); +#30369=FACE_BOUND('',#28662,.T.); +#30370=FACE_BOUND('',#28663,.T.); +#30371=FACE_BOUND('',#28664,.T.); +#30372=FACE_BOUND('',#28665,.T.); +#30373=FACE_BOUND('',#28666,.T.); +#30374=FACE_BOUND('',#28667,.T.); +#30375=FACE_BOUND('',#28668,.T.); +#30376=FACE_BOUND('',#28669,.T.); +#30377=FACE_BOUND('',#28670,.T.); +#30378=FACE_BOUND('',#28671,.T.); +#30379=FACE_BOUND('',#28672,.T.); +#30380=FACE_BOUND('',#28673,.T.); +#30381=FACE_BOUND('',#28674,.T.); +#30382=FACE_BOUND('',#28675,.T.); +#30383=FACE_BOUND('',#28676,.T.); +#30384=FACE_BOUND('',#28677,.T.); +#30385=FACE_BOUND('',#28678,.T.); +#30386=FACE_BOUND('',#28679,.T.); +#30387=FACE_BOUND('',#28680,.T.); +#30388=FACE_BOUND('',#28681,.T.); +#30389=FACE_BOUND('',#28682,.T.); +#30390=FACE_BOUND('',#28683,.T.); +#30391=FACE_BOUND('',#28684,.T.); +#30392=FACE_BOUND('',#28685,.T.); +#30393=FACE_BOUND('',#28686,.T.); +#30394=FACE_BOUND('',#28687,.T.); +#30395=FACE_BOUND('',#28688,.T.); +#30396=FACE_BOUND('',#28689,.T.); +#30397=FACE_BOUND('',#28690,.T.); +#30398=FACE_BOUND('',#28691,.T.); +#30399=FACE_BOUND('',#28692,.T.); +#30400=FACE_BOUND('',#28693,.T.); +#30401=FACE_BOUND('',#28694,.T.); +#30402=FACE_BOUND('',#28695,.T.); +#30403=FACE_BOUND('',#28696,.T.); +#30404=FACE_BOUND('',#28697,.T.); +#30405=FACE_BOUND('',#28698,.T.); +#30406=FACE_BOUND('',#28699,.T.); +#30407=FACE_BOUND('',#28700,.T.); +#30408=FACE_BOUND('',#28701,.T.); +#30409=FACE_BOUND('',#28702,.T.); +#30410=FACE_BOUND('',#28703,.T.); +#30411=FACE_BOUND('',#28704,.T.); +#30412=FACE_BOUND('',#28705,.T.); +#30413=FACE_BOUND('',#28706,.T.); +#30414=FACE_BOUND('',#28707,.T.); +#30415=FACE_BOUND('',#28708,.T.); +#30416=FACE_BOUND('',#28709,.T.); +#30417=FACE_BOUND('',#28710,.T.); +#30418=FACE_BOUND('',#28711,.T.); +#30419=FACE_BOUND('',#28712,.T.); +#30420=FACE_BOUND('',#28713,.T.); +#30421=FACE_BOUND('',#28714,.T.); +#30422=FACE_BOUND('',#28715,.T.); +#30423=FACE_BOUND('',#28716,.T.); +#30424=FACE_BOUND('',#28717,.T.); +#30425=FACE_BOUND('',#28718,.T.); +#30426=FACE_BOUND('',#28719,.T.); +#30427=FACE_BOUND('',#28720,.T.); +#30428=FACE_BOUND('',#28721,.T.); +#30429=FACE_BOUND('',#28722,.T.); +#30430=FACE_BOUND('',#28723,.T.); +#30431=FACE_BOUND('',#28724,.T.); +#30432=FACE_BOUND('',#28725,.T.); +#30433=FACE_BOUND('',#28726,.T.); +#30434=FACE_BOUND('',#28727,.T.); +#30435=FACE_BOUND('',#28728,.T.); +#30436=FACE_BOUND('',#28729,.T.); +#30437=FACE_BOUND('',#28730,.T.); +#30438=FACE_BOUND('',#28731,.T.); +#30439=FACE_BOUND('',#28732,.T.); +#30440=FACE_BOUND('',#28733,.T.); +#30441=FACE_BOUND('',#28734,.T.); +#30442=FACE_BOUND('',#28735,.T.); +#30443=FACE_BOUND('',#28736,.T.); +#30444=FACE_BOUND('',#28737,.T.); +#30445=FACE_BOUND('',#28738,.T.); +#30446=FACE_BOUND('',#28739,.T.); +#30447=FACE_BOUND('',#28740,.T.); +#30448=FACE_BOUND('',#28741,.T.); +#30449=FACE_BOUND('',#28742,.T.); +#30450=FACE_BOUND('',#28743,.T.); +#30451=FACE_BOUND('',#28744,.T.); +#30452=FACE_BOUND('',#28745,.T.); +#30453=FACE_BOUND('',#28746,.T.); +#30454=FACE_BOUND('',#28747,.T.); +#30455=FACE_BOUND('',#28748,.T.); +#30456=FACE_BOUND('',#28749,.T.); +#30457=FACE_BOUND('',#28750,.T.); +#30458=FACE_BOUND('',#28751,.T.); +#30459=FACE_BOUND('',#28752,.T.); +#30460=FACE_BOUND('',#28753,.T.); +#30461=FACE_BOUND('',#28754,.T.); +#30462=FACE_BOUND('',#28755,.T.); +#30463=FACE_BOUND('',#28756,.T.); +#30464=FACE_BOUND('',#28757,.T.); +#30465=FACE_BOUND('',#28758,.T.); +#30466=FACE_BOUND('',#28759,.T.); +#30467=FACE_BOUND('',#28760,.T.); +#30468=FACE_BOUND('',#28761,.T.); +#30469=FACE_BOUND('',#28762,.T.); +#30470=FACE_BOUND('',#28763,.T.); +#30471=FACE_BOUND('',#28764,.T.); +#30472=FACE_BOUND('',#28765,.T.); +#30473=FACE_BOUND('',#28766,.T.); +#30474=FACE_BOUND('',#28767,.T.); +#30475=FACE_BOUND('',#28768,.T.); +#30476=FACE_BOUND('',#28769,.T.); +#30477=FACE_BOUND('',#28770,.T.); +#30478=FACE_BOUND('',#28771,.T.); +#30479=FACE_BOUND('',#28772,.T.); +#30480=FACE_BOUND('',#28773,.T.); +#30481=FACE_BOUND('',#28774,.T.); +#30482=FACE_BOUND('',#28775,.T.); +#30483=FACE_BOUND('',#28776,.T.); +#30484=FACE_BOUND('',#28777,.T.); +#30485=FACE_BOUND('',#28778,.T.); +#30486=FACE_BOUND('',#28779,.T.); +#30487=FACE_BOUND('',#28780,.T.); +#30488=FACE_BOUND('',#28781,.T.); +#30489=FACE_BOUND('',#28782,.T.); +#30490=FACE_BOUND('',#28783,.T.); +#30491=FACE_BOUND('',#28784,.T.); +#30492=FACE_BOUND('',#28785,.T.); +#30493=FACE_BOUND('',#28786,.T.); +#30494=FACE_BOUND('',#28787,.T.); +#30495=FACE_BOUND('',#28788,.T.); +#30496=FACE_BOUND('',#28789,.T.); +#30497=FACE_BOUND('',#28790,.T.); +#30498=FACE_BOUND('',#28791,.T.); +#30499=FACE_BOUND('',#28792,.T.); +#30500=FACE_BOUND('',#28793,.T.); +#30501=FACE_BOUND('',#28794,.T.); +#30502=FACE_BOUND('',#28795,.T.); +#30503=FACE_BOUND('',#28796,.T.); +#30504=FACE_BOUND('',#28797,.T.); +#30505=FACE_BOUND('',#28798,.T.); +#30506=FACE_BOUND('',#28799,.T.); +#30507=FACE_BOUND('',#28800,.T.); +#30508=FACE_BOUND('',#28801,.T.); +#30509=FACE_BOUND('',#28802,.T.); +#30510=FACE_BOUND('',#28803,.T.); +#30511=FACE_BOUND('',#28804,.T.); +#30512=FACE_BOUND('',#28805,.T.); +#30513=FACE_BOUND('',#28806,.T.); +#30514=FACE_BOUND('',#28807,.T.); +#30515=FACE_BOUND('',#28808,.T.); +#30516=FACE_BOUND('',#28809,.T.); +#30517=FACE_BOUND('',#28810,.T.); +#30518=FACE_BOUND('',#28811,.T.); +#30519=FACE_BOUND('',#28812,.T.); +#30520=FACE_BOUND('',#28813,.T.); +#30521=FACE_BOUND('',#28814,.T.); +#30522=FACE_BOUND('',#28815,.T.); +#30523=FACE_BOUND('',#28816,.T.); +#30524=FACE_BOUND('',#28817,.T.); +#30525=FACE_BOUND('',#28818,.T.); +#30526=FACE_BOUND('',#28819,.T.); +#30527=FACE_BOUND('',#28820,.T.); +#30528=FACE_BOUND('',#28821,.T.); +#30529=FACE_BOUND('',#28822,.T.); +#30530=FACE_BOUND('',#28823,.T.); +#30531=FACE_BOUND('',#28824,.T.); +#30532=FACE_BOUND('',#28825,.T.); +#30533=FACE_BOUND('',#28826,.T.); +#30534=FACE_BOUND('',#28827,.T.); +#30535=FACE_BOUND('',#28828,.T.); +#30536=FACE_BOUND('',#28829,.T.); +#30537=FACE_BOUND('',#28830,.T.); +#30538=FACE_BOUND('',#28831,.T.); +#30539=FACE_BOUND('',#28832,.T.); +#30540=FACE_BOUND('',#28833,.T.); +#30541=FACE_BOUND('',#28834,.T.); +#30542=FACE_BOUND('',#28835,.T.); +#30543=FACE_BOUND('',#28836,.T.); +#30544=FACE_BOUND('',#28837,.T.); +#30545=FACE_BOUND('',#28838,.T.); +#30546=FACE_BOUND('',#28839,.T.); +#30547=FACE_BOUND('',#28840,.T.); +#30548=FACE_BOUND('',#28841,.T.); +#30549=FACE_BOUND('',#28842,.T.); +#30550=FACE_BOUND('',#28843,.T.); +#30551=FACE_BOUND('',#28844,.T.); +#30552=FACE_BOUND('',#28845,.T.); +#30553=FACE_BOUND('',#28846,.T.); +#30554=FACE_BOUND('',#28847,.T.); +#30555=FACE_BOUND('',#28848,.T.); +#30556=FACE_BOUND('',#28849,.T.); +#30557=FACE_BOUND('',#28850,.T.); +#30558=FACE_BOUND('',#28851,.T.); +#30559=FACE_BOUND('',#28852,.T.); +#30560=FACE_BOUND('',#28853,.T.); +#30561=FACE_BOUND('',#28854,.T.); +#30562=FACE_BOUND('',#28855,.T.); +#30563=FACE_BOUND('',#28856,.T.); +#30564=FACE_BOUND('',#28857,.T.); +#30565=FACE_BOUND('',#28858,.T.); +#30566=FACE_BOUND('',#28859,.T.); +#30567=FACE_BOUND('',#28860,.T.); +#30568=FACE_BOUND('',#28861,.T.); +#30569=FACE_BOUND('',#28862,.T.); +#30570=FACE_BOUND('',#28863,.T.); +#30571=FACE_BOUND('',#28864,.T.); +#30572=FACE_BOUND('',#28865,.T.); +#30573=FACE_BOUND('',#28866,.T.); +#30574=FACE_BOUND('',#28867,.T.); +#30575=FACE_BOUND('',#28868,.T.); +#30576=FACE_BOUND('',#28869,.T.); +#30577=FACE_BOUND('',#28870,.T.); +#30578=FACE_BOUND('',#28871,.T.); +#30579=FACE_BOUND('',#28872,.T.); +#30580=FACE_BOUND('',#28873,.T.); +#30581=FACE_BOUND('',#28874,.T.); +#30582=FACE_BOUND('',#28875,.T.); +#30583=FACE_BOUND('',#28876,.T.); +#30584=FACE_BOUND('',#28877,.T.); +#30585=PLANE('',#33417); +#30586=PLANE('',#33418); +#30587=PLANE('',#33419); +#30588=PLANE('',#33442); +#30589=PLANE('',#33443); +#30590=PLANE('',#33444); +#30591=PLANE('',#33445); +#30592=PLANE('',#33446); +#30593=PLANE('',#33447); +#30594=PLANE('',#33449); +#30595=PLANE('',#33451); +#30596=PLANE('',#33452); +#30597=PLANE('',#33453); +#30598=PLANE('',#33455); +#30599=PLANE('',#33457); +#30600=PLANE('',#33458); +#30601=PLANE('',#33459); +#30602=PLANE('',#33461); +#30603=PLANE('',#33463); +#30604=PLANE('',#33464); +#30605=PLANE('',#33465); +#30606=PLANE('',#33467); +#30607=PLANE('',#33469); +#30608=PLANE('',#33470); +#30609=PLANE('',#33471); +#30610=PLANE('',#33473); +#30611=PLANE('',#33475); +#30612=PLANE('',#33476); +#30613=PLANE('',#33477); +#30614=PLANE('',#33479); +#30615=PLANE('',#33481); +#30616=PLANE('',#33482); +#30617=PLANE('',#33483); +#30618=PLANE('',#33485); +#30619=PLANE('',#33487); +#30620=PLANE('',#33488); +#30621=PLANE('',#33489); +#30622=PLANE('',#33491); +#30623=PLANE('',#33493); +#30624=PLANE('',#33494); +#30625=PLANE('',#33495); +#30626=PLANE('',#33497); +#30627=PLANE('',#33499); +#30628=PLANE('',#33500); +#30629=PLANE('',#33501); +#30630=PLANE('',#33503); +#30631=PLANE('',#33505); +#30632=PLANE('',#33506); +#30633=PLANE('',#33507); +#30634=PLANE('',#33509); +#30635=PLANE('',#33511); +#30636=PLANE('',#33512); +#30637=PLANE('',#33513); +#30638=PLANE('',#33515); +#30639=PLANE('',#33517); +#30640=PLANE('',#33518); +#30641=PLANE('',#33519); +#30642=PLANE('',#33521); +#30643=PLANE('',#33523); +#30644=PLANE('',#33524); +#30645=PLANE('',#33525); +#30646=PLANE('',#33527); +#30647=PLANE('',#33529); +#30648=PLANE('',#33530); +#30649=PLANE('',#33531); +#30650=PLANE('',#33533); +#30651=PLANE('',#33535); +#30652=PLANE('',#33536); +#30653=PLANE('',#33537); +#30654=PLANE('',#33539); +#30655=PLANE('',#33541); +#30656=PLANE('',#33542); +#30657=PLANE('',#33543); +#30658=PLANE('',#33545); +#30659=PLANE('',#33547); +#30660=PLANE('',#33548); +#30661=PLANE('',#33549); +#30662=PLANE('',#33551); +#30663=PLANE('',#33553); +#30664=PLANE('',#33554); +#30665=PLANE('',#33555); +#30666=PLANE('',#33557); +#30667=PLANE('',#33559); +#30668=PLANE('',#33561); +#30669=PLANE('',#33562); +#30670=PLANE('',#33563); +#30671=PLANE('',#33565); +#30672=PLANE('',#33566); +#30673=PLANE('',#33567); +#30674=PLANE('',#33568); +#30675=PLANE('',#33569); +#30676=PLANE('',#33570); +#30677=PLANE('',#33571); +#30678=PLANE('',#33572); +#30679=PLANE('',#33573); +#30680=PLANE('',#33574); +#30681=PLANE('',#33575); +#30682=PLANE('',#33576); +#30683=PLANE('',#33577); +#30684=PLANE('',#33578); +#30685=PLANE('',#33579); +#30686=PLANE('',#33580); +#30687=PLANE('',#33581); +#30688=PLANE('',#33582); +#30689=PLANE('',#33583); +#30690=PLANE('',#33584); +#30691=PLANE('',#33585); +#30692=PLANE('',#33586); +#30693=PLANE('',#33587); +#30694=PLANE('',#33588); +#30695=PLANE('',#33589); +#30696=PLANE('',#33590); +#30697=PLANE('',#33591); +#30698=PLANE('',#33592); +#30699=PLANE('',#33593); +#30700=PLANE('',#33594); +#30701=PLANE('',#33595); +#30702=PLANE('',#33596); +#30703=PLANE('',#33597); +#30704=PLANE('',#33598); +#30705=PLANE('',#33599); +#30706=PLANE('',#33600); +#30707=PLANE('',#33601); +#30708=PLANE('',#33602); +#30709=PLANE('',#33603); +#30710=PLANE('',#33604); +#30711=PLANE('',#33605); +#30712=PLANE('',#33606); +#30713=PLANE('',#33607); +#30714=PLANE('',#33608); +#30715=PLANE('',#33609); +#30716=PLANE('',#33610); +#30717=PLANE('',#33611); +#30718=PLANE('',#33612); +#30719=PLANE('',#33613); +#30720=PLANE('',#33614); +#30721=PLANE('',#33615); +#30722=PLANE('',#33616); +#30723=PLANE('',#33617); +#30724=PLANE('',#33618); +#30725=PLANE('',#33619); +#30726=PLANE('',#33620); +#30727=PLANE('',#33621); +#30728=PLANE('',#33622); +#30729=PLANE('',#33623); +#30730=PLANE('',#33624); +#30731=PLANE('',#33625); +#30732=PLANE('',#33626); +#30733=PLANE('',#33627); +#30734=PLANE('',#33628); +#30735=PLANE('',#33629); +#30736=PLANE('',#33630); +#30737=PLANE('',#33631); +#30738=PLANE('',#33632); +#30739=PLANE('',#33633); +#30740=PLANE('',#33634); +#30741=PLANE('',#33635); +#30742=PLANE('',#33636); +#30743=PLANE('',#33637); +#30744=PLANE('',#33638); +#30745=PLANE('',#33639); +#30746=PLANE('',#33640); +#30747=PLANE('',#33641); +#30748=PLANE('',#33642); +#30749=PLANE('',#33643); +#30750=PLANE('',#33644); +#30751=PLANE('',#33645); +#30752=PLANE('',#33646); +#30753=PLANE('',#33647); +#30754=PLANE('',#33648); +#30755=PLANE('',#33649); +#30756=PLANE('',#33650); +#30757=PLANE('',#33651); +#30758=PLANE('',#33652); +#30759=PLANE('',#33653); +#30760=PLANE('',#33654); +#30761=PLANE('',#33655); +#30762=PLANE('',#33656); +#30763=PLANE('',#33657); +#30764=PLANE('',#33658); +#30765=PLANE('',#33659); +#30766=PLANE('',#33660); +#30767=PLANE('',#33661); +#30768=PLANE('',#33662); +#30769=PLANE('',#33663); +#30770=PLANE('',#33664); +#30771=PLANE('',#33665); +#30772=PLANE('',#33666); +#30773=PLANE('',#33667); +#30774=PLANE('',#33668); +#30775=PLANE('',#33669); +#30776=PLANE('',#33670); +#30777=PLANE('',#33671); +#30778=PLANE('',#33672); +#30779=PLANE('',#33673); +#30780=PLANE('',#33674); +#30781=PLANE('',#33675); +#30782=PLANE('',#33676); +#30783=PLANE('',#33677); +#30784=PLANE('',#33678); +#30785=PLANE('',#33679); +#30786=PLANE('',#33680); +#30787=PLANE('',#33681); +#30788=PLANE('',#33682); +#30789=PLANE('',#33683); +#30790=PLANE('',#33684); +#30791=PLANE('',#33685); +#30792=PLANE('',#33686); +#30793=PLANE('',#33687); +#30794=PLANE('',#33688); +#30795=PLANE('',#33689); +#30796=PLANE('',#33690); +#30797=PLANE('',#33691); +#30798=PLANE('',#33692); +#30799=PLANE('',#33693); +#30800=PLANE('',#33694); +#30801=PLANE('',#33695); +#30802=PLANE('',#33696); +#30803=PLANE('',#33697); +#30804=PLANE('',#33698); +#30805=PLANE('',#33699); +#30806=PLANE('',#33700); +#30807=PLANE('',#33701); +#30808=PLANE('',#33702); +#30809=PLANE('',#33703); +#30810=PLANE('',#33704); +#30811=PLANE('',#33705); +#30812=PLANE('',#33706); +#30813=PLANE('',#33707); +#30814=PLANE('',#33708); +#30815=PLANE('',#33709); +#30816=PLANE('',#33710); +#30817=PLANE('',#33711); +#30818=PLANE('',#33712); +#30819=PLANE('',#33713); +#30820=PLANE('',#33714); +#30821=PLANE('',#33715); +#30822=PLANE('',#33716); +#30823=PLANE('',#33717); +#30824=PLANE('',#33718); +#30825=PLANE('',#33719); +#30826=PLANE('',#33720); +#30827=PLANE('',#33721); +#30828=PLANE('',#33722); +#30829=PLANE('',#33723); +#30830=PLANE('',#33724); +#30831=PLANE('',#33725); +#30832=PLANE('',#33726); +#30833=PLANE('',#33727); +#30834=PLANE('',#33728); +#30835=PLANE('',#33729); +#30836=PLANE('',#33730); +#30837=PLANE('',#33731); +#30838=PLANE('',#33732); +#30839=PLANE('',#33733); +#30840=PLANE('',#33734); +#30841=PLANE('',#33735); +#30842=PLANE('',#33736); +#30843=PLANE('',#33737); +#30844=PLANE('',#33738); +#30845=PLANE('',#33739); +#30846=PLANE('',#33740); +#30847=PLANE('',#33741); +#30848=PLANE('',#33742); +#30849=PLANE('',#33743); +#30850=PLANE('',#33744); +#30851=PLANE('',#33745); +#30852=PLANE('',#33746); +#30853=PLANE('',#33747); +#30854=PLANE('',#33748); +#30855=PLANE('',#33749); +#30856=PLANE('',#33750); +#30857=PLANE('',#33751); +#30858=PLANE('',#33752); +#30859=PLANE('',#33753); +#30860=PLANE('',#33754); +#30861=PLANE('',#33755); +#30862=PLANE('',#33756); +#30863=PLANE('',#33757); +#30864=PLANE('',#33758); +#30865=PLANE('',#33759); +#30866=PLANE('',#33760); +#30867=PLANE('',#33761); +#30868=PLANE('',#33762); +#30869=PLANE('',#33763); +#30870=PLANE('',#33764); +#30871=PLANE('',#33765); +#30872=PLANE('',#33766); +#30873=PLANE('',#33767); +#30874=PLANE('',#33768); +#30875=PLANE('',#33770); +#30876=PLANE('',#33771); +#30877=PLANE('',#33773); +#30878=PLANE('',#33774); +#30879=PLANE('',#33776); +#30880=PLANE('',#33777); +#30881=PLANE('',#33779); +#30882=PLANE('',#33780); +#30883=PLANE('',#33782); +#30884=PLANE('',#33783); +#30885=PLANE('',#33785); +#30886=PLANE('',#33786); +#30887=PLANE('',#33788); +#30888=PLANE('',#33789); +#30889=PLANE('',#33791); +#30890=PLANE('',#33792); +#30891=PLANE('',#33794); +#30892=PLANE('',#33795); +#30893=PLANE('',#33797); +#30894=PLANE('',#33798); +#30895=PLANE('',#33800); +#30896=PLANE('',#33801); +#30897=PLANE('',#33803); +#30898=PLANE('',#33804); +#30899=PLANE('',#33806); +#30900=PLANE('',#33807); +#30901=PLANE('',#33809); +#30902=PLANE('',#33810); +#30903=PLANE('',#33812); +#30904=PLANE('',#33813); +#30905=PLANE('',#33815); +#30906=PLANE('',#33816); +#30907=PLANE('',#33818); +#30908=PLANE('',#33819); +#30909=PLANE('',#33821); +#30910=PLANE('',#33822); +#30911=PLANE('',#33825); +#30912=PLANE('',#33826); +#30913=PLANE('',#33827); +#30914=PLANE('',#33828); +#30915=PLANE('',#33829); +#30916=PLANE('',#33830); +#30917=PLANE('',#33831); +#30918=PLANE('',#33832); +#30919=PLANE('',#33837); +#30920=PLANE('',#33838); +#30921=PLANE('',#33841); +#30922=PLANE('',#33844); +#30923=PLANE('',#33847); +#30924=PLANE('',#33850); +#30925=PLANE('',#33851); +#30926=PLANE('',#33862); +#30927=PLANE('',#33865); +#30928=PLANE('',#33866); +#30929=PLANE('',#33867); +#30930=PLANE('',#33868); +#30931=PLANE('',#33879); +#30932=PLANE('',#33882); +#30933=PLANE('',#33885); +#30934=PLANE('',#33886); +#30935=PLANE('',#33887); +#30936=PLANE('',#33888); +#30937=PLANE('',#33892); +#30938=PLANE('',#33894); +#30939=PLANE('',#33895); +#30940=PLANE('',#33896); +#30941=PLANE('',#33899); +#30942=PLANE('',#33903); +#30943=PLANE('',#33904); +#30944=PLANE('',#33905); +#30945=PLANE('',#33906); +#30946=PLANE('',#33907); +#30947=PLANE('',#33908); +#30948=PLANE('',#33909); +#30949=PLANE('',#33910); +#30950=PLANE('',#33911); +#30951=PLANE('',#33912); +#30952=PLANE('',#33913); +#30953=PLANE('',#33914); +#30954=PLANE('',#33915); +#30955=PLANE('',#33916); +#30956=PLANE('',#33917); +#30957=PLANE('',#33918); +#30958=PLANE('',#33919); +#30959=PLANE('',#33920); +#30960=PLANE('',#33921); +#30961=PLANE('',#33922); +#30962=PLANE('',#33923); +#30963=PLANE('',#33924); +#30964=PLANE('',#33925); +#30965=PLANE('',#33926); +#30966=PLANE('',#33927); +#30967=PLANE('',#33928); +#30968=PLANE('',#33929); +#30969=PLANE('',#33930); +#30970=PLANE('',#33931); +#30971=PLANE('',#33932); +#30972=PLANE('',#33933); +#30973=PLANE('',#33934); +#30974=PLANE('',#33935); +#30975=PLANE('',#33936); +#30976=PLANE('',#33937); +#30977=PLANE('',#33938); +#30978=PLANE('',#33939); +#30979=PLANE('',#33940); +#30980=PLANE('',#33941); +#30981=PLANE('',#33942); +#30982=PLANE('',#33943); +#30983=PLANE('',#33944); +#30984=PLANE('',#33945); +#30985=PLANE('',#33946); +#30986=PLANE('',#33947); +#30987=PLANE('',#33948); +#30988=PLANE('',#33949); +#30989=PLANE('',#33950); +#30990=PLANE('',#33951); +#30991=PLANE('',#33952); +#30992=PLANE('',#33953); +#30993=PLANE('',#33954); +#30994=PLANE('',#33955); +#30995=PLANE('',#33956); +#30996=PLANE('',#33957); +#30997=PLANE('',#33958); +#30998=PLANE('',#33959); +#30999=PLANE('',#33960); +#31000=PLANE('',#33961); +#31001=PLANE('',#33962); +#31002=PLANE('',#33963); +#31003=PLANE('',#33964); +#31004=PLANE('',#33965); +#31005=PLANE('',#33966); +#31006=PLANE('',#33967); +#31007=PLANE('',#33968); +#31008=PLANE('',#33969); +#31009=PLANE('',#33970); +#31010=PLANE('',#33971); +#31011=PLANE('',#33972); +#31012=PLANE('',#33973); +#31013=PLANE('',#33974); +#31014=PLANE('',#33975); +#31015=PLANE('',#33976); +#31016=PLANE('',#33977); +#31017=PLANE('',#33978); +#31018=PLANE('',#33979); +#31019=PLANE('',#33980); +#31020=PLANE('',#33981); +#31021=PLANE('',#33982); +#31022=PLANE('',#33983); +#31023=PLANE('',#33984); +#31024=PLANE('',#33985); +#31025=PLANE('',#33986); +#31026=PLANE('',#33987); +#31027=PLANE('',#33988); +#31028=PLANE('',#33989); +#31029=PLANE('',#33990); +#31030=PLANE('',#33991); +#31031=PLANE('',#33992); +#31032=PLANE('',#33993); +#31033=PLANE('',#33994); +#31034=PLANE('',#33995); +#31035=PLANE('',#33996); +#31036=PLANE('',#33997); +#31037=PLANE('',#33998); +#31038=PLANE('',#33999); +#31039=PLANE('',#34000); +#31040=PLANE('',#34001); +#31041=PLANE('',#34002); +#31042=PLANE('',#34003); +#31043=PLANE('',#34004); +#31044=PLANE('',#34005); +#31045=PLANE('',#34006); +#31046=PLANE('',#34007); +#31047=PLANE('',#34008); +#31048=PLANE('',#34009); +#31049=PLANE('',#34124); +#31050=PLANE('',#34125); +#31051=PLANE('',#34126); +#31052=PLANE('',#34127); +#31053=PLANE('',#34128); +#31054=PLANE('',#34129); +#31055=PLANE('',#34130); +#31056=PLANE('',#34131); +#31057=PLANE('',#34132); +#31058=PLANE('',#34133); +#31059=PLANE('',#34134); +#31060=PLANE('',#34135); +#31061=PLANE('',#34136); +#31062=PLANE('',#34137); +#31063=PLANE('',#34138); +#31064=PLANE('',#34139); +#31065=PLANE('',#34140); +#31066=PLANE('',#34141); +#31067=PLANE('',#34142); +#31068=PLANE('',#34257); +#31069=PLANE('',#34264); +#31070=PLANE('',#34271); +#31071=PLANE('',#34272); +#31072=PLANE('',#34273); +#31073=PLANE('',#34274); +#31074=PLANE('',#34275); +#31075=PLANE('',#34276); +#31076=PLANE('',#34277); +#31077=PLANE('',#34278); +#31078=PLANE('',#34279); +#31079=PLANE('',#34280); +#31080=PLANE('',#34281); +#31081=PLANE('',#34282); +#31082=PLANE('',#34283); +#31083=PLANE('',#34284); +#31084=PLANE('',#34285); +#31085=PLANE('',#34286); +#31086=PLANE('',#34287); +#31087=PLANE('',#34288); +#31088=PLANE('',#34289); +#31089=PLANE('',#34290); +#31090=PLANE('',#34291); +#31091=PLANE('',#34292); +#31092=PLANE('',#34293); +#31093=PLANE('',#34294); +#31094=PLANE('',#34295); +#31095=PLANE('',#34296); +#31096=PLANE('',#34297); +#31097=PLANE('',#34298); +#31098=PLANE('',#34299); +#31099=PLANE('',#34300); +#31100=PLANE('',#34301); +#31101=PLANE('',#34302); +#31102=PLANE('',#34303); +#31103=PLANE('',#34304); +#31104=PLANE('',#34305); +#31105=PLANE('',#34306); +#31106=PLANE('',#34307); +#31107=PLANE('',#34308); +#31108=PLANE('',#34309); +#31109=PLANE('',#34310); +#31110=PLANE('',#34311); +#31111=PLANE('',#34312); +#31112=PLANE('',#34313); +#31113=PLANE('',#34314); +#31114=PLANE('',#34315); +#31115=PLANE('',#34316); +#31116=PLANE('',#34317); +#31117=PLANE('',#34318); +#31118=PLANE('',#34319); +#31119=PLANE('',#34320); +#31120=PLANE('',#34321); +#31121=PLANE('',#34322); +#31122=PLANE('',#34323); +#31123=PLANE('',#34324); +#31124=PLANE('',#34325); +#31125=PLANE('',#34326); +#31126=PLANE('',#34327); +#31127=PLANE('',#34328); +#31128=PLANE('',#34329); +#31129=PLANE('',#34330); +#31130=PLANE('',#34331); +#31131=PLANE('',#34332); +#31132=PLANE('',#34333); +#31133=PLANE('',#34334); +#31134=PLANE('',#34335); +#31135=PLANE('',#34336); +#31136=PLANE('',#34337); +#31137=PLANE('',#34338); +#31138=PLANE('',#34339); +#31139=PLANE('',#34340); +#31140=PLANE('',#34341); +#31141=PLANE('',#34342); +#31142=PLANE('',#34343); +#31143=PLANE('',#34344); +#31144=PLANE('',#34345); +#31145=PLANE('',#34346); +#31146=PLANE('',#34347); +#31147=PLANE('',#34348); +#31148=PLANE('',#34349); +#31149=PLANE('',#34350); +#31150=PLANE('',#34351); +#31151=PLANE('',#34352); +#31152=PLANE('',#34353); +#31153=PLANE('',#34354); +#31154=PLANE('',#34355); +#31155=PLANE('',#34356); +#31156=PLANE('',#34357); +#31157=PLANE('',#34358); +#31158=PLANE('',#34359); +#31159=PLANE('',#34360); +#31160=PLANE('',#34361); +#31161=PLANE('',#34362); +#31162=PLANE('',#34363); +#31163=PLANE('',#34364); +#31164=PLANE('',#34365); +#31165=PLANE('',#34366); +#31166=PLANE('',#34367); +#31167=PLANE('',#34368); +#31168=PLANE('',#34369); +#31169=PLANE('',#34370); +#31170=PLANE('',#34371); +#31171=PLANE('',#34372); +#31172=PLANE('',#34373); +#31173=PLANE('',#34374); +#31174=PLANE('',#34375); +#31175=PLANE('',#34376); +#31176=PLANE('',#34377); +#31177=PLANE('',#34378); +#31178=PLANE('',#34379); +#31179=PLANE('',#34380); +#31180=PLANE('',#34381); +#31181=PLANE('',#34382); +#31182=PLANE('',#34383); +#31183=PLANE('',#34384); +#31184=PLANE('',#34385); +#31185=PLANE('',#34386); +#31186=PLANE('',#34387); +#31187=PLANE('',#34388); +#31188=PLANE('',#34389); +#31189=PLANE('',#34390); +#31190=PLANE('',#34391); +#31191=PLANE('',#34392); +#31192=PLANE('',#34393); +#31193=PLANE('',#34394); +#31194=PLANE('',#34395); +#31195=PLANE('',#34396); +#31196=PLANE('',#34397); +#31197=PLANE('',#34398); +#31198=PLANE('',#34399); +#31199=PLANE('',#34400); +#31200=PLANE('',#34401); +#31201=PLANE('',#34402); +#31202=PLANE('',#34403); +#31203=PLANE('',#34404); +#31204=PLANE('',#34405); +#31205=PLANE('',#34406); +#31206=PLANE('',#34407); +#31207=PLANE('',#34408); +#31208=PLANE('',#34409); +#31209=PLANE('',#34410); +#31210=PLANE('',#34411); +#31211=PLANE('',#34412); +#31212=PLANE('',#34413); +#31213=PLANE('',#34414); +#31214=PLANE('',#34415); +#31215=PLANE('',#34416); +#31216=PLANE('',#34417); +#31217=PLANE('',#34418); +#31218=PLANE('',#34419); +#31219=PLANE('',#34420); +#31220=PLANE('',#34421); +#31221=PLANE('',#34422); +#31222=PLANE('',#34423); +#31223=PLANE('',#34424); +#31224=PLANE('',#34425); +#31225=PLANE('',#34426); +#31226=PLANE('',#34427); +#31227=PLANE('',#34428); +#31228=PLANE('',#34429); +#31229=PLANE('',#34430); +#31230=PLANE('',#34431); +#31231=PLANE('',#34432); +#31232=PLANE('',#34433); +#31233=PLANE('',#34434); +#31234=PLANE('',#34435); +#31235=PLANE('',#34436); +#31236=PLANE('',#34437); +#31237=PLANE('',#34438); +#31238=PLANE('',#34439); +#31239=PLANE('',#34440); +#31240=PLANE('',#34441); +#31241=PLANE('',#34442); +#31242=PLANE('',#34443); +#31243=PLANE('',#34444); +#31244=PLANE('',#34445); +#31245=PLANE('',#34446); +#31246=PLANE('',#34447); +#31247=PLANE('',#34448); +#31248=PLANE('',#34449); +#31249=PLANE('',#34450); +#31250=PLANE('',#34451); +#31251=PLANE('',#34452); +#31252=PLANE('',#34453); +#31253=PLANE('',#34454); +#31254=PLANE('',#34455); +#31255=PLANE('',#34456); +#31256=PLANE('',#34457); +#31257=PLANE('',#34458); +#31258=PLANE('',#34459); +#31259=PLANE('',#34460); +#31260=PLANE('',#34461); +#31261=PLANE('',#34462); +#31262=PLANE('',#34463); +#31263=PLANE('',#34464); +#31264=PLANE('',#34465); +#31265=PLANE('',#34466); +#31266=PLANE('',#34467); +#31267=PLANE('',#34468); +#31268=PLANE('',#34469); +#31269=PLANE('',#34470); +#31270=PLANE('',#34471); +#31271=PLANE('',#34473); +#31272=PLANE('',#34594); +#31273=PLANE('',#34715); +#31274=PLANE('',#34836); +#31275=PLANE('',#34957); +#31276=PLANE('',#34958); +#31277=PLANE('',#34959); +#31278=PLANE('',#34960); +#31279=PLANE('',#34961); +#31280=PLANE('',#34962); +#31281=PLANE('',#34963); +#31282=PLANE('',#34964); +#31283=PLANE('',#34965); +#31284=PLANE('',#34966); +#31285=PLANE('',#34967); +#31286=PLANE('',#34968); +#31287=PLANE('',#34969); +#31288=PLANE('',#34970); +#31289=PLANE('',#34971); +#31290=PLANE('',#34972); +#31291=PLANE('',#34973); +#31292=PLANE('',#34974); +#31293=PLANE('',#34975); +#31294=PLANE('',#34976); +#31295=PLANE('',#34977); +#31296=PLANE('',#34978); +#31297=PLANE('',#34979); +#31298=PLANE('',#34980); +#31299=PLANE('',#34981); +#31300=PLANE('',#34982); +#31301=PLANE('',#34983); +#31302=PLANE('',#34984); +#31303=PLANE('',#34985); +#31304=PLANE('',#34986); +#31305=PLANE('',#34987); +#31306=PLANE('',#34988); +#31307=PLANE('',#34989); +#31308=PLANE('',#34990); +#31309=PLANE('',#34991); +#31310=PLANE('',#34992); +#31311=PLANE('',#34993); +#31312=PLANE('',#34994); +#31313=PLANE('',#34995); +#31314=PLANE('',#34996); +#31315=PLANE('',#34997); +#31316=PLANE('',#34998); +#31317=PLANE('',#34999); +#31318=PLANE('',#35000); +#31319=PLANE('',#35061); +#31320=PLANE('',#35064); +#31321=PLANE('',#35067); +#31322=PLANE('',#35070); +#31323=PLANE('',#35073); +#31324=PLANE('',#35076); +#31325=PLANE('',#35079); +#31326=PLANE('',#35082); +#31327=PLANE('',#35085); +#31328=PLANE('',#35088); +#31329=PLANE('',#35091); +#31330=PLANE('',#35094); +#31331=PLANE('',#35097); +#31332=PLANE('',#35100); +#31333=PLANE('',#35103); +#31334=PLANE('',#35106); +#31335=PLANE('',#35109); +#31336=PLANE('',#35112); +#31337=PLANE('',#35115); +#31338=PLANE('',#35238); +#31339=PLANE('',#35241); +#31340=PLANE('',#35244); +#31341=PLANE('',#35247); +#31342=PLANE('',#35250); +#31343=PLANE('',#35253); +#31344=PLANE('',#35256); +#31345=PLANE('',#35259); +#31346=PLANE('',#35262); +#31347=PLANE('',#35265); +#31348=PLANE('',#35268); +#31349=PLANE('',#35271); +#31350=PLANE('',#35274); +#31351=PLANE('',#35277); +#31352=PLANE('',#35280); +#31353=PLANE('',#35283); +#31354=PLANE('',#35286); +#31355=PLANE('',#35289); +#31356=PLANE('',#35292); +#31357=PLANE('',#35355); +#31358=PLANE('',#35356); +#31359=PLANE('',#35357); +#31360=PLANE('',#35360); +#31361=PLANE('',#35364); +#31362=PLANE('',#35366); +#31363=PLANE('',#35369); +#31364=PLANE('',#35372); +#31365=PLANE('',#35375); +#31366=PLANE('',#35376); +#31367=PLANE('',#35380); +#31368=PLANE('',#35382); +#31369=PLANE('',#35385); +#31370=PLANE('',#35388); +#31371=PLANE('',#35390); +#31372=PLANE('',#35393); +#31373=PLANE('',#35396); +#31374=PLANE('',#35398); +#31375=PLANE('',#35400); +#31376=PLANE('',#35402); +#31377=PLANE('',#35403); +#31378=PLANE('',#35405); +#31379=PLANE('',#35407); +#31380=PLANE('',#35411); +#31381=PLANE('',#35414); +#31382=PLANE('',#35416); +#31383=PLANE('',#35418); +#31384=PLANE('',#35420); +#31385=PLANE('',#35421); +#31386=PLANE('',#35423); +#31387=PLANE('',#35425); +#31388=PLANE('',#35429); +#31389=PLANE('',#35432); +#31390=PLANE('',#35434); +#31391=PLANE('',#35436); +#31392=PLANE('',#35438); +#31393=PLANE('',#35439); +#31394=PLANE('',#35441); +#31395=PLANE('',#35443); +#31396=PLANE('',#35447); +#31397=PLANE('',#35450); +#31398=PLANE('',#35452); +#31399=PLANE('',#35454); +#31400=PLANE('',#35456); +#31401=PLANE('',#35457); +#31402=PLANE('',#35459); +#31403=PLANE('',#35461); +#31404=PLANE('',#35465); +#31405=PLANE('',#35468); +#31406=PLANE('',#35470); +#31407=PLANE('',#35472); +#31408=PLANE('',#35474); +#31409=PLANE('',#35475); +#31410=PLANE('',#35477); +#31411=PLANE('',#35479); +#31412=PLANE('',#35483); +#31413=PLANE('',#35486); +#31414=PLANE('',#35488); +#31415=PLANE('',#35490); +#31416=PLANE('',#35492); +#31417=PLANE('',#35493); +#31418=PLANE('',#35495); +#31419=PLANE('',#35497); +#31420=PLANE('',#35501); +#31421=PLANE('',#35504); +#31422=PLANE('',#35506); +#31423=PLANE('',#35508); +#31424=PLANE('',#35510); +#31425=PLANE('',#35511); +#31426=PLANE('',#35513); +#31427=PLANE('',#35515); +#31428=PLANE('',#35519); +#31429=PLANE('',#35522); +#31430=PLANE('',#35524); +#31431=PLANE('',#35526); +#31432=PLANE('',#35528); +#31433=PLANE('',#35529); +#31434=PLANE('',#35531); +#31435=PLANE('',#35533); +#31436=PLANE('',#35537); +#31437=PLANE('',#35540); +#31438=PLANE('',#35542); +#31439=PLANE('',#35544); +#31440=PLANE('',#35546); +#31441=PLANE('',#35547); +#31442=PLANE('',#35549); +#31443=PLANE('',#35551); +#31444=PLANE('',#35555); +#31445=PLANE('',#35558); +#31446=PLANE('',#35560); +#31447=PLANE('',#35562); +#31448=PLANE('',#35564); +#31449=PLANE('',#35565); +#31450=PLANE('',#35567); +#31451=PLANE('',#35569); +#31452=PLANE('',#35573); +#31453=PLANE('',#35576); +#31454=PLANE('',#35578); +#31455=PLANE('',#35580); +#31456=PLANE('',#35582); +#31457=PLANE('',#35583); +#31458=PLANE('',#35585); +#31459=PLANE('',#35587); +#31460=PLANE('',#35591); +#31461=PLANE('',#35594); +#31462=PLANE('',#35596); +#31463=PLANE('',#35598); +#31464=PLANE('',#35600); +#31465=PLANE('',#35601); +#31466=PLANE('',#35603); +#31467=PLANE('',#35605); +#31468=PLANE('',#35609); +#31469=PLANE('',#35612); +#31470=PLANE('',#35614); +#31471=PLANE('',#35616); +#31472=PLANE('',#35618); +#31473=PLANE('',#35619); +#31474=PLANE('',#35621); +#31475=PLANE('',#35623); +#31476=PLANE('',#35627); +#31477=PLANE('',#35630); +#31478=PLANE('',#35632); +#31479=PLANE('',#35634); +#31480=PLANE('',#35636); +#31481=PLANE('',#35637); +#31482=PLANE('',#35639); +#31483=PLANE('',#35641); +#31484=PLANE('',#35645); +#31485=PLANE('',#35648); +#31486=PLANE('',#35650); +#31487=PLANE('',#35652); +#31488=PLANE('',#35654); +#31489=PLANE('',#35655); +#31490=PLANE('',#35657); +#31491=PLANE('',#35659); +#31492=PLANE('',#35663); +#31493=PLANE('',#35666); +#31494=PLANE('',#35668); +#31495=PLANE('',#35670); +#31496=PLANE('',#35672); +#31497=PLANE('',#35673); +#31498=PLANE('',#35675); +#31499=PLANE('',#35677); +#31500=PLANE('',#35681); +#31501=PLANE('',#35684); +#31502=PLANE('',#35686); +#31503=PLANE('',#35688); +#31504=PLANE('',#35690); +#31505=PLANE('',#35691); +#31506=PLANE('',#35693); +#31507=PLANE('',#35695); +#31508=PLANE('',#35699); +#31509=PLANE('',#35702); +#31510=PLANE('',#35704); +#31511=PLANE('',#35706); +#31512=PLANE('',#35708); +#31513=PLANE('',#35709); +#31514=PLANE('',#35711); +#31515=PLANE('',#35713); +#31516=PLANE('',#35717); +#31517=PLANE('',#35720); +#31518=PLANE('',#35722); +#31519=PLANE('',#35724); +#31520=PLANE('',#35726); +#31521=PLANE('',#35727); +#31522=PLANE('',#35729); +#31523=PLANE('',#35731); +#31524=PLANE('',#35735); +#31525=PLANE('',#35738); +#31526=PLANE('',#35740); +#31527=PLANE('',#35742); +#31528=PLANE('',#35743); +#31529=PLANE('',#35745); +#31530=PLANE('',#35747); +#31531=PLANE('',#35749); +#31532=PLANE('',#35752); +#31533=PLANE('',#35756); +#31534=PLANE('',#35758); +#31535=PLANE('',#35760); +#31536=PLANE('',#35761); +#31537=PLANE('',#35763); +#31538=PLANE('',#35765); +#31539=PLANE('',#35767); +#31540=PLANE('',#35770); +#31541=PLANE('',#35774); +#31542=PLANE('',#35776); +#31543=PLANE('',#35778); +#31544=PLANE('',#35779); +#31545=PLANE('',#35781); +#31546=PLANE('',#35783); +#31547=PLANE('',#35785); +#31548=PLANE('',#35788); +#31549=PLANE('',#35792); +#31550=PLANE('',#35794); +#31551=PLANE('',#35796); +#31552=PLANE('',#35797); +#31553=PLANE('',#35799); +#31554=PLANE('',#35801); +#31555=PLANE('',#35803); +#31556=PLANE('',#35806); +#31557=PLANE('',#35810); +#31558=PLANE('',#35812); +#31559=PLANE('',#35814); +#31560=PLANE('',#35815); +#31561=PLANE('',#35817); +#31562=PLANE('',#35819); +#31563=PLANE('',#35821); +#31564=PLANE('',#35824); +#31565=PLANE('',#35828); +#31566=PLANE('',#35830); +#31567=PLANE('',#35832); +#31568=PLANE('',#35833); +#31569=PLANE('',#35835); +#31570=PLANE('',#35837); +#31571=PLANE('',#35839); +#31572=PLANE('',#35842); +#31573=PLANE('',#35846); +#31574=PLANE('',#35848); +#31575=PLANE('',#35850); +#31576=PLANE('',#35851); +#31577=PLANE('',#35853); +#31578=PLANE('',#35855); +#31579=PLANE('',#35857); +#31580=PLANE('',#35860); +#31581=PLANE('',#35864); +#31582=PLANE('',#35866); +#31583=PLANE('',#35868); +#31584=PLANE('',#35869); +#31585=PLANE('',#35871); +#31586=PLANE('',#35873); +#31587=PLANE('',#35875); +#31588=PLANE('',#35878); +#31589=PLANE('',#35882); +#31590=PLANE('',#35884); +#31591=PLANE('',#35886); +#31592=PLANE('',#35887); +#31593=PLANE('',#35889); +#31594=PLANE('',#35891); +#31595=PLANE('',#35893); +#31596=PLANE('',#35896); +#31597=PLANE('',#35900); +#31598=PLANE('',#35902); +#31599=PLANE('',#35904); +#31600=PLANE('',#35905); +#31601=PLANE('',#35907); +#31602=PLANE('',#35909); +#31603=PLANE('',#35911); +#31604=PLANE('',#35914); +#31605=PLANE('',#35918); +#31606=PLANE('',#35920); +#31607=PLANE('',#35922); +#31608=PLANE('',#35923); +#31609=PLANE('',#35925); +#31610=PLANE('',#35927); +#31611=PLANE('',#35929); +#31612=PLANE('',#35932); +#31613=PLANE('',#35936); +#31614=PLANE('',#35938); +#31615=PLANE('',#35940); +#31616=PLANE('',#35941); +#31617=PLANE('',#35943); +#31618=PLANE('',#35945); +#31619=PLANE('',#35947); +#31620=PLANE('',#35950); +#31621=PLANE('',#35954); +#31622=PLANE('',#35956); +#31623=PLANE('',#35958); +#31624=PLANE('',#35959); +#31625=PLANE('',#35961); +#31626=PLANE('',#35963); +#31627=PLANE('',#35965); +#31628=PLANE('',#35968); +#31629=PLANE('',#35972); +#31630=PLANE('',#35974); +#31631=PLANE('',#35976); +#31632=PLANE('',#35977); +#31633=PLANE('',#35979); +#31634=PLANE('',#35981); +#31635=PLANE('',#35983); +#31636=PLANE('',#35986); +#31637=PLANE('',#35990); +#31638=PLANE('',#35992); +#31639=PLANE('',#35994); +#31640=PLANE('',#35995); +#31641=PLANE('',#35997); +#31642=PLANE('',#35999); +#31643=PLANE('',#36001); +#31644=PLANE('',#36004); +#31645=PLANE('',#36008); +#31646=PLANE('',#36010); +#31647=PLANE('',#36012); +#31648=PLANE('',#36013); +#31649=PLANE('',#36015); +#31650=PLANE('',#36017); +#31651=PLANE('',#36019); +#31652=PLANE('',#36022); +#31653=PLANE('',#36026); +#31654=PLANE('',#36028); +#31655=PLANE('',#36030); +#31656=PLANE('',#36031); +#31657=PLANE('',#36033); +#31658=PLANE('',#36035); +#31659=PLANE('',#36037); +#31660=PLANE('',#36040); +#31661=PLANE('',#36044); +#31662=PLANE('',#36046); +#31663=PLANE('',#36048); +#31664=PLANE('',#36049); +#31665=PLANE('',#36051); +#31666=PLANE('',#36053); +#31667=PLANE('',#36055); +#31668=PLANE('',#36058); +#31669=PLANE('',#36062); +#31670=PLANE('',#36064); +#31671=PLANE('',#36066); +#31672=PLANE('',#36067); +#31673=PLANE('',#36069); +#31674=PLANE('',#36071); +#31675=PLANE('',#36073); +#31676=PLANE('',#36076); +#31677=PLANE('',#36079); +#31678=PLANE('',#36080); +#31679=PLANE('',#36081); +#31680=ADVANCED_FACE('',(#28878),#30585,.F.); +#31681=ADVANCED_FACE('',(#28879),#30586,.F.); +#31682=ADVANCED_FACE('',(#28880,#28881,#28882,#28883,#28884),#30587,.F.); +#31683=ADVANCED_FACE('',(#28885),#30588,.F.); +#31684=ADVANCED_FACE('',(#28886,#28887),#30589,.T.); +#31685=ADVANCED_FACE('',(#28888),#30590,.F.); +#31686=ADVANCED_FACE('',(#28889),#30591,.T.); +#31687=ADVANCED_FACE('',(#28890),#30592,.T.); +#31688=ADVANCED_FACE('',(#28891),#30593,.T.); +#31689=ADVANCED_FACE('',(#28892),#30594,.T.); +#31690=ADVANCED_FACE('',(#28893),#30595,.T.); +#31691=ADVANCED_FACE('',(#28894),#30596,.T.); +#31692=ADVANCED_FACE('',(#28895),#30597,.T.); +#31693=ADVANCED_FACE('',(#28896),#30598,.T.); +#31694=ADVANCED_FACE('',(#28897),#30599,.T.); +#31695=ADVANCED_FACE('',(#28898),#30600,.T.); +#31696=ADVANCED_FACE('',(#28899),#30601,.T.); +#31697=ADVANCED_FACE('',(#28900),#30602,.T.); +#31698=ADVANCED_FACE('',(#28901),#30603,.T.); +#31699=ADVANCED_FACE('',(#28902),#30604,.T.); +#31700=ADVANCED_FACE('',(#28903),#30605,.T.); +#31701=ADVANCED_FACE('',(#28904),#30606,.T.); +#31702=ADVANCED_FACE('',(#28905),#30607,.T.); +#31703=ADVANCED_FACE('',(#28906),#30608,.T.); +#31704=ADVANCED_FACE('',(#28907),#30609,.T.); +#31705=ADVANCED_FACE('',(#28908),#30610,.T.); +#31706=ADVANCED_FACE('',(#28909),#30611,.T.); +#31707=ADVANCED_FACE('',(#28910),#30612,.T.); +#31708=ADVANCED_FACE('',(#28911),#30613,.T.); +#31709=ADVANCED_FACE('',(#28912),#30614,.T.); +#31710=ADVANCED_FACE('',(#28913),#30615,.T.); +#31711=ADVANCED_FACE('',(#28914),#30616,.T.); +#31712=ADVANCED_FACE('',(#28915),#30617,.T.); +#31713=ADVANCED_FACE('',(#28916),#30618,.T.); +#31714=ADVANCED_FACE('',(#28917),#30619,.T.); +#31715=ADVANCED_FACE('',(#28918),#30620,.T.); +#31716=ADVANCED_FACE('',(#28919),#30621,.T.); +#31717=ADVANCED_FACE('',(#28920),#30622,.T.); +#31718=ADVANCED_FACE('',(#28921),#30623,.T.); +#31719=ADVANCED_FACE('',(#28922),#30624,.T.); +#31720=ADVANCED_FACE('',(#28923),#30625,.T.); +#31721=ADVANCED_FACE('',(#28924),#30626,.T.); +#31722=ADVANCED_FACE('',(#28925),#30627,.T.); +#31723=ADVANCED_FACE('',(#28926),#30628,.T.); +#31724=ADVANCED_FACE('',(#28927),#30629,.T.); +#31725=ADVANCED_FACE('',(#28928),#30630,.T.); +#31726=ADVANCED_FACE('',(#28929),#30631,.T.); +#31727=ADVANCED_FACE('',(#28930),#30632,.T.); +#31728=ADVANCED_FACE('',(#28931),#30633,.T.); +#31729=ADVANCED_FACE('',(#28932),#30634,.T.); +#31730=ADVANCED_FACE('',(#28933),#30635,.T.); +#31731=ADVANCED_FACE('',(#28934),#30636,.T.); +#31732=ADVANCED_FACE('',(#28935),#30637,.T.); +#31733=ADVANCED_FACE('',(#28936),#30638,.T.); +#31734=ADVANCED_FACE('',(#28937),#30639,.T.); +#31735=ADVANCED_FACE('',(#28938),#30640,.T.); +#31736=ADVANCED_FACE('',(#28939),#30641,.T.); +#31737=ADVANCED_FACE('',(#28940),#30642,.T.); +#31738=ADVANCED_FACE('',(#28941),#30643,.T.); +#31739=ADVANCED_FACE('',(#28942),#30644,.T.); +#31740=ADVANCED_FACE('',(#28943),#30645,.T.); +#31741=ADVANCED_FACE('',(#28944),#30646,.T.); +#31742=ADVANCED_FACE('',(#28945),#30647,.T.); +#31743=ADVANCED_FACE('',(#28946),#30648,.T.); +#31744=ADVANCED_FACE('',(#28947),#30649,.T.); +#31745=ADVANCED_FACE('',(#28948),#30650,.T.); +#31746=ADVANCED_FACE('',(#28949),#30651,.T.); +#31747=ADVANCED_FACE('',(#28950),#30652,.T.); +#31748=ADVANCED_FACE('',(#28951),#30653,.T.); +#31749=ADVANCED_FACE('',(#28952),#30654,.T.); +#31750=ADVANCED_FACE('',(#28953),#30655,.T.); +#31751=ADVANCED_FACE('',(#28954),#30656,.T.); +#31752=ADVANCED_FACE('',(#28955),#30657,.T.); +#31753=ADVANCED_FACE('',(#28956),#30658,.T.); +#31754=ADVANCED_FACE('',(#28957),#30659,.T.); +#31755=ADVANCED_FACE('',(#28958),#30660,.T.); +#31756=ADVANCED_FACE('',(#28959),#30661,.T.); +#31757=ADVANCED_FACE('',(#28960),#30662,.T.); +#31758=ADVANCED_FACE('',(#28961),#30663,.T.); +#31759=ADVANCED_FACE('',(#28962),#30664,.T.); +#31760=ADVANCED_FACE('',(#28963),#30665,.T.); +#31761=ADVANCED_FACE('',(#28964),#30666,.T.); +#31762=ADVANCED_FACE('',(#28965),#30667,.T.); +#31763=ADVANCED_FACE('',(#28966),#30668,.T.); +#31764=ADVANCED_FACE('',(#28967),#30669,.T.); +#31765=ADVANCED_FACE('',(#28968),#30670,.T.); +#31766=ADVANCED_FACE('',(#28969),#30671,.F.); +#31767=ADVANCED_FACE('',(#28970),#30672,.F.); +#31768=ADVANCED_FACE('',(#28971),#30673,.F.); +#31769=ADVANCED_FACE('',(#28972),#30674,.F.); +#31770=ADVANCED_FACE('',(#28973),#30675,.F.); +#31771=ADVANCED_FACE('',(#28974),#30676,.F.); +#31772=ADVANCED_FACE('',(#28975),#30677,.F.); +#31773=ADVANCED_FACE('',(#28976),#30678,.F.); +#31774=ADVANCED_FACE('',(#28977),#30679,.F.); +#31775=ADVANCED_FACE('',(#28978),#30680,.F.); +#31776=ADVANCED_FACE('',(#28979),#30681,.F.); +#31777=ADVANCED_FACE('',(#28980),#30682,.F.); +#31778=ADVANCED_FACE('',(#28981),#30683,.F.); +#31779=ADVANCED_FACE('',(#28982),#30684,.F.); +#31780=ADVANCED_FACE('',(#28983),#30685,.F.); +#31781=ADVANCED_FACE('',(#28984),#30686,.F.); +#31782=ADVANCED_FACE('',(#28985),#30687,.F.); +#31783=ADVANCED_FACE('',(#28986),#30688,.F.); +#31784=ADVANCED_FACE('',(#28987),#30689,.F.); +#31785=ADVANCED_FACE('',(#28988),#30690,.F.); +#31786=ADVANCED_FACE('',(#28989),#30691,.F.); +#31787=ADVANCED_FACE('',(#28990),#30692,.T.); +#31788=ADVANCED_FACE('',(#28991),#30693,.T.); +#31789=ADVANCED_FACE('',(#28992),#30694,.T.); +#31790=ADVANCED_FACE('',(#28993),#30695,.T.); +#31791=ADVANCED_FACE('',(#28994),#30696,.T.); +#31792=ADVANCED_FACE('',(#28995),#30697,.T.); +#31793=ADVANCED_FACE('',(#28996),#30698,.T.); +#31794=ADVANCED_FACE('',(#28997),#30699,.T.); +#31795=ADVANCED_FACE('',(#28998),#30700,.T.); +#31796=ADVANCED_FACE('',(#28999),#30701,.T.); +#31797=ADVANCED_FACE('',(#29000),#30702,.T.); +#31798=ADVANCED_FACE('',(#29001),#30703,.T.); +#31799=ADVANCED_FACE('',(#29002),#30704,.T.); +#31800=ADVANCED_FACE('',(#29003),#30705,.T.); +#31801=ADVANCED_FACE('',(#29004),#30706,.T.); +#31802=ADVANCED_FACE('',(#29005),#30707,.T.); +#31803=ADVANCED_FACE('',(#29006),#30708,.T.); +#31804=ADVANCED_FACE('',(#29007),#30709,.T.); +#31805=ADVANCED_FACE('',(#29008),#30710,.T.); +#31806=ADVANCED_FACE('',(#29009),#30711,.T.); +#31807=ADVANCED_FACE('',(#29010),#30712,.T.); +#31808=ADVANCED_FACE('',(#29011),#30713,.F.); +#31809=ADVANCED_FACE('',(#29012),#30714,.F.); +#31810=ADVANCED_FACE('',(#29013),#30715,.F.); +#31811=ADVANCED_FACE('',(#29014),#30716,.F.); +#31812=ADVANCED_FACE('',(#29015),#30717,.F.); +#31813=ADVANCED_FACE('',(#29016),#30718,.F.); +#31814=ADVANCED_FACE('',(#29017),#30719,.F.); +#31815=ADVANCED_FACE('',(#29018),#30720,.F.); +#31816=ADVANCED_FACE('',(#29019),#30721,.F.); +#31817=ADVANCED_FACE('',(#29020),#30722,.F.); +#31818=ADVANCED_FACE('',(#29021),#30723,.F.); +#31819=ADVANCED_FACE('',(#29022),#30724,.F.); +#31820=ADVANCED_FACE('',(#29023),#30725,.F.); +#31821=ADVANCED_FACE('',(#29024),#30726,.F.); +#31822=ADVANCED_FACE('',(#29025),#30727,.F.); +#31823=ADVANCED_FACE('',(#29026),#30728,.F.); +#31824=ADVANCED_FACE('',(#29027),#30729,.F.); +#31825=ADVANCED_FACE('',(#29028),#30730,.F.); +#31826=ADVANCED_FACE('',(#29029),#30731,.F.); +#31827=ADVANCED_FACE('',(#29030),#30732,.F.); +#31828=ADVANCED_FACE('',(#29031),#30733,.F.); +#31829=ADVANCED_FACE('',(#29032),#30734,.F.); +#31830=ADVANCED_FACE('',(#29033),#30735,.F.); +#31831=ADVANCED_FACE('',(#29034),#30736,.F.); +#31832=ADVANCED_FACE('',(#29035),#30737,.F.); +#31833=ADVANCED_FACE('',(#29036),#30738,.F.); +#31834=ADVANCED_FACE('',(#29037),#30739,.F.); +#31835=ADVANCED_FACE('',(#29038),#30740,.F.); +#31836=ADVANCED_FACE('',(#29039),#30741,.F.); +#31837=ADVANCED_FACE('',(#29040),#30742,.F.); +#31838=ADVANCED_FACE('',(#29041),#30743,.F.); +#31839=ADVANCED_FACE('',(#29042),#30744,.F.); +#31840=ADVANCED_FACE('',(#29043),#30745,.F.); +#31841=ADVANCED_FACE('',(#29044),#30746,.F.); +#31842=ADVANCED_FACE('',(#29045),#30747,.F.); +#31843=ADVANCED_FACE('',(#29046),#30748,.F.); +#31844=ADVANCED_FACE('',(#29047),#30749,.F.); +#31845=ADVANCED_FACE('',(#29048),#30750,.F.); +#31846=ADVANCED_FACE('',(#29049),#30751,.F.); +#31847=ADVANCED_FACE('',(#29050),#30752,.F.); +#31848=ADVANCED_FACE('',(#29051),#30753,.F.); +#31849=ADVANCED_FACE('',(#29052),#30754,.F.); +#31850=ADVANCED_FACE('',(#29053),#30755,.F.); +#31851=ADVANCED_FACE('',(#29054),#30756,.F.); +#31852=ADVANCED_FACE('',(#29055),#30757,.F.); +#31853=ADVANCED_FACE('',(#29056),#30758,.F.); +#31854=ADVANCED_FACE('',(#29057),#30759,.F.); +#31855=ADVANCED_FACE('',(#29058),#30760,.F.); +#31856=ADVANCED_FACE('',(#29059),#30761,.F.); +#31857=ADVANCED_FACE('',(#29060),#30762,.F.); +#31858=ADVANCED_FACE('',(#29061),#30763,.F.); +#31859=ADVANCED_FACE('',(#29062),#30764,.F.); +#31860=ADVANCED_FACE('',(#29063),#30765,.T.); +#31861=ADVANCED_FACE('',(#29064),#30766,.F.); +#31862=ADVANCED_FACE('',(#29065),#30767,.F.); +#31863=ADVANCED_FACE('',(#29066),#30768,.F.); +#31864=ADVANCED_FACE('',(#29067),#30769,.T.); +#31865=ADVANCED_FACE('',(#29068),#30770,.F.); +#31866=ADVANCED_FACE('',(#29069),#30771,.F.); +#31867=ADVANCED_FACE('',(#29070),#30772,.F.); +#31868=ADVANCED_FACE('',(#29071),#30773,.F.); +#31869=ADVANCED_FACE('',(#29072),#30774,.T.); +#31870=ADVANCED_FACE('',(#29073),#30775,.T.); +#31871=ADVANCED_FACE('',(#29074),#30776,.T.); +#31872=ADVANCED_FACE('',(#29075),#30777,.T.); +#31873=ADVANCED_FACE('',(#29076),#30778,.T.); +#31874=ADVANCED_FACE('',(#29077),#30779,.T.); +#31875=ADVANCED_FACE('',(#29078),#30780,.T.); +#31876=ADVANCED_FACE('',(#29079),#30781,.T.); +#31877=ADVANCED_FACE('',(#29080),#30782,.F.); +#31878=ADVANCED_FACE('',(#29081),#30783,.F.); +#31879=ADVANCED_FACE('',(#29082),#30784,.F.); +#31880=ADVANCED_FACE('',(#29083),#30785,.T.); +#31881=ADVANCED_FACE('',(#29084),#30786,.T.); +#31882=ADVANCED_FACE('',(#29085),#30787,.T.); +#31883=ADVANCED_FACE('',(#29086),#30788,.T.); +#31884=ADVANCED_FACE('',(#29087),#30789,.F.); +#31885=ADVANCED_FACE('',(#29088),#30790,.F.); +#31886=ADVANCED_FACE('',(#29089),#30791,.F.); +#31887=ADVANCED_FACE('',(#29090),#30792,.F.); +#31888=ADVANCED_FACE('',(#29091),#30793,.F.); +#31889=ADVANCED_FACE('',(#29092),#30794,.F.); +#31890=ADVANCED_FACE('',(#29093),#30795,.F.); +#31891=ADVANCED_FACE('',(#29094),#30796,.F.); +#31892=ADVANCED_FACE('',(#29095),#30797,.F.); +#31893=ADVANCED_FACE('',(#29096),#30798,.F.); +#31894=ADVANCED_FACE('',(#29097),#30799,.F.); +#31895=ADVANCED_FACE('',(#29098),#30800,.F.); +#31896=ADVANCED_FACE('',(#29099),#30801,.F.); +#31897=ADVANCED_FACE('',(#29100),#30802,.F.); +#31898=ADVANCED_FACE('',(#29101),#30803,.F.); +#31899=ADVANCED_FACE('',(#29102),#30804,.F.); +#31900=ADVANCED_FACE('',(#29103),#30805,.F.); +#31901=ADVANCED_FACE('',(#29104),#30806,.F.); +#31902=ADVANCED_FACE('',(#29105),#30807,.F.); +#31903=ADVANCED_FACE('',(#29106),#30808,.F.); +#31904=ADVANCED_FACE('',(#29107),#30809,.F.); +#31905=ADVANCED_FACE('',(#29108),#30810,.F.); +#31906=ADVANCED_FACE('',(#29109),#30811,.F.); +#31907=ADVANCED_FACE('',(#29110),#30812,.F.); +#31908=ADVANCED_FACE('',(#29111),#30813,.F.); +#31909=ADVANCED_FACE('',(#29112),#30814,.F.); +#31910=ADVANCED_FACE('',(#29113),#30815,.F.); +#31911=ADVANCED_FACE('',(#29114),#30816,.F.); +#31912=ADVANCED_FACE('',(#29115),#30817,.F.); +#31913=ADVANCED_FACE('',(#29116),#30818,.F.); +#31914=ADVANCED_FACE('',(#29117),#30819,.F.); +#31915=ADVANCED_FACE('',(#29118),#30820,.F.); +#31916=ADVANCED_FACE('',(#29119),#30821,.F.); +#31917=ADVANCED_FACE('',(#29120),#30822,.F.); +#31918=ADVANCED_FACE('',(#29121),#30823,.F.); +#31919=ADVANCED_FACE('',(#29122),#30824,.F.); +#31920=ADVANCED_FACE('',(#29123),#30825,.F.); +#31921=ADVANCED_FACE('',(#29124),#30826,.F.); +#31922=ADVANCED_FACE('',(#29125),#30827,.F.); +#31923=ADVANCED_FACE('',(#29126),#30828,.F.); +#31924=ADVANCED_FACE('',(#29127),#30829,.F.); +#31925=ADVANCED_FACE('',(#29128),#30830,.F.); +#31926=ADVANCED_FACE('',(#29129),#30831,.F.); +#31927=ADVANCED_FACE('',(#29130),#30832,.F.); +#31928=ADVANCED_FACE('',(#29131),#30833,.T.); +#31929=ADVANCED_FACE('',(#29132),#30834,.F.); +#31930=ADVANCED_FACE('',(#29133),#30835,.T.); +#31931=ADVANCED_FACE('',(#29134),#30836,.F.); +#31932=ADVANCED_FACE('',(#29135),#30837,.T.); +#31933=ADVANCED_FACE('',(#29136),#30838,.F.); +#31934=ADVANCED_FACE('',(#29137),#30839,.T.); +#31935=ADVANCED_FACE('',(#29138),#30840,.F.); +#31936=ADVANCED_FACE('',(#29139),#30841,.T.); +#31937=ADVANCED_FACE('',(#29140),#30842,.F.); +#31938=ADVANCED_FACE('',(#29141),#30843,.T.); +#31939=ADVANCED_FACE('',(#29142),#30844,.F.); +#31940=ADVANCED_FACE('',(#29143),#30845,.T.); +#31941=ADVANCED_FACE('',(#29144),#30846,.F.); +#31942=ADVANCED_FACE('',(#29145),#30847,.T.); +#31943=ADVANCED_FACE('',(#29146),#30848,.F.); +#31944=ADVANCED_FACE('',(#29147),#30849,.T.); +#31945=ADVANCED_FACE('',(#29148),#30850,.F.); +#31946=ADVANCED_FACE('',(#29149),#30851,.T.); +#31947=ADVANCED_FACE('',(#29150),#30852,.F.); +#31948=ADVANCED_FACE('',(#29151),#30853,.T.); +#31949=ADVANCED_FACE('',(#29152),#30854,.F.); +#31950=ADVANCED_FACE('',(#29153),#30855,.T.); +#31951=ADVANCED_FACE('',(#29154),#30856,.F.); +#31952=ADVANCED_FACE('',(#29155),#30857,.T.); +#31953=ADVANCED_FACE('',(#29156),#30858,.F.); +#31954=ADVANCED_FACE('',(#29157),#30859,.T.); +#31955=ADVANCED_FACE('',(#29158),#30860,.F.); +#31956=ADVANCED_FACE('',(#29159),#30861,.T.); +#31957=ADVANCED_FACE('',(#29160),#30862,.F.); +#31958=ADVANCED_FACE('',(#29161),#30863,.T.); +#31959=ADVANCED_FACE('',(#29162),#30864,.F.); +#31960=ADVANCED_FACE('',(#29163),#30865,.T.); +#31961=ADVANCED_FACE('',(#29164),#30866,.F.); +#31962=ADVANCED_FACE('',(#29165),#30867,.T.); +#31963=ADVANCED_FACE('',(#29166),#30868,.F.); +#31964=ADVANCED_FACE('',(#29167),#30869,.T.); +#31965=ADVANCED_FACE('',(#29168),#30870,.F.); +#31966=ADVANCED_FACE('',(#29169),#30871,.F.); +#31967=ADVANCED_FACE('',(#29170),#30872,.T.); +#31968=ADVANCED_FACE('',(#29171),#30873,.F.); +#31969=ADVANCED_FACE('',(#29172),#30874,.F.); +#31970=ADVANCED_FACE('',(#29173),#357,.T.); +#31971=ADVANCED_FACE('',(#29174),#30875,.F.); +#31972=ADVANCED_FACE('',(#29175),#30876,.F.); +#31973=ADVANCED_FACE('',(#29176),#358,.T.); +#31974=ADVANCED_FACE('',(#29177),#30877,.F.); +#31975=ADVANCED_FACE('',(#29178),#30878,.F.); +#31976=ADVANCED_FACE('',(#29179),#359,.T.); +#31977=ADVANCED_FACE('',(#29180),#30879,.F.); +#31978=ADVANCED_FACE('',(#29181),#30880,.F.); +#31979=ADVANCED_FACE('',(#29182),#360,.T.); +#31980=ADVANCED_FACE('',(#29183),#30881,.F.); +#31981=ADVANCED_FACE('',(#29184),#30882,.F.); +#31982=ADVANCED_FACE('',(#29185),#361,.T.); +#31983=ADVANCED_FACE('',(#29186),#30883,.F.); +#31984=ADVANCED_FACE('',(#29187),#30884,.F.); +#31985=ADVANCED_FACE('',(#29188),#362,.T.); +#31986=ADVANCED_FACE('',(#29189),#30885,.F.); +#31987=ADVANCED_FACE('',(#29190),#30886,.F.); +#31988=ADVANCED_FACE('',(#29191),#363,.T.); +#31989=ADVANCED_FACE('',(#29192),#30887,.F.); +#31990=ADVANCED_FACE('',(#29193),#30888,.F.); +#31991=ADVANCED_FACE('',(#29194),#364,.T.); +#31992=ADVANCED_FACE('',(#29195),#30889,.F.); +#31993=ADVANCED_FACE('',(#29196),#30890,.F.); +#31994=ADVANCED_FACE('',(#29197),#365,.T.); +#31995=ADVANCED_FACE('',(#29198),#30891,.F.); +#31996=ADVANCED_FACE('',(#29199),#30892,.F.); +#31997=ADVANCED_FACE('',(#29200),#366,.T.); +#31998=ADVANCED_FACE('',(#29201),#30893,.F.); +#31999=ADVANCED_FACE('',(#29202),#30894,.F.); +#32000=ADVANCED_FACE('',(#29203),#367,.T.); +#32001=ADVANCED_FACE('',(#29204),#30895,.F.); +#32002=ADVANCED_FACE('',(#29205),#30896,.F.); +#32003=ADVANCED_FACE('',(#29206),#368,.T.); +#32004=ADVANCED_FACE('',(#29207),#30897,.F.); +#32005=ADVANCED_FACE('',(#29208),#30898,.F.); +#32006=ADVANCED_FACE('',(#29209),#369,.T.); +#32007=ADVANCED_FACE('',(#29210),#30899,.F.); +#32008=ADVANCED_FACE('',(#29211),#30900,.F.); +#32009=ADVANCED_FACE('',(#29212),#370,.T.); +#32010=ADVANCED_FACE('',(#29213),#30901,.F.); +#32011=ADVANCED_FACE('',(#29214),#30902,.F.); +#32012=ADVANCED_FACE('',(#29215),#371,.T.); +#32013=ADVANCED_FACE('',(#29216),#30903,.F.); +#32014=ADVANCED_FACE('',(#29217),#30904,.F.); +#32015=ADVANCED_FACE('',(#29218),#372,.T.); +#32016=ADVANCED_FACE('',(#29219),#30905,.F.); +#32017=ADVANCED_FACE('',(#29220),#30906,.F.); +#32018=ADVANCED_FACE('',(#29221),#373,.T.); +#32019=ADVANCED_FACE('',(#29222),#30907,.F.); +#32020=ADVANCED_FACE('',(#29223),#30908,.F.); +#32021=ADVANCED_FACE('',(#29224),#374,.T.); +#32022=ADVANCED_FACE('',(#29225),#30909,.F.); +#32023=ADVANCED_FACE('',(#29226),#30910,.F.); +#32024=ADVANCED_FACE('',(#29227),#375,.T.); +#32025=ADVANCED_FACE('',(#29228),#376,.T.); +#32026=ADVANCED_FACE('',(#29229),#30911,.F.); +#32027=ADVANCED_FACE('',(#29230),#30912,.F.); +#32028=ADVANCED_FACE('',(#29231),#30913,.F.); +#32029=ADVANCED_FACE('',(#29232),#30914,.F.); +#32030=ADVANCED_FACE('',(#29233),#30915,.T.); +#32031=ADVANCED_FACE('',(#29234),#30916,.T.); +#32032=ADVANCED_FACE('',(#29235),#30917,.T.); +#32033=ADVANCED_FACE('',(#29236),#30918,.F.); +#32034=ADVANCED_FACE('',(#29237,#29238),#377,.T.); +#32035=ADVANCED_FACE('',(#29239,#29240),#356,.T.); +#32036=ADVANCED_FACE('',(#29241),#30919,.F.); +#32037=ADVANCED_FACE('',(#29242),#30920,.T.); +#32038=ADVANCED_FACE('',(#29243),#378,.T.); +#32039=ADVANCED_FACE('',(#29244),#30921,.T.); +#32040=ADVANCED_FACE('',(#29245),#379,.T.); +#32041=ADVANCED_FACE('',(#29246),#30922,.T.); +#32042=ADVANCED_FACE('',(#29247),#380,.T.); +#32043=ADVANCED_FACE('',(#29248),#30923,.T.); +#32044=ADVANCED_FACE('',(#29249),#381,.T.); +#32045=ADVANCED_FACE('',(#29250),#30924,.F.); +#32046=ADVANCED_FACE('',(#29251),#30925,.T.); +#32047=ADVANCED_FACE('',(#29252),#382,.F.); +#32048=ADVANCED_FACE('',(#29253),#383,.F.); +#32049=ADVANCED_FACE('',(#29254),#384,.T.); +#32050=ADVANCED_FACE('',(#29255),#385,.F.); +#32051=ADVANCED_FACE('',(#29256),#386,.F.); +#32052=ADVANCED_FACE('',(#29257),#30926,.T.); +#32053=ADVANCED_FACE('',(#29258),#387,.F.); +#32054=ADVANCED_FACE('',(#29259),#30927,.T.); +#32055=ADVANCED_FACE('',(#29260),#30928,.T.); +#32056=ADVANCED_FACE('',(#29261),#30929,.F.); +#32057=ADVANCED_FACE('',(#29262),#30930,.T.); +#32058=ADVANCED_FACE('',(#29263),#388,.F.); +#32059=ADVANCED_FACE('',(#29264),#389,.F.); +#32060=ADVANCED_FACE('',(#29265),#390,.T.); +#32061=ADVANCED_FACE('',(#29266),#391,.F.); +#32062=ADVANCED_FACE('',(#29267),#392,.F.); +#32063=ADVANCED_FACE('',(#29268),#30931,.T.); +#32064=ADVANCED_FACE('',(#29269),#393,.F.); +#32065=ADVANCED_FACE('',(#29270),#30932,.T.); +#32066=ADVANCED_FACE('',(#29271),#394,.F.); +#32067=ADVANCED_FACE('',(#29272),#30933,.F.); +#32068=ADVANCED_FACE('',(#29273),#30934,.T.); +#32069=ADVANCED_FACE('',(#29274),#30935,.T.); +#32070=ADVANCED_FACE('',(#29275),#30936,.F.); +#32071=ADVANCED_FACE('',(#29276),#395,.F.); +#32072=ADVANCED_FACE('',(#29277),#30937,.T.); +#32073=ADVANCED_FACE('',(#29278),#396,.F.); +#32074=ADVANCED_FACE('',(#29279),#30938,.T.); +#32075=ADVANCED_FACE('',(#29280),#30939,.T.); +#32076=ADVANCED_FACE('',(#29281),#30940,.F.); +#32077=ADVANCED_FACE('',(#29282),#30941,.T.); +#32078=ADVANCED_FACE('',(#29283),#397,.F.); +#32079=ADVANCED_FACE('',(#29284),#398,.F.); +#32080=ADVANCED_FACE('',(#29285),#30942,.F.); +#32081=ADVANCED_FACE('',(#29286),#30943,.F.); +#32082=ADVANCED_FACE('',(#29287),#30944,.F.); +#32083=ADVANCED_FACE('',(#29288),#30945,.F.); +#32084=ADVANCED_FACE('',(#29289),#30946,.F.); +#32085=ADVANCED_FACE('',(#29290),#30947,.T.); +#32086=ADVANCED_FACE('',(#29291),#30948,.T.); +#32087=ADVANCED_FACE('',(#29292),#30949,.F.); +#32088=ADVANCED_FACE('',(#29293),#30950,.T.); +#32089=ADVANCED_FACE('',(#29294),#30951,.T.); +#32090=ADVANCED_FACE('',(#29295),#30952,.F.); +#32091=ADVANCED_FACE('',(#29296),#30953,.F.); +#32092=ADVANCED_FACE('',(#29297),#30954,.F.); +#32093=ADVANCED_FACE('',(#29298),#30955,.F.); +#32094=ADVANCED_FACE('',(#29299),#30956,.F.); +#32095=ADVANCED_FACE('',(#29300),#30957,.F.); +#32096=ADVANCED_FACE('',(#29301),#30958,.F.); +#32097=ADVANCED_FACE('',(#29302),#30959,.F.); +#32098=ADVANCED_FACE('',(#29303),#30960,.F.); +#32099=ADVANCED_FACE('',(#29304),#30961,.F.); +#32100=ADVANCED_FACE('',(#29305),#30962,.F.); +#32101=ADVANCED_FACE('',(#29306),#30963,.F.); +#32102=ADVANCED_FACE('',(#29307),#30964,.F.); +#32103=ADVANCED_FACE('',(#29308),#30965,.F.); +#32104=ADVANCED_FACE('',(#29309),#30966,.F.); +#32105=ADVANCED_FACE('',(#29310),#30967,.F.); +#32106=ADVANCED_FACE('',(#29311),#30968,.F.); +#32107=ADVANCED_FACE('',(#29312),#30969,.F.); +#32108=ADVANCED_FACE('',(#29313),#30970,.F.); +#32109=ADVANCED_FACE('',(#29314),#30971,.F.); +#32110=ADVANCED_FACE('',(#29315),#30972,.F.); +#32111=ADVANCED_FACE('',(#29316),#30973,.F.); +#32112=ADVANCED_FACE('',(#29317),#30974,.F.); +#32113=ADVANCED_FACE('',(#29318),#30975,.F.); +#32114=ADVANCED_FACE('',(#29319),#30976,.F.); +#32115=ADVANCED_FACE('',(#29320),#30977,.F.); +#32116=ADVANCED_FACE('',(#29321),#30978,.F.); +#32117=ADVANCED_FACE('',(#29322),#30979,.F.); +#32118=ADVANCED_FACE('',(#29323),#30980,.F.); +#32119=ADVANCED_FACE('',(#29324),#30981,.F.); +#32120=ADVANCED_FACE('',(#29325),#30982,.F.); +#32121=ADVANCED_FACE('',(#29326),#30983,.F.); +#32122=ADVANCED_FACE('',(#29327),#30984,.F.); +#32123=ADVANCED_FACE('',(#29328),#30985,.F.); +#32124=ADVANCED_FACE('',(#29329),#30986,.F.); +#32125=ADVANCED_FACE('',(#29330),#30987,.F.); +#32126=ADVANCED_FACE('',(#29331),#30988,.F.); +#32127=ADVANCED_FACE('',(#29332),#30989,.F.); +#32128=ADVANCED_FACE('',(#29333),#30990,.F.); +#32129=ADVANCED_FACE('',(#29334),#30991,.F.); +#32130=ADVANCED_FACE('',(#29335),#30992,.F.); +#32131=ADVANCED_FACE('',(#29336),#30993,.F.); +#32132=ADVANCED_FACE('',(#29337),#30994,.F.); +#32133=ADVANCED_FACE('',(#29338),#30995,.F.); +#32134=ADVANCED_FACE('',(#29339),#30996,.F.); +#32135=ADVANCED_FACE('',(#29340),#30997,.F.); +#32136=ADVANCED_FACE('',(#29341),#30998,.F.); +#32137=ADVANCED_FACE('',(#29342),#30999,.F.); +#32138=ADVANCED_FACE('',(#29343),#31000,.F.); +#32139=ADVANCED_FACE('',(#29344),#31001,.F.); +#32140=ADVANCED_FACE('',(#29345),#31002,.F.); +#32141=ADVANCED_FACE('',(#29346),#31003,.F.); +#32142=ADVANCED_FACE('',(#29347),#31004,.F.); +#32143=ADVANCED_FACE('',(#29348),#31005,.F.); +#32144=ADVANCED_FACE('',(#29349),#31006,.F.); +#32145=ADVANCED_FACE('',(#29350),#31007,.F.); +#32146=ADVANCED_FACE('',(#29351),#31008,.F.); +#32147=ADVANCED_FACE('',(#29352),#31009,.F.); +#32148=ADVANCED_FACE('',(#29353),#31010,.F.); +#32149=ADVANCED_FACE('',(#29354),#31011,.F.); +#32150=ADVANCED_FACE('',(#29355),#31012,.F.); +#32151=ADVANCED_FACE('',(#29356),#31013,.F.); +#32152=ADVANCED_FACE('',(#29357),#31014,.F.); +#32153=ADVANCED_FACE('',(#29358),#31015,.F.); +#32154=ADVANCED_FACE('',(#29359),#31016,.F.); +#32155=ADVANCED_FACE('',(#29360),#31017,.F.); +#32156=ADVANCED_FACE('',(#29361),#31018,.F.); +#32157=ADVANCED_FACE('',(#29362),#31019,.F.); +#32158=ADVANCED_FACE('',(#29363),#31020,.F.); +#32159=ADVANCED_FACE('',(#29364),#31021,.F.); +#32160=ADVANCED_FACE('',(#29365),#31022,.F.); +#32161=ADVANCED_FACE('',(#29366),#31023,.F.); +#32162=ADVANCED_FACE('',(#29367),#31024,.F.); +#32163=ADVANCED_FACE('',(#29368),#31025,.F.); +#32164=ADVANCED_FACE('',(#29369),#31026,.F.); +#32165=ADVANCED_FACE('',(#29370),#31027,.F.); +#32166=ADVANCED_FACE('',(#29371),#31028,.F.); +#32167=ADVANCED_FACE('',(#29372),#31029,.F.); +#32168=ADVANCED_FACE('',(#29373),#31030,.F.); +#32169=ADVANCED_FACE('',(#29374),#31031,.F.); +#32170=ADVANCED_FACE('',(#29375),#31032,.F.); +#32171=ADVANCED_FACE('',(#29376),#31033,.F.); +#32172=ADVANCED_FACE('',(#29377),#31034,.F.); +#32173=ADVANCED_FACE('',(#29378),#31035,.F.); +#32174=ADVANCED_FACE('',(#29379),#31036,.F.); +#32175=ADVANCED_FACE('',(#29380),#31037,.F.); +#32176=ADVANCED_FACE('',(#29381),#31038,.F.); +#32177=ADVANCED_FACE('',(#29382),#31039,.F.); +#32178=ADVANCED_FACE('',(#29383),#31040,.F.); +#32179=ADVANCED_FACE('',(#29384),#31041,.F.); +#32180=ADVANCED_FACE('',(#29385),#31042,.F.); +#32181=ADVANCED_FACE('',(#29386),#31043,.F.); +#32182=ADVANCED_FACE('',(#29387),#31044,.F.); +#32183=ADVANCED_FACE('',(#29388),#31045,.F.); +#32184=ADVANCED_FACE('',(#29389),#31046,.F.); +#32185=ADVANCED_FACE('',(#29390),#31047,.F.); +#32186=ADVANCED_FACE('',(#29391),#31048,.F.); +#32187=ADVANCED_FACE('',(#29392),#399,.T.); +#32188=ADVANCED_FACE('',(#29393),#400,.T.); +#32189=ADVANCED_FACE('',(#29394),#401,.T.); +#32190=ADVANCED_FACE('',(#29395),#402,.T.); +#32191=ADVANCED_FACE('',(#29396),#403,.T.); +#32192=ADVANCED_FACE('',(#29397),#404,.T.); +#32193=ADVANCED_FACE('',(#29398),#405,.T.); +#32194=ADVANCED_FACE('',(#29399),#406,.T.); +#32195=ADVANCED_FACE('',(#29400),#407,.T.); +#32196=ADVANCED_FACE('',(#29401),#408,.T.); +#32197=ADVANCED_FACE('',(#29402),#409,.T.); +#32198=ADVANCED_FACE('',(#29403),#410,.T.); +#32199=ADVANCED_FACE('',(#29404),#411,.T.); +#32200=ADVANCED_FACE('',(#29405),#412,.T.); +#32201=ADVANCED_FACE('',(#29406),#413,.T.); +#32202=ADVANCED_FACE('',(#29407),#414,.T.); +#32203=ADVANCED_FACE('',(#29408),#415,.T.); +#32204=ADVANCED_FACE('',(#29409),#416,.T.); +#32205=ADVANCED_FACE('',(#29410),#417,.T.); +#32206=ADVANCED_FACE('',(#29411),#418,.T.); +#32207=ADVANCED_FACE('',(#29412),#419,.T.); +#32208=ADVANCED_FACE('',(#29413),#420,.T.); +#32209=ADVANCED_FACE('',(#29414),#421,.T.); +#32210=ADVANCED_FACE('',(#29415),#422,.T.); +#32211=ADVANCED_FACE('',(#29416),#423,.T.); +#32212=ADVANCED_FACE('',(#29417),#424,.T.); +#32213=ADVANCED_FACE('',(#29418),#425,.T.); +#32214=ADVANCED_FACE('',(#29419),#426,.T.); +#32215=ADVANCED_FACE('',(#29420),#427,.T.); +#32216=ADVANCED_FACE('',(#29421),#428,.T.); +#32217=ADVANCED_FACE('',(#29422),#429,.T.); +#32218=ADVANCED_FACE('',(#29423),#430,.T.); +#32219=ADVANCED_FACE('',(#29424),#431,.T.); +#32220=ADVANCED_FACE('',(#29425),#432,.T.); +#32221=ADVANCED_FACE('',(#29426),#433,.T.); +#32222=ADVANCED_FACE('',(#29427),#434,.T.); +#32223=ADVANCED_FACE('',(#29428),#435,.T.); +#32224=ADVANCED_FACE('',(#29429),#436,.T.); +#32225=ADVANCED_FACE('',(#29430),#31049,.F.); +#32226=ADVANCED_FACE('',(#29431),#31050,.F.); +#32227=ADVANCED_FACE('',(#29432),#31051,.F.); +#32228=ADVANCED_FACE('',(#29433),#31052,.F.); +#32229=ADVANCED_FACE('',(#29434),#31053,.F.); +#32230=ADVANCED_FACE('',(#29435),#31054,.F.); +#32231=ADVANCED_FACE('',(#29436),#31055,.F.); +#32232=ADVANCED_FACE('',(#29437),#31056,.F.); +#32233=ADVANCED_FACE('',(#29438),#31057,.F.); +#32234=ADVANCED_FACE('',(#29439),#31058,.F.); +#32235=ADVANCED_FACE('',(#29440),#31059,.F.); +#32236=ADVANCED_FACE('',(#29441),#31060,.F.); +#32237=ADVANCED_FACE('',(#29442),#31061,.F.); +#32238=ADVANCED_FACE('',(#29443),#31062,.F.); +#32239=ADVANCED_FACE('',(#29444),#31063,.F.); +#32240=ADVANCED_FACE('',(#29445),#31064,.F.); +#32241=ADVANCED_FACE('',(#29446),#31065,.F.); +#32242=ADVANCED_FACE('',(#29447),#31066,.F.); +#32243=ADVANCED_FACE('',(#29448),#31067,.F.); +#32244=ADVANCED_FACE('',(#29449),#437,.F.); +#32245=ADVANCED_FACE('',(#29450),#438,.F.); +#32246=ADVANCED_FACE('',(#29451),#439,.F.); +#32247=ADVANCED_FACE('',(#29452),#440,.F.); +#32248=ADVANCED_FACE('',(#29453),#441,.F.); +#32249=ADVANCED_FACE('',(#29454),#442,.F.); +#32250=ADVANCED_FACE('',(#29455),#443,.F.); +#32251=ADVANCED_FACE('',(#29456),#444,.F.); +#32252=ADVANCED_FACE('',(#29457),#445,.F.); +#32253=ADVANCED_FACE('',(#29458),#446,.F.); +#32254=ADVANCED_FACE('',(#29459),#447,.F.); +#32255=ADVANCED_FACE('',(#29460),#448,.F.); +#32256=ADVANCED_FACE('',(#29461),#449,.F.); +#32257=ADVANCED_FACE('',(#29462),#450,.F.); +#32258=ADVANCED_FACE('',(#29463),#451,.F.); +#32259=ADVANCED_FACE('',(#29464),#452,.F.); +#32260=ADVANCED_FACE('',(#29465),#453,.F.); +#32261=ADVANCED_FACE('',(#29466),#454,.F.); +#32262=ADVANCED_FACE('',(#29467),#455,.F.); +#32263=ADVANCED_FACE('',(#29468),#456,.F.); +#32264=ADVANCED_FACE('',(#29469),#457,.F.); +#32265=ADVANCED_FACE('',(#29470),#458,.F.); +#32266=ADVANCED_FACE('',(#29471),#459,.F.); +#32267=ADVANCED_FACE('',(#29472),#460,.F.); +#32268=ADVANCED_FACE('',(#29473),#461,.F.); +#32269=ADVANCED_FACE('',(#29474),#462,.F.); +#32270=ADVANCED_FACE('',(#29475),#463,.F.); +#32271=ADVANCED_FACE('',(#29476),#464,.F.); +#32272=ADVANCED_FACE('',(#29477),#465,.F.); +#32273=ADVANCED_FACE('',(#29478),#466,.F.); +#32274=ADVANCED_FACE('',(#29479),#467,.F.); +#32275=ADVANCED_FACE('',(#29480),#468,.F.); +#32276=ADVANCED_FACE('',(#29481),#469,.F.); +#32277=ADVANCED_FACE('',(#29482),#470,.F.); +#32278=ADVANCED_FACE('',(#29483),#471,.F.); +#32279=ADVANCED_FACE('',(#29484),#472,.F.); +#32280=ADVANCED_FACE('',(#29485),#473,.F.); +#32281=ADVANCED_FACE('',(#29486),#474,.F.); +#32282=ADVANCED_FACE('',(#29487),#31068,.F.); +#32283=ADVANCED_FACE('',(#29488),#475,.T.); +#32284=ADVANCED_FACE('',(#29489),#476,.T.); +#32285=ADVANCED_FACE('',(#29490),#31069,.F.); +#32286=ADVANCED_FACE('',(#29491),#477,.F.); +#32287=ADVANCED_FACE('',(#29492),#478,.F.); +#32288=ADVANCED_FACE('',(#29493),#31070,.F.); +#32289=ADVANCED_FACE('',(#29494),#31071,.F.); +#32290=ADVANCED_FACE('',(#29495),#31072,.F.); +#32291=ADVANCED_FACE('',(#29496),#31073,.F.); +#32292=ADVANCED_FACE('',(#29497),#31074,.F.); +#32293=ADVANCED_FACE('',(#29498),#31075,.F.); +#32294=ADVANCED_FACE('',(#29499),#31076,.F.); +#32295=ADVANCED_FACE('',(#29500),#31077,.F.); +#32296=ADVANCED_FACE('',(#29501),#31078,.F.); +#32297=ADVANCED_FACE('',(#29502),#31079,.F.); +#32298=ADVANCED_FACE('',(#29503),#31080,.F.); +#32299=ADVANCED_FACE('',(#29504),#31081,.F.); +#32300=ADVANCED_FACE('',(#29505),#31082,.F.); +#32301=ADVANCED_FACE('',(#29506),#31083,.F.); +#32302=ADVANCED_FACE('',(#29507),#31084,.F.); +#32303=ADVANCED_FACE('',(#29508),#31085,.F.); +#32304=ADVANCED_FACE('',(#29509),#31086,.F.); +#32305=ADVANCED_FACE('',(#29510),#31087,.F.); +#32306=ADVANCED_FACE('',(#29511),#31088,.F.); +#32307=ADVANCED_FACE('',(#29512),#31089,.F.); +#32308=ADVANCED_FACE('',(#29513),#31090,.F.); +#32309=ADVANCED_FACE('',(#29514),#31091,.F.); +#32310=ADVANCED_FACE('',(#29515),#31092,.F.); +#32311=ADVANCED_FACE('',(#29516),#31093,.F.); +#32312=ADVANCED_FACE('',(#29517),#31094,.F.); +#32313=ADVANCED_FACE('',(#29518),#31095,.F.); +#32314=ADVANCED_FACE('',(#29519),#31096,.F.); +#32315=ADVANCED_FACE('',(#29520),#31097,.F.); +#32316=ADVANCED_FACE('',(#29521),#31098,.F.); +#32317=ADVANCED_FACE('',(#29522),#31099,.F.); +#32318=ADVANCED_FACE('',(#29523),#31100,.F.); +#32319=ADVANCED_FACE('',(#29524),#31101,.F.); +#32320=ADVANCED_FACE('',(#29525),#31102,.F.); +#32321=ADVANCED_FACE('',(#29526),#31103,.F.); +#32322=ADVANCED_FACE('',(#29527),#31104,.F.); +#32323=ADVANCED_FACE('',(#29528),#31105,.F.); +#32324=ADVANCED_FACE('',(#29529),#31106,.F.); +#32325=ADVANCED_FACE('',(#29530),#31107,.F.); +#32326=ADVANCED_FACE('',(#29531),#31108,.F.); +#32327=ADVANCED_FACE('',(#29532),#31109,.F.); +#32328=ADVANCED_FACE('',(#29533),#31110,.F.); +#32329=ADVANCED_FACE('',(#29534),#31111,.F.); +#32330=ADVANCED_FACE('',(#29535),#31112,.F.); +#32331=ADVANCED_FACE('',(#29536),#31113,.F.); +#32332=ADVANCED_FACE('',(#29537),#31114,.F.); +#32333=ADVANCED_FACE('',(#29538),#31115,.F.); +#32334=ADVANCED_FACE('',(#29539),#31116,.F.); +#32335=ADVANCED_FACE('',(#29540),#31117,.F.); +#32336=ADVANCED_FACE('',(#29541),#31118,.F.); +#32337=ADVANCED_FACE('',(#29542),#31119,.F.); +#32338=ADVANCED_FACE('',(#29543),#31120,.F.); +#32339=ADVANCED_FACE('',(#29544),#31121,.F.); +#32340=ADVANCED_FACE('',(#29545),#31122,.F.); +#32341=ADVANCED_FACE('',(#29546),#31123,.F.); +#32342=ADVANCED_FACE('',(#29547),#31124,.F.); +#32343=ADVANCED_FACE('',(#29548),#31125,.F.); +#32344=ADVANCED_FACE('',(#29549),#31126,.F.); +#32345=ADVANCED_FACE('',(#29550),#31127,.F.); +#32346=ADVANCED_FACE('',(#29551),#31128,.F.); +#32347=ADVANCED_FACE('',(#29552),#31129,.F.); +#32348=ADVANCED_FACE('',(#29553),#31130,.F.); +#32349=ADVANCED_FACE('',(#29554),#31131,.F.); +#32350=ADVANCED_FACE('',(#29555),#31132,.F.); +#32351=ADVANCED_FACE('',(#29556),#31133,.F.); +#32352=ADVANCED_FACE('',(#29557),#31134,.F.); +#32353=ADVANCED_FACE('',(#29558),#31135,.F.); +#32354=ADVANCED_FACE('',(#29559),#31136,.F.); +#32355=ADVANCED_FACE('',(#29560),#31137,.F.); +#32356=ADVANCED_FACE('',(#29561),#31138,.F.); +#32357=ADVANCED_FACE('',(#29562),#31139,.F.); +#32358=ADVANCED_FACE('',(#29563),#31140,.F.); +#32359=ADVANCED_FACE('',(#29564),#31141,.F.); +#32360=ADVANCED_FACE('',(#29565),#31142,.F.); +#32361=ADVANCED_FACE('',(#29566),#31143,.F.); +#32362=ADVANCED_FACE('',(#29567),#31144,.F.); +#32363=ADVANCED_FACE('',(#29568),#31145,.F.); +#32364=ADVANCED_FACE('',(#29569),#31146,.F.); +#32365=ADVANCED_FACE('',(#29570),#31147,.F.); +#32366=ADVANCED_FACE('',(#29571),#31148,.F.); +#32367=ADVANCED_FACE('',(#29572),#31149,.F.); +#32368=ADVANCED_FACE('',(#29573),#31150,.F.); +#32369=ADVANCED_FACE('',(#29574),#31151,.F.); +#32370=ADVANCED_FACE('',(#29575),#31152,.F.); +#32371=ADVANCED_FACE('',(#29576),#31153,.F.); +#32372=ADVANCED_FACE('',(#29577),#31154,.F.); +#32373=ADVANCED_FACE('',(#29578),#31155,.F.); +#32374=ADVANCED_FACE('',(#29579),#31156,.F.); +#32375=ADVANCED_FACE('',(#29580),#31157,.F.); +#32376=ADVANCED_FACE('',(#29581),#31158,.F.); +#32377=ADVANCED_FACE('',(#29582),#31159,.F.); +#32378=ADVANCED_FACE('',(#29583),#31160,.F.); +#32379=ADVANCED_FACE('',(#29584),#31161,.F.); +#32380=ADVANCED_FACE('',(#29585),#31162,.F.); +#32381=ADVANCED_FACE('',(#29586),#31163,.F.); +#32382=ADVANCED_FACE('',(#29587),#31164,.F.); +#32383=ADVANCED_FACE('',(#29588),#31165,.F.); +#32384=ADVANCED_FACE('',(#29589),#31166,.F.); +#32385=ADVANCED_FACE('',(#29590),#31167,.F.); +#32386=ADVANCED_FACE('',(#29591),#31168,.F.); +#32387=ADVANCED_FACE('',(#29592),#31169,.F.); +#32388=ADVANCED_FACE('',(#29593),#31170,.F.); +#32389=ADVANCED_FACE('',(#29594),#31171,.F.); +#32390=ADVANCED_FACE('',(#29595),#31172,.F.); +#32391=ADVANCED_FACE('',(#29596),#31173,.F.); +#32392=ADVANCED_FACE('',(#29597),#31174,.F.); +#32393=ADVANCED_FACE('',(#29598),#31175,.F.); +#32394=ADVANCED_FACE('',(#29599),#31176,.F.); +#32395=ADVANCED_FACE('',(#29600),#31177,.F.); +#32396=ADVANCED_FACE('',(#29601),#31178,.F.); +#32397=ADVANCED_FACE('',(#29602),#31179,.F.); +#32398=ADVANCED_FACE('',(#29603),#31180,.F.); +#32399=ADVANCED_FACE('',(#29604),#31181,.F.); +#32400=ADVANCED_FACE('',(#29605),#31182,.F.); +#32401=ADVANCED_FACE('',(#29606),#31183,.F.); +#32402=ADVANCED_FACE('',(#29607),#31184,.F.); +#32403=ADVANCED_FACE('',(#29608),#31185,.F.); +#32404=ADVANCED_FACE('',(#29609),#31186,.F.); +#32405=ADVANCED_FACE('',(#29610),#31187,.F.); +#32406=ADVANCED_FACE('',(#29611),#31188,.F.); +#32407=ADVANCED_FACE('',(#29612),#31189,.F.); +#32408=ADVANCED_FACE('',(#29613),#31190,.F.); +#32409=ADVANCED_FACE('',(#29614),#31191,.F.); +#32410=ADVANCED_FACE('',(#29615),#31192,.F.); +#32411=ADVANCED_FACE('',(#29616),#31193,.F.); +#32412=ADVANCED_FACE('',(#29617),#31194,.F.); +#32413=ADVANCED_FACE('',(#29618),#31195,.F.); +#32414=ADVANCED_FACE('',(#29619),#31196,.F.); +#32415=ADVANCED_FACE('',(#29620),#31197,.F.); +#32416=ADVANCED_FACE('',(#29621),#31198,.F.); +#32417=ADVANCED_FACE('',(#29622),#31199,.F.); +#32418=ADVANCED_FACE('',(#29623),#31200,.F.); +#32419=ADVANCED_FACE('',(#29624),#31201,.F.); +#32420=ADVANCED_FACE('',(#29625),#31202,.F.); +#32421=ADVANCED_FACE('',(#29626),#31203,.F.); +#32422=ADVANCED_FACE('',(#29627),#31204,.F.); +#32423=ADVANCED_FACE('',(#29628),#31205,.F.); +#32424=ADVANCED_FACE('',(#29629),#31206,.F.); +#32425=ADVANCED_FACE('',(#29630),#31207,.F.); +#32426=ADVANCED_FACE('',(#29631),#31208,.F.); +#32427=ADVANCED_FACE('',(#29632),#31209,.F.); +#32428=ADVANCED_FACE('',(#29633),#31210,.F.); +#32429=ADVANCED_FACE('',(#29634),#31211,.F.); +#32430=ADVANCED_FACE('',(#29635),#31212,.F.); +#32431=ADVANCED_FACE('',(#29636),#31213,.F.); +#32432=ADVANCED_FACE('',(#29637),#31214,.F.); +#32433=ADVANCED_FACE('',(#29638),#31215,.F.); +#32434=ADVANCED_FACE('',(#29639),#31216,.F.); +#32435=ADVANCED_FACE('',(#29640),#31217,.F.); +#32436=ADVANCED_FACE('',(#29641),#31218,.F.); +#32437=ADVANCED_FACE('',(#29642),#31219,.F.); +#32438=ADVANCED_FACE('',(#29643),#31220,.F.); +#32439=ADVANCED_FACE('',(#29644),#31221,.F.); +#32440=ADVANCED_FACE('',(#29645),#31222,.F.); +#32441=ADVANCED_FACE('',(#29646),#31223,.F.); +#32442=ADVANCED_FACE('',(#29647),#31224,.F.); +#32443=ADVANCED_FACE('',(#29648),#31225,.F.); +#32444=ADVANCED_FACE('',(#29649),#31226,.F.); +#32445=ADVANCED_FACE('',(#29650),#31227,.F.); +#32446=ADVANCED_FACE('',(#29651),#31228,.F.); +#32447=ADVANCED_FACE('',(#29652),#31229,.F.); +#32448=ADVANCED_FACE('',(#29653),#31230,.F.); +#32449=ADVANCED_FACE('',(#29654),#31231,.F.); +#32450=ADVANCED_FACE('',(#29655),#31232,.F.); +#32451=ADVANCED_FACE('',(#29656),#31233,.F.); +#32452=ADVANCED_FACE('',(#29657),#31234,.F.); +#32453=ADVANCED_FACE('',(#29658),#31235,.F.); +#32454=ADVANCED_FACE('',(#29659),#31236,.F.); +#32455=ADVANCED_FACE('',(#29660),#31237,.F.); +#32456=ADVANCED_FACE('',(#29661),#31238,.F.); +#32457=ADVANCED_FACE('',(#29662),#31239,.F.); +#32458=ADVANCED_FACE('',(#29663),#31240,.F.); +#32459=ADVANCED_FACE('',(#29664),#31241,.F.); +#32460=ADVANCED_FACE('',(#29665),#31242,.F.); +#32461=ADVANCED_FACE('',(#29666),#31243,.F.); +#32462=ADVANCED_FACE('',(#29667),#31244,.F.); +#32463=ADVANCED_FACE('',(#29668),#31245,.F.); +#32464=ADVANCED_FACE('',(#29669),#31246,.F.); +#32465=ADVANCED_FACE('',(#29670),#31247,.F.); +#32466=ADVANCED_FACE('',(#29671),#31248,.F.); +#32467=ADVANCED_FACE('',(#29672),#31249,.F.); +#32468=ADVANCED_FACE('',(#29673),#31250,.F.); +#32469=ADVANCED_FACE('',(#29674),#31251,.F.); +#32470=ADVANCED_FACE('',(#29675),#31252,.F.); +#32471=ADVANCED_FACE('',(#29676),#31253,.F.); +#32472=ADVANCED_FACE('',(#29677),#31254,.F.); +#32473=ADVANCED_FACE('',(#29678),#31255,.F.); +#32474=ADVANCED_FACE('',(#29679),#31256,.F.); +#32475=ADVANCED_FACE('',(#29680),#31257,.F.); +#32476=ADVANCED_FACE('',(#29681),#31258,.F.); +#32477=ADVANCED_FACE('',(#29682),#31259,.F.); +#32478=ADVANCED_FACE('',(#29683),#31260,.F.); +#32479=ADVANCED_FACE('',(#29684),#31261,.F.); +#32480=ADVANCED_FACE('',(#29685),#31262,.F.); +#32481=ADVANCED_FACE('',(#29686),#31263,.F.); +#32482=ADVANCED_FACE('',(#29687),#31264,.F.); +#32483=ADVANCED_FACE('',(#29688),#31265,.F.); +#32484=ADVANCED_FACE('',(#29689),#31266,.F.); +#32485=ADVANCED_FACE('',(#29690),#31267,.F.); +#32486=ADVANCED_FACE('',(#29691),#31268,.F.); +#32487=ADVANCED_FACE('',(#29692),#31269,.F.); +#32488=ADVANCED_FACE('',(#29693,#29694),#31270,.T.); +#32489=ADVANCED_FACE('',(#29695),#31271,.F.); +#32490=ADVANCED_FACE('',(#29696),#31272,.F.); +#32491=ADVANCED_FACE('',(#29697),#31273,.F.); +#32492=ADVANCED_FACE('',(#29698),#31274,.F.); +#32493=ADVANCED_FACE('',(#29699),#31275,.F.); +#32494=ADVANCED_FACE('',(#29700),#31276,.T.); +#32495=ADVANCED_FACE('',(#29701),#31277,.T.); +#32496=ADVANCED_FACE('',(#29702),#31278,.F.); +#32497=ADVANCED_FACE('',(#29703),#31279,.F.); +#32498=ADVANCED_FACE('',(#29704),#31280,.F.); +#32499=ADVANCED_FACE('',(#29705),#31281,.F.); +#32500=ADVANCED_FACE('',(#29706),#31282,.F.); +#32501=ADVANCED_FACE('',(#29707),#31283,.F.); +#32502=ADVANCED_FACE('',(#29708),#31284,.F.); +#32503=ADVANCED_FACE('',(#29709),#31285,.F.); +#32504=ADVANCED_FACE('',(#29710),#31286,.F.); +#32505=ADVANCED_FACE('',(#29711),#31287,.F.); +#32506=ADVANCED_FACE('',(#29712),#31288,.F.); +#32507=ADVANCED_FACE('',(#29713),#31289,.F.); +#32508=ADVANCED_FACE('',(#29714),#31290,.F.); +#32509=ADVANCED_FACE('',(#29715),#31291,.F.); +#32510=ADVANCED_FACE('',(#29716),#31292,.F.); +#32511=ADVANCED_FACE('',(#29717),#31293,.F.); +#32512=ADVANCED_FACE('',(#29718),#31294,.F.); +#32513=ADVANCED_FACE('',(#29719),#31295,.F.); +#32514=ADVANCED_FACE('',(#29720),#31296,.F.); +#32515=ADVANCED_FACE('',(#29721),#31297,.F.); +#32516=ADVANCED_FACE('',(#29722),#31298,.F.); +#32517=ADVANCED_FACE('',(#29723),#31299,.F.); +#32518=ADVANCED_FACE('',(#29724),#31300,.F.); +#32519=ADVANCED_FACE('',(#29725),#31301,.F.); +#32520=ADVANCED_FACE('',(#29726),#31302,.F.); +#32521=ADVANCED_FACE('',(#29727),#31303,.F.); +#32522=ADVANCED_FACE('',(#29728),#31304,.F.); +#32523=ADVANCED_FACE('',(#29729),#31305,.F.); +#32524=ADVANCED_FACE('',(#29730),#31306,.F.); +#32525=ADVANCED_FACE('',(#29731),#31307,.F.); +#32526=ADVANCED_FACE('',(#29732),#31308,.F.); +#32527=ADVANCED_FACE('',(#29733),#31309,.F.); +#32528=ADVANCED_FACE('',(#29734),#31310,.F.); +#32529=ADVANCED_FACE('',(#29735),#31311,.F.); +#32530=ADVANCED_FACE('',(#29736),#31312,.F.); +#32531=ADVANCED_FACE('',(#29737),#31313,.F.); +#32532=ADVANCED_FACE('',(#29738),#31314,.F.); +#32533=ADVANCED_FACE('',(#29739),#31315,.F.); +#32534=ADVANCED_FACE('',(#29740),#31316,.F.); +#32535=ADVANCED_FACE('',(#29741),#31317,.T.); +#32536=ADVANCED_FACE('',(#29742),#31318,.F.); +#32537=ADVANCED_FACE('',(#29743),#479,.T.); +#32538=ADVANCED_FACE('',(#29744),#480,.T.); +#32539=ADVANCED_FACE('',(#29745),#481,.T.); +#32540=ADVANCED_FACE('',(#29746),#482,.T.); +#32541=ADVANCED_FACE('',(#29747),#483,.T.); +#32542=ADVANCED_FACE('',(#29748),#484,.T.); +#32543=ADVANCED_FACE('',(#29749),#485,.T.); +#32544=ADVANCED_FACE('',(#29750),#486,.T.); +#32545=ADVANCED_FACE('',(#29751),#487,.T.); +#32546=ADVANCED_FACE('',(#29752),#488,.T.); +#32547=ADVANCED_FACE('',(#29753),#489,.T.); +#32548=ADVANCED_FACE('',(#29754),#490,.T.); +#32549=ADVANCED_FACE('',(#29755),#491,.T.); +#32550=ADVANCED_FACE('',(#29756),#492,.T.); +#32551=ADVANCED_FACE('',(#29757),#493,.T.); +#32552=ADVANCED_FACE('',(#29758),#494,.T.); +#32553=ADVANCED_FACE('',(#29759),#495,.T.); +#32554=ADVANCED_FACE('',(#29760),#496,.T.); +#32555=ADVANCED_FACE('',(#29761),#497,.T.); +#32556=ADVANCED_FACE('',(#29762),#498,.T.); +#32557=ADVANCED_FACE('',(#29763),#31319,.F.); +#32558=ADVANCED_FACE('',(#29764),#31320,.F.); +#32559=ADVANCED_FACE('',(#29765),#31321,.F.); +#32560=ADVANCED_FACE('',(#29766),#31322,.F.); +#32561=ADVANCED_FACE('',(#29767),#31323,.F.); +#32562=ADVANCED_FACE('',(#29768),#31324,.F.); +#32563=ADVANCED_FACE('',(#29769),#31325,.F.); +#32564=ADVANCED_FACE('',(#29770),#31326,.F.); +#32565=ADVANCED_FACE('',(#29771),#31327,.F.); +#32566=ADVANCED_FACE('',(#29772),#31328,.F.); +#32567=ADVANCED_FACE('',(#29773),#31329,.F.); +#32568=ADVANCED_FACE('',(#29774),#31330,.F.); +#32569=ADVANCED_FACE('',(#29775),#31331,.F.); +#32570=ADVANCED_FACE('',(#29776),#31332,.F.); +#32571=ADVANCED_FACE('',(#29777),#31333,.F.); +#32572=ADVANCED_FACE('',(#29778),#31334,.F.); +#32573=ADVANCED_FACE('',(#29779),#31335,.F.); +#32574=ADVANCED_FACE('',(#29780),#31336,.F.); +#32575=ADVANCED_FACE('',(#29781),#31337,.F.); +#32576=ADVANCED_FACE('',(#29782),#499,.F.); +#32577=ADVANCED_FACE('',(#29783),#500,.F.); +#32578=ADVANCED_FACE('',(#29784),#501,.F.); +#32579=ADVANCED_FACE('',(#29785),#502,.F.); +#32580=ADVANCED_FACE('',(#29786),#503,.F.); +#32581=ADVANCED_FACE('',(#29787),#504,.F.); +#32582=ADVANCED_FACE('',(#29788),#505,.F.); +#32583=ADVANCED_FACE('',(#29789),#506,.F.); +#32584=ADVANCED_FACE('',(#29790),#507,.F.); +#32585=ADVANCED_FACE('',(#29791),#508,.F.); +#32586=ADVANCED_FACE('',(#29792),#509,.F.); +#32587=ADVANCED_FACE('',(#29793),#510,.F.); +#32588=ADVANCED_FACE('',(#29794),#511,.F.); +#32589=ADVANCED_FACE('',(#29795),#512,.F.); +#32590=ADVANCED_FACE('',(#29796),#513,.F.); +#32591=ADVANCED_FACE('',(#29797),#514,.F.); +#32592=ADVANCED_FACE('',(#29798),#515,.F.); +#32593=ADVANCED_FACE('',(#29799),#516,.F.); +#32594=ADVANCED_FACE('',(#29800),#517,.F.); +#32595=ADVANCED_FACE('',(#29801),#518,.F.); +#32596=ADVANCED_FACE('',(#29802),#519,.F.); +#32597=ADVANCED_FACE('',(#29803),#520,.F.); +#32598=ADVANCED_FACE('',(#29804),#521,.F.); +#32599=ADVANCED_FACE('',(#29805),#522,.F.); +#32600=ADVANCED_FACE('',(#29806),#523,.F.); +#32601=ADVANCED_FACE('',(#29807),#524,.F.); +#32602=ADVANCED_FACE('',(#29808),#525,.F.); +#32603=ADVANCED_FACE('',(#29809),#526,.F.); +#32604=ADVANCED_FACE('',(#29810),#527,.F.); +#32605=ADVANCED_FACE('',(#29811),#528,.F.); +#32606=ADVANCED_FACE('',(#29812),#529,.F.); +#32607=ADVANCED_FACE('',(#29813),#530,.F.); +#32608=ADVANCED_FACE('',(#29814),#531,.F.); +#32609=ADVANCED_FACE('',(#29815),#532,.F.); +#32610=ADVANCED_FACE('',(#29816),#533,.F.); +#32611=ADVANCED_FACE('',(#29817),#534,.F.); +#32612=ADVANCED_FACE('',(#29818),#535,.F.); +#32613=ADVANCED_FACE('',(#29819),#536,.F.); +#32614=ADVANCED_FACE('',(#29820),#537,.F.); +#32615=ADVANCED_FACE('',(#29821),#538,.F.); +#32616=ADVANCED_FACE('',(#29822),#31338,.F.); +#32617=ADVANCED_FACE('',(#29823),#31339,.F.); +#32618=ADVANCED_FACE('',(#29824),#31340,.F.); +#32619=ADVANCED_FACE('',(#29825),#31341,.F.); +#32620=ADVANCED_FACE('',(#29826),#31342,.F.); +#32621=ADVANCED_FACE('',(#29827),#31343,.F.); +#32622=ADVANCED_FACE('',(#29828),#31344,.F.); +#32623=ADVANCED_FACE('',(#29829),#31345,.F.); +#32624=ADVANCED_FACE('',(#29830),#31346,.F.); +#32625=ADVANCED_FACE('',(#29831),#31347,.F.); +#32626=ADVANCED_FACE('',(#29832),#31348,.F.); +#32627=ADVANCED_FACE('',(#29833),#31349,.F.); +#32628=ADVANCED_FACE('',(#29834),#31350,.F.); +#32629=ADVANCED_FACE('',(#29835),#31351,.F.); +#32630=ADVANCED_FACE('',(#29836),#31352,.F.); +#32631=ADVANCED_FACE('',(#29837),#31353,.F.); +#32632=ADVANCED_FACE('',(#29838),#31354,.F.); +#32633=ADVANCED_FACE('',(#29839),#31355,.F.); +#32634=ADVANCED_FACE('',(#29840),#31356,.F.); +#32635=ADVANCED_FACE('',(#29841),#539,.T.); +#32636=ADVANCED_FACE('',(#29842),#540,.T.); +#32637=ADVANCED_FACE('',(#29843),#541,.T.); +#32638=ADVANCED_FACE('',(#29844),#542,.T.); +#32639=ADVANCED_FACE('',(#29845),#543,.T.); +#32640=ADVANCED_FACE('',(#29846),#544,.T.); +#32641=ADVANCED_FACE('',(#29847),#545,.T.); +#32642=ADVANCED_FACE('',(#29848),#546,.T.); +#32643=ADVANCED_FACE('',(#29849),#547,.T.); +#32644=ADVANCED_FACE('',(#29850),#548,.T.); +#32645=ADVANCED_FACE('',(#29851),#549,.T.); +#32646=ADVANCED_FACE('',(#29852),#550,.T.); +#32647=ADVANCED_FACE('',(#29853),#551,.T.); +#32648=ADVANCED_FACE('',(#29854),#552,.T.); +#32649=ADVANCED_FACE('',(#29855),#553,.T.); +#32650=ADVANCED_FACE('',(#29856),#554,.T.); +#32651=ADVANCED_FACE('',(#29857),#555,.T.); +#32652=ADVANCED_FACE('',(#29858),#556,.T.); +#32653=ADVANCED_FACE('',(#29859),#557,.T.); +#32654=ADVANCED_FACE('',(#29860),#558,.T.); +#32655=ADVANCED_FACE('',(#29861),#31357,.T.); +#32656=ADVANCED_FACE('',(#29862),#31358,.F.); +#32657=ADVANCED_FACE('',(#29863),#31359,.F.); +#32658=ADVANCED_FACE('',(#29864),#31360,.F.); +#32659=ADVANCED_FACE('',(#29865),#559,.T.); +#32660=ADVANCED_FACE('',(#29866),#31361,.F.); +#32661=ADVANCED_FACE('',(#29867),#560,.T.); +#32662=ADVANCED_FACE('',(#29868),#31362,.F.); +#32663=ADVANCED_FACE('',(#29869),#561,.F.); +#32664=ADVANCED_FACE('',(#29870),#562,.T.); +#32665=ADVANCED_FACE('',(#29871),#31363,.F.); +#32666=ADVANCED_FACE('',(#29872),#563,.F.); +#32667=ADVANCED_FACE('',(#29873),#564,.T.); +#32668=ADVANCED_FACE('',(#29874),#31364,.F.); +#32669=ADVANCED_FACE('',(#29875),#565,.F.); +#32670=ADVANCED_FACE('',(#29876),#566,.T.); +#32671=ADVANCED_FACE('',(#29877),#31365,.F.); +#32672=ADVANCED_FACE('',(#29878),#31366,.F.); +#32673=ADVANCED_FACE('',(#29879),#567,.F.); +#32674=ADVANCED_FACE('',(#29880),#568,.T.); +#32675=ADVANCED_FACE('',(#29881),#569,.T.); +#32676=ADVANCED_FACE('',(#29882),#31367,.F.); +#32677=ADVANCED_FACE('',(#29883),#570,.F.); +#32678=ADVANCED_FACE('',(#29884),#31368,.F.); +#32679=ADVANCED_FACE('',(#29885),#571,.T.); +#32680=ADVANCED_FACE('',(#29886),#572,.F.); +#32681=ADVANCED_FACE('',(#29887),#31369,.F.); +#32682=ADVANCED_FACE('',(#29888),#573,.T.); +#32683=ADVANCED_FACE('',(#29889),#574,.T.); +#32684=ADVANCED_FACE('',(#29890),#31370,.F.); +#32685=ADVANCED_FACE('',(#29891),#575,.F.); +#32686=ADVANCED_FACE('',(#29892),#31371,.F.); +#32687=ADVANCED_FACE('',(#29893),#576,.T.); +#32688=ADVANCED_FACE('',(#29894),#577,.F.); +#32689=ADVANCED_FACE('',(#29895),#31372,.F.); +#32690=ADVANCED_FACE('',(#29896),#578,.T.); +#32691=ADVANCED_FACE('',(#29897),#579,.T.); +#32692=ADVANCED_FACE('',(#29898),#31373,.F.); +#32693=ADVANCED_FACE('',(#29899),#580,.T.); +#32694=ADVANCED_FACE('',(#29900),#31374,.F.); +#32695=ADVANCED_FACE('',(#29901),#581,.F.); +#32696=ADVANCED_FACE('',(#29902),#31375,.F.); +#32697=ADVANCED_FACE('',(#29903),#582,.T.); +#32698=ADVANCED_FACE('',(#29904),#31376,.F.); +#32699=ADVANCED_FACE('',(#29905),#31377,.F.); +#32700=ADVANCED_FACE('',(#29906),#583,.T.); +#32701=ADVANCED_FACE('',(#29907),#31378,.F.); +#32702=ADVANCED_FACE('',(#29908),#584,.F.); +#32703=ADVANCED_FACE('',(#29909),#31379,.F.); +#32704=ADVANCED_FACE('',(#29910),#585,.T.); +#32705=ADVANCED_FACE('',(#29911),#586,.F.); +#32706=ADVANCED_FACE('',(#29912),#587,.F.); +#32707=ADVANCED_FACE('',(#29913),#31380,.F.); +#32708=ADVANCED_FACE('',(#29914),#588,.T.); +#32709=ADVANCED_FACE('',(#29915),#589,.T.); +#32710=ADVANCED_FACE('',(#29916),#31381,.F.); +#32711=ADVANCED_FACE('',(#29917),#590,.T.); +#32712=ADVANCED_FACE('',(#29918),#31382,.F.); +#32713=ADVANCED_FACE('',(#29919),#591,.F.); +#32714=ADVANCED_FACE('',(#29920),#31383,.F.); +#32715=ADVANCED_FACE('',(#29921),#592,.T.); +#32716=ADVANCED_FACE('',(#29922),#31384,.F.); +#32717=ADVANCED_FACE('',(#29923),#31385,.F.); +#32718=ADVANCED_FACE('',(#29924),#593,.T.); +#32719=ADVANCED_FACE('',(#29925),#31386,.F.); +#32720=ADVANCED_FACE('',(#29926),#594,.F.); +#32721=ADVANCED_FACE('',(#29927),#31387,.F.); +#32722=ADVANCED_FACE('',(#29928),#595,.T.); +#32723=ADVANCED_FACE('',(#29929),#596,.F.); +#32724=ADVANCED_FACE('',(#29930),#597,.F.); +#32725=ADVANCED_FACE('',(#29931),#31388,.F.); +#32726=ADVANCED_FACE('',(#29932),#598,.T.); +#32727=ADVANCED_FACE('',(#29933),#599,.T.); +#32728=ADVANCED_FACE('',(#29934),#31389,.F.); +#32729=ADVANCED_FACE('',(#29935),#600,.T.); +#32730=ADVANCED_FACE('',(#29936),#31390,.F.); +#32731=ADVANCED_FACE('',(#29937),#601,.F.); +#32732=ADVANCED_FACE('',(#29938),#31391,.F.); +#32733=ADVANCED_FACE('',(#29939),#602,.T.); +#32734=ADVANCED_FACE('',(#29940),#31392,.F.); +#32735=ADVANCED_FACE('',(#29941),#31393,.F.); +#32736=ADVANCED_FACE('',(#29942),#603,.T.); +#32737=ADVANCED_FACE('',(#29943),#31394,.F.); +#32738=ADVANCED_FACE('',(#29944),#604,.F.); +#32739=ADVANCED_FACE('',(#29945),#31395,.F.); +#32740=ADVANCED_FACE('',(#29946),#605,.T.); +#32741=ADVANCED_FACE('',(#29947),#606,.F.); +#32742=ADVANCED_FACE('',(#29948),#607,.F.); +#32743=ADVANCED_FACE('',(#29949),#31396,.F.); +#32744=ADVANCED_FACE('',(#29950),#608,.T.); +#32745=ADVANCED_FACE('',(#29951),#609,.T.); +#32746=ADVANCED_FACE('',(#29952),#31397,.F.); +#32747=ADVANCED_FACE('',(#29953),#610,.T.); +#32748=ADVANCED_FACE('',(#29954),#31398,.F.); +#32749=ADVANCED_FACE('',(#29955),#611,.F.); +#32750=ADVANCED_FACE('',(#29956),#31399,.F.); +#32751=ADVANCED_FACE('',(#29957),#612,.T.); +#32752=ADVANCED_FACE('',(#29958),#31400,.F.); +#32753=ADVANCED_FACE('',(#29959),#31401,.F.); +#32754=ADVANCED_FACE('',(#29960),#613,.T.); +#32755=ADVANCED_FACE('',(#29961),#31402,.F.); +#32756=ADVANCED_FACE('',(#29962),#614,.F.); +#32757=ADVANCED_FACE('',(#29963),#31403,.F.); +#32758=ADVANCED_FACE('',(#29964),#615,.T.); +#32759=ADVANCED_FACE('',(#29965),#616,.F.); +#32760=ADVANCED_FACE('',(#29966),#617,.F.); +#32761=ADVANCED_FACE('',(#29967),#31404,.F.); +#32762=ADVANCED_FACE('',(#29968),#618,.T.); +#32763=ADVANCED_FACE('',(#29969),#619,.T.); +#32764=ADVANCED_FACE('',(#29970),#31405,.F.); +#32765=ADVANCED_FACE('',(#29971),#620,.T.); +#32766=ADVANCED_FACE('',(#29972),#31406,.F.); +#32767=ADVANCED_FACE('',(#29973),#621,.F.); +#32768=ADVANCED_FACE('',(#29974),#31407,.F.); +#32769=ADVANCED_FACE('',(#29975),#622,.T.); +#32770=ADVANCED_FACE('',(#29976),#31408,.F.); +#32771=ADVANCED_FACE('',(#29977),#31409,.F.); +#32772=ADVANCED_FACE('',(#29978),#623,.T.); +#32773=ADVANCED_FACE('',(#29979),#31410,.F.); +#32774=ADVANCED_FACE('',(#29980),#624,.F.); +#32775=ADVANCED_FACE('',(#29981),#31411,.F.); +#32776=ADVANCED_FACE('',(#29982),#625,.T.); +#32777=ADVANCED_FACE('',(#29983),#626,.F.); +#32778=ADVANCED_FACE('',(#29984),#627,.F.); +#32779=ADVANCED_FACE('',(#29985),#31412,.F.); +#32780=ADVANCED_FACE('',(#29986),#628,.T.); +#32781=ADVANCED_FACE('',(#29987),#629,.T.); +#32782=ADVANCED_FACE('',(#29988),#31413,.F.); +#32783=ADVANCED_FACE('',(#29989),#630,.T.); +#32784=ADVANCED_FACE('',(#29990),#31414,.F.); +#32785=ADVANCED_FACE('',(#29991),#631,.F.); +#32786=ADVANCED_FACE('',(#29992),#31415,.F.); +#32787=ADVANCED_FACE('',(#29993),#632,.T.); +#32788=ADVANCED_FACE('',(#29994),#31416,.F.); +#32789=ADVANCED_FACE('',(#29995),#31417,.F.); +#32790=ADVANCED_FACE('',(#29996),#633,.T.); +#32791=ADVANCED_FACE('',(#29997),#31418,.F.); +#32792=ADVANCED_FACE('',(#29998),#634,.F.); +#32793=ADVANCED_FACE('',(#29999),#31419,.F.); +#32794=ADVANCED_FACE('',(#30000),#635,.T.); +#32795=ADVANCED_FACE('',(#30001),#636,.F.); +#32796=ADVANCED_FACE('',(#30002),#637,.F.); +#32797=ADVANCED_FACE('',(#30003),#31420,.F.); +#32798=ADVANCED_FACE('',(#30004),#638,.T.); +#32799=ADVANCED_FACE('',(#30005),#639,.T.); +#32800=ADVANCED_FACE('',(#30006),#31421,.F.); +#32801=ADVANCED_FACE('',(#30007),#640,.T.); +#32802=ADVANCED_FACE('',(#30008),#31422,.F.); +#32803=ADVANCED_FACE('',(#30009),#641,.F.); +#32804=ADVANCED_FACE('',(#30010),#31423,.F.); +#32805=ADVANCED_FACE('',(#30011),#642,.T.); +#32806=ADVANCED_FACE('',(#30012),#31424,.F.); +#32807=ADVANCED_FACE('',(#30013),#31425,.F.); +#32808=ADVANCED_FACE('',(#30014),#643,.T.); +#32809=ADVANCED_FACE('',(#30015),#31426,.F.); +#32810=ADVANCED_FACE('',(#30016),#644,.F.); +#32811=ADVANCED_FACE('',(#30017),#31427,.F.); +#32812=ADVANCED_FACE('',(#30018),#645,.T.); +#32813=ADVANCED_FACE('',(#30019),#646,.F.); +#32814=ADVANCED_FACE('',(#30020),#647,.F.); +#32815=ADVANCED_FACE('',(#30021),#31428,.F.); +#32816=ADVANCED_FACE('',(#30022),#648,.T.); +#32817=ADVANCED_FACE('',(#30023),#649,.T.); +#32818=ADVANCED_FACE('',(#30024),#31429,.F.); +#32819=ADVANCED_FACE('',(#30025),#650,.T.); +#32820=ADVANCED_FACE('',(#30026),#31430,.F.); +#32821=ADVANCED_FACE('',(#30027),#651,.F.); +#32822=ADVANCED_FACE('',(#30028),#31431,.F.); +#32823=ADVANCED_FACE('',(#30029),#652,.T.); +#32824=ADVANCED_FACE('',(#30030),#31432,.F.); +#32825=ADVANCED_FACE('',(#30031),#31433,.F.); +#32826=ADVANCED_FACE('',(#30032),#653,.T.); +#32827=ADVANCED_FACE('',(#30033),#31434,.F.); +#32828=ADVANCED_FACE('',(#30034),#654,.F.); +#32829=ADVANCED_FACE('',(#30035),#31435,.F.); +#32830=ADVANCED_FACE('',(#30036),#655,.T.); +#32831=ADVANCED_FACE('',(#30037),#656,.F.); +#32832=ADVANCED_FACE('',(#30038),#657,.F.); +#32833=ADVANCED_FACE('',(#30039),#31436,.F.); +#32834=ADVANCED_FACE('',(#30040),#658,.T.); +#32835=ADVANCED_FACE('',(#30041),#659,.T.); +#32836=ADVANCED_FACE('',(#30042),#31437,.F.); +#32837=ADVANCED_FACE('',(#30043),#660,.T.); +#32838=ADVANCED_FACE('',(#30044),#31438,.F.); +#32839=ADVANCED_FACE('',(#30045),#661,.F.); +#32840=ADVANCED_FACE('',(#30046),#31439,.F.); +#32841=ADVANCED_FACE('',(#30047),#662,.T.); +#32842=ADVANCED_FACE('',(#30048),#31440,.F.); +#32843=ADVANCED_FACE('',(#30049),#31441,.F.); +#32844=ADVANCED_FACE('',(#30050),#663,.T.); +#32845=ADVANCED_FACE('',(#30051),#31442,.F.); +#32846=ADVANCED_FACE('',(#30052),#664,.F.); +#32847=ADVANCED_FACE('',(#30053),#31443,.F.); +#32848=ADVANCED_FACE('',(#30054),#665,.T.); +#32849=ADVANCED_FACE('',(#30055),#666,.F.); +#32850=ADVANCED_FACE('',(#30056),#667,.F.); +#32851=ADVANCED_FACE('',(#30057),#31444,.F.); +#32852=ADVANCED_FACE('',(#30058),#668,.T.); +#32853=ADVANCED_FACE('',(#30059),#669,.T.); +#32854=ADVANCED_FACE('',(#30060),#31445,.F.); +#32855=ADVANCED_FACE('',(#30061),#670,.T.); +#32856=ADVANCED_FACE('',(#30062),#31446,.F.); +#32857=ADVANCED_FACE('',(#30063),#671,.F.); +#32858=ADVANCED_FACE('',(#30064),#31447,.F.); +#32859=ADVANCED_FACE('',(#30065),#672,.T.); +#32860=ADVANCED_FACE('',(#30066),#31448,.F.); +#32861=ADVANCED_FACE('',(#30067),#31449,.F.); +#32862=ADVANCED_FACE('',(#30068),#673,.T.); +#32863=ADVANCED_FACE('',(#30069),#31450,.F.); +#32864=ADVANCED_FACE('',(#30070),#674,.F.); +#32865=ADVANCED_FACE('',(#30071),#31451,.F.); +#32866=ADVANCED_FACE('',(#30072),#675,.T.); +#32867=ADVANCED_FACE('',(#30073),#676,.F.); +#32868=ADVANCED_FACE('',(#30074),#677,.F.); +#32869=ADVANCED_FACE('',(#30075),#31452,.F.); +#32870=ADVANCED_FACE('',(#30076),#678,.T.); +#32871=ADVANCED_FACE('',(#30077),#679,.T.); +#32872=ADVANCED_FACE('',(#30078),#31453,.F.); +#32873=ADVANCED_FACE('',(#30079),#680,.T.); +#32874=ADVANCED_FACE('',(#30080),#31454,.F.); +#32875=ADVANCED_FACE('',(#30081),#681,.F.); +#32876=ADVANCED_FACE('',(#30082),#31455,.F.); +#32877=ADVANCED_FACE('',(#30083),#682,.T.); +#32878=ADVANCED_FACE('',(#30084),#31456,.F.); +#32879=ADVANCED_FACE('',(#30085),#31457,.F.); +#32880=ADVANCED_FACE('',(#30086),#683,.T.); +#32881=ADVANCED_FACE('',(#30087),#31458,.F.); +#32882=ADVANCED_FACE('',(#30088),#684,.F.); +#32883=ADVANCED_FACE('',(#30089),#31459,.F.); +#32884=ADVANCED_FACE('',(#30090),#685,.T.); +#32885=ADVANCED_FACE('',(#30091),#686,.F.); +#32886=ADVANCED_FACE('',(#30092),#687,.F.); +#32887=ADVANCED_FACE('',(#30093),#31460,.F.); +#32888=ADVANCED_FACE('',(#30094),#688,.T.); +#32889=ADVANCED_FACE('',(#30095),#689,.T.); +#32890=ADVANCED_FACE('',(#30096),#31461,.F.); +#32891=ADVANCED_FACE('',(#30097),#690,.T.); +#32892=ADVANCED_FACE('',(#30098),#31462,.F.); +#32893=ADVANCED_FACE('',(#30099),#691,.F.); +#32894=ADVANCED_FACE('',(#30100),#31463,.F.); +#32895=ADVANCED_FACE('',(#30101),#692,.T.); +#32896=ADVANCED_FACE('',(#30102),#31464,.F.); +#32897=ADVANCED_FACE('',(#30103),#31465,.F.); +#32898=ADVANCED_FACE('',(#30104),#693,.T.); +#32899=ADVANCED_FACE('',(#30105),#31466,.F.); +#32900=ADVANCED_FACE('',(#30106),#694,.F.); +#32901=ADVANCED_FACE('',(#30107),#31467,.F.); +#32902=ADVANCED_FACE('',(#30108),#695,.T.); +#32903=ADVANCED_FACE('',(#30109),#696,.F.); +#32904=ADVANCED_FACE('',(#30110),#697,.F.); +#32905=ADVANCED_FACE('',(#30111),#31468,.F.); +#32906=ADVANCED_FACE('',(#30112),#698,.T.); +#32907=ADVANCED_FACE('',(#30113),#699,.T.); +#32908=ADVANCED_FACE('',(#30114),#31469,.F.); +#32909=ADVANCED_FACE('',(#30115),#700,.T.); +#32910=ADVANCED_FACE('',(#30116),#31470,.F.); +#32911=ADVANCED_FACE('',(#30117),#701,.F.); +#32912=ADVANCED_FACE('',(#30118),#31471,.F.); +#32913=ADVANCED_FACE('',(#30119),#702,.T.); +#32914=ADVANCED_FACE('',(#30120),#31472,.F.); +#32915=ADVANCED_FACE('',(#30121),#31473,.F.); +#32916=ADVANCED_FACE('',(#30122),#703,.T.); +#32917=ADVANCED_FACE('',(#30123),#31474,.F.); +#32918=ADVANCED_FACE('',(#30124),#704,.F.); +#32919=ADVANCED_FACE('',(#30125),#31475,.F.); +#32920=ADVANCED_FACE('',(#30126),#705,.T.); +#32921=ADVANCED_FACE('',(#30127),#706,.F.); +#32922=ADVANCED_FACE('',(#30128),#707,.F.); +#32923=ADVANCED_FACE('',(#30129),#31476,.F.); +#32924=ADVANCED_FACE('',(#30130),#708,.T.); +#32925=ADVANCED_FACE('',(#30131),#709,.T.); +#32926=ADVANCED_FACE('',(#30132),#31477,.F.); +#32927=ADVANCED_FACE('',(#30133),#710,.T.); +#32928=ADVANCED_FACE('',(#30134),#31478,.F.); +#32929=ADVANCED_FACE('',(#30135),#711,.F.); +#32930=ADVANCED_FACE('',(#30136),#31479,.F.); +#32931=ADVANCED_FACE('',(#30137),#712,.T.); +#32932=ADVANCED_FACE('',(#30138),#31480,.F.); +#32933=ADVANCED_FACE('',(#30139),#31481,.F.); +#32934=ADVANCED_FACE('',(#30140),#713,.T.); +#32935=ADVANCED_FACE('',(#30141),#31482,.F.); +#32936=ADVANCED_FACE('',(#30142),#714,.F.); +#32937=ADVANCED_FACE('',(#30143),#31483,.F.); +#32938=ADVANCED_FACE('',(#30144),#715,.T.); +#32939=ADVANCED_FACE('',(#30145),#716,.F.); +#32940=ADVANCED_FACE('',(#30146),#717,.F.); +#32941=ADVANCED_FACE('',(#30147),#31484,.F.); +#32942=ADVANCED_FACE('',(#30148),#718,.T.); +#32943=ADVANCED_FACE('',(#30149),#719,.T.); +#32944=ADVANCED_FACE('',(#30150),#31485,.F.); +#32945=ADVANCED_FACE('',(#30151),#720,.T.); +#32946=ADVANCED_FACE('',(#30152),#31486,.F.); +#32947=ADVANCED_FACE('',(#30153),#721,.F.); +#32948=ADVANCED_FACE('',(#30154),#31487,.F.); +#32949=ADVANCED_FACE('',(#30155),#722,.T.); +#32950=ADVANCED_FACE('',(#30156),#31488,.F.); +#32951=ADVANCED_FACE('',(#30157),#31489,.F.); +#32952=ADVANCED_FACE('',(#30158),#723,.T.); +#32953=ADVANCED_FACE('',(#30159),#31490,.F.); +#32954=ADVANCED_FACE('',(#30160),#724,.F.); +#32955=ADVANCED_FACE('',(#30161),#31491,.F.); +#32956=ADVANCED_FACE('',(#30162),#725,.T.); +#32957=ADVANCED_FACE('',(#30163),#726,.F.); +#32958=ADVANCED_FACE('',(#30164),#727,.F.); +#32959=ADVANCED_FACE('',(#30165),#31492,.F.); +#32960=ADVANCED_FACE('',(#30166),#728,.T.); +#32961=ADVANCED_FACE('',(#30167),#729,.T.); +#32962=ADVANCED_FACE('',(#30168),#31493,.F.); +#32963=ADVANCED_FACE('',(#30169),#730,.T.); +#32964=ADVANCED_FACE('',(#30170),#31494,.F.); +#32965=ADVANCED_FACE('',(#30171),#731,.F.); +#32966=ADVANCED_FACE('',(#30172),#31495,.F.); +#32967=ADVANCED_FACE('',(#30173),#732,.T.); +#32968=ADVANCED_FACE('',(#30174),#31496,.F.); +#32969=ADVANCED_FACE('',(#30175),#31497,.F.); +#32970=ADVANCED_FACE('',(#30176),#733,.T.); +#32971=ADVANCED_FACE('',(#30177),#31498,.F.); +#32972=ADVANCED_FACE('',(#30178),#734,.F.); +#32973=ADVANCED_FACE('',(#30179),#31499,.F.); +#32974=ADVANCED_FACE('',(#30180),#735,.T.); +#32975=ADVANCED_FACE('',(#30181),#736,.F.); +#32976=ADVANCED_FACE('',(#30182),#737,.F.); +#32977=ADVANCED_FACE('',(#30183),#31500,.F.); +#32978=ADVANCED_FACE('',(#30184),#738,.T.); +#32979=ADVANCED_FACE('',(#30185),#739,.T.); +#32980=ADVANCED_FACE('',(#30186),#31501,.F.); +#32981=ADVANCED_FACE('',(#30187),#740,.T.); +#32982=ADVANCED_FACE('',(#30188),#31502,.F.); +#32983=ADVANCED_FACE('',(#30189),#741,.F.); +#32984=ADVANCED_FACE('',(#30190),#31503,.F.); +#32985=ADVANCED_FACE('',(#30191),#742,.T.); +#32986=ADVANCED_FACE('',(#30192),#31504,.F.); +#32987=ADVANCED_FACE('',(#30193),#31505,.F.); +#32988=ADVANCED_FACE('',(#30194),#743,.T.); +#32989=ADVANCED_FACE('',(#30195),#31506,.F.); +#32990=ADVANCED_FACE('',(#30196),#744,.F.); +#32991=ADVANCED_FACE('',(#30197),#31507,.F.); +#32992=ADVANCED_FACE('',(#30198),#745,.T.); +#32993=ADVANCED_FACE('',(#30199),#746,.F.); +#32994=ADVANCED_FACE('',(#30200),#747,.F.); +#32995=ADVANCED_FACE('',(#30201),#31508,.F.); +#32996=ADVANCED_FACE('',(#30202),#748,.T.); +#32997=ADVANCED_FACE('',(#30203),#749,.T.); +#32998=ADVANCED_FACE('',(#30204),#31509,.F.); +#32999=ADVANCED_FACE('',(#30205),#750,.T.); +#33000=ADVANCED_FACE('',(#30206),#31510,.F.); +#33001=ADVANCED_FACE('',(#30207),#751,.F.); +#33002=ADVANCED_FACE('',(#30208),#31511,.F.); +#33003=ADVANCED_FACE('',(#30209),#752,.T.); +#33004=ADVANCED_FACE('',(#30210),#31512,.F.); +#33005=ADVANCED_FACE('',(#30211),#31513,.F.); +#33006=ADVANCED_FACE('',(#30212),#753,.T.); +#33007=ADVANCED_FACE('',(#30213),#31514,.F.); +#33008=ADVANCED_FACE('',(#30214),#754,.F.); +#33009=ADVANCED_FACE('',(#30215),#31515,.F.); +#33010=ADVANCED_FACE('',(#30216),#755,.T.); +#33011=ADVANCED_FACE('',(#30217),#756,.F.); +#33012=ADVANCED_FACE('',(#30218),#757,.F.); +#33013=ADVANCED_FACE('',(#30219),#31516,.F.); +#33014=ADVANCED_FACE('',(#30220),#758,.T.); +#33015=ADVANCED_FACE('',(#30221),#759,.T.); +#33016=ADVANCED_FACE('',(#30222),#31517,.F.); +#33017=ADVANCED_FACE('',(#30223),#760,.T.); +#33018=ADVANCED_FACE('',(#30224),#31518,.F.); +#33019=ADVANCED_FACE('',(#30225),#761,.F.); +#33020=ADVANCED_FACE('',(#30226),#31519,.F.); +#33021=ADVANCED_FACE('',(#30227),#762,.T.); +#33022=ADVANCED_FACE('',(#30228),#31520,.F.); +#33023=ADVANCED_FACE('',(#30229),#31521,.F.); +#33024=ADVANCED_FACE('',(#30230),#763,.T.); +#33025=ADVANCED_FACE('',(#30231),#31522,.F.); +#33026=ADVANCED_FACE('',(#30232),#764,.F.); +#33027=ADVANCED_FACE('',(#30233),#31523,.F.); +#33028=ADVANCED_FACE('',(#30234),#765,.T.); +#33029=ADVANCED_FACE('',(#30235),#766,.F.); +#33030=ADVANCED_FACE('',(#30236),#767,.F.); +#33031=ADVANCED_FACE('',(#30237),#31524,.F.); +#33032=ADVANCED_FACE('',(#30238),#768,.T.); +#33033=ADVANCED_FACE('',(#30239),#769,.T.); +#33034=ADVANCED_FACE('',(#30240),#31525,.F.); +#33035=ADVANCED_FACE('',(#30241),#770,.F.); +#33036=ADVANCED_FACE('',(#30242),#31526,.F.); +#33037=ADVANCED_FACE('',(#30243),#771,.T.); +#33038=ADVANCED_FACE('',(#30244),#31527,.F.); +#33039=ADVANCED_FACE('',(#30245),#31528,.F.); +#33040=ADVANCED_FACE('',(#30246),#772,.T.); +#33041=ADVANCED_FACE('',(#30247),#31529,.F.); +#33042=ADVANCED_FACE('',(#30248),#773,.F.); +#33043=ADVANCED_FACE('',(#30249),#31530,.F.); +#33044=ADVANCED_FACE('',(#30250),#774,.T.); +#33045=ADVANCED_FACE('',(#30251),#31531,.F.); +#33046=ADVANCED_FACE('',(#30252),#775,.F.); +#33047=ADVANCED_FACE('',(#30253),#776,.F.); +#33048=ADVANCED_FACE('',(#30254),#31532,.F.); +#33049=ADVANCED_FACE('',(#30255),#777,.T.); +#33050=ADVANCED_FACE('',(#30256),#778,.T.); +#33051=ADVANCED_FACE('',(#30257),#779,.T.); +#33052=ADVANCED_FACE('',(#30258),#31533,.F.); +#33053=ADVANCED_FACE('',(#30259),#780,.F.); +#33054=ADVANCED_FACE('',(#30260),#31534,.F.); +#33055=ADVANCED_FACE('',(#30261),#781,.T.); +#33056=ADVANCED_FACE('',(#30262),#31535,.F.); +#33057=ADVANCED_FACE('',(#30263),#31536,.F.); +#33058=ADVANCED_FACE('',(#30264),#782,.T.); +#33059=ADVANCED_FACE('',(#30265),#31537,.F.); +#33060=ADVANCED_FACE('',(#30266),#783,.F.); +#33061=ADVANCED_FACE('',(#30267),#31538,.F.); +#33062=ADVANCED_FACE('',(#30268),#784,.T.); +#33063=ADVANCED_FACE('',(#30269),#31539,.F.); +#33064=ADVANCED_FACE('',(#30270),#785,.F.); +#33065=ADVANCED_FACE('',(#30271),#786,.F.); +#33066=ADVANCED_FACE('',(#30272),#31540,.F.); +#33067=ADVANCED_FACE('',(#30273),#787,.T.); +#33068=ADVANCED_FACE('',(#30274),#788,.T.); +#33069=ADVANCED_FACE('',(#30275),#789,.T.); +#33070=ADVANCED_FACE('',(#30276),#31541,.F.); +#33071=ADVANCED_FACE('',(#30277),#790,.F.); +#33072=ADVANCED_FACE('',(#30278),#31542,.F.); +#33073=ADVANCED_FACE('',(#30279),#791,.T.); +#33074=ADVANCED_FACE('',(#30280),#31543,.F.); +#33075=ADVANCED_FACE('',(#30281),#31544,.F.); +#33076=ADVANCED_FACE('',(#30282),#792,.T.); +#33077=ADVANCED_FACE('',(#30283),#31545,.F.); +#33078=ADVANCED_FACE('',(#30284),#793,.F.); +#33079=ADVANCED_FACE('',(#30285),#31546,.F.); +#33080=ADVANCED_FACE('',(#30286),#794,.T.); +#33081=ADVANCED_FACE('',(#30287),#31547,.F.); +#33082=ADVANCED_FACE('',(#30288),#795,.F.); +#33083=ADVANCED_FACE('',(#30289),#796,.F.); +#33084=ADVANCED_FACE('',(#30290),#31548,.F.); +#33085=ADVANCED_FACE('',(#30291),#797,.T.); +#33086=ADVANCED_FACE('',(#30292),#798,.T.); +#33087=ADVANCED_FACE('',(#30293),#799,.T.); +#33088=ADVANCED_FACE('',(#30294),#31549,.F.); +#33089=ADVANCED_FACE('',(#30295),#800,.F.); +#33090=ADVANCED_FACE('',(#30296),#31550,.F.); +#33091=ADVANCED_FACE('',(#30297),#801,.T.); +#33092=ADVANCED_FACE('',(#30298),#31551,.F.); +#33093=ADVANCED_FACE('',(#30299),#31552,.F.); +#33094=ADVANCED_FACE('',(#30300),#802,.T.); +#33095=ADVANCED_FACE('',(#30301),#31553,.F.); +#33096=ADVANCED_FACE('',(#30302),#803,.F.); +#33097=ADVANCED_FACE('',(#30303),#31554,.F.); +#33098=ADVANCED_FACE('',(#30304),#804,.T.); +#33099=ADVANCED_FACE('',(#30305),#31555,.F.); +#33100=ADVANCED_FACE('',(#30306),#805,.F.); +#33101=ADVANCED_FACE('',(#30307),#806,.F.); +#33102=ADVANCED_FACE('',(#30308),#31556,.F.); +#33103=ADVANCED_FACE('',(#30309),#807,.T.); +#33104=ADVANCED_FACE('',(#30310),#808,.T.); +#33105=ADVANCED_FACE('',(#30311),#809,.T.); +#33106=ADVANCED_FACE('',(#30312),#31557,.F.); +#33107=ADVANCED_FACE('',(#30313),#810,.F.); +#33108=ADVANCED_FACE('',(#30314),#31558,.F.); +#33109=ADVANCED_FACE('',(#30315),#811,.T.); +#33110=ADVANCED_FACE('',(#30316),#31559,.F.); +#33111=ADVANCED_FACE('',(#30317),#31560,.F.); +#33112=ADVANCED_FACE('',(#30318),#812,.T.); +#33113=ADVANCED_FACE('',(#30319),#31561,.F.); +#33114=ADVANCED_FACE('',(#30320),#813,.F.); +#33115=ADVANCED_FACE('',(#30321),#31562,.F.); +#33116=ADVANCED_FACE('',(#30322),#814,.T.); +#33117=ADVANCED_FACE('',(#30323),#31563,.F.); +#33118=ADVANCED_FACE('',(#30324),#815,.F.); +#33119=ADVANCED_FACE('',(#30325),#816,.F.); +#33120=ADVANCED_FACE('',(#30326),#31564,.F.); +#33121=ADVANCED_FACE('',(#30327),#817,.T.); +#33122=ADVANCED_FACE('',(#30328),#818,.T.); +#33123=ADVANCED_FACE('',(#30329),#819,.T.); +#33124=ADVANCED_FACE('',(#30330),#31565,.F.); +#33125=ADVANCED_FACE('',(#30331),#820,.F.); +#33126=ADVANCED_FACE('',(#30332),#31566,.F.); +#33127=ADVANCED_FACE('',(#30333),#821,.T.); +#33128=ADVANCED_FACE('',(#30334),#31567,.F.); +#33129=ADVANCED_FACE('',(#30335),#31568,.F.); +#33130=ADVANCED_FACE('',(#30336),#822,.T.); +#33131=ADVANCED_FACE('',(#30337),#31569,.F.); +#33132=ADVANCED_FACE('',(#30338),#823,.F.); +#33133=ADVANCED_FACE('',(#30339),#31570,.F.); +#33134=ADVANCED_FACE('',(#30340),#824,.T.); +#33135=ADVANCED_FACE('',(#30341),#31571,.F.); +#33136=ADVANCED_FACE('',(#30342),#825,.F.); +#33137=ADVANCED_FACE('',(#30343),#826,.F.); +#33138=ADVANCED_FACE('',(#30344),#31572,.F.); +#33139=ADVANCED_FACE('',(#30345),#827,.T.); +#33140=ADVANCED_FACE('',(#30346),#828,.T.); +#33141=ADVANCED_FACE('',(#30347),#829,.T.); +#33142=ADVANCED_FACE('',(#30348),#31573,.F.); +#33143=ADVANCED_FACE('',(#30349),#830,.F.); +#33144=ADVANCED_FACE('',(#30350),#31574,.F.); +#33145=ADVANCED_FACE('',(#30351),#831,.T.); +#33146=ADVANCED_FACE('',(#30352),#31575,.F.); +#33147=ADVANCED_FACE('',(#30353),#31576,.F.); +#33148=ADVANCED_FACE('',(#30354),#832,.T.); +#33149=ADVANCED_FACE('',(#30355),#31577,.F.); +#33150=ADVANCED_FACE('',(#30356),#833,.F.); +#33151=ADVANCED_FACE('',(#30357),#31578,.F.); +#33152=ADVANCED_FACE('',(#30358),#834,.T.); +#33153=ADVANCED_FACE('',(#30359),#31579,.F.); +#33154=ADVANCED_FACE('',(#30360),#835,.F.); +#33155=ADVANCED_FACE('',(#30361),#836,.F.); +#33156=ADVANCED_FACE('',(#30362),#31580,.F.); +#33157=ADVANCED_FACE('',(#30363),#837,.T.); +#33158=ADVANCED_FACE('',(#30364),#838,.T.); +#33159=ADVANCED_FACE('',(#30365),#839,.T.); +#33160=ADVANCED_FACE('',(#30366),#31581,.F.); +#33161=ADVANCED_FACE('',(#30367),#840,.F.); +#33162=ADVANCED_FACE('',(#30368),#31582,.F.); +#33163=ADVANCED_FACE('',(#30369),#841,.T.); +#33164=ADVANCED_FACE('',(#30370),#31583,.F.); +#33165=ADVANCED_FACE('',(#30371),#31584,.F.); +#33166=ADVANCED_FACE('',(#30372),#842,.T.); +#33167=ADVANCED_FACE('',(#30373),#31585,.F.); +#33168=ADVANCED_FACE('',(#30374),#843,.F.); +#33169=ADVANCED_FACE('',(#30375),#31586,.F.); +#33170=ADVANCED_FACE('',(#30376),#844,.T.); +#33171=ADVANCED_FACE('',(#30377),#31587,.F.); +#33172=ADVANCED_FACE('',(#30378),#845,.F.); +#33173=ADVANCED_FACE('',(#30379),#846,.F.); +#33174=ADVANCED_FACE('',(#30380),#31588,.F.); +#33175=ADVANCED_FACE('',(#30381),#847,.T.); +#33176=ADVANCED_FACE('',(#30382),#848,.T.); +#33177=ADVANCED_FACE('',(#30383),#849,.T.); +#33178=ADVANCED_FACE('',(#30384),#31589,.F.); +#33179=ADVANCED_FACE('',(#30385),#850,.F.); +#33180=ADVANCED_FACE('',(#30386),#31590,.F.); +#33181=ADVANCED_FACE('',(#30387),#851,.T.); +#33182=ADVANCED_FACE('',(#30388),#31591,.F.); +#33183=ADVANCED_FACE('',(#30389),#31592,.F.); +#33184=ADVANCED_FACE('',(#30390),#852,.T.); +#33185=ADVANCED_FACE('',(#30391),#31593,.F.); +#33186=ADVANCED_FACE('',(#30392),#853,.F.); +#33187=ADVANCED_FACE('',(#30393),#31594,.F.); +#33188=ADVANCED_FACE('',(#30394),#854,.T.); +#33189=ADVANCED_FACE('',(#30395),#31595,.F.); +#33190=ADVANCED_FACE('',(#30396),#855,.F.); +#33191=ADVANCED_FACE('',(#30397),#856,.F.); +#33192=ADVANCED_FACE('',(#30398),#31596,.F.); +#33193=ADVANCED_FACE('',(#30399),#857,.T.); +#33194=ADVANCED_FACE('',(#30400),#858,.T.); +#33195=ADVANCED_FACE('',(#30401),#859,.T.); +#33196=ADVANCED_FACE('',(#30402),#31597,.F.); +#33197=ADVANCED_FACE('',(#30403),#860,.F.); +#33198=ADVANCED_FACE('',(#30404),#31598,.F.); +#33199=ADVANCED_FACE('',(#30405),#861,.T.); +#33200=ADVANCED_FACE('',(#30406),#31599,.F.); +#33201=ADVANCED_FACE('',(#30407),#31600,.F.); +#33202=ADVANCED_FACE('',(#30408),#862,.T.); +#33203=ADVANCED_FACE('',(#30409),#31601,.F.); +#33204=ADVANCED_FACE('',(#30410),#863,.F.); +#33205=ADVANCED_FACE('',(#30411),#31602,.F.); +#33206=ADVANCED_FACE('',(#30412),#864,.T.); +#33207=ADVANCED_FACE('',(#30413),#31603,.F.); +#33208=ADVANCED_FACE('',(#30414),#865,.F.); +#33209=ADVANCED_FACE('',(#30415),#866,.F.); +#33210=ADVANCED_FACE('',(#30416),#31604,.F.); +#33211=ADVANCED_FACE('',(#30417),#867,.T.); +#33212=ADVANCED_FACE('',(#30418),#868,.T.); +#33213=ADVANCED_FACE('',(#30419),#869,.T.); +#33214=ADVANCED_FACE('',(#30420),#31605,.F.); +#33215=ADVANCED_FACE('',(#30421),#870,.F.); +#33216=ADVANCED_FACE('',(#30422),#31606,.F.); +#33217=ADVANCED_FACE('',(#30423),#871,.T.); +#33218=ADVANCED_FACE('',(#30424),#31607,.F.); +#33219=ADVANCED_FACE('',(#30425),#31608,.F.); +#33220=ADVANCED_FACE('',(#30426),#872,.T.); +#33221=ADVANCED_FACE('',(#30427),#31609,.F.); +#33222=ADVANCED_FACE('',(#30428),#873,.F.); +#33223=ADVANCED_FACE('',(#30429),#31610,.F.); +#33224=ADVANCED_FACE('',(#30430),#874,.T.); +#33225=ADVANCED_FACE('',(#30431),#31611,.F.); +#33226=ADVANCED_FACE('',(#30432),#875,.F.); +#33227=ADVANCED_FACE('',(#30433),#876,.F.); +#33228=ADVANCED_FACE('',(#30434),#31612,.F.); +#33229=ADVANCED_FACE('',(#30435),#877,.T.); +#33230=ADVANCED_FACE('',(#30436),#878,.T.); +#33231=ADVANCED_FACE('',(#30437),#879,.T.); +#33232=ADVANCED_FACE('',(#30438),#31613,.F.); +#33233=ADVANCED_FACE('',(#30439),#880,.F.); +#33234=ADVANCED_FACE('',(#30440),#31614,.F.); +#33235=ADVANCED_FACE('',(#30441),#881,.T.); +#33236=ADVANCED_FACE('',(#30442),#31615,.F.); +#33237=ADVANCED_FACE('',(#30443),#31616,.F.); +#33238=ADVANCED_FACE('',(#30444),#882,.T.); +#33239=ADVANCED_FACE('',(#30445),#31617,.F.); +#33240=ADVANCED_FACE('',(#30446),#883,.F.); +#33241=ADVANCED_FACE('',(#30447),#31618,.F.); +#33242=ADVANCED_FACE('',(#30448),#884,.T.); +#33243=ADVANCED_FACE('',(#30449),#31619,.F.); +#33244=ADVANCED_FACE('',(#30450),#885,.F.); +#33245=ADVANCED_FACE('',(#30451),#886,.F.); +#33246=ADVANCED_FACE('',(#30452),#31620,.F.); +#33247=ADVANCED_FACE('',(#30453),#887,.T.); +#33248=ADVANCED_FACE('',(#30454),#888,.T.); +#33249=ADVANCED_FACE('',(#30455),#889,.T.); +#33250=ADVANCED_FACE('',(#30456),#31621,.F.); +#33251=ADVANCED_FACE('',(#30457),#890,.F.); +#33252=ADVANCED_FACE('',(#30458),#31622,.F.); +#33253=ADVANCED_FACE('',(#30459),#891,.T.); +#33254=ADVANCED_FACE('',(#30460),#31623,.F.); +#33255=ADVANCED_FACE('',(#30461),#31624,.F.); +#33256=ADVANCED_FACE('',(#30462),#892,.T.); +#33257=ADVANCED_FACE('',(#30463),#31625,.F.); +#33258=ADVANCED_FACE('',(#30464),#893,.F.); +#33259=ADVANCED_FACE('',(#30465),#31626,.F.); +#33260=ADVANCED_FACE('',(#30466),#894,.T.); +#33261=ADVANCED_FACE('',(#30467),#31627,.F.); +#33262=ADVANCED_FACE('',(#30468),#895,.F.); +#33263=ADVANCED_FACE('',(#30469),#896,.F.); +#33264=ADVANCED_FACE('',(#30470),#31628,.F.); +#33265=ADVANCED_FACE('',(#30471),#897,.T.); +#33266=ADVANCED_FACE('',(#30472),#898,.T.); +#33267=ADVANCED_FACE('',(#30473),#899,.T.); +#33268=ADVANCED_FACE('',(#30474),#31629,.F.); +#33269=ADVANCED_FACE('',(#30475),#900,.F.); +#33270=ADVANCED_FACE('',(#30476),#31630,.F.); +#33271=ADVANCED_FACE('',(#30477),#901,.T.); +#33272=ADVANCED_FACE('',(#30478),#31631,.F.); +#33273=ADVANCED_FACE('',(#30479),#31632,.F.); +#33274=ADVANCED_FACE('',(#30480),#902,.T.); +#33275=ADVANCED_FACE('',(#30481),#31633,.F.); +#33276=ADVANCED_FACE('',(#30482),#903,.F.); +#33277=ADVANCED_FACE('',(#30483),#31634,.F.); +#33278=ADVANCED_FACE('',(#30484),#904,.T.); +#33279=ADVANCED_FACE('',(#30485),#31635,.F.); +#33280=ADVANCED_FACE('',(#30486),#905,.F.); +#33281=ADVANCED_FACE('',(#30487),#906,.F.); +#33282=ADVANCED_FACE('',(#30488),#31636,.F.); +#33283=ADVANCED_FACE('',(#30489),#907,.T.); +#33284=ADVANCED_FACE('',(#30490),#908,.T.); +#33285=ADVANCED_FACE('',(#30491),#909,.T.); +#33286=ADVANCED_FACE('',(#30492),#31637,.F.); +#33287=ADVANCED_FACE('',(#30493),#910,.F.); +#33288=ADVANCED_FACE('',(#30494),#31638,.F.); +#33289=ADVANCED_FACE('',(#30495),#911,.T.); +#33290=ADVANCED_FACE('',(#30496),#31639,.F.); +#33291=ADVANCED_FACE('',(#30497),#31640,.F.); +#33292=ADVANCED_FACE('',(#30498),#912,.T.); +#33293=ADVANCED_FACE('',(#30499),#31641,.F.); +#33294=ADVANCED_FACE('',(#30500),#913,.F.); +#33295=ADVANCED_FACE('',(#30501),#31642,.F.); +#33296=ADVANCED_FACE('',(#30502),#914,.T.); +#33297=ADVANCED_FACE('',(#30503),#31643,.F.); +#33298=ADVANCED_FACE('',(#30504),#915,.F.); +#33299=ADVANCED_FACE('',(#30505),#916,.F.); +#33300=ADVANCED_FACE('',(#30506),#31644,.F.); +#33301=ADVANCED_FACE('',(#30507),#917,.T.); +#33302=ADVANCED_FACE('',(#30508),#918,.T.); +#33303=ADVANCED_FACE('',(#30509),#919,.T.); +#33304=ADVANCED_FACE('',(#30510),#31645,.F.); +#33305=ADVANCED_FACE('',(#30511),#920,.F.); +#33306=ADVANCED_FACE('',(#30512),#31646,.F.); +#33307=ADVANCED_FACE('',(#30513),#921,.T.); +#33308=ADVANCED_FACE('',(#30514),#31647,.F.); +#33309=ADVANCED_FACE('',(#30515),#31648,.F.); +#33310=ADVANCED_FACE('',(#30516),#922,.T.); +#33311=ADVANCED_FACE('',(#30517),#31649,.F.); +#33312=ADVANCED_FACE('',(#30518),#923,.F.); +#33313=ADVANCED_FACE('',(#30519),#31650,.F.); +#33314=ADVANCED_FACE('',(#30520),#924,.T.); +#33315=ADVANCED_FACE('',(#30521),#31651,.F.); +#33316=ADVANCED_FACE('',(#30522),#925,.F.); +#33317=ADVANCED_FACE('',(#30523),#926,.F.); +#33318=ADVANCED_FACE('',(#30524),#31652,.F.); +#33319=ADVANCED_FACE('',(#30525),#927,.T.); +#33320=ADVANCED_FACE('',(#30526),#928,.T.); +#33321=ADVANCED_FACE('',(#30527),#929,.T.); +#33322=ADVANCED_FACE('',(#30528),#31653,.F.); +#33323=ADVANCED_FACE('',(#30529),#930,.F.); +#33324=ADVANCED_FACE('',(#30530),#31654,.F.); +#33325=ADVANCED_FACE('',(#30531),#931,.T.); +#33326=ADVANCED_FACE('',(#30532),#31655,.F.); +#33327=ADVANCED_FACE('',(#30533),#31656,.F.); +#33328=ADVANCED_FACE('',(#30534),#932,.T.); +#33329=ADVANCED_FACE('',(#30535),#31657,.F.); +#33330=ADVANCED_FACE('',(#30536),#933,.F.); +#33331=ADVANCED_FACE('',(#30537),#31658,.F.); +#33332=ADVANCED_FACE('',(#30538),#934,.T.); +#33333=ADVANCED_FACE('',(#30539),#31659,.F.); +#33334=ADVANCED_FACE('',(#30540),#935,.F.); +#33335=ADVANCED_FACE('',(#30541),#936,.F.); +#33336=ADVANCED_FACE('',(#30542),#31660,.F.); +#33337=ADVANCED_FACE('',(#30543),#937,.T.); +#33338=ADVANCED_FACE('',(#30544),#938,.T.); +#33339=ADVANCED_FACE('',(#30545),#939,.T.); +#33340=ADVANCED_FACE('',(#30546),#31661,.F.); +#33341=ADVANCED_FACE('',(#30547),#940,.F.); +#33342=ADVANCED_FACE('',(#30548),#31662,.F.); +#33343=ADVANCED_FACE('',(#30549),#941,.T.); +#33344=ADVANCED_FACE('',(#30550),#31663,.F.); +#33345=ADVANCED_FACE('',(#30551),#31664,.F.); +#33346=ADVANCED_FACE('',(#30552),#942,.T.); +#33347=ADVANCED_FACE('',(#30553),#31665,.F.); +#33348=ADVANCED_FACE('',(#30554),#943,.F.); +#33349=ADVANCED_FACE('',(#30555),#31666,.F.); +#33350=ADVANCED_FACE('',(#30556),#944,.T.); +#33351=ADVANCED_FACE('',(#30557),#31667,.F.); +#33352=ADVANCED_FACE('',(#30558),#945,.F.); +#33353=ADVANCED_FACE('',(#30559),#946,.F.); +#33354=ADVANCED_FACE('',(#30560),#31668,.F.); +#33355=ADVANCED_FACE('',(#30561),#947,.T.); +#33356=ADVANCED_FACE('',(#30562),#948,.T.); +#33357=ADVANCED_FACE('',(#30563),#949,.T.); +#33358=ADVANCED_FACE('',(#30564),#31669,.F.); +#33359=ADVANCED_FACE('',(#30565),#950,.F.); +#33360=ADVANCED_FACE('',(#30566),#31670,.F.); +#33361=ADVANCED_FACE('',(#30567),#951,.T.); +#33362=ADVANCED_FACE('',(#30568),#31671,.F.); +#33363=ADVANCED_FACE('',(#30569),#31672,.F.); +#33364=ADVANCED_FACE('',(#30570),#952,.T.); +#33365=ADVANCED_FACE('',(#30571),#31673,.F.); +#33366=ADVANCED_FACE('',(#30572),#953,.F.); +#33367=ADVANCED_FACE('',(#30573),#31674,.F.); +#33368=ADVANCED_FACE('',(#30574),#954,.T.); +#33369=ADVANCED_FACE('',(#30575),#31675,.F.); +#33370=ADVANCED_FACE('',(#30576),#955,.F.); +#33371=ADVANCED_FACE('',(#30577),#956,.F.); +#33372=ADVANCED_FACE('',(#30578),#31676,.F.); +#33373=ADVANCED_FACE('',(#30579),#957,.T.); +#33374=ADVANCED_FACE('',(#30580),#958,.T.); +#33375=ADVANCED_FACE('',(#30581),#31677,.T.); +#33376=ADVANCED_FACE('',(#30582),#31678,.T.); +#33377=ADVANCED_FACE('',(#30583,#30584),#31679,.T.); +#33378=CLOSED_SHELL('',(#31680,#31681,#31682,#31683,#31684,#31685,#31686, +#31687,#31688,#31689,#31690,#31691,#31692,#31693,#31694,#31695,#31696,#31697, +#31698,#31699,#31700,#31701,#31702,#31703,#31704,#31705,#31706,#31707,#31708, +#31709,#31710,#31711,#31712,#31713,#31714,#31715,#31716,#31717,#31718,#31719, +#31720,#31721,#31722,#31723,#31724,#31725,#31726,#31727,#31728,#31729,#31730, +#31731,#31732,#31733,#31734,#31735,#31736,#31737,#31738,#31739,#31740,#31741, +#31742,#31743,#31744,#31745,#31746,#31747,#31748,#31749,#31750,#31751,#31752, +#31753,#31754,#31755,#31756,#31757,#31758,#31759,#31760,#31761,#31762,#31763, +#31764,#31765,#31766,#31767,#31768,#31769,#31770,#31771,#31772,#31773,#31774, +#31775,#31776,#31777,#31778,#31779,#31780,#31781,#31782,#31783,#31784,#31785, +#31786,#31787,#31788,#31789,#31790,#31791,#31792,#31793,#31794,#31795,#31796, +#31797,#31798,#31799,#31800,#31801,#31802,#31803,#31804,#31805,#31806,#31807, +#31808,#31809,#31810,#31811,#31812,#31813,#31814,#31815,#31816,#31817,#31818, +#31819,#31820,#31821,#31822,#31823,#31824,#31825,#31826,#31827,#31828,#31829, +#31830,#31831,#31832,#31833,#31834,#31835,#31836,#31837,#31838,#31839,#31840, +#31841,#31842,#31843,#31844,#31845,#31846,#31847,#31848,#31849,#31850,#31851, +#31852,#31853,#31854,#31855,#31856,#31857,#31858,#31859,#31860,#31861,#31862, +#31863,#31864,#31865,#31866,#31867,#31868,#31869,#31870,#31871,#31872,#31873, +#31874,#31875,#31876,#31877,#31878,#31879,#31880,#31881,#31882,#31883,#31884, +#31885,#31886,#31887,#31888,#31889,#31890,#31891,#31892,#31893,#31894,#31895, +#31896,#31897,#31898,#31899,#31900,#31901,#31902,#31903,#31904,#31905,#31906, +#31907,#31908,#31909,#31910,#31911,#31912,#31913,#31914,#31915,#31916,#31917, +#31918,#31919,#31920,#31921,#31922,#31923,#31924,#31925,#31926,#31927,#31928, +#31929,#31930,#31931,#31932,#31933,#31934,#31935,#31936,#31937,#31938,#31939, +#31940,#31941,#31942,#31943,#31944,#31945,#31946,#31947,#31948,#31949,#31950, +#31951,#31952,#31953,#31954,#31955,#31956,#31957,#31958,#31959,#31960,#31961, +#31962,#31963,#31964,#31965,#31966,#31967,#31968,#31969,#31970,#31971,#31972, +#31973,#31974,#31975,#31976,#31977,#31978,#31979,#31980,#31981,#31982,#31983, +#31984,#31985,#31986,#31987,#31988,#31989,#31990,#31991,#31992,#31993,#31994, +#31995,#31996,#31997,#31998,#31999,#32000,#32001,#32002,#32003,#32004,#32005, +#32006,#32007,#32008,#32009,#32010,#32011,#32012,#32013,#32014,#32015,#32016, +#32017,#32018,#32019,#32020,#32021,#32022,#32023,#32024,#32025,#32026,#32027, +#32028,#32029,#32030,#32031,#32032,#32033,#32034,#32035,#32036,#32037,#32038, +#32039,#32040,#32041,#32042,#32043,#32044,#32045,#32046,#32047,#32048,#32049, +#32050,#32051,#32052,#32053,#32054,#32055,#32056,#32057,#32058,#32059,#32060, +#32061,#32062,#32063,#32064,#32065,#32066,#32067,#32068,#32069,#32070,#32071, +#32072,#32073,#32074,#32075,#32076,#32077,#32078,#32079)); +#33379=CLOSED_SHELL('',(#32080,#32081,#32082,#32083,#32084,#32085,#32086, +#32087,#32088,#32089,#32090,#32091,#32092,#32093,#32094,#32095,#32096,#32097, +#32098,#32099,#32100,#32101,#32102,#32103,#32104,#32105,#32106,#32107,#32108, +#32109,#32110,#32111,#32112,#32113,#32114,#32115,#32116,#32117,#32118,#32119, +#32120,#32121,#32122,#32123,#32124,#32125,#32126,#32127,#32128,#32129,#32130, +#32131,#32132,#32133,#32134,#32135,#32136,#32137,#32138,#32139,#32140,#32141, +#32142,#32143,#32144,#32145,#32146,#32147,#32148,#32149,#32150,#32151,#32152, +#32153,#32154,#32155,#32156,#32157,#32158,#32159,#32160,#32161,#32162,#32163, +#32164,#32165,#32166,#32167,#32168,#32169,#32170,#32171,#32172,#32173,#32174, +#32175,#32176,#32177,#32178,#32179,#32180,#32181,#32182,#32183,#32184,#32185, +#32186,#32187,#32188,#32189,#32190,#32191,#32192,#32193,#32194,#32195,#32196, +#32197,#32198,#32199,#32200,#32201,#32202,#32203,#32204,#32205,#32206,#32207, +#32208,#32209,#32210,#32211,#32212,#32213,#32214,#32215,#32216,#32217,#32218, +#32219,#32220,#32221,#32222,#32223,#32224,#32225,#32226,#32227,#32228,#32229, +#32230,#32231,#32232,#32233,#32234,#32235,#32236,#32237,#32238,#32239,#32240, +#32241,#32242,#32243,#32244,#32245,#32246,#32247,#32248,#32249,#32250,#32251, +#32252,#32253,#32254,#32255,#32256,#32257,#32258,#32259,#32260,#32261,#32262, +#32263,#32264,#32265,#32266,#32267,#32268,#32269,#32270,#32271,#32272,#32273, +#32274,#32275,#32276,#32277,#32278,#32279,#32280,#32281,#32282,#32283,#32284, +#32285,#32286,#32287,#32288,#32289,#32290,#32291,#32292,#32293,#32294,#32295, +#32296,#32297,#32298,#32299,#32300,#32301,#32302,#32303,#32304,#32305,#32306, +#32307,#32308,#32309,#32310,#32311,#32312,#32313,#32314,#32315,#32316,#32317, +#32318,#32319,#32320,#32321,#32322,#32323,#32324,#32325,#32326,#32327,#32328, +#32329,#32330,#32331,#32332,#32333,#32334,#32335,#32336,#32337,#32338,#32339, +#32340,#32341,#32342,#32343,#32344,#32345,#32346,#32347,#32348,#32349,#32350, +#32351,#32352,#32353,#32354,#32355,#32356,#32357,#32358,#32359,#32360,#32361, +#32362,#32363,#32364,#32365,#32366,#32367,#32368,#32369,#32370,#32371,#32372, +#32373,#32374,#32375,#32376,#32377,#32378,#32379,#32380,#32381,#32382,#32383, +#32384,#32385,#32386,#32387,#32388,#32389,#32390,#32391,#32392,#32393,#32394, +#32395,#32396,#32397,#32398,#32399,#32400,#32401,#32402,#32403,#32404,#32405, +#32406,#32407,#32408,#32409,#32410,#32411,#32412,#32413,#32414,#32415,#32416, +#32417,#32418,#32419,#32420,#32421,#32422,#32423,#32424,#32425,#32426,#32427, +#32428,#32429,#32430,#32431,#32432,#32433,#32434,#32435,#32436,#32437,#32438, +#32439,#32440,#32441,#32442,#32443,#32444,#32445,#32446,#32447,#32448,#32449, +#32450,#32451,#32452,#32453,#32454,#32455,#32456,#32457,#32458,#32459,#32460, +#32461,#32462,#32463,#32464,#32465,#32466,#32467,#32468,#32469,#32470,#32471, +#32472,#32473,#32474,#32475,#32476,#32477,#32478,#32479,#32480,#32481,#32482, +#32483,#32484,#32485,#32486,#32487,#32488)); +#33380=CLOSED_SHELL('',(#32489,#32490,#32491,#32492,#32493,#32494,#32495, +#32496,#32497,#32498,#32499,#32500,#32501,#32502,#32503,#32504,#32505,#32506, +#32507,#32508,#32509,#32510,#32511,#32512,#32513,#32514,#32515,#32516,#32517, +#32518,#32519,#32520,#32521,#32522,#32523,#32524,#32525,#32526,#32527,#32528, +#32529,#32530,#32531,#32532,#32533,#32534,#32535,#32536,#32537,#32538,#32539, +#32540,#32541,#32542,#32543,#32544,#32545,#32546,#32547,#32548,#32549,#32550, +#32551,#32552,#32553,#32554,#32555,#32556,#32557,#32558,#32559,#32560,#32561, +#32562,#32563,#32564,#32565,#32566,#32567,#32568,#32569,#32570,#32571,#32572, +#32573,#32574,#32575,#32576,#32577,#32578,#32579,#32580,#32581,#32582,#32583, +#32584,#32585,#32586,#32587,#32588,#32589,#32590,#32591,#32592,#32593,#32594, +#32595,#32596,#32597,#32598,#32599,#32600,#32601,#32602,#32603,#32604,#32605, +#32606,#32607,#32608,#32609,#32610,#32611,#32612,#32613,#32614,#32615,#32616, +#32617,#32618,#32619,#32620,#32621,#32622,#32623,#32624,#32625,#32626,#32627, +#32628,#32629,#32630,#32631,#32632,#32633,#32634,#32635,#32636,#32637,#32638, +#32639,#32640,#32641,#32642,#32643,#32644,#32645,#32646,#32647,#32648,#32649, +#32650,#32651,#32652,#32653,#32654,#32655,#32656,#32657,#32658,#32659,#32660, +#32661,#32662,#32663,#32664,#32665,#32666,#32667,#32668,#32669,#32670,#32671, +#32672,#32673,#32674,#32675,#32676,#32677,#32678,#32679,#32680,#32681,#32682, +#32683,#32684,#32685,#32686,#32687,#32688,#32689,#32690,#32691,#32692,#32693, +#32694,#32695,#32696,#32697,#32698,#32699,#32700,#32701,#32702,#32703,#32704, +#32705,#32706,#32707,#32708,#32709,#32710,#32711,#32712,#32713,#32714,#32715, +#32716,#32717,#32718,#32719,#32720,#32721,#32722,#32723,#32724,#32725,#32726, +#32727,#32728,#32729,#32730,#32731,#32732,#32733,#32734,#32735,#32736,#32737, +#32738,#32739,#32740,#32741,#32742,#32743,#32744,#32745,#32746,#32747,#32748, +#32749,#32750,#32751,#32752,#32753,#32754,#32755,#32756,#32757,#32758,#32759, +#32760,#32761,#32762,#32763,#32764,#32765,#32766,#32767,#32768,#32769,#32770, +#32771,#32772,#32773,#32774,#32775,#32776,#32777,#32778,#32779,#32780,#32781, +#32782,#32783,#32784,#32785,#32786,#32787,#32788,#32789,#32790,#32791,#32792, +#32793,#32794,#32795,#32796,#32797,#32798,#32799,#32800,#32801,#32802,#32803, +#32804,#32805,#32806,#32807,#32808,#32809,#32810,#32811,#32812,#32813,#32814, +#32815,#32816,#32817,#32818,#32819,#32820,#32821,#32822,#32823,#32824,#32825, +#32826,#32827,#32828,#32829,#32830,#32831,#32832,#32833,#32834,#32835,#32836, +#32837,#32838,#32839,#32840,#32841,#32842,#32843,#32844,#32845,#32846,#32847, +#32848,#32849,#32850,#32851,#32852,#32853,#32854,#32855,#32856,#32857,#32858, +#32859,#32860,#32861,#32862,#32863,#32864,#32865,#32866,#32867,#32868,#32869, +#32870,#32871,#32872,#32873,#32874,#32875,#32876,#32877,#32878,#32879,#32880, +#32881,#32882,#32883,#32884,#32885,#32886,#32887,#32888,#32889,#32890,#32891, +#32892,#32893,#32894,#32895,#32896,#32897,#32898,#32899,#32900,#32901,#32902, +#32903,#32904,#32905,#32906,#32907,#32908,#32909,#32910,#32911,#32912,#32913, +#32914,#32915,#32916,#32917,#32918,#32919,#32920,#32921,#32922,#32923,#32924, +#32925,#32926,#32927,#32928,#32929,#32930,#32931,#32932,#32933,#32934,#32935, +#32936,#32937,#32938,#32939,#32940,#32941,#32942,#32943,#32944,#32945,#32946, +#32947,#32948,#32949,#32950,#32951,#32952,#32953,#32954,#32955,#32956,#32957, +#32958,#32959,#32960,#32961,#32962,#32963,#32964,#32965,#32966,#32967,#32968, +#32969,#32970,#32971,#32972,#32973,#32974,#32975,#32976,#32977,#32978,#32979, +#32980,#32981,#32982,#32983,#32984,#32985,#32986,#32987,#32988,#32989,#32990, +#32991,#32992,#32993,#32994,#32995,#32996,#32997,#32998,#32999,#33000,#33001, +#33002,#33003,#33004,#33005,#33006,#33007,#33008,#33009,#33010,#33011,#33012, +#33013,#33014,#33015,#33016,#33017,#33018,#33019,#33020,#33021,#33022,#33023, +#33024,#33025,#33026,#33027,#33028,#33029,#33030,#33031,#33032,#33033,#33034, +#33035,#33036,#33037,#33038,#33039,#33040,#33041,#33042,#33043,#33044,#33045, +#33046,#33047,#33048,#33049,#33050,#33051,#33052,#33053,#33054,#33055,#33056, +#33057,#33058,#33059,#33060,#33061,#33062,#33063,#33064,#33065,#33066,#33067, +#33068,#33069,#33070,#33071,#33072,#33073,#33074,#33075,#33076,#33077,#33078, +#33079,#33080,#33081,#33082,#33083,#33084,#33085,#33086,#33087,#33088,#33089, +#33090,#33091,#33092,#33093,#33094,#33095,#33096,#33097,#33098,#33099,#33100, +#33101,#33102,#33103,#33104,#33105,#33106,#33107,#33108,#33109,#33110,#33111, +#33112,#33113,#33114,#33115,#33116,#33117,#33118,#33119,#33120,#33121,#33122, +#33123,#33124,#33125,#33126,#33127,#33128,#33129,#33130,#33131,#33132,#33133, +#33134,#33135,#33136,#33137,#33138,#33139,#33140,#33141,#33142,#33143,#33144, +#33145,#33146,#33147,#33148,#33149,#33150,#33151,#33152,#33153,#33154,#33155, +#33156,#33157,#33158,#33159,#33160,#33161,#33162,#33163,#33164,#33165,#33166, +#33167,#33168,#33169,#33170,#33171,#33172,#33173,#33174,#33175,#33176,#33177, +#33178,#33179,#33180,#33181,#33182,#33183,#33184,#33185,#33186,#33187,#33188, +#33189,#33190,#33191,#33192,#33193,#33194,#33195,#33196,#33197,#33198,#33199, +#33200,#33201,#33202,#33203,#33204,#33205,#33206,#33207,#33208,#33209,#33210, +#33211,#33212,#33213,#33214,#33215,#33216,#33217,#33218,#33219,#33220,#33221, +#33222,#33223,#33224,#33225,#33226,#33227,#33228,#33229,#33230,#33231,#33232, +#33233,#33234,#33235,#33236,#33237,#33238,#33239,#33240,#33241,#33242,#33243, +#33244,#33245,#33246,#33247,#33248,#33249,#33250,#33251,#33252,#33253,#33254, +#33255,#33256,#33257,#33258,#33259,#33260,#33261,#33262,#33263,#33264,#33265, +#33266,#33267,#33268,#33269,#33270,#33271,#33272,#33273,#33274,#33275,#33276, +#33277,#33278,#33279,#33280,#33281,#33282,#33283,#33284,#33285,#33286,#33287, +#33288,#33289,#33290,#33291,#33292,#33293,#33294,#33295,#33296,#33297,#33298, +#33299,#33300,#33301,#33302,#33303,#33304,#33305,#33306,#33307,#33308,#33309, +#33310,#33311,#33312,#33313,#33314,#33315,#33316,#33317,#33318,#33319,#33320, +#33321,#33322,#33323,#33324,#33325,#33326,#33327,#33328,#33329,#33330,#33331, +#33332,#33333,#33334,#33335,#33336,#33337,#33338,#33339,#33340,#33341,#33342, +#33343,#33344,#33345,#33346,#33347,#33348,#33349,#33350,#33351,#33352,#33353, +#33354,#33355,#33356,#33357,#33358,#33359,#33360,#33361,#33362,#33363,#33364, +#33365,#33366,#33367,#33368,#33369,#33370,#33371,#33372,#33373,#33374,#33375, +#33376,#33377)); +#33381=STYLED_ITEM('',(#33384),#33405); +#33382=STYLED_ITEM('',(#33385),#33406); +#33383=STYLED_ITEM('',(#33386),#33407); +#33384=PRESENTATION_STYLE_ASSIGNMENT((#33387)); +#33385=PRESENTATION_STYLE_ASSIGNMENT((#33388)); +#33386=PRESENTATION_STYLE_ASSIGNMENT((#33389)); +#33387=SURFACE_STYLE_USAGE(.BOTH.,#33390); +#33388=SURFACE_STYLE_USAGE(.BOTH.,#33391); +#33389=SURFACE_STYLE_USAGE(.BOTH.,#33392); +#33390=SURFACE_SIDE_STYLE('',(#33393)); +#33391=SURFACE_SIDE_STYLE('',(#33394)); +#33392=SURFACE_SIDE_STYLE('',(#33395)); +#33393=SURFACE_STYLE_FILL_AREA(#33396); +#33394=SURFACE_STYLE_FILL_AREA(#33397); +#33395=SURFACE_STYLE_FILL_AREA(#33398); +#33396=FILL_AREA_STYLE('',(#33399)); +#33397=FILL_AREA_STYLE('',(#33400)); +#33398=FILL_AREA_STYLE('',(#33401)); +#33399=FILL_AREA_STYLE_COLOUR('',#33402); +#33400=FILL_AREA_STYLE_COLOUR('',#33403); +#33401=FILL_AREA_STYLE_COLOUR('',#33404); +#33402=COLOUR_RGB('',0.0549019612371922,0.0549019612371922,0.0549019612371922); +#33403=COLOUR_RGB('',0.670588254928589,0.670588254928589,0.670588254928589); +#33404=COLOUR_RGB('',0.831372559070587,0.701960802078247,0.176470592617989); +#33405=MANIFOLD_SOLID_BREP('ERM8-020-05.0-DVT',#33378); +#33406=MANIFOLD_SOLID_BREP('ERM8-020-05.0-DV_pin',#33379); +#33407=MANIFOLD_SOLID_BREP('ERM8-020-05.0-DV3_pin',#33380); +#33408=SHAPE_DEFINITION_REPRESENTATION(#55671,#33412); +#33409=SHAPE_DEFINITION_REPRESENTATION(#55672,#33413); +#33410=SHAPE_DEFINITION_REPRESENTATION(#55674,#33414); +#33411=SHAPE_DEFINITION_REPRESENTATION(#55676,#33415); +#33412=SHAPE_REPRESENTATION('ERM8-020-05.0-L-DV-TR',(#33416,#33902,#34472, +#36082),#55660); +#33413=SHAPE_REPRESENTATION('ERM8-020-05.0-DVT',(#33416),#55661); +#33414=SHAPE_REPRESENTATION('ERM8-020-05.0-DV_pin',(#33416),#55662); +#33415=SHAPE_REPRESENTATION('ERM8-020-05.0-DV3_pin',(#33416),#55663); +#33416=AXIS2_PLACEMENT_3D('',#45116,#36083,#36084); +#33417=AXIS2_PLACEMENT_3D('',#45117,#36085,#36086); +#33418=AXIS2_PLACEMENT_3D('',#45130,#36093,#36094); +#33419=AXIS2_PLACEMENT_3D('',#45143,#36101,#36102); +#33420=AXIS2_PLACEMENT_3D('',#45168,#36115,#36116); +#33421=AXIS2_PLACEMENT_3D('',#45172,#36118,#36119); +#33422=AXIS2_PLACEMENT_3D('',#45203,#36135,#36136); +#33423=AXIS2_PLACEMENT_3D('',#45207,#36138,#36139); +#33424=AXIS2_PLACEMENT_3D('',#45211,#36141,#36142); +#33425=AXIS2_PLACEMENT_3D('',#45213,#36143,#36144); +#33426=AXIS2_PLACEMENT_3D('',#45215,#36145,#36146); +#33427=AXIS2_PLACEMENT_3D('',#45217,#36147,#36148); +#33428=AXIS2_PLACEMENT_3D('',#45219,#36149,#36150); +#33429=AXIS2_PLACEMENT_3D('',#45223,#36152,#36153); +#33430=AXIS2_PLACEMENT_3D('',#45228,#36156,#36157); +#33431=AXIS2_PLACEMENT_3D('',#45233,#36159,#36160); +#33432=AXIS2_PLACEMENT_3D('',#45237,#36162,#36163); +#33433=AXIS2_PLACEMENT_3D('',#45241,#36165,#36166); +#33434=AXIS2_PLACEMENT_3D('',#45244,#36168,#36169); +#33435=AXIS2_PLACEMENT_3D('',#45249,#36171,#36172); +#33436=AXIS2_PLACEMENT_3D('',#45251,#36173,#36174); +#33437=AXIS2_PLACEMENT_3D('',#45253,#36175,#36176); +#33438=AXIS2_PLACEMENT_3D('',#45255,#36177,#36178); +#33439=AXIS2_PLACEMENT_3D('',#45257,#36179,#36180); +#33440=AXIS2_PLACEMENT_3D('',#45261,#36182,#36183); +#33441=AXIS2_PLACEMENT_3D('',#45265,#36185,#36186); +#33442=AXIS2_PLACEMENT_3D('',#45266,#36187,#36188); +#33443=AXIS2_PLACEMENT_3D('',#45277,#36195,#36196); +#33444=AXIS2_PLACEMENT_3D('',#45761,#36440,#36441); +#33445=AXIS2_PLACEMENT_3D('',#45771,#36448,#36449); +#33446=AXIS2_PLACEMENT_3D('',#45780,#36454,#36455); +#33447=AXIS2_PLACEMENT_3D('',#45789,#36460,#36461); +#33448=AXIS2_PLACEMENT_3D('',#45790,#36462,#36463); +#33449=AXIS2_PLACEMENT_3D('',#45802,#36471,#36472); +#33450=AXIS2_PLACEMENT_3D('',#45805,#36474,#36475); +#33451=AXIS2_PLACEMENT_3D('',#45815,#36482,#36483); +#33452=AXIS2_PLACEMENT_3D('',#45824,#36488,#36489); +#33453=AXIS2_PLACEMENT_3D('',#45833,#36494,#36495); +#33454=AXIS2_PLACEMENT_3D('',#45834,#36496,#36497); +#33455=AXIS2_PLACEMENT_3D('',#45846,#36505,#36506); +#33456=AXIS2_PLACEMENT_3D('',#45849,#36508,#36509); +#33457=AXIS2_PLACEMENT_3D('',#45859,#36516,#36517); +#33458=AXIS2_PLACEMENT_3D('',#45868,#36522,#36523); +#33459=AXIS2_PLACEMENT_3D('',#45877,#36528,#36529); +#33460=AXIS2_PLACEMENT_3D('',#45878,#36530,#36531); +#33461=AXIS2_PLACEMENT_3D('',#45890,#36539,#36540); +#33462=AXIS2_PLACEMENT_3D('',#45893,#36542,#36543); +#33463=AXIS2_PLACEMENT_3D('',#45903,#36550,#36551); +#33464=AXIS2_PLACEMENT_3D('',#45912,#36556,#36557); +#33465=AXIS2_PLACEMENT_3D('',#45921,#36562,#36563); +#33466=AXIS2_PLACEMENT_3D('',#45922,#36564,#36565); +#33467=AXIS2_PLACEMENT_3D('',#45934,#36573,#36574); +#33468=AXIS2_PLACEMENT_3D('',#45937,#36576,#36577); +#33469=AXIS2_PLACEMENT_3D('',#45947,#36584,#36585); +#33470=AXIS2_PLACEMENT_3D('',#45956,#36590,#36591); +#33471=AXIS2_PLACEMENT_3D('',#45965,#36596,#36597); +#33472=AXIS2_PLACEMENT_3D('',#45966,#36598,#36599); +#33473=AXIS2_PLACEMENT_3D('',#45978,#36607,#36608); +#33474=AXIS2_PLACEMENT_3D('',#45981,#36610,#36611); +#33475=AXIS2_PLACEMENT_3D('',#45991,#36618,#36619); +#33476=AXIS2_PLACEMENT_3D('',#46000,#36624,#36625); +#33477=AXIS2_PLACEMENT_3D('',#46009,#36630,#36631); +#33478=AXIS2_PLACEMENT_3D('',#46010,#36632,#36633); +#33479=AXIS2_PLACEMENT_3D('',#46022,#36641,#36642); +#33480=AXIS2_PLACEMENT_3D('',#46025,#36644,#36645); +#33481=AXIS2_PLACEMENT_3D('',#46035,#36652,#36653); +#33482=AXIS2_PLACEMENT_3D('',#46044,#36658,#36659); +#33483=AXIS2_PLACEMENT_3D('',#46053,#36664,#36665); +#33484=AXIS2_PLACEMENT_3D('',#46054,#36666,#36667); +#33485=AXIS2_PLACEMENT_3D('',#46066,#36675,#36676); +#33486=AXIS2_PLACEMENT_3D('',#46069,#36678,#36679); +#33487=AXIS2_PLACEMENT_3D('',#46079,#36686,#36687); +#33488=AXIS2_PLACEMENT_3D('',#46088,#36692,#36693); +#33489=AXIS2_PLACEMENT_3D('',#46097,#36698,#36699); +#33490=AXIS2_PLACEMENT_3D('',#46098,#36700,#36701); +#33491=AXIS2_PLACEMENT_3D('',#46110,#36709,#36710); +#33492=AXIS2_PLACEMENT_3D('',#46113,#36712,#36713); +#33493=AXIS2_PLACEMENT_3D('',#46123,#36720,#36721); +#33494=AXIS2_PLACEMENT_3D('',#46132,#36726,#36727); +#33495=AXIS2_PLACEMENT_3D('',#46141,#36732,#36733); +#33496=AXIS2_PLACEMENT_3D('',#46142,#36734,#36735); +#33497=AXIS2_PLACEMENT_3D('',#46154,#36743,#36744); +#33498=AXIS2_PLACEMENT_3D('',#46157,#36746,#36747); +#33499=AXIS2_PLACEMENT_3D('',#46167,#36754,#36755); +#33500=AXIS2_PLACEMENT_3D('',#46176,#36760,#36761); +#33501=AXIS2_PLACEMENT_3D('',#46185,#36766,#36767); +#33502=AXIS2_PLACEMENT_3D('',#46186,#36768,#36769); +#33503=AXIS2_PLACEMENT_3D('',#46198,#36777,#36778); +#33504=AXIS2_PLACEMENT_3D('',#46201,#36780,#36781); +#33505=AXIS2_PLACEMENT_3D('',#46211,#36788,#36789); +#33506=AXIS2_PLACEMENT_3D('',#46220,#36794,#36795); +#33507=AXIS2_PLACEMENT_3D('',#46229,#36800,#36801); +#33508=AXIS2_PLACEMENT_3D('',#46230,#36802,#36803); +#33509=AXIS2_PLACEMENT_3D('',#46242,#36811,#36812); +#33510=AXIS2_PLACEMENT_3D('',#46245,#36814,#36815); +#33511=AXIS2_PLACEMENT_3D('',#46255,#36822,#36823); +#33512=AXIS2_PLACEMENT_3D('',#46264,#36828,#36829); +#33513=AXIS2_PLACEMENT_3D('',#46273,#36834,#36835); +#33514=AXIS2_PLACEMENT_3D('',#46274,#36836,#36837); +#33515=AXIS2_PLACEMENT_3D('',#46286,#36845,#36846); +#33516=AXIS2_PLACEMENT_3D('',#46289,#36848,#36849); +#33517=AXIS2_PLACEMENT_3D('',#46299,#36856,#36857); +#33518=AXIS2_PLACEMENT_3D('',#46308,#36862,#36863); +#33519=AXIS2_PLACEMENT_3D('',#46317,#36868,#36869); +#33520=AXIS2_PLACEMENT_3D('',#46318,#36870,#36871); +#33521=AXIS2_PLACEMENT_3D('',#46330,#36879,#36880); +#33522=AXIS2_PLACEMENT_3D('',#46333,#36882,#36883); +#33523=AXIS2_PLACEMENT_3D('',#46343,#36890,#36891); +#33524=AXIS2_PLACEMENT_3D('',#46352,#36896,#36897); +#33525=AXIS2_PLACEMENT_3D('',#46361,#36902,#36903); +#33526=AXIS2_PLACEMENT_3D('',#46362,#36904,#36905); +#33527=AXIS2_PLACEMENT_3D('',#46374,#36913,#36914); +#33528=AXIS2_PLACEMENT_3D('',#46377,#36916,#36917); +#33529=AXIS2_PLACEMENT_3D('',#46387,#36924,#36925); +#33530=AXIS2_PLACEMENT_3D('',#46396,#36930,#36931); +#33531=AXIS2_PLACEMENT_3D('',#46405,#36936,#36937); +#33532=AXIS2_PLACEMENT_3D('',#46406,#36938,#36939); +#33533=AXIS2_PLACEMENT_3D('',#46418,#36947,#36948); +#33534=AXIS2_PLACEMENT_3D('',#46421,#36950,#36951); +#33535=AXIS2_PLACEMENT_3D('',#46431,#36958,#36959); +#33536=AXIS2_PLACEMENT_3D('',#46440,#36964,#36965); +#33537=AXIS2_PLACEMENT_3D('',#46449,#36970,#36971); +#33538=AXIS2_PLACEMENT_3D('',#46450,#36972,#36973); +#33539=AXIS2_PLACEMENT_3D('',#46462,#36981,#36982); +#33540=AXIS2_PLACEMENT_3D('',#46465,#36984,#36985); +#33541=AXIS2_PLACEMENT_3D('',#46475,#36992,#36993); +#33542=AXIS2_PLACEMENT_3D('',#46484,#36998,#36999); +#33543=AXIS2_PLACEMENT_3D('',#46493,#37004,#37005); +#33544=AXIS2_PLACEMENT_3D('',#46494,#37006,#37007); +#33545=AXIS2_PLACEMENT_3D('',#46506,#37015,#37016); +#33546=AXIS2_PLACEMENT_3D('',#46509,#37018,#37019); +#33547=AXIS2_PLACEMENT_3D('',#46519,#37026,#37027); +#33548=AXIS2_PLACEMENT_3D('',#46528,#37032,#37033); +#33549=AXIS2_PLACEMENT_3D('',#46537,#37038,#37039); +#33550=AXIS2_PLACEMENT_3D('',#46538,#37040,#37041); +#33551=AXIS2_PLACEMENT_3D('',#46550,#37049,#37050); +#33552=AXIS2_PLACEMENT_3D('',#46553,#37052,#37053); +#33553=AXIS2_PLACEMENT_3D('',#46563,#37060,#37061); +#33554=AXIS2_PLACEMENT_3D('',#46572,#37066,#37067); +#33555=AXIS2_PLACEMENT_3D('',#46581,#37072,#37073); +#33556=AXIS2_PLACEMENT_3D('',#46582,#37074,#37075); +#33557=AXIS2_PLACEMENT_3D('',#46594,#37083,#37084); +#33558=AXIS2_PLACEMENT_3D('',#46597,#37086,#37087); +#33559=AXIS2_PLACEMENT_3D('',#46607,#37094,#37095); +#33560=AXIS2_PLACEMENT_3D('',#46613,#37098,#37099); +#33561=AXIS2_PLACEMENT_3D('',#46626,#37107,#37108); +#33562=AXIS2_PLACEMENT_3D('',#46632,#37112,#37113); +#33563=AXIS2_PLACEMENT_3D('',#46638,#37117,#37118); +#33564=AXIS2_PLACEMENT_3D('',#46639,#37119,#37120); +#33565=AXIS2_PLACEMENT_3D('',#46651,#37128,#37129); +#33566=AXIS2_PLACEMENT_3D('',#46661,#37135,#37136); +#33567=AXIS2_PLACEMENT_3D('',#46663,#37138,#37139); +#33568=AXIS2_PLACEMENT_3D('',#46665,#37141,#37142); +#33569=AXIS2_PLACEMENT_3D('',#46667,#37144,#37145); +#33570=AXIS2_PLACEMENT_3D('',#46669,#37147,#37148); +#33571=AXIS2_PLACEMENT_3D('',#46671,#37150,#37151); +#33572=AXIS2_PLACEMENT_3D('',#46673,#37153,#37154); +#33573=AXIS2_PLACEMENT_3D('',#46675,#37156,#37157); +#33574=AXIS2_PLACEMENT_3D('',#46677,#37159,#37160); +#33575=AXIS2_PLACEMENT_3D('',#46679,#37162,#37163); +#33576=AXIS2_PLACEMENT_3D('',#46681,#37165,#37166); +#33577=AXIS2_PLACEMENT_3D('',#46683,#37168,#37169); +#33578=AXIS2_PLACEMENT_3D('',#46685,#37171,#37172); +#33579=AXIS2_PLACEMENT_3D('',#46687,#37174,#37175); +#33580=AXIS2_PLACEMENT_3D('',#46689,#37177,#37178); +#33581=AXIS2_PLACEMENT_3D('',#46691,#37180,#37181); +#33582=AXIS2_PLACEMENT_3D('',#46693,#37183,#37184); +#33583=AXIS2_PLACEMENT_3D('',#46695,#37186,#37187); +#33584=AXIS2_PLACEMENT_3D('',#46697,#37189,#37190); +#33585=AXIS2_PLACEMENT_3D('',#46699,#37192,#37193); +#33586=AXIS2_PLACEMENT_3D('',#46709,#37199,#37200); +#33587=AXIS2_PLACEMENT_3D('',#46717,#37205,#37206); +#33588=AXIS2_PLACEMENT_3D('',#46719,#37208,#37209); +#33589=AXIS2_PLACEMENT_3D('',#46721,#37211,#37212); +#33590=AXIS2_PLACEMENT_3D('',#46723,#37214,#37215); +#33591=AXIS2_PLACEMENT_3D('',#46725,#37217,#37218); +#33592=AXIS2_PLACEMENT_3D('',#46727,#37220,#37221); +#33593=AXIS2_PLACEMENT_3D('',#46729,#37223,#37224); +#33594=AXIS2_PLACEMENT_3D('',#46731,#37226,#37227); +#33595=AXIS2_PLACEMENT_3D('',#46733,#37229,#37230); +#33596=AXIS2_PLACEMENT_3D('',#46735,#37232,#37233); +#33597=AXIS2_PLACEMENT_3D('',#46737,#37235,#37236); +#33598=AXIS2_PLACEMENT_3D('',#46739,#37238,#37239); +#33599=AXIS2_PLACEMENT_3D('',#46741,#37241,#37242); +#33600=AXIS2_PLACEMENT_3D('',#46743,#37244,#37245); +#33601=AXIS2_PLACEMENT_3D('',#46745,#37247,#37248); +#33602=AXIS2_PLACEMENT_3D('',#46747,#37250,#37251); +#33603=AXIS2_PLACEMENT_3D('',#46749,#37253,#37254); +#33604=AXIS2_PLACEMENT_3D('',#46751,#37256,#37257); +#33605=AXIS2_PLACEMENT_3D('',#46753,#37259,#37260); +#33606=AXIS2_PLACEMENT_3D('',#46755,#37262,#37263); +#33607=AXIS2_PLACEMENT_3D('',#46763,#37268,#37269); +#33608=AXIS2_PLACEMENT_3D('',#46765,#37271,#37272); +#33609=AXIS2_PLACEMENT_3D('',#46766,#37273,#37274); +#33610=AXIS2_PLACEMENT_3D('',#46767,#37275,#37276); +#33611=AXIS2_PLACEMENT_3D('',#46768,#37277,#37278); +#33612=AXIS2_PLACEMENT_3D('',#46769,#37279,#37280); +#33613=AXIS2_PLACEMENT_3D('',#46770,#37281,#37282); +#33614=AXIS2_PLACEMENT_3D('',#46771,#37283,#37284); +#33615=AXIS2_PLACEMENT_3D('',#46772,#37285,#37286); +#33616=AXIS2_PLACEMENT_3D('',#46773,#37287,#37288); +#33617=AXIS2_PLACEMENT_3D('',#46774,#37289,#37290); +#33618=AXIS2_PLACEMENT_3D('',#46775,#37291,#37292); +#33619=AXIS2_PLACEMENT_3D('',#46776,#37293,#37294); +#33620=AXIS2_PLACEMENT_3D('',#46777,#37295,#37296); +#33621=AXIS2_PLACEMENT_3D('',#46778,#37297,#37298); +#33622=AXIS2_PLACEMENT_3D('',#46779,#37299,#37300); +#33623=AXIS2_PLACEMENT_3D('',#46780,#37301,#37302); +#33624=AXIS2_PLACEMENT_3D('',#46781,#37303,#37304); +#33625=AXIS2_PLACEMENT_3D('',#46782,#37305,#37306); +#33626=AXIS2_PLACEMENT_3D('',#46783,#37307,#37308); +#33627=AXIS2_PLACEMENT_3D('',#46784,#37309,#37310); +#33628=AXIS2_PLACEMENT_3D('',#46786,#37312,#37313); +#33629=AXIS2_PLACEMENT_3D('',#46792,#37317,#37318); +#33630=AXIS2_PLACEMENT_3D('',#46798,#37322,#37323); +#33631=AXIS2_PLACEMENT_3D('',#46804,#37327,#37328); +#33632=AXIS2_PLACEMENT_3D('',#46810,#37332,#37333); +#33633=AXIS2_PLACEMENT_3D('',#46816,#37337,#37338); +#33634=AXIS2_PLACEMENT_3D('',#46822,#37342,#37343); +#33635=AXIS2_PLACEMENT_3D('',#46828,#37347,#37348); +#33636=AXIS2_PLACEMENT_3D('',#46834,#37352,#37353); +#33637=AXIS2_PLACEMENT_3D('',#46840,#37357,#37358); +#33638=AXIS2_PLACEMENT_3D('',#46846,#37362,#37363); +#33639=AXIS2_PLACEMENT_3D('',#46852,#37367,#37368); +#33640=AXIS2_PLACEMENT_3D('',#46858,#37372,#37373); +#33641=AXIS2_PLACEMENT_3D('',#46864,#37377,#37378); +#33642=AXIS2_PLACEMENT_3D('',#46870,#37382,#37383); +#33643=AXIS2_PLACEMENT_3D('',#46876,#37387,#37388); +#33644=AXIS2_PLACEMENT_3D('',#46886,#37394,#37395); +#33645=AXIS2_PLACEMENT_3D('',#46896,#37401,#37402); +#33646=AXIS2_PLACEMENT_3D('',#46902,#37406,#37407); +#33647=AXIS2_PLACEMENT_3D('',#46905,#37410,#37411); +#33648=AXIS2_PLACEMENT_3D('',#46911,#37415,#37416); +#33649=AXIS2_PLACEMENT_3D('',#46914,#37419,#37420); +#33650=AXIS2_PLACEMENT_3D('',#46917,#37423,#37424); +#33651=AXIS2_PLACEMENT_3D('',#46920,#37427,#37428); +#33652=AXIS2_PLACEMENT_3D('',#46927,#37433,#37434); +#33653=AXIS2_PLACEMENT_3D('',#46933,#37438,#37439); +#33654=AXIS2_PLACEMENT_3D('',#46939,#37443,#37444); +#33655=AXIS2_PLACEMENT_3D('',#46940,#37445,#37446); +#33656=AXIS2_PLACEMENT_3D('',#46946,#37450,#37451); +#33657=AXIS2_PLACEMENT_3D('',#46948,#37453,#37454); +#33658=AXIS2_PLACEMENT_3D('',#46950,#37456,#37457); +#33659=AXIS2_PLACEMENT_3D('',#46951,#37458,#37459); +#33660=AXIS2_PLACEMENT_3D('',#46957,#37463,#37464); +#33661=AXIS2_PLACEMENT_3D('',#46959,#37466,#37467); +#33662=AXIS2_PLACEMENT_3D('',#46961,#37469,#37470); +#33663=AXIS2_PLACEMENT_3D('',#46965,#37473,#37474); +#33664=AXIS2_PLACEMENT_3D('',#46969,#37477,#37478); +#33665=AXIS2_PLACEMENT_3D('',#46971,#37480,#37481); +#33666=AXIS2_PLACEMENT_3D('',#47015,#37507,#37508); +#33667=AXIS2_PLACEMENT_3D('',#47018,#37511,#37512); +#33668=AXIS2_PLACEMENT_3D('',#47021,#37515,#37516); +#33669=AXIS2_PLACEMENT_3D('',#47022,#37517,#37518); +#33670=AXIS2_PLACEMENT_3D('',#47024,#37520,#37521); +#33671=AXIS2_PLACEMENT_3D('',#47026,#37523,#37524); +#33672=AXIS2_PLACEMENT_3D('',#47028,#37526,#37527); +#33673=AXIS2_PLACEMENT_3D('',#47030,#37529,#37530); +#33674=AXIS2_PLACEMENT_3D('',#47036,#37534,#37535); +#33675=AXIS2_PLACEMENT_3D('',#47042,#37539,#37540); +#33676=AXIS2_PLACEMENT_3D('',#47080,#37564,#37565); +#33677=AXIS2_PLACEMENT_3D('',#47081,#37566,#37567); +#33678=AXIS2_PLACEMENT_3D('',#47082,#37568,#37569); +#33679=AXIS2_PLACEMENT_3D('',#47083,#37570,#37571); +#33680=AXIS2_PLACEMENT_3D('',#47084,#37572,#37573); +#33681=AXIS2_PLACEMENT_3D('',#47085,#37574,#37575); +#33682=AXIS2_PLACEMENT_3D('',#47086,#37576,#37577); +#33683=AXIS2_PLACEMENT_3D('',#47087,#37578,#37579); +#33684=AXIS2_PLACEMENT_3D('',#47089,#37581,#37582); +#33685=AXIS2_PLACEMENT_3D('',#47090,#37583,#37584); +#33686=AXIS2_PLACEMENT_3D('',#47092,#37586,#37587); +#33687=AXIS2_PLACEMENT_3D('',#47094,#37589,#37590); +#33688=AXIS2_PLACEMENT_3D('',#47095,#37591,#37592); +#33689=AXIS2_PLACEMENT_3D('',#47097,#37594,#37595); +#33690=AXIS2_PLACEMENT_3D('',#47099,#37597,#37598); +#33691=AXIS2_PLACEMENT_3D('',#47100,#37599,#37600); +#33692=AXIS2_PLACEMENT_3D('',#47102,#37602,#37603); +#33693=AXIS2_PLACEMENT_3D('',#47104,#37605,#37606); +#33694=AXIS2_PLACEMENT_3D('',#47105,#37607,#37608); +#33695=AXIS2_PLACEMENT_3D('',#47107,#37610,#37611); +#33696=AXIS2_PLACEMENT_3D('',#47109,#37613,#37614); +#33697=AXIS2_PLACEMENT_3D('',#47110,#37615,#37616); +#33698=AXIS2_PLACEMENT_3D('',#47112,#37618,#37619); +#33699=AXIS2_PLACEMENT_3D('',#47114,#37621,#37622); +#33700=AXIS2_PLACEMENT_3D('',#47115,#37623,#37624); +#33701=AXIS2_PLACEMENT_3D('',#47117,#37626,#37627); +#33702=AXIS2_PLACEMENT_3D('',#47119,#37629,#37630); +#33703=AXIS2_PLACEMENT_3D('',#47120,#37631,#37632); +#33704=AXIS2_PLACEMENT_3D('',#47122,#37634,#37635); +#33705=AXIS2_PLACEMENT_3D('',#47123,#37636,#37637); +#33706=AXIS2_PLACEMENT_3D('',#47125,#37639,#37640); +#33707=AXIS2_PLACEMENT_3D('',#47126,#37641,#37642); +#33708=AXIS2_PLACEMENT_3D('',#47128,#37644,#37645); +#33709=AXIS2_PLACEMENT_3D('',#47130,#37647,#37648); +#33710=AXIS2_PLACEMENT_3D('',#47131,#37649,#37650); +#33711=AXIS2_PLACEMENT_3D('',#47133,#37652,#37653); +#33712=AXIS2_PLACEMENT_3D('',#47135,#37655,#37656); +#33713=AXIS2_PLACEMENT_3D('',#47136,#37657,#37658); +#33714=AXIS2_PLACEMENT_3D('',#47138,#37660,#37661); +#33715=AXIS2_PLACEMENT_3D('',#47140,#37663,#37664); +#33716=AXIS2_PLACEMENT_3D('',#47141,#37665,#37666); +#33717=AXIS2_PLACEMENT_3D('',#47143,#37668,#37669); +#33718=AXIS2_PLACEMENT_3D('',#47145,#37671,#37672); +#33719=AXIS2_PLACEMENT_3D('',#47146,#37673,#37674); +#33720=AXIS2_PLACEMENT_3D('',#47148,#37676,#37677); +#33721=AXIS2_PLACEMENT_3D('',#47150,#37679,#37680); +#33722=AXIS2_PLACEMENT_3D('',#47151,#37681,#37682); +#33723=AXIS2_PLACEMENT_3D('',#47153,#37684,#37685); +#33724=AXIS2_PLACEMENT_3D('',#47155,#37687,#37688); +#33725=AXIS2_PLACEMENT_3D('',#47156,#37689,#37690); +#33726=AXIS2_PLACEMENT_3D('',#47158,#37692,#37693); +#33727=AXIS2_PLACEMENT_3D('',#47159,#37694,#37695); +#33728=AXIS2_PLACEMENT_3D('',#47160,#37696,#37697); +#33729=AXIS2_PLACEMENT_3D('',#47161,#37698,#37699); +#33730=AXIS2_PLACEMENT_3D('',#47162,#37700,#37701); +#33731=AXIS2_PLACEMENT_3D('',#47163,#37702,#37703); +#33732=AXIS2_PLACEMENT_3D('',#47164,#37704,#37705); +#33733=AXIS2_PLACEMENT_3D('',#47165,#37706,#37707); +#33734=AXIS2_PLACEMENT_3D('',#47166,#37708,#37709); +#33735=AXIS2_PLACEMENT_3D('',#47167,#37710,#37711); +#33736=AXIS2_PLACEMENT_3D('',#47168,#37712,#37713); +#33737=AXIS2_PLACEMENT_3D('',#47169,#37714,#37715); +#33738=AXIS2_PLACEMENT_3D('',#47170,#37716,#37717); +#33739=AXIS2_PLACEMENT_3D('',#47171,#37718,#37719); +#33740=AXIS2_PLACEMENT_3D('',#47172,#37720,#37721); +#33741=AXIS2_PLACEMENT_3D('',#47173,#37722,#37723); +#33742=AXIS2_PLACEMENT_3D('',#47174,#37724,#37725); +#33743=AXIS2_PLACEMENT_3D('',#47175,#37726,#37727); +#33744=AXIS2_PLACEMENT_3D('',#47176,#37728,#37729); +#33745=AXIS2_PLACEMENT_3D('',#47177,#37730,#37731); +#33746=AXIS2_PLACEMENT_3D('',#47178,#37732,#37733); +#33747=AXIS2_PLACEMENT_3D('',#47179,#37734,#37735); +#33748=AXIS2_PLACEMENT_3D('',#47180,#37736,#37737); +#33749=AXIS2_PLACEMENT_3D('',#47181,#37738,#37739); +#33750=AXIS2_PLACEMENT_3D('',#47182,#37740,#37741); +#33751=AXIS2_PLACEMENT_3D('',#47183,#37742,#37743); +#33752=AXIS2_PLACEMENT_3D('',#47184,#37744,#37745); +#33753=AXIS2_PLACEMENT_3D('',#47185,#37746,#37747); +#33754=AXIS2_PLACEMENT_3D('',#47186,#37748,#37749); +#33755=AXIS2_PLACEMENT_3D('',#47187,#37750,#37751); +#33756=AXIS2_PLACEMENT_3D('',#47188,#37752,#37753); +#33757=AXIS2_PLACEMENT_3D('',#47189,#37754,#37755); +#33758=AXIS2_PLACEMENT_3D('',#47190,#37756,#37757); +#33759=AXIS2_PLACEMENT_3D('',#47191,#37758,#37759); +#33760=AXIS2_PLACEMENT_3D('',#47192,#37760,#37761); +#33761=AXIS2_PLACEMENT_3D('',#47193,#37762,#37763); +#33762=AXIS2_PLACEMENT_3D('',#47194,#37764,#37765); +#33763=AXIS2_PLACEMENT_3D('',#47195,#37766,#37767); +#33764=AXIS2_PLACEMENT_3D('',#47196,#37768,#37769); +#33765=AXIS2_PLACEMENT_3D('',#47197,#37770,#37771); +#33766=AXIS2_PLACEMENT_3D('',#47198,#37772,#37773); +#33767=AXIS2_PLACEMENT_3D('',#47199,#37774,#37775); +#33768=AXIS2_PLACEMENT_3D('',#47201,#37777,#37778); +#33769=AXIS2_PLACEMENT_3D('',#47203,#37780,#37781); +#33770=AXIS2_PLACEMENT_3D('',#47204,#37782,#37783); +#33771=AXIS2_PLACEMENT_3D('',#47206,#37785,#37786); +#33772=AXIS2_PLACEMENT_3D('',#47208,#37788,#37789); +#33773=AXIS2_PLACEMENT_3D('',#47209,#37790,#37791); +#33774=AXIS2_PLACEMENT_3D('',#47211,#37793,#37794); +#33775=AXIS2_PLACEMENT_3D('',#47213,#37796,#37797); +#33776=AXIS2_PLACEMENT_3D('',#47214,#37798,#37799); +#33777=AXIS2_PLACEMENT_3D('',#47216,#37801,#37802); +#33778=AXIS2_PLACEMENT_3D('',#47218,#37804,#37805); +#33779=AXIS2_PLACEMENT_3D('',#47219,#37806,#37807); +#33780=AXIS2_PLACEMENT_3D('',#47221,#37809,#37810); +#33781=AXIS2_PLACEMENT_3D('',#47223,#37812,#37813); +#33782=AXIS2_PLACEMENT_3D('',#47224,#37814,#37815); +#33783=AXIS2_PLACEMENT_3D('',#47226,#37817,#37818); +#33784=AXIS2_PLACEMENT_3D('',#47228,#37820,#37821); +#33785=AXIS2_PLACEMENT_3D('',#47229,#37822,#37823); +#33786=AXIS2_PLACEMENT_3D('',#47231,#37825,#37826); +#33787=AXIS2_PLACEMENT_3D('',#47233,#37828,#37829); +#33788=AXIS2_PLACEMENT_3D('',#47234,#37830,#37831); +#33789=AXIS2_PLACEMENT_3D('',#47236,#37833,#37834); +#33790=AXIS2_PLACEMENT_3D('',#47238,#37836,#37837); +#33791=AXIS2_PLACEMENT_3D('',#47239,#37838,#37839); +#33792=AXIS2_PLACEMENT_3D('',#47241,#37841,#37842); +#33793=AXIS2_PLACEMENT_3D('',#47243,#37844,#37845); +#33794=AXIS2_PLACEMENT_3D('',#47244,#37846,#37847); +#33795=AXIS2_PLACEMENT_3D('',#47246,#37849,#37850); +#33796=AXIS2_PLACEMENT_3D('',#47248,#37852,#37853); +#33797=AXIS2_PLACEMENT_3D('',#47249,#37854,#37855); +#33798=AXIS2_PLACEMENT_3D('',#47251,#37857,#37858); +#33799=AXIS2_PLACEMENT_3D('',#47253,#37860,#37861); +#33800=AXIS2_PLACEMENT_3D('',#47254,#37862,#37863); +#33801=AXIS2_PLACEMENT_3D('',#47256,#37865,#37866); +#33802=AXIS2_PLACEMENT_3D('',#47258,#37868,#37869); +#33803=AXIS2_PLACEMENT_3D('',#47259,#37870,#37871); +#33804=AXIS2_PLACEMENT_3D('',#47261,#37873,#37874); +#33805=AXIS2_PLACEMENT_3D('',#47263,#37876,#37877); +#33806=AXIS2_PLACEMENT_3D('',#47264,#37878,#37879); +#33807=AXIS2_PLACEMENT_3D('',#47266,#37881,#37882); +#33808=AXIS2_PLACEMENT_3D('',#47268,#37884,#37885); +#33809=AXIS2_PLACEMENT_3D('',#47269,#37886,#37887); +#33810=AXIS2_PLACEMENT_3D('',#47271,#37889,#37890); +#33811=AXIS2_PLACEMENT_3D('',#47273,#37892,#37893); +#33812=AXIS2_PLACEMENT_3D('',#47274,#37894,#37895); +#33813=AXIS2_PLACEMENT_3D('',#47276,#37897,#37898); +#33814=AXIS2_PLACEMENT_3D('',#47278,#37900,#37901); +#33815=AXIS2_PLACEMENT_3D('',#47279,#37902,#37903); +#33816=AXIS2_PLACEMENT_3D('',#47281,#37905,#37906); +#33817=AXIS2_PLACEMENT_3D('',#47283,#37908,#37909); +#33818=AXIS2_PLACEMENT_3D('',#47284,#37910,#37911); +#33819=AXIS2_PLACEMENT_3D('',#47286,#37913,#37914); +#33820=AXIS2_PLACEMENT_3D('',#47288,#37916,#37917); +#33821=AXIS2_PLACEMENT_3D('',#47289,#37918,#37919); +#33822=AXIS2_PLACEMENT_3D('',#47291,#37921,#37922); +#33823=AXIS2_PLACEMENT_3D('',#47293,#37924,#37925); +#33824=AXIS2_PLACEMENT_3D('',#47294,#37926,#37927); +#33825=AXIS2_PLACEMENT_3D('',#47297,#37930,#37931); +#33826=AXIS2_PLACEMENT_3D('',#47298,#37932,#37933); +#33827=AXIS2_PLACEMENT_3D('',#47299,#37934,#37935); +#33828=AXIS2_PLACEMENT_3D('',#47305,#37939,#37940); +#33829=AXIS2_PLACEMENT_3D('',#47309,#37943,#37944); +#33830=AXIS2_PLACEMENT_3D('',#47311,#37946,#37947); +#33831=AXIS2_PLACEMENT_3D('',#47315,#37950,#37951); +#33832=AXIS2_PLACEMENT_3D('',#47317,#37953,#37954); +#33833=AXIS2_PLACEMENT_3D('',#47318,#37955,#37956); +#33834=AXIS2_PLACEMENT_3D('',#47319,#37957,#37958); +#33835=AXIS2_PLACEMENT_3D('',#47321,#37959,#37960); +#33836=AXIS2_PLACEMENT_3D('',#47322,#37961,#37962); +#33837=AXIS2_PLACEMENT_3D('',#47324,#37963,#37964); +#33838=AXIS2_PLACEMENT_3D('',#47325,#37965,#37966); +#33839=AXIS2_PLACEMENT_3D('',#47331,#37970,#37971); +#33840=AXIS2_PLACEMENT_3D('',#47332,#37972,#37973); +#33841=AXIS2_PLACEMENT_3D('',#47335,#37975,#37976); +#33842=AXIS2_PLACEMENT_3D('',#47339,#37979,#37980); +#33843=AXIS2_PLACEMENT_3D('',#47340,#37981,#37982); +#33844=AXIS2_PLACEMENT_3D('',#47343,#37984,#37985); +#33845=AXIS2_PLACEMENT_3D('',#47347,#37988,#37989); +#33846=AXIS2_PLACEMENT_3D('',#47348,#37990,#37991); +#33847=AXIS2_PLACEMENT_3D('',#47351,#37993,#37994); +#33848=AXIS2_PLACEMENT_3D('',#47355,#37997,#37998); +#33849=AXIS2_PLACEMENT_3D('',#47356,#37999,#38000); +#33850=AXIS2_PLACEMENT_3D('',#47357,#38001,#38002); +#33851=AXIS2_PLACEMENT_3D('',#47358,#38003,#38004); +#33852=AXIS2_PLACEMENT_3D('',#47364,#38008,#38009); +#33853=AXIS2_PLACEMENT_3D('',#47365,#38010,#38011); +#33854=AXIS2_PLACEMENT_3D('',#47368,#38013,#38014); +#33855=AXIS2_PLACEMENT_3D('',#47369,#38015,#38016); +#33856=AXIS2_PLACEMENT_3D('',#47372,#38018,#38019); +#33857=AXIS2_PLACEMENT_3D('',#47373,#38020,#38021); +#33858=AXIS2_PLACEMENT_3D('',#47376,#38023,#38024); +#33859=AXIS2_PLACEMENT_3D('',#47377,#38025,#38026); +#33860=AXIS2_PLACEMENT_3D('',#47380,#38028,#38029); +#33861=AXIS2_PLACEMENT_3D('',#47381,#38030,#38031); +#33862=AXIS2_PLACEMENT_3D('',#47384,#38033,#38034); +#33863=AXIS2_PLACEMENT_3D('',#47388,#38037,#38038); +#33864=AXIS2_PLACEMENT_3D('',#47389,#38039,#38040); +#33865=AXIS2_PLACEMENT_3D('',#47392,#38042,#38043); +#33866=AXIS2_PLACEMENT_3D('',#47396,#38046,#38047); +#33867=AXIS2_PLACEMENT_3D('',#47398,#38049,#38050); +#33868=AXIS2_PLACEMENT_3D('',#47399,#38051,#38052); +#33869=AXIS2_PLACEMENT_3D('',#47405,#38056,#38057); +#33870=AXIS2_PLACEMENT_3D('',#47406,#38058,#38059); +#33871=AXIS2_PLACEMENT_3D('',#47409,#38061,#38062); +#33872=AXIS2_PLACEMENT_3D('',#47410,#38063,#38064); +#33873=AXIS2_PLACEMENT_3D('',#47413,#38066,#38067); +#33874=AXIS2_PLACEMENT_3D('',#47414,#38068,#38069); +#33875=AXIS2_PLACEMENT_3D('',#47417,#38071,#38072); +#33876=AXIS2_PLACEMENT_3D('',#47418,#38073,#38074); +#33877=AXIS2_PLACEMENT_3D('',#47421,#38076,#38077); +#33878=AXIS2_PLACEMENT_3D('',#47422,#38078,#38079); +#33879=AXIS2_PLACEMENT_3D('',#47425,#38081,#38082); +#33880=AXIS2_PLACEMENT_3D('',#47429,#38085,#38086); +#33881=AXIS2_PLACEMENT_3D('',#47430,#38087,#38088); +#33882=AXIS2_PLACEMENT_3D('',#47433,#38090,#38091); +#33883=AXIS2_PLACEMENT_3D('',#47437,#38094,#38095); +#33884=AXIS2_PLACEMENT_3D('',#47438,#38096,#38097); +#33885=AXIS2_PLACEMENT_3D('',#47439,#38098,#38099); +#33886=AXIS2_PLACEMENT_3D('',#47440,#38100,#38101); +#33887=AXIS2_PLACEMENT_3D('',#47444,#38104,#38105); +#33888=AXIS2_PLACEMENT_3D('',#47448,#38108,#38109); +#33889=AXIS2_PLACEMENT_3D('',#47449,#38110,#38111); +#33890=AXIS2_PLACEMENT_3D('',#47453,#38113,#38114); +#33891=AXIS2_PLACEMENT_3D('',#47454,#38115,#38116); +#33892=AXIS2_PLACEMENT_3D('',#47456,#38118,#38119); +#33893=AXIS2_PLACEMENT_3D('',#47458,#38121,#38122); +#33894=AXIS2_PLACEMENT_3D('',#47459,#38123,#38124); +#33895=AXIS2_PLACEMENT_3D('',#47463,#38127,#38128); +#33896=AXIS2_PLACEMENT_3D('',#47467,#38131,#38132); +#33897=AXIS2_PLACEMENT_3D('',#47468,#38133,#38134); +#33898=AXIS2_PLACEMENT_3D('',#47472,#38136,#38137); +#33899=AXIS2_PLACEMENT_3D('',#47473,#38138,#38139); +#33900=AXIS2_PLACEMENT_3D('',#47476,#38142,#38143); +#33901=AXIS2_PLACEMENT_3D('',#47477,#38144,#38145); +#33902=AXIS2_PLACEMENT_3D('',#47478,#38146,#38147); +#33903=AXIS2_PLACEMENT_3D('',#47479,#38148,#38149); +#33904=AXIS2_PLACEMENT_3D('',#47808,#38314,#38315); +#33905=AXIS2_PLACEMENT_3D('',#48137,#38480,#38481); +#33906=AXIS2_PLACEMENT_3D('',#48466,#38646,#38647); +#33907=AXIS2_PLACEMENT_3D('',#48795,#38812,#38813); +#33908=AXIS2_PLACEMENT_3D('',#48798,#38816,#38817); +#33909=AXIS2_PLACEMENT_3D('',#48801,#38820,#38821); +#33910=AXIS2_PLACEMENT_3D('',#48804,#38824,#38825); +#33911=AXIS2_PLACEMENT_3D('',#48807,#38828,#38829); +#33912=AXIS2_PLACEMENT_3D('',#48810,#38832,#38833); +#33913=AXIS2_PLACEMENT_3D('',#48813,#38836,#38837); +#33914=AXIS2_PLACEMENT_3D('',#48816,#38840,#38841); +#33915=AXIS2_PLACEMENT_3D('',#48819,#38844,#38845); +#33916=AXIS2_PLACEMENT_3D('',#48822,#38848,#38849); +#33917=AXIS2_PLACEMENT_3D('',#48825,#38852,#38853); +#33918=AXIS2_PLACEMENT_3D('',#48828,#38856,#38857); +#33919=AXIS2_PLACEMENT_3D('',#48831,#38860,#38861); +#33920=AXIS2_PLACEMENT_3D('',#48834,#38864,#38865); +#33921=AXIS2_PLACEMENT_3D('',#48837,#38868,#38869); +#33922=AXIS2_PLACEMENT_3D('',#48840,#38872,#38873); +#33923=AXIS2_PLACEMENT_3D('',#48843,#38876,#38877); +#33924=AXIS2_PLACEMENT_3D('',#48846,#38880,#38881); +#33925=AXIS2_PLACEMENT_3D('',#48849,#38884,#38885); +#33926=AXIS2_PLACEMENT_3D('',#48852,#38888,#38889); +#33927=AXIS2_PLACEMENT_3D('',#48855,#38892,#38893); +#33928=AXIS2_PLACEMENT_3D('',#48858,#38896,#38897); +#33929=AXIS2_PLACEMENT_3D('',#48861,#38900,#38901); +#33930=AXIS2_PLACEMENT_3D('',#48864,#38904,#38905); +#33931=AXIS2_PLACEMENT_3D('',#48867,#38908,#38909); +#33932=AXIS2_PLACEMENT_3D('',#48870,#38912,#38913); +#33933=AXIS2_PLACEMENT_3D('',#48873,#38916,#38917); +#33934=AXIS2_PLACEMENT_3D('',#48876,#38920,#38921); +#33935=AXIS2_PLACEMENT_3D('',#48879,#38924,#38925); +#33936=AXIS2_PLACEMENT_3D('',#48882,#38928,#38929); +#33937=AXIS2_PLACEMENT_3D('',#48885,#38932,#38933); +#33938=AXIS2_PLACEMENT_3D('',#48888,#38936,#38937); +#33939=AXIS2_PLACEMENT_3D('',#48891,#38940,#38941); +#33940=AXIS2_PLACEMENT_3D('',#48894,#38944,#38945); +#33941=AXIS2_PLACEMENT_3D('',#48897,#38948,#38949); +#33942=AXIS2_PLACEMENT_3D('',#48900,#38952,#38953); +#33943=AXIS2_PLACEMENT_3D('',#48903,#38956,#38957); +#33944=AXIS2_PLACEMENT_3D('',#48906,#38960,#38961); +#33945=AXIS2_PLACEMENT_3D('',#48909,#38964,#38965); +#33946=AXIS2_PLACEMENT_3D('',#48912,#38968,#38969); +#33947=AXIS2_PLACEMENT_3D('',#48915,#38972,#38973); +#33948=AXIS2_PLACEMENT_3D('',#48918,#38976,#38977); +#33949=AXIS2_PLACEMENT_3D('',#48921,#38980,#38981); +#33950=AXIS2_PLACEMENT_3D('',#48924,#38984,#38985); +#33951=AXIS2_PLACEMENT_3D('',#48927,#38988,#38989); +#33952=AXIS2_PLACEMENT_3D('',#48930,#38992,#38993); +#33953=AXIS2_PLACEMENT_3D('',#48933,#38996,#38997); +#33954=AXIS2_PLACEMENT_3D('',#48936,#39000,#39001); +#33955=AXIS2_PLACEMENT_3D('',#48939,#39004,#39005); +#33956=AXIS2_PLACEMENT_3D('',#48942,#39008,#39009); +#33957=AXIS2_PLACEMENT_3D('',#48945,#39012,#39013); +#33958=AXIS2_PLACEMENT_3D('',#48948,#39016,#39017); +#33959=AXIS2_PLACEMENT_3D('',#48951,#39020,#39021); +#33960=AXIS2_PLACEMENT_3D('',#48954,#39024,#39025); +#33961=AXIS2_PLACEMENT_3D('',#48957,#39028,#39029); +#33962=AXIS2_PLACEMENT_3D('',#48960,#39032,#39033); +#33963=AXIS2_PLACEMENT_3D('',#48963,#39036,#39037); +#33964=AXIS2_PLACEMENT_3D('',#48966,#39040,#39041); +#33965=AXIS2_PLACEMENT_3D('',#48969,#39044,#39045); +#33966=AXIS2_PLACEMENT_3D('',#48972,#39048,#39049); +#33967=AXIS2_PLACEMENT_3D('',#48975,#39052,#39053); +#33968=AXIS2_PLACEMENT_3D('',#48978,#39056,#39057); +#33969=AXIS2_PLACEMENT_3D('',#48981,#39060,#39061); +#33970=AXIS2_PLACEMENT_3D('',#48984,#39064,#39065); +#33971=AXIS2_PLACEMENT_3D('',#48987,#39068,#39069); +#33972=AXIS2_PLACEMENT_3D('',#48990,#39072,#39073); +#33973=AXIS2_PLACEMENT_3D('',#48993,#39076,#39077); +#33974=AXIS2_PLACEMENT_3D('',#48996,#39080,#39081); +#33975=AXIS2_PLACEMENT_3D('',#48999,#39084,#39085); +#33976=AXIS2_PLACEMENT_3D('',#49002,#39088,#39089); +#33977=AXIS2_PLACEMENT_3D('',#49005,#39092,#39093); +#33978=AXIS2_PLACEMENT_3D('',#49008,#39096,#39097); +#33979=AXIS2_PLACEMENT_3D('',#49011,#39100,#39101); +#33980=AXIS2_PLACEMENT_3D('',#49014,#39104,#39105); +#33981=AXIS2_PLACEMENT_3D('',#49017,#39108,#39109); +#33982=AXIS2_PLACEMENT_3D('',#49020,#39112,#39113); +#33983=AXIS2_PLACEMENT_3D('',#49023,#39116,#39117); +#33984=AXIS2_PLACEMENT_3D('',#49026,#39120,#39121); +#33985=AXIS2_PLACEMENT_3D('',#49029,#39124,#39125); +#33986=AXIS2_PLACEMENT_3D('',#49032,#39128,#39129); +#33987=AXIS2_PLACEMENT_3D('',#49035,#39132,#39133); +#33988=AXIS2_PLACEMENT_3D('',#49038,#39136,#39137); +#33989=AXIS2_PLACEMENT_3D('',#49041,#39140,#39141); +#33990=AXIS2_PLACEMENT_3D('',#49044,#39144,#39145); +#33991=AXIS2_PLACEMENT_3D('',#49047,#39148,#39149); +#33992=AXIS2_PLACEMENT_3D('',#49056,#39154,#39155); +#33993=AXIS2_PLACEMENT_3D('',#49065,#39160,#39161); +#33994=AXIS2_PLACEMENT_3D('',#49074,#39166,#39167); +#33995=AXIS2_PLACEMENT_3D('',#49083,#39172,#39173); +#33996=AXIS2_PLACEMENT_3D('',#49092,#39178,#39179); +#33997=AXIS2_PLACEMENT_3D('',#49101,#39184,#39185); +#33998=AXIS2_PLACEMENT_3D('',#49110,#39190,#39191); +#33999=AXIS2_PLACEMENT_3D('',#49119,#39196,#39197); +#34000=AXIS2_PLACEMENT_3D('',#49128,#39202,#39203); +#34001=AXIS2_PLACEMENT_3D('',#49137,#39208,#39209); +#34002=AXIS2_PLACEMENT_3D('',#49146,#39214,#39215); +#34003=AXIS2_PLACEMENT_3D('',#49155,#39220,#39221); +#34004=AXIS2_PLACEMENT_3D('',#49164,#39226,#39227); +#34005=AXIS2_PLACEMENT_3D('',#49173,#39232,#39233); +#34006=AXIS2_PLACEMENT_3D('',#49182,#39238,#39239); +#34007=AXIS2_PLACEMENT_3D('',#49191,#39244,#39245); +#34008=AXIS2_PLACEMENT_3D('',#49200,#39250,#39251); +#34009=AXIS2_PLACEMENT_3D('',#49209,#39256,#39257); +#34010=AXIS2_PLACEMENT_3D('',#49218,#39262,#39263); +#34011=AXIS2_PLACEMENT_3D('',#49219,#39264,#39265); +#34012=AXIS2_PLACEMENT_3D('',#49220,#39266,#39267); +#34013=AXIS2_PLACEMENT_3D('',#49221,#39268,#39269); +#34014=AXIS2_PLACEMENT_3D('',#49222,#39270,#39271); +#34015=AXIS2_PLACEMENT_3D('',#49223,#39272,#39273); +#34016=AXIS2_PLACEMENT_3D('',#49224,#39274,#39275); +#34017=AXIS2_PLACEMENT_3D('',#49225,#39276,#39277); +#34018=AXIS2_PLACEMENT_3D('',#49226,#39278,#39279); +#34019=AXIS2_PLACEMENT_3D('',#49227,#39280,#39281); +#34020=AXIS2_PLACEMENT_3D('',#49228,#39282,#39283); +#34021=AXIS2_PLACEMENT_3D('',#49229,#39284,#39285); +#34022=AXIS2_PLACEMENT_3D('',#49230,#39286,#39287); +#34023=AXIS2_PLACEMENT_3D('',#49231,#39288,#39289); +#34024=AXIS2_PLACEMENT_3D('',#49232,#39290,#39291); +#34025=AXIS2_PLACEMENT_3D('',#49233,#39292,#39293); +#34026=AXIS2_PLACEMENT_3D('',#49234,#39294,#39295); +#34027=AXIS2_PLACEMENT_3D('',#49235,#39296,#39297); +#34028=AXIS2_PLACEMENT_3D('',#49236,#39298,#39299); +#34029=AXIS2_PLACEMENT_3D('',#49237,#39300,#39301); +#34030=AXIS2_PLACEMENT_3D('',#49238,#39302,#39303); +#34031=AXIS2_PLACEMENT_3D('',#49239,#39304,#39305); +#34032=AXIS2_PLACEMENT_3D('',#49240,#39306,#39307); +#34033=AXIS2_PLACEMENT_3D('',#49241,#39308,#39309); +#34034=AXIS2_PLACEMENT_3D('',#49242,#39310,#39311); +#34035=AXIS2_PLACEMENT_3D('',#49243,#39312,#39313); +#34036=AXIS2_PLACEMENT_3D('',#49244,#39314,#39315); +#34037=AXIS2_PLACEMENT_3D('',#49245,#39316,#39317); +#34038=AXIS2_PLACEMENT_3D('',#49246,#39318,#39319); +#34039=AXIS2_PLACEMENT_3D('',#49247,#39320,#39321); +#34040=AXIS2_PLACEMENT_3D('',#49248,#39322,#39323); +#34041=AXIS2_PLACEMENT_3D('',#49249,#39324,#39325); +#34042=AXIS2_PLACEMENT_3D('',#49250,#39326,#39327); +#34043=AXIS2_PLACEMENT_3D('',#49251,#39328,#39329); +#34044=AXIS2_PLACEMENT_3D('',#49252,#39330,#39331); +#34045=AXIS2_PLACEMENT_3D('',#49253,#39332,#39333); +#34046=AXIS2_PLACEMENT_3D('',#49254,#39334,#39335); +#34047=AXIS2_PLACEMENT_3D('',#49255,#39336,#39337); +#34048=AXIS2_PLACEMENT_3D('',#49256,#39338,#39339); +#34049=AXIS2_PLACEMENT_3D('',#49257,#39340,#39341); +#34050=AXIS2_PLACEMENT_3D('',#49258,#39342,#39343); +#34051=AXIS2_PLACEMENT_3D('',#49259,#39344,#39345); +#34052=AXIS2_PLACEMENT_3D('',#49260,#39346,#39347); +#34053=AXIS2_PLACEMENT_3D('',#49261,#39348,#39349); +#34054=AXIS2_PLACEMENT_3D('',#49262,#39350,#39351); +#34055=AXIS2_PLACEMENT_3D('',#49263,#39352,#39353); +#34056=AXIS2_PLACEMENT_3D('',#49264,#39354,#39355); +#34057=AXIS2_PLACEMENT_3D('',#49265,#39356,#39357); +#34058=AXIS2_PLACEMENT_3D('',#49266,#39358,#39359); +#34059=AXIS2_PLACEMENT_3D('',#49267,#39360,#39361); +#34060=AXIS2_PLACEMENT_3D('',#49268,#39362,#39363); +#34061=AXIS2_PLACEMENT_3D('',#49269,#39364,#39365); +#34062=AXIS2_PLACEMENT_3D('',#49270,#39366,#39367); +#34063=AXIS2_PLACEMENT_3D('',#49271,#39368,#39369); +#34064=AXIS2_PLACEMENT_3D('',#49272,#39370,#39371); +#34065=AXIS2_PLACEMENT_3D('',#49273,#39372,#39373); +#34066=AXIS2_PLACEMENT_3D('',#49274,#39374,#39375); +#34067=AXIS2_PLACEMENT_3D('',#49275,#39376,#39377); +#34068=AXIS2_PLACEMENT_3D('',#49276,#39378,#39379); +#34069=AXIS2_PLACEMENT_3D('',#49280,#39381,#39382); +#34070=AXIS2_PLACEMENT_3D('',#49281,#39383,#39384); +#34071=AXIS2_PLACEMENT_3D('',#49282,#39385,#39386); +#34072=AXIS2_PLACEMENT_3D('',#49286,#39388,#39389); +#34073=AXIS2_PLACEMENT_3D('',#49287,#39390,#39391); +#34074=AXIS2_PLACEMENT_3D('',#49288,#39392,#39393); +#34075=AXIS2_PLACEMENT_3D('',#49292,#39395,#39396); +#34076=AXIS2_PLACEMENT_3D('',#49293,#39397,#39398); +#34077=AXIS2_PLACEMENT_3D('',#49294,#39399,#39400); +#34078=AXIS2_PLACEMENT_3D('',#49298,#39402,#39403); +#34079=AXIS2_PLACEMENT_3D('',#49299,#39404,#39405); +#34080=AXIS2_PLACEMENT_3D('',#49300,#39406,#39407); +#34081=AXIS2_PLACEMENT_3D('',#49304,#39409,#39410); +#34082=AXIS2_PLACEMENT_3D('',#49305,#39411,#39412); +#34083=AXIS2_PLACEMENT_3D('',#49306,#39413,#39414); +#34084=AXIS2_PLACEMENT_3D('',#49310,#39416,#39417); +#34085=AXIS2_PLACEMENT_3D('',#49311,#39418,#39419); +#34086=AXIS2_PLACEMENT_3D('',#49312,#39420,#39421); +#34087=AXIS2_PLACEMENT_3D('',#49316,#39423,#39424); +#34088=AXIS2_PLACEMENT_3D('',#49317,#39425,#39426); +#34089=AXIS2_PLACEMENT_3D('',#49318,#39427,#39428); +#34090=AXIS2_PLACEMENT_3D('',#49322,#39430,#39431); +#34091=AXIS2_PLACEMENT_3D('',#49323,#39432,#39433); +#34092=AXIS2_PLACEMENT_3D('',#49324,#39434,#39435); +#34093=AXIS2_PLACEMENT_3D('',#49328,#39437,#39438); +#34094=AXIS2_PLACEMENT_3D('',#49329,#39439,#39440); +#34095=AXIS2_PLACEMENT_3D('',#49330,#39441,#39442); +#34096=AXIS2_PLACEMENT_3D('',#49334,#39444,#39445); +#34097=AXIS2_PLACEMENT_3D('',#49335,#39446,#39447); +#34098=AXIS2_PLACEMENT_3D('',#49336,#39448,#39449); +#34099=AXIS2_PLACEMENT_3D('',#49340,#39451,#39452); +#34100=AXIS2_PLACEMENT_3D('',#49341,#39453,#39454); +#34101=AXIS2_PLACEMENT_3D('',#49342,#39455,#39456); +#34102=AXIS2_PLACEMENT_3D('',#49346,#39458,#39459); +#34103=AXIS2_PLACEMENT_3D('',#49347,#39460,#39461); +#34104=AXIS2_PLACEMENT_3D('',#49348,#39462,#39463); +#34105=AXIS2_PLACEMENT_3D('',#49352,#39465,#39466); +#34106=AXIS2_PLACEMENT_3D('',#49353,#39467,#39468); +#34107=AXIS2_PLACEMENT_3D('',#49354,#39469,#39470); +#34108=AXIS2_PLACEMENT_3D('',#49358,#39472,#39473); +#34109=AXIS2_PLACEMENT_3D('',#49359,#39474,#39475); +#34110=AXIS2_PLACEMENT_3D('',#49360,#39476,#39477); +#34111=AXIS2_PLACEMENT_3D('',#49364,#39479,#39480); +#34112=AXIS2_PLACEMENT_3D('',#49365,#39481,#39482); +#34113=AXIS2_PLACEMENT_3D('',#49366,#39483,#39484); +#34114=AXIS2_PLACEMENT_3D('',#49370,#39486,#39487); +#34115=AXIS2_PLACEMENT_3D('',#49371,#39488,#39489); +#34116=AXIS2_PLACEMENT_3D('',#49372,#39490,#39491); +#34117=AXIS2_PLACEMENT_3D('',#49376,#39493,#39494); +#34118=AXIS2_PLACEMENT_3D('',#49377,#39495,#39496); +#34119=AXIS2_PLACEMENT_3D('',#49378,#39497,#39498); +#34120=AXIS2_PLACEMENT_3D('',#49382,#39500,#39501); +#34121=AXIS2_PLACEMENT_3D('',#49383,#39502,#39503); +#34122=AXIS2_PLACEMENT_3D('',#49384,#39504,#39505); +#34123=AXIS2_PLACEMENT_3D('',#49388,#39507,#39508); +#34124=AXIS2_PLACEMENT_3D('',#49389,#39509,#39510); +#34125=AXIS2_PLACEMENT_3D('',#49395,#39514,#39515); +#34126=AXIS2_PLACEMENT_3D('',#49401,#39519,#39520); +#34127=AXIS2_PLACEMENT_3D('',#49407,#39524,#39525); +#34128=AXIS2_PLACEMENT_3D('',#49413,#39529,#39530); +#34129=AXIS2_PLACEMENT_3D('',#49419,#39534,#39535); +#34130=AXIS2_PLACEMENT_3D('',#49425,#39539,#39540); +#34131=AXIS2_PLACEMENT_3D('',#49431,#39544,#39545); +#34132=AXIS2_PLACEMENT_3D('',#49437,#39549,#39550); +#34133=AXIS2_PLACEMENT_3D('',#49443,#39554,#39555); +#34134=AXIS2_PLACEMENT_3D('',#49449,#39559,#39560); +#34135=AXIS2_PLACEMENT_3D('',#49455,#39564,#39565); +#34136=AXIS2_PLACEMENT_3D('',#49461,#39569,#39570); +#34137=AXIS2_PLACEMENT_3D('',#49467,#39574,#39575); +#34138=AXIS2_PLACEMENT_3D('',#49473,#39579,#39580); +#34139=AXIS2_PLACEMENT_3D('',#49479,#39584,#39585); +#34140=AXIS2_PLACEMENT_3D('',#49485,#39589,#39590); +#34141=AXIS2_PLACEMENT_3D('',#49491,#39594,#39595); +#34142=AXIS2_PLACEMENT_3D('',#49497,#39599,#39600); +#34143=AXIS2_PLACEMENT_3D('',#49503,#39604,#39605); +#34144=AXIS2_PLACEMENT_3D('',#49504,#39606,#39607); +#34145=AXIS2_PLACEMENT_3D('',#49505,#39608,#39609); +#34146=AXIS2_PLACEMENT_3D('',#49506,#39610,#39611); +#34147=AXIS2_PLACEMENT_3D('',#49507,#39612,#39613); +#34148=AXIS2_PLACEMENT_3D('',#49508,#39614,#39615); +#34149=AXIS2_PLACEMENT_3D('',#49509,#39616,#39617); +#34150=AXIS2_PLACEMENT_3D('',#49510,#39618,#39619); +#34151=AXIS2_PLACEMENT_3D('',#49511,#39620,#39621); +#34152=AXIS2_PLACEMENT_3D('',#49512,#39622,#39623); +#34153=AXIS2_PLACEMENT_3D('',#49513,#39624,#39625); +#34154=AXIS2_PLACEMENT_3D('',#49514,#39626,#39627); +#34155=AXIS2_PLACEMENT_3D('',#49515,#39628,#39629); +#34156=AXIS2_PLACEMENT_3D('',#49516,#39630,#39631); +#34157=AXIS2_PLACEMENT_3D('',#49517,#39632,#39633); +#34158=AXIS2_PLACEMENT_3D('',#49518,#39634,#39635); +#34159=AXIS2_PLACEMENT_3D('',#49519,#39636,#39637); +#34160=AXIS2_PLACEMENT_3D('',#49520,#39638,#39639); +#34161=AXIS2_PLACEMENT_3D('',#49521,#39640,#39641); +#34162=AXIS2_PLACEMENT_3D('',#49522,#39642,#39643); +#34163=AXIS2_PLACEMENT_3D('',#49523,#39644,#39645); +#34164=AXIS2_PLACEMENT_3D('',#49524,#39646,#39647); +#34165=AXIS2_PLACEMENT_3D('',#49525,#39648,#39649); +#34166=AXIS2_PLACEMENT_3D('',#49526,#39650,#39651); +#34167=AXIS2_PLACEMENT_3D('',#49527,#39652,#39653); +#34168=AXIS2_PLACEMENT_3D('',#49528,#39654,#39655); +#34169=AXIS2_PLACEMENT_3D('',#49529,#39656,#39657); +#34170=AXIS2_PLACEMENT_3D('',#49530,#39658,#39659); +#34171=AXIS2_PLACEMENT_3D('',#49531,#39660,#39661); +#34172=AXIS2_PLACEMENT_3D('',#49532,#39662,#39663); +#34173=AXIS2_PLACEMENT_3D('',#49533,#39664,#39665); +#34174=AXIS2_PLACEMENT_3D('',#49534,#39666,#39667); +#34175=AXIS2_PLACEMENT_3D('',#49535,#39668,#39669); +#34176=AXIS2_PLACEMENT_3D('',#49536,#39670,#39671); +#34177=AXIS2_PLACEMENT_3D('',#49537,#39672,#39673); +#34178=AXIS2_PLACEMENT_3D('',#49538,#39674,#39675); +#34179=AXIS2_PLACEMENT_3D('',#49539,#39676,#39677); +#34180=AXIS2_PLACEMENT_3D('',#49540,#39678,#39679); +#34181=AXIS2_PLACEMENT_3D('',#49541,#39680,#39681); +#34182=AXIS2_PLACEMENT_3D('',#49542,#39682,#39683); +#34183=AXIS2_PLACEMENT_3D('',#49543,#39684,#39685); +#34184=AXIS2_PLACEMENT_3D('',#49544,#39686,#39687); +#34185=AXIS2_PLACEMENT_3D('',#49545,#39688,#39689); +#34186=AXIS2_PLACEMENT_3D('',#49546,#39690,#39691); +#34187=AXIS2_PLACEMENT_3D('',#49547,#39692,#39693); +#34188=AXIS2_PLACEMENT_3D('',#49548,#39694,#39695); +#34189=AXIS2_PLACEMENT_3D('',#49549,#39696,#39697); +#34190=AXIS2_PLACEMENT_3D('',#49550,#39698,#39699); +#34191=AXIS2_PLACEMENT_3D('',#49551,#39700,#39701); +#34192=AXIS2_PLACEMENT_3D('',#49552,#39702,#39703); +#34193=AXIS2_PLACEMENT_3D('',#49553,#39704,#39705); +#34194=AXIS2_PLACEMENT_3D('',#49554,#39706,#39707); +#34195=AXIS2_PLACEMENT_3D('',#49555,#39708,#39709); +#34196=AXIS2_PLACEMENT_3D('',#49556,#39710,#39711); +#34197=AXIS2_PLACEMENT_3D('',#49557,#39712,#39713); +#34198=AXIS2_PLACEMENT_3D('',#49558,#39714,#39715); +#34199=AXIS2_PLACEMENT_3D('',#49559,#39716,#39717); +#34200=AXIS2_PLACEMENT_3D('',#49560,#39718,#39719); +#34201=AXIS2_PLACEMENT_3D('',#49561,#39720,#39721); +#34202=AXIS2_PLACEMENT_3D('',#49562,#39722,#39723); +#34203=AXIS2_PLACEMENT_3D('',#49563,#39724,#39725); +#34204=AXIS2_PLACEMENT_3D('',#49564,#39726,#39727); +#34205=AXIS2_PLACEMENT_3D('',#49565,#39728,#39729); +#34206=AXIS2_PLACEMENT_3D('',#49566,#39730,#39731); +#34207=AXIS2_PLACEMENT_3D('',#49567,#39732,#39733); +#34208=AXIS2_PLACEMENT_3D('',#49568,#39734,#39735); +#34209=AXIS2_PLACEMENT_3D('',#49569,#39736,#39737); +#34210=AXIS2_PLACEMENT_3D('',#49570,#39738,#39739); +#34211=AXIS2_PLACEMENT_3D('',#49571,#39740,#39741); +#34212=AXIS2_PLACEMENT_3D('',#49572,#39742,#39743); +#34213=AXIS2_PLACEMENT_3D('',#49573,#39744,#39745); +#34214=AXIS2_PLACEMENT_3D('',#49574,#39746,#39747); +#34215=AXIS2_PLACEMENT_3D('',#49575,#39748,#39749); +#34216=AXIS2_PLACEMENT_3D('',#49576,#39750,#39751); +#34217=AXIS2_PLACEMENT_3D('',#49577,#39752,#39753); +#34218=AXIS2_PLACEMENT_3D('',#49578,#39754,#39755); +#34219=AXIS2_PLACEMENT_3D('',#49579,#39756,#39757); +#34220=AXIS2_PLACEMENT_3D('',#49580,#39758,#39759); +#34221=AXIS2_PLACEMENT_3D('',#49581,#39760,#39761); +#34222=AXIS2_PLACEMENT_3D('',#49582,#39762,#39763); +#34223=AXIS2_PLACEMENT_3D('',#49583,#39764,#39765); +#34224=AXIS2_PLACEMENT_3D('',#49584,#39766,#39767); +#34225=AXIS2_PLACEMENT_3D('',#49585,#39768,#39769); +#34226=AXIS2_PLACEMENT_3D('',#49586,#39770,#39771); +#34227=AXIS2_PLACEMENT_3D('',#49587,#39772,#39773); +#34228=AXIS2_PLACEMENT_3D('',#49588,#39774,#39775); +#34229=AXIS2_PLACEMENT_3D('',#49589,#39776,#39777); +#34230=AXIS2_PLACEMENT_3D('',#49590,#39778,#39779); +#34231=AXIS2_PLACEMENT_3D('',#49591,#39780,#39781); +#34232=AXIS2_PLACEMENT_3D('',#49592,#39782,#39783); +#34233=AXIS2_PLACEMENT_3D('',#49593,#39784,#39785); +#34234=AXIS2_PLACEMENT_3D('',#49594,#39786,#39787); +#34235=AXIS2_PLACEMENT_3D('',#49595,#39788,#39789); +#34236=AXIS2_PLACEMENT_3D('',#49596,#39790,#39791); +#34237=AXIS2_PLACEMENT_3D('',#49597,#39792,#39793); +#34238=AXIS2_PLACEMENT_3D('',#49598,#39794,#39795); +#34239=AXIS2_PLACEMENT_3D('',#49599,#39796,#39797); +#34240=AXIS2_PLACEMENT_3D('',#49600,#39798,#39799); +#34241=AXIS2_PLACEMENT_3D('',#49601,#39800,#39801); +#34242=AXIS2_PLACEMENT_3D('',#49602,#39802,#39803); +#34243=AXIS2_PLACEMENT_3D('',#49603,#39804,#39805); +#34244=AXIS2_PLACEMENT_3D('',#49604,#39806,#39807); +#34245=AXIS2_PLACEMENT_3D('',#49605,#39808,#39809); +#34246=AXIS2_PLACEMENT_3D('',#49606,#39810,#39811); +#34247=AXIS2_PLACEMENT_3D('',#49607,#39812,#39813); +#34248=AXIS2_PLACEMENT_3D('',#49608,#39814,#39815); +#34249=AXIS2_PLACEMENT_3D('',#49609,#39816,#39817); +#34250=AXIS2_PLACEMENT_3D('',#49610,#39818,#39819); +#34251=AXIS2_PLACEMENT_3D('',#49611,#39820,#39821); +#34252=AXIS2_PLACEMENT_3D('',#49612,#39822,#39823); +#34253=AXIS2_PLACEMENT_3D('',#49613,#39824,#39825); +#34254=AXIS2_PLACEMENT_3D('',#49614,#39826,#39827); +#34255=AXIS2_PLACEMENT_3D('',#49615,#39828,#39829); +#34256=AXIS2_PLACEMENT_3D('',#49616,#39830,#39831); +#34257=AXIS2_PLACEMENT_3D('',#49617,#39832,#39833); +#34258=AXIS2_PLACEMENT_3D('',#49626,#39838,#39839); +#34259=AXIS2_PLACEMENT_3D('',#49627,#39840,#39841); +#34260=AXIS2_PLACEMENT_3D('',#49628,#39842,#39843); +#34261=AXIS2_PLACEMENT_3D('',#49629,#39844,#39845); +#34262=AXIS2_PLACEMENT_3D('',#49630,#39846,#39847); +#34263=AXIS2_PLACEMENT_3D('',#49634,#39849,#39850); +#34264=AXIS2_PLACEMENT_3D('',#49635,#39851,#39852); +#34265=AXIS2_PLACEMENT_3D('',#49641,#39856,#39857); +#34266=AXIS2_PLACEMENT_3D('',#49642,#39858,#39859); +#34267=AXIS2_PLACEMENT_3D('',#49643,#39860,#39861); +#34268=AXIS2_PLACEMENT_3D('',#49644,#39862,#39863); +#34269=AXIS2_PLACEMENT_3D('',#49645,#39864,#39865); +#34270=AXIS2_PLACEMENT_3D('',#49646,#39866,#39867); +#34271=AXIS2_PLACEMENT_3D('',#49647,#39868,#39869); +#34272=AXIS2_PLACEMENT_3D('',#49649,#39871,#39872); +#34273=AXIS2_PLACEMENT_3D('',#49650,#39873,#39874); +#34274=AXIS2_PLACEMENT_3D('',#49652,#39876,#39877); +#34275=AXIS2_PLACEMENT_3D('',#49653,#39878,#39879); +#34276=AXIS2_PLACEMENT_3D('',#49655,#39881,#39882); +#34277=AXIS2_PLACEMENT_3D('',#49656,#39883,#39884); +#34278=AXIS2_PLACEMENT_3D('',#49658,#39886,#39887); +#34279=AXIS2_PLACEMENT_3D('',#49659,#39888,#39889); +#34280=AXIS2_PLACEMENT_3D('',#49661,#39891,#39892); +#34281=AXIS2_PLACEMENT_3D('',#49662,#39893,#39894); +#34282=AXIS2_PLACEMENT_3D('',#49664,#39896,#39897); +#34283=AXIS2_PLACEMENT_3D('',#49665,#39898,#39899); +#34284=AXIS2_PLACEMENT_3D('',#49667,#39901,#39902); +#34285=AXIS2_PLACEMENT_3D('',#49668,#39903,#39904); +#34286=AXIS2_PLACEMENT_3D('',#49670,#39906,#39907); +#34287=AXIS2_PLACEMENT_3D('',#49671,#39908,#39909); +#34288=AXIS2_PLACEMENT_3D('',#49673,#39911,#39912); +#34289=AXIS2_PLACEMENT_3D('',#49674,#39913,#39914); +#34290=AXIS2_PLACEMENT_3D('',#49676,#39916,#39917); +#34291=AXIS2_PLACEMENT_3D('',#49677,#39918,#39919); +#34292=AXIS2_PLACEMENT_3D('',#49679,#39921,#39922); +#34293=AXIS2_PLACEMENT_3D('',#49680,#39923,#39924); +#34294=AXIS2_PLACEMENT_3D('',#49682,#39926,#39927); +#34295=AXIS2_PLACEMENT_3D('',#49683,#39928,#39929); +#34296=AXIS2_PLACEMENT_3D('',#49685,#39931,#39932); +#34297=AXIS2_PLACEMENT_3D('',#49686,#39933,#39934); +#34298=AXIS2_PLACEMENT_3D('',#49688,#39936,#39937); +#34299=AXIS2_PLACEMENT_3D('',#49689,#39938,#39939); +#34300=AXIS2_PLACEMENT_3D('',#49691,#39941,#39942); +#34301=AXIS2_PLACEMENT_3D('',#49692,#39943,#39944); +#34302=AXIS2_PLACEMENT_3D('',#49694,#39946,#39947); +#34303=AXIS2_PLACEMENT_3D('',#49695,#39948,#39949); +#34304=AXIS2_PLACEMENT_3D('',#49697,#39951,#39952); +#34305=AXIS2_PLACEMENT_3D('',#49698,#39953,#39954); +#34306=AXIS2_PLACEMENT_3D('',#49700,#39956,#39957); +#34307=AXIS2_PLACEMENT_3D('',#49701,#39958,#39959); +#34308=AXIS2_PLACEMENT_3D('',#49703,#39961,#39962); +#34309=AXIS2_PLACEMENT_3D('',#49704,#39963,#39964); +#34310=AXIS2_PLACEMENT_3D('',#49706,#39966,#39967); +#34311=AXIS2_PLACEMENT_3D('',#49707,#39968,#39969); +#34312=AXIS2_PLACEMENT_3D('',#49709,#39971,#39972); +#34313=AXIS2_PLACEMENT_3D('',#49710,#39973,#39974); +#34314=AXIS2_PLACEMENT_3D('',#49712,#39976,#39977); +#34315=AXIS2_PLACEMENT_3D('',#49713,#39978,#39979); +#34316=AXIS2_PLACEMENT_3D('',#49715,#39981,#39982); +#34317=AXIS2_PLACEMENT_3D('',#49716,#39983,#39984); +#34318=AXIS2_PLACEMENT_3D('',#49718,#39986,#39987); +#34319=AXIS2_PLACEMENT_3D('',#49719,#39988,#39989); +#34320=AXIS2_PLACEMENT_3D('',#49721,#39991,#39992); +#34321=AXIS2_PLACEMENT_3D('',#49722,#39993,#39994); +#34322=AXIS2_PLACEMENT_3D('',#49724,#39996,#39997); +#34323=AXIS2_PLACEMENT_3D('',#49725,#39998,#39999); +#34324=AXIS2_PLACEMENT_3D('',#49727,#40001,#40002); +#34325=AXIS2_PLACEMENT_3D('',#49728,#40003,#40004); +#34326=AXIS2_PLACEMENT_3D('',#49730,#40006,#40007); +#34327=AXIS2_PLACEMENT_3D('',#49731,#40008,#40009); +#34328=AXIS2_PLACEMENT_3D('',#49733,#40011,#40012); +#34329=AXIS2_PLACEMENT_3D('',#49734,#40013,#40014); +#34330=AXIS2_PLACEMENT_3D('',#49736,#40016,#40017); +#34331=AXIS2_PLACEMENT_3D('',#49737,#40018,#40019); +#34332=AXIS2_PLACEMENT_3D('',#49739,#40021,#40022); +#34333=AXIS2_PLACEMENT_3D('',#49740,#40023,#40024); +#34334=AXIS2_PLACEMENT_3D('',#49742,#40026,#40027); +#34335=AXIS2_PLACEMENT_3D('',#49743,#40028,#40029); +#34336=AXIS2_PLACEMENT_3D('',#49745,#40031,#40032); +#34337=AXIS2_PLACEMENT_3D('',#49746,#40033,#40034); +#34338=AXIS2_PLACEMENT_3D('',#49748,#40036,#40037); +#34339=AXIS2_PLACEMENT_3D('',#49749,#40038,#40039); +#34340=AXIS2_PLACEMENT_3D('',#49751,#40041,#40042); +#34341=AXIS2_PLACEMENT_3D('',#49752,#40043,#40044); +#34342=AXIS2_PLACEMENT_3D('',#49754,#40046,#40047); +#34343=AXIS2_PLACEMENT_3D('',#49755,#40048,#40049); +#34344=AXIS2_PLACEMENT_3D('',#49757,#40051,#40052); +#34345=AXIS2_PLACEMENT_3D('',#49758,#40053,#40054); +#34346=AXIS2_PLACEMENT_3D('',#49760,#40056,#40057); +#34347=AXIS2_PLACEMENT_3D('',#49761,#40058,#40059); +#34348=AXIS2_PLACEMENT_3D('',#49763,#40061,#40062); +#34349=AXIS2_PLACEMENT_3D('',#49764,#40063,#40064); +#34350=AXIS2_PLACEMENT_3D('',#49766,#40066,#40067); +#34351=AXIS2_PLACEMENT_3D('',#49767,#40068,#40069); +#34352=AXIS2_PLACEMENT_3D('',#49769,#40071,#40072); +#34353=AXIS2_PLACEMENT_3D('',#49770,#40073,#40074); +#34354=AXIS2_PLACEMENT_3D('',#49772,#40076,#40077); +#34355=AXIS2_PLACEMENT_3D('',#49773,#40078,#40079); +#34356=AXIS2_PLACEMENT_3D('',#49775,#40081,#40082); +#34357=AXIS2_PLACEMENT_3D('',#49776,#40083,#40084); +#34358=AXIS2_PLACEMENT_3D('',#49778,#40086,#40087); +#34359=AXIS2_PLACEMENT_3D('',#49779,#40088,#40089); +#34360=AXIS2_PLACEMENT_3D('',#49781,#40091,#40092); +#34361=AXIS2_PLACEMENT_3D('',#49782,#40093,#40094); +#34362=AXIS2_PLACEMENT_3D('',#49784,#40096,#40097); +#34363=AXIS2_PLACEMENT_3D('',#49785,#40098,#40099); +#34364=AXIS2_PLACEMENT_3D('',#49787,#40101,#40102); +#34365=AXIS2_PLACEMENT_3D('',#49788,#40103,#40104); +#34366=AXIS2_PLACEMENT_3D('',#49790,#40106,#40107); +#34367=AXIS2_PLACEMENT_3D('',#49791,#40108,#40109); +#34368=AXIS2_PLACEMENT_3D('',#49793,#40111,#40112); +#34369=AXIS2_PLACEMENT_3D('',#49794,#40113,#40114); +#34370=AXIS2_PLACEMENT_3D('',#49796,#40116,#40117); +#34371=AXIS2_PLACEMENT_3D('',#49797,#40118,#40119); +#34372=AXIS2_PLACEMENT_3D('',#49799,#40121,#40122); +#34373=AXIS2_PLACEMENT_3D('',#49800,#40123,#40124); +#34374=AXIS2_PLACEMENT_3D('',#49802,#40126,#40127); +#34375=AXIS2_PLACEMENT_3D('',#49803,#40128,#40129); +#34376=AXIS2_PLACEMENT_3D('',#49805,#40131,#40132); +#34377=AXIS2_PLACEMENT_3D('',#49806,#40133,#40134); +#34378=AXIS2_PLACEMENT_3D('',#49808,#40136,#40137); +#34379=AXIS2_PLACEMENT_3D('',#49809,#40138,#40139); +#34380=AXIS2_PLACEMENT_3D('',#49811,#40141,#40142); +#34381=AXIS2_PLACEMENT_3D('',#49812,#40143,#40144); +#34382=AXIS2_PLACEMENT_3D('',#49814,#40146,#40147); +#34383=AXIS2_PLACEMENT_3D('',#49815,#40148,#40149); +#34384=AXIS2_PLACEMENT_3D('',#49817,#40151,#40152); +#34385=AXIS2_PLACEMENT_3D('',#49818,#40153,#40154); +#34386=AXIS2_PLACEMENT_3D('',#49820,#40156,#40157); +#34387=AXIS2_PLACEMENT_3D('',#49821,#40158,#40159); +#34388=AXIS2_PLACEMENT_3D('',#49823,#40161,#40162); +#34389=AXIS2_PLACEMENT_3D('',#49824,#40163,#40164); +#34390=AXIS2_PLACEMENT_3D('',#49826,#40166,#40167); +#34391=AXIS2_PLACEMENT_3D('',#49827,#40168,#40169); +#34392=AXIS2_PLACEMENT_3D('',#49829,#40171,#40172); +#34393=AXIS2_PLACEMENT_3D('',#49830,#40173,#40174); +#34394=AXIS2_PLACEMENT_3D('',#49832,#40176,#40177); +#34395=AXIS2_PLACEMENT_3D('',#49833,#40178,#40179); +#34396=AXIS2_PLACEMENT_3D('',#49835,#40181,#40182); +#34397=AXIS2_PLACEMENT_3D('',#49836,#40183,#40184); +#34398=AXIS2_PLACEMENT_3D('',#49838,#40186,#40187); +#34399=AXIS2_PLACEMENT_3D('',#49839,#40188,#40189); +#34400=AXIS2_PLACEMENT_3D('',#49841,#40191,#40192); +#34401=AXIS2_PLACEMENT_3D('',#49842,#40193,#40194); +#34402=AXIS2_PLACEMENT_3D('',#49844,#40196,#40197); +#34403=AXIS2_PLACEMENT_3D('',#49845,#40198,#40199); +#34404=AXIS2_PLACEMENT_3D('',#49847,#40201,#40202); +#34405=AXIS2_PLACEMENT_3D('',#49848,#40203,#40204); +#34406=AXIS2_PLACEMENT_3D('',#49850,#40206,#40207); +#34407=AXIS2_PLACEMENT_3D('',#49851,#40208,#40209); +#34408=AXIS2_PLACEMENT_3D('',#49853,#40211,#40212); +#34409=AXIS2_PLACEMENT_3D('',#49854,#40213,#40214); +#34410=AXIS2_PLACEMENT_3D('',#49856,#40216,#40217); +#34411=AXIS2_PLACEMENT_3D('',#49857,#40218,#40219); +#34412=AXIS2_PLACEMENT_3D('',#49859,#40221,#40222); +#34413=AXIS2_PLACEMENT_3D('',#49860,#40223,#40224); +#34414=AXIS2_PLACEMENT_3D('',#49862,#40226,#40227); +#34415=AXIS2_PLACEMENT_3D('',#49863,#40228,#40229); +#34416=AXIS2_PLACEMENT_3D('',#49865,#40231,#40232); +#34417=AXIS2_PLACEMENT_3D('',#49866,#40233,#40234); +#34418=AXIS2_PLACEMENT_3D('',#49868,#40236,#40237); +#34419=AXIS2_PLACEMENT_3D('',#49869,#40238,#40239); +#34420=AXIS2_PLACEMENT_3D('',#49871,#40241,#40242); +#34421=AXIS2_PLACEMENT_3D('',#49872,#40243,#40244); +#34422=AXIS2_PLACEMENT_3D('',#49874,#40246,#40247); +#34423=AXIS2_PLACEMENT_3D('',#49875,#40248,#40249); +#34424=AXIS2_PLACEMENT_3D('',#49877,#40251,#40252); +#34425=AXIS2_PLACEMENT_3D('',#49878,#40253,#40254); +#34426=AXIS2_PLACEMENT_3D('',#49880,#40256,#40257); +#34427=AXIS2_PLACEMENT_3D('',#49881,#40258,#40259); +#34428=AXIS2_PLACEMENT_3D('',#49883,#40261,#40262); +#34429=AXIS2_PLACEMENT_3D('',#49885,#40264,#40265); +#34430=AXIS2_PLACEMENT_3D('',#49886,#40266,#40267); +#34431=AXIS2_PLACEMENT_3D('',#49887,#40268,#40269); +#34432=AXIS2_PLACEMENT_3D('',#49888,#40270,#40271); +#34433=AXIS2_PLACEMENT_3D('',#49889,#40272,#40273); +#34434=AXIS2_PLACEMENT_3D('',#49890,#40274,#40275); +#34435=AXIS2_PLACEMENT_3D('',#49891,#40276,#40277); +#34436=AXIS2_PLACEMENT_3D('',#49892,#40278,#40279); +#34437=AXIS2_PLACEMENT_3D('',#49893,#40280,#40281); +#34438=AXIS2_PLACEMENT_3D('',#49894,#40282,#40283); +#34439=AXIS2_PLACEMENT_3D('',#49895,#40284,#40285); +#34440=AXIS2_PLACEMENT_3D('',#49896,#40286,#40287); +#34441=AXIS2_PLACEMENT_3D('',#49897,#40288,#40289); +#34442=AXIS2_PLACEMENT_3D('',#49898,#40290,#40291); +#34443=AXIS2_PLACEMENT_3D('',#49899,#40292,#40293); +#34444=AXIS2_PLACEMENT_3D('',#49900,#40294,#40295); +#34445=AXIS2_PLACEMENT_3D('',#49901,#40296,#40297); +#34446=AXIS2_PLACEMENT_3D('',#49902,#40298,#40299); +#34447=AXIS2_PLACEMENT_3D('',#49903,#40300,#40301); +#34448=AXIS2_PLACEMENT_3D('',#49904,#40302,#40303); +#34449=AXIS2_PLACEMENT_3D('',#49905,#40304,#40305); +#34450=AXIS2_PLACEMENT_3D('',#49906,#40306,#40307); +#34451=AXIS2_PLACEMENT_3D('',#49907,#40308,#40309); +#34452=AXIS2_PLACEMENT_3D('',#49908,#40310,#40311); +#34453=AXIS2_PLACEMENT_3D('',#49909,#40312,#40313); +#34454=AXIS2_PLACEMENT_3D('',#49910,#40314,#40315); +#34455=AXIS2_PLACEMENT_3D('',#49911,#40316,#40317); +#34456=AXIS2_PLACEMENT_3D('',#49912,#40318,#40319); +#34457=AXIS2_PLACEMENT_3D('',#49913,#40320,#40321); +#34458=AXIS2_PLACEMENT_3D('',#49914,#40322,#40323); +#34459=AXIS2_PLACEMENT_3D('',#49915,#40324,#40325); +#34460=AXIS2_PLACEMENT_3D('',#49916,#40326,#40327); +#34461=AXIS2_PLACEMENT_3D('',#49917,#40328,#40329); +#34462=AXIS2_PLACEMENT_3D('',#49918,#40330,#40331); +#34463=AXIS2_PLACEMENT_3D('',#49919,#40332,#40333); +#34464=AXIS2_PLACEMENT_3D('',#49920,#40334,#40335); +#34465=AXIS2_PLACEMENT_3D('',#49921,#40336,#40337); +#34466=AXIS2_PLACEMENT_3D('',#49922,#40338,#40339); +#34467=AXIS2_PLACEMENT_3D('',#49923,#40340,#40341); +#34468=AXIS2_PLACEMENT_3D('',#49924,#40342,#40343); +#34469=AXIS2_PLACEMENT_3D('',#49925,#40344,#40345); +#34470=AXIS2_PLACEMENT_3D('',#49926,#40346,#40347); +#34471=AXIS2_PLACEMENT_3D('',#49927,#40348,#40349); +#34472=AXIS2_PLACEMENT_3D('',#49928,#40350,#40351); +#34473=AXIS2_PLACEMENT_3D('',#49929,#40352,#40353); +#34474=AXIS2_PLACEMENT_3D('',#49939,#40358,#40359); +#34475=AXIS2_PLACEMENT_3D('',#49943,#40361,#40362); +#34476=AXIS2_PLACEMENT_3D('',#49947,#40364,#40365); +#34477=AXIS2_PLACEMENT_3D('',#49951,#40367,#40368); +#34478=AXIS2_PLACEMENT_3D('',#49955,#40370,#40371); +#34479=AXIS2_PLACEMENT_3D('',#49959,#40373,#40374); +#34480=AXIS2_PLACEMENT_3D('',#49967,#40378,#40379); +#34481=AXIS2_PLACEMENT_3D('',#49971,#40381,#40382); +#34482=AXIS2_PLACEMENT_3D('',#49975,#40384,#40385); +#34483=AXIS2_PLACEMENT_3D('',#49979,#40387,#40388); +#34484=AXIS2_PLACEMENT_3D('',#49983,#40390,#40391); +#34485=AXIS2_PLACEMENT_3D('',#49987,#40393,#40394); +#34486=AXIS2_PLACEMENT_3D('',#49995,#40398,#40399); +#34487=AXIS2_PLACEMENT_3D('',#49999,#40401,#40402); +#34488=AXIS2_PLACEMENT_3D('',#50003,#40404,#40405); +#34489=AXIS2_PLACEMENT_3D('',#50007,#40407,#40408); +#34490=AXIS2_PLACEMENT_3D('',#50011,#40410,#40411); +#34491=AXIS2_PLACEMENT_3D('',#50015,#40413,#40414); +#34492=AXIS2_PLACEMENT_3D('',#50023,#40418,#40419); +#34493=AXIS2_PLACEMENT_3D('',#50027,#40421,#40422); +#34494=AXIS2_PLACEMENT_3D('',#50031,#40424,#40425); +#34495=AXIS2_PLACEMENT_3D('',#50035,#40427,#40428); +#34496=AXIS2_PLACEMENT_3D('',#50039,#40430,#40431); +#34497=AXIS2_PLACEMENT_3D('',#50043,#40433,#40434); +#34498=AXIS2_PLACEMENT_3D('',#50051,#40438,#40439); +#34499=AXIS2_PLACEMENT_3D('',#50055,#40441,#40442); +#34500=AXIS2_PLACEMENT_3D('',#50059,#40444,#40445); +#34501=AXIS2_PLACEMENT_3D('',#50063,#40447,#40448); +#34502=AXIS2_PLACEMENT_3D('',#50067,#40450,#40451); +#34503=AXIS2_PLACEMENT_3D('',#50071,#40453,#40454); +#34504=AXIS2_PLACEMENT_3D('',#50079,#40458,#40459); +#34505=AXIS2_PLACEMENT_3D('',#50083,#40461,#40462); +#34506=AXIS2_PLACEMENT_3D('',#50087,#40464,#40465); +#34507=AXIS2_PLACEMENT_3D('',#50091,#40467,#40468); +#34508=AXIS2_PLACEMENT_3D('',#50095,#40470,#40471); +#34509=AXIS2_PLACEMENT_3D('',#50099,#40473,#40474); +#34510=AXIS2_PLACEMENT_3D('',#50107,#40478,#40479); +#34511=AXIS2_PLACEMENT_3D('',#50111,#40481,#40482); +#34512=AXIS2_PLACEMENT_3D('',#50115,#40484,#40485); +#34513=AXIS2_PLACEMENT_3D('',#50119,#40487,#40488); +#34514=AXIS2_PLACEMENT_3D('',#50123,#40490,#40491); +#34515=AXIS2_PLACEMENT_3D('',#50127,#40493,#40494); +#34516=AXIS2_PLACEMENT_3D('',#50135,#40498,#40499); +#34517=AXIS2_PLACEMENT_3D('',#50139,#40501,#40502); +#34518=AXIS2_PLACEMENT_3D('',#50143,#40504,#40505); +#34519=AXIS2_PLACEMENT_3D('',#50147,#40507,#40508); +#34520=AXIS2_PLACEMENT_3D('',#50151,#40510,#40511); +#34521=AXIS2_PLACEMENT_3D('',#50155,#40513,#40514); +#34522=AXIS2_PLACEMENT_3D('',#50163,#40518,#40519); +#34523=AXIS2_PLACEMENT_3D('',#50167,#40521,#40522); +#34524=AXIS2_PLACEMENT_3D('',#50171,#40524,#40525); +#34525=AXIS2_PLACEMENT_3D('',#50175,#40527,#40528); +#34526=AXIS2_PLACEMENT_3D('',#50179,#40530,#40531); +#34527=AXIS2_PLACEMENT_3D('',#50183,#40533,#40534); +#34528=AXIS2_PLACEMENT_3D('',#50191,#40538,#40539); +#34529=AXIS2_PLACEMENT_3D('',#50195,#40541,#40542); +#34530=AXIS2_PLACEMENT_3D('',#50199,#40544,#40545); +#34531=AXIS2_PLACEMENT_3D('',#50203,#40547,#40548); +#34532=AXIS2_PLACEMENT_3D('',#50207,#40550,#40551); +#34533=AXIS2_PLACEMENT_3D('',#50211,#40553,#40554); +#34534=AXIS2_PLACEMENT_3D('',#50219,#40558,#40559); +#34535=AXIS2_PLACEMENT_3D('',#50223,#40561,#40562); +#34536=AXIS2_PLACEMENT_3D('',#50227,#40564,#40565); +#34537=AXIS2_PLACEMENT_3D('',#50231,#40567,#40568); +#34538=AXIS2_PLACEMENT_3D('',#50235,#40570,#40571); +#34539=AXIS2_PLACEMENT_3D('',#50239,#40573,#40574); +#34540=AXIS2_PLACEMENT_3D('',#50247,#40578,#40579); +#34541=AXIS2_PLACEMENT_3D('',#50251,#40581,#40582); +#34542=AXIS2_PLACEMENT_3D('',#50255,#40584,#40585); +#34543=AXIS2_PLACEMENT_3D('',#50259,#40587,#40588); +#34544=AXIS2_PLACEMENT_3D('',#50263,#40590,#40591); +#34545=AXIS2_PLACEMENT_3D('',#50267,#40593,#40594); +#34546=AXIS2_PLACEMENT_3D('',#50275,#40598,#40599); +#34547=AXIS2_PLACEMENT_3D('',#50279,#40601,#40602); +#34548=AXIS2_PLACEMENT_3D('',#50283,#40604,#40605); +#34549=AXIS2_PLACEMENT_3D('',#50287,#40607,#40608); +#34550=AXIS2_PLACEMENT_3D('',#50291,#40610,#40611); +#34551=AXIS2_PLACEMENT_3D('',#50295,#40613,#40614); +#34552=AXIS2_PLACEMENT_3D('',#50303,#40618,#40619); +#34553=AXIS2_PLACEMENT_3D('',#50307,#40621,#40622); +#34554=AXIS2_PLACEMENT_3D('',#50311,#40624,#40625); +#34555=AXIS2_PLACEMENT_3D('',#50315,#40627,#40628); +#34556=AXIS2_PLACEMENT_3D('',#50319,#40630,#40631); +#34557=AXIS2_PLACEMENT_3D('',#50323,#40633,#40634); +#34558=AXIS2_PLACEMENT_3D('',#50331,#40638,#40639); +#34559=AXIS2_PLACEMENT_3D('',#50335,#40641,#40642); +#34560=AXIS2_PLACEMENT_3D('',#50339,#40644,#40645); +#34561=AXIS2_PLACEMENT_3D('',#50343,#40647,#40648); +#34562=AXIS2_PLACEMENT_3D('',#50347,#40650,#40651); +#34563=AXIS2_PLACEMENT_3D('',#50351,#40653,#40654); +#34564=AXIS2_PLACEMENT_3D('',#50359,#40658,#40659); +#34565=AXIS2_PLACEMENT_3D('',#50363,#40661,#40662); +#34566=AXIS2_PLACEMENT_3D('',#50367,#40664,#40665); +#34567=AXIS2_PLACEMENT_3D('',#50371,#40667,#40668); +#34568=AXIS2_PLACEMENT_3D('',#50375,#40670,#40671); +#34569=AXIS2_PLACEMENT_3D('',#50379,#40673,#40674); +#34570=AXIS2_PLACEMENT_3D('',#50387,#40678,#40679); +#34571=AXIS2_PLACEMENT_3D('',#50391,#40681,#40682); +#34572=AXIS2_PLACEMENT_3D('',#50395,#40684,#40685); +#34573=AXIS2_PLACEMENT_3D('',#50399,#40687,#40688); +#34574=AXIS2_PLACEMENT_3D('',#50403,#40690,#40691); +#34575=AXIS2_PLACEMENT_3D('',#50407,#40693,#40694); +#34576=AXIS2_PLACEMENT_3D('',#50415,#40698,#40699); +#34577=AXIS2_PLACEMENT_3D('',#50419,#40701,#40702); +#34578=AXIS2_PLACEMENT_3D('',#50423,#40704,#40705); +#34579=AXIS2_PLACEMENT_3D('',#50427,#40707,#40708); +#34580=AXIS2_PLACEMENT_3D('',#50431,#40710,#40711); +#34581=AXIS2_PLACEMENT_3D('',#50435,#40713,#40714); +#34582=AXIS2_PLACEMENT_3D('',#50443,#40718,#40719); +#34583=AXIS2_PLACEMENT_3D('',#50447,#40721,#40722); +#34584=AXIS2_PLACEMENT_3D('',#50451,#40724,#40725); +#34585=AXIS2_PLACEMENT_3D('',#50455,#40727,#40728); +#34586=AXIS2_PLACEMENT_3D('',#50459,#40730,#40731); +#34587=AXIS2_PLACEMENT_3D('',#50463,#40733,#40734); +#34588=AXIS2_PLACEMENT_3D('',#50471,#40738,#40739); +#34589=AXIS2_PLACEMENT_3D('',#50475,#40741,#40742); +#34590=AXIS2_PLACEMENT_3D('',#50479,#40744,#40745); +#34591=AXIS2_PLACEMENT_3D('',#50483,#40747,#40748); +#34592=AXIS2_PLACEMENT_3D('',#50487,#40750,#40751); +#34593=AXIS2_PLACEMENT_3D('',#50491,#40753,#40754); +#34594=AXIS2_PLACEMENT_3D('',#50498,#40758,#40759); +#34595=AXIS2_PLACEMENT_3D('',#50508,#40764,#40765); +#34596=AXIS2_PLACEMENT_3D('',#50512,#40767,#40768); +#34597=AXIS2_PLACEMENT_3D('',#50516,#40770,#40771); +#34598=AXIS2_PLACEMENT_3D('',#50520,#40773,#40774); +#34599=AXIS2_PLACEMENT_3D('',#50524,#40776,#40777); +#34600=AXIS2_PLACEMENT_3D('',#50528,#40779,#40780); +#34601=AXIS2_PLACEMENT_3D('',#50536,#40784,#40785); +#34602=AXIS2_PLACEMENT_3D('',#50540,#40787,#40788); +#34603=AXIS2_PLACEMENT_3D('',#50544,#40790,#40791); +#34604=AXIS2_PLACEMENT_3D('',#50548,#40793,#40794); +#34605=AXIS2_PLACEMENT_3D('',#50552,#40796,#40797); +#34606=AXIS2_PLACEMENT_3D('',#50556,#40799,#40800); +#34607=AXIS2_PLACEMENT_3D('',#50564,#40804,#40805); +#34608=AXIS2_PLACEMENT_3D('',#50568,#40807,#40808); +#34609=AXIS2_PLACEMENT_3D('',#50572,#40810,#40811); +#34610=AXIS2_PLACEMENT_3D('',#50576,#40813,#40814); +#34611=AXIS2_PLACEMENT_3D('',#50580,#40816,#40817); +#34612=AXIS2_PLACEMENT_3D('',#50584,#40819,#40820); +#34613=AXIS2_PLACEMENT_3D('',#50592,#40824,#40825); +#34614=AXIS2_PLACEMENT_3D('',#50596,#40827,#40828); +#34615=AXIS2_PLACEMENT_3D('',#50600,#40830,#40831); +#34616=AXIS2_PLACEMENT_3D('',#50604,#40833,#40834); +#34617=AXIS2_PLACEMENT_3D('',#50608,#40836,#40837); +#34618=AXIS2_PLACEMENT_3D('',#50612,#40839,#40840); +#34619=AXIS2_PLACEMENT_3D('',#50620,#40844,#40845); +#34620=AXIS2_PLACEMENT_3D('',#50624,#40847,#40848); +#34621=AXIS2_PLACEMENT_3D('',#50628,#40850,#40851); +#34622=AXIS2_PLACEMENT_3D('',#50632,#40853,#40854); +#34623=AXIS2_PLACEMENT_3D('',#50636,#40856,#40857); +#34624=AXIS2_PLACEMENT_3D('',#50640,#40859,#40860); +#34625=AXIS2_PLACEMENT_3D('',#50648,#40864,#40865); +#34626=AXIS2_PLACEMENT_3D('',#50652,#40867,#40868); +#34627=AXIS2_PLACEMENT_3D('',#50656,#40870,#40871); +#34628=AXIS2_PLACEMENT_3D('',#50660,#40873,#40874); +#34629=AXIS2_PLACEMENT_3D('',#50664,#40876,#40877); +#34630=AXIS2_PLACEMENT_3D('',#50668,#40879,#40880); +#34631=AXIS2_PLACEMENT_3D('',#50676,#40884,#40885); +#34632=AXIS2_PLACEMENT_3D('',#50680,#40887,#40888); +#34633=AXIS2_PLACEMENT_3D('',#50684,#40890,#40891); +#34634=AXIS2_PLACEMENT_3D('',#50688,#40893,#40894); +#34635=AXIS2_PLACEMENT_3D('',#50692,#40896,#40897); +#34636=AXIS2_PLACEMENT_3D('',#50696,#40899,#40900); +#34637=AXIS2_PLACEMENT_3D('',#50704,#40904,#40905); +#34638=AXIS2_PLACEMENT_3D('',#50708,#40907,#40908); +#34639=AXIS2_PLACEMENT_3D('',#50712,#40910,#40911); +#34640=AXIS2_PLACEMENT_3D('',#50716,#40913,#40914); +#34641=AXIS2_PLACEMENT_3D('',#50720,#40916,#40917); +#34642=AXIS2_PLACEMENT_3D('',#50724,#40919,#40920); +#34643=AXIS2_PLACEMENT_3D('',#50732,#40924,#40925); +#34644=AXIS2_PLACEMENT_3D('',#50736,#40927,#40928); +#34645=AXIS2_PLACEMENT_3D('',#50740,#40930,#40931); +#34646=AXIS2_PLACEMENT_3D('',#50744,#40933,#40934); +#34647=AXIS2_PLACEMENT_3D('',#50748,#40936,#40937); +#34648=AXIS2_PLACEMENT_3D('',#50752,#40939,#40940); +#34649=AXIS2_PLACEMENT_3D('',#50760,#40944,#40945); +#34650=AXIS2_PLACEMENT_3D('',#50764,#40947,#40948); +#34651=AXIS2_PLACEMENT_3D('',#50768,#40950,#40951); +#34652=AXIS2_PLACEMENT_3D('',#50772,#40953,#40954); +#34653=AXIS2_PLACEMENT_3D('',#50776,#40956,#40957); +#34654=AXIS2_PLACEMENT_3D('',#50780,#40959,#40960); +#34655=AXIS2_PLACEMENT_3D('',#50788,#40964,#40965); +#34656=AXIS2_PLACEMENT_3D('',#50792,#40967,#40968); +#34657=AXIS2_PLACEMENT_3D('',#50796,#40970,#40971); +#34658=AXIS2_PLACEMENT_3D('',#50800,#40973,#40974); +#34659=AXIS2_PLACEMENT_3D('',#50804,#40976,#40977); +#34660=AXIS2_PLACEMENT_3D('',#50808,#40979,#40980); +#34661=AXIS2_PLACEMENT_3D('',#50816,#40984,#40985); +#34662=AXIS2_PLACEMENT_3D('',#50820,#40987,#40988); +#34663=AXIS2_PLACEMENT_3D('',#50824,#40990,#40991); +#34664=AXIS2_PLACEMENT_3D('',#50828,#40993,#40994); +#34665=AXIS2_PLACEMENT_3D('',#50832,#40996,#40997); +#34666=AXIS2_PLACEMENT_3D('',#50836,#40999,#41000); +#34667=AXIS2_PLACEMENT_3D('',#50844,#41004,#41005); +#34668=AXIS2_PLACEMENT_3D('',#50848,#41007,#41008); +#34669=AXIS2_PLACEMENT_3D('',#50852,#41010,#41011); +#34670=AXIS2_PLACEMENT_3D('',#50856,#41013,#41014); +#34671=AXIS2_PLACEMENT_3D('',#50860,#41016,#41017); +#34672=AXIS2_PLACEMENT_3D('',#50864,#41019,#41020); +#34673=AXIS2_PLACEMENT_3D('',#50872,#41024,#41025); +#34674=AXIS2_PLACEMENT_3D('',#50876,#41027,#41028); +#34675=AXIS2_PLACEMENT_3D('',#50880,#41030,#41031); +#34676=AXIS2_PLACEMENT_3D('',#50884,#41033,#41034); +#34677=AXIS2_PLACEMENT_3D('',#50888,#41036,#41037); +#34678=AXIS2_PLACEMENT_3D('',#50892,#41039,#41040); +#34679=AXIS2_PLACEMENT_3D('',#50900,#41044,#41045); +#34680=AXIS2_PLACEMENT_3D('',#50904,#41047,#41048); +#34681=AXIS2_PLACEMENT_3D('',#50908,#41050,#41051); +#34682=AXIS2_PLACEMENT_3D('',#50912,#41053,#41054); +#34683=AXIS2_PLACEMENT_3D('',#50916,#41056,#41057); +#34684=AXIS2_PLACEMENT_3D('',#50920,#41059,#41060); +#34685=AXIS2_PLACEMENT_3D('',#50928,#41064,#41065); +#34686=AXIS2_PLACEMENT_3D('',#50932,#41067,#41068); +#34687=AXIS2_PLACEMENT_3D('',#50936,#41070,#41071); +#34688=AXIS2_PLACEMENT_3D('',#50940,#41073,#41074); +#34689=AXIS2_PLACEMENT_3D('',#50944,#41076,#41077); +#34690=AXIS2_PLACEMENT_3D('',#50948,#41079,#41080); +#34691=AXIS2_PLACEMENT_3D('',#50956,#41084,#41085); +#34692=AXIS2_PLACEMENT_3D('',#50960,#41087,#41088); +#34693=AXIS2_PLACEMENT_3D('',#50964,#41090,#41091); +#34694=AXIS2_PLACEMENT_3D('',#50968,#41093,#41094); +#34695=AXIS2_PLACEMENT_3D('',#50972,#41096,#41097); +#34696=AXIS2_PLACEMENT_3D('',#50976,#41099,#41100); +#34697=AXIS2_PLACEMENT_3D('',#50984,#41104,#41105); +#34698=AXIS2_PLACEMENT_3D('',#50988,#41107,#41108); +#34699=AXIS2_PLACEMENT_3D('',#50992,#41110,#41111); +#34700=AXIS2_PLACEMENT_3D('',#50996,#41113,#41114); +#34701=AXIS2_PLACEMENT_3D('',#51000,#41116,#41117); +#34702=AXIS2_PLACEMENT_3D('',#51004,#41119,#41120); +#34703=AXIS2_PLACEMENT_3D('',#51012,#41124,#41125); +#34704=AXIS2_PLACEMENT_3D('',#51016,#41127,#41128); +#34705=AXIS2_PLACEMENT_3D('',#51020,#41130,#41131); +#34706=AXIS2_PLACEMENT_3D('',#51024,#41133,#41134); +#34707=AXIS2_PLACEMENT_3D('',#51028,#41136,#41137); +#34708=AXIS2_PLACEMENT_3D('',#51032,#41139,#41140); +#34709=AXIS2_PLACEMENT_3D('',#51040,#41144,#41145); +#34710=AXIS2_PLACEMENT_3D('',#51044,#41147,#41148); +#34711=AXIS2_PLACEMENT_3D('',#51048,#41150,#41151); +#34712=AXIS2_PLACEMENT_3D('',#51052,#41153,#41154); +#34713=AXIS2_PLACEMENT_3D('',#51056,#41156,#41157); +#34714=AXIS2_PLACEMENT_3D('',#51060,#41159,#41160); +#34715=AXIS2_PLACEMENT_3D('',#51067,#41164,#41165); +#34716=AXIS2_PLACEMENT_3D('',#51077,#41170,#41171); +#34717=AXIS2_PLACEMENT_3D('',#51081,#41173,#41174); +#34718=AXIS2_PLACEMENT_3D('',#51085,#41176,#41177); +#34719=AXIS2_PLACEMENT_3D('',#51089,#41179,#41180); +#34720=AXIS2_PLACEMENT_3D('',#51093,#41182,#41183); +#34721=AXIS2_PLACEMENT_3D('',#51097,#41185,#41186); +#34722=AXIS2_PLACEMENT_3D('',#51105,#41190,#41191); +#34723=AXIS2_PLACEMENT_3D('',#51109,#41193,#41194); +#34724=AXIS2_PLACEMENT_3D('',#51113,#41196,#41197); +#34725=AXIS2_PLACEMENT_3D('',#51117,#41199,#41200); +#34726=AXIS2_PLACEMENT_3D('',#51121,#41202,#41203); +#34727=AXIS2_PLACEMENT_3D('',#51125,#41205,#41206); +#34728=AXIS2_PLACEMENT_3D('',#51133,#41210,#41211); +#34729=AXIS2_PLACEMENT_3D('',#51137,#41213,#41214); +#34730=AXIS2_PLACEMENT_3D('',#51141,#41216,#41217); +#34731=AXIS2_PLACEMENT_3D('',#51145,#41219,#41220); +#34732=AXIS2_PLACEMENT_3D('',#51149,#41222,#41223); +#34733=AXIS2_PLACEMENT_3D('',#51153,#41225,#41226); +#34734=AXIS2_PLACEMENT_3D('',#51161,#41230,#41231); +#34735=AXIS2_PLACEMENT_3D('',#51165,#41233,#41234); +#34736=AXIS2_PLACEMENT_3D('',#51169,#41236,#41237); +#34737=AXIS2_PLACEMENT_3D('',#51173,#41239,#41240); +#34738=AXIS2_PLACEMENT_3D('',#51177,#41242,#41243); +#34739=AXIS2_PLACEMENT_3D('',#51181,#41245,#41246); +#34740=AXIS2_PLACEMENT_3D('',#51189,#41250,#41251); +#34741=AXIS2_PLACEMENT_3D('',#51193,#41253,#41254); +#34742=AXIS2_PLACEMENT_3D('',#51197,#41256,#41257); +#34743=AXIS2_PLACEMENT_3D('',#51201,#41259,#41260); +#34744=AXIS2_PLACEMENT_3D('',#51205,#41262,#41263); +#34745=AXIS2_PLACEMENT_3D('',#51209,#41265,#41266); +#34746=AXIS2_PLACEMENT_3D('',#51217,#41270,#41271); +#34747=AXIS2_PLACEMENT_3D('',#51221,#41273,#41274); +#34748=AXIS2_PLACEMENT_3D('',#51225,#41276,#41277); +#34749=AXIS2_PLACEMENT_3D('',#51229,#41279,#41280); +#34750=AXIS2_PLACEMENT_3D('',#51233,#41282,#41283); +#34751=AXIS2_PLACEMENT_3D('',#51237,#41285,#41286); +#34752=AXIS2_PLACEMENT_3D('',#51245,#41290,#41291); +#34753=AXIS2_PLACEMENT_3D('',#51249,#41293,#41294); +#34754=AXIS2_PLACEMENT_3D('',#51253,#41296,#41297); +#34755=AXIS2_PLACEMENT_3D('',#51257,#41299,#41300); +#34756=AXIS2_PLACEMENT_3D('',#51261,#41302,#41303); +#34757=AXIS2_PLACEMENT_3D('',#51265,#41305,#41306); +#34758=AXIS2_PLACEMENT_3D('',#51273,#41310,#41311); +#34759=AXIS2_PLACEMENT_3D('',#51277,#41313,#41314); +#34760=AXIS2_PLACEMENT_3D('',#51281,#41316,#41317); +#34761=AXIS2_PLACEMENT_3D('',#51285,#41319,#41320); +#34762=AXIS2_PLACEMENT_3D('',#51289,#41322,#41323); +#34763=AXIS2_PLACEMENT_3D('',#51293,#41325,#41326); +#34764=AXIS2_PLACEMENT_3D('',#51301,#41330,#41331); +#34765=AXIS2_PLACEMENT_3D('',#51305,#41333,#41334); +#34766=AXIS2_PLACEMENT_3D('',#51309,#41336,#41337); +#34767=AXIS2_PLACEMENT_3D('',#51313,#41339,#41340); +#34768=AXIS2_PLACEMENT_3D('',#51317,#41342,#41343); +#34769=AXIS2_PLACEMENT_3D('',#51321,#41345,#41346); +#34770=AXIS2_PLACEMENT_3D('',#51329,#41350,#41351); +#34771=AXIS2_PLACEMENT_3D('',#51333,#41353,#41354); +#34772=AXIS2_PLACEMENT_3D('',#51337,#41356,#41357); +#34773=AXIS2_PLACEMENT_3D('',#51341,#41359,#41360); +#34774=AXIS2_PLACEMENT_3D('',#51345,#41362,#41363); +#34775=AXIS2_PLACEMENT_3D('',#51349,#41365,#41366); +#34776=AXIS2_PLACEMENT_3D('',#51357,#41370,#41371); +#34777=AXIS2_PLACEMENT_3D('',#51361,#41373,#41374); +#34778=AXIS2_PLACEMENT_3D('',#51365,#41376,#41377); +#34779=AXIS2_PLACEMENT_3D('',#51369,#41379,#41380); +#34780=AXIS2_PLACEMENT_3D('',#51373,#41382,#41383); +#34781=AXIS2_PLACEMENT_3D('',#51377,#41385,#41386); +#34782=AXIS2_PLACEMENT_3D('',#51385,#41390,#41391); +#34783=AXIS2_PLACEMENT_3D('',#51389,#41393,#41394); +#34784=AXIS2_PLACEMENT_3D('',#51393,#41396,#41397); +#34785=AXIS2_PLACEMENT_3D('',#51397,#41399,#41400); +#34786=AXIS2_PLACEMENT_3D('',#51401,#41402,#41403); +#34787=AXIS2_PLACEMENT_3D('',#51405,#41405,#41406); +#34788=AXIS2_PLACEMENT_3D('',#51413,#41410,#41411); +#34789=AXIS2_PLACEMENT_3D('',#51417,#41413,#41414); +#34790=AXIS2_PLACEMENT_3D('',#51421,#41416,#41417); +#34791=AXIS2_PLACEMENT_3D('',#51425,#41419,#41420); +#34792=AXIS2_PLACEMENT_3D('',#51429,#41422,#41423); +#34793=AXIS2_PLACEMENT_3D('',#51433,#41425,#41426); +#34794=AXIS2_PLACEMENT_3D('',#51441,#41430,#41431); +#34795=AXIS2_PLACEMENT_3D('',#51445,#41433,#41434); +#34796=AXIS2_PLACEMENT_3D('',#51449,#41436,#41437); +#34797=AXIS2_PLACEMENT_3D('',#51453,#41439,#41440); +#34798=AXIS2_PLACEMENT_3D('',#51457,#41442,#41443); +#34799=AXIS2_PLACEMENT_3D('',#51461,#41445,#41446); +#34800=AXIS2_PLACEMENT_3D('',#51469,#41450,#41451); +#34801=AXIS2_PLACEMENT_3D('',#51473,#41453,#41454); +#34802=AXIS2_PLACEMENT_3D('',#51477,#41456,#41457); +#34803=AXIS2_PLACEMENT_3D('',#51481,#41459,#41460); +#34804=AXIS2_PLACEMENT_3D('',#51485,#41462,#41463); +#34805=AXIS2_PLACEMENT_3D('',#51489,#41465,#41466); +#34806=AXIS2_PLACEMENT_3D('',#51497,#41470,#41471); +#34807=AXIS2_PLACEMENT_3D('',#51501,#41473,#41474); +#34808=AXIS2_PLACEMENT_3D('',#51505,#41476,#41477); +#34809=AXIS2_PLACEMENT_3D('',#51509,#41479,#41480); +#34810=AXIS2_PLACEMENT_3D('',#51513,#41482,#41483); +#34811=AXIS2_PLACEMENT_3D('',#51517,#41485,#41486); +#34812=AXIS2_PLACEMENT_3D('',#51525,#41490,#41491); +#34813=AXIS2_PLACEMENT_3D('',#51529,#41493,#41494); +#34814=AXIS2_PLACEMENT_3D('',#51533,#41496,#41497); +#34815=AXIS2_PLACEMENT_3D('',#51537,#41499,#41500); +#34816=AXIS2_PLACEMENT_3D('',#51541,#41502,#41503); +#34817=AXIS2_PLACEMENT_3D('',#51545,#41505,#41506); +#34818=AXIS2_PLACEMENT_3D('',#51553,#41510,#41511); +#34819=AXIS2_PLACEMENT_3D('',#51557,#41513,#41514); +#34820=AXIS2_PLACEMENT_3D('',#51561,#41516,#41517); +#34821=AXIS2_PLACEMENT_3D('',#51565,#41519,#41520); +#34822=AXIS2_PLACEMENT_3D('',#51569,#41522,#41523); +#34823=AXIS2_PLACEMENT_3D('',#51573,#41525,#41526); +#34824=AXIS2_PLACEMENT_3D('',#51581,#41530,#41531); +#34825=AXIS2_PLACEMENT_3D('',#51585,#41533,#41534); +#34826=AXIS2_PLACEMENT_3D('',#51589,#41536,#41537); +#34827=AXIS2_PLACEMENT_3D('',#51593,#41539,#41540); +#34828=AXIS2_PLACEMENT_3D('',#51597,#41542,#41543); +#34829=AXIS2_PLACEMENT_3D('',#51601,#41545,#41546); +#34830=AXIS2_PLACEMENT_3D('',#51609,#41550,#41551); +#34831=AXIS2_PLACEMENT_3D('',#51613,#41553,#41554); +#34832=AXIS2_PLACEMENT_3D('',#51617,#41556,#41557); +#34833=AXIS2_PLACEMENT_3D('',#51621,#41559,#41560); +#34834=AXIS2_PLACEMENT_3D('',#51625,#41562,#41563); +#34835=AXIS2_PLACEMENT_3D('',#51629,#41565,#41566); +#34836=AXIS2_PLACEMENT_3D('',#51636,#41570,#41571); +#34837=AXIS2_PLACEMENT_3D('',#51646,#41576,#41577); +#34838=AXIS2_PLACEMENT_3D('',#51650,#41579,#41580); +#34839=AXIS2_PLACEMENT_3D('',#51654,#41582,#41583); +#34840=AXIS2_PLACEMENT_3D('',#51658,#41585,#41586); +#34841=AXIS2_PLACEMENT_3D('',#51662,#41588,#41589); +#34842=AXIS2_PLACEMENT_3D('',#51666,#41591,#41592); +#34843=AXIS2_PLACEMENT_3D('',#51674,#41596,#41597); +#34844=AXIS2_PLACEMENT_3D('',#51678,#41599,#41600); +#34845=AXIS2_PLACEMENT_3D('',#51682,#41602,#41603); +#34846=AXIS2_PLACEMENT_3D('',#51686,#41605,#41606); +#34847=AXIS2_PLACEMENT_3D('',#51690,#41608,#41609); +#34848=AXIS2_PLACEMENT_3D('',#51694,#41611,#41612); +#34849=AXIS2_PLACEMENT_3D('',#51702,#41616,#41617); +#34850=AXIS2_PLACEMENT_3D('',#51706,#41619,#41620); +#34851=AXIS2_PLACEMENT_3D('',#51710,#41622,#41623); +#34852=AXIS2_PLACEMENT_3D('',#51714,#41625,#41626); +#34853=AXIS2_PLACEMENT_3D('',#51718,#41628,#41629); +#34854=AXIS2_PLACEMENT_3D('',#51722,#41631,#41632); +#34855=AXIS2_PLACEMENT_3D('',#51730,#41636,#41637); +#34856=AXIS2_PLACEMENT_3D('',#51734,#41639,#41640); +#34857=AXIS2_PLACEMENT_3D('',#51738,#41642,#41643); +#34858=AXIS2_PLACEMENT_3D('',#51742,#41645,#41646); +#34859=AXIS2_PLACEMENT_3D('',#51746,#41648,#41649); +#34860=AXIS2_PLACEMENT_3D('',#51750,#41651,#41652); +#34861=AXIS2_PLACEMENT_3D('',#51758,#41656,#41657); +#34862=AXIS2_PLACEMENT_3D('',#51762,#41659,#41660); +#34863=AXIS2_PLACEMENT_3D('',#51766,#41662,#41663); +#34864=AXIS2_PLACEMENT_3D('',#51770,#41665,#41666); +#34865=AXIS2_PLACEMENT_3D('',#51774,#41668,#41669); +#34866=AXIS2_PLACEMENT_3D('',#51778,#41671,#41672); +#34867=AXIS2_PLACEMENT_3D('',#51786,#41676,#41677); +#34868=AXIS2_PLACEMENT_3D('',#51790,#41679,#41680); +#34869=AXIS2_PLACEMENT_3D('',#51794,#41682,#41683); +#34870=AXIS2_PLACEMENT_3D('',#51798,#41685,#41686); +#34871=AXIS2_PLACEMENT_3D('',#51802,#41688,#41689); +#34872=AXIS2_PLACEMENT_3D('',#51806,#41691,#41692); +#34873=AXIS2_PLACEMENT_3D('',#51814,#41696,#41697); +#34874=AXIS2_PLACEMENT_3D('',#51818,#41699,#41700); +#34875=AXIS2_PLACEMENT_3D('',#51822,#41702,#41703); +#34876=AXIS2_PLACEMENT_3D('',#51826,#41705,#41706); +#34877=AXIS2_PLACEMENT_3D('',#51830,#41708,#41709); +#34878=AXIS2_PLACEMENT_3D('',#51834,#41711,#41712); +#34879=AXIS2_PLACEMENT_3D('',#51842,#41716,#41717); +#34880=AXIS2_PLACEMENT_3D('',#51846,#41719,#41720); +#34881=AXIS2_PLACEMENT_3D('',#51850,#41722,#41723); +#34882=AXIS2_PLACEMENT_3D('',#51854,#41725,#41726); +#34883=AXIS2_PLACEMENT_3D('',#51858,#41728,#41729); +#34884=AXIS2_PLACEMENT_3D('',#51862,#41731,#41732); +#34885=AXIS2_PLACEMENT_3D('',#51870,#41736,#41737); +#34886=AXIS2_PLACEMENT_3D('',#51874,#41739,#41740); +#34887=AXIS2_PLACEMENT_3D('',#51878,#41742,#41743); +#34888=AXIS2_PLACEMENT_3D('',#51882,#41745,#41746); +#34889=AXIS2_PLACEMENT_3D('',#51886,#41748,#41749); +#34890=AXIS2_PLACEMENT_3D('',#51890,#41751,#41752); +#34891=AXIS2_PLACEMENT_3D('',#51898,#41756,#41757); +#34892=AXIS2_PLACEMENT_3D('',#51902,#41759,#41760); +#34893=AXIS2_PLACEMENT_3D('',#51906,#41762,#41763); +#34894=AXIS2_PLACEMENT_3D('',#51910,#41765,#41766); +#34895=AXIS2_PLACEMENT_3D('',#51914,#41768,#41769); +#34896=AXIS2_PLACEMENT_3D('',#51918,#41771,#41772); +#34897=AXIS2_PLACEMENT_3D('',#51926,#41776,#41777); +#34898=AXIS2_PLACEMENT_3D('',#51930,#41779,#41780); +#34899=AXIS2_PLACEMENT_3D('',#51934,#41782,#41783); +#34900=AXIS2_PLACEMENT_3D('',#51938,#41785,#41786); +#34901=AXIS2_PLACEMENT_3D('',#51942,#41788,#41789); +#34902=AXIS2_PLACEMENT_3D('',#51946,#41791,#41792); +#34903=AXIS2_PLACEMENT_3D('',#51954,#41796,#41797); +#34904=AXIS2_PLACEMENT_3D('',#51958,#41799,#41800); +#34905=AXIS2_PLACEMENT_3D('',#51962,#41802,#41803); +#34906=AXIS2_PLACEMENT_3D('',#51966,#41805,#41806); +#34907=AXIS2_PLACEMENT_3D('',#51970,#41808,#41809); +#34908=AXIS2_PLACEMENT_3D('',#51974,#41811,#41812); +#34909=AXIS2_PLACEMENT_3D('',#51982,#41816,#41817); +#34910=AXIS2_PLACEMENT_3D('',#51986,#41819,#41820); +#34911=AXIS2_PLACEMENT_3D('',#51990,#41822,#41823); +#34912=AXIS2_PLACEMENT_3D('',#51994,#41825,#41826); +#34913=AXIS2_PLACEMENT_3D('',#51998,#41828,#41829); +#34914=AXIS2_PLACEMENT_3D('',#52002,#41831,#41832); +#34915=AXIS2_PLACEMENT_3D('',#52010,#41836,#41837); +#34916=AXIS2_PLACEMENT_3D('',#52014,#41839,#41840); +#34917=AXIS2_PLACEMENT_3D('',#52018,#41842,#41843); +#34918=AXIS2_PLACEMENT_3D('',#52022,#41845,#41846); +#34919=AXIS2_PLACEMENT_3D('',#52026,#41848,#41849); +#34920=AXIS2_PLACEMENT_3D('',#52030,#41851,#41852); +#34921=AXIS2_PLACEMENT_3D('',#52038,#41856,#41857); +#34922=AXIS2_PLACEMENT_3D('',#52042,#41859,#41860); +#34923=AXIS2_PLACEMENT_3D('',#52046,#41862,#41863); +#34924=AXIS2_PLACEMENT_3D('',#52050,#41865,#41866); +#34925=AXIS2_PLACEMENT_3D('',#52054,#41868,#41869); +#34926=AXIS2_PLACEMENT_3D('',#52058,#41871,#41872); +#34927=AXIS2_PLACEMENT_3D('',#52066,#41876,#41877); +#34928=AXIS2_PLACEMENT_3D('',#52070,#41879,#41880); +#34929=AXIS2_PLACEMENT_3D('',#52074,#41882,#41883); +#34930=AXIS2_PLACEMENT_3D('',#52078,#41885,#41886); +#34931=AXIS2_PLACEMENT_3D('',#52082,#41888,#41889); +#34932=AXIS2_PLACEMENT_3D('',#52086,#41891,#41892); +#34933=AXIS2_PLACEMENT_3D('',#52094,#41896,#41897); +#34934=AXIS2_PLACEMENT_3D('',#52098,#41899,#41900); +#34935=AXIS2_PLACEMENT_3D('',#52102,#41902,#41903); +#34936=AXIS2_PLACEMENT_3D('',#52106,#41905,#41906); +#34937=AXIS2_PLACEMENT_3D('',#52110,#41908,#41909); +#34938=AXIS2_PLACEMENT_3D('',#52114,#41911,#41912); +#34939=AXIS2_PLACEMENT_3D('',#52122,#41916,#41917); +#34940=AXIS2_PLACEMENT_3D('',#52126,#41919,#41920); +#34941=AXIS2_PLACEMENT_3D('',#52130,#41922,#41923); +#34942=AXIS2_PLACEMENT_3D('',#52134,#41925,#41926); +#34943=AXIS2_PLACEMENT_3D('',#52138,#41928,#41929); +#34944=AXIS2_PLACEMENT_3D('',#52142,#41931,#41932); +#34945=AXIS2_PLACEMENT_3D('',#52150,#41936,#41937); +#34946=AXIS2_PLACEMENT_3D('',#52154,#41939,#41940); +#34947=AXIS2_PLACEMENT_3D('',#52158,#41942,#41943); +#34948=AXIS2_PLACEMENT_3D('',#52162,#41945,#41946); +#34949=AXIS2_PLACEMENT_3D('',#52166,#41948,#41949); +#34950=AXIS2_PLACEMENT_3D('',#52170,#41951,#41952); +#34951=AXIS2_PLACEMENT_3D('',#52178,#41956,#41957); +#34952=AXIS2_PLACEMENT_3D('',#52182,#41959,#41960); +#34953=AXIS2_PLACEMENT_3D('',#52186,#41962,#41963); +#34954=AXIS2_PLACEMENT_3D('',#52190,#41965,#41966); +#34955=AXIS2_PLACEMENT_3D('',#52194,#41968,#41969); +#34956=AXIS2_PLACEMENT_3D('',#52198,#41971,#41972); +#34957=AXIS2_PLACEMENT_3D('',#52205,#41976,#41977); +#34958=AXIS2_PLACEMENT_3D('',#52208,#41980,#41981); +#34959=AXIS2_PLACEMENT_3D('',#52211,#41984,#41985); +#34960=AXIS2_PLACEMENT_3D('',#52214,#41988,#41989); +#34961=AXIS2_PLACEMENT_3D('',#52217,#41992,#41993); +#34962=AXIS2_PLACEMENT_3D('',#52220,#41996,#41997); +#34963=AXIS2_PLACEMENT_3D('',#52223,#42000,#42001); +#34964=AXIS2_PLACEMENT_3D('',#52226,#42004,#42005); +#34965=AXIS2_PLACEMENT_3D('',#52229,#42008,#42009); +#34966=AXIS2_PLACEMENT_3D('',#52232,#42012,#42013); +#34967=AXIS2_PLACEMENT_3D('',#52235,#42016,#42017); +#34968=AXIS2_PLACEMENT_3D('',#52238,#42020,#42021); +#34969=AXIS2_PLACEMENT_3D('',#52241,#42024,#42025); +#34970=AXIS2_PLACEMENT_3D('',#52244,#42028,#42029); +#34971=AXIS2_PLACEMENT_3D('',#52247,#42032,#42033); +#34972=AXIS2_PLACEMENT_3D('',#52250,#42036,#42037); +#34973=AXIS2_PLACEMENT_3D('',#52253,#42040,#42041); +#34974=AXIS2_PLACEMENT_3D('',#52256,#42044,#42045); +#34975=AXIS2_PLACEMENT_3D('',#52259,#42048,#42049); +#34976=AXIS2_PLACEMENT_3D('',#52262,#42052,#42053); +#34977=AXIS2_PLACEMENT_3D('',#52265,#42056,#42057); +#34978=AXIS2_PLACEMENT_3D('',#52268,#42060,#42061); +#34979=AXIS2_PLACEMENT_3D('',#52271,#42064,#42065); +#34980=AXIS2_PLACEMENT_3D('',#52274,#42068,#42069); +#34981=AXIS2_PLACEMENT_3D('',#52277,#42072,#42073); +#34982=AXIS2_PLACEMENT_3D('',#52280,#42076,#42077); +#34983=AXIS2_PLACEMENT_3D('',#52283,#42080,#42081); +#34984=AXIS2_PLACEMENT_3D('',#52286,#42084,#42085); +#34985=AXIS2_PLACEMENT_3D('',#52289,#42088,#42089); +#34986=AXIS2_PLACEMENT_3D('',#52292,#42092,#42093); +#34987=AXIS2_PLACEMENT_3D('',#52295,#42096,#42097); +#34988=AXIS2_PLACEMENT_3D('',#52298,#42100,#42101); +#34989=AXIS2_PLACEMENT_3D('',#52301,#42104,#42105); +#34990=AXIS2_PLACEMENT_3D('',#52304,#42108,#42109); +#34991=AXIS2_PLACEMENT_3D('',#52307,#42112,#42113); +#34992=AXIS2_PLACEMENT_3D('',#52310,#42116,#42117); +#34993=AXIS2_PLACEMENT_3D('',#52313,#42120,#42121); +#34994=AXIS2_PLACEMENT_3D('',#52316,#42124,#42125); +#34995=AXIS2_PLACEMENT_3D('',#52319,#42128,#42129); +#34996=AXIS2_PLACEMENT_3D('',#52322,#42132,#42133); +#34997=AXIS2_PLACEMENT_3D('',#52325,#42136,#42137); +#34998=AXIS2_PLACEMENT_3D('',#52328,#42140,#42141); +#34999=AXIS2_PLACEMENT_3D('',#52331,#42144,#42145); +#35000=AXIS2_PLACEMENT_3D('',#52334,#42148,#42149); +#35001=AXIS2_PLACEMENT_3D('',#52337,#42152,#42153); +#35002=AXIS2_PLACEMENT_3D('',#52343,#42154,#42155); +#35003=AXIS2_PLACEMENT_3D('',#52357,#42157,#42158); +#35004=AXIS2_PLACEMENT_3D('',#52363,#42159,#42160); +#35005=AXIS2_PLACEMENT_3D('',#52369,#42161,#42162); +#35006=AXIS2_PLACEMENT_3D('',#52383,#42164,#42165); +#35007=AXIS2_PLACEMENT_3D('',#52389,#42166,#42167); +#35008=AXIS2_PLACEMENT_3D('',#52395,#42168,#42169); +#35009=AXIS2_PLACEMENT_3D('',#52409,#42171,#42172); +#35010=AXIS2_PLACEMENT_3D('',#52415,#42173,#42174); +#35011=AXIS2_PLACEMENT_3D('',#52421,#42175,#42176); +#35012=AXIS2_PLACEMENT_3D('',#52435,#42178,#42179); +#35013=AXIS2_PLACEMENT_3D('',#52441,#42180,#42181); +#35014=AXIS2_PLACEMENT_3D('',#52447,#42182,#42183); +#35015=AXIS2_PLACEMENT_3D('',#52461,#42185,#42186); +#35016=AXIS2_PLACEMENT_3D('',#52467,#42187,#42188); +#35017=AXIS2_PLACEMENT_3D('',#52473,#42189,#42190); +#35018=AXIS2_PLACEMENT_3D('',#52487,#42192,#42193); +#35019=AXIS2_PLACEMENT_3D('',#52493,#42194,#42195); +#35020=AXIS2_PLACEMENT_3D('',#52499,#42196,#42197); +#35021=AXIS2_PLACEMENT_3D('',#52513,#42199,#42200); +#35022=AXIS2_PLACEMENT_3D('',#52519,#42201,#42202); +#35023=AXIS2_PLACEMENT_3D('',#52525,#42203,#42204); +#35024=AXIS2_PLACEMENT_3D('',#52539,#42206,#42207); +#35025=AXIS2_PLACEMENT_3D('',#52545,#42208,#42209); +#35026=AXIS2_PLACEMENT_3D('',#52551,#42210,#42211); +#35027=AXIS2_PLACEMENT_3D('',#52565,#42213,#42214); +#35028=AXIS2_PLACEMENT_3D('',#52571,#42215,#42216); +#35029=AXIS2_PLACEMENT_3D('',#52577,#42217,#42218); +#35030=AXIS2_PLACEMENT_3D('',#52591,#42220,#42221); +#35031=AXIS2_PLACEMENT_3D('',#52597,#42222,#42223); +#35032=AXIS2_PLACEMENT_3D('',#52603,#42224,#42225); +#35033=AXIS2_PLACEMENT_3D('',#52617,#42227,#42228); +#35034=AXIS2_PLACEMENT_3D('',#52623,#42229,#42230); +#35035=AXIS2_PLACEMENT_3D('',#52629,#42231,#42232); +#35036=AXIS2_PLACEMENT_3D('',#52643,#42234,#42235); +#35037=AXIS2_PLACEMENT_3D('',#52649,#42236,#42237); +#35038=AXIS2_PLACEMENT_3D('',#52655,#42238,#42239); +#35039=AXIS2_PLACEMENT_3D('',#52669,#42241,#42242); +#35040=AXIS2_PLACEMENT_3D('',#52675,#42243,#42244); +#35041=AXIS2_PLACEMENT_3D('',#52681,#42245,#42246); +#35042=AXIS2_PLACEMENT_3D('',#52695,#42248,#42249); +#35043=AXIS2_PLACEMENT_3D('',#52701,#42250,#42251); +#35044=AXIS2_PLACEMENT_3D('',#52707,#42252,#42253); +#35045=AXIS2_PLACEMENT_3D('',#52721,#42255,#42256); +#35046=AXIS2_PLACEMENT_3D('',#52727,#42257,#42258); +#35047=AXIS2_PLACEMENT_3D('',#52733,#42259,#42260); +#35048=AXIS2_PLACEMENT_3D('',#52747,#42262,#42263); +#35049=AXIS2_PLACEMENT_3D('',#52753,#42264,#42265); +#35050=AXIS2_PLACEMENT_3D('',#52759,#42266,#42267); +#35051=AXIS2_PLACEMENT_3D('',#52773,#42269,#42270); +#35052=AXIS2_PLACEMENT_3D('',#52779,#42271,#42272); +#35053=AXIS2_PLACEMENT_3D('',#52785,#42273,#42274); +#35054=AXIS2_PLACEMENT_3D('',#52799,#42276,#42277); +#35055=AXIS2_PLACEMENT_3D('',#52805,#42278,#42279); +#35056=AXIS2_PLACEMENT_3D('',#52811,#42280,#42281); +#35057=AXIS2_PLACEMENT_3D('',#52825,#42283,#42284); +#35058=AXIS2_PLACEMENT_3D('',#52831,#42285,#42286); +#35059=AXIS2_PLACEMENT_3D('',#52837,#42287,#42288); +#35060=AXIS2_PLACEMENT_3D('',#52851,#42290,#42291); +#35061=AXIS2_PLACEMENT_3D('',#52857,#42292,#42293); +#35062=AXIS2_PLACEMENT_3D('',#52858,#42294,#42295); +#35063=AXIS2_PLACEMENT_3D('',#52866,#42299,#42300); +#35064=AXIS2_PLACEMENT_3D('',#52867,#42301,#42302); +#35065=AXIS2_PLACEMENT_3D('',#52868,#42303,#42304); +#35066=AXIS2_PLACEMENT_3D('',#52876,#42308,#42309); +#35067=AXIS2_PLACEMENT_3D('',#52877,#42310,#42311); +#35068=AXIS2_PLACEMENT_3D('',#52878,#42312,#42313); +#35069=AXIS2_PLACEMENT_3D('',#52886,#42317,#42318); +#35070=AXIS2_PLACEMENT_3D('',#52887,#42319,#42320); +#35071=AXIS2_PLACEMENT_3D('',#52888,#42321,#42322); +#35072=AXIS2_PLACEMENT_3D('',#52896,#42326,#42327); +#35073=AXIS2_PLACEMENT_3D('',#52897,#42328,#42329); +#35074=AXIS2_PLACEMENT_3D('',#52898,#42330,#42331); +#35075=AXIS2_PLACEMENT_3D('',#52906,#42335,#42336); +#35076=AXIS2_PLACEMENT_3D('',#52907,#42337,#42338); +#35077=AXIS2_PLACEMENT_3D('',#52908,#42339,#42340); +#35078=AXIS2_PLACEMENT_3D('',#52916,#42344,#42345); +#35079=AXIS2_PLACEMENT_3D('',#52917,#42346,#42347); +#35080=AXIS2_PLACEMENT_3D('',#52918,#42348,#42349); +#35081=AXIS2_PLACEMENT_3D('',#52926,#42353,#42354); +#35082=AXIS2_PLACEMENT_3D('',#52927,#42355,#42356); +#35083=AXIS2_PLACEMENT_3D('',#52928,#42357,#42358); +#35084=AXIS2_PLACEMENT_3D('',#52936,#42362,#42363); +#35085=AXIS2_PLACEMENT_3D('',#52937,#42364,#42365); +#35086=AXIS2_PLACEMENT_3D('',#52938,#42366,#42367); +#35087=AXIS2_PLACEMENT_3D('',#52946,#42371,#42372); +#35088=AXIS2_PLACEMENT_3D('',#52947,#42373,#42374); +#35089=AXIS2_PLACEMENT_3D('',#52948,#42375,#42376); +#35090=AXIS2_PLACEMENT_3D('',#52956,#42380,#42381); +#35091=AXIS2_PLACEMENT_3D('',#52957,#42382,#42383); +#35092=AXIS2_PLACEMENT_3D('',#52958,#42384,#42385); +#35093=AXIS2_PLACEMENT_3D('',#52966,#42389,#42390); +#35094=AXIS2_PLACEMENT_3D('',#52967,#42391,#42392); +#35095=AXIS2_PLACEMENT_3D('',#52968,#42393,#42394); +#35096=AXIS2_PLACEMENT_3D('',#52976,#42398,#42399); +#35097=AXIS2_PLACEMENT_3D('',#52977,#42400,#42401); +#35098=AXIS2_PLACEMENT_3D('',#52978,#42402,#42403); +#35099=AXIS2_PLACEMENT_3D('',#52986,#42407,#42408); +#35100=AXIS2_PLACEMENT_3D('',#52987,#42409,#42410); +#35101=AXIS2_PLACEMENT_3D('',#52988,#42411,#42412); +#35102=AXIS2_PLACEMENT_3D('',#52996,#42416,#42417); +#35103=AXIS2_PLACEMENT_3D('',#52997,#42418,#42419); +#35104=AXIS2_PLACEMENT_3D('',#52998,#42420,#42421); +#35105=AXIS2_PLACEMENT_3D('',#53006,#42425,#42426); +#35106=AXIS2_PLACEMENT_3D('',#53007,#42427,#42428); +#35107=AXIS2_PLACEMENT_3D('',#53008,#42429,#42430); +#35108=AXIS2_PLACEMENT_3D('',#53016,#42434,#42435); +#35109=AXIS2_PLACEMENT_3D('',#53017,#42436,#42437); +#35110=AXIS2_PLACEMENT_3D('',#53018,#42438,#42439); +#35111=AXIS2_PLACEMENT_3D('',#53026,#42443,#42444); +#35112=AXIS2_PLACEMENT_3D('',#53027,#42445,#42446); +#35113=AXIS2_PLACEMENT_3D('',#53028,#42447,#42448); +#35114=AXIS2_PLACEMENT_3D('',#53036,#42452,#42453); +#35115=AXIS2_PLACEMENT_3D('',#53037,#42454,#42455); +#35116=AXIS2_PLACEMENT_3D('',#53038,#42456,#42457); +#35117=AXIS2_PLACEMENT_3D('',#53046,#42461,#42462); +#35118=AXIS2_PLACEMENT_3D('',#53047,#42463,#42464); +#35119=AXIS2_PLACEMENT_3D('',#53048,#42465,#42466); +#35120=AXIS2_PLACEMENT_3D('',#53059,#42467,#42468); +#35121=AXIS2_PLACEMENT_3D('',#53060,#42469,#42470); +#35122=AXIS2_PLACEMENT_3D('',#53061,#42471,#42472); +#35123=AXIS2_PLACEMENT_3D('',#53072,#42473,#42474); +#35124=AXIS2_PLACEMENT_3D('',#53073,#42475,#42476); +#35125=AXIS2_PLACEMENT_3D('',#53074,#42477,#42478); +#35126=AXIS2_PLACEMENT_3D('',#53085,#42479,#42480); +#35127=AXIS2_PLACEMENT_3D('',#53086,#42481,#42482); +#35128=AXIS2_PLACEMENT_3D('',#53087,#42483,#42484); +#35129=AXIS2_PLACEMENT_3D('',#53098,#42485,#42486); +#35130=AXIS2_PLACEMENT_3D('',#53099,#42487,#42488); +#35131=AXIS2_PLACEMENT_3D('',#53100,#42489,#42490); +#35132=AXIS2_PLACEMENT_3D('',#53111,#42491,#42492); +#35133=AXIS2_PLACEMENT_3D('',#53112,#42493,#42494); +#35134=AXIS2_PLACEMENT_3D('',#53113,#42495,#42496); +#35135=AXIS2_PLACEMENT_3D('',#53124,#42497,#42498); +#35136=AXIS2_PLACEMENT_3D('',#53125,#42499,#42500); +#35137=AXIS2_PLACEMENT_3D('',#53126,#42501,#42502); +#35138=AXIS2_PLACEMENT_3D('',#53137,#42503,#42504); +#35139=AXIS2_PLACEMENT_3D('',#53138,#42505,#42506); +#35140=AXIS2_PLACEMENT_3D('',#53139,#42507,#42508); +#35141=AXIS2_PLACEMENT_3D('',#53150,#42509,#42510); +#35142=AXIS2_PLACEMENT_3D('',#53151,#42511,#42512); +#35143=AXIS2_PLACEMENT_3D('',#53152,#42513,#42514); +#35144=AXIS2_PLACEMENT_3D('',#53163,#42515,#42516); +#35145=AXIS2_PLACEMENT_3D('',#53164,#42517,#42518); +#35146=AXIS2_PLACEMENT_3D('',#53165,#42519,#42520); +#35147=AXIS2_PLACEMENT_3D('',#53176,#42521,#42522); +#35148=AXIS2_PLACEMENT_3D('',#53177,#42523,#42524); +#35149=AXIS2_PLACEMENT_3D('',#53178,#42525,#42526); +#35150=AXIS2_PLACEMENT_3D('',#53189,#42527,#42528); +#35151=AXIS2_PLACEMENT_3D('',#53190,#42529,#42530); +#35152=AXIS2_PLACEMENT_3D('',#53191,#42531,#42532); +#35153=AXIS2_PLACEMENT_3D('',#53202,#42533,#42534); +#35154=AXIS2_PLACEMENT_3D('',#53203,#42535,#42536); +#35155=AXIS2_PLACEMENT_3D('',#53204,#42537,#42538); +#35156=AXIS2_PLACEMENT_3D('',#53215,#42539,#42540); +#35157=AXIS2_PLACEMENT_3D('',#53216,#42541,#42542); +#35158=AXIS2_PLACEMENT_3D('',#53217,#42543,#42544); +#35159=AXIS2_PLACEMENT_3D('',#53228,#42545,#42546); +#35160=AXIS2_PLACEMENT_3D('',#53229,#42547,#42548); +#35161=AXIS2_PLACEMENT_3D('',#53230,#42549,#42550); +#35162=AXIS2_PLACEMENT_3D('',#53241,#42551,#42552); +#35163=AXIS2_PLACEMENT_3D('',#53242,#42553,#42554); +#35164=AXIS2_PLACEMENT_3D('',#53243,#42555,#42556); +#35165=AXIS2_PLACEMENT_3D('',#53254,#42557,#42558); +#35166=AXIS2_PLACEMENT_3D('',#53255,#42559,#42560); +#35167=AXIS2_PLACEMENT_3D('',#53256,#42561,#42562); +#35168=AXIS2_PLACEMENT_3D('',#53267,#42563,#42564); +#35169=AXIS2_PLACEMENT_3D('',#53268,#42565,#42566); +#35170=AXIS2_PLACEMENT_3D('',#53269,#42567,#42568); +#35171=AXIS2_PLACEMENT_3D('',#53280,#42569,#42570); +#35172=AXIS2_PLACEMENT_3D('',#53281,#42571,#42572); +#35173=AXIS2_PLACEMENT_3D('',#53282,#42573,#42574); +#35174=AXIS2_PLACEMENT_3D('',#53293,#42575,#42576); +#35175=AXIS2_PLACEMENT_3D('',#53294,#42577,#42578); +#35176=AXIS2_PLACEMENT_3D('',#53295,#42579,#42580); +#35177=AXIS2_PLACEMENT_3D('',#53307,#42581,#42582); +#35178=AXIS2_PLACEMENT_3D('',#53310,#42584,#42585); +#35179=AXIS2_PLACEMENT_3D('',#53316,#42586,#42587); +#35180=AXIS2_PLACEMENT_3D('',#53320,#42589,#42590); +#35181=AXIS2_PLACEMENT_3D('',#53326,#42591,#42592); +#35182=AXIS2_PLACEMENT_3D('',#53332,#42593,#42594); +#35183=AXIS2_PLACEMENT_3D('',#53336,#42596,#42597); +#35184=AXIS2_PLACEMENT_3D('',#53342,#42598,#42599); +#35185=AXIS2_PLACEMENT_3D('',#53348,#42600,#42601); +#35186=AXIS2_PLACEMENT_3D('',#53352,#42603,#42604); +#35187=AXIS2_PLACEMENT_3D('',#53358,#42605,#42606); +#35188=AXIS2_PLACEMENT_3D('',#53364,#42607,#42608); +#35189=AXIS2_PLACEMENT_3D('',#53368,#42610,#42611); +#35190=AXIS2_PLACEMENT_3D('',#53374,#42612,#42613); +#35191=AXIS2_PLACEMENT_3D('',#53380,#42614,#42615); +#35192=AXIS2_PLACEMENT_3D('',#53384,#42617,#42618); +#35193=AXIS2_PLACEMENT_3D('',#53390,#42619,#42620); +#35194=AXIS2_PLACEMENT_3D('',#53396,#42621,#42622); +#35195=AXIS2_PLACEMENT_3D('',#53400,#42624,#42625); +#35196=AXIS2_PLACEMENT_3D('',#53406,#42626,#42627); +#35197=AXIS2_PLACEMENT_3D('',#53412,#42628,#42629); +#35198=AXIS2_PLACEMENT_3D('',#53416,#42631,#42632); +#35199=AXIS2_PLACEMENT_3D('',#53422,#42633,#42634); +#35200=AXIS2_PLACEMENT_3D('',#53428,#42635,#42636); +#35201=AXIS2_PLACEMENT_3D('',#53432,#42638,#42639); +#35202=AXIS2_PLACEMENT_3D('',#53438,#42640,#42641); +#35203=AXIS2_PLACEMENT_3D('',#53444,#42642,#42643); +#35204=AXIS2_PLACEMENT_3D('',#53448,#42645,#42646); +#35205=AXIS2_PLACEMENT_3D('',#53454,#42647,#42648); +#35206=AXIS2_PLACEMENT_3D('',#53460,#42649,#42650); +#35207=AXIS2_PLACEMENT_3D('',#53464,#42652,#42653); +#35208=AXIS2_PLACEMENT_3D('',#53470,#42654,#42655); +#35209=AXIS2_PLACEMENT_3D('',#53476,#42656,#42657); +#35210=AXIS2_PLACEMENT_3D('',#53480,#42659,#42660); +#35211=AXIS2_PLACEMENT_3D('',#53486,#42661,#42662); +#35212=AXIS2_PLACEMENT_3D('',#53492,#42663,#42664); +#35213=AXIS2_PLACEMENT_3D('',#53496,#42666,#42667); +#35214=AXIS2_PLACEMENT_3D('',#53502,#42668,#42669); +#35215=AXIS2_PLACEMENT_3D('',#53508,#42670,#42671); +#35216=AXIS2_PLACEMENT_3D('',#53512,#42673,#42674); +#35217=AXIS2_PLACEMENT_3D('',#53518,#42675,#42676); +#35218=AXIS2_PLACEMENT_3D('',#53524,#42677,#42678); +#35219=AXIS2_PLACEMENT_3D('',#53528,#42680,#42681); +#35220=AXIS2_PLACEMENT_3D('',#53534,#42682,#42683); +#35221=AXIS2_PLACEMENT_3D('',#53540,#42684,#42685); +#35222=AXIS2_PLACEMENT_3D('',#53544,#42687,#42688); +#35223=AXIS2_PLACEMENT_3D('',#53550,#42689,#42690); +#35224=AXIS2_PLACEMENT_3D('',#53556,#42691,#42692); +#35225=AXIS2_PLACEMENT_3D('',#53560,#42694,#42695); +#35226=AXIS2_PLACEMENT_3D('',#53566,#42696,#42697); +#35227=AXIS2_PLACEMENT_3D('',#53572,#42698,#42699); +#35228=AXIS2_PLACEMENT_3D('',#53576,#42701,#42702); +#35229=AXIS2_PLACEMENT_3D('',#53582,#42703,#42704); +#35230=AXIS2_PLACEMENT_3D('',#53588,#42705,#42706); +#35231=AXIS2_PLACEMENT_3D('',#53592,#42708,#42709); +#35232=AXIS2_PLACEMENT_3D('',#53598,#42710,#42711); +#35233=AXIS2_PLACEMENT_3D('',#53604,#42712,#42713); +#35234=AXIS2_PLACEMENT_3D('',#53608,#42715,#42716); +#35235=AXIS2_PLACEMENT_3D('',#53614,#42717,#42718); +#35236=AXIS2_PLACEMENT_3D('',#53620,#42719,#42720); +#35237=AXIS2_PLACEMENT_3D('',#53624,#42722,#42723); +#35238=AXIS2_PLACEMENT_3D('',#53630,#42724,#42725); +#35239=AXIS2_PLACEMENT_3D('',#53633,#42727,#42728); +#35240=AXIS2_PLACEMENT_3D('',#53637,#42730,#42731); +#35241=AXIS2_PLACEMENT_3D('',#53640,#42733,#42734); +#35242=AXIS2_PLACEMENT_3D('',#53643,#42736,#42737); +#35243=AXIS2_PLACEMENT_3D('',#53647,#42739,#42740); +#35244=AXIS2_PLACEMENT_3D('',#53650,#42742,#42743); +#35245=AXIS2_PLACEMENT_3D('',#53653,#42745,#42746); +#35246=AXIS2_PLACEMENT_3D('',#53657,#42748,#42749); +#35247=AXIS2_PLACEMENT_3D('',#53660,#42751,#42752); +#35248=AXIS2_PLACEMENT_3D('',#53663,#42754,#42755); +#35249=AXIS2_PLACEMENT_3D('',#53667,#42757,#42758); +#35250=AXIS2_PLACEMENT_3D('',#53670,#42760,#42761); +#35251=AXIS2_PLACEMENT_3D('',#53673,#42763,#42764); +#35252=AXIS2_PLACEMENT_3D('',#53677,#42766,#42767); +#35253=AXIS2_PLACEMENT_3D('',#53680,#42769,#42770); +#35254=AXIS2_PLACEMENT_3D('',#53683,#42772,#42773); +#35255=AXIS2_PLACEMENT_3D('',#53687,#42775,#42776); +#35256=AXIS2_PLACEMENT_3D('',#53690,#42778,#42779); +#35257=AXIS2_PLACEMENT_3D('',#53693,#42781,#42782); +#35258=AXIS2_PLACEMENT_3D('',#53697,#42784,#42785); +#35259=AXIS2_PLACEMENT_3D('',#53700,#42787,#42788); +#35260=AXIS2_PLACEMENT_3D('',#53703,#42790,#42791); +#35261=AXIS2_PLACEMENT_3D('',#53707,#42793,#42794); +#35262=AXIS2_PLACEMENT_3D('',#53710,#42796,#42797); +#35263=AXIS2_PLACEMENT_3D('',#53713,#42799,#42800); +#35264=AXIS2_PLACEMENT_3D('',#53717,#42802,#42803); +#35265=AXIS2_PLACEMENT_3D('',#53720,#42805,#42806); +#35266=AXIS2_PLACEMENT_3D('',#53723,#42808,#42809); +#35267=AXIS2_PLACEMENT_3D('',#53727,#42811,#42812); +#35268=AXIS2_PLACEMENT_3D('',#53730,#42814,#42815); +#35269=AXIS2_PLACEMENT_3D('',#53733,#42817,#42818); +#35270=AXIS2_PLACEMENT_3D('',#53737,#42820,#42821); +#35271=AXIS2_PLACEMENT_3D('',#53740,#42823,#42824); +#35272=AXIS2_PLACEMENT_3D('',#53743,#42826,#42827); +#35273=AXIS2_PLACEMENT_3D('',#53747,#42829,#42830); +#35274=AXIS2_PLACEMENT_3D('',#53750,#42832,#42833); +#35275=AXIS2_PLACEMENT_3D('',#53753,#42835,#42836); +#35276=AXIS2_PLACEMENT_3D('',#53757,#42838,#42839); +#35277=AXIS2_PLACEMENT_3D('',#53760,#42841,#42842); +#35278=AXIS2_PLACEMENT_3D('',#53763,#42844,#42845); +#35279=AXIS2_PLACEMENT_3D('',#53767,#42847,#42848); +#35280=AXIS2_PLACEMENT_3D('',#53770,#42850,#42851); +#35281=AXIS2_PLACEMENT_3D('',#53773,#42853,#42854); +#35282=AXIS2_PLACEMENT_3D('',#53777,#42856,#42857); +#35283=AXIS2_PLACEMENT_3D('',#53780,#42859,#42860); +#35284=AXIS2_PLACEMENT_3D('',#53783,#42862,#42863); +#35285=AXIS2_PLACEMENT_3D('',#53787,#42865,#42866); +#35286=AXIS2_PLACEMENT_3D('',#53790,#42868,#42869); +#35287=AXIS2_PLACEMENT_3D('',#53793,#42871,#42872); +#35288=AXIS2_PLACEMENT_3D('',#53797,#42874,#42875); +#35289=AXIS2_PLACEMENT_3D('',#53800,#42877,#42878); +#35290=AXIS2_PLACEMENT_3D('',#53803,#42880,#42881); +#35291=AXIS2_PLACEMENT_3D('',#53807,#42883,#42884); +#35292=AXIS2_PLACEMENT_3D('',#53810,#42886,#42887); +#35293=AXIS2_PLACEMENT_3D('',#53813,#42889,#42890); +#35294=AXIS2_PLACEMENT_3D('',#53817,#42892,#42893); +#35295=AXIS2_PLACEMENT_3D('',#53820,#42895,#42896); +#35296=AXIS2_PLACEMENT_3D('',#53831,#42897,#42898); +#35297=AXIS2_PLACEMENT_3D('',#53842,#42899,#42900); +#35298=AXIS2_PLACEMENT_3D('',#53843,#42901,#42902); +#35299=AXIS2_PLACEMENT_3D('',#53854,#42903,#42904); +#35300=AXIS2_PLACEMENT_3D('',#53865,#42905,#42906); +#35301=AXIS2_PLACEMENT_3D('',#53866,#42907,#42908); +#35302=AXIS2_PLACEMENT_3D('',#53877,#42909,#42910); +#35303=AXIS2_PLACEMENT_3D('',#53888,#42911,#42912); +#35304=AXIS2_PLACEMENT_3D('',#53889,#42913,#42914); +#35305=AXIS2_PLACEMENT_3D('',#53900,#42915,#42916); +#35306=AXIS2_PLACEMENT_3D('',#53911,#42917,#42918); +#35307=AXIS2_PLACEMENT_3D('',#53912,#42919,#42920); +#35308=AXIS2_PLACEMENT_3D('',#53923,#42921,#42922); +#35309=AXIS2_PLACEMENT_3D('',#53934,#42923,#42924); +#35310=AXIS2_PLACEMENT_3D('',#53935,#42925,#42926); +#35311=AXIS2_PLACEMENT_3D('',#53946,#42927,#42928); +#35312=AXIS2_PLACEMENT_3D('',#53957,#42929,#42930); +#35313=AXIS2_PLACEMENT_3D('',#53958,#42931,#42932); +#35314=AXIS2_PLACEMENT_3D('',#53969,#42933,#42934); +#35315=AXIS2_PLACEMENT_3D('',#53980,#42935,#42936); +#35316=AXIS2_PLACEMENT_3D('',#53981,#42937,#42938); +#35317=AXIS2_PLACEMENT_3D('',#53992,#42939,#42940); +#35318=AXIS2_PLACEMENT_3D('',#54003,#42941,#42942); +#35319=AXIS2_PLACEMENT_3D('',#54004,#42943,#42944); +#35320=AXIS2_PLACEMENT_3D('',#54015,#42945,#42946); +#35321=AXIS2_PLACEMENT_3D('',#54026,#42947,#42948); +#35322=AXIS2_PLACEMENT_3D('',#54027,#42949,#42950); +#35323=AXIS2_PLACEMENT_3D('',#54038,#42951,#42952); +#35324=AXIS2_PLACEMENT_3D('',#54049,#42953,#42954); +#35325=AXIS2_PLACEMENT_3D('',#54050,#42955,#42956); +#35326=AXIS2_PLACEMENT_3D('',#54061,#42957,#42958); +#35327=AXIS2_PLACEMENT_3D('',#54072,#42959,#42960); +#35328=AXIS2_PLACEMENT_3D('',#54073,#42961,#42962); +#35329=AXIS2_PLACEMENT_3D('',#54084,#42963,#42964); +#35330=AXIS2_PLACEMENT_3D('',#54095,#42965,#42966); +#35331=AXIS2_PLACEMENT_3D('',#54096,#42967,#42968); +#35332=AXIS2_PLACEMENT_3D('',#54107,#42969,#42970); +#35333=AXIS2_PLACEMENT_3D('',#54118,#42971,#42972); +#35334=AXIS2_PLACEMENT_3D('',#54119,#42973,#42974); +#35335=AXIS2_PLACEMENT_3D('',#54130,#42975,#42976); +#35336=AXIS2_PLACEMENT_3D('',#54141,#42977,#42978); +#35337=AXIS2_PLACEMENT_3D('',#54142,#42979,#42980); +#35338=AXIS2_PLACEMENT_3D('',#54153,#42981,#42982); +#35339=AXIS2_PLACEMENT_3D('',#54164,#42983,#42984); +#35340=AXIS2_PLACEMENT_3D('',#54165,#42985,#42986); +#35341=AXIS2_PLACEMENT_3D('',#54176,#42987,#42988); +#35342=AXIS2_PLACEMENT_3D('',#54187,#42989,#42990); +#35343=AXIS2_PLACEMENT_3D('',#54188,#42991,#42992); +#35344=AXIS2_PLACEMENT_3D('',#54199,#42993,#42994); +#35345=AXIS2_PLACEMENT_3D('',#54210,#42995,#42996); +#35346=AXIS2_PLACEMENT_3D('',#54211,#42997,#42998); +#35347=AXIS2_PLACEMENT_3D('',#54222,#42999,#43000); +#35348=AXIS2_PLACEMENT_3D('',#54233,#43001,#43002); +#35349=AXIS2_PLACEMENT_3D('',#54234,#43003,#43004); +#35350=AXIS2_PLACEMENT_3D('',#54245,#43005,#43006); +#35351=AXIS2_PLACEMENT_3D('',#54256,#43007,#43008); +#35352=AXIS2_PLACEMENT_3D('',#54257,#43009,#43010); +#35353=AXIS2_PLACEMENT_3D('',#54268,#43011,#43012); +#35354=AXIS2_PLACEMENT_3D('',#54282,#43014,#43015); +#35355=AXIS2_PLACEMENT_3D('',#54283,#43016,#43017); +#35356=AXIS2_PLACEMENT_3D('',#54286,#43020,#43021); +#35357=AXIS2_PLACEMENT_3D('',#54289,#43024,#43025); +#35358=AXIS2_PLACEMENT_3D('',#54290,#43026,#43027); +#35359=AXIS2_PLACEMENT_3D('',#54295,#43030,#43031); +#35360=AXIS2_PLACEMENT_3D('',#54296,#43032,#43033); +#35361=AXIS2_PLACEMENT_3D('',#54299,#43035,#43036); +#35362=AXIS2_PLACEMENT_3D('',#54300,#43037,#43038); +#35363=AXIS2_PLACEMENT_3D('',#54303,#43040,#43041); +#35364=AXIS2_PLACEMENT_3D('',#54305,#43043,#43044); +#35365=AXIS2_PLACEMENT_3D('',#54307,#43046,#43047); +#35366=AXIS2_PLACEMENT_3D('',#54310,#43050,#43051); +#35367=AXIS2_PLACEMENT_3D('',#54312,#43053,#43054); +#35368=AXIS2_PLACEMENT_3D('',#54314,#43056,#43057); +#35369=AXIS2_PLACEMENT_3D('',#54316,#43059,#43060); +#35370=AXIS2_PLACEMENT_3D('',#54317,#43061,#43062); +#35371=AXIS2_PLACEMENT_3D('',#54318,#43063,#43064); +#35372=AXIS2_PLACEMENT_3D('',#54321,#43067,#43068); +#35373=AXIS2_PLACEMENT_3D('',#54323,#43070,#43071); +#35374=AXIS2_PLACEMENT_3D('',#54325,#43073,#43074); +#35375=AXIS2_PLACEMENT_3D('',#54327,#43076,#43077); +#35376=AXIS2_PLACEMENT_3D('',#54328,#43078,#43079); +#35377=AXIS2_PLACEMENT_3D('',#54331,#43082,#43083); +#35378=AXIS2_PLACEMENT_3D('',#54332,#43084,#43085); +#35379=AXIS2_PLACEMENT_3D('',#54333,#43086,#43087); +#35380=AXIS2_PLACEMENT_3D('',#54335,#43089,#43090); +#35381=AXIS2_PLACEMENT_3D('',#54337,#43092,#43093); +#35382=AXIS2_PLACEMENT_3D('',#54339,#43095,#43096); +#35383=AXIS2_PLACEMENT_3D('',#54341,#43098,#43099); +#35384=AXIS2_PLACEMENT_3D('',#54343,#43101,#43102); +#35385=AXIS2_PLACEMENT_3D('',#54345,#43104,#43105); +#35386=AXIS2_PLACEMENT_3D('',#54347,#43107,#43108); +#35387=AXIS2_PLACEMENT_3D('',#54348,#43109,#43110); +#35388=AXIS2_PLACEMENT_3D('',#54350,#43112,#43113); +#35389=AXIS2_PLACEMENT_3D('',#54352,#43115,#43116); +#35390=AXIS2_PLACEMENT_3D('',#54354,#43118,#43119); +#35391=AXIS2_PLACEMENT_3D('',#54356,#43121,#43122); +#35392=AXIS2_PLACEMENT_3D('',#54358,#43124,#43125); +#35393=AXIS2_PLACEMENT_3D('',#54360,#43127,#43128); +#35394=AXIS2_PLACEMENT_3D('',#54362,#43130,#43131); +#35395=AXIS2_PLACEMENT_3D('',#54363,#43132,#43133); +#35396=AXIS2_PLACEMENT_3D('',#54365,#43135,#43136); +#35397=AXIS2_PLACEMENT_3D('',#54367,#43138,#43139); +#35398=AXIS2_PLACEMENT_3D('',#54370,#43142,#43143); +#35399=AXIS2_PLACEMENT_3D('',#54372,#43145,#43146); +#35400=AXIS2_PLACEMENT_3D('',#54374,#43148,#43149); +#35401=AXIS2_PLACEMENT_3D('',#54376,#43151,#43152); +#35402=AXIS2_PLACEMENT_3D('',#54378,#43154,#43155); +#35403=AXIS2_PLACEMENT_3D('',#54379,#43156,#43157); +#35404=AXIS2_PLACEMENT_3D('',#54381,#43159,#43160); +#35405=AXIS2_PLACEMENT_3D('',#54383,#43162,#43163); +#35406=AXIS2_PLACEMENT_3D('',#54385,#43165,#43166); +#35407=AXIS2_PLACEMENT_3D('',#54387,#43168,#43169); +#35408=AXIS2_PLACEMENT_3D('',#54389,#43171,#43172); +#35409=AXIS2_PLACEMENT_3D('',#54391,#43174,#43175); +#35410=AXIS2_PLACEMENT_3D('',#54392,#43176,#43177); +#35411=AXIS2_PLACEMENT_3D('',#54394,#43179,#43180); +#35412=AXIS2_PLACEMENT_3D('',#54396,#43182,#43183); +#35413=AXIS2_PLACEMENT_3D('',#54397,#43184,#43185); +#35414=AXIS2_PLACEMENT_3D('',#54399,#43187,#43188); +#35415=AXIS2_PLACEMENT_3D('',#54401,#43190,#43191); +#35416=AXIS2_PLACEMENT_3D('',#54404,#43194,#43195); +#35417=AXIS2_PLACEMENT_3D('',#54406,#43197,#43198); +#35418=AXIS2_PLACEMENT_3D('',#54408,#43200,#43201); +#35419=AXIS2_PLACEMENT_3D('',#54410,#43203,#43204); +#35420=AXIS2_PLACEMENT_3D('',#54412,#43206,#43207); +#35421=AXIS2_PLACEMENT_3D('',#54413,#43208,#43209); +#35422=AXIS2_PLACEMENT_3D('',#54415,#43211,#43212); +#35423=AXIS2_PLACEMENT_3D('',#54417,#43214,#43215); +#35424=AXIS2_PLACEMENT_3D('',#54419,#43217,#43218); +#35425=AXIS2_PLACEMENT_3D('',#54421,#43220,#43221); +#35426=AXIS2_PLACEMENT_3D('',#54423,#43223,#43224); +#35427=AXIS2_PLACEMENT_3D('',#54425,#43226,#43227); +#35428=AXIS2_PLACEMENT_3D('',#54426,#43228,#43229); +#35429=AXIS2_PLACEMENT_3D('',#54428,#43231,#43232); +#35430=AXIS2_PLACEMENT_3D('',#54430,#43234,#43235); +#35431=AXIS2_PLACEMENT_3D('',#54431,#43236,#43237); +#35432=AXIS2_PLACEMENT_3D('',#54433,#43239,#43240); +#35433=AXIS2_PLACEMENT_3D('',#54435,#43242,#43243); +#35434=AXIS2_PLACEMENT_3D('',#54438,#43246,#43247); +#35435=AXIS2_PLACEMENT_3D('',#54440,#43249,#43250); +#35436=AXIS2_PLACEMENT_3D('',#54442,#43252,#43253); +#35437=AXIS2_PLACEMENT_3D('',#54444,#43255,#43256); +#35438=AXIS2_PLACEMENT_3D('',#54446,#43258,#43259); +#35439=AXIS2_PLACEMENT_3D('',#54447,#43260,#43261); +#35440=AXIS2_PLACEMENT_3D('',#54449,#43263,#43264); +#35441=AXIS2_PLACEMENT_3D('',#54451,#43266,#43267); +#35442=AXIS2_PLACEMENT_3D('',#54453,#43269,#43270); +#35443=AXIS2_PLACEMENT_3D('',#54455,#43272,#43273); +#35444=AXIS2_PLACEMENT_3D('',#54457,#43275,#43276); +#35445=AXIS2_PLACEMENT_3D('',#54459,#43278,#43279); +#35446=AXIS2_PLACEMENT_3D('',#54460,#43280,#43281); +#35447=AXIS2_PLACEMENT_3D('',#54462,#43283,#43284); +#35448=AXIS2_PLACEMENT_3D('',#54464,#43286,#43287); +#35449=AXIS2_PLACEMENT_3D('',#54465,#43288,#43289); +#35450=AXIS2_PLACEMENT_3D('',#54467,#43291,#43292); +#35451=AXIS2_PLACEMENT_3D('',#54469,#43294,#43295); +#35452=AXIS2_PLACEMENT_3D('',#54472,#43298,#43299); +#35453=AXIS2_PLACEMENT_3D('',#54474,#43301,#43302); +#35454=AXIS2_PLACEMENT_3D('',#54476,#43304,#43305); +#35455=AXIS2_PLACEMENT_3D('',#54478,#43307,#43308); +#35456=AXIS2_PLACEMENT_3D('',#54480,#43310,#43311); +#35457=AXIS2_PLACEMENT_3D('',#54481,#43312,#43313); +#35458=AXIS2_PLACEMENT_3D('',#54483,#43315,#43316); +#35459=AXIS2_PLACEMENT_3D('',#54485,#43318,#43319); +#35460=AXIS2_PLACEMENT_3D('',#54487,#43321,#43322); +#35461=AXIS2_PLACEMENT_3D('',#54489,#43324,#43325); +#35462=AXIS2_PLACEMENT_3D('',#54491,#43327,#43328); +#35463=AXIS2_PLACEMENT_3D('',#54493,#43330,#43331); +#35464=AXIS2_PLACEMENT_3D('',#54494,#43332,#43333); +#35465=AXIS2_PLACEMENT_3D('',#54496,#43335,#43336); +#35466=AXIS2_PLACEMENT_3D('',#54498,#43338,#43339); +#35467=AXIS2_PLACEMENT_3D('',#54499,#43340,#43341); +#35468=AXIS2_PLACEMENT_3D('',#54501,#43343,#43344); +#35469=AXIS2_PLACEMENT_3D('',#54503,#43346,#43347); +#35470=AXIS2_PLACEMENT_3D('',#54506,#43350,#43351); +#35471=AXIS2_PLACEMENT_3D('',#54508,#43353,#43354); +#35472=AXIS2_PLACEMENT_3D('',#54510,#43356,#43357); +#35473=AXIS2_PLACEMENT_3D('',#54512,#43359,#43360); +#35474=AXIS2_PLACEMENT_3D('',#54514,#43362,#43363); +#35475=AXIS2_PLACEMENT_3D('',#54515,#43364,#43365); +#35476=AXIS2_PLACEMENT_3D('',#54517,#43367,#43368); +#35477=AXIS2_PLACEMENT_3D('',#54519,#43370,#43371); +#35478=AXIS2_PLACEMENT_3D('',#54521,#43373,#43374); +#35479=AXIS2_PLACEMENT_3D('',#54523,#43376,#43377); +#35480=AXIS2_PLACEMENT_3D('',#54525,#43379,#43380); +#35481=AXIS2_PLACEMENT_3D('',#54527,#43382,#43383); +#35482=AXIS2_PLACEMENT_3D('',#54528,#43384,#43385); +#35483=AXIS2_PLACEMENT_3D('',#54530,#43387,#43388); +#35484=AXIS2_PLACEMENT_3D('',#54532,#43390,#43391); +#35485=AXIS2_PLACEMENT_3D('',#54533,#43392,#43393); +#35486=AXIS2_PLACEMENT_3D('',#54535,#43395,#43396); +#35487=AXIS2_PLACEMENT_3D('',#54537,#43398,#43399); +#35488=AXIS2_PLACEMENT_3D('',#54540,#43402,#43403); +#35489=AXIS2_PLACEMENT_3D('',#54542,#43405,#43406); +#35490=AXIS2_PLACEMENT_3D('',#54544,#43408,#43409); +#35491=AXIS2_PLACEMENT_3D('',#54546,#43411,#43412); +#35492=AXIS2_PLACEMENT_3D('',#54548,#43414,#43415); +#35493=AXIS2_PLACEMENT_3D('',#54549,#43416,#43417); +#35494=AXIS2_PLACEMENT_3D('',#54551,#43419,#43420); +#35495=AXIS2_PLACEMENT_3D('',#54553,#43422,#43423); +#35496=AXIS2_PLACEMENT_3D('',#54555,#43425,#43426); +#35497=AXIS2_PLACEMENT_3D('',#54557,#43428,#43429); +#35498=AXIS2_PLACEMENT_3D('',#54559,#43431,#43432); +#35499=AXIS2_PLACEMENT_3D('',#54561,#43434,#43435); +#35500=AXIS2_PLACEMENT_3D('',#54562,#43436,#43437); +#35501=AXIS2_PLACEMENT_3D('',#54564,#43439,#43440); +#35502=AXIS2_PLACEMENT_3D('',#54566,#43442,#43443); +#35503=AXIS2_PLACEMENT_3D('',#54567,#43444,#43445); +#35504=AXIS2_PLACEMENT_3D('',#54569,#43447,#43448); +#35505=AXIS2_PLACEMENT_3D('',#54571,#43450,#43451); +#35506=AXIS2_PLACEMENT_3D('',#54574,#43454,#43455); +#35507=AXIS2_PLACEMENT_3D('',#54576,#43457,#43458); +#35508=AXIS2_PLACEMENT_3D('',#54578,#43460,#43461); +#35509=AXIS2_PLACEMENT_3D('',#54580,#43463,#43464); +#35510=AXIS2_PLACEMENT_3D('',#54582,#43466,#43467); +#35511=AXIS2_PLACEMENT_3D('',#54583,#43468,#43469); +#35512=AXIS2_PLACEMENT_3D('',#54585,#43471,#43472); +#35513=AXIS2_PLACEMENT_3D('',#54587,#43474,#43475); +#35514=AXIS2_PLACEMENT_3D('',#54589,#43477,#43478); +#35515=AXIS2_PLACEMENT_3D('',#54591,#43480,#43481); +#35516=AXIS2_PLACEMENT_3D('',#54593,#43483,#43484); +#35517=AXIS2_PLACEMENT_3D('',#54595,#43486,#43487); +#35518=AXIS2_PLACEMENT_3D('',#54596,#43488,#43489); +#35519=AXIS2_PLACEMENT_3D('',#54598,#43491,#43492); +#35520=AXIS2_PLACEMENT_3D('',#54600,#43494,#43495); +#35521=AXIS2_PLACEMENT_3D('',#54601,#43496,#43497); +#35522=AXIS2_PLACEMENT_3D('',#54603,#43499,#43500); +#35523=AXIS2_PLACEMENT_3D('',#54605,#43502,#43503); +#35524=AXIS2_PLACEMENT_3D('',#54608,#43506,#43507); +#35525=AXIS2_PLACEMENT_3D('',#54610,#43509,#43510); +#35526=AXIS2_PLACEMENT_3D('',#54612,#43512,#43513); +#35527=AXIS2_PLACEMENT_3D('',#54614,#43515,#43516); +#35528=AXIS2_PLACEMENT_3D('',#54616,#43518,#43519); +#35529=AXIS2_PLACEMENT_3D('',#54617,#43520,#43521); +#35530=AXIS2_PLACEMENT_3D('',#54619,#43523,#43524); +#35531=AXIS2_PLACEMENT_3D('',#54621,#43526,#43527); +#35532=AXIS2_PLACEMENT_3D('',#54623,#43529,#43530); +#35533=AXIS2_PLACEMENT_3D('',#54625,#43532,#43533); +#35534=AXIS2_PLACEMENT_3D('',#54627,#43535,#43536); +#35535=AXIS2_PLACEMENT_3D('',#54629,#43538,#43539); +#35536=AXIS2_PLACEMENT_3D('',#54630,#43540,#43541); +#35537=AXIS2_PLACEMENT_3D('',#54632,#43543,#43544); +#35538=AXIS2_PLACEMENT_3D('',#54634,#43546,#43547); +#35539=AXIS2_PLACEMENT_3D('',#54635,#43548,#43549); +#35540=AXIS2_PLACEMENT_3D('',#54637,#43551,#43552); +#35541=AXIS2_PLACEMENT_3D('',#54639,#43554,#43555); +#35542=AXIS2_PLACEMENT_3D('',#54642,#43558,#43559); +#35543=AXIS2_PLACEMENT_3D('',#54644,#43561,#43562); +#35544=AXIS2_PLACEMENT_3D('',#54646,#43564,#43565); +#35545=AXIS2_PLACEMENT_3D('',#54648,#43567,#43568); +#35546=AXIS2_PLACEMENT_3D('',#54650,#43570,#43571); +#35547=AXIS2_PLACEMENT_3D('',#54651,#43572,#43573); +#35548=AXIS2_PLACEMENT_3D('',#54653,#43575,#43576); +#35549=AXIS2_PLACEMENT_3D('',#54655,#43578,#43579); +#35550=AXIS2_PLACEMENT_3D('',#54657,#43581,#43582); +#35551=AXIS2_PLACEMENT_3D('',#54659,#43584,#43585); +#35552=AXIS2_PLACEMENT_3D('',#54661,#43587,#43588); +#35553=AXIS2_PLACEMENT_3D('',#54663,#43590,#43591); +#35554=AXIS2_PLACEMENT_3D('',#54664,#43592,#43593); +#35555=AXIS2_PLACEMENT_3D('',#54666,#43595,#43596); +#35556=AXIS2_PLACEMENT_3D('',#54668,#43598,#43599); +#35557=AXIS2_PLACEMENT_3D('',#54669,#43600,#43601); +#35558=AXIS2_PLACEMENT_3D('',#54671,#43603,#43604); +#35559=AXIS2_PLACEMENT_3D('',#54673,#43606,#43607); +#35560=AXIS2_PLACEMENT_3D('',#54676,#43610,#43611); +#35561=AXIS2_PLACEMENT_3D('',#54678,#43613,#43614); +#35562=AXIS2_PLACEMENT_3D('',#54680,#43616,#43617); +#35563=AXIS2_PLACEMENT_3D('',#54682,#43619,#43620); +#35564=AXIS2_PLACEMENT_3D('',#54684,#43622,#43623); +#35565=AXIS2_PLACEMENT_3D('',#54685,#43624,#43625); +#35566=AXIS2_PLACEMENT_3D('',#54687,#43627,#43628); +#35567=AXIS2_PLACEMENT_3D('',#54689,#43630,#43631); +#35568=AXIS2_PLACEMENT_3D('',#54691,#43633,#43634); +#35569=AXIS2_PLACEMENT_3D('',#54693,#43636,#43637); +#35570=AXIS2_PLACEMENT_3D('',#54695,#43639,#43640); +#35571=AXIS2_PLACEMENT_3D('',#54697,#43642,#43643); +#35572=AXIS2_PLACEMENT_3D('',#54698,#43644,#43645); +#35573=AXIS2_PLACEMENT_3D('',#54700,#43647,#43648); +#35574=AXIS2_PLACEMENT_3D('',#54702,#43650,#43651); +#35575=AXIS2_PLACEMENT_3D('',#54703,#43652,#43653); +#35576=AXIS2_PLACEMENT_3D('',#54705,#43655,#43656); +#35577=AXIS2_PLACEMENT_3D('',#54707,#43658,#43659); +#35578=AXIS2_PLACEMENT_3D('',#54710,#43662,#43663); +#35579=AXIS2_PLACEMENT_3D('',#54712,#43665,#43666); +#35580=AXIS2_PLACEMENT_3D('',#54714,#43668,#43669); +#35581=AXIS2_PLACEMENT_3D('',#54716,#43671,#43672); +#35582=AXIS2_PLACEMENT_3D('',#54718,#43674,#43675); +#35583=AXIS2_PLACEMENT_3D('',#54719,#43676,#43677); +#35584=AXIS2_PLACEMENT_3D('',#54721,#43679,#43680); +#35585=AXIS2_PLACEMENT_3D('',#54723,#43682,#43683); +#35586=AXIS2_PLACEMENT_3D('',#54725,#43685,#43686); +#35587=AXIS2_PLACEMENT_3D('',#54727,#43688,#43689); +#35588=AXIS2_PLACEMENT_3D('',#54729,#43691,#43692); +#35589=AXIS2_PLACEMENT_3D('',#54731,#43694,#43695); +#35590=AXIS2_PLACEMENT_3D('',#54732,#43696,#43697); +#35591=AXIS2_PLACEMENT_3D('',#54734,#43699,#43700); +#35592=AXIS2_PLACEMENT_3D('',#54736,#43702,#43703); +#35593=AXIS2_PLACEMENT_3D('',#54737,#43704,#43705); +#35594=AXIS2_PLACEMENT_3D('',#54739,#43707,#43708); +#35595=AXIS2_PLACEMENT_3D('',#54741,#43710,#43711); +#35596=AXIS2_PLACEMENT_3D('',#54744,#43714,#43715); +#35597=AXIS2_PLACEMENT_3D('',#54746,#43717,#43718); +#35598=AXIS2_PLACEMENT_3D('',#54748,#43720,#43721); +#35599=AXIS2_PLACEMENT_3D('',#54750,#43723,#43724); +#35600=AXIS2_PLACEMENT_3D('',#54752,#43726,#43727); +#35601=AXIS2_PLACEMENT_3D('',#54753,#43728,#43729); +#35602=AXIS2_PLACEMENT_3D('',#54755,#43731,#43732); +#35603=AXIS2_PLACEMENT_3D('',#54757,#43734,#43735); +#35604=AXIS2_PLACEMENT_3D('',#54759,#43737,#43738); +#35605=AXIS2_PLACEMENT_3D('',#54761,#43740,#43741); +#35606=AXIS2_PLACEMENT_3D('',#54763,#43743,#43744); +#35607=AXIS2_PLACEMENT_3D('',#54765,#43746,#43747); +#35608=AXIS2_PLACEMENT_3D('',#54766,#43748,#43749); +#35609=AXIS2_PLACEMENT_3D('',#54768,#43751,#43752); +#35610=AXIS2_PLACEMENT_3D('',#54770,#43754,#43755); +#35611=AXIS2_PLACEMENT_3D('',#54771,#43756,#43757); +#35612=AXIS2_PLACEMENT_3D('',#54773,#43759,#43760); +#35613=AXIS2_PLACEMENT_3D('',#54775,#43762,#43763); +#35614=AXIS2_PLACEMENT_3D('',#54778,#43766,#43767); +#35615=AXIS2_PLACEMENT_3D('',#54780,#43769,#43770); +#35616=AXIS2_PLACEMENT_3D('',#54782,#43772,#43773); +#35617=AXIS2_PLACEMENT_3D('',#54784,#43775,#43776); +#35618=AXIS2_PLACEMENT_3D('',#54786,#43778,#43779); +#35619=AXIS2_PLACEMENT_3D('',#54787,#43780,#43781); +#35620=AXIS2_PLACEMENT_3D('',#54789,#43783,#43784); +#35621=AXIS2_PLACEMENT_3D('',#54791,#43786,#43787); +#35622=AXIS2_PLACEMENT_3D('',#54793,#43789,#43790); +#35623=AXIS2_PLACEMENT_3D('',#54795,#43792,#43793); +#35624=AXIS2_PLACEMENT_3D('',#54797,#43795,#43796); +#35625=AXIS2_PLACEMENT_3D('',#54799,#43798,#43799); +#35626=AXIS2_PLACEMENT_3D('',#54800,#43800,#43801); +#35627=AXIS2_PLACEMENT_3D('',#54802,#43803,#43804); +#35628=AXIS2_PLACEMENT_3D('',#54804,#43806,#43807); +#35629=AXIS2_PLACEMENT_3D('',#54805,#43808,#43809); +#35630=AXIS2_PLACEMENT_3D('',#54807,#43811,#43812); +#35631=AXIS2_PLACEMENT_3D('',#54809,#43814,#43815); +#35632=AXIS2_PLACEMENT_3D('',#54812,#43818,#43819); +#35633=AXIS2_PLACEMENT_3D('',#54814,#43821,#43822); +#35634=AXIS2_PLACEMENT_3D('',#54816,#43824,#43825); +#35635=AXIS2_PLACEMENT_3D('',#54818,#43827,#43828); +#35636=AXIS2_PLACEMENT_3D('',#54820,#43830,#43831); +#35637=AXIS2_PLACEMENT_3D('',#54821,#43832,#43833); +#35638=AXIS2_PLACEMENT_3D('',#54823,#43835,#43836); +#35639=AXIS2_PLACEMENT_3D('',#54825,#43838,#43839); +#35640=AXIS2_PLACEMENT_3D('',#54827,#43841,#43842); +#35641=AXIS2_PLACEMENT_3D('',#54829,#43844,#43845); +#35642=AXIS2_PLACEMENT_3D('',#54831,#43847,#43848); +#35643=AXIS2_PLACEMENT_3D('',#54833,#43850,#43851); +#35644=AXIS2_PLACEMENT_3D('',#54834,#43852,#43853); +#35645=AXIS2_PLACEMENT_3D('',#54836,#43855,#43856); +#35646=AXIS2_PLACEMENT_3D('',#54838,#43858,#43859); +#35647=AXIS2_PLACEMENT_3D('',#54839,#43860,#43861); +#35648=AXIS2_PLACEMENT_3D('',#54841,#43863,#43864); +#35649=AXIS2_PLACEMENT_3D('',#54843,#43866,#43867); +#35650=AXIS2_PLACEMENT_3D('',#54846,#43870,#43871); +#35651=AXIS2_PLACEMENT_3D('',#54848,#43873,#43874); +#35652=AXIS2_PLACEMENT_3D('',#54850,#43876,#43877); +#35653=AXIS2_PLACEMENT_3D('',#54852,#43879,#43880); +#35654=AXIS2_PLACEMENT_3D('',#54854,#43882,#43883); +#35655=AXIS2_PLACEMENT_3D('',#54855,#43884,#43885); +#35656=AXIS2_PLACEMENT_3D('',#54857,#43887,#43888); +#35657=AXIS2_PLACEMENT_3D('',#54859,#43890,#43891); +#35658=AXIS2_PLACEMENT_3D('',#54861,#43893,#43894); +#35659=AXIS2_PLACEMENT_3D('',#54863,#43896,#43897); +#35660=AXIS2_PLACEMENT_3D('',#54865,#43899,#43900); +#35661=AXIS2_PLACEMENT_3D('',#54867,#43902,#43903); +#35662=AXIS2_PLACEMENT_3D('',#54868,#43904,#43905); +#35663=AXIS2_PLACEMENT_3D('',#54870,#43907,#43908); +#35664=AXIS2_PLACEMENT_3D('',#54872,#43910,#43911); +#35665=AXIS2_PLACEMENT_3D('',#54873,#43912,#43913); +#35666=AXIS2_PLACEMENT_3D('',#54875,#43915,#43916); +#35667=AXIS2_PLACEMENT_3D('',#54877,#43918,#43919); +#35668=AXIS2_PLACEMENT_3D('',#54880,#43922,#43923); +#35669=AXIS2_PLACEMENT_3D('',#54882,#43925,#43926); +#35670=AXIS2_PLACEMENT_3D('',#54884,#43928,#43929); +#35671=AXIS2_PLACEMENT_3D('',#54886,#43931,#43932); +#35672=AXIS2_PLACEMENT_3D('',#54888,#43934,#43935); +#35673=AXIS2_PLACEMENT_3D('',#54889,#43936,#43937); +#35674=AXIS2_PLACEMENT_3D('',#54891,#43939,#43940); +#35675=AXIS2_PLACEMENT_3D('',#54893,#43942,#43943); +#35676=AXIS2_PLACEMENT_3D('',#54895,#43945,#43946); +#35677=AXIS2_PLACEMENT_3D('',#54897,#43948,#43949); +#35678=AXIS2_PLACEMENT_3D('',#54899,#43951,#43952); +#35679=AXIS2_PLACEMENT_3D('',#54901,#43954,#43955); +#35680=AXIS2_PLACEMENT_3D('',#54902,#43956,#43957); +#35681=AXIS2_PLACEMENT_3D('',#54904,#43959,#43960); +#35682=AXIS2_PLACEMENT_3D('',#54906,#43962,#43963); +#35683=AXIS2_PLACEMENT_3D('',#54907,#43964,#43965); +#35684=AXIS2_PLACEMENT_3D('',#54909,#43967,#43968); +#35685=AXIS2_PLACEMENT_3D('',#54911,#43970,#43971); +#35686=AXIS2_PLACEMENT_3D('',#54914,#43974,#43975); +#35687=AXIS2_PLACEMENT_3D('',#54916,#43977,#43978); +#35688=AXIS2_PLACEMENT_3D('',#54918,#43980,#43981); +#35689=AXIS2_PLACEMENT_3D('',#54920,#43983,#43984); +#35690=AXIS2_PLACEMENT_3D('',#54922,#43986,#43987); +#35691=AXIS2_PLACEMENT_3D('',#54923,#43988,#43989); +#35692=AXIS2_PLACEMENT_3D('',#54925,#43991,#43992); +#35693=AXIS2_PLACEMENT_3D('',#54927,#43994,#43995); +#35694=AXIS2_PLACEMENT_3D('',#54929,#43997,#43998); +#35695=AXIS2_PLACEMENT_3D('',#54931,#44000,#44001); +#35696=AXIS2_PLACEMENT_3D('',#54933,#44003,#44004); +#35697=AXIS2_PLACEMENT_3D('',#54935,#44006,#44007); +#35698=AXIS2_PLACEMENT_3D('',#54936,#44008,#44009); +#35699=AXIS2_PLACEMENT_3D('',#54938,#44011,#44012); +#35700=AXIS2_PLACEMENT_3D('',#54940,#44014,#44015); +#35701=AXIS2_PLACEMENT_3D('',#54941,#44016,#44017); +#35702=AXIS2_PLACEMENT_3D('',#54943,#44019,#44020); +#35703=AXIS2_PLACEMENT_3D('',#54945,#44022,#44023); +#35704=AXIS2_PLACEMENT_3D('',#54948,#44026,#44027); +#35705=AXIS2_PLACEMENT_3D('',#54950,#44029,#44030); +#35706=AXIS2_PLACEMENT_3D('',#54952,#44032,#44033); +#35707=AXIS2_PLACEMENT_3D('',#54954,#44035,#44036); +#35708=AXIS2_PLACEMENT_3D('',#54956,#44038,#44039); +#35709=AXIS2_PLACEMENT_3D('',#54957,#44040,#44041); +#35710=AXIS2_PLACEMENT_3D('',#54959,#44043,#44044); +#35711=AXIS2_PLACEMENT_3D('',#54961,#44046,#44047); +#35712=AXIS2_PLACEMENT_3D('',#54963,#44049,#44050); +#35713=AXIS2_PLACEMENT_3D('',#54965,#44052,#44053); +#35714=AXIS2_PLACEMENT_3D('',#54967,#44055,#44056); +#35715=AXIS2_PLACEMENT_3D('',#54969,#44058,#44059); +#35716=AXIS2_PLACEMENT_3D('',#54970,#44060,#44061); +#35717=AXIS2_PLACEMENT_3D('',#54972,#44063,#44064); +#35718=AXIS2_PLACEMENT_3D('',#54974,#44066,#44067); +#35719=AXIS2_PLACEMENT_3D('',#54975,#44068,#44069); +#35720=AXIS2_PLACEMENT_3D('',#54977,#44071,#44072); +#35721=AXIS2_PLACEMENT_3D('',#54979,#44074,#44075); +#35722=AXIS2_PLACEMENT_3D('',#54982,#44078,#44079); +#35723=AXIS2_PLACEMENT_3D('',#54984,#44081,#44082); +#35724=AXIS2_PLACEMENT_3D('',#54986,#44084,#44085); +#35725=AXIS2_PLACEMENT_3D('',#54988,#44087,#44088); +#35726=AXIS2_PLACEMENT_3D('',#54990,#44090,#44091); +#35727=AXIS2_PLACEMENT_3D('',#54991,#44092,#44093); +#35728=AXIS2_PLACEMENT_3D('',#54993,#44095,#44096); +#35729=AXIS2_PLACEMENT_3D('',#54995,#44098,#44099); +#35730=AXIS2_PLACEMENT_3D('',#54997,#44101,#44102); +#35731=AXIS2_PLACEMENT_3D('',#54999,#44104,#44105); +#35732=AXIS2_PLACEMENT_3D('',#55001,#44107,#44108); +#35733=AXIS2_PLACEMENT_3D('',#55003,#44110,#44111); +#35734=AXIS2_PLACEMENT_3D('',#55004,#44112,#44113); +#35735=AXIS2_PLACEMENT_3D('',#55006,#44115,#44116); +#35736=AXIS2_PLACEMENT_3D('',#55008,#44118,#44119); +#35737=AXIS2_PLACEMENT_3D('',#55009,#44120,#44121); +#35738=AXIS2_PLACEMENT_3D('',#55012,#44124,#44125); +#35739=AXIS2_PLACEMENT_3D('',#55014,#44127,#44128); +#35740=AXIS2_PLACEMENT_3D('',#55016,#44130,#44131); +#35741=AXIS2_PLACEMENT_3D('',#55018,#44133,#44134); +#35742=AXIS2_PLACEMENT_3D('',#55020,#44136,#44137); +#35743=AXIS2_PLACEMENT_3D('',#55021,#44138,#44139); +#35744=AXIS2_PLACEMENT_3D('',#55023,#44141,#44142); +#35745=AXIS2_PLACEMENT_3D('',#55025,#44144,#44145); +#35746=AXIS2_PLACEMENT_3D('',#55027,#44147,#44148); +#35747=AXIS2_PLACEMENT_3D('',#55029,#44150,#44151); +#35748=AXIS2_PLACEMENT_3D('',#55031,#44153,#44154); +#35749=AXIS2_PLACEMENT_3D('',#55033,#44156,#44157); +#35750=AXIS2_PLACEMENT_3D('',#55036,#44160,#44161); +#35751=AXIS2_PLACEMENT_3D('',#55037,#44162,#44163); +#35752=AXIS2_PLACEMENT_3D('',#55039,#44165,#44166); +#35753=AXIS2_PLACEMENT_3D('',#55041,#44168,#44169); +#35754=AXIS2_PLACEMENT_3D('',#55042,#44170,#44171); +#35755=AXIS2_PLACEMENT_3D('',#55043,#44172,#44173); +#35756=AXIS2_PLACEMENT_3D('',#55046,#44176,#44177); +#35757=AXIS2_PLACEMENT_3D('',#55048,#44179,#44180); +#35758=AXIS2_PLACEMENT_3D('',#55050,#44182,#44183); +#35759=AXIS2_PLACEMENT_3D('',#55052,#44185,#44186); +#35760=AXIS2_PLACEMENT_3D('',#55054,#44188,#44189); +#35761=AXIS2_PLACEMENT_3D('',#55055,#44190,#44191); +#35762=AXIS2_PLACEMENT_3D('',#55057,#44193,#44194); +#35763=AXIS2_PLACEMENT_3D('',#55059,#44196,#44197); +#35764=AXIS2_PLACEMENT_3D('',#55061,#44199,#44200); +#35765=AXIS2_PLACEMENT_3D('',#55063,#44202,#44203); +#35766=AXIS2_PLACEMENT_3D('',#55065,#44205,#44206); +#35767=AXIS2_PLACEMENT_3D('',#55067,#44208,#44209); +#35768=AXIS2_PLACEMENT_3D('',#55070,#44212,#44213); +#35769=AXIS2_PLACEMENT_3D('',#55071,#44214,#44215); +#35770=AXIS2_PLACEMENT_3D('',#55073,#44217,#44218); +#35771=AXIS2_PLACEMENT_3D('',#55075,#44220,#44221); +#35772=AXIS2_PLACEMENT_3D('',#55076,#44222,#44223); +#35773=AXIS2_PLACEMENT_3D('',#55077,#44224,#44225); +#35774=AXIS2_PLACEMENT_3D('',#55080,#44228,#44229); +#35775=AXIS2_PLACEMENT_3D('',#55082,#44231,#44232); +#35776=AXIS2_PLACEMENT_3D('',#55084,#44234,#44235); +#35777=AXIS2_PLACEMENT_3D('',#55086,#44237,#44238); +#35778=AXIS2_PLACEMENT_3D('',#55088,#44240,#44241); +#35779=AXIS2_PLACEMENT_3D('',#55089,#44242,#44243); +#35780=AXIS2_PLACEMENT_3D('',#55091,#44245,#44246); +#35781=AXIS2_PLACEMENT_3D('',#55093,#44248,#44249); +#35782=AXIS2_PLACEMENT_3D('',#55095,#44251,#44252); +#35783=AXIS2_PLACEMENT_3D('',#55097,#44254,#44255); +#35784=AXIS2_PLACEMENT_3D('',#55099,#44257,#44258); +#35785=AXIS2_PLACEMENT_3D('',#55101,#44260,#44261); +#35786=AXIS2_PLACEMENT_3D('',#55104,#44264,#44265); +#35787=AXIS2_PLACEMENT_3D('',#55105,#44266,#44267); +#35788=AXIS2_PLACEMENT_3D('',#55107,#44269,#44270); +#35789=AXIS2_PLACEMENT_3D('',#55109,#44272,#44273); +#35790=AXIS2_PLACEMENT_3D('',#55110,#44274,#44275); +#35791=AXIS2_PLACEMENT_3D('',#55111,#44276,#44277); +#35792=AXIS2_PLACEMENT_3D('',#55114,#44280,#44281); +#35793=AXIS2_PLACEMENT_3D('',#55116,#44283,#44284); +#35794=AXIS2_PLACEMENT_3D('',#55118,#44286,#44287); +#35795=AXIS2_PLACEMENT_3D('',#55120,#44289,#44290); +#35796=AXIS2_PLACEMENT_3D('',#55122,#44292,#44293); +#35797=AXIS2_PLACEMENT_3D('',#55123,#44294,#44295); +#35798=AXIS2_PLACEMENT_3D('',#55125,#44297,#44298); +#35799=AXIS2_PLACEMENT_3D('',#55127,#44300,#44301); +#35800=AXIS2_PLACEMENT_3D('',#55129,#44303,#44304); +#35801=AXIS2_PLACEMENT_3D('',#55131,#44306,#44307); +#35802=AXIS2_PLACEMENT_3D('',#55133,#44309,#44310); +#35803=AXIS2_PLACEMENT_3D('',#55135,#44312,#44313); +#35804=AXIS2_PLACEMENT_3D('',#55138,#44316,#44317); +#35805=AXIS2_PLACEMENT_3D('',#55139,#44318,#44319); +#35806=AXIS2_PLACEMENT_3D('',#55141,#44321,#44322); +#35807=AXIS2_PLACEMENT_3D('',#55143,#44324,#44325); +#35808=AXIS2_PLACEMENT_3D('',#55144,#44326,#44327); +#35809=AXIS2_PLACEMENT_3D('',#55145,#44328,#44329); +#35810=AXIS2_PLACEMENT_3D('',#55148,#44332,#44333); +#35811=AXIS2_PLACEMENT_3D('',#55150,#44335,#44336); +#35812=AXIS2_PLACEMENT_3D('',#55152,#44338,#44339); +#35813=AXIS2_PLACEMENT_3D('',#55154,#44341,#44342); +#35814=AXIS2_PLACEMENT_3D('',#55156,#44344,#44345); +#35815=AXIS2_PLACEMENT_3D('',#55157,#44346,#44347); +#35816=AXIS2_PLACEMENT_3D('',#55159,#44349,#44350); +#35817=AXIS2_PLACEMENT_3D('',#55161,#44352,#44353); +#35818=AXIS2_PLACEMENT_3D('',#55163,#44355,#44356); +#35819=AXIS2_PLACEMENT_3D('',#55165,#44358,#44359); +#35820=AXIS2_PLACEMENT_3D('',#55167,#44361,#44362); +#35821=AXIS2_PLACEMENT_3D('',#55169,#44364,#44365); +#35822=AXIS2_PLACEMENT_3D('',#55172,#44368,#44369); +#35823=AXIS2_PLACEMENT_3D('',#55173,#44370,#44371); +#35824=AXIS2_PLACEMENT_3D('',#55175,#44373,#44374); +#35825=AXIS2_PLACEMENT_3D('',#55177,#44376,#44377); +#35826=AXIS2_PLACEMENT_3D('',#55178,#44378,#44379); +#35827=AXIS2_PLACEMENT_3D('',#55179,#44380,#44381); +#35828=AXIS2_PLACEMENT_3D('',#55182,#44384,#44385); +#35829=AXIS2_PLACEMENT_3D('',#55184,#44387,#44388); +#35830=AXIS2_PLACEMENT_3D('',#55186,#44390,#44391); +#35831=AXIS2_PLACEMENT_3D('',#55188,#44393,#44394); +#35832=AXIS2_PLACEMENT_3D('',#55190,#44396,#44397); +#35833=AXIS2_PLACEMENT_3D('',#55191,#44398,#44399); +#35834=AXIS2_PLACEMENT_3D('',#55193,#44401,#44402); +#35835=AXIS2_PLACEMENT_3D('',#55195,#44404,#44405); +#35836=AXIS2_PLACEMENT_3D('',#55197,#44407,#44408); +#35837=AXIS2_PLACEMENT_3D('',#55199,#44410,#44411); +#35838=AXIS2_PLACEMENT_3D('',#55201,#44413,#44414); +#35839=AXIS2_PLACEMENT_3D('',#55203,#44416,#44417); +#35840=AXIS2_PLACEMENT_3D('',#55206,#44420,#44421); +#35841=AXIS2_PLACEMENT_3D('',#55207,#44422,#44423); +#35842=AXIS2_PLACEMENT_3D('',#55209,#44425,#44426); +#35843=AXIS2_PLACEMENT_3D('',#55211,#44428,#44429); +#35844=AXIS2_PLACEMENT_3D('',#55212,#44430,#44431); +#35845=AXIS2_PLACEMENT_3D('',#55213,#44432,#44433); +#35846=AXIS2_PLACEMENT_3D('',#55216,#44436,#44437); +#35847=AXIS2_PLACEMENT_3D('',#55218,#44439,#44440); +#35848=AXIS2_PLACEMENT_3D('',#55220,#44442,#44443); +#35849=AXIS2_PLACEMENT_3D('',#55222,#44445,#44446); +#35850=AXIS2_PLACEMENT_3D('',#55224,#44448,#44449); +#35851=AXIS2_PLACEMENT_3D('',#55225,#44450,#44451); +#35852=AXIS2_PLACEMENT_3D('',#55227,#44453,#44454); +#35853=AXIS2_PLACEMENT_3D('',#55229,#44456,#44457); +#35854=AXIS2_PLACEMENT_3D('',#55231,#44459,#44460); +#35855=AXIS2_PLACEMENT_3D('',#55233,#44462,#44463); +#35856=AXIS2_PLACEMENT_3D('',#55235,#44465,#44466); +#35857=AXIS2_PLACEMENT_3D('',#55237,#44468,#44469); +#35858=AXIS2_PLACEMENT_3D('',#55240,#44472,#44473); +#35859=AXIS2_PLACEMENT_3D('',#55241,#44474,#44475); +#35860=AXIS2_PLACEMENT_3D('',#55243,#44477,#44478); +#35861=AXIS2_PLACEMENT_3D('',#55245,#44480,#44481); +#35862=AXIS2_PLACEMENT_3D('',#55246,#44482,#44483); +#35863=AXIS2_PLACEMENT_3D('',#55247,#44484,#44485); +#35864=AXIS2_PLACEMENT_3D('',#55250,#44488,#44489); +#35865=AXIS2_PLACEMENT_3D('',#55252,#44491,#44492); +#35866=AXIS2_PLACEMENT_3D('',#55254,#44494,#44495); +#35867=AXIS2_PLACEMENT_3D('',#55256,#44497,#44498); +#35868=AXIS2_PLACEMENT_3D('',#55258,#44500,#44501); +#35869=AXIS2_PLACEMENT_3D('',#55259,#44502,#44503); +#35870=AXIS2_PLACEMENT_3D('',#55261,#44505,#44506); +#35871=AXIS2_PLACEMENT_3D('',#55263,#44508,#44509); +#35872=AXIS2_PLACEMENT_3D('',#55265,#44511,#44512); +#35873=AXIS2_PLACEMENT_3D('',#55267,#44514,#44515); +#35874=AXIS2_PLACEMENT_3D('',#55269,#44517,#44518); +#35875=AXIS2_PLACEMENT_3D('',#55271,#44520,#44521); +#35876=AXIS2_PLACEMENT_3D('',#55274,#44524,#44525); +#35877=AXIS2_PLACEMENT_3D('',#55275,#44526,#44527); +#35878=AXIS2_PLACEMENT_3D('',#55277,#44529,#44530); +#35879=AXIS2_PLACEMENT_3D('',#55279,#44532,#44533); +#35880=AXIS2_PLACEMENT_3D('',#55280,#44534,#44535); +#35881=AXIS2_PLACEMENT_3D('',#55281,#44536,#44537); +#35882=AXIS2_PLACEMENT_3D('',#55284,#44540,#44541); +#35883=AXIS2_PLACEMENT_3D('',#55286,#44543,#44544); +#35884=AXIS2_PLACEMENT_3D('',#55288,#44546,#44547); +#35885=AXIS2_PLACEMENT_3D('',#55290,#44549,#44550); +#35886=AXIS2_PLACEMENT_3D('',#55292,#44552,#44553); +#35887=AXIS2_PLACEMENT_3D('',#55293,#44554,#44555); +#35888=AXIS2_PLACEMENT_3D('',#55295,#44557,#44558); +#35889=AXIS2_PLACEMENT_3D('',#55297,#44560,#44561); +#35890=AXIS2_PLACEMENT_3D('',#55299,#44563,#44564); +#35891=AXIS2_PLACEMENT_3D('',#55301,#44566,#44567); +#35892=AXIS2_PLACEMENT_3D('',#55303,#44569,#44570); +#35893=AXIS2_PLACEMENT_3D('',#55305,#44572,#44573); +#35894=AXIS2_PLACEMENT_3D('',#55308,#44576,#44577); +#35895=AXIS2_PLACEMENT_3D('',#55309,#44578,#44579); +#35896=AXIS2_PLACEMENT_3D('',#55311,#44581,#44582); +#35897=AXIS2_PLACEMENT_3D('',#55313,#44584,#44585); +#35898=AXIS2_PLACEMENT_3D('',#55314,#44586,#44587); +#35899=AXIS2_PLACEMENT_3D('',#55315,#44588,#44589); +#35900=AXIS2_PLACEMENT_3D('',#55318,#44592,#44593); +#35901=AXIS2_PLACEMENT_3D('',#55320,#44595,#44596); +#35902=AXIS2_PLACEMENT_3D('',#55322,#44598,#44599); +#35903=AXIS2_PLACEMENT_3D('',#55324,#44601,#44602); +#35904=AXIS2_PLACEMENT_3D('',#55326,#44604,#44605); +#35905=AXIS2_PLACEMENT_3D('',#55327,#44606,#44607); +#35906=AXIS2_PLACEMENT_3D('',#55329,#44609,#44610); +#35907=AXIS2_PLACEMENT_3D('',#55331,#44612,#44613); +#35908=AXIS2_PLACEMENT_3D('',#55333,#44615,#44616); +#35909=AXIS2_PLACEMENT_3D('',#55335,#44618,#44619); +#35910=AXIS2_PLACEMENT_3D('',#55337,#44621,#44622); +#35911=AXIS2_PLACEMENT_3D('',#55339,#44624,#44625); +#35912=AXIS2_PLACEMENT_3D('',#55342,#44628,#44629); +#35913=AXIS2_PLACEMENT_3D('',#55343,#44630,#44631); +#35914=AXIS2_PLACEMENT_3D('',#55345,#44633,#44634); +#35915=AXIS2_PLACEMENT_3D('',#55347,#44636,#44637); +#35916=AXIS2_PLACEMENT_3D('',#55348,#44638,#44639); +#35917=AXIS2_PLACEMENT_3D('',#55349,#44640,#44641); +#35918=AXIS2_PLACEMENT_3D('',#55352,#44644,#44645); +#35919=AXIS2_PLACEMENT_3D('',#55354,#44647,#44648); +#35920=AXIS2_PLACEMENT_3D('',#55356,#44650,#44651); +#35921=AXIS2_PLACEMENT_3D('',#55358,#44653,#44654); +#35922=AXIS2_PLACEMENT_3D('',#55360,#44656,#44657); +#35923=AXIS2_PLACEMENT_3D('',#55361,#44658,#44659); +#35924=AXIS2_PLACEMENT_3D('',#55363,#44661,#44662); +#35925=AXIS2_PLACEMENT_3D('',#55365,#44664,#44665); +#35926=AXIS2_PLACEMENT_3D('',#55367,#44667,#44668); +#35927=AXIS2_PLACEMENT_3D('',#55369,#44670,#44671); +#35928=AXIS2_PLACEMENT_3D('',#55371,#44673,#44674); +#35929=AXIS2_PLACEMENT_3D('',#55373,#44676,#44677); +#35930=AXIS2_PLACEMENT_3D('',#55376,#44680,#44681); +#35931=AXIS2_PLACEMENT_3D('',#55377,#44682,#44683); +#35932=AXIS2_PLACEMENT_3D('',#55379,#44685,#44686); +#35933=AXIS2_PLACEMENT_3D('',#55381,#44688,#44689); +#35934=AXIS2_PLACEMENT_3D('',#55382,#44690,#44691); +#35935=AXIS2_PLACEMENT_3D('',#55383,#44692,#44693); +#35936=AXIS2_PLACEMENT_3D('',#55386,#44696,#44697); +#35937=AXIS2_PLACEMENT_3D('',#55388,#44699,#44700); +#35938=AXIS2_PLACEMENT_3D('',#55390,#44702,#44703); +#35939=AXIS2_PLACEMENT_3D('',#55392,#44705,#44706); +#35940=AXIS2_PLACEMENT_3D('',#55394,#44708,#44709); +#35941=AXIS2_PLACEMENT_3D('',#55395,#44710,#44711); +#35942=AXIS2_PLACEMENT_3D('',#55397,#44713,#44714); +#35943=AXIS2_PLACEMENT_3D('',#55399,#44716,#44717); +#35944=AXIS2_PLACEMENT_3D('',#55401,#44719,#44720); +#35945=AXIS2_PLACEMENT_3D('',#55403,#44722,#44723); +#35946=AXIS2_PLACEMENT_3D('',#55405,#44725,#44726); +#35947=AXIS2_PLACEMENT_3D('',#55407,#44728,#44729); +#35948=AXIS2_PLACEMENT_3D('',#55410,#44732,#44733); +#35949=AXIS2_PLACEMENT_3D('',#55411,#44734,#44735); +#35950=AXIS2_PLACEMENT_3D('',#55413,#44737,#44738); +#35951=AXIS2_PLACEMENT_3D('',#55415,#44740,#44741); +#35952=AXIS2_PLACEMENT_3D('',#55416,#44742,#44743); +#35953=AXIS2_PLACEMENT_3D('',#55417,#44744,#44745); +#35954=AXIS2_PLACEMENT_3D('',#55420,#44748,#44749); +#35955=AXIS2_PLACEMENT_3D('',#55422,#44751,#44752); +#35956=AXIS2_PLACEMENT_3D('',#55424,#44754,#44755); +#35957=AXIS2_PLACEMENT_3D('',#55426,#44757,#44758); +#35958=AXIS2_PLACEMENT_3D('',#55428,#44760,#44761); +#35959=AXIS2_PLACEMENT_3D('',#55429,#44762,#44763); +#35960=AXIS2_PLACEMENT_3D('',#55431,#44765,#44766); +#35961=AXIS2_PLACEMENT_3D('',#55433,#44768,#44769); +#35962=AXIS2_PLACEMENT_3D('',#55435,#44771,#44772); +#35963=AXIS2_PLACEMENT_3D('',#55437,#44774,#44775); +#35964=AXIS2_PLACEMENT_3D('',#55439,#44777,#44778); +#35965=AXIS2_PLACEMENT_3D('',#55441,#44780,#44781); +#35966=AXIS2_PLACEMENT_3D('',#55444,#44784,#44785); +#35967=AXIS2_PLACEMENT_3D('',#55445,#44786,#44787); +#35968=AXIS2_PLACEMENT_3D('',#55447,#44789,#44790); +#35969=AXIS2_PLACEMENT_3D('',#55449,#44792,#44793); +#35970=AXIS2_PLACEMENT_3D('',#55450,#44794,#44795); +#35971=AXIS2_PLACEMENT_3D('',#55451,#44796,#44797); +#35972=AXIS2_PLACEMENT_3D('',#55454,#44800,#44801); +#35973=AXIS2_PLACEMENT_3D('',#55456,#44803,#44804); +#35974=AXIS2_PLACEMENT_3D('',#55458,#44806,#44807); +#35975=AXIS2_PLACEMENT_3D('',#55460,#44809,#44810); +#35976=AXIS2_PLACEMENT_3D('',#55462,#44812,#44813); +#35977=AXIS2_PLACEMENT_3D('',#55463,#44814,#44815); +#35978=AXIS2_PLACEMENT_3D('',#55465,#44817,#44818); +#35979=AXIS2_PLACEMENT_3D('',#55467,#44820,#44821); +#35980=AXIS2_PLACEMENT_3D('',#55469,#44823,#44824); +#35981=AXIS2_PLACEMENT_3D('',#55471,#44826,#44827); +#35982=AXIS2_PLACEMENT_3D('',#55473,#44829,#44830); +#35983=AXIS2_PLACEMENT_3D('',#55475,#44832,#44833); +#35984=AXIS2_PLACEMENT_3D('',#55478,#44836,#44837); +#35985=AXIS2_PLACEMENT_3D('',#55479,#44838,#44839); +#35986=AXIS2_PLACEMENT_3D('',#55481,#44841,#44842); +#35987=AXIS2_PLACEMENT_3D('',#55483,#44844,#44845); +#35988=AXIS2_PLACEMENT_3D('',#55484,#44846,#44847); +#35989=AXIS2_PLACEMENT_3D('',#55485,#44848,#44849); +#35990=AXIS2_PLACEMENT_3D('',#55488,#44852,#44853); +#35991=AXIS2_PLACEMENT_3D('',#55490,#44855,#44856); +#35992=AXIS2_PLACEMENT_3D('',#55492,#44858,#44859); +#35993=AXIS2_PLACEMENT_3D('',#55494,#44861,#44862); +#35994=AXIS2_PLACEMENT_3D('',#55496,#44864,#44865); +#35995=AXIS2_PLACEMENT_3D('',#55497,#44866,#44867); +#35996=AXIS2_PLACEMENT_3D('',#55499,#44869,#44870); +#35997=AXIS2_PLACEMENT_3D('',#55501,#44872,#44873); +#35998=AXIS2_PLACEMENT_3D('',#55503,#44875,#44876); +#35999=AXIS2_PLACEMENT_3D('',#55505,#44878,#44879); +#36000=AXIS2_PLACEMENT_3D('',#55507,#44881,#44882); +#36001=AXIS2_PLACEMENT_3D('',#55509,#44884,#44885); +#36002=AXIS2_PLACEMENT_3D('',#55512,#44888,#44889); +#36003=AXIS2_PLACEMENT_3D('',#55513,#44890,#44891); +#36004=AXIS2_PLACEMENT_3D('',#55515,#44893,#44894); +#36005=AXIS2_PLACEMENT_3D('',#55517,#44896,#44897); +#36006=AXIS2_PLACEMENT_3D('',#55518,#44898,#44899); +#36007=AXIS2_PLACEMENT_3D('',#55519,#44900,#44901); +#36008=AXIS2_PLACEMENT_3D('',#55522,#44904,#44905); +#36009=AXIS2_PLACEMENT_3D('',#55524,#44907,#44908); +#36010=AXIS2_PLACEMENT_3D('',#55526,#44910,#44911); +#36011=AXIS2_PLACEMENT_3D('',#55528,#44913,#44914); +#36012=AXIS2_PLACEMENT_3D('',#55530,#44916,#44917); +#36013=AXIS2_PLACEMENT_3D('',#55531,#44918,#44919); +#36014=AXIS2_PLACEMENT_3D('',#55533,#44921,#44922); +#36015=AXIS2_PLACEMENT_3D('',#55535,#44924,#44925); +#36016=AXIS2_PLACEMENT_3D('',#55537,#44927,#44928); +#36017=AXIS2_PLACEMENT_3D('',#55539,#44930,#44931); +#36018=AXIS2_PLACEMENT_3D('',#55541,#44933,#44934); +#36019=AXIS2_PLACEMENT_3D('',#55543,#44936,#44937); +#36020=AXIS2_PLACEMENT_3D('',#55546,#44940,#44941); +#36021=AXIS2_PLACEMENT_3D('',#55547,#44942,#44943); +#36022=AXIS2_PLACEMENT_3D('',#55549,#44945,#44946); +#36023=AXIS2_PLACEMENT_3D('',#55551,#44948,#44949); +#36024=AXIS2_PLACEMENT_3D('',#55552,#44950,#44951); +#36025=AXIS2_PLACEMENT_3D('',#55553,#44952,#44953); +#36026=AXIS2_PLACEMENT_3D('',#55556,#44956,#44957); +#36027=AXIS2_PLACEMENT_3D('',#55558,#44959,#44960); +#36028=AXIS2_PLACEMENT_3D('',#55560,#44962,#44963); +#36029=AXIS2_PLACEMENT_3D('',#55562,#44965,#44966); +#36030=AXIS2_PLACEMENT_3D('',#55564,#44968,#44969); +#36031=AXIS2_PLACEMENT_3D('',#55565,#44970,#44971); +#36032=AXIS2_PLACEMENT_3D('',#55567,#44973,#44974); +#36033=AXIS2_PLACEMENT_3D('',#55569,#44976,#44977); +#36034=AXIS2_PLACEMENT_3D('',#55571,#44979,#44980); +#36035=AXIS2_PLACEMENT_3D('',#55573,#44982,#44983); +#36036=AXIS2_PLACEMENT_3D('',#55575,#44985,#44986); +#36037=AXIS2_PLACEMENT_3D('',#55577,#44988,#44989); +#36038=AXIS2_PLACEMENT_3D('',#55580,#44992,#44993); +#36039=AXIS2_PLACEMENT_3D('',#55581,#44994,#44995); +#36040=AXIS2_PLACEMENT_3D('',#55583,#44997,#44998); +#36041=AXIS2_PLACEMENT_3D('',#55585,#45000,#45001); +#36042=AXIS2_PLACEMENT_3D('',#55586,#45002,#45003); +#36043=AXIS2_PLACEMENT_3D('',#55587,#45004,#45005); +#36044=AXIS2_PLACEMENT_3D('',#55590,#45008,#45009); +#36045=AXIS2_PLACEMENT_3D('',#55592,#45011,#45012); +#36046=AXIS2_PLACEMENT_3D('',#55594,#45014,#45015); +#36047=AXIS2_PLACEMENT_3D('',#55596,#45017,#45018); +#36048=AXIS2_PLACEMENT_3D('',#55598,#45020,#45021); +#36049=AXIS2_PLACEMENT_3D('',#55599,#45022,#45023); +#36050=AXIS2_PLACEMENT_3D('',#55601,#45025,#45026); +#36051=AXIS2_PLACEMENT_3D('',#55603,#45028,#45029); +#36052=AXIS2_PLACEMENT_3D('',#55605,#45031,#45032); +#36053=AXIS2_PLACEMENT_3D('',#55607,#45034,#45035); +#36054=AXIS2_PLACEMENT_3D('',#55609,#45037,#45038); +#36055=AXIS2_PLACEMENT_3D('',#55611,#45040,#45041); +#36056=AXIS2_PLACEMENT_3D('',#55614,#45044,#45045); +#36057=AXIS2_PLACEMENT_3D('',#55615,#45046,#45047); +#36058=AXIS2_PLACEMENT_3D('',#55617,#45049,#45050); +#36059=AXIS2_PLACEMENT_3D('',#55619,#45052,#45053); +#36060=AXIS2_PLACEMENT_3D('',#55620,#45054,#45055); +#36061=AXIS2_PLACEMENT_3D('',#55621,#45056,#45057); +#36062=AXIS2_PLACEMENT_3D('',#55624,#45060,#45061); +#36063=AXIS2_PLACEMENT_3D('',#55626,#45063,#45064); +#36064=AXIS2_PLACEMENT_3D('',#55628,#45066,#45067); +#36065=AXIS2_PLACEMENT_3D('',#55630,#45069,#45070); +#36066=AXIS2_PLACEMENT_3D('',#55632,#45072,#45073); +#36067=AXIS2_PLACEMENT_3D('',#55633,#45074,#45075); +#36068=AXIS2_PLACEMENT_3D('',#55635,#45077,#45078); +#36069=AXIS2_PLACEMENT_3D('',#55637,#45080,#45081); +#36070=AXIS2_PLACEMENT_3D('',#55639,#45083,#45084); +#36071=AXIS2_PLACEMENT_3D('',#55641,#45086,#45087); +#36072=AXIS2_PLACEMENT_3D('',#55643,#45089,#45090); +#36073=AXIS2_PLACEMENT_3D('',#55645,#45092,#45093); +#36074=AXIS2_PLACEMENT_3D('',#55648,#45096,#45097); +#36075=AXIS2_PLACEMENT_3D('',#55649,#45098,#45099); +#36076=AXIS2_PLACEMENT_3D('',#55651,#45101,#45102); +#36077=AXIS2_PLACEMENT_3D('',#55653,#45104,#45105); +#36078=AXIS2_PLACEMENT_3D('',#55654,#45106,#45107); +#36079=AXIS2_PLACEMENT_3D('',#55655,#45108,#45109); +#36080=AXIS2_PLACEMENT_3D('',#55656,#45110,#45111); +#36081=AXIS2_PLACEMENT_3D('',#55657,#45112,#45113); +#36082=AXIS2_PLACEMENT_3D('',#55658,#45114,#45115); +#36083=DIRECTION('',(0.,0.,1.)); +#36084=DIRECTION('',(1.,0.,0.)); +#36085=DIRECTION('',(-1.,0.,0.)); +#36086=DIRECTION('',(0.,0.,1.)); +#36087=DIRECTION('',(0.,-1.,0.)); +#36088=DIRECTION('',(0.,0.,-1.)); +#36089=DIRECTION('',(0.,-1.,0.)); +#36090=DIRECTION('',(0.,0.,-1.)); +#36091=DIRECTION('',(0.,-1.,0.)); +#36092=DIRECTION('',(0.,0.,-1.)); +#36093=DIRECTION('',(-1.,0.,0.)); +#36094=DIRECTION('',(0.,0.,1.)); +#36095=DIRECTION('',(0.,1.,0.)); +#36096=DIRECTION('',(0.,0.,-1.)); +#36097=DIRECTION('',(0.,-1.,0.)); +#36098=DIRECTION('',(0.,0.,-1.)); +#36099=DIRECTION('',(0.,-1.,0.)); +#36100=DIRECTION('',(0.,0.,-1.)); +#36101=DIRECTION('',(0.,1.,0.)); +#36102=DIRECTION('',(0.,0.,1.)); +#36103=DIRECTION('',(1.,0.,0.)); +#36104=DIRECTION('',(1.,0.,0.)); +#36105=DIRECTION('',(0.,0.,-1.)); +#36106=DIRECTION('',(1.,0.,0.)); +#36107=DIRECTION('',(0.,0.,1.)); +#36108=DIRECTION('',(1.,0.,0.)); +#36109=DIRECTION('',(0.,0.,1.)); +#36110=DIRECTION('',(1.,0.,0.)); +#36111=DIRECTION('',(0.,0.,1.)); +#36112=DIRECTION('',(1.,0.,0.)); +#36113=DIRECTION('',(0.,0.,1.)); +#36114=DIRECTION('',(1.,0.,0.)); +#36115=DIRECTION('',(0.,1.,0.)); +#36116=DIRECTION('',(1.,0.,0.)); +#36117=DIRECTION('',(0.,0.,-1.)); +#36118=DIRECTION('',(0.,1.,0.)); +#36119=DIRECTION('',(1.,0.,0.)); +#36120=DIRECTION('',(-1.,0.,0.)); +#36121=DIRECTION('',(0.,0.,1.)); +#36122=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); +#36123=DIRECTION('',(-1.,0.,0.)); +#36124=DIRECTION('',(0.,0.,-1.)); +#36125=DIRECTION('',(1.,0.,0.)); +#36126=DIRECTION('',(0.,0.,-1.)); +#36127=DIRECTION('',(1.,0.,0.)); +#36128=DIRECTION('',(0.,0.,-1.)); +#36129=DIRECTION('',(1.,0.,0.)); +#36130=DIRECTION('',(0.,0.,1.)); +#36131=DIRECTION('',(-1.,0.,0.)); +#36132=DIRECTION('',(0.,0.,-1.)); +#36133=DIRECTION('',(1.,0.,0.)); +#36134=DIRECTION('',(-1.,0.,0.)); +#36135=DIRECTION('',(0.,1.,0.)); +#36136=DIRECTION('',(1.,0.,0.)); +#36137=DIRECTION('',(0.,0.,1.)); +#36138=DIRECTION('',(0.,1.,0.)); +#36139=DIRECTION('',(1.,0.,0.)); +#36140=DIRECTION('',(0.,0.,1.)); +#36141=DIRECTION('',(0.,1.,0.)); +#36142=DIRECTION('',(1.,0.,0.)); +#36143=DIRECTION('',(0.,1.,0.)); +#36144=DIRECTION('',(1.,0.,0.)); +#36145=DIRECTION('',(0.,1.,0.)); +#36146=DIRECTION('',(1.,0.,0.)); +#36147=DIRECTION('',(0.,1.,0.)); +#36148=DIRECTION('',(1.,0.,0.)); +#36149=DIRECTION('',(0.,1.,0.)); +#36150=DIRECTION('',(1.,0.,0.)); +#36151=DIRECTION('',(0.,0.,-1.)); +#36152=DIRECTION('',(0.,1.,0.)); +#36153=DIRECTION('',(1.,0.,0.)); +#36154=DIRECTION('',(-1.,0.,0.)); +#36155=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); +#36156=DIRECTION('',(0.,1.,0.)); +#36157=DIRECTION('',(1.,0.,0.)); +#36158=DIRECTION('',(-0.60552183248326,0.,0.795828694120861)); +#36159=DIRECTION('',(0.,1.,0.)); +#36160=DIRECTION('',(1.,0.,0.)); +#36161=DIRECTION('',(0.60552183248326,0.,0.795828694120861)); +#36162=DIRECTION('',(0.,1.,0.)); +#36163=DIRECTION('',(1.,0.,0.)); +#36164=DIRECTION('',(0.605521832483264,0.,-0.795828694120858)); +#36165=DIRECTION('',(0.,1.,0.)); +#36166=DIRECTION('',(1.,0.,0.)); +#36167=DIRECTION('',(-0.605521832483264,0.,-0.795828694120858)); +#36168=DIRECTION('',(0.,1.,0.)); +#36169=DIRECTION('',(0.,0.,1.)); +#36170=DIRECTION('',(0.,0.,1.)); +#36171=DIRECTION('',(0.,1.,0.)); +#36172=DIRECTION('',(1.,0.,0.)); +#36173=DIRECTION('',(0.,1.,0.)); +#36174=DIRECTION('',(1.,0.,0.)); +#36175=DIRECTION('',(0.,1.,0.)); +#36176=DIRECTION('',(1.,0.,0.)); +#36177=DIRECTION('',(0.,1.,0.)); +#36178=DIRECTION('',(1.,0.,0.)); +#36179=DIRECTION('',(0.,1.,0.)); +#36180=DIRECTION('',(1.,0.,0.)); +#36181=DIRECTION('',(0.,0.,-1.)); +#36182=DIRECTION('',(0.,1.,0.)); +#36183=DIRECTION('',(1.,0.,0.)); +#36184=DIRECTION('',(-1.,0.,0.)); +#36185=DIRECTION('',(0.,1.,0.)); +#36186=DIRECTION('',(1.,0.,0.)); +#36187=DIRECTION('',(1.,0.,0.)); +#36188=DIRECTION('',(0.,0.,-1.)); +#36189=DIRECTION('',(0.,1.,0.)); +#36190=DIRECTION('',(0.,-1.,0.)); +#36191=DIRECTION('',(0.,0.,1.)); +#36192=DIRECTION('',(0.,-1.,0.)); +#36193=DIRECTION('',(0.,-1.,0.)); +#36194=DIRECTION('',(0.,0.,1.)); +#36195=DIRECTION('',(0.,1.,0.)); +#36196=DIRECTION('',(0.,0.,1.)); +#36197=DIRECTION('',(1.,0.,0.)); +#36198=DIRECTION('',(0.,0.,-1.)); +#36199=DIRECTION('',(1.,0.,0.)); +#36200=DIRECTION('',(0.,0.,-1.)); +#36201=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); +#36202=DIRECTION('',(1.,0.,0.)); +#36203=DIRECTION('',(0.,0.,-1.)); +#36204=DIRECTION('',(1.,0.,0.)); +#36205=DIRECTION('',(0.,0.,1.)); +#36206=DIRECTION('',(1.,0.,0.)); +#36207=DIRECTION('',(0.,0.,-1.)); +#36208=DIRECTION('',(1.,0.,0.)); +#36209=DIRECTION('',(0.,0.,1.)); +#36210=DIRECTION('',(1.,0.,0.)); +#36211=DIRECTION('',(0.,0.,-1.)); +#36212=DIRECTION('',(1.,0.,0.)); +#36213=DIRECTION('',(0.,0.,1.)); +#36214=DIRECTION('',(1.,0.,0.)); +#36215=DIRECTION('',(0.,0.,-1.)); +#36216=DIRECTION('',(1.,0.,0.)); +#36217=DIRECTION('',(0.,0.,1.)); +#36218=DIRECTION('',(1.,0.,0.)); +#36219=DIRECTION('',(0.,0.,-1.)); +#36220=DIRECTION('',(1.,0.,0.)); +#36221=DIRECTION('',(0.,0.,1.)); +#36222=DIRECTION('',(1.,0.,0.)); +#36223=DIRECTION('',(0.,0.,-1.)); +#36224=DIRECTION('',(1.,0.,0.)); +#36225=DIRECTION('',(0.,0.,1.)); +#36226=DIRECTION('',(1.,0.,0.)); +#36227=DIRECTION('',(0.,0.,-1.)); +#36228=DIRECTION('',(1.,0.,0.)); +#36229=DIRECTION('',(0.,0.,1.)); +#36230=DIRECTION('',(1.,0.,0.)); +#36231=DIRECTION('',(0.,0.,-1.)); +#36232=DIRECTION('',(1.,0.,0.)); +#36233=DIRECTION('',(0.,0.,1.)); +#36234=DIRECTION('',(1.,0.,0.)); +#36235=DIRECTION('',(0.,0.,-1.)); +#36236=DIRECTION('',(1.,0.,0.)); +#36237=DIRECTION('',(0.,0.,1.)); +#36238=DIRECTION('',(1.,0.,0.)); +#36239=DIRECTION('',(0.,0.,-1.)); +#36240=DIRECTION('',(1.,0.,0.)); +#36241=DIRECTION('',(0.,0.,1.)); +#36242=DIRECTION('',(1.,0.,0.)); +#36243=DIRECTION('',(0.,0.,-1.)); +#36244=DIRECTION('',(1.,0.,0.)); +#36245=DIRECTION('',(0.,0.,1.)); +#36246=DIRECTION('',(1.,0.,0.)); +#36247=DIRECTION('',(0.,0.,-1.)); +#36248=DIRECTION('',(1.,0.,0.)); +#36249=DIRECTION('',(0.,0.,1.)); +#36250=DIRECTION('',(1.,0.,0.)); +#36251=DIRECTION('',(0.,0.,-1.)); +#36252=DIRECTION('',(1.,0.,0.)); +#36253=DIRECTION('',(0.,0.,1.)); +#36254=DIRECTION('',(1.,0.,0.)); +#36255=DIRECTION('',(0.,0.,-1.)); +#36256=DIRECTION('',(1.,0.,0.)); +#36257=DIRECTION('',(0.,0.,1.)); +#36258=DIRECTION('',(1.,0.,0.)); +#36259=DIRECTION('',(0.,0.,-1.)); +#36260=DIRECTION('',(1.,0.,0.)); +#36261=DIRECTION('',(0.,0.,1.)); +#36262=DIRECTION('',(1.,0.,0.)); +#36263=DIRECTION('',(0.,0.,-1.)); +#36264=DIRECTION('',(1.,0.,0.)); +#36265=DIRECTION('',(0.,0.,1.)); +#36266=DIRECTION('',(1.,0.,0.)); +#36267=DIRECTION('',(0.,0.,-1.)); +#36268=DIRECTION('',(1.,0.,0.)); +#36269=DIRECTION('',(0.,0.,1.)); +#36270=DIRECTION('',(1.,0.,0.)); +#36271=DIRECTION('',(0.,0.,-1.)); +#36272=DIRECTION('',(1.,0.,0.)); +#36273=DIRECTION('',(0.,0.,1.)); +#36274=DIRECTION('',(1.,0.,0.)); +#36275=DIRECTION('',(0.,0.,-1.)); +#36276=DIRECTION('',(1.,0.,0.)); +#36277=DIRECTION('',(0.,0.,1.)); +#36278=DIRECTION('',(1.,0.,0.)); +#36279=DIRECTION('',(0.,0.,-1.)); +#36280=DIRECTION('',(1.,0.,0.)); +#36281=DIRECTION('',(0.,0.,1.)); +#36282=DIRECTION('',(1.,0.,0.)); +#36283=DIRECTION('',(-0.707106781186547,0.,-0.707106781186548)); +#36284=DIRECTION('',(0.,0.,-1.)); +#36285=DIRECTION('',(1.,0.,0.)); +#36286=DIRECTION('',(0.,0.,1.)); +#36287=DIRECTION('',(1.,0.,0.)); +#36288=DIRECTION('',(0.,0.,-1.)); +#36289=DIRECTION('',(1.,0.,0.)); +#36290=DIRECTION('',(0.,0.,1.)); +#36291=DIRECTION('',(1.,0.,0.)); +#36292=DIRECTION('',(0.,0.,-1.)); +#36293=DIRECTION('',(1.,0.,0.)); +#36294=DIRECTION('',(0.,0.,1.)); +#36295=DIRECTION('',(1.,0.,0.)); +#36296=DIRECTION('',(0.,0.,-1.)); +#36297=DIRECTION('',(1.,0.,0.)); +#36298=DIRECTION('',(0.,0.,1.)); +#36299=DIRECTION('',(1.,0.,0.)); +#36300=DIRECTION('',(0.,0.,-1.)); +#36301=DIRECTION('',(1.,0.,0.)); +#36302=DIRECTION('',(0.,0.,1.)); +#36303=DIRECTION('',(1.,0.,0.)); +#36304=DIRECTION('',(0.,0.,-1.)); +#36305=DIRECTION('',(1.,0.,0.)); +#36306=DIRECTION('',(0.,0.,1.)); +#36307=DIRECTION('',(1.,0.,0.)); +#36308=DIRECTION('',(0.,0.,-1.)); +#36309=DIRECTION('',(1.,0.,0.)); +#36310=DIRECTION('',(0.,0.,1.)); +#36311=DIRECTION('',(1.,0.,0.)); +#36312=DIRECTION('',(0.,0.,-1.)); +#36313=DIRECTION('',(1.,0.,0.)); +#36314=DIRECTION('',(0.,0.,1.)); +#36315=DIRECTION('',(1.,0.,0.)); +#36316=DIRECTION('',(0.,0.,-1.)); +#36317=DIRECTION('',(1.,0.,0.)); +#36318=DIRECTION('',(0.,0.,1.)); +#36319=DIRECTION('',(1.,0.,0.)); +#36320=DIRECTION('',(0.,0.,-1.)); +#36321=DIRECTION('',(1.,0.,0.)); +#36322=DIRECTION('',(0.,0.,1.)); +#36323=DIRECTION('',(1.,0.,0.)); +#36324=DIRECTION('',(0.,0.,-1.)); +#36325=DIRECTION('',(1.,0.,0.)); +#36326=DIRECTION('',(0.,0.,1.)); +#36327=DIRECTION('',(1.,0.,0.)); +#36328=DIRECTION('',(0.,0.,-1.)); +#36329=DIRECTION('',(1.,0.,0.)); +#36330=DIRECTION('',(0.,0.,1.)); +#36331=DIRECTION('',(1.,0.,0.)); +#36332=DIRECTION('',(0.,0.,-1.)); +#36333=DIRECTION('',(1.,0.,0.)); +#36334=DIRECTION('',(0.,0.,1.)); +#36335=DIRECTION('',(1.,0.,0.)); +#36336=DIRECTION('',(0.,0.,-1.)); +#36337=DIRECTION('',(1.,0.,0.)); +#36338=DIRECTION('',(0.,0.,1.)); +#36339=DIRECTION('',(1.,0.,0.)); +#36340=DIRECTION('',(0.,0.,-1.)); +#36341=DIRECTION('',(1.,0.,0.)); +#36342=DIRECTION('',(0.,0.,1.)); +#36343=DIRECTION('',(1.,0.,0.)); +#36344=DIRECTION('',(0.,0.,-1.)); +#36345=DIRECTION('',(1.,0.,0.)); +#36346=DIRECTION('',(0.,0.,1.)); +#36347=DIRECTION('',(1.,0.,0.)); +#36348=DIRECTION('',(0.,0.,-1.)); +#36349=DIRECTION('',(1.,0.,0.)); +#36350=DIRECTION('',(0.,0.,1.)); +#36351=DIRECTION('',(1.,0.,0.)); +#36352=DIRECTION('',(0.,0.,-1.)); +#36353=DIRECTION('',(1.,0.,0.)); +#36354=DIRECTION('',(0.,0.,1.)); +#36355=DIRECTION('',(1.,0.,0.)); +#36356=DIRECTION('',(0.,0.,-1.)); +#36357=DIRECTION('',(1.,0.,0.)); +#36358=DIRECTION('',(0.,0.,1.)); +#36359=DIRECTION('',(1.,0.,0.)); +#36360=DIRECTION('',(0.,0.,-1.)); +#36361=DIRECTION('',(1.,0.,0.)); +#36362=DIRECTION('',(0.,0.,1.)); +#36363=DIRECTION('',(1.,0.,0.)); +#36364=DIRECTION('',(0.,0.,-1.)); +#36365=DIRECTION('',(-1.,0.,0.)); +#36366=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); +#36367=DIRECTION('',(1.,0.,0.)); +#36368=DIRECTION('',(0.,0.,1.)); +#36369=DIRECTION('',(-1.,0.,0.)); +#36370=DIRECTION('',(0.,0.,-1.)); +#36371=DIRECTION('',(1.,0.,0.)); +#36372=DIRECTION('',(0.,0.,1.)); +#36373=DIRECTION('',(-1.,0.,0.)); +#36374=DIRECTION('',(0.,0.,-1.)); +#36375=DIRECTION('',(1.,0.,0.)); +#36376=DIRECTION('',(0.,0.,1.)); +#36377=DIRECTION('',(-1.,0.,0.)); +#36378=DIRECTION('',(0.,0.,-1.)); +#36379=DIRECTION('',(1.,0.,0.)); +#36380=DIRECTION('',(0.,0.,1.)); +#36381=DIRECTION('',(-1.,0.,0.)); +#36382=DIRECTION('',(0.,0.,-1.)); +#36383=DIRECTION('',(1.,0.,0.)); +#36384=DIRECTION('',(0.,0.,1.)); +#36385=DIRECTION('',(-1.,0.,0.)); +#36386=DIRECTION('',(0.,0.,-1.)); +#36387=DIRECTION('',(1.,0.,0.)); +#36388=DIRECTION('',(0.,0.,1.)); +#36389=DIRECTION('',(-1.,0.,0.)); +#36390=DIRECTION('',(0.,0.,-1.)); +#36391=DIRECTION('',(1.,0.,0.)); +#36392=DIRECTION('',(0.,0.,1.)); +#36393=DIRECTION('',(-1.,0.,0.)); +#36394=DIRECTION('',(0.,0.,-1.)); +#36395=DIRECTION('',(1.,0.,0.)); +#36396=DIRECTION('',(0.,0.,1.)); +#36397=DIRECTION('',(-1.,0.,0.)); +#36398=DIRECTION('',(0.,0.,-1.)); +#36399=DIRECTION('',(1.,0.,0.)); +#36400=DIRECTION('',(-1.,0.,2.16840434497102E-15)); +#36401=DIRECTION('',(1.,0.,0.)); +#36402=DIRECTION('',(0.,0.,-1.)); +#36403=DIRECTION('',(-1.,0.,0.)); +#36404=DIRECTION('',(-2.60208521396521E-15,0.,-1.)); +#36405=DIRECTION('',(1.,0.,0.)); +#36406=DIRECTION('',(0.,0.,1.)); +#36407=DIRECTION('',(-1.,0.,0.)); +#36408=DIRECTION('',(0.,0.,-1.)); +#36409=DIRECTION('',(1.,0.,0.)); +#36410=DIRECTION('',(0.,0.,1.)); +#36411=DIRECTION('',(-1.,0.,0.)); +#36412=DIRECTION('',(0.,0.,-1.)); +#36413=DIRECTION('',(1.,0.,0.)); +#36414=DIRECTION('',(0.,0.,1.)); +#36415=DIRECTION('',(-1.,0.,0.)); +#36416=DIRECTION('',(0.,0.,-1.)); +#36417=DIRECTION('',(1.,0.,0.)); +#36418=DIRECTION('',(0.,0.,1.)); +#36419=DIRECTION('',(-1.,0.,0.)); +#36420=DIRECTION('',(0.,0.,-1.)); +#36421=DIRECTION('',(1.,0.,0.)); +#36422=DIRECTION('',(0.,0.,1.)); +#36423=DIRECTION('',(-1.,0.,0.)); +#36424=DIRECTION('',(0.,0.,-1.)); +#36425=DIRECTION('',(1.,0.,0.)); +#36426=DIRECTION('',(0.,0.,1.)); +#36427=DIRECTION('',(-1.,0.,0.)); +#36428=DIRECTION('',(0.,0.,-1.)); +#36429=DIRECTION('',(1.,0.,0.)); +#36430=DIRECTION('',(0.,0.,1.)); +#36431=DIRECTION('',(-1.,0.,0.)); +#36432=DIRECTION('',(0.,0.,-1.)); +#36433=DIRECTION('',(1.,0.,0.)); +#36434=DIRECTION('',(-8.67361737988404E-16,0.,1.)); +#36435=DIRECTION('',(-1.,0.,0.)); +#36436=DIRECTION('',(0.,0.,1.)); +#36437=DIRECTION('',(1.,0.,0.)); +#36438=DIRECTION('',(0.500000001454239,0.,-0.866025402944833)); +#36439=DIRECTION('',(0.500000001454238,0.,0.866025402944834)); +#36440=DIRECTION('',(0.,0.,1.)); +#36441=DIRECTION('',(1.,0.,0.)); +#36442=DIRECTION('',(0.384615384615385,-0.923076923076923,0.)); +#36443=DIRECTION('',(0.384615384615385,0.923076923076923,0.)); +#36444=DIRECTION('',(0.,-1.,0.)); +#36445=DIRECTION('',(-1.,0.,0.)); +#36446=DIRECTION('',(0.,-1.,0.)); +#36447=DIRECTION('',(0.,-1.,0.)); +#36448=DIRECTION('',(0.,1.,0.)); +#36449=DIRECTION('',(0.,0.,1.)); +#36450=DIRECTION('',(0.,0.,-1.)); +#36451=DIRECTION('',(-1.,0.,0.)); +#36452=DIRECTION('',(0.,0.,-1.)); +#36453=DIRECTION('',(1.,0.,0.)); +#36454=DIRECTION('',(0.,1.,0.)); +#36455=DIRECTION('',(0.,0.,1.)); +#36456=DIRECTION('',(0.,0.,-1.)); +#36457=DIRECTION('',(1.,0.,0.)); +#36458=DIRECTION('',(0.,0.,-1.)); +#36459=DIRECTION('',(1.,0.,0.)); +#36460=DIRECTION('',(-1.,3.46944695195362E-16,0.)); +#36461=DIRECTION('',(-3.46944695195362E-16,-1.,0.)); +#36462=DIRECTION('',(-1.,3.46944695195362E-16,0.)); +#36463=DIRECTION('',(-3.46944695195362E-16,-1.,0.)); +#36464=DIRECTION('',(-3.46944695195362E-16,-1.,0.)); +#36465=DIRECTION('',(3.46944695195361E-16,1.,0.)); +#36466=DIRECTION('',(3.46944695195362E-16,1.,0.)); +#36467=DIRECTION('',(0.,0.,-1.)); +#36468=DIRECTION('',(3.46944695195362E-16,1.,0.)); +#36469=DIRECTION('',(3.46944695195361E-16,1.,0.)); +#36470=DIRECTION('',(3.46944695195362E-16,1.,0.)); +#36471=DIRECTION('',(1.,0.,0.)); +#36472=DIRECTION('',(0.,0.,-1.)); +#36473=DIRECTION('',(0.,1.,0.)); +#36474=DIRECTION('',(1.,0.,0.)); +#36475=DIRECTION('',(0.,0.,-1.)); +#36476=DIRECTION('',(0.,-1.,0.)); +#36477=DIRECTION('',(0.,-1.,0.)); +#36478=DIRECTION('',(0.,-1.,0.)); +#36479=DIRECTION('',(0.,0.,1.)); +#36480=DIRECTION('',(0.,-1.,0.)); +#36481=DIRECTION('',(0.,-1.,0.)); +#36482=DIRECTION('',(0.,1.,0.)); +#36483=DIRECTION('',(0.,0.,1.)); +#36484=DIRECTION('',(0.,0.,-1.)); +#36485=DIRECTION('',(-1.,0.,0.)); +#36486=DIRECTION('',(0.,0.,-1.)); +#36487=DIRECTION('',(1.,0.,0.)); +#36488=DIRECTION('',(0.,1.,0.)); +#36489=DIRECTION('',(0.,0.,1.)); +#36490=DIRECTION('',(0.,0.,-1.)); +#36491=DIRECTION('',(1.,0.,0.)); +#36492=DIRECTION('',(0.,0.,-1.)); +#36493=DIRECTION('',(1.,0.,0.)); +#36494=DIRECTION('',(-1.,0.,0.)); +#36495=DIRECTION('',(0.,0.,1.)); +#36496=DIRECTION('',(-1.,0.,0.)); +#36497=DIRECTION('',(0.,0.,1.)); +#36498=DIRECTION('',(0.,-1.,0.)); +#36499=DIRECTION('',(0.,1.,0.)); +#36500=DIRECTION('',(0.,1.,0.)); +#36501=DIRECTION('',(0.,0.,-1.)); +#36502=DIRECTION('',(0.,1.,0.)); +#36503=DIRECTION('',(0.,1.,0.)); +#36504=DIRECTION('',(0.,1.,0.)); +#36505=DIRECTION('',(1.,0.,0.)); +#36506=DIRECTION('',(0.,0.,-1.)); +#36507=DIRECTION('',(0.,1.,0.)); +#36508=DIRECTION('',(1.,0.,0.)); +#36509=DIRECTION('',(0.,0.,-1.)); +#36510=DIRECTION('',(0.,-1.,0.)); +#36511=DIRECTION('',(0.,-1.,0.)); +#36512=DIRECTION('',(0.,-1.,0.)); +#36513=DIRECTION('',(0.,0.,1.)); +#36514=DIRECTION('',(0.,-1.,0.)); +#36515=DIRECTION('',(0.,-1.,0.)); +#36516=DIRECTION('',(0.,1.,0.)); +#36517=DIRECTION('',(0.,0.,1.)); +#36518=DIRECTION('',(0.,0.,-1.)); +#36519=DIRECTION('',(-1.,0.,0.)); +#36520=DIRECTION('',(0.,0.,-1.)); +#36521=DIRECTION('',(1.,0.,0.)); +#36522=DIRECTION('',(0.,1.,0.)); +#36523=DIRECTION('',(0.,0.,1.)); +#36524=DIRECTION('',(0.,0.,-1.)); +#36525=DIRECTION('',(1.,0.,0.)); +#36526=DIRECTION('',(0.,0.,-1.)); +#36527=DIRECTION('',(1.,0.,0.)); +#36528=DIRECTION('',(-1.,0.,0.)); +#36529=DIRECTION('',(0.,0.,1.)); +#36530=DIRECTION('',(-1.,0.,0.)); +#36531=DIRECTION('',(0.,0.,1.)); +#36532=DIRECTION('',(0.,-1.,0.)); +#36533=DIRECTION('',(0.,1.,0.)); +#36534=DIRECTION('',(0.,1.,0.)); +#36535=DIRECTION('',(0.,0.,-1.)); +#36536=DIRECTION('',(0.,1.,0.)); +#36537=DIRECTION('',(0.,1.,0.)); +#36538=DIRECTION('',(0.,1.,0.)); +#36539=DIRECTION('',(1.,0.,0.)); +#36540=DIRECTION('',(0.,0.,-1.)); +#36541=DIRECTION('',(0.,1.,0.)); +#36542=DIRECTION('',(1.,0.,0.)); +#36543=DIRECTION('',(0.,0.,-1.)); +#36544=DIRECTION('',(0.,-1.,0.)); +#36545=DIRECTION('',(0.,-1.,0.)); +#36546=DIRECTION('',(0.,-1.,0.)); +#36547=DIRECTION('',(0.,0.,1.)); +#36548=DIRECTION('',(0.,-1.,0.)); +#36549=DIRECTION('',(0.,-1.,0.)); +#36550=DIRECTION('',(0.,1.,0.)); +#36551=DIRECTION('',(0.,0.,1.)); +#36552=DIRECTION('',(0.,0.,-1.)); +#36553=DIRECTION('',(-1.,0.,0.)); +#36554=DIRECTION('',(0.,0.,-1.)); +#36555=DIRECTION('',(1.,0.,0.)); +#36556=DIRECTION('',(0.,1.,0.)); +#36557=DIRECTION('',(0.,0.,1.)); +#36558=DIRECTION('',(0.,0.,-1.)); +#36559=DIRECTION('',(1.,0.,0.)); +#36560=DIRECTION('',(0.,0.,-1.)); +#36561=DIRECTION('',(1.,0.,0.)); +#36562=DIRECTION('',(-1.,0.,0.)); +#36563=DIRECTION('',(0.,0.,1.)); +#36564=DIRECTION('',(-1.,0.,0.)); +#36565=DIRECTION('',(0.,0.,1.)); +#36566=DIRECTION('',(0.,-1.,0.)); +#36567=DIRECTION('',(0.,1.,0.)); +#36568=DIRECTION('',(0.,1.,0.)); +#36569=DIRECTION('',(0.,0.,-1.)); +#36570=DIRECTION('',(0.,1.,0.)); +#36571=DIRECTION('',(0.,1.,0.)); +#36572=DIRECTION('',(0.,1.,0.)); +#36573=DIRECTION('',(1.,0.,0.)); +#36574=DIRECTION('',(0.,0.,-1.)); +#36575=DIRECTION('',(0.,1.,0.)); +#36576=DIRECTION('',(1.,0.,0.)); +#36577=DIRECTION('',(0.,0.,-1.)); +#36578=DIRECTION('',(0.,-1.,0.)); +#36579=DIRECTION('',(0.,-1.,0.)); +#36580=DIRECTION('',(0.,-1.,0.)); +#36581=DIRECTION('',(0.,0.,1.)); +#36582=DIRECTION('',(0.,-1.,0.)); +#36583=DIRECTION('',(0.,-1.,0.)); +#36584=DIRECTION('',(0.,1.,0.)); +#36585=DIRECTION('',(0.,0.,1.)); +#36586=DIRECTION('',(0.,0.,-1.)); +#36587=DIRECTION('',(-1.,0.,0.)); +#36588=DIRECTION('',(0.,0.,-1.)); +#36589=DIRECTION('',(1.,0.,0.)); +#36590=DIRECTION('',(0.,1.,0.)); +#36591=DIRECTION('',(0.,0.,1.)); +#36592=DIRECTION('',(0.,0.,-1.)); +#36593=DIRECTION('',(1.,0.,0.)); +#36594=DIRECTION('',(0.,0.,-1.)); +#36595=DIRECTION('',(1.,0.,0.)); +#36596=DIRECTION('',(-1.,0.,0.)); +#36597=DIRECTION('',(0.,0.,1.)); +#36598=DIRECTION('',(-1.,0.,0.)); +#36599=DIRECTION('',(0.,0.,1.)); +#36600=DIRECTION('',(0.,-1.,0.)); +#36601=DIRECTION('',(0.,1.,0.)); +#36602=DIRECTION('',(0.,1.,0.)); +#36603=DIRECTION('',(0.,0.,-1.)); +#36604=DIRECTION('',(0.,1.,0.)); +#36605=DIRECTION('',(0.,1.,0.)); +#36606=DIRECTION('',(0.,1.,0.)); +#36607=DIRECTION('',(1.,0.,0.)); +#36608=DIRECTION('',(0.,0.,-1.)); +#36609=DIRECTION('',(0.,1.,0.)); +#36610=DIRECTION('',(1.,0.,0.)); +#36611=DIRECTION('',(0.,0.,-1.)); +#36612=DIRECTION('',(0.,-1.,0.)); +#36613=DIRECTION('',(0.,-1.,0.)); +#36614=DIRECTION('',(0.,-1.,0.)); +#36615=DIRECTION('',(0.,0.,1.)); +#36616=DIRECTION('',(0.,-1.,0.)); +#36617=DIRECTION('',(0.,-1.,0.)); +#36618=DIRECTION('',(0.,1.,0.)); +#36619=DIRECTION('',(0.,0.,1.)); +#36620=DIRECTION('',(0.,0.,-1.)); +#36621=DIRECTION('',(-1.,0.,0.)); +#36622=DIRECTION('',(0.,0.,-1.)); +#36623=DIRECTION('',(1.,0.,0.)); +#36624=DIRECTION('',(0.,1.,0.)); +#36625=DIRECTION('',(0.,0.,1.)); +#36626=DIRECTION('',(0.,0.,-1.)); +#36627=DIRECTION('',(1.,0.,0.)); +#36628=DIRECTION('',(0.,0.,-1.)); +#36629=DIRECTION('',(1.,0.,0.)); +#36630=DIRECTION('',(-1.,0.,0.)); +#36631=DIRECTION('',(0.,0.,1.)); +#36632=DIRECTION('',(-1.,0.,0.)); +#36633=DIRECTION('',(0.,0.,1.)); +#36634=DIRECTION('',(0.,-1.,0.)); +#36635=DIRECTION('',(0.,1.,0.)); +#36636=DIRECTION('',(0.,1.,0.)); +#36637=DIRECTION('',(0.,0.,-1.)); +#36638=DIRECTION('',(0.,1.,0.)); +#36639=DIRECTION('',(0.,1.,0.)); +#36640=DIRECTION('',(0.,1.,0.)); +#36641=DIRECTION('',(1.,0.,0.)); +#36642=DIRECTION('',(0.,0.,-1.)); +#36643=DIRECTION('',(0.,1.,0.)); +#36644=DIRECTION('',(1.,0.,0.)); +#36645=DIRECTION('',(0.,0.,-1.)); +#36646=DIRECTION('',(0.,-1.,0.)); +#36647=DIRECTION('',(0.,-1.,0.)); +#36648=DIRECTION('',(0.,-1.,0.)); +#36649=DIRECTION('',(0.,0.,1.)); +#36650=DIRECTION('',(0.,-1.,0.)); +#36651=DIRECTION('',(0.,-1.,0.)); +#36652=DIRECTION('',(0.,1.,0.)); +#36653=DIRECTION('',(0.,0.,1.)); +#36654=DIRECTION('',(0.,0.,-1.)); +#36655=DIRECTION('',(-1.,0.,0.)); +#36656=DIRECTION('',(0.,0.,-1.)); +#36657=DIRECTION('',(1.,0.,0.)); +#36658=DIRECTION('',(0.,1.,0.)); +#36659=DIRECTION('',(0.,0.,1.)); +#36660=DIRECTION('',(0.,0.,-1.)); +#36661=DIRECTION('',(1.,0.,0.)); +#36662=DIRECTION('',(0.,0.,-1.)); +#36663=DIRECTION('',(1.,0.,0.)); +#36664=DIRECTION('',(-1.,0.,0.)); +#36665=DIRECTION('',(0.,0.,1.)); +#36666=DIRECTION('',(-1.,0.,0.)); +#36667=DIRECTION('',(0.,0.,1.)); +#36668=DIRECTION('',(0.,-1.,0.)); +#36669=DIRECTION('',(0.,1.,0.)); +#36670=DIRECTION('',(0.,1.,0.)); +#36671=DIRECTION('',(0.,0.,-1.)); +#36672=DIRECTION('',(0.,1.,0.)); +#36673=DIRECTION('',(0.,1.,0.)); +#36674=DIRECTION('',(0.,1.,0.)); +#36675=DIRECTION('',(1.,0.,0.)); +#36676=DIRECTION('',(0.,0.,-1.)); +#36677=DIRECTION('',(0.,1.,0.)); +#36678=DIRECTION('',(1.,0.,0.)); +#36679=DIRECTION('',(0.,0.,-1.)); +#36680=DIRECTION('',(0.,-1.,0.)); +#36681=DIRECTION('',(0.,-1.,0.)); +#36682=DIRECTION('',(0.,-1.,0.)); +#36683=DIRECTION('',(0.,0.,1.)); +#36684=DIRECTION('',(0.,-1.,0.)); +#36685=DIRECTION('',(0.,-1.,0.)); +#36686=DIRECTION('',(0.,1.,0.)); +#36687=DIRECTION('',(0.,0.,1.)); +#36688=DIRECTION('',(0.,0.,-1.)); +#36689=DIRECTION('',(-1.,0.,0.)); +#36690=DIRECTION('',(0.,0.,-1.)); +#36691=DIRECTION('',(1.,0.,0.)); +#36692=DIRECTION('',(0.,1.,0.)); +#36693=DIRECTION('',(0.,0.,1.)); +#36694=DIRECTION('',(0.,0.,-1.)); +#36695=DIRECTION('',(1.,0.,0.)); +#36696=DIRECTION('',(0.,0.,-1.)); +#36697=DIRECTION('',(1.,0.,0.)); +#36698=DIRECTION('',(-1.,0.,0.)); +#36699=DIRECTION('',(0.,0.,1.)); +#36700=DIRECTION('',(-1.,0.,0.)); +#36701=DIRECTION('',(0.,0.,1.)); +#36702=DIRECTION('',(0.,-1.,0.)); +#36703=DIRECTION('',(0.,1.,0.)); +#36704=DIRECTION('',(0.,1.,0.)); +#36705=DIRECTION('',(0.,0.,-1.)); +#36706=DIRECTION('',(0.,1.,0.)); +#36707=DIRECTION('',(0.,1.,0.)); +#36708=DIRECTION('',(0.,1.,0.)); +#36709=DIRECTION('',(1.,0.,0.)); +#36710=DIRECTION('',(0.,0.,-1.)); +#36711=DIRECTION('',(0.,1.,0.)); +#36712=DIRECTION('',(1.,0.,0.)); +#36713=DIRECTION('',(0.,0.,-1.)); +#36714=DIRECTION('',(0.,-1.,0.)); +#36715=DIRECTION('',(0.,-1.,0.)); +#36716=DIRECTION('',(0.,-1.,0.)); +#36717=DIRECTION('',(0.,0.,1.)); +#36718=DIRECTION('',(0.,-1.,0.)); +#36719=DIRECTION('',(0.,-1.,0.)); +#36720=DIRECTION('',(0.,1.,0.)); +#36721=DIRECTION('',(0.,0.,1.)); +#36722=DIRECTION('',(0.,0.,-1.)); +#36723=DIRECTION('',(-1.,0.,0.)); +#36724=DIRECTION('',(0.,0.,-1.)); +#36725=DIRECTION('',(1.,0.,0.)); +#36726=DIRECTION('',(0.,1.,0.)); +#36727=DIRECTION('',(0.,0.,1.)); +#36728=DIRECTION('',(0.,0.,-1.)); +#36729=DIRECTION('',(1.,0.,0.)); +#36730=DIRECTION('',(0.,0.,-1.)); +#36731=DIRECTION('',(1.,0.,0.)); +#36732=DIRECTION('',(-1.,0.,0.)); +#36733=DIRECTION('',(0.,0.,1.)); +#36734=DIRECTION('',(-1.,0.,0.)); +#36735=DIRECTION('',(0.,0.,1.)); +#36736=DIRECTION('',(0.,-1.,0.)); +#36737=DIRECTION('',(0.,1.,0.)); +#36738=DIRECTION('',(0.,1.,0.)); +#36739=DIRECTION('',(0.,0.,-1.)); +#36740=DIRECTION('',(0.,1.,0.)); +#36741=DIRECTION('',(0.,1.,0.)); +#36742=DIRECTION('',(0.,1.,0.)); +#36743=DIRECTION('',(1.,0.,0.)); +#36744=DIRECTION('',(0.,0.,-1.)); +#36745=DIRECTION('',(0.,1.,0.)); +#36746=DIRECTION('',(1.,0.,0.)); +#36747=DIRECTION('',(0.,0.,-1.)); +#36748=DIRECTION('',(0.,-1.,0.)); +#36749=DIRECTION('',(0.,-1.,0.)); +#36750=DIRECTION('',(0.,-1.,0.)); +#36751=DIRECTION('',(0.,0.,1.)); +#36752=DIRECTION('',(0.,-1.,0.)); +#36753=DIRECTION('',(0.,-1.,0.)); +#36754=DIRECTION('',(0.,1.,0.)); +#36755=DIRECTION('',(0.,0.,1.)); +#36756=DIRECTION('',(0.,0.,-1.)); +#36757=DIRECTION('',(-1.,0.,0.)); +#36758=DIRECTION('',(0.,0.,-1.)); +#36759=DIRECTION('',(1.,0.,0.)); +#36760=DIRECTION('',(0.,1.,0.)); +#36761=DIRECTION('',(0.,0.,1.)); +#36762=DIRECTION('',(0.,0.,-1.)); +#36763=DIRECTION('',(1.,0.,0.)); +#36764=DIRECTION('',(0.,0.,-1.)); +#36765=DIRECTION('',(1.,0.,0.)); +#36766=DIRECTION('',(-1.,0.,0.)); +#36767=DIRECTION('',(0.,0.,1.)); +#36768=DIRECTION('',(-1.,0.,0.)); +#36769=DIRECTION('',(0.,0.,1.)); +#36770=DIRECTION('',(0.,-1.,0.)); +#36771=DIRECTION('',(0.,1.,0.)); +#36772=DIRECTION('',(0.,1.,0.)); +#36773=DIRECTION('',(0.,0.,-1.)); +#36774=DIRECTION('',(0.,1.,0.)); +#36775=DIRECTION('',(0.,1.,0.)); +#36776=DIRECTION('',(0.,1.,0.)); +#36777=DIRECTION('',(1.,0.,0.)); +#36778=DIRECTION('',(0.,0.,-1.)); +#36779=DIRECTION('',(0.,1.,0.)); +#36780=DIRECTION('',(1.,0.,0.)); +#36781=DIRECTION('',(0.,0.,-1.)); +#36782=DIRECTION('',(0.,-1.,0.)); +#36783=DIRECTION('',(0.,-1.,0.)); +#36784=DIRECTION('',(0.,-1.,0.)); +#36785=DIRECTION('',(0.,0.,1.)); +#36786=DIRECTION('',(0.,-1.,0.)); +#36787=DIRECTION('',(0.,-1.,0.)); +#36788=DIRECTION('',(0.,1.,0.)); +#36789=DIRECTION('',(0.,0.,1.)); +#36790=DIRECTION('',(0.,0.,-1.)); +#36791=DIRECTION('',(-1.,0.,0.)); +#36792=DIRECTION('',(0.,0.,-1.)); +#36793=DIRECTION('',(1.,0.,0.)); +#36794=DIRECTION('',(0.,1.,0.)); +#36795=DIRECTION('',(0.,0.,1.)); +#36796=DIRECTION('',(0.,0.,-1.)); +#36797=DIRECTION('',(1.,0.,0.)); +#36798=DIRECTION('',(0.,0.,-1.)); +#36799=DIRECTION('',(1.,0.,0.)); +#36800=DIRECTION('',(-1.,0.,0.)); +#36801=DIRECTION('',(0.,0.,1.)); +#36802=DIRECTION('',(-1.,0.,0.)); +#36803=DIRECTION('',(0.,0.,1.)); +#36804=DIRECTION('',(0.,-1.,0.)); +#36805=DIRECTION('',(0.,1.,0.)); +#36806=DIRECTION('',(0.,1.,0.)); +#36807=DIRECTION('',(0.,0.,-1.)); +#36808=DIRECTION('',(0.,1.,0.)); +#36809=DIRECTION('',(0.,1.,0.)); +#36810=DIRECTION('',(0.,1.,0.)); +#36811=DIRECTION('',(1.,0.,0.)); +#36812=DIRECTION('',(0.,0.,-1.)); +#36813=DIRECTION('',(0.,1.,0.)); +#36814=DIRECTION('',(1.,0.,0.)); +#36815=DIRECTION('',(0.,0.,-1.)); +#36816=DIRECTION('',(0.,-1.,0.)); +#36817=DIRECTION('',(0.,-1.,0.)); +#36818=DIRECTION('',(0.,-1.,0.)); +#36819=DIRECTION('',(0.,0.,1.)); +#36820=DIRECTION('',(0.,-1.,0.)); +#36821=DIRECTION('',(0.,-1.,0.)); +#36822=DIRECTION('',(0.,1.,0.)); +#36823=DIRECTION('',(0.,0.,1.)); +#36824=DIRECTION('',(0.,0.,-1.)); +#36825=DIRECTION('',(-1.,0.,0.)); +#36826=DIRECTION('',(0.,0.,-1.)); +#36827=DIRECTION('',(1.,0.,0.)); +#36828=DIRECTION('',(0.,1.,0.)); +#36829=DIRECTION('',(0.,0.,1.)); +#36830=DIRECTION('',(0.,0.,-1.)); +#36831=DIRECTION('',(1.,0.,0.)); +#36832=DIRECTION('',(0.,0.,-1.)); +#36833=DIRECTION('',(1.,0.,0.)); +#36834=DIRECTION('',(-1.,0.,0.)); +#36835=DIRECTION('',(0.,0.,1.)); +#36836=DIRECTION('',(-1.,0.,0.)); +#36837=DIRECTION('',(0.,0.,1.)); +#36838=DIRECTION('',(0.,-1.,0.)); +#36839=DIRECTION('',(0.,1.,0.)); +#36840=DIRECTION('',(0.,1.,0.)); +#36841=DIRECTION('',(0.,0.,-1.)); +#36842=DIRECTION('',(0.,1.,0.)); +#36843=DIRECTION('',(0.,1.,0.)); +#36844=DIRECTION('',(0.,1.,0.)); +#36845=DIRECTION('',(1.,0.,0.)); +#36846=DIRECTION('',(0.,0.,-1.)); +#36847=DIRECTION('',(0.,1.,0.)); +#36848=DIRECTION('',(1.,0.,0.)); +#36849=DIRECTION('',(0.,0.,-1.)); +#36850=DIRECTION('',(0.,-1.,0.)); +#36851=DIRECTION('',(0.,-1.,0.)); +#36852=DIRECTION('',(0.,-1.,0.)); +#36853=DIRECTION('',(0.,0.,1.)); +#36854=DIRECTION('',(0.,-1.,0.)); +#36855=DIRECTION('',(0.,-1.,0.)); +#36856=DIRECTION('',(0.,1.,0.)); +#36857=DIRECTION('',(0.,0.,1.)); +#36858=DIRECTION('',(0.,0.,-1.)); +#36859=DIRECTION('',(-1.,0.,0.)); +#36860=DIRECTION('',(0.,0.,-1.)); +#36861=DIRECTION('',(1.,0.,0.)); +#36862=DIRECTION('',(0.,1.,0.)); +#36863=DIRECTION('',(0.,0.,1.)); +#36864=DIRECTION('',(0.,0.,-1.)); +#36865=DIRECTION('',(1.,0.,0.)); +#36866=DIRECTION('',(0.,0.,-1.)); +#36867=DIRECTION('',(1.,0.,0.)); +#36868=DIRECTION('',(-1.,0.,0.)); +#36869=DIRECTION('',(0.,0.,1.)); +#36870=DIRECTION('',(-1.,0.,0.)); +#36871=DIRECTION('',(0.,0.,1.)); +#36872=DIRECTION('',(0.,-1.,0.)); +#36873=DIRECTION('',(0.,1.,0.)); +#36874=DIRECTION('',(0.,1.,0.)); +#36875=DIRECTION('',(0.,0.,-1.)); +#36876=DIRECTION('',(0.,1.,0.)); +#36877=DIRECTION('',(0.,1.,0.)); +#36878=DIRECTION('',(0.,1.,0.)); +#36879=DIRECTION('',(1.,0.,0.)); +#36880=DIRECTION('',(0.,0.,-1.)); +#36881=DIRECTION('',(0.,1.,0.)); +#36882=DIRECTION('',(1.,0.,0.)); +#36883=DIRECTION('',(0.,0.,-1.)); +#36884=DIRECTION('',(0.,-1.,0.)); +#36885=DIRECTION('',(0.,-1.,0.)); +#36886=DIRECTION('',(0.,-1.,0.)); +#36887=DIRECTION('',(0.,0.,1.)); +#36888=DIRECTION('',(0.,-1.,0.)); +#36889=DIRECTION('',(0.,-1.,0.)); +#36890=DIRECTION('',(0.,1.,0.)); +#36891=DIRECTION('',(0.,0.,1.)); +#36892=DIRECTION('',(0.,0.,-1.)); +#36893=DIRECTION('',(-1.,0.,0.)); +#36894=DIRECTION('',(0.,0.,-1.)); +#36895=DIRECTION('',(1.,0.,0.)); +#36896=DIRECTION('',(0.,1.,0.)); +#36897=DIRECTION('',(0.,0.,1.)); +#36898=DIRECTION('',(0.,0.,-1.)); +#36899=DIRECTION('',(1.,0.,0.)); +#36900=DIRECTION('',(0.,0.,-1.)); +#36901=DIRECTION('',(1.,0.,0.)); +#36902=DIRECTION('',(-1.,0.,0.)); +#36903=DIRECTION('',(0.,0.,1.)); +#36904=DIRECTION('',(-1.,0.,0.)); +#36905=DIRECTION('',(0.,0.,1.)); +#36906=DIRECTION('',(0.,-1.,0.)); +#36907=DIRECTION('',(0.,1.,0.)); +#36908=DIRECTION('',(0.,1.,0.)); +#36909=DIRECTION('',(0.,0.,-1.)); +#36910=DIRECTION('',(0.,1.,0.)); +#36911=DIRECTION('',(0.,1.,0.)); +#36912=DIRECTION('',(0.,1.,0.)); +#36913=DIRECTION('',(1.,0.,0.)); +#36914=DIRECTION('',(0.,0.,-1.)); +#36915=DIRECTION('',(0.,1.,0.)); +#36916=DIRECTION('',(1.,0.,0.)); +#36917=DIRECTION('',(0.,0.,-1.)); +#36918=DIRECTION('',(0.,-1.,0.)); +#36919=DIRECTION('',(0.,-1.,0.)); +#36920=DIRECTION('',(0.,-1.,0.)); +#36921=DIRECTION('',(0.,0.,1.)); +#36922=DIRECTION('',(0.,-1.,0.)); +#36923=DIRECTION('',(0.,-1.,0.)); +#36924=DIRECTION('',(0.,1.,0.)); +#36925=DIRECTION('',(0.,0.,1.)); +#36926=DIRECTION('',(0.,0.,-1.)); +#36927=DIRECTION('',(-1.,0.,0.)); +#36928=DIRECTION('',(0.,0.,-1.)); +#36929=DIRECTION('',(1.,0.,0.)); +#36930=DIRECTION('',(0.,1.,0.)); +#36931=DIRECTION('',(0.,0.,1.)); +#36932=DIRECTION('',(0.,0.,-1.)); +#36933=DIRECTION('',(1.,0.,0.)); +#36934=DIRECTION('',(0.,0.,-1.)); +#36935=DIRECTION('',(1.,0.,0.)); +#36936=DIRECTION('',(-1.,0.,0.)); +#36937=DIRECTION('',(0.,0.,1.)); +#36938=DIRECTION('',(-1.,0.,0.)); +#36939=DIRECTION('',(0.,0.,1.)); +#36940=DIRECTION('',(0.,-1.,0.)); +#36941=DIRECTION('',(0.,1.,0.)); +#36942=DIRECTION('',(0.,1.,0.)); +#36943=DIRECTION('',(0.,0.,-1.)); +#36944=DIRECTION('',(0.,1.,0.)); +#36945=DIRECTION('',(0.,1.,0.)); +#36946=DIRECTION('',(0.,1.,0.)); +#36947=DIRECTION('',(1.,0.,0.)); +#36948=DIRECTION('',(0.,0.,-1.)); +#36949=DIRECTION('',(0.,1.,0.)); +#36950=DIRECTION('',(1.,0.,0.)); +#36951=DIRECTION('',(0.,0.,-1.)); +#36952=DIRECTION('',(0.,-1.,0.)); +#36953=DIRECTION('',(0.,-1.,0.)); +#36954=DIRECTION('',(0.,-1.,0.)); +#36955=DIRECTION('',(0.,0.,1.)); +#36956=DIRECTION('',(0.,-1.,0.)); +#36957=DIRECTION('',(0.,-1.,0.)); +#36958=DIRECTION('',(0.,1.,0.)); +#36959=DIRECTION('',(0.,0.,1.)); +#36960=DIRECTION('',(0.,0.,-1.)); +#36961=DIRECTION('',(-1.,0.,0.)); +#36962=DIRECTION('',(0.,0.,-1.)); +#36963=DIRECTION('',(1.,0.,0.)); +#36964=DIRECTION('',(0.,1.,0.)); +#36965=DIRECTION('',(0.,0.,1.)); +#36966=DIRECTION('',(0.,0.,-1.)); +#36967=DIRECTION('',(1.,0.,0.)); +#36968=DIRECTION('',(0.,0.,-1.)); +#36969=DIRECTION('',(1.,0.,0.)); +#36970=DIRECTION('',(-1.,0.,0.)); +#36971=DIRECTION('',(0.,0.,1.)); +#36972=DIRECTION('',(-1.,0.,0.)); +#36973=DIRECTION('',(0.,0.,1.)); +#36974=DIRECTION('',(0.,-1.,0.)); +#36975=DIRECTION('',(0.,1.,0.)); +#36976=DIRECTION('',(0.,1.,0.)); +#36977=DIRECTION('',(0.,0.,-1.)); +#36978=DIRECTION('',(0.,1.,0.)); +#36979=DIRECTION('',(0.,1.,0.)); +#36980=DIRECTION('',(0.,1.,0.)); +#36981=DIRECTION('',(1.,0.,0.)); +#36982=DIRECTION('',(0.,0.,-1.)); +#36983=DIRECTION('',(0.,1.,0.)); +#36984=DIRECTION('',(1.,0.,0.)); +#36985=DIRECTION('',(0.,0.,-1.)); +#36986=DIRECTION('',(0.,-1.,0.)); +#36987=DIRECTION('',(0.,-1.,0.)); +#36988=DIRECTION('',(0.,-1.,0.)); +#36989=DIRECTION('',(0.,0.,1.)); +#36990=DIRECTION('',(0.,-1.,0.)); +#36991=DIRECTION('',(0.,-1.,0.)); +#36992=DIRECTION('',(0.,1.,0.)); +#36993=DIRECTION('',(0.,0.,1.)); +#36994=DIRECTION('',(0.,0.,-1.)); +#36995=DIRECTION('',(-1.,0.,0.)); +#36996=DIRECTION('',(0.,0.,-1.)); +#36997=DIRECTION('',(1.,0.,0.)); +#36998=DIRECTION('',(0.,1.,0.)); +#36999=DIRECTION('',(0.,0.,1.)); +#37000=DIRECTION('',(0.,0.,-1.)); +#37001=DIRECTION('',(1.,0.,0.)); +#37002=DIRECTION('',(0.,0.,-1.)); +#37003=DIRECTION('',(1.,0.,0.)); +#37004=DIRECTION('',(-1.,0.,0.)); +#37005=DIRECTION('',(0.,0.,1.)); +#37006=DIRECTION('',(-1.,0.,0.)); +#37007=DIRECTION('',(0.,0.,1.)); +#37008=DIRECTION('',(0.,-1.,0.)); +#37009=DIRECTION('',(0.,1.,0.)); +#37010=DIRECTION('',(0.,1.,0.)); +#37011=DIRECTION('',(0.,0.,-1.)); +#37012=DIRECTION('',(0.,1.,0.)); +#37013=DIRECTION('',(0.,1.,0.)); +#37014=DIRECTION('',(0.,1.,0.)); +#37015=DIRECTION('',(1.,0.,0.)); +#37016=DIRECTION('',(0.,0.,-1.)); +#37017=DIRECTION('',(0.,1.,0.)); +#37018=DIRECTION('',(1.,0.,0.)); +#37019=DIRECTION('',(0.,0.,-1.)); +#37020=DIRECTION('',(0.,-1.,0.)); +#37021=DIRECTION('',(0.,-1.,0.)); +#37022=DIRECTION('',(0.,-1.,0.)); +#37023=DIRECTION('',(0.,0.,1.)); +#37024=DIRECTION('',(0.,-1.,0.)); +#37025=DIRECTION('',(0.,-1.,0.)); +#37026=DIRECTION('',(0.,1.,0.)); +#37027=DIRECTION('',(0.,0.,1.)); +#37028=DIRECTION('',(0.,0.,-1.)); +#37029=DIRECTION('',(-1.,0.,0.)); +#37030=DIRECTION('',(0.,0.,-1.)); +#37031=DIRECTION('',(1.,0.,0.)); +#37032=DIRECTION('',(0.,1.,0.)); +#37033=DIRECTION('',(0.,0.,1.)); +#37034=DIRECTION('',(0.,0.,-1.)); +#37035=DIRECTION('',(1.,0.,0.)); +#37036=DIRECTION('',(0.,0.,-1.)); +#37037=DIRECTION('',(1.,0.,0.)); +#37038=DIRECTION('',(-1.,0.,0.)); +#37039=DIRECTION('',(0.,0.,1.)); +#37040=DIRECTION('',(-1.,0.,0.)); +#37041=DIRECTION('',(0.,0.,1.)); +#37042=DIRECTION('',(0.,-1.,0.)); +#37043=DIRECTION('',(0.,1.,0.)); +#37044=DIRECTION('',(0.,1.,0.)); +#37045=DIRECTION('',(0.,0.,-1.)); +#37046=DIRECTION('',(0.,1.,0.)); +#37047=DIRECTION('',(0.,1.,0.)); +#37048=DIRECTION('',(0.,1.,0.)); +#37049=DIRECTION('',(1.,0.,0.)); +#37050=DIRECTION('',(0.,0.,-1.)); +#37051=DIRECTION('',(0.,1.,0.)); +#37052=DIRECTION('',(1.,0.,0.)); +#37053=DIRECTION('',(0.,0.,-1.)); +#37054=DIRECTION('',(0.,-1.,0.)); +#37055=DIRECTION('',(0.,-1.,0.)); +#37056=DIRECTION('',(0.,-1.,0.)); +#37057=DIRECTION('',(0.,0.,1.)); +#37058=DIRECTION('',(0.,-1.,0.)); +#37059=DIRECTION('',(0.,-1.,0.)); +#37060=DIRECTION('',(0.,1.,0.)); +#37061=DIRECTION('',(0.,0.,1.)); +#37062=DIRECTION('',(0.,0.,-1.)); +#37063=DIRECTION('',(-1.,0.,0.)); +#37064=DIRECTION('',(0.,0.,-1.)); +#37065=DIRECTION('',(1.,0.,0.)); +#37066=DIRECTION('',(0.,1.,0.)); +#37067=DIRECTION('',(0.,0.,1.)); +#37068=DIRECTION('',(0.,0.,-1.)); +#37069=DIRECTION('',(1.,0.,0.)); +#37070=DIRECTION('',(0.,0.,-1.)); +#37071=DIRECTION('',(1.,0.,0.)); +#37072=DIRECTION('',(-1.,0.,0.)); +#37073=DIRECTION('',(0.,0.,1.)); +#37074=DIRECTION('',(-1.,0.,0.)); +#37075=DIRECTION('',(0.,0.,1.)); +#37076=DIRECTION('',(0.,-1.,0.)); +#37077=DIRECTION('',(0.,1.,0.)); +#37078=DIRECTION('',(0.,1.,0.)); +#37079=DIRECTION('',(0.,0.,-1.)); +#37080=DIRECTION('',(0.,1.,0.)); +#37081=DIRECTION('',(0.,1.,0.)); +#37082=DIRECTION('',(0.,1.,0.)); +#37083=DIRECTION('',(1.,0.,0.)); +#37084=DIRECTION('',(0.,0.,-1.)); +#37085=DIRECTION('',(0.,1.,0.)); +#37086=DIRECTION('',(1.,0.,0.)); +#37087=DIRECTION('',(0.,0.,-1.)); +#37088=DIRECTION('',(0.,-1.,0.)); +#37089=DIRECTION('',(0.,-1.,0.)); +#37090=DIRECTION('',(0.,-1.,0.)); +#37091=DIRECTION('',(0.,0.,1.)); +#37092=DIRECTION('',(0.,-1.,0.)); +#37093=DIRECTION('',(0.,-1.,0.)); +#37094=DIRECTION('',(1.,0.,0.)); +#37095=DIRECTION('',(0.,0.,-1.)); +#37096=DIRECTION('',(0.,0.,-1.)); +#37097=DIRECTION('',(0.,1.,0.)); +#37098=DIRECTION('',(1.,0.,0.)); +#37099=DIRECTION('',(0.,0.,-1.)); +#37100=DIRECTION('',(0.,-1.,0.)); +#37101=DIRECTION('',(0.,0.,-1.)); +#37102=DIRECTION('',(0.,-1.,0.)); +#37103=DIRECTION('',(0.,-1.,0.)); +#37104=DIRECTION('',(0.,0.,1.)); +#37105=DIRECTION('',(0.,-1.,0.)); +#37106=DIRECTION('',(0.,-1.,0.)); +#37107=DIRECTION('',(0.,1.,0.)); +#37108=DIRECTION('',(0.,0.,1.)); +#37109=DIRECTION('',(0.,0.,-1.)); +#37110=DIRECTION('',(-1.,0.,0.)); +#37111=DIRECTION('',(1.,0.,0.)); +#37112=DIRECTION('',(0.,1.,0.)); +#37113=DIRECTION('',(0.,0.,1.)); +#37114=DIRECTION('',(1.,0.,0.)); +#37115=DIRECTION('',(0.,0.,-1.)); +#37116=DIRECTION('',(1.,0.,0.)); +#37117=DIRECTION('',(-1.,0.,0.)); +#37118=DIRECTION('',(0.,0.,1.)); +#37119=DIRECTION('',(-1.,0.,0.)); +#37120=DIRECTION('',(0.,0.,1.)); +#37121=DIRECTION('',(0.,-1.,0.)); +#37122=DIRECTION('',(0.,1.,0.)); +#37123=DIRECTION('',(0.,1.,0.)); +#37124=DIRECTION('',(0.,0.,-1.)); +#37125=DIRECTION('',(0.,1.,0.)); +#37126=DIRECTION('',(0.,1.,0.)); +#37127=DIRECTION('',(0.,1.,0.)); +#37128=DIRECTION('',(0.,0.,-1.)); +#37129=DIRECTION('',(-1.,0.,0.)); +#37130=DIRECTION('',(-1.,0.,0.)); +#37131=DIRECTION('',(-0.37139068467776,0.928476687555797,0.)); +#37132=DIRECTION('',(1.,0.,0.)); +#37133=DIRECTION('',(-0.707106781186547,-0.707106781186548,0.)); +#37134=DIRECTION('',(0.,-1.,0.)); +#37135=DIRECTION('',(0.,0.,-1.)); +#37136=DIRECTION('',(-1.,0.,0.)); +#37137=DIRECTION('',(-1.,0.,0.)); +#37138=DIRECTION('',(0.,0.,-1.)); +#37139=DIRECTION('',(-1.,0.,0.)); +#37140=DIRECTION('',(-1.,0.,0.)); +#37141=DIRECTION('',(0.,0.,-1.)); +#37142=DIRECTION('',(-1.,0.,0.)); +#37143=DIRECTION('',(-1.,0.,0.)); +#37144=DIRECTION('',(0.,0.,-1.)); +#37145=DIRECTION('',(-1.,0.,0.)); +#37146=DIRECTION('',(-1.,0.,0.)); +#37147=DIRECTION('',(0.,0.,-1.)); +#37148=DIRECTION('',(-1.,0.,0.)); +#37149=DIRECTION('',(-1.,0.,0.)); +#37150=DIRECTION('',(0.,0.,-1.)); +#37151=DIRECTION('',(-1.,0.,0.)); +#37152=DIRECTION('',(-1.,0.,0.)); +#37153=DIRECTION('',(0.,0.,-1.)); +#37154=DIRECTION('',(-1.,0.,0.)); +#37155=DIRECTION('',(-1.,0.,0.)); +#37156=DIRECTION('',(0.,0.,-1.)); +#37157=DIRECTION('',(-1.,0.,0.)); +#37158=DIRECTION('',(-1.,0.,0.)); +#37159=DIRECTION('',(0.,0.,-1.)); +#37160=DIRECTION('',(-1.,0.,0.)); +#37161=DIRECTION('',(-1.,0.,0.)); +#37162=DIRECTION('',(0.,0.,-1.)); +#37163=DIRECTION('',(-1.,0.,0.)); +#37164=DIRECTION('',(-1.,0.,0.)); +#37165=DIRECTION('',(0.,0.,-1.)); +#37166=DIRECTION('',(-1.,0.,0.)); +#37167=DIRECTION('',(-1.,0.,0.)); +#37168=DIRECTION('',(0.,0.,-1.)); +#37169=DIRECTION('',(-1.,0.,0.)); +#37170=DIRECTION('',(-1.,0.,0.)); +#37171=DIRECTION('',(0.,0.,-1.)); +#37172=DIRECTION('',(-1.,0.,0.)); +#37173=DIRECTION('',(-1.,0.,0.)); +#37174=DIRECTION('',(0.,0.,-1.)); +#37175=DIRECTION('',(-1.,0.,0.)); +#37176=DIRECTION('',(-1.,0.,0.)); +#37177=DIRECTION('',(0.,0.,-1.)); +#37178=DIRECTION('',(-1.,0.,0.)); +#37179=DIRECTION('',(-1.,0.,0.)); +#37180=DIRECTION('',(0.,0.,-1.)); +#37181=DIRECTION('',(-1.,0.,0.)); +#37182=DIRECTION('',(-1.,0.,0.)); +#37183=DIRECTION('',(0.,0.,-1.)); +#37184=DIRECTION('',(-1.,0.,0.)); +#37185=DIRECTION('',(-1.,0.,0.)); +#37186=DIRECTION('',(0.,0.,-1.)); +#37187=DIRECTION('',(-1.,0.,0.)); +#37188=DIRECTION('',(-1.,0.,0.)); +#37189=DIRECTION('',(0.,0.,-1.)); +#37190=DIRECTION('',(-1.,0.,0.)); +#37191=DIRECTION('',(-1.,0.,0.)); +#37192=DIRECTION('',(0.,0.,-1.)); +#37193=DIRECTION('',(-1.,0.,0.)); +#37194=DIRECTION('',(0.,1.,0.)); +#37195=DIRECTION('',(-0.707106781186547,0.707106781186548,0.)); +#37196=DIRECTION('',(1.,0.,0.)); +#37197=DIRECTION('',(-0.37139068467776,-0.928476687555797,0.)); +#37198=DIRECTION('',(-1.,0.,0.)); +#37199=DIRECTION('',(0.,0.,-1.)); +#37200=DIRECTION('',(-1.,0.,0.)); +#37201=DIRECTION('',(-1.,0.,0.)); +#37202=DIRECTION('',(0.,-1.,0.)); +#37203=DIRECTION('',(1.,0.,0.)); +#37204=DIRECTION('',(-0.37139068467776,0.928476687555797,0.)); +#37205=DIRECTION('',(0.,0.,-1.)); +#37206=DIRECTION('',(-1.,0.,0.)); +#37207=DIRECTION('',(-1.,0.,0.)); +#37208=DIRECTION('',(0.,0.,-1.)); +#37209=DIRECTION('',(-1.,0.,0.)); +#37210=DIRECTION('',(-1.,0.,0.)); +#37211=DIRECTION('',(0.,0.,-1.)); +#37212=DIRECTION('',(-1.,0.,0.)); +#37213=DIRECTION('',(-1.,0.,0.)); +#37214=DIRECTION('',(0.,0.,-1.)); +#37215=DIRECTION('',(-1.,0.,0.)); +#37216=DIRECTION('',(-1.,0.,0.)); +#37217=DIRECTION('',(0.,0.,-1.)); +#37218=DIRECTION('',(-1.,0.,0.)); +#37219=DIRECTION('',(-1.,0.,0.)); +#37220=DIRECTION('',(0.,0.,-1.)); +#37221=DIRECTION('',(-1.,0.,0.)); +#37222=DIRECTION('',(-1.,0.,0.)); +#37223=DIRECTION('',(0.,0.,-1.)); +#37224=DIRECTION('',(-1.,0.,0.)); +#37225=DIRECTION('',(-1.,0.,0.)); +#37226=DIRECTION('',(0.,0.,-1.)); +#37227=DIRECTION('',(-1.,0.,0.)); +#37228=DIRECTION('',(-1.,0.,0.)); +#37229=DIRECTION('',(0.,0.,-1.)); +#37230=DIRECTION('',(-1.,0.,0.)); +#37231=DIRECTION('',(-1.,0.,0.)); +#37232=DIRECTION('',(0.,0.,-1.)); +#37233=DIRECTION('',(-1.,0.,0.)); +#37234=DIRECTION('',(-1.,0.,0.)); +#37235=DIRECTION('',(0.,0.,-1.)); +#37236=DIRECTION('',(-1.,0.,0.)); +#37237=DIRECTION('',(-1.,0.,0.)); +#37238=DIRECTION('',(0.,0.,-1.)); +#37239=DIRECTION('',(-1.,0.,0.)); +#37240=DIRECTION('',(-1.,0.,0.)); +#37241=DIRECTION('',(0.,0.,-1.)); +#37242=DIRECTION('',(-1.,0.,0.)); +#37243=DIRECTION('',(-1.,0.,0.)); +#37244=DIRECTION('',(0.,0.,-1.)); +#37245=DIRECTION('',(-1.,0.,0.)); +#37246=DIRECTION('',(-1.,0.,0.)); +#37247=DIRECTION('',(0.,0.,-1.)); +#37248=DIRECTION('',(-1.,0.,0.)); +#37249=DIRECTION('',(-1.,0.,0.)); +#37250=DIRECTION('',(0.,0.,-1.)); +#37251=DIRECTION('',(-1.,0.,0.)); +#37252=DIRECTION('',(-1.,0.,0.)); +#37253=DIRECTION('',(0.,0.,-1.)); +#37254=DIRECTION('',(-1.,0.,0.)); +#37255=DIRECTION('',(-1.,0.,0.)); +#37256=DIRECTION('',(0.,0.,-1.)); +#37257=DIRECTION('',(-1.,0.,0.)); +#37258=DIRECTION('',(-1.,0.,0.)); +#37259=DIRECTION('',(0.,0.,-1.)); +#37260=DIRECTION('',(-1.,0.,0.)); +#37261=DIRECTION('',(-1.,0.,0.)); +#37262=DIRECTION('',(0.,0.,-1.)); +#37263=DIRECTION('',(-1.,0.,0.)); +#37264=DIRECTION('',(-1.,0.,0.)); +#37265=DIRECTION('',(-0.37139068467776,-0.928476687555797,0.)); +#37266=DIRECTION('',(1.,0.,0.)); +#37267=DIRECTION('',(0.,1.,0.)); +#37268=DIRECTION('',(0.,-1.,0.)); +#37269=DIRECTION('',(0.,0.,-1.)); +#37270=DIRECTION('',(0.,0.,-1.)); +#37271=DIRECTION('',(0.,-1.,0.)); +#37272=DIRECTION('',(0.,0.,-1.)); +#37273=DIRECTION('',(0.,-1.,0.)); +#37274=DIRECTION('',(0.,0.,-1.)); +#37275=DIRECTION('',(0.,-1.,0.)); +#37276=DIRECTION('',(0.,0.,-1.)); +#37277=DIRECTION('',(0.,-1.,0.)); +#37278=DIRECTION('',(0.,0.,-1.)); +#37279=DIRECTION('',(0.,-1.,0.)); +#37280=DIRECTION('',(0.,0.,-1.)); +#37281=DIRECTION('',(0.,-1.,0.)); +#37282=DIRECTION('',(0.,0.,-1.)); +#37283=DIRECTION('',(0.,-1.,0.)); +#37284=DIRECTION('',(0.,0.,-1.)); +#37285=DIRECTION('',(0.,-1.,0.)); +#37286=DIRECTION('',(0.,0.,-1.)); +#37287=DIRECTION('',(0.,-1.,0.)); +#37288=DIRECTION('',(0.,0.,-1.)); +#37289=DIRECTION('',(0.,-1.,0.)); +#37290=DIRECTION('',(0.,0.,-1.)); +#37291=DIRECTION('',(0.,-1.,0.)); +#37292=DIRECTION('',(0.,0.,-1.)); +#37293=DIRECTION('',(0.,-1.,0.)); +#37294=DIRECTION('',(0.,0.,-1.)); +#37295=DIRECTION('',(0.,-1.,0.)); +#37296=DIRECTION('',(0.,0.,-1.)); +#37297=DIRECTION('',(0.,-1.,0.)); +#37298=DIRECTION('',(0.,0.,-1.)); +#37299=DIRECTION('',(0.,-1.,0.)); +#37300=DIRECTION('',(0.,0.,-1.)); +#37301=DIRECTION('',(0.,-1.,0.)); +#37302=DIRECTION('',(0.,0.,-1.)); +#37303=DIRECTION('',(0.,-1.,0.)); +#37304=DIRECTION('',(0.,0.,-1.)); +#37305=DIRECTION('',(0.,-1.,0.)); +#37306=DIRECTION('',(0.,0.,-1.)); +#37307=DIRECTION('',(0.,-1.,0.)); +#37308=DIRECTION('',(0.,0.,-1.)); +#37309=DIRECTION('',(0.,-1.,0.)); +#37310=DIRECTION('',(0.,0.,-1.)); +#37311=DIRECTION('',(0.,0.,-1.)); +#37312=DIRECTION('',(0.,0.,1.)); +#37313=DIRECTION('',(1.,0.,0.)); +#37314=DIRECTION('',(-1.,0.,0.)); +#37315=DIRECTION('',(0.,1.,0.)); +#37316=DIRECTION('',(0.,1.,0.)); +#37317=DIRECTION('',(0.,0.,1.)); +#37318=DIRECTION('',(1.,0.,0.)); +#37319=DIRECTION('',(-1.,0.,0.)); +#37320=DIRECTION('',(0.,1.,0.)); +#37321=DIRECTION('',(0.,1.,0.)); +#37322=DIRECTION('',(0.,0.,1.)); +#37323=DIRECTION('',(1.,0.,0.)); +#37324=DIRECTION('',(-1.,0.,0.)); +#37325=DIRECTION('',(0.,1.,0.)); +#37326=DIRECTION('',(0.,1.,0.)); +#37327=DIRECTION('',(0.,0.,1.)); +#37328=DIRECTION('',(1.,0.,0.)); +#37329=DIRECTION('',(-1.,0.,0.)); +#37330=DIRECTION('',(0.,1.,0.)); +#37331=DIRECTION('',(0.,1.,0.)); +#37332=DIRECTION('',(0.,0.,1.)); +#37333=DIRECTION('',(1.,0.,0.)); +#37334=DIRECTION('',(-1.,0.,0.)); +#37335=DIRECTION('',(0.,1.,0.)); +#37336=DIRECTION('',(0.,1.,0.)); +#37337=DIRECTION('',(0.,0.,1.)); +#37338=DIRECTION('',(1.,0.,0.)); +#37339=DIRECTION('',(-1.,0.,0.)); +#37340=DIRECTION('',(0.,1.,0.)); +#37341=DIRECTION('',(0.,1.,0.)); +#37342=DIRECTION('',(0.,0.,1.)); +#37343=DIRECTION('',(1.,0.,0.)); +#37344=DIRECTION('',(-1.,0.,0.)); +#37345=DIRECTION('',(0.,1.,0.)); +#37346=DIRECTION('',(0.,1.,0.)); +#37347=DIRECTION('',(0.,0.,-1.)); +#37348=DIRECTION('',(-1.,0.,0.)); +#37349=DIRECTION('',(0.,-1.,0.)); +#37350=DIRECTION('',(-1.,0.,0.)); +#37351=DIRECTION('',(0.,1.,0.)); +#37352=DIRECTION('',(0.,0.,-1.)); +#37353=DIRECTION('',(-1.,0.,0.)); +#37354=DIRECTION('',(-1.,0.,0.)); +#37355=DIRECTION('',(0.,1.,0.)); +#37356=DIRECTION('',(0.,1.,0.)); +#37357=DIRECTION('',(0.,0.,-1.)); +#37358=DIRECTION('',(-1.,0.,0.)); +#37359=DIRECTION('',(-1.,0.,0.)); +#37360=DIRECTION('',(0.,1.,0.)); +#37361=DIRECTION('',(0.,1.,0.)); +#37362=DIRECTION('',(0.,0.,-1.)); +#37363=DIRECTION('',(-1.,0.,0.)); +#37364=DIRECTION('',(-1.,0.,0.)); +#37365=DIRECTION('',(0.,1.,0.)); +#37366=DIRECTION('',(0.,1.,0.)); +#37367=DIRECTION('',(0.,0.,-1.)); +#37368=DIRECTION('',(-1.,0.,0.)); +#37369=DIRECTION('',(-1.,0.,0.)); +#37370=DIRECTION('',(0.,1.,0.)); +#37371=DIRECTION('',(0.,1.,0.)); +#37372=DIRECTION('',(0.,0.,-1.)); +#37373=DIRECTION('',(-1.,0.,0.)); +#37374=DIRECTION('',(-1.,0.,0.)); +#37375=DIRECTION('',(0.,1.,0.)); +#37376=DIRECTION('',(0.,1.,0.)); +#37377=DIRECTION('',(0.,0.,-1.)); +#37378=DIRECTION('',(-1.,0.,0.)); +#37379=DIRECTION('',(-1.,0.,0.)); +#37380=DIRECTION('',(0.,1.,0.)); +#37381=DIRECTION('',(0.,1.,0.)); +#37382=DIRECTION('',(0.,0.,-1.)); +#37383=DIRECTION('',(-1.,0.,0.)); +#37384=DIRECTION('',(-1.,0.,0.)); +#37385=DIRECTION('',(0.,1.,0.)); +#37386=DIRECTION('',(0.,-1.,0.)); +#37387=DIRECTION('',(0.707106781186548,-0.707106781186547,0.)); +#37388=DIRECTION('',(0.707106781186547,0.707106781186548,0.)); +#37389=DIRECTION('',(-0.580786603962195,-0.580786603962196,0.570415498839329)); +#37390=DIRECTION('',(0.,0.,-1.)); +#37391=DIRECTION('',(0.580786603962195,0.580786603962196,0.570415498839329)); +#37392=DIRECTION('',(-0.577350269189625,-0.577350269189626,0.577350269189626)); +#37393=DIRECTION('',(0.,0.,-1.)); +#37394=DIRECTION('',(-0.707106781186548,-0.707106781186547,0.)); +#37395=DIRECTION('',(0.707106781186547,-0.707106781186548,0.)); +#37396=DIRECTION('',(-0.580786603962195,0.580786603962196,-0.570415498839329)); +#37397=DIRECTION('',(0.,0.,-1.)); +#37398=DIRECTION('',(-0.577350269189625,0.577350269189626,-0.577350269189626)); +#37399=DIRECTION('',(0.580786603962195,-0.580786603962196,-0.570415498839329)); +#37400=DIRECTION('',(0.,0.,-1.)); +#37401=DIRECTION('',(0.,-1.,0.)); +#37402=DIRECTION('',(0.,0.,-1.)); +#37403=DIRECTION('',(-1.,0.,0.)); +#37404=DIRECTION('',(1.,0.,0.)); +#37405=DIRECTION('',(0.,0.,-1.)); +#37406=DIRECTION('',(0.928476687555797,-0.37139068467776,0.)); +#37407=DIRECTION('',(0.37139068467776,0.928476687555797,0.)); +#37408=DIRECTION('',(-0.274423257190994,-0.686058125141297,0.673807186693859)); +#37409=DIRECTION('',(0.274423257190994,0.686058125141297,0.673807186693859)); +#37410=DIRECTION('',(-0.928476687555797,-0.37139068467776,0.)); +#37411=DIRECTION('',(0.37139068467776,-0.928476687555797,0.)); +#37412=DIRECTION('',(-0.274423257190994,0.686058125141297,-0.673807186693859)); +#37413=DIRECTION('',(0.274423257190994,-0.686058125141297,-0.673807186693859)); +#37414=DIRECTION('',(0.,0.,-1.)); +#37415=DIRECTION('',(0.,-1.,0.)); +#37416=DIRECTION('',(0.,0.,-1.)); +#37417=DIRECTION('',(-1.,0.,0.)); +#37418=DIRECTION('',(1.,0.,0.)); +#37419=DIRECTION('',(-0.707106781186548,0.,0.707106781186547)); +#37420=DIRECTION('',(0.707106781186547,0.,0.707106781186548)); +#37421=DIRECTION('',(-0.573851459909649,-0.584285036535362,-0.57385145990965)); +#37422=DIRECTION('',(0.,-1.,0.)); +#37423=DIRECTION('',(0.707106781186548,0.,0.707106781186547)); +#37424=DIRECTION('',(0.707106781186547,0.,-0.707106781186548)); +#37425=DIRECTION('',(-0.573851459909649,0.584285036535362,0.57385145990965)); +#37426=DIRECTION('',(0.,-1.,0.)); +#37427=DIRECTION('',(0.,0.,1.)); +#37428=DIRECTION('',(1.,0.,0.)); +#37429=DIRECTION('',(-1.,0.,0.)); +#37430=DIRECTION('',(0.,1.,0.)); +#37431=DIRECTION('',(0.,-1.,0.)); +#37432=DIRECTION('',(4.33680868994202E-16,1.,0.)); +#37433=DIRECTION('',(0.,0.,1.)); +#37434=DIRECTION('',(1.,0.,0.)); +#37435=DIRECTION('',(0.,-1.,0.)); +#37436=DIRECTION('',(-1.,0.,0.)); +#37437=DIRECTION('',(4.33680868994202E-16,1.,0.)); +#37438=DIRECTION('',(0.,0.,1.)); +#37439=DIRECTION('',(1.,0.,0.)); +#37440=DIRECTION('',(-1.,0.,0.)); +#37441=DIRECTION('',(0.,1.,0.)); +#37442=DIRECTION('',(0.,-1.,0.)); +#37443=DIRECTION('',(0.707106781186548,0.,0.707106781186547)); +#37444=DIRECTION('',(0.707106781186547,0.,-0.707106781186548)); +#37445=DIRECTION('',(0.,0.,-1.)); +#37446=DIRECTION('',(-1.,0.,0.)); +#37447=DIRECTION('',(-1.,0.,0.)); +#37448=DIRECTION('',(0.,1.,0.)); +#37449=DIRECTION('',(0.,1.,0.)); +#37450=DIRECTION('',(2.16840434497102E-15,0.,1.)); +#37451=DIRECTION('',(1.,0.,-2.16840434497102E-15)); +#37452=DIRECTION('',(-1.,0.,2.16840434497102E-15)); +#37453=DIRECTION('',(0.,0.,-1.)); +#37454=DIRECTION('',(-1.,0.,0.)); +#37455=DIRECTION('',(0.,-1.,0.)); +#37456=DIRECTION('',(-1.,0.,0.)); +#37457=DIRECTION('',(0.,0.,1.)); +#37458=DIRECTION('',(0.,0.,1.)); +#37459=DIRECTION('',(1.,0.,0.)); +#37460=DIRECTION('',(-1.,0.,0.)); +#37461=DIRECTION('',(0.,1.,0.)); +#37462=DIRECTION('',(0.,1.,0.)); +#37463=DIRECTION('',(1.,0.,0.)); +#37464=DIRECTION('',(0.,0.,-1.)); +#37465=DIRECTION('',(0.,0.,1.)); +#37466=DIRECTION('',(0.,1.,0.)); +#37467=DIRECTION('',(0.,0.,1.)); +#37468=DIRECTION('',(0.,0.,-1.)); +#37469=DIRECTION('',(-1.,0.,0.)); +#37470=DIRECTION('',(0.,0.,1.)); +#37471=DIRECTION('',(0.,-1.,0.)); +#37472=DIRECTION('',(0.,0.,1.)); +#37473=DIRECTION('',(0.,0.,1.)); +#37474=DIRECTION('',(1.,0.,0.)); +#37475=DIRECTION('',(0.,-1.,0.)); +#37476=DIRECTION('',(-1.,0.,0.)); +#37477=DIRECTION('',(0.,1.,0.)); +#37478=DIRECTION('',(0.,0.,1.)); +#37479=DIRECTION('',(0.,0.,1.)); +#37480=DIRECTION('',(0.,1.,0.)); +#37481=DIRECTION('',(0.,0.,1.)); +#37482=DIRECTION('',(0.,0.,1.)); +#37483=DIRECTION('',(-1.,0.,0.)); +#37484=DIRECTION('',(0.,0.,1.)); +#37485=DIRECTION('',(0.,0.,-1.)); +#37486=DIRECTION('',(-1.,0.,0.)); +#37487=DIRECTION('',(0.,0.,1.)); +#37488=DIRECTION('',(0.,0.,-1.)); +#37489=DIRECTION('',(-1.,0.,0.)); +#37490=DIRECTION('',(0.,0.,1.)); +#37491=DIRECTION('',(0.,0.,-1.)); +#37492=DIRECTION('',(-1.,0.,0.)); +#37493=DIRECTION('',(0.,0.,1.)); +#37494=DIRECTION('',(0.,0.,-1.)); +#37495=DIRECTION('',(-1.,0.,0.)); +#37496=DIRECTION('',(0.,0.,1.)); +#37497=DIRECTION('',(0.,0.,-1.)); +#37498=DIRECTION('',(-1.,0.,0.)); +#37499=DIRECTION('',(0.,0.,1.)); +#37500=DIRECTION('',(0.,0.,-1.)); +#37501=DIRECTION('',(-1.,0.,0.)); +#37502=DIRECTION('',(0.,0.,1.)); +#37503=DIRECTION('',(0.,0.,-1.)); +#37504=DIRECTION('',(-1.,0.,0.)); +#37505=DIRECTION('',(0.,0.,1.)); +#37506=DIRECTION('',(-1.,0.,0.)); +#37507=DIRECTION('',(-1.,0.,0.)); +#37508=DIRECTION('',(0.,0.,1.)); +#37509=DIRECTION('',(0.,1.,0.)); +#37510=DIRECTION('',(0.,-1.,0.)); +#37511=DIRECTION('',(1.,0.,0.)); +#37512=DIRECTION('',(0.,0.,-1.)); +#37513=DIRECTION('',(0.,1.,0.)); +#37514=DIRECTION('',(0.,1.,0.)); +#37515=DIRECTION('',(0.,0.,1.)); +#37516=DIRECTION('',(1.,0.,0.)); +#37517=DIRECTION('',(-1.,4.33680868994202E-16,0.)); +#37518=DIRECTION('',(-4.33680868994202E-16,-1.,0.)); +#37519=DIRECTION('',(0.,0.,-1.)); +#37520=DIRECTION('',(0.,-1.,0.)); +#37521=DIRECTION('',(0.,0.,-1.)); +#37522=DIRECTION('',(2.60208521396521E-15,0.,1.)); +#37523=DIRECTION('',(1.,0.,0.)); +#37524=DIRECTION('',(0.,0.,-1.)); +#37525=DIRECTION('',(0.,0.,-1.)); +#37526=DIRECTION('',(0.,-1.,0.)); +#37527=DIRECTION('',(0.,0.,-1.)); +#37528=DIRECTION('',(8.67361737988404E-16,0.,-1.)); +#37529=DIRECTION('',(-1.,0.,0.)); +#37530=DIRECTION('',(0.,0.,1.)); +#37531=DIRECTION('',(0.,0.,-1.)); +#37532=DIRECTION('',(0.,1.,0.)); +#37533=DIRECTION('',(0.,1.,0.)); +#37534=DIRECTION('',(1.,0.,0.)); +#37535=DIRECTION('',(0.,0.,-1.)); +#37536=DIRECTION('',(0.,1.,0.)); +#37537=DIRECTION('',(0.,0.,-1.)); +#37538=DIRECTION('',(0.,-1.,0.)); +#37539=DIRECTION('',(0.,-1.,0.)); +#37540=DIRECTION('',(0.,0.,-1.)); +#37541=DIRECTION('',(-1.,0.,0.)); +#37542=DIRECTION('',(0.,0.,1.)); +#37543=DIRECTION('',(0.,0.,-1.)); +#37544=DIRECTION('',(-1.,0.,0.)); +#37545=DIRECTION('',(0.,0.,1.)); +#37546=DIRECTION('',(0.,0.,-1.)); +#37547=DIRECTION('',(-1.,0.,0.)); +#37548=DIRECTION('',(0.,0.,1.)); +#37549=DIRECTION('',(0.,0.,-1.)); +#37550=DIRECTION('',(-1.,0.,0.)); +#37551=DIRECTION('',(0.,0.,1.)); +#37552=DIRECTION('',(0.,0.,-1.)); +#37553=DIRECTION('',(-1.,0.,0.)); +#37554=DIRECTION('',(0.,0.,1.)); +#37555=DIRECTION('',(0.,0.,-1.)); +#37556=DIRECTION('',(-1.,0.,0.)); +#37557=DIRECTION('',(0.,0.,1.)); +#37558=DIRECTION('',(0.,0.,-1.)); +#37559=DIRECTION('',(-1.,0.,0.)); +#37560=DIRECTION('',(0.,0.,1.)); +#37561=DIRECTION('',(0.,0.,-1.)); +#37562=DIRECTION('',(-1.,0.,0.)); +#37563=DIRECTION('',(-1.,0.,0.)); +#37564=DIRECTION('',(0.,0.,1.)); +#37565=DIRECTION('',(1.,0.,0.)); +#37566=DIRECTION('',(1.,0.,0.)); +#37567=DIRECTION('',(0.,0.,-1.)); +#37568=DIRECTION('',(-1.,0.,0.)); +#37569=DIRECTION('',(0.,0.,1.)); +#37570=DIRECTION('',(0.,0.700708067553366,-0.713448108880827)); +#37571=DIRECTION('',(0.,0.713448108880827,0.700708067553366)); +#37572=DIRECTION('',(0.,0.700708067553366,-0.713448108880827)); +#37573=DIRECTION('',(0.,0.713448108880827,0.700708067553366)); +#37574=DIRECTION('',(0.,0.700708067553366,0.713448108880826)); +#37575=DIRECTION('',(0.,-0.713448108880826,0.700708067553366)); +#37576=DIRECTION('',(0.,0.700708067553366,0.713448108880826)); +#37577=DIRECTION('',(0.,-0.713448108880826,0.700708067553366)); +#37578=DIRECTION('',(0.,0.,-1.)); +#37579=DIRECTION('',(-1.,0.,0.)); +#37580=DIRECTION('',(0.,1.,0.)); +#37581=DIRECTION('',(1.,0.,0.)); +#37582=DIRECTION('',(0.,0.,-1.)); +#37583=DIRECTION('',(-1.,0.,0.)); +#37584=DIRECTION('',(0.,0.,1.)); +#37585=DIRECTION('',(0.,1.,0.)); +#37586=DIRECTION('',(0.,0.,-1.)); +#37587=DIRECTION('',(-1.,0.,0.)); +#37588=DIRECTION('',(0.,1.,0.)); +#37589=DIRECTION('',(1.,0.,0.)); +#37590=DIRECTION('',(0.,0.,-1.)); +#37591=DIRECTION('',(-1.,0.,0.)); +#37592=DIRECTION('',(0.,0.,1.)); +#37593=DIRECTION('',(0.,1.,0.)); +#37594=DIRECTION('',(0.,0.,-1.)); +#37595=DIRECTION('',(-1.,0.,0.)); +#37596=DIRECTION('',(0.,1.,0.)); +#37597=DIRECTION('',(1.,0.,0.)); +#37598=DIRECTION('',(0.,0.,-1.)); +#37599=DIRECTION('',(-1.,0.,0.)); +#37600=DIRECTION('',(0.,0.,1.)); +#37601=DIRECTION('',(0.,1.,0.)); +#37602=DIRECTION('',(0.,0.,-1.)); +#37603=DIRECTION('',(-1.,0.,0.)); +#37604=DIRECTION('',(0.,1.,0.)); +#37605=DIRECTION('',(1.,0.,0.)); +#37606=DIRECTION('',(0.,0.,-1.)); +#37607=DIRECTION('',(-1.,0.,0.)); +#37608=DIRECTION('',(0.,0.,1.)); +#37609=DIRECTION('',(0.,1.,0.)); +#37610=DIRECTION('',(0.,0.,-1.)); +#37611=DIRECTION('',(-1.,0.,0.)); +#37612=DIRECTION('',(0.,1.,0.)); +#37613=DIRECTION('',(1.,0.,0.)); +#37614=DIRECTION('',(0.,0.,-1.)); +#37615=DIRECTION('',(-1.,0.,0.)); +#37616=DIRECTION('',(0.,0.,1.)); +#37617=DIRECTION('',(0.,1.,0.)); +#37618=DIRECTION('',(0.,0.,-1.)); +#37619=DIRECTION('',(-1.,0.,0.)); +#37620=DIRECTION('',(0.,1.,0.)); +#37621=DIRECTION('',(1.,0.,0.)); +#37622=DIRECTION('',(0.,0.,-1.)); +#37623=DIRECTION('',(-1.,0.,0.)); +#37624=DIRECTION('',(0.,0.,1.)); +#37625=DIRECTION('',(0.,1.,0.)); +#37626=DIRECTION('',(0.,0.,-1.)); +#37627=DIRECTION('',(-1.,0.,0.)); +#37628=DIRECTION('',(0.,1.,0.)); +#37629=DIRECTION('',(1.,0.,0.)); +#37630=DIRECTION('',(0.,0.,-1.)); +#37631=DIRECTION('',(-1.,0.,0.)); +#37632=DIRECTION('',(0.,0.,1.)); +#37633=DIRECTION('',(0.,1.,0.)); +#37634=DIRECTION('',(0.,0.,-1.)); +#37635=DIRECTION('',(-1.,0.,0.)); +#37636=DIRECTION('',(0.,0.,1.)); +#37637=DIRECTION('',(1.,0.,0.)); +#37638=DIRECTION('',(0.,1.,0.)); +#37639=DIRECTION('',(-1.,0.,0.)); +#37640=DIRECTION('',(0.,0.,1.)); +#37641=DIRECTION('',(1.,0.,0.)); +#37642=DIRECTION('',(0.,0.,-1.)); +#37643=DIRECTION('',(0.,1.,0.)); +#37644=DIRECTION('',(0.,0.,1.)); +#37645=DIRECTION('',(1.,0.,0.)); +#37646=DIRECTION('',(0.,1.,0.)); +#37647=DIRECTION('',(-1.,0.,0.)); +#37648=DIRECTION('',(0.,0.,1.)); +#37649=DIRECTION('',(1.,0.,0.)); +#37650=DIRECTION('',(0.,0.,-1.)); +#37651=DIRECTION('',(0.,1.,0.)); +#37652=DIRECTION('',(0.,0.,1.)); +#37653=DIRECTION('',(1.,0.,0.)); +#37654=DIRECTION('',(0.,1.,0.)); +#37655=DIRECTION('',(-1.,0.,0.)); +#37656=DIRECTION('',(0.,0.,1.)); +#37657=DIRECTION('',(1.,0.,0.)); +#37658=DIRECTION('',(0.,0.,-1.)); +#37659=DIRECTION('',(0.,1.,0.)); +#37660=DIRECTION('',(0.,0.,1.)); +#37661=DIRECTION('',(1.,0.,0.)); +#37662=DIRECTION('',(0.,1.,0.)); +#37663=DIRECTION('',(-1.,0.,0.)); +#37664=DIRECTION('',(0.,0.,1.)); +#37665=DIRECTION('',(1.,0.,0.)); +#37666=DIRECTION('',(0.,0.,-1.)); +#37667=DIRECTION('',(0.,1.,0.)); +#37668=DIRECTION('',(0.,0.,1.)); +#37669=DIRECTION('',(1.,0.,0.)); +#37670=DIRECTION('',(0.,1.,0.)); +#37671=DIRECTION('',(-1.,0.,0.)); +#37672=DIRECTION('',(0.,0.,1.)); +#37673=DIRECTION('',(1.,0.,0.)); +#37674=DIRECTION('',(0.,0.,-1.)); +#37675=DIRECTION('',(0.,1.,0.)); +#37676=DIRECTION('',(0.,0.,1.)); +#37677=DIRECTION('',(1.,0.,0.)); +#37678=DIRECTION('',(0.,1.,0.)); +#37679=DIRECTION('',(-1.,0.,0.)); +#37680=DIRECTION('',(0.,0.,1.)); +#37681=DIRECTION('',(1.,0.,0.)); +#37682=DIRECTION('',(0.,0.,-1.)); +#37683=DIRECTION('',(0.,1.,0.)); +#37684=DIRECTION('',(0.,0.,1.)); +#37685=DIRECTION('',(1.,0.,0.)); +#37686=DIRECTION('',(0.,1.,0.)); +#37687=DIRECTION('',(-1.,0.,0.)); +#37688=DIRECTION('',(0.,0.,1.)); +#37689=DIRECTION('',(0.,0.,1.)); +#37690=DIRECTION('',(1.,0.,0.)); +#37691=DIRECTION('',(0.,1.,0.)); +#37692=DIRECTION('',(1.,0.,0.)); +#37693=DIRECTION('',(0.,0.,-1.)); +#37694=DIRECTION('',(0.,0.,1.)); +#37695=DIRECTION('',(1.,0.,0.)); +#37696=DIRECTION('',(0.,0.,1.)); +#37697=DIRECTION('',(1.,0.,0.)); +#37698=DIRECTION('',(0.,0.,1.)); +#37699=DIRECTION('',(1.,0.,0.)); +#37700=DIRECTION('',(0.,0.,1.)); +#37701=DIRECTION('',(1.,0.,0.)); +#37702=DIRECTION('',(0.,0.,1.)); +#37703=DIRECTION('',(1.,0.,0.)); +#37704=DIRECTION('',(0.,0.,1.)); +#37705=DIRECTION('',(1.,0.,0.)); +#37706=DIRECTION('',(0.,0.,1.)); +#37707=DIRECTION('',(1.,0.,0.)); +#37708=DIRECTION('',(0.,0.,1.)); +#37709=DIRECTION('',(1.,0.,0.)); +#37710=DIRECTION('',(0.,0.,1.)); +#37711=DIRECTION('',(1.,0.,0.)); +#37712=DIRECTION('',(0.,0.,1.)); +#37713=DIRECTION('',(1.,0.,0.)); +#37714=DIRECTION('',(0.,0.,1.)); +#37715=DIRECTION('',(1.,0.,0.)); +#37716=DIRECTION('',(0.,0.,1.)); +#37717=DIRECTION('',(1.,0.,0.)); +#37718=DIRECTION('',(0.,0.,1.)); +#37719=DIRECTION('',(1.,0.,0.)); +#37720=DIRECTION('',(0.,0.,1.)); +#37721=DIRECTION('',(1.,0.,0.)); +#37722=DIRECTION('',(0.,0.,1.)); +#37723=DIRECTION('',(1.,0.,0.)); +#37724=DIRECTION('',(0.,0.,1.)); +#37725=DIRECTION('',(1.,0.,0.)); +#37726=DIRECTION('',(0.,0.,1.)); +#37727=DIRECTION('',(1.,0.,0.)); +#37728=DIRECTION('',(0.,0.,1.)); +#37729=DIRECTION('',(1.,0.,0.)); +#37730=DIRECTION('',(0.,0.,1.)); +#37731=DIRECTION('',(1.,0.,0.)); +#37732=DIRECTION('',(0.,0.,1.)); +#37733=DIRECTION('',(1.,0.,0.)); +#37734=DIRECTION('',(0.,0.,1.)); +#37735=DIRECTION('',(1.,0.,0.)); +#37736=DIRECTION('',(0.,0.,1.)); +#37737=DIRECTION('',(1.,0.,0.)); +#37738=DIRECTION('',(0.,0.,1.)); +#37739=DIRECTION('',(1.,0.,0.)); +#37740=DIRECTION('',(0.,0.,1.)); +#37741=DIRECTION('',(1.,0.,0.)); +#37742=DIRECTION('',(0.,0.,1.)); +#37743=DIRECTION('',(1.,0.,0.)); +#37744=DIRECTION('',(0.,0.,1.)); +#37745=DIRECTION('',(1.,0.,0.)); +#37746=DIRECTION('',(0.,0.,1.)); +#37747=DIRECTION('',(1.,0.,0.)); +#37748=DIRECTION('',(0.,0.,1.)); +#37749=DIRECTION('',(1.,0.,0.)); +#37750=DIRECTION('',(0.,0.,1.)); +#37751=DIRECTION('',(1.,0.,0.)); +#37752=DIRECTION('',(0.,0.,1.)); +#37753=DIRECTION('',(1.,0.,0.)); +#37754=DIRECTION('',(0.,0.,1.)); +#37755=DIRECTION('',(1.,0.,0.)); +#37756=DIRECTION('',(0.,0.,1.)); +#37757=DIRECTION('',(1.,0.,0.)); +#37758=DIRECTION('',(0.,0.,1.)); +#37759=DIRECTION('',(1.,0.,0.)); +#37760=DIRECTION('',(0.,0.,1.)); +#37761=DIRECTION('',(1.,0.,0.)); +#37762=DIRECTION('',(0.,0.,1.)); +#37763=DIRECTION('',(1.,0.,0.)); +#37764=DIRECTION('',(0.,0.,1.)); +#37765=DIRECTION('',(1.,0.,0.)); +#37766=DIRECTION('',(0.,0.,1.)); +#37767=DIRECTION('',(1.,0.,0.)); +#37768=DIRECTION('',(0.,0.,1.)); +#37769=DIRECTION('',(1.,0.,0.)); +#37770=DIRECTION('',(0.,0.,1.)); +#37771=DIRECTION('',(1.,0.,0.)); +#37772=DIRECTION('',(0.,0.,1.)); +#37773=DIRECTION('',(1.,0.,0.)); +#37774=DIRECTION('',(0.,0.,1.)); +#37775=DIRECTION('',(1.,0.,0.)); +#37776=DIRECTION('',(-1.,0.,0.)); +#37777=DIRECTION('',(0.,0.,-1.)); +#37778=DIRECTION('',(-1.,0.,0.)); +#37779=DIRECTION('',(-1.,0.,0.)); +#37780=DIRECTION('',(-1.,0.,0.)); +#37781=DIRECTION('',(0.,0.,1.)); +#37782=DIRECTION('',(0.,0.,-1.)); +#37783=DIRECTION('',(-1.,0.,0.)); +#37784=DIRECTION('',(-1.,0.,0.)); +#37785=DIRECTION('',(0.,0.,1.)); +#37786=DIRECTION('',(1.,0.,0.)); +#37787=DIRECTION('',(-1.,0.,0.)); +#37788=DIRECTION('',(-1.,0.,0.)); +#37789=DIRECTION('',(0.,0.,1.)); +#37790=DIRECTION('',(0.,0.,-1.)); +#37791=DIRECTION('',(-1.,0.,0.)); +#37792=DIRECTION('',(-1.,0.,0.)); +#37793=DIRECTION('',(0.,0.,1.)); +#37794=DIRECTION('',(1.,0.,0.)); +#37795=DIRECTION('',(-1.,0.,0.)); +#37796=DIRECTION('',(-1.,0.,0.)); +#37797=DIRECTION('',(0.,0.,1.)); +#37798=DIRECTION('',(0.,0.,-1.)); +#37799=DIRECTION('',(-1.,0.,0.)); +#37800=DIRECTION('',(-1.,0.,0.)); +#37801=DIRECTION('',(0.,0.,1.)); +#37802=DIRECTION('',(1.,0.,0.)); +#37803=DIRECTION('',(-1.,0.,0.)); +#37804=DIRECTION('',(-1.,0.,0.)); +#37805=DIRECTION('',(0.,0.,1.)); +#37806=DIRECTION('',(0.,0.,-1.)); +#37807=DIRECTION('',(-1.,0.,0.)); +#37808=DIRECTION('',(-1.,0.,0.)); +#37809=DIRECTION('',(0.,0.,1.)); +#37810=DIRECTION('',(1.,0.,0.)); +#37811=DIRECTION('',(-1.,0.,0.)); +#37812=DIRECTION('',(-1.,0.,0.)); +#37813=DIRECTION('',(0.,0.,1.)); +#37814=DIRECTION('',(0.,0.,-1.)); +#37815=DIRECTION('',(-1.,0.,0.)); +#37816=DIRECTION('',(-1.,0.,0.)); +#37817=DIRECTION('',(0.,0.,1.)); +#37818=DIRECTION('',(1.,0.,0.)); +#37819=DIRECTION('',(-1.,0.,0.)); +#37820=DIRECTION('',(-1.,0.,0.)); +#37821=DIRECTION('',(0.,0.,1.)); +#37822=DIRECTION('',(0.,0.,-1.)); +#37823=DIRECTION('',(-1.,0.,0.)); +#37824=DIRECTION('',(-1.,0.,0.)); +#37825=DIRECTION('',(0.,0.,1.)); +#37826=DIRECTION('',(1.,0.,0.)); +#37827=DIRECTION('',(-1.,0.,0.)); +#37828=DIRECTION('',(-1.,0.,0.)); +#37829=DIRECTION('',(0.,0.,1.)); +#37830=DIRECTION('',(0.,0.,-1.)); +#37831=DIRECTION('',(-1.,0.,0.)); +#37832=DIRECTION('',(-1.,0.,0.)); +#37833=DIRECTION('',(0.,0.,1.)); +#37834=DIRECTION('',(1.,0.,0.)); +#37835=DIRECTION('',(-1.,0.,0.)); +#37836=DIRECTION('',(-1.,0.,0.)); +#37837=DIRECTION('',(0.,0.,1.)); +#37838=DIRECTION('',(0.,0.,-1.)); +#37839=DIRECTION('',(-1.,0.,0.)); +#37840=DIRECTION('',(-1.,0.,0.)); +#37841=DIRECTION('',(0.,0.,1.)); +#37842=DIRECTION('',(1.,0.,0.)); +#37843=DIRECTION('',(-1.,0.,0.)); +#37844=DIRECTION('',(-1.,0.,0.)); +#37845=DIRECTION('',(0.,0.,1.)); +#37846=DIRECTION('',(0.,0.,-1.)); +#37847=DIRECTION('',(-1.,0.,0.)); +#37848=DIRECTION('',(-1.,0.,0.)); +#37849=DIRECTION('',(0.,0.,1.)); +#37850=DIRECTION('',(1.,0.,0.)); +#37851=DIRECTION('',(-1.,0.,0.)); +#37852=DIRECTION('',(-1.,0.,0.)); +#37853=DIRECTION('',(0.,0.,1.)); +#37854=DIRECTION('',(0.,0.,-1.)); +#37855=DIRECTION('',(-1.,0.,0.)); +#37856=DIRECTION('',(-1.,0.,0.)); +#37857=DIRECTION('',(0.,0.,1.)); +#37858=DIRECTION('',(1.,0.,0.)); +#37859=DIRECTION('',(-1.,0.,0.)); +#37860=DIRECTION('',(-1.,0.,0.)); +#37861=DIRECTION('',(0.,0.,1.)); +#37862=DIRECTION('',(0.,0.,-1.)); +#37863=DIRECTION('',(-1.,0.,0.)); +#37864=DIRECTION('',(-1.,0.,0.)); +#37865=DIRECTION('',(0.,0.,1.)); +#37866=DIRECTION('',(1.,0.,0.)); +#37867=DIRECTION('',(-1.,0.,0.)); +#37868=DIRECTION('',(-1.,0.,0.)); +#37869=DIRECTION('',(0.,0.,1.)); +#37870=DIRECTION('',(0.,0.,-1.)); +#37871=DIRECTION('',(-1.,0.,0.)); +#37872=DIRECTION('',(-1.,0.,0.)); +#37873=DIRECTION('',(0.,0.,1.)); +#37874=DIRECTION('',(1.,0.,0.)); +#37875=DIRECTION('',(-1.,0.,0.)); +#37876=DIRECTION('',(-1.,0.,0.)); +#37877=DIRECTION('',(0.,0.,1.)); +#37878=DIRECTION('',(0.,0.,-1.)); +#37879=DIRECTION('',(-1.,0.,0.)); +#37880=DIRECTION('',(-1.,0.,0.)); +#37881=DIRECTION('',(0.,0.,1.)); +#37882=DIRECTION('',(1.,0.,0.)); +#37883=DIRECTION('',(-1.,0.,0.)); +#37884=DIRECTION('',(-1.,0.,0.)); +#37885=DIRECTION('',(0.,0.,1.)); +#37886=DIRECTION('',(0.,0.,-1.)); +#37887=DIRECTION('',(-1.,0.,0.)); +#37888=DIRECTION('',(-1.,0.,0.)); +#37889=DIRECTION('',(0.,0.,1.)); +#37890=DIRECTION('',(1.,0.,0.)); +#37891=DIRECTION('',(-1.,0.,0.)); +#37892=DIRECTION('',(-1.,0.,0.)); +#37893=DIRECTION('',(0.,0.,1.)); +#37894=DIRECTION('',(0.,0.,-1.)); +#37895=DIRECTION('',(-1.,0.,0.)); +#37896=DIRECTION('',(-1.,0.,0.)); +#37897=DIRECTION('',(0.,0.,1.)); +#37898=DIRECTION('',(1.,0.,0.)); +#37899=DIRECTION('',(-1.,0.,0.)); +#37900=DIRECTION('',(-1.,0.,0.)); +#37901=DIRECTION('',(0.,0.,1.)); +#37902=DIRECTION('',(0.,0.,-1.)); +#37903=DIRECTION('',(-1.,0.,0.)); +#37904=DIRECTION('',(-1.,0.,0.)); +#37905=DIRECTION('',(0.,0.,1.)); +#37906=DIRECTION('',(1.,0.,0.)); +#37907=DIRECTION('',(-1.,0.,0.)); +#37908=DIRECTION('',(-1.,0.,0.)); +#37909=DIRECTION('',(0.,0.,1.)); +#37910=DIRECTION('',(0.,0.,-1.)); +#37911=DIRECTION('',(-1.,0.,0.)); +#37912=DIRECTION('',(-1.,0.,0.)); +#37913=DIRECTION('',(0.,0.,1.)); +#37914=DIRECTION('',(1.,0.,0.)); +#37915=DIRECTION('',(-1.,0.,0.)); +#37916=DIRECTION('',(-1.,0.,0.)); +#37917=DIRECTION('',(0.,0.,1.)); +#37918=DIRECTION('',(0.,0.,-1.)); +#37919=DIRECTION('',(-1.,0.,0.)); +#37920=DIRECTION('',(-1.,0.,0.)); +#37921=DIRECTION('',(0.,0.,1.)); +#37922=DIRECTION('',(1.,0.,0.)); +#37923=DIRECTION('',(-1.,0.,0.)); +#37924=DIRECTION('',(-1.,0.,0.)); +#37925=DIRECTION('',(0.,0.,1.)); +#37926=DIRECTION('',(-1.,0.,0.)); +#37927=DIRECTION('',(0.,0.,1.)); +#37928=DIRECTION('',(-1.,0.,0.)); +#37929=DIRECTION('',(-1.,0.,0.)); +#37930=DIRECTION('',(0.,0.,-1.)); +#37931=DIRECTION('',(-1.,0.,0.)); +#37932=DIRECTION('',(0.,0.,1.)); +#37933=DIRECTION('',(1.,0.,0.)); +#37934=DIRECTION('',(-0.866025402944834,0.,0.500000001454238)); +#37935=DIRECTION('',(0.500000001454238,0.,0.866025402944834)); +#37936=DIRECTION('',(0.500000001454238,0.,0.866025402944834)); +#37937=DIRECTION('',(0.,1.,0.)); +#37938=DIRECTION('',(0.,1.,0.)); +#37939=DIRECTION('',(0.866025402944833,0.,0.500000001454239)); +#37940=DIRECTION('',(0.500000001454239,0.,-0.866025402944833)); +#37941=DIRECTION('',(0.,-1.,0.)); +#37942=DIRECTION('',(0.500000001454239,0.,-0.866025402944833)); +#37943=DIRECTION('',(0.,1.,0.)); +#37944=DIRECTION('',(0.,0.,1.)); +#37945=DIRECTION('',(1.,0.,0.)); +#37946=DIRECTION('',(0.923076923076923,0.384615384615385,0.)); +#37947=DIRECTION('',(-0.384615384615385,0.923076923076923,0.)); +#37948=DIRECTION('',(0.384615384615385,-0.923076923076923,0.)); +#37949=DIRECTION('',(0.,0.,-1.)); +#37950=DIRECTION('',(-0.923076923076923,0.384615384615385,0.)); +#37951=DIRECTION('',(-0.384615384615385,-0.923076923076923,0.)); +#37952=DIRECTION('',(0.384615384615385,0.923076923076923,0.)); +#37953=DIRECTION('',(0.,0.,1.)); +#37954=DIRECTION('',(1.,0.,0.)); +#37955=DIRECTION('',(0.,-1.,0.)); +#37956=DIRECTION('',(0.,0.,-1.)); +#37957=DIRECTION('',(0.,-1.,0.)); +#37958=DIRECTION('',(0.,0.,-1.)); +#37959=DIRECTION('',(0.,-1.,0.)); +#37960=DIRECTION('',(0.,0.,-1.)); +#37961=DIRECTION('',(0.,-1.,0.)); +#37962=DIRECTION('',(0.,0.,-1.)); +#37963=DIRECTION('',(0.,1.,0.)); +#37964=DIRECTION('',(0.,0.,1.)); +#37965=DIRECTION('',(-0.795828694120861,0.,-0.60552183248326)); +#37966=DIRECTION('',(-0.60552183248326,0.,0.795828694120861)); +#37967=DIRECTION('',(0.,1.,0.)); +#37968=DIRECTION('',(-0.60552183248326,0.,0.795828694120861)); +#37969=DIRECTION('',(0.,1.,0.)); +#37970=DIRECTION('',(0.,1.,0.)); +#37971=DIRECTION('',(0.,0.,1.)); +#37972=DIRECTION('',(0.,1.,0.)); +#37973=DIRECTION('',(1.,0.,0.)); +#37974=DIRECTION('',(0.,1.,0.)); +#37975=DIRECTION('',(-0.795828694120861,0.,0.60552183248326)); +#37976=DIRECTION('',(0.60552183248326,0.,0.795828694120861)); +#37977=DIRECTION('',(0.60552183248326,0.,0.795828694120861)); +#37978=DIRECTION('',(0.,1.,0.)); +#37979=DIRECTION('',(0.,1.,0.)); +#37980=DIRECTION('',(0.,0.,1.)); +#37981=DIRECTION('',(0.,1.,0.)); +#37982=DIRECTION('',(1.,0.,0.)); +#37983=DIRECTION('',(0.,1.,0.)); +#37984=DIRECTION('',(0.795828694120858,0.,0.605521832483264)); +#37985=DIRECTION('',(0.605521832483264,0.,-0.795828694120858)); +#37986=DIRECTION('',(0.605521832483264,0.,-0.795828694120858)); +#37987=DIRECTION('',(0.,1.,0.)); +#37988=DIRECTION('',(0.,1.,0.)); +#37989=DIRECTION('',(0.,0.,1.)); +#37990=DIRECTION('',(0.,1.,0.)); +#37991=DIRECTION('',(1.,0.,0.)); +#37992=DIRECTION('',(0.,1.,0.)); +#37993=DIRECTION('',(0.795828694120858,0.,-0.605521832483264)); +#37994=DIRECTION('',(-0.605521832483264,0.,-0.795828694120858)); +#37995=DIRECTION('',(-0.605521832483264,0.,-0.795828694120858)); +#37996=DIRECTION('',(0.,1.,0.)); +#37997=DIRECTION('',(0.,1.,0.)); +#37998=DIRECTION('',(0.,0.,1.)); +#37999=DIRECTION('',(0.,1.,0.)); +#38000=DIRECTION('',(1.,0.,0.)); +#38001=DIRECTION('',(0.,1.,0.)); +#38002=DIRECTION('',(0.,0.,1.)); +#38003=DIRECTION('',(1.,0.,0.)); +#38004=DIRECTION('',(0.,0.,-1.)); +#38005=DIRECTION('',(0.,-1.,0.)); +#38006=DIRECTION('',(0.,0.,1.)); +#38007=DIRECTION('',(0.,-1.,0.)); +#38008=DIRECTION('',(0.,-1.,0.)); +#38009=DIRECTION('',(0.,0.,-1.)); +#38010=DIRECTION('',(0.,1.,0.)); +#38011=DIRECTION('',(1.,0.,0.)); +#38012=DIRECTION('',(0.,-1.,0.)); +#38013=DIRECTION('',(0.,-1.,0.)); +#38014=DIRECTION('',(0.,0.,-1.)); +#38015=DIRECTION('',(0.,1.,0.)); +#38016=DIRECTION('',(1.,0.,0.)); +#38017=DIRECTION('',(0.,-1.,0.)); +#38018=DIRECTION('',(0.,-1.,0.)); +#38019=DIRECTION('',(0.,0.,-1.)); +#38020=DIRECTION('',(0.,1.,0.)); +#38021=DIRECTION('',(1.,0.,0.)); +#38022=DIRECTION('',(0.,-1.,0.)); +#38023=DIRECTION('',(0.,-1.,0.)); +#38024=DIRECTION('',(0.,0.,-1.)); +#38025=DIRECTION('',(0.,1.,0.)); +#38026=DIRECTION('',(1.,0.,0.)); +#38027=DIRECTION('',(0.,-1.,0.)); +#38028=DIRECTION('',(0.,-1.,0.)); +#38029=DIRECTION('',(0.,0.,-1.)); +#38030=DIRECTION('',(0.,1.,0.)); +#38031=DIRECTION('',(1.,0.,0.)); +#38032=DIRECTION('',(0.,-1.,0.)); +#38033=DIRECTION('',(-1.,0.,0.)); +#38034=DIRECTION('',(0.,0.,1.)); +#38035=DIRECTION('',(0.,0.,-1.)); +#38036=DIRECTION('',(0.,-1.,0.)); +#38037=DIRECTION('',(0.,-1.,0.)); +#38038=DIRECTION('',(0.,0.,-1.)); +#38039=DIRECTION('',(0.,1.,0.)); +#38040=DIRECTION('',(1.,0.,0.)); +#38041=DIRECTION('',(0.,-1.,0.)); +#38042=DIRECTION('',(0.,0.,1.)); +#38043=DIRECTION('',(1.,0.,0.)); +#38044=DIRECTION('',(-1.,0.,0.)); +#38045=DIRECTION('',(0.,-1.,0.)); +#38046=DIRECTION('',(0.707106781186548,0.,0.707106781186547)); +#38047=DIRECTION('',(0.707106781186547,0.,-0.707106781186548)); +#38048=DIRECTION('',(-0.707106781186547,0.,0.707106781186548)); +#38049=DIRECTION('',(0.,1.,0.)); +#38050=DIRECTION('',(0.,0.,1.)); +#38051=DIRECTION('',(1.,0.,0.)); +#38052=DIRECTION('',(0.,0.,-1.)); +#38053=DIRECTION('',(0.,-1.,0.)); +#38054=DIRECTION('',(0.,0.,1.)); +#38055=DIRECTION('',(0.,-1.,0.)); +#38056=DIRECTION('',(0.,-1.,0.)); +#38057=DIRECTION('',(0.,0.,-1.)); +#38058=DIRECTION('',(0.,1.,0.)); +#38059=DIRECTION('',(1.,0.,0.)); +#38060=DIRECTION('',(0.,-1.,0.)); +#38061=DIRECTION('',(0.,-1.,0.)); +#38062=DIRECTION('',(0.,0.,-1.)); +#38063=DIRECTION('',(0.,1.,0.)); +#38064=DIRECTION('',(1.,0.,0.)); +#38065=DIRECTION('',(0.,-1.,0.)); +#38066=DIRECTION('',(0.,-1.,0.)); +#38067=DIRECTION('',(0.,0.,-1.)); +#38068=DIRECTION('',(0.,1.,0.)); +#38069=DIRECTION('',(1.,0.,0.)); +#38070=DIRECTION('',(0.,-1.,0.)); +#38071=DIRECTION('',(0.,-1.,0.)); +#38072=DIRECTION('',(0.,0.,-1.)); +#38073=DIRECTION('',(0.,1.,0.)); +#38074=DIRECTION('',(1.,0.,0.)); +#38075=DIRECTION('',(0.,-1.,0.)); +#38076=DIRECTION('',(0.,-1.,0.)); +#38077=DIRECTION('',(0.,0.,-1.)); +#38078=DIRECTION('',(0.,1.,0.)); +#38079=DIRECTION('',(1.,0.,0.)); +#38080=DIRECTION('',(0.,-1.,0.)); +#38081=DIRECTION('',(-1.,0.,0.)); +#38082=DIRECTION('',(0.,0.,1.)); +#38083=DIRECTION('',(0.,0.,-1.)); +#38084=DIRECTION('',(0.,-1.,0.)); +#38085=DIRECTION('',(0.,-1.,0.)); +#38086=DIRECTION('',(0.,0.,-1.)); +#38087=DIRECTION('',(0.,1.,0.)); +#38088=DIRECTION('',(1.,0.,0.)); +#38089=DIRECTION('',(0.,-1.,0.)); +#38090=DIRECTION('',(0.,0.,1.)); +#38091=DIRECTION('',(1.,0.,0.)); +#38092=DIRECTION('',(-1.,0.,0.)); +#38093=DIRECTION('',(0.,-1.,0.)); +#38094=DIRECTION('',(0.,-1.,0.)); +#38095=DIRECTION('',(0.,0.,-1.)); +#38096=DIRECTION('',(0.,1.,0.)); +#38097=DIRECTION('',(1.,0.,0.)); +#38098=DIRECTION('',(0.,1.,0.)); +#38099=DIRECTION('',(0.,0.,1.)); +#38100=DIRECTION('',(0.,0.,-1.)); +#38101=DIRECTION('',(-1.,0.,0.)); +#38102=DIRECTION('',(1.,0.,0.)); +#38103=DIRECTION('',(0.,-1.,0.)); +#38104=DIRECTION('',(0.,0.,1.)); +#38105=DIRECTION('',(1.,0.,0.)); +#38106=DIRECTION('',(0.,-1.,0.)); +#38107=DIRECTION('',(-1.,0.,0.)); +#38108=DIRECTION('',(0.,1.,0.)); +#38109=DIRECTION('',(0.,0.,1.)); +#38110=DIRECTION('',(0.,1.,0.)); +#38111=DIRECTION('',(1.,0.,0.)); +#38112=DIRECTION('',(0.,0.,-1.)); +#38113=DIRECTION('',(0.,1.,0.)); +#38114=DIRECTION('',(1.,0.,0.)); +#38115=DIRECTION('',(0.,-1.,0.)); +#38116=DIRECTION('',(0.,0.,-1.)); +#38117=DIRECTION('',(0.,-1.,0.)); +#38118=DIRECTION('',(-1.,0.,0.)); +#38119=DIRECTION('',(0.,0.,1.)); +#38120=DIRECTION('',(0.,-1.,0.)); +#38121=DIRECTION('',(0.,-1.,0.)); +#38122=DIRECTION('',(0.,0.,-1.)); +#38123=DIRECTION('',(0.,0.,-1.)); +#38124=DIRECTION('',(-1.,0.,0.)); +#38125=DIRECTION('',(0.,-1.,0.)); +#38126=DIRECTION('',(1.,0.,0.)); +#38127=DIRECTION('',(0.,0.,1.)); +#38128=DIRECTION('',(1.,0.,0.)); +#38129=DIRECTION('',(-1.,0.,0.)); +#38130=DIRECTION('',(0.,-1.,0.)); +#38131=DIRECTION('',(0.,1.,0.)); +#38132=DIRECTION('',(0.,0.,1.)); +#38133=DIRECTION('',(0.,1.,0.)); +#38134=DIRECTION('',(1.,0.,0.)); +#38135=DIRECTION('',(0.,0.,1.)); +#38136=DIRECTION('',(0.,1.,0.)); +#38137=DIRECTION('',(1.,0.,0.)); +#38138=DIRECTION('',(1.,0.,0.)); +#38139=DIRECTION('',(0.,0.,-1.)); +#38140=DIRECTION('',(0.,-1.,0.)); +#38141=DIRECTION('',(0.,-1.,0.)); +#38142=DIRECTION('',(0.,-1.,0.)); +#38143=DIRECTION('',(0.,0.,-1.)); +#38144=DIRECTION('',(0.,-1.,0.)); +#38145=DIRECTION('',(0.,0.,-1.)); +#38146=DIRECTION('',(0.,0.,1.)); +#38147=DIRECTION('',(1.,0.,0.)); +#38148=DIRECTION('',(0.,0.,1.)); +#38149=DIRECTION('',(1.,0.,0.)); +#38150=DIRECTION('',(-1.,0.,0.)); +#38151=DIRECTION('',(0.,-1.,0.)); +#38152=DIRECTION('',(-1.,0.,0.)); +#38153=DIRECTION('',(0.,1.,0.)); +#38154=DIRECTION('',(-1.,6.19544098563143E-16,0.)); +#38155=DIRECTION('',(0.,-1.,0.)); +#38156=DIRECTION('',(-1.,0.,0.)); +#38157=DIRECTION('',(0.,1.,0.)); +#38158=DIRECTION('',(-1.,0.,0.)); +#38159=DIRECTION('',(0.,1.,0.)); +#38160=DIRECTION('',(-1.,0.,0.)); +#38161=DIRECTION('',(0.,-1.,0.)); +#38162=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38163=DIRECTION('',(0.,-1.,0.)); +#38164=DIRECTION('',(-1.,0.,0.)); +#38165=DIRECTION('',(0.,1.,0.)); +#38166=DIRECTION('',(-1.,0.,0.)); +#38167=DIRECTION('',(0.,1.,0.)); +#38168=DIRECTION('',(-1.,0.,0.)); +#38169=DIRECTION('',(0.,-1.,0.)); +#38170=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38171=DIRECTION('',(0.,-1.,0.)); +#38172=DIRECTION('',(-1.,0.,0.)); +#38173=DIRECTION('',(0.,1.,0.)); +#38174=DIRECTION('',(-1.,0.,0.)); +#38175=DIRECTION('',(0.,1.,0.)); +#38176=DIRECTION('',(-1.,0.,0.)); +#38177=DIRECTION('',(0.,-1.,0.)); +#38178=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38179=DIRECTION('',(0.,-1.,0.)); +#38180=DIRECTION('',(-1.,0.,0.)); +#38181=DIRECTION('',(0.,1.,0.)); +#38182=DIRECTION('',(-1.,0.,0.)); +#38183=DIRECTION('',(0.,1.,0.)); +#38184=DIRECTION('',(-1.,0.,0.)); +#38185=DIRECTION('',(0.,-1.,0.)); +#38186=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38187=DIRECTION('',(0.,-1.,0.)); +#38188=DIRECTION('',(-1.,0.,0.)); +#38189=DIRECTION('',(0.,1.,0.)); +#38190=DIRECTION('',(-1.,0.,0.)); +#38191=DIRECTION('',(0.,1.,0.)); +#38192=DIRECTION('',(-1.,0.,0.)); +#38193=DIRECTION('',(0.,-1.,0.)); +#38194=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38195=DIRECTION('',(0.,-1.,0.)); +#38196=DIRECTION('',(-1.,0.,0.)); +#38197=DIRECTION('',(0.,1.,0.)); +#38198=DIRECTION('',(-1.,0.,0.)); +#38199=DIRECTION('',(0.,1.,0.)); +#38200=DIRECTION('',(-1.,0.,0.)); +#38201=DIRECTION('',(0.,-1.,0.)); +#38202=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38203=DIRECTION('',(0.,-1.,0.)); +#38204=DIRECTION('',(-1.,0.,0.)); +#38205=DIRECTION('',(0.,1.,0.)); +#38206=DIRECTION('',(-1.,0.,0.)); +#38207=DIRECTION('',(0.,1.,0.)); +#38208=DIRECTION('',(-1.,0.,0.)); +#38209=DIRECTION('',(0.,-1.,0.)); +#38210=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38211=DIRECTION('',(0.,-1.,0.)); +#38212=DIRECTION('',(-1.,0.,0.)); +#38213=DIRECTION('',(0.,1.,0.)); +#38214=DIRECTION('',(-1.,0.,0.)); +#38215=DIRECTION('',(0.,1.,0.)); +#38216=DIRECTION('',(-1.,0.,0.)); +#38217=DIRECTION('',(0.,-1.,0.)); +#38218=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38219=DIRECTION('',(0.,-1.,0.)); +#38220=DIRECTION('',(-1.,0.,0.)); +#38221=DIRECTION('',(0.,1.,0.)); +#38222=DIRECTION('',(-1.,0.,0.)); +#38223=DIRECTION('',(0.,1.,0.)); +#38224=DIRECTION('',(-1.,0.,0.)); +#38225=DIRECTION('',(0.,-1.,0.)); +#38226=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38227=DIRECTION('',(0.,-1.,0.)); +#38228=DIRECTION('',(-1.,0.,0.)); +#38229=DIRECTION('',(0.,1.,0.)); +#38230=DIRECTION('',(-1.,0.,0.)); +#38231=DIRECTION('',(0.,1.,0.)); +#38232=DIRECTION('',(-1.,0.,0.)); +#38233=DIRECTION('',(0.,-1.,0.)); +#38234=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38235=DIRECTION('',(0.,-1.,0.)); +#38236=DIRECTION('',(-1.,0.,0.)); +#38237=DIRECTION('',(0.,1.,0.)); +#38238=DIRECTION('',(-1.,0.,0.)); +#38239=DIRECTION('',(0.,1.,0.)); +#38240=DIRECTION('',(-1.,0.,0.)); +#38241=DIRECTION('',(0.,-1.,0.)); +#38242=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38243=DIRECTION('',(0.,-1.,0.)); +#38244=DIRECTION('',(-1.,0.,0.)); +#38245=DIRECTION('',(0.,1.,0.)); +#38246=DIRECTION('',(-1.,0.,0.)); +#38247=DIRECTION('',(0.,1.,0.)); +#38248=DIRECTION('',(-1.,0.,0.)); +#38249=DIRECTION('',(0.,-1.,0.)); +#38250=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38251=DIRECTION('',(0.,-1.,0.)); +#38252=DIRECTION('',(-1.,0.,0.)); +#38253=DIRECTION('',(0.,1.,0.)); +#38254=DIRECTION('',(-1.,0.,0.)); +#38255=DIRECTION('',(0.,1.,0.)); +#38256=DIRECTION('',(-1.,0.,0.)); +#38257=DIRECTION('',(0.,-1.,0.)); +#38258=DIRECTION('',(-1.,6.19544098563145E-16,0.)); +#38259=DIRECTION('',(0.,-1.,0.)); +#38260=DIRECTION('',(-1.,0.,0.)); +#38261=DIRECTION('',(0.,1.,0.)); +#38262=DIRECTION('',(-1.,0.,0.)); +#38263=DIRECTION('',(0.,1.,0.)); +#38264=DIRECTION('',(-1.,0.,0.)); +#38265=DIRECTION('',(0.,-1.,0.)); +#38266=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38267=DIRECTION('',(0.,-1.,0.)); +#38268=DIRECTION('',(-1.,0.,0.)); +#38269=DIRECTION('',(0.,1.,0.)); +#38270=DIRECTION('',(-1.,0.,0.)); +#38271=DIRECTION('',(0.,1.,0.)); +#38272=DIRECTION('',(-1.,0.,0.)); +#38273=DIRECTION('',(0.,-1.,0.)); +#38274=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38275=DIRECTION('',(0.,-1.,0.)); +#38276=DIRECTION('',(-1.,0.,0.)); +#38277=DIRECTION('',(0.,1.,0.)); +#38278=DIRECTION('',(-1.,0.,0.)); +#38279=DIRECTION('',(0.,1.,0.)); +#38280=DIRECTION('',(-1.,0.,0.)); +#38281=DIRECTION('',(0.,-1.,0.)); +#38282=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38283=DIRECTION('',(0.,-1.,0.)); +#38284=DIRECTION('',(-1.,0.,0.)); +#38285=DIRECTION('',(0.,1.,0.)); +#38286=DIRECTION('',(-1.,0.,0.)); +#38287=DIRECTION('',(0.,1.,0.)); +#38288=DIRECTION('',(-1.,0.,0.)); +#38289=DIRECTION('',(0.,-1.,0.)); +#38290=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38291=DIRECTION('',(0.,-1.,0.)); +#38292=DIRECTION('',(-1.,0.,0.)); +#38293=DIRECTION('',(0.,1.,0.)); +#38294=DIRECTION('',(-1.,0.,0.)); +#38295=DIRECTION('',(0.,1.,0.)); +#38296=DIRECTION('',(-1.,0.,0.)); +#38297=DIRECTION('',(0.,-1.,0.)); +#38298=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38299=DIRECTION('',(0.,-1.,0.)); +#38300=DIRECTION('',(-1.,0.,0.)); +#38301=DIRECTION('',(0.,1.,0.)); +#38302=DIRECTION('',(-1.,0.,0.)); +#38303=DIRECTION('',(0.,1.,0.)); +#38304=DIRECTION('',(-1.,0.,0.)); +#38305=DIRECTION('',(0.,-1.,0.)); +#38306=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#38307=DIRECTION('',(0.,-1.,0.)); +#38308=DIRECTION('',(-1.,0.,0.)); +#38309=DIRECTION('',(0.,1.,0.)); +#38310=DIRECTION('',(-1.,0.,0.)); +#38311=DIRECTION('',(0.,1.,0.)); +#38312=DIRECTION('',(-1.,0.,0.)); +#38313=DIRECTION('',(0.,-1.,0.)); +#38314=DIRECTION('',(0.,0.,-1.)); +#38315=DIRECTION('',(-1.,0.,0.)); +#38316=DIRECTION('',(1.,0.,0.)); +#38317=DIRECTION('',(0.,-1.,0.)); +#38318=DIRECTION('',(-1.,0.,0.)); +#38319=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38320=DIRECTION('',(1.,0.,0.)); +#38321=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38322=DIRECTION('',(-1.,0.,0.)); +#38323=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38324=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38325=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38326=DIRECTION('',(-1.,0.,0.)); +#38327=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38328=DIRECTION('',(1.,0.,0.)); +#38329=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38330=DIRECTION('',(-1.,0.,0.)); +#38331=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38332=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38333=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38334=DIRECTION('',(-1.,0.,0.)); +#38335=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38336=DIRECTION('',(1.,0.,0.)); +#38337=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38338=DIRECTION('',(-1.,0.,0.)); +#38339=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38340=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38341=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38342=DIRECTION('',(-1.,0.,0.)); +#38343=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38344=DIRECTION('',(1.,0.,0.)); +#38345=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38346=DIRECTION('',(-1.,0.,0.)); +#38347=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38348=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38349=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38350=DIRECTION('',(-1.,0.,0.)); +#38351=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38352=DIRECTION('',(1.,0.,0.)); +#38353=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38354=DIRECTION('',(-1.,0.,0.)); +#38355=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38356=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38357=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38358=DIRECTION('',(-1.,0.,0.)); +#38359=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38360=DIRECTION('',(1.,0.,0.)); +#38361=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38362=DIRECTION('',(-1.,0.,0.)); +#38363=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38364=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38365=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38366=DIRECTION('',(-1.,0.,0.)); +#38367=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38368=DIRECTION('',(1.,0.,0.)); +#38369=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38370=DIRECTION('',(-1.,0.,0.)); +#38371=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38372=DIRECTION('',(1.,-6.19544098563145E-16,8.7785326862822E-30)); +#38373=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38374=DIRECTION('',(-1.,0.,0.)); +#38375=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38376=DIRECTION('',(1.,0.,0.)); +#38377=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38378=DIRECTION('',(-1.,0.,0.)); +#38379=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38380=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38381=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38382=DIRECTION('',(-1.,0.,0.)); +#38383=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38384=DIRECTION('',(1.,0.,0.)); +#38385=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38386=DIRECTION('',(-1.,0.,0.)); +#38387=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38388=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38389=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38390=DIRECTION('',(-1.,0.,0.)); +#38391=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38392=DIRECTION('',(1.,0.,0.)); +#38393=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38394=DIRECTION('',(-1.,0.,0.)); +#38395=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38396=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38397=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38398=DIRECTION('',(-1.,0.,0.)); +#38399=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38400=DIRECTION('',(1.,0.,0.)); +#38401=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38402=DIRECTION('',(-1.,0.,0.)); +#38403=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38404=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38405=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38406=DIRECTION('',(-1.,0.,0.)); +#38407=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38408=DIRECTION('',(1.,0.,0.)); +#38409=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38410=DIRECTION('',(-1.,0.,0.)); +#38411=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38412=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38413=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38414=DIRECTION('',(-1.,0.,0.)); +#38415=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38416=DIRECTION('',(1.,0.,0.)); +#38417=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38418=DIRECTION('',(-1.,0.,0.)); +#38419=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38420=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38421=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38422=DIRECTION('',(-1.,0.,0.)); +#38423=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38424=DIRECTION('',(1.,0.,0.)); +#38425=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38426=DIRECTION('',(-1.,0.,0.)); +#38427=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38428=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38429=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38430=DIRECTION('',(-1.,0.,0.)); +#38431=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38432=DIRECTION('',(1.,0.,0.)); +#38433=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38434=DIRECTION('',(-1.,0.,0.)); +#38435=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38436=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38437=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38438=DIRECTION('',(-1.,0.,0.)); +#38439=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38440=DIRECTION('',(1.,0.,0.)); +#38441=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38442=DIRECTION('',(-1.,0.,0.)); +#38443=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38444=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38445=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38446=DIRECTION('',(-1.,0.,0.)); +#38447=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38448=DIRECTION('',(1.,0.,0.)); +#38449=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38450=DIRECTION('',(-1.,0.,0.)); +#38451=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38452=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38453=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38454=DIRECTION('',(-1.,0.,0.)); +#38455=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38456=DIRECTION('',(1.,0.,0.)); +#38457=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38458=DIRECTION('',(-1.,0.,0.)); +#38459=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38460=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38461=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38462=DIRECTION('',(-1.,0.,0.)); +#38463=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38464=DIRECTION('',(1.,0.,0.)); +#38465=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38466=DIRECTION('',(-1.,0.,0.)); +#38467=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38468=DIRECTION('',(1.,-6.19544098563146E-16,8.77853268628223E-30)); +#38469=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38470=DIRECTION('',(-1.,0.,0.)); +#38471=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38472=DIRECTION('',(1.,0.,0.)); +#38473=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38474=DIRECTION('',(-1.,0.,0.)); +#38475=DIRECTION('',(0.,1.,-1.41693427580724E-14)); +#38476=DIRECTION('',(1.,-6.19544098563143E-16,8.77853268628218E-30)); +#38477=DIRECTION('',(0.,-1.,1.41693427580724E-14)); +#38478=DIRECTION('',(-1.,0.,0.)); +#38479=DIRECTION('',(0.,-1.,0.)); +#38480=DIRECTION('',(0.,0.,1.)); +#38481=DIRECTION('',(1.,0.,0.)); +#38482=DIRECTION('',(-1.,0.,0.)); +#38483=DIRECTION('',(0.,-1.,0.)); +#38484=DIRECTION('',(1.,0.,0.)); +#38485=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38486=DIRECTION('',(-1.,6.19544098563143E-16,2.04151922936795E-30)); +#38487=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38488=DIRECTION('',(-1.,0.,0.)); +#38489=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38490=DIRECTION('',(-1.,0.,0.)); +#38491=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38492=DIRECTION('',(1.,0.,0.)); +#38493=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38494=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38495=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38496=DIRECTION('',(-1.,0.,0.)); +#38497=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38498=DIRECTION('',(-1.,0.,0.)); +#38499=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38500=DIRECTION('',(1.,0.,0.)); +#38501=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38502=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38503=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38504=DIRECTION('',(-1.,0.,0.)); +#38505=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38506=DIRECTION('',(-1.,0.,0.)); +#38507=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38508=DIRECTION('',(1.,0.,0.)); +#38509=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38510=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38511=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38512=DIRECTION('',(-1.,0.,0.)); +#38513=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38514=DIRECTION('',(-1.,0.,0.)); +#38515=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38516=DIRECTION('',(1.,0.,0.)); +#38517=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38518=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38519=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38520=DIRECTION('',(-1.,0.,0.)); +#38521=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38522=DIRECTION('',(-1.,0.,0.)); +#38523=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38524=DIRECTION('',(1.,0.,0.)); +#38525=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38526=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38527=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38528=DIRECTION('',(-1.,0.,0.)); +#38529=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38530=DIRECTION('',(-1.,0.,0.)); +#38531=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38532=DIRECTION('',(1.,0.,0.)); +#38533=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38534=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38535=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38536=DIRECTION('',(-1.,0.,0.)); +#38537=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38538=DIRECTION('',(-1.,0.,0.)); +#38539=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38540=DIRECTION('',(1.,0.,0.)); +#38541=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38542=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38543=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38544=DIRECTION('',(-1.,0.,0.)); +#38545=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38546=DIRECTION('',(-1.,0.,0.)); +#38547=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38548=DIRECTION('',(1.,0.,0.)); +#38549=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38550=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38551=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38552=DIRECTION('',(-1.,0.,0.)); +#38553=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38554=DIRECTION('',(-1.,0.,0.)); +#38555=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38556=DIRECTION('',(1.,0.,0.)); +#38557=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38558=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38559=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38560=DIRECTION('',(-1.,0.,0.)); +#38561=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38562=DIRECTION('',(-1.,0.,0.)); +#38563=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38564=DIRECTION('',(1.,0.,0.)); +#38565=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38566=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38567=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38568=DIRECTION('',(-1.,0.,0.)); +#38569=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38570=DIRECTION('',(-1.,0.,0.)); +#38571=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38572=DIRECTION('',(1.,0.,0.)); +#38573=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38574=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38575=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38576=DIRECTION('',(-1.,0.,0.)); +#38577=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38578=DIRECTION('',(-1.,0.,0.)); +#38579=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38580=DIRECTION('',(1.,0.,0.)); +#38581=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38582=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38583=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38584=DIRECTION('',(-1.,0.,0.)); +#38585=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38586=DIRECTION('',(-1.,0.,0.)); +#38587=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38588=DIRECTION('',(1.,0.,0.)); +#38589=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38590=DIRECTION('',(-1.,6.19544098563145E-16,2.04151922936795E-30)); +#38591=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38592=DIRECTION('',(-1.,0.,0.)); +#38593=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38594=DIRECTION('',(-1.,0.,0.)); +#38595=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38596=DIRECTION('',(1.,0.,0.)); +#38597=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38598=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38599=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38600=DIRECTION('',(-1.,0.,0.)); +#38601=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38602=DIRECTION('',(-1.,0.,0.)); +#38603=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38604=DIRECTION('',(1.,0.,0.)); +#38605=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38606=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38607=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38608=DIRECTION('',(-1.,0.,0.)); +#38609=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38610=DIRECTION('',(-1.,0.,0.)); +#38611=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38612=DIRECTION('',(1.,0.,0.)); +#38613=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38614=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38615=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38616=DIRECTION('',(-1.,0.,0.)); +#38617=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38618=DIRECTION('',(-1.,0.,0.)); +#38619=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38620=DIRECTION('',(1.,0.,0.)); +#38621=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38622=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38623=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38624=DIRECTION('',(-1.,0.,0.)); +#38625=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38626=DIRECTION('',(-1.,0.,0.)); +#38627=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38628=DIRECTION('',(1.,0.,0.)); +#38629=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38630=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38631=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38632=DIRECTION('',(-1.,0.,0.)); +#38633=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38634=DIRECTION('',(-1.,0.,0.)); +#38635=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38636=DIRECTION('',(1.,0.,0.)); +#38637=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38638=DIRECTION('',(-1.,6.19544098563146E-16,2.04151922936796E-30)); +#38639=DIRECTION('',(0.,-1.,-3.2951959902494E-15)); +#38640=DIRECTION('',(-1.,0.,0.)); +#38641=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38642=DIRECTION('',(-1.,0.,0.)); +#38643=DIRECTION('',(0.,1.,3.2951959902494E-15)); +#38644=DIRECTION('',(1.,0.,0.)); +#38645=DIRECTION('',(0.,-1.,0.)); +#38646=DIRECTION('',(0.,0.,-1.)); +#38647=DIRECTION('',(-1.,0.,0.)); +#38648=DIRECTION('',(1.,0.,0.)); +#38649=DIRECTION('',(0.,-1.,0.)); +#38650=DIRECTION('',(1.,0.,0.)); +#38651=DIRECTION('',(0.,-1.,0.)); +#38652=DIRECTION('',(1.,0.,0.)); +#38653=DIRECTION('',(0.,-1.,0.)); +#38654=DIRECTION('',(-1.,0.,0.)); +#38655=DIRECTION('',(0.,1.,0.)); +#38656=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38657=DIRECTION('',(0.,1.,0.)); +#38658=DIRECTION('',(1.,0.,0.)); +#38659=DIRECTION('',(0.,-1.,0.)); +#38660=DIRECTION('',(1.,0.,0.)); +#38661=DIRECTION('',(0.,-1.,0.)); +#38662=DIRECTION('',(-1.,0.,0.)); +#38663=DIRECTION('',(0.,1.,0.)); +#38664=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38665=DIRECTION('',(0.,1.,0.)); +#38666=DIRECTION('',(1.,0.,0.)); +#38667=DIRECTION('',(0.,-1.,0.)); +#38668=DIRECTION('',(1.,0.,0.)); +#38669=DIRECTION('',(0.,-1.,0.)); +#38670=DIRECTION('',(-1.,0.,0.)); +#38671=DIRECTION('',(0.,1.,0.)); +#38672=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38673=DIRECTION('',(0.,1.,0.)); +#38674=DIRECTION('',(1.,0.,0.)); +#38675=DIRECTION('',(0.,-1.,0.)); +#38676=DIRECTION('',(1.,0.,0.)); +#38677=DIRECTION('',(0.,-1.,0.)); +#38678=DIRECTION('',(-1.,0.,0.)); +#38679=DIRECTION('',(0.,1.,0.)); +#38680=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38681=DIRECTION('',(0.,1.,0.)); +#38682=DIRECTION('',(1.,0.,0.)); +#38683=DIRECTION('',(0.,-1.,0.)); +#38684=DIRECTION('',(1.,0.,0.)); +#38685=DIRECTION('',(0.,-1.,0.)); +#38686=DIRECTION('',(-1.,0.,0.)); +#38687=DIRECTION('',(0.,1.,0.)); +#38688=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38689=DIRECTION('',(0.,1.,0.)); +#38690=DIRECTION('',(1.,0.,0.)); +#38691=DIRECTION('',(0.,-1.,0.)); +#38692=DIRECTION('',(1.,0.,0.)); +#38693=DIRECTION('',(0.,-1.,0.)); +#38694=DIRECTION('',(-1.,0.,0.)); +#38695=DIRECTION('',(0.,1.,0.)); +#38696=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38697=DIRECTION('',(0.,1.,0.)); +#38698=DIRECTION('',(1.,0.,0.)); +#38699=DIRECTION('',(0.,-1.,0.)); +#38700=DIRECTION('',(1.,0.,0.)); +#38701=DIRECTION('',(0.,-1.,0.)); +#38702=DIRECTION('',(-1.,0.,0.)); +#38703=DIRECTION('',(0.,1.,0.)); +#38704=DIRECTION('',(1.,-6.19544098563145E-16,0.)); +#38705=DIRECTION('',(0.,1.,0.)); +#38706=DIRECTION('',(1.,0.,0.)); +#38707=DIRECTION('',(0.,-1.,0.)); +#38708=DIRECTION('',(1.,0.,0.)); +#38709=DIRECTION('',(0.,-1.,0.)); +#38710=DIRECTION('',(-1.,0.,0.)); +#38711=DIRECTION('',(0.,1.,0.)); +#38712=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38713=DIRECTION('',(0.,1.,0.)); +#38714=DIRECTION('',(1.,0.,0.)); +#38715=DIRECTION('',(0.,-1.,0.)); +#38716=DIRECTION('',(1.,0.,0.)); +#38717=DIRECTION('',(0.,-1.,0.)); +#38718=DIRECTION('',(-1.,0.,0.)); +#38719=DIRECTION('',(0.,1.,0.)); +#38720=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38721=DIRECTION('',(0.,1.,0.)); +#38722=DIRECTION('',(1.,0.,0.)); +#38723=DIRECTION('',(0.,-1.,0.)); +#38724=DIRECTION('',(1.,0.,0.)); +#38725=DIRECTION('',(0.,-1.,0.)); +#38726=DIRECTION('',(-1.,0.,0.)); +#38727=DIRECTION('',(0.,1.,0.)); +#38728=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38729=DIRECTION('',(0.,1.,0.)); +#38730=DIRECTION('',(1.,0.,0.)); +#38731=DIRECTION('',(0.,-1.,0.)); +#38732=DIRECTION('',(1.,0.,0.)); +#38733=DIRECTION('',(0.,-1.,0.)); +#38734=DIRECTION('',(-1.,0.,0.)); +#38735=DIRECTION('',(0.,1.,0.)); +#38736=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38737=DIRECTION('',(0.,1.,0.)); +#38738=DIRECTION('',(1.,0.,0.)); +#38739=DIRECTION('',(0.,-1.,0.)); +#38740=DIRECTION('',(1.,0.,0.)); +#38741=DIRECTION('',(0.,-1.,0.)); +#38742=DIRECTION('',(-1.,0.,0.)); +#38743=DIRECTION('',(0.,1.,0.)); +#38744=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38745=DIRECTION('',(0.,1.,0.)); +#38746=DIRECTION('',(1.,0.,0.)); +#38747=DIRECTION('',(0.,-1.,0.)); +#38748=DIRECTION('',(1.,0.,0.)); +#38749=DIRECTION('',(0.,-1.,0.)); +#38750=DIRECTION('',(-1.,0.,0.)); +#38751=DIRECTION('',(0.,1.,0.)); +#38752=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38753=DIRECTION('',(0.,1.,0.)); +#38754=DIRECTION('',(1.,0.,0.)); +#38755=DIRECTION('',(0.,-1.,0.)); +#38756=DIRECTION('',(1.,0.,0.)); +#38757=DIRECTION('',(0.,-1.,0.)); +#38758=DIRECTION('',(-1.,0.,0.)); +#38759=DIRECTION('',(0.,1.,0.)); +#38760=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38761=DIRECTION('',(0.,1.,0.)); +#38762=DIRECTION('',(1.,0.,0.)); +#38763=DIRECTION('',(0.,-1.,0.)); +#38764=DIRECTION('',(1.,0.,0.)); +#38765=DIRECTION('',(0.,-1.,0.)); +#38766=DIRECTION('',(-1.,0.,0.)); +#38767=DIRECTION('',(0.,1.,0.)); +#38768=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38769=DIRECTION('',(0.,1.,0.)); +#38770=DIRECTION('',(1.,0.,0.)); +#38771=DIRECTION('',(0.,-1.,0.)); +#38772=DIRECTION('',(1.,0.,0.)); +#38773=DIRECTION('',(0.,-1.,0.)); +#38774=DIRECTION('',(-1.,0.,0.)); +#38775=DIRECTION('',(0.,1.,0.)); +#38776=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38777=DIRECTION('',(0.,1.,0.)); +#38778=DIRECTION('',(1.,0.,0.)); +#38779=DIRECTION('',(0.,-1.,0.)); +#38780=DIRECTION('',(1.,0.,0.)); +#38781=DIRECTION('',(0.,-1.,0.)); +#38782=DIRECTION('',(-1.,0.,0.)); +#38783=DIRECTION('',(0.,1.,0.)); +#38784=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38785=DIRECTION('',(0.,1.,0.)); +#38786=DIRECTION('',(1.,0.,0.)); +#38787=DIRECTION('',(0.,-1.,0.)); +#38788=DIRECTION('',(1.,0.,0.)); +#38789=DIRECTION('',(0.,-1.,0.)); +#38790=DIRECTION('',(-1.,0.,0.)); +#38791=DIRECTION('',(0.,1.,0.)); +#38792=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38793=DIRECTION('',(0.,1.,0.)); +#38794=DIRECTION('',(1.,0.,0.)); +#38795=DIRECTION('',(0.,-1.,0.)); +#38796=DIRECTION('',(1.,0.,0.)); +#38797=DIRECTION('',(0.,-1.,0.)); +#38798=DIRECTION('',(-1.,0.,0.)); +#38799=DIRECTION('',(0.,1.,0.)); +#38800=DIRECTION('',(1.,-6.19544098563146E-16,0.)); +#38801=DIRECTION('',(0.,1.,0.)); +#38802=DIRECTION('',(1.,0.,0.)); +#38803=DIRECTION('',(0.,-1.,0.)); +#38804=DIRECTION('',(1.,0.,0.)); +#38805=DIRECTION('',(0.,-1.,0.)); +#38806=DIRECTION('',(-1.,0.,0.)); +#38807=DIRECTION('',(0.,1.,0.)); +#38808=DIRECTION('',(1.,-6.19544098563143E-16,0.)); +#38809=DIRECTION('',(0.,-1.,0.)); +#38810=DIRECTION('',(1.,0.,0.)); +#38811=DIRECTION('',(0.,-1.,0.)); +#38812=DIRECTION('',(1.,0.,0.)); +#38813=DIRECTION('',(0.,0.,-1.)); +#38814=DIRECTION('',(0.,0.,1.)); +#38815=DIRECTION('',(0.,0.,1.)); +#38816=DIRECTION('',(1.,0.,0.)); +#38817=DIRECTION('',(0.,0.,-1.)); +#38818=DIRECTION('',(0.,0.,1.)); +#38819=DIRECTION('',(0.,0.,1.)); +#38820=DIRECTION('',(-1.,0.,0.)); +#38821=DIRECTION('',(0.,0.,1.)); +#38822=DIRECTION('',(0.,0.,-1.)); +#38823=DIRECTION('',(0.,0.,-1.)); +#38824=DIRECTION('',(-1.,0.,0.)); +#38825=DIRECTION('',(0.,0.,1.)); +#38826=DIRECTION('',(0.,0.,-1.)); +#38827=DIRECTION('',(0.,0.,-1.)); +#38828=DIRECTION('',(1.,0.,0.)); +#38829=DIRECTION('',(0.,0.,-1.)); +#38830=DIRECTION('',(0.,0.,1.)); +#38831=DIRECTION('',(0.,0.,1.)); +#38832=DIRECTION('',(1.,0.,0.)); +#38833=DIRECTION('',(0.,0.,-1.)); +#38834=DIRECTION('',(0.,0.,1.)); +#38835=DIRECTION('',(0.,0.,1.)); +#38836=DIRECTION('',(1.,0.,0.)); +#38837=DIRECTION('',(0.,0.,-1.)); +#38838=DIRECTION('',(0.,0.,1.)); +#38839=DIRECTION('',(0.,0.,1.)); +#38840=DIRECTION('',(1.,0.,0.)); +#38841=DIRECTION('',(0.,0.,-1.)); +#38842=DIRECTION('',(0.,0.,1.)); +#38843=DIRECTION('',(0.,0.,1.)); +#38844=DIRECTION('',(-1.,0.,0.)); +#38845=DIRECTION('',(0.,0.,1.)); +#38846=DIRECTION('',(0.,0.,-1.)); +#38847=DIRECTION('',(0.,0.,-1.)); +#38848=DIRECTION('',(1.,0.,0.)); +#38849=DIRECTION('',(0.,0.,-1.)); +#38850=DIRECTION('',(0.,0.,1.)); +#38851=DIRECTION('',(0.,0.,-1.)); +#38852=DIRECTION('',(-1.,0.,0.)); +#38853=DIRECTION('',(0.,0.,1.)); +#38854=DIRECTION('',(0.,0.,-1.)); +#38855=DIRECTION('',(0.,0.,-1.)); +#38856=DIRECTION('',(1.,0.,0.)); +#38857=DIRECTION('',(0.,0.,-1.)); +#38858=DIRECTION('',(0.,0.,1.)); +#38859=DIRECTION('',(0.,0.,-1.)); +#38860=DIRECTION('',(-1.,0.,0.)); +#38861=DIRECTION('',(0.,0.,1.)); +#38862=DIRECTION('',(0.,0.,-1.)); +#38863=DIRECTION('',(0.,0.,-1.)); +#38864=DIRECTION('',(1.,0.,0.)); +#38865=DIRECTION('',(0.,0.,-1.)); +#38866=DIRECTION('',(0.,0.,1.)); +#38867=DIRECTION('',(0.,0.,-1.)); +#38868=DIRECTION('',(-1.,0.,0.)); +#38869=DIRECTION('',(0.,0.,1.)); +#38870=DIRECTION('',(0.,0.,-1.)); +#38871=DIRECTION('',(0.,0.,-1.)); +#38872=DIRECTION('',(1.,0.,0.)); +#38873=DIRECTION('',(0.,0.,-1.)); +#38874=DIRECTION('',(0.,0.,1.)); +#38875=DIRECTION('',(0.,0.,-1.)); +#38876=DIRECTION('',(-1.,0.,0.)); +#38877=DIRECTION('',(0.,0.,1.)); +#38878=DIRECTION('',(0.,0.,-1.)); +#38879=DIRECTION('',(0.,0.,-1.)); +#38880=DIRECTION('',(1.,0.,0.)); +#38881=DIRECTION('',(0.,0.,-1.)); +#38882=DIRECTION('',(0.,0.,1.)); +#38883=DIRECTION('',(0.,0.,-1.)); +#38884=DIRECTION('',(-1.,0.,0.)); +#38885=DIRECTION('',(0.,0.,1.)); +#38886=DIRECTION('',(0.,0.,-1.)); +#38887=DIRECTION('',(0.,0.,-1.)); +#38888=DIRECTION('',(1.,0.,0.)); +#38889=DIRECTION('',(0.,0.,-1.)); +#38890=DIRECTION('',(0.,0.,1.)); +#38891=DIRECTION('',(0.,0.,-1.)); +#38892=DIRECTION('',(-1.,0.,0.)); +#38893=DIRECTION('',(0.,0.,1.)); +#38894=DIRECTION('',(0.,0.,-1.)); +#38895=DIRECTION('',(0.,0.,-1.)); +#38896=DIRECTION('',(1.,0.,0.)); +#38897=DIRECTION('',(0.,0.,-1.)); +#38898=DIRECTION('',(0.,0.,1.)); +#38899=DIRECTION('',(0.,0.,-1.)); +#38900=DIRECTION('',(-1.,0.,0.)); +#38901=DIRECTION('',(0.,0.,1.)); +#38902=DIRECTION('',(0.,0.,-1.)); +#38903=DIRECTION('',(0.,0.,-1.)); +#38904=DIRECTION('',(1.,0.,0.)); +#38905=DIRECTION('',(0.,0.,-1.)); +#38906=DIRECTION('',(0.,0.,1.)); +#38907=DIRECTION('',(0.,0.,-1.)); +#38908=DIRECTION('',(-1.,0.,0.)); +#38909=DIRECTION('',(0.,0.,1.)); +#38910=DIRECTION('',(0.,0.,-1.)); +#38911=DIRECTION('',(0.,0.,-1.)); +#38912=DIRECTION('',(1.,0.,0.)); +#38913=DIRECTION('',(0.,0.,-1.)); +#38914=DIRECTION('',(0.,0.,1.)); +#38915=DIRECTION('',(0.,0.,-1.)); +#38916=DIRECTION('',(-1.,0.,0.)); +#38917=DIRECTION('',(0.,0.,1.)); +#38918=DIRECTION('',(0.,0.,-1.)); +#38919=DIRECTION('',(0.,0.,-1.)); +#38920=DIRECTION('',(1.,0.,0.)); +#38921=DIRECTION('',(0.,0.,-1.)); +#38922=DIRECTION('',(0.,0.,1.)); +#38923=DIRECTION('',(0.,0.,-1.)); +#38924=DIRECTION('',(-1.,0.,0.)); +#38925=DIRECTION('',(0.,0.,1.)); +#38926=DIRECTION('',(0.,0.,-1.)); +#38927=DIRECTION('',(0.,0.,-1.)); +#38928=DIRECTION('',(1.,0.,0.)); +#38929=DIRECTION('',(0.,0.,-1.)); +#38930=DIRECTION('',(0.,0.,1.)); +#38931=DIRECTION('',(0.,0.,-1.)); +#38932=DIRECTION('',(-1.,0.,0.)); +#38933=DIRECTION('',(0.,0.,1.)); +#38934=DIRECTION('',(0.,0.,-1.)); +#38935=DIRECTION('',(0.,0.,-1.)); +#38936=DIRECTION('',(1.,0.,0.)); +#38937=DIRECTION('',(0.,0.,-1.)); +#38938=DIRECTION('',(0.,0.,1.)); +#38939=DIRECTION('',(0.,0.,-1.)); +#38940=DIRECTION('',(-1.,0.,0.)); +#38941=DIRECTION('',(0.,0.,1.)); +#38942=DIRECTION('',(0.,0.,-1.)); +#38943=DIRECTION('',(0.,0.,-1.)); +#38944=DIRECTION('',(1.,0.,0.)); +#38945=DIRECTION('',(0.,0.,-1.)); +#38946=DIRECTION('',(0.,0.,1.)); +#38947=DIRECTION('',(0.,0.,-1.)); +#38948=DIRECTION('',(-1.,0.,0.)); +#38949=DIRECTION('',(0.,0.,1.)); +#38950=DIRECTION('',(0.,0.,-1.)); +#38951=DIRECTION('',(0.,0.,-1.)); +#38952=DIRECTION('',(1.,0.,0.)); +#38953=DIRECTION('',(0.,0.,-1.)); +#38954=DIRECTION('',(0.,0.,1.)); +#38955=DIRECTION('',(0.,0.,-1.)); +#38956=DIRECTION('',(-1.,0.,0.)); +#38957=DIRECTION('',(0.,0.,1.)); +#38958=DIRECTION('',(0.,0.,-1.)); +#38959=DIRECTION('',(0.,0.,-1.)); +#38960=DIRECTION('',(1.,0.,0.)); +#38961=DIRECTION('',(0.,0.,-1.)); +#38962=DIRECTION('',(0.,0.,1.)); +#38963=DIRECTION('',(0.,0.,-1.)); +#38964=DIRECTION('',(-1.,0.,0.)); +#38965=DIRECTION('',(0.,0.,1.)); +#38966=DIRECTION('',(0.,0.,-1.)); +#38967=DIRECTION('',(0.,0.,-1.)); +#38968=DIRECTION('',(1.,0.,0.)); +#38969=DIRECTION('',(0.,0.,-1.)); +#38970=DIRECTION('',(0.,0.,1.)); +#38971=DIRECTION('',(0.,0.,-1.)); +#38972=DIRECTION('',(-1.,0.,0.)); +#38973=DIRECTION('',(0.,0.,1.)); +#38974=DIRECTION('',(0.,0.,-1.)); +#38975=DIRECTION('',(0.,0.,-1.)); +#38976=DIRECTION('',(1.,0.,0.)); +#38977=DIRECTION('',(0.,0.,-1.)); +#38978=DIRECTION('',(0.,0.,1.)); +#38979=DIRECTION('',(0.,0.,-1.)); +#38980=DIRECTION('',(-1.,0.,0.)); +#38981=DIRECTION('',(0.,0.,1.)); +#38982=DIRECTION('',(0.,0.,-1.)); +#38983=DIRECTION('',(0.,0.,-1.)); +#38984=DIRECTION('',(1.,0.,0.)); +#38985=DIRECTION('',(0.,0.,-1.)); +#38986=DIRECTION('',(0.,0.,1.)); +#38987=DIRECTION('',(0.,0.,-1.)); +#38988=DIRECTION('',(-1.,0.,0.)); +#38989=DIRECTION('',(0.,0.,1.)); +#38990=DIRECTION('',(0.,0.,-1.)); +#38991=DIRECTION('',(0.,0.,-1.)); +#38992=DIRECTION('',(1.,0.,0.)); +#38993=DIRECTION('',(0.,0.,-1.)); +#38994=DIRECTION('',(0.,0.,1.)); +#38995=DIRECTION('',(0.,0.,-1.)); +#38996=DIRECTION('',(-1.,0.,0.)); +#38997=DIRECTION('',(0.,0.,1.)); +#38998=DIRECTION('',(0.,0.,-1.)); +#38999=DIRECTION('',(0.,0.,-1.)); +#39000=DIRECTION('',(1.,0.,0.)); +#39001=DIRECTION('',(0.,0.,-1.)); +#39002=DIRECTION('',(0.,0.,1.)); +#39003=DIRECTION('',(0.,0.,-1.)); +#39004=DIRECTION('',(-1.,0.,0.)); +#39005=DIRECTION('',(0.,0.,1.)); +#39006=DIRECTION('',(0.,0.,-1.)); +#39007=DIRECTION('',(0.,0.,-1.)); +#39008=DIRECTION('',(1.,0.,0.)); +#39009=DIRECTION('',(0.,0.,-1.)); +#39010=DIRECTION('',(0.,0.,1.)); +#39011=DIRECTION('',(0.,0.,-1.)); +#39012=DIRECTION('',(-1.,0.,0.)); +#39013=DIRECTION('',(0.,0.,1.)); +#39014=DIRECTION('',(0.,0.,-1.)); +#39015=DIRECTION('',(0.,0.,-1.)); +#39016=DIRECTION('',(1.,0.,0.)); +#39017=DIRECTION('',(0.,0.,-1.)); +#39018=DIRECTION('',(0.,0.,1.)); +#39019=DIRECTION('',(0.,0.,-1.)); +#39020=DIRECTION('',(-1.,0.,0.)); +#39021=DIRECTION('',(0.,0.,1.)); +#39022=DIRECTION('',(0.,0.,-1.)); +#39023=DIRECTION('',(0.,0.,-1.)); +#39024=DIRECTION('',(1.,0.,0.)); +#39025=DIRECTION('',(0.,0.,-1.)); +#39026=DIRECTION('',(0.,0.,1.)); +#39027=DIRECTION('',(0.,0.,-1.)); +#39028=DIRECTION('',(-1.,0.,0.)); +#39029=DIRECTION('',(0.,0.,1.)); +#39030=DIRECTION('',(0.,0.,-1.)); +#39031=DIRECTION('',(0.,0.,-1.)); +#39032=DIRECTION('',(1.,0.,0.)); +#39033=DIRECTION('',(0.,0.,-1.)); +#39034=DIRECTION('',(0.,0.,1.)); +#39035=DIRECTION('',(0.,0.,-1.)); +#39036=DIRECTION('',(-1.,0.,0.)); +#39037=DIRECTION('',(0.,0.,1.)); +#39038=DIRECTION('',(0.,0.,-1.)); +#39039=DIRECTION('',(0.,0.,-1.)); +#39040=DIRECTION('',(1.,0.,0.)); +#39041=DIRECTION('',(0.,0.,-1.)); +#39042=DIRECTION('',(0.,0.,1.)); +#39043=DIRECTION('',(0.,0.,-1.)); +#39044=DIRECTION('',(-1.,0.,0.)); +#39045=DIRECTION('',(0.,0.,1.)); +#39046=DIRECTION('',(0.,0.,-1.)); +#39047=DIRECTION('',(0.,0.,-1.)); +#39048=DIRECTION('',(1.,0.,0.)); +#39049=DIRECTION('',(0.,0.,-1.)); +#39050=DIRECTION('',(0.,0.,1.)); +#39051=DIRECTION('',(0.,0.,-1.)); +#39052=DIRECTION('',(-1.,0.,0.)); +#39053=DIRECTION('',(0.,0.,1.)); +#39054=DIRECTION('',(0.,0.,-1.)); +#39055=DIRECTION('',(0.,0.,-1.)); +#39056=DIRECTION('',(1.,0.,0.)); +#39057=DIRECTION('',(0.,0.,-1.)); +#39058=DIRECTION('',(0.,0.,1.)); +#39059=DIRECTION('',(0.,0.,-1.)); +#39060=DIRECTION('',(-1.,0.,0.)); +#39061=DIRECTION('',(0.,0.,1.)); +#39062=DIRECTION('',(0.,0.,-1.)); +#39063=DIRECTION('',(0.,0.,-1.)); +#39064=DIRECTION('',(1.,0.,0.)); +#39065=DIRECTION('',(0.,0.,-1.)); +#39066=DIRECTION('',(0.,0.,1.)); +#39067=DIRECTION('',(0.,0.,-1.)); +#39068=DIRECTION('',(-1.,0.,0.)); +#39069=DIRECTION('',(0.,0.,1.)); +#39070=DIRECTION('',(0.,0.,-1.)); +#39071=DIRECTION('',(0.,0.,-1.)); +#39072=DIRECTION('',(1.,0.,0.)); +#39073=DIRECTION('',(0.,0.,-1.)); +#39074=DIRECTION('',(0.,0.,1.)); +#39075=DIRECTION('',(0.,0.,-1.)); +#39076=DIRECTION('',(-1.,0.,0.)); +#39077=DIRECTION('',(0.,0.,1.)); +#39078=DIRECTION('',(0.,0.,-1.)); +#39079=DIRECTION('',(0.,0.,-1.)); +#39080=DIRECTION('',(1.,0.,0.)); +#39081=DIRECTION('',(0.,0.,-1.)); +#39082=DIRECTION('',(0.,0.,1.)); +#39083=DIRECTION('',(0.,0.,-1.)); +#39084=DIRECTION('',(-1.,0.,0.)); +#39085=DIRECTION('',(0.,0.,1.)); +#39086=DIRECTION('',(0.,0.,-1.)); +#39087=DIRECTION('',(0.,0.,-1.)); +#39088=DIRECTION('',(1.,0.,0.)); +#39089=DIRECTION('',(0.,0.,-1.)); +#39090=DIRECTION('',(0.,0.,1.)); +#39091=DIRECTION('',(0.,0.,-1.)); +#39092=DIRECTION('',(-1.,0.,0.)); +#39093=DIRECTION('',(0.,0.,1.)); +#39094=DIRECTION('',(0.,0.,-1.)); +#39095=DIRECTION('',(0.,0.,-1.)); +#39096=DIRECTION('',(1.,0.,0.)); +#39097=DIRECTION('',(0.,0.,-1.)); +#39098=DIRECTION('',(0.,0.,1.)); +#39099=DIRECTION('',(0.,0.,-1.)); +#39100=DIRECTION('',(-1.,0.,0.)); +#39101=DIRECTION('',(0.,0.,1.)); +#39102=DIRECTION('',(0.,0.,-1.)); +#39103=DIRECTION('',(0.,0.,-1.)); +#39104=DIRECTION('',(1.,0.,0.)); +#39105=DIRECTION('',(0.,0.,-1.)); +#39106=DIRECTION('',(0.,0.,1.)); +#39107=DIRECTION('',(0.,0.,-1.)); +#39108=DIRECTION('',(-1.,0.,0.)); +#39109=DIRECTION('',(0.,0.,1.)); +#39110=DIRECTION('',(0.,0.,-1.)); +#39111=DIRECTION('',(0.,0.,-1.)); +#39112=DIRECTION('',(1.,0.,0.)); +#39113=DIRECTION('',(0.,0.,-1.)); +#39114=DIRECTION('',(0.,0.,1.)); +#39115=DIRECTION('',(0.,0.,-1.)); +#39116=DIRECTION('',(-1.,0.,0.)); +#39117=DIRECTION('',(0.,0.,1.)); +#39118=DIRECTION('',(0.,0.,-1.)); +#39119=DIRECTION('',(0.,0.,-1.)); +#39120=DIRECTION('',(1.,0.,0.)); +#39121=DIRECTION('',(0.,0.,-1.)); +#39122=DIRECTION('',(0.,0.,1.)); +#39123=DIRECTION('',(0.,0.,-1.)); +#39124=DIRECTION('',(-1.,0.,0.)); +#39125=DIRECTION('',(0.,0.,1.)); +#39126=DIRECTION('',(0.,0.,-1.)); +#39127=DIRECTION('',(0.,0.,-1.)); +#39128=DIRECTION('',(1.,0.,0.)); +#39129=DIRECTION('',(0.,0.,-1.)); +#39130=DIRECTION('',(0.,0.,1.)); +#39131=DIRECTION('',(0.,0.,-1.)); +#39132=DIRECTION('',(-1.,0.,0.)); +#39133=DIRECTION('',(0.,0.,1.)); +#39134=DIRECTION('',(0.,0.,-1.)); +#39135=DIRECTION('',(0.,0.,-1.)); +#39136=DIRECTION('',(1.,0.,0.)); +#39137=DIRECTION('',(0.,0.,-1.)); +#39138=DIRECTION('',(0.,0.,1.)); +#39139=DIRECTION('',(0.,0.,-1.)); +#39140=DIRECTION('',(1.,0.,0.)); +#39141=DIRECTION('',(0.,0.,-1.)); +#39142=DIRECTION('',(0.,0.,1.)); +#39143=DIRECTION('',(0.,0.,-1.)); +#39144=DIRECTION('',(-1.,0.,0.)); +#39145=DIRECTION('',(0.,0.,1.)); +#39146=DIRECTION('',(0.,0.,-1.)); +#39147=DIRECTION('',(0.,0.,-1.)); +#39148=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39149=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39150=DIRECTION('',(-1.,0.,0.)); +#39151=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39152=DIRECTION('',(-1.,0.,0.)); +#39153=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39154=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39155=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39156=DIRECTION('',(-1.,0.,0.)); +#39157=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39158=DIRECTION('',(-1.,0.,0.)); +#39159=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39160=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39161=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39162=DIRECTION('',(-1.,0.,0.)); +#39163=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39164=DIRECTION('',(-1.,0.,0.)); +#39165=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39166=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39167=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39168=DIRECTION('',(-1.,0.,0.)); +#39169=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39170=DIRECTION('',(-1.,0.,0.)); +#39171=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39172=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39173=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39174=DIRECTION('',(-1.,0.,0.)); +#39175=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39176=DIRECTION('',(-1.,0.,0.)); +#39177=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39178=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39179=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39180=DIRECTION('',(-1.,0.,0.)); +#39181=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39182=DIRECTION('',(-1.,0.,0.)); +#39183=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39184=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39185=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39186=DIRECTION('',(-1.,0.,0.)); +#39187=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39188=DIRECTION('',(-1.,0.,0.)); +#39189=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39190=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39191=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39192=DIRECTION('',(-1.,0.,0.)); +#39193=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39194=DIRECTION('',(-1.,0.,0.)); +#39195=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39196=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39197=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39198=DIRECTION('',(-1.,0.,0.)); +#39199=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39200=DIRECTION('',(-1.,0.,0.)); +#39201=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39202=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39203=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39204=DIRECTION('',(-1.,0.,0.)); +#39205=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39206=DIRECTION('',(-1.,0.,0.)); +#39207=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39208=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39209=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39210=DIRECTION('',(-1.,0.,0.)); +#39211=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39212=DIRECTION('',(-1.,0.,0.)); +#39213=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39214=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39215=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39216=DIRECTION('',(-1.,0.,0.)); +#39217=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39218=DIRECTION('',(-1.,0.,0.)); +#39219=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39220=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39221=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39222=DIRECTION('',(-1.,0.,0.)); +#39223=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39224=DIRECTION('',(-1.,0.,0.)); +#39225=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39226=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39227=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39228=DIRECTION('',(-1.,0.,0.)); +#39229=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39230=DIRECTION('',(-1.,0.,0.)); +#39231=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39232=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39233=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39234=DIRECTION('',(-1.,0.,0.)); +#39235=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39236=DIRECTION('',(-1.,0.,0.)); +#39237=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39238=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39239=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39240=DIRECTION('',(-1.,0.,0.)); +#39241=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39242=DIRECTION('',(-1.,0.,0.)); +#39243=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39244=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39245=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39246=DIRECTION('',(-1.,0.,0.)); +#39247=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39248=DIRECTION('',(-1.,0.,0.)); +#39249=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39250=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39251=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39252=DIRECTION('',(-1.,0.,0.)); +#39253=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39254=DIRECTION('',(-1.,0.,0.)); +#39255=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39256=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39257=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39258=DIRECTION('',(-1.,0.,0.)); +#39259=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39260=DIRECTION('',(-1.,0.,0.)); +#39261=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39262=DIRECTION('',(-1.,0.,0.)); +#39263=DIRECTION('',(0.,0.,1.)); +#39264=DIRECTION('',(1.,0.,0.)); +#39265=DIRECTION('',(0.,0.,-1.)); +#39266=DIRECTION('',(-1.,0.,0.)); +#39267=DIRECTION('',(0.,0.,1.)); +#39268=DIRECTION('',(-1.,0.,0.)); +#39269=DIRECTION('',(0.,0.,1.)); +#39270=DIRECTION('',(1.,0.,0.)); +#39271=DIRECTION('',(0.,0.,-1.)); +#39272=DIRECTION('',(-1.,0.,0.)); +#39273=DIRECTION('',(0.,0.,1.)); +#39274=DIRECTION('',(-1.,0.,0.)); +#39275=DIRECTION('',(0.,0.,1.)); +#39276=DIRECTION('',(1.,0.,0.)); +#39277=DIRECTION('',(0.,0.,-1.)); +#39278=DIRECTION('',(-1.,0.,0.)); +#39279=DIRECTION('',(0.,0.,1.)); +#39280=DIRECTION('',(-1.,0.,0.)); +#39281=DIRECTION('',(0.,0.,1.)); +#39282=DIRECTION('',(1.,0.,0.)); +#39283=DIRECTION('',(0.,0.,-1.)); +#39284=DIRECTION('',(-1.,0.,0.)); +#39285=DIRECTION('',(0.,0.,1.)); +#39286=DIRECTION('',(-1.,0.,0.)); +#39287=DIRECTION('',(0.,0.,1.)); +#39288=DIRECTION('',(1.,0.,0.)); +#39289=DIRECTION('',(0.,0.,-1.)); +#39290=DIRECTION('',(-1.,0.,0.)); +#39291=DIRECTION('',(0.,0.,1.)); +#39292=DIRECTION('',(-1.,0.,0.)); +#39293=DIRECTION('',(0.,0.,1.)); +#39294=DIRECTION('',(1.,0.,0.)); +#39295=DIRECTION('',(0.,0.,-1.)); +#39296=DIRECTION('',(-1.,0.,0.)); +#39297=DIRECTION('',(0.,0.,1.)); +#39298=DIRECTION('',(-1.,0.,0.)); +#39299=DIRECTION('',(0.,0.,1.)); +#39300=DIRECTION('',(1.,0.,0.)); +#39301=DIRECTION('',(0.,0.,-1.)); +#39302=DIRECTION('',(-1.,0.,0.)); +#39303=DIRECTION('',(0.,0.,1.)); +#39304=DIRECTION('',(-1.,0.,0.)); +#39305=DIRECTION('',(0.,0.,1.)); +#39306=DIRECTION('',(1.,0.,0.)); +#39307=DIRECTION('',(0.,0.,-1.)); +#39308=DIRECTION('',(-1.,0.,0.)); +#39309=DIRECTION('',(0.,0.,1.)); +#39310=DIRECTION('',(-1.,0.,0.)); +#39311=DIRECTION('',(0.,0.,1.)); +#39312=DIRECTION('',(1.,0.,0.)); +#39313=DIRECTION('',(0.,0.,-1.)); +#39314=DIRECTION('',(-1.,0.,0.)); +#39315=DIRECTION('',(0.,0.,1.)); +#39316=DIRECTION('',(-1.,0.,0.)); +#39317=DIRECTION('',(0.,0.,1.)); +#39318=DIRECTION('',(1.,0.,0.)); +#39319=DIRECTION('',(0.,0.,-1.)); +#39320=DIRECTION('',(-1.,0.,0.)); +#39321=DIRECTION('',(0.,0.,1.)); +#39322=DIRECTION('',(-1.,0.,0.)); +#39323=DIRECTION('',(0.,0.,1.)); +#39324=DIRECTION('',(1.,0.,0.)); +#39325=DIRECTION('',(0.,0.,-1.)); +#39326=DIRECTION('',(-1.,0.,0.)); +#39327=DIRECTION('',(0.,0.,1.)); +#39328=DIRECTION('',(-1.,0.,0.)); +#39329=DIRECTION('',(0.,0.,1.)); +#39330=DIRECTION('',(1.,0.,0.)); +#39331=DIRECTION('',(0.,0.,-1.)); +#39332=DIRECTION('',(-1.,0.,0.)); +#39333=DIRECTION('',(0.,0.,1.)); +#39334=DIRECTION('',(-1.,0.,0.)); +#39335=DIRECTION('',(0.,0.,1.)); +#39336=DIRECTION('',(1.,0.,0.)); +#39337=DIRECTION('',(0.,0.,-1.)); +#39338=DIRECTION('',(-1.,0.,0.)); +#39339=DIRECTION('',(0.,0.,1.)); +#39340=DIRECTION('',(-1.,0.,0.)); +#39341=DIRECTION('',(0.,0.,1.)); +#39342=DIRECTION('',(1.,0.,0.)); +#39343=DIRECTION('',(0.,0.,-1.)); +#39344=DIRECTION('',(-1.,0.,0.)); +#39345=DIRECTION('',(0.,0.,1.)); +#39346=DIRECTION('',(-1.,0.,0.)); +#39347=DIRECTION('',(0.,0.,1.)); +#39348=DIRECTION('',(1.,0.,0.)); +#39349=DIRECTION('',(0.,0.,-1.)); +#39350=DIRECTION('',(-1.,0.,0.)); +#39351=DIRECTION('',(0.,0.,1.)); +#39352=DIRECTION('',(-1.,0.,0.)); +#39353=DIRECTION('',(0.,0.,1.)); +#39354=DIRECTION('',(1.,0.,0.)); +#39355=DIRECTION('',(0.,0.,-1.)); +#39356=DIRECTION('',(-1.,0.,0.)); +#39357=DIRECTION('',(0.,0.,1.)); +#39358=DIRECTION('',(-1.,0.,0.)); +#39359=DIRECTION('',(0.,0.,1.)); +#39360=DIRECTION('',(1.,0.,0.)); +#39361=DIRECTION('',(0.,0.,-1.)); +#39362=DIRECTION('',(-1.,0.,0.)); +#39363=DIRECTION('',(0.,0.,1.)); +#39364=DIRECTION('',(-1.,0.,0.)); +#39365=DIRECTION('',(0.,0.,1.)); +#39366=DIRECTION('',(1.,0.,0.)); +#39367=DIRECTION('',(0.,0.,-1.)); +#39368=DIRECTION('',(-1.,0.,0.)); +#39369=DIRECTION('',(0.,0.,1.)); +#39370=DIRECTION('',(-1.,0.,0.)); +#39371=DIRECTION('',(0.,0.,1.)); +#39372=DIRECTION('',(1.,0.,0.)); +#39373=DIRECTION('',(0.,0.,-1.)); +#39374=DIRECTION('',(-1.,0.,0.)); +#39375=DIRECTION('',(0.,0.,1.)); +#39376=DIRECTION('',(-1.,0.,0.)); +#39377=DIRECTION('',(0.,0.,1.)); +#39378=DIRECTION('',(1.,0.,0.)); +#39379=DIRECTION('',(0.,0.,-1.)); +#39380=DIRECTION('',(-1.,0.,0.)); +#39381=DIRECTION('',(-1.,0.,0.)); +#39382=DIRECTION('',(0.,0.,1.)); +#39383=DIRECTION('',(-1.,0.,0.)); +#39384=DIRECTION('',(0.,0.,1.)); +#39385=DIRECTION('',(1.,0.,0.)); +#39386=DIRECTION('',(0.,0.,-1.)); +#39387=DIRECTION('',(-1.,0.,0.)); +#39388=DIRECTION('',(-1.,0.,0.)); +#39389=DIRECTION('',(0.,0.,1.)); +#39390=DIRECTION('',(-1.,0.,0.)); +#39391=DIRECTION('',(0.,0.,1.)); +#39392=DIRECTION('',(1.,0.,0.)); +#39393=DIRECTION('',(0.,0.,-1.)); +#39394=DIRECTION('',(-1.,0.,0.)); +#39395=DIRECTION('',(-1.,0.,0.)); +#39396=DIRECTION('',(0.,0.,1.)); +#39397=DIRECTION('',(-1.,0.,0.)); +#39398=DIRECTION('',(0.,0.,1.)); +#39399=DIRECTION('',(1.,0.,0.)); +#39400=DIRECTION('',(0.,0.,-1.)); +#39401=DIRECTION('',(-1.,0.,0.)); +#39402=DIRECTION('',(-1.,0.,0.)); +#39403=DIRECTION('',(0.,0.,1.)); +#39404=DIRECTION('',(-1.,0.,0.)); +#39405=DIRECTION('',(0.,0.,1.)); +#39406=DIRECTION('',(1.,0.,0.)); +#39407=DIRECTION('',(0.,0.,-1.)); +#39408=DIRECTION('',(-1.,0.,0.)); +#39409=DIRECTION('',(-1.,0.,0.)); +#39410=DIRECTION('',(0.,0.,1.)); +#39411=DIRECTION('',(-1.,0.,0.)); +#39412=DIRECTION('',(0.,0.,1.)); +#39413=DIRECTION('',(1.,0.,0.)); +#39414=DIRECTION('',(0.,0.,-1.)); +#39415=DIRECTION('',(-1.,0.,0.)); +#39416=DIRECTION('',(-1.,0.,0.)); +#39417=DIRECTION('',(0.,0.,1.)); +#39418=DIRECTION('',(-1.,0.,0.)); +#39419=DIRECTION('',(0.,0.,1.)); +#39420=DIRECTION('',(1.,0.,0.)); +#39421=DIRECTION('',(0.,0.,-1.)); +#39422=DIRECTION('',(-1.,0.,0.)); +#39423=DIRECTION('',(-1.,0.,0.)); +#39424=DIRECTION('',(0.,0.,1.)); +#39425=DIRECTION('',(-1.,0.,0.)); +#39426=DIRECTION('',(0.,0.,1.)); +#39427=DIRECTION('',(1.,0.,0.)); +#39428=DIRECTION('',(0.,0.,-1.)); +#39429=DIRECTION('',(-1.,0.,0.)); +#39430=DIRECTION('',(-1.,0.,0.)); +#39431=DIRECTION('',(0.,0.,1.)); +#39432=DIRECTION('',(-1.,0.,0.)); +#39433=DIRECTION('',(0.,0.,1.)); +#39434=DIRECTION('',(1.,0.,0.)); +#39435=DIRECTION('',(0.,0.,-1.)); +#39436=DIRECTION('',(-1.,0.,0.)); +#39437=DIRECTION('',(-1.,0.,0.)); +#39438=DIRECTION('',(0.,0.,1.)); +#39439=DIRECTION('',(-1.,0.,0.)); +#39440=DIRECTION('',(0.,0.,1.)); +#39441=DIRECTION('',(1.,0.,0.)); +#39442=DIRECTION('',(0.,0.,-1.)); +#39443=DIRECTION('',(-1.,0.,0.)); +#39444=DIRECTION('',(-1.,0.,0.)); +#39445=DIRECTION('',(0.,0.,1.)); +#39446=DIRECTION('',(-1.,0.,0.)); +#39447=DIRECTION('',(0.,0.,1.)); +#39448=DIRECTION('',(1.,0.,0.)); +#39449=DIRECTION('',(0.,0.,-1.)); +#39450=DIRECTION('',(-1.,0.,0.)); +#39451=DIRECTION('',(-1.,0.,0.)); +#39452=DIRECTION('',(0.,0.,1.)); +#39453=DIRECTION('',(-1.,0.,0.)); +#39454=DIRECTION('',(0.,0.,1.)); +#39455=DIRECTION('',(1.,0.,0.)); +#39456=DIRECTION('',(0.,0.,-1.)); +#39457=DIRECTION('',(-1.,0.,0.)); +#39458=DIRECTION('',(-1.,0.,0.)); +#39459=DIRECTION('',(0.,0.,1.)); +#39460=DIRECTION('',(-1.,0.,0.)); +#39461=DIRECTION('',(0.,0.,1.)); +#39462=DIRECTION('',(1.,0.,0.)); +#39463=DIRECTION('',(0.,0.,-1.)); +#39464=DIRECTION('',(-1.,0.,0.)); +#39465=DIRECTION('',(-1.,0.,0.)); +#39466=DIRECTION('',(0.,0.,1.)); +#39467=DIRECTION('',(-1.,0.,0.)); +#39468=DIRECTION('',(0.,0.,1.)); +#39469=DIRECTION('',(1.,0.,0.)); +#39470=DIRECTION('',(0.,0.,-1.)); +#39471=DIRECTION('',(-1.,0.,0.)); +#39472=DIRECTION('',(-1.,0.,0.)); +#39473=DIRECTION('',(0.,0.,1.)); +#39474=DIRECTION('',(-1.,0.,0.)); +#39475=DIRECTION('',(0.,0.,1.)); +#39476=DIRECTION('',(1.,0.,0.)); +#39477=DIRECTION('',(0.,0.,-1.)); +#39478=DIRECTION('',(-1.,0.,0.)); +#39479=DIRECTION('',(-1.,0.,0.)); +#39480=DIRECTION('',(0.,0.,1.)); +#39481=DIRECTION('',(-1.,0.,0.)); +#39482=DIRECTION('',(0.,0.,1.)); +#39483=DIRECTION('',(1.,0.,0.)); +#39484=DIRECTION('',(0.,0.,-1.)); +#39485=DIRECTION('',(-1.,0.,0.)); +#39486=DIRECTION('',(-1.,0.,0.)); +#39487=DIRECTION('',(0.,0.,1.)); +#39488=DIRECTION('',(-1.,0.,0.)); +#39489=DIRECTION('',(0.,0.,1.)); +#39490=DIRECTION('',(1.,0.,0.)); +#39491=DIRECTION('',(0.,0.,-1.)); +#39492=DIRECTION('',(-1.,0.,0.)); +#39493=DIRECTION('',(-1.,0.,0.)); +#39494=DIRECTION('',(0.,0.,1.)); +#39495=DIRECTION('',(-1.,0.,0.)); +#39496=DIRECTION('',(0.,0.,1.)); +#39497=DIRECTION('',(1.,0.,0.)); +#39498=DIRECTION('',(0.,0.,-1.)); +#39499=DIRECTION('',(-1.,0.,0.)); +#39500=DIRECTION('',(-1.,0.,0.)); +#39501=DIRECTION('',(0.,0.,1.)); +#39502=DIRECTION('',(-1.,0.,0.)); +#39503=DIRECTION('',(0.,0.,1.)); +#39504=DIRECTION('',(1.,0.,0.)); +#39505=DIRECTION('',(0.,0.,-1.)); +#39506=DIRECTION('',(-1.,0.,0.)); +#39507=DIRECTION('',(-1.,0.,0.)); +#39508=DIRECTION('',(0.,0.,1.)); +#39509=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39510=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39511=DIRECTION('',(-1.,0.,0.)); +#39512=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39513=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39514=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39515=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39516=DIRECTION('',(-1.,0.,0.)); +#39517=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39518=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39519=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39520=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39521=DIRECTION('',(-1.,0.,0.)); +#39522=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39523=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39524=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39525=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39526=DIRECTION('',(-1.,0.,0.)); +#39527=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39528=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39529=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39530=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39531=DIRECTION('',(-1.,0.,0.)); +#39532=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39533=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39534=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39535=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39536=DIRECTION('',(-1.,0.,0.)); +#39537=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39538=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39539=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39540=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39541=DIRECTION('',(-1.,0.,0.)); +#39542=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39543=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39544=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39545=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39546=DIRECTION('',(-1.,0.,0.)); +#39547=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39548=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39549=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39550=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39551=DIRECTION('',(-1.,0.,0.)); +#39552=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39553=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39554=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39555=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39556=DIRECTION('',(-1.,0.,0.)); +#39557=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39558=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39559=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39560=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39561=DIRECTION('',(-1.,0.,0.)); +#39562=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39563=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39564=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39565=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39566=DIRECTION('',(-1.,0.,0.)); +#39567=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39568=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39569=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39570=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39571=DIRECTION('',(-1.,0.,0.)); +#39572=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39573=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39574=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39575=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39576=DIRECTION('',(-1.,0.,0.)); +#39577=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39578=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39579=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39580=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39581=DIRECTION('',(-1.,0.,0.)); +#39582=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39583=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39584=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39585=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39586=DIRECTION('',(-1.,0.,0.)); +#39587=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39588=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39589=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39590=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39591=DIRECTION('',(-1.,0.,0.)); +#39592=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39593=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39594=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39595=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39596=DIRECTION('',(-1.,0.,0.)); +#39597=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39598=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39599=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39600=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39601=DIRECTION('',(-1.,0.,0.)); +#39602=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39603=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39604=DIRECTION('',(-1.,0.,0.)); +#39605=DIRECTION('',(0.,0.,1.)); +#39606=DIRECTION('',(-1.,0.,0.)); +#39607=DIRECTION('',(0.,0.,1.)); +#39608=DIRECTION('',(1.,0.,0.)); +#39609=DIRECTION('',(0.,0.,-1.)); +#39610=DIRECTION('',(-1.,0.,0.)); +#39611=DIRECTION('',(0.,0.,1.)); +#39612=DIRECTION('',(-1.,0.,0.)); +#39613=DIRECTION('',(0.,0.,1.)); +#39614=DIRECTION('',(1.,0.,0.)); +#39615=DIRECTION('',(0.,0.,-1.)); +#39616=DIRECTION('',(-1.,0.,0.)); +#39617=DIRECTION('',(0.,0.,1.)); +#39618=DIRECTION('',(-1.,0.,0.)); +#39619=DIRECTION('',(0.,0.,1.)); +#39620=DIRECTION('',(1.,0.,0.)); +#39621=DIRECTION('',(0.,0.,-1.)); +#39622=DIRECTION('',(-1.,0.,0.)); +#39623=DIRECTION('',(0.,0.,1.)); +#39624=DIRECTION('',(-1.,0.,0.)); +#39625=DIRECTION('',(0.,0.,1.)); +#39626=DIRECTION('',(1.,0.,0.)); +#39627=DIRECTION('',(0.,0.,-1.)); +#39628=DIRECTION('',(-1.,0.,0.)); +#39629=DIRECTION('',(0.,0.,1.)); +#39630=DIRECTION('',(-1.,0.,0.)); +#39631=DIRECTION('',(0.,0.,1.)); +#39632=DIRECTION('',(1.,0.,0.)); +#39633=DIRECTION('',(0.,0.,-1.)); +#39634=DIRECTION('',(-1.,0.,0.)); +#39635=DIRECTION('',(0.,0.,1.)); +#39636=DIRECTION('',(-1.,0.,0.)); +#39637=DIRECTION('',(0.,0.,1.)); +#39638=DIRECTION('',(1.,0.,0.)); +#39639=DIRECTION('',(0.,0.,-1.)); +#39640=DIRECTION('',(-1.,0.,0.)); +#39641=DIRECTION('',(0.,0.,1.)); +#39642=DIRECTION('',(-1.,0.,0.)); +#39643=DIRECTION('',(0.,0.,1.)); +#39644=DIRECTION('',(1.,0.,0.)); +#39645=DIRECTION('',(0.,0.,-1.)); +#39646=DIRECTION('',(-1.,0.,0.)); +#39647=DIRECTION('',(0.,0.,1.)); +#39648=DIRECTION('',(-1.,0.,0.)); +#39649=DIRECTION('',(0.,0.,1.)); +#39650=DIRECTION('',(1.,0.,0.)); +#39651=DIRECTION('',(0.,0.,-1.)); +#39652=DIRECTION('',(-1.,0.,0.)); +#39653=DIRECTION('',(0.,0.,1.)); +#39654=DIRECTION('',(-1.,0.,0.)); +#39655=DIRECTION('',(0.,0.,1.)); +#39656=DIRECTION('',(1.,0.,0.)); +#39657=DIRECTION('',(0.,0.,-1.)); +#39658=DIRECTION('',(-1.,0.,0.)); +#39659=DIRECTION('',(0.,0.,1.)); +#39660=DIRECTION('',(-1.,0.,0.)); +#39661=DIRECTION('',(0.,0.,1.)); +#39662=DIRECTION('',(1.,0.,0.)); +#39663=DIRECTION('',(0.,0.,-1.)); +#39664=DIRECTION('',(-1.,0.,0.)); +#39665=DIRECTION('',(0.,0.,1.)); +#39666=DIRECTION('',(-1.,0.,0.)); +#39667=DIRECTION('',(0.,0.,1.)); +#39668=DIRECTION('',(1.,0.,0.)); +#39669=DIRECTION('',(0.,0.,-1.)); +#39670=DIRECTION('',(-1.,0.,0.)); +#39671=DIRECTION('',(0.,0.,1.)); +#39672=DIRECTION('',(-1.,0.,0.)); +#39673=DIRECTION('',(0.,0.,1.)); +#39674=DIRECTION('',(1.,0.,0.)); +#39675=DIRECTION('',(0.,0.,-1.)); +#39676=DIRECTION('',(-1.,0.,0.)); +#39677=DIRECTION('',(0.,0.,1.)); +#39678=DIRECTION('',(-1.,0.,0.)); +#39679=DIRECTION('',(0.,0.,1.)); +#39680=DIRECTION('',(1.,0.,0.)); +#39681=DIRECTION('',(0.,0.,-1.)); +#39682=DIRECTION('',(-1.,0.,0.)); +#39683=DIRECTION('',(0.,0.,1.)); +#39684=DIRECTION('',(-1.,0.,0.)); +#39685=DIRECTION('',(0.,0.,1.)); +#39686=DIRECTION('',(1.,0.,0.)); +#39687=DIRECTION('',(0.,0.,-1.)); +#39688=DIRECTION('',(-1.,0.,0.)); +#39689=DIRECTION('',(0.,0.,1.)); +#39690=DIRECTION('',(-1.,0.,0.)); +#39691=DIRECTION('',(0.,0.,1.)); +#39692=DIRECTION('',(1.,0.,0.)); +#39693=DIRECTION('',(0.,0.,-1.)); +#39694=DIRECTION('',(-1.,0.,0.)); +#39695=DIRECTION('',(0.,0.,1.)); +#39696=DIRECTION('',(-1.,0.,0.)); +#39697=DIRECTION('',(0.,0.,1.)); +#39698=DIRECTION('',(1.,0.,0.)); +#39699=DIRECTION('',(0.,0.,-1.)); +#39700=DIRECTION('',(-1.,0.,0.)); +#39701=DIRECTION('',(0.,0.,1.)); +#39702=DIRECTION('',(-1.,0.,0.)); +#39703=DIRECTION('',(0.,0.,1.)); +#39704=DIRECTION('',(1.,0.,0.)); +#39705=DIRECTION('',(0.,0.,-1.)); +#39706=DIRECTION('',(-1.,0.,0.)); +#39707=DIRECTION('',(0.,0.,1.)); +#39708=DIRECTION('',(-1.,0.,0.)); +#39709=DIRECTION('',(0.,0.,1.)); +#39710=DIRECTION('',(1.,0.,0.)); +#39711=DIRECTION('',(0.,0.,-1.)); +#39712=DIRECTION('',(-1.,0.,0.)); +#39713=DIRECTION('',(0.,0.,1.)); +#39714=DIRECTION('',(-1.,0.,0.)); +#39715=DIRECTION('',(0.,0.,1.)); +#39716=DIRECTION('',(1.,0.,0.)); +#39717=DIRECTION('',(0.,0.,-1.)); +#39718=DIRECTION('',(-1.,0.,0.)); +#39719=DIRECTION('',(0.,0.,1.)); +#39720=DIRECTION('',(-1.,0.,0.)); +#39721=DIRECTION('',(0.,0.,1.)); +#39722=DIRECTION('',(1.,0.,0.)); +#39723=DIRECTION('',(0.,0.,-1.)); +#39724=DIRECTION('',(-1.,0.,0.)); +#39725=DIRECTION('',(0.,0.,1.)); +#39726=DIRECTION('',(-1.,0.,0.)); +#39727=DIRECTION('',(0.,0.,1.)); +#39728=DIRECTION('',(1.,0.,0.)); +#39729=DIRECTION('',(0.,0.,-1.)); +#39730=DIRECTION('',(-1.,0.,0.)); +#39731=DIRECTION('',(0.,0.,1.)); +#39732=DIRECTION('',(-1.,0.,0.)); +#39733=DIRECTION('',(0.,0.,1.)); +#39734=DIRECTION('',(1.,0.,0.)); +#39735=DIRECTION('',(0.,0.,-1.)); +#39736=DIRECTION('',(-1.,0.,0.)); +#39737=DIRECTION('',(0.,0.,1.)); +#39738=DIRECTION('',(-1.,0.,0.)); +#39739=DIRECTION('',(0.,0.,1.)); +#39740=DIRECTION('',(1.,0.,0.)); +#39741=DIRECTION('',(0.,0.,-1.)); +#39742=DIRECTION('',(-1.,0.,0.)); +#39743=DIRECTION('',(0.,0.,1.)); +#39744=DIRECTION('',(-1.,0.,0.)); +#39745=DIRECTION('',(0.,0.,1.)); +#39746=DIRECTION('',(1.,0.,0.)); +#39747=DIRECTION('',(0.,0.,-1.)); +#39748=DIRECTION('',(-1.,0.,0.)); +#39749=DIRECTION('',(0.,0.,1.)); +#39750=DIRECTION('',(-1.,0.,0.)); +#39751=DIRECTION('',(0.,0.,1.)); +#39752=DIRECTION('',(1.,0.,0.)); +#39753=DIRECTION('',(0.,0.,-1.)); +#39754=DIRECTION('',(-1.,0.,0.)); +#39755=DIRECTION('',(0.,0.,1.)); +#39756=DIRECTION('',(-1.,0.,0.)); +#39757=DIRECTION('',(0.,0.,1.)); +#39758=DIRECTION('',(1.,0.,0.)); +#39759=DIRECTION('',(0.,0.,-1.)); +#39760=DIRECTION('',(-1.,0.,0.)); +#39761=DIRECTION('',(0.,0.,1.)); +#39762=DIRECTION('',(-1.,0.,0.)); +#39763=DIRECTION('',(0.,0.,1.)); +#39764=DIRECTION('',(1.,0.,0.)); +#39765=DIRECTION('',(0.,0.,-1.)); +#39766=DIRECTION('',(-1.,0.,0.)); +#39767=DIRECTION('',(0.,0.,1.)); +#39768=DIRECTION('',(-1.,0.,0.)); +#39769=DIRECTION('',(0.,0.,1.)); +#39770=DIRECTION('',(1.,0.,0.)); +#39771=DIRECTION('',(0.,0.,-1.)); +#39772=DIRECTION('',(-1.,0.,0.)); +#39773=DIRECTION('',(0.,0.,1.)); +#39774=DIRECTION('',(-1.,0.,0.)); +#39775=DIRECTION('',(0.,0.,1.)); +#39776=DIRECTION('',(1.,0.,0.)); +#39777=DIRECTION('',(0.,0.,-1.)); +#39778=DIRECTION('',(-1.,0.,0.)); +#39779=DIRECTION('',(0.,0.,1.)); +#39780=DIRECTION('',(-1.,0.,0.)); +#39781=DIRECTION('',(0.,0.,1.)); +#39782=DIRECTION('',(1.,0.,0.)); +#39783=DIRECTION('',(0.,0.,-1.)); +#39784=DIRECTION('',(-1.,0.,0.)); +#39785=DIRECTION('',(0.,0.,1.)); +#39786=DIRECTION('',(-1.,0.,0.)); +#39787=DIRECTION('',(0.,0.,1.)); +#39788=DIRECTION('',(1.,0.,0.)); +#39789=DIRECTION('',(0.,0.,-1.)); +#39790=DIRECTION('',(-1.,0.,0.)); +#39791=DIRECTION('',(0.,0.,1.)); +#39792=DIRECTION('',(-1.,0.,0.)); +#39793=DIRECTION('',(0.,0.,1.)); +#39794=DIRECTION('',(1.,0.,0.)); +#39795=DIRECTION('',(0.,0.,-1.)); +#39796=DIRECTION('',(-1.,0.,0.)); +#39797=DIRECTION('',(0.,0.,1.)); +#39798=DIRECTION('',(-1.,0.,0.)); +#39799=DIRECTION('',(0.,0.,1.)); +#39800=DIRECTION('',(1.,0.,0.)); +#39801=DIRECTION('',(0.,0.,-1.)); +#39802=DIRECTION('',(-1.,0.,0.)); +#39803=DIRECTION('',(0.,0.,1.)); +#39804=DIRECTION('',(-1.,0.,0.)); +#39805=DIRECTION('',(0.,0.,1.)); +#39806=DIRECTION('',(1.,0.,0.)); +#39807=DIRECTION('',(0.,0.,-1.)); +#39808=DIRECTION('',(-1.,0.,0.)); +#39809=DIRECTION('',(0.,0.,1.)); +#39810=DIRECTION('',(-1.,0.,0.)); +#39811=DIRECTION('',(0.,0.,1.)); +#39812=DIRECTION('',(1.,0.,0.)); +#39813=DIRECTION('',(0.,0.,-1.)); +#39814=DIRECTION('',(-1.,0.,0.)); +#39815=DIRECTION('',(0.,0.,1.)); +#39816=DIRECTION('',(-1.,0.,0.)); +#39817=DIRECTION('',(0.,0.,1.)); +#39818=DIRECTION('',(1.,0.,0.)); +#39819=DIRECTION('',(0.,0.,-1.)); +#39820=DIRECTION('',(-1.,0.,0.)); +#39821=DIRECTION('',(0.,0.,1.)); +#39822=DIRECTION('',(-1.,0.,0.)); +#39823=DIRECTION('',(0.,0.,1.)); +#39824=DIRECTION('',(1.,0.,0.)); +#39825=DIRECTION('',(0.,0.,-1.)); +#39826=DIRECTION('',(-1.,0.,0.)); +#39827=DIRECTION('',(0.,0.,1.)); +#39828=DIRECTION('',(-1.,0.,0.)); +#39829=DIRECTION('',(0.,0.,1.)); +#39830=DIRECTION('',(1.,0.,0.)); +#39831=DIRECTION('',(0.,0.,-1.)); +#39832=DIRECTION('',(0.,-0.499999999999999,-0.866025403784439)); +#39833=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39834=DIRECTION('',(-1.,0.,0.)); +#39835=DIRECTION('',(0.,0.866025403784439,-0.499999999999999)); +#39836=DIRECTION('',(-1.,0.,0.)); +#39837=DIRECTION('',(0.,-0.866025403784439,0.499999999999999)); +#39838=DIRECTION('',(-1.,0.,0.)); +#39839=DIRECTION('',(0.,0.,1.)); +#39840=DIRECTION('',(1.,0.,0.)); +#39841=DIRECTION('',(0.,0.,-1.)); +#39842=DIRECTION('',(-1.,0.,0.)); +#39843=DIRECTION('',(0.,0.,1.)); +#39844=DIRECTION('',(-1.,0.,0.)); +#39845=DIRECTION('',(0.,0.,1.)); +#39846=DIRECTION('',(1.,0.,0.)); +#39847=DIRECTION('',(0.,0.,-1.)); +#39848=DIRECTION('',(-1.,0.,0.)); +#39849=DIRECTION('',(-1.,0.,0.)); +#39850=DIRECTION('',(0.,0.,1.)); +#39851=DIRECTION('',(0.,-0.499999999999999,0.866025403784439)); +#39852=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39853=DIRECTION('',(-1.,0.,0.)); +#39854=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999)); +#39855=DIRECTION('',(0.,0.866025403784439,0.499999999999999)); +#39856=DIRECTION('',(-1.,0.,0.)); +#39857=DIRECTION('',(0.,0.,1.)); +#39858=DIRECTION('',(-1.,0.,0.)); +#39859=DIRECTION('',(0.,0.,1.)); +#39860=DIRECTION('',(1.,0.,0.)); +#39861=DIRECTION('',(0.,0.,-1.)); +#39862=DIRECTION('',(-1.,0.,0.)); +#39863=DIRECTION('',(0.,0.,1.)); +#39864=DIRECTION('',(-1.,0.,0.)); +#39865=DIRECTION('',(0.,0.,1.)); +#39866=DIRECTION('',(1.,0.,0.)); +#39867=DIRECTION('',(0.,0.,-1.)); +#39868=DIRECTION('',(0.,1.,0.)); +#39869=DIRECTION('',(0.,0.,1.)); +#39870=DIRECTION('',(0.,0.,-1.)); +#39871=DIRECTION('',(1.,0.,0.)); +#39872=DIRECTION('',(0.,0.,-1.)); +#39873=DIRECTION('',(0.,1.,0.)); +#39874=DIRECTION('',(0.,0.,1.)); +#39875=DIRECTION('',(0.,0.,-1.)); +#39876=DIRECTION('',(1.,0.,0.)); +#39877=DIRECTION('',(0.,0.,-1.)); +#39878=DIRECTION('',(6.19544098563143E-16,1.,0.)); +#39879=DIRECTION('',(-1.,6.19544098563143E-16,0.)); +#39880=DIRECTION('',(0.,0.,-1.)); +#39881=DIRECTION('',(-1.,0.,0.)); +#39882=DIRECTION('',(0.,0.,1.)); +#39883=DIRECTION('',(6.19544098563143E-16,1.,0.)); +#39884=DIRECTION('',(-1.,6.19544098563143E-16,0.)); +#39885=DIRECTION('',(0.,0.,-1.)); +#39886=DIRECTION('',(-1.,0.,0.)); +#39887=DIRECTION('',(0.,0.,1.)); +#39888=DIRECTION('',(-1.,0.,0.)); +#39889=DIRECTION('',(0.,0.,1.)); +#39890=DIRECTION('',(0.,0.,-1.)); +#39891=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39892=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39893=DIRECTION('',(1.,0.,0.)); +#39894=DIRECTION('',(0.,0.,-1.)); +#39895=DIRECTION('',(0.,0.,-1.)); +#39896=DIRECTION('',(0.,1.,0.)); +#39897=DIRECTION('',(0.,0.,1.)); +#39898=DIRECTION('',(-1.,0.,0.)); +#39899=DIRECTION('',(0.,0.,1.)); +#39900=DIRECTION('',(0.,0.,-1.)); +#39901=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39902=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39903=DIRECTION('',(1.,0.,0.)); +#39904=DIRECTION('',(0.,0.,-1.)); +#39905=DIRECTION('',(0.,0.,-1.)); +#39906=DIRECTION('',(0.,1.,0.)); +#39907=DIRECTION('',(0.,0.,1.)); +#39908=DIRECTION('',(-1.,0.,0.)); +#39909=DIRECTION('',(0.,0.,1.)); +#39910=DIRECTION('',(0.,0.,-1.)); +#39911=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39912=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39913=DIRECTION('',(1.,0.,0.)); +#39914=DIRECTION('',(0.,0.,-1.)); +#39915=DIRECTION('',(0.,0.,-1.)); +#39916=DIRECTION('',(0.,1.,0.)); +#39917=DIRECTION('',(0.,0.,1.)); +#39918=DIRECTION('',(-1.,0.,0.)); +#39919=DIRECTION('',(0.,0.,1.)); +#39920=DIRECTION('',(0.,0.,-1.)); +#39921=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39922=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39923=DIRECTION('',(1.,0.,0.)); +#39924=DIRECTION('',(0.,0.,-1.)); +#39925=DIRECTION('',(0.,0.,-1.)); +#39926=DIRECTION('',(0.,1.,0.)); +#39927=DIRECTION('',(0.,0.,1.)); +#39928=DIRECTION('',(-1.,0.,0.)); +#39929=DIRECTION('',(0.,0.,1.)); +#39930=DIRECTION('',(0.,0.,-1.)); +#39931=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39932=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39933=DIRECTION('',(1.,0.,0.)); +#39934=DIRECTION('',(0.,0.,-1.)); +#39935=DIRECTION('',(0.,0.,-1.)); +#39936=DIRECTION('',(0.,1.,0.)); +#39937=DIRECTION('',(0.,0.,1.)); +#39938=DIRECTION('',(-1.,0.,0.)); +#39939=DIRECTION('',(0.,0.,1.)); +#39940=DIRECTION('',(0.,0.,-1.)); +#39941=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39942=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39943=DIRECTION('',(1.,0.,0.)); +#39944=DIRECTION('',(0.,0.,-1.)); +#39945=DIRECTION('',(0.,0.,-1.)); +#39946=DIRECTION('',(0.,1.,0.)); +#39947=DIRECTION('',(0.,0.,1.)); +#39948=DIRECTION('',(-1.,0.,0.)); +#39949=DIRECTION('',(0.,0.,1.)); +#39950=DIRECTION('',(0.,0.,-1.)); +#39951=DIRECTION('',(6.19544098563145E-16,1.,0.)); +#39952=DIRECTION('',(-1.,6.19544098563145E-16,0.)); +#39953=DIRECTION('',(1.,0.,0.)); +#39954=DIRECTION('',(0.,0.,-1.)); +#39955=DIRECTION('',(0.,0.,-1.)); +#39956=DIRECTION('',(0.,1.,0.)); +#39957=DIRECTION('',(0.,0.,1.)); +#39958=DIRECTION('',(-1.,0.,0.)); +#39959=DIRECTION('',(0.,0.,1.)); +#39960=DIRECTION('',(0.,0.,-1.)); +#39961=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39962=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39963=DIRECTION('',(1.,0.,0.)); +#39964=DIRECTION('',(0.,0.,-1.)); +#39965=DIRECTION('',(0.,0.,-1.)); +#39966=DIRECTION('',(0.,1.,0.)); +#39967=DIRECTION('',(0.,0.,1.)); +#39968=DIRECTION('',(-1.,0.,0.)); +#39969=DIRECTION('',(0.,0.,1.)); +#39970=DIRECTION('',(0.,0.,-1.)); +#39971=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39972=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39973=DIRECTION('',(1.,0.,0.)); +#39974=DIRECTION('',(0.,0.,-1.)); +#39975=DIRECTION('',(0.,0.,-1.)); +#39976=DIRECTION('',(0.,1.,0.)); +#39977=DIRECTION('',(0.,0.,1.)); +#39978=DIRECTION('',(-1.,0.,0.)); +#39979=DIRECTION('',(0.,0.,1.)); +#39980=DIRECTION('',(0.,0.,-1.)); +#39981=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39982=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39983=DIRECTION('',(1.,0.,0.)); +#39984=DIRECTION('',(0.,0.,-1.)); +#39985=DIRECTION('',(0.,0.,-1.)); +#39986=DIRECTION('',(0.,1.,0.)); +#39987=DIRECTION('',(0.,0.,1.)); +#39988=DIRECTION('',(-1.,0.,0.)); +#39989=DIRECTION('',(0.,0.,1.)); +#39990=DIRECTION('',(0.,0.,-1.)); +#39991=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#39992=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#39993=DIRECTION('',(1.,0.,0.)); +#39994=DIRECTION('',(0.,0.,-1.)); +#39995=DIRECTION('',(0.,0.,-1.)); +#39996=DIRECTION('',(0.,1.,0.)); +#39997=DIRECTION('',(0.,0.,1.)); +#39998=DIRECTION('',(-1.,0.,0.)); +#39999=DIRECTION('',(0.,0.,1.)); +#40000=DIRECTION('',(0.,0.,-1.)); +#40001=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40002=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40003=DIRECTION('',(1.,0.,0.)); +#40004=DIRECTION('',(0.,0.,-1.)); +#40005=DIRECTION('',(0.,0.,-1.)); +#40006=DIRECTION('',(0.,1.,0.)); +#40007=DIRECTION('',(0.,0.,1.)); +#40008=DIRECTION('',(-1.,0.,0.)); +#40009=DIRECTION('',(0.,0.,1.)); +#40010=DIRECTION('',(0.,0.,-1.)); +#40011=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40012=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40013=DIRECTION('',(1.,0.,0.)); +#40014=DIRECTION('',(0.,0.,-1.)); +#40015=DIRECTION('',(0.,0.,-1.)); +#40016=DIRECTION('',(0.,1.,0.)); +#40017=DIRECTION('',(0.,0.,1.)); +#40018=DIRECTION('',(-1.,0.,0.)); +#40019=DIRECTION('',(0.,0.,1.)); +#40020=DIRECTION('',(0.,0.,-1.)); +#40021=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40022=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40023=DIRECTION('',(1.,0.,0.)); +#40024=DIRECTION('',(0.,0.,-1.)); +#40025=DIRECTION('',(0.,0.,-1.)); +#40026=DIRECTION('',(0.,1.,0.)); +#40027=DIRECTION('',(0.,0.,1.)); +#40028=DIRECTION('',(-1.,0.,0.)); +#40029=DIRECTION('',(0.,0.,1.)); +#40030=DIRECTION('',(0.,0.,-1.)); +#40031=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40032=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40033=DIRECTION('',(1.,0.,0.)); +#40034=DIRECTION('',(0.,0.,-1.)); +#40035=DIRECTION('',(0.,0.,-1.)); +#40036=DIRECTION('',(0.,1.,0.)); +#40037=DIRECTION('',(0.,0.,1.)); +#40038=DIRECTION('',(-1.,0.,0.)); +#40039=DIRECTION('',(0.,0.,1.)); +#40040=DIRECTION('',(0.,0.,-1.)); +#40041=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40042=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40043=DIRECTION('',(1.,0.,0.)); +#40044=DIRECTION('',(0.,0.,-1.)); +#40045=DIRECTION('',(0.,0.,-1.)); +#40046=DIRECTION('',(0.,1.,0.)); +#40047=DIRECTION('',(0.,0.,1.)); +#40048=DIRECTION('',(-1.,0.,0.)); +#40049=DIRECTION('',(0.,0.,1.)); +#40050=DIRECTION('',(0.,0.,-1.)); +#40051=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40052=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40053=DIRECTION('',(1.,0.,0.)); +#40054=DIRECTION('',(0.,0.,-1.)); +#40055=DIRECTION('',(0.,0.,-1.)); +#40056=DIRECTION('',(0.,1.,0.)); +#40057=DIRECTION('',(0.,0.,1.)); +#40058=DIRECTION('',(-1.,0.,0.)); +#40059=DIRECTION('',(0.,0.,1.)); +#40060=DIRECTION('',(0.,0.,-1.)); +#40061=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40062=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40063=DIRECTION('',(1.,0.,0.)); +#40064=DIRECTION('',(0.,0.,-1.)); +#40065=DIRECTION('',(0.,0.,-1.)); +#40066=DIRECTION('',(0.,1.,0.)); +#40067=DIRECTION('',(0.,0.,1.)); +#40068=DIRECTION('',(-1.,0.,0.)); +#40069=DIRECTION('',(0.,0.,1.)); +#40070=DIRECTION('',(0.,0.,-1.)); +#40071=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40072=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40073=DIRECTION('',(1.,0.,0.)); +#40074=DIRECTION('',(0.,0.,-1.)); +#40075=DIRECTION('',(0.,0.,-1.)); +#40076=DIRECTION('',(0.,1.,0.)); +#40077=DIRECTION('',(0.,0.,1.)); +#40078=DIRECTION('',(-1.,0.,0.)); +#40079=DIRECTION('',(0.,0.,1.)); +#40080=DIRECTION('',(0.,0.,-1.)); +#40081=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40082=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40083=DIRECTION('',(0.,1.,0.)); +#40084=DIRECTION('',(0.,0.,1.)); +#40085=DIRECTION('',(0.,0.,-1.)); +#40086=DIRECTION('',(1.,0.,0.)); +#40087=DIRECTION('',(0.,0.,-1.)); +#40088=DIRECTION('',(-1.,0.,0.)); +#40089=DIRECTION('',(0.,0.,1.)); +#40090=DIRECTION('',(0.,0.,-1.)); +#40091=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40092=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40093=DIRECTION('',(0.,1.,0.)); +#40094=DIRECTION('',(0.,0.,1.)); +#40095=DIRECTION('',(0.,0.,-1.)); +#40096=DIRECTION('',(1.,0.,0.)); +#40097=DIRECTION('',(0.,0.,-1.)); +#40098=DIRECTION('',(-1.,0.,0.)); +#40099=DIRECTION('',(0.,0.,1.)); +#40100=DIRECTION('',(0.,0.,-1.)); +#40101=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40102=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40103=DIRECTION('',(0.,1.,0.)); +#40104=DIRECTION('',(0.,0.,1.)); +#40105=DIRECTION('',(0.,0.,-1.)); +#40106=DIRECTION('',(1.,0.,0.)); +#40107=DIRECTION('',(0.,0.,-1.)); +#40108=DIRECTION('',(-1.,0.,0.)); +#40109=DIRECTION('',(0.,0.,1.)); +#40110=DIRECTION('',(0.,0.,-1.)); +#40111=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40112=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40113=DIRECTION('',(0.,1.,0.)); +#40114=DIRECTION('',(0.,0.,1.)); +#40115=DIRECTION('',(0.,0.,-1.)); +#40116=DIRECTION('',(1.,0.,0.)); +#40117=DIRECTION('',(0.,0.,-1.)); +#40118=DIRECTION('',(-1.,0.,0.)); +#40119=DIRECTION('',(0.,0.,1.)); +#40120=DIRECTION('',(0.,0.,-1.)); +#40121=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40122=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40123=DIRECTION('',(0.,1.,0.)); +#40124=DIRECTION('',(0.,0.,1.)); +#40125=DIRECTION('',(0.,0.,-1.)); +#40126=DIRECTION('',(1.,0.,0.)); +#40127=DIRECTION('',(0.,0.,-1.)); +#40128=DIRECTION('',(-1.,0.,0.)); +#40129=DIRECTION('',(0.,0.,1.)); +#40130=DIRECTION('',(0.,0.,-1.)); +#40131=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40132=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40133=DIRECTION('',(0.,1.,0.)); +#40134=DIRECTION('',(0.,0.,1.)); +#40135=DIRECTION('',(0.,0.,-1.)); +#40136=DIRECTION('',(1.,0.,0.)); +#40137=DIRECTION('',(0.,0.,-1.)); +#40138=DIRECTION('',(-1.,0.,0.)); +#40139=DIRECTION('',(0.,0.,1.)); +#40140=DIRECTION('',(0.,0.,-1.)); +#40141=DIRECTION('',(6.19544098563145E-16,1.,0.)); +#40142=DIRECTION('',(-1.,6.19544098563145E-16,0.)); +#40143=DIRECTION('',(0.,1.,0.)); +#40144=DIRECTION('',(0.,0.,1.)); +#40145=DIRECTION('',(0.,0.,-1.)); +#40146=DIRECTION('',(1.,0.,0.)); +#40147=DIRECTION('',(0.,0.,-1.)); +#40148=DIRECTION('',(-1.,0.,0.)); +#40149=DIRECTION('',(0.,0.,1.)); +#40150=DIRECTION('',(0.,0.,-1.)); +#40151=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40152=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40153=DIRECTION('',(0.,1.,0.)); +#40154=DIRECTION('',(0.,0.,1.)); +#40155=DIRECTION('',(0.,0.,-1.)); +#40156=DIRECTION('',(1.,0.,0.)); +#40157=DIRECTION('',(0.,0.,-1.)); +#40158=DIRECTION('',(-1.,0.,0.)); +#40159=DIRECTION('',(0.,0.,1.)); +#40160=DIRECTION('',(0.,0.,-1.)); +#40161=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40162=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40163=DIRECTION('',(0.,1.,0.)); +#40164=DIRECTION('',(0.,0.,1.)); +#40165=DIRECTION('',(0.,0.,-1.)); +#40166=DIRECTION('',(1.,0.,0.)); +#40167=DIRECTION('',(0.,0.,-1.)); +#40168=DIRECTION('',(-1.,0.,0.)); +#40169=DIRECTION('',(0.,0.,1.)); +#40170=DIRECTION('',(0.,0.,-1.)); +#40171=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40172=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40173=DIRECTION('',(0.,1.,0.)); +#40174=DIRECTION('',(0.,0.,1.)); +#40175=DIRECTION('',(0.,0.,-1.)); +#40176=DIRECTION('',(1.,0.,0.)); +#40177=DIRECTION('',(0.,0.,-1.)); +#40178=DIRECTION('',(-1.,0.,0.)); +#40179=DIRECTION('',(0.,0.,1.)); +#40180=DIRECTION('',(0.,0.,-1.)); +#40181=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40182=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40183=DIRECTION('',(0.,1.,0.)); +#40184=DIRECTION('',(0.,0.,1.)); +#40185=DIRECTION('',(0.,0.,-1.)); +#40186=DIRECTION('',(1.,0.,0.)); +#40187=DIRECTION('',(0.,0.,-1.)); +#40188=DIRECTION('',(-1.,0.,0.)); +#40189=DIRECTION('',(0.,0.,1.)); +#40190=DIRECTION('',(0.,0.,-1.)); +#40191=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40192=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40193=DIRECTION('',(0.,1.,0.)); +#40194=DIRECTION('',(0.,0.,1.)); +#40195=DIRECTION('',(0.,0.,-1.)); +#40196=DIRECTION('',(1.,0.,0.)); +#40197=DIRECTION('',(0.,0.,-1.)); +#40198=DIRECTION('',(-1.,0.,0.)); +#40199=DIRECTION('',(0.,0.,1.)); +#40200=DIRECTION('',(0.,0.,-1.)); +#40201=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40202=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40203=DIRECTION('',(0.,1.,0.)); +#40204=DIRECTION('',(0.,0.,1.)); +#40205=DIRECTION('',(0.,0.,-1.)); +#40206=DIRECTION('',(1.,0.,0.)); +#40207=DIRECTION('',(0.,0.,-1.)); +#40208=DIRECTION('',(-1.,0.,0.)); +#40209=DIRECTION('',(0.,0.,1.)); +#40210=DIRECTION('',(0.,0.,-1.)); +#40211=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40212=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40213=DIRECTION('',(0.,1.,0.)); +#40214=DIRECTION('',(0.,0.,1.)); +#40215=DIRECTION('',(0.,0.,-1.)); +#40216=DIRECTION('',(1.,0.,0.)); +#40217=DIRECTION('',(0.,0.,-1.)); +#40218=DIRECTION('',(-1.,0.,0.)); +#40219=DIRECTION('',(0.,0.,1.)); +#40220=DIRECTION('',(0.,0.,-1.)); +#40221=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40222=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40223=DIRECTION('',(0.,1.,0.)); +#40224=DIRECTION('',(0.,0.,1.)); +#40225=DIRECTION('',(0.,0.,-1.)); +#40226=DIRECTION('',(1.,0.,0.)); +#40227=DIRECTION('',(0.,0.,-1.)); +#40228=DIRECTION('',(-1.,0.,0.)); +#40229=DIRECTION('',(0.,0.,1.)); +#40230=DIRECTION('',(0.,0.,-1.)); +#40231=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40232=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40233=DIRECTION('',(0.,1.,0.)); +#40234=DIRECTION('',(0.,0.,1.)); +#40235=DIRECTION('',(0.,0.,-1.)); +#40236=DIRECTION('',(1.,0.,0.)); +#40237=DIRECTION('',(0.,0.,-1.)); +#40238=DIRECTION('',(-1.,0.,0.)); +#40239=DIRECTION('',(0.,0.,1.)); +#40240=DIRECTION('',(0.,0.,-1.)); +#40241=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40242=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40243=DIRECTION('',(0.,1.,0.)); +#40244=DIRECTION('',(0.,0.,1.)); +#40245=DIRECTION('',(0.,0.,-1.)); +#40246=DIRECTION('',(1.,0.,0.)); +#40247=DIRECTION('',(0.,0.,-1.)); +#40248=DIRECTION('',(-1.,0.,0.)); +#40249=DIRECTION('',(0.,0.,1.)); +#40250=DIRECTION('',(0.,0.,-1.)); +#40251=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40252=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40253=DIRECTION('',(0.,1.,0.)); +#40254=DIRECTION('',(0.,0.,1.)); +#40255=DIRECTION('',(0.,0.,-1.)); +#40256=DIRECTION('',(1.,0.,0.)); +#40257=DIRECTION('',(0.,0.,-1.)); +#40258=DIRECTION('',(0.,1.,0.)); +#40259=DIRECTION('',(0.,0.,1.)); +#40260=DIRECTION('',(0.,0.,-1.)); +#40261=DIRECTION('',(6.19544098563146E-16,1.,0.)); +#40262=DIRECTION('',(-1.,6.19544098563146E-16,0.)); +#40263=DIRECTION('',(0.,0.,-1.)); +#40264=DIRECTION('',(1.,0.,0.)); +#40265=DIRECTION('',(0.,0.,-1.)); +#40266=DIRECTION('',(-1.,0.,0.)); +#40267=DIRECTION('',(0.,0.,1.)); +#40268=DIRECTION('',(0.,1.,0.)); +#40269=DIRECTION('',(0.,0.,1.)); +#40270=DIRECTION('',(0.,1.,0.)); +#40271=DIRECTION('',(0.,0.,1.)); +#40272=DIRECTION('',(0.,1.,0.)); +#40273=DIRECTION('',(0.,0.,1.)); +#40274=DIRECTION('',(0.,1.,0.)); +#40275=DIRECTION('',(0.,0.,1.)); +#40276=DIRECTION('',(0.,1.,0.)); +#40277=DIRECTION('',(0.,0.,1.)); +#40278=DIRECTION('',(0.,1.,0.)); +#40279=DIRECTION('',(0.,0.,1.)); +#40280=DIRECTION('',(0.,1.,0.)); +#40281=DIRECTION('',(0.,0.,1.)); +#40282=DIRECTION('',(0.,1.,0.)); +#40283=DIRECTION('',(0.,0.,1.)); +#40284=DIRECTION('',(0.,1.,0.)); +#40285=DIRECTION('',(0.,0.,1.)); +#40286=DIRECTION('',(0.,1.,0.)); +#40287=DIRECTION('',(0.,0.,1.)); +#40288=DIRECTION('',(0.,1.,0.)); +#40289=DIRECTION('',(0.,0.,1.)); +#40290=DIRECTION('',(0.,1.,0.)); +#40291=DIRECTION('',(0.,0.,1.)); +#40292=DIRECTION('',(0.,1.,0.)); +#40293=DIRECTION('',(0.,0.,1.)); +#40294=DIRECTION('',(0.,1.,0.)); +#40295=DIRECTION('',(0.,0.,1.)); +#40296=DIRECTION('',(0.,1.,0.)); +#40297=DIRECTION('',(0.,0.,1.)); +#40298=DIRECTION('',(0.,1.,0.)); +#40299=DIRECTION('',(0.,0.,1.)); +#40300=DIRECTION('',(0.,1.,0.)); +#40301=DIRECTION('',(0.,0.,1.)); +#40302=DIRECTION('',(0.,1.,0.)); +#40303=DIRECTION('',(0.,0.,1.)); +#40304=DIRECTION('',(0.,1.,0.)); +#40305=DIRECTION('',(0.,0.,1.)); +#40306=DIRECTION('',(0.,1.,0.)); +#40307=DIRECTION('',(0.,0.,1.)); +#40308=DIRECTION('',(0.,1.,0.)); +#40309=DIRECTION('',(0.,0.,1.)); +#40310=DIRECTION('',(0.,1.,0.)); +#40311=DIRECTION('',(0.,0.,1.)); +#40312=DIRECTION('',(0.,1.,0.)); +#40313=DIRECTION('',(0.,0.,1.)); +#40314=DIRECTION('',(0.,1.,0.)); +#40315=DIRECTION('',(0.,0.,1.)); +#40316=DIRECTION('',(0.,1.,0.)); +#40317=DIRECTION('',(0.,0.,1.)); +#40318=DIRECTION('',(0.,1.,0.)); +#40319=DIRECTION('',(0.,0.,1.)); +#40320=DIRECTION('',(0.,1.,0.)); +#40321=DIRECTION('',(0.,0.,1.)); +#40322=DIRECTION('',(0.,1.,0.)); +#40323=DIRECTION('',(0.,0.,1.)); +#40324=DIRECTION('',(0.,1.,0.)); +#40325=DIRECTION('',(0.,0.,1.)); +#40326=DIRECTION('',(0.,1.,0.)); +#40327=DIRECTION('',(0.,0.,1.)); +#40328=DIRECTION('',(0.,1.,0.)); +#40329=DIRECTION('',(0.,0.,1.)); +#40330=DIRECTION('',(0.,1.,0.)); +#40331=DIRECTION('',(0.,0.,1.)); +#40332=DIRECTION('',(0.,1.,0.)); +#40333=DIRECTION('',(0.,0.,1.)); +#40334=DIRECTION('',(0.,1.,0.)); +#40335=DIRECTION('',(0.,0.,1.)); +#40336=DIRECTION('',(0.,1.,0.)); +#40337=DIRECTION('',(0.,0.,1.)); +#40338=DIRECTION('',(0.,1.,0.)); +#40339=DIRECTION('',(0.,0.,1.)); +#40340=DIRECTION('',(0.,1.,0.)); +#40341=DIRECTION('',(0.,0.,1.)); +#40342=DIRECTION('',(0.,1.,0.)); +#40343=DIRECTION('',(0.,0.,1.)); +#40344=DIRECTION('',(0.,1.,0.)); +#40345=DIRECTION('',(0.,0.,1.)); +#40346=DIRECTION('',(0.,1.,0.)); +#40347=DIRECTION('',(0.,0.,1.)); +#40348=DIRECTION('',(0.,1.,0.)); +#40349=DIRECTION('',(0.,0.,1.)); +#40350=DIRECTION('',(0.,0.,1.)); +#40351=DIRECTION('',(1.,0.,0.)); +#40352=DIRECTION('',(0.,0.,1.)); +#40353=DIRECTION('',(1.,0.,0.)); +#40354=DIRECTION('',(1.,0.,0.)); +#40355=DIRECTION('',(0.,-1.,0.)); +#40356=DIRECTION('',(-1.,0.,0.)); +#40357=DIRECTION('',(0.,1.,0.)); +#40358=DIRECTION('',(0.,0.,1.)); +#40359=DIRECTION('',(1.,0.,0.)); +#40360=DIRECTION('',(0.500000000000009,0.866025403784433,0.)); +#40361=DIRECTION('',(0.,0.,1.)); +#40362=DIRECTION('',(1.,0.,0.)); +#40363=DIRECTION('',(0.,1.,0.)); +#40364=DIRECTION('',(0.,0.,1.)); +#40365=DIRECTION('',(1.,0.,0.)); +#40366=DIRECTION('',(-1.,0.,0.)); +#40367=DIRECTION('',(0.,0.,1.)); +#40368=DIRECTION('',(1.,0.,0.)); +#40369=DIRECTION('',(0.,-1.,0.)); +#40370=DIRECTION('',(0.,0.,1.)); +#40371=DIRECTION('',(1.,0.,0.)); +#40372=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40373=DIRECTION('',(0.,0.,1.)); +#40374=DIRECTION('',(1.,0.,0.)); +#40375=DIRECTION('',(-2.91944582425155E-16,-1.,0.)); +#40376=DIRECTION('',(1.,-9.85638338623183E-16,0.)); +#40377=DIRECTION('',(0.,1.,0.)); +#40378=DIRECTION('',(0.,0.,1.)); +#40379=DIRECTION('',(1.,0.,0.)); +#40380=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#40381=DIRECTION('',(0.,0.,1.)); +#40382=DIRECTION('',(1.,0.,0.)); +#40383=DIRECTION('',(0.,1.,0.)); +#40384=DIRECTION('',(0.,0.,1.)); +#40385=DIRECTION('',(1.,0.,0.)); +#40386=DIRECTION('',(-1.,0.,0.)); +#40387=DIRECTION('',(0.,0.,1.)); +#40388=DIRECTION('',(1.,0.,0.)); +#40389=DIRECTION('',(0.,-1.,0.)); +#40390=DIRECTION('',(0.,0.,1.)); +#40391=DIRECTION('',(1.,0.,0.)); +#40392=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); +#40393=DIRECTION('',(0.,0.,1.)); +#40394=DIRECTION('',(1.,0.,0.)); +#40395=DIRECTION('',(0.,-1.,0.)); +#40396=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40397=DIRECTION('',(0.,1.,0.)); +#40398=DIRECTION('',(0.,0.,1.)); +#40399=DIRECTION('',(1.,0.,0.)); +#40400=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#40401=DIRECTION('',(0.,0.,1.)); +#40402=DIRECTION('',(1.,0.,0.)); +#40403=DIRECTION('',(0.,1.,0.)); +#40404=DIRECTION('',(0.,0.,1.)); +#40405=DIRECTION('',(1.,0.,0.)); +#40406=DIRECTION('',(-1.,0.,0.)); +#40407=DIRECTION('',(0.,0.,1.)); +#40408=DIRECTION('',(1.,0.,0.)); +#40409=DIRECTION('',(0.,-1.,0.)); +#40410=DIRECTION('',(0.,0.,1.)); +#40411=DIRECTION('',(1.,0.,0.)); +#40412=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40413=DIRECTION('',(0.,0.,1.)); +#40414=DIRECTION('',(1.,0.,0.)); +#40415=DIRECTION('',(0.,-1.,0.)); +#40416=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40417=DIRECTION('',(0.,1.,0.)); +#40418=DIRECTION('',(0.,0.,1.)); +#40419=DIRECTION('',(1.,0.,0.)); +#40420=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); +#40421=DIRECTION('',(0.,0.,1.)); +#40422=DIRECTION('',(1.,0.,0.)); +#40423=DIRECTION('',(0.,1.,0.)); +#40424=DIRECTION('',(0.,0.,1.)); +#40425=DIRECTION('',(1.,0.,0.)); +#40426=DIRECTION('',(-1.,0.,0.)); +#40427=DIRECTION('',(0.,0.,1.)); +#40428=DIRECTION('',(1.,0.,0.)); +#40429=DIRECTION('',(0.,-1.,0.)); +#40430=DIRECTION('',(0.,0.,1.)); +#40431=DIRECTION('',(1.,0.,0.)); +#40432=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40433=DIRECTION('',(0.,0.,1.)); +#40434=DIRECTION('',(1.,0.,0.)); +#40435=DIRECTION('',(0.,-1.,0.)); +#40436=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40437=DIRECTION('',(0.,1.,0.)); +#40438=DIRECTION('',(0.,0.,1.)); +#40439=DIRECTION('',(1.,0.,0.)); +#40440=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#40441=DIRECTION('',(0.,0.,1.)); +#40442=DIRECTION('',(1.,0.,0.)); +#40443=DIRECTION('',(0.,1.,0.)); +#40444=DIRECTION('',(0.,0.,1.)); +#40445=DIRECTION('',(1.,0.,0.)); +#40446=DIRECTION('',(-1.,0.,0.)); +#40447=DIRECTION('',(0.,0.,1.)); +#40448=DIRECTION('',(1.,0.,0.)); +#40449=DIRECTION('',(0.,-1.,0.)); +#40450=DIRECTION('',(0.,0.,1.)); +#40451=DIRECTION('',(1.,0.,0.)); +#40452=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40453=DIRECTION('',(0.,0.,1.)); +#40454=DIRECTION('',(1.,0.,0.)); +#40455=DIRECTION('',(0.,-1.,0.)); +#40456=DIRECTION('',(1.,-9.85638338623185E-16,0.)); +#40457=DIRECTION('',(0.,1.,0.)); +#40458=DIRECTION('',(0.,0.,1.)); +#40459=DIRECTION('',(1.,0.,0.)); +#40460=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#40461=DIRECTION('',(0.,0.,1.)); +#40462=DIRECTION('',(1.,0.,0.)); +#40463=DIRECTION('',(0.,1.,0.)); +#40464=DIRECTION('',(0.,0.,1.)); +#40465=DIRECTION('',(1.,0.,0.)); +#40466=DIRECTION('',(-1.,0.,0.)); +#40467=DIRECTION('',(0.,0.,1.)); +#40468=DIRECTION('',(1.,0.,0.)); +#40469=DIRECTION('',(0.,-1.,0.)); +#40470=DIRECTION('',(0.,0.,1.)); +#40471=DIRECTION('',(1.,0.,0.)); +#40472=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40473=DIRECTION('',(0.,0.,1.)); +#40474=DIRECTION('',(1.,0.,0.)); +#40475=DIRECTION('',(0.,-1.,0.)); +#40476=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40477=DIRECTION('',(0.,1.,0.)); +#40478=DIRECTION('',(0.,0.,1.)); +#40479=DIRECTION('',(1.,0.,0.)); +#40480=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#40481=DIRECTION('',(0.,0.,1.)); +#40482=DIRECTION('',(1.,0.,0.)); +#40483=DIRECTION('',(0.,1.,0.)); +#40484=DIRECTION('',(0.,0.,1.)); +#40485=DIRECTION('',(1.,0.,0.)); +#40486=DIRECTION('',(-1.,0.,0.)); +#40487=DIRECTION('',(0.,0.,1.)); +#40488=DIRECTION('',(1.,0.,0.)); +#40489=DIRECTION('',(0.,-1.,0.)); +#40490=DIRECTION('',(0.,0.,1.)); +#40491=DIRECTION('',(1.,0.,0.)); +#40492=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40493=DIRECTION('',(0.,0.,1.)); +#40494=DIRECTION('',(1.,0.,0.)); +#40495=DIRECTION('',(0.,-1.,0.)); +#40496=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40497=DIRECTION('',(0.,1.,0.)); +#40498=DIRECTION('',(0.,0.,1.)); +#40499=DIRECTION('',(1.,0.,0.)); +#40500=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#40501=DIRECTION('',(0.,0.,1.)); +#40502=DIRECTION('',(1.,0.,0.)); +#40503=DIRECTION('',(0.,1.,0.)); +#40504=DIRECTION('',(0.,0.,1.)); +#40505=DIRECTION('',(1.,0.,0.)); +#40506=DIRECTION('',(-1.,0.,0.)); +#40507=DIRECTION('',(0.,0.,1.)); +#40508=DIRECTION('',(1.,0.,0.)); +#40509=DIRECTION('',(0.,-1.,0.)); +#40510=DIRECTION('',(0.,0.,1.)); +#40511=DIRECTION('',(1.,0.,0.)); +#40512=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#40513=DIRECTION('',(0.,0.,1.)); +#40514=DIRECTION('',(1.,0.,0.)); +#40515=DIRECTION('',(0.,-1.,0.)); +#40516=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40517=DIRECTION('',(0.,1.,0.)); +#40518=DIRECTION('',(0.,0.,1.)); +#40519=DIRECTION('',(1.,0.,0.)); +#40520=DIRECTION('',(0.5,0.866025403784439,0.)); +#40521=DIRECTION('',(0.,0.,1.)); +#40522=DIRECTION('',(1.,0.,0.)); +#40523=DIRECTION('',(0.,1.,0.)); +#40524=DIRECTION('',(0.,0.,1.)); +#40525=DIRECTION('',(1.,0.,0.)); +#40526=DIRECTION('',(-1.,0.,0.)); +#40527=DIRECTION('',(0.,0.,1.)); +#40528=DIRECTION('',(1.,0.,0.)); +#40529=DIRECTION('',(0.,-1.,0.)); +#40530=DIRECTION('',(0.,0.,1.)); +#40531=DIRECTION('',(1.,0.,0.)); +#40532=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#40533=DIRECTION('',(0.,0.,1.)); +#40534=DIRECTION('',(1.,0.,0.)); +#40535=DIRECTION('',(0.,-1.,0.)); +#40536=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40537=DIRECTION('',(0.,1.,0.)); +#40538=DIRECTION('',(0.,0.,1.)); +#40539=DIRECTION('',(1.,0.,0.)); +#40540=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#40541=DIRECTION('',(0.,0.,1.)); +#40542=DIRECTION('',(1.,0.,0.)); +#40543=DIRECTION('',(0.,1.,0.)); +#40544=DIRECTION('',(0.,0.,1.)); +#40545=DIRECTION('',(1.,0.,0.)); +#40546=DIRECTION('',(-1.,0.,0.)); +#40547=DIRECTION('',(0.,0.,1.)); +#40548=DIRECTION('',(1.,0.,0.)); +#40549=DIRECTION('',(0.,-1.,0.)); +#40550=DIRECTION('',(0.,0.,1.)); +#40551=DIRECTION('',(1.,0.,0.)); +#40552=DIRECTION('',(0.500000000000002,-0.866025403784437,0.)); +#40553=DIRECTION('',(0.,0.,1.)); +#40554=DIRECTION('',(1.,0.,0.)); +#40555=DIRECTION('',(-9.12326820078609E-18,-1.,0.)); +#40556=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40557=DIRECTION('',(0.,1.,0.)); +#40558=DIRECTION('',(0.,0.,1.)); +#40559=DIRECTION('',(1.,0.,0.)); +#40560=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#40561=DIRECTION('',(0.,0.,1.)); +#40562=DIRECTION('',(1.,0.,0.)); +#40563=DIRECTION('',(0.,1.,0.)); +#40564=DIRECTION('',(0.,0.,1.)); +#40565=DIRECTION('',(1.,0.,0.)); +#40566=DIRECTION('',(-1.,0.,0.)); +#40567=DIRECTION('',(0.,0.,1.)); +#40568=DIRECTION('',(1.,0.,0.)); +#40569=DIRECTION('',(0.,-1.,0.)); +#40570=DIRECTION('',(0.,0.,1.)); +#40571=DIRECTION('',(1.,0.,0.)); +#40572=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#40573=DIRECTION('',(0.,0.,1.)); +#40574=DIRECTION('',(1.,0.,0.)); +#40575=DIRECTION('',(0.,-1.,0.)); +#40576=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40577=DIRECTION('',(0.,1.,0.)); +#40578=DIRECTION('',(0.,0.,1.)); +#40579=DIRECTION('',(1.,0.,0.)); +#40580=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#40581=DIRECTION('',(0.,0.,1.)); +#40582=DIRECTION('',(1.,0.,0.)); +#40583=DIRECTION('',(0.,1.,0.)); +#40584=DIRECTION('',(0.,0.,1.)); +#40585=DIRECTION('',(1.,0.,0.)); +#40586=DIRECTION('',(-1.,0.,0.)); +#40587=DIRECTION('',(0.,0.,1.)); +#40588=DIRECTION('',(1.,0.,0.)); +#40589=DIRECTION('',(0.,-1.,0.)); +#40590=DIRECTION('',(0.,0.,1.)); +#40591=DIRECTION('',(1.,0.,0.)); +#40592=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#40593=DIRECTION('',(0.,0.,1.)); +#40594=DIRECTION('',(1.,0.,0.)); +#40595=DIRECTION('',(0.,-1.,0.)); +#40596=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40597=DIRECTION('',(0.,1.,0.)); +#40598=DIRECTION('',(0.,0.,1.)); +#40599=DIRECTION('',(1.,0.,0.)); +#40600=DIRECTION('',(0.5,0.866025403784439,0.)); +#40601=DIRECTION('',(0.,0.,1.)); +#40602=DIRECTION('',(1.,0.,0.)); +#40603=DIRECTION('',(0.,1.,0.)); +#40604=DIRECTION('',(0.,0.,1.)); +#40605=DIRECTION('',(1.,0.,0.)); +#40606=DIRECTION('',(-1.,0.,0.)); +#40607=DIRECTION('',(0.,0.,1.)); +#40608=DIRECTION('',(1.,0.,0.)); +#40609=DIRECTION('',(0.,-1.,0.)); +#40610=DIRECTION('',(0.,0.,1.)); +#40611=DIRECTION('',(1.,0.,0.)); +#40612=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40613=DIRECTION('',(0.,0.,1.)); +#40614=DIRECTION('',(1.,0.,0.)); +#40615=DIRECTION('',(0.,-1.,0.)); +#40616=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40617=DIRECTION('',(0.,1.,0.)); +#40618=DIRECTION('',(0.,0.,1.)); +#40619=DIRECTION('',(1.,0.,0.)); +#40620=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#40621=DIRECTION('',(0.,0.,1.)); +#40622=DIRECTION('',(1.,0.,0.)); +#40623=DIRECTION('',(0.,1.,0.)); +#40624=DIRECTION('',(0.,0.,1.)); +#40625=DIRECTION('',(1.,0.,0.)); +#40626=DIRECTION('',(-1.,0.,0.)); +#40627=DIRECTION('',(0.,0.,1.)); +#40628=DIRECTION('',(1.,0.,0.)); +#40629=DIRECTION('',(0.,-1.,0.)); +#40630=DIRECTION('',(0.,0.,1.)); +#40631=DIRECTION('',(1.,0.,0.)); +#40632=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); +#40633=DIRECTION('',(0.,0.,1.)); +#40634=DIRECTION('',(1.,0.,0.)); +#40635=DIRECTION('',(0.,-1.,0.)); +#40636=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40637=DIRECTION('',(0.,1.,0.)); +#40638=DIRECTION('',(0.,0.,1.)); +#40639=DIRECTION('',(1.,0.,0.)); +#40640=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#40641=DIRECTION('',(0.,0.,1.)); +#40642=DIRECTION('',(1.,0.,0.)); +#40643=DIRECTION('',(0.,1.,0.)); +#40644=DIRECTION('',(0.,0.,1.)); +#40645=DIRECTION('',(1.,0.,0.)); +#40646=DIRECTION('',(-1.,0.,0.)); +#40647=DIRECTION('',(0.,0.,1.)); +#40648=DIRECTION('',(1.,0.,0.)); +#40649=DIRECTION('',(0.,-1.,0.)); +#40650=DIRECTION('',(0.,0.,1.)); +#40651=DIRECTION('',(1.,0.,0.)); +#40652=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); +#40653=DIRECTION('',(0.,0.,1.)); +#40654=DIRECTION('',(1.,0.,0.)); +#40655=DIRECTION('',(0.,-1.,0.)); +#40656=DIRECTION('',(1.,-9.85638338623185E-16,0.)); +#40657=DIRECTION('',(0.,1.,0.)); +#40658=DIRECTION('',(0.,0.,1.)); +#40659=DIRECTION('',(1.,0.,0.)); +#40660=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#40661=DIRECTION('',(0.,0.,1.)); +#40662=DIRECTION('',(1.,0.,0.)); +#40663=DIRECTION('',(0.,1.,0.)); +#40664=DIRECTION('',(0.,0.,1.)); +#40665=DIRECTION('',(1.,0.,0.)); +#40666=DIRECTION('',(-1.,0.,0.)); +#40667=DIRECTION('',(0.,0.,1.)); +#40668=DIRECTION('',(1.,0.,0.)); +#40669=DIRECTION('',(0.,-1.,0.)); +#40670=DIRECTION('',(0.,0.,1.)); +#40671=DIRECTION('',(1.,0.,0.)); +#40672=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40673=DIRECTION('',(0.,0.,1.)); +#40674=DIRECTION('',(1.,0.,0.)); +#40675=DIRECTION('',(0.,-1.,0.)); +#40676=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40677=DIRECTION('',(0.,1.,0.)); +#40678=DIRECTION('',(0.,0.,1.)); +#40679=DIRECTION('',(1.,0.,0.)); +#40680=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#40681=DIRECTION('',(0.,0.,1.)); +#40682=DIRECTION('',(1.,0.,0.)); +#40683=DIRECTION('',(0.,1.,0.)); +#40684=DIRECTION('',(0.,0.,1.)); +#40685=DIRECTION('',(1.,0.,0.)); +#40686=DIRECTION('',(-1.,0.,0.)); +#40687=DIRECTION('',(0.,0.,1.)); +#40688=DIRECTION('',(1.,0.,0.)); +#40689=DIRECTION('',(0.,-1.,0.)); +#40690=DIRECTION('',(0.,0.,1.)); +#40691=DIRECTION('',(1.,0.,0.)); +#40692=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); +#40693=DIRECTION('',(0.,0.,1.)); +#40694=DIRECTION('',(1.,0.,0.)); +#40695=DIRECTION('',(0.,-1.,0.)); +#40696=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40697=DIRECTION('',(0.,1.,0.)); +#40698=DIRECTION('',(0.,0.,1.)); +#40699=DIRECTION('',(1.,0.,0.)); +#40700=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#40701=DIRECTION('',(0.,0.,1.)); +#40702=DIRECTION('',(1.,0.,0.)); +#40703=DIRECTION('',(0.,1.,0.)); +#40704=DIRECTION('',(0.,0.,1.)); +#40705=DIRECTION('',(1.,0.,0.)); +#40706=DIRECTION('',(-1.,0.,0.)); +#40707=DIRECTION('',(0.,0.,1.)); +#40708=DIRECTION('',(1.,0.,0.)); +#40709=DIRECTION('',(0.,-1.,0.)); +#40710=DIRECTION('',(0.,0.,1.)); +#40711=DIRECTION('',(1.,0.,0.)); +#40712=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40713=DIRECTION('',(0.,0.,1.)); +#40714=DIRECTION('',(1.,0.,0.)); +#40715=DIRECTION('',(0.,-1.,0.)); +#40716=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40717=DIRECTION('',(0.,1.,0.)); +#40718=DIRECTION('',(0.,0.,1.)); +#40719=DIRECTION('',(1.,0.,0.)); +#40720=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); +#40721=DIRECTION('',(0.,0.,1.)); +#40722=DIRECTION('',(1.,0.,0.)); +#40723=DIRECTION('',(0.,1.,0.)); +#40724=DIRECTION('',(0.,0.,1.)); +#40725=DIRECTION('',(1.,0.,0.)); +#40726=DIRECTION('',(-1.,0.,0.)); +#40727=DIRECTION('',(0.,0.,1.)); +#40728=DIRECTION('',(1.,0.,0.)); +#40729=DIRECTION('',(0.,-1.,0.)); +#40730=DIRECTION('',(0.,0.,1.)); +#40731=DIRECTION('',(1.,0.,0.)); +#40732=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40733=DIRECTION('',(0.,0.,1.)); +#40734=DIRECTION('',(1.,0.,0.)); +#40735=DIRECTION('',(0.,-1.,0.)); +#40736=DIRECTION('',(1.,-9.85638338623187E-16,0.)); +#40737=DIRECTION('',(0.,1.,0.)); +#40738=DIRECTION('',(0.,0.,1.)); +#40739=DIRECTION('',(1.,0.,0.)); +#40740=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#40741=DIRECTION('',(0.,0.,1.)); +#40742=DIRECTION('',(1.,0.,0.)); +#40743=DIRECTION('',(0.,1.,0.)); +#40744=DIRECTION('',(0.,0.,1.)); +#40745=DIRECTION('',(1.,0.,0.)); +#40746=DIRECTION('',(-1.,0.,0.)); +#40747=DIRECTION('',(0.,0.,1.)); +#40748=DIRECTION('',(1.,0.,0.)); +#40749=DIRECTION('',(0.,-1.,0.)); +#40750=DIRECTION('',(0.,0.,1.)); +#40751=DIRECTION('',(1.,0.,0.)); +#40752=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#40753=DIRECTION('',(0.,0.,1.)); +#40754=DIRECTION('',(1.,0.,0.)); +#40755=DIRECTION('',(0.,1.,0.)); +#40756=DIRECTION('',(-1.,0.,0.)); +#40757=DIRECTION('',(0.,-1.,0.)); +#40758=DIRECTION('',(0.,0.,-1.)); +#40759=DIRECTION('',(-1.,0.,0.)); +#40760=DIRECTION('',(-1.,0.,0.)); +#40761=DIRECTION('',(0.,-1.,0.)); +#40762=DIRECTION('',(-1.,0.,0.)); +#40763=DIRECTION('',(0.,-1.,0.)); +#40764=DIRECTION('',(0.,0.,-1.)); +#40765=DIRECTION('',(-1.,0.,0.)); +#40766=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#40767=DIRECTION('',(0.,0.,-1.)); +#40768=DIRECTION('',(-1.,0.,0.)); +#40769=DIRECTION('',(0.,1.,0.)); +#40770=DIRECTION('',(0.,0.,-1.)); +#40771=DIRECTION('',(-1.,0.,0.)); +#40772=DIRECTION('',(-1.,0.,0.)); +#40773=DIRECTION('',(0.,0.,-1.)); +#40774=DIRECTION('',(-1.,0.,0.)); +#40775=DIRECTION('',(0.,-1.,0.)); +#40776=DIRECTION('',(0.,0.,-1.)); +#40777=DIRECTION('',(-1.,0.,0.)); +#40778=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#40779=DIRECTION('',(0.,0.,-1.)); +#40780=DIRECTION('',(-1.,0.,0.)); +#40781=DIRECTION('',(0.,-1.,0.)); +#40782=DIRECTION('',(-1.,0.,0.)); +#40783=DIRECTION('',(0.,1.,0.)); +#40784=DIRECTION('',(0.,0.,-1.)); +#40785=DIRECTION('',(-1.,0.,0.)); +#40786=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#40787=DIRECTION('',(0.,0.,-1.)); +#40788=DIRECTION('',(-1.,0.,0.)); +#40789=DIRECTION('',(0.,1.,0.)); +#40790=DIRECTION('',(0.,0.,-1.)); +#40791=DIRECTION('',(-1.,0.,0.)); +#40792=DIRECTION('',(-1.,0.,0.)); +#40793=DIRECTION('',(0.,0.,-1.)); +#40794=DIRECTION('',(-1.,0.,0.)); +#40795=DIRECTION('',(0.,-1.,0.)); +#40796=DIRECTION('',(0.,0.,-1.)); +#40797=DIRECTION('',(-1.,0.,0.)); +#40798=DIRECTION('',(-0.499999999999995,-0.866025403784442,0.)); +#40799=DIRECTION('',(0.,0.,-1.)); +#40800=DIRECTION('',(-1.,0.,0.)); +#40801=DIRECTION('',(0.,-1.,0.)); +#40802=DIRECTION('',(-1.,0.,0.)); +#40803=DIRECTION('',(0.,1.,0.)); +#40804=DIRECTION('',(0.,0.,-1.)); +#40805=DIRECTION('',(-1.,0.,0.)); +#40806=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#40807=DIRECTION('',(0.,0.,-1.)); +#40808=DIRECTION('',(-1.,0.,0.)); +#40809=DIRECTION('',(0.,1.,0.)); +#40810=DIRECTION('',(0.,0.,-1.)); +#40811=DIRECTION('',(-1.,0.,0.)); +#40812=DIRECTION('',(-1.,0.,0.)); +#40813=DIRECTION('',(0.,0.,-1.)); +#40814=DIRECTION('',(-1.,0.,0.)); +#40815=DIRECTION('',(0.,-1.,0.)); +#40816=DIRECTION('',(0.,0.,-1.)); +#40817=DIRECTION('',(-1.,0.,0.)); +#40818=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#40819=DIRECTION('',(0.,0.,-1.)); +#40820=DIRECTION('',(-1.,0.,0.)); +#40821=DIRECTION('',(0.,-1.,0.)); +#40822=DIRECTION('',(-1.,0.,0.)); +#40823=DIRECTION('',(0.,1.,0.)); +#40824=DIRECTION('',(0.,0.,-1.)); +#40825=DIRECTION('',(-1.,0.,0.)); +#40826=DIRECTION('',(-0.499999999999998,0.86602540378444,0.)); +#40827=DIRECTION('',(0.,0.,-1.)); +#40828=DIRECTION('',(-1.,0.,0.)); +#40829=DIRECTION('',(0.,1.,0.)); +#40830=DIRECTION('',(0.,0.,-1.)); +#40831=DIRECTION('',(-1.,0.,0.)); +#40832=DIRECTION('',(-1.,0.,0.)); +#40833=DIRECTION('',(0.,0.,-1.)); +#40834=DIRECTION('',(-1.,0.,0.)); +#40835=DIRECTION('',(0.,-1.,0.)); +#40836=DIRECTION('',(0.,0.,-1.)); +#40837=DIRECTION('',(-1.,0.,0.)); +#40838=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#40839=DIRECTION('',(0.,0.,-1.)); +#40840=DIRECTION('',(-1.,0.,0.)); +#40841=DIRECTION('',(0.,-1.,0.)); +#40842=DIRECTION('',(-1.,0.,0.)); +#40843=DIRECTION('',(0.,1.,0.)); +#40844=DIRECTION('',(0.,0.,-1.)); +#40845=DIRECTION('',(-1.,0.,0.)); +#40846=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#40847=DIRECTION('',(0.,0.,-1.)); +#40848=DIRECTION('',(-1.,0.,0.)); +#40849=DIRECTION('',(0.,1.,0.)); +#40850=DIRECTION('',(0.,0.,-1.)); +#40851=DIRECTION('',(-1.,0.,0.)); +#40852=DIRECTION('',(-1.,0.,0.)); +#40853=DIRECTION('',(0.,0.,-1.)); +#40854=DIRECTION('',(-1.,0.,0.)); +#40855=DIRECTION('',(0.,-1.,0.)); +#40856=DIRECTION('',(0.,0.,-1.)); +#40857=DIRECTION('',(-1.,0.,0.)); +#40858=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#40859=DIRECTION('',(0.,0.,-1.)); +#40860=DIRECTION('',(-1.,0.,0.)); +#40861=DIRECTION('',(0.,-1.,0.)); +#40862=DIRECTION('',(-1.,0.,0.)); +#40863=DIRECTION('',(0.,1.,0.)); +#40864=DIRECTION('',(0.,0.,-1.)); +#40865=DIRECTION('',(-1.,0.,0.)); +#40866=DIRECTION('',(-0.500000000000001,0.866025403784438,0.)); +#40867=DIRECTION('',(0.,0.,-1.)); +#40868=DIRECTION('',(-1.,0.,0.)); +#40869=DIRECTION('',(0.,1.,0.)); +#40870=DIRECTION('',(0.,0.,-1.)); +#40871=DIRECTION('',(-1.,0.,0.)); +#40872=DIRECTION('',(-1.,0.,0.)); +#40873=DIRECTION('',(0.,0.,-1.)); +#40874=DIRECTION('',(-1.,0.,0.)); +#40875=DIRECTION('',(0.,-1.,0.)); +#40876=DIRECTION('',(0.,0.,-1.)); +#40877=DIRECTION('',(-1.,0.,0.)); +#40878=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); +#40879=DIRECTION('',(0.,0.,-1.)); +#40880=DIRECTION('',(-1.,0.,0.)); +#40881=DIRECTION('',(0.,-1.,0.)); +#40882=DIRECTION('',(-1.,0.,0.)); +#40883=DIRECTION('',(0.,1.,0.)); +#40884=DIRECTION('',(0.,0.,-1.)); +#40885=DIRECTION('',(-1.,0.,0.)); +#40886=DIRECTION('',(-0.500000000000001,0.866025403784438,0.)); +#40887=DIRECTION('',(0.,0.,-1.)); +#40888=DIRECTION('',(-1.,0.,0.)); +#40889=DIRECTION('',(0.,1.,0.)); +#40890=DIRECTION('',(0.,0.,-1.)); +#40891=DIRECTION('',(-1.,0.,0.)); +#40892=DIRECTION('',(-1.,0.,0.)); +#40893=DIRECTION('',(0.,0.,-1.)); +#40894=DIRECTION('',(-1.,0.,0.)); +#40895=DIRECTION('',(0.,-1.,0.)); +#40896=DIRECTION('',(0.,0.,-1.)); +#40897=DIRECTION('',(-1.,0.,0.)); +#40898=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#40899=DIRECTION('',(0.,0.,-1.)); +#40900=DIRECTION('',(-1.,0.,0.)); +#40901=DIRECTION('',(0.,-1.,0.)); +#40902=DIRECTION('',(-1.,0.,0.)); +#40903=DIRECTION('',(0.,1.,0.)); +#40904=DIRECTION('',(0.,0.,-1.)); +#40905=DIRECTION('',(-1.,0.,0.)); +#40906=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#40907=DIRECTION('',(0.,0.,-1.)); +#40908=DIRECTION('',(-1.,0.,0.)); +#40909=DIRECTION('',(0.,1.,0.)); +#40910=DIRECTION('',(0.,0.,-1.)); +#40911=DIRECTION('',(-1.,0.,0.)); +#40912=DIRECTION('',(-1.,0.,0.)); +#40913=DIRECTION('',(0.,0.,-1.)); +#40914=DIRECTION('',(-1.,0.,0.)); +#40915=DIRECTION('',(0.,-1.,0.)); +#40916=DIRECTION('',(0.,0.,-1.)); +#40917=DIRECTION('',(-1.,0.,0.)); +#40918=DIRECTION('',(-0.5,-0.866025403784439,0.)); +#40919=DIRECTION('',(0.,0.,-1.)); +#40920=DIRECTION('',(-1.,0.,0.)); +#40921=DIRECTION('',(0.,-1.,0.)); +#40922=DIRECTION('',(-1.,0.,0.)); +#40923=DIRECTION('',(0.,1.,0.)); +#40924=DIRECTION('',(0.,0.,-1.)); +#40925=DIRECTION('',(-1.,0.,0.)); +#40926=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); +#40927=DIRECTION('',(0.,0.,-1.)); +#40928=DIRECTION('',(-1.,0.,0.)); +#40929=DIRECTION('',(0.,1.,0.)); +#40930=DIRECTION('',(0.,0.,-1.)); +#40931=DIRECTION('',(-1.,0.,0.)); +#40932=DIRECTION('',(-1.,0.,0.)); +#40933=DIRECTION('',(0.,0.,-1.)); +#40934=DIRECTION('',(-1.,0.,0.)); +#40935=DIRECTION('',(0.,-1.,0.)); +#40936=DIRECTION('',(0.,0.,-1.)); +#40937=DIRECTION('',(-1.,0.,0.)); +#40938=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); +#40939=DIRECTION('',(0.,0.,-1.)); +#40940=DIRECTION('',(-1.,0.,0.)); +#40941=DIRECTION('',(0.,-1.,0.)); +#40942=DIRECTION('',(-1.,0.,0.)); +#40943=DIRECTION('',(0.,1.,0.)); +#40944=DIRECTION('',(0.,0.,-1.)); +#40945=DIRECTION('',(-1.,0.,0.)); +#40946=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); +#40947=DIRECTION('',(0.,0.,-1.)); +#40948=DIRECTION('',(-1.,0.,0.)); +#40949=DIRECTION('',(0.,1.,0.)); +#40950=DIRECTION('',(0.,0.,-1.)); +#40951=DIRECTION('',(-1.,0.,0.)); +#40952=DIRECTION('',(-1.,0.,0.)); +#40953=DIRECTION('',(0.,0.,-1.)); +#40954=DIRECTION('',(-1.,0.,0.)); +#40955=DIRECTION('',(0.,-1.,0.)); +#40956=DIRECTION('',(0.,0.,-1.)); +#40957=DIRECTION('',(-1.,0.,0.)); +#40958=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); +#40959=DIRECTION('',(0.,0.,-1.)); +#40960=DIRECTION('',(-1.,0.,0.)); +#40961=DIRECTION('',(0.,-1.,0.)); +#40962=DIRECTION('',(-1.,0.,0.)); +#40963=DIRECTION('',(9.12326820078609E-18,1.,0.)); +#40964=DIRECTION('',(0.,0.,-1.)); +#40965=DIRECTION('',(-1.,0.,0.)); +#40966=DIRECTION('',(-0.500000000000002,0.866025403784437,0.)); +#40967=DIRECTION('',(0.,0.,-1.)); +#40968=DIRECTION('',(-1.,0.,0.)); +#40969=DIRECTION('',(0.,1.,0.)); +#40970=DIRECTION('',(0.,0.,-1.)); +#40971=DIRECTION('',(-1.,0.,0.)); +#40972=DIRECTION('',(-1.,0.,0.)); +#40973=DIRECTION('',(0.,0.,-1.)); +#40974=DIRECTION('',(-1.,0.,0.)); +#40975=DIRECTION('',(0.,-1.,0.)); +#40976=DIRECTION('',(0.,0.,-1.)); +#40977=DIRECTION('',(-1.,0.,0.)); +#40978=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); +#40979=DIRECTION('',(0.,0.,-1.)); +#40980=DIRECTION('',(-1.,0.,0.)); +#40981=DIRECTION('',(0.,-1.,0.)); +#40982=DIRECTION('',(-1.,0.,0.)); +#40983=DIRECTION('',(0.,1.,0.)); +#40984=DIRECTION('',(0.,0.,-1.)); +#40985=DIRECTION('',(-1.,0.,0.)); +#40986=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); +#40987=DIRECTION('',(0.,0.,-1.)); +#40988=DIRECTION('',(-1.,0.,0.)); +#40989=DIRECTION('',(0.,1.,0.)); +#40990=DIRECTION('',(0.,0.,-1.)); +#40991=DIRECTION('',(-1.,0.,0.)); +#40992=DIRECTION('',(-1.,0.,0.)); +#40993=DIRECTION('',(0.,0.,-1.)); +#40994=DIRECTION('',(-1.,0.,0.)); +#40995=DIRECTION('',(0.,-1.,0.)); +#40996=DIRECTION('',(0.,0.,-1.)); +#40997=DIRECTION('',(-1.,0.,0.)); +#40998=DIRECTION('',(-0.5,-0.866025403784439,0.)); +#40999=DIRECTION('',(0.,0.,-1.)); +#41000=DIRECTION('',(-1.,0.,0.)); +#41001=DIRECTION('',(0.,-1.,0.)); +#41002=DIRECTION('',(-1.,0.,0.)); +#41003=DIRECTION('',(0.,1.,0.)); +#41004=DIRECTION('',(0.,0.,-1.)); +#41005=DIRECTION('',(-1.,0.,0.)); +#41006=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); +#41007=DIRECTION('',(0.,0.,-1.)); +#41008=DIRECTION('',(-1.,0.,0.)); +#41009=DIRECTION('',(0.,1.,0.)); +#41010=DIRECTION('',(0.,0.,-1.)); +#41011=DIRECTION('',(-1.,0.,0.)); +#41012=DIRECTION('',(-1.,0.,0.)); +#41013=DIRECTION('',(0.,0.,-1.)); +#41014=DIRECTION('',(-1.,0.,0.)); +#41015=DIRECTION('',(0.,-1.,0.)); +#41016=DIRECTION('',(0.,0.,-1.)); +#41017=DIRECTION('',(-1.,0.,0.)); +#41018=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41019=DIRECTION('',(0.,0.,-1.)); +#41020=DIRECTION('',(-1.,0.,0.)); +#41021=DIRECTION('',(0.,-1.,0.)); +#41022=DIRECTION('',(-1.,0.,0.)); +#41023=DIRECTION('',(0.,1.,0.)); +#41024=DIRECTION('',(0.,0.,-1.)); +#41025=DIRECTION('',(-1.,0.,0.)); +#41026=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41027=DIRECTION('',(0.,0.,-1.)); +#41028=DIRECTION('',(-1.,0.,0.)); +#41029=DIRECTION('',(0.,1.,0.)); +#41030=DIRECTION('',(0.,0.,-1.)); +#41031=DIRECTION('',(-1.,0.,0.)); +#41032=DIRECTION('',(-1.,0.,0.)); +#41033=DIRECTION('',(0.,0.,-1.)); +#41034=DIRECTION('',(-1.,0.,0.)); +#41035=DIRECTION('',(0.,-1.,0.)); +#41036=DIRECTION('',(0.,0.,-1.)); +#41037=DIRECTION('',(-1.,0.,0.)); +#41038=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); +#41039=DIRECTION('',(0.,0.,-1.)); +#41040=DIRECTION('',(-1.,0.,0.)); +#41041=DIRECTION('',(0.,-1.,0.)); +#41042=DIRECTION('',(-1.,0.,0.)); +#41043=DIRECTION('',(0.,1.,0.)); +#41044=DIRECTION('',(0.,0.,-1.)); +#41045=DIRECTION('',(-1.,0.,0.)); +#41046=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41047=DIRECTION('',(0.,0.,-1.)); +#41048=DIRECTION('',(-1.,0.,0.)); +#41049=DIRECTION('',(0.,1.,0.)); +#41050=DIRECTION('',(0.,0.,-1.)); +#41051=DIRECTION('',(-1.,0.,0.)); +#41052=DIRECTION('',(-1.,0.,0.)); +#41053=DIRECTION('',(0.,0.,-1.)); +#41054=DIRECTION('',(-1.,0.,0.)); +#41055=DIRECTION('',(0.,-1.,0.)); +#41056=DIRECTION('',(0.,0.,-1.)); +#41057=DIRECTION('',(-1.,0.,0.)); +#41058=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); +#41059=DIRECTION('',(0.,0.,-1.)); +#41060=DIRECTION('',(-1.,0.,0.)); +#41061=DIRECTION('',(0.,-1.,0.)); +#41062=DIRECTION('',(-1.,0.,0.)); +#41063=DIRECTION('',(0.,1.,0.)); +#41064=DIRECTION('',(0.,0.,-1.)); +#41065=DIRECTION('',(-1.,0.,0.)); +#41066=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41067=DIRECTION('',(0.,0.,-1.)); +#41068=DIRECTION('',(-1.,0.,0.)); +#41069=DIRECTION('',(0.,1.,0.)); +#41070=DIRECTION('',(0.,0.,-1.)); +#41071=DIRECTION('',(-1.,0.,0.)); +#41072=DIRECTION('',(-1.,0.,0.)); +#41073=DIRECTION('',(0.,0.,-1.)); +#41074=DIRECTION('',(-1.,0.,0.)); +#41075=DIRECTION('',(0.,-1.,0.)); +#41076=DIRECTION('',(0.,0.,-1.)); +#41077=DIRECTION('',(-1.,0.,0.)); +#41078=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41079=DIRECTION('',(0.,0.,-1.)); +#41080=DIRECTION('',(-1.,0.,0.)); +#41081=DIRECTION('',(0.,-1.,0.)); +#41082=DIRECTION('',(-1.,0.,0.)); +#41083=DIRECTION('',(0.,1.,0.)); +#41084=DIRECTION('',(0.,0.,-1.)); +#41085=DIRECTION('',(-1.,0.,0.)); +#41086=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41087=DIRECTION('',(0.,0.,-1.)); +#41088=DIRECTION('',(-1.,0.,0.)); +#41089=DIRECTION('',(0.,1.,0.)); +#41090=DIRECTION('',(0.,0.,-1.)); +#41091=DIRECTION('',(-1.,0.,0.)); +#41092=DIRECTION('',(-1.,0.,0.)); +#41093=DIRECTION('',(0.,0.,-1.)); +#41094=DIRECTION('',(-1.,0.,0.)); +#41095=DIRECTION('',(0.,-1.,0.)); +#41096=DIRECTION('',(0.,0.,-1.)); +#41097=DIRECTION('',(-1.,0.,0.)); +#41098=DIRECTION('',(-0.499999999999995,-0.866025403784442,0.)); +#41099=DIRECTION('',(0.,0.,-1.)); +#41100=DIRECTION('',(-1.,0.,0.)); +#41101=DIRECTION('',(0.,-1.,0.)); +#41102=DIRECTION('',(-1.,0.,0.)); +#41103=DIRECTION('',(0.,1.,0.)); +#41104=DIRECTION('',(0.,0.,-1.)); +#41105=DIRECTION('',(-1.,0.,0.)); +#41106=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41107=DIRECTION('',(0.,0.,-1.)); +#41108=DIRECTION('',(-1.,0.,0.)); +#41109=DIRECTION('',(0.,1.,0.)); +#41110=DIRECTION('',(0.,0.,-1.)); +#41111=DIRECTION('',(-1.,0.,0.)); +#41112=DIRECTION('',(-1.,0.,0.)); +#41113=DIRECTION('',(0.,0.,-1.)); +#41114=DIRECTION('',(-1.,0.,0.)); +#41115=DIRECTION('',(0.,-1.,0.)); +#41116=DIRECTION('',(0.,0.,-1.)); +#41117=DIRECTION('',(-1.,0.,0.)); +#41118=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41119=DIRECTION('',(0.,0.,-1.)); +#41120=DIRECTION('',(-1.,0.,0.)); +#41121=DIRECTION('',(0.,-1.,0.)); +#41122=DIRECTION('',(-1.,0.,0.)); +#41123=DIRECTION('',(0.,1.,0.)); +#41124=DIRECTION('',(0.,0.,-1.)); +#41125=DIRECTION('',(-1.,0.,0.)); +#41126=DIRECTION('',(-0.499999999999998,0.86602540378444,0.)); +#41127=DIRECTION('',(0.,0.,-1.)); +#41128=DIRECTION('',(-1.,0.,0.)); +#41129=DIRECTION('',(0.,1.,0.)); +#41130=DIRECTION('',(0.,0.,-1.)); +#41131=DIRECTION('',(-1.,0.,0.)); +#41132=DIRECTION('',(-1.,0.,0.)); +#41133=DIRECTION('',(0.,0.,-1.)); +#41134=DIRECTION('',(-1.,0.,0.)); +#41135=DIRECTION('',(0.,-1.,0.)); +#41136=DIRECTION('',(0.,0.,-1.)); +#41137=DIRECTION('',(-1.,0.,0.)); +#41138=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41139=DIRECTION('',(0.,0.,-1.)); +#41140=DIRECTION('',(-1.,0.,0.)); +#41141=DIRECTION('',(0.,-1.,0.)); +#41142=DIRECTION('',(-1.,0.,0.)); +#41143=DIRECTION('',(2.91944582425155E-16,1.,0.)); +#41144=DIRECTION('',(0.,0.,-1.)); +#41145=DIRECTION('',(-1.,0.,0.)); +#41146=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41147=DIRECTION('',(0.,0.,-1.)); +#41148=DIRECTION('',(-1.,0.,0.)); +#41149=DIRECTION('',(0.,1.,0.)); +#41150=DIRECTION('',(0.,0.,-1.)); +#41151=DIRECTION('',(-1.,0.,0.)); +#41152=DIRECTION('',(-1.,0.,0.)); +#41153=DIRECTION('',(0.,0.,-1.)); +#41154=DIRECTION('',(-1.,0.,0.)); +#41155=DIRECTION('',(0.,-1.,0.)); +#41156=DIRECTION('',(0.,0.,-1.)); +#41157=DIRECTION('',(-1.,0.,0.)); +#41158=DIRECTION('',(-0.500000000000009,-0.866025403784433,0.)); +#41159=DIRECTION('',(0.,0.,-1.)); +#41160=DIRECTION('',(-1.,0.,0.)); +#41161=DIRECTION('',(0.,-1.,0.)); +#41162=DIRECTION('',(-1.,0.,0.)); +#41163=DIRECTION('',(0.,-1.,0.)); +#41164=DIRECTION('',(0.,0.,1.)); +#41165=DIRECTION('',(1.,0.,0.)); +#41166=DIRECTION('',(1.,0.,0.)); +#41167=DIRECTION('',(0.,-1.,0.)); +#41168=DIRECTION('',(1.,0.,0.)); +#41169=DIRECTION('',(0.,1.,0.)); +#41170=DIRECTION('',(0.,0.,1.)); +#41171=DIRECTION('',(1.,0.,0.)); +#41172=DIRECTION('',(0.500000000000009,0.866025403784433,0.)); +#41173=DIRECTION('',(0.,0.,1.)); +#41174=DIRECTION('',(1.,0.,0.)); +#41175=DIRECTION('',(0.,1.,0.)); +#41176=DIRECTION('',(0.,0.,1.)); +#41177=DIRECTION('',(1.,0.,0.)); +#41178=DIRECTION('',(-1.,0.,0.)); +#41179=DIRECTION('',(0.,0.,1.)); +#41180=DIRECTION('',(1.,0.,0.)); +#41181=DIRECTION('',(0.,-1.,0.)); +#41182=DIRECTION('',(0.,0.,1.)); +#41183=DIRECTION('',(1.,0.,0.)); +#41184=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41185=DIRECTION('',(0.,0.,1.)); +#41186=DIRECTION('',(1.,0.,0.)); +#41187=DIRECTION('',(-2.91944582425155E-16,-1.,0.)); +#41188=DIRECTION('',(1.,0.,0.)); +#41189=DIRECTION('',(0.,1.,0.)); +#41190=DIRECTION('',(0.,0.,1.)); +#41191=DIRECTION('',(1.,0.,0.)); +#41192=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#41193=DIRECTION('',(0.,0.,1.)); +#41194=DIRECTION('',(1.,0.,0.)); +#41195=DIRECTION('',(0.,1.,0.)); +#41196=DIRECTION('',(0.,0.,1.)); +#41197=DIRECTION('',(1.,0.,0.)); +#41198=DIRECTION('',(-1.,0.,0.)); +#41199=DIRECTION('',(0.,0.,1.)); +#41200=DIRECTION('',(1.,0.,0.)); +#41201=DIRECTION('',(0.,-1.,0.)); +#41202=DIRECTION('',(0.,0.,1.)); +#41203=DIRECTION('',(1.,0.,0.)); +#41204=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); +#41205=DIRECTION('',(0.,0.,1.)); +#41206=DIRECTION('',(1.,0.,0.)); +#41207=DIRECTION('',(0.,-1.,0.)); +#41208=DIRECTION('',(1.,0.,0.)); +#41209=DIRECTION('',(0.,1.,0.)); +#41210=DIRECTION('',(0.,0.,1.)); +#41211=DIRECTION('',(1.,0.,0.)); +#41212=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#41213=DIRECTION('',(0.,0.,1.)); +#41214=DIRECTION('',(1.,0.,0.)); +#41215=DIRECTION('',(0.,1.,0.)); +#41216=DIRECTION('',(0.,0.,1.)); +#41217=DIRECTION('',(1.,0.,0.)); +#41218=DIRECTION('',(-1.,0.,0.)); +#41219=DIRECTION('',(0.,0.,1.)); +#41220=DIRECTION('',(1.,0.,0.)); +#41221=DIRECTION('',(0.,-1.,0.)); +#41222=DIRECTION('',(0.,0.,1.)); +#41223=DIRECTION('',(1.,0.,0.)); +#41224=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41225=DIRECTION('',(0.,0.,1.)); +#41226=DIRECTION('',(1.,0.,0.)); +#41227=DIRECTION('',(0.,-1.,0.)); +#41228=DIRECTION('',(1.,0.,0.)); +#41229=DIRECTION('',(0.,1.,0.)); +#41230=DIRECTION('',(0.,0.,1.)); +#41231=DIRECTION('',(1.,0.,0.)); +#41232=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); +#41233=DIRECTION('',(0.,0.,1.)); +#41234=DIRECTION('',(1.,0.,0.)); +#41235=DIRECTION('',(0.,1.,0.)); +#41236=DIRECTION('',(0.,0.,1.)); +#41237=DIRECTION('',(1.,0.,0.)); +#41238=DIRECTION('',(-1.,0.,0.)); +#41239=DIRECTION('',(0.,0.,1.)); +#41240=DIRECTION('',(1.,0.,0.)); +#41241=DIRECTION('',(0.,-1.,0.)); +#41242=DIRECTION('',(0.,0.,1.)); +#41243=DIRECTION('',(1.,0.,0.)); +#41244=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41245=DIRECTION('',(0.,0.,1.)); +#41246=DIRECTION('',(1.,0.,0.)); +#41247=DIRECTION('',(0.,-1.,0.)); +#41248=DIRECTION('',(1.,0.,0.)); +#41249=DIRECTION('',(0.,1.,0.)); +#41250=DIRECTION('',(0.,0.,1.)); +#41251=DIRECTION('',(1.,0.,0.)); +#41252=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#41253=DIRECTION('',(0.,0.,1.)); +#41254=DIRECTION('',(1.,0.,0.)); +#41255=DIRECTION('',(0.,1.,0.)); +#41256=DIRECTION('',(0.,0.,1.)); +#41257=DIRECTION('',(1.,0.,0.)); +#41258=DIRECTION('',(-1.,0.,0.)); +#41259=DIRECTION('',(0.,0.,1.)); +#41260=DIRECTION('',(1.,0.,0.)); +#41261=DIRECTION('',(0.,-1.,0.)); +#41262=DIRECTION('',(0.,0.,1.)); +#41263=DIRECTION('',(1.,0.,0.)); +#41264=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41265=DIRECTION('',(0.,0.,1.)); +#41266=DIRECTION('',(1.,0.,0.)); +#41267=DIRECTION('',(0.,-1.,0.)); +#41268=DIRECTION('',(1.,0.,0.)); +#41269=DIRECTION('',(0.,1.,0.)); +#41270=DIRECTION('',(0.,0.,1.)); +#41271=DIRECTION('',(1.,0.,0.)); +#41272=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#41273=DIRECTION('',(0.,0.,1.)); +#41274=DIRECTION('',(1.,0.,0.)); +#41275=DIRECTION('',(0.,1.,0.)); +#41276=DIRECTION('',(0.,0.,1.)); +#41277=DIRECTION('',(1.,0.,0.)); +#41278=DIRECTION('',(-1.,0.,0.)); +#41279=DIRECTION('',(0.,0.,1.)); +#41280=DIRECTION('',(1.,0.,0.)); +#41281=DIRECTION('',(0.,-1.,0.)); +#41282=DIRECTION('',(0.,0.,1.)); +#41283=DIRECTION('',(1.,0.,0.)); +#41284=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41285=DIRECTION('',(0.,0.,1.)); +#41286=DIRECTION('',(1.,0.,0.)); +#41287=DIRECTION('',(0.,-1.,0.)); +#41288=DIRECTION('',(1.,0.,0.)); +#41289=DIRECTION('',(0.,1.,0.)); +#41290=DIRECTION('',(0.,0.,1.)); +#41291=DIRECTION('',(1.,0.,0.)); +#41292=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#41293=DIRECTION('',(0.,0.,1.)); +#41294=DIRECTION('',(1.,0.,0.)); +#41295=DIRECTION('',(0.,1.,0.)); +#41296=DIRECTION('',(0.,0.,1.)); +#41297=DIRECTION('',(1.,0.,0.)); +#41298=DIRECTION('',(-1.,0.,0.)); +#41299=DIRECTION('',(0.,0.,1.)); +#41300=DIRECTION('',(1.,0.,0.)); +#41301=DIRECTION('',(0.,-1.,0.)); +#41302=DIRECTION('',(0.,0.,1.)); +#41303=DIRECTION('',(1.,0.,0.)); +#41304=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41305=DIRECTION('',(0.,0.,1.)); +#41306=DIRECTION('',(1.,0.,0.)); +#41307=DIRECTION('',(0.,-1.,0.)); +#41308=DIRECTION('',(1.,0.,0.)); +#41309=DIRECTION('',(0.,1.,0.)); +#41310=DIRECTION('',(0.,0.,1.)); +#41311=DIRECTION('',(1.,0.,0.)); +#41312=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#41313=DIRECTION('',(0.,0.,1.)); +#41314=DIRECTION('',(1.,0.,0.)); +#41315=DIRECTION('',(0.,1.,0.)); +#41316=DIRECTION('',(0.,0.,1.)); +#41317=DIRECTION('',(1.,0.,0.)); +#41318=DIRECTION('',(-1.,0.,0.)); +#41319=DIRECTION('',(0.,0.,1.)); +#41320=DIRECTION('',(1.,0.,0.)); +#41321=DIRECTION('',(0.,-1.,0.)); +#41322=DIRECTION('',(0.,0.,1.)); +#41323=DIRECTION('',(1.,0.,0.)); +#41324=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#41325=DIRECTION('',(0.,0.,1.)); +#41326=DIRECTION('',(1.,0.,0.)); +#41327=DIRECTION('',(0.,-1.,0.)); +#41328=DIRECTION('',(1.,0.,0.)); +#41329=DIRECTION('',(0.,1.,0.)); +#41330=DIRECTION('',(0.,0.,1.)); +#41331=DIRECTION('',(1.,0.,0.)); +#41332=DIRECTION('',(0.5,0.866025403784439,0.)); +#41333=DIRECTION('',(0.,0.,1.)); +#41334=DIRECTION('',(1.,0.,0.)); +#41335=DIRECTION('',(0.,1.,0.)); +#41336=DIRECTION('',(0.,0.,1.)); +#41337=DIRECTION('',(1.,0.,0.)); +#41338=DIRECTION('',(-1.,0.,0.)); +#41339=DIRECTION('',(0.,0.,1.)); +#41340=DIRECTION('',(1.,0.,0.)); +#41341=DIRECTION('',(0.,-1.,0.)); +#41342=DIRECTION('',(0.,0.,1.)); +#41343=DIRECTION('',(1.,0.,0.)); +#41344=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#41345=DIRECTION('',(0.,0.,1.)); +#41346=DIRECTION('',(1.,0.,0.)); +#41347=DIRECTION('',(0.,-1.,0.)); +#41348=DIRECTION('',(1.,0.,0.)); +#41349=DIRECTION('',(0.,1.,0.)); +#41350=DIRECTION('',(0.,0.,1.)); +#41351=DIRECTION('',(1.,0.,0.)); +#41352=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#41353=DIRECTION('',(0.,0.,1.)); +#41354=DIRECTION('',(1.,0.,0.)); +#41355=DIRECTION('',(0.,1.,0.)); +#41356=DIRECTION('',(0.,0.,1.)); +#41357=DIRECTION('',(1.,0.,0.)); +#41358=DIRECTION('',(-1.,0.,0.)); +#41359=DIRECTION('',(0.,0.,1.)); +#41360=DIRECTION('',(1.,0.,0.)); +#41361=DIRECTION('',(0.,-1.,0.)); +#41362=DIRECTION('',(0.,0.,1.)); +#41363=DIRECTION('',(1.,0.,0.)); +#41364=DIRECTION('',(0.500000000000002,-0.866025403784437,0.)); +#41365=DIRECTION('',(0.,0.,1.)); +#41366=DIRECTION('',(1.,0.,0.)); +#41367=DIRECTION('',(-9.12326820078609E-18,-1.,0.)); +#41368=DIRECTION('',(1.,0.,0.)); +#41369=DIRECTION('',(0.,1.,0.)); +#41370=DIRECTION('',(0.,0.,1.)); +#41371=DIRECTION('',(1.,0.,0.)); +#41372=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#41373=DIRECTION('',(0.,0.,1.)); +#41374=DIRECTION('',(1.,0.,0.)); +#41375=DIRECTION('',(0.,1.,0.)); +#41376=DIRECTION('',(0.,0.,1.)); +#41377=DIRECTION('',(1.,0.,0.)); +#41378=DIRECTION('',(-1.,0.,0.)); +#41379=DIRECTION('',(0.,0.,1.)); +#41380=DIRECTION('',(1.,0.,0.)); +#41381=DIRECTION('',(0.,-1.,0.)); +#41382=DIRECTION('',(0.,0.,1.)); +#41383=DIRECTION('',(1.,0.,0.)); +#41384=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#41385=DIRECTION('',(0.,0.,1.)); +#41386=DIRECTION('',(1.,0.,0.)); +#41387=DIRECTION('',(0.,-1.,0.)); +#41388=DIRECTION('',(1.,0.,0.)); +#41389=DIRECTION('',(0.,1.,0.)); +#41390=DIRECTION('',(0.,0.,1.)); +#41391=DIRECTION('',(1.,0.,0.)); +#41392=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#41393=DIRECTION('',(0.,0.,1.)); +#41394=DIRECTION('',(1.,0.,0.)); +#41395=DIRECTION('',(0.,1.,0.)); +#41396=DIRECTION('',(0.,0.,1.)); +#41397=DIRECTION('',(1.,0.,0.)); +#41398=DIRECTION('',(-1.,0.,0.)); +#41399=DIRECTION('',(0.,0.,1.)); +#41400=DIRECTION('',(1.,0.,0.)); +#41401=DIRECTION('',(0.,-1.,0.)); +#41402=DIRECTION('',(0.,0.,1.)); +#41403=DIRECTION('',(1.,0.,0.)); +#41404=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#41405=DIRECTION('',(0.,0.,1.)); +#41406=DIRECTION('',(1.,0.,0.)); +#41407=DIRECTION('',(0.,-1.,0.)); +#41408=DIRECTION('',(1.,0.,0.)); +#41409=DIRECTION('',(0.,1.,0.)); +#41410=DIRECTION('',(0.,0.,1.)); +#41411=DIRECTION('',(1.,0.,0.)); +#41412=DIRECTION('',(0.5,0.866025403784439,0.)); +#41413=DIRECTION('',(0.,0.,1.)); +#41414=DIRECTION('',(1.,0.,0.)); +#41415=DIRECTION('',(0.,1.,0.)); +#41416=DIRECTION('',(0.,0.,1.)); +#41417=DIRECTION('',(1.,0.,0.)); +#41418=DIRECTION('',(-1.,0.,0.)); +#41419=DIRECTION('',(0.,0.,1.)); +#41420=DIRECTION('',(1.,0.,0.)); +#41421=DIRECTION('',(0.,-1.,0.)); +#41422=DIRECTION('',(0.,0.,1.)); +#41423=DIRECTION('',(1.,0.,0.)); +#41424=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41425=DIRECTION('',(0.,0.,1.)); +#41426=DIRECTION('',(1.,0.,0.)); +#41427=DIRECTION('',(0.,-1.,0.)); +#41428=DIRECTION('',(1.,0.,0.)); +#41429=DIRECTION('',(0.,1.,0.)); +#41430=DIRECTION('',(0.,0.,1.)); +#41431=DIRECTION('',(1.,0.,0.)); +#41432=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#41433=DIRECTION('',(0.,0.,1.)); +#41434=DIRECTION('',(1.,0.,0.)); +#41435=DIRECTION('',(0.,1.,0.)); +#41436=DIRECTION('',(0.,0.,1.)); +#41437=DIRECTION('',(1.,0.,0.)); +#41438=DIRECTION('',(-1.,0.,0.)); +#41439=DIRECTION('',(0.,0.,1.)); +#41440=DIRECTION('',(1.,0.,0.)); +#41441=DIRECTION('',(0.,-1.,0.)); +#41442=DIRECTION('',(0.,0.,1.)); +#41443=DIRECTION('',(1.,0.,0.)); +#41444=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); +#41445=DIRECTION('',(0.,0.,1.)); +#41446=DIRECTION('',(1.,0.,0.)); +#41447=DIRECTION('',(0.,-1.,0.)); +#41448=DIRECTION('',(1.,0.,0.)); +#41449=DIRECTION('',(0.,1.,0.)); +#41450=DIRECTION('',(0.,0.,1.)); +#41451=DIRECTION('',(1.,0.,0.)); +#41452=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#41453=DIRECTION('',(0.,0.,1.)); +#41454=DIRECTION('',(1.,0.,0.)); +#41455=DIRECTION('',(0.,1.,0.)); +#41456=DIRECTION('',(0.,0.,1.)); +#41457=DIRECTION('',(1.,0.,0.)); +#41458=DIRECTION('',(-1.,0.,0.)); +#41459=DIRECTION('',(0.,0.,1.)); +#41460=DIRECTION('',(1.,0.,0.)); +#41461=DIRECTION('',(0.,-1.,0.)); +#41462=DIRECTION('',(0.,0.,1.)); +#41463=DIRECTION('',(1.,0.,0.)); +#41464=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); +#41465=DIRECTION('',(0.,0.,1.)); +#41466=DIRECTION('',(1.,0.,0.)); +#41467=DIRECTION('',(0.,-1.,0.)); +#41468=DIRECTION('',(1.,0.,0.)); +#41469=DIRECTION('',(0.,1.,0.)); +#41470=DIRECTION('',(0.,0.,1.)); +#41471=DIRECTION('',(1.,0.,0.)); +#41472=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#41473=DIRECTION('',(0.,0.,1.)); +#41474=DIRECTION('',(1.,0.,0.)); +#41475=DIRECTION('',(0.,1.,0.)); +#41476=DIRECTION('',(0.,0.,1.)); +#41477=DIRECTION('',(1.,0.,0.)); +#41478=DIRECTION('',(-1.,0.,0.)); +#41479=DIRECTION('',(0.,0.,1.)); +#41480=DIRECTION('',(1.,0.,0.)); +#41481=DIRECTION('',(0.,-1.,0.)); +#41482=DIRECTION('',(0.,0.,1.)); +#41483=DIRECTION('',(1.,0.,0.)); +#41484=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41485=DIRECTION('',(0.,0.,1.)); +#41486=DIRECTION('',(1.,0.,0.)); +#41487=DIRECTION('',(0.,-1.,0.)); +#41488=DIRECTION('',(1.,0.,0.)); +#41489=DIRECTION('',(0.,1.,0.)); +#41490=DIRECTION('',(0.,0.,1.)); +#41491=DIRECTION('',(1.,0.,0.)); +#41492=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#41493=DIRECTION('',(0.,0.,1.)); +#41494=DIRECTION('',(1.,0.,0.)); +#41495=DIRECTION('',(0.,1.,0.)); +#41496=DIRECTION('',(0.,0.,1.)); +#41497=DIRECTION('',(1.,0.,0.)); +#41498=DIRECTION('',(-1.,0.,0.)); +#41499=DIRECTION('',(0.,0.,1.)); +#41500=DIRECTION('',(1.,0.,0.)); +#41501=DIRECTION('',(0.,-1.,0.)); +#41502=DIRECTION('',(0.,0.,1.)); +#41503=DIRECTION('',(1.,0.,0.)); +#41504=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); +#41505=DIRECTION('',(0.,0.,1.)); +#41506=DIRECTION('',(1.,0.,0.)); +#41507=DIRECTION('',(0.,-1.,0.)); +#41508=DIRECTION('',(1.,0.,0.)); +#41509=DIRECTION('',(0.,1.,0.)); +#41510=DIRECTION('',(0.,0.,1.)); +#41511=DIRECTION('',(1.,0.,0.)); +#41512=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#41513=DIRECTION('',(0.,0.,1.)); +#41514=DIRECTION('',(1.,0.,0.)); +#41515=DIRECTION('',(0.,1.,0.)); +#41516=DIRECTION('',(0.,0.,1.)); +#41517=DIRECTION('',(1.,0.,0.)); +#41518=DIRECTION('',(-1.,0.,0.)); +#41519=DIRECTION('',(0.,0.,1.)); +#41520=DIRECTION('',(1.,0.,0.)); +#41521=DIRECTION('',(0.,-1.,0.)); +#41522=DIRECTION('',(0.,0.,1.)); +#41523=DIRECTION('',(1.,0.,0.)); +#41524=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41525=DIRECTION('',(0.,0.,1.)); +#41526=DIRECTION('',(1.,0.,0.)); +#41527=DIRECTION('',(0.,-1.,0.)); +#41528=DIRECTION('',(1.,0.,0.)); +#41529=DIRECTION('',(0.,1.,0.)); +#41530=DIRECTION('',(0.,0.,1.)); +#41531=DIRECTION('',(1.,0.,0.)); +#41532=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); +#41533=DIRECTION('',(0.,0.,1.)); +#41534=DIRECTION('',(1.,0.,0.)); +#41535=DIRECTION('',(0.,1.,0.)); +#41536=DIRECTION('',(0.,0.,1.)); +#41537=DIRECTION('',(1.,0.,0.)); +#41538=DIRECTION('',(-1.,0.,0.)); +#41539=DIRECTION('',(0.,0.,1.)); +#41540=DIRECTION('',(1.,0.,0.)); +#41541=DIRECTION('',(0.,-1.,0.)); +#41542=DIRECTION('',(0.,0.,1.)); +#41543=DIRECTION('',(1.,0.,0.)); +#41544=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41545=DIRECTION('',(0.,0.,1.)); +#41546=DIRECTION('',(1.,0.,0.)); +#41547=DIRECTION('',(0.,-1.,0.)); +#41548=DIRECTION('',(1.,0.,0.)); +#41549=DIRECTION('',(0.,1.,0.)); +#41550=DIRECTION('',(0.,0.,1.)); +#41551=DIRECTION('',(1.,0.,0.)); +#41552=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#41553=DIRECTION('',(0.,0.,1.)); +#41554=DIRECTION('',(1.,0.,0.)); +#41555=DIRECTION('',(0.,1.,0.)); +#41556=DIRECTION('',(0.,0.,1.)); +#41557=DIRECTION('',(1.,0.,0.)); +#41558=DIRECTION('',(-1.,0.,0.)); +#41559=DIRECTION('',(0.,0.,1.)); +#41560=DIRECTION('',(1.,0.,0.)); +#41561=DIRECTION('',(0.,-1.,0.)); +#41562=DIRECTION('',(0.,0.,1.)); +#41563=DIRECTION('',(1.,0.,0.)); +#41564=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#41565=DIRECTION('',(0.,0.,1.)); +#41566=DIRECTION('',(1.,0.,0.)); +#41567=DIRECTION('',(0.,1.,0.)); +#41568=DIRECTION('',(1.,0.,0.)); +#41569=DIRECTION('',(0.,-1.,0.)); +#41570=DIRECTION('',(0.,0.,-1.)); +#41571=DIRECTION('',(-1.,0.,0.)); +#41572=DIRECTION('',(-1.,0.,0.)); +#41573=DIRECTION('',(0.,-1.,0.)); +#41574=DIRECTION('',(1.,0.,0.)); +#41575=DIRECTION('',(0.,-1.,0.)); +#41576=DIRECTION('',(0.,0.,-1.)); +#41577=DIRECTION('',(-1.,0.,0.)); +#41578=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41579=DIRECTION('',(0.,0.,-1.)); +#41580=DIRECTION('',(-1.,0.,0.)); +#41581=DIRECTION('',(0.,1.,0.)); +#41582=DIRECTION('',(0.,0.,-1.)); +#41583=DIRECTION('',(-1.,0.,0.)); +#41584=DIRECTION('',(-1.,0.,0.)); +#41585=DIRECTION('',(0.,0.,-1.)); +#41586=DIRECTION('',(-1.,0.,0.)); +#41587=DIRECTION('',(0.,-1.,0.)); +#41588=DIRECTION('',(0.,0.,-1.)); +#41589=DIRECTION('',(-1.,0.,0.)); +#41590=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41591=DIRECTION('',(0.,0.,-1.)); +#41592=DIRECTION('',(-1.,0.,0.)); +#41593=DIRECTION('',(0.,-1.,0.)); +#41594=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41595=DIRECTION('',(0.,1.,0.)); +#41596=DIRECTION('',(0.,0.,-1.)); +#41597=DIRECTION('',(-1.,0.,0.)); +#41598=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41599=DIRECTION('',(0.,0.,-1.)); +#41600=DIRECTION('',(-1.,0.,0.)); +#41601=DIRECTION('',(0.,1.,0.)); +#41602=DIRECTION('',(0.,0.,-1.)); +#41603=DIRECTION('',(-1.,0.,0.)); +#41604=DIRECTION('',(-1.,0.,0.)); +#41605=DIRECTION('',(0.,0.,-1.)); +#41606=DIRECTION('',(-1.,0.,0.)); +#41607=DIRECTION('',(0.,-1.,0.)); +#41608=DIRECTION('',(0.,0.,-1.)); +#41609=DIRECTION('',(-1.,0.,0.)); +#41610=DIRECTION('',(-0.499999999999995,-0.866025403784442,0.)); +#41611=DIRECTION('',(0.,0.,-1.)); +#41612=DIRECTION('',(-1.,0.,0.)); +#41613=DIRECTION('',(0.,-1.,0.)); +#41614=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41615=DIRECTION('',(0.,1.,0.)); +#41616=DIRECTION('',(0.,0.,-1.)); +#41617=DIRECTION('',(-1.,0.,0.)); +#41618=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41619=DIRECTION('',(0.,0.,-1.)); +#41620=DIRECTION('',(-1.,0.,0.)); +#41621=DIRECTION('',(0.,1.,0.)); +#41622=DIRECTION('',(0.,0.,-1.)); +#41623=DIRECTION('',(-1.,0.,0.)); +#41624=DIRECTION('',(-1.,0.,0.)); +#41625=DIRECTION('',(0.,0.,-1.)); +#41626=DIRECTION('',(-1.,0.,0.)); +#41627=DIRECTION('',(0.,-1.,0.)); +#41628=DIRECTION('',(0.,0.,-1.)); +#41629=DIRECTION('',(-1.,0.,0.)); +#41630=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41631=DIRECTION('',(0.,0.,-1.)); +#41632=DIRECTION('',(-1.,0.,0.)); +#41633=DIRECTION('',(0.,-1.,0.)); +#41634=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41635=DIRECTION('',(0.,1.,0.)); +#41636=DIRECTION('',(0.,0.,-1.)); +#41637=DIRECTION('',(-1.,0.,0.)); +#41638=DIRECTION('',(-0.499999999999998,0.86602540378444,0.)); +#41639=DIRECTION('',(0.,0.,-1.)); +#41640=DIRECTION('',(-1.,0.,0.)); +#41641=DIRECTION('',(0.,1.,0.)); +#41642=DIRECTION('',(0.,0.,-1.)); +#41643=DIRECTION('',(-1.,0.,0.)); +#41644=DIRECTION('',(-1.,0.,0.)); +#41645=DIRECTION('',(0.,0.,-1.)); +#41646=DIRECTION('',(-1.,0.,0.)); +#41647=DIRECTION('',(0.,-1.,0.)); +#41648=DIRECTION('',(0.,0.,-1.)); +#41649=DIRECTION('',(-1.,0.,0.)); +#41650=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41651=DIRECTION('',(0.,0.,-1.)); +#41652=DIRECTION('',(-1.,0.,0.)); +#41653=DIRECTION('',(0.,-1.,0.)); +#41654=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41655=DIRECTION('',(0.,1.,0.)); +#41656=DIRECTION('',(0.,0.,-1.)); +#41657=DIRECTION('',(-1.,0.,0.)); +#41658=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41659=DIRECTION('',(0.,0.,-1.)); +#41660=DIRECTION('',(-1.,0.,0.)); +#41661=DIRECTION('',(0.,1.,0.)); +#41662=DIRECTION('',(0.,0.,-1.)); +#41663=DIRECTION('',(-1.,0.,0.)); +#41664=DIRECTION('',(-1.,0.,0.)); +#41665=DIRECTION('',(0.,0.,-1.)); +#41666=DIRECTION('',(-1.,0.,0.)); +#41667=DIRECTION('',(0.,-1.,0.)); +#41668=DIRECTION('',(0.,0.,-1.)); +#41669=DIRECTION('',(-1.,0.,0.)); +#41670=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41671=DIRECTION('',(0.,0.,-1.)); +#41672=DIRECTION('',(-1.,0.,0.)); +#41673=DIRECTION('',(0.,-1.,0.)); +#41674=DIRECTION('',(-1.,9.85638338623185E-16,0.)); +#41675=DIRECTION('',(0.,1.,0.)); +#41676=DIRECTION('',(0.,0.,-1.)); +#41677=DIRECTION('',(-1.,0.,0.)); +#41678=DIRECTION('',(-0.500000000000001,0.866025403784438,0.)); +#41679=DIRECTION('',(0.,0.,-1.)); +#41680=DIRECTION('',(-1.,0.,0.)); +#41681=DIRECTION('',(0.,1.,0.)); +#41682=DIRECTION('',(0.,0.,-1.)); +#41683=DIRECTION('',(-1.,0.,0.)); +#41684=DIRECTION('',(-1.,0.,0.)); +#41685=DIRECTION('',(0.,0.,-1.)); +#41686=DIRECTION('',(-1.,0.,0.)); +#41687=DIRECTION('',(0.,-1.,0.)); +#41688=DIRECTION('',(0.,0.,-1.)); +#41689=DIRECTION('',(-1.,0.,0.)); +#41690=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); +#41691=DIRECTION('',(0.,0.,-1.)); +#41692=DIRECTION('',(-1.,0.,0.)); +#41693=DIRECTION('',(0.,-1.,0.)); +#41694=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41695=DIRECTION('',(0.,1.,0.)); +#41696=DIRECTION('',(0.,0.,-1.)); +#41697=DIRECTION('',(-1.,0.,0.)); +#41698=DIRECTION('',(-0.500000000000001,0.866025403784438,0.)); +#41699=DIRECTION('',(0.,0.,-1.)); +#41700=DIRECTION('',(-1.,0.,0.)); +#41701=DIRECTION('',(0.,1.,0.)); +#41702=DIRECTION('',(0.,0.,-1.)); +#41703=DIRECTION('',(-1.,0.,0.)); +#41704=DIRECTION('',(-1.,0.,0.)); +#41705=DIRECTION('',(0.,0.,-1.)); +#41706=DIRECTION('',(-1.,0.,0.)); +#41707=DIRECTION('',(0.,-1.,0.)); +#41708=DIRECTION('',(0.,0.,-1.)); +#41709=DIRECTION('',(-1.,0.,0.)); +#41710=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41711=DIRECTION('',(0.,0.,-1.)); +#41712=DIRECTION('',(-1.,0.,0.)); +#41713=DIRECTION('',(0.,-1.,0.)); +#41714=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41715=DIRECTION('',(0.,1.,0.)); +#41716=DIRECTION('',(0.,0.,-1.)); +#41717=DIRECTION('',(-1.,0.,0.)); +#41718=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41719=DIRECTION('',(0.,0.,-1.)); +#41720=DIRECTION('',(-1.,0.,0.)); +#41721=DIRECTION('',(0.,1.,0.)); +#41722=DIRECTION('',(0.,0.,-1.)); +#41723=DIRECTION('',(-1.,0.,0.)); +#41724=DIRECTION('',(-1.,0.,0.)); +#41725=DIRECTION('',(0.,0.,-1.)); +#41726=DIRECTION('',(-1.,0.,0.)); +#41727=DIRECTION('',(0.,-1.,0.)); +#41728=DIRECTION('',(0.,0.,-1.)); +#41729=DIRECTION('',(-1.,0.,0.)); +#41730=DIRECTION('',(-0.5,-0.866025403784439,0.)); +#41731=DIRECTION('',(0.,0.,-1.)); +#41732=DIRECTION('',(-1.,0.,0.)); +#41733=DIRECTION('',(0.,-1.,0.)); +#41734=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41735=DIRECTION('',(0.,1.,0.)); +#41736=DIRECTION('',(0.,0.,-1.)); +#41737=DIRECTION('',(-1.,0.,0.)); +#41738=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); +#41739=DIRECTION('',(0.,0.,-1.)); +#41740=DIRECTION('',(-1.,0.,0.)); +#41741=DIRECTION('',(0.,1.,0.)); +#41742=DIRECTION('',(0.,0.,-1.)); +#41743=DIRECTION('',(-1.,0.,0.)); +#41744=DIRECTION('',(-1.,0.,0.)); +#41745=DIRECTION('',(0.,0.,-1.)); +#41746=DIRECTION('',(-1.,0.,0.)); +#41747=DIRECTION('',(0.,-1.,0.)); +#41748=DIRECTION('',(0.,0.,-1.)); +#41749=DIRECTION('',(-1.,0.,0.)); +#41750=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); +#41751=DIRECTION('',(0.,0.,-1.)); +#41752=DIRECTION('',(-1.,0.,0.)); +#41753=DIRECTION('',(0.,-1.,0.)); +#41754=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41755=DIRECTION('',(0.,1.,0.)); +#41756=DIRECTION('',(0.,0.,-1.)); +#41757=DIRECTION('',(-1.,0.,0.)); +#41758=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); +#41759=DIRECTION('',(0.,0.,-1.)); +#41760=DIRECTION('',(-1.,0.,0.)); +#41761=DIRECTION('',(0.,1.,0.)); +#41762=DIRECTION('',(0.,0.,-1.)); +#41763=DIRECTION('',(-1.,0.,0.)); +#41764=DIRECTION('',(-1.,0.,0.)); +#41765=DIRECTION('',(0.,0.,-1.)); +#41766=DIRECTION('',(-1.,0.,0.)); +#41767=DIRECTION('',(0.,-1.,0.)); +#41768=DIRECTION('',(0.,0.,-1.)); +#41769=DIRECTION('',(-1.,0.,0.)); +#41770=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); +#41771=DIRECTION('',(0.,0.,-1.)); +#41772=DIRECTION('',(-1.,0.,0.)); +#41773=DIRECTION('',(0.,-1.,0.)); +#41774=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41775=DIRECTION('',(9.12326820078609E-18,1.,0.)); +#41776=DIRECTION('',(0.,0.,-1.)); +#41777=DIRECTION('',(-1.,0.,0.)); +#41778=DIRECTION('',(-0.500000000000002,0.866025403784437,0.)); +#41779=DIRECTION('',(0.,0.,-1.)); +#41780=DIRECTION('',(-1.,0.,0.)); +#41781=DIRECTION('',(0.,1.,0.)); +#41782=DIRECTION('',(0.,0.,-1.)); +#41783=DIRECTION('',(-1.,0.,0.)); +#41784=DIRECTION('',(-1.,0.,0.)); +#41785=DIRECTION('',(0.,0.,-1.)); +#41786=DIRECTION('',(-1.,0.,0.)); +#41787=DIRECTION('',(0.,-1.,0.)); +#41788=DIRECTION('',(0.,0.,-1.)); +#41789=DIRECTION('',(-1.,0.,0.)); +#41790=DIRECTION('',(-0.500000000000001,-0.866025403784438,0.)); +#41791=DIRECTION('',(0.,0.,-1.)); +#41792=DIRECTION('',(-1.,0.,0.)); +#41793=DIRECTION('',(0.,-1.,0.)); +#41794=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41795=DIRECTION('',(0.,1.,0.)); +#41796=DIRECTION('',(0.,0.,-1.)); +#41797=DIRECTION('',(-1.,0.,0.)); +#41798=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); +#41799=DIRECTION('',(0.,0.,-1.)); +#41800=DIRECTION('',(-1.,0.,0.)); +#41801=DIRECTION('',(0.,1.,0.)); +#41802=DIRECTION('',(0.,0.,-1.)); +#41803=DIRECTION('',(-1.,0.,0.)); +#41804=DIRECTION('',(-1.,0.,0.)); +#41805=DIRECTION('',(0.,0.,-1.)); +#41806=DIRECTION('',(-1.,0.,0.)); +#41807=DIRECTION('',(0.,-1.,0.)); +#41808=DIRECTION('',(0.,0.,-1.)); +#41809=DIRECTION('',(-1.,0.,0.)); +#41810=DIRECTION('',(-0.5,-0.866025403784439,0.)); +#41811=DIRECTION('',(0.,0.,-1.)); +#41812=DIRECTION('',(-1.,0.,0.)); +#41813=DIRECTION('',(0.,-1.,0.)); +#41814=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41815=DIRECTION('',(0.,1.,0.)); +#41816=DIRECTION('',(0.,0.,-1.)); +#41817=DIRECTION('',(-1.,0.,0.)); +#41818=DIRECTION('',(-0.500000000000003,0.866025403784437,0.)); +#41819=DIRECTION('',(0.,0.,-1.)); +#41820=DIRECTION('',(-1.,0.,0.)); +#41821=DIRECTION('',(0.,1.,0.)); +#41822=DIRECTION('',(0.,0.,-1.)); +#41823=DIRECTION('',(-1.,0.,0.)); +#41824=DIRECTION('',(-1.,0.,0.)); +#41825=DIRECTION('',(0.,0.,-1.)); +#41826=DIRECTION('',(-1.,0.,0.)); +#41827=DIRECTION('',(0.,-1.,0.)); +#41828=DIRECTION('',(0.,0.,-1.)); +#41829=DIRECTION('',(-1.,0.,0.)); +#41830=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41831=DIRECTION('',(0.,0.,-1.)); +#41832=DIRECTION('',(-1.,0.,0.)); +#41833=DIRECTION('',(0.,-1.,0.)); +#41834=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41835=DIRECTION('',(0.,1.,0.)); +#41836=DIRECTION('',(0.,0.,-1.)); +#41837=DIRECTION('',(-1.,0.,0.)); +#41838=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41839=DIRECTION('',(0.,0.,-1.)); +#41840=DIRECTION('',(-1.,0.,0.)); +#41841=DIRECTION('',(0.,1.,0.)); +#41842=DIRECTION('',(0.,0.,-1.)); +#41843=DIRECTION('',(-1.,0.,0.)); +#41844=DIRECTION('',(-1.,0.,0.)); +#41845=DIRECTION('',(0.,0.,-1.)); +#41846=DIRECTION('',(-1.,0.,0.)); +#41847=DIRECTION('',(0.,-1.,0.)); +#41848=DIRECTION('',(0.,0.,-1.)); +#41849=DIRECTION('',(-1.,0.,0.)); +#41850=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); +#41851=DIRECTION('',(0.,0.,-1.)); +#41852=DIRECTION('',(-1.,0.,0.)); +#41853=DIRECTION('',(0.,-1.,0.)); +#41854=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41855=DIRECTION('',(0.,1.,0.)); +#41856=DIRECTION('',(0.,0.,-1.)); +#41857=DIRECTION('',(-1.,0.,0.)); +#41858=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41859=DIRECTION('',(0.,0.,-1.)); +#41860=DIRECTION('',(-1.,0.,0.)); +#41861=DIRECTION('',(0.,1.,0.)); +#41862=DIRECTION('',(0.,0.,-1.)); +#41863=DIRECTION('',(-1.,0.,0.)); +#41864=DIRECTION('',(-1.,0.,0.)); +#41865=DIRECTION('',(0.,0.,-1.)); +#41866=DIRECTION('',(-1.,0.,0.)); +#41867=DIRECTION('',(0.,-1.,0.)); +#41868=DIRECTION('',(0.,0.,-1.)); +#41869=DIRECTION('',(-1.,0.,0.)); +#41870=DIRECTION('',(-0.499999999999998,-0.86602540378444,0.)); +#41871=DIRECTION('',(0.,0.,-1.)); +#41872=DIRECTION('',(-1.,0.,0.)); +#41873=DIRECTION('',(0.,-1.,0.)); +#41874=DIRECTION('',(-1.,9.85638338623185E-16,0.)); +#41875=DIRECTION('',(0.,1.,0.)); +#41876=DIRECTION('',(0.,0.,-1.)); +#41877=DIRECTION('',(-1.,0.,0.)); +#41878=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41879=DIRECTION('',(0.,0.,-1.)); +#41880=DIRECTION('',(-1.,0.,0.)); +#41881=DIRECTION('',(0.,1.,0.)); +#41882=DIRECTION('',(0.,0.,-1.)); +#41883=DIRECTION('',(-1.,0.,0.)); +#41884=DIRECTION('',(-1.,0.,0.)); +#41885=DIRECTION('',(0.,0.,-1.)); +#41886=DIRECTION('',(-1.,0.,0.)); +#41887=DIRECTION('',(0.,-1.,0.)); +#41888=DIRECTION('',(0.,0.,-1.)); +#41889=DIRECTION('',(-1.,0.,0.)); +#41890=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41891=DIRECTION('',(0.,0.,-1.)); +#41892=DIRECTION('',(-1.,0.,0.)); +#41893=DIRECTION('',(0.,-1.,0.)); +#41894=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41895=DIRECTION('',(0.,1.,0.)); +#41896=DIRECTION('',(0.,0.,-1.)); +#41897=DIRECTION('',(-1.,0.,0.)); +#41898=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41899=DIRECTION('',(0.,0.,-1.)); +#41900=DIRECTION('',(-1.,0.,0.)); +#41901=DIRECTION('',(0.,1.,0.)); +#41902=DIRECTION('',(0.,0.,-1.)); +#41903=DIRECTION('',(-1.,0.,0.)); +#41904=DIRECTION('',(-1.,0.,0.)); +#41905=DIRECTION('',(0.,0.,-1.)); +#41906=DIRECTION('',(-1.,0.,0.)); +#41907=DIRECTION('',(0.,-1.,0.)); +#41908=DIRECTION('',(0.,0.,-1.)); +#41909=DIRECTION('',(-1.,0.,0.)); +#41910=DIRECTION('',(-0.499999999999995,-0.866025403784442,0.)); +#41911=DIRECTION('',(0.,0.,-1.)); +#41912=DIRECTION('',(-1.,0.,0.)); +#41913=DIRECTION('',(0.,-1.,0.)); +#41914=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41915=DIRECTION('',(0.,1.,0.)); +#41916=DIRECTION('',(0.,0.,-1.)); +#41917=DIRECTION('',(-1.,0.,0.)); +#41918=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41919=DIRECTION('',(0.,0.,-1.)); +#41920=DIRECTION('',(-1.,0.,0.)); +#41921=DIRECTION('',(0.,1.,0.)); +#41922=DIRECTION('',(0.,0.,-1.)); +#41923=DIRECTION('',(-1.,0.,0.)); +#41924=DIRECTION('',(-1.,0.,0.)); +#41925=DIRECTION('',(0.,0.,-1.)); +#41926=DIRECTION('',(-1.,0.,0.)); +#41927=DIRECTION('',(0.,-1.,0.)); +#41928=DIRECTION('',(0.,0.,-1.)); +#41929=DIRECTION('',(-1.,0.,0.)); +#41930=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41931=DIRECTION('',(0.,0.,-1.)); +#41932=DIRECTION('',(-1.,0.,0.)); +#41933=DIRECTION('',(0.,-1.,0.)); +#41934=DIRECTION('',(-1.,9.85638338623187E-16,0.)); +#41935=DIRECTION('',(0.,1.,0.)); +#41936=DIRECTION('',(0.,0.,-1.)); +#41937=DIRECTION('',(-1.,0.,0.)); +#41938=DIRECTION('',(-0.499999999999998,0.86602540378444,0.)); +#41939=DIRECTION('',(0.,0.,-1.)); +#41940=DIRECTION('',(-1.,0.,0.)); +#41941=DIRECTION('',(0.,1.,0.)); +#41942=DIRECTION('',(0.,0.,-1.)); +#41943=DIRECTION('',(-1.,0.,0.)); +#41944=DIRECTION('',(-1.,0.,0.)); +#41945=DIRECTION('',(0.,0.,-1.)); +#41946=DIRECTION('',(-1.,0.,0.)); +#41947=DIRECTION('',(0.,-1.,0.)); +#41948=DIRECTION('',(0.,0.,-1.)); +#41949=DIRECTION('',(-1.,0.,0.)); +#41950=DIRECTION('',(-0.500000000000002,-0.866025403784438,0.)); +#41951=DIRECTION('',(0.,0.,-1.)); +#41952=DIRECTION('',(-1.,0.,0.)); +#41953=DIRECTION('',(0.,-1.,0.)); +#41954=DIRECTION('',(-1.,9.85638338623183E-16,0.)); +#41955=DIRECTION('',(2.91944582425155E-16,1.,0.)); +#41956=DIRECTION('',(0.,0.,-1.)); +#41957=DIRECTION('',(-1.,0.,0.)); +#41958=DIRECTION('',(-0.500000000000005,0.866025403784436,0.)); +#41959=DIRECTION('',(0.,0.,-1.)); +#41960=DIRECTION('',(-1.,0.,0.)); +#41961=DIRECTION('',(0.,1.,0.)); +#41962=DIRECTION('',(0.,0.,-1.)); +#41963=DIRECTION('',(-1.,0.,0.)); +#41964=DIRECTION('',(-1.,0.,0.)); +#41965=DIRECTION('',(0.,0.,-1.)); +#41966=DIRECTION('',(-1.,0.,0.)); +#41967=DIRECTION('',(0.,-1.,0.)); +#41968=DIRECTION('',(0.,0.,-1.)); +#41969=DIRECTION('',(-1.,0.,0.)); +#41970=DIRECTION('',(-0.500000000000009,-0.866025403784433,0.)); +#41971=DIRECTION('',(0.,0.,-1.)); +#41972=DIRECTION('',(-1.,0.,0.)); +#41973=DIRECTION('',(0.,-1.,0.)); +#41974=DIRECTION('',(1.,0.,0.)); +#41975=DIRECTION('',(0.,-1.,0.)); +#41976=DIRECTION('',(1.,0.,0.)); +#41977=DIRECTION('',(0.,0.,-1.)); +#41978=DIRECTION('',(0.,0.,-1.)); +#41979=DIRECTION('',(0.,0.,1.)); +#41980=DIRECTION('',(1.,0.,0.)); +#41981=DIRECTION('',(0.,0.,-1.)); +#41982=DIRECTION('',(0.,0.,-1.)); +#41983=DIRECTION('',(0.,0.,1.)); +#41984=DIRECTION('',(-1.,0.,0.)); +#41985=DIRECTION('',(0.,0.,1.)); +#41986=DIRECTION('',(0.,0.,1.)); +#41987=DIRECTION('',(0.,0.,-1.)); +#41988=DIRECTION('',(-1.,0.,0.)); +#41989=DIRECTION('',(0.,0.,1.)); +#41990=DIRECTION('',(0.,0.,1.)); +#41991=DIRECTION('',(0.,0.,-1.)); +#41992=DIRECTION('',(0.,-1.,0.)); +#41993=DIRECTION('',(0.,0.,-1.)); +#41994=DIRECTION('',(0.,0.,-1.)); +#41995=DIRECTION('',(0.,0.,-1.)); +#41996=DIRECTION('',(0.,-1.,0.)); +#41997=DIRECTION('',(0.,0.,-1.)); +#41998=DIRECTION('',(0.,0.,-1.)); +#41999=DIRECTION('',(0.,0.,-1.)); +#42000=DIRECTION('',(0.,-1.,0.)); +#42001=DIRECTION('',(0.,0.,-1.)); +#42002=DIRECTION('',(0.,0.,-1.)); +#42003=DIRECTION('',(0.,0.,-1.)); +#42004=DIRECTION('',(0.,-1.,0.)); +#42005=DIRECTION('',(0.,0.,-1.)); +#42006=DIRECTION('',(0.,0.,-1.)); +#42007=DIRECTION('',(0.,0.,-1.)); +#42008=DIRECTION('',(0.,-1.,0.)); +#42009=DIRECTION('',(0.,0.,-1.)); +#42010=DIRECTION('',(0.,0.,-1.)); +#42011=DIRECTION('',(0.,0.,-1.)); +#42012=DIRECTION('',(0.,-1.,0.)); +#42013=DIRECTION('',(0.,0.,-1.)); +#42014=DIRECTION('',(0.,0.,-1.)); +#42015=DIRECTION('',(0.,0.,-1.)); +#42016=DIRECTION('',(0.,-1.,0.)); +#42017=DIRECTION('',(0.,0.,-1.)); +#42018=DIRECTION('',(0.,0.,-1.)); +#42019=DIRECTION('',(0.,0.,-1.)); +#42020=DIRECTION('',(0.,-1.,0.)); +#42021=DIRECTION('',(0.,0.,-1.)); +#42022=DIRECTION('',(0.,0.,-1.)); +#42023=DIRECTION('',(0.,0.,-1.)); +#42024=DIRECTION('',(0.,-1.,0.)); +#42025=DIRECTION('',(0.,0.,-1.)); +#42026=DIRECTION('',(0.,0.,-1.)); +#42027=DIRECTION('',(0.,0.,-1.)); +#42028=DIRECTION('',(0.,-1.,0.)); +#42029=DIRECTION('',(0.,0.,-1.)); +#42030=DIRECTION('',(0.,0.,-1.)); +#42031=DIRECTION('',(0.,0.,-1.)); +#42032=DIRECTION('',(0.,-1.,0.)); +#42033=DIRECTION('',(0.,0.,-1.)); +#42034=DIRECTION('',(0.,0.,-1.)); +#42035=DIRECTION('',(0.,0.,-1.)); +#42036=DIRECTION('',(0.,-1.,0.)); +#42037=DIRECTION('',(0.,0.,-1.)); +#42038=DIRECTION('',(0.,0.,-1.)); +#42039=DIRECTION('',(0.,0.,-1.)); +#42040=DIRECTION('',(0.,-1.,0.)); +#42041=DIRECTION('',(0.,0.,-1.)); +#42042=DIRECTION('',(0.,0.,-1.)); +#42043=DIRECTION('',(0.,0.,-1.)); +#42044=DIRECTION('',(0.,-1.,0.)); +#42045=DIRECTION('',(0.,0.,-1.)); +#42046=DIRECTION('',(0.,0.,-1.)); +#42047=DIRECTION('',(0.,0.,-1.)); +#42048=DIRECTION('',(0.,-1.,0.)); +#42049=DIRECTION('',(0.,0.,-1.)); +#42050=DIRECTION('',(0.,0.,-1.)); +#42051=DIRECTION('',(0.,0.,-1.)); +#42052=DIRECTION('',(0.,-1.,0.)); +#42053=DIRECTION('',(0.,0.,-1.)); +#42054=DIRECTION('',(0.,0.,-1.)); +#42055=DIRECTION('',(0.,0.,-1.)); +#42056=DIRECTION('',(0.,-1.,0.)); +#42057=DIRECTION('',(0.,0.,-1.)); +#42058=DIRECTION('',(0.,0.,-1.)); +#42059=DIRECTION('',(0.,0.,-1.)); +#42060=DIRECTION('',(0.,-1.,0.)); +#42061=DIRECTION('',(0.,0.,-1.)); +#42062=DIRECTION('',(0.,0.,-1.)); +#42063=DIRECTION('',(0.,0.,-1.)); +#42064=DIRECTION('',(0.,-1.,0.)); +#42065=DIRECTION('',(0.,0.,-1.)); +#42066=DIRECTION('',(0.,0.,-1.)); +#42067=DIRECTION('',(0.,0.,-1.)); +#42068=DIRECTION('',(0.,-1.,0.)); +#42069=DIRECTION('',(0.,0.,-1.)); +#42070=DIRECTION('',(0.,0.,-1.)); +#42071=DIRECTION('',(0.,0.,-1.)); +#42072=DIRECTION('',(0.,-1.,0.)); +#42073=DIRECTION('',(0.,0.,-1.)); +#42074=DIRECTION('',(0.,0.,-1.)); +#42075=DIRECTION('',(0.,0.,-1.)); +#42076=DIRECTION('',(0.,-1.,0.)); +#42077=DIRECTION('',(0.,0.,-1.)); +#42078=DIRECTION('',(0.,0.,-1.)); +#42079=DIRECTION('',(0.,0.,-1.)); +#42080=DIRECTION('',(0.,-1.,0.)); +#42081=DIRECTION('',(0.,0.,-1.)); +#42082=DIRECTION('',(0.,0.,-1.)); +#42083=DIRECTION('',(0.,0.,-1.)); +#42084=DIRECTION('',(0.,-1.,0.)); +#42085=DIRECTION('',(0.,0.,-1.)); +#42086=DIRECTION('',(0.,0.,-1.)); +#42087=DIRECTION('',(0.,0.,-1.)); +#42088=DIRECTION('',(0.,-1.,0.)); +#42089=DIRECTION('',(0.,0.,-1.)); +#42090=DIRECTION('',(0.,0.,-1.)); +#42091=DIRECTION('',(0.,0.,-1.)); +#42092=DIRECTION('',(0.,-1.,0.)); +#42093=DIRECTION('',(0.,0.,-1.)); +#42094=DIRECTION('',(0.,0.,-1.)); +#42095=DIRECTION('',(0.,0.,-1.)); +#42096=DIRECTION('',(0.,-1.,0.)); +#42097=DIRECTION('',(0.,0.,-1.)); +#42098=DIRECTION('',(0.,0.,-1.)); +#42099=DIRECTION('',(0.,0.,-1.)); +#42100=DIRECTION('',(0.,-1.,0.)); +#42101=DIRECTION('',(0.,0.,-1.)); +#42102=DIRECTION('',(0.,0.,-1.)); +#42103=DIRECTION('',(0.,0.,-1.)); +#42104=DIRECTION('',(0.,-1.,0.)); +#42105=DIRECTION('',(0.,0.,-1.)); +#42106=DIRECTION('',(0.,0.,-1.)); +#42107=DIRECTION('',(0.,0.,-1.)); +#42108=DIRECTION('',(0.,-1.,0.)); +#42109=DIRECTION('',(0.,0.,-1.)); +#42110=DIRECTION('',(0.,0.,-1.)); +#42111=DIRECTION('',(0.,0.,-1.)); +#42112=DIRECTION('',(0.,-1.,0.)); +#42113=DIRECTION('',(0.,0.,-1.)); +#42114=DIRECTION('',(0.,0.,-1.)); +#42115=DIRECTION('',(0.,0.,-1.)); +#42116=DIRECTION('',(0.,-1.,0.)); +#42117=DIRECTION('',(0.,0.,-1.)); +#42118=DIRECTION('',(0.,0.,-1.)); +#42119=DIRECTION('',(0.,0.,-1.)); +#42120=DIRECTION('',(0.,-1.,0.)); +#42121=DIRECTION('',(0.,0.,-1.)); +#42122=DIRECTION('',(0.,0.,-1.)); +#42123=DIRECTION('',(0.,0.,-1.)); +#42124=DIRECTION('',(0.,-1.,0.)); +#42125=DIRECTION('',(0.,0.,-1.)); +#42126=DIRECTION('',(0.,0.,-1.)); +#42127=DIRECTION('',(0.,0.,-1.)); +#42128=DIRECTION('',(0.,-1.,0.)); +#42129=DIRECTION('',(0.,0.,-1.)); +#42130=DIRECTION('',(0.,0.,-1.)); +#42131=DIRECTION('',(0.,0.,-1.)); +#42132=DIRECTION('',(0.,-1.,0.)); +#42133=DIRECTION('',(0.,0.,-1.)); +#42134=DIRECTION('',(0.,0.,-1.)); +#42135=DIRECTION('',(0.,0.,-1.)); +#42136=DIRECTION('',(0.,-1.,0.)); +#42137=DIRECTION('',(0.,0.,-1.)); +#42138=DIRECTION('',(0.,0.,-1.)); +#42139=DIRECTION('',(0.,0.,-1.)); +#42140=DIRECTION('',(0.,-1.,0.)); +#42141=DIRECTION('',(0.,0.,-1.)); +#42142=DIRECTION('',(0.,0.,-1.)); +#42143=DIRECTION('',(0.,0.,-1.)); +#42144=DIRECTION('',(1.,0.,0.)); +#42145=DIRECTION('',(0.,0.,-1.)); +#42146=DIRECTION('',(0.,0.,1.)); +#42147=DIRECTION('',(0.,0.,-1.)); +#42148=DIRECTION('',(1.,0.,0.)); +#42149=DIRECTION('',(0.,0.,-1.)); +#42150=DIRECTION('',(0.,0.,1.)); +#42151=DIRECTION('',(0.,0.,-1.)); +#42152=DIRECTION('',(-1.,0.,0.)); +#42153=DIRECTION('',(0.,0.,1.)); +#42154=DIRECTION('',(1.,0.,0.)); +#42155=DIRECTION('',(0.,0.,-1.)); +#42156=DIRECTION('',(-1.,0.,0.)); +#42157=DIRECTION('',(-1.,0.,0.)); +#42158=DIRECTION('',(0.,0.,1.)); +#42159=DIRECTION('',(-1.,0.,0.)); +#42160=DIRECTION('',(0.,0.,1.)); +#42161=DIRECTION('',(1.,0.,0.)); +#42162=DIRECTION('',(0.,0.,-1.)); +#42163=DIRECTION('',(-1.,0.,0.)); +#42164=DIRECTION('',(-1.,0.,0.)); +#42165=DIRECTION('',(0.,0.,1.)); +#42166=DIRECTION('',(-1.,0.,0.)); +#42167=DIRECTION('',(0.,0.,1.)); +#42168=DIRECTION('',(1.,0.,0.)); +#42169=DIRECTION('',(0.,0.,-1.)); +#42170=DIRECTION('',(-1.,0.,0.)); +#42171=DIRECTION('',(-1.,0.,0.)); +#42172=DIRECTION('',(0.,0.,1.)); +#42173=DIRECTION('',(-1.,0.,0.)); +#42174=DIRECTION('',(0.,0.,1.)); +#42175=DIRECTION('',(1.,0.,0.)); +#42176=DIRECTION('',(0.,0.,-1.)); +#42177=DIRECTION('',(-1.,0.,0.)); +#42178=DIRECTION('',(-1.,0.,0.)); +#42179=DIRECTION('',(0.,0.,1.)); +#42180=DIRECTION('',(-1.,0.,0.)); +#42181=DIRECTION('',(0.,0.,1.)); +#42182=DIRECTION('',(1.,0.,0.)); +#42183=DIRECTION('',(0.,0.,-1.)); +#42184=DIRECTION('',(-1.,0.,0.)); +#42185=DIRECTION('',(-1.,0.,0.)); +#42186=DIRECTION('',(0.,0.,1.)); +#42187=DIRECTION('',(-1.,0.,0.)); +#42188=DIRECTION('',(0.,0.,1.)); +#42189=DIRECTION('',(1.,0.,0.)); +#42190=DIRECTION('',(0.,0.,-1.)); +#42191=DIRECTION('',(-1.,0.,0.)); +#42192=DIRECTION('',(-1.,0.,0.)); +#42193=DIRECTION('',(0.,0.,1.)); +#42194=DIRECTION('',(-1.,0.,0.)); +#42195=DIRECTION('',(0.,0.,1.)); +#42196=DIRECTION('',(1.,0.,0.)); +#42197=DIRECTION('',(0.,0.,-1.)); +#42198=DIRECTION('',(-1.,0.,0.)); +#42199=DIRECTION('',(-1.,0.,0.)); +#42200=DIRECTION('',(0.,0.,1.)); +#42201=DIRECTION('',(-1.,0.,0.)); +#42202=DIRECTION('',(0.,0.,1.)); +#42203=DIRECTION('',(1.,0.,0.)); +#42204=DIRECTION('',(0.,0.,-1.)); +#42205=DIRECTION('',(-1.,0.,0.)); +#42206=DIRECTION('',(-1.,0.,0.)); +#42207=DIRECTION('',(0.,0.,1.)); +#42208=DIRECTION('',(-1.,0.,0.)); +#42209=DIRECTION('',(0.,0.,1.)); +#42210=DIRECTION('',(1.,0.,0.)); +#42211=DIRECTION('',(0.,0.,-1.)); +#42212=DIRECTION('',(-1.,0.,0.)); +#42213=DIRECTION('',(-1.,0.,0.)); +#42214=DIRECTION('',(0.,0.,1.)); +#42215=DIRECTION('',(-1.,0.,0.)); +#42216=DIRECTION('',(0.,0.,1.)); +#42217=DIRECTION('',(1.,0.,0.)); +#42218=DIRECTION('',(0.,0.,-1.)); +#42219=DIRECTION('',(-1.,0.,0.)); +#42220=DIRECTION('',(-1.,0.,0.)); +#42221=DIRECTION('',(0.,0.,1.)); +#42222=DIRECTION('',(-1.,0.,0.)); +#42223=DIRECTION('',(0.,0.,1.)); +#42224=DIRECTION('',(1.,0.,0.)); +#42225=DIRECTION('',(0.,0.,-1.)); +#42226=DIRECTION('',(-1.,0.,0.)); +#42227=DIRECTION('',(-1.,0.,0.)); +#42228=DIRECTION('',(0.,0.,1.)); +#42229=DIRECTION('',(-1.,0.,0.)); +#42230=DIRECTION('',(0.,0.,1.)); +#42231=DIRECTION('',(1.,0.,0.)); +#42232=DIRECTION('',(0.,0.,-1.)); +#42233=DIRECTION('',(-1.,0.,0.)); +#42234=DIRECTION('',(-1.,0.,0.)); +#42235=DIRECTION('',(0.,0.,1.)); +#42236=DIRECTION('',(-1.,0.,0.)); +#42237=DIRECTION('',(0.,0.,1.)); +#42238=DIRECTION('',(1.,0.,0.)); +#42239=DIRECTION('',(0.,0.,-1.)); +#42240=DIRECTION('',(-1.,0.,0.)); +#42241=DIRECTION('',(-1.,0.,0.)); +#42242=DIRECTION('',(0.,0.,1.)); +#42243=DIRECTION('',(-1.,0.,0.)); +#42244=DIRECTION('',(0.,0.,1.)); +#42245=DIRECTION('',(1.,0.,0.)); +#42246=DIRECTION('',(0.,0.,-1.)); +#42247=DIRECTION('',(-1.,0.,0.)); +#42248=DIRECTION('',(-1.,0.,0.)); +#42249=DIRECTION('',(0.,0.,1.)); +#42250=DIRECTION('',(-1.,0.,0.)); +#42251=DIRECTION('',(0.,0.,1.)); +#42252=DIRECTION('',(1.,0.,0.)); +#42253=DIRECTION('',(0.,0.,-1.)); +#42254=DIRECTION('',(-1.,0.,0.)); +#42255=DIRECTION('',(-1.,0.,0.)); +#42256=DIRECTION('',(0.,0.,1.)); +#42257=DIRECTION('',(-1.,0.,0.)); +#42258=DIRECTION('',(0.,0.,1.)); +#42259=DIRECTION('',(1.,0.,0.)); +#42260=DIRECTION('',(0.,0.,-1.)); +#42261=DIRECTION('',(-1.,0.,0.)); +#42262=DIRECTION('',(-1.,0.,0.)); +#42263=DIRECTION('',(0.,0.,1.)); +#42264=DIRECTION('',(-1.,0.,0.)); +#42265=DIRECTION('',(0.,0.,1.)); +#42266=DIRECTION('',(1.,0.,0.)); +#42267=DIRECTION('',(0.,0.,-1.)); +#42268=DIRECTION('',(-1.,0.,0.)); +#42269=DIRECTION('',(-1.,0.,0.)); +#42270=DIRECTION('',(0.,0.,1.)); +#42271=DIRECTION('',(-1.,0.,0.)); +#42272=DIRECTION('',(0.,0.,1.)); +#42273=DIRECTION('',(1.,0.,0.)); +#42274=DIRECTION('',(0.,0.,-1.)); +#42275=DIRECTION('',(-1.,0.,0.)); +#42276=DIRECTION('',(-1.,0.,0.)); +#42277=DIRECTION('',(0.,0.,1.)); +#42278=DIRECTION('',(-1.,0.,0.)); +#42279=DIRECTION('',(0.,0.,1.)); +#42280=DIRECTION('',(1.,0.,0.)); +#42281=DIRECTION('',(0.,0.,-1.)); +#42282=DIRECTION('',(-1.,0.,0.)); +#42283=DIRECTION('',(-1.,0.,0.)); +#42284=DIRECTION('',(0.,0.,1.)); +#42285=DIRECTION('',(-1.,0.,0.)); +#42286=DIRECTION('',(0.,0.,1.)); +#42287=DIRECTION('',(1.,0.,0.)); +#42288=DIRECTION('',(0.,0.,-1.)); +#42289=DIRECTION('',(-1.,0.,0.)); +#42290=DIRECTION('',(-1.,0.,0.)); +#42291=DIRECTION('',(0.,0.,1.)); +#42292=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42293=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42294=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42295=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42296=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42297=DIRECTION('',(-1.,0.,0.)); +#42298=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42299=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42300=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42301=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42302=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42303=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42304=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42305=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42306=DIRECTION('',(-1.,0.,0.)); +#42307=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42308=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42309=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42310=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42311=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42312=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42313=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42314=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42315=DIRECTION('',(-1.,0.,0.)); +#42316=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42317=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42318=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42319=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42320=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42321=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42322=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42323=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42324=DIRECTION('',(-1.,0.,0.)); +#42325=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42326=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42327=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42328=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42329=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42330=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42331=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42332=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42333=DIRECTION('',(-1.,0.,0.)); +#42334=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42335=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42336=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42337=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42338=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42339=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42340=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42341=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42342=DIRECTION('',(-1.,0.,0.)); +#42343=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42344=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42345=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42346=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42347=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42348=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42349=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42350=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42351=DIRECTION('',(-1.,0.,0.)); +#42352=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42353=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42354=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42355=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42356=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42357=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42358=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42359=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42360=DIRECTION('',(-1.,0.,0.)); +#42361=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42362=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42363=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42364=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42365=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42366=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42367=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42368=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42369=DIRECTION('',(-1.,0.,0.)); +#42370=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42371=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42372=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42373=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42374=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42375=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42376=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42377=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42378=DIRECTION('',(-1.,0.,0.)); +#42379=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42380=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42381=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42382=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42383=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42384=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42385=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42386=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42387=DIRECTION('',(-1.,0.,0.)); +#42388=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42389=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42390=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42391=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42392=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42393=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42394=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42395=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42396=DIRECTION('',(-1.,0.,0.)); +#42397=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42398=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42399=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42400=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42401=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42402=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42403=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42404=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42405=DIRECTION('',(-1.,0.,0.)); +#42406=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42407=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42408=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42409=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42410=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42411=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42412=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42413=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42414=DIRECTION('',(-1.,0.,0.)); +#42415=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42416=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42417=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42418=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42419=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42420=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42421=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42422=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42423=DIRECTION('',(-1.,0.,0.)); +#42424=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42425=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42426=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42427=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42428=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42429=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42430=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42431=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42432=DIRECTION('',(-1.,0.,0.)); +#42433=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42434=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42435=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42436=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42437=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42438=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42439=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42440=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42441=DIRECTION('',(-1.,0.,0.)); +#42442=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42443=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42444=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42445=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42446=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42447=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42448=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42449=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42450=DIRECTION('',(-1.,0.,0.)); +#42451=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42452=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42453=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42454=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42455=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42456=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42457=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42458=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#42459=DIRECTION('',(-1.,0.,0.)); +#42460=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42461=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#42462=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#42463=DIRECTION('',(-1.,0.,0.)); +#42464=DIRECTION('',(0.,0.,1.)); +#42465=DIRECTION('',(1.,0.,0.)); +#42466=DIRECTION('',(0.,0.,-1.)); +#42467=DIRECTION('',(-1.,0.,0.)); +#42468=DIRECTION('',(0.,0.,1.)); +#42469=DIRECTION('',(-1.,0.,0.)); +#42470=DIRECTION('',(0.,0.,1.)); +#42471=DIRECTION('',(1.,0.,0.)); +#42472=DIRECTION('',(0.,0.,-1.)); +#42473=DIRECTION('',(-1.,0.,0.)); +#42474=DIRECTION('',(0.,0.,1.)); +#42475=DIRECTION('',(-1.,0.,0.)); +#42476=DIRECTION('',(0.,0.,1.)); +#42477=DIRECTION('',(1.,0.,0.)); +#42478=DIRECTION('',(0.,0.,-1.)); +#42479=DIRECTION('',(-1.,0.,0.)); +#42480=DIRECTION('',(0.,0.,1.)); +#42481=DIRECTION('',(-1.,0.,0.)); +#42482=DIRECTION('',(0.,0.,1.)); +#42483=DIRECTION('',(1.,0.,0.)); +#42484=DIRECTION('',(0.,0.,-1.)); +#42485=DIRECTION('',(-1.,0.,0.)); +#42486=DIRECTION('',(0.,0.,1.)); +#42487=DIRECTION('',(-1.,0.,0.)); +#42488=DIRECTION('',(0.,0.,1.)); +#42489=DIRECTION('',(1.,0.,0.)); +#42490=DIRECTION('',(0.,0.,-1.)); +#42491=DIRECTION('',(-1.,0.,0.)); +#42492=DIRECTION('',(0.,0.,1.)); +#42493=DIRECTION('',(-1.,0.,0.)); +#42494=DIRECTION('',(0.,0.,1.)); +#42495=DIRECTION('',(1.,0.,0.)); +#42496=DIRECTION('',(0.,0.,-1.)); +#42497=DIRECTION('',(-1.,0.,0.)); +#42498=DIRECTION('',(0.,0.,1.)); +#42499=DIRECTION('',(-1.,0.,0.)); +#42500=DIRECTION('',(0.,0.,1.)); +#42501=DIRECTION('',(1.,0.,0.)); +#42502=DIRECTION('',(0.,0.,-1.)); +#42503=DIRECTION('',(-1.,0.,0.)); +#42504=DIRECTION('',(0.,0.,1.)); +#42505=DIRECTION('',(-1.,0.,0.)); +#42506=DIRECTION('',(0.,0.,1.)); +#42507=DIRECTION('',(1.,0.,0.)); +#42508=DIRECTION('',(0.,0.,-1.)); +#42509=DIRECTION('',(-1.,0.,0.)); +#42510=DIRECTION('',(0.,0.,1.)); +#42511=DIRECTION('',(-1.,0.,0.)); +#42512=DIRECTION('',(0.,0.,1.)); +#42513=DIRECTION('',(1.,0.,0.)); +#42514=DIRECTION('',(0.,0.,-1.)); +#42515=DIRECTION('',(-1.,0.,0.)); +#42516=DIRECTION('',(0.,0.,1.)); +#42517=DIRECTION('',(-1.,0.,0.)); +#42518=DIRECTION('',(0.,0.,1.)); +#42519=DIRECTION('',(1.,0.,0.)); +#42520=DIRECTION('',(0.,0.,-1.)); +#42521=DIRECTION('',(-1.,0.,0.)); +#42522=DIRECTION('',(0.,0.,1.)); +#42523=DIRECTION('',(-1.,0.,0.)); +#42524=DIRECTION('',(0.,0.,1.)); +#42525=DIRECTION('',(1.,0.,0.)); +#42526=DIRECTION('',(0.,0.,-1.)); +#42527=DIRECTION('',(-1.,0.,0.)); +#42528=DIRECTION('',(0.,0.,1.)); +#42529=DIRECTION('',(-1.,0.,0.)); +#42530=DIRECTION('',(0.,0.,1.)); +#42531=DIRECTION('',(1.,0.,0.)); +#42532=DIRECTION('',(0.,0.,-1.)); +#42533=DIRECTION('',(-1.,0.,0.)); +#42534=DIRECTION('',(0.,0.,1.)); +#42535=DIRECTION('',(-1.,0.,0.)); +#42536=DIRECTION('',(0.,0.,1.)); +#42537=DIRECTION('',(1.,0.,0.)); +#42538=DIRECTION('',(0.,0.,-1.)); +#42539=DIRECTION('',(-1.,0.,0.)); +#42540=DIRECTION('',(0.,0.,1.)); +#42541=DIRECTION('',(-1.,0.,0.)); +#42542=DIRECTION('',(0.,0.,1.)); +#42543=DIRECTION('',(1.,0.,0.)); +#42544=DIRECTION('',(0.,0.,-1.)); +#42545=DIRECTION('',(-1.,0.,0.)); +#42546=DIRECTION('',(0.,0.,1.)); +#42547=DIRECTION('',(-1.,0.,0.)); +#42548=DIRECTION('',(0.,0.,1.)); +#42549=DIRECTION('',(1.,0.,0.)); +#42550=DIRECTION('',(0.,0.,-1.)); +#42551=DIRECTION('',(-1.,0.,0.)); +#42552=DIRECTION('',(0.,0.,1.)); +#42553=DIRECTION('',(-1.,0.,0.)); +#42554=DIRECTION('',(0.,0.,1.)); +#42555=DIRECTION('',(1.,0.,0.)); +#42556=DIRECTION('',(0.,0.,-1.)); +#42557=DIRECTION('',(-1.,0.,0.)); +#42558=DIRECTION('',(0.,0.,1.)); +#42559=DIRECTION('',(-1.,0.,0.)); +#42560=DIRECTION('',(0.,0.,1.)); +#42561=DIRECTION('',(1.,0.,0.)); +#42562=DIRECTION('',(0.,0.,-1.)); +#42563=DIRECTION('',(-1.,0.,0.)); +#42564=DIRECTION('',(0.,0.,1.)); +#42565=DIRECTION('',(-1.,0.,0.)); +#42566=DIRECTION('',(0.,0.,1.)); +#42567=DIRECTION('',(1.,0.,0.)); +#42568=DIRECTION('',(0.,0.,-1.)); +#42569=DIRECTION('',(-1.,0.,0.)); +#42570=DIRECTION('',(0.,0.,1.)); +#42571=DIRECTION('',(-1.,0.,0.)); +#42572=DIRECTION('',(0.,0.,1.)); +#42573=DIRECTION('',(1.,0.,0.)); +#42574=DIRECTION('',(0.,0.,-1.)); +#42575=DIRECTION('',(-1.,0.,0.)); +#42576=DIRECTION('',(0.,0.,1.)); +#42577=DIRECTION('',(-1.,0.,0.)); +#42578=DIRECTION('',(0.,0.,1.)); +#42579=DIRECTION('',(1.,0.,0.)); +#42580=DIRECTION('',(0.,0.,-1.)); +#42581=DIRECTION('',(-1.,0.,0.)); +#42582=DIRECTION('',(0.,0.,1.)); +#42583=DIRECTION('',(-1.,0.,0.)); +#42584=DIRECTION('',(-1.,0.,0.)); +#42585=DIRECTION('',(0.,0.,1.)); +#42586=DIRECTION('',(1.,0.,0.)); +#42587=DIRECTION('',(0.,0.,-1.)); +#42588=DIRECTION('',(-1.,0.,0.)); +#42589=DIRECTION('',(-1.,0.,0.)); +#42590=DIRECTION('',(0.,0.,1.)); +#42591=DIRECTION('',(-1.,0.,0.)); +#42592=DIRECTION('',(0.,0.,1.)); +#42593=DIRECTION('',(1.,0.,0.)); +#42594=DIRECTION('',(0.,0.,-1.)); +#42595=DIRECTION('',(-1.,0.,0.)); +#42596=DIRECTION('',(-1.,0.,0.)); +#42597=DIRECTION('',(0.,0.,1.)); +#42598=DIRECTION('',(-1.,0.,0.)); +#42599=DIRECTION('',(0.,0.,1.)); +#42600=DIRECTION('',(1.,0.,0.)); +#42601=DIRECTION('',(0.,0.,-1.)); +#42602=DIRECTION('',(-1.,0.,0.)); +#42603=DIRECTION('',(-1.,0.,0.)); +#42604=DIRECTION('',(0.,0.,1.)); +#42605=DIRECTION('',(-1.,0.,0.)); +#42606=DIRECTION('',(0.,0.,1.)); +#42607=DIRECTION('',(1.,0.,0.)); +#42608=DIRECTION('',(0.,0.,-1.)); +#42609=DIRECTION('',(-1.,0.,0.)); +#42610=DIRECTION('',(-1.,0.,0.)); +#42611=DIRECTION('',(0.,0.,1.)); +#42612=DIRECTION('',(-1.,0.,0.)); +#42613=DIRECTION('',(0.,0.,1.)); +#42614=DIRECTION('',(1.,0.,0.)); +#42615=DIRECTION('',(0.,0.,-1.)); +#42616=DIRECTION('',(-1.,0.,0.)); +#42617=DIRECTION('',(-1.,0.,0.)); +#42618=DIRECTION('',(0.,0.,1.)); +#42619=DIRECTION('',(-1.,0.,0.)); +#42620=DIRECTION('',(0.,0.,1.)); +#42621=DIRECTION('',(1.,0.,0.)); +#42622=DIRECTION('',(0.,0.,-1.)); +#42623=DIRECTION('',(-1.,0.,0.)); +#42624=DIRECTION('',(-1.,0.,0.)); +#42625=DIRECTION('',(0.,0.,1.)); +#42626=DIRECTION('',(-1.,0.,0.)); +#42627=DIRECTION('',(0.,0.,1.)); +#42628=DIRECTION('',(1.,0.,0.)); +#42629=DIRECTION('',(0.,0.,-1.)); +#42630=DIRECTION('',(-1.,0.,0.)); +#42631=DIRECTION('',(-1.,0.,0.)); +#42632=DIRECTION('',(0.,0.,1.)); +#42633=DIRECTION('',(-1.,0.,0.)); +#42634=DIRECTION('',(0.,0.,1.)); +#42635=DIRECTION('',(1.,0.,0.)); +#42636=DIRECTION('',(0.,0.,-1.)); +#42637=DIRECTION('',(-1.,0.,0.)); +#42638=DIRECTION('',(-1.,0.,0.)); +#42639=DIRECTION('',(0.,0.,1.)); +#42640=DIRECTION('',(-1.,0.,0.)); +#42641=DIRECTION('',(0.,0.,1.)); +#42642=DIRECTION('',(1.,0.,0.)); +#42643=DIRECTION('',(0.,0.,-1.)); +#42644=DIRECTION('',(-1.,0.,0.)); +#42645=DIRECTION('',(-1.,0.,0.)); +#42646=DIRECTION('',(0.,0.,1.)); +#42647=DIRECTION('',(-1.,0.,0.)); +#42648=DIRECTION('',(0.,0.,1.)); +#42649=DIRECTION('',(1.,0.,0.)); +#42650=DIRECTION('',(0.,0.,-1.)); +#42651=DIRECTION('',(-1.,0.,0.)); +#42652=DIRECTION('',(-1.,0.,0.)); +#42653=DIRECTION('',(0.,0.,1.)); +#42654=DIRECTION('',(-1.,0.,0.)); +#42655=DIRECTION('',(0.,0.,1.)); +#42656=DIRECTION('',(1.,0.,0.)); +#42657=DIRECTION('',(0.,0.,-1.)); +#42658=DIRECTION('',(-1.,0.,0.)); +#42659=DIRECTION('',(-1.,0.,0.)); +#42660=DIRECTION('',(0.,0.,1.)); +#42661=DIRECTION('',(-1.,0.,0.)); +#42662=DIRECTION('',(0.,0.,1.)); +#42663=DIRECTION('',(1.,0.,0.)); +#42664=DIRECTION('',(0.,0.,-1.)); +#42665=DIRECTION('',(-1.,0.,0.)); +#42666=DIRECTION('',(-1.,0.,0.)); +#42667=DIRECTION('',(0.,0.,1.)); +#42668=DIRECTION('',(-1.,0.,0.)); +#42669=DIRECTION('',(0.,0.,1.)); +#42670=DIRECTION('',(1.,0.,0.)); +#42671=DIRECTION('',(0.,0.,-1.)); +#42672=DIRECTION('',(-1.,0.,0.)); +#42673=DIRECTION('',(-1.,0.,0.)); +#42674=DIRECTION('',(0.,0.,1.)); +#42675=DIRECTION('',(-1.,0.,0.)); +#42676=DIRECTION('',(0.,0.,1.)); +#42677=DIRECTION('',(1.,0.,0.)); +#42678=DIRECTION('',(0.,0.,-1.)); +#42679=DIRECTION('',(-1.,0.,0.)); +#42680=DIRECTION('',(-1.,0.,0.)); +#42681=DIRECTION('',(0.,0.,1.)); +#42682=DIRECTION('',(-1.,0.,0.)); +#42683=DIRECTION('',(0.,0.,1.)); +#42684=DIRECTION('',(1.,0.,0.)); +#42685=DIRECTION('',(0.,0.,-1.)); +#42686=DIRECTION('',(-1.,0.,0.)); +#42687=DIRECTION('',(-1.,0.,0.)); +#42688=DIRECTION('',(0.,0.,1.)); +#42689=DIRECTION('',(-1.,0.,0.)); +#42690=DIRECTION('',(0.,0.,1.)); +#42691=DIRECTION('',(1.,0.,0.)); +#42692=DIRECTION('',(0.,0.,-1.)); +#42693=DIRECTION('',(-1.,0.,0.)); +#42694=DIRECTION('',(-1.,0.,0.)); +#42695=DIRECTION('',(0.,0.,1.)); +#42696=DIRECTION('',(-1.,0.,0.)); +#42697=DIRECTION('',(0.,0.,1.)); +#42698=DIRECTION('',(1.,0.,0.)); +#42699=DIRECTION('',(0.,0.,-1.)); +#42700=DIRECTION('',(-1.,0.,0.)); +#42701=DIRECTION('',(-1.,0.,0.)); +#42702=DIRECTION('',(0.,0.,1.)); +#42703=DIRECTION('',(-1.,0.,0.)); +#42704=DIRECTION('',(0.,0.,1.)); +#42705=DIRECTION('',(1.,0.,0.)); +#42706=DIRECTION('',(0.,0.,-1.)); +#42707=DIRECTION('',(-1.,0.,0.)); +#42708=DIRECTION('',(-1.,0.,0.)); +#42709=DIRECTION('',(0.,0.,1.)); +#42710=DIRECTION('',(-1.,0.,0.)); +#42711=DIRECTION('',(0.,0.,1.)); +#42712=DIRECTION('',(1.,0.,0.)); +#42713=DIRECTION('',(0.,0.,-1.)); +#42714=DIRECTION('',(-1.,0.,0.)); +#42715=DIRECTION('',(-1.,0.,0.)); +#42716=DIRECTION('',(0.,0.,1.)); +#42717=DIRECTION('',(-1.,0.,0.)); +#42718=DIRECTION('',(0.,0.,1.)); +#42719=DIRECTION('',(1.,0.,0.)); +#42720=DIRECTION('',(0.,0.,-1.)); +#42721=DIRECTION('',(-1.,0.,0.)); +#42722=DIRECTION('',(-1.,0.,0.)); +#42723=DIRECTION('',(0.,0.,1.)); +#42724=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42725=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42726=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42727=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42728=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42729=DIRECTION('',(-1.,0.,0.)); +#42730=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42731=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42732=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42733=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42734=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42735=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42736=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42737=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42738=DIRECTION('',(-1.,0.,0.)); +#42739=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42740=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42741=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42742=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42743=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42744=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42745=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42746=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42747=DIRECTION('',(-1.,0.,0.)); +#42748=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42749=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42750=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42751=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42752=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42753=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42754=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42755=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42756=DIRECTION('',(-1.,0.,0.)); +#42757=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42758=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42759=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42760=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42761=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42762=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42763=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42764=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42765=DIRECTION('',(-1.,0.,0.)); +#42766=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42767=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42768=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42769=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42770=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42771=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42772=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42773=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42774=DIRECTION('',(-1.,0.,0.)); +#42775=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42776=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42777=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42778=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42779=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42780=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42781=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42782=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42783=DIRECTION('',(-1.,0.,0.)); +#42784=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42785=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42786=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42787=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42788=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42789=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42790=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42791=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42792=DIRECTION('',(-1.,0.,0.)); +#42793=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42794=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42795=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42796=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42797=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42798=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42799=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42800=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42801=DIRECTION('',(-1.,0.,0.)); +#42802=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42803=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42804=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42805=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42806=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42807=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42808=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42809=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42810=DIRECTION('',(-1.,0.,0.)); +#42811=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42812=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42813=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42814=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42815=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42816=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42817=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42818=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42819=DIRECTION('',(-1.,0.,0.)); +#42820=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42821=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42822=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42823=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42824=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42825=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42826=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42827=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42828=DIRECTION('',(-1.,0.,0.)); +#42829=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42830=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42831=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42832=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42833=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42834=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42835=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42836=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42837=DIRECTION('',(-1.,0.,0.)); +#42838=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42839=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42840=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42841=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42842=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42843=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42844=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42845=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42846=DIRECTION('',(-1.,0.,0.)); +#42847=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42848=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42849=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42850=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42851=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42852=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42853=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42854=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42855=DIRECTION('',(-1.,0.,0.)); +#42856=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42857=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42858=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42859=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42860=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42861=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42862=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42863=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42864=DIRECTION('',(-1.,0.,0.)); +#42865=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42866=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42867=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42868=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42869=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42870=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42871=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42872=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42873=DIRECTION('',(-1.,0.,0.)); +#42874=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42875=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42876=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42877=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42878=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42879=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42880=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42881=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42882=DIRECTION('',(-1.,0.,0.)); +#42883=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42884=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42885=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42886=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42887=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42888=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#42889=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42890=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42891=DIRECTION('',(-1.,0.,0.)); +#42892=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#42893=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42894=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#42895=DIRECTION('',(-1.,0.,0.)); +#42896=DIRECTION('',(0.,0.,1.)); +#42897=DIRECTION('',(-1.,0.,0.)); +#42898=DIRECTION('',(0.,0.,1.)); +#42899=DIRECTION('',(1.,0.,0.)); +#42900=DIRECTION('',(0.,0.,-1.)); +#42901=DIRECTION('',(-1.,0.,0.)); +#42902=DIRECTION('',(0.,0.,1.)); +#42903=DIRECTION('',(-1.,0.,0.)); +#42904=DIRECTION('',(0.,0.,1.)); +#42905=DIRECTION('',(1.,0.,0.)); +#42906=DIRECTION('',(0.,0.,-1.)); +#42907=DIRECTION('',(-1.,0.,0.)); +#42908=DIRECTION('',(0.,0.,1.)); +#42909=DIRECTION('',(-1.,0.,0.)); +#42910=DIRECTION('',(0.,0.,1.)); +#42911=DIRECTION('',(1.,0.,0.)); +#42912=DIRECTION('',(0.,0.,-1.)); +#42913=DIRECTION('',(-1.,0.,0.)); +#42914=DIRECTION('',(0.,0.,1.)); +#42915=DIRECTION('',(-1.,0.,0.)); +#42916=DIRECTION('',(0.,0.,1.)); +#42917=DIRECTION('',(1.,0.,0.)); +#42918=DIRECTION('',(0.,0.,-1.)); +#42919=DIRECTION('',(-1.,0.,0.)); +#42920=DIRECTION('',(0.,0.,1.)); +#42921=DIRECTION('',(-1.,0.,0.)); +#42922=DIRECTION('',(0.,0.,1.)); +#42923=DIRECTION('',(1.,0.,0.)); +#42924=DIRECTION('',(0.,0.,-1.)); +#42925=DIRECTION('',(-1.,0.,0.)); +#42926=DIRECTION('',(0.,0.,1.)); +#42927=DIRECTION('',(-1.,0.,0.)); +#42928=DIRECTION('',(0.,0.,1.)); +#42929=DIRECTION('',(1.,0.,0.)); +#42930=DIRECTION('',(0.,0.,-1.)); +#42931=DIRECTION('',(-1.,0.,0.)); +#42932=DIRECTION('',(0.,0.,1.)); +#42933=DIRECTION('',(-1.,0.,0.)); +#42934=DIRECTION('',(0.,0.,1.)); +#42935=DIRECTION('',(1.,0.,0.)); +#42936=DIRECTION('',(0.,0.,-1.)); +#42937=DIRECTION('',(-1.,0.,0.)); +#42938=DIRECTION('',(0.,0.,1.)); +#42939=DIRECTION('',(-1.,0.,0.)); +#42940=DIRECTION('',(0.,0.,1.)); +#42941=DIRECTION('',(1.,0.,0.)); +#42942=DIRECTION('',(0.,0.,-1.)); +#42943=DIRECTION('',(-1.,0.,0.)); +#42944=DIRECTION('',(0.,0.,1.)); +#42945=DIRECTION('',(-1.,0.,0.)); +#42946=DIRECTION('',(0.,0.,1.)); +#42947=DIRECTION('',(1.,0.,0.)); +#42948=DIRECTION('',(0.,0.,-1.)); +#42949=DIRECTION('',(-1.,0.,0.)); +#42950=DIRECTION('',(0.,0.,1.)); +#42951=DIRECTION('',(-1.,0.,0.)); +#42952=DIRECTION('',(0.,0.,1.)); +#42953=DIRECTION('',(1.,0.,0.)); +#42954=DIRECTION('',(0.,0.,-1.)); +#42955=DIRECTION('',(-1.,0.,0.)); +#42956=DIRECTION('',(0.,0.,1.)); +#42957=DIRECTION('',(-1.,0.,0.)); +#42958=DIRECTION('',(0.,0.,1.)); +#42959=DIRECTION('',(1.,0.,0.)); +#42960=DIRECTION('',(0.,0.,-1.)); +#42961=DIRECTION('',(-1.,0.,0.)); +#42962=DIRECTION('',(0.,0.,1.)); +#42963=DIRECTION('',(-1.,0.,0.)); +#42964=DIRECTION('',(0.,0.,1.)); +#42965=DIRECTION('',(1.,0.,0.)); +#42966=DIRECTION('',(0.,0.,-1.)); +#42967=DIRECTION('',(-1.,0.,0.)); +#42968=DIRECTION('',(0.,0.,1.)); +#42969=DIRECTION('',(-1.,0.,0.)); +#42970=DIRECTION('',(0.,0.,1.)); +#42971=DIRECTION('',(1.,0.,0.)); +#42972=DIRECTION('',(0.,0.,-1.)); +#42973=DIRECTION('',(-1.,0.,0.)); +#42974=DIRECTION('',(0.,0.,1.)); +#42975=DIRECTION('',(-1.,0.,0.)); +#42976=DIRECTION('',(0.,0.,1.)); +#42977=DIRECTION('',(1.,0.,0.)); +#42978=DIRECTION('',(0.,0.,-1.)); +#42979=DIRECTION('',(-1.,0.,0.)); +#42980=DIRECTION('',(0.,0.,1.)); +#42981=DIRECTION('',(-1.,0.,0.)); +#42982=DIRECTION('',(0.,0.,1.)); +#42983=DIRECTION('',(1.,0.,0.)); +#42984=DIRECTION('',(0.,0.,-1.)); +#42985=DIRECTION('',(-1.,0.,0.)); +#42986=DIRECTION('',(0.,0.,1.)); +#42987=DIRECTION('',(-1.,0.,0.)); +#42988=DIRECTION('',(0.,0.,1.)); +#42989=DIRECTION('',(1.,0.,0.)); +#42990=DIRECTION('',(0.,0.,-1.)); +#42991=DIRECTION('',(-1.,0.,0.)); +#42992=DIRECTION('',(0.,0.,1.)); +#42993=DIRECTION('',(-1.,0.,0.)); +#42994=DIRECTION('',(0.,0.,1.)); +#42995=DIRECTION('',(1.,0.,0.)); +#42996=DIRECTION('',(0.,0.,-1.)); +#42997=DIRECTION('',(-1.,0.,0.)); +#42998=DIRECTION('',(0.,0.,1.)); +#42999=DIRECTION('',(-1.,0.,0.)); +#43000=DIRECTION('',(0.,0.,1.)); +#43001=DIRECTION('',(1.,0.,0.)); +#43002=DIRECTION('',(0.,0.,-1.)); +#43003=DIRECTION('',(-1.,0.,0.)); +#43004=DIRECTION('',(0.,0.,1.)); +#43005=DIRECTION('',(-1.,0.,0.)); +#43006=DIRECTION('',(0.,0.,1.)); +#43007=DIRECTION('',(1.,0.,0.)); +#43008=DIRECTION('',(0.,0.,-1.)); +#43009=DIRECTION('',(-1.,0.,0.)); +#43010=DIRECTION('',(0.,0.,1.)); +#43011=DIRECTION('',(-1.,0.,0.)); +#43012=DIRECTION('',(0.,0.,1.)); +#43013=DIRECTION('',(-1.,0.,0.)); +#43014=DIRECTION('',(1.,0.,0.)); +#43015=DIRECTION('',(0.,0.,-1.)); +#43016=DIRECTION('',(1.,0.,0.)); +#43017=DIRECTION('',(0.,0.,-1.)); +#43018=DIRECTION('',(0.,0.,1.)); +#43019=DIRECTION('',(0.,0.,-1.)); +#43020=DIRECTION('',(1.,0.,0.)); +#43021=DIRECTION('',(0.,0.,-1.)); +#43022=DIRECTION('',(0.,0.,1.)); +#43023=DIRECTION('',(0.,0.,-1.)); +#43024=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#43025=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#43026=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#43027=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#43028=DIRECTION('',(0.,-0.866025403784438,0.500000000000001)); +#43029=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#43030=DIRECTION('',(0.,-0.500000000000001,-0.866025403784438)); +#43031=DIRECTION('',(0.,0.866025403784438,-0.500000000000001)); +#43032=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#43033=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#43034=DIRECTION('',(0.,0.866025403784437,0.500000000000004)); +#43035=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#43036=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#43037=DIRECTION('',(0.,-0.500000000000004,0.866025403784436)); +#43038=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#43039=DIRECTION('',(0.,-0.866025403784437,-0.500000000000004)); +#43040=DIRECTION('',(0.,0.,-1.)); +#43041=DIRECTION('',(-1.,0.,0.)); +#43042=DIRECTION('',(0.,0.,-1.)); +#43043=DIRECTION('',(1.,0.,0.)); +#43044=DIRECTION('',(0.,0.,-1.)); +#43045=DIRECTION('',(0.,0.,-1.)); +#43046=DIRECTION('',(0.,0.,-1.)); +#43047=DIRECTION('',(-1.,0.,0.)); +#43048=DIRECTION('',(0.,0.,-1.)); +#43049=DIRECTION('',(0.,0.,-1.)); +#43050=DIRECTION('',(1.,0.,0.)); +#43051=DIRECTION('',(0.,0.,-1.)); +#43052=DIRECTION('',(0.,0.,-1.)); +#43053=DIRECTION('',(0.,0.,-1.)); +#43054=DIRECTION('',(-1.,0.,0.)); +#43055=DIRECTION('',(0.,0.,-1.)); +#43056=DIRECTION('',(0.,0.,-1.)); +#43057=DIRECTION('',(-1.,0.,0.)); +#43058=DIRECTION('',(0.,0.,-1.)); +#43059=DIRECTION('',(0.866025403784433,-0.500000000000009,0.)); +#43060=DIRECTION('',(0.500000000000009,0.866025403784433,0.)); +#43061=DIRECTION('',(0.,0.,-1.)); +#43062=DIRECTION('',(-1.,0.,0.)); +#43063=DIRECTION('',(0.,0.,-1.)); +#43064=DIRECTION('',(-1.,0.,0.)); +#43065=DIRECTION('',(0.,0.,-1.)); +#43066=DIRECTION('',(0.,0.,-1.)); +#43067=DIRECTION('',(1.,0.,0.)); +#43068=DIRECTION('',(0.,0.,-1.)); +#43069=DIRECTION('',(0.,0.,-1.)); +#43070=DIRECTION('',(0.,0.,-1.)); +#43071=DIRECTION('',(-1.,0.,0.)); +#43072=DIRECTION('',(0.,0.,-1.)); +#43073=DIRECTION('',(0.,0.,-1.)); +#43074=DIRECTION('',(-1.,0.,0.)); +#43075=DIRECTION('',(0.,0.,-1.)); +#43076=DIRECTION('',(0.866025403784433,-0.500000000000009,0.)); +#43077=DIRECTION('',(0.500000000000009,0.866025403784433,0.)); +#43078=DIRECTION('',(1.,0.,0.)); +#43079=DIRECTION('',(0.,0.,-1.)); +#43080=DIRECTION('',(0.,0.,-1.)); +#43081=DIRECTION('',(0.,0.,-1.)); +#43082=DIRECTION('',(0.,0.,-1.)); +#43083=DIRECTION('',(-1.,0.,0.)); +#43084=DIRECTION('',(0.,0.,-1.)); +#43085=DIRECTION('',(-1.,0.,0.)); +#43086=DIRECTION('',(0.,0.,-1.)); +#43087=DIRECTION('',(-1.,0.,0.)); +#43088=DIRECTION('',(0.,0.,-1.)); +#43089=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43090=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43091=DIRECTION('',(0.,0.,-1.)); +#43092=DIRECTION('',(0.,0.,-1.)); +#43093=DIRECTION('',(-1.,0.,0.)); +#43094=DIRECTION('',(0.,0.,-1.)); +#43095=DIRECTION('',(-1.,0.,0.)); +#43096=DIRECTION('',(0.,0.,1.)); +#43097=DIRECTION('',(0.,0.,-1.)); +#43098=DIRECTION('',(0.,0.,-1.)); +#43099=DIRECTION('',(-1.,0.,0.)); +#43100=DIRECTION('',(0.,0.,-1.)); +#43101=DIRECTION('',(0.,0.,-1.)); +#43102=DIRECTION('',(-1.,0.,0.)); +#43103=DIRECTION('',(0.,0.,-1.)); +#43104=DIRECTION('',(-1.,0.,0.)); +#43105=DIRECTION('',(0.,0.,1.)); +#43106=DIRECTION('',(0.,0.,-1.)); +#43107=DIRECTION('',(0.,0.,-1.)); +#43108=DIRECTION('',(-1.,0.,0.)); +#43109=DIRECTION('',(0.,0.,-1.)); +#43110=DIRECTION('',(-1.,0.,0.)); +#43111=DIRECTION('',(0.,0.,-1.)); +#43112=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43113=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43114=DIRECTION('',(0.,0.,-1.)); +#43115=DIRECTION('',(0.,0.,-1.)); +#43116=DIRECTION('',(-1.,0.,0.)); +#43117=DIRECTION('',(0.,0.,-1.)); +#43118=DIRECTION('',(-1.,0.,0.)); +#43119=DIRECTION('',(0.,0.,1.)); +#43120=DIRECTION('',(0.,0.,-1.)); +#43121=DIRECTION('',(0.,0.,-1.)); +#43122=DIRECTION('',(-1.,0.,0.)); +#43123=DIRECTION('',(0.,0.,-1.)); +#43124=DIRECTION('',(0.,0.,-1.)); +#43125=DIRECTION('',(-1.,0.,0.)); +#43126=DIRECTION('',(0.,0.,-1.)); +#43127=DIRECTION('',(-1.,0.,0.)); +#43128=DIRECTION('',(0.,0.,1.)); +#43129=DIRECTION('',(0.,0.,-1.)); +#43130=DIRECTION('',(0.,0.,-1.)); +#43131=DIRECTION('',(-1.,0.,0.)); +#43132=DIRECTION('',(0.,0.,-1.)); +#43133=DIRECTION('',(-1.,0.,0.)); +#43134=DIRECTION('',(0.,0.,-1.)); +#43135=DIRECTION('',(1.,0.,0.)); +#43136=DIRECTION('',(0.,0.,-1.)); +#43137=DIRECTION('',(0.,0.,-1.)); +#43138=DIRECTION('',(0.,0.,-1.)); +#43139=DIRECTION('',(-1.,0.,0.)); +#43140=DIRECTION('',(0.,0.,-1.)); +#43141=DIRECTION('',(0.,0.,-1.)); +#43142=DIRECTION('',(1.,0.,0.)); +#43143=DIRECTION('',(0.,0.,-1.)); +#43144=DIRECTION('',(0.,0.,-1.)); +#43145=DIRECTION('',(0.,0.,-1.)); +#43146=DIRECTION('',(-1.,0.,0.)); +#43147=DIRECTION('',(0.,0.,-1.)); +#43148=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#43149=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#43150=DIRECTION('',(0.,0.,-1.)); +#43151=DIRECTION('',(0.,0.,-1.)); +#43152=DIRECTION('',(-1.,0.,0.)); +#43153=DIRECTION('',(0.,0.,-1.)); +#43154=DIRECTION('',(1.,0.,0.)); +#43155=DIRECTION('',(0.,0.,-1.)); +#43156=DIRECTION('',(-1.,0.,0.)); +#43157=DIRECTION('',(0.,0.,1.)); +#43158=DIRECTION('',(0.,0.,-1.)); +#43159=DIRECTION('',(0.,0.,-1.)); +#43160=DIRECTION('',(-1.,0.,0.)); +#43161=DIRECTION('',(0.,0.,-1.)); +#43162=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43163=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43164=DIRECTION('',(0.,0.,-1.)); +#43165=DIRECTION('',(0.,0.,-1.)); +#43166=DIRECTION('',(-1.,0.,0.)); +#43167=DIRECTION('',(0.,0.,-1.)); +#43168=DIRECTION('',(-1.,0.,0.)); +#43169=DIRECTION('',(0.,0.,1.)); +#43170=DIRECTION('',(0.,0.,-1.)); +#43171=DIRECTION('',(0.,0.,-1.)); +#43172=DIRECTION('',(-1.,0.,0.)); +#43173=DIRECTION('',(0.,0.,-1.)); +#43174=DIRECTION('',(0.,0.,-1.)); +#43175=DIRECTION('',(-1.,0.,0.)); +#43176=DIRECTION('',(0.,0.,-1.)); +#43177=DIRECTION('',(-1.,0.,0.)); +#43178=DIRECTION('',(0.,0.,-1.)); +#43179=DIRECTION('',(-1.,0.,0.)); +#43180=DIRECTION('',(0.,0.,1.)); +#43181=DIRECTION('',(0.,0.,-1.)); +#43182=DIRECTION('',(0.,0.,-1.)); +#43183=DIRECTION('',(-1.,0.,0.)); +#43184=DIRECTION('',(0.,0.,-1.)); +#43185=DIRECTION('',(-1.,0.,0.)); +#43186=DIRECTION('',(0.,0.,-1.)); +#43187=DIRECTION('',(1.,0.,0.)); +#43188=DIRECTION('',(0.,0.,-1.)); +#43189=DIRECTION('',(0.,0.,-1.)); +#43190=DIRECTION('',(0.,0.,-1.)); +#43191=DIRECTION('',(-1.,0.,0.)); +#43192=DIRECTION('',(0.,0.,-1.)); +#43193=DIRECTION('',(0.,0.,-1.)); +#43194=DIRECTION('',(1.,0.,0.)); +#43195=DIRECTION('',(0.,0.,-1.)); +#43196=DIRECTION('',(0.,0.,-1.)); +#43197=DIRECTION('',(0.,0.,-1.)); +#43198=DIRECTION('',(-1.,0.,0.)); +#43199=DIRECTION('',(0.,0.,-1.)); +#43200=DIRECTION('',(0.866025403784442,-0.499999999999995,0.)); +#43201=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); +#43202=DIRECTION('',(0.,0.,-1.)); +#43203=DIRECTION('',(0.,0.,-1.)); +#43204=DIRECTION('',(-1.,0.,0.)); +#43205=DIRECTION('',(0.,0.,-1.)); +#43206=DIRECTION('',(1.,0.,0.)); +#43207=DIRECTION('',(0.,0.,-1.)); +#43208=DIRECTION('',(-1.,0.,0.)); +#43209=DIRECTION('',(0.,0.,1.)); +#43210=DIRECTION('',(0.,0.,-1.)); +#43211=DIRECTION('',(0.,0.,-1.)); +#43212=DIRECTION('',(-1.,0.,0.)); +#43213=DIRECTION('',(0.,0.,-1.)); +#43214=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43215=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43216=DIRECTION('',(0.,0.,-1.)); +#43217=DIRECTION('',(0.,0.,-1.)); +#43218=DIRECTION('',(-1.,0.,0.)); +#43219=DIRECTION('',(0.,0.,-1.)); +#43220=DIRECTION('',(-1.,0.,0.)); +#43221=DIRECTION('',(0.,0.,1.)); +#43222=DIRECTION('',(0.,0.,-1.)); +#43223=DIRECTION('',(0.,0.,-1.)); +#43224=DIRECTION('',(-1.,0.,0.)); +#43225=DIRECTION('',(0.,0.,-1.)); +#43226=DIRECTION('',(0.,0.,-1.)); +#43227=DIRECTION('',(-1.,0.,0.)); +#43228=DIRECTION('',(0.,0.,-1.)); +#43229=DIRECTION('',(-1.,0.,0.)); +#43230=DIRECTION('',(0.,0.,-1.)); +#43231=DIRECTION('',(-1.,0.,0.)); +#43232=DIRECTION('',(0.,0.,1.)); +#43233=DIRECTION('',(0.,0.,-1.)); +#43234=DIRECTION('',(0.,0.,-1.)); +#43235=DIRECTION('',(-1.,0.,0.)); +#43236=DIRECTION('',(0.,0.,-1.)); +#43237=DIRECTION('',(-1.,0.,0.)); +#43238=DIRECTION('',(0.,0.,-1.)); +#43239=DIRECTION('',(1.,0.,0.)); +#43240=DIRECTION('',(0.,0.,-1.)); +#43241=DIRECTION('',(0.,0.,-1.)); +#43242=DIRECTION('',(0.,0.,-1.)); +#43243=DIRECTION('',(-1.,0.,0.)); +#43244=DIRECTION('',(0.,0.,-1.)); +#43245=DIRECTION('',(0.,0.,-1.)); +#43246=DIRECTION('',(1.,0.,0.)); +#43247=DIRECTION('',(0.,0.,-1.)); +#43248=DIRECTION('',(0.,0.,-1.)); +#43249=DIRECTION('',(0.,0.,-1.)); +#43250=DIRECTION('',(-1.,0.,0.)); +#43251=DIRECTION('',(0.,0.,-1.)); +#43252=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#43253=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#43254=DIRECTION('',(0.,0.,-1.)); +#43255=DIRECTION('',(0.,0.,-1.)); +#43256=DIRECTION('',(-1.,0.,0.)); +#43257=DIRECTION('',(0.,0.,-1.)); +#43258=DIRECTION('',(1.,0.,0.)); +#43259=DIRECTION('',(0.,0.,-1.)); +#43260=DIRECTION('',(-1.,0.,0.)); +#43261=DIRECTION('',(0.,0.,1.)); +#43262=DIRECTION('',(0.,0.,-1.)); +#43263=DIRECTION('',(0.,0.,-1.)); +#43264=DIRECTION('',(-1.,0.,0.)); +#43265=DIRECTION('',(0.,0.,-1.)); +#43266=DIRECTION('',(-0.86602540378444,-0.499999999999998,0.)); +#43267=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); +#43268=DIRECTION('',(0.,0.,-1.)); +#43269=DIRECTION('',(0.,0.,-1.)); +#43270=DIRECTION('',(-1.,0.,0.)); +#43271=DIRECTION('',(0.,0.,-1.)); +#43272=DIRECTION('',(-1.,0.,0.)); +#43273=DIRECTION('',(0.,0.,1.)); +#43274=DIRECTION('',(0.,0.,-1.)); +#43275=DIRECTION('',(0.,0.,-1.)); +#43276=DIRECTION('',(-1.,0.,0.)); +#43277=DIRECTION('',(0.,0.,-1.)); +#43278=DIRECTION('',(0.,0.,-1.)); +#43279=DIRECTION('',(-1.,0.,0.)); +#43280=DIRECTION('',(0.,0.,-1.)); +#43281=DIRECTION('',(-1.,0.,0.)); +#43282=DIRECTION('',(0.,0.,-1.)); +#43283=DIRECTION('',(-1.,0.,0.)); +#43284=DIRECTION('',(0.,0.,1.)); +#43285=DIRECTION('',(0.,0.,-1.)); +#43286=DIRECTION('',(0.,0.,-1.)); +#43287=DIRECTION('',(-1.,0.,0.)); +#43288=DIRECTION('',(0.,0.,-1.)); +#43289=DIRECTION('',(-1.,0.,0.)); +#43290=DIRECTION('',(0.,0.,-1.)); +#43291=DIRECTION('',(1.,0.,0.)); +#43292=DIRECTION('',(0.,0.,-1.)); +#43293=DIRECTION('',(0.,0.,-1.)); +#43294=DIRECTION('',(0.,0.,-1.)); +#43295=DIRECTION('',(-1.,0.,0.)); +#43296=DIRECTION('',(0.,0.,-1.)); +#43297=DIRECTION('',(0.,0.,-1.)); +#43298=DIRECTION('',(1.,0.,0.)); +#43299=DIRECTION('',(0.,0.,-1.)); +#43300=DIRECTION('',(0.,0.,-1.)); +#43301=DIRECTION('',(0.,0.,-1.)); +#43302=DIRECTION('',(-1.,0.,0.)); +#43303=DIRECTION('',(0.,0.,-1.)); +#43304=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#43305=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#43306=DIRECTION('',(0.,0.,-1.)); +#43307=DIRECTION('',(0.,0.,-1.)); +#43308=DIRECTION('',(-1.,0.,0.)); +#43309=DIRECTION('',(0.,0.,-1.)); +#43310=DIRECTION('',(1.,0.,0.)); +#43311=DIRECTION('',(0.,0.,-1.)); +#43312=DIRECTION('',(-1.,0.,0.)); +#43313=DIRECTION('',(0.,0.,1.)); +#43314=DIRECTION('',(0.,0.,-1.)); +#43315=DIRECTION('',(0.,0.,-1.)); +#43316=DIRECTION('',(-1.,0.,0.)); +#43317=DIRECTION('',(0.,0.,-1.)); +#43318=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43319=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43320=DIRECTION('',(0.,0.,-1.)); +#43321=DIRECTION('',(0.,0.,-1.)); +#43322=DIRECTION('',(-1.,0.,0.)); +#43323=DIRECTION('',(0.,0.,-1.)); +#43324=DIRECTION('',(-1.,0.,0.)); +#43325=DIRECTION('',(0.,0.,1.)); +#43326=DIRECTION('',(0.,0.,-1.)); +#43327=DIRECTION('',(0.,0.,-1.)); +#43328=DIRECTION('',(-1.,0.,0.)); +#43329=DIRECTION('',(0.,0.,-1.)); +#43330=DIRECTION('',(0.,0.,-1.)); +#43331=DIRECTION('',(-1.,0.,0.)); +#43332=DIRECTION('',(0.,0.,-1.)); +#43333=DIRECTION('',(-1.,0.,0.)); +#43334=DIRECTION('',(0.,0.,-1.)); +#43335=DIRECTION('',(-1.,0.,0.)); +#43336=DIRECTION('',(0.,0.,1.)); +#43337=DIRECTION('',(0.,0.,-1.)); +#43338=DIRECTION('',(0.,0.,-1.)); +#43339=DIRECTION('',(-1.,0.,0.)); +#43340=DIRECTION('',(0.,0.,-1.)); +#43341=DIRECTION('',(-1.,0.,0.)); +#43342=DIRECTION('',(0.,0.,-1.)); +#43343=DIRECTION('',(1.,0.,0.)); +#43344=DIRECTION('',(0.,0.,-1.)); +#43345=DIRECTION('',(0.,0.,-1.)); +#43346=DIRECTION('',(0.,0.,-1.)); +#43347=DIRECTION('',(-1.,0.,0.)); +#43348=DIRECTION('',(0.,0.,-1.)); +#43349=DIRECTION('',(0.,0.,-1.)); +#43350=DIRECTION('',(1.,0.,0.)); +#43351=DIRECTION('',(0.,0.,-1.)); +#43352=DIRECTION('',(0.,0.,-1.)); +#43353=DIRECTION('',(0.,0.,-1.)); +#43354=DIRECTION('',(-1.,0.,0.)); +#43355=DIRECTION('',(0.,0.,-1.)); +#43356=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#43357=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#43358=DIRECTION('',(0.,0.,-1.)); +#43359=DIRECTION('',(0.,0.,-1.)); +#43360=DIRECTION('',(-1.,0.,0.)); +#43361=DIRECTION('',(0.,0.,-1.)); +#43362=DIRECTION('',(1.,0.,0.)); +#43363=DIRECTION('',(0.,0.,-1.)); +#43364=DIRECTION('',(-1.,0.,0.)); +#43365=DIRECTION('',(0.,0.,1.)); +#43366=DIRECTION('',(0.,0.,-1.)); +#43367=DIRECTION('',(0.,0.,-1.)); +#43368=DIRECTION('',(-1.,0.,0.)); +#43369=DIRECTION('',(0.,0.,-1.)); +#43370=DIRECTION('',(-0.866025403784438,-0.500000000000001,0.)); +#43371=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); +#43372=DIRECTION('',(0.,0.,-1.)); +#43373=DIRECTION('',(0.,0.,-1.)); +#43374=DIRECTION('',(-1.,0.,0.)); +#43375=DIRECTION('',(0.,0.,-1.)); +#43376=DIRECTION('',(-1.,0.,0.)); +#43377=DIRECTION('',(0.,0.,1.)); +#43378=DIRECTION('',(0.,0.,-1.)); +#43379=DIRECTION('',(0.,0.,-1.)); +#43380=DIRECTION('',(-1.,0.,0.)); +#43381=DIRECTION('',(0.,0.,-1.)); +#43382=DIRECTION('',(0.,0.,-1.)); +#43383=DIRECTION('',(-1.,0.,0.)); +#43384=DIRECTION('',(0.,0.,-1.)); +#43385=DIRECTION('',(-1.,0.,0.)); +#43386=DIRECTION('',(0.,0.,-1.)); +#43387=DIRECTION('',(-1.,0.,0.)); +#43388=DIRECTION('',(0.,0.,1.)); +#43389=DIRECTION('',(0.,0.,-1.)); +#43390=DIRECTION('',(0.,0.,-1.)); +#43391=DIRECTION('',(-1.,0.,0.)); +#43392=DIRECTION('',(0.,0.,-1.)); +#43393=DIRECTION('',(-1.,0.,0.)); +#43394=DIRECTION('',(0.,0.,-1.)); +#43395=DIRECTION('',(1.,0.,0.)); +#43396=DIRECTION('',(0.,0.,-1.)); +#43397=DIRECTION('',(0.,0.,-1.)); +#43398=DIRECTION('',(0.,0.,-1.)); +#43399=DIRECTION('',(-1.,0.,0.)); +#43400=DIRECTION('',(0.,0.,-1.)); +#43401=DIRECTION('',(0.,0.,-1.)); +#43402=DIRECTION('',(1.,0.,0.)); +#43403=DIRECTION('',(0.,0.,-1.)); +#43404=DIRECTION('',(0.,0.,-1.)); +#43405=DIRECTION('',(0.,0.,-1.)); +#43406=DIRECTION('',(-1.,0.,0.)); +#43407=DIRECTION('',(0.,0.,-1.)); +#43408=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); +#43409=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#43410=DIRECTION('',(0.,0.,-1.)); +#43411=DIRECTION('',(0.,0.,-1.)); +#43412=DIRECTION('',(-1.,0.,0.)); +#43413=DIRECTION('',(0.,0.,-1.)); +#43414=DIRECTION('',(1.,0.,0.)); +#43415=DIRECTION('',(0.,0.,-1.)); +#43416=DIRECTION('',(-1.,0.,0.)); +#43417=DIRECTION('',(0.,0.,1.)); +#43418=DIRECTION('',(0.,0.,-1.)); +#43419=DIRECTION('',(0.,0.,-1.)); +#43420=DIRECTION('',(-1.,0.,0.)); +#43421=DIRECTION('',(0.,0.,-1.)); +#43422=DIRECTION('',(-0.866025403784438,-0.500000000000001,0.)); +#43423=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); +#43424=DIRECTION('',(0.,0.,-1.)); +#43425=DIRECTION('',(0.,0.,-1.)); +#43426=DIRECTION('',(-1.,0.,0.)); +#43427=DIRECTION('',(0.,0.,-1.)); +#43428=DIRECTION('',(-1.,0.,0.)); +#43429=DIRECTION('',(0.,0.,1.)); +#43430=DIRECTION('',(0.,0.,-1.)); +#43431=DIRECTION('',(0.,0.,-1.)); +#43432=DIRECTION('',(-1.,0.,0.)); +#43433=DIRECTION('',(0.,0.,-1.)); +#43434=DIRECTION('',(0.,0.,-1.)); +#43435=DIRECTION('',(-1.,0.,0.)); +#43436=DIRECTION('',(0.,0.,-1.)); +#43437=DIRECTION('',(-1.,0.,0.)); +#43438=DIRECTION('',(0.,0.,-1.)); +#43439=DIRECTION('',(-1.,0.,0.)); +#43440=DIRECTION('',(0.,0.,1.)); +#43441=DIRECTION('',(0.,0.,-1.)); +#43442=DIRECTION('',(0.,0.,-1.)); +#43443=DIRECTION('',(-1.,0.,0.)); +#43444=DIRECTION('',(0.,0.,-1.)); +#43445=DIRECTION('',(-1.,0.,0.)); +#43446=DIRECTION('',(0.,0.,-1.)); +#43447=DIRECTION('',(1.,0.,0.)); +#43448=DIRECTION('',(0.,0.,-1.)); +#43449=DIRECTION('',(0.,0.,-1.)); +#43450=DIRECTION('',(0.,0.,-1.)); +#43451=DIRECTION('',(-1.,0.,0.)); +#43452=DIRECTION('',(0.,0.,-1.)); +#43453=DIRECTION('',(0.,0.,-1.)); +#43454=DIRECTION('',(1.,0.,0.)); +#43455=DIRECTION('',(0.,0.,-1.)); +#43456=DIRECTION('',(0.,0.,-1.)); +#43457=DIRECTION('',(0.,0.,-1.)); +#43458=DIRECTION('',(-1.,0.,0.)); +#43459=DIRECTION('',(0.,0.,-1.)); +#43460=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#43461=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#43462=DIRECTION('',(0.,0.,-1.)); +#43463=DIRECTION('',(0.,0.,-1.)); +#43464=DIRECTION('',(-1.,0.,0.)); +#43465=DIRECTION('',(0.,0.,-1.)); +#43466=DIRECTION('',(1.,0.,0.)); +#43467=DIRECTION('',(0.,0.,-1.)); +#43468=DIRECTION('',(-1.,0.,0.)); +#43469=DIRECTION('',(0.,0.,1.)); +#43470=DIRECTION('',(0.,0.,-1.)); +#43471=DIRECTION('',(0.,0.,-1.)); +#43472=DIRECTION('',(-1.,0.,0.)); +#43473=DIRECTION('',(0.,0.,-1.)); +#43474=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43475=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43476=DIRECTION('',(0.,0.,-1.)); +#43477=DIRECTION('',(0.,0.,-1.)); +#43478=DIRECTION('',(-1.,0.,0.)); +#43479=DIRECTION('',(0.,0.,-1.)); +#43480=DIRECTION('',(-1.,0.,0.)); +#43481=DIRECTION('',(0.,0.,1.)); +#43482=DIRECTION('',(0.,0.,-1.)); +#43483=DIRECTION('',(0.,0.,-1.)); +#43484=DIRECTION('',(-1.,0.,0.)); +#43485=DIRECTION('',(0.,0.,-1.)); +#43486=DIRECTION('',(0.,0.,-1.)); +#43487=DIRECTION('',(-1.,0.,0.)); +#43488=DIRECTION('',(0.,0.,-1.)); +#43489=DIRECTION('',(-1.,0.,0.)); +#43490=DIRECTION('',(0.,0.,-1.)); +#43491=DIRECTION('',(-1.,0.,0.)); +#43492=DIRECTION('',(0.,0.,1.)); +#43493=DIRECTION('',(0.,0.,-1.)); +#43494=DIRECTION('',(0.,0.,-1.)); +#43495=DIRECTION('',(-1.,0.,0.)); +#43496=DIRECTION('',(0.,0.,-1.)); +#43497=DIRECTION('',(-1.,0.,0.)); +#43498=DIRECTION('',(0.,0.,-1.)); +#43499=DIRECTION('',(1.,0.,0.)); +#43500=DIRECTION('',(0.,0.,-1.)); +#43501=DIRECTION('',(0.,0.,-1.)); +#43502=DIRECTION('',(0.,0.,-1.)); +#43503=DIRECTION('',(-1.,0.,0.)); +#43504=DIRECTION('',(0.,0.,-1.)); +#43505=DIRECTION('',(0.,0.,-1.)); +#43506=DIRECTION('',(1.,0.,0.)); +#43507=DIRECTION('',(0.,0.,-1.)); +#43508=DIRECTION('',(0.,0.,-1.)); +#43509=DIRECTION('',(0.,0.,-1.)); +#43510=DIRECTION('',(-1.,0.,0.)); +#43511=DIRECTION('',(0.,0.,-1.)); +#43512=DIRECTION('',(0.866025403784439,-0.5,0.)); +#43513=DIRECTION('',(0.5,0.866025403784439,0.)); +#43514=DIRECTION('',(0.,0.,-1.)); +#43515=DIRECTION('',(0.,0.,-1.)); +#43516=DIRECTION('',(-1.,0.,0.)); +#43517=DIRECTION('',(0.,0.,-1.)); +#43518=DIRECTION('',(1.,0.,0.)); +#43519=DIRECTION('',(0.,0.,-1.)); +#43520=DIRECTION('',(-1.,0.,0.)); +#43521=DIRECTION('',(0.,0.,1.)); +#43522=DIRECTION('',(0.,0.,-1.)); +#43523=DIRECTION('',(0.,0.,-1.)); +#43524=DIRECTION('',(-1.,0.,0.)); +#43525=DIRECTION('',(0.,0.,-1.)); +#43526=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); +#43527=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#43528=DIRECTION('',(0.,0.,-1.)); +#43529=DIRECTION('',(0.,0.,-1.)); +#43530=DIRECTION('',(-1.,0.,0.)); +#43531=DIRECTION('',(0.,0.,-1.)); +#43532=DIRECTION('',(-1.,0.,0.)); +#43533=DIRECTION('',(0.,0.,1.)); +#43534=DIRECTION('',(0.,0.,-1.)); +#43535=DIRECTION('',(0.,0.,-1.)); +#43536=DIRECTION('',(-1.,0.,0.)); +#43537=DIRECTION('',(0.,0.,-1.)); +#43538=DIRECTION('',(0.,0.,-1.)); +#43539=DIRECTION('',(-1.,0.,0.)); +#43540=DIRECTION('',(0.,0.,-1.)); +#43541=DIRECTION('',(-1.,0.,0.)); +#43542=DIRECTION('',(0.,0.,-1.)); +#43543=DIRECTION('',(-1.,0.,0.)); +#43544=DIRECTION('',(0.,0.,1.)); +#43545=DIRECTION('',(0.,0.,-1.)); +#43546=DIRECTION('',(0.,0.,-1.)); +#43547=DIRECTION('',(-1.,0.,0.)); +#43548=DIRECTION('',(0.,0.,-1.)); +#43549=DIRECTION('',(-1.,0.,0.)); +#43550=DIRECTION('',(0.,0.,-1.)); +#43551=DIRECTION('',(1.,0.,0.)); +#43552=DIRECTION('',(0.,0.,-1.)); +#43553=DIRECTION('',(0.,0.,-1.)); +#43554=DIRECTION('',(0.,0.,-1.)); +#43555=DIRECTION('',(-1.,0.,0.)); +#43556=DIRECTION('',(0.,0.,-1.)); +#43557=DIRECTION('',(0.,0.,-1.)); +#43558=DIRECTION('',(1.,0.,0.)); +#43559=DIRECTION('',(0.,0.,-1.)); +#43560=DIRECTION('',(0.,0.,-1.)); +#43561=DIRECTION('',(0.,0.,-1.)); +#43562=DIRECTION('',(-1.,0.,0.)); +#43563=DIRECTION('',(0.,0.,-1.)); +#43564=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); +#43565=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#43566=DIRECTION('',(0.,0.,-1.)); +#43567=DIRECTION('',(0.,0.,-1.)); +#43568=DIRECTION('',(-1.,0.,0.)); +#43569=DIRECTION('',(0.,0.,-1.)); +#43570=DIRECTION('',(1.,0.,0.)); +#43571=DIRECTION('',(0.,0.,-1.)); +#43572=DIRECTION('',(-1.,0.,0.)); +#43573=DIRECTION('',(0.,0.,1.)); +#43574=DIRECTION('',(0.,0.,-1.)); +#43575=DIRECTION('',(0.,0.,-1.)); +#43576=DIRECTION('',(-1.,0.,0.)); +#43577=DIRECTION('',(0.,0.,-1.)); +#43578=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); +#43579=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#43580=DIRECTION('',(0.,0.,-1.)); +#43581=DIRECTION('',(0.,0.,-1.)); +#43582=DIRECTION('',(-1.,0.,0.)); +#43583=DIRECTION('',(0.,0.,-1.)); +#43584=DIRECTION('',(-1.,0.,0.)); +#43585=DIRECTION('',(0.,0.,1.)); +#43586=DIRECTION('',(0.,0.,-1.)); +#43587=DIRECTION('',(0.,0.,-1.)); +#43588=DIRECTION('',(-1.,0.,0.)); +#43589=DIRECTION('',(0.,0.,-1.)); +#43590=DIRECTION('',(0.,0.,-1.)); +#43591=DIRECTION('',(-1.,0.,0.)); +#43592=DIRECTION('',(0.,0.,-1.)); +#43593=DIRECTION('',(-1.,0.,0.)); +#43594=DIRECTION('',(0.,0.,-1.)); +#43595=DIRECTION('',(-1.,0.,0.)); +#43596=DIRECTION('',(0.,0.,1.)); +#43597=DIRECTION('',(0.,0.,-1.)); +#43598=DIRECTION('',(0.,0.,-1.)); +#43599=DIRECTION('',(-1.,0.,0.)); +#43600=DIRECTION('',(0.,0.,-1.)); +#43601=DIRECTION('',(-1.,0.,0.)); +#43602=DIRECTION('',(0.,0.,-1.)); +#43603=DIRECTION('',(1.,0.,0.)); +#43604=DIRECTION('',(0.,0.,-1.)); +#43605=DIRECTION('',(0.,0.,-1.)); +#43606=DIRECTION('',(0.,0.,-1.)); +#43607=DIRECTION('',(-1.,0.,0.)); +#43608=DIRECTION('',(0.,0.,-1.)); +#43609=DIRECTION('',(0.,0.,-1.)); +#43610=DIRECTION('',(1.,0.,0.)); +#43611=DIRECTION('',(0.,0.,-1.)); +#43612=DIRECTION('',(0.,0.,-1.)); +#43613=DIRECTION('',(0.,0.,-1.)); +#43614=DIRECTION('',(-1.,0.,0.)); +#43615=DIRECTION('',(0.,0.,-1.)); +#43616=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); +#43617=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#43618=DIRECTION('',(0.,0.,-1.)); +#43619=DIRECTION('',(0.,0.,-1.)); +#43620=DIRECTION('',(-1.,0.,0.)); +#43621=DIRECTION('',(0.,0.,-1.)); +#43622=DIRECTION('',(1.,0.,0.)); +#43623=DIRECTION('',(0.,0.,-1.)); +#43624=DIRECTION('',(-1.,9.12326820078609E-18,0.)); +#43625=DIRECTION('',(-9.12326820078609E-18,-1.,0.)); +#43626=DIRECTION('',(0.,0.,-1.)); +#43627=DIRECTION('',(0.,0.,-1.)); +#43628=DIRECTION('',(-1.,0.,0.)); +#43629=DIRECTION('',(0.,0.,-1.)); +#43630=DIRECTION('',(-0.866025403784437,-0.500000000000002,0.)); +#43631=DIRECTION('',(0.500000000000002,-0.866025403784437,0.)); +#43632=DIRECTION('',(0.,0.,-1.)); +#43633=DIRECTION('',(0.,0.,-1.)); +#43634=DIRECTION('',(-1.,0.,0.)); +#43635=DIRECTION('',(0.,0.,-1.)); +#43636=DIRECTION('',(-1.,0.,0.)); +#43637=DIRECTION('',(0.,0.,1.)); +#43638=DIRECTION('',(0.,0.,-1.)); +#43639=DIRECTION('',(0.,0.,-1.)); +#43640=DIRECTION('',(-1.,0.,0.)); +#43641=DIRECTION('',(0.,0.,-1.)); +#43642=DIRECTION('',(0.,0.,-1.)); +#43643=DIRECTION('',(-1.,0.,0.)); +#43644=DIRECTION('',(0.,0.,-1.)); +#43645=DIRECTION('',(-1.,0.,0.)); +#43646=DIRECTION('',(0.,0.,-1.)); +#43647=DIRECTION('',(-1.,0.,0.)); +#43648=DIRECTION('',(0.,0.,1.)); +#43649=DIRECTION('',(0.,0.,-1.)); +#43650=DIRECTION('',(0.,0.,-1.)); +#43651=DIRECTION('',(-1.,0.,0.)); +#43652=DIRECTION('',(0.,0.,-1.)); +#43653=DIRECTION('',(-1.,0.,0.)); +#43654=DIRECTION('',(0.,0.,-1.)); +#43655=DIRECTION('',(1.,0.,0.)); +#43656=DIRECTION('',(0.,0.,-1.)); +#43657=DIRECTION('',(0.,0.,-1.)); +#43658=DIRECTION('',(0.,0.,-1.)); +#43659=DIRECTION('',(-1.,0.,0.)); +#43660=DIRECTION('',(0.,0.,-1.)); +#43661=DIRECTION('',(0.,0.,-1.)); +#43662=DIRECTION('',(1.,0.,0.)); +#43663=DIRECTION('',(0.,0.,-1.)); +#43664=DIRECTION('',(0.,0.,-1.)); +#43665=DIRECTION('',(0.,0.,-1.)); +#43666=DIRECTION('',(-1.,0.,0.)); +#43667=DIRECTION('',(0.,0.,-1.)); +#43668=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); +#43669=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#43670=DIRECTION('',(0.,0.,-1.)); +#43671=DIRECTION('',(0.,0.,-1.)); +#43672=DIRECTION('',(-1.,0.,0.)); +#43673=DIRECTION('',(0.,0.,-1.)); +#43674=DIRECTION('',(1.,0.,0.)); +#43675=DIRECTION('',(0.,0.,-1.)); +#43676=DIRECTION('',(-1.,0.,0.)); +#43677=DIRECTION('',(0.,0.,1.)); +#43678=DIRECTION('',(0.,0.,-1.)); +#43679=DIRECTION('',(0.,0.,-1.)); +#43680=DIRECTION('',(-1.,0.,0.)); +#43681=DIRECTION('',(0.,0.,-1.)); +#43682=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); +#43683=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#43684=DIRECTION('',(0.,0.,-1.)); +#43685=DIRECTION('',(0.,0.,-1.)); +#43686=DIRECTION('',(-1.,0.,0.)); +#43687=DIRECTION('',(0.,0.,-1.)); +#43688=DIRECTION('',(-1.,0.,0.)); +#43689=DIRECTION('',(0.,0.,1.)); +#43690=DIRECTION('',(0.,0.,-1.)); +#43691=DIRECTION('',(0.,0.,-1.)); +#43692=DIRECTION('',(-1.,0.,0.)); +#43693=DIRECTION('',(0.,0.,-1.)); +#43694=DIRECTION('',(0.,0.,-1.)); +#43695=DIRECTION('',(-1.,0.,0.)); +#43696=DIRECTION('',(0.,0.,-1.)); +#43697=DIRECTION('',(-1.,0.,0.)); +#43698=DIRECTION('',(0.,0.,-1.)); +#43699=DIRECTION('',(-1.,0.,0.)); +#43700=DIRECTION('',(0.,0.,1.)); +#43701=DIRECTION('',(0.,0.,-1.)); +#43702=DIRECTION('',(0.,0.,-1.)); +#43703=DIRECTION('',(-1.,0.,0.)); +#43704=DIRECTION('',(0.,0.,-1.)); +#43705=DIRECTION('',(-1.,0.,0.)); +#43706=DIRECTION('',(0.,0.,-1.)); +#43707=DIRECTION('',(1.,0.,0.)); +#43708=DIRECTION('',(0.,0.,-1.)); +#43709=DIRECTION('',(0.,0.,-1.)); +#43710=DIRECTION('',(0.,0.,-1.)); +#43711=DIRECTION('',(-1.,0.,0.)); +#43712=DIRECTION('',(0.,0.,-1.)); +#43713=DIRECTION('',(0.,0.,-1.)); +#43714=DIRECTION('',(1.,0.,0.)); +#43715=DIRECTION('',(0.,0.,-1.)); +#43716=DIRECTION('',(0.,0.,-1.)); +#43717=DIRECTION('',(0.,0.,-1.)); +#43718=DIRECTION('',(-1.,0.,0.)); +#43719=DIRECTION('',(0.,0.,-1.)); +#43720=DIRECTION('',(0.866025403784439,-0.5,0.)); +#43721=DIRECTION('',(0.5,0.866025403784439,0.)); +#43722=DIRECTION('',(0.,0.,-1.)); +#43723=DIRECTION('',(0.,0.,-1.)); +#43724=DIRECTION('',(-1.,0.,0.)); +#43725=DIRECTION('',(0.,0.,-1.)); +#43726=DIRECTION('',(1.,0.,0.)); +#43727=DIRECTION('',(0.,0.,-1.)); +#43728=DIRECTION('',(-1.,0.,0.)); +#43729=DIRECTION('',(0.,0.,1.)); +#43730=DIRECTION('',(0.,0.,-1.)); +#43731=DIRECTION('',(0.,0.,-1.)); +#43732=DIRECTION('',(-1.,0.,0.)); +#43733=DIRECTION('',(0.,0.,-1.)); +#43734=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); +#43735=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#43736=DIRECTION('',(0.,0.,-1.)); +#43737=DIRECTION('',(0.,0.,-1.)); +#43738=DIRECTION('',(-1.,0.,0.)); +#43739=DIRECTION('',(0.,0.,-1.)); +#43740=DIRECTION('',(-1.,0.,0.)); +#43741=DIRECTION('',(0.,0.,1.)); +#43742=DIRECTION('',(0.,0.,-1.)); +#43743=DIRECTION('',(0.,0.,-1.)); +#43744=DIRECTION('',(-1.,0.,0.)); +#43745=DIRECTION('',(0.,0.,-1.)); +#43746=DIRECTION('',(0.,0.,-1.)); +#43747=DIRECTION('',(-1.,0.,0.)); +#43748=DIRECTION('',(0.,0.,-1.)); +#43749=DIRECTION('',(-1.,0.,0.)); +#43750=DIRECTION('',(0.,0.,-1.)); +#43751=DIRECTION('',(-1.,0.,0.)); +#43752=DIRECTION('',(0.,0.,1.)); +#43753=DIRECTION('',(0.,0.,-1.)); +#43754=DIRECTION('',(0.,0.,-1.)); +#43755=DIRECTION('',(-1.,0.,0.)); +#43756=DIRECTION('',(0.,0.,-1.)); +#43757=DIRECTION('',(-1.,0.,0.)); +#43758=DIRECTION('',(0.,0.,-1.)); +#43759=DIRECTION('',(1.,0.,0.)); +#43760=DIRECTION('',(0.,0.,-1.)); +#43761=DIRECTION('',(0.,0.,-1.)); +#43762=DIRECTION('',(0.,0.,-1.)); +#43763=DIRECTION('',(-1.,0.,0.)); +#43764=DIRECTION('',(0.,0.,-1.)); +#43765=DIRECTION('',(0.,0.,-1.)); +#43766=DIRECTION('',(1.,0.,0.)); +#43767=DIRECTION('',(0.,0.,-1.)); +#43768=DIRECTION('',(0.,0.,-1.)); +#43769=DIRECTION('',(0.,0.,-1.)); +#43770=DIRECTION('',(-1.,0.,0.)); +#43771=DIRECTION('',(0.,0.,-1.)); +#43772=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#43773=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#43774=DIRECTION('',(0.,0.,-1.)); +#43775=DIRECTION('',(0.,0.,-1.)); +#43776=DIRECTION('',(-1.,0.,0.)); +#43777=DIRECTION('',(0.,0.,-1.)); +#43778=DIRECTION('',(1.,0.,0.)); +#43779=DIRECTION('',(0.,0.,-1.)); +#43780=DIRECTION('',(-1.,0.,0.)); +#43781=DIRECTION('',(0.,0.,1.)); +#43782=DIRECTION('',(0.,0.,-1.)); +#43783=DIRECTION('',(0.,0.,-1.)); +#43784=DIRECTION('',(-1.,0.,0.)); +#43785=DIRECTION('',(0.,0.,-1.)); +#43786=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43787=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43788=DIRECTION('',(0.,0.,-1.)); +#43789=DIRECTION('',(0.,0.,-1.)); +#43790=DIRECTION('',(-1.,0.,0.)); +#43791=DIRECTION('',(0.,0.,-1.)); +#43792=DIRECTION('',(-1.,0.,0.)); +#43793=DIRECTION('',(0.,0.,1.)); +#43794=DIRECTION('',(0.,0.,-1.)); +#43795=DIRECTION('',(0.,0.,-1.)); +#43796=DIRECTION('',(-1.,0.,0.)); +#43797=DIRECTION('',(0.,0.,-1.)); +#43798=DIRECTION('',(0.,0.,-1.)); +#43799=DIRECTION('',(-1.,0.,0.)); +#43800=DIRECTION('',(0.,0.,-1.)); +#43801=DIRECTION('',(-1.,0.,0.)); +#43802=DIRECTION('',(0.,0.,-1.)); +#43803=DIRECTION('',(-1.,0.,0.)); +#43804=DIRECTION('',(0.,0.,1.)); +#43805=DIRECTION('',(0.,0.,-1.)); +#43806=DIRECTION('',(0.,0.,-1.)); +#43807=DIRECTION('',(-1.,0.,0.)); +#43808=DIRECTION('',(0.,0.,-1.)); +#43809=DIRECTION('',(-1.,0.,0.)); +#43810=DIRECTION('',(0.,0.,-1.)); +#43811=DIRECTION('',(1.,0.,0.)); +#43812=DIRECTION('',(0.,0.,-1.)); +#43813=DIRECTION('',(0.,0.,-1.)); +#43814=DIRECTION('',(0.,0.,-1.)); +#43815=DIRECTION('',(-1.,0.,0.)); +#43816=DIRECTION('',(0.,0.,-1.)); +#43817=DIRECTION('',(0.,0.,-1.)); +#43818=DIRECTION('',(1.,0.,0.)); +#43819=DIRECTION('',(0.,0.,-1.)); +#43820=DIRECTION('',(0.,0.,-1.)); +#43821=DIRECTION('',(0.,0.,-1.)); +#43822=DIRECTION('',(-1.,0.,0.)); +#43823=DIRECTION('',(0.,0.,-1.)); +#43824=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); +#43825=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#43826=DIRECTION('',(0.,0.,-1.)); +#43827=DIRECTION('',(0.,0.,-1.)); +#43828=DIRECTION('',(-1.,0.,0.)); +#43829=DIRECTION('',(0.,0.,-1.)); +#43830=DIRECTION('',(1.,0.,0.)); +#43831=DIRECTION('',(0.,0.,-1.)); +#43832=DIRECTION('',(-1.,0.,0.)); +#43833=DIRECTION('',(0.,0.,1.)); +#43834=DIRECTION('',(0.,0.,-1.)); +#43835=DIRECTION('',(0.,0.,-1.)); +#43836=DIRECTION('',(-1.,0.,0.)); +#43837=DIRECTION('',(0.,0.,-1.)); +#43838=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43839=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43840=DIRECTION('',(0.,0.,-1.)); +#43841=DIRECTION('',(0.,0.,-1.)); +#43842=DIRECTION('',(-1.,0.,0.)); +#43843=DIRECTION('',(0.,0.,-1.)); +#43844=DIRECTION('',(-1.,0.,0.)); +#43845=DIRECTION('',(0.,0.,1.)); +#43846=DIRECTION('',(0.,0.,-1.)); +#43847=DIRECTION('',(0.,0.,-1.)); +#43848=DIRECTION('',(-1.,0.,0.)); +#43849=DIRECTION('',(0.,0.,-1.)); +#43850=DIRECTION('',(0.,0.,-1.)); +#43851=DIRECTION('',(-1.,0.,0.)); +#43852=DIRECTION('',(0.,0.,-1.)); +#43853=DIRECTION('',(-1.,0.,0.)); +#43854=DIRECTION('',(0.,0.,-1.)); +#43855=DIRECTION('',(-1.,0.,0.)); +#43856=DIRECTION('',(0.,0.,1.)); +#43857=DIRECTION('',(0.,0.,-1.)); +#43858=DIRECTION('',(0.,0.,-1.)); +#43859=DIRECTION('',(-1.,0.,0.)); +#43860=DIRECTION('',(0.,0.,-1.)); +#43861=DIRECTION('',(-1.,0.,0.)); +#43862=DIRECTION('',(0.,0.,-1.)); +#43863=DIRECTION('',(1.,0.,0.)); +#43864=DIRECTION('',(0.,0.,-1.)); +#43865=DIRECTION('',(0.,0.,-1.)); +#43866=DIRECTION('',(0.,0.,-1.)); +#43867=DIRECTION('',(-1.,0.,0.)); +#43868=DIRECTION('',(0.,0.,-1.)); +#43869=DIRECTION('',(0.,0.,-1.)); +#43870=DIRECTION('',(1.,0.,0.)); +#43871=DIRECTION('',(0.,0.,-1.)); +#43872=DIRECTION('',(0.,0.,-1.)); +#43873=DIRECTION('',(0.,0.,-1.)); +#43874=DIRECTION('',(-1.,0.,0.)); +#43875=DIRECTION('',(0.,0.,-1.)); +#43876=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); +#43877=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#43878=DIRECTION('',(0.,0.,-1.)); +#43879=DIRECTION('',(0.,0.,-1.)); +#43880=DIRECTION('',(-1.,0.,0.)); +#43881=DIRECTION('',(0.,0.,-1.)); +#43882=DIRECTION('',(1.,0.,0.)); +#43883=DIRECTION('',(0.,0.,-1.)); +#43884=DIRECTION('',(-1.,0.,0.)); +#43885=DIRECTION('',(0.,0.,1.)); +#43886=DIRECTION('',(0.,0.,-1.)); +#43887=DIRECTION('',(0.,0.,-1.)); +#43888=DIRECTION('',(-1.,0.,0.)); +#43889=DIRECTION('',(0.,0.,-1.)); +#43890=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43891=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43892=DIRECTION('',(0.,0.,-1.)); +#43893=DIRECTION('',(0.,0.,-1.)); +#43894=DIRECTION('',(-1.,0.,0.)); +#43895=DIRECTION('',(0.,0.,-1.)); +#43896=DIRECTION('',(-1.,0.,0.)); +#43897=DIRECTION('',(0.,0.,1.)); +#43898=DIRECTION('',(0.,0.,-1.)); +#43899=DIRECTION('',(0.,0.,-1.)); +#43900=DIRECTION('',(-1.,0.,0.)); +#43901=DIRECTION('',(0.,0.,-1.)); +#43902=DIRECTION('',(0.,0.,-1.)); +#43903=DIRECTION('',(-1.,0.,0.)); +#43904=DIRECTION('',(0.,0.,-1.)); +#43905=DIRECTION('',(-1.,0.,0.)); +#43906=DIRECTION('',(0.,0.,-1.)); +#43907=DIRECTION('',(-1.,0.,0.)); +#43908=DIRECTION('',(0.,0.,1.)); +#43909=DIRECTION('',(0.,0.,-1.)); +#43910=DIRECTION('',(0.,0.,-1.)); +#43911=DIRECTION('',(-1.,0.,0.)); +#43912=DIRECTION('',(0.,0.,-1.)); +#43913=DIRECTION('',(-1.,0.,0.)); +#43914=DIRECTION('',(0.,0.,-1.)); +#43915=DIRECTION('',(1.,0.,0.)); +#43916=DIRECTION('',(0.,0.,-1.)); +#43917=DIRECTION('',(0.,0.,-1.)); +#43918=DIRECTION('',(0.,0.,-1.)); +#43919=DIRECTION('',(-1.,0.,0.)); +#43920=DIRECTION('',(0.,0.,-1.)); +#43921=DIRECTION('',(0.,0.,-1.)); +#43922=DIRECTION('',(1.,0.,0.)); +#43923=DIRECTION('',(0.,0.,-1.)); +#43924=DIRECTION('',(0.,0.,-1.)); +#43925=DIRECTION('',(0.,0.,-1.)); +#43926=DIRECTION('',(-1.,0.,0.)); +#43927=DIRECTION('',(0.,0.,-1.)); +#43928=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#43929=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#43930=DIRECTION('',(0.,0.,-1.)); +#43931=DIRECTION('',(0.,0.,-1.)); +#43932=DIRECTION('',(-1.,0.,0.)); +#43933=DIRECTION('',(0.,0.,-1.)); +#43934=DIRECTION('',(1.,0.,0.)); +#43935=DIRECTION('',(0.,0.,-1.)); +#43936=DIRECTION('',(-1.,0.,0.)); +#43937=DIRECTION('',(0.,0.,1.)); +#43938=DIRECTION('',(0.,0.,-1.)); +#43939=DIRECTION('',(0.,0.,-1.)); +#43940=DIRECTION('',(-1.,0.,0.)); +#43941=DIRECTION('',(0.,0.,-1.)); +#43942=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43943=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43944=DIRECTION('',(0.,0.,-1.)); +#43945=DIRECTION('',(0.,0.,-1.)); +#43946=DIRECTION('',(-1.,0.,0.)); +#43947=DIRECTION('',(0.,0.,-1.)); +#43948=DIRECTION('',(-1.,0.,0.)); +#43949=DIRECTION('',(0.,0.,1.)); +#43950=DIRECTION('',(0.,0.,-1.)); +#43951=DIRECTION('',(0.,0.,-1.)); +#43952=DIRECTION('',(-1.,0.,0.)); +#43953=DIRECTION('',(0.,0.,-1.)); +#43954=DIRECTION('',(0.,0.,-1.)); +#43955=DIRECTION('',(-1.,0.,0.)); +#43956=DIRECTION('',(0.,0.,-1.)); +#43957=DIRECTION('',(-1.,0.,0.)); +#43958=DIRECTION('',(0.,0.,-1.)); +#43959=DIRECTION('',(-1.,0.,0.)); +#43960=DIRECTION('',(0.,0.,1.)); +#43961=DIRECTION('',(0.,0.,-1.)); +#43962=DIRECTION('',(0.,0.,-1.)); +#43963=DIRECTION('',(-1.,0.,0.)); +#43964=DIRECTION('',(0.,0.,-1.)); +#43965=DIRECTION('',(-1.,0.,0.)); +#43966=DIRECTION('',(0.,0.,-1.)); +#43967=DIRECTION('',(1.,0.,0.)); +#43968=DIRECTION('',(0.,0.,-1.)); +#43969=DIRECTION('',(0.,0.,-1.)); +#43970=DIRECTION('',(0.,0.,-1.)); +#43971=DIRECTION('',(-1.,0.,0.)); +#43972=DIRECTION('',(0.,0.,-1.)); +#43973=DIRECTION('',(0.,0.,-1.)); +#43974=DIRECTION('',(1.,0.,0.)); +#43975=DIRECTION('',(0.,0.,-1.)); +#43976=DIRECTION('',(0.,0.,-1.)); +#43977=DIRECTION('',(0.,0.,-1.)); +#43978=DIRECTION('',(-1.,0.,0.)); +#43979=DIRECTION('',(0.,0.,-1.)); +#43980=DIRECTION('',(0.866025403784442,-0.499999999999995,0.)); +#43981=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); +#43982=DIRECTION('',(0.,0.,-1.)); +#43983=DIRECTION('',(0.,0.,-1.)); +#43984=DIRECTION('',(-1.,0.,0.)); +#43985=DIRECTION('',(0.,0.,-1.)); +#43986=DIRECTION('',(1.,0.,0.)); +#43987=DIRECTION('',(0.,0.,-1.)); +#43988=DIRECTION('',(-1.,0.,0.)); +#43989=DIRECTION('',(0.,0.,1.)); +#43990=DIRECTION('',(0.,0.,-1.)); +#43991=DIRECTION('',(0.,0.,-1.)); +#43992=DIRECTION('',(-1.,0.,0.)); +#43993=DIRECTION('',(0.,0.,-1.)); +#43994=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#43995=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#43996=DIRECTION('',(0.,0.,-1.)); +#43997=DIRECTION('',(0.,0.,-1.)); +#43998=DIRECTION('',(-1.,0.,0.)); +#43999=DIRECTION('',(0.,0.,-1.)); +#44000=DIRECTION('',(-1.,0.,0.)); +#44001=DIRECTION('',(0.,0.,1.)); +#44002=DIRECTION('',(0.,0.,-1.)); +#44003=DIRECTION('',(0.,0.,-1.)); +#44004=DIRECTION('',(-1.,0.,0.)); +#44005=DIRECTION('',(0.,0.,-1.)); +#44006=DIRECTION('',(0.,0.,-1.)); +#44007=DIRECTION('',(-1.,0.,0.)); +#44008=DIRECTION('',(0.,0.,-1.)); +#44009=DIRECTION('',(-1.,0.,0.)); +#44010=DIRECTION('',(0.,0.,-1.)); +#44011=DIRECTION('',(-1.,0.,0.)); +#44012=DIRECTION('',(0.,0.,1.)); +#44013=DIRECTION('',(0.,0.,-1.)); +#44014=DIRECTION('',(0.,0.,-1.)); +#44015=DIRECTION('',(-1.,0.,0.)); +#44016=DIRECTION('',(0.,0.,-1.)); +#44017=DIRECTION('',(-1.,0.,0.)); +#44018=DIRECTION('',(0.,0.,-1.)); +#44019=DIRECTION('',(1.,0.,0.)); +#44020=DIRECTION('',(0.,0.,-1.)); +#44021=DIRECTION('',(0.,0.,-1.)); +#44022=DIRECTION('',(0.,0.,-1.)); +#44023=DIRECTION('',(-1.,0.,0.)); +#44024=DIRECTION('',(0.,0.,-1.)); +#44025=DIRECTION('',(0.,0.,-1.)); +#44026=DIRECTION('',(1.,0.,0.)); +#44027=DIRECTION('',(0.,0.,-1.)); +#44028=DIRECTION('',(0.,0.,-1.)); +#44029=DIRECTION('',(0.,0.,-1.)); +#44030=DIRECTION('',(-1.,0.,0.)); +#44031=DIRECTION('',(0.,0.,-1.)); +#44032=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#44033=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#44034=DIRECTION('',(0.,0.,-1.)); +#44035=DIRECTION('',(0.,0.,-1.)); +#44036=DIRECTION('',(-1.,0.,0.)); +#44037=DIRECTION('',(0.,0.,-1.)); +#44038=DIRECTION('',(1.,0.,0.)); +#44039=DIRECTION('',(0.,0.,-1.)); +#44040=DIRECTION('',(-1.,0.,0.)); +#44041=DIRECTION('',(0.,0.,1.)); +#44042=DIRECTION('',(0.,0.,-1.)); +#44043=DIRECTION('',(0.,0.,-1.)); +#44044=DIRECTION('',(-1.,0.,0.)); +#44045=DIRECTION('',(0.,0.,-1.)); +#44046=DIRECTION('',(-0.86602540378444,-0.499999999999998,0.)); +#44047=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); +#44048=DIRECTION('',(0.,0.,-1.)); +#44049=DIRECTION('',(0.,0.,-1.)); +#44050=DIRECTION('',(-1.,0.,0.)); +#44051=DIRECTION('',(0.,0.,-1.)); +#44052=DIRECTION('',(-1.,0.,0.)); +#44053=DIRECTION('',(0.,0.,1.)); +#44054=DIRECTION('',(0.,0.,-1.)); +#44055=DIRECTION('',(0.,0.,-1.)); +#44056=DIRECTION('',(-1.,0.,0.)); +#44057=DIRECTION('',(0.,0.,-1.)); +#44058=DIRECTION('',(0.,0.,-1.)); +#44059=DIRECTION('',(-1.,0.,0.)); +#44060=DIRECTION('',(0.,0.,-1.)); +#44061=DIRECTION('',(-1.,0.,0.)); +#44062=DIRECTION('',(0.,0.,-1.)); +#44063=DIRECTION('',(-1.,0.,0.)); +#44064=DIRECTION('',(0.,0.,1.)); +#44065=DIRECTION('',(0.,0.,-1.)); +#44066=DIRECTION('',(0.,0.,-1.)); +#44067=DIRECTION('',(-1.,0.,0.)); +#44068=DIRECTION('',(0.,0.,-1.)); +#44069=DIRECTION('',(-1.,0.,0.)); +#44070=DIRECTION('',(0.,0.,-1.)); +#44071=DIRECTION('',(1.,0.,0.)); +#44072=DIRECTION('',(0.,0.,-1.)); +#44073=DIRECTION('',(0.,0.,-1.)); +#44074=DIRECTION('',(0.,0.,-1.)); +#44075=DIRECTION('',(-1.,0.,0.)); +#44076=DIRECTION('',(0.,0.,-1.)); +#44077=DIRECTION('',(0.,0.,-1.)); +#44078=DIRECTION('',(1.,0.,0.)); +#44079=DIRECTION('',(0.,0.,-1.)); +#44080=DIRECTION('',(0.,0.,-1.)); +#44081=DIRECTION('',(0.,0.,-1.)); +#44082=DIRECTION('',(-1.,0.,0.)); +#44083=DIRECTION('',(0.,0.,-1.)); +#44084=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#44085=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#44086=DIRECTION('',(0.,0.,-1.)); +#44087=DIRECTION('',(0.,0.,-1.)); +#44088=DIRECTION('',(-1.,0.,0.)); +#44089=DIRECTION('',(0.,0.,-1.)); +#44090=DIRECTION('',(1.,0.,0.)); +#44091=DIRECTION('',(0.,0.,-1.)); +#44092=DIRECTION('',(-1.,2.91944582425155E-16,0.)); +#44093=DIRECTION('',(-2.91944582425155E-16,-1.,0.)); +#44094=DIRECTION('',(0.,0.,-1.)); +#44095=DIRECTION('',(0.,0.,-1.)); +#44096=DIRECTION('',(-1.,0.,0.)); +#44097=DIRECTION('',(0.,0.,-1.)); +#44098=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44099=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44100=DIRECTION('',(0.,0.,-1.)); +#44101=DIRECTION('',(0.,0.,-1.)); +#44102=DIRECTION('',(-1.,0.,0.)); +#44103=DIRECTION('',(0.,0.,-1.)); +#44104=DIRECTION('',(-1.,0.,0.)); +#44105=DIRECTION('',(0.,0.,1.)); +#44106=DIRECTION('',(0.,0.,-1.)); +#44107=DIRECTION('',(0.,0.,-1.)); +#44108=DIRECTION('',(-1.,0.,0.)); +#44109=DIRECTION('',(0.,0.,-1.)); +#44110=DIRECTION('',(0.,0.,-1.)); +#44111=DIRECTION('',(-1.,0.,0.)); +#44112=DIRECTION('',(0.,0.,-1.)); +#44113=DIRECTION('',(-1.,0.,0.)); +#44114=DIRECTION('',(0.,0.,-1.)); +#44115=DIRECTION('',(-1.,0.,0.)); +#44116=DIRECTION('',(0.,0.,1.)); +#44117=DIRECTION('',(0.,0.,-1.)); +#44118=DIRECTION('',(0.,0.,-1.)); +#44119=DIRECTION('',(-1.,0.,0.)); +#44120=DIRECTION('',(0.,0.,-1.)); +#44121=DIRECTION('',(-1.,0.,0.)); +#44122=DIRECTION('',(0.,0.,-1.)); +#44123=DIRECTION('',(0.,0.,-1.)); +#44124=DIRECTION('',(1.,0.,0.)); +#44125=DIRECTION('',(0.,0.,-1.)); +#44126=DIRECTION('',(0.,0.,-1.)); +#44127=DIRECTION('',(0.,0.,-1.)); +#44128=DIRECTION('',(-1.,0.,0.)); +#44129=DIRECTION('',(0.,0.,-1.)); +#44130=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#44131=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#44132=DIRECTION('',(0.,0.,-1.)); +#44133=DIRECTION('',(0.,0.,-1.)); +#44134=DIRECTION('',(-1.,0.,0.)); +#44135=DIRECTION('',(0.,0.,-1.)); +#44136=DIRECTION('',(1.,0.,0.)); +#44137=DIRECTION('',(0.,0.,-1.)); +#44138=DIRECTION('',(-1.,0.,0.)); +#44139=DIRECTION('',(0.,0.,1.)); +#44140=DIRECTION('',(0.,0.,-1.)); +#44141=DIRECTION('',(0.,0.,-1.)); +#44142=DIRECTION('',(-1.,0.,0.)); +#44143=DIRECTION('',(0.,0.,-1.)); +#44144=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44145=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44146=DIRECTION('',(0.,0.,-1.)); +#44147=DIRECTION('',(0.,0.,-1.)); +#44148=DIRECTION('',(-1.,0.,0.)); +#44149=DIRECTION('',(0.,0.,-1.)); +#44150=DIRECTION('',(-1.,0.,0.)); +#44151=DIRECTION('',(0.,0.,1.)); +#44152=DIRECTION('',(0.,0.,-1.)); +#44153=DIRECTION('',(0.,0.,-1.)); +#44154=DIRECTION('',(-1.,0.,0.)); +#44155=DIRECTION('',(0.,0.,-1.)); +#44156=DIRECTION('',(1.,0.,0.)); +#44157=DIRECTION('',(0.,0.,-1.)); +#44158=DIRECTION('',(0.,0.,-1.)); +#44159=DIRECTION('',(0.,0.,-1.)); +#44160=DIRECTION('',(0.,0.,-1.)); +#44161=DIRECTION('',(-1.,0.,0.)); +#44162=DIRECTION('',(0.,0.,-1.)); +#44163=DIRECTION('',(-1.,0.,0.)); +#44164=DIRECTION('',(0.,0.,-1.)); +#44165=DIRECTION('',(-1.,0.,0.)); +#44166=DIRECTION('',(0.,0.,1.)); +#44167=DIRECTION('',(0.,0.,-1.)); +#44168=DIRECTION('',(0.,0.,-1.)); +#44169=DIRECTION('',(-1.,0.,0.)); +#44170=DIRECTION('',(0.,0.,-1.)); +#44171=DIRECTION('',(-1.,0.,0.)); +#44172=DIRECTION('',(0.,0.,-1.)); +#44173=DIRECTION('',(-1.,0.,0.)); +#44174=DIRECTION('',(0.,0.,-1.)); +#44175=DIRECTION('',(0.,0.,-1.)); +#44176=DIRECTION('',(1.,0.,0.)); +#44177=DIRECTION('',(0.,0.,-1.)); +#44178=DIRECTION('',(0.,0.,-1.)); +#44179=DIRECTION('',(0.,0.,-1.)); +#44180=DIRECTION('',(-1.,0.,0.)); +#44181=DIRECTION('',(0.,0.,-1.)); +#44182=DIRECTION('',(0.866025403784442,-0.499999999999995,0.)); +#44183=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); +#44184=DIRECTION('',(0.,0.,-1.)); +#44185=DIRECTION('',(0.,0.,-1.)); +#44186=DIRECTION('',(-1.,0.,0.)); +#44187=DIRECTION('',(0.,0.,-1.)); +#44188=DIRECTION('',(1.,0.,0.)); +#44189=DIRECTION('',(0.,0.,-1.)); +#44190=DIRECTION('',(-1.,0.,0.)); +#44191=DIRECTION('',(0.,0.,1.)); +#44192=DIRECTION('',(0.,0.,-1.)); +#44193=DIRECTION('',(0.,0.,-1.)); +#44194=DIRECTION('',(-1.,0.,0.)); +#44195=DIRECTION('',(0.,0.,-1.)); +#44196=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44197=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44198=DIRECTION('',(0.,0.,-1.)); +#44199=DIRECTION('',(0.,0.,-1.)); +#44200=DIRECTION('',(-1.,0.,0.)); +#44201=DIRECTION('',(0.,0.,-1.)); +#44202=DIRECTION('',(-1.,0.,0.)); +#44203=DIRECTION('',(0.,0.,1.)); +#44204=DIRECTION('',(0.,0.,-1.)); +#44205=DIRECTION('',(0.,0.,-1.)); +#44206=DIRECTION('',(-1.,0.,0.)); +#44207=DIRECTION('',(0.,0.,-1.)); +#44208=DIRECTION('',(1.,0.,0.)); +#44209=DIRECTION('',(0.,0.,-1.)); +#44210=DIRECTION('',(0.,0.,-1.)); +#44211=DIRECTION('',(0.,0.,-1.)); +#44212=DIRECTION('',(0.,0.,-1.)); +#44213=DIRECTION('',(-1.,0.,0.)); +#44214=DIRECTION('',(0.,0.,-1.)); +#44215=DIRECTION('',(-1.,0.,0.)); +#44216=DIRECTION('',(0.,0.,-1.)); +#44217=DIRECTION('',(-1.,0.,0.)); +#44218=DIRECTION('',(0.,0.,1.)); +#44219=DIRECTION('',(0.,0.,-1.)); +#44220=DIRECTION('',(0.,0.,-1.)); +#44221=DIRECTION('',(-1.,0.,0.)); +#44222=DIRECTION('',(0.,0.,-1.)); +#44223=DIRECTION('',(-1.,0.,0.)); +#44224=DIRECTION('',(0.,0.,-1.)); +#44225=DIRECTION('',(-1.,0.,0.)); +#44226=DIRECTION('',(0.,0.,-1.)); +#44227=DIRECTION('',(0.,0.,-1.)); +#44228=DIRECTION('',(1.,0.,0.)); +#44229=DIRECTION('',(0.,0.,-1.)); +#44230=DIRECTION('',(0.,0.,-1.)); +#44231=DIRECTION('',(0.,0.,-1.)); +#44232=DIRECTION('',(-1.,0.,0.)); +#44233=DIRECTION('',(0.,0.,-1.)); +#44234=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#44235=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#44236=DIRECTION('',(0.,0.,-1.)); +#44237=DIRECTION('',(0.,0.,-1.)); +#44238=DIRECTION('',(-1.,0.,0.)); +#44239=DIRECTION('',(0.,0.,-1.)); +#44240=DIRECTION('',(1.,0.,0.)); +#44241=DIRECTION('',(0.,0.,-1.)); +#44242=DIRECTION('',(-1.,0.,0.)); +#44243=DIRECTION('',(0.,0.,1.)); +#44244=DIRECTION('',(0.,0.,-1.)); +#44245=DIRECTION('',(0.,0.,-1.)); +#44246=DIRECTION('',(-1.,0.,0.)); +#44247=DIRECTION('',(0.,0.,-1.)); +#44248=DIRECTION('',(-0.86602540378444,-0.499999999999998,0.)); +#44249=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); +#44250=DIRECTION('',(0.,0.,-1.)); +#44251=DIRECTION('',(0.,0.,-1.)); +#44252=DIRECTION('',(-1.,0.,0.)); +#44253=DIRECTION('',(0.,0.,-1.)); +#44254=DIRECTION('',(-1.,0.,0.)); +#44255=DIRECTION('',(0.,0.,1.)); +#44256=DIRECTION('',(0.,0.,-1.)); +#44257=DIRECTION('',(0.,0.,-1.)); +#44258=DIRECTION('',(-1.,0.,0.)); +#44259=DIRECTION('',(0.,0.,-1.)); +#44260=DIRECTION('',(1.,0.,0.)); +#44261=DIRECTION('',(0.,0.,-1.)); +#44262=DIRECTION('',(0.,0.,-1.)); +#44263=DIRECTION('',(0.,0.,-1.)); +#44264=DIRECTION('',(0.,0.,-1.)); +#44265=DIRECTION('',(-1.,0.,0.)); +#44266=DIRECTION('',(0.,0.,-1.)); +#44267=DIRECTION('',(-1.,0.,0.)); +#44268=DIRECTION('',(0.,0.,-1.)); +#44269=DIRECTION('',(-1.,0.,0.)); +#44270=DIRECTION('',(0.,0.,1.)); +#44271=DIRECTION('',(0.,0.,-1.)); +#44272=DIRECTION('',(0.,0.,-1.)); +#44273=DIRECTION('',(-1.,0.,0.)); +#44274=DIRECTION('',(0.,0.,-1.)); +#44275=DIRECTION('',(-1.,0.,0.)); +#44276=DIRECTION('',(0.,0.,-1.)); +#44277=DIRECTION('',(-1.,0.,0.)); +#44278=DIRECTION('',(0.,0.,-1.)); +#44279=DIRECTION('',(0.,0.,-1.)); +#44280=DIRECTION('',(1.,0.,0.)); +#44281=DIRECTION('',(0.,0.,-1.)); +#44282=DIRECTION('',(0.,0.,-1.)); +#44283=DIRECTION('',(0.,0.,-1.)); +#44284=DIRECTION('',(-1.,0.,0.)); +#44285=DIRECTION('',(0.,0.,-1.)); +#44286=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#44287=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#44288=DIRECTION('',(0.,0.,-1.)); +#44289=DIRECTION('',(0.,0.,-1.)); +#44290=DIRECTION('',(-1.,0.,0.)); +#44291=DIRECTION('',(0.,0.,-1.)); +#44292=DIRECTION('',(1.,0.,0.)); +#44293=DIRECTION('',(0.,0.,-1.)); +#44294=DIRECTION('',(-1.,0.,0.)); +#44295=DIRECTION('',(0.,0.,1.)); +#44296=DIRECTION('',(0.,0.,-1.)); +#44297=DIRECTION('',(0.,0.,-1.)); +#44298=DIRECTION('',(-1.,0.,0.)); +#44299=DIRECTION('',(0.,0.,-1.)); +#44300=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44301=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44302=DIRECTION('',(0.,0.,-1.)); +#44303=DIRECTION('',(0.,0.,-1.)); +#44304=DIRECTION('',(-1.,0.,0.)); +#44305=DIRECTION('',(0.,0.,-1.)); +#44306=DIRECTION('',(-1.,0.,0.)); +#44307=DIRECTION('',(0.,0.,1.)); +#44308=DIRECTION('',(0.,0.,-1.)); +#44309=DIRECTION('',(0.,0.,-1.)); +#44310=DIRECTION('',(-1.,0.,0.)); +#44311=DIRECTION('',(0.,0.,-1.)); +#44312=DIRECTION('',(1.,0.,0.)); +#44313=DIRECTION('',(0.,0.,-1.)); +#44314=DIRECTION('',(0.,0.,-1.)); +#44315=DIRECTION('',(0.,0.,-1.)); +#44316=DIRECTION('',(0.,0.,-1.)); +#44317=DIRECTION('',(-1.,0.,0.)); +#44318=DIRECTION('',(0.,0.,-1.)); +#44319=DIRECTION('',(-1.,0.,0.)); +#44320=DIRECTION('',(0.,0.,-1.)); +#44321=DIRECTION('',(-1.,0.,0.)); +#44322=DIRECTION('',(0.,0.,1.)); +#44323=DIRECTION('',(0.,0.,-1.)); +#44324=DIRECTION('',(0.,0.,-1.)); +#44325=DIRECTION('',(-1.,0.,0.)); +#44326=DIRECTION('',(0.,0.,-1.)); +#44327=DIRECTION('',(-1.,0.,0.)); +#44328=DIRECTION('',(0.,0.,-1.)); +#44329=DIRECTION('',(-1.,0.,0.)); +#44330=DIRECTION('',(0.,0.,-1.)); +#44331=DIRECTION('',(0.,0.,-1.)); +#44332=DIRECTION('',(1.,0.,0.)); +#44333=DIRECTION('',(0.,0.,-1.)); +#44334=DIRECTION('',(0.,0.,-1.)); +#44335=DIRECTION('',(0.,0.,-1.)); +#44336=DIRECTION('',(-1.,0.,0.)); +#44337=DIRECTION('',(0.,0.,-1.)); +#44338=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#44339=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#44340=DIRECTION('',(0.,0.,-1.)); +#44341=DIRECTION('',(0.,0.,-1.)); +#44342=DIRECTION('',(-1.,0.,0.)); +#44343=DIRECTION('',(0.,0.,-1.)); +#44344=DIRECTION('',(1.,0.,0.)); +#44345=DIRECTION('',(0.,0.,-1.)); +#44346=DIRECTION('',(-1.,0.,0.)); +#44347=DIRECTION('',(0.,0.,1.)); +#44348=DIRECTION('',(0.,0.,-1.)); +#44349=DIRECTION('',(0.,0.,-1.)); +#44350=DIRECTION('',(-1.,0.,0.)); +#44351=DIRECTION('',(0.,0.,-1.)); +#44352=DIRECTION('',(-0.866025403784438,-0.500000000000001,0.)); +#44353=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); +#44354=DIRECTION('',(0.,0.,-1.)); +#44355=DIRECTION('',(0.,0.,-1.)); +#44356=DIRECTION('',(-1.,0.,0.)); +#44357=DIRECTION('',(0.,0.,-1.)); +#44358=DIRECTION('',(-1.,0.,0.)); +#44359=DIRECTION('',(0.,0.,1.)); +#44360=DIRECTION('',(0.,0.,-1.)); +#44361=DIRECTION('',(0.,0.,-1.)); +#44362=DIRECTION('',(-1.,0.,0.)); +#44363=DIRECTION('',(0.,0.,-1.)); +#44364=DIRECTION('',(1.,0.,0.)); +#44365=DIRECTION('',(0.,0.,-1.)); +#44366=DIRECTION('',(0.,0.,-1.)); +#44367=DIRECTION('',(0.,0.,-1.)); +#44368=DIRECTION('',(0.,0.,-1.)); +#44369=DIRECTION('',(-1.,0.,0.)); +#44370=DIRECTION('',(0.,0.,-1.)); +#44371=DIRECTION('',(-1.,0.,0.)); +#44372=DIRECTION('',(0.,0.,-1.)); +#44373=DIRECTION('',(-1.,0.,0.)); +#44374=DIRECTION('',(0.,0.,1.)); +#44375=DIRECTION('',(0.,0.,-1.)); +#44376=DIRECTION('',(0.,0.,-1.)); +#44377=DIRECTION('',(-1.,0.,0.)); +#44378=DIRECTION('',(0.,0.,-1.)); +#44379=DIRECTION('',(-1.,0.,0.)); +#44380=DIRECTION('',(0.,0.,-1.)); +#44381=DIRECTION('',(-1.,0.,0.)); +#44382=DIRECTION('',(0.,0.,-1.)); +#44383=DIRECTION('',(0.,0.,-1.)); +#44384=DIRECTION('',(1.,0.,0.)); +#44385=DIRECTION('',(0.,0.,-1.)); +#44386=DIRECTION('',(0.,0.,-1.)); +#44387=DIRECTION('',(0.,0.,-1.)); +#44388=DIRECTION('',(-1.,0.,0.)); +#44389=DIRECTION('',(0.,0.,-1.)); +#44390=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); +#44391=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#44392=DIRECTION('',(0.,0.,-1.)); +#44393=DIRECTION('',(0.,0.,-1.)); +#44394=DIRECTION('',(-1.,0.,0.)); +#44395=DIRECTION('',(0.,0.,-1.)); +#44396=DIRECTION('',(1.,0.,0.)); +#44397=DIRECTION('',(0.,0.,-1.)); +#44398=DIRECTION('',(-1.,0.,0.)); +#44399=DIRECTION('',(0.,0.,1.)); +#44400=DIRECTION('',(0.,0.,-1.)); +#44401=DIRECTION('',(0.,0.,-1.)); +#44402=DIRECTION('',(-1.,0.,0.)); +#44403=DIRECTION('',(0.,0.,-1.)); +#44404=DIRECTION('',(-0.866025403784438,-0.500000000000001,0.)); +#44405=DIRECTION('',(0.500000000000001,-0.866025403784438,0.)); +#44406=DIRECTION('',(0.,0.,-1.)); +#44407=DIRECTION('',(0.,0.,-1.)); +#44408=DIRECTION('',(-1.,0.,0.)); +#44409=DIRECTION('',(0.,0.,-1.)); +#44410=DIRECTION('',(-1.,0.,0.)); +#44411=DIRECTION('',(0.,0.,1.)); +#44412=DIRECTION('',(0.,0.,-1.)); +#44413=DIRECTION('',(0.,0.,-1.)); +#44414=DIRECTION('',(-1.,0.,0.)); +#44415=DIRECTION('',(0.,0.,-1.)); +#44416=DIRECTION('',(1.,0.,0.)); +#44417=DIRECTION('',(0.,0.,-1.)); +#44418=DIRECTION('',(0.,0.,-1.)); +#44419=DIRECTION('',(0.,0.,-1.)); +#44420=DIRECTION('',(0.,0.,-1.)); +#44421=DIRECTION('',(-1.,0.,0.)); +#44422=DIRECTION('',(0.,0.,-1.)); +#44423=DIRECTION('',(-1.,0.,0.)); +#44424=DIRECTION('',(0.,0.,-1.)); +#44425=DIRECTION('',(-1.,0.,0.)); +#44426=DIRECTION('',(0.,0.,1.)); +#44427=DIRECTION('',(0.,0.,-1.)); +#44428=DIRECTION('',(0.,0.,-1.)); +#44429=DIRECTION('',(-1.,0.,0.)); +#44430=DIRECTION('',(0.,0.,-1.)); +#44431=DIRECTION('',(-1.,0.,0.)); +#44432=DIRECTION('',(0.,0.,-1.)); +#44433=DIRECTION('',(-1.,0.,0.)); +#44434=DIRECTION('',(0.,0.,-1.)); +#44435=DIRECTION('',(0.,0.,-1.)); +#44436=DIRECTION('',(1.,0.,0.)); +#44437=DIRECTION('',(0.,0.,-1.)); +#44438=DIRECTION('',(0.,0.,-1.)); +#44439=DIRECTION('',(0.,0.,-1.)); +#44440=DIRECTION('',(-1.,0.,0.)); +#44441=DIRECTION('',(0.,0.,-1.)); +#44442=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#44443=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#44444=DIRECTION('',(0.,0.,-1.)); +#44445=DIRECTION('',(0.,0.,-1.)); +#44446=DIRECTION('',(-1.,0.,0.)); +#44447=DIRECTION('',(0.,0.,-1.)); +#44448=DIRECTION('',(1.,0.,0.)); +#44449=DIRECTION('',(0.,0.,-1.)); +#44450=DIRECTION('',(-1.,0.,0.)); +#44451=DIRECTION('',(0.,0.,1.)); +#44452=DIRECTION('',(0.,0.,-1.)); +#44453=DIRECTION('',(0.,0.,-1.)); +#44454=DIRECTION('',(-1.,0.,0.)); +#44455=DIRECTION('',(0.,0.,-1.)); +#44456=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44457=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44458=DIRECTION('',(0.,0.,-1.)); +#44459=DIRECTION('',(0.,0.,-1.)); +#44460=DIRECTION('',(-1.,0.,0.)); +#44461=DIRECTION('',(0.,0.,-1.)); +#44462=DIRECTION('',(-1.,0.,0.)); +#44463=DIRECTION('',(0.,0.,1.)); +#44464=DIRECTION('',(0.,0.,-1.)); +#44465=DIRECTION('',(0.,0.,-1.)); +#44466=DIRECTION('',(-1.,0.,0.)); +#44467=DIRECTION('',(0.,0.,-1.)); +#44468=DIRECTION('',(1.,0.,0.)); +#44469=DIRECTION('',(0.,0.,-1.)); +#44470=DIRECTION('',(0.,0.,-1.)); +#44471=DIRECTION('',(0.,0.,-1.)); +#44472=DIRECTION('',(0.,0.,-1.)); +#44473=DIRECTION('',(-1.,0.,0.)); +#44474=DIRECTION('',(0.,0.,-1.)); +#44475=DIRECTION('',(-1.,0.,0.)); +#44476=DIRECTION('',(0.,0.,-1.)); +#44477=DIRECTION('',(-1.,0.,0.)); +#44478=DIRECTION('',(0.,0.,1.)); +#44479=DIRECTION('',(0.,0.,-1.)); +#44480=DIRECTION('',(0.,0.,-1.)); +#44481=DIRECTION('',(-1.,0.,0.)); +#44482=DIRECTION('',(0.,0.,-1.)); +#44483=DIRECTION('',(-1.,0.,0.)); +#44484=DIRECTION('',(0.,0.,-1.)); +#44485=DIRECTION('',(-1.,0.,0.)); +#44486=DIRECTION('',(0.,0.,-1.)); +#44487=DIRECTION('',(0.,0.,-1.)); +#44488=DIRECTION('',(1.,0.,0.)); +#44489=DIRECTION('',(0.,0.,-1.)); +#44490=DIRECTION('',(0.,0.,-1.)); +#44491=DIRECTION('',(0.,0.,-1.)); +#44492=DIRECTION('',(-1.,0.,0.)); +#44493=DIRECTION('',(0.,0.,-1.)); +#44494=DIRECTION('',(0.866025403784439,-0.5,0.)); +#44495=DIRECTION('',(0.5,0.866025403784439,0.)); +#44496=DIRECTION('',(0.,0.,-1.)); +#44497=DIRECTION('',(0.,0.,-1.)); +#44498=DIRECTION('',(-1.,0.,0.)); +#44499=DIRECTION('',(0.,0.,-1.)); +#44500=DIRECTION('',(1.,0.,0.)); +#44501=DIRECTION('',(0.,0.,-1.)); +#44502=DIRECTION('',(-1.,0.,0.)); +#44503=DIRECTION('',(0.,0.,1.)); +#44504=DIRECTION('',(0.,0.,-1.)); +#44505=DIRECTION('',(0.,0.,-1.)); +#44506=DIRECTION('',(-1.,0.,0.)); +#44507=DIRECTION('',(0.,0.,-1.)); +#44508=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); +#44509=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#44510=DIRECTION('',(0.,0.,-1.)); +#44511=DIRECTION('',(0.,0.,-1.)); +#44512=DIRECTION('',(-1.,0.,0.)); +#44513=DIRECTION('',(0.,0.,-1.)); +#44514=DIRECTION('',(-1.,0.,0.)); +#44515=DIRECTION('',(0.,0.,1.)); +#44516=DIRECTION('',(0.,0.,-1.)); +#44517=DIRECTION('',(0.,0.,-1.)); +#44518=DIRECTION('',(-1.,0.,0.)); +#44519=DIRECTION('',(0.,0.,-1.)); +#44520=DIRECTION('',(1.,0.,0.)); +#44521=DIRECTION('',(0.,0.,-1.)); +#44522=DIRECTION('',(0.,0.,-1.)); +#44523=DIRECTION('',(0.,0.,-1.)); +#44524=DIRECTION('',(0.,0.,-1.)); +#44525=DIRECTION('',(-1.,0.,0.)); +#44526=DIRECTION('',(0.,0.,-1.)); +#44527=DIRECTION('',(-1.,0.,0.)); +#44528=DIRECTION('',(0.,0.,-1.)); +#44529=DIRECTION('',(-1.,0.,0.)); +#44530=DIRECTION('',(0.,0.,1.)); +#44531=DIRECTION('',(0.,0.,-1.)); +#44532=DIRECTION('',(0.,0.,-1.)); +#44533=DIRECTION('',(-1.,0.,0.)); +#44534=DIRECTION('',(0.,0.,-1.)); +#44535=DIRECTION('',(-1.,0.,0.)); +#44536=DIRECTION('',(0.,0.,-1.)); +#44537=DIRECTION('',(-1.,0.,0.)); +#44538=DIRECTION('',(0.,0.,-1.)); +#44539=DIRECTION('',(0.,0.,-1.)); +#44540=DIRECTION('',(1.,0.,0.)); +#44541=DIRECTION('',(0.,0.,-1.)); +#44542=DIRECTION('',(0.,0.,-1.)); +#44543=DIRECTION('',(0.,0.,-1.)); +#44544=DIRECTION('',(-1.,0.,0.)); +#44545=DIRECTION('',(0.,0.,-1.)); +#44546=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); +#44547=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#44548=DIRECTION('',(0.,0.,-1.)); +#44549=DIRECTION('',(0.,0.,-1.)); +#44550=DIRECTION('',(-1.,0.,0.)); +#44551=DIRECTION('',(0.,0.,-1.)); +#44552=DIRECTION('',(1.,0.,0.)); +#44553=DIRECTION('',(0.,0.,-1.)); +#44554=DIRECTION('',(-1.,0.,0.)); +#44555=DIRECTION('',(0.,0.,1.)); +#44556=DIRECTION('',(0.,0.,-1.)); +#44557=DIRECTION('',(0.,0.,-1.)); +#44558=DIRECTION('',(-1.,0.,0.)); +#44559=DIRECTION('',(0.,0.,-1.)); +#44560=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); +#44561=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#44562=DIRECTION('',(0.,0.,-1.)); +#44563=DIRECTION('',(0.,0.,-1.)); +#44564=DIRECTION('',(-1.,0.,0.)); +#44565=DIRECTION('',(0.,0.,-1.)); +#44566=DIRECTION('',(-1.,0.,0.)); +#44567=DIRECTION('',(0.,0.,1.)); +#44568=DIRECTION('',(0.,0.,-1.)); +#44569=DIRECTION('',(0.,0.,-1.)); +#44570=DIRECTION('',(-1.,0.,0.)); +#44571=DIRECTION('',(0.,0.,-1.)); +#44572=DIRECTION('',(1.,0.,0.)); +#44573=DIRECTION('',(0.,0.,-1.)); +#44574=DIRECTION('',(0.,0.,-1.)); +#44575=DIRECTION('',(0.,0.,-1.)); +#44576=DIRECTION('',(0.,0.,-1.)); +#44577=DIRECTION('',(-1.,0.,0.)); +#44578=DIRECTION('',(0.,0.,-1.)); +#44579=DIRECTION('',(-1.,0.,0.)); +#44580=DIRECTION('',(0.,0.,-1.)); +#44581=DIRECTION('',(-1.,0.,0.)); +#44582=DIRECTION('',(0.,0.,1.)); +#44583=DIRECTION('',(0.,0.,-1.)); +#44584=DIRECTION('',(0.,0.,-1.)); +#44585=DIRECTION('',(-1.,0.,0.)); +#44586=DIRECTION('',(0.,0.,-1.)); +#44587=DIRECTION('',(-1.,0.,0.)); +#44588=DIRECTION('',(0.,0.,-1.)); +#44589=DIRECTION('',(-1.,0.,0.)); +#44590=DIRECTION('',(0.,0.,-1.)); +#44591=DIRECTION('',(0.,0.,-1.)); +#44592=DIRECTION('',(1.,0.,0.)); +#44593=DIRECTION('',(0.,0.,-1.)); +#44594=DIRECTION('',(0.,0.,-1.)); +#44595=DIRECTION('',(0.,0.,-1.)); +#44596=DIRECTION('',(-1.,0.,0.)); +#44597=DIRECTION('',(0.,0.,-1.)); +#44598=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); +#44599=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#44600=DIRECTION('',(0.,0.,-1.)); +#44601=DIRECTION('',(0.,0.,-1.)); +#44602=DIRECTION('',(-1.,0.,0.)); +#44603=DIRECTION('',(0.,0.,-1.)); +#44604=DIRECTION('',(1.,0.,0.)); +#44605=DIRECTION('',(0.,0.,-1.)); +#44606=DIRECTION('',(-1.,9.12326820078609E-18,0.)); +#44607=DIRECTION('',(-9.12326820078609E-18,-1.,0.)); +#44608=DIRECTION('',(0.,0.,-1.)); +#44609=DIRECTION('',(0.,0.,-1.)); +#44610=DIRECTION('',(-1.,0.,0.)); +#44611=DIRECTION('',(0.,0.,-1.)); +#44612=DIRECTION('',(-0.866025403784437,-0.500000000000002,0.)); +#44613=DIRECTION('',(0.500000000000002,-0.866025403784437,0.)); +#44614=DIRECTION('',(0.,0.,-1.)); +#44615=DIRECTION('',(0.,0.,-1.)); +#44616=DIRECTION('',(-1.,0.,0.)); +#44617=DIRECTION('',(0.,0.,-1.)); +#44618=DIRECTION('',(-1.,0.,0.)); +#44619=DIRECTION('',(0.,0.,1.)); +#44620=DIRECTION('',(0.,0.,-1.)); +#44621=DIRECTION('',(0.,0.,-1.)); +#44622=DIRECTION('',(-1.,0.,0.)); +#44623=DIRECTION('',(0.,0.,-1.)); +#44624=DIRECTION('',(1.,0.,0.)); +#44625=DIRECTION('',(0.,0.,-1.)); +#44626=DIRECTION('',(0.,0.,-1.)); +#44627=DIRECTION('',(0.,0.,-1.)); +#44628=DIRECTION('',(0.,0.,-1.)); +#44629=DIRECTION('',(-1.,0.,0.)); +#44630=DIRECTION('',(0.,0.,-1.)); +#44631=DIRECTION('',(-1.,0.,0.)); +#44632=DIRECTION('',(0.,0.,-1.)); +#44633=DIRECTION('',(-1.,0.,0.)); +#44634=DIRECTION('',(0.,0.,1.)); +#44635=DIRECTION('',(0.,0.,-1.)); +#44636=DIRECTION('',(0.,0.,-1.)); +#44637=DIRECTION('',(-1.,0.,0.)); +#44638=DIRECTION('',(0.,0.,-1.)); +#44639=DIRECTION('',(-1.,0.,0.)); +#44640=DIRECTION('',(0.,0.,-1.)); +#44641=DIRECTION('',(-1.,0.,0.)); +#44642=DIRECTION('',(0.,0.,-1.)); +#44643=DIRECTION('',(0.,0.,-1.)); +#44644=DIRECTION('',(1.,0.,0.)); +#44645=DIRECTION('',(0.,0.,-1.)); +#44646=DIRECTION('',(0.,0.,-1.)); +#44647=DIRECTION('',(0.,0.,-1.)); +#44648=DIRECTION('',(-1.,0.,0.)); +#44649=DIRECTION('',(0.,0.,-1.)); +#44650=DIRECTION('',(0.866025403784438,-0.500000000000001,0.)); +#44651=DIRECTION('',(0.500000000000001,0.866025403784438,0.)); +#44652=DIRECTION('',(0.,0.,-1.)); +#44653=DIRECTION('',(0.,0.,-1.)); +#44654=DIRECTION('',(-1.,0.,0.)); +#44655=DIRECTION('',(0.,0.,-1.)); +#44656=DIRECTION('',(1.,0.,0.)); +#44657=DIRECTION('',(0.,0.,-1.)); +#44658=DIRECTION('',(-1.,0.,0.)); +#44659=DIRECTION('',(0.,0.,1.)); +#44660=DIRECTION('',(0.,0.,-1.)); +#44661=DIRECTION('',(0.,0.,-1.)); +#44662=DIRECTION('',(-1.,0.,0.)); +#44663=DIRECTION('',(0.,0.,-1.)); +#44664=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); +#44665=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#44666=DIRECTION('',(0.,0.,-1.)); +#44667=DIRECTION('',(0.,0.,-1.)); +#44668=DIRECTION('',(-1.,0.,0.)); +#44669=DIRECTION('',(0.,0.,-1.)); +#44670=DIRECTION('',(-1.,0.,0.)); +#44671=DIRECTION('',(0.,0.,1.)); +#44672=DIRECTION('',(0.,0.,-1.)); +#44673=DIRECTION('',(0.,0.,-1.)); +#44674=DIRECTION('',(-1.,0.,0.)); +#44675=DIRECTION('',(0.,0.,-1.)); +#44676=DIRECTION('',(1.,0.,0.)); +#44677=DIRECTION('',(0.,0.,-1.)); +#44678=DIRECTION('',(0.,0.,-1.)); +#44679=DIRECTION('',(0.,0.,-1.)); +#44680=DIRECTION('',(0.,0.,-1.)); +#44681=DIRECTION('',(-1.,0.,0.)); +#44682=DIRECTION('',(0.,0.,-1.)); +#44683=DIRECTION('',(-1.,0.,0.)); +#44684=DIRECTION('',(0.,0.,-1.)); +#44685=DIRECTION('',(-1.,0.,0.)); +#44686=DIRECTION('',(0.,0.,1.)); +#44687=DIRECTION('',(0.,0.,-1.)); +#44688=DIRECTION('',(0.,0.,-1.)); +#44689=DIRECTION('',(-1.,0.,0.)); +#44690=DIRECTION('',(0.,0.,-1.)); +#44691=DIRECTION('',(-1.,0.,0.)); +#44692=DIRECTION('',(0.,0.,-1.)); +#44693=DIRECTION('',(-1.,0.,0.)); +#44694=DIRECTION('',(0.,0.,-1.)); +#44695=DIRECTION('',(0.,0.,-1.)); +#44696=DIRECTION('',(1.,0.,0.)); +#44697=DIRECTION('',(0.,0.,-1.)); +#44698=DIRECTION('',(0.,0.,-1.)); +#44699=DIRECTION('',(0.,0.,-1.)); +#44700=DIRECTION('',(-1.,0.,0.)); +#44701=DIRECTION('',(0.,0.,-1.)); +#44702=DIRECTION('',(0.866025403784439,-0.5,0.)); +#44703=DIRECTION('',(0.5,0.866025403784439,0.)); +#44704=DIRECTION('',(0.,0.,-1.)); +#44705=DIRECTION('',(0.,0.,-1.)); +#44706=DIRECTION('',(-1.,0.,0.)); +#44707=DIRECTION('',(0.,0.,-1.)); +#44708=DIRECTION('',(1.,0.,0.)); +#44709=DIRECTION('',(0.,0.,-1.)); +#44710=DIRECTION('',(-1.,0.,0.)); +#44711=DIRECTION('',(0.,0.,1.)); +#44712=DIRECTION('',(0.,0.,-1.)); +#44713=DIRECTION('',(0.,0.,-1.)); +#44714=DIRECTION('',(-1.,0.,0.)); +#44715=DIRECTION('',(0.,0.,-1.)); +#44716=DIRECTION('',(-0.866025403784437,-0.500000000000003,0.)); +#44717=DIRECTION('',(0.500000000000003,-0.866025403784437,0.)); +#44718=DIRECTION('',(0.,0.,-1.)); +#44719=DIRECTION('',(0.,0.,-1.)); +#44720=DIRECTION('',(-1.,0.,0.)); +#44721=DIRECTION('',(0.,0.,-1.)); +#44722=DIRECTION('',(-1.,0.,0.)); +#44723=DIRECTION('',(0.,0.,1.)); +#44724=DIRECTION('',(0.,0.,-1.)); +#44725=DIRECTION('',(0.,0.,-1.)); +#44726=DIRECTION('',(-1.,0.,0.)); +#44727=DIRECTION('',(0.,0.,-1.)); +#44728=DIRECTION('',(1.,0.,0.)); +#44729=DIRECTION('',(0.,0.,-1.)); +#44730=DIRECTION('',(0.,0.,-1.)); +#44731=DIRECTION('',(0.,0.,-1.)); +#44732=DIRECTION('',(0.,0.,-1.)); +#44733=DIRECTION('',(-1.,0.,0.)); +#44734=DIRECTION('',(0.,0.,-1.)); +#44735=DIRECTION('',(-1.,0.,0.)); +#44736=DIRECTION('',(0.,0.,-1.)); +#44737=DIRECTION('',(-1.,0.,0.)); +#44738=DIRECTION('',(0.,0.,1.)); +#44739=DIRECTION('',(0.,0.,-1.)); +#44740=DIRECTION('',(0.,0.,-1.)); +#44741=DIRECTION('',(-1.,0.,0.)); +#44742=DIRECTION('',(0.,0.,-1.)); +#44743=DIRECTION('',(-1.,0.,0.)); +#44744=DIRECTION('',(0.,0.,-1.)); +#44745=DIRECTION('',(-1.,0.,0.)); +#44746=DIRECTION('',(0.,0.,-1.)); +#44747=DIRECTION('',(0.,0.,-1.)); +#44748=DIRECTION('',(1.,0.,0.)); +#44749=DIRECTION('',(0.,0.,-1.)); +#44750=DIRECTION('',(0.,0.,-1.)); +#44751=DIRECTION('',(0.,0.,-1.)); +#44752=DIRECTION('',(-1.,0.,0.)); +#44753=DIRECTION('',(0.,0.,-1.)); +#44754=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#44755=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#44756=DIRECTION('',(0.,0.,-1.)); +#44757=DIRECTION('',(0.,0.,-1.)); +#44758=DIRECTION('',(-1.,0.,0.)); +#44759=DIRECTION('',(0.,0.,-1.)); +#44760=DIRECTION('',(1.,0.,0.)); +#44761=DIRECTION('',(0.,0.,-1.)); +#44762=DIRECTION('',(-1.,0.,0.)); +#44763=DIRECTION('',(0.,0.,1.)); +#44764=DIRECTION('',(0.,0.,-1.)); +#44765=DIRECTION('',(0.,0.,-1.)); +#44766=DIRECTION('',(-1.,0.,0.)); +#44767=DIRECTION('',(0.,0.,-1.)); +#44768=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44769=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44770=DIRECTION('',(0.,0.,-1.)); +#44771=DIRECTION('',(0.,0.,-1.)); +#44772=DIRECTION('',(-1.,0.,0.)); +#44773=DIRECTION('',(0.,0.,-1.)); +#44774=DIRECTION('',(-1.,0.,0.)); +#44775=DIRECTION('',(0.,0.,1.)); +#44776=DIRECTION('',(0.,0.,-1.)); +#44777=DIRECTION('',(0.,0.,-1.)); +#44778=DIRECTION('',(-1.,0.,0.)); +#44779=DIRECTION('',(0.,0.,-1.)); +#44780=DIRECTION('',(1.,0.,0.)); +#44781=DIRECTION('',(0.,0.,-1.)); +#44782=DIRECTION('',(0.,0.,-1.)); +#44783=DIRECTION('',(0.,0.,-1.)); +#44784=DIRECTION('',(0.,0.,-1.)); +#44785=DIRECTION('',(-1.,0.,0.)); +#44786=DIRECTION('',(0.,0.,-1.)); +#44787=DIRECTION('',(-1.,0.,0.)); +#44788=DIRECTION('',(0.,0.,-1.)); +#44789=DIRECTION('',(-1.,0.,0.)); +#44790=DIRECTION('',(0.,0.,1.)); +#44791=DIRECTION('',(0.,0.,-1.)); +#44792=DIRECTION('',(0.,0.,-1.)); +#44793=DIRECTION('',(-1.,0.,0.)); +#44794=DIRECTION('',(0.,0.,-1.)); +#44795=DIRECTION('',(-1.,0.,0.)); +#44796=DIRECTION('',(0.,0.,-1.)); +#44797=DIRECTION('',(-1.,0.,0.)); +#44798=DIRECTION('',(0.,0.,-1.)); +#44799=DIRECTION('',(0.,0.,-1.)); +#44800=DIRECTION('',(1.,0.,0.)); +#44801=DIRECTION('',(0.,0.,-1.)); +#44802=DIRECTION('',(0.,0.,-1.)); +#44803=DIRECTION('',(0.,0.,-1.)); +#44804=DIRECTION('',(-1.,0.,0.)); +#44805=DIRECTION('',(0.,0.,-1.)); +#44806=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); +#44807=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#44808=DIRECTION('',(0.,0.,-1.)); +#44809=DIRECTION('',(0.,0.,-1.)); +#44810=DIRECTION('',(-1.,0.,0.)); +#44811=DIRECTION('',(0.,0.,-1.)); +#44812=DIRECTION('',(1.,0.,0.)); +#44813=DIRECTION('',(0.,0.,-1.)); +#44814=DIRECTION('',(-1.,0.,0.)); +#44815=DIRECTION('',(0.,0.,1.)); +#44816=DIRECTION('',(0.,0.,-1.)); +#44817=DIRECTION('',(0.,0.,-1.)); +#44818=DIRECTION('',(-1.,0.,0.)); +#44819=DIRECTION('',(0.,0.,-1.)); +#44820=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44821=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44822=DIRECTION('',(0.,0.,-1.)); +#44823=DIRECTION('',(0.,0.,-1.)); +#44824=DIRECTION('',(-1.,0.,0.)); +#44825=DIRECTION('',(0.,0.,-1.)); +#44826=DIRECTION('',(-1.,0.,0.)); +#44827=DIRECTION('',(0.,0.,1.)); +#44828=DIRECTION('',(0.,0.,-1.)); +#44829=DIRECTION('',(0.,0.,-1.)); +#44830=DIRECTION('',(-1.,0.,0.)); +#44831=DIRECTION('',(0.,0.,-1.)); +#44832=DIRECTION('',(1.,0.,0.)); +#44833=DIRECTION('',(0.,0.,-1.)); +#44834=DIRECTION('',(0.,0.,-1.)); +#44835=DIRECTION('',(0.,0.,-1.)); +#44836=DIRECTION('',(0.,0.,-1.)); +#44837=DIRECTION('',(-1.,0.,0.)); +#44838=DIRECTION('',(0.,0.,-1.)); +#44839=DIRECTION('',(-1.,0.,0.)); +#44840=DIRECTION('',(0.,0.,-1.)); +#44841=DIRECTION('',(-1.,0.,0.)); +#44842=DIRECTION('',(0.,0.,1.)); +#44843=DIRECTION('',(0.,0.,-1.)); +#44844=DIRECTION('',(0.,0.,-1.)); +#44845=DIRECTION('',(-1.,0.,0.)); +#44846=DIRECTION('',(0.,0.,-1.)); +#44847=DIRECTION('',(-1.,0.,0.)); +#44848=DIRECTION('',(0.,0.,-1.)); +#44849=DIRECTION('',(-1.,0.,0.)); +#44850=DIRECTION('',(0.,0.,-1.)); +#44851=DIRECTION('',(0.,0.,-1.)); +#44852=DIRECTION('',(1.,0.,0.)); +#44853=DIRECTION('',(0.,0.,-1.)); +#44854=DIRECTION('',(0.,0.,-1.)); +#44855=DIRECTION('',(0.,0.,-1.)); +#44856=DIRECTION('',(-1.,0.,0.)); +#44857=DIRECTION('',(0.,0.,-1.)); +#44858=DIRECTION('',(0.86602540378444,-0.499999999999998,0.)); +#44859=DIRECTION('',(0.499999999999998,0.86602540378444,0.)); +#44860=DIRECTION('',(0.,0.,-1.)); +#44861=DIRECTION('',(0.,0.,-1.)); +#44862=DIRECTION('',(-1.,0.,0.)); +#44863=DIRECTION('',(0.,0.,-1.)); +#44864=DIRECTION('',(1.,0.,0.)); +#44865=DIRECTION('',(0.,0.,-1.)); +#44866=DIRECTION('',(-1.,0.,0.)); +#44867=DIRECTION('',(0.,0.,1.)); +#44868=DIRECTION('',(0.,0.,-1.)); +#44869=DIRECTION('',(0.,0.,-1.)); +#44870=DIRECTION('',(-1.,0.,0.)); +#44871=DIRECTION('',(0.,0.,-1.)); +#44872=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44873=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44874=DIRECTION('',(0.,0.,-1.)); +#44875=DIRECTION('',(0.,0.,-1.)); +#44876=DIRECTION('',(-1.,0.,0.)); +#44877=DIRECTION('',(0.,0.,-1.)); +#44878=DIRECTION('',(-1.,0.,0.)); +#44879=DIRECTION('',(0.,0.,1.)); +#44880=DIRECTION('',(0.,0.,-1.)); +#44881=DIRECTION('',(0.,0.,-1.)); +#44882=DIRECTION('',(-1.,0.,0.)); +#44883=DIRECTION('',(0.,0.,-1.)); +#44884=DIRECTION('',(1.,0.,0.)); +#44885=DIRECTION('',(0.,0.,-1.)); +#44886=DIRECTION('',(0.,0.,-1.)); +#44887=DIRECTION('',(0.,0.,-1.)); +#44888=DIRECTION('',(0.,0.,-1.)); +#44889=DIRECTION('',(-1.,0.,0.)); +#44890=DIRECTION('',(0.,0.,-1.)); +#44891=DIRECTION('',(-1.,0.,0.)); +#44892=DIRECTION('',(0.,0.,-1.)); +#44893=DIRECTION('',(-1.,0.,0.)); +#44894=DIRECTION('',(0.,0.,1.)); +#44895=DIRECTION('',(0.,0.,-1.)); +#44896=DIRECTION('',(0.,0.,-1.)); +#44897=DIRECTION('',(-1.,0.,0.)); +#44898=DIRECTION('',(0.,0.,-1.)); +#44899=DIRECTION('',(-1.,0.,0.)); +#44900=DIRECTION('',(0.,0.,-1.)); +#44901=DIRECTION('',(-1.,0.,0.)); +#44902=DIRECTION('',(0.,0.,-1.)); +#44903=DIRECTION('',(0.,0.,-1.)); +#44904=DIRECTION('',(1.,0.,0.)); +#44905=DIRECTION('',(0.,0.,-1.)); +#44906=DIRECTION('',(0.,0.,-1.)); +#44907=DIRECTION('',(0.,0.,-1.)); +#44908=DIRECTION('',(-1.,0.,0.)); +#44909=DIRECTION('',(0.,0.,-1.)); +#44910=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#44911=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#44912=DIRECTION('',(0.,0.,-1.)); +#44913=DIRECTION('',(0.,0.,-1.)); +#44914=DIRECTION('',(-1.,0.,0.)); +#44915=DIRECTION('',(0.,0.,-1.)); +#44916=DIRECTION('',(1.,0.,0.)); +#44917=DIRECTION('',(0.,0.,-1.)); +#44918=DIRECTION('',(-1.,0.,0.)); +#44919=DIRECTION('',(0.,0.,1.)); +#44920=DIRECTION('',(0.,0.,-1.)); +#44921=DIRECTION('',(0.,0.,-1.)); +#44922=DIRECTION('',(-1.,0.,0.)); +#44923=DIRECTION('',(0.,0.,-1.)); +#44924=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44925=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44926=DIRECTION('',(0.,0.,-1.)); +#44927=DIRECTION('',(0.,0.,-1.)); +#44928=DIRECTION('',(-1.,0.,0.)); +#44929=DIRECTION('',(0.,0.,-1.)); +#44930=DIRECTION('',(-1.,0.,0.)); +#44931=DIRECTION('',(0.,0.,1.)); +#44932=DIRECTION('',(0.,0.,-1.)); +#44933=DIRECTION('',(0.,0.,-1.)); +#44934=DIRECTION('',(-1.,0.,0.)); +#44935=DIRECTION('',(0.,0.,-1.)); +#44936=DIRECTION('',(1.,0.,0.)); +#44937=DIRECTION('',(0.,0.,-1.)); +#44938=DIRECTION('',(0.,0.,-1.)); +#44939=DIRECTION('',(0.,0.,-1.)); +#44940=DIRECTION('',(0.,0.,-1.)); +#44941=DIRECTION('',(-1.,0.,0.)); +#44942=DIRECTION('',(0.,0.,-1.)); +#44943=DIRECTION('',(-1.,0.,0.)); +#44944=DIRECTION('',(0.,0.,-1.)); +#44945=DIRECTION('',(-1.,0.,0.)); +#44946=DIRECTION('',(0.,0.,1.)); +#44947=DIRECTION('',(0.,0.,-1.)); +#44948=DIRECTION('',(0.,0.,-1.)); +#44949=DIRECTION('',(-1.,0.,0.)); +#44950=DIRECTION('',(0.,0.,-1.)); +#44951=DIRECTION('',(-1.,0.,0.)); +#44952=DIRECTION('',(0.,0.,-1.)); +#44953=DIRECTION('',(-1.,0.,0.)); +#44954=DIRECTION('',(0.,0.,-1.)); +#44955=DIRECTION('',(0.,0.,-1.)); +#44956=DIRECTION('',(1.,0.,0.)); +#44957=DIRECTION('',(0.,0.,-1.)); +#44958=DIRECTION('',(0.,0.,-1.)); +#44959=DIRECTION('',(0.,0.,-1.)); +#44960=DIRECTION('',(-1.,0.,0.)); +#44961=DIRECTION('',(0.,0.,-1.)); +#44962=DIRECTION('',(0.866025403784442,-0.499999999999995,0.)); +#44963=DIRECTION('',(0.499999999999995,0.866025403784442,0.)); +#44964=DIRECTION('',(0.,0.,-1.)); +#44965=DIRECTION('',(0.,0.,-1.)); +#44966=DIRECTION('',(-1.,0.,0.)); +#44967=DIRECTION('',(0.,0.,-1.)); +#44968=DIRECTION('',(1.,0.,0.)); +#44969=DIRECTION('',(0.,0.,-1.)); +#44970=DIRECTION('',(-1.,0.,0.)); +#44971=DIRECTION('',(0.,0.,1.)); +#44972=DIRECTION('',(0.,0.,-1.)); +#44973=DIRECTION('',(0.,0.,-1.)); +#44974=DIRECTION('',(-1.,0.,0.)); +#44975=DIRECTION('',(0.,0.,-1.)); +#44976=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#44977=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#44978=DIRECTION('',(0.,0.,-1.)); +#44979=DIRECTION('',(0.,0.,-1.)); +#44980=DIRECTION('',(-1.,0.,0.)); +#44981=DIRECTION('',(0.,0.,-1.)); +#44982=DIRECTION('',(-1.,0.,0.)); +#44983=DIRECTION('',(0.,0.,1.)); +#44984=DIRECTION('',(0.,0.,-1.)); +#44985=DIRECTION('',(0.,0.,-1.)); +#44986=DIRECTION('',(-1.,0.,0.)); +#44987=DIRECTION('',(0.,0.,-1.)); +#44988=DIRECTION('',(1.,0.,0.)); +#44989=DIRECTION('',(0.,0.,-1.)); +#44990=DIRECTION('',(0.,0.,-1.)); +#44991=DIRECTION('',(0.,0.,-1.)); +#44992=DIRECTION('',(0.,0.,-1.)); +#44993=DIRECTION('',(-1.,0.,0.)); +#44994=DIRECTION('',(0.,0.,-1.)); +#44995=DIRECTION('',(-1.,0.,0.)); +#44996=DIRECTION('',(0.,0.,-1.)); +#44997=DIRECTION('',(-1.,0.,0.)); +#44998=DIRECTION('',(0.,0.,1.)); +#44999=DIRECTION('',(0.,0.,-1.)); +#45000=DIRECTION('',(0.,0.,-1.)); +#45001=DIRECTION('',(-1.,0.,0.)); +#45002=DIRECTION('',(0.,0.,-1.)); +#45003=DIRECTION('',(-1.,0.,0.)); +#45004=DIRECTION('',(0.,0.,-1.)); +#45005=DIRECTION('',(-1.,0.,0.)); +#45006=DIRECTION('',(0.,0.,-1.)); +#45007=DIRECTION('',(0.,0.,-1.)); +#45008=DIRECTION('',(1.,0.,0.)); +#45009=DIRECTION('',(0.,0.,-1.)); +#45010=DIRECTION('',(0.,0.,-1.)); +#45011=DIRECTION('',(0.,0.,-1.)); +#45012=DIRECTION('',(-1.,0.,0.)); +#45013=DIRECTION('',(0.,0.,-1.)); +#45014=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#45015=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#45016=DIRECTION('',(0.,0.,-1.)); +#45017=DIRECTION('',(0.,0.,-1.)); +#45018=DIRECTION('',(-1.,0.,0.)); +#45019=DIRECTION('',(0.,0.,-1.)); +#45020=DIRECTION('',(1.,0.,0.)); +#45021=DIRECTION('',(0.,0.,-1.)); +#45022=DIRECTION('',(-1.,0.,0.)); +#45023=DIRECTION('',(0.,0.,1.)); +#45024=DIRECTION('',(0.,0.,-1.)); +#45025=DIRECTION('',(0.,0.,-1.)); +#45026=DIRECTION('',(-1.,0.,0.)); +#45027=DIRECTION('',(0.,0.,-1.)); +#45028=DIRECTION('',(-0.86602540378444,-0.499999999999998,0.)); +#45029=DIRECTION('',(0.499999999999998,-0.86602540378444,0.)); +#45030=DIRECTION('',(0.,0.,-1.)); +#45031=DIRECTION('',(0.,0.,-1.)); +#45032=DIRECTION('',(-1.,0.,0.)); +#45033=DIRECTION('',(0.,0.,-1.)); +#45034=DIRECTION('',(-1.,0.,0.)); +#45035=DIRECTION('',(0.,0.,1.)); +#45036=DIRECTION('',(0.,0.,-1.)); +#45037=DIRECTION('',(0.,0.,-1.)); +#45038=DIRECTION('',(-1.,0.,0.)); +#45039=DIRECTION('',(0.,0.,-1.)); +#45040=DIRECTION('',(1.,0.,0.)); +#45041=DIRECTION('',(0.,0.,-1.)); +#45042=DIRECTION('',(0.,0.,-1.)); +#45043=DIRECTION('',(0.,0.,-1.)); +#45044=DIRECTION('',(0.,0.,-1.)); +#45045=DIRECTION('',(-1.,0.,0.)); +#45046=DIRECTION('',(0.,0.,-1.)); +#45047=DIRECTION('',(-1.,0.,0.)); +#45048=DIRECTION('',(0.,0.,-1.)); +#45049=DIRECTION('',(-1.,0.,0.)); +#45050=DIRECTION('',(0.,0.,1.)); +#45051=DIRECTION('',(0.,0.,-1.)); +#45052=DIRECTION('',(0.,0.,-1.)); +#45053=DIRECTION('',(-1.,0.,0.)); +#45054=DIRECTION('',(0.,0.,-1.)); +#45055=DIRECTION('',(-1.,0.,0.)); +#45056=DIRECTION('',(0.,0.,-1.)); +#45057=DIRECTION('',(-1.,0.,0.)); +#45058=DIRECTION('',(0.,0.,-1.)); +#45059=DIRECTION('',(0.,0.,-1.)); +#45060=DIRECTION('',(1.,0.,0.)); +#45061=DIRECTION('',(0.,0.,-1.)); +#45062=DIRECTION('',(0.,0.,-1.)); +#45063=DIRECTION('',(0.,0.,-1.)); +#45064=DIRECTION('',(-1.,0.,0.)); +#45065=DIRECTION('',(0.,0.,-1.)); +#45066=DIRECTION('',(0.866025403784438,-0.500000000000002,0.)); +#45067=DIRECTION('',(0.500000000000002,0.866025403784438,0.)); +#45068=DIRECTION('',(0.,0.,-1.)); +#45069=DIRECTION('',(0.,0.,-1.)); +#45070=DIRECTION('',(-1.,0.,0.)); +#45071=DIRECTION('',(0.,0.,-1.)); +#45072=DIRECTION('',(1.,0.,0.)); +#45073=DIRECTION('',(0.,0.,-1.)); +#45074=DIRECTION('',(-1.,2.91944582425155E-16,0.)); +#45075=DIRECTION('',(-2.91944582425155E-16,-1.,0.)); +#45076=DIRECTION('',(0.,0.,-1.)); +#45077=DIRECTION('',(0.,0.,-1.)); +#45078=DIRECTION('',(-1.,0.,0.)); +#45079=DIRECTION('',(0.,0.,-1.)); +#45080=DIRECTION('',(-0.866025403784436,-0.500000000000005,0.)); +#45081=DIRECTION('',(0.500000000000005,-0.866025403784436,0.)); +#45082=DIRECTION('',(0.,0.,-1.)); +#45083=DIRECTION('',(0.,0.,-1.)); +#45084=DIRECTION('',(-1.,0.,0.)); +#45085=DIRECTION('',(0.,0.,-1.)); +#45086=DIRECTION('',(-1.,0.,0.)); +#45087=DIRECTION('',(0.,0.,1.)); +#45088=DIRECTION('',(0.,0.,-1.)); +#45089=DIRECTION('',(0.,0.,-1.)); +#45090=DIRECTION('',(-1.,0.,0.)); +#45091=DIRECTION('',(0.,0.,-1.)); +#45092=DIRECTION('',(1.,0.,0.)); +#45093=DIRECTION('',(0.,0.,-1.)); +#45094=DIRECTION('',(0.,0.,-1.)); +#45095=DIRECTION('',(0.,0.,-1.)); +#45096=DIRECTION('',(0.,0.,-1.)); +#45097=DIRECTION('',(-1.,0.,0.)); +#45098=DIRECTION('',(0.,0.,-1.)); +#45099=DIRECTION('',(-1.,0.,0.)); +#45100=DIRECTION('',(0.,0.,-1.)); +#45101=DIRECTION('',(-1.,0.,0.)); +#45102=DIRECTION('',(0.,0.,1.)); +#45103=DIRECTION('',(0.,0.,-1.)); +#45104=DIRECTION('',(0.,0.,-1.)); +#45105=DIRECTION('',(-1.,0.,0.)); +#45106=DIRECTION('',(0.,0.,-1.)); +#45107=DIRECTION('',(-1.,0.,0.)); +#45108=DIRECTION('',(0.,1.,0.)); +#45109=DIRECTION('',(0.,0.,1.)); +#45110=DIRECTION('',(0.,1.,0.)); +#45111=DIRECTION('',(0.,0.,1.)); +#45112=DIRECTION('',(0.,-1.,0.)); +#45113=DIRECTION('',(0.,0.,-1.)); +#45114=DIRECTION('',(0.,0.,1.)); +#45115=DIRECTION('',(1.,0.,0.)); +#45116=CARTESIAN_POINT('',(0.,0.,0.)); +#45117=CARTESIAN_POINT('',(11.,4.405,2.8)); +#45118=CARTESIAN_POINT('',(11.,4.405,2.5)); +#45119=CARTESIAN_POINT('',(11.,1.6,2.5)); +#45120=CARTESIAN_POINT('',(11.,0.,2.5)); +#45121=CARTESIAN_POINT('',(11.,1.6,2.8)); +#45122=CARTESIAN_POINT('',(11.,1.6,1.)); +#45123=CARTESIAN_POINT('',(11.,4.405,1.)); +#45124=CARTESIAN_POINT('',(11.,4.405,1.)); +#45125=CARTESIAN_POINT('',(11.,4.405,2.8)); +#45126=CARTESIAN_POINT('',(11.,4.405,2.8)); +#45127=CARTESIAN_POINT('',(11.,4.405,2.8)); +#45128=CARTESIAN_POINT('',(11.,0.,2.8)); +#45129=CARTESIAN_POINT('',(11.,0.,2.8)); +#45130=CARTESIAN_POINT('',(10.9,4.405,1.)); +#45131=CARTESIAN_POINT('',(10.9,4.405,0.9)); +#45132=CARTESIAN_POINT('',(10.9,0.,0.9)); +#45133=CARTESIAN_POINT('',(10.9,1.6,0.899999999999999)); +#45134=CARTESIAN_POINT('',(10.9,0.,1.)); +#45135=CARTESIAN_POINT('',(10.9,0.,-1.)); +#45136=CARTESIAN_POINT('',(10.9,4.405,-1.)); +#45137=CARTESIAN_POINT('',(10.9,4.405,-1.)); +#45138=CARTESIAN_POINT('',(10.9,4.405,1.)); +#45139=CARTESIAN_POINT('',(10.9,4.405,1.)); +#45140=CARTESIAN_POINT('',(10.9,4.405,1.)); +#45141=CARTESIAN_POINT('',(10.9,1.6,1.)); +#45142=CARTESIAN_POINT('',(10.9,1.6,1.)); +#45143=CARTESIAN_POINT('',(0.,0.,0.)); +#45144=CARTESIAN_POINT('',(10.8,0.,2.5)); +#45145=CARTESIAN_POINT('',(10.8,0.,2.5)); +#45146=CARTESIAN_POINT('',(-11.,0.,2.8)); +#45147=CARTESIAN_POINT('',(8.6,0.,2.8)); +#45148=CARTESIAN_POINT('',(8.6,0.,0.)); +#45149=CARTESIAN_POINT('',(8.6,0.,2.5)); +#45150=CARTESIAN_POINT('',(0.,0.,2.5)); +#45151=CARTESIAN_POINT('',(7.65,0.,2.5)); +#45152=CARTESIAN_POINT('',(7.65,0.,2.1)); +#45153=CARTESIAN_POINT('',(7.65,0.,2.1)); +#45154=CARTESIAN_POINT('',(-7.65,0.,2.1)); +#45155=CARTESIAN_POINT('',(-7.65,0.,2.1)); +#45156=CARTESIAN_POINT('',(-7.65,0.,2.1)); +#45157=CARTESIAN_POINT('',(-7.65,0.,2.5)); +#45158=CARTESIAN_POINT('',(0.,0.,2.5)); +#45159=CARTESIAN_POINT('',(-8.6,0.,2.5)); +#45160=CARTESIAN_POINT('',(-8.6,0.,0.)); +#45161=CARTESIAN_POINT('',(-8.6,0.,2.8)); +#45162=CARTESIAN_POINT('',(-11.,0.,2.8)); +#45163=CARTESIAN_POINT('',(-11.,0.,2.8)); +#45164=CARTESIAN_POINT('',(-11.,0.,-1.3)); +#45165=CARTESIAN_POINT('',(-11.,0.,2.5)); +#45166=CARTESIAN_POINT('',(-12.,0.,2.5)); +#45167=CARTESIAN_POINT('',(-10.8,0.,2.5)); +#45168=CARTESIAN_POINT('',(-10.8,0.,2.3)); +#45169=CARTESIAN_POINT('',(-10.6,0.,2.3)); +#45170=CARTESIAN_POINT('',(-10.6,0.,2.3)); +#45171=CARTESIAN_POINT('',(-10.6,0.,1.1)); +#45172=CARTESIAN_POINT('',(-10.8,0.,1.1)); +#45173=CARTESIAN_POINT('',(-10.8,0.,0.899999999999999)); +#45174=CARTESIAN_POINT('',(-10.8,0.,0.9)); +#45175=CARTESIAN_POINT('',(-11.,0.,0.9)); +#45176=CARTESIAN_POINT('',(-11.,0.,-1.3)); +#45177=CARTESIAN_POINT('',(-11.,0.,-1.3)); +#45178=CARTESIAN_POINT('',(-9.5,0.,-2.8)); +#45179=CARTESIAN_POINT('',(-9.5,0.,-2.8)); +#45180=CARTESIAN_POINT('',(11.,0.,-2.8)); +#45181=CARTESIAN_POINT('',(-8.9,0.,-2.8)); +#45182=CARTESIAN_POINT('',(-8.9,0.,0.)); +#45183=CARTESIAN_POINT('',(-8.9,0.,-2.5)); +#45184=CARTESIAN_POINT('',(0.,0.,-2.5)); +#45185=CARTESIAN_POINT('',(-7.65,0.,-2.5)); +#45186=CARTESIAN_POINT('',(-7.65,0.,-2.1)); +#45187=CARTESIAN_POINT('',(-7.65,0.,-2.1)); +#45188=CARTESIAN_POINT('',(-7.65,0.,-2.1)); +#45189=CARTESIAN_POINT('',(7.65,0.,-2.1)); +#45190=CARTESIAN_POINT('',(7.65,0.,-2.1)); +#45191=CARTESIAN_POINT('',(7.65,0.,-2.5)); +#45192=CARTESIAN_POINT('',(0.,0.,-2.5)); +#45193=CARTESIAN_POINT('',(8.9,0.,-2.5)); +#45194=CARTESIAN_POINT('',(8.9,0.,0.)); +#45195=CARTESIAN_POINT('',(8.9,0.,-2.8)); +#45196=CARTESIAN_POINT('',(11.,0.,-2.8)); +#45197=CARTESIAN_POINT('',(11.,0.,-2.8)); +#45198=CARTESIAN_POINT('',(11.,0.,-1.)); +#45199=CARTESIAN_POINT('',(11.,0.,-1.)); +#45200=CARTESIAN_POINT('',(10.9,0.,-1.)); +#45201=CARTESIAN_POINT('',(12.,0.,0.9)); +#45202=CARTESIAN_POINT('',(10.8,0.,0.9)); +#45203=CARTESIAN_POINT('',(10.8,0.,1.1)); +#45204=CARTESIAN_POINT('',(10.6,0.,1.1)); +#45205=CARTESIAN_POINT('',(10.6,0.,1.1)); +#45206=CARTESIAN_POINT('',(10.6,0.,2.3)); +#45207=CARTESIAN_POINT('',(10.8,0.,2.3)); +#45208=CARTESIAN_POINT('',(-10.3,0.,-1.295)); +#45209=CARTESIAN_POINT('',(-10.3,0.,-1.295)); +#45210=CARTESIAN_POINT('',(-10.3,0.,0.3)); +#45211=CARTESIAN_POINT('',(-10.1,0.,0.3)); +#45212=CARTESIAN_POINT('',(-10.0999998692754,0.,0.499999999999958)); +#45213=CARTESIAN_POINT('',(-10.09999975,0.,0.333334000000012)); +#45214=CARTESIAN_POINT('',(-9.99041113033376,0.,0.458904259200404)); +#45215=CARTESIAN_POINT('',(-9.3,0.,1.25)); +#45216=CARTESIAN_POINT('',(-8.60958887854188,0.,0.458904251454382)); +#45217=CARTESIAN_POINT('',(-8.50000025000005,0.,0.333334000000018)); +#45218=CARTESIAN_POINT('',(-8.5000001306866,0.,0.499999999999956)); +#45219=CARTESIAN_POINT('',(-8.5,0.,0.299999999999997)); +#45220=CARTESIAN_POINT('',(-8.3,0.,0.3)); +#45221=CARTESIAN_POINT('',(-8.3,0.,0.3)); +#45222=CARTESIAN_POINT('',(-8.3,0.,-2.1)); +#45223=CARTESIAN_POINT('',(-8.5,0.,-2.1)); +#45224=CARTESIAN_POINT('',(-8.5,0.,-2.3)); +#45225=CARTESIAN_POINT('',(-8.5,0.,-2.3)); +#45226=CARTESIAN_POINT('',(-9.295,0.,-2.3)); +#45227=CARTESIAN_POINT('',(-9.295,0.,-2.3)); +#45228=CARTESIAN_POINT('',(-9.4,0.,1.04)); +#45229=CARTESIAN_POINT('',(-9.24083426117583,0.,0.918895633503347)); +#45230=CARTESIAN_POINT('',(-9.55916573882417,0.,0.918895633503348)); +#45231=CARTESIAN_POINT('',(-9.55916573882417,0.,0.918895633503348)); +#45232=CARTESIAN_POINT('',(-9.90916573882417,0.,1.37889563350335)); +#45233=CARTESIAN_POINT('',(-9.74999999999999,0.,1.5)); +#45234=CARTESIAN_POINT('',(-9.90916573882417,0.,1.62110436649665)); +#45235=CARTESIAN_POINT('',(-9.90916573882417,0.,1.62110436649665)); +#45236=CARTESIAN_POINT('',(-9.55916573882417,0.,2.08110436649665)); +#45237=CARTESIAN_POINT('',(-9.4,0.,1.96)); +#45238=CARTESIAN_POINT('',(-9.24083426117583,0.,2.08110436649665)); +#45239=CARTESIAN_POINT('',(-9.24083426117583,0.,2.08110436649665)); +#45240=CARTESIAN_POINT('',(-8.89083426117583,0.,1.62110436649665)); +#45241=CARTESIAN_POINT('',(-9.05,0.,1.5)); +#45242=CARTESIAN_POINT('',(-8.89083426117583,0.,1.37889563350335)); +#45243=CARTESIAN_POINT('',(-8.89083426117583,0.,1.37889563350335)); +#45244=CARTESIAN_POINT('',(9.4,0.,1.5)); +#45245=CARTESIAN_POINT('',(9.4,0.,2.16)); +#45246=CARTESIAN_POINT('',(8.5,0.,-1.6)); +#45247=CARTESIAN_POINT('',(8.5,0.,-1.6)); +#45248=CARTESIAN_POINT('',(8.5,0.,-0.2)); +#45249=CARTESIAN_POINT('',(9.,0.,-0.199999999999999)); +#45250=CARTESIAN_POINT('',(9.00000001490116,0.,0.299999999999999)); +#45251=CARTESIAN_POINT('',(9.,0.,0.0499999999999967)); +#45252=CARTESIAN_POINT('',(9.09615384615385,0.,0.28076923076923)); +#45253=CARTESIAN_POINT('',(9.5,0.,1.25)); +#45254=CARTESIAN_POINT('',(9.90384615384615,0.,0.28076923076923)); +#45255=CARTESIAN_POINT('',(10.,0.,0.0500000000000159)); +#45256=CARTESIAN_POINT('',(10.,0.,0.300000000000001)); +#45257=CARTESIAN_POINT('',(10.,0.,-0.200000000000003)); +#45258=CARTESIAN_POINT('',(10.5,0.,-0.2)); +#45259=CARTESIAN_POINT('',(10.5,0.,-0.2)); +#45260=CARTESIAN_POINT('',(10.5,0.,-1.6)); +#45261=CARTESIAN_POINT('',(9.8,0.,-1.6)); +#45262=CARTESIAN_POINT('',(9.8,0.,-2.3)); +#45263=CARTESIAN_POINT('',(9.8,0.,-2.3)); +#45264=CARTESIAN_POINT('',(9.2,0.,-2.3)); +#45265=CARTESIAN_POINT('',(9.2,0.,-1.6)); +#45266=CARTESIAN_POINT('',(-11.,4.405,-1.3)); +#45267=CARTESIAN_POINT('',(-11.,4.405,2.5)); +#45268=CARTESIAN_POINT('',(-11.,1.6,2.5)); +#45269=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45270=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45271=CARTESIAN_POINT('',(-11.,4.405,-1.3)); +#45272=CARTESIAN_POINT('',(-11.,4.405,-1.3)); +#45273=CARTESIAN_POINT('',(-11.,4.405,-1.3)); +#45274=CARTESIAN_POINT('',(-11.,4.405,0.9)); +#45275=CARTESIAN_POINT('',(-11.,1.6,0.9)); +#45276=CARTESIAN_POINT('',(-11.,1.6,-1.3)); +#45277=CARTESIAN_POINT('',(0.,4.405,0.)); +#45278=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45279=CARTESIAN_POINT('',(-7.825,4.405,1.875)); +#45280=CARTESIAN_POINT('',(-7.375,4.405,1.875)); +#45281=CARTESIAN_POINT('',(-7.825,4.405,0.)); +#45282=CARTESIAN_POINT('',(-7.825,4.405,1.625)); +#45283=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45284=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45285=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45286=CARTESIAN_POINT('',(-10.1,4.405,-0.474917)); +#45287=CARTESIAN_POINT('',(-8.949917,4.405,-1.625)); +#45288=CARTESIAN_POINT('',(-8.949917,4.405,-1.625)); +#45289=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45290=CARTESIAN_POINT('',(-7.825,4.405,-1.625)); +#45291=CARTESIAN_POINT('',(-7.825,4.405,0.)); +#45292=CARTESIAN_POINT('',(-7.825,4.405,-1.875)); +#45293=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45294=CARTESIAN_POINT('',(-7.375,4.405,-1.875)); +#45295=CARTESIAN_POINT('',(-7.375,4.405,0.)); +#45296=CARTESIAN_POINT('',(-7.375,4.405,-1.625)); +#45297=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45298=CARTESIAN_POINT('',(-7.025,4.405,-1.625)); +#45299=CARTESIAN_POINT('',(-7.025,4.405,0.)); +#45300=CARTESIAN_POINT('',(-7.025,4.405,-1.875)); +#45301=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45302=CARTESIAN_POINT('',(-6.575,4.405,-1.875)); +#45303=CARTESIAN_POINT('',(-6.575,4.405,0.)); +#45304=CARTESIAN_POINT('',(-6.575,4.405,-1.625)); +#45305=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45306=CARTESIAN_POINT('',(-6.225,4.405,-1.625)); +#45307=CARTESIAN_POINT('',(-6.225,4.405,0.)); +#45308=CARTESIAN_POINT('',(-6.225,4.405,-1.875)); +#45309=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45310=CARTESIAN_POINT('',(-5.775,4.405,-1.875)); +#45311=CARTESIAN_POINT('',(-5.775,4.405,0.)); +#45312=CARTESIAN_POINT('',(-5.775,4.405,-1.625)); +#45313=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45314=CARTESIAN_POINT('',(-5.425,4.405,-1.625)); +#45315=CARTESIAN_POINT('',(-5.425,4.405,0.)); +#45316=CARTESIAN_POINT('',(-5.425,4.405,-1.875)); +#45317=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45318=CARTESIAN_POINT('',(-4.975,4.405,-1.875)); +#45319=CARTESIAN_POINT('',(-4.975,4.405,0.)); +#45320=CARTESIAN_POINT('',(-4.975,4.405,-1.625)); +#45321=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45322=CARTESIAN_POINT('',(-4.625,4.405,-1.625)); +#45323=CARTESIAN_POINT('',(-4.625,4.405,0.)); +#45324=CARTESIAN_POINT('',(-4.625,4.405,-1.875)); +#45325=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45326=CARTESIAN_POINT('',(-4.175,4.405,-1.875)); +#45327=CARTESIAN_POINT('',(-4.175,4.405,0.)); +#45328=CARTESIAN_POINT('',(-4.175,4.405,-1.625)); +#45329=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45330=CARTESIAN_POINT('',(-3.825,4.405,-1.625)); +#45331=CARTESIAN_POINT('',(-3.825,4.405,0.)); +#45332=CARTESIAN_POINT('',(-3.825,4.405,-1.875)); +#45333=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45334=CARTESIAN_POINT('',(-3.375,4.405,-1.875)); +#45335=CARTESIAN_POINT('',(-3.375,4.405,0.)); +#45336=CARTESIAN_POINT('',(-3.375,4.405,-1.625)); +#45337=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45338=CARTESIAN_POINT('',(-3.025,4.405,-1.625)); +#45339=CARTESIAN_POINT('',(-3.025,4.405,0.)); +#45340=CARTESIAN_POINT('',(-3.025,4.405,-1.875)); +#45341=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45342=CARTESIAN_POINT('',(-2.575,4.405,-1.875)); +#45343=CARTESIAN_POINT('',(-2.575,4.405,0.)); +#45344=CARTESIAN_POINT('',(-2.575,4.405,-1.625)); +#45345=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45346=CARTESIAN_POINT('',(-2.225,4.405,-1.625)); +#45347=CARTESIAN_POINT('',(-2.225,4.405,0.)); +#45348=CARTESIAN_POINT('',(-2.225,4.405,-1.875)); +#45349=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45350=CARTESIAN_POINT('',(-1.775,4.405,-1.875)); +#45351=CARTESIAN_POINT('',(-1.775,4.405,0.)); +#45352=CARTESIAN_POINT('',(-1.775,4.405,-1.625)); +#45353=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45354=CARTESIAN_POINT('',(-1.425,4.405,-1.625)); +#45355=CARTESIAN_POINT('',(-1.425,4.405,0.)); +#45356=CARTESIAN_POINT('',(-1.425,4.405,-1.875)); +#45357=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45358=CARTESIAN_POINT('',(-0.975,4.405,-1.875)); +#45359=CARTESIAN_POINT('',(-0.975,4.405,0.)); +#45360=CARTESIAN_POINT('',(-0.975,4.405,-1.625)); +#45361=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45362=CARTESIAN_POINT('',(-0.625,4.405,-1.625)); +#45363=CARTESIAN_POINT('',(-0.625,4.405,0.)); +#45364=CARTESIAN_POINT('',(-0.625,4.405,-1.875)); +#45365=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45366=CARTESIAN_POINT('',(-0.175,4.405,-1.875)); +#45367=CARTESIAN_POINT('',(-0.175,4.405,0.)); +#45368=CARTESIAN_POINT('',(-0.175,4.405,-1.625)); +#45369=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45370=CARTESIAN_POINT('',(0.175,4.405,-1.625)); +#45371=CARTESIAN_POINT('',(0.175,4.405,0.)); +#45372=CARTESIAN_POINT('',(0.175,4.405,-1.875)); +#45373=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45374=CARTESIAN_POINT('',(0.625,4.405,-1.875)); +#45375=CARTESIAN_POINT('',(0.625,4.405,0.)); +#45376=CARTESIAN_POINT('',(0.625,4.405,-1.625)); +#45377=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45378=CARTESIAN_POINT('',(0.975,4.405,-1.625)); +#45379=CARTESIAN_POINT('',(0.975,4.405,0.)); +#45380=CARTESIAN_POINT('',(0.975,4.405,-1.875)); +#45381=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45382=CARTESIAN_POINT('',(1.425,4.405,-1.875)); +#45383=CARTESIAN_POINT('',(1.425,4.405,0.)); +#45384=CARTESIAN_POINT('',(1.425,4.405,-1.625)); +#45385=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45386=CARTESIAN_POINT('',(1.775,4.405,-1.625)); +#45387=CARTESIAN_POINT('',(1.775,4.405,0.)); +#45388=CARTESIAN_POINT('',(1.775,4.405,-1.875)); +#45389=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45390=CARTESIAN_POINT('',(2.225,4.405,-1.875)); +#45391=CARTESIAN_POINT('',(2.225,4.405,0.)); +#45392=CARTESIAN_POINT('',(2.225,4.405,-1.625)); +#45393=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45394=CARTESIAN_POINT('',(2.575,4.405,-1.625)); +#45395=CARTESIAN_POINT('',(2.575,4.405,0.)); +#45396=CARTESIAN_POINT('',(2.575,4.405,-1.875)); +#45397=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45398=CARTESIAN_POINT('',(3.025,4.405,-1.875)); +#45399=CARTESIAN_POINT('',(3.025,4.405,0.)); +#45400=CARTESIAN_POINT('',(3.025,4.405,-1.625)); +#45401=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45402=CARTESIAN_POINT('',(3.375,4.405,-1.625)); +#45403=CARTESIAN_POINT('',(3.375,4.405,0.)); +#45404=CARTESIAN_POINT('',(3.375,4.405,-1.875)); +#45405=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45406=CARTESIAN_POINT('',(3.825,4.405,-1.875)); +#45407=CARTESIAN_POINT('',(3.825,4.405,0.)); +#45408=CARTESIAN_POINT('',(3.825,4.405,-1.625)); +#45409=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45410=CARTESIAN_POINT('',(4.175,4.405,-1.625)); +#45411=CARTESIAN_POINT('',(4.175,4.405,0.)); +#45412=CARTESIAN_POINT('',(4.175,4.405,-1.875)); +#45413=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45414=CARTESIAN_POINT('',(4.625,4.405,-1.875)); +#45415=CARTESIAN_POINT('',(4.625,4.405,0.)); +#45416=CARTESIAN_POINT('',(4.625,4.405,-1.625)); +#45417=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45418=CARTESIAN_POINT('',(4.975,4.405,-1.625)); +#45419=CARTESIAN_POINT('',(4.975,4.405,0.)); +#45420=CARTESIAN_POINT('',(4.975,4.405,-1.875)); +#45421=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45422=CARTESIAN_POINT('',(5.425,4.405,-1.875)); +#45423=CARTESIAN_POINT('',(5.425,4.405,0.)); +#45424=CARTESIAN_POINT('',(5.425,4.405,-1.625)); +#45425=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45426=CARTESIAN_POINT('',(5.775,4.405,-1.625)); +#45427=CARTESIAN_POINT('',(5.775,4.405,0.)); +#45428=CARTESIAN_POINT('',(5.775,4.405,-1.875)); +#45429=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45430=CARTESIAN_POINT('',(6.225,4.405,-1.875)); +#45431=CARTESIAN_POINT('',(6.225,4.405,0.)); +#45432=CARTESIAN_POINT('',(6.225,4.405,-1.625)); +#45433=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45434=CARTESIAN_POINT('',(6.575,4.405,-1.625)); +#45435=CARTESIAN_POINT('',(6.575,4.405,0.)); +#45436=CARTESIAN_POINT('',(6.575,4.405,-1.875)); +#45437=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45438=CARTESIAN_POINT('',(7.025,4.405,-1.875)); +#45439=CARTESIAN_POINT('',(7.025,4.405,0.)); +#45440=CARTESIAN_POINT('',(7.025,4.405,-1.625)); +#45441=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45442=CARTESIAN_POINT('',(7.375,4.405,-1.625)); +#45443=CARTESIAN_POINT('',(7.375,4.405,0.)); +#45444=CARTESIAN_POINT('',(7.375,4.405,-1.875)); +#45445=CARTESIAN_POINT('',(0.,4.405,-1.875)); +#45446=CARTESIAN_POINT('',(7.825,4.405,-1.875)); +#45447=CARTESIAN_POINT('',(7.825,4.405,0.)); +#45448=CARTESIAN_POINT('',(7.825,4.405,-1.625)); +#45449=CARTESIAN_POINT('',(-10.1,4.405,-1.625)); +#45450=CARTESIAN_POINT('',(8.949917,4.405,-1.625)); +#45451=CARTESIAN_POINT('',(10.1,4.405,-0.474917)); +#45452=CARTESIAN_POINT('',(10.1,4.405,-0.474917)); +#45453=CARTESIAN_POINT('',(10.1,4.405,1.625)); +#45454=CARTESIAN_POINT('',(10.1,4.405,1.625)); +#45455=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45456=CARTESIAN_POINT('',(7.825,4.405,1.625)); +#45457=CARTESIAN_POINT('',(7.825,4.405,0.)); +#45458=CARTESIAN_POINT('',(7.825,4.405,1.875)); +#45459=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45460=CARTESIAN_POINT('',(7.375,4.405,1.875)); +#45461=CARTESIAN_POINT('',(7.375,4.405,0.)); +#45462=CARTESIAN_POINT('',(7.375,4.405,1.625)); +#45463=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45464=CARTESIAN_POINT('',(7.025,4.405,1.625)); +#45465=CARTESIAN_POINT('',(7.025,4.405,0.)); +#45466=CARTESIAN_POINT('',(7.025,4.405,1.875)); +#45467=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45468=CARTESIAN_POINT('',(6.575,4.405,1.875)); +#45469=CARTESIAN_POINT('',(6.575,4.405,0.)); +#45470=CARTESIAN_POINT('',(6.575,4.405,1.625)); +#45471=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45472=CARTESIAN_POINT('',(6.225,4.405,1.625)); +#45473=CARTESIAN_POINT('',(6.225,4.405,0.)); +#45474=CARTESIAN_POINT('',(6.225,4.405,1.875)); +#45475=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45476=CARTESIAN_POINT('',(5.775,4.405,1.875)); +#45477=CARTESIAN_POINT('',(5.775,4.405,0.)); +#45478=CARTESIAN_POINT('',(5.775,4.405,1.625)); +#45479=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45480=CARTESIAN_POINT('',(5.425,4.405,1.625)); +#45481=CARTESIAN_POINT('',(5.425,4.405,0.)); +#45482=CARTESIAN_POINT('',(5.425,4.405,1.875)); +#45483=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45484=CARTESIAN_POINT('',(4.975,4.405,1.875)); +#45485=CARTESIAN_POINT('',(4.975,4.405,0.)); +#45486=CARTESIAN_POINT('',(4.975,4.405,1.625)); +#45487=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45488=CARTESIAN_POINT('',(4.625,4.405,1.625)); +#45489=CARTESIAN_POINT('',(4.625,4.405,0.)); +#45490=CARTESIAN_POINT('',(4.625,4.405,1.875)); +#45491=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45492=CARTESIAN_POINT('',(4.175,4.405,1.875)); +#45493=CARTESIAN_POINT('',(4.175,4.405,0.)); +#45494=CARTESIAN_POINT('',(4.175,4.405,1.625)); +#45495=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45496=CARTESIAN_POINT('',(3.825,4.405,1.625)); +#45497=CARTESIAN_POINT('',(3.825,4.405,0.)); +#45498=CARTESIAN_POINT('',(3.825,4.405,1.875)); +#45499=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45500=CARTESIAN_POINT('',(3.375,4.405,1.875)); +#45501=CARTESIAN_POINT('',(3.375,4.405,0.)); +#45502=CARTESIAN_POINT('',(3.375,4.405,1.625)); +#45503=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45504=CARTESIAN_POINT('',(3.025,4.405,1.625)); +#45505=CARTESIAN_POINT('',(3.025,4.405,0.)); +#45506=CARTESIAN_POINT('',(3.025,4.405,1.875)); +#45507=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45508=CARTESIAN_POINT('',(2.575,4.405,1.875)); +#45509=CARTESIAN_POINT('',(2.575,4.405,0.)); +#45510=CARTESIAN_POINT('',(2.575,4.405,1.625)); +#45511=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45512=CARTESIAN_POINT('',(2.225,4.405,1.625)); +#45513=CARTESIAN_POINT('',(2.225,4.405,0.)); +#45514=CARTESIAN_POINT('',(2.225,4.405,1.875)); +#45515=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45516=CARTESIAN_POINT('',(1.775,4.405,1.875)); +#45517=CARTESIAN_POINT('',(1.775,4.405,0.)); +#45518=CARTESIAN_POINT('',(1.775,4.405,1.625)); +#45519=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45520=CARTESIAN_POINT('',(1.425,4.405,1.625)); +#45521=CARTESIAN_POINT('',(1.425,4.405,0.)); +#45522=CARTESIAN_POINT('',(1.425,4.405,1.875)); +#45523=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45524=CARTESIAN_POINT('',(0.975,4.405,1.875)); +#45525=CARTESIAN_POINT('',(0.975,4.405,0.)); +#45526=CARTESIAN_POINT('',(0.975,4.405,1.625)); +#45527=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45528=CARTESIAN_POINT('',(0.625,4.405,1.625)); +#45529=CARTESIAN_POINT('',(0.625,4.405,0.)); +#45530=CARTESIAN_POINT('',(0.625,4.405,1.875)); +#45531=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45532=CARTESIAN_POINT('',(0.175,4.405,1.875)); +#45533=CARTESIAN_POINT('',(0.175,4.405,0.)); +#45534=CARTESIAN_POINT('',(0.175,4.405,1.625)); +#45535=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45536=CARTESIAN_POINT('',(-0.175,4.405,1.625)); +#45537=CARTESIAN_POINT('',(-0.175,4.405,0.)); +#45538=CARTESIAN_POINT('',(-0.175,4.405,1.875)); +#45539=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45540=CARTESIAN_POINT('',(-0.625,4.405,1.875)); +#45541=CARTESIAN_POINT('',(-0.625,4.405,0.)); +#45542=CARTESIAN_POINT('',(-0.625,4.405,1.625)); +#45543=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45544=CARTESIAN_POINT('',(-0.975,4.405,1.625)); +#45545=CARTESIAN_POINT('',(-0.975,4.405,0.)); +#45546=CARTESIAN_POINT('',(-0.975,4.405,1.875)); +#45547=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45548=CARTESIAN_POINT('',(-1.425,4.405,1.875)); +#45549=CARTESIAN_POINT('',(-1.425,4.405,0.)); +#45550=CARTESIAN_POINT('',(-1.425,4.405,1.625)); +#45551=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45552=CARTESIAN_POINT('',(-1.775,4.405,1.625)); +#45553=CARTESIAN_POINT('',(-1.775,4.405,0.)); +#45554=CARTESIAN_POINT('',(-1.775,4.405,1.875)); +#45555=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45556=CARTESIAN_POINT('',(-2.225,4.405,1.875)); +#45557=CARTESIAN_POINT('',(-2.225,4.405,0.)); +#45558=CARTESIAN_POINT('',(-2.225,4.405,1.625)); +#45559=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45560=CARTESIAN_POINT('',(-2.575,4.405,1.625)); +#45561=CARTESIAN_POINT('',(-2.575,4.405,0.)); +#45562=CARTESIAN_POINT('',(-2.575,4.405,1.875)); +#45563=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45564=CARTESIAN_POINT('',(-3.025,4.405,1.875)); +#45565=CARTESIAN_POINT('',(-3.025,4.405,0.)); +#45566=CARTESIAN_POINT('',(-3.025,4.405,1.625)); +#45567=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45568=CARTESIAN_POINT('',(-3.375,4.405,1.625)); +#45569=CARTESIAN_POINT('',(-3.375,4.405,0.)); +#45570=CARTESIAN_POINT('',(-3.375,4.405,1.875)); +#45571=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45572=CARTESIAN_POINT('',(-3.825,4.405,1.875)); +#45573=CARTESIAN_POINT('',(-3.825,4.405,0.)); +#45574=CARTESIAN_POINT('',(-3.825,4.405,1.625)); +#45575=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45576=CARTESIAN_POINT('',(-4.175,4.405,1.625)); +#45577=CARTESIAN_POINT('',(-4.175,4.405,0.)); +#45578=CARTESIAN_POINT('',(-4.175,4.405,1.875)); +#45579=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45580=CARTESIAN_POINT('',(-4.625,4.405,1.875)); +#45581=CARTESIAN_POINT('',(-4.625,4.405,0.)); +#45582=CARTESIAN_POINT('',(-4.625,4.405,1.625)); +#45583=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45584=CARTESIAN_POINT('',(-4.975,4.405,1.625)); +#45585=CARTESIAN_POINT('',(-4.975,4.405,0.)); +#45586=CARTESIAN_POINT('',(-4.975,4.405,1.875)); +#45587=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45588=CARTESIAN_POINT('',(-5.425,4.405,1.875)); +#45589=CARTESIAN_POINT('',(-5.425,4.405,0.)); +#45590=CARTESIAN_POINT('',(-5.425,4.405,1.625)); +#45591=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45592=CARTESIAN_POINT('',(-5.775,4.405,1.625)); +#45593=CARTESIAN_POINT('',(-5.775,4.405,0.)); +#45594=CARTESIAN_POINT('',(-5.775,4.405,1.875)); +#45595=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45596=CARTESIAN_POINT('',(-6.225,4.405,1.875)); +#45597=CARTESIAN_POINT('',(-6.225,4.405,0.)); +#45598=CARTESIAN_POINT('',(-6.225,4.405,1.625)); +#45599=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45600=CARTESIAN_POINT('',(-6.575,4.405,1.625)); +#45601=CARTESIAN_POINT('',(-6.575,4.405,0.)); +#45602=CARTESIAN_POINT('',(-6.575,4.405,1.875)); +#45603=CARTESIAN_POINT('',(0.,4.405,1.875)); +#45604=CARTESIAN_POINT('',(-7.025,4.405,1.875)); +#45605=CARTESIAN_POINT('',(-7.025,4.405,0.)); +#45606=CARTESIAN_POINT('',(-7.025,4.405,1.625)); +#45607=CARTESIAN_POINT('',(-10.1,4.405,1.625)); +#45608=CARTESIAN_POINT('',(-7.375,4.405,1.625)); +#45609=CARTESIAN_POINT('',(-7.375,4.405,0.)); +#45610=CARTESIAN_POINT('',(0.,4.405,-2.7)); +#45611=CARTESIAN_POINT('',(-9.29791666666667,4.405,-2.7)); +#45612=CARTESIAN_POINT('',(-9.14641016285714,4.405,-2.7)); +#45613=CARTESIAN_POINT('',(-9.29791666666667,4.405,0.)); +#45614=CARTESIAN_POINT('',(-9.29791666666667,4.405,-2.8)); +#45615=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45616=CARTESIAN_POINT('',(-9.5,4.405,-2.8)); +#45617=CARTESIAN_POINT('',(-9.5,4.405,-2.8)); +#45618=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45619=CARTESIAN_POINT('',(-7.65,4.405,2.8)); +#45620=CARTESIAN_POINT('',(-7.65,4.405,2.275)); +#45621=CARTESIAN_POINT('',(-7.65,4.405,2.275)); +#45622=CARTESIAN_POINT('',(-6.35,4.405,2.275)); +#45623=CARTESIAN_POINT('',(-6.35,4.405,2.275)); +#45624=CARTESIAN_POINT('',(-6.35,4.405,2.8)); +#45625=CARTESIAN_POINT('',(-6.35,4.405,2.8)); +#45626=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45627=CARTESIAN_POINT('',(-5.65,4.405,2.8)); +#45628=CARTESIAN_POINT('',(-5.65,4.405,2.275)); +#45629=CARTESIAN_POINT('',(-5.65,4.405,2.275)); +#45630=CARTESIAN_POINT('',(-4.35,4.405,2.275)); +#45631=CARTESIAN_POINT('',(-4.35,4.405,2.275)); +#45632=CARTESIAN_POINT('',(-4.35,4.405,2.8)); +#45633=CARTESIAN_POINT('',(-4.35,4.405,2.8)); +#45634=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45635=CARTESIAN_POINT('',(-3.65,4.405,2.8)); +#45636=CARTESIAN_POINT('',(-3.65,4.405,2.275)); +#45637=CARTESIAN_POINT('',(-3.65,4.405,2.275)); +#45638=CARTESIAN_POINT('',(-2.35,4.405,2.275)); +#45639=CARTESIAN_POINT('',(-2.35,4.405,2.275)); +#45640=CARTESIAN_POINT('',(-2.35,4.405,2.8)); +#45641=CARTESIAN_POINT('',(-2.35,4.405,2.8)); +#45642=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45643=CARTESIAN_POINT('',(-1.65,4.405,2.8)); +#45644=CARTESIAN_POINT('',(-1.65,4.405,2.275)); +#45645=CARTESIAN_POINT('',(-1.65,4.405,2.275)); +#45646=CARTESIAN_POINT('',(-0.350000000000001,4.405,2.275)); +#45647=CARTESIAN_POINT('',(-0.350000000000001,4.405,2.275)); +#45648=CARTESIAN_POINT('',(-0.350000000000001,4.405,2.8)); +#45649=CARTESIAN_POINT('',(-0.350000000000001,4.405,2.8)); +#45650=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45651=CARTESIAN_POINT('',(0.35,4.405,2.8)); +#45652=CARTESIAN_POINT('',(0.35,4.405,2.275)); +#45653=CARTESIAN_POINT('',(0.35,4.405,2.275)); +#45654=CARTESIAN_POINT('',(1.65,4.405,2.275)); +#45655=CARTESIAN_POINT('',(1.65,4.405,2.275)); +#45656=CARTESIAN_POINT('',(1.65,4.405,2.8)); +#45657=CARTESIAN_POINT('',(1.65,4.405,2.8)); +#45658=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45659=CARTESIAN_POINT('',(2.35,4.405,2.8)); +#45660=CARTESIAN_POINT('',(2.35,4.405,2.275)); +#45661=CARTESIAN_POINT('',(2.35,4.405,2.275)); +#45662=CARTESIAN_POINT('',(3.65,4.405,2.275)); +#45663=CARTESIAN_POINT('',(3.65,4.405,2.275)); +#45664=CARTESIAN_POINT('',(3.65,4.405,2.8)); +#45665=CARTESIAN_POINT('',(3.65,4.405,2.8)); +#45666=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45667=CARTESIAN_POINT('',(4.35,4.405,2.8)); +#45668=CARTESIAN_POINT('',(4.35,4.405,2.275)); +#45669=CARTESIAN_POINT('',(4.35,4.405,2.275)); +#45670=CARTESIAN_POINT('',(5.65,4.405,2.275)); +#45671=CARTESIAN_POINT('',(5.65,4.405,2.275)); +#45672=CARTESIAN_POINT('',(5.65,4.405,2.8)); +#45673=CARTESIAN_POINT('',(5.65,4.405,2.8)); +#45674=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45675=CARTESIAN_POINT('',(6.35,4.405,2.8)); +#45676=CARTESIAN_POINT('',(6.35,4.405,2.275)); +#45677=CARTESIAN_POINT('',(6.35,4.405,2.275)); +#45678=CARTESIAN_POINT('',(7.65,4.405,2.275)); +#45679=CARTESIAN_POINT('',(7.65,4.405,2.275)); +#45680=CARTESIAN_POINT('',(7.65,4.405,3.275)); +#45681=CARTESIAN_POINT('',(7.65,4.405,2.8)); +#45682=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#45683=CARTESIAN_POINT('',(11.,4.405,1.)); +#45684=CARTESIAN_POINT('',(10.9,4.405,-1.)); +#45685=CARTESIAN_POINT('',(11.,4.405,-1.)); +#45686=CARTESIAN_POINT('',(11.,4.405,-1.)); +#45687=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45688=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45689=CARTESIAN_POINT('',(7.65,4.405,-2.8)); +#45690=CARTESIAN_POINT('',(7.65,4.405,-2.275)); +#45691=CARTESIAN_POINT('',(7.65,4.405,-2.275)); +#45692=CARTESIAN_POINT('',(6.35,4.405,-2.275)); +#45693=CARTESIAN_POINT('',(6.35,4.405,-2.275)); +#45694=CARTESIAN_POINT('',(6.35,4.405,-2.8)); +#45695=CARTESIAN_POINT('',(6.35,4.405,-2.8)); +#45696=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45697=CARTESIAN_POINT('',(5.65,4.405,-2.8)); +#45698=CARTESIAN_POINT('',(5.65,4.405,-2.275)); +#45699=CARTESIAN_POINT('',(5.65,4.405,-2.275)); +#45700=CARTESIAN_POINT('',(4.35,4.405,-2.275)); +#45701=CARTESIAN_POINT('',(4.35,4.405,-2.275)); +#45702=CARTESIAN_POINT('',(4.35,4.405,-2.8)); +#45703=CARTESIAN_POINT('',(4.35,4.405,-2.8)); +#45704=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45705=CARTESIAN_POINT('',(3.65,4.405,-2.8)); +#45706=CARTESIAN_POINT('',(3.65,4.405,-2.275)); +#45707=CARTESIAN_POINT('',(3.65,4.405,-2.275)); +#45708=CARTESIAN_POINT('',(2.35,4.405,-2.275)); +#45709=CARTESIAN_POINT('',(2.35,4.405,-2.275)); +#45710=CARTESIAN_POINT('',(2.35,4.405,-2.8)); +#45711=CARTESIAN_POINT('',(2.35,4.405,-2.8)); +#45712=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45713=CARTESIAN_POINT('',(1.65,4.405,-2.8)); +#45714=CARTESIAN_POINT('',(1.65,4.405,-2.275)); +#45715=CARTESIAN_POINT('',(1.65,4.405,-2.275)); +#45716=CARTESIAN_POINT('',(0.35,4.405,-2.275)); +#45717=CARTESIAN_POINT('',(0.35,4.405,-2.275)); +#45718=CARTESIAN_POINT('',(0.35,4.405,-2.8)); +#45719=CARTESIAN_POINT('',(0.35,4.405,-2.8)); +#45720=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45721=CARTESIAN_POINT('',(-0.350000000000001,4.405,-2.8)); +#45722=CARTESIAN_POINT('',(-0.350000000000001,4.405,-2.275)); +#45723=CARTESIAN_POINT('',(-0.35,4.405,-2.275)); +#45724=CARTESIAN_POINT('',(-1.65,4.405,-2.275)); +#45725=CARTESIAN_POINT('',(-1.65,4.405,-2.275)); +#45726=CARTESIAN_POINT('',(-1.65,4.405,-2.8)); +#45727=CARTESIAN_POINT('',(-1.65,4.405,-2.8)); +#45728=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45729=CARTESIAN_POINT('',(-2.35,4.405,-2.8)); +#45730=CARTESIAN_POINT('',(-2.35,4.405,-2.275)); +#45731=CARTESIAN_POINT('',(-2.35,4.405,-2.275)); +#45732=CARTESIAN_POINT('',(-3.65,4.405,-2.275)); +#45733=CARTESIAN_POINT('',(-3.65,4.405,-2.275)); +#45734=CARTESIAN_POINT('',(-3.65,4.405,-2.8)); +#45735=CARTESIAN_POINT('',(-3.65,4.405,-2.8)); +#45736=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45737=CARTESIAN_POINT('',(-4.35,4.405,-2.8)); +#45738=CARTESIAN_POINT('',(-4.35,4.405,-2.275)); +#45739=CARTESIAN_POINT('',(-4.35,4.405,-2.275)); +#45740=CARTESIAN_POINT('',(-5.65,4.405,-2.275)); +#45741=CARTESIAN_POINT('',(-5.65,4.405,-2.275)); +#45742=CARTESIAN_POINT('',(-5.65,4.405,-2.8)); +#45743=CARTESIAN_POINT('',(-5.65,4.405,-2.8)); +#45744=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45745=CARTESIAN_POINT('',(-6.35,4.405,-2.8)); +#45746=CARTESIAN_POINT('',(-6.35,4.405,-2.275)); +#45747=CARTESIAN_POINT('',(-6.35,4.405,-2.275)); +#45748=CARTESIAN_POINT('',(-7.65,4.405,-2.275)); +#45749=CARTESIAN_POINT('',(-7.65,4.405,-2.275)); +#45750=CARTESIAN_POINT('',(-7.65,4.405,-3.275)); +#45751=CARTESIAN_POINT('',(-7.65,4.405,-2.8)); +#45752=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45753=CARTESIAN_POINT('',(-8.30208333333333,4.405,-2.8)); +#45754=CARTESIAN_POINT('',(-8.30208333333334,4.405,0.)); +#45755=CARTESIAN_POINT('',(-8.30208333333333,4.405,-2.7)); +#45756=CARTESIAN_POINT('',(0.,4.405,-2.7)); +#45757=CARTESIAN_POINT('',(-8.45358983714286,4.405,-2.7)); +#45758=CARTESIAN_POINT('',(-8.8,4.405,-2.1)); +#45759=CARTESIAN_POINT('',(-8.8,4.405,-2.1)); +#45760=CARTESIAN_POINT('',(-9.20414519,4.405,-2.8)); +#45761=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#45762=CARTESIAN_POINT('',(-9.3,4.41,-2.8)); +#45763=CARTESIAN_POINT('',(-8.8,3.21,-2.8)); +#45764=CARTESIAN_POINT('',(-8.8,3.21,-2.8)); +#45765=CARTESIAN_POINT('',(-7.65,4.405,-2.8)); +#45766=CARTESIAN_POINT('',(-7.65,3.,-2.8)); +#45767=CARTESIAN_POINT('',(-6.7,3.,-2.8)); +#45768=CARTESIAN_POINT('',(-8.9,3.,-2.8)); +#45769=CARTESIAN_POINT('',(-8.9,3.,-2.8)); +#45770=CARTESIAN_POINT('',(-9.5,4.405,-2.8)); +#45771=CARTESIAN_POINT('',(7.375,4.16,1.875)); +#45772=CARTESIAN_POINT('',(7.825,4.16,1.875)); +#45773=CARTESIAN_POINT('',(7.825,4.16,1.875)); +#45774=CARTESIAN_POINT('',(7.825,4.16,0.35)); +#45775=CARTESIAN_POINT('',(7.375,4.16,0.35)); +#45776=CARTESIAN_POINT('',(7.375,4.16,0.35)); +#45777=CARTESIAN_POINT('',(7.375,4.16,1.875)); +#45778=CARTESIAN_POINT('',(7.375,4.16,1.875)); +#45779=CARTESIAN_POINT('',(7.375,4.16,1.875)); +#45780=CARTESIAN_POINT('',(7.375,4.16,1.875)); +#45781=CARTESIAN_POINT('',(7.375,4.16,1.875)); +#45782=CARTESIAN_POINT('',(7.375,4.16,-0.35)); +#45783=CARTESIAN_POINT('',(7.375,4.16,-1.875)); +#45784=CARTESIAN_POINT('',(7.375,4.16,-0.35)); +#45785=CARTESIAN_POINT('',(7.825,4.16,-0.35)); +#45786=CARTESIAN_POINT('',(7.825,4.16,1.875)); +#45787=CARTESIAN_POINT('',(7.825,4.16,-1.875)); +#45788=CARTESIAN_POINT('',(7.375,4.16,-1.875)); +#45789=CARTESIAN_POINT('',(7.825,4.16,1.875)); +#45790=CARTESIAN_POINT('',(7.825,7.21,1.89735380184963E-16)); +#45791=CARTESIAN_POINT('',(7.825,7.21,-0.35)); +#45792=CARTESIAN_POINT('',(7.825,7.21,0.35)); +#45793=CARTESIAN_POINT('',(7.825,4.16,0.35)); +#45794=CARTESIAN_POINT('',(7.825,4.16,1.875)); +#45795=CARTESIAN_POINT('',(7.825,-2.7148422399037E-15,1.625)); +#45796=CARTESIAN_POINT('',(7.825,7.605,1.625)); +#45797=CARTESIAN_POINT('',(7.825,7.605,1.625)); +#45798=CARTESIAN_POINT('',(7.825,7.605,-1.625)); +#45799=CARTESIAN_POINT('',(7.825,-2.7148422399037E-15,-1.625)); +#45800=CARTESIAN_POINT('',(7.825,4.16,-1.875)); +#45801=CARTESIAN_POINT('',(7.825,4.16,-0.35)); +#45802=CARTESIAN_POINT('',(7.375,8.41,1.875)); +#45803=CARTESIAN_POINT('',(7.375,8.41,0.35)); +#45804=CARTESIAN_POINT('',(7.375,7.21,0.35)); +#45805=CARTESIAN_POINT('',(7.375,7.21,1.89735380184963E-16)); +#45806=CARTESIAN_POINT('',(7.375,7.21,-0.35)); +#45807=CARTESIAN_POINT('',(7.375,8.41,-0.35)); +#45808=CARTESIAN_POINT('',(7.375,8.41,-1.875)); +#45809=CARTESIAN_POINT('',(7.375,0.,-1.625)); +#45810=CARTESIAN_POINT('',(7.375,7.605,-1.625)); +#45811=CARTESIAN_POINT('',(7.375,7.605,1.625)); +#45812=CARTESIAN_POINT('',(7.375,7.605,1.625)); +#45813=CARTESIAN_POINT('',(7.375,0.,1.625)); +#45814=CARTESIAN_POINT('',(7.375,8.41,1.875)); +#45815=CARTESIAN_POINT('',(6.575,4.16,1.875)); +#45816=CARTESIAN_POINT('',(7.025,4.16,1.875)); +#45817=CARTESIAN_POINT('',(7.025,4.16,1.875)); +#45818=CARTESIAN_POINT('',(7.025,4.16,0.35)); +#45819=CARTESIAN_POINT('',(6.575,4.16,0.35)); +#45820=CARTESIAN_POINT('',(6.575,4.16,0.35)); +#45821=CARTESIAN_POINT('',(6.575,4.16,1.875)); +#45822=CARTESIAN_POINT('',(6.575,4.16,1.875)); +#45823=CARTESIAN_POINT('',(6.575,4.16,1.875)); +#45824=CARTESIAN_POINT('',(6.575,4.16,1.875)); +#45825=CARTESIAN_POINT('',(6.575,4.16,1.875)); +#45826=CARTESIAN_POINT('',(6.575,4.16,-0.35)); +#45827=CARTESIAN_POINT('',(6.575,4.16,-1.875)); +#45828=CARTESIAN_POINT('',(6.575,4.16,-0.35)); +#45829=CARTESIAN_POINT('',(7.025,4.16,-0.35)); +#45830=CARTESIAN_POINT('',(7.025,4.16,1.875)); +#45831=CARTESIAN_POINT('',(7.025,4.16,-1.875)); +#45832=CARTESIAN_POINT('',(6.575,4.16,-1.875)); +#45833=CARTESIAN_POINT('',(7.025,4.16,1.875)); +#45834=CARTESIAN_POINT('',(7.025,7.21,1.89735380184963E-16)); +#45835=CARTESIAN_POINT('',(7.025,7.21,-0.35)); +#45836=CARTESIAN_POINT('',(7.025,7.21,0.35)); +#45837=CARTESIAN_POINT('',(7.025,4.16,0.35)); +#45838=CARTESIAN_POINT('',(7.025,4.16,1.875)); +#45839=CARTESIAN_POINT('',(7.025,0.,1.625)); +#45840=CARTESIAN_POINT('',(7.025,7.605,1.625)); +#45841=CARTESIAN_POINT('',(7.025,7.605,1.625)); +#45842=CARTESIAN_POINT('',(7.025,7.605,-1.625)); +#45843=CARTESIAN_POINT('',(7.025,0.,-1.625)); +#45844=CARTESIAN_POINT('',(7.025,4.16,-1.875)); +#45845=CARTESIAN_POINT('',(7.025,4.16,-0.35)); +#45846=CARTESIAN_POINT('',(6.575,8.41,1.875)); +#45847=CARTESIAN_POINT('',(6.575,8.41,0.35)); +#45848=CARTESIAN_POINT('',(6.575,7.21,0.35)); +#45849=CARTESIAN_POINT('',(6.575,7.21,1.89735380184963E-16)); +#45850=CARTESIAN_POINT('',(6.575,7.21,-0.35)); +#45851=CARTESIAN_POINT('',(6.575,8.41,-0.35)); +#45852=CARTESIAN_POINT('',(6.575,8.41,-1.875)); +#45853=CARTESIAN_POINT('',(6.575,0.,-1.625)); +#45854=CARTESIAN_POINT('',(6.575,7.605,-1.625)); +#45855=CARTESIAN_POINT('',(6.575,7.605,1.625)); +#45856=CARTESIAN_POINT('',(6.575,7.605,1.625)); +#45857=CARTESIAN_POINT('',(6.575,0.,1.625)); +#45858=CARTESIAN_POINT('',(6.575,8.41,1.875)); +#45859=CARTESIAN_POINT('',(5.775,4.16,1.875)); +#45860=CARTESIAN_POINT('',(6.225,4.16,1.875)); +#45861=CARTESIAN_POINT('',(6.225,4.16,1.875)); +#45862=CARTESIAN_POINT('',(6.225,4.16,0.35)); +#45863=CARTESIAN_POINT('',(5.775,4.16,0.35)); +#45864=CARTESIAN_POINT('',(5.775,4.16,0.35)); +#45865=CARTESIAN_POINT('',(5.775,4.16,1.875)); +#45866=CARTESIAN_POINT('',(5.775,4.16,1.875)); +#45867=CARTESIAN_POINT('',(5.775,4.16,1.875)); +#45868=CARTESIAN_POINT('',(5.775,4.16,1.875)); +#45869=CARTESIAN_POINT('',(5.775,4.16,1.875)); +#45870=CARTESIAN_POINT('',(5.775,4.16,-0.35)); +#45871=CARTESIAN_POINT('',(5.775,4.16,-1.875)); +#45872=CARTESIAN_POINT('',(5.775,4.16,-0.35)); +#45873=CARTESIAN_POINT('',(6.225,4.16,-0.35)); +#45874=CARTESIAN_POINT('',(6.225,4.16,1.875)); +#45875=CARTESIAN_POINT('',(6.225,4.16,-1.875)); +#45876=CARTESIAN_POINT('',(5.775,4.16,-1.875)); +#45877=CARTESIAN_POINT('',(6.225,4.16,1.875)); +#45878=CARTESIAN_POINT('',(6.225,7.21,1.89735380184963E-16)); +#45879=CARTESIAN_POINT('',(6.225,7.21,-0.35)); +#45880=CARTESIAN_POINT('',(6.225,7.21,0.35)); +#45881=CARTESIAN_POINT('',(6.225,4.16,0.35)); +#45882=CARTESIAN_POINT('',(6.225,4.16,1.875)); +#45883=CARTESIAN_POINT('',(6.225,0.,1.625)); +#45884=CARTESIAN_POINT('',(6.225,7.605,1.625)); +#45885=CARTESIAN_POINT('',(6.225,7.605,1.625)); +#45886=CARTESIAN_POINT('',(6.225,7.605,-1.625)); +#45887=CARTESIAN_POINT('',(6.225,0.,-1.625)); +#45888=CARTESIAN_POINT('',(6.225,4.16,-1.875)); +#45889=CARTESIAN_POINT('',(6.225,4.16,-0.35)); +#45890=CARTESIAN_POINT('',(5.775,8.41,1.875)); +#45891=CARTESIAN_POINT('',(5.775,8.41,0.35)); +#45892=CARTESIAN_POINT('',(5.775,7.21,0.35)); +#45893=CARTESIAN_POINT('',(5.775,7.21,1.89735380184963E-16)); +#45894=CARTESIAN_POINT('',(5.775,7.21,-0.35)); +#45895=CARTESIAN_POINT('',(5.775,8.41,-0.35)); +#45896=CARTESIAN_POINT('',(5.775,8.41,-1.875)); +#45897=CARTESIAN_POINT('',(5.775,0.,-1.625)); +#45898=CARTESIAN_POINT('',(5.775,7.605,-1.625)); +#45899=CARTESIAN_POINT('',(5.775,7.605,1.625)); +#45900=CARTESIAN_POINT('',(5.775,7.605,1.625)); +#45901=CARTESIAN_POINT('',(5.775,0.,1.625)); +#45902=CARTESIAN_POINT('',(5.775,8.41,1.875)); +#45903=CARTESIAN_POINT('',(4.975,4.16,1.875)); +#45904=CARTESIAN_POINT('',(5.425,4.16,1.875)); +#45905=CARTESIAN_POINT('',(5.425,4.16,1.875)); +#45906=CARTESIAN_POINT('',(5.425,4.16,0.35)); +#45907=CARTESIAN_POINT('',(4.975,4.16,0.35)); +#45908=CARTESIAN_POINT('',(4.975,4.16,0.35)); +#45909=CARTESIAN_POINT('',(4.975,4.16,1.875)); +#45910=CARTESIAN_POINT('',(4.975,4.16,1.875)); +#45911=CARTESIAN_POINT('',(4.975,4.16,1.875)); +#45912=CARTESIAN_POINT('',(4.975,4.16,1.875)); +#45913=CARTESIAN_POINT('',(4.975,4.16,1.875)); +#45914=CARTESIAN_POINT('',(4.975,4.16,-0.35)); +#45915=CARTESIAN_POINT('',(4.975,4.16,-1.875)); +#45916=CARTESIAN_POINT('',(4.975,4.16,-0.35)); +#45917=CARTESIAN_POINT('',(5.425,4.16,-0.35)); +#45918=CARTESIAN_POINT('',(5.425,4.16,1.875)); +#45919=CARTESIAN_POINT('',(5.425,4.16,-1.875)); +#45920=CARTESIAN_POINT('',(4.975,4.16,-1.875)); +#45921=CARTESIAN_POINT('',(5.425,4.16,1.875)); +#45922=CARTESIAN_POINT('',(5.425,7.21,1.89735380184963E-16)); +#45923=CARTESIAN_POINT('',(5.425,7.21,-0.35)); +#45924=CARTESIAN_POINT('',(5.425,7.21,0.35)); +#45925=CARTESIAN_POINT('',(5.425,4.16,0.35)); +#45926=CARTESIAN_POINT('',(5.425,4.16,1.875)); +#45927=CARTESIAN_POINT('',(5.425,0.,1.625)); +#45928=CARTESIAN_POINT('',(5.425,7.605,1.625)); +#45929=CARTESIAN_POINT('',(5.425,7.605,1.625)); +#45930=CARTESIAN_POINT('',(5.425,7.605,-1.625)); +#45931=CARTESIAN_POINT('',(5.425,0.,-1.625)); +#45932=CARTESIAN_POINT('',(5.425,4.16,-1.875)); +#45933=CARTESIAN_POINT('',(5.425,4.16,-0.35)); +#45934=CARTESIAN_POINT('',(4.975,8.41,1.875)); +#45935=CARTESIAN_POINT('',(4.975,8.41,0.35)); +#45936=CARTESIAN_POINT('',(4.975,7.21,0.35)); +#45937=CARTESIAN_POINT('',(4.975,7.21,1.89735380184963E-16)); +#45938=CARTESIAN_POINT('',(4.975,7.21,-0.35)); +#45939=CARTESIAN_POINT('',(4.975,8.41,-0.35)); +#45940=CARTESIAN_POINT('',(4.975,8.41,-1.875)); +#45941=CARTESIAN_POINT('',(4.975,0.,-1.625)); +#45942=CARTESIAN_POINT('',(4.975,7.605,-1.625)); +#45943=CARTESIAN_POINT('',(4.975,7.605,1.625)); +#45944=CARTESIAN_POINT('',(4.975,7.605,1.625)); +#45945=CARTESIAN_POINT('',(4.975,0.,1.625)); +#45946=CARTESIAN_POINT('',(4.975,8.41,1.875)); +#45947=CARTESIAN_POINT('',(4.175,4.16,1.875)); +#45948=CARTESIAN_POINT('',(4.625,4.16,1.875)); +#45949=CARTESIAN_POINT('',(4.625,4.16,1.875)); +#45950=CARTESIAN_POINT('',(4.625,4.16,0.35)); +#45951=CARTESIAN_POINT('',(4.175,4.16,0.35)); +#45952=CARTESIAN_POINT('',(4.175,4.16,0.35)); +#45953=CARTESIAN_POINT('',(4.175,4.16,1.875)); +#45954=CARTESIAN_POINT('',(4.175,4.16,1.875)); +#45955=CARTESIAN_POINT('',(4.175,4.16,1.875)); +#45956=CARTESIAN_POINT('',(4.175,4.16,1.875)); +#45957=CARTESIAN_POINT('',(4.175,4.16,1.875)); +#45958=CARTESIAN_POINT('',(4.175,4.16,-0.35)); +#45959=CARTESIAN_POINT('',(4.175,4.16,-1.875)); +#45960=CARTESIAN_POINT('',(4.175,4.16,-0.35)); +#45961=CARTESIAN_POINT('',(4.625,4.16,-0.35)); +#45962=CARTESIAN_POINT('',(4.625,4.16,1.875)); +#45963=CARTESIAN_POINT('',(4.625,4.16,-1.875)); +#45964=CARTESIAN_POINT('',(4.175,4.16,-1.875)); +#45965=CARTESIAN_POINT('',(4.625,4.16,1.875)); +#45966=CARTESIAN_POINT('',(4.625,7.21,1.89735380184963E-16)); +#45967=CARTESIAN_POINT('',(4.625,7.21,-0.35)); +#45968=CARTESIAN_POINT('',(4.625,7.21,0.35)); +#45969=CARTESIAN_POINT('',(4.625,4.16,0.35)); +#45970=CARTESIAN_POINT('',(4.625,4.16,1.875)); +#45971=CARTESIAN_POINT('',(4.625,0.,1.625)); +#45972=CARTESIAN_POINT('',(4.625,7.605,1.625)); +#45973=CARTESIAN_POINT('',(4.625,7.605,1.625)); +#45974=CARTESIAN_POINT('',(4.625,7.605,-1.625)); +#45975=CARTESIAN_POINT('',(4.625,0.,-1.625)); +#45976=CARTESIAN_POINT('',(4.625,4.16,-1.875)); +#45977=CARTESIAN_POINT('',(4.625,4.16,-0.35)); +#45978=CARTESIAN_POINT('',(4.175,8.41,1.875)); +#45979=CARTESIAN_POINT('',(4.175,8.41,0.35)); +#45980=CARTESIAN_POINT('',(4.175,7.21,0.35)); +#45981=CARTESIAN_POINT('',(4.175,7.21,1.89735380184963E-16)); +#45982=CARTESIAN_POINT('',(4.175,7.21,-0.35)); +#45983=CARTESIAN_POINT('',(4.175,8.41,-0.35)); +#45984=CARTESIAN_POINT('',(4.175,8.41,-1.875)); +#45985=CARTESIAN_POINT('',(4.175,0.,-1.625)); +#45986=CARTESIAN_POINT('',(4.175,7.605,-1.625)); +#45987=CARTESIAN_POINT('',(4.175,7.605,1.625)); +#45988=CARTESIAN_POINT('',(4.175,7.605,1.625)); +#45989=CARTESIAN_POINT('',(4.175,0.,1.625)); +#45990=CARTESIAN_POINT('',(4.175,8.41,1.875)); +#45991=CARTESIAN_POINT('',(3.375,4.16,1.875)); +#45992=CARTESIAN_POINT('',(3.825,4.16,1.875)); +#45993=CARTESIAN_POINT('',(3.825,4.16,1.875)); +#45994=CARTESIAN_POINT('',(3.825,4.16,0.35)); +#45995=CARTESIAN_POINT('',(3.375,4.16,0.35)); +#45996=CARTESIAN_POINT('',(3.375,4.16,0.35)); +#45997=CARTESIAN_POINT('',(3.375,4.16,1.875)); +#45998=CARTESIAN_POINT('',(3.375,4.16,1.875)); +#45999=CARTESIAN_POINT('',(3.375,4.16,1.875)); +#46000=CARTESIAN_POINT('',(3.375,4.16,1.875)); +#46001=CARTESIAN_POINT('',(3.375,4.16,1.875)); +#46002=CARTESIAN_POINT('',(3.375,4.16,-0.35)); +#46003=CARTESIAN_POINT('',(3.375,4.16,-1.875)); +#46004=CARTESIAN_POINT('',(3.375,4.16,-0.35)); +#46005=CARTESIAN_POINT('',(3.825,4.16,-0.35)); +#46006=CARTESIAN_POINT('',(3.825,4.16,1.875)); +#46007=CARTESIAN_POINT('',(3.825,4.16,-1.875)); +#46008=CARTESIAN_POINT('',(3.375,4.16,-1.875)); +#46009=CARTESIAN_POINT('',(3.825,4.16,1.875)); +#46010=CARTESIAN_POINT('',(3.825,7.21,1.89735380184963E-16)); +#46011=CARTESIAN_POINT('',(3.825,7.21,-0.35)); +#46012=CARTESIAN_POINT('',(3.825,7.21,0.35)); +#46013=CARTESIAN_POINT('',(3.825,4.16,0.35)); +#46014=CARTESIAN_POINT('',(3.825,4.16,1.875)); +#46015=CARTESIAN_POINT('',(3.825,0.,1.625)); +#46016=CARTESIAN_POINT('',(3.825,7.605,1.625)); +#46017=CARTESIAN_POINT('',(3.825,7.605,1.625)); +#46018=CARTESIAN_POINT('',(3.825,7.605,-1.625)); +#46019=CARTESIAN_POINT('',(3.825,0.,-1.625)); +#46020=CARTESIAN_POINT('',(3.825,4.16,-1.875)); +#46021=CARTESIAN_POINT('',(3.825,4.16,-0.35)); +#46022=CARTESIAN_POINT('',(3.375,8.41,1.875)); +#46023=CARTESIAN_POINT('',(3.375,8.41,0.35)); +#46024=CARTESIAN_POINT('',(3.375,7.21,0.35)); +#46025=CARTESIAN_POINT('',(3.375,7.21,1.89735380184963E-16)); +#46026=CARTESIAN_POINT('',(3.375,7.21,-0.35)); +#46027=CARTESIAN_POINT('',(3.375,8.41,-0.35)); +#46028=CARTESIAN_POINT('',(3.375,8.41,-1.875)); +#46029=CARTESIAN_POINT('',(3.375,0.,-1.625)); +#46030=CARTESIAN_POINT('',(3.375,7.605,-1.625)); +#46031=CARTESIAN_POINT('',(3.375,7.605,1.625)); +#46032=CARTESIAN_POINT('',(3.375,7.605,1.625)); +#46033=CARTESIAN_POINT('',(3.375,0.,1.625)); +#46034=CARTESIAN_POINT('',(3.375,8.41,1.875)); +#46035=CARTESIAN_POINT('',(2.575,4.16,1.875)); +#46036=CARTESIAN_POINT('',(3.025,4.16,1.875)); +#46037=CARTESIAN_POINT('',(3.025,4.16,1.875)); +#46038=CARTESIAN_POINT('',(3.025,4.16,0.35)); +#46039=CARTESIAN_POINT('',(2.575,4.16,0.35)); +#46040=CARTESIAN_POINT('',(2.575,4.16,0.35)); +#46041=CARTESIAN_POINT('',(2.575,4.16,1.875)); +#46042=CARTESIAN_POINT('',(2.575,4.16,1.875)); +#46043=CARTESIAN_POINT('',(2.575,4.16,1.875)); +#46044=CARTESIAN_POINT('',(2.575,4.16,1.875)); +#46045=CARTESIAN_POINT('',(2.575,4.16,1.875)); +#46046=CARTESIAN_POINT('',(2.575,4.16,-0.35)); +#46047=CARTESIAN_POINT('',(2.575,4.16,-1.875)); +#46048=CARTESIAN_POINT('',(2.575,4.16,-0.35)); +#46049=CARTESIAN_POINT('',(3.025,4.16,-0.35)); +#46050=CARTESIAN_POINT('',(3.025,4.16,1.875)); +#46051=CARTESIAN_POINT('',(3.025,4.16,-1.875)); +#46052=CARTESIAN_POINT('',(2.575,4.16,-1.875)); +#46053=CARTESIAN_POINT('',(3.025,4.16,1.875)); +#46054=CARTESIAN_POINT('',(3.025,7.21,1.89735380184963E-16)); +#46055=CARTESIAN_POINT('',(3.025,7.21,-0.35)); +#46056=CARTESIAN_POINT('',(3.025,7.21,0.35)); +#46057=CARTESIAN_POINT('',(3.025,4.16,0.35)); +#46058=CARTESIAN_POINT('',(3.025,4.16,1.875)); +#46059=CARTESIAN_POINT('',(3.025,0.,1.625)); +#46060=CARTESIAN_POINT('',(3.025,7.605,1.625)); +#46061=CARTESIAN_POINT('',(3.025,7.605,1.625)); +#46062=CARTESIAN_POINT('',(3.025,7.605,-1.625)); +#46063=CARTESIAN_POINT('',(3.025,0.,-1.625)); +#46064=CARTESIAN_POINT('',(3.025,4.16,-1.875)); +#46065=CARTESIAN_POINT('',(3.025,4.16,-0.35)); +#46066=CARTESIAN_POINT('',(2.575,8.41,1.875)); +#46067=CARTESIAN_POINT('',(2.575,8.41,0.35)); +#46068=CARTESIAN_POINT('',(2.575,7.21,0.35)); +#46069=CARTESIAN_POINT('',(2.575,7.21,1.89735380184963E-16)); +#46070=CARTESIAN_POINT('',(2.575,7.21,-0.35)); +#46071=CARTESIAN_POINT('',(2.575,8.41,-0.35)); +#46072=CARTESIAN_POINT('',(2.575,8.41,-1.875)); +#46073=CARTESIAN_POINT('',(2.575,0.,-1.625)); +#46074=CARTESIAN_POINT('',(2.575,7.605,-1.625)); +#46075=CARTESIAN_POINT('',(2.575,7.605,1.625)); +#46076=CARTESIAN_POINT('',(2.575,7.605,1.625)); +#46077=CARTESIAN_POINT('',(2.575,0.,1.625)); +#46078=CARTESIAN_POINT('',(2.575,8.41,1.875)); +#46079=CARTESIAN_POINT('',(1.775,4.16,1.875)); +#46080=CARTESIAN_POINT('',(2.225,4.16,1.875)); +#46081=CARTESIAN_POINT('',(2.225,4.16,1.875)); +#46082=CARTESIAN_POINT('',(2.225,4.16,0.35)); +#46083=CARTESIAN_POINT('',(1.775,4.16,0.35)); +#46084=CARTESIAN_POINT('',(1.775,4.16,0.35)); +#46085=CARTESIAN_POINT('',(1.775,4.16,1.875)); +#46086=CARTESIAN_POINT('',(1.775,4.16,1.875)); +#46087=CARTESIAN_POINT('',(1.775,4.16,1.875)); +#46088=CARTESIAN_POINT('',(1.775,4.16,1.875)); +#46089=CARTESIAN_POINT('',(1.775,4.16,1.875)); +#46090=CARTESIAN_POINT('',(1.775,4.16,-0.35)); +#46091=CARTESIAN_POINT('',(1.775,4.16,-1.875)); +#46092=CARTESIAN_POINT('',(1.775,4.16,-0.35)); +#46093=CARTESIAN_POINT('',(2.225,4.16,-0.35)); +#46094=CARTESIAN_POINT('',(2.225,4.16,1.875)); +#46095=CARTESIAN_POINT('',(2.225,4.16,-1.875)); +#46096=CARTESIAN_POINT('',(1.775,4.16,-1.875)); +#46097=CARTESIAN_POINT('',(2.225,4.16,1.875)); +#46098=CARTESIAN_POINT('',(2.225,7.21,1.89735380184963E-16)); +#46099=CARTESIAN_POINT('',(2.225,7.21,-0.35)); +#46100=CARTESIAN_POINT('',(2.225,7.21,0.35)); +#46101=CARTESIAN_POINT('',(2.225,4.16,0.35)); +#46102=CARTESIAN_POINT('',(2.225,4.16,1.875)); +#46103=CARTESIAN_POINT('',(2.225,0.,1.625)); +#46104=CARTESIAN_POINT('',(2.225,7.605,1.625)); +#46105=CARTESIAN_POINT('',(2.225,7.605,1.625)); +#46106=CARTESIAN_POINT('',(2.225,7.605,-1.625)); +#46107=CARTESIAN_POINT('',(2.225,0.,-1.625)); +#46108=CARTESIAN_POINT('',(2.225,4.16,-1.875)); +#46109=CARTESIAN_POINT('',(2.225,4.16,-0.35)); +#46110=CARTESIAN_POINT('',(1.775,8.41,1.875)); +#46111=CARTESIAN_POINT('',(1.775,8.41,0.35)); +#46112=CARTESIAN_POINT('',(1.775,7.21,0.35)); +#46113=CARTESIAN_POINT('',(1.775,7.21,1.89735380184963E-16)); +#46114=CARTESIAN_POINT('',(1.775,7.21,-0.35)); +#46115=CARTESIAN_POINT('',(1.775,8.41,-0.35)); +#46116=CARTESIAN_POINT('',(1.775,8.41,-1.875)); +#46117=CARTESIAN_POINT('',(1.775,0.,-1.625)); +#46118=CARTESIAN_POINT('',(1.775,7.605,-1.625)); +#46119=CARTESIAN_POINT('',(1.775,7.605,1.625)); +#46120=CARTESIAN_POINT('',(1.775,7.605,1.625)); +#46121=CARTESIAN_POINT('',(1.775,0.,1.625)); +#46122=CARTESIAN_POINT('',(1.775,8.41,1.875)); +#46123=CARTESIAN_POINT('',(0.975,4.16,1.875)); +#46124=CARTESIAN_POINT('',(1.425,4.16,1.875)); +#46125=CARTESIAN_POINT('',(1.425,4.16,1.875)); +#46126=CARTESIAN_POINT('',(1.425,4.16,0.35)); +#46127=CARTESIAN_POINT('',(0.975,4.16,0.35)); +#46128=CARTESIAN_POINT('',(0.975,4.16,0.35)); +#46129=CARTESIAN_POINT('',(0.975,4.16,1.875)); +#46130=CARTESIAN_POINT('',(0.975,4.16,1.875)); +#46131=CARTESIAN_POINT('',(0.975,4.16,1.875)); +#46132=CARTESIAN_POINT('',(0.975,4.16,1.875)); +#46133=CARTESIAN_POINT('',(0.975,4.16,1.875)); +#46134=CARTESIAN_POINT('',(0.975,4.16,-0.35)); +#46135=CARTESIAN_POINT('',(0.975,4.16,-1.875)); +#46136=CARTESIAN_POINT('',(0.975,4.16,-0.35)); +#46137=CARTESIAN_POINT('',(1.425,4.16,-0.35)); +#46138=CARTESIAN_POINT('',(1.425,4.16,1.875)); +#46139=CARTESIAN_POINT('',(1.425,4.16,-1.875)); +#46140=CARTESIAN_POINT('',(0.975,4.16,-1.875)); +#46141=CARTESIAN_POINT('',(1.425,4.16,1.875)); +#46142=CARTESIAN_POINT('',(1.425,7.21,1.89735380184963E-16)); +#46143=CARTESIAN_POINT('',(1.425,7.21,-0.35)); +#46144=CARTESIAN_POINT('',(1.425,7.21,0.35)); +#46145=CARTESIAN_POINT('',(1.425,4.16,0.35)); +#46146=CARTESIAN_POINT('',(1.425,4.16,1.875)); +#46147=CARTESIAN_POINT('',(1.425,0.,1.625)); +#46148=CARTESIAN_POINT('',(1.425,7.605,1.625)); +#46149=CARTESIAN_POINT('',(1.425,7.605,1.625)); +#46150=CARTESIAN_POINT('',(1.425,7.605,-1.625)); +#46151=CARTESIAN_POINT('',(1.425,0.,-1.625)); +#46152=CARTESIAN_POINT('',(1.425,4.16,-1.875)); +#46153=CARTESIAN_POINT('',(1.425,4.16,-0.35)); +#46154=CARTESIAN_POINT('',(0.975,8.41,1.875)); +#46155=CARTESIAN_POINT('',(0.975,8.41,0.35)); +#46156=CARTESIAN_POINT('',(0.975,7.21,0.35)); +#46157=CARTESIAN_POINT('',(0.975,7.21,1.89735380184963E-16)); +#46158=CARTESIAN_POINT('',(0.975,7.21,-0.35)); +#46159=CARTESIAN_POINT('',(0.975,8.41,-0.35)); +#46160=CARTESIAN_POINT('',(0.975,8.41,-1.875)); +#46161=CARTESIAN_POINT('',(0.975,0.,-1.625)); +#46162=CARTESIAN_POINT('',(0.974999999999999,7.605,-1.625)); +#46163=CARTESIAN_POINT('',(0.974999999999999,7.605,1.625)); +#46164=CARTESIAN_POINT('',(0.974999999999999,7.605,1.625)); +#46165=CARTESIAN_POINT('',(0.975,0.,1.625)); +#46166=CARTESIAN_POINT('',(0.975,8.41,1.875)); +#46167=CARTESIAN_POINT('',(0.175,4.16,1.875)); +#46168=CARTESIAN_POINT('',(0.625,4.16,1.875)); +#46169=CARTESIAN_POINT('',(0.625,4.16,1.875)); +#46170=CARTESIAN_POINT('',(0.625,4.16,0.35)); +#46171=CARTESIAN_POINT('',(0.175,4.16,0.35)); +#46172=CARTESIAN_POINT('',(0.175,4.16,0.35)); +#46173=CARTESIAN_POINT('',(0.175,4.16,1.875)); +#46174=CARTESIAN_POINT('',(0.175,4.16,1.875)); +#46175=CARTESIAN_POINT('',(0.175,4.16,1.875)); +#46176=CARTESIAN_POINT('',(0.175,4.16,1.875)); +#46177=CARTESIAN_POINT('',(0.175,4.16,1.875)); +#46178=CARTESIAN_POINT('',(0.175,4.16,-0.35)); +#46179=CARTESIAN_POINT('',(0.175,4.16,-1.875)); +#46180=CARTESIAN_POINT('',(0.175,4.16,-0.35)); +#46181=CARTESIAN_POINT('',(0.625,4.16,-0.35)); +#46182=CARTESIAN_POINT('',(0.625,4.16,1.875)); +#46183=CARTESIAN_POINT('',(0.625,4.16,-1.875)); +#46184=CARTESIAN_POINT('',(0.175,4.16,-1.875)); +#46185=CARTESIAN_POINT('',(0.625,4.16,1.875)); +#46186=CARTESIAN_POINT('',(0.625000000000001,7.21,1.89735380184963E-16)); +#46187=CARTESIAN_POINT('',(0.625000000000001,7.21,-0.35)); +#46188=CARTESIAN_POINT('',(0.625000000000001,7.21,0.35)); +#46189=CARTESIAN_POINT('',(0.625,4.16,0.35)); +#46190=CARTESIAN_POINT('',(0.625,4.16,1.875)); +#46191=CARTESIAN_POINT('',(0.625,0.,1.625)); +#46192=CARTESIAN_POINT('',(0.625,7.605,1.625)); +#46193=CARTESIAN_POINT('',(0.625,7.605,1.625)); +#46194=CARTESIAN_POINT('',(0.625,7.605,-1.625)); +#46195=CARTESIAN_POINT('',(0.625,0.,-1.625)); +#46196=CARTESIAN_POINT('',(0.625,4.16,-1.875)); +#46197=CARTESIAN_POINT('',(0.625,4.16,-0.35)); +#46198=CARTESIAN_POINT('',(0.175,8.41,1.875)); +#46199=CARTESIAN_POINT('',(0.175,8.41,0.35)); +#46200=CARTESIAN_POINT('',(0.175,7.21,0.35)); +#46201=CARTESIAN_POINT('',(0.175,7.21,1.89735380184963E-16)); +#46202=CARTESIAN_POINT('',(0.175,7.21,-0.35)); +#46203=CARTESIAN_POINT('',(0.175,8.41,-0.35)); +#46204=CARTESIAN_POINT('',(0.175,8.41,-1.875)); +#46205=CARTESIAN_POINT('',(0.175,0.,-1.625)); +#46206=CARTESIAN_POINT('',(0.175,7.605,-1.625)); +#46207=CARTESIAN_POINT('',(0.175,7.605,1.625)); +#46208=CARTESIAN_POINT('',(0.175,7.605,1.625)); +#46209=CARTESIAN_POINT('',(0.175,0.,1.625)); +#46210=CARTESIAN_POINT('',(0.175,8.41,1.875)); +#46211=CARTESIAN_POINT('',(-0.625,4.16,1.875)); +#46212=CARTESIAN_POINT('',(-0.175,4.16,1.875)); +#46213=CARTESIAN_POINT('',(-0.175,4.16,1.875)); +#46214=CARTESIAN_POINT('',(-0.175,4.16,0.35)); +#46215=CARTESIAN_POINT('',(-0.625,4.16,0.35)); +#46216=CARTESIAN_POINT('',(-0.625,4.16,0.35)); +#46217=CARTESIAN_POINT('',(-0.625,4.16,1.875)); +#46218=CARTESIAN_POINT('',(-0.625,4.16,1.875)); +#46219=CARTESIAN_POINT('',(-0.625,4.16,1.875)); +#46220=CARTESIAN_POINT('',(-0.625,4.16,1.875)); +#46221=CARTESIAN_POINT('',(-0.625,4.16,1.875)); +#46222=CARTESIAN_POINT('',(-0.625,4.16,-0.35)); +#46223=CARTESIAN_POINT('',(-0.625,4.16,-1.875)); +#46224=CARTESIAN_POINT('',(-0.625,4.16,-0.35)); +#46225=CARTESIAN_POINT('',(-0.175,4.16,-0.35)); +#46226=CARTESIAN_POINT('',(-0.175,4.16,1.875)); +#46227=CARTESIAN_POINT('',(-0.175,4.16,-1.875)); +#46228=CARTESIAN_POINT('',(-0.625,4.16,-1.875)); +#46229=CARTESIAN_POINT('',(-0.175,4.16,1.875)); +#46230=CARTESIAN_POINT('',(-0.175,7.21,1.89735380184963E-16)); +#46231=CARTESIAN_POINT('',(-0.175,7.21,-0.35)); +#46232=CARTESIAN_POINT('',(-0.175,7.21,0.35)); +#46233=CARTESIAN_POINT('',(-0.175,4.16,0.35)); +#46234=CARTESIAN_POINT('',(-0.175,4.16,1.875)); +#46235=CARTESIAN_POINT('',(-0.175,0.,1.625)); +#46236=CARTESIAN_POINT('',(-0.175,7.605,1.625)); +#46237=CARTESIAN_POINT('',(-0.175,7.605,1.625)); +#46238=CARTESIAN_POINT('',(-0.175,7.605,-1.625)); +#46239=CARTESIAN_POINT('',(-0.175,0.,-1.625)); +#46240=CARTESIAN_POINT('',(-0.175,4.16,-1.875)); +#46241=CARTESIAN_POINT('',(-0.175,4.16,-0.35)); +#46242=CARTESIAN_POINT('',(-0.625,8.41,1.875)); +#46243=CARTESIAN_POINT('',(-0.625,8.41,0.35)); +#46244=CARTESIAN_POINT('',(-0.625000000000001,7.21,0.35)); +#46245=CARTESIAN_POINT('',(-0.625000000000001,7.21,1.89735380184963E-16)); +#46246=CARTESIAN_POINT('',(-0.625000000000001,7.21,-0.35)); +#46247=CARTESIAN_POINT('',(-0.625,8.41,-0.35)); +#46248=CARTESIAN_POINT('',(-0.625,8.41,-1.875)); +#46249=CARTESIAN_POINT('',(-0.625,0.,-1.625)); +#46250=CARTESIAN_POINT('',(-0.625000000000001,7.605,-1.625)); +#46251=CARTESIAN_POINT('',(-0.625000000000001,7.605,1.625)); +#46252=CARTESIAN_POINT('',(-0.625000000000001,7.605,1.625)); +#46253=CARTESIAN_POINT('',(-0.625,0.,1.625)); +#46254=CARTESIAN_POINT('',(-0.625,8.41,1.875)); +#46255=CARTESIAN_POINT('',(-1.425,4.16,1.875)); +#46256=CARTESIAN_POINT('',(-0.975,4.16,1.875)); +#46257=CARTESIAN_POINT('',(-0.975,4.16,1.875)); +#46258=CARTESIAN_POINT('',(-0.975,4.16,0.35)); +#46259=CARTESIAN_POINT('',(-1.425,4.16,0.35)); +#46260=CARTESIAN_POINT('',(-1.425,4.16,0.35)); +#46261=CARTESIAN_POINT('',(-1.425,4.16,1.875)); +#46262=CARTESIAN_POINT('',(-1.425,4.16,1.875)); +#46263=CARTESIAN_POINT('',(-1.425,4.16,1.875)); +#46264=CARTESIAN_POINT('',(-1.425,4.16,1.875)); +#46265=CARTESIAN_POINT('',(-1.425,4.16,1.875)); +#46266=CARTESIAN_POINT('',(-1.425,4.16,-0.35)); +#46267=CARTESIAN_POINT('',(-1.425,4.16,-1.875)); +#46268=CARTESIAN_POINT('',(-1.425,4.16,-0.35)); +#46269=CARTESIAN_POINT('',(-0.975,4.16,-0.35)); +#46270=CARTESIAN_POINT('',(-0.975,4.16,1.875)); +#46271=CARTESIAN_POINT('',(-0.975,4.16,-1.875)); +#46272=CARTESIAN_POINT('',(-1.425,4.16,-1.875)); +#46273=CARTESIAN_POINT('',(-0.975,4.16,1.875)); +#46274=CARTESIAN_POINT('',(-0.975,7.21,1.89735380184963E-16)); +#46275=CARTESIAN_POINT('',(-0.975,7.21,-0.35)); +#46276=CARTESIAN_POINT('',(-0.975,7.21,0.35)); +#46277=CARTESIAN_POINT('',(-0.975,4.16,0.35)); +#46278=CARTESIAN_POINT('',(-0.975,4.16,1.875)); +#46279=CARTESIAN_POINT('',(-0.975,0.,1.625)); +#46280=CARTESIAN_POINT('',(-0.975,7.605,1.625)); +#46281=CARTESIAN_POINT('',(-0.975,7.605,1.625)); +#46282=CARTESIAN_POINT('',(-0.975,7.605,-1.625)); +#46283=CARTESIAN_POINT('',(-0.975,0.,-1.625)); +#46284=CARTESIAN_POINT('',(-0.975,4.16,-1.875)); +#46285=CARTESIAN_POINT('',(-0.975,4.16,-0.35)); +#46286=CARTESIAN_POINT('',(-1.425,8.41,1.875)); +#46287=CARTESIAN_POINT('',(-1.425,8.41,0.35)); +#46288=CARTESIAN_POINT('',(-1.425,7.21,0.35)); +#46289=CARTESIAN_POINT('',(-1.425,7.21,1.89735380184963E-16)); +#46290=CARTESIAN_POINT('',(-1.425,7.21,-0.35)); +#46291=CARTESIAN_POINT('',(-1.425,8.41,-0.35)); +#46292=CARTESIAN_POINT('',(-1.425,8.41,-1.875)); +#46293=CARTESIAN_POINT('',(-1.425,0.,-1.625)); +#46294=CARTESIAN_POINT('',(-1.425,7.605,-1.625)); +#46295=CARTESIAN_POINT('',(-1.425,7.605,1.625)); +#46296=CARTESIAN_POINT('',(-1.425,7.605,1.625)); +#46297=CARTESIAN_POINT('',(-1.425,0.,1.625)); +#46298=CARTESIAN_POINT('',(-1.425,8.41,1.875)); +#46299=CARTESIAN_POINT('',(-2.225,4.16,1.875)); +#46300=CARTESIAN_POINT('',(-1.775,4.16,1.875)); +#46301=CARTESIAN_POINT('',(-1.775,4.16,1.875)); +#46302=CARTESIAN_POINT('',(-1.775,4.16,0.35)); +#46303=CARTESIAN_POINT('',(-2.225,4.16,0.35)); +#46304=CARTESIAN_POINT('',(-2.225,4.16,0.35)); +#46305=CARTESIAN_POINT('',(-2.225,4.16,1.875)); +#46306=CARTESIAN_POINT('',(-2.225,4.16,1.875)); +#46307=CARTESIAN_POINT('',(-2.225,4.16,1.875)); +#46308=CARTESIAN_POINT('',(-2.225,4.16,1.875)); +#46309=CARTESIAN_POINT('',(-2.225,4.16,1.875)); +#46310=CARTESIAN_POINT('',(-2.225,4.16,-0.35)); +#46311=CARTESIAN_POINT('',(-2.225,4.16,-1.875)); +#46312=CARTESIAN_POINT('',(-2.225,4.16,-0.35)); +#46313=CARTESIAN_POINT('',(-1.775,4.16,-0.35)); +#46314=CARTESIAN_POINT('',(-1.775,4.16,1.875)); +#46315=CARTESIAN_POINT('',(-1.775,4.16,-1.875)); +#46316=CARTESIAN_POINT('',(-2.225,4.16,-1.875)); +#46317=CARTESIAN_POINT('',(-1.775,4.16,1.875)); +#46318=CARTESIAN_POINT('',(-1.775,7.21,1.89735380184963E-16)); +#46319=CARTESIAN_POINT('',(-1.775,7.21,-0.35)); +#46320=CARTESIAN_POINT('',(-1.775,7.21,0.35)); +#46321=CARTESIAN_POINT('',(-1.775,4.16,0.35)); +#46322=CARTESIAN_POINT('',(-1.775,4.16,1.875)); +#46323=CARTESIAN_POINT('',(-1.775,0.,1.625)); +#46324=CARTESIAN_POINT('',(-1.775,7.605,1.625)); +#46325=CARTESIAN_POINT('',(-1.775,7.605,1.625)); +#46326=CARTESIAN_POINT('',(-1.775,7.605,-1.625)); +#46327=CARTESIAN_POINT('',(-1.775,0.,-1.625)); +#46328=CARTESIAN_POINT('',(-1.775,4.16,-1.875)); +#46329=CARTESIAN_POINT('',(-1.775,4.16,-0.35)); +#46330=CARTESIAN_POINT('',(-2.225,8.41,1.875)); +#46331=CARTESIAN_POINT('',(-2.225,8.41,0.35)); +#46332=CARTESIAN_POINT('',(-2.225,7.21,0.35)); +#46333=CARTESIAN_POINT('',(-2.225,7.21,1.89735380184963E-16)); +#46334=CARTESIAN_POINT('',(-2.225,7.21,-0.35)); +#46335=CARTESIAN_POINT('',(-2.225,8.41,-0.35)); +#46336=CARTESIAN_POINT('',(-2.225,8.41,-1.875)); +#46337=CARTESIAN_POINT('',(-2.225,0.,-1.625)); +#46338=CARTESIAN_POINT('',(-2.225,7.605,-1.625)); +#46339=CARTESIAN_POINT('',(-2.225,7.605,1.625)); +#46340=CARTESIAN_POINT('',(-2.225,7.605,1.625)); +#46341=CARTESIAN_POINT('',(-2.225,0.,1.625)); +#46342=CARTESIAN_POINT('',(-2.225,8.41,1.875)); +#46343=CARTESIAN_POINT('',(-3.025,4.16,1.875)); +#46344=CARTESIAN_POINT('',(-2.575,4.16,1.875)); +#46345=CARTESIAN_POINT('',(-2.575,4.16,1.875)); +#46346=CARTESIAN_POINT('',(-2.575,4.16,0.35)); +#46347=CARTESIAN_POINT('',(-3.025,4.16,0.35)); +#46348=CARTESIAN_POINT('',(-3.025,4.16,0.35)); +#46349=CARTESIAN_POINT('',(-3.025,4.16,1.875)); +#46350=CARTESIAN_POINT('',(-3.025,4.16,1.875)); +#46351=CARTESIAN_POINT('',(-3.025,4.16,1.875)); +#46352=CARTESIAN_POINT('',(-3.025,4.16,1.875)); +#46353=CARTESIAN_POINT('',(-3.025,4.16,1.875)); +#46354=CARTESIAN_POINT('',(-3.025,4.16,-0.35)); +#46355=CARTESIAN_POINT('',(-3.025,4.16,-1.875)); +#46356=CARTESIAN_POINT('',(-3.025,4.16,-0.35)); +#46357=CARTESIAN_POINT('',(-2.575,4.16,-0.35)); +#46358=CARTESIAN_POINT('',(-2.575,4.16,1.875)); +#46359=CARTESIAN_POINT('',(-2.575,4.16,-1.875)); +#46360=CARTESIAN_POINT('',(-3.025,4.16,-1.875)); +#46361=CARTESIAN_POINT('',(-2.575,4.16,1.875)); +#46362=CARTESIAN_POINT('',(-2.575,7.21,1.89735380184963E-16)); +#46363=CARTESIAN_POINT('',(-2.575,7.21,-0.35)); +#46364=CARTESIAN_POINT('',(-2.575,7.21,0.35)); +#46365=CARTESIAN_POINT('',(-2.575,4.16,0.35)); +#46366=CARTESIAN_POINT('',(-2.575,4.16,1.875)); +#46367=CARTESIAN_POINT('',(-2.575,0.,1.625)); +#46368=CARTESIAN_POINT('',(-2.575,7.605,1.625)); +#46369=CARTESIAN_POINT('',(-2.575,7.605,1.625)); +#46370=CARTESIAN_POINT('',(-2.575,7.605,-1.625)); +#46371=CARTESIAN_POINT('',(-2.575,0.,-1.625)); +#46372=CARTESIAN_POINT('',(-2.575,4.16,-1.875)); +#46373=CARTESIAN_POINT('',(-2.575,4.16,-0.35)); +#46374=CARTESIAN_POINT('',(-3.025,8.41,1.875)); +#46375=CARTESIAN_POINT('',(-3.025,8.41,0.35)); +#46376=CARTESIAN_POINT('',(-3.025,7.21,0.35)); +#46377=CARTESIAN_POINT('',(-3.025,7.21,1.89735380184963E-16)); +#46378=CARTESIAN_POINT('',(-3.025,7.21,-0.35)); +#46379=CARTESIAN_POINT('',(-3.025,8.41,-0.35)); +#46380=CARTESIAN_POINT('',(-3.025,8.41,-1.875)); +#46381=CARTESIAN_POINT('',(-3.025,0.,-1.625)); +#46382=CARTESIAN_POINT('',(-3.025,7.605,-1.625)); +#46383=CARTESIAN_POINT('',(-3.025,7.605,1.625)); +#46384=CARTESIAN_POINT('',(-3.025,7.605,1.625)); +#46385=CARTESIAN_POINT('',(-3.025,0.,1.625)); +#46386=CARTESIAN_POINT('',(-3.025,8.41,1.875)); +#46387=CARTESIAN_POINT('',(-3.825,4.16,1.875)); +#46388=CARTESIAN_POINT('',(-3.375,4.16,1.875)); +#46389=CARTESIAN_POINT('',(-3.375,4.16,1.875)); +#46390=CARTESIAN_POINT('',(-3.375,4.16,0.35)); +#46391=CARTESIAN_POINT('',(-3.825,4.16,0.35)); +#46392=CARTESIAN_POINT('',(-3.825,4.16,0.35)); +#46393=CARTESIAN_POINT('',(-3.825,4.16,1.875)); +#46394=CARTESIAN_POINT('',(-3.825,4.16,1.875)); +#46395=CARTESIAN_POINT('',(-3.825,4.16,1.875)); +#46396=CARTESIAN_POINT('',(-3.825,4.16,1.875)); +#46397=CARTESIAN_POINT('',(-3.825,4.16,1.875)); +#46398=CARTESIAN_POINT('',(-3.825,4.16,-0.35)); +#46399=CARTESIAN_POINT('',(-3.825,4.16,-1.875)); +#46400=CARTESIAN_POINT('',(-3.825,4.16,-0.35)); +#46401=CARTESIAN_POINT('',(-3.375,4.16,-0.35)); +#46402=CARTESIAN_POINT('',(-3.375,4.16,1.875)); +#46403=CARTESIAN_POINT('',(-3.375,4.16,-1.875)); +#46404=CARTESIAN_POINT('',(-3.825,4.16,-1.875)); +#46405=CARTESIAN_POINT('',(-3.375,4.16,1.875)); +#46406=CARTESIAN_POINT('',(-3.375,7.21,1.89735380184963E-16)); +#46407=CARTESIAN_POINT('',(-3.375,7.21,-0.35)); +#46408=CARTESIAN_POINT('',(-3.375,7.21,0.35)); +#46409=CARTESIAN_POINT('',(-3.375,4.16,0.35)); +#46410=CARTESIAN_POINT('',(-3.375,4.16,1.875)); +#46411=CARTESIAN_POINT('',(-3.375,0.,1.625)); +#46412=CARTESIAN_POINT('',(-3.375,7.605,1.625)); +#46413=CARTESIAN_POINT('',(-3.375,7.605,1.625)); +#46414=CARTESIAN_POINT('',(-3.375,7.605,-1.625)); +#46415=CARTESIAN_POINT('',(-3.375,0.,-1.625)); +#46416=CARTESIAN_POINT('',(-3.375,4.16,-1.875)); +#46417=CARTESIAN_POINT('',(-3.375,4.16,-0.35)); +#46418=CARTESIAN_POINT('',(-3.825,8.41,1.875)); +#46419=CARTESIAN_POINT('',(-3.825,8.41,0.35)); +#46420=CARTESIAN_POINT('',(-3.825,7.21,0.35)); +#46421=CARTESIAN_POINT('',(-3.825,7.21,1.89735380184963E-16)); +#46422=CARTESIAN_POINT('',(-3.825,7.21,-0.35)); +#46423=CARTESIAN_POINT('',(-3.825,8.41,-0.35)); +#46424=CARTESIAN_POINT('',(-3.825,8.41,-1.875)); +#46425=CARTESIAN_POINT('',(-3.825,0.,-1.625)); +#46426=CARTESIAN_POINT('',(-3.825,7.605,-1.625)); +#46427=CARTESIAN_POINT('',(-3.825,7.605,1.625)); +#46428=CARTESIAN_POINT('',(-3.825,7.605,1.625)); +#46429=CARTESIAN_POINT('',(-3.825,0.,1.625)); +#46430=CARTESIAN_POINT('',(-3.825,8.41,1.875)); +#46431=CARTESIAN_POINT('',(-4.625,4.16,1.875)); +#46432=CARTESIAN_POINT('',(-4.175,4.16,1.875)); +#46433=CARTESIAN_POINT('',(-4.175,4.16,1.875)); +#46434=CARTESIAN_POINT('',(-4.175,4.16,0.35)); +#46435=CARTESIAN_POINT('',(-4.625,4.16,0.35)); +#46436=CARTESIAN_POINT('',(-4.625,4.16,0.35)); +#46437=CARTESIAN_POINT('',(-4.625,4.16,1.875)); +#46438=CARTESIAN_POINT('',(-4.625,4.16,1.875)); +#46439=CARTESIAN_POINT('',(-4.625,4.16,1.875)); +#46440=CARTESIAN_POINT('',(-4.625,4.16,1.875)); +#46441=CARTESIAN_POINT('',(-4.625,4.16,1.875)); +#46442=CARTESIAN_POINT('',(-4.625,4.16,-0.35)); +#46443=CARTESIAN_POINT('',(-4.625,4.16,-1.875)); +#46444=CARTESIAN_POINT('',(-4.625,4.16,-0.35)); +#46445=CARTESIAN_POINT('',(-4.175,4.16,-0.35)); +#46446=CARTESIAN_POINT('',(-4.175,4.16,1.875)); +#46447=CARTESIAN_POINT('',(-4.175,4.16,-1.875)); +#46448=CARTESIAN_POINT('',(-4.625,4.16,-1.875)); +#46449=CARTESIAN_POINT('',(-4.175,4.16,1.875)); +#46450=CARTESIAN_POINT('',(-4.175,7.21,1.89735380184963E-16)); +#46451=CARTESIAN_POINT('',(-4.175,7.21,-0.35)); +#46452=CARTESIAN_POINT('',(-4.175,7.21,0.35)); +#46453=CARTESIAN_POINT('',(-4.175,4.16,0.35)); +#46454=CARTESIAN_POINT('',(-4.175,4.16,1.875)); +#46455=CARTESIAN_POINT('',(-4.175,0.,1.625)); +#46456=CARTESIAN_POINT('',(-4.175,7.605,1.625)); +#46457=CARTESIAN_POINT('',(-4.175,7.605,1.625)); +#46458=CARTESIAN_POINT('',(-4.175,7.605,-1.625)); +#46459=CARTESIAN_POINT('',(-4.175,0.,-1.625)); +#46460=CARTESIAN_POINT('',(-4.175,4.16,-1.875)); +#46461=CARTESIAN_POINT('',(-4.175,4.16,-0.35)); +#46462=CARTESIAN_POINT('',(-4.625,8.41,1.875)); +#46463=CARTESIAN_POINT('',(-4.625,8.41,0.35)); +#46464=CARTESIAN_POINT('',(-4.625,7.21,0.35)); +#46465=CARTESIAN_POINT('',(-4.625,7.21,1.89735380184963E-16)); +#46466=CARTESIAN_POINT('',(-4.625,7.21,-0.35)); +#46467=CARTESIAN_POINT('',(-4.625,8.41,-0.35)); +#46468=CARTESIAN_POINT('',(-4.625,8.41,-1.875)); +#46469=CARTESIAN_POINT('',(-4.625,0.,-1.625)); +#46470=CARTESIAN_POINT('',(-4.625,7.605,-1.625)); +#46471=CARTESIAN_POINT('',(-4.625,7.605,1.625)); +#46472=CARTESIAN_POINT('',(-4.625,7.605,1.625)); +#46473=CARTESIAN_POINT('',(-4.625,0.,1.625)); +#46474=CARTESIAN_POINT('',(-4.625,8.41,1.875)); +#46475=CARTESIAN_POINT('',(-5.425,4.16,1.875)); +#46476=CARTESIAN_POINT('',(-4.975,4.16,1.875)); +#46477=CARTESIAN_POINT('',(-4.975,4.16,1.875)); +#46478=CARTESIAN_POINT('',(-4.975,4.16,0.35)); +#46479=CARTESIAN_POINT('',(-5.425,4.16,0.35)); +#46480=CARTESIAN_POINT('',(-5.425,4.16,0.35)); +#46481=CARTESIAN_POINT('',(-5.425,4.16,1.875)); +#46482=CARTESIAN_POINT('',(-5.425,4.16,1.875)); +#46483=CARTESIAN_POINT('',(-5.425,4.16,1.875)); +#46484=CARTESIAN_POINT('',(-5.425,4.16,1.875)); +#46485=CARTESIAN_POINT('',(-5.425,4.16,1.875)); +#46486=CARTESIAN_POINT('',(-5.425,4.16,-0.35)); +#46487=CARTESIAN_POINT('',(-5.425,4.16,-1.875)); +#46488=CARTESIAN_POINT('',(-5.425,4.16,-0.35)); +#46489=CARTESIAN_POINT('',(-4.975,4.16,-0.35)); +#46490=CARTESIAN_POINT('',(-4.975,4.16,1.875)); +#46491=CARTESIAN_POINT('',(-4.975,4.16,-1.875)); +#46492=CARTESIAN_POINT('',(-5.425,4.16,-1.875)); +#46493=CARTESIAN_POINT('',(-4.975,4.16,1.875)); +#46494=CARTESIAN_POINT('',(-4.975,7.21,1.89735380184963E-16)); +#46495=CARTESIAN_POINT('',(-4.975,7.21,-0.35)); +#46496=CARTESIAN_POINT('',(-4.975,7.21,0.35)); +#46497=CARTESIAN_POINT('',(-4.975,4.16,0.35)); +#46498=CARTESIAN_POINT('',(-4.975,4.16,1.875)); +#46499=CARTESIAN_POINT('',(-4.975,0.,1.625)); +#46500=CARTESIAN_POINT('',(-4.975,7.605,1.625)); +#46501=CARTESIAN_POINT('',(-4.975,7.605,1.625)); +#46502=CARTESIAN_POINT('',(-4.975,7.605,-1.625)); +#46503=CARTESIAN_POINT('',(-4.975,0.,-1.625)); +#46504=CARTESIAN_POINT('',(-4.975,4.16,-1.875)); +#46505=CARTESIAN_POINT('',(-4.975,4.16,-0.35)); +#46506=CARTESIAN_POINT('',(-5.425,8.41,1.875)); +#46507=CARTESIAN_POINT('',(-5.425,8.41,0.35)); +#46508=CARTESIAN_POINT('',(-5.425,7.21,0.35)); +#46509=CARTESIAN_POINT('',(-5.425,7.21,1.89735380184963E-16)); +#46510=CARTESIAN_POINT('',(-5.425,7.21,-0.35)); +#46511=CARTESIAN_POINT('',(-5.425,8.41,-0.35)); +#46512=CARTESIAN_POINT('',(-5.425,8.41,-1.875)); +#46513=CARTESIAN_POINT('',(-5.425,0.,-1.625)); +#46514=CARTESIAN_POINT('',(-5.425,7.605,-1.625)); +#46515=CARTESIAN_POINT('',(-5.425,7.605,1.625)); +#46516=CARTESIAN_POINT('',(-5.425,7.605,1.625)); +#46517=CARTESIAN_POINT('',(-5.425,0.,1.625)); +#46518=CARTESIAN_POINT('',(-5.425,8.41,1.875)); +#46519=CARTESIAN_POINT('',(-6.225,4.16,1.875)); +#46520=CARTESIAN_POINT('',(-5.775,4.16,1.875)); +#46521=CARTESIAN_POINT('',(-5.775,4.16,1.875)); +#46522=CARTESIAN_POINT('',(-5.775,4.16,0.35)); +#46523=CARTESIAN_POINT('',(-6.225,4.16,0.35)); +#46524=CARTESIAN_POINT('',(-6.225,4.16,0.35)); +#46525=CARTESIAN_POINT('',(-6.225,4.16,1.875)); +#46526=CARTESIAN_POINT('',(-6.225,4.16,1.875)); +#46527=CARTESIAN_POINT('',(-6.225,4.16,1.875)); +#46528=CARTESIAN_POINT('',(-6.225,4.16,1.875)); +#46529=CARTESIAN_POINT('',(-6.225,4.16,1.875)); +#46530=CARTESIAN_POINT('',(-6.225,4.16,-0.35)); +#46531=CARTESIAN_POINT('',(-6.225,4.16,-1.875)); +#46532=CARTESIAN_POINT('',(-6.225,4.16,-0.35)); +#46533=CARTESIAN_POINT('',(-5.775,4.16,-0.35)); +#46534=CARTESIAN_POINT('',(-5.775,4.16,1.875)); +#46535=CARTESIAN_POINT('',(-5.775,4.16,-1.875)); +#46536=CARTESIAN_POINT('',(-6.225,4.16,-1.875)); +#46537=CARTESIAN_POINT('',(-5.775,4.16,1.875)); +#46538=CARTESIAN_POINT('',(-5.775,7.21,1.89735380184963E-16)); +#46539=CARTESIAN_POINT('',(-5.775,7.21,-0.35)); +#46540=CARTESIAN_POINT('',(-5.775,7.21,0.35)); +#46541=CARTESIAN_POINT('',(-5.775,4.16,0.35)); +#46542=CARTESIAN_POINT('',(-5.775,4.16,1.875)); +#46543=CARTESIAN_POINT('',(-5.775,0.,1.625)); +#46544=CARTESIAN_POINT('',(-5.775,7.605,1.625)); +#46545=CARTESIAN_POINT('',(-5.775,7.605,1.625)); +#46546=CARTESIAN_POINT('',(-5.775,7.605,-1.625)); +#46547=CARTESIAN_POINT('',(-5.775,0.,-1.625)); +#46548=CARTESIAN_POINT('',(-5.775,4.16,-1.875)); +#46549=CARTESIAN_POINT('',(-5.775,4.16,-0.35)); +#46550=CARTESIAN_POINT('',(-6.225,8.41,1.875)); +#46551=CARTESIAN_POINT('',(-6.225,8.41,0.35)); +#46552=CARTESIAN_POINT('',(-6.225,7.21,0.35)); +#46553=CARTESIAN_POINT('',(-6.225,7.21,1.89735380184963E-16)); +#46554=CARTESIAN_POINT('',(-6.225,7.21,-0.35)); +#46555=CARTESIAN_POINT('',(-6.225,8.41,-0.35)); +#46556=CARTESIAN_POINT('',(-6.225,8.41,-1.875)); +#46557=CARTESIAN_POINT('',(-6.225,0.,-1.625)); +#46558=CARTESIAN_POINT('',(-6.225,7.605,-1.625)); +#46559=CARTESIAN_POINT('',(-6.225,7.605,1.625)); +#46560=CARTESIAN_POINT('',(-6.225,7.605,1.625)); +#46561=CARTESIAN_POINT('',(-6.225,0.,1.625)); +#46562=CARTESIAN_POINT('',(-6.225,8.41,1.875)); +#46563=CARTESIAN_POINT('',(-7.025,4.16,1.875)); +#46564=CARTESIAN_POINT('',(-6.575,4.16,1.875)); +#46565=CARTESIAN_POINT('',(-6.575,4.16,1.875)); +#46566=CARTESIAN_POINT('',(-6.575,4.16,0.35)); +#46567=CARTESIAN_POINT('',(-7.025,4.16,0.35)); +#46568=CARTESIAN_POINT('',(-7.025,4.16,0.35)); +#46569=CARTESIAN_POINT('',(-7.025,4.16,1.875)); +#46570=CARTESIAN_POINT('',(-7.025,4.16,1.875)); +#46571=CARTESIAN_POINT('',(-7.025,4.16,1.875)); +#46572=CARTESIAN_POINT('',(-7.025,4.16,1.875)); +#46573=CARTESIAN_POINT('',(-7.025,4.16,1.875)); +#46574=CARTESIAN_POINT('',(-7.025,4.16,-0.35)); +#46575=CARTESIAN_POINT('',(-7.025,4.16,-1.875)); +#46576=CARTESIAN_POINT('',(-7.025,4.16,-0.35)); +#46577=CARTESIAN_POINT('',(-6.575,4.16,-0.35)); +#46578=CARTESIAN_POINT('',(-6.575,4.16,1.875)); +#46579=CARTESIAN_POINT('',(-6.575,4.16,-1.875)); +#46580=CARTESIAN_POINT('',(-7.025,4.16,-1.875)); +#46581=CARTESIAN_POINT('',(-6.575,4.16,1.875)); +#46582=CARTESIAN_POINT('',(-6.575,7.21,1.89735380184963E-16)); +#46583=CARTESIAN_POINT('',(-6.575,7.21,-0.35)); +#46584=CARTESIAN_POINT('',(-6.575,7.21,0.35)); +#46585=CARTESIAN_POINT('',(-6.575,4.16,0.35)); +#46586=CARTESIAN_POINT('',(-6.575,4.16,1.875)); +#46587=CARTESIAN_POINT('',(-6.575,0.,1.625)); +#46588=CARTESIAN_POINT('',(-6.575,7.605,1.625)); +#46589=CARTESIAN_POINT('',(-6.575,7.605,1.625)); +#46590=CARTESIAN_POINT('',(-6.575,7.605,-1.625)); +#46591=CARTESIAN_POINT('',(-6.575,0.,-1.625)); +#46592=CARTESIAN_POINT('',(-6.575,4.16,-1.875)); +#46593=CARTESIAN_POINT('',(-6.575,4.16,-0.35)); +#46594=CARTESIAN_POINT('',(-7.025,8.41,1.875)); +#46595=CARTESIAN_POINT('',(-7.025,8.41,0.35)); +#46596=CARTESIAN_POINT('',(-7.025,7.21,0.35)); +#46597=CARTESIAN_POINT('',(-7.025,7.21,1.89735380184963E-16)); +#46598=CARTESIAN_POINT('',(-7.025,7.21,-0.35)); +#46599=CARTESIAN_POINT('',(-7.025,8.41,-0.35)); +#46600=CARTESIAN_POINT('',(-7.025,8.41,-1.875)); +#46601=CARTESIAN_POINT('',(-7.025,0.,-1.625)); +#46602=CARTESIAN_POINT('',(-7.025,7.605,-1.625)); +#46603=CARTESIAN_POINT('',(-7.025,7.605,1.625)); +#46604=CARTESIAN_POINT('',(-7.025,7.605,1.625)); +#46605=CARTESIAN_POINT('',(-7.025,0.,1.625)); +#46606=CARTESIAN_POINT('',(-7.025,8.41,1.875)); +#46607=CARTESIAN_POINT('',(-7.825,9.16,1.875)); +#46608=CARTESIAN_POINT('',(-7.825,4.16,1.875)); +#46609=CARTESIAN_POINT('',(-7.825,4.16,1.875)); +#46610=CARTESIAN_POINT('',(-7.825,4.16,0.35)); +#46611=CARTESIAN_POINT('',(-7.825,9.16,0.35)); +#46612=CARTESIAN_POINT('',(-7.825,7.21,0.35)); +#46613=CARTESIAN_POINT('',(-7.825,7.21,1.89735380184963E-16)); +#46614=CARTESIAN_POINT('',(-7.825,7.21,-0.35)); +#46615=CARTESIAN_POINT('',(-7.825,9.16,-0.35)); +#46616=CARTESIAN_POINT('',(-7.825,4.16,-0.35)); +#46617=CARTESIAN_POINT('',(-7.825,4.16,1.875)); +#46618=CARTESIAN_POINT('',(-7.825,4.16,-1.875)); +#46619=CARTESIAN_POINT('',(-7.825,9.16,-1.875)); +#46620=CARTESIAN_POINT('',(-7.825,0.,-1.625)); +#46621=CARTESIAN_POINT('',(-7.825,7.605,-1.625)); +#46622=CARTESIAN_POINT('',(-7.825,7.605,1.625)); +#46623=CARTESIAN_POINT('',(-7.825,7.605,1.625)); +#46624=CARTESIAN_POINT('',(-7.825,0.,1.625)); +#46625=CARTESIAN_POINT('',(-7.825,9.16,1.875)); +#46626=CARTESIAN_POINT('',(-7.825,4.16,1.875)); +#46627=CARTESIAN_POINT('',(-7.375,4.16,1.875)); +#46628=CARTESIAN_POINT('',(-7.375,4.16,1.875)); +#46629=CARTESIAN_POINT('',(-7.375,4.16,0.35)); +#46630=CARTESIAN_POINT('',(-7.825,4.16,0.35)); +#46631=CARTESIAN_POINT('',(-7.825,4.16,1.875)); +#46632=CARTESIAN_POINT('',(-7.825,4.16,1.875)); +#46633=CARTESIAN_POINT('',(-7.825,4.16,-0.35)); +#46634=CARTESIAN_POINT('',(-7.375,4.16,-0.35)); +#46635=CARTESIAN_POINT('',(-7.375,4.16,1.875)); +#46636=CARTESIAN_POINT('',(-7.375,4.16,-1.875)); +#46637=CARTESIAN_POINT('',(-7.825,4.16,-1.875)); +#46638=CARTESIAN_POINT('',(-7.375,4.16,1.875)); +#46639=CARTESIAN_POINT('',(-7.375,7.21,1.89735380184963E-16)); +#46640=CARTESIAN_POINT('',(-7.375,7.21,-0.35)); +#46641=CARTESIAN_POINT('',(-7.375,7.21,0.35)); +#46642=CARTESIAN_POINT('',(-7.375,4.16,0.35)); +#46643=CARTESIAN_POINT('',(-7.375,4.16,1.875)); +#46644=CARTESIAN_POINT('',(-7.375,0.,1.625)); +#46645=CARTESIAN_POINT('',(-7.375,7.605,1.625)); +#46646=CARTESIAN_POINT('',(-7.375,7.605,1.625)); +#46647=CARTESIAN_POINT('',(-7.375,7.605,-1.625)); +#46648=CARTESIAN_POINT('',(-7.375,0.,-1.625)); +#46649=CARTESIAN_POINT('',(-7.375,4.16,-1.875)); +#46650=CARTESIAN_POINT('',(-7.375,4.16,-0.35)); +#46651=CARTESIAN_POINT('',(0.,0.,1.625)); +#46652=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46653=CARTESIAN_POINT('',(-8.36,7.605,1.625)); +#46654=CARTESIAN_POINT('',(-8.36,7.605,1.625)); +#46655=CARTESIAN_POINT('',(-8.46330916546487,7.86327290694758,1.625)); +#46656=CARTESIAN_POINT('',(0.,7.86327290694758,1.625)); +#46657=CARTESIAN_POINT('',(-9.84172709305242,7.86327290694758,1.625)); +#46658=CARTESIAN_POINT('',(-9.,8.705,1.625)); +#46659=CARTESIAN_POINT('',(-10.1,7.605,1.625)); +#46660=CARTESIAN_POINT('',(-10.1,7.605,1.625)); +#46661=CARTESIAN_POINT('',(0.,0.,1.625)); +#46662=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46663=CARTESIAN_POINT('',(0.,0.,1.625)); +#46664=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46665=CARTESIAN_POINT('',(0.,0.,1.625)); +#46666=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46667=CARTESIAN_POINT('',(0.,0.,1.625)); +#46668=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46669=CARTESIAN_POINT('',(0.,0.,1.625)); +#46670=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46671=CARTESIAN_POINT('',(0.,0.,1.625)); +#46672=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46673=CARTESIAN_POINT('',(0.,0.,1.625)); +#46674=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46675=CARTESIAN_POINT('',(0.,0.,1.625)); +#46676=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46677=CARTESIAN_POINT('',(0.,0.,1.625)); +#46678=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46679=CARTESIAN_POINT('',(0.,0.,1.625)); +#46680=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46681=CARTESIAN_POINT('',(0.,0.,1.625)); +#46682=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46683=CARTESIAN_POINT('',(0.,0.,1.625)); +#46684=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46685=CARTESIAN_POINT('',(0.,0.,1.625)); +#46686=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46687=CARTESIAN_POINT('',(0.,0.,1.625)); +#46688=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46689=CARTESIAN_POINT('',(0.,0.,1.625)); +#46690=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46691=CARTESIAN_POINT('',(0.,0.,1.625)); +#46692=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46693=CARTESIAN_POINT('',(0.,0.,1.625)); +#46694=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46695=CARTESIAN_POINT('',(0.,0.,1.625)); +#46696=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46697=CARTESIAN_POINT('',(0.,0.,1.625)); +#46698=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46699=CARTESIAN_POINT('',(0.,0.,1.625)); +#46700=CARTESIAN_POINT('',(10.1,4.405,1.625)); +#46701=CARTESIAN_POINT('',(10.1,7.605,1.625)); +#46702=CARTESIAN_POINT('',(10.1,7.605,1.625)); +#46703=CARTESIAN_POINT('',(9.84172709305242,7.86327290694758,1.625)); +#46704=CARTESIAN_POINT('',(0.,7.86327290694758,1.625)); +#46705=CARTESIAN_POINT('',(8.46330916546487,7.86327290694758,1.625)); +#46706=CARTESIAN_POINT('',(8.80000001143915,8.705,1.625)); +#46707=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46708=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46709=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46710=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46711=CARTESIAN_POINT('',(-8.36,7.605,-1.625)); +#46712=CARTESIAN_POINT('',(-8.949917,0.,-1.625)); +#46713=CARTESIAN_POINT('',(-8.949917,7.86327290694758,-1.625)); +#46714=CARTESIAN_POINT('',(0.,7.86327290694758,-1.625)); +#46715=CARTESIAN_POINT('',(-8.46330916546487,7.86327290694758,-1.625)); +#46716=CARTESIAN_POINT('',(-8.36,7.605,-1.625)); +#46717=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46718=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46719=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46720=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46721=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46722=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46723=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46724=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46725=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46726=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46727=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46728=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46729=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46730=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46731=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46732=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46733=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46734=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46735=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46736=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46737=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46738=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46739=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46740=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46741=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46742=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46743=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46744=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46745=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46746=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46747=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46748=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46749=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46750=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46751=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46752=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46753=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46754=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46755=CARTESIAN_POINT('',(0.,0.,-1.625)); +#46756=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46757=CARTESIAN_POINT('',(8.36,7.605,-1.625)); +#46758=CARTESIAN_POINT('',(8.80000001143915,8.705,-1.625)); +#46759=CARTESIAN_POINT('',(8.46330916546487,7.86327290694758,-1.625)); +#46760=CARTESIAN_POINT('',(0.,7.86327290694758,-1.625)); +#46761=CARTESIAN_POINT('',(8.949917,7.86327290694758,-1.625)); +#46762=CARTESIAN_POINT('',(8.949917,0.,-1.625)); +#46763=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46764=CARTESIAN_POINT('',(-8.36,7.605,1.625)); +#46765=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46766=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46767=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46768=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46769=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46770=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46771=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46772=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46773=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46774=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46775=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46776=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46777=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46778=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46779=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46780=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46781=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46782=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46783=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46784=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46785=CARTESIAN_POINT('',(8.36,7.605,1.625)); +#46786=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#46787=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); +#46788=CARTESIAN_POINT('',(-5.65,2.20924875,-2.8)); +#46789=CARTESIAN_POINT('',(-6.35,2.20924875,-2.8)); +#46790=CARTESIAN_POINT('',(-6.35,-4.5,-2.8)); +#46791=CARTESIAN_POINT('',(-5.65,-4.5,-2.8)); +#46792=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#46793=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); +#46794=CARTESIAN_POINT('',(-3.65,2.20924875,-2.8)); +#46795=CARTESIAN_POINT('',(-4.35,2.20924875,-2.8)); +#46796=CARTESIAN_POINT('',(-4.35,-4.5,-2.8)); +#46797=CARTESIAN_POINT('',(-3.65,-4.5,-2.8)); +#46798=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#46799=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); +#46800=CARTESIAN_POINT('',(-1.65,2.20924875,-2.8)); +#46801=CARTESIAN_POINT('',(-2.35,2.20924875,-2.8)); +#46802=CARTESIAN_POINT('',(-2.35,-4.5,-2.8)); +#46803=CARTESIAN_POINT('',(-1.65,-4.5,-2.8)); +#46804=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#46805=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); +#46806=CARTESIAN_POINT('',(0.35,2.20924875,-2.8)); +#46807=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,-2.8)); +#46808=CARTESIAN_POINT('',(-0.350000000000001,-4.5,-2.8)); +#46809=CARTESIAN_POINT('',(0.35,-4.5,-2.8)); +#46810=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#46811=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); +#46812=CARTESIAN_POINT('',(2.35,2.20924875,-2.8)); +#46813=CARTESIAN_POINT('',(1.65,2.20924875,-2.8)); +#46814=CARTESIAN_POINT('',(1.65,-4.5,-2.8)); +#46815=CARTESIAN_POINT('',(2.35,-4.5,-2.8)); +#46816=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#46817=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); +#46818=CARTESIAN_POINT('',(4.35,2.20924875,-2.8)); +#46819=CARTESIAN_POINT('',(3.65,2.20924875,-2.8)); +#46820=CARTESIAN_POINT('',(3.65,-4.5,-2.8)); +#46821=CARTESIAN_POINT('',(4.35,-4.5,-2.8)); +#46822=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#46823=CARTESIAN_POINT('',(7.65,2.20924875,-2.8)); +#46824=CARTESIAN_POINT('',(6.35,2.20924875,-2.8)); +#46825=CARTESIAN_POINT('',(5.65,2.20924875,-2.8)); +#46826=CARTESIAN_POINT('',(5.65,-4.5,-2.8)); +#46827=CARTESIAN_POINT('',(6.35,-4.5,-2.8)); +#46828=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#46829=CARTESIAN_POINT('',(7.65,4.405,2.8)); +#46830=CARTESIAN_POINT('',(7.65,3.,2.8)); +#46831=CARTESIAN_POINT('',(8.6,3.,2.8)); +#46832=CARTESIAN_POINT('',(8.6,3.,2.8)); +#46833=CARTESIAN_POINT('',(8.6,-1.,2.8)); +#46834=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#46835=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); +#46836=CARTESIAN_POINT('',(6.35,2.20924875,2.8)); +#46837=CARTESIAN_POINT('',(5.65,2.20924875,2.8)); +#46838=CARTESIAN_POINT('',(6.35,-4.5,2.8)); +#46839=CARTESIAN_POINT('',(5.65,-4.5,2.8)); +#46840=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#46841=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); +#46842=CARTESIAN_POINT('',(4.35,2.20924875,2.8)); +#46843=CARTESIAN_POINT('',(3.65,2.20924875,2.8)); +#46844=CARTESIAN_POINT('',(4.35,-4.5,2.8)); +#46845=CARTESIAN_POINT('',(3.65,-4.5,2.8)); +#46846=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#46847=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); +#46848=CARTESIAN_POINT('',(2.35,2.20924875,2.8)); +#46849=CARTESIAN_POINT('',(1.65,2.20924875,2.8)); +#46850=CARTESIAN_POINT('',(2.35,-4.5,2.8)); +#46851=CARTESIAN_POINT('',(1.65,-4.5,2.8)); +#46852=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#46853=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); +#46854=CARTESIAN_POINT('',(0.35,2.20924875,2.8)); +#46855=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,2.8)); +#46856=CARTESIAN_POINT('',(0.35,-4.5,2.8)); +#46857=CARTESIAN_POINT('',(-0.350000000000001,-4.5,2.8)); +#46858=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#46859=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); +#46860=CARTESIAN_POINT('',(-1.65,2.20924875,2.8)); +#46861=CARTESIAN_POINT('',(-2.35,2.20924875,2.8)); +#46862=CARTESIAN_POINT('',(-1.65,-4.5,2.8)); +#46863=CARTESIAN_POINT('',(-2.35,-4.5,2.8)); +#46864=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#46865=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); +#46866=CARTESIAN_POINT('',(-3.65,2.20924875,2.8)); +#46867=CARTESIAN_POINT('',(-4.35,2.20924875,2.8)); +#46868=CARTESIAN_POINT('',(-3.65,-4.5,2.8)); +#46869=CARTESIAN_POINT('',(-4.35,-4.5,2.8)); +#46870=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#46871=CARTESIAN_POINT('',(-6.7,3.,2.8)); +#46872=CARTESIAN_POINT('',(-7.65,3.,2.8)); +#46873=CARTESIAN_POINT('',(-8.6,3.,2.8)); +#46874=CARTESIAN_POINT('',(-7.65,4.405,2.8)); +#46875=CARTESIAN_POINT('',(-8.6,3.,2.8)); +#46876=CARTESIAN_POINT('',(-9.,8.705,1.625)); +#46877=CARTESIAN_POINT('',(-9.27387597760632,8.43112402239368,1.06728900068649)); +#46878=CARTESIAN_POINT('',(-9.,8.705,0.798303625816191)); +#46879=CARTESIAN_POINT('',(-9.,8.705,1.625)); +#46880=CARTESIAN_POINT('',(-9.,8.705,-0.798303625816191)); +#46881=CARTESIAN_POINT('',(-8.19718451624686,9.50781548375314,-0.00982401640909464)); +#46882=CARTESIAN_POINT('',(-9.39180491686576,8.31319508313424,-1.18311208313424)); +#46883=CARTESIAN_POINT('',(-10.066639,7.638361,-0.508277999999999)); +#46884=CARTESIAN_POINT('',(-10.1,7.605,-0.474917)); +#46885=CARTESIAN_POINT('',(-10.1,7.605,1.625)); +#46886=CARTESIAN_POINT('',(10.1,7.605,1.625)); +#46887=CARTESIAN_POINT('',(10.0159647521586,7.68903524784141,1.79612629760673)); +#46888=CARTESIAN_POINT('',(9.,8.705,0.79830362581619)); +#46889=CARTESIAN_POINT('',(10.1,7.605,1.625)); +#46890=CARTESIAN_POINT('',(10.1,7.605,-0.474917)); +#46891=CARTESIAN_POINT('',(10.7999723333333,6.90502766666666,0.225055333333334)); +#46892=CARTESIAN_POINT('',(9.39180491686576,8.31319508313424,-1.18311208313424)); +#46893=CARTESIAN_POINT('',(8.93927329079913,8.76572670920087,-0.738661313329343)); +#46894=CARTESIAN_POINT('',(9.,8.705,-0.79830362581619)); +#46895=CARTESIAN_POINT('',(9.,8.705,1.625)); +#46896=CARTESIAN_POINT('',(9.,8.705,1.625)); +#46897=CARTESIAN_POINT('',(9.,8.705,0.79830362581619)); +#46898=CARTESIAN_POINT('',(8.80000001143915,8.705,0.798303625816191)); +#46899=CARTESIAN_POINT('',(9.,8.705,-0.79830362581619)); +#46900=CARTESIAN_POINT('',(8.80000001143915,8.705,-0.798303625816191)); +#46901=CARTESIAN_POINT('',(8.80000001143915,8.705,1.625)); +#46902=CARTESIAN_POINT('',(8.80000001143915,8.705,1.625)); +#46903=CARTESIAN_POINT('',(8.64713693828071,8.32284232703925,1.17363711004265)); +#46904=CARTESIAN_POINT('',(9.2480891176772,9.8252227364715,0.301915295688308)); +#46905=CARTESIAN_POINT('',(-8.36,7.605,1.625)); +#46906=CARTESIAN_POINT('',(-8.40690402696485,7.72226006436358,1.76349477656089)); +#46907=CARTESIAN_POINT('',(-8.80000001143915,8.705,0.798303625816191)); +#46908=CARTESIAN_POINT('',(-9.00785620636134,9.22464047379582,-0.287942370829941)); +#46909=CARTESIAN_POINT('',(-8.80000001143915,8.705,-0.79830362581619)); +#46910=CARTESIAN_POINT('',(-8.80000001143915,8.705,1.625)); +#46911=CARTESIAN_POINT('',(-8.80000001143915,8.705,1.625)); +#46912=CARTESIAN_POINT('',(-8.80000001143915,8.705,0.79830362581619)); +#46913=CARTESIAN_POINT('',(-8.80000001143915,8.705,-0.79830362581619)); +#46914=CARTESIAN_POINT('',(10.1,13.31,-0.474917)); +#46915=CARTESIAN_POINT('',(11.5336228036462,10.4939547912765,0.958705803646167)); +#46916=CARTESIAN_POINT('',(10.1,13.31,-0.474917)); +#46917=CARTESIAN_POINT('',(-8.949917,13.31,-1.625)); +#46918=CARTESIAN_POINT('',(-10.7761654934405,9.72272564386408,0.201248493440491)); +#46919=CARTESIAN_POINT('',(-10.1,13.31,-0.474917)); +#46920=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#46921=CARTESIAN_POINT('',(8.9,3.,-2.8)); +#46922=CARTESIAN_POINT('',(8.9,3.,-2.8)); +#46923=CARTESIAN_POINT('',(7.65,3.,-2.8)); +#46924=CARTESIAN_POINT('',(7.65,4.405,-2.8)); +#46925=CARTESIAN_POINT('',(11.,4.405,-2.8)); +#46926=CARTESIAN_POINT('',(8.9,-1.,-2.8)); +#46927=CARTESIAN_POINT('',(0.,0.,-2.5)); +#46928=CARTESIAN_POINT('',(7.65,0.,-2.5)); +#46929=CARTESIAN_POINT('',(7.65,3.,-2.5)); +#46930=CARTESIAN_POINT('',(8.9,3.,-2.5)); +#46931=CARTESIAN_POINT('',(8.9,3.,-2.5)); +#46932=CARTESIAN_POINT('',(8.9,-1.,-2.5)); +#46933=CARTESIAN_POINT('',(0.,0.,-2.5)); +#46934=CARTESIAN_POINT('',(-6.7,3.,-2.5)); +#46935=CARTESIAN_POINT('',(-7.65,3.,-2.5)); +#46936=CARTESIAN_POINT('',(-8.9,3.,-2.5)); +#46937=CARTESIAN_POINT('',(-7.65,0.,-2.5)); +#46938=CARTESIAN_POINT('',(-8.9,3.,-2.5)); +#46939=CARTESIAN_POINT('',(-9.5,4.405,-2.8)); +#46940=CARTESIAN_POINT('',(-11.,4.405,2.8)); +#46941=CARTESIAN_POINT('',(7.65,2.20924875,2.8)); +#46942=CARTESIAN_POINT('',(-5.65,2.20924875,2.8)); +#46943=CARTESIAN_POINT('',(-6.35,2.20924875,2.8)); +#46944=CARTESIAN_POINT('',(-5.65,-4.5,2.8)); +#46945=CARTESIAN_POINT('',(-6.35,-4.5,2.8)); +#46946=CARTESIAN_POINT('',(11.,4.405,1.)); +#46947=CARTESIAN_POINT('',(11.,1.6,1.)); +#46948=CARTESIAN_POINT('',(10.9,4.405,-1.)); +#46949=CARTESIAN_POINT('',(11.,4.405,-1.)); +#46950=CARTESIAN_POINT('',(11.,4.405,-1.)); +#46951=CARTESIAN_POINT('',(0.,0.,2.5)); +#46952=CARTESIAN_POINT('',(8.6,3.,2.5)); +#46953=CARTESIAN_POINT('',(8.6,3.,2.5)); +#46954=CARTESIAN_POINT('',(7.65,3.,2.5)); +#46955=CARTESIAN_POINT('',(7.65,0.,2.5)); +#46956=CARTESIAN_POINT('',(8.6,-1.,2.5)); +#46957=CARTESIAN_POINT('',(8.6,-1.,2.5)); +#46958=CARTESIAN_POINT('',(8.6,3.,2.5)); +#46959=CARTESIAN_POINT('',(8.6,3.,2.5)); +#46960=CARTESIAN_POINT('',(7.65,3.,2.5)); +#46961=CARTESIAN_POINT('',(-8.6,3.,2.5)); +#46962=CARTESIAN_POINT('',(-8.6,3.,2.5)); +#46963=CARTESIAN_POINT('',(-8.6,3.,2.5)); +#46964=CARTESIAN_POINT('',(-8.6,3.,2.5)); +#46965=CARTESIAN_POINT('',(0.,0.,2.5)); +#46966=CARTESIAN_POINT('',(-7.65,0.,2.5)); +#46967=CARTESIAN_POINT('',(-7.65,3.,2.5)); +#46968=CARTESIAN_POINT('',(-6.7,3.,2.5)); +#46969=CARTESIAN_POINT('',(-6.7,3.,2.5)); +#46970=CARTESIAN_POINT('',(-7.65,3.,2.5)); +#46971=CARTESIAN_POINT('',(7.65,2.20924875,2.1)); +#46972=CARTESIAN_POINT('',(7.65,2.20924875,2.1)); +#46973=CARTESIAN_POINT('',(7.65,2.20924875,2.1)); +#46974=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); +#46975=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); +#46976=CARTESIAN_POINT('',(6.35,2.20924875,2.275)); +#46977=CARTESIAN_POINT('',(6.35,2.20924875,2.1)); +#46978=CARTESIAN_POINT('',(5.65,2.20924875,2.1)); +#46979=CARTESIAN_POINT('',(5.65,2.20924875,2.275)); +#46980=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); +#46981=CARTESIAN_POINT('',(4.35,2.20924875,2.275)); +#46982=CARTESIAN_POINT('',(4.35,2.20924875,2.1)); +#46983=CARTESIAN_POINT('',(3.65,2.20924875,2.1)); +#46984=CARTESIAN_POINT('',(3.65,2.20924875,2.275)); +#46985=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); +#46986=CARTESIAN_POINT('',(2.35,2.20924875,2.275)); +#46987=CARTESIAN_POINT('',(2.35,2.20924875,2.1)); +#46988=CARTESIAN_POINT('',(1.65,2.20924875,2.1)); +#46989=CARTESIAN_POINT('',(1.65,2.20924875,2.275)); +#46990=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); +#46991=CARTESIAN_POINT('',(0.35,2.20924875,2.275)); +#46992=CARTESIAN_POINT('',(0.35,2.20924875,2.1)); +#46993=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,2.1)); +#46994=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,2.275)); +#46995=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); +#46996=CARTESIAN_POINT('',(-1.65,2.20924875,2.275)); +#46997=CARTESIAN_POINT('',(-1.65,2.20924875,2.1)); +#46998=CARTESIAN_POINT('',(-2.35,2.20924875,2.1)); +#46999=CARTESIAN_POINT('',(-2.35,2.20924875,2.275)); +#47000=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); +#47001=CARTESIAN_POINT('',(-3.65,2.20924875,2.275)); +#47002=CARTESIAN_POINT('',(-3.65,2.20924875,2.1)); +#47003=CARTESIAN_POINT('',(-4.35,2.20924875,2.1)); +#47004=CARTESIAN_POINT('',(-4.35,2.20924875,2.275)); +#47005=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); +#47006=CARTESIAN_POINT('',(-5.65,2.20924875,2.275)); +#47007=CARTESIAN_POINT('',(-5.65,2.20924875,2.1)); +#47008=CARTESIAN_POINT('',(-6.35,2.20924875,2.1)); +#47009=CARTESIAN_POINT('',(-6.35,2.20924875,2.275)); +#47010=CARTESIAN_POINT('',(7.65,2.20924875,2.275)); +#47011=CARTESIAN_POINT('',(-7.65,2.20924875,2.275)); +#47012=CARTESIAN_POINT('',(-7.65,2.20924875,2.1)); +#47013=CARTESIAN_POINT('',(-7.65,2.20924875,2.1)); +#47014=CARTESIAN_POINT('',(7.65,2.20924875,2.1)); +#47015=CARTESIAN_POINT('',(-7.65,2.20924875,2.1)); +#47016=CARTESIAN_POINT('',(-7.65,-4.5,2.275)); +#47017=CARTESIAN_POINT('',(-7.65,2.20924875,2.1)); +#47018=CARTESIAN_POINT('',(7.65,0.,2.1)); +#47019=CARTESIAN_POINT('',(7.65,-4.5,2.275)); +#47020=CARTESIAN_POINT('',(7.65,0.,2.1)); +#47021=CARTESIAN_POINT('',(0.,0.,2.1)); +#47022=CARTESIAN_POINT('',(8.9,-1.,-2.5)); +#47023=CARTESIAN_POINT('',(8.9,3.,-2.5)); +#47024=CARTESIAN_POINT('',(8.9,3.,-2.5)); +#47025=CARTESIAN_POINT('',(7.65,3.,-2.5)); +#47026=CARTESIAN_POINT('',(-8.9,3.,-2.5)); +#47027=CARTESIAN_POINT('',(-8.9,3.,-2.5)); +#47028=CARTESIAN_POINT('',(-6.7,3.,-2.5)); +#47029=CARTESIAN_POINT('',(-7.65,3.,-2.5)); +#47030=CARTESIAN_POINT('',(7.65,0.,-2.1)); +#47031=CARTESIAN_POINT('',(7.65,2.20924875,-2.1)); +#47032=CARTESIAN_POINT('',(7.65,2.20924875,-2.1)); +#47033=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); +#47034=CARTESIAN_POINT('',(7.65,-4.5,-2.275)); +#47035=CARTESIAN_POINT('',(7.65,0.,-2.1)); +#47036=CARTESIAN_POINT('',(-7.65,2.20924875,-2.1)); +#47037=CARTESIAN_POINT('',(-7.65,-4.5,-2.275)); +#47038=CARTESIAN_POINT('',(-7.65,2.20924875,-2.275)); +#47039=CARTESIAN_POINT('',(-7.65,2.20924875,-2.1)); +#47040=CARTESIAN_POINT('',(-7.65,2.20924875,-2.1)); +#47041=CARTESIAN_POINT('',(-7.65,2.20924875,-2.1)); +#47042=CARTESIAN_POINT('',(7.65,2.20924875,-2.1)); +#47043=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); +#47044=CARTESIAN_POINT('',(-6.35,2.20924875,-2.275)); +#47045=CARTESIAN_POINT('',(-6.35,2.20924875,-2.1)); +#47046=CARTESIAN_POINT('',(-5.65,2.20924875,-2.1)); +#47047=CARTESIAN_POINT('',(-5.65,2.20924875,-2.275)); +#47048=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); +#47049=CARTESIAN_POINT('',(-4.35,2.20924875,-2.275)); +#47050=CARTESIAN_POINT('',(-4.35,2.20924875,-2.1)); +#47051=CARTESIAN_POINT('',(-3.65,2.20924875,-2.1)); +#47052=CARTESIAN_POINT('',(-3.65,2.20924875,-2.275)); +#47053=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); +#47054=CARTESIAN_POINT('',(-2.35,2.20924875,-2.275)); +#47055=CARTESIAN_POINT('',(-2.35,2.20924875,-2.1)); +#47056=CARTESIAN_POINT('',(-1.65,2.20924875,-2.1)); +#47057=CARTESIAN_POINT('',(-1.65,2.20924875,-2.275)); +#47058=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); +#47059=CARTESIAN_POINT('',(-0.35,2.20924875,-2.275)); +#47060=CARTESIAN_POINT('',(-0.350000000000001,2.20924875,-2.1)); +#47061=CARTESIAN_POINT('',(0.35,2.20924875,-2.1)); +#47062=CARTESIAN_POINT('',(0.35,2.20924875,-2.275)); +#47063=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); +#47064=CARTESIAN_POINT('',(1.65,2.20924875,-2.275)); +#47065=CARTESIAN_POINT('',(1.65,2.20924875,-2.1)); +#47066=CARTESIAN_POINT('',(2.35,2.20924875,-2.1)); +#47067=CARTESIAN_POINT('',(2.35,2.20924875,-2.275)); +#47068=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); +#47069=CARTESIAN_POINT('',(3.65,2.20924875,-2.275)); +#47070=CARTESIAN_POINT('',(3.65,2.20924875,-2.1)); +#47071=CARTESIAN_POINT('',(4.35,2.20924875,-2.1)); +#47072=CARTESIAN_POINT('',(4.35,2.20924875,-2.275)); +#47073=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); +#47074=CARTESIAN_POINT('',(5.65,2.20924875,-2.275)); +#47075=CARTESIAN_POINT('',(5.65,2.20924875,-2.1)); +#47076=CARTESIAN_POINT('',(6.35,2.20924875,-2.1)); +#47077=CARTESIAN_POINT('',(6.35,2.20924875,-2.275)); +#47078=CARTESIAN_POINT('',(7.65,2.20924875,-2.275)); +#47079=CARTESIAN_POINT('',(7.65,2.20924875,-2.1)); +#47080=CARTESIAN_POINT('',(0.,0.,-2.1)); +#47081=CARTESIAN_POINT('',(-10.1,7.605,1.625)); +#47082=CARTESIAN_POINT('',(10.1,4.405,1.625)); +#47083=CARTESIAN_POINT('',(22.,9.08,-0.430000000000001)); +#47084=CARTESIAN_POINT('',(22.,9.08,-0.430000000000001)); +#47085=CARTESIAN_POINT('',(22.,7.7869092818606,1.7)); +#47086=CARTESIAN_POINT('',(22.,7.7869092818606,1.7)); +#47087=CARTESIAN_POINT('',(-6.35,-4.5,2.275)); +#47088=CARTESIAN_POINT('',(-6.35,-4.5,2.275)); +#47089=CARTESIAN_POINT('',(-6.35,-4.5,2.8)); +#47090=CARTESIAN_POINT('',(-5.65,-4.5,2.275)); +#47091=CARTESIAN_POINT('',(-5.65,-4.5,2.275)); +#47092=CARTESIAN_POINT('',(-4.35,-4.5,2.275)); +#47093=CARTESIAN_POINT('',(-4.35,-4.5,2.275)); +#47094=CARTESIAN_POINT('',(-4.35,-4.5,2.8)); +#47095=CARTESIAN_POINT('',(-3.65,-4.5,2.275)); +#47096=CARTESIAN_POINT('',(-3.65,-4.5,2.275)); +#47097=CARTESIAN_POINT('',(-2.35,-4.5,2.275)); +#47098=CARTESIAN_POINT('',(-2.35,-4.5,2.275)); +#47099=CARTESIAN_POINT('',(-2.35,-4.5,2.8)); +#47100=CARTESIAN_POINT('',(-1.65,-4.5,2.275)); +#47101=CARTESIAN_POINT('',(-1.65,-4.5,2.275)); +#47102=CARTESIAN_POINT('',(-0.350000000000001,-4.5,2.275)); +#47103=CARTESIAN_POINT('',(-0.350000000000001,-4.5,2.275)); +#47104=CARTESIAN_POINT('',(-0.350000000000001,-4.5,2.8)); +#47105=CARTESIAN_POINT('',(0.35,-4.5,2.275)); +#47106=CARTESIAN_POINT('',(0.35,-4.5,2.275)); +#47107=CARTESIAN_POINT('',(1.65,-4.5,2.275)); +#47108=CARTESIAN_POINT('',(1.65,-4.5,2.275)); +#47109=CARTESIAN_POINT('',(1.65,-4.5,2.8)); +#47110=CARTESIAN_POINT('',(2.35,-4.5,2.275)); +#47111=CARTESIAN_POINT('',(2.35,-4.5,2.275)); +#47112=CARTESIAN_POINT('',(3.65,-4.5,2.275)); +#47113=CARTESIAN_POINT('',(3.65,-4.5,2.275)); +#47114=CARTESIAN_POINT('',(3.65,-4.5,2.8)); +#47115=CARTESIAN_POINT('',(4.35,-4.5,2.275)); +#47116=CARTESIAN_POINT('',(4.35,-4.5,2.275)); +#47117=CARTESIAN_POINT('',(5.65,-4.5,2.275)); +#47118=CARTESIAN_POINT('',(5.65,-4.5,2.275)); +#47119=CARTESIAN_POINT('',(5.65,-4.5,2.8)); +#47120=CARTESIAN_POINT('',(6.35,-4.5,2.275)); +#47121=CARTESIAN_POINT('',(6.35,-4.5,2.275)); +#47122=CARTESIAN_POINT('',(7.65,-4.5,2.275)); +#47123=CARTESIAN_POINT('',(6.35,-4.5,-2.275)); +#47124=CARTESIAN_POINT('',(6.35,-4.5,-2.275)); +#47125=CARTESIAN_POINT('',(6.35,-4.5,-2.8)); +#47126=CARTESIAN_POINT('',(5.65,-4.5,-2.275)); +#47127=CARTESIAN_POINT('',(5.65,-4.5,-2.275)); +#47128=CARTESIAN_POINT('',(4.35,-4.5,-2.275)); +#47129=CARTESIAN_POINT('',(4.35,-4.5,-2.275)); +#47130=CARTESIAN_POINT('',(4.35,-4.5,-2.8)); +#47131=CARTESIAN_POINT('',(3.65,-4.5,-2.275)); +#47132=CARTESIAN_POINT('',(3.65,-4.5,-2.275)); +#47133=CARTESIAN_POINT('',(2.35,-4.5,-2.275)); +#47134=CARTESIAN_POINT('',(2.35,-4.5,-2.275)); +#47135=CARTESIAN_POINT('',(2.35,-4.5,-2.8)); +#47136=CARTESIAN_POINT('',(1.65,-4.5,-2.275)); +#47137=CARTESIAN_POINT('',(1.65,-4.5,-2.275)); +#47138=CARTESIAN_POINT('',(0.35,-4.5,-2.275)); +#47139=CARTESIAN_POINT('',(0.35,-4.5,-2.275)); +#47140=CARTESIAN_POINT('',(0.35,-4.5,-2.8)); +#47141=CARTESIAN_POINT('',(-0.350000000000001,-4.5,-2.275)); +#47142=CARTESIAN_POINT('',(-0.35,-4.5,-2.275)); +#47143=CARTESIAN_POINT('',(-1.65,-4.5,-2.275)); +#47144=CARTESIAN_POINT('',(-1.65,-4.5,-2.275)); +#47145=CARTESIAN_POINT('',(-1.65,-4.5,-2.8)); +#47146=CARTESIAN_POINT('',(-2.35,-4.5,-2.275)); +#47147=CARTESIAN_POINT('',(-2.35,-4.5,-2.275)); +#47148=CARTESIAN_POINT('',(-3.65,-4.5,-2.275)); +#47149=CARTESIAN_POINT('',(-3.65,-4.5,-2.275)); +#47150=CARTESIAN_POINT('',(-3.65,-4.5,-2.8)); +#47151=CARTESIAN_POINT('',(-4.35,-4.5,-2.275)); +#47152=CARTESIAN_POINT('',(-4.35,-4.5,-2.275)); +#47153=CARTESIAN_POINT('',(-5.65,-4.5,-2.275)); +#47154=CARTESIAN_POINT('',(-5.65,-4.5,-2.275)); +#47155=CARTESIAN_POINT('',(-5.65,-4.5,-2.8)); +#47156=CARTESIAN_POINT('',(-7.65,-4.5,-2.275)); +#47157=CARTESIAN_POINT('',(-6.35,-4.5,-2.275)); +#47158=CARTESIAN_POINT('',(-6.35,-4.5,-2.275)); +#47159=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47160=CARTESIAN_POINT('',(0.,0.,1.875)); +#47161=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47162=CARTESIAN_POINT('',(0.,0.,1.875)); +#47163=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47164=CARTESIAN_POINT('',(0.,0.,1.875)); +#47165=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47166=CARTESIAN_POINT('',(0.,0.,1.875)); +#47167=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47168=CARTESIAN_POINT('',(0.,0.,1.875)); +#47169=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47170=CARTESIAN_POINT('',(0.,0.,1.875)); +#47171=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47172=CARTESIAN_POINT('',(0.,0.,1.875)); +#47173=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47174=CARTESIAN_POINT('',(0.,0.,1.875)); +#47175=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47176=CARTESIAN_POINT('',(0.,0.,1.875)); +#47177=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47178=CARTESIAN_POINT('',(0.,0.,1.875)); +#47179=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47180=CARTESIAN_POINT('',(0.,0.,1.875)); +#47181=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47182=CARTESIAN_POINT('',(0.,0.,1.875)); +#47183=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47184=CARTESIAN_POINT('',(0.,0.,1.875)); +#47185=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47186=CARTESIAN_POINT('',(0.,0.,1.875)); +#47187=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47188=CARTESIAN_POINT('',(0.,0.,1.875)); +#47189=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47190=CARTESIAN_POINT('',(0.,0.,1.875)); +#47191=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47192=CARTESIAN_POINT('',(0.,0.,1.875)); +#47193=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47194=CARTESIAN_POINT('',(0.,0.,1.875)); +#47195=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47196=CARTESIAN_POINT('',(0.,0.,1.875)); +#47197=CARTESIAN_POINT('',(0.,0.,1.875)); +#47198=CARTESIAN_POINT('',(0.,0.,-1.875)); +#47199=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47200=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47201=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47202=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47203=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47204=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47205=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47206=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47207=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47208=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47209=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47210=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47211=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47212=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47213=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47214=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47215=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47216=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47217=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47218=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47219=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47220=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47221=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47222=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47223=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47224=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47225=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47226=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47227=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47228=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47229=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47230=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47231=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47232=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47233=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47234=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47235=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47236=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47237=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47238=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47239=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47240=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47241=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47242=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47243=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47244=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47245=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47246=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47247=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47248=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47249=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47250=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47251=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47252=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47253=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47254=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47255=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47256=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47257=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47258=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47259=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47260=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47261=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47262=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47263=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47264=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47265=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47266=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47267=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47268=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47269=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47270=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47271=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47272=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47273=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47274=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47275=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47276=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47277=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47278=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47279=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47280=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47281=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47282=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47283=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47284=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47285=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47286=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47287=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47288=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47289=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47290=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47291=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47292=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47293=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47294=CARTESIAN_POINT('',(9.6,7.21,1.89735380184963E-16)); +#47295=CARTESIAN_POINT('',(9.6,7.21,-0.35)); +#47296=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47297=CARTESIAN_POINT('',(9.6,7.21,0.35)); +#47298=CARTESIAN_POINT('',(9.6,4.11,-0.35)); +#47299=CARTESIAN_POINT('',(-9.20414519,4.305,-2.8)); +#47300=CARTESIAN_POINT('',(-9.20414519,4.305,-2.8)); +#47301=CARTESIAN_POINT('',(-9.14641016285714,4.305,-2.7)); +#47302=CARTESIAN_POINT('',(-8.8,4.305,-2.1)); +#47303=CARTESIAN_POINT('',(-9.14641016285714,4.305,-2.7)); +#47304=CARTESIAN_POINT('',(-8.8,4.305,-2.1)); +#47305=CARTESIAN_POINT('',(-8.8,4.305,-2.1)); +#47306=CARTESIAN_POINT('',(-8.45358983714286,4.305,-2.7)); +#47307=CARTESIAN_POINT('',(-8.45358983714286,4.305,-2.7)); +#47308=CARTESIAN_POINT('',(-8.8,4.305,-2.1)); +#47309=CARTESIAN_POINT('',(0.,4.305,0.)); +#47310=CARTESIAN_POINT('',(0.,4.305,-2.7)); +#47311=CARTESIAN_POINT('',(-9.3,4.41,-2.7)); +#47312=CARTESIAN_POINT('',(-9.3,4.41,-2.7)); +#47313=CARTESIAN_POINT('',(-8.8,3.21,-2.7)); +#47314=CARTESIAN_POINT('',(-8.8,3.21,-2.7)); +#47315=CARTESIAN_POINT('',(-8.8,3.21,-2.7)); +#47316=CARTESIAN_POINT('',(-8.8,3.21,-2.7)); +#47317=CARTESIAN_POINT('',(0.,0.,-2.7)); +#47318=CARTESIAN_POINT('',(9.4,-1.265,1.5)); +#47319=CARTESIAN_POINT('',(9.4,-0.865,1.5)); +#47320=CARTESIAN_POINT('',(9.4,-0.865,0.839999999999999)); +#47321=CARTESIAN_POINT('',(9.4,-0.864999999999999,1.5)); +#47322=CARTESIAN_POINT('',(9.4,-1.265,1.5)); +#47323=CARTESIAN_POINT('',(9.4,-1.265,1.24)); +#47324=CARTESIAN_POINT('',(9.66,-1.265,1.5)); +#47325=CARTESIAN_POINT('',(-9.55916573882417,-1.265,0.918895633503348)); +#47326=CARTESIAN_POINT('',(-9.55916573882417,-1.265,0.918895633503348)); +#47327=CARTESIAN_POINT('',(-9.55916573882417,-1.265,0.918895633503348)); +#47328=CARTESIAN_POINT('',(-9.55916573882417,-1.265,0.918895633503348)); +#47329=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.37889563350335)); +#47330=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.37889563350335)); +#47331=CARTESIAN_POINT('',(-9.74999999999999,-1.265,1.5)); +#47332=CARTESIAN_POINT('',(-9.74999999999999,-1.265,1.5)); +#47333=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.62110436649665)); +#47334=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.62110436649665)); +#47335=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.62110436649665)); +#47336=CARTESIAN_POINT('',(-9.90916573882417,-1.265,1.62110436649665)); +#47337=CARTESIAN_POINT('',(-9.55916573882417,-1.265,2.08110436649665)); +#47338=CARTESIAN_POINT('',(-9.55916573882417,-1.265,2.08110436649665)); +#47339=CARTESIAN_POINT('',(-9.4,-1.265,1.96)); +#47340=CARTESIAN_POINT('',(-9.4,-1.265,1.96)); +#47341=CARTESIAN_POINT('',(-9.24083426117583,-1.265,2.08110436649665)); +#47342=CARTESIAN_POINT('',(-9.24083426117583,-1.265,2.08110436649665)); +#47343=CARTESIAN_POINT('',(-9.24083426117583,-1.265,2.08110436649665)); +#47344=CARTESIAN_POINT('',(-9.24083426117583,-1.265,2.08110436649665)); +#47345=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.62110436649665)); +#47346=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.62110436649665)); +#47347=CARTESIAN_POINT('',(-9.05,-1.265,1.5)); +#47348=CARTESIAN_POINT('',(-9.05,-1.265,1.5)); +#47349=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.37889563350335)); +#47350=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.37889563350335)); +#47351=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.37889563350335)); +#47352=CARTESIAN_POINT('',(-8.89083426117583,-1.265,1.37889563350335)); +#47353=CARTESIAN_POINT('',(-9.24083426117583,-1.265,0.918895633503347)); +#47354=CARTESIAN_POINT('',(-9.24083426117583,-1.265,0.918895633503347)); +#47355=CARTESIAN_POINT('',(-9.4,-1.265,1.04)); +#47356=CARTESIAN_POINT('',(-9.4,-1.265,1.04)); +#47357=CARTESIAN_POINT('',(-9.74999999999999,-1.265,1.5)); +#47358=CARTESIAN_POINT('',(-10.3,3.4,-1.295)); +#47359=CARTESIAN_POINT('',(-10.3,3.4,-1.295)); +#47360=CARTESIAN_POINT('',(-10.3,3.4,-1.295)); +#47361=CARTESIAN_POINT('',(-10.3,3.4,-1.295)); +#47362=CARTESIAN_POINT('',(-10.3,3.4,0.3)); +#47363=CARTESIAN_POINT('',(-10.3,3.4,0.3)); +#47364=CARTESIAN_POINT('',(-10.1,3.4,0.3)); +#47365=CARTESIAN_POINT('',(-10.1,3.4,0.3)); +#47366=CARTESIAN_POINT('',(-10.0999998692754,3.4,0.499999999999958)); +#47367=CARTESIAN_POINT('',(-10.0999998692754,3.4,0.499999999999958)); +#47368=CARTESIAN_POINT('',(-10.09999975,3.4,0.333334000000012)); +#47369=CARTESIAN_POINT('',(-10.09999975,3.4,0.333334000000012)); +#47370=CARTESIAN_POINT('',(-9.99041113033376,3.4,0.458904259200404)); +#47371=CARTESIAN_POINT('',(-9.99041113033376,3.4,0.458904259200404)); +#47372=CARTESIAN_POINT('',(-9.3,3.4,1.25)); +#47373=CARTESIAN_POINT('',(-9.3,3.4,1.25)); +#47374=CARTESIAN_POINT('',(-8.60958887854188,3.4,0.458904251454382)); +#47375=CARTESIAN_POINT('',(-8.60958887854188,3.4,0.458904251454382)); +#47376=CARTESIAN_POINT('',(-8.50000025000005,3.4,0.333334000000018)); +#47377=CARTESIAN_POINT('',(-8.50000025000005,3.4,0.333334000000018)); +#47378=CARTESIAN_POINT('',(-8.5000001306866,3.4,0.499999999999956)); +#47379=CARTESIAN_POINT('',(-8.5000001306866,3.4,0.499999999999956)); +#47380=CARTESIAN_POINT('',(-8.5,3.4,0.299999999999997)); +#47381=CARTESIAN_POINT('',(-8.5,3.4,0.299999999999997)); +#47382=CARTESIAN_POINT('',(-8.3,3.4,0.3)); +#47383=CARTESIAN_POINT('',(-8.3,3.4,0.3)); +#47384=CARTESIAN_POINT('',(-8.3,3.4,0.3)); +#47385=CARTESIAN_POINT('',(-8.3,3.4,0.3)); +#47386=CARTESIAN_POINT('',(-8.3,3.4,-2.1)); +#47387=CARTESIAN_POINT('',(-8.3,3.4,-2.1)); +#47388=CARTESIAN_POINT('',(-8.5,3.4,-2.1)); +#47389=CARTESIAN_POINT('',(-8.5,3.4,-2.1)); +#47390=CARTESIAN_POINT('',(-8.5,3.4,-2.3)); +#47391=CARTESIAN_POINT('',(-8.5,3.4,-2.3)); +#47392=CARTESIAN_POINT('',(-8.5,3.4,-2.3)); +#47393=CARTESIAN_POINT('',(-8.5,3.4,-2.3)); +#47394=CARTESIAN_POINT('',(-9.295,3.4,-2.3)); +#47395=CARTESIAN_POINT('',(-9.295,3.4,-2.3)); +#47396=CARTESIAN_POINT('',(-9.295,3.4,-2.3)); +#47397=CARTESIAN_POINT('',(-9.295,3.4,-2.3)); +#47398=CARTESIAN_POINT('',(-10.1,3.4,0.3)); +#47399=CARTESIAN_POINT('',(8.5,3.4,-1.6)); +#47400=CARTESIAN_POINT('',(8.5,3.4,-1.6)); +#47401=CARTESIAN_POINT('',(8.5,3.4,-1.6)); +#47402=CARTESIAN_POINT('',(8.5,3.4,-1.6)); +#47403=CARTESIAN_POINT('',(8.5,3.4,-0.2)); +#47404=CARTESIAN_POINT('',(8.5,3.4,-0.2)); +#47405=CARTESIAN_POINT('',(9.,3.4,-0.199999999999999)); +#47406=CARTESIAN_POINT('',(9.,3.4,-0.199999999999999)); +#47407=CARTESIAN_POINT('',(9.00000001490116,3.4,0.299999999999999)); +#47408=CARTESIAN_POINT('',(9.00000001490116,3.4,0.299999999999999)); +#47409=CARTESIAN_POINT('',(9.,3.4,0.0499999999999967)); +#47410=CARTESIAN_POINT('',(9.,3.4,0.0499999999999967)); +#47411=CARTESIAN_POINT('',(9.09615384615385,3.4,0.28076923076923)); +#47412=CARTESIAN_POINT('',(9.09615384615385,3.4,0.28076923076923)); +#47413=CARTESIAN_POINT('',(9.5,3.4,1.25)); +#47414=CARTESIAN_POINT('',(9.5,3.4,1.25)); +#47415=CARTESIAN_POINT('',(9.90384615384615,3.4,0.28076923076923)); +#47416=CARTESIAN_POINT('',(9.90384615384615,3.4,0.28076923076923)); +#47417=CARTESIAN_POINT('',(10.,3.4,0.0500000000000159)); +#47418=CARTESIAN_POINT('',(10.,3.4,0.0500000000000159)); +#47419=CARTESIAN_POINT('',(10.,3.4,0.300000000000001)); +#47420=CARTESIAN_POINT('',(10.,3.4,0.300000000000001)); +#47421=CARTESIAN_POINT('',(10.,3.4,-0.200000000000003)); +#47422=CARTESIAN_POINT('',(10.,3.4,-0.200000000000003)); +#47423=CARTESIAN_POINT('',(10.5,3.4,-0.2)); +#47424=CARTESIAN_POINT('',(10.5,3.4,-0.2)); +#47425=CARTESIAN_POINT('',(10.5,3.4,-0.2)); +#47426=CARTESIAN_POINT('',(10.5,3.4,-0.2)); +#47427=CARTESIAN_POINT('',(10.5,3.4,-1.6)); +#47428=CARTESIAN_POINT('',(10.5,3.4,-1.6)); +#47429=CARTESIAN_POINT('',(9.8,3.4,-1.6)); +#47430=CARTESIAN_POINT('',(9.8,3.4,-1.6)); +#47431=CARTESIAN_POINT('',(9.8,3.4,-2.3)); +#47432=CARTESIAN_POINT('',(9.8,3.4,-2.3)); +#47433=CARTESIAN_POINT('',(9.8,3.4,-2.3)); +#47434=CARTESIAN_POINT('',(9.8,3.4,-2.3)); +#47435=CARTESIAN_POINT('',(9.2,3.4,-2.3)); +#47436=CARTESIAN_POINT('',(9.2,3.4,-2.3)); +#47437=CARTESIAN_POINT('',(9.2,3.4,-1.6)); +#47438=CARTESIAN_POINT('',(9.2,3.4,-1.6)); +#47439=CARTESIAN_POINT('',(9.,3.4,-0.199999999999999)); +#47440=CARTESIAN_POINT('',(-12.,1.6,2.5)); +#47441=CARTESIAN_POINT('',(-12.,1.6,2.5)); +#47442=CARTESIAN_POINT('',(-10.8,1.6,2.5)); +#47443=CARTESIAN_POINT('',(-10.8,1.6,2.5)); +#47444=CARTESIAN_POINT('',(-10.8,1.6,0.9)); +#47445=CARTESIAN_POINT('',(-10.8,1.6,0.899999999999999)); +#47446=CARTESIAN_POINT('',(-10.8,1.6,0.899999999999999)); +#47447=CARTESIAN_POINT('',(-10.8,1.6,0.9)); +#47448=CARTESIAN_POINT('',(-12.,1.6,2.3)); +#47449=CARTESIAN_POINT('',(-10.8,1.6,1.1)); +#47450=CARTESIAN_POINT('',(-10.6,1.6,1.1)); +#47451=CARTESIAN_POINT('',(-10.6,1.6,2.3)); +#47452=CARTESIAN_POINT('',(-10.6,1.6,2.3)); +#47453=CARTESIAN_POINT('',(-10.8,1.6,2.3)); +#47454=CARTESIAN_POINT('',(-10.8,1.6,2.3)); +#47455=CARTESIAN_POINT('',(-10.6,1.6,2.3)); +#47456=CARTESIAN_POINT('',(-10.6,1.6,2.3)); +#47457=CARTESIAN_POINT('',(-10.6,1.6,1.1)); +#47458=CARTESIAN_POINT('',(-10.8,1.6,1.1)); +#47459=CARTESIAN_POINT('',(10.8,1.6,2.5)); +#47460=CARTESIAN_POINT('',(10.8,1.6,2.5)); +#47461=CARTESIAN_POINT('',(10.8,1.6,2.5)); +#47462=CARTESIAN_POINT('',(10.8,1.6,2.5)); +#47463=CARTESIAN_POINT('',(12.,1.6,0.9)); +#47464=CARTESIAN_POINT('',(12.,1.6,0.9)); +#47465=CARTESIAN_POINT('',(10.8,1.6,0.9)); +#47466=CARTESIAN_POINT('',(10.8,1.6,0.9)); +#47467=CARTESIAN_POINT('',(10.8,1.6,2.3)); +#47468=CARTESIAN_POINT('',(10.8,1.6,2.3)); +#47469=CARTESIAN_POINT('',(10.6,1.6,2.3)); +#47470=CARTESIAN_POINT('',(10.6,1.6,1.1)); +#47471=CARTESIAN_POINT('',(10.6,1.6,1.1)); +#47472=CARTESIAN_POINT('',(10.8,1.6,1.1)); +#47473=CARTESIAN_POINT('',(10.6,1.6,1.1)); +#47474=CARTESIAN_POINT('',(10.6,1.6,1.1)); +#47475=CARTESIAN_POINT('',(10.6,1.6,2.3)); +#47476=CARTESIAN_POINT('',(10.8,1.6,2.3)); +#47477=CARTESIAN_POINT('',(10.8,1.6,1.1)); +#47478=CARTESIAN_POINT('',(0.,0.,0.)); +#47479=CARTESIAN_POINT('',(7.89,0.377106686427072,-1.6)); +#47480=CARTESIAN_POINT('',(7.89,1.,-1.6)); +#47481=CARTESIAN_POINT('',(8.,1.,-1.6)); +#47482=CARTESIAN_POINT('',(-8.,1.,-1.6)); +#47483=CARTESIAN_POINT('',(8.,1.05,-1.6)); +#47484=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47485=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47486=CARTESIAN_POINT('',(7.89,0.95,-1.6)); +#47487=CARTESIAN_POINT('',(7.89,0.377106686427072,-1.6)); +#47488=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47489=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47490=CARTESIAN_POINT('',(7.715,0.5,-1.6)); +#47491=CARTESIAN_POINT('',(7.715,0.377106686427072,-1.6)); +#47492=CARTESIAN_POINT('',(7.715,0.377106686427073,-1.6)); +#47493=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47494=CARTESIAN_POINT('',(7.485,0.377106686427073,-1.6)); +#47495=CARTESIAN_POINT('',(7.485,0.377106686427072,-1.6)); +#47496=CARTESIAN_POINT('',(7.485,0.5,-1.6)); +#47497=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47498=CARTESIAN_POINT('',(7.31,0.5,-1.6)); +#47499=CARTESIAN_POINT('',(7.31,0.377106686427072,-1.6)); +#47500=CARTESIAN_POINT('',(7.31,0.95,-1.6)); +#47501=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47502=CARTESIAN_POINT('',(7.09,0.95,-1.6)); +#47503=CARTESIAN_POINT('',(7.09,0.377106686427072,-1.6)); +#47504=CARTESIAN_POINT('',(7.09,0.5,-1.6)); +#47505=CARTESIAN_POINT('',(7.89,0.499999999999999,-1.6)); +#47506=CARTESIAN_POINT('',(6.915,0.5,-1.6)); +#47507=CARTESIAN_POINT('',(6.915,0.377106686427072,-1.6)); +#47508=CARTESIAN_POINT('',(6.915,0.377106686427073,-1.6)); +#47509=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47510=CARTESIAN_POINT('',(6.685,0.377106686427073,-1.6)); +#47511=CARTESIAN_POINT('',(6.685,0.377106686427072,-1.6)); +#47512=CARTESIAN_POINT('',(6.685,0.5,-1.6)); +#47513=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47514=CARTESIAN_POINT('',(6.51,0.5,-1.6)); +#47515=CARTESIAN_POINT('',(6.51,0.377106686427072,-1.6)); +#47516=CARTESIAN_POINT('',(6.51,0.95,-1.6)); +#47517=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47518=CARTESIAN_POINT('',(6.29,0.95,-1.6)); +#47519=CARTESIAN_POINT('',(6.29,0.377106686427072,-1.6)); +#47520=CARTESIAN_POINT('',(6.29,0.5,-1.6)); +#47521=CARTESIAN_POINT('',(7.89,0.499999999999999,-1.6)); +#47522=CARTESIAN_POINT('',(6.115,0.5,-1.6)); +#47523=CARTESIAN_POINT('',(6.115,0.377106686427072,-1.6)); +#47524=CARTESIAN_POINT('',(6.115,0.377106686427073,-1.6)); +#47525=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47526=CARTESIAN_POINT('',(5.885,0.377106686427073,-1.6)); +#47527=CARTESIAN_POINT('',(5.885,0.377106686427072,-1.6)); +#47528=CARTESIAN_POINT('',(5.885,0.5,-1.6)); +#47529=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47530=CARTESIAN_POINT('',(5.71,0.5,-1.6)); +#47531=CARTESIAN_POINT('',(5.71,0.377106686427072,-1.6)); +#47532=CARTESIAN_POINT('',(5.71,0.95,-1.6)); +#47533=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47534=CARTESIAN_POINT('',(5.49,0.95,-1.6)); +#47535=CARTESIAN_POINT('',(5.49,0.377106686427072,-1.6)); +#47536=CARTESIAN_POINT('',(5.49,0.5,-1.6)); +#47537=CARTESIAN_POINT('',(7.89,0.499999999999998,-1.6)); +#47538=CARTESIAN_POINT('',(5.315,0.5,-1.6)); +#47539=CARTESIAN_POINT('',(5.315,0.377106686427072,-1.6)); +#47540=CARTESIAN_POINT('',(5.315,0.377106686427073,-1.6)); +#47541=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47542=CARTESIAN_POINT('',(5.085,0.377106686427073,-1.6)); +#47543=CARTESIAN_POINT('',(5.085,0.377106686427072,-1.6)); +#47544=CARTESIAN_POINT('',(5.085,0.5,-1.6)); +#47545=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47546=CARTESIAN_POINT('',(4.91,0.5,-1.6)); +#47547=CARTESIAN_POINT('',(4.91,0.377106686427072,-1.6)); +#47548=CARTESIAN_POINT('',(4.91,0.95,-1.6)); +#47549=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47550=CARTESIAN_POINT('',(4.69,0.95,-1.6)); +#47551=CARTESIAN_POINT('',(4.69,0.377106686427072,-1.6)); +#47552=CARTESIAN_POINT('',(4.69,0.5,-1.6)); +#47553=CARTESIAN_POINT('',(7.89,0.499999999999998,-1.6)); +#47554=CARTESIAN_POINT('',(4.515,0.5,-1.6)); +#47555=CARTESIAN_POINT('',(4.515,0.377106686427072,-1.6)); +#47556=CARTESIAN_POINT('',(4.515,0.377106686427073,-1.6)); +#47557=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47558=CARTESIAN_POINT('',(4.285,0.377106686427073,-1.6)); +#47559=CARTESIAN_POINT('',(4.285,0.377106686427072,-1.6)); +#47560=CARTESIAN_POINT('',(4.285,0.5,-1.6)); +#47561=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47562=CARTESIAN_POINT('',(4.11,0.5,-1.6)); +#47563=CARTESIAN_POINT('',(4.11,0.377106686427072,-1.6)); +#47564=CARTESIAN_POINT('',(4.11,0.95,-1.6)); +#47565=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47566=CARTESIAN_POINT('',(3.89,0.95,-1.6)); +#47567=CARTESIAN_POINT('',(3.89,0.377106686427072,-1.6)); +#47568=CARTESIAN_POINT('',(3.89,0.5,-1.6)); +#47569=CARTESIAN_POINT('',(7.89,0.499999999999997,-1.6)); +#47570=CARTESIAN_POINT('',(3.715,0.5,-1.6)); +#47571=CARTESIAN_POINT('',(3.715,0.377106686427072,-1.6)); +#47572=CARTESIAN_POINT('',(3.715,0.377106686427073,-1.6)); +#47573=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47574=CARTESIAN_POINT('',(3.485,0.377106686427073,-1.6)); +#47575=CARTESIAN_POINT('',(3.485,0.377106686427072,-1.6)); +#47576=CARTESIAN_POINT('',(3.485,0.5,-1.6)); +#47577=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47578=CARTESIAN_POINT('',(3.31,0.5,-1.6)); +#47579=CARTESIAN_POINT('',(3.31,0.377106686427072,-1.6)); +#47580=CARTESIAN_POINT('',(3.31,0.95,-1.6)); +#47581=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47582=CARTESIAN_POINT('',(3.09,0.95,-1.6)); +#47583=CARTESIAN_POINT('',(3.09,0.377106686427072,-1.6)); +#47584=CARTESIAN_POINT('',(3.09,0.5,-1.6)); +#47585=CARTESIAN_POINT('',(7.89,0.499999999999997,-1.6)); +#47586=CARTESIAN_POINT('',(2.915,0.5,-1.6)); +#47587=CARTESIAN_POINT('',(2.915,0.377106686427072,-1.6)); +#47588=CARTESIAN_POINT('',(2.915,0.377106686427073,-1.6)); +#47589=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47590=CARTESIAN_POINT('',(2.685,0.377106686427073,-1.6)); +#47591=CARTESIAN_POINT('',(2.685,0.377106686427072,-1.6)); +#47592=CARTESIAN_POINT('',(2.685,0.5,-1.6)); +#47593=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47594=CARTESIAN_POINT('',(2.51,0.5,-1.6)); +#47595=CARTESIAN_POINT('',(2.51,0.377106686427072,-1.6)); +#47596=CARTESIAN_POINT('',(2.51,0.95,-1.6)); +#47597=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47598=CARTESIAN_POINT('',(2.29,0.95,-1.6)); +#47599=CARTESIAN_POINT('',(2.29,0.377106686427072,-1.6)); +#47600=CARTESIAN_POINT('',(2.29,0.5,-1.6)); +#47601=CARTESIAN_POINT('',(7.89,0.499999999999996,-1.6)); +#47602=CARTESIAN_POINT('',(2.115,0.5,-1.6)); +#47603=CARTESIAN_POINT('',(2.115,0.377106686427072,-1.6)); +#47604=CARTESIAN_POINT('',(2.115,0.377106686427073,-1.6)); +#47605=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47606=CARTESIAN_POINT('',(1.885,0.377106686427073,-1.6)); +#47607=CARTESIAN_POINT('',(1.885,0.377106686427072,-1.6)); +#47608=CARTESIAN_POINT('',(1.885,0.5,-1.6)); +#47609=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47610=CARTESIAN_POINT('',(1.71,0.5,-1.6)); +#47611=CARTESIAN_POINT('',(1.71,0.377106686427072,-1.6)); +#47612=CARTESIAN_POINT('',(1.71,0.95,-1.6)); +#47613=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47614=CARTESIAN_POINT('',(1.49,0.95,-1.6)); +#47615=CARTESIAN_POINT('',(1.49,0.377106686427072,-1.6)); +#47616=CARTESIAN_POINT('',(1.49,0.5,-1.6)); +#47617=CARTESIAN_POINT('',(7.89,0.499999999999996,-1.6)); +#47618=CARTESIAN_POINT('',(1.315,0.5,-1.6)); +#47619=CARTESIAN_POINT('',(1.315,0.377106686427072,-1.6)); +#47620=CARTESIAN_POINT('',(1.315,0.377106686427073,-1.6)); +#47621=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47622=CARTESIAN_POINT('',(1.085,0.377106686427073,-1.6)); +#47623=CARTESIAN_POINT('',(1.085,0.377106686427072,-1.6)); +#47624=CARTESIAN_POINT('',(1.085,0.5,-1.6)); +#47625=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47626=CARTESIAN_POINT('',(0.909999999999999,0.5,-1.6)); +#47627=CARTESIAN_POINT('',(0.909999999999999,0.377106686427072,-1.6)); +#47628=CARTESIAN_POINT('',(0.909999999999999,0.95,-1.6)); +#47629=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47630=CARTESIAN_POINT('',(0.69,0.95,-1.6)); +#47631=CARTESIAN_POINT('',(0.69,0.377106686427072,-1.6)); +#47632=CARTESIAN_POINT('',(0.69,0.5,-1.6)); +#47633=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.6)); +#47634=CARTESIAN_POINT('',(0.515,0.5,-1.6)); +#47635=CARTESIAN_POINT('',(0.515,0.377106686427072,-1.6)); +#47636=CARTESIAN_POINT('',(0.515,0.377106686427073,-1.6)); +#47637=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47638=CARTESIAN_POINT('',(0.284999999999999,0.377106686427073,-1.6)); +#47639=CARTESIAN_POINT('',(0.284999999999999,0.377106686427072,-1.6)); +#47640=CARTESIAN_POINT('',(0.284999999999999,0.5,-1.6)); +#47641=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47642=CARTESIAN_POINT('',(0.109999999999999,0.5,-1.6)); +#47643=CARTESIAN_POINT('',(0.109999999999999,0.377106686427072,-1.6)); +#47644=CARTESIAN_POINT('',(0.109999999999999,0.95,-1.6)); +#47645=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47646=CARTESIAN_POINT('',(-0.110000000000001,0.95,-1.6)); +#47647=CARTESIAN_POINT('',(-0.110000000000001,0.377106686427072,-1.6)); +#47648=CARTESIAN_POINT('',(-0.110000000000001,0.5,-1.6)); +#47649=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.6)); +#47650=CARTESIAN_POINT('',(-0.285,0.5,-1.6)); +#47651=CARTESIAN_POINT('',(-0.285000000000001,0.377106686427072,-1.6)); +#47652=CARTESIAN_POINT('',(-0.285000000000001,0.377106686427073,-1.6)); +#47653=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47654=CARTESIAN_POINT('',(-0.515000000000002,0.377106686427073,-1.6)); +#47655=CARTESIAN_POINT('',(-0.515000000000002,0.377106686427072,-1.6)); +#47656=CARTESIAN_POINT('',(-0.515000000000001,0.5,-1.6)); +#47657=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47658=CARTESIAN_POINT('',(-0.690000000000001,0.5,-1.6)); +#47659=CARTESIAN_POINT('',(-0.690000000000001,0.377106686427072,-1.6)); +#47660=CARTESIAN_POINT('',(-0.690000000000001,0.95,-1.6)); +#47661=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47662=CARTESIAN_POINT('',(-0.910000000000001,0.95,-1.6)); +#47663=CARTESIAN_POINT('',(-0.910000000000001,0.377106686427072,-1.6)); +#47664=CARTESIAN_POINT('',(-0.910000000000001,0.5,-1.6)); +#47665=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.6)); +#47666=CARTESIAN_POINT('',(-1.085,0.5,-1.6)); +#47667=CARTESIAN_POINT('',(-1.085,0.377106686427072,-1.6)); +#47668=CARTESIAN_POINT('',(-1.085,0.377106686427073,-1.6)); +#47669=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47670=CARTESIAN_POINT('',(-1.315,0.377106686427073,-1.6)); +#47671=CARTESIAN_POINT('',(-1.315,0.377106686427072,-1.6)); +#47672=CARTESIAN_POINT('',(-1.315,0.5,-1.6)); +#47673=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47674=CARTESIAN_POINT('',(-1.49,0.5,-1.6)); +#47675=CARTESIAN_POINT('',(-1.49,0.377106686427072,-1.6)); +#47676=CARTESIAN_POINT('',(-1.49,0.95,-1.6)); +#47677=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47678=CARTESIAN_POINT('',(-1.71,0.95,-1.6)); +#47679=CARTESIAN_POINT('',(-1.71,0.377106686427072,-1.6)); +#47680=CARTESIAN_POINT('',(-1.71,0.5,-1.6)); +#47681=CARTESIAN_POINT('',(7.89,0.499999999999994,-1.6)); +#47682=CARTESIAN_POINT('',(-1.885,0.5,-1.6)); +#47683=CARTESIAN_POINT('',(-1.885,0.377106686427072,-1.6)); +#47684=CARTESIAN_POINT('',(-1.885,0.377106686427073,-1.6)); +#47685=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47686=CARTESIAN_POINT('',(-2.115,0.377106686427073,-1.6)); +#47687=CARTESIAN_POINT('',(-2.115,0.377106686427072,-1.6)); +#47688=CARTESIAN_POINT('',(-2.115,0.5,-1.6)); +#47689=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47690=CARTESIAN_POINT('',(-2.29,0.5,-1.6)); +#47691=CARTESIAN_POINT('',(-2.29,0.377106686427072,-1.6)); +#47692=CARTESIAN_POINT('',(-2.29,0.95,-1.6)); +#47693=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47694=CARTESIAN_POINT('',(-2.51,0.95,-1.6)); +#47695=CARTESIAN_POINT('',(-2.51,0.377106686427072,-1.6)); +#47696=CARTESIAN_POINT('',(-2.51,0.5,-1.6)); +#47697=CARTESIAN_POINT('',(7.89,0.499999999999994,-1.6)); +#47698=CARTESIAN_POINT('',(-2.685,0.5,-1.6)); +#47699=CARTESIAN_POINT('',(-2.685,0.377106686427072,-1.6)); +#47700=CARTESIAN_POINT('',(-2.685,0.377106686427073,-1.6)); +#47701=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47702=CARTESIAN_POINT('',(-2.915,0.377106686427073,-1.6)); +#47703=CARTESIAN_POINT('',(-2.915,0.377106686427072,-1.6)); +#47704=CARTESIAN_POINT('',(-2.915,0.5,-1.6)); +#47705=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47706=CARTESIAN_POINT('',(-3.09,0.5,-1.6)); +#47707=CARTESIAN_POINT('',(-3.09,0.377106686427072,-1.6)); +#47708=CARTESIAN_POINT('',(-3.09,0.95,-1.6)); +#47709=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47710=CARTESIAN_POINT('',(-3.31,0.95,-1.6)); +#47711=CARTESIAN_POINT('',(-3.31,0.377106686427072,-1.6)); +#47712=CARTESIAN_POINT('',(-3.31,0.5,-1.6)); +#47713=CARTESIAN_POINT('',(7.89,0.499999999999993,-1.6)); +#47714=CARTESIAN_POINT('',(-3.485,0.5,-1.6)); +#47715=CARTESIAN_POINT('',(-3.485,0.377106686427072,-1.6)); +#47716=CARTESIAN_POINT('',(-3.485,0.377106686427073,-1.6)); +#47717=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47718=CARTESIAN_POINT('',(-3.715,0.377106686427073,-1.6)); +#47719=CARTESIAN_POINT('',(-3.715,0.377106686427072,-1.6)); +#47720=CARTESIAN_POINT('',(-3.715,0.5,-1.6)); +#47721=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47722=CARTESIAN_POINT('',(-3.89,0.5,-1.6)); +#47723=CARTESIAN_POINT('',(-3.89,0.377106686427072,-1.6)); +#47724=CARTESIAN_POINT('',(-3.89,0.95,-1.6)); +#47725=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47726=CARTESIAN_POINT('',(-4.11,0.95,-1.6)); +#47727=CARTESIAN_POINT('',(-4.11,0.377106686427072,-1.6)); +#47728=CARTESIAN_POINT('',(-4.11,0.5,-1.6)); +#47729=CARTESIAN_POINT('',(7.89,0.499999999999992,-1.6)); +#47730=CARTESIAN_POINT('',(-4.285,0.5,-1.6)); +#47731=CARTESIAN_POINT('',(-4.285,0.377106686427072,-1.6)); +#47732=CARTESIAN_POINT('',(-4.285,0.377106686427073,-1.6)); +#47733=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47734=CARTESIAN_POINT('',(-4.515,0.377106686427073,-1.6)); +#47735=CARTESIAN_POINT('',(-4.515,0.377106686427072,-1.6)); +#47736=CARTESIAN_POINT('',(-4.515,0.5,-1.6)); +#47737=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47738=CARTESIAN_POINT('',(-4.69,0.5,-1.6)); +#47739=CARTESIAN_POINT('',(-4.69,0.377106686427072,-1.6)); +#47740=CARTESIAN_POINT('',(-4.69,0.95,-1.6)); +#47741=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47742=CARTESIAN_POINT('',(-4.91,0.95,-1.6)); +#47743=CARTESIAN_POINT('',(-4.91,0.377106686427072,-1.6)); +#47744=CARTESIAN_POINT('',(-4.91,0.5,-1.6)); +#47745=CARTESIAN_POINT('',(7.89,0.499999999999992,-1.6)); +#47746=CARTESIAN_POINT('',(-5.085,0.5,-1.6)); +#47747=CARTESIAN_POINT('',(-5.085,0.377106686427072,-1.6)); +#47748=CARTESIAN_POINT('',(-5.085,0.377106686427073,-1.6)); +#47749=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47750=CARTESIAN_POINT('',(-5.315,0.377106686427073,-1.6)); +#47751=CARTESIAN_POINT('',(-5.315,0.377106686427072,-1.6)); +#47752=CARTESIAN_POINT('',(-5.315,0.5,-1.6)); +#47753=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47754=CARTESIAN_POINT('',(-5.49,0.5,-1.6)); +#47755=CARTESIAN_POINT('',(-5.49,0.377106686427072,-1.6)); +#47756=CARTESIAN_POINT('',(-5.49,0.95,-1.6)); +#47757=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47758=CARTESIAN_POINT('',(-5.71,0.95,-1.6)); +#47759=CARTESIAN_POINT('',(-5.71,0.377106686427072,-1.6)); +#47760=CARTESIAN_POINT('',(-5.71,0.5,-1.6)); +#47761=CARTESIAN_POINT('',(7.89,0.499999999999991,-1.6)); +#47762=CARTESIAN_POINT('',(-5.885,0.5,-1.6)); +#47763=CARTESIAN_POINT('',(-5.885,0.377106686427072,-1.6)); +#47764=CARTESIAN_POINT('',(-5.885,0.377106686427073,-1.6)); +#47765=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47766=CARTESIAN_POINT('',(-6.115,0.377106686427073,-1.6)); +#47767=CARTESIAN_POINT('',(-6.115,0.377106686427072,-1.6)); +#47768=CARTESIAN_POINT('',(-6.115,0.5,-1.6)); +#47769=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47770=CARTESIAN_POINT('',(-6.29,0.5,-1.6)); +#47771=CARTESIAN_POINT('',(-6.29,0.377106686427072,-1.6)); +#47772=CARTESIAN_POINT('',(-6.29,0.95,-1.6)); +#47773=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47774=CARTESIAN_POINT('',(-6.51,0.95,-1.6)); +#47775=CARTESIAN_POINT('',(-6.51,0.377106686427072,-1.6)); +#47776=CARTESIAN_POINT('',(-6.51,0.5,-1.6)); +#47777=CARTESIAN_POINT('',(7.89,0.499999999999991,-1.6)); +#47778=CARTESIAN_POINT('',(-6.685,0.5,-1.6)); +#47779=CARTESIAN_POINT('',(-6.685,0.377106686427072,-1.6)); +#47780=CARTESIAN_POINT('',(-6.685,0.377106686427073,-1.6)); +#47781=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47782=CARTESIAN_POINT('',(-6.915,0.377106686427073,-1.6)); +#47783=CARTESIAN_POINT('',(-6.915,0.377106686427072,-1.6)); +#47784=CARTESIAN_POINT('',(-6.915,0.5,-1.6)); +#47785=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47786=CARTESIAN_POINT('',(-7.09,0.5,-1.6)); +#47787=CARTESIAN_POINT('',(-7.09,0.377106686427072,-1.6)); +#47788=CARTESIAN_POINT('',(-7.09,0.95,-1.6)); +#47789=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47790=CARTESIAN_POINT('',(-7.31,0.95,-1.6)); +#47791=CARTESIAN_POINT('',(-7.31,0.377106686427072,-1.6)); +#47792=CARTESIAN_POINT('',(-7.31,0.5,-1.6)); +#47793=CARTESIAN_POINT('',(7.89,0.49999999999999,-1.6)); +#47794=CARTESIAN_POINT('',(-7.485,0.5,-1.6)); +#47795=CARTESIAN_POINT('',(-7.485,0.377106686427072,-1.6)); +#47796=CARTESIAN_POINT('',(-7.485,0.377106686427073,-1.6)); +#47797=CARTESIAN_POINT('',(7.89,0.377106686427073,-1.6)); +#47798=CARTESIAN_POINT('',(-7.715,0.377106686427073,-1.6)); +#47799=CARTESIAN_POINT('',(-7.715,0.377106686427072,-1.6)); +#47800=CARTESIAN_POINT('',(-7.715,0.5,-1.6)); +#47801=CARTESIAN_POINT('',(7.89,0.5,-1.6)); +#47802=CARTESIAN_POINT('',(-7.89,0.5,-1.6)); +#47803=CARTESIAN_POINT('',(-7.89,0.377106686427072,-1.6)); +#47804=CARTESIAN_POINT('',(-7.89,0.95,-1.6)); +#47805=CARTESIAN_POINT('',(8.,0.95,-1.6)); +#47806=CARTESIAN_POINT('',(-8.,0.95,-1.6)); +#47807=CARTESIAN_POINT('',(-8.,1.05,-1.6)); +#47808=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#47809=CARTESIAN_POINT('',(7.89,1.,-1.435)); +#47810=CARTESIAN_POINT('',(-7.95,1.,-1.435)); +#47811=CARTESIAN_POINT('',(7.95,1.,-1.435)); +#47812=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); +#47813=CARTESIAN_POINT('',(-7.95,0.95,-1.435)); +#47814=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47815=CARTESIAN_POINT('',(-7.89,0.95,-1.435)); +#47816=CARTESIAN_POINT('',(-7.89,1.,-1.43500000000001)); +#47817=CARTESIAN_POINT('',(-7.89,0.5,-1.435)); +#47818=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47819=CARTESIAN_POINT('',(-7.715,0.5,-1.435)); +#47820=CARTESIAN_POINT('',(-7.715,1.,-1.43500000000001)); +#47821=CARTESIAN_POINT('',(-7.715,0.341949810758634,-1.435)); +#47822=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47823=CARTESIAN_POINT('',(-7.485,0.341949810758634,-1.435)); +#47824=CARTESIAN_POINT('',(-7.485,1.,-1.43500000000001)); +#47825=CARTESIAN_POINT('',(-7.485,0.5,-1.435)); +#47826=CARTESIAN_POINT('',(7.89,0.49999999999999,-1.435)); +#47827=CARTESIAN_POINT('',(-7.31,0.5,-1.435)); +#47828=CARTESIAN_POINT('',(-7.31,1.,-1.43500000000001)); +#47829=CARTESIAN_POINT('',(-7.31,0.95,-1.43500000000001)); +#47830=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47831=CARTESIAN_POINT('',(-7.09,0.95,-1.435)); +#47832=CARTESIAN_POINT('',(-7.09,1.,-1.43500000000001)); +#47833=CARTESIAN_POINT('',(-7.09,0.5,-1.43500000000001)); +#47834=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47835=CARTESIAN_POINT('',(-6.915,0.5,-1.435)); +#47836=CARTESIAN_POINT('',(-6.915,1.,-1.43500000000001)); +#47837=CARTESIAN_POINT('',(-6.915,0.341949810758634,-1.435)); +#47838=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47839=CARTESIAN_POINT('',(-6.685,0.341949810758634,-1.435)); +#47840=CARTESIAN_POINT('',(-6.685,1.,-1.43500000000001)); +#47841=CARTESIAN_POINT('',(-6.685,0.5,-1.435)); +#47842=CARTESIAN_POINT('',(7.89,0.499999999999991,-1.435)); +#47843=CARTESIAN_POINT('',(-6.51,0.5,-1.435)); +#47844=CARTESIAN_POINT('',(-6.51,1.,-1.43500000000001)); +#47845=CARTESIAN_POINT('',(-6.51,0.95,-1.43500000000001)); +#47846=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47847=CARTESIAN_POINT('',(-6.29,0.95,-1.435)); +#47848=CARTESIAN_POINT('',(-6.29,1.,-1.43500000000001)); +#47849=CARTESIAN_POINT('',(-6.29,0.5,-1.43500000000001)); +#47850=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47851=CARTESIAN_POINT('',(-6.115,0.5,-1.435)); +#47852=CARTESIAN_POINT('',(-6.115,1.,-1.43500000000001)); +#47853=CARTESIAN_POINT('',(-6.115,0.341949810758634,-1.435)); +#47854=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47855=CARTESIAN_POINT('',(-5.885,0.341949810758634,-1.435)); +#47856=CARTESIAN_POINT('',(-5.885,1.,-1.43500000000001)); +#47857=CARTESIAN_POINT('',(-5.885,0.5,-1.435)); +#47858=CARTESIAN_POINT('',(7.89,0.499999999999991,-1.435)); +#47859=CARTESIAN_POINT('',(-5.71,0.5,-1.435)); +#47860=CARTESIAN_POINT('',(-5.71,1.,-1.43500000000001)); +#47861=CARTESIAN_POINT('',(-5.71,0.95,-1.43500000000001)); +#47862=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47863=CARTESIAN_POINT('',(-5.49,0.95,-1.435)); +#47864=CARTESIAN_POINT('',(-5.49,1.,-1.43500000000001)); +#47865=CARTESIAN_POINT('',(-5.49,0.5,-1.43500000000001)); +#47866=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47867=CARTESIAN_POINT('',(-5.315,0.5,-1.435)); +#47868=CARTESIAN_POINT('',(-5.315,1.,-1.43500000000001)); +#47869=CARTESIAN_POINT('',(-5.315,0.341949810758634,-1.435)); +#47870=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47871=CARTESIAN_POINT('',(-5.085,0.341949810758634,-1.435)); +#47872=CARTESIAN_POINT('',(-5.085,1.,-1.43500000000001)); +#47873=CARTESIAN_POINT('',(-5.085,0.5,-1.435)); +#47874=CARTESIAN_POINT('',(7.89,0.499999999999992,-1.435)); +#47875=CARTESIAN_POINT('',(-4.91,0.5,-1.435)); +#47876=CARTESIAN_POINT('',(-4.91,1.,-1.43500000000001)); +#47877=CARTESIAN_POINT('',(-4.91,0.95,-1.43500000000001)); +#47878=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47879=CARTESIAN_POINT('',(-4.69,0.95,-1.435)); +#47880=CARTESIAN_POINT('',(-4.69,1.,-1.43500000000001)); +#47881=CARTESIAN_POINT('',(-4.69,0.5,-1.43500000000001)); +#47882=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47883=CARTESIAN_POINT('',(-4.515,0.5,-1.435)); +#47884=CARTESIAN_POINT('',(-4.515,1.,-1.43500000000001)); +#47885=CARTESIAN_POINT('',(-4.515,0.341949810758634,-1.435)); +#47886=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47887=CARTESIAN_POINT('',(-4.285,0.341949810758634,-1.435)); +#47888=CARTESIAN_POINT('',(-4.285,1.,-1.43500000000001)); +#47889=CARTESIAN_POINT('',(-4.285,0.5,-1.435)); +#47890=CARTESIAN_POINT('',(7.89,0.499999999999992,-1.435)); +#47891=CARTESIAN_POINT('',(-4.11,0.5,-1.435)); +#47892=CARTESIAN_POINT('',(-4.11,1.,-1.43500000000001)); +#47893=CARTESIAN_POINT('',(-4.11,0.95,-1.43500000000001)); +#47894=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47895=CARTESIAN_POINT('',(-3.89,0.95,-1.435)); +#47896=CARTESIAN_POINT('',(-3.89,1.,-1.43500000000001)); +#47897=CARTESIAN_POINT('',(-3.89,0.5,-1.43500000000001)); +#47898=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47899=CARTESIAN_POINT('',(-3.715,0.5,-1.435)); +#47900=CARTESIAN_POINT('',(-3.715,1.,-1.43500000000001)); +#47901=CARTESIAN_POINT('',(-3.715,0.341949810758634,-1.435)); +#47902=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47903=CARTESIAN_POINT('',(-3.485,0.341949810758634,-1.435)); +#47904=CARTESIAN_POINT('',(-3.485,1.,-1.43500000000001)); +#47905=CARTESIAN_POINT('',(-3.485,0.5,-1.435)); +#47906=CARTESIAN_POINT('',(7.89,0.499999999999993,-1.435)); +#47907=CARTESIAN_POINT('',(-3.31,0.5,-1.435)); +#47908=CARTESIAN_POINT('',(-3.31,1.,-1.43500000000001)); +#47909=CARTESIAN_POINT('',(-3.31,0.95,-1.43500000000001)); +#47910=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47911=CARTESIAN_POINT('',(-3.09,0.95,-1.435)); +#47912=CARTESIAN_POINT('',(-3.09,1.,-1.43500000000001)); +#47913=CARTESIAN_POINT('',(-3.09,0.5,-1.43500000000001)); +#47914=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47915=CARTESIAN_POINT('',(-2.915,0.5,-1.435)); +#47916=CARTESIAN_POINT('',(-2.915,1.,-1.43500000000001)); +#47917=CARTESIAN_POINT('',(-2.915,0.341949810758634,-1.435)); +#47918=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47919=CARTESIAN_POINT('',(-2.685,0.341949810758634,-1.435)); +#47920=CARTESIAN_POINT('',(-2.685,1.,-1.43500000000001)); +#47921=CARTESIAN_POINT('',(-2.685,0.5,-1.435)); +#47922=CARTESIAN_POINT('',(7.89,0.499999999999994,-1.435)); +#47923=CARTESIAN_POINT('',(-2.51,0.5,-1.435)); +#47924=CARTESIAN_POINT('',(-2.51,1.,-1.43500000000001)); +#47925=CARTESIAN_POINT('',(-2.51,0.95,-1.43500000000001)); +#47926=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47927=CARTESIAN_POINT('',(-2.29,0.95,-1.435)); +#47928=CARTESIAN_POINT('',(-2.29,1.,-1.43500000000001)); +#47929=CARTESIAN_POINT('',(-2.29,0.5,-1.43500000000001)); +#47930=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47931=CARTESIAN_POINT('',(-2.115,0.5,-1.435)); +#47932=CARTESIAN_POINT('',(-2.115,1.,-1.43500000000001)); +#47933=CARTESIAN_POINT('',(-2.115,0.341949810758634,-1.435)); +#47934=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47935=CARTESIAN_POINT('',(-1.885,0.341949810758634,-1.435)); +#47936=CARTESIAN_POINT('',(-1.885,1.,-1.43500000000001)); +#47937=CARTESIAN_POINT('',(-1.885,0.5,-1.435)); +#47938=CARTESIAN_POINT('',(7.89,0.499999999999994,-1.435)); +#47939=CARTESIAN_POINT('',(-1.71,0.5,-1.435)); +#47940=CARTESIAN_POINT('',(-1.71,1.,-1.43500000000001)); +#47941=CARTESIAN_POINT('',(-1.71,0.95,-1.43500000000001)); +#47942=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47943=CARTESIAN_POINT('',(-1.49,0.95,-1.435)); +#47944=CARTESIAN_POINT('',(-1.49,1.,-1.43500000000001)); +#47945=CARTESIAN_POINT('',(-1.49,0.5,-1.43500000000001)); +#47946=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47947=CARTESIAN_POINT('',(-1.315,0.5,-1.435)); +#47948=CARTESIAN_POINT('',(-1.315,1.,-1.43500000000001)); +#47949=CARTESIAN_POINT('',(-1.315,0.341949810758634,-1.435)); +#47950=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47951=CARTESIAN_POINT('',(-1.085,0.341949810758634,-1.435)); +#47952=CARTESIAN_POINT('',(-1.085,1.,-1.43500000000001)); +#47953=CARTESIAN_POINT('',(-1.085,0.5,-1.435)); +#47954=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.435)); +#47955=CARTESIAN_POINT('',(-0.910000000000001,0.5,-1.435)); +#47956=CARTESIAN_POINT('',(-0.910000000000001,1.,-1.43500000000001)); +#47957=CARTESIAN_POINT('',(-0.910000000000001,0.95,-1.43500000000001)); +#47958=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47959=CARTESIAN_POINT('',(-0.690000000000001,0.95,-1.435)); +#47960=CARTESIAN_POINT('',(-0.690000000000001,1.,-1.43500000000001)); +#47961=CARTESIAN_POINT('',(-0.690000000000001,0.5,-1.43500000000001)); +#47962=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47963=CARTESIAN_POINT('',(-0.515000000000001,0.5,-1.435)); +#47964=CARTESIAN_POINT('',(-0.515000000000002,1.,-1.43500000000001)); +#47965=CARTESIAN_POINT('',(-0.515000000000002,0.341949810758634,-1.435)); +#47966=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47967=CARTESIAN_POINT('',(-0.285000000000001,0.341949810758634,-1.435)); +#47968=CARTESIAN_POINT('',(-0.285000000000001,1.,-1.43500000000001)); +#47969=CARTESIAN_POINT('',(-0.285,0.5,-1.435)); +#47970=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.435)); +#47971=CARTESIAN_POINT('',(-0.110000000000001,0.5,-1.435)); +#47972=CARTESIAN_POINT('',(-0.110000000000001,1.,-1.43500000000001)); +#47973=CARTESIAN_POINT('',(-0.110000000000001,0.95,-1.43500000000001)); +#47974=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47975=CARTESIAN_POINT('',(0.109999999999999,0.95,-1.435)); +#47976=CARTESIAN_POINT('',(0.109999999999999,1.,-1.43500000000001)); +#47977=CARTESIAN_POINT('',(0.109999999999999,0.5,-1.43500000000001)); +#47978=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47979=CARTESIAN_POINT('',(0.284999999999999,0.5,-1.435)); +#47980=CARTESIAN_POINT('',(0.284999999999999,1.,-1.43500000000001)); +#47981=CARTESIAN_POINT('',(0.284999999999999,0.341949810758634,-1.435)); +#47982=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47983=CARTESIAN_POINT('',(0.515,0.341949810758634,-1.435)); +#47984=CARTESIAN_POINT('',(0.515,1.,-1.43500000000001)); +#47985=CARTESIAN_POINT('',(0.515,0.5,-1.435)); +#47986=CARTESIAN_POINT('',(7.89,0.499999999999995,-1.435)); +#47987=CARTESIAN_POINT('',(0.69,0.5,-1.435)); +#47988=CARTESIAN_POINT('',(0.69,1.,-1.43500000000001)); +#47989=CARTESIAN_POINT('',(0.69,0.95,-1.43500000000001)); +#47990=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#47991=CARTESIAN_POINT('',(0.909999999999999,0.95,-1.435)); +#47992=CARTESIAN_POINT('',(0.909999999999999,1.,-1.43500000000001)); +#47993=CARTESIAN_POINT('',(0.909999999999999,0.5,-1.43500000000001)); +#47994=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#47995=CARTESIAN_POINT('',(1.085,0.5,-1.435)); +#47996=CARTESIAN_POINT('',(1.085,1.,-1.43500000000001)); +#47997=CARTESIAN_POINT('',(1.085,0.341949810758634,-1.435)); +#47998=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#47999=CARTESIAN_POINT('',(1.315,0.341949810758634,-1.435)); +#48000=CARTESIAN_POINT('',(1.315,1.,-1.43500000000001)); +#48001=CARTESIAN_POINT('',(1.315,0.5,-1.435)); +#48002=CARTESIAN_POINT('',(7.89,0.499999999999996,-1.435)); +#48003=CARTESIAN_POINT('',(1.49,0.5,-1.435)); +#48004=CARTESIAN_POINT('',(1.49,1.,-1.43500000000001)); +#48005=CARTESIAN_POINT('',(1.49,0.95,-1.43500000000001)); +#48006=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48007=CARTESIAN_POINT('',(1.71,0.95,-1.435)); +#48008=CARTESIAN_POINT('',(1.71,1.,-1.43500000000001)); +#48009=CARTESIAN_POINT('',(1.71,0.5,-1.43500000000001)); +#48010=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48011=CARTESIAN_POINT('',(1.885,0.5,-1.435)); +#48012=CARTESIAN_POINT('',(1.885,1.,-1.43500000000001)); +#48013=CARTESIAN_POINT('',(1.885,0.341949810758634,-1.435)); +#48014=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#48015=CARTESIAN_POINT('',(2.115,0.341949810758634,-1.435)); +#48016=CARTESIAN_POINT('',(2.115,1.,-1.43500000000001)); +#48017=CARTESIAN_POINT('',(2.115,0.5,-1.435)); +#48018=CARTESIAN_POINT('',(7.89,0.499999999999996,-1.435)); +#48019=CARTESIAN_POINT('',(2.29,0.5,-1.435)); +#48020=CARTESIAN_POINT('',(2.29,1.,-1.43500000000001)); +#48021=CARTESIAN_POINT('',(2.29,0.95,-1.43500000000001)); +#48022=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48023=CARTESIAN_POINT('',(2.51,0.95,-1.435)); +#48024=CARTESIAN_POINT('',(2.51,1.,-1.43500000000001)); +#48025=CARTESIAN_POINT('',(2.51,0.5,-1.43500000000001)); +#48026=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48027=CARTESIAN_POINT('',(2.685,0.5,-1.435)); +#48028=CARTESIAN_POINT('',(2.685,1.,-1.43500000000001)); +#48029=CARTESIAN_POINT('',(2.685,0.341949810758634,-1.435)); +#48030=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#48031=CARTESIAN_POINT('',(2.915,0.341949810758634,-1.435)); +#48032=CARTESIAN_POINT('',(2.915,1.,-1.43500000000001)); +#48033=CARTESIAN_POINT('',(2.915,0.5,-1.435)); +#48034=CARTESIAN_POINT('',(7.89,0.499999999999997,-1.435)); +#48035=CARTESIAN_POINT('',(3.09,0.5,-1.435)); +#48036=CARTESIAN_POINT('',(3.09,1.,-1.43500000000001)); +#48037=CARTESIAN_POINT('',(3.09,0.95,-1.43500000000001)); +#48038=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48039=CARTESIAN_POINT('',(3.31,0.95,-1.435)); +#48040=CARTESIAN_POINT('',(3.31,1.,-1.43500000000001)); +#48041=CARTESIAN_POINT('',(3.31,0.5,-1.43500000000001)); +#48042=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48043=CARTESIAN_POINT('',(3.485,0.5,-1.435)); +#48044=CARTESIAN_POINT('',(3.485,1.,-1.43500000000001)); +#48045=CARTESIAN_POINT('',(3.485,0.341949810758634,-1.435)); +#48046=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#48047=CARTESIAN_POINT('',(3.715,0.341949810758634,-1.435)); +#48048=CARTESIAN_POINT('',(3.715,1.,-1.43500000000001)); +#48049=CARTESIAN_POINT('',(3.715,0.5,-1.435)); +#48050=CARTESIAN_POINT('',(7.89,0.499999999999997,-1.435)); +#48051=CARTESIAN_POINT('',(3.89,0.5,-1.435)); +#48052=CARTESIAN_POINT('',(3.89,1.,-1.43500000000001)); +#48053=CARTESIAN_POINT('',(3.89,0.95,-1.43500000000001)); +#48054=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48055=CARTESIAN_POINT('',(4.11,0.95,-1.435)); +#48056=CARTESIAN_POINT('',(4.11,1.,-1.43500000000001)); +#48057=CARTESIAN_POINT('',(4.11,0.5,-1.43500000000001)); +#48058=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48059=CARTESIAN_POINT('',(4.285,0.5,-1.435)); +#48060=CARTESIAN_POINT('',(4.285,1.,-1.43500000000001)); +#48061=CARTESIAN_POINT('',(4.285,0.341949810758634,-1.435)); +#48062=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#48063=CARTESIAN_POINT('',(4.515,0.341949810758634,-1.435)); +#48064=CARTESIAN_POINT('',(4.515,1.,-1.43500000000001)); +#48065=CARTESIAN_POINT('',(4.515,0.5,-1.435)); +#48066=CARTESIAN_POINT('',(7.89,0.499999999999998,-1.435)); +#48067=CARTESIAN_POINT('',(4.69,0.5,-1.435)); +#48068=CARTESIAN_POINT('',(4.69,1.,-1.43500000000001)); +#48069=CARTESIAN_POINT('',(4.69,0.95,-1.43500000000001)); +#48070=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48071=CARTESIAN_POINT('',(4.91,0.95,-1.435)); +#48072=CARTESIAN_POINT('',(4.91,1.,-1.43500000000001)); +#48073=CARTESIAN_POINT('',(4.91,0.5,-1.43500000000001)); +#48074=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48075=CARTESIAN_POINT('',(5.085,0.5,-1.435)); +#48076=CARTESIAN_POINT('',(5.085,1.,-1.43500000000001)); +#48077=CARTESIAN_POINT('',(5.085,0.341949810758634,-1.435)); +#48078=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#48079=CARTESIAN_POINT('',(5.315,0.341949810758634,-1.435)); +#48080=CARTESIAN_POINT('',(5.315,1.,-1.43500000000001)); +#48081=CARTESIAN_POINT('',(5.315,0.5,-1.435)); +#48082=CARTESIAN_POINT('',(7.89,0.499999999999998,-1.435)); +#48083=CARTESIAN_POINT('',(5.49,0.5,-1.435)); +#48084=CARTESIAN_POINT('',(5.49,1.,-1.43500000000001)); +#48085=CARTESIAN_POINT('',(5.49,0.95,-1.43500000000001)); +#48086=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48087=CARTESIAN_POINT('',(5.71,0.95,-1.435)); +#48088=CARTESIAN_POINT('',(5.71,1.,-1.43500000000001)); +#48089=CARTESIAN_POINT('',(5.71,0.5,-1.43500000000001)); +#48090=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48091=CARTESIAN_POINT('',(5.885,0.5,-1.435)); +#48092=CARTESIAN_POINT('',(5.885,1.,-1.43500000000001)); +#48093=CARTESIAN_POINT('',(5.885,0.341949810758634,-1.435)); +#48094=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#48095=CARTESIAN_POINT('',(6.115,0.341949810758634,-1.435)); +#48096=CARTESIAN_POINT('',(6.115,1.,-1.43500000000001)); +#48097=CARTESIAN_POINT('',(6.115,0.5,-1.435)); +#48098=CARTESIAN_POINT('',(7.89,0.499999999999999,-1.435)); +#48099=CARTESIAN_POINT('',(6.29,0.5,-1.435)); +#48100=CARTESIAN_POINT('',(6.29,1.,-1.43500000000001)); +#48101=CARTESIAN_POINT('',(6.29,0.95,-1.43500000000001)); +#48102=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48103=CARTESIAN_POINT('',(6.51,0.95,-1.435)); +#48104=CARTESIAN_POINT('',(6.51,1.,-1.43500000000001)); +#48105=CARTESIAN_POINT('',(6.51,0.5,-1.43500000000001)); +#48106=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48107=CARTESIAN_POINT('',(6.685,0.5,-1.435)); +#48108=CARTESIAN_POINT('',(6.685,1.,-1.43500000000001)); +#48109=CARTESIAN_POINT('',(6.685,0.341949810758634,-1.435)); +#48110=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#48111=CARTESIAN_POINT('',(6.915,0.341949810758634,-1.435)); +#48112=CARTESIAN_POINT('',(6.915,1.,-1.43500000000001)); +#48113=CARTESIAN_POINT('',(6.915,0.5,-1.435)); +#48114=CARTESIAN_POINT('',(7.89,0.499999999999999,-1.435)); +#48115=CARTESIAN_POINT('',(7.09,0.5,-1.435)); +#48116=CARTESIAN_POINT('',(7.09,1.,-1.43500000000001)); +#48117=CARTESIAN_POINT('',(7.09,0.95,-1.43500000000001)); +#48118=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48119=CARTESIAN_POINT('',(7.31,0.95,-1.43500000000001)); +#48120=CARTESIAN_POINT('',(7.31,1.,-1.43500000000001)); +#48121=CARTESIAN_POINT('',(7.31,0.5,-1.43500000000001)); +#48122=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48123=CARTESIAN_POINT('',(7.485,0.5,-1.435)); +#48124=CARTESIAN_POINT('',(7.485,1.,-1.43500000000001)); +#48125=CARTESIAN_POINT('',(7.485,0.341949810758634,-1.435)); +#48126=CARTESIAN_POINT('',(7.89,0.341949810758634,-1.435)); +#48127=CARTESIAN_POINT('',(7.715,0.341949810758634,-1.435)); +#48128=CARTESIAN_POINT('',(7.715,1.,-1.43500000000001)); +#48129=CARTESIAN_POINT('',(7.715,0.5,-1.435)); +#48130=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48131=CARTESIAN_POINT('',(7.89,0.5,-1.435)); +#48132=CARTESIAN_POINT('',(7.89,1.,-1.43500000000001)); +#48133=CARTESIAN_POINT('',(7.89,0.95,-1.43500000000001)); +#48134=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48135=CARTESIAN_POINT('',(7.95,0.95,-1.435)); +#48136=CARTESIAN_POINT('',(7.95,1.05,-1.435)); +#48137=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#48138=CARTESIAN_POINT('',(7.89,1.,1.435)); +#48139=CARTESIAN_POINT('',(7.95,1.,1.435)); +#48140=CARTESIAN_POINT('',(-7.95,1.,1.435)); +#48141=CARTESIAN_POINT('',(7.95,1.05,1.435)); +#48142=CARTESIAN_POINT('',(7.95,0.95,1.435)); +#48143=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48144=CARTESIAN_POINT('',(7.89,0.95,1.435)); +#48145=CARTESIAN_POINT('',(7.89,0.341949810758634,1.435)); +#48146=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48147=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48148=CARTESIAN_POINT('',(7.715,0.5,1.435)); +#48149=CARTESIAN_POINT('',(7.715,0.341949810758634,1.435)); +#48150=CARTESIAN_POINT('',(7.715,0.341949810758633,1.435)); +#48151=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48152=CARTESIAN_POINT('',(7.485,0.341949810758633,1.435)); +#48153=CARTESIAN_POINT('',(7.485,0.341949810758634,1.435)); +#48154=CARTESIAN_POINT('',(7.485,0.5,1.435)); +#48155=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48156=CARTESIAN_POINT('',(7.31,0.5,1.435)); +#48157=CARTESIAN_POINT('',(7.31,0.341949810758634,1.435)); +#48158=CARTESIAN_POINT('',(7.31,0.95,1.435)); +#48159=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48160=CARTESIAN_POINT('',(7.09,0.95,1.435)); +#48161=CARTESIAN_POINT('',(7.09,0.341949810758634,1.435)); +#48162=CARTESIAN_POINT('',(7.09,0.5,1.435)); +#48163=CARTESIAN_POINT('',(7.89,0.499999999999999,1.435)); +#48164=CARTESIAN_POINT('',(6.915,0.5,1.435)); +#48165=CARTESIAN_POINT('',(6.915,0.341949810758634,1.435)); +#48166=CARTESIAN_POINT('',(6.915,0.341949810758633,1.435)); +#48167=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48168=CARTESIAN_POINT('',(6.685,0.341949810758633,1.435)); +#48169=CARTESIAN_POINT('',(6.685,0.341949810758634,1.435)); +#48170=CARTESIAN_POINT('',(6.685,0.5,1.435)); +#48171=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48172=CARTESIAN_POINT('',(6.51,0.5,1.435)); +#48173=CARTESIAN_POINT('',(6.51,0.341949810758634,1.435)); +#48174=CARTESIAN_POINT('',(6.51,0.95,1.435)); +#48175=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48176=CARTESIAN_POINT('',(6.29,0.95,1.435)); +#48177=CARTESIAN_POINT('',(6.29,0.341949810758634,1.435)); +#48178=CARTESIAN_POINT('',(6.29,0.5,1.435)); +#48179=CARTESIAN_POINT('',(7.89,0.499999999999999,1.435)); +#48180=CARTESIAN_POINT('',(6.115,0.5,1.435)); +#48181=CARTESIAN_POINT('',(6.115,0.341949810758634,1.435)); +#48182=CARTESIAN_POINT('',(6.115,0.341949810758633,1.435)); +#48183=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48184=CARTESIAN_POINT('',(5.885,0.341949810758633,1.435)); +#48185=CARTESIAN_POINT('',(5.885,0.341949810758634,1.435)); +#48186=CARTESIAN_POINT('',(5.885,0.5,1.435)); +#48187=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48188=CARTESIAN_POINT('',(5.71,0.5,1.435)); +#48189=CARTESIAN_POINT('',(5.71,0.341949810758634,1.435)); +#48190=CARTESIAN_POINT('',(5.71,0.95,1.435)); +#48191=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48192=CARTESIAN_POINT('',(5.49,0.95,1.435)); +#48193=CARTESIAN_POINT('',(5.49,0.341949810758634,1.435)); +#48194=CARTESIAN_POINT('',(5.49,0.5,1.435)); +#48195=CARTESIAN_POINT('',(7.89,0.499999999999998,1.435)); +#48196=CARTESIAN_POINT('',(5.315,0.5,1.435)); +#48197=CARTESIAN_POINT('',(5.315,0.341949810758634,1.435)); +#48198=CARTESIAN_POINT('',(5.315,0.341949810758633,1.435)); +#48199=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48200=CARTESIAN_POINT('',(5.085,0.341949810758633,1.435)); +#48201=CARTESIAN_POINT('',(5.085,0.341949810758634,1.435)); +#48202=CARTESIAN_POINT('',(5.085,0.5,1.435)); +#48203=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48204=CARTESIAN_POINT('',(4.91,0.5,1.435)); +#48205=CARTESIAN_POINT('',(4.91,0.341949810758634,1.435)); +#48206=CARTESIAN_POINT('',(4.91,0.95,1.435)); +#48207=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48208=CARTESIAN_POINT('',(4.69,0.95,1.435)); +#48209=CARTESIAN_POINT('',(4.69,0.341949810758634,1.435)); +#48210=CARTESIAN_POINT('',(4.69,0.5,1.435)); +#48211=CARTESIAN_POINT('',(7.89,0.499999999999998,1.435)); +#48212=CARTESIAN_POINT('',(4.515,0.5,1.435)); +#48213=CARTESIAN_POINT('',(4.515,0.341949810758634,1.435)); +#48214=CARTESIAN_POINT('',(4.515,0.341949810758633,1.435)); +#48215=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48216=CARTESIAN_POINT('',(4.285,0.341949810758633,1.435)); +#48217=CARTESIAN_POINT('',(4.285,0.341949810758634,1.435)); +#48218=CARTESIAN_POINT('',(4.285,0.5,1.435)); +#48219=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48220=CARTESIAN_POINT('',(4.11,0.5,1.435)); +#48221=CARTESIAN_POINT('',(4.11,0.341949810758634,1.435)); +#48222=CARTESIAN_POINT('',(4.11,0.95,1.435)); +#48223=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48224=CARTESIAN_POINT('',(3.89,0.95,1.435)); +#48225=CARTESIAN_POINT('',(3.89,0.341949810758634,1.435)); +#48226=CARTESIAN_POINT('',(3.89,0.5,1.435)); +#48227=CARTESIAN_POINT('',(7.89,0.499999999999997,1.435)); +#48228=CARTESIAN_POINT('',(3.715,0.5,1.435)); +#48229=CARTESIAN_POINT('',(3.715,0.341949810758634,1.435)); +#48230=CARTESIAN_POINT('',(3.715,0.341949810758633,1.435)); +#48231=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48232=CARTESIAN_POINT('',(3.485,0.341949810758633,1.435)); +#48233=CARTESIAN_POINT('',(3.485,0.341949810758634,1.435)); +#48234=CARTESIAN_POINT('',(3.485,0.5,1.435)); +#48235=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48236=CARTESIAN_POINT('',(3.31,0.5,1.435)); +#48237=CARTESIAN_POINT('',(3.31,0.341949810758634,1.435)); +#48238=CARTESIAN_POINT('',(3.31,0.95,1.435)); +#48239=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48240=CARTESIAN_POINT('',(3.09,0.95,1.435)); +#48241=CARTESIAN_POINT('',(3.09,0.341949810758634,1.435)); +#48242=CARTESIAN_POINT('',(3.09,0.5,1.435)); +#48243=CARTESIAN_POINT('',(7.89,0.499999999999997,1.435)); +#48244=CARTESIAN_POINT('',(2.915,0.5,1.435)); +#48245=CARTESIAN_POINT('',(2.915,0.341949810758634,1.435)); +#48246=CARTESIAN_POINT('',(2.915,0.341949810758633,1.435)); +#48247=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48248=CARTESIAN_POINT('',(2.685,0.341949810758633,1.435)); +#48249=CARTESIAN_POINT('',(2.685,0.341949810758634,1.435)); +#48250=CARTESIAN_POINT('',(2.685,0.5,1.435)); +#48251=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48252=CARTESIAN_POINT('',(2.51,0.5,1.435)); +#48253=CARTESIAN_POINT('',(2.51,0.341949810758634,1.435)); +#48254=CARTESIAN_POINT('',(2.51,0.95,1.435)); +#48255=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48256=CARTESIAN_POINT('',(2.29,0.95,1.435)); +#48257=CARTESIAN_POINT('',(2.29,0.341949810758634,1.435)); +#48258=CARTESIAN_POINT('',(2.29,0.5,1.435)); +#48259=CARTESIAN_POINT('',(7.89,0.499999999999996,1.435)); +#48260=CARTESIAN_POINT('',(2.115,0.5,1.435)); +#48261=CARTESIAN_POINT('',(2.115,0.341949810758634,1.435)); +#48262=CARTESIAN_POINT('',(2.115,0.341949810758633,1.435)); +#48263=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48264=CARTESIAN_POINT('',(1.885,0.341949810758633,1.435)); +#48265=CARTESIAN_POINT('',(1.885,0.341949810758634,1.435)); +#48266=CARTESIAN_POINT('',(1.885,0.5,1.435)); +#48267=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48268=CARTESIAN_POINT('',(1.71,0.5,1.435)); +#48269=CARTESIAN_POINT('',(1.71,0.341949810758634,1.435)); +#48270=CARTESIAN_POINT('',(1.71,0.95,1.435)); +#48271=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48272=CARTESIAN_POINT('',(1.49,0.95,1.435)); +#48273=CARTESIAN_POINT('',(1.49,0.341949810758634,1.435)); +#48274=CARTESIAN_POINT('',(1.49,0.5,1.435)); +#48275=CARTESIAN_POINT('',(7.89,0.499999999999996,1.435)); +#48276=CARTESIAN_POINT('',(1.315,0.5,1.435)); +#48277=CARTESIAN_POINT('',(1.315,0.341949810758634,1.435)); +#48278=CARTESIAN_POINT('',(1.315,0.341949810758633,1.435)); +#48279=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48280=CARTESIAN_POINT('',(1.085,0.341949810758633,1.435)); +#48281=CARTESIAN_POINT('',(1.085,0.341949810758634,1.435)); +#48282=CARTESIAN_POINT('',(1.085,0.5,1.435)); +#48283=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48284=CARTESIAN_POINT('',(0.909999999999999,0.5,1.435)); +#48285=CARTESIAN_POINT('',(0.909999999999999,0.341949810758634,1.435)); +#48286=CARTESIAN_POINT('',(0.909999999999999,0.95,1.435)); +#48287=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48288=CARTESIAN_POINT('',(0.69,0.95,1.435)); +#48289=CARTESIAN_POINT('',(0.69,0.341949810758634,1.435)); +#48290=CARTESIAN_POINT('',(0.69,0.5,1.435)); +#48291=CARTESIAN_POINT('',(7.89,0.499999999999995,1.435)); +#48292=CARTESIAN_POINT('',(0.515,0.5,1.435)); +#48293=CARTESIAN_POINT('',(0.515,0.341949810758634,1.435)); +#48294=CARTESIAN_POINT('',(0.515,0.341949810758633,1.435)); +#48295=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48296=CARTESIAN_POINT('',(0.284999999999999,0.341949810758633,1.435)); +#48297=CARTESIAN_POINT('',(0.284999999999999,0.341949810758634,1.435)); +#48298=CARTESIAN_POINT('',(0.284999999999999,0.5,1.435)); +#48299=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48300=CARTESIAN_POINT('',(0.109999999999999,0.5,1.435)); +#48301=CARTESIAN_POINT('',(0.109999999999999,0.341949810758634,1.435)); +#48302=CARTESIAN_POINT('',(0.109999999999999,0.95,1.435)); +#48303=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48304=CARTESIAN_POINT('',(-0.110000000000001,0.95,1.435)); +#48305=CARTESIAN_POINT('',(-0.110000000000001,0.341949810758634,1.435)); +#48306=CARTESIAN_POINT('',(-0.110000000000001,0.5,1.435)); +#48307=CARTESIAN_POINT('',(7.89,0.499999999999995,1.435)); +#48308=CARTESIAN_POINT('',(-0.285,0.5,1.435)); +#48309=CARTESIAN_POINT('',(-0.285000000000001,0.341949810758634,1.435)); +#48310=CARTESIAN_POINT('',(-0.285000000000001,0.341949810758633,1.435)); +#48311=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48312=CARTESIAN_POINT('',(-0.515000000000002,0.341949810758633,1.435)); +#48313=CARTESIAN_POINT('',(-0.515000000000002,0.341949810758634,1.435)); +#48314=CARTESIAN_POINT('',(-0.515000000000001,0.5,1.435)); +#48315=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48316=CARTESIAN_POINT('',(-0.690000000000001,0.5,1.435)); +#48317=CARTESIAN_POINT('',(-0.690000000000001,0.341949810758634,1.435)); +#48318=CARTESIAN_POINT('',(-0.690000000000001,0.95,1.435)); +#48319=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48320=CARTESIAN_POINT('',(-0.910000000000001,0.95,1.435)); +#48321=CARTESIAN_POINT('',(-0.910000000000001,0.341949810758634,1.435)); +#48322=CARTESIAN_POINT('',(-0.910000000000001,0.5,1.435)); +#48323=CARTESIAN_POINT('',(7.89,0.499999999999995,1.435)); +#48324=CARTESIAN_POINT('',(-1.085,0.5,1.435)); +#48325=CARTESIAN_POINT('',(-1.085,0.341949810758634,1.435)); +#48326=CARTESIAN_POINT('',(-1.085,0.341949810758633,1.435)); +#48327=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48328=CARTESIAN_POINT('',(-1.315,0.341949810758633,1.435)); +#48329=CARTESIAN_POINT('',(-1.315,0.341949810758634,1.435)); +#48330=CARTESIAN_POINT('',(-1.315,0.5,1.435)); +#48331=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48332=CARTESIAN_POINT('',(-1.49,0.5,1.435)); +#48333=CARTESIAN_POINT('',(-1.49,0.341949810758634,1.435)); +#48334=CARTESIAN_POINT('',(-1.49,0.95,1.435)); +#48335=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48336=CARTESIAN_POINT('',(-1.71,0.95,1.435)); +#48337=CARTESIAN_POINT('',(-1.71,0.341949810758634,1.435)); +#48338=CARTESIAN_POINT('',(-1.71,0.5,1.435)); +#48339=CARTESIAN_POINT('',(7.89,0.499999999999994,1.435)); +#48340=CARTESIAN_POINT('',(-1.885,0.5,1.435)); +#48341=CARTESIAN_POINT('',(-1.885,0.341949810758634,1.435)); +#48342=CARTESIAN_POINT('',(-1.885,0.341949810758633,1.435)); +#48343=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48344=CARTESIAN_POINT('',(-2.115,0.341949810758633,1.435)); +#48345=CARTESIAN_POINT('',(-2.115,0.341949810758634,1.435)); +#48346=CARTESIAN_POINT('',(-2.115,0.5,1.435)); +#48347=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48348=CARTESIAN_POINT('',(-2.29,0.5,1.435)); +#48349=CARTESIAN_POINT('',(-2.29,0.341949810758634,1.435)); +#48350=CARTESIAN_POINT('',(-2.29,0.95,1.435)); +#48351=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48352=CARTESIAN_POINT('',(-2.51,0.95,1.435)); +#48353=CARTESIAN_POINT('',(-2.51,0.341949810758634,1.435)); +#48354=CARTESIAN_POINT('',(-2.51,0.5,1.435)); +#48355=CARTESIAN_POINT('',(7.89,0.499999999999994,1.435)); +#48356=CARTESIAN_POINT('',(-2.685,0.5,1.435)); +#48357=CARTESIAN_POINT('',(-2.685,0.341949810758634,1.435)); +#48358=CARTESIAN_POINT('',(-2.685,0.341949810758633,1.435)); +#48359=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48360=CARTESIAN_POINT('',(-2.915,0.341949810758633,1.435)); +#48361=CARTESIAN_POINT('',(-2.915,0.341949810758634,1.435)); +#48362=CARTESIAN_POINT('',(-2.915,0.5,1.435)); +#48363=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48364=CARTESIAN_POINT('',(-3.09,0.5,1.435)); +#48365=CARTESIAN_POINT('',(-3.09,0.341949810758634,1.435)); +#48366=CARTESIAN_POINT('',(-3.09,0.95,1.435)); +#48367=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48368=CARTESIAN_POINT('',(-3.31,0.95,1.435)); +#48369=CARTESIAN_POINT('',(-3.31,0.341949810758634,1.435)); +#48370=CARTESIAN_POINT('',(-3.31,0.5,1.435)); +#48371=CARTESIAN_POINT('',(7.89,0.499999999999993,1.435)); +#48372=CARTESIAN_POINT('',(-3.485,0.5,1.435)); +#48373=CARTESIAN_POINT('',(-3.485,0.341949810758634,1.435)); +#48374=CARTESIAN_POINT('',(-3.485,0.341949810758633,1.435)); +#48375=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48376=CARTESIAN_POINT('',(-3.715,0.341949810758633,1.435)); +#48377=CARTESIAN_POINT('',(-3.715,0.341949810758634,1.435)); +#48378=CARTESIAN_POINT('',(-3.715,0.5,1.435)); +#48379=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48380=CARTESIAN_POINT('',(-3.89,0.5,1.435)); +#48381=CARTESIAN_POINT('',(-3.89,0.341949810758634,1.435)); +#48382=CARTESIAN_POINT('',(-3.89,0.95,1.435)); +#48383=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48384=CARTESIAN_POINT('',(-4.11,0.95,1.435)); +#48385=CARTESIAN_POINT('',(-4.11,0.341949810758634,1.435)); +#48386=CARTESIAN_POINT('',(-4.11,0.5,1.435)); +#48387=CARTESIAN_POINT('',(7.89,0.499999999999992,1.435)); +#48388=CARTESIAN_POINT('',(-4.285,0.5,1.435)); +#48389=CARTESIAN_POINT('',(-4.285,0.341949810758634,1.435)); +#48390=CARTESIAN_POINT('',(-4.285,0.341949810758633,1.435)); +#48391=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48392=CARTESIAN_POINT('',(-4.515,0.341949810758633,1.435)); +#48393=CARTESIAN_POINT('',(-4.515,0.341949810758634,1.435)); +#48394=CARTESIAN_POINT('',(-4.515,0.5,1.435)); +#48395=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48396=CARTESIAN_POINT('',(-4.69,0.5,1.435)); +#48397=CARTESIAN_POINT('',(-4.69,0.341949810758634,1.435)); +#48398=CARTESIAN_POINT('',(-4.69,0.95,1.435)); +#48399=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48400=CARTESIAN_POINT('',(-4.91,0.95,1.435)); +#48401=CARTESIAN_POINT('',(-4.91,0.341949810758634,1.435)); +#48402=CARTESIAN_POINT('',(-4.91,0.5,1.435)); +#48403=CARTESIAN_POINT('',(7.89,0.499999999999992,1.435)); +#48404=CARTESIAN_POINT('',(-5.085,0.5,1.435)); +#48405=CARTESIAN_POINT('',(-5.085,0.341949810758634,1.435)); +#48406=CARTESIAN_POINT('',(-5.085,0.341949810758633,1.435)); +#48407=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48408=CARTESIAN_POINT('',(-5.315,0.341949810758633,1.435)); +#48409=CARTESIAN_POINT('',(-5.315,0.341949810758634,1.435)); +#48410=CARTESIAN_POINT('',(-5.315,0.5,1.435)); +#48411=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48412=CARTESIAN_POINT('',(-5.49,0.5,1.435)); +#48413=CARTESIAN_POINT('',(-5.49,0.341949810758634,1.435)); +#48414=CARTESIAN_POINT('',(-5.49,0.95,1.435)); +#48415=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48416=CARTESIAN_POINT('',(-5.71,0.95,1.435)); +#48417=CARTESIAN_POINT('',(-5.71,0.341949810758634,1.435)); +#48418=CARTESIAN_POINT('',(-5.71,0.5,1.435)); +#48419=CARTESIAN_POINT('',(7.89,0.499999999999991,1.435)); +#48420=CARTESIAN_POINT('',(-5.885,0.5,1.435)); +#48421=CARTESIAN_POINT('',(-5.885,0.341949810758634,1.435)); +#48422=CARTESIAN_POINT('',(-5.885,0.341949810758633,1.435)); +#48423=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48424=CARTESIAN_POINT('',(-6.115,0.341949810758633,1.435)); +#48425=CARTESIAN_POINT('',(-6.115,0.341949810758634,1.435)); +#48426=CARTESIAN_POINT('',(-6.115,0.5,1.435)); +#48427=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48428=CARTESIAN_POINT('',(-6.29,0.5,1.435)); +#48429=CARTESIAN_POINT('',(-6.29,0.341949810758634,1.435)); +#48430=CARTESIAN_POINT('',(-6.29,0.95,1.435)); +#48431=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48432=CARTESIAN_POINT('',(-6.51,0.95,1.435)); +#48433=CARTESIAN_POINT('',(-6.51,0.341949810758634,1.435)); +#48434=CARTESIAN_POINT('',(-6.51,0.5,1.435)); +#48435=CARTESIAN_POINT('',(7.89,0.499999999999991,1.435)); +#48436=CARTESIAN_POINT('',(-6.685,0.5,1.435)); +#48437=CARTESIAN_POINT('',(-6.685,0.341949810758634,1.435)); +#48438=CARTESIAN_POINT('',(-6.685,0.341949810758633,1.435)); +#48439=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48440=CARTESIAN_POINT('',(-6.915,0.341949810758633,1.435)); +#48441=CARTESIAN_POINT('',(-6.915,0.341949810758634,1.435)); +#48442=CARTESIAN_POINT('',(-6.915,0.5,1.435)); +#48443=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48444=CARTESIAN_POINT('',(-7.09,0.5,1.435)); +#48445=CARTESIAN_POINT('',(-7.09,0.341949810758634,1.435)); +#48446=CARTESIAN_POINT('',(-7.09,0.95,1.435)); +#48447=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48448=CARTESIAN_POINT('',(-7.31,0.95,1.435)); +#48449=CARTESIAN_POINT('',(-7.31,0.341949810758634,1.435)); +#48450=CARTESIAN_POINT('',(-7.31,0.5,1.435)); +#48451=CARTESIAN_POINT('',(7.89,0.49999999999999,1.435)); +#48452=CARTESIAN_POINT('',(-7.485,0.5,1.435)); +#48453=CARTESIAN_POINT('',(-7.485,0.341949810758634,1.435)); +#48454=CARTESIAN_POINT('',(-7.485,0.341949810758633,1.435)); +#48455=CARTESIAN_POINT('',(7.89,0.341949810758633,1.435)); +#48456=CARTESIAN_POINT('',(-7.715,0.341949810758633,1.435)); +#48457=CARTESIAN_POINT('',(-7.715,0.341949810758634,1.435)); +#48458=CARTESIAN_POINT('',(-7.715,0.5,1.435)); +#48459=CARTESIAN_POINT('',(7.89,0.5,1.435)); +#48460=CARTESIAN_POINT('',(-7.89,0.5,1.435)); +#48461=CARTESIAN_POINT('',(-7.89,0.341949810758634,1.435)); +#48462=CARTESIAN_POINT('',(-7.89,0.95,1.435)); +#48463=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48464=CARTESIAN_POINT('',(-7.95,0.95,1.435)); +#48465=CARTESIAN_POINT('',(-7.95,1.05,1.435)); +#48466=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#48467=CARTESIAN_POINT('',(7.89,1.,1.6)); +#48468=CARTESIAN_POINT('',(-8.,1.,1.6)); +#48469=CARTESIAN_POINT('',(8.,1.,1.6)); +#48470=CARTESIAN_POINT('',(-8.,1.05,1.6)); +#48471=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48472=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48473=CARTESIAN_POINT('',(-7.89,0.95,1.6)); +#48474=CARTESIAN_POINT('',(-7.89,7.155,1.6)); +#48475=CARTESIAN_POINT('',(-7.89,0.5,1.6)); +#48476=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48477=CARTESIAN_POINT('',(-7.715,0.5,1.6)); +#48478=CARTESIAN_POINT('',(-7.715,7.155,1.6)); +#48479=CARTESIAN_POINT('',(-7.715,0.377106686427072,1.6)); +#48480=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48481=CARTESIAN_POINT('',(-7.485,0.377106686427072,1.6)); +#48482=CARTESIAN_POINT('',(-7.485,7.155,1.6)); +#48483=CARTESIAN_POINT('',(-7.485,0.5,1.6)); +#48484=CARTESIAN_POINT('',(7.89,0.49999999999999,1.6)); +#48485=CARTESIAN_POINT('',(-7.31,0.5,1.6)); +#48486=CARTESIAN_POINT('',(-7.31,7.155,1.6)); +#48487=CARTESIAN_POINT('',(-7.31,0.95,1.6)); +#48488=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48489=CARTESIAN_POINT('',(-7.09,0.95,1.6)); +#48490=CARTESIAN_POINT('',(-7.09,7.155,1.6)); +#48491=CARTESIAN_POINT('',(-7.09,0.5,1.6)); +#48492=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48493=CARTESIAN_POINT('',(-6.915,0.5,1.6)); +#48494=CARTESIAN_POINT('',(-6.915,7.155,1.6)); +#48495=CARTESIAN_POINT('',(-6.915,0.377106686427072,1.6)); +#48496=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48497=CARTESIAN_POINT('',(-6.685,0.377106686427072,1.6)); +#48498=CARTESIAN_POINT('',(-6.685,7.155,1.6)); +#48499=CARTESIAN_POINT('',(-6.685,0.5,1.6)); +#48500=CARTESIAN_POINT('',(7.89,0.499999999999991,1.6)); +#48501=CARTESIAN_POINT('',(-6.51,0.5,1.6)); +#48502=CARTESIAN_POINT('',(-6.51,7.155,1.6)); +#48503=CARTESIAN_POINT('',(-6.51,0.95,1.6)); +#48504=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48505=CARTESIAN_POINT('',(-6.29,0.95,1.6)); +#48506=CARTESIAN_POINT('',(-6.29,7.155,1.6)); +#48507=CARTESIAN_POINT('',(-6.29,0.5,1.6)); +#48508=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48509=CARTESIAN_POINT('',(-6.115,0.5,1.6)); +#48510=CARTESIAN_POINT('',(-6.115,7.155,1.6)); +#48511=CARTESIAN_POINT('',(-6.115,0.377106686427072,1.6)); +#48512=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48513=CARTESIAN_POINT('',(-5.885,0.377106686427072,1.6)); +#48514=CARTESIAN_POINT('',(-5.885,7.155,1.6)); +#48515=CARTESIAN_POINT('',(-5.885,0.5,1.6)); +#48516=CARTESIAN_POINT('',(7.89,0.499999999999991,1.6)); +#48517=CARTESIAN_POINT('',(-5.71,0.5,1.6)); +#48518=CARTESIAN_POINT('',(-5.71,7.155,1.6)); +#48519=CARTESIAN_POINT('',(-5.71,0.95,1.6)); +#48520=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48521=CARTESIAN_POINT('',(-5.49,0.95,1.6)); +#48522=CARTESIAN_POINT('',(-5.49,7.155,1.6)); +#48523=CARTESIAN_POINT('',(-5.49,0.5,1.6)); +#48524=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48525=CARTESIAN_POINT('',(-5.315,0.5,1.6)); +#48526=CARTESIAN_POINT('',(-5.315,7.155,1.6)); +#48527=CARTESIAN_POINT('',(-5.315,0.377106686427072,1.6)); +#48528=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48529=CARTESIAN_POINT('',(-5.085,0.377106686427072,1.6)); +#48530=CARTESIAN_POINT('',(-5.085,7.155,1.6)); +#48531=CARTESIAN_POINT('',(-5.085,0.5,1.6)); +#48532=CARTESIAN_POINT('',(7.89,0.499999999999992,1.6)); +#48533=CARTESIAN_POINT('',(-4.91,0.5,1.6)); +#48534=CARTESIAN_POINT('',(-4.91,7.155,1.6)); +#48535=CARTESIAN_POINT('',(-4.91,0.95,1.6)); +#48536=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48537=CARTESIAN_POINT('',(-4.69,0.95,1.6)); +#48538=CARTESIAN_POINT('',(-4.69,7.155,1.6)); +#48539=CARTESIAN_POINT('',(-4.69,0.5,1.6)); +#48540=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48541=CARTESIAN_POINT('',(-4.515,0.5,1.6)); +#48542=CARTESIAN_POINT('',(-4.515,7.155,1.6)); +#48543=CARTESIAN_POINT('',(-4.515,0.377106686427072,1.6)); +#48544=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48545=CARTESIAN_POINT('',(-4.285,0.377106686427072,1.6)); +#48546=CARTESIAN_POINT('',(-4.285,7.155,1.6)); +#48547=CARTESIAN_POINT('',(-4.285,0.5,1.6)); +#48548=CARTESIAN_POINT('',(7.89,0.499999999999992,1.6)); +#48549=CARTESIAN_POINT('',(-4.11,0.5,1.6)); +#48550=CARTESIAN_POINT('',(-4.11,7.155,1.6)); +#48551=CARTESIAN_POINT('',(-4.11,0.95,1.6)); +#48552=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48553=CARTESIAN_POINT('',(-3.89,0.95,1.6)); +#48554=CARTESIAN_POINT('',(-3.89,7.155,1.6)); +#48555=CARTESIAN_POINT('',(-3.89,0.5,1.6)); +#48556=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48557=CARTESIAN_POINT('',(-3.715,0.5,1.6)); +#48558=CARTESIAN_POINT('',(-3.715,7.155,1.6)); +#48559=CARTESIAN_POINT('',(-3.715,0.377106686427072,1.6)); +#48560=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48561=CARTESIAN_POINT('',(-3.485,0.377106686427072,1.6)); +#48562=CARTESIAN_POINT('',(-3.485,7.155,1.6)); +#48563=CARTESIAN_POINT('',(-3.485,0.5,1.6)); +#48564=CARTESIAN_POINT('',(7.89,0.499999999999993,1.6)); +#48565=CARTESIAN_POINT('',(-3.31,0.5,1.6)); +#48566=CARTESIAN_POINT('',(-3.31,7.155,1.6)); +#48567=CARTESIAN_POINT('',(-3.31,0.95,1.6)); +#48568=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48569=CARTESIAN_POINT('',(-3.09,0.95,1.6)); +#48570=CARTESIAN_POINT('',(-3.09,7.155,1.6)); +#48571=CARTESIAN_POINT('',(-3.09,0.5,1.6)); +#48572=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48573=CARTESIAN_POINT('',(-2.915,0.5,1.6)); +#48574=CARTESIAN_POINT('',(-2.915,7.155,1.6)); +#48575=CARTESIAN_POINT('',(-2.915,0.377106686427072,1.6)); +#48576=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48577=CARTESIAN_POINT('',(-2.685,0.377106686427072,1.6)); +#48578=CARTESIAN_POINT('',(-2.685,7.155,1.6)); +#48579=CARTESIAN_POINT('',(-2.685,0.5,1.6)); +#48580=CARTESIAN_POINT('',(7.89,0.499999999999993,1.6)); +#48581=CARTESIAN_POINT('',(-2.51,0.5,1.6)); +#48582=CARTESIAN_POINT('',(-2.51,7.155,1.6)); +#48583=CARTESIAN_POINT('',(-2.51,0.95,1.6)); +#48584=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48585=CARTESIAN_POINT('',(-2.29,0.95,1.6)); +#48586=CARTESIAN_POINT('',(-2.29,7.155,1.6)); +#48587=CARTESIAN_POINT('',(-2.29,0.5,1.6)); +#48588=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48589=CARTESIAN_POINT('',(-2.115,0.5,1.6)); +#48590=CARTESIAN_POINT('',(-2.115,7.155,1.6)); +#48591=CARTESIAN_POINT('',(-2.115,0.377106686427072,1.6)); +#48592=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48593=CARTESIAN_POINT('',(-1.885,0.377106686427072,1.6)); +#48594=CARTESIAN_POINT('',(-1.885,7.155,1.6)); +#48595=CARTESIAN_POINT('',(-1.885,0.5,1.6)); +#48596=CARTESIAN_POINT('',(7.89,0.499999999999994,1.6)); +#48597=CARTESIAN_POINT('',(-1.71,0.5,1.6)); +#48598=CARTESIAN_POINT('',(-1.71,7.155,1.6)); +#48599=CARTESIAN_POINT('',(-1.71,0.95,1.6)); +#48600=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48601=CARTESIAN_POINT('',(-1.49,0.95,1.6)); +#48602=CARTESIAN_POINT('',(-1.49,7.155,1.6)); +#48603=CARTESIAN_POINT('',(-1.49,0.5,1.6)); +#48604=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48605=CARTESIAN_POINT('',(-1.315,0.5,1.6)); +#48606=CARTESIAN_POINT('',(-1.315,7.155,1.6)); +#48607=CARTESIAN_POINT('',(-1.315,0.377106686427072,1.6)); +#48608=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48609=CARTESIAN_POINT('',(-1.085,0.377106686427072,1.6)); +#48610=CARTESIAN_POINT('',(-1.085,7.155,1.6)); +#48611=CARTESIAN_POINT('',(-1.085,0.5,1.6)); +#48612=CARTESIAN_POINT('',(7.89,0.499999999999994,1.6)); +#48613=CARTESIAN_POINT('',(-0.910000000000001,0.5,1.6)); +#48614=CARTESIAN_POINT('',(-0.910000000000001,7.155,1.6)); +#48615=CARTESIAN_POINT('',(-0.910000000000001,0.95,1.6)); +#48616=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48617=CARTESIAN_POINT('',(-0.690000000000001,0.95,1.6)); +#48618=CARTESIAN_POINT('',(-0.690000000000001,7.155,1.6)); +#48619=CARTESIAN_POINT('',(-0.690000000000001,0.5,1.6)); +#48620=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48621=CARTESIAN_POINT('',(-0.515000000000001,0.5,1.6)); +#48622=CARTESIAN_POINT('',(-0.515000000000002,7.155,1.6)); +#48623=CARTESIAN_POINT('',(-0.515000000000002,0.377106686427072,1.6)); +#48624=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48625=CARTESIAN_POINT('',(-0.285000000000001,0.377106686427072,1.6)); +#48626=CARTESIAN_POINT('',(-0.285000000000001,7.155,1.6)); +#48627=CARTESIAN_POINT('',(-0.285,0.5,1.6)); +#48628=CARTESIAN_POINT('',(7.89,0.499999999999994,1.6)); +#48629=CARTESIAN_POINT('',(-0.110000000000001,0.5,1.6)); +#48630=CARTESIAN_POINT('',(-0.110000000000001,7.155,1.6)); +#48631=CARTESIAN_POINT('',(-0.110000000000001,0.95,1.6)); +#48632=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48633=CARTESIAN_POINT('',(0.109999999999999,0.95,1.6)); +#48634=CARTESIAN_POINT('',(0.109999999999999,7.155,1.6)); +#48635=CARTESIAN_POINT('',(0.109999999999999,0.5,1.6)); +#48636=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48637=CARTESIAN_POINT('',(0.284999999999999,0.5,1.6)); +#48638=CARTESIAN_POINT('',(0.284999999999999,7.155,1.6)); +#48639=CARTESIAN_POINT('',(0.284999999999999,0.377106686427072,1.6)); +#48640=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48641=CARTESIAN_POINT('',(0.515,0.377106686427072,1.6)); +#48642=CARTESIAN_POINT('',(0.515,7.155,1.6)); +#48643=CARTESIAN_POINT('',(0.515,0.5,1.6)); +#48644=CARTESIAN_POINT('',(7.89,0.499999999999995,1.6)); +#48645=CARTESIAN_POINT('',(0.69,0.5,1.6)); +#48646=CARTESIAN_POINT('',(0.69,7.155,1.6)); +#48647=CARTESIAN_POINT('',(0.69,0.95,1.6)); +#48648=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48649=CARTESIAN_POINT('',(0.909999999999999,0.95,1.6)); +#48650=CARTESIAN_POINT('',(0.909999999999999,7.155,1.6)); +#48651=CARTESIAN_POINT('',(0.909999999999999,0.5,1.6)); +#48652=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48653=CARTESIAN_POINT('',(1.085,0.5,1.6)); +#48654=CARTESIAN_POINT('',(1.085,7.155,1.6)); +#48655=CARTESIAN_POINT('',(1.085,0.377106686427072,1.6)); +#48656=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48657=CARTESIAN_POINT('',(1.315,0.377106686427072,1.6)); +#48658=CARTESIAN_POINT('',(1.315,7.155,1.6)); +#48659=CARTESIAN_POINT('',(1.315,0.5,1.6)); +#48660=CARTESIAN_POINT('',(7.89,0.499999999999995,1.6)); +#48661=CARTESIAN_POINT('',(1.49,0.5,1.6)); +#48662=CARTESIAN_POINT('',(1.49,7.155,1.6)); +#48663=CARTESIAN_POINT('',(1.49,0.95,1.6)); +#48664=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48665=CARTESIAN_POINT('',(1.71,0.95,1.6)); +#48666=CARTESIAN_POINT('',(1.71,7.155,1.6)); +#48667=CARTESIAN_POINT('',(1.71,0.5,1.6)); +#48668=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48669=CARTESIAN_POINT('',(1.885,0.5,1.6)); +#48670=CARTESIAN_POINT('',(1.885,7.155,1.6)); +#48671=CARTESIAN_POINT('',(1.885,0.377106686427072,1.6)); +#48672=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48673=CARTESIAN_POINT('',(2.115,0.377106686427072,1.6)); +#48674=CARTESIAN_POINT('',(2.115,7.155,1.6)); +#48675=CARTESIAN_POINT('',(2.115,0.5,1.6)); +#48676=CARTESIAN_POINT('',(7.89,0.499999999999996,1.6)); +#48677=CARTESIAN_POINT('',(2.29,0.5,1.6)); +#48678=CARTESIAN_POINT('',(2.29,7.155,1.6)); +#48679=CARTESIAN_POINT('',(2.29,0.95,1.6)); +#48680=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48681=CARTESIAN_POINT('',(2.51,0.95,1.6)); +#48682=CARTESIAN_POINT('',(2.51,7.155,1.6)); +#48683=CARTESIAN_POINT('',(2.51,0.5,1.6)); +#48684=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48685=CARTESIAN_POINT('',(2.685,0.5,1.6)); +#48686=CARTESIAN_POINT('',(2.685,7.155,1.6)); +#48687=CARTESIAN_POINT('',(2.685,0.377106686427072,1.6)); +#48688=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48689=CARTESIAN_POINT('',(2.915,0.377106686427072,1.6)); +#48690=CARTESIAN_POINT('',(2.915,7.155,1.6)); +#48691=CARTESIAN_POINT('',(2.915,0.5,1.6)); +#48692=CARTESIAN_POINT('',(7.89,0.499999999999996,1.6)); +#48693=CARTESIAN_POINT('',(3.09,0.5,1.6)); +#48694=CARTESIAN_POINT('',(3.09,7.155,1.6)); +#48695=CARTESIAN_POINT('',(3.09,0.95,1.6)); +#48696=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48697=CARTESIAN_POINT('',(3.31,0.95,1.6)); +#48698=CARTESIAN_POINT('',(3.31,7.155,1.6)); +#48699=CARTESIAN_POINT('',(3.31,0.5,1.6)); +#48700=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48701=CARTESIAN_POINT('',(3.485,0.5,1.6)); +#48702=CARTESIAN_POINT('',(3.485,7.155,1.6)); +#48703=CARTESIAN_POINT('',(3.485,0.377106686427072,1.6)); +#48704=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48705=CARTESIAN_POINT('',(3.715,0.377106686427072,1.6)); +#48706=CARTESIAN_POINT('',(3.715,7.155,1.6)); +#48707=CARTESIAN_POINT('',(3.715,0.5,1.6)); +#48708=CARTESIAN_POINT('',(7.89,0.499999999999997,1.6)); +#48709=CARTESIAN_POINT('',(3.89,0.5,1.6)); +#48710=CARTESIAN_POINT('',(3.89,7.155,1.6)); +#48711=CARTESIAN_POINT('',(3.89,0.95,1.6)); +#48712=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48713=CARTESIAN_POINT('',(4.11,0.95,1.6)); +#48714=CARTESIAN_POINT('',(4.11,7.155,1.6)); +#48715=CARTESIAN_POINT('',(4.11,0.5,1.6)); +#48716=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48717=CARTESIAN_POINT('',(4.285,0.5,1.6)); +#48718=CARTESIAN_POINT('',(4.285,7.155,1.6)); +#48719=CARTESIAN_POINT('',(4.285,0.377106686427072,1.6)); +#48720=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48721=CARTESIAN_POINT('',(4.515,0.377106686427072,1.6)); +#48722=CARTESIAN_POINT('',(4.515,7.155,1.6)); +#48723=CARTESIAN_POINT('',(4.515,0.5,1.6)); +#48724=CARTESIAN_POINT('',(7.89,0.499999999999998,1.6)); +#48725=CARTESIAN_POINT('',(4.69,0.5,1.6)); +#48726=CARTESIAN_POINT('',(4.69,7.155,1.6)); +#48727=CARTESIAN_POINT('',(4.69,0.95,1.6)); +#48728=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48729=CARTESIAN_POINT('',(4.91,0.95,1.6)); +#48730=CARTESIAN_POINT('',(4.91,7.155,1.6)); +#48731=CARTESIAN_POINT('',(4.91,0.5,1.6)); +#48732=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48733=CARTESIAN_POINT('',(5.085,0.5,1.6)); +#48734=CARTESIAN_POINT('',(5.085,7.155,1.6)); +#48735=CARTESIAN_POINT('',(5.085,0.377106686427072,1.6)); +#48736=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48737=CARTESIAN_POINT('',(5.315,0.377106686427072,1.6)); +#48738=CARTESIAN_POINT('',(5.315,7.155,1.6)); +#48739=CARTESIAN_POINT('',(5.315,0.5,1.6)); +#48740=CARTESIAN_POINT('',(7.89,0.499999999999998,1.6)); +#48741=CARTESIAN_POINT('',(5.49,0.5,1.6)); +#48742=CARTESIAN_POINT('',(5.49,7.155,1.6)); +#48743=CARTESIAN_POINT('',(5.49,0.95,1.6)); +#48744=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48745=CARTESIAN_POINT('',(5.71,0.95,1.6)); +#48746=CARTESIAN_POINT('',(5.71,7.155,1.6)); +#48747=CARTESIAN_POINT('',(5.71,0.5,1.6)); +#48748=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48749=CARTESIAN_POINT('',(5.885,0.5,1.6)); +#48750=CARTESIAN_POINT('',(5.885,7.155,1.6)); +#48751=CARTESIAN_POINT('',(5.885,0.377106686427072,1.6)); +#48752=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48753=CARTESIAN_POINT('',(6.115,0.377106686427072,1.6)); +#48754=CARTESIAN_POINT('',(6.115,7.155,1.6)); +#48755=CARTESIAN_POINT('',(6.115,0.5,1.6)); +#48756=CARTESIAN_POINT('',(7.89,0.499999999999999,1.6)); +#48757=CARTESIAN_POINT('',(6.29,0.5,1.6)); +#48758=CARTESIAN_POINT('',(6.29,7.155,1.6)); +#48759=CARTESIAN_POINT('',(6.29,0.95,1.6)); +#48760=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48761=CARTESIAN_POINT('',(6.51,0.95,1.6)); +#48762=CARTESIAN_POINT('',(6.51,7.155,1.6)); +#48763=CARTESIAN_POINT('',(6.51,0.5,1.6)); +#48764=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48765=CARTESIAN_POINT('',(6.685,0.5,1.6)); +#48766=CARTESIAN_POINT('',(6.685,7.155,1.6)); +#48767=CARTESIAN_POINT('',(6.685,0.377106686427072,1.6)); +#48768=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48769=CARTESIAN_POINT('',(6.915,0.377106686427072,1.6)); +#48770=CARTESIAN_POINT('',(6.915,7.155,1.6)); +#48771=CARTESIAN_POINT('',(6.915,0.5,1.6)); +#48772=CARTESIAN_POINT('',(7.89,0.499999999999999,1.6)); +#48773=CARTESIAN_POINT('',(7.09,0.5,1.6)); +#48774=CARTESIAN_POINT('',(7.09,7.155,1.6)); +#48775=CARTESIAN_POINT('',(7.09,0.95,1.6)); +#48776=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48777=CARTESIAN_POINT('',(7.31,0.95,1.6)); +#48778=CARTESIAN_POINT('',(7.31,7.155,1.6)); +#48779=CARTESIAN_POINT('',(7.31,0.5,1.6)); +#48780=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48781=CARTESIAN_POINT('',(7.485,0.5,1.6)); +#48782=CARTESIAN_POINT('',(7.485,7.155,1.6)); +#48783=CARTESIAN_POINT('',(7.485,0.377106686427072,1.6)); +#48784=CARTESIAN_POINT('',(7.89,0.377106686427072,1.6)); +#48785=CARTESIAN_POINT('',(7.715,0.377106686427072,1.6)); +#48786=CARTESIAN_POINT('',(7.715,7.155,1.6)); +#48787=CARTESIAN_POINT('',(7.715,0.5,1.6)); +#48788=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48789=CARTESIAN_POINT('',(7.89,0.5,1.6)); +#48790=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#48791=CARTESIAN_POINT('',(7.89,0.95,1.6)); +#48792=CARTESIAN_POINT('',(-8.,0.95,1.6)); +#48793=CARTESIAN_POINT('',(8.,0.95,1.6)); +#48794=CARTESIAN_POINT('',(8.,1.05,1.6)); +#48795=CARTESIAN_POINT('',(-8.,1.05,-1.6)); +#48796=CARTESIAN_POINT('',(-8.,1.,-1.6)); +#48797=CARTESIAN_POINT('',(-8.,0.95,-1.6)); +#48798=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); +#48799=CARTESIAN_POINT('',(-7.95,1.,-1.435)); +#48800=CARTESIAN_POINT('',(-7.95,0.95,-1.435)); +#48801=CARTESIAN_POINT('',(7.95,1.05,1.435)); +#48802=CARTESIAN_POINT('',(7.95,1.,1.435)); +#48803=CARTESIAN_POINT('',(7.95,0.95,1.435)); +#48804=CARTESIAN_POINT('',(8.,1.05,1.6)); +#48805=CARTESIAN_POINT('',(8.,1.,1.6)); +#48806=CARTESIAN_POINT('',(8.,0.95,1.6)); +#48807=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#48808=CARTESIAN_POINT('',(7.89,0.95,2.0088)); +#48809=CARTESIAN_POINT('',(7.89,0.5,2.0088)); +#48810=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#48811=CARTESIAN_POINT('',(7.89,0.95,2.0088)); +#48812=CARTESIAN_POINT('',(7.89,0.5,2.0088)); +#48813=CARTESIAN_POINT('',(-7.89,0.6524,2.0088)); +#48814=CARTESIAN_POINT('',(-7.89,0.95,2.0088)); +#48815=CARTESIAN_POINT('',(-7.89,0.5,2.0088)); +#48816=CARTESIAN_POINT('',(-7.89,0.6524,2.0088)); +#48817=CARTESIAN_POINT('',(-7.89,0.95,2.0088)); +#48818=CARTESIAN_POINT('',(-7.89,0.5,2.0088)); +#48819=CARTESIAN_POINT('',(-7.31,0.5,4.)); +#48820=CARTESIAN_POINT('',(-7.31,0.95,4.)); +#48821=CARTESIAN_POINT('',(-7.31,0.5,4.)); +#48822=CARTESIAN_POINT('',(-7.09,1.,4.)); +#48823=CARTESIAN_POINT('',(-7.09,0.95,4.)); +#48824=CARTESIAN_POINT('',(-7.09,0.5,4.)); +#48825=CARTESIAN_POINT('',(-6.51,0.5,4.)); +#48826=CARTESIAN_POINT('',(-6.51,0.95,4.)); +#48827=CARTESIAN_POINT('',(-6.51,0.5,4.)); +#48828=CARTESIAN_POINT('',(-6.29,1.,4.)); +#48829=CARTESIAN_POINT('',(-6.29,0.95,4.)); +#48830=CARTESIAN_POINT('',(-6.29,0.5,4.)); +#48831=CARTESIAN_POINT('',(-5.71,0.5,4.)); +#48832=CARTESIAN_POINT('',(-5.71,0.95,4.)); +#48833=CARTESIAN_POINT('',(-5.71,0.5,4.)); +#48834=CARTESIAN_POINT('',(-5.49,1.,4.)); +#48835=CARTESIAN_POINT('',(-5.49,0.95,4.)); +#48836=CARTESIAN_POINT('',(-5.49,0.5,4.)); +#48837=CARTESIAN_POINT('',(-4.91,0.5,4.)); +#48838=CARTESIAN_POINT('',(-4.91,0.95,4.)); +#48839=CARTESIAN_POINT('',(-4.91,0.5,4.)); +#48840=CARTESIAN_POINT('',(-4.69,1.,4.)); +#48841=CARTESIAN_POINT('',(-4.69,0.95,4.)); +#48842=CARTESIAN_POINT('',(-4.69,0.5,4.)); +#48843=CARTESIAN_POINT('',(-4.11,0.5,4.)); +#48844=CARTESIAN_POINT('',(-4.11,0.95,4.)); +#48845=CARTESIAN_POINT('',(-4.11,0.5,4.)); +#48846=CARTESIAN_POINT('',(-3.89,1.,4.)); +#48847=CARTESIAN_POINT('',(-3.89,0.95,4.)); +#48848=CARTESIAN_POINT('',(-3.89,0.5,4.)); +#48849=CARTESIAN_POINT('',(-3.31,0.5,4.)); +#48850=CARTESIAN_POINT('',(-3.31,0.95,4.)); +#48851=CARTESIAN_POINT('',(-3.31,0.5,4.)); +#48852=CARTESIAN_POINT('',(-3.09,1.,4.)); +#48853=CARTESIAN_POINT('',(-3.09,0.95,4.)); +#48854=CARTESIAN_POINT('',(-3.09,0.5,4.)); +#48855=CARTESIAN_POINT('',(-2.51,0.5,4.)); +#48856=CARTESIAN_POINT('',(-2.51,0.95,4.)); +#48857=CARTESIAN_POINT('',(-2.51,0.5,4.)); +#48858=CARTESIAN_POINT('',(-2.29,1.,4.)); +#48859=CARTESIAN_POINT('',(-2.29,0.95,4.)); +#48860=CARTESIAN_POINT('',(-2.29,0.5,4.)); +#48861=CARTESIAN_POINT('',(-1.71,0.5,4.)); +#48862=CARTESIAN_POINT('',(-1.71,0.95,4.)); +#48863=CARTESIAN_POINT('',(-1.71,0.5,4.)); +#48864=CARTESIAN_POINT('',(-1.49,1.,4.)); +#48865=CARTESIAN_POINT('',(-1.49,0.95,4.)); +#48866=CARTESIAN_POINT('',(-1.49,0.5,4.)); +#48867=CARTESIAN_POINT('',(-0.910000000000001,0.5,4.)); +#48868=CARTESIAN_POINT('',(-0.910000000000001,0.95,4.)); +#48869=CARTESIAN_POINT('',(-0.910000000000001,0.5,4.)); +#48870=CARTESIAN_POINT('',(-0.690000000000001,1.,4.)); +#48871=CARTESIAN_POINT('',(-0.690000000000001,0.95,4.)); +#48872=CARTESIAN_POINT('',(-0.690000000000001,0.5,4.)); +#48873=CARTESIAN_POINT('',(-0.110000000000001,0.5,4.)); +#48874=CARTESIAN_POINT('',(-0.110000000000001,0.95,4.)); +#48875=CARTESIAN_POINT('',(-0.110000000000001,0.5,4.)); +#48876=CARTESIAN_POINT('',(0.109999999999999,1.,4.)); +#48877=CARTESIAN_POINT('',(0.109999999999999,0.95,4.)); +#48878=CARTESIAN_POINT('',(0.109999999999999,0.5,4.)); +#48879=CARTESIAN_POINT('',(0.69,0.5,4.)); +#48880=CARTESIAN_POINT('',(0.69,0.95,4.)); +#48881=CARTESIAN_POINT('',(0.69,0.5,4.)); +#48882=CARTESIAN_POINT('',(0.909999999999999,1.,4.)); +#48883=CARTESIAN_POINT('',(0.909999999999999,0.95,4.)); +#48884=CARTESIAN_POINT('',(0.909999999999999,0.5,4.)); +#48885=CARTESIAN_POINT('',(1.49,0.5,4.)); +#48886=CARTESIAN_POINT('',(1.49,0.95,4.)); +#48887=CARTESIAN_POINT('',(1.49,0.5,4.)); +#48888=CARTESIAN_POINT('',(1.71,1.,4.)); +#48889=CARTESIAN_POINT('',(1.71,0.95,4.)); +#48890=CARTESIAN_POINT('',(1.71,0.5,4.)); +#48891=CARTESIAN_POINT('',(2.29,0.5,4.)); +#48892=CARTESIAN_POINT('',(2.29,0.95,4.)); +#48893=CARTESIAN_POINT('',(2.29,0.5,4.)); +#48894=CARTESIAN_POINT('',(2.51,1.,4.)); +#48895=CARTESIAN_POINT('',(2.51,0.95,4.)); +#48896=CARTESIAN_POINT('',(2.51,0.5,4.)); +#48897=CARTESIAN_POINT('',(3.09,0.5,4.)); +#48898=CARTESIAN_POINT('',(3.09,0.95,4.)); +#48899=CARTESIAN_POINT('',(3.09,0.5,4.)); +#48900=CARTESIAN_POINT('',(3.31,1.,4.)); +#48901=CARTESIAN_POINT('',(3.31,0.95,4.)); +#48902=CARTESIAN_POINT('',(3.31,0.5,4.)); +#48903=CARTESIAN_POINT('',(3.89,0.5,4.)); +#48904=CARTESIAN_POINT('',(3.89,0.95,4.)); +#48905=CARTESIAN_POINT('',(3.89,0.5,4.)); +#48906=CARTESIAN_POINT('',(4.11,1.,4.)); +#48907=CARTESIAN_POINT('',(4.11,0.95,4.)); +#48908=CARTESIAN_POINT('',(4.11,0.5,4.)); +#48909=CARTESIAN_POINT('',(4.69,0.5,4.)); +#48910=CARTESIAN_POINT('',(4.69,0.95,4.)); +#48911=CARTESIAN_POINT('',(4.69,0.5,4.)); +#48912=CARTESIAN_POINT('',(4.91,1.,4.)); +#48913=CARTESIAN_POINT('',(4.91,0.95,4.)); +#48914=CARTESIAN_POINT('',(4.91,0.5,4.)); +#48915=CARTESIAN_POINT('',(5.49,0.5,4.)); +#48916=CARTESIAN_POINT('',(5.49,0.95,4.)); +#48917=CARTESIAN_POINT('',(5.49,0.5,4.)); +#48918=CARTESIAN_POINT('',(5.71,1.,4.)); +#48919=CARTESIAN_POINT('',(5.71,0.95,4.)); +#48920=CARTESIAN_POINT('',(5.71,0.5,4.)); +#48921=CARTESIAN_POINT('',(6.29,0.5,4.)); +#48922=CARTESIAN_POINT('',(6.29,0.95,4.)); +#48923=CARTESIAN_POINT('',(6.29,0.5,4.)); +#48924=CARTESIAN_POINT('',(6.51,1.,4.)); +#48925=CARTESIAN_POINT('',(6.51,0.95,4.)); +#48926=CARTESIAN_POINT('',(6.51,0.5,4.)); +#48927=CARTESIAN_POINT('',(7.09,0.5,4.)); +#48928=CARTESIAN_POINT('',(7.09,0.95,4.)); +#48929=CARTESIAN_POINT('',(7.09,0.5,4.)); +#48930=CARTESIAN_POINT('',(7.31,1.,4.)); +#48931=CARTESIAN_POINT('',(7.31,0.95,4.)); +#48932=CARTESIAN_POINT('',(7.31,0.5,4.)); +#48933=CARTESIAN_POINT('',(-7.31,0.5,4.)); +#48934=CARTESIAN_POINT('',(-7.31,0.95,4.)); +#48935=CARTESIAN_POINT('',(-7.31,0.5,4.)); +#48936=CARTESIAN_POINT('',(-7.09,1.,4.)); +#48937=CARTESIAN_POINT('',(-7.09,0.95,4.)); +#48938=CARTESIAN_POINT('',(-7.09,0.5,4.)); +#48939=CARTESIAN_POINT('',(-6.51,0.5,4.)); +#48940=CARTESIAN_POINT('',(-6.51,0.95,4.)); +#48941=CARTESIAN_POINT('',(-6.51,0.5,4.)); +#48942=CARTESIAN_POINT('',(-6.29,1.,4.)); +#48943=CARTESIAN_POINT('',(-6.29,0.95,4.)); +#48944=CARTESIAN_POINT('',(-6.29,0.5,4.)); +#48945=CARTESIAN_POINT('',(-5.71,0.5,4.)); +#48946=CARTESIAN_POINT('',(-5.71,0.95,4.)); +#48947=CARTESIAN_POINT('',(-5.71,0.5,4.)); +#48948=CARTESIAN_POINT('',(-5.49,1.,4.)); +#48949=CARTESIAN_POINT('',(-5.49,0.95,4.)); +#48950=CARTESIAN_POINT('',(-5.49,0.5,4.)); +#48951=CARTESIAN_POINT('',(-4.91,0.5,4.)); +#48952=CARTESIAN_POINT('',(-4.91,0.95,4.)); +#48953=CARTESIAN_POINT('',(-4.91,0.5,4.)); +#48954=CARTESIAN_POINT('',(-4.69,1.,4.)); +#48955=CARTESIAN_POINT('',(-4.69,0.95,4.)); +#48956=CARTESIAN_POINT('',(-4.69,0.5,4.)); +#48957=CARTESIAN_POINT('',(-4.11,0.5,4.)); +#48958=CARTESIAN_POINT('',(-4.11,0.95,4.)); +#48959=CARTESIAN_POINT('',(-4.11,0.5,4.)); +#48960=CARTESIAN_POINT('',(-3.89,1.,4.)); +#48961=CARTESIAN_POINT('',(-3.89,0.95,4.)); +#48962=CARTESIAN_POINT('',(-3.89,0.5,4.)); +#48963=CARTESIAN_POINT('',(-3.31,0.5,4.)); +#48964=CARTESIAN_POINT('',(-3.31,0.95,4.)); +#48965=CARTESIAN_POINT('',(-3.31,0.5,4.)); +#48966=CARTESIAN_POINT('',(-3.09,1.,4.)); +#48967=CARTESIAN_POINT('',(-3.09,0.95,4.)); +#48968=CARTESIAN_POINT('',(-3.09,0.5,4.)); +#48969=CARTESIAN_POINT('',(-2.51,0.5,4.)); +#48970=CARTESIAN_POINT('',(-2.51,0.95,4.)); +#48971=CARTESIAN_POINT('',(-2.51,0.5,4.)); +#48972=CARTESIAN_POINT('',(-2.29,1.,4.)); +#48973=CARTESIAN_POINT('',(-2.29,0.95,4.)); +#48974=CARTESIAN_POINT('',(-2.29,0.5,4.)); +#48975=CARTESIAN_POINT('',(-1.71,0.5,4.)); +#48976=CARTESIAN_POINT('',(-1.71,0.95,4.)); +#48977=CARTESIAN_POINT('',(-1.71,0.5,4.)); +#48978=CARTESIAN_POINT('',(-1.49,1.,4.)); +#48979=CARTESIAN_POINT('',(-1.49,0.95,4.)); +#48980=CARTESIAN_POINT('',(-1.49,0.5,4.)); +#48981=CARTESIAN_POINT('',(-0.910000000000001,0.5,4.)); +#48982=CARTESIAN_POINT('',(-0.910000000000001,0.95,4.)); +#48983=CARTESIAN_POINT('',(-0.910000000000001,0.5,4.)); +#48984=CARTESIAN_POINT('',(-0.690000000000001,1.,4.)); +#48985=CARTESIAN_POINT('',(-0.690000000000001,0.95,4.)); +#48986=CARTESIAN_POINT('',(-0.690000000000001,0.5,4.)); +#48987=CARTESIAN_POINT('',(-0.110000000000001,0.5,4.)); +#48988=CARTESIAN_POINT('',(-0.110000000000001,0.95,4.)); +#48989=CARTESIAN_POINT('',(-0.110000000000001,0.5,4.)); +#48990=CARTESIAN_POINT('',(0.109999999999999,1.,4.)); +#48991=CARTESIAN_POINT('',(0.109999999999999,0.95,4.)); +#48992=CARTESIAN_POINT('',(0.109999999999999,0.5,4.)); +#48993=CARTESIAN_POINT('',(0.69,0.5,4.)); +#48994=CARTESIAN_POINT('',(0.69,0.95,4.)); +#48995=CARTESIAN_POINT('',(0.69,0.5,4.)); +#48996=CARTESIAN_POINT('',(0.909999999999999,1.,4.)); +#48997=CARTESIAN_POINT('',(0.909999999999999,0.95,4.)); +#48998=CARTESIAN_POINT('',(0.909999999999999,0.5,4.)); +#48999=CARTESIAN_POINT('',(1.49,0.5,4.)); +#49000=CARTESIAN_POINT('',(1.49,0.95,4.)); +#49001=CARTESIAN_POINT('',(1.49,0.5,4.)); +#49002=CARTESIAN_POINT('',(1.71,1.,4.)); +#49003=CARTESIAN_POINT('',(1.71,0.95,4.)); +#49004=CARTESIAN_POINT('',(1.71,0.5,4.)); +#49005=CARTESIAN_POINT('',(2.29,0.5,4.)); +#49006=CARTESIAN_POINT('',(2.29,0.95,4.)); +#49007=CARTESIAN_POINT('',(2.29,0.5,4.)); +#49008=CARTESIAN_POINT('',(2.51,1.,4.)); +#49009=CARTESIAN_POINT('',(2.51,0.95,4.)); +#49010=CARTESIAN_POINT('',(2.51,0.5,4.)); +#49011=CARTESIAN_POINT('',(3.09,0.5,4.)); +#49012=CARTESIAN_POINT('',(3.09,0.95,4.)); +#49013=CARTESIAN_POINT('',(3.09,0.5,4.)); +#49014=CARTESIAN_POINT('',(3.31,1.,4.)); +#49015=CARTESIAN_POINT('',(3.31,0.95,4.)); +#49016=CARTESIAN_POINT('',(3.31,0.5,4.)); +#49017=CARTESIAN_POINT('',(3.89,0.5,4.)); +#49018=CARTESIAN_POINT('',(3.89,0.95,4.)); +#49019=CARTESIAN_POINT('',(3.89,0.5,4.)); +#49020=CARTESIAN_POINT('',(4.11,1.,4.)); +#49021=CARTESIAN_POINT('',(4.11,0.95,4.)); +#49022=CARTESIAN_POINT('',(4.11,0.5,4.)); +#49023=CARTESIAN_POINT('',(4.69,0.5,4.)); +#49024=CARTESIAN_POINT('',(4.69,0.95,4.)); +#49025=CARTESIAN_POINT('',(4.69,0.5,4.)); +#49026=CARTESIAN_POINT('',(4.91,1.,4.)); +#49027=CARTESIAN_POINT('',(4.91,0.95,4.)); +#49028=CARTESIAN_POINT('',(4.91,0.5,4.)); +#49029=CARTESIAN_POINT('',(5.49,0.5,4.)); +#49030=CARTESIAN_POINT('',(5.49,0.95,4.)); +#49031=CARTESIAN_POINT('',(5.49,0.5,4.)); +#49032=CARTESIAN_POINT('',(5.71,1.,4.)); +#49033=CARTESIAN_POINT('',(5.71,0.95,4.)); +#49034=CARTESIAN_POINT('',(5.71,0.5,4.)); +#49035=CARTESIAN_POINT('',(6.29,0.5,4.)); +#49036=CARTESIAN_POINT('',(6.29,0.95,4.)); +#49037=CARTESIAN_POINT('',(6.29,0.5,4.)); +#49038=CARTESIAN_POINT('',(6.51,1.,4.)); +#49039=CARTESIAN_POINT('',(6.51,0.95,4.)); +#49040=CARTESIAN_POINT('',(6.51,0.5,4.)); +#49041=CARTESIAN_POINT('',(7.31,1.,4.)); +#49042=CARTESIAN_POINT('',(7.31,0.95,4.)); +#49043=CARTESIAN_POINT('',(7.31,0.5,4.)); +#49044=CARTESIAN_POINT('',(7.09,0.5,4.)); +#49045=CARTESIAN_POINT('',(7.09,0.95,4.)); +#49046=CARTESIAN_POINT('',(7.09,0.5,4.)); +#49047=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49048=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49049=CARTESIAN_POINT('',(7.715,0.0874050265710325,2.335)); +#49050=CARTESIAN_POINT('',(7.485,0.0874050265710325,2.335)); +#49051=CARTESIAN_POINT('',(7.715,0.228871672020412,2.25332419416845)); +#49052=CARTESIAN_POINT('',(7.715,0.228871672020412,2.25332419416845)); +#49053=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49054=CARTESIAN_POINT('',(7.485,0.228871672020412,2.25332419416845)); +#49055=CARTESIAN_POINT('',(7.485,0.228871672020412,2.25332419416845)); +#49056=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49057=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49058=CARTESIAN_POINT('',(6.915,0.0874050265710325,2.335)); +#49059=CARTESIAN_POINT('',(6.685,0.0874050265710325,2.335)); +#49060=CARTESIAN_POINT('',(6.915,0.228871672020412,2.25332419416845)); +#49061=CARTESIAN_POINT('',(6.915,0.228871672020412,2.25332419416845)); +#49062=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49063=CARTESIAN_POINT('',(6.685,0.228871672020412,2.25332419416845)); +#49064=CARTESIAN_POINT('',(6.685,0.228871672020412,2.25332419416845)); +#49065=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49066=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49067=CARTESIAN_POINT('',(6.115,0.0874050265710325,2.335)); +#49068=CARTESIAN_POINT('',(5.885,0.0874050265710325,2.335)); +#49069=CARTESIAN_POINT('',(6.115,0.228871672020412,2.25332419416845)); +#49070=CARTESIAN_POINT('',(6.115,0.228871672020412,2.25332419416845)); +#49071=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49072=CARTESIAN_POINT('',(5.885,0.228871672020412,2.25332419416845)); +#49073=CARTESIAN_POINT('',(5.885,0.228871672020412,2.25332419416845)); +#49074=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49075=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49076=CARTESIAN_POINT('',(5.315,0.0874050265710325,2.335)); +#49077=CARTESIAN_POINT('',(5.085,0.0874050265710325,2.335)); +#49078=CARTESIAN_POINT('',(5.315,0.228871672020412,2.25332419416845)); +#49079=CARTESIAN_POINT('',(5.315,0.228871672020412,2.25332419416845)); +#49080=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49081=CARTESIAN_POINT('',(5.085,0.228871672020412,2.25332419416845)); +#49082=CARTESIAN_POINT('',(5.085,0.228871672020412,2.25332419416845)); +#49083=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49084=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49085=CARTESIAN_POINT('',(4.515,0.0874050265710325,2.335)); +#49086=CARTESIAN_POINT('',(4.285,0.0874050265710325,2.335)); +#49087=CARTESIAN_POINT('',(4.515,0.228871672020412,2.25332419416845)); +#49088=CARTESIAN_POINT('',(4.515,0.228871672020412,2.25332419416845)); +#49089=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49090=CARTESIAN_POINT('',(4.285,0.228871672020412,2.25332419416845)); +#49091=CARTESIAN_POINT('',(4.285,0.228871672020412,2.25332419416845)); +#49092=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49093=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49094=CARTESIAN_POINT('',(3.715,0.0874050265710325,2.335)); +#49095=CARTESIAN_POINT('',(3.485,0.0874050265710325,2.335)); +#49096=CARTESIAN_POINT('',(3.715,0.228871672020412,2.25332419416845)); +#49097=CARTESIAN_POINT('',(3.715,0.228871672020412,2.25332419416845)); +#49098=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49099=CARTESIAN_POINT('',(3.485,0.228871672020412,2.25332419416845)); +#49100=CARTESIAN_POINT('',(3.485,0.228871672020412,2.25332419416845)); +#49101=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49102=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49103=CARTESIAN_POINT('',(2.915,0.0874050265710325,2.335)); +#49104=CARTESIAN_POINT('',(2.685,0.0874050265710325,2.335)); +#49105=CARTESIAN_POINT('',(2.915,0.228871672020412,2.25332419416845)); +#49106=CARTESIAN_POINT('',(2.915,0.228871672020412,2.25332419416845)); +#49107=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49108=CARTESIAN_POINT('',(2.685,0.228871672020412,2.25332419416845)); +#49109=CARTESIAN_POINT('',(2.685,0.228871672020412,2.25332419416845)); +#49110=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49111=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49112=CARTESIAN_POINT('',(2.115,0.0874050265710325,2.335)); +#49113=CARTESIAN_POINT('',(1.885,0.0874050265710325,2.335)); +#49114=CARTESIAN_POINT('',(2.115,0.228871672020412,2.25332419416845)); +#49115=CARTESIAN_POINT('',(2.115,0.228871672020412,2.25332419416845)); +#49116=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49117=CARTESIAN_POINT('',(1.885,0.228871672020412,2.25332419416845)); +#49118=CARTESIAN_POINT('',(1.885,0.228871672020412,2.25332419416845)); +#49119=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49120=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49121=CARTESIAN_POINT('',(1.315,0.0874050265710325,2.335)); +#49122=CARTESIAN_POINT('',(1.085,0.0874050265710325,2.335)); +#49123=CARTESIAN_POINT('',(1.315,0.228871672020412,2.25332419416845)); +#49124=CARTESIAN_POINT('',(1.315,0.228871672020412,2.25332419416845)); +#49125=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49126=CARTESIAN_POINT('',(1.085,0.228871672020412,2.25332419416845)); +#49127=CARTESIAN_POINT('',(1.085,0.228871672020412,2.25332419416845)); +#49128=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49129=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49130=CARTESIAN_POINT('',(0.515,0.0874050265710325,2.335)); +#49131=CARTESIAN_POINT('',(0.284999999999999,0.0874050265710325,2.335)); +#49132=CARTESIAN_POINT('',(0.515,0.228871672020412,2.25332419416845)); +#49133=CARTESIAN_POINT('',(0.515,0.228871672020412,2.25332419416845)); +#49134=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49135=CARTESIAN_POINT('',(0.284999999999999,0.228871672020412,2.25332419416845)); +#49136=CARTESIAN_POINT('',(0.284999999999999,0.228871672020412,2.25332419416845)); +#49137=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49138=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49139=CARTESIAN_POINT('',(-0.285000000000001,0.0874050265710325,2.335)); +#49140=CARTESIAN_POINT('',(-0.515000000000002,0.0874050265710325,2.335)); +#49141=CARTESIAN_POINT('',(-0.285000000000001,0.228871672020412,2.25332419416845)); +#49142=CARTESIAN_POINT('',(-0.285000000000001,0.228871672020412,2.25332419416845)); +#49143=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49144=CARTESIAN_POINT('',(-0.515000000000002,0.228871672020412,2.25332419416845)); +#49145=CARTESIAN_POINT('',(-0.515000000000002,0.228871672020412,2.25332419416845)); +#49146=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49147=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49148=CARTESIAN_POINT('',(-1.085,0.0874050265710325,2.335)); +#49149=CARTESIAN_POINT('',(-1.315,0.0874050265710325,2.335)); +#49150=CARTESIAN_POINT('',(-1.085,0.228871672020412,2.25332419416845)); +#49151=CARTESIAN_POINT('',(-1.085,0.228871672020412,2.25332419416845)); +#49152=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49153=CARTESIAN_POINT('',(-1.315,0.228871672020412,2.25332419416845)); +#49154=CARTESIAN_POINT('',(-1.315,0.228871672020412,2.25332419416845)); +#49155=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49156=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49157=CARTESIAN_POINT('',(-1.885,0.0874050265710325,2.335)); +#49158=CARTESIAN_POINT('',(-2.115,0.0874050265710325,2.335)); +#49159=CARTESIAN_POINT('',(-1.885,0.228871672020412,2.25332419416845)); +#49160=CARTESIAN_POINT('',(-1.885,0.228871672020412,2.25332419416845)); +#49161=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49162=CARTESIAN_POINT('',(-2.115,0.228871672020412,2.25332419416845)); +#49163=CARTESIAN_POINT('',(-2.115,0.228871672020412,2.25332419416845)); +#49164=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49165=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49166=CARTESIAN_POINT('',(-2.685,0.0874050265710325,2.335)); +#49167=CARTESIAN_POINT('',(-2.915,0.0874050265710325,2.335)); +#49168=CARTESIAN_POINT('',(-2.685,0.228871672020412,2.25332419416845)); +#49169=CARTESIAN_POINT('',(-2.685,0.228871672020412,2.25332419416845)); +#49170=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49171=CARTESIAN_POINT('',(-2.915,0.228871672020412,2.25332419416845)); +#49172=CARTESIAN_POINT('',(-2.915,0.228871672020412,2.25332419416845)); +#49173=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49174=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49175=CARTESIAN_POINT('',(-3.485,0.0874050265710325,2.335)); +#49176=CARTESIAN_POINT('',(-3.715,0.0874050265710325,2.335)); +#49177=CARTESIAN_POINT('',(-3.485,0.228871672020412,2.25332419416845)); +#49178=CARTESIAN_POINT('',(-3.485,0.228871672020412,2.25332419416845)); +#49179=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49180=CARTESIAN_POINT('',(-3.715,0.228871672020412,2.25332419416845)); +#49181=CARTESIAN_POINT('',(-3.715,0.228871672020412,2.25332419416845)); +#49182=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49183=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49184=CARTESIAN_POINT('',(-4.285,0.0874050265710325,2.335)); +#49185=CARTESIAN_POINT('',(-4.515,0.0874050265710325,2.335)); +#49186=CARTESIAN_POINT('',(-4.285,0.228871672020412,2.25332419416845)); +#49187=CARTESIAN_POINT('',(-4.285,0.228871672020412,2.25332419416845)); +#49188=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49189=CARTESIAN_POINT('',(-4.515,0.228871672020412,2.25332419416845)); +#49190=CARTESIAN_POINT('',(-4.515,0.228871672020412,2.25332419416845)); +#49191=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49192=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49193=CARTESIAN_POINT('',(-5.085,0.0874050265710325,2.335)); +#49194=CARTESIAN_POINT('',(-5.315,0.0874050265710325,2.335)); +#49195=CARTESIAN_POINT('',(-5.085,0.228871672020412,2.25332419416845)); +#49196=CARTESIAN_POINT('',(-5.085,0.228871672020412,2.25332419416845)); +#49197=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49198=CARTESIAN_POINT('',(-5.315,0.228871672020412,2.25332419416845)); +#49199=CARTESIAN_POINT('',(-5.315,0.228871672020412,2.25332419416845)); +#49200=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49201=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49202=CARTESIAN_POINT('',(-5.885,0.0874050265710325,2.335)); +#49203=CARTESIAN_POINT('',(-6.115,0.0874050265710325,2.335)); +#49204=CARTESIAN_POINT('',(-5.885,0.228871672020412,2.25332419416845)); +#49205=CARTESIAN_POINT('',(-5.885,0.228871672020412,2.25332419416845)); +#49206=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49207=CARTESIAN_POINT('',(-6.115,0.228871672020412,2.25332419416845)); +#49208=CARTESIAN_POINT('',(-6.115,0.228871672020412,2.25332419416845)); +#49209=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49210=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49211=CARTESIAN_POINT('',(-6.685,0.0874050265710325,2.335)); +#49212=CARTESIAN_POINT('',(-6.915,0.0874050265710325,2.335)); +#49213=CARTESIAN_POINT('',(-6.685,0.228871672020412,2.25332419416845)); +#49214=CARTESIAN_POINT('',(-6.685,0.228871672020412,2.25332419416845)); +#49215=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49216=CARTESIAN_POINT('',(-6.915,0.228871672020412,2.25332419416845)); +#49217=CARTESIAN_POINT('',(-6.915,0.228871672020412,2.25332419416845)); +#49218=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49219=CARTESIAN_POINT('',(7.485,0.6524,2.0088)); +#49220=CARTESIAN_POINT('',(7.715,0.6524,2.0088)); +#49221=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49222=CARTESIAN_POINT('',(6.685,0.6524,2.0088)); +#49223=CARTESIAN_POINT('',(6.915,0.6524,2.0088)); +#49224=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49225=CARTESIAN_POINT('',(5.885,0.6524,2.0088)); +#49226=CARTESIAN_POINT('',(6.115,0.6524,2.0088)); +#49227=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49228=CARTESIAN_POINT('',(5.085,0.6524,2.0088)); +#49229=CARTESIAN_POINT('',(5.315,0.6524,2.0088)); +#49230=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49231=CARTESIAN_POINT('',(4.285,0.6524,2.0088)); +#49232=CARTESIAN_POINT('',(4.515,0.6524,2.0088)); +#49233=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49234=CARTESIAN_POINT('',(3.485,0.6524,2.0088)); +#49235=CARTESIAN_POINT('',(3.715,0.6524,2.0088)); +#49236=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49237=CARTESIAN_POINT('',(2.685,0.6524,2.0088)); +#49238=CARTESIAN_POINT('',(2.915,0.6524,2.0088)); +#49239=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49240=CARTESIAN_POINT('',(1.885,0.6524,2.0088)); +#49241=CARTESIAN_POINT('',(2.115,0.6524,2.0088)); +#49242=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49243=CARTESIAN_POINT('',(1.085,0.6524,2.0088)); +#49244=CARTESIAN_POINT('',(1.315,0.6524,2.0088)); +#49245=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49246=CARTESIAN_POINT('',(0.284999999999999,0.6524,2.0088)); +#49247=CARTESIAN_POINT('',(0.515,0.6524,2.0088)); +#49248=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49249=CARTESIAN_POINT('',(-0.515000000000002,0.6524,2.0088)); +#49250=CARTESIAN_POINT('',(-0.285000000000001,0.6524,2.0088)); +#49251=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49252=CARTESIAN_POINT('',(-1.315,0.6524,2.0088)); +#49253=CARTESIAN_POINT('',(-1.085,0.6524,2.0088)); +#49254=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49255=CARTESIAN_POINT('',(-2.115,0.6524,2.0088)); +#49256=CARTESIAN_POINT('',(-1.885,0.6524,2.0088)); +#49257=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49258=CARTESIAN_POINT('',(-2.915,0.6524,2.0088)); +#49259=CARTESIAN_POINT('',(-2.685,0.6524,2.0088)); +#49260=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49261=CARTESIAN_POINT('',(-3.715,0.6524,2.0088)); +#49262=CARTESIAN_POINT('',(-3.485,0.6524,2.0088)); +#49263=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49264=CARTESIAN_POINT('',(-4.515,0.6524,2.0088)); +#49265=CARTESIAN_POINT('',(-4.285,0.6524,2.0088)); +#49266=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49267=CARTESIAN_POINT('',(-5.315,0.6524,2.0088)); +#49268=CARTESIAN_POINT('',(-5.085,0.6524,2.0088)); +#49269=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49270=CARTESIAN_POINT('',(-6.115,0.6524,2.0088)); +#49271=CARTESIAN_POINT('',(-5.885,0.6524,2.0088)); +#49272=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49273=CARTESIAN_POINT('',(-6.915,0.6524,2.0088)); +#49274=CARTESIAN_POINT('',(-6.685,0.6524,2.0088)); +#49275=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49276=CARTESIAN_POINT('',(7.485,0.6524,-2.0088)); +#49277=CARTESIAN_POINT('',(7.485,0.0874050265710326,-2.335)); +#49278=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49279=CARTESIAN_POINT('',(7.715,0.0874050265710326,-2.335)); +#49280=CARTESIAN_POINT('',(7.715,0.6524,-2.0088)); +#49281=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49282=CARTESIAN_POINT('',(6.685,0.6524,-2.0088)); +#49283=CARTESIAN_POINT('',(6.685,0.0874050265710326,-2.335)); +#49284=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49285=CARTESIAN_POINT('',(6.915,0.0874050265710326,-2.335)); +#49286=CARTESIAN_POINT('',(6.915,0.6524,-2.0088)); +#49287=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49288=CARTESIAN_POINT('',(5.885,0.6524,-2.0088)); +#49289=CARTESIAN_POINT('',(5.885,0.0874050265710326,-2.335)); +#49290=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49291=CARTESIAN_POINT('',(6.115,0.0874050265710326,-2.335)); +#49292=CARTESIAN_POINT('',(6.115,0.6524,-2.0088)); +#49293=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49294=CARTESIAN_POINT('',(5.085,0.6524,-2.0088)); +#49295=CARTESIAN_POINT('',(5.085,0.0874050265710326,-2.335)); +#49296=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49297=CARTESIAN_POINT('',(5.315,0.0874050265710326,-2.335)); +#49298=CARTESIAN_POINT('',(5.315,0.6524,-2.0088)); +#49299=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49300=CARTESIAN_POINT('',(4.285,0.6524,-2.0088)); +#49301=CARTESIAN_POINT('',(4.285,0.0874050265710326,-2.335)); +#49302=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49303=CARTESIAN_POINT('',(4.515,0.0874050265710326,-2.335)); +#49304=CARTESIAN_POINT('',(4.515,0.6524,-2.0088)); +#49305=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49306=CARTESIAN_POINT('',(3.485,0.6524,-2.0088)); +#49307=CARTESIAN_POINT('',(3.485,0.0874050265710326,-2.335)); +#49308=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49309=CARTESIAN_POINT('',(3.715,0.0874050265710326,-2.335)); +#49310=CARTESIAN_POINT('',(3.715,0.6524,-2.0088)); +#49311=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49312=CARTESIAN_POINT('',(2.685,0.6524,-2.0088)); +#49313=CARTESIAN_POINT('',(2.685,0.0874050265710326,-2.335)); +#49314=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49315=CARTESIAN_POINT('',(2.915,0.0874050265710326,-2.335)); +#49316=CARTESIAN_POINT('',(2.915,0.6524,-2.0088)); +#49317=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49318=CARTESIAN_POINT('',(1.885,0.6524,-2.0088)); +#49319=CARTESIAN_POINT('',(1.885,0.0874050265710326,-2.335)); +#49320=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49321=CARTESIAN_POINT('',(2.115,0.0874050265710326,-2.335)); +#49322=CARTESIAN_POINT('',(2.115,0.6524,-2.0088)); +#49323=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49324=CARTESIAN_POINT('',(1.085,0.6524,-2.0088)); +#49325=CARTESIAN_POINT('',(1.085,0.0874050265710326,-2.335)); +#49326=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49327=CARTESIAN_POINT('',(1.315,0.0874050265710326,-2.335)); +#49328=CARTESIAN_POINT('',(1.315,0.6524,-2.0088)); +#49329=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49330=CARTESIAN_POINT('',(0.284999999999999,0.6524,-2.0088)); +#49331=CARTESIAN_POINT('',(0.284999999999999,0.0874050265710326,-2.335)); +#49332=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49333=CARTESIAN_POINT('',(0.515,0.0874050265710326,-2.335)); +#49334=CARTESIAN_POINT('',(0.515,0.6524,-2.0088)); +#49335=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49336=CARTESIAN_POINT('',(-0.515000000000002,0.6524,-2.0088)); +#49337=CARTESIAN_POINT('',(-0.515000000000002,0.0874050265710326,-2.335)); +#49338=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49339=CARTESIAN_POINT('',(-0.285000000000001,0.0874050265710326,-2.335)); +#49340=CARTESIAN_POINT('',(-0.285000000000001,0.6524,-2.0088)); +#49341=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49342=CARTESIAN_POINT('',(-1.315,0.6524,-2.0088)); +#49343=CARTESIAN_POINT('',(-1.315,0.0874050265710326,-2.335)); +#49344=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49345=CARTESIAN_POINT('',(-1.085,0.0874050265710326,-2.335)); +#49346=CARTESIAN_POINT('',(-1.085,0.6524,-2.0088)); +#49347=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49348=CARTESIAN_POINT('',(-2.115,0.6524,-2.0088)); +#49349=CARTESIAN_POINT('',(-2.115,0.0874050265710326,-2.335)); +#49350=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49351=CARTESIAN_POINT('',(-1.885,0.0874050265710326,-2.335)); +#49352=CARTESIAN_POINT('',(-1.885,0.6524,-2.0088)); +#49353=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49354=CARTESIAN_POINT('',(-2.915,0.6524,-2.0088)); +#49355=CARTESIAN_POINT('',(-2.915,0.0874050265710326,-2.335)); +#49356=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49357=CARTESIAN_POINT('',(-2.685,0.0874050265710326,-2.335)); +#49358=CARTESIAN_POINT('',(-2.685,0.6524,-2.0088)); +#49359=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49360=CARTESIAN_POINT('',(-3.715,0.6524,-2.0088)); +#49361=CARTESIAN_POINT('',(-3.715,0.0874050265710326,-2.335)); +#49362=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49363=CARTESIAN_POINT('',(-3.485,0.0874050265710326,-2.335)); +#49364=CARTESIAN_POINT('',(-3.485,0.6524,-2.0088)); +#49365=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49366=CARTESIAN_POINT('',(-4.515,0.6524,-2.0088)); +#49367=CARTESIAN_POINT('',(-4.515,0.0874050265710326,-2.335)); +#49368=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49369=CARTESIAN_POINT('',(-4.285,0.0874050265710326,-2.335)); +#49370=CARTESIAN_POINT('',(-4.285,0.6524,-2.0088)); +#49371=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49372=CARTESIAN_POINT('',(-5.315,0.6524,-2.0088)); +#49373=CARTESIAN_POINT('',(-5.315,0.0874050265710326,-2.335)); +#49374=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49375=CARTESIAN_POINT('',(-5.085,0.0874050265710326,-2.335)); +#49376=CARTESIAN_POINT('',(-5.085,0.6524,-2.0088)); +#49377=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49378=CARTESIAN_POINT('',(-6.115,0.6524,-2.0088)); +#49379=CARTESIAN_POINT('',(-6.115,0.0874050265710326,-2.335)); +#49380=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49381=CARTESIAN_POINT('',(-5.885,0.0874050265710326,-2.335)); +#49382=CARTESIAN_POINT('',(-5.885,0.6524,-2.0088)); +#49383=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49384=CARTESIAN_POINT('',(-6.915,0.6524,-2.0088)); +#49385=CARTESIAN_POINT('',(-6.915,0.0874050265710326,-2.335)); +#49386=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49387=CARTESIAN_POINT('',(-6.685,0.0874050265710326,-2.335)); +#49388=CARTESIAN_POINT('',(-6.685,0.6524,-2.0088)); +#49389=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49390=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49391=CARTESIAN_POINT('',(7.715,0.228871672020412,-2.25332419416845)); +#49392=CARTESIAN_POINT('',(7.485,0.228871672020412,-2.25332419416845)); +#49393=CARTESIAN_POINT('',(7.715,0.0874050265710324,-2.335)); +#49394=CARTESIAN_POINT('',(7.485,0.0874050265710324,-2.335)); +#49395=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49396=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49397=CARTESIAN_POINT('',(6.915,0.228871672020412,-2.25332419416845)); +#49398=CARTESIAN_POINT('',(6.685,0.228871672020412,-2.25332419416845)); +#49399=CARTESIAN_POINT('',(6.915,0.0874050265710324,-2.335)); +#49400=CARTESIAN_POINT('',(6.685,0.0874050265710324,-2.335)); +#49401=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49402=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49403=CARTESIAN_POINT('',(6.115,0.228871672020412,-2.25332419416845)); +#49404=CARTESIAN_POINT('',(5.885,0.228871672020412,-2.25332419416845)); +#49405=CARTESIAN_POINT('',(6.115,0.0874050265710324,-2.335)); +#49406=CARTESIAN_POINT('',(5.885,0.0874050265710324,-2.335)); +#49407=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49408=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49409=CARTESIAN_POINT('',(5.315,0.228871672020412,-2.25332419416845)); +#49410=CARTESIAN_POINT('',(5.085,0.228871672020412,-2.25332419416845)); +#49411=CARTESIAN_POINT('',(5.315,0.0874050265710324,-2.335)); +#49412=CARTESIAN_POINT('',(5.085,0.0874050265710324,-2.335)); +#49413=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49414=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49415=CARTESIAN_POINT('',(4.515,0.228871672020412,-2.25332419416845)); +#49416=CARTESIAN_POINT('',(4.285,0.228871672020412,-2.25332419416845)); +#49417=CARTESIAN_POINT('',(4.515,0.0874050265710324,-2.335)); +#49418=CARTESIAN_POINT('',(4.285,0.0874050265710324,-2.335)); +#49419=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49420=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49421=CARTESIAN_POINT('',(3.715,0.228871672020412,-2.25332419416845)); +#49422=CARTESIAN_POINT('',(3.485,0.228871672020412,-2.25332419416845)); +#49423=CARTESIAN_POINT('',(3.715,0.0874050265710324,-2.335)); +#49424=CARTESIAN_POINT('',(3.485,0.0874050265710324,-2.335)); +#49425=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49426=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49427=CARTESIAN_POINT('',(2.915,0.228871672020412,-2.25332419416845)); +#49428=CARTESIAN_POINT('',(2.685,0.228871672020412,-2.25332419416845)); +#49429=CARTESIAN_POINT('',(2.915,0.0874050265710324,-2.335)); +#49430=CARTESIAN_POINT('',(2.685,0.0874050265710324,-2.335)); +#49431=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49432=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49433=CARTESIAN_POINT('',(2.115,0.228871672020412,-2.25332419416845)); +#49434=CARTESIAN_POINT('',(1.885,0.228871672020412,-2.25332419416845)); +#49435=CARTESIAN_POINT('',(2.115,0.0874050265710324,-2.335)); +#49436=CARTESIAN_POINT('',(1.885,0.0874050265710324,-2.335)); +#49437=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49438=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49439=CARTESIAN_POINT('',(1.315,0.228871672020412,-2.25332419416845)); +#49440=CARTESIAN_POINT('',(1.085,0.228871672020412,-2.25332419416845)); +#49441=CARTESIAN_POINT('',(1.315,0.0874050265710324,-2.335)); +#49442=CARTESIAN_POINT('',(1.085,0.0874050265710324,-2.335)); +#49443=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49444=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49445=CARTESIAN_POINT('',(0.515,0.228871672020412,-2.25332419416845)); +#49446=CARTESIAN_POINT('',(0.284999999999999,0.228871672020412,-2.25332419416845)); +#49447=CARTESIAN_POINT('',(0.515,0.0874050265710324,-2.335)); +#49448=CARTESIAN_POINT('',(0.284999999999999,0.0874050265710324,-2.335)); +#49449=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49450=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49451=CARTESIAN_POINT('',(-0.285000000000001,0.228871672020412,-2.25332419416845)); +#49452=CARTESIAN_POINT('',(-0.515000000000002,0.228871672020412,-2.25332419416845)); +#49453=CARTESIAN_POINT('',(-0.285000000000001,0.0874050265710324,-2.335)); +#49454=CARTESIAN_POINT('',(-0.515000000000002,0.0874050265710324,-2.335)); +#49455=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49456=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49457=CARTESIAN_POINT('',(-1.085,0.228871672020412,-2.25332419416845)); +#49458=CARTESIAN_POINT('',(-1.315,0.228871672020412,-2.25332419416845)); +#49459=CARTESIAN_POINT('',(-1.085,0.0874050265710324,-2.335)); +#49460=CARTESIAN_POINT('',(-1.315,0.0874050265710324,-2.335)); +#49461=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49462=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49463=CARTESIAN_POINT('',(-1.885,0.228871672020412,-2.25332419416845)); +#49464=CARTESIAN_POINT('',(-2.115,0.228871672020412,-2.25332419416845)); +#49465=CARTESIAN_POINT('',(-1.885,0.0874050265710324,-2.335)); +#49466=CARTESIAN_POINT('',(-2.115,0.0874050265710324,-2.335)); +#49467=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49468=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49469=CARTESIAN_POINT('',(-2.685,0.228871672020412,-2.25332419416845)); +#49470=CARTESIAN_POINT('',(-2.915,0.228871672020412,-2.25332419416845)); +#49471=CARTESIAN_POINT('',(-2.685,0.0874050265710324,-2.335)); +#49472=CARTESIAN_POINT('',(-2.915,0.0874050265710324,-2.335)); +#49473=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49474=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49475=CARTESIAN_POINT('',(-3.485,0.228871672020412,-2.25332419416845)); +#49476=CARTESIAN_POINT('',(-3.715,0.228871672020412,-2.25332419416845)); +#49477=CARTESIAN_POINT('',(-3.485,0.0874050265710324,-2.335)); +#49478=CARTESIAN_POINT('',(-3.715,0.0874050265710324,-2.335)); +#49479=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49480=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49481=CARTESIAN_POINT('',(-4.285,0.228871672020412,-2.25332419416845)); +#49482=CARTESIAN_POINT('',(-4.515,0.228871672020412,-2.25332419416845)); +#49483=CARTESIAN_POINT('',(-4.285,0.0874050265710324,-2.335)); +#49484=CARTESIAN_POINT('',(-4.515,0.0874050265710324,-2.335)); +#49485=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49486=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49487=CARTESIAN_POINT('',(-5.085,0.228871672020412,-2.25332419416845)); +#49488=CARTESIAN_POINT('',(-5.315,0.228871672020412,-2.25332419416845)); +#49489=CARTESIAN_POINT('',(-5.085,0.0874050265710324,-2.335)); +#49490=CARTESIAN_POINT('',(-5.315,0.0874050265710324,-2.335)); +#49491=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49492=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49493=CARTESIAN_POINT('',(-5.885,0.228871672020412,-2.25332419416845)); +#49494=CARTESIAN_POINT('',(-6.115,0.228871672020412,-2.25332419416845)); +#49495=CARTESIAN_POINT('',(-5.885,0.0874050265710324,-2.335)); +#49496=CARTESIAN_POINT('',(-6.115,0.0874050265710324,-2.335)); +#49497=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49498=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49499=CARTESIAN_POINT('',(-6.685,0.228871672020412,-2.25332419416845)); +#49500=CARTESIAN_POINT('',(-6.915,0.228871672020412,-2.25332419416845)); +#49501=CARTESIAN_POINT('',(-6.685,0.0874050265710324,-2.335)); +#49502=CARTESIAN_POINT('',(-6.915,0.0874050265710324,-2.335)); +#49503=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49504=CARTESIAN_POINT('',(7.715,0.664999999999999,-2.0088)); +#49505=CARTESIAN_POINT('',(7.485,0.664999999999999,-2.0088)); +#49506=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49507=CARTESIAN_POINT('',(6.915,0.664999999999999,-2.0088)); +#49508=CARTESIAN_POINT('',(6.685,0.664999999999999,-2.0088)); +#49509=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49510=CARTESIAN_POINT('',(6.115,0.664999999999999,-2.0088)); +#49511=CARTESIAN_POINT('',(5.885,0.664999999999999,-2.0088)); +#49512=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49513=CARTESIAN_POINT('',(5.315,0.664999999999999,-2.0088)); +#49514=CARTESIAN_POINT('',(5.085,0.664999999999999,-2.0088)); +#49515=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49516=CARTESIAN_POINT('',(4.515,0.664999999999999,-2.0088)); +#49517=CARTESIAN_POINT('',(4.285,0.664999999999999,-2.0088)); +#49518=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49519=CARTESIAN_POINT('',(3.715,0.664999999999999,-2.0088)); +#49520=CARTESIAN_POINT('',(3.485,0.664999999999999,-2.0088)); +#49521=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49522=CARTESIAN_POINT('',(2.915,0.664999999999999,-2.0088)); +#49523=CARTESIAN_POINT('',(2.685,0.664999999999999,-2.0088)); +#49524=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49525=CARTESIAN_POINT('',(2.115,0.664999999999999,-2.0088)); +#49526=CARTESIAN_POINT('',(1.885,0.664999999999999,-2.0088)); +#49527=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49528=CARTESIAN_POINT('',(1.315,0.664999999999999,-2.0088)); +#49529=CARTESIAN_POINT('',(1.085,0.664999999999999,-2.0088)); +#49530=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49531=CARTESIAN_POINT('',(0.515,0.664999999999999,-2.0088)); +#49532=CARTESIAN_POINT('',(0.284999999999999,0.664999999999999,-2.0088)); +#49533=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49534=CARTESIAN_POINT('',(-0.285000000000001,0.664999999999999,-2.0088)); +#49535=CARTESIAN_POINT('',(-0.515000000000002,0.664999999999999,-2.0088)); +#49536=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49537=CARTESIAN_POINT('',(-1.085,0.664999999999999,-2.0088)); +#49538=CARTESIAN_POINT('',(-1.315,0.664999999999999,-2.0088)); +#49539=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49540=CARTESIAN_POINT('',(-1.885,0.664999999999999,-2.0088)); +#49541=CARTESIAN_POINT('',(-2.115,0.664999999999999,-2.0088)); +#49542=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49543=CARTESIAN_POINT('',(-2.685,0.664999999999999,-2.0088)); +#49544=CARTESIAN_POINT('',(-2.915,0.664999999999999,-2.0088)); +#49545=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49546=CARTESIAN_POINT('',(-3.485,0.664999999999999,-2.0088)); +#49547=CARTESIAN_POINT('',(-3.715,0.664999999999999,-2.0088)); +#49548=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49549=CARTESIAN_POINT('',(-4.285,0.664999999999999,-2.0088)); +#49550=CARTESIAN_POINT('',(-4.515,0.664999999999999,-2.0088)); +#49551=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49552=CARTESIAN_POINT('',(-5.085,0.664999999999999,-2.0088)); +#49553=CARTESIAN_POINT('',(-5.315,0.664999999999999,-2.0088)); +#49554=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49555=CARTESIAN_POINT('',(-5.885,0.664999999999999,-2.0088)); +#49556=CARTESIAN_POINT('',(-6.115,0.664999999999999,-2.0088)); +#49557=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49558=CARTESIAN_POINT('',(-6.685,0.664999999999999,-2.0088)); +#49559=CARTESIAN_POINT('',(-6.915,0.664999999999999,-2.0088)); +#49560=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49561=CARTESIAN_POINT('',(7.715,0.664999999999999,2.0088)); +#49562=CARTESIAN_POINT('',(7.485,0.664999999999999,2.0088)); +#49563=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49564=CARTESIAN_POINT('',(6.915,0.664999999999999,2.0088)); +#49565=CARTESIAN_POINT('',(6.685,0.664999999999999,2.0088)); +#49566=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49567=CARTESIAN_POINT('',(6.115,0.664999999999999,2.0088)); +#49568=CARTESIAN_POINT('',(5.885,0.664999999999999,2.0088)); +#49569=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49570=CARTESIAN_POINT('',(5.315,0.664999999999999,2.0088)); +#49571=CARTESIAN_POINT('',(5.085,0.664999999999999,2.0088)); +#49572=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49573=CARTESIAN_POINT('',(4.515,0.664999999999999,2.0088)); +#49574=CARTESIAN_POINT('',(4.285,0.664999999999999,2.0088)); +#49575=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49576=CARTESIAN_POINT('',(3.715,0.664999999999999,2.0088)); +#49577=CARTESIAN_POINT('',(3.485,0.664999999999999,2.0088)); +#49578=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49579=CARTESIAN_POINT('',(2.915,0.664999999999999,2.0088)); +#49580=CARTESIAN_POINT('',(2.685,0.664999999999999,2.0088)); +#49581=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49582=CARTESIAN_POINT('',(2.115,0.664999999999999,2.0088)); +#49583=CARTESIAN_POINT('',(1.885,0.664999999999999,2.0088)); +#49584=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49585=CARTESIAN_POINT('',(1.315,0.664999999999999,2.0088)); +#49586=CARTESIAN_POINT('',(1.085,0.664999999999999,2.0088)); +#49587=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49588=CARTESIAN_POINT('',(0.515,0.664999999999999,2.0088)); +#49589=CARTESIAN_POINT('',(0.284999999999999,0.664999999999999,2.0088)); +#49590=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49591=CARTESIAN_POINT('',(-0.285000000000001,0.664999999999999,2.0088)); +#49592=CARTESIAN_POINT('',(-0.515000000000002,0.664999999999999,2.0088)); +#49593=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49594=CARTESIAN_POINT('',(-1.085,0.664999999999999,2.0088)); +#49595=CARTESIAN_POINT('',(-1.315,0.664999999999999,2.0088)); +#49596=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49597=CARTESIAN_POINT('',(-1.885,0.664999999999999,2.0088)); +#49598=CARTESIAN_POINT('',(-2.115,0.664999999999999,2.0088)); +#49599=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49600=CARTESIAN_POINT('',(-2.685,0.664999999999999,2.0088)); +#49601=CARTESIAN_POINT('',(-2.915,0.664999999999999,2.0088)); +#49602=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49603=CARTESIAN_POINT('',(-3.485,0.664999999999999,2.0088)); +#49604=CARTESIAN_POINT('',(-3.715,0.664999999999999,2.0088)); +#49605=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49606=CARTESIAN_POINT('',(-4.285,0.664999999999999,2.0088)); +#49607=CARTESIAN_POINT('',(-4.515,0.664999999999999,2.0088)); +#49608=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49609=CARTESIAN_POINT('',(-5.085,0.664999999999999,2.0088)); +#49610=CARTESIAN_POINT('',(-5.315,0.664999999999999,2.0088)); +#49611=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49612=CARTESIAN_POINT('',(-5.885,0.664999999999999,2.0088)); +#49613=CARTESIAN_POINT('',(-6.115,0.664999999999999,2.0088)); +#49614=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49615=CARTESIAN_POINT('',(-6.685,0.664999999999999,2.0088)); +#49616=CARTESIAN_POINT('',(-6.915,0.664999999999999,2.0088)); +#49617=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49618=CARTESIAN_POINT('',(7.89,0.0874050265710325,2.335)); +#49619=CARTESIAN_POINT('',(-7.485,0.0874050265710325,2.335)); +#49620=CARTESIAN_POINT('',(-7.715,0.0874050265710325,2.335)); +#49621=CARTESIAN_POINT('',(-7.485,0.228871672020412,2.25332419416845)); +#49622=CARTESIAN_POINT('',(-7.485,0.228871672020412,2.25332419416845)); +#49623=CARTESIAN_POINT('',(7.89,0.228871672020412,2.25332419416845)); +#49624=CARTESIAN_POINT('',(-7.715,0.228871672020412,2.25332419416845)); +#49625=CARTESIAN_POINT('',(-7.715,0.228871672020412,2.25332419416845)); +#49626=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#49627=CARTESIAN_POINT('',(-7.715,0.6524,2.0088)); +#49628=CARTESIAN_POINT('',(-7.485,0.6524,2.0088)); +#49629=CARTESIAN_POINT('',(7.89,0.6524,-2.0088)); +#49630=CARTESIAN_POINT('',(-7.715,0.6524,-2.0088)); +#49631=CARTESIAN_POINT('',(-7.715,0.0874050265710326,-2.335)); +#49632=CARTESIAN_POINT('',(7.89,0.0874050265710326,-2.335)); +#49633=CARTESIAN_POINT('',(-7.485,0.0874050265710326,-2.335)); +#49634=CARTESIAN_POINT('',(-7.485,0.6524,-2.0088)); +#49635=CARTESIAN_POINT('',(7.89,0.0874050265710324,-2.335)); +#49636=CARTESIAN_POINT('',(7.89,0.228871672020412,-2.25332419416845)); +#49637=CARTESIAN_POINT('',(-7.485,0.228871672020412,-2.25332419416845)); +#49638=CARTESIAN_POINT('',(-7.715,0.228871672020412,-2.25332419416845)); +#49639=CARTESIAN_POINT('',(-7.485,0.0874050265710324,-2.335)); +#49640=CARTESIAN_POINT('',(-7.715,0.0874050265710324,-2.335)); +#49641=CARTESIAN_POINT('',(7.89,0.664999999999999,-2.0088)); +#49642=CARTESIAN_POINT('',(-7.485,0.664999999999999,-2.0088)); +#49643=CARTESIAN_POINT('',(-7.715,0.664999999999999,-2.0088)); +#49644=CARTESIAN_POINT('',(7.89,0.664999999999999,2.0088)); +#49645=CARTESIAN_POINT('',(-7.485,0.664999999999999,2.0088)); +#49646=CARTESIAN_POINT('',(-7.715,0.664999999999999,2.0088)); +#49647=CARTESIAN_POINT('',(-7.89,0.5,4.)); +#49648=CARTESIAN_POINT('',(-7.715,0.5,4.)); +#49649=CARTESIAN_POINT('',(-7.715,0.5,4.)); +#49650=CARTESIAN_POINT('',(-7.89,0.5,4.)); +#49651=CARTESIAN_POINT('',(-7.715,0.5,4.)); +#49652=CARTESIAN_POINT('',(-7.715,0.5,4.)); +#49653=CARTESIAN_POINT('',(7.715,0.5,4.)); +#49654=CARTESIAN_POINT('',(7.715,0.5,4.)); +#49655=CARTESIAN_POINT('',(7.715,0.,4.)); +#49656=CARTESIAN_POINT('',(7.715,0.5,4.)); +#49657=CARTESIAN_POINT('',(7.715,0.5,4.)); +#49658=CARTESIAN_POINT('',(7.715,0.,4.)); +#49659=CARTESIAN_POINT('',(-7.485,0.,4.)); +#49660=CARTESIAN_POINT('',(-7.485,0.5,4.)); +#49661=CARTESIAN_POINT('',(-7.485,0.5,4.)); +#49662=CARTESIAN_POINT('',(-6.915,0.5,4.)); +#49663=CARTESIAN_POINT('',(-6.915,0.5,4.)); +#49664=CARTESIAN_POINT('',(-7.09,0.5,4.)); +#49665=CARTESIAN_POINT('',(-6.685,0.,4.)); +#49666=CARTESIAN_POINT('',(-6.685,0.5,4.)); +#49667=CARTESIAN_POINT('',(-6.685,0.5,4.)); +#49668=CARTESIAN_POINT('',(-6.115,0.5,4.)); +#49669=CARTESIAN_POINT('',(-6.115,0.5,4.)); +#49670=CARTESIAN_POINT('',(-6.29,0.5,4.)); +#49671=CARTESIAN_POINT('',(-5.885,0.,4.)); +#49672=CARTESIAN_POINT('',(-5.885,0.5,4.)); +#49673=CARTESIAN_POINT('',(-5.885,0.5,4.)); +#49674=CARTESIAN_POINT('',(-5.315,0.5,4.)); +#49675=CARTESIAN_POINT('',(-5.315,0.5,4.)); +#49676=CARTESIAN_POINT('',(-5.49,0.5,4.)); +#49677=CARTESIAN_POINT('',(-5.085,0.,4.)); +#49678=CARTESIAN_POINT('',(-5.085,0.5,4.)); +#49679=CARTESIAN_POINT('',(-5.085,0.5,4.)); +#49680=CARTESIAN_POINT('',(-4.515,0.5,4.)); +#49681=CARTESIAN_POINT('',(-4.515,0.5,4.)); +#49682=CARTESIAN_POINT('',(-4.69,0.5,4.)); +#49683=CARTESIAN_POINT('',(-4.285,0.,4.)); +#49684=CARTESIAN_POINT('',(-4.285,0.5,4.)); +#49685=CARTESIAN_POINT('',(-4.285,0.5,4.)); +#49686=CARTESIAN_POINT('',(-3.715,0.5,4.)); +#49687=CARTESIAN_POINT('',(-3.715,0.5,4.)); +#49688=CARTESIAN_POINT('',(-3.89,0.5,4.)); +#49689=CARTESIAN_POINT('',(-3.485,0.,4.)); +#49690=CARTESIAN_POINT('',(-3.485,0.5,4.)); +#49691=CARTESIAN_POINT('',(-3.485,0.5,4.)); +#49692=CARTESIAN_POINT('',(-2.915,0.5,4.)); +#49693=CARTESIAN_POINT('',(-2.915,0.5,4.)); +#49694=CARTESIAN_POINT('',(-3.09,0.5,4.)); +#49695=CARTESIAN_POINT('',(-2.685,0.,4.)); +#49696=CARTESIAN_POINT('',(-2.685,0.5,4.)); +#49697=CARTESIAN_POINT('',(-2.685,0.5,4.)); +#49698=CARTESIAN_POINT('',(-2.115,0.5,4.)); +#49699=CARTESIAN_POINT('',(-2.115,0.5,4.)); +#49700=CARTESIAN_POINT('',(-2.29,0.5,4.)); +#49701=CARTESIAN_POINT('',(-1.885,0.,4.)); +#49702=CARTESIAN_POINT('',(-1.885,0.5,4.)); +#49703=CARTESIAN_POINT('',(-1.885,0.5,4.)); +#49704=CARTESIAN_POINT('',(-1.315,0.5,4.)); +#49705=CARTESIAN_POINT('',(-1.315,0.5,4.)); +#49706=CARTESIAN_POINT('',(-1.49,0.5,4.)); +#49707=CARTESIAN_POINT('',(-1.085,0.,4.)); +#49708=CARTESIAN_POINT('',(-1.085,0.5,4.)); +#49709=CARTESIAN_POINT('',(-1.085,0.5,4.)); +#49710=CARTESIAN_POINT('',(-0.515000000000001,0.5,4.)); +#49711=CARTESIAN_POINT('',(-0.515000000000001,0.5,4.)); +#49712=CARTESIAN_POINT('',(-0.690000000000001,0.5,4.)); +#49713=CARTESIAN_POINT('',(-0.285,0.,4.)); +#49714=CARTESIAN_POINT('',(-0.285,0.5,4.)); +#49715=CARTESIAN_POINT('',(-0.285,0.5,4.)); +#49716=CARTESIAN_POINT('',(0.284999999999999,0.5,4.)); +#49717=CARTESIAN_POINT('',(0.284999999999999,0.5,4.)); +#49718=CARTESIAN_POINT('',(0.109999999999999,0.5,4.)); +#49719=CARTESIAN_POINT('',(0.515,0.,4.)); +#49720=CARTESIAN_POINT('',(0.515,0.5,4.)); +#49721=CARTESIAN_POINT('',(0.515,0.5,4.)); +#49722=CARTESIAN_POINT('',(1.085,0.5,4.)); +#49723=CARTESIAN_POINT('',(1.085,0.5,4.)); +#49724=CARTESIAN_POINT('',(0.909999999999999,0.5,4.)); +#49725=CARTESIAN_POINT('',(1.315,0.,4.)); +#49726=CARTESIAN_POINT('',(1.315,0.5,4.)); +#49727=CARTESIAN_POINT('',(1.315,0.5,4.)); +#49728=CARTESIAN_POINT('',(1.885,0.5,4.)); +#49729=CARTESIAN_POINT('',(1.885,0.5,4.)); +#49730=CARTESIAN_POINT('',(1.71,0.5,4.)); +#49731=CARTESIAN_POINT('',(2.115,0.,4.)); +#49732=CARTESIAN_POINT('',(2.115,0.5,4.)); +#49733=CARTESIAN_POINT('',(2.115,0.5,4.)); +#49734=CARTESIAN_POINT('',(2.685,0.5,4.)); +#49735=CARTESIAN_POINT('',(2.685,0.5,4.)); +#49736=CARTESIAN_POINT('',(2.51,0.5,4.)); +#49737=CARTESIAN_POINT('',(2.915,0.,4.)); +#49738=CARTESIAN_POINT('',(2.915,0.5,4.)); +#49739=CARTESIAN_POINT('',(2.915,0.5,4.)); +#49740=CARTESIAN_POINT('',(3.485,0.5,4.)); +#49741=CARTESIAN_POINT('',(3.485,0.5,4.)); +#49742=CARTESIAN_POINT('',(3.31,0.5,4.)); +#49743=CARTESIAN_POINT('',(3.715,0.,4.)); +#49744=CARTESIAN_POINT('',(3.715,0.5,4.)); +#49745=CARTESIAN_POINT('',(3.715,0.5,4.)); +#49746=CARTESIAN_POINT('',(4.285,0.5,4.)); +#49747=CARTESIAN_POINT('',(4.285,0.5,4.)); +#49748=CARTESIAN_POINT('',(4.11,0.5,4.)); +#49749=CARTESIAN_POINT('',(4.515,0.,4.)); +#49750=CARTESIAN_POINT('',(4.515,0.5,4.)); +#49751=CARTESIAN_POINT('',(4.515,0.5,4.)); +#49752=CARTESIAN_POINT('',(5.085,0.5,4.)); +#49753=CARTESIAN_POINT('',(5.085,0.5,4.)); +#49754=CARTESIAN_POINT('',(4.91,0.5,4.)); +#49755=CARTESIAN_POINT('',(5.315,0.,4.)); +#49756=CARTESIAN_POINT('',(5.315,0.5,4.)); +#49757=CARTESIAN_POINT('',(5.315,0.5,4.)); +#49758=CARTESIAN_POINT('',(5.885,0.5,4.)); +#49759=CARTESIAN_POINT('',(5.885,0.5,4.)); +#49760=CARTESIAN_POINT('',(5.71,0.5,4.)); +#49761=CARTESIAN_POINT('',(6.115,0.,4.)); +#49762=CARTESIAN_POINT('',(6.115,0.5,4.)); +#49763=CARTESIAN_POINT('',(6.115,0.5,4.)); +#49764=CARTESIAN_POINT('',(6.685,0.5,4.)); +#49765=CARTESIAN_POINT('',(6.685,0.5,4.)); +#49766=CARTESIAN_POINT('',(6.51,0.5,4.)); +#49767=CARTESIAN_POINT('',(6.915,0.,4.)); +#49768=CARTESIAN_POINT('',(6.915,0.5,4.)); +#49769=CARTESIAN_POINT('',(6.915,0.5,4.)); +#49770=CARTESIAN_POINT('',(7.485,0.5,4.)); +#49771=CARTESIAN_POINT('',(7.485,0.5,4.)); +#49772=CARTESIAN_POINT('',(7.31,0.5,4.)); +#49773=CARTESIAN_POINT('',(-7.485,0.,4.)); +#49774=CARTESIAN_POINT('',(-7.485,0.5,4.)); +#49775=CARTESIAN_POINT('',(-7.485,0.5,4.)); +#49776=CARTESIAN_POINT('',(-7.09,0.5,4.)); +#49777=CARTESIAN_POINT('',(-6.915,0.5,4.)); +#49778=CARTESIAN_POINT('',(-6.915,0.5,4.)); +#49779=CARTESIAN_POINT('',(-6.685,0.,4.)); +#49780=CARTESIAN_POINT('',(-6.685,0.5,4.)); +#49781=CARTESIAN_POINT('',(-6.685,0.5,4.)); +#49782=CARTESIAN_POINT('',(-6.29,0.5,4.)); +#49783=CARTESIAN_POINT('',(-6.115,0.5,4.)); +#49784=CARTESIAN_POINT('',(-6.115,0.5,4.)); +#49785=CARTESIAN_POINT('',(-5.885,0.,4.)); +#49786=CARTESIAN_POINT('',(-5.885,0.5,4.)); +#49787=CARTESIAN_POINT('',(-5.885,0.5,4.)); +#49788=CARTESIAN_POINT('',(-5.49,0.5,4.)); +#49789=CARTESIAN_POINT('',(-5.315,0.5,4.)); +#49790=CARTESIAN_POINT('',(-5.315,0.5,4.)); +#49791=CARTESIAN_POINT('',(-5.085,0.,4.)); +#49792=CARTESIAN_POINT('',(-5.085,0.5,4.)); +#49793=CARTESIAN_POINT('',(-5.085,0.5,4.)); +#49794=CARTESIAN_POINT('',(-4.69,0.5,4.)); +#49795=CARTESIAN_POINT('',(-4.515,0.5,4.)); +#49796=CARTESIAN_POINT('',(-4.515,0.5,4.)); +#49797=CARTESIAN_POINT('',(-4.285,0.,4.)); +#49798=CARTESIAN_POINT('',(-4.285,0.5,4.)); +#49799=CARTESIAN_POINT('',(-4.285,0.5,4.)); +#49800=CARTESIAN_POINT('',(-3.89,0.5,4.)); +#49801=CARTESIAN_POINT('',(-3.715,0.5,4.)); +#49802=CARTESIAN_POINT('',(-3.715,0.5,4.)); +#49803=CARTESIAN_POINT('',(-3.485,0.,4.)); +#49804=CARTESIAN_POINT('',(-3.485,0.5,4.)); +#49805=CARTESIAN_POINT('',(-3.485,0.5,4.)); +#49806=CARTESIAN_POINT('',(-3.09,0.5,4.)); +#49807=CARTESIAN_POINT('',(-2.915,0.5,4.)); +#49808=CARTESIAN_POINT('',(-2.915,0.5,4.)); +#49809=CARTESIAN_POINT('',(-2.685,0.,4.)); +#49810=CARTESIAN_POINT('',(-2.685,0.5,4.)); +#49811=CARTESIAN_POINT('',(-2.685,0.5,4.)); +#49812=CARTESIAN_POINT('',(-2.29,0.5,4.)); +#49813=CARTESIAN_POINT('',(-2.115,0.5,4.)); +#49814=CARTESIAN_POINT('',(-2.115,0.5,4.)); +#49815=CARTESIAN_POINT('',(-1.885,0.,4.)); +#49816=CARTESIAN_POINT('',(-1.885,0.5,4.)); +#49817=CARTESIAN_POINT('',(-1.885,0.5,4.)); +#49818=CARTESIAN_POINT('',(-1.49,0.5,4.)); +#49819=CARTESIAN_POINT('',(-1.315,0.5,4.)); +#49820=CARTESIAN_POINT('',(-1.315,0.5,4.)); +#49821=CARTESIAN_POINT('',(-1.085,0.,4.)); +#49822=CARTESIAN_POINT('',(-1.085,0.5,4.)); +#49823=CARTESIAN_POINT('',(-1.085,0.5,4.)); +#49824=CARTESIAN_POINT('',(-0.690000000000001,0.5,4.)); +#49825=CARTESIAN_POINT('',(-0.515000000000001,0.5,4.)); +#49826=CARTESIAN_POINT('',(-0.515000000000001,0.5,4.)); +#49827=CARTESIAN_POINT('',(-0.285,0.,4.)); +#49828=CARTESIAN_POINT('',(-0.285,0.5,4.)); +#49829=CARTESIAN_POINT('',(-0.285,0.5,4.)); +#49830=CARTESIAN_POINT('',(0.109999999999999,0.5,4.)); +#49831=CARTESIAN_POINT('',(0.284999999999999,0.5,4.)); +#49832=CARTESIAN_POINT('',(0.284999999999999,0.5,4.)); +#49833=CARTESIAN_POINT('',(0.515,0.,4.)); +#49834=CARTESIAN_POINT('',(0.515,0.5,4.)); +#49835=CARTESIAN_POINT('',(0.515,0.5,4.)); +#49836=CARTESIAN_POINT('',(0.909999999999999,0.5,4.)); +#49837=CARTESIAN_POINT('',(1.085,0.5,4.)); +#49838=CARTESIAN_POINT('',(1.085,0.5,4.)); +#49839=CARTESIAN_POINT('',(1.315,0.,4.)); +#49840=CARTESIAN_POINT('',(1.315,0.5,4.)); +#49841=CARTESIAN_POINT('',(1.315,0.5,4.)); +#49842=CARTESIAN_POINT('',(1.71,0.5,4.)); +#49843=CARTESIAN_POINT('',(1.885,0.5,4.)); +#49844=CARTESIAN_POINT('',(1.885,0.5,4.)); +#49845=CARTESIAN_POINT('',(2.115,0.,4.)); +#49846=CARTESIAN_POINT('',(2.115,0.5,4.)); +#49847=CARTESIAN_POINT('',(2.115,0.5,4.)); +#49848=CARTESIAN_POINT('',(2.51,0.5,4.)); +#49849=CARTESIAN_POINT('',(2.685,0.5,4.)); +#49850=CARTESIAN_POINT('',(2.685,0.5,4.)); +#49851=CARTESIAN_POINT('',(2.915,0.,4.)); +#49852=CARTESIAN_POINT('',(2.915,0.5,4.)); +#49853=CARTESIAN_POINT('',(2.915,0.5,4.)); +#49854=CARTESIAN_POINT('',(3.31,0.5,4.)); +#49855=CARTESIAN_POINT('',(3.485,0.5,4.)); +#49856=CARTESIAN_POINT('',(3.485,0.5,4.)); +#49857=CARTESIAN_POINT('',(3.715,0.,4.)); +#49858=CARTESIAN_POINT('',(3.715,0.5,4.)); +#49859=CARTESIAN_POINT('',(3.715,0.5,4.)); +#49860=CARTESIAN_POINT('',(4.11,0.5,4.)); +#49861=CARTESIAN_POINT('',(4.285,0.5,4.)); +#49862=CARTESIAN_POINT('',(4.285,0.5,4.)); +#49863=CARTESIAN_POINT('',(4.515,0.,4.)); +#49864=CARTESIAN_POINT('',(4.515,0.5,4.)); +#49865=CARTESIAN_POINT('',(4.515,0.5,4.)); +#49866=CARTESIAN_POINT('',(4.91,0.5,4.)); +#49867=CARTESIAN_POINT('',(5.085,0.5,4.)); +#49868=CARTESIAN_POINT('',(5.085,0.5,4.)); +#49869=CARTESIAN_POINT('',(5.315,0.,4.)); +#49870=CARTESIAN_POINT('',(5.315,0.5,4.)); +#49871=CARTESIAN_POINT('',(5.315,0.5,4.)); +#49872=CARTESIAN_POINT('',(5.71,0.5,4.)); +#49873=CARTESIAN_POINT('',(5.885,0.5,4.)); +#49874=CARTESIAN_POINT('',(5.885,0.5,4.)); +#49875=CARTESIAN_POINT('',(6.115,0.,4.)); +#49876=CARTESIAN_POINT('',(6.115,0.5,4.)); +#49877=CARTESIAN_POINT('',(6.115,0.5,4.)); +#49878=CARTESIAN_POINT('',(6.51,0.5,4.)); +#49879=CARTESIAN_POINT('',(6.685,0.5,4.)); +#49880=CARTESIAN_POINT('',(6.685,0.5,4.)); +#49881=CARTESIAN_POINT('',(7.31,0.5,4.)); +#49882=CARTESIAN_POINT('',(7.485,0.5,4.)); +#49883=CARTESIAN_POINT('',(6.915,0.5,4.)); +#49884=CARTESIAN_POINT('',(6.915,0.5,4.)); +#49885=CARTESIAN_POINT('',(7.485,0.5,4.)); +#49886=CARTESIAN_POINT('',(6.915,0.,4.)); +#49887=CARTESIAN_POINT('',(0.,0.95,0.)); +#49888=CARTESIAN_POINT('',(0.,0.95,0.)); +#49889=CARTESIAN_POINT('',(0.,0.95,0.)); +#49890=CARTESIAN_POINT('',(0.,0.95,0.)); +#49891=CARTESIAN_POINT('',(0.,0.95,0.)); +#49892=CARTESIAN_POINT('',(0.,0.95,0.)); +#49893=CARTESIAN_POINT('',(0.,0.95,0.)); +#49894=CARTESIAN_POINT('',(0.,0.95,0.)); +#49895=CARTESIAN_POINT('',(0.,0.95,0.)); +#49896=CARTESIAN_POINT('',(0.,0.95,0.)); +#49897=CARTESIAN_POINT('',(0.,0.95,0.)); +#49898=CARTESIAN_POINT('',(0.,0.95,0.)); +#49899=CARTESIAN_POINT('',(0.,0.95,0.)); +#49900=CARTESIAN_POINT('',(0.,0.95,0.)); +#49901=CARTESIAN_POINT('',(0.,0.95,0.)); +#49902=CARTESIAN_POINT('',(0.,0.95,0.)); +#49903=CARTESIAN_POINT('',(0.,0.95,0.)); +#49904=CARTESIAN_POINT('',(0.,0.95,0.)); +#49905=CARTESIAN_POINT('',(0.,0.95,0.)); +#49906=CARTESIAN_POINT('',(0.,0.95,0.)); +#49907=CARTESIAN_POINT('',(0.,0.95,0.)); +#49908=CARTESIAN_POINT('',(0.,0.95,0.)); +#49909=CARTESIAN_POINT('',(0.,0.95,0.)); +#49910=CARTESIAN_POINT('',(0.,0.95,0.)); +#49911=CARTESIAN_POINT('',(0.,0.95,0.)); +#49912=CARTESIAN_POINT('',(0.,0.95,0.)); +#49913=CARTESIAN_POINT('',(0.,0.95,0.)); +#49914=CARTESIAN_POINT('',(0.,0.95,0.)); +#49915=CARTESIAN_POINT('',(0.,0.95,0.)); +#49916=CARTESIAN_POINT('',(0.,0.95,0.)); +#49917=CARTESIAN_POINT('',(0.,0.95,0.)); +#49918=CARTESIAN_POINT('',(0.,0.95,0.)); +#49919=CARTESIAN_POINT('',(0.,0.95,0.)); +#49920=CARTESIAN_POINT('',(0.,0.95,0.)); +#49921=CARTESIAN_POINT('',(0.,0.95,0.)); +#49922=CARTESIAN_POINT('',(0.,0.95,0.)); +#49923=CARTESIAN_POINT('',(0.,0.95,0.)); +#49924=CARTESIAN_POINT('',(0.,0.95,0.)); +#49925=CARTESIAN_POINT('',(0.,0.95,0.)); +#49926=CARTESIAN_POINT('',(0.,0.95,0.)); +#49927=CARTESIAN_POINT('',(9.89,1.,3.21)); +#49928=CARTESIAN_POINT('',(0.,-0.195,0.)); +#49929=CARTESIAN_POINT('',(7.89,0.377106686427072,-1.6)); +#49930=CARTESIAN_POINT('',(7.89,1.,-1.6)); +#49931=CARTESIAN_POINT('',(-8.,1.,-1.6)); +#49932=CARTESIAN_POINT('',(8.,1.,-1.6)); +#49933=CARTESIAN_POINT('',(-8.,1.05,-1.6)); +#49934=CARTESIAN_POINT('',(-8.,1.05,-1.6)); +#49935=CARTESIAN_POINT('',(8.,1.05,-1.6)); +#49936=CARTESIAN_POINT('',(-7.89,1.05,-1.6)); +#49937=CARTESIAN_POINT('',(-7.89,0.377106686427072,-1.6)); +#49938=CARTESIAN_POINT('',(-7.89,4.02098076211354,-1.6)); +#49939=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,-1.6)); +#49940=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,-1.6)); +#49941=CARTESIAN_POINT('',(-5.53212579117063,8.12637462505665,-1.6)); +#49942=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,-1.6)); +#49943=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,-1.6)); +#49944=CARTESIAN_POINT('',(-7.825,4.17643593539449,-1.6)); +#49945=CARTESIAN_POINT('',(-7.825,0.377106686427072,-1.6)); +#49946=CARTESIAN_POINT('',(-7.825,7.085,-1.6)); +#49947=CARTESIAN_POINT('',(-7.755,7.085,-1.6)); +#49948=CARTESIAN_POINT('',(-7.755,7.155,-1.6)); +#49949=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#49950=CARTESIAN_POINT('',(-7.445,7.155,-1.6)); +#49951=CARTESIAN_POINT('',(-7.445,7.085,-1.6)); +#49952=CARTESIAN_POINT('',(-7.375,7.085,-1.6)); +#49953=CARTESIAN_POINT('',(-7.375,0.377106686427072,-1.6)); +#49954=CARTESIAN_POINT('',(-7.375,4.17643593539449,-1.6)); +#49955=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,-1.6)); +#49956=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,-1.6)); +#49957=CARTESIAN_POINT('',(-1.92287420882915,-5.28835887956445,-1.6)); +#49958=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,-1.6)); +#49959=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,-1.6)); +#49960=CARTESIAN_POINT('',(-7.31,4.02098076211353,-1.6)); +#49961=CARTESIAN_POINT('',(-7.31,0.377106686427077,-1.6)); +#49962=CARTESIAN_POINT('',(-7.31,1.05,-1.6)); +#49963=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#49964=CARTESIAN_POINT('',(-7.09,1.05,-1.6)); +#49965=CARTESIAN_POINT('',(-7.09,0.377106686427072,-1.6)); +#49966=CARTESIAN_POINT('',(-7.09,4.02098076211353,-1.6)); +#49967=CARTESIAN_POINT('',(-7.01,4.02098076211353,-1.6)); +#49968=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,-1.6)); +#49969=CARTESIAN_POINT('',(-4.93212579117074,7.77996446354278,-1.6)); +#49970=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,-1.6)); +#49971=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,-1.6)); +#49972=CARTESIAN_POINT('',(-7.025,4.17643593539449,-1.6)); +#49973=CARTESIAN_POINT('',(-7.025,0.377106686427072,-1.6)); +#49974=CARTESIAN_POINT('',(-7.025,7.085,-1.6)); +#49975=CARTESIAN_POINT('',(-6.955,7.085,-1.6)); +#49976=CARTESIAN_POINT('',(-6.955,7.155,-1.6)); +#49977=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#49978=CARTESIAN_POINT('',(-6.645,7.155,-1.6)); +#49979=CARTESIAN_POINT('',(-6.645,7.085,-1.6)); +#49980=CARTESIAN_POINT('',(-6.575,7.085,-1.6)); +#49981=CARTESIAN_POINT('',(-6.575,0.377106686427072,-1.6)); +#49982=CARTESIAN_POINT('',(-6.575,4.17643593539449,-1.6)); +#49983=CARTESIAN_POINT('',(-6.495,4.17643593539449,-1.6)); +#49984=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,-1.6)); +#49985=CARTESIAN_POINT('',(-1.32287420882928,-4.94194871805064,-1.6)); +#49986=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,-1.6)); +#49987=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,-1.6)); +#49988=CARTESIAN_POINT('',(-6.51,4.02098076211353,-1.6)); +#49989=CARTESIAN_POINT('',(-6.51,0.377106686427072,-1.6)); +#49990=CARTESIAN_POINT('',(-6.51,1.05,-1.6)); +#49991=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#49992=CARTESIAN_POINT('',(-6.29,1.05,-1.6)); +#49993=CARTESIAN_POINT('',(-6.29,0.377106686427072,-1.6)); +#49994=CARTESIAN_POINT('',(-6.29,4.02098076211353,-1.6)); +#49995=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,-1.6)); +#49996=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,-1.6)); +#49997=CARTESIAN_POINT('',(-4.33212579117074,7.433554302029,-1.6)); +#49998=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,-1.6)); +#49999=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,-1.6)); +#50000=CARTESIAN_POINT('',(-6.225,4.17643593539449,-1.6)); +#50001=CARTESIAN_POINT('',(-6.225,0.377106686427072,-1.6)); +#50002=CARTESIAN_POINT('',(-6.225,7.085,-1.6)); +#50003=CARTESIAN_POINT('',(-6.155,7.085,-1.6)); +#50004=CARTESIAN_POINT('',(-6.155,7.155,-1.6)); +#50005=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50006=CARTESIAN_POINT('',(-5.845,7.155,-1.6)); +#50007=CARTESIAN_POINT('',(-5.845,7.085,-1.6)); +#50008=CARTESIAN_POINT('',(-5.775,7.085,-1.6)); +#50009=CARTESIAN_POINT('',(-5.775,0.377106686427072,-1.6)); +#50010=CARTESIAN_POINT('',(-5.775,4.17643593539449,-1.6)); +#50011=CARTESIAN_POINT('',(-5.695,4.17643593539449,-1.6)); +#50012=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,-1.6)); +#50013=CARTESIAN_POINT('',(-0.722874208829157,-4.59553855653689,-1.6)); +#50014=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,-1.6)); +#50015=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,-1.6)); +#50016=CARTESIAN_POINT('',(-5.71,4.02098076211353,-1.6)); +#50017=CARTESIAN_POINT('',(-5.71,0.377106686427072,-1.6)); +#50018=CARTESIAN_POINT('',(-5.71,1.05,-1.6)); +#50019=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50020=CARTESIAN_POINT('',(-5.49,1.05,-1.6)); +#50021=CARTESIAN_POINT('',(-5.49,0.377106686427072,-1.6)); +#50022=CARTESIAN_POINT('',(-5.49,4.02098076211353,-1.6)); +#50023=CARTESIAN_POINT('',(-5.41,4.02098076211353,-1.6)); +#50024=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,-1.6)); +#50025=CARTESIAN_POINT('',(-3.73212579117082,7.08714414051514,-1.6)); +#50026=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,-1.6)); +#50027=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,-1.6)); +#50028=CARTESIAN_POINT('',(-5.425,4.17643593539449,-1.6)); +#50029=CARTESIAN_POINT('',(-5.425,0.377106686427072,-1.6)); +#50030=CARTESIAN_POINT('',(-5.425,7.085,-1.6)); +#50031=CARTESIAN_POINT('',(-5.355,7.085,-1.6)); +#50032=CARTESIAN_POINT('',(-5.355,7.155,-1.6)); +#50033=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50034=CARTESIAN_POINT('',(-5.045,7.155,-1.6)); +#50035=CARTESIAN_POINT('',(-5.045,7.085,-1.6)); +#50036=CARTESIAN_POINT('',(-4.975,7.085,-1.6)); +#50037=CARTESIAN_POINT('',(-4.975,0.377106686427072,-1.6)); +#50038=CARTESIAN_POINT('',(-4.975,4.17643593539449,-1.6)); +#50039=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,-1.6)); +#50040=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,-1.6)); +#50041=CARTESIAN_POINT('',(-0.122874208829164,-4.24912839502312,-1.6)); +#50042=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,-1.6)); +#50043=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,-1.6)); +#50044=CARTESIAN_POINT('',(-4.91,4.02098076211353,-1.6)); +#50045=CARTESIAN_POINT('',(-4.91,0.377106686427072,-1.6)); +#50046=CARTESIAN_POINT('',(-4.91,1.05,-1.6)); +#50047=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50048=CARTESIAN_POINT('',(-4.69,1.05,-1.6)); +#50049=CARTESIAN_POINT('',(-4.69,0.377106686427072,-1.6)); +#50050=CARTESIAN_POINT('',(-4.69,4.02098076211353,-1.6)); +#50051=CARTESIAN_POINT('',(-4.61,4.02098076211353,-1.6)); +#50052=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,-1.6)); +#50053=CARTESIAN_POINT('',(-3.13212579117074,6.74073397900145,-1.6)); +#50054=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,-1.6)); +#50055=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,-1.6)); +#50056=CARTESIAN_POINT('',(-4.625,4.17643593539449,-1.6)); +#50057=CARTESIAN_POINT('',(-4.625,0.377106686427072,-1.6)); +#50058=CARTESIAN_POINT('',(-4.625,7.085,-1.6)); +#50059=CARTESIAN_POINT('',(-4.555,7.085,-1.6)); +#50060=CARTESIAN_POINT('',(-4.555,7.155,-1.6)); +#50061=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50062=CARTESIAN_POINT('',(-4.245,7.155,-1.6)); +#50063=CARTESIAN_POINT('',(-4.245,7.085,-1.6)); +#50064=CARTESIAN_POINT('',(-4.175,7.085,-1.6)); +#50065=CARTESIAN_POINT('',(-4.175,0.377106686427072,-1.6)); +#50066=CARTESIAN_POINT('',(-4.175,4.17643593539449,-1.6)); +#50067=CARTESIAN_POINT('',(-4.095,4.17643593539449,-1.6)); +#50068=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,-1.6)); +#50069=CARTESIAN_POINT('',(0.477125791170833,-3.90271823350934,-1.6)); +#50070=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,-1.6)); +#50071=CARTESIAN_POINT('',(-4.19,4.02098076211353,-1.6)); +#50072=CARTESIAN_POINT('',(-4.11,4.02098076211353,-1.6)); +#50073=CARTESIAN_POINT('',(-4.11,0.377106686427072,-1.6)); +#50074=CARTESIAN_POINT('',(-4.11,1.05,-1.6)); +#50075=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50076=CARTESIAN_POINT('',(-3.89,1.05,-1.6)); +#50077=CARTESIAN_POINT('',(-3.89,0.377106686427072,-1.6)); +#50078=CARTESIAN_POINT('',(-3.89,4.02098076211353,-1.6)); +#50079=CARTESIAN_POINT('',(-3.81,4.02098076211353,-1.6)); +#50080=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,-1.6)); +#50081=CARTESIAN_POINT('',(-2.53212579117078,6.39432381748763,-1.6)); +#50082=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,-1.6)); +#50083=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,-1.6)); +#50084=CARTESIAN_POINT('',(-3.825,4.17643593539449,-1.6)); +#50085=CARTESIAN_POINT('',(-3.825,0.377106686427072,-1.6)); +#50086=CARTESIAN_POINT('',(-3.825,7.085,-1.6)); +#50087=CARTESIAN_POINT('',(-3.755,7.085,-1.6)); +#50088=CARTESIAN_POINT('',(-3.755,7.155,-1.6)); +#50089=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50090=CARTESIAN_POINT('',(-3.445,7.155,-1.6)); +#50091=CARTESIAN_POINT('',(-3.445,7.085,-1.6)); +#50092=CARTESIAN_POINT('',(-3.375,7.085,-1.6)); +#50093=CARTESIAN_POINT('',(-3.375,0.377106686427072,-1.6)); +#50094=CARTESIAN_POINT('',(-3.375,4.17643593539449,-1.6)); +#50095=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,-1.6)); +#50096=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,-1.6)); +#50097=CARTESIAN_POINT('',(1.07712579117083,-3.55630807199556,-1.6)); +#50098=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,-1.6)); +#50099=CARTESIAN_POINT('',(-3.39,4.02098076211353,-1.6)); +#50100=CARTESIAN_POINT('',(-3.31,4.02098076211353,-1.6)); +#50101=CARTESIAN_POINT('',(-3.31,0.377106686427072,-1.6)); +#50102=CARTESIAN_POINT('',(-3.31,1.05,-1.6)); +#50103=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50104=CARTESIAN_POINT('',(-3.09,1.05,-1.6)); +#50105=CARTESIAN_POINT('',(-3.09,0.377106686427072,-1.6)); +#50106=CARTESIAN_POINT('',(-3.09,4.02098076211353,-1.6)); +#50107=CARTESIAN_POINT('',(-3.01,4.02098076211353,-1.6)); +#50108=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,-1.6)); +#50109=CARTESIAN_POINT('',(-1.93212579117078,6.04791365597386,-1.6)); +#50110=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,-1.6)); +#50111=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,-1.6)); +#50112=CARTESIAN_POINT('',(-3.025,4.17643593539449,-1.6)); +#50113=CARTESIAN_POINT('',(-3.025,0.377106686427072,-1.6)); +#50114=CARTESIAN_POINT('',(-3.025,7.085,-1.6)); +#50115=CARTESIAN_POINT('',(-2.955,7.085,-1.6)); +#50116=CARTESIAN_POINT('',(-2.955,7.155,-1.6)); +#50117=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50118=CARTESIAN_POINT('',(-2.645,7.155,-1.6)); +#50119=CARTESIAN_POINT('',(-2.645,7.085,-1.6)); +#50120=CARTESIAN_POINT('',(-2.575,7.085,-1.6)); +#50121=CARTESIAN_POINT('',(-2.575,0.377106686427072,-1.6)); +#50122=CARTESIAN_POINT('',(-2.575,4.17643593539449,-1.6)); +#50123=CARTESIAN_POINT('',(-2.495,4.17643593539449,-1.6)); +#50124=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,-1.6)); +#50125=CARTESIAN_POINT('',(1.67712579117083,-3.20989791048178,-1.6)); +#50126=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,-1.6)); +#50127=CARTESIAN_POINT('',(-2.59,4.02098076211353,-1.6)); +#50128=CARTESIAN_POINT('',(-2.51,4.02098076211353,-1.6)); +#50129=CARTESIAN_POINT('',(-2.51,0.377106686427072,-1.6)); +#50130=CARTESIAN_POINT('',(-2.51,1.05,-1.6)); +#50131=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50132=CARTESIAN_POINT('',(-2.29,1.05,-1.6)); +#50133=CARTESIAN_POINT('',(-2.29,0.377106686427072,-1.6)); +#50134=CARTESIAN_POINT('',(-2.29,4.02098076211353,-1.6)); +#50135=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,-1.6)); +#50136=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,-1.6)); +#50137=CARTESIAN_POINT('',(-1.33212579117075,5.70150349446012,-1.6)); +#50138=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,-1.6)); +#50139=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,-1.6)); +#50140=CARTESIAN_POINT('',(-2.225,4.17643593539449,-1.6)); +#50141=CARTESIAN_POINT('',(-2.225,0.377106686427072,-1.6)); +#50142=CARTESIAN_POINT('',(-2.225,7.085,-1.6)); +#50143=CARTESIAN_POINT('',(-2.155,7.085,-1.6)); +#50144=CARTESIAN_POINT('',(-2.155,7.155,-1.6)); +#50145=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50146=CARTESIAN_POINT('',(-1.845,7.155,-1.6)); +#50147=CARTESIAN_POINT('',(-1.845,7.085,-1.6)); +#50148=CARTESIAN_POINT('',(-1.775,7.085,-1.6)); +#50149=CARTESIAN_POINT('',(-1.775,0.377106686427072,-1.6)); +#50150=CARTESIAN_POINT('',(-1.775,4.17643593539449,-1.6)); +#50151=CARTESIAN_POINT('',(-1.695,4.17643593539449,-1.6)); +#50152=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,-1.6)); +#50153=CARTESIAN_POINT('',(2.2771257911708,-2.863487748968,-1.6)); +#50154=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,-1.6)); +#50155=CARTESIAN_POINT('',(-1.79,4.02098076211353,-1.6)); +#50156=CARTESIAN_POINT('',(-1.71,4.02098076211353,-1.6)); +#50157=CARTESIAN_POINT('',(-1.71,0.377106686427072,-1.6)); +#50158=CARTESIAN_POINT('',(-1.71,1.05,-1.6)); +#50159=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50160=CARTESIAN_POINT('',(-1.49,1.05,-1.6)); +#50161=CARTESIAN_POINT('',(-1.49,0.377106686427072,-1.6)); +#50162=CARTESIAN_POINT('',(-1.49,4.02098076211353,-1.6)); +#50163=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,-1.6)); +#50164=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,-1.6)); +#50165=CARTESIAN_POINT('',(-0.732125791170764,5.35509333294633,-1.6)); +#50166=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,-1.6)); +#50167=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,-1.6)); +#50168=CARTESIAN_POINT('',(-1.425,4.17643593539449,-1.6)); +#50169=CARTESIAN_POINT('',(-1.425,0.377106686427072,-1.6)); +#50170=CARTESIAN_POINT('',(-1.425,7.085,-1.6)); +#50171=CARTESIAN_POINT('',(-1.355,7.085,-1.6)); +#50172=CARTESIAN_POINT('',(-1.355,7.155,-1.6)); +#50173=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50174=CARTESIAN_POINT('',(-1.045,7.155,-1.6)); +#50175=CARTESIAN_POINT('',(-1.045,7.085,-1.6)); +#50176=CARTESIAN_POINT('',(-0.975000000000001,7.085,-1.6)); +#50177=CARTESIAN_POINT('',(-0.975000000000002,0.377106686427072,-1.6)); +#50178=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,-1.6)); +#50179=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,-1.6)); +#50180=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,-1.6)); +#50181=CARTESIAN_POINT('',(2.8771257911708,-2.51707758745422,-1.6)); +#50182=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,-1.6)); +#50183=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,-1.6)); +#50184=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,-1.6)); +#50185=CARTESIAN_POINT('',(-0.910000000000001,0.377106686427072,-1.6)); +#50186=CARTESIAN_POINT('',(-0.910000000000001,1.05,-1.6)); +#50187=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50188=CARTESIAN_POINT('',(-0.690000000000001,1.05,-1.6)); +#50189=CARTESIAN_POINT('',(-0.690000000000001,0.377106686427072,-1.6)); +#50190=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,-1.6)); +#50191=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,-1.6)); +#50192=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,-1.6)); +#50193=CARTESIAN_POINT('',(-0.132125791170759,5.00868317143256,-1.6)); +#50194=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,-1.6)); +#50195=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,-1.6)); +#50196=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,-1.6)); +#50197=CARTESIAN_POINT('',(-0.625000000000001,0.377106686427072,-1.6)); +#50198=CARTESIAN_POINT('',(-0.625000000000001,7.085,-1.6)); +#50199=CARTESIAN_POINT('',(-0.555,7.085,-1.6)); +#50200=CARTESIAN_POINT('',(-0.555000000000001,7.155,-1.6)); +#50201=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50202=CARTESIAN_POINT('',(-0.245000000000001,7.155,-1.6)); +#50203=CARTESIAN_POINT('',(-0.245000000000001,7.085,-1.6)); +#50204=CARTESIAN_POINT('',(-0.175000000000001,7.085,-1.6)); +#50205=CARTESIAN_POINT('',(-0.175000000000002,0.377106686427072,-1.6)); +#50206=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,-1.6)); +#50207=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,-1.6)); +#50208=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,-1.6)); +#50209=CARTESIAN_POINT('',(3.47712579117079,-2.17066742594045,-1.6)); +#50210=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,-1.6)); +#50211=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,-1.6)); +#50212=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,-1.6)); +#50213=CARTESIAN_POINT('',(-0.110000000000001,0.377106686427072,-1.6)); +#50214=CARTESIAN_POINT('',(-0.110000000000001,1.05,-1.6)); +#50215=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50216=CARTESIAN_POINT('',(0.109999999999999,1.05,-1.6)); +#50217=CARTESIAN_POINT('',(0.109999999999999,0.377106686427072,-1.6)); +#50218=CARTESIAN_POINT('',(0.11,4.02098076211353,-1.6)); +#50219=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,-1.6)); +#50220=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,-1.6)); +#50221=CARTESIAN_POINT('',(0.467874208829243,4.66227300991879,-1.6)); +#50222=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,-1.6)); +#50223=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,-1.6)); +#50224=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,-1.6)); +#50225=CARTESIAN_POINT('',(0.174999999999999,0.377106686427072,-1.6)); +#50226=CARTESIAN_POINT('',(0.174999999999999,7.085,-1.6)); +#50227=CARTESIAN_POINT('',(0.245,7.085,-1.6)); +#50228=CARTESIAN_POINT('',(0.244999999999999,7.155,-1.6)); +#50229=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50230=CARTESIAN_POINT('',(0.554999999999999,7.155,-1.6)); +#50231=CARTESIAN_POINT('',(0.554999999999999,7.085,-1.6)); +#50232=CARTESIAN_POINT('',(0.624999999999999,7.085,-1.6)); +#50233=CARTESIAN_POINT('',(0.624999999999999,0.377106686427072,-1.6)); +#50234=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,-1.6)); +#50235=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,-1.6)); +#50236=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,-1.6)); +#50237=CARTESIAN_POINT('',(4.07712579117079,-1.82425726442667,-1.6)); +#50238=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,-1.6)); +#50239=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,-1.6)); +#50240=CARTESIAN_POINT('',(0.69,4.02098076211353,-1.6)); +#50241=CARTESIAN_POINT('',(0.69,0.377106686427072,-1.6)); +#50242=CARTESIAN_POINT('',(0.69,1.05,-1.6)); +#50243=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50244=CARTESIAN_POINT('',(0.909999999999999,1.05,-1.6)); +#50245=CARTESIAN_POINT('',(0.909999999999999,0.377106686427072,-1.6)); +#50246=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,-1.6)); +#50247=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,-1.6)); +#50248=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,-1.6)); +#50249=CARTESIAN_POINT('',(1.06787420882924,4.31586284840501,-1.6)); +#50250=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,-1.6)); +#50251=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,-1.6)); +#50252=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,-1.6)); +#50253=CARTESIAN_POINT('',(0.974999999999998,0.377106686427072,-1.6)); +#50254=CARTESIAN_POINT('',(0.974999999999998,7.085,-1.6)); +#50255=CARTESIAN_POINT('',(1.045,7.085,-1.6)); +#50256=CARTESIAN_POINT('',(1.045,7.155,-1.6)); +#50257=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50258=CARTESIAN_POINT('',(1.355,7.155,-1.6)); +#50259=CARTESIAN_POINT('',(1.355,7.085,-1.6)); +#50260=CARTESIAN_POINT('',(1.425,7.085,-1.6)); +#50261=CARTESIAN_POINT('',(1.425,0.377106686427072,-1.6)); +#50262=CARTESIAN_POINT('',(1.425,4.17643593539449,-1.6)); +#50263=CARTESIAN_POINT('',(1.505,4.17643593539449,-1.6)); +#50264=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,-1.6)); +#50265=CARTESIAN_POINT('',(4.67712579117079,-1.47784710291289,-1.6)); +#50266=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,-1.6)); +#50267=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,-1.6)); +#50268=CARTESIAN_POINT('',(1.49,4.02098076211353,-1.6)); +#50269=CARTESIAN_POINT('',(1.49,0.377106686427072,-1.6)); +#50270=CARTESIAN_POINT('',(1.49,1.05,-1.6)); +#50271=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50272=CARTESIAN_POINT('',(1.71,1.05,-1.6)); +#50273=CARTESIAN_POINT('',(1.71,0.377106686427072,-1.6)); +#50274=CARTESIAN_POINT('',(1.71,4.02098076211353,-1.6)); +#50275=CARTESIAN_POINT('',(1.79,4.02098076211353,-1.6)); +#50276=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,-1.6)); +#50277=CARTESIAN_POINT('',(1.66787420882924,3.96945268689123,-1.6)); +#50278=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,-1.6)); +#50279=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,-1.6)); +#50280=CARTESIAN_POINT('',(1.775,4.17643593539449,-1.6)); +#50281=CARTESIAN_POINT('',(1.775,0.377106686427072,-1.6)); +#50282=CARTESIAN_POINT('',(1.775,7.085,-1.6)); +#50283=CARTESIAN_POINT('',(1.845,7.085,-1.6)); +#50284=CARTESIAN_POINT('',(1.845,7.155,-1.6)); +#50285=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50286=CARTESIAN_POINT('',(2.155,7.155,-1.6)); +#50287=CARTESIAN_POINT('',(2.155,7.085,-1.6)); +#50288=CARTESIAN_POINT('',(2.225,7.085,-1.6)); +#50289=CARTESIAN_POINT('',(2.225,0.377106686427072,-1.6)); +#50290=CARTESIAN_POINT('',(2.225,4.17643593539449,-1.6)); +#50291=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,-1.6)); +#50292=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,-1.6)); +#50293=CARTESIAN_POINT('',(5.2771257911708,-1.13143694139912,-1.6)); +#50294=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,-1.6)); +#50295=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,-1.6)); +#50296=CARTESIAN_POINT('',(2.29,4.02098076211353,-1.6)); +#50297=CARTESIAN_POINT('',(2.29,0.377106686427072,-1.6)); +#50298=CARTESIAN_POINT('',(2.29,1.05,-1.6)); +#50299=CARTESIAN_POINT('',(7.89,1.04999999999999,-1.6)); +#50300=CARTESIAN_POINT('',(2.51,1.05,-1.6)); +#50301=CARTESIAN_POINT('',(2.51,0.377106686427072,-1.6)); +#50302=CARTESIAN_POINT('',(2.51,4.02098076211353,-1.6)); +#50303=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,-1.6)); +#50304=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,-1.6)); +#50305=CARTESIAN_POINT('',(2.26787420882924,3.62304252537746,-1.6)); +#50306=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,-1.6)); +#50307=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,-1.6)); +#50308=CARTESIAN_POINT('',(2.575,4.17643593539449,-1.6)); +#50309=CARTESIAN_POINT('',(2.575,0.377106686427072,-1.6)); +#50310=CARTESIAN_POINT('',(2.575,7.085,-1.6)); +#50311=CARTESIAN_POINT('',(2.645,7.085,-1.6)); +#50312=CARTESIAN_POINT('',(2.645,7.155,-1.6)); +#50313=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50314=CARTESIAN_POINT('',(2.955,7.155,-1.6)); +#50315=CARTESIAN_POINT('',(2.955,7.085,-1.6)); +#50316=CARTESIAN_POINT('',(3.025,7.085,-1.6)); +#50317=CARTESIAN_POINT('',(3.025,0.377106686427072,-1.6)); +#50318=CARTESIAN_POINT('',(3.025,4.17643593539449,-1.6)); +#50319=CARTESIAN_POINT('',(3.105,4.17643593539449,-1.6)); +#50320=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,-1.6)); +#50321=CARTESIAN_POINT('',(5.87712579117077,-0.785026779885342,-1.6)); +#50322=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,-1.6)); +#50323=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,-1.6)); +#50324=CARTESIAN_POINT('',(3.09,4.02098076211353,-1.6)); +#50325=CARTESIAN_POINT('',(3.09,0.377106686427072,-1.6)); +#50326=CARTESIAN_POINT('',(3.09,1.05,-1.6)); +#50327=CARTESIAN_POINT('',(7.89,1.05,-1.6)); +#50328=CARTESIAN_POINT('',(3.31,1.05,-1.6)); +#50329=CARTESIAN_POINT('',(3.31,0.377106686427072,-1.6)); +#50330=CARTESIAN_POINT('',(3.31,4.02098076211353,-1.6)); +#50331=CARTESIAN_POINT('',(3.39,4.02098076211353,-1.6)); +#50332=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,-1.6)); +#50333=CARTESIAN_POINT('',(2.86787420882923,3.27663236386366,-1.6)); +#50334=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,-1.6)); +#50335=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,-1.6)); +#50336=CARTESIAN_POINT('',(3.375,4.17643593539449,-1.6)); +#50337=CARTESIAN_POINT('',(3.375,0.377106686427072,-1.6)); +#50338=CARTESIAN_POINT('',(3.375,7.085,-1.6)); +#50339=CARTESIAN_POINT('',(3.445,7.085,-1.6)); +#50340=CARTESIAN_POINT('',(3.445,7.155,-1.6)); +#50341=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50342=CARTESIAN_POINT('',(3.755,7.155,-1.6)); +#50343=CARTESIAN_POINT('',(3.755,7.085,-1.6)); +#50344=CARTESIAN_POINT('',(3.825,7.085,-1.6)); +#50345=CARTESIAN_POINT('',(3.825,0.377106686427072,-1.6)); +#50346=CARTESIAN_POINT('',(3.825,4.17643593539449,-1.6)); +#50347=CARTESIAN_POINT('',(3.905,4.17643593539449,-1.6)); +#50348=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,-1.6)); +#50349=CARTESIAN_POINT('',(6.47712579117077,-0.438616618371565,-1.6)); +#50350=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,-1.6)); +#50351=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,-1.6)); +#50352=CARTESIAN_POINT('',(3.89,4.02098076211353,-1.6)); +#50353=CARTESIAN_POINT('',(3.89,0.377106686427072,-1.6)); +#50354=CARTESIAN_POINT('',(3.89,1.05,-1.6)); +#50355=CARTESIAN_POINT('',(7.89,1.05,-1.6)); +#50356=CARTESIAN_POINT('',(4.11,1.05,-1.6)); +#50357=CARTESIAN_POINT('',(4.11,0.377106686427072,-1.6)); +#50358=CARTESIAN_POINT('',(4.11,4.02098076211353,-1.6)); +#50359=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,-1.6)); +#50360=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,-1.6)); +#50361=CARTESIAN_POINT('',(3.46787420882924,2.93022220234991,-1.6)); +#50362=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,-1.6)); +#50363=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,-1.6)); +#50364=CARTESIAN_POINT('',(4.175,4.17643593539449,-1.6)); +#50365=CARTESIAN_POINT('',(4.175,0.377106686427072,-1.6)); +#50366=CARTESIAN_POINT('',(4.175,7.085,-1.6)); +#50367=CARTESIAN_POINT('',(4.245,7.085,-1.6)); +#50368=CARTESIAN_POINT('',(4.245,7.155,-1.6)); +#50369=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50370=CARTESIAN_POINT('',(4.555,7.155,-1.6)); +#50371=CARTESIAN_POINT('',(4.555,7.085,-1.6)); +#50372=CARTESIAN_POINT('',(4.625,7.085,-1.6)); +#50373=CARTESIAN_POINT('',(4.625,0.377106686427072,-1.6)); +#50374=CARTESIAN_POINT('',(4.625,4.17643593539449,-1.6)); +#50375=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,-1.6)); +#50376=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,-1.6)); +#50377=CARTESIAN_POINT('',(7.07712579117079,-0.0922064568577828,-1.6)); +#50378=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,-1.6)); +#50379=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,-1.6)); +#50380=CARTESIAN_POINT('',(4.69,4.02098076211353,-1.6)); +#50381=CARTESIAN_POINT('',(4.69,0.377106686427072,-1.6)); +#50382=CARTESIAN_POINT('',(4.69,1.05,-1.6)); +#50383=CARTESIAN_POINT('',(7.89,1.05,-1.6)); +#50384=CARTESIAN_POINT('',(4.91,1.05,-1.6)); +#50385=CARTESIAN_POINT('',(4.91,0.377106686427072,-1.6)); +#50386=CARTESIAN_POINT('',(4.91,4.02098076211353,-1.6)); +#50387=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,-1.6)); +#50388=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,-1.6)); +#50389=CARTESIAN_POINT('',(4.06787420882924,2.58381204083613,-1.6)); +#50390=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,-1.6)); +#50391=CARTESIAN_POINT('',(4.895,4.17643593539449,-1.6)); +#50392=CARTESIAN_POINT('',(4.975,4.17643593539449,-1.6)); +#50393=CARTESIAN_POINT('',(4.975,0.377106686427072,-1.6)); +#50394=CARTESIAN_POINT('',(4.975,7.085,-1.6)); +#50395=CARTESIAN_POINT('',(5.045,7.085,-1.6)); +#50396=CARTESIAN_POINT('',(5.045,7.155,-1.6)); +#50397=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50398=CARTESIAN_POINT('',(5.355,7.155,-1.6)); +#50399=CARTESIAN_POINT('',(5.355,7.085,-1.6)); +#50400=CARTESIAN_POINT('',(5.425,7.085,-1.6)); +#50401=CARTESIAN_POINT('',(5.425,0.377106686427072,-1.6)); +#50402=CARTESIAN_POINT('',(5.425,4.17643593539449,-1.6)); +#50403=CARTESIAN_POINT('',(5.505,4.17643593539449,-1.6)); +#50404=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,-1.6)); +#50405=CARTESIAN_POINT('',(7.67712579117075,0.254203704655977,-1.6)); +#50406=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,-1.6)); +#50407=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,-1.6)); +#50408=CARTESIAN_POINT('',(5.49,4.02098076211353,-1.6)); +#50409=CARTESIAN_POINT('',(5.49,0.377106686427072,-1.6)); +#50410=CARTESIAN_POINT('',(5.49,1.05,-1.6)); +#50411=CARTESIAN_POINT('',(7.89,1.05,-1.6)); +#50412=CARTESIAN_POINT('',(5.71,1.05,-1.6)); +#50413=CARTESIAN_POINT('',(5.71,0.377106686427072,-1.6)); +#50414=CARTESIAN_POINT('',(5.71,4.02098076211353,-1.6)); +#50415=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,-1.6)); +#50416=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,-1.6)); +#50417=CARTESIAN_POINT('',(4.66787420882924,2.23740187932236,-1.6)); +#50418=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,-1.6)); +#50419=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,-1.6)); +#50420=CARTESIAN_POINT('',(5.775,4.17643593539449,-1.6)); +#50421=CARTESIAN_POINT('',(5.775,0.377106686427072,-1.6)); +#50422=CARTESIAN_POINT('',(5.775,7.085,-1.6)); +#50423=CARTESIAN_POINT('',(5.845,7.085,-1.6)); +#50424=CARTESIAN_POINT('',(5.845,7.155,-1.6)); +#50425=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50426=CARTESIAN_POINT('',(6.155,7.155,-1.6)); +#50427=CARTESIAN_POINT('',(6.155,7.085,-1.6)); +#50428=CARTESIAN_POINT('',(6.225,7.085,-1.6)); +#50429=CARTESIAN_POINT('',(6.225,0.377106686427072,-1.6)); +#50430=CARTESIAN_POINT('',(6.225,4.17643593539449,-1.6)); +#50431=CARTESIAN_POINT('',(6.305,4.17643593539449,-1.6)); +#50432=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,-1.6)); +#50433=CARTESIAN_POINT('',(8.27712579117078,0.600613866169773,-1.6)); +#50434=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,-1.6)); +#50435=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,-1.6)); +#50436=CARTESIAN_POINT('',(6.29,4.02098076211353,-1.6)); +#50437=CARTESIAN_POINT('',(6.29,0.377106686427072,-1.6)); +#50438=CARTESIAN_POINT('',(6.29,1.05,-1.6)); +#50439=CARTESIAN_POINT('',(7.89,1.05,-1.6)); +#50440=CARTESIAN_POINT('',(6.51,1.05,-1.6)); +#50441=CARTESIAN_POINT('',(6.51,0.377106686427072,-1.6)); +#50442=CARTESIAN_POINT('',(6.51,4.02098076211353,-1.6)); +#50443=CARTESIAN_POINT('',(6.59,4.02098076211353,-1.6)); +#50444=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,-1.6)); +#50445=CARTESIAN_POINT('',(5.26787420882924,1.89099171780855,-1.6)); +#50446=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,-1.6)); +#50447=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,-1.6)); +#50448=CARTESIAN_POINT('',(6.575,4.17643593539449,-1.6)); +#50449=CARTESIAN_POINT('',(6.575,0.377106686427072,-1.6)); +#50450=CARTESIAN_POINT('',(6.575,7.085,-1.6)); +#50451=CARTESIAN_POINT('',(6.645,7.085,-1.6)); +#50452=CARTESIAN_POINT('',(6.645,7.155,-1.6)); +#50453=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50454=CARTESIAN_POINT('',(6.955,7.155,-1.6)); +#50455=CARTESIAN_POINT('',(6.955,7.085,-1.6)); +#50456=CARTESIAN_POINT('',(7.025,7.085,-1.6)); +#50457=CARTESIAN_POINT('',(7.025,0.377106686427072,-1.6)); +#50458=CARTESIAN_POINT('',(7.025,4.17643593539449,-1.6)); +#50459=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,-1.6)); +#50460=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,-1.6)); +#50461=CARTESIAN_POINT('',(8.87712579117078,0.94702402768355,-1.6)); +#50462=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,-1.6)); +#50463=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,-1.6)); +#50464=CARTESIAN_POINT('',(7.09,4.02098076211353,-1.6)); +#50465=CARTESIAN_POINT('',(7.09,0.377106686427072,-1.6)); +#50466=CARTESIAN_POINT('',(7.09,1.05,-1.6)); +#50467=CARTESIAN_POINT('',(7.89,1.05,-1.6)); +#50468=CARTESIAN_POINT('',(7.31,1.05,-1.6)); +#50469=CARTESIAN_POINT('',(7.31,0.377106686427072,-1.6)); +#50470=CARTESIAN_POINT('',(7.31,4.02098076211353,-1.6)); +#50471=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,-1.6)); +#50472=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,-1.6)); +#50473=CARTESIAN_POINT('',(5.86787420882923,1.54458155629481,-1.6)); +#50474=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,-1.6)); +#50475=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,-1.6)); +#50476=CARTESIAN_POINT('',(7.375,4.17643593539449,-1.6)); +#50477=CARTESIAN_POINT('',(7.375,0.377106686427072,-1.6)); +#50478=CARTESIAN_POINT('',(7.375,7.085,-1.6)); +#50479=CARTESIAN_POINT('',(7.445,7.085,-1.6)); +#50480=CARTESIAN_POINT('',(7.445,7.155,-1.6)); +#50481=CARTESIAN_POINT('',(7.89,7.155,-1.6)); +#50482=CARTESIAN_POINT('',(7.755,7.155,-1.6)); +#50483=CARTESIAN_POINT('',(7.755,7.085,-1.6)); +#50484=CARTESIAN_POINT('',(7.825,7.085,-1.6)); +#50485=CARTESIAN_POINT('',(7.825,0.377106686427072,-1.6)); +#50486=CARTESIAN_POINT('',(7.825,4.17643593539449,-1.6)); +#50487=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,-1.6)); +#50488=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,-1.6)); +#50489=CARTESIAN_POINT('',(9.47712579117077,1.29343418919733,-1.6)); +#50490=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,-1.6)); +#50491=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,-1.6)); +#50492=CARTESIAN_POINT('',(7.89,4.02098076211353,-1.6)); +#50493=CARTESIAN_POINT('',(7.89,0.377106686427072,-1.6)); +#50494=CARTESIAN_POINT('',(7.89,1.05,-1.6)); +#50495=CARTESIAN_POINT('',(8.,1.05,-1.6)); +#50496=CARTESIAN_POINT('',(8.,1.05,-1.6)); +#50497=CARTESIAN_POINT('',(8.,1.05,-1.6)); +#50498=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50499=CARTESIAN_POINT('',(7.89,1.,-1.435)); +#50500=CARTESIAN_POINT('',(7.95,1.,-1.435)); +#50501=CARTESIAN_POINT('',(-7.95,1.,-1.435)); +#50502=CARTESIAN_POINT('',(7.95,1.05,-1.435)); +#50503=CARTESIAN_POINT('',(7.95,1.05,-1.435)); +#50504=CARTESIAN_POINT('',(7.95,1.05,-1.435)); +#50505=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50506=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50507=CARTESIAN_POINT('',(7.89,4.02098076211353,-1.435)); +#50508=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,-1.435)); +#50509=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,-1.435)); +#50510=CARTESIAN_POINT('',(6.54221189432333,6.37685417437699,-1.435)); +#50511=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,-1.435)); +#50512=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,-1.435)); +#50513=CARTESIAN_POINT('',(7.825,4.17643593539449,-1.435)); +#50514=CARTESIAN_POINT('',(7.825,7.155,-1.435)); +#50515=CARTESIAN_POINT('',(7.825,7.085,-1.435)); +#50516=CARTESIAN_POINT('',(7.755,7.085,-1.435)); +#50517=CARTESIAN_POINT('',(7.755,7.155,-1.435)); +#50518=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50519=CARTESIAN_POINT('',(7.445,7.155,-1.435)); +#50520=CARTESIAN_POINT('',(7.445,7.085,-1.435)); +#50521=CARTESIAN_POINT('',(7.375,7.085,-1.435)); +#50522=CARTESIAN_POINT('',(7.375,7.155,-1.435)); +#50523=CARTESIAN_POINT('',(7.375,4.17643593539449,-1.435)); +#50524=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,-1.435)); +#50525=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,-1.435)); +#50526=CARTESIAN_POINT('',(8.80278810567666,6.62800154147449,-1.435)); +#50527=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,-1.435)); +#50528=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,-1.435)); +#50529=CARTESIAN_POINT('',(7.31,4.02098076211353,-1.435)); +#50530=CARTESIAN_POINT('',(7.31,7.155,-1.435)); +#50531=CARTESIAN_POINT('',(7.31,1.05,-1.435)); +#50532=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50533=CARTESIAN_POINT('',(7.09,1.05,-1.435)); +#50534=CARTESIAN_POINT('',(7.09,7.155,-1.435)); +#50535=CARTESIAN_POINT('',(7.09,4.02098076211353,-1.435)); +#50536=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,-1.435)); +#50537=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,-1.435)); +#50538=CARTESIAN_POINT('',(5.94221189432333,6.03044401286321,-1.435)); +#50539=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,-1.435)); +#50540=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,-1.435)); +#50541=CARTESIAN_POINT('',(7.025,4.17643593539449,-1.435)); +#50542=CARTESIAN_POINT('',(7.025,7.155,-1.435)); +#50543=CARTESIAN_POINT('',(7.025,7.085,-1.435)); +#50544=CARTESIAN_POINT('',(6.955,7.085,-1.435)); +#50545=CARTESIAN_POINT('',(6.955,7.155,-1.435)); +#50546=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50547=CARTESIAN_POINT('',(6.645,7.155,-1.435)); +#50548=CARTESIAN_POINT('',(6.645,7.085,-1.435)); +#50549=CARTESIAN_POINT('',(6.575,7.085,-1.435)); +#50550=CARTESIAN_POINT('',(6.575,7.155,-1.435)); +#50551=CARTESIAN_POINT('',(6.575,4.17643593539449,-1.435)); +#50552=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,-1.435)); +#50553=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,-1.435)); +#50554=CARTESIAN_POINT('',(8.20278810567664,6.97441170298828,-1.435)); +#50555=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,-1.435)); +#50556=CARTESIAN_POINT('',(6.59,4.02098076211353,-1.435)); +#50557=CARTESIAN_POINT('',(6.51,4.02098076211353,-1.435)); +#50558=CARTESIAN_POINT('',(6.51,7.155,-1.435)); +#50559=CARTESIAN_POINT('',(6.51,1.05,-1.435)); +#50560=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50561=CARTESIAN_POINT('',(6.29,1.05,-1.435)); +#50562=CARTESIAN_POINT('',(6.29,7.155,-1.435)); +#50563=CARTESIAN_POINT('',(6.29,4.02098076211353,-1.435)); +#50564=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,-1.435)); +#50565=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,-1.435)); +#50566=CARTESIAN_POINT('',(5.34221189432334,5.68403385134944,-1.435)); +#50567=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,-1.435)); +#50568=CARTESIAN_POINT('',(6.305,4.17643593539449,-1.435)); +#50569=CARTESIAN_POINT('',(6.225,4.17643593539449,-1.435)); +#50570=CARTESIAN_POINT('',(6.225,7.155,-1.435)); +#50571=CARTESIAN_POINT('',(6.225,7.085,-1.435)); +#50572=CARTESIAN_POINT('',(6.155,7.085,-1.435)); +#50573=CARTESIAN_POINT('',(6.155,7.155,-1.435)); +#50574=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50575=CARTESIAN_POINT('',(5.845,7.155,-1.435)); +#50576=CARTESIAN_POINT('',(5.845,7.085,-1.435)); +#50577=CARTESIAN_POINT('',(5.775,7.085,-1.435)); +#50578=CARTESIAN_POINT('',(5.775,7.155,-1.435)); +#50579=CARTESIAN_POINT('',(5.775,4.17643593539449,-1.435)); +#50580=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,-1.435)); +#50581=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,-1.435)); +#50582=CARTESIAN_POINT('',(7.60278810567667,7.32082186450204,-1.435)); +#50583=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,-1.435)); +#50584=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,-1.435)); +#50585=CARTESIAN_POINT('',(5.71,4.02098076211353,-1.435)); +#50586=CARTESIAN_POINT('',(5.71,7.155,-1.435)); +#50587=CARTESIAN_POINT('',(5.71,1.05,-1.435)); +#50588=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50589=CARTESIAN_POINT('',(5.49,1.05,-1.435)); +#50590=CARTESIAN_POINT('',(5.49,7.155,-1.435)); +#50591=CARTESIAN_POINT('',(5.49,4.02098076211353,-1.435)); +#50592=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,-1.435)); +#50593=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,-1.435)); +#50594=CARTESIAN_POINT('',(4.74221189432334,5.33762368983569,-1.435)); +#50595=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,-1.435)); +#50596=CARTESIAN_POINT('',(5.505,4.17643593539449,-1.435)); +#50597=CARTESIAN_POINT('',(5.425,4.17643593539449,-1.435)); +#50598=CARTESIAN_POINT('',(5.425,7.155,-1.435)); +#50599=CARTESIAN_POINT('',(5.425,7.085,-1.435)); +#50600=CARTESIAN_POINT('',(5.355,7.085,-1.435)); +#50601=CARTESIAN_POINT('',(5.355,7.155,-1.435)); +#50602=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50603=CARTESIAN_POINT('',(5.045,7.155,-1.435)); +#50604=CARTESIAN_POINT('',(5.045,7.085,-1.435)); +#50605=CARTESIAN_POINT('',(4.975,7.085,-1.435)); +#50606=CARTESIAN_POINT('',(4.975,7.155,-1.435)); +#50607=CARTESIAN_POINT('',(4.975,4.17643593539449,-1.435)); +#50608=CARTESIAN_POINT('',(4.895,4.17643593539449,-1.435)); +#50609=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,-1.435)); +#50610=CARTESIAN_POINT('',(7.00278810567667,7.66723202601582,-1.435)); +#50611=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,-1.435)); +#50612=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,-1.435)); +#50613=CARTESIAN_POINT('',(4.91,4.02098076211353,-1.435)); +#50614=CARTESIAN_POINT('',(4.91,7.155,-1.435)); +#50615=CARTESIAN_POINT('',(4.91,1.05,-1.435)); +#50616=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50617=CARTESIAN_POINT('',(4.69,1.05,-1.435)); +#50618=CARTESIAN_POINT('',(4.69,7.155,-1.435)); +#50619=CARTESIAN_POINT('',(4.69,4.02098076211353,-1.435)); +#50620=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,-1.435)); +#50621=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,-1.435)); +#50622=CARTESIAN_POINT('',(4.14221189432335,4.99121352832188,-1.435)); +#50623=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,-1.435)); +#50624=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,-1.435)); +#50625=CARTESIAN_POINT('',(4.625,4.17643593539449,-1.435)); +#50626=CARTESIAN_POINT('',(4.625,7.155,-1.435)); +#50627=CARTESIAN_POINT('',(4.625,7.085,-1.435)); +#50628=CARTESIAN_POINT('',(4.555,7.085,-1.435)); +#50629=CARTESIAN_POINT('',(4.555,7.155,-1.435)); +#50630=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50631=CARTESIAN_POINT('',(4.245,7.155,-1.435)); +#50632=CARTESIAN_POINT('',(4.245,7.085,-1.435)); +#50633=CARTESIAN_POINT('',(4.175,7.085,-1.435)); +#50634=CARTESIAN_POINT('',(4.175,7.155,-1.435)); +#50635=CARTESIAN_POINT('',(4.175,4.17643593539449,-1.435)); +#50636=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,-1.435)); +#50637=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,-1.435)); +#50638=CARTESIAN_POINT('',(6.40278810567667,8.0136421875296,-1.435)); +#50639=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,-1.435)); +#50640=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,-1.435)); +#50641=CARTESIAN_POINT('',(4.11,4.02098076211353,-1.435)); +#50642=CARTESIAN_POINT('',(4.11,7.155,-1.435)); +#50643=CARTESIAN_POINT('',(4.11,1.05,-1.435)); +#50644=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50645=CARTESIAN_POINT('',(3.89,1.05,-1.435)); +#50646=CARTESIAN_POINT('',(3.89,7.155,-1.435)); +#50647=CARTESIAN_POINT('',(3.89,4.02098076211353,-1.435)); +#50648=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,-1.435)); +#50649=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,-1.435)); +#50650=CARTESIAN_POINT('',(3.54221189432334,4.64480336680812,-1.435)); +#50651=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,-1.435)); +#50652=CARTESIAN_POINT('',(3.905,4.17643593539449,-1.435)); +#50653=CARTESIAN_POINT('',(3.825,4.17643593539449,-1.435)); +#50654=CARTESIAN_POINT('',(3.825,7.155,-1.435)); +#50655=CARTESIAN_POINT('',(3.825,7.085,-1.435)); +#50656=CARTESIAN_POINT('',(3.755,7.085,-1.435)); +#50657=CARTESIAN_POINT('',(3.755,7.155,-1.435)); +#50658=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50659=CARTESIAN_POINT('',(3.445,7.155,-1.435)); +#50660=CARTESIAN_POINT('',(3.445,7.085,-1.435)); +#50661=CARTESIAN_POINT('',(3.375,7.085,-1.435)); +#50662=CARTESIAN_POINT('',(3.375,7.155,-1.435)); +#50663=CARTESIAN_POINT('',(3.375,4.17643593539449,-1.435)); +#50664=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,-1.435)); +#50665=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,-1.435)); +#50666=CARTESIAN_POINT('',(5.80278810567665,8.36005234904337,-1.435)); +#50667=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,-1.435)); +#50668=CARTESIAN_POINT('',(3.39,4.02098076211353,-1.435)); +#50669=CARTESIAN_POINT('',(3.31,4.02098076211353,-1.435)); +#50670=CARTESIAN_POINT('',(3.31,7.155,-1.435)); +#50671=CARTESIAN_POINT('',(3.31,1.05,-1.435)); +#50672=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50673=CARTESIAN_POINT('',(3.09,1.05,-1.435)); +#50674=CARTESIAN_POINT('',(3.09,7.155,-1.435)); +#50675=CARTESIAN_POINT('',(3.09,4.02098076211353,-1.435)); +#50676=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,-1.435)); +#50677=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,-1.435)); +#50678=CARTESIAN_POINT('',(2.94221189432334,4.29839320529435,-1.435)); +#50679=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,-1.435)); +#50680=CARTESIAN_POINT('',(3.105,4.17643593539449,-1.435)); +#50681=CARTESIAN_POINT('',(3.025,4.17643593539449,-1.435)); +#50682=CARTESIAN_POINT('',(3.025,7.155,-1.435)); +#50683=CARTESIAN_POINT('',(3.025,7.085,-1.435)); +#50684=CARTESIAN_POINT('',(2.955,7.085,-1.435)); +#50685=CARTESIAN_POINT('',(2.955,7.155,-1.435)); +#50686=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50687=CARTESIAN_POINT('',(2.645,7.155,-1.435)); +#50688=CARTESIAN_POINT('',(2.645,7.085,-1.435)); +#50689=CARTESIAN_POINT('',(2.575,7.085,-1.435)); +#50690=CARTESIAN_POINT('',(2.575,7.155,-1.435)); +#50691=CARTESIAN_POINT('',(2.575,4.17643593539449,-1.435)); +#50692=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,-1.435)); +#50693=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,-1.435)); +#50694=CARTESIAN_POINT('',(5.20278810567667,8.70646251055715,-1.435)); +#50695=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,-1.435)); +#50696=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,-1.435)); +#50697=CARTESIAN_POINT('',(2.51,4.02098076211353,-1.435)); +#50698=CARTESIAN_POINT('',(2.51,7.155,-1.435)); +#50699=CARTESIAN_POINT('',(2.51,1.05,-1.435)); +#50700=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50701=CARTESIAN_POINT('',(2.29,1.05,-1.435)); +#50702=CARTESIAN_POINT('',(2.29,7.155,-1.435)); +#50703=CARTESIAN_POINT('',(2.29,4.02098076211353,-1.435)); +#50704=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,-1.435)); +#50705=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,-1.435)); +#50706=CARTESIAN_POINT('',(2.34221189432336,3.95198304378055,-1.435)); +#50707=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,-1.435)); +#50708=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,-1.435)); +#50709=CARTESIAN_POINT('',(2.225,4.17643593539449,-1.435)); +#50710=CARTESIAN_POINT('',(2.225,7.155,-1.435)); +#50711=CARTESIAN_POINT('',(2.225,7.085,-1.435)); +#50712=CARTESIAN_POINT('',(2.155,7.085,-1.435)); +#50713=CARTESIAN_POINT('',(2.155,7.155,-1.435)); +#50714=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50715=CARTESIAN_POINT('',(1.845,7.155,-1.435)); +#50716=CARTESIAN_POINT('',(1.845,7.085,-1.435)); +#50717=CARTESIAN_POINT('',(1.775,7.085,-1.435)); +#50718=CARTESIAN_POINT('',(1.775,7.155,-1.435)); +#50719=CARTESIAN_POINT('',(1.775,4.17643593539449,-1.435)); +#50720=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,-1.435)); +#50721=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,-1.435)); +#50722=CARTESIAN_POINT('',(4.60278810567666,9.05287267207092,-1.435)); +#50723=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,-1.435)); +#50724=CARTESIAN_POINT('',(1.79,4.02098076211353,-1.435)); +#50725=CARTESIAN_POINT('',(1.71,4.02098076211353,-1.435)); +#50726=CARTESIAN_POINT('',(1.71,7.155,-1.435)); +#50727=CARTESIAN_POINT('',(1.71,1.05,-1.435)); +#50728=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50729=CARTESIAN_POINT('',(1.49,1.05,-1.435)); +#50730=CARTESIAN_POINT('',(1.49,7.155,-1.435)); +#50731=CARTESIAN_POINT('',(1.49,4.02098076211353,-1.435)); +#50732=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,-1.435)); +#50733=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,-1.435)); +#50734=CARTESIAN_POINT('',(1.74221189432335,3.60557288226678,-1.435)); +#50735=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,-1.435)); +#50736=CARTESIAN_POINT('',(1.505,4.17643593539449,-1.435)); +#50737=CARTESIAN_POINT('',(1.425,4.17643593539449,-1.435)); +#50738=CARTESIAN_POINT('',(1.425,7.155,-1.435)); +#50739=CARTESIAN_POINT('',(1.425,7.085,-1.435)); +#50740=CARTESIAN_POINT('',(1.355,7.085,-1.435)); +#50741=CARTESIAN_POINT('',(1.355,7.155,-1.435)); +#50742=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50743=CARTESIAN_POINT('',(1.045,7.155,-1.435)); +#50744=CARTESIAN_POINT('',(1.045,7.085,-1.435)); +#50745=CARTESIAN_POINT('',(0.974999999999998,7.085,-1.435)); +#50746=CARTESIAN_POINT('',(0.974999999999998,7.155,-1.435)); +#50747=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,-1.435)); +#50748=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,-1.435)); +#50749=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,-1.435)); +#50750=CARTESIAN_POINT('',(4.00278810567667,9.3992828335847,-1.435)); +#50751=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,-1.435)); +#50752=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,-1.435)); +#50753=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,-1.435)); +#50754=CARTESIAN_POINT('',(0.909999999999999,7.155,-1.435)); +#50755=CARTESIAN_POINT('',(0.909999999999999,1.05,-1.435)); +#50756=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50757=CARTESIAN_POINT('',(0.69,1.05,-1.435)); +#50758=CARTESIAN_POINT('',(0.69,7.155,-1.435)); +#50759=CARTESIAN_POINT('',(0.69,4.02098076211353,-1.435)); +#50760=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,-1.435)); +#50761=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,-1.435)); +#50762=CARTESIAN_POINT('',(1.14221189432336,3.259162720753,-1.435)); +#50763=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,-1.435)); +#50764=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,-1.435)); +#50765=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,-1.435)); +#50766=CARTESIAN_POINT('',(0.624999999999999,7.155,-1.435)); +#50767=CARTESIAN_POINT('',(0.624999999999999,7.085,-1.435)); +#50768=CARTESIAN_POINT('',(0.554999999999999,7.085,-1.435)); +#50769=CARTESIAN_POINT('',(0.554999999999999,7.155,-1.435)); +#50770=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50771=CARTESIAN_POINT('',(0.244999999999999,7.155,-1.435)); +#50772=CARTESIAN_POINT('',(0.245,7.085,-1.435)); +#50773=CARTESIAN_POINT('',(0.174999999999999,7.085,-1.435)); +#50774=CARTESIAN_POINT('',(0.174999999999999,7.155,-1.435)); +#50775=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,-1.435)); +#50776=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,-1.435)); +#50777=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,-1.435)); +#50778=CARTESIAN_POINT('',(3.40278810567667,9.74569299509848,-1.435)); +#50779=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,-1.435)); +#50780=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,-1.435)); +#50781=CARTESIAN_POINT('',(0.11,4.02098076211353,-1.435)); +#50782=CARTESIAN_POINT('',(0.109999999999999,7.155,-1.435)); +#50783=CARTESIAN_POINT('',(0.109999999999999,1.05,-1.435)); +#50784=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50785=CARTESIAN_POINT('',(-0.110000000000001,1.05,-1.435)); +#50786=CARTESIAN_POINT('',(-0.110000000000001,7.155,-1.435)); +#50787=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,-1.435)); +#50788=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,-1.435)); +#50789=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,-1.435)); +#50790=CARTESIAN_POINT('',(0.542211894323356,2.91275255923923,-1.435)); +#50791=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,-1.435)); +#50792=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,-1.435)); +#50793=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,-1.435)); +#50794=CARTESIAN_POINT('',(-0.175000000000002,7.155,-1.435)); +#50795=CARTESIAN_POINT('',(-0.175000000000001,7.085,-1.435)); +#50796=CARTESIAN_POINT('',(-0.245000000000001,7.085,-1.435)); +#50797=CARTESIAN_POINT('',(-0.245000000000001,7.155,-1.435)); +#50798=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50799=CARTESIAN_POINT('',(-0.555000000000001,7.155,-1.435)); +#50800=CARTESIAN_POINT('',(-0.555,7.085,-1.435)); +#50801=CARTESIAN_POINT('',(-0.625000000000001,7.085,-1.435)); +#50802=CARTESIAN_POINT('',(-0.625000000000001,7.155,-1.435)); +#50803=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,-1.435)); +#50804=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,-1.435)); +#50805=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,-1.435)); +#50806=CARTESIAN_POINT('',(2.80278810567667,10.0921031566123,-1.435)); +#50807=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,-1.435)); +#50808=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,-1.435)); +#50809=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,-1.435)); +#50810=CARTESIAN_POINT('',(-0.690000000000001,7.155,-1.435)); +#50811=CARTESIAN_POINT('',(-0.690000000000001,1.05,-1.435)); +#50812=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50813=CARTESIAN_POINT('',(-0.910000000000001,1.05,-1.435)); +#50814=CARTESIAN_POINT('',(-0.910000000000001,7.155,-1.435)); +#50815=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,-1.435)); +#50816=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,-1.435)); +#50817=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,-1.435)); +#50818=CARTESIAN_POINT('',(-0.0577881056766389,2.56634239772545,-1.435)); +#50819=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,-1.435)); +#50820=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,-1.435)); +#50821=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,-1.435)); +#50822=CARTESIAN_POINT('',(-0.975000000000002,7.155,-1.435)); +#50823=CARTESIAN_POINT('',(-0.975000000000001,7.085,-1.435)); +#50824=CARTESIAN_POINT('',(-1.045,7.085,-1.435)); +#50825=CARTESIAN_POINT('',(-1.045,7.155,-1.435)); +#50826=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50827=CARTESIAN_POINT('',(-1.355,7.155,-1.435)); +#50828=CARTESIAN_POINT('',(-1.355,7.085,-1.435)); +#50829=CARTESIAN_POINT('',(-1.425,7.085,-1.435)); +#50830=CARTESIAN_POINT('',(-1.425,7.155,-1.435)); +#50831=CARTESIAN_POINT('',(-1.425,4.17643593539449,-1.435)); +#50832=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,-1.435)); +#50833=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,-1.435)); +#50834=CARTESIAN_POINT('',(2.20278810567666,10.438513318126,-1.435)); +#50835=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,-1.435)); +#50836=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,-1.435)); +#50837=CARTESIAN_POINT('',(-1.49,4.02098076211353,-1.435)); +#50838=CARTESIAN_POINT('',(-1.49,7.155,-1.435)); +#50839=CARTESIAN_POINT('',(-1.49,1.05,-1.435)); +#50840=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50841=CARTESIAN_POINT('',(-1.71,1.05,-1.435)); +#50842=CARTESIAN_POINT('',(-1.71,7.155,-1.435)); +#50843=CARTESIAN_POINT('',(-1.71,4.02098076211353,-1.435)); +#50844=CARTESIAN_POINT('',(-1.79,4.02098076211353,-1.435)); +#50845=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,-1.435)); +#50846=CARTESIAN_POINT('',(-0.657788105676635,2.21993223621167,-1.435)); +#50847=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,-1.435)); +#50848=CARTESIAN_POINT('',(-1.695,4.17643593539449,-1.435)); +#50849=CARTESIAN_POINT('',(-1.775,4.17643593539449,-1.435)); +#50850=CARTESIAN_POINT('',(-1.775,7.155,-1.435)); +#50851=CARTESIAN_POINT('',(-1.775,7.085,-1.435)); +#50852=CARTESIAN_POINT('',(-1.845,7.085,-1.435)); +#50853=CARTESIAN_POINT('',(-1.845,7.155,-1.435)); +#50854=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50855=CARTESIAN_POINT('',(-2.155,7.155,-1.435)); +#50856=CARTESIAN_POINT('',(-2.155,7.085,-1.435)); +#50857=CARTESIAN_POINT('',(-2.225,7.085,-1.435)); +#50858=CARTESIAN_POINT('',(-2.225,7.155,-1.435)); +#50859=CARTESIAN_POINT('',(-2.225,4.17643593539449,-1.435)); +#50860=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,-1.435)); +#50861=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,-1.435)); +#50862=CARTESIAN_POINT('',(1.60278810567668,10.7849234796398,-1.435)); +#50863=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,-1.435)); +#50864=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,-1.435)); +#50865=CARTESIAN_POINT('',(-2.29,4.02098076211353,-1.435)); +#50866=CARTESIAN_POINT('',(-2.29,7.155,-1.435)); +#50867=CARTESIAN_POINT('',(-2.29,1.05,-1.435)); +#50868=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50869=CARTESIAN_POINT('',(-2.51,1.05,-1.435)); +#50870=CARTESIAN_POINT('',(-2.51,7.155,-1.435)); +#50871=CARTESIAN_POINT('',(-2.51,4.02098076211353,-1.435)); +#50872=CARTESIAN_POINT('',(-2.59,4.02098076211353,-1.435)); +#50873=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,-1.435)); +#50874=CARTESIAN_POINT('',(-1.25778810567662,1.87352207469788,-1.435)); +#50875=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,-1.435)); +#50876=CARTESIAN_POINT('',(-2.495,4.17643593539449,-1.435)); +#50877=CARTESIAN_POINT('',(-2.575,4.17643593539449,-1.435)); +#50878=CARTESIAN_POINT('',(-2.575,7.155,-1.435)); +#50879=CARTESIAN_POINT('',(-2.575,7.085,-1.435)); +#50880=CARTESIAN_POINT('',(-2.645,7.085,-1.435)); +#50881=CARTESIAN_POINT('',(-2.645,7.155,-1.435)); +#50882=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50883=CARTESIAN_POINT('',(-2.955,7.155,-1.435)); +#50884=CARTESIAN_POINT('',(-2.955,7.085,-1.435)); +#50885=CARTESIAN_POINT('',(-3.025,7.085,-1.435)); +#50886=CARTESIAN_POINT('',(-3.025,7.155,-1.435)); +#50887=CARTESIAN_POINT('',(-3.025,4.17643593539449,-1.435)); +#50888=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,-1.435)); +#50889=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,-1.435)); +#50890=CARTESIAN_POINT('',(1.00278810567664,11.1313336411536,-1.435)); +#50891=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,-1.435)); +#50892=CARTESIAN_POINT('',(-3.01,4.02098076211353,-1.435)); +#50893=CARTESIAN_POINT('',(-3.09,4.02098076211353,-1.435)); +#50894=CARTESIAN_POINT('',(-3.09,7.155,-1.435)); +#50895=CARTESIAN_POINT('',(-3.09,1.05,-1.435)); +#50896=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50897=CARTESIAN_POINT('',(-3.31,1.05,-1.435)); +#50898=CARTESIAN_POINT('',(-3.31,7.155,-1.435)); +#50899=CARTESIAN_POINT('',(-3.31,4.02098076211353,-1.435)); +#50900=CARTESIAN_POINT('',(-3.39,4.02098076211353,-1.435)); +#50901=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,-1.435)); +#50902=CARTESIAN_POINT('',(-1.85778810567661,1.5271119131841,-1.435)); +#50903=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,-1.435)); +#50904=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,-1.435)); +#50905=CARTESIAN_POINT('',(-3.375,4.17643593539449,-1.435)); +#50906=CARTESIAN_POINT('',(-3.375,7.155,-1.435)); +#50907=CARTESIAN_POINT('',(-3.375,7.085,-1.435)); +#50908=CARTESIAN_POINT('',(-3.445,7.085,-1.435)); +#50909=CARTESIAN_POINT('',(-3.445,7.155,-1.435)); +#50910=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50911=CARTESIAN_POINT('',(-3.755,7.155,-1.435)); +#50912=CARTESIAN_POINT('',(-3.755,7.085,-1.435)); +#50913=CARTESIAN_POINT('',(-3.825,7.085,-1.435)); +#50914=CARTESIAN_POINT('',(-3.825,7.155,-1.435)); +#50915=CARTESIAN_POINT('',(-3.825,4.17643593539449,-1.435)); +#50916=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,-1.435)); +#50917=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,-1.435)); +#50918=CARTESIAN_POINT('',(0.402788105676636,11.4777438026673,-1.435)); +#50919=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,-1.435)); +#50920=CARTESIAN_POINT('',(-3.81,4.02098076211353,-1.435)); +#50921=CARTESIAN_POINT('',(-3.89,4.02098076211353,-1.435)); +#50922=CARTESIAN_POINT('',(-3.89,7.155,-1.435)); +#50923=CARTESIAN_POINT('',(-3.89,1.05,-1.435)); +#50924=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50925=CARTESIAN_POINT('',(-4.11,1.05,-1.435)); +#50926=CARTESIAN_POINT('',(-4.11,7.155,-1.435)); +#50927=CARTESIAN_POINT('',(-4.11,4.02098076211353,-1.435)); +#50928=CARTESIAN_POINT('',(-4.19,4.02098076211353,-1.435)); +#50929=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,-1.435)); +#50930=CARTESIAN_POINT('',(-2.45778810567661,1.18070175167033,-1.435)); +#50931=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,-1.435)); +#50932=CARTESIAN_POINT('',(-4.095,4.17643593539449,-1.435)); +#50933=CARTESIAN_POINT('',(-4.175,4.17643593539449,-1.435)); +#50934=CARTESIAN_POINT('',(-4.175,7.155,-1.435)); +#50935=CARTESIAN_POINT('',(-4.175,7.085,-1.435)); +#50936=CARTESIAN_POINT('',(-4.245,7.085,-1.435)); +#50937=CARTESIAN_POINT('',(-4.245,7.155,-1.435)); +#50938=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50939=CARTESIAN_POINT('',(-4.555,7.155,-1.435)); +#50940=CARTESIAN_POINT('',(-4.555,7.085,-1.435)); +#50941=CARTESIAN_POINT('',(-4.625,7.085,-1.435)); +#50942=CARTESIAN_POINT('',(-4.625,7.155,-1.435)); +#50943=CARTESIAN_POINT('',(-4.625,4.17643593539449,-1.435)); +#50944=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,-1.435)); +#50945=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,-1.435)); +#50946=CARTESIAN_POINT('',(-0.197211894323316,11.8241539641811,-1.435)); +#50947=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,-1.435)); +#50948=CARTESIAN_POINT('',(-4.61,4.02098076211353,-1.435)); +#50949=CARTESIAN_POINT('',(-4.69,4.02098076211353,-1.435)); +#50950=CARTESIAN_POINT('',(-4.69,7.155,-1.435)); +#50951=CARTESIAN_POINT('',(-4.69,1.05,-1.435)); +#50952=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50953=CARTESIAN_POINT('',(-4.91,1.05,-1.435)); +#50954=CARTESIAN_POINT('',(-4.91,7.155,-1.435)); +#50955=CARTESIAN_POINT('',(-4.91,4.02098076211353,-1.435)); +#50956=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,-1.435)); +#50957=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,-1.435)); +#50958=CARTESIAN_POINT('',(-3.0577881056766,0.834291590156548,-1.435)); +#50959=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,-1.435)); +#50960=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,-1.435)); +#50961=CARTESIAN_POINT('',(-4.975,4.17643593539449,-1.435)); +#50962=CARTESIAN_POINT('',(-4.975,7.155,-1.435)); +#50963=CARTESIAN_POINT('',(-4.975,7.085,-1.435)); +#50964=CARTESIAN_POINT('',(-5.045,7.085,-1.435)); +#50965=CARTESIAN_POINT('',(-5.045,7.155,-1.435)); +#50966=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50967=CARTESIAN_POINT('',(-5.355,7.155,-1.435)); +#50968=CARTESIAN_POINT('',(-5.355,7.085,-1.435)); +#50969=CARTESIAN_POINT('',(-5.425,7.085,-1.435)); +#50970=CARTESIAN_POINT('',(-5.425,7.155,-1.435)); +#50971=CARTESIAN_POINT('',(-5.425,4.17643593539449,-1.435)); +#50972=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,-1.435)); +#50973=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,-1.435)); +#50974=CARTESIAN_POINT('',(-0.797211894323425,12.1705641256949,-1.435)); +#50975=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,-1.435)); +#50976=CARTESIAN_POINT('',(-5.41,4.02098076211353,-1.435)); +#50977=CARTESIAN_POINT('',(-5.49,4.02098076211353,-1.435)); +#50978=CARTESIAN_POINT('',(-5.49,7.155,-1.435)); +#50979=CARTESIAN_POINT('',(-5.49,1.05,-1.435)); +#50980=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#50981=CARTESIAN_POINT('',(-5.71,1.05,-1.435)); +#50982=CARTESIAN_POINT('',(-5.71,7.155,-1.435)); +#50983=CARTESIAN_POINT('',(-5.71,4.02098076211353,-1.435)); +#50984=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,-1.435)); +#50985=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,-1.435)); +#50986=CARTESIAN_POINT('',(-3.6577881056766,0.48788142864277,-1.435)); +#50987=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,-1.435)); +#50988=CARTESIAN_POINT('',(-5.695,4.17643593539449,-1.435)); +#50989=CARTESIAN_POINT('',(-5.775,4.17643593539449,-1.435)); +#50990=CARTESIAN_POINT('',(-5.775,7.155,-1.435)); +#50991=CARTESIAN_POINT('',(-5.775,7.085,-1.435)); +#50992=CARTESIAN_POINT('',(-5.845,7.085,-1.435)); +#50993=CARTESIAN_POINT('',(-5.845,7.155,-1.435)); +#50994=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#50995=CARTESIAN_POINT('',(-6.155,7.155,-1.435)); +#50996=CARTESIAN_POINT('',(-6.155,7.085,-1.435)); +#50997=CARTESIAN_POINT('',(-6.225,7.085,-1.435)); +#50998=CARTESIAN_POINT('',(-6.225,7.155,-1.435)); +#50999=CARTESIAN_POINT('',(-6.225,4.17643593539449,-1.435)); +#51000=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,-1.435)); +#51001=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,-1.435)); +#51002=CARTESIAN_POINT('',(-1.39721189432331,12.5169742872087,-1.435)); +#51003=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,-1.435)); +#51004=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,-1.435)); +#51005=CARTESIAN_POINT('',(-6.29,4.02098076211353,-1.435)); +#51006=CARTESIAN_POINT('',(-6.29,7.155,-1.435)); +#51007=CARTESIAN_POINT('',(-6.29,1.05,-1.435)); +#51008=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#51009=CARTESIAN_POINT('',(-6.51,1.05,-1.435)); +#51010=CARTESIAN_POINT('',(-6.51,7.155,-1.435)); +#51011=CARTESIAN_POINT('',(-6.51,4.02098076211353,-1.435)); +#51012=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,-1.435)); +#51013=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,-1.435)); +#51014=CARTESIAN_POINT('',(-4.25778810567669,0.141471267129077,-1.435)); +#51015=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,-1.435)); +#51016=CARTESIAN_POINT('',(-6.495,4.17643593539449,-1.435)); +#51017=CARTESIAN_POINT('',(-6.575,4.17643593539449,-1.435)); +#51018=CARTESIAN_POINT('',(-6.575,7.155,-1.435)); +#51019=CARTESIAN_POINT('',(-6.575,7.085,-1.435)); +#51020=CARTESIAN_POINT('',(-6.645,7.085,-1.435)); +#51021=CARTESIAN_POINT('',(-6.645,7.155,-1.435)); +#51022=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#51023=CARTESIAN_POINT('',(-6.955,7.155,-1.435)); +#51024=CARTESIAN_POINT('',(-6.955,7.085,-1.435)); +#51025=CARTESIAN_POINT('',(-7.025,7.085,-1.435)); +#51026=CARTESIAN_POINT('',(-7.025,7.155,-1.435)); +#51027=CARTESIAN_POINT('',(-7.025,4.17643593539449,-1.435)); +#51028=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,-1.435)); +#51029=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,-1.435)); +#51030=CARTESIAN_POINT('',(-1.99721189432331,12.8633844487225,-1.435)); +#51031=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,-1.435)); +#51032=CARTESIAN_POINT('',(-7.01,4.02098076211353,-1.435)); +#51033=CARTESIAN_POINT('',(-7.09,4.02098076211353,-1.435)); +#51034=CARTESIAN_POINT('',(-7.09,7.155,-1.435)); +#51035=CARTESIAN_POINT('',(-7.09,1.05,-1.435)); +#51036=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#51037=CARTESIAN_POINT('',(-7.31,1.05,-1.435)); +#51038=CARTESIAN_POINT('',(-7.31,7.15500000000001,-1.435)); +#51039=CARTESIAN_POINT('',(-7.31,4.02098076211353,-1.435)); +#51040=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,-1.435)); +#51041=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,-1.435)); +#51042=CARTESIAN_POINT('',(-4.85778810567659,-0.204938894384786,-1.435)); +#51043=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,-1.435)); +#51044=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,-1.435)); +#51045=CARTESIAN_POINT('',(-7.375,4.17643593539449,-1.435)); +#51046=CARTESIAN_POINT('',(-7.375,7.155,-1.435)); +#51047=CARTESIAN_POINT('',(-7.375,7.085,-1.435)); +#51048=CARTESIAN_POINT('',(-7.445,7.085,-1.435)); +#51049=CARTESIAN_POINT('',(-7.445,7.155,-1.435)); +#51050=CARTESIAN_POINT('',(7.89,7.155,-1.435)); +#51051=CARTESIAN_POINT('',(-7.755,7.155,-1.435)); +#51052=CARTESIAN_POINT('',(-7.755,7.085,-1.435)); +#51053=CARTESIAN_POINT('',(-7.825,7.085,-1.435)); +#51054=CARTESIAN_POINT('',(-7.825,7.155,-1.435)); +#51055=CARTESIAN_POINT('',(-7.825,4.17643593539449,-1.435)); +#51056=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,-1.435)); +#51057=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,-1.435)); +#51058=CARTESIAN_POINT('',(-2.59721189432318,13.2097946102363,-1.435)); +#51059=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,-1.435)); +#51060=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,-1.435)); +#51061=CARTESIAN_POINT('',(-7.89,4.02098076211353,-1.435)); +#51062=CARTESIAN_POINT('',(-7.89,7.155,-1.435)); +#51063=CARTESIAN_POINT('',(-7.88999999999999,1.05,-1.435)); +#51064=CARTESIAN_POINT('',(7.95,1.05,-1.435)); +#51065=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); +#51066=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); +#51067=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51068=CARTESIAN_POINT('',(7.89,1.,1.435)); +#51069=CARTESIAN_POINT('',(-7.95,1.,1.435)); +#51070=CARTESIAN_POINT('',(7.95,1.,1.435)); +#51071=CARTESIAN_POINT('',(-7.95,1.05,1.435)); +#51072=CARTESIAN_POINT('',(-7.95,1.05,1.435)); +#51073=CARTESIAN_POINT('',(-7.95,1.05,1.435)); +#51074=CARTESIAN_POINT('',(-7.89,1.05,1.435)); +#51075=CARTESIAN_POINT('',(-7.89,1.05,1.435)); +#51076=CARTESIAN_POINT('',(-7.89,4.02098076211354,1.435)); +#51077=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,1.435)); +#51078=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,1.435)); +#51079=CARTESIAN_POINT('',(-5.24075443937521,8.63104461023634,1.435)); +#51080=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,1.435)); +#51081=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,1.435)); +#51082=CARTESIAN_POINT('',(-7.825,4.17643593539449,1.435)); +#51083=CARTESIAN_POINT('',(-7.825,1.05,1.435)); +#51084=CARTESIAN_POINT('',(-7.825,7.085,1.435)); +#51085=CARTESIAN_POINT('',(-7.755,7.085,1.435)); +#51086=CARTESIAN_POINT('',(-7.755,7.155,1.435)); +#51087=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51088=CARTESIAN_POINT('',(-7.445,7.155,1.435)); +#51089=CARTESIAN_POINT('',(-7.445,7.085,1.435)); +#51090=CARTESIAN_POINT('',(-7.375,7.085,1.435)); +#51091=CARTESIAN_POINT('',(-7.375,1.05,1.435)); +#51092=CARTESIAN_POINT('',(-7.375,4.17643593539449,1.435)); +#51093=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,1.435)); +#51094=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,1.435)); +#51095=CARTESIAN_POINT('',(-2.21424556062457,-4.78368889438476,1.435)); +#51096=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,1.435)); +#51097=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,1.435)); +#51098=CARTESIAN_POINT('',(-7.31,4.02098076211353,1.435)); +#51099=CARTESIAN_POINT('',(-7.31,1.05000000000001,1.435)); +#51100=CARTESIAN_POINT('',(-7.31,1.05,1.435)); +#51101=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51102=CARTESIAN_POINT('',(-7.09,1.05,1.435)); +#51103=CARTESIAN_POINT('',(-7.09,1.05,1.435)); +#51104=CARTESIAN_POINT('',(-7.09,4.02098076211353,1.435)); +#51105=CARTESIAN_POINT('',(-7.01,4.02098076211353,1.435)); +#51106=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,1.435)); +#51107=CARTESIAN_POINT('',(-4.64075443937532,8.28463444872247,1.435)); +#51108=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,1.435)); +#51109=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,1.435)); +#51110=CARTESIAN_POINT('',(-7.025,4.17643593539449,1.435)); +#51111=CARTESIAN_POINT('',(-7.025,1.05,1.435)); +#51112=CARTESIAN_POINT('',(-7.025,7.085,1.435)); +#51113=CARTESIAN_POINT('',(-6.955,7.085,1.435)); +#51114=CARTESIAN_POINT('',(-6.955,7.155,1.435)); +#51115=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51116=CARTESIAN_POINT('',(-6.645,7.155,1.435)); +#51117=CARTESIAN_POINT('',(-6.645,7.085,1.435)); +#51118=CARTESIAN_POINT('',(-6.575,7.085,1.435)); +#51119=CARTESIAN_POINT('',(-6.575,1.05,1.435)); +#51120=CARTESIAN_POINT('',(-6.575,4.17643593539449,1.435)); +#51121=CARTESIAN_POINT('',(-6.495,4.17643593539449,1.435)); +#51122=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,1.435)); +#51123=CARTESIAN_POINT('',(-1.6142455606247,-4.43727873287094,1.435)); +#51124=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,1.435)); +#51125=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,1.435)); +#51126=CARTESIAN_POINT('',(-6.51,4.02098076211353,1.435)); +#51127=CARTESIAN_POINT('',(-6.51,1.05,1.435)); +#51128=CARTESIAN_POINT('',(-6.51,1.05,1.435)); +#51129=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51130=CARTESIAN_POINT('',(-6.29,1.05,1.435)); +#51131=CARTESIAN_POINT('',(-6.29,1.05,1.435)); +#51132=CARTESIAN_POINT('',(-6.29,4.02098076211353,1.435)); +#51133=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,1.435)); +#51134=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,1.435)); +#51135=CARTESIAN_POINT('',(-4.04075443937532,7.9382242872087,1.435)); +#51136=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,1.435)); +#51137=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,1.435)); +#51138=CARTESIAN_POINT('',(-6.225,4.17643593539449,1.435)); +#51139=CARTESIAN_POINT('',(-6.225,1.05,1.435)); +#51140=CARTESIAN_POINT('',(-6.225,7.085,1.435)); +#51141=CARTESIAN_POINT('',(-6.155,7.085,1.435)); +#51142=CARTESIAN_POINT('',(-6.155,7.155,1.435)); +#51143=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51144=CARTESIAN_POINT('',(-5.845,7.155,1.435)); +#51145=CARTESIAN_POINT('',(-5.845,7.085,1.435)); +#51146=CARTESIAN_POINT('',(-5.775,7.085,1.435)); +#51147=CARTESIAN_POINT('',(-5.775,1.05,1.435)); +#51148=CARTESIAN_POINT('',(-5.775,4.17643593539449,1.435)); +#51149=CARTESIAN_POINT('',(-5.695,4.17643593539449,1.435)); +#51150=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,1.435)); +#51151=CARTESIAN_POINT('',(-1.01424556062458,-4.0908685713572,1.435)); +#51152=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,1.435)); +#51153=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,1.435)); +#51154=CARTESIAN_POINT('',(-5.71,4.02098076211353,1.435)); +#51155=CARTESIAN_POINT('',(-5.71,1.05,1.435)); +#51156=CARTESIAN_POINT('',(-5.71,1.05,1.435)); +#51157=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51158=CARTESIAN_POINT('',(-5.49,1.05,1.435)); +#51159=CARTESIAN_POINT('',(-5.49,1.05,1.435)); +#51160=CARTESIAN_POINT('',(-5.49,4.02098076211353,1.435)); +#51161=CARTESIAN_POINT('',(-5.41,4.02098076211353,1.435)); +#51162=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,1.435)); +#51163=CARTESIAN_POINT('',(-3.44075443937541,7.59181412569484,1.435)); +#51164=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,1.435)); +#51165=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,1.435)); +#51166=CARTESIAN_POINT('',(-5.425,4.17643593539449,1.435)); +#51167=CARTESIAN_POINT('',(-5.425,1.05,1.435)); +#51168=CARTESIAN_POINT('',(-5.425,7.085,1.435)); +#51169=CARTESIAN_POINT('',(-5.355,7.085,1.435)); +#51170=CARTESIAN_POINT('',(-5.355,7.155,1.435)); +#51171=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51172=CARTESIAN_POINT('',(-5.045,7.155,1.435)); +#51173=CARTESIAN_POINT('',(-5.045,7.085,1.435)); +#51174=CARTESIAN_POINT('',(-4.975,7.085,1.435)); +#51175=CARTESIAN_POINT('',(-4.975,1.05,1.435)); +#51176=CARTESIAN_POINT('',(-4.975,4.17643593539449,1.435)); +#51177=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,1.435)); +#51178=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,1.435)); +#51179=CARTESIAN_POINT('',(-0.414245560624587,-3.74445840984342,1.435)); +#51180=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,1.435)); +#51181=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,1.435)); +#51182=CARTESIAN_POINT('',(-4.91,4.02098076211353,1.435)); +#51183=CARTESIAN_POINT('',(-4.91,1.05,1.435)); +#51184=CARTESIAN_POINT('',(-4.91,1.05,1.435)); +#51185=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51186=CARTESIAN_POINT('',(-4.69,1.05,1.435)); +#51187=CARTESIAN_POINT('',(-4.69,1.05,1.435)); +#51188=CARTESIAN_POINT('',(-4.69,4.02098076211353,1.435)); +#51189=CARTESIAN_POINT('',(-4.61,4.02098076211353,1.435)); +#51190=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,1.435)); +#51191=CARTESIAN_POINT('',(-2.84075443937532,7.24540396418114,1.435)); +#51192=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,1.435)); +#51193=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,1.435)); +#51194=CARTESIAN_POINT('',(-4.625,4.17643593539449,1.435)); +#51195=CARTESIAN_POINT('',(-4.625,1.05,1.435)); +#51196=CARTESIAN_POINT('',(-4.625,7.085,1.435)); +#51197=CARTESIAN_POINT('',(-4.555,7.085,1.435)); +#51198=CARTESIAN_POINT('',(-4.555,7.155,1.435)); +#51199=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51200=CARTESIAN_POINT('',(-4.245,7.155,1.435)); +#51201=CARTESIAN_POINT('',(-4.245,7.085,1.435)); +#51202=CARTESIAN_POINT('',(-4.175,7.085,1.435)); +#51203=CARTESIAN_POINT('',(-4.175,1.05,1.435)); +#51204=CARTESIAN_POINT('',(-4.175,4.17643593539449,1.435)); +#51205=CARTESIAN_POINT('',(-4.095,4.17643593539449,1.435)); +#51206=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,1.435)); +#51207=CARTESIAN_POINT('',(0.18575443937541,-3.39804824832965,1.435)); +#51208=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,1.435)); +#51209=CARTESIAN_POINT('',(-4.19,4.02098076211353,1.435)); +#51210=CARTESIAN_POINT('',(-4.11,4.02098076211353,1.435)); +#51211=CARTESIAN_POINT('',(-4.11,1.05,1.435)); +#51212=CARTESIAN_POINT('',(-4.11,1.05,1.435)); +#51213=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51214=CARTESIAN_POINT('',(-3.89,1.05,1.435)); +#51215=CARTESIAN_POINT('',(-3.89,1.05,1.435)); +#51216=CARTESIAN_POINT('',(-3.89,4.02098076211353,1.435)); +#51217=CARTESIAN_POINT('',(-3.81,4.02098076211353,1.435)); +#51218=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,1.435)); +#51219=CARTESIAN_POINT('',(-2.24075443937536,6.89899380266733,1.435)); +#51220=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,1.435)); +#51221=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,1.435)); +#51222=CARTESIAN_POINT('',(-3.825,4.17643593539449,1.435)); +#51223=CARTESIAN_POINT('',(-3.825,1.05,1.435)); +#51224=CARTESIAN_POINT('',(-3.825,7.085,1.435)); +#51225=CARTESIAN_POINT('',(-3.755,7.085,1.435)); +#51226=CARTESIAN_POINT('',(-3.755,7.155,1.435)); +#51227=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51228=CARTESIAN_POINT('',(-3.445,7.155,1.435)); +#51229=CARTESIAN_POINT('',(-3.445,7.085,1.435)); +#51230=CARTESIAN_POINT('',(-3.375,7.085,1.435)); +#51231=CARTESIAN_POINT('',(-3.375,1.05,1.435)); +#51232=CARTESIAN_POINT('',(-3.375,4.17643593539449,1.435)); +#51233=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,1.435)); +#51234=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,1.435)); +#51235=CARTESIAN_POINT('',(0.785754439375407,-3.05163808681587,1.435)); +#51236=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,1.435)); +#51237=CARTESIAN_POINT('',(-3.39,4.02098076211353,1.435)); +#51238=CARTESIAN_POINT('',(-3.31,4.02098076211353,1.435)); +#51239=CARTESIAN_POINT('',(-3.31,1.05,1.435)); +#51240=CARTESIAN_POINT('',(-3.31,1.05,1.435)); +#51241=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51242=CARTESIAN_POINT('',(-3.09,1.05,1.435)); +#51243=CARTESIAN_POINT('',(-3.09,1.05,1.435)); +#51244=CARTESIAN_POINT('',(-3.09,4.02098076211353,1.435)); +#51245=CARTESIAN_POINT('',(-3.01,4.02098076211353,1.435)); +#51246=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,1.435)); +#51247=CARTESIAN_POINT('',(-1.64075443937536,6.55258364115356,1.435)); +#51248=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,1.435)); +#51249=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,1.435)); +#51250=CARTESIAN_POINT('',(-3.025,4.17643593539449,1.435)); +#51251=CARTESIAN_POINT('',(-3.025,1.05,1.435)); +#51252=CARTESIAN_POINT('',(-3.025,7.085,1.435)); +#51253=CARTESIAN_POINT('',(-2.955,7.085,1.435)); +#51254=CARTESIAN_POINT('',(-2.955,7.155,1.435)); +#51255=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51256=CARTESIAN_POINT('',(-2.645,7.155,1.435)); +#51257=CARTESIAN_POINT('',(-2.645,7.085,1.435)); +#51258=CARTESIAN_POINT('',(-2.575,7.085,1.435)); +#51259=CARTESIAN_POINT('',(-2.575,1.05,1.435)); +#51260=CARTESIAN_POINT('',(-2.575,4.17643593539449,1.435)); +#51261=CARTESIAN_POINT('',(-2.495,4.17643593539449,1.435)); +#51262=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,1.435)); +#51263=CARTESIAN_POINT('',(1.3857544393754,-2.70522792530209,1.435)); +#51264=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,1.435)); +#51265=CARTESIAN_POINT('',(-2.59,4.02098076211353,1.435)); +#51266=CARTESIAN_POINT('',(-2.51,4.02098076211353,1.435)); +#51267=CARTESIAN_POINT('',(-2.51,1.05,1.435)); +#51268=CARTESIAN_POINT('',(-2.51,1.05,1.435)); +#51269=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51270=CARTESIAN_POINT('',(-2.29,1.05,1.435)); +#51271=CARTESIAN_POINT('',(-2.29,1.05,1.435)); +#51272=CARTESIAN_POINT('',(-2.29,4.02098076211353,1.435)); +#51273=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,1.435)); +#51274=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,1.435)); +#51275=CARTESIAN_POINT('',(-1.04075443937533,6.20617347963982,1.435)); +#51276=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,1.435)); +#51277=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,1.435)); +#51278=CARTESIAN_POINT('',(-2.225,4.17643593539449,1.435)); +#51279=CARTESIAN_POINT('',(-2.225,1.05,1.435)); +#51280=CARTESIAN_POINT('',(-2.225,7.085,1.435)); +#51281=CARTESIAN_POINT('',(-2.155,7.085,1.435)); +#51282=CARTESIAN_POINT('',(-2.155,7.155,1.435)); +#51283=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51284=CARTESIAN_POINT('',(-1.845,7.155,1.435)); +#51285=CARTESIAN_POINT('',(-1.845,7.085,1.435)); +#51286=CARTESIAN_POINT('',(-1.775,7.085,1.435)); +#51287=CARTESIAN_POINT('',(-1.775,1.05,1.435)); +#51288=CARTESIAN_POINT('',(-1.775,4.17643593539449,1.435)); +#51289=CARTESIAN_POINT('',(-1.695,4.17643593539449,1.435)); +#51290=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,1.435)); +#51291=CARTESIAN_POINT('',(1.98575443937538,-2.35881776378831,1.435)); +#51292=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,1.435)); +#51293=CARTESIAN_POINT('',(-1.79,4.02098076211353,1.435)); +#51294=CARTESIAN_POINT('',(-1.71,4.02098076211353,1.435)); +#51295=CARTESIAN_POINT('',(-1.71,1.05,1.435)); +#51296=CARTESIAN_POINT('',(-1.71,1.05,1.435)); +#51297=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51298=CARTESIAN_POINT('',(-1.49,1.05,1.435)); +#51299=CARTESIAN_POINT('',(-1.49,1.05,1.435)); +#51300=CARTESIAN_POINT('',(-1.49,4.02098076211353,1.435)); +#51301=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,1.435)); +#51302=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,1.435)); +#51303=CARTESIAN_POINT('',(-0.440754439375341,5.85976331812602,1.435)); +#51304=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,1.435)); +#51305=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,1.435)); +#51306=CARTESIAN_POINT('',(-1.425,4.17643593539449,1.435)); +#51307=CARTESIAN_POINT('',(-1.425,1.05,1.435)); +#51308=CARTESIAN_POINT('',(-1.425,7.085,1.435)); +#51309=CARTESIAN_POINT('',(-1.355,7.085,1.435)); +#51310=CARTESIAN_POINT('',(-1.355,7.155,1.435)); +#51311=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51312=CARTESIAN_POINT('',(-1.045,7.155,1.435)); +#51313=CARTESIAN_POINT('',(-1.045,7.085,1.435)); +#51314=CARTESIAN_POINT('',(-0.975000000000001,7.085,1.435)); +#51315=CARTESIAN_POINT('',(-0.975000000000002,1.05,1.435)); +#51316=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,1.435)); +#51317=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,1.435)); +#51318=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,1.435)); +#51319=CARTESIAN_POINT('',(2.58575443937537,-2.01240760227453,1.435)); +#51320=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,1.435)); +#51321=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,1.435)); +#51322=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,1.435)); +#51323=CARTESIAN_POINT('',(-0.910000000000001,1.05,1.435)); +#51324=CARTESIAN_POINT('',(-0.910000000000001,1.05,1.435)); +#51325=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51326=CARTESIAN_POINT('',(-0.690000000000001,1.05,1.435)); +#51327=CARTESIAN_POINT('',(-0.690000000000001,1.05,1.435)); +#51328=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,1.435)); +#51329=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,1.435)); +#51330=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,1.435)); +#51331=CARTESIAN_POINT('',(0.159245560624664,5.51335315661226,1.435)); +#51332=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,1.435)); +#51333=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,1.435)); +#51334=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,1.435)); +#51335=CARTESIAN_POINT('',(-0.625000000000001,1.05,1.435)); +#51336=CARTESIAN_POINT('',(-0.625000000000001,7.085,1.435)); +#51337=CARTESIAN_POINT('',(-0.555,7.085,1.435)); +#51338=CARTESIAN_POINT('',(-0.555000000000001,7.155,1.435)); +#51339=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51340=CARTESIAN_POINT('',(-0.245000000000001,7.155,1.435)); +#51341=CARTESIAN_POINT('',(-0.245000000000001,7.085,1.435)); +#51342=CARTESIAN_POINT('',(-0.175000000000001,7.085,1.435)); +#51343=CARTESIAN_POINT('',(-0.175000000000002,1.05,1.435)); +#51344=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,1.435)); +#51345=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,1.435)); +#51346=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,1.435)); +#51347=CARTESIAN_POINT('',(3.18575443937536,-1.66599744076075,1.435)); +#51348=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,1.435)); +#51349=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,1.435)); +#51350=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,1.435)); +#51351=CARTESIAN_POINT('',(-0.110000000000001,1.05,1.435)); +#51352=CARTESIAN_POINT('',(-0.110000000000001,1.05,1.435)); +#51353=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51354=CARTESIAN_POINT('',(0.109999999999999,1.05,1.435)); +#51355=CARTESIAN_POINT('',(0.109999999999999,1.05,1.435)); +#51356=CARTESIAN_POINT('',(0.11,4.02098076211353,1.435)); +#51357=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,1.435)); +#51358=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,1.435)); +#51359=CARTESIAN_POINT('',(0.759245560624665,5.16694299509848,1.435)); +#51360=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,1.435)); +#51361=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,1.435)); +#51362=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,1.435)); +#51363=CARTESIAN_POINT('',(0.174999999999999,1.05,1.435)); +#51364=CARTESIAN_POINT('',(0.174999999999999,7.085,1.435)); +#51365=CARTESIAN_POINT('',(0.245,7.085,1.435)); +#51366=CARTESIAN_POINT('',(0.244999999999999,7.155,1.435)); +#51367=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51368=CARTESIAN_POINT('',(0.554999999999999,7.155,1.435)); +#51369=CARTESIAN_POINT('',(0.554999999999999,7.085,1.435)); +#51370=CARTESIAN_POINT('',(0.624999999999999,7.085,1.435)); +#51371=CARTESIAN_POINT('',(0.624999999999999,1.05,1.435)); +#51372=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,1.435)); +#51373=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,1.435)); +#51374=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,1.435)); +#51375=CARTESIAN_POINT('',(3.78575443937537,-1.31958727924698,1.435)); +#51376=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,1.435)); +#51377=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,1.435)); +#51378=CARTESIAN_POINT('',(0.69,4.02098076211353,1.435)); +#51379=CARTESIAN_POINT('',(0.69,1.05,1.435)); +#51380=CARTESIAN_POINT('',(0.69,1.05,1.435)); +#51381=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51382=CARTESIAN_POINT('',(0.909999999999999,1.05,1.435)); +#51383=CARTESIAN_POINT('',(0.909999999999999,1.05,1.435)); +#51384=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,1.435)); +#51385=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,1.435)); +#51386=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,1.435)); +#51387=CARTESIAN_POINT('',(1.35924556062466,4.8205328335847,1.435)); +#51388=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,1.435)); +#51389=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,1.435)); +#51390=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,1.435)); +#51391=CARTESIAN_POINT('',(0.974999999999998,1.05,1.435)); +#51392=CARTESIAN_POINT('',(0.974999999999998,7.085,1.435)); +#51393=CARTESIAN_POINT('',(1.045,7.085,1.435)); +#51394=CARTESIAN_POINT('',(1.045,7.155,1.435)); +#51395=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51396=CARTESIAN_POINT('',(1.355,7.155,1.435)); +#51397=CARTESIAN_POINT('',(1.355,7.085,1.435)); +#51398=CARTESIAN_POINT('',(1.425,7.085,1.435)); +#51399=CARTESIAN_POINT('',(1.425,1.05,1.435)); +#51400=CARTESIAN_POINT('',(1.425,4.17643593539449,1.435)); +#51401=CARTESIAN_POINT('',(1.505,4.17643593539449,1.435)); +#51402=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,1.435)); +#51403=CARTESIAN_POINT('',(4.38575443937537,-0.9731771177332,1.435)); +#51404=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,1.435)); +#51405=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,1.435)); +#51406=CARTESIAN_POINT('',(1.49,4.02098076211353,1.435)); +#51407=CARTESIAN_POINT('',(1.49,1.05,1.435)); +#51408=CARTESIAN_POINT('',(1.49,1.05,1.435)); +#51409=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51410=CARTESIAN_POINT('',(1.71,1.05,1.435)); +#51411=CARTESIAN_POINT('',(1.71,1.05,1.435)); +#51412=CARTESIAN_POINT('',(1.71,4.02098076211353,1.435)); +#51413=CARTESIAN_POINT('',(1.79,4.02098076211353,1.435)); +#51414=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,1.435)); +#51415=CARTESIAN_POINT('',(1.95924556062466,4.47412267207092,1.435)); +#51416=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,1.435)); +#51417=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,1.435)); +#51418=CARTESIAN_POINT('',(1.775,4.17643593539449,1.435)); +#51419=CARTESIAN_POINT('',(1.775,1.05,1.435)); +#51420=CARTESIAN_POINT('',(1.775,7.085,1.435)); +#51421=CARTESIAN_POINT('',(1.845,7.085,1.435)); +#51422=CARTESIAN_POINT('',(1.845,7.155,1.435)); +#51423=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51424=CARTESIAN_POINT('',(2.155,7.155,1.435)); +#51425=CARTESIAN_POINT('',(2.155,7.085,1.435)); +#51426=CARTESIAN_POINT('',(2.225,7.085,1.435)); +#51427=CARTESIAN_POINT('',(2.225,1.05,1.435)); +#51428=CARTESIAN_POINT('',(2.225,4.17643593539449,1.435)); +#51429=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,1.435)); +#51430=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,1.435)); +#51431=CARTESIAN_POINT('',(4.98575443937538,-0.626766956219423,1.435)); +#51432=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,1.435)); +#51433=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,1.435)); +#51434=CARTESIAN_POINT('',(2.29,4.02098076211353,1.435)); +#51435=CARTESIAN_POINT('',(2.29,1.05,1.435)); +#51436=CARTESIAN_POINT('',(2.29,1.05,1.435)); +#51437=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51438=CARTESIAN_POINT('',(2.51,1.05,1.435)); +#51439=CARTESIAN_POINT('',(2.51,1.05,1.435)); +#51440=CARTESIAN_POINT('',(2.51,4.02098076211353,1.435)); +#51441=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,1.435)); +#51442=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,1.435)); +#51443=CARTESIAN_POINT('',(2.55924556062466,4.12771251055716,1.435)); +#51444=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,1.435)); +#51445=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,1.435)); +#51446=CARTESIAN_POINT('',(2.575,4.17643593539449,1.435)); +#51447=CARTESIAN_POINT('',(2.575,1.05,1.435)); +#51448=CARTESIAN_POINT('',(2.575,7.085,1.435)); +#51449=CARTESIAN_POINT('',(2.645,7.085,1.435)); +#51450=CARTESIAN_POINT('',(2.645,7.155,1.435)); +#51451=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51452=CARTESIAN_POINT('',(2.955,7.155,1.435)); +#51453=CARTESIAN_POINT('',(2.955,7.085,1.435)); +#51454=CARTESIAN_POINT('',(3.025,7.085,1.435)); +#51455=CARTESIAN_POINT('',(3.025,1.05,1.435)); +#51456=CARTESIAN_POINT('',(3.025,4.17643593539449,1.435)); +#51457=CARTESIAN_POINT('',(3.105,4.17643593539449,1.435)); +#51458=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,1.435)); +#51459=CARTESIAN_POINT('',(5.58575443937535,-0.280356794705646,1.435)); +#51460=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,1.435)); +#51461=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,1.435)); +#51462=CARTESIAN_POINT('',(3.09,4.02098076211353,1.435)); +#51463=CARTESIAN_POINT('',(3.09,1.05,1.435)); +#51464=CARTESIAN_POINT('',(3.09,1.05,1.435)); +#51465=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51466=CARTESIAN_POINT('',(3.31,1.05,1.435)); +#51467=CARTESIAN_POINT('',(3.31,1.05,1.435)); +#51468=CARTESIAN_POINT('',(3.31,4.02098076211353,1.435)); +#51469=CARTESIAN_POINT('',(3.39,4.02098076211353,1.435)); +#51470=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,1.435)); +#51471=CARTESIAN_POINT('',(3.15924556062465,3.78130234904336,1.435)); +#51472=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,1.435)); +#51473=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,1.435)); +#51474=CARTESIAN_POINT('',(3.375,4.17643593539449,1.435)); +#51475=CARTESIAN_POINT('',(3.375,1.05,1.435)); +#51476=CARTESIAN_POINT('',(3.375,7.085,1.435)); +#51477=CARTESIAN_POINT('',(3.445,7.085,1.435)); +#51478=CARTESIAN_POINT('',(3.445,7.155,1.435)); +#51479=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51480=CARTESIAN_POINT('',(3.755,7.155,1.435)); +#51481=CARTESIAN_POINT('',(3.755,7.085,1.435)); +#51482=CARTESIAN_POINT('',(3.825,7.085,1.435)); +#51483=CARTESIAN_POINT('',(3.825,1.05,1.435)); +#51484=CARTESIAN_POINT('',(3.825,4.17643593539449,1.435)); +#51485=CARTESIAN_POINT('',(3.905,4.17643593539449,1.435)); +#51486=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,1.435)); +#51487=CARTESIAN_POINT('',(6.18575443937535,0.06605336680813,1.435)); +#51488=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,1.435)); +#51489=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,1.435)); +#51490=CARTESIAN_POINT('',(3.89,4.02098076211353,1.435)); +#51491=CARTESIAN_POINT('',(3.89,1.05,1.435)); +#51492=CARTESIAN_POINT('',(3.89,1.05,1.435)); +#51493=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51494=CARTESIAN_POINT('',(4.11,1.05,1.435)); +#51495=CARTESIAN_POINT('',(4.11,1.05,1.435)); +#51496=CARTESIAN_POINT('',(4.11,4.02098076211353,1.435)); +#51497=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,1.435)); +#51498=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,1.435)); +#51499=CARTESIAN_POINT('',(3.75924556062466,3.43489218752961,1.435)); +#51500=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,1.435)); +#51501=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,1.435)); +#51502=CARTESIAN_POINT('',(4.175,4.17643593539449,1.435)); +#51503=CARTESIAN_POINT('',(4.175,1.05,1.435)); +#51504=CARTESIAN_POINT('',(4.175,7.085,1.435)); +#51505=CARTESIAN_POINT('',(4.245,7.085,1.435)); +#51506=CARTESIAN_POINT('',(4.245,7.155,1.435)); +#51507=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51508=CARTESIAN_POINT('',(4.555,7.155,1.435)); +#51509=CARTESIAN_POINT('',(4.555,7.085,1.435)); +#51510=CARTESIAN_POINT('',(4.625,7.085,1.435)); +#51511=CARTESIAN_POINT('',(4.625,1.05,1.435)); +#51512=CARTESIAN_POINT('',(4.625,4.17643593539449,1.435)); +#51513=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,1.435)); +#51514=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,1.435)); +#51515=CARTESIAN_POINT('',(6.78575443937537,0.41246352832191,1.435)); +#51516=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,1.435)); +#51517=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,1.435)); +#51518=CARTESIAN_POINT('',(4.69,4.02098076211353,1.435)); +#51519=CARTESIAN_POINT('',(4.69,1.05,1.435)); +#51520=CARTESIAN_POINT('',(4.69,1.05,1.435)); +#51521=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51522=CARTESIAN_POINT('',(4.91,1.05,1.435)); +#51523=CARTESIAN_POINT('',(4.91,1.05,1.435)); +#51524=CARTESIAN_POINT('',(4.91,4.02098076211353,1.435)); +#51525=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,1.435)); +#51526=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,1.435)); +#51527=CARTESIAN_POINT('',(4.35924556062466,3.08848202601583,1.435)); +#51528=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,1.435)); +#51529=CARTESIAN_POINT('',(4.895,4.17643593539449,1.435)); +#51530=CARTESIAN_POINT('',(4.975,4.17643593539449,1.435)); +#51531=CARTESIAN_POINT('',(4.975,1.05,1.435)); +#51532=CARTESIAN_POINT('',(4.975,7.085,1.435)); +#51533=CARTESIAN_POINT('',(5.045,7.085,1.435)); +#51534=CARTESIAN_POINT('',(5.045,7.155,1.435)); +#51535=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51536=CARTESIAN_POINT('',(5.355,7.155,1.435)); +#51537=CARTESIAN_POINT('',(5.355,7.085,1.435)); +#51538=CARTESIAN_POINT('',(5.425,7.085,1.435)); +#51539=CARTESIAN_POINT('',(5.425,1.05,1.435)); +#51540=CARTESIAN_POINT('',(5.425,4.17643593539449,1.435)); +#51541=CARTESIAN_POINT('',(5.505,4.17643593539449,1.435)); +#51542=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,1.435)); +#51543=CARTESIAN_POINT('',(7.38575443937533,0.758873689835675,1.435)); +#51544=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,1.435)); +#51545=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,1.435)); +#51546=CARTESIAN_POINT('',(5.49,4.02098076211353,1.435)); +#51547=CARTESIAN_POINT('',(5.49,1.05,1.435)); +#51548=CARTESIAN_POINT('',(5.49,1.05,1.435)); +#51549=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51550=CARTESIAN_POINT('',(5.71,1.05,1.435)); +#51551=CARTESIAN_POINT('',(5.71,1.05,1.435)); +#51552=CARTESIAN_POINT('',(5.71,4.02098076211353,1.435)); +#51553=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,1.435)); +#51554=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,1.435)); +#51555=CARTESIAN_POINT('',(4.95924556062466,2.74207186450205,1.435)); +#51556=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,1.435)); +#51557=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,1.435)); +#51558=CARTESIAN_POINT('',(5.775,4.17643593539449,1.435)); +#51559=CARTESIAN_POINT('',(5.775,1.05,1.435)); +#51560=CARTESIAN_POINT('',(5.775,7.085,1.435)); +#51561=CARTESIAN_POINT('',(5.845,7.085,1.435)); +#51562=CARTESIAN_POINT('',(5.845,7.155,1.435)); +#51563=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51564=CARTESIAN_POINT('',(6.155,7.155,1.435)); +#51565=CARTESIAN_POINT('',(6.155,7.085,1.435)); +#51566=CARTESIAN_POINT('',(6.225,7.085,1.435)); +#51567=CARTESIAN_POINT('',(6.225,1.05,1.435)); +#51568=CARTESIAN_POINT('',(6.225,4.17643593539449,1.435)); +#51569=CARTESIAN_POINT('',(6.305,4.17643593539449,1.435)); +#51570=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,1.435)); +#51571=CARTESIAN_POINT('',(7.98575443937536,1.10528385134947,1.435)); +#51572=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,1.435)); +#51573=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,1.435)); +#51574=CARTESIAN_POINT('',(6.29,4.02098076211353,1.435)); +#51575=CARTESIAN_POINT('',(6.29,1.05,1.435)); +#51576=CARTESIAN_POINT('',(6.29,1.05,1.435)); +#51577=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51578=CARTESIAN_POINT('',(6.51,1.05,1.435)); +#51579=CARTESIAN_POINT('',(6.51,1.05,1.435)); +#51580=CARTESIAN_POINT('',(6.51,4.02098076211353,1.435)); +#51581=CARTESIAN_POINT('',(6.59,4.02098076211353,1.435)); +#51582=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,1.435)); +#51583=CARTESIAN_POINT('',(5.55924556062466,2.39566170298825,1.435)); +#51584=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,1.435)); +#51585=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,1.435)); +#51586=CARTESIAN_POINT('',(6.575,4.17643593539449,1.435)); +#51587=CARTESIAN_POINT('',(6.575,1.05,1.435)); +#51588=CARTESIAN_POINT('',(6.575,7.085,1.435)); +#51589=CARTESIAN_POINT('',(6.645,7.085,1.435)); +#51590=CARTESIAN_POINT('',(6.645,7.155,1.435)); +#51591=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51592=CARTESIAN_POINT('',(6.955,7.155,1.435)); +#51593=CARTESIAN_POINT('',(6.955,7.085,1.435)); +#51594=CARTESIAN_POINT('',(7.025,7.085,1.435)); +#51595=CARTESIAN_POINT('',(7.025,1.05,1.435)); +#51596=CARTESIAN_POINT('',(7.025,4.17643593539449,1.435)); +#51597=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,1.435)); +#51598=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,1.435)); +#51599=CARTESIAN_POINT('',(8.58575443937535,1.45169401286324,1.435)); +#51600=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,1.435)); +#51601=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,1.435)); +#51602=CARTESIAN_POINT('',(7.09,4.02098076211353,1.435)); +#51603=CARTESIAN_POINT('',(7.09,1.05,1.435)); +#51604=CARTESIAN_POINT('',(7.09,1.05,1.435)); +#51605=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51606=CARTESIAN_POINT('',(7.31,1.05,1.435)); +#51607=CARTESIAN_POINT('',(7.31,1.05,1.435)); +#51608=CARTESIAN_POINT('',(7.31,4.02098076211353,1.435)); +#51609=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,1.435)); +#51610=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,1.435)); +#51611=CARTESIAN_POINT('',(6.15924556062466,2.0492515414745,1.435)); +#51612=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,1.435)); +#51613=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,1.435)); +#51614=CARTESIAN_POINT('',(7.375,4.17643593539449,1.435)); +#51615=CARTESIAN_POINT('',(7.375,1.05,1.435)); +#51616=CARTESIAN_POINT('',(7.375,7.085,1.435)); +#51617=CARTESIAN_POINT('',(7.445,7.085,1.435)); +#51618=CARTESIAN_POINT('',(7.445,7.155,1.435)); +#51619=CARTESIAN_POINT('',(7.89,7.155,1.435)); +#51620=CARTESIAN_POINT('',(7.755,7.155,1.435)); +#51621=CARTESIAN_POINT('',(7.755,7.085,1.435)); +#51622=CARTESIAN_POINT('',(7.825,7.085,1.435)); +#51623=CARTESIAN_POINT('',(7.825,1.05,1.435)); +#51624=CARTESIAN_POINT('',(7.825,4.17643593539449,1.435)); +#51625=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,1.435)); +#51626=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,1.435)); +#51627=CARTESIAN_POINT('',(9.18575443937535,1.79810417437702,1.435)); +#51628=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,1.435)); +#51629=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,1.435)); +#51630=CARTESIAN_POINT('',(7.89,4.02098076211353,1.435)); +#51631=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51632=CARTESIAN_POINT('',(7.89,1.05,1.435)); +#51633=CARTESIAN_POINT('',(-7.95,1.05,1.435)); +#51634=CARTESIAN_POINT('',(7.95,1.05,1.435)); +#51635=CARTESIAN_POINT('',(7.95,1.05,1.435)); +#51636=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51637=CARTESIAN_POINT('',(7.89,1.,1.6)); +#51638=CARTESIAN_POINT('',(8.,1.,1.6)); +#51639=CARTESIAN_POINT('',(-8.,1.,1.6)); +#51640=CARTESIAN_POINT('',(8.,1.05,1.6)); +#51641=CARTESIAN_POINT('',(8.,1.05,1.6)); +#51642=CARTESIAN_POINT('',(-8.,1.05,1.6)); +#51643=CARTESIAN_POINT('',(7.89,1.05,1.6)); +#51644=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51645=CARTESIAN_POINT('',(7.89,4.02098076211353,1.6)); +#51646=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,1.6)); +#51647=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,1.6)); +#51648=CARTESIAN_POINT('',(6.54221189432333,6.37685417437699,1.6)); +#51649=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,1.6)); +#51650=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,1.6)); +#51651=CARTESIAN_POINT('',(7.825,4.17643593539449,1.6)); +#51652=CARTESIAN_POINT('',(7.825,7.155,1.6)); +#51653=CARTESIAN_POINT('',(7.825,7.085,1.6)); +#51654=CARTESIAN_POINT('',(7.755,7.085,1.6)); +#51655=CARTESIAN_POINT('',(7.755,7.155,1.6)); +#51656=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51657=CARTESIAN_POINT('',(7.445,7.155,1.6)); +#51658=CARTESIAN_POINT('',(7.445,7.085,1.6)); +#51659=CARTESIAN_POINT('',(7.375,7.085,1.6)); +#51660=CARTESIAN_POINT('',(7.375,7.155,1.6)); +#51661=CARTESIAN_POINT('',(7.375,4.17643593539449,1.6)); +#51662=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,1.6)); +#51663=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,1.6)); +#51664=CARTESIAN_POINT('',(8.80278810567666,6.62800154147449,1.6)); +#51665=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,1.6)); +#51666=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,1.6)); +#51667=CARTESIAN_POINT('',(7.31,4.02098076211353,1.6)); +#51668=CARTESIAN_POINT('',(7.31,7.155,1.6)); +#51669=CARTESIAN_POINT('',(7.31,1.05,1.6)); +#51670=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); +#51671=CARTESIAN_POINT('',(7.09,1.05,1.6)); +#51672=CARTESIAN_POINT('',(7.09,7.155,1.6)); +#51673=CARTESIAN_POINT('',(7.09,4.02098076211353,1.6)); +#51674=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,1.6)); +#51675=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,1.6)); +#51676=CARTESIAN_POINT('',(5.94221189432333,6.03044401286321,1.6)); +#51677=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,1.6)); +#51678=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,1.6)); +#51679=CARTESIAN_POINT('',(7.025,4.17643593539449,1.6)); +#51680=CARTESIAN_POINT('',(7.025,7.155,1.6)); +#51681=CARTESIAN_POINT('',(7.025,7.085,1.6)); +#51682=CARTESIAN_POINT('',(6.955,7.085,1.6)); +#51683=CARTESIAN_POINT('',(6.955,7.155,1.6)); +#51684=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51685=CARTESIAN_POINT('',(6.645,7.155,1.6)); +#51686=CARTESIAN_POINT('',(6.645,7.085,1.6)); +#51687=CARTESIAN_POINT('',(6.575,7.085,1.6)); +#51688=CARTESIAN_POINT('',(6.575,7.155,1.6)); +#51689=CARTESIAN_POINT('',(6.575,4.17643593539449,1.6)); +#51690=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,1.6)); +#51691=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,1.6)); +#51692=CARTESIAN_POINT('',(8.20278810567664,6.97441170298828,1.6)); +#51693=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,1.6)); +#51694=CARTESIAN_POINT('',(6.59,4.02098076211353,1.6)); +#51695=CARTESIAN_POINT('',(6.51,4.02098076211353,1.6)); +#51696=CARTESIAN_POINT('',(6.51,7.155,1.6)); +#51697=CARTESIAN_POINT('',(6.51,1.05,1.6)); +#51698=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); +#51699=CARTESIAN_POINT('',(6.29,1.05,1.6)); +#51700=CARTESIAN_POINT('',(6.29,7.155,1.6)); +#51701=CARTESIAN_POINT('',(6.29,4.02098076211353,1.6)); +#51702=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,1.6)); +#51703=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,1.6)); +#51704=CARTESIAN_POINT('',(5.34221189432334,5.68403385134943,1.6)); +#51705=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,1.6)); +#51706=CARTESIAN_POINT('',(6.305,4.17643593539449,1.6)); +#51707=CARTESIAN_POINT('',(6.225,4.17643593539449,1.6)); +#51708=CARTESIAN_POINT('',(6.225,7.155,1.6)); +#51709=CARTESIAN_POINT('',(6.225,7.085,1.6)); +#51710=CARTESIAN_POINT('',(6.155,7.085,1.6)); +#51711=CARTESIAN_POINT('',(6.155,7.155,1.6)); +#51712=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51713=CARTESIAN_POINT('',(5.845,7.155,1.6)); +#51714=CARTESIAN_POINT('',(5.845,7.085,1.6)); +#51715=CARTESIAN_POINT('',(5.775,7.085,1.6)); +#51716=CARTESIAN_POINT('',(5.775,7.155,1.6)); +#51717=CARTESIAN_POINT('',(5.775,4.17643593539449,1.6)); +#51718=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,1.6)); +#51719=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,1.6)); +#51720=CARTESIAN_POINT('',(7.60278810567666,7.32082186450204,1.6)); +#51721=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,1.6)); +#51722=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,1.6)); +#51723=CARTESIAN_POINT('',(5.71,4.02098076211353,1.6)); +#51724=CARTESIAN_POINT('',(5.71,7.155,1.6)); +#51725=CARTESIAN_POINT('',(5.71,1.05,1.6)); +#51726=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); +#51727=CARTESIAN_POINT('',(5.49,1.05,1.6)); +#51728=CARTESIAN_POINT('',(5.49,7.155,1.6)); +#51729=CARTESIAN_POINT('',(5.49,4.02098076211353,1.6)); +#51730=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,1.6)); +#51731=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,1.6)); +#51732=CARTESIAN_POINT('',(4.74221189432334,5.33762368983569,1.6)); +#51733=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,1.6)); +#51734=CARTESIAN_POINT('',(5.505,4.17643593539449,1.6)); +#51735=CARTESIAN_POINT('',(5.425,4.17643593539449,1.6)); +#51736=CARTESIAN_POINT('',(5.425,7.155,1.6)); +#51737=CARTESIAN_POINT('',(5.425,7.085,1.6)); +#51738=CARTESIAN_POINT('',(5.355,7.085,1.6)); +#51739=CARTESIAN_POINT('',(5.355,7.155,1.6)); +#51740=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51741=CARTESIAN_POINT('',(5.045,7.155,1.6)); +#51742=CARTESIAN_POINT('',(5.045,7.085,1.6)); +#51743=CARTESIAN_POINT('',(4.975,7.085,1.6)); +#51744=CARTESIAN_POINT('',(4.975,7.155,1.6)); +#51745=CARTESIAN_POINT('',(4.975,4.17643593539449,1.6)); +#51746=CARTESIAN_POINT('',(4.895,4.17643593539449,1.6)); +#51747=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,1.6)); +#51748=CARTESIAN_POINT('',(7.00278810567667,7.66723202601582,1.6)); +#51749=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,1.6)); +#51750=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,1.6)); +#51751=CARTESIAN_POINT('',(4.91,4.02098076211353,1.6)); +#51752=CARTESIAN_POINT('',(4.91,7.155,1.6)); +#51753=CARTESIAN_POINT('',(4.91,1.05,1.6)); +#51754=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); +#51755=CARTESIAN_POINT('',(4.69,1.05,1.6)); +#51756=CARTESIAN_POINT('',(4.69,7.155,1.6)); +#51757=CARTESIAN_POINT('',(4.69,4.02098076211353,1.6)); +#51758=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,1.6)); +#51759=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,1.6)); +#51760=CARTESIAN_POINT('',(4.14221189432335,4.99121352832188,1.6)); +#51761=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,1.6)); +#51762=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,1.6)); +#51763=CARTESIAN_POINT('',(4.625,4.17643593539449,1.6)); +#51764=CARTESIAN_POINT('',(4.625,7.155,1.6)); +#51765=CARTESIAN_POINT('',(4.625,7.085,1.6)); +#51766=CARTESIAN_POINT('',(4.555,7.085,1.6)); +#51767=CARTESIAN_POINT('',(4.555,7.155,1.6)); +#51768=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51769=CARTESIAN_POINT('',(4.245,7.155,1.6)); +#51770=CARTESIAN_POINT('',(4.245,7.085,1.6)); +#51771=CARTESIAN_POINT('',(4.175,7.085,1.6)); +#51772=CARTESIAN_POINT('',(4.175,7.155,1.6)); +#51773=CARTESIAN_POINT('',(4.175,4.17643593539449,1.6)); +#51774=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,1.6)); +#51775=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,1.6)); +#51776=CARTESIAN_POINT('',(6.40278810567667,8.01364218752959,1.6)); +#51777=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,1.6)); +#51778=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,1.6)); +#51779=CARTESIAN_POINT('',(4.11,4.02098076211353,1.6)); +#51780=CARTESIAN_POINT('',(4.11,7.155,1.6)); +#51781=CARTESIAN_POINT('',(4.11,1.05,1.6)); +#51782=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); +#51783=CARTESIAN_POINT('',(3.89,1.05,1.6)); +#51784=CARTESIAN_POINT('',(3.89,7.155,1.6)); +#51785=CARTESIAN_POINT('',(3.89,4.02098076211353,1.6)); +#51786=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,1.6)); +#51787=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,1.6)); +#51788=CARTESIAN_POINT('',(3.54221189432334,4.64480336680812,1.6)); +#51789=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,1.6)); +#51790=CARTESIAN_POINT('',(3.905,4.17643593539449,1.6)); +#51791=CARTESIAN_POINT('',(3.825,4.17643593539449,1.6)); +#51792=CARTESIAN_POINT('',(3.825,7.155,1.6)); +#51793=CARTESIAN_POINT('',(3.825,7.085,1.6)); +#51794=CARTESIAN_POINT('',(3.755,7.085,1.6)); +#51795=CARTESIAN_POINT('',(3.755,7.155,1.6)); +#51796=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51797=CARTESIAN_POINT('',(3.445,7.155,1.6)); +#51798=CARTESIAN_POINT('',(3.445,7.085,1.6)); +#51799=CARTESIAN_POINT('',(3.375,7.085,1.6)); +#51800=CARTESIAN_POINT('',(3.375,7.155,1.6)); +#51801=CARTESIAN_POINT('',(3.375,4.17643593539449,1.6)); +#51802=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,1.6)); +#51803=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,1.6)); +#51804=CARTESIAN_POINT('',(5.80278810567665,8.36005234904337,1.6)); +#51805=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,1.6)); +#51806=CARTESIAN_POINT('',(3.39,4.02098076211353,1.6)); +#51807=CARTESIAN_POINT('',(3.31,4.02098076211353,1.6)); +#51808=CARTESIAN_POINT('',(3.31,7.155,1.6)); +#51809=CARTESIAN_POINT('',(3.31,1.05,1.6)); +#51810=CARTESIAN_POINT('',(7.88999999999999,1.05,1.6)); +#51811=CARTESIAN_POINT('',(3.09,1.05,1.6)); +#51812=CARTESIAN_POINT('',(3.09,7.155,1.6)); +#51813=CARTESIAN_POINT('',(3.09,4.02098076211353,1.6)); +#51814=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,1.6)); +#51815=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,1.6)); +#51816=CARTESIAN_POINT('',(2.94221189432335,4.29839320529434,1.6)); +#51817=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,1.6)); +#51818=CARTESIAN_POINT('',(3.105,4.17643593539449,1.6)); +#51819=CARTESIAN_POINT('',(3.025,4.17643593539449,1.6)); +#51820=CARTESIAN_POINT('',(3.025,7.155,1.6)); +#51821=CARTESIAN_POINT('',(3.025,7.085,1.6)); +#51822=CARTESIAN_POINT('',(2.955,7.085,1.6)); +#51823=CARTESIAN_POINT('',(2.955,7.155,1.6)); +#51824=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51825=CARTESIAN_POINT('',(2.645,7.155,1.6)); +#51826=CARTESIAN_POINT('',(2.645,7.085,1.6)); +#51827=CARTESIAN_POINT('',(2.575,7.085,1.6)); +#51828=CARTESIAN_POINT('',(2.575,7.155,1.6)); +#51829=CARTESIAN_POINT('',(2.575,4.17643593539449,1.6)); +#51830=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,1.6)); +#51831=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,1.6)); +#51832=CARTESIAN_POINT('',(5.20278810567667,8.70646251055715,1.6)); +#51833=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,1.6)); +#51834=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,1.6)); +#51835=CARTESIAN_POINT('',(2.51,4.02098076211353,1.6)); +#51836=CARTESIAN_POINT('',(2.51,7.155,1.6)); +#51837=CARTESIAN_POINT('',(2.51,1.05,1.6)); +#51838=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#51839=CARTESIAN_POINT('',(2.29,1.05,1.6)); +#51840=CARTESIAN_POINT('',(2.29,7.155,1.6)); +#51841=CARTESIAN_POINT('',(2.29,4.02098076211353,1.6)); +#51842=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,1.6)); +#51843=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,1.6)); +#51844=CARTESIAN_POINT('',(2.34221189432336,3.95198304378055,1.6)); +#51845=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,1.6)); +#51846=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,1.6)); +#51847=CARTESIAN_POINT('',(2.225,4.17643593539449,1.6)); +#51848=CARTESIAN_POINT('',(2.225,7.155,1.6)); +#51849=CARTESIAN_POINT('',(2.225,7.085,1.6)); +#51850=CARTESIAN_POINT('',(2.155,7.085,1.6)); +#51851=CARTESIAN_POINT('',(2.155,7.155,1.6)); +#51852=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51853=CARTESIAN_POINT('',(1.845,7.155,1.6)); +#51854=CARTESIAN_POINT('',(1.845,7.085,1.6)); +#51855=CARTESIAN_POINT('',(1.775,7.085,1.6)); +#51856=CARTESIAN_POINT('',(1.775,7.155,1.6)); +#51857=CARTESIAN_POINT('',(1.775,4.17643593539449,1.6)); +#51858=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,1.6)); +#51859=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,1.6)); +#51860=CARTESIAN_POINT('',(4.60278810567666,9.05287267207092,1.6)); +#51861=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,1.6)); +#51862=CARTESIAN_POINT('',(1.79,4.02098076211353,1.6)); +#51863=CARTESIAN_POINT('',(1.71,4.02098076211353,1.6)); +#51864=CARTESIAN_POINT('',(1.71,7.155,1.6)); +#51865=CARTESIAN_POINT('',(1.71,1.05,1.6)); +#51866=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#51867=CARTESIAN_POINT('',(1.49,1.05,1.6)); +#51868=CARTESIAN_POINT('',(1.49,7.155,1.6)); +#51869=CARTESIAN_POINT('',(1.49,4.02098076211353,1.6)); +#51870=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,1.6)); +#51871=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,1.6)); +#51872=CARTESIAN_POINT('',(1.74221189432336,3.60557288226678,1.6)); +#51873=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,1.6)); +#51874=CARTESIAN_POINT('',(1.505,4.17643593539449,1.6)); +#51875=CARTESIAN_POINT('',(1.425,4.17643593539449,1.6)); +#51876=CARTESIAN_POINT('',(1.425,7.155,1.6)); +#51877=CARTESIAN_POINT('',(1.425,7.085,1.6)); +#51878=CARTESIAN_POINT('',(1.355,7.085,1.6)); +#51879=CARTESIAN_POINT('',(1.355,7.155,1.6)); +#51880=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51881=CARTESIAN_POINT('',(1.045,7.155,1.6)); +#51882=CARTESIAN_POINT('',(1.045,7.085,1.6)); +#51883=CARTESIAN_POINT('',(0.974999999999998,7.085,1.6)); +#51884=CARTESIAN_POINT('',(0.974999999999998,7.155,1.6)); +#51885=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,1.6)); +#51886=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,1.6)); +#51887=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,1.6)); +#51888=CARTESIAN_POINT('',(4.00278810567667,9.3992828335847,1.6)); +#51889=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,1.6)); +#51890=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,1.6)); +#51891=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,1.6)); +#51892=CARTESIAN_POINT('',(0.909999999999999,7.155,1.6)); +#51893=CARTESIAN_POINT('',(0.909999999999999,1.05,1.6)); +#51894=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#51895=CARTESIAN_POINT('',(0.69,1.05,1.6)); +#51896=CARTESIAN_POINT('',(0.69,7.155,1.6)); +#51897=CARTESIAN_POINT('',(0.69,4.02098076211353,1.6)); +#51898=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,1.6)); +#51899=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,1.6)); +#51900=CARTESIAN_POINT('',(1.14221189432336,3.259162720753,1.6)); +#51901=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,1.6)); +#51902=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,1.6)); +#51903=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,1.6)); +#51904=CARTESIAN_POINT('',(0.624999999999999,7.155,1.6)); +#51905=CARTESIAN_POINT('',(0.624999999999999,7.085,1.6)); +#51906=CARTESIAN_POINT('',(0.554999999999999,7.085,1.6)); +#51907=CARTESIAN_POINT('',(0.554999999999999,7.155,1.6)); +#51908=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51909=CARTESIAN_POINT('',(0.244999999999999,7.155,1.6)); +#51910=CARTESIAN_POINT('',(0.245,7.085,1.6)); +#51911=CARTESIAN_POINT('',(0.174999999999999,7.085,1.6)); +#51912=CARTESIAN_POINT('',(0.174999999999999,7.155,1.6)); +#51913=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,1.6)); +#51914=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,1.6)); +#51915=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,1.6)); +#51916=CARTESIAN_POINT('',(3.40278810567667,9.74569299509847,1.6)); +#51917=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,1.6)); +#51918=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,1.6)); +#51919=CARTESIAN_POINT('',(0.11,4.02098076211353,1.6)); +#51920=CARTESIAN_POINT('',(0.109999999999999,7.155,1.6)); +#51921=CARTESIAN_POINT('',(0.109999999999999,1.05,1.6)); +#51922=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#51923=CARTESIAN_POINT('',(-0.110000000000001,1.05,1.6)); +#51924=CARTESIAN_POINT('',(-0.110000000000001,7.155,1.6)); +#51925=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,1.6)); +#51926=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,1.6)); +#51927=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,1.6)); +#51928=CARTESIAN_POINT('',(0.542211894323356,2.91275255923923,1.6)); +#51929=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,1.6)); +#51930=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,1.6)); +#51931=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,1.6)); +#51932=CARTESIAN_POINT('',(-0.175000000000002,7.155,1.6)); +#51933=CARTESIAN_POINT('',(-0.175000000000001,7.085,1.6)); +#51934=CARTESIAN_POINT('',(-0.245000000000001,7.085,1.6)); +#51935=CARTESIAN_POINT('',(-0.245000000000001,7.155,1.6)); +#51936=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51937=CARTESIAN_POINT('',(-0.555000000000001,7.155,1.6)); +#51938=CARTESIAN_POINT('',(-0.555,7.085,1.6)); +#51939=CARTESIAN_POINT('',(-0.625000000000001,7.085,1.6)); +#51940=CARTESIAN_POINT('',(-0.625000000000001,7.155,1.6)); +#51941=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,1.6)); +#51942=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,1.6)); +#51943=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,1.6)); +#51944=CARTESIAN_POINT('',(2.80278810567667,10.0921031566123,1.6)); +#51945=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,1.6)); +#51946=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,1.6)); +#51947=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,1.6)); +#51948=CARTESIAN_POINT('',(-0.690000000000001,7.155,1.6)); +#51949=CARTESIAN_POINT('',(-0.690000000000001,1.05,1.6)); +#51950=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#51951=CARTESIAN_POINT('',(-0.910000000000001,1.05,1.6)); +#51952=CARTESIAN_POINT('',(-0.910000000000001,7.155,1.6)); +#51953=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,1.6)); +#51954=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,1.6)); +#51955=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,1.6)); +#51956=CARTESIAN_POINT('',(-0.0577881056766372,2.56634239772545,1.6)); +#51957=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,1.6)); +#51958=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,1.6)); +#51959=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,1.6)); +#51960=CARTESIAN_POINT('',(-0.975000000000002,7.155,1.6)); +#51961=CARTESIAN_POINT('',(-0.975000000000001,7.085,1.6)); +#51962=CARTESIAN_POINT('',(-1.045,7.085,1.6)); +#51963=CARTESIAN_POINT('',(-1.045,7.155,1.6)); +#51964=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51965=CARTESIAN_POINT('',(-1.355,7.155,1.6)); +#51966=CARTESIAN_POINT('',(-1.355,7.085,1.6)); +#51967=CARTESIAN_POINT('',(-1.425,7.085,1.6)); +#51968=CARTESIAN_POINT('',(-1.425,7.155,1.6)); +#51969=CARTESIAN_POINT('',(-1.425,4.17643593539449,1.6)); +#51970=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,1.6)); +#51971=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,1.6)); +#51972=CARTESIAN_POINT('',(2.20278810567666,10.438513318126,1.6)); +#51973=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,1.6)); +#51974=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,1.6)); +#51975=CARTESIAN_POINT('',(-1.49,4.02098076211353,1.6)); +#51976=CARTESIAN_POINT('',(-1.49,7.155,1.6)); +#51977=CARTESIAN_POINT('',(-1.49,1.05,1.6)); +#51978=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#51979=CARTESIAN_POINT('',(-1.71,1.05,1.6)); +#51980=CARTESIAN_POINT('',(-1.71,7.155,1.6)); +#51981=CARTESIAN_POINT('',(-1.71,4.02098076211353,1.6)); +#51982=CARTESIAN_POINT('',(-1.79,4.02098076211353,1.6)); +#51983=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,1.6)); +#51984=CARTESIAN_POINT('',(-0.657788105676633,2.21993223621167,1.6)); +#51985=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,1.6)); +#51986=CARTESIAN_POINT('',(-1.695,4.17643593539449,1.6)); +#51987=CARTESIAN_POINT('',(-1.775,4.17643593539449,1.6)); +#51988=CARTESIAN_POINT('',(-1.775,7.155,1.6)); +#51989=CARTESIAN_POINT('',(-1.775,7.085,1.6)); +#51990=CARTESIAN_POINT('',(-1.845,7.085,1.6)); +#51991=CARTESIAN_POINT('',(-1.845,7.155,1.6)); +#51992=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#51993=CARTESIAN_POINT('',(-2.155,7.155,1.6)); +#51994=CARTESIAN_POINT('',(-2.155,7.085,1.6)); +#51995=CARTESIAN_POINT('',(-2.225,7.085,1.6)); +#51996=CARTESIAN_POINT('',(-2.225,7.155,1.6)); +#51997=CARTESIAN_POINT('',(-2.225,4.17643593539449,1.6)); +#51998=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,1.6)); +#51999=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,1.6)); +#52000=CARTESIAN_POINT('',(1.60278810567668,10.7849234796398,1.6)); +#52001=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,1.6)); +#52002=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,1.6)); +#52003=CARTESIAN_POINT('',(-2.29,4.02098076211353,1.6)); +#52004=CARTESIAN_POINT('',(-2.29,7.155,1.6)); +#52005=CARTESIAN_POINT('',(-2.29,1.05,1.6)); +#52006=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#52007=CARTESIAN_POINT('',(-2.51,1.05,1.6)); +#52008=CARTESIAN_POINT('',(-2.51,7.155,1.6)); +#52009=CARTESIAN_POINT('',(-2.51,4.02098076211353,1.6)); +#52010=CARTESIAN_POINT('',(-2.59,4.02098076211353,1.6)); +#52011=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,1.6)); +#52012=CARTESIAN_POINT('',(-1.25778810567662,1.87352207469788,1.6)); +#52013=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,1.6)); +#52014=CARTESIAN_POINT('',(-2.495,4.17643593539449,1.6)); +#52015=CARTESIAN_POINT('',(-2.575,4.17643593539449,1.6)); +#52016=CARTESIAN_POINT('',(-2.575,7.155,1.6)); +#52017=CARTESIAN_POINT('',(-2.575,7.085,1.6)); +#52018=CARTESIAN_POINT('',(-2.645,7.085,1.6)); +#52019=CARTESIAN_POINT('',(-2.645,7.155,1.6)); +#52020=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#52021=CARTESIAN_POINT('',(-2.955,7.155,1.6)); +#52022=CARTESIAN_POINT('',(-2.955,7.085,1.6)); +#52023=CARTESIAN_POINT('',(-3.025,7.085,1.6)); +#52024=CARTESIAN_POINT('',(-3.025,7.155,1.6)); +#52025=CARTESIAN_POINT('',(-3.025,4.17643593539449,1.6)); +#52026=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,1.6)); +#52027=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,1.6)); +#52028=CARTESIAN_POINT('',(1.00278810567664,11.1313336411536,1.6)); +#52029=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,1.6)); +#52030=CARTESIAN_POINT('',(-3.01,4.02098076211353,1.6)); +#52031=CARTESIAN_POINT('',(-3.09,4.02098076211353,1.6)); +#52032=CARTESIAN_POINT('',(-3.09,7.155,1.6)); +#52033=CARTESIAN_POINT('',(-3.09,1.05,1.6)); +#52034=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#52035=CARTESIAN_POINT('',(-3.31,1.05,1.6)); +#52036=CARTESIAN_POINT('',(-3.31,7.155,1.6)); +#52037=CARTESIAN_POINT('',(-3.31,4.02098076211353,1.6)); +#52038=CARTESIAN_POINT('',(-3.39,4.02098076211353,1.6)); +#52039=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,1.6)); +#52040=CARTESIAN_POINT('',(-1.85778810567661,1.5271119131841,1.6)); +#52041=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,1.6)); +#52042=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,1.6)); +#52043=CARTESIAN_POINT('',(-3.375,4.17643593539449,1.6)); +#52044=CARTESIAN_POINT('',(-3.375,7.155,1.6)); +#52045=CARTESIAN_POINT('',(-3.375,7.085,1.6)); +#52046=CARTESIAN_POINT('',(-3.445,7.085,1.6)); +#52047=CARTESIAN_POINT('',(-3.445,7.155,1.6)); +#52048=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#52049=CARTESIAN_POINT('',(-3.755,7.155,1.6)); +#52050=CARTESIAN_POINT('',(-3.755,7.085,1.6)); +#52051=CARTESIAN_POINT('',(-3.825,7.085,1.6)); +#52052=CARTESIAN_POINT('',(-3.825,7.155,1.6)); +#52053=CARTESIAN_POINT('',(-3.825,4.17643593539449,1.6)); +#52054=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,1.6)); +#52055=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,1.6)); +#52056=CARTESIAN_POINT('',(0.402788105676634,11.4777438026673,1.6)); +#52057=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,1.6)); +#52058=CARTESIAN_POINT('',(-3.81,4.02098076211353,1.6)); +#52059=CARTESIAN_POINT('',(-3.89,4.02098076211353,1.6)); +#52060=CARTESIAN_POINT('',(-3.89,7.155,1.6)); +#52061=CARTESIAN_POINT('',(-3.89,1.05,1.6)); +#52062=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#52063=CARTESIAN_POINT('',(-4.11,1.05,1.6)); +#52064=CARTESIAN_POINT('',(-4.11,7.155,1.6)); +#52065=CARTESIAN_POINT('',(-4.11,4.02098076211353,1.6)); +#52066=CARTESIAN_POINT('',(-4.19,4.02098076211353,1.6)); +#52067=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,1.6)); +#52068=CARTESIAN_POINT('',(-2.45778810567661,1.18070175167032,1.6)); +#52069=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,1.6)); +#52070=CARTESIAN_POINT('',(-4.095,4.17643593539449,1.6)); +#52071=CARTESIAN_POINT('',(-4.175,4.17643593539449,1.6)); +#52072=CARTESIAN_POINT('',(-4.175,7.155,1.6)); +#52073=CARTESIAN_POINT('',(-4.175,7.085,1.6)); +#52074=CARTESIAN_POINT('',(-4.245,7.085,1.6)); +#52075=CARTESIAN_POINT('',(-4.245,7.155,1.6)); +#52076=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#52077=CARTESIAN_POINT('',(-4.555,7.155,1.6)); +#52078=CARTESIAN_POINT('',(-4.555,7.085,1.6)); +#52079=CARTESIAN_POINT('',(-4.625,7.085,1.6)); +#52080=CARTESIAN_POINT('',(-4.625,7.155,1.6)); +#52081=CARTESIAN_POINT('',(-4.625,4.17643593539449,1.6)); +#52082=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,1.6)); +#52083=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,1.6)); +#52084=CARTESIAN_POINT('',(-0.197211894323318,11.8241539641811,1.6)); +#52085=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,1.6)); +#52086=CARTESIAN_POINT('',(-4.61,4.02098076211353,1.6)); +#52087=CARTESIAN_POINT('',(-4.69,4.02098076211353,1.6)); +#52088=CARTESIAN_POINT('',(-4.69,7.155,1.6)); +#52089=CARTESIAN_POINT('',(-4.69,1.05,1.6)); +#52090=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#52091=CARTESIAN_POINT('',(-4.91,1.05,1.6)); +#52092=CARTESIAN_POINT('',(-4.91,7.155,1.6)); +#52093=CARTESIAN_POINT('',(-4.91,4.02098076211353,1.6)); +#52094=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,1.6)); +#52095=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,1.6)); +#52096=CARTESIAN_POINT('',(-3.0577881056766,0.834291590156546,1.6)); +#52097=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,1.6)); +#52098=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,1.6)); +#52099=CARTESIAN_POINT('',(-4.975,4.17643593539449,1.6)); +#52100=CARTESIAN_POINT('',(-4.975,7.155,1.6)); +#52101=CARTESIAN_POINT('',(-4.975,7.085,1.6)); +#52102=CARTESIAN_POINT('',(-5.045,7.085,1.6)); +#52103=CARTESIAN_POINT('',(-5.045,7.155,1.6)); +#52104=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#52105=CARTESIAN_POINT('',(-5.355,7.155,1.6)); +#52106=CARTESIAN_POINT('',(-5.355,7.085,1.6)); +#52107=CARTESIAN_POINT('',(-5.425,7.085,1.6)); +#52108=CARTESIAN_POINT('',(-5.425,7.155,1.6)); +#52109=CARTESIAN_POINT('',(-5.425,4.17643593539449,1.6)); +#52110=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,1.6)); +#52111=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,1.6)); +#52112=CARTESIAN_POINT('',(-0.797211894323425,12.1705641256949,1.6)); +#52113=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,1.6)); +#52114=CARTESIAN_POINT('',(-5.41,4.02098076211353,1.6)); +#52115=CARTESIAN_POINT('',(-5.49,4.02098076211353,1.6)); +#52116=CARTESIAN_POINT('',(-5.49,7.155,1.6)); +#52117=CARTESIAN_POINT('',(-5.49,1.05,1.6)); +#52118=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#52119=CARTESIAN_POINT('',(-5.71,1.05,1.6)); +#52120=CARTESIAN_POINT('',(-5.71,7.155,1.6)); +#52121=CARTESIAN_POINT('',(-5.71,4.02098076211353,1.6)); +#52122=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,1.6)); +#52123=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,1.6)); +#52124=CARTESIAN_POINT('',(-3.6577881056766,0.487881428642768,1.6)); +#52125=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,1.6)); +#52126=CARTESIAN_POINT('',(-5.695,4.17643593539449,1.6)); +#52127=CARTESIAN_POINT('',(-5.775,4.17643593539449,1.6)); +#52128=CARTESIAN_POINT('',(-5.775,7.155,1.6)); +#52129=CARTESIAN_POINT('',(-5.775,7.085,1.6)); +#52130=CARTESIAN_POINT('',(-5.845,7.085,1.6)); +#52131=CARTESIAN_POINT('',(-5.845,7.155,1.6)); +#52132=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#52133=CARTESIAN_POINT('',(-6.155,7.155,1.6)); +#52134=CARTESIAN_POINT('',(-6.155,7.085,1.6)); +#52135=CARTESIAN_POINT('',(-6.225,7.085,1.6)); +#52136=CARTESIAN_POINT('',(-6.225,7.155,1.6)); +#52137=CARTESIAN_POINT('',(-6.225,4.17643593539449,1.6)); +#52138=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,1.6)); +#52139=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,1.6)); +#52140=CARTESIAN_POINT('',(-1.39721189432331,12.5169742872087,1.6)); +#52141=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,1.6)); +#52142=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,1.6)); +#52143=CARTESIAN_POINT('',(-6.29,4.02098076211353,1.6)); +#52144=CARTESIAN_POINT('',(-6.29,7.155,1.6)); +#52145=CARTESIAN_POINT('',(-6.29,1.05,1.6)); +#52146=CARTESIAN_POINT('',(7.88999999999999,1.04999999999999,1.6)); +#52147=CARTESIAN_POINT('',(-6.51,1.05,1.6)); +#52148=CARTESIAN_POINT('',(-6.51,7.155,1.6)); +#52149=CARTESIAN_POINT('',(-6.51,4.02098076211353,1.6)); +#52150=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,1.6)); +#52151=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,1.6)); +#52152=CARTESIAN_POINT('',(-4.25778810567669,0.141471267129076,1.6)); +#52153=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,1.6)); +#52154=CARTESIAN_POINT('',(-6.495,4.17643593539449,1.6)); +#52155=CARTESIAN_POINT('',(-6.575,4.17643593539449,1.6)); +#52156=CARTESIAN_POINT('',(-6.575,7.155,1.6)); +#52157=CARTESIAN_POINT('',(-6.575,7.085,1.6)); +#52158=CARTESIAN_POINT('',(-6.645,7.085,1.6)); +#52159=CARTESIAN_POINT('',(-6.645,7.155,1.6)); +#52160=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#52161=CARTESIAN_POINT('',(-6.955,7.155,1.6)); +#52162=CARTESIAN_POINT('',(-6.955,7.085,1.6)); +#52163=CARTESIAN_POINT('',(-7.025,7.085,1.6)); +#52164=CARTESIAN_POINT('',(-7.025,7.155,1.6)); +#52165=CARTESIAN_POINT('',(-7.025,4.17643593539449,1.6)); +#52166=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,1.6)); +#52167=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,1.6)); +#52168=CARTESIAN_POINT('',(-1.99721189432331,12.8633844487225,1.6)); +#52169=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,1.6)); +#52170=CARTESIAN_POINT('',(-7.01,4.02098076211353,1.6)); +#52171=CARTESIAN_POINT('',(-7.09,4.02098076211353,1.6)); +#52172=CARTESIAN_POINT('',(-7.09,7.155,1.6)); +#52173=CARTESIAN_POINT('',(-7.09,1.05,1.6)); +#52174=CARTESIAN_POINT('',(7.88999999999999,1.04999999999998,1.6)); +#52175=CARTESIAN_POINT('',(-7.31,1.05,1.6)); +#52176=CARTESIAN_POINT('',(-7.31,7.155,1.6)); +#52177=CARTESIAN_POINT('',(-7.31,4.02098076211353,1.6)); +#52178=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,1.6)); +#52179=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,1.6)); +#52180=CARTESIAN_POINT('',(-4.85778810567659,-0.204938894384788,1.6)); +#52181=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,1.6)); +#52182=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,1.6)); +#52183=CARTESIAN_POINT('',(-7.375,4.17643593539449,1.6)); +#52184=CARTESIAN_POINT('',(-7.375,7.155,1.6)); +#52185=CARTESIAN_POINT('',(-7.375,7.085,1.6)); +#52186=CARTESIAN_POINT('',(-7.445,7.085,1.6)); +#52187=CARTESIAN_POINT('',(-7.445,7.155,1.6)); +#52188=CARTESIAN_POINT('',(7.89,7.155,1.6)); +#52189=CARTESIAN_POINT('',(-7.755,7.155,1.6)); +#52190=CARTESIAN_POINT('',(-7.755,7.085,1.6)); +#52191=CARTESIAN_POINT('',(-7.825,7.085,1.6)); +#52192=CARTESIAN_POINT('',(-7.825,7.155,1.6)); +#52193=CARTESIAN_POINT('',(-7.825,4.17643593539449,1.6)); +#52194=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,1.6)); +#52195=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,1.6)); +#52196=CARTESIAN_POINT('',(-2.59721189432318,13.2097946102363,1.6)); +#52197=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,1.6)); +#52198=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,1.6)); +#52199=CARTESIAN_POINT('',(-7.89,4.02098076211353,1.6)); +#52200=CARTESIAN_POINT('',(-7.89,7.155,1.6)); +#52201=CARTESIAN_POINT('',(-7.89,1.05,1.6)); +#52202=CARTESIAN_POINT('',(-8.,1.05,1.6)); +#52203=CARTESIAN_POINT('',(-8.,1.05,1.6)); +#52204=CARTESIAN_POINT('',(-8.,1.05,1.6)); +#52205=CARTESIAN_POINT('',(-8.,1.05,-1.6)); +#52206=CARTESIAN_POINT('',(-8.,1.,-1.6)); +#52207=CARTESIAN_POINT('',(-8.,1.05,-1.6)); +#52208=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); +#52209=CARTESIAN_POINT('',(-7.95,1.,-1.435)); +#52210=CARTESIAN_POINT('',(-7.95,1.05,-1.435)); +#52211=CARTESIAN_POINT('',(7.95,1.05,1.435)); +#52212=CARTESIAN_POINT('',(7.95,1.,1.435)); +#52213=CARTESIAN_POINT('',(7.95,1.05,1.435)); +#52214=CARTESIAN_POINT('',(8.,1.05,1.6)); +#52215=CARTESIAN_POINT('',(8.,1.,1.6)); +#52216=CARTESIAN_POINT('',(8.,1.05,1.6)); +#52217=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52218=CARTESIAN_POINT('',(-7.31,1.05,4.)); +#52219=CARTESIAN_POINT('',(-7.09,1.05,4.)); +#52220=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52221=CARTESIAN_POINT('',(-6.51,1.05,4.)); +#52222=CARTESIAN_POINT('',(-6.29,1.05,4.)); +#52223=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52224=CARTESIAN_POINT('',(-5.71,1.05,4.)); +#52225=CARTESIAN_POINT('',(-5.49,1.05,4.)); +#52226=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52227=CARTESIAN_POINT('',(-4.91,1.05,4.)); +#52228=CARTESIAN_POINT('',(-4.69,1.05,4.)); +#52229=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52230=CARTESIAN_POINT('',(-4.11,1.05,4.)); +#52231=CARTESIAN_POINT('',(-3.89,1.05,4.)); +#52232=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52233=CARTESIAN_POINT('',(-3.31,1.05,4.)); +#52234=CARTESIAN_POINT('',(-3.09,1.05,4.)); +#52235=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52236=CARTESIAN_POINT('',(-2.51,1.05,4.)); +#52237=CARTESIAN_POINT('',(-2.29,1.05,4.)); +#52238=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52239=CARTESIAN_POINT('',(-1.71,1.05,4.)); +#52240=CARTESIAN_POINT('',(-1.49,1.05,4.)); +#52241=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52242=CARTESIAN_POINT('',(-0.910000000000001,1.05,4.)); +#52243=CARTESIAN_POINT('',(-0.690000000000001,1.05,4.)); +#52244=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52245=CARTESIAN_POINT('',(-0.110000000000001,1.05,4.)); +#52246=CARTESIAN_POINT('',(0.109999999999999,1.05,4.)); +#52247=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52248=CARTESIAN_POINT('',(0.69,1.05,4.)); +#52249=CARTESIAN_POINT('',(0.909999999999999,1.05,4.)); +#52250=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52251=CARTESIAN_POINT('',(1.49,1.05,4.)); +#52252=CARTESIAN_POINT('',(1.71,1.05,4.)); +#52253=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52254=CARTESIAN_POINT('',(2.29,1.05,4.)); +#52255=CARTESIAN_POINT('',(2.51,1.05,4.)); +#52256=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52257=CARTESIAN_POINT('',(3.09,1.05,4.)); +#52258=CARTESIAN_POINT('',(3.31,1.05,4.)); +#52259=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52260=CARTESIAN_POINT('',(3.89,1.05,4.)); +#52261=CARTESIAN_POINT('',(4.11,1.05,4.)); +#52262=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52263=CARTESIAN_POINT('',(4.69,1.05,4.)); +#52264=CARTESIAN_POINT('',(4.91,1.05,4.)); +#52265=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52266=CARTESIAN_POINT('',(5.49,1.05,4.)); +#52267=CARTESIAN_POINT('',(5.71,1.05,4.)); +#52268=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52269=CARTESIAN_POINT('',(6.29,1.05,4.)); +#52270=CARTESIAN_POINT('',(6.51,1.05,4.)); +#52271=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52272=CARTESIAN_POINT('',(7.09,1.05,4.)); +#52273=CARTESIAN_POINT('',(7.31,1.05,4.)); +#52274=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52275=CARTESIAN_POINT('',(7.31,1.05,4.)); +#52276=CARTESIAN_POINT('',(7.09,1.05,4.)); +#52277=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52278=CARTESIAN_POINT('',(6.51,1.05,4.)); +#52279=CARTESIAN_POINT('',(6.29,1.05,4.)); +#52280=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52281=CARTESIAN_POINT('',(5.71,1.05,4.)); +#52282=CARTESIAN_POINT('',(5.49,1.05,4.)); +#52283=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52284=CARTESIAN_POINT('',(4.91,1.05,4.)); +#52285=CARTESIAN_POINT('',(4.69,1.05,4.)); +#52286=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52287=CARTESIAN_POINT('',(4.11,1.05,4.)); +#52288=CARTESIAN_POINT('',(3.89,1.05,4.)); +#52289=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52290=CARTESIAN_POINT('',(3.31,1.05,4.)); +#52291=CARTESIAN_POINT('',(3.09,1.05,4.)); +#52292=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52293=CARTESIAN_POINT('',(2.51,1.05,4.)); +#52294=CARTESIAN_POINT('',(2.29,1.05,4.)); +#52295=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52296=CARTESIAN_POINT('',(1.71,1.05,4.)); +#52297=CARTESIAN_POINT('',(1.49,1.05,4.)); +#52298=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52299=CARTESIAN_POINT('',(0.909999999999999,1.05,4.)); +#52300=CARTESIAN_POINT('',(0.69,1.05,4.)); +#52301=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52302=CARTESIAN_POINT('',(0.109999999999999,1.05,4.)); +#52303=CARTESIAN_POINT('',(-0.110000000000001,1.05,4.)); +#52304=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52305=CARTESIAN_POINT('',(-0.690000000000001,1.05,4.)); +#52306=CARTESIAN_POINT('',(-0.910000000000001,1.05,4.)); +#52307=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52308=CARTESIAN_POINT('',(-1.49,1.05,4.)); +#52309=CARTESIAN_POINT('',(-1.71,1.05,4.)); +#52310=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52311=CARTESIAN_POINT('',(-2.29,1.05,4.)); +#52312=CARTESIAN_POINT('',(-2.51,1.05,4.)); +#52313=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52314=CARTESIAN_POINT('',(-3.09,1.05,4.)); +#52315=CARTESIAN_POINT('',(-3.31,1.05,4.)); +#52316=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52317=CARTESIAN_POINT('',(-3.89,1.05,4.)); +#52318=CARTESIAN_POINT('',(-4.11,1.05,4.)); +#52319=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52320=CARTESIAN_POINT('',(-4.69,1.05,4.)); +#52321=CARTESIAN_POINT('',(-4.91,1.05,4.)); +#52322=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52323=CARTESIAN_POINT('',(-5.49,1.05,4.)); +#52324=CARTESIAN_POINT('',(-5.71,1.05,4.)); +#52325=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52326=CARTESIAN_POINT('',(-6.29,1.05,4.)); +#52327=CARTESIAN_POINT('',(-6.51,1.05,4.)); +#52328=CARTESIAN_POINT('',(7.89,1.05,-1.435)); +#52329=CARTESIAN_POINT('',(-7.09,1.05,4.)); +#52330=CARTESIAN_POINT('',(-7.31,1.05,4.)); +#52331=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#52332=CARTESIAN_POINT('',(7.89,1.05,2.0088)); +#52333=CARTESIAN_POINT('',(7.89,4.02098076211353,4.)); +#52334=CARTESIAN_POINT('',(-7.89,0.6524,2.0088)); +#52335=CARTESIAN_POINT('',(-7.89,1.05,2.0088)); +#52336=CARTESIAN_POINT('',(-7.89,4.02098076211354,4.)); +#52337=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52338=CARTESIAN_POINT('',(-7.72,7.19,-1.59877936908855)); +#52339=CARTESIAN_POINT('',(-7.72,7.17154879938732,-1.60006791379186)); +#52340=CARTESIAN_POINT('',(-7.7365034374292,7.15499999999984,-1.60000000000025)); +#52341=CARTESIAN_POINT('',(-7.75499999999996,7.15499999999982,-1.60000000000025)); +#52342=CARTESIAN_POINT('',(-7.72,7.19,-1.59877936908855)); +#52343=CARTESIAN_POINT('',(-7.72,7.155,-1.0976)); +#52344=CARTESIAN_POINT('',(-7.72,7.5374,-1.42344658967066)); +#52345=CARTESIAN_POINT('',(-7.72,7.5374,-1.42344658967066)); +#52346=CARTESIAN_POINT('',(-7.72,7.59787264997766,-1.35247840376812)); +#52347=CARTESIAN_POINT('',(-7.68244206675412,7.63403033891439,-1.27081952584834)); +#52348=CARTESIAN_POINT('',(-7.64365232163209,7.64917868677046,-1.18811621701012)); +#52349=CARTESIAN_POINT('',(-7.64365232163208,7.64917868677046,-1.18811621701012)); +#52350=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52351=CARTESIAN_POINT('',(-7.55634767836792,7.64917868677046,-1.18811621701012)); +#52352=CARTESIAN_POINT('',(-7.55634767836792,7.64917868677046,-1.18811621701012)); +#52353=CARTESIAN_POINT('',(-7.51750101965383,7.63400811275933,-1.27094087086789)); +#52354=CARTESIAN_POINT('',(-7.48,7.59805032943425,-1.35226988655065)); +#52355=CARTESIAN_POINT('',(-7.48,7.5374,-1.42344658967066)); +#52356=CARTESIAN_POINT('',(-7.48,7.5374,-1.42344658967066)); +#52357=CARTESIAN_POINT('',(-7.48,7.155,-1.0976)); +#52358=CARTESIAN_POINT('',(-7.48,7.19,-1.59877936908855)); +#52359=CARTESIAN_POINT('',(-7.445,7.155,-1.6)); +#52360=CARTESIAN_POINT('',(-7.46349664060179,7.155,-1.6)); +#52361=CARTESIAN_POINT('',(-7.48000000000013,7.17154844824344,-1.6000679383141)); +#52362=CARTESIAN_POINT('',(-7.48000000000015,7.18999999999997,-1.59877936908857)); +#52363=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52364=CARTESIAN_POINT('',(-6.92,7.19,-1.59877936908855)); +#52365=CARTESIAN_POINT('',(-6.92,7.17154879938732,-1.60006791379186)); +#52366=CARTESIAN_POINT('',(-6.9365034374292,7.15499999999984,-1.60000000000025)); +#52367=CARTESIAN_POINT('',(-6.95499999999996,7.15499999999982,-1.60000000000025)); +#52368=CARTESIAN_POINT('',(-6.92,7.19,-1.59877936908855)); +#52369=CARTESIAN_POINT('',(-6.92,7.155,-1.0976)); +#52370=CARTESIAN_POINT('',(-6.92,7.5374,-1.42344658967066)); +#52371=CARTESIAN_POINT('',(-6.92,7.5374,-1.42344658967066)); +#52372=CARTESIAN_POINT('',(-6.92,7.59787264997766,-1.35247840376812)); +#52373=CARTESIAN_POINT('',(-6.88244206675412,7.63403033891439,-1.27081952584833)); +#52374=CARTESIAN_POINT('',(-6.84365232163208,7.64917868677046,-1.18811621701012)); +#52375=CARTESIAN_POINT('',(-6.84365232163208,7.64917868677046,-1.18811621701012)); +#52376=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52377=CARTESIAN_POINT('',(-6.75634767836792,7.64917868677046,-1.18811621701012)); +#52378=CARTESIAN_POINT('',(-6.75634767836792,7.64917868677046,-1.18811621701012)); +#52379=CARTESIAN_POINT('',(-6.71750101965383,7.63400811275933,-1.27094087086789)); +#52380=CARTESIAN_POINT('',(-6.68,7.59805032943425,-1.35226988655065)); +#52381=CARTESIAN_POINT('',(-6.68,7.5374,-1.42344658967066)); +#52382=CARTESIAN_POINT('',(-6.68,7.5374,-1.42344658967066)); +#52383=CARTESIAN_POINT('',(-6.68,7.155,-1.0976)); +#52384=CARTESIAN_POINT('',(-6.68,7.19,-1.59877936908855)); +#52385=CARTESIAN_POINT('',(-6.645,7.155,-1.6)); +#52386=CARTESIAN_POINT('',(-6.66349664060179,7.155,-1.6)); +#52387=CARTESIAN_POINT('',(-6.68000000000014,7.17154844824344,-1.6000679383141)); +#52388=CARTESIAN_POINT('',(-6.68000000000015,7.18999999999997,-1.59877936908857)); +#52389=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52390=CARTESIAN_POINT('',(-6.12,7.19,-1.59877936908855)); +#52391=CARTESIAN_POINT('',(-6.12,7.17154879938732,-1.60006791379186)); +#52392=CARTESIAN_POINT('',(-6.1365034374292,7.15499999999984,-1.60000000000025)); +#52393=CARTESIAN_POINT('',(-6.15499999999996,7.15499999999982,-1.60000000000025)); +#52394=CARTESIAN_POINT('',(-6.12,7.19,-1.59877936908855)); +#52395=CARTESIAN_POINT('',(-6.12,7.155,-1.0976)); +#52396=CARTESIAN_POINT('',(-6.12,7.5374,-1.42344658967066)); +#52397=CARTESIAN_POINT('',(-6.12,7.5374,-1.42344658967066)); +#52398=CARTESIAN_POINT('',(-6.12,7.59787264997766,-1.35247840376812)); +#52399=CARTESIAN_POINT('',(-6.08244206675412,7.63403033891439,-1.27081952584834)); +#52400=CARTESIAN_POINT('',(-6.04365232163209,7.64917868677046,-1.18811621701012)); +#52401=CARTESIAN_POINT('',(-6.04365232163208,7.64917868677046,-1.18811621701012)); +#52402=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52403=CARTESIAN_POINT('',(-5.95634767836792,7.64917868677046,-1.18811621701012)); +#52404=CARTESIAN_POINT('',(-5.95634767836792,7.64917868677046,-1.18811621701012)); +#52405=CARTESIAN_POINT('',(-5.91750101965383,7.63400811275933,-1.27094087086789)); +#52406=CARTESIAN_POINT('',(-5.88,7.59805032943425,-1.35226988655065)); +#52407=CARTESIAN_POINT('',(-5.88,7.5374,-1.42344658967066)); +#52408=CARTESIAN_POINT('',(-5.88,7.5374,-1.42344658967066)); +#52409=CARTESIAN_POINT('',(-5.88,7.155,-1.0976)); +#52410=CARTESIAN_POINT('',(-5.88,7.19,-1.59877936908855)); +#52411=CARTESIAN_POINT('',(-5.845,7.155,-1.6)); +#52412=CARTESIAN_POINT('',(-5.86349664060179,7.155,-1.6)); +#52413=CARTESIAN_POINT('',(-5.88000000000014,7.17154844824344,-1.6000679383141)); +#52414=CARTESIAN_POINT('',(-5.88000000000015,7.18999999999997,-1.59877936908857)); +#52415=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52416=CARTESIAN_POINT('',(-5.32,7.19,-1.59877936908855)); +#52417=CARTESIAN_POINT('',(-5.32,7.17154879938732,-1.60006791379186)); +#52418=CARTESIAN_POINT('',(-5.3365034374292,7.15499999999984,-1.60000000000025)); +#52419=CARTESIAN_POINT('',(-5.35499999999996,7.15499999999982,-1.60000000000025)); +#52420=CARTESIAN_POINT('',(-5.32,7.19,-1.59877936908855)); +#52421=CARTESIAN_POINT('',(-5.32,7.155,-1.0976)); +#52422=CARTESIAN_POINT('',(-5.32,7.5374,-1.42344658967066)); +#52423=CARTESIAN_POINT('',(-5.32,7.5374,-1.42344658967066)); +#52424=CARTESIAN_POINT('',(-5.32,7.59787264997766,-1.35247840376812)); +#52425=CARTESIAN_POINT('',(-5.28244206675412,7.63403033891439,-1.27081952584834)); +#52426=CARTESIAN_POINT('',(-5.24365232163209,7.64917868677046,-1.18811621701012)); +#52427=CARTESIAN_POINT('',(-5.24365232163209,7.64917868677046,-1.18811621701012)); +#52428=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52429=CARTESIAN_POINT('',(-5.15634767836792,7.64917868677046,-1.18811621701012)); +#52430=CARTESIAN_POINT('',(-5.15634767836792,7.64917868677046,-1.18811621701012)); +#52431=CARTESIAN_POINT('',(-5.11750101965383,7.63400811275933,-1.27094087086789)); +#52432=CARTESIAN_POINT('',(-5.08,7.59805032943425,-1.35226988655065)); +#52433=CARTESIAN_POINT('',(-5.08,7.5374,-1.42344658967066)); +#52434=CARTESIAN_POINT('',(-5.08,7.5374,-1.42344658967066)); +#52435=CARTESIAN_POINT('',(-5.08,7.155,-1.0976)); +#52436=CARTESIAN_POINT('',(-5.08,7.19,-1.59877936908855)); +#52437=CARTESIAN_POINT('',(-5.045,7.155,-1.6)); +#52438=CARTESIAN_POINT('',(-5.06349664060178,7.155,-1.6)); +#52439=CARTESIAN_POINT('',(-5.08000000000014,7.17154844824344,-1.6000679383141)); +#52440=CARTESIAN_POINT('',(-5.08000000000015,7.18999999999997,-1.59877936908857)); +#52441=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52442=CARTESIAN_POINT('',(-4.52,7.19,-1.59877936908855)); +#52443=CARTESIAN_POINT('',(-4.52,7.17154879938732,-1.60006791379186)); +#52444=CARTESIAN_POINT('',(-4.5365034374292,7.15499999999984,-1.60000000000025)); +#52445=CARTESIAN_POINT('',(-4.55499999999996,7.15499999999982,-1.60000000000025)); +#52446=CARTESIAN_POINT('',(-4.52,7.19,-1.59877936908855)); +#52447=CARTESIAN_POINT('',(-4.52,7.155,-1.0976)); +#52448=CARTESIAN_POINT('',(-4.52,7.5374,-1.42344658967066)); +#52449=CARTESIAN_POINT('',(-4.52,7.5374,-1.42344658967066)); +#52450=CARTESIAN_POINT('',(-4.52,7.59787264997766,-1.35247840376812)); +#52451=CARTESIAN_POINT('',(-4.48244206675412,7.63403033891439,-1.27081952584833)); +#52452=CARTESIAN_POINT('',(-4.44365232163209,7.64917868677046,-1.18811621701012)); +#52453=CARTESIAN_POINT('',(-4.44365232163208,7.64917868677046,-1.18811621701012)); +#52454=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52455=CARTESIAN_POINT('',(-4.35634767836792,7.64917868677046,-1.18811621701012)); +#52456=CARTESIAN_POINT('',(-4.35634767836792,7.64917868677046,-1.18811621701012)); +#52457=CARTESIAN_POINT('',(-4.31750101965383,7.63400811275933,-1.27094087086789)); +#52458=CARTESIAN_POINT('',(-4.28,7.59805032943425,-1.35226988655065)); +#52459=CARTESIAN_POINT('',(-4.28,7.5374,-1.42344658967066)); +#52460=CARTESIAN_POINT('',(-4.28,7.5374,-1.42344658967066)); +#52461=CARTESIAN_POINT('',(-4.28,7.155,-1.0976)); +#52462=CARTESIAN_POINT('',(-4.28,7.19,-1.59877936908855)); +#52463=CARTESIAN_POINT('',(-4.245,7.155,-1.6)); +#52464=CARTESIAN_POINT('',(-4.26349664060179,7.155,-1.6)); +#52465=CARTESIAN_POINT('',(-4.28000000000014,7.17154844824344,-1.6000679383141)); +#52466=CARTESIAN_POINT('',(-4.28000000000015,7.18999999999997,-1.59877936908857)); +#52467=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52468=CARTESIAN_POINT('',(-3.72,7.19,-1.59877936908855)); +#52469=CARTESIAN_POINT('',(-3.72,7.17154879938732,-1.60006791379186)); +#52470=CARTESIAN_POINT('',(-3.7365034374292,7.15499999999984,-1.60000000000025)); +#52471=CARTESIAN_POINT('',(-3.75499999999996,7.15499999999982,-1.60000000000025)); +#52472=CARTESIAN_POINT('',(-3.72,7.19,-1.59877936908855)); +#52473=CARTESIAN_POINT('',(-3.72,7.155,-1.0976)); +#52474=CARTESIAN_POINT('',(-3.72,7.5374,-1.42344658967066)); +#52475=CARTESIAN_POINT('',(-3.72,7.5374,-1.42344658967066)); +#52476=CARTESIAN_POINT('',(-3.72,7.59787264997766,-1.35247840376812)); +#52477=CARTESIAN_POINT('',(-3.68244206675412,7.63403033891439,-1.27081952584834)); +#52478=CARTESIAN_POINT('',(-3.64365232163209,7.64917868677046,-1.18811621701012)); +#52479=CARTESIAN_POINT('',(-3.64365232163208,7.64917868677046,-1.18811621701012)); +#52480=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52481=CARTESIAN_POINT('',(-3.55634767836792,7.64917868677046,-1.18811621701012)); +#52482=CARTESIAN_POINT('',(-3.55634767836792,7.64917868677046,-1.18811621701012)); +#52483=CARTESIAN_POINT('',(-3.51750101965383,7.63400811275933,-1.27094087086789)); +#52484=CARTESIAN_POINT('',(-3.48,7.59805032943425,-1.35226988655065)); +#52485=CARTESIAN_POINT('',(-3.48,7.5374,-1.42344658967066)); +#52486=CARTESIAN_POINT('',(-3.48,7.5374,-1.42344658967066)); +#52487=CARTESIAN_POINT('',(-3.48,7.155,-1.0976)); +#52488=CARTESIAN_POINT('',(-3.48,7.19,-1.59877936908855)); +#52489=CARTESIAN_POINT('',(-3.445,7.155,-1.6)); +#52490=CARTESIAN_POINT('',(-3.46349664060179,7.155,-1.6)); +#52491=CARTESIAN_POINT('',(-3.48000000000014,7.17154844824344,-1.6000679383141)); +#52492=CARTESIAN_POINT('',(-3.48000000000015,7.18999999999997,-1.59877936908857)); +#52493=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52494=CARTESIAN_POINT('',(-2.92,7.19,-1.59877936908855)); +#52495=CARTESIAN_POINT('',(-2.92,7.17154879938732,-1.60006791379186)); +#52496=CARTESIAN_POINT('',(-2.9365034374292,7.15499999999984,-1.60000000000025)); +#52497=CARTESIAN_POINT('',(-2.95499999999996,7.15499999999982,-1.60000000000025)); +#52498=CARTESIAN_POINT('',(-2.92,7.19,-1.59877936908855)); +#52499=CARTESIAN_POINT('',(-2.92,7.155,-1.0976)); +#52500=CARTESIAN_POINT('',(-2.92,7.5374,-1.42344658967066)); +#52501=CARTESIAN_POINT('',(-2.92,7.5374,-1.42344658967066)); +#52502=CARTESIAN_POINT('',(-2.92,7.59787264997766,-1.35247840376812)); +#52503=CARTESIAN_POINT('',(-2.88244206675412,7.63403033891439,-1.27081952584834)); +#52504=CARTESIAN_POINT('',(-2.84365232163209,7.64917868677046,-1.18811621701012)); +#52505=CARTESIAN_POINT('',(-2.84365232163208,7.64917868677046,-1.18811621701012)); +#52506=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52507=CARTESIAN_POINT('',(-2.75634767836792,7.64917868677046,-1.18811621701012)); +#52508=CARTESIAN_POINT('',(-2.75634767836792,7.64917868677046,-1.18811621701012)); +#52509=CARTESIAN_POINT('',(-2.71750101965383,7.63400811275933,-1.27094087086789)); +#52510=CARTESIAN_POINT('',(-2.68,7.59805032943425,-1.35226988655065)); +#52511=CARTESIAN_POINT('',(-2.68,7.5374,-1.42344658967066)); +#52512=CARTESIAN_POINT('',(-2.68,7.5374,-1.42344658967066)); +#52513=CARTESIAN_POINT('',(-2.68,7.155,-1.0976)); +#52514=CARTESIAN_POINT('',(-2.68,7.19,-1.59877936908855)); +#52515=CARTESIAN_POINT('',(-2.645,7.155,-1.6)); +#52516=CARTESIAN_POINT('',(-2.66349664060179,7.155,-1.6)); +#52517=CARTESIAN_POINT('',(-2.68000000000014,7.17154844824344,-1.6000679383141)); +#52518=CARTESIAN_POINT('',(-2.68000000000015,7.18999999999997,-1.59877936908857)); +#52519=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52520=CARTESIAN_POINT('',(-2.12,7.19,-1.59877936908855)); +#52521=CARTESIAN_POINT('',(-2.12,7.17154879938732,-1.60006791379186)); +#52522=CARTESIAN_POINT('',(-2.1365034374292,7.15499999999984,-1.60000000000025)); +#52523=CARTESIAN_POINT('',(-2.15499999999996,7.15499999999982,-1.60000000000025)); +#52524=CARTESIAN_POINT('',(-2.12,7.19,-1.59877936908855)); +#52525=CARTESIAN_POINT('',(-2.12,7.155,-1.0976)); +#52526=CARTESIAN_POINT('',(-2.12,7.5374,-1.42344658967066)); +#52527=CARTESIAN_POINT('',(-2.12,7.5374,-1.42344658967066)); +#52528=CARTESIAN_POINT('',(-2.12,7.59787264997766,-1.35247840376812)); +#52529=CARTESIAN_POINT('',(-2.08244206675412,7.63403033891439,-1.27081952584833)); +#52530=CARTESIAN_POINT('',(-2.04365232163209,7.64917868677046,-1.18811621701012)); +#52531=CARTESIAN_POINT('',(-2.04365232163208,7.64917868677046,-1.18811621701012)); +#52532=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52533=CARTESIAN_POINT('',(-1.95634767836792,7.64917868677046,-1.18811621701012)); +#52534=CARTESIAN_POINT('',(-1.95634767836792,7.64917868677046,-1.18811621701012)); +#52535=CARTESIAN_POINT('',(-1.91750101965383,7.63400811275933,-1.27094087086789)); +#52536=CARTESIAN_POINT('',(-1.88,7.59805032943425,-1.35226988655065)); +#52537=CARTESIAN_POINT('',(-1.88,7.5374,-1.42344658967066)); +#52538=CARTESIAN_POINT('',(-1.88,7.5374,-1.42344658967066)); +#52539=CARTESIAN_POINT('',(-1.88,7.155,-1.0976)); +#52540=CARTESIAN_POINT('',(-1.88,7.19,-1.59877936908855)); +#52541=CARTESIAN_POINT('',(-1.845,7.155,-1.6)); +#52542=CARTESIAN_POINT('',(-1.86349664060179,7.155,-1.6)); +#52543=CARTESIAN_POINT('',(-1.88000000000014,7.17154844824344,-1.6000679383141)); +#52544=CARTESIAN_POINT('',(-1.88000000000015,7.18999999999997,-1.59877936908857)); +#52545=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52546=CARTESIAN_POINT('',(-1.32,7.19,-1.59877936908855)); +#52547=CARTESIAN_POINT('',(-1.32,7.17154879938732,-1.60006791379186)); +#52548=CARTESIAN_POINT('',(-1.3365034374292,7.15499999999984,-1.60000000000025)); +#52549=CARTESIAN_POINT('',(-1.35499999999996,7.15499999999982,-1.60000000000025)); +#52550=CARTESIAN_POINT('',(-1.32,7.19,-1.59877936908855)); +#52551=CARTESIAN_POINT('',(-1.32,7.155,-1.0976)); +#52552=CARTESIAN_POINT('',(-1.32,7.5374,-1.42344658967066)); +#52553=CARTESIAN_POINT('',(-1.32,7.5374,-1.42344658967066)); +#52554=CARTESIAN_POINT('',(-1.32,7.59787264997766,-1.35247840376812)); +#52555=CARTESIAN_POINT('',(-1.28244206675412,7.63403033891439,-1.27081952584834)); +#52556=CARTESIAN_POINT('',(-1.24365232163209,7.64917868677046,-1.18811621701012)); +#52557=CARTESIAN_POINT('',(-1.24365232163209,7.64917868677046,-1.18811621701012)); +#52558=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52559=CARTESIAN_POINT('',(-1.15634767836792,7.64917868677046,-1.18811621701012)); +#52560=CARTESIAN_POINT('',(-1.15634767836792,7.64917868677046,-1.18811621701012)); +#52561=CARTESIAN_POINT('',(-1.11750101965383,7.63400811275933,-1.27094087086789)); +#52562=CARTESIAN_POINT('',(-1.08,7.59805032943425,-1.35226988655065)); +#52563=CARTESIAN_POINT('',(-1.08,7.5374,-1.42344658967066)); +#52564=CARTESIAN_POINT('',(-1.08,7.5374,-1.42344658967066)); +#52565=CARTESIAN_POINT('',(-1.08,7.155,-1.0976)); +#52566=CARTESIAN_POINT('',(-1.08,7.19,-1.59877936908855)); +#52567=CARTESIAN_POINT('',(-1.045,7.155,-1.6)); +#52568=CARTESIAN_POINT('',(-1.06349664060179,7.155,-1.6)); +#52569=CARTESIAN_POINT('',(-1.08000000000014,7.17154844824344,-1.6000679383141)); +#52570=CARTESIAN_POINT('',(-1.08000000000015,7.18999999999997,-1.59877936908857)); +#52571=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52572=CARTESIAN_POINT('',(-0.520000000000001,7.19,-1.59877936908855)); +#52573=CARTESIAN_POINT('',(-0.520000000000001,7.17154879938732,-1.60006791379186)); +#52574=CARTESIAN_POINT('',(-0.536503437429199,7.15499999999984,-1.60000000000025)); +#52575=CARTESIAN_POINT('',(-0.554999999999959,7.15499999999982,-1.60000000000025)); +#52576=CARTESIAN_POINT('',(-0.520000000000001,7.19,-1.59877936908855)); +#52577=CARTESIAN_POINT('',(-0.520000000000001,7.155,-1.0976)); +#52578=CARTESIAN_POINT('',(-0.520000000000001,7.5374,-1.42344658967066)); +#52579=CARTESIAN_POINT('',(-0.520000000000001,7.5374,-1.42344658967066)); +#52580=CARTESIAN_POINT('',(-0.520000000000001,7.59787264997766,-1.35247840376812)); +#52581=CARTESIAN_POINT('',(-0.482442066754121,7.63403033891439,-1.27081952584834)); +#52582=CARTESIAN_POINT('',(-0.443652321632086,7.64917868677046,-1.18811621701012)); +#52583=CARTESIAN_POINT('',(-0.443652321632085,7.64917868677046,-1.18811621701012)); +#52584=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52585=CARTESIAN_POINT('',(-0.356347678367917,7.64917868677046,-1.18811621701012)); +#52586=CARTESIAN_POINT('',(-0.356347678367917,7.64917868677046,-1.18811621701012)); +#52587=CARTESIAN_POINT('',(-0.317501019653832,7.63400811275933,-1.27094087086789)); +#52588=CARTESIAN_POINT('',(-0.28,7.59805032943425,-1.35226988655065)); +#52589=CARTESIAN_POINT('',(-0.28,7.5374,-1.42344658967066)); +#52590=CARTESIAN_POINT('',(-0.280000000000001,7.5374,-1.42344658967066)); +#52591=CARTESIAN_POINT('',(-0.280000000000001,7.155,-1.0976)); +#52592=CARTESIAN_POINT('',(-0.28,7.19,-1.59877936908855)); +#52593=CARTESIAN_POINT('',(-0.245000000000001,7.155,-1.6)); +#52594=CARTESIAN_POINT('',(-0.263496640601786,7.155,-1.6)); +#52595=CARTESIAN_POINT('',(-0.280000000000136,7.17154844824344,-1.6000679383141)); +#52596=CARTESIAN_POINT('',(-0.280000000000154,7.18999999999997,-1.59877936908857)); +#52597=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52598=CARTESIAN_POINT('',(0.279999999999999,7.19,-1.59877936908855)); +#52599=CARTESIAN_POINT('',(0.28,7.17154879938732,-1.60006791379186)); +#52600=CARTESIAN_POINT('',(0.263496562570802,7.15499999999984,-1.60000000000025)); +#52601=CARTESIAN_POINT('',(0.245000000000041,7.15499999999982,-1.60000000000025)); +#52602=CARTESIAN_POINT('',(0.279999999999999,7.19,-1.59877936908855)); +#52603=CARTESIAN_POINT('',(0.279999999999999,7.155,-1.0976)); +#52604=CARTESIAN_POINT('',(0.279999999999999,7.5374,-1.42344658967066)); +#52605=CARTESIAN_POINT('',(0.279999999999999,7.5374,-1.42344658967066)); +#52606=CARTESIAN_POINT('',(0.279999999999999,7.59787264997766,-1.35247840376812)); +#52607=CARTESIAN_POINT('',(0.317557933245879,7.63403033891439,-1.27081952584834)); +#52608=CARTESIAN_POINT('',(0.356347678367914,7.64917868677046,-1.18811621701012)); +#52609=CARTESIAN_POINT('',(0.356347678367916,7.64917868677046,-1.18811621701012)); +#52610=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52611=CARTESIAN_POINT('',(0.443652321632083,7.64917868677046,-1.18811621701012)); +#52612=CARTESIAN_POINT('',(0.443652321632084,7.64917868677046,-1.18811621701012)); +#52613=CARTESIAN_POINT('',(0.482498980346168,7.63400811275933,-1.27094087086789)); +#52614=CARTESIAN_POINT('',(0.52,7.59805032943425,-1.35226988655065)); +#52615=CARTESIAN_POINT('',(0.52,7.5374,-1.42344658967066)); +#52616=CARTESIAN_POINT('',(0.52,7.5374,-1.42344658967066)); +#52617=CARTESIAN_POINT('',(0.52,7.155,-1.0976)); +#52618=CARTESIAN_POINT('',(0.52,7.19,-1.59877936908855)); +#52619=CARTESIAN_POINT('',(0.554999999999999,7.155,-1.6)); +#52620=CARTESIAN_POINT('',(0.536503359398214,7.155,-1.6)); +#52621=CARTESIAN_POINT('',(0.519999999999864,7.17154844824344,-1.6000679383141)); +#52622=CARTESIAN_POINT('',(0.519999999999846,7.18999999999997,-1.59877936908857)); +#52623=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52624=CARTESIAN_POINT('',(1.08,7.19,-1.59877936908855)); +#52625=CARTESIAN_POINT('',(1.08,7.17154879938732,-1.60006791379186)); +#52626=CARTESIAN_POINT('',(1.0634965625708,7.15499999999984,-1.60000000000025)); +#52627=CARTESIAN_POINT('',(1.04500000000004,7.15499999999982,-1.60000000000025)); +#52628=CARTESIAN_POINT('',(1.08,7.19,-1.59877936908855)); +#52629=CARTESIAN_POINT('',(1.08,7.155,-1.0976)); +#52630=CARTESIAN_POINT('',(1.08,7.5374,-1.42344658967066)); +#52631=CARTESIAN_POINT('',(1.08,7.5374,-1.42344658967066)); +#52632=CARTESIAN_POINT('',(1.08,7.59787264997766,-1.35247840376812)); +#52633=CARTESIAN_POINT('',(1.11755793324588,7.63403033891439,-1.27081952584833)); +#52634=CARTESIAN_POINT('',(1.15634767836791,7.64917868677046,-1.18811621701012)); +#52635=CARTESIAN_POINT('',(1.15634767836792,7.64917868677046,-1.18811621701012)); +#52636=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52637=CARTESIAN_POINT('',(1.24365232163208,7.64917868677046,-1.18811621701012)); +#52638=CARTESIAN_POINT('',(1.24365232163208,7.64917868677046,-1.18811621701012)); +#52639=CARTESIAN_POINT('',(1.28249898034617,7.63400811275933,-1.27094087086789)); +#52640=CARTESIAN_POINT('',(1.32,7.59805032943425,-1.35226988655065)); +#52641=CARTESIAN_POINT('',(1.32,7.5374,-1.42344658967066)); +#52642=CARTESIAN_POINT('',(1.32,7.5374,-1.42344658967066)); +#52643=CARTESIAN_POINT('',(1.32,7.155,-1.0976)); +#52644=CARTESIAN_POINT('',(1.32,7.19,-1.59877936908855)); +#52645=CARTESIAN_POINT('',(1.355,7.155,-1.6)); +#52646=CARTESIAN_POINT('',(1.33650335939821,7.155,-1.6)); +#52647=CARTESIAN_POINT('',(1.31999999999986,7.17154844824344,-1.6000679383141)); +#52648=CARTESIAN_POINT('',(1.31999999999985,7.18999999999997,-1.59877936908857)); +#52649=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52650=CARTESIAN_POINT('',(1.88,7.19,-1.59877936908855)); +#52651=CARTESIAN_POINT('',(1.88,7.17154879938732,-1.60006791379186)); +#52652=CARTESIAN_POINT('',(1.8634965625708,7.15499999999984,-1.60000000000025)); +#52653=CARTESIAN_POINT('',(1.84500000000004,7.15499999999982,-1.60000000000025)); +#52654=CARTESIAN_POINT('',(1.88,7.19,-1.59877936908855)); +#52655=CARTESIAN_POINT('',(1.88,7.155,-1.0976)); +#52656=CARTESIAN_POINT('',(1.88,7.5374,-1.42344658967066)); +#52657=CARTESIAN_POINT('',(1.88,7.5374,-1.42344658967066)); +#52658=CARTESIAN_POINT('',(1.88,7.59787264997766,-1.35247840376812)); +#52659=CARTESIAN_POINT('',(1.91755793324588,7.63403033891439,-1.27081952584833)); +#52660=CARTESIAN_POINT('',(1.95634767836791,7.64917868677046,-1.18811621701012)); +#52661=CARTESIAN_POINT('',(1.95634767836792,7.64917868677046,-1.18811621701012)); +#52662=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52663=CARTESIAN_POINT('',(2.04365232163208,7.64917868677046,-1.18811621701012)); +#52664=CARTESIAN_POINT('',(2.04365232163208,7.64917868677046,-1.18811621701012)); +#52665=CARTESIAN_POINT('',(2.08249898034617,7.63400811275933,-1.27094087086789)); +#52666=CARTESIAN_POINT('',(2.12,7.59805032943425,-1.35226988655065)); +#52667=CARTESIAN_POINT('',(2.12,7.5374,-1.42344658967066)); +#52668=CARTESIAN_POINT('',(2.12,7.5374,-1.42344658967066)); +#52669=CARTESIAN_POINT('',(2.12,7.155,-1.0976)); +#52670=CARTESIAN_POINT('',(2.12,7.19,-1.59877936908855)); +#52671=CARTESIAN_POINT('',(2.155,7.155,-1.6)); +#52672=CARTESIAN_POINT('',(2.13650335939821,7.155,-1.6)); +#52673=CARTESIAN_POINT('',(2.11999999999986,7.17154844824344,-1.6000679383141)); +#52674=CARTESIAN_POINT('',(2.11999999999985,7.18999999999997,-1.59877936908857)); +#52675=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52676=CARTESIAN_POINT('',(2.68,7.19,-1.59877936908855)); +#52677=CARTESIAN_POINT('',(2.68,7.17154879938732,-1.60006791379186)); +#52678=CARTESIAN_POINT('',(2.6634965625708,7.15499999999984,-1.60000000000025)); +#52679=CARTESIAN_POINT('',(2.64500000000004,7.15499999999982,-1.60000000000025)); +#52680=CARTESIAN_POINT('',(2.68,7.19,-1.59877936908855)); +#52681=CARTESIAN_POINT('',(2.68,7.155,-1.0976)); +#52682=CARTESIAN_POINT('',(2.68,7.5374,-1.42344658967066)); +#52683=CARTESIAN_POINT('',(2.68,7.5374,-1.42344658967066)); +#52684=CARTESIAN_POINT('',(2.68,7.59787264997766,-1.35247840376812)); +#52685=CARTESIAN_POINT('',(2.71755793324588,7.63403033891439,-1.27081952584834)); +#52686=CARTESIAN_POINT('',(2.75634767836791,7.64917868677046,-1.18811621701012)); +#52687=CARTESIAN_POINT('',(2.75634767836792,7.64917868677046,-1.18811621701012)); +#52688=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52689=CARTESIAN_POINT('',(2.84365232163208,7.64917868677046,-1.18811621701012)); +#52690=CARTESIAN_POINT('',(2.84365232163208,7.64917868677046,-1.18811621701012)); +#52691=CARTESIAN_POINT('',(2.88249898034617,7.63400811275933,-1.27094087086789)); +#52692=CARTESIAN_POINT('',(2.92,7.59805032943425,-1.35226988655065)); +#52693=CARTESIAN_POINT('',(2.92,7.5374,-1.42344658967066)); +#52694=CARTESIAN_POINT('',(2.92,7.5374,-1.42344658967066)); +#52695=CARTESIAN_POINT('',(2.92,7.155,-1.0976)); +#52696=CARTESIAN_POINT('',(2.92,7.19,-1.59877936908855)); +#52697=CARTESIAN_POINT('',(2.955,7.155,-1.6)); +#52698=CARTESIAN_POINT('',(2.93650335939821,7.155,-1.6)); +#52699=CARTESIAN_POINT('',(2.91999999999986,7.17154844824344,-1.6000679383141)); +#52700=CARTESIAN_POINT('',(2.91999999999985,7.18999999999997,-1.59877936908857)); +#52701=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52702=CARTESIAN_POINT('',(3.48,7.19,-1.59877936908855)); +#52703=CARTESIAN_POINT('',(3.48,7.17154879938732,-1.60006791379186)); +#52704=CARTESIAN_POINT('',(3.4634965625708,7.15499999999984,-1.60000000000025)); +#52705=CARTESIAN_POINT('',(3.44500000000004,7.15499999999982,-1.60000000000025)); +#52706=CARTESIAN_POINT('',(3.48,7.19,-1.59877936908855)); +#52707=CARTESIAN_POINT('',(3.48,7.155,-1.0976)); +#52708=CARTESIAN_POINT('',(3.48,7.5374,-1.42344658967066)); +#52709=CARTESIAN_POINT('',(3.48,7.5374,-1.42344658967066)); +#52710=CARTESIAN_POINT('',(3.48,7.59787264997766,-1.35247840376812)); +#52711=CARTESIAN_POINT('',(3.51755793324588,7.63403033891439,-1.27081952584834)); +#52712=CARTESIAN_POINT('',(3.55634767836791,7.64917868677046,-1.18811621701012)); +#52713=CARTESIAN_POINT('',(3.55634767836792,7.64917868677046,-1.18811621701012)); +#52714=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52715=CARTESIAN_POINT('',(3.64365232163208,7.64917868677046,-1.18811621701012)); +#52716=CARTESIAN_POINT('',(3.64365232163208,7.64917868677046,-1.18811621701012)); +#52717=CARTESIAN_POINT('',(3.68249898034617,7.63400811275933,-1.27094087086789)); +#52718=CARTESIAN_POINT('',(3.72,7.59805032943425,-1.35226988655065)); +#52719=CARTESIAN_POINT('',(3.72,7.5374,-1.42344658967066)); +#52720=CARTESIAN_POINT('',(3.72,7.5374,-1.42344658967066)); +#52721=CARTESIAN_POINT('',(3.72,7.155,-1.0976)); +#52722=CARTESIAN_POINT('',(3.72,7.19,-1.59877936908855)); +#52723=CARTESIAN_POINT('',(3.755,7.155,-1.6)); +#52724=CARTESIAN_POINT('',(3.73650335939821,7.155,-1.6)); +#52725=CARTESIAN_POINT('',(3.71999999999986,7.17154844824344,-1.6000679383141)); +#52726=CARTESIAN_POINT('',(3.71999999999985,7.18999999999997,-1.59877936908857)); +#52727=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52728=CARTESIAN_POINT('',(4.28,7.19,-1.59877936908855)); +#52729=CARTESIAN_POINT('',(4.28,7.17154879938732,-1.60006791379186)); +#52730=CARTESIAN_POINT('',(4.2634965625708,7.15499999999984,-1.60000000000025)); +#52731=CARTESIAN_POINT('',(4.24500000000004,7.15499999999982,-1.60000000000025)); +#52732=CARTESIAN_POINT('',(4.28,7.19,-1.59877936908855)); +#52733=CARTESIAN_POINT('',(4.28,7.155,-1.0976)); +#52734=CARTESIAN_POINT('',(4.28,7.5374,-1.42344658967066)); +#52735=CARTESIAN_POINT('',(4.28,7.5374,-1.42344658967066)); +#52736=CARTESIAN_POINT('',(4.28,7.59787264997766,-1.35247840376812)); +#52737=CARTESIAN_POINT('',(4.31755793324588,7.63403033891439,-1.27081952584834)); +#52738=CARTESIAN_POINT('',(4.35634767836791,7.64917868677046,-1.18811621701012)); +#52739=CARTESIAN_POINT('',(4.35634767836792,7.64917868677046,-1.18811621701012)); +#52740=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52741=CARTESIAN_POINT('',(4.44365232163208,7.64917868677046,-1.18811621701012)); +#52742=CARTESIAN_POINT('',(4.44365232163208,7.64917868677046,-1.18811621701012)); +#52743=CARTESIAN_POINT('',(4.48249898034617,7.63400811275933,-1.27094087086789)); +#52744=CARTESIAN_POINT('',(4.52,7.59805032943425,-1.35226988655065)); +#52745=CARTESIAN_POINT('',(4.52,7.5374,-1.42344658967066)); +#52746=CARTESIAN_POINT('',(4.52,7.5374,-1.42344658967066)); +#52747=CARTESIAN_POINT('',(4.52,7.155,-1.0976)); +#52748=CARTESIAN_POINT('',(4.52,7.19,-1.59877936908855)); +#52749=CARTESIAN_POINT('',(4.555,7.155,-1.6)); +#52750=CARTESIAN_POINT('',(4.53650335939821,7.155,-1.6)); +#52751=CARTESIAN_POINT('',(4.51999999999986,7.17154844824344,-1.6000679383141)); +#52752=CARTESIAN_POINT('',(4.51999999999985,7.18999999999997,-1.59877936908857)); +#52753=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52754=CARTESIAN_POINT('',(5.08,7.19,-1.59877936908855)); +#52755=CARTESIAN_POINT('',(5.08,7.17154879938732,-1.60006791379186)); +#52756=CARTESIAN_POINT('',(5.0634965625708,7.15499999999984,-1.60000000000025)); +#52757=CARTESIAN_POINT('',(5.04500000000004,7.15499999999982,-1.60000000000025)); +#52758=CARTESIAN_POINT('',(5.08,7.19,-1.59877936908855)); +#52759=CARTESIAN_POINT('',(5.08,7.155,-1.0976)); +#52760=CARTESIAN_POINT('',(5.08,7.5374,-1.42344658967066)); +#52761=CARTESIAN_POINT('',(5.08,7.5374,-1.42344658967066)); +#52762=CARTESIAN_POINT('',(5.08,7.59787264997766,-1.35247840376812)); +#52763=CARTESIAN_POINT('',(5.11755793324588,7.63403033891439,-1.27081952584834)); +#52764=CARTESIAN_POINT('',(5.15634767836791,7.64917868677046,-1.18811621701012)); +#52765=CARTESIAN_POINT('',(5.15634767836791,7.64917868677046,-1.18811621701012)); +#52766=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52767=CARTESIAN_POINT('',(5.24365232163209,7.64917868677046,-1.18811621701012)); +#52768=CARTESIAN_POINT('',(5.24365232163209,7.64917868677046,-1.18811621701012)); +#52769=CARTESIAN_POINT('',(5.28249898034617,7.63400811275933,-1.27094087086789)); +#52770=CARTESIAN_POINT('',(5.32,7.59805032943425,-1.35226988655065)); +#52771=CARTESIAN_POINT('',(5.32,7.5374,-1.42344658967066)); +#52772=CARTESIAN_POINT('',(5.32,7.5374,-1.42344658967066)); +#52773=CARTESIAN_POINT('',(5.32,7.155,-1.0976)); +#52774=CARTESIAN_POINT('',(5.32,7.19,-1.59877936908855)); +#52775=CARTESIAN_POINT('',(5.355,7.155,-1.6)); +#52776=CARTESIAN_POINT('',(5.33650335939821,7.155,-1.6)); +#52777=CARTESIAN_POINT('',(5.31999999999986,7.17154844824344,-1.6000679383141)); +#52778=CARTESIAN_POINT('',(5.31999999999985,7.18999999999997,-1.59877936908857)); +#52779=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52780=CARTESIAN_POINT('',(5.88,7.19,-1.59877936908855)); +#52781=CARTESIAN_POINT('',(5.88,7.17154879938732,-1.60006791379186)); +#52782=CARTESIAN_POINT('',(5.8634965625708,7.15499999999984,-1.60000000000025)); +#52783=CARTESIAN_POINT('',(5.84500000000004,7.15499999999982,-1.60000000000025)); +#52784=CARTESIAN_POINT('',(5.88,7.19,-1.59877936908855)); +#52785=CARTESIAN_POINT('',(5.88,7.155,-1.0976)); +#52786=CARTESIAN_POINT('',(5.88,7.5374,-1.42344658967066)); +#52787=CARTESIAN_POINT('',(5.88,7.5374,-1.42344658967066)); +#52788=CARTESIAN_POINT('',(5.88,7.59787264997766,-1.35247840376812)); +#52789=CARTESIAN_POINT('',(5.91755793324588,7.63403033891439,-1.27081952584834)); +#52790=CARTESIAN_POINT('',(5.95634767836791,7.64917868677046,-1.18811621701012)); +#52791=CARTESIAN_POINT('',(5.95634767836792,7.64917868677046,-1.18811621701012)); +#52792=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52793=CARTESIAN_POINT('',(6.04365232163208,7.64917868677046,-1.18811621701012)); +#52794=CARTESIAN_POINT('',(6.04365232163208,7.64917868677046,-1.18811621701012)); +#52795=CARTESIAN_POINT('',(6.08249898034617,7.63400811275933,-1.27094087086789)); +#52796=CARTESIAN_POINT('',(6.12,7.59805032943425,-1.35226988655065)); +#52797=CARTESIAN_POINT('',(6.12,7.5374,-1.42344658967066)); +#52798=CARTESIAN_POINT('',(6.12,7.5374,-1.42344658967066)); +#52799=CARTESIAN_POINT('',(6.12,7.155,-1.0976)); +#52800=CARTESIAN_POINT('',(6.12,7.19,-1.59877936908855)); +#52801=CARTESIAN_POINT('',(6.155,7.155,-1.6)); +#52802=CARTESIAN_POINT('',(6.13650335939821,7.155,-1.6)); +#52803=CARTESIAN_POINT('',(6.11999999999986,7.17154844824344,-1.6000679383141)); +#52804=CARTESIAN_POINT('',(6.11999999999985,7.18999999999997,-1.59877936908857)); +#52805=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52806=CARTESIAN_POINT('',(6.68,7.19,-1.59877936908855)); +#52807=CARTESIAN_POINT('',(6.68,7.17154879938732,-1.60006791379186)); +#52808=CARTESIAN_POINT('',(6.6634965625708,7.15499999999984,-1.60000000000025)); +#52809=CARTESIAN_POINT('',(6.64500000000004,7.15499999999982,-1.60000000000025)); +#52810=CARTESIAN_POINT('',(6.68,7.19,-1.59877936908855)); +#52811=CARTESIAN_POINT('',(6.68,7.155,-1.0976)); +#52812=CARTESIAN_POINT('',(6.68,7.5374,-1.42344658967066)); +#52813=CARTESIAN_POINT('',(6.68,7.5374,-1.42344658967066)); +#52814=CARTESIAN_POINT('',(6.68,7.59787264997766,-1.35247840376812)); +#52815=CARTESIAN_POINT('',(6.71755793324588,7.63403033891439,-1.27081952584833)); +#52816=CARTESIAN_POINT('',(6.75634767836791,7.64917868677046,-1.18811621701012)); +#52817=CARTESIAN_POINT('',(6.75634767836792,7.64917868677046,-1.18811621701012)); +#52818=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52819=CARTESIAN_POINT('',(6.84365232163208,7.64917868677046,-1.18811621701012)); +#52820=CARTESIAN_POINT('',(6.84365232163208,7.64917868677046,-1.18811621701012)); +#52821=CARTESIAN_POINT('',(6.88249898034617,7.63400811275933,-1.27094087086789)); +#52822=CARTESIAN_POINT('',(6.92,7.59805032943425,-1.35226988655065)); +#52823=CARTESIAN_POINT('',(6.92,7.5374,-1.42344658967066)); +#52824=CARTESIAN_POINT('',(6.92,7.5374,-1.42344658967066)); +#52825=CARTESIAN_POINT('',(6.92,7.155,-1.0976)); +#52826=CARTESIAN_POINT('',(6.92,7.19,-1.59877936908855)); +#52827=CARTESIAN_POINT('',(6.955,7.155,-1.6)); +#52828=CARTESIAN_POINT('',(6.93650335939821,7.155,-1.6)); +#52829=CARTESIAN_POINT('',(6.91999999999986,7.17154844824344,-1.6000679383141)); +#52830=CARTESIAN_POINT('',(6.91999999999984,7.18999999999997,-1.59877936908857)); +#52831=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#52832=CARTESIAN_POINT('',(7.48,7.19,-1.59877936908855)); +#52833=CARTESIAN_POINT('',(7.48,7.17154879938732,-1.60006791379186)); +#52834=CARTESIAN_POINT('',(7.4634965625708,7.15499999999984,-1.60000000000025)); +#52835=CARTESIAN_POINT('',(7.44500000000004,7.15499999999982,-1.60000000000025)); +#52836=CARTESIAN_POINT('',(7.48,7.19,-1.59877936908855)); +#52837=CARTESIAN_POINT('',(7.48,7.155,-1.0976)); +#52838=CARTESIAN_POINT('',(7.48,7.5374,-1.42344658967066)); +#52839=CARTESIAN_POINT('',(7.48,7.5374,-1.42344658967066)); +#52840=CARTESIAN_POINT('',(7.48,7.59787264997766,-1.35247840376812)); +#52841=CARTESIAN_POINT('',(7.51755793324588,7.63403033891439,-1.27081952584834)); +#52842=CARTESIAN_POINT('',(7.55634767836791,7.64917868677046,-1.18811621701012)); +#52843=CARTESIAN_POINT('',(7.55634767836792,7.64917868677046,-1.18811621701012)); +#52844=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52845=CARTESIAN_POINT('',(7.64365232163208,7.64917868677046,-1.18811621701012)); +#52846=CARTESIAN_POINT('',(7.64365232163208,7.64917868677046,-1.18811621701012)); +#52847=CARTESIAN_POINT('',(7.68249898034617,7.63400811275933,-1.27094087086789)); +#52848=CARTESIAN_POINT('',(7.72,7.59805032943425,-1.35226988655065)); +#52849=CARTESIAN_POINT('',(7.72,7.5374,-1.42344658967066)); +#52850=CARTESIAN_POINT('',(7.72,7.5374,-1.42344658967066)); +#52851=CARTESIAN_POINT('',(7.72,7.155,-1.0976)); +#52852=CARTESIAN_POINT('',(7.72,7.19,-1.59877936908855)); +#52853=CARTESIAN_POINT('',(7.755,7.155,-1.6)); +#52854=CARTESIAN_POINT('',(7.73650335939821,7.155,-1.6)); +#52855=CARTESIAN_POINT('',(7.71999999999986,7.17154844824344,-1.6000679383141)); +#52856=CARTESIAN_POINT('',(7.71999999999985,7.18999999999997,-1.59877936908857)); +#52857=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52858=CARTESIAN_POINT('',(-7.6,7.5374,-1.12358076211353)); +#52859=CARTESIAN_POINT('',(-7.72,7.5374,-1.12358076211353)); +#52860=CARTESIAN_POINT('',(-7.72,7.64917868677046,-1.18811621701012)); +#52861=CARTESIAN_POINT('',(-7.72,7.4924,-1.0976)); +#52862=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52863=CARTESIAN_POINT('',(-7.48,7.4924,-1.0976)); +#52864=CARTESIAN_POINT('',(-7.48,7.64917868677046,-1.18811621701012)); +#52865=CARTESIAN_POINT('',(-7.48,7.5374,-1.12358076211353)); +#52866=CARTESIAN_POINT('',(-7.6,7.5374,-1.12358076211353)); +#52867=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52868=CARTESIAN_POINT('',(-6.8,7.5374,-1.12358076211353)); +#52869=CARTESIAN_POINT('',(-6.92,7.5374,-1.12358076211353)); +#52870=CARTESIAN_POINT('',(-6.92,7.64917868677046,-1.18811621701012)); +#52871=CARTESIAN_POINT('',(-6.92,7.4924,-1.0976)); +#52872=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52873=CARTESIAN_POINT('',(-6.68,7.4924,-1.0976)); +#52874=CARTESIAN_POINT('',(-6.68,7.64917868677046,-1.18811621701012)); +#52875=CARTESIAN_POINT('',(-6.68,7.5374,-1.12358076211353)); +#52876=CARTESIAN_POINT('',(-6.8,7.5374,-1.12358076211353)); +#52877=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52878=CARTESIAN_POINT('',(-6.,7.5374,-1.12358076211353)); +#52879=CARTESIAN_POINT('',(-6.12,7.5374,-1.12358076211353)); +#52880=CARTESIAN_POINT('',(-6.12,7.64917868677046,-1.18811621701012)); +#52881=CARTESIAN_POINT('',(-6.12,7.4924,-1.0976)); +#52882=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52883=CARTESIAN_POINT('',(-5.88,7.4924,-1.0976)); +#52884=CARTESIAN_POINT('',(-5.88,7.64917868677046,-1.18811621701012)); +#52885=CARTESIAN_POINT('',(-5.88,7.5374,-1.12358076211353)); +#52886=CARTESIAN_POINT('',(-6.,7.5374,-1.12358076211353)); +#52887=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52888=CARTESIAN_POINT('',(-5.2,7.5374,-1.12358076211353)); +#52889=CARTESIAN_POINT('',(-5.32,7.5374,-1.12358076211353)); +#52890=CARTESIAN_POINT('',(-5.32,7.64917868677046,-1.18811621701012)); +#52891=CARTESIAN_POINT('',(-5.32,7.4924,-1.0976)); +#52892=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52893=CARTESIAN_POINT('',(-5.08,7.4924,-1.0976)); +#52894=CARTESIAN_POINT('',(-5.08,7.64917868677046,-1.18811621701012)); +#52895=CARTESIAN_POINT('',(-5.08,7.5374,-1.12358076211353)); +#52896=CARTESIAN_POINT('',(-5.2,7.5374,-1.12358076211353)); +#52897=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52898=CARTESIAN_POINT('',(-4.4,7.5374,-1.12358076211353)); +#52899=CARTESIAN_POINT('',(-4.52,7.5374,-1.12358076211353)); +#52900=CARTESIAN_POINT('',(-4.52,7.64917868677046,-1.18811621701012)); +#52901=CARTESIAN_POINT('',(-4.52,7.4924,-1.0976)); +#52902=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52903=CARTESIAN_POINT('',(-4.28,7.4924,-1.0976)); +#52904=CARTESIAN_POINT('',(-4.28,7.64917868677046,-1.18811621701012)); +#52905=CARTESIAN_POINT('',(-4.28,7.5374,-1.12358076211353)); +#52906=CARTESIAN_POINT('',(-4.4,7.5374,-1.12358076211353)); +#52907=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52908=CARTESIAN_POINT('',(-3.6,7.5374,-1.12358076211353)); +#52909=CARTESIAN_POINT('',(-3.72,7.5374,-1.12358076211353)); +#52910=CARTESIAN_POINT('',(-3.72,7.64917868677046,-1.18811621701012)); +#52911=CARTESIAN_POINT('',(-3.72,7.4924,-1.0976)); +#52912=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52913=CARTESIAN_POINT('',(-3.48,7.4924,-1.0976)); +#52914=CARTESIAN_POINT('',(-3.48,7.64917868677046,-1.18811621701012)); +#52915=CARTESIAN_POINT('',(-3.48,7.5374,-1.12358076211353)); +#52916=CARTESIAN_POINT('',(-3.6,7.5374,-1.12358076211353)); +#52917=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52918=CARTESIAN_POINT('',(-2.8,7.5374,-1.12358076211353)); +#52919=CARTESIAN_POINT('',(-2.92,7.5374,-1.12358076211353)); +#52920=CARTESIAN_POINT('',(-2.92,7.64917868677046,-1.18811621701012)); +#52921=CARTESIAN_POINT('',(-2.92,7.4924,-1.0976)); +#52922=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52923=CARTESIAN_POINT('',(-2.68,7.4924,-1.0976)); +#52924=CARTESIAN_POINT('',(-2.68,7.64917868677046,-1.18811621701012)); +#52925=CARTESIAN_POINT('',(-2.68,7.5374,-1.12358076211353)); +#52926=CARTESIAN_POINT('',(-2.8,7.5374,-1.12358076211353)); +#52927=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52928=CARTESIAN_POINT('',(-2.,7.5374,-1.12358076211353)); +#52929=CARTESIAN_POINT('',(-2.12,7.5374,-1.12358076211353)); +#52930=CARTESIAN_POINT('',(-2.12,7.64917868677046,-1.18811621701012)); +#52931=CARTESIAN_POINT('',(-2.12,7.4924,-1.0976)); +#52932=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52933=CARTESIAN_POINT('',(-1.88,7.4924,-1.0976)); +#52934=CARTESIAN_POINT('',(-1.88,7.64917868677046,-1.18811621701012)); +#52935=CARTESIAN_POINT('',(-1.88,7.5374,-1.12358076211353)); +#52936=CARTESIAN_POINT('',(-2.,7.5374,-1.12358076211353)); +#52937=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52938=CARTESIAN_POINT('',(-1.2,7.5374,-1.12358076211353)); +#52939=CARTESIAN_POINT('',(-1.32,7.5374,-1.12358076211353)); +#52940=CARTESIAN_POINT('',(-1.32,7.64917868677046,-1.18811621701012)); +#52941=CARTESIAN_POINT('',(-1.32,7.4924,-1.0976)); +#52942=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52943=CARTESIAN_POINT('',(-1.08,7.4924,-1.0976)); +#52944=CARTESIAN_POINT('',(-1.08,7.64917868677046,-1.18811621701012)); +#52945=CARTESIAN_POINT('',(-1.08,7.5374,-1.12358076211353)); +#52946=CARTESIAN_POINT('',(-1.2,7.5374,-1.12358076211353)); +#52947=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52948=CARTESIAN_POINT('',(-0.400000000000001,7.5374,-1.12358076211353)); +#52949=CARTESIAN_POINT('',(-0.520000000000001,7.5374,-1.12358076211353)); +#52950=CARTESIAN_POINT('',(-0.520000000000001,7.64917868677046,-1.18811621701012)); +#52951=CARTESIAN_POINT('',(-0.520000000000001,7.4924,-1.0976)); +#52952=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52953=CARTESIAN_POINT('',(-0.280000000000001,7.4924,-1.0976)); +#52954=CARTESIAN_POINT('',(-0.280000000000001,7.64917868677046,-1.18811621701012)); +#52955=CARTESIAN_POINT('',(-0.280000000000001,7.5374,-1.12358076211353)); +#52956=CARTESIAN_POINT('',(-0.400000000000001,7.5374,-1.12358076211353)); +#52957=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52958=CARTESIAN_POINT('',(0.399999999999999,7.5374,-1.12358076211353)); +#52959=CARTESIAN_POINT('',(0.279999999999999,7.5374,-1.12358076211353)); +#52960=CARTESIAN_POINT('',(0.279999999999999,7.64917868677046,-1.18811621701012)); +#52961=CARTESIAN_POINT('',(0.279999999999999,7.4924,-1.0976)); +#52962=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52963=CARTESIAN_POINT('',(0.52,7.4924,-1.0976)); +#52964=CARTESIAN_POINT('',(0.52,7.64917868677046,-1.18811621701012)); +#52965=CARTESIAN_POINT('',(0.52,7.5374,-1.12358076211353)); +#52966=CARTESIAN_POINT('',(0.399999999999999,7.5374,-1.12358076211353)); +#52967=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52968=CARTESIAN_POINT('',(1.2,7.5374,-1.12358076211353)); +#52969=CARTESIAN_POINT('',(1.08,7.5374,-1.12358076211353)); +#52970=CARTESIAN_POINT('',(1.08,7.64917868677046,-1.18811621701012)); +#52971=CARTESIAN_POINT('',(1.08,7.4924,-1.0976)); +#52972=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52973=CARTESIAN_POINT('',(1.32,7.4924,-1.0976)); +#52974=CARTESIAN_POINT('',(1.32,7.64917868677046,-1.18811621701012)); +#52975=CARTESIAN_POINT('',(1.32,7.5374,-1.12358076211353)); +#52976=CARTESIAN_POINT('',(1.2,7.5374,-1.12358076211353)); +#52977=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52978=CARTESIAN_POINT('',(2.,7.5374,-1.12358076211353)); +#52979=CARTESIAN_POINT('',(1.88,7.5374,-1.12358076211353)); +#52980=CARTESIAN_POINT('',(1.88,7.64917868677046,-1.18811621701012)); +#52981=CARTESIAN_POINT('',(1.88,7.4924,-1.0976)); +#52982=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52983=CARTESIAN_POINT('',(2.12,7.4924,-1.0976)); +#52984=CARTESIAN_POINT('',(2.12,7.64917868677046,-1.18811621701012)); +#52985=CARTESIAN_POINT('',(2.12,7.5374,-1.12358076211353)); +#52986=CARTESIAN_POINT('',(2.,7.5374,-1.12358076211353)); +#52987=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52988=CARTESIAN_POINT('',(2.8,7.5374,-1.12358076211353)); +#52989=CARTESIAN_POINT('',(2.68,7.5374,-1.12358076211353)); +#52990=CARTESIAN_POINT('',(2.68,7.64917868677046,-1.18811621701012)); +#52991=CARTESIAN_POINT('',(2.68,7.4924,-1.0976)); +#52992=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#52993=CARTESIAN_POINT('',(2.92,7.4924,-1.0976)); +#52994=CARTESIAN_POINT('',(2.92,7.64917868677046,-1.18811621701012)); +#52995=CARTESIAN_POINT('',(2.92,7.5374,-1.12358076211353)); +#52996=CARTESIAN_POINT('',(2.8,7.5374,-1.12358076211353)); +#52997=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#52998=CARTESIAN_POINT('',(3.6,7.5374,-1.12358076211353)); +#52999=CARTESIAN_POINT('',(3.48,7.5374,-1.12358076211353)); +#53000=CARTESIAN_POINT('',(3.48,7.64917868677046,-1.18811621701012)); +#53001=CARTESIAN_POINT('',(3.48,7.4924,-1.0976)); +#53002=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#53003=CARTESIAN_POINT('',(3.72,7.4924,-1.0976)); +#53004=CARTESIAN_POINT('',(3.72,7.64917868677046,-1.18811621701012)); +#53005=CARTESIAN_POINT('',(3.72,7.5374,-1.12358076211353)); +#53006=CARTESIAN_POINT('',(3.6,7.5374,-1.12358076211353)); +#53007=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#53008=CARTESIAN_POINT('',(4.4,7.5374,-1.12358076211353)); +#53009=CARTESIAN_POINT('',(4.28,7.5374,-1.12358076211353)); +#53010=CARTESIAN_POINT('',(4.28,7.64917868677046,-1.18811621701012)); +#53011=CARTESIAN_POINT('',(4.28,7.4924,-1.0976)); +#53012=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#53013=CARTESIAN_POINT('',(4.52,7.4924,-1.0976)); +#53014=CARTESIAN_POINT('',(4.52,7.64917868677046,-1.18811621701012)); +#53015=CARTESIAN_POINT('',(4.52,7.5374,-1.12358076211353)); +#53016=CARTESIAN_POINT('',(4.4,7.5374,-1.12358076211353)); +#53017=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#53018=CARTESIAN_POINT('',(5.2,7.5374,-1.12358076211353)); +#53019=CARTESIAN_POINT('',(5.08,7.5374,-1.12358076211353)); +#53020=CARTESIAN_POINT('',(5.08,7.64917868677046,-1.18811621701012)); +#53021=CARTESIAN_POINT('',(5.08,7.4924,-1.0976)); +#53022=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#53023=CARTESIAN_POINT('',(5.32,7.4924,-1.0976)); +#53024=CARTESIAN_POINT('',(5.32,7.64917868677046,-1.18811621701012)); +#53025=CARTESIAN_POINT('',(5.32,7.5374,-1.12358076211353)); +#53026=CARTESIAN_POINT('',(5.2,7.5374,-1.12358076211353)); +#53027=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#53028=CARTESIAN_POINT('',(6.,7.5374,-1.12358076211353)); +#53029=CARTESIAN_POINT('',(5.88,7.5374,-1.12358076211353)); +#53030=CARTESIAN_POINT('',(5.88,7.64917868677046,-1.18811621701012)); +#53031=CARTESIAN_POINT('',(5.88,7.4924,-1.0976)); +#53032=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#53033=CARTESIAN_POINT('',(6.12,7.4924,-1.0976)); +#53034=CARTESIAN_POINT('',(6.12,7.64917868677046,-1.18811621701012)); +#53035=CARTESIAN_POINT('',(6.12,7.5374,-1.12358076211353)); +#53036=CARTESIAN_POINT('',(6.,7.5374,-1.12358076211353)); +#53037=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#53038=CARTESIAN_POINT('',(6.8,7.5374,-1.12358076211353)); +#53039=CARTESIAN_POINT('',(6.68,7.5374,-1.12358076211353)); +#53040=CARTESIAN_POINT('',(6.68,7.64917868677046,-1.18811621701012)); +#53041=CARTESIAN_POINT('',(6.68,7.4924,-1.0976)); +#53042=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#53043=CARTESIAN_POINT('',(6.92,7.4924,-1.0976)); +#53044=CARTESIAN_POINT('',(6.92,7.64917868677046,-1.18811621701012)); +#53045=CARTESIAN_POINT('',(6.92,7.5374,-1.12358076211353)); +#53046=CARTESIAN_POINT('',(6.8,7.5374,-1.12358076211353)); +#53047=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53048=CARTESIAN_POINT('',(-7.72,7.155,-1.0976)); +#53049=CARTESIAN_POINT('',(-7.72,7.19,-1.43317973717136)); +#53050=CARTESIAN_POINT('',(-7.72,7.19,-1.43317973717136)); +#53051=CARTESIAN_POINT('',(-7.72,7.17159323925028,-1.43509950929965)); +#53052=CARTESIAN_POINT('',(-7.73649246073986,7.15499999999982,-1.43500000000041)); +#53053=CARTESIAN_POINT('',(-7.75499999999995,7.15499999999979,-1.43500000000041)); +#53054=CARTESIAN_POINT('',(-7.445,7.155,-1.435)); +#53055=CARTESIAN_POINT('',(-7.46350770821694,7.155,-1.435)); +#53056=CARTESIAN_POINT('',(-7.48000000000012,7.17159247157791,-1.43509958936568)); +#53057=CARTESIAN_POINT('',(-7.48000000000014,7.18999999999997,-1.43317973717138)); +#53058=CARTESIAN_POINT('',(-7.48,7.19,-1.43317973717136)); +#53059=CARTESIAN_POINT('',(-7.48,7.155,-1.0976)); +#53060=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53061=CARTESIAN_POINT('',(-6.92,7.155,-1.0976)); +#53062=CARTESIAN_POINT('',(-6.92,7.19,-1.43317973717136)); +#53063=CARTESIAN_POINT('',(-6.92,7.19,-1.43317973717136)); +#53064=CARTESIAN_POINT('',(-6.92,7.17159323925028,-1.43509950929965)); +#53065=CARTESIAN_POINT('',(-6.93649246073986,7.15499999999982,-1.43500000000041)); +#53066=CARTESIAN_POINT('',(-6.95499999999995,7.15499999999979,-1.43500000000041)); +#53067=CARTESIAN_POINT('',(-6.645,7.155,-1.435)); +#53068=CARTESIAN_POINT('',(-6.66350770821694,7.155,-1.435)); +#53069=CARTESIAN_POINT('',(-6.68000000000012,7.17159247157791,-1.43509958936568)); +#53070=CARTESIAN_POINT('',(-6.68000000000014,7.18999999999997,-1.43317973717138)); +#53071=CARTESIAN_POINT('',(-6.68,7.19,-1.43317973717136)); +#53072=CARTESIAN_POINT('',(-6.68,7.155,-1.0976)); +#53073=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53074=CARTESIAN_POINT('',(-6.12,7.155,-1.0976)); +#53075=CARTESIAN_POINT('',(-6.12,7.19,-1.43317973717136)); +#53076=CARTESIAN_POINT('',(-6.12,7.19,-1.43317973717136)); +#53077=CARTESIAN_POINT('',(-6.12,7.17159323925028,-1.43509950929965)); +#53078=CARTESIAN_POINT('',(-6.13649246073986,7.15499999999982,-1.43500000000041)); +#53079=CARTESIAN_POINT('',(-6.15499999999995,7.15499999999979,-1.43500000000041)); +#53080=CARTESIAN_POINT('',(-5.845,7.155,-1.435)); +#53081=CARTESIAN_POINT('',(-5.86350770821694,7.155,-1.435)); +#53082=CARTESIAN_POINT('',(-5.88000000000012,7.17159247157791,-1.43509958936568)); +#53083=CARTESIAN_POINT('',(-5.88000000000014,7.18999999999997,-1.43317973717138)); +#53084=CARTESIAN_POINT('',(-5.88,7.19,-1.43317973717136)); +#53085=CARTESIAN_POINT('',(-5.88,7.155,-1.0976)); +#53086=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53087=CARTESIAN_POINT('',(-5.32,7.155,-1.0976)); +#53088=CARTESIAN_POINT('',(-5.32,7.19,-1.43317973717136)); +#53089=CARTESIAN_POINT('',(-5.32,7.19,-1.43317973717136)); +#53090=CARTESIAN_POINT('',(-5.32,7.17159323925028,-1.43509950929965)); +#53091=CARTESIAN_POINT('',(-5.33649246073986,7.15499999999982,-1.43500000000041)); +#53092=CARTESIAN_POINT('',(-5.35499999999995,7.15499999999979,-1.43500000000041)); +#53093=CARTESIAN_POINT('',(-5.045,7.155,-1.435)); +#53094=CARTESIAN_POINT('',(-5.06350770821694,7.155,-1.435)); +#53095=CARTESIAN_POINT('',(-5.08000000000012,7.17159247157791,-1.43509958936568)); +#53096=CARTESIAN_POINT('',(-5.08000000000014,7.18999999999997,-1.43317973717138)); +#53097=CARTESIAN_POINT('',(-5.08,7.19,-1.43317973717136)); +#53098=CARTESIAN_POINT('',(-5.08,7.155,-1.0976)); +#53099=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53100=CARTESIAN_POINT('',(-4.52,7.155,-1.0976)); +#53101=CARTESIAN_POINT('',(-4.52,7.19,-1.43317973717136)); +#53102=CARTESIAN_POINT('',(-4.52,7.19,-1.43317973717136)); +#53103=CARTESIAN_POINT('',(-4.52,7.17159323925028,-1.43509950929965)); +#53104=CARTESIAN_POINT('',(-4.53649246073986,7.15499999999982,-1.43500000000041)); +#53105=CARTESIAN_POINT('',(-4.55499999999995,7.15499999999979,-1.43500000000041)); +#53106=CARTESIAN_POINT('',(-4.245,7.155,-1.435)); +#53107=CARTESIAN_POINT('',(-4.26350770821694,7.155,-1.435)); +#53108=CARTESIAN_POINT('',(-4.28000000000012,7.17159247157791,-1.43509958936568)); +#53109=CARTESIAN_POINT('',(-4.28000000000014,7.18999999999997,-1.43317973717138)); +#53110=CARTESIAN_POINT('',(-4.28,7.19,-1.43317973717136)); +#53111=CARTESIAN_POINT('',(-4.28,7.155,-1.0976)); +#53112=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53113=CARTESIAN_POINT('',(-3.72,7.155,-1.0976)); +#53114=CARTESIAN_POINT('',(-3.72,7.19,-1.43317973717136)); +#53115=CARTESIAN_POINT('',(-3.72,7.19,-1.43317973717136)); +#53116=CARTESIAN_POINT('',(-3.72,7.17159323925028,-1.43509950929965)); +#53117=CARTESIAN_POINT('',(-3.73649246073986,7.15499999999982,-1.43500000000041)); +#53118=CARTESIAN_POINT('',(-3.75499999999995,7.15499999999979,-1.43500000000041)); +#53119=CARTESIAN_POINT('',(-3.445,7.155,-1.435)); +#53120=CARTESIAN_POINT('',(-3.46350770821694,7.155,-1.435)); +#53121=CARTESIAN_POINT('',(-3.48000000000012,7.17159247157791,-1.43509958936568)); +#53122=CARTESIAN_POINT('',(-3.48000000000014,7.18999999999997,-1.43317973717138)); +#53123=CARTESIAN_POINT('',(-3.48,7.19,-1.43317973717136)); +#53124=CARTESIAN_POINT('',(-3.48,7.155,-1.0976)); +#53125=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53126=CARTESIAN_POINT('',(-2.92,7.155,-1.0976)); +#53127=CARTESIAN_POINT('',(-2.92,7.19,-1.43317973717136)); +#53128=CARTESIAN_POINT('',(-2.92,7.19,-1.43317973717136)); +#53129=CARTESIAN_POINT('',(-2.92,7.17159323925028,-1.43509950929965)); +#53130=CARTESIAN_POINT('',(-2.93649246073986,7.15499999999982,-1.43500000000041)); +#53131=CARTESIAN_POINT('',(-2.95499999999995,7.15499999999979,-1.43500000000041)); +#53132=CARTESIAN_POINT('',(-2.645,7.155,-1.435)); +#53133=CARTESIAN_POINT('',(-2.66350770821694,7.155,-1.435)); +#53134=CARTESIAN_POINT('',(-2.68000000000012,7.17159247157791,-1.43509958936568)); +#53135=CARTESIAN_POINT('',(-2.68000000000014,7.18999999999997,-1.43317973717138)); +#53136=CARTESIAN_POINT('',(-2.68,7.19,-1.43317973717136)); +#53137=CARTESIAN_POINT('',(-2.68,7.155,-1.0976)); +#53138=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53139=CARTESIAN_POINT('',(-2.12,7.155,-1.0976)); +#53140=CARTESIAN_POINT('',(-2.12,7.19,-1.43317973717136)); +#53141=CARTESIAN_POINT('',(-2.12,7.19,-1.43317973717136)); +#53142=CARTESIAN_POINT('',(-2.12,7.17159323925028,-1.43509950929965)); +#53143=CARTESIAN_POINT('',(-2.13649246073986,7.15499999999982,-1.43500000000041)); +#53144=CARTESIAN_POINT('',(-2.15499999999995,7.15499999999979,-1.43500000000041)); +#53145=CARTESIAN_POINT('',(-1.845,7.155,-1.435)); +#53146=CARTESIAN_POINT('',(-1.86350770821694,7.155,-1.435)); +#53147=CARTESIAN_POINT('',(-1.88000000000012,7.17159247157791,-1.43509958936568)); +#53148=CARTESIAN_POINT('',(-1.88000000000014,7.18999999999997,-1.43317973717138)); +#53149=CARTESIAN_POINT('',(-1.88,7.19,-1.43317973717136)); +#53150=CARTESIAN_POINT('',(-1.88,7.155,-1.0976)); +#53151=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53152=CARTESIAN_POINT('',(-1.32,7.155,-1.0976)); +#53153=CARTESIAN_POINT('',(-1.32,7.19,-1.43317973717136)); +#53154=CARTESIAN_POINT('',(-1.32,7.19,-1.43317973717136)); +#53155=CARTESIAN_POINT('',(-1.32,7.17159323925028,-1.43509950929965)); +#53156=CARTESIAN_POINT('',(-1.33649246073986,7.15499999999982,-1.43500000000041)); +#53157=CARTESIAN_POINT('',(-1.35499999999995,7.15499999999979,-1.43500000000041)); +#53158=CARTESIAN_POINT('',(-1.045,7.155,-1.435)); +#53159=CARTESIAN_POINT('',(-1.06350770821694,7.155,-1.435)); +#53160=CARTESIAN_POINT('',(-1.08000000000012,7.17159247157791,-1.43509958936568)); +#53161=CARTESIAN_POINT('',(-1.08000000000014,7.18999999999997,-1.43317973717138)); +#53162=CARTESIAN_POINT('',(-1.08,7.19,-1.43317973717136)); +#53163=CARTESIAN_POINT('',(-1.08,7.155,-1.0976)); +#53164=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53165=CARTESIAN_POINT('',(-0.520000000000001,7.155,-1.0976)); +#53166=CARTESIAN_POINT('',(-0.520000000000001,7.19,-1.43317973717136)); +#53167=CARTESIAN_POINT('',(-0.520000000000001,7.19,-1.43317973717136)); +#53168=CARTESIAN_POINT('',(-0.520000000000001,7.17159323925028,-1.43509950929965)); +#53169=CARTESIAN_POINT('',(-0.536492460739861,7.15499999999982,-1.43500000000041)); +#53170=CARTESIAN_POINT('',(-0.554999999999953,7.15499999999979,-1.43500000000041)); +#53171=CARTESIAN_POINT('',(-0.245000000000001,7.155,-1.435)); +#53172=CARTESIAN_POINT('',(-0.263507708216938,7.155,-1.435)); +#53173=CARTESIAN_POINT('',(-0.280000000000125,7.17159247157791,-1.43509958936568)); +#53174=CARTESIAN_POINT('',(-0.280000000000141,7.18999999999997,-1.43317973717138)); +#53175=CARTESIAN_POINT('',(-0.28,7.19,-1.43317973717136)); +#53176=CARTESIAN_POINT('',(-0.280000000000001,7.155,-1.0976)); +#53177=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53178=CARTESIAN_POINT('',(0.279999999999999,7.155,-1.0976)); +#53179=CARTESIAN_POINT('',(0.279999999999999,7.19,-1.43317973717136)); +#53180=CARTESIAN_POINT('',(0.279999999999999,7.19,-1.43317973717136)); +#53181=CARTESIAN_POINT('',(0.28,7.17159323925028,-1.43509950929965)); +#53182=CARTESIAN_POINT('',(0.26350753926014,7.15499999999982,-1.43500000000041)); +#53183=CARTESIAN_POINT('',(0.245000000000047,7.15499999999979,-1.43500000000041)); +#53184=CARTESIAN_POINT('',(0.554999999999999,7.155,-1.435)); +#53185=CARTESIAN_POINT('',(0.536492291783062,7.155,-1.435)); +#53186=CARTESIAN_POINT('',(0.519999999999875,7.17159247157791,-1.43509958936568)); +#53187=CARTESIAN_POINT('',(0.519999999999859,7.18999999999997,-1.43317973717138)); +#53188=CARTESIAN_POINT('',(0.52,7.19,-1.43317973717136)); +#53189=CARTESIAN_POINT('',(0.52,7.155,-1.0976)); +#53190=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53191=CARTESIAN_POINT('',(1.08,7.155,-1.0976)); +#53192=CARTESIAN_POINT('',(1.08,7.19,-1.43317973717136)); +#53193=CARTESIAN_POINT('',(1.08,7.19,-1.43317973717136)); +#53194=CARTESIAN_POINT('',(1.08,7.17159323925028,-1.43509950929965)); +#53195=CARTESIAN_POINT('',(1.06350753926014,7.15499999999982,-1.43500000000041)); +#53196=CARTESIAN_POINT('',(1.04500000000005,7.15499999999979,-1.43500000000041)); +#53197=CARTESIAN_POINT('',(1.355,7.155,-1.435)); +#53198=CARTESIAN_POINT('',(1.33649229178306,7.155,-1.435)); +#53199=CARTESIAN_POINT('',(1.31999999999988,7.17159247157791,-1.43509958936568)); +#53200=CARTESIAN_POINT('',(1.31999999999986,7.18999999999997,-1.43317973717138)); +#53201=CARTESIAN_POINT('',(1.32,7.19,-1.43317973717136)); +#53202=CARTESIAN_POINT('',(1.32,7.155,-1.0976)); +#53203=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53204=CARTESIAN_POINT('',(1.88,7.155,-1.0976)); +#53205=CARTESIAN_POINT('',(1.88,7.19,-1.43317973717136)); +#53206=CARTESIAN_POINT('',(1.88,7.19,-1.43317973717136)); +#53207=CARTESIAN_POINT('',(1.88,7.17159323925028,-1.43509950929965)); +#53208=CARTESIAN_POINT('',(1.86350753926014,7.15499999999982,-1.43500000000041)); +#53209=CARTESIAN_POINT('',(1.84500000000005,7.15499999999979,-1.43500000000041)); +#53210=CARTESIAN_POINT('',(2.155,7.155,-1.435)); +#53211=CARTESIAN_POINT('',(2.13649229178306,7.155,-1.435)); +#53212=CARTESIAN_POINT('',(2.11999999999988,7.17159247157791,-1.43509958936568)); +#53213=CARTESIAN_POINT('',(2.11999999999986,7.18999999999997,-1.43317973717138)); +#53214=CARTESIAN_POINT('',(2.12,7.19,-1.43317973717136)); +#53215=CARTESIAN_POINT('',(2.12,7.155,-1.0976)); +#53216=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53217=CARTESIAN_POINT('',(2.68,7.155,-1.0976)); +#53218=CARTESIAN_POINT('',(2.68,7.19,-1.43317973717136)); +#53219=CARTESIAN_POINT('',(2.68,7.19,-1.43317973717136)); +#53220=CARTESIAN_POINT('',(2.68,7.17159323925028,-1.43509950929965)); +#53221=CARTESIAN_POINT('',(2.66350753926014,7.15499999999982,-1.43500000000041)); +#53222=CARTESIAN_POINT('',(2.64500000000005,7.15499999999979,-1.43500000000041)); +#53223=CARTESIAN_POINT('',(2.955,7.155,-1.435)); +#53224=CARTESIAN_POINT('',(2.93649229178306,7.155,-1.435)); +#53225=CARTESIAN_POINT('',(2.91999999999988,7.17159247157791,-1.43509958936568)); +#53226=CARTESIAN_POINT('',(2.91999999999986,7.18999999999997,-1.43317973717138)); +#53227=CARTESIAN_POINT('',(2.92,7.19,-1.43317973717136)); +#53228=CARTESIAN_POINT('',(2.92,7.155,-1.0976)); +#53229=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53230=CARTESIAN_POINT('',(3.48,7.155,-1.0976)); +#53231=CARTESIAN_POINT('',(3.48,7.19,-1.43317973717136)); +#53232=CARTESIAN_POINT('',(3.48,7.19,-1.43317973717136)); +#53233=CARTESIAN_POINT('',(3.48,7.17159323925028,-1.43509950929965)); +#53234=CARTESIAN_POINT('',(3.46350753926014,7.15499999999982,-1.43500000000041)); +#53235=CARTESIAN_POINT('',(3.44500000000005,7.15499999999979,-1.43500000000041)); +#53236=CARTESIAN_POINT('',(3.755,7.155,-1.435)); +#53237=CARTESIAN_POINT('',(3.73649229178306,7.155,-1.435)); +#53238=CARTESIAN_POINT('',(3.71999999999988,7.17159247157791,-1.43509958936568)); +#53239=CARTESIAN_POINT('',(3.71999999999986,7.18999999999997,-1.43317973717138)); +#53240=CARTESIAN_POINT('',(3.72,7.19,-1.43317973717136)); +#53241=CARTESIAN_POINT('',(3.72,7.155,-1.0976)); +#53242=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53243=CARTESIAN_POINT('',(4.28,7.155,-1.0976)); +#53244=CARTESIAN_POINT('',(4.28,7.19,-1.43317973717136)); +#53245=CARTESIAN_POINT('',(4.28,7.19,-1.43317973717136)); +#53246=CARTESIAN_POINT('',(4.28,7.17159323925028,-1.43509950929965)); +#53247=CARTESIAN_POINT('',(4.26350753926014,7.15499999999982,-1.43500000000041)); +#53248=CARTESIAN_POINT('',(4.24500000000005,7.15499999999979,-1.43500000000041)); +#53249=CARTESIAN_POINT('',(4.555,7.155,-1.435)); +#53250=CARTESIAN_POINT('',(4.53649229178306,7.155,-1.435)); +#53251=CARTESIAN_POINT('',(4.51999999999988,7.17159247157791,-1.43509958936568)); +#53252=CARTESIAN_POINT('',(4.51999999999986,7.18999999999997,-1.43317973717138)); +#53253=CARTESIAN_POINT('',(4.52,7.19,-1.43317973717136)); +#53254=CARTESIAN_POINT('',(4.52,7.155,-1.0976)); +#53255=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53256=CARTESIAN_POINT('',(5.08,7.155,-1.0976)); +#53257=CARTESIAN_POINT('',(5.08,7.19,-1.43317973717136)); +#53258=CARTESIAN_POINT('',(5.08,7.19,-1.43317973717136)); +#53259=CARTESIAN_POINT('',(5.08,7.17159323925028,-1.43509950929965)); +#53260=CARTESIAN_POINT('',(5.06350753926014,7.15499999999982,-1.43500000000041)); +#53261=CARTESIAN_POINT('',(5.04500000000005,7.15499999999979,-1.43500000000041)); +#53262=CARTESIAN_POINT('',(5.355,7.155,-1.435)); +#53263=CARTESIAN_POINT('',(5.33649229178306,7.155,-1.435)); +#53264=CARTESIAN_POINT('',(5.31999999999988,7.17159247157791,-1.43509958936568)); +#53265=CARTESIAN_POINT('',(5.31999999999986,7.18999999999997,-1.43317973717138)); +#53266=CARTESIAN_POINT('',(5.32,7.19,-1.43317973717136)); +#53267=CARTESIAN_POINT('',(5.32,7.155,-1.0976)); +#53268=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53269=CARTESIAN_POINT('',(5.88,7.155,-1.0976)); +#53270=CARTESIAN_POINT('',(5.88,7.19,-1.43317973717136)); +#53271=CARTESIAN_POINT('',(5.88,7.19,-1.43317973717136)); +#53272=CARTESIAN_POINT('',(5.88,7.17159323925028,-1.43509950929965)); +#53273=CARTESIAN_POINT('',(5.86350753926014,7.15499999999982,-1.43500000000041)); +#53274=CARTESIAN_POINT('',(5.84500000000005,7.15499999999979,-1.43500000000041)); +#53275=CARTESIAN_POINT('',(6.155,7.155,-1.435)); +#53276=CARTESIAN_POINT('',(6.13649229178306,7.155,-1.435)); +#53277=CARTESIAN_POINT('',(6.11999999999988,7.17159247157791,-1.43509958936568)); +#53278=CARTESIAN_POINT('',(6.11999999999986,7.18999999999997,-1.43317973717138)); +#53279=CARTESIAN_POINT('',(6.12,7.19,-1.43317973717136)); +#53280=CARTESIAN_POINT('',(6.12,7.155,-1.0976)); +#53281=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53282=CARTESIAN_POINT('',(6.68,7.155,-1.0976)); +#53283=CARTESIAN_POINT('',(6.68,7.19,-1.43317973717136)); +#53284=CARTESIAN_POINT('',(6.68,7.19,-1.43317973717136)); +#53285=CARTESIAN_POINT('',(6.68,7.17159323925028,-1.43509950929965)); +#53286=CARTESIAN_POINT('',(6.66350753926014,7.15499999999982,-1.43500000000041)); +#53287=CARTESIAN_POINT('',(6.64500000000005,7.15499999999979,-1.43500000000041)); +#53288=CARTESIAN_POINT('',(6.955,7.155,-1.435)); +#53289=CARTESIAN_POINT('',(6.93649229178306,7.155,-1.435)); +#53290=CARTESIAN_POINT('',(6.91999999999987,7.17159247157791,-1.43509958936568)); +#53291=CARTESIAN_POINT('',(6.91999999999986,7.18999999999997,-1.43317973717138)); +#53292=CARTESIAN_POINT('',(6.92,7.19,-1.43317973717136)); +#53293=CARTESIAN_POINT('',(6.92,7.155,-1.0976)); +#53294=CARTESIAN_POINT('',(7.89,7.155,-1.0976)); +#53295=CARTESIAN_POINT('',(7.48,7.155,-1.0976)); +#53296=CARTESIAN_POINT('',(7.48,7.19,-1.43317973717136)); +#53297=CARTESIAN_POINT('',(7.48,7.4924,-1.0976)); +#53298=CARTESIAN_POINT('',(7.48,7.19,-1.43317973717136)); +#53299=CARTESIAN_POINT('',(7.48,7.17159323925028,-1.43509950929965)); +#53300=CARTESIAN_POINT('',(7.46350753926014,7.15499999999982,-1.43500000000041)); +#53301=CARTESIAN_POINT('',(7.44500000000005,7.15499999999979,-1.43500000000041)); +#53302=CARTESIAN_POINT('',(7.755,7.155,-1.435)); +#53303=CARTESIAN_POINT('',(7.73649229178306,7.155,-1.435)); +#53304=CARTESIAN_POINT('',(7.71999999999987,7.17159247157791,-1.43509958936568)); +#53305=CARTESIAN_POINT('',(7.71999999999986,7.18999999999997,-1.43317973717138)); +#53306=CARTESIAN_POINT('',(7.72,7.19,-1.43317973717136)); +#53307=CARTESIAN_POINT('',(7.72,7.155,-1.0976)); +#53308=CARTESIAN_POINT('',(7.72,7.4924,-1.0976)); +#53309=CARTESIAN_POINT('',(7.89,7.4924,-1.0976)); +#53310=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53311=CARTESIAN_POINT('',(-7.755,7.155,1.435)); +#53312=CARTESIAN_POINT('',(-7.73649229178306,7.155,1.435)); +#53313=CARTESIAN_POINT('',(-7.71999999999988,7.17159247157791,1.43509958936568)); +#53314=CARTESIAN_POINT('',(-7.71999999999986,7.18999999999997,1.43317973717138)); +#53315=CARTESIAN_POINT('',(-7.72,7.19,1.43317973717136)); +#53316=CARTESIAN_POINT('',(-7.72,7.155,1.0976)); +#53317=CARTESIAN_POINT('',(-7.72,7.4924,1.0976)); +#53318=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53319=CARTESIAN_POINT('',(-7.48,7.4924,1.0976)); +#53320=CARTESIAN_POINT('',(-7.48,7.155,1.0976)); +#53321=CARTESIAN_POINT('',(-7.48,7.19,1.43317973717136)); +#53322=CARTESIAN_POINT('',(-7.48,7.19,1.43317973717136)); +#53323=CARTESIAN_POINT('',(-7.48,7.17159323925028,1.43509950929965)); +#53324=CARTESIAN_POINT('',(-7.46350753926014,7.15499999999982,1.43500000000041)); +#53325=CARTESIAN_POINT('',(-7.44500000000005,7.15499999999979,1.43500000000041)); +#53326=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53327=CARTESIAN_POINT('',(-6.92,7.19,1.43317973717136)); +#53328=CARTESIAN_POINT('',(-6.92,7.17159323925028,1.43509950929965)); +#53329=CARTESIAN_POINT('',(-6.93649246073986,7.15499999999982,1.43500000000041)); +#53330=CARTESIAN_POINT('',(-6.95499999999995,7.15499999999979,1.43500000000041)); +#53331=CARTESIAN_POINT('',(-6.92,7.19,1.43317973717136)); +#53332=CARTESIAN_POINT('',(-6.92,7.155,1.0976)); +#53333=CARTESIAN_POINT('',(-6.92,7.4924,1.0976)); +#53334=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53335=CARTESIAN_POINT('',(-6.68,7.4924,1.0976)); +#53336=CARTESIAN_POINT('',(-6.68,7.155,1.0976)); +#53337=CARTESIAN_POINT('',(-6.68,7.19,1.43317973717136)); +#53338=CARTESIAN_POINT('',(-6.68,7.19,1.43317973717136)); +#53339=CARTESIAN_POINT('',(-6.68,7.17159323925028,1.43509950929965)); +#53340=CARTESIAN_POINT('',(-6.66350753926014,7.15499999999982,1.43500000000041)); +#53341=CARTESIAN_POINT('',(-6.64500000000005,7.15499999999979,1.43500000000041)); +#53342=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53343=CARTESIAN_POINT('',(-6.12,7.19,1.43317973717136)); +#53344=CARTESIAN_POINT('',(-6.12,7.17159323925028,1.43509950929965)); +#53345=CARTESIAN_POINT('',(-6.13649246073986,7.15499999999982,1.43500000000041)); +#53346=CARTESIAN_POINT('',(-6.15499999999995,7.15499999999979,1.43500000000041)); +#53347=CARTESIAN_POINT('',(-6.12,7.19,1.43317973717136)); +#53348=CARTESIAN_POINT('',(-6.12,7.155,1.0976)); +#53349=CARTESIAN_POINT('',(-6.12,7.4924,1.0976)); +#53350=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53351=CARTESIAN_POINT('',(-5.88,7.4924,1.0976)); +#53352=CARTESIAN_POINT('',(-5.88,7.155,1.0976)); +#53353=CARTESIAN_POINT('',(-5.88,7.19,1.43317973717136)); +#53354=CARTESIAN_POINT('',(-5.88,7.19,1.43317973717136)); +#53355=CARTESIAN_POINT('',(-5.88,7.17159323925028,1.43509950929965)); +#53356=CARTESIAN_POINT('',(-5.86350753926014,7.15499999999982,1.43500000000041)); +#53357=CARTESIAN_POINT('',(-5.84500000000005,7.15499999999979,1.43500000000041)); +#53358=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53359=CARTESIAN_POINT('',(-5.355,7.155,1.435)); +#53360=CARTESIAN_POINT('',(-5.33649229178306,7.155,1.435)); +#53361=CARTESIAN_POINT('',(-5.31999999999988,7.17159247157791,1.43509958936568)); +#53362=CARTESIAN_POINT('',(-5.31999999999986,7.18999999999997,1.43317973717138)); +#53363=CARTESIAN_POINT('',(-5.32,7.19,1.43317973717136)); +#53364=CARTESIAN_POINT('',(-5.32,7.155,1.0976)); +#53365=CARTESIAN_POINT('',(-5.32,7.4924,1.0976)); +#53366=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53367=CARTESIAN_POINT('',(-5.08,7.4924,1.0976)); +#53368=CARTESIAN_POINT('',(-5.08,7.155,1.0976)); +#53369=CARTESIAN_POINT('',(-5.08,7.19,1.43317973717136)); +#53370=CARTESIAN_POINT('',(-5.08,7.19,1.43317973717136)); +#53371=CARTESIAN_POINT('',(-5.08,7.17159323925028,1.43509950929965)); +#53372=CARTESIAN_POINT('',(-5.06350753926014,7.15499999999982,1.43500000000041)); +#53373=CARTESIAN_POINT('',(-5.04500000000005,7.15499999999979,1.43500000000041)); +#53374=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53375=CARTESIAN_POINT('',(-4.52,7.19,1.43317973717136)); +#53376=CARTESIAN_POINT('',(-4.52,7.17159323925028,1.43509950929965)); +#53377=CARTESIAN_POINT('',(-4.53649246073986,7.15499999999982,1.43500000000041)); +#53378=CARTESIAN_POINT('',(-4.55499999999995,7.15499999999979,1.43500000000041)); +#53379=CARTESIAN_POINT('',(-4.52,7.19,1.43317973717136)); +#53380=CARTESIAN_POINT('',(-4.52,7.155,1.0976)); +#53381=CARTESIAN_POINT('',(-4.52,7.4924,1.0976)); +#53382=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53383=CARTESIAN_POINT('',(-4.28,7.4924,1.0976)); +#53384=CARTESIAN_POINT('',(-4.28,7.155,1.0976)); +#53385=CARTESIAN_POINT('',(-4.28,7.19,1.43317973717136)); +#53386=CARTESIAN_POINT('',(-4.28,7.19,1.43317973717136)); +#53387=CARTESIAN_POINT('',(-4.28,7.17159323925028,1.43509950929965)); +#53388=CARTESIAN_POINT('',(-4.26350753926014,7.15499999999982,1.43500000000041)); +#53389=CARTESIAN_POINT('',(-4.24500000000005,7.15499999999979,1.43500000000041)); +#53390=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53391=CARTESIAN_POINT('',(-3.72,7.19,1.43317973717136)); +#53392=CARTESIAN_POINT('',(-3.72,7.17159323925028,1.43509950929965)); +#53393=CARTESIAN_POINT('',(-3.73649246073986,7.15499999999982,1.43500000000041)); +#53394=CARTESIAN_POINT('',(-3.75499999999995,7.15499999999979,1.43500000000041)); +#53395=CARTESIAN_POINT('',(-3.72,7.19,1.43317973717136)); +#53396=CARTESIAN_POINT('',(-3.72,7.155,1.0976)); +#53397=CARTESIAN_POINT('',(-3.72,7.4924,1.0976)); +#53398=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53399=CARTESIAN_POINT('',(-3.48,7.4924,1.0976)); +#53400=CARTESIAN_POINT('',(-3.48,7.155,1.0976)); +#53401=CARTESIAN_POINT('',(-3.48,7.19,1.43317973717136)); +#53402=CARTESIAN_POINT('',(-3.48,7.19,1.43317973717136)); +#53403=CARTESIAN_POINT('',(-3.48,7.17159323925028,1.43509950929965)); +#53404=CARTESIAN_POINT('',(-3.46350753926014,7.15499999999982,1.43500000000041)); +#53405=CARTESIAN_POINT('',(-3.44500000000005,7.15499999999979,1.43500000000041)); +#53406=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53407=CARTESIAN_POINT('',(-2.92,7.19,1.43317973717136)); +#53408=CARTESIAN_POINT('',(-2.92,7.17159323925028,1.43509950929965)); +#53409=CARTESIAN_POINT('',(-2.93649246073986,7.15499999999982,1.43500000000041)); +#53410=CARTESIAN_POINT('',(-2.95499999999995,7.15499999999979,1.43500000000041)); +#53411=CARTESIAN_POINT('',(-2.92,7.19,1.43317973717136)); +#53412=CARTESIAN_POINT('',(-2.92,7.155,1.0976)); +#53413=CARTESIAN_POINT('',(-2.92,7.4924,1.0976)); +#53414=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53415=CARTESIAN_POINT('',(-2.68,7.4924,1.0976)); +#53416=CARTESIAN_POINT('',(-2.68,7.155,1.0976)); +#53417=CARTESIAN_POINT('',(-2.68,7.19,1.43317973717136)); +#53418=CARTESIAN_POINT('',(-2.68,7.19,1.43317973717136)); +#53419=CARTESIAN_POINT('',(-2.68,7.17159323925028,1.43509950929965)); +#53420=CARTESIAN_POINT('',(-2.66350753926014,7.15499999999982,1.43500000000041)); +#53421=CARTESIAN_POINT('',(-2.64500000000005,7.15499999999979,1.43500000000041)); +#53422=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53423=CARTESIAN_POINT('',(-2.12,7.19,1.43317973717136)); +#53424=CARTESIAN_POINT('',(-2.12,7.17159323925028,1.43509950929965)); +#53425=CARTESIAN_POINT('',(-2.13649246073986,7.15499999999982,1.43500000000041)); +#53426=CARTESIAN_POINT('',(-2.15499999999995,7.15499999999979,1.43500000000041)); +#53427=CARTESIAN_POINT('',(-2.12,7.19,1.43317973717136)); +#53428=CARTESIAN_POINT('',(-2.12,7.155,1.0976)); +#53429=CARTESIAN_POINT('',(-2.12,7.4924,1.0976)); +#53430=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53431=CARTESIAN_POINT('',(-1.88,7.4924,1.0976)); +#53432=CARTESIAN_POINT('',(-1.88,7.155,1.0976)); +#53433=CARTESIAN_POINT('',(-1.88,7.19,1.43317973717136)); +#53434=CARTESIAN_POINT('',(-1.88,7.19,1.43317973717136)); +#53435=CARTESIAN_POINT('',(-1.88,7.17159323925028,1.43509950929965)); +#53436=CARTESIAN_POINT('',(-1.86350753926014,7.15499999999982,1.43500000000041)); +#53437=CARTESIAN_POINT('',(-1.84500000000005,7.15499999999979,1.43500000000041)); +#53438=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53439=CARTESIAN_POINT('',(-1.32,7.19,1.43317973717136)); +#53440=CARTESIAN_POINT('',(-1.32,7.17159323925028,1.43509950929965)); +#53441=CARTESIAN_POINT('',(-1.33649246073986,7.15499999999982,1.43500000000041)); +#53442=CARTESIAN_POINT('',(-1.35499999999995,7.15499999999979,1.43500000000041)); +#53443=CARTESIAN_POINT('',(-1.32,7.19,1.43317973717136)); +#53444=CARTESIAN_POINT('',(-1.32,7.155,1.0976)); +#53445=CARTESIAN_POINT('',(-1.32,7.4924,1.0976)); +#53446=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53447=CARTESIAN_POINT('',(-1.08,7.4924,1.0976)); +#53448=CARTESIAN_POINT('',(-1.08,7.155,1.0976)); +#53449=CARTESIAN_POINT('',(-1.08,7.19,1.43317973717136)); +#53450=CARTESIAN_POINT('',(-1.08,7.19,1.43317973717136)); +#53451=CARTESIAN_POINT('',(-1.08,7.17159323925028,1.43509950929965)); +#53452=CARTESIAN_POINT('',(-1.06350753926014,7.15499999999982,1.43500000000041)); +#53453=CARTESIAN_POINT('',(-1.04500000000005,7.15499999999979,1.43500000000041)); +#53454=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53455=CARTESIAN_POINT('',(-0.555000000000001,7.155,1.435)); +#53456=CARTESIAN_POINT('',(-0.536492291783064,7.155,1.435)); +#53457=CARTESIAN_POINT('',(-0.519999999999877,7.17159247157791,1.43509958936568)); +#53458=CARTESIAN_POINT('',(-0.519999999999861,7.18999999999997,1.43317973717138)); +#53459=CARTESIAN_POINT('',(-0.520000000000001,7.19,1.43317973717136)); +#53460=CARTESIAN_POINT('',(-0.520000000000001,7.155,1.0976)); +#53461=CARTESIAN_POINT('',(-0.520000000000001,7.4924,1.0976)); +#53462=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53463=CARTESIAN_POINT('',(-0.280000000000001,7.4924,1.0976)); +#53464=CARTESIAN_POINT('',(-0.280000000000001,7.155,1.0976)); +#53465=CARTESIAN_POINT('',(-0.28,7.19,1.43317973717136)); +#53466=CARTESIAN_POINT('',(-0.28,7.19,1.43317973717136)); +#53467=CARTESIAN_POINT('',(-0.28,7.17159323925028,1.43509950929965)); +#53468=CARTESIAN_POINT('',(-0.263507539260141,7.15499999999982,1.43500000000041)); +#53469=CARTESIAN_POINT('',(-0.245000000000049,7.15499999999979,1.43500000000041)); +#53470=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53471=CARTESIAN_POINT('',(0.279999999999999,7.19,1.43317973717136)); +#53472=CARTESIAN_POINT('',(0.28,7.17159323925028,1.43509950929965)); +#53473=CARTESIAN_POINT('',(0.26350753926014,7.15499999999982,1.43500000000041)); +#53474=CARTESIAN_POINT('',(0.245000000000047,7.15499999999979,1.43500000000041)); +#53475=CARTESIAN_POINT('',(0.279999999999999,7.19,1.43317973717136)); +#53476=CARTESIAN_POINT('',(0.279999999999999,7.155,1.0976)); +#53477=CARTESIAN_POINT('',(0.279999999999999,7.4924,1.0976)); +#53478=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53479=CARTESIAN_POINT('',(0.52,7.4924,1.0976)); +#53480=CARTESIAN_POINT('',(0.52,7.155,1.0976)); +#53481=CARTESIAN_POINT('',(0.52,7.19,1.43317973717136)); +#53482=CARTESIAN_POINT('',(0.52,7.19,1.43317973717136)); +#53483=CARTESIAN_POINT('',(0.52,7.17159323925028,1.43509950929965)); +#53484=CARTESIAN_POINT('',(0.536492460739859,7.15499999999982,1.43500000000041)); +#53485=CARTESIAN_POINT('',(0.554999999999951,7.15499999999979,1.43500000000041)); +#53486=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53487=CARTESIAN_POINT('',(1.08,7.19,1.43317973717136)); +#53488=CARTESIAN_POINT('',(1.08,7.17159323925028,1.43509950929965)); +#53489=CARTESIAN_POINT('',(1.06350753926014,7.15499999999982,1.43500000000041)); +#53490=CARTESIAN_POINT('',(1.04500000000005,7.15499999999979,1.43500000000041)); +#53491=CARTESIAN_POINT('',(1.08,7.19,1.43317973717136)); +#53492=CARTESIAN_POINT('',(1.08,7.155,1.0976)); +#53493=CARTESIAN_POINT('',(1.08,7.4924,1.0976)); +#53494=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53495=CARTESIAN_POINT('',(1.32,7.4924,1.0976)); +#53496=CARTESIAN_POINT('',(1.32,7.155,1.0976)); +#53497=CARTESIAN_POINT('',(1.32,7.19,1.43317973717136)); +#53498=CARTESIAN_POINT('',(1.32,7.19,1.43317973717136)); +#53499=CARTESIAN_POINT('',(1.32,7.17159323925028,1.43509950929965)); +#53500=CARTESIAN_POINT('',(1.33649246073986,7.15499999999982,1.43500000000041)); +#53501=CARTESIAN_POINT('',(1.35499999999995,7.15499999999979,1.43500000000041)); +#53502=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53503=CARTESIAN_POINT('',(1.88,7.19,1.43317973717136)); +#53504=CARTESIAN_POINT('',(1.88,7.17159323925028,1.43509950929965)); +#53505=CARTESIAN_POINT('',(1.86350753926014,7.15499999999982,1.43500000000041)); +#53506=CARTESIAN_POINT('',(1.84500000000005,7.15499999999979,1.43500000000041)); +#53507=CARTESIAN_POINT('',(1.88,7.19,1.43317973717136)); +#53508=CARTESIAN_POINT('',(1.88,7.155,1.0976)); +#53509=CARTESIAN_POINT('',(1.88,7.4924,1.0976)); +#53510=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53511=CARTESIAN_POINT('',(2.12,7.4924,1.0976)); +#53512=CARTESIAN_POINT('',(2.12,7.155,1.0976)); +#53513=CARTESIAN_POINT('',(2.12,7.19,1.43317973717136)); +#53514=CARTESIAN_POINT('',(2.12,7.19,1.43317973717136)); +#53515=CARTESIAN_POINT('',(2.12,7.17159323925028,1.43509950929965)); +#53516=CARTESIAN_POINT('',(2.13649246073986,7.15499999999982,1.43500000000041)); +#53517=CARTESIAN_POINT('',(2.15499999999995,7.15499999999979,1.43500000000041)); +#53518=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53519=CARTESIAN_POINT('',(2.68,7.19,1.43317973717136)); +#53520=CARTESIAN_POINT('',(2.68,7.17159323925028,1.43509950929965)); +#53521=CARTESIAN_POINT('',(2.66350753926014,7.15499999999982,1.43500000000041)); +#53522=CARTESIAN_POINT('',(2.64500000000005,7.15499999999979,1.43500000000041)); +#53523=CARTESIAN_POINT('',(2.68,7.19,1.43317973717136)); +#53524=CARTESIAN_POINT('',(2.68,7.155,1.0976)); +#53525=CARTESIAN_POINT('',(2.68,7.4924,1.0976)); +#53526=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53527=CARTESIAN_POINT('',(2.92,7.4924,1.0976)); +#53528=CARTESIAN_POINT('',(2.92,7.155,1.0976)); +#53529=CARTESIAN_POINT('',(2.92,7.19,1.43317973717136)); +#53530=CARTESIAN_POINT('',(2.92,7.19,1.43317973717136)); +#53531=CARTESIAN_POINT('',(2.92,7.17159323925028,1.43509950929965)); +#53532=CARTESIAN_POINT('',(2.93649246073986,7.15499999999982,1.43500000000041)); +#53533=CARTESIAN_POINT('',(2.95499999999995,7.15499999999979,1.43500000000041)); +#53534=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53535=CARTESIAN_POINT('',(3.48,7.19,1.43317973717136)); +#53536=CARTESIAN_POINT('',(3.48,7.17159323925028,1.43509950929965)); +#53537=CARTESIAN_POINT('',(3.46350753926014,7.15499999999982,1.43500000000041)); +#53538=CARTESIAN_POINT('',(3.44500000000005,7.15499999999979,1.43500000000041)); +#53539=CARTESIAN_POINT('',(3.48,7.19,1.43317973717136)); +#53540=CARTESIAN_POINT('',(3.48,7.155,1.0976)); +#53541=CARTESIAN_POINT('',(3.48,7.4924,1.0976)); +#53542=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53543=CARTESIAN_POINT('',(3.72,7.4924,1.0976)); +#53544=CARTESIAN_POINT('',(3.72,7.155,1.0976)); +#53545=CARTESIAN_POINT('',(3.72,7.19,1.43317973717136)); +#53546=CARTESIAN_POINT('',(3.72,7.19,1.43317973717136)); +#53547=CARTESIAN_POINT('',(3.72,7.17159323925028,1.43509950929965)); +#53548=CARTESIAN_POINT('',(3.73649246073986,7.15499999999982,1.43500000000041)); +#53549=CARTESIAN_POINT('',(3.75499999999995,7.15499999999979,1.43500000000041)); +#53550=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53551=CARTESIAN_POINT('',(4.245,7.155,1.435)); +#53552=CARTESIAN_POINT('',(4.26350770821694,7.155,1.435)); +#53553=CARTESIAN_POINT('',(4.28000000000012,7.17159247157791,1.43509958936568)); +#53554=CARTESIAN_POINT('',(4.28000000000014,7.18999999999997,1.43317973717138)); +#53555=CARTESIAN_POINT('',(4.28,7.19,1.43317973717136)); +#53556=CARTESIAN_POINT('',(4.28,7.155,1.0976)); +#53557=CARTESIAN_POINT('',(4.28,7.4924,1.0976)); +#53558=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53559=CARTESIAN_POINT('',(4.52,7.4924,1.0976)); +#53560=CARTESIAN_POINT('',(4.52,7.155,1.0976)); +#53561=CARTESIAN_POINT('',(4.52,7.19,1.43317973717136)); +#53562=CARTESIAN_POINT('',(4.52,7.19,1.43317973717136)); +#53563=CARTESIAN_POINT('',(4.52,7.17159323925028,1.43509950929965)); +#53564=CARTESIAN_POINT('',(4.53649246073986,7.15499999999982,1.43500000000041)); +#53565=CARTESIAN_POINT('',(4.55499999999995,7.15499999999979,1.43500000000041)); +#53566=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53567=CARTESIAN_POINT('',(5.045,7.155,1.435)); +#53568=CARTESIAN_POINT('',(5.06350770821694,7.155,1.435)); +#53569=CARTESIAN_POINT('',(5.08000000000012,7.17159247157791,1.43509958936568)); +#53570=CARTESIAN_POINT('',(5.08000000000014,7.18999999999997,1.43317973717138)); +#53571=CARTESIAN_POINT('',(5.08,7.19,1.43317973717136)); +#53572=CARTESIAN_POINT('',(5.08,7.155,1.0976)); +#53573=CARTESIAN_POINT('',(5.08,7.4924,1.0976)); +#53574=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53575=CARTESIAN_POINT('',(5.32,7.4924,1.0976)); +#53576=CARTESIAN_POINT('',(5.32,7.155,1.0976)); +#53577=CARTESIAN_POINT('',(5.32,7.19,1.43317973717136)); +#53578=CARTESIAN_POINT('',(5.32,7.19,1.43317973717136)); +#53579=CARTESIAN_POINT('',(5.32,7.17159323925028,1.43509950929965)); +#53580=CARTESIAN_POINT('',(5.33649246073986,7.15499999999982,1.43500000000041)); +#53581=CARTESIAN_POINT('',(5.35499999999995,7.15499999999979,1.43500000000041)); +#53582=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53583=CARTESIAN_POINT('',(5.88,7.19,1.43317973717136)); +#53584=CARTESIAN_POINT('',(5.88,7.17159323925028,1.43509950929965)); +#53585=CARTESIAN_POINT('',(5.86350753926014,7.15499999999982,1.43500000000041)); +#53586=CARTESIAN_POINT('',(5.84500000000005,7.15499999999979,1.43500000000041)); +#53587=CARTESIAN_POINT('',(5.88,7.19,1.43317973717136)); +#53588=CARTESIAN_POINT('',(5.88,7.155,1.0976)); +#53589=CARTESIAN_POINT('',(5.88,7.4924,1.0976)); +#53590=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53591=CARTESIAN_POINT('',(6.12,7.4924,1.0976)); +#53592=CARTESIAN_POINT('',(6.12,7.155,1.0976)); +#53593=CARTESIAN_POINT('',(6.12,7.19,1.43317973717136)); +#53594=CARTESIAN_POINT('',(6.12,7.19,1.43317973717136)); +#53595=CARTESIAN_POINT('',(6.12,7.17159323925028,1.43509950929965)); +#53596=CARTESIAN_POINT('',(6.13649246073986,7.15499999999982,1.43500000000041)); +#53597=CARTESIAN_POINT('',(6.15499999999995,7.15499999999979,1.43500000000041)); +#53598=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53599=CARTESIAN_POINT('',(6.68,7.19,1.43317973717136)); +#53600=CARTESIAN_POINT('',(6.68,7.17159323925028,1.43509950929965)); +#53601=CARTESIAN_POINT('',(6.66350753926014,7.15499999999982,1.43500000000041)); +#53602=CARTESIAN_POINT('',(6.64500000000005,7.15499999999979,1.43500000000041)); +#53603=CARTESIAN_POINT('',(6.68,7.19,1.43317973717136)); +#53604=CARTESIAN_POINT('',(6.68,7.155,1.0976)); +#53605=CARTESIAN_POINT('',(6.68,7.4924,1.0976)); +#53606=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53607=CARTESIAN_POINT('',(6.92,7.4924,1.0976)); +#53608=CARTESIAN_POINT('',(6.92,7.155,1.0976)); +#53609=CARTESIAN_POINT('',(6.92,7.19,1.43317973717136)); +#53610=CARTESIAN_POINT('',(6.92,7.19,1.43317973717136)); +#53611=CARTESIAN_POINT('',(6.92,7.17159323925028,1.43509950929965)); +#53612=CARTESIAN_POINT('',(6.93649246073986,7.15499999999982,1.43500000000041)); +#53613=CARTESIAN_POINT('',(6.95499999999995,7.15499999999979,1.43500000000041)); +#53614=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53615=CARTESIAN_POINT('',(7.445,7.155,1.435)); +#53616=CARTESIAN_POINT('',(7.46350770821694,7.155,1.435)); +#53617=CARTESIAN_POINT('',(7.48000000000012,7.17159247157791,1.43509958936568)); +#53618=CARTESIAN_POINT('',(7.48000000000014,7.18999999999997,1.43317973717138)); +#53619=CARTESIAN_POINT('',(7.48,7.19,1.43317973717136)); +#53620=CARTESIAN_POINT('',(7.48,7.155,1.0976)); +#53621=CARTESIAN_POINT('',(7.48,7.4924,1.0976)); +#53622=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53623=CARTESIAN_POINT('',(7.72,7.4924,1.0976)); +#53624=CARTESIAN_POINT('',(7.72,7.155,1.0976)); +#53625=CARTESIAN_POINT('',(7.72,7.19,1.43317973717136)); +#53626=CARTESIAN_POINT('',(7.72,7.19,1.43317973717136)); +#53627=CARTESIAN_POINT('',(7.72,7.17159323925028,1.43509950929965)); +#53628=CARTESIAN_POINT('',(7.73649246073986,7.15499999999982,1.43500000000041)); +#53629=CARTESIAN_POINT('',(7.75499999999995,7.15499999999979,1.43500000000041)); +#53630=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53631=CARTESIAN_POINT('',(-7.72,7.4924,1.0976)); +#53632=CARTESIAN_POINT('',(-7.72,7.5374,1.12358076211353)); +#53633=CARTESIAN_POINT('',(-7.6,7.5374,1.12358076211353)); +#53634=CARTESIAN_POINT('',(-7.64365232163209,7.64917868677046,1.18811621701012)); +#53635=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53636=CARTESIAN_POINT('',(-7.55634767836791,7.64917868677046,1.18811621701012)); +#53637=CARTESIAN_POINT('',(-7.6,7.5374,1.12358076211353)); +#53638=CARTESIAN_POINT('',(-7.48,7.5374,1.12358076211353)); +#53639=CARTESIAN_POINT('',(-7.48,7.4924,1.0976)); +#53640=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53641=CARTESIAN_POINT('',(-6.92,7.4924,1.0976)); +#53642=CARTESIAN_POINT('',(-6.92,7.5374,1.12358076211353)); +#53643=CARTESIAN_POINT('',(-6.8,7.5374,1.12358076211353)); +#53644=CARTESIAN_POINT('',(-6.84365232163208,7.64917868677046,1.18811621701012)); +#53645=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53646=CARTESIAN_POINT('',(-6.75634767836791,7.64917868677046,1.18811621701012)); +#53647=CARTESIAN_POINT('',(-6.8,7.5374,1.12358076211353)); +#53648=CARTESIAN_POINT('',(-6.68,7.5374,1.12358076211353)); +#53649=CARTESIAN_POINT('',(-6.68,7.4924,1.0976)); +#53650=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53651=CARTESIAN_POINT('',(-6.12,7.4924,1.0976)); +#53652=CARTESIAN_POINT('',(-6.12,7.5374,1.12358076211353)); +#53653=CARTESIAN_POINT('',(-6.,7.5374,1.12358076211353)); +#53654=CARTESIAN_POINT('',(-6.04365232163209,7.64917868677046,1.18811621701012)); +#53655=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53656=CARTESIAN_POINT('',(-5.95634767836791,7.64917868677046,1.18811621701012)); +#53657=CARTESIAN_POINT('',(-6.,7.5374,1.12358076211353)); +#53658=CARTESIAN_POINT('',(-5.88,7.5374,1.12358076211353)); +#53659=CARTESIAN_POINT('',(-5.88,7.4924,1.0976)); +#53660=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53661=CARTESIAN_POINT('',(-5.32,7.4924,1.0976)); +#53662=CARTESIAN_POINT('',(-5.32,7.5374,1.12358076211353)); +#53663=CARTESIAN_POINT('',(-5.2,7.5374,1.12358076211353)); +#53664=CARTESIAN_POINT('',(-5.24365232163209,7.64917868677046,1.18811621701012)); +#53665=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53666=CARTESIAN_POINT('',(-5.15634767836791,7.64917868677046,1.18811621701012)); +#53667=CARTESIAN_POINT('',(-5.2,7.5374,1.12358076211353)); +#53668=CARTESIAN_POINT('',(-5.08,7.5374,1.12358076211353)); +#53669=CARTESIAN_POINT('',(-5.08,7.4924,1.0976)); +#53670=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53671=CARTESIAN_POINT('',(-4.52,7.4924,1.0976)); +#53672=CARTESIAN_POINT('',(-4.52,7.5374,1.12358076211353)); +#53673=CARTESIAN_POINT('',(-4.4,7.5374,1.12358076211353)); +#53674=CARTESIAN_POINT('',(-4.44365232163209,7.64917868677046,1.18811621701012)); +#53675=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53676=CARTESIAN_POINT('',(-4.35634767836791,7.64917868677046,1.18811621701012)); +#53677=CARTESIAN_POINT('',(-4.4,7.5374,1.12358076211353)); +#53678=CARTESIAN_POINT('',(-4.28,7.5374,1.12358076211353)); +#53679=CARTESIAN_POINT('',(-4.28,7.4924,1.0976)); +#53680=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53681=CARTESIAN_POINT('',(-3.72,7.4924,1.0976)); +#53682=CARTESIAN_POINT('',(-3.72,7.5374,1.12358076211353)); +#53683=CARTESIAN_POINT('',(-3.6,7.5374,1.12358076211353)); +#53684=CARTESIAN_POINT('',(-3.64365232163209,7.64917868677046,1.18811621701012)); +#53685=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53686=CARTESIAN_POINT('',(-3.55634767836791,7.64917868677046,1.18811621701012)); +#53687=CARTESIAN_POINT('',(-3.6,7.5374,1.12358076211353)); +#53688=CARTESIAN_POINT('',(-3.48,7.5374,1.12358076211353)); +#53689=CARTESIAN_POINT('',(-3.48,7.4924,1.0976)); +#53690=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53691=CARTESIAN_POINT('',(-2.92,7.4924,1.0976)); +#53692=CARTESIAN_POINT('',(-2.92,7.5374,1.12358076211353)); +#53693=CARTESIAN_POINT('',(-2.8,7.5374,1.12358076211353)); +#53694=CARTESIAN_POINT('',(-2.84365232163209,7.64917868677046,1.18811621701012)); +#53695=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53696=CARTESIAN_POINT('',(-2.75634767836791,7.64917868677046,1.18811621701012)); +#53697=CARTESIAN_POINT('',(-2.8,7.5374,1.12358076211353)); +#53698=CARTESIAN_POINT('',(-2.68,7.5374,1.12358076211353)); +#53699=CARTESIAN_POINT('',(-2.68,7.4924,1.0976)); +#53700=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53701=CARTESIAN_POINT('',(-2.12,7.4924,1.0976)); +#53702=CARTESIAN_POINT('',(-2.12,7.5374,1.12358076211353)); +#53703=CARTESIAN_POINT('',(-2.,7.5374,1.12358076211353)); +#53704=CARTESIAN_POINT('',(-2.04365232163209,7.64917868677046,1.18811621701012)); +#53705=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53706=CARTESIAN_POINT('',(-1.95634767836791,7.64917868677046,1.18811621701012)); +#53707=CARTESIAN_POINT('',(-2.,7.5374,1.12358076211353)); +#53708=CARTESIAN_POINT('',(-1.88,7.5374,1.12358076211353)); +#53709=CARTESIAN_POINT('',(-1.88,7.4924,1.0976)); +#53710=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53711=CARTESIAN_POINT('',(-1.32,7.4924,1.0976)); +#53712=CARTESIAN_POINT('',(-1.32,7.5374,1.12358076211353)); +#53713=CARTESIAN_POINT('',(-1.2,7.5374,1.12358076211353)); +#53714=CARTESIAN_POINT('',(-1.24365232163209,7.64917868677046,1.18811621701012)); +#53715=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53716=CARTESIAN_POINT('',(-1.15634767836791,7.64917868677046,1.18811621701012)); +#53717=CARTESIAN_POINT('',(-1.2,7.5374,1.12358076211353)); +#53718=CARTESIAN_POINT('',(-1.08,7.5374,1.12358076211353)); +#53719=CARTESIAN_POINT('',(-1.08,7.4924,1.0976)); +#53720=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53721=CARTESIAN_POINT('',(-0.520000000000001,7.4924,1.0976)); +#53722=CARTESIAN_POINT('',(-0.520000000000001,7.5374,1.12358076211353)); +#53723=CARTESIAN_POINT('',(-0.400000000000001,7.5374,1.12358076211353)); +#53724=CARTESIAN_POINT('',(-0.443652321632088,7.64917868677046,1.18811621701012)); +#53725=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53726=CARTESIAN_POINT('',(-0.356347678367914,7.64917868677046,1.18811621701012)); +#53727=CARTESIAN_POINT('',(-0.400000000000001,7.5374,1.12358076211353)); +#53728=CARTESIAN_POINT('',(-0.280000000000001,7.5374,1.12358076211353)); +#53729=CARTESIAN_POINT('',(-0.280000000000001,7.4924,1.0976)); +#53730=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53731=CARTESIAN_POINT('',(0.279999999999999,7.4924,1.0976)); +#53732=CARTESIAN_POINT('',(0.279999999999999,7.5374,1.12358076211353)); +#53733=CARTESIAN_POINT('',(0.399999999999999,7.5374,1.12358076211353)); +#53734=CARTESIAN_POINT('',(0.356347678367912,7.64917868677046,1.18811621701012)); +#53735=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53736=CARTESIAN_POINT('',(0.443652321632086,7.64917868677046,1.18811621701012)); +#53737=CARTESIAN_POINT('',(0.399999999999999,7.5374,1.12358076211353)); +#53738=CARTESIAN_POINT('',(0.52,7.5374,1.12358076211353)); +#53739=CARTESIAN_POINT('',(0.52,7.4924,1.0976)); +#53740=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53741=CARTESIAN_POINT('',(1.08,7.4924,1.0976)); +#53742=CARTESIAN_POINT('',(1.08,7.5374,1.12358076211353)); +#53743=CARTESIAN_POINT('',(1.2,7.5374,1.12358076211353)); +#53744=CARTESIAN_POINT('',(1.15634767836791,7.64917868677046,1.18811621701012)); +#53745=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53746=CARTESIAN_POINT('',(1.24365232163209,7.64917868677046,1.18811621701012)); +#53747=CARTESIAN_POINT('',(1.2,7.5374,1.12358076211353)); +#53748=CARTESIAN_POINT('',(1.32,7.5374,1.12358076211353)); +#53749=CARTESIAN_POINT('',(1.32,7.4924,1.0976)); +#53750=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53751=CARTESIAN_POINT('',(1.88,7.4924,1.0976)); +#53752=CARTESIAN_POINT('',(1.88,7.5374,1.12358076211353)); +#53753=CARTESIAN_POINT('',(2.,7.5374,1.12358076211353)); +#53754=CARTESIAN_POINT('',(1.95634767836791,7.64917868677046,1.18811621701012)); +#53755=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53756=CARTESIAN_POINT('',(2.04365232163209,7.64917868677046,1.18811621701012)); +#53757=CARTESIAN_POINT('',(2.,7.5374,1.12358076211353)); +#53758=CARTESIAN_POINT('',(2.12,7.5374,1.12358076211353)); +#53759=CARTESIAN_POINT('',(2.12,7.4924,1.0976)); +#53760=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53761=CARTESIAN_POINT('',(2.68,7.4924,1.0976)); +#53762=CARTESIAN_POINT('',(2.68,7.5374,1.12358076211353)); +#53763=CARTESIAN_POINT('',(2.8,7.5374,1.12358076211353)); +#53764=CARTESIAN_POINT('',(2.75634767836791,7.64917868677046,1.18811621701012)); +#53765=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53766=CARTESIAN_POINT('',(2.84365232163209,7.64917868677046,1.18811621701012)); +#53767=CARTESIAN_POINT('',(2.8,7.5374,1.12358076211353)); +#53768=CARTESIAN_POINT('',(2.92,7.5374,1.12358076211353)); +#53769=CARTESIAN_POINT('',(2.92,7.4924,1.0976)); +#53770=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53771=CARTESIAN_POINT('',(3.48,7.4924,1.0976)); +#53772=CARTESIAN_POINT('',(3.48,7.5374,1.12358076211353)); +#53773=CARTESIAN_POINT('',(3.6,7.5374,1.12358076211353)); +#53774=CARTESIAN_POINT('',(3.55634767836791,7.64917868677046,1.18811621701012)); +#53775=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53776=CARTESIAN_POINT('',(3.64365232163209,7.64917868677046,1.18811621701012)); +#53777=CARTESIAN_POINT('',(3.6,7.5374,1.12358076211353)); +#53778=CARTESIAN_POINT('',(3.72,7.5374,1.12358076211353)); +#53779=CARTESIAN_POINT('',(3.72,7.4924,1.0976)); +#53780=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53781=CARTESIAN_POINT('',(4.28,7.4924,1.0976)); +#53782=CARTESIAN_POINT('',(4.28,7.5374,1.12358076211353)); +#53783=CARTESIAN_POINT('',(4.4,7.5374,1.12358076211353)); +#53784=CARTESIAN_POINT('',(4.35634767836791,7.64917868677046,1.18811621701012)); +#53785=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53786=CARTESIAN_POINT('',(4.44365232163209,7.64917868677046,1.18811621701012)); +#53787=CARTESIAN_POINT('',(4.4,7.5374,1.12358076211353)); +#53788=CARTESIAN_POINT('',(4.52,7.5374,1.12358076211353)); +#53789=CARTESIAN_POINT('',(4.52,7.4924,1.0976)); +#53790=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53791=CARTESIAN_POINT('',(5.08,7.4924,1.0976)); +#53792=CARTESIAN_POINT('',(5.08,7.5374,1.12358076211353)); +#53793=CARTESIAN_POINT('',(5.2,7.5374,1.12358076211353)); +#53794=CARTESIAN_POINT('',(5.15634767836791,7.64917868677046,1.18811621701012)); +#53795=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53796=CARTESIAN_POINT('',(5.24365232163209,7.64917868677046,1.18811621701012)); +#53797=CARTESIAN_POINT('',(5.2,7.5374,1.12358076211353)); +#53798=CARTESIAN_POINT('',(5.32,7.5374,1.12358076211353)); +#53799=CARTESIAN_POINT('',(5.32,7.4924,1.0976)); +#53800=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53801=CARTESIAN_POINT('',(5.88,7.4924,1.0976)); +#53802=CARTESIAN_POINT('',(5.88,7.5374,1.12358076211353)); +#53803=CARTESIAN_POINT('',(6.,7.5374,1.12358076211353)); +#53804=CARTESIAN_POINT('',(5.95634767836791,7.64917868677046,1.18811621701012)); +#53805=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53806=CARTESIAN_POINT('',(6.04365232163209,7.64917868677046,1.18811621701012)); +#53807=CARTESIAN_POINT('',(6.,7.5374,1.12358076211353)); +#53808=CARTESIAN_POINT('',(6.12,7.5374,1.12358076211353)); +#53809=CARTESIAN_POINT('',(6.12,7.4924,1.0976)); +#53810=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#53811=CARTESIAN_POINT('',(6.68,7.4924,1.0976)); +#53812=CARTESIAN_POINT('',(6.68,7.5374,1.12358076211353)); +#53813=CARTESIAN_POINT('',(6.8,7.5374,1.12358076211353)); +#53814=CARTESIAN_POINT('',(6.75634767836791,7.64917868677046,1.18811621701012)); +#53815=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#53816=CARTESIAN_POINT('',(6.84365232163209,7.64917868677046,1.18811621701012)); +#53817=CARTESIAN_POINT('',(6.8,7.5374,1.12358076211353)); +#53818=CARTESIAN_POINT('',(6.92,7.5374,1.12358076211353)); +#53819=CARTESIAN_POINT('',(6.92,7.4924,1.0976)); +#53820=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53821=CARTESIAN_POINT('',(-7.72,7.19,1.59877936908855)); +#53822=CARTESIAN_POINT('',(-7.72,7.17154879938732,1.60006791379186)); +#53823=CARTESIAN_POINT('',(-7.7365034374292,7.15499999999984,1.60000000000025)); +#53824=CARTESIAN_POINT('',(-7.75499999999996,7.15499999999982,1.60000000000025)); +#53825=CARTESIAN_POINT('',(-7.72,7.19,1.59877936908855)); +#53826=CARTESIAN_POINT('',(-7.48,7.19,1.59877936908855)); +#53827=CARTESIAN_POINT('',(-7.48,7.17154879938732,1.60006791379186)); +#53828=CARTESIAN_POINT('',(-7.4634965625708,7.15499999999984,1.60000000000025)); +#53829=CARTESIAN_POINT('',(-7.44500000000004,7.15499999999982,1.60000000000025)); +#53830=CARTESIAN_POINT('',(-7.48,7.19,1.59877936908855)); +#53831=CARTESIAN_POINT('',(-7.48,7.155,1.0976)); +#53832=CARTESIAN_POINT('',(-7.48,7.5374,1.42344658967066)); +#53833=CARTESIAN_POINT('',(-7.48,7.5374,1.42344658967066)); +#53834=CARTESIAN_POINT('',(-7.48,7.59787264997766,1.35247840376812)); +#53835=CARTESIAN_POINT('',(-7.51755793324588,7.63403033891439,1.27081952584833)); +#53836=CARTESIAN_POINT('',(-7.55634767836791,7.64917868677046,1.18811621701012)); +#53837=CARTESIAN_POINT('',(-7.64365232163209,7.64917868677046,1.18811621701012)); +#53838=CARTESIAN_POINT('',(-7.68249898034617,7.63400811275933,1.27094087086789)); +#53839=CARTESIAN_POINT('',(-7.72,7.59805032943425,1.35226988655065)); +#53840=CARTESIAN_POINT('',(-7.72,7.5374,1.42344658967066)); +#53841=CARTESIAN_POINT('',(-7.72,7.5374,1.42344658967066)); +#53842=CARTESIAN_POINT('',(-7.72,7.155,1.0976)); +#53843=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53844=CARTESIAN_POINT('',(-6.92,7.19,1.59877936908855)); +#53845=CARTESIAN_POINT('',(-6.92,7.17154879938732,1.60006791379186)); +#53846=CARTESIAN_POINT('',(-6.9365034374292,7.15499999999984,1.60000000000025)); +#53847=CARTESIAN_POINT('',(-6.95499999999996,7.15499999999982,1.60000000000025)); +#53848=CARTESIAN_POINT('',(-6.92,7.19,1.59877936908855)); +#53849=CARTESIAN_POINT('',(-6.68,7.19,1.59877936908855)); +#53850=CARTESIAN_POINT('',(-6.68,7.17154879938732,1.60006791379186)); +#53851=CARTESIAN_POINT('',(-6.6634965625708,7.15499999999984,1.60000000000025)); +#53852=CARTESIAN_POINT('',(-6.64500000000004,7.15499999999982,1.60000000000025)); +#53853=CARTESIAN_POINT('',(-6.68,7.19,1.59877936908855)); +#53854=CARTESIAN_POINT('',(-6.68,7.155,1.0976)); +#53855=CARTESIAN_POINT('',(-6.68,7.5374,1.42344658967066)); +#53856=CARTESIAN_POINT('',(-6.68,7.5374,1.42344658967066)); +#53857=CARTESIAN_POINT('',(-6.68,7.59787264997766,1.35247840376812)); +#53858=CARTESIAN_POINT('',(-6.71755793324588,7.63403033891439,1.27081952584833)); +#53859=CARTESIAN_POINT('',(-6.75634767836791,7.64917868677046,1.18811621701012)); +#53860=CARTESIAN_POINT('',(-6.84365232163208,7.64917868677046,1.18811621701012)); +#53861=CARTESIAN_POINT('',(-6.88249898034617,7.63400811275933,1.27094087086789)); +#53862=CARTESIAN_POINT('',(-6.92,7.59805032943425,1.35226988655065)); +#53863=CARTESIAN_POINT('',(-6.92,7.5374,1.42344658967066)); +#53864=CARTESIAN_POINT('',(-6.92,7.5374,1.42344658967066)); +#53865=CARTESIAN_POINT('',(-6.92,7.155,1.0976)); +#53866=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53867=CARTESIAN_POINT('',(-6.12,7.19,1.59877936908855)); +#53868=CARTESIAN_POINT('',(-6.12,7.17154879938732,1.60006791379186)); +#53869=CARTESIAN_POINT('',(-6.1365034374292,7.15499999999984,1.60000000000025)); +#53870=CARTESIAN_POINT('',(-6.15499999999996,7.15499999999982,1.60000000000025)); +#53871=CARTESIAN_POINT('',(-6.12,7.19,1.59877936908855)); +#53872=CARTESIAN_POINT('',(-5.88,7.19,1.59877936908855)); +#53873=CARTESIAN_POINT('',(-5.88,7.17154879938732,1.60006791379186)); +#53874=CARTESIAN_POINT('',(-5.8634965625708,7.15499999999984,1.60000000000025)); +#53875=CARTESIAN_POINT('',(-5.84500000000004,7.15499999999982,1.60000000000025)); +#53876=CARTESIAN_POINT('',(-5.88,7.19,1.59877936908855)); +#53877=CARTESIAN_POINT('',(-5.88,7.155,1.0976)); +#53878=CARTESIAN_POINT('',(-5.88,7.5374,1.42344658967066)); +#53879=CARTESIAN_POINT('',(-5.88,7.5374,1.42344658967066)); +#53880=CARTESIAN_POINT('',(-5.88,7.59787264997766,1.35247840376812)); +#53881=CARTESIAN_POINT('',(-5.91755793324588,7.63403033891439,1.27081952584834)); +#53882=CARTESIAN_POINT('',(-5.95634767836791,7.64917868677046,1.18811621701012)); +#53883=CARTESIAN_POINT('',(-6.04365232163209,7.64917868677046,1.18811621701012)); +#53884=CARTESIAN_POINT('',(-6.08249898034617,7.63400811275932,1.27094087086789)); +#53885=CARTESIAN_POINT('',(-6.12,7.59805032943425,1.35226988655065)); +#53886=CARTESIAN_POINT('',(-6.12,7.5374,1.42344658967066)); +#53887=CARTESIAN_POINT('',(-6.12,7.5374,1.42344658967066)); +#53888=CARTESIAN_POINT('',(-6.12,7.155,1.0976)); +#53889=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53890=CARTESIAN_POINT('',(-5.32,7.19,1.59877936908855)); +#53891=CARTESIAN_POINT('',(-5.32,7.17154879938732,1.60006791379186)); +#53892=CARTESIAN_POINT('',(-5.3365034374292,7.15499999999984,1.60000000000025)); +#53893=CARTESIAN_POINT('',(-5.35499999999996,7.15499999999982,1.60000000000025)); +#53894=CARTESIAN_POINT('',(-5.32,7.19,1.59877936908855)); +#53895=CARTESIAN_POINT('',(-5.08,7.19,1.59877936908855)); +#53896=CARTESIAN_POINT('',(-5.08,7.17154879938732,1.60006791379186)); +#53897=CARTESIAN_POINT('',(-5.0634965625708,7.15499999999984,1.60000000000025)); +#53898=CARTESIAN_POINT('',(-5.04500000000004,7.15499999999982,1.60000000000025)); +#53899=CARTESIAN_POINT('',(-5.08,7.19,1.59877936908855)); +#53900=CARTESIAN_POINT('',(-5.08,7.155,1.0976)); +#53901=CARTESIAN_POINT('',(-5.08,7.5374,1.42344658967066)); +#53902=CARTESIAN_POINT('',(-5.08,7.5374,1.42344658967066)); +#53903=CARTESIAN_POINT('',(-5.08,7.59787264997766,1.35247840376812)); +#53904=CARTESIAN_POINT('',(-5.11755793324588,7.63403033891439,1.27081952584833)); +#53905=CARTESIAN_POINT('',(-5.15634767836791,7.64917868677046,1.18811621701012)); +#53906=CARTESIAN_POINT('',(-5.24365232163209,7.64917868677046,1.18811621701012)); +#53907=CARTESIAN_POINT('',(-5.28249898034617,7.63400811275933,1.27094087086789)); +#53908=CARTESIAN_POINT('',(-5.32,7.59805032943425,1.35226988655065)); +#53909=CARTESIAN_POINT('',(-5.32,7.5374,1.42344658967066)); +#53910=CARTESIAN_POINT('',(-5.32,7.5374,1.42344658967066)); +#53911=CARTESIAN_POINT('',(-5.32,7.155,1.0976)); +#53912=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53913=CARTESIAN_POINT('',(-4.52,7.19,1.59877936908855)); +#53914=CARTESIAN_POINT('',(-4.52,7.17154879938732,1.60006791379186)); +#53915=CARTESIAN_POINT('',(-4.5365034374292,7.15499999999984,1.60000000000025)); +#53916=CARTESIAN_POINT('',(-4.55499999999996,7.15499999999982,1.60000000000025)); +#53917=CARTESIAN_POINT('',(-4.52,7.19,1.59877936908855)); +#53918=CARTESIAN_POINT('',(-4.28,7.19,1.59877936908855)); +#53919=CARTESIAN_POINT('',(-4.28,7.17154879938732,1.60006791379186)); +#53920=CARTESIAN_POINT('',(-4.2634965625708,7.15499999999984,1.60000000000025)); +#53921=CARTESIAN_POINT('',(-4.24500000000004,7.15499999999982,1.60000000000025)); +#53922=CARTESIAN_POINT('',(-4.28,7.19,1.59877936908855)); +#53923=CARTESIAN_POINT('',(-4.28,7.155,1.0976)); +#53924=CARTESIAN_POINT('',(-4.28,7.5374,1.42344658967066)); +#53925=CARTESIAN_POINT('',(-4.28,7.5374,1.42344658967066)); +#53926=CARTESIAN_POINT('',(-4.28,7.59787264997766,1.35247840376812)); +#53927=CARTESIAN_POINT('',(-4.31755793324588,7.63403033891439,1.27081952584834)); +#53928=CARTESIAN_POINT('',(-4.35634767836791,7.64917868677046,1.18811621701012)); +#53929=CARTESIAN_POINT('',(-4.44365232163209,7.64917868677046,1.18811621701012)); +#53930=CARTESIAN_POINT('',(-4.48249898034617,7.63400811275932,1.27094087086789)); +#53931=CARTESIAN_POINT('',(-4.52,7.59805032943425,1.35226988655065)); +#53932=CARTESIAN_POINT('',(-4.52,7.5374,1.42344658967066)); +#53933=CARTESIAN_POINT('',(-4.52,7.5374,1.42344658967066)); +#53934=CARTESIAN_POINT('',(-4.52,7.155,1.0976)); +#53935=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53936=CARTESIAN_POINT('',(-3.72,7.19,1.59877936908855)); +#53937=CARTESIAN_POINT('',(-3.72,7.17154879938732,1.60006791379186)); +#53938=CARTESIAN_POINT('',(-3.7365034374292,7.15499999999984,1.60000000000025)); +#53939=CARTESIAN_POINT('',(-3.75499999999996,7.15499999999982,1.60000000000025)); +#53940=CARTESIAN_POINT('',(-3.72,7.19,1.59877936908855)); +#53941=CARTESIAN_POINT('',(-3.48,7.19,1.59877936908855)); +#53942=CARTESIAN_POINT('',(-3.48,7.17154879938732,1.60006791379186)); +#53943=CARTESIAN_POINT('',(-3.4634965625708,7.15499999999984,1.60000000000025)); +#53944=CARTESIAN_POINT('',(-3.44500000000004,7.15499999999982,1.60000000000025)); +#53945=CARTESIAN_POINT('',(-3.48,7.19,1.59877936908855)); +#53946=CARTESIAN_POINT('',(-3.48,7.155,1.0976)); +#53947=CARTESIAN_POINT('',(-3.48,7.5374,1.42344658967066)); +#53948=CARTESIAN_POINT('',(-3.48,7.5374,1.42344658967066)); +#53949=CARTESIAN_POINT('',(-3.48,7.59787264997766,1.35247840376812)); +#53950=CARTESIAN_POINT('',(-3.51755793324588,7.63403033891439,1.27081952584834)); +#53951=CARTESIAN_POINT('',(-3.55634767836791,7.64917868677046,1.18811621701012)); +#53952=CARTESIAN_POINT('',(-3.64365232163209,7.64917868677046,1.18811621701012)); +#53953=CARTESIAN_POINT('',(-3.68249898034617,7.63400811275932,1.27094087086789)); +#53954=CARTESIAN_POINT('',(-3.72,7.59805032943425,1.35226988655065)); +#53955=CARTESIAN_POINT('',(-3.72,7.5374,1.42344658967066)); +#53956=CARTESIAN_POINT('',(-3.72,7.5374,1.42344658967066)); +#53957=CARTESIAN_POINT('',(-3.72,7.155,1.0976)); +#53958=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53959=CARTESIAN_POINT('',(-2.92,7.19,1.59877936908855)); +#53960=CARTESIAN_POINT('',(-2.92,7.17154879938732,1.60006791379186)); +#53961=CARTESIAN_POINT('',(-2.9365034374292,7.15499999999984,1.60000000000025)); +#53962=CARTESIAN_POINT('',(-2.95499999999996,7.15499999999982,1.60000000000025)); +#53963=CARTESIAN_POINT('',(-2.92,7.19,1.59877936908855)); +#53964=CARTESIAN_POINT('',(-2.68,7.19,1.59877936908855)); +#53965=CARTESIAN_POINT('',(-2.68,7.17154879938732,1.60006791379186)); +#53966=CARTESIAN_POINT('',(-2.6634965625708,7.15499999999984,1.60000000000025)); +#53967=CARTESIAN_POINT('',(-2.64500000000004,7.15499999999982,1.60000000000025)); +#53968=CARTESIAN_POINT('',(-2.68,7.19,1.59877936908855)); +#53969=CARTESIAN_POINT('',(-2.68,7.155,1.0976)); +#53970=CARTESIAN_POINT('',(-2.68,7.5374,1.42344658967066)); +#53971=CARTESIAN_POINT('',(-2.68,7.5374,1.42344658967066)); +#53972=CARTESIAN_POINT('',(-2.68,7.59787264997766,1.35247840376812)); +#53973=CARTESIAN_POINT('',(-2.71755793324588,7.63403033891439,1.27081952584833)); +#53974=CARTESIAN_POINT('',(-2.75634767836791,7.64917868677046,1.18811621701012)); +#53975=CARTESIAN_POINT('',(-2.84365232163209,7.64917868677046,1.18811621701012)); +#53976=CARTESIAN_POINT('',(-2.88249898034617,7.63400811275932,1.27094087086789)); +#53977=CARTESIAN_POINT('',(-2.92,7.59805032943425,1.35226988655065)); +#53978=CARTESIAN_POINT('',(-2.92,7.5374,1.42344658967066)); +#53979=CARTESIAN_POINT('',(-2.92,7.5374,1.42344658967066)); +#53980=CARTESIAN_POINT('',(-2.92,7.155,1.0976)); +#53981=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#53982=CARTESIAN_POINT('',(-2.12,7.19,1.59877936908855)); +#53983=CARTESIAN_POINT('',(-2.12,7.17154879938732,1.60006791379186)); +#53984=CARTESIAN_POINT('',(-2.1365034374292,7.15499999999984,1.60000000000025)); +#53985=CARTESIAN_POINT('',(-2.15499999999996,7.15499999999982,1.60000000000025)); +#53986=CARTESIAN_POINT('',(-2.12,7.19,1.59877936908855)); +#53987=CARTESIAN_POINT('',(-1.88,7.19,1.59877936908855)); +#53988=CARTESIAN_POINT('',(-1.88,7.17154879938732,1.60006791379186)); +#53989=CARTESIAN_POINT('',(-1.8634965625708,7.15499999999984,1.60000000000025)); +#53990=CARTESIAN_POINT('',(-1.84500000000004,7.15499999999982,1.60000000000025)); +#53991=CARTESIAN_POINT('',(-1.88,7.19,1.59877936908855)); +#53992=CARTESIAN_POINT('',(-1.88,7.155,1.0976)); +#53993=CARTESIAN_POINT('',(-1.88,7.5374,1.42344658967066)); +#53994=CARTESIAN_POINT('',(-1.88,7.5374,1.42344658967066)); +#53995=CARTESIAN_POINT('',(-1.88,7.59787264997766,1.35247840376812)); +#53996=CARTESIAN_POINT('',(-1.91755793324588,7.63403033891439,1.27081952584834)); +#53997=CARTESIAN_POINT('',(-1.95634767836791,7.64917868677046,1.18811621701012)); +#53998=CARTESIAN_POINT('',(-2.04365232163209,7.64917868677046,1.18811621701012)); +#53999=CARTESIAN_POINT('',(-2.08249898034617,7.63400811275932,1.27094087086789)); +#54000=CARTESIAN_POINT('',(-2.12,7.59805032943425,1.35226988655065)); +#54001=CARTESIAN_POINT('',(-2.12,7.5374,1.42344658967066)); +#54002=CARTESIAN_POINT('',(-2.12,7.5374,1.42344658967066)); +#54003=CARTESIAN_POINT('',(-2.12,7.155,1.0976)); +#54004=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54005=CARTESIAN_POINT('',(-1.32,7.19,1.59877936908855)); +#54006=CARTESIAN_POINT('',(-1.32,7.17154879938732,1.60006791379186)); +#54007=CARTESIAN_POINT('',(-1.3365034374292,7.15499999999984,1.60000000000025)); +#54008=CARTESIAN_POINT('',(-1.35499999999996,7.15499999999982,1.60000000000025)); +#54009=CARTESIAN_POINT('',(-1.32,7.19,1.59877936908855)); +#54010=CARTESIAN_POINT('',(-1.08,7.19,1.59877936908855)); +#54011=CARTESIAN_POINT('',(-1.08,7.17154879938732,1.60006791379186)); +#54012=CARTESIAN_POINT('',(-1.0634965625708,7.15499999999984,1.60000000000025)); +#54013=CARTESIAN_POINT('',(-1.04500000000004,7.15499999999982,1.60000000000025)); +#54014=CARTESIAN_POINT('',(-1.08,7.19,1.59877936908855)); +#54015=CARTESIAN_POINT('',(-1.08,7.155,1.0976)); +#54016=CARTESIAN_POINT('',(-1.08,7.5374,1.42344658967066)); +#54017=CARTESIAN_POINT('',(-1.08,7.5374,1.42344658967066)); +#54018=CARTESIAN_POINT('',(-1.08,7.59787264997766,1.35247840376812)); +#54019=CARTESIAN_POINT('',(-1.11755793324588,7.63403033891439,1.27081952584833)); +#54020=CARTESIAN_POINT('',(-1.15634767836791,7.64917868677046,1.18811621701012)); +#54021=CARTESIAN_POINT('',(-1.24365232163209,7.64917868677046,1.18811621701012)); +#54022=CARTESIAN_POINT('',(-1.28249898034617,7.63400811275933,1.27094087086789)); +#54023=CARTESIAN_POINT('',(-1.32,7.59805032943425,1.35226988655065)); +#54024=CARTESIAN_POINT('',(-1.32,7.5374,1.42344658967066)); +#54025=CARTESIAN_POINT('',(-1.32,7.5374,1.42344658967066)); +#54026=CARTESIAN_POINT('',(-1.32,7.155,1.0976)); +#54027=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54028=CARTESIAN_POINT('',(-0.520000000000001,7.19,1.59877936908855)); +#54029=CARTESIAN_POINT('',(-0.520000000000001,7.17154879938732,1.60006791379186)); +#54030=CARTESIAN_POINT('',(-0.536503437429199,7.15499999999984,1.60000000000025)); +#54031=CARTESIAN_POINT('',(-0.554999999999959,7.15499999999982,1.60000000000025)); +#54032=CARTESIAN_POINT('',(-0.520000000000001,7.19,1.59877936908855)); +#54033=CARTESIAN_POINT('',(-0.28,7.19,1.59877936908855)); +#54034=CARTESIAN_POINT('',(-0.28,7.17154879938732,1.60006791379186)); +#54035=CARTESIAN_POINT('',(-0.263496562570803,7.15499999999984,1.60000000000025)); +#54036=CARTESIAN_POINT('',(-0.245000000000042,7.15499999999982,1.60000000000025)); +#54037=CARTESIAN_POINT('',(-0.28,7.19,1.59877936908855)); +#54038=CARTESIAN_POINT('',(-0.280000000000001,7.155,1.0976)); +#54039=CARTESIAN_POINT('',(-0.280000000000001,7.5374,1.42344658967066)); +#54040=CARTESIAN_POINT('',(-0.28,7.5374,1.42344658967066)); +#54041=CARTESIAN_POINT('',(-0.28,7.59787264997766,1.35247840376812)); +#54042=CARTESIAN_POINT('',(-0.317557933245881,7.63403033891439,1.27081952584834)); +#54043=CARTESIAN_POINT('',(-0.356347678367913,7.64917868677046,1.18811621701012)); +#54044=CARTESIAN_POINT('',(-0.443652321632087,7.64917868677046,1.18811621701012)); +#54045=CARTESIAN_POINT('',(-0.482498980346169,7.63400811275933,1.27094087086789)); +#54046=CARTESIAN_POINT('',(-0.520000000000001,7.59805032943425,1.35226988655065)); +#54047=CARTESIAN_POINT('',(-0.520000000000001,7.5374,1.42344658967066)); +#54048=CARTESIAN_POINT('',(-0.520000000000001,7.5374,1.42344658967066)); +#54049=CARTESIAN_POINT('',(-0.520000000000001,7.155,1.0976)); +#54050=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54051=CARTESIAN_POINT('',(0.279999999999999,7.19,1.59877936908855)); +#54052=CARTESIAN_POINT('',(0.28,7.17154879938732,1.60006791379186)); +#54053=CARTESIAN_POINT('',(0.263496562570802,7.15499999999984,1.60000000000025)); +#54054=CARTESIAN_POINT('',(0.245000000000041,7.15499999999982,1.60000000000025)); +#54055=CARTESIAN_POINT('',(0.279999999999999,7.19,1.59877936908855)); +#54056=CARTESIAN_POINT('',(0.52,7.19,1.59877936908855)); +#54057=CARTESIAN_POINT('',(0.52,7.17154879938732,1.60006791379186)); +#54058=CARTESIAN_POINT('',(0.536503437429197,7.15499999999984,1.60000000000025)); +#54059=CARTESIAN_POINT('',(0.554999999999958,7.15499999999982,1.60000000000025)); +#54060=CARTESIAN_POINT('',(0.52,7.19,1.59877936908855)); +#54061=CARTESIAN_POINT('',(0.52,7.155,1.0976)); +#54062=CARTESIAN_POINT('',(0.52,7.5374,1.42344658967066)); +#54063=CARTESIAN_POINT('',(0.52,7.5374,1.42344658967066)); +#54064=CARTESIAN_POINT('',(0.52,7.59787264997766,1.35247840376812)); +#54065=CARTESIAN_POINT('',(0.482442066754119,7.63403033891439,1.27081952584834)); +#54066=CARTESIAN_POINT('',(0.443652321632087,7.64917868677046,1.18811621701012)); +#54067=CARTESIAN_POINT('',(0.356347678367913,7.64917868677046,1.18811621701012)); +#54068=CARTESIAN_POINT('',(0.317501019653831,7.63400811275932,1.27094087086789)); +#54069=CARTESIAN_POINT('',(0.279999999999999,7.59805032943425,1.35226988655065)); +#54070=CARTESIAN_POINT('',(0.279999999999999,7.5374,1.42344658967066)); +#54071=CARTESIAN_POINT('',(0.279999999999999,7.5374,1.42344658967066)); +#54072=CARTESIAN_POINT('',(0.279999999999999,7.155,1.0976)); +#54073=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54074=CARTESIAN_POINT('',(1.08,7.19,1.59877936908855)); +#54075=CARTESIAN_POINT('',(1.08,7.17154879938732,1.60006791379186)); +#54076=CARTESIAN_POINT('',(1.0634965625708,7.15499999999984,1.60000000000025)); +#54077=CARTESIAN_POINT('',(1.04500000000004,7.15499999999982,1.60000000000025)); +#54078=CARTESIAN_POINT('',(1.08,7.19,1.59877936908855)); +#54079=CARTESIAN_POINT('',(1.32,7.19,1.59877936908855)); +#54080=CARTESIAN_POINT('',(1.32,7.17154879938732,1.60006791379186)); +#54081=CARTESIAN_POINT('',(1.3365034374292,7.15499999999984,1.60000000000025)); +#54082=CARTESIAN_POINT('',(1.35499999999996,7.15499999999982,1.60000000000025)); +#54083=CARTESIAN_POINT('',(1.32,7.19,1.59877936908855)); +#54084=CARTESIAN_POINT('',(1.32,7.155,1.0976)); +#54085=CARTESIAN_POINT('',(1.32,7.5374,1.42344658967066)); +#54086=CARTESIAN_POINT('',(1.32,7.5374,1.42344658967066)); +#54087=CARTESIAN_POINT('',(1.32,7.59787264997766,1.35247840376812)); +#54088=CARTESIAN_POINT('',(1.28244206675412,7.63403033891439,1.27081952584834)); +#54089=CARTESIAN_POINT('',(1.24365232163209,7.64917868677046,1.18811621701012)); +#54090=CARTESIAN_POINT('',(1.15634767836791,7.64917868677046,1.18811621701012)); +#54091=CARTESIAN_POINT('',(1.11750101965383,7.63400811275932,1.27094087086789)); +#54092=CARTESIAN_POINT('',(1.08,7.59805032943425,1.35226988655065)); +#54093=CARTESIAN_POINT('',(1.08,7.5374,1.42344658967066)); +#54094=CARTESIAN_POINT('',(1.08,7.5374,1.42344658967066)); +#54095=CARTESIAN_POINT('',(1.08,7.155,1.0976)); +#54096=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54097=CARTESIAN_POINT('',(1.88,7.19,1.59877936908855)); +#54098=CARTESIAN_POINT('',(1.88,7.17154879938732,1.60006791379186)); +#54099=CARTESIAN_POINT('',(1.8634965625708,7.15499999999984,1.60000000000025)); +#54100=CARTESIAN_POINT('',(1.84500000000004,7.15499999999982,1.60000000000025)); +#54101=CARTESIAN_POINT('',(1.88,7.19,1.59877936908855)); +#54102=CARTESIAN_POINT('',(2.12,7.19,1.59877936908855)); +#54103=CARTESIAN_POINT('',(2.12,7.17154879938732,1.60006791379186)); +#54104=CARTESIAN_POINT('',(2.1365034374292,7.15499999999984,1.60000000000025)); +#54105=CARTESIAN_POINT('',(2.15499999999996,7.15499999999982,1.60000000000025)); +#54106=CARTESIAN_POINT('',(2.12,7.19,1.59877936908855)); +#54107=CARTESIAN_POINT('',(2.12,7.155,1.0976)); +#54108=CARTESIAN_POINT('',(2.12,7.5374,1.42344658967066)); +#54109=CARTESIAN_POINT('',(2.12,7.5374,1.42344658967066)); +#54110=CARTESIAN_POINT('',(2.12,7.59787264997766,1.35247840376812)); +#54111=CARTESIAN_POINT('',(2.08244206675412,7.63403033891439,1.27081952584834)); +#54112=CARTESIAN_POINT('',(2.04365232163209,7.64917868677046,1.18811621701012)); +#54113=CARTESIAN_POINT('',(1.95634767836791,7.64917868677046,1.18811621701012)); +#54114=CARTESIAN_POINT('',(1.91750101965383,7.63400811275932,1.27094087086789)); +#54115=CARTESIAN_POINT('',(1.88,7.59805032943425,1.35226988655065)); +#54116=CARTESIAN_POINT('',(1.88,7.5374,1.42344658967066)); +#54117=CARTESIAN_POINT('',(1.88,7.5374,1.42344658967066)); +#54118=CARTESIAN_POINT('',(1.88,7.155,1.0976)); +#54119=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54120=CARTESIAN_POINT('',(2.68,7.19,1.59877936908855)); +#54121=CARTESIAN_POINT('',(2.68,7.17154879938732,1.60006791379186)); +#54122=CARTESIAN_POINT('',(2.6634965625708,7.15499999999984,1.60000000000025)); +#54123=CARTESIAN_POINT('',(2.64500000000004,7.15499999999982,1.60000000000025)); +#54124=CARTESIAN_POINT('',(2.68,7.19,1.59877936908855)); +#54125=CARTESIAN_POINT('',(2.92,7.19,1.59877936908855)); +#54126=CARTESIAN_POINT('',(2.92,7.17154879938732,1.60006791379186)); +#54127=CARTESIAN_POINT('',(2.9365034374292,7.15499999999984,1.60000000000025)); +#54128=CARTESIAN_POINT('',(2.95499999999996,7.15499999999982,1.60000000000025)); +#54129=CARTESIAN_POINT('',(2.92,7.19,1.59877936908855)); +#54130=CARTESIAN_POINT('',(2.92,7.155,1.0976)); +#54131=CARTESIAN_POINT('',(2.92,7.5374,1.42344658967066)); +#54132=CARTESIAN_POINT('',(2.92,7.5374,1.42344658967066)); +#54133=CARTESIAN_POINT('',(2.92,7.59787264997766,1.35247840376812)); +#54134=CARTESIAN_POINT('',(2.88244206675412,7.63403033891439,1.27081952584834)); +#54135=CARTESIAN_POINT('',(2.84365232163209,7.64917868677046,1.18811621701012)); +#54136=CARTESIAN_POINT('',(2.75634767836791,7.64917868677046,1.18811621701012)); +#54137=CARTESIAN_POINT('',(2.71750101965383,7.63400811275932,1.27094087086789)); +#54138=CARTESIAN_POINT('',(2.68,7.59805032943425,1.35226988655065)); +#54139=CARTESIAN_POINT('',(2.68,7.5374,1.42344658967066)); +#54140=CARTESIAN_POINT('',(2.68,7.5374,1.42344658967066)); +#54141=CARTESIAN_POINT('',(2.68,7.155,1.0976)); +#54142=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54143=CARTESIAN_POINT('',(3.48,7.19,1.59877936908855)); +#54144=CARTESIAN_POINT('',(3.48,7.17154879938732,1.60006791379186)); +#54145=CARTESIAN_POINT('',(3.4634965625708,7.15499999999984,1.60000000000025)); +#54146=CARTESIAN_POINT('',(3.44500000000004,7.15499999999982,1.60000000000025)); +#54147=CARTESIAN_POINT('',(3.48,7.19,1.59877936908855)); +#54148=CARTESIAN_POINT('',(3.72,7.19,1.59877936908855)); +#54149=CARTESIAN_POINT('',(3.72,7.17154879938732,1.60006791379186)); +#54150=CARTESIAN_POINT('',(3.7365034374292,7.15499999999984,1.60000000000025)); +#54151=CARTESIAN_POINT('',(3.75499999999996,7.15499999999982,1.60000000000025)); +#54152=CARTESIAN_POINT('',(3.72,7.19,1.59877936908855)); +#54153=CARTESIAN_POINT('',(3.72,7.155,1.0976)); +#54154=CARTESIAN_POINT('',(3.72,7.5374,1.42344658967066)); +#54155=CARTESIAN_POINT('',(3.72,7.5374,1.42344658967066)); +#54156=CARTESIAN_POINT('',(3.72,7.59787264997766,1.35247840376812)); +#54157=CARTESIAN_POINT('',(3.68244206675412,7.63403033891439,1.27081952584834)); +#54158=CARTESIAN_POINT('',(3.64365232163209,7.64917868677046,1.18811621701012)); +#54159=CARTESIAN_POINT('',(3.55634767836791,7.64917868677046,1.18811621701012)); +#54160=CARTESIAN_POINT('',(3.51750101965383,7.63400811275933,1.27094087086789)); +#54161=CARTESIAN_POINT('',(3.48,7.59805032943425,1.35226988655065)); +#54162=CARTESIAN_POINT('',(3.48,7.5374,1.42344658967066)); +#54163=CARTESIAN_POINT('',(3.48,7.5374,1.42344658967066)); +#54164=CARTESIAN_POINT('',(3.48,7.155,1.0976)); +#54165=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54166=CARTESIAN_POINT('',(4.28,7.19,1.59877936908855)); +#54167=CARTESIAN_POINT('',(4.28,7.17154879938732,1.60006791379186)); +#54168=CARTESIAN_POINT('',(4.2634965625708,7.15499999999984,1.60000000000025)); +#54169=CARTESIAN_POINT('',(4.24500000000004,7.15499999999982,1.60000000000025)); +#54170=CARTESIAN_POINT('',(4.28,7.19,1.59877936908855)); +#54171=CARTESIAN_POINT('',(4.52,7.19,1.59877936908855)); +#54172=CARTESIAN_POINT('',(4.52,7.17154879938732,1.60006791379186)); +#54173=CARTESIAN_POINT('',(4.5365034374292,7.15499999999984,1.60000000000025)); +#54174=CARTESIAN_POINT('',(4.55499999999996,7.15499999999982,1.60000000000025)); +#54175=CARTESIAN_POINT('',(4.52,7.19,1.59877936908855)); +#54176=CARTESIAN_POINT('',(4.52,7.155,1.0976)); +#54177=CARTESIAN_POINT('',(4.52,7.5374,1.42344658967066)); +#54178=CARTESIAN_POINT('',(4.52,7.5374,1.42344658967066)); +#54179=CARTESIAN_POINT('',(4.52,7.59787264997766,1.35247840376812)); +#54180=CARTESIAN_POINT('',(4.48244206675412,7.63403033891439,1.27081952584834)); +#54181=CARTESIAN_POINT('',(4.44365232163209,7.64917868677046,1.18811621701012)); +#54182=CARTESIAN_POINT('',(4.35634767836791,7.64917868677046,1.18811621701012)); +#54183=CARTESIAN_POINT('',(4.31750101965383,7.63400811275932,1.27094087086789)); +#54184=CARTESIAN_POINT('',(4.28,7.59805032943425,1.35226988655065)); +#54185=CARTESIAN_POINT('',(4.28,7.5374,1.42344658967066)); +#54186=CARTESIAN_POINT('',(4.28,7.5374,1.42344658967066)); +#54187=CARTESIAN_POINT('',(4.28,7.155,1.0976)); +#54188=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54189=CARTESIAN_POINT('',(5.08,7.19,1.59877936908855)); +#54190=CARTESIAN_POINT('',(5.08,7.17154879938732,1.60006791379186)); +#54191=CARTESIAN_POINT('',(5.0634965625708,7.15499999999984,1.60000000000025)); +#54192=CARTESIAN_POINT('',(5.04500000000004,7.15499999999982,1.60000000000025)); +#54193=CARTESIAN_POINT('',(5.08,7.19,1.59877936908855)); +#54194=CARTESIAN_POINT('',(5.32,7.19,1.59877936908855)); +#54195=CARTESIAN_POINT('',(5.32,7.17154879938732,1.60006791379186)); +#54196=CARTESIAN_POINT('',(5.3365034374292,7.15499999999984,1.60000000000025)); +#54197=CARTESIAN_POINT('',(5.35499999999996,7.15499999999982,1.60000000000025)); +#54198=CARTESIAN_POINT('',(5.32,7.19,1.59877936908855)); +#54199=CARTESIAN_POINT('',(5.32,7.155,1.0976)); +#54200=CARTESIAN_POINT('',(5.32,7.5374,1.42344658967066)); +#54201=CARTESIAN_POINT('',(5.32,7.5374,1.42344658967066)); +#54202=CARTESIAN_POINT('',(5.32,7.59787264997766,1.35247840376812)); +#54203=CARTESIAN_POINT('',(5.28244206675412,7.63403033891439,1.27081952584834)); +#54204=CARTESIAN_POINT('',(5.24365232163209,7.64917868677046,1.18811621701012)); +#54205=CARTESIAN_POINT('',(5.15634767836791,7.64917868677046,1.18811621701012)); +#54206=CARTESIAN_POINT('',(5.11750101965383,7.63400811275932,1.27094087086789)); +#54207=CARTESIAN_POINT('',(5.08,7.59805032943425,1.35226988655065)); +#54208=CARTESIAN_POINT('',(5.08,7.5374,1.42344658967066)); +#54209=CARTESIAN_POINT('',(5.08,7.5374,1.42344658967066)); +#54210=CARTESIAN_POINT('',(5.08,7.155,1.0976)); +#54211=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54212=CARTESIAN_POINT('',(5.88,7.19,1.59877936908855)); +#54213=CARTESIAN_POINT('',(5.88,7.17154879938732,1.60006791379186)); +#54214=CARTESIAN_POINT('',(5.8634965625708,7.15499999999984,1.60000000000025)); +#54215=CARTESIAN_POINT('',(5.84500000000004,7.15499999999982,1.60000000000025)); +#54216=CARTESIAN_POINT('',(5.88,7.19,1.59877936908855)); +#54217=CARTESIAN_POINT('',(6.12,7.19,1.59877936908855)); +#54218=CARTESIAN_POINT('',(6.12,7.17154879938732,1.60006791379186)); +#54219=CARTESIAN_POINT('',(6.1365034374292,7.15499999999984,1.60000000000025)); +#54220=CARTESIAN_POINT('',(6.15499999999996,7.15499999999982,1.60000000000025)); +#54221=CARTESIAN_POINT('',(6.12,7.19,1.59877936908855)); +#54222=CARTESIAN_POINT('',(6.12,7.155,1.0976)); +#54223=CARTESIAN_POINT('',(6.12,7.5374,1.42344658967066)); +#54224=CARTESIAN_POINT('',(6.12,7.5374,1.42344658967066)); +#54225=CARTESIAN_POINT('',(6.12,7.59787264997766,1.35247840376812)); +#54226=CARTESIAN_POINT('',(6.08244206675412,7.63403033891439,1.27081952584834)); +#54227=CARTESIAN_POINT('',(6.04365232163209,7.64917868677046,1.18811621701012)); +#54228=CARTESIAN_POINT('',(5.95634767836791,7.64917868677046,1.18811621701012)); +#54229=CARTESIAN_POINT('',(5.91750101965383,7.63400811275932,1.27094087086789)); +#54230=CARTESIAN_POINT('',(5.88,7.59805032943425,1.35226988655065)); +#54231=CARTESIAN_POINT('',(5.88,7.5374,1.42344658967066)); +#54232=CARTESIAN_POINT('',(5.88,7.5374,1.42344658967066)); +#54233=CARTESIAN_POINT('',(5.88,7.155,1.0976)); +#54234=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54235=CARTESIAN_POINT('',(6.68,7.19,1.59877936908855)); +#54236=CARTESIAN_POINT('',(6.68,7.17154879938732,1.60006791379186)); +#54237=CARTESIAN_POINT('',(6.6634965625708,7.15499999999984,1.60000000000025)); +#54238=CARTESIAN_POINT('',(6.64500000000004,7.15499999999982,1.60000000000025)); +#54239=CARTESIAN_POINT('',(6.68,7.19,1.59877936908855)); +#54240=CARTESIAN_POINT('',(6.92,7.19,1.59877936908855)); +#54241=CARTESIAN_POINT('',(6.92,7.17154879938732,1.60006791379186)); +#54242=CARTESIAN_POINT('',(6.9365034374292,7.15499999999984,1.60000000000025)); +#54243=CARTESIAN_POINT('',(6.95499999999996,7.15499999999982,1.60000000000025)); +#54244=CARTESIAN_POINT('',(6.92,7.19,1.59877936908855)); +#54245=CARTESIAN_POINT('',(6.92,7.155,1.0976)); +#54246=CARTESIAN_POINT('',(6.92,7.5374,1.42344658967066)); +#54247=CARTESIAN_POINT('',(6.92,7.5374,1.42344658967066)); +#54248=CARTESIAN_POINT('',(6.92,7.59787264997766,1.35247840376812)); +#54249=CARTESIAN_POINT('',(6.88244206675412,7.63403033891439,1.27081952584834)); +#54250=CARTESIAN_POINT('',(6.84365232163209,7.64917868677046,1.18811621701012)); +#54251=CARTESIAN_POINT('',(6.75634767836791,7.64917868677046,1.18811621701012)); +#54252=CARTESIAN_POINT('',(6.71750101965383,7.63400811275933,1.27094087086789)); +#54253=CARTESIAN_POINT('',(6.68,7.59805032943425,1.35226988655065)); +#54254=CARTESIAN_POINT('',(6.68,7.5374,1.42344658967066)); +#54255=CARTESIAN_POINT('',(6.68,7.5374,1.42344658967066)); +#54256=CARTESIAN_POINT('',(6.68,7.155,1.0976)); +#54257=CARTESIAN_POINT('',(7.89,7.155,1.0976)); +#54258=CARTESIAN_POINT('',(7.48,7.19,1.59877936908855)); +#54259=CARTESIAN_POINT('',(7.48,7.17154879938732,1.60006791379186)); +#54260=CARTESIAN_POINT('',(7.4634965625708,7.15499999999984,1.60000000000025)); +#54261=CARTESIAN_POINT('',(7.44500000000004,7.15499999999982,1.60000000000025)); +#54262=CARTESIAN_POINT('',(7.48,7.19,1.59877936908855)); +#54263=CARTESIAN_POINT('',(7.72,7.19,1.59877936908855)); +#54264=CARTESIAN_POINT('',(7.72,7.17154879938732,1.60006791379186)); +#54265=CARTESIAN_POINT('',(7.7365034374292,7.15499999999984,1.60000000000025)); +#54266=CARTESIAN_POINT('',(7.75499999999996,7.15499999999982,1.60000000000025)); +#54267=CARTESIAN_POINT('',(7.72,7.19,1.59877936908855)); +#54268=CARTESIAN_POINT('',(7.72,7.155,1.0976)); +#54269=CARTESIAN_POINT('',(7.72,7.5374,1.42344658967066)); +#54270=CARTESIAN_POINT('',(7.72,7.5374,1.42344658967066)); +#54271=CARTESIAN_POINT('',(7.72,7.59787264997766,1.35247840376812)); +#54272=CARTESIAN_POINT('',(7.68244206675412,7.63403033891439,1.27081952584834)); +#54273=CARTESIAN_POINT('',(7.64365232163209,7.64917868677046,1.18811621701012)); +#54274=CARTESIAN_POINT('',(7.64365232163209,7.64917868677046,1.18811621701012)); +#54275=CARTESIAN_POINT('',(7.89,7.64917868677046,1.18811621701012)); +#54276=CARTESIAN_POINT('',(7.55634767836791,7.64917868677046,1.18811621701012)); +#54277=CARTESIAN_POINT('',(7.55634767836791,7.64917868677046,1.18811621701012)); +#54278=CARTESIAN_POINT('',(7.51750101965383,7.63400811275932,1.27094087086789)); +#54279=CARTESIAN_POINT('',(7.48,7.59805032943425,1.35226988655065)); +#54280=CARTESIAN_POINT('',(7.48,7.5374,1.42344658967066)); +#54281=CARTESIAN_POINT('',(7.48,7.5374,1.42344658967066)); +#54282=CARTESIAN_POINT('',(7.48,7.155,1.0976)); +#54283=CARTESIAN_POINT('',(7.89,0.6524,2.0088)); +#54284=CARTESIAN_POINT('',(7.89,1.05,2.0088)); +#54285=CARTESIAN_POINT('',(7.89,4.02098076211353,4.)); +#54286=CARTESIAN_POINT('',(-7.89,0.6524,2.0088)); +#54287=CARTESIAN_POINT('',(-7.89,1.05,2.0088)); +#54288=CARTESIAN_POINT('',(-7.89,4.02098076211354,4.)); +#54289=CARTESIAN_POINT('',(7.89,7.64917868677046,-1.18811621701012)); +#54290=CARTESIAN_POINT('',(7.6,7.5374,-1.12358076211353)); +#54291=CARTESIAN_POINT('',(7.48,7.5374,-1.12358076211353)); +#54292=CARTESIAN_POINT('',(7.48,7.64917868677046,-1.18811621701012)); +#54293=CARTESIAN_POINT('',(7.72,7.64917868677046,-1.18811621701012)); +#54294=CARTESIAN_POINT('',(7.72,7.5374,-1.12358076211353)); +#54295=CARTESIAN_POINT('',(7.6,7.5374,-1.12358076211353)); +#54296=CARTESIAN_POINT('',(7.89,7.4924,1.0976)); +#54297=CARTESIAN_POINT('',(7.48,7.4924,1.0976)); +#54298=CARTESIAN_POINT('',(7.48,7.5374,1.12358076211353)); +#54299=CARTESIAN_POINT('',(7.6,7.5374,1.12358076211353)); +#54300=CARTESIAN_POINT('',(7.6,7.5374,1.12358076211353)); +#54301=CARTESIAN_POINT('',(7.72,7.5374,1.12358076211353)); +#54302=CARTESIAN_POINT('',(7.72,7.4924,1.0976)); +#54303=CARTESIAN_POINT('',(-7.6,7.5374,4.)); +#54304=CARTESIAN_POINT('',(-7.72,7.5374,4.)); +#54305=CARTESIAN_POINT('',(-7.72,7.5374,4.)); +#54306=CARTESIAN_POINT('',(-7.72,7.19,4.)); +#54307=CARTESIAN_POINT('',(-7.755,7.085,4.)); +#54308=CARTESIAN_POINT('',(-7.825,7.085,4.)); +#54309=CARTESIAN_POINT('',(-7.755,7.155,4.)); +#54310=CARTESIAN_POINT('',(-7.825,7.085,4.)); +#54311=CARTESIAN_POINT('',(-7.825,4.17643593539449,4.)); +#54312=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,4.)); +#54313=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,4.)); +#54314=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,4.)); +#54315=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,4.)); +#54316=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,4.)); +#54317=CARTESIAN_POINT('',(-7.755,7.19,4.)); +#54318=CARTESIAN_POINT('',(-7.755,7.085,4.)); +#54319=CARTESIAN_POINT('',(-7.825,7.085,4.)); +#54320=CARTESIAN_POINT('',(-7.755,7.155,4.)); +#54321=CARTESIAN_POINT('',(-7.825,7.085,4.)); +#54322=CARTESIAN_POINT('',(-7.825,4.17643593539449,4.)); +#54323=CARTESIAN_POINT('',(-7.90500000000002,4.17643593539449,4.)); +#54324=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,4.)); +#54325=CARTESIAN_POINT('',(-7.81000000000002,4.02098076211354,4.)); +#54326=CARTESIAN_POINT('',(-7.87928203230276,4.06098076211353,4.)); +#54327=CARTESIAN_POINT('',(-7.83571796769724,4.13643593539449,4.)); +#54328=CARTESIAN_POINT('',(-7.72,7.5374,4.)); +#54329=CARTESIAN_POINT('',(-7.72,7.19,4.)); +#54330=CARTESIAN_POINT('',(-7.72,7.5374,4.)); +#54331=CARTESIAN_POINT('',(-7.755,7.19,4.)); +#54332=CARTESIAN_POINT('',(-7.6,7.5374,4.)); +#54333=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,4.)); +#54334=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,4.)); +#54335=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,4.)); +#54336=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,4.)); +#54337=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,4.)); +#54338=CARTESIAN_POINT('',(7.825,4.17643593539449,4.)); +#54339=CARTESIAN_POINT('',(7.825,4.17643593539449,4.)); +#54340=CARTESIAN_POINT('',(7.825,7.085,4.)); +#54341=CARTESIAN_POINT('',(7.755,7.085,4.)); +#54342=CARTESIAN_POINT('',(7.755,7.155,4.)); +#54343=CARTESIAN_POINT('',(7.755,7.19,4.)); +#54344=CARTESIAN_POINT('',(7.72,7.19,4.)); +#54345=CARTESIAN_POINT('',(7.72,7.19,4.)); +#54346=CARTESIAN_POINT('',(7.72,7.5374,4.)); +#54347=CARTESIAN_POINT('',(7.6,7.5374,4.)); +#54348=CARTESIAN_POINT('',(7.80999999999999,4.02098076211353,4.)); +#54349=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,4.)); +#54350=CARTESIAN_POINT('',(7.87928203230275,4.06098076211353,4.)); +#54351=CARTESIAN_POINT('',(7.83571796769724,4.13643593539449,4.)); +#54352=CARTESIAN_POINT('',(7.90500000000003,4.1764359353945,4.)); +#54353=CARTESIAN_POINT('',(7.825,4.17643593539449,4.)); +#54354=CARTESIAN_POINT('',(7.825,4.17643593539449,4.)); +#54355=CARTESIAN_POINT('',(7.825,7.085,4.)); +#54356=CARTESIAN_POINT('',(7.755,7.085,4.)); +#54357=CARTESIAN_POINT('',(7.755,7.155,4.)); +#54358=CARTESIAN_POINT('',(7.755,7.19,4.)); +#54359=CARTESIAN_POINT('',(7.72,7.19,4.)); +#54360=CARTESIAN_POINT('',(7.72,7.19,4.)); +#54361=CARTESIAN_POINT('',(7.72,7.5374,4.)); +#54362=CARTESIAN_POINT('',(7.6,7.5374,4.)); +#54363=CARTESIAN_POINT('',(7.6,7.5374,4.)); +#54364=CARTESIAN_POINT('',(7.48,7.5374,4.)); +#54365=CARTESIAN_POINT('',(7.48,7.5374,4.)); +#54366=CARTESIAN_POINT('',(7.48,7.19,4.)); +#54367=CARTESIAN_POINT('',(7.445,7.085,4.)); +#54368=CARTESIAN_POINT('',(7.375,7.085,4.)); +#54369=CARTESIAN_POINT('',(7.445,7.155,4.)); +#54370=CARTESIAN_POINT('',(7.375,7.085,4.)); +#54371=CARTESIAN_POINT('',(7.375,4.17643593539449,4.)); +#54372=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,4.)); +#54373=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,4.)); +#54374=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,4.)); +#54375=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,4.)); +#54376=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,4.)); +#54377=CARTESIAN_POINT('',(7.31,4.02098076211353,4.)); +#54378=CARTESIAN_POINT('',(7.31,4.02098076211353,4.)); +#54379=CARTESIAN_POINT('',(7.09,1.05,4.)); +#54380=CARTESIAN_POINT('',(7.09,4.02098076211353,4.)); +#54381=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,4.)); +#54382=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,4.)); +#54383=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,4.)); +#54384=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,4.)); +#54385=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,4.)); +#54386=CARTESIAN_POINT('',(7.025,4.17643593539449,4.)); +#54387=CARTESIAN_POINT('',(7.025,4.17643593539449,4.)); +#54388=CARTESIAN_POINT('',(7.025,7.085,4.)); +#54389=CARTESIAN_POINT('',(6.955,7.085,4.)); +#54390=CARTESIAN_POINT('',(6.955,7.155,4.)); +#54391=CARTESIAN_POINT('',(7.445,7.19,4.)); +#54392=CARTESIAN_POINT('',(6.955,7.19,4.)); +#54393=CARTESIAN_POINT('',(6.92,7.19,4.)); +#54394=CARTESIAN_POINT('',(6.92,7.19,4.)); +#54395=CARTESIAN_POINT('',(6.92,7.5374,4.)); +#54396=CARTESIAN_POINT('',(6.8,7.5374,4.)); +#54397=CARTESIAN_POINT('',(6.8,7.5374,4.)); +#54398=CARTESIAN_POINT('',(6.68,7.5374,4.)); +#54399=CARTESIAN_POINT('',(6.68,7.5374,4.)); +#54400=CARTESIAN_POINT('',(6.68,7.19,4.)); +#54401=CARTESIAN_POINT('',(6.645,7.085,4.)); +#54402=CARTESIAN_POINT('',(6.575,7.085,4.)); +#54403=CARTESIAN_POINT('',(6.645,7.155,4.)); +#54404=CARTESIAN_POINT('',(6.575,7.085,4.)); +#54405=CARTESIAN_POINT('',(6.575,4.17643593539449,4.)); +#54406=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,4.)); +#54407=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,4.)); +#54408=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,4.)); +#54409=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,4.)); +#54410=CARTESIAN_POINT('',(6.59,4.02098076211353,4.)); +#54411=CARTESIAN_POINT('',(6.51,4.02098076211353,4.)); +#54412=CARTESIAN_POINT('',(6.51,4.02098076211353,4.)); +#54413=CARTESIAN_POINT('',(6.29,1.05,4.)); +#54414=CARTESIAN_POINT('',(6.29,4.02098076211353,4.)); +#54415=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,4.)); +#54416=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,4.)); +#54417=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,4.)); +#54418=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,4.)); +#54419=CARTESIAN_POINT('',(6.305,4.17643593539449,4.)); +#54420=CARTESIAN_POINT('',(6.225,4.17643593539449,4.)); +#54421=CARTESIAN_POINT('',(6.225,4.17643593539449,4.)); +#54422=CARTESIAN_POINT('',(6.225,7.085,4.)); +#54423=CARTESIAN_POINT('',(6.155,7.085,4.)); +#54424=CARTESIAN_POINT('',(6.155,7.155,4.)); +#54425=CARTESIAN_POINT('',(6.645,7.19,4.)); +#54426=CARTESIAN_POINT('',(6.155,7.19,4.)); +#54427=CARTESIAN_POINT('',(6.12,7.19,4.)); +#54428=CARTESIAN_POINT('',(6.12,7.19,4.)); +#54429=CARTESIAN_POINT('',(6.12,7.5374,4.)); +#54430=CARTESIAN_POINT('',(6.,7.5374,4.)); +#54431=CARTESIAN_POINT('',(6.,7.5374,4.)); +#54432=CARTESIAN_POINT('',(5.88,7.5374,4.)); +#54433=CARTESIAN_POINT('',(5.88,7.5374,4.)); +#54434=CARTESIAN_POINT('',(5.88,7.19,4.)); +#54435=CARTESIAN_POINT('',(5.845,7.085,4.)); +#54436=CARTESIAN_POINT('',(5.775,7.085,4.)); +#54437=CARTESIAN_POINT('',(5.845,7.155,4.)); +#54438=CARTESIAN_POINT('',(5.775,7.085,4.)); +#54439=CARTESIAN_POINT('',(5.775,4.17643593539449,4.)); +#54440=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,4.)); +#54441=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,4.)); +#54442=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,4.)); +#54443=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,4.)); +#54444=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,4.)); +#54445=CARTESIAN_POINT('',(5.71,4.02098076211353,4.)); +#54446=CARTESIAN_POINT('',(5.71,4.02098076211353,4.)); +#54447=CARTESIAN_POINT('',(5.49,1.05,4.)); +#54448=CARTESIAN_POINT('',(5.49,4.02098076211353,4.)); +#54449=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,4.)); +#54450=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,4.)); +#54451=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,4.)); +#54452=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,4.)); +#54453=CARTESIAN_POINT('',(5.505,4.17643593539449,4.)); +#54454=CARTESIAN_POINT('',(5.425,4.17643593539449,4.)); +#54455=CARTESIAN_POINT('',(5.425,4.17643593539449,4.)); +#54456=CARTESIAN_POINT('',(5.425,7.085,4.)); +#54457=CARTESIAN_POINT('',(5.355,7.085,4.)); +#54458=CARTESIAN_POINT('',(5.355,7.155,4.)); +#54459=CARTESIAN_POINT('',(5.845,7.19,4.)); +#54460=CARTESIAN_POINT('',(5.355,7.19,4.)); +#54461=CARTESIAN_POINT('',(5.32,7.19,4.)); +#54462=CARTESIAN_POINT('',(5.32,7.19,4.)); +#54463=CARTESIAN_POINT('',(5.32,7.5374,4.)); +#54464=CARTESIAN_POINT('',(5.2,7.5374,4.)); +#54465=CARTESIAN_POINT('',(5.2,7.5374,4.)); +#54466=CARTESIAN_POINT('',(5.08,7.5374,4.)); +#54467=CARTESIAN_POINT('',(5.08,7.5374,4.)); +#54468=CARTESIAN_POINT('',(5.08,7.19,4.)); +#54469=CARTESIAN_POINT('',(5.045,7.085,4.)); +#54470=CARTESIAN_POINT('',(4.975,7.085,4.)); +#54471=CARTESIAN_POINT('',(5.045,7.155,4.)); +#54472=CARTESIAN_POINT('',(4.975,7.085,4.)); +#54473=CARTESIAN_POINT('',(4.975,4.17643593539449,4.)); +#54474=CARTESIAN_POINT('',(4.895,4.17643593539449,4.)); +#54475=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,4.)); +#54476=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,4.)); +#54477=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,4.)); +#54478=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,4.)); +#54479=CARTESIAN_POINT('',(4.91,4.02098076211353,4.)); +#54480=CARTESIAN_POINT('',(4.91,4.02098076211353,4.)); +#54481=CARTESIAN_POINT('',(4.69,1.05,4.)); +#54482=CARTESIAN_POINT('',(4.69,4.02098076211353,4.)); +#54483=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,4.)); +#54484=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,4.)); +#54485=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,4.)); +#54486=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,4.)); +#54487=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,4.)); +#54488=CARTESIAN_POINT('',(4.625,4.17643593539449,4.)); +#54489=CARTESIAN_POINT('',(4.625,4.17643593539449,4.)); +#54490=CARTESIAN_POINT('',(4.625,7.085,4.)); +#54491=CARTESIAN_POINT('',(4.555,7.085,4.)); +#54492=CARTESIAN_POINT('',(4.555,7.155,4.)); +#54493=CARTESIAN_POINT('',(5.045,7.19,4.)); +#54494=CARTESIAN_POINT('',(4.555,7.19,4.)); +#54495=CARTESIAN_POINT('',(4.52,7.19,4.)); +#54496=CARTESIAN_POINT('',(4.52,7.19,4.)); +#54497=CARTESIAN_POINT('',(4.52,7.5374,4.)); +#54498=CARTESIAN_POINT('',(4.4,7.5374,4.)); +#54499=CARTESIAN_POINT('',(4.4,7.5374,4.)); +#54500=CARTESIAN_POINT('',(4.28,7.5374,4.)); +#54501=CARTESIAN_POINT('',(4.28,7.5374,4.)); +#54502=CARTESIAN_POINT('',(4.28,7.19,4.)); +#54503=CARTESIAN_POINT('',(4.245,7.085,4.)); +#54504=CARTESIAN_POINT('',(4.175,7.085,4.)); +#54505=CARTESIAN_POINT('',(4.245,7.155,4.)); +#54506=CARTESIAN_POINT('',(4.175,7.085,4.)); +#54507=CARTESIAN_POINT('',(4.175,4.17643593539449,4.)); +#54508=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,4.)); +#54509=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,4.)); +#54510=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,4.)); +#54511=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,4.)); +#54512=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,4.)); +#54513=CARTESIAN_POINT('',(4.11,4.02098076211353,4.)); +#54514=CARTESIAN_POINT('',(4.11,4.02098076211353,4.)); +#54515=CARTESIAN_POINT('',(3.89,1.05,4.)); +#54516=CARTESIAN_POINT('',(3.89,4.02098076211353,4.)); +#54517=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,4.)); +#54518=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,4.)); +#54519=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,4.)); +#54520=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,4.)); +#54521=CARTESIAN_POINT('',(3.905,4.17643593539449,4.)); +#54522=CARTESIAN_POINT('',(3.825,4.17643593539449,4.)); +#54523=CARTESIAN_POINT('',(3.825,4.17643593539449,4.)); +#54524=CARTESIAN_POINT('',(3.825,7.085,4.)); +#54525=CARTESIAN_POINT('',(3.755,7.085,4.)); +#54526=CARTESIAN_POINT('',(3.755,7.155,4.)); +#54527=CARTESIAN_POINT('',(4.245,7.19,4.)); +#54528=CARTESIAN_POINT('',(3.755,7.19,4.)); +#54529=CARTESIAN_POINT('',(3.72,7.19,4.)); +#54530=CARTESIAN_POINT('',(3.72,7.19,4.)); +#54531=CARTESIAN_POINT('',(3.72,7.5374,4.)); +#54532=CARTESIAN_POINT('',(3.6,7.5374,4.)); +#54533=CARTESIAN_POINT('',(3.6,7.5374,4.)); +#54534=CARTESIAN_POINT('',(3.48,7.5374,4.)); +#54535=CARTESIAN_POINT('',(3.48,7.5374,4.)); +#54536=CARTESIAN_POINT('',(3.48,7.19,4.)); +#54537=CARTESIAN_POINT('',(3.445,7.085,4.)); +#54538=CARTESIAN_POINT('',(3.375,7.085,4.)); +#54539=CARTESIAN_POINT('',(3.445,7.155,4.)); +#54540=CARTESIAN_POINT('',(3.375,7.085,4.)); +#54541=CARTESIAN_POINT('',(3.375,4.17643593539449,4.)); +#54542=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,4.)); +#54543=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,4.)); +#54544=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,4.)); +#54545=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,4.)); +#54546=CARTESIAN_POINT('',(3.39,4.02098076211353,4.)); +#54547=CARTESIAN_POINT('',(3.31,4.02098076211353,4.)); +#54548=CARTESIAN_POINT('',(3.31,4.02098076211353,4.)); +#54549=CARTESIAN_POINT('',(3.09,1.05,4.)); +#54550=CARTESIAN_POINT('',(3.09,4.02098076211353,4.)); +#54551=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,4.)); +#54552=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,4.)); +#54553=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,4.)); +#54554=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,4.)); +#54555=CARTESIAN_POINT('',(3.105,4.17643593539449,4.)); +#54556=CARTESIAN_POINT('',(3.025,4.17643593539449,4.)); +#54557=CARTESIAN_POINT('',(3.025,4.17643593539449,4.)); +#54558=CARTESIAN_POINT('',(3.025,7.085,4.)); +#54559=CARTESIAN_POINT('',(2.955,7.085,4.)); +#54560=CARTESIAN_POINT('',(2.955,7.155,4.)); +#54561=CARTESIAN_POINT('',(3.445,7.19,4.)); +#54562=CARTESIAN_POINT('',(2.955,7.19,4.)); +#54563=CARTESIAN_POINT('',(2.92,7.19,4.)); +#54564=CARTESIAN_POINT('',(2.92,7.19,4.)); +#54565=CARTESIAN_POINT('',(2.92,7.5374,4.)); +#54566=CARTESIAN_POINT('',(2.8,7.5374,4.)); +#54567=CARTESIAN_POINT('',(2.8,7.5374,4.)); +#54568=CARTESIAN_POINT('',(2.68,7.5374,4.)); +#54569=CARTESIAN_POINT('',(2.68,7.5374,4.)); +#54570=CARTESIAN_POINT('',(2.68,7.19,4.)); +#54571=CARTESIAN_POINT('',(2.645,7.085,4.)); +#54572=CARTESIAN_POINT('',(2.575,7.085,4.)); +#54573=CARTESIAN_POINT('',(2.645,7.155,4.)); +#54574=CARTESIAN_POINT('',(2.575,7.085,4.)); +#54575=CARTESIAN_POINT('',(2.575,4.17643593539449,4.)); +#54576=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,4.)); +#54577=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,4.)); +#54578=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,4.)); +#54579=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,4.)); +#54580=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,4.)); +#54581=CARTESIAN_POINT('',(2.51,4.02098076211353,4.)); +#54582=CARTESIAN_POINT('',(2.51,4.02098076211353,4.)); +#54583=CARTESIAN_POINT('',(2.29,1.05,4.)); +#54584=CARTESIAN_POINT('',(2.29,4.02098076211353,4.)); +#54585=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,4.)); +#54586=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,4.)); +#54587=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,4.)); +#54588=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,4.)); +#54589=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,4.)); +#54590=CARTESIAN_POINT('',(2.225,4.17643593539449,4.)); +#54591=CARTESIAN_POINT('',(2.225,4.17643593539449,4.)); +#54592=CARTESIAN_POINT('',(2.225,7.085,4.)); +#54593=CARTESIAN_POINT('',(2.155,7.085,4.)); +#54594=CARTESIAN_POINT('',(2.155,7.155,4.)); +#54595=CARTESIAN_POINT('',(2.645,7.19,4.)); +#54596=CARTESIAN_POINT('',(2.155,7.19,4.)); +#54597=CARTESIAN_POINT('',(2.12,7.19,4.)); +#54598=CARTESIAN_POINT('',(2.12,7.19,4.)); +#54599=CARTESIAN_POINT('',(2.12,7.5374,4.)); +#54600=CARTESIAN_POINT('',(2.,7.5374,4.)); +#54601=CARTESIAN_POINT('',(2.,7.5374,4.)); +#54602=CARTESIAN_POINT('',(1.88,7.5374,4.)); +#54603=CARTESIAN_POINT('',(1.88,7.5374,4.)); +#54604=CARTESIAN_POINT('',(1.88,7.19,4.)); +#54605=CARTESIAN_POINT('',(1.845,7.085,4.)); +#54606=CARTESIAN_POINT('',(1.775,7.085,4.)); +#54607=CARTESIAN_POINT('',(1.845,7.155,4.)); +#54608=CARTESIAN_POINT('',(1.775,7.085,4.)); +#54609=CARTESIAN_POINT('',(1.775,4.17643593539449,4.)); +#54610=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,4.)); +#54611=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,4.)); +#54612=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,4.)); +#54613=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,4.)); +#54614=CARTESIAN_POINT('',(1.79,4.02098076211353,4.)); +#54615=CARTESIAN_POINT('',(1.71,4.02098076211353,4.)); +#54616=CARTESIAN_POINT('',(1.71,4.02098076211353,4.)); +#54617=CARTESIAN_POINT('',(1.49,1.05,4.)); +#54618=CARTESIAN_POINT('',(1.49,4.02098076211353,4.)); +#54619=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,4.)); +#54620=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,4.)); +#54621=CARTESIAN_POINT('',(1.47928203230276,4.06098076211353,4.)); +#54622=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,4.)); +#54623=CARTESIAN_POINT('',(1.505,4.17643593539449,4.)); +#54624=CARTESIAN_POINT('',(1.425,4.17643593539449,4.)); +#54625=CARTESIAN_POINT('',(1.425,4.17643593539449,4.)); +#54626=CARTESIAN_POINT('',(1.425,7.085,4.)); +#54627=CARTESIAN_POINT('',(1.355,7.085,4.)); +#54628=CARTESIAN_POINT('',(1.355,7.155,4.)); +#54629=CARTESIAN_POINT('',(1.845,7.19,4.)); +#54630=CARTESIAN_POINT('',(1.355,7.19,4.)); +#54631=CARTESIAN_POINT('',(1.32,7.19,4.)); +#54632=CARTESIAN_POINT('',(1.32,7.19,4.)); +#54633=CARTESIAN_POINT('',(1.32,7.5374,4.)); +#54634=CARTESIAN_POINT('',(1.2,7.5374,4.)); +#54635=CARTESIAN_POINT('',(1.2,7.5374,4.)); +#54636=CARTESIAN_POINT('',(1.08,7.5374,4.)); +#54637=CARTESIAN_POINT('',(1.08,7.5374,4.)); +#54638=CARTESIAN_POINT('',(1.08,7.19,4.)); +#54639=CARTESIAN_POINT('',(1.045,7.085,4.)); +#54640=CARTESIAN_POINT('',(0.974999999999998,7.085,4.)); +#54641=CARTESIAN_POINT('',(1.045,7.155,4.)); +#54642=CARTESIAN_POINT('',(0.974999999999999,7.085,4.)); +#54643=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,4.)); +#54644=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,4.)); +#54645=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,4.)); +#54646=CARTESIAN_POINT('',(0.964282032302754,4.13643593539449,4.)); +#54647=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,4.)); +#54648=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,4.)); +#54649=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,4.)); +#54650=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,4.)); +#54651=CARTESIAN_POINT('',(0.69,1.05,4.)); +#54652=CARTESIAN_POINT('',(0.69,4.02098076211353,4.)); +#54653=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,4.)); +#54654=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,4.)); +#54655=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,4.)); +#54656=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,4.)); +#54657=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,4.)); +#54658=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,4.)); +#54659=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,4.)); +#54660=CARTESIAN_POINT('',(0.624999999999999,7.085,4.)); +#54661=CARTESIAN_POINT('',(0.554999999999999,7.085,4.)); +#54662=CARTESIAN_POINT('',(0.554999999999999,7.155,4.)); +#54663=CARTESIAN_POINT('',(1.045,7.19,4.)); +#54664=CARTESIAN_POINT('',(0.554999999999999,7.19,4.)); +#54665=CARTESIAN_POINT('',(0.52,7.19,4.)); +#54666=CARTESIAN_POINT('',(0.52,7.19,4.)); +#54667=CARTESIAN_POINT('',(0.52,7.5374,4.)); +#54668=CARTESIAN_POINT('',(0.399999999999999,7.5374,4.)); +#54669=CARTESIAN_POINT('',(0.399999999999999,7.5374,4.)); +#54670=CARTESIAN_POINT('',(0.279999999999999,7.5374,4.)); +#54671=CARTESIAN_POINT('',(0.279999999999999,7.5374,4.)); +#54672=CARTESIAN_POINT('',(0.279999999999999,7.19,4.)); +#54673=CARTESIAN_POINT('',(0.245,7.085,4.)); +#54674=CARTESIAN_POINT('',(0.174999999999999,7.085,4.)); +#54675=CARTESIAN_POINT('',(0.244999999999999,7.155,4.)); +#54676=CARTESIAN_POINT('',(0.174999999999999,7.085,4.)); +#54677=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,4.)); +#54678=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,4.)); +#54679=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,4.)); +#54680=CARTESIAN_POINT('',(0.164282032302754,4.13643593539449,4.)); +#54681=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,4.)); +#54682=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,4.)); +#54683=CARTESIAN_POINT('',(0.11,4.02098076211353,4.)); +#54684=CARTESIAN_POINT('',(0.109999999999999,4.02098076211353,4.)); +#54685=CARTESIAN_POINT('',(-0.110000000000001,1.05,4.)); +#54686=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,4.)); +#54687=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,4.)); +#54688=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,4.)); +#54689=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,4.)); +#54690=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,4.)); +#54691=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,4.)); +#54692=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,4.)); +#54693=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,4.)); +#54694=CARTESIAN_POINT('',(-0.175000000000001,7.085,4.)); +#54695=CARTESIAN_POINT('',(-0.245000000000001,7.085,4.)); +#54696=CARTESIAN_POINT('',(-0.245000000000001,7.155,4.)); +#54697=CARTESIAN_POINT('',(0.245,7.19,4.)); +#54698=CARTESIAN_POINT('',(-0.245000000000001,7.19,4.)); +#54699=CARTESIAN_POINT('',(-0.28,7.19,4.)); +#54700=CARTESIAN_POINT('',(-0.28,7.19,4.)); +#54701=CARTESIAN_POINT('',(-0.28,7.5374,4.)); +#54702=CARTESIAN_POINT('',(-0.400000000000001,7.5374,4.)); +#54703=CARTESIAN_POINT('',(-0.400000000000001,7.5374,4.)); +#54704=CARTESIAN_POINT('',(-0.520000000000001,7.5374,4.)); +#54705=CARTESIAN_POINT('',(-0.520000000000001,7.5374,4.)); +#54706=CARTESIAN_POINT('',(-0.520000000000001,7.19,4.)); +#54707=CARTESIAN_POINT('',(-0.555,7.085,4.)); +#54708=CARTESIAN_POINT('',(-0.625000000000001,7.085,4.)); +#54709=CARTESIAN_POINT('',(-0.555000000000001,7.155,4.)); +#54710=CARTESIAN_POINT('',(-0.625000000000001,7.085,4.)); +#54711=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,4.)); +#54712=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,4.)); +#54713=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,4.)); +#54714=CARTESIAN_POINT('',(-0.635717967697246,4.13643593539449,4.)); +#54715=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,4.)); +#54716=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,4.)); +#54717=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,4.)); +#54718=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,4.)); +#54719=CARTESIAN_POINT('',(-0.910000000000001,1.05,4.)); +#54720=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,4.)); +#54721=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,4.)); +#54722=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,4.)); +#54723=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,4.)); +#54724=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,4.)); +#54725=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,4.)); +#54726=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,4.)); +#54727=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,4.)); +#54728=CARTESIAN_POINT('',(-0.975000000000001,7.085,4.)); +#54729=CARTESIAN_POINT('',(-1.045,7.085,4.)); +#54730=CARTESIAN_POINT('',(-1.045,7.155,4.)); +#54731=CARTESIAN_POINT('',(-0.555000000000001,7.19,4.)); +#54732=CARTESIAN_POINT('',(-1.045,7.19,4.)); +#54733=CARTESIAN_POINT('',(-1.08,7.19,4.)); +#54734=CARTESIAN_POINT('',(-1.08,7.19,4.)); +#54735=CARTESIAN_POINT('',(-1.08,7.5374,4.)); +#54736=CARTESIAN_POINT('',(-1.2,7.5374,4.)); +#54737=CARTESIAN_POINT('',(-1.2,7.5374,4.)); +#54738=CARTESIAN_POINT('',(-1.32,7.5374,4.)); +#54739=CARTESIAN_POINT('',(-1.32,7.5374,4.)); +#54740=CARTESIAN_POINT('',(-1.32,7.19,4.)); +#54741=CARTESIAN_POINT('',(-1.355,7.085,4.)); +#54742=CARTESIAN_POINT('',(-1.425,7.085,4.)); +#54743=CARTESIAN_POINT('',(-1.355,7.155,4.)); +#54744=CARTESIAN_POINT('',(-1.425,7.085,4.)); +#54745=CARTESIAN_POINT('',(-1.425,4.17643593539449,4.)); +#54746=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,4.)); +#54747=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,4.)); +#54748=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,4.)); +#54749=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,4.)); +#54750=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,4.)); +#54751=CARTESIAN_POINT('',(-1.49,4.02098076211353,4.)); +#54752=CARTESIAN_POINT('',(-1.49,4.02098076211353,4.)); +#54753=CARTESIAN_POINT('',(-1.71,1.05,4.)); +#54754=CARTESIAN_POINT('',(-1.71,4.02098076211353,4.)); +#54755=CARTESIAN_POINT('',(-1.79,4.02098076211353,4.)); +#54756=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,4.)); +#54757=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,4.)); +#54758=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,4.)); +#54759=CARTESIAN_POINT('',(-1.695,4.17643593539449,4.)); +#54760=CARTESIAN_POINT('',(-1.775,4.17643593539449,4.)); +#54761=CARTESIAN_POINT('',(-1.775,4.17643593539449,4.)); +#54762=CARTESIAN_POINT('',(-1.775,7.085,4.)); +#54763=CARTESIAN_POINT('',(-1.845,7.085,4.)); +#54764=CARTESIAN_POINT('',(-1.845,7.155,4.)); +#54765=CARTESIAN_POINT('',(-1.355,7.19,4.)); +#54766=CARTESIAN_POINT('',(-1.845,7.19,4.)); +#54767=CARTESIAN_POINT('',(-1.88,7.19,4.)); +#54768=CARTESIAN_POINT('',(-1.88,7.19,4.)); +#54769=CARTESIAN_POINT('',(-1.88,7.5374,4.)); +#54770=CARTESIAN_POINT('',(-2.,7.5374,4.)); +#54771=CARTESIAN_POINT('',(-2.,7.5374,4.)); +#54772=CARTESIAN_POINT('',(-2.12,7.5374,4.)); +#54773=CARTESIAN_POINT('',(-2.12,7.5374,4.)); +#54774=CARTESIAN_POINT('',(-2.12,7.19,4.)); +#54775=CARTESIAN_POINT('',(-2.155,7.085,4.)); +#54776=CARTESIAN_POINT('',(-2.225,7.085,4.)); +#54777=CARTESIAN_POINT('',(-2.155,7.155,4.)); +#54778=CARTESIAN_POINT('',(-2.225,7.085,4.)); +#54779=CARTESIAN_POINT('',(-2.225,4.17643593539449,4.)); +#54780=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,4.)); +#54781=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,4.)); +#54782=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,4.)); +#54783=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,4.)); +#54784=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,4.)); +#54785=CARTESIAN_POINT('',(-2.29,4.02098076211353,4.)); +#54786=CARTESIAN_POINT('',(-2.29,4.02098076211353,4.)); +#54787=CARTESIAN_POINT('',(-2.51,1.05,4.)); +#54788=CARTESIAN_POINT('',(-2.51,4.02098076211353,4.)); +#54789=CARTESIAN_POINT('',(-2.59,4.02098076211353,4.)); +#54790=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,4.)); +#54791=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,4.)); +#54792=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,4.)); +#54793=CARTESIAN_POINT('',(-2.495,4.17643593539449,4.)); +#54794=CARTESIAN_POINT('',(-2.575,4.17643593539449,4.)); +#54795=CARTESIAN_POINT('',(-2.575,4.17643593539449,4.)); +#54796=CARTESIAN_POINT('',(-2.575,7.085,4.)); +#54797=CARTESIAN_POINT('',(-2.645,7.085,4.)); +#54798=CARTESIAN_POINT('',(-2.645,7.155,4.)); +#54799=CARTESIAN_POINT('',(-2.155,7.19,4.)); +#54800=CARTESIAN_POINT('',(-2.645,7.19,4.)); +#54801=CARTESIAN_POINT('',(-2.68,7.19,4.)); +#54802=CARTESIAN_POINT('',(-2.68,7.19,4.)); +#54803=CARTESIAN_POINT('',(-2.68,7.5374,4.)); +#54804=CARTESIAN_POINT('',(-2.8,7.5374,4.)); +#54805=CARTESIAN_POINT('',(-2.8,7.5374,4.)); +#54806=CARTESIAN_POINT('',(-2.92,7.5374,4.)); +#54807=CARTESIAN_POINT('',(-2.92,7.5374,4.)); +#54808=CARTESIAN_POINT('',(-2.92,7.19,4.)); +#54809=CARTESIAN_POINT('',(-2.955,7.085,4.)); +#54810=CARTESIAN_POINT('',(-3.025,7.085,4.)); +#54811=CARTESIAN_POINT('',(-2.955,7.155,4.)); +#54812=CARTESIAN_POINT('',(-3.025,7.085,4.)); +#54813=CARTESIAN_POINT('',(-3.025,4.17643593539449,4.)); +#54814=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,4.)); +#54815=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,4.)); +#54816=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,4.)); +#54817=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,4.)); +#54818=CARTESIAN_POINT('',(-3.01,4.02098076211353,4.)); +#54819=CARTESIAN_POINT('',(-3.09,4.02098076211353,4.)); +#54820=CARTESIAN_POINT('',(-3.09,4.02098076211353,4.)); +#54821=CARTESIAN_POINT('',(-3.31,1.05,4.)); +#54822=CARTESIAN_POINT('',(-3.31,4.02098076211353,4.)); +#54823=CARTESIAN_POINT('',(-3.39,4.02098076211353,4.)); +#54824=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,4.)); +#54825=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,4.)); +#54826=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,4.)); +#54827=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,4.)); +#54828=CARTESIAN_POINT('',(-3.375,4.17643593539449,4.)); +#54829=CARTESIAN_POINT('',(-3.375,4.17643593539449,4.)); +#54830=CARTESIAN_POINT('',(-3.375,7.085,4.)); +#54831=CARTESIAN_POINT('',(-3.445,7.085,4.)); +#54832=CARTESIAN_POINT('',(-3.445,7.155,4.)); +#54833=CARTESIAN_POINT('',(-2.955,7.19,4.)); +#54834=CARTESIAN_POINT('',(-3.445,7.19,4.)); +#54835=CARTESIAN_POINT('',(-3.48,7.19,4.)); +#54836=CARTESIAN_POINT('',(-3.48,7.19,4.)); +#54837=CARTESIAN_POINT('',(-3.48,7.5374,4.)); +#54838=CARTESIAN_POINT('',(-3.6,7.5374,4.)); +#54839=CARTESIAN_POINT('',(-3.6,7.5374,4.)); +#54840=CARTESIAN_POINT('',(-3.72,7.5374,4.)); +#54841=CARTESIAN_POINT('',(-3.72,7.5374,4.)); +#54842=CARTESIAN_POINT('',(-3.72,7.19,4.)); +#54843=CARTESIAN_POINT('',(-3.755,7.085,4.)); +#54844=CARTESIAN_POINT('',(-3.825,7.085,4.)); +#54845=CARTESIAN_POINT('',(-3.755,7.155,4.)); +#54846=CARTESIAN_POINT('',(-3.825,7.085,4.)); +#54847=CARTESIAN_POINT('',(-3.825,4.17643593539449,4.)); +#54848=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,4.)); +#54849=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,4.)); +#54850=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,4.)); +#54851=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,4.)); +#54852=CARTESIAN_POINT('',(-3.81,4.02098076211353,4.)); +#54853=CARTESIAN_POINT('',(-3.89,4.02098076211353,4.)); +#54854=CARTESIAN_POINT('',(-3.89,4.02098076211353,4.)); +#54855=CARTESIAN_POINT('',(-4.11,1.05,4.)); +#54856=CARTESIAN_POINT('',(-4.11,4.02098076211353,4.)); +#54857=CARTESIAN_POINT('',(-4.19,4.02098076211353,4.)); +#54858=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,4.)); +#54859=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,4.)); +#54860=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,4.)); +#54861=CARTESIAN_POINT('',(-4.095,4.17643593539449,4.)); +#54862=CARTESIAN_POINT('',(-4.175,4.17643593539449,4.)); +#54863=CARTESIAN_POINT('',(-4.175,4.17643593539449,4.)); +#54864=CARTESIAN_POINT('',(-4.175,7.085,4.)); +#54865=CARTESIAN_POINT('',(-4.245,7.085,4.)); +#54866=CARTESIAN_POINT('',(-4.245,7.155,4.)); +#54867=CARTESIAN_POINT('',(-3.755,7.19,4.)); +#54868=CARTESIAN_POINT('',(-4.245,7.19,4.)); +#54869=CARTESIAN_POINT('',(-4.28,7.19,4.)); +#54870=CARTESIAN_POINT('',(-4.28,7.19,4.)); +#54871=CARTESIAN_POINT('',(-4.28,7.5374,4.)); +#54872=CARTESIAN_POINT('',(-4.4,7.5374,4.)); +#54873=CARTESIAN_POINT('',(-4.4,7.5374,4.)); +#54874=CARTESIAN_POINT('',(-4.52,7.5374,4.)); +#54875=CARTESIAN_POINT('',(-4.52,7.5374,4.)); +#54876=CARTESIAN_POINT('',(-4.52,7.19,4.)); +#54877=CARTESIAN_POINT('',(-4.555,7.085,4.)); +#54878=CARTESIAN_POINT('',(-4.625,7.085,4.)); +#54879=CARTESIAN_POINT('',(-4.555,7.155,4.)); +#54880=CARTESIAN_POINT('',(-4.625,7.085,4.)); +#54881=CARTESIAN_POINT('',(-4.625,4.17643593539449,4.)); +#54882=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,4.)); +#54883=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,4.)); +#54884=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,4.)); +#54885=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,4.)); +#54886=CARTESIAN_POINT('',(-4.61,4.02098076211353,4.)); +#54887=CARTESIAN_POINT('',(-4.69,4.02098076211353,4.)); +#54888=CARTESIAN_POINT('',(-4.69,4.02098076211353,4.)); +#54889=CARTESIAN_POINT('',(-4.91,1.05,4.)); +#54890=CARTESIAN_POINT('',(-4.91,4.02098076211353,4.)); +#54891=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,4.)); +#54892=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,4.)); +#54893=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,4.)); +#54894=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,4.)); +#54895=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,4.)); +#54896=CARTESIAN_POINT('',(-4.975,4.17643593539449,4.)); +#54897=CARTESIAN_POINT('',(-4.975,4.17643593539449,4.)); +#54898=CARTESIAN_POINT('',(-4.975,7.085,4.)); +#54899=CARTESIAN_POINT('',(-5.045,7.085,4.)); +#54900=CARTESIAN_POINT('',(-5.045,7.155,4.)); +#54901=CARTESIAN_POINT('',(-4.555,7.19,4.)); +#54902=CARTESIAN_POINT('',(-5.045,7.19,4.)); +#54903=CARTESIAN_POINT('',(-5.08,7.19,4.)); +#54904=CARTESIAN_POINT('',(-5.08,7.19,4.)); +#54905=CARTESIAN_POINT('',(-5.08,7.5374,4.)); +#54906=CARTESIAN_POINT('',(-5.2,7.5374,4.)); +#54907=CARTESIAN_POINT('',(-5.2,7.5374,4.)); +#54908=CARTESIAN_POINT('',(-5.32,7.5374,4.)); +#54909=CARTESIAN_POINT('',(-5.32,7.5374,4.)); +#54910=CARTESIAN_POINT('',(-5.32,7.19,4.)); +#54911=CARTESIAN_POINT('',(-5.355,7.085,4.)); +#54912=CARTESIAN_POINT('',(-5.425,7.085,4.)); +#54913=CARTESIAN_POINT('',(-5.355,7.155,4.)); +#54914=CARTESIAN_POINT('',(-5.425,7.085,4.)); +#54915=CARTESIAN_POINT('',(-5.425,4.17643593539449,4.)); +#54916=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,4.)); +#54917=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,4.)); +#54918=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,4.)); +#54919=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,4.)); +#54920=CARTESIAN_POINT('',(-5.41,4.02098076211353,4.)); +#54921=CARTESIAN_POINT('',(-5.49,4.02098076211353,4.)); +#54922=CARTESIAN_POINT('',(-5.49,4.02098076211353,4.)); +#54923=CARTESIAN_POINT('',(-5.71,1.05,4.)); +#54924=CARTESIAN_POINT('',(-5.71,4.02098076211353,4.)); +#54925=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,4.)); +#54926=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,4.)); +#54927=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,4.)); +#54928=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,4.)); +#54929=CARTESIAN_POINT('',(-5.695,4.17643593539449,4.)); +#54930=CARTESIAN_POINT('',(-5.775,4.17643593539449,4.)); +#54931=CARTESIAN_POINT('',(-5.775,4.17643593539449,4.)); +#54932=CARTESIAN_POINT('',(-5.775,7.085,4.)); +#54933=CARTESIAN_POINT('',(-5.845,7.085,4.)); +#54934=CARTESIAN_POINT('',(-5.845,7.155,4.)); +#54935=CARTESIAN_POINT('',(-5.355,7.19,4.)); +#54936=CARTESIAN_POINT('',(-5.845,7.19,4.)); +#54937=CARTESIAN_POINT('',(-5.88,7.19,4.)); +#54938=CARTESIAN_POINT('',(-5.88,7.19,4.)); +#54939=CARTESIAN_POINT('',(-5.88,7.5374,4.)); +#54940=CARTESIAN_POINT('',(-6.,7.5374,4.)); +#54941=CARTESIAN_POINT('',(-6.,7.5374,4.)); +#54942=CARTESIAN_POINT('',(-6.12,7.5374,4.)); +#54943=CARTESIAN_POINT('',(-6.12,7.5374,4.)); +#54944=CARTESIAN_POINT('',(-6.12,7.19,4.)); +#54945=CARTESIAN_POINT('',(-6.155,7.085,4.)); +#54946=CARTESIAN_POINT('',(-6.225,7.085,4.)); +#54947=CARTESIAN_POINT('',(-6.155,7.155,4.)); +#54948=CARTESIAN_POINT('',(-6.225,7.085,4.)); +#54949=CARTESIAN_POINT('',(-6.225,4.17643593539449,4.)); +#54950=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,4.)); +#54951=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,4.)); +#54952=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,4.)); +#54953=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,4.)); +#54954=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,4.)); +#54955=CARTESIAN_POINT('',(-6.29,4.02098076211353,4.)); +#54956=CARTESIAN_POINT('',(-6.29,4.02098076211353,4.)); +#54957=CARTESIAN_POINT('',(-6.51,1.05,4.)); +#54958=CARTESIAN_POINT('',(-6.51,4.02098076211353,4.)); +#54959=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,4.)); +#54960=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,4.)); +#54961=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,4.)); +#54962=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,4.)); +#54963=CARTESIAN_POINT('',(-6.495,4.17643593539449,4.)); +#54964=CARTESIAN_POINT('',(-6.575,4.17643593539449,4.)); +#54965=CARTESIAN_POINT('',(-6.575,4.17643593539449,4.)); +#54966=CARTESIAN_POINT('',(-6.575,7.085,4.)); +#54967=CARTESIAN_POINT('',(-6.645,7.085,4.)); +#54968=CARTESIAN_POINT('',(-6.645,7.155,4.)); +#54969=CARTESIAN_POINT('',(-6.155,7.19,4.)); +#54970=CARTESIAN_POINT('',(-6.645,7.19,4.)); +#54971=CARTESIAN_POINT('',(-6.68,7.19,4.)); +#54972=CARTESIAN_POINT('',(-6.68,7.19,4.)); +#54973=CARTESIAN_POINT('',(-6.68,7.5374,4.)); +#54974=CARTESIAN_POINT('',(-6.8,7.5374,4.)); +#54975=CARTESIAN_POINT('',(-6.8,7.5374,4.)); +#54976=CARTESIAN_POINT('',(-6.92,7.5374,4.)); +#54977=CARTESIAN_POINT('',(-6.92,7.5374,4.)); +#54978=CARTESIAN_POINT('',(-6.92,7.19,4.)); +#54979=CARTESIAN_POINT('',(-6.955,7.085,4.)); +#54980=CARTESIAN_POINT('',(-7.025,7.085,4.)); +#54981=CARTESIAN_POINT('',(-6.955,7.155,4.)); +#54982=CARTESIAN_POINT('',(-7.025,7.085,4.)); +#54983=CARTESIAN_POINT('',(-7.025,4.17643593539449,4.)); +#54984=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,4.)); +#54985=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,4.)); +#54986=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,4.)); +#54987=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,4.)); +#54988=CARTESIAN_POINT('',(-7.01,4.02098076211353,4.)); +#54989=CARTESIAN_POINT('',(-7.09,4.02098076211353,4.)); +#54990=CARTESIAN_POINT('',(-7.09,4.02098076211353,4.)); +#54991=CARTESIAN_POINT('',(-7.31,1.05,4.)); +#54992=CARTESIAN_POINT('',(-7.31,4.02098076211353,4.)); +#54993=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,4.)); +#54994=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,4.)); +#54995=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,4.)); +#54996=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,4.)); +#54997=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,4.)); +#54998=CARTESIAN_POINT('',(-7.375,4.17643593539449,4.)); +#54999=CARTESIAN_POINT('',(-7.375,4.17643593539449,4.)); +#55000=CARTESIAN_POINT('',(-7.375,7.085,4.)); +#55001=CARTESIAN_POINT('',(-7.445,7.085,4.)); +#55002=CARTESIAN_POINT('',(-7.445,7.155,4.)); +#55003=CARTESIAN_POINT('',(-6.955,7.19,4.)); +#55004=CARTESIAN_POINT('',(-7.445,7.19,4.)); +#55005=CARTESIAN_POINT('',(-7.48,7.19,4.)); +#55006=CARTESIAN_POINT('',(-7.48,7.19,4.)); +#55007=CARTESIAN_POINT('',(-7.48,7.5374,4.)); +#55008=CARTESIAN_POINT('',(-7.6,7.5374,4.)); +#55009=CARTESIAN_POINT('',(7.445,7.085,4.)); +#55010=CARTESIAN_POINT('',(7.375,7.085,4.)); +#55011=CARTESIAN_POINT('',(7.445,7.155,4.)); +#55012=CARTESIAN_POINT('',(7.375,7.085,4.)); +#55013=CARTESIAN_POINT('',(7.375,4.17643593539449,4.)); +#55014=CARTESIAN_POINT('',(7.29499999999998,4.17643593539449,4.)); +#55015=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,4.)); +#55016=CARTESIAN_POINT('',(7.36428203230275,4.13643593539449,4.)); +#55017=CARTESIAN_POINT('',(7.32071796769724,4.06098076211353,4.)); +#55018=CARTESIAN_POINT('',(7.38999999999999,4.02098076211353,4.)); +#55019=CARTESIAN_POINT('',(7.31,4.02098076211353,4.)); +#55020=CARTESIAN_POINT('',(7.31,4.02098076211353,4.)); +#55021=CARTESIAN_POINT('',(7.09,1.05,4.)); +#55022=CARTESIAN_POINT('',(7.09,4.02098076211353,4.)); +#55023=CARTESIAN_POINT('',(7.01000000000001,4.02098076211354,4.)); +#55024=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,4.)); +#55025=CARTESIAN_POINT('',(7.07928203230275,4.06098076211353,4.)); +#55026=CARTESIAN_POINT('',(7.03571796769724,4.13643593539449,4.)); +#55027=CARTESIAN_POINT('',(7.10500000000001,4.17643593539449,4.)); +#55028=CARTESIAN_POINT('',(7.025,4.17643593539449,4.)); +#55029=CARTESIAN_POINT('',(7.025,4.17643593539449,4.)); +#55030=CARTESIAN_POINT('',(7.025,7.085,4.)); +#55031=CARTESIAN_POINT('',(6.955,7.085,4.)); +#55032=CARTESIAN_POINT('',(6.955,7.155,4.)); +#55033=CARTESIAN_POINT('',(7.48,7.5374,4.)); +#55034=CARTESIAN_POINT('',(7.48,7.19,4.)); +#55035=CARTESIAN_POINT('',(7.48,7.5374,4.)); +#55036=CARTESIAN_POINT('',(7.445,7.19,4.)); +#55037=CARTESIAN_POINT('',(6.955,7.19,4.)); +#55038=CARTESIAN_POINT('',(6.92,7.19,4.)); +#55039=CARTESIAN_POINT('',(6.92,7.19,4.)); +#55040=CARTESIAN_POINT('',(6.92,7.5374,4.)); +#55041=CARTESIAN_POINT('',(7.6,7.5374,4.)); +#55042=CARTESIAN_POINT('',(6.8,7.5374,4.)); +#55043=CARTESIAN_POINT('',(6.645,7.085,4.)); +#55044=CARTESIAN_POINT('',(6.575,7.085,4.)); +#55045=CARTESIAN_POINT('',(6.645,7.155,4.)); +#55046=CARTESIAN_POINT('',(6.575,7.085,4.)); +#55047=CARTESIAN_POINT('',(6.575,4.17643593539449,4.)); +#55048=CARTESIAN_POINT('',(6.49500000000001,4.17643593539449,4.)); +#55049=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,4.)); +#55050=CARTESIAN_POINT('',(6.56428203230275,4.13643593539449,4.)); +#55051=CARTESIAN_POINT('',(6.52071796769724,4.06098076211353,4.)); +#55052=CARTESIAN_POINT('',(6.59,4.02098076211353,4.)); +#55053=CARTESIAN_POINT('',(6.51,4.02098076211353,4.)); +#55054=CARTESIAN_POINT('',(6.51,4.02098076211353,4.)); +#55055=CARTESIAN_POINT('',(6.29,1.05,4.)); +#55056=CARTESIAN_POINT('',(6.29,4.02098076211353,4.)); +#55057=CARTESIAN_POINT('',(6.20999999999999,4.02098076211353,4.)); +#55058=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,4.)); +#55059=CARTESIAN_POINT('',(6.27928203230275,4.06098076211353,4.)); +#55060=CARTESIAN_POINT('',(6.23571796769724,4.13643593539449,4.)); +#55061=CARTESIAN_POINT('',(6.305,4.17643593539449,4.)); +#55062=CARTESIAN_POINT('',(6.225,4.17643593539449,4.)); +#55063=CARTESIAN_POINT('',(6.225,4.17643593539449,4.)); +#55064=CARTESIAN_POINT('',(6.225,7.085,4.)); +#55065=CARTESIAN_POINT('',(6.155,7.085,4.)); +#55066=CARTESIAN_POINT('',(6.155,7.155,4.)); +#55067=CARTESIAN_POINT('',(6.68,7.5374,4.)); +#55068=CARTESIAN_POINT('',(6.68,7.19,4.)); +#55069=CARTESIAN_POINT('',(6.68,7.5374,4.)); +#55070=CARTESIAN_POINT('',(6.645,7.19,4.)); +#55071=CARTESIAN_POINT('',(6.155,7.19,4.)); +#55072=CARTESIAN_POINT('',(6.12,7.19,4.)); +#55073=CARTESIAN_POINT('',(6.12,7.19,4.)); +#55074=CARTESIAN_POINT('',(6.12,7.5374,4.)); +#55075=CARTESIAN_POINT('',(6.8,7.5374,4.)); +#55076=CARTESIAN_POINT('',(6.,7.5374,4.)); +#55077=CARTESIAN_POINT('',(5.845,7.085,4.)); +#55078=CARTESIAN_POINT('',(5.775,7.085,4.)); +#55079=CARTESIAN_POINT('',(5.845,7.155,4.)); +#55080=CARTESIAN_POINT('',(5.775,7.085,4.)); +#55081=CARTESIAN_POINT('',(5.775,4.17643593539449,4.)); +#55082=CARTESIAN_POINT('',(5.69500000000001,4.17643593539449,4.)); +#55083=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,4.)); +#55084=CARTESIAN_POINT('',(5.76428203230275,4.13643593539449,4.)); +#55085=CARTESIAN_POINT('',(5.72071796769724,4.06098076211353,4.)); +#55086=CARTESIAN_POINT('',(5.79000000000002,4.02098076211353,4.)); +#55087=CARTESIAN_POINT('',(5.71,4.02098076211353,4.)); +#55088=CARTESIAN_POINT('',(5.71,4.02098076211353,4.)); +#55089=CARTESIAN_POINT('',(5.49,1.05,4.)); +#55090=CARTESIAN_POINT('',(5.49,4.02098076211353,4.)); +#55091=CARTESIAN_POINT('',(5.41000000000001,4.02098076211353,4.)); +#55092=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,4.)); +#55093=CARTESIAN_POINT('',(5.47928203230275,4.06098076211353,4.)); +#55094=CARTESIAN_POINT('',(5.43571796769724,4.13643593539449,4.)); +#55095=CARTESIAN_POINT('',(5.505,4.17643593539449,4.)); +#55096=CARTESIAN_POINT('',(5.425,4.17643593539449,4.)); +#55097=CARTESIAN_POINT('',(5.425,4.17643593539449,4.)); +#55098=CARTESIAN_POINT('',(5.425,7.085,4.)); +#55099=CARTESIAN_POINT('',(5.355,7.085,4.)); +#55100=CARTESIAN_POINT('',(5.355,7.155,4.)); +#55101=CARTESIAN_POINT('',(5.88,7.5374,4.)); +#55102=CARTESIAN_POINT('',(5.88,7.19,4.)); +#55103=CARTESIAN_POINT('',(5.88,7.5374,4.)); +#55104=CARTESIAN_POINT('',(5.845,7.19,4.)); +#55105=CARTESIAN_POINT('',(5.355,7.19,4.)); +#55106=CARTESIAN_POINT('',(5.32,7.19,4.)); +#55107=CARTESIAN_POINT('',(5.32,7.19,4.)); +#55108=CARTESIAN_POINT('',(5.32,7.5374,4.)); +#55109=CARTESIAN_POINT('',(6.,7.5374,4.)); +#55110=CARTESIAN_POINT('',(5.2,7.5374,4.)); +#55111=CARTESIAN_POINT('',(5.045,7.085,4.)); +#55112=CARTESIAN_POINT('',(4.975,7.085,4.)); +#55113=CARTESIAN_POINT('',(5.045,7.155,4.)); +#55114=CARTESIAN_POINT('',(4.975,7.085,4.)); +#55115=CARTESIAN_POINT('',(4.975,4.17643593539449,4.)); +#55116=CARTESIAN_POINT('',(4.895,4.17643593539449,4.)); +#55117=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,4.)); +#55118=CARTESIAN_POINT('',(4.96428203230275,4.13643593539449,4.)); +#55119=CARTESIAN_POINT('',(4.92071796769724,4.06098076211353,4.)); +#55120=CARTESIAN_POINT('',(4.98999999999999,4.02098076211353,4.)); +#55121=CARTESIAN_POINT('',(4.91,4.02098076211353,4.)); +#55122=CARTESIAN_POINT('',(4.91,4.02098076211353,4.)); +#55123=CARTESIAN_POINT('',(4.69,1.05,4.)); +#55124=CARTESIAN_POINT('',(4.69,4.02098076211353,4.)); +#55125=CARTESIAN_POINT('',(4.61000000000001,4.02098076211354,4.)); +#55126=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,4.)); +#55127=CARTESIAN_POINT('',(4.67928203230275,4.06098076211353,4.)); +#55128=CARTESIAN_POINT('',(4.63571796769724,4.13643593539449,4.)); +#55129=CARTESIAN_POINT('',(4.70500000000002,4.17643593539449,4.)); +#55130=CARTESIAN_POINT('',(4.625,4.17643593539449,4.)); +#55131=CARTESIAN_POINT('',(4.625,4.17643593539449,4.)); +#55132=CARTESIAN_POINT('',(4.625,7.085,4.)); +#55133=CARTESIAN_POINT('',(4.555,7.085,4.)); +#55134=CARTESIAN_POINT('',(4.555,7.155,4.)); +#55135=CARTESIAN_POINT('',(5.08,7.5374,4.)); +#55136=CARTESIAN_POINT('',(5.08,7.19,4.)); +#55137=CARTESIAN_POINT('',(5.08,7.5374,4.)); +#55138=CARTESIAN_POINT('',(5.045,7.19,4.)); +#55139=CARTESIAN_POINT('',(4.555,7.19,4.)); +#55140=CARTESIAN_POINT('',(4.52,7.19,4.)); +#55141=CARTESIAN_POINT('',(4.52,7.19,4.)); +#55142=CARTESIAN_POINT('',(4.52,7.5374,4.)); +#55143=CARTESIAN_POINT('',(5.2,7.5374,4.)); +#55144=CARTESIAN_POINT('',(4.4,7.5374,4.)); +#55145=CARTESIAN_POINT('',(4.245,7.085,4.)); +#55146=CARTESIAN_POINT('',(4.175,7.085,4.)); +#55147=CARTESIAN_POINT('',(4.245,7.155,4.)); +#55148=CARTESIAN_POINT('',(4.175,7.085,4.)); +#55149=CARTESIAN_POINT('',(4.175,4.17643593539449,4.)); +#55150=CARTESIAN_POINT('',(4.09500000000001,4.17643593539449,4.)); +#55151=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,4.)); +#55152=CARTESIAN_POINT('',(4.16428203230275,4.13643593539449,4.)); +#55153=CARTESIAN_POINT('',(4.12071796769724,4.06098076211353,4.)); +#55154=CARTESIAN_POINT('',(4.19000000000001,4.02098076211353,4.)); +#55155=CARTESIAN_POINT('',(4.11,4.02098076211353,4.)); +#55156=CARTESIAN_POINT('',(4.11,4.02098076211353,4.)); +#55157=CARTESIAN_POINT('',(3.89,1.05,4.)); +#55158=CARTESIAN_POINT('',(3.89,4.02098076211353,4.)); +#55159=CARTESIAN_POINT('',(3.81000000000001,4.02098076211354,4.)); +#55160=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,4.)); +#55161=CARTESIAN_POINT('',(3.87928203230276,4.06098076211353,4.)); +#55162=CARTESIAN_POINT('',(3.83571796769724,4.13643593539449,4.)); +#55163=CARTESIAN_POINT('',(3.905,4.17643593539449,4.)); +#55164=CARTESIAN_POINT('',(3.825,4.17643593539449,4.)); +#55165=CARTESIAN_POINT('',(3.825,4.17643593539449,4.)); +#55166=CARTESIAN_POINT('',(3.825,7.085,4.)); +#55167=CARTESIAN_POINT('',(3.755,7.085,4.)); +#55168=CARTESIAN_POINT('',(3.755,7.155,4.)); +#55169=CARTESIAN_POINT('',(4.28,7.5374,4.)); +#55170=CARTESIAN_POINT('',(4.28,7.19,4.)); +#55171=CARTESIAN_POINT('',(4.28,7.5374,4.)); +#55172=CARTESIAN_POINT('',(4.245,7.19,4.)); +#55173=CARTESIAN_POINT('',(3.755,7.19,4.)); +#55174=CARTESIAN_POINT('',(3.72,7.19,4.)); +#55175=CARTESIAN_POINT('',(3.72,7.19,4.)); +#55176=CARTESIAN_POINT('',(3.72,7.5374,4.)); +#55177=CARTESIAN_POINT('',(4.4,7.5374,4.)); +#55178=CARTESIAN_POINT('',(3.6,7.5374,4.)); +#55179=CARTESIAN_POINT('',(3.445,7.085,4.)); +#55180=CARTESIAN_POINT('',(3.375,7.085,4.)); +#55181=CARTESIAN_POINT('',(3.445,7.155,4.)); +#55182=CARTESIAN_POINT('',(3.375,7.085,4.)); +#55183=CARTESIAN_POINT('',(3.375,4.17643593539449,4.)); +#55184=CARTESIAN_POINT('',(3.29500000000001,4.17643593539449,4.)); +#55185=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,4.)); +#55186=CARTESIAN_POINT('',(3.36428203230275,4.13643593539449,4.)); +#55187=CARTESIAN_POINT('',(3.32071796769724,4.06098076211353,4.)); +#55188=CARTESIAN_POINT('',(3.39,4.02098076211353,4.)); +#55189=CARTESIAN_POINT('',(3.31,4.02098076211353,4.)); +#55190=CARTESIAN_POINT('',(3.31,4.02098076211353,4.)); +#55191=CARTESIAN_POINT('',(3.09,1.05,4.)); +#55192=CARTESIAN_POINT('',(3.09,4.02098076211353,4.)); +#55193=CARTESIAN_POINT('',(3.01000000000001,4.02098076211354,4.)); +#55194=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,4.)); +#55195=CARTESIAN_POINT('',(3.07928203230276,4.06098076211353,4.)); +#55196=CARTESIAN_POINT('',(3.03571796769724,4.13643593539449,4.)); +#55197=CARTESIAN_POINT('',(3.105,4.17643593539449,4.)); +#55198=CARTESIAN_POINT('',(3.025,4.17643593539449,4.)); +#55199=CARTESIAN_POINT('',(3.025,4.17643593539449,4.)); +#55200=CARTESIAN_POINT('',(3.025,7.085,4.)); +#55201=CARTESIAN_POINT('',(2.955,7.085,4.)); +#55202=CARTESIAN_POINT('',(2.955,7.155,4.)); +#55203=CARTESIAN_POINT('',(3.48,7.5374,4.)); +#55204=CARTESIAN_POINT('',(3.48,7.19,4.)); +#55205=CARTESIAN_POINT('',(3.48,7.5374,4.)); +#55206=CARTESIAN_POINT('',(3.445,7.19,4.)); +#55207=CARTESIAN_POINT('',(2.955,7.19,4.)); +#55208=CARTESIAN_POINT('',(2.92,7.19,4.)); +#55209=CARTESIAN_POINT('',(2.92,7.19,4.)); +#55210=CARTESIAN_POINT('',(2.92,7.5374,4.)); +#55211=CARTESIAN_POINT('',(3.6,7.5374,4.)); +#55212=CARTESIAN_POINT('',(2.8,7.5374,4.)); +#55213=CARTESIAN_POINT('',(2.645,7.085,4.)); +#55214=CARTESIAN_POINT('',(2.575,7.085,4.)); +#55215=CARTESIAN_POINT('',(2.645,7.155,4.)); +#55216=CARTESIAN_POINT('',(2.575,7.085,4.)); +#55217=CARTESIAN_POINT('',(2.575,4.17643593539449,4.)); +#55218=CARTESIAN_POINT('',(2.49499999999998,4.17643593539449,4.)); +#55219=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,4.)); +#55220=CARTESIAN_POINT('',(2.56428203230275,4.13643593539449,4.)); +#55221=CARTESIAN_POINT('',(2.52071796769724,4.06098076211353,4.)); +#55222=CARTESIAN_POINT('',(2.59000000000002,4.02098076211353,4.)); +#55223=CARTESIAN_POINT('',(2.51,4.02098076211353,4.)); +#55224=CARTESIAN_POINT('',(2.51,4.02098076211353,4.)); +#55225=CARTESIAN_POINT('',(2.29,1.05,4.)); +#55226=CARTESIAN_POINT('',(2.29,4.02098076211353,4.)); +#55227=CARTESIAN_POINT('',(2.21000000000001,4.02098076211354,4.)); +#55228=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,4.)); +#55229=CARTESIAN_POINT('',(2.27928203230276,4.06098076211353,4.)); +#55230=CARTESIAN_POINT('',(2.23571796769724,4.13643593539449,4.)); +#55231=CARTESIAN_POINT('',(2.30500000000002,4.17643593539449,4.)); +#55232=CARTESIAN_POINT('',(2.225,4.17643593539449,4.)); +#55233=CARTESIAN_POINT('',(2.225,4.17643593539449,4.)); +#55234=CARTESIAN_POINT('',(2.225,7.085,4.)); +#55235=CARTESIAN_POINT('',(2.155,7.085,4.)); +#55236=CARTESIAN_POINT('',(2.155,7.155,4.)); +#55237=CARTESIAN_POINT('',(2.68,7.5374,4.)); +#55238=CARTESIAN_POINT('',(2.68,7.19,4.)); +#55239=CARTESIAN_POINT('',(2.68,7.5374,4.)); +#55240=CARTESIAN_POINT('',(2.645,7.19,4.)); +#55241=CARTESIAN_POINT('',(2.155,7.19,4.)); +#55242=CARTESIAN_POINT('',(2.12,7.19,4.)); +#55243=CARTESIAN_POINT('',(2.12,7.19,4.)); +#55244=CARTESIAN_POINT('',(2.12,7.5374,4.)); +#55245=CARTESIAN_POINT('',(2.8,7.5374,4.)); +#55246=CARTESIAN_POINT('',(2.,7.5374,4.)); +#55247=CARTESIAN_POINT('',(1.845,7.085,4.)); +#55248=CARTESIAN_POINT('',(1.775,7.085,4.)); +#55249=CARTESIAN_POINT('',(1.845,7.155,4.)); +#55250=CARTESIAN_POINT('',(1.775,7.085,4.)); +#55251=CARTESIAN_POINT('',(1.775,4.17643593539449,4.)); +#55252=CARTESIAN_POINT('',(1.69499999999998,4.17643593539449,4.)); +#55253=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,4.)); +#55254=CARTESIAN_POINT('',(1.76428203230275,4.13643593539449,4.)); +#55255=CARTESIAN_POINT('',(1.72071796769724,4.06098076211353,4.)); +#55256=CARTESIAN_POINT('',(1.79,4.02098076211353,4.)); +#55257=CARTESIAN_POINT('',(1.71,4.02098076211353,4.)); +#55258=CARTESIAN_POINT('',(1.71,4.02098076211353,4.)); +#55259=CARTESIAN_POINT('',(1.49,1.05,4.)); +#55260=CARTESIAN_POINT('',(1.49,4.02098076211353,4.)); +#55261=CARTESIAN_POINT('',(1.40999999999999,4.02098076211353,4.)); +#55262=CARTESIAN_POINT('',(1.47928203230275,4.06098076211353,4.)); +#55263=CARTESIAN_POINT('',(1.47928203230276,4.06098076211353,4.)); +#55264=CARTESIAN_POINT('',(1.43571796769724,4.13643593539449,4.)); +#55265=CARTESIAN_POINT('',(1.505,4.17643593539449,4.)); +#55266=CARTESIAN_POINT('',(1.425,4.17643593539449,4.)); +#55267=CARTESIAN_POINT('',(1.425,4.17643593539449,4.)); +#55268=CARTESIAN_POINT('',(1.425,7.085,4.)); +#55269=CARTESIAN_POINT('',(1.355,7.085,4.)); +#55270=CARTESIAN_POINT('',(1.355,7.155,4.)); +#55271=CARTESIAN_POINT('',(1.88,7.5374,4.)); +#55272=CARTESIAN_POINT('',(1.88,7.19,4.)); +#55273=CARTESIAN_POINT('',(1.88,7.5374,4.)); +#55274=CARTESIAN_POINT('',(1.845,7.19,4.)); +#55275=CARTESIAN_POINT('',(1.355,7.19,4.)); +#55276=CARTESIAN_POINT('',(1.32,7.19,4.)); +#55277=CARTESIAN_POINT('',(1.32,7.19,4.)); +#55278=CARTESIAN_POINT('',(1.32,7.5374,4.)); +#55279=CARTESIAN_POINT('',(2.,7.5374,4.)); +#55280=CARTESIAN_POINT('',(1.2,7.5374,4.)); +#55281=CARTESIAN_POINT('',(1.045,7.085,4.)); +#55282=CARTESIAN_POINT('',(0.974999999999998,7.085,4.)); +#55283=CARTESIAN_POINT('',(1.045,7.155,4.)); +#55284=CARTESIAN_POINT('',(0.974999999999999,7.085,4.)); +#55285=CARTESIAN_POINT('',(0.974999999999999,4.17643593539449,4.)); +#55286=CARTESIAN_POINT('',(0.894999999999991,4.17643593539449,4.)); +#55287=CARTESIAN_POINT('',(0.964282032302755,4.13643593539449,4.)); +#55288=CARTESIAN_POINT('',(0.964282032302754,4.13643593539449,4.)); +#55289=CARTESIAN_POINT('',(0.920717967697244,4.06098076211353,4.)); +#55290=CARTESIAN_POINT('',(0.989999999999996,4.02098076211353,4.)); +#55291=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,4.)); +#55292=CARTESIAN_POINT('',(0.909999999999999,4.02098076211353,4.)); +#55293=CARTESIAN_POINT('',(0.69,1.05,4.)); +#55294=CARTESIAN_POINT('',(0.69,4.02098076211353,4.)); +#55295=CARTESIAN_POINT('',(0.610000000000013,4.02098076211354,4.)); +#55296=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,4.)); +#55297=CARTESIAN_POINT('',(0.679282032302755,4.06098076211353,4.)); +#55298=CARTESIAN_POINT('',(0.635717967697244,4.13643593539449,4.)); +#55299=CARTESIAN_POINT('',(0.704999999999995,4.17643593539449,4.)); +#55300=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,4.)); +#55301=CARTESIAN_POINT('',(0.624999999999999,4.17643593539449,4.)); +#55302=CARTESIAN_POINT('',(0.624999999999999,7.085,4.)); +#55303=CARTESIAN_POINT('',(0.554999999999999,7.085,4.)); +#55304=CARTESIAN_POINT('',(0.554999999999999,7.155,4.)); +#55305=CARTESIAN_POINT('',(1.08,7.5374,4.)); +#55306=CARTESIAN_POINT('',(1.08,7.19,4.)); +#55307=CARTESIAN_POINT('',(1.08,7.5374,4.)); +#55308=CARTESIAN_POINT('',(1.045,7.19,4.)); +#55309=CARTESIAN_POINT('',(0.554999999999999,7.19,4.)); +#55310=CARTESIAN_POINT('',(0.52,7.19,4.)); +#55311=CARTESIAN_POINT('',(0.52,7.19,4.)); +#55312=CARTESIAN_POINT('',(0.52,7.5374,4.)); +#55313=CARTESIAN_POINT('',(1.2,7.5374,4.)); +#55314=CARTESIAN_POINT('',(0.399999999999999,7.5374,4.)); +#55315=CARTESIAN_POINT('',(0.245,7.085,4.)); +#55316=CARTESIAN_POINT('',(0.174999999999999,7.085,4.)); +#55317=CARTESIAN_POINT('',(0.244999999999999,7.155,4.)); +#55318=CARTESIAN_POINT('',(0.174999999999999,7.085,4.)); +#55319=CARTESIAN_POINT('',(0.174999999999999,4.17643593539449,4.)); +#55320=CARTESIAN_POINT('',(0.0949999999999941,4.17643593539449,4.)); +#55321=CARTESIAN_POINT('',(0.164282032302755,4.13643593539449,4.)); +#55322=CARTESIAN_POINT('',(0.164282032302754,4.13643593539449,4.)); +#55323=CARTESIAN_POINT('',(0.120717967697244,4.06098076211353,4.)); +#55324=CARTESIAN_POINT('',(0.190000000000007,4.02098076211353,4.)); +#55325=CARTESIAN_POINT('',(0.11,4.02098076211353,4.)); +#55326=CARTESIAN_POINT('',(0.109999999999999,4.02098076211353,4.)); +#55327=CARTESIAN_POINT('',(-0.110000000000001,1.05,4.)); +#55328=CARTESIAN_POINT('',(-0.110000000000001,4.02098076211353,4.)); +#55329=CARTESIAN_POINT('',(-0.189999999999997,4.02098076211353,4.)); +#55330=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,4.)); +#55331=CARTESIAN_POINT('',(-0.120717967697245,4.06098076211353,4.)); +#55332=CARTESIAN_POINT('',(-0.164282032302756,4.13643593539449,4.)); +#55333=CARTESIAN_POINT('',(-0.095000000000014,4.17643593539449,4.)); +#55334=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,4.)); +#55335=CARTESIAN_POINT('',(-0.175000000000001,4.17643593539449,4.)); +#55336=CARTESIAN_POINT('',(-0.175000000000001,7.085,4.)); +#55337=CARTESIAN_POINT('',(-0.245000000000001,7.085,4.)); +#55338=CARTESIAN_POINT('',(-0.245000000000001,7.155,4.)); +#55339=CARTESIAN_POINT('',(0.279999999999999,7.5374,4.)); +#55340=CARTESIAN_POINT('',(0.279999999999999,7.19,4.)); +#55341=CARTESIAN_POINT('',(0.279999999999999,7.5374,4.)); +#55342=CARTESIAN_POINT('',(0.245,7.19,4.)); +#55343=CARTESIAN_POINT('',(-0.245000000000001,7.19,4.)); +#55344=CARTESIAN_POINT('',(-0.28,7.19,4.)); +#55345=CARTESIAN_POINT('',(-0.28,7.19,4.)); +#55346=CARTESIAN_POINT('',(-0.28,7.5374,4.)); +#55347=CARTESIAN_POINT('',(0.399999999999999,7.5374,4.)); +#55348=CARTESIAN_POINT('',(-0.400000000000001,7.5374,4.)); +#55349=CARTESIAN_POINT('',(-0.555,7.085,4.)); +#55350=CARTESIAN_POINT('',(-0.625000000000001,7.085,4.)); +#55351=CARTESIAN_POINT('',(-0.555000000000001,7.155,4.)); +#55352=CARTESIAN_POINT('',(-0.625000000000001,7.085,4.)); +#55353=CARTESIAN_POINT('',(-0.625000000000001,4.17643593539449,4.)); +#55354=CARTESIAN_POINT('',(-0.705000000000009,4.17643593539449,4.)); +#55355=CARTESIAN_POINT('',(-0.635717967697245,4.13643593539449,4.)); +#55356=CARTESIAN_POINT('',(-0.635717967697246,4.13643593539449,4.)); +#55357=CARTESIAN_POINT('',(-0.679282032302756,4.06098076211353,4.)); +#55358=CARTESIAN_POINT('',(-0.610000000000005,4.02098076211353,4.)); +#55359=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,4.)); +#55360=CARTESIAN_POINT('',(-0.690000000000001,4.02098076211353,4.)); +#55361=CARTESIAN_POINT('',(-0.910000000000001,1.05,4.)); +#55362=CARTESIAN_POINT('',(-0.910000000000001,4.02098076211353,4.)); +#55363=CARTESIAN_POINT('',(-0.989999999999987,4.02098076211354,4.)); +#55364=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,4.)); +#55365=CARTESIAN_POINT('',(-0.920717967697245,4.06098076211353,4.)); +#55366=CARTESIAN_POINT('',(-0.964282032302756,4.13643593539449,4.)); +#55367=CARTESIAN_POINT('',(-0.895000000000004,4.17643593539449,4.)); +#55368=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,4.)); +#55369=CARTESIAN_POINT('',(-0.975000000000001,4.17643593539449,4.)); +#55370=CARTESIAN_POINT('',(-0.975000000000001,7.085,4.)); +#55371=CARTESIAN_POINT('',(-1.045,7.085,4.)); +#55372=CARTESIAN_POINT('',(-1.045,7.155,4.)); +#55373=CARTESIAN_POINT('',(-0.520000000000001,7.5374,4.)); +#55374=CARTESIAN_POINT('',(-0.520000000000001,7.19,4.)); +#55375=CARTESIAN_POINT('',(-0.520000000000001,7.5374,4.)); +#55376=CARTESIAN_POINT('',(-0.555000000000001,7.19,4.)); +#55377=CARTESIAN_POINT('',(-1.045,7.19,4.)); +#55378=CARTESIAN_POINT('',(-1.08,7.19,4.)); +#55379=CARTESIAN_POINT('',(-1.08,7.19,4.)); +#55380=CARTESIAN_POINT('',(-1.08,7.5374,4.)); +#55381=CARTESIAN_POINT('',(-0.400000000000001,7.5374,4.)); +#55382=CARTESIAN_POINT('',(-1.2,7.5374,4.)); +#55383=CARTESIAN_POINT('',(-1.355,7.085,4.)); +#55384=CARTESIAN_POINT('',(-1.425,7.085,4.)); +#55385=CARTESIAN_POINT('',(-1.355,7.155,4.)); +#55386=CARTESIAN_POINT('',(-1.425,7.085,4.)); +#55387=CARTESIAN_POINT('',(-1.425,4.17643593539449,4.)); +#55388=CARTESIAN_POINT('',(-1.50500000000001,4.17643593539449,4.)); +#55389=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,4.)); +#55390=CARTESIAN_POINT('',(-1.43571796769725,4.13643593539449,4.)); +#55391=CARTESIAN_POINT('',(-1.47928203230276,4.06098076211353,4.)); +#55392=CARTESIAN_POINT('',(-1.40999999999999,4.02098076211353,4.)); +#55393=CARTESIAN_POINT('',(-1.49,4.02098076211353,4.)); +#55394=CARTESIAN_POINT('',(-1.49,4.02098076211353,4.)); +#55395=CARTESIAN_POINT('',(-1.71,1.05,4.)); +#55396=CARTESIAN_POINT('',(-1.71,4.02098076211353,4.)); +#55397=CARTESIAN_POINT('',(-1.79,4.02098076211353,4.)); +#55398=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,4.)); +#55399=CARTESIAN_POINT('',(-1.72071796769725,4.06098076211353,4.)); +#55400=CARTESIAN_POINT('',(-1.76428203230276,4.13643593539449,4.)); +#55401=CARTESIAN_POINT('',(-1.695,4.17643593539449,4.)); +#55402=CARTESIAN_POINT('',(-1.775,4.17643593539449,4.)); +#55403=CARTESIAN_POINT('',(-1.775,4.17643593539449,4.)); +#55404=CARTESIAN_POINT('',(-1.775,7.085,4.)); +#55405=CARTESIAN_POINT('',(-1.845,7.085,4.)); +#55406=CARTESIAN_POINT('',(-1.845,7.155,4.)); +#55407=CARTESIAN_POINT('',(-1.32,7.5374,4.)); +#55408=CARTESIAN_POINT('',(-1.32,7.19,4.)); +#55409=CARTESIAN_POINT('',(-1.32,7.5374,4.)); +#55410=CARTESIAN_POINT('',(-1.355,7.19,4.)); +#55411=CARTESIAN_POINT('',(-1.845,7.19,4.)); +#55412=CARTESIAN_POINT('',(-1.88,7.19,4.)); +#55413=CARTESIAN_POINT('',(-1.88,7.19,4.)); +#55414=CARTESIAN_POINT('',(-1.88,7.5374,4.)); +#55415=CARTESIAN_POINT('',(-1.2,7.5374,4.)); +#55416=CARTESIAN_POINT('',(-2.,7.5374,4.)); +#55417=CARTESIAN_POINT('',(-2.155,7.085,4.)); +#55418=CARTESIAN_POINT('',(-2.225,7.085,4.)); +#55419=CARTESIAN_POINT('',(-2.155,7.155,4.)); +#55420=CARTESIAN_POINT('',(-2.225,7.085,4.)); +#55421=CARTESIAN_POINT('',(-2.225,4.17643593539449,4.)); +#55422=CARTESIAN_POINT('',(-2.30500000000001,4.17643593539449,4.)); +#55423=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,4.)); +#55424=CARTESIAN_POINT('',(-2.23571796769725,4.13643593539449,4.)); +#55425=CARTESIAN_POINT('',(-2.27928203230276,4.06098076211353,4.)); +#55426=CARTESIAN_POINT('',(-2.21000000000001,4.02098076211353,4.)); +#55427=CARTESIAN_POINT('',(-2.29,4.02098076211353,4.)); +#55428=CARTESIAN_POINT('',(-2.29,4.02098076211353,4.)); +#55429=CARTESIAN_POINT('',(-2.51,1.05,4.)); +#55430=CARTESIAN_POINT('',(-2.51,4.02098076211353,4.)); +#55431=CARTESIAN_POINT('',(-2.59,4.02098076211353,4.)); +#55432=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,4.)); +#55433=CARTESIAN_POINT('',(-2.52071796769725,4.06098076211353,4.)); +#55434=CARTESIAN_POINT('',(-2.56428203230276,4.13643593539449,4.)); +#55435=CARTESIAN_POINT('',(-2.495,4.17643593539449,4.)); +#55436=CARTESIAN_POINT('',(-2.575,4.17643593539449,4.)); +#55437=CARTESIAN_POINT('',(-2.575,4.17643593539449,4.)); +#55438=CARTESIAN_POINT('',(-2.575,7.085,4.)); +#55439=CARTESIAN_POINT('',(-2.645,7.085,4.)); +#55440=CARTESIAN_POINT('',(-2.645,7.155,4.)); +#55441=CARTESIAN_POINT('',(-2.12,7.5374,4.)); +#55442=CARTESIAN_POINT('',(-2.12,7.19,4.)); +#55443=CARTESIAN_POINT('',(-2.12,7.5374,4.)); +#55444=CARTESIAN_POINT('',(-2.155,7.19,4.)); +#55445=CARTESIAN_POINT('',(-2.645,7.19,4.)); +#55446=CARTESIAN_POINT('',(-2.68,7.19,4.)); +#55447=CARTESIAN_POINT('',(-2.68,7.19,4.)); +#55448=CARTESIAN_POINT('',(-2.68,7.5374,4.)); +#55449=CARTESIAN_POINT('',(-2.,7.5374,4.)); +#55450=CARTESIAN_POINT('',(-2.8,7.5374,4.)); +#55451=CARTESIAN_POINT('',(-2.955,7.085,4.)); +#55452=CARTESIAN_POINT('',(-3.025,7.085,4.)); +#55453=CARTESIAN_POINT('',(-2.955,7.155,4.)); +#55454=CARTESIAN_POINT('',(-3.025,7.085,4.)); +#55455=CARTESIAN_POINT('',(-3.025,4.17643593539449,4.)); +#55456=CARTESIAN_POINT('',(-3.10500000000001,4.17643593539449,4.)); +#55457=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,4.)); +#55458=CARTESIAN_POINT('',(-3.03571796769725,4.13643593539449,4.)); +#55459=CARTESIAN_POINT('',(-3.07928203230276,4.06098076211353,4.)); +#55460=CARTESIAN_POINT('',(-3.01,4.02098076211353,4.)); +#55461=CARTESIAN_POINT('',(-3.09,4.02098076211353,4.)); +#55462=CARTESIAN_POINT('',(-3.09,4.02098076211353,4.)); +#55463=CARTESIAN_POINT('',(-3.31,1.05,4.)); +#55464=CARTESIAN_POINT('',(-3.31,4.02098076211353,4.)); +#55465=CARTESIAN_POINT('',(-3.39,4.02098076211353,4.)); +#55466=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,4.)); +#55467=CARTESIAN_POINT('',(-3.32071796769725,4.06098076211353,4.)); +#55468=CARTESIAN_POINT('',(-3.36428203230276,4.13643593539449,4.)); +#55469=CARTESIAN_POINT('',(-3.29500000000001,4.17643593539449,4.)); +#55470=CARTESIAN_POINT('',(-3.375,4.17643593539449,4.)); +#55471=CARTESIAN_POINT('',(-3.375,4.17643593539449,4.)); +#55472=CARTESIAN_POINT('',(-3.375,7.085,4.)); +#55473=CARTESIAN_POINT('',(-3.445,7.085,4.)); +#55474=CARTESIAN_POINT('',(-3.445,7.155,4.)); +#55475=CARTESIAN_POINT('',(-2.92,7.5374,4.)); +#55476=CARTESIAN_POINT('',(-2.92,7.19,4.)); +#55477=CARTESIAN_POINT('',(-2.92,7.5374,4.)); +#55478=CARTESIAN_POINT('',(-2.955,7.19,4.)); +#55479=CARTESIAN_POINT('',(-3.445,7.19,4.)); +#55480=CARTESIAN_POINT('',(-3.48,7.19,4.)); +#55481=CARTESIAN_POINT('',(-3.48,7.19,4.)); +#55482=CARTESIAN_POINT('',(-3.48,7.5374,4.)); +#55483=CARTESIAN_POINT('',(-2.8,7.5374,4.)); +#55484=CARTESIAN_POINT('',(-3.6,7.5374,4.)); +#55485=CARTESIAN_POINT('',(-3.755,7.085,4.)); +#55486=CARTESIAN_POINT('',(-3.825,7.085,4.)); +#55487=CARTESIAN_POINT('',(-3.755,7.155,4.)); +#55488=CARTESIAN_POINT('',(-3.825,7.085,4.)); +#55489=CARTESIAN_POINT('',(-3.825,4.17643593539449,4.)); +#55490=CARTESIAN_POINT('',(-3.90499999999999,4.17643593539449,4.)); +#55491=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,4.)); +#55492=CARTESIAN_POINT('',(-3.83571796769725,4.13643593539449,4.)); +#55493=CARTESIAN_POINT('',(-3.87928203230276,4.06098076211353,4.)); +#55494=CARTESIAN_POINT('',(-3.81,4.02098076211353,4.)); +#55495=CARTESIAN_POINT('',(-3.89,4.02098076211353,4.)); +#55496=CARTESIAN_POINT('',(-3.89,4.02098076211353,4.)); +#55497=CARTESIAN_POINT('',(-4.11,1.05,4.)); +#55498=CARTESIAN_POINT('',(-4.11,4.02098076211353,4.)); +#55499=CARTESIAN_POINT('',(-4.19,4.02098076211353,4.)); +#55500=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,4.)); +#55501=CARTESIAN_POINT('',(-4.12071796769724,4.06098076211353,4.)); +#55502=CARTESIAN_POINT('',(-4.16428203230276,4.13643593539449,4.)); +#55503=CARTESIAN_POINT('',(-4.095,4.17643593539449,4.)); +#55504=CARTESIAN_POINT('',(-4.175,4.17643593539449,4.)); +#55505=CARTESIAN_POINT('',(-4.175,4.17643593539449,4.)); +#55506=CARTESIAN_POINT('',(-4.175,7.085,4.)); +#55507=CARTESIAN_POINT('',(-4.245,7.085,4.)); +#55508=CARTESIAN_POINT('',(-4.245,7.155,4.)); +#55509=CARTESIAN_POINT('',(-3.72,7.5374,4.)); +#55510=CARTESIAN_POINT('',(-3.72,7.19,4.)); +#55511=CARTESIAN_POINT('',(-3.72,7.5374,4.)); +#55512=CARTESIAN_POINT('',(-3.755,7.19,4.)); +#55513=CARTESIAN_POINT('',(-4.245,7.19,4.)); +#55514=CARTESIAN_POINT('',(-4.28,7.19,4.)); +#55515=CARTESIAN_POINT('',(-4.28,7.19,4.)); +#55516=CARTESIAN_POINT('',(-4.28,7.5374,4.)); +#55517=CARTESIAN_POINT('',(-3.6,7.5374,4.)); +#55518=CARTESIAN_POINT('',(-4.4,7.5374,4.)); +#55519=CARTESIAN_POINT('',(-4.555,7.085,4.)); +#55520=CARTESIAN_POINT('',(-4.625,7.085,4.)); +#55521=CARTESIAN_POINT('',(-4.555,7.155,4.)); +#55522=CARTESIAN_POINT('',(-4.625,7.085,4.)); +#55523=CARTESIAN_POINT('',(-4.625,4.17643593539449,4.)); +#55524=CARTESIAN_POINT('',(-4.70500000000002,4.17643593539449,4.)); +#55525=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,4.)); +#55526=CARTESIAN_POINT('',(-4.63571796769725,4.13643593539449,4.)); +#55527=CARTESIAN_POINT('',(-4.67928203230276,4.06098076211353,4.)); +#55528=CARTESIAN_POINT('',(-4.61,4.02098076211353,4.)); +#55529=CARTESIAN_POINT('',(-4.69,4.02098076211353,4.)); +#55530=CARTESIAN_POINT('',(-4.69,4.02098076211353,4.)); +#55531=CARTESIAN_POINT('',(-4.91,1.05,4.)); +#55532=CARTESIAN_POINT('',(-4.91,4.02098076211353,4.)); +#55533=CARTESIAN_POINT('',(-4.98999999999999,4.02098076211353,4.)); +#55534=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,4.)); +#55535=CARTESIAN_POINT('',(-4.92071796769724,4.06098076211353,4.)); +#55536=CARTESIAN_POINT('',(-4.96428203230276,4.13643593539449,4.)); +#55537=CARTESIAN_POINT('',(-4.89499999999999,4.17643593539449,4.)); +#55538=CARTESIAN_POINT('',(-4.975,4.17643593539449,4.)); +#55539=CARTESIAN_POINT('',(-4.975,4.17643593539449,4.)); +#55540=CARTESIAN_POINT('',(-4.975,7.085,4.)); +#55541=CARTESIAN_POINT('',(-5.045,7.085,4.)); +#55542=CARTESIAN_POINT('',(-5.045,7.155,4.)); +#55543=CARTESIAN_POINT('',(-4.52,7.5374,4.)); +#55544=CARTESIAN_POINT('',(-4.52,7.19,4.)); +#55545=CARTESIAN_POINT('',(-4.52,7.5374,4.)); +#55546=CARTESIAN_POINT('',(-4.555,7.19,4.)); +#55547=CARTESIAN_POINT('',(-5.045,7.19,4.)); +#55548=CARTESIAN_POINT('',(-5.08,7.19,4.)); +#55549=CARTESIAN_POINT('',(-5.08,7.19,4.)); +#55550=CARTESIAN_POINT('',(-5.08,7.5374,4.)); +#55551=CARTESIAN_POINT('',(-4.4,7.5374,4.)); +#55552=CARTESIAN_POINT('',(-5.2,7.5374,4.)); +#55553=CARTESIAN_POINT('',(-5.355,7.085,4.)); +#55554=CARTESIAN_POINT('',(-5.425,7.085,4.)); +#55555=CARTESIAN_POINT('',(-5.355,7.155,4.)); +#55556=CARTESIAN_POINT('',(-5.425,7.085,4.)); +#55557=CARTESIAN_POINT('',(-5.425,4.17643593539449,4.)); +#55558=CARTESIAN_POINT('',(-5.50499999999999,4.17643593539449,4.)); +#55559=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,4.)); +#55560=CARTESIAN_POINT('',(-5.43571796769725,4.13643593539449,4.)); +#55561=CARTESIAN_POINT('',(-5.47928203230276,4.06098076211353,4.)); +#55562=CARTESIAN_POINT('',(-5.41,4.02098076211353,4.)); +#55563=CARTESIAN_POINT('',(-5.49,4.02098076211353,4.)); +#55564=CARTESIAN_POINT('',(-5.49,4.02098076211353,4.)); +#55565=CARTESIAN_POINT('',(-5.71,1.05,4.)); +#55566=CARTESIAN_POINT('',(-5.71,4.02098076211353,4.)); +#55567=CARTESIAN_POINT('',(-5.79000000000001,4.02098076211353,4.)); +#55568=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,4.)); +#55569=CARTESIAN_POINT('',(-5.72071796769724,4.06098076211353,4.)); +#55570=CARTESIAN_POINT('',(-5.76428203230276,4.13643593539449,4.)); +#55571=CARTESIAN_POINT('',(-5.695,4.17643593539449,4.)); +#55572=CARTESIAN_POINT('',(-5.775,4.17643593539449,4.)); +#55573=CARTESIAN_POINT('',(-5.775,4.17643593539449,4.)); +#55574=CARTESIAN_POINT('',(-5.775,7.085,4.)); +#55575=CARTESIAN_POINT('',(-5.845,7.085,4.)); +#55576=CARTESIAN_POINT('',(-5.845,7.155,4.)); +#55577=CARTESIAN_POINT('',(-5.32,7.5374,4.)); +#55578=CARTESIAN_POINT('',(-5.32,7.19,4.)); +#55579=CARTESIAN_POINT('',(-5.32,7.5374,4.)); +#55580=CARTESIAN_POINT('',(-5.355,7.19,4.)); +#55581=CARTESIAN_POINT('',(-5.845,7.19,4.)); +#55582=CARTESIAN_POINT('',(-5.88,7.19,4.)); +#55583=CARTESIAN_POINT('',(-5.88,7.19,4.)); +#55584=CARTESIAN_POINT('',(-5.88,7.5374,4.)); +#55585=CARTESIAN_POINT('',(-5.2,7.5374,4.)); +#55586=CARTESIAN_POINT('',(-6.,7.5374,4.)); +#55587=CARTESIAN_POINT('',(-6.155,7.085,4.)); +#55588=CARTESIAN_POINT('',(-6.225,7.085,4.)); +#55589=CARTESIAN_POINT('',(-6.155,7.155,4.)); +#55590=CARTESIAN_POINT('',(-6.225,7.085,4.)); +#55591=CARTESIAN_POINT('',(-6.225,4.17643593539449,4.)); +#55592=CARTESIAN_POINT('',(-6.30499999999999,4.17643593539449,4.)); +#55593=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,4.)); +#55594=CARTESIAN_POINT('',(-6.23571796769725,4.13643593539449,4.)); +#55595=CARTESIAN_POINT('',(-6.27928203230276,4.06098076211353,4.)); +#55596=CARTESIAN_POINT('',(-6.20999999999998,4.02098076211353,4.)); +#55597=CARTESIAN_POINT('',(-6.29,4.02098076211353,4.)); +#55598=CARTESIAN_POINT('',(-6.29,4.02098076211353,4.)); +#55599=CARTESIAN_POINT('',(-6.51,1.05,4.)); +#55600=CARTESIAN_POINT('',(-6.51,4.02098076211353,4.)); +#55601=CARTESIAN_POINT('',(-6.58999999999999,4.02098076211354,4.)); +#55602=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,4.)); +#55603=CARTESIAN_POINT('',(-6.52071796769725,4.06098076211353,4.)); +#55604=CARTESIAN_POINT('',(-6.56428203230276,4.13643593539449,4.)); +#55605=CARTESIAN_POINT('',(-6.495,4.17643593539449,4.)); +#55606=CARTESIAN_POINT('',(-6.575,4.17643593539449,4.)); +#55607=CARTESIAN_POINT('',(-6.575,4.17643593539449,4.)); +#55608=CARTESIAN_POINT('',(-6.575,7.085,4.)); +#55609=CARTESIAN_POINT('',(-6.645,7.085,4.)); +#55610=CARTESIAN_POINT('',(-6.645,7.155,4.)); +#55611=CARTESIAN_POINT('',(-6.12,7.5374,4.)); +#55612=CARTESIAN_POINT('',(-6.12,7.19,4.)); +#55613=CARTESIAN_POINT('',(-6.12,7.5374,4.)); +#55614=CARTESIAN_POINT('',(-6.155,7.19,4.)); +#55615=CARTESIAN_POINT('',(-6.645,7.19,4.)); +#55616=CARTESIAN_POINT('',(-6.68,7.19,4.)); +#55617=CARTESIAN_POINT('',(-6.68,7.19,4.)); +#55618=CARTESIAN_POINT('',(-6.68,7.5374,4.)); +#55619=CARTESIAN_POINT('',(-6.,7.5374,4.)); +#55620=CARTESIAN_POINT('',(-6.8,7.5374,4.)); +#55621=CARTESIAN_POINT('',(-6.955,7.085,4.)); +#55622=CARTESIAN_POINT('',(-7.025,7.085,4.)); +#55623=CARTESIAN_POINT('',(-6.955,7.155,4.)); +#55624=CARTESIAN_POINT('',(-7.025,7.085,4.)); +#55625=CARTESIAN_POINT('',(-7.025,4.17643593539449,4.)); +#55626=CARTESIAN_POINT('',(-7.10500000000001,4.17643593539449,4.)); +#55627=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,4.)); +#55628=CARTESIAN_POINT('',(-7.03571796769725,4.13643593539449,4.)); +#55629=CARTESIAN_POINT('',(-7.07928203230276,4.06098076211353,4.)); +#55630=CARTESIAN_POINT('',(-7.01,4.02098076211353,4.)); +#55631=CARTESIAN_POINT('',(-7.09,4.02098076211353,4.)); +#55632=CARTESIAN_POINT('',(-7.09,4.02098076211353,4.)); +#55633=CARTESIAN_POINT('',(-7.31,1.05,4.)); +#55634=CARTESIAN_POINT('',(-7.31,4.02098076211353,4.)); +#55635=CARTESIAN_POINT('',(-7.38999999999999,4.02098076211353,4.)); +#55636=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,4.)); +#55637=CARTESIAN_POINT('',(-7.32071796769724,4.06098076211353,4.)); +#55638=CARTESIAN_POINT('',(-7.36428203230276,4.13643593539449,4.)); +#55639=CARTESIAN_POINT('',(-7.29499999999998,4.17643593539449,4.)); +#55640=CARTESIAN_POINT('',(-7.375,4.17643593539449,4.)); +#55641=CARTESIAN_POINT('',(-7.375,4.17643593539449,4.)); +#55642=CARTESIAN_POINT('',(-7.375,7.085,4.)); +#55643=CARTESIAN_POINT('',(-7.445,7.085,4.)); +#55644=CARTESIAN_POINT('',(-7.445,7.155,4.)); +#55645=CARTESIAN_POINT('',(-6.92,7.5374,4.)); +#55646=CARTESIAN_POINT('',(-6.92,7.19,4.)); +#55647=CARTESIAN_POINT('',(-6.92,7.5374,4.)); +#55648=CARTESIAN_POINT('',(-6.955,7.19,4.)); +#55649=CARTESIAN_POINT('',(-7.445,7.19,4.)); +#55650=CARTESIAN_POINT('',(-7.48,7.19,4.)); +#55651=CARTESIAN_POINT('',(-7.48,7.19,4.)); +#55652=CARTESIAN_POINT('',(-7.48,7.5374,4.)); +#55653=CARTESIAN_POINT('',(-6.8,7.5374,4.)); +#55654=CARTESIAN_POINT('',(-7.6,7.5374,4.)); +#55655=CARTESIAN_POINT('',(0.,1.05,0.)); +#55656=CARTESIAN_POINT('',(0.,1.05,0.)); +#55657=CARTESIAN_POINT('',(9.89,1.,-3.21)); +#55658=CARTESIAN_POINT('',(0.,-0.195,-1.22464679914735E-16)); +#55659=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#33381, +#33382,#33383),#55660); +#55660=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#55664)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#55670,#55669,#55668)) +REPRESENTATION_CONTEXT('ERM8-020-05.0-L-DV-TR', +'TOP_LEVEL_ASSEMBLY_PART') +); +#55661=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#55665)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#55670,#55669,#55668)) +REPRESENTATION_CONTEXT('ERM8-020-05.0-DVT','COMPONENT_PART') +); +#55662=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#55666)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#55670,#55669,#55668)) +REPRESENTATION_CONTEXT('ERM8-020-05.0-DV_pin','COMPONENT_PART') +); +#55663=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#55667)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#55670,#55669,#55668)) +REPRESENTATION_CONTEXT('ERM8-020-05.0-DV3_pin','COMPONENT_PART') +); +#55664=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-5),#55670, +'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); +#55665=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-5),#55670, +'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); +#55666=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-5),#55670, +'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); +#55667=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-5),#55670, +'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); +#55668=( +NAMED_UNIT(*) +SI_UNIT($,.STERADIAN.) +SOLID_ANGLE_UNIT() +); +#55669=( +NAMED_UNIT(*) +PLANE_ANGLE_UNIT() +SI_UNIT($,.RADIAN.) +); +#55670=( +LENGTH_UNIT() +NAMED_UNIT(*) +SI_UNIT(.MILLI.,.METRE.) +); +#55671=PRODUCT_DEFINITION_SHAPE('','',#55678); +#55672=PRODUCT_DEFINITION_SHAPE('','',#55679); +#55673=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#341); +#55674=PRODUCT_DEFINITION_SHAPE('','',#55680); +#55675=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#342); +#55676=PRODUCT_DEFINITION_SHAPE('','',#55681); +#55677=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#343); +#55678=PRODUCT_DEFINITION('','',#55686,#55682); +#55679=PRODUCT_DEFINITION('','',#55687,#55683); +#55680=PRODUCT_DEFINITION('','',#55688,#55684); +#55681=PRODUCT_DEFINITION('','',#55689,#55685); +#55682=PRODUCT_DEFINITION_CONTEXT('',#55707,'design'); +#55683=PRODUCT_DEFINITION_CONTEXT('',#55707,'design'); +#55684=PRODUCT_DEFINITION_CONTEXT('',#55707,'design'); +#55685=PRODUCT_DEFINITION_CONTEXT('',#55707,'design'); +#55686=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#55694, + .NOT_KNOWN.); +#55687=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#55695, + .NOT_KNOWN.); +#55688=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#55696, + .NOT_KNOWN.); +#55689=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#55697, + .NOT_KNOWN.); +#55690=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#55694)); +#55691=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#55695)); +#55692=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#55696)); +#55693=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#55697)); +#55694=PRODUCT('ERM8-020-05.0-L-DV-TR','ERM8-020-05.0-L-DV-TR', +'ERM8-020-05.0-L-DV-TR',(#55702)); +#55695=PRODUCT('ERM8-020-05.0-DVT','ERM8-020-05.0-DVT', +'ERM8-020-05.0-DVT',(#55703)); +#55696=PRODUCT('ERM8-020-05.0-DV_pin','ERM8-020-05.0-DV_pin', +'ERM8-020-05.0-DV_pin',(#55704)); +#55697=PRODUCT('ERM8-020-05.0-DV3_pin','ERM8-020-05.0-DV3_pin', +'ERM8-020-05.0-DV3_pin',(#55705)); +#55698=PRODUCT_CATEGORY('',''); +#55699=PRODUCT_CATEGORY('',''); +#55700=PRODUCT_CATEGORY('',''); +#55701=PRODUCT_CATEGORY('',''); +#55702=PRODUCT_CONTEXT('',#55707,'mechanical'); +#55703=PRODUCT_CONTEXT('',#55707,'mechanical'); +#55704=PRODUCT_CONTEXT('',#55707,'mechanical'); +#55705=PRODUCT_CONTEXT('',#55707,'mechanical'); +#55706=APPLICATION_PROTOCOL_DEFINITION('international standard', +'automotive_design',2010,#55707); +#55707=APPLICATION_CONTEXT( +'core data for automotive mechanical design processes'); +ENDSEC; +END-ISO-10303-21; diff --git a/eps/hardware/models/SHF-105-01-L-D-SM.stp b/eps/v1/hardware/models/SHF-105-01-L-D-SM.stp similarity index 97% rename from eps/hardware/models/SHF-105-01-L-D-SM.stp rename to eps/v1/hardware/models/SHF-105-01-L-D-SM.stp index e888ac2..129d408 100644 --- a/eps/hardware/models/SHF-105-01-L-D-SM.stp +++ b/eps/v1/hardware/models/SHF-105-01-L-D-SM.stp @@ -1,6859 +1,6859 @@ -ISO-10303-21; -HEADER; -/* Generated by software containing ST-Developer - * from STEP Tools, Inc. (www.steptools.com) - */ -/* OPTION: using custom renumber hook */ - -FILE_DESCRIPTION( -/* description */ ('STEP AP214'), -/* implementation_level */ '2;1'); - -FILE_NAME( -/* name */ 'SHF-105-01-L-D-SM', -/* time_stamp */ '2026-05-23T15:16:07+02:00', -/* author */ ('License CC BY-ND 4.0'), -/* organization */ ('CADENAS'), -/* preprocessor_version */ 'ST-DEVELOPER v20', -/* originating_system */ 'PARTsolutions', -/* authorisation */ ' '); - -FILE_SCHEMA (('AUTOMOTIVE_DESIGN {1 0 10303 214 3 1 1}')); -ENDSEC; - -DATA; -#10=PROPERTY_DEFINITION_REPRESENTATION(#14,#12); -#11=PROPERTY_DEFINITION_REPRESENTATION(#15,#13); -#12=REPRESENTATION('',(#16),#6677); -#13=REPRESENTATION('',(#17),#6677); -#14=PROPERTY_DEFINITION('pmi validation property','',#6691); -#15=PROPERTY_DEFINITION('pmi validation property','',#6691); -#16=VALUE_REPRESENTATION_ITEM('number of annotations',COUNT_MEASURE(0.)); -#17=VALUE_REPRESENTATION_ITEM('number of views',COUNT_MEASURE(0.)); -#18=CIRCLE('',#4299,0.026); -#19=CIRCLE('',#4300,0.026); -#20=CIRCLE('',#4302,0.026); -#21=CIRCLE('',#4303,0.026); -#22=CIRCLE('',#4305,0.026); -#23=CIRCLE('',#4306,0.026); -#24=CIRCLE('',#4308,0.026); -#25=CIRCLE('',#4309,0.026); -#26=CIRCLE('',#4311,0.026); -#27=CIRCLE('',#4312,0.026); -#28=CIRCLE('',#4324,0.026); -#29=CIRCLE('',#4325,0.026); -#30=CIRCLE('',#4327,0.026); -#31=CIRCLE('',#4328,0.026); -#32=CIRCLE('',#4330,0.026); -#33=CIRCLE('',#4331,0.026); -#34=CIRCLE('',#4333,0.026); -#35=CIRCLE('',#4334,0.026); -#36=CIRCLE('',#4336,0.026); -#37=CIRCLE('',#4337,0.026); -#38=CIRCLE('',#4364,0.01); -#39=CIRCLE('',#4365,0.01); -#40=CIRCLE('',#4367,0.01); -#41=CIRCLE('',#4368,0.01); -#42=CIRCLE('',#4370,0.01); -#43=CIRCLE('',#4371,0.01); -#44=CIRCLE('',#4373,0.01); -#45=CIRCLE('',#4374,0.01); -#46=CIRCLE('',#4376,0.01); -#47=CIRCLE('',#4377,0.01); -#48=CIRCLE('',#4379,0.01); -#49=CIRCLE('',#4380,0.01); -#50=CIRCLE('',#4382,0.01); -#51=CIRCLE('',#4383,0.01); -#52=CIRCLE('',#4385,0.01); -#53=CIRCLE('',#4386,0.01); -#54=CIRCLE('',#4388,0.01); -#55=CIRCLE('',#4389,0.01); -#56=CIRCLE('',#4391,0.01); -#57=CIRCLE('',#4392,0.01); -#58=CYLINDRICAL_SURFACE('',#4298,0.026); -#59=CYLINDRICAL_SURFACE('',#4301,0.026); -#60=CYLINDRICAL_SURFACE('',#4304,0.026); -#61=CYLINDRICAL_SURFACE('',#4307,0.026); -#62=CYLINDRICAL_SURFACE('',#4310,0.026); -#63=CYLINDRICAL_SURFACE('',#4323,0.026); -#64=CYLINDRICAL_SURFACE('',#4326,0.026); -#65=CYLINDRICAL_SURFACE('',#4329,0.026); -#66=CYLINDRICAL_SURFACE('',#4332,0.026); -#67=CYLINDRICAL_SURFACE('',#4335,0.026); -#68=CYLINDRICAL_SURFACE('',#4363,0.01); -#69=CYLINDRICAL_SURFACE('',#4366,0.01); -#70=CYLINDRICAL_SURFACE('',#4369,0.01); -#71=CYLINDRICAL_SURFACE('',#4372,0.01); -#72=CYLINDRICAL_SURFACE('',#4375,0.01); -#73=CYLINDRICAL_SURFACE('',#4378,0.01); -#74=CYLINDRICAL_SURFACE('',#4381,0.01); -#75=CYLINDRICAL_SURFACE('',#4384,0.01); -#76=CYLINDRICAL_SURFACE('',#4387,0.01); -#77=CYLINDRICAL_SURFACE('',#4390,0.01); -#78=DRAUGHTING_PRE_DEFINED_COLOUR('red'); -#79=DRAUGHTING_PRE_DEFINED_COLOUR('yellow'); -#80=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#86,#6693); -#81=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#87,#6695); -#82=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#88,#6697); -#83=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO1','SHF-105-01-D_header', -'SHF-105-01-D_header',#6698,#6699,''); -#84=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO2', -'SHF-First_Position_Indicator','SHF-First_Position_Indicator',#6698,#6700, -''); -#85=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO3','T-1S71-02-05-D-SM', -'T-1S71-02-05-D-SM',#6698,#6701,''); -#86=( -REPRESENTATION_RELATIONSHIP(' ',' ',#4189,#4188) -REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#89) -SHAPE_REPRESENTATION_RELATIONSHIP() -); -#87=( -REPRESENTATION_RELATIONSHIP(' ',' ',#4190,#4188) -REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#90) -SHAPE_REPRESENTATION_RELATIONSHIP() -); -#88=( -REPRESENTATION_RELATIONSHIP(' ',' ',#4191,#4188) -REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#91) -SHAPE_REPRESENTATION_RELATIONSHIP() -); -#89=ITEM_DEFINED_TRANSFORMATION(' ',' ',#4192,#4231); -#90=ITEM_DEFINED_TRANSFORMATION(' ',' ',#4192,#4240); -#91=ITEM_DEFINED_TRANSFORMATION(' ',' ',#4192,#4439); -#92=SHAPE_REPRESENTATION_RELATIONSHIP('','',#4189,#95); -#93=SHAPE_REPRESENTATION_RELATIONSHIP('','',#4190,#96); -#94=SHAPE_REPRESENTATION_RELATIONSHIP('','',#4191,#97); -#95=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#4181),#6678); -#96=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#4182),#6679); -#97=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#4183),#6680); -#98=ORIENTED_EDGE('',*,*,#1278,.T.); -#99=ORIENTED_EDGE('',*,*,#1279,.T.); -#100=ORIENTED_EDGE('',*,*,#1280,.F.); -#101=ORIENTED_EDGE('',*,*,#1281,.F.); -#102=ORIENTED_EDGE('',*,*,#1282,.F.); -#103=ORIENTED_EDGE('',*,*,#1283,.F.); -#104=ORIENTED_EDGE('',*,*,#1284,.F.); -#105=ORIENTED_EDGE('',*,*,#1285,.F.); -#106=ORIENTED_EDGE('',*,*,#1286,.T.); -#107=ORIENTED_EDGE('',*,*,#1287,.F.); -#108=ORIENTED_EDGE('',*,*,#1288,.F.); -#109=ORIENTED_EDGE('',*,*,#1289,.T.); -#110=ORIENTED_EDGE('',*,*,#1290,.T.); -#111=ORIENTED_EDGE('',*,*,#1291,.T.); -#112=ORIENTED_EDGE('',*,*,#1278,.F.); -#113=ORIENTED_EDGE('',*,*,#1292,.F.); -#114=ORIENTED_EDGE('',*,*,#1293,.F.); -#115=ORIENTED_EDGE('',*,*,#1294,.F.); -#116=ORIENTED_EDGE('',*,*,#1295,.T.); -#117=ORIENTED_EDGE('',*,*,#1296,.F.); -#118=ORIENTED_EDGE('',*,*,#1297,.T.); -#119=ORIENTED_EDGE('',*,*,#1298,.F.); -#120=ORIENTED_EDGE('',*,*,#1299,.F.); -#121=ORIENTED_EDGE('',*,*,#1300,.F.); -#122=ORIENTED_EDGE('',*,*,#1301,.F.); -#123=ORIENTED_EDGE('',*,*,#1302,.F.); -#124=ORIENTED_EDGE('',*,*,#1303,.F.); -#125=ORIENTED_EDGE('',*,*,#1304,.F.); -#126=ORIENTED_EDGE('',*,*,#1305,.T.); -#127=ORIENTED_EDGE('',*,*,#1306,.T.); -#128=ORIENTED_EDGE('',*,*,#1307,.T.); -#129=ORIENTED_EDGE('',*,*,#1308,.T.); -#130=ORIENTED_EDGE('',*,*,#1309,.T.); -#131=ORIENTED_EDGE('',*,*,#1288,.T.); -#132=ORIENTED_EDGE('',*,*,#1310,.T.); -#133=ORIENTED_EDGE('',*,*,#1311,.T.); -#134=ORIENTED_EDGE('',*,*,#1312,.T.); -#135=ORIENTED_EDGE('',*,*,#1282,.T.); -#136=ORIENTED_EDGE('',*,*,#1313,.F.); -#137=ORIENTED_EDGE('',*,*,#1314,.T.); -#138=ORIENTED_EDGE('',*,*,#1315,.F.); -#139=ORIENTED_EDGE('',*,*,#1292,.T.); -#140=ORIENTED_EDGE('',*,*,#1281,.T.); -#141=ORIENTED_EDGE('',*,*,#1316,.T.); -#142=ORIENTED_EDGE('',*,*,#1317,.F.); -#143=ORIENTED_EDGE('',*,*,#1318,.F.); -#144=ORIENTED_EDGE('',*,*,#1319,.T.); -#145=ORIENTED_EDGE('',*,*,#1320,.T.); -#146=ORIENTED_EDGE('',*,*,#1321,.T.); -#147=ORIENTED_EDGE('',*,*,#1304,.T.); -#148=ORIENTED_EDGE('',*,*,#1322,.F.); -#149=ORIENTED_EDGE('',*,*,#1323,.F.); -#150=ORIENTED_EDGE('',*,*,#1324,.F.); -#151=ORIENTED_EDGE('',*,*,#1296,.T.); -#152=ORIENTED_EDGE('',*,*,#1325,.F.); -#153=ORIENTED_EDGE('',*,*,#1298,.T.); -#154=ORIENTED_EDGE('',*,*,#1326,.T.); -#155=ORIENTED_EDGE('',*,*,#1327,.F.); -#156=ORIENTED_EDGE('',*,*,#1328,.F.); -#157=ORIENTED_EDGE('',*,*,#1329,.F.); -#158=ORIENTED_EDGE('',*,*,#1330,.T.); -#159=ORIENTED_EDGE('',*,*,#1302,.T.); -#160=ORIENTED_EDGE('',*,*,#1331,.T.); -#161=ORIENTED_EDGE('',*,*,#1280,.T.); -#162=ORIENTED_EDGE('',*,*,#1332,.F.); -#163=ORIENTED_EDGE('',*,*,#1333,.F.); -#164=ORIENTED_EDGE('',*,*,#1334,.F.); -#165=ORIENTED_EDGE('',*,*,#1335,.T.); -#166=ORIENTED_EDGE('',*,*,#1284,.T.); -#167=ORIENTED_EDGE('',*,*,#1336,.F.); -#168=ORIENTED_EDGE('',*,*,#1316,.F.); -#169=ORIENTED_EDGE('',*,*,#1335,.F.); -#170=ORIENTED_EDGE('',*,*,#1337,.T.); -#171=ORIENTED_EDGE('',*,*,#1313,.T.); -#172=ORIENTED_EDGE('',*,*,#1285,.T.); -#173=ORIENTED_EDGE('',*,*,#1320,.F.); -#174=ORIENTED_EDGE('',*,*,#1338,.T.); -#175=ORIENTED_EDGE('',*,*,#1339,.T.); -#176=ORIENTED_EDGE('',*,*,#1340,.F.); -#177=ORIENTED_EDGE('',*,*,#1341,.T.); -#178=ORIENTED_EDGE('',*,*,#1305,.F.); -#179=ORIENTED_EDGE('',*,*,#1321,.F.); -#180=ORIENTED_EDGE('',*,*,#1340,.T.); -#181=ORIENTED_EDGE('',*,*,#1342,.T.); -#182=ORIENTED_EDGE('',*,*,#1306,.F.); -#183=ORIENTED_EDGE('',*,*,#1341,.F.); -#184=ORIENTED_EDGE('',*,*,#1339,.F.); -#185=ORIENTED_EDGE('',*,*,#1343,.F.); -#186=ORIENTED_EDGE('',*,*,#1344,.F.); -#187=ORIENTED_EDGE('',*,*,#1345,.T.); -#188=ORIENTED_EDGE('',*,*,#1318,.T.); -#189=ORIENTED_EDGE('',*,*,#1346,.F.); -#190=ORIENTED_EDGE('',*,*,#1347,.F.); -#191=ORIENTED_EDGE('',*,*,#1286,.F.); -#192=ORIENTED_EDGE('',*,*,#1348,.F.); -#193=ORIENTED_EDGE('',*,*,#1349,.F.); -#194=ORIENTED_EDGE('',*,*,#1350,.T.); -#195=ORIENTED_EDGE('',*,*,#1351,.T.); -#196=ORIENTED_EDGE('',*,*,#1352,.F.); -#197=ORIENTED_EDGE('',*,*,#1353,.F.); -#198=ORIENTED_EDGE('',*,*,#1351,.F.); -#199=ORIENTED_EDGE('',*,*,#1354,.T.); -#200=ORIENTED_EDGE('',*,*,#1344,.T.); -#201=ORIENTED_EDGE('',*,*,#1350,.F.); -#202=ORIENTED_EDGE('',*,*,#1355,.F.); -#203=ORIENTED_EDGE('',*,*,#1307,.F.); -#204=ORIENTED_EDGE('',*,*,#1342,.F.); -#205=ORIENTED_EDGE('',*,*,#1338,.F.); -#206=ORIENTED_EDGE('',*,*,#1319,.F.); -#207=ORIENTED_EDGE('',*,*,#1345,.F.); -#208=ORIENTED_EDGE('',*,*,#1354,.F.); -#209=ORIENTED_EDGE('',*,*,#1336,.T.); -#210=ORIENTED_EDGE('',*,*,#1283,.T.); -#211=ORIENTED_EDGE('',*,*,#1312,.F.); -#212=ORIENTED_EDGE('',*,*,#1356,.T.); -#213=ORIENTED_EDGE('',*,*,#1352,.T.); -#214=ORIENTED_EDGE('',*,*,#1353,.T.); -#215=ORIENTED_EDGE('',*,*,#1343,.T.); -#216=ORIENTED_EDGE('',*,*,#1317,.T.); -#217=ORIENTED_EDGE('',*,*,#1357,.F.); -#218=ORIENTED_EDGE('',*,*,#1358,.F.); -#219=ORIENTED_EDGE('',*,*,#1300,.T.); -#220=ORIENTED_EDGE('',*,*,#1359,.T.); -#221=ORIENTED_EDGE('',*,*,#1360,.F.); -#222=ORIENTED_EDGE('',*,*,#1359,.F.); -#223=ORIENTED_EDGE('',*,*,#1299,.T.); -#224=ORIENTED_EDGE('',*,*,#1328,.T.); -#225=ORIENTED_EDGE('',*,*,#1361,.F.); -#226=ORIENTED_EDGE('',*,*,#1331,.F.); -#227=ORIENTED_EDGE('',*,*,#1301,.T.); -#228=ORIENTED_EDGE('',*,*,#1358,.T.); -#229=ORIENTED_EDGE('',*,*,#1362,.F.); -#230=ORIENTED_EDGE('',*,*,#1326,.F.); -#231=ORIENTED_EDGE('',*,*,#1297,.F.); -#232=ORIENTED_EDGE('',*,*,#1324,.T.); -#233=ORIENTED_EDGE('',*,*,#1363,.T.); -#234=ORIENTED_EDGE('',*,*,#1364,.T.); -#235=ORIENTED_EDGE('',*,*,#1363,.F.); -#236=ORIENTED_EDGE('',*,*,#1323,.T.); -#237=ORIENTED_EDGE('',*,*,#1365,.T.); -#238=ORIENTED_EDGE('',*,*,#1366,.T.); -#239=ORIENTED_EDGE('',*,*,#1367,.T.); -#240=ORIENTED_EDGE('',*,*,#1368,.T.); -#241=ORIENTED_EDGE('',*,*,#1369,.T.); -#242=ORIENTED_EDGE('',*,*,#1370,.F.); -#243=ORIENTED_EDGE('',*,*,#1365,.F.); -#244=ORIENTED_EDGE('',*,*,#1322,.T.); -#245=ORIENTED_EDGE('',*,*,#1303,.T.); -#246=ORIENTED_EDGE('',*,*,#1330,.F.); -#247=ORIENTED_EDGE('',*,*,#1315,.T.); -#248=ORIENTED_EDGE('',*,*,#1371,.F.); -#249=ORIENTED_EDGE('',*,*,#1372,.F.); -#250=ORIENTED_EDGE('',*,*,#1293,.T.); -#251=ORIENTED_EDGE('',*,*,#1325,.T.); -#252=ORIENTED_EDGE('',*,*,#1295,.F.); -#253=ORIENTED_EDGE('',*,*,#1373,.F.); -#254=ORIENTED_EDGE('',*,*,#1371,.T.); -#255=ORIENTED_EDGE('',*,*,#1294,.T.); -#256=ORIENTED_EDGE('',*,*,#1372,.T.); -#257=ORIENTED_EDGE('',*,*,#1373,.T.); -#258=ORIENTED_EDGE('',*,*,#1327,.T.); -#259=ORIENTED_EDGE('',*,*,#1362,.T.); -#260=ORIENTED_EDGE('',*,*,#1364,.F.); -#261=ORIENTED_EDGE('',*,*,#1374,.T.); -#262=ORIENTED_EDGE('',*,*,#1357,.T.); -#263=ORIENTED_EDGE('',*,*,#1375,.F.); -#264=ORIENTED_EDGE('',*,*,#1368,.F.); -#265=ORIENTED_EDGE('',*,*,#1376,.T.); -#266=ORIENTED_EDGE('',*,*,#1360,.T.); -#267=ORIENTED_EDGE('',*,*,#1374,.F.); -#268=ORIENTED_EDGE('',*,*,#1369,.F.); -#269=ORIENTED_EDGE('',*,*,#1375,.T.); -#270=ORIENTED_EDGE('',*,*,#1329,.T.); -#271=ORIENTED_EDGE('',*,*,#1377,.F.); -#272=ORIENTED_EDGE('',*,*,#1366,.F.); -#273=ORIENTED_EDGE('',*,*,#1370,.T.); -#274=ORIENTED_EDGE('',*,*,#1361,.T.); -#275=ORIENTED_EDGE('',*,*,#1376,.F.); -#276=ORIENTED_EDGE('',*,*,#1367,.F.); -#277=ORIENTED_EDGE('',*,*,#1377,.T.); -#278=ORIENTED_EDGE('',*,*,#1349,.T.); -#279=ORIENTED_EDGE('',*,*,#1378,.F.); -#280=ORIENTED_EDGE('',*,*,#1308,.F.); -#281=ORIENTED_EDGE('',*,*,#1355,.T.); -#282=ORIENTED_EDGE('',*,*,#1348,.T.); -#283=ORIENTED_EDGE('',*,*,#1289,.F.); -#284=ORIENTED_EDGE('',*,*,#1309,.F.); -#285=ORIENTED_EDGE('',*,*,#1378,.T.); -#286=ORIENTED_EDGE('',*,*,#1347,.T.); -#287=ORIENTED_EDGE('',*,*,#1379,.F.); -#288=ORIENTED_EDGE('',*,*,#1310,.F.); -#289=ORIENTED_EDGE('',*,*,#1287,.T.); -#290=ORIENTED_EDGE('',*,*,#1346,.T.); -#291=ORIENTED_EDGE('',*,*,#1356,.F.); -#292=ORIENTED_EDGE('',*,*,#1311,.F.); -#293=ORIENTED_EDGE('',*,*,#1379,.T.); -#294=ORIENTED_EDGE('',*,*,#1291,.F.); -#295=ORIENTED_EDGE('',*,*,#1380,.T.); -#296=ORIENTED_EDGE('',*,*,#1332,.T.); -#297=ORIENTED_EDGE('',*,*,#1279,.F.); -#298=ORIENTED_EDGE('',*,*,#1334,.T.); -#299=ORIENTED_EDGE('',*,*,#1381,.F.); -#300=ORIENTED_EDGE('',*,*,#1314,.F.); -#301=ORIENTED_EDGE('',*,*,#1337,.F.); -#302=ORIENTED_EDGE('',*,*,#1333,.T.); -#303=ORIENTED_EDGE('',*,*,#1380,.F.); -#304=ORIENTED_EDGE('',*,*,#1290,.F.); -#305=ORIENTED_EDGE('',*,*,#1381,.T.); -#306=ORIENTED_EDGE('',*,*,#1382,.F.); -#307=ORIENTED_EDGE('',*,*,#1383,.T.); -#308=ORIENTED_EDGE('',*,*,#1384,.F.); -#309=ORIENTED_EDGE('',*,*,#1385,.F.); -#310=ORIENTED_EDGE('',*,*,#1386,.F.); -#311=ORIENTED_EDGE('',*,*,#1387,.F.); -#312=ORIENTED_EDGE('',*,*,#1388,.T.); -#313=ORIENTED_EDGE('',*,*,#1389,.T.); -#314=ORIENTED_EDGE('',*,*,#1390,.T.); -#315=ORIENTED_EDGE('',*,*,#1391,.T.); -#316=ORIENTED_EDGE('',*,*,#1382,.T.); -#317=ORIENTED_EDGE('',*,*,#1392,.T.); -#318=ORIENTED_EDGE('',*,*,#1393,.T.); -#319=ORIENTED_EDGE('',*,*,#1386,.T.); -#320=ORIENTED_EDGE('',*,*,#1392,.F.); -#321=ORIENTED_EDGE('',*,*,#1389,.F.); -#322=ORIENTED_EDGE('',*,*,#1394,.T.); -#323=ORIENTED_EDGE('',*,*,#1395,.T.); -#324=ORIENTED_EDGE('',*,*,#1393,.F.); -#325=ORIENTED_EDGE('',*,*,#1395,.F.); -#326=ORIENTED_EDGE('',*,*,#1396,.T.); -#327=ORIENTED_EDGE('',*,*,#1387,.T.); -#328=ORIENTED_EDGE('',*,*,#1388,.F.); -#329=ORIENTED_EDGE('',*,*,#1396,.F.); -#330=ORIENTED_EDGE('',*,*,#1394,.F.); -#331=ORIENTED_EDGE('',*,*,#1397,.T.); -#332=ORIENTED_EDGE('',*,*,#1398,.F.); -#333=ORIENTED_EDGE('',*,*,#1383,.F.); -#334=ORIENTED_EDGE('',*,*,#1391,.F.); -#335=ORIENTED_EDGE('',*,*,#1385,.T.); -#336=ORIENTED_EDGE('',*,*,#1399,.F.); -#337=ORIENTED_EDGE('',*,*,#1397,.F.); -#338=ORIENTED_EDGE('',*,*,#1390,.F.); -#339=ORIENTED_EDGE('',*,*,#1384,.T.); -#340=ORIENTED_EDGE('',*,*,#1398,.T.); -#341=ORIENTED_EDGE('',*,*,#1399,.T.); -#342=ORIENTED_EDGE('',*,*,#1400,.F.); -#343=ORIENTED_EDGE('',*,*,#1401,.F.); -#344=ORIENTED_EDGE('',*,*,#1402,.F.); -#345=ORIENTED_EDGE('',*,*,#1403,.F.); -#346=ORIENTED_EDGE('',*,*,#1404,.F.); -#347=ORIENTED_EDGE('',*,*,#1405,.F.); -#348=ORIENTED_EDGE('',*,*,#1406,.F.); -#349=ORIENTED_EDGE('',*,*,#1407,.F.); -#350=ORIENTED_EDGE('',*,*,#1408,.F.); -#351=ORIENTED_EDGE('',*,*,#1409,.F.); -#352=ORIENTED_EDGE('',*,*,#1410,.F.); -#353=ORIENTED_EDGE('',*,*,#1411,.F.); -#354=ORIENTED_EDGE('',*,*,#1412,.F.); -#355=ORIENTED_EDGE('',*,*,#1413,.F.); -#356=ORIENTED_EDGE('',*,*,#1414,.F.); -#357=ORIENTED_EDGE('',*,*,#1415,.F.); -#358=ORIENTED_EDGE('',*,*,#1416,.F.); -#359=ORIENTED_EDGE('',*,*,#1417,.T.); -#360=ORIENTED_EDGE('',*,*,#1418,.F.); -#361=ORIENTED_EDGE('',*,*,#1419,.F.); -#362=ORIENTED_EDGE('',*,*,#1420,.F.); -#363=ORIENTED_EDGE('',*,*,#1421,.T.); -#364=ORIENTED_EDGE('',*,*,#1422,.F.); -#365=ORIENTED_EDGE('',*,*,#1423,.F.); -#366=ORIENTED_EDGE('',*,*,#1424,.F.); -#367=ORIENTED_EDGE('',*,*,#1425,.T.); -#368=ORIENTED_EDGE('',*,*,#1426,.F.); -#369=ORIENTED_EDGE('',*,*,#1427,.F.); -#370=ORIENTED_EDGE('',*,*,#1428,.F.); -#371=ORIENTED_EDGE('',*,*,#1429,.T.); -#372=ORIENTED_EDGE('',*,*,#1430,.F.); -#373=ORIENTED_EDGE('',*,*,#1431,.F.); -#374=ORIENTED_EDGE('',*,*,#1432,.F.); -#375=ORIENTED_EDGE('',*,*,#1433,.T.); -#376=ORIENTED_EDGE('',*,*,#1434,.T.); -#377=ORIENTED_EDGE('',*,*,#1435,.F.); -#378=ORIENTED_EDGE('',*,*,#1436,.F.); -#379=ORIENTED_EDGE('',*,*,#1437,.T.); -#380=ORIENTED_EDGE('',*,*,#1438,.T.); -#381=ORIENTED_EDGE('',*,*,#1439,.F.); -#382=ORIENTED_EDGE('',*,*,#1440,.F.); -#383=ORIENTED_EDGE('',*,*,#1441,.F.); -#384=ORIENTED_EDGE('',*,*,#1442,.F.); -#385=ORIENTED_EDGE('',*,*,#1443,.F.); -#386=ORIENTED_EDGE('',*,*,#1444,.F.); -#387=ORIENTED_EDGE('',*,*,#1445,.F.); -#388=ORIENTED_EDGE('',*,*,#1446,.F.); -#389=ORIENTED_EDGE('',*,*,#1447,.F.); -#390=ORIENTED_EDGE('',*,*,#1448,.F.); -#391=ORIENTED_EDGE('',*,*,#1449,.F.); -#392=ORIENTED_EDGE('',*,*,#1450,.F.); -#393=ORIENTED_EDGE('',*,*,#1451,.F.); -#394=ORIENTED_EDGE('',*,*,#1452,.F.); -#395=ORIENTED_EDGE('',*,*,#1453,.F.); -#396=ORIENTED_EDGE('',*,*,#1454,.F.); -#397=ORIENTED_EDGE('',*,*,#1455,.F.); -#398=ORIENTED_EDGE('',*,*,#1456,.F.); -#399=ORIENTED_EDGE('',*,*,#1457,.T.); -#400=ORIENTED_EDGE('',*,*,#1458,.F.); -#401=ORIENTED_EDGE('',*,*,#1459,.F.); -#402=ORIENTED_EDGE('',*,*,#1460,.F.); -#403=ORIENTED_EDGE('',*,*,#1461,.T.); -#404=ORIENTED_EDGE('',*,*,#1462,.F.); -#405=ORIENTED_EDGE('',*,*,#1463,.F.); -#406=ORIENTED_EDGE('',*,*,#1464,.F.); -#407=ORIENTED_EDGE('',*,*,#1465,.T.); -#408=ORIENTED_EDGE('',*,*,#1466,.F.); -#409=ORIENTED_EDGE('',*,*,#1467,.F.); -#410=ORIENTED_EDGE('',*,*,#1468,.F.); -#411=ORIENTED_EDGE('',*,*,#1469,.T.); -#412=ORIENTED_EDGE('',*,*,#1470,.F.); -#413=ORIENTED_EDGE('',*,*,#1471,.F.); -#414=ORIENTED_EDGE('',*,*,#1472,.F.); -#415=ORIENTED_EDGE('',*,*,#1435,.T.); -#416=ORIENTED_EDGE('',*,*,#1473,.T.); -#417=ORIENTED_EDGE('',*,*,#1474,.F.); -#418=ORIENTED_EDGE('',*,*,#1475,.F.); -#419=ORIENTED_EDGE('',*,*,#1476,.F.); -#420=ORIENTED_EDGE('',*,*,#1477,.F.); -#421=ORIENTED_EDGE('',*,*,#1403,.T.); -#422=ORIENTED_EDGE('',*,*,#1478,.F.); -#423=ORIENTED_EDGE('',*,*,#1479,.F.); -#424=ORIENTED_EDGE('',*,*,#1480,.F.); -#425=ORIENTED_EDGE('',*,*,#1407,.T.); -#426=ORIENTED_EDGE('',*,*,#1481,.F.); -#427=ORIENTED_EDGE('',*,*,#1482,.F.); -#428=ORIENTED_EDGE('',*,*,#1483,.F.); -#429=ORIENTED_EDGE('',*,*,#1411,.T.); -#430=ORIENTED_EDGE('',*,*,#1484,.F.); -#431=ORIENTED_EDGE('',*,*,#1485,.F.); -#432=ORIENTED_EDGE('',*,*,#1486,.F.); -#433=ORIENTED_EDGE('',*,*,#1415,.T.); -#434=ORIENTED_EDGE('',*,*,#1487,.F.); -#435=ORIENTED_EDGE('',*,*,#1474,.T.); -#436=ORIENTED_EDGE('',*,*,#1488,.T.); -#437=ORIENTED_EDGE('',*,*,#1489,.F.); -#438=ORIENTED_EDGE('',*,*,#1490,.F.); -#439=ORIENTED_EDGE('',*,*,#1491,.F.); -#440=ORIENTED_EDGE('',*,*,#1492,.F.); -#441=ORIENTED_EDGE('',*,*,#1476,.T.); -#442=ORIENTED_EDGE('',*,*,#1493,.F.); -#443=ORIENTED_EDGE('',*,*,#1494,.F.); -#444=ORIENTED_EDGE('',*,*,#1495,.F.); -#445=ORIENTED_EDGE('',*,*,#1479,.T.); -#446=ORIENTED_EDGE('',*,*,#1496,.F.); -#447=ORIENTED_EDGE('',*,*,#1497,.F.); -#448=ORIENTED_EDGE('',*,*,#1498,.F.); -#449=ORIENTED_EDGE('',*,*,#1482,.T.); -#450=ORIENTED_EDGE('',*,*,#1499,.F.); -#451=ORIENTED_EDGE('',*,*,#1500,.F.); -#452=ORIENTED_EDGE('',*,*,#1501,.F.); -#453=ORIENTED_EDGE('',*,*,#1485,.T.); -#454=ORIENTED_EDGE('',*,*,#1502,.F.); -#455=ORIENTED_EDGE('',*,*,#1489,.T.); -#456=ORIENTED_EDGE('',*,*,#1503,.T.); -#457=ORIENTED_EDGE('',*,*,#1504,.F.); -#458=ORIENTED_EDGE('',*,*,#1505,.F.); -#459=ORIENTED_EDGE('',*,*,#1506,.F.); -#460=ORIENTED_EDGE('',*,*,#1507,.F.); -#461=ORIENTED_EDGE('',*,*,#1491,.T.); -#462=ORIENTED_EDGE('',*,*,#1508,.F.); -#463=ORIENTED_EDGE('',*,*,#1509,.F.); -#464=ORIENTED_EDGE('',*,*,#1510,.F.); -#465=ORIENTED_EDGE('',*,*,#1494,.T.); -#466=ORIENTED_EDGE('',*,*,#1511,.F.); -#467=ORIENTED_EDGE('',*,*,#1512,.F.); -#468=ORIENTED_EDGE('',*,*,#1513,.F.); -#469=ORIENTED_EDGE('',*,*,#1497,.T.); -#470=ORIENTED_EDGE('',*,*,#1514,.F.); -#471=ORIENTED_EDGE('',*,*,#1515,.F.); -#472=ORIENTED_EDGE('',*,*,#1516,.F.); -#473=ORIENTED_EDGE('',*,*,#1500,.T.); -#474=ORIENTED_EDGE('',*,*,#1517,.F.); -#475=ORIENTED_EDGE('',*,*,#1504,.T.); -#476=ORIENTED_EDGE('',*,*,#1518,.T.); -#477=ORIENTED_EDGE('',*,*,#1519,.F.); -#478=ORIENTED_EDGE('',*,*,#1520,.F.); -#479=ORIENTED_EDGE('',*,*,#1521,.F.); -#480=ORIENTED_EDGE('',*,*,#1522,.F.); -#481=ORIENTED_EDGE('',*,*,#1506,.T.); -#482=ORIENTED_EDGE('',*,*,#1523,.F.); -#483=ORIENTED_EDGE('',*,*,#1524,.F.); -#484=ORIENTED_EDGE('',*,*,#1525,.F.); -#485=ORIENTED_EDGE('',*,*,#1509,.T.); -#486=ORIENTED_EDGE('',*,*,#1526,.F.); -#487=ORIENTED_EDGE('',*,*,#1527,.F.); -#488=ORIENTED_EDGE('',*,*,#1528,.F.); -#489=ORIENTED_EDGE('',*,*,#1512,.T.); -#490=ORIENTED_EDGE('',*,*,#1529,.F.); -#491=ORIENTED_EDGE('',*,*,#1530,.F.); -#492=ORIENTED_EDGE('',*,*,#1531,.F.); -#493=ORIENTED_EDGE('',*,*,#1515,.T.); -#494=ORIENTED_EDGE('',*,*,#1532,.F.); -#495=ORIENTED_EDGE('',*,*,#1533,.T.); -#496=ORIENTED_EDGE('',*,*,#1534,.T.); -#497=ORIENTED_EDGE('',*,*,#1535,.F.); -#498=ORIENTED_EDGE('',*,*,#1536,.F.); -#499=ORIENTED_EDGE('',*,*,#1537,.F.); -#500=ORIENTED_EDGE('',*,*,#1538,.F.); -#501=ORIENTED_EDGE('',*,*,#1539,.T.); -#502=ORIENTED_EDGE('',*,*,#1540,.F.); -#503=ORIENTED_EDGE('',*,*,#1541,.F.); -#504=ORIENTED_EDGE('',*,*,#1542,.F.); -#505=ORIENTED_EDGE('',*,*,#1543,.T.); -#506=ORIENTED_EDGE('',*,*,#1544,.F.); -#507=ORIENTED_EDGE('',*,*,#1545,.F.); -#508=ORIENTED_EDGE('',*,*,#1546,.F.); -#509=ORIENTED_EDGE('',*,*,#1547,.T.); -#510=ORIENTED_EDGE('',*,*,#1548,.F.); -#511=ORIENTED_EDGE('',*,*,#1549,.F.); -#512=ORIENTED_EDGE('',*,*,#1550,.F.); -#513=ORIENTED_EDGE('',*,*,#1551,.T.); -#514=ORIENTED_EDGE('',*,*,#1552,.F.); -#515=ORIENTED_EDGE('',*,*,#1535,.T.); -#516=ORIENTED_EDGE('',*,*,#1553,.T.); -#517=ORIENTED_EDGE('',*,*,#1554,.F.); -#518=ORIENTED_EDGE('',*,*,#1555,.F.); -#519=ORIENTED_EDGE('',*,*,#1556,.F.); -#520=ORIENTED_EDGE('',*,*,#1557,.F.); -#521=ORIENTED_EDGE('',*,*,#1537,.T.); -#522=ORIENTED_EDGE('',*,*,#1558,.F.); -#523=ORIENTED_EDGE('',*,*,#1559,.F.); -#524=ORIENTED_EDGE('',*,*,#1560,.F.); -#525=ORIENTED_EDGE('',*,*,#1541,.T.); -#526=ORIENTED_EDGE('',*,*,#1561,.F.); -#527=ORIENTED_EDGE('',*,*,#1562,.F.); -#528=ORIENTED_EDGE('',*,*,#1563,.F.); -#529=ORIENTED_EDGE('',*,*,#1545,.T.); -#530=ORIENTED_EDGE('',*,*,#1564,.F.); -#531=ORIENTED_EDGE('',*,*,#1565,.F.); -#532=ORIENTED_EDGE('',*,*,#1566,.F.); -#533=ORIENTED_EDGE('',*,*,#1549,.T.); -#534=ORIENTED_EDGE('',*,*,#1567,.F.); -#535=ORIENTED_EDGE('',*,*,#1554,.T.); -#536=ORIENTED_EDGE('',*,*,#1568,.T.); -#537=ORIENTED_EDGE('',*,*,#1569,.F.); -#538=ORIENTED_EDGE('',*,*,#1570,.F.); -#539=ORIENTED_EDGE('',*,*,#1571,.F.); -#540=ORIENTED_EDGE('',*,*,#1572,.F.); -#541=ORIENTED_EDGE('',*,*,#1556,.T.); -#542=ORIENTED_EDGE('',*,*,#1573,.F.); -#543=ORIENTED_EDGE('',*,*,#1574,.F.); -#544=ORIENTED_EDGE('',*,*,#1575,.F.); -#545=ORIENTED_EDGE('',*,*,#1559,.T.); -#546=ORIENTED_EDGE('',*,*,#1576,.F.); -#547=ORIENTED_EDGE('',*,*,#1577,.F.); -#548=ORIENTED_EDGE('',*,*,#1578,.F.); -#549=ORIENTED_EDGE('',*,*,#1562,.T.); -#550=ORIENTED_EDGE('',*,*,#1579,.F.); -#551=ORIENTED_EDGE('',*,*,#1580,.F.); -#552=ORIENTED_EDGE('',*,*,#1581,.F.); -#553=ORIENTED_EDGE('',*,*,#1565,.T.); -#554=ORIENTED_EDGE('',*,*,#1582,.F.); -#555=ORIENTED_EDGE('',*,*,#1569,.T.); -#556=ORIENTED_EDGE('',*,*,#1583,.T.); -#557=ORIENTED_EDGE('',*,*,#1437,.F.); -#558=ORIENTED_EDGE('',*,*,#1584,.F.); -#559=ORIENTED_EDGE('',*,*,#1469,.F.); -#560=ORIENTED_EDGE('',*,*,#1585,.F.); -#561=ORIENTED_EDGE('',*,*,#1571,.T.); -#562=ORIENTED_EDGE('',*,*,#1586,.F.); -#563=ORIENTED_EDGE('',*,*,#1465,.F.); -#564=ORIENTED_EDGE('',*,*,#1587,.F.); -#565=ORIENTED_EDGE('',*,*,#1574,.T.); -#566=ORIENTED_EDGE('',*,*,#1588,.F.); -#567=ORIENTED_EDGE('',*,*,#1461,.F.); -#568=ORIENTED_EDGE('',*,*,#1589,.F.); -#569=ORIENTED_EDGE('',*,*,#1577,.T.); -#570=ORIENTED_EDGE('',*,*,#1590,.F.); -#571=ORIENTED_EDGE('',*,*,#1457,.F.); -#572=ORIENTED_EDGE('',*,*,#1591,.F.); -#573=ORIENTED_EDGE('',*,*,#1580,.T.); -#574=ORIENTED_EDGE('',*,*,#1592,.F.); -#575=ORIENTED_EDGE('',*,*,#1593,.F.); -#576=ORIENTED_EDGE('',*,*,#1594,.F.); -#577=ORIENTED_EDGE('',*,*,#1595,.T.); -#578=ORIENTED_EDGE('',*,*,#1596,.F.); -#579=ORIENTED_EDGE('',*,*,#1597,.T.); -#580=ORIENTED_EDGE('',*,*,#1598,.F.); -#581=ORIENTED_EDGE('',*,*,#1599,.F.); -#582=ORIENTED_EDGE('',*,*,#1600,.F.); -#583=ORIENTED_EDGE('',*,*,#1601,.T.); -#584=ORIENTED_EDGE('',*,*,#1602,.F.); -#585=ORIENTED_EDGE('',*,*,#1603,.F.); -#586=ORIENTED_EDGE('',*,*,#1604,.F.); -#587=ORIENTED_EDGE('',*,*,#1605,.T.); -#588=ORIENTED_EDGE('',*,*,#1606,.F.); -#589=ORIENTED_EDGE('',*,*,#1607,.F.); -#590=ORIENTED_EDGE('',*,*,#1608,.F.); -#591=ORIENTED_EDGE('',*,*,#1609,.T.); -#592=ORIENTED_EDGE('',*,*,#1610,.T.); -#593=ORIENTED_EDGE('',*,*,#1611,.F.); -#594=ORIENTED_EDGE('',*,*,#1612,.F.); -#595=ORIENTED_EDGE('',*,*,#1613,.F.); -#596=ORIENTED_EDGE('',*,*,#1614,.F.); -#597=ORIENTED_EDGE('',*,*,#1593,.T.); -#598=ORIENTED_EDGE('',*,*,#1615,.F.); -#599=ORIENTED_EDGE('',*,*,#1599,.T.); -#600=ORIENTED_EDGE('',*,*,#1616,.F.); -#601=ORIENTED_EDGE('',*,*,#1617,.F.); -#602=ORIENTED_EDGE('',*,*,#1618,.F.); -#603=ORIENTED_EDGE('',*,*,#1603,.T.); -#604=ORIENTED_EDGE('',*,*,#1619,.F.); -#605=ORIENTED_EDGE('',*,*,#1620,.F.); -#606=ORIENTED_EDGE('',*,*,#1621,.F.); -#607=ORIENTED_EDGE('',*,*,#1607,.T.); -#608=ORIENTED_EDGE('',*,*,#1622,.F.); -#609=ORIENTED_EDGE('',*,*,#1623,.F.); -#610=ORIENTED_EDGE('',*,*,#1624,.F.); -#611=ORIENTED_EDGE('',*,*,#1611,.T.); -#612=ORIENTED_EDGE('',*,*,#1625,.T.); -#613=ORIENTED_EDGE('',*,*,#1626,.F.); -#614=ORIENTED_EDGE('',*,*,#1627,.F.); -#615=ORIENTED_EDGE('',*,*,#1628,.F.); -#616=ORIENTED_EDGE('',*,*,#1629,.F.); -#617=ORIENTED_EDGE('',*,*,#1613,.T.); -#618=ORIENTED_EDGE('',*,*,#1630,.F.); -#619=ORIENTED_EDGE('',*,*,#1617,.T.); -#620=ORIENTED_EDGE('',*,*,#1631,.F.); -#621=ORIENTED_EDGE('',*,*,#1632,.F.); -#622=ORIENTED_EDGE('',*,*,#1633,.F.); -#623=ORIENTED_EDGE('',*,*,#1620,.T.); -#624=ORIENTED_EDGE('',*,*,#1634,.F.); -#625=ORIENTED_EDGE('',*,*,#1635,.F.); -#626=ORIENTED_EDGE('',*,*,#1636,.F.); -#627=ORIENTED_EDGE('',*,*,#1623,.T.); -#628=ORIENTED_EDGE('',*,*,#1637,.F.); -#629=ORIENTED_EDGE('',*,*,#1638,.F.); -#630=ORIENTED_EDGE('',*,*,#1639,.F.); -#631=ORIENTED_EDGE('',*,*,#1626,.T.); -#632=ORIENTED_EDGE('',*,*,#1640,.T.); -#633=ORIENTED_EDGE('',*,*,#1641,.F.); -#634=ORIENTED_EDGE('',*,*,#1642,.F.); -#635=ORIENTED_EDGE('',*,*,#1643,.F.); -#636=ORIENTED_EDGE('',*,*,#1644,.F.); -#637=ORIENTED_EDGE('',*,*,#1628,.T.); -#638=ORIENTED_EDGE('',*,*,#1645,.F.); -#639=ORIENTED_EDGE('',*,*,#1632,.T.); -#640=ORIENTED_EDGE('',*,*,#1646,.F.); -#641=ORIENTED_EDGE('',*,*,#1647,.F.); -#642=ORIENTED_EDGE('',*,*,#1648,.F.); -#643=ORIENTED_EDGE('',*,*,#1635,.T.); -#644=ORIENTED_EDGE('',*,*,#1649,.F.); -#645=ORIENTED_EDGE('',*,*,#1650,.F.); -#646=ORIENTED_EDGE('',*,*,#1651,.F.); -#647=ORIENTED_EDGE('',*,*,#1638,.T.); -#648=ORIENTED_EDGE('',*,*,#1652,.F.); -#649=ORIENTED_EDGE('',*,*,#1653,.F.); -#650=ORIENTED_EDGE('',*,*,#1654,.F.); -#651=ORIENTED_EDGE('',*,*,#1641,.T.); -#652=ORIENTED_EDGE('',*,*,#1655,.T.); -#653=ORIENTED_EDGE('',*,*,#1656,.F.); -#654=ORIENTED_EDGE('',*,*,#1657,.F.); -#655=ORIENTED_EDGE('',*,*,#1658,.F.); -#656=ORIENTED_EDGE('',*,*,#1659,.F.); -#657=ORIENTED_EDGE('',*,*,#1643,.T.); -#658=ORIENTED_EDGE('',*,*,#1660,.F.); -#659=ORIENTED_EDGE('',*,*,#1647,.T.); -#660=ORIENTED_EDGE('',*,*,#1661,.F.); -#661=ORIENTED_EDGE('',*,*,#1662,.F.); -#662=ORIENTED_EDGE('',*,*,#1663,.F.); -#663=ORIENTED_EDGE('',*,*,#1650,.T.); -#664=ORIENTED_EDGE('',*,*,#1664,.F.); -#665=ORIENTED_EDGE('',*,*,#1665,.F.); -#666=ORIENTED_EDGE('',*,*,#1666,.F.); -#667=ORIENTED_EDGE('',*,*,#1653,.T.); -#668=ORIENTED_EDGE('',*,*,#1667,.F.); -#669=ORIENTED_EDGE('',*,*,#1668,.F.); -#670=ORIENTED_EDGE('',*,*,#1669,.F.); -#671=ORIENTED_EDGE('',*,*,#1656,.T.); -#672=ORIENTED_EDGE('',*,*,#1670,.T.); -#673=ORIENTED_EDGE('',*,*,#1671,.F.); -#674=ORIENTED_EDGE('',*,*,#1672,.F.); -#675=ORIENTED_EDGE('',*,*,#1673,.F.); -#676=ORIENTED_EDGE('',*,*,#1674,.F.); -#677=ORIENTED_EDGE('',*,*,#1675,.T.); -#678=ORIENTED_EDGE('',*,*,#1676,.F.); -#679=ORIENTED_EDGE('',*,*,#1677,.T.); -#680=ORIENTED_EDGE('',*,*,#1678,.F.); -#681=ORIENTED_EDGE('',*,*,#1679,.F.); -#682=ORIENTED_EDGE('',*,*,#1680,.F.); -#683=ORIENTED_EDGE('',*,*,#1681,.T.); -#684=ORIENTED_EDGE('',*,*,#1682,.F.); -#685=ORIENTED_EDGE('',*,*,#1683,.F.); -#686=ORIENTED_EDGE('',*,*,#1684,.F.); -#687=ORIENTED_EDGE('',*,*,#1685,.T.); -#688=ORIENTED_EDGE('',*,*,#1686,.F.); -#689=ORIENTED_EDGE('',*,*,#1687,.F.); -#690=ORIENTED_EDGE('',*,*,#1688,.F.); -#691=ORIENTED_EDGE('',*,*,#1689,.T.); -#692=ORIENTED_EDGE('',*,*,#1690,.T.); -#693=ORIENTED_EDGE('',*,*,#1691,.F.); -#694=ORIENTED_EDGE('',*,*,#1692,.F.); -#695=ORIENTED_EDGE('',*,*,#1693,.F.); -#696=ORIENTED_EDGE('',*,*,#1694,.F.); -#697=ORIENTED_EDGE('',*,*,#1673,.T.); -#698=ORIENTED_EDGE('',*,*,#1695,.F.); -#699=ORIENTED_EDGE('',*,*,#1679,.T.); -#700=ORIENTED_EDGE('',*,*,#1696,.F.); -#701=ORIENTED_EDGE('',*,*,#1697,.F.); -#702=ORIENTED_EDGE('',*,*,#1698,.F.); -#703=ORIENTED_EDGE('',*,*,#1683,.T.); -#704=ORIENTED_EDGE('',*,*,#1699,.F.); -#705=ORIENTED_EDGE('',*,*,#1700,.F.); -#706=ORIENTED_EDGE('',*,*,#1701,.F.); -#707=ORIENTED_EDGE('',*,*,#1687,.T.); -#708=ORIENTED_EDGE('',*,*,#1702,.F.); -#709=ORIENTED_EDGE('',*,*,#1703,.F.); -#710=ORIENTED_EDGE('',*,*,#1704,.F.); -#711=ORIENTED_EDGE('',*,*,#1691,.T.); -#712=ORIENTED_EDGE('',*,*,#1705,.T.); -#713=ORIENTED_EDGE('',*,*,#1706,.F.); -#714=ORIENTED_EDGE('',*,*,#1707,.F.); -#715=ORIENTED_EDGE('',*,*,#1708,.F.); -#716=ORIENTED_EDGE('',*,*,#1709,.F.); -#717=ORIENTED_EDGE('',*,*,#1693,.T.); -#718=ORIENTED_EDGE('',*,*,#1710,.F.); -#719=ORIENTED_EDGE('',*,*,#1697,.T.); -#720=ORIENTED_EDGE('',*,*,#1711,.F.); -#721=ORIENTED_EDGE('',*,*,#1712,.F.); -#722=ORIENTED_EDGE('',*,*,#1713,.F.); -#723=ORIENTED_EDGE('',*,*,#1700,.T.); -#724=ORIENTED_EDGE('',*,*,#1714,.F.); -#725=ORIENTED_EDGE('',*,*,#1715,.F.); -#726=ORIENTED_EDGE('',*,*,#1716,.F.); -#727=ORIENTED_EDGE('',*,*,#1703,.T.); -#728=ORIENTED_EDGE('',*,*,#1717,.F.); -#729=ORIENTED_EDGE('',*,*,#1718,.F.); -#730=ORIENTED_EDGE('',*,*,#1719,.F.); -#731=ORIENTED_EDGE('',*,*,#1706,.T.); -#732=ORIENTED_EDGE('',*,*,#1720,.T.); -#733=ORIENTED_EDGE('',*,*,#1721,.F.); -#734=ORIENTED_EDGE('',*,*,#1722,.F.); -#735=ORIENTED_EDGE('',*,*,#1723,.F.); -#736=ORIENTED_EDGE('',*,*,#1724,.F.); -#737=ORIENTED_EDGE('',*,*,#1708,.T.); -#738=ORIENTED_EDGE('',*,*,#1725,.F.); -#739=ORIENTED_EDGE('',*,*,#1712,.T.); -#740=ORIENTED_EDGE('',*,*,#1726,.F.); -#741=ORIENTED_EDGE('',*,*,#1727,.F.); -#742=ORIENTED_EDGE('',*,*,#1728,.F.); -#743=ORIENTED_EDGE('',*,*,#1715,.T.); -#744=ORIENTED_EDGE('',*,*,#1729,.F.); -#745=ORIENTED_EDGE('',*,*,#1730,.F.); -#746=ORIENTED_EDGE('',*,*,#1731,.F.); -#747=ORIENTED_EDGE('',*,*,#1718,.T.); -#748=ORIENTED_EDGE('',*,*,#1732,.F.); -#749=ORIENTED_EDGE('',*,*,#1733,.F.); -#750=ORIENTED_EDGE('',*,*,#1734,.F.); -#751=ORIENTED_EDGE('',*,*,#1721,.T.); -#752=ORIENTED_EDGE('',*,*,#1735,.T.); -#753=ORIENTED_EDGE('',*,*,#1736,.F.); -#754=ORIENTED_EDGE('',*,*,#1737,.T.); -#755=ORIENTED_EDGE('',*,*,#1738,.F.); -#756=ORIENTED_EDGE('',*,*,#1739,.F.); -#757=ORIENTED_EDGE('',*,*,#1723,.T.); -#758=ORIENTED_EDGE('',*,*,#1740,.T.); -#759=ORIENTED_EDGE('',*,*,#1727,.T.); -#760=ORIENTED_EDGE('',*,*,#1741,.T.); -#761=ORIENTED_EDGE('',*,*,#1742,.F.); -#762=ORIENTED_EDGE('',*,*,#1743,.T.); -#763=ORIENTED_EDGE('',*,*,#1730,.T.); -#764=ORIENTED_EDGE('',*,*,#1744,.T.); -#765=ORIENTED_EDGE('',*,*,#1745,.F.); -#766=ORIENTED_EDGE('',*,*,#1746,.T.); -#767=ORIENTED_EDGE('',*,*,#1733,.T.); -#768=ORIENTED_EDGE('',*,*,#1747,.T.); -#769=ORIENTED_EDGE('',*,*,#1748,.F.); -#770=ORIENTED_EDGE('',*,*,#1749,.T.); -#771=ORIENTED_EDGE('',*,*,#1736,.T.); -#772=ORIENTED_EDGE('',*,*,#1750,.T.); -#773=ORIENTED_EDGE('',*,*,#1751,.F.); -#774=ORIENTED_EDGE('',*,*,#1752,.F.); -#775=ORIENTED_EDGE('',*,*,#1753,.F.); -#776=ORIENTED_EDGE('',*,*,#1754,.F.); -#777=ORIENTED_EDGE('',*,*,#1738,.T.); -#778=ORIENTED_EDGE('',*,*,#1755,.F.); -#779=ORIENTED_EDGE('',*,*,#1742,.T.); -#780=ORIENTED_EDGE('',*,*,#1756,.F.); -#781=ORIENTED_EDGE('',*,*,#1757,.F.); -#782=ORIENTED_EDGE('',*,*,#1758,.F.); -#783=ORIENTED_EDGE('',*,*,#1745,.T.); -#784=ORIENTED_EDGE('',*,*,#1759,.F.); -#785=ORIENTED_EDGE('',*,*,#1760,.F.); -#786=ORIENTED_EDGE('',*,*,#1761,.F.); -#787=ORIENTED_EDGE('',*,*,#1748,.T.); -#788=ORIENTED_EDGE('',*,*,#1762,.F.); -#789=ORIENTED_EDGE('',*,*,#1763,.F.); -#790=ORIENTED_EDGE('',*,*,#1764,.F.); -#791=ORIENTED_EDGE('',*,*,#1751,.T.); -#792=ORIENTED_EDGE('',*,*,#1765,.T.); -#793=ORIENTED_EDGE('',*,*,#1766,.F.); -#794=ORIENTED_EDGE('',*,*,#1767,.F.); -#795=ORIENTED_EDGE('',*,*,#1768,.F.); -#796=ORIENTED_EDGE('',*,*,#1769,.F.); -#797=ORIENTED_EDGE('',*,*,#1753,.T.); -#798=ORIENTED_EDGE('',*,*,#1770,.F.); -#799=ORIENTED_EDGE('',*,*,#1757,.T.); -#800=ORIENTED_EDGE('',*,*,#1771,.F.); -#801=ORIENTED_EDGE('',*,*,#1772,.F.); -#802=ORIENTED_EDGE('',*,*,#1773,.F.); -#803=ORIENTED_EDGE('',*,*,#1760,.T.); -#804=ORIENTED_EDGE('',*,*,#1774,.F.); -#805=ORIENTED_EDGE('',*,*,#1775,.F.); -#806=ORIENTED_EDGE('',*,*,#1776,.F.); -#807=ORIENTED_EDGE('',*,*,#1763,.T.); -#808=ORIENTED_EDGE('',*,*,#1777,.F.); -#809=ORIENTED_EDGE('',*,*,#1778,.F.); -#810=ORIENTED_EDGE('',*,*,#1779,.F.); -#811=ORIENTED_EDGE('',*,*,#1766,.T.); -#812=ORIENTED_EDGE('',*,*,#1780,.T.); -#813=ORIENTED_EDGE('',*,*,#1781,.F.); -#814=ORIENTED_EDGE('',*,*,#1768,.T.); -#815=ORIENTED_EDGE('',*,*,#1782,.T.); -#816=ORIENTED_EDGE('',*,*,#1417,.F.); -#817=ORIENTED_EDGE('',*,*,#1783,.T.); -#818=ORIENTED_EDGE('',*,*,#1421,.F.); -#819=ORIENTED_EDGE('',*,*,#1784,.T.); -#820=ORIENTED_EDGE('',*,*,#1772,.T.); -#821=ORIENTED_EDGE('',*,*,#1785,.T.); -#822=ORIENTED_EDGE('',*,*,#1425,.F.); -#823=ORIENTED_EDGE('',*,*,#1786,.T.); -#824=ORIENTED_EDGE('',*,*,#1775,.T.); -#825=ORIENTED_EDGE('',*,*,#1787,.T.); -#826=ORIENTED_EDGE('',*,*,#1429,.F.); -#827=ORIENTED_EDGE('',*,*,#1788,.T.); -#828=ORIENTED_EDGE('',*,*,#1778,.T.); -#829=ORIENTED_EDGE('',*,*,#1789,.T.); -#830=ORIENTED_EDGE('',*,*,#1433,.F.); -#831=ORIENTED_EDGE('',*,*,#1790,.T.); -#832=ORIENTED_EDGE('',*,*,#1781,.T.); -#833=ORIENTED_EDGE('',*,*,#1791,.F.); -#834=ORIENTED_EDGE('',*,*,#1455,.T.); -#835=ORIENTED_EDGE('',*,*,#1792,.T.); -#836=ORIENTED_EDGE('',*,*,#1793,.F.); -#837=ORIENTED_EDGE('',*,*,#1794,.T.); -#838=ORIENTED_EDGE('',*,*,#1795,.F.); -#839=ORIENTED_EDGE('',*,*,#1796,.T.); -#840=ORIENTED_EDGE('',*,*,#1451,.T.); -#841=ORIENTED_EDGE('',*,*,#1797,.T.); -#842=ORIENTED_EDGE('',*,*,#1798,.F.); -#843=ORIENTED_EDGE('',*,*,#1799,.T.); -#844=ORIENTED_EDGE('',*,*,#1447,.T.); -#845=ORIENTED_EDGE('',*,*,#1800,.T.); -#846=ORIENTED_EDGE('',*,*,#1801,.F.); -#847=ORIENTED_EDGE('',*,*,#1802,.T.); -#848=ORIENTED_EDGE('',*,*,#1443,.T.); -#849=ORIENTED_EDGE('',*,*,#1803,.T.); -#850=ORIENTED_EDGE('',*,*,#1804,.F.); -#851=ORIENTED_EDGE('',*,*,#1805,.T.); -#852=ORIENTED_EDGE('',*,*,#1439,.T.); -#853=ORIENTED_EDGE('',*,*,#1806,.F.); -#854=ORIENTED_EDGE('',*,*,#1807,.F.); -#855=ORIENTED_EDGE('',*,*,#1808,.F.); -#856=ORIENTED_EDGE('',*,*,#1809,.F.); -#857=ORIENTED_EDGE('',*,*,#1793,.T.); -#858=ORIENTED_EDGE('',*,*,#1810,.F.); -#859=ORIENTED_EDGE('',*,*,#1795,.T.); -#860=ORIENTED_EDGE('',*,*,#1811,.F.); -#861=ORIENTED_EDGE('',*,*,#1812,.F.); -#862=ORIENTED_EDGE('',*,*,#1813,.F.); -#863=ORIENTED_EDGE('',*,*,#1798,.T.); -#864=ORIENTED_EDGE('',*,*,#1814,.F.); -#865=ORIENTED_EDGE('',*,*,#1815,.F.); -#866=ORIENTED_EDGE('',*,*,#1816,.F.); -#867=ORIENTED_EDGE('',*,*,#1801,.T.); -#868=ORIENTED_EDGE('',*,*,#1817,.F.); -#869=ORIENTED_EDGE('',*,*,#1818,.F.); -#870=ORIENTED_EDGE('',*,*,#1819,.F.); -#871=ORIENTED_EDGE('',*,*,#1804,.T.); -#872=ORIENTED_EDGE('',*,*,#1820,.T.); -#873=ORIENTED_EDGE('',*,*,#1821,.F.); -#874=ORIENTED_EDGE('',*,*,#1822,.F.); -#875=ORIENTED_EDGE('',*,*,#1595,.F.); -#876=ORIENTED_EDGE('',*,*,#1823,.F.); -#877=ORIENTED_EDGE('',*,*,#1808,.T.); -#878=ORIENTED_EDGE('',*,*,#1824,.F.); -#879=ORIENTED_EDGE('',*,*,#1812,.T.); -#880=ORIENTED_EDGE('',*,*,#1825,.F.); -#881=ORIENTED_EDGE('',*,*,#1597,.F.); -#882=ORIENTED_EDGE('',*,*,#1826,.F.); -#883=ORIENTED_EDGE('',*,*,#1815,.T.); -#884=ORIENTED_EDGE('',*,*,#1827,.F.); -#885=ORIENTED_EDGE('',*,*,#1601,.F.); -#886=ORIENTED_EDGE('',*,*,#1828,.F.); -#887=ORIENTED_EDGE('',*,*,#1818,.T.); -#888=ORIENTED_EDGE('',*,*,#1829,.F.); -#889=ORIENTED_EDGE('',*,*,#1605,.F.); -#890=ORIENTED_EDGE('',*,*,#1830,.F.); -#891=ORIENTED_EDGE('',*,*,#1821,.T.); -#892=ORIENTED_EDGE('',*,*,#1831,.T.); -#893=ORIENTED_EDGE('',*,*,#1609,.F.); -#894=ORIENTED_EDGE('',*,*,#1668,.T.); -#895=ORIENTED_EDGE('',*,*,#1832,.F.); -#896=ORIENTED_EDGE('',*,*,#1441,.T.); -#897=ORIENTED_EDGE('',*,*,#1833,.T.); -#898=ORIENTED_EDGE('',*,*,#1671,.T.); -#899=ORIENTED_EDGE('',*,*,#1834,.T.); -#900=ORIENTED_EDGE('',*,*,#1689,.F.); -#901=ORIENTED_EDGE('',*,*,#1835,.T.); -#902=ORIENTED_EDGE('',*,*,#1431,.T.); -#903=ORIENTED_EDGE('',*,*,#1836,.F.); -#904=ORIENTED_EDGE('',*,*,#1685,.F.); -#905=ORIENTED_EDGE('',*,*,#1837,.T.); -#906=ORIENTED_EDGE('',*,*,#1427,.T.); -#907=ORIENTED_EDGE('',*,*,#1838,.F.); -#908=ORIENTED_EDGE('',*,*,#1681,.F.); -#909=ORIENTED_EDGE('',*,*,#1839,.T.); -#910=ORIENTED_EDGE('',*,*,#1423,.T.); -#911=ORIENTED_EDGE('',*,*,#1840,.F.); -#912=ORIENTED_EDGE('',*,*,#1677,.F.); -#913=ORIENTED_EDGE('',*,*,#1841,.T.); -#914=ORIENTED_EDGE('',*,*,#1419,.T.); -#915=ORIENTED_EDGE('',*,*,#1842,.F.); -#916=ORIENTED_EDGE('',*,*,#1675,.F.); -#917=ORIENTED_EDGE('',*,*,#1843,.F.); -#918=ORIENTED_EDGE('',*,*,#1658,.T.); -#919=ORIENTED_EDGE('',*,*,#1844,.F.); -#920=ORIENTED_EDGE('',*,*,#1453,.T.); -#921=ORIENTED_EDGE('',*,*,#1845,.T.); -#922=ORIENTED_EDGE('',*,*,#1662,.T.); -#923=ORIENTED_EDGE('',*,*,#1846,.F.); -#924=ORIENTED_EDGE('',*,*,#1449,.T.); -#925=ORIENTED_EDGE('',*,*,#1847,.T.); -#926=ORIENTED_EDGE('',*,*,#1665,.T.); -#927=ORIENTED_EDGE('',*,*,#1848,.F.); -#928=ORIENTED_EDGE('',*,*,#1445,.T.); -#929=ORIENTED_EDGE('',*,*,#1849,.T.); -#930=ORIENTED_EDGE('',*,*,#1530,.T.); -#931=ORIENTED_EDGE('',*,*,#1850,.T.); -#932=ORIENTED_EDGE('',*,*,#1413,.T.); -#933=ORIENTED_EDGE('',*,*,#1851,.F.); -#934=ORIENTED_EDGE('',*,*,#1527,.T.); -#935=ORIENTED_EDGE('',*,*,#1852,.T.); -#936=ORIENTED_EDGE('',*,*,#1409,.T.); -#937=ORIENTED_EDGE('',*,*,#1853,.F.); -#938=ORIENTED_EDGE('',*,*,#1524,.T.); -#939=ORIENTED_EDGE('',*,*,#1854,.T.); -#940=ORIENTED_EDGE('',*,*,#1405,.T.); -#941=ORIENTED_EDGE('',*,*,#1855,.F.); -#942=ORIENTED_EDGE('',*,*,#1521,.T.); -#943=ORIENTED_EDGE('',*,*,#1856,.T.); -#944=ORIENTED_EDGE('',*,*,#1401,.T.); -#945=ORIENTED_EDGE('',*,*,#1857,.F.); -#946=ORIENTED_EDGE('',*,*,#1519,.T.); -#947=ORIENTED_EDGE('',*,*,#1858,.T.); -#948=ORIENTED_EDGE('',*,*,#1533,.F.); -#949=ORIENTED_EDGE('',*,*,#1859,.F.); -#950=ORIENTED_EDGE('',*,*,#1471,.T.); -#951=ORIENTED_EDGE('',*,*,#1860,.T.); -#952=ORIENTED_EDGE('',*,*,#1539,.F.); -#953=ORIENTED_EDGE('',*,*,#1861,.F.); -#954=ORIENTED_EDGE('',*,*,#1467,.T.); -#955=ORIENTED_EDGE('',*,*,#1862,.T.); -#956=ORIENTED_EDGE('',*,*,#1543,.F.); -#957=ORIENTED_EDGE('',*,*,#1863,.F.); -#958=ORIENTED_EDGE('',*,*,#1463,.T.); -#959=ORIENTED_EDGE('',*,*,#1864,.T.); -#960=ORIENTED_EDGE('',*,*,#1547,.F.); -#961=ORIENTED_EDGE('',*,*,#1865,.F.); -#962=ORIENTED_EDGE('',*,*,#1459,.T.); -#963=ORIENTED_EDGE('',*,*,#1866,.T.); -#964=ORIENTED_EDGE('',*,*,#1551,.F.); -#965=ORIENTED_EDGE('',*,*,#1867,.F.); -#966=ORIENTED_EDGE('',*,*,#1456,.T.); -#967=ORIENTED_EDGE('',*,*,#1794,.F.); -#968=ORIENTED_EDGE('',*,*,#1809,.T.); -#969=ORIENTED_EDGE('',*,*,#1823,.T.); -#970=ORIENTED_EDGE('',*,*,#1594,.T.); -#971=ORIENTED_EDGE('',*,*,#1614,.T.); -#972=ORIENTED_EDGE('',*,*,#1629,.T.); -#973=ORIENTED_EDGE('',*,*,#1644,.T.); -#974=ORIENTED_EDGE('',*,*,#1659,.T.); -#975=ORIENTED_EDGE('',*,*,#1843,.T.); -#976=ORIENTED_EDGE('',*,*,#1674,.T.); -#977=ORIENTED_EDGE('',*,*,#1694,.T.); -#978=ORIENTED_EDGE('',*,*,#1709,.T.); -#979=ORIENTED_EDGE('',*,*,#1724,.T.); -#980=ORIENTED_EDGE('',*,*,#1739,.T.); -#981=ORIENTED_EDGE('',*,*,#1754,.T.); -#982=ORIENTED_EDGE('',*,*,#1769,.T.); -#983=ORIENTED_EDGE('',*,*,#1783,.F.); -#984=ORIENTED_EDGE('',*,*,#1416,.T.); -#985=ORIENTED_EDGE('',*,*,#1486,.T.); -#986=ORIENTED_EDGE('',*,*,#1501,.T.); -#987=ORIENTED_EDGE('',*,*,#1516,.T.); -#988=ORIENTED_EDGE('',*,*,#1531,.T.); -#989=ORIENTED_EDGE('',*,*,#1867,.T.); -#990=ORIENTED_EDGE('',*,*,#1550,.T.); -#991=ORIENTED_EDGE('',*,*,#1566,.T.); -#992=ORIENTED_EDGE('',*,*,#1581,.T.); -#993=ORIENTED_EDGE('',*,*,#1591,.T.); -#994=ORIENTED_EDGE('',*,*,#1534,.F.); -#995=ORIENTED_EDGE('',*,*,#1858,.F.); -#996=ORIENTED_EDGE('',*,*,#1518,.F.); -#997=ORIENTED_EDGE('',*,*,#1503,.F.); -#998=ORIENTED_EDGE('',*,*,#1488,.F.); -#999=ORIENTED_EDGE('',*,*,#1473,.F.); -#1000=ORIENTED_EDGE('',*,*,#1434,.F.); -#1001=ORIENTED_EDGE('',*,*,#1791,.T.); -#1002=ORIENTED_EDGE('',*,*,#1780,.F.); -#1003=ORIENTED_EDGE('',*,*,#1765,.F.); -#1004=ORIENTED_EDGE('',*,*,#1750,.F.); -#1005=ORIENTED_EDGE('',*,*,#1735,.F.); -#1006=ORIENTED_EDGE('',*,*,#1720,.F.); -#1007=ORIENTED_EDGE('',*,*,#1705,.F.); -#1008=ORIENTED_EDGE('',*,*,#1690,.F.); -#1009=ORIENTED_EDGE('',*,*,#1834,.F.); -#1010=ORIENTED_EDGE('',*,*,#1670,.F.); -#1011=ORIENTED_EDGE('',*,*,#1655,.F.); -#1012=ORIENTED_EDGE('',*,*,#1640,.F.); -#1013=ORIENTED_EDGE('',*,*,#1625,.F.); -#1014=ORIENTED_EDGE('',*,*,#1610,.F.); -#1015=ORIENTED_EDGE('',*,*,#1831,.F.); -#1016=ORIENTED_EDGE('',*,*,#1820,.F.); -#1017=ORIENTED_EDGE('',*,*,#1806,.T.); -#1018=ORIENTED_EDGE('',*,*,#1438,.F.); -#1019=ORIENTED_EDGE('',*,*,#1583,.F.); -#1020=ORIENTED_EDGE('',*,*,#1568,.F.); -#1021=ORIENTED_EDGE('',*,*,#1553,.F.); -#1022=ORIENTED_EDGE('',*,*,#1622,.T.); -#1023=ORIENTED_EDGE('',*,*,#1606,.T.); -#1024=ORIENTED_EDGE('',*,*,#1829,.T.); -#1025=ORIENTED_EDGE('',*,*,#1817,.T.); -#1026=ORIENTED_EDGE('',*,*,#1803,.F.); -#1027=ORIENTED_EDGE('',*,*,#1442,.T.); -#1028=ORIENTED_EDGE('',*,*,#1832,.T.); -#1029=ORIENTED_EDGE('',*,*,#1667,.T.); -#1030=ORIENTED_EDGE('',*,*,#1652,.T.); -#1031=ORIENTED_EDGE('',*,*,#1637,.T.); -#1032=ORIENTED_EDGE('',*,*,#1624,.T.); -#1033=ORIENTED_EDGE('',*,*,#1639,.T.); -#1034=ORIENTED_EDGE('',*,*,#1654,.T.); -#1035=ORIENTED_EDGE('',*,*,#1669,.T.); -#1036=ORIENTED_EDGE('',*,*,#1833,.F.); -#1037=ORIENTED_EDGE('',*,*,#1440,.T.); -#1038=ORIENTED_EDGE('',*,*,#1805,.F.); -#1039=ORIENTED_EDGE('',*,*,#1819,.T.); -#1040=ORIENTED_EDGE('',*,*,#1830,.T.); -#1041=ORIENTED_EDGE('',*,*,#1608,.T.); -#1042=ORIENTED_EDGE('',*,*,#1619,.T.); -#1043=ORIENTED_EDGE('',*,*,#1602,.T.); -#1044=ORIENTED_EDGE('',*,*,#1827,.T.); -#1045=ORIENTED_EDGE('',*,*,#1814,.T.); -#1046=ORIENTED_EDGE('',*,*,#1800,.F.); -#1047=ORIENTED_EDGE('',*,*,#1446,.T.); -#1048=ORIENTED_EDGE('',*,*,#1848,.T.); -#1049=ORIENTED_EDGE('',*,*,#1664,.T.); -#1050=ORIENTED_EDGE('',*,*,#1649,.T.); -#1051=ORIENTED_EDGE('',*,*,#1634,.T.); -#1052=ORIENTED_EDGE('',*,*,#1621,.T.); -#1053=ORIENTED_EDGE('',*,*,#1636,.T.); -#1054=ORIENTED_EDGE('',*,*,#1651,.T.); -#1055=ORIENTED_EDGE('',*,*,#1666,.T.); -#1056=ORIENTED_EDGE('',*,*,#1849,.F.); -#1057=ORIENTED_EDGE('',*,*,#1444,.T.); -#1058=ORIENTED_EDGE('',*,*,#1802,.F.); -#1059=ORIENTED_EDGE('',*,*,#1816,.T.); -#1060=ORIENTED_EDGE('',*,*,#1828,.T.); -#1061=ORIENTED_EDGE('',*,*,#1604,.T.); -#1062=ORIENTED_EDGE('',*,*,#1616,.T.); -#1063=ORIENTED_EDGE('',*,*,#1598,.T.); -#1064=ORIENTED_EDGE('',*,*,#1825,.T.); -#1065=ORIENTED_EDGE('',*,*,#1811,.T.); -#1066=ORIENTED_EDGE('',*,*,#1797,.F.); -#1067=ORIENTED_EDGE('',*,*,#1450,.T.); -#1068=ORIENTED_EDGE('',*,*,#1846,.T.); -#1069=ORIENTED_EDGE('',*,*,#1661,.T.); -#1070=ORIENTED_EDGE('',*,*,#1646,.T.); -#1071=ORIENTED_EDGE('',*,*,#1631,.T.); -#1072=ORIENTED_EDGE('',*,*,#1618,.T.); -#1073=ORIENTED_EDGE('',*,*,#1633,.T.); -#1074=ORIENTED_EDGE('',*,*,#1648,.T.); -#1075=ORIENTED_EDGE('',*,*,#1663,.T.); -#1076=ORIENTED_EDGE('',*,*,#1847,.F.); -#1077=ORIENTED_EDGE('',*,*,#1448,.T.); -#1078=ORIENTED_EDGE('',*,*,#1799,.F.); -#1079=ORIENTED_EDGE('',*,*,#1813,.T.); -#1080=ORIENTED_EDGE('',*,*,#1826,.T.); -#1081=ORIENTED_EDGE('',*,*,#1600,.T.); -#1082=ORIENTED_EDGE('',*,*,#1612,.T.); -#1083=ORIENTED_EDGE('',*,*,#1592,.T.); -#1084=ORIENTED_EDGE('',*,*,#1822,.T.); -#1085=ORIENTED_EDGE('',*,*,#1807,.T.); -#1086=ORIENTED_EDGE('',*,*,#1792,.F.); -#1087=ORIENTED_EDGE('',*,*,#1454,.T.); -#1088=ORIENTED_EDGE('',*,*,#1844,.T.); -#1089=ORIENTED_EDGE('',*,*,#1657,.T.); -#1090=ORIENTED_EDGE('',*,*,#1642,.T.); -#1091=ORIENTED_EDGE('',*,*,#1627,.T.); -#1092=ORIENTED_EDGE('',*,*,#1615,.T.); -#1093=ORIENTED_EDGE('',*,*,#1630,.T.); -#1094=ORIENTED_EDGE('',*,*,#1645,.T.); -#1095=ORIENTED_EDGE('',*,*,#1660,.T.); -#1096=ORIENTED_EDGE('',*,*,#1845,.F.); -#1097=ORIENTED_EDGE('',*,*,#1452,.T.); -#1098=ORIENTED_EDGE('',*,*,#1796,.F.); -#1099=ORIENTED_EDGE('',*,*,#1810,.T.); -#1100=ORIENTED_EDGE('',*,*,#1824,.T.); -#1101=ORIENTED_EDGE('',*,*,#1596,.T.); -#1102=ORIENTED_EDGE('',*,*,#1688,.T.); -#1103=ORIENTED_EDGE('',*,*,#1704,.T.); -#1104=ORIENTED_EDGE('',*,*,#1719,.T.); -#1105=ORIENTED_EDGE('',*,*,#1734,.T.); -#1106=ORIENTED_EDGE('',*,*,#1749,.F.); -#1107=ORIENTED_EDGE('',*,*,#1764,.T.); -#1108=ORIENTED_EDGE('',*,*,#1779,.T.); -#1109=ORIENTED_EDGE('',*,*,#1790,.F.); -#1110=ORIENTED_EDGE('',*,*,#1432,.T.); -#1111=ORIENTED_EDGE('',*,*,#1835,.F.); -#1112=ORIENTED_EDGE('',*,*,#1686,.T.); -#1113=ORIENTED_EDGE('',*,*,#1836,.T.); -#1114=ORIENTED_EDGE('',*,*,#1430,.T.); -#1115=ORIENTED_EDGE('',*,*,#1789,.F.); -#1116=ORIENTED_EDGE('',*,*,#1777,.T.); -#1117=ORIENTED_EDGE('',*,*,#1762,.T.); -#1118=ORIENTED_EDGE('',*,*,#1747,.F.); -#1119=ORIENTED_EDGE('',*,*,#1732,.T.); -#1120=ORIENTED_EDGE('',*,*,#1717,.T.); -#1121=ORIENTED_EDGE('',*,*,#1702,.T.); -#1122=ORIENTED_EDGE('',*,*,#1684,.T.); -#1123=ORIENTED_EDGE('',*,*,#1701,.T.); -#1124=ORIENTED_EDGE('',*,*,#1716,.T.); -#1125=ORIENTED_EDGE('',*,*,#1731,.T.); -#1126=ORIENTED_EDGE('',*,*,#1746,.F.); -#1127=ORIENTED_EDGE('',*,*,#1761,.T.); -#1128=ORIENTED_EDGE('',*,*,#1776,.T.); -#1129=ORIENTED_EDGE('',*,*,#1788,.F.); -#1130=ORIENTED_EDGE('',*,*,#1428,.T.); -#1131=ORIENTED_EDGE('',*,*,#1837,.F.); -#1132=ORIENTED_EDGE('',*,*,#1682,.T.); -#1133=ORIENTED_EDGE('',*,*,#1838,.T.); -#1134=ORIENTED_EDGE('',*,*,#1426,.T.); -#1135=ORIENTED_EDGE('',*,*,#1787,.F.); -#1136=ORIENTED_EDGE('',*,*,#1774,.T.); -#1137=ORIENTED_EDGE('',*,*,#1759,.T.); -#1138=ORIENTED_EDGE('',*,*,#1744,.F.); -#1139=ORIENTED_EDGE('',*,*,#1729,.T.); -#1140=ORIENTED_EDGE('',*,*,#1714,.T.); -#1141=ORIENTED_EDGE('',*,*,#1699,.T.); -#1142=ORIENTED_EDGE('',*,*,#1680,.T.); -#1143=ORIENTED_EDGE('',*,*,#1698,.T.); -#1144=ORIENTED_EDGE('',*,*,#1713,.T.); -#1145=ORIENTED_EDGE('',*,*,#1728,.T.); -#1146=ORIENTED_EDGE('',*,*,#1743,.F.); -#1147=ORIENTED_EDGE('',*,*,#1758,.T.); -#1148=ORIENTED_EDGE('',*,*,#1773,.T.); -#1149=ORIENTED_EDGE('',*,*,#1786,.F.); -#1150=ORIENTED_EDGE('',*,*,#1424,.T.); -#1151=ORIENTED_EDGE('',*,*,#1839,.F.); -#1152=ORIENTED_EDGE('',*,*,#1678,.T.); -#1153=ORIENTED_EDGE('',*,*,#1840,.T.); -#1154=ORIENTED_EDGE('',*,*,#1422,.T.); -#1155=ORIENTED_EDGE('',*,*,#1785,.F.); -#1156=ORIENTED_EDGE('',*,*,#1771,.T.); -#1157=ORIENTED_EDGE('',*,*,#1756,.T.); -#1158=ORIENTED_EDGE('',*,*,#1741,.F.); -#1159=ORIENTED_EDGE('',*,*,#1726,.T.); -#1160=ORIENTED_EDGE('',*,*,#1711,.T.); -#1161=ORIENTED_EDGE('',*,*,#1696,.T.); -#1162=ORIENTED_EDGE('',*,*,#1672,.T.); -#1163=ORIENTED_EDGE('',*,*,#1842,.T.); -#1164=ORIENTED_EDGE('',*,*,#1418,.T.); -#1165=ORIENTED_EDGE('',*,*,#1782,.F.); -#1166=ORIENTED_EDGE('',*,*,#1767,.T.); -#1167=ORIENTED_EDGE('',*,*,#1752,.T.); -#1168=ORIENTED_EDGE('',*,*,#1737,.F.); -#1169=ORIENTED_EDGE('',*,*,#1722,.T.); -#1170=ORIENTED_EDGE('',*,*,#1707,.T.); -#1171=ORIENTED_EDGE('',*,*,#1692,.T.); -#1172=ORIENTED_EDGE('',*,*,#1676,.T.); -#1173=ORIENTED_EDGE('',*,*,#1695,.T.); -#1174=ORIENTED_EDGE('',*,*,#1710,.T.); -#1175=ORIENTED_EDGE('',*,*,#1725,.T.); -#1176=ORIENTED_EDGE('',*,*,#1740,.F.); -#1177=ORIENTED_EDGE('',*,*,#1755,.T.); -#1178=ORIENTED_EDGE('',*,*,#1770,.T.); -#1179=ORIENTED_EDGE('',*,*,#1784,.F.); -#1180=ORIENTED_EDGE('',*,*,#1420,.T.); -#1181=ORIENTED_EDGE('',*,*,#1841,.F.); -#1182=ORIENTED_EDGE('',*,*,#1458,.T.); -#1183=ORIENTED_EDGE('',*,*,#1590,.T.); -#1184=ORIENTED_EDGE('',*,*,#1579,.T.); -#1185=ORIENTED_EDGE('',*,*,#1564,.T.); -#1186=ORIENTED_EDGE('',*,*,#1548,.T.); -#1187=ORIENTED_EDGE('',*,*,#1866,.F.); -#1188=ORIENTED_EDGE('',*,*,#1460,.T.); -#1189=ORIENTED_EDGE('',*,*,#1865,.T.); -#1190=ORIENTED_EDGE('',*,*,#1546,.T.); -#1191=ORIENTED_EDGE('',*,*,#1563,.T.); -#1192=ORIENTED_EDGE('',*,*,#1578,.T.); -#1193=ORIENTED_EDGE('',*,*,#1589,.T.); -#1194=ORIENTED_EDGE('',*,*,#1462,.T.); -#1195=ORIENTED_EDGE('',*,*,#1588,.T.); -#1196=ORIENTED_EDGE('',*,*,#1576,.T.); -#1197=ORIENTED_EDGE('',*,*,#1561,.T.); -#1198=ORIENTED_EDGE('',*,*,#1544,.T.); -#1199=ORIENTED_EDGE('',*,*,#1864,.F.); -#1200=ORIENTED_EDGE('',*,*,#1464,.T.); -#1201=ORIENTED_EDGE('',*,*,#1863,.T.); -#1202=ORIENTED_EDGE('',*,*,#1542,.T.); -#1203=ORIENTED_EDGE('',*,*,#1560,.T.); -#1204=ORIENTED_EDGE('',*,*,#1575,.T.); -#1205=ORIENTED_EDGE('',*,*,#1587,.T.); -#1206=ORIENTED_EDGE('',*,*,#1466,.T.); -#1207=ORIENTED_EDGE('',*,*,#1586,.T.); -#1208=ORIENTED_EDGE('',*,*,#1573,.T.); -#1209=ORIENTED_EDGE('',*,*,#1558,.T.); -#1210=ORIENTED_EDGE('',*,*,#1540,.T.); -#1211=ORIENTED_EDGE('',*,*,#1862,.F.); -#1212=ORIENTED_EDGE('',*,*,#1468,.T.); -#1213=ORIENTED_EDGE('',*,*,#1861,.T.); -#1214=ORIENTED_EDGE('',*,*,#1538,.T.); -#1215=ORIENTED_EDGE('',*,*,#1557,.T.); -#1216=ORIENTED_EDGE('',*,*,#1572,.T.); -#1217=ORIENTED_EDGE('',*,*,#1585,.T.); -#1218=ORIENTED_EDGE('',*,*,#1470,.T.); -#1219=ORIENTED_EDGE('',*,*,#1584,.T.); -#1220=ORIENTED_EDGE('',*,*,#1570,.T.); -#1221=ORIENTED_EDGE('',*,*,#1555,.T.); -#1222=ORIENTED_EDGE('',*,*,#1536,.T.); -#1223=ORIENTED_EDGE('',*,*,#1860,.F.); -#1224=ORIENTED_EDGE('',*,*,#1436,.T.); -#1225=ORIENTED_EDGE('',*,*,#1859,.T.); -#1226=ORIENTED_EDGE('',*,*,#1532,.T.); -#1227=ORIENTED_EDGE('',*,*,#1552,.T.); -#1228=ORIENTED_EDGE('',*,*,#1567,.T.); -#1229=ORIENTED_EDGE('',*,*,#1582,.T.); -#1230=ORIENTED_EDGE('',*,*,#1414,.T.); -#1231=ORIENTED_EDGE('',*,*,#1850,.F.); -#1232=ORIENTED_EDGE('',*,*,#1529,.T.); -#1233=ORIENTED_EDGE('',*,*,#1514,.T.); -#1234=ORIENTED_EDGE('',*,*,#1499,.T.); -#1235=ORIENTED_EDGE('',*,*,#1484,.T.); -#1236=ORIENTED_EDGE('',*,*,#1412,.T.); -#1237=ORIENTED_EDGE('',*,*,#1483,.T.); -#1238=ORIENTED_EDGE('',*,*,#1498,.T.); -#1239=ORIENTED_EDGE('',*,*,#1513,.T.); -#1240=ORIENTED_EDGE('',*,*,#1528,.T.); -#1241=ORIENTED_EDGE('',*,*,#1851,.T.); -#1242=ORIENTED_EDGE('',*,*,#1410,.T.); -#1243=ORIENTED_EDGE('',*,*,#1852,.F.); -#1244=ORIENTED_EDGE('',*,*,#1526,.T.); -#1245=ORIENTED_EDGE('',*,*,#1511,.T.); -#1246=ORIENTED_EDGE('',*,*,#1496,.T.); -#1247=ORIENTED_EDGE('',*,*,#1481,.T.); -#1248=ORIENTED_EDGE('',*,*,#1408,.T.); -#1249=ORIENTED_EDGE('',*,*,#1480,.T.); -#1250=ORIENTED_EDGE('',*,*,#1495,.T.); -#1251=ORIENTED_EDGE('',*,*,#1510,.T.); -#1252=ORIENTED_EDGE('',*,*,#1525,.T.); -#1253=ORIENTED_EDGE('',*,*,#1853,.T.); -#1254=ORIENTED_EDGE('',*,*,#1406,.T.); -#1255=ORIENTED_EDGE('',*,*,#1854,.F.); -#1256=ORIENTED_EDGE('',*,*,#1523,.T.); -#1257=ORIENTED_EDGE('',*,*,#1508,.T.); -#1258=ORIENTED_EDGE('',*,*,#1493,.T.); -#1259=ORIENTED_EDGE('',*,*,#1478,.T.); -#1260=ORIENTED_EDGE('',*,*,#1404,.T.); -#1261=ORIENTED_EDGE('',*,*,#1477,.T.); -#1262=ORIENTED_EDGE('',*,*,#1492,.T.); -#1263=ORIENTED_EDGE('',*,*,#1507,.T.); -#1264=ORIENTED_EDGE('',*,*,#1522,.T.); -#1265=ORIENTED_EDGE('',*,*,#1855,.T.); -#1266=ORIENTED_EDGE('',*,*,#1400,.T.); -#1267=ORIENTED_EDGE('',*,*,#1472,.T.); -#1268=ORIENTED_EDGE('',*,*,#1487,.T.); -#1269=ORIENTED_EDGE('',*,*,#1502,.T.); -#1270=ORIENTED_EDGE('',*,*,#1517,.T.); -#1271=ORIENTED_EDGE('',*,*,#1857,.T.); -#1272=ORIENTED_EDGE('',*,*,#1402,.T.); -#1273=ORIENTED_EDGE('',*,*,#1856,.F.); -#1274=ORIENTED_EDGE('',*,*,#1520,.T.); -#1275=ORIENTED_EDGE('',*,*,#1505,.T.); -#1276=ORIENTED_EDGE('',*,*,#1490,.T.); -#1277=ORIENTED_EDGE('',*,*,#1475,.T.); -#1278=EDGE_CURVE('',#1868,#1869,#2260,.T.); -#1279=EDGE_CURVE('',#1869,#1870,#2261,.T.); -#1280=EDGE_CURVE('',#1871,#1870,#2262,.T.); -#1281=EDGE_CURVE('',#1868,#1871,#2263,.T.); -#1282=EDGE_CURVE('',#1872,#1873,#2264,.T.); -#1283=EDGE_CURVE('',#1874,#1872,#2265,.T.); -#1284=EDGE_CURVE('',#1875,#1874,#2266,.T.); -#1285=EDGE_CURVE('',#1873,#1875,#2267,.T.); -#1286=EDGE_CURVE('',#1876,#1877,#2268,.T.); -#1287=EDGE_CURVE('',#1878,#1877,#2269,.T.); -#1288=EDGE_CURVE('',#1879,#1878,#2270,.T.); -#1289=EDGE_CURVE('',#1879,#1876,#2271,.T.); -#1290=EDGE_CURVE('',#1880,#1881,#2272,.T.); -#1291=EDGE_CURVE('',#1881,#1869,#2273,.T.); -#1292=EDGE_CURVE('',#1882,#1868,#2274,.T.); -#1293=EDGE_CURVE('',#1883,#1882,#2275,.T.); -#1294=EDGE_CURVE('',#1884,#1883,#2276,.T.); -#1295=EDGE_CURVE('',#1884,#1885,#2277,.T.); -#1296=EDGE_CURVE('',#1886,#1885,#2278,.T.); -#1297=EDGE_CURVE('',#1886,#1887,#2279,.T.); -#1298=EDGE_CURVE('',#1888,#1887,#2280,.T.); -#1299=EDGE_CURVE('',#1889,#1888,#2281,.T.); -#1300=EDGE_CURVE('',#1890,#1889,#2282,.T.); -#1301=EDGE_CURVE('',#1891,#1890,#2283,.T.); -#1302=EDGE_CURVE('',#1892,#1891,#2284,.T.); -#1303=EDGE_CURVE('',#1893,#1892,#2285,.T.); -#1304=EDGE_CURVE('',#1894,#1893,#2286,.T.); -#1305=EDGE_CURVE('',#1894,#1895,#2287,.T.); -#1306=EDGE_CURVE('',#1895,#1896,#2288,.T.); -#1307=EDGE_CURVE('',#1896,#1897,#2289,.T.); -#1308=EDGE_CURVE('',#1897,#1898,#2290,.T.); -#1309=EDGE_CURVE('',#1898,#1879,#2291,.T.); -#1310=EDGE_CURVE('',#1878,#1899,#2292,.T.); -#1311=EDGE_CURVE('',#1899,#1900,#2293,.T.); -#1312=EDGE_CURVE('',#1900,#1872,#2294,.T.); -#1313=EDGE_CURVE('',#1901,#1873,#2295,.T.); -#1314=EDGE_CURVE('',#1901,#1880,#2296,.T.); -#1315=EDGE_CURVE('',#1882,#1902,#2297,.T.); -#1316=EDGE_CURVE('',#1871,#1903,#2298,.T.); -#1317=EDGE_CURVE('',#1904,#1903,#2299,.T.); -#1318=EDGE_CURVE('',#1905,#1904,#2300,.T.); -#1319=EDGE_CURVE('',#1905,#1906,#2301,.T.); -#1320=EDGE_CURVE('',#1906,#1907,#2302,.T.); -#1321=EDGE_CURVE('',#1907,#1894,#2303,.T.); -#1322=EDGE_CURVE('',#1908,#1893,#2304,.T.); -#1323=EDGE_CURVE('',#1909,#1908,#2305,.T.); -#1324=EDGE_CURVE('',#1886,#1909,#2306,.T.); -#1325=EDGE_CURVE('',#1902,#1885,#2307,.T.); -#1326=EDGE_CURVE('',#1887,#1910,#2308,.T.); -#1327=EDGE_CURVE('',#1911,#1910,#2309,.T.); -#1328=EDGE_CURVE('',#1888,#1911,#2310,.T.); -#1329=EDGE_CURVE('',#1912,#1913,#2311,.T.); -#1330=EDGE_CURVE('',#1912,#1892,#2312,.T.); -#1331=EDGE_CURVE('',#1891,#1913,#2313,.T.); -#1332=EDGE_CURVE('',#1914,#1870,#2314,.T.); -#1333=EDGE_CURVE('',#1915,#1914,#2315,.T.); -#1334=EDGE_CURVE('',#1916,#1915,#2316,.T.); -#1335=EDGE_CURVE('',#1916,#1875,#2317,.T.); -#1336=EDGE_CURVE('',#1903,#1874,#2318,.T.); -#1337=EDGE_CURVE('',#1916,#1901,#2319,.T.); -#1338=EDGE_CURVE('',#1906,#1917,#2320,.T.); -#1339=EDGE_CURVE('',#1917,#1918,#2321,.T.); -#1340=EDGE_CURVE('',#1907,#1918,#2322,.T.); -#1341=EDGE_CURVE('',#1918,#1895,#2323,.T.); -#1342=EDGE_CURVE('',#1917,#1896,#2324,.T.); -#1343=EDGE_CURVE('',#1919,#1904,#2325,.T.); -#1344=EDGE_CURVE('',#1920,#1919,#2326,.T.); -#1345=EDGE_CURVE('',#1920,#1905,#2327,.T.); -#1346=EDGE_CURVE('',#1921,#1922,#2328,.T.); -#1347=EDGE_CURVE('',#1877,#1921,#2329,.T.); -#1348=EDGE_CURVE('',#1923,#1876,#2330,.T.); -#1349=EDGE_CURVE('',#1924,#1923,#2331,.T.); -#1350=EDGE_CURVE('',#1924,#1925,#2332,.T.); -#1351=EDGE_CURVE('',#1925,#1926,#2333,.T.); -#1352=EDGE_CURVE('',#1922,#1926,#2334,.T.); -#1353=EDGE_CURVE('',#1926,#1919,#2335,.T.); -#1354=EDGE_CURVE('',#1925,#1920,#2336,.T.); -#1355=EDGE_CURVE('',#1897,#1924,#2337,.T.); -#1356=EDGE_CURVE('',#1900,#1922,#2338,.T.); -#1357=EDGE_CURVE('',#1927,#1928,#2339,.T.); -#1358=EDGE_CURVE('',#1890,#1927,#2340,.T.); -#1359=EDGE_CURVE('',#1889,#1928,#2341,.T.); -#1360=EDGE_CURVE('',#1928,#1911,#2342,.T.); -#1361=EDGE_CURVE('',#1913,#1927,#2343,.T.); -#1362=EDGE_CURVE('',#1910,#1929,#2344,.T.); -#1363=EDGE_CURVE('',#1909,#1929,#2345,.T.); -#1364=EDGE_CURVE('',#1930,#1929,#2346,.T.); -#1365=EDGE_CURVE('',#1908,#1931,#2347,.T.); -#1366=EDGE_CURVE('',#1931,#1932,#2348,.T.); -#1367=EDGE_CURVE('',#1932,#1933,#2349,.T.); -#1368=EDGE_CURVE('',#1933,#1934,#2350,.T.); -#1369=EDGE_CURVE('',#1934,#1930,#2351,.T.); -#1370=EDGE_CURVE('',#1931,#1912,#2352,.T.); -#1371=EDGE_CURVE('',#1935,#1902,#2353,.T.); -#1372=EDGE_CURVE('',#1883,#1935,#2354,.T.); -#1373=EDGE_CURVE('',#1935,#1884,#2355,.T.); -#1374=EDGE_CURVE('',#1930,#1911,#2356,.T.); -#1375=EDGE_CURVE('',#1934,#1928,#2357,.T.); -#1376=EDGE_CURVE('',#1933,#1927,#2358,.T.); -#1377=EDGE_CURVE('',#1932,#1913,#2359,.T.); -#1378=EDGE_CURVE('',#1898,#1923,#2360,.T.); -#1379=EDGE_CURVE('',#1899,#1921,#2361,.T.); -#1380=EDGE_CURVE('',#1881,#1914,#2362,.T.); -#1381=EDGE_CURVE('',#1880,#1915,#2363,.T.); -#1382=EDGE_CURVE('',#1936,#1937,#2364,.T.); -#1383=EDGE_CURVE('',#1936,#1938,#2365,.T.); -#1384=EDGE_CURVE('',#1939,#1938,#2366,.T.); -#1385=EDGE_CURVE('',#1940,#1939,#2367,.T.); -#1386=EDGE_CURVE('',#1941,#1940,#2368,.T.); -#1387=EDGE_CURVE('',#1942,#1941,#2369,.T.); -#1388=EDGE_CURVE('',#1942,#1943,#2370,.T.); -#1389=EDGE_CURVE('',#1943,#1937,#2371,.T.); -#1390=EDGE_CURVE('',#1940,#1944,#2372,.T.); -#1391=EDGE_CURVE('',#1944,#1936,#2373,.T.); -#1392=EDGE_CURVE('',#1937,#1945,#2374,.T.); -#1393=EDGE_CURVE('',#1945,#1941,#2375,.T.); -#1394=EDGE_CURVE('',#1943,#1946,#2376,.T.); -#1395=EDGE_CURVE('',#1946,#1945,#2377,.T.); -#1396=EDGE_CURVE('',#1946,#1942,#2378,.T.); -#1397=EDGE_CURVE('',#1944,#1947,#2379,.T.); -#1398=EDGE_CURVE('',#1938,#1947,#2380,.T.); -#1399=EDGE_CURVE('',#1947,#1939,#2381,.T.); -#1400=EDGE_CURVE('',#1948,#1949,#2382,.T.); -#1401=EDGE_CURVE('',#1950,#1948,#2383,.T.); -#1402=EDGE_CURVE('',#1951,#1950,#2384,.T.); -#1403=EDGE_CURVE('',#1952,#1951,#2385,.T.); -#1404=EDGE_CURVE('',#1953,#1952,#2386,.T.); -#1405=EDGE_CURVE('',#1954,#1953,#2387,.T.); -#1406=EDGE_CURVE('',#1955,#1954,#2388,.T.); -#1407=EDGE_CURVE('',#1956,#1955,#2389,.T.); -#1408=EDGE_CURVE('',#1957,#1956,#2390,.T.); -#1409=EDGE_CURVE('',#1958,#1957,#2391,.T.); -#1410=EDGE_CURVE('',#1959,#1958,#2392,.T.); -#1411=EDGE_CURVE('',#1960,#1959,#2393,.T.); -#1412=EDGE_CURVE('',#1961,#1960,#2394,.T.); -#1413=EDGE_CURVE('',#1962,#1961,#2395,.T.); -#1414=EDGE_CURVE('',#1963,#1962,#2396,.T.); -#1415=EDGE_CURVE('',#1964,#1963,#2397,.T.); -#1416=EDGE_CURVE('',#1965,#1964,#2398,.T.); -#1417=EDGE_CURVE('',#1965,#1966,#2399,.T.); -#1418=EDGE_CURVE('',#1967,#1966,#2400,.T.); -#1419=EDGE_CURVE('',#1968,#1967,#2401,.T.); -#1420=EDGE_CURVE('',#1969,#1968,#2402,.T.); -#1421=EDGE_CURVE('',#1969,#1970,#2403,.T.); -#1422=EDGE_CURVE('',#1971,#1970,#2404,.T.); -#1423=EDGE_CURVE('',#1972,#1971,#2405,.T.); -#1424=EDGE_CURVE('',#1973,#1972,#2406,.T.); -#1425=EDGE_CURVE('',#1973,#1974,#2407,.T.); -#1426=EDGE_CURVE('',#1975,#1974,#2408,.T.); -#1427=EDGE_CURVE('',#1976,#1975,#2409,.T.); -#1428=EDGE_CURVE('',#1977,#1976,#2410,.T.); -#1429=EDGE_CURVE('',#1977,#1978,#2411,.T.); -#1430=EDGE_CURVE('',#1979,#1978,#2412,.T.); -#1431=EDGE_CURVE('',#1980,#1979,#2413,.T.); -#1432=EDGE_CURVE('',#1981,#1980,#2414,.T.); -#1433=EDGE_CURVE('',#1981,#1982,#2415,.T.); -#1434=EDGE_CURVE('',#1982,#1983,#2416,.T.); -#1435=EDGE_CURVE('',#1949,#1983,#2417,.T.); -#1436=EDGE_CURVE('',#1984,#1985,#2418,.T.); -#1437=EDGE_CURVE('',#1984,#1986,#2419,.T.); -#1438=EDGE_CURVE('',#1986,#1987,#2420,.T.); -#1439=EDGE_CURVE('',#1988,#1987,#2421,.T.); -#1440=EDGE_CURVE('',#1989,#1988,#2422,.T.); -#1441=EDGE_CURVE('',#1990,#1989,#2423,.T.); -#1442=EDGE_CURVE('',#1991,#1990,#2424,.T.); -#1443=EDGE_CURVE('',#1992,#1991,#2425,.T.); -#1444=EDGE_CURVE('',#1993,#1992,#2426,.T.); -#1445=EDGE_CURVE('',#1994,#1993,#2427,.T.); -#1446=EDGE_CURVE('',#1995,#1994,#2428,.T.); -#1447=EDGE_CURVE('',#1996,#1995,#2429,.T.); -#1448=EDGE_CURVE('',#1997,#1996,#2430,.T.); -#1449=EDGE_CURVE('',#1998,#1997,#2431,.T.); -#1450=EDGE_CURVE('',#1999,#1998,#2432,.T.); -#1451=EDGE_CURVE('',#2000,#1999,#2433,.T.); -#1452=EDGE_CURVE('',#2001,#2000,#2434,.T.); -#1453=EDGE_CURVE('',#2002,#2001,#2435,.T.); -#1454=EDGE_CURVE('',#2003,#2002,#2436,.T.); -#1455=EDGE_CURVE('',#2004,#2003,#2437,.T.); -#1456=EDGE_CURVE('',#2005,#2004,#2438,.T.); -#1457=EDGE_CURVE('',#2005,#2006,#2439,.T.); -#1458=EDGE_CURVE('',#2007,#2006,#2440,.T.); -#1459=EDGE_CURVE('',#2008,#2007,#2441,.T.); -#1460=EDGE_CURVE('',#2009,#2008,#2442,.T.); -#1461=EDGE_CURVE('',#2009,#2010,#2443,.T.); -#1462=EDGE_CURVE('',#2011,#2010,#2444,.T.); -#1463=EDGE_CURVE('',#2012,#2011,#2445,.T.); -#1464=EDGE_CURVE('',#2013,#2012,#2446,.T.); -#1465=EDGE_CURVE('',#2013,#2014,#2447,.T.); -#1466=EDGE_CURVE('',#2015,#2014,#2448,.T.); -#1467=EDGE_CURVE('',#2016,#2015,#2449,.T.); -#1468=EDGE_CURVE('',#2017,#2016,#2450,.T.); -#1469=EDGE_CURVE('',#2017,#2018,#2451,.T.); -#1470=EDGE_CURVE('',#2019,#2018,#2452,.T.); -#1471=EDGE_CURVE('',#1985,#2019,#2453,.T.); -#1472=EDGE_CURVE('',#1949,#2020,#2454,.T.); -#1473=EDGE_CURVE('',#1983,#2021,#2455,.T.); -#1474=EDGE_CURVE('',#2020,#2021,#2456,.T.); -#1475=EDGE_CURVE('',#2022,#1951,#2457,.T.); -#1476=EDGE_CURVE('',#2023,#2022,#2458,.T.); -#1477=EDGE_CURVE('',#1952,#2023,#2459,.T.); -#1478=EDGE_CURVE('',#2024,#1955,#2460,.T.); -#1479=EDGE_CURVE('',#2025,#2024,#2461,.T.); -#1480=EDGE_CURVE('',#1956,#2025,#2462,.T.); -#1481=EDGE_CURVE('',#2026,#1959,#2463,.T.); -#1482=EDGE_CURVE('',#2027,#2026,#2464,.T.); -#1483=EDGE_CURVE('',#1960,#2027,#2465,.T.); -#1484=EDGE_CURVE('',#2028,#1963,#2466,.T.); -#1485=EDGE_CURVE('',#2029,#2028,#2467,.T.); -#1486=EDGE_CURVE('',#1964,#2029,#2468,.T.); -#1487=EDGE_CURVE('',#2020,#2030,#2469,.T.); -#1488=EDGE_CURVE('',#2021,#2031,#2470,.T.); -#1489=EDGE_CURVE('',#2030,#2031,#2471,.T.); -#1490=EDGE_CURVE('',#2032,#2022,#2472,.T.); -#1491=EDGE_CURVE('',#2033,#2032,#2473,.T.); -#1492=EDGE_CURVE('',#2023,#2033,#2474,.T.); -#1493=EDGE_CURVE('',#2034,#2024,#2475,.T.); -#1494=EDGE_CURVE('',#2035,#2034,#2476,.T.); -#1495=EDGE_CURVE('',#2025,#2035,#2477,.T.); -#1496=EDGE_CURVE('',#2036,#2026,#2478,.T.); -#1497=EDGE_CURVE('',#2037,#2036,#2479,.T.); -#1498=EDGE_CURVE('',#2027,#2037,#2480,.T.); -#1499=EDGE_CURVE('',#2038,#2028,#2481,.T.); -#1500=EDGE_CURVE('',#2039,#2038,#2482,.T.); -#1501=EDGE_CURVE('',#2029,#2039,#2483,.T.); -#1502=EDGE_CURVE('',#2030,#2040,#2484,.T.); -#1503=EDGE_CURVE('',#2031,#2041,#2485,.T.); -#1504=EDGE_CURVE('',#2040,#2041,#2486,.T.); -#1505=EDGE_CURVE('',#2042,#2032,#2487,.T.); -#1506=EDGE_CURVE('',#2043,#2042,#2488,.T.); -#1507=EDGE_CURVE('',#2033,#2043,#2489,.T.); -#1508=EDGE_CURVE('',#2044,#2034,#2490,.T.); -#1509=EDGE_CURVE('',#2045,#2044,#2491,.T.); -#1510=EDGE_CURVE('',#2035,#2045,#2492,.T.); -#1511=EDGE_CURVE('',#2046,#2036,#2493,.T.); -#1512=EDGE_CURVE('',#2047,#2046,#2494,.T.); -#1513=EDGE_CURVE('',#2037,#2047,#2495,.T.); -#1514=EDGE_CURVE('',#2048,#2038,#2496,.T.); -#1515=EDGE_CURVE('',#2049,#2048,#2497,.T.); -#1516=EDGE_CURVE('',#2039,#2049,#2498,.T.); -#1517=EDGE_CURVE('',#2040,#2050,#2499,.T.); -#1518=EDGE_CURVE('',#2041,#2051,#2500,.T.); -#1519=EDGE_CURVE('',#2050,#2051,#2501,.T.); -#1520=EDGE_CURVE('',#2052,#2042,#2502,.T.); -#1521=EDGE_CURVE('',#2053,#2052,#2503,.T.); -#1522=EDGE_CURVE('',#2043,#2053,#2504,.T.); -#1523=EDGE_CURVE('',#2054,#2044,#2505,.T.); -#1524=EDGE_CURVE('',#2055,#2054,#2506,.T.); -#1525=EDGE_CURVE('',#2045,#2055,#2507,.T.); -#1526=EDGE_CURVE('',#2056,#2046,#2508,.T.); -#1527=EDGE_CURVE('',#2057,#2056,#2509,.T.); -#1528=EDGE_CURVE('',#2047,#2057,#2510,.T.); -#1529=EDGE_CURVE('',#2058,#2048,#2511,.T.); -#1530=EDGE_CURVE('',#2059,#2058,#2512,.T.); -#1531=EDGE_CURVE('',#2049,#2059,#2513,.T.); -#1532=EDGE_CURVE('',#2060,#2061,#2514,.T.); -#1533=EDGE_CURVE('',#2060,#2062,#2515,.T.); -#1534=EDGE_CURVE('',#2062,#2063,#2516,.T.); -#1535=EDGE_CURVE('',#2061,#2063,#2517,.T.); -#1536=EDGE_CURVE('',#2064,#2065,#2518,.T.); -#1537=EDGE_CURVE('',#2066,#2064,#2519,.T.); -#1538=EDGE_CURVE('',#2067,#2066,#2520,.T.); -#1539=EDGE_CURVE('',#2067,#2065,#2521,.T.); -#1540=EDGE_CURVE('',#2068,#2069,#2522,.T.); -#1541=EDGE_CURVE('',#2070,#2068,#2523,.T.); -#1542=EDGE_CURVE('',#2071,#2070,#2524,.T.); -#1543=EDGE_CURVE('',#2071,#2069,#2525,.T.); -#1544=EDGE_CURVE('',#2072,#2073,#2526,.T.); -#1545=EDGE_CURVE('',#2074,#2072,#2527,.T.); -#1546=EDGE_CURVE('',#2075,#2074,#2528,.T.); -#1547=EDGE_CURVE('',#2075,#2073,#2529,.T.); -#1548=EDGE_CURVE('',#2076,#2077,#2530,.T.); -#1549=EDGE_CURVE('',#2078,#2076,#2531,.T.); -#1550=EDGE_CURVE('',#2079,#2078,#2532,.T.); -#1551=EDGE_CURVE('',#2079,#2077,#2533,.T.); -#1552=EDGE_CURVE('',#2061,#2080,#2534,.T.); -#1553=EDGE_CURVE('',#2063,#2081,#2535,.T.); -#1554=EDGE_CURVE('',#2080,#2081,#2536,.T.); -#1555=EDGE_CURVE('',#2082,#2064,#2537,.T.); -#1556=EDGE_CURVE('',#2083,#2082,#2538,.T.); -#1557=EDGE_CURVE('',#2066,#2083,#2539,.T.); -#1558=EDGE_CURVE('',#2084,#2068,#2540,.T.); -#1559=EDGE_CURVE('',#2085,#2084,#2541,.T.); -#1560=EDGE_CURVE('',#2070,#2085,#2542,.T.); -#1561=EDGE_CURVE('',#2086,#2072,#2543,.T.); -#1562=EDGE_CURVE('',#2087,#2086,#2544,.T.); -#1563=EDGE_CURVE('',#2074,#2087,#2545,.T.); -#1564=EDGE_CURVE('',#2088,#2076,#2546,.T.); -#1565=EDGE_CURVE('',#2089,#2088,#2547,.T.); -#1566=EDGE_CURVE('',#2078,#2089,#2548,.T.); -#1567=EDGE_CURVE('',#2080,#2090,#2549,.T.); -#1568=EDGE_CURVE('',#2081,#2091,#2550,.T.); -#1569=EDGE_CURVE('',#2090,#2091,#2551,.T.); -#1570=EDGE_CURVE('',#2092,#2082,#2552,.T.); -#1571=EDGE_CURVE('',#2093,#2092,#2553,.T.); -#1572=EDGE_CURVE('',#2083,#2093,#2554,.T.); -#1573=EDGE_CURVE('',#2094,#2084,#2555,.T.); -#1574=EDGE_CURVE('',#2095,#2094,#2556,.T.); -#1575=EDGE_CURVE('',#2085,#2095,#2557,.T.); -#1576=EDGE_CURVE('',#2096,#2086,#2558,.T.); -#1577=EDGE_CURVE('',#2097,#2096,#2559,.T.); -#1578=EDGE_CURVE('',#2087,#2097,#2560,.T.); -#1579=EDGE_CURVE('',#2098,#2088,#2561,.T.); -#1580=EDGE_CURVE('',#2099,#2098,#2562,.T.); -#1581=EDGE_CURVE('',#2089,#2099,#2563,.T.); -#1582=EDGE_CURVE('',#2090,#1984,#2564,.T.); -#1583=EDGE_CURVE('',#2091,#1986,#2565,.T.); -#1584=EDGE_CURVE('',#2018,#2092,#2566,.T.); -#1585=EDGE_CURVE('',#2093,#2017,#2567,.T.); -#1586=EDGE_CURVE('',#2014,#2094,#2568,.T.); -#1587=EDGE_CURVE('',#2095,#2013,#2569,.T.); -#1588=EDGE_CURVE('',#2010,#2096,#2570,.T.); -#1589=EDGE_CURVE('',#2097,#2009,#2571,.T.); -#1590=EDGE_CURVE('',#2006,#2098,#2572,.T.); -#1591=EDGE_CURVE('',#2099,#2005,#2573,.T.); -#1592=EDGE_CURVE('',#2100,#2101,#2574,.T.); -#1593=EDGE_CURVE('',#2102,#2100,#2575,.T.); -#1594=EDGE_CURVE('',#2103,#2102,#2576,.T.); -#1595=EDGE_CURVE('',#2103,#2101,#2577,.T.); -#1596=EDGE_CURVE('',#2104,#2105,#2578,.T.); -#1597=EDGE_CURVE('',#2104,#2106,#2579,.T.); -#1598=EDGE_CURVE('',#2107,#2106,#2580,.T.); -#1599=EDGE_CURVE('',#2105,#2107,#2581,.T.); -#1600=EDGE_CURVE('',#2108,#2109,#2582,.T.); -#1601=EDGE_CURVE('',#2108,#2110,#2583,.T.); -#1602=EDGE_CURVE('',#2111,#2110,#2584,.T.); -#1603=EDGE_CURVE('',#2109,#2111,#2585,.T.); -#1604=EDGE_CURVE('',#2112,#2113,#2586,.T.); -#1605=EDGE_CURVE('',#2112,#2114,#2587,.T.); -#1606=EDGE_CURVE('',#2115,#2114,#2588,.T.); -#1607=EDGE_CURVE('',#2113,#2115,#2589,.T.); -#1608=EDGE_CURVE('',#2116,#2117,#2590,.T.); -#1609=EDGE_CURVE('',#2116,#2118,#2591,.T.); -#1610=EDGE_CURVE('',#2118,#2119,#2592,.T.); -#1611=EDGE_CURVE('',#2117,#2119,#2593,.T.); -#1612=EDGE_CURVE('',#2120,#2100,#2594,.T.); -#1613=EDGE_CURVE('',#2121,#2120,#2595,.T.); -#1614=EDGE_CURVE('',#2102,#2121,#2596,.T.); -#1615=EDGE_CURVE('',#2105,#2122,#2597,.T.); -#1616=EDGE_CURVE('',#2123,#2107,#2598,.T.); -#1617=EDGE_CURVE('',#2122,#2123,#2599,.T.); -#1618=EDGE_CURVE('',#2109,#2124,#2600,.T.); -#1619=EDGE_CURVE('',#2125,#2111,#2601,.T.); -#1620=EDGE_CURVE('',#2124,#2125,#2602,.T.); -#1621=EDGE_CURVE('',#2113,#2126,#2603,.T.); -#1622=EDGE_CURVE('',#2127,#2115,#2604,.T.); -#1623=EDGE_CURVE('',#2126,#2127,#2605,.T.); -#1624=EDGE_CURVE('',#2117,#2128,#2606,.T.); -#1625=EDGE_CURVE('',#2119,#2129,#2607,.T.); -#1626=EDGE_CURVE('',#2128,#2129,#2608,.T.); -#1627=EDGE_CURVE('',#2130,#2120,#2609,.T.); -#1628=EDGE_CURVE('',#2131,#2130,#2610,.T.); -#1629=EDGE_CURVE('',#2121,#2131,#2611,.T.); -#1630=EDGE_CURVE('',#2122,#2132,#2612,.T.); -#1631=EDGE_CURVE('',#2133,#2123,#2613,.T.); -#1632=EDGE_CURVE('',#2132,#2133,#2614,.T.); -#1633=EDGE_CURVE('',#2124,#2134,#2615,.T.); -#1634=EDGE_CURVE('',#2135,#2125,#2616,.T.); -#1635=EDGE_CURVE('',#2134,#2135,#2617,.T.); -#1636=EDGE_CURVE('',#2126,#2136,#2618,.T.); -#1637=EDGE_CURVE('',#2137,#2127,#2619,.T.); -#1638=EDGE_CURVE('',#2136,#2137,#2620,.T.); -#1639=EDGE_CURVE('',#2128,#2138,#2621,.T.); -#1640=EDGE_CURVE('',#2129,#2139,#2622,.T.); -#1641=EDGE_CURVE('',#2138,#2139,#2623,.T.); -#1642=EDGE_CURVE('',#2140,#2130,#18,.T.); -#1643=EDGE_CURVE('',#2141,#2140,#2624,.T.); -#1644=EDGE_CURVE('',#2131,#2141,#19,.T.); -#1645=EDGE_CURVE('',#2132,#2142,#20,.T.); -#1646=EDGE_CURVE('',#2143,#2133,#21,.T.); -#1647=EDGE_CURVE('',#2142,#2143,#2625,.T.); -#1648=EDGE_CURVE('',#2134,#2144,#22,.T.); -#1649=EDGE_CURVE('',#2145,#2135,#23,.T.); -#1650=EDGE_CURVE('',#2144,#2145,#2626,.T.); -#1651=EDGE_CURVE('',#2136,#2146,#24,.T.); -#1652=EDGE_CURVE('',#2147,#2137,#25,.T.); -#1653=EDGE_CURVE('',#2146,#2147,#2627,.T.); -#1654=EDGE_CURVE('',#2138,#2148,#26,.T.); -#1655=EDGE_CURVE('',#2139,#2149,#27,.T.); -#1656=EDGE_CURVE('',#2148,#2149,#2628,.T.); -#1657=EDGE_CURVE('',#2150,#2140,#2629,.T.); -#1658=EDGE_CURVE('',#2151,#2150,#2630,.T.); -#1659=EDGE_CURVE('',#2141,#2151,#2631,.T.); -#1660=EDGE_CURVE('',#2142,#2152,#2632,.T.); -#1661=EDGE_CURVE('',#2153,#2143,#2633,.T.); -#1662=EDGE_CURVE('',#2152,#2153,#2634,.T.); -#1663=EDGE_CURVE('',#2144,#2154,#2635,.T.); -#1664=EDGE_CURVE('',#2155,#2145,#2636,.T.); -#1665=EDGE_CURVE('',#2154,#2155,#2637,.T.); -#1666=EDGE_CURVE('',#2146,#2156,#2638,.T.); -#1667=EDGE_CURVE('',#2157,#2147,#2639,.T.); -#1668=EDGE_CURVE('',#2156,#2157,#2640,.T.); -#1669=EDGE_CURVE('',#2148,#2158,#2641,.T.); -#1670=EDGE_CURVE('',#2149,#2159,#2642,.T.); -#1671=EDGE_CURVE('',#2158,#2159,#2643,.T.); -#1672=EDGE_CURVE('',#2160,#2161,#2644,.T.); -#1673=EDGE_CURVE('',#2162,#2160,#2645,.T.); -#1674=EDGE_CURVE('',#2163,#2162,#2646,.T.); -#1675=EDGE_CURVE('',#2163,#2161,#2647,.T.); -#1676=EDGE_CURVE('',#2164,#2165,#2648,.T.); -#1677=EDGE_CURVE('',#2164,#2166,#2649,.T.); -#1678=EDGE_CURVE('',#2167,#2166,#2650,.T.); -#1679=EDGE_CURVE('',#2165,#2167,#2651,.T.); -#1680=EDGE_CURVE('',#2168,#2169,#2652,.T.); -#1681=EDGE_CURVE('',#2168,#2170,#2653,.T.); -#1682=EDGE_CURVE('',#2171,#2170,#2654,.T.); -#1683=EDGE_CURVE('',#2169,#2171,#2655,.T.); -#1684=EDGE_CURVE('',#2172,#2173,#2656,.T.); -#1685=EDGE_CURVE('',#2172,#2174,#2657,.T.); -#1686=EDGE_CURVE('',#2175,#2174,#2658,.T.); -#1687=EDGE_CURVE('',#2173,#2175,#2659,.T.); -#1688=EDGE_CURVE('',#2176,#2177,#2660,.T.); -#1689=EDGE_CURVE('',#2176,#2178,#2661,.T.); -#1690=EDGE_CURVE('',#2178,#2179,#2662,.T.); -#1691=EDGE_CURVE('',#2177,#2179,#2663,.T.); -#1692=EDGE_CURVE('',#2180,#2160,#28,.T.); -#1693=EDGE_CURVE('',#2181,#2180,#2664,.T.); -#1694=EDGE_CURVE('',#2162,#2181,#29,.T.); -#1695=EDGE_CURVE('',#2165,#2182,#30,.T.); -#1696=EDGE_CURVE('',#2183,#2167,#31,.T.); -#1697=EDGE_CURVE('',#2182,#2183,#2665,.T.); -#1698=EDGE_CURVE('',#2169,#2184,#32,.T.); -#1699=EDGE_CURVE('',#2185,#2171,#33,.T.); -#1700=EDGE_CURVE('',#2184,#2185,#2666,.T.); -#1701=EDGE_CURVE('',#2173,#2186,#34,.T.); -#1702=EDGE_CURVE('',#2187,#2175,#35,.T.); -#1703=EDGE_CURVE('',#2186,#2187,#2667,.T.); -#1704=EDGE_CURVE('',#2177,#2188,#36,.T.); -#1705=EDGE_CURVE('',#2179,#2189,#37,.T.); -#1706=EDGE_CURVE('',#2188,#2189,#2668,.T.); -#1707=EDGE_CURVE('',#2190,#2180,#2669,.T.); -#1708=EDGE_CURVE('',#2191,#2190,#2670,.T.); -#1709=EDGE_CURVE('',#2181,#2191,#2671,.T.); -#1710=EDGE_CURVE('',#2182,#2192,#2672,.T.); -#1711=EDGE_CURVE('',#2193,#2183,#2673,.T.); -#1712=EDGE_CURVE('',#2192,#2193,#2674,.T.); -#1713=EDGE_CURVE('',#2184,#2194,#2675,.T.); -#1714=EDGE_CURVE('',#2195,#2185,#2676,.T.); -#1715=EDGE_CURVE('',#2194,#2195,#2677,.T.); -#1716=EDGE_CURVE('',#2186,#2196,#2678,.T.); -#1717=EDGE_CURVE('',#2197,#2187,#2679,.T.); -#1718=EDGE_CURVE('',#2196,#2197,#2680,.T.); -#1719=EDGE_CURVE('',#2188,#2198,#2681,.T.); -#1720=EDGE_CURVE('',#2189,#2199,#2682,.T.); -#1721=EDGE_CURVE('',#2198,#2199,#2683,.T.); -#1722=EDGE_CURVE('',#2200,#2190,#2684,.T.); -#1723=EDGE_CURVE('',#2201,#2200,#2685,.T.); -#1724=EDGE_CURVE('',#2191,#2201,#2686,.T.); -#1725=EDGE_CURVE('',#2192,#2202,#2687,.T.); -#1726=EDGE_CURVE('',#2203,#2193,#2688,.T.); -#1727=EDGE_CURVE('',#2202,#2203,#2689,.T.); -#1728=EDGE_CURVE('',#2194,#2204,#2690,.T.); -#1729=EDGE_CURVE('',#2205,#2195,#2691,.T.); -#1730=EDGE_CURVE('',#2204,#2205,#2692,.T.); -#1731=EDGE_CURVE('',#2196,#2206,#2693,.T.); -#1732=EDGE_CURVE('',#2207,#2197,#2694,.T.); -#1733=EDGE_CURVE('',#2206,#2207,#2695,.T.); -#1734=EDGE_CURVE('',#2198,#2208,#2696,.T.); -#1735=EDGE_CURVE('',#2199,#2209,#2697,.T.); -#1736=EDGE_CURVE('',#2208,#2209,#2698,.T.); -#1737=EDGE_CURVE('',#2200,#2210,#2699,.T.); -#1738=EDGE_CURVE('',#2211,#2210,#2700,.T.); -#1739=EDGE_CURVE('',#2201,#2211,#2701,.T.); -#1740=EDGE_CURVE('',#2212,#2202,#2702,.T.); -#1741=EDGE_CURVE('',#2203,#2213,#2703,.T.); -#1742=EDGE_CURVE('',#2212,#2213,#2704,.T.); -#1743=EDGE_CURVE('',#2214,#2204,#2705,.T.); -#1744=EDGE_CURVE('',#2205,#2215,#2706,.T.); -#1745=EDGE_CURVE('',#2214,#2215,#2707,.T.); -#1746=EDGE_CURVE('',#2216,#2206,#2708,.T.); -#1747=EDGE_CURVE('',#2207,#2217,#2709,.T.); -#1748=EDGE_CURVE('',#2216,#2217,#2710,.T.); -#1749=EDGE_CURVE('',#2218,#2208,#2711,.T.); -#1750=EDGE_CURVE('',#2209,#2219,#2712,.T.); -#1751=EDGE_CURVE('',#2218,#2219,#2713,.T.); -#1752=EDGE_CURVE('',#2220,#2210,#2714,.T.); -#1753=EDGE_CURVE('',#2221,#2220,#2715,.T.); -#1754=EDGE_CURVE('',#2211,#2221,#2716,.T.); -#1755=EDGE_CURVE('',#2212,#2222,#2717,.T.); -#1756=EDGE_CURVE('',#2223,#2213,#2718,.T.); -#1757=EDGE_CURVE('',#2222,#2223,#2719,.T.); -#1758=EDGE_CURVE('',#2214,#2224,#2720,.T.); -#1759=EDGE_CURVE('',#2225,#2215,#2721,.T.); -#1760=EDGE_CURVE('',#2224,#2225,#2722,.T.); -#1761=EDGE_CURVE('',#2216,#2226,#2723,.T.); -#1762=EDGE_CURVE('',#2227,#2217,#2724,.T.); -#1763=EDGE_CURVE('',#2226,#2227,#2725,.T.); -#1764=EDGE_CURVE('',#2218,#2228,#2726,.T.); -#1765=EDGE_CURVE('',#2219,#2229,#2727,.T.); -#1766=EDGE_CURVE('',#2228,#2229,#2728,.T.); -#1767=EDGE_CURVE('',#2230,#2220,#2729,.T.); -#1768=EDGE_CURVE('',#2231,#2230,#2730,.T.); -#1769=EDGE_CURVE('',#2221,#2231,#2731,.T.); -#1770=EDGE_CURVE('',#2222,#2232,#2732,.T.); -#1771=EDGE_CURVE('',#2233,#2223,#2733,.T.); -#1772=EDGE_CURVE('',#2232,#2233,#2734,.T.); -#1773=EDGE_CURVE('',#2224,#2234,#2735,.T.); -#1774=EDGE_CURVE('',#2235,#2225,#2736,.T.); -#1775=EDGE_CURVE('',#2234,#2235,#2737,.T.); -#1776=EDGE_CURVE('',#2226,#2236,#2738,.T.); -#1777=EDGE_CURVE('',#2237,#2227,#2739,.T.); -#1778=EDGE_CURVE('',#2236,#2237,#2740,.T.); -#1779=EDGE_CURVE('',#2228,#2238,#2741,.T.); -#1780=EDGE_CURVE('',#2229,#2239,#2742,.T.); -#1781=EDGE_CURVE('',#2238,#2239,#2743,.T.); -#1782=EDGE_CURVE('',#2230,#1966,#38,.T.); -#1783=EDGE_CURVE('',#1965,#2231,#39,.T.); -#1784=EDGE_CURVE('',#1969,#2232,#40,.T.); -#1785=EDGE_CURVE('',#2233,#1970,#41,.T.); -#1786=EDGE_CURVE('',#1973,#2234,#42,.T.); -#1787=EDGE_CURVE('',#2235,#1974,#43,.T.); -#1788=EDGE_CURVE('',#1977,#2236,#44,.T.); -#1789=EDGE_CURVE('',#2237,#1978,#45,.T.); -#1790=EDGE_CURVE('',#1981,#2238,#46,.T.); -#1791=EDGE_CURVE('',#1982,#2239,#47,.T.); -#1792=EDGE_CURVE('',#2003,#2240,#48,.T.); -#1793=EDGE_CURVE('',#2241,#2240,#2744,.T.); -#1794=EDGE_CURVE('',#2241,#2004,#49,.T.); -#1795=EDGE_CURVE('',#2242,#2243,#2745,.T.); -#1796=EDGE_CURVE('',#2242,#2000,#50,.T.); -#1797=EDGE_CURVE('',#1999,#2243,#51,.T.); -#1798=EDGE_CURVE('',#2244,#2245,#2746,.T.); -#1799=EDGE_CURVE('',#2244,#1996,#52,.T.); -#1800=EDGE_CURVE('',#1995,#2245,#53,.T.); -#1801=EDGE_CURVE('',#2246,#2247,#2747,.T.); -#1802=EDGE_CURVE('',#2246,#1992,#54,.T.); -#1803=EDGE_CURVE('',#1991,#2247,#55,.T.); -#1804=EDGE_CURVE('',#2248,#2249,#2748,.T.); -#1805=EDGE_CURVE('',#2248,#1988,#56,.T.); -#1806=EDGE_CURVE('',#2249,#1987,#57,.T.); -#1807=EDGE_CURVE('',#2250,#2240,#2749,.T.); -#1808=EDGE_CURVE('',#2251,#2250,#2750,.T.); -#1809=EDGE_CURVE('',#2241,#2251,#2751,.T.); -#1810=EDGE_CURVE('',#2242,#2252,#2752,.T.); -#1811=EDGE_CURVE('',#2253,#2243,#2753,.T.); -#1812=EDGE_CURVE('',#2252,#2253,#2754,.T.); -#1813=EDGE_CURVE('',#2244,#2254,#2755,.T.); -#1814=EDGE_CURVE('',#2255,#2245,#2756,.T.); -#1815=EDGE_CURVE('',#2254,#2255,#2757,.T.); -#1816=EDGE_CURVE('',#2246,#2256,#2758,.T.); -#1817=EDGE_CURVE('',#2257,#2247,#2759,.T.); -#1818=EDGE_CURVE('',#2256,#2257,#2760,.T.); -#1819=EDGE_CURVE('',#2248,#2258,#2761,.T.); -#1820=EDGE_CURVE('',#2249,#2259,#2762,.T.); -#1821=EDGE_CURVE('',#2258,#2259,#2763,.T.); -#1822=EDGE_CURVE('',#2101,#2250,#2764,.T.); -#1823=EDGE_CURVE('',#2251,#2103,#2765,.T.); -#1824=EDGE_CURVE('',#2252,#2104,#2766,.T.); -#1825=EDGE_CURVE('',#2106,#2253,#2767,.T.); -#1826=EDGE_CURVE('',#2254,#2108,#2768,.T.); -#1827=EDGE_CURVE('',#2110,#2255,#2769,.T.); -#1828=EDGE_CURVE('',#2256,#2112,#2770,.T.); -#1829=EDGE_CURVE('',#2114,#2257,#2771,.T.); -#1830=EDGE_CURVE('',#2258,#2116,#2772,.T.); -#1831=EDGE_CURVE('',#2259,#2118,#2773,.T.); -#1832=EDGE_CURVE('',#1990,#2157,#2774,.T.); -#1833=EDGE_CURVE('',#1989,#2158,#2775,.T.); -#1834=EDGE_CURVE('',#2159,#2178,#2776,.T.); -#1835=EDGE_CURVE('',#2176,#1980,#2777,.T.); -#1836=EDGE_CURVE('',#2174,#1979,#2778,.T.); -#1837=EDGE_CURVE('',#2172,#1976,#2779,.T.); -#1838=EDGE_CURVE('',#2170,#1975,#2780,.T.); -#1839=EDGE_CURVE('',#2168,#1972,#2781,.T.); -#1840=EDGE_CURVE('',#2166,#1971,#2782,.T.); -#1841=EDGE_CURVE('',#2164,#1968,#2783,.T.); -#1842=EDGE_CURVE('',#2161,#1967,#2784,.T.); -#1843=EDGE_CURVE('',#2151,#2163,#2785,.T.); -#1844=EDGE_CURVE('',#2002,#2150,#2786,.T.); -#1845=EDGE_CURVE('',#2001,#2152,#2787,.T.); -#1846=EDGE_CURVE('',#1998,#2153,#2788,.T.); -#1847=EDGE_CURVE('',#1997,#2154,#2789,.T.); -#1848=EDGE_CURVE('',#1994,#2155,#2790,.T.); -#1849=EDGE_CURVE('',#1993,#2156,#2791,.T.); -#1850=EDGE_CURVE('',#2058,#1962,#2792,.T.); -#1851=EDGE_CURVE('',#2057,#1961,#2793,.T.); -#1852=EDGE_CURVE('',#2056,#1958,#2794,.T.); -#1853=EDGE_CURVE('',#2055,#1957,#2795,.T.); -#1854=EDGE_CURVE('',#2054,#1954,#2796,.T.); -#1855=EDGE_CURVE('',#2053,#1953,#2797,.T.); -#1856=EDGE_CURVE('',#2052,#1950,#2798,.T.); -#1857=EDGE_CURVE('',#2050,#1948,#2799,.T.); -#1858=EDGE_CURVE('',#2051,#2062,#2800,.T.); -#1859=EDGE_CURVE('',#1985,#2060,#2801,.T.); -#1860=EDGE_CURVE('',#2019,#2065,#2802,.T.); -#1861=EDGE_CURVE('',#2016,#2067,#2803,.T.); -#1862=EDGE_CURVE('',#2015,#2069,#2804,.T.); -#1863=EDGE_CURVE('',#2012,#2071,#2805,.T.); -#1864=EDGE_CURVE('',#2011,#2073,#2806,.T.); -#1865=EDGE_CURVE('',#2008,#2075,#2807,.T.); -#1866=EDGE_CURVE('',#2007,#2077,#2808,.T.); -#1867=EDGE_CURVE('',#2059,#2079,#2809,.T.); -#1868=VERTEX_POINT('',#5489); -#1869=VERTEX_POINT('',#5490); -#1870=VERTEX_POINT('',#5492); -#1871=VERTEX_POINT('',#5494); -#1872=VERTEX_POINT('',#5498); -#1873=VERTEX_POINT('',#5499); -#1874=VERTEX_POINT('',#5501); -#1875=VERTEX_POINT('',#5503); -#1876=VERTEX_POINT('',#5507); -#1877=VERTEX_POINT('',#5508); -#1878=VERTEX_POINT('',#5510); -#1879=VERTEX_POINT('',#5512); -#1880=VERTEX_POINT('',#5516); -#1881=VERTEX_POINT('',#5517); -#1882=VERTEX_POINT('',#5520); -#1883=VERTEX_POINT('',#5522); -#1884=VERTEX_POINT('',#5524); -#1885=VERTEX_POINT('',#5526); -#1886=VERTEX_POINT('',#5528); -#1887=VERTEX_POINT('',#5530); -#1888=VERTEX_POINT('',#5532); -#1889=VERTEX_POINT('',#5534); -#1890=VERTEX_POINT('',#5536); -#1891=VERTEX_POINT('',#5538); -#1892=VERTEX_POINT('',#5540); -#1893=VERTEX_POINT('',#5542); -#1894=VERTEX_POINT('',#5544); -#1895=VERTEX_POINT('',#5546); -#1896=VERTEX_POINT('',#5548); -#1897=VERTEX_POINT('',#5550); -#1898=VERTEX_POINT('',#5552); -#1899=VERTEX_POINT('',#5555); -#1900=VERTEX_POINT('',#5557); -#1901=VERTEX_POINT('',#5560); -#1902=VERTEX_POINT('',#5564); -#1903=VERTEX_POINT('',#5566); -#1904=VERTEX_POINT('',#5568); -#1905=VERTEX_POINT('',#5570); -#1906=VERTEX_POINT('',#5572); -#1907=VERTEX_POINT('',#5574); -#1908=VERTEX_POINT('',#5577); -#1909=VERTEX_POINT('',#5579); -#1910=VERTEX_POINT('',#5584); -#1911=VERTEX_POINT('',#5586); -#1912=VERTEX_POINT('',#5590); -#1913=VERTEX_POINT('',#5591); -#1914=VERTEX_POINT('',#5596); -#1915=VERTEX_POINT('',#5598); -#1916=VERTEX_POINT('',#5600); -#1917=VERTEX_POINT('',#5607); -#1918=VERTEX_POINT('',#5609); -#1919=VERTEX_POINT('',#5617); -#1920=VERTEX_POINT('',#5619); -#1921=VERTEX_POINT('',#5623); -#1922=VERTEX_POINT('',#5624); -#1923=VERTEX_POINT('',#5627); -#1924=VERTEX_POINT('',#5629); -#1925=VERTEX_POINT('',#5631); -#1926=VERTEX_POINT('',#5633); -#1927=VERTEX_POINT('',#5644); -#1928=VERTEX_POINT('',#5645); -#1929=VERTEX_POINT('',#5654); -#1930=VERTEX_POINT('',#5658); -#1931=VERTEX_POINT('',#5660); -#1932=VERTEX_POINT('',#5662); -#1933=VERTEX_POINT('',#5664); -#1934=VERTEX_POINT('',#5666); -#1935=VERTEX_POINT('',#5672); -#1936=VERTEX_POINT('',#5700); -#1937=VERTEX_POINT('',#5701); -#1938=VERTEX_POINT('',#5703); -#1939=VERTEX_POINT('',#5705); -#1940=VERTEX_POINT('',#5707); -#1941=VERTEX_POINT('',#5709); -#1942=VERTEX_POINT('',#5711); -#1943=VERTEX_POINT('',#5713); -#1944=VERTEX_POINT('',#5717); -#1945=VERTEX_POINT('',#5720); -#1946=VERTEX_POINT('',#5724); -#1947=VERTEX_POINT('',#5731); -#1948=VERTEX_POINT('',#5739); -#1949=VERTEX_POINT('',#5740); -#1950=VERTEX_POINT('',#5742); -#1951=VERTEX_POINT('',#5744); -#1952=VERTEX_POINT('',#5746); -#1953=VERTEX_POINT('',#5748); -#1954=VERTEX_POINT('',#5750); -#1955=VERTEX_POINT('',#5752); -#1956=VERTEX_POINT('',#5754); -#1957=VERTEX_POINT('',#5756); -#1958=VERTEX_POINT('',#5758); -#1959=VERTEX_POINT('',#5760); -#1960=VERTEX_POINT('',#5762); -#1961=VERTEX_POINT('',#5764); -#1962=VERTEX_POINT('',#5766); -#1963=VERTEX_POINT('',#5768); -#1964=VERTEX_POINT('',#5770); -#1965=VERTEX_POINT('',#5772); -#1966=VERTEX_POINT('',#5774); -#1967=VERTEX_POINT('',#5776); -#1968=VERTEX_POINT('',#5778); -#1969=VERTEX_POINT('',#5780); -#1970=VERTEX_POINT('',#5782); -#1971=VERTEX_POINT('',#5784); -#1972=VERTEX_POINT('',#5786); -#1973=VERTEX_POINT('',#5788); -#1974=VERTEX_POINT('',#5790); -#1975=VERTEX_POINT('',#5792); -#1976=VERTEX_POINT('',#5794); -#1977=VERTEX_POINT('',#5796); -#1978=VERTEX_POINT('',#5798); -#1979=VERTEX_POINT('',#5800); -#1980=VERTEX_POINT('',#5802); -#1981=VERTEX_POINT('',#5804); -#1982=VERTEX_POINT('',#5806); -#1983=VERTEX_POINT('',#5808); -#1984=VERTEX_POINT('',#5812); -#1985=VERTEX_POINT('',#5813); -#1986=VERTEX_POINT('',#5815); -#1987=VERTEX_POINT('',#5817); -#1988=VERTEX_POINT('',#5819); -#1989=VERTEX_POINT('',#5821); -#1990=VERTEX_POINT('',#5823); -#1991=VERTEX_POINT('',#5825); -#1992=VERTEX_POINT('',#5827); -#1993=VERTEX_POINT('',#5829); -#1994=VERTEX_POINT('',#5831); -#1995=VERTEX_POINT('',#5833); -#1996=VERTEX_POINT('',#5835); -#1997=VERTEX_POINT('',#5837); -#1998=VERTEX_POINT('',#5839); -#1999=VERTEX_POINT('',#5841); -#2000=VERTEX_POINT('',#5843); -#2001=VERTEX_POINT('',#5845); -#2002=VERTEX_POINT('',#5847); -#2003=VERTEX_POINT('',#5849); -#2004=VERTEX_POINT('',#5851); -#2005=VERTEX_POINT('',#5853); -#2006=VERTEX_POINT('',#5855); -#2007=VERTEX_POINT('',#5857); -#2008=VERTEX_POINT('',#5859); -#2009=VERTEX_POINT('',#5861); -#2010=VERTEX_POINT('',#5863); -#2011=VERTEX_POINT('',#5865); -#2012=VERTEX_POINT('',#5867); -#2013=VERTEX_POINT('',#5869); -#2014=VERTEX_POINT('',#5871); -#2015=VERTEX_POINT('',#5873); -#2016=VERTEX_POINT('',#5875); -#2017=VERTEX_POINT('',#5877); -#2018=VERTEX_POINT('',#5879); -#2019=VERTEX_POINT('',#5881); -#2020=VERTEX_POINT('',#5885); -#2021=VERTEX_POINT('',#5887); -#2022=VERTEX_POINT('',#5891); -#2023=VERTEX_POINT('',#5893); -#2024=VERTEX_POINT('',#5897); -#2025=VERTEX_POINT('',#5899); -#2026=VERTEX_POINT('',#5903); -#2027=VERTEX_POINT('',#5905); -#2028=VERTEX_POINT('',#5909); -#2029=VERTEX_POINT('',#5911); -#2030=VERTEX_POINT('',#5915); -#2031=VERTEX_POINT('',#5917); -#2032=VERTEX_POINT('',#5921); -#2033=VERTEX_POINT('',#5923); -#2034=VERTEX_POINT('',#5927); -#2035=VERTEX_POINT('',#5929); -#2036=VERTEX_POINT('',#5933); -#2037=VERTEX_POINT('',#5935); -#2038=VERTEX_POINT('',#5939); -#2039=VERTEX_POINT('',#5941); -#2040=VERTEX_POINT('',#5945); -#2041=VERTEX_POINT('',#5947); -#2042=VERTEX_POINT('',#5951); -#2043=VERTEX_POINT('',#5953); -#2044=VERTEX_POINT('',#5957); -#2045=VERTEX_POINT('',#5959); -#2046=VERTEX_POINT('',#5963); -#2047=VERTEX_POINT('',#5965); -#2048=VERTEX_POINT('',#5969); -#2049=VERTEX_POINT('',#5971); -#2050=VERTEX_POINT('',#5975); -#2051=VERTEX_POINT('',#5977); -#2052=VERTEX_POINT('',#5981); -#2053=VERTEX_POINT('',#5983); -#2054=VERTEX_POINT('',#5987); -#2055=VERTEX_POINT('',#5989); -#2056=VERTEX_POINT('',#5993); -#2057=VERTEX_POINT('',#5995); -#2058=VERTEX_POINT('',#5999); -#2059=VERTEX_POINT('',#6001); -#2060=VERTEX_POINT('',#6005); -#2061=VERTEX_POINT('',#6006); -#2062=VERTEX_POINT('',#6008); -#2063=VERTEX_POINT('',#6010); -#2064=VERTEX_POINT('',#6014); -#2065=VERTEX_POINT('',#6015); -#2066=VERTEX_POINT('',#6017); -#2067=VERTEX_POINT('',#6019); -#2068=VERTEX_POINT('',#6023); -#2069=VERTEX_POINT('',#6024); -#2070=VERTEX_POINT('',#6026); -#2071=VERTEX_POINT('',#6028); -#2072=VERTEX_POINT('',#6032); -#2073=VERTEX_POINT('',#6033); -#2074=VERTEX_POINT('',#6035); -#2075=VERTEX_POINT('',#6037); -#2076=VERTEX_POINT('',#6041); -#2077=VERTEX_POINT('',#6042); -#2078=VERTEX_POINT('',#6044); -#2079=VERTEX_POINT('',#6046); -#2080=VERTEX_POINT('',#6050); -#2081=VERTEX_POINT('',#6052); -#2082=VERTEX_POINT('',#6056); -#2083=VERTEX_POINT('',#6058); -#2084=VERTEX_POINT('',#6062); -#2085=VERTEX_POINT('',#6064); -#2086=VERTEX_POINT('',#6068); -#2087=VERTEX_POINT('',#6070); -#2088=VERTEX_POINT('',#6074); -#2089=VERTEX_POINT('',#6076); -#2090=VERTEX_POINT('',#6080); -#2091=VERTEX_POINT('',#6082); -#2092=VERTEX_POINT('',#6086); -#2093=VERTEX_POINT('',#6088); -#2094=VERTEX_POINT('',#6092); -#2095=VERTEX_POINT('',#6094); -#2096=VERTEX_POINT('',#6098); -#2097=VERTEX_POINT('',#6100); -#2098=VERTEX_POINT('',#6104); -#2099=VERTEX_POINT('',#6106); -#2100=VERTEX_POINT('',#6125); -#2101=VERTEX_POINT('',#6126); -#2102=VERTEX_POINT('',#6128); -#2103=VERTEX_POINT('',#6130); -#2104=VERTEX_POINT('',#6134); -#2105=VERTEX_POINT('',#6135); -#2106=VERTEX_POINT('',#6137); -#2107=VERTEX_POINT('',#6139); -#2108=VERTEX_POINT('',#6143); -#2109=VERTEX_POINT('',#6144); -#2110=VERTEX_POINT('',#6146); -#2111=VERTEX_POINT('',#6148); -#2112=VERTEX_POINT('',#6152); -#2113=VERTEX_POINT('',#6153); -#2114=VERTEX_POINT('',#6155); -#2115=VERTEX_POINT('',#6157); -#2116=VERTEX_POINT('',#6161); -#2117=VERTEX_POINT('',#6162); -#2118=VERTEX_POINT('',#6164); -#2119=VERTEX_POINT('',#6166); -#2120=VERTEX_POINT('',#6170); -#2121=VERTEX_POINT('',#6172); -#2122=VERTEX_POINT('',#6176); -#2123=VERTEX_POINT('',#6178); -#2124=VERTEX_POINT('',#6182); -#2125=VERTEX_POINT('',#6184); -#2126=VERTEX_POINT('',#6188); -#2127=VERTEX_POINT('',#6190); -#2128=VERTEX_POINT('',#6194); -#2129=VERTEX_POINT('',#6196); -#2130=VERTEX_POINT('',#6200); -#2131=VERTEX_POINT('',#6202); -#2132=VERTEX_POINT('',#6206); -#2133=VERTEX_POINT('',#6208); -#2134=VERTEX_POINT('',#6212); -#2135=VERTEX_POINT('',#6214); -#2136=VERTEX_POINT('',#6218); -#2137=VERTEX_POINT('',#6220); -#2138=VERTEX_POINT('',#6224); -#2139=VERTEX_POINT('',#6226); -#2140=VERTEX_POINT('',#6230); -#2141=VERTEX_POINT('',#6232); -#2142=VERTEX_POINT('',#6236); -#2143=VERTEX_POINT('',#6238); -#2144=VERTEX_POINT('',#6242); -#2145=VERTEX_POINT('',#6244); -#2146=VERTEX_POINT('',#6248); -#2147=VERTEX_POINT('',#6250); -#2148=VERTEX_POINT('',#6254); -#2149=VERTEX_POINT('',#6256); -#2150=VERTEX_POINT('',#6260); -#2151=VERTEX_POINT('',#6262); -#2152=VERTEX_POINT('',#6266); -#2153=VERTEX_POINT('',#6268); -#2154=VERTEX_POINT('',#6272); -#2155=VERTEX_POINT('',#6274); -#2156=VERTEX_POINT('',#6278); -#2157=VERTEX_POINT('',#6280); -#2158=VERTEX_POINT('',#6284); -#2159=VERTEX_POINT('',#6286); -#2160=VERTEX_POINT('',#6290); -#2161=VERTEX_POINT('',#6291); -#2162=VERTEX_POINT('',#6293); -#2163=VERTEX_POINT('',#6295); -#2164=VERTEX_POINT('',#6299); -#2165=VERTEX_POINT('',#6300); -#2166=VERTEX_POINT('',#6302); -#2167=VERTEX_POINT('',#6304); -#2168=VERTEX_POINT('',#6308); -#2169=VERTEX_POINT('',#6309); -#2170=VERTEX_POINT('',#6311); -#2171=VERTEX_POINT('',#6313); -#2172=VERTEX_POINT('',#6317); -#2173=VERTEX_POINT('',#6318); -#2174=VERTEX_POINT('',#6320); -#2175=VERTEX_POINT('',#6322); -#2176=VERTEX_POINT('',#6326); -#2177=VERTEX_POINT('',#6327); -#2178=VERTEX_POINT('',#6329); -#2179=VERTEX_POINT('',#6331); -#2180=VERTEX_POINT('',#6335); -#2181=VERTEX_POINT('',#6337); -#2182=VERTEX_POINT('',#6341); -#2183=VERTEX_POINT('',#6343); -#2184=VERTEX_POINT('',#6347); -#2185=VERTEX_POINT('',#6349); -#2186=VERTEX_POINT('',#6353); -#2187=VERTEX_POINT('',#6355); -#2188=VERTEX_POINT('',#6359); -#2189=VERTEX_POINT('',#6361); -#2190=VERTEX_POINT('',#6365); -#2191=VERTEX_POINT('',#6367); -#2192=VERTEX_POINT('',#6371); -#2193=VERTEX_POINT('',#6373); -#2194=VERTEX_POINT('',#6377); -#2195=VERTEX_POINT('',#6379); -#2196=VERTEX_POINT('',#6383); -#2197=VERTEX_POINT('',#6385); -#2198=VERTEX_POINT('',#6389); -#2199=VERTEX_POINT('',#6391); -#2200=VERTEX_POINT('',#6395); -#2201=VERTEX_POINT('',#6397); -#2202=VERTEX_POINT('',#6401); -#2203=VERTEX_POINT('',#6403); -#2204=VERTEX_POINT('',#6407); -#2205=VERTEX_POINT('',#6409); -#2206=VERTEX_POINT('',#6413); -#2207=VERTEX_POINT('',#6415); -#2208=VERTEX_POINT('',#6419); -#2209=VERTEX_POINT('',#6421); -#2210=VERTEX_POINT('',#6425); -#2211=VERTEX_POINT('',#6427); -#2212=VERTEX_POINT('',#6431); -#2213=VERTEX_POINT('',#6433); -#2214=VERTEX_POINT('',#6437); -#2215=VERTEX_POINT('',#6439); -#2216=VERTEX_POINT('',#6443); -#2217=VERTEX_POINT('',#6445); -#2218=VERTEX_POINT('',#6449); -#2219=VERTEX_POINT('',#6451); -#2220=VERTEX_POINT('',#6455); -#2221=VERTEX_POINT('',#6457); -#2222=VERTEX_POINT('',#6461); -#2223=VERTEX_POINT('',#6463); -#2224=VERTEX_POINT('',#6467); -#2225=VERTEX_POINT('',#6469); -#2226=VERTEX_POINT('',#6473); -#2227=VERTEX_POINT('',#6475); -#2228=VERTEX_POINT('',#6479); -#2229=VERTEX_POINT('',#6481); -#2230=VERTEX_POINT('',#6485); -#2231=VERTEX_POINT('',#6487); -#2232=VERTEX_POINT('',#6491); -#2233=VERTEX_POINT('',#6493); -#2234=VERTEX_POINT('',#6497); -#2235=VERTEX_POINT('',#6499); -#2236=VERTEX_POINT('',#6503); -#2237=VERTEX_POINT('',#6505); -#2238=VERTEX_POINT('',#6509); -#2239=VERTEX_POINT('',#6511); -#2240=VERTEX_POINT('',#6530); -#2241=VERTEX_POINT('',#6532); -#2242=VERTEX_POINT('',#6536); -#2243=VERTEX_POINT('',#6537); -#2244=VERTEX_POINT('',#6542); -#2245=VERTEX_POINT('',#6543); -#2246=VERTEX_POINT('',#6548); -#2247=VERTEX_POINT('',#6549); -#2248=VERTEX_POINT('',#6554); -#2249=VERTEX_POINT('',#6555); -#2250=VERTEX_POINT('',#6560); -#2251=VERTEX_POINT('',#6562); -#2252=VERTEX_POINT('',#6566); -#2253=VERTEX_POINT('',#6568); -#2254=VERTEX_POINT('',#6572); -#2255=VERTEX_POINT('',#6574); -#2256=VERTEX_POINT('',#6578); -#2257=VERTEX_POINT('',#6580); -#2258=VERTEX_POINT('',#6584); -#2259=VERTEX_POINT('',#6586); -#2260=LINE('',#5488,#2810); -#2261=LINE('',#5491,#2811); -#2262=LINE('',#5493,#2812); -#2263=LINE('',#5495,#2813); -#2264=LINE('',#5497,#2814); -#2265=LINE('',#5500,#2815); -#2266=LINE('',#5502,#2816); -#2267=LINE('',#5504,#2817); -#2268=LINE('',#5506,#2818); -#2269=LINE('',#5509,#2819); -#2270=LINE('',#5511,#2820); -#2271=LINE('',#5513,#2821); -#2272=LINE('',#5515,#2822); -#2273=LINE('',#5518,#2823); -#2274=LINE('',#5519,#2824); -#2275=LINE('',#5521,#2825); -#2276=LINE('',#5523,#2826); -#2277=LINE('',#5525,#2827); -#2278=LINE('',#5527,#2828); -#2279=LINE('',#5529,#2829); -#2280=LINE('',#5531,#2830); -#2281=LINE('',#5533,#2831); -#2282=LINE('',#5535,#2832); -#2283=LINE('',#5537,#2833); -#2284=LINE('',#5539,#2834); -#2285=LINE('',#5541,#2835); -#2286=LINE('',#5543,#2836); -#2287=LINE('',#5545,#2837); -#2288=LINE('',#5547,#2838); -#2289=LINE('',#5549,#2839); -#2290=LINE('',#5551,#2840); -#2291=LINE('',#5553,#2841); -#2292=LINE('',#5554,#2842); -#2293=LINE('',#5556,#2843); -#2294=LINE('',#5558,#2844); -#2295=LINE('',#5559,#2845); -#2296=LINE('',#5561,#2846); -#2297=LINE('',#5563,#2847); -#2298=LINE('',#5565,#2848); -#2299=LINE('',#5567,#2849); -#2300=LINE('',#5569,#2850); -#2301=LINE('',#5571,#2851); -#2302=LINE('',#5573,#2852); -#2303=LINE('',#5575,#2853); -#2304=LINE('',#5576,#2854); -#2305=LINE('',#5578,#2855); -#2306=LINE('',#5580,#2856); -#2307=LINE('',#5581,#2857); -#2308=LINE('',#5583,#2858); -#2309=LINE('',#5585,#2859); -#2310=LINE('',#5587,#2860); -#2311=LINE('',#5589,#2861); -#2312=LINE('',#5592,#2862); -#2313=LINE('',#5593,#2863); -#2314=LINE('',#5595,#2864); -#2315=LINE('',#5597,#2865); -#2316=LINE('',#5599,#2866); -#2317=LINE('',#5601,#2867); -#2318=LINE('',#5602,#2868); -#2319=LINE('',#5604,#2869); -#2320=LINE('',#5606,#2870); -#2321=LINE('',#5608,#2871); -#2322=LINE('',#5610,#2872); -#2323=LINE('',#5612,#2873); -#2324=LINE('',#5614,#2874); -#2325=LINE('',#5616,#2875); -#2326=LINE('',#5618,#2876); -#2327=LINE('',#5620,#2877); -#2328=LINE('',#5622,#2878); -#2329=LINE('',#5625,#2879); -#2330=LINE('',#5626,#2880); -#2331=LINE('',#5628,#2881); -#2332=LINE('',#5630,#2882); -#2333=LINE('',#5632,#2883); -#2334=LINE('',#5634,#2884); -#2335=LINE('',#5636,#2885); -#2336=LINE('',#5637,#2886); -#2337=LINE('',#5639,#2887); -#2338=LINE('',#5641,#2888); -#2339=LINE('',#5643,#2889); -#2340=LINE('',#5646,#2890); -#2341=LINE('',#5647,#2891); -#2342=LINE('',#5649,#2892); -#2343=LINE('',#5651,#2893); -#2344=LINE('',#5653,#2894); -#2345=LINE('',#5655,#2895); -#2346=LINE('',#5657,#2896); -#2347=LINE('',#5659,#2897); -#2348=LINE('',#5661,#2898); -#2349=LINE('',#5663,#2899); -#2350=LINE('',#5665,#2900); -#2351=LINE('',#5667,#2901); -#2352=LINE('',#5669,#2902); -#2353=LINE('',#5671,#2903); -#2354=LINE('',#5673,#2904); -#2355=LINE('',#5675,#2905); -#2356=LINE('',#5678,#2906); -#2357=LINE('',#5680,#2907); -#2358=LINE('',#5681,#2908); -#2359=LINE('',#5684,#2909); -#2360=LINE('',#5687,#2910); -#2361=LINE('',#5690,#2911); -#2362=LINE('',#5693,#2912); -#2363=LINE('',#5695,#2913); -#2364=LINE('',#5699,#2914); -#2365=LINE('',#5702,#2915); -#2366=LINE('',#5704,#2916); -#2367=LINE('',#5706,#2917); -#2368=LINE('',#5708,#2918); -#2369=LINE('',#5710,#2919); -#2370=LINE('',#5712,#2920); -#2371=LINE('',#5714,#2921); -#2372=LINE('',#5716,#2922); -#2373=LINE('',#5718,#2923); -#2374=LINE('',#5719,#2924); -#2375=LINE('',#5721,#2925); -#2376=LINE('',#5723,#2926); -#2377=LINE('',#5725,#2927); -#2378=LINE('',#5727,#2928); -#2379=LINE('',#5730,#2929); -#2380=LINE('',#5732,#2930); -#2381=LINE('',#5734,#2931); -#2382=LINE('',#5738,#2932); -#2383=LINE('',#5741,#2933); -#2384=LINE('',#5743,#2934); -#2385=LINE('',#5745,#2935); -#2386=LINE('',#5747,#2936); -#2387=LINE('',#5749,#2937); -#2388=LINE('',#5751,#2938); -#2389=LINE('',#5753,#2939); -#2390=LINE('',#5755,#2940); -#2391=LINE('',#5757,#2941); -#2392=LINE('',#5759,#2942); -#2393=LINE('',#5761,#2943); -#2394=LINE('',#5763,#2944); -#2395=LINE('',#5765,#2945); -#2396=LINE('',#5767,#2946); -#2397=LINE('',#5769,#2947); -#2398=LINE('',#5771,#2948); -#2399=LINE('',#5773,#2949); -#2400=LINE('',#5775,#2950); -#2401=LINE('',#5777,#2951); -#2402=LINE('',#5779,#2952); -#2403=LINE('',#5781,#2953); -#2404=LINE('',#5783,#2954); -#2405=LINE('',#5785,#2955); -#2406=LINE('',#5787,#2956); -#2407=LINE('',#5789,#2957); -#2408=LINE('',#5791,#2958); -#2409=LINE('',#5793,#2959); -#2410=LINE('',#5795,#2960); -#2411=LINE('',#5797,#2961); -#2412=LINE('',#5799,#2962); -#2413=LINE('',#5801,#2963); -#2414=LINE('',#5803,#2964); -#2415=LINE('',#5805,#2965); -#2416=LINE('',#5807,#2966); -#2417=LINE('',#5809,#2967); -#2418=LINE('',#5811,#2968); -#2419=LINE('',#5814,#2969); -#2420=LINE('',#5816,#2970); -#2421=LINE('',#5818,#2971); -#2422=LINE('',#5820,#2972); -#2423=LINE('',#5822,#2973); -#2424=LINE('',#5824,#2974); -#2425=LINE('',#5826,#2975); -#2426=LINE('',#5828,#2976); -#2427=LINE('',#5830,#2977); -#2428=LINE('',#5832,#2978); -#2429=LINE('',#5834,#2979); -#2430=LINE('',#5836,#2980); -#2431=LINE('',#5838,#2981); -#2432=LINE('',#5840,#2982); -#2433=LINE('',#5842,#2983); -#2434=LINE('',#5844,#2984); -#2435=LINE('',#5846,#2985); -#2436=LINE('',#5848,#2986); -#2437=LINE('',#5850,#2987); -#2438=LINE('',#5852,#2988); -#2439=LINE('',#5854,#2989); -#2440=LINE('',#5856,#2990); -#2441=LINE('',#5858,#2991); -#2442=LINE('',#5860,#2992); -#2443=LINE('',#5862,#2993); -#2444=LINE('',#5864,#2994); -#2445=LINE('',#5866,#2995); -#2446=LINE('',#5868,#2996); -#2447=LINE('',#5870,#2997); -#2448=LINE('',#5872,#2998); -#2449=LINE('',#5874,#2999); -#2450=LINE('',#5876,#3000); -#2451=LINE('',#5878,#3001); -#2452=LINE('',#5880,#3002); -#2453=LINE('',#5882,#3003); -#2454=LINE('',#5884,#3004); -#2455=LINE('',#5886,#3005); -#2456=LINE('',#5888,#3006); -#2457=LINE('',#5890,#3007); -#2458=LINE('',#5892,#3008); -#2459=LINE('',#5894,#3009); -#2460=LINE('',#5896,#3010); -#2461=LINE('',#5898,#3011); -#2462=LINE('',#5900,#3012); -#2463=LINE('',#5902,#3013); -#2464=LINE('',#5904,#3014); -#2465=LINE('',#5906,#3015); -#2466=LINE('',#5908,#3016); -#2467=LINE('',#5910,#3017); -#2468=LINE('',#5912,#3018); -#2469=LINE('',#5914,#3019); -#2470=LINE('',#5916,#3020); -#2471=LINE('',#5918,#3021); -#2472=LINE('',#5920,#3022); -#2473=LINE('',#5922,#3023); -#2474=LINE('',#5924,#3024); -#2475=LINE('',#5926,#3025); -#2476=LINE('',#5928,#3026); -#2477=LINE('',#5930,#3027); -#2478=LINE('',#5932,#3028); -#2479=LINE('',#5934,#3029); -#2480=LINE('',#5936,#3030); -#2481=LINE('',#5938,#3031); -#2482=LINE('',#5940,#3032); -#2483=LINE('',#5942,#3033); -#2484=LINE('',#5944,#3034); -#2485=LINE('',#5946,#3035); -#2486=LINE('',#5948,#3036); -#2487=LINE('',#5950,#3037); -#2488=LINE('',#5952,#3038); -#2489=LINE('',#5954,#3039); -#2490=LINE('',#5956,#3040); -#2491=LINE('',#5958,#3041); -#2492=LINE('',#5960,#3042); -#2493=LINE('',#5962,#3043); -#2494=LINE('',#5964,#3044); -#2495=LINE('',#5966,#3045); -#2496=LINE('',#5968,#3046); -#2497=LINE('',#5970,#3047); -#2498=LINE('',#5972,#3048); -#2499=LINE('',#5974,#3049); -#2500=LINE('',#5976,#3050); -#2501=LINE('',#5978,#3051); -#2502=LINE('',#5980,#3052); -#2503=LINE('',#5982,#3053); -#2504=LINE('',#5984,#3054); -#2505=LINE('',#5986,#3055); -#2506=LINE('',#5988,#3056); -#2507=LINE('',#5990,#3057); -#2508=LINE('',#5992,#3058); -#2509=LINE('',#5994,#3059); -#2510=LINE('',#5996,#3060); -#2511=LINE('',#5998,#3061); -#2512=LINE('',#6000,#3062); -#2513=LINE('',#6002,#3063); -#2514=LINE('',#6004,#3064); -#2515=LINE('',#6007,#3065); -#2516=LINE('',#6009,#3066); -#2517=LINE('',#6011,#3067); -#2518=LINE('',#6013,#3068); -#2519=LINE('',#6016,#3069); -#2520=LINE('',#6018,#3070); -#2521=LINE('',#6020,#3071); -#2522=LINE('',#6022,#3072); -#2523=LINE('',#6025,#3073); -#2524=LINE('',#6027,#3074); -#2525=LINE('',#6029,#3075); -#2526=LINE('',#6031,#3076); -#2527=LINE('',#6034,#3077); -#2528=LINE('',#6036,#3078); -#2529=LINE('',#6038,#3079); -#2530=LINE('',#6040,#3080); -#2531=LINE('',#6043,#3081); -#2532=LINE('',#6045,#3082); -#2533=LINE('',#6047,#3083); -#2534=LINE('',#6049,#3084); -#2535=LINE('',#6051,#3085); -#2536=LINE('',#6053,#3086); -#2537=LINE('',#6055,#3087); -#2538=LINE('',#6057,#3088); -#2539=LINE('',#6059,#3089); -#2540=LINE('',#6061,#3090); -#2541=LINE('',#6063,#3091); -#2542=LINE('',#6065,#3092); -#2543=LINE('',#6067,#3093); -#2544=LINE('',#6069,#3094); -#2545=LINE('',#6071,#3095); -#2546=LINE('',#6073,#3096); -#2547=LINE('',#6075,#3097); -#2548=LINE('',#6077,#3098); -#2549=LINE('',#6079,#3099); -#2550=LINE('',#6081,#3100); -#2551=LINE('',#6083,#3101); -#2552=LINE('',#6085,#3102); -#2553=LINE('',#6087,#3103); -#2554=LINE('',#6089,#3104); -#2555=LINE('',#6091,#3105); -#2556=LINE('',#6093,#3106); -#2557=LINE('',#6095,#3107); -#2558=LINE('',#6097,#3108); -#2559=LINE('',#6099,#3109); -#2560=LINE('',#6101,#3110); -#2561=LINE('',#6103,#3111); -#2562=LINE('',#6105,#3112); -#2563=LINE('',#6107,#3113); -#2564=LINE('',#6109,#3114); -#2565=LINE('',#6110,#3115); -#2566=LINE('',#6112,#3116); -#2567=LINE('',#6113,#3117); -#2568=LINE('',#6115,#3118); -#2569=LINE('',#6116,#3119); -#2570=LINE('',#6118,#3120); -#2571=LINE('',#6119,#3121); -#2572=LINE('',#6121,#3122); -#2573=LINE('',#6122,#3123); -#2574=LINE('',#6124,#3124); -#2575=LINE('',#6127,#3125); -#2576=LINE('',#6129,#3126); -#2577=LINE('',#6131,#3127); -#2578=LINE('',#6133,#3128); -#2579=LINE('',#6136,#3129); -#2580=LINE('',#6138,#3130); -#2581=LINE('',#6140,#3131); -#2582=LINE('',#6142,#3132); -#2583=LINE('',#6145,#3133); -#2584=LINE('',#6147,#3134); -#2585=LINE('',#6149,#3135); -#2586=LINE('',#6151,#3136); -#2587=LINE('',#6154,#3137); -#2588=LINE('',#6156,#3138); -#2589=LINE('',#6158,#3139); -#2590=LINE('',#6160,#3140); -#2591=LINE('',#6163,#3141); -#2592=LINE('',#6165,#3142); -#2593=LINE('',#6167,#3143); -#2594=LINE('',#6169,#3144); -#2595=LINE('',#6171,#3145); -#2596=LINE('',#6173,#3146); -#2597=LINE('',#6175,#3147); -#2598=LINE('',#6177,#3148); -#2599=LINE('',#6179,#3149); -#2600=LINE('',#6181,#3150); -#2601=LINE('',#6183,#3151); -#2602=LINE('',#6185,#3152); -#2603=LINE('',#6187,#3153); -#2604=LINE('',#6189,#3154); -#2605=LINE('',#6191,#3155); -#2606=LINE('',#6193,#3156); -#2607=LINE('',#6195,#3157); -#2608=LINE('',#6197,#3158); -#2609=LINE('',#6199,#3159); -#2610=LINE('',#6201,#3160); -#2611=LINE('',#6203,#3161); -#2612=LINE('',#6205,#3162); -#2613=LINE('',#6207,#3163); -#2614=LINE('',#6209,#3164); -#2615=LINE('',#6211,#3165); -#2616=LINE('',#6213,#3166); -#2617=LINE('',#6215,#3167); -#2618=LINE('',#6217,#3168); -#2619=LINE('',#6219,#3169); -#2620=LINE('',#6221,#3170); -#2621=LINE('',#6223,#3171); -#2622=LINE('',#6225,#3172); -#2623=LINE('',#6227,#3173); -#2624=LINE('',#6231,#3174); -#2625=LINE('',#6239,#3175); -#2626=LINE('',#6245,#3176); -#2627=LINE('',#6251,#3177); -#2628=LINE('',#6257,#3178); -#2629=LINE('',#6259,#3179); -#2630=LINE('',#6261,#3180); -#2631=LINE('',#6263,#3181); -#2632=LINE('',#6265,#3182); -#2633=LINE('',#6267,#3183); -#2634=LINE('',#6269,#3184); -#2635=LINE('',#6271,#3185); -#2636=LINE('',#6273,#3186); -#2637=LINE('',#6275,#3187); -#2638=LINE('',#6277,#3188); -#2639=LINE('',#6279,#3189); -#2640=LINE('',#6281,#3190); -#2641=LINE('',#6283,#3191); -#2642=LINE('',#6285,#3192); -#2643=LINE('',#6287,#3193); -#2644=LINE('',#6289,#3194); -#2645=LINE('',#6292,#3195); -#2646=LINE('',#6294,#3196); -#2647=LINE('',#6296,#3197); -#2648=LINE('',#6298,#3198); -#2649=LINE('',#6301,#3199); -#2650=LINE('',#6303,#3200); -#2651=LINE('',#6305,#3201); -#2652=LINE('',#6307,#3202); -#2653=LINE('',#6310,#3203); -#2654=LINE('',#6312,#3204); -#2655=LINE('',#6314,#3205); -#2656=LINE('',#6316,#3206); -#2657=LINE('',#6319,#3207); -#2658=LINE('',#6321,#3208); -#2659=LINE('',#6323,#3209); -#2660=LINE('',#6325,#3210); -#2661=LINE('',#6328,#3211); -#2662=LINE('',#6330,#3212); -#2663=LINE('',#6332,#3213); -#2664=LINE('',#6336,#3214); -#2665=LINE('',#6344,#3215); -#2666=LINE('',#6350,#3216); -#2667=LINE('',#6356,#3217); -#2668=LINE('',#6362,#3218); -#2669=LINE('',#6364,#3219); -#2670=LINE('',#6366,#3220); -#2671=LINE('',#6368,#3221); -#2672=LINE('',#6370,#3222); -#2673=LINE('',#6372,#3223); -#2674=LINE('',#6374,#3224); -#2675=LINE('',#6376,#3225); -#2676=LINE('',#6378,#3226); -#2677=LINE('',#6380,#3227); -#2678=LINE('',#6382,#3228); -#2679=LINE('',#6384,#3229); -#2680=LINE('',#6386,#3230); -#2681=LINE('',#6388,#3231); -#2682=LINE('',#6390,#3232); -#2683=LINE('',#6392,#3233); -#2684=LINE('',#6394,#3234); -#2685=LINE('',#6396,#3235); -#2686=LINE('',#6398,#3236); -#2687=LINE('',#6400,#3237); -#2688=LINE('',#6402,#3238); -#2689=LINE('',#6404,#3239); -#2690=LINE('',#6406,#3240); -#2691=LINE('',#6408,#3241); -#2692=LINE('',#6410,#3242); -#2693=LINE('',#6412,#3243); -#2694=LINE('',#6414,#3244); -#2695=LINE('',#6416,#3245); -#2696=LINE('',#6418,#3246); -#2697=LINE('',#6420,#3247); -#2698=LINE('',#6422,#3248); -#2699=LINE('',#6424,#3249); -#2700=LINE('',#6426,#3250); -#2701=LINE('',#6428,#3251); -#2702=LINE('',#6430,#3252); -#2703=LINE('',#6432,#3253); -#2704=LINE('',#6434,#3254); -#2705=LINE('',#6436,#3255); -#2706=LINE('',#6438,#3256); -#2707=LINE('',#6440,#3257); -#2708=LINE('',#6442,#3258); -#2709=LINE('',#6444,#3259); -#2710=LINE('',#6446,#3260); -#2711=LINE('',#6448,#3261); -#2712=LINE('',#6450,#3262); -#2713=LINE('',#6452,#3263); -#2714=LINE('',#6454,#3264); -#2715=LINE('',#6456,#3265); -#2716=LINE('',#6458,#3266); -#2717=LINE('',#6460,#3267); -#2718=LINE('',#6462,#3268); -#2719=LINE('',#6464,#3269); -#2720=LINE('',#6466,#3270); -#2721=LINE('',#6468,#3271); -#2722=LINE('',#6470,#3272); -#2723=LINE('',#6472,#3273); -#2724=LINE('',#6474,#3274); -#2725=LINE('',#6476,#3275); -#2726=LINE('',#6478,#3276); -#2727=LINE('',#6480,#3277); -#2728=LINE('',#6482,#3278); -#2729=LINE('',#6484,#3279); -#2730=LINE('',#6486,#3280); -#2731=LINE('',#6488,#3281); -#2732=LINE('',#6490,#3282); -#2733=LINE('',#6492,#3283); -#2734=LINE('',#6494,#3284); -#2735=LINE('',#6496,#3285); -#2736=LINE('',#6498,#3286); -#2737=LINE('',#6500,#3287); -#2738=LINE('',#6502,#3288); -#2739=LINE('',#6504,#3289); -#2740=LINE('',#6506,#3290); -#2741=LINE('',#6508,#3291); -#2742=LINE('',#6510,#3292); -#2743=LINE('',#6512,#3293); -#2744=LINE('',#6531,#3294); -#2745=LINE('',#6535,#3295); -#2746=LINE('',#6541,#3296); -#2747=LINE('',#6547,#3297); -#2748=LINE('',#6553,#3298); -#2749=LINE('',#6559,#3299); -#2750=LINE('',#6561,#3300); -#2751=LINE('',#6563,#3301); -#2752=LINE('',#6565,#3302); -#2753=LINE('',#6567,#3303); -#2754=LINE('',#6569,#3304); -#2755=LINE('',#6571,#3305); -#2756=LINE('',#6573,#3306); -#2757=LINE('',#6575,#3307); -#2758=LINE('',#6577,#3308); -#2759=LINE('',#6579,#3309); -#2760=LINE('',#6581,#3310); -#2761=LINE('',#6583,#3311); -#2762=LINE('',#6585,#3312); -#2763=LINE('',#6587,#3313); -#2764=LINE('',#6589,#3314); -#2765=LINE('',#6590,#3315); -#2766=LINE('',#6592,#3316); -#2767=LINE('',#6593,#3317); -#2768=LINE('',#6595,#3318); -#2769=LINE('',#6596,#3319); -#2770=LINE('',#6598,#3320); -#2771=LINE('',#6599,#3321); -#2772=LINE('',#6601,#3322); -#2773=LINE('',#6602,#3323); -#2774=LINE('',#6604,#3324); -#2775=LINE('',#6605,#3325); -#2776=LINE('',#6606,#3326); -#2777=LINE('',#6607,#3327); -#2778=LINE('',#6608,#3328); -#2779=LINE('',#6609,#3329); -#2780=LINE('',#6610,#3330); -#2781=LINE('',#6611,#3331); -#2782=LINE('',#6612,#3332); -#2783=LINE('',#6613,#3333); -#2784=LINE('',#6614,#3334); -#2785=LINE('',#6615,#3335); -#2786=LINE('',#6616,#3336); -#2787=LINE('',#6617,#3337); -#2788=LINE('',#6618,#3338); -#2789=LINE('',#6619,#3339); -#2790=LINE('',#6620,#3340); -#2791=LINE('',#6621,#3341); -#2792=LINE('',#6623,#3342); -#2793=LINE('',#6624,#3343); -#2794=LINE('',#6625,#3344); -#2795=LINE('',#6626,#3345); -#2796=LINE('',#6627,#3346); -#2797=LINE('',#6628,#3347); -#2798=LINE('',#6629,#3348); -#2799=LINE('',#6630,#3349); -#2800=LINE('',#6631,#3350); -#2801=LINE('',#6632,#3351); -#2802=LINE('',#6633,#3352); -#2803=LINE('',#6634,#3353); -#2804=LINE('',#6635,#3354); -#2805=LINE('',#6636,#3355); -#2806=LINE('',#6637,#3356); -#2807=LINE('',#6638,#3357); -#2808=LINE('',#6639,#3358); -#2809=LINE('',#6640,#3359); -#2810=VECTOR('',#4444,39.3700787401575); -#2811=VECTOR('',#4445,39.3700787401575); -#2812=VECTOR('',#4446,39.3700787401575); -#2813=VECTOR('',#4447,39.3700787401575); -#2814=VECTOR('',#4450,39.3700787401575); -#2815=VECTOR('',#4451,39.3700787401575); -#2816=VECTOR('',#4452,39.3700787401575); -#2817=VECTOR('',#4453,39.3700787401575); -#2818=VECTOR('',#4456,39.3700787401575); -#2819=VECTOR('',#4457,39.3700787401575); -#2820=VECTOR('',#4458,39.3700787401575); -#2821=VECTOR('',#4459,39.3700787401575); -#2822=VECTOR('',#4462,39.3700787401575); -#2823=VECTOR('',#4463,39.3700787401575); -#2824=VECTOR('',#4464,39.3700787401575); -#2825=VECTOR('',#4465,39.3700787401575); -#2826=VECTOR('',#4466,39.3700787401575); -#2827=VECTOR('',#4467,39.3700787401575); -#2828=VECTOR('',#4468,39.3700787401575); -#2829=VECTOR('',#4469,39.3700787401575); -#2830=VECTOR('',#4470,39.3700787401575); -#2831=VECTOR('',#4471,39.3700787401575); -#2832=VECTOR('',#4472,39.3700787401575); -#2833=VECTOR('',#4473,39.3700787401575); -#2834=VECTOR('',#4474,39.3700787401575); -#2835=VECTOR('',#4475,39.3700787401575); -#2836=VECTOR('',#4476,39.3700787401575); -#2837=VECTOR('',#4477,39.3700787401575); -#2838=VECTOR('',#4478,39.3700787401575); -#2839=VECTOR('',#4479,39.3700787401575); -#2840=VECTOR('',#4480,39.3700787401575); -#2841=VECTOR('',#4481,39.3700787401575); -#2842=VECTOR('',#4482,39.3700787401575); -#2843=VECTOR('',#4483,39.3700787401575); -#2844=VECTOR('',#4484,39.3700787401575); -#2845=VECTOR('',#4485,39.3700787401575); -#2846=VECTOR('',#4486,39.3700787401575); -#2847=VECTOR('',#4489,39.3700787401575); -#2848=VECTOR('',#4490,39.3700787401575); -#2849=VECTOR('',#4491,39.3700787401575); -#2850=VECTOR('',#4492,39.3700787401575); -#2851=VECTOR('',#4493,39.3700787401575); -#2852=VECTOR('',#4494,39.3700787401575); -#2853=VECTOR('',#4495,39.3700787401575); -#2854=VECTOR('',#4496,39.3700787401575); -#2855=VECTOR('',#4497,39.3700787401575); -#2856=VECTOR('',#4498,39.3700787401575); -#2857=VECTOR('',#4499,39.3700787401575); -#2858=VECTOR('',#4502,39.3700787401575); -#2859=VECTOR('',#4503,39.3700787401575); -#2860=VECTOR('',#4504,39.3700787401575); -#2861=VECTOR('',#4507,39.3700787401575); -#2862=VECTOR('',#4508,39.3700787401575); -#2863=VECTOR('',#4509,39.3700787401575); -#2864=VECTOR('',#4512,39.3700787401575); -#2865=VECTOR('',#4513,39.3700787401575); -#2866=VECTOR('',#4514,39.3700787401575); -#2867=VECTOR('',#4515,39.3700787401575); -#2868=VECTOR('',#4516,39.3700787401575); -#2869=VECTOR('',#4519,39.3700787401575); -#2870=VECTOR('',#4522,39.3700787401575); -#2871=VECTOR('',#4523,39.3700787401575); -#2872=VECTOR('',#4524,39.3700787401575); -#2873=VECTOR('',#4527,39.3700787401575); -#2874=VECTOR('',#4530,39.3700787401575); -#2875=VECTOR('',#4533,39.3700787401575); -#2876=VECTOR('',#4534,39.3700787401575); -#2877=VECTOR('',#4535,39.3700787401575); -#2878=VECTOR('',#4538,39.3700787401575); -#2879=VECTOR('',#4539,39.3700787401575); -#2880=VECTOR('',#4540,39.3700787401575); -#2881=VECTOR('',#4541,39.3700787401575); -#2882=VECTOR('',#4542,39.3700787401575); -#2883=VECTOR('',#4543,39.3700787401575); -#2884=VECTOR('',#4544,39.3700787401575); -#2885=VECTOR('',#4547,39.3700787401575); -#2886=VECTOR('',#4548,39.3700787401575); -#2887=VECTOR('',#4551,39.3700787401575); -#2888=VECTOR('',#4554,39.3700787401575); -#2889=VECTOR('',#4557,39.3700787401575); -#2890=VECTOR('',#4558,39.3700787401575); -#2891=VECTOR('',#4559,39.3700787401575); -#2892=VECTOR('',#4562,39.3700787401575); -#2893=VECTOR('',#4565,39.3700787401575); -#2894=VECTOR('',#4568,39.3700787401575); -#2895=VECTOR('',#4569,39.3700787401575); -#2896=VECTOR('',#4572,39.3700787401575); -#2897=VECTOR('',#4573,39.3700787401575); -#2898=VECTOR('',#4574,39.3700787401575); -#2899=VECTOR('',#4575,39.3700787401575); -#2900=VECTOR('',#4576,39.3700787401575); -#2901=VECTOR('',#4577,39.3700787401575); -#2902=VECTOR('',#4580,39.3700787401575); -#2903=VECTOR('',#4583,39.3700787401575); -#2904=VECTOR('',#4584,39.3700787401575); -#2905=VECTOR('',#4587,39.3700787401575); -#2906=VECTOR('',#4592,39.3700787401575); -#2907=VECTOR('',#4595,39.3700787401575); -#2908=VECTOR('',#4596,39.3700787401575); -#2909=VECTOR('',#4601,39.3700787401575); -#2910=VECTOR('',#4606,39.3700787401575); -#2911=VECTOR('',#4611,39.3700787401575); -#2912=VECTOR('',#4616,39.3700787401575); -#2913=VECTOR('',#4619,39.3700787401575); -#2914=VECTOR('',#4626,39.3700787401575); -#2915=VECTOR('',#4627,39.3700787401575); -#2916=VECTOR('',#4628,39.3700787401575); -#2917=VECTOR('',#4629,39.3700787401575); -#2918=VECTOR('',#4630,39.3700787401575); -#2919=VECTOR('',#4631,39.3700787401575); -#2920=VECTOR('',#4632,39.3700787401575); -#2921=VECTOR('',#4633,39.3700787401575); -#2922=VECTOR('',#4636,39.3700787401575); -#2923=VECTOR('',#4637,39.3700787401575); -#2924=VECTOR('',#4638,39.3700787401575); -#2925=VECTOR('',#4639,39.3700787401575); -#2926=VECTOR('',#4642,39.3700787401575); -#2927=VECTOR('',#4643,39.3700787401575); -#2928=VECTOR('',#4646,39.3700787401575); -#2929=VECTOR('',#4651,39.3700787401575); -#2930=VECTOR('',#4652,39.3700787401575); -#2931=VECTOR('',#4655,39.3700787401575); -#2932=VECTOR('',#4662,39.3700787401575); -#2933=VECTOR('',#4663,39.3700787401575); -#2934=VECTOR('',#4664,39.3700787401575); -#2935=VECTOR('',#4665,39.3700787401575); -#2936=VECTOR('',#4666,39.3700787401575); -#2937=VECTOR('',#4667,39.3700787401575); -#2938=VECTOR('',#4668,39.3700787401575); -#2939=VECTOR('',#4669,39.3700787401575); -#2940=VECTOR('',#4670,39.3700787401575); -#2941=VECTOR('',#4671,39.3700787401575); -#2942=VECTOR('',#4672,39.3700787401575); -#2943=VECTOR('',#4673,39.3700787401575); -#2944=VECTOR('',#4674,39.3700787401575); -#2945=VECTOR('',#4675,39.3700787401575); -#2946=VECTOR('',#4676,39.3700787401575); -#2947=VECTOR('',#4677,39.3700787401575); -#2948=VECTOR('',#4678,39.3700787401575); -#2949=VECTOR('',#4679,39.3700787401575); -#2950=VECTOR('',#4680,39.3700787401575); -#2951=VECTOR('',#4681,39.3700787401575); -#2952=VECTOR('',#4682,39.3700787401575); -#2953=VECTOR('',#4683,39.3700787401575); -#2954=VECTOR('',#4684,39.3700787401575); -#2955=VECTOR('',#4685,39.3700787401575); -#2956=VECTOR('',#4686,39.3700787401575); -#2957=VECTOR('',#4687,39.3700787401575); -#2958=VECTOR('',#4688,39.3700787401575); -#2959=VECTOR('',#4689,39.3700787401575); -#2960=VECTOR('',#4690,39.3700787401575); -#2961=VECTOR('',#4691,39.3700787401575); -#2962=VECTOR('',#4692,39.3700787401575); -#2963=VECTOR('',#4693,39.3700787401575); -#2964=VECTOR('',#4694,39.3700787401575); -#2965=VECTOR('',#4695,39.3700787401575); -#2966=VECTOR('',#4696,39.3700787401575); -#2967=VECTOR('',#4697,39.3700787401575); -#2968=VECTOR('',#4700,39.3700787401575); -#2969=VECTOR('',#4701,39.3700787401575); -#2970=VECTOR('',#4702,39.3700787401575); -#2971=VECTOR('',#4703,39.3700787401575); -#2972=VECTOR('',#4704,39.3700787401575); -#2973=VECTOR('',#4705,39.3700787401575); -#2974=VECTOR('',#4706,39.3700787401575); -#2975=VECTOR('',#4707,39.3700787401575); -#2976=VECTOR('',#4708,39.3700787401575); -#2977=VECTOR('',#4709,39.3700787401575); -#2978=VECTOR('',#4710,39.3700787401575); -#2979=VECTOR('',#4711,39.3700787401575); -#2980=VECTOR('',#4712,39.3700787401575); -#2981=VECTOR('',#4713,39.3700787401575); -#2982=VECTOR('',#4714,39.3700787401575); -#2983=VECTOR('',#4715,39.3700787401575); -#2984=VECTOR('',#4716,39.3700787401575); -#2985=VECTOR('',#4717,39.3700787401575); -#2986=VECTOR('',#4718,39.3700787401575); -#2987=VECTOR('',#4719,39.3700787401575); -#2988=VECTOR('',#4720,39.3700787401575); -#2989=VECTOR('',#4721,39.3700787401575); -#2990=VECTOR('',#4722,39.3700787401575); -#2991=VECTOR('',#4723,39.3700787401575); -#2992=VECTOR('',#4724,39.3700787401575); -#2993=VECTOR('',#4725,39.3700787401575); -#2994=VECTOR('',#4726,39.3700787401575); -#2995=VECTOR('',#4727,39.3700787401575); -#2996=VECTOR('',#4728,39.3700787401575); -#2997=VECTOR('',#4729,39.3700787401575); -#2998=VECTOR('',#4730,39.3700787401575); -#2999=VECTOR('',#4731,39.3700787401575); -#3000=VECTOR('',#4732,39.3700787401575); -#3001=VECTOR('',#4733,39.3700787401575); -#3002=VECTOR('',#4734,39.3700787401575); -#3003=VECTOR('',#4735,39.3700787401575); -#3004=VECTOR('',#4738,39.3700787401575); -#3005=VECTOR('',#4739,39.3700787401575); -#3006=VECTOR('',#4740,39.3700787401575); -#3007=VECTOR('',#4743,39.3700787401575); -#3008=VECTOR('',#4744,39.3700787401575); -#3009=VECTOR('',#4745,39.3700787401575); -#3010=VECTOR('',#4748,39.3700787401575); -#3011=VECTOR('',#4749,39.3700787401575); -#3012=VECTOR('',#4750,39.3700787401575); -#3013=VECTOR('',#4753,39.3700787401575); -#3014=VECTOR('',#4754,39.3700787401575); -#3015=VECTOR('',#4755,39.3700787401575); -#3016=VECTOR('',#4758,39.3700787401575); -#3017=VECTOR('',#4759,39.3700787401575); -#3018=VECTOR('',#4760,39.3700787401575); -#3019=VECTOR('',#4763,39.3700787401575); -#3020=VECTOR('',#4764,39.3700787401575); -#3021=VECTOR('',#4765,39.3700787401575); -#3022=VECTOR('',#4768,39.3700787401575); -#3023=VECTOR('',#4769,39.3700787401575); -#3024=VECTOR('',#4770,39.3700787401575); -#3025=VECTOR('',#4773,39.3700787401575); -#3026=VECTOR('',#4774,39.3700787401575); -#3027=VECTOR('',#4775,39.3700787401575); -#3028=VECTOR('',#4778,39.3700787401575); -#3029=VECTOR('',#4779,39.3700787401575); -#3030=VECTOR('',#4780,39.3700787401575); -#3031=VECTOR('',#4783,39.3700787401575); -#3032=VECTOR('',#4784,39.3700787401575); -#3033=VECTOR('',#4785,39.3700787401575); -#3034=VECTOR('',#4788,39.3700787401575); -#3035=VECTOR('',#4789,39.3700787401575); -#3036=VECTOR('',#4790,39.3700787401575); -#3037=VECTOR('',#4793,39.3700787401575); -#3038=VECTOR('',#4794,39.3700787401575); -#3039=VECTOR('',#4795,39.3700787401575); -#3040=VECTOR('',#4798,39.3700787401575); -#3041=VECTOR('',#4799,39.3700787401575); -#3042=VECTOR('',#4800,39.3700787401575); -#3043=VECTOR('',#4803,39.3700787401575); -#3044=VECTOR('',#4804,39.3700787401575); -#3045=VECTOR('',#4805,39.3700787401575); -#3046=VECTOR('',#4808,39.3700787401575); -#3047=VECTOR('',#4809,39.3700787401575); -#3048=VECTOR('',#4810,39.3700787401575); -#3049=VECTOR('',#4813,39.3700787401575); -#3050=VECTOR('',#4814,39.3700787401575); -#3051=VECTOR('',#4815,39.3700787401575); -#3052=VECTOR('',#4818,39.3700787401575); -#3053=VECTOR('',#4819,39.3700787401575); -#3054=VECTOR('',#4820,39.3700787401575); -#3055=VECTOR('',#4823,39.3700787401575); -#3056=VECTOR('',#4824,39.3700787401575); -#3057=VECTOR('',#4825,39.3700787401575); -#3058=VECTOR('',#4828,39.3700787401575); -#3059=VECTOR('',#4829,39.3700787401575); -#3060=VECTOR('',#4830,39.3700787401575); -#3061=VECTOR('',#4833,39.3700787401575); -#3062=VECTOR('',#4834,39.3700787401575); -#3063=VECTOR('',#4835,39.3700787401575); -#3064=VECTOR('',#4838,39.3700787401575); -#3065=VECTOR('',#4839,39.3700787401575); -#3066=VECTOR('',#4840,39.3700787401575); -#3067=VECTOR('',#4841,39.3700787401575); -#3068=VECTOR('',#4844,39.3700787401575); -#3069=VECTOR('',#4845,39.3700787401575); -#3070=VECTOR('',#4846,39.3700787401575); -#3071=VECTOR('',#4847,39.3700787401575); -#3072=VECTOR('',#4850,39.3700787401575); -#3073=VECTOR('',#4851,39.3700787401575); -#3074=VECTOR('',#4852,39.3700787401575); -#3075=VECTOR('',#4853,39.3700787401575); -#3076=VECTOR('',#4856,39.3700787401575); -#3077=VECTOR('',#4857,39.3700787401575); -#3078=VECTOR('',#4858,39.3700787401575); -#3079=VECTOR('',#4859,39.3700787401575); -#3080=VECTOR('',#4862,39.3700787401575); -#3081=VECTOR('',#4863,39.3700787401575); -#3082=VECTOR('',#4864,39.3700787401575); -#3083=VECTOR('',#4865,39.3700787401575); -#3084=VECTOR('',#4868,39.3700787401575); -#3085=VECTOR('',#4869,39.3700787401575); -#3086=VECTOR('',#4870,39.3700787401575); -#3087=VECTOR('',#4873,39.3700787401575); -#3088=VECTOR('',#4874,39.3700787401575); -#3089=VECTOR('',#4875,39.3700787401575); -#3090=VECTOR('',#4878,39.3700787401575); -#3091=VECTOR('',#4879,39.3700787401575); -#3092=VECTOR('',#4880,39.3700787401575); -#3093=VECTOR('',#4883,39.3700787401575); -#3094=VECTOR('',#4884,39.3700787401575); -#3095=VECTOR('',#4885,39.3700787401575); -#3096=VECTOR('',#4888,39.3700787401575); -#3097=VECTOR('',#4889,39.3700787401575); -#3098=VECTOR('',#4890,39.3700787401575); -#3099=VECTOR('',#4893,39.3700787401575); -#3100=VECTOR('',#4894,39.3700787401575); -#3101=VECTOR('',#4895,39.3700787401575); -#3102=VECTOR('',#4898,39.3700787401575); -#3103=VECTOR('',#4899,39.3700787401575); -#3104=VECTOR('',#4900,39.3700787401575); -#3105=VECTOR('',#4903,39.3700787401575); -#3106=VECTOR('',#4904,39.3700787401575); -#3107=VECTOR('',#4905,39.3700787401575); -#3108=VECTOR('',#4908,39.3700787401575); -#3109=VECTOR('',#4909,39.3700787401575); -#3110=VECTOR('',#4910,39.3700787401575); -#3111=VECTOR('',#4913,39.3700787401575); -#3112=VECTOR('',#4914,39.3700787401575); -#3113=VECTOR('',#4915,39.3700787401575); -#3114=VECTOR('',#4918,39.3700787401575); -#3115=VECTOR('',#4919,39.3700787401575); -#3116=VECTOR('',#4922,39.3700787401575); -#3117=VECTOR('',#4923,39.3700787401575); -#3118=VECTOR('',#4926,39.3700787401575); -#3119=VECTOR('',#4927,39.3700787401575); -#3120=VECTOR('',#4930,39.3700787401575); -#3121=VECTOR('',#4931,39.3700787401575); -#3122=VECTOR('',#4934,39.3700787401575); -#3123=VECTOR('',#4935,39.3700787401575); -#3124=VECTOR('',#4938,39.3700787401575); -#3125=VECTOR('',#4939,39.3700787401575); -#3126=VECTOR('',#4940,39.3700787401575); -#3127=VECTOR('',#4941,39.3700787401575); -#3128=VECTOR('',#4944,39.3700787401575); -#3129=VECTOR('',#4945,39.3700787401575); -#3130=VECTOR('',#4946,39.3700787401575); -#3131=VECTOR('',#4947,39.3700787401575); -#3132=VECTOR('',#4950,39.3700787401575); -#3133=VECTOR('',#4951,39.3700787401575); -#3134=VECTOR('',#4952,39.3700787401575); -#3135=VECTOR('',#4953,39.3700787401575); -#3136=VECTOR('',#4956,39.3700787401575); -#3137=VECTOR('',#4957,39.3700787401575); -#3138=VECTOR('',#4958,39.3700787401575); -#3139=VECTOR('',#4959,39.3700787401575); -#3140=VECTOR('',#4962,39.3700787401575); -#3141=VECTOR('',#4963,39.3700787401575); -#3142=VECTOR('',#4964,39.3700787401575); -#3143=VECTOR('',#4965,39.3700787401575); -#3144=VECTOR('',#4968,39.3700787401575); -#3145=VECTOR('',#4969,39.3700787401575); -#3146=VECTOR('',#4970,39.3700787401575); -#3147=VECTOR('',#4973,39.3700787401575); -#3148=VECTOR('',#4974,39.3700787401575); -#3149=VECTOR('',#4975,39.3700787401575); -#3150=VECTOR('',#4978,39.3700787401575); -#3151=VECTOR('',#4979,39.3700787401575); -#3152=VECTOR('',#4980,39.3700787401575); -#3153=VECTOR('',#4983,39.3700787401575); -#3154=VECTOR('',#4984,39.3700787401575); -#3155=VECTOR('',#4985,39.3700787401575); -#3156=VECTOR('',#4988,39.3700787401575); -#3157=VECTOR('',#4989,39.3700787401575); -#3158=VECTOR('',#4990,39.3700787401575); -#3159=VECTOR('',#4993,39.3700787401575); -#3160=VECTOR('',#4994,39.3700787401575); -#3161=VECTOR('',#4995,39.3700787401575); -#3162=VECTOR('',#4998,39.3700787401575); -#3163=VECTOR('',#4999,39.3700787401575); -#3164=VECTOR('',#5000,39.3700787401575); -#3165=VECTOR('',#5003,39.3700787401575); -#3166=VECTOR('',#5004,39.3700787401575); -#3167=VECTOR('',#5005,39.3700787401575); -#3168=VECTOR('',#5008,39.3700787401575); -#3169=VECTOR('',#5009,39.3700787401575); -#3170=VECTOR('',#5010,39.3700787401575); -#3171=VECTOR('',#5013,39.3700787401575); -#3172=VECTOR('',#5014,39.3700787401575); -#3173=VECTOR('',#5015,39.3700787401575); -#3174=VECTOR('',#5020,39.3700787401575); -#3175=VECTOR('',#5029,39.3700787401575); -#3176=VECTOR('',#5036,39.3700787401575); -#3177=VECTOR('',#5043,39.3700787401575); -#3178=VECTOR('',#5050,39.3700787401575); -#3179=VECTOR('',#5053,39.3700787401575); -#3180=VECTOR('',#5054,39.3700787401575); -#3181=VECTOR('',#5055,39.3700787401575); -#3182=VECTOR('',#5058,39.3700787401575); -#3183=VECTOR('',#5059,39.3700787401575); -#3184=VECTOR('',#5060,39.3700787401575); -#3185=VECTOR('',#5063,39.3700787401575); -#3186=VECTOR('',#5064,39.3700787401575); -#3187=VECTOR('',#5065,39.3700787401575); -#3188=VECTOR('',#5068,39.3700787401575); -#3189=VECTOR('',#5069,39.3700787401575); -#3190=VECTOR('',#5070,39.3700787401575); -#3191=VECTOR('',#5073,39.3700787401575); -#3192=VECTOR('',#5074,39.3700787401575); -#3193=VECTOR('',#5075,39.3700787401575); -#3194=VECTOR('',#5078,39.3700787401575); -#3195=VECTOR('',#5079,39.3700787401575); -#3196=VECTOR('',#5080,39.3700787401575); -#3197=VECTOR('',#5081,39.3700787401575); -#3198=VECTOR('',#5084,39.3700787401575); -#3199=VECTOR('',#5085,39.3700787401575); -#3200=VECTOR('',#5086,39.3700787401575); -#3201=VECTOR('',#5087,39.3700787401575); -#3202=VECTOR('',#5090,39.3700787401575); -#3203=VECTOR('',#5091,39.3700787401575); -#3204=VECTOR('',#5092,39.3700787401575); -#3205=VECTOR('',#5093,39.3700787401575); -#3206=VECTOR('',#5096,39.3700787401575); -#3207=VECTOR('',#5097,39.3700787401575); -#3208=VECTOR('',#5098,39.3700787401575); -#3209=VECTOR('',#5099,39.3700787401575); -#3210=VECTOR('',#5102,39.3700787401575); -#3211=VECTOR('',#5103,39.3700787401575); -#3212=VECTOR('',#5104,39.3700787401575); -#3213=VECTOR('',#5105,39.3700787401575); -#3214=VECTOR('',#5110,39.3700787401575); -#3215=VECTOR('',#5119,39.3700787401575); -#3216=VECTOR('',#5126,39.3700787401575); -#3217=VECTOR('',#5133,39.3700787401575); -#3218=VECTOR('',#5140,39.3700787401575); -#3219=VECTOR('',#5143,39.3700787401575); -#3220=VECTOR('',#5144,39.3700787401575); -#3221=VECTOR('',#5145,39.3700787401575); -#3222=VECTOR('',#5148,39.3700787401575); -#3223=VECTOR('',#5149,39.3700787401575); -#3224=VECTOR('',#5150,39.3700787401575); -#3225=VECTOR('',#5153,39.3700787401575); -#3226=VECTOR('',#5154,39.3700787401575); -#3227=VECTOR('',#5155,39.3700787401575); -#3228=VECTOR('',#5158,39.3700787401575); -#3229=VECTOR('',#5159,39.3700787401575); -#3230=VECTOR('',#5160,39.3700787401575); -#3231=VECTOR('',#5163,39.3700787401575); -#3232=VECTOR('',#5164,39.3700787401575); -#3233=VECTOR('',#5165,39.3700787401575); -#3234=VECTOR('',#5168,39.3700787401575); -#3235=VECTOR('',#5169,39.3700787401575); -#3236=VECTOR('',#5170,39.3700787401575); -#3237=VECTOR('',#5173,39.3700787401575); -#3238=VECTOR('',#5174,39.3700787401575); -#3239=VECTOR('',#5175,39.3700787401575); -#3240=VECTOR('',#5178,39.3700787401575); -#3241=VECTOR('',#5179,39.3700787401575); -#3242=VECTOR('',#5180,39.3700787401575); -#3243=VECTOR('',#5183,39.3700787401575); -#3244=VECTOR('',#5184,39.3700787401575); -#3245=VECTOR('',#5185,39.3700787401575); -#3246=VECTOR('',#5188,39.3700787401575); -#3247=VECTOR('',#5189,39.3700787401575); -#3248=VECTOR('',#5190,39.3700787401575); -#3249=VECTOR('',#5193,39.3700787401575); -#3250=VECTOR('',#5194,39.3700787401575); -#3251=VECTOR('',#5195,39.3700787401575); -#3252=VECTOR('',#5198,39.3700787401575); -#3253=VECTOR('',#5199,39.3700787401575); -#3254=VECTOR('',#5200,39.3700787401575); -#3255=VECTOR('',#5203,39.3700787401575); -#3256=VECTOR('',#5204,39.3700787401575); -#3257=VECTOR('',#5205,39.3700787401575); -#3258=VECTOR('',#5208,39.3700787401575); -#3259=VECTOR('',#5209,39.3700787401575); -#3260=VECTOR('',#5210,39.3700787401575); -#3261=VECTOR('',#5213,39.3700787401575); -#3262=VECTOR('',#5214,39.3700787401575); -#3263=VECTOR('',#5215,39.3700787401575); -#3264=VECTOR('',#5218,39.3700787401575); -#3265=VECTOR('',#5219,39.3700787401575); -#3266=VECTOR('',#5220,39.3700787401575); -#3267=VECTOR('',#5223,39.3700787401575); -#3268=VECTOR('',#5224,39.3700787401575); -#3269=VECTOR('',#5225,39.3700787401575); -#3270=VECTOR('',#5228,39.3700787401575); -#3271=VECTOR('',#5229,39.3700787401575); -#3272=VECTOR('',#5230,39.3700787401575); -#3273=VECTOR('',#5233,39.3700787401575); -#3274=VECTOR('',#5234,39.3700787401575); -#3275=VECTOR('',#5235,39.3700787401575); -#3276=VECTOR('',#5238,39.3700787401575); -#3277=VECTOR('',#5239,39.3700787401575); -#3278=VECTOR('',#5240,39.3700787401575); -#3279=VECTOR('',#5243,39.3700787401575); -#3280=VECTOR('',#5244,39.3700787401575); -#3281=VECTOR('',#5245,39.3700787401575); -#3282=VECTOR('',#5248,39.3700787401575); -#3283=VECTOR('',#5249,39.3700787401575); -#3284=VECTOR('',#5250,39.3700787401575); -#3285=VECTOR('',#5253,39.3700787401575); -#3286=VECTOR('',#5254,39.3700787401575); -#3287=VECTOR('',#5255,39.3700787401575); -#3288=VECTOR('',#5258,39.3700787401575); -#3289=VECTOR('',#5259,39.3700787401575); -#3290=VECTOR('',#5260,39.3700787401575); -#3291=VECTOR('',#5263,39.3700787401575); -#3292=VECTOR('',#5264,39.3700787401575); -#3293=VECTOR('',#5265,39.3700787401575); -#3294=VECTOR('',#5300,39.3700787401575); -#3295=VECTOR('',#5305,39.3700787401575); -#3296=VECTOR('',#5312,39.3700787401575); -#3297=VECTOR('',#5319,39.3700787401575); -#3298=VECTOR('',#5326,39.3700787401575); -#3299=VECTOR('',#5333,39.3700787401575); -#3300=VECTOR('',#5334,39.3700787401575); -#3301=VECTOR('',#5335,39.3700787401575); -#3302=VECTOR('',#5338,39.3700787401575); -#3303=VECTOR('',#5339,39.3700787401575); -#3304=VECTOR('',#5340,39.3700787401575); -#3305=VECTOR('',#5343,39.3700787401575); -#3306=VECTOR('',#5344,39.3700787401575); -#3307=VECTOR('',#5345,39.3700787401575); -#3308=VECTOR('',#5348,39.3700787401575); -#3309=VECTOR('',#5349,39.3700787401575); -#3310=VECTOR('',#5350,39.3700787401575); -#3311=VECTOR('',#5353,39.3700787401575); -#3312=VECTOR('',#5354,39.3700787401575); -#3313=VECTOR('',#5355,39.3700787401575); -#3314=VECTOR('',#5358,39.3700787401575); -#3315=VECTOR('',#5359,39.3700787401575); -#3316=VECTOR('',#5362,39.3700787401575); -#3317=VECTOR('',#5363,39.3700787401575); -#3318=VECTOR('',#5366,39.3700787401575); -#3319=VECTOR('',#5367,39.3700787401575); -#3320=VECTOR('',#5370,39.3700787401575); -#3321=VECTOR('',#5371,39.3700787401575); -#3322=VECTOR('',#5374,39.3700787401575); -#3323=VECTOR('',#5375,39.3700787401575); -#3324=VECTOR('',#5378,39.3700787401575); -#3325=VECTOR('',#5379,39.3700787401575); -#3326=VECTOR('',#5380,39.3700787401575); -#3327=VECTOR('',#5381,39.3700787401575); -#3328=VECTOR('',#5382,39.3700787401575); -#3329=VECTOR('',#5383,39.3700787401575); -#3330=VECTOR('',#5384,39.3700787401575); -#3331=VECTOR('',#5385,39.3700787401575); -#3332=VECTOR('',#5386,39.3700787401575); -#3333=VECTOR('',#5387,39.3700787401575); -#3334=VECTOR('',#5388,39.3700787401575); -#3335=VECTOR('',#5389,39.3700787401575); -#3336=VECTOR('',#5390,39.3700787401575); -#3337=VECTOR('',#5391,39.3700787401575); -#3338=VECTOR('',#5392,39.3700787401575); -#3339=VECTOR('',#5393,39.3700787401575); -#3340=VECTOR('',#5394,39.3700787401575); -#3341=VECTOR('',#5395,39.3700787401575); -#3342=VECTOR('',#5398,39.3700787401575); -#3343=VECTOR('',#5399,39.3700787401575); -#3344=VECTOR('',#5400,39.3700787401575); -#3345=VECTOR('',#5401,39.3700787401575); -#3346=VECTOR('',#5402,39.3700787401575); -#3347=VECTOR('',#5403,39.3700787401575); -#3348=VECTOR('',#5404,39.3700787401575); -#3349=VECTOR('',#5405,39.3700787401575); -#3350=VECTOR('',#5406,39.3700787401575); -#3351=VECTOR('',#5407,39.3700787401575); -#3352=VECTOR('',#5408,39.3700787401575); -#3353=VECTOR('',#5409,39.3700787401575); -#3354=VECTOR('',#5410,39.3700787401575); -#3355=VECTOR('',#5411,39.3700787401575); -#3356=VECTOR('',#5412,39.3700787401575); -#3357=VECTOR('',#5413,39.3700787401575); -#3358=VECTOR('',#5414,39.3700787401575); -#3359=VECTOR('',#5415,39.3700787401575); -#3360=EDGE_LOOP('',(#98,#99,#100,#101)); -#3361=EDGE_LOOP('',(#102,#103,#104,#105)); -#3362=EDGE_LOOP('',(#106,#107,#108,#109)); -#3363=EDGE_LOOP('',(#110,#111,#112,#113,#114,#115,#116,#117,#118,#119,#120, -#121,#122,#123,#124,#125,#126,#127,#128,#129,#130,#131,#132,#133,#134,#135, -#136,#137)); -#3364=EDGE_LOOP('',(#138,#139,#140,#141,#142,#143,#144,#145,#146,#147,#148, -#149,#150,#151,#152)); -#3365=EDGE_LOOP('',(#153,#154,#155,#156)); -#3366=EDGE_LOOP('',(#157,#158,#159,#160)); -#3367=EDGE_LOOP('',(#161,#162,#163,#164,#165,#166,#167,#168)); -#3368=EDGE_LOOP('',(#169,#170,#171,#172)); -#3369=EDGE_LOOP('',(#173,#174,#175,#176)); -#3370=EDGE_LOOP('',(#177,#178,#179,#180)); -#3371=EDGE_LOOP('',(#181,#182,#183,#184)); -#3372=EDGE_LOOP('',(#185,#186,#187,#188)); -#3373=EDGE_LOOP('',(#189,#190,#191,#192,#193,#194,#195,#196)); -#3374=EDGE_LOOP('',(#197,#198,#199,#200)); -#3375=EDGE_LOOP('',(#201,#202,#203,#204,#205,#206,#207,#208)); -#3376=EDGE_LOOP('',(#209,#210,#211,#212,#213,#214,#215,#216)); -#3377=EDGE_LOOP('',(#217,#218,#219,#220)); -#3378=EDGE_LOOP('',(#221,#222,#223,#224)); -#3379=EDGE_LOOP('',(#225,#226,#227,#228)); -#3380=EDGE_LOOP('',(#229,#230,#231,#232,#233)); -#3381=EDGE_LOOP('',(#234,#235,#236,#237,#238,#239,#240,#241)); -#3382=EDGE_LOOP('',(#242,#243,#244,#245,#246)); -#3383=EDGE_LOOP('',(#247,#248,#249,#250)); -#3384=EDGE_LOOP('',(#251,#252,#253,#254)); -#3385=EDGE_LOOP('',(#255,#256,#257)); -#3386=EDGE_LOOP('',(#258,#259,#260,#261)); -#3387=EDGE_LOOP('',(#262,#263,#264,#265)); -#3388=EDGE_LOOP('',(#266,#267,#268,#269)); -#3389=EDGE_LOOP('',(#270,#271,#272,#273)); -#3390=EDGE_LOOP('',(#274,#275,#276,#277)); -#3391=EDGE_LOOP('',(#278,#279,#280,#281)); -#3392=EDGE_LOOP('',(#282,#283,#284,#285)); -#3393=EDGE_LOOP('',(#286,#287,#288,#289)); -#3394=EDGE_LOOP('',(#290,#291,#292,#293)); -#3395=EDGE_LOOP('',(#294,#295,#296,#297)); -#3396=EDGE_LOOP('',(#298,#299,#300,#301)); -#3397=EDGE_LOOP('',(#302,#303,#304,#305)); -#3398=EDGE_LOOP('',(#306,#307,#308,#309,#310,#311,#312,#313)); -#3399=EDGE_LOOP('',(#314,#315,#316,#317,#318,#319)); -#3400=EDGE_LOOP('',(#320,#321,#322,#323)); -#3401=EDGE_LOOP('',(#324,#325,#326,#327)); -#3402=EDGE_LOOP('',(#328,#329,#330)); -#3403=EDGE_LOOP('',(#331,#332,#333,#334)); -#3404=EDGE_LOOP('',(#335,#336,#337,#338)); -#3405=EDGE_LOOP('',(#339,#340,#341)); -#3406=EDGE_LOOP('',(#342,#343,#344,#345,#346,#347,#348,#349,#350,#351,#352, -#353,#354,#355,#356,#357,#358,#359,#360,#361,#362,#363,#364,#365,#366,#367, -#368,#369,#370,#371,#372,#373,#374,#375,#376,#377)); -#3407=EDGE_LOOP('',(#378,#379,#380,#381,#382,#383,#384,#385,#386,#387,#388, -#389,#390,#391,#392,#393,#394,#395,#396,#397,#398,#399,#400,#401,#402,#403, -#404,#405,#406,#407,#408,#409,#410,#411,#412,#413)); -#3408=EDGE_LOOP('',(#414,#415,#416,#417)); -#3409=EDGE_LOOP('',(#418,#419,#420,#421)); -#3410=EDGE_LOOP('',(#422,#423,#424,#425)); -#3411=EDGE_LOOP('',(#426,#427,#428,#429)); -#3412=EDGE_LOOP('',(#430,#431,#432,#433)); -#3413=EDGE_LOOP('',(#434,#435,#436,#437)); -#3414=EDGE_LOOP('',(#438,#439,#440,#441)); -#3415=EDGE_LOOP('',(#442,#443,#444,#445)); -#3416=EDGE_LOOP('',(#446,#447,#448,#449)); -#3417=EDGE_LOOP('',(#450,#451,#452,#453)); -#3418=EDGE_LOOP('',(#454,#455,#456,#457)); -#3419=EDGE_LOOP('',(#458,#459,#460,#461)); -#3420=EDGE_LOOP('',(#462,#463,#464,#465)); -#3421=EDGE_LOOP('',(#466,#467,#468,#469)); -#3422=EDGE_LOOP('',(#470,#471,#472,#473)); -#3423=EDGE_LOOP('',(#474,#475,#476,#477)); -#3424=EDGE_LOOP('',(#478,#479,#480,#481)); -#3425=EDGE_LOOP('',(#482,#483,#484,#485)); -#3426=EDGE_LOOP('',(#486,#487,#488,#489)); -#3427=EDGE_LOOP('',(#490,#491,#492,#493)); -#3428=EDGE_LOOP('',(#494,#495,#496,#497)); -#3429=EDGE_LOOP('',(#498,#499,#500,#501)); -#3430=EDGE_LOOP('',(#502,#503,#504,#505)); -#3431=EDGE_LOOP('',(#506,#507,#508,#509)); -#3432=EDGE_LOOP('',(#510,#511,#512,#513)); -#3433=EDGE_LOOP('',(#514,#515,#516,#517)); -#3434=EDGE_LOOP('',(#518,#519,#520,#521)); -#3435=EDGE_LOOP('',(#522,#523,#524,#525)); -#3436=EDGE_LOOP('',(#526,#527,#528,#529)); -#3437=EDGE_LOOP('',(#530,#531,#532,#533)); -#3438=EDGE_LOOP('',(#534,#535,#536,#537)); -#3439=EDGE_LOOP('',(#538,#539,#540,#541)); -#3440=EDGE_LOOP('',(#542,#543,#544,#545)); -#3441=EDGE_LOOP('',(#546,#547,#548,#549)); -#3442=EDGE_LOOP('',(#550,#551,#552,#553)); -#3443=EDGE_LOOP('',(#554,#555,#556,#557)); -#3444=EDGE_LOOP('',(#558,#559,#560,#561)); -#3445=EDGE_LOOP('',(#562,#563,#564,#565)); -#3446=EDGE_LOOP('',(#566,#567,#568,#569)); -#3447=EDGE_LOOP('',(#570,#571,#572,#573)); -#3448=EDGE_LOOP('',(#574,#575,#576,#577)); -#3449=EDGE_LOOP('',(#578,#579,#580,#581)); -#3450=EDGE_LOOP('',(#582,#583,#584,#585)); -#3451=EDGE_LOOP('',(#586,#587,#588,#589)); -#3452=EDGE_LOOP('',(#590,#591,#592,#593)); -#3453=EDGE_LOOP('',(#594,#595,#596,#597)); -#3454=EDGE_LOOP('',(#598,#599,#600,#601)); -#3455=EDGE_LOOP('',(#602,#603,#604,#605)); -#3456=EDGE_LOOP('',(#606,#607,#608,#609)); -#3457=EDGE_LOOP('',(#610,#611,#612,#613)); -#3458=EDGE_LOOP('',(#614,#615,#616,#617)); -#3459=EDGE_LOOP('',(#618,#619,#620,#621)); -#3460=EDGE_LOOP('',(#622,#623,#624,#625)); -#3461=EDGE_LOOP('',(#626,#627,#628,#629)); -#3462=EDGE_LOOP('',(#630,#631,#632,#633)); -#3463=EDGE_LOOP('',(#634,#635,#636,#637)); -#3464=EDGE_LOOP('',(#638,#639,#640,#641)); -#3465=EDGE_LOOP('',(#642,#643,#644,#645)); -#3466=EDGE_LOOP('',(#646,#647,#648,#649)); -#3467=EDGE_LOOP('',(#650,#651,#652,#653)); -#3468=EDGE_LOOP('',(#654,#655,#656,#657)); -#3469=EDGE_LOOP('',(#658,#659,#660,#661)); -#3470=EDGE_LOOP('',(#662,#663,#664,#665)); -#3471=EDGE_LOOP('',(#666,#667,#668,#669)); -#3472=EDGE_LOOP('',(#670,#671,#672,#673)); -#3473=EDGE_LOOP('',(#674,#675,#676,#677)); -#3474=EDGE_LOOP('',(#678,#679,#680,#681)); -#3475=EDGE_LOOP('',(#682,#683,#684,#685)); -#3476=EDGE_LOOP('',(#686,#687,#688,#689)); -#3477=EDGE_LOOP('',(#690,#691,#692,#693)); -#3478=EDGE_LOOP('',(#694,#695,#696,#697)); -#3479=EDGE_LOOP('',(#698,#699,#700,#701)); -#3480=EDGE_LOOP('',(#702,#703,#704,#705)); -#3481=EDGE_LOOP('',(#706,#707,#708,#709)); -#3482=EDGE_LOOP('',(#710,#711,#712,#713)); -#3483=EDGE_LOOP('',(#714,#715,#716,#717)); -#3484=EDGE_LOOP('',(#718,#719,#720,#721)); -#3485=EDGE_LOOP('',(#722,#723,#724,#725)); -#3486=EDGE_LOOP('',(#726,#727,#728,#729)); -#3487=EDGE_LOOP('',(#730,#731,#732,#733)); -#3488=EDGE_LOOP('',(#734,#735,#736,#737)); -#3489=EDGE_LOOP('',(#738,#739,#740,#741)); -#3490=EDGE_LOOP('',(#742,#743,#744,#745)); -#3491=EDGE_LOOP('',(#746,#747,#748,#749)); -#3492=EDGE_LOOP('',(#750,#751,#752,#753)); -#3493=EDGE_LOOP('',(#754,#755,#756,#757)); -#3494=EDGE_LOOP('',(#758,#759,#760,#761)); -#3495=EDGE_LOOP('',(#762,#763,#764,#765)); -#3496=EDGE_LOOP('',(#766,#767,#768,#769)); -#3497=EDGE_LOOP('',(#770,#771,#772,#773)); -#3498=EDGE_LOOP('',(#774,#775,#776,#777)); -#3499=EDGE_LOOP('',(#778,#779,#780,#781)); -#3500=EDGE_LOOP('',(#782,#783,#784,#785)); -#3501=EDGE_LOOP('',(#786,#787,#788,#789)); -#3502=EDGE_LOOP('',(#790,#791,#792,#793)); -#3503=EDGE_LOOP('',(#794,#795,#796,#797)); -#3504=EDGE_LOOP('',(#798,#799,#800,#801)); -#3505=EDGE_LOOP('',(#802,#803,#804,#805)); -#3506=EDGE_LOOP('',(#806,#807,#808,#809)); -#3507=EDGE_LOOP('',(#810,#811,#812,#813)); -#3508=EDGE_LOOP('',(#814,#815,#816,#817)); -#3509=EDGE_LOOP('',(#818,#819,#820,#821)); -#3510=EDGE_LOOP('',(#822,#823,#824,#825)); -#3511=EDGE_LOOP('',(#826,#827,#828,#829)); -#3512=EDGE_LOOP('',(#830,#831,#832,#833)); -#3513=EDGE_LOOP('',(#834,#835,#836,#837)); -#3514=EDGE_LOOP('',(#838,#839,#840,#841)); -#3515=EDGE_LOOP('',(#842,#843,#844,#845)); -#3516=EDGE_LOOP('',(#846,#847,#848,#849)); -#3517=EDGE_LOOP('',(#850,#851,#852,#853)); -#3518=EDGE_LOOP('',(#854,#855,#856,#857)); -#3519=EDGE_LOOP('',(#858,#859,#860,#861)); -#3520=EDGE_LOOP('',(#862,#863,#864,#865)); -#3521=EDGE_LOOP('',(#866,#867,#868,#869)); -#3522=EDGE_LOOP('',(#870,#871,#872,#873)); -#3523=EDGE_LOOP('',(#874,#875,#876,#877)); -#3524=EDGE_LOOP('',(#878,#879,#880,#881)); -#3525=EDGE_LOOP('',(#882,#883,#884,#885)); -#3526=EDGE_LOOP('',(#886,#887,#888,#889)); -#3527=EDGE_LOOP('',(#890,#891,#892,#893)); -#3528=EDGE_LOOP('',(#894,#895,#896,#897,#898,#899,#900,#901,#902,#903,#904, -#905,#906,#907,#908,#909,#910,#911,#912,#913,#914,#915,#916,#917,#918,#919, -#920,#921,#922,#923,#924,#925,#926,#927,#928,#929)); -#3529=EDGE_LOOP('',(#930,#931,#932,#933,#934,#935,#936,#937,#938,#939,#940, -#941,#942,#943,#944,#945,#946,#947,#948,#949,#950,#951,#952,#953,#954,#955, -#956,#957,#958,#959,#960,#961,#962,#963,#964,#965)); -#3530=EDGE_LOOP('',(#966,#967,#968,#969,#970,#971,#972,#973,#974,#975,#976, -#977,#978,#979,#980,#981,#982,#983,#984,#985,#986,#987,#988,#989,#990,#991, -#992,#993)); -#3531=EDGE_LOOP('',(#994,#995,#996,#997,#998,#999,#1000,#1001,#1002,#1003, -#1004,#1005,#1006,#1007,#1008,#1009,#1010,#1011,#1012,#1013,#1014,#1015, -#1016,#1017,#1018,#1019,#1020,#1021)); -#3532=EDGE_LOOP('',(#1022,#1023,#1024,#1025,#1026,#1027,#1028,#1029,#1030, -#1031)); -#3533=EDGE_LOOP('',(#1032,#1033,#1034,#1035,#1036,#1037,#1038,#1039,#1040, -#1041)); -#3534=EDGE_LOOP('',(#1042,#1043,#1044,#1045,#1046,#1047,#1048,#1049,#1050, -#1051)); -#3535=EDGE_LOOP('',(#1052,#1053,#1054,#1055,#1056,#1057,#1058,#1059,#1060, -#1061)); -#3536=EDGE_LOOP('',(#1062,#1063,#1064,#1065,#1066,#1067,#1068,#1069,#1070, -#1071)); -#3537=EDGE_LOOP('',(#1072,#1073,#1074,#1075,#1076,#1077,#1078,#1079,#1080, -#1081)); -#3538=EDGE_LOOP('',(#1082,#1083,#1084,#1085,#1086,#1087,#1088,#1089,#1090, -#1091)); -#3539=EDGE_LOOP('',(#1092,#1093,#1094,#1095,#1096,#1097,#1098,#1099,#1100, -#1101)); -#3540=EDGE_LOOP('',(#1102,#1103,#1104,#1105,#1106,#1107,#1108,#1109,#1110, -#1111)); -#3541=EDGE_LOOP('',(#1112,#1113,#1114,#1115,#1116,#1117,#1118,#1119,#1120, -#1121)); -#3542=EDGE_LOOP('',(#1122,#1123,#1124,#1125,#1126,#1127,#1128,#1129,#1130, -#1131)); -#3543=EDGE_LOOP('',(#1132,#1133,#1134,#1135,#1136,#1137,#1138,#1139,#1140, -#1141)); -#3544=EDGE_LOOP('',(#1142,#1143,#1144,#1145,#1146,#1147,#1148,#1149,#1150, -#1151)); -#3545=EDGE_LOOP('',(#1152,#1153,#1154,#1155,#1156,#1157,#1158,#1159,#1160, -#1161)); -#3546=EDGE_LOOP('',(#1162,#1163,#1164,#1165,#1166,#1167,#1168,#1169,#1170, -#1171)); -#3547=EDGE_LOOP('',(#1172,#1173,#1174,#1175,#1176,#1177,#1178,#1179,#1180, -#1181)); -#3548=EDGE_LOOP('',(#1182,#1183,#1184,#1185,#1186,#1187)); -#3549=EDGE_LOOP('',(#1188,#1189,#1190,#1191,#1192,#1193)); -#3550=EDGE_LOOP('',(#1194,#1195,#1196,#1197,#1198,#1199)); -#3551=EDGE_LOOP('',(#1200,#1201,#1202,#1203,#1204,#1205)); -#3552=EDGE_LOOP('',(#1206,#1207,#1208,#1209,#1210,#1211)); -#3553=EDGE_LOOP('',(#1212,#1213,#1214,#1215,#1216,#1217)); -#3554=EDGE_LOOP('',(#1218,#1219,#1220,#1221,#1222,#1223)); -#3555=EDGE_LOOP('',(#1224,#1225,#1226,#1227,#1228,#1229)); -#3556=EDGE_LOOP('',(#1230,#1231,#1232,#1233,#1234,#1235)); -#3557=EDGE_LOOP('',(#1236,#1237,#1238,#1239,#1240,#1241)); -#3558=EDGE_LOOP('',(#1242,#1243,#1244,#1245,#1246,#1247)); -#3559=EDGE_LOOP('',(#1248,#1249,#1250,#1251,#1252,#1253)); -#3560=EDGE_LOOP('',(#1254,#1255,#1256,#1257,#1258,#1259)); -#3561=EDGE_LOOP('',(#1260,#1261,#1262,#1263,#1264,#1265)); -#3562=EDGE_LOOP('',(#1266,#1267,#1268,#1269,#1270,#1271)); -#3563=EDGE_LOOP('',(#1272,#1273,#1274,#1275,#1276,#1277)); -#3564=FACE_BOUND('',#3360,.T.); -#3565=FACE_BOUND('',#3361,.T.); -#3566=FACE_BOUND('',#3362,.T.); -#3567=FACE_BOUND('',#3363,.T.); -#3568=FACE_BOUND('',#3364,.T.); -#3569=FACE_BOUND('',#3365,.T.); -#3570=FACE_BOUND('',#3366,.T.); -#3571=FACE_BOUND('',#3367,.T.); -#3572=FACE_BOUND('',#3368,.T.); -#3573=FACE_BOUND('',#3369,.T.); -#3574=FACE_BOUND('',#3370,.T.); -#3575=FACE_BOUND('',#3371,.T.); -#3576=FACE_BOUND('',#3372,.T.); -#3577=FACE_BOUND('',#3373,.T.); -#3578=FACE_BOUND('',#3374,.T.); -#3579=FACE_BOUND('',#3375,.T.); -#3580=FACE_BOUND('',#3376,.T.); -#3581=FACE_BOUND('',#3377,.T.); -#3582=FACE_BOUND('',#3378,.T.); -#3583=FACE_BOUND('',#3379,.T.); -#3584=FACE_BOUND('',#3380,.T.); -#3585=FACE_BOUND('',#3381,.T.); -#3586=FACE_BOUND('',#3382,.T.); -#3587=FACE_BOUND('',#3383,.T.); -#3588=FACE_BOUND('',#3384,.T.); -#3589=FACE_BOUND('',#3385,.T.); -#3590=FACE_BOUND('',#3386,.T.); -#3591=FACE_BOUND('',#3387,.T.); -#3592=FACE_BOUND('',#3388,.T.); -#3593=FACE_BOUND('',#3389,.T.); -#3594=FACE_BOUND('',#3390,.T.); -#3595=FACE_BOUND('',#3391,.T.); -#3596=FACE_BOUND('',#3392,.T.); -#3597=FACE_BOUND('',#3393,.T.); -#3598=FACE_BOUND('',#3394,.T.); -#3599=FACE_BOUND('',#3395,.T.); -#3600=FACE_BOUND('',#3396,.T.); -#3601=FACE_BOUND('',#3397,.T.); -#3602=FACE_BOUND('',#3398,.T.); -#3603=FACE_BOUND('',#3399,.T.); -#3604=FACE_BOUND('',#3400,.T.); -#3605=FACE_BOUND('',#3401,.T.); -#3606=FACE_BOUND('',#3402,.T.); -#3607=FACE_BOUND('',#3403,.T.); -#3608=FACE_BOUND('',#3404,.T.); -#3609=FACE_BOUND('',#3405,.T.); -#3610=FACE_BOUND('',#3406,.T.); -#3611=FACE_BOUND('',#3407,.T.); -#3612=FACE_BOUND('',#3408,.T.); -#3613=FACE_BOUND('',#3409,.T.); -#3614=FACE_BOUND('',#3410,.T.); -#3615=FACE_BOUND('',#3411,.T.); -#3616=FACE_BOUND('',#3412,.T.); -#3617=FACE_BOUND('',#3413,.T.); -#3618=FACE_BOUND('',#3414,.T.); -#3619=FACE_BOUND('',#3415,.T.); -#3620=FACE_BOUND('',#3416,.T.); -#3621=FACE_BOUND('',#3417,.T.); -#3622=FACE_BOUND('',#3418,.T.); -#3623=FACE_BOUND('',#3419,.T.); -#3624=FACE_BOUND('',#3420,.T.); -#3625=FACE_BOUND('',#3421,.T.); -#3626=FACE_BOUND('',#3422,.T.); -#3627=FACE_BOUND('',#3423,.T.); -#3628=FACE_BOUND('',#3424,.T.); -#3629=FACE_BOUND('',#3425,.T.); -#3630=FACE_BOUND('',#3426,.T.); -#3631=FACE_BOUND('',#3427,.T.); -#3632=FACE_BOUND('',#3428,.T.); -#3633=FACE_BOUND('',#3429,.T.); -#3634=FACE_BOUND('',#3430,.T.); -#3635=FACE_BOUND('',#3431,.T.); -#3636=FACE_BOUND('',#3432,.T.); -#3637=FACE_BOUND('',#3433,.T.); -#3638=FACE_BOUND('',#3434,.T.); -#3639=FACE_BOUND('',#3435,.T.); -#3640=FACE_BOUND('',#3436,.T.); -#3641=FACE_BOUND('',#3437,.T.); -#3642=FACE_BOUND('',#3438,.T.); -#3643=FACE_BOUND('',#3439,.T.); -#3644=FACE_BOUND('',#3440,.T.); -#3645=FACE_BOUND('',#3441,.T.); -#3646=FACE_BOUND('',#3442,.T.); -#3647=FACE_BOUND('',#3443,.T.); -#3648=FACE_BOUND('',#3444,.T.); -#3649=FACE_BOUND('',#3445,.T.); -#3650=FACE_BOUND('',#3446,.T.); -#3651=FACE_BOUND('',#3447,.T.); -#3652=FACE_BOUND('',#3448,.T.); -#3653=FACE_BOUND('',#3449,.T.); -#3654=FACE_BOUND('',#3450,.T.); -#3655=FACE_BOUND('',#3451,.T.); -#3656=FACE_BOUND('',#3452,.T.); -#3657=FACE_BOUND('',#3453,.T.); -#3658=FACE_BOUND('',#3454,.T.); -#3659=FACE_BOUND('',#3455,.T.); -#3660=FACE_BOUND('',#3456,.T.); -#3661=FACE_BOUND('',#3457,.T.); -#3662=FACE_BOUND('',#3458,.T.); -#3663=FACE_BOUND('',#3459,.T.); -#3664=FACE_BOUND('',#3460,.T.); -#3665=FACE_BOUND('',#3461,.T.); -#3666=FACE_BOUND('',#3462,.T.); -#3667=FACE_BOUND('',#3463,.T.); -#3668=FACE_BOUND('',#3464,.T.); -#3669=FACE_BOUND('',#3465,.T.); -#3670=FACE_BOUND('',#3466,.T.); -#3671=FACE_BOUND('',#3467,.T.); -#3672=FACE_BOUND('',#3468,.T.); -#3673=FACE_BOUND('',#3469,.T.); -#3674=FACE_BOUND('',#3470,.T.); -#3675=FACE_BOUND('',#3471,.T.); -#3676=FACE_BOUND('',#3472,.T.); -#3677=FACE_BOUND('',#3473,.T.); -#3678=FACE_BOUND('',#3474,.T.); -#3679=FACE_BOUND('',#3475,.T.); -#3680=FACE_BOUND('',#3476,.T.); -#3681=FACE_BOUND('',#3477,.T.); -#3682=FACE_BOUND('',#3478,.T.); -#3683=FACE_BOUND('',#3479,.T.); -#3684=FACE_BOUND('',#3480,.T.); -#3685=FACE_BOUND('',#3481,.T.); -#3686=FACE_BOUND('',#3482,.T.); -#3687=FACE_BOUND('',#3483,.T.); -#3688=FACE_BOUND('',#3484,.T.); -#3689=FACE_BOUND('',#3485,.T.); -#3690=FACE_BOUND('',#3486,.T.); -#3691=FACE_BOUND('',#3487,.T.); -#3692=FACE_BOUND('',#3488,.T.); -#3693=FACE_BOUND('',#3489,.T.); -#3694=FACE_BOUND('',#3490,.T.); -#3695=FACE_BOUND('',#3491,.T.); -#3696=FACE_BOUND('',#3492,.T.); -#3697=FACE_BOUND('',#3493,.T.); -#3698=FACE_BOUND('',#3494,.T.); -#3699=FACE_BOUND('',#3495,.T.); -#3700=FACE_BOUND('',#3496,.T.); -#3701=FACE_BOUND('',#3497,.T.); -#3702=FACE_BOUND('',#3498,.T.); -#3703=FACE_BOUND('',#3499,.T.); -#3704=FACE_BOUND('',#3500,.T.); -#3705=FACE_BOUND('',#3501,.T.); -#3706=FACE_BOUND('',#3502,.T.); -#3707=FACE_BOUND('',#3503,.T.); -#3708=FACE_BOUND('',#3504,.T.); -#3709=FACE_BOUND('',#3505,.T.); -#3710=FACE_BOUND('',#3506,.T.); -#3711=FACE_BOUND('',#3507,.T.); -#3712=FACE_BOUND('',#3508,.T.); -#3713=FACE_BOUND('',#3509,.T.); -#3714=FACE_BOUND('',#3510,.T.); -#3715=FACE_BOUND('',#3511,.T.); -#3716=FACE_BOUND('',#3512,.T.); -#3717=FACE_BOUND('',#3513,.T.); -#3718=FACE_BOUND('',#3514,.T.); -#3719=FACE_BOUND('',#3515,.T.); -#3720=FACE_BOUND('',#3516,.T.); -#3721=FACE_BOUND('',#3517,.T.); -#3722=FACE_BOUND('',#3518,.T.); -#3723=FACE_BOUND('',#3519,.T.); -#3724=FACE_BOUND('',#3520,.T.); -#3725=FACE_BOUND('',#3521,.T.); -#3726=FACE_BOUND('',#3522,.T.); -#3727=FACE_BOUND('',#3523,.T.); -#3728=FACE_BOUND('',#3524,.T.); -#3729=FACE_BOUND('',#3525,.T.); -#3730=FACE_BOUND('',#3526,.T.); -#3731=FACE_BOUND('',#3527,.T.); -#3732=FACE_BOUND('',#3528,.T.); -#3733=FACE_BOUND('',#3529,.T.); -#3734=FACE_BOUND('',#3530,.T.); -#3735=FACE_BOUND('',#3531,.T.); -#3736=FACE_BOUND('',#3532,.T.); -#3737=FACE_BOUND('',#3533,.T.); -#3738=FACE_BOUND('',#3534,.T.); -#3739=FACE_BOUND('',#3535,.T.); -#3740=FACE_BOUND('',#3536,.T.); -#3741=FACE_BOUND('',#3537,.T.); -#3742=FACE_BOUND('',#3538,.T.); -#3743=FACE_BOUND('',#3539,.T.); -#3744=FACE_BOUND('',#3540,.T.); -#3745=FACE_BOUND('',#3541,.T.); -#3746=FACE_BOUND('',#3542,.T.); -#3747=FACE_BOUND('',#3543,.T.); -#3748=FACE_BOUND('',#3544,.T.); -#3749=FACE_BOUND('',#3545,.T.); -#3750=FACE_BOUND('',#3546,.T.); -#3751=FACE_BOUND('',#3547,.T.); -#3752=FACE_BOUND('',#3548,.T.); -#3753=FACE_BOUND('',#3549,.T.); -#3754=FACE_BOUND('',#3550,.T.); -#3755=FACE_BOUND('',#3551,.T.); -#3756=FACE_BOUND('',#3552,.T.); -#3757=FACE_BOUND('',#3553,.T.); -#3758=FACE_BOUND('',#3554,.T.); -#3759=FACE_BOUND('',#3555,.T.); -#3760=FACE_BOUND('',#3556,.T.); -#3761=FACE_BOUND('',#3557,.T.); -#3762=FACE_BOUND('',#3558,.T.); -#3763=FACE_BOUND('',#3559,.T.); -#3764=FACE_BOUND('',#3560,.T.); -#3765=FACE_BOUND('',#3561,.T.); -#3766=FACE_BOUND('',#3562,.T.); -#3767=FACE_BOUND('',#3563,.T.); -#3768=PLANE('',#4193); -#3769=PLANE('',#4194); -#3770=PLANE('',#4195); -#3771=PLANE('',#4196); -#3772=PLANE('',#4197); -#3773=PLANE('',#4198); -#3774=PLANE('',#4199); -#3775=PLANE('',#4200); -#3776=PLANE('',#4201); -#3777=PLANE('',#4202); -#3778=PLANE('',#4203); -#3779=PLANE('',#4204); -#3780=PLANE('',#4205); -#3781=PLANE('',#4206); -#3782=PLANE('',#4207); -#3783=PLANE('',#4208); -#3784=PLANE('',#4209); -#3785=PLANE('',#4210); -#3786=PLANE('',#4211); -#3787=PLANE('',#4212); -#3788=PLANE('',#4213); -#3789=PLANE('',#4214); -#3790=PLANE('',#4215); -#3791=PLANE('',#4216); -#3792=PLANE('',#4217); -#3793=PLANE('',#4218); -#3794=PLANE('',#4219); -#3795=PLANE('',#4220); -#3796=PLANE('',#4221); -#3797=PLANE('',#4222); -#3798=PLANE('',#4223); -#3799=PLANE('',#4224); -#3800=PLANE('',#4225); -#3801=PLANE('',#4226); -#3802=PLANE('',#4227); -#3803=PLANE('',#4228); -#3804=PLANE('',#4229); -#3805=PLANE('',#4230); -#3806=PLANE('',#4232); -#3807=PLANE('',#4233); -#3808=PLANE('',#4234); -#3809=PLANE('',#4235); -#3810=PLANE('',#4236); -#3811=PLANE('',#4237); -#3812=PLANE('',#4238); -#3813=PLANE('',#4239); -#3814=PLANE('',#4241); -#3815=PLANE('',#4242); -#3816=PLANE('',#4243); -#3817=PLANE('',#4244); -#3818=PLANE('',#4245); -#3819=PLANE('',#4246); -#3820=PLANE('',#4247); -#3821=PLANE('',#4248); -#3822=PLANE('',#4249); -#3823=PLANE('',#4250); -#3824=PLANE('',#4251); -#3825=PLANE('',#4252); -#3826=PLANE('',#4253); -#3827=PLANE('',#4254); -#3828=PLANE('',#4255); -#3829=PLANE('',#4256); -#3830=PLANE('',#4257); -#3831=PLANE('',#4258); -#3832=PLANE('',#4259); -#3833=PLANE('',#4260); -#3834=PLANE('',#4261); -#3835=PLANE('',#4262); -#3836=PLANE('',#4263); -#3837=PLANE('',#4264); -#3838=PLANE('',#4265); -#3839=PLANE('',#4266); -#3840=PLANE('',#4267); -#3841=PLANE('',#4268); -#3842=PLANE('',#4269); -#3843=PLANE('',#4270); -#3844=PLANE('',#4271); -#3845=PLANE('',#4272); -#3846=PLANE('',#4273); -#3847=PLANE('',#4274); -#3848=PLANE('',#4275); -#3849=PLANE('',#4276); -#3850=PLANE('',#4277); -#3851=PLANE('',#4278); -#3852=PLANE('',#4279); -#3853=PLANE('',#4280); -#3854=PLANE('',#4281); -#3855=PLANE('',#4282); -#3856=PLANE('',#4283); -#3857=PLANE('',#4284); -#3858=PLANE('',#4285); -#3859=PLANE('',#4286); -#3860=PLANE('',#4287); -#3861=PLANE('',#4288); -#3862=PLANE('',#4289); -#3863=PLANE('',#4290); -#3864=PLANE('',#4291); -#3865=PLANE('',#4292); -#3866=PLANE('',#4293); -#3867=PLANE('',#4294); -#3868=PLANE('',#4295); -#3869=PLANE('',#4296); -#3870=PLANE('',#4297); -#3871=PLANE('',#4313); -#3872=PLANE('',#4314); -#3873=PLANE('',#4315); -#3874=PLANE('',#4316); -#3875=PLANE('',#4317); -#3876=PLANE('',#4318); -#3877=PLANE('',#4319); -#3878=PLANE('',#4320); -#3879=PLANE('',#4321); -#3880=PLANE('',#4322); -#3881=PLANE('',#4338); -#3882=PLANE('',#4339); -#3883=PLANE('',#4340); -#3884=PLANE('',#4341); -#3885=PLANE('',#4342); -#3886=PLANE('',#4343); -#3887=PLANE('',#4344); -#3888=PLANE('',#4345); -#3889=PLANE('',#4346); -#3890=PLANE('',#4347); -#3891=PLANE('',#4348); -#3892=PLANE('',#4349); -#3893=PLANE('',#4350); -#3894=PLANE('',#4351); -#3895=PLANE('',#4352); -#3896=PLANE('',#4353); -#3897=PLANE('',#4354); -#3898=PLANE('',#4355); -#3899=PLANE('',#4356); -#3900=PLANE('',#4357); -#3901=PLANE('',#4358); -#3902=PLANE('',#4359); -#3903=PLANE('',#4360); -#3904=PLANE('',#4361); -#3905=PLANE('',#4362); -#3906=PLANE('',#4393); -#3907=PLANE('',#4394); -#3908=PLANE('',#4395); -#3909=PLANE('',#4396); -#3910=PLANE('',#4397); -#3911=PLANE('',#4398); -#3912=PLANE('',#4399); -#3913=PLANE('',#4400); -#3914=PLANE('',#4401); -#3915=PLANE('',#4402); -#3916=PLANE('',#4403); -#3917=PLANE('',#4404); -#3918=PLANE('',#4405); -#3919=PLANE('',#4406); -#3920=PLANE('',#4407); -#3921=PLANE('',#4408); -#3922=PLANE('',#4409); -#3923=PLANE('',#4410); -#3924=PLANE('',#4411); -#3925=PLANE('',#4412); -#3926=PLANE('',#4413); -#3927=PLANE('',#4414); -#3928=PLANE('',#4415); -#3929=PLANE('',#4416); -#3930=PLANE('',#4417); -#3931=PLANE('',#4418); -#3932=PLANE('',#4419); -#3933=PLANE('',#4420); -#3934=PLANE('',#4421); -#3935=PLANE('',#4422); -#3936=PLANE('',#4423); -#3937=PLANE('',#4424); -#3938=PLANE('',#4425); -#3939=PLANE('',#4426); -#3940=PLANE('',#4427); -#3941=PLANE('',#4428); -#3942=PLANE('',#4429); -#3943=PLANE('',#4430); -#3944=PLANE('',#4431); -#3945=PLANE('',#4432); -#3946=PLANE('',#4433); -#3947=PLANE('',#4434); -#3948=PLANE('',#4435); -#3949=PLANE('',#4436); -#3950=PLANE('',#4437); -#3951=PLANE('',#4438); -#3952=ADVANCED_FACE('',(#3564),#3768,.F.); -#3953=ADVANCED_FACE('',(#3565),#3769,.F.); -#3954=ADVANCED_FACE('',(#3566),#3770,.F.); -#3955=ADVANCED_FACE('',(#3567),#3771,.F.); -#3956=ADVANCED_FACE('',(#3568),#3772,.T.); -#3957=ADVANCED_FACE('',(#3569),#3773,.T.); -#3958=ADVANCED_FACE('',(#3570),#3774,.T.); -#3959=ADVANCED_FACE('',(#3571),#3775,.F.); -#3960=ADVANCED_FACE('',(#3572),#3776,.F.); -#3961=ADVANCED_FACE('',(#3573),#3777,.F.); -#3962=ADVANCED_FACE('',(#3574),#3778,.F.); -#3963=ADVANCED_FACE('',(#3575),#3779,.F.); -#3964=ADVANCED_FACE('',(#3576),#3780,.T.); -#3965=ADVANCED_FACE('',(#3577),#3781,.T.); -#3966=ADVANCED_FACE('',(#3578),#3782,.T.); -#3967=ADVANCED_FACE('',(#3579),#3783,.F.); -#3968=ADVANCED_FACE('',(#3580),#3784,.T.); -#3969=ADVANCED_FACE('',(#3581),#3785,.T.); -#3970=ADVANCED_FACE('',(#3582),#3786,.T.); -#3971=ADVANCED_FACE('',(#3583),#3787,.T.); -#3972=ADVANCED_FACE('',(#3584),#3788,.T.); -#3973=ADVANCED_FACE('',(#3585),#3789,.T.); -#3974=ADVANCED_FACE('',(#3586),#3790,.T.); -#3975=ADVANCED_FACE('',(#3587),#3791,.F.); -#3976=ADVANCED_FACE('',(#3588),#3792,.F.); -#3977=ADVANCED_FACE('',(#3589),#3793,.T.); -#3978=ADVANCED_FACE('',(#3590),#3794,.F.); -#3979=ADVANCED_FACE('',(#3591),#3795,.F.); -#3980=ADVANCED_FACE('',(#3592),#3796,.F.); -#3981=ADVANCED_FACE('',(#3593),#3797,.F.); -#3982=ADVANCED_FACE('',(#3594),#3798,.F.); -#3983=ADVANCED_FACE('',(#3595),#3799,.F.); -#3984=ADVANCED_FACE('',(#3596),#3800,.F.); -#3985=ADVANCED_FACE('',(#3597),#3801,.F.); -#3986=ADVANCED_FACE('',(#3598),#3802,.F.); -#3987=ADVANCED_FACE('',(#3599),#3803,.F.); -#3988=ADVANCED_FACE('',(#3600),#3804,.F.); -#3989=ADVANCED_FACE('',(#3601),#3805,.F.); -#3990=ADVANCED_FACE('',(#3602),#3806,.T.); -#3991=ADVANCED_FACE('',(#3603),#3807,.T.); -#3992=ADVANCED_FACE('',(#3604),#3808,.T.); -#3993=ADVANCED_FACE('',(#3605),#3809,.T.); -#3994=ADVANCED_FACE('',(#3606),#3810,.F.); -#3995=ADVANCED_FACE('',(#3607),#3811,.T.); -#3996=ADVANCED_FACE('',(#3608),#3812,.T.); -#3997=ADVANCED_FACE('',(#3609),#3813,.T.); -#3998=ADVANCED_FACE('',(#3610),#3814,.F.); -#3999=ADVANCED_FACE('',(#3611),#3815,.F.); -#4000=ADVANCED_FACE('',(#3612),#3816,.F.); -#4001=ADVANCED_FACE('',(#3613),#3817,.F.); -#4002=ADVANCED_FACE('',(#3614),#3818,.F.); -#4003=ADVANCED_FACE('',(#3615),#3819,.F.); -#4004=ADVANCED_FACE('',(#3616),#3820,.F.); -#4005=ADVANCED_FACE('',(#3617),#3821,.F.); -#4006=ADVANCED_FACE('',(#3618),#3822,.F.); -#4007=ADVANCED_FACE('',(#3619),#3823,.F.); -#4008=ADVANCED_FACE('',(#3620),#3824,.F.); -#4009=ADVANCED_FACE('',(#3621),#3825,.F.); -#4010=ADVANCED_FACE('',(#3622),#3826,.F.); -#4011=ADVANCED_FACE('',(#3623),#3827,.F.); -#4012=ADVANCED_FACE('',(#3624),#3828,.F.); -#4013=ADVANCED_FACE('',(#3625),#3829,.F.); -#4014=ADVANCED_FACE('',(#3626),#3830,.F.); -#4015=ADVANCED_FACE('',(#3627),#3831,.F.); -#4016=ADVANCED_FACE('',(#3628),#3832,.F.); -#4017=ADVANCED_FACE('',(#3629),#3833,.F.); -#4018=ADVANCED_FACE('',(#3630),#3834,.F.); -#4019=ADVANCED_FACE('',(#3631),#3835,.F.); -#4020=ADVANCED_FACE('',(#3632),#3836,.F.); -#4021=ADVANCED_FACE('',(#3633),#3837,.F.); -#4022=ADVANCED_FACE('',(#3634),#3838,.F.); -#4023=ADVANCED_FACE('',(#3635),#3839,.F.); -#4024=ADVANCED_FACE('',(#3636),#3840,.F.); -#4025=ADVANCED_FACE('',(#3637),#3841,.F.); -#4026=ADVANCED_FACE('',(#3638),#3842,.F.); -#4027=ADVANCED_FACE('',(#3639),#3843,.F.); -#4028=ADVANCED_FACE('',(#3640),#3844,.F.); -#4029=ADVANCED_FACE('',(#3641),#3845,.F.); -#4030=ADVANCED_FACE('',(#3642),#3846,.F.); -#4031=ADVANCED_FACE('',(#3643),#3847,.F.); -#4032=ADVANCED_FACE('',(#3644),#3848,.F.); -#4033=ADVANCED_FACE('',(#3645),#3849,.F.); -#4034=ADVANCED_FACE('',(#3646),#3850,.F.); -#4035=ADVANCED_FACE('',(#3647),#3851,.F.); -#4036=ADVANCED_FACE('',(#3648),#3852,.F.); -#4037=ADVANCED_FACE('',(#3649),#3853,.F.); -#4038=ADVANCED_FACE('',(#3650),#3854,.F.); -#4039=ADVANCED_FACE('',(#3651),#3855,.F.); -#4040=ADVANCED_FACE('',(#3652),#3856,.F.); -#4041=ADVANCED_FACE('',(#3653),#3857,.F.); -#4042=ADVANCED_FACE('',(#3654),#3858,.F.); -#4043=ADVANCED_FACE('',(#3655),#3859,.F.); -#4044=ADVANCED_FACE('',(#3656),#3860,.F.); -#4045=ADVANCED_FACE('',(#3657),#3861,.F.); -#4046=ADVANCED_FACE('',(#3658),#3862,.F.); -#4047=ADVANCED_FACE('',(#3659),#3863,.F.); -#4048=ADVANCED_FACE('',(#3660),#3864,.F.); -#4049=ADVANCED_FACE('',(#3661),#3865,.F.); -#4050=ADVANCED_FACE('',(#3662),#3866,.F.); -#4051=ADVANCED_FACE('',(#3663),#3867,.F.); -#4052=ADVANCED_FACE('',(#3664),#3868,.F.); -#4053=ADVANCED_FACE('',(#3665),#3869,.F.); -#4054=ADVANCED_FACE('',(#3666),#3870,.F.); -#4055=ADVANCED_FACE('',(#3667),#58,.T.); -#4056=ADVANCED_FACE('',(#3668),#59,.T.); -#4057=ADVANCED_FACE('',(#3669),#60,.T.); -#4058=ADVANCED_FACE('',(#3670),#61,.T.); -#4059=ADVANCED_FACE('',(#3671),#62,.T.); -#4060=ADVANCED_FACE('',(#3672),#3871,.F.); -#4061=ADVANCED_FACE('',(#3673),#3872,.F.); -#4062=ADVANCED_FACE('',(#3674),#3873,.F.); -#4063=ADVANCED_FACE('',(#3675),#3874,.F.); -#4064=ADVANCED_FACE('',(#3676),#3875,.F.); -#4065=ADVANCED_FACE('',(#3677),#3876,.F.); -#4066=ADVANCED_FACE('',(#3678),#3877,.F.); -#4067=ADVANCED_FACE('',(#3679),#3878,.F.); -#4068=ADVANCED_FACE('',(#3680),#3879,.F.); -#4069=ADVANCED_FACE('',(#3681),#3880,.F.); -#4070=ADVANCED_FACE('',(#3682),#63,.T.); -#4071=ADVANCED_FACE('',(#3683),#64,.T.); -#4072=ADVANCED_FACE('',(#3684),#65,.T.); -#4073=ADVANCED_FACE('',(#3685),#66,.T.); -#4074=ADVANCED_FACE('',(#3686),#67,.T.); -#4075=ADVANCED_FACE('',(#3687),#3881,.F.); -#4076=ADVANCED_FACE('',(#3688),#3882,.F.); -#4077=ADVANCED_FACE('',(#3689),#3883,.F.); -#4078=ADVANCED_FACE('',(#3690),#3884,.F.); -#4079=ADVANCED_FACE('',(#3691),#3885,.F.); -#4080=ADVANCED_FACE('',(#3692),#3886,.F.); -#4081=ADVANCED_FACE('',(#3693),#3887,.F.); -#4082=ADVANCED_FACE('',(#3694),#3888,.F.); -#4083=ADVANCED_FACE('',(#3695),#3889,.F.); -#4084=ADVANCED_FACE('',(#3696),#3890,.F.); -#4085=ADVANCED_FACE('',(#3697),#3891,.F.); -#4086=ADVANCED_FACE('',(#3698),#3892,.F.); -#4087=ADVANCED_FACE('',(#3699),#3893,.F.); -#4088=ADVANCED_FACE('',(#3700),#3894,.F.); -#4089=ADVANCED_FACE('',(#3701),#3895,.F.); -#4090=ADVANCED_FACE('',(#3702),#3896,.F.); -#4091=ADVANCED_FACE('',(#3703),#3897,.F.); -#4092=ADVANCED_FACE('',(#3704),#3898,.F.); -#4093=ADVANCED_FACE('',(#3705),#3899,.F.); -#4094=ADVANCED_FACE('',(#3706),#3900,.F.); -#4095=ADVANCED_FACE('',(#3707),#3901,.F.); -#4096=ADVANCED_FACE('',(#3708),#3902,.F.); -#4097=ADVANCED_FACE('',(#3709),#3903,.F.); -#4098=ADVANCED_FACE('',(#3710),#3904,.F.); -#4099=ADVANCED_FACE('',(#3711),#3905,.F.); -#4100=ADVANCED_FACE('',(#3712),#68,.F.); -#4101=ADVANCED_FACE('',(#3713),#69,.F.); -#4102=ADVANCED_FACE('',(#3714),#70,.F.); -#4103=ADVANCED_FACE('',(#3715),#71,.F.); -#4104=ADVANCED_FACE('',(#3716),#72,.F.); -#4105=ADVANCED_FACE('',(#3717),#73,.F.); -#4106=ADVANCED_FACE('',(#3718),#74,.F.); -#4107=ADVANCED_FACE('',(#3719),#75,.F.); -#4108=ADVANCED_FACE('',(#3720),#76,.F.); -#4109=ADVANCED_FACE('',(#3721),#77,.F.); -#4110=ADVANCED_FACE('',(#3722),#3906,.F.); -#4111=ADVANCED_FACE('',(#3723),#3907,.F.); -#4112=ADVANCED_FACE('',(#3724),#3908,.F.); -#4113=ADVANCED_FACE('',(#3725),#3909,.F.); -#4114=ADVANCED_FACE('',(#3726),#3910,.F.); -#4115=ADVANCED_FACE('',(#3727),#3911,.F.); -#4116=ADVANCED_FACE('',(#3728),#3912,.F.); -#4117=ADVANCED_FACE('',(#3729),#3913,.F.); -#4118=ADVANCED_FACE('',(#3730),#3914,.F.); -#4119=ADVANCED_FACE('',(#3731),#3915,.F.); -#4120=ADVANCED_FACE('',(#3732),#3916,.F.); -#4121=ADVANCED_FACE('',(#3733),#3917,.F.); -#4122=ADVANCED_FACE('',(#3734),#3918,.T.); -#4123=ADVANCED_FACE('',(#3735),#3919,.F.); -#4124=ADVANCED_FACE('',(#3736),#3920,.T.); -#4125=ADVANCED_FACE('',(#3737),#3921,.T.); -#4126=ADVANCED_FACE('',(#3738),#3922,.T.); -#4127=ADVANCED_FACE('',(#3739),#3923,.T.); -#4128=ADVANCED_FACE('',(#3740),#3924,.T.); -#4129=ADVANCED_FACE('',(#3741),#3925,.T.); -#4130=ADVANCED_FACE('',(#3742),#3926,.T.); -#4131=ADVANCED_FACE('',(#3743),#3927,.T.); -#4132=ADVANCED_FACE('',(#3744),#3928,.T.); -#4133=ADVANCED_FACE('',(#3745),#3929,.T.); -#4134=ADVANCED_FACE('',(#3746),#3930,.T.); -#4135=ADVANCED_FACE('',(#3747),#3931,.T.); -#4136=ADVANCED_FACE('',(#3748),#3932,.T.); -#4137=ADVANCED_FACE('',(#3749),#3933,.T.); -#4138=ADVANCED_FACE('',(#3750),#3934,.T.); -#4139=ADVANCED_FACE('',(#3751),#3935,.T.); -#4140=ADVANCED_FACE('',(#3752),#3936,.T.); -#4141=ADVANCED_FACE('',(#3753),#3937,.T.); -#4142=ADVANCED_FACE('',(#3754),#3938,.T.); -#4143=ADVANCED_FACE('',(#3755),#3939,.T.); -#4144=ADVANCED_FACE('',(#3756),#3940,.T.); -#4145=ADVANCED_FACE('',(#3757),#3941,.T.); -#4146=ADVANCED_FACE('',(#3758),#3942,.T.); -#4147=ADVANCED_FACE('',(#3759),#3943,.T.); -#4148=ADVANCED_FACE('',(#3760),#3944,.T.); -#4149=ADVANCED_FACE('',(#3761),#3945,.T.); -#4150=ADVANCED_FACE('',(#3762),#3946,.T.); -#4151=ADVANCED_FACE('',(#3763),#3947,.T.); -#4152=ADVANCED_FACE('',(#3764),#3948,.T.); -#4153=ADVANCED_FACE('',(#3765),#3949,.T.); -#4154=ADVANCED_FACE('',(#3766),#3950,.T.); -#4155=ADVANCED_FACE('',(#3767),#3951,.T.); -#4156=CLOSED_SHELL('',(#3952,#3953,#3954,#3955,#3956,#3957,#3958,#3959, -#3960,#3961,#3962,#3963,#3964,#3965,#3966,#3967,#3968,#3969,#3970,#3971, -#3972,#3973,#3974,#3975,#3976,#3977,#3978,#3979,#3980,#3981,#3982,#3983, -#3984,#3985,#3986,#3987,#3988,#3989)); -#4157=CLOSED_SHELL('',(#3990,#3991,#3992,#3993,#3994,#3995,#3996,#3997)); -#4158=CLOSED_SHELL('',(#3998,#3999,#4000,#4001,#4002,#4003,#4004,#4005, -#4006,#4007,#4008,#4009,#4010,#4011,#4012,#4013,#4014,#4015,#4016,#4017, -#4018,#4019,#4020,#4021,#4022,#4023,#4024,#4025,#4026,#4027,#4028,#4029, -#4030,#4031,#4032,#4033,#4034,#4035,#4036,#4037,#4038,#4039,#4040,#4041, -#4042,#4043,#4044,#4045,#4046,#4047,#4048,#4049,#4050,#4051,#4052,#4053, -#4054,#4055,#4056,#4057,#4058,#4059,#4060,#4061,#4062,#4063,#4064,#4065, -#4066,#4067,#4068,#4069,#4070,#4071,#4072,#4073,#4074,#4075,#4076,#4077, -#4078,#4079,#4080,#4081,#4082,#4083,#4084,#4085,#4086,#4087,#4088,#4089, -#4090,#4091,#4092,#4093,#4094,#4095,#4096,#4097,#4098,#4099,#4100,#4101, -#4102,#4103,#4104,#4105,#4106,#4107,#4108,#4109,#4110,#4111,#4112,#4113, -#4114,#4115,#4116,#4117,#4118,#4119,#4120,#4121,#4122,#4123,#4124,#4125, -#4126,#4127,#4128,#4129,#4130,#4131,#4132,#4133,#4134,#4135,#4136,#4137, -#4138,#4139,#4140,#4141,#4142,#4143,#4144,#4145,#4146,#4147,#4148,#4149, -#4150,#4151,#4152,#4153,#4154,#4155)); -#4159=STYLED_ITEM('',(#4162),#4181); -#4160=STYLED_ITEM('',(#4163),#4182); -#4161=STYLED_ITEM('',(#4164),#4183); -#4162=PRESENTATION_STYLE_ASSIGNMENT((#4165)); -#4163=PRESENTATION_STYLE_ASSIGNMENT((#4166)); -#4164=PRESENTATION_STYLE_ASSIGNMENT((#4167)); -#4165=SURFACE_STYLE_USAGE(.BOTH.,#4168); -#4166=SURFACE_STYLE_USAGE(.BOTH.,#4169); -#4167=SURFACE_STYLE_USAGE(.BOTH.,#4170); -#4168=SURFACE_SIDE_STYLE('',(#4171)); -#4169=SURFACE_SIDE_STYLE('',(#4172)); -#4170=SURFACE_SIDE_STYLE('',(#4173)); -#4171=SURFACE_STYLE_FILL_AREA(#4174); -#4172=SURFACE_STYLE_FILL_AREA(#4175); -#4173=SURFACE_STYLE_FILL_AREA(#4176); -#4174=FILL_AREA_STYLE('',(#4177)); -#4175=FILL_AREA_STYLE('',(#4178)); -#4176=FILL_AREA_STYLE('',(#4179)); -#4177=FILL_AREA_STYLE_COLOUR('',#4180); -#4178=FILL_AREA_STYLE_COLOUR('',#78); -#4179=FILL_AREA_STYLE_COLOUR('',#79); -#4180=COLOUR_RGB('',0.689999997615814,0.689999997615814,0.689999997615814); -#4181=MANIFOLD_SOLID_BREP('SHF-105-01-D_header',#4156); -#4182=MANIFOLD_SOLID_BREP('SHF-First_Position_Indicator',#4157); -#4183=MANIFOLD_SOLID_BREP('T-1S71-02-05-D-SM',#4158); -#4184=SHAPE_DEFINITION_REPRESENTATION(#6691,#4188); -#4185=SHAPE_DEFINITION_REPRESENTATION(#6692,#4189); -#4186=SHAPE_DEFINITION_REPRESENTATION(#6694,#4190); -#4187=SHAPE_DEFINITION_REPRESENTATION(#6696,#4191); -#4188=SHAPE_REPRESENTATION('SHF-105-01-L-D-SM',(#4192,#4231,#4240,#4439), -#6677); -#4189=SHAPE_REPRESENTATION('SHF-105-01-D_header',(#4192),#6678); -#4190=SHAPE_REPRESENTATION('SHF-First_Position_Indicator',(#4192),#6679); -#4191=SHAPE_REPRESENTATION('T-1S71-02-05-D-SM',(#4192),#6680); -#4192=AXIS2_PLACEMENT_3D('',#5486,#4440,#4441); -#4193=AXIS2_PLACEMENT_3D('',#5487,#4442,#4443); -#4194=AXIS2_PLACEMENT_3D('',#5496,#4448,#4449); -#4195=AXIS2_PLACEMENT_3D('',#5505,#4454,#4455); -#4196=AXIS2_PLACEMENT_3D('',#5514,#4460,#4461); -#4197=AXIS2_PLACEMENT_3D('',#5562,#4487,#4488); -#4198=AXIS2_PLACEMENT_3D('',#5582,#4500,#4501); -#4199=AXIS2_PLACEMENT_3D('',#5588,#4505,#4506); -#4200=AXIS2_PLACEMENT_3D('',#5594,#4510,#4511); -#4201=AXIS2_PLACEMENT_3D('',#5603,#4517,#4518); -#4202=AXIS2_PLACEMENT_3D('',#5605,#4520,#4521); -#4203=AXIS2_PLACEMENT_3D('',#5611,#4525,#4526); -#4204=AXIS2_PLACEMENT_3D('',#5613,#4528,#4529); -#4205=AXIS2_PLACEMENT_3D('',#5615,#4531,#4532); -#4206=AXIS2_PLACEMENT_3D('',#5621,#4536,#4537); -#4207=AXIS2_PLACEMENT_3D('',#5635,#4545,#4546); -#4208=AXIS2_PLACEMENT_3D('',#5638,#4549,#4550); -#4209=AXIS2_PLACEMENT_3D('',#5640,#4552,#4553); -#4210=AXIS2_PLACEMENT_3D('',#5642,#4555,#4556); -#4211=AXIS2_PLACEMENT_3D('',#5648,#4560,#4561); -#4212=AXIS2_PLACEMENT_3D('',#5650,#4563,#4564); -#4213=AXIS2_PLACEMENT_3D('',#5652,#4566,#4567); -#4214=AXIS2_PLACEMENT_3D('',#5656,#4570,#4571); -#4215=AXIS2_PLACEMENT_3D('',#5668,#4578,#4579); -#4216=AXIS2_PLACEMENT_3D('',#5670,#4581,#4582); -#4217=AXIS2_PLACEMENT_3D('',#5674,#4585,#4586); -#4218=AXIS2_PLACEMENT_3D('',#5676,#4588,#4589); -#4219=AXIS2_PLACEMENT_3D('',#5677,#4590,#4591); -#4220=AXIS2_PLACEMENT_3D('',#5679,#4593,#4594); -#4221=AXIS2_PLACEMENT_3D('',#5682,#4597,#4598); -#4222=AXIS2_PLACEMENT_3D('',#5683,#4599,#4600); -#4223=AXIS2_PLACEMENT_3D('',#5685,#4602,#4603); -#4224=AXIS2_PLACEMENT_3D('',#5686,#4604,#4605); -#4225=AXIS2_PLACEMENT_3D('',#5688,#4607,#4608); -#4226=AXIS2_PLACEMENT_3D('',#5689,#4609,#4610); -#4227=AXIS2_PLACEMENT_3D('',#5691,#4612,#4613); -#4228=AXIS2_PLACEMENT_3D('',#5692,#4614,#4615); -#4229=AXIS2_PLACEMENT_3D('',#5694,#4617,#4618); -#4230=AXIS2_PLACEMENT_3D('',#5696,#4620,#4621); -#4231=AXIS2_PLACEMENT_3D('',#5697,#4622,#4623); -#4232=AXIS2_PLACEMENT_3D('',#5698,#4624,#4625); -#4233=AXIS2_PLACEMENT_3D('',#5715,#4634,#4635); -#4234=AXIS2_PLACEMENT_3D('',#5722,#4640,#4641); -#4235=AXIS2_PLACEMENT_3D('',#5726,#4644,#4645); -#4236=AXIS2_PLACEMENT_3D('',#5728,#4647,#4648); -#4237=AXIS2_PLACEMENT_3D('',#5729,#4649,#4650); -#4238=AXIS2_PLACEMENT_3D('',#5733,#4653,#4654); -#4239=AXIS2_PLACEMENT_3D('',#5735,#4656,#4657); -#4240=AXIS2_PLACEMENT_3D('',#5736,#4658,#4659); -#4241=AXIS2_PLACEMENT_3D('',#5737,#4660,#4661); -#4242=AXIS2_PLACEMENT_3D('',#5810,#4698,#4699); -#4243=AXIS2_PLACEMENT_3D('',#5883,#4736,#4737); -#4244=AXIS2_PLACEMENT_3D('',#5889,#4741,#4742); -#4245=AXIS2_PLACEMENT_3D('',#5895,#4746,#4747); -#4246=AXIS2_PLACEMENT_3D('',#5901,#4751,#4752); -#4247=AXIS2_PLACEMENT_3D('',#5907,#4756,#4757); -#4248=AXIS2_PLACEMENT_3D('',#5913,#4761,#4762); -#4249=AXIS2_PLACEMENT_3D('',#5919,#4766,#4767); -#4250=AXIS2_PLACEMENT_3D('',#5925,#4771,#4772); -#4251=AXIS2_PLACEMENT_3D('',#5931,#4776,#4777); -#4252=AXIS2_PLACEMENT_3D('',#5937,#4781,#4782); -#4253=AXIS2_PLACEMENT_3D('',#5943,#4786,#4787); -#4254=AXIS2_PLACEMENT_3D('',#5949,#4791,#4792); -#4255=AXIS2_PLACEMENT_3D('',#5955,#4796,#4797); -#4256=AXIS2_PLACEMENT_3D('',#5961,#4801,#4802); -#4257=AXIS2_PLACEMENT_3D('',#5967,#4806,#4807); -#4258=AXIS2_PLACEMENT_3D('',#5973,#4811,#4812); -#4259=AXIS2_PLACEMENT_3D('',#5979,#4816,#4817); -#4260=AXIS2_PLACEMENT_3D('',#5985,#4821,#4822); -#4261=AXIS2_PLACEMENT_3D('',#5991,#4826,#4827); -#4262=AXIS2_PLACEMENT_3D('',#5997,#4831,#4832); -#4263=AXIS2_PLACEMENT_3D('',#6003,#4836,#4837); -#4264=AXIS2_PLACEMENT_3D('',#6012,#4842,#4843); -#4265=AXIS2_PLACEMENT_3D('',#6021,#4848,#4849); -#4266=AXIS2_PLACEMENT_3D('',#6030,#4854,#4855); -#4267=AXIS2_PLACEMENT_3D('',#6039,#4860,#4861); -#4268=AXIS2_PLACEMENT_3D('',#6048,#4866,#4867); -#4269=AXIS2_PLACEMENT_3D('',#6054,#4871,#4872); -#4270=AXIS2_PLACEMENT_3D('',#6060,#4876,#4877); -#4271=AXIS2_PLACEMENT_3D('',#6066,#4881,#4882); -#4272=AXIS2_PLACEMENT_3D('',#6072,#4886,#4887); -#4273=AXIS2_PLACEMENT_3D('',#6078,#4891,#4892); -#4274=AXIS2_PLACEMENT_3D('',#6084,#4896,#4897); -#4275=AXIS2_PLACEMENT_3D('',#6090,#4901,#4902); -#4276=AXIS2_PLACEMENT_3D('',#6096,#4906,#4907); -#4277=AXIS2_PLACEMENT_3D('',#6102,#4911,#4912); -#4278=AXIS2_PLACEMENT_3D('',#6108,#4916,#4917); -#4279=AXIS2_PLACEMENT_3D('',#6111,#4920,#4921); -#4280=AXIS2_PLACEMENT_3D('',#6114,#4924,#4925); -#4281=AXIS2_PLACEMENT_3D('',#6117,#4928,#4929); -#4282=AXIS2_PLACEMENT_3D('',#6120,#4932,#4933); -#4283=AXIS2_PLACEMENT_3D('',#6123,#4936,#4937); -#4284=AXIS2_PLACEMENT_3D('',#6132,#4942,#4943); -#4285=AXIS2_PLACEMENT_3D('',#6141,#4948,#4949); -#4286=AXIS2_PLACEMENT_3D('',#6150,#4954,#4955); -#4287=AXIS2_PLACEMENT_3D('',#6159,#4960,#4961); -#4288=AXIS2_PLACEMENT_3D('',#6168,#4966,#4967); -#4289=AXIS2_PLACEMENT_3D('',#6174,#4971,#4972); -#4290=AXIS2_PLACEMENT_3D('',#6180,#4976,#4977); -#4291=AXIS2_PLACEMENT_3D('',#6186,#4981,#4982); -#4292=AXIS2_PLACEMENT_3D('',#6192,#4986,#4987); -#4293=AXIS2_PLACEMENT_3D('',#6198,#4991,#4992); -#4294=AXIS2_PLACEMENT_3D('',#6204,#4996,#4997); -#4295=AXIS2_PLACEMENT_3D('',#6210,#5001,#5002); -#4296=AXIS2_PLACEMENT_3D('',#6216,#5006,#5007); -#4297=AXIS2_PLACEMENT_3D('',#6222,#5011,#5012); -#4298=AXIS2_PLACEMENT_3D('',#6228,#5016,#5017); -#4299=AXIS2_PLACEMENT_3D('',#6229,#5018,#5019); -#4300=AXIS2_PLACEMENT_3D('',#6233,#5021,#5022); -#4301=AXIS2_PLACEMENT_3D('',#6234,#5023,#5024); -#4302=AXIS2_PLACEMENT_3D('',#6235,#5025,#5026); -#4303=AXIS2_PLACEMENT_3D('',#6237,#5027,#5028); -#4304=AXIS2_PLACEMENT_3D('',#6240,#5030,#5031); -#4305=AXIS2_PLACEMENT_3D('',#6241,#5032,#5033); -#4306=AXIS2_PLACEMENT_3D('',#6243,#5034,#5035); -#4307=AXIS2_PLACEMENT_3D('',#6246,#5037,#5038); -#4308=AXIS2_PLACEMENT_3D('',#6247,#5039,#5040); -#4309=AXIS2_PLACEMENT_3D('',#6249,#5041,#5042); -#4310=AXIS2_PLACEMENT_3D('',#6252,#5044,#5045); -#4311=AXIS2_PLACEMENT_3D('',#6253,#5046,#5047); -#4312=AXIS2_PLACEMENT_3D('',#6255,#5048,#5049); -#4313=AXIS2_PLACEMENT_3D('',#6258,#5051,#5052); -#4314=AXIS2_PLACEMENT_3D('',#6264,#5056,#5057); -#4315=AXIS2_PLACEMENT_3D('',#6270,#5061,#5062); -#4316=AXIS2_PLACEMENT_3D('',#6276,#5066,#5067); -#4317=AXIS2_PLACEMENT_3D('',#6282,#5071,#5072); -#4318=AXIS2_PLACEMENT_3D('',#6288,#5076,#5077); -#4319=AXIS2_PLACEMENT_3D('',#6297,#5082,#5083); -#4320=AXIS2_PLACEMENT_3D('',#6306,#5088,#5089); -#4321=AXIS2_PLACEMENT_3D('',#6315,#5094,#5095); -#4322=AXIS2_PLACEMENT_3D('',#6324,#5100,#5101); -#4323=AXIS2_PLACEMENT_3D('',#6333,#5106,#5107); -#4324=AXIS2_PLACEMENT_3D('',#6334,#5108,#5109); -#4325=AXIS2_PLACEMENT_3D('',#6338,#5111,#5112); -#4326=AXIS2_PLACEMENT_3D('',#6339,#5113,#5114); -#4327=AXIS2_PLACEMENT_3D('',#6340,#5115,#5116); -#4328=AXIS2_PLACEMENT_3D('',#6342,#5117,#5118); -#4329=AXIS2_PLACEMENT_3D('',#6345,#5120,#5121); -#4330=AXIS2_PLACEMENT_3D('',#6346,#5122,#5123); -#4331=AXIS2_PLACEMENT_3D('',#6348,#5124,#5125); -#4332=AXIS2_PLACEMENT_3D('',#6351,#5127,#5128); -#4333=AXIS2_PLACEMENT_3D('',#6352,#5129,#5130); -#4334=AXIS2_PLACEMENT_3D('',#6354,#5131,#5132); -#4335=AXIS2_PLACEMENT_3D('',#6357,#5134,#5135); -#4336=AXIS2_PLACEMENT_3D('',#6358,#5136,#5137); -#4337=AXIS2_PLACEMENT_3D('',#6360,#5138,#5139); -#4338=AXIS2_PLACEMENT_3D('',#6363,#5141,#5142); -#4339=AXIS2_PLACEMENT_3D('',#6369,#5146,#5147); -#4340=AXIS2_PLACEMENT_3D('',#6375,#5151,#5152); -#4341=AXIS2_PLACEMENT_3D('',#6381,#5156,#5157); -#4342=AXIS2_PLACEMENT_3D('',#6387,#5161,#5162); -#4343=AXIS2_PLACEMENT_3D('',#6393,#5166,#5167); -#4344=AXIS2_PLACEMENT_3D('',#6399,#5171,#5172); -#4345=AXIS2_PLACEMENT_3D('',#6405,#5176,#5177); -#4346=AXIS2_PLACEMENT_3D('',#6411,#5181,#5182); -#4347=AXIS2_PLACEMENT_3D('',#6417,#5186,#5187); -#4348=AXIS2_PLACEMENT_3D('',#6423,#5191,#5192); -#4349=AXIS2_PLACEMENT_3D('',#6429,#5196,#5197); -#4350=AXIS2_PLACEMENT_3D('',#6435,#5201,#5202); -#4351=AXIS2_PLACEMENT_3D('',#6441,#5206,#5207); -#4352=AXIS2_PLACEMENT_3D('',#6447,#5211,#5212); -#4353=AXIS2_PLACEMENT_3D('',#6453,#5216,#5217); -#4354=AXIS2_PLACEMENT_3D('',#6459,#5221,#5222); -#4355=AXIS2_PLACEMENT_3D('',#6465,#5226,#5227); -#4356=AXIS2_PLACEMENT_3D('',#6471,#5231,#5232); -#4357=AXIS2_PLACEMENT_3D('',#6477,#5236,#5237); -#4358=AXIS2_PLACEMENT_3D('',#6483,#5241,#5242); -#4359=AXIS2_PLACEMENT_3D('',#6489,#5246,#5247); -#4360=AXIS2_PLACEMENT_3D('',#6495,#5251,#5252); -#4361=AXIS2_PLACEMENT_3D('',#6501,#5256,#5257); -#4362=AXIS2_PLACEMENT_3D('',#6507,#5261,#5262); -#4363=AXIS2_PLACEMENT_3D('',#6513,#5266,#5267); -#4364=AXIS2_PLACEMENT_3D('',#6514,#5268,#5269); -#4365=AXIS2_PLACEMENT_3D('',#6515,#5270,#5271); -#4366=AXIS2_PLACEMENT_3D('',#6516,#5272,#5273); -#4367=AXIS2_PLACEMENT_3D('',#6517,#5274,#5275); -#4368=AXIS2_PLACEMENT_3D('',#6518,#5276,#5277); -#4369=AXIS2_PLACEMENT_3D('',#6519,#5278,#5279); -#4370=AXIS2_PLACEMENT_3D('',#6520,#5280,#5281); -#4371=AXIS2_PLACEMENT_3D('',#6521,#5282,#5283); -#4372=AXIS2_PLACEMENT_3D('',#6522,#5284,#5285); -#4373=AXIS2_PLACEMENT_3D('',#6523,#5286,#5287); -#4374=AXIS2_PLACEMENT_3D('',#6524,#5288,#5289); -#4375=AXIS2_PLACEMENT_3D('',#6525,#5290,#5291); -#4376=AXIS2_PLACEMENT_3D('',#6526,#5292,#5293); -#4377=AXIS2_PLACEMENT_3D('',#6527,#5294,#5295); -#4378=AXIS2_PLACEMENT_3D('',#6528,#5296,#5297); -#4379=AXIS2_PLACEMENT_3D('',#6529,#5298,#5299); -#4380=AXIS2_PLACEMENT_3D('',#6533,#5301,#5302); -#4381=AXIS2_PLACEMENT_3D('',#6534,#5303,#5304); -#4382=AXIS2_PLACEMENT_3D('',#6538,#5306,#5307); -#4383=AXIS2_PLACEMENT_3D('',#6539,#5308,#5309); -#4384=AXIS2_PLACEMENT_3D('',#6540,#5310,#5311); -#4385=AXIS2_PLACEMENT_3D('',#6544,#5313,#5314); -#4386=AXIS2_PLACEMENT_3D('',#6545,#5315,#5316); -#4387=AXIS2_PLACEMENT_3D('',#6546,#5317,#5318); -#4388=AXIS2_PLACEMENT_3D('',#6550,#5320,#5321); -#4389=AXIS2_PLACEMENT_3D('',#6551,#5322,#5323); -#4390=AXIS2_PLACEMENT_3D('',#6552,#5324,#5325); -#4391=AXIS2_PLACEMENT_3D('',#6556,#5327,#5328); -#4392=AXIS2_PLACEMENT_3D('',#6557,#5329,#5330); -#4393=AXIS2_PLACEMENT_3D('',#6558,#5331,#5332); -#4394=AXIS2_PLACEMENT_3D('',#6564,#5336,#5337); -#4395=AXIS2_PLACEMENT_3D('',#6570,#5341,#5342); -#4396=AXIS2_PLACEMENT_3D('',#6576,#5346,#5347); -#4397=AXIS2_PLACEMENT_3D('',#6582,#5351,#5352); -#4398=AXIS2_PLACEMENT_3D('',#6588,#5356,#5357); -#4399=AXIS2_PLACEMENT_3D('',#6591,#5360,#5361); -#4400=AXIS2_PLACEMENT_3D('',#6594,#5364,#5365); -#4401=AXIS2_PLACEMENT_3D('',#6597,#5368,#5369); -#4402=AXIS2_PLACEMENT_3D('',#6600,#5372,#5373); -#4403=AXIS2_PLACEMENT_3D('',#6603,#5376,#5377); -#4404=AXIS2_PLACEMENT_3D('',#6622,#5396,#5397); -#4405=AXIS2_PLACEMENT_3D('',#6641,#5416,#5417); -#4406=AXIS2_PLACEMENT_3D('',#6642,#5418,#5419); -#4407=AXIS2_PLACEMENT_3D('',#6643,#5420,#5421); -#4408=AXIS2_PLACEMENT_3D('',#6644,#5422,#5423); -#4409=AXIS2_PLACEMENT_3D('',#6645,#5424,#5425); -#4410=AXIS2_PLACEMENT_3D('',#6646,#5426,#5427); -#4411=AXIS2_PLACEMENT_3D('',#6647,#5428,#5429); -#4412=AXIS2_PLACEMENT_3D('',#6648,#5430,#5431); -#4413=AXIS2_PLACEMENT_3D('',#6649,#5432,#5433); -#4414=AXIS2_PLACEMENT_3D('',#6650,#5434,#5435); -#4415=AXIS2_PLACEMENT_3D('',#6651,#5436,#5437); -#4416=AXIS2_PLACEMENT_3D('',#6652,#5438,#5439); -#4417=AXIS2_PLACEMENT_3D('',#6653,#5440,#5441); -#4418=AXIS2_PLACEMENT_3D('',#6654,#5442,#5443); -#4419=AXIS2_PLACEMENT_3D('',#6655,#5444,#5445); -#4420=AXIS2_PLACEMENT_3D('',#6656,#5446,#5447); -#4421=AXIS2_PLACEMENT_3D('',#6657,#5448,#5449); -#4422=AXIS2_PLACEMENT_3D('',#6658,#5450,#5451); -#4423=AXIS2_PLACEMENT_3D('',#6659,#5452,#5453); -#4424=AXIS2_PLACEMENT_3D('',#6660,#5454,#5455); -#4425=AXIS2_PLACEMENT_3D('',#6661,#5456,#5457); -#4426=AXIS2_PLACEMENT_3D('',#6662,#5458,#5459); -#4427=AXIS2_PLACEMENT_3D('',#6663,#5460,#5461); -#4428=AXIS2_PLACEMENT_3D('',#6664,#5462,#5463); -#4429=AXIS2_PLACEMENT_3D('',#6665,#5464,#5465); -#4430=AXIS2_PLACEMENT_3D('',#6666,#5466,#5467); -#4431=AXIS2_PLACEMENT_3D('',#6667,#5468,#5469); -#4432=AXIS2_PLACEMENT_3D('',#6668,#5470,#5471); -#4433=AXIS2_PLACEMENT_3D('',#6669,#5472,#5473); -#4434=AXIS2_PLACEMENT_3D('',#6670,#5474,#5475); -#4435=AXIS2_PLACEMENT_3D('',#6671,#5476,#5477); -#4436=AXIS2_PLACEMENT_3D('',#6672,#5478,#5479); -#4437=AXIS2_PLACEMENT_3D('',#6673,#5480,#5481); -#4438=AXIS2_PLACEMENT_3D('',#6674,#5482,#5483); -#4439=AXIS2_PLACEMENT_3D('',#6675,#5484,#5485); -#4440=DIRECTION('',(0.,0.,1.)); -#4441=DIRECTION('',(1.,0.,0.)); -#4442=DIRECTION('',(1.,0.,0.)); -#4443=DIRECTION('',(0.,0.,-1.)); -#4444=DIRECTION('',(0.,0.,-1.)); -#4445=DIRECTION('',(0.,-1.,0.)); -#4446=DIRECTION('',(0.,0.,-1.)); -#4447=DIRECTION('',(0.,-1.,0.)); -#4448=DIRECTION('',(0.,0.,1.)); -#4449=DIRECTION('',(1.,0.,0.)); -#4450=DIRECTION('',(-1.,0.,0.)); -#4451=DIRECTION('',(0.,1.,2.13425624505021E-16)); -#4452=DIRECTION('',(1.,0.,0.)); -#4453=DIRECTION('',(0.,-1.,0.)); -#4454=DIRECTION('',(0.,0.,1.)); -#4455=DIRECTION('',(1.,0.,0.)); -#4456=DIRECTION('',(-1.,0.,0.)); -#4457=DIRECTION('',(0.,-1.,0.)); -#4458=DIRECTION('',(-1.,0.,0.)); -#4459=DIRECTION('',(0.,-1.,0.)); -#4460=DIRECTION('',(0.,-1.,0.)); -#4461=DIRECTION('',(0.,0.,-1.)); -#4462=DIRECTION('',(0.,0.,1.)); -#4463=DIRECTION('',(-1.,0.,0.)); -#4464=DIRECTION('',(-1.,0.,0.)); -#4465=DIRECTION('',(0.,0.,1.)); -#4466=DIRECTION('',(-1.,0.,0.)); -#4467=DIRECTION('',(0.,0.,1.)); -#4468=DIRECTION('',(-1.,0.,0.)); -#4469=DIRECTION('',(0.,0.,-1.)); -#4470=DIRECTION('',(1.,0.,0.)); -#4471=DIRECTION('',(0.,0.,1.)); -#4472=DIRECTION('',(-1.,0.,0.)); -#4473=DIRECTION('',(0.,0.,-1.)); -#4474=DIRECTION('',(1.,0.,0.)); -#4475=DIRECTION('',(0.,0.,-1.)); -#4476=DIRECTION('',(-1.,0.,0.)); -#4477=DIRECTION('',(0.,0.,-1.)); -#4478=DIRECTION('',(-1.,0.,0.)); -#4479=DIRECTION('',(0.,0.,1.)); -#4480=DIRECTION('',(-1.,0.,0.)); -#4481=DIRECTION('',(0.,0.,-1.)); -#4482=DIRECTION('',(0.,0.,1.)); -#4483=DIRECTION('',(-1.,0.,0.)); -#4484=DIRECTION('',(0.,0.,-1.)); -#4485=DIRECTION('',(0.,0.,-1.)); -#4486=DIRECTION('',(1.,0.,2.84567499340027E-16)); -#4487=DIRECTION('',(0.,0.,1.)); -#4488=DIRECTION('',(1.,0.,0.)); -#4489=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); -#4490=DIRECTION('',(1.,0.,0.)); -#4491=DIRECTION('',(0.,-1.,0.)); -#4492=DIRECTION('',(-1.,0.,0.)); -#4493=DIRECTION('',(0.,-1.,0.)); -#4494=DIRECTION('',(1.,0.,0.)); -#4495=DIRECTION('',(0.,1.,0.)); -#4496=DIRECTION('',(0.,1.,0.)); -#4497=DIRECTION('',(1.,0.,0.)); -#4498=DIRECTION('',(0.,-1.,0.)); -#4499=DIRECTION('',(0.371390676354103,0.92847669088526,0.)); -#4500=DIRECTION('',(0.,0.342020143325669,-0.939692620785908)); -#4501=DIRECTION('',(0.,0.939692620785908,0.342020143325669)); -#4502=DIRECTION('',(0.,-0.939692620785908,-0.342020143325669)); -#4503=DIRECTION('',(1.,0.,0.)); -#4504=DIRECTION('',(0.323615577118185,-0.889126490715988,-0.323615577118185)); -#4505=DIRECTION('',(0.,0.342020143325669,-0.939692620785908)); -#4506=DIRECTION('',(0.,0.939692620785908,0.342020143325669)); -#4507=DIRECTION('',(1.,0.,0.)); -#4508=DIRECTION('',(0.,0.939692620785908,0.342020143325669)); -#4509=DIRECTION('',(-0.323615577118185,-0.889126490715988,-0.323615577118185)); -#4510=DIRECTION('',(0.,1.,0.)); -#4511=DIRECTION('',(0.,0.,1.)); -#4512=DIRECTION('',(-1.,0.,0.)); -#4513=DIRECTION('',(0.,0.,1.)); -#4514=DIRECTION('',(1.,0.,2.84567499340027E-16)); -#4515=DIRECTION('',(0.,0.,-1.)); -#4516=DIRECTION('',(0.,0.,-1.)); -#4517=DIRECTION('',(1.,0.,0.)); -#4518=DIRECTION('',(0.,0.,-1.)); -#4519=DIRECTION('',(0.,1.,0.)); -#4520=DIRECTION('',(0.,1.,0.)); -#4521=DIRECTION('',(0.,0.,1.)); -#4522=DIRECTION('',(0.,0.,-1.)); -#4523=DIRECTION('',(1.,0.,0.)); -#4524=DIRECTION('',(0.,0.,-1.)); -#4525=DIRECTION('',(-1.,0.,0.)); -#4526=DIRECTION('',(0.,0.,1.)); -#4527=DIRECTION('',(0.,1.,0.)); -#4528=DIRECTION('',(0.,0.,1.)); -#4529=DIRECTION('',(1.,0.,0.)); -#4530=DIRECTION('',(0.,1.,2.13425624505021E-16)); -#4531=DIRECTION('',(0.,-0.707106781186548,0.707106781186548)); -#4532=DIRECTION('',(0.,-0.707106781186548,-0.707106781186548)); -#4533=DIRECTION('',(0.,0.707106781186548,0.707106781186548)); -#4534=DIRECTION('',(-1.,0.,0.)); -#4535=DIRECTION('',(0.,0.707106781186548,0.707106781186548)); -#4536=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4537=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#4538=DIRECTION('',(-1.,0.,0.)); -#4539=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#4540=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#4541=DIRECTION('',(-1.,0.,0.)); -#4542=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#4543=DIRECTION('',(-1.,0.,0.)); -#4544=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#4545=DIRECTION('',(0.,-1.,-3.55709374175034E-17)); -#4546=DIRECTION('',(0.,3.55709374175034E-17,-1.)); -#4547=DIRECTION('',(0.,-3.55709374175034E-17,1.)); -#4548=DIRECTION('',(0.,-3.55709374175034E-17,1.)); -#4549=DIRECTION('',(1.,0.,0.)); -#4550=DIRECTION('',(0.,0.,-1.)); -#4551=DIRECTION('',(0.,-1.,0.)); -#4552=DIRECTION('',(1.,0.,0.)); -#4553=DIRECTION('',(0.,0.,-1.)); -#4554=DIRECTION('',(0.,-1.,0.)); -#4555=DIRECTION('',(0.,0.342020143325669,0.939692620785908)); -#4556=DIRECTION('',(0.,0.939692620785908,-0.342020143325669)); -#4557=DIRECTION('',(-1.,0.,0.)); -#4558=DIRECTION('',(-0.323615577118185,-0.889126490715988,0.323615577118185)); -#4559=DIRECTION('',(0.323615577118185,-0.889126490715988,0.323615577118185)); -#4560=DIRECTION('',(0.939692620785908,0.342020143325669,0.)); -#4561=DIRECTION('',(-0.342020143325669,0.939692620785908,0.)); -#4562=DIRECTION('',(0.,0.,1.)); -#4563=DIRECTION('',(-0.939692620785908,0.342020143325669,0.)); -#4564=DIRECTION('',(0.342020143325669,0.939692620785908,0.)); -#4565=DIRECTION('',(0.,0.,-1.)); -#4566=DIRECTION('',(1.,0.,0.)); -#4567=DIRECTION('',(0.,0.,-1.)); -#4568=DIRECTION('',(0.,-1.,0.)); -#4569=DIRECTION('',(0.,0.,-1.)); -#4570=DIRECTION('',(0.,1.,0.)); -#4571=DIRECTION('',(0.,0.,1.)); -#4572=DIRECTION('',(1.,0.,0.)); -#4573=DIRECTION('',(0.,0.,-1.)); -#4574=DIRECTION('',(1.,0.,0.)); -#4575=DIRECTION('',(0.,0.,-1.)); -#4576=DIRECTION('',(-1.,0.,0.)); -#4577=DIRECTION('',(0.,0.,1.)); -#4578=DIRECTION('',(-1.,0.,0.)); -#4579=DIRECTION('',(0.,0.,1.)); -#4580=DIRECTION('',(0.,1.,0.)); -#4581=DIRECTION('',(-0.928476690885259,-0.371390676354104,0.)); -#4582=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); -#4583=DIRECTION('',(0.,0.,1.)); -#4584=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); -#4585=DIRECTION('',(0.92847669088526,-0.371390676354103,0.)); -#4586=DIRECTION('',(0.371390676354103,0.92847669088526,0.)); -#4587=DIRECTION('',(0.371390676354103,0.92847669088526,0.)); -#4588=DIRECTION('',(0.,0.,1.)); -#4589=DIRECTION('',(1.,0.,0.)); -#4590=DIRECTION('',(0.,0.,1.)); -#4591=DIRECTION('',(1.,0.,0.)); -#4592=DIRECTION('',(0.,1.,0.)); -#4593=DIRECTION('',(0.,0.,-1.)); -#4594=DIRECTION('',(-1.,0.,0.)); -#4595=DIRECTION('',(0.,1.,0.)); -#4596=DIRECTION('',(0.,1.,0.)); -#4597=DIRECTION('',(-1.,0.,0.)); -#4598=DIRECTION('',(0.,0.,1.)); -#4599=DIRECTION('',(0.,0.,1.)); -#4600=DIRECTION('',(1.,0.,0.)); -#4601=DIRECTION('',(0.,1.,0.)); -#4602=DIRECTION('',(1.,0.,0.)); -#4603=DIRECTION('',(0.,0.,-1.)); -#4604=DIRECTION('',(0.,0.,1.)); -#4605=DIRECTION('',(1.,0.,0.)); -#4606=DIRECTION('',(0.,-1.,0.)); -#4607=DIRECTION('',(-1.,0.,0.)); -#4608=DIRECTION('',(0.,0.,1.)); -#4609=DIRECTION('',(1.,0.,0.)); -#4610=DIRECTION('',(0.,0.,-1.)); -#4611=DIRECTION('',(0.,-1.,0.)); -#4612=DIRECTION('',(0.,0.,1.)); -#4613=DIRECTION('',(1.,0.,0.)); -#4614=DIRECTION('',(0.,0.,1.)); -#4615=DIRECTION('',(1.,0.,0.)); -#4616=DIRECTION('',(0.,-1.,0.)); -#4617=DIRECTION('',(2.84567499340027E-16,0.,-1.)); -#4618=DIRECTION('',(-1.,0.,-2.84567499340027E-16)); -#4619=DIRECTION('',(0.,-1.,0.)); -#4620=DIRECTION('',(1.,0.,0.)); -#4621=DIRECTION('',(0.,0.,-1.)); -#4622=DIRECTION('',(0.,0.,1.)); -#4623=DIRECTION('',(1.,0.,0.)); -#4624=DIRECTION('',(0.,1.,0.)); -#4625=DIRECTION('',(0.,0.,1.)); -#4626=DIRECTION('',(-1.,0.,0.)); -#4627=DIRECTION('',(0.,0.,-1.)); -#4628=DIRECTION('',(-1.,0.,0.)); -#4629=DIRECTION('',(0.,0.,-1.)); -#4630=DIRECTION('',(-1.,0.,0.)); -#4631=DIRECTION('',(0.,0.,1.)); -#4632=DIRECTION('',(-1.,0.,0.)); -#4633=DIRECTION('',(0.,0.,1.)); -#4634=DIRECTION('',(0.,0.,1.)); -#4635=DIRECTION('',(1.,0.,0.)); -#4636=DIRECTION('',(-0.368048451007378,-0.929806613071272,0.)); -#4637=DIRECTION('',(-0.368048451007378,0.929806613071272,0.)); -#4638=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); -#4639=DIRECTION('',(0.371390676354104,0.928476690885259,0.)); -#4640=DIRECTION('',(-0.928476690885259,-0.371390676354104,0.)); -#4641=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); -#4642=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); -#4643=DIRECTION('',(0.,0.,1.)); -#4644=DIRECTION('',(0.928476690885259,-0.371390676354104,0.)); -#4645=DIRECTION('',(0.371390676354104,0.928476690885259,0.)); -#4646=DIRECTION('',(0.371390676354104,0.928476690885259,0.)); -#4647=DIRECTION('',(0.,0.,1.)); -#4648=DIRECTION('',(1.,0.,0.)); -#4649=DIRECTION('',(0.929806613071272,0.368048451007378,0.)); -#4650=DIRECTION('',(-0.368048451007378,0.929806613071272,0.)); -#4651=DIRECTION('',(0.,0.,-1.)); -#4652=DIRECTION('',(0.368048451007378,-0.929806613071272,0.)); -#4653=DIRECTION('',(-0.929806613071272,0.368048451007378,0.)); -#4654=DIRECTION('',(-0.368048451007378,-0.929806613071272,0.)); -#4655=DIRECTION('',(0.368048451007378,0.929806613071272,0.)); -#4656=DIRECTION('',(0.,0.,1.)); -#4657=DIRECTION('',(1.,0.,0.)); -#4658=DIRECTION('',(0.,0.,1.)); -#4659=DIRECTION('',(1.,0.,0.)); -#4660=DIRECTION('',(0.,0.,1.)); -#4661=DIRECTION('',(1.,0.,0.)); -#4662=DIRECTION('',(0.,1.,0.)); -#4663=DIRECTION('',(-1.,-2.51088970005906E-16,0.)); -#4664=DIRECTION('',(0.,-1.,0.)); -#4665=DIRECTION('',(-1.,0.,0.)); -#4666=DIRECTION('',(0.,1.,0.)); -#4667=DIRECTION('',(-1.,-2.51088970005907E-16,0.)); -#4668=DIRECTION('',(0.,-1.,0.)); -#4669=DIRECTION('',(-1.,0.,0.)); -#4670=DIRECTION('',(0.,1.,0.)); -#4671=DIRECTION('',(-1.,-2.51088970005907E-16,0.)); -#4672=DIRECTION('',(0.,-1.,0.)); -#4673=DIRECTION('',(-1.,0.,0.)); -#4674=DIRECTION('',(0.,1.,0.)); -#4675=DIRECTION('',(-1.,-2.51088970005907E-16,0.)); -#4676=DIRECTION('',(0.,-1.,0.)); -#4677=DIRECTION('',(-1.,0.,0.)); -#4678=DIRECTION('',(0.,1.,0.)); -#4679=DIRECTION('',(-1.,0.,0.)); -#4680=DIRECTION('',(0.,-1.,0.)); -#4681=DIRECTION('',(1.,0.,0.)); -#4682=DIRECTION('',(0.,1.,0.)); -#4683=DIRECTION('',(-1.,0.,0.)); -#4684=DIRECTION('',(0.,-1.,0.)); -#4685=DIRECTION('',(1.,0.,0.)); -#4686=DIRECTION('',(0.,1.,0.)); -#4687=DIRECTION('',(-1.,0.,0.)); -#4688=DIRECTION('',(0.,-1.,0.)); -#4689=DIRECTION('',(1.,0.,0.)); -#4690=DIRECTION('',(0.,1.,0.)); -#4691=DIRECTION('',(-1.,0.,0.)); -#4692=DIRECTION('',(0.,-1.,0.)); -#4693=DIRECTION('',(1.,0.,0.)); -#4694=DIRECTION('',(0.,1.,0.)); -#4695=DIRECTION('',(-1.,0.,0.)); -#4696=DIRECTION('',(0.,1.,0.)); -#4697=DIRECTION('',(-1.,0.,0.)); -#4698=DIRECTION('',(0.,0.,-1.)); -#4699=DIRECTION('',(-1.,0.,0.)); -#4700=DIRECTION('',(0.,-1.,0.)); -#4701=DIRECTION('',(-1.,0.,0.)); -#4702=DIRECTION('',(0.,-1.,0.)); -#4703=DIRECTION('',(-1.,0.,0.)); -#4704=DIRECTION('',(0.,-1.,0.)); -#4705=DIRECTION('',(-1.,0.,0.)); -#4706=DIRECTION('',(0.,1.,0.)); -#4707=DIRECTION('',(-1.,0.,0.)); -#4708=DIRECTION('',(0.,-1.,0.)); -#4709=DIRECTION('',(-1.,0.,0.)); -#4710=DIRECTION('',(0.,1.,0.)); -#4711=DIRECTION('',(-1.,0.,0.)); -#4712=DIRECTION('',(0.,-1.,0.)); -#4713=DIRECTION('',(-1.,0.,0.)); -#4714=DIRECTION('',(0.,1.,0.)); -#4715=DIRECTION('',(-1.,0.,0.)); -#4716=DIRECTION('',(0.,-1.,0.)); -#4717=DIRECTION('',(-1.,0.,0.)); -#4718=DIRECTION('',(0.,1.,0.)); -#4719=DIRECTION('',(-1.,0.,0.)); -#4720=DIRECTION('',(0.,-1.,0.)); -#4721=DIRECTION('',(-1.,0.,0.)); -#4722=DIRECTION('',(0.,1.,0.)); -#4723=DIRECTION('',(1.,2.51088970005907E-16,0.)); -#4724=DIRECTION('',(0.,-1.,0.)); -#4725=DIRECTION('',(-1.,0.,0.)); -#4726=DIRECTION('',(0.,1.,0.)); -#4727=DIRECTION('',(1.,2.51088970005907E-16,0.)); -#4728=DIRECTION('',(0.,-1.,0.)); -#4729=DIRECTION('',(-1.,0.,0.)); -#4730=DIRECTION('',(0.,1.,0.)); -#4731=DIRECTION('',(1.,2.51088970005907E-16,0.)); -#4732=DIRECTION('',(0.,-1.,0.)); -#4733=DIRECTION('',(-1.,0.,0.)); -#4734=DIRECTION('',(0.,1.,0.)); -#4735=DIRECTION('',(1.,2.51088970005906E-16,0.)); -#4736=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#4737=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); -#4738=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#4739=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#4740=DIRECTION('',(-1.,0.,0.)); -#4741=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#4742=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); -#4743=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); -#4744=DIRECTION('',(-1.,0.,0.)); -#4745=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#4746=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#4747=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); -#4748=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); -#4749=DIRECTION('',(-1.,0.,0.)); -#4750=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#4751=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#4752=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); -#4753=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); -#4754=DIRECTION('',(-1.,0.,0.)); -#4755=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#4756=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#4757=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); -#4758=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); -#4759=DIRECTION('',(-1.,0.,0.)); -#4760=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#4761=DIRECTION('',(0.,-1.,0.)); -#4762=DIRECTION('',(0.,0.,-1.)); -#4763=DIRECTION('',(0.,0.,1.)); -#4764=DIRECTION('',(0.,0.,1.)); -#4765=DIRECTION('',(-1.,0.,0.)); -#4766=DIRECTION('',(0.,-1.,0.)); -#4767=DIRECTION('',(0.,0.,-1.)); -#4768=DIRECTION('',(0.,0.,-1.)); -#4769=DIRECTION('',(-1.,0.,0.)); -#4770=DIRECTION('',(0.,0.,1.)); -#4771=DIRECTION('',(0.,-1.,0.)); -#4772=DIRECTION('',(0.,0.,-1.)); -#4773=DIRECTION('',(0.,0.,-1.)); -#4774=DIRECTION('',(-1.,0.,0.)); -#4775=DIRECTION('',(0.,0.,1.)); -#4776=DIRECTION('',(0.,-1.,0.)); -#4777=DIRECTION('',(0.,0.,-1.)); -#4778=DIRECTION('',(0.,0.,-1.)); -#4779=DIRECTION('',(-1.,0.,0.)); -#4780=DIRECTION('',(0.,0.,1.)); -#4781=DIRECTION('',(0.,-1.,0.)); -#4782=DIRECTION('',(0.,0.,-1.)); -#4783=DIRECTION('',(0.,0.,-1.)); -#4784=DIRECTION('',(-1.,0.,0.)); -#4785=DIRECTION('',(0.,0.,1.)); -#4786=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#4787=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); -#4788=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); -#4789=DIRECTION('',(0.,-0.707106781186549,0.707106781186547)); -#4790=DIRECTION('',(-1.,0.,0.)); -#4791=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#4792=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); -#4793=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); -#4794=DIRECTION('',(-1.,0.,0.)); -#4795=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); -#4796=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#4797=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); -#4798=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); -#4799=DIRECTION('',(-1.,0.,0.)); -#4800=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); -#4801=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#4802=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); -#4803=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); -#4804=DIRECTION('',(-1.,0.,0.)); -#4805=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); -#4806=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#4807=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); -#4808=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); -#4809=DIRECTION('',(-1.,0.,0.)); -#4810=DIRECTION('',(0.,-0.707106781186549,0.707106781186547)); -#4811=DIRECTION('',(0.,0.,-1.)); -#4812=DIRECTION('',(-1.,0.,0.)); -#4813=DIRECTION('',(0.,-1.,0.)); -#4814=DIRECTION('',(0.,-1.,0.)); -#4815=DIRECTION('',(-1.,0.,0.)); -#4816=DIRECTION('',(0.,0.,-1.)); -#4817=DIRECTION('',(-1.,0.,0.)); -#4818=DIRECTION('',(0.,1.,0.)); -#4819=DIRECTION('',(-1.,0.,0.)); -#4820=DIRECTION('',(0.,-1.,0.)); -#4821=DIRECTION('',(0.,0.,-1.)); -#4822=DIRECTION('',(-1.,0.,0.)); -#4823=DIRECTION('',(0.,1.,0.)); -#4824=DIRECTION('',(-1.,0.,0.)); -#4825=DIRECTION('',(0.,-1.,0.)); -#4826=DIRECTION('',(0.,0.,-1.)); -#4827=DIRECTION('',(-1.,0.,0.)); -#4828=DIRECTION('',(0.,1.,0.)); -#4829=DIRECTION('',(-1.,0.,0.)); -#4830=DIRECTION('',(0.,-1.,0.)); -#4831=DIRECTION('',(0.,0.,-1.)); -#4832=DIRECTION('',(-1.,0.,0.)); -#4833=DIRECTION('',(0.,1.,0.)); -#4834=DIRECTION('',(-1.,0.,0.)); -#4835=DIRECTION('',(0.,-1.,0.)); -#4836=DIRECTION('',(0.,0.,1.)); -#4837=DIRECTION('',(1.,0.,0.)); -#4838=DIRECTION('',(0.,1.,0.)); -#4839=DIRECTION('',(-1.,0.,0.)); -#4840=DIRECTION('',(0.,1.,0.)); -#4841=DIRECTION('',(-1.,0.,0.)); -#4842=DIRECTION('',(0.,0.,1.)); -#4843=DIRECTION('',(1.,0.,0.)); -#4844=DIRECTION('',(0.,-1.,0.)); -#4845=DIRECTION('',(-1.,0.,0.)); -#4846=DIRECTION('',(0.,1.,0.)); -#4847=DIRECTION('',(-1.,0.,0.)); -#4848=DIRECTION('',(0.,0.,1.)); -#4849=DIRECTION('',(1.,0.,0.)); -#4850=DIRECTION('',(0.,-1.,0.)); -#4851=DIRECTION('',(-1.,0.,0.)); -#4852=DIRECTION('',(0.,1.,0.)); -#4853=DIRECTION('',(-1.,0.,0.)); -#4854=DIRECTION('',(0.,0.,1.)); -#4855=DIRECTION('',(1.,0.,0.)); -#4856=DIRECTION('',(0.,-1.,0.)); -#4857=DIRECTION('',(-1.,0.,0.)); -#4858=DIRECTION('',(0.,1.,0.)); -#4859=DIRECTION('',(-1.,0.,0.)); -#4860=DIRECTION('',(0.,0.,1.)); -#4861=DIRECTION('',(1.,0.,0.)); -#4862=DIRECTION('',(0.,-1.,0.)); -#4863=DIRECTION('',(-1.,0.,0.)); -#4864=DIRECTION('',(0.,1.,0.)); -#4865=DIRECTION('',(-1.,0.,0.)); -#4866=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#4867=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4868=DIRECTION('',(0.,0.707106781186548,0.707106781186547)); -#4869=DIRECTION('',(0.,0.707106781186549,0.707106781186547)); -#4870=DIRECTION('',(-1.,0.,0.)); -#4871=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#4872=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4873=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4874=DIRECTION('',(-1.,0.,0.)); -#4875=DIRECTION('',(0.,0.707106781186548,0.707106781186547)); -#4876=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#4877=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4878=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4879=DIRECTION('',(-1.,0.,0.)); -#4880=DIRECTION('',(0.,0.707106781186548,0.707106781186547)); -#4881=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#4882=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4883=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4884=DIRECTION('',(-1.,0.,0.)); -#4885=DIRECTION('',(0.,0.707106781186548,0.707106781186547)); -#4886=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#4887=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4888=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#4889=DIRECTION('',(-1.,0.,0.)); -#4890=DIRECTION('',(0.,0.707106781186549,0.707106781186547)); -#4891=DIRECTION('',(0.,-1.,0.)); -#4892=DIRECTION('',(0.,0.,-1.)); -#4893=DIRECTION('',(0.,0.,1.)); -#4894=DIRECTION('',(0.,0.,1.)); -#4895=DIRECTION('',(-1.,0.,0.)); -#4896=DIRECTION('',(0.,-1.,0.)); -#4897=DIRECTION('',(0.,0.,-1.)); -#4898=DIRECTION('',(0.,0.,-1.)); -#4899=DIRECTION('',(-1.,0.,0.)); -#4900=DIRECTION('',(0.,0.,1.)); -#4901=DIRECTION('',(0.,-1.,0.)); -#4902=DIRECTION('',(0.,0.,-1.)); -#4903=DIRECTION('',(0.,0.,-1.)); -#4904=DIRECTION('',(-1.,0.,0.)); -#4905=DIRECTION('',(0.,0.,1.)); -#4906=DIRECTION('',(0.,-1.,0.)); -#4907=DIRECTION('',(0.,0.,-1.)); -#4908=DIRECTION('',(0.,0.,-1.)); -#4909=DIRECTION('',(-1.,0.,0.)); -#4910=DIRECTION('',(0.,0.,1.)); -#4911=DIRECTION('',(0.,-1.,0.)); -#4912=DIRECTION('',(0.,0.,-1.)); -#4913=DIRECTION('',(0.,0.,-1.)); -#4914=DIRECTION('',(-1.,0.,0.)); -#4915=DIRECTION('',(0.,0.,1.)); -#4916=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4917=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4918=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); -#4919=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); -#4920=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4921=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4922=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4923=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); -#4924=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4925=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4926=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4927=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); -#4928=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4929=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4930=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4931=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); -#4932=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4933=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4934=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4935=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); -#4936=DIRECTION('',(0.,0.,-1.)); -#4937=DIRECTION('',(-1.,0.,0.)); -#4938=DIRECTION('',(0.,1.,0.)); -#4939=DIRECTION('',(-1.,0.,0.)); -#4940=DIRECTION('',(0.,-1.,0.)); -#4941=DIRECTION('',(-1.,0.,0.)); -#4942=DIRECTION('',(0.,0.,-1.)); -#4943=DIRECTION('',(-1.,0.,0.)); -#4944=DIRECTION('',(0.,-1.,0.)); -#4945=DIRECTION('',(-1.,0.,0.)); -#4946=DIRECTION('',(0.,1.,0.)); -#4947=DIRECTION('',(-1.,0.,0.)); -#4948=DIRECTION('',(0.,0.,-1.)); -#4949=DIRECTION('',(-1.,0.,0.)); -#4950=DIRECTION('',(0.,-1.,0.)); -#4951=DIRECTION('',(-1.,0.,0.)); -#4952=DIRECTION('',(0.,1.,0.)); -#4953=DIRECTION('',(-1.,0.,0.)); -#4954=DIRECTION('',(0.,0.,-1.)); -#4955=DIRECTION('',(-1.,0.,0.)); -#4956=DIRECTION('',(0.,-1.,0.)); -#4957=DIRECTION('',(-1.,0.,0.)); -#4958=DIRECTION('',(0.,1.,0.)); -#4959=DIRECTION('',(-1.,0.,0.)); -#4960=DIRECTION('',(0.,0.,-1.)); -#4961=DIRECTION('',(-1.,0.,0.)); -#4962=DIRECTION('',(0.,-1.,0.)); -#4963=DIRECTION('',(-1.,0.,0.)); -#4964=DIRECTION('',(0.,-1.,0.)); -#4965=DIRECTION('',(-1.,0.,0.)); -#4966=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4967=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); -#4968=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); -#4969=DIRECTION('',(-1.,0.,0.)); -#4970=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4971=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4972=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); -#4973=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4974=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); -#4975=DIRECTION('',(-1.,0.,0.)); -#4976=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4977=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); -#4978=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4979=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); -#4980=DIRECTION('',(-1.,0.,0.)); -#4981=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4982=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); -#4983=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4984=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); -#4985=DIRECTION('',(-1.,0.,0.)); -#4986=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); -#4987=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); -#4988=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4989=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); -#4990=DIRECTION('',(-1.,0.,0.)); -#4991=DIRECTION('',(0.,1.,0.)); -#4992=DIRECTION('',(0.,0.,1.)); -#4993=DIRECTION('',(0.,0.,1.)); -#4994=DIRECTION('',(-1.,0.,0.)); -#4995=DIRECTION('',(0.,0.,-1.)); -#4996=DIRECTION('',(0.,1.,0.)); -#4997=DIRECTION('',(0.,0.,1.)); -#4998=DIRECTION('',(0.,0.,-1.)); -#4999=DIRECTION('',(0.,0.,1.)); -#5000=DIRECTION('',(-1.,0.,0.)); -#5001=DIRECTION('',(0.,1.,0.)); -#5002=DIRECTION('',(0.,0.,1.)); -#5003=DIRECTION('',(0.,0.,-1.)); -#5004=DIRECTION('',(0.,0.,1.)); -#5005=DIRECTION('',(-1.,0.,0.)); -#5006=DIRECTION('',(0.,1.,0.)); -#5007=DIRECTION('',(0.,0.,1.)); -#5008=DIRECTION('',(0.,0.,-1.)); -#5009=DIRECTION('',(0.,0.,1.)); -#5010=DIRECTION('',(-1.,0.,0.)); -#5011=DIRECTION('',(0.,1.,0.)); -#5012=DIRECTION('',(0.,0.,1.)); -#5013=DIRECTION('',(0.,0.,-1.)); -#5014=DIRECTION('',(0.,0.,-1.)); -#5015=DIRECTION('',(-1.,0.,0.)); -#5016=DIRECTION('',(-1.,0.,0.)); -#5017=DIRECTION('',(0.,0.,1.)); -#5018=DIRECTION('',(-1.,0.,0.)); -#5019=DIRECTION('',(0.,0.,1.)); -#5020=DIRECTION('',(-1.,0.,0.)); -#5021=DIRECTION('',(1.,0.,0.)); -#5022=DIRECTION('',(0.,0.,-1.)); -#5023=DIRECTION('',(-1.,0.,0.)); -#5024=DIRECTION('',(0.,0.,1.)); -#5025=DIRECTION('',(1.,0.,0.)); -#5026=DIRECTION('',(0.,0.,-1.)); -#5027=DIRECTION('',(-1.,0.,0.)); -#5028=DIRECTION('',(0.,0.,1.)); -#5029=DIRECTION('',(-1.,0.,0.)); -#5030=DIRECTION('',(-1.,0.,0.)); -#5031=DIRECTION('',(0.,0.,1.)); -#5032=DIRECTION('',(1.,0.,0.)); -#5033=DIRECTION('',(0.,0.,-1.)); -#5034=DIRECTION('',(-1.,0.,0.)); -#5035=DIRECTION('',(0.,0.,1.)); -#5036=DIRECTION('',(-1.,0.,0.)); -#5037=DIRECTION('',(-1.,0.,0.)); -#5038=DIRECTION('',(0.,0.,1.)); -#5039=DIRECTION('',(1.,0.,0.)); -#5040=DIRECTION('',(0.,0.,-1.)); -#5041=DIRECTION('',(-1.,0.,0.)); -#5042=DIRECTION('',(0.,0.,1.)); -#5043=DIRECTION('',(-1.,0.,0.)); -#5044=DIRECTION('',(-1.,0.,0.)); -#5045=DIRECTION('',(0.,0.,1.)); -#5046=DIRECTION('',(1.,0.,0.)); -#5047=DIRECTION('',(0.,0.,-1.)); -#5048=DIRECTION('',(1.,0.,0.)); -#5049=DIRECTION('',(0.,0.,-1.)); -#5050=DIRECTION('',(-1.,0.,0.)); -#5051=DIRECTION('',(0.,0.,1.)); -#5052=DIRECTION('',(1.,0.,0.)); -#5053=DIRECTION('',(0.,-1.,0.)); -#5054=DIRECTION('',(-1.,0.,0.)); -#5055=DIRECTION('',(0.,1.,0.)); -#5056=DIRECTION('',(0.,0.,1.)); -#5057=DIRECTION('',(1.,0.,0.)); -#5058=DIRECTION('',(0.,1.,0.)); -#5059=DIRECTION('',(0.,-1.,0.)); -#5060=DIRECTION('',(-1.,0.,0.)); -#5061=DIRECTION('',(0.,0.,1.)); -#5062=DIRECTION('',(1.,0.,0.)); -#5063=DIRECTION('',(0.,1.,0.)); -#5064=DIRECTION('',(0.,-1.,0.)); -#5065=DIRECTION('',(-1.,0.,0.)); -#5066=DIRECTION('',(0.,0.,1.)); -#5067=DIRECTION('',(1.,0.,0.)); -#5068=DIRECTION('',(0.,1.,0.)); -#5069=DIRECTION('',(0.,-1.,0.)); -#5070=DIRECTION('',(-1.,0.,0.)); -#5071=DIRECTION('',(0.,0.,1.)); -#5072=DIRECTION('',(1.,0.,0.)); -#5073=DIRECTION('',(0.,1.,0.)); -#5074=DIRECTION('',(0.,1.,0.)); -#5075=DIRECTION('',(-1.,0.,0.)); -#5076=DIRECTION('',(0.,0.,-1.)); -#5077=DIRECTION('',(-1.,0.,0.)); -#5078=DIRECTION('',(0.,1.,0.)); -#5079=DIRECTION('',(-1.,0.,0.)); -#5080=DIRECTION('',(0.,-1.,0.)); -#5081=DIRECTION('',(-1.,0.,0.)); -#5082=DIRECTION('',(0.,0.,-1.)); -#5083=DIRECTION('',(-1.,0.,0.)); -#5084=DIRECTION('',(0.,-1.,0.)); -#5085=DIRECTION('',(-1.,0.,0.)); -#5086=DIRECTION('',(0.,1.,0.)); -#5087=DIRECTION('',(-1.,0.,0.)); -#5088=DIRECTION('',(0.,0.,-1.)); -#5089=DIRECTION('',(-1.,0.,0.)); -#5090=DIRECTION('',(0.,-1.,0.)); -#5091=DIRECTION('',(-1.,0.,0.)); -#5092=DIRECTION('',(0.,1.,0.)); -#5093=DIRECTION('',(-1.,0.,0.)); -#5094=DIRECTION('',(0.,0.,-1.)); -#5095=DIRECTION('',(-1.,0.,0.)); -#5096=DIRECTION('',(0.,-1.,0.)); -#5097=DIRECTION('',(-1.,0.,0.)); -#5098=DIRECTION('',(0.,1.,0.)); -#5099=DIRECTION('',(-1.,0.,0.)); -#5100=DIRECTION('',(0.,0.,-1.)); -#5101=DIRECTION('',(-1.,0.,0.)); -#5102=DIRECTION('',(0.,-1.,0.)); -#5103=DIRECTION('',(-1.,0.,0.)); -#5104=DIRECTION('',(0.,-1.,0.)); -#5105=DIRECTION('',(-1.,0.,0.)); -#5106=DIRECTION('',(-1.,0.,0.)); -#5107=DIRECTION('',(0.,0.,1.)); -#5108=DIRECTION('',(-1.,0.,0.)); -#5109=DIRECTION('',(0.,0.,1.)); -#5110=DIRECTION('',(-1.,0.,0.)); -#5111=DIRECTION('',(1.,0.,0.)); -#5112=DIRECTION('',(0.,0.,-1.)); -#5113=DIRECTION('',(-1.,0.,0.)); -#5114=DIRECTION('',(0.,0.,1.)); -#5115=DIRECTION('',(1.,0.,0.)); -#5116=DIRECTION('',(0.,0.,-1.)); -#5117=DIRECTION('',(-1.,0.,0.)); -#5118=DIRECTION('',(0.,0.,1.)); -#5119=DIRECTION('',(-1.,0.,0.)); -#5120=DIRECTION('',(-1.,0.,0.)); -#5121=DIRECTION('',(0.,0.,1.)); -#5122=DIRECTION('',(1.,0.,0.)); -#5123=DIRECTION('',(0.,0.,-1.)); -#5124=DIRECTION('',(-1.,0.,0.)); -#5125=DIRECTION('',(0.,0.,1.)); -#5126=DIRECTION('',(-1.,0.,0.)); -#5127=DIRECTION('',(-1.,0.,0.)); -#5128=DIRECTION('',(0.,0.,1.)); -#5129=DIRECTION('',(1.,0.,0.)); -#5130=DIRECTION('',(0.,0.,-1.)); -#5131=DIRECTION('',(-1.,0.,0.)); -#5132=DIRECTION('',(0.,0.,1.)); -#5133=DIRECTION('',(-1.,0.,0.)); -#5134=DIRECTION('',(-1.,0.,0.)); -#5135=DIRECTION('',(0.,0.,1.)); -#5136=DIRECTION('',(1.,0.,0.)); -#5137=DIRECTION('',(0.,0.,-1.)); -#5138=DIRECTION('',(1.,0.,0.)); -#5139=DIRECTION('',(0.,0.,-1.)); -#5140=DIRECTION('',(-1.,0.,0.)); -#5141=DIRECTION('',(0.,1.,0.)); -#5142=DIRECTION('',(0.,0.,1.)); -#5143=DIRECTION('',(0.,0.,1.)); -#5144=DIRECTION('',(-1.,0.,0.)); -#5145=DIRECTION('',(0.,0.,-1.)); -#5146=DIRECTION('',(0.,1.,0.)); -#5147=DIRECTION('',(0.,0.,1.)); -#5148=DIRECTION('',(0.,0.,-1.)); -#5149=DIRECTION('',(0.,0.,1.)); -#5150=DIRECTION('',(-1.,0.,0.)); -#5151=DIRECTION('',(0.,1.,0.)); -#5152=DIRECTION('',(0.,0.,1.)); -#5153=DIRECTION('',(0.,0.,-1.)); -#5154=DIRECTION('',(0.,0.,1.)); -#5155=DIRECTION('',(-1.,0.,0.)); -#5156=DIRECTION('',(0.,1.,0.)); -#5157=DIRECTION('',(0.,0.,1.)); -#5158=DIRECTION('',(0.,0.,-1.)); -#5159=DIRECTION('',(0.,0.,1.)); -#5160=DIRECTION('',(-1.,0.,0.)); -#5161=DIRECTION('',(0.,1.,0.)); -#5162=DIRECTION('',(0.,0.,1.)); -#5163=DIRECTION('',(0.,0.,-1.)); -#5164=DIRECTION('',(0.,0.,-1.)); -#5165=DIRECTION('',(-1.,0.,0.)); -#5166=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#5167=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#5168=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#5169=DIRECTION('',(-1.,0.,0.)); -#5170=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); -#5171=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#5172=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#5173=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); -#5174=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#5175=DIRECTION('',(-1.,0.,0.)); -#5176=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#5177=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#5178=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); -#5179=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#5180=DIRECTION('',(-1.,0.,0.)); -#5181=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#5182=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#5183=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); -#5184=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#5185=DIRECTION('',(-1.,0.,0.)); -#5186=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); -#5187=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); -#5188=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); -#5189=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); -#5190=DIRECTION('',(-1.,0.,0.)); -#5191=DIRECTION('',(0.,0.,1.)); -#5192=DIRECTION('',(1.,0.,0.)); -#5193=DIRECTION('',(0.,1.,0.)); -#5194=DIRECTION('',(-1.,0.,0.)); -#5195=DIRECTION('',(0.,1.,0.)); -#5196=DIRECTION('',(0.,0.,1.)); -#5197=DIRECTION('',(1.,0.,0.)); -#5198=DIRECTION('',(0.,-1.,0.)); -#5199=DIRECTION('',(0.,1.,0.)); -#5200=DIRECTION('',(-1.,0.,0.)); -#5201=DIRECTION('',(0.,0.,1.)); -#5202=DIRECTION('',(1.,0.,0.)); -#5203=DIRECTION('',(0.,-1.,0.)); -#5204=DIRECTION('',(0.,1.,0.)); -#5205=DIRECTION('',(-1.,0.,0.)); -#5206=DIRECTION('',(0.,0.,1.)); -#5207=DIRECTION('',(1.,0.,0.)); -#5208=DIRECTION('',(0.,-1.,0.)); -#5209=DIRECTION('',(0.,1.,0.)); -#5210=DIRECTION('',(-1.,0.,0.)); -#5211=DIRECTION('',(0.,0.,1.)); -#5212=DIRECTION('',(1.,0.,0.)); -#5213=DIRECTION('',(0.,-1.,0.)); -#5214=DIRECTION('',(0.,1.,0.)); -#5215=DIRECTION('',(-1.,0.,0.)); -#5216=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); -#5217=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#5218=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#5219=DIRECTION('',(-1.,0.,0.)); -#5220=DIRECTION('',(0.,0.707106781186547,0.707106781186549)); -#5221=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); -#5222=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#5223=DIRECTION('',(0.,0.707106781186547,0.707106781186548)); -#5224=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#5225=DIRECTION('',(-1.,0.,0.)); -#5226=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); -#5227=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#5228=DIRECTION('',(0.,0.707106781186547,0.707106781186548)); -#5229=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#5230=DIRECTION('',(-1.,0.,0.)); -#5231=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); -#5232=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#5233=DIRECTION('',(0.,0.707106781186547,0.707106781186548)); -#5234=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#5235=DIRECTION('',(-1.,0.,0.)); -#5236=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); -#5237=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); -#5238=DIRECTION('',(0.,0.707106781186547,0.707106781186548)); -#5239=DIRECTION('',(0.,0.707106781186547,0.707106781186549)); -#5240=DIRECTION('',(-1.,0.,0.)); -#5241=DIRECTION('',(0.,-1.,0.)); -#5242=DIRECTION('',(0.,0.,-1.)); -#5243=DIRECTION('',(0.,0.,-1.)); -#5244=DIRECTION('',(-1.,0.,0.)); -#5245=DIRECTION('',(0.,0.,1.)); -#5246=DIRECTION('',(0.,-1.,0.)); -#5247=DIRECTION('',(0.,0.,-1.)); -#5248=DIRECTION('',(0.,0.,1.)); -#5249=DIRECTION('',(0.,0.,-1.)); -#5250=DIRECTION('',(-1.,0.,0.)); -#5251=DIRECTION('',(0.,-1.,0.)); -#5252=DIRECTION('',(0.,0.,-1.)); -#5253=DIRECTION('',(0.,0.,1.)); -#5254=DIRECTION('',(0.,0.,-1.)); -#5255=DIRECTION('',(-1.,0.,0.)); -#5256=DIRECTION('',(0.,-1.,0.)); -#5257=DIRECTION('',(0.,0.,-1.)); -#5258=DIRECTION('',(0.,0.,1.)); -#5259=DIRECTION('',(0.,0.,-1.)); -#5260=DIRECTION('',(-1.,0.,0.)); -#5261=DIRECTION('',(0.,-1.,0.)); -#5262=DIRECTION('',(0.,0.,-1.)); -#5263=DIRECTION('',(0.,0.,1.)); -#5264=DIRECTION('',(0.,0.,1.)); -#5265=DIRECTION('',(-1.,0.,0.)); -#5266=DIRECTION('',(-1.,0.,0.)); -#5267=DIRECTION('',(0.,0.,1.)); -#5268=DIRECTION('',(-1.,0.,0.)); -#5269=DIRECTION('',(0.,0.,1.)); -#5270=DIRECTION('',(1.,0.,0.)); -#5271=DIRECTION('',(0.,0.,-1.)); -#5272=DIRECTION('',(-1.,0.,0.)); -#5273=DIRECTION('',(0.,0.,1.)); -#5274=DIRECTION('',(1.,0.,0.)); -#5275=DIRECTION('',(0.,0.,-1.)); -#5276=DIRECTION('',(-1.,0.,0.)); -#5277=DIRECTION('',(0.,0.,1.)); -#5278=DIRECTION('',(-1.,0.,0.)); -#5279=DIRECTION('',(0.,0.,1.)); -#5280=DIRECTION('',(1.,0.,0.)); -#5281=DIRECTION('',(0.,0.,-1.)); -#5282=DIRECTION('',(-1.,0.,0.)); -#5283=DIRECTION('',(0.,0.,1.)); -#5284=DIRECTION('',(-1.,0.,0.)); -#5285=DIRECTION('',(0.,0.,1.)); -#5286=DIRECTION('',(1.,0.,0.)); -#5287=DIRECTION('',(0.,0.,-1.)); -#5288=DIRECTION('',(-1.,0.,0.)); -#5289=DIRECTION('',(0.,0.,1.)); -#5290=DIRECTION('',(-1.,0.,0.)); -#5291=DIRECTION('',(0.,0.,1.)); -#5292=DIRECTION('',(1.,0.,0.)); -#5293=DIRECTION('',(0.,0.,-1.)); -#5294=DIRECTION('',(1.,0.,0.)); -#5295=DIRECTION('',(0.,0.,-1.)); -#5296=DIRECTION('',(-1.,0.,0.)); -#5297=DIRECTION('',(0.,0.,1.)); -#5298=DIRECTION('',(-1.,0.,0.)); -#5299=DIRECTION('',(0.,0.,1.)); -#5300=DIRECTION('',(-1.,0.,0.)); -#5301=DIRECTION('',(1.,0.,0.)); -#5302=DIRECTION('',(0.,0.,-1.)); -#5303=DIRECTION('',(-1.,0.,0.)); -#5304=DIRECTION('',(0.,0.,1.)); -#5305=DIRECTION('',(-1.,0.,0.)); -#5306=DIRECTION('',(1.,0.,0.)); -#5307=DIRECTION('',(0.,0.,-1.)); -#5308=DIRECTION('',(-1.,0.,0.)); -#5309=DIRECTION('',(0.,0.,1.)); -#5310=DIRECTION('',(-1.,0.,0.)); -#5311=DIRECTION('',(0.,0.,1.)); -#5312=DIRECTION('',(-1.,0.,0.)); -#5313=DIRECTION('',(1.,0.,0.)); -#5314=DIRECTION('',(0.,0.,-1.)); -#5315=DIRECTION('',(-1.,0.,0.)); -#5316=DIRECTION('',(0.,0.,1.)); -#5317=DIRECTION('',(-1.,0.,0.)); -#5318=DIRECTION('',(0.,0.,1.)); -#5319=DIRECTION('',(-1.,0.,0.)); -#5320=DIRECTION('',(1.,0.,0.)); -#5321=DIRECTION('',(0.,0.,-1.)); -#5322=DIRECTION('',(-1.,0.,0.)); -#5323=DIRECTION('',(0.,0.,1.)); -#5324=DIRECTION('',(-1.,0.,0.)); -#5325=DIRECTION('',(0.,0.,1.)); -#5326=DIRECTION('',(-1.,0.,0.)); -#5327=DIRECTION('',(1.,0.,0.)); -#5328=DIRECTION('',(0.,0.,-1.)); -#5329=DIRECTION('',(1.,0.,0.)); -#5330=DIRECTION('',(0.,0.,-1.)); -#5331=DIRECTION('',(0.,-1.,0.)); -#5332=DIRECTION('',(0.,0.,-1.)); -#5333=DIRECTION('',(0.,0.,-1.)); -#5334=DIRECTION('',(-1.,0.,0.)); -#5335=DIRECTION('',(0.,0.,1.)); -#5336=DIRECTION('',(0.,-1.,0.)); -#5337=DIRECTION('',(0.,0.,-1.)); -#5338=DIRECTION('',(0.,0.,1.)); -#5339=DIRECTION('',(0.,0.,-1.)); -#5340=DIRECTION('',(-1.,0.,0.)); -#5341=DIRECTION('',(0.,-1.,0.)); -#5342=DIRECTION('',(0.,0.,-1.)); -#5343=DIRECTION('',(0.,0.,1.)); -#5344=DIRECTION('',(0.,0.,-1.)); -#5345=DIRECTION('',(-1.,0.,0.)); -#5346=DIRECTION('',(0.,-1.,0.)); -#5347=DIRECTION('',(0.,0.,-1.)); -#5348=DIRECTION('',(0.,0.,1.)); -#5349=DIRECTION('',(0.,0.,-1.)); -#5350=DIRECTION('',(-1.,0.,0.)); -#5351=DIRECTION('',(0.,-1.,0.)); -#5352=DIRECTION('',(0.,0.,-1.)); -#5353=DIRECTION('',(0.,0.,1.)); -#5354=DIRECTION('',(0.,0.,1.)); -#5355=DIRECTION('',(-1.,0.,0.)); -#5356=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#5357=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#5358=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#5359=DIRECTION('',(0.,-0.707106781186547,0.707106781186549)); -#5360=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#5361=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#5362=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#5363=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#5364=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#5365=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#5366=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#5367=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#5368=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#5369=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#5370=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#5371=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#5372=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); -#5373=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); -#5374=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); -#5375=DIRECTION('',(0.,-0.707106781186547,0.707106781186549)); -#5376=DIRECTION('',(0.,1.,0.)); -#5377=DIRECTION('',(0.,0.,1.)); -#5378=DIRECTION('',(0.,0.,-1.)); -#5379=DIRECTION('',(0.,0.,-1.)); -#5380=DIRECTION('',(0.,0.,-1.)); -#5381=DIRECTION('',(0.,0.,-1.)); -#5382=DIRECTION('',(0.,0.,-1.)); -#5383=DIRECTION('',(0.,0.,-1.)); -#5384=DIRECTION('',(0.,0.,-1.)); -#5385=DIRECTION('',(0.,0.,-1.)); -#5386=DIRECTION('',(0.,0.,-1.)); -#5387=DIRECTION('',(0.,0.,-1.)); -#5388=DIRECTION('',(0.,0.,-1.)); -#5389=DIRECTION('',(0.,0.,-1.)); -#5390=DIRECTION('',(0.,0.,-1.)); -#5391=DIRECTION('',(0.,0.,-1.)); -#5392=DIRECTION('',(0.,0.,-1.)); -#5393=DIRECTION('',(0.,0.,-1.)); -#5394=DIRECTION('',(0.,0.,-1.)); -#5395=DIRECTION('',(0.,0.,-1.)); -#5396=DIRECTION('',(0.,-1.,0.)); -#5397=DIRECTION('',(0.,0.,-1.)); -#5398=DIRECTION('',(0.,0.,-1.)); -#5399=DIRECTION('',(0.,0.,-1.)); -#5400=DIRECTION('',(0.,0.,-1.)); -#5401=DIRECTION('',(0.,0.,-1.)); -#5402=DIRECTION('',(0.,0.,-1.)); -#5403=DIRECTION('',(0.,0.,-1.)); -#5404=DIRECTION('',(0.,0.,-1.)); -#5405=DIRECTION('',(0.,0.,-1.)); -#5406=DIRECTION('',(0.,0.,1.)); -#5407=DIRECTION('',(0.,0.,-1.)); -#5408=DIRECTION('',(0.,0.,-1.)); -#5409=DIRECTION('',(0.,0.,-1.)); -#5410=DIRECTION('',(0.,0.,-1.)); -#5411=DIRECTION('',(0.,0.,-1.)); -#5412=DIRECTION('',(0.,0.,-1.)); -#5413=DIRECTION('',(0.,0.,-1.)); -#5414=DIRECTION('',(0.,0.,-1.)); -#5415=DIRECTION('',(0.,0.,1.)); -#5416=DIRECTION('',(1.,0.,0.)); -#5417=DIRECTION('',(0.,0.,-1.)); -#5418=DIRECTION('',(1.,0.,0.)); -#5419=DIRECTION('',(0.,0.,-1.)); -#5420=DIRECTION('',(-1.,0.,0.)); -#5421=DIRECTION('',(0.,0.,1.)); -#5422=DIRECTION('',(1.,0.,0.)); -#5423=DIRECTION('',(0.,0.,-1.)); -#5424=DIRECTION('',(-1.,0.,0.)); -#5425=DIRECTION('',(0.,0.,1.)); -#5426=DIRECTION('',(1.,0.,0.)); -#5427=DIRECTION('',(0.,0.,-1.)); -#5428=DIRECTION('',(-1.,0.,0.)); -#5429=DIRECTION('',(0.,0.,1.)); -#5430=DIRECTION('',(1.,0.,0.)); -#5431=DIRECTION('',(0.,0.,-1.)); -#5432=DIRECTION('',(-1.,0.,0.)); -#5433=DIRECTION('',(0.,0.,1.)); -#5434=DIRECTION('',(1.,0.,0.)); -#5435=DIRECTION('',(0.,0.,-1.)); -#5436=DIRECTION('',(1.,0.,0.)); -#5437=DIRECTION('',(0.,0.,-1.)); -#5438=DIRECTION('',(-1.,0.,0.)); -#5439=DIRECTION('',(0.,0.,1.)); -#5440=DIRECTION('',(1.,0.,0.)); -#5441=DIRECTION('',(0.,0.,-1.)); -#5442=DIRECTION('',(-1.,0.,0.)); -#5443=DIRECTION('',(0.,0.,1.)); -#5444=DIRECTION('',(1.,0.,0.)); -#5445=DIRECTION('',(0.,0.,-1.)); -#5446=DIRECTION('',(-1.,0.,0.)); -#5447=DIRECTION('',(0.,0.,1.)); -#5448=DIRECTION('',(-1.,0.,0.)); -#5449=DIRECTION('',(0.,0.,1.)); -#5450=DIRECTION('',(1.,0.,0.)); -#5451=DIRECTION('',(0.,0.,-1.)); -#5452=DIRECTION('',(-1.,0.,0.)); -#5453=DIRECTION('',(0.,0.,1.)); -#5454=DIRECTION('',(1.,0.,0.)); -#5455=DIRECTION('',(0.,0.,-1.)); -#5456=DIRECTION('',(-1.,0.,0.)); -#5457=DIRECTION('',(0.,0.,1.)); -#5458=DIRECTION('',(1.,0.,0.)); -#5459=DIRECTION('',(0.,0.,-1.)); -#5460=DIRECTION('',(-1.,0.,0.)); -#5461=DIRECTION('',(0.,0.,1.)); -#5462=DIRECTION('',(1.,0.,0.)); -#5463=DIRECTION('',(0.,0.,-1.)); -#5464=DIRECTION('',(-1.,0.,0.)); -#5465=DIRECTION('',(0.,0.,1.)); -#5466=DIRECTION('',(1.,0.,0.)); -#5467=DIRECTION('',(0.,0.,-1.)); -#5468=DIRECTION('',(-1.,0.,0.)); -#5469=DIRECTION('',(0.,0.,1.)); -#5470=DIRECTION('',(1.,0.,0.)); -#5471=DIRECTION('',(0.,0.,-1.)); -#5472=DIRECTION('',(-1.,0.,0.)); -#5473=DIRECTION('',(0.,0.,1.)); -#5474=DIRECTION('',(1.,0.,0.)); -#5475=DIRECTION('',(0.,0.,-1.)); -#5476=DIRECTION('',(-1.,0.,0.)); -#5477=DIRECTION('',(0.,0.,1.)); -#5478=DIRECTION('',(1.,0.,0.)); -#5479=DIRECTION('',(0.,0.,-1.)); -#5480=DIRECTION('',(1.,0.,0.)); -#5481=DIRECTION('',(0.,0.,-1.)); -#5482=DIRECTION('',(-1.,0.,0.)); -#5483=DIRECTION('',(0.,0.,1.)); -#5484=DIRECTION('',(0.,0.,1.)); -#5485=DIRECTION('',(1.,0.,0.)); -#5486=CARTESIAN_POINT('',(0.,0.,0.)); -#5487=CARTESIAN_POINT('',(-0.25,0.21,0.1)); -#5488=CARTESIAN_POINT('',(-0.25,0.21,0.1)); -#5489=CARTESIAN_POINT('',(-0.25,0.21,0.1)); -#5490=CARTESIAN_POINT('',(-0.25,0.21,0.025)); -#5491=CARTESIAN_POINT('',(-0.25,0.21,0.025)); -#5492=CARTESIAN_POINT('',(-0.25,0.,0.025)); -#5493=CARTESIAN_POINT('',(-0.25,0.,0.1)); -#5494=CARTESIAN_POINT('',(-0.25,0.,0.1)); -#5495=CARTESIAN_POINT('',(-0.25,0.21,0.1)); -#5496=CARTESIAN_POINT('',(0.,0.,-0.12)); -#5497=CARTESIAN_POINT('',(0.25,0.21,-0.12)); -#5498=CARTESIAN_POINT('',(-0.213,0.21,-0.12)); -#5499=CARTESIAN_POINT('',(-0.25,0.21,-0.12)); -#5500=CARTESIAN_POINT('',(-0.213,0.,-0.12)); -#5501=CARTESIAN_POINT('',(-0.213,0.,-0.12)); -#5502=CARTESIAN_POINT('',(-0.25,0.,-0.12)); -#5503=CARTESIAN_POINT('',(-0.25,0.,-0.12)); -#5504=CARTESIAN_POINT('',(-0.25,0.21,-0.12)); -#5505=CARTESIAN_POINT('',(0.,0.,-0.12)); -#5506=CARTESIAN_POINT('',(0.213,0.08,-0.12)); -#5507=CARTESIAN_POINT('',(0.05,0.08,-0.12)); -#5508=CARTESIAN_POINT('',(-0.05,0.08,-0.12)); -#5509=CARTESIAN_POINT('',(-0.05,0.21,-0.12)); -#5510=CARTESIAN_POINT('',(-0.05,0.21,-0.12)); -#5511=CARTESIAN_POINT('',(0.25,0.21,-0.12)); -#5512=CARTESIAN_POINT('',(0.05,0.21,-0.12)); -#5513=CARTESIAN_POINT('',(0.05,0.21,-0.12)); -#5514=CARTESIAN_POINT('',(0.25,0.21,0.1)); -#5515=CARTESIAN_POINT('',(-0.245,0.21,-0.025)); -#5516=CARTESIAN_POINT('',(-0.245,0.21,-0.025)); -#5517=CARTESIAN_POINT('',(-0.245,0.21,0.025)); -#5518=CARTESIAN_POINT('',(-0.245,0.21,0.025)); -#5519=CARTESIAN_POINT('',(0.25,0.21,0.1)); -#5520=CARTESIAN_POINT('',(-0.12,0.21,0.1)); -#5521=CARTESIAN_POINT('',(-0.12,0.21,0.09)); -#5522=CARTESIAN_POINT('',(-0.12,0.21,0.09)); -#5523=CARTESIAN_POINT('',(-0.08,0.21,0.09)); -#5524=CARTESIAN_POINT('',(-0.08,0.21,0.09)); -#5525=CARTESIAN_POINT('',(-0.08,0.21,0.09)); -#5526=CARTESIAN_POINT('',(-0.08,0.21,0.1)); -#5527=CARTESIAN_POINT('',(0.25,0.21,0.1)); -#5528=CARTESIAN_POINT('',(-0.05,0.21,0.1)); -#5529=CARTESIAN_POINT('',(-0.05,0.21,0.1)); -#5530=CARTESIAN_POINT('',(-0.05,0.21,0.0809191070279861)); -#5531=CARTESIAN_POINT('',(-0.215,0.21,0.0809191070279861)); -#5532=CARTESIAN_POINT('',(-0.225919107027986,0.21,0.0809191070279861)); -#5533=CARTESIAN_POINT('',(-0.225919107027986,0.21,-0.07)); -#5534=CARTESIAN_POINT('',(-0.225919107027986,0.21,-0.0809191070279861)); -#5535=CARTESIAN_POINT('',(0.215,0.21,-0.0809191070279861)); -#5536=CARTESIAN_POINT('',(0.225919107027986,0.21,-0.0809191070279861)); -#5537=CARTESIAN_POINT('',(0.225919107027986,0.21,0.07)); -#5538=CARTESIAN_POINT('',(0.225919107027986,0.21,0.0809191070279861)); -#5539=CARTESIAN_POINT('',(-0.215,0.21,0.0809191070279861)); -#5540=CARTESIAN_POINT('',(0.05,0.21,0.0809191070279861)); -#5541=CARTESIAN_POINT('',(0.05,0.21,0.1)); -#5542=CARTESIAN_POINT('',(0.05,0.21,0.1)); -#5543=CARTESIAN_POINT('',(0.25,0.21,0.1)); -#5544=CARTESIAN_POINT('',(0.25,0.21,0.1)); -#5545=CARTESIAN_POINT('',(0.25,0.21,0.1)); -#5546=CARTESIAN_POINT('',(0.25,0.21,-0.12)); -#5547=CARTESIAN_POINT('',(0.25,0.21,-0.12)); -#5548=CARTESIAN_POINT('',(0.213,0.21,-0.12)); -#5549=CARTESIAN_POINT('',(0.213,0.21,-0.12)); -#5550=CARTESIAN_POINT('',(0.213,0.21,-0.1)); -#5551=CARTESIAN_POINT('',(0.213,0.21,-0.1)); -#5552=CARTESIAN_POINT('',(0.05,0.21,-0.1)); -#5553=CARTESIAN_POINT('',(0.05,0.21,-0.1)); -#5554=CARTESIAN_POINT('',(-0.05,0.21,-0.12)); -#5555=CARTESIAN_POINT('',(-0.05,0.21,-0.1)); -#5556=CARTESIAN_POINT('',(-0.05,0.21,-0.1)); -#5557=CARTESIAN_POINT('',(-0.213,0.21,-0.1)); -#5558=CARTESIAN_POINT('',(-0.213,0.21,-0.1)); -#5559=CARTESIAN_POINT('',(-0.25,0.21,0.1)); -#5560=CARTESIAN_POINT('',(-0.25,0.21,-0.025)); -#5561=CARTESIAN_POINT('',(-0.26,0.21,-0.025)); -#5562=CARTESIAN_POINT('',(0.,0.,0.1)); -#5563=CARTESIAN_POINT('',(-0.12,0.21,0.1)); -#5564=CARTESIAN_POINT('',(-0.1,0.16,0.1)); -#5565=CARTESIAN_POINT('',(-0.25,0.,0.1)); -#5566=CARTESIAN_POINT('',(-0.213,8.53702498020082E-18,0.1)); -#5567=CARTESIAN_POINT('',(-0.213,0.06,0.1)); -#5568=CARTESIAN_POINT('',(-0.213,0.06,0.1)); -#5569=CARTESIAN_POINT('',(0.213,0.06,0.1)); -#5570=CARTESIAN_POINT('',(0.213,0.06,0.1)); -#5571=CARTESIAN_POINT('',(0.213,0.06,0.1)); -#5572=CARTESIAN_POINT('',(0.213,8.53702498020082E-18,0.1)); -#5573=CARTESIAN_POINT('',(-0.25,0.,0.1)); -#5574=CARTESIAN_POINT('',(0.25,0.,0.1)); -#5575=CARTESIAN_POINT('',(0.25,0.,0.1)); -#5576=CARTESIAN_POINT('',(0.05,0.065,0.1)); -#5577=CARTESIAN_POINT('',(0.05,0.065,0.1)); -#5578=CARTESIAN_POINT('',(-0.05,0.065,0.1)); -#5579=CARTESIAN_POINT('',(-0.05,0.065,0.1)); -#5580=CARTESIAN_POINT('',(-0.05,0.21,0.1)); -#5581=CARTESIAN_POINT('',(-0.1,0.16,0.1)); -#5582=CARTESIAN_POINT('',(-0.215,0.18,0.07)); -#5583=CARTESIAN_POINT('',(-0.05,0.18,0.07)); -#5584=CARTESIAN_POINT('',(-0.05,0.18,0.07)); -#5585=CARTESIAN_POINT('',(-0.215,0.18,0.07)); -#5586=CARTESIAN_POINT('',(-0.215,0.18,0.07)); -#5587=CARTESIAN_POINT('',(-0.215,0.18,0.07)); -#5588=CARTESIAN_POINT('',(-0.215,0.18,0.07)); -#5589=CARTESIAN_POINT('',(-0.215,0.18,0.07)); -#5590=CARTESIAN_POINT('',(0.05,0.18,0.07)); -#5591=CARTESIAN_POINT('',(0.215,0.18,0.07)); -#5592=CARTESIAN_POINT('',(0.05,0.18,0.07)); -#5593=CARTESIAN_POINT('',(0.215,0.18,0.07)); -#5594=CARTESIAN_POINT('',(-0.25,0.,0.1)); -#5595=CARTESIAN_POINT('',(-0.245,0.,0.025)); -#5596=CARTESIAN_POINT('',(-0.245,0.,0.025)); -#5597=CARTESIAN_POINT('',(-0.245,0.,-0.025)); -#5598=CARTESIAN_POINT('',(-0.245,0.,-0.025)); -#5599=CARTESIAN_POINT('',(-0.26,0.,-0.025)); -#5600=CARTESIAN_POINT('',(-0.25,0.,-0.025)); -#5601=CARTESIAN_POINT('',(-0.25,0.,0.1)); -#5602=CARTESIAN_POINT('',(-0.213,0.,0.1)); -#5603=CARTESIAN_POINT('',(-0.25,0.21,0.1)); -#5604=CARTESIAN_POINT('',(-0.25,0.21,-0.025)); -#5605=CARTESIAN_POINT('',(-0.25,0.,0.1)); -#5606=CARTESIAN_POINT('',(0.213,0.,0.1)); -#5607=CARTESIAN_POINT('',(0.213,0.,-0.12)); -#5608=CARTESIAN_POINT('',(-0.25,0.,-0.12)); -#5609=CARTESIAN_POINT('',(0.25,0.,-0.12)); -#5610=CARTESIAN_POINT('',(0.25,0.,0.1)); -#5611=CARTESIAN_POINT('',(0.25,0.,0.1)); -#5612=CARTESIAN_POINT('',(0.25,0.,-0.12)); -#5613=CARTESIAN_POINT('',(0.,0.,-0.12)); -#5614=CARTESIAN_POINT('',(0.213,0.,-0.12)); -#5615=CARTESIAN_POINT('',(0.213,0.02,0.06)); -#5616=CARTESIAN_POINT('',(-0.213,0.02,0.06)); -#5617=CARTESIAN_POINT('',(-0.213,0.02,0.06)); -#5618=CARTESIAN_POINT('',(0.213,0.02,0.06)); -#5619=CARTESIAN_POINT('',(0.213,0.02,0.06)); -#5620=CARTESIAN_POINT('',(0.213,0.02,0.06)); -#5621=CARTESIAN_POINT('',(0.213,0.08,-0.12)); -#5622=CARTESIAN_POINT('',(0.213,0.06,-0.1)); -#5623=CARTESIAN_POINT('',(-0.05,0.06,-0.1)); -#5624=CARTESIAN_POINT('',(-0.213,0.06,-0.1)); -#5625=CARTESIAN_POINT('',(-0.05,0.08,-0.12)); -#5626=CARTESIAN_POINT('',(0.05,0.08,-0.12)); -#5627=CARTESIAN_POINT('',(0.05,0.06,-0.1)); -#5628=CARTESIAN_POINT('',(0.213,0.06,-0.1)); -#5629=CARTESIAN_POINT('',(0.213,0.06,-0.1)); -#5630=CARTESIAN_POINT('',(0.213,0.08,-0.12)); -#5631=CARTESIAN_POINT('',(0.213,0.02,-0.06)); -#5632=CARTESIAN_POINT('',(0.213,0.02,-0.06)); -#5633=CARTESIAN_POINT('',(-0.213,0.02,-0.06)); -#5634=CARTESIAN_POINT('',(-0.213,0.08,-0.12)); -#5635=CARTESIAN_POINT('',(0.213,0.02,-0.06)); -#5636=CARTESIAN_POINT('',(-0.213,0.02,-0.06)); -#5637=CARTESIAN_POINT('',(0.213,0.02,-0.06)); -#5638=CARTESIAN_POINT('',(0.213,0.,0.)); -#5639=CARTESIAN_POINT('',(0.213,0.21,-0.1)); -#5640=CARTESIAN_POINT('',(-0.213,0.,0.)); -#5641=CARTESIAN_POINT('',(-0.213,0.21,-0.1)); -#5642=CARTESIAN_POINT('',(0.215,0.18,-0.07)); -#5643=CARTESIAN_POINT('',(0.215,0.18,-0.07)); -#5644=CARTESIAN_POINT('',(0.215,0.18,-0.07)); -#5645=CARTESIAN_POINT('',(-0.215,0.18,-0.07)); -#5646=CARTESIAN_POINT('',(0.215,0.18,-0.07)); -#5647=CARTESIAN_POINT('',(-0.215,0.18,-0.07)); -#5648=CARTESIAN_POINT('',(-0.215,0.18,-0.07)); -#5649=CARTESIAN_POINT('',(-0.215,0.18,-0.07)); -#5650=CARTESIAN_POINT('',(0.215,0.18,0.07)); -#5651=CARTESIAN_POINT('',(0.215,0.18,0.07)); -#5652=CARTESIAN_POINT('',(-0.05,0.21,0.1)); -#5653=CARTESIAN_POINT('',(-0.05,0.21,0.07)); -#5654=CARTESIAN_POINT('',(-0.05,0.065,0.07)); -#5655=CARTESIAN_POINT('',(-0.05,0.065,0.1)); -#5656=CARTESIAN_POINT('',(-0.05,0.065,0.1)); -#5657=CARTESIAN_POINT('',(-0.215,0.065,0.07)); -#5658=CARTESIAN_POINT('',(-0.215,0.065,0.07)); -#5659=CARTESIAN_POINT('',(0.05,0.065,0.1)); -#5660=CARTESIAN_POINT('',(0.05,0.065,0.07)); -#5661=CARTESIAN_POINT('',(-0.215,0.065,0.07)); -#5662=CARTESIAN_POINT('',(0.215,0.065,0.07)); -#5663=CARTESIAN_POINT('',(0.215,0.065,0.07)); -#5664=CARTESIAN_POINT('',(0.215,0.065,-0.07)); -#5665=CARTESIAN_POINT('',(0.215,0.065,-0.07)); -#5666=CARTESIAN_POINT('',(-0.215,0.065,-0.07)); -#5667=CARTESIAN_POINT('',(-0.215,0.065,-0.07)); -#5668=CARTESIAN_POINT('',(0.05,0.065,0.1)); -#5669=CARTESIAN_POINT('',(0.05,0.065,0.07)); -#5670=CARTESIAN_POINT('',(-0.12,0.21,0.09)); -#5671=CARTESIAN_POINT('',(-0.1,0.16,0.09)); -#5672=CARTESIAN_POINT('',(-0.1,0.16,0.09)); -#5673=CARTESIAN_POINT('',(-0.12,0.21,0.09)); -#5674=CARTESIAN_POINT('',(-0.1,0.16,0.09)); -#5675=CARTESIAN_POINT('',(-0.1,0.16,0.09)); -#5676=CARTESIAN_POINT('',(0.,0.,0.09)); -#5677=CARTESIAN_POINT('',(-0.215,0.065,0.07)); -#5678=CARTESIAN_POINT('',(-0.215,0.065,0.07)); -#5679=CARTESIAN_POINT('',(0.215,0.065,-0.07)); -#5680=CARTESIAN_POINT('',(-0.215,0.065,-0.07)); -#5681=CARTESIAN_POINT('',(0.215,0.065,-0.07)); -#5682=CARTESIAN_POINT('',(-0.215,0.065,-0.07)); -#5683=CARTESIAN_POINT('',(-0.215,0.065,0.07)); -#5684=CARTESIAN_POINT('',(0.215,0.065,0.07)); -#5685=CARTESIAN_POINT('',(0.215,0.065,0.07)); -#5686=CARTESIAN_POINT('',(0.213,0.21,-0.1)); -#5687=CARTESIAN_POINT('',(0.05,0.21,-0.1)); -#5688=CARTESIAN_POINT('',(0.05,0.21,-0.1)); -#5689=CARTESIAN_POINT('',(-0.05,0.21,-0.12)); -#5690=CARTESIAN_POINT('',(-0.05,0.21,-0.1)); -#5691=CARTESIAN_POINT('',(-0.05,0.21,-0.1)); -#5692=CARTESIAN_POINT('',(-0.245,0.21,0.025)); -#5693=CARTESIAN_POINT('',(-0.245,0.21,0.025)); -#5694=CARTESIAN_POINT('',(-0.26,0.21,-0.025)); -#5695=CARTESIAN_POINT('',(-0.245,0.21,-0.025)); -#5696=CARTESIAN_POINT('',(-0.245,0.21,-0.025)); -#5697=CARTESIAN_POINT('',(0.,0.,0.)); -#5698=CARTESIAN_POINT('',(0.02,0.,-0.01)); -#5699=CARTESIAN_POINT('',(0.02,0.,0.)); -#5700=CARTESIAN_POINT('',(-0.019,0.,0.)); -#5701=CARTESIAN_POINT('',(-0.02,0.,0.)); -#5702=CARTESIAN_POINT('',(-0.019,0.,0.002)); -#5703=CARTESIAN_POINT('',(-0.019,0.,-0.009)); -#5704=CARTESIAN_POINT('',(0.019,0.,-0.009)); -#5705=CARTESIAN_POINT('',(0.019,0.,-0.009)); -#5706=CARTESIAN_POINT('',(0.019,0.,0.002)); -#5707=CARTESIAN_POINT('',(0.019,0.,0.)); -#5708=CARTESIAN_POINT('',(0.02,0.,0.)); -#5709=CARTESIAN_POINT('',(0.02,0.,0.)); -#5710=CARTESIAN_POINT('',(0.02,0.,-0.01)); -#5711=CARTESIAN_POINT('',(0.02,0.,-0.01)); -#5712=CARTESIAN_POINT('',(0.02,0.,-0.01)); -#5713=CARTESIAN_POINT('',(-0.02,0.,-0.01)); -#5714=CARTESIAN_POINT('',(-0.02,0.,-0.01)); -#5715=CARTESIAN_POINT('',(0.,0.,0.)); -#5716=CARTESIAN_POINT('',(0.0164262664165103,-0.00650206378986866,0.)); -#5717=CARTESIAN_POINT('',(2.13425624505021E-18,-0.048,0.)); -#5718=CARTESIAN_POINT('',(-0.0164262664165103,-0.00650206378986866,0.)); -#5719=CARTESIAN_POINT('',(-0.02,0.,0.)); -#5720=CARTESIAN_POINT('',(0.,-0.05,0.)); -#5721=CARTESIAN_POINT('',(0.,-0.05,0.)); -#5722=CARTESIAN_POINT('',(-0.02,0.,-0.01)); -#5723=CARTESIAN_POINT('',(-0.02,0.,-0.01)); -#5724=CARTESIAN_POINT('',(0.,-0.05,-0.01)); -#5725=CARTESIAN_POINT('',(0.,-0.05,-0.01)); -#5726=CARTESIAN_POINT('',(0.,-0.05,-0.01)); -#5727=CARTESIAN_POINT('',(0.,-0.05,-0.01)); -#5728=CARTESIAN_POINT('',(0.,0.,-0.01)); -#5729=CARTESIAN_POINT('',(-0.019,0.,0.002)); -#5730=CARTESIAN_POINT('',(0.,-0.048,0.002)); -#5731=CARTESIAN_POINT('',(0.,-0.048,-0.009)); -#5732=CARTESIAN_POINT('',(-0.019,0.,-0.009)); -#5733=CARTESIAN_POINT('',(0.,-0.048,0.002)); -#5734=CARTESIAN_POINT('',(0.,-0.048,-0.009)); -#5735=CARTESIAN_POINT('',(0.,0.,-0.009)); -#5736=CARTESIAN_POINT('',(-0.1,0.21,0.1)); -#5737=CARTESIAN_POINT('',(0.108,0.021,-0.033)); -#5738=CARTESIAN_POINT('',(-0.092,0.021,-0.033)); -#5739=CARTESIAN_POINT('',(-0.092,0.056,-0.033)); -#5740=CARTESIAN_POINT('',(-0.092,0.181,-0.033)); -#5741=CARTESIAN_POINT('',(0.108,0.056,-0.033)); -#5742=CARTESIAN_POINT('',(-0.058,0.056,-0.033)); -#5743=CARTESIAN_POINT('',(-0.058,0.021,-0.033)); -#5744=CARTESIAN_POINT('',(-0.058,0.181,-0.033)); -#5745=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5746=CARTESIAN_POINT('',(-0.042,0.181,-0.033)); -#5747=CARTESIAN_POINT('',(-0.042,0.021,-0.033)); -#5748=CARTESIAN_POINT('',(-0.042,0.056,-0.033)); -#5749=CARTESIAN_POINT('',(0.108,0.056,-0.033)); -#5750=CARTESIAN_POINT('',(-0.00800000000000001,0.056,-0.033)); -#5751=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.033)); -#5752=CARTESIAN_POINT('',(-0.00800000000000001,0.181,-0.033)); -#5753=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5754=CARTESIAN_POINT('',(0.00800000000000002,0.181,-0.033)); -#5755=CARTESIAN_POINT('',(0.00800000000000002,0.021,-0.033)); -#5756=CARTESIAN_POINT('',(0.00800000000000002,0.056,-0.033)); -#5757=CARTESIAN_POINT('',(0.108,0.056,-0.033)); -#5758=CARTESIAN_POINT('',(0.042,0.056,-0.033)); -#5759=CARTESIAN_POINT('',(0.042,0.021,-0.033)); -#5760=CARTESIAN_POINT('',(0.042,0.181,-0.033)); -#5761=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5762=CARTESIAN_POINT('',(0.058,0.181,-0.033)); -#5763=CARTESIAN_POINT('',(0.058,0.021,-0.033)); -#5764=CARTESIAN_POINT('',(0.058,0.056,-0.033)); -#5765=CARTESIAN_POINT('',(0.108,0.056,-0.033)); -#5766=CARTESIAN_POINT('',(0.0919999999999999,0.056,-0.033)); -#5767=CARTESIAN_POINT('',(0.0919999999999999,0.021,-0.033)); -#5768=CARTESIAN_POINT('',(0.0919999999999999,0.181,-0.033)); -#5769=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5770=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5771=CARTESIAN_POINT('',(0.108,0.021,-0.033)); -#5772=CARTESIAN_POINT('',(0.108,0.021,-0.033)); -#5773=CARTESIAN_POINT('',(0.108,0.021,-0.033)); -#5774=CARTESIAN_POINT('',(0.092,0.021,-0.033)); -#5775=CARTESIAN_POINT('',(0.092,0.021,-0.033)); -#5776=CARTESIAN_POINT('',(0.092,0.04,-0.033)); -#5777=CARTESIAN_POINT('',(0.108,0.04,-0.033)); -#5778=CARTESIAN_POINT('',(0.058,0.04,-0.033)); -#5779=CARTESIAN_POINT('',(0.058,0.021,-0.033)); -#5780=CARTESIAN_POINT('',(0.058,0.021,-0.033)); -#5781=CARTESIAN_POINT('',(0.108,0.021,-0.033)); -#5782=CARTESIAN_POINT('',(0.042,0.021,-0.033)); -#5783=CARTESIAN_POINT('',(0.042,0.021,-0.033)); -#5784=CARTESIAN_POINT('',(0.042,0.04,-0.033)); -#5785=CARTESIAN_POINT('',(0.108,0.04,-0.033)); -#5786=CARTESIAN_POINT('',(0.00799999999999999,0.04,-0.033)); -#5787=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.033)); -#5788=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.033)); -#5789=CARTESIAN_POINT('',(0.108,0.021,-0.033)); -#5790=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.033)); -#5791=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.033)); -#5792=CARTESIAN_POINT('',(-0.00800000000000001,0.04,-0.033)); -#5793=CARTESIAN_POINT('',(0.108,0.04,-0.033)); -#5794=CARTESIAN_POINT('',(-0.042,0.04,-0.033)); -#5795=CARTESIAN_POINT('',(-0.042,0.021,-0.033)); -#5796=CARTESIAN_POINT('',(-0.042,0.021,-0.033)); -#5797=CARTESIAN_POINT('',(0.108,0.021,-0.033)); -#5798=CARTESIAN_POINT('',(-0.058,0.021,-0.033)); -#5799=CARTESIAN_POINT('',(-0.058,0.021,-0.033)); -#5800=CARTESIAN_POINT('',(-0.058,0.04,-0.033)); -#5801=CARTESIAN_POINT('',(0.108,0.04,-0.033)); -#5802=CARTESIAN_POINT('',(-0.092,0.04,-0.033)); -#5803=CARTESIAN_POINT('',(-0.092,0.021,-0.033)); -#5804=CARTESIAN_POINT('',(-0.092,0.021,-0.033)); -#5805=CARTESIAN_POINT('',(0.108,0.021,-0.033)); -#5806=CARTESIAN_POINT('',(-0.108,0.021,-0.033)); -#5807=CARTESIAN_POINT('',(-0.108,0.021,-0.033)); -#5808=CARTESIAN_POINT('',(-0.108,0.181,-0.033)); -#5809=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5810=CARTESIAN_POINT('',(0.108,0.181,0.033)); -#5811=CARTESIAN_POINT('',(-0.092,0.181,0.033)); -#5812=CARTESIAN_POINT('',(-0.092,0.181,0.033)); -#5813=CARTESIAN_POINT('',(-0.092,0.056,0.033)); -#5814=CARTESIAN_POINT('',(0.108,0.181,0.033)); -#5815=CARTESIAN_POINT('',(-0.108,0.181,0.033)); -#5816=CARTESIAN_POINT('',(-0.108,0.181,0.033)); -#5817=CARTESIAN_POINT('',(-0.108,0.021,0.033)); -#5818=CARTESIAN_POINT('',(0.108,0.021,0.033)); -#5819=CARTESIAN_POINT('',(-0.092,0.021,0.033)); -#5820=CARTESIAN_POINT('',(-0.092,0.181,0.033)); -#5821=CARTESIAN_POINT('',(-0.092,0.04,0.033)); -#5822=CARTESIAN_POINT('',(0.108,0.04,0.033)); -#5823=CARTESIAN_POINT('',(-0.058,0.04,0.033)); -#5824=CARTESIAN_POINT('',(-0.058,0.181,0.033)); -#5825=CARTESIAN_POINT('',(-0.058,0.021,0.033)); -#5826=CARTESIAN_POINT('',(0.108,0.021,0.033)); -#5827=CARTESIAN_POINT('',(-0.042,0.021,0.033)); -#5828=CARTESIAN_POINT('',(-0.042,0.181,0.033)); -#5829=CARTESIAN_POINT('',(-0.042,0.04,0.033)); -#5830=CARTESIAN_POINT('',(0.108,0.04,0.033)); -#5831=CARTESIAN_POINT('',(-0.00800000000000001,0.04,0.033)); -#5832=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.033)); -#5833=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.033)); -#5834=CARTESIAN_POINT('',(0.108,0.021,0.033)); -#5835=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.033)); -#5836=CARTESIAN_POINT('',(0.00799999999999999,0.181,0.033)); -#5837=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.033)); -#5838=CARTESIAN_POINT('',(0.108,0.04,0.033)); -#5839=CARTESIAN_POINT('',(0.042,0.04,0.033)); -#5840=CARTESIAN_POINT('',(0.042,0.181,0.033)); -#5841=CARTESIAN_POINT('',(0.042,0.021,0.033)); -#5842=CARTESIAN_POINT('',(0.108,0.021,0.033)); -#5843=CARTESIAN_POINT('',(0.058,0.021,0.033)); -#5844=CARTESIAN_POINT('',(0.058,0.181,0.033)); -#5845=CARTESIAN_POINT('',(0.058,0.04,0.033)); -#5846=CARTESIAN_POINT('',(0.108,0.04,0.033)); -#5847=CARTESIAN_POINT('',(0.092,0.04,0.033)); -#5848=CARTESIAN_POINT('',(0.092,0.181,0.033)); -#5849=CARTESIAN_POINT('',(0.092,0.021,0.033)); -#5850=CARTESIAN_POINT('',(0.108,0.021,0.033)); -#5851=CARTESIAN_POINT('',(0.108,0.021,0.033)); -#5852=CARTESIAN_POINT('',(0.108,0.181,0.033)); -#5853=CARTESIAN_POINT('',(0.108,0.181,0.033)); -#5854=CARTESIAN_POINT('',(0.108,0.181,0.033)); -#5855=CARTESIAN_POINT('',(0.0919999999999999,0.181,0.033)); -#5856=CARTESIAN_POINT('',(0.0919999999999999,0.181,0.033)); -#5857=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.033)); -#5858=CARTESIAN_POINT('',(0.108,0.056,0.033)); -#5859=CARTESIAN_POINT('',(0.058,0.056,0.033)); -#5860=CARTESIAN_POINT('',(0.058,0.181,0.033)); -#5861=CARTESIAN_POINT('',(0.058,0.181,0.033)); -#5862=CARTESIAN_POINT('',(0.108,0.181,0.033)); -#5863=CARTESIAN_POINT('',(0.042,0.181,0.033)); -#5864=CARTESIAN_POINT('',(0.042,0.181,0.033)); -#5865=CARTESIAN_POINT('',(0.042,0.056,0.033)); -#5866=CARTESIAN_POINT('',(0.108,0.056,0.033)); -#5867=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.033)); -#5868=CARTESIAN_POINT('',(0.00800000000000002,0.181,0.033)); -#5869=CARTESIAN_POINT('',(0.00800000000000002,0.181,0.033)); -#5870=CARTESIAN_POINT('',(0.108,0.181,0.033)); -#5871=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.033)); -#5872=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.033)); -#5873=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.033)); -#5874=CARTESIAN_POINT('',(0.108,0.056,0.033)); -#5875=CARTESIAN_POINT('',(-0.042,0.056,0.033)); -#5876=CARTESIAN_POINT('',(-0.042,0.181,0.033)); -#5877=CARTESIAN_POINT('',(-0.042,0.181,0.033)); -#5878=CARTESIAN_POINT('',(0.108,0.181,0.033)); -#5879=CARTESIAN_POINT('',(-0.058,0.181,0.033)); -#5880=CARTESIAN_POINT('',(-0.058,0.181,0.033)); -#5881=CARTESIAN_POINT('',(-0.058,0.056,0.033)); -#5882=CARTESIAN_POINT('',(0.108,0.056,0.033)); -#5883=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5884=CARTESIAN_POINT('',(-0.092,0.181,-0.033)); -#5885=CARTESIAN_POINT('',(-0.092,0.185,-0.029)); -#5886=CARTESIAN_POINT('',(-0.108,0.181,-0.033)); -#5887=CARTESIAN_POINT('',(-0.108,0.185,-0.029)); -#5888=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5889=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5890=CARTESIAN_POINT('',(-0.058,0.181,-0.033)); -#5891=CARTESIAN_POINT('',(-0.058,0.185,-0.029)); -#5892=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5893=CARTESIAN_POINT('',(-0.042,0.185,-0.029)); -#5894=CARTESIAN_POINT('',(-0.042,0.181,-0.033)); -#5895=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5896=CARTESIAN_POINT('',(-0.00800000000000001,0.181,-0.033)); -#5897=CARTESIAN_POINT('',(-0.00800000000000001,0.185,-0.029)); -#5898=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5899=CARTESIAN_POINT('',(0.00800000000000002,0.185,-0.029)); -#5900=CARTESIAN_POINT('',(0.00800000000000002,0.181,-0.033)); -#5901=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5902=CARTESIAN_POINT('',(0.042,0.181,-0.033)); -#5903=CARTESIAN_POINT('',(0.042,0.185,-0.029)); -#5904=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5905=CARTESIAN_POINT('',(0.058,0.185,-0.029)); -#5906=CARTESIAN_POINT('',(0.058,0.181,-0.033)); -#5907=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5908=CARTESIAN_POINT('',(0.0919999999999999,0.181,-0.033)); -#5909=CARTESIAN_POINT('',(0.0919999999999999,0.185,-0.029)); -#5910=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5911=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5912=CARTESIAN_POINT('',(0.108,0.181,-0.033)); -#5913=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5914=CARTESIAN_POINT('',(-0.092,0.185,-0.029)); -#5915=CARTESIAN_POINT('',(-0.092,0.185,-0.021)); -#5916=CARTESIAN_POINT('',(-0.108,0.185,-0.029)); -#5917=CARTESIAN_POINT('',(-0.108,0.185,-0.021)); -#5918=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5919=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5920=CARTESIAN_POINT('',(-0.058,0.185,-0.029)); -#5921=CARTESIAN_POINT('',(-0.058,0.185,-0.021)); -#5922=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5923=CARTESIAN_POINT('',(-0.042,0.185,-0.021)); -#5924=CARTESIAN_POINT('',(-0.042,0.185,-0.029)); -#5925=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5926=CARTESIAN_POINT('',(-0.00800000000000001,0.185,-0.029)); -#5927=CARTESIAN_POINT('',(-0.00800000000000001,0.185,-0.021)); -#5928=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5929=CARTESIAN_POINT('',(0.00800000000000002,0.185,-0.021)); -#5930=CARTESIAN_POINT('',(0.00800000000000002,0.185,-0.029)); -#5931=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5932=CARTESIAN_POINT('',(0.042,0.185,-0.029)); -#5933=CARTESIAN_POINT('',(0.042,0.185,-0.021)); -#5934=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5935=CARTESIAN_POINT('',(0.058,0.185,-0.021)); -#5936=CARTESIAN_POINT('',(0.058,0.185,-0.029)); -#5937=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5938=CARTESIAN_POINT('',(0.0919999999999999,0.185,-0.029)); -#5939=CARTESIAN_POINT('',(0.0919999999999999,0.185,-0.021)); -#5940=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5941=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5942=CARTESIAN_POINT('',(0.108,0.185,-0.029)); -#5943=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5944=CARTESIAN_POINT('',(-0.092,0.185,-0.021)); -#5945=CARTESIAN_POINT('',(-0.092,0.181,-0.017)); -#5946=CARTESIAN_POINT('',(-0.108,0.185,-0.021)); -#5947=CARTESIAN_POINT('',(-0.108,0.181,-0.017)); -#5948=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5949=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5950=CARTESIAN_POINT('',(-0.058,0.185,-0.021)); -#5951=CARTESIAN_POINT('',(-0.058,0.181,-0.017)); -#5952=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5953=CARTESIAN_POINT('',(-0.042,0.181,-0.017)); -#5954=CARTESIAN_POINT('',(-0.042,0.185,-0.021)); -#5955=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5956=CARTESIAN_POINT('',(-0.00800000000000001,0.185,-0.021)); -#5957=CARTESIAN_POINT('',(-0.00800000000000001,0.181,-0.017)); -#5958=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5959=CARTESIAN_POINT('',(0.00800000000000002,0.181,-0.017)); -#5960=CARTESIAN_POINT('',(0.00800000000000002,0.185,-0.021)); -#5961=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5962=CARTESIAN_POINT('',(0.042,0.185,-0.021)); -#5963=CARTESIAN_POINT('',(0.042,0.181,-0.017)); -#5964=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5965=CARTESIAN_POINT('',(0.058,0.181,-0.017)); -#5966=CARTESIAN_POINT('',(0.058,0.185,-0.021)); -#5967=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5968=CARTESIAN_POINT('',(0.0919999999999999,0.185,-0.021)); -#5969=CARTESIAN_POINT('',(0.0919999999999999,0.181,-0.017)); -#5970=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5971=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5972=CARTESIAN_POINT('',(0.108,0.185,-0.021)); -#5973=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5974=CARTESIAN_POINT('',(-0.092,0.181,-0.017)); -#5975=CARTESIAN_POINT('',(-0.092,0.056,-0.017)); -#5976=CARTESIAN_POINT('',(-0.108,0.181,-0.017)); -#5977=CARTESIAN_POINT('',(-0.108,0.056,-0.017)); -#5978=CARTESIAN_POINT('',(0.108,0.056,-0.017)); -#5979=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5980=CARTESIAN_POINT('',(-0.058,0.181,-0.017)); -#5981=CARTESIAN_POINT('',(-0.058,0.056,-0.017)); -#5982=CARTESIAN_POINT('',(0.108,0.056,-0.017)); -#5983=CARTESIAN_POINT('',(-0.042,0.056,-0.017)); -#5984=CARTESIAN_POINT('',(-0.042,0.181,-0.017)); -#5985=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5986=CARTESIAN_POINT('',(-0.00800000000000001,0.181,-0.017)); -#5987=CARTESIAN_POINT('',(-0.00800000000000001,0.056,-0.017)); -#5988=CARTESIAN_POINT('',(0.108,0.056,-0.017)); -#5989=CARTESIAN_POINT('',(0.00800000000000002,0.056,-0.017)); -#5990=CARTESIAN_POINT('',(0.00800000000000002,0.181,-0.017)); -#5991=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5992=CARTESIAN_POINT('',(0.042,0.181,-0.017)); -#5993=CARTESIAN_POINT('',(0.042,0.056,-0.017)); -#5994=CARTESIAN_POINT('',(0.108,0.056,-0.017)); -#5995=CARTESIAN_POINT('',(0.058,0.056,-0.017)); -#5996=CARTESIAN_POINT('',(0.058,0.181,-0.017)); -#5997=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#5998=CARTESIAN_POINT('',(0.0919999999999999,0.181,-0.017)); -#5999=CARTESIAN_POINT('',(0.0919999999999999,0.056,-0.017)); -#6000=CARTESIAN_POINT('',(0.108,0.056,-0.017)); -#6001=CARTESIAN_POINT('',(0.108,0.056,-0.017)); -#6002=CARTESIAN_POINT('',(0.108,0.181,-0.017)); -#6003=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6004=CARTESIAN_POINT('',(-0.092,0.056,0.017)); -#6005=CARTESIAN_POINT('',(-0.092,0.056,0.017)); -#6006=CARTESIAN_POINT('',(-0.092,0.181,0.017)); -#6007=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6008=CARTESIAN_POINT('',(-0.108,0.056,0.017)); -#6009=CARTESIAN_POINT('',(-0.108,0.056,0.017)); -#6010=CARTESIAN_POINT('',(-0.108,0.181,0.017)); -#6011=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6012=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6013=CARTESIAN_POINT('',(-0.058,0.056,0.017)); -#6014=CARTESIAN_POINT('',(-0.058,0.181,0.017)); -#6015=CARTESIAN_POINT('',(-0.058,0.056,0.017)); -#6016=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6017=CARTESIAN_POINT('',(-0.042,0.181,0.017)); -#6018=CARTESIAN_POINT('',(-0.042,0.056,0.017)); -#6019=CARTESIAN_POINT('',(-0.042,0.056,0.017)); -#6020=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6021=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6022=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.017)); -#6023=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.017)); -#6024=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.017)); -#6025=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6026=CARTESIAN_POINT('',(0.00800000000000002,0.181,0.017)); -#6027=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.017)); -#6028=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.017)); -#6029=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6030=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6031=CARTESIAN_POINT('',(0.042,0.056,0.017)); -#6032=CARTESIAN_POINT('',(0.042,0.181,0.017)); -#6033=CARTESIAN_POINT('',(0.042,0.056,0.017)); -#6034=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6035=CARTESIAN_POINT('',(0.058,0.181,0.017)); -#6036=CARTESIAN_POINT('',(0.058,0.056,0.017)); -#6037=CARTESIAN_POINT('',(0.058,0.056,0.017)); -#6038=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6039=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6040=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.017)); -#6041=CARTESIAN_POINT('',(0.0919999999999999,0.181,0.017)); -#6042=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.017)); -#6043=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6044=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6045=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6046=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6047=CARTESIAN_POINT('',(0.108,0.056,0.017)); -#6048=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6049=CARTESIAN_POINT('',(-0.092,0.181,0.017)); -#6050=CARTESIAN_POINT('',(-0.092,0.185,0.021)); -#6051=CARTESIAN_POINT('',(-0.108,0.181,0.017)); -#6052=CARTESIAN_POINT('',(-0.108,0.185,0.021)); -#6053=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6054=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6055=CARTESIAN_POINT('',(-0.058,0.181,0.017)); -#6056=CARTESIAN_POINT('',(-0.058,0.185,0.021)); -#6057=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6058=CARTESIAN_POINT('',(-0.042,0.185,0.021)); -#6059=CARTESIAN_POINT('',(-0.042,0.181,0.017)); -#6060=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6061=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.017)); -#6062=CARTESIAN_POINT('',(-0.00800000000000001,0.185,0.021)); -#6063=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6064=CARTESIAN_POINT('',(0.00800000000000002,0.185,0.021)); -#6065=CARTESIAN_POINT('',(0.00800000000000002,0.181,0.017)); -#6066=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6067=CARTESIAN_POINT('',(0.042,0.181,0.017)); -#6068=CARTESIAN_POINT('',(0.042,0.185,0.021)); -#6069=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6070=CARTESIAN_POINT('',(0.058,0.185,0.021)); -#6071=CARTESIAN_POINT('',(0.058,0.181,0.017)); -#6072=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6073=CARTESIAN_POINT('',(0.0919999999999999,0.181,0.017)); -#6074=CARTESIAN_POINT('',(0.0919999999999999,0.185,0.021)); -#6075=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6076=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6077=CARTESIAN_POINT('',(0.108,0.181,0.017)); -#6078=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6079=CARTESIAN_POINT('',(-0.092,0.185,0.021)); -#6080=CARTESIAN_POINT('',(-0.092,0.185,0.029)); -#6081=CARTESIAN_POINT('',(-0.108,0.185,0.021)); -#6082=CARTESIAN_POINT('',(-0.108,0.185,0.029)); -#6083=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6084=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6085=CARTESIAN_POINT('',(-0.058,0.185,0.021)); -#6086=CARTESIAN_POINT('',(-0.058,0.185,0.029)); -#6087=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6088=CARTESIAN_POINT('',(-0.042,0.185,0.029)); -#6089=CARTESIAN_POINT('',(-0.042,0.185,0.021)); -#6090=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6091=CARTESIAN_POINT('',(-0.00800000000000001,0.185,0.021)); -#6092=CARTESIAN_POINT('',(-0.00800000000000001,0.185,0.029)); -#6093=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6094=CARTESIAN_POINT('',(0.00800000000000002,0.185,0.029)); -#6095=CARTESIAN_POINT('',(0.00800000000000002,0.185,0.021)); -#6096=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6097=CARTESIAN_POINT('',(0.042,0.185,0.021)); -#6098=CARTESIAN_POINT('',(0.042,0.185,0.029)); -#6099=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6100=CARTESIAN_POINT('',(0.058,0.185,0.029)); -#6101=CARTESIAN_POINT('',(0.058,0.185,0.021)); -#6102=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6103=CARTESIAN_POINT('',(0.0919999999999999,0.185,0.021)); -#6104=CARTESIAN_POINT('',(0.0919999999999999,0.185,0.029)); -#6105=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6106=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6107=CARTESIAN_POINT('',(0.108,0.185,0.021)); -#6108=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6109=CARTESIAN_POINT('',(-0.092,0.185,0.029)); -#6110=CARTESIAN_POINT('',(-0.108,0.185,0.029)); -#6111=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6112=CARTESIAN_POINT('',(-0.058,0.185,0.029)); -#6113=CARTESIAN_POINT('',(-0.042,0.185,0.029)); -#6114=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6115=CARTESIAN_POINT('',(-0.00800000000000001,0.185,0.029)); -#6116=CARTESIAN_POINT('',(0.00800000000000002,0.185,0.029)); -#6117=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6118=CARTESIAN_POINT('',(0.042,0.185,0.029)); -#6119=CARTESIAN_POINT('',(0.058,0.185,0.029)); -#6120=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6121=CARTESIAN_POINT('',(0.0919999999999999,0.185,0.029)); -#6122=CARTESIAN_POINT('',(0.108,0.185,0.029)); -#6123=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6124=CARTESIAN_POINT('',(0.092,-0.24,0.12)); -#6125=CARTESIAN_POINT('',(0.092,-0.00100000000000007,0.12)); -#6126=CARTESIAN_POINT('',(0.092,0.00699999999999992,0.12)); -#6127=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6128=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6129=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6130=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6131=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6132=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6133=CARTESIAN_POINT('',(0.058,0.04,0.12)); -#6134=CARTESIAN_POINT('',(0.058,0.007,0.12)); -#6135=CARTESIAN_POINT('',(0.058,-0.000999999999999986,0.12)); -#6136=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6137=CARTESIAN_POINT('',(0.042,0.00699999999999992,0.12)); -#6138=CARTESIAN_POINT('',(0.042,-0.24,0.12)); -#6139=CARTESIAN_POINT('',(0.042,-0.00100000000000007,0.12)); -#6140=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6141=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6142=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); -#6143=CARTESIAN_POINT('',(0.00799999999999999,0.007,0.12)); -#6144=CARTESIAN_POINT('',(0.00799999999999999,-0.000999999999999986,0.12)); -#6145=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6146=CARTESIAN_POINT('',(-0.00800000000000001,0.00699999999999992,0.12)); -#6147=CARTESIAN_POINT('',(-0.00800000000000001,-0.24,0.12)); -#6148=CARTESIAN_POINT('',(-0.00800000000000001,-0.00100000000000007,0.12)); -#6149=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6150=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6151=CARTESIAN_POINT('',(-0.042,0.04,0.12)); -#6152=CARTESIAN_POINT('',(-0.042,0.007,0.12)); -#6153=CARTESIAN_POINT('',(-0.042,-0.000999999999999986,0.12)); -#6154=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6155=CARTESIAN_POINT('',(-0.058,0.00699999999999992,0.12)); -#6156=CARTESIAN_POINT('',(-0.058,-0.24,0.12)); -#6157=CARTESIAN_POINT('',(-0.058,-0.00100000000000007,0.12)); -#6158=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6159=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6160=CARTESIAN_POINT('',(-0.092,0.04,0.12)); -#6161=CARTESIAN_POINT('',(-0.092,0.007,0.12)); -#6162=CARTESIAN_POINT('',(-0.092,-0.000999999999999986,0.12)); -#6163=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); -#6164=CARTESIAN_POINT('',(-0.108,0.00699999999999999,0.12)); -#6165=CARTESIAN_POINT('',(-0.108,0.00699999999999999,0.12)); -#6166=CARTESIAN_POINT('',(-0.108,-0.001,0.12)); -#6167=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6168=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6169=CARTESIAN_POINT('',(0.092,-0.001,0.12)); -#6170=CARTESIAN_POINT('',(0.092,-0.005,0.116)); -#6171=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6172=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6173=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6174=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6175=CARTESIAN_POINT('',(0.058,-0.001,0.12)); -#6176=CARTESIAN_POINT('',(0.058,-0.005,0.116)); -#6177=CARTESIAN_POINT('',(0.042,-0.001,0.12)); -#6178=CARTESIAN_POINT('',(0.042,-0.005,0.116)); -#6179=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6180=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6181=CARTESIAN_POINT('',(0.00799999999999999,-0.001,0.12)); -#6182=CARTESIAN_POINT('',(0.00799999999999999,-0.005,0.116)); -#6183=CARTESIAN_POINT('',(-0.00800000000000001,-0.001,0.12)); -#6184=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,0.116)); -#6185=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6186=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6187=CARTESIAN_POINT('',(-0.042,-0.001,0.12)); -#6188=CARTESIAN_POINT('',(-0.042,-0.005,0.116)); -#6189=CARTESIAN_POINT('',(-0.058,-0.001,0.12)); -#6190=CARTESIAN_POINT('',(-0.058,-0.005,0.116)); -#6191=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6192=CARTESIAN_POINT('',(0.108,-0.001,0.12)); -#6193=CARTESIAN_POINT('',(-0.092,-0.001,0.12)); -#6194=CARTESIAN_POINT('',(-0.092,-0.005,0.116)); -#6195=CARTESIAN_POINT('',(-0.108,-0.001,0.12)); -#6196=CARTESIAN_POINT('',(-0.108,-0.005,0.116)); -#6197=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6198=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6199=CARTESIAN_POINT('',(0.092,-0.005,0.116)); -#6200=CARTESIAN_POINT('',(0.092,-0.00500000000000001,0.043)); -#6201=CARTESIAN_POINT('',(0.108,-0.005,0.043)); -#6202=CARTESIAN_POINT('',(0.108,-0.005,0.043)); -#6203=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6204=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6205=CARTESIAN_POINT('',(0.058,-0.005,0.116)); -#6206=CARTESIAN_POINT('',(0.058,-0.00500000000000001,0.043)); -#6207=CARTESIAN_POINT('',(0.042,-0.005,0.116)); -#6208=CARTESIAN_POINT('',(0.042,-0.00500000000000001,0.043)); -#6209=CARTESIAN_POINT('',(0.108,-0.005,0.043)); -#6210=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6211=CARTESIAN_POINT('',(0.00799999999999999,-0.005,0.116)); -#6212=CARTESIAN_POINT('',(0.00799999999999999,-0.00500000000000001,0.043)); -#6213=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,0.116)); -#6214=CARTESIAN_POINT('',(-0.00800000000000001,-0.00500000000000001,0.043)); -#6215=CARTESIAN_POINT('',(0.108,-0.005,0.043)); -#6216=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6217=CARTESIAN_POINT('',(-0.042,-0.005,0.116)); -#6218=CARTESIAN_POINT('',(-0.042,-0.00500000000000001,0.043)); -#6219=CARTESIAN_POINT('',(-0.058,-0.005,0.116)); -#6220=CARTESIAN_POINT('',(-0.058,-0.00500000000000001,0.043)); -#6221=CARTESIAN_POINT('',(0.108,-0.005,0.043)); -#6222=CARTESIAN_POINT('',(0.108,-0.005,0.116)); -#6223=CARTESIAN_POINT('',(-0.092,-0.005,0.116)); -#6224=CARTESIAN_POINT('',(-0.092,-0.00500000000000001,0.043)); -#6225=CARTESIAN_POINT('',(-0.108,-0.005,0.116)); -#6226=CARTESIAN_POINT('',(-0.108,-0.005,0.043)); -#6227=CARTESIAN_POINT('',(0.108,-0.005,0.043)); -#6228=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6229=CARTESIAN_POINT('',(0.092,0.021,0.043)); -#6230=CARTESIAN_POINT('',(0.092,0.021,0.017)); -#6231=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6232=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6233=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6234=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6235=CARTESIAN_POINT('',(0.058,0.021,0.043)); -#6236=CARTESIAN_POINT('',(0.058,0.021,0.017)); -#6237=CARTESIAN_POINT('',(0.042,0.021,0.043)); -#6238=CARTESIAN_POINT('',(0.042,0.021,0.017)); -#6239=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6240=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6241=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.043)); -#6242=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.017)); -#6243=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.043)); -#6244=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.017)); -#6245=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6246=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6247=CARTESIAN_POINT('',(-0.042,0.021,0.043)); -#6248=CARTESIAN_POINT('',(-0.042,0.021,0.017)); -#6249=CARTESIAN_POINT('',(-0.058,0.021,0.043)); -#6250=CARTESIAN_POINT('',(-0.058,0.021,0.017)); -#6251=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6252=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6253=CARTESIAN_POINT('',(-0.092,0.021,0.043)); -#6254=CARTESIAN_POINT('',(-0.092,0.021,0.017)); -#6255=CARTESIAN_POINT('',(-0.108,0.021,0.043)); -#6256=CARTESIAN_POINT('',(-0.108,0.021,0.017)); -#6257=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6258=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6259=CARTESIAN_POINT('',(0.092,0.021,0.017)); -#6260=CARTESIAN_POINT('',(0.092,0.04,0.017)); -#6261=CARTESIAN_POINT('',(0.108,0.04,0.017)); -#6262=CARTESIAN_POINT('',(0.108,0.04,0.017)); -#6263=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6264=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6265=CARTESIAN_POINT('',(0.058,0.021,0.017)); -#6266=CARTESIAN_POINT('',(0.058,0.04,0.017)); -#6267=CARTESIAN_POINT('',(0.042,0.021,0.017)); -#6268=CARTESIAN_POINT('',(0.042,0.04,0.017)); -#6269=CARTESIAN_POINT('',(0.108,0.04,0.017)); -#6270=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6271=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.017)); -#6272=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.017)); -#6273=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.017)); -#6274=CARTESIAN_POINT('',(-0.00800000000000001,0.04,0.017)); -#6275=CARTESIAN_POINT('',(0.108,0.04,0.017)); -#6276=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6277=CARTESIAN_POINT('',(-0.042,0.021,0.017)); -#6278=CARTESIAN_POINT('',(-0.042,0.04,0.017)); -#6279=CARTESIAN_POINT('',(-0.058,0.021,0.017)); -#6280=CARTESIAN_POINT('',(-0.058,0.04,0.017)); -#6281=CARTESIAN_POINT('',(0.108,0.04,0.017)); -#6282=CARTESIAN_POINT('',(0.108,0.021,0.017)); -#6283=CARTESIAN_POINT('',(-0.092,0.021,0.017)); -#6284=CARTESIAN_POINT('',(-0.092,0.04,0.017)); -#6285=CARTESIAN_POINT('',(-0.108,0.021,0.017)); -#6286=CARTESIAN_POINT('',(-0.108,0.04,0.017)); -#6287=CARTESIAN_POINT('',(0.108,0.04,0.017)); -#6288=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6289=CARTESIAN_POINT('',(0.092,0.04,-0.017)); -#6290=CARTESIAN_POINT('',(0.092,0.021,-0.017)); -#6291=CARTESIAN_POINT('',(0.092,0.04,-0.017)); -#6292=CARTESIAN_POINT('',(0.108,0.021,-0.017)); -#6293=CARTESIAN_POINT('',(0.108,0.021,-0.017)); -#6294=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6295=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6296=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6297=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6298=CARTESIAN_POINT('',(0.058,0.04,-0.017)); -#6299=CARTESIAN_POINT('',(0.058,0.04,-0.017)); -#6300=CARTESIAN_POINT('',(0.058,0.021,-0.017)); -#6301=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6302=CARTESIAN_POINT('',(0.042,0.04,-0.017)); -#6303=CARTESIAN_POINT('',(0.042,0.04,-0.017)); -#6304=CARTESIAN_POINT('',(0.042,0.021,-0.017)); -#6305=CARTESIAN_POINT('',(0.108,0.021,-0.017)); -#6306=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6307=CARTESIAN_POINT('',(0.00799999999999999,0.04,-0.017)); -#6308=CARTESIAN_POINT('',(0.00799999999999999,0.04,-0.017)); -#6309=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.017)); -#6310=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6311=CARTESIAN_POINT('',(-0.00800000000000001,0.04,-0.017)); -#6312=CARTESIAN_POINT('',(-0.00800000000000001,0.04,-0.017)); -#6313=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.017)); -#6314=CARTESIAN_POINT('',(0.108,0.021,-0.017)); -#6315=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6316=CARTESIAN_POINT('',(-0.042,0.04,-0.017)); -#6317=CARTESIAN_POINT('',(-0.042,0.04,-0.017)); -#6318=CARTESIAN_POINT('',(-0.042,0.021,-0.017)); -#6319=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6320=CARTESIAN_POINT('',(-0.058,0.04,-0.017)); -#6321=CARTESIAN_POINT('',(-0.058,0.04,-0.017)); -#6322=CARTESIAN_POINT('',(-0.058,0.021,-0.017)); -#6323=CARTESIAN_POINT('',(0.108,0.021,-0.017)); -#6324=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6325=CARTESIAN_POINT('',(-0.092,0.04,-0.017)); -#6326=CARTESIAN_POINT('',(-0.092,0.04,-0.017)); -#6327=CARTESIAN_POINT('',(-0.092,0.021,-0.017)); -#6328=CARTESIAN_POINT('',(0.108,0.04,-0.017)); -#6329=CARTESIAN_POINT('',(-0.108,0.04,-0.017)); -#6330=CARTESIAN_POINT('',(-0.108,0.04,-0.017)); -#6331=CARTESIAN_POINT('',(-0.108,0.021,-0.017)); -#6332=CARTESIAN_POINT('',(0.108,0.021,-0.017)); -#6333=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6334=CARTESIAN_POINT('',(0.092,0.021,-0.043)); -#6335=CARTESIAN_POINT('',(0.092,-0.005,-0.043)); -#6336=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); -#6337=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); -#6338=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6339=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6340=CARTESIAN_POINT('',(0.058,0.021,-0.043)); -#6341=CARTESIAN_POINT('',(0.058,-0.005,-0.043)); -#6342=CARTESIAN_POINT('',(0.042,0.021,-0.043)); -#6343=CARTESIAN_POINT('',(0.042,-0.005,-0.043)); -#6344=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); -#6345=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6346=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.043)); -#6347=CARTESIAN_POINT('',(0.00799999999999999,-0.005,-0.043)); -#6348=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.043)); -#6349=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,-0.043)); -#6350=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); -#6351=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6352=CARTESIAN_POINT('',(-0.042,0.021,-0.043)); -#6353=CARTESIAN_POINT('',(-0.042,-0.005,-0.043)); -#6354=CARTESIAN_POINT('',(-0.058,0.021,-0.043)); -#6355=CARTESIAN_POINT('',(-0.058,-0.005,-0.043)); -#6356=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); -#6357=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6358=CARTESIAN_POINT('',(-0.092,0.021,-0.043)); -#6359=CARTESIAN_POINT('',(-0.092,-0.005,-0.043)); -#6360=CARTESIAN_POINT('',(-0.108,0.021,-0.043)); -#6361=CARTESIAN_POINT('',(-0.108,-0.00500000000000001,-0.043)); -#6362=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); -#6363=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); -#6364=CARTESIAN_POINT('',(0.092,-0.005,-0.043)); -#6365=CARTESIAN_POINT('',(0.092,-0.005,-0.116)); -#6366=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6367=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6368=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); -#6369=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); -#6370=CARTESIAN_POINT('',(0.058,-0.005,-0.043)); -#6371=CARTESIAN_POINT('',(0.058,-0.005,-0.116)); -#6372=CARTESIAN_POINT('',(0.042,-0.005,-0.043)); -#6373=CARTESIAN_POINT('',(0.042,-0.005,-0.116)); -#6374=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6375=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); -#6376=CARTESIAN_POINT('',(0.00799999999999999,-0.005,-0.043)); -#6377=CARTESIAN_POINT('',(0.00799999999999999,-0.005,-0.116)); -#6378=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,-0.043)); -#6379=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,-0.116)); -#6380=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6381=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); -#6382=CARTESIAN_POINT('',(-0.042,-0.005,-0.043)); -#6383=CARTESIAN_POINT('',(-0.042,-0.005,-0.116)); -#6384=CARTESIAN_POINT('',(-0.058,-0.005,-0.043)); -#6385=CARTESIAN_POINT('',(-0.058,-0.005,-0.116)); -#6386=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6387=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); -#6388=CARTESIAN_POINT('',(-0.092,-0.005,-0.043)); -#6389=CARTESIAN_POINT('',(-0.092,-0.005,-0.116)); -#6390=CARTESIAN_POINT('',(-0.108,-0.005,-0.043)); -#6391=CARTESIAN_POINT('',(-0.108,-0.005,-0.116)); -#6392=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6393=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6394=CARTESIAN_POINT('',(0.092,-0.005,-0.116)); -#6395=CARTESIAN_POINT('',(0.092,-0.00100000000000007,-0.12)); -#6396=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6397=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6398=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6399=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6400=CARTESIAN_POINT('',(0.058,-0.005,-0.116)); -#6401=CARTESIAN_POINT('',(0.058,-0.000999999999999986,-0.12)); -#6402=CARTESIAN_POINT('',(0.042,-0.005,-0.116)); -#6403=CARTESIAN_POINT('',(0.042,-0.00100000000000007,-0.12)); -#6404=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6405=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6406=CARTESIAN_POINT('',(0.00799999999999999,-0.005,-0.116)); -#6407=CARTESIAN_POINT('',(0.00799999999999999,-0.000999999999999986,-0.12)); -#6408=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,-0.116)); -#6409=CARTESIAN_POINT('',(-0.00800000000000001,-0.00100000000000007,-0.12)); -#6410=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6411=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6412=CARTESIAN_POINT('',(-0.042,-0.005,-0.116)); -#6413=CARTESIAN_POINT('',(-0.042,-0.000999999999999986,-0.12)); -#6414=CARTESIAN_POINT('',(-0.058,-0.005,-0.116)); -#6415=CARTESIAN_POINT('',(-0.058,-0.00100000000000007,-0.12)); -#6416=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6417=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); -#6418=CARTESIAN_POINT('',(-0.092,-0.005,-0.116)); -#6419=CARTESIAN_POINT('',(-0.092,-0.000999999999999986,-0.12)); -#6420=CARTESIAN_POINT('',(-0.108,-0.005,-0.116)); -#6421=CARTESIAN_POINT('',(-0.108,-0.001,-0.12)); -#6422=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6423=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6424=CARTESIAN_POINT('',(0.092,-0.24,-0.12)); -#6425=CARTESIAN_POINT('',(0.092,0.00699999999999992,-0.12)); -#6426=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6427=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6428=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6429=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6430=CARTESIAN_POINT('',(0.058,0.04,-0.12)); -#6431=CARTESIAN_POINT('',(0.058,0.007,-0.12)); -#6432=CARTESIAN_POINT('',(0.042,-0.24,-0.12)); -#6433=CARTESIAN_POINT('',(0.042,0.00699999999999992,-0.12)); -#6434=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6435=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6436=CARTESIAN_POINT('',(0.00799999999999999,0.04,-0.12)); -#6437=CARTESIAN_POINT('',(0.00799999999999999,0.007,-0.12)); -#6438=CARTESIAN_POINT('',(-0.00800000000000001,-0.24,-0.12)); -#6439=CARTESIAN_POINT('',(-0.00800000000000001,0.00699999999999992,-0.12)); -#6440=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6441=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6442=CARTESIAN_POINT('',(-0.042,0.04,-0.12)); -#6443=CARTESIAN_POINT('',(-0.042,0.007,-0.12)); -#6444=CARTESIAN_POINT('',(-0.058,-0.24,-0.12)); -#6445=CARTESIAN_POINT('',(-0.058,0.00699999999999992,-0.12)); -#6446=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6447=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); -#6448=CARTESIAN_POINT('',(-0.092,0.04,-0.12)); -#6449=CARTESIAN_POINT('',(-0.092,0.007,-0.12)); -#6450=CARTESIAN_POINT('',(-0.108,-0.001,-0.12)); -#6451=CARTESIAN_POINT('',(-0.108,0.00699999999999999,-0.12)); -#6452=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6453=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6454=CARTESIAN_POINT('',(0.092,0.00699999999999999,-0.12)); -#6455=CARTESIAN_POINT('',(0.092,0.011,-0.116)); -#6456=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6457=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6458=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6459=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6460=CARTESIAN_POINT('',(0.058,0.00699999999999999,-0.12)); -#6461=CARTESIAN_POINT('',(0.058,0.011,-0.116)); -#6462=CARTESIAN_POINT('',(0.042,0.00699999999999999,-0.12)); -#6463=CARTESIAN_POINT('',(0.042,0.011,-0.116)); -#6464=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6465=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6466=CARTESIAN_POINT('',(0.00799999999999999,0.00699999999999999,-0.12)); -#6467=CARTESIAN_POINT('',(0.00799999999999999,0.011,-0.116)); -#6468=CARTESIAN_POINT('',(-0.00800000000000001,0.00699999999999999,-0.12)); -#6469=CARTESIAN_POINT('',(-0.00800000000000001,0.011,-0.116)); -#6470=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6471=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6472=CARTESIAN_POINT('',(-0.042,0.00699999999999999,-0.12)); -#6473=CARTESIAN_POINT('',(-0.042,0.011,-0.116)); -#6474=CARTESIAN_POINT('',(-0.058,0.00699999999999999,-0.12)); -#6475=CARTESIAN_POINT('',(-0.058,0.011,-0.116)); -#6476=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6477=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); -#6478=CARTESIAN_POINT('',(-0.092,0.00699999999999999,-0.12)); -#6479=CARTESIAN_POINT('',(-0.092,0.011,-0.116)); -#6480=CARTESIAN_POINT('',(-0.108,0.00699999999999999,-0.12)); -#6481=CARTESIAN_POINT('',(-0.108,0.011,-0.116)); -#6482=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6483=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6484=CARTESIAN_POINT('',(0.092,0.011,-0.116)); -#6485=CARTESIAN_POINT('',(0.092,0.011,-0.043)); -#6486=CARTESIAN_POINT('',(0.108,0.011,-0.043)); -#6487=CARTESIAN_POINT('',(0.108,0.011,-0.043)); -#6488=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6489=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6490=CARTESIAN_POINT('',(0.058,0.011,-0.116)); -#6491=CARTESIAN_POINT('',(0.058,0.011,-0.043)); -#6492=CARTESIAN_POINT('',(0.042,0.011,-0.116)); -#6493=CARTESIAN_POINT('',(0.042,0.011,-0.043)); -#6494=CARTESIAN_POINT('',(0.108,0.011,-0.043)); -#6495=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6496=CARTESIAN_POINT('',(0.00799999999999999,0.011,-0.116)); -#6497=CARTESIAN_POINT('',(0.00799999999999999,0.011,-0.043)); -#6498=CARTESIAN_POINT('',(-0.00800000000000001,0.011,-0.116)); -#6499=CARTESIAN_POINT('',(-0.00800000000000001,0.011,-0.043)); -#6500=CARTESIAN_POINT('',(0.108,0.011,-0.043)); -#6501=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6502=CARTESIAN_POINT('',(-0.042,0.011,-0.116)); -#6503=CARTESIAN_POINT('',(-0.042,0.011,-0.043)); -#6504=CARTESIAN_POINT('',(-0.058,0.011,-0.116)); -#6505=CARTESIAN_POINT('',(-0.058,0.011,-0.043)); -#6506=CARTESIAN_POINT('',(0.108,0.011,-0.043)); -#6507=CARTESIAN_POINT('',(0.108,0.011,-0.116)); -#6508=CARTESIAN_POINT('',(-0.092,0.011,-0.116)); -#6509=CARTESIAN_POINT('',(-0.092,0.011,-0.043)); -#6510=CARTESIAN_POINT('',(-0.108,0.011,-0.116)); -#6511=CARTESIAN_POINT('',(-0.108,0.011,-0.043)); -#6512=CARTESIAN_POINT('',(0.108,0.011,-0.043)); -#6513=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6514=CARTESIAN_POINT('',(0.092,0.021,-0.043)); -#6515=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6516=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6517=CARTESIAN_POINT('',(0.058,0.021,-0.043)); -#6518=CARTESIAN_POINT('',(0.042,0.021,-0.043)); -#6519=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6520=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.043)); -#6521=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.043)); -#6522=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6523=CARTESIAN_POINT('',(-0.042,0.021,-0.043)); -#6524=CARTESIAN_POINT('',(-0.058,0.021,-0.043)); -#6525=CARTESIAN_POINT('',(0.108,0.021,-0.043)); -#6526=CARTESIAN_POINT('',(-0.092,0.021,-0.043)); -#6527=CARTESIAN_POINT('',(-0.108,0.021,-0.043)); -#6528=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6529=CARTESIAN_POINT('',(0.092,0.021,0.043)); -#6530=CARTESIAN_POINT('',(0.092,0.011,0.043)); -#6531=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6532=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6533=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6534=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6535=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6536=CARTESIAN_POINT('',(0.058,0.011,0.043)); -#6537=CARTESIAN_POINT('',(0.042,0.011,0.043)); -#6538=CARTESIAN_POINT('',(0.058,0.021,0.043)); -#6539=CARTESIAN_POINT('',(0.042,0.021,0.043)); -#6540=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6541=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6542=CARTESIAN_POINT('',(0.00799999999999999,0.011,0.043)); -#6543=CARTESIAN_POINT('',(-0.00800000000000001,0.011,0.043)); -#6544=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.043)); -#6545=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.043)); -#6546=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6547=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6548=CARTESIAN_POINT('',(-0.042,0.011,0.043)); -#6549=CARTESIAN_POINT('',(-0.058,0.011,0.043)); -#6550=CARTESIAN_POINT('',(-0.042,0.021,0.043)); -#6551=CARTESIAN_POINT('',(-0.058,0.021,0.043)); -#6552=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6553=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6554=CARTESIAN_POINT('',(-0.092,0.011,0.043)); -#6555=CARTESIAN_POINT('',(-0.108,0.011,0.043)); -#6556=CARTESIAN_POINT('',(-0.092,0.021,0.043)); -#6557=CARTESIAN_POINT('',(-0.108,0.021,0.043)); -#6558=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6559=CARTESIAN_POINT('',(0.092,0.011,0.043)); -#6560=CARTESIAN_POINT('',(0.092,0.011,0.116)); -#6561=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6562=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6563=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6564=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6565=CARTESIAN_POINT('',(0.058,0.011,0.043)); -#6566=CARTESIAN_POINT('',(0.058,0.011,0.116)); -#6567=CARTESIAN_POINT('',(0.042,0.011,0.043)); -#6568=CARTESIAN_POINT('',(0.042,0.011,0.116)); -#6569=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6570=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6571=CARTESIAN_POINT('',(0.00799999999999999,0.011,0.043)); -#6572=CARTESIAN_POINT('',(0.00799999999999999,0.011,0.116)); -#6573=CARTESIAN_POINT('',(-0.00800000000000001,0.011,0.043)); -#6574=CARTESIAN_POINT('',(-0.00800000000000001,0.011,0.116)); -#6575=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6576=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6577=CARTESIAN_POINT('',(-0.042,0.011,0.043)); -#6578=CARTESIAN_POINT('',(-0.042,0.011,0.116)); -#6579=CARTESIAN_POINT('',(-0.058,0.011,0.043)); -#6580=CARTESIAN_POINT('',(-0.058,0.011,0.116)); -#6581=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6582=CARTESIAN_POINT('',(0.108,0.011,0.043)); -#6583=CARTESIAN_POINT('',(-0.092,0.011,0.043)); -#6584=CARTESIAN_POINT('',(-0.092,0.011,0.116)); -#6585=CARTESIAN_POINT('',(-0.108,0.011,0.043)); -#6586=CARTESIAN_POINT('',(-0.108,0.011,0.116)); -#6587=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6588=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6589=CARTESIAN_POINT('',(0.092,0.011,0.116)); -#6590=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6591=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6592=CARTESIAN_POINT('',(0.058,0.011,0.116)); -#6593=CARTESIAN_POINT('',(0.042,0.011,0.116)); -#6594=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6595=CARTESIAN_POINT('',(0.00799999999999999,0.011,0.116)); -#6596=CARTESIAN_POINT('',(-0.00800000000000001,0.011,0.116)); -#6597=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6598=CARTESIAN_POINT('',(-0.042,0.011,0.116)); -#6599=CARTESIAN_POINT('',(-0.058,0.011,0.116)); -#6600=CARTESIAN_POINT('',(0.108,0.011,0.116)); -#6601=CARTESIAN_POINT('',(-0.092,0.011,0.116)); -#6602=CARTESIAN_POINT('',(-0.108,0.011,0.116)); -#6603=CARTESIAN_POINT('',(0.108,0.04,0.017)); -#6604=CARTESIAN_POINT('',(-0.058,0.04,0.12)); -#6605=CARTESIAN_POINT('',(-0.092,0.04,0.12)); -#6606=CARTESIAN_POINT('',(-0.108,0.04,0.017)); -#6607=CARTESIAN_POINT('',(-0.092,0.04,0.12)); -#6608=CARTESIAN_POINT('',(-0.058,0.04,0.12)); -#6609=CARTESIAN_POINT('',(-0.042,0.04,0.12)); -#6610=CARTESIAN_POINT('',(-0.00800000000000001,0.04,0.12)); -#6611=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); -#6612=CARTESIAN_POINT('',(0.042,0.04,0.12)); -#6613=CARTESIAN_POINT('',(0.058,0.04,0.12)); -#6614=CARTESIAN_POINT('',(0.092,0.04,0.12)); -#6615=CARTESIAN_POINT('',(0.108,0.04,0.017)); -#6616=CARTESIAN_POINT('',(0.092,0.04,0.12)); -#6617=CARTESIAN_POINT('',(0.058,0.04,0.12)); -#6618=CARTESIAN_POINT('',(0.042,0.04,0.12)); -#6619=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); -#6620=CARTESIAN_POINT('',(-0.00800000000000001,0.04,0.12)); -#6621=CARTESIAN_POINT('',(-0.042,0.04,0.12)); -#6622=CARTESIAN_POINT('',(0.108,0.056,-0.017)); -#6623=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.11)); -#6624=CARTESIAN_POINT('',(0.058,0.056,0.11)); -#6625=CARTESIAN_POINT('',(0.042,0.056,0.11)); -#6626=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.11)); -#6627=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.11)); -#6628=CARTESIAN_POINT('',(-0.042,0.056,0.11)); -#6629=CARTESIAN_POINT('',(-0.058,0.056,0.11)); -#6630=CARTESIAN_POINT('',(-0.092,0.056,0.11)); -#6631=CARTESIAN_POINT('',(-0.108,0.056,-0.017)); -#6632=CARTESIAN_POINT('',(-0.092,0.056,0.11)); -#6633=CARTESIAN_POINT('',(-0.058,0.056,0.11)); -#6634=CARTESIAN_POINT('',(-0.042,0.056,0.11)); -#6635=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.11)); -#6636=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.11)); -#6637=CARTESIAN_POINT('',(0.042,0.056,0.11)); -#6638=CARTESIAN_POINT('',(0.058,0.056,0.11)); -#6639=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.11)); -#6640=CARTESIAN_POINT('',(0.108,0.056,-0.017)); -#6641=CARTESIAN_POINT('',(0.108,0.021,0.043)); -#6642=CARTESIAN_POINT('',(-0.108,0.021,0.043)); -#6643=CARTESIAN_POINT('',(-0.058,-0.24,0.12)); -#6644=CARTESIAN_POINT('',(-0.092,0.04,0.12)); -#6645=CARTESIAN_POINT('',(-0.00800000000000001,-0.24,0.12)); -#6646=CARTESIAN_POINT('',(-0.042,0.04,0.12)); -#6647=CARTESIAN_POINT('',(0.042,-0.24,0.12)); -#6648=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); -#6649=CARTESIAN_POINT('',(0.092,-0.24,0.12)); -#6650=CARTESIAN_POINT('',(0.058,0.04,0.12)); -#6651=CARTESIAN_POINT('',(-0.092,0.04,0.12)); -#6652=CARTESIAN_POINT('',(-0.058,-0.24,0.12)); -#6653=CARTESIAN_POINT('',(-0.042,0.04,0.12)); -#6654=CARTESIAN_POINT('',(-0.00800000000000001,-0.24,0.12)); -#6655=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); -#6656=CARTESIAN_POINT('',(0.042,-0.24,0.12)); -#6657=CARTESIAN_POINT('',(0.092,-0.24,0.12)); -#6658=CARTESIAN_POINT('',(0.058,0.04,0.12)); -#6659=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.11)); -#6660=CARTESIAN_POINT('',(0.058,0.356,0.11)); -#6661=CARTESIAN_POINT('',(0.042,0.056,0.11)); -#6662=CARTESIAN_POINT('',(0.00800000000000002,0.356,0.11)); -#6663=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.11)); -#6664=CARTESIAN_POINT('',(-0.042,0.356,0.11)); -#6665=CARTESIAN_POINT('',(-0.058,0.056,0.11)); -#6666=CARTESIAN_POINT('',(-0.092,0.356,0.11)); -#6667=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.11)); -#6668=CARTESIAN_POINT('',(0.058,0.356,0.11)); -#6669=CARTESIAN_POINT('',(0.042,0.056,0.11)); -#6670=CARTESIAN_POINT('',(0.00800000000000002,0.356,0.11)); -#6671=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.11)); -#6672=CARTESIAN_POINT('',(-0.042,0.356,0.11)); -#6673=CARTESIAN_POINT('',(-0.092,0.356,0.11)); -#6674=CARTESIAN_POINT('',(-0.058,0.056,0.11)); -#6675=CARTESIAN_POINT('',(0.,0.,0.)); -#6676=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#4159, -#4160,#4161),#6677); -#6677=( -GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#6681)) -GLOBAL_UNIT_ASSIGNED_CONTEXT((#6687,#6686,#6685)) -REPRESENTATION_CONTEXT('SHF-105-01-L-D-SM','TOP_LEVEL_ASSEMBLY_PART') -); -#6678=( -GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#6682)) -GLOBAL_UNIT_ASSIGNED_CONTEXT((#6687,#6686,#6685)) -REPRESENTATION_CONTEXT('SHF-105-01-D_header','COMPONENT_PART') -); -#6679=( -GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#6683)) -GLOBAL_UNIT_ASSIGNED_CONTEXT((#6687,#6686,#6685)) -REPRESENTATION_CONTEXT('SHF-First_Position_Indicator','COMPONENT_PART') -); -#6680=( -GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#6684)) -GLOBAL_UNIT_ASSIGNED_CONTEXT((#6687,#6686,#6685)) -REPRESENTATION_CONTEXT('T-1S71-02-05-D-SM','COMPONENT_PART') -); -#6681=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.93700787401575E-7), -#6687,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); -#6682=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.93700787401575E-7), -#6687,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); -#6683=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.93700787401575E-7), -#6687,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); -#6684=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.93700787401575E-7), -#6687,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); -#6685=( -NAMED_UNIT(*) -SI_UNIT($,.STERADIAN.) -SOLID_ANGLE_UNIT() -); -#6686=( -NAMED_UNIT(*) -PLANE_ANGLE_UNIT() -SI_UNIT($,.RADIAN.) -); -#6687=( -CONVERSION_BASED_UNIT('INCH',#6689) -LENGTH_UNIT() -NAMED_UNIT(#6688) -); -#6688=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.); -#6689=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#6690); -#6690=( -LENGTH_UNIT() -NAMED_UNIT(*) -SI_UNIT(.MILLI.,.METRE.) -); -#6691=PRODUCT_DEFINITION_SHAPE('','',#6698); -#6692=PRODUCT_DEFINITION_SHAPE('','',#6699); -#6693=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#83); -#6694=PRODUCT_DEFINITION_SHAPE('','',#6700); -#6695=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#84); -#6696=PRODUCT_DEFINITION_SHAPE('','',#6701); -#6697=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#85); -#6698=PRODUCT_DEFINITION('','',#6706,#6702); -#6699=PRODUCT_DEFINITION('','',#6707,#6703); -#6700=PRODUCT_DEFINITION('','',#6708,#6704); -#6701=PRODUCT_DEFINITION('','',#6709,#6705); -#6702=PRODUCT_DEFINITION_CONTEXT('',#6727,'design'); -#6703=PRODUCT_DEFINITION_CONTEXT('',#6727,'design'); -#6704=PRODUCT_DEFINITION_CONTEXT('',#6727,'design'); -#6705=PRODUCT_DEFINITION_CONTEXT('',#6727,'design'); -#6706=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#6714, - .NOT_KNOWN.); -#6707=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#6715, - .NOT_KNOWN.); -#6708=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#6716, - .NOT_KNOWN.); -#6709=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#6717, - .NOT_KNOWN.); -#6710=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#6714)); -#6711=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#6715)); -#6712=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#6716)); -#6713=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#6717)); -#6714=PRODUCT('SHF-105-01-L-D-SM','SHF-105-01-L-D-SM', -'SHF-105-01-L-D-SM',(#6722)); -#6715=PRODUCT('SHF-105-01-D_header','SHF-105-01-D_header', -'SHF-105-01-D_header',(#6723)); -#6716=PRODUCT('SHF-First_Position_Indicator', -'SHF-First_Position_Indicator','SHF-First_Position_Indicator',(#6724)); -#6717=PRODUCT('T-1S71-02-05-D-SM','T-1S71-02-05-D-SM', -'T-1S71-02-05-D-SM',(#6725)); -#6718=PRODUCT_CATEGORY('',''); -#6719=PRODUCT_CATEGORY('',''); -#6720=PRODUCT_CATEGORY('',''); -#6721=PRODUCT_CATEGORY('',''); -#6722=PRODUCT_CONTEXT('',#6727,'mechanical'); -#6723=PRODUCT_CONTEXT('',#6727,'mechanical'); -#6724=PRODUCT_CONTEXT('',#6727,'mechanical'); -#6725=PRODUCT_CONTEXT('',#6727,'mechanical'); -#6726=APPLICATION_PROTOCOL_DEFINITION('international standard', -'automotive_design',2010,#6727); -#6727=APPLICATION_CONTEXT( -'core data for automotive mechanical design processes'); -ENDSEC; -END-ISO-10303-21; +ISO-10303-21; +HEADER; +/* Generated by software containing ST-Developer + * from STEP Tools, Inc. (www.steptools.com) + */ +/* OPTION: using custom renumber hook */ + +FILE_DESCRIPTION( +/* description */ ('STEP AP214'), +/* implementation_level */ '2;1'); + +FILE_NAME( +/* name */ 'SHF-105-01-L-D-SM', +/* time_stamp */ '2026-05-23T15:16:07+02:00', +/* author */ ('License CC BY-ND 4.0'), +/* organization */ ('CADENAS'), +/* preprocessor_version */ 'ST-DEVELOPER v20', +/* originating_system */ 'PARTsolutions', +/* authorisation */ ' '); + +FILE_SCHEMA (('AUTOMOTIVE_DESIGN {1 0 10303 214 3 1 1}')); +ENDSEC; + +DATA; +#10=PROPERTY_DEFINITION_REPRESENTATION(#14,#12); +#11=PROPERTY_DEFINITION_REPRESENTATION(#15,#13); +#12=REPRESENTATION('',(#16),#6677); +#13=REPRESENTATION('',(#17),#6677); +#14=PROPERTY_DEFINITION('pmi validation property','',#6691); +#15=PROPERTY_DEFINITION('pmi validation property','',#6691); +#16=VALUE_REPRESENTATION_ITEM('number of annotations',COUNT_MEASURE(0.)); +#17=VALUE_REPRESENTATION_ITEM('number of views',COUNT_MEASURE(0.)); +#18=CIRCLE('',#4299,0.026); +#19=CIRCLE('',#4300,0.026); +#20=CIRCLE('',#4302,0.026); +#21=CIRCLE('',#4303,0.026); +#22=CIRCLE('',#4305,0.026); +#23=CIRCLE('',#4306,0.026); +#24=CIRCLE('',#4308,0.026); +#25=CIRCLE('',#4309,0.026); +#26=CIRCLE('',#4311,0.026); +#27=CIRCLE('',#4312,0.026); +#28=CIRCLE('',#4324,0.026); +#29=CIRCLE('',#4325,0.026); +#30=CIRCLE('',#4327,0.026); +#31=CIRCLE('',#4328,0.026); +#32=CIRCLE('',#4330,0.026); +#33=CIRCLE('',#4331,0.026); +#34=CIRCLE('',#4333,0.026); +#35=CIRCLE('',#4334,0.026); +#36=CIRCLE('',#4336,0.026); +#37=CIRCLE('',#4337,0.026); +#38=CIRCLE('',#4364,0.01); +#39=CIRCLE('',#4365,0.01); +#40=CIRCLE('',#4367,0.01); +#41=CIRCLE('',#4368,0.01); +#42=CIRCLE('',#4370,0.01); +#43=CIRCLE('',#4371,0.01); +#44=CIRCLE('',#4373,0.01); +#45=CIRCLE('',#4374,0.01); +#46=CIRCLE('',#4376,0.01); +#47=CIRCLE('',#4377,0.01); +#48=CIRCLE('',#4379,0.01); +#49=CIRCLE('',#4380,0.01); +#50=CIRCLE('',#4382,0.01); +#51=CIRCLE('',#4383,0.01); +#52=CIRCLE('',#4385,0.01); +#53=CIRCLE('',#4386,0.01); +#54=CIRCLE('',#4388,0.01); +#55=CIRCLE('',#4389,0.01); +#56=CIRCLE('',#4391,0.01); +#57=CIRCLE('',#4392,0.01); +#58=CYLINDRICAL_SURFACE('',#4298,0.026); +#59=CYLINDRICAL_SURFACE('',#4301,0.026); +#60=CYLINDRICAL_SURFACE('',#4304,0.026); +#61=CYLINDRICAL_SURFACE('',#4307,0.026); +#62=CYLINDRICAL_SURFACE('',#4310,0.026); +#63=CYLINDRICAL_SURFACE('',#4323,0.026); +#64=CYLINDRICAL_SURFACE('',#4326,0.026); +#65=CYLINDRICAL_SURFACE('',#4329,0.026); +#66=CYLINDRICAL_SURFACE('',#4332,0.026); +#67=CYLINDRICAL_SURFACE('',#4335,0.026); +#68=CYLINDRICAL_SURFACE('',#4363,0.01); +#69=CYLINDRICAL_SURFACE('',#4366,0.01); +#70=CYLINDRICAL_SURFACE('',#4369,0.01); +#71=CYLINDRICAL_SURFACE('',#4372,0.01); +#72=CYLINDRICAL_SURFACE('',#4375,0.01); +#73=CYLINDRICAL_SURFACE('',#4378,0.01); +#74=CYLINDRICAL_SURFACE('',#4381,0.01); +#75=CYLINDRICAL_SURFACE('',#4384,0.01); +#76=CYLINDRICAL_SURFACE('',#4387,0.01); +#77=CYLINDRICAL_SURFACE('',#4390,0.01); +#78=DRAUGHTING_PRE_DEFINED_COLOUR('red'); +#79=DRAUGHTING_PRE_DEFINED_COLOUR('yellow'); +#80=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#86,#6693); +#81=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#87,#6695); +#82=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#88,#6697); +#83=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO1','SHF-105-01-D_header', +'SHF-105-01-D_header',#6698,#6699,''); +#84=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO2', +'SHF-First_Position_Indicator','SHF-First_Position_Indicator',#6698,#6700, +''); +#85=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO3','T-1S71-02-05-D-SM', +'T-1S71-02-05-D-SM',#6698,#6701,''); +#86=( +REPRESENTATION_RELATIONSHIP(' ',' ',#4189,#4188) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#89) +SHAPE_REPRESENTATION_RELATIONSHIP() +); +#87=( +REPRESENTATION_RELATIONSHIP(' ',' ',#4190,#4188) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#90) +SHAPE_REPRESENTATION_RELATIONSHIP() +); +#88=( +REPRESENTATION_RELATIONSHIP(' ',' ',#4191,#4188) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#91) +SHAPE_REPRESENTATION_RELATIONSHIP() +); +#89=ITEM_DEFINED_TRANSFORMATION(' ',' ',#4192,#4231); +#90=ITEM_DEFINED_TRANSFORMATION(' ',' ',#4192,#4240); +#91=ITEM_DEFINED_TRANSFORMATION(' ',' ',#4192,#4439); +#92=SHAPE_REPRESENTATION_RELATIONSHIP('','',#4189,#95); +#93=SHAPE_REPRESENTATION_RELATIONSHIP('','',#4190,#96); +#94=SHAPE_REPRESENTATION_RELATIONSHIP('','',#4191,#97); +#95=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#4181),#6678); +#96=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#4182),#6679); +#97=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#4183),#6680); +#98=ORIENTED_EDGE('',*,*,#1278,.T.); +#99=ORIENTED_EDGE('',*,*,#1279,.T.); +#100=ORIENTED_EDGE('',*,*,#1280,.F.); +#101=ORIENTED_EDGE('',*,*,#1281,.F.); +#102=ORIENTED_EDGE('',*,*,#1282,.F.); +#103=ORIENTED_EDGE('',*,*,#1283,.F.); +#104=ORIENTED_EDGE('',*,*,#1284,.F.); +#105=ORIENTED_EDGE('',*,*,#1285,.F.); +#106=ORIENTED_EDGE('',*,*,#1286,.T.); +#107=ORIENTED_EDGE('',*,*,#1287,.F.); +#108=ORIENTED_EDGE('',*,*,#1288,.F.); +#109=ORIENTED_EDGE('',*,*,#1289,.T.); +#110=ORIENTED_EDGE('',*,*,#1290,.T.); +#111=ORIENTED_EDGE('',*,*,#1291,.T.); +#112=ORIENTED_EDGE('',*,*,#1278,.F.); +#113=ORIENTED_EDGE('',*,*,#1292,.F.); +#114=ORIENTED_EDGE('',*,*,#1293,.F.); +#115=ORIENTED_EDGE('',*,*,#1294,.F.); +#116=ORIENTED_EDGE('',*,*,#1295,.T.); +#117=ORIENTED_EDGE('',*,*,#1296,.F.); +#118=ORIENTED_EDGE('',*,*,#1297,.T.); +#119=ORIENTED_EDGE('',*,*,#1298,.F.); +#120=ORIENTED_EDGE('',*,*,#1299,.F.); +#121=ORIENTED_EDGE('',*,*,#1300,.F.); +#122=ORIENTED_EDGE('',*,*,#1301,.F.); +#123=ORIENTED_EDGE('',*,*,#1302,.F.); +#124=ORIENTED_EDGE('',*,*,#1303,.F.); +#125=ORIENTED_EDGE('',*,*,#1304,.F.); +#126=ORIENTED_EDGE('',*,*,#1305,.T.); +#127=ORIENTED_EDGE('',*,*,#1306,.T.); +#128=ORIENTED_EDGE('',*,*,#1307,.T.); +#129=ORIENTED_EDGE('',*,*,#1308,.T.); +#130=ORIENTED_EDGE('',*,*,#1309,.T.); +#131=ORIENTED_EDGE('',*,*,#1288,.T.); +#132=ORIENTED_EDGE('',*,*,#1310,.T.); +#133=ORIENTED_EDGE('',*,*,#1311,.T.); +#134=ORIENTED_EDGE('',*,*,#1312,.T.); +#135=ORIENTED_EDGE('',*,*,#1282,.T.); +#136=ORIENTED_EDGE('',*,*,#1313,.F.); +#137=ORIENTED_EDGE('',*,*,#1314,.T.); +#138=ORIENTED_EDGE('',*,*,#1315,.F.); +#139=ORIENTED_EDGE('',*,*,#1292,.T.); +#140=ORIENTED_EDGE('',*,*,#1281,.T.); +#141=ORIENTED_EDGE('',*,*,#1316,.T.); +#142=ORIENTED_EDGE('',*,*,#1317,.F.); +#143=ORIENTED_EDGE('',*,*,#1318,.F.); +#144=ORIENTED_EDGE('',*,*,#1319,.T.); +#145=ORIENTED_EDGE('',*,*,#1320,.T.); +#146=ORIENTED_EDGE('',*,*,#1321,.T.); +#147=ORIENTED_EDGE('',*,*,#1304,.T.); +#148=ORIENTED_EDGE('',*,*,#1322,.F.); +#149=ORIENTED_EDGE('',*,*,#1323,.F.); +#150=ORIENTED_EDGE('',*,*,#1324,.F.); +#151=ORIENTED_EDGE('',*,*,#1296,.T.); +#152=ORIENTED_EDGE('',*,*,#1325,.F.); +#153=ORIENTED_EDGE('',*,*,#1298,.T.); +#154=ORIENTED_EDGE('',*,*,#1326,.T.); +#155=ORIENTED_EDGE('',*,*,#1327,.F.); +#156=ORIENTED_EDGE('',*,*,#1328,.F.); +#157=ORIENTED_EDGE('',*,*,#1329,.F.); +#158=ORIENTED_EDGE('',*,*,#1330,.T.); +#159=ORIENTED_EDGE('',*,*,#1302,.T.); +#160=ORIENTED_EDGE('',*,*,#1331,.T.); +#161=ORIENTED_EDGE('',*,*,#1280,.T.); +#162=ORIENTED_EDGE('',*,*,#1332,.F.); +#163=ORIENTED_EDGE('',*,*,#1333,.F.); +#164=ORIENTED_EDGE('',*,*,#1334,.F.); +#165=ORIENTED_EDGE('',*,*,#1335,.T.); +#166=ORIENTED_EDGE('',*,*,#1284,.T.); +#167=ORIENTED_EDGE('',*,*,#1336,.F.); +#168=ORIENTED_EDGE('',*,*,#1316,.F.); +#169=ORIENTED_EDGE('',*,*,#1335,.F.); +#170=ORIENTED_EDGE('',*,*,#1337,.T.); +#171=ORIENTED_EDGE('',*,*,#1313,.T.); +#172=ORIENTED_EDGE('',*,*,#1285,.T.); +#173=ORIENTED_EDGE('',*,*,#1320,.F.); +#174=ORIENTED_EDGE('',*,*,#1338,.T.); +#175=ORIENTED_EDGE('',*,*,#1339,.T.); +#176=ORIENTED_EDGE('',*,*,#1340,.F.); +#177=ORIENTED_EDGE('',*,*,#1341,.T.); +#178=ORIENTED_EDGE('',*,*,#1305,.F.); +#179=ORIENTED_EDGE('',*,*,#1321,.F.); +#180=ORIENTED_EDGE('',*,*,#1340,.T.); +#181=ORIENTED_EDGE('',*,*,#1342,.T.); +#182=ORIENTED_EDGE('',*,*,#1306,.F.); +#183=ORIENTED_EDGE('',*,*,#1341,.F.); +#184=ORIENTED_EDGE('',*,*,#1339,.F.); +#185=ORIENTED_EDGE('',*,*,#1343,.F.); +#186=ORIENTED_EDGE('',*,*,#1344,.F.); +#187=ORIENTED_EDGE('',*,*,#1345,.T.); +#188=ORIENTED_EDGE('',*,*,#1318,.T.); +#189=ORIENTED_EDGE('',*,*,#1346,.F.); +#190=ORIENTED_EDGE('',*,*,#1347,.F.); +#191=ORIENTED_EDGE('',*,*,#1286,.F.); +#192=ORIENTED_EDGE('',*,*,#1348,.F.); +#193=ORIENTED_EDGE('',*,*,#1349,.F.); +#194=ORIENTED_EDGE('',*,*,#1350,.T.); +#195=ORIENTED_EDGE('',*,*,#1351,.T.); +#196=ORIENTED_EDGE('',*,*,#1352,.F.); +#197=ORIENTED_EDGE('',*,*,#1353,.F.); +#198=ORIENTED_EDGE('',*,*,#1351,.F.); +#199=ORIENTED_EDGE('',*,*,#1354,.T.); +#200=ORIENTED_EDGE('',*,*,#1344,.T.); +#201=ORIENTED_EDGE('',*,*,#1350,.F.); +#202=ORIENTED_EDGE('',*,*,#1355,.F.); +#203=ORIENTED_EDGE('',*,*,#1307,.F.); +#204=ORIENTED_EDGE('',*,*,#1342,.F.); +#205=ORIENTED_EDGE('',*,*,#1338,.F.); +#206=ORIENTED_EDGE('',*,*,#1319,.F.); +#207=ORIENTED_EDGE('',*,*,#1345,.F.); +#208=ORIENTED_EDGE('',*,*,#1354,.F.); +#209=ORIENTED_EDGE('',*,*,#1336,.T.); +#210=ORIENTED_EDGE('',*,*,#1283,.T.); +#211=ORIENTED_EDGE('',*,*,#1312,.F.); +#212=ORIENTED_EDGE('',*,*,#1356,.T.); +#213=ORIENTED_EDGE('',*,*,#1352,.T.); +#214=ORIENTED_EDGE('',*,*,#1353,.T.); +#215=ORIENTED_EDGE('',*,*,#1343,.T.); +#216=ORIENTED_EDGE('',*,*,#1317,.T.); +#217=ORIENTED_EDGE('',*,*,#1357,.F.); +#218=ORIENTED_EDGE('',*,*,#1358,.F.); +#219=ORIENTED_EDGE('',*,*,#1300,.T.); +#220=ORIENTED_EDGE('',*,*,#1359,.T.); +#221=ORIENTED_EDGE('',*,*,#1360,.F.); +#222=ORIENTED_EDGE('',*,*,#1359,.F.); +#223=ORIENTED_EDGE('',*,*,#1299,.T.); +#224=ORIENTED_EDGE('',*,*,#1328,.T.); +#225=ORIENTED_EDGE('',*,*,#1361,.F.); +#226=ORIENTED_EDGE('',*,*,#1331,.F.); +#227=ORIENTED_EDGE('',*,*,#1301,.T.); +#228=ORIENTED_EDGE('',*,*,#1358,.T.); +#229=ORIENTED_EDGE('',*,*,#1362,.F.); +#230=ORIENTED_EDGE('',*,*,#1326,.F.); +#231=ORIENTED_EDGE('',*,*,#1297,.F.); +#232=ORIENTED_EDGE('',*,*,#1324,.T.); +#233=ORIENTED_EDGE('',*,*,#1363,.T.); +#234=ORIENTED_EDGE('',*,*,#1364,.T.); +#235=ORIENTED_EDGE('',*,*,#1363,.F.); +#236=ORIENTED_EDGE('',*,*,#1323,.T.); +#237=ORIENTED_EDGE('',*,*,#1365,.T.); +#238=ORIENTED_EDGE('',*,*,#1366,.T.); +#239=ORIENTED_EDGE('',*,*,#1367,.T.); +#240=ORIENTED_EDGE('',*,*,#1368,.T.); +#241=ORIENTED_EDGE('',*,*,#1369,.T.); +#242=ORIENTED_EDGE('',*,*,#1370,.F.); +#243=ORIENTED_EDGE('',*,*,#1365,.F.); +#244=ORIENTED_EDGE('',*,*,#1322,.T.); +#245=ORIENTED_EDGE('',*,*,#1303,.T.); +#246=ORIENTED_EDGE('',*,*,#1330,.F.); +#247=ORIENTED_EDGE('',*,*,#1315,.T.); +#248=ORIENTED_EDGE('',*,*,#1371,.F.); +#249=ORIENTED_EDGE('',*,*,#1372,.F.); +#250=ORIENTED_EDGE('',*,*,#1293,.T.); +#251=ORIENTED_EDGE('',*,*,#1325,.T.); +#252=ORIENTED_EDGE('',*,*,#1295,.F.); +#253=ORIENTED_EDGE('',*,*,#1373,.F.); +#254=ORIENTED_EDGE('',*,*,#1371,.T.); +#255=ORIENTED_EDGE('',*,*,#1294,.T.); +#256=ORIENTED_EDGE('',*,*,#1372,.T.); +#257=ORIENTED_EDGE('',*,*,#1373,.T.); +#258=ORIENTED_EDGE('',*,*,#1327,.T.); +#259=ORIENTED_EDGE('',*,*,#1362,.T.); +#260=ORIENTED_EDGE('',*,*,#1364,.F.); +#261=ORIENTED_EDGE('',*,*,#1374,.T.); +#262=ORIENTED_EDGE('',*,*,#1357,.T.); +#263=ORIENTED_EDGE('',*,*,#1375,.F.); +#264=ORIENTED_EDGE('',*,*,#1368,.F.); +#265=ORIENTED_EDGE('',*,*,#1376,.T.); +#266=ORIENTED_EDGE('',*,*,#1360,.T.); +#267=ORIENTED_EDGE('',*,*,#1374,.F.); +#268=ORIENTED_EDGE('',*,*,#1369,.F.); +#269=ORIENTED_EDGE('',*,*,#1375,.T.); +#270=ORIENTED_EDGE('',*,*,#1329,.T.); +#271=ORIENTED_EDGE('',*,*,#1377,.F.); +#272=ORIENTED_EDGE('',*,*,#1366,.F.); +#273=ORIENTED_EDGE('',*,*,#1370,.T.); +#274=ORIENTED_EDGE('',*,*,#1361,.T.); +#275=ORIENTED_EDGE('',*,*,#1376,.F.); +#276=ORIENTED_EDGE('',*,*,#1367,.F.); +#277=ORIENTED_EDGE('',*,*,#1377,.T.); +#278=ORIENTED_EDGE('',*,*,#1349,.T.); +#279=ORIENTED_EDGE('',*,*,#1378,.F.); +#280=ORIENTED_EDGE('',*,*,#1308,.F.); +#281=ORIENTED_EDGE('',*,*,#1355,.T.); +#282=ORIENTED_EDGE('',*,*,#1348,.T.); +#283=ORIENTED_EDGE('',*,*,#1289,.F.); +#284=ORIENTED_EDGE('',*,*,#1309,.F.); +#285=ORIENTED_EDGE('',*,*,#1378,.T.); +#286=ORIENTED_EDGE('',*,*,#1347,.T.); +#287=ORIENTED_EDGE('',*,*,#1379,.F.); +#288=ORIENTED_EDGE('',*,*,#1310,.F.); +#289=ORIENTED_EDGE('',*,*,#1287,.T.); +#290=ORIENTED_EDGE('',*,*,#1346,.T.); +#291=ORIENTED_EDGE('',*,*,#1356,.F.); +#292=ORIENTED_EDGE('',*,*,#1311,.F.); +#293=ORIENTED_EDGE('',*,*,#1379,.T.); +#294=ORIENTED_EDGE('',*,*,#1291,.F.); +#295=ORIENTED_EDGE('',*,*,#1380,.T.); +#296=ORIENTED_EDGE('',*,*,#1332,.T.); +#297=ORIENTED_EDGE('',*,*,#1279,.F.); +#298=ORIENTED_EDGE('',*,*,#1334,.T.); +#299=ORIENTED_EDGE('',*,*,#1381,.F.); +#300=ORIENTED_EDGE('',*,*,#1314,.F.); +#301=ORIENTED_EDGE('',*,*,#1337,.F.); +#302=ORIENTED_EDGE('',*,*,#1333,.T.); +#303=ORIENTED_EDGE('',*,*,#1380,.F.); +#304=ORIENTED_EDGE('',*,*,#1290,.F.); +#305=ORIENTED_EDGE('',*,*,#1381,.T.); +#306=ORIENTED_EDGE('',*,*,#1382,.F.); +#307=ORIENTED_EDGE('',*,*,#1383,.T.); +#308=ORIENTED_EDGE('',*,*,#1384,.F.); +#309=ORIENTED_EDGE('',*,*,#1385,.F.); +#310=ORIENTED_EDGE('',*,*,#1386,.F.); +#311=ORIENTED_EDGE('',*,*,#1387,.F.); +#312=ORIENTED_EDGE('',*,*,#1388,.T.); +#313=ORIENTED_EDGE('',*,*,#1389,.T.); +#314=ORIENTED_EDGE('',*,*,#1390,.T.); +#315=ORIENTED_EDGE('',*,*,#1391,.T.); +#316=ORIENTED_EDGE('',*,*,#1382,.T.); +#317=ORIENTED_EDGE('',*,*,#1392,.T.); +#318=ORIENTED_EDGE('',*,*,#1393,.T.); +#319=ORIENTED_EDGE('',*,*,#1386,.T.); +#320=ORIENTED_EDGE('',*,*,#1392,.F.); +#321=ORIENTED_EDGE('',*,*,#1389,.F.); +#322=ORIENTED_EDGE('',*,*,#1394,.T.); +#323=ORIENTED_EDGE('',*,*,#1395,.T.); +#324=ORIENTED_EDGE('',*,*,#1393,.F.); +#325=ORIENTED_EDGE('',*,*,#1395,.F.); +#326=ORIENTED_EDGE('',*,*,#1396,.T.); +#327=ORIENTED_EDGE('',*,*,#1387,.T.); +#328=ORIENTED_EDGE('',*,*,#1388,.F.); +#329=ORIENTED_EDGE('',*,*,#1396,.F.); +#330=ORIENTED_EDGE('',*,*,#1394,.F.); +#331=ORIENTED_EDGE('',*,*,#1397,.T.); +#332=ORIENTED_EDGE('',*,*,#1398,.F.); +#333=ORIENTED_EDGE('',*,*,#1383,.F.); +#334=ORIENTED_EDGE('',*,*,#1391,.F.); +#335=ORIENTED_EDGE('',*,*,#1385,.T.); +#336=ORIENTED_EDGE('',*,*,#1399,.F.); +#337=ORIENTED_EDGE('',*,*,#1397,.F.); +#338=ORIENTED_EDGE('',*,*,#1390,.F.); +#339=ORIENTED_EDGE('',*,*,#1384,.T.); +#340=ORIENTED_EDGE('',*,*,#1398,.T.); +#341=ORIENTED_EDGE('',*,*,#1399,.T.); +#342=ORIENTED_EDGE('',*,*,#1400,.F.); +#343=ORIENTED_EDGE('',*,*,#1401,.F.); +#344=ORIENTED_EDGE('',*,*,#1402,.F.); +#345=ORIENTED_EDGE('',*,*,#1403,.F.); +#346=ORIENTED_EDGE('',*,*,#1404,.F.); +#347=ORIENTED_EDGE('',*,*,#1405,.F.); +#348=ORIENTED_EDGE('',*,*,#1406,.F.); +#349=ORIENTED_EDGE('',*,*,#1407,.F.); +#350=ORIENTED_EDGE('',*,*,#1408,.F.); +#351=ORIENTED_EDGE('',*,*,#1409,.F.); +#352=ORIENTED_EDGE('',*,*,#1410,.F.); +#353=ORIENTED_EDGE('',*,*,#1411,.F.); +#354=ORIENTED_EDGE('',*,*,#1412,.F.); +#355=ORIENTED_EDGE('',*,*,#1413,.F.); +#356=ORIENTED_EDGE('',*,*,#1414,.F.); +#357=ORIENTED_EDGE('',*,*,#1415,.F.); +#358=ORIENTED_EDGE('',*,*,#1416,.F.); +#359=ORIENTED_EDGE('',*,*,#1417,.T.); +#360=ORIENTED_EDGE('',*,*,#1418,.F.); +#361=ORIENTED_EDGE('',*,*,#1419,.F.); +#362=ORIENTED_EDGE('',*,*,#1420,.F.); +#363=ORIENTED_EDGE('',*,*,#1421,.T.); +#364=ORIENTED_EDGE('',*,*,#1422,.F.); +#365=ORIENTED_EDGE('',*,*,#1423,.F.); +#366=ORIENTED_EDGE('',*,*,#1424,.F.); +#367=ORIENTED_EDGE('',*,*,#1425,.T.); +#368=ORIENTED_EDGE('',*,*,#1426,.F.); +#369=ORIENTED_EDGE('',*,*,#1427,.F.); +#370=ORIENTED_EDGE('',*,*,#1428,.F.); +#371=ORIENTED_EDGE('',*,*,#1429,.T.); +#372=ORIENTED_EDGE('',*,*,#1430,.F.); +#373=ORIENTED_EDGE('',*,*,#1431,.F.); +#374=ORIENTED_EDGE('',*,*,#1432,.F.); +#375=ORIENTED_EDGE('',*,*,#1433,.T.); +#376=ORIENTED_EDGE('',*,*,#1434,.T.); +#377=ORIENTED_EDGE('',*,*,#1435,.F.); +#378=ORIENTED_EDGE('',*,*,#1436,.F.); +#379=ORIENTED_EDGE('',*,*,#1437,.T.); +#380=ORIENTED_EDGE('',*,*,#1438,.T.); +#381=ORIENTED_EDGE('',*,*,#1439,.F.); +#382=ORIENTED_EDGE('',*,*,#1440,.F.); +#383=ORIENTED_EDGE('',*,*,#1441,.F.); +#384=ORIENTED_EDGE('',*,*,#1442,.F.); +#385=ORIENTED_EDGE('',*,*,#1443,.F.); +#386=ORIENTED_EDGE('',*,*,#1444,.F.); +#387=ORIENTED_EDGE('',*,*,#1445,.F.); +#388=ORIENTED_EDGE('',*,*,#1446,.F.); +#389=ORIENTED_EDGE('',*,*,#1447,.F.); +#390=ORIENTED_EDGE('',*,*,#1448,.F.); +#391=ORIENTED_EDGE('',*,*,#1449,.F.); +#392=ORIENTED_EDGE('',*,*,#1450,.F.); +#393=ORIENTED_EDGE('',*,*,#1451,.F.); +#394=ORIENTED_EDGE('',*,*,#1452,.F.); +#395=ORIENTED_EDGE('',*,*,#1453,.F.); +#396=ORIENTED_EDGE('',*,*,#1454,.F.); +#397=ORIENTED_EDGE('',*,*,#1455,.F.); +#398=ORIENTED_EDGE('',*,*,#1456,.F.); +#399=ORIENTED_EDGE('',*,*,#1457,.T.); +#400=ORIENTED_EDGE('',*,*,#1458,.F.); +#401=ORIENTED_EDGE('',*,*,#1459,.F.); +#402=ORIENTED_EDGE('',*,*,#1460,.F.); +#403=ORIENTED_EDGE('',*,*,#1461,.T.); +#404=ORIENTED_EDGE('',*,*,#1462,.F.); +#405=ORIENTED_EDGE('',*,*,#1463,.F.); +#406=ORIENTED_EDGE('',*,*,#1464,.F.); +#407=ORIENTED_EDGE('',*,*,#1465,.T.); +#408=ORIENTED_EDGE('',*,*,#1466,.F.); +#409=ORIENTED_EDGE('',*,*,#1467,.F.); +#410=ORIENTED_EDGE('',*,*,#1468,.F.); +#411=ORIENTED_EDGE('',*,*,#1469,.T.); +#412=ORIENTED_EDGE('',*,*,#1470,.F.); +#413=ORIENTED_EDGE('',*,*,#1471,.F.); +#414=ORIENTED_EDGE('',*,*,#1472,.F.); +#415=ORIENTED_EDGE('',*,*,#1435,.T.); +#416=ORIENTED_EDGE('',*,*,#1473,.T.); +#417=ORIENTED_EDGE('',*,*,#1474,.F.); +#418=ORIENTED_EDGE('',*,*,#1475,.F.); +#419=ORIENTED_EDGE('',*,*,#1476,.F.); +#420=ORIENTED_EDGE('',*,*,#1477,.F.); +#421=ORIENTED_EDGE('',*,*,#1403,.T.); +#422=ORIENTED_EDGE('',*,*,#1478,.F.); +#423=ORIENTED_EDGE('',*,*,#1479,.F.); +#424=ORIENTED_EDGE('',*,*,#1480,.F.); +#425=ORIENTED_EDGE('',*,*,#1407,.T.); +#426=ORIENTED_EDGE('',*,*,#1481,.F.); +#427=ORIENTED_EDGE('',*,*,#1482,.F.); +#428=ORIENTED_EDGE('',*,*,#1483,.F.); +#429=ORIENTED_EDGE('',*,*,#1411,.T.); +#430=ORIENTED_EDGE('',*,*,#1484,.F.); +#431=ORIENTED_EDGE('',*,*,#1485,.F.); +#432=ORIENTED_EDGE('',*,*,#1486,.F.); +#433=ORIENTED_EDGE('',*,*,#1415,.T.); +#434=ORIENTED_EDGE('',*,*,#1487,.F.); +#435=ORIENTED_EDGE('',*,*,#1474,.T.); +#436=ORIENTED_EDGE('',*,*,#1488,.T.); +#437=ORIENTED_EDGE('',*,*,#1489,.F.); +#438=ORIENTED_EDGE('',*,*,#1490,.F.); +#439=ORIENTED_EDGE('',*,*,#1491,.F.); +#440=ORIENTED_EDGE('',*,*,#1492,.F.); +#441=ORIENTED_EDGE('',*,*,#1476,.T.); +#442=ORIENTED_EDGE('',*,*,#1493,.F.); +#443=ORIENTED_EDGE('',*,*,#1494,.F.); +#444=ORIENTED_EDGE('',*,*,#1495,.F.); +#445=ORIENTED_EDGE('',*,*,#1479,.T.); +#446=ORIENTED_EDGE('',*,*,#1496,.F.); +#447=ORIENTED_EDGE('',*,*,#1497,.F.); +#448=ORIENTED_EDGE('',*,*,#1498,.F.); +#449=ORIENTED_EDGE('',*,*,#1482,.T.); +#450=ORIENTED_EDGE('',*,*,#1499,.F.); +#451=ORIENTED_EDGE('',*,*,#1500,.F.); +#452=ORIENTED_EDGE('',*,*,#1501,.F.); +#453=ORIENTED_EDGE('',*,*,#1485,.T.); +#454=ORIENTED_EDGE('',*,*,#1502,.F.); +#455=ORIENTED_EDGE('',*,*,#1489,.T.); +#456=ORIENTED_EDGE('',*,*,#1503,.T.); +#457=ORIENTED_EDGE('',*,*,#1504,.F.); +#458=ORIENTED_EDGE('',*,*,#1505,.F.); +#459=ORIENTED_EDGE('',*,*,#1506,.F.); +#460=ORIENTED_EDGE('',*,*,#1507,.F.); +#461=ORIENTED_EDGE('',*,*,#1491,.T.); +#462=ORIENTED_EDGE('',*,*,#1508,.F.); +#463=ORIENTED_EDGE('',*,*,#1509,.F.); +#464=ORIENTED_EDGE('',*,*,#1510,.F.); +#465=ORIENTED_EDGE('',*,*,#1494,.T.); +#466=ORIENTED_EDGE('',*,*,#1511,.F.); +#467=ORIENTED_EDGE('',*,*,#1512,.F.); +#468=ORIENTED_EDGE('',*,*,#1513,.F.); +#469=ORIENTED_EDGE('',*,*,#1497,.T.); +#470=ORIENTED_EDGE('',*,*,#1514,.F.); +#471=ORIENTED_EDGE('',*,*,#1515,.F.); +#472=ORIENTED_EDGE('',*,*,#1516,.F.); +#473=ORIENTED_EDGE('',*,*,#1500,.T.); +#474=ORIENTED_EDGE('',*,*,#1517,.F.); +#475=ORIENTED_EDGE('',*,*,#1504,.T.); +#476=ORIENTED_EDGE('',*,*,#1518,.T.); +#477=ORIENTED_EDGE('',*,*,#1519,.F.); +#478=ORIENTED_EDGE('',*,*,#1520,.F.); +#479=ORIENTED_EDGE('',*,*,#1521,.F.); +#480=ORIENTED_EDGE('',*,*,#1522,.F.); +#481=ORIENTED_EDGE('',*,*,#1506,.T.); +#482=ORIENTED_EDGE('',*,*,#1523,.F.); +#483=ORIENTED_EDGE('',*,*,#1524,.F.); +#484=ORIENTED_EDGE('',*,*,#1525,.F.); +#485=ORIENTED_EDGE('',*,*,#1509,.T.); +#486=ORIENTED_EDGE('',*,*,#1526,.F.); +#487=ORIENTED_EDGE('',*,*,#1527,.F.); +#488=ORIENTED_EDGE('',*,*,#1528,.F.); +#489=ORIENTED_EDGE('',*,*,#1512,.T.); +#490=ORIENTED_EDGE('',*,*,#1529,.F.); +#491=ORIENTED_EDGE('',*,*,#1530,.F.); +#492=ORIENTED_EDGE('',*,*,#1531,.F.); +#493=ORIENTED_EDGE('',*,*,#1515,.T.); +#494=ORIENTED_EDGE('',*,*,#1532,.F.); +#495=ORIENTED_EDGE('',*,*,#1533,.T.); +#496=ORIENTED_EDGE('',*,*,#1534,.T.); +#497=ORIENTED_EDGE('',*,*,#1535,.F.); +#498=ORIENTED_EDGE('',*,*,#1536,.F.); +#499=ORIENTED_EDGE('',*,*,#1537,.F.); +#500=ORIENTED_EDGE('',*,*,#1538,.F.); +#501=ORIENTED_EDGE('',*,*,#1539,.T.); +#502=ORIENTED_EDGE('',*,*,#1540,.F.); +#503=ORIENTED_EDGE('',*,*,#1541,.F.); +#504=ORIENTED_EDGE('',*,*,#1542,.F.); +#505=ORIENTED_EDGE('',*,*,#1543,.T.); +#506=ORIENTED_EDGE('',*,*,#1544,.F.); +#507=ORIENTED_EDGE('',*,*,#1545,.F.); +#508=ORIENTED_EDGE('',*,*,#1546,.F.); +#509=ORIENTED_EDGE('',*,*,#1547,.T.); +#510=ORIENTED_EDGE('',*,*,#1548,.F.); +#511=ORIENTED_EDGE('',*,*,#1549,.F.); +#512=ORIENTED_EDGE('',*,*,#1550,.F.); +#513=ORIENTED_EDGE('',*,*,#1551,.T.); +#514=ORIENTED_EDGE('',*,*,#1552,.F.); +#515=ORIENTED_EDGE('',*,*,#1535,.T.); +#516=ORIENTED_EDGE('',*,*,#1553,.T.); +#517=ORIENTED_EDGE('',*,*,#1554,.F.); +#518=ORIENTED_EDGE('',*,*,#1555,.F.); +#519=ORIENTED_EDGE('',*,*,#1556,.F.); +#520=ORIENTED_EDGE('',*,*,#1557,.F.); +#521=ORIENTED_EDGE('',*,*,#1537,.T.); +#522=ORIENTED_EDGE('',*,*,#1558,.F.); +#523=ORIENTED_EDGE('',*,*,#1559,.F.); +#524=ORIENTED_EDGE('',*,*,#1560,.F.); +#525=ORIENTED_EDGE('',*,*,#1541,.T.); +#526=ORIENTED_EDGE('',*,*,#1561,.F.); +#527=ORIENTED_EDGE('',*,*,#1562,.F.); +#528=ORIENTED_EDGE('',*,*,#1563,.F.); +#529=ORIENTED_EDGE('',*,*,#1545,.T.); +#530=ORIENTED_EDGE('',*,*,#1564,.F.); +#531=ORIENTED_EDGE('',*,*,#1565,.F.); +#532=ORIENTED_EDGE('',*,*,#1566,.F.); +#533=ORIENTED_EDGE('',*,*,#1549,.T.); +#534=ORIENTED_EDGE('',*,*,#1567,.F.); +#535=ORIENTED_EDGE('',*,*,#1554,.T.); +#536=ORIENTED_EDGE('',*,*,#1568,.T.); +#537=ORIENTED_EDGE('',*,*,#1569,.F.); +#538=ORIENTED_EDGE('',*,*,#1570,.F.); +#539=ORIENTED_EDGE('',*,*,#1571,.F.); +#540=ORIENTED_EDGE('',*,*,#1572,.F.); +#541=ORIENTED_EDGE('',*,*,#1556,.T.); +#542=ORIENTED_EDGE('',*,*,#1573,.F.); +#543=ORIENTED_EDGE('',*,*,#1574,.F.); +#544=ORIENTED_EDGE('',*,*,#1575,.F.); +#545=ORIENTED_EDGE('',*,*,#1559,.T.); +#546=ORIENTED_EDGE('',*,*,#1576,.F.); +#547=ORIENTED_EDGE('',*,*,#1577,.F.); +#548=ORIENTED_EDGE('',*,*,#1578,.F.); +#549=ORIENTED_EDGE('',*,*,#1562,.T.); +#550=ORIENTED_EDGE('',*,*,#1579,.F.); +#551=ORIENTED_EDGE('',*,*,#1580,.F.); +#552=ORIENTED_EDGE('',*,*,#1581,.F.); +#553=ORIENTED_EDGE('',*,*,#1565,.T.); +#554=ORIENTED_EDGE('',*,*,#1582,.F.); +#555=ORIENTED_EDGE('',*,*,#1569,.T.); +#556=ORIENTED_EDGE('',*,*,#1583,.T.); +#557=ORIENTED_EDGE('',*,*,#1437,.F.); +#558=ORIENTED_EDGE('',*,*,#1584,.F.); +#559=ORIENTED_EDGE('',*,*,#1469,.F.); +#560=ORIENTED_EDGE('',*,*,#1585,.F.); +#561=ORIENTED_EDGE('',*,*,#1571,.T.); +#562=ORIENTED_EDGE('',*,*,#1586,.F.); +#563=ORIENTED_EDGE('',*,*,#1465,.F.); +#564=ORIENTED_EDGE('',*,*,#1587,.F.); +#565=ORIENTED_EDGE('',*,*,#1574,.T.); +#566=ORIENTED_EDGE('',*,*,#1588,.F.); +#567=ORIENTED_EDGE('',*,*,#1461,.F.); +#568=ORIENTED_EDGE('',*,*,#1589,.F.); +#569=ORIENTED_EDGE('',*,*,#1577,.T.); +#570=ORIENTED_EDGE('',*,*,#1590,.F.); +#571=ORIENTED_EDGE('',*,*,#1457,.F.); +#572=ORIENTED_EDGE('',*,*,#1591,.F.); +#573=ORIENTED_EDGE('',*,*,#1580,.T.); +#574=ORIENTED_EDGE('',*,*,#1592,.F.); +#575=ORIENTED_EDGE('',*,*,#1593,.F.); +#576=ORIENTED_EDGE('',*,*,#1594,.F.); +#577=ORIENTED_EDGE('',*,*,#1595,.T.); +#578=ORIENTED_EDGE('',*,*,#1596,.F.); +#579=ORIENTED_EDGE('',*,*,#1597,.T.); +#580=ORIENTED_EDGE('',*,*,#1598,.F.); +#581=ORIENTED_EDGE('',*,*,#1599,.F.); +#582=ORIENTED_EDGE('',*,*,#1600,.F.); +#583=ORIENTED_EDGE('',*,*,#1601,.T.); +#584=ORIENTED_EDGE('',*,*,#1602,.F.); +#585=ORIENTED_EDGE('',*,*,#1603,.F.); +#586=ORIENTED_EDGE('',*,*,#1604,.F.); +#587=ORIENTED_EDGE('',*,*,#1605,.T.); +#588=ORIENTED_EDGE('',*,*,#1606,.F.); +#589=ORIENTED_EDGE('',*,*,#1607,.F.); +#590=ORIENTED_EDGE('',*,*,#1608,.F.); +#591=ORIENTED_EDGE('',*,*,#1609,.T.); +#592=ORIENTED_EDGE('',*,*,#1610,.T.); +#593=ORIENTED_EDGE('',*,*,#1611,.F.); +#594=ORIENTED_EDGE('',*,*,#1612,.F.); +#595=ORIENTED_EDGE('',*,*,#1613,.F.); +#596=ORIENTED_EDGE('',*,*,#1614,.F.); +#597=ORIENTED_EDGE('',*,*,#1593,.T.); +#598=ORIENTED_EDGE('',*,*,#1615,.F.); +#599=ORIENTED_EDGE('',*,*,#1599,.T.); +#600=ORIENTED_EDGE('',*,*,#1616,.F.); +#601=ORIENTED_EDGE('',*,*,#1617,.F.); +#602=ORIENTED_EDGE('',*,*,#1618,.F.); +#603=ORIENTED_EDGE('',*,*,#1603,.T.); +#604=ORIENTED_EDGE('',*,*,#1619,.F.); +#605=ORIENTED_EDGE('',*,*,#1620,.F.); +#606=ORIENTED_EDGE('',*,*,#1621,.F.); +#607=ORIENTED_EDGE('',*,*,#1607,.T.); +#608=ORIENTED_EDGE('',*,*,#1622,.F.); +#609=ORIENTED_EDGE('',*,*,#1623,.F.); +#610=ORIENTED_EDGE('',*,*,#1624,.F.); +#611=ORIENTED_EDGE('',*,*,#1611,.T.); +#612=ORIENTED_EDGE('',*,*,#1625,.T.); +#613=ORIENTED_EDGE('',*,*,#1626,.F.); +#614=ORIENTED_EDGE('',*,*,#1627,.F.); +#615=ORIENTED_EDGE('',*,*,#1628,.F.); +#616=ORIENTED_EDGE('',*,*,#1629,.F.); +#617=ORIENTED_EDGE('',*,*,#1613,.T.); +#618=ORIENTED_EDGE('',*,*,#1630,.F.); +#619=ORIENTED_EDGE('',*,*,#1617,.T.); +#620=ORIENTED_EDGE('',*,*,#1631,.F.); +#621=ORIENTED_EDGE('',*,*,#1632,.F.); +#622=ORIENTED_EDGE('',*,*,#1633,.F.); +#623=ORIENTED_EDGE('',*,*,#1620,.T.); +#624=ORIENTED_EDGE('',*,*,#1634,.F.); +#625=ORIENTED_EDGE('',*,*,#1635,.F.); +#626=ORIENTED_EDGE('',*,*,#1636,.F.); +#627=ORIENTED_EDGE('',*,*,#1623,.T.); +#628=ORIENTED_EDGE('',*,*,#1637,.F.); +#629=ORIENTED_EDGE('',*,*,#1638,.F.); +#630=ORIENTED_EDGE('',*,*,#1639,.F.); +#631=ORIENTED_EDGE('',*,*,#1626,.T.); +#632=ORIENTED_EDGE('',*,*,#1640,.T.); +#633=ORIENTED_EDGE('',*,*,#1641,.F.); +#634=ORIENTED_EDGE('',*,*,#1642,.F.); +#635=ORIENTED_EDGE('',*,*,#1643,.F.); +#636=ORIENTED_EDGE('',*,*,#1644,.F.); +#637=ORIENTED_EDGE('',*,*,#1628,.T.); +#638=ORIENTED_EDGE('',*,*,#1645,.F.); +#639=ORIENTED_EDGE('',*,*,#1632,.T.); +#640=ORIENTED_EDGE('',*,*,#1646,.F.); +#641=ORIENTED_EDGE('',*,*,#1647,.F.); +#642=ORIENTED_EDGE('',*,*,#1648,.F.); +#643=ORIENTED_EDGE('',*,*,#1635,.T.); +#644=ORIENTED_EDGE('',*,*,#1649,.F.); +#645=ORIENTED_EDGE('',*,*,#1650,.F.); +#646=ORIENTED_EDGE('',*,*,#1651,.F.); +#647=ORIENTED_EDGE('',*,*,#1638,.T.); +#648=ORIENTED_EDGE('',*,*,#1652,.F.); +#649=ORIENTED_EDGE('',*,*,#1653,.F.); +#650=ORIENTED_EDGE('',*,*,#1654,.F.); +#651=ORIENTED_EDGE('',*,*,#1641,.T.); +#652=ORIENTED_EDGE('',*,*,#1655,.T.); +#653=ORIENTED_EDGE('',*,*,#1656,.F.); +#654=ORIENTED_EDGE('',*,*,#1657,.F.); +#655=ORIENTED_EDGE('',*,*,#1658,.F.); +#656=ORIENTED_EDGE('',*,*,#1659,.F.); +#657=ORIENTED_EDGE('',*,*,#1643,.T.); +#658=ORIENTED_EDGE('',*,*,#1660,.F.); +#659=ORIENTED_EDGE('',*,*,#1647,.T.); +#660=ORIENTED_EDGE('',*,*,#1661,.F.); +#661=ORIENTED_EDGE('',*,*,#1662,.F.); +#662=ORIENTED_EDGE('',*,*,#1663,.F.); +#663=ORIENTED_EDGE('',*,*,#1650,.T.); +#664=ORIENTED_EDGE('',*,*,#1664,.F.); +#665=ORIENTED_EDGE('',*,*,#1665,.F.); +#666=ORIENTED_EDGE('',*,*,#1666,.F.); +#667=ORIENTED_EDGE('',*,*,#1653,.T.); +#668=ORIENTED_EDGE('',*,*,#1667,.F.); +#669=ORIENTED_EDGE('',*,*,#1668,.F.); +#670=ORIENTED_EDGE('',*,*,#1669,.F.); +#671=ORIENTED_EDGE('',*,*,#1656,.T.); +#672=ORIENTED_EDGE('',*,*,#1670,.T.); +#673=ORIENTED_EDGE('',*,*,#1671,.F.); +#674=ORIENTED_EDGE('',*,*,#1672,.F.); +#675=ORIENTED_EDGE('',*,*,#1673,.F.); +#676=ORIENTED_EDGE('',*,*,#1674,.F.); +#677=ORIENTED_EDGE('',*,*,#1675,.T.); +#678=ORIENTED_EDGE('',*,*,#1676,.F.); +#679=ORIENTED_EDGE('',*,*,#1677,.T.); +#680=ORIENTED_EDGE('',*,*,#1678,.F.); +#681=ORIENTED_EDGE('',*,*,#1679,.F.); +#682=ORIENTED_EDGE('',*,*,#1680,.F.); +#683=ORIENTED_EDGE('',*,*,#1681,.T.); +#684=ORIENTED_EDGE('',*,*,#1682,.F.); +#685=ORIENTED_EDGE('',*,*,#1683,.F.); +#686=ORIENTED_EDGE('',*,*,#1684,.F.); +#687=ORIENTED_EDGE('',*,*,#1685,.T.); +#688=ORIENTED_EDGE('',*,*,#1686,.F.); +#689=ORIENTED_EDGE('',*,*,#1687,.F.); +#690=ORIENTED_EDGE('',*,*,#1688,.F.); +#691=ORIENTED_EDGE('',*,*,#1689,.T.); +#692=ORIENTED_EDGE('',*,*,#1690,.T.); +#693=ORIENTED_EDGE('',*,*,#1691,.F.); +#694=ORIENTED_EDGE('',*,*,#1692,.F.); +#695=ORIENTED_EDGE('',*,*,#1693,.F.); +#696=ORIENTED_EDGE('',*,*,#1694,.F.); +#697=ORIENTED_EDGE('',*,*,#1673,.T.); +#698=ORIENTED_EDGE('',*,*,#1695,.F.); +#699=ORIENTED_EDGE('',*,*,#1679,.T.); +#700=ORIENTED_EDGE('',*,*,#1696,.F.); +#701=ORIENTED_EDGE('',*,*,#1697,.F.); +#702=ORIENTED_EDGE('',*,*,#1698,.F.); +#703=ORIENTED_EDGE('',*,*,#1683,.T.); +#704=ORIENTED_EDGE('',*,*,#1699,.F.); +#705=ORIENTED_EDGE('',*,*,#1700,.F.); +#706=ORIENTED_EDGE('',*,*,#1701,.F.); +#707=ORIENTED_EDGE('',*,*,#1687,.T.); +#708=ORIENTED_EDGE('',*,*,#1702,.F.); +#709=ORIENTED_EDGE('',*,*,#1703,.F.); +#710=ORIENTED_EDGE('',*,*,#1704,.F.); +#711=ORIENTED_EDGE('',*,*,#1691,.T.); +#712=ORIENTED_EDGE('',*,*,#1705,.T.); +#713=ORIENTED_EDGE('',*,*,#1706,.F.); +#714=ORIENTED_EDGE('',*,*,#1707,.F.); +#715=ORIENTED_EDGE('',*,*,#1708,.F.); +#716=ORIENTED_EDGE('',*,*,#1709,.F.); +#717=ORIENTED_EDGE('',*,*,#1693,.T.); +#718=ORIENTED_EDGE('',*,*,#1710,.F.); +#719=ORIENTED_EDGE('',*,*,#1697,.T.); +#720=ORIENTED_EDGE('',*,*,#1711,.F.); +#721=ORIENTED_EDGE('',*,*,#1712,.F.); +#722=ORIENTED_EDGE('',*,*,#1713,.F.); +#723=ORIENTED_EDGE('',*,*,#1700,.T.); +#724=ORIENTED_EDGE('',*,*,#1714,.F.); +#725=ORIENTED_EDGE('',*,*,#1715,.F.); +#726=ORIENTED_EDGE('',*,*,#1716,.F.); +#727=ORIENTED_EDGE('',*,*,#1703,.T.); +#728=ORIENTED_EDGE('',*,*,#1717,.F.); +#729=ORIENTED_EDGE('',*,*,#1718,.F.); +#730=ORIENTED_EDGE('',*,*,#1719,.F.); +#731=ORIENTED_EDGE('',*,*,#1706,.T.); +#732=ORIENTED_EDGE('',*,*,#1720,.T.); +#733=ORIENTED_EDGE('',*,*,#1721,.F.); +#734=ORIENTED_EDGE('',*,*,#1722,.F.); +#735=ORIENTED_EDGE('',*,*,#1723,.F.); +#736=ORIENTED_EDGE('',*,*,#1724,.F.); +#737=ORIENTED_EDGE('',*,*,#1708,.T.); +#738=ORIENTED_EDGE('',*,*,#1725,.F.); +#739=ORIENTED_EDGE('',*,*,#1712,.T.); +#740=ORIENTED_EDGE('',*,*,#1726,.F.); +#741=ORIENTED_EDGE('',*,*,#1727,.F.); +#742=ORIENTED_EDGE('',*,*,#1728,.F.); +#743=ORIENTED_EDGE('',*,*,#1715,.T.); +#744=ORIENTED_EDGE('',*,*,#1729,.F.); +#745=ORIENTED_EDGE('',*,*,#1730,.F.); +#746=ORIENTED_EDGE('',*,*,#1731,.F.); +#747=ORIENTED_EDGE('',*,*,#1718,.T.); +#748=ORIENTED_EDGE('',*,*,#1732,.F.); +#749=ORIENTED_EDGE('',*,*,#1733,.F.); +#750=ORIENTED_EDGE('',*,*,#1734,.F.); +#751=ORIENTED_EDGE('',*,*,#1721,.T.); +#752=ORIENTED_EDGE('',*,*,#1735,.T.); +#753=ORIENTED_EDGE('',*,*,#1736,.F.); +#754=ORIENTED_EDGE('',*,*,#1737,.T.); +#755=ORIENTED_EDGE('',*,*,#1738,.F.); +#756=ORIENTED_EDGE('',*,*,#1739,.F.); +#757=ORIENTED_EDGE('',*,*,#1723,.T.); +#758=ORIENTED_EDGE('',*,*,#1740,.T.); +#759=ORIENTED_EDGE('',*,*,#1727,.T.); +#760=ORIENTED_EDGE('',*,*,#1741,.T.); +#761=ORIENTED_EDGE('',*,*,#1742,.F.); +#762=ORIENTED_EDGE('',*,*,#1743,.T.); +#763=ORIENTED_EDGE('',*,*,#1730,.T.); +#764=ORIENTED_EDGE('',*,*,#1744,.T.); +#765=ORIENTED_EDGE('',*,*,#1745,.F.); +#766=ORIENTED_EDGE('',*,*,#1746,.T.); +#767=ORIENTED_EDGE('',*,*,#1733,.T.); +#768=ORIENTED_EDGE('',*,*,#1747,.T.); +#769=ORIENTED_EDGE('',*,*,#1748,.F.); +#770=ORIENTED_EDGE('',*,*,#1749,.T.); +#771=ORIENTED_EDGE('',*,*,#1736,.T.); +#772=ORIENTED_EDGE('',*,*,#1750,.T.); +#773=ORIENTED_EDGE('',*,*,#1751,.F.); +#774=ORIENTED_EDGE('',*,*,#1752,.F.); +#775=ORIENTED_EDGE('',*,*,#1753,.F.); +#776=ORIENTED_EDGE('',*,*,#1754,.F.); +#777=ORIENTED_EDGE('',*,*,#1738,.T.); +#778=ORIENTED_EDGE('',*,*,#1755,.F.); +#779=ORIENTED_EDGE('',*,*,#1742,.T.); +#780=ORIENTED_EDGE('',*,*,#1756,.F.); +#781=ORIENTED_EDGE('',*,*,#1757,.F.); +#782=ORIENTED_EDGE('',*,*,#1758,.F.); +#783=ORIENTED_EDGE('',*,*,#1745,.T.); +#784=ORIENTED_EDGE('',*,*,#1759,.F.); +#785=ORIENTED_EDGE('',*,*,#1760,.F.); +#786=ORIENTED_EDGE('',*,*,#1761,.F.); +#787=ORIENTED_EDGE('',*,*,#1748,.T.); +#788=ORIENTED_EDGE('',*,*,#1762,.F.); +#789=ORIENTED_EDGE('',*,*,#1763,.F.); +#790=ORIENTED_EDGE('',*,*,#1764,.F.); +#791=ORIENTED_EDGE('',*,*,#1751,.T.); +#792=ORIENTED_EDGE('',*,*,#1765,.T.); +#793=ORIENTED_EDGE('',*,*,#1766,.F.); +#794=ORIENTED_EDGE('',*,*,#1767,.F.); +#795=ORIENTED_EDGE('',*,*,#1768,.F.); +#796=ORIENTED_EDGE('',*,*,#1769,.F.); +#797=ORIENTED_EDGE('',*,*,#1753,.T.); +#798=ORIENTED_EDGE('',*,*,#1770,.F.); +#799=ORIENTED_EDGE('',*,*,#1757,.T.); +#800=ORIENTED_EDGE('',*,*,#1771,.F.); +#801=ORIENTED_EDGE('',*,*,#1772,.F.); +#802=ORIENTED_EDGE('',*,*,#1773,.F.); +#803=ORIENTED_EDGE('',*,*,#1760,.T.); +#804=ORIENTED_EDGE('',*,*,#1774,.F.); +#805=ORIENTED_EDGE('',*,*,#1775,.F.); +#806=ORIENTED_EDGE('',*,*,#1776,.F.); +#807=ORIENTED_EDGE('',*,*,#1763,.T.); +#808=ORIENTED_EDGE('',*,*,#1777,.F.); +#809=ORIENTED_EDGE('',*,*,#1778,.F.); +#810=ORIENTED_EDGE('',*,*,#1779,.F.); +#811=ORIENTED_EDGE('',*,*,#1766,.T.); +#812=ORIENTED_EDGE('',*,*,#1780,.T.); +#813=ORIENTED_EDGE('',*,*,#1781,.F.); +#814=ORIENTED_EDGE('',*,*,#1768,.T.); +#815=ORIENTED_EDGE('',*,*,#1782,.T.); +#816=ORIENTED_EDGE('',*,*,#1417,.F.); +#817=ORIENTED_EDGE('',*,*,#1783,.T.); +#818=ORIENTED_EDGE('',*,*,#1421,.F.); +#819=ORIENTED_EDGE('',*,*,#1784,.T.); +#820=ORIENTED_EDGE('',*,*,#1772,.T.); +#821=ORIENTED_EDGE('',*,*,#1785,.T.); +#822=ORIENTED_EDGE('',*,*,#1425,.F.); +#823=ORIENTED_EDGE('',*,*,#1786,.T.); +#824=ORIENTED_EDGE('',*,*,#1775,.T.); +#825=ORIENTED_EDGE('',*,*,#1787,.T.); +#826=ORIENTED_EDGE('',*,*,#1429,.F.); +#827=ORIENTED_EDGE('',*,*,#1788,.T.); +#828=ORIENTED_EDGE('',*,*,#1778,.T.); +#829=ORIENTED_EDGE('',*,*,#1789,.T.); +#830=ORIENTED_EDGE('',*,*,#1433,.F.); +#831=ORIENTED_EDGE('',*,*,#1790,.T.); +#832=ORIENTED_EDGE('',*,*,#1781,.T.); +#833=ORIENTED_EDGE('',*,*,#1791,.F.); +#834=ORIENTED_EDGE('',*,*,#1455,.T.); +#835=ORIENTED_EDGE('',*,*,#1792,.T.); +#836=ORIENTED_EDGE('',*,*,#1793,.F.); +#837=ORIENTED_EDGE('',*,*,#1794,.T.); +#838=ORIENTED_EDGE('',*,*,#1795,.F.); +#839=ORIENTED_EDGE('',*,*,#1796,.T.); +#840=ORIENTED_EDGE('',*,*,#1451,.T.); +#841=ORIENTED_EDGE('',*,*,#1797,.T.); +#842=ORIENTED_EDGE('',*,*,#1798,.F.); +#843=ORIENTED_EDGE('',*,*,#1799,.T.); +#844=ORIENTED_EDGE('',*,*,#1447,.T.); +#845=ORIENTED_EDGE('',*,*,#1800,.T.); +#846=ORIENTED_EDGE('',*,*,#1801,.F.); +#847=ORIENTED_EDGE('',*,*,#1802,.T.); +#848=ORIENTED_EDGE('',*,*,#1443,.T.); +#849=ORIENTED_EDGE('',*,*,#1803,.T.); +#850=ORIENTED_EDGE('',*,*,#1804,.F.); +#851=ORIENTED_EDGE('',*,*,#1805,.T.); +#852=ORIENTED_EDGE('',*,*,#1439,.T.); +#853=ORIENTED_EDGE('',*,*,#1806,.F.); +#854=ORIENTED_EDGE('',*,*,#1807,.F.); +#855=ORIENTED_EDGE('',*,*,#1808,.F.); +#856=ORIENTED_EDGE('',*,*,#1809,.F.); +#857=ORIENTED_EDGE('',*,*,#1793,.T.); +#858=ORIENTED_EDGE('',*,*,#1810,.F.); +#859=ORIENTED_EDGE('',*,*,#1795,.T.); +#860=ORIENTED_EDGE('',*,*,#1811,.F.); +#861=ORIENTED_EDGE('',*,*,#1812,.F.); +#862=ORIENTED_EDGE('',*,*,#1813,.F.); +#863=ORIENTED_EDGE('',*,*,#1798,.T.); +#864=ORIENTED_EDGE('',*,*,#1814,.F.); +#865=ORIENTED_EDGE('',*,*,#1815,.F.); +#866=ORIENTED_EDGE('',*,*,#1816,.F.); +#867=ORIENTED_EDGE('',*,*,#1801,.T.); +#868=ORIENTED_EDGE('',*,*,#1817,.F.); +#869=ORIENTED_EDGE('',*,*,#1818,.F.); +#870=ORIENTED_EDGE('',*,*,#1819,.F.); +#871=ORIENTED_EDGE('',*,*,#1804,.T.); +#872=ORIENTED_EDGE('',*,*,#1820,.T.); +#873=ORIENTED_EDGE('',*,*,#1821,.F.); +#874=ORIENTED_EDGE('',*,*,#1822,.F.); +#875=ORIENTED_EDGE('',*,*,#1595,.F.); +#876=ORIENTED_EDGE('',*,*,#1823,.F.); +#877=ORIENTED_EDGE('',*,*,#1808,.T.); +#878=ORIENTED_EDGE('',*,*,#1824,.F.); +#879=ORIENTED_EDGE('',*,*,#1812,.T.); +#880=ORIENTED_EDGE('',*,*,#1825,.F.); +#881=ORIENTED_EDGE('',*,*,#1597,.F.); +#882=ORIENTED_EDGE('',*,*,#1826,.F.); +#883=ORIENTED_EDGE('',*,*,#1815,.T.); +#884=ORIENTED_EDGE('',*,*,#1827,.F.); +#885=ORIENTED_EDGE('',*,*,#1601,.F.); +#886=ORIENTED_EDGE('',*,*,#1828,.F.); +#887=ORIENTED_EDGE('',*,*,#1818,.T.); +#888=ORIENTED_EDGE('',*,*,#1829,.F.); +#889=ORIENTED_EDGE('',*,*,#1605,.F.); +#890=ORIENTED_EDGE('',*,*,#1830,.F.); +#891=ORIENTED_EDGE('',*,*,#1821,.T.); +#892=ORIENTED_EDGE('',*,*,#1831,.T.); +#893=ORIENTED_EDGE('',*,*,#1609,.F.); +#894=ORIENTED_EDGE('',*,*,#1668,.T.); +#895=ORIENTED_EDGE('',*,*,#1832,.F.); +#896=ORIENTED_EDGE('',*,*,#1441,.T.); +#897=ORIENTED_EDGE('',*,*,#1833,.T.); +#898=ORIENTED_EDGE('',*,*,#1671,.T.); +#899=ORIENTED_EDGE('',*,*,#1834,.T.); +#900=ORIENTED_EDGE('',*,*,#1689,.F.); +#901=ORIENTED_EDGE('',*,*,#1835,.T.); +#902=ORIENTED_EDGE('',*,*,#1431,.T.); +#903=ORIENTED_EDGE('',*,*,#1836,.F.); +#904=ORIENTED_EDGE('',*,*,#1685,.F.); +#905=ORIENTED_EDGE('',*,*,#1837,.T.); +#906=ORIENTED_EDGE('',*,*,#1427,.T.); +#907=ORIENTED_EDGE('',*,*,#1838,.F.); +#908=ORIENTED_EDGE('',*,*,#1681,.F.); +#909=ORIENTED_EDGE('',*,*,#1839,.T.); +#910=ORIENTED_EDGE('',*,*,#1423,.T.); +#911=ORIENTED_EDGE('',*,*,#1840,.F.); +#912=ORIENTED_EDGE('',*,*,#1677,.F.); +#913=ORIENTED_EDGE('',*,*,#1841,.T.); +#914=ORIENTED_EDGE('',*,*,#1419,.T.); +#915=ORIENTED_EDGE('',*,*,#1842,.F.); +#916=ORIENTED_EDGE('',*,*,#1675,.F.); +#917=ORIENTED_EDGE('',*,*,#1843,.F.); +#918=ORIENTED_EDGE('',*,*,#1658,.T.); +#919=ORIENTED_EDGE('',*,*,#1844,.F.); +#920=ORIENTED_EDGE('',*,*,#1453,.T.); +#921=ORIENTED_EDGE('',*,*,#1845,.T.); +#922=ORIENTED_EDGE('',*,*,#1662,.T.); +#923=ORIENTED_EDGE('',*,*,#1846,.F.); +#924=ORIENTED_EDGE('',*,*,#1449,.T.); +#925=ORIENTED_EDGE('',*,*,#1847,.T.); +#926=ORIENTED_EDGE('',*,*,#1665,.T.); +#927=ORIENTED_EDGE('',*,*,#1848,.F.); +#928=ORIENTED_EDGE('',*,*,#1445,.T.); +#929=ORIENTED_EDGE('',*,*,#1849,.T.); +#930=ORIENTED_EDGE('',*,*,#1530,.T.); +#931=ORIENTED_EDGE('',*,*,#1850,.T.); +#932=ORIENTED_EDGE('',*,*,#1413,.T.); +#933=ORIENTED_EDGE('',*,*,#1851,.F.); +#934=ORIENTED_EDGE('',*,*,#1527,.T.); +#935=ORIENTED_EDGE('',*,*,#1852,.T.); +#936=ORIENTED_EDGE('',*,*,#1409,.T.); +#937=ORIENTED_EDGE('',*,*,#1853,.F.); +#938=ORIENTED_EDGE('',*,*,#1524,.T.); +#939=ORIENTED_EDGE('',*,*,#1854,.T.); +#940=ORIENTED_EDGE('',*,*,#1405,.T.); +#941=ORIENTED_EDGE('',*,*,#1855,.F.); +#942=ORIENTED_EDGE('',*,*,#1521,.T.); +#943=ORIENTED_EDGE('',*,*,#1856,.T.); +#944=ORIENTED_EDGE('',*,*,#1401,.T.); +#945=ORIENTED_EDGE('',*,*,#1857,.F.); +#946=ORIENTED_EDGE('',*,*,#1519,.T.); +#947=ORIENTED_EDGE('',*,*,#1858,.T.); +#948=ORIENTED_EDGE('',*,*,#1533,.F.); +#949=ORIENTED_EDGE('',*,*,#1859,.F.); +#950=ORIENTED_EDGE('',*,*,#1471,.T.); +#951=ORIENTED_EDGE('',*,*,#1860,.T.); +#952=ORIENTED_EDGE('',*,*,#1539,.F.); +#953=ORIENTED_EDGE('',*,*,#1861,.F.); +#954=ORIENTED_EDGE('',*,*,#1467,.T.); +#955=ORIENTED_EDGE('',*,*,#1862,.T.); +#956=ORIENTED_EDGE('',*,*,#1543,.F.); +#957=ORIENTED_EDGE('',*,*,#1863,.F.); +#958=ORIENTED_EDGE('',*,*,#1463,.T.); +#959=ORIENTED_EDGE('',*,*,#1864,.T.); +#960=ORIENTED_EDGE('',*,*,#1547,.F.); +#961=ORIENTED_EDGE('',*,*,#1865,.F.); +#962=ORIENTED_EDGE('',*,*,#1459,.T.); +#963=ORIENTED_EDGE('',*,*,#1866,.T.); +#964=ORIENTED_EDGE('',*,*,#1551,.F.); +#965=ORIENTED_EDGE('',*,*,#1867,.F.); +#966=ORIENTED_EDGE('',*,*,#1456,.T.); +#967=ORIENTED_EDGE('',*,*,#1794,.F.); +#968=ORIENTED_EDGE('',*,*,#1809,.T.); +#969=ORIENTED_EDGE('',*,*,#1823,.T.); +#970=ORIENTED_EDGE('',*,*,#1594,.T.); +#971=ORIENTED_EDGE('',*,*,#1614,.T.); +#972=ORIENTED_EDGE('',*,*,#1629,.T.); +#973=ORIENTED_EDGE('',*,*,#1644,.T.); +#974=ORIENTED_EDGE('',*,*,#1659,.T.); +#975=ORIENTED_EDGE('',*,*,#1843,.T.); +#976=ORIENTED_EDGE('',*,*,#1674,.T.); +#977=ORIENTED_EDGE('',*,*,#1694,.T.); +#978=ORIENTED_EDGE('',*,*,#1709,.T.); +#979=ORIENTED_EDGE('',*,*,#1724,.T.); +#980=ORIENTED_EDGE('',*,*,#1739,.T.); +#981=ORIENTED_EDGE('',*,*,#1754,.T.); +#982=ORIENTED_EDGE('',*,*,#1769,.T.); +#983=ORIENTED_EDGE('',*,*,#1783,.F.); +#984=ORIENTED_EDGE('',*,*,#1416,.T.); +#985=ORIENTED_EDGE('',*,*,#1486,.T.); +#986=ORIENTED_EDGE('',*,*,#1501,.T.); +#987=ORIENTED_EDGE('',*,*,#1516,.T.); +#988=ORIENTED_EDGE('',*,*,#1531,.T.); +#989=ORIENTED_EDGE('',*,*,#1867,.T.); +#990=ORIENTED_EDGE('',*,*,#1550,.T.); +#991=ORIENTED_EDGE('',*,*,#1566,.T.); +#992=ORIENTED_EDGE('',*,*,#1581,.T.); +#993=ORIENTED_EDGE('',*,*,#1591,.T.); +#994=ORIENTED_EDGE('',*,*,#1534,.F.); +#995=ORIENTED_EDGE('',*,*,#1858,.F.); +#996=ORIENTED_EDGE('',*,*,#1518,.F.); +#997=ORIENTED_EDGE('',*,*,#1503,.F.); +#998=ORIENTED_EDGE('',*,*,#1488,.F.); +#999=ORIENTED_EDGE('',*,*,#1473,.F.); +#1000=ORIENTED_EDGE('',*,*,#1434,.F.); +#1001=ORIENTED_EDGE('',*,*,#1791,.T.); +#1002=ORIENTED_EDGE('',*,*,#1780,.F.); +#1003=ORIENTED_EDGE('',*,*,#1765,.F.); +#1004=ORIENTED_EDGE('',*,*,#1750,.F.); +#1005=ORIENTED_EDGE('',*,*,#1735,.F.); +#1006=ORIENTED_EDGE('',*,*,#1720,.F.); +#1007=ORIENTED_EDGE('',*,*,#1705,.F.); +#1008=ORIENTED_EDGE('',*,*,#1690,.F.); +#1009=ORIENTED_EDGE('',*,*,#1834,.F.); +#1010=ORIENTED_EDGE('',*,*,#1670,.F.); +#1011=ORIENTED_EDGE('',*,*,#1655,.F.); +#1012=ORIENTED_EDGE('',*,*,#1640,.F.); +#1013=ORIENTED_EDGE('',*,*,#1625,.F.); +#1014=ORIENTED_EDGE('',*,*,#1610,.F.); +#1015=ORIENTED_EDGE('',*,*,#1831,.F.); +#1016=ORIENTED_EDGE('',*,*,#1820,.F.); +#1017=ORIENTED_EDGE('',*,*,#1806,.T.); +#1018=ORIENTED_EDGE('',*,*,#1438,.F.); +#1019=ORIENTED_EDGE('',*,*,#1583,.F.); +#1020=ORIENTED_EDGE('',*,*,#1568,.F.); +#1021=ORIENTED_EDGE('',*,*,#1553,.F.); +#1022=ORIENTED_EDGE('',*,*,#1622,.T.); +#1023=ORIENTED_EDGE('',*,*,#1606,.T.); +#1024=ORIENTED_EDGE('',*,*,#1829,.T.); +#1025=ORIENTED_EDGE('',*,*,#1817,.T.); +#1026=ORIENTED_EDGE('',*,*,#1803,.F.); +#1027=ORIENTED_EDGE('',*,*,#1442,.T.); +#1028=ORIENTED_EDGE('',*,*,#1832,.T.); +#1029=ORIENTED_EDGE('',*,*,#1667,.T.); +#1030=ORIENTED_EDGE('',*,*,#1652,.T.); +#1031=ORIENTED_EDGE('',*,*,#1637,.T.); +#1032=ORIENTED_EDGE('',*,*,#1624,.T.); +#1033=ORIENTED_EDGE('',*,*,#1639,.T.); +#1034=ORIENTED_EDGE('',*,*,#1654,.T.); +#1035=ORIENTED_EDGE('',*,*,#1669,.T.); +#1036=ORIENTED_EDGE('',*,*,#1833,.F.); +#1037=ORIENTED_EDGE('',*,*,#1440,.T.); +#1038=ORIENTED_EDGE('',*,*,#1805,.F.); +#1039=ORIENTED_EDGE('',*,*,#1819,.T.); +#1040=ORIENTED_EDGE('',*,*,#1830,.T.); +#1041=ORIENTED_EDGE('',*,*,#1608,.T.); +#1042=ORIENTED_EDGE('',*,*,#1619,.T.); +#1043=ORIENTED_EDGE('',*,*,#1602,.T.); +#1044=ORIENTED_EDGE('',*,*,#1827,.T.); +#1045=ORIENTED_EDGE('',*,*,#1814,.T.); +#1046=ORIENTED_EDGE('',*,*,#1800,.F.); +#1047=ORIENTED_EDGE('',*,*,#1446,.T.); +#1048=ORIENTED_EDGE('',*,*,#1848,.T.); +#1049=ORIENTED_EDGE('',*,*,#1664,.T.); +#1050=ORIENTED_EDGE('',*,*,#1649,.T.); +#1051=ORIENTED_EDGE('',*,*,#1634,.T.); +#1052=ORIENTED_EDGE('',*,*,#1621,.T.); +#1053=ORIENTED_EDGE('',*,*,#1636,.T.); +#1054=ORIENTED_EDGE('',*,*,#1651,.T.); +#1055=ORIENTED_EDGE('',*,*,#1666,.T.); +#1056=ORIENTED_EDGE('',*,*,#1849,.F.); +#1057=ORIENTED_EDGE('',*,*,#1444,.T.); +#1058=ORIENTED_EDGE('',*,*,#1802,.F.); +#1059=ORIENTED_EDGE('',*,*,#1816,.T.); +#1060=ORIENTED_EDGE('',*,*,#1828,.T.); +#1061=ORIENTED_EDGE('',*,*,#1604,.T.); +#1062=ORIENTED_EDGE('',*,*,#1616,.T.); +#1063=ORIENTED_EDGE('',*,*,#1598,.T.); +#1064=ORIENTED_EDGE('',*,*,#1825,.T.); +#1065=ORIENTED_EDGE('',*,*,#1811,.T.); +#1066=ORIENTED_EDGE('',*,*,#1797,.F.); +#1067=ORIENTED_EDGE('',*,*,#1450,.T.); +#1068=ORIENTED_EDGE('',*,*,#1846,.T.); +#1069=ORIENTED_EDGE('',*,*,#1661,.T.); +#1070=ORIENTED_EDGE('',*,*,#1646,.T.); +#1071=ORIENTED_EDGE('',*,*,#1631,.T.); +#1072=ORIENTED_EDGE('',*,*,#1618,.T.); +#1073=ORIENTED_EDGE('',*,*,#1633,.T.); +#1074=ORIENTED_EDGE('',*,*,#1648,.T.); +#1075=ORIENTED_EDGE('',*,*,#1663,.T.); +#1076=ORIENTED_EDGE('',*,*,#1847,.F.); +#1077=ORIENTED_EDGE('',*,*,#1448,.T.); +#1078=ORIENTED_EDGE('',*,*,#1799,.F.); +#1079=ORIENTED_EDGE('',*,*,#1813,.T.); +#1080=ORIENTED_EDGE('',*,*,#1826,.T.); +#1081=ORIENTED_EDGE('',*,*,#1600,.T.); +#1082=ORIENTED_EDGE('',*,*,#1612,.T.); +#1083=ORIENTED_EDGE('',*,*,#1592,.T.); +#1084=ORIENTED_EDGE('',*,*,#1822,.T.); +#1085=ORIENTED_EDGE('',*,*,#1807,.T.); +#1086=ORIENTED_EDGE('',*,*,#1792,.F.); +#1087=ORIENTED_EDGE('',*,*,#1454,.T.); +#1088=ORIENTED_EDGE('',*,*,#1844,.T.); +#1089=ORIENTED_EDGE('',*,*,#1657,.T.); +#1090=ORIENTED_EDGE('',*,*,#1642,.T.); +#1091=ORIENTED_EDGE('',*,*,#1627,.T.); +#1092=ORIENTED_EDGE('',*,*,#1615,.T.); +#1093=ORIENTED_EDGE('',*,*,#1630,.T.); +#1094=ORIENTED_EDGE('',*,*,#1645,.T.); +#1095=ORIENTED_EDGE('',*,*,#1660,.T.); +#1096=ORIENTED_EDGE('',*,*,#1845,.F.); +#1097=ORIENTED_EDGE('',*,*,#1452,.T.); +#1098=ORIENTED_EDGE('',*,*,#1796,.F.); +#1099=ORIENTED_EDGE('',*,*,#1810,.T.); +#1100=ORIENTED_EDGE('',*,*,#1824,.T.); +#1101=ORIENTED_EDGE('',*,*,#1596,.T.); +#1102=ORIENTED_EDGE('',*,*,#1688,.T.); +#1103=ORIENTED_EDGE('',*,*,#1704,.T.); +#1104=ORIENTED_EDGE('',*,*,#1719,.T.); +#1105=ORIENTED_EDGE('',*,*,#1734,.T.); +#1106=ORIENTED_EDGE('',*,*,#1749,.F.); +#1107=ORIENTED_EDGE('',*,*,#1764,.T.); +#1108=ORIENTED_EDGE('',*,*,#1779,.T.); +#1109=ORIENTED_EDGE('',*,*,#1790,.F.); +#1110=ORIENTED_EDGE('',*,*,#1432,.T.); +#1111=ORIENTED_EDGE('',*,*,#1835,.F.); +#1112=ORIENTED_EDGE('',*,*,#1686,.T.); +#1113=ORIENTED_EDGE('',*,*,#1836,.T.); +#1114=ORIENTED_EDGE('',*,*,#1430,.T.); +#1115=ORIENTED_EDGE('',*,*,#1789,.F.); +#1116=ORIENTED_EDGE('',*,*,#1777,.T.); +#1117=ORIENTED_EDGE('',*,*,#1762,.T.); +#1118=ORIENTED_EDGE('',*,*,#1747,.F.); +#1119=ORIENTED_EDGE('',*,*,#1732,.T.); +#1120=ORIENTED_EDGE('',*,*,#1717,.T.); +#1121=ORIENTED_EDGE('',*,*,#1702,.T.); +#1122=ORIENTED_EDGE('',*,*,#1684,.T.); +#1123=ORIENTED_EDGE('',*,*,#1701,.T.); +#1124=ORIENTED_EDGE('',*,*,#1716,.T.); +#1125=ORIENTED_EDGE('',*,*,#1731,.T.); +#1126=ORIENTED_EDGE('',*,*,#1746,.F.); +#1127=ORIENTED_EDGE('',*,*,#1761,.T.); +#1128=ORIENTED_EDGE('',*,*,#1776,.T.); +#1129=ORIENTED_EDGE('',*,*,#1788,.F.); +#1130=ORIENTED_EDGE('',*,*,#1428,.T.); +#1131=ORIENTED_EDGE('',*,*,#1837,.F.); +#1132=ORIENTED_EDGE('',*,*,#1682,.T.); +#1133=ORIENTED_EDGE('',*,*,#1838,.T.); +#1134=ORIENTED_EDGE('',*,*,#1426,.T.); +#1135=ORIENTED_EDGE('',*,*,#1787,.F.); +#1136=ORIENTED_EDGE('',*,*,#1774,.T.); +#1137=ORIENTED_EDGE('',*,*,#1759,.T.); +#1138=ORIENTED_EDGE('',*,*,#1744,.F.); +#1139=ORIENTED_EDGE('',*,*,#1729,.T.); +#1140=ORIENTED_EDGE('',*,*,#1714,.T.); +#1141=ORIENTED_EDGE('',*,*,#1699,.T.); +#1142=ORIENTED_EDGE('',*,*,#1680,.T.); +#1143=ORIENTED_EDGE('',*,*,#1698,.T.); +#1144=ORIENTED_EDGE('',*,*,#1713,.T.); +#1145=ORIENTED_EDGE('',*,*,#1728,.T.); +#1146=ORIENTED_EDGE('',*,*,#1743,.F.); +#1147=ORIENTED_EDGE('',*,*,#1758,.T.); +#1148=ORIENTED_EDGE('',*,*,#1773,.T.); +#1149=ORIENTED_EDGE('',*,*,#1786,.F.); +#1150=ORIENTED_EDGE('',*,*,#1424,.T.); +#1151=ORIENTED_EDGE('',*,*,#1839,.F.); +#1152=ORIENTED_EDGE('',*,*,#1678,.T.); +#1153=ORIENTED_EDGE('',*,*,#1840,.T.); +#1154=ORIENTED_EDGE('',*,*,#1422,.T.); +#1155=ORIENTED_EDGE('',*,*,#1785,.F.); +#1156=ORIENTED_EDGE('',*,*,#1771,.T.); +#1157=ORIENTED_EDGE('',*,*,#1756,.T.); +#1158=ORIENTED_EDGE('',*,*,#1741,.F.); +#1159=ORIENTED_EDGE('',*,*,#1726,.T.); +#1160=ORIENTED_EDGE('',*,*,#1711,.T.); +#1161=ORIENTED_EDGE('',*,*,#1696,.T.); +#1162=ORIENTED_EDGE('',*,*,#1672,.T.); +#1163=ORIENTED_EDGE('',*,*,#1842,.T.); +#1164=ORIENTED_EDGE('',*,*,#1418,.T.); +#1165=ORIENTED_EDGE('',*,*,#1782,.F.); +#1166=ORIENTED_EDGE('',*,*,#1767,.T.); +#1167=ORIENTED_EDGE('',*,*,#1752,.T.); +#1168=ORIENTED_EDGE('',*,*,#1737,.F.); +#1169=ORIENTED_EDGE('',*,*,#1722,.T.); +#1170=ORIENTED_EDGE('',*,*,#1707,.T.); +#1171=ORIENTED_EDGE('',*,*,#1692,.T.); +#1172=ORIENTED_EDGE('',*,*,#1676,.T.); +#1173=ORIENTED_EDGE('',*,*,#1695,.T.); +#1174=ORIENTED_EDGE('',*,*,#1710,.T.); +#1175=ORIENTED_EDGE('',*,*,#1725,.T.); +#1176=ORIENTED_EDGE('',*,*,#1740,.F.); +#1177=ORIENTED_EDGE('',*,*,#1755,.T.); +#1178=ORIENTED_EDGE('',*,*,#1770,.T.); +#1179=ORIENTED_EDGE('',*,*,#1784,.F.); +#1180=ORIENTED_EDGE('',*,*,#1420,.T.); +#1181=ORIENTED_EDGE('',*,*,#1841,.F.); +#1182=ORIENTED_EDGE('',*,*,#1458,.T.); +#1183=ORIENTED_EDGE('',*,*,#1590,.T.); +#1184=ORIENTED_EDGE('',*,*,#1579,.T.); +#1185=ORIENTED_EDGE('',*,*,#1564,.T.); +#1186=ORIENTED_EDGE('',*,*,#1548,.T.); +#1187=ORIENTED_EDGE('',*,*,#1866,.F.); +#1188=ORIENTED_EDGE('',*,*,#1460,.T.); +#1189=ORIENTED_EDGE('',*,*,#1865,.T.); +#1190=ORIENTED_EDGE('',*,*,#1546,.T.); +#1191=ORIENTED_EDGE('',*,*,#1563,.T.); +#1192=ORIENTED_EDGE('',*,*,#1578,.T.); +#1193=ORIENTED_EDGE('',*,*,#1589,.T.); +#1194=ORIENTED_EDGE('',*,*,#1462,.T.); +#1195=ORIENTED_EDGE('',*,*,#1588,.T.); +#1196=ORIENTED_EDGE('',*,*,#1576,.T.); +#1197=ORIENTED_EDGE('',*,*,#1561,.T.); +#1198=ORIENTED_EDGE('',*,*,#1544,.T.); +#1199=ORIENTED_EDGE('',*,*,#1864,.F.); +#1200=ORIENTED_EDGE('',*,*,#1464,.T.); +#1201=ORIENTED_EDGE('',*,*,#1863,.T.); +#1202=ORIENTED_EDGE('',*,*,#1542,.T.); +#1203=ORIENTED_EDGE('',*,*,#1560,.T.); +#1204=ORIENTED_EDGE('',*,*,#1575,.T.); +#1205=ORIENTED_EDGE('',*,*,#1587,.T.); +#1206=ORIENTED_EDGE('',*,*,#1466,.T.); +#1207=ORIENTED_EDGE('',*,*,#1586,.T.); +#1208=ORIENTED_EDGE('',*,*,#1573,.T.); +#1209=ORIENTED_EDGE('',*,*,#1558,.T.); +#1210=ORIENTED_EDGE('',*,*,#1540,.T.); +#1211=ORIENTED_EDGE('',*,*,#1862,.F.); +#1212=ORIENTED_EDGE('',*,*,#1468,.T.); +#1213=ORIENTED_EDGE('',*,*,#1861,.T.); +#1214=ORIENTED_EDGE('',*,*,#1538,.T.); +#1215=ORIENTED_EDGE('',*,*,#1557,.T.); +#1216=ORIENTED_EDGE('',*,*,#1572,.T.); +#1217=ORIENTED_EDGE('',*,*,#1585,.T.); +#1218=ORIENTED_EDGE('',*,*,#1470,.T.); +#1219=ORIENTED_EDGE('',*,*,#1584,.T.); +#1220=ORIENTED_EDGE('',*,*,#1570,.T.); +#1221=ORIENTED_EDGE('',*,*,#1555,.T.); +#1222=ORIENTED_EDGE('',*,*,#1536,.T.); +#1223=ORIENTED_EDGE('',*,*,#1860,.F.); +#1224=ORIENTED_EDGE('',*,*,#1436,.T.); +#1225=ORIENTED_EDGE('',*,*,#1859,.T.); +#1226=ORIENTED_EDGE('',*,*,#1532,.T.); +#1227=ORIENTED_EDGE('',*,*,#1552,.T.); +#1228=ORIENTED_EDGE('',*,*,#1567,.T.); +#1229=ORIENTED_EDGE('',*,*,#1582,.T.); +#1230=ORIENTED_EDGE('',*,*,#1414,.T.); +#1231=ORIENTED_EDGE('',*,*,#1850,.F.); +#1232=ORIENTED_EDGE('',*,*,#1529,.T.); +#1233=ORIENTED_EDGE('',*,*,#1514,.T.); +#1234=ORIENTED_EDGE('',*,*,#1499,.T.); +#1235=ORIENTED_EDGE('',*,*,#1484,.T.); +#1236=ORIENTED_EDGE('',*,*,#1412,.T.); +#1237=ORIENTED_EDGE('',*,*,#1483,.T.); +#1238=ORIENTED_EDGE('',*,*,#1498,.T.); +#1239=ORIENTED_EDGE('',*,*,#1513,.T.); +#1240=ORIENTED_EDGE('',*,*,#1528,.T.); +#1241=ORIENTED_EDGE('',*,*,#1851,.T.); +#1242=ORIENTED_EDGE('',*,*,#1410,.T.); +#1243=ORIENTED_EDGE('',*,*,#1852,.F.); +#1244=ORIENTED_EDGE('',*,*,#1526,.T.); +#1245=ORIENTED_EDGE('',*,*,#1511,.T.); +#1246=ORIENTED_EDGE('',*,*,#1496,.T.); +#1247=ORIENTED_EDGE('',*,*,#1481,.T.); +#1248=ORIENTED_EDGE('',*,*,#1408,.T.); +#1249=ORIENTED_EDGE('',*,*,#1480,.T.); +#1250=ORIENTED_EDGE('',*,*,#1495,.T.); +#1251=ORIENTED_EDGE('',*,*,#1510,.T.); +#1252=ORIENTED_EDGE('',*,*,#1525,.T.); +#1253=ORIENTED_EDGE('',*,*,#1853,.T.); +#1254=ORIENTED_EDGE('',*,*,#1406,.T.); +#1255=ORIENTED_EDGE('',*,*,#1854,.F.); +#1256=ORIENTED_EDGE('',*,*,#1523,.T.); +#1257=ORIENTED_EDGE('',*,*,#1508,.T.); +#1258=ORIENTED_EDGE('',*,*,#1493,.T.); +#1259=ORIENTED_EDGE('',*,*,#1478,.T.); +#1260=ORIENTED_EDGE('',*,*,#1404,.T.); +#1261=ORIENTED_EDGE('',*,*,#1477,.T.); +#1262=ORIENTED_EDGE('',*,*,#1492,.T.); +#1263=ORIENTED_EDGE('',*,*,#1507,.T.); +#1264=ORIENTED_EDGE('',*,*,#1522,.T.); +#1265=ORIENTED_EDGE('',*,*,#1855,.T.); +#1266=ORIENTED_EDGE('',*,*,#1400,.T.); +#1267=ORIENTED_EDGE('',*,*,#1472,.T.); +#1268=ORIENTED_EDGE('',*,*,#1487,.T.); +#1269=ORIENTED_EDGE('',*,*,#1502,.T.); +#1270=ORIENTED_EDGE('',*,*,#1517,.T.); +#1271=ORIENTED_EDGE('',*,*,#1857,.T.); +#1272=ORIENTED_EDGE('',*,*,#1402,.T.); +#1273=ORIENTED_EDGE('',*,*,#1856,.F.); +#1274=ORIENTED_EDGE('',*,*,#1520,.T.); +#1275=ORIENTED_EDGE('',*,*,#1505,.T.); +#1276=ORIENTED_EDGE('',*,*,#1490,.T.); +#1277=ORIENTED_EDGE('',*,*,#1475,.T.); +#1278=EDGE_CURVE('',#1868,#1869,#2260,.T.); +#1279=EDGE_CURVE('',#1869,#1870,#2261,.T.); +#1280=EDGE_CURVE('',#1871,#1870,#2262,.T.); +#1281=EDGE_CURVE('',#1868,#1871,#2263,.T.); +#1282=EDGE_CURVE('',#1872,#1873,#2264,.T.); +#1283=EDGE_CURVE('',#1874,#1872,#2265,.T.); +#1284=EDGE_CURVE('',#1875,#1874,#2266,.T.); +#1285=EDGE_CURVE('',#1873,#1875,#2267,.T.); +#1286=EDGE_CURVE('',#1876,#1877,#2268,.T.); +#1287=EDGE_CURVE('',#1878,#1877,#2269,.T.); +#1288=EDGE_CURVE('',#1879,#1878,#2270,.T.); +#1289=EDGE_CURVE('',#1879,#1876,#2271,.T.); +#1290=EDGE_CURVE('',#1880,#1881,#2272,.T.); +#1291=EDGE_CURVE('',#1881,#1869,#2273,.T.); +#1292=EDGE_CURVE('',#1882,#1868,#2274,.T.); +#1293=EDGE_CURVE('',#1883,#1882,#2275,.T.); +#1294=EDGE_CURVE('',#1884,#1883,#2276,.T.); +#1295=EDGE_CURVE('',#1884,#1885,#2277,.T.); +#1296=EDGE_CURVE('',#1886,#1885,#2278,.T.); +#1297=EDGE_CURVE('',#1886,#1887,#2279,.T.); +#1298=EDGE_CURVE('',#1888,#1887,#2280,.T.); +#1299=EDGE_CURVE('',#1889,#1888,#2281,.T.); +#1300=EDGE_CURVE('',#1890,#1889,#2282,.T.); +#1301=EDGE_CURVE('',#1891,#1890,#2283,.T.); +#1302=EDGE_CURVE('',#1892,#1891,#2284,.T.); +#1303=EDGE_CURVE('',#1893,#1892,#2285,.T.); +#1304=EDGE_CURVE('',#1894,#1893,#2286,.T.); +#1305=EDGE_CURVE('',#1894,#1895,#2287,.T.); +#1306=EDGE_CURVE('',#1895,#1896,#2288,.T.); +#1307=EDGE_CURVE('',#1896,#1897,#2289,.T.); +#1308=EDGE_CURVE('',#1897,#1898,#2290,.T.); +#1309=EDGE_CURVE('',#1898,#1879,#2291,.T.); +#1310=EDGE_CURVE('',#1878,#1899,#2292,.T.); +#1311=EDGE_CURVE('',#1899,#1900,#2293,.T.); +#1312=EDGE_CURVE('',#1900,#1872,#2294,.T.); +#1313=EDGE_CURVE('',#1901,#1873,#2295,.T.); +#1314=EDGE_CURVE('',#1901,#1880,#2296,.T.); +#1315=EDGE_CURVE('',#1882,#1902,#2297,.T.); +#1316=EDGE_CURVE('',#1871,#1903,#2298,.T.); +#1317=EDGE_CURVE('',#1904,#1903,#2299,.T.); +#1318=EDGE_CURVE('',#1905,#1904,#2300,.T.); +#1319=EDGE_CURVE('',#1905,#1906,#2301,.T.); +#1320=EDGE_CURVE('',#1906,#1907,#2302,.T.); +#1321=EDGE_CURVE('',#1907,#1894,#2303,.T.); +#1322=EDGE_CURVE('',#1908,#1893,#2304,.T.); +#1323=EDGE_CURVE('',#1909,#1908,#2305,.T.); +#1324=EDGE_CURVE('',#1886,#1909,#2306,.T.); +#1325=EDGE_CURVE('',#1902,#1885,#2307,.T.); +#1326=EDGE_CURVE('',#1887,#1910,#2308,.T.); +#1327=EDGE_CURVE('',#1911,#1910,#2309,.T.); +#1328=EDGE_CURVE('',#1888,#1911,#2310,.T.); +#1329=EDGE_CURVE('',#1912,#1913,#2311,.T.); +#1330=EDGE_CURVE('',#1912,#1892,#2312,.T.); +#1331=EDGE_CURVE('',#1891,#1913,#2313,.T.); +#1332=EDGE_CURVE('',#1914,#1870,#2314,.T.); +#1333=EDGE_CURVE('',#1915,#1914,#2315,.T.); +#1334=EDGE_CURVE('',#1916,#1915,#2316,.T.); +#1335=EDGE_CURVE('',#1916,#1875,#2317,.T.); +#1336=EDGE_CURVE('',#1903,#1874,#2318,.T.); +#1337=EDGE_CURVE('',#1916,#1901,#2319,.T.); +#1338=EDGE_CURVE('',#1906,#1917,#2320,.T.); +#1339=EDGE_CURVE('',#1917,#1918,#2321,.T.); +#1340=EDGE_CURVE('',#1907,#1918,#2322,.T.); +#1341=EDGE_CURVE('',#1918,#1895,#2323,.T.); +#1342=EDGE_CURVE('',#1917,#1896,#2324,.T.); +#1343=EDGE_CURVE('',#1919,#1904,#2325,.T.); +#1344=EDGE_CURVE('',#1920,#1919,#2326,.T.); +#1345=EDGE_CURVE('',#1920,#1905,#2327,.T.); +#1346=EDGE_CURVE('',#1921,#1922,#2328,.T.); +#1347=EDGE_CURVE('',#1877,#1921,#2329,.T.); +#1348=EDGE_CURVE('',#1923,#1876,#2330,.T.); +#1349=EDGE_CURVE('',#1924,#1923,#2331,.T.); +#1350=EDGE_CURVE('',#1924,#1925,#2332,.T.); +#1351=EDGE_CURVE('',#1925,#1926,#2333,.T.); +#1352=EDGE_CURVE('',#1922,#1926,#2334,.T.); +#1353=EDGE_CURVE('',#1926,#1919,#2335,.T.); +#1354=EDGE_CURVE('',#1925,#1920,#2336,.T.); +#1355=EDGE_CURVE('',#1897,#1924,#2337,.T.); +#1356=EDGE_CURVE('',#1900,#1922,#2338,.T.); +#1357=EDGE_CURVE('',#1927,#1928,#2339,.T.); +#1358=EDGE_CURVE('',#1890,#1927,#2340,.T.); +#1359=EDGE_CURVE('',#1889,#1928,#2341,.T.); +#1360=EDGE_CURVE('',#1928,#1911,#2342,.T.); +#1361=EDGE_CURVE('',#1913,#1927,#2343,.T.); +#1362=EDGE_CURVE('',#1910,#1929,#2344,.T.); +#1363=EDGE_CURVE('',#1909,#1929,#2345,.T.); +#1364=EDGE_CURVE('',#1930,#1929,#2346,.T.); +#1365=EDGE_CURVE('',#1908,#1931,#2347,.T.); +#1366=EDGE_CURVE('',#1931,#1932,#2348,.T.); +#1367=EDGE_CURVE('',#1932,#1933,#2349,.T.); +#1368=EDGE_CURVE('',#1933,#1934,#2350,.T.); +#1369=EDGE_CURVE('',#1934,#1930,#2351,.T.); +#1370=EDGE_CURVE('',#1931,#1912,#2352,.T.); +#1371=EDGE_CURVE('',#1935,#1902,#2353,.T.); +#1372=EDGE_CURVE('',#1883,#1935,#2354,.T.); +#1373=EDGE_CURVE('',#1935,#1884,#2355,.T.); +#1374=EDGE_CURVE('',#1930,#1911,#2356,.T.); +#1375=EDGE_CURVE('',#1934,#1928,#2357,.T.); +#1376=EDGE_CURVE('',#1933,#1927,#2358,.T.); +#1377=EDGE_CURVE('',#1932,#1913,#2359,.T.); +#1378=EDGE_CURVE('',#1898,#1923,#2360,.T.); +#1379=EDGE_CURVE('',#1899,#1921,#2361,.T.); +#1380=EDGE_CURVE('',#1881,#1914,#2362,.T.); +#1381=EDGE_CURVE('',#1880,#1915,#2363,.T.); +#1382=EDGE_CURVE('',#1936,#1937,#2364,.T.); +#1383=EDGE_CURVE('',#1936,#1938,#2365,.T.); +#1384=EDGE_CURVE('',#1939,#1938,#2366,.T.); +#1385=EDGE_CURVE('',#1940,#1939,#2367,.T.); +#1386=EDGE_CURVE('',#1941,#1940,#2368,.T.); +#1387=EDGE_CURVE('',#1942,#1941,#2369,.T.); +#1388=EDGE_CURVE('',#1942,#1943,#2370,.T.); +#1389=EDGE_CURVE('',#1943,#1937,#2371,.T.); +#1390=EDGE_CURVE('',#1940,#1944,#2372,.T.); +#1391=EDGE_CURVE('',#1944,#1936,#2373,.T.); +#1392=EDGE_CURVE('',#1937,#1945,#2374,.T.); +#1393=EDGE_CURVE('',#1945,#1941,#2375,.T.); +#1394=EDGE_CURVE('',#1943,#1946,#2376,.T.); +#1395=EDGE_CURVE('',#1946,#1945,#2377,.T.); +#1396=EDGE_CURVE('',#1946,#1942,#2378,.T.); +#1397=EDGE_CURVE('',#1944,#1947,#2379,.T.); +#1398=EDGE_CURVE('',#1938,#1947,#2380,.T.); +#1399=EDGE_CURVE('',#1947,#1939,#2381,.T.); +#1400=EDGE_CURVE('',#1948,#1949,#2382,.T.); +#1401=EDGE_CURVE('',#1950,#1948,#2383,.T.); +#1402=EDGE_CURVE('',#1951,#1950,#2384,.T.); +#1403=EDGE_CURVE('',#1952,#1951,#2385,.T.); +#1404=EDGE_CURVE('',#1953,#1952,#2386,.T.); +#1405=EDGE_CURVE('',#1954,#1953,#2387,.T.); +#1406=EDGE_CURVE('',#1955,#1954,#2388,.T.); +#1407=EDGE_CURVE('',#1956,#1955,#2389,.T.); +#1408=EDGE_CURVE('',#1957,#1956,#2390,.T.); +#1409=EDGE_CURVE('',#1958,#1957,#2391,.T.); +#1410=EDGE_CURVE('',#1959,#1958,#2392,.T.); +#1411=EDGE_CURVE('',#1960,#1959,#2393,.T.); +#1412=EDGE_CURVE('',#1961,#1960,#2394,.T.); +#1413=EDGE_CURVE('',#1962,#1961,#2395,.T.); +#1414=EDGE_CURVE('',#1963,#1962,#2396,.T.); +#1415=EDGE_CURVE('',#1964,#1963,#2397,.T.); +#1416=EDGE_CURVE('',#1965,#1964,#2398,.T.); +#1417=EDGE_CURVE('',#1965,#1966,#2399,.T.); +#1418=EDGE_CURVE('',#1967,#1966,#2400,.T.); +#1419=EDGE_CURVE('',#1968,#1967,#2401,.T.); +#1420=EDGE_CURVE('',#1969,#1968,#2402,.T.); +#1421=EDGE_CURVE('',#1969,#1970,#2403,.T.); +#1422=EDGE_CURVE('',#1971,#1970,#2404,.T.); +#1423=EDGE_CURVE('',#1972,#1971,#2405,.T.); +#1424=EDGE_CURVE('',#1973,#1972,#2406,.T.); +#1425=EDGE_CURVE('',#1973,#1974,#2407,.T.); +#1426=EDGE_CURVE('',#1975,#1974,#2408,.T.); +#1427=EDGE_CURVE('',#1976,#1975,#2409,.T.); +#1428=EDGE_CURVE('',#1977,#1976,#2410,.T.); +#1429=EDGE_CURVE('',#1977,#1978,#2411,.T.); +#1430=EDGE_CURVE('',#1979,#1978,#2412,.T.); +#1431=EDGE_CURVE('',#1980,#1979,#2413,.T.); +#1432=EDGE_CURVE('',#1981,#1980,#2414,.T.); +#1433=EDGE_CURVE('',#1981,#1982,#2415,.T.); +#1434=EDGE_CURVE('',#1982,#1983,#2416,.T.); +#1435=EDGE_CURVE('',#1949,#1983,#2417,.T.); +#1436=EDGE_CURVE('',#1984,#1985,#2418,.T.); +#1437=EDGE_CURVE('',#1984,#1986,#2419,.T.); +#1438=EDGE_CURVE('',#1986,#1987,#2420,.T.); +#1439=EDGE_CURVE('',#1988,#1987,#2421,.T.); +#1440=EDGE_CURVE('',#1989,#1988,#2422,.T.); +#1441=EDGE_CURVE('',#1990,#1989,#2423,.T.); +#1442=EDGE_CURVE('',#1991,#1990,#2424,.T.); +#1443=EDGE_CURVE('',#1992,#1991,#2425,.T.); +#1444=EDGE_CURVE('',#1993,#1992,#2426,.T.); +#1445=EDGE_CURVE('',#1994,#1993,#2427,.T.); +#1446=EDGE_CURVE('',#1995,#1994,#2428,.T.); +#1447=EDGE_CURVE('',#1996,#1995,#2429,.T.); +#1448=EDGE_CURVE('',#1997,#1996,#2430,.T.); +#1449=EDGE_CURVE('',#1998,#1997,#2431,.T.); +#1450=EDGE_CURVE('',#1999,#1998,#2432,.T.); +#1451=EDGE_CURVE('',#2000,#1999,#2433,.T.); +#1452=EDGE_CURVE('',#2001,#2000,#2434,.T.); +#1453=EDGE_CURVE('',#2002,#2001,#2435,.T.); +#1454=EDGE_CURVE('',#2003,#2002,#2436,.T.); +#1455=EDGE_CURVE('',#2004,#2003,#2437,.T.); +#1456=EDGE_CURVE('',#2005,#2004,#2438,.T.); +#1457=EDGE_CURVE('',#2005,#2006,#2439,.T.); +#1458=EDGE_CURVE('',#2007,#2006,#2440,.T.); +#1459=EDGE_CURVE('',#2008,#2007,#2441,.T.); +#1460=EDGE_CURVE('',#2009,#2008,#2442,.T.); +#1461=EDGE_CURVE('',#2009,#2010,#2443,.T.); +#1462=EDGE_CURVE('',#2011,#2010,#2444,.T.); +#1463=EDGE_CURVE('',#2012,#2011,#2445,.T.); +#1464=EDGE_CURVE('',#2013,#2012,#2446,.T.); +#1465=EDGE_CURVE('',#2013,#2014,#2447,.T.); +#1466=EDGE_CURVE('',#2015,#2014,#2448,.T.); +#1467=EDGE_CURVE('',#2016,#2015,#2449,.T.); +#1468=EDGE_CURVE('',#2017,#2016,#2450,.T.); +#1469=EDGE_CURVE('',#2017,#2018,#2451,.T.); +#1470=EDGE_CURVE('',#2019,#2018,#2452,.T.); +#1471=EDGE_CURVE('',#1985,#2019,#2453,.T.); +#1472=EDGE_CURVE('',#1949,#2020,#2454,.T.); +#1473=EDGE_CURVE('',#1983,#2021,#2455,.T.); +#1474=EDGE_CURVE('',#2020,#2021,#2456,.T.); +#1475=EDGE_CURVE('',#2022,#1951,#2457,.T.); +#1476=EDGE_CURVE('',#2023,#2022,#2458,.T.); +#1477=EDGE_CURVE('',#1952,#2023,#2459,.T.); +#1478=EDGE_CURVE('',#2024,#1955,#2460,.T.); +#1479=EDGE_CURVE('',#2025,#2024,#2461,.T.); +#1480=EDGE_CURVE('',#1956,#2025,#2462,.T.); +#1481=EDGE_CURVE('',#2026,#1959,#2463,.T.); +#1482=EDGE_CURVE('',#2027,#2026,#2464,.T.); +#1483=EDGE_CURVE('',#1960,#2027,#2465,.T.); +#1484=EDGE_CURVE('',#2028,#1963,#2466,.T.); +#1485=EDGE_CURVE('',#2029,#2028,#2467,.T.); +#1486=EDGE_CURVE('',#1964,#2029,#2468,.T.); +#1487=EDGE_CURVE('',#2020,#2030,#2469,.T.); +#1488=EDGE_CURVE('',#2021,#2031,#2470,.T.); +#1489=EDGE_CURVE('',#2030,#2031,#2471,.T.); +#1490=EDGE_CURVE('',#2032,#2022,#2472,.T.); +#1491=EDGE_CURVE('',#2033,#2032,#2473,.T.); +#1492=EDGE_CURVE('',#2023,#2033,#2474,.T.); +#1493=EDGE_CURVE('',#2034,#2024,#2475,.T.); +#1494=EDGE_CURVE('',#2035,#2034,#2476,.T.); +#1495=EDGE_CURVE('',#2025,#2035,#2477,.T.); +#1496=EDGE_CURVE('',#2036,#2026,#2478,.T.); +#1497=EDGE_CURVE('',#2037,#2036,#2479,.T.); +#1498=EDGE_CURVE('',#2027,#2037,#2480,.T.); +#1499=EDGE_CURVE('',#2038,#2028,#2481,.T.); +#1500=EDGE_CURVE('',#2039,#2038,#2482,.T.); +#1501=EDGE_CURVE('',#2029,#2039,#2483,.T.); +#1502=EDGE_CURVE('',#2030,#2040,#2484,.T.); +#1503=EDGE_CURVE('',#2031,#2041,#2485,.T.); +#1504=EDGE_CURVE('',#2040,#2041,#2486,.T.); +#1505=EDGE_CURVE('',#2042,#2032,#2487,.T.); +#1506=EDGE_CURVE('',#2043,#2042,#2488,.T.); +#1507=EDGE_CURVE('',#2033,#2043,#2489,.T.); +#1508=EDGE_CURVE('',#2044,#2034,#2490,.T.); +#1509=EDGE_CURVE('',#2045,#2044,#2491,.T.); +#1510=EDGE_CURVE('',#2035,#2045,#2492,.T.); +#1511=EDGE_CURVE('',#2046,#2036,#2493,.T.); +#1512=EDGE_CURVE('',#2047,#2046,#2494,.T.); +#1513=EDGE_CURVE('',#2037,#2047,#2495,.T.); +#1514=EDGE_CURVE('',#2048,#2038,#2496,.T.); +#1515=EDGE_CURVE('',#2049,#2048,#2497,.T.); +#1516=EDGE_CURVE('',#2039,#2049,#2498,.T.); +#1517=EDGE_CURVE('',#2040,#2050,#2499,.T.); +#1518=EDGE_CURVE('',#2041,#2051,#2500,.T.); +#1519=EDGE_CURVE('',#2050,#2051,#2501,.T.); +#1520=EDGE_CURVE('',#2052,#2042,#2502,.T.); +#1521=EDGE_CURVE('',#2053,#2052,#2503,.T.); +#1522=EDGE_CURVE('',#2043,#2053,#2504,.T.); +#1523=EDGE_CURVE('',#2054,#2044,#2505,.T.); +#1524=EDGE_CURVE('',#2055,#2054,#2506,.T.); +#1525=EDGE_CURVE('',#2045,#2055,#2507,.T.); +#1526=EDGE_CURVE('',#2056,#2046,#2508,.T.); +#1527=EDGE_CURVE('',#2057,#2056,#2509,.T.); +#1528=EDGE_CURVE('',#2047,#2057,#2510,.T.); +#1529=EDGE_CURVE('',#2058,#2048,#2511,.T.); +#1530=EDGE_CURVE('',#2059,#2058,#2512,.T.); +#1531=EDGE_CURVE('',#2049,#2059,#2513,.T.); +#1532=EDGE_CURVE('',#2060,#2061,#2514,.T.); +#1533=EDGE_CURVE('',#2060,#2062,#2515,.T.); +#1534=EDGE_CURVE('',#2062,#2063,#2516,.T.); +#1535=EDGE_CURVE('',#2061,#2063,#2517,.T.); +#1536=EDGE_CURVE('',#2064,#2065,#2518,.T.); +#1537=EDGE_CURVE('',#2066,#2064,#2519,.T.); +#1538=EDGE_CURVE('',#2067,#2066,#2520,.T.); +#1539=EDGE_CURVE('',#2067,#2065,#2521,.T.); +#1540=EDGE_CURVE('',#2068,#2069,#2522,.T.); +#1541=EDGE_CURVE('',#2070,#2068,#2523,.T.); +#1542=EDGE_CURVE('',#2071,#2070,#2524,.T.); +#1543=EDGE_CURVE('',#2071,#2069,#2525,.T.); +#1544=EDGE_CURVE('',#2072,#2073,#2526,.T.); +#1545=EDGE_CURVE('',#2074,#2072,#2527,.T.); +#1546=EDGE_CURVE('',#2075,#2074,#2528,.T.); +#1547=EDGE_CURVE('',#2075,#2073,#2529,.T.); +#1548=EDGE_CURVE('',#2076,#2077,#2530,.T.); +#1549=EDGE_CURVE('',#2078,#2076,#2531,.T.); +#1550=EDGE_CURVE('',#2079,#2078,#2532,.T.); +#1551=EDGE_CURVE('',#2079,#2077,#2533,.T.); +#1552=EDGE_CURVE('',#2061,#2080,#2534,.T.); +#1553=EDGE_CURVE('',#2063,#2081,#2535,.T.); +#1554=EDGE_CURVE('',#2080,#2081,#2536,.T.); +#1555=EDGE_CURVE('',#2082,#2064,#2537,.T.); +#1556=EDGE_CURVE('',#2083,#2082,#2538,.T.); +#1557=EDGE_CURVE('',#2066,#2083,#2539,.T.); +#1558=EDGE_CURVE('',#2084,#2068,#2540,.T.); +#1559=EDGE_CURVE('',#2085,#2084,#2541,.T.); +#1560=EDGE_CURVE('',#2070,#2085,#2542,.T.); +#1561=EDGE_CURVE('',#2086,#2072,#2543,.T.); +#1562=EDGE_CURVE('',#2087,#2086,#2544,.T.); +#1563=EDGE_CURVE('',#2074,#2087,#2545,.T.); +#1564=EDGE_CURVE('',#2088,#2076,#2546,.T.); +#1565=EDGE_CURVE('',#2089,#2088,#2547,.T.); +#1566=EDGE_CURVE('',#2078,#2089,#2548,.T.); +#1567=EDGE_CURVE('',#2080,#2090,#2549,.T.); +#1568=EDGE_CURVE('',#2081,#2091,#2550,.T.); +#1569=EDGE_CURVE('',#2090,#2091,#2551,.T.); +#1570=EDGE_CURVE('',#2092,#2082,#2552,.T.); +#1571=EDGE_CURVE('',#2093,#2092,#2553,.T.); +#1572=EDGE_CURVE('',#2083,#2093,#2554,.T.); +#1573=EDGE_CURVE('',#2094,#2084,#2555,.T.); +#1574=EDGE_CURVE('',#2095,#2094,#2556,.T.); +#1575=EDGE_CURVE('',#2085,#2095,#2557,.T.); +#1576=EDGE_CURVE('',#2096,#2086,#2558,.T.); +#1577=EDGE_CURVE('',#2097,#2096,#2559,.T.); +#1578=EDGE_CURVE('',#2087,#2097,#2560,.T.); +#1579=EDGE_CURVE('',#2098,#2088,#2561,.T.); +#1580=EDGE_CURVE('',#2099,#2098,#2562,.T.); +#1581=EDGE_CURVE('',#2089,#2099,#2563,.T.); +#1582=EDGE_CURVE('',#2090,#1984,#2564,.T.); +#1583=EDGE_CURVE('',#2091,#1986,#2565,.T.); +#1584=EDGE_CURVE('',#2018,#2092,#2566,.T.); +#1585=EDGE_CURVE('',#2093,#2017,#2567,.T.); +#1586=EDGE_CURVE('',#2014,#2094,#2568,.T.); +#1587=EDGE_CURVE('',#2095,#2013,#2569,.T.); +#1588=EDGE_CURVE('',#2010,#2096,#2570,.T.); +#1589=EDGE_CURVE('',#2097,#2009,#2571,.T.); +#1590=EDGE_CURVE('',#2006,#2098,#2572,.T.); +#1591=EDGE_CURVE('',#2099,#2005,#2573,.T.); +#1592=EDGE_CURVE('',#2100,#2101,#2574,.T.); +#1593=EDGE_CURVE('',#2102,#2100,#2575,.T.); +#1594=EDGE_CURVE('',#2103,#2102,#2576,.T.); +#1595=EDGE_CURVE('',#2103,#2101,#2577,.T.); +#1596=EDGE_CURVE('',#2104,#2105,#2578,.T.); +#1597=EDGE_CURVE('',#2104,#2106,#2579,.T.); +#1598=EDGE_CURVE('',#2107,#2106,#2580,.T.); +#1599=EDGE_CURVE('',#2105,#2107,#2581,.T.); +#1600=EDGE_CURVE('',#2108,#2109,#2582,.T.); +#1601=EDGE_CURVE('',#2108,#2110,#2583,.T.); +#1602=EDGE_CURVE('',#2111,#2110,#2584,.T.); +#1603=EDGE_CURVE('',#2109,#2111,#2585,.T.); +#1604=EDGE_CURVE('',#2112,#2113,#2586,.T.); +#1605=EDGE_CURVE('',#2112,#2114,#2587,.T.); +#1606=EDGE_CURVE('',#2115,#2114,#2588,.T.); +#1607=EDGE_CURVE('',#2113,#2115,#2589,.T.); +#1608=EDGE_CURVE('',#2116,#2117,#2590,.T.); +#1609=EDGE_CURVE('',#2116,#2118,#2591,.T.); +#1610=EDGE_CURVE('',#2118,#2119,#2592,.T.); +#1611=EDGE_CURVE('',#2117,#2119,#2593,.T.); +#1612=EDGE_CURVE('',#2120,#2100,#2594,.T.); +#1613=EDGE_CURVE('',#2121,#2120,#2595,.T.); +#1614=EDGE_CURVE('',#2102,#2121,#2596,.T.); +#1615=EDGE_CURVE('',#2105,#2122,#2597,.T.); +#1616=EDGE_CURVE('',#2123,#2107,#2598,.T.); +#1617=EDGE_CURVE('',#2122,#2123,#2599,.T.); +#1618=EDGE_CURVE('',#2109,#2124,#2600,.T.); +#1619=EDGE_CURVE('',#2125,#2111,#2601,.T.); +#1620=EDGE_CURVE('',#2124,#2125,#2602,.T.); +#1621=EDGE_CURVE('',#2113,#2126,#2603,.T.); +#1622=EDGE_CURVE('',#2127,#2115,#2604,.T.); +#1623=EDGE_CURVE('',#2126,#2127,#2605,.T.); +#1624=EDGE_CURVE('',#2117,#2128,#2606,.T.); +#1625=EDGE_CURVE('',#2119,#2129,#2607,.T.); +#1626=EDGE_CURVE('',#2128,#2129,#2608,.T.); +#1627=EDGE_CURVE('',#2130,#2120,#2609,.T.); +#1628=EDGE_CURVE('',#2131,#2130,#2610,.T.); +#1629=EDGE_CURVE('',#2121,#2131,#2611,.T.); +#1630=EDGE_CURVE('',#2122,#2132,#2612,.T.); +#1631=EDGE_CURVE('',#2133,#2123,#2613,.T.); +#1632=EDGE_CURVE('',#2132,#2133,#2614,.T.); +#1633=EDGE_CURVE('',#2124,#2134,#2615,.T.); +#1634=EDGE_CURVE('',#2135,#2125,#2616,.T.); +#1635=EDGE_CURVE('',#2134,#2135,#2617,.T.); +#1636=EDGE_CURVE('',#2126,#2136,#2618,.T.); +#1637=EDGE_CURVE('',#2137,#2127,#2619,.T.); +#1638=EDGE_CURVE('',#2136,#2137,#2620,.T.); +#1639=EDGE_CURVE('',#2128,#2138,#2621,.T.); +#1640=EDGE_CURVE('',#2129,#2139,#2622,.T.); +#1641=EDGE_CURVE('',#2138,#2139,#2623,.T.); +#1642=EDGE_CURVE('',#2140,#2130,#18,.T.); +#1643=EDGE_CURVE('',#2141,#2140,#2624,.T.); +#1644=EDGE_CURVE('',#2131,#2141,#19,.T.); +#1645=EDGE_CURVE('',#2132,#2142,#20,.T.); +#1646=EDGE_CURVE('',#2143,#2133,#21,.T.); +#1647=EDGE_CURVE('',#2142,#2143,#2625,.T.); +#1648=EDGE_CURVE('',#2134,#2144,#22,.T.); +#1649=EDGE_CURVE('',#2145,#2135,#23,.T.); +#1650=EDGE_CURVE('',#2144,#2145,#2626,.T.); +#1651=EDGE_CURVE('',#2136,#2146,#24,.T.); +#1652=EDGE_CURVE('',#2147,#2137,#25,.T.); +#1653=EDGE_CURVE('',#2146,#2147,#2627,.T.); +#1654=EDGE_CURVE('',#2138,#2148,#26,.T.); +#1655=EDGE_CURVE('',#2139,#2149,#27,.T.); +#1656=EDGE_CURVE('',#2148,#2149,#2628,.T.); +#1657=EDGE_CURVE('',#2150,#2140,#2629,.T.); +#1658=EDGE_CURVE('',#2151,#2150,#2630,.T.); +#1659=EDGE_CURVE('',#2141,#2151,#2631,.T.); +#1660=EDGE_CURVE('',#2142,#2152,#2632,.T.); +#1661=EDGE_CURVE('',#2153,#2143,#2633,.T.); +#1662=EDGE_CURVE('',#2152,#2153,#2634,.T.); +#1663=EDGE_CURVE('',#2144,#2154,#2635,.T.); +#1664=EDGE_CURVE('',#2155,#2145,#2636,.T.); +#1665=EDGE_CURVE('',#2154,#2155,#2637,.T.); +#1666=EDGE_CURVE('',#2146,#2156,#2638,.T.); +#1667=EDGE_CURVE('',#2157,#2147,#2639,.T.); +#1668=EDGE_CURVE('',#2156,#2157,#2640,.T.); +#1669=EDGE_CURVE('',#2148,#2158,#2641,.T.); +#1670=EDGE_CURVE('',#2149,#2159,#2642,.T.); +#1671=EDGE_CURVE('',#2158,#2159,#2643,.T.); +#1672=EDGE_CURVE('',#2160,#2161,#2644,.T.); +#1673=EDGE_CURVE('',#2162,#2160,#2645,.T.); +#1674=EDGE_CURVE('',#2163,#2162,#2646,.T.); +#1675=EDGE_CURVE('',#2163,#2161,#2647,.T.); +#1676=EDGE_CURVE('',#2164,#2165,#2648,.T.); +#1677=EDGE_CURVE('',#2164,#2166,#2649,.T.); +#1678=EDGE_CURVE('',#2167,#2166,#2650,.T.); +#1679=EDGE_CURVE('',#2165,#2167,#2651,.T.); +#1680=EDGE_CURVE('',#2168,#2169,#2652,.T.); +#1681=EDGE_CURVE('',#2168,#2170,#2653,.T.); +#1682=EDGE_CURVE('',#2171,#2170,#2654,.T.); +#1683=EDGE_CURVE('',#2169,#2171,#2655,.T.); +#1684=EDGE_CURVE('',#2172,#2173,#2656,.T.); +#1685=EDGE_CURVE('',#2172,#2174,#2657,.T.); +#1686=EDGE_CURVE('',#2175,#2174,#2658,.T.); +#1687=EDGE_CURVE('',#2173,#2175,#2659,.T.); +#1688=EDGE_CURVE('',#2176,#2177,#2660,.T.); +#1689=EDGE_CURVE('',#2176,#2178,#2661,.T.); +#1690=EDGE_CURVE('',#2178,#2179,#2662,.T.); +#1691=EDGE_CURVE('',#2177,#2179,#2663,.T.); +#1692=EDGE_CURVE('',#2180,#2160,#28,.T.); +#1693=EDGE_CURVE('',#2181,#2180,#2664,.T.); +#1694=EDGE_CURVE('',#2162,#2181,#29,.T.); +#1695=EDGE_CURVE('',#2165,#2182,#30,.T.); +#1696=EDGE_CURVE('',#2183,#2167,#31,.T.); +#1697=EDGE_CURVE('',#2182,#2183,#2665,.T.); +#1698=EDGE_CURVE('',#2169,#2184,#32,.T.); +#1699=EDGE_CURVE('',#2185,#2171,#33,.T.); +#1700=EDGE_CURVE('',#2184,#2185,#2666,.T.); +#1701=EDGE_CURVE('',#2173,#2186,#34,.T.); +#1702=EDGE_CURVE('',#2187,#2175,#35,.T.); +#1703=EDGE_CURVE('',#2186,#2187,#2667,.T.); +#1704=EDGE_CURVE('',#2177,#2188,#36,.T.); +#1705=EDGE_CURVE('',#2179,#2189,#37,.T.); +#1706=EDGE_CURVE('',#2188,#2189,#2668,.T.); +#1707=EDGE_CURVE('',#2190,#2180,#2669,.T.); +#1708=EDGE_CURVE('',#2191,#2190,#2670,.T.); +#1709=EDGE_CURVE('',#2181,#2191,#2671,.T.); +#1710=EDGE_CURVE('',#2182,#2192,#2672,.T.); +#1711=EDGE_CURVE('',#2193,#2183,#2673,.T.); +#1712=EDGE_CURVE('',#2192,#2193,#2674,.T.); +#1713=EDGE_CURVE('',#2184,#2194,#2675,.T.); +#1714=EDGE_CURVE('',#2195,#2185,#2676,.T.); +#1715=EDGE_CURVE('',#2194,#2195,#2677,.T.); +#1716=EDGE_CURVE('',#2186,#2196,#2678,.T.); +#1717=EDGE_CURVE('',#2197,#2187,#2679,.T.); +#1718=EDGE_CURVE('',#2196,#2197,#2680,.T.); +#1719=EDGE_CURVE('',#2188,#2198,#2681,.T.); +#1720=EDGE_CURVE('',#2189,#2199,#2682,.T.); +#1721=EDGE_CURVE('',#2198,#2199,#2683,.T.); +#1722=EDGE_CURVE('',#2200,#2190,#2684,.T.); +#1723=EDGE_CURVE('',#2201,#2200,#2685,.T.); +#1724=EDGE_CURVE('',#2191,#2201,#2686,.T.); +#1725=EDGE_CURVE('',#2192,#2202,#2687,.T.); +#1726=EDGE_CURVE('',#2203,#2193,#2688,.T.); +#1727=EDGE_CURVE('',#2202,#2203,#2689,.T.); +#1728=EDGE_CURVE('',#2194,#2204,#2690,.T.); +#1729=EDGE_CURVE('',#2205,#2195,#2691,.T.); +#1730=EDGE_CURVE('',#2204,#2205,#2692,.T.); +#1731=EDGE_CURVE('',#2196,#2206,#2693,.T.); +#1732=EDGE_CURVE('',#2207,#2197,#2694,.T.); +#1733=EDGE_CURVE('',#2206,#2207,#2695,.T.); +#1734=EDGE_CURVE('',#2198,#2208,#2696,.T.); +#1735=EDGE_CURVE('',#2199,#2209,#2697,.T.); +#1736=EDGE_CURVE('',#2208,#2209,#2698,.T.); +#1737=EDGE_CURVE('',#2200,#2210,#2699,.T.); +#1738=EDGE_CURVE('',#2211,#2210,#2700,.T.); +#1739=EDGE_CURVE('',#2201,#2211,#2701,.T.); +#1740=EDGE_CURVE('',#2212,#2202,#2702,.T.); +#1741=EDGE_CURVE('',#2203,#2213,#2703,.T.); +#1742=EDGE_CURVE('',#2212,#2213,#2704,.T.); +#1743=EDGE_CURVE('',#2214,#2204,#2705,.T.); +#1744=EDGE_CURVE('',#2205,#2215,#2706,.T.); +#1745=EDGE_CURVE('',#2214,#2215,#2707,.T.); +#1746=EDGE_CURVE('',#2216,#2206,#2708,.T.); +#1747=EDGE_CURVE('',#2207,#2217,#2709,.T.); +#1748=EDGE_CURVE('',#2216,#2217,#2710,.T.); +#1749=EDGE_CURVE('',#2218,#2208,#2711,.T.); +#1750=EDGE_CURVE('',#2209,#2219,#2712,.T.); +#1751=EDGE_CURVE('',#2218,#2219,#2713,.T.); +#1752=EDGE_CURVE('',#2220,#2210,#2714,.T.); +#1753=EDGE_CURVE('',#2221,#2220,#2715,.T.); +#1754=EDGE_CURVE('',#2211,#2221,#2716,.T.); +#1755=EDGE_CURVE('',#2212,#2222,#2717,.T.); +#1756=EDGE_CURVE('',#2223,#2213,#2718,.T.); +#1757=EDGE_CURVE('',#2222,#2223,#2719,.T.); +#1758=EDGE_CURVE('',#2214,#2224,#2720,.T.); +#1759=EDGE_CURVE('',#2225,#2215,#2721,.T.); +#1760=EDGE_CURVE('',#2224,#2225,#2722,.T.); +#1761=EDGE_CURVE('',#2216,#2226,#2723,.T.); +#1762=EDGE_CURVE('',#2227,#2217,#2724,.T.); +#1763=EDGE_CURVE('',#2226,#2227,#2725,.T.); +#1764=EDGE_CURVE('',#2218,#2228,#2726,.T.); +#1765=EDGE_CURVE('',#2219,#2229,#2727,.T.); +#1766=EDGE_CURVE('',#2228,#2229,#2728,.T.); +#1767=EDGE_CURVE('',#2230,#2220,#2729,.T.); +#1768=EDGE_CURVE('',#2231,#2230,#2730,.T.); +#1769=EDGE_CURVE('',#2221,#2231,#2731,.T.); +#1770=EDGE_CURVE('',#2222,#2232,#2732,.T.); +#1771=EDGE_CURVE('',#2233,#2223,#2733,.T.); +#1772=EDGE_CURVE('',#2232,#2233,#2734,.T.); +#1773=EDGE_CURVE('',#2224,#2234,#2735,.T.); +#1774=EDGE_CURVE('',#2235,#2225,#2736,.T.); +#1775=EDGE_CURVE('',#2234,#2235,#2737,.T.); +#1776=EDGE_CURVE('',#2226,#2236,#2738,.T.); +#1777=EDGE_CURVE('',#2237,#2227,#2739,.T.); +#1778=EDGE_CURVE('',#2236,#2237,#2740,.T.); +#1779=EDGE_CURVE('',#2228,#2238,#2741,.T.); +#1780=EDGE_CURVE('',#2229,#2239,#2742,.T.); +#1781=EDGE_CURVE('',#2238,#2239,#2743,.T.); +#1782=EDGE_CURVE('',#2230,#1966,#38,.T.); +#1783=EDGE_CURVE('',#1965,#2231,#39,.T.); +#1784=EDGE_CURVE('',#1969,#2232,#40,.T.); +#1785=EDGE_CURVE('',#2233,#1970,#41,.T.); +#1786=EDGE_CURVE('',#1973,#2234,#42,.T.); +#1787=EDGE_CURVE('',#2235,#1974,#43,.T.); +#1788=EDGE_CURVE('',#1977,#2236,#44,.T.); +#1789=EDGE_CURVE('',#2237,#1978,#45,.T.); +#1790=EDGE_CURVE('',#1981,#2238,#46,.T.); +#1791=EDGE_CURVE('',#1982,#2239,#47,.T.); +#1792=EDGE_CURVE('',#2003,#2240,#48,.T.); +#1793=EDGE_CURVE('',#2241,#2240,#2744,.T.); +#1794=EDGE_CURVE('',#2241,#2004,#49,.T.); +#1795=EDGE_CURVE('',#2242,#2243,#2745,.T.); +#1796=EDGE_CURVE('',#2242,#2000,#50,.T.); +#1797=EDGE_CURVE('',#1999,#2243,#51,.T.); +#1798=EDGE_CURVE('',#2244,#2245,#2746,.T.); +#1799=EDGE_CURVE('',#2244,#1996,#52,.T.); +#1800=EDGE_CURVE('',#1995,#2245,#53,.T.); +#1801=EDGE_CURVE('',#2246,#2247,#2747,.T.); +#1802=EDGE_CURVE('',#2246,#1992,#54,.T.); +#1803=EDGE_CURVE('',#1991,#2247,#55,.T.); +#1804=EDGE_CURVE('',#2248,#2249,#2748,.T.); +#1805=EDGE_CURVE('',#2248,#1988,#56,.T.); +#1806=EDGE_CURVE('',#2249,#1987,#57,.T.); +#1807=EDGE_CURVE('',#2250,#2240,#2749,.T.); +#1808=EDGE_CURVE('',#2251,#2250,#2750,.T.); +#1809=EDGE_CURVE('',#2241,#2251,#2751,.T.); +#1810=EDGE_CURVE('',#2242,#2252,#2752,.T.); +#1811=EDGE_CURVE('',#2253,#2243,#2753,.T.); +#1812=EDGE_CURVE('',#2252,#2253,#2754,.T.); +#1813=EDGE_CURVE('',#2244,#2254,#2755,.T.); +#1814=EDGE_CURVE('',#2255,#2245,#2756,.T.); +#1815=EDGE_CURVE('',#2254,#2255,#2757,.T.); +#1816=EDGE_CURVE('',#2246,#2256,#2758,.T.); +#1817=EDGE_CURVE('',#2257,#2247,#2759,.T.); +#1818=EDGE_CURVE('',#2256,#2257,#2760,.T.); +#1819=EDGE_CURVE('',#2248,#2258,#2761,.T.); +#1820=EDGE_CURVE('',#2249,#2259,#2762,.T.); +#1821=EDGE_CURVE('',#2258,#2259,#2763,.T.); +#1822=EDGE_CURVE('',#2101,#2250,#2764,.T.); +#1823=EDGE_CURVE('',#2251,#2103,#2765,.T.); +#1824=EDGE_CURVE('',#2252,#2104,#2766,.T.); +#1825=EDGE_CURVE('',#2106,#2253,#2767,.T.); +#1826=EDGE_CURVE('',#2254,#2108,#2768,.T.); +#1827=EDGE_CURVE('',#2110,#2255,#2769,.T.); +#1828=EDGE_CURVE('',#2256,#2112,#2770,.T.); +#1829=EDGE_CURVE('',#2114,#2257,#2771,.T.); +#1830=EDGE_CURVE('',#2258,#2116,#2772,.T.); +#1831=EDGE_CURVE('',#2259,#2118,#2773,.T.); +#1832=EDGE_CURVE('',#1990,#2157,#2774,.T.); +#1833=EDGE_CURVE('',#1989,#2158,#2775,.T.); +#1834=EDGE_CURVE('',#2159,#2178,#2776,.T.); +#1835=EDGE_CURVE('',#2176,#1980,#2777,.T.); +#1836=EDGE_CURVE('',#2174,#1979,#2778,.T.); +#1837=EDGE_CURVE('',#2172,#1976,#2779,.T.); +#1838=EDGE_CURVE('',#2170,#1975,#2780,.T.); +#1839=EDGE_CURVE('',#2168,#1972,#2781,.T.); +#1840=EDGE_CURVE('',#2166,#1971,#2782,.T.); +#1841=EDGE_CURVE('',#2164,#1968,#2783,.T.); +#1842=EDGE_CURVE('',#2161,#1967,#2784,.T.); +#1843=EDGE_CURVE('',#2151,#2163,#2785,.T.); +#1844=EDGE_CURVE('',#2002,#2150,#2786,.T.); +#1845=EDGE_CURVE('',#2001,#2152,#2787,.T.); +#1846=EDGE_CURVE('',#1998,#2153,#2788,.T.); +#1847=EDGE_CURVE('',#1997,#2154,#2789,.T.); +#1848=EDGE_CURVE('',#1994,#2155,#2790,.T.); +#1849=EDGE_CURVE('',#1993,#2156,#2791,.T.); +#1850=EDGE_CURVE('',#2058,#1962,#2792,.T.); +#1851=EDGE_CURVE('',#2057,#1961,#2793,.T.); +#1852=EDGE_CURVE('',#2056,#1958,#2794,.T.); +#1853=EDGE_CURVE('',#2055,#1957,#2795,.T.); +#1854=EDGE_CURVE('',#2054,#1954,#2796,.T.); +#1855=EDGE_CURVE('',#2053,#1953,#2797,.T.); +#1856=EDGE_CURVE('',#2052,#1950,#2798,.T.); +#1857=EDGE_CURVE('',#2050,#1948,#2799,.T.); +#1858=EDGE_CURVE('',#2051,#2062,#2800,.T.); +#1859=EDGE_CURVE('',#1985,#2060,#2801,.T.); +#1860=EDGE_CURVE('',#2019,#2065,#2802,.T.); +#1861=EDGE_CURVE('',#2016,#2067,#2803,.T.); +#1862=EDGE_CURVE('',#2015,#2069,#2804,.T.); +#1863=EDGE_CURVE('',#2012,#2071,#2805,.T.); +#1864=EDGE_CURVE('',#2011,#2073,#2806,.T.); +#1865=EDGE_CURVE('',#2008,#2075,#2807,.T.); +#1866=EDGE_CURVE('',#2007,#2077,#2808,.T.); +#1867=EDGE_CURVE('',#2059,#2079,#2809,.T.); +#1868=VERTEX_POINT('',#5489); +#1869=VERTEX_POINT('',#5490); +#1870=VERTEX_POINT('',#5492); +#1871=VERTEX_POINT('',#5494); +#1872=VERTEX_POINT('',#5498); +#1873=VERTEX_POINT('',#5499); +#1874=VERTEX_POINT('',#5501); +#1875=VERTEX_POINT('',#5503); +#1876=VERTEX_POINT('',#5507); +#1877=VERTEX_POINT('',#5508); +#1878=VERTEX_POINT('',#5510); +#1879=VERTEX_POINT('',#5512); +#1880=VERTEX_POINT('',#5516); +#1881=VERTEX_POINT('',#5517); +#1882=VERTEX_POINT('',#5520); +#1883=VERTEX_POINT('',#5522); +#1884=VERTEX_POINT('',#5524); +#1885=VERTEX_POINT('',#5526); +#1886=VERTEX_POINT('',#5528); +#1887=VERTEX_POINT('',#5530); +#1888=VERTEX_POINT('',#5532); +#1889=VERTEX_POINT('',#5534); +#1890=VERTEX_POINT('',#5536); +#1891=VERTEX_POINT('',#5538); +#1892=VERTEX_POINT('',#5540); +#1893=VERTEX_POINT('',#5542); +#1894=VERTEX_POINT('',#5544); +#1895=VERTEX_POINT('',#5546); +#1896=VERTEX_POINT('',#5548); +#1897=VERTEX_POINT('',#5550); +#1898=VERTEX_POINT('',#5552); +#1899=VERTEX_POINT('',#5555); +#1900=VERTEX_POINT('',#5557); +#1901=VERTEX_POINT('',#5560); +#1902=VERTEX_POINT('',#5564); +#1903=VERTEX_POINT('',#5566); +#1904=VERTEX_POINT('',#5568); +#1905=VERTEX_POINT('',#5570); +#1906=VERTEX_POINT('',#5572); +#1907=VERTEX_POINT('',#5574); +#1908=VERTEX_POINT('',#5577); +#1909=VERTEX_POINT('',#5579); +#1910=VERTEX_POINT('',#5584); +#1911=VERTEX_POINT('',#5586); +#1912=VERTEX_POINT('',#5590); +#1913=VERTEX_POINT('',#5591); +#1914=VERTEX_POINT('',#5596); +#1915=VERTEX_POINT('',#5598); +#1916=VERTEX_POINT('',#5600); +#1917=VERTEX_POINT('',#5607); +#1918=VERTEX_POINT('',#5609); +#1919=VERTEX_POINT('',#5617); +#1920=VERTEX_POINT('',#5619); +#1921=VERTEX_POINT('',#5623); +#1922=VERTEX_POINT('',#5624); +#1923=VERTEX_POINT('',#5627); +#1924=VERTEX_POINT('',#5629); +#1925=VERTEX_POINT('',#5631); +#1926=VERTEX_POINT('',#5633); +#1927=VERTEX_POINT('',#5644); +#1928=VERTEX_POINT('',#5645); +#1929=VERTEX_POINT('',#5654); +#1930=VERTEX_POINT('',#5658); +#1931=VERTEX_POINT('',#5660); +#1932=VERTEX_POINT('',#5662); +#1933=VERTEX_POINT('',#5664); +#1934=VERTEX_POINT('',#5666); +#1935=VERTEX_POINT('',#5672); +#1936=VERTEX_POINT('',#5700); +#1937=VERTEX_POINT('',#5701); +#1938=VERTEX_POINT('',#5703); +#1939=VERTEX_POINT('',#5705); +#1940=VERTEX_POINT('',#5707); +#1941=VERTEX_POINT('',#5709); +#1942=VERTEX_POINT('',#5711); +#1943=VERTEX_POINT('',#5713); +#1944=VERTEX_POINT('',#5717); +#1945=VERTEX_POINT('',#5720); +#1946=VERTEX_POINT('',#5724); +#1947=VERTEX_POINT('',#5731); +#1948=VERTEX_POINT('',#5739); +#1949=VERTEX_POINT('',#5740); +#1950=VERTEX_POINT('',#5742); +#1951=VERTEX_POINT('',#5744); +#1952=VERTEX_POINT('',#5746); +#1953=VERTEX_POINT('',#5748); +#1954=VERTEX_POINT('',#5750); +#1955=VERTEX_POINT('',#5752); +#1956=VERTEX_POINT('',#5754); +#1957=VERTEX_POINT('',#5756); +#1958=VERTEX_POINT('',#5758); +#1959=VERTEX_POINT('',#5760); +#1960=VERTEX_POINT('',#5762); +#1961=VERTEX_POINT('',#5764); +#1962=VERTEX_POINT('',#5766); +#1963=VERTEX_POINT('',#5768); +#1964=VERTEX_POINT('',#5770); +#1965=VERTEX_POINT('',#5772); +#1966=VERTEX_POINT('',#5774); +#1967=VERTEX_POINT('',#5776); +#1968=VERTEX_POINT('',#5778); +#1969=VERTEX_POINT('',#5780); +#1970=VERTEX_POINT('',#5782); +#1971=VERTEX_POINT('',#5784); +#1972=VERTEX_POINT('',#5786); +#1973=VERTEX_POINT('',#5788); +#1974=VERTEX_POINT('',#5790); +#1975=VERTEX_POINT('',#5792); +#1976=VERTEX_POINT('',#5794); +#1977=VERTEX_POINT('',#5796); +#1978=VERTEX_POINT('',#5798); +#1979=VERTEX_POINT('',#5800); +#1980=VERTEX_POINT('',#5802); +#1981=VERTEX_POINT('',#5804); +#1982=VERTEX_POINT('',#5806); +#1983=VERTEX_POINT('',#5808); +#1984=VERTEX_POINT('',#5812); +#1985=VERTEX_POINT('',#5813); +#1986=VERTEX_POINT('',#5815); +#1987=VERTEX_POINT('',#5817); +#1988=VERTEX_POINT('',#5819); +#1989=VERTEX_POINT('',#5821); +#1990=VERTEX_POINT('',#5823); +#1991=VERTEX_POINT('',#5825); +#1992=VERTEX_POINT('',#5827); +#1993=VERTEX_POINT('',#5829); +#1994=VERTEX_POINT('',#5831); +#1995=VERTEX_POINT('',#5833); +#1996=VERTEX_POINT('',#5835); +#1997=VERTEX_POINT('',#5837); +#1998=VERTEX_POINT('',#5839); +#1999=VERTEX_POINT('',#5841); +#2000=VERTEX_POINT('',#5843); +#2001=VERTEX_POINT('',#5845); +#2002=VERTEX_POINT('',#5847); +#2003=VERTEX_POINT('',#5849); +#2004=VERTEX_POINT('',#5851); +#2005=VERTEX_POINT('',#5853); +#2006=VERTEX_POINT('',#5855); +#2007=VERTEX_POINT('',#5857); +#2008=VERTEX_POINT('',#5859); +#2009=VERTEX_POINT('',#5861); +#2010=VERTEX_POINT('',#5863); +#2011=VERTEX_POINT('',#5865); +#2012=VERTEX_POINT('',#5867); +#2013=VERTEX_POINT('',#5869); +#2014=VERTEX_POINT('',#5871); +#2015=VERTEX_POINT('',#5873); +#2016=VERTEX_POINT('',#5875); +#2017=VERTEX_POINT('',#5877); +#2018=VERTEX_POINT('',#5879); +#2019=VERTEX_POINT('',#5881); +#2020=VERTEX_POINT('',#5885); +#2021=VERTEX_POINT('',#5887); +#2022=VERTEX_POINT('',#5891); +#2023=VERTEX_POINT('',#5893); +#2024=VERTEX_POINT('',#5897); +#2025=VERTEX_POINT('',#5899); +#2026=VERTEX_POINT('',#5903); +#2027=VERTEX_POINT('',#5905); +#2028=VERTEX_POINT('',#5909); +#2029=VERTEX_POINT('',#5911); +#2030=VERTEX_POINT('',#5915); +#2031=VERTEX_POINT('',#5917); +#2032=VERTEX_POINT('',#5921); +#2033=VERTEX_POINT('',#5923); +#2034=VERTEX_POINT('',#5927); +#2035=VERTEX_POINT('',#5929); +#2036=VERTEX_POINT('',#5933); +#2037=VERTEX_POINT('',#5935); +#2038=VERTEX_POINT('',#5939); +#2039=VERTEX_POINT('',#5941); +#2040=VERTEX_POINT('',#5945); +#2041=VERTEX_POINT('',#5947); +#2042=VERTEX_POINT('',#5951); +#2043=VERTEX_POINT('',#5953); +#2044=VERTEX_POINT('',#5957); +#2045=VERTEX_POINT('',#5959); +#2046=VERTEX_POINT('',#5963); +#2047=VERTEX_POINT('',#5965); +#2048=VERTEX_POINT('',#5969); +#2049=VERTEX_POINT('',#5971); +#2050=VERTEX_POINT('',#5975); +#2051=VERTEX_POINT('',#5977); +#2052=VERTEX_POINT('',#5981); +#2053=VERTEX_POINT('',#5983); +#2054=VERTEX_POINT('',#5987); +#2055=VERTEX_POINT('',#5989); +#2056=VERTEX_POINT('',#5993); +#2057=VERTEX_POINT('',#5995); +#2058=VERTEX_POINT('',#5999); +#2059=VERTEX_POINT('',#6001); +#2060=VERTEX_POINT('',#6005); +#2061=VERTEX_POINT('',#6006); +#2062=VERTEX_POINT('',#6008); +#2063=VERTEX_POINT('',#6010); +#2064=VERTEX_POINT('',#6014); +#2065=VERTEX_POINT('',#6015); +#2066=VERTEX_POINT('',#6017); +#2067=VERTEX_POINT('',#6019); +#2068=VERTEX_POINT('',#6023); +#2069=VERTEX_POINT('',#6024); +#2070=VERTEX_POINT('',#6026); +#2071=VERTEX_POINT('',#6028); +#2072=VERTEX_POINT('',#6032); +#2073=VERTEX_POINT('',#6033); +#2074=VERTEX_POINT('',#6035); +#2075=VERTEX_POINT('',#6037); +#2076=VERTEX_POINT('',#6041); +#2077=VERTEX_POINT('',#6042); +#2078=VERTEX_POINT('',#6044); +#2079=VERTEX_POINT('',#6046); +#2080=VERTEX_POINT('',#6050); +#2081=VERTEX_POINT('',#6052); +#2082=VERTEX_POINT('',#6056); +#2083=VERTEX_POINT('',#6058); +#2084=VERTEX_POINT('',#6062); +#2085=VERTEX_POINT('',#6064); +#2086=VERTEX_POINT('',#6068); +#2087=VERTEX_POINT('',#6070); +#2088=VERTEX_POINT('',#6074); +#2089=VERTEX_POINT('',#6076); +#2090=VERTEX_POINT('',#6080); +#2091=VERTEX_POINT('',#6082); +#2092=VERTEX_POINT('',#6086); +#2093=VERTEX_POINT('',#6088); +#2094=VERTEX_POINT('',#6092); +#2095=VERTEX_POINT('',#6094); +#2096=VERTEX_POINT('',#6098); +#2097=VERTEX_POINT('',#6100); +#2098=VERTEX_POINT('',#6104); +#2099=VERTEX_POINT('',#6106); +#2100=VERTEX_POINT('',#6125); +#2101=VERTEX_POINT('',#6126); +#2102=VERTEX_POINT('',#6128); +#2103=VERTEX_POINT('',#6130); +#2104=VERTEX_POINT('',#6134); +#2105=VERTEX_POINT('',#6135); +#2106=VERTEX_POINT('',#6137); +#2107=VERTEX_POINT('',#6139); +#2108=VERTEX_POINT('',#6143); +#2109=VERTEX_POINT('',#6144); +#2110=VERTEX_POINT('',#6146); +#2111=VERTEX_POINT('',#6148); +#2112=VERTEX_POINT('',#6152); +#2113=VERTEX_POINT('',#6153); +#2114=VERTEX_POINT('',#6155); +#2115=VERTEX_POINT('',#6157); +#2116=VERTEX_POINT('',#6161); +#2117=VERTEX_POINT('',#6162); +#2118=VERTEX_POINT('',#6164); +#2119=VERTEX_POINT('',#6166); +#2120=VERTEX_POINT('',#6170); +#2121=VERTEX_POINT('',#6172); +#2122=VERTEX_POINT('',#6176); +#2123=VERTEX_POINT('',#6178); +#2124=VERTEX_POINT('',#6182); +#2125=VERTEX_POINT('',#6184); +#2126=VERTEX_POINT('',#6188); +#2127=VERTEX_POINT('',#6190); +#2128=VERTEX_POINT('',#6194); +#2129=VERTEX_POINT('',#6196); +#2130=VERTEX_POINT('',#6200); +#2131=VERTEX_POINT('',#6202); +#2132=VERTEX_POINT('',#6206); +#2133=VERTEX_POINT('',#6208); +#2134=VERTEX_POINT('',#6212); +#2135=VERTEX_POINT('',#6214); +#2136=VERTEX_POINT('',#6218); +#2137=VERTEX_POINT('',#6220); +#2138=VERTEX_POINT('',#6224); +#2139=VERTEX_POINT('',#6226); +#2140=VERTEX_POINT('',#6230); +#2141=VERTEX_POINT('',#6232); +#2142=VERTEX_POINT('',#6236); +#2143=VERTEX_POINT('',#6238); +#2144=VERTEX_POINT('',#6242); +#2145=VERTEX_POINT('',#6244); +#2146=VERTEX_POINT('',#6248); +#2147=VERTEX_POINT('',#6250); +#2148=VERTEX_POINT('',#6254); +#2149=VERTEX_POINT('',#6256); +#2150=VERTEX_POINT('',#6260); +#2151=VERTEX_POINT('',#6262); +#2152=VERTEX_POINT('',#6266); +#2153=VERTEX_POINT('',#6268); +#2154=VERTEX_POINT('',#6272); +#2155=VERTEX_POINT('',#6274); +#2156=VERTEX_POINT('',#6278); +#2157=VERTEX_POINT('',#6280); +#2158=VERTEX_POINT('',#6284); +#2159=VERTEX_POINT('',#6286); +#2160=VERTEX_POINT('',#6290); +#2161=VERTEX_POINT('',#6291); +#2162=VERTEX_POINT('',#6293); +#2163=VERTEX_POINT('',#6295); +#2164=VERTEX_POINT('',#6299); +#2165=VERTEX_POINT('',#6300); +#2166=VERTEX_POINT('',#6302); +#2167=VERTEX_POINT('',#6304); +#2168=VERTEX_POINT('',#6308); +#2169=VERTEX_POINT('',#6309); +#2170=VERTEX_POINT('',#6311); +#2171=VERTEX_POINT('',#6313); +#2172=VERTEX_POINT('',#6317); +#2173=VERTEX_POINT('',#6318); +#2174=VERTEX_POINT('',#6320); +#2175=VERTEX_POINT('',#6322); +#2176=VERTEX_POINT('',#6326); +#2177=VERTEX_POINT('',#6327); +#2178=VERTEX_POINT('',#6329); +#2179=VERTEX_POINT('',#6331); +#2180=VERTEX_POINT('',#6335); +#2181=VERTEX_POINT('',#6337); +#2182=VERTEX_POINT('',#6341); +#2183=VERTEX_POINT('',#6343); +#2184=VERTEX_POINT('',#6347); +#2185=VERTEX_POINT('',#6349); +#2186=VERTEX_POINT('',#6353); +#2187=VERTEX_POINT('',#6355); +#2188=VERTEX_POINT('',#6359); +#2189=VERTEX_POINT('',#6361); +#2190=VERTEX_POINT('',#6365); +#2191=VERTEX_POINT('',#6367); +#2192=VERTEX_POINT('',#6371); +#2193=VERTEX_POINT('',#6373); +#2194=VERTEX_POINT('',#6377); +#2195=VERTEX_POINT('',#6379); +#2196=VERTEX_POINT('',#6383); +#2197=VERTEX_POINT('',#6385); +#2198=VERTEX_POINT('',#6389); +#2199=VERTEX_POINT('',#6391); +#2200=VERTEX_POINT('',#6395); +#2201=VERTEX_POINT('',#6397); +#2202=VERTEX_POINT('',#6401); +#2203=VERTEX_POINT('',#6403); +#2204=VERTEX_POINT('',#6407); +#2205=VERTEX_POINT('',#6409); +#2206=VERTEX_POINT('',#6413); +#2207=VERTEX_POINT('',#6415); +#2208=VERTEX_POINT('',#6419); +#2209=VERTEX_POINT('',#6421); +#2210=VERTEX_POINT('',#6425); +#2211=VERTEX_POINT('',#6427); +#2212=VERTEX_POINT('',#6431); +#2213=VERTEX_POINT('',#6433); +#2214=VERTEX_POINT('',#6437); +#2215=VERTEX_POINT('',#6439); +#2216=VERTEX_POINT('',#6443); +#2217=VERTEX_POINT('',#6445); +#2218=VERTEX_POINT('',#6449); +#2219=VERTEX_POINT('',#6451); +#2220=VERTEX_POINT('',#6455); +#2221=VERTEX_POINT('',#6457); +#2222=VERTEX_POINT('',#6461); +#2223=VERTEX_POINT('',#6463); +#2224=VERTEX_POINT('',#6467); +#2225=VERTEX_POINT('',#6469); +#2226=VERTEX_POINT('',#6473); +#2227=VERTEX_POINT('',#6475); +#2228=VERTEX_POINT('',#6479); +#2229=VERTEX_POINT('',#6481); +#2230=VERTEX_POINT('',#6485); +#2231=VERTEX_POINT('',#6487); +#2232=VERTEX_POINT('',#6491); +#2233=VERTEX_POINT('',#6493); +#2234=VERTEX_POINT('',#6497); +#2235=VERTEX_POINT('',#6499); +#2236=VERTEX_POINT('',#6503); +#2237=VERTEX_POINT('',#6505); +#2238=VERTEX_POINT('',#6509); +#2239=VERTEX_POINT('',#6511); +#2240=VERTEX_POINT('',#6530); +#2241=VERTEX_POINT('',#6532); +#2242=VERTEX_POINT('',#6536); +#2243=VERTEX_POINT('',#6537); +#2244=VERTEX_POINT('',#6542); +#2245=VERTEX_POINT('',#6543); +#2246=VERTEX_POINT('',#6548); +#2247=VERTEX_POINT('',#6549); +#2248=VERTEX_POINT('',#6554); +#2249=VERTEX_POINT('',#6555); +#2250=VERTEX_POINT('',#6560); +#2251=VERTEX_POINT('',#6562); +#2252=VERTEX_POINT('',#6566); +#2253=VERTEX_POINT('',#6568); +#2254=VERTEX_POINT('',#6572); +#2255=VERTEX_POINT('',#6574); +#2256=VERTEX_POINT('',#6578); +#2257=VERTEX_POINT('',#6580); +#2258=VERTEX_POINT('',#6584); +#2259=VERTEX_POINT('',#6586); +#2260=LINE('',#5488,#2810); +#2261=LINE('',#5491,#2811); +#2262=LINE('',#5493,#2812); +#2263=LINE('',#5495,#2813); +#2264=LINE('',#5497,#2814); +#2265=LINE('',#5500,#2815); +#2266=LINE('',#5502,#2816); +#2267=LINE('',#5504,#2817); +#2268=LINE('',#5506,#2818); +#2269=LINE('',#5509,#2819); +#2270=LINE('',#5511,#2820); +#2271=LINE('',#5513,#2821); +#2272=LINE('',#5515,#2822); +#2273=LINE('',#5518,#2823); +#2274=LINE('',#5519,#2824); +#2275=LINE('',#5521,#2825); +#2276=LINE('',#5523,#2826); +#2277=LINE('',#5525,#2827); +#2278=LINE('',#5527,#2828); +#2279=LINE('',#5529,#2829); +#2280=LINE('',#5531,#2830); +#2281=LINE('',#5533,#2831); +#2282=LINE('',#5535,#2832); +#2283=LINE('',#5537,#2833); +#2284=LINE('',#5539,#2834); +#2285=LINE('',#5541,#2835); +#2286=LINE('',#5543,#2836); +#2287=LINE('',#5545,#2837); +#2288=LINE('',#5547,#2838); +#2289=LINE('',#5549,#2839); +#2290=LINE('',#5551,#2840); +#2291=LINE('',#5553,#2841); +#2292=LINE('',#5554,#2842); +#2293=LINE('',#5556,#2843); +#2294=LINE('',#5558,#2844); +#2295=LINE('',#5559,#2845); +#2296=LINE('',#5561,#2846); +#2297=LINE('',#5563,#2847); +#2298=LINE('',#5565,#2848); +#2299=LINE('',#5567,#2849); +#2300=LINE('',#5569,#2850); +#2301=LINE('',#5571,#2851); +#2302=LINE('',#5573,#2852); +#2303=LINE('',#5575,#2853); +#2304=LINE('',#5576,#2854); +#2305=LINE('',#5578,#2855); +#2306=LINE('',#5580,#2856); +#2307=LINE('',#5581,#2857); +#2308=LINE('',#5583,#2858); +#2309=LINE('',#5585,#2859); +#2310=LINE('',#5587,#2860); +#2311=LINE('',#5589,#2861); +#2312=LINE('',#5592,#2862); +#2313=LINE('',#5593,#2863); +#2314=LINE('',#5595,#2864); +#2315=LINE('',#5597,#2865); +#2316=LINE('',#5599,#2866); +#2317=LINE('',#5601,#2867); +#2318=LINE('',#5602,#2868); +#2319=LINE('',#5604,#2869); +#2320=LINE('',#5606,#2870); +#2321=LINE('',#5608,#2871); +#2322=LINE('',#5610,#2872); +#2323=LINE('',#5612,#2873); +#2324=LINE('',#5614,#2874); +#2325=LINE('',#5616,#2875); +#2326=LINE('',#5618,#2876); +#2327=LINE('',#5620,#2877); +#2328=LINE('',#5622,#2878); +#2329=LINE('',#5625,#2879); +#2330=LINE('',#5626,#2880); +#2331=LINE('',#5628,#2881); +#2332=LINE('',#5630,#2882); +#2333=LINE('',#5632,#2883); +#2334=LINE('',#5634,#2884); +#2335=LINE('',#5636,#2885); +#2336=LINE('',#5637,#2886); +#2337=LINE('',#5639,#2887); +#2338=LINE('',#5641,#2888); +#2339=LINE('',#5643,#2889); +#2340=LINE('',#5646,#2890); +#2341=LINE('',#5647,#2891); +#2342=LINE('',#5649,#2892); +#2343=LINE('',#5651,#2893); +#2344=LINE('',#5653,#2894); +#2345=LINE('',#5655,#2895); +#2346=LINE('',#5657,#2896); +#2347=LINE('',#5659,#2897); +#2348=LINE('',#5661,#2898); +#2349=LINE('',#5663,#2899); +#2350=LINE('',#5665,#2900); +#2351=LINE('',#5667,#2901); +#2352=LINE('',#5669,#2902); +#2353=LINE('',#5671,#2903); +#2354=LINE('',#5673,#2904); +#2355=LINE('',#5675,#2905); +#2356=LINE('',#5678,#2906); +#2357=LINE('',#5680,#2907); +#2358=LINE('',#5681,#2908); +#2359=LINE('',#5684,#2909); +#2360=LINE('',#5687,#2910); +#2361=LINE('',#5690,#2911); +#2362=LINE('',#5693,#2912); +#2363=LINE('',#5695,#2913); +#2364=LINE('',#5699,#2914); +#2365=LINE('',#5702,#2915); +#2366=LINE('',#5704,#2916); +#2367=LINE('',#5706,#2917); +#2368=LINE('',#5708,#2918); +#2369=LINE('',#5710,#2919); +#2370=LINE('',#5712,#2920); +#2371=LINE('',#5714,#2921); +#2372=LINE('',#5716,#2922); +#2373=LINE('',#5718,#2923); +#2374=LINE('',#5719,#2924); +#2375=LINE('',#5721,#2925); +#2376=LINE('',#5723,#2926); +#2377=LINE('',#5725,#2927); +#2378=LINE('',#5727,#2928); +#2379=LINE('',#5730,#2929); +#2380=LINE('',#5732,#2930); +#2381=LINE('',#5734,#2931); +#2382=LINE('',#5738,#2932); +#2383=LINE('',#5741,#2933); +#2384=LINE('',#5743,#2934); +#2385=LINE('',#5745,#2935); +#2386=LINE('',#5747,#2936); +#2387=LINE('',#5749,#2937); +#2388=LINE('',#5751,#2938); +#2389=LINE('',#5753,#2939); +#2390=LINE('',#5755,#2940); +#2391=LINE('',#5757,#2941); +#2392=LINE('',#5759,#2942); +#2393=LINE('',#5761,#2943); +#2394=LINE('',#5763,#2944); +#2395=LINE('',#5765,#2945); +#2396=LINE('',#5767,#2946); +#2397=LINE('',#5769,#2947); +#2398=LINE('',#5771,#2948); +#2399=LINE('',#5773,#2949); +#2400=LINE('',#5775,#2950); +#2401=LINE('',#5777,#2951); +#2402=LINE('',#5779,#2952); +#2403=LINE('',#5781,#2953); +#2404=LINE('',#5783,#2954); +#2405=LINE('',#5785,#2955); +#2406=LINE('',#5787,#2956); +#2407=LINE('',#5789,#2957); +#2408=LINE('',#5791,#2958); +#2409=LINE('',#5793,#2959); +#2410=LINE('',#5795,#2960); +#2411=LINE('',#5797,#2961); +#2412=LINE('',#5799,#2962); +#2413=LINE('',#5801,#2963); +#2414=LINE('',#5803,#2964); +#2415=LINE('',#5805,#2965); +#2416=LINE('',#5807,#2966); +#2417=LINE('',#5809,#2967); +#2418=LINE('',#5811,#2968); +#2419=LINE('',#5814,#2969); +#2420=LINE('',#5816,#2970); +#2421=LINE('',#5818,#2971); +#2422=LINE('',#5820,#2972); +#2423=LINE('',#5822,#2973); +#2424=LINE('',#5824,#2974); +#2425=LINE('',#5826,#2975); +#2426=LINE('',#5828,#2976); +#2427=LINE('',#5830,#2977); +#2428=LINE('',#5832,#2978); +#2429=LINE('',#5834,#2979); +#2430=LINE('',#5836,#2980); +#2431=LINE('',#5838,#2981); +#2432=LINE('',#5840,#2982); +#2433=LINE('',#5842,#2983); +#2434=LINE('',#5844,#2984); +#2435=LINE('',#5846,#2985); +#2436=LINE('',#5848,#2986); +#2437=LINE('',#5850,#2987); +#2438=LINE('',#5852,#2988); +#2439=LINE('',#5854,#2989); +#2440=LINE('',#5856,#2990); +#2441=LINE('',#5858,#2991); +#2442=LINE('',#5860,#2992); +#2443=LINE('',#5862,#2993); +#2444=LINE('',#5864,#2994); +#2445=LINE('',#5866,#2995); +#2446=LINE('',#5868,#2996); +#2447=LINE('',#5870,#2997); +#2448=LINE('',#5872,#2998); +#2449=LINE('',#5874,#2999); +#2450=LINE('',#5876,#3000); +#2451=LINE('',#5878,#3001); +#2452=LINE('',#5880,#3002); +#2453=LINE('',#5882,#3003); +#2454=LINE('',#5884,#3004); +#2455=LINE('',#5886,#3005); +#2456=LINE('',#5888,#3006); +#2457=LINE('',#5890,#3007); +#2458=LINE('',#5892,#3008); +#2459=LINE('',#5894,#3009); +#2460=LINE('',#5896,#3010); +#2461=LINE('',#5898,#3011); +#2462=LINE('',#5900,#3012); +#2463=LINE('',#5902,#3013); +#2464=LINE('',#5904,#3014); +#2465=LINE('',#5906,#3015); +#2466=LINE('',#5908,#3016); +#2467=LINE('',#5910,#3017); +#2468=LINE('',#5912,#3018); +#2469=LINE('',#5914,#3019); +#2470=LINE('',#5916,#3020); +#2471=LINE('',#5918,#3021); +#2472=LINE('',#5920,#3022); +#2473=LINE('',#5922,#3023); +#2474=LINE('',#5924,#3024); +#2475=LINE('',#5926,#3025); +#2476=LINE('',#5928,#3026); +#2477=LINE('',#5930,#3027); +#2478=LINE('',#5932,#3028); +#2479=LINE('',#5934,#3029); +#2480=LINE('',#5936,#3030); +#2481=LINE('',#5938,#3031); +#2482=LINE('',#5940,#3032); +#2483=LINE('',#5942,#3033); +#2484=LINE('',#5944,#3034); +#2485=LINE('',#5946,#3035); +#2486=LINE('',#5948,#3036); +#2487=LINE('',#5950,#3037); +#2488=LINE('',#5952,#3038); +#2489=LINE('',#5954,#3039); +#2490=LINE('',#5956,#3040); +#2491=LINE('',#5958,#3041); +#2492=LINE('',#5960,#3042); +#2493=LINE('',#5962,#3043); +#2494=LINE('',#5964,#3044); +#2495=LINE('',#5966,#3045); +#2496=LINE('',#5968,#3046); +#2497=LINE('',#5970,#3047); +#2498=LINE('',#5972,#3048); +#2499=LINE('',#5974,#3049); +#2500=LINE('',#5976,#3050); +#2501=LINE('',#5978,#3051); +#2502=LINE('',#5980,#3052); +#2503=LINE('',#5982,#3053); +#2504=LINE('',#5984,#3054); +#2505=LINE('',#5986,#3055); +#2506=LINE('',#5988,#3056); +#2507=LINE('',#5990,#3057); +#2508=LINE('',#5992,#3058); +#2509=LINE('',#5994,#3059); +#2510=LINE('',#5996,#3060); +#2511=LINE('',#5998,#3061); +#2512=LINE('',#6000,#3062); +#2513=LINE('',#6002,#3063); +#2514=LINE('',#6004,#3064); +#2515=LINE('',#6007,#3065); +#2516=LINE('',#6009,#3066); +#2517=LINE('',#6011,#3067); +#2518=LINE('',#6013,#3068); +#2519=LINE('',#6016,#3069); +#2520=LINE('',#6018,#3070); +#2521=LINE('',#6020,#3071); +#2522=LINE('',#6022,#3072); +#2523=LINE('',#6025,#3073); +#2524=LINE('',#6027,#3074); +#2525=LINE('',#6029,#3075); +#2526=LINE('',#6031,#3076); +#2527=LINE('',#6034,#3077); +#2528=LINE('',#6036,#3078); +#2529=LINE('',#6038,#3079); +#2530=LINE('',#6040,#3080); +#2531=LINE('',#6043,#3081); +#2532=LINE('',#6045,#3082); +#2533=LINE('',#6047,#3083); +#2534=LINE('',#6049,#3084); +#2535=LINE('',#6051,#3085); +#2536=LINE('',#6053,#3086); +#2537=LINE('',#6055,#3087); +#2538=LINE('',#6057,#3088); +#2539=LINE('',#6059,#3089); +#2540=LINE('',#6061,#3090); +#2541=LINE('',#6063,#3091); +#2542=LINE('',#6065,#3092); +#2543=LINE('',#6067,#3093); +#2544=LINE('',#6069,#3094); +#2545=LINE('',#6071,#3095); +#2546=LINE('',#6073,#3096); +#2547=LINE('',#6075,#3097); +#2548=LINE('',#6077,#3098); +#2549=LINE('',#6079,#3099); +#2550=LINE('',#6081,#3100); +#2551=LINE('',#6083,#3101); +#2552=LINE('',#6085,#3102); +#2553=LINE('',#6087,#3103); +#2554=LINE('',#6089,#3104); +#2555=LINE('',#6091,#3105); +#2556=LINE('',#6093,#3106); +#2557=LINE('',#6095,#3107); +#2558=LINE('',#6097,#3108); +#2559=LINE('',#6099,#3109); +#2560=LINE('',#6101,#3110); +#2561=LINE('',#6103,#3111); +#2562=LINE('',#6105,#3112); +#2563=LINE('',#6107,#3113); +#2564=LINE('',#6109,#3114); +#2565=LINE('',#6110,#3115); +#2566=LINE('',#6112,#3116); +#2567=LINE('',#6113,#3117); +#2568=LINE('',#6115,#3118); +#2569=LINE('',#6116,#3119); +#2570=LINE('',#6118,#3120); +#2571=LINE('',#6119,#3121); +#2572=LINE('',#6121,#3122); +#2573=LINE('',#6122,#3123); +#2574=LINE('',#6124,#3124); +#2575=LINE('',#6127,#3125); +#2576=LINE('',#6129,#3126); +#2577=LINE('',#6131,#3127); +#2578=LINE('',#6133,#3128); +#2579=LINE('',#6136,#3129); +#2580=LINE('',#6138,#3130); +#2581=LINE('',#6140,#3131); +#2582=LINE('',#6142,#3132); +#2583=LINE('',#6145,#3133); +#2584=LINE('',#6147,#3134); +#2585=LINE('',#6149,#3135); +#2586=LINE('',#6151,#3136); +#2587=LINE('',#6154,#3137); +#2588=LINE('',#6156,#3138); +#2589=LINE('',#6158,#3139); +#2590=LINE('',#6160,#3140); +#2591=LINE('',#6163,#3141); +#2592=LINE('',#6165,#3142); +#2593=LINE('',#6167,#3143); +#2594=LINE('',#6169,#3144); +#2595=LINE('',#6171,#3145); +#2596=LINE('',#6173,#3146); +#2597=LINE('',#6175,#3147); +#2598=LINE('',#6177,#3148); +#2599=LINE('',#6179,#3149); +#2600=LINE('',#6181,#3150); +#2601=LINE('',#6183,#3151); +#2602=LINE('',#6185,#3152); +#2603=LINE('',#6187,#3153); +#2604=LINE('',#6189,#3154); +#2605=LINE('',#6191,#3155); +#2606=LINE('',#6193,#3156); +#2607=LINE('',#6195,#3157); +#2608=LINE('',#6197,#3158); +#2609=LINE('',#6199,#3159); +#2610=LINE('',#6201,#3160); +#2611=LINE('',#6203,#3161); +#2612=LINE('',#6205,#3162); +#2613=LINE('',#6207,#3163); +#2614=LINE('',#6209,#3164); +#2615=LINE('',#6211,#3165); +#2616=LINE('',#6213,#3166); +#2617=LINE('',#6215,#3167); +#2618=LINE('',#6217,#3168); +#2619=LINE('',#6219,#3169); +#2620=LINE('',#6221,#3170); +#2621=LINE('',#6223,#3171); +#2622=LINE('',#6225,#3172); +#2623=LINE('',#6227,#3173); +#2624=LINE('',#6231,#3174); +#2625=LINE('',#6239,#3175); +#2626=LINE('',#6245,#3176); +#2627=LINE('',#6251,#3177); +#2628=LINE('',#6257,#3178); +#2629=LINE('',#6259,#3179); +#2630=LINE('',#6261,#3180); +#2631=LINE('',#6263,#3181); +#2632=LINE('',#6265,#3182); +#2633=LINE('',#6267,#3183); +#2634=LINE('',#6269,#3184); +#2635=LINE('',#6271,#3185); +#2636=LINE('',#6273,#3186); +#2637=LINE('',#6275,#3187); +#2638=LINE('',#6277,#3188); +#2639=LINE('',#6279,#3189); +#2640=LINE('',#6281,#3190); +#2641=LINE('',#6283,#3191); +#2642=LINE('',#6285,#3192); +#2643=LINE('',#6287,#3193); +#2644=LINE('',#6289,#3194); +#2645=LINE('',#6292,#3195); +#2646=LINE('',#6294,#3196); +#2647=LINE('',#6296,#3197); +#2648=LINE('',#6298,#3198); +#2649=LINE('',#6301,#3199); +#2650=LINE('',#6303,#3200); +#2651=LINE('',#6305,#3201); +#2652=LINE('',#6307,#3202); +#2653=LINE('',#6310,#3203); +#2654=LINE('',#6312,#3204); +#2655=LINE('',#6314,#3205); +#2656=LINE('',#6316,#3206); +#2657=LINE('',#6319,#3207); +#2658=LINE('',#6321,#3208); +#2659=LINE('',#6323,#3209); +#2660=LINE('',#6325,#3210); +#2661=LINE('',#6328,#3211); +#2662=LINE('',#6330,#3212); +#2663=LINE('',#6332,#3213); +#2664=LINE('',#6336,#3214); +#2665=LINE('',#6344,#3215); +#2666=LINE('',#6350,#3216); +#2667=LINE('',#6356,#3217); +#2668=LINE('',#6362,#3218); +#2669=LINE('',#6364,#3219); +#2670=LINE('',#6366,#3220); +#2671=LINE('',#6368,#3221); +#2672=LINE('',#6370,#3222); +#2673=LINE('',#6372,#3223); +#2674=LINE('',#6374,#3224); +#2675=LINE('',#6376,#3225); +#2676=LINE('',#6378,#3226); +#2677=LINE('',#6380,#3227); +#2678=LINE('',#6382,#3228); +#2679=LINE('',#6384,#3229); +#2680=LINE('',#6386,#3230); +#2681=LINE('',#6388,#3231); +#2682=LINE('',#6390,#3232); +#2683=LINE('',#6392,#3233); +#2684=LINE('',#6394,#3234); +#2685=LINE('',#6396,#3235); +#2686=LINE('',#6398,#3236); +#2687=LINE('',#6400,#3237); +#2688=LINE('',#6402,#3238); +#2689=LINE('',#6404,#3239); +#2690=LINE('',#6406,#3240); +#2691=LINE('',#6408,#3241); +#2692=LINE('',#6410,#3242); +#2693=LINE('',#6412,#3243); +#2694=LINE('',#6414,#3244); +#2695=LINE('',#6416,#3245); +#2696=LINE('',#6418,#3246); +#2697=LINE('',#6420,#3247); +#2698=LINE('',#6422,#3248); +#2699=LINE('',#6424,#3249); +#2700=LINE('',#6426,#3250); +#2701=LINE('',#6428,#3251); +#2702=LINE('',#6430,#3252); +#2703=LINE('',#6432,#3253); +#2704=LINE('',#6434,#3254); +#2705=LINE('',#6436,#3255); +#2706=LINE('',#6438,#3256); +#2707=LINE('',#6440,#3257); +#2708=LINE('',#6442,#3258); +#2709=LINE('',#6444,#3259); +#2710=LINE('',#6446,#3260); +#2711=LINE('',#6448,#3261); +#2712=LINE('',#6450,#3262); +#2713=LINE('',#6452,#3263); +#2714=LINE('',#6454,#3264); +#2715=LINE('',#6456,#3265); +#2716=LINE('',#6458,#3266); +#2717=LINE('',#6460,#3267); +#2718=LINE('',#6462,#3268); +#2719=LINE('',#6464,#3269); +#2720=LINE('',#6466,#3270); +#2721=LINE('',#6468,#3271); +#2722=LINE('',#6470,#3272); +#2723=LINE('',#6472,#3273); +#2724=LINE('',#6474,#3274); +#2725=LINE('',#6476,#3275); +#2726=LINE('',#6478,#3276); +#2727=LINE('',#6480,#3277); +#2728=LINE('',#6482,#3278); +#2729=LINE('',#6484,#3279); +#2730=LINE('',#6486,#3280); +#2731=LINE('',#6488,#3281); +#2732=LINE('',#6490,#3282); +#2733=LINE('',#6492,#3283); +#2734=LINE('',#6494,#3284); +#2735=LINE('',#6496,#3285); +#2736=LINE('',#6498,#3286); +#2737=LINE('',#6500,#3287); +#2738=LINE('',#6502,#3288); +#2739=LINE('',#6504,#3289); +#2740=LINE('',#6506,#3290); +#2741=LINE('',#6508,#3291); +#2742=LINE('',#6510,#3292); +#2743=LINE('',#6512,#3293); +#2744=LINE('',#6531,#3294); +#2745=LINE('',#6535,#3295); +#2746=LINE('',#6541,#3296); +#2747=LINE('',#6547,#3297); +#2748=LINE('',#6553,#3298); +#2749=LINE('',#6559,#3299); +#2750=LINE('',#6561,#3300); +#2751=LINE('',#6563,#3301); +#2752=LINE('',#6565,#3302); +#2753=LINE('',#6567,#3303); +#2754=LINE('',#6569,#3304); +#2755=LINE('',#6571,#3305); +#2756=LINE('',#6573,#3306); +#2757=LINE('',#6575,#3307); +#2758=LINE('',#6577,#3308); +#2759=LINE('',#6579,#3309); +#2760=LINE('',#6581,#3310); +#2761=LINE('',#6583,#3311); +#2762=LINE('',#6585,#3312); +#2763=LINE('',#6587,#3313); +#2764=LINE('',#6589,#3314); +#2765=LINE('',#6590,#3315); +#2766=LINE('',#6592,#3316); +#2767=LINE('',#6593,#3317); +#2768=LINE('',#6595,#3318); +#2769=LINE('',#6596,#3319); +#2770=LINE('',#6598,#3320); +#2771=LINE('',#6599,#3321); +#2772=LINE('',#6601,#3322); +#2773=LINE('',#6602,#3323); +#2774=LINE('',#6604,#3324); +#2775=LINE('',#6605,#3325); +#2776=LINE('',#6606,#3326); +#2777=LINE('',#6607,#3327); +#2778=LINE('',#6608,#3328); +#2779=LINE('',#6609,#3329); +#2780=LINE('',#6610,#3330); +#2781=LINE('',#6611,#3331); +#2782=LINE('',#6612,#3332); +#2783=LINE('',#6613,#3333); +#2784=LINE('',#6614,#3334); +#2785=LINE('',#6615,#3335); +#2786=LINE('',#6616,#3336); +#2787=LINE('',#6617,#3337); +#2788=LINE('',#6618,#3338); +#2789=LINE('',#6619,#3339); +#2790=LINE('',#6620,#3340); +#2791=LINE('',#6621,#3341); +#2792=LINE('',#6623,#3342); +#2793=LINE('',#6624,#3343); +#2794=LINE('',#6625,#3344); +#2795=LINE('',#6626,#3345); +#2796=LINE('',#6627,#3346); +#2797=LINE('',#6628,#3347); +#2798=LINE('',#6629,#3348); +#2799=LINE('',#6630,#3349); +#2800=LINE('',#6631,#3350); +#2801=LINE('',#6632,#3351); +#2802=LINE('',#6633,#3352); +#2803=LINE('',#6634,#3353); +#2804=LINE('',#6635,#3354); +#2805=LINE('',#6636,#3355); +#2806=LINE('',#6637,#3356); +#2807=LINE('',#6638,#3357); +#2808=LINE('',#6639,#3358); +#2809=LINE('',#6640,#3359); +#2810=VECTOR('',#4444,39.3700787401575); +#2811=VECTOR('',#4445,39.3700787401575); +#2812=VECTOR('',#4446,39.3700787401575); +#2813=VECTOR('',#4447,39.3700787401575); +#2814=VECTOR('',#4450,39.3700787401575); +#2815=VECTOR('',#4451,39.3700787401575); +#2816=VECTOR('',#4452,39.3700787401575); +#2817=VECTOR('',#4453,39.3700787401575); +#2818=VECTOR('',#4456,39.3700787401575); +#2819=VECTOR('',#4457,39.3700787401575); +#2820=VECTOR('',#4458,39.3700787401575); +#2821=VECTOR('',#4459,39.3700787401575); +#2822=VECTOR('',#4462,39.3700787401575); +#2823=VECTOR('',#4463,39.3700787401575); +#2824=VECTOR('',#4464,39.3700787401575); +#2825=VECTOR('',#4465,39.3700787401575); +#2826=VECTOR('',#4466,39.3700787401575); +#2827=VECTOR('',#4467,39.3700787401575); +#2828=VECTOR('',#4468,39.3700787401575); +#2829=VECTOR('',#4469,39.3700787401575); +#2830=VECTOR('',#4470,39.3700787401575); +#2831=VECTOR('',#4471,39.3700787401575); +#2832=VECTOR('',#4472,39.3700787401575); +#2833=VECTOR('',#4473,39.3700787401575); +#2834=VECTOR('',#4474,39.3700787401575); +#2835=VECTOR('',#4475,39.3700787401575); +#2836=VECTOR('',#4476,39.3700787401575); +#2837=VECTOR('',#4477,39.3700787401575); +#2838=VECTOR('',#4478,39.3700787401575); +#2839=VECTOR('',#4479,39.3700787401575); +#2840=VECTOR('',#4480,39.3700787401575); +#2841=VECTOR('',#4481,39.3700787401575); +#2842=VECTOR('',#4482,39.3700787401575); +#2843=VECTOR('',#4483,39.3700787401575); +#2844=VECTOR('',#4484,39.3700787401575); +#2845=VECTOR('',#4485,39.3700787401575); +#2846=VECTOR('',#4486,39.3700787401575); +#2847=VECTOR('',#4489,39.3700787401575); +#2848=VECTOR('',#4490,39.3700787401575); +#2849=VECTOR('',#4491,39.3700787401575); +#2850=VECTOR('',#4492,39.3700787401575); +#2851=VECTOR('',#4493,39.3700787401575); +#2852=VECTOR('',#4494,39.3700787401575); +#2853=VECTOR('',#4495,39.3700787401575); +#2854=VECTOR('',#4496,39.3700787401575); +#2855=VECTOR('',#4497,39.3700787401575); +#2856=VECTOR('',#4498,39.3700787401575); +#2857=VECTOR('',#4499,39.3700787401575); +#2858=VECTOR('',#4502,39.3700787401575); +#2859=VECTOR('',#4503,39.3700787401575); +#2860=VECTOR('',#4504,39.3700787401575); +#2861=VECTOR('',#4507,39.3700787401575); +#2862=VECTOR('',#4508,39.3700787401575); +#2863=VECTOR('',#4509,39.3700787401575); +#2864=VECTOR('',#4512,39.3700787401575); +#2865=VECTOR('',#4513,39.3700787401575); +#2866=VECTOR('',#4514,39.3700787401575); +#2867=VECTOR('',#4515,39.3700787401575); +#2868=VECTOR('',#4516,39.3700787401575); +#2869=VECTOR('',#4519,39.3700787401575); +#2870=VECTOR('',#4522,39.3700787401575); +#2871=VECTOR('',#4523,39.3700787401575); +#2872=VECTOR('',#4524,39.3700787401575); +#2873=VECTOR('',#4527,39.3700787401575); +#2874=VECTOR('',#4530,39.3700787401575); +#2875=VECTOR('',#4533,39.3700787401575); +#2876=VECTOR('',#4534,39.3700787401575); +#2877=VECTOR('',#4535,39.3700787401575); +#2878=VECTOR('',#4538,39.3700787401575); +#2879=VECTOR('',#4539,39.3700787401575); +#2880=VECTOR('',#4540,39.3700787401575); +#2881=VECTOR('',#4541,39.3700787401575); +#2882=VECTOR('',#4542,39.3700787401575); +#2883=VECTOR('',#4543,39.3700787401575); +#2884=VECTOR('',#4544,39.3700787401575); +#2885=VECTOR('',#4547,39.3700787401575); +#2886=VECTOR('',#4548,39.3700787401575); +#2887=VECTOR('',#4551,39.3700787401575); +#2888=VECTOR('',#4554,39.3700787401575); +#2889=VECTOR('',#4557,39.3700787401575); +#2890=VECTOR('',#4558,39.3700787401575); +#2891=VECTOR('',#4559,39.3700787401575); +#2892=VECTOR('',#4562,39.3700787401575); +#2893=VECTOR('',#4565,39.3700787401575); +#2894=VECTOR('',#4568,39.3700787401575); +#2895=VECTOR('',#4569,39.3700787401575); +#2896=VECTOR('',#4572,39.3700787401575); +#2897=VECTOR('',#4573,39.3700787401575); +#2898=VECTOR('',#4574,39.3700787401575); +#2899=VECTOR('',#4575,39.3700787401575); +#2900=VECTOR('',#4576,39.3700787401575); +#2901=VECTOR('',#4577,39.3700787401575); +#2902=VECTOR('',#4580,39.3700787401575); +#2903=VECTOR('',#4583,39.3700787401575); +#2904=VECTOR('',#4584,39.3700787401575); +#2905=VECTOR('',#4587,39.3700787401575); +#2906=VECTOR('',#4592,39.3700787401575); +#2907=VECTOR('',#4595,39.3700787401575); +#2908=VECTOR('',#4596,39.3700787401575); +#2909=VECTOR('',#4601,39.3700787401575); +#2910=VECTOR('',#4606,39.3700787401575); +#2911=VECTOR('',#4611,39.3700787401575); +#2912=VECTOR('',#4616,39.3700787401575); +#2913=VECTOR('',#4619,39.3700787401575); +#2914=VECTOR('',#4626,39.3700787401575); +#2915=VECTOR('',#4627,39.3700787401575); +#2916=VECTOR('',#4628,39.3700787401575); +#2917=VECTOR('',#4629,39.3700787401575); +#2918=VECTOR('',#4630,39.3700787401575); +#2919=VECTOR('',#4631,39.3700787401575); +#2920=VECTOR('',#4632,39.3700787401575); +#2921=VECTOR('',#4633,39.3700787401575); +#2922=VECTOR('',#4636,39.3700787401575); +#2923=VECTOR('',#4637,39.3700787401575); +#2924=VECTOR('',#4638,39.3700787401575); +#2925=VECTOR('',#4639,39.3700787401575); +#2926=VECTOR('',#4642,39.3700787401575); +#2927=VECTOR('',#4643,39.3700787401575); +#2928=VECTOR('',#4646,39.3700787401575); +#2929=VECTOR('',#4651,39.3700787401575); +#2930=VECTOR('',#4652,39.3700787401575); +#2931=VECTOR('',#4655,39.3700787401575); +#2932=VECTOR('',#4662,39.3700787401575); +#2933=VECTOR('',#4663,39.3700787401575); +#2934=VECTOR('',#4664,39.3700787401575); +#2935=VECTOR('',#4665,39.3700787401575); +#2936=VECTOR('',#4666,39.3700787401575); +#2937=VECTOR('',#4667,39.3700787401575); +#2938=VECTOR('',#4668,39.3700787401575); +#2939=VECTOR('',#4669,39.3700787401575); +#2940=VECTOR('',#4670,39.3700787401575); +#2941=VECTOR('',#4671,39.3700787401575); +#2942=VECTOR('',#4672,39.3700787401575); +#2943=VECTOR('',#4673,39.3700787401575); +#2944=VECTOR('',#4674,39.3700787401575); +#2945=VECTOR('',#4675,39.3700787401575); +#2946=VECTOR('',#4676,39.3700787401575); +#2947=VECTOR('',#4677,39.3700787401575); +#2948=VECTOR('',#4678,39.3700787401575); +#2949=VECTOR('',#4679,39.3700787401575); +#2950=VECTOR('',#4680,39.3700787401575); +#2951=VECTOR('',#4681,39.3700787401575); +#2952=VECTOR('',#4682,39.3700787401575); +#2953=VECTOR('',#4683,39.3700787401575); +#2954=VECTOR('',#4684,39.3700787401575); +#2955=VECTOR('',#4685,39.3700787401575); +#2956=VECTOR('',#4686,39.3700787401575); +#2957=VECTOR('',#4687,39.3700787401575); +#2958=VECTOR('',#4688,39.3700787401575); +#2959=VECTOR('',#4689,39.3700787401575); +#2960=VECTOR('',#4690,39.3700787401575); +#2961=VECTOR('',#4691,39.3700787401575); +#2962=VECTOR('',#4692,39.3700787401575); +#2963=VECTOR('',#4693,39.3700787401575); +#2964=VECTOR('',#4694,39.3700787401575); +#2965=VECTOR('',#4695,39.3700787401575); +#2966=VECTOR('',#4696,39.3700787401575); +#2967=VECTOR('',#4697,39.3700787401575); +#2968=VECTOR('',#4700,39.3700787401575); +#2969=VECTOR('',#4701,39.3700787401575); +#2970=VECTOR('',#4702,39.3700787401575); +#2971=VECTOR('',#4703,39.3700787401575); +#2972=VECTOR('',#4704,39.3700787401575); +#2973=VECTOR('',#4705,39.3700787401575); +#2974=VECTOR('',#4706,39.3700787401575); +#2975=VECTOR('',#4707,39.3700787401575); +#2976=VECTOR('',#4708,39.3700787401575); +#2977=VECTOR('',#4709,39.3700787401575); +#2978=VECTOR('',#4710,39.3700787401575); +#2979=VECTOR('',#4711,39.3700787401575); +#2980=VECTOR('',#4712,39.3700787401575); +#2981=VECTOR('',#4713,39.3700787401575); +#2982=VECTOR('',#4714,39.3700787401575); +#2983=VECTOR('',#4715,39.3700787401575); +#2984=VECTOR('',#4716,39.3700787401575); +#2985=VECTOR('',#4717,39.3700787401575); +#2986=VECTOR('',#4718,39.3700787401575); +#2987=VECTOR('',#4719,39.3700787401575); +#2988=VECTOR('',#4720,39.3700787401575); +#2989=VECTOR('',#4721,39.3700787401575); +#2990=VECTOR('',#4722,39.3700787401575); +#2991=VECTOR('',#4723,39.3700787401575); +#2992=VECTOR('',#4724,39.3700787401575); +#2993=VECTOR('',#4725,39.3700787401575); +#2994=VECTOR('',#4726,39.3700787401575); +#2995=VECTOR('',#4727,39.3700787401575); +#2996=VECTOR('',#4728,39.3700787401575); +#2997=VECTOR('',#4729,39.3700787401575); +#2998=VECTOR('',#4730,39.3700787401575); +#2999=VECTOR('',#4731,39.3700787401575); +#3000=VECTOR('',#4732,39.3700787401575); +#3001=VECTOR('',#4733,39.3700787401575); +#3002=VECTOR('',#4734,39.3700787401575); +#3003=VECTOR('',#4735,39.3700787401575); +#3004=VECTOR('',#4738,39.3700787401575); +#3005=VECTOR('',#4739,39.3700787401575); +#3006=VECTOR('',#4740,39.3700787401575); +#3007=VECTOR('',#4743,39.3700787401575); +#3008=VECTOR('',#4744,39.3700787401575); +#3009=VECTOR('',#4745,39.3700787401575); +#3010=VECTOR('',#4748,39.3700787401575); +#3011=VECTOR('',#4749,39.3700787401575); +#3012=VECTOR('',#4750,39.3700787401575); +#3013=VECTOR('',#4753,39.3700787401575); +#3014=VECTOR('',#4754,39.3700787401575); +#3015=VECTOR('',#4755,39.3700787401575); +#3016=VECTOR('',#4758,39.3700787401575); +#3017=VECTOR('',#4759,39.3700787401575); +#3018=VECTOR('',#4760,39.3700787401575); +#3019=VECTOR('',#4763,39.3700787401575); +#3020=VECTOR('',#4764,39.3700787401575); +#3021=VECTOR('',#4765,39.3700787401575); +#3022=VECTOR('',#4768,39.3700787401575); +#3023=VECTOR('',#4769,39.3700787401575); +#3024=VECTOR('',#4770,39.3700787401575); +#3025=VECTOR('',#4773,39.3700787401575); +#3026=VECTOR('',#4774,39.3700787401575); +#3027=VECTOR('',#4775,39.3700787401575); +#3028=VECTOR('',#4778,39.3700787401575); +#3029=VECTOR('',#4779,39.3700787401575); +#3030=VECTOR('',#4780,39.3700787401575); +#3031=VECTOR('',#4783,39.3700787401575); +#3032=VECTOR('',#4784,39.3700787401575); +#3033=VECTOR('',#4785,39.3700787401575); +#3034=VECTOR('',#4788,39.3700787401575); +#3035=VECTOR('',#4789,39.3700787401575); +#3036=VECTOR('',#4790,39.3700787401575); +#3037=VECTOR('',#4793,39.3700787401575); +#3038=VECTOR('',#4794,39.3700787401575); +#3039=VECTOR('',#4795,39.3700787401575); +#3040=VECTOR('',#4798,39.3700787401575); +#3041=VECTOR('',#4799,39.3700787401575); +#3042=VECTOR('',#4800,39.3700787401575); +#3043=VECTOR('',#4803,39.3700787401575); +#3044=VECTOR('',#4804,39.3700787401575); +#3045=VECTOR('',#4805,39.3700787401575); +#3046=VECTOR('',#4808,39.3700787401575); +#3047=VECTOR('',#4809,39.3700787401575); +#3048=VECTOR('',#4810,39.3700787401575); +#3049=VECTOR('',#4813,39.3700787401575); +#3050=VECTOR('',#4814,39.3700787401575); +#3051=VECTOR('',#4815,39.3700787401575); +#3052=VECTOR('',#4818,39.3700787401575); +#3053=VECTOR('',#4819,39.3700787401575); +#3054=VECTOR('',#4820,39.3700787401575); +#3055=VECTOR('',#4823,39.3700787401575); +#3056=VECTOR('',#4824,39.3700787401575); +#3057=VECTOR('',#4825,39.3700787401575); +#3058=VECTOR('',#4828,39.3700787401575); +#3059=VECTOR('',#4829,39.3700787401575); +#3060=VECTOR('',#4830,39.3700787401575); +#3061=VECTOR('',#4833,39.3700787401575); +#3062=VECTOR('',#4834,39.3700787401575); +#3063=VECTOR('',#4835,39.3700787401575); +#3064=VECTOR('',#4838,39.3700787401575); +#3065=VECTOR('',#4839,39.3700787401575); +#3066=VECTOR('',#4840,39.3700787401575); +#3067=VECTOR('',#4841,39.3700787401575); +#3068=VECTOR('',#4844,39.3700787401575); +#3069=VECTOR('',#4845,39.3700787401575); +#3070=VECTOR('',#4846,39.3700787401575); +#3071=VECTOR('',#4847,39.3700787401575); +#3072=VECTOR('',#4850,39.3700787401575); +#3073=VECTOR('',#4851,39.3700787401575); +#3074=VECTOR('',#4852,39.3700787401575); +#3075=VECTOR('',#4853,39.3700787401575); +#3076=VECTOR('',#4856,39.3700787401575); +#3077=VECTOR('',#4857,39.3700787401575); +#3078=VECTOR('',#4858,39.3700787401575); +#3079=VECTOR('',#4859,39.3700787401575); +#3080=VECTOR('',#4862,39.3700787401575); +#3081=VECTOR('',#4863,39.3700787401575); +#3082=VECTOR('',#4864,39.3700787401575); +#3083=VECTOR('',#4865,39.3700787401575); +#3084=VECTOR('',#4868,39.3700787401575); +#3085=VECTOR('',#4869,39.3700787401575); +#3086=VECTOR('',#4870,39.3700787401575); +#3087=VECTOR('',#4873,39.3700787401575); +#3088=VECTOR('',#4874,39.3700787401575); +#3089=VECTOR('',#4875,39.3700787401575); +#3090=VECTOR('',#4878,39.3700787401575); +#3091=VECTOR('',#4879,39.3700787401575); +#3092=VECTOR('',#4880,39.3700787401575); +#3093=VECTOR('',#4883,39.3700787401575); +#3094=VECTOR('',#4884,39.3700787401575); +#3095=VECTOR('',#4885,39.3700787401575); +#3096=VECTOR('',#4888,39.3700787401575); +#3097=VECTOR('',#4889,39.3700787401575); +#3098=VECTOR('',#4890,39.3700787401575); +#3099=VECTOR('',#4893,39.3700787401575); +#3100=VECTOR('',#4894,39.3700787401575); +#3101=VECTOR('',#4895,39.3700787401575); +#3102=VECTOR('',#4898,39.3700787401575); +#3103=VECTOR('',#4899,39.3700787401575); +#3104=VECTOR('',#4900,39.3700787401575); +#3105=VECTOR('',#4903,39.3700787401575); +#3106=VECTOR('',#4904,39.3700787401575); +#3107=VECTOR('',#4905,39.3700787401575); +#3108=VECTOR('',#4908,39.3700787401575); +#3109=VECTOR('',#4909,39.3700787401575); +#3110=VECTOR('',#4910,39.3700787401575); +#3111=VECTOR('',#4913,39.3700787401575); +#3112=VECTOR('',#4914,39.3700787401575); +#3113=VECTOR('',#4915,39.3700787401575); +#3114=VECTOR('',#4918,39.3700787401575); +#3115=VECTOR('',#4919,39.3700787401575); +#3116=VECTOR('',#4922,39.3700787401575); +#3117=VECTOR('',#4923,39.3700787401575); +#3118=VECTOR('',#4926,39.3700787401575); +#3119=VECTOR('',#4927,39.3700787401575); +#3120=VECTOR('',#4930,39.3700787401575); +#3121=VECTOR('',#4931,39.3700787401575); +#3122=VECTOR('',#4934,39.3700787401575); +#3123=VECTOR('',#4935,39.3700787401575); +#3124=VECTOR('',#4938,39.3700787401575); +#3125=VECTOR('',#4939,39.3700787401575); +#3126=VECTOR('',#4940,39.3700787401575); +#3127=VECTOR('',#4941,39.3700787401575); +#3128=VECTOR('',#4944,39.3700787401575); +#3129=VECTOR('',#4945,39.3700787401575); +#3130=VECTOR('',#4946,39.3700787401575); +#3131=VECTOR('',#4947,39.3700787401575); +#3132=VECTOR('',#4950,39.3700787401575); +#3133=VECTOR('',#4951,39.3700787401575); +#3134=VECTOR('',#4952,39.3700787401575); +#3135=VECTOR('',#4953,39.3700787401575); +#3136=VECTOR('',#4956,39.3700787401575); +#3137=VECTOR('',#4957,39.3700787401575); +#3138=VECTOR('',#4958,39.3700787401575); +#3139=VECTOR('',#4959,39.3700787401575); +#3140=VECTOR('',#4962,39.3700787401575); +#3141=VECTOR('',#4963,39.3700787401575); +#3142=VECTOR('',#4964,39.3700787401575); +#3143=VECTOR('',#4965,39.3700787401575); +#3144=VECTOR('',#4968,39.3700787401575); +#3145=VECTOR('',#4969,39.3700787401575); +#3146=VECTOR('',#4970,39.3700787401575); +#3147=VECTOR('',#4973,39.3700787401575); +#3148=VECTOR('',#4974,39.3700787401575); +#3149=VECTOR('',#4975,39.3700787401575); +#3150=VECTOR('',#4978,39.3700787401575); +#3151=VECTOR('',#4979,39.3700787401575); +#3152=VECTOR('',#4980,39.3700787401575); +#3153=VECTOR('',#4983,39.3700787401575); +#3154=VECTOR('',#4984,39.3700787401575); +#3155=VECTOR('',#4985,39.3700787401575); +#3156=VECTOR('',#4988,39.3700787401575); +#3157=VECTOR('',#4989,39.3700787401575); +#3158=VECTOR('',#4990,39.3700787401575); +#3159=VECTOR('',#4993,39.3700787401575); +#3160=VECTOR('',#4994,39.3700787401575); +#3161=VECTOR('',#4995,39.3700787401575); +#3162=VECTOR('',#4998,39.3700787401575); +#3163=VECTOR('',#4999,39.3700787401575); +#3164=VECTOR('',#5000,39.3700787401575); +#3165=VECTOR('',#5003,39.3700787401575); +#3166=VECTOR('',#5004,39.3700787401575); +#3167=VECTOR('',#5005,39.3700787401575); +#3168=VECTOR('',#5008,39.3700787401575); +#3169=VECTOR('',#5009,39.3700787401575); +#3170=VECTOR('',#5010,39.3700787401575); +#3171=VECTOR('',#5013,39.3700787401575); +#3172=VECTOR('',#5014,39.3700787401575); +#3173=VECTOR('',#5015,39.3700787401575); +#3174=VECTOR('',#5020,39.3700787401575); +#3175=VECTOR('',#5029,39.3700787401575); +#3176=VECTOR('',#5036,39.3700787401575); +#3177=VECTOR('',#5043,39.3700787401575); +#3178=VECTOR('',#5050,39.3700787401575); +#3179=VECTOR('',#5053,39.3700787401575); +#3180=VECTOR('',#5054,39.3700787401575); +#3181=VECTOR('',#5055,39.3700787401575); +#3182=VECTOR('',#5058,39.3700787401575); +#3183=VECTOR('',#5059,39.3700787401575); +#3184=VECTOR('',#5060,39.3700787401575); +#3185=VECTOR('',#5063,39.3700787401575); +#3186=VECTOR('',#5064,39.3700787401575); +#3187=VECTOR('',#5065,39.3700787401575); +#3188=VECTOR('',#5068,39.3700787401575); +#3189=VECTOR('',#5069,39.3700787401575); +#3190=VECTOR('',#5070,39.3700787401575); +#3191=VECTOR('',#5073,39.3700787401575); +#3192=VECTOR('',#5074,39.3700787401575); +#3193=VECTOR('',#5075,39.3700787401575); +#3194=VECTOR('',#5078,39.3700787401575); +#3195=VECTOR('',#5079,39.3700787401575); +#3196=VECTOR('',#5080,39.3700787401575); +#3197=VECTOR('',#5081,39.3700787401575); +#3198=VECTOR('',#5084,39.3700787401575); +#3199=VECTOR('',#5085,39.3700787401575); +#3200=VECTOR('',#5086,39.3700787401575); +#3201=VECTOR('',#5087,39.3700787401575); +#3202=VECTOR('',#5090,39.3700787401575); +#3203=VECTOR('',#5091,39.3700787401575); +#3204=VECTOR('',#5092,39.3700787401575); +#3205=VECTOR('',#5093,39.3700787401575); +#3206=VECTOR('',#5096,39.3700787401575); +#3207=VECTOR('',#5097,39.3700787401575); +#3208=VECTOR('',#5098,39.3700787401575); +#3209=VECTOR('',#5099,39.3700787401575); +#3210=VECTOR('',#5102,39.3700787401575); +#3211=VECTOR('',#5103,39.3700787401575); +#3212=VECTOR('',#5104,39.3700787401575); +#3213=VECTOR('',#5105,39.3700787401575); +#3214=VECTOR('',#5110,39.3700787401575); +#3215=VECTOR('',#5119,39.3700787401575); +#3216=VECTOR('',#5126,39.3700787401575); +#3217=VECTOR('',#5133,39.3700787401575); +#3218=VECTOR('',#5140,39.3700787401575); +#3219=VECTOR('',#5143,39.3700787401575); +#3220=VECTOR('',#5144,39.3700787401575); +#3221=VECTOR('',#5145,39.3700787401575); +#3222=VECTOR('',#5148,39.3700787401575); +#3223=VECTOR('',#5149,39.3700787401575); +#3224=VECTOR('',#5150,39.3700787401575); +#3225=VECTOR('',#5153,39.3700787401575); +#3226=VECTOR('',#5154,39.3700787401575); +#3227=VECTOR('',#5155,39.3700787401575); +#3228=VECTOR('',#5158,39.3700787401575); +#3229=VECTOR('',#5159,39.3700787401575); +#3230=VECTOR('',#5160,39.3700787401575); +#3231=VECTOR('',#5163,39.3700787401575); +#3232=VECTOR('',#5164,39.3700787401575); +#3233=VECTOR('',#5165,39.3700787401575); +#3234=VECTOR('',#5168,39.3700787401575); +#3235=VECTOR('',#5169,39.3700787401575); +#3236=VECTOR('',#5170,39.3700787401575); +#3237=VECTOR('',#5173,39.3700787401575); +#3238=VECTOR('',#5174,39.3700787401575); +#3239=VECTOR('',#5175,39.3700787401575); +#3240=VECTOR('',#5178,39.3700787401575); +#3241=VECTOR('',#5179,39.3700787401575); +#3242=VECTOR('',#5180,39.3700787401575); +#3243=VECTOR('',#5183,39.3700787401575); +#3244=VECTOR('',#5184,39.3700787401575); +#3245=VECTOR('',#5185,39.3700787401575); +#3246=VECTOR('',#5188,39.3700787401575); +#3247=VECTOR('',#5189,39.3700787401575); +#3248=VECTOR('',#5190,39.3700787401575); +#3249=VECTOR('',#5193,39.3700787401575); +#3250=VECTOR('',#5194,39.3700787401575); +#3251=VECTOR('',#5195,39.3700787401575); +#3252=VECTOR('',#5198,39.3700787401575); +#3253=VECTOR('',#5199,39.3700787401575); +#3254=VECTOR('',#5200,39.3700787401575); +#3255=VECTOR('',#5203,39.3700787401575); +#3256=VECTOR('',#5204,39.3700787401575); +#3257=VECTOR('',#5205,39.3700787401575); +#3258=VECTOR('',#5208,39.3700787401575); +#3259=VECTOR('',#5209,39.3700787401575); +#3260=VECTOR('',#5210,39.3700787401575); +#3261=VECTOR('',#5213,39.3700787401575); +#3262=VECTOR('',#5214,39.3700787401575); +#3263=VECTOR('',#5215,39.3700787401575); +#3264=VECTOR('',#5218,39.3700787401575); +#3265=VECTOR('',#5219,39.3700787401575); +#3266=VECTOR('',#5220,39.3700787401575); +#3267=VECTOR('',#5223,39.3700787401575); +#3268=VECTOR('',#5224,39.3700787401575); +#3269=VECTOR('',#5225,39.3700787401575); +#3270=VECTOR('',#5228,39.3700787401575); +#3271=VECTOR('',#5229,39.3700787401575); +#3272=VECTOR('',#5230,39.3700787401575); +#3273=VECTOR('',#5233,39.3700787401575); +#3274=VECTOR('',#5234,39.3700787401575); +#3275=VECTOR('',#5235,39.3700787401575); +#3276=VECTOR('',#5238,39.3700787401575); +#3277=VECTOR('',#5239,39.3700787401575); +#3278=VECTOR('',#5240,39.3700787401575); +#3279=VECTOR('',#5243,39.3700787401575); +#3280=VECTOR('',#5244,39.3700787401575); +#3281=VECTOR('',#5245,39.3700787401575); +#3282=VECTOR('',#5248,39.3700787401575); +#3283=VECTOR('',#5249,39.3700787401575); +#3284=VECTOR('',#5250,39.3700787401575); +#3285=VECTOR('',#5253,39.3700787401575); +#3286=VECTOR('',#5254,39.3700787401575); +#3287=VECTOR('',#5255,39.3700787401575); +#3288=VECTOR('',#5258,39.3700787401575); +#3289=VECTOR('',#5259,39.3700787401575); +#3290=VECTOR('',#5260,39.3700787401575); +#3291=VECTOR('',#5263,39.3700787401575); +#3292=VECTOR('',#5264,39.3700787401575); +#3293=VECTOR('',#5265,39.3700787401575); +#3294=VECTOR('',#5300,39.3700787401575); +#3295=VECTOR('',#5305,39.3700787401575); +#3296=VECTOR('',#5312,39.3700787401575); +#3297=VECTOR('',#5319,39.3700787401575); +#3298=VECTOR('',#5326,39.3700787401575); +#3299=VECTOR('',#5333,39.3700787401575); +#3300=VECTOR('',#5334,39.3700787401575); +#3301=VECTOR('',#5335,39.3700787401575); +#3302=VECTOR('',#5338,39.3700787401575); +#3303=VECTOR('',#5339,39.3700787401575); +#3304=VECTOR('',#5340,39.3700787401575); +#3305=VECTOR('',#5343,39.3700787401575); +#3306=VECTOR('',#5344,39.3700787401575); +#3307=VECTOR('',#5345,39.3700787401575); +#3308=VECTOR('',#5348,39.3700787401575); +#3309=VECTOR('',#5349,39.3700787401575); +#3310=VECTOR('',#5350,39.3700787401575); +#3311=VECTOR('',#5353,39.3700787401575); +#3312=VECTOR('',#5354,39.3700787401575); +#3313=VECTOR('',#5355,39.3700787401575); +#3314=VECTOR('',#5358,39.3700787401575); +#3315=VECTOR('',#5359,39.3700787401575); +#3316=VECTOR('',#5362,39.3700787401575); +#3317=VECTOR('',#5363,39.3700787401575); +#3318=VECTOR('',#5366,39.3700787401575); +#3319=VECTOR('',#5367,39.3700787401575); +#3320=VECTOR('',#5370,39.3700787401575); +#3321=VECTOR('',#5371,39.3700787401575); +#3322=VECTOR('',#5374,39.3700787401575); +#3323=VECTOR('',#5375,39.3700787401575); +#3324=VECTOR('',#5378,39.3700787401575); +#3325=VECTOR('',#5379,39.3700787401575); +#3326=VECTOR('',#5380,39.3700787401575); +#3327=VECTOR('',#5381,39.3700787401575); +#3328=VECTOR('',#5382,39.3700787401575); +#3329=VECTOR('',#5383,39.3700787401575); +#3330=VECTOR('',#5384,39.3700787401575); +#3331=VECTOR('',#5385,39.3700787401575); +#3332=VECTOR('',#5386,39.3700787401575); +#3333=VECTOR('',#5387,39.3700787401575); +#3334=VECTOR('',#5388,39.3700787401575); +#3335=VECTOR('',#5389,39.3700787401575); +#3336=VECTOR('',#5390,39.3700787401575); +#3337=VECTOR('',#5391,39.3700787401575); +#3338=VECTOR('',#5392,39.3700787401575); +#3339=VECTOR('',#5393,39.3700787401575); +#3340=VECTOR('',#5394,39.3700787401575); +#3341=VECTOR('',#5395,39.3700787401575); +#3342=VECTOR('',#5398,39.3700787401575); +#3343=VECTOR('',#5399,39.3700787401575); +#3344=VECTOR('',#5400,39.3700787401575); +#3345=VECTOR('',#5401,39.3700787401575); +#3346=VECTOR('',#5402,39.3700787401575); +#3347=VECTOR('',#5403,39.3700787401575); +#3348=VECTOR('',#5404,39.3700787401575); +#3349=VECTOR('',#5405,39.3700787401575); +#3350=VECTOR('',#5406,39.3700787401575); +#3351=VECTOR('',#5407,39.3700787401575); +#3352=VECTOR('',#5408,39.3700787401575); +#3353=VECTOR('',#5409,39.3700787401575); +#3354=VECTOR('',#5410,39.3700787401575); +#3355=VECTOR('',#5411,39.3700787401575); +#3356=VECTOR('',#5412,39.3700787401575); +#3357=VECTOR('',#5413,39.3700787401575); +#3358=VECTOR('',#5414,39.3700787401575); +#3359=VECTOR('',#5415,39.3700787401575); +#3360=EDGE_LOOP('',(#98,#99,#100,#101)); +#3361=EDGE_LOOP('',(#102,#103,#104,#105)); +#3362=EDGE_LOOP('',(#106,#107,#108,#109)); +#3363=EDGE_LOOP('',(#110,#111,#112,#113,#114,#115,#116,#117,#118,#119,#120, +#121,#122,#123,#124,#125,#126,#127,#128,#129,#130,#131,#132,#133,#134,#135, +#136,#137)); +#3364=EDGE_LOOP('',(#138,#139,#140,#141,#142,#143,#144,#145,#146,#147,#148, +#149,#150,#151,#152)); +#3365=EDGE_LOOP('',(#153,#154,#155,#156)); +#3366=EDGE_LOOP('',(#157,#158,#159,#160)); +#3367=EDGE_LOOP('',(#161,#162,#163,#164,#165,#166,#167,#168)); +#3368=EDGE_LOOP('',(#169,#170,#171,#172)); +#3369=EDGE_LOOP('',(#173,#174,#175,#176)); +#3370=EDGE_LOOP('',(#177,#178,#179,#180)); +#3371=EDGE_LOOP('',(#181,#182,#183,#184)); +#3372=EDGE_LOOP('',(#185,#186,#187,#188)); +#3373=EDGE_LOOP('',(#189,#190,#191,#192,#193,#194,#195,#196)); +#3374=EDGE_LOOP('',(#197,#198,#199,#200)); +#3375=EDGE_LOOP('',(#201,#202,#203,#204,#205,#206,#207,#208)); +#3376=EDGE_LOOP('',(#209,#210,#211,#212,#213,#214,#215,#216)); +#3377=EDGE_LOOP('',(#217,#218,#219,#220)); +#3378=EDGE_LOOP('',(#221,#222,#223,#224)); +#3379=EDGE_LOOP('',(#225,#226,#227,#228)); +#3380=EDGE_LOOP('',(#229,#230,#231,#232,#233)); +#3381=EDGE_LOOP('',(#234,#235,#236,#237,#238,#239,#240,#241)); +#3382=EDGE_LOOP('',(#242,#243,#244,#245,#246)); +#3383=EDGE_LOOP('',(#247,#248,#249,#250)); +#3384=EDGE_LOOP('',(#251,#252,#253,#254)); +#3385=EDGE_LOOP('',(#255,#256,#257)); +#3386=EDGE_LOOP('',(#258,#259,#260,#261)); +#3387=EDGE_LOOP('',(#262,#263,#264,#265)); +#3388=EDGE_LOOP('',(#266,#267,#268,#269)); +#3389=EDGE_LOOP('',(#270,#271,#272,#273)); +#3390=EDGE_LOOP('',(#274,#275,#276,#277)); +#3391=EDGE_LOOP('',(#278,#279,#280,#281)); +#3392=EDGE_LOOP('',(#282,#283,#284,#285)); +#3393=EDGE_LOOP('',(#286,#287,#288,#289)); +#3394=EDGE_LOOP('',(#290,#291,#292,#293)); +#3395=EDGE_LOOP('',(#294,#295,#296,#297)); +#3396=EDGE_LOOP('',(#298,#299,#300,#301)); +#3397=EDGE_LOOP('',(#302,#303,#304,#305)); +#3398=EDGE_LOOP('',(#306,#307,#308,#309,#310,#311,#312,#313)); +#3399=EDGE_LOOP('',(#314,#315,#316,#317,#318,#319)); +#3400=EDGE_LOOP('',(#320,#321,#322,#323)); +#3401=EDGE_LOOP('',(#324,#325,#326,#327)); +#3402=EDGE_LOOP('',(#328,#329,#330)); +#3403=EDGE_LOOP('',(#331,#332,#333,#334)); +#3404=EDGE_LOOP('',(#335,#336,#337,#338)); +#3405=EDGE_LOOP('',(#339,#340,#341)); +#3406=EDGE_LOOP('',(#342,#343,#344,#345,#346,#347,#348,#349,#350,#351,#352, +#353,#354,#355,#356,#357,#358,#359,#360,#361,#362,#363,#364,#365,#366,#367, +#368,#369,#370,#371,#372,#373,#374,#375,#376,#377)); +#3407=EDGE_LOOP('',(#378,#379,#380,#381,#382,#383,#384,#385,#386,#387,#388, +#389,#390,#391,#392,#393,#394,#395,#396,#397,#398,#399,#400,#401,#402,#403, +#404,#405,#406,#407,#408,#409,#410,#411,#412,#413)); +#3408=EDGE_LOOP('',(#414,#415,#416,#417)); +#3409=EDGE_LOOP('',(#418,#419,#420,#421)); +#3410=EDGE_LOOP('',(#422,#423,#424,#425)); +#3411=EDGE_LOOP('',(#426,#427,#428,#429)); +#3412=EDGE_LOOP('',(#430,#431,#432,#433)); +#3413=EDGE_LOOP('',(#434,#435,#436,#437)); +#3414=EDGE_LOOP('',(#438,#439,#440,#441)); +#3415=EDGE_LOOP('',(#442,#443,#444,#445)); +#3416=EDGE_LOOP('',(#446,#447,#448,#449)); +#3417=EDGE_LOOP('',(#450,#451,#452,#453)); +#3418=EDGE_LOOP('',(#454,#455,#456,#457)); +#3419=EDGE_LOOP('',(#458,#459,#460,#461)); +#3420=EDGE_LOOP('',(#462,#463,#464,#465)); +#3421=EDGE_LOOP('',(#466,#467,#468,#469)); +#3422=EDGE_LOOP('',(#470,#471,#472,#473)); +#3423=EDGE_LOOP('',(#474,#475,#476,#477)); +#3424=EDGE_LOOP('',(#478,#479,#480,#481)); +#3425=EDGE_LOOP('',(#482,#483,#484,#485)); +#3426=EDGE_LOOP('',(#486,#487,#488,#489)); +#3427=EDGE_LOOP('',(#490,#491,#492,#493)); +#3428=EDGE_LOOP('',(#494,#495,#496,#497)); +#3429=EDGE_LOOP('',(#498,#499,#500,#501)); +#3430=EDGE_LOOP('',(#502,#503,#504,#505)); +#3431=EDGE_LOOP('',(#506,#507,#508,#509)); +#3432=EDGE_LOOP('',(#510,#511,#512,#513)); +#3433=EDGE_LOOP('',(#514,#515,#516,#517)); +#3434=EDGE_LOOP('',(#518,#519,#520,#521)); +#3435=EDGE_LOOP('',(#522,#523,#524,#525)); +#3436=EDGE_LOOP('',(#526,#527,#528,#529)); +#3437=EDGE_LOOP('',(#530,#531,#532,#533)); +#3438=EDGE_LOOP('',(#534,#535,#536,#537)); +#3439=EDGE_LOOP('',(#538,#539,#540,#541)); +#3440=EDGE_LOOP('',(#542,#543,#544,#545)); +#3441=EDGE_LOOP('',(#546,#547,#548,#549)); +#3442=EDGE_LOOP('',(#550,#551,#552,#553)); +#3443=EDGE_LOOP('',(#554,#555,#556,#557)); +#3444=EDGE_LOOP('',(#558,#559,#560,#561)); +#3445=EDGE_LOOP('',(#562,#563,#564,#565)); +#3446=EDGE_LOOP('',(#566,#567,#568,#569)); +#3447=EDGE_LOOP('',(#570,#571,#572,#573)); +#3448=EDGE_LOOP('',(#574,#575,#576,#577)); +#3449=EDGE_LOOP('',(#578,#579,#580,#581)); +#3450=EDGE_LOOP('',(#582,#583,#584,#585)); +#3451=EDGE_LOOP('',(#586,#587,#588,#589)); +#3452=EDGE_LOOP('',(#590,#591,#592,#593)); +#3453=EDGE_LOOP('',(#594,#595,#596,#597)); +#3454=EDGE_LOOP('',(#598,#599,#600,#601)); +#3455=EDGE_LOOP('',(#602,#603,#604,#605)); +#3456=EDGE_LOOP('',(#606,#607,#608,#609)); +#3457=EDGE_LOOP('',(#610,#611,#612,#613)); +#3458=EDGE_LOOP('',(#614,#615,#616,#617)); +#3459=EDGE_LOOP('',(#618,#619,#620,#621)); +#3460=EDGE_LOOP('',(#622,#623,#624,#625)); +#3461=EDGE_LOOP('',(#626,#627,#628,#629)); +#3462=EDGE_LOOP('',(#630,#631,#632,#633)); +#3463=EDGE_LOOP('',(#634,#635,#636,#637)); +#3464=EDGE_LOOP('',(#638,#639,#640,#641)); +#3465=EDGE_LOOP('',(#642,#643,#644,#645)); +#3466=EDGE_LOOP('',(#646,#647,#648,#649)); +#3467=EDGE_LOOP('',(#650,#651,#652,#653)); +#3468=EDGE_LOOP('',(#654,#655,#656,#657)); +#3469=EDGE_LOOP('',(#658,#659,#660,#661)); +#3470=EDGE_LOOP('',(#662,#663,#664,#665)); +#3471=EDGE_LOOP('',(#666,#667,#668,#669)); +#3472=EDGE_LOOP('',(#670,#671,#672,#673)); +#3473=EDGE_LOOP('',(#674,#675,#676,#677)); +#3474=EDGE_LOOP('',(#678,#679,#680,#681)); +#3475=EDGE_LOOP('',(#682,#683,#684,#685)); +#3476=EDGE_LOOP('',(#686,#687,#688,#689)); +#3477=EDGE_LOOP('',(#690,#691,#692,#693)); +#3478=EDGE_LOOP('',(#694,#695,#696,#697)); +#3479=EDGE_LOOP('',(#698,#699,#700,#701)); +#3480=EDGE_LOOP('',(#702,#703,#704,#705)); +#3481=EDGE_LOOP('',(#706,#707,#708,#709)); +#3482=EDGE_LOOP('',(#710,#711,#712,#713)); +#3483=EDGE_LOOP('',(#714,#715,#716,#717)); +#3484=EDGE_LOOP('',(#718,#719,#720,#721)); +#3485=EDGE_LOOP('',(#722,#723,#724,#725)); +#3486=EDGE_LOOP('',(#726,#727,#728,#729)); +#3487=EDGE_LOOP('',(#730,#731,#732,#733)); +#3488=EDGE_LOOP('',(#734,#735,#736,#737)); +#3489=EDGE_LOOP('',(#738,#739,#740,#741)); +#3490=EDGE_LOOP('',(#742,#743,#744,#745)); +#3491=EDGE_LOOP('',(#746,#747,#748,#749)); +#3492=EDGE_LOOP('',(#750,#751,#752,#753)); +#3493=EDGE_LOOP('',(#754,#755,#756,#757)); +#3494=EDGE_LOOP('',(#758,#759,#760,#761)); +#3495=EDGE_LOOP('',(#762,#763,#764,#765)); +#3496=EDGE_LOOP('',(#766,#767,#768,#769)); +#3497=EDGE_LOOP('',(#770,#771,#772,#773)); +#3498=EDGE_LOOP('',(#774,#775,#776,#777)); +#3499=EDGE_LOOP('',(#778,#779,#780,#781)); +#3500=EDGE_LOOP('',(#782,#783,#784,#785)); +#3501=EDGE_LOOP('',(#786,#787,#788,#789)); +#3502=EDGE_LOOP('',(#790,#791,#792,#793)); +#3503=EDGE_LOOP('',(#794,#795,#796,#797)); +#3504=EDGE_LOOP('',(#798,#799,#800,#801)); +#3505=EDGE_LOOP('',(#802,#803,#804,#805)); +#3506=EDGE_LOOP('',(#806,#807,#808,#809)); +#3507=EDGE_LOOP('',(#810,#811,#812,#813)); +#3508=EDGE_LOOP('',(#814,#815,#816,#817)); +#3509=EDGE_LOOP('',(#818,#819,#820,#821)); +#3510=EDGE_LOOP('',(#822,#823,#824,#825)); +#3511=EDGE_LOOP('',(#826,#827,#828,#829)); +#3512=EDGE_LOOP('',(#830,#831,#832,#833)); +#3513=EDGE_LOOP('',(#834,#835,#836,#837)); +#3514=EDGE_LOOP('',(#838,#839,#840,#841)); +#3515=EDGE_LOOP('',(#842,#843,#844,#845)); +#3516=EDGE_LOOP('',(#846,#847,#848,#849)); +#3517=EDGE_LOOP('',(#850,#851,#852,#853)); +#3518=EDGE_LOOP('',(#854,#855,#856,#857)); +#3519=EDGE_LOOP('',(#858,#859,#860,#861)); +#3520=EDGE_LOOP('',(#862,#863,#864,#865)); +#3521=EDGE_LOOP('',(#866,#867,#868,#869)); +#3522=EDGE_LOOP('',(#870,#871,#872,#873)); +#3523=EDGE_LOOP('',(#874,#875,#876,#877)); +#3524=EDGE_LOOP('',(#878,#879,#880,#881)); +#3525=EDGE_LOOP('',(#882,#883,#884,#885)); +#3526=EDGE_LOOP('',(#886,#887,#888,#889)); +#3527=EDGE_LOOP('',(#890,#891,#892,#893)); +#3528=EDGE_LOOP('',(#894,#895,#896,#897,#898,#899,#900,#901,#902,#903,#904, +#905,#906,#907,#908,#909,#910,#911,#912,#913,#914,#915,#916,#917,#918,#919, +#920,#921,#922,#923,#924,#925,#926,#927,#928,#929)); +#3529=EDGE_LOOP('',(#930,#931,#932,#933,#934,#935,#936,#937,#938,#939,#940, +#941,#942,#943,#944,#945,#946,#947,#948,#949,#950,#951,#952,#953,#954,#955, +#956,#957,#958,#959,#960,#961,#962,#963,#964,#965)); +#3530=EDGE_LOOP('',(#966,#967,#968,#969,#970,#971,#972,#973,#974,#975,#976, +#977,#978,#979,#980,#981,#982,#983,#984,#985,#986,#987,#988,#989,#990,#991, +#992,#993)); +#3531=EDGE_LOOP('',(#994,#995,#996,#997,#998,#999,#1000,#1001,#1002,#1003, +#1004,#1005,#1006,#1007,#1008,#1009,#1010,#1011,#1012,#1013,#1014,#1015, +#1016,#1017,#1018,#1019,#1020,#1021)); +#3532=EDGE_LOOP('',(#1022,#1023,#1024,#1025,#1026,#1027,#1028,#1029,#1030, +#1031)); +#3533=EDGE_LOOP('',(#1032,#1033,#1034,#1035,#1036,#1037,#1038,#1039,#1040, +#1041)); +#3534=EDGE_LOOP('',(#1042,#1043,#1044,#1045,#1046,#1047,#1048,#1049,#1050, +#1051)); +#3535=EDGE_LOOP('',(#1052,#1053,#1054,#1055,#1056,#1057,#1058,#1059,#1060, +#1061)); +#3536=EDGE_LOOP('',(#1062,#1063,#1064,#1065,#1066,#1067,#1068,#1069,#1070, +#1071)); +#3537=EDGE_LOOP('',(#1072,#1073,#1074,#1075,#1076,#1077,#1078,#1079,#1080, +#1081)); +#3538=EDGE_LOOP('',(#1082,#1083,#1084,#1085,#1086,#1087,#1088,#1089,#1090, +#1091)); +#3539=EDGE_LOOP('',(#1092,#1093,#1094,#1095,#1096,#1097,#1098,#1099,#1100, +#1101)); +#3540=EDGE_LOOP('',(#1102,#1103,#1104,#1105,#1106,#1107,#1108,#1109,#1110, +#1111)); +#3541=EDGE_LOOP('',(#1112,#1113,#1114,#1115,#1116,#1117,#1118,#1119,#1120, +#1121)); +#3542=EDGE_LOOP('',(#1122,#1123,#1124,#1125,#1126,#1127,#1128,#1129,#1130, +#1131)); +#3543=EDGE_LOOP('',(#1132,#1133,#1134,#1135,#1136,#1137,#1138,#1139,#1140, +#1141)); +#3544=EDGE_LOOP('',(#1142,#1143,#1144,#1145,#1146,#1147,#1148,#1149,#1150, +#1151)); +#3545=EDGE_LOOP('',(#1152,#1153,#1154,#1155,#1156,#1157,#1158,#1159,#1160, +#1161)); +#3546=EDGE_LOOP('',(#1162,#1163,#1164,#1165,#1166,#1167,#1168,#1169,#1170, +#1171)); +#3547=EDGE_LOOP('',(#1172,#1173,#1174,#1175,#1176,#1177,#1178,#1179,#1180, +#1181)); +#3548=EDGE_LOOP('',(#1182,#1183,#1184,#1185,#1186,#1187)); +#3549=EDGE_LOOP('',(#1188,#1189,#1190,#1191,#1192,#1193)); +#3550=EDGE_LOOP('',(#1194,#1195,#1196,#1197,#1198,#1199)); +#3551=EDGE_LOOP('',(#1200,#1201,#1202,#1203,#1204,#1205)); +#3552=EDGE_LOOP('',(#1206,#1207,#1208,#1209,#1210,#1211)); +#3553=EDGE_LOOP('',(#1212,#1213,#1214,#1215,#1216,#1217)); +#3554=EDGE_LOOP('',(#1218,#1219,#1220,#1221,#1222,#1223)); +#3555=EDGE_LOOP('',(#1224,#1225,#1226,#1227,#1228,#1229)); +#3556=EDGE_LOOP('',(#1230,#1231,#1232,#1233,#1234,#1235)); +#3557=EDGE_LOOP('',(#1236,#1237,#1238,#1239,#1240,#1241)); +#3558=EDGE_LOOP('',(#1242,#1243,#1244,#1245,#1246,#1247)); +#3559=EDGE_LOOP('',(#1248,#1249,#1250,#1251,#1252,#1253)); +#3560=EDGE_LOOP('',(#1254,#1255,#1256,#1257,#1258,#1259)); +#3561=EDGE_LOOP('',(#1260,#1261,#1262,#1263,#1264,#1265)); +#3562=EDGE_LOOP('',(#1266,#1267,#1268,#1269,#1270,#1271)); +#3563=EDGE_LOOP('',(#1272,#1273,#1274,#1275,#1276,#1277)); +#3564=FACE_BOUND('',#3360,.T.); +#3565=FACE_BOUND('',#3361,.T.); +#3566=FACE_BOUND('',#3362,.T.); +#3567=FACE_BOUND('',#3363,.T.); +#3568=FACE_BOUND('',#3364,.T.); +#3569=FACE_BOUND('',#3365,.T.); +#3570=FACE_BOUND('',#3366,.T.); +#3571=FACE_BOUND('',#3367,.T.); +#3572=FACE_BOUND('',#3368,.T.); +#3573=FACE_BOUND('',#3369,.T.); +#3574=FACE_BOUND('',#3370,.T.); +#3575=FACE_BOUND('',#3371,.T.); +#3576=FACE_BOUND('',#3372,.T.); +#3577=FACE_BOUND('',#3373,.T.); +#3578=FACE_BOUND('',#3374,.T.); +#3579=FACE_BOUND('',#3375,.T.); +#3580=FACE_BOUND('',#3376,.T.); +#3581=FACE_BOUND('',#3377,.T.); +#3582=FACE_BOUND('',#3378,.T.); +#3583=FACE_BOUND('',#3379,.T.); +#3584=FACE_BOUND('',#3380,.T.); +#3585=FACE_BOUND('',#3381,.T.); +#3586=FACE_BOUND('',#3382,.T.); +#3587=FACE_BOUND('',#3383,.T.); +#3588=FACE_BOUND('',#3384,.T.); +#3589=FACE_BOUND('',#3385,.T.); +#3590=FACE_BOUND('',#3386,.T.); +#3591=FACE_BOUND('',#3387,.T.); +#3592=FACE_BOUND('',#3388,.T.); +#3593=FACE_BOUND('',#3389,.T.); +#3594=FACE_BOUND('',#3390,.T.); +#3595=FACE_BOUND('',#3391,.T.); +#3596=FACE_BOUND('',#3392,.T.); +#3597=FACE_BOUND('',#3393,.T.); +#3598=FACE_BOUND('',#3394,.T.); +#3599=FACE_BOUND('',#3395,.T.); +#3600=FACE_BOUND('',#3396,.T.); +#3601=FACE_BOUND('',#3397,.T.); +#3602=FACE_BOUND('',#3398,.T.); +#3603=FACE_BOUND('',#3399,.T.); +#3604=FACE_BOUND('',#3400,.T.); +#3605=FACE_BOUND('',#3401,.T.); +#3606=FACE_BOUND('',#3402,.T.); +#3607=FACE_BOUND('',#3403,.T.); +#3608=FACE_BOUND('',#3404,.T.); +#3609=FACE_BOUND('',#3405,.T.); +#3610=FACE_BOUND('',#3406,.T.); +#3611=FACE_BOUND('',#3407,.T.); +#3612=FACE_BOUND('',#3408,.T.); +#3613=FACE_BOUND('',#3409,.T.); +#3614=FACE_BOUND('',#3410,.T.); +#3615=FACE_BOUND('',#3411,.T.); +#3616=FACE_BOUND('',#3412,.T.); +#3617=FACE_BOUND('',#3413,.T.); +#3618=FACE_BOUND('',#3414,.T.); +#3619=FACE_BOUND('',#3415,.T.); +#3620=FACE_BOUND('',#3416,.T.); +#3621=FACE_BOUND('',#3417,.T.); +#3622=FACE_BOUND('',#3418,.T.); +#3623=FACE_BOUND('',#3419,.T.); +#3624=FACE_BOUND('',#3420,.T.); +#3625=FACE_BOUND('',#3421,.T.); +#3626=FACE_BOUND('',#3422,.T.); +#3627=FACE_BOUND('',#3423,.T.); +#3628=FACE_BOUND('',#3424,.T.); +#3629=FACE_BOUND('',#3425,.T.); +#3630=FACE_BOUND('',#3426,.T.); +#3631=FACE_BOUND('',#3427,.T.); +#3632=FACE_BOUND('',#3428,.T.); +#3633=FACE_BOUND('',#3429,.T.); +#3634=FACE_BOUND('',#3430,.T.); +#3635=FACE_BOUND('',#3431,.T.); +#3636=FACE_BOUND('',#3432,.T.); +#3637=FACE_BOUND('',#3433,.T.); +#3638=FACE_BOUND('',#3434,.T.); +#3639=FACE_BOUND('',#3435,.T.); +#3640=FACE_BOUND('',#3436,.T.); +#3641=FACE_BOUND('',#3437,.T.); +#3642=FACE_BOUND('',#3438,.T.); +#3643=FACE_BOUND('',#3439,.T.); +#3644=FACE_BOUND('',#3440,.T.); +#3645=FACE_BOUND('',#3441,.T.); +#3646=FACE_BOUND('',#3442,.T.); +#3647=FACE_BOUND('',#3443,.T.); +#3648=FACE_BOUND('',#3444,.T.); +#3649=FACE_BOUND('',#3445,.T.); +#3650=FACE_BOUND('',#3446,.T.); +#3651=FACE_BOUND('',#3447,.T.); +#3652=FACE_BOUND('',#3448,.T.); +#3653=FACE_BOUND('',#3449,.T.); +#3654=FACE_BOUND('',#3450,.T.); +#3655=FACE_BOUND('',#3451,.T.); +#3656=FACE_BOUND('',#3452,.T.); +#3657=FACE_BOUND('',#3453,.T.); +#3658=FACE_BOUND('',#3454,.T.); +#3659=FACE_BOUND('',#3455,.T.); +#3660=FACE_BOUND('',#3456,.T.); +#3661=FACE_BOUND('',#3457,.T.); +#3662=FACE_BOUND('',#3458,.T.); +#3663=FACE_BOUND('',#3459,.T.); +#3664=FACE_BOUND('',#3460,.T.); +#3665=FACE_BOUND('',#3461,.T.); +#3666=FACE_BOUND('',#3462,.T.); +#3667=FACE_BOUND('',#3463,.T.); +#3668=FACE_BOUND('',#3464,.T.); +#3669=FACE_BOUND('',#3465,.T.); +#3670=FACE_BOUND('',#3466,.T.); +#3671=FACE_BOUND('',#3467,.T.); +#3672=FACE_BOUND('',#3468,.T.); +#3673=FACE_BOUND('',#3469,.T.); +#3674=FACE_BOUND('',#3470,.T.); +#3675=FACE_BOUND('',#3471,.T.); +#3676=FACE_BOUND('',#3472,.T.); +#3677=FACE_BOUND('',#3473,.T.); +#3678=FACE_BOUND('',#3474,.T.); +#3679=FACE_BOUND('',#3475,.T.); +#3680=FACE_BOUND('',#3476,.T.); +#3681=FACE_BOUND('',#3477,.T.); +#3682=FACE_BOUND('',#3478,.T.); +#3683=FACE_BOUND('',#3479,.T.); +#3684=FACE_BOUND('',#3480,.T.); +#3685=FACE_BOUND('',#3481,.T.); +#3686=FACE_BOUND('',#3482,.T.); +#3687=FACE_BOUND('',#3483,.T.); +#3688=FACE_BOUND('',#3484,.T.); +#3689=FACE_BOUND('',#3485,.T.); +#3690=FACE_BOUND('',#3486,.T.); +#3691=FACE_BOUND('',#3487,.T.); +#3692=FACE_BOUND('',#3488,.T.); +#3693=FACE_BOUND('',#3489,.T.); +#3694=FACE_BOUND('',#3490,.T.); +#3695=FACE_BOUND('',#3491,.T.); +#3696=FACE_BOUND('',#3492,.T.); +#3697=FACE_BOUND('',#3493,.T.); +#3698=FACE_BOUND('',#3494,.T.); +#3699=FACE_BOUND('',#3495,.T.); +#3700=FACE_BOUND('',#3496,.T.); +#3701=FACE_BOUND('',#3497,.T.); +#3702=FACE_BOUND('',#3498,.T.); +#3703=FACE_BOUND('',#3499,.T.); +#3704=FACE_BOUND('',#3500,.T.); +#3705=FACE_BOUND('',#3501,.T.); +#3706=FACE_BOUND('',#3502,.T.); +#3707=FACE_BOUND('',#3503,.T.); +#3708=FACE_BOUND('',#3504,.T.); +#3709=FACE_BOUND('',#3505,.T.); +#3710=FACE_BOUND('',#3506,.T.); +#3711=FACE_BOUND('',#3507,.T.); +#3712=FACE_BOUND('',#3508,.T.); +#3713=FACE_BOUND('',#3509,.T.); +#3714=FACE_BOUND('',#3510,.T.); +#3715=FACE_BOUND('',#3511,.T.); +#3716=FACE_BOUND('',#3512,.T.); +#3717=FACE_BOUND('',#3513,.T.); +#3718=FACE_BOUND('',#3514,.T.); +#3719=FACE_BOUND('',#3515,.T.); +#3720=FACE_BOUND('',#3516,.T.); +#3721=FACE_BOUND('',#3517,.T.); +#3722=FACE_BOUND('',#3518,.T.); +#3723=FACE_BOUND('',#3519,.T.); +#3724=FACE_BOUND('',#3520,.T.); +#3725=FACE_BOUND('',#3521,.T.); +#3726=FACE_BOUND('',#3522,.T.); +#3727=FACE_BOUND('',#3523,.T.); +#3728=FACE_BOUND('',#3524,.T.); +#3729=FACE_BOUND('',#3525,.T.); +#3730=FACE_BOUND('',#3526,.T.); +#3731=FACE_BOUND('',#3527,.T.); +#3732=FACE_BOUND('',#3528,.T.); +#3733=FACE_BOUND('',#3529,.T.); +#3734=FACE_BOUND('',#3530,.T.); +#3735=FACE_BOUND('',#3531,.T.); +#3736=FACE_BOUND('',#3532,.T.); +#3737=FACE_BOUND('',#3533,.T.); +#3738=FACE_BOUND('',#3534,.T.); +#3739=FACE_BOUND('',#3535,.T.); +#3740=FACE_BOUND('',#3536,.T.); +#3741=FACE_BOUND('',#3537,.T.); +#3742=FACE_BOUND('',#3538,.T.); +#3743=FACE_BOUND('',#3539,.T.); +#3744=FACE_BOUND('',#3540,.T.); +#3745=FACE_BOUND('',#3541,.T.); +#3746=FACE_BOUND('',#3542,.T.); +#3747=FACE_BOUND('',#3543,.T.); +#3748=FACE_BOUND('',#3544,.T.); +#3749=FACE_BOUND('',#3545,.T.); +#3750=FACE_BOUND('',#3546,.T.); +#3751=FACE_BOUND('',#3547,.T.); +#3752=FACE_BOUND('',#3548,.T.); +#3753=FACE_BOUND('',#3549,.T.); +#3754=FACE_BOUND('',#3550,.T.); +#3755=FACE_BOUND('',#3551,.T.); +#3756=FACE_BOUND('',#3552,.T.); +#3757=FACE_BOUND('',#3553,.T.); +#3758=FACE_BOUND('',#3554,.T.); +#3759=FACE_BOUND('',#3555,.T.); +#3760=FACE_BOUND('',#3556,.T.); +#3761=FACE_BOUND('',#3557,.T.); +#3762=FACE_BOUND('',#3558,.T.); +#3763=FACE_BOUND('',#3559,.T.); +#3764=FACE_BOUND('',#3560,.T.); +#3765=FACE_BOUND('',#3561,.T.); +#3766=FACE_BOUND('',#3562,.T.); +#3767=FACE_BOUND('',#3563,.T.); +#3768=PLANE('',#4193); +#3769=PLANE('',#4194); +#3770=PLANE('',#4195); +#3771=PLANE('',#4196); +#3772=PLANE('',#4197); +#3773=PLANE('',#4198); +#3774=PLANE('',#4199); +#3775=PLANE('',#4200); +#3776=PLANE('',#4201); +#3777=PLANE('',#4202); +#3778=PLANE('',#4203); +#3779=PLANE('',#4204); +#3780=PLANE('',#4205); +#3781=PLANE('',#4206); +#3782=PLANE('',#4207); +#3783=PLANE('',#4208); +#3784=PLANE('',#4209); +#3785=PLANE('',#4210); +#3786=PLANE('',#4211); +#3787=PLANE('',#4212); +#3788=PLANE('',#4213); +#3789=PLANE('',#4214); +#3790=PLANE('',#4215); +#3791=PLANE('',#4216); +#3792=PLANE('',#4217); +#3793=PLANE('',#4218); +#3794=PLANE('',#4219); +#3795=PLANE('',#4220); +#3796=PLANE('',#4221); +#3797=PLANE('',#4222); +#3798=PLANE('',#4223); +#3799=PLANE('',#4224); +#3800=PLANE('',#4225); +#3801=PLANE('',#4226); +#3802=PLANE('',#4227); +#3803=PLANE('',#4228); +#3804=PLANE('',#4229); +#3805=PLANE('',#4230); +#3806=PLANE('',#4232); +#3807=PLANE('',#4233); +#3808=PLANE('',#4234); +#3809=PLANE('',#4235); +#3810=PLANE('',#4236); +#3811=PLANE('',#4237); +#3812=PLANE('',#4238); +#3813=PLANE('',#4239); +#3814=PLANE('',#4241); +#3815=PLANE('',#4242); +#3816=PLANE('',#4243); +#3817=PLANE('',#4244); +#3818=PLANE('',#4245); +#3819=PLANE('',#4246); +#3820=PLANE('',#4247); +#3821=PLANE('',#4248); +#3822=PLANE('',#4249); +#3823=PLANE('',#4250); +#3824=PLANE('',#4251); +#3825=PLANE('',#4252); +#3826=PLANE('',#4253); +#3827=PLANE('',#4254); +#3828=PLANE('',#4255); +#3829=PLANE('',#4256); +#3830=PLANE('',#4257); +#3831=PLANE('',#4258); +#3832=PLANE('',#4259); +#3833=PLANE('',#4260); +#3834=PLANE('',#4261); +#3835=PLANE('',#4262); +#3836=PLANE('',#4263); +#3837=PLANE('',#4264); +#3838=PLANE('',#4265); +#3839=PLANE('',#4266); +#3840=PLANE('',#4267); +#3841=PLANE('',#4268); +#3842=PLANE('',#4269); +#3843=PLANE('',#4270); +#3844=PLANE('',#4271); +#3845=PLANE('',#4272); +#3846=PLANE('',#4273); +#3847=PLANE('',#4274); +#3848=PLANE('',#4275); +#3849=PLANE('',#4276); +#3850=PLANE('',#4277); +#3851=PLANE('',#4278); +#3852=PLANE('',#4279); +#3853=PLANE('',#4280); +#3854=PLANE('',#4281); +#3855=PLANE('',#4282); +#3856=PLANE('',#4283); +#3857=PLANE('',#4284); +#3858=PLANE('',#4285); +#3859=PLANE('',#4286); +#3860=PLANE('',#4287); +#3861=PLANE('',#4288); +#3862=PLANE('',#4289); +#3863=PLANE('',#4290); +#3864=PLANE('',#4291); +#3865=PLANE('',#4292); +#3866=PLANE('',#4293); +#3867=PLANE('',#4294); +#3868=PLANE('',#4295); +#3869=PLANE('',#4296); +#3870=PLANE('',#4297); +#3871=PLANE('',#4313); +#3872=PLANE('',#4314); +#3873=PLANE('',#4315); +#3874=PLANE('',#4316); +#3875=PLANE('',#4317); +#3876=PLANE('',#4318); +#3877=PLANE('',#4319); +#3878=PLANE('',#4320); +#3879=PLANE('',#4321); +#3880=PLANE('',#4322); +#3881=PLANE('',#4338); +#3882=PLANE('',#4339); +#3883=PLANE('',#4340); +#3884=PLANE('',#4341); +#3885=PLANE('',#4342); +#3886=PLANE('',#4343); +#3887=PLANE('',#4344); +#3888=PLANE('',#4345); +#3889=PLANE('',#4346); +#3890=PLANE('',#4347); +#3891=PLANE('',#4348); +#3892=PLANE('',#4349); +#3893=PLANE('',#4350); +#3894=PLANE('',#4351); +#3895=PLANE('',#4352); +#3896=PLANE('',#4353); +#3897=PLANE('',#4354); +#3898=PLANE('',#4355); +#3899=PLANE('',#4356); +#3900=PLANE('',#4357); +#3901=PLANE('',#4358); +#3902=PLANE('',#4359); +#3903=PLANE('',#4360); +#3904=PLANE('',#4361); +#3905=PLANE('',#4362); +#3906=PLANE('',#4393); +#3907=PLANE('',#4394); +#3908=PLANE('',#4395); +#3909=PLANE('',#4396); +#3910=PLANE('',#4397); +#3911=PLANE('',#4398); +#3912=PLANE('',#4399); +#3913=PLANE('',#4400); +#3914=PLANE('',#4401); +#3915=PLANE('',#4402); +#3916=PLANE('',#4403); +#3917=PLANE('',#4404); +#3918=PLANE('',#4405); +#3919=PLANE('',#4406); +#3920=PLANE('',#4407); +#3921=PLANE('',#4408); +#3922=PLANE('',#4409); +#3923=PLANE('',#4410); +#3924=PLANE('',#4411); +#3925=PLANE('',#4412); +#3926=PLANE('',#4413); +#3927=PLANE('',#4414); +#3928=PLANE('',#4415); +#3929=PLANE('',#4416); +#3930=PLANE('',#4417); +#3931=PLANE('',#4418); +#3932=PLANE('',#4419); +#3933=PLANE('',#4420); +#3934=PLANE('',#4421); +#3935=PLANE('',#4422); +#3936=PLANE('',#4423); +#3937=PLANE('',#4424); +#3938=PLANE('',#4425); +#3939=PLANE('',#4426); +#3940=PLANE('',#4427); +#3941=PLANE('',#4428); +#3942=PLANE('',#4429); +#3943=PLANE('',#4430); +#3944=PLANE('',#4431); +#3945=PLANE('',#4432); +#3946=PLANE('',#4433); +#3947=PLANE('',#4434); +#3948=PLANE('',#4435); +#3949=PLANE('',#4436); +#3950=PLANE('',#4437); +#3951=PLANE('',#4438); +#3952=ADVANCED_FACE('',(#3564),#3768,.F.); +#3953=ADVANCED_FACE('',(#3565),#3769,.F.); +#3954=ADVANCED_FACE('',(#3566),#3770,.F.); +#3955=ADVANCED_FACE('',(#3567),#3771,.F.); +#3956=ADVANCED_FACE('',(#3568),#3772,.T.); +#3957=ADVANCED_FACE('',(#3569),#3773,.T.); +#3958=ADVANCED_FACE('',(#3570),#3774,.T.); +#3959=ADVANCED_FACE('',(#3571),#3775,.F.); +#3960=ADVANCED_FACE('',(#3572),#3776,.F.); +#3961=ADVANCED_FACE('',(#3573),#3777,.F.); +#3962=ADVANCED_FACE('',(#3574),#3778,.F.); +#3963=ADVANCED_FACE('',(#3575),#3779,.F.); +#3964=ADVANCED_FACE('',(#3576),#3780,.T.); +#3965=ADVANCED_FACE('',(#3577),#3781,.T.); +#3966=ADVANCED_FACE('',(#3578),#3782,.T.); +#3967=ADVANCED_FACE('',(#3579),#3783,.F.); +#3968=ADVANCED_FACE('',(#3580),#3784,.T.); +#3969=ADVANCED_FACE('',(#3581),#3785,.T.); +#3970=ADVANCED_FACE('',(#3582),#3786,.T.); +#3971=ADVANCED_FACE('',(#3583),#3787,.T.); +#3972=ADVANCED_FACE('',(#3584),#3788,.T.); +#3973=ADVANCED_FACE('',(#3585),#3789,.T.); +#3974=ADVANCED_FACE('',(#3586),#3790,.T.); +#3975=ADVANCED_FACE('',(#3587),#3791,.F.); +#3976=ADVANCED_FACE('',(#3588),#3792,.F.); +#3977=ADVANCED_FACE('',(#3589),#3793,.T.); +#3978=ADVANCED_FACE('',(#3590),#3794,.F.); +#3979=ADVANCED_FACE('',(#3591),#3795,.F.); +#3980=ADVANCED_FACE('',(#3592),#3796,.F.); +#3981=ADVANCED_FACE('',(#3593),#3797,.F.); +#3982=ADVANCED_FACE('',(#3594),#3798,.F.); +#3983=ADVANCED_FACE('',(#3595),#3799,.F.); +#3984=ADVANCED_FACE('',(#3596),#3800,.F.); +#3985=ADVANCED_FACE('',(#3597),#3801,.F.); +#3986=ADVANCED_FACE('',(#3598),#3802,.F.); +#3987=ADVANCED_FACE('',(#3599),#3803,.F.); +#3988=ADVANCED_FACE('',(#3600),#3804,.F.); +#3989=ADVANCED_FACE('',(#3601),#3805,.F.); +#3990=ADVANCED_FACE('',(#3602),#3806,.T.); +#3991=ADVANCED_FACE('',(#3603),#3807,.T.); +#3992=ADVANCED_FACE('',(#3604),#3808,.T.); +#3993=ADVANCED_FACE('',(#3605),#3809,.T.); +#3994=ADVANCED_FACE('',(#3606),#3810,.F.); +#3995=ADVANCED_FACE('',(#3607),#3811,.T.); +#3996=ADVANCED_FACE('',(#3608),#3812,.T.); +#3997=ADVANCED_FACE('',(#3609),#3813,.T.); +#3998=ADVANCED_FACE('',(#3610),#3814,.F.); +#3999=ADVANCED_FACE('',(#3611),#3815,.F.); +#4000=ADVANCED_FACE('',(#3612),#3816,.F.); +#4001=ADVANCED_FACE('',(#3613),#3817,.F.); +#4002=ADVANCED_FACE('',(#3614),#3818,.F.); +#4003=ADVANCED_FACE('',(#3615),#3819,.F.); +#4004=ADVANCED_FACE('',(#3616),#3820,.F.); +#4005=ADVANCED_FACE('',(#3617),#3821,.F.); +#4006=ADVANCED_FACE('',(#3618),#3822,.F.); +#4007=ADVANCED_FACE('',(#3619),#3823,.F.); +#4008=ADVANCED_FACE('',(#3620),#3824,.F.); +#4009=ADVANCED_FACE('',(#3621),#3825,.F.); +#4010=ADVANCED_FACE('',(#3622),#3826,.F.); +#4011=ADVANCED_FACE('',(#3623),#3827,.F.); +#4012=ADVANCED_FACE('',(#3624),#3828,.F.); +#4013=ADVANCED_FACE('',(#3625),#3829,.F.); +#4014=ADVANCED_FACE('',(#3626),#3830,.F.); +#4015=ADVANCED_FACE('',(#3627),#3831,.F.); +#4016=ADVANCED_FACE('',(#3628),#3832,.F.); +#4017=ADVANCED_FACE('',(#3629),#3833,.F.); +#4018=ADVANCED_FACE('',(#3630),#3834,.F.); +#4019=ADVANCED_FACE('',(#3631),#3835,.F.); +#4020=ADVANCED_FACE('',(#3632),#3836,.F.); +#4021=ADVANCED_FACE('',(#3633),#3837,.F.); +#4022=ADVANCED_FACE('',(#3634),#3838,.F.); +#4023=ADVANCED_FACE('',(#3635),#3839,.F.); +#4024=ADVANCED_FACE('',(#3636),#3840,.F.); +#4025=ADVANCED_FACE('',(#3637),#3841,.F.); +#4026=ADVANCED_FACE('',(#3638),#3842,.F.); +#4027=ADVANCED_FACE('',(#3639),#3843,.F.); +#4028=ADVANCED_FACE('',(#3640),#3844,.F.); +#4029=ADVANCED_FACE('',(#3641),#3845,.F.); +#4030=ADVANCED_FACE('',(#3642),#3846,.F.); +#4031=ADVANCED_FACE('',(#3643),#3847,.F.); +#4032=ADVANCED_FACE('',(#3644),#3848,.F.); +#4033=ADVANCED_FACE('',(#3645),#3849,.F.); +#4034=ADVANCED_FACE('',(#3646),#3850,.F.); +#4035=ADVANCED_FACE('',(#3647),#3851,.F.); +#4036=ADVANCED_FACE('',(#3648),#3852,.F.); +#4037=ADVANCED_FACE('',(#3649),#3853,.F.); +#4038=ADVANCED_FACE('',(#3650),#3854,.F.); +#4039=ADVANCED_FACE('',(#3651),#3855,.F.); +#4040=ADVANCED_FACE('',(#3652),#3856,.F.); +#4041=ADVANCED_FACE('',(#3653),#3857,.F.); +#4042=ADVANCED_FACE('',(#3654),#3858,.F.); +#4043=ADVANCED_FACE('',(#3655),#3859,.F.); +#4044=ADVANCED_FACE('',(#3656),#3860,.F.); +#4045=ADVANCED_FACE('',(#3657),#3861,.F.); +#4046=ADVANCED_FACE('',(#3658),#3862,.F.); +#4047=ADVANCED_FACE('',(#3659),#3863,.F.); +#4048=ADVANCED_FACE('',(#3660),#3864,.F.); +#4049=ADVANCED_FACE('',(#3661),#3865,.F.); +#4050=ADVANCED_FACE('',(#3662),#3866,.F.); +#4051=ADVANCED_FACE('',(#3663),#3867,.F.); +#4052=ADVANCED_FACE('',(#3664),#3868,.F.); +#4053=ADVANCED_FACE('',(#3665),#3869,.F.); +#4054=ADVANCED_FACE('',(#3666),#3870,.F.); +#4055=ADVANCED_FACE('',(#3667),#58,.T.); +#4056=ADVANCED_FACE('',(#3668),#59,.T.); +#4057=ADVANCED_FACE('',(#3669),#60,.T.); +#4058=ADVANCED_FACE('',(#3670),#61,.T.); +#4059=ADVANCED_FACE('',(#3671),#62,.T.); +#4060=ADVANCED_FACE('',(#3672),#3871,.F.); +#4061=ADVANCED_FACE('',(#3673),#3872,.F.); +#4062=ADVANCED_FACE('',(#3674),#3873,.F.); +#4063=ADVANCED_FACE('',(#3675),#3874,.F.); +#4064=ADVANCED_FACE('',(#3676),#3875,.F.); +#4065=ADVANCED_FACE('',(#3677),#3876,.F.); +#4066=ADVANCED_FACE('',(#3678),#3877,.F.); +#4067=ADVANCED_FACE('',(#3679),#3878,.F.); +#4068=ADVANCED_FACE('',(#3680),#3879,.F.); +#4069=ADVANCED_FACE('',(#3681),#3880,.F.); +#4070=ADVANCED_FACE('',(#3682),#63,.T.); +#4071=ADVANCED_FACE('',(#3683),#64,.T.); +#4072=ADVANCED_FACE('',(#3684),#65,.T.); +#4073=ADVANCED_FACE('',(#3685),#66,.T.); +#4074=ADVANCED_FACE('',(#3686),#67,.T.); +#4075=ADVANCED_FACE('',(#3687),#3881,.F.); +#4076=ADVANCED_FACE('',(#3688),#3882,.F.); +#4077=ADVANCED_FACE('',(#3689),#3883,.F.); +#4078=ADVANCED_FACE('',(#3690),#3884,.F.); +#4079=ADVANCED_FACE('',(#3691),#3885,.F.); +#4080=ADVANCED_FACE('',(#3692),#3886,.F.); +#4081=ADVANCED_FACE('',(#3693),#3887,.F.); +#4082=ADVANCED_FACE('',(#3694),#3888,.F.); +#4083=ADVANCED_FACE('',(#3695),#3889,.F.); +#4084=ADVANCED_FACE('',(#3696),#3890,.F.); +#4085=ADVANCED_FACE('',(#3697),#3891,.F.); +#4086=ADVANCED_FACE('',(#3698),#3892,.F.); +#4087=ADVANCED_FACE('',(#3699),#3893,.F.); +#4088=ADVANCED_FACE('',(#3700),#3894,.F.); +#4089=ADVANCED_FACE('',(#3701),#3895,.F.); +#4090=ADVANCED_FACE('',(#3702),#3896,.F.); +#4091=ADVANCED_FACE('',(#3703),#3897,.F.); +#4092=ADVANCED_FACE('',(#3704),#3898,.F.); +#4093=ADVANCED_FACE('',(#3705),#3899,.F.); +#4094=ADVANCED_FACE('',(#3706),#3900,.F.); +#4095=ADVANCED_FACE('',(#3707),#3901,.F.); +#4096=ADVANCED_FACE('',(#3708),#3902,.F.); +#4097=ADVANCED_FACE('',(#3709),#3903,.F.); +#4098=ADVANCED_FACE('',(#3710),#3904,.F.); +#4099=ADVANCED_FACE('',(#3711),#3905,.F.); +#4100=ADVANCED_FACE('',(#3712),#68,.F.); +#4101=ADVANCED_FACE('',(#3713),#69,.F.); +#4102=ADVANCED_FACE('',(#3714),#70,.F.); +#4103=ADVANCED_FACE('',(#3715),#71,.F.); +#4104=ADVANCED_FACE('',(#3716),#72,.F.); +#4105=ADVANCED_FACE('',(#3717),#73,.F.); +#4106=ADVANCED_FACE('',(#3718),#74,.F.); +#4107=ADVANCED_FACE('',(#3719),#75,.F.); +#4108=ADVANCED_FACE('',(#3720),#76,.F.); +#4109=ADVANCED_FACE('',(#3721),#77,.F.); +#4110=ADVANCED_FACE('',(#3722),#3906,.F.); +#4111=ADVANCED_FACE('',(#3723),#3907,.F.); +#4112=ADVANCED_FACE('',(#3724),#3908,.F.); +#4113=ADVANCED_FACE('',(#3725),#3909,.F.); +#4114=ADVANCED_FACE('',(#3726),#3910,.F.); +#4115=ADVANCED_FACE('',(#3727),#3911,.F.); +#4116=ADVANCED_FACE('',(#3728),#3912,.F.); +#4117=ADVANCED_FACE('',(#3729),#3913,.F.); +#4118=ADVANCED_FACE('',(#3730),#3914,.F.); +#4119=ADVANCED_FACE('',(#3731),#3915,.F.); +#4120=ADVANCED_FACE('',(#3732),#3916,.F.); +#4121=ADVANCED_FACE('',(#3733),#3917,.F.); +#4122=ADVANCED_FACE('',(#3734),#3918,.T.); +#4123=ADVANCED_FACE('',(#3735),#3919,.F.); +#4124=ADVANCED_FACE('',(#3736),#3920,.T.); +#4125=ADVANCED_FACE('',(#3737),#3921,.T.); +#4126=ADVANCED_FACE('',(#3738),#3922,.T.); +#4127=ADVANCED_FACE('',(#3739),#3923,.T.); +#4128=ADVANCED_FACE('',(#3740),#3924,.T.); +#4129=ADVANCED_FACE('',(#3741),#3925,.T.); +#4130=ADVANCED_FACE('',(#3742),#3926,.T.); +#4131=ADVANCED_FACE('',(#3743),#3927,.T.); +#4132=ADVANCED_FACE('',(#3744),#3928,.T.); +#4133=ADVANCED_FACE('',(#3745),#3929,.T.); +#4134=ADVANCED_FACE('',(#3746),#3930,.T.); +#4135=ADVANCED_FACE('',(#3747),#3931,.T.); +#4136=ADVANCED_FACE('',(#3748),#3932,.T.); +#4137=ADVANCED_FACE('',(#3749),#3933,.T.); +#4138=ADVANCED_FACE('',(#3750),#3934,.T.); +#4139=ADVANCED_FACE('',(#3751),#3935,.T.); +#4140=ADVANCED_FACE('',(#3752),#3936,.T.); +#4141=ADVANCED_FACE('',(#3753),#3937,.T.); +#4142=ADVANCED_FACE('',(#3754),#3938,.T.); +#4143=ADVANCED_FACE('',(#3755),#3939,.T.); +#4144=ADVANCED_FACE('',(#3756),#3940,.T.); +#4145=ADVANCED_FACE('',(#3757),#3941,.T.); +#4146=ADVANCED_FACE('',(#3758),#3942,.T.); +#4147=ADVANCED_FACE('',(#3759),#3943,.T.); +#4148=ADVANCED_FACE('',(#3760),#3944,.T.); +#4149=ADVANCED_FACE('',(#3761),#3945,.T.); +#4150=ADVANCED_FACE('',(#3762),#3946,.T.); +#4151=ADVANCED_FACE('',(#3763),#3947,.T.); +#4152=ADVANCED_FACE('',(#3764),#3948,.T.); +#4153=ADVANCED_FACE('',(#3765),#3949,.T.); +#4154=ADVANCED_FACE('',(#3766),#3950,.T.); +#4155=ADVANCED_FACE('',(#3767),#3951,.T.); +#4156=CLOSED_SHELL('',(#3952,#3953,#3954,#3955,#3956,#3957,#3958,#3959, +#3960,#3961,#3962,#3963,#3964,#3965,#3966,#3967,#3968,#3969,#3970,#3971, +#3972,#3973,#3974,#3975,#3976,#3977,#3978,#3979,#3980,#3981,#3982,#3983, +#3984,#3985,#3986,#3987,#3988,#3989)); +#4157=CLOSED_SHELL('',(#3990,#3991,#3992,#3993,#3994,#3995,#3996,#3997)); +#4158=CLOSED_SHELL('',(#3998,#3999,#4000,#4001,#4002,#4003,#4004,#4005, +#4006,#4007,#4008,#4009,#4010,#4011,#4012,#4013,#4014,#4015,#4016,#4017, +#4018,#4019,#4020,#4021,#4022,#4023,#4024,#4025,#4026,#4027,#4028,#4029, +#4030,#4031,#4032,#4033,#4034,#4035,#4036,#4037,#4038,#4039,#4040,#4041, +#4042,#4043,#4044,#4045,#4046,#4047,#4048,#4049,#4050,#4051,#4052,#4053, +#4054,#4055,#4056,#4057,#4058,#4059,#4060,#4061,#4062,#4063,#4064,#4065, +#4066,#4067,#4068,#4069,#4070,#4071,#4072,#4073,#4074,#4075,#4076,#4077, +#4078,#4079,#4080,#4081,#4082,#4083,#4084,#4085,#4086,#4087,#4088,#4089, +#4090,#4091,#4092,#4093,#4094,#4095,#4096,#4097,#4098,#4099,#4100,#4101, +#4102,#4103,#4104,#4105,#4106,#4107,#4108,#4109,#4110,#4111,#4112,#4113, +#4114,#4115,#4116,#4117,#4118,#4119,#4120,#4121,#4122,#4123,#4124,#4125, +#4126,#4127,#4128,#4129,#4130,#4131,#4132,#4133,#4134,#4135,#4136,#4137, +#4138,#4139,#4140,#4141,#4142,#4143,#4144,#4145,#4146,#4147,#4148,#4149, +#4150,#4151,#4152,#4153,#4154,#4155)); +#4159=STYLED_ITEM('',(#4162),#4181); +#4160=STYLED_ITEM('',(#4163),#4182); +#4161=STYLED_ITEM('',(#4164),#4183); +#4162=PRESENTATION_STYLE_ASSIGNMENT((#4165)); +#4163=PRESENTATION_STYLE_ASSIGNMENT((#4166)); +#4164=PRESENTATION_STYLE_ASSIGNMENT((#4167)); +#4165=SURFACE_STYLE_USAGE(.BOTH.,#4168); +#4166=SURFACE_STYLE_USAGE(.BOTH.,#4169); +#4167=SURFACE_STYLE_USAGE(.BOTH.,#4170); +#4168=SURFACE_SIDE_STYLE('',(#4171)); +#4169=SURFACE_SIDE_STYLE('',(#4172)); +#4170=SURFACE_SIDE_STYLE('',(#4173)); +#4171=SURFACE_STYLE_FILL_AREA(#4174); +#4172=SURFACE_STYLE_FILL_AREA(#4175); +#4173=SURFACE_STYLE_FILL_AREA(#4176); +#4174=FILL_AREA_STYLE('',(#4177)); +#4175=FILL_AREA_STYLE('',(#4178)); +#4176=FILL_AREA_STYLE('',(#4179)); +#4177=FILL_AREA_STYLE_COLOUR('',#4180); +#4178=FILL_AREA_STYLE_COLOUR('',#78); +#4179=FILL_AREA_STYLE_COLOUR('',#79); +#4180=COLOUR_RGB('',0.689999997615814,0.689999997615814,0.689999997615814); +#4181=MANIFOLD_SOLID_BREP('SHF-105-01-D_header',#4156); +#4182=MANIFOLD_SOLID_BREP('SHF-First_Position_Indicator',#4157); +#4183=MANIFOLD_SOLID_BREP('T-1S71-02-05-D-SM',#4158); +#4184=SHAPE_DEFINITION_REPRESENTATION(#6691,#4188); +#4185=SHAPE_DEFINITION_REPRESENTATION(#6692,#4189); +#4186=SHAPE_DEFINITION_REPRESENTATION(#6694,#4190); +#4187=SHAPE_DEFINITION_REPRESENTATION(#6696,#4191); +#4188=SHAPE_REPRESENTATION('SHF-105-01-L-D-SM',(#4192,#4231,#4240,#4439), +#6677); +#4189=SHAPE_REPRESENTATION('SHF-105-01-D_header',(#4192),#6678); +#4190=SHAPE_REPRESENTATION('SHF-First_Position_Indicator',(#4192),#6679); +#4191=SHAPE_REPRESENTATION('T-1S71-02-05-D-SM',(#4192),#6680); +#4192=AXIS2_PLACEMENT_3D('',#5486,#4440,#4441); +#4193=AXIS2_PLACEMENT_3D('',#5487,#4442,#4443); +#4194=AXIS2_PLACEMENT_3D('',#5496,#4448,#4449); +#4195=AXIS2_PLACEMENT_3D('',#5505,#4454,#4455); +#4196=AXIS2_PLACEMENT_3D('',#5514,#4460,#4461); +#4197=AXIS2_PLACEMENT_3D('',#5562,#4487,#4488); +#4198=AXIS2_PLACEMENT_3D('',#5582,#4500,#4501); +#4199=AXIS2_PLACEMENT_3D('',#5588,#4505,#4506); +#4200=AXIS2_PLACEMENT_3D('',#5594,#4510,#4511); +#4201=AXIS2_PLACEMENT_3D('',#5603,#4517,#4518); +#4202=AXIS2_PLACEMENT_3D('',#5605,#4520,#4521); +#4203=AXIS2_PLACEMENT_3D('',#5611,#4525,#4526); +#4204=AXIS2_PLACEMENT_3D('',#5613,#4528,#4529); +#4205=AXIS2_PLACEMENT_3D('',#5615,#4531,#4532); +#4206=AXIS2_PLACEMENT_3D('',#5621,#4536,#4537); +#4207=AXIS2_PLACEMENT_3D('',#5635,#4545,#4546); +#4208=AXIS2_PLACEMENT_3D('',#5638,#4549,#4550); +#4209=AXIS2_PLACEMENT_3D('',#5640,#4552,#4553); +#4210=AXIS2_PLACEMENT_3D('',#5642,#4555,#4556); +#4211=AXIS2_PLACEMENT_3D('',#5648,#4560,#4561); +#4212=AXIS2_PLACEMENT_3D('',#5650,#4563,#4564); +#4213=AXIS2_PLACEMENT_3D('',#5652,#4566,#4567); +#4214=AXIS2_PLACEMENT_3D('',#5656,#4570,#4571); +#4215=AXIS2_PLACEMENT_3D('',#5668,#4578,#4579); +#4216=AXIS2_PLACEMENT_3D('',#5670,#4581,#4582); +#4217=AXIS2_PLACEMENT_3D('',#5674,#4585,#4586); +#4218=AXIS2_PLACEMENT_3D('',#5676,#4588,#4589); +#4219=AXIS2_PLACEMENT_3D('',#5677,#4590,#4591); +#4220=AXIS2_PLACEMENT_3D('',#5679,#4593,#4594); +#4221=AXIS2_PLACEMENT_3D('',#5682,#4597,#4598); +#4222=AXIS2_PLACEMENT_3D('',#5683,#4599,#4600); +#4223=AXIS2_PLACEMENT_3D('',#5685,#4602,#4603); +#4224=AXIS2_PLACEMENT_3D('',#5686,#4604,#4605); +#4225=AXIS2_PLACEMENT_3D('',#5688,#4607,#4608); +#4226=AXIS2_PLACEMENT_3D('',#5689,#4609,#4610); +#4227=AXIS2_PLACEMENT_3D('',#5691,#4612,#4613); +#4228=AXIS2_PLACEMENT_3D('',#5692,#4614,#4615); +#4229=AXIS2_PLACEMENT_3D('',#5694,#4617,#4618); +#4230=AXIS2_PLACEMENT_3D('',#5696,#4620,#4621); +#4231=AXIS2_PLACEMENT_3D('',#5697,#4622,#4623); +#4232=AXIS2_PLACEMENT_3D('',#5698,#4624,#4625); +#4233=AXIS2_PLACEMENT_3D('',#5715,#4634,#4635); +#4234=AXIS2_PLACEMENT_3D('',#5722,#4640,#4641); +#4235=AXIS2_PLACEMENT_3D('',#5726,#4644,#4645); +#4236=AXIS2_PLACEMENT_3D('',#5728,#4647,#4648); +#4237=AXIS2_PLACEMENT_3D('',#5729,#4649,#4650); +#4238=AXIS2_PLACEMENT_3D('',#5733,#4653,#4654); +#4239=AXIS2_PLACEMENT_3D('',#5735,#4656,#4657); +#4240=AXIS2_PLACEMENT_3D('',#5736,#4658,#4659); +#4241=AXIS2_PLACEMENT_3D('',#5737,#4660,#4661); +#4242=AXIS2_PLACEMENT_3D('',#5810,#4698,#4699); +#4243=AXIS2_PLACEMENT_3D('',#5883,#4736,#4737); +#4244=AXIS2_PLACEMENT_3D('',#5889,#4741,#4742); +#4245=AXIS2_PLACEMENT_3D('',#5895,#4746,#4747); +#4246=AXIS2_PLACEMENT_3D('',#5901,#4751,#4752); +#4247=AXIS2_PLACEMENT_3D('',#5907,#4756,#4757); +#4248=AXIS2_PLACEMENT_3D('',#5913,#4761,#4762); +#4249=AXIS2_PLACEMENT_3D('',#5919,#4766,#4767); +#4250=AXIS2_PLACEMENT_3D('',#5925,#4771,#4772); +#4251=AXIS2_PLACEMENT_3D('',#5931,#4776,#4777); +#4252=AXIS2_PLACEMENT_3D('',#5937,#4781,#4782); +#4253=AXIS2_PLACEMENT_3D('',#5943,#4786,#4787); +#4254=AXIS2_PLACEMENT_3D('',#5949,#4791,#4792); +#4255=AXIS2_PLACEMENT_3D('',#5955,#4796,#4797); +#4256=AXIS2_PLACEMENT_3D('',#5961,#4801,#4802); +#4257=AXIS2_PLACEMENT_3D('',#5967,#4806,#4807); +#4258=AXIS2_PLACEMENT_3D('',#5973,#4811,#4812); +#4259=AXIS2_PLACEMENT_3D('',#5979,#4816,#4817); +#4260=AXIS2_PLACEMENT_3D('',#5985,#4821,#4822); +#4261=AXIS2_PLACEMENT_3D('',#5991,#4826,#4827); +#4262=AXIS2_PLACEMENT_3D('',#5997,#4831,#4832); +#4263=AXIS2_PLACEMENT_3D('',#6003,#4836,#4837); +#4264=AXIS2_PLACEMENT_3D('',#6012,#4842,#4843); +#4265=AXIS2_PLACEMENT_3D('',#6021,#4848,#4849); +#4266=AXIS2_PLACEMENT_3D('',#6030,#4854,#4855); +#4267=AXIS2_PLACEMENT_3D('',#6039,#4860,#4861); +#4268=AXIS2_PLACEMENT_3D('',#6048,#4866,#4867); +#4269=AXIS2_PLACEMENT_3D('',#6054,#4871,#4872); +#4270=AXIS2_PLACEMENT_3D('',#6060,#4876,#4877); +#4271=AXIS2_PLACEMENT_3D('',#6066,#4881,#4882); +#4272=AXIS2_PLACEMENT_3D('',#6072,#4886,#4887); +#4273=AXIS2_PLACEMENT_3D('',#6078,#4891,#4892); +#4274=AXIS2_PLACEMENT_3D('',#6084,#4896,#4897); +#4275=AXIS2_PLACEMENT_3D('',#6090,#4901,#4902); +#4276=AXIS2_PLACEMENT_3D('',#6096,#4906,#4907); +#4277=AXIS2_PLACEMENT_3D('',#6102,#4911,#4912); +#4278=AXIS2_PLACEMENT_3D('',#6108,#4916,#4917); +#4279=AXIS2_PLACEMENT_3D('',#6111,#4920,#4921); +#4280=AXIS2_PLACEMENT_3D('',#6114,#4924,#4925); +#4281=AXIS2_PLACEMENT_3D('',#6117,#4928,#4929); +#4282=AXIS2_PLACEMENT_3D('',#6120,#4932,#4933); +#4283=AXIS2_PLACEMENT_3D('',#6123,#4936,#4937); +#4284=AXIS2_PLACEMENT_3D('',#6132,#4942,#4943); +#4285=AXIS2_PLACEMENT_3D('',#6141,#4948,#4949); +#4286=AXIS2_PLACEMENT_3D('',#6150,#4954,#4955); +#4287=AXIS2_PLACEMENT_3D('',#6159,#4960,#4961); +#4288=AXIS2_PLACEMENT_3D('',#6168,#4966,#4967); +#4289=AXIS2_PLACEMENT_3D('',#6174,#4971,#4972); +#4290=AXIS2_PLACEMENT_3D('',#6180,#4976,#4977); +#4291=AXIS2_PLACEMENT_3D('',#6186,#4981,#4982); +#4292=AXIS2_PLACEMENT_3D('',#6192,#4986,#4987); +#4293=AXIS2_PLACEMENT_3D('',#6198,#4991,#4992); +#4294=AXIS2_PLACEMENT_3D('',#6204,#4996,#4997); +#4295=AXIS2_PLACEMENT_3D('',#6210,#5001,#5002); +#4296=AXIS2_PLACEMENT_3D('',#6216,#5006,#5007); +#4297=AXIS2_PLACEMENT_3D('',#6222,#5011,#5012); +#4298=AXIS2_PLACEMENT_3D('',#6228,#5016,#5017); +#4299=AXIS2_PLACEMENT_3D('',#6229,#5018,#5019); +#4300=AXIS2_PLACEMENT_3D('',#6233,#5021,#5022); +#4301=AXIS2_PLACEMENT_3D('',#6234,#5023,#5024); +#4302=AXIS2_PLACEMENT_3D('',#6235,#5025,#5026); +#4303=AXIS2_PLACEMENT_3D('',#6237,#5027,#5028); +#4304=AXIS2_PLACEMENT_3D('',#6240,#5030,#5031); +#4305=AXIS2_PLACEMENT_3D('',#6241,#5032,#5033); +#4306=AXIS2_PLACEMENT_3D('',#6243,#5034,#5035); +#4307=AXIS2_PLACEMENT_3D('',#6246,#5037,#5038); +#4308=AXIS2_PLACEMENT_3D('',#6247,#5039,#5040); +#4309=AXIS2_PLACEMENT_3D('',#6249,#5041,#5042); +#4310=AXIS2_PLACEMENT_3D('',#6252,#5044,#5045); +#4311=AXIS2_PLACEMENT_3D('',#6253,#5046,#5047); +#4312=AXIS2_PLACEMENT_3D('',#6255,#5048,#5049); +#4313=AXIS2_PLACEMENT_3D('',#6258,#5051,#5052); +#4314=AXIS2_PLACEMENT_3D('',#6264,#5056,#5057); +#4315=AXIS2_PLACEMENT_3D('',#6270,#5061,#5062); +#4316=AXIS2_PLACEMENT_3D('',#6276,#5066,#5067); +#4317=AXIS2_PLACEMENT_3D('',#6282,#5071,#5072); +#4318=AXIS2_PLACEMENT_3D('',#6288,#5076,#5077); +#4319=AXIS2_PLACEMENT_3D('',#6297,#5082,#5083); +#4320=AXIS2_PLACEMENT_3D('',#6306,#5088,#5089); +#4321=AXIS2_PLACEMENT_3D('',#6315,#5094,#5095); +#4322=AXIS2_PLACEMENT_3D('',#6324,#5100,#5101); +#4323=AXIS2_PLACEMENT_3D('',#6333,#5106,#5107); +#4324=AXIS2_PLACEMENT_3D('',#6334,#5108,#5109); +#4325=AXIS2_PLACEMENT_3D('',#6338,#5111,#5112); +#4326=AXIS2_PLACEMENT_3D('',#6339,#5113,#5114); +#4327=AXIS2_PLACEMENT_3D('',#6340,#5115,#5116); +#4328=AXIS2_PLACEMENT_3D('',#6342,#5117,#5118); +#4329=AXIS2_PLACEMENT_3D('',#6345,#5120,#5121); +#4330=AXIS2_PLACEMENT_3D('',#6346,#5122,#5123); +#4331=AXIS2_PLACEMENT_3D('',#6348,#5124,#5125); +#4332=AXIS2_PLACEMENT_3D('',#6351,#5127,#5128); +#4333=AXIS2_PLACEMENT_3D('',#6352,#5129,#5130); +#4334=AXIS2_PLACEMENT_3D('',#6354,#5131,#5132); +#4335=AXIS2_PLACEMENT_3D('',#6357,#5134,#5135); +#4336=AXIS2_PLACEMENT_3D('',#6358,#5136,#5137); +#4337=AXIS2_PLACEMENT_3D('',#6360,#5138,#5139); +#4338=AXIS2_PLACEMENT_3D('',#6363,#5141,#5142); +#4339=AXIS2_PLACEMENT_3D('',#6369,#5146,#5147); +#4340=AXIS2_PLACEMENT_3D('',#6375,#5151,#5152); +#4341=AXIS2_PLACEMENT_3D('',#6381,#5156,#5157); +#4342=AXIS2_PLACEMENT_3D('',#6387,#5161,#5162); +#4343=AXIS2_PLACEMENT_3D('',#6393,#5166,#5167); +#4344=AXIS2_PLACEMENT_3D('',#6399,#5171,#5172); +#4345=AXIS2_PLACEMENT_3D('',#6405,#5176,#5177); +#4346=AXIS2_PLACEMENT_3D('',#6411,#5181,#5182); +#4347=AXIS2_PLACEMENT_3D('',#6417,#5186,#5187); +#4348=AXIS2_PLACEMENT_3D('',#6423,#5191,#5192); +#4349=AXIS2_PLACEMENT_3D('',#6429,#5196,#5197); +#4350=AXIS2_PLACEMENT_3D('',#6435,#5201,#5202); +#4351=AXIS2_PLACEMENT_3D('',#6441,#5206,#5207); +#4352=AXIS2_PLACEMENT_3D('',#6447,#5211,#5212); +#4353=AXIS2_PLACEMENT_3D('',#6453,#5216,#5217); +#4354=AXIS2_PLACEMENT_3D('',#6459,#5221,#5222); +#4355=AXIS2_PLACEMENT_3D('',#6465,#5226,#5227); +#4356=AXIS2_PLACEMENT_3D('',#6471,#5231,#5232); +#4357=AXIS2_PLACEMENT_3D('',#6477,#5236,#5237); +#4358=AXIS2_PLACEMENT_3D('',#6483,#5241,#5242); +#4359=AXIS2_PLACEMENT_3D('',#6489,#5246,#5247); +#4360=AXIS2_PLACEMENT_3D('',#6495,#5251,#5252); +#4361=AXIS2_PLACEMENT_3D('',#6501,#5256,#5257); +#4362=AXIS2_PLACEMENT_3D('',#6507,#5261,#5262); +#4363=AXIS2_PLACEMENT_3D('',#6513,#5266,#5267); +#4364=AXIS2_PLACEMENT_3D('',#6514,#5268,#5269); +#4365=AXIS2_PLACEMENT_3D('',#6515,#5270,#5271); +#4366=AXIS2_PLACEMENT_3D('',#6516,#5272,#5273); +#4367=AXIS2_PLACEMENT_3D('',#6517,#5274,#5275); +#4368=AXIS2_PLACEMENT_3D('',#6518,#5276,#5277); +#4369=AXIS2_PLACEMENT_3D('',#6519,#5278,#5279); +#4370=AXIS2_PLACEMENT_3D('',#6520,#5280,#5281); +#4371=AXIS2_PLACEMENT_3D('',#6521,#5282,#5283); +#4372=AXIS2_PLACEMENT_3D('',#6522,#5284,#5285); +#4373=AXIS2_PLACEMENT_3D('',#6523,#5286,#5287); +#4374=AXIS2_PLACEMENT_3D('',#6524,#5288,#5289); +#4375=AXIS2_PLACEMENT_3D('',#6525,#5290,#5291); +#4376=AXIS2_PLACEMENT_3D('',#6526,#5292,#5293); +#4377=AXIS2_PLACEMENT_3D('',#6527,#5294,#5295); +#4378=AXIS2_PLACEMENT_3D('',#6528,#5296,#5297); +#4379=AXIS2_PLACEMENT_3D('',#6529,#5298,#5299); +#4380=AXIS2_PLACEMENT_3D('',#6533,#5301,#5302); +#4381=AXIS2_PLACEMENT_3D('',#6534,#5303,#5304); +#4382=AXIS2_PLACEMENT_3D('',#6538,#5306,#5307); +#4383=AXIS2_PLACEMENT_3D('',#6539,#5308,#5309); +#4384=AXIS2_PLACEMENT_3D('',#6540,#5310,#5311); +#4385=AXIS2_PLACEMENT_3D('',#6544,#5313,#5314); +#4386=AXIS2_PLACEMENT_3D('',#6545,#5315,#5316); +#4387=AXIS2_PLACEMENT_3D('',#6546,#5317,#5318); +#4388=AXIS2_PLACEMENT_3D('',#6550,#5320,#5321); +#4389=AXIS2_PLACEMENT_3D('',#6551,#5322,#5323); +#4390=AXIS2_PLACEMENT_3D('',#6552,#5324,#5325); +#4391=AXIS2_PLACEMENT_3D('',#6556,#5327,#5328); +#4392=AXIS2_PLACEMENT_3D('',#6557,#5329,#5330); +#4393=AXIS2_PLACEMENT_3D('',#6558,#5331,#5332); +#4394=AXIS2_PLACEMENT_3D('',#6564,#5336,#5337); +#4395=AXIS2_PLACEMENT_3D('',#6570,#5341,#5342); +#4396=AXIS2_PLACEMENT_3D('',#6576,#5346,#5347); +#4397=AXIS2_PLACEMENT_3D('',#6582,#5351,#5352); +#4398=AXIS2_PLACEMENT_3D('',#6588,#5356,#5357); +#4399=AXIS2_PLACEMENT_3D('',#6591,#5360,#5361); +#4400=AXIS2_PLACEMENT_3D('',#6594,#5364,#5365); +#4401=AXIS2_PLACEMENT_3D('',#6597,#5368,#5369); +#4402=AXIS2_PLACEMENT_3D('',#6600,#5372,#5373); +#4403=AXIS2_PLACEMENT_3D('',#6603,#5376,#5377); +#4404=AXIS2_PLACEMENT_3D('',#6622,#5396,#5397); +#4405=AXIS2_PLACEMENT_3D('',#6641,#5416,#5417); +#4406=AXIS2_PLACEMENT_3D('',#6642,#5418,#5419); +#4407=AXIS2_PLACEMENT_3D('',#6643,#5420,#5421); +#4408=AXIS2_PLACEMENT_3D('',#6644,#5422,#5423); +#4409=AXIS2_PLACEMENT_3D('',#6645,#5424,#5425); +#4410=AXIS2_PLACEMENT_3D('',#6646,#5426,#5427); +#4411=AXIS2_PLACEMENT_3D('',#6647,#5428,#5429); +#4412=AXIS2_PLACEMENT_3D('',#6648,#5430,#5431); +#4413=AXIS2_PLACEMENT_3D('',#6649,#5432,#5433); +#4414=AXIS2_PLACEMENT_3D('',#6650,#5434,#5435); +#4415=AXIS2_PLACEMENT_3D('',#6651,#5436,#5437); +#4416=AXIS2_PLACEMENT_3D('',#6652,#5438,#5439); +#4417=AXIS2_PLACEMENT_3D('',#6653,#5440,#5441); +#4418=AXIS2_PLACEMENT_3D('',#6654,#5442,#5443); +#4419=AXIS2_PLACEMENT_3D('',#6655,#5444,#5445); +#4420=AXIS2_PLACEMENT_3D('',#6656,#5446,#5447); +#4421=AXIS2_PLACEMENT_3D('',#6657,#5448,#5449); +#4422=AXIS2_PLACEMENT_3D('',#6658,#5450,#5451); +#4423=AXIS2_PLACEMENT_3D('',#6659,#5452,#5453); +#4424=AXIS2_PLACEMENT_3D('',#6660,#5454,#5455); +#4425=AXIS2_PLACEMENT_3D('',#6661,#5456,#5457); +#4426=AXIS2_PLACEMENT_3D('',#6662,#5458,#5459); +#4427=AXIS2_PLACEMENT_3D('',#6663,#5460,#5461); +#4428=AXIS2_PLACEMENT_3D('',#6664,#5462,#5463); +#4429=AXIS2_PLACEMENT_3D('',#6665,#5464,#5465); +#4430=AXIS2_PLACEMENT_3D('',#6666,#5466,#5467); +#4431=AXIS2_PLACEMENT_3D('',#6667,#5468,#5469); +#4432=AXIS2_PLACEMENT_3D('',#6668,#5470,#5471); +#4433=AXIS2_PLACEMENT_3D('',#6669,#5472,#5473); +#4434=AXIS2_PLACEMENT_3D('',#6670,#5474,#5475); +#4435=AXIS2_PLACEMENT_3D('',#6671,#5476,#5477); +#4436=AXIS2_PLACEMENT_3D('',#6672,#5478,#5479); +#4437=AXIS2_PLACEMENT_3D('',#6673,#5480,#5481); +#4438=AXIS2_PLACEMENT_3D('',#6674,#5482,#5483); +#4439=AXIS2_PLACEMENT_3D('',#6675,#5484,#5485); +#4440=DIRECTION('',(0.,0.,1.)); +#4441=DIRECTION('',(1.,0.,0.)); +#4442=DIRECTION('',(1.,0.,0.)); +#4443=DIRECTION('',(0.,0.,-1.)); +#4444=DIRECTION('',(0.,0.,-1.)); +#4445=DIRECTION('',(0.,-1.,0.)); +#4446=DIRECTION('',(0.,0.,-1.)); +#4447=DIRECTION('',(0.,-1.,0.)); +#4448=DIRECTION('',(0.,0.,1.)); +#4449=DIRECTION('',(1.,0.,0.)); +#4450=DIRECTION('',(-1.,0.,0.)); +#4451=DIRECTION('',(0.,1.,2.13425624505021E-16)); +#4452=DIRECTION('',(1.,0.,0.)); +#4453=DIRECTION('',(0.,-1.,0.)); +#4454=DIRECTION('',(0.,0.,1.)); +#4455=DIRECTION('',(1.,0.,0.)); +#4456=DIRECTION('',(-1.,0.,0.)); +#4457=DIRECTION('',(0.,-1.,0.)); +#4458=DIRECTION('',(-1.,0.,0.)); +#4459=DIRECTION('',(0.,-1.,0.)); +#4460=DIRECTION('',(0.,-1.,0.)); +#4461=DIRECTION('',(0.,0.,-1.)); +#4462=DIRECTION('',(0.,0.,1.)); +#4463=DIRECTION('',(-1.,0.,0.)); +#4464=DIRECTION('',(-1.,0.,0.)); +#4465=DIRECTION('',(0.,0.,1.)); +#4466=DIRECTION('',(-1.,0.,0.)); +#4467=DIRECTION('',(0.,0.,1.)); +#4468=DIRECTION('',(-1.,0.,0.)); +#4469=DIRECTION('',(0.,0.,-1.)); +#4470=DIRECTION('',(1.,0.,0.)); +#4471=DIRECTION('',(0.,0.,1.)); +#4472=DIRECTION('',(-1.,0.,0.)); +#4473=DIRECTION('',(0.,0.,-1.)); +#4474=DIRECTION('',(1.,0.,0.)); +#4475=DIRECTION('',(0.,0.,-1.)); +#4476=DIRECTION('',(-1.,0.,0.)); +#4477=DIRECTION('',(0.,0.,-1.)); +#4478=DIRECTION('',(-1.,0.,0.)); +#4479=DIRECTION('',(0.,0.,1.)); +#4480=DIRECTION('',(-1.,0.,0.)); +#4481=DIRECTION('',(0.,0.,-1.)); +#4482=DIRECTION('',(0.,0.,1.)); +#4483=DIRECTION('',(-1.,0.,0.)); +#4484=DIRECTION('',(0.,0.,-1.)); +#4485=DIRECTION('',(0.,0.,-1.)); +#4486=DIRECTION('',(1.,0.,2.84567499340027E-16)); +#4487=DIRECTION('',(0.,0.,1.)); +#4488=DIRECTION('',(1.,0.,0.)); +#4489=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); +#4490=DIRECTION('',(1.,0.,0.)); +#4491=DIRECTION('',(0.,-1.,0.)); +#4492=DIRECTION('',(-1.,0.,0.)); +#4493=DIRECTION('',(0.,-1.,0.)); +#4494=DIRECTION('',(1.,0.,0.)); +#4495=DIRECTION('',(0.,1.,0.)); +#4496=DIRECTION('',(0.,1.,0.)); +#4497=DIRECTION('',(1.,0.,0.)); +#4498=DIRECTION('',(0.,-1.,0.)); +#4499=DIRECTION('',(0.371390676354103,0.92847669088526,0.)); +#4500=DIRECTION('',(0.,0.342020143325669,-0.939692620785908)); +#4501=DIRECTION('',(0.,0.939692620785908,0.342020143325669)); +#4502=DIRECTION('',(0.,-0.939692620785908,-0.342020143325669)); +#4503=DIRECTION('',(1.,0.,0.)); +#4504=DIRECTION('',(0.323615577118185,-0.889126490715988,-0.323615577118185)); +#4505=DIRECTION('',(0.,0.342020143325669,-0.939692620785908)); +#4506=DIRECTION('',(0.,0.939692620785908,0.342020143325669)); +#4507=DIRECTION('',(1.,0.,0.)); +#4508=DIRECTION('',(0.,0.939692620785908,0.342020143325669)); +#4509=DIRECTION('',(-0.323615577118185,-0.889126490715988,-0.323615577118185)); +#4510=DIRECTION('',(0.,1.,0.)); +#4511=DIRECTION('',(0.,0.,1.)); +#4512=DIRECTION('',(-1.,0.,0.)); +#4513=DIRECTION('',(0.,0.,1.)); +#4514=DIRECTION('',(1.,0.,2.84567499340027E-16)); +#4515=DIRECTION('',(0.,0.,-1.)); +#4516=DIRECTION('',(0.,0.,-1.)); +#4517=DIRECTION('',(1.,0.,0.)); +#4518=DIRECTION('',(0.,0.,-1.)); +#4519=DIRECTION('',(0.,1.,0.)); +#4520=DIRECTION('',(0.,1.,0.)); +#4521=DIRECTION('',(0.,0.,1.)); +#4522=DIRECTION('',(0.,0.,-1.)); +#4523=DIRECTION('',(1.,0.,0.)); +#4524=DIRECTION('',(0.,0.,-1.)); +#4525=DIRECTION('',(-1.,0.,0.)); +#4526=DIRECTION('',(0.,0.,1.)); +#4527=DIRECTION('',(0.,1.,0.)); +#4528=DIRECTION('',(0.,0.,1.)); +#4529=DIRECTION('',(1.,0.,0.)); +#4530=DIRECTION('',(0.,1.,2.13425624505021E-16)); +#4531=DIRECTION('',(0.,-0.707106781186548,0.707106781186548)); +#4532=DIRECTION('',(0.,-0.707106781186548,-0.707106781186548)); +#4533=DIRECTION('',(0.,0.707106781186548,0.707106781186548)); +#4534=DIRECTION('',(-1.,0.,0.)); +#4535=DIRECTION('',(0.,0.707106781186548,0.707106781186548)); +#4536=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4537=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#4538=DIRECTION('',(-1.,0.,0.)); +#4539=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#4540=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#4541=DIRECTION('',(-1.,0.,0.)); +#4542=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#4543=DIRECTION('',(-1.,0.,0.)); +#4544=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#4545=DIRECTION('',(0.,-1.,-3.55709374175034E-17)); +#4546=DIRECTION('',(0.,3.55709374175034E-17,-1.)); +#4547=DIRECTION('',(0.,-3.55709374175034E-17,1.)); +#4548=DIRECTION('',(0.,-3.55709374175034E-17,1.)); +#4549=DIRECTION('',(1.,0.,0.)); +#4550=DIRECTION('',(0.,0.,-1.)); +#4551=DIRECTION('',(0.,-1.,0.)); +#4552=DIRECTION('',(1.,0.,0.)); +#4553=DIRECTION('',(0.,0.,-1.)); +#4554=DIRECTION('',(0.,-1.,0.)); +#4555=DIRECTION('',(0.,0.342020143325669,0.939692620785908)); +#4556=DIRECTION('',(0.,0.939692620785908,-0.342020143325669)); +#4557=DIRECTION('',(-1.,0.,0.)); +#4558=DIRECTION('',(-0.323615577118185,-0.889126490715988,0.323615577118185)); +#4559=DIRECTION('',(0.323615577118185,-0.889126490715988,0.323615577118185)); +#4560=DIRECTION('',(0.939692620785908,0.342020143325669,0.)); +#4561=DIRECTION('',(-0.342020143325669,0.939692620785908,0.)); +#4562=DIRECTION('',(0.,0.,1.)); +#4563=DIRECTION('',(-0.939692620785908,0.342020143325669,0.)); +#4564=DIRECTION('',(0.342020143325669,0.939692620785908,0.)); +#4565=DIRECTION('',(0.,0.,-1.)); +#4566=DIRECTION('',(1.,0.,0.)); +#4567=DIRECTION('',(0.,0.,-1.)); +#4568=DIRECTION('',(0.,-1.,0.)); +#4569=DIRECTION('',(0.,0.,-1.)); +#4570=DIRECTION('',(0.,1.,0.)); +#4571=DIRECTION('',(0.,0.,1.)); +#4572=DIRECTION('',(1.,0.,0.)); +#4573=DIRECTION('',(0.,0.,-1.)); +#4574=DIRECTION('',(1.,0.,0.)); +#4575=DIRECTION('',(0.,0.,-1.)); +#4576=DIRECTION('',(-1.,0.,0.)); +#4577=DIRECTION('',(0.,0.,1.)); +#4578=DIRECTION('',(-1.,0.,0.)); +#4579=DIRECTION('',(0.,0.,1.)); +#4580=DIRECTION('',(0.,1.,0.)); +#4581=DIRECTION('',(-0.928476690885259,-0.371390676354104,0.)); +#4582=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); +#4583=DIRECTION('',(0.,0.,1.)); +#4584=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); +#4585=DIRECTION('',(0.92847669088526,-0.371390676354103,0.)); +#4586=DIRECTION('',(0.371390676354103,0.92847669088526,0.)); +#4587=DIRECTION('',(0.371390676354103,0.92847669088526,0.)); +#4588=DIRECTION('',(0.,0.,1.)); +#4589=DIRECTION('',(1.,0.,0.)); +#4590=DIRECTION('',(0.,0.,1.)); +#4591=DIRECTION('',(1.,0.,0.)); +#4592=DIRECTION('',(0.,1.,0.)); +#4593=DIRECTION('',(0.,0.,-1.)); +#4594=DIRECTION('',(-1.,0.,0.)); +#4595=DIRECTION('',(0.,1.,0.)); +#4596=DIRECTION('',(0.,1.,0.)); +#4597=DIRECTION('',(-1.,0.,0.)); +#4598=DIRECTION('',(0.,0.,1.)); +#4599=DIRECTION('',(0.,0.,1.)); +#4600=DIRECTION('',(1.,0.,0.)); +#4601=DIRECTION('',(0.,1.,0.)); +#4602=DIRECTION('',(1.,0.,0.)); +#4603=DIRECTION('',(0.,0.,-1.)); +#4604=DIRECTION('',(0.,0.,1.)); +#4605=DIRECTION('',(1.,0.,0.)); +#4606=DIRECTION('',(0.,-1.,0.)); +#4607=DIRECTION('',(-1.,0.,0.)); +#4608=DIRECTION('',(0.,0.,1.)); +#4609=DIRECTION('',(1.,0.,0.)); +#4610=DIRECTION('',(0.,0.,-1.)); +#4611=DIRECTION('',(0.,-1.,0.)); +#4612=DIRECTION('',(0.,0.,1.)); +#4613=DIRECTION('',(1.,0.,0.)); +#4614=DIRECTION('',(0.,0.,1.)); +#4615=DIRECTION('',(1.,0.,0.)); +#4616=DIRECTION('',(0.,-1.,0.)); +#4617=DIRECTION('',(2.84567499340027E-16,0.,-1.)); +#4618=DIRECTION('',(-1.,0.,-2.84567499340027E-16)); +#4619=DIRECTION('',(0.,-1.,0.)); +#4620=DIRECTION('',(1.,0.,0.)); +#4621=DIRECTION('',(0.,0.,-1.)); +#4622=DIRECTION('',(0.,0.,1.)); +#4623=DIRECTION('',(1.,0.,0.)); +#4624=DIRECTION('',(0.,1.,0.)); +#4625=DIRECTION('',(0.,0.,1.)); +#4626=DIRECTION('',(-1.,0.,0.)); +#4627=DIRECTION('',(0.,0.,-1.)); +#4628=DIRECTION('',(-1.,0.,0.)); +#4629=DIRECTION('',(0.,0.,-1.)); +#4630=DIRECTION('',(-1.,0.,0.)); +#4631=DIRECTION('',(0.,0.,1.)); +#4632=DIRECTION('',(-1.,0.,0.)); +#4633=DIRECTION('',(0.,0.,1.)); +#4634=DIRECTION('',(0.,0.,1.)); +#4635=DIRECTION('',(1.,0.,0.)); +#4636=DIRECTION('',(-0.368048451007378,-0.929806613071272,0.)); +#4637=DIRECTION('',(-0.368048451007378,0.929806613071272,0.)); +#4638=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); +#4639=DIRECTION('',(0.371390676354104,0.928476690885259,0.)); +#4640=DIRECTION('',(-0.928476690885259,-0.371390676354104,0.)); +#4641=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); +#4642=DIRECTION('',(0.371390676354104,-0.928476690885259,0.)); +#4643=DIRECTION('',(0.,0.,1.)); +#4644=DIRECTION('',(0.928476690885259,-0.371390676354104,0.)); +#4645=DIRECTION('',(0.371390676354104,0.928476690885259,0.)); +#4646=DIRECTION('',(0.371390676354104,0.928476690885259,0.)); +#4647=DIRECTION('',(0.,0.,1.)); +#4648=DIRECTION('',(1.,0.,0.)); +#4649=DIRECTION('',(0.929806613071272,0.368048451007378,0.)); +#4650=DIRECTION('',(-0.368048451007378,0.929806613071272,0.)); +#4651=DIRECTION('',(0.,0.,-1.)); +#4652=DIRECTION('',(0.368048451007378,-0.929806613071272,0.)); +#4653=DIRECTION('',(-0.929806613071272,0.368048451007378,0.)); +#4654=DIRECTION('',(-0.368048451007378,-0.929806613071272,0.)); +#4655=DIRECTION('',(0.368048451007378,0.929806613071272,0.)); +#4656=DIRECTION('',(0.,0.,1.)); +#4657=DIRECTION('',(1.,0.,0.)); +#4658=DIRECTION('',(0.,0.,1.)); +#4659=DIRECTION('',(1.,0.,0.)); +#4660=DIRECTION('',(0.,0.,1.)); +#4661=DIRECTION('',(1.,0.,0.)); +#4662=DIRECTION('',(0.,1.,0.)); +#4663=DIRECTION('',(-1.,-2.51088970005906E-16,0.)); +#4664=DIRECTION('',(0.,-1.,0.)); +#4665=DIRECTION('',(-1.,0.,0.)); +#4666=DIRECTION('',(0.,1.,0.)); +#4667=DIRECTION('',(-1.,-2.51088970005907E-16,0.)); +#4668=DIRECTION('',(0.,-1.,0.)); +#4669=DIRECTION('',(-1.,0.,0.)); +#4670=DIRECTION('',(0.,1.,0.)); +#4671=DIRECTION('',(-1.,-2.51088970005907E-16,0.)); +#4672=DIRECTION('',(0.,-1.,0.)); +#4673=DIRECTION('',(-1.,0.,0.)); +#4674=DIRECTION('',(0.,1.,0.)); +#4675=DIRECTION('',(-1.,-2.51088970005907E-16,0.)); +#4676=DIRECTION('',(0.,-1.,0.)); +#4677=DIRECTION('',(-1.,0.,0.)); +#4678=DIRECTION('',(0.,1.,0.)); +#4679=DIRECTION('',(-1.,0.,0.)); +#4680=DIRECTION('',(0.,-1.,0.)); +#4681=DIRECTION('',(1.,0.,0.)); +#4682=DIRECTION('',(0.,1.,0.)); +#4683=DIRECTION('',(-1.,0.,0.)); +#4684=DIRECTION('',(0.,-1.,0.)); +#4685=DIRECTION('',(1.,0.,0.)); +#4686=DIRECTION('',(0.,1.,0.)); +#4687=DIRECTION('',(-1.,0.,0.)); +#4688=DIRECTION('',(0.,-1.,0.)); +#4689=DIRECTION('',(1.,0.,0.)); +#4690=DIRECTION('',(0.,1.,0.)); +#4691=DIRECTION('',(-1.,0.,0.)); +#4692=DIRECTION('',(0.,-1.,0.)); +#4693=DIRECTION('',(1.,0.,0.)); +#4694=DIRECTION('',(0.,1.,0.)); +#4695=DIRECTION('',(-1.,0.,0.)); +#4696=DIRECTION('',(0.,1.,0.)); +#4697=DIRECTION('',(-1.,0.,0.)); +#4698=DIRECTION('',(0.,0.,-1.)); +#4699=DIRECTION('',(-1.,0.,0.)); +#4700=DIRECTION('',(0.,-1.,0.)); +#4701=DIRECTION('',(-1.,0.,0.)); +#4702=DIRECTION('',(0.,-1.,0.)); +#4703=DIRECTION('',(-1.,0.,0.)); +#4704=DIRECTION('',(0.,-1.,0.)); +#4705=DIRECTION('',(-1.,0.,0.)); +#4706=DIRECTION('',(0.,1.,0.)); +#4707=DIRECTION('',(-1.,0.,0.)); +#4708=DIRECTION('',(0.,-1.,0.)); +#4709=DIRECTION('',(-1.,0.,0.)); +#4710=DIRECTION('',(0.,1.,0.)); +#4711=DIRECTION('',(-1.,0.,0.)); +#4712=DIRECTION('',(0.,-1.,0.)); +#4713=DIRECTION('',(-1.,0.,0.)); +#4714=DIRECTION('',(0.,1.,0.)); +#4715=DIRECTION('',(-1.,0.,0.)); +#4716=DIRECTION('',(0.,-1.,0.)); +#4717=DIRECTION('',(-1.,0.,0.)); +#4718=DIRECTION('',(0.,1.,0.)); +#4719=DIRECTION('',(-1.,0.,0.)); +#4720=DIRECTION('',(0.,-1.,0.)); +#4721=DIRECTION('',(-1.,0.,0.)); +#4722=DIRECTION('',(0.,1.,0.)); +#4723=DIRECTION('',(1.,2.51088970005907E-16,0.)); +#4724=DIRECTION('',(0.,-1.,0.)); +#4725=DIRECTION('',(-1.,0.,0.)); +#4726=DIRECTION('',(0.,1.,0.)); +#4727=DIRECTION('',(1.,2.51088970005907E-16,0.)); +#4728=DIRECTION('',(0.,-1.,0.)); +#4729=DIRECTION('',(-1.,0.,0.)); +#4730=DIRECTION('',(0.,1.,0.)); +#4731=DIRECTION('',(1.,2.51088970005907E-16,0.)); +#4732=DIRECTION('',(0.,-1.,0.)); +#4733=DIRECTION('',(-1.,0.,0.)); +#4734=DIRECTION('',(0.,1.,0.)); +#4735=DIRECTION('',(1.,2.51088970005906E-16,0.)); +#4736=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#4737=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); +#4738=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#4739=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#4740=DIRECTION('',(-1.,0.,0.)); +#4741=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#4742=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); +#4743=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); +#4744=DIRECTION('',(-1.,0.,0.)); +#4745=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#4746=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#4747=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); +#4748=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); +#4749=DIRECTION('',(-1.,0.,0.)); +#4750=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#4751=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#4752=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); +#4753=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); +#4754=DIRECTION('',(-1.,0.,0.)); +#4755=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#4756=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#4757=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); +#4758=DIRECTION('',(0.,-0.707106781186549,-0.707106781186546)); +#4759=DIRECTION('',(-1.,0.,0.)); +#4760=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#4761=DIRECTION('',(0.,-1.,0.)); +#4762=DIRECTION('',(0.,0.,-1.)); +#4763=DIRECTION('',(0.,0.,1.)); +#4764=DIRECTION('',(0.,0.,1.)); +#4765=DIRECTION('',(-1.,0.,0.)); +#4766=DIRECTION('',(0.,-1.,0.)); +#4767=DIRECTION('',(0.,0.,-1.)); +#4768=DIRECTION('',(0.,0.,-1.)); +#4769=DIRECTION('',(-1.,0.,0.)); +#4770=DIRECTION('',(0.,0.,1.)); +#4771=DIRECTION('',(0.,-1.,0.)); +#4772=DIRECTION('',(0.,0.,-1.)); +#4773=DIRECTION('',(0.,0.,-1.)); +#4774=DIRECTION('',(-1.,0.,0.)); +#4775=DIRECTION('',(0.,0.,1.)); +#4776=DIRECTION('',(0.,-1.,0.)); +#4777=DIRECTION('',(0.,0.,-1.)); +#4778=DIRECTION('',(0.,0.,-1.)); +#4779=DIRECTION('',(-1.,0.,0.)); +#4780=DIRECTION('',(0.,0.,1.)); +#4781=DIRECTION('',(0.,-1.,0.)); +#4782=DIRECTION('',(0.,0.,-1.)); +#4783=DIRECTION('',(0.,0.,-1.)); +#4784=DIRECTION('',(-1.,0.,0.)); +#4785=DIRECTION('',(0.,0.,1.)); +#4786=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#4787=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); +#4788=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); +#4789=DIRECTION('',(0.,-0.707106781186549,0.707106781186547)); +#4790=DIRECTION('',(-1.,0.,0.)); +#4791=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#4792=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); +#4793=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); +#4794=DIRECTION('',(-1.,0.,0.)); +#4795=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); +#4796=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#4797=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); +#4798=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); +#4799=DIRECTION('',(-1.,0.,0.)); +#4800=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); +#4801=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#4802=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); +#4803=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); +#4804=DIRECTION('',(-1.,0.,0.)); +#4805=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); +#4806=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#4807=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); +#4808=DIRECTION('',(0.,0.707106781186548,-0.707106781186547)); +#4809=DIRECTION('',(-1.,0.,0.)); +#4810=DIRECTION('',(0.,-0.707106781186549,0.707106781186547)); +#4811=DIRECTION('',(0.,0.,-1.)); +#4812=DIRECTION('',(-1.,0.,0.)); +#4813=DIRECTION('',(0.,-1.,0.)); +#4814=DIRECTION('',(0.,-1.,0.)); +#4815=DIRECTION('',(-1.,0.,0.)); +#4816=DIRECTION('',(0.,0.,-1.)); +#4817=DIRECTION('',(-1.,0.,0.)); +#4818=DIRECTION('',(0.,1.,0.)); +#4819=DIRECTION('',(-1.,0.,0.)); +#4820=DIRECTION('',(0.,-1.,0.)); +#4821=DIRECTION('',(0.,0.,-1.)); +#4822=DIRECTION('',(-1.,0.,0.)); +#4823=DIRECTION('',(0.,1.,0.)); +#4824=DIRECTION('',(-1.,0.,0.)); +#4825=DIRECTION('',(0.,-1.,0.)); +#4826=DIRECTION('',(0.,0.,-1.)); +#4827=DIRECTION('',(-1.,0.,0.)); +#4828=DIRECTION('',(0.,1.,0.)); +#4829=DIRECTION('',(-1.,0.,0.)); +#4830=DIRECTION('',(0.,-1.,0.)); +#4831=DIRECTION('',(0.,0.,-1.)); +#4832=DIRECTION('',(-1.,0.,0.)); +#4833=DIRECTION('',(0.,1.,0.)); +#4834=DIRECTION('',(-1.,0.,0.)); +#4835=DIRECTION('',(0.,-1.,0.)); +#4836=DIRECTION('',(0.,0.,1.)); +#4837=DIRECTION('',(1.,0.,0.)); +#4838=DIRECTION('',(0.,1.,0.)); +#4839=DIRECTION('',(-1.,0.,0.)); +#4840=DIRECTION('',(0.,1.,0.)); +#4841=DIRECTION('',(-1.,0.,0.)); +#4842=DIRECTION('',(0.,0.,1.)); +#4843=DIRECTION('',(1.,0.,0.)); +#4844=DIRECTION('',(0.,-1.,0.)); +#4845=DIRECTION('',(-1.,0.,0.)); +#4846=DIRECTION('',(0.,1.,0.)); +#4847=DIRECTION('',(-1.,0.,0.)); +#4848=DIRECTION('',(0.,0.,1.)); +#4849=DIRECTION('',(1.,0.,0.)); +#4850=DIRECTION('',(0.,-1.,0.)); +#4851=DIRECTION('',(-1.,0.,0.)); +#4852=DIRECTION('',(0.,1.,0.)); +#4853=DIRECTION('',(-1.,0.,0.)); +#4854=DIRECTION('',(0.,0.,1.)); +#4855=DIRECTION('',(1.,0.,0.)); +#4856=DIRECTION('',(0.,-1.,0.)); +#4857=DIRECTION('',(-1.,0.,0.)); +#4858=DIRECTION('',(0.,1.,0.)); +#4859=DIRECTION('',(-1.,0.,0.)); +#4860=DIRECTION('',(0.,0.,1.)); +#4861=DIRECTION('',(1.,0.,0.)); +#4862=DIRECTION('',(0.,-1.,0.)); +#4863=DIRECTION('',(-1.,0.,0.)); +#4864=DIRECTION('',(0.,1.,0.)); +#4865=DIRECTION('',(-1.,0.,0.)); +#4866=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#4867=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4868=DIRECTION('',(0.,0.707106781186548,0.707106781186547)); +#4869=DIRECTION('',(0.,0.707106781186549,0.707106781186547)); +#4870=DIRECTION('',(-1.,0.,0.)); +#4871=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#4872=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4873=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4874=DIRECTION('',(-1.,0.,0.)); +#4875=DIRECTION('',(0.,0.707106781186548,0.707106781186547)); +#4876=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#4877=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4878=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4879=DIRECTION('',(-1.,0.,0.)); +#4880=DIRECTION('',(0.,0.707106781186548,0.707106781186547)); +#4881=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#4882=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4883=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4884=DIRECTION('',(-1.,0.,0.)); +#4885=DIRECTION('',(0.,0.707106781186548,0.707106781186547)); +#4886=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#4887=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4888=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#4889=DIRECTION('',(-1.,0.,0.)); +#4890=DIRECTION('',(0.,0.707106781186549,0.707106781186547)); +#4891=DIRECTION('',(0.,-1.,0.)); +#4892=DIRECTION('',(0.,0.,-1.)); +#4893=DIRECTION('',(0.,0.,1.)); +#4894=DIRECTION('',(0.,0.,1.)); +#4895=DIRECTION('',(-1.,0.,0.)); +#4896=DIRECTION('',(0.,-1.,0.)); +#4897=DIRECTION('',(0.,0.,-1.)); +#4898=DIRECTION('',(0.,0.,-1.)); +#4899=DIRECTION('',(-1.,0.,0.)); +#4900=DIRECTION('',(0.,0.,1.)); +#4901=DIRECTION('',(0.,-1.,0.)); +#4902=DIRECTION('',(0.,0.,-1.)); +#4903=DIRECTION('',(0.,0.,-1.)); +#4904=DIRECTION('',(-1.,0.,0.)); +#4905=DIRECTION('',(0.,0.,1.)); +#4906=DIRECTION('',(0.,-1.,0.)); +#4907=DIRECTION('',(0.,0.,-1.)); +#4908=DIRECTION('',(0.,0.,-1.)); +#4909=DIRECTION('',(-1.,0.,0.)); +#4910=DIRECTION('',(0.,0.,1.)); +#4911=DIRECTION('',(0.,-1.,0.)); +#4912=DIRECTION('',(0.,0.,-1.)); +#4913=DIRECTION('',(0.,0.,-1.)); +#4914=DIRECTION('',(-1.,0.,0.)); +#4915=DIRECTION('',(0.,0.,1.)); +#4916=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4917=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4918=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); +#4919=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); +#4920=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4921=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4922=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4923=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); +#4924=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4925=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4926=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4927=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); +#4928=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4929=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4930=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4931=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); +#4932=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4933=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4934=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4935=DIRECTION('',(0.,-0.707106781186549,0.707106781186546)); +#4936=DIRECTION('',(0.,0.,-1.)); +#4937=DIRECTION('',(-1.,0.,0.)); +#4938=DIRECTION('',(0.,1.,0.)); +#4939=DIRECTION('',(-1.,0.,0.)); +#4940=DIRECTION('',(0.,-1.,0.)); +#4941=DIRECTION('',(-1.,0.,0.)); +#4942=DIRECTION('',(0.,0.,-1.)); +#4943=DIRECTION('',(-1.,0.,0.)); +#4944=DIRECTION('',(0.,-1.,0.)); +#4945=DIRECTION('',(-1.,0.,0.)); +#4946=DIRECTION('',(0.,1.,0.)); +#4947=DIRECTION('',(-1.,0.,0.)); +#4948=DIRECTION('',(0.,0.,-1.)); +#4949=DIRECTION('',(-1.,0.,0.)); +#4950=DIRECTION('',(0.,-1.,0.)); +#4951=DIRECTION('',(-1.,0.,0.)); +#4952=DIRECTION('',(0.,1.,0.)); +#4953=DIRECTION('',(-1.,0.,0.)); +#4954=DIRECTION('',(0.,0.,-1.)); +#4955=DIRECTION('',(-1.,0.,0.)); +#4956=DIRECTION('',(0.,-1.,0.)); +#4957=DIRECTION('',(-1.,0.,0.)); +#4958=DIRECTION('',(0.,1.,0.)); +#4959=DIRECTION('',(-1.,0.,0.)); +#4960=DIRECTION('',(0.,0.,-1.)); +#4961=DIRECTION('',(-1.,0.,0.)); +#4962=DIRECTION('',(0.,-1.,0.)); +#4963=DIRECTION('',(-1.,0.,0.)); +#4964=DIRECTION('',(0.,-1.,0.)); +#4965=DIRECTION('',(-1.,0.,0.)); +#4966=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4967=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); +#4968=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); +#4969=DIRECTION('',(-1.,0.,0.)); +#4970=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4971=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4972=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); +#4973=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4974=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); +#4975=DIRECTION('',(-1.,0.,0.)); +#4976=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4977=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); +#4978=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4979=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); +#4980=DIRECTION('',(-1.,0.,0.)); +#4981=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4982=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); +#4983=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4984=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); +#4985=DIRECTION('',(-1.,0.,0.)); +#4986=DIRECTION('',(0.,0.707106781186549,-0.707106781186546)); +#4987=DIRECTION('',(0.,0.707106781186546,0.707106781186549)); +#4988=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4989=DIRECTION('',(0.,-0.707106781186546,-0.707106781186549)); +#4990=DIRECTION('',(-1.,0.,0.)); +#4991=DIRECTION('',(0.,1.,0.)); +#4992=DIRECTION('',(0.,0.,1.)); +#4993=DIRECTION('',(0.,0.,1.)); +#4994=DIRECTION('',(-1.,0.,0.)); +#4995=DIRECTION('',(0.,0.,-1.)); +#4996=DIRECTION('',(0.,1.,0.)); +#4997=DIRECTION('',(0.,0.,1.)); +#4998=DIRECTION('',(0.,0.,-1.)); +#4999=DIRECTION('',(0.,0.,1.)); +#5000=DIRECTION('',(-1.,0.,0.)); +#5001=DIRECTION('',(0.,1.,0.)); +#5002=DIRECTION('',(0.,0.,1.)); +#5003=DIRECTION('',(0.,0.,-1.)); +#5004=DIRECTION('',(0.,0.,1.)); +#5005=DIRECTION('',(-1.,0.,0.)); +#5006=DIRECTION('',(0.,1.,0.)); +#5007=DIRECTION('',(0.,0.,1.)); +#5008=DIRECTION('',(0.,0.,-1.)); +#5009=DIRECTION('',(0.,0.,1.)); +#5010=DIRECTION('',(-1.,0.,0.)); +#5011=DIRECTION('',(0.,1.,0.)); +#5012=DIRECTION('',(0.,0.,1.)); +#5013=DIRECTION('',(0.,0.,-1.)); +#5014=DIRECTION('',(0.,0.,-1.)); +#5015=DIRECTION('',(-1.,0.,0.)); +#5016=DIRECTION('',(-1.,0.,0.)); +#5017=DIRECTION('',(0.,0.,1.)); +#5018=DIRECTION('',(-1.,0.,0.)); +#5019=DIRECTION('',(0.,0.,1.)); +#5020=DIRECTION('',(-1.,0.,0.)); +#5021=DIRECTION('',(1.,0.,0.)); +#5022=DIRECTION('',(0.,0.,-1.)); +#5023=DIRECTION('',(-1.,0.,0.)); +#5024=DIRECTION('',(0.,0.,1.)); +#5025=DIRECTION('',(1.,0.,0.)); +#5026=DIRECTION('',(0.,0.,-1.)); +#5027=DIRECTION('',(-1.,0.,0.)); +#5028=DIRECTION('',(0.,0.,1.)); +#5029=DIRECTION('',(-1.,0.,0.)); +#5030=DIRECTION('',(-1.,0.,0.)); +#5031=DIRECTION('',(0.,0.,1.)); +#5032=DIRECTION('',(1.,0.,0.)); +#5033=DIRECTION('',(0.,0.,-1.)); +#5034=DIRECTION('',(-1.,0.,0.)); +#5035=DIRECTION('',(0.,0.,1.)); +#5036=DIRECTION('',(-1.,0.,0.)); +#5037=DIRECTION('',(-1.,0.,0.)); +#5038=DIRECTION('',(0.,0.,1.)); +#5039=DIRECTION('',(1.,0.,0.)); +#5040=DIRECTION('',(0.,0.,-1.)); +#5041=DIRECTION('',(-1.,0.,0.)); +#5042=DIRECTION('',(0.,0.,1.)); +#5043=DIRECTION('',(-1.,0.,0.)); +#5044=DIRECTION('',(-1.,0.,0.)); +#5045=DIRECTION('',(0.,0.,1.)); +#5046=DIRECTION('',(1.,0.,0.)); +#5047=DIRECTION('',(0.,0.,-1.)); +#5048=DIRECTION('',(1.,0.,0.)); +#5049=DIRECTION('',(0.,0.,-1.)); +#5050=DIRECTION('',(-1.,0.,0.)); +#5051=DIRECTION('',(0.,0.,1.)); +#5052=DIRECTION('',(1.,0.,0.)); +#5053=DIRECTION('',(0.,-1.,0.)); +#5054=DIRECTION('',(-1.,0.,0.)); +#5055=DIRECTION('',(0.,1.,0.)); +#5056=DIRECTION('',(0.,0.,1.)); +#5057=DIRECTION('',(1.,0.,0.)); +#5058=DIRECTION('',(0.,1.,0.)); +#5059=DIRECTION('',(0.,-1.,0.)); +#5060=DIRECTION('',(-1.,0.,0.)); +#5061=DIRECTION('',(0.,0.,1.)); +#5062=DIRECTION('',(1.,0.,0.)); +#5063=DIRECTION('',(0.,1.,0.)); +#5064=DIRECTION('',(0.,-1.,0.)); +#5065=DIRECTION('',(-1.,0.,0.)); +#5066=DIRECTION('',(0.,0.,1.)); +#5067=DIRECTION('',(1.,0.,0.)); +#5068=DIRECTION('',(0.,1.,0.)); +#5069=DIRECTION('',(0.,-1.,0.)); +#5070=DIRECTION('',(-1.,0.,0.)); +#5071=DIRECTION('',(0.,0.,1.)); +#5072=DIRECTION('',(1.,0.,0.)); +#5073=DIRECTION('',(0.,1.,0.)); +#5074=DIRECTION('',(0.,1.,0.)); +#5075=DIRECTION('',(-1.,0.,0.)); +#5076=DIRECTION('',(0.,0.,-1.)); +#5077=DIRECTION('',(-1.,0.,0.)); +#5078=DIRECTION('',(0.,1.,0.)); +#5079=DIRECTION('',(-1.,0.,0.)); +#5080=DIRECTION('',(0.,-1.,0.)); +#5081=DIRECTION('',(-1.,0.,0.)); +#5082=DIRECTION('',(0.,0.,-1.)); +#5083=DIRECTION('',(-1.,0.,0.)); +#5084=DIRECTION('',(0.,-1.,0.)); +#5085=DIRECTION('',(-1.,0.,0.)); +#5086=DIRECTION('',(0.,1.,0.)); +#5087=DIRECTION('',(-1.,0.,0.)); +#5088=DIRECTION('',(0.,0.,-1.)); +#5089=DIRECTION('',(-1.,0.,0.)); +#5090=DIRECTION('',(0.,-1.,0.)); +#5091=DIRECTION('',(-1.,0.,0.)); +#5092=DIRECTION('',(0.,1.,0.)); +#5093=DIRECTION('',(-1.,0.,0.)); +#5094=DIRECTION('',(0.,0.,-1.)); +#5095=DIRECTION('',(-1.,0.,0.)); +#5096=DIRECTION('',(0.,-1.,0.)); +#5097=DIRECTION('',(-1.,0.,0.)); +#5098=DIRECTION('',(0.,1.,0.)); +#5099=DIRECTION('',(-1.,0.,0.)); +#5100=DIRECTION('',(0.,0.,-1.)); +#5101=DIRECTION('',(-1.,0.,0.)); +#5102=DIRECTION('',(0.,-1.,0.)); +#5103=DIRECTION('',(-1.,0.,0.)); +#5104=DIRECTION('',(0.,-1.,0.)); +#5105=DIRECTION('',(-1.,0.,0.)); +#5106=DIRECTION('',(-1.,0.,0.)); +#5107=DIRECTION('',(0.,0.,1.)); +#5108=DIRECTION('',(-1.,0.,0.)); +#5109=DIRECTION('',(0.,0.,1.)); +#5110=DIRECTION('',(-1.,0.,0.)); +#5111=DIRECTION('',(1.,0.,0.)); +#5112=DIRECTION('',(0.,0.,-1.)); +#5113=DIRECTION('',(-1.,0.,0.)); +#5114=DIRECTION('',(0.,0.,1.)); +#5115=DIRECTION('',(1.,0.,0.)); +#5116=DIRECTION('',(0.,0.,-1.)); +#5117=DIRECTION('',(-1.,0.,0.)); +#5118=DIRECTION('',(0.,0.,1.)); +#5119=DIRECTION('',(-1.,0.,0.)); +#5120=DIRECTION('',(-1.,0.,0.)); +#5121=DIRECTION('',(0.,0.,1.)); +#5122=DIRECTION('',(1.,0.,0.)); +#5123=DIRECTION('',(0.,0.,-1.)); +#5124=DIRECTION('',(-1.,0.,0.)); +#5125=DIRECTION('',(0.,0.,1.)); +#5126=DIRECTION('',(-1.,0.,0.)); +#5127=DIRECTION('',(-1.,0.,0.)); +#5128=DIRECTION('',(0.,0.,1.)); +#5129=DIRECTION('',(1.,0.,0.)); +#5130=DIRECTION('',(0.,0.,-1.)); +#5131=DIRECTION('',(-1.,0.,0.)); +#5132=DIRECTION('',(0.,0.,1.)); +#5133=DIRECTION('',(-1.,0.,0.)); +#5134=DIRECTION('',(-1.,0.,0.)); +#5135=DIRECTION('',(0.,0.,1.)); +#5136=DIRECTION('',(1.,0.,0.)); +#5137=DIRECTION('',(0.,0.,-1.)); +#5138=DIRECTION('',(1.,0.,0.)); +#5139=DIRECTION('',(0.,0.,-1.)); +#5140=DIRECTION('',(-1.,0.,0.)); +#5141=DIRECTION('',(0.,1.,0.)); +#5142=DIRECTION('',(0.,0.,1.)); +#5143=DIRECTION('',(0.,0.,1.)); +#5144=DIRECTION('',(-1.,0.,0.)); +#5145=DIRECTION('',(0.,0.,-1.)); +#5146=DIRECTION('',(0.,1.,0.)); +#5147=DIRECTION('',(0.,0.,1.)); +#5148=DIRECTION('',(0.,0.,-1.)); +#5149=DIRECTION('',(0.,0.,1.)); +#5150=DIRECTION('',(-1.,0.,0.)); +#5151=DIRECTION('',(0.,1.,0.)); +#5152=DIRECTION('',(0.,0.,1.)); +#5153=DIRECTION('',(0.,0.,-1.)); +#5154=DIRECTION('',(0.,0.,1.)); +#5155=DIRECTION('',(-1.,0.,0.)); +#5156=DIRECTION('',(0.,1.,0.)); +#5157=DIRECTION('',(0.,0.,1.)); +#5158=DIRECTION('',(0.,0.,-1.)); +#5159=DIRECTION('',(0.,0.,1.)); +#5160=DIRECTION('',(-1.,0.,0.)); +#5161=DIRECTION('',(0.,1.,0.)); +#5162=DIRECTION('',(0.,0.,1.)); +#5163=DIRECTION('',(0.,0.,-1.)); +#5164=DIRECTION('',(0.,0.,-1.)); +#5165=DIRECTION('',(-1.,0.,0.)); +#5166=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#5167=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#5168=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#5169=DIRECTION('',(-1.,0.,0.)); +#5170=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); +#5171=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#5172=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#5173=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); +#5174=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#5175=DIRECTION('',(-1.,0.,0.)); +#5176=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#5177=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#5178=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); +#5179=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#5180=DIRECTION('',(-1.,0.,0.)); +#5181=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#5182=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#5183=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); +#5184=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#5185=DIRECTION('',(-1.,0.,0.)); +#5186=DIRECTION('',(0.,0.707106781186549,0.707106781186546)); +#5187=DIRECTION('',(0.,-0.707106781186546,0.707106781186549)); +#5188=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); +#5189=DIRECTION('',(0.,0.707106781186546,-0.707106781186549)); +#5190=DIRECTION('',(-1.,0.,0.)); +#5191=DIRECTION('',(0.,0.,1.)); +#5192=DIRECTION('',(1.,0.,0.)); +#5193=DIRECTION('',(0.,1.,0.)); +#5194=DIRECTION('',(-1.,0.,0.)); +#5195=DIRECTION('',(0.,1.,0.)); +#5196=DIRECTION('',(0.,0.,1.)); +#5197=DIRECTION('',(1.,0.,0.)); +#5198=DIRECTION('',(0.,-1.,0.)); +#5199=DIRECTION('',(0.,1.,0.)); +#5200=DIRECTION('',(-1.,0.,0.)); +#5201=DIRECTION('',(0.,0.,1.)); +#5202=DIRECTION('',(1.,0.,0.)); +#5203=DIRECTION('',(0.,-1.,0.)); +#5204=DIRECTION('',(0.,1.,0.)); +#5205=DIRECTION('',(-1.,0.,0.)); +#5206=DIRECTION('',(0.,0.,1.)); +#5207=DIRECTION('',(1.,0.,0.)); +#5208=DIRECTION('',(0.,-1.,0.)); +#5209=DIRECTION('',(0.,1.,0.)); +#5210=DIRECTION('',(-1.,0.,0.)); +#5211=DIRECTION('',(0.,0.,1.)); +#5212=DIRECTION('',(1.,0.,0.)); +#5213=DIRECTION('',(0.,-1.,0.)); +#5214=DIRECTION('',(0.,1.,0.)); +#5215=DIRECTION('',(-1.,0.,0.)); +#5216=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); +#5217=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#5218=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#5219=DIRECTION('',(-1.,0.,0.)); +#5220=DIRECTION('',(0.,0.707106781186547,0.707106781186549)); +#5221=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); +#5222=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#5223=DIRECTION('',(0.,0.707106781186547,0.707106781186548)); +#5224=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#5225=DIRECTION('',(-1.,0.,0.)); +#5226=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); +#5227=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#5228=DIRECTION('',(0.,0.707106781186547,0.707106781186548)); +#5229=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#5230=DIRECTION('',(-1.,0.,0.)); +#5231=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); +#5232=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#5233=DIRECTION('',(0.,0.707106781186547,0.707106781186548)); +#5234=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#5235=DIRECTION('',(-1.,0.,0.)); +#5236=DIRECTION('',(0.,-0.707106781186548,0.707106781186547)); +#5237=DIRECTION('',(0.,-0.707106781186547,-0.707106781186548)); +#5238=DIRECTION('',(0.,0.707106781186547,0.707106781186548)); +#5239=DIRECTION('',(0.,0.707106781186547,0.707106781186549)); +#5240=DIRECTION('',(-1.,0.,0.)); +#5241=DIRECTION('',(0.,-1.,0.)); +#5242=DIRECTION('',(0.,0.,-1.)); +#5243=DIRECTION('',(0.,0.,-1.)); +#5244=DIRECTION('',(-1.,0.,0.)); +#5245=DIRECTION('',(0.,0.,1.)); +#5246=DIRECTION('',(0.,-1.,0.)); +#5247=DIRECTION('',(0.,0.,-1.)); +#5248=DIRECTION('',(0.,0.,1.)); +#5249=DIRECTION('',(0.,0.,-1.)); +#5250=DIRECTION('',(-1.,0.,0.)); +#5251=DIRECTION('',(0.,-1.,0.)); +#5252=DIRECTION('',(0.,0.,-1.)); +#5253=DIRECTION('',(0.,0.,1.)); +#5254=DIRECTION('',(0.,0.,-1.)); +#5255=DIRECTION('',(-1.,0.,0.)); +#5256=DIRECTION('',(0.,-1.,0.)); +#5257=DIRECTION('',(0.,0.,-1.)); +#5258=DIRECTION('',(0.,0.,1.)); +#5259=DIRECTION('',(0.,0.,-1.)); +#5260=DIRECTION('',(-1.,0.,0.)); +#5261=DIRECTION('',(0.,-1.,0.)); +#5262=DIRECTION('',(0.,0.,-1.)); +#5263=DIRECTION('',(0.,0.,1.)); +#5264=DIRECTION('',(0.,0.,1.)); +#5265=DIRECTION('',(-1.,0.,0.)); +#5266=DIRECTION('',(-1.,0.,0.)); +#5267=DIRECTION('',(0.,0.,1.)); +#5268=DIRECTION('',(-1.,0.,0.)); +#5269=DIRECTION('',(0.,0.,1.)); +#5270=DIRECTION('',(1.,0.,0.)); +#5271=DIRECTION('',(0.,0.,-1.)); +#5272=DIRECTION('',(-1.,0.,0.)); +#5273=DIRECTION('',(0.,0.,1.)); +#5274=DIRECTION('',(1.,0.,0.)); +#5275=DIRECTION('',(0.,0.,-1.)); +#5276=DIRECTION('',(-1.,0.,0.)); +#5277=DIRECTION('',(0.,0.,1.)); +#5278=DIRECTION('',(-1.,0.,0.)); +#5279=DIRECTION('',(0.,0.,1.)); +#5280=DIRECTION('',(1.,0.,0.)); +#5281=DIRECTION('',(0.,0.,-1.)); +#5282=DIRECTION('',(-1.,0.,0.)); +#5283=DIRECTION('',(0.,0.,1.)); +#5284=DIRECTION('',(-1.,0.,0.)); +#5285=DIRECTION('',(0.,0.,1.)); +#5286=DIRECTION('',(1.,0.,0.)); +#5287=DIRECTION('',(0.,0.,-1.)); +#5288=DIRECTION('',(-1.,0.,0.)); +#5289=DIRECTION('',(0.,0.,1.)); +#5290=DIRECTION('',(-1.,0.,0.)); +#5291=DIRECTION('',(0.,0.,1.)); +#5292=DIRECTION('',(1.,0.,0.)); +#5293=DIRECTION('',(0.,0.,-1.)); +#5294=DIRECTION('',(1.,0.,0.)); +#5295=DIRECTION('',(0.,0.,-1.)); +#5296=DIRECTION('',(-1.,0.,0.)); +#5297=DIRECTION('',(0.,0.,1.)); +#5298=DIRECTION('',(-1.,0.,0.)); +#5299=DIRECTION('',(0.,0.,1.)); +#5300=DIRECTION('',(-1.,0.,0.)); +#5301=DIRECTION('',(1.,0.,0.)); +#5302=DIRECTION('',(0.,0.,-1.)); +#5303=DIRECTION('',(-1.,0.,0.)); +#5304=DIRECTION('',(0.,0.,1.)); +#5305=DIRECTION('',(-1.,0.,0.)); +#5306=DIRECTION('',(1.,0.,0.)); +#5307=DIRECTION('',(0.,0.,-1.)); +#5308=DIRECTION('',(-1.,0.,0.)); +#5309=DIRECTION('',(0.,0.,1.)); +#5310=DIRECTION('',(-1.,0.,0.)); +#5311=DIRECTION('',(0.,0.,1.)); +#5312=DIRECTION('',(-1.,0.,0.)); +#5313=DIRECTION('',(1.,0.,0.)); +#5314=DIRECTION('',(0.,0.,-1.)); +#5315=DIRECTION('',(-1.,0.,0.)); +#5316=DIRECTION('',(0.,0.,1.)); +#5317=DIRECTION('',(-1.,0.,0.)); +#5318=DIRECTION('',(0.,0.,1.)); +#5319=DIRECTION('',(-1.,0.,0.)); +#5320=DIRECTION('',(1.,0.,0.)); +#5321=DIRECTION('',(0.,0.,-1.)); +#5322=DIRECTION('',(-1.,0.,0.)); +#5323=DIRECTION('',(0.,0.,1.)); +#5324=DIRECTION('',(-1.,0.,0.)); +#5325=DIRECTION('',(0.,0.,1.)); +#5326=DIRECTION('',(-1.,0.,0.)); +#5327=DIRECTION('',(1.,0.,0.)); +#5328=DIRECTION('',(0.,0.,-1.)); +#5329=DIRECTION('',(1.,0.,0.)); +#5330=DIRECTION('',(0.,0.,-1.)); +#5331=DIRECTION('',(0.,-1.,0.)); +#5332=DIRECTION('',(0.,0.,-1.)); +#5333=DIRECTION('',(0.,0.,-1.)); +#5334=DIRECTION('',(-1.,0.,0.)); +#5335=DIRECTION('',(0.,0.,1.)); +#5336=DIRECTION('',(0.,-1.,0.)); +#5337=DIRECTION('',(0.,0.,-1.)); +#5338=DIRECTION('',(0.,0.,1.)); +#5339=DIRECTION('',(0.,0.,-1.)); +#5340=DIRECTION('',(-1.,0.,0.)); +#5341=DIRECTION('',(0.,-1.,0.)); +#5342=DIRECTION('',(0.,0.,-1.)); +#5343=DIRECTION('',(0.,0.,1.)); +#5344=DIRECTION('',(0.,0.,-1.)); +#5345=DIRECTION('',(-1.,0.,0.)); +#5346=DIRECTION('',(0.,-1.,0.)); +#5347=DIRECTION('',(0.,0.,-1.)); +#5348=DIRECTION('',(0.,0.,1.)); +#5349=DIRECTION('',(0.,0.,-1.)); +#5350=DIRECTION('',(-1.,0.,0.)); +#5351=DIRECTION('',(0.,-1.,0.)); +#5352=DIRECTION('',(0.,0.,-1.)); +#5353=DIRECTION('',(0.,0.,1.)); +#5354=DIRECTION('',(0.,0.,1.)); +#5355=DIRECTION('',(-1.,0.,0.)); +#5356=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#5357=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#5358=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#5359=DIRECTION('',(0.,-0.707106781186547,0.707106781186549)); +#5360=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#5361=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#5362=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#5363=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#5364=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#5365=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#5366=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#5367=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#5368=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#5369=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#5370=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#5371=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#5372=DIRECTION('',(0.,-0.707106781186548,-0.707106781186547)); +#5373=DIRECTION('',(0.,0.707106781186547,-0.707106781186548)); +#5374=DIRECTION('',(0.,-0.707106781186547,0.707106781186548)); +#5375=DIRECTION('',(0.,-0.707106781186547,0.707106781186549)); +#5376=DIRECTION('',(0.,1.,0.)); +#5377=DIRECTION('',(0.,0.,1.)); +#5378=DIRECTION('',(0.,0.,-1.)); +#5379=DIRECTION('',(0.,0.,-1.)); +#5380=DIRECTION('',(0.,0.,-1.)); +#5381=DIRECTION('',(0.,0.,-1.)); +#5382=DIRECTION('',(0.,0.,-1.)); +#5383=DIRECTION('',(0.,0.,-1.)); +#5384=DIRECTION('',(0.,0.,-1.)); +#5385=DIRECTION('',(0.,0.,-1.)); +#5386=DIRECTION('',(0.,0.,-1.)); +#5387=DIRECTION('',(0.,0.,-1.)); +#5388=DIRECTION('',(0.,0.,-1.)); +#5389=DIRECTION('',(0.,0.,-1.)); +#5390=DIRECTION('',(0.,0.,-1.)); +#5391=DIRECTION('',(0.,0.,-1.)); +#5392=DIRECTION('',(0.,0.,-1.)); +#5393=DIRECTION('',(0.,0.,-1.)); +#5394=DIRECTION('',(0.,0.,-1.)); +#5395=DIRECTION('',(0.,0.,-1.)); +#5396=DIRECTION('',(0.,-1.,0.)); +#5397=DIRECTION('',(0.,0.,-1.)); +#5398=DIRECTION('',(0.,0.,-1.)); +#5399=DIRECTION('',(0.,0.,-1.)); +#5400=DIRECTION('',(0.,0.,-1.)); +#5401=DIRECTION('',(0.,0.,-1.)); +#5402=DIRECTION('',(0.,0.,-1.)); +#5403=DIRECTION('',(0.,0.,-1.)); +#5404=DIRECTION('',(0.,0.,-1.)); +#5405=DIRECTION('',(0.,0.,-1.)); +#5406=DIRECTION('',(0.,0.,1.)); +#5407=DIRECTION('',(0.,0.,-1.)); +#5408=DIRECTION('',(0.,0.,-1.)); +#5409=DIRECTION('',(0.,0.,-1.)); +#5410=DIRECTION('',(0.,0.,-1.)); +#5411=DIRECTION('',(0.,0.,-1.)); +#5412=DIRECTION('',(0.,0.,-1.)); +#5413=DIRECTION('',(0.,0.,-1.)); +#5414=DIRECTION('',(0.,0.,-1.)); +#5415=DIRECTION('',(0.,0.,1.)); +#5416=DIRECTION('',(1.,0.,0.)); +#5417=DIRECTION('',(0.,0.,-1.)); +#5418=DIRECTION('',(1.,0.,0.)); +#5419=DIRECTION('',(0.,0.,-1.)); +#5420=DIRECTION('',(-1.,0.,0.)); +#5421=DIRECTION('',(0.,0.,1.)); +#5422=DIRECTION('',(1.,0.,0.)); +#5423=DIRECTION('',(0.,0.,-1.)); +#5424=DIRECTION('',(-1.,0.,0.)); +#5425=DIRECTION('',(0.,0.,1.)); +#5426=DIRECTION('',(1.,0.,0.)); +#5427=DIRECTION('',(0.,0.,-1.)); +#5428=DIRECTION('',(-1.,0.,0.)); +#5429=DIRECTION('',(0.,0.,1.)); +#5430=DIRECTION('',(1.,0.,0.)); +#5431=DIRECTION('',(0.,0.,-1.)); +#5432=DIRECTION('',(-1.,0.,0.)); +#5433=DIRECTION('',(0.,0.,1.)); +#5434=DIRECTION('',(1.,0.,0.)); +#5435=DIRECTION('',(0.,0.,-1.)); +#5436=DIRECTION('',(1.,0.,0.)); +#5437=DIRECTION('',(0.,0.,-1.)); +#5438=DIRECTION('',(-1.,0.,0.)); +#5439=DIRECTION('',(0.,0.,1.)); +#5440=DIRECTION('',(1.,0.,0.)); +#5441=DIRECTION('',(0.,0.,-1.)); +#5442=DIRECTION('',(-1.,0.,0.)); +#5443=DIRECTION('',(0.,0.,1.)); +#5444=DIRECTION('',(1.,0.,0.)); +#5445=DIRECTION('',(0.,0.,-1.)); +#5446=DIRECTION('',(-1.,0.,0.)); +#5447=DIRECTION('',(0.,0.,1.)); +#5448=DIRECTION('',(-1.,0.,0.)); +#5449=DIRECTION('',(0.,0.,1.)); +#5450=DIRECTION('',(1.,0.,0.)); +#5451=DIRECTION('',(0.,0.,-1.)); +#5452=DIRECTION('',(-1.,0.,0.)); +#5453=DIRECTION('',(0.,0.,1.)); +#5454=DIRECTION('',(1.,0.,0.)); +#5455=DIRECTION('',(0.,0.,-1.)); +#5456=DIRECTION('',(-1.,0.,0.)); +#5457=DIRECTION('',(0.,0.,1.)); +#5458=DIRECTION('',(1.,0.,0.)); +#5459=DIRECTION('',(0.,0.,-1.)); +#5460=DIRECTION('',(-1.,0.,0.)); +#5461=DIRECTION('',(0.,0.,1.)); +#5462=DIRECTION('',(1.,0.,0.)); +#5463=DIRECTION('',(0.,0.,-1.)); +#5464=DIRECTION('',(-1.,0.,0.)); +#5465=DIRECTION('',(0.,0.,1.)); +#5466=DIRECTION('',(1.,0.,0.)); +#5467=DIRECTION('',(0.,0.,-1.)); +#5468=DIRECTION('',(-1.,0.,0.)); +#5469=DIRECTION('',(0.,0.,1.)); +#5470=DIRECTION('',(1.,0.,0.)); +#5471=DIRECTION('',(0.,0.,-1.)); +#5472=DIRECTION('',(-1.,0.,0.)); +#5473=DIRECTION('',(0.,0.,1.)); +#5474=DIRECTION('',(1.,0.,0.)); +#5475=DIRECTION('',(0.,0.,-1.)); +#5476=DIRECTION('',(-1.,0.,0.)); +#5477=DIRECTION('',(0.,0.,1.)); +#5478=DIRECTION('',(1.,0.,0.)); +#5479=DIRECTION('',(0.,0.,-1.)); +#5480=DIRECTION('',(1.,0.,0.)); +#5481=DIRECTION('',(0.,0.,-1.)); +#5482=DIRECTION('',(-1.,0.,0.)); +#5483=DIRECTION('',(0.,0.,1.)); +#5484=DIRECTION('',(0.,0.,1.)); +#5485=DIRECTION('',(1.,0.,0.)); +#5486=CARTESIAN_POINT('',(0.,0.,0.)); +#5487=CARTESIAN_POINT('',(-0.25,0.21,0.1)); +#5488=CARTESIAN_POINT('',(-0.25,0.21,0.1)); +#5489=CARTESIAN_POINT('',(-0.25,0.21,0.1)); +#5490=CARTESIAN_POINT('',(-0.25,0.21,0.025)); +#5491=CARTESIAN_POINT('',(-0.25,0.21,0.025)); +#5492=CARTESIAN_POINT('',(-0.25,0.,0.025)); +#5493=CARTESIAN_POINT('',(-0.25,0.,0.1)); +#5494=CARTESIAN_POINT('',(-0.25,0.,0.1)); +#5495=CARTESIAN_POINT('',(-0.25,0.21,0.1)); +#5496=CARTESIAN_POINT('',(0.,0.,-0.12)); +#5497=CARTESIAN_POINT('',(0.25,0.21,-0.12)); +#5498=CARTESIAN_POINT('',(-0.213,0.21,-0.12)); +#5499=CARTESIAN_POINT('',(-0.25,0.21,-0.12)); +#5500=CARTESIAN_POINT('',(-0.213,0.,-0.12)); +#5501=CARTESIAN_POINT('',(-0.213,0.,-0.12)); +#5502=CARTESIAN_POINT('',(-0.25,0.,-0.12)); +#5503=CARTESIAN_POINT('',(-0.25,0.,-0.12)); +#5504=CARTESIAN_POINT('',(-0.25,0.21,-0.12)); +#5505=CARTESIAN_POINT('',(0.,0.,-0.12)); +#5506=CARTESIAN_POINT('',(0.213,0.08,-0.12)); +#5507=CARTESIAN_POINT('',(0.05,0.08,-0.12)); +#5508=CARTESIAN_POINT('',(-0.05,0.08,-0.12)); +#5509=CARTESIAN_POINT('',(-0.05,0.21,-0.12)); +#5510=CARTESIAN_POINT('',(-0.05,0.21,-0.12)); +#5511=CARTESIAN_POINT('',(0.25,0.21,-0.12)); +#5512=CARTESIAN_POINT('',(0.05,0.21,-0.12)); +#5513=CARTESIAN_POINT('',(0.05,0.21,-0.12)); +#5514=CARTESIAN_POINT('',(0.25,0.21,0.1)); +#5515=CARTESIAN_POINT('',(-0.245,0.21,-0.025)); +#5516=CARTESIAN_POINT('',(-0.245,0.21,-0.025)); +#5517=CARTESIAN_POINT('',(-0.245,0.21,0.025)); +#5518=CARTESIAN_POINT('',(-0.245,0.21,0.025)); +#5519=CARTESIAN_POINT('',(0.25,0.21,0.1)); +#5520=CARTESIAN_POINT('',(-0.12,0.21,0.1)); +#5521=CARTESIAN_POINT('',(-0.12,0.21,0.09)); +#5522=CARTESIAN_POINT('',(-0.12,0.21,0.09)); +#5523=CARTESIAN_POINT('',(-0.08,0.21,0.09)); +#5524=CARTESIAN_POINT('',(-0.08,0.21,0.09)); +#5525=CARTESIAN_POINT('',(-0.08,0.21,0.09)); +#5526=CARTESIAN_POINT('',(-0.08,0.21,0.1)); +#5527=CARTESIAN_POINT('',(0.25,0.21,0.1)); +#5528=CARTESIAN_POINT('',(-0.05,0.21,0.1)); +#5529=CARTESIAN_POINT('',(-0.05,0.21,0.1)); +#5530=CARTESIAN_POINT('',(-0.05,0.21,0.0809191070279861)); +#5531=CARTESIAN_POINT('',(-0.215,0.21,0.0809191070279861)); +#5532=CARTESIAN_POINT('',(-0.225919107027986,0.21,0.0809191070279861)); +#5533=CARTESIAN_POINT('',(-0.225919107027986,0.21,-0.07)); +#5534=CARTESIAN_POINT('',(-0.225919107027986,0.21,-0.0809191070279861)); +#5535=CARTESIAN_POINT('',(0.215,0.21,-0.0809191070279861)); +#5536=CARTESIAN_POINT('',(0.225919107027986,0.21,-0.0809191070279861)); +#5537=CARTESIAN_POINT('',(0.225919107027986,0.21,0.07)); +#5538=CARTESIAN_POINT('',(0.225919107027986,0.21,0.0809191070279861)); +#5539=CARTESIAN_POINT('',(-0.215,0.21,0.0809191070279861)); +#5540=CARTESIAN_POINT('',(0.05,0.21,0.0809191070279861)); +#5541=CARTESIAN_POINT('',(0.05,0.21,0.1)); +#5542=CARTESIAN_POINT('',(0.05,0.21,0.1)); +#5543=CARTESIAN_POINT('',(0.25,0.21,0.1)); +#5544=CARTESIAN_POINT('',(0.25,0.21,0.1)); +#5545=CARTESIAN_POINT('',(0.25,0.21,0.1)); +#5546=CARTESIAN_POINT('',(0.25,0.21,-0.12)); +#5547=CARTESIAN_POINT('',(0.25,0.21,-0.12)); +#5548=CARTESIAN_POINT('',(0.213,0.21,-0.12)); +#5549=CARTESIAN_POINT('',(0.213,0.21,-0.12)); +#5550=CARTESIAN_POINT('',(0.213,0.21,-0.1)); +#5551=CARTESIAN_POINT('',(0.213,0.21,-0.1)); +#5552=CARTESIAN_POINT('',(0.05,0.21,-0.1)); +#5553=CARTESIAN_POINT('',(0.05,0.21,-0.1)); +#5554=CARTESIAN_POINT('',(-0.05,0.21,-0.12)); +#5555=CARTESIAN_POINT('',(-0.05,0.21,-0.1)); +#5556=CARTESIAN_POINT('',(-0.05,0.21,-0.1)); +#5557=CARTESIAN_POINT('',(-0.213,0.21,-0.1)); +#5558=CARTESIAN_POINT('',(-0.213,0.21,-0.1)); +#5559=CARTESIAN_POINT('',(-0.25,0.21,0.1)); +#5560=CARTESIAN_POINT('',(-0.25,0.21,-0.025)); +#5561=CARTESIAN_POINT('',(-0.26,0.21,-0.025)); +#5562=CARTESIAN_POINT('',(0.,0.,0.1)); +#5563=CARTESIAN_POINT('',(-0.12,0.21,0.1)); +#5564=CARTESIAN_POINT('',(-0.1,0.16,0.1)); +#5565=CARTESIAN_POINT('',(-0.25,0.,0.1)); +#5566=CARTESIAN_POINT('',(-0.213,8.53702498020082E-18,0.1)); +#5567=CARTESIAN_POINT('',(-0.213,0.06,0.1)); +#5568=CARTESIAN_POINT('',(-0.213,0.06,0.1)); +#5569=CARTESIAN_POINT('',(0.213,0.06,0.1)); +#5570=CARTESIAN_POINT('',(0.213,0.06,0.1)); +#5571=CARTESIAN_POINT('',(0.213,0.06,0.1)); +#5572=CARTESIAN_POINT('',(0.213,8.53702498020082E-18,0.1)); +#5573=CARTESIAN_POINT('',(-0.25,0.,0.1)); +#5574=CARTESIAN_POINT('',(0.25,0.,0.1)); +#5575=CARTESIAN_POINT('',(0.25,0.,0.1)); +#5576=CARTESIAN_POINT('',(0.05,0.065,0.1)); +#5577=CARTESIAN_POINT('',(0.05,0.065,0.1)); +#5578=CARTESIAN_POINT('',(-0.05,0.065,0.1)); +#5579=CARTESIAN_POINT('',(-0.05,0.065,0.1)); +#5580=CARTESIAN_POINT('',(-0.05,0.21,0.1)); +#5581=CARTESIAN_POINT('',(-0.1,0.16,0.1)); +#5582=CARTESIAN_POINT('',(-0.215,0.18,0.07)); +#5583=CARTESIAN_POINT('',(-0.05,0.18,0.07)); +#5584=CARTESIAN_POINT('',(-0.05,0.18,0.07)); +#5585=CARTESIAN_POINT('',(-0.215,0.18,0.07)); +#5586=CARTESIAN_POINT('',(-0.215,0.18,0.07)); +#5587=CARTESIAN_POINT('',(-0.215,0.18,0.07)); +#5588=CARTESIAN_POINT('',(-0.215,0.18,0.07)); +#5589=CARTESIAN_POINT('',(-0.215,0.18,0.07)); +#5590=CARTESIAN_POINT('',(0.05,0.18,0.07)); +#5591=CARTESIAN_POINT('',(0.215,0.18,0.07)); +#5592=CARTESIAN_POINT('',(0.05,0.18,0.07)); +#5593=CARTESIAN_POINT('',(0.215,0.18,0.07)); +#5594=CARTESIAN_POINT('',(-0.25,0.,0.1)); +#5595=CARTESIAN_POINT('',(-0.245,0.,0.025)); +#5596=CARTESIAN_POINT('',(-0.245,0.,0.025)); +#5597=CARTESIAN_POINT('',(-0.245,0.,-0.025)); +#5598=CARTESIAN_POINT('',(-0.245,0.,-0.025)); +#5599=CARTESIAN_POINT('',(-0.26,0.,-0.025)); +#5600=CARTESIAN_POINT('',(-0.25,0.,-0.025)); +#5601=CARTESIAN_POINT('',(-0.25,0.,0.1)); +#5602=CARTESIAN_POINT('',(-0.213,0.,0.1)); +#5603=CARTESIAN_POINT('',(-0.25,0.21,0.1)); +#5604=CARTESIAN_POINT('',(-0.25,0.21,-0.025)); +#5605=CARTESIAN_POINT('',(-0.25,0.,0.1)); +#5606=CARTESIAN_POINT('',(0.213,0.,0.1)); +#5607=CARTESIAN_POINT('',(0.213,0.,-0.12)); +#5608=CARTESIAN_POINT('',(-0.25,0.,-0.12)); +#5609=CARTESIAN_POINT('',(0.25,0.,-0.12)); +#5610=CARTESIAN_POINT('',(0.25,0.,0.1)); +#5611=CARTESIAN_POINT('',(0.25,0.,0.1)); +#5612=CARTESIAN_POINT('',(0.25,0.,-0.12)); +#5613=CARTESIAN_POINT('',(0.,0.,-0.12)); +#5614=CARTESIAN_POINT('',(0.213,0.,-0.12)); +#5615=CARTESIAN_POINT('',(0.213,0.02,0.06)); +#5616=CARTESIAN_POINT('',(-0.213,0.02,0.06)); +#5617=CARTESIAN_POINT('',(-0.213,0.02,0.06)); +#5618=CARTESIAN_POINT('',(0.213,0.02,0.06)); +#5619=CARTESIAN_POINT('',(0.213,0.02,0.06)); +#5620=CARTESIAN_POINT('',(0.213,0.02,0.06)); +#5621=CARTESIAN_POINT('',(0.213,0.08,-0.12)); +#5622=CARTESIAN_POINT('',(0.213,0.06,-0.1)); +#5623=CARTESIAN_POINT('',(-0.05,0.06,-0.1)); +#5624=CARTESIAN_POINT('',(-0.213,0.06,-0.1)); +#5625=CARTESIAN_POINT('',(-0.05,0.08,-0.12)); +#5626=CARTESIAN_POINT('',(0.05,0.08,-0.12)); +#5627=CARTESIAN_POINT('',(0.05,0.06,-0.1)); +#5628=CARTESIAN_POINT('',(0.213,0.06,-0.1)); +#5629=CARTESIAN_POINT('',(0.213,0.06,-0.1)); +#5630=CARTESIAN_POINT('',(0.213,0.08,-0.12)); +#5631=CARTESIAN_POINT('',(0.213,0.02,-0.06)); +#5632=CARTESIAN_POINT('',(0.213,0.02,-0.06)); +#5633=CARTESIAN_POINT('',(-0.213,0.02,-0.06)); +#5634=CARTESIAN_POINT('',(-0.213,0.08,-0.12)); +#5635=CARTESIAN_POINT('',(0.213,0.02,-0.06)); +#5636=CARTESIAN_POINT('',(-0.213,0.02,-0.06)); +#5637=CARTESIAN_POINT('',(0.213,0.02,-0.06)); +#5638=CARTESIAN_POINT('',(0.213,0.,0.)); +#5639=CARTESIAN_POINT('',(0.213,0.21,-0.1)); +#5640=CARTESIAN_POINT('',(-0.213,0.,0.)); +#5641=CARTESIAN_POINT('',(-0.213,0.21,-0.1)); +#5642=CARTESIAN_POINT('',(0.215,0.18,-0.07)); +#5643=CARTESIAN_POINT('',(0.215,0.18,-0.07)); +#5644=CARTESIAN_POINT('',(0.215,0.18,-0.07)); +#5645=CARTESIAN_POINT('',(-0.215,0.18,-0.07)); +#5646=CARTESIAN_POINT('',(0.215,0.18,-0.07)); +#5647=CARTESIAN_POINT('',(-0.215,0.18,-0.07)); +#5648=CARTESIAN_POINT('',(-0.215,0.18,-0.07)); +#5649=CARTESIAN_POINT('',(-0.215,0.18,-0.07)); +#5650=CARTESIAN_POINT('',(0.215,0.18,0.07)); +#5651=CARTESIAN_POINT('',(0.215,0.18,0.07)); +#5652=CARTESIAN_POINT('',(-0.05,0.21,0.1)); +#5653=CARTESIAN_POINT('',(-0.05,0.21,0.07)); +#5654=CARTESIAN_POINT('',(-0.05,0.065,0.07)); +#5655=CARTESIAN_POINT('',(-0.05,0.065,0.1)); +#5656=CARTESIAN_POINT('',(-0.05,0.065,0.1)); +#5657=CARTESIAN_POINT('',(-0.215,0.065,0.07)); +#5658=CARTESIAN_POINT('',(-0.215,0.065,0.07)); +#5659=CARTESIAN_POINT('',(0.05,0.065,0.1)); +#5660=CARTESIAN_POINT('',(0.05,0.065,0.07)); +#5661=CARTESIAN_POINT('',(-0.215,0.065,0.07)); +#5662=CARTESIAN_POINT('',(0.215,0.065,0.07)); +#5663=CARTESIAN_POINT('',(0.215,0.065,0.07)); +#5664=CARTESIAN_POINT('',(0.215,0.065,-0.07)); +#5665=CARTESIAN_POINT('',(0.215,0.065,-0.07)); +#5666=CARTESIAN_POINT('',(-0.215,0.065,-0.07)); +#5667=CARTESIAN_POINT('',(-0.215,0.065,-0.07)); +#5668=CARTESIAN_POINT('',(0.05,0.065,0.1)); +#5669=CARTESIAN_POINT('',(0.05,0.065,0.07)); +#5670=CARTESIAN_POINT('',(-0.12,0.21,0.09)); +#5671=CARTESIAN_POINT('',(-0.1,0.16,0.09)); +#5672=CARTESIAN_POINT('',(-0.1,0.16,0.09)); +#5673=CARTESIAN_POINT('',(-0.12,0.21,0.09)); +#5674=CARTESIAN_POINT('',(-0.1,0.16,0.09)); +#5675=CARTESIAN_POINT('',(-0.1,0.16,0.09)); +#5676=CARTESIAN_POINT('',(0.,0.,0.09)); +#5677=CARTESIAN_POINT('',(-0.215,0.065,0.07)); +#5678=CARTESIAN_POINT('',(-0.215,0.065,0.07)); +#5679=CARTESIAN_POINT('',(0.215,0.065,-0.07)); +#5680=CARTESIAN_POINT('',(-0.215,0.065,-0.07)); +#5681=CARTESIAN_POINT('',(0.215,0.065,-0.07)); +#5682=CARTESIAN_POINT('',(-0.215,0.065,-0.07)); +#5683=CARTESIAN_POINT('',(-0.215,0.065,0.07)); +#5684=CARTESIAN_POINT('',(0.215,0.065,0.07)); +#5685=CARTESIAN_POINT('',(0.215,0.065,0.07)); +#5686=CARTESIAN_POINT('',(0.213,0.21,-0.1)); +#5687=CARTESIAN_POINT('',(0.05,0.21,-0.1)); +#5688=CARTESIAN_POINT('',(0.05,0.21,-0.1)); +#5689=CARTESIAN_POINT('',(-0.05,0.21,-0.12)); +#5690=CARTESIAN_POINT('',(-0.05,0.21,-0.1)); +#5691=CARTESIAN_POINT('',(-0.05,0.21,-0.1)); +#5692=CARTESIAN_POINT('',(-0.245,0.21,0.025)); +#5693=CARTESIAN_POINT('',(-0.245,0.21,0.025)); +#5694=CARTESIAN_POINT('',(-0.26,0.21,-0.025)); +#5695=CARTESIAN_POINT('',(-0.245,0.21,-0.025)); +#5696=CARTESIAN_POINT('',(-0.245,0.21,-0.025)); +#5697=CARTESIAN_POINT('',(0.,0.,0.)); +#5698=CARTESIAN_POINT('',(0.02,0.,-0.01)); +#5699=CARTESIAN_POINT('',(0.02,0.,0.)); +#5700=CARTESIAN_POINT('',(-0.019,0.,0.)); +#5701=CARTESIAN_POINT('',(-0.02,0.,0.)); +#5702=CARTESIAN_POINT('',(-0.019,0.,0.002)); +#5703=CARTESIAN_POINT('',(-0.019,0.,-0.009)); +#5704=CARTESIAN_POINT('',(0.019,0.,-0.009)); +#5705=CARTESIAN_POINT('',(0.019,0.,-0.009)); +#5706=CARTESIAN_POINT('',(0.019,0.,0.002)); +#5707=CARTESIAN_POINT('',(0.019,0.,0.)); +#5708=CARTESIAN_POINT('',(0.02,0.,0.)); +#5709=CARTESIAN_POINT('',(0.02,0.,0.)); +#5710=CARTESIAN_POINT('',(0.02,0.,-0.01)); +#5711=CARTESIAN_POINT('',(0.02,0.,-0.01)); +#5712=CARTESIAN_POINT('',(0.02,0.,-0.01)); +#5713=CARTESIAN_POINT('',(-0.02,0.,-0.01)); +#5714=CARTESIAN_POINT('',(-0.02,0.,-0.01)); +#5715=CARTESIAN_POINT('',(0.,0.,0.)); +#5716=CARTESIAN_POINT('',(0.0164262664165103,-0.00650206378986866,0.)); +#5717=CARTESIAN_POINT('',(2.13425624505021E-18,-0.048,0.)); +#5718=CARTESIAN_POINT('',(-0.0164262664165103,-0.00650206378986866,0.)); +#5719=CARTESIAN_POINT('',(-0.02,0.,0.)); +#5720=CARTESIAN_POINT('',(0.,-0.05,0.)); +#5721=CARTESIAN_POINT('',(0.,-0.05,0.)); +#5722=CARTESIAN_POINT('',(-0.02,0.,-0.01)); +#5723=CARTESIAN_POINT('',(-0.02,0.,-0.01)); +#5724=CARTESIAN_POINT('',(0.,-0.05,-0.01)); +#5725=CARTESIAN_POINT('',(0.,-0.05,-0.01)); +#5726=CARTESIAN_POINT('',(0.,-0.05,-0.01)); +#5727=CARTESIAN_POINT('',(0.,-0.05,-0.01)); +#5728=CARTESIAN_POINT('',(0.,0.,-0.01)); +#5729=CARTESIAN_POINT('',(-0.019,0.,0.002)); +#5730=CARTESIAN_POINT('',(0.,-0.048,0.002)); +#5731=CARTESIAN_POINT('',(0.,-0.048,-0.009)); +#5732=CARTESIAN_POINT('',(-0.019,0.,-0.009)); +#5733=CARTESIAN_POINT('',(0.,-0.048,0.002)); +#5734=CARTESIAN_POINT('',(0.,-0.048,-0.009)); +#5735=CARTESIAN_POINT('',(0.,0.,-0.009)); +#5736=CARTESIAN_POINT('',(-0.1,0.21,0.1)); +#5737=CARTESIAN_POINT('',(0.108,0.021,-0.033)); +#5738=CARTESIAN_POINT('',(-0.092,0.021,-0.033)); +#5739=CARTESIAN_POINT('',(-0.092,0.056,-0.033)); +#5740=CARTESIAN_POINT('',(-0.092,0.181,-0.033)); +#5741=CARTESIAN_POINT('',(0.108,0.056,-0.033)); +#5742=CARTESIAN_POINT('',(-0.058,0.056,-0.033)); +#5743=CARTESIAN_POINT('',(-0.058,0.021,-0.033)); +#5744=CARTESIAN_POINT('',(-0.058,0.181,-0.033)); +#5745=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5746=CARTESIAN_POINT('',(-0.042,0.181,-0.033)); +#5747=CARTESIAN_POINT('',(-0.042,0.021,-0.033)); +#5748=CARTESIAN_POINT('',(-0.042,0.056,-0.033)); +#5749=CARTESIAN_POINT('',(0.108,0.056,-0.033)); +#5750=CARTESIAN_POINT('',(-0.00800000000000001,0.056,-0.033)); +#5751=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.033)); +#5752=CARTESIAN_POINT('',(-0.00800000000000001,0.181,-0.033)); +#5753=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5754=CARTESIAN_POINT('',(0.00800000000000002,0.181,-0.033)); +#5755=CARTESIAN_POINT('',(0.00800000000000002,0.021,-0.033)); +#5756=CARTESIAN_POINT('',(0.00800000000000002,0.056,-0.033)); +#5757=CARTESIAN_POINT('',(0.108,0.056,-0.033)); +#5758=CARTESIAN_POINT('',(0.042,0.056,-0.033)); +#5759=CARTESIAN_POINT('',(0.042,0.021,-0.033)); +#5760=CARTESIAN_POINT('',(0.042,0.181,-0.033)); +#5761=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5762=CARTESIAN_POINT('',(0.058,0.181,-0.033)); +#5763=CARTESIAN_POINT('',(0.058,0.021,-0.033)); +#5764=CARTESIAN_POINT('',(0.058,0.056,-0.033)); +#5765=CARTESIAN_POINT('',(0.108,0.056,-0.033)); +#5766=CARTESIAN_POINT('',(0.0919999999999999,0.056,-0.033)); +#5767=CARTESIAN_POINT('',(0.0919999999999999,0.021,-0.033)); +#5768=CARTESIAN_POINT('',(0.0919999999999999,0.181,-0.033)); +#5769=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5770=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5771=CARTESIAN_POINT('',(0.108,0.021,-0.033)); +#5772=CARTESIAN_POINT('',(0.108,0.021,-0.033)); +#5773=CARTESIAN_POINT('',(0.108,0.021,-0.033)); +#5774=CARTESIAN_POINT('',(0.092,0.021,-0.033)); +#5775=CARTESIAN_POINT('',(0.092,0.021,-0.033)); +#5776=CARTESIAN_POINT('',(0.092,0.04,-0.033)); +#5777=CARTESIAN_POINT('',(0.108,0.04,-0.033)); +#5778=CARTESIAN_POINT('',(0.058,0.04,-0.033)); +#5779=CARTESIAN_POINT('',(0.058,0.021,-0.033)); +#5780=CARTESIAN_POINT('',(0.058,0.021,-0.033)); +#5781=CARTESIAN_POINT('',(0.108,0.021,-0.033)); +#5782=CARTESIAN_POINT('',(0.042,0.021,-0.033)); +#5783=CARTESIAN_POINT('',(0.042,0.021,-0.033)); +#5784=CARTESIAN_POINT('',(0.042,0.04,-0.033)); +#5785=CARTESIAN_POINT('',(0.108,0.04,-0.033)); +#5786=CARTESIAN_POINT('',(0.00799999999999999,0.04,-0.033)); +#5787=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.033)); +#5788=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.033)); +#5789=CARTESIAN_POINT('',(0.108,0.021,-0.033)); +#5790=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.033)); +#5791=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.033)); +#5792=CARTESIAN_POINT('',(-0.00800000000000001,0.04,-0.033)); +#5793=CARTESIAN_POINT('',(0.108,0.04,-0.033)); +#5794=CARTESIAN_POINT('',(-0.042,0.04,-0.033)); +#5795=CARTESIAN_POINT('',(-0.042,0.021,-0.033)); +#5796=CARTESIAN_POINT('',(-0.042,0.021,-0.033)); +#5797=CARTESIAN_POINT('',(0.108,0.021,-0.033)); +#5798=CARTESIAN_POINT('',(-0.058,0.021,-0.033)); +#5799=CARTESIAN_POINT('',(-0.058,0.021,-0.033)); +#5800=CARTESIAN_POINT('',(-0.058,0.04,-0.033)); +#5801=CARTESIAN_POINT('',(0.108,0.04,-0.033)); +#5802=CARTESIAN_POINT('',(-0.092,0.04,-0.033)); +#5803=CARTESIAN_POINT('',(-0.092,0.021,-0.033)); +#5804=CARTESIAN_POINT('',(-0.092,0.021,-0.033)); +#5805=CARTESIAN_POINT('',(0.108,0.021,-0.033)); +#5806=CARTESIAN_POINT('',(-0.108,0.021,-0.033)); +#5807=CARTESIAN_POINT('',(-0.108,0.021,-0.033)); +#5808=CARTESIAN_POINT('',(-0.108,0.181,-0.033)); +#5809=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5810=CARTESIAN_POINT('',(0.108,0.181,0.033)); +#5811=CARTESIAN_POINT('',(-0.092,0.181,0.033)); +#5812=CARTESIAN_POINT('',(-0.092,0.181,0.033)); +#5813=CARTESIAN_POINT('',(-0.092,0.056,0.033)); +#5814=CARTESIAN_POINT('',(0.108,0.181,0.033)); +#5815=CARTESIAN_POINT('',(-0.108,0.181,0.033)); +#5816=CARTESIAN_POINT('',(-0.108,0.181,0.033)); +#5817=CARTESIAN_POINT('',(-0.108,0.021,0.033)); +#5818=CARTESIAN_POINT('',(0.108,0.021,0.033)); +#5819=CARTESIAN_POINT('',(-0.092,0.021,0.033)); +#5820=CARTESIAN_POINT('',(-0.092,0.181,0.033)); +#5821=CARTESIAN_POINT('',(-0.092,0.04,0.033)); +#5822=CARTESIAN_POINT('',(0.108,0.04,0.033)); +#5823=CARTESIAN_POINT('',(-0.058,0.04,0.033)); +#5824=CARTESIAN_POINT('',(-0.058,0.181,0.033)); +#5825=CARTESIAN_POINT('',(-0.058,0.021,0.033)); +#5826=CARTESIAN_POINT('',(0.108,0.021,0.033)); +#5827=CARTESIAN_POINT('',(-0.042,0.021,0.033)); +#5828=CARTESIAN_POINT('',(-0.042,0.181,0.033)); +#5829=CARTESIAN_POINT('',(-0.042,0.04,0.033)); +#5830=CARTESIAN_POINT('',(0.108,0.04,0.033)); +#5831=CARTESIAN_POINT('',(-0.00800000000000001,0.04,0.033)); +#5832=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.033)); +#5833=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.033)); +#5834=CARTESIAN_POINT('',(0.108,0.021,0.033)); +#5835=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.033)); +#5836=CARTESIAN_POINT('',(0.00799999999999999,0.181,0.033)); +#5837=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.033)); +#5838=CARTESIAN_POINT('',(0.108,0.04,0.033)); +#5839=CARTESIAN_POINT('',(0.042,0.04,0.033)); +#5840=CARTESIAN_POINT('',(0.042,0.181,0.033)); +#5841=CARTESIAN_POINT('',(0.042,0.021,0.033)); +#5842=CARTESIAN_POINT('',(0.108,0.021,0.033)); +#5843=CARTESIAN_POINT('',(0.058,0.021,0.033)); +#5844=CARTESIAN_POINT('',(0.058,0.181,0.033)); +#5845=CARTESIAN_POINT('',(0.058,0.04,0.033)); +#5846=CARTESIAN_POINT('',(0.108,0.04,0.033)); +#5847=CARTESIAN_POINT('',(0.092,0.04,0.033)); +#5848=CARTESIAN_POINT('',(0.092,0.181,0.033)); +#5849=CARTESIAN_POINT('',(0.092,0.021,0.033)); +#5850=CARTESIAN_POINT('',(0.108,0.021,0.033)); +#5851=CARTESIAN_POINT('',(0.108,0.021,0.033)); +#5852=CARTESIAN_POINT('',(0.108,0.181,0.033)); +#5853=CARTESIAN_POINT('',(0.108,0.181,0.033)); +#5854=CARTESIAN_POINT('',(0.108,0.181,0.033)); +#5855=CARTESIAN_POINT('',(0.0919999999999999,0.181,0.033)); +#5856=CARTESIAN_POINT('',(0.0919999999999999,0.181,0.033)); +#5857=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.033)); +#5858=CARTESIAN_POINT('',(0.108,0.056,0.033)); +#5859=CARTESIAN_POINT('',(0.058,0.056,0.033)); +#5860=CARTESIAN_POINT('',(0.058,0.181,0.033)); +#5861=CARTESIAN_POINT('',(0.058,0.181,0.033)); +#5862=CARTESIAN_POINT('',(0.108,0.181,0.033)); +#5863=CARTESIAN_POINT('',(0.042,0.181,0.033)); +#5864=CARTESIAN_POINT('',(0.042,0.181,0.033)); +#5865=CARTESIAN_POINT('',(0.042,0.056,0.033)); +#5866=CARTESIAN_POINT('',(0.108,0.056,0.033)); +#5867=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.033)); +#5868=CARTESIAN_POINT('',(0.00800000000000002,0.181,0.033)); +#5869=CARTESIAN_POINT('',(0.00800000000000002,0.181,0.033)); +#5870=CARTESIAN_POINT('',(0.108,0.181,0.033)); +#5871=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.033)); +#5872=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.033)); +#5873=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.033)); +#5874=CARTESIAN_POINT('',(0.108,0.056,0.033)); +#5875=CARTESIAN_POINT('',(-0.042,0.056,0.033)); +#5876=CARTESIAN_POINT('',(-0.042,0.181,0.033)); +#5877=CARTESIAN_POINT('',(-0.042,0.181,0.033)); +#5878=CARTESIAN_POINT('',(0.108,0.181,0.033)); +#5879=CARTESIAN_POINT('',(-0.058,0.181,0.033)); +#5880=CARTESIAN_POINT('',(-0.058,0.181,0.033)); +#5881=CARTESIAN_POINT('',(-0.058,0.056,0.033)); +#5882=CARTESIAN_POINT('',(0.108,0.056,0.033)); +#5883=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5884=CARTESIAN_POINT('',(-0.092,0.181,-0.033)); +#5885=CARTESIAN_POINT('',(-0.092,0.185,-0.029)); +#5886=CARTESIAN_POINT('',(-0.108,0.181,-0.033)); +#5887=CARTESIAN_POINT('',(-0.108,0.185,-0.029)); +#5888=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5889=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5890=CARTESIAN_POINT('',(-0.058,0.181,-0.033)); +#5891=CARTESIAN_POINT('',(-0.058,0.185,-0.029)); +#5892=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5893=CARTESIAN_POINT('',(-0.042,0.185,-0.029)); +#5894=CARTESIAN_POINT('',(-0.042,0.181,-0.033)); +#5895=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5896=CARTESIAN_POINT('',(-0.00800000000000001,0.181,-0.033)); +#5897=CARTESIAN_POINT('',(-0.00800000000000001,0.185,-0.029)); +#5898=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5899=CARTESIAN_POINT('',(0.00800000000000002,0.185,-0.029)); +#5900=CARTESIAN_POINT('',(0.00800000000000002,0.181,-0.033)); +#5901=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5902=CARTESIAN_POINT('',(0.042,0.181,-0.033)); +#5903=CARTESIAN_POINT('',(0.042,0.185,-0.029)); +#5904=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5905=CARTESIAN_POINT('',(0.058,0.185,-0.029)); +#5906=CARTESIAN_POINT('',(0.058,0.181,-0.033)); +#5907=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5908=CARTESIAN_POINT('',(0.0919999999999999,0.181,-0.033)); +#5909=CARTESIAN_POINT('',(0.0919999999999999,0.185,-0.029)); +#5910=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5911=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5912=CARTESIAN_POINT('',(0.108,0.181,-0.033)); +#5913=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5914=CARTESIAN_POINT('',(-0.092,0.185,-0.029)); +#5915=CARTESIAN_POINT('',(-0.092,0.185,-0.021)); +#5916=CARTESIAN_POINT('',(-0.108,0.185,-0.029)); +#5917=CARTESIAN_POINT('',(-0.108,0.185,-0.021)); +#5918=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5919=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5920=CARTESIAN_POINT('',(-0.058,0.185,-0.029)); +#5921=CARTESIAN_POINT('',(-0.058,0.185,-0.021)); +#5922=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5923=CARTESIAN_POINT('',(-0.042,0.185,-0.021)); +#5924=CARTESIAN_POINT('',(-0.042,0.185,-0.029)); +#5925=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5926=CARTESIAN_POINT('',(-0.00800000000000001,0.185,-0.029)); +#5927=CARTESIAN_POINT('',(-0.00800000000000001,0.185,-0.021)); +#5928=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5929=CARTESIAN_POINT('',(0.00800000000000002,0.185,-0.021)); +#5930=CARTESIAN_POINT('',(0.00800000000000002,0.185,-0.029)); +#5931=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5932=CARTESIAN_POINT('',(0.042,0.185,-0.029)); +#5933=CARTESIAN_POINT('',(0.042,0.185,-0.021)); +#5934=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5935=CARTESIAN_POINT('',(0.058,0.185,-0.021)); +#5936=CARTESIAN_POINT('',(0.058,0.185,-0.029)); +#5937=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5938=CARTESIAN_POINT('',(0.0919999999999999,0.185,-0.029)); +#5939=CARTESIAN_POINT('',(0.0919999999999999,0.185,-0.021)); +#5940=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5941=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5942=CARTESIAN_POINT('',(0.108,0.185,-0.029)); +#5943=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5944=CARTESIAN_POINT('',(-0.092,0.185,-0.021)); +#5945=CARTESIAN_POINT('',(-0.092,0.181,-0.017)); +#5946=CARTESIAN_POINT('',(-0.108,0.185,-0.021)); +#5947=CARTESIAN_POINT('',(-0.108,0.181,-0.017)); +#5948=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5949=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5950=CARTESIAN_POINT('',(-0.058,0.185,-0.021)); +#5951=CARTESIAN_POINT('',(-0.058,0.181,-0.017)); +#5952=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5953=CARTESIAN_POINT('',(-0.042,0.181,-0.017)); +#5954=CARTESIAN_POINT('',(-0.042,0.185,-0.021)); +#5955=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5956=CARTESIAN_POINT('',(-0.00800000000000001,0.185,-0.021)); +#5957=CARTESIAN_POINT('',(-0.00800000000000001,0.181,-0.017)); +#5958=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5959=CARTESIAN_POINT('',(0.00800000000000002,0.181,-0.017)); +#5960=CARTESIAN_POINT('',(0.00800000000000002,0.185,-0.021)); +#5961=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5962=CARTESIAN_POINT('',(0.042,0.185,-0.021)); +#5963=CARTESIAN_POINT('',(0.042,0.181,-0.017)); +#5964=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5965=CARTESIAN_POINT('',(0.058,0.181,-0.017)); +#5966=CARTESIAN_POINT('',(0.058,0.185,-0.021)); +#5967=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5968=CARTESIAN_POINT('',(0.0919999999999999,0.185,-0.021)); +#5969=CARTESIAN_POINT('',(0.0919999999999999,0.181,-0.017)); +#5970=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5971=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5972=CARTESIAN_POINT('',(0.108,0.185,-0.021)); +#5973=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5974=CARTESIAN_POINT('',(-0.092,0.181,-0.017)); +#5975=CARTESIAN_POINT('',(-0.092,0.056,-0.017)); +#5976=CARTESIAN_POINT('',(-0.108,0.181,-0.017)); +#5977=CARTESIAN_POINT('',(-0.108,0.056,-0.017)); +#5978=CARTESIAN_POINT('',(0.108,0.056,-0.017)); +#5979=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5980=CARTESIAN_POINT('',(-0.058,0.181,-0.017)); +#5981=CARTESIAN_POINT('',(-0.058,0.056,-0.017)); +#5982=CARTESIAN_POINT('',(0.108,0.056,-0.017)); +#5983=CARTESIAN_POINT('',(-0.042,0.056,-0.017)); +#5984=CARTESIAN_POINT('',(-0.042,0.181,-0.017)); +#5985=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5986=CARTESIAN_POINT('',(-0.00800000000000001,0.181,-0.017)); +#5987=CARTESIAN_POINT('',(-0.00800000000000001,0.056,-0.017)); +#5988=CARTESIAN_POINT('',(0.108,0.056,-0.017)); +#5989=CARTESIAN_POINT('',(0.00800000000000002,0.056,-0.017)); +#5990=CARTESIAN_POINT('',(0.00800000000000002,0.181,-0.017)); +#5991=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5992=CARTESIAN_POINT('',(0.042,0.181,-0.017)); +#5993=CARTESIAN_POINT('',(0.042,0.056,-0.017)); +#5994=CARTESIAN_POINT('',(0.108,0.056,-0.017)); +#5995=CARTESIAN_POINT('',(0.058,0.056,-0.017)); +#5996=CARTESIAN_POINT('',(0.058,0.181,-0.017)); +#5997=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#5998=CARTESIAN_POINT('',(0.0919999999999999,0.181,-0.017)); +#5999=CARTESIAN_POINT('',(0.0919999999999999,0.056,-0.017)); +#6000=CARTESIAN_POINT('',(0.108,0.056,-0.017)); +#6001=CARTESIAN_POINT('',(0.108,0.056,-0.017)); +#6002=CARTESIAN_POINT('',(0.108,0.181,-0.017)); +#6003=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6004=CARTESIAN_POINT('',(-0.092,0.056,0.017)); +#6005=CARTESIAN_POINT('',(-0.092,0.056,0.017)); +#6006=CARTESIAN_POINT('',(-0.092,0.181,0.017)); +#6007=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6008=CARTESIAN_POINT('',(-0.108,0.056,0.017)); +#6009=CARTESIAN_POINT('',(-0.108,0.056,0.017)); +#6010=CARTESIAN_POINT('',(-0.108,0.181,0.017)); +#6011=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6012=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6013=CARTESIAN_POINT('',(-0.058,0.056,0.017)); +#6014=CARTESIAN_POINT('',(-0.058,0.181,0.017)); +#6015=CARTESIAN_POINT('',(-0.058,0.056,0.017)); +#6016=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6017=CARTESIAN_POINT('',(-0.042,0.181,0.017)); +#6018=CARTESIAN_POINT('',(-0.042,0.056,0.017)); +#6019=CARTESIAN_POINT('',(-0.042,0.056,0.017)); +#6020=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6021=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6022=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.017)); +#6023=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.017)); +#6024=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.017)); +#6025=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6026=CARTESIAN_POINT('',(0.00800000000000002,0.181,0.017)); +#6027=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.017)); +#6028=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.017)); +#6029=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6030=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6031=CARTESIAN_POINT('',(0.042,0.056,0.017)); +#6032=CARTESIAN_POINT('',(0.042,0.181,0.017)); +#6033=CARTESIAN_POINT('',(0.042,0.056,0.017)); +#6034=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6035=CARTESIAN_POINT('',(0.058,0.181,0.017)); +#6036=CARTESIAN_POINT('',(0.058,0.056,0.017)); +#6037=CARTESIAN_POINT('',(0.058,0.056,0.017)); +#6038=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6039=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6040=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.017)); +#6041=CARTESIAN_POINT('',(0.0919999999999999,0.181,0.017)); +#6042=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.017)); +#6043=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6044=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6045=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6046=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6047=CARTESIAN_POINT('',(0.108,0.056,0.017)); +#6048=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6049=CARTESIAN_POINT('',(-0.092,0.181,0.017)); +#6050=CARTESIAN_POINT('',(-0.092,0.185,0.021)); +#6051=CARTESIAN_POINT('',(-0.108,0.181,0.017)); +#6052=CARTESIAN_POINT('',(-0.108,0.185,0.021)); +#6053=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6054=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6055=CARTESIAN_POINT('',(-0.058,0.181,0.017)); +#6056=CARTESIAN_POINT('',(-0.058,0.185,0.021)); +#6057=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6058=CARTESIAN_POINT('',(-0.042,0.185,0.021)); +#6059=CARTESIAN_POINT('',(-0.042,0.181,0.017)); +#6060=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6061=CARTESIAN_POINT('',(-0.00800000000000001,0.181,0.017)); +#6062=CARTESIAN_POINT('',(-0.00800000000000001,0.185,0.021)); +#6063=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6064=CARTESIAN_POINT('',(0.00800000000000002,0.185,0.021)); +#6065=CARTESIAN_POINT('',(0.00800000000000002,0.181,0.017)); +#6066=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6067=CARTESIAN_POINT('',(0.042,0.181,0.017)); +#6068=CARTESIAN_POINT('',(0.042,0.185,0.021)); +#6069=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6070=CARTESIAN_POINT('',(0.058,0.185,0.021)); +#6071=CARTESIAN_POINT('',(0.058,0.181,0.017)); +#6072=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6073=CARTESIAN_POINT('',(0.0919999999999999,0.181,0.017)); +#6074=CARTESIAN_POINT('',(0.0919999999999999,0.185,0.021)); +#6075=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6076=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6077=CARTESIAN_POINT('',(0.108,0.181,0.017)); +#6078=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6079=CARTESIAN_POINT('',(-0.092,0.185,0.021)); +#6080=CARTESIAN_POINT('',(-0.092,0.185,0.029)); +#6081=CARTESIAN_POINT('',(-0.108,0.185,0.021)); +#6082=CARTESIAN_POINT('',(-0.108,0.185,0.029)); +#6083=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6084=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6085=CARTESIAN_POINT('',(-0.058,0.185,0.021)); +#6086=CARTESIAN_POINT('',(-0.058,0.185,0.029)); +#6087=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6088=CARTESIAN_POINT('',(-0.042,0.185,0.029)); +#6089=CARTESIAN_POINT('',(-0.042,0.185,0.021)); +#6090=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6091=CARTESIAN_POINT('',(-0.00800000000000001,0.185,0.021)); +#6092=CARTESIAN_POINT('',(-0.00800000000000001,0.185,0.029)); +#6093=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6094=CARTESIAN_POINT('',(0.00800000000000002,0.185,0.029)); +#6095=CARTESIAN_POINT('',(0.00800000000000002,0.185,0.021)); +#6096=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6097=CARTESIAN_POINT('',(0.042,0.185,0.021)); +#6098=CARTESIAN_POINT('',(0.042,0.185,0.029)); +#6099=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6100=CARTESIAN_POINT('',(0.058,0.185,0.029)); +#6101=CARTESIAN_POINT('',(0.058,0.185,0.021)); +#6102=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6103=CARTESIAN_POINT('',(0.0919999999999999,0.185,0.021)); +#6104=CARTESIAN_POINT('',(0.0919999999999999,0.185,0.029)); +#6105=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6106=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6107=CARTESIAN_POINT('',(0.108,0.185,0.021)); +#6108=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6109=CARTESIAN_POINT('',(-0.092,0.185,0.029)); +#6110=CARTESIAN_POINT('',(-0.108,0.185,0.029)); +#6111=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6112=CARTESIAN_POINT('',(-0.058,0.185,0.029)); +#6113=CARTESIAN_POINT('',(-0.042,0.185,0.029)); +#6114=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6115=CARTESIAN_POINT('',(-0.00800000000000001,0.185,0.029)); +#6116=CARTESIAN_POINT('',(0.00800000000000002,0.185,0.029)); +#6117=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6118=CARTESIAN_POINT('',(0.042,0.185,0.029)); +#6119=CARTESIAN_POINT('',(0.058,0.185,0.029)); +#6120=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6121=CARTESIAN_POINT('',(0.0919999999999999,0.185,0.029)); +#6122=CARTESIAN_POINT('',(0.108,0.185,0.029)); +#6123=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6124=CARTESIAN_POINT('',(0.092,-0.24,0.12)); +#6125=CARTESIAN_POINT('',(0.092,-0.00100000000000007,0.12)); +#6126=CARTESIAN_POINT('',(0.092,0.00699999999999992,0.12)); +#6127=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6128=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6129=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6130=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6131=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6132=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6133=CARTESIAN_POINT('',(0.058,0.04,0.12)); +#6134=CARTESIAN_POINT('',(0.058,0.007,0.12)); +#6135=CARTESIAN_POINT('',(0.058,-0.000999999999999986,0.12)); +#6136=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6137=CARTESIAN_POINT('',(0.042,0.00699999999999992,0.12)); +#6138=CARTESIAN_POINT('',(0.042,-0.24,0.12)); +#6139=CARTESIAN_POINT('',(0.042,-0.00100000000000007,0.12)); +#6140=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6141=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6142=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); +#6143=CARTESIAN_POINT('',(0.00799999999999999,0.007,0.12)); +#6144=CARTESIAN_POINT('',(0.00799999999999999,-0.000999999999999986,0.12)); +#6145=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6146=CARTESIAN_POINT('',(-0.00800000000000001,0.00699999999999992,0.12)); +#6147=CARTESIAN_POINT('',(-0.00800000000000001,-0.24,0.12)); +#6148=CARTESIAN_POINT('',(-0.00800000000000001,-0.00100000000000007,0.12)); +#6149=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6150=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6151=CARTESIAN_POINT('',(-0.042,0.04,0.12)); +#6152=CARTESIAN_POINT('',(-0.042,0.007,0.12)); +#6153=CARTESIAN_POINT('',(-0.042,-0.000999999999999986,0.12)); +#6154=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6155=CARTESIAN_POINT('',(-0.058,0.00699999999999992,0.12)); +#6156=CARTESIAN_POINT('',(-0.058,-0.24,0.12)); +#6157=CARTESIAN_POINT('',(-0.058,-0.00100000000000007,0.12)); +#6158=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6159=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6160=CARTESIAN_POINT('',(-0.092,0.04,0.12)); +#6161=CARTESIAN_POINT('',(-0.092,0.007,0.12)); +#6162=CARTESIAN_POINT('',(-0.092,-0.000999999999999986,0.12)); +#6163=CARTESIAN_POINT('',(0.108,0.00699999999999999,0.12)); +#6164=CARTESIAN_POINT('',(-0.108,0.00699999999999999,0.12)); +#6165=CARTESIAN_POINT('',(-0.108,0.00699999999999999,0.12)); +#6166=CARTESIAN_POINT('',(-0.108,-0.001,0.12)); +#6167=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6168=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6169=CARTESIAN_POINT('',(0.092,-0.001,0.12)); +#6170=CARTESIAN_POINT('',(0.092,-0.005,0.116)); +#6171=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6172=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6173=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6174=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6175=CARTESIAN_POINT('',(0.058,-0.001,0.12)); +#6176=CARTESIAN_POINT('',(0.058,-0.005,0.116)); +#6177=CARTESIAN_POINT('',(0.042,-0.001,0.12)); +#6178=CARTESIAN_POINT('',(0.042,-0.005,0.116)); +#6179=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6180=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6181=CARTESIAN_POINT('',(0.00799999999999999,-0.001,0.12)); +#6182=CARTESIAN_POINT('',(0.00799999999999999,-0.005,0.116)); +#6183=CARTESIAN_POINT('',(-0.00800000000000001,-0.001,0.12)); +#6184=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,0.116)); +#6185=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6186=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6187=CARTESIAN_POINT('',(-0.042,-0.001,0.12)); +#6188=CARTESIAN_POINT('',(-0.042,-0.005,0.116)); +#6189=CARTESIAN_POINT('',(-0.058,-0.001,0.12)); +#6190=CARTESIAN_POINT('',(-0.058,-0.005,0.116)); +#6191=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6192=CARTESIAN_POINT('',(0.108,-0.001,0.12)); +#6193=CARTESIAN_POINT('',(-0.092,-0.001,0.12)); +#6194=CARTESIAN_POINT('',(-0.092,-0.005,0.116)); +#6195=CARTESIAN_POINT('',(-0.108,-0.001,0.12)); +#6196=CARTESIAN_POINT('',(-0.108,-0.005,0.116)); +#6197=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6198=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6199=CARTESIAN_POINT('',(0.092,-0.005,0.116)); +#6200=CARTESIAN_POINT('',(0.092,-0.00500000000000001,0.043)); +#6201=CARTESIAN_POINT('',(0.108,-0.005,0.043)); +#6202=CARTESIAN_POINT('',(0.108,-0.005,0.043)); +#6203=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6204=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6205=CARTESIAN_POINT('',(0.058,-0.005,0.116)); +#6206=CARTESIAN_POINT('',(0.058,-0.00500000000000001,0.043)); +#6207=CARTESIAN_POINT('',(0.042,-0.005,0.116)); +#6208=CARTESIAN_POINT('',(0.042,-0.00500000000000001,0.043)); +#6209=CARTESIAN_POINT('',(0.108,-0.005,0.043)); +#6210=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6211=CARTESIAN_POINT('',(0.00799999999999999,-0.005,0.116)); +#6212=CARTESIAN_POINT('',(0.00799999999999999,-0.00500000000000001,0.043)); +#6213=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,0.116)); +#6214=CARTESIAN_POINT('',(-0.00800000000000001,-0.00500000000000001,0.043)); +#6215=CARTESIAN_POINT('',(0.108,-0.005,0.043)); +#6216=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6217=CARTESIAN_POINT('',(-0.042,-0.005,0.116)); +#6218=CARTESIAN_POINT('',(-0.042,-0.00500000000000001,0.043)); +#6219=CARTESIAN_POINT('',(-0.058,-0.005,0.116)); +#6220=CARTESIAN_POINT('',(-0.058,-0.00500000000000001,0.043)); +#6221=CARTESIAN_POINT('',(0.108,-0.005,0.043)); +#6222=CARTESIAN_POINT('',(0.108,-0.005,0.116)); +#6223=CARTESIAN_POINT('',(-0.092,-0.005,0.116)); +#6224=CARTESIAN_POINT('',(-0.092,-0.00500000000000001,0.043)); +#6225=CARTESIAN_POINT('',(-0.108,-0.005,0.116)); +#6226=CARTESIAN_POINT('',(-0.108,-0.005,0.043)); +#6227=CARTESIAN_POINT('',(0.108,-0.005,0.043)); +#6228=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6229=CARTESIAN_POINT('',(0.092,0.021,0.043)); +#6230=CARTESIAN_POINT('',(0.092,0.021,0.017)); +#6231=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6232=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6233=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6234=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6235=CARTESIAN_POINT('',(0.058,0.021,0.043)); +#6236=CARTESIAN_POINT('',(0.058,0.021,0.017)); +#6237=CARTESIAN_POINT('',(0.042,0.021,0.043)); +#6238=CARTESIAN_POINT('',(0.042,0.021,0.017)); +#6239=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6240=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6241=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.043)); +#6242=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.017)); +#6243=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.043)); +#6244=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.017)); +#6245=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6246=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6247=CARTESIAN_POINT('',(-0.042,0.021,0.043)); +#6248=CARTESIAN_POINT('',(-0.042,0.021,0.017)); +#6249=CARTESIAN_POINT('',(-0.058,0.021,0.043)); +#6250=CARTESIAN_POINT('',(-0.058,0.021,0.017)); +#6251=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6252=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6253=CARTESIAN_POINT('',(-0.092,0.021,0.043)); +#6254=CARTESIAN_POINT('',(-0.092,0.021,0.017)); +#6255=CARTESIAN_POINT('',(-0.108,0.021,0.043)); +#6256=CARTESIAN_POINT('',(-0.108,0.021,0.017)); +#6257=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6258=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6259=CARTESIAN_POINT('',(0.092,0.021,0.017)); +#6260=CARTESIAN_POINT('',(0.092,0.04,0.017)); +#6261=CARTESIAN_POINT('',(0.108,0.04,0.017)); +#6262=CARTESIAN_POINT('',(0.108,0.04,0.017)); +#6263=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6264=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6265=CARTESIAN_POINT('',(0.058,0.021,0.017)); +#6266=CARTESIAN_POINT('',(0.058,0.04,0.017)); +#6267=CARTESIAN_POINT('',(0.042,0.021,0.017)); +#6268=CARTESIAN_POINT('',(0.042,0.04,0.017)); +#6269=CARTESIAN_POINT('',(0.108,0.04,0.017)); +#6270=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6271=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.017)); +#6272=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.017)); +#6273=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.017)); +#6274=CARTESIAN_POINT('',(-0.00800000000000001,0.04,0.017)); +#6275=CARTESIAN_POINT('',(0.108,0.04,0.017)); +#6276=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6277=CARTESIAN_POINT('',(-0.042,0.021,0.017)); +#6278=CARTESIAN_POINT('',(-0.042,0.04,0.017)); +#6279=CARTESIAN_POINT('',(-0.058,0.021,0.017)); +#6280=CARTESIAN_POINT('',(-0.058,0.04,0.017)); +#6281=CARTESIAN_POINT('',(0.108,0.04,0.017)); +#6282=CARTESIAN_POINT('',(0.108,0.021,0.017)); +#6283=CARTESIAN_POINT('',(-0.092,0.021,0.017)); +#6284=CARTESIAN_POINT('',(-0.092,0.04,0.017)); +#6285=CARTESIAN_POINT('',(-0.108,0.021,0.017)); +#6286=CARTESIAN_POINT('',(-0.108,0.04,0.017)); +#6287=CARTESIAN_POINT('',(0.108,0.04,0.017)); +#6288=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6289=CARTESIAN_POINT('',(0.092,0.04,-0.017)); +#6290=CARTESIAN_POINT('',(0.092,0.021,-0.017)); +#6291=CARTESIAN_POINT('',(0.092,0.04,-0.017)); +#6292=CARTESIAN_POINT('',(0.108,0.021,-0.017)); +#6293=CARTESIAN_POINT('',(0.108,0.021,-0.017)); +#6294=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6295=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6296=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6297=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6298=CARTESIAN_POINT('',(0.058,0.04,-0.017)); +#6299=CARTESIAN_POINT('',(0.058,0.04,-0.017)); +#6300=CARTESIAN_POINT('',(0.058,0.021,-0.017)); +#6301=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6302=CARTESIAN_POINT('',(0.042,0.04,-0.017)); +#6303=CARTESIAN_POINT('',(0.042,0.04,-0.017)); +#6304=CARTESIAN_POINT('',(0.042,0.021,-0.017)); +#6305=CARTESIAN_POINT('',(0.108,0.021,-0.017)); +#6306=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6307=CARTESIAN_POINT('',(0.00799999999999999,0.04,-0.017)); +#6308=CARTESIAN_POINT('',(0.00799999999999999,0.04,-0.017)); +#6309=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.017)); +#6310=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6311=CARTESIAN_POINT('',(-0.00800000000000001,0.04,-0.017)); +#6312=CARTESIAN_POINT('',(-0.00800000000000001,0.04,-0.017)); +#6313=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.017)); +#6314=CARTESIAN_POINT('',(0.108,0.021,-0.017)); +#6315=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6316=CARTESIAN_POINT('',(-0.042,0.04,-0.017)); +#6317=CARTESIAN_POINT('',(-0.042,0.04,-0.017)); +#6318=CARTESIAN_POINT('',(-0.042,0.021,-0.017)); +#6319=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6320=CARTESIAN_POINT('',(-0.058,0.04,-0.017)); +#6321=CARTESIAN_POINT('',(-0.058,0.04,-0.017)); +#6322=CARTESIAN_POINT('',(-0.058,0.021,-0.017)); +#6323=CARTESIAN_POINT('',(0.108,0.021,-0.017)); +#6324=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6325=CARTESIAN_POINT('',(-0.092,0.04,-0.017)); +#6326=CARTESIAN_POINT('',(-0.092,0.04,-0.017)); +#6327=CARTESIAN_POINT('',(-0.092,0.021,-0.017)); +#6328=CARTESIAN_POINT('',(0.108,0.04,-0.017)); +#6329=CARTESIAN_POINT('',(-0.108,0.04,-0.017)); +#6330=CARTESIAN_POINT('',(-0.108,0.04,-0.017)); +#6331=CARTESIAN_POINT('',(-0.108,0.021,-0.017)); +#6332=CARTESIAN_POINT('',(0.108,0.021,-0.017)); +#6333=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6334=CARTESIAN_POINT('',(0.092,0.021,-0.043)); +#6335=CARTESIAN_POINT('',(0.092,-0.005,-0.043)); +#6336=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); +#6337=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); +#6338=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6339=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6340=CARTESIAN_POINT('',(0.058,0.021,-0.043)); +#6341=CARTESIAN_POINT('',(0.058,-0.005,-0.043)); +#6342=CARTESIAN_POINT('',(0.042,0.021,-0.043)); +#6343=CARTESIAN_POINT('',(0.042,-0.005,-0.043)); +#6344=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); +#6345=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6346=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.043)); +#6347=CARTESIAN_POINT('',(0.00799999999999999,-0.005,-0.043)); +#6348=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.043)); +#6349=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,-0.043)); +#6350=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); +#6351=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6352=CARTESIAN_POINT('',(-0.042,0.021,-0.043)); +#6353=CARTESIAN_POINT('',(-0.042,-0.005,-0.043)); +#6354=CARTESIAN_POINT('',(-0.058,0.021,-0.043)); +#6355=CARTESIAN_POINT('',(-0.058,-0.005,-0.043)); +#6356=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); +#6357=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6358=CARTESIAN_POINT('',(-0.092,0.021,-0.043)); +#6359=CARTESIAN_POINT('',(-0.092,-0.005,-0.043)); +#6360=CARTESIAN_POINT('',(-0.108,0.021,-0.043)); +#6361=CARTESIAN_POINT('',(-0.108,-0.00500000000000001,-0.043)); +#6362=CARTESIAN_POINT('',(0.108,-0.00500000000000001,-0.043)); +#6363=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); +#6364=CARTESIAN_POINT('',(0.092,-0.005,-0.043)); +#6365=CARTESIAN_POINT('',(0.092,-0.005,-0.116)); +#6366=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6367=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6368=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); +#6369=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); +#6370=CARTESIAN_POINT('',(0.058,-0.005,-0.043)); +#6371=CARTESIAN_POINT('',(0.058,-0.005,-0.116)); +#6372=CARTESIAN_POINT('',(0.042,-0.005,-0.043)); +#6373=CARTESIAN_POINT('',(0.042,-0.005,-0.116)); +#6374=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6375=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); +#6376=CARTESIAN_POINT('',(0.00799999999999999,-0.005,-0.043)); +#6377=CARTESIAN_POINT('',(0.00799999999999999,-0.005,-0.116)); +#6378=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,-0.043)); +#6379=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,-0.116)); +#6380=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6381=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); +#6382=CARTESIAN_POINT('',(-0.042,-0.005,-0.043)); +#6383=CARTESIAN_POINT('',(-0.042,-0.005,-0.116)); +#6384=CARTESIAN_POINT('',(-0.058,-0.005,-0.043)); +#6385=CARTESIAN_POINT('',(-0.058,-0.005,-0.116)); +#6386=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6387=CARTESIAN_POINT('',(0.108,-0.005,-0.043)); +#6388=CARTESIAN_POINT('',(-0.092,-0.005,-0.043)); +#6389=CARTESIAN_POINT('',(-0.092,-0.005,-0.116)); +#6390=CARTESIAN_POINT('',(-0.108,-0.005,-0.043)); +#6391=CARTESIAN_POINT('',(-0.108,-0.005,-0.116)); +#6392=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6393=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6394=CARTESIAN_POINT('',(0.092,-0.005,-0.116)); +#6395=CARTESIAN_POINT('',(0.092,-0.00100000000000007,-0.12)); +#6396=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6397=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6398=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6399=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6400=CARTESIAN_POINT('',(0.058,-0.005,-0.116)); +#6401=CARTESIAN_POINT('',(0.058,-0.000999999999999986,-0.12)); +#6402=CARTESIAN_POINT('',(0.042,-0.005,-0.116)); +#6403=CARTESIAN_POINT('',(0.042,-0.00100000000000007,-0.12)); +#6404=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6405=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6406=CARTESIAN_POINT('',(0.00799999999999999,-0.005,-0.116)); +#6407=CARTESIAN_POINT('',(0.00799999999999999,-0.000999999999999986,-0.12)); +#6408=CARTESIAN_POINT('',(-0.00800000000000001,-0.005,-0.116)); +#6409=CARTESIAN_POINT('',(-0.00800000000000001,-0.00100000000000007,-0.12)); +#6410=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6411=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6412=CARTESIAN_POINT('',(-0.042,-0.005,-0.116)); +#6413=CARTESIAN_POINT('',(-0.042,-0.000999999999999986,-0.12)); +#6414=CARTESIAN_POINT('',(-0.058,-0.005,-0.116)); +#6415=CARTESIAN_POINT('',(-0.058,-0.00100000000000007,-0.12)); +#6416=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6417=CARTESIAN_POINT('',(0.108,-0.005,-0.116)); +#6418=CARTESIAN_POINT('',(-0.092,-0.005,-0.116)); +#6419=CARTESIAN_POINT('',(-0.092,-0.000999999999999986,-0.12)); +#6420=CARTESIAN_POINT('',(-0.108,-0.005,-0.116)); +#6421=CARTESIAN_POINT('',(-0.108,-0.001,-0.12)); +#6422=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6423=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6424=CARTESIAN_POINT('',(0.092,-0.24,-0.12)); +#6425=CARTESIAN_POINT('',(0.092,0.00699999999999992,-0.12)); +#6426=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6427=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6428=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6429=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6430=CARTESIAN_POINT('',(0.058,0.04,-0.12)); +#6431=CARTESIAN_POINT('',(0.058,0.007,-0.12)); +#6432=CARTESIAN_POINT('',(0.042,-0.24,-0.12)); +#6433=CARTESIAN_POINT('',(0.042,0.00699999999999992,-0.12)); +#6434=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6435=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6436=CARTESIAN_POINT('',(0.00799999999999999,0.04,-0.12)); +#6437=CARTESIAN_POINT('',(0.00799999999999999,0.007,-0.12)); +#6438=CARTESIAN_POINT('',(-0.00800000000000001,-0.24,-0.12)); +#6439=CARTESIAN_POINT('',(-0.00800000000000001,0.00699999999999992,-0.12)); +#6440=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6441=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6442=CARTESIAN_POINT('',(-0.042,0.04,-0.12)); +#6443=CARTESIAN_POINT('',(-0.042,0.007,-0.12)); +#6444=CARTESIAN_POINT('',(-0.058,-0.24,-0.12)); +#6445=CARTESIAN_POINT('',(-0.058,0.00699999999999992,-0.12)); +#6446=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6447=CARTESIAN_POINT('',(0.108,-0.001,-0.12)); +#6448=CARTESIAN_POINT('',(-0.092,0.04,-0.12)); +#6449=CARTESIAN_POINT('',(-0.092,0.007,-0.12)); +#6450=CARTESIAN_POINT('',(-0.108,-0.001,-0.12)); +#6451=CARTESIAN_POINT('',(-0.108,0.00699999999999999,-0.12)); +#6452=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6453=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6454=CARTESIAN_POINT('',(0.092,0.00699999999999999,-0.12)); +#6455=CARTESIAN_POINT('',(0.092,0.011,-0.116)); +#6456=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6457=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6458=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6459=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6460=CARTESIAN_POINT('',(0.058,0.00699999999999999,-0.12)); +#6461=CARTESIAN_POINT('',(0.058,0.011,-0.116)); +#6462=CARTESIAN_POINT('',(0.042,0.00699999999999999,-0.12)); +#6463=CARTESIAN_POINT('',(0.042,0.011,-0.116)); +#6464=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6465=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6466=CARTESIAN_POINT('',(0.00799999999999999,0.00699999999999999,-0.12)); +#6467=CARTESIAN_POINT('',(0.00799999999999999,0.011,-0.116)); +#6468=CARTESIAN_POINT('',(-0.00800000000000001,0.00699999999999999,-0.12)); +#6469=CARTESIAN_POINT('',(-0.00800000000000001,0.011,-0.116)); +#6470=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6471=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6472=CARTESIAN_POINT('',(-0.042,0.00699999999999999,-0.12)); +#6473=CARTESIAN_POINT('',(-0.042,0.011,-0.116)); +#6474=CARTESIAN_POINT('',(-0.058,0.00699999999999999,-0.12)); +#6475=CARTESIAN_POINT('',(-0.058,0.011,-0.116)); +#6476=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6477=CARTESIAN_POINT('',(0.108,0.00699999999999999,-0.12)); +#6478=CARTESIAN_POINT('',(-0.092,0.00699999999999999,-0.12)); +#6479=CARTESIAN_POINT('',(-0.092,0.011,-0.116)); +#6480=CARTESIAN_POINT('',(-0.108,0.00699999999999999,-0.12)); +#6481=CARTESIAN_POINT('',(-0.108,0.011,-0.116)); +#6482=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6483=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6484=CARTESIAN_POINT('',(0.092,0.011,-0.116)); +#6485=CARTESIAN_POINT('',(0.092,0.011,-0.043)); +#6486=CARTESIAN_POINT('',(0.108,0.011,-0.043)); +#6487=CARTESIAN_POINT('',(0.108,0.011,-0.043)); +#6488=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6489=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6490=CARTESIAN_POINT('',(0.058,0.011,-0.116)); +#6491=CARTESIAN_POINT('',(0.058,0.011,-0.043)); +#6492=CARTESIAN_POINT('',(0.042,0.011,-0.116)); +#6493=CARTESIAN_POINT('',(0.042,0.011,-0.043)); +#6494=CARTESIAN_POINT('',(0.108,0.011,-0.043)); +#6495=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6496=CARTESIAN_POINT('',(0.00799999999999999,0.011,-0.116)); +#6497=CARTESIAN_POINT('',(0.00799999999999999,0.011,-0.043)); +#6498=CARTESIAN_POINT('',(-0.00800000000000001,0.011,-0.116)); +#6499=CARTESIAN_POINT('',(-0.00800000000000001,0.011,-0.043)); +#6500=CARTESIAN_POINT('',(0.108,0.011,-0.043)); +#6501=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6502=CARTESIAN_POINT('',(-0.042,0.011,-0.116)); +#6503=CARTESIAN_POINT('',(-0.042,0.011,-0.043)); +#6504=CARTESIAN_POINT('',(-0.058,0.011,-0.116)); +#6505=CARTESIAN_POINT('',(-0.058,0.011,-0.043)); +#6506=CARTESIAN_POINT('',(0.108,0.011,-0.043)); +#6507=CARTESIAN_POINT('',(0.108,0.011,-0.116)); +#6508=CARTESIAN_POINT('',(-0.092,0.011,-0.116)); +#6509=CARTESIAN_POINT('',(-0.092,0.011,-0.043)); +#6510=CARTESIAN_POINT('',(-0.108,0.011,-0.116)); +#6511=CARTESIAN_POINT('',(-0.108,0.011,-0.043)); +#6512=CARTESIAN_POINT('',(0.108,0.011,-0.043)); +#6513=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6514=CARTESIAN_POINT('',(0.092,0.021,-0.043)); +#6515=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6516=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6517=CARTESIAN_POINT('',(0.058,0.021,-0.043)); +#6518=CARTESIAN_POINT('',(0.042,0.021,-0.043)); +#6519=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6520=CARTESIAN_POINT('',(0.00799999999999999,0.021,-0.043)); +#6521=CARTESIAN_POINT('',(-0.00800000000000001,0.021,-0.043)); +#6522=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6523=CARTESIAN_POINT('',(-0.042,0.021,-0.043)); +#6524=CARTESIAN_POINT('',(-0.058,0.021,-0.043)); +#6525=CARTESIAN_POINT('',(0.108,0.021,-0.043)); +#6526=CARTESIAN_POINT('',(-0.092,0.021,-0.043)); +#6527=CARTESIAN_POINT('',(-0.108,0.021,-0.043)); +#6528=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6529=CARTESIAN_POINT('',(0.092,0.021,0.043)); +#6530=CARTESIAN_POINT('',(0.092,0.011,0.043)); +#6531=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6532=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6533=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6534=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6535=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6536=CARTESIAN_POINT('',(0.058,0.011,0.043)); +#6537=CARTESIAN_POINT('',(0.042,0.011,0.043)); +#6538=CARTESIAN_POINT('',(0.058,0.021,0.043)); +#6539=CARTESIAN_POINT('',(0.042,0.021,0.043)); +#6540=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6541=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6542=CARTESIAN_POINT('',(0.00799999999999999,0.011,0.043)); +#6543=CARTESIAN_POINT('',(-0.00800000000000001,0.011,0.043)); +#6544=CARTESIAN_POINT('',(0.00799999999999999,0.021,0.043)); +#6545=CARTESIAN_POINT('',(-0.00800000000000001,0.021,0.043)); +#6546=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6547=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6548=CARTESIAN_POINT('',(-0.042,0.011,0.043)); +#6549=CARTESIAN_POINT('',(-0.058,0.011,0.043)); +#6550=CARTESIAN_POINT('',(-0.042,0.021,0.043)); +#6551=CARTESIAN_POINT('',(-0.058,0.021,0.043)); +#6552=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6553=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6554=CARTESIAN_POINT('',(-0.092,0.011,0.043)); +#6555=CARTESIAN_POINT('',(-0.108,0.011,0.043)); +#6556=CARTESIAN_POINT('',(-0.092,0.021,0.043)); +#6557=CARTESIAN_POINT('',(-0.108,0.021,0.043)); +#6558=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6559=CARTESIAN_POINT('',(0.092,0.011,0.043)); +#6560=CARTESIAN_POINT('',(0.092,0.011,0.116)); +#6561=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6562=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6563=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6564=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6565=CARTESIAN_POINT('',(0.058,0.011,0.043)); +#6566=CARTESIAN_POINT('',(0.058,0.011,0.116)); +#6567=CARTESIAN_POINT('',(0.042,0.011,0.043)); +#6568=CARTESIAN_POINT('',(0.042,0.011,0.116)); +#6569=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6570=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6571=CARTESIAN_POINT('',(0.00799999999999999,0.011,0.043)); +#6572=CARTESIAN_POINT('',(0.00799999999999999,0.011,0.116)); +#6573=CARTESIAN_POINT('',(-0.00800000000000001,0.011,0.043)); +#6574=CARTESIAN_POINT('',(-0.00800000000000001,0.011,0.116)); +#6575=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6576=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6577=CARTESIAN_POINT('',(-0.042,0.011,0.043)); +#6578=CARTESIAN_POINT('',(-0.042,0.011,0.116)); +#6579=CARTESIAN_POINT('',(-0.058,0.011,0.043)); +#6580=CARTESIAN_POINT('',(-0.058,0.011,0.116)); +#6581=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6582=CARTESIAN_POINT('',(0.108,0.011,0.043)); +#6583=CARTESIAN_POINT('',(-0.092,0.011,0.043)); +#6584=CARTESIAN_POINT('',(-0.092,0.011,0.116)); +#6585=CARTESIAN_POINT('',(-0.108,0.011,0.043)); +#6586=CARTESIAN_POINT('',(-0.108,0.011,0.116)); +#6587=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6588=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6589=CARTESIAN_POINT('',(0.092,0.011,0.116)); +#6590=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6591=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6592=CARTESIAN_POINT('',(0.058,0.011,0.116)); +#6593=CARTESIAN_POINT('',(0.042,0.011,0.116)); +#6594=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6595=CARTESIAN_POINT('',(0.00799999999999999,0.011,0.116)); +#6596=CARTESIAN_POINT('',(-0.00800000000000001,0.011,0.116)); +#6597=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6598=CARTESIAN_POINT('',(-0.042,0.011,0.116)); +#6599=CARTESIAN_POINT('',(-0.058,0.011,0.116)); +#6600=CARTESIAN_POINT('',(0.108,0.011,0.116)); +#6601=CARTESIAN_POINT('',(-0.092,0.011,0.116)); +#6602=CARTESIAN_POINT('',(-0.108,0.011,0.116)); +#6603=CARTESIAN_POINT('',(0.108,0.04,0.017)); +#6604=CARTESIAN_POINT('',(-0.058,0.04,0.12)); +#6605=CARTESIAN_POINT('',(-0.092,0.04,0.12)); +#6606=CARTESIAN_POINT('',(-0.108,0.04,0.017)); +#6607=CARTESIAN_POINT('',(-0.092,0.04,0.12)); +#6608=CARTESIAN_POINT('',(-0.058,0.04,0.12)); +#6609=CARTESIAN_POINT('',(-0.042,0.04,0.12)); +#6610=CARTESIAN_POINT('',(-0.00800000000000001,0.04,0.12)); +#6611=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); +#6612=CARTESIAN_POINT('',(0.042,0.04,0.12)); +#6613=CARTESIAN_POINT('',(0.058,0.04,0.12)); +#6614=CARTESIAN_POINT('',(0.092,0.04,0.12)); +#6615=CARTESIAN_POINT('',(0.108,0.04,0.017)); +#6616=CARTESIAN_POINT('',(0.092,0.04,0.12)); +#6617=CARTESIAN_POINT('',(0.058,0.04,0.12)); +#6618=CARTESIAN_POINT('',(0.042,0.04,0.12)); +#6619=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); +#6620=CARTESIAN_POINT('',(-0.00800000000000001,0.04,0.12)); +#6621=CARTESIAN_POINT('',(-0.042,0.04,0.12)); +#6622=CARTESIAN_POINT('',(0.108,0.056,-0.017)); +#6623=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.11)); +#6624=CARTESIAN_POINT('',(0.058,0.056,0.11)); +#6625=CARTESIAN_POINT('',(0.042,0.056,0.11)); +#6626=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.11)); +#6627=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.11)); +#6628=CARTESIAN_POINT('',(-0.042,0.056,0.11)); +#6629=CARTESIAN_POINT('',(-0.058,0.056,0.11)); +#6630=CARTESIAN_POINT('',(-0.092,0.056,0.11)); +#6631=CARTESIAN_POINT('',(-0.108,0.056,-0.017)); +#6632=CARTESIAN_POINT('',(-0.092,0.056,0.11)); +#6633=CARTESIAN_POINT('',(-0.058,0.056,0.11)); +#6634=CARTESIAN_POINT('',(-0.042,0.056,0.11)); +#6635=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.11)); +#6636=CARTESIAN_POINT('',(0.00800000000000002,0.056,0.11)); +#6637=CARTESIAN_POINT('',(0.042,0.056,0.11)); +#6638=CARTESIAN_POINT('',(0.058,0.056,0.11)); +#6639=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.11)); +#6640=CARTESIAN_POINT('',(0.108,0.056,-0.017)); +#6641=CARTESIAN_POINT('',(0.108,0.021,0.043)); +#6642=CARTESIAN_POINT('',(-0.108,0.021,0.043)); +#6643=CARTESIAN_POINT('',(-0.058,-0.24,0.12)); +#6644=CARTESIAN_POINT('',(-0.092,0.04,0.12)); +#6645=CARTESIAN_POINT('',(-0.00800000000000001,-0.24,0.12)); +#6646=CARTESIAN_POINT('',(-0.042,0.04,0.12)); +#6647=CARTESIAN_POINT('',(0.042,-0.24,0.12)); +#6648=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); +#6649=CARTESIAN_POINT('',(0.092,-0.24,0.12)); +#6650=CARTESIAN_POINT('',(0.058,0.04,0.12)); +#6651=CARTESIAN_POINT('',(-0.092,0.04,0.12)); +#6652=CARTESIAN_POINT('',(-0.058,-0.24,0.12)); +#6653=CARTESIAN_POINT('',(-0.042,0.04,0.12)); +#6654=CARTESIAN_POINT('',(-0.00800000000000001,-0.24,0.12)); +#6655=CARTESIAN_POINT('',(0.00799999999999999,0.04,0.12)); +#6656=CARTESIAN_POINT('',(0.042,-0.24,0.12)); +#6657=CARTESIAN_POINT('',(0.092,-0.24,0.12)); +#6658=CARTESIAN_POINT('',(0.058,0.04,0.12)); +#6659=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.11)); +#6660=CARTESIAN_POINT('',(0.058,0.356,0.11)); +#6661=CARTESIAN_POINT('',(0.042,0.056,0.11)); +#6662=CARTESIAN_POINT('',(0.00800000000000002,0.356,0.11)); +#6663=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.11)); +#6664=CARTESIAN_POINT('',(-0.042,0.356,0.11)); +#6665=CARTESIAN_POINT('',(-0.058,0.056,0.11)); +#6666=CARTESIAN_POINT('',(-0.092,0.356,0.11)); +#6667=CARTESIAN_POINT('',(0.0919999999999999,0.056,0.11)); +#6668=CARTESIAN_POINT('',(0.058,0.356,0.11)); +#6669=CARTESIAN_POINT('',(0.042,0.056,0.11)); +#6670=CARTESIAN_POINT('',(0.00800000000000002,0.356,0.11)); +#6671=CARTESIAN_POINT('',(-0.00800000000000001,0.056,0.11)); +#6672=CARTESIAN_POINT('',(-0.042,0.356,0.11)); +#6673=CARTESIAN_POINT('',(-0.092,0.356,0.11)); +#6674=CARTESIAN_POINT('',(-0.058,0.056,0.11)); +#6675=CARTESIAN_POINT('',(0.,0.,0.)); +#6676=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#4159, +#4160,#4161),#6677); +#6677=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#6681)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#6687,#6686,#6685)) +REPRESENTATION_CONTEXT('SHF-105-01-L-D-SM','TOP_LEVEL_ASSEMBLY_PART') +); +#6678=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#6682)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#6687,#6686,#6685)) +REPRESENTATION_CONTEXT('SHF-105-01-D_header','COMPONENT_PART') +); +#6679=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#6683)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#6687,#6686,#6685)) +REPRESENTATION_CONTEXT('SHF-First_Position_Indicator','COMPONENT_PART') +); +#6680=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#6684)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#6687,#6686,#6685)) +REPRESENTATION_CONTEXT('T-1S71-02-05-D-SM','COMPONENT_PART') +); +#6681=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.93700787401575E-7), +#6687,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); +#6682=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.93700787401575E-7), +#6687,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); +#6683=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.93700787401575E-7), +#6687,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); +#6684=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.93700787401575E-7), +#6687,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); +#6685=( +NAMED_UNIT(*) +SI_UNIT($,.STERADIAN.) +SOLID_ANGLE_UNIT() +); +#6686=( +NAMED_UNIT(*) +PLANE_ANGLE_UNIT() +SI_UNIT($,.RADIAN.) +); +#6687=( +CONVERSION_BASED_UNIT('INCH',#6689) +LENGTH_UNIT() +NAMED_UNIT(#6688) +); +#6688=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.); +#6689=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#6690); +#6690=( +LENGTH_UNIT() +NAMED_UNIT(*) +SI_UNIT(.MILLI.,.METRE.) +); +#6691=PRODUCT_DEFINITION_SHAPE('','',#6698); +#6692=PRODUCT_DEFINITION_SHAPE('','',#6699); +#6693=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#83); +#6694=PRODUCT_DEFINITION_SHAPE('','',#6700); +#6695=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#84); +#6696=PRODUCT_DEFINITION_SHAPE('','',#6701); +#6697=PRODUCT_DEFINITION_SHAPE(' ','NAUO PRDDFN',#85); +#6698=PRODUCT_DEFINITION('','',#6706,#6702); +#6699=PRODUCT_DEFINITION('','',#6707,#6703); +#6700=PRODUCT_DEFINITION('','',#6708,#6704); +#6701=PRODUCT_DEFINITION('','',#6709,#6705); +#6702=PRODUCT_DEFINITION_CONTEXT('',#6727,'design'); +#6703=PRODUCT_DEFINITION_CONTEXT('',#6727,'design'); +#6704=PRODUCT_DEFINITION_CONTEXT('',#6727,'design'); +#6705=PRODUCT_DEFINITION_CONTEXT('',#6727,'design'); +#6706=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#6714, + .NOT_KNOWN.); +#6707=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#6715, + .NOT_KNOWN.); +#6708=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#6716, + .NOT_KNOWN.); +#6709=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#6717, + .NOT_KNOWN.); +#6710=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#6714)); +#6711=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#6715)); +#6712=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#6716)); +#6713=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#6717)); +#6714=PRODUCT('SHF-105-01-L-D-SM','SHF-105-01-L-D-SM', +'SHF-105-01-L-D-SM',(#6722)); +#6715=PRODUCT('SHF-105-01-D_header','SHF-105-01-D_header', +'SHF-105-01-D_header',(#6723)); +#6716=PRODUCT('SHF-First_Position_Indicator', +'SHF-First_Position_Indicator','SHF-First_Position_Indicator',(#6724)); +#6717=PRODUCT('T-1S71-02-05-D-SM','T-1S71-02-05-D-SM', +'T-1S71-02-05-D-SM',(#6725)); +#6718=PRODUCT_CATEGORY('',''); +#6719=PRODUCT_CATEGORY('',''); +#6720=PRODUCT_CATEGORY('',''); +#6721=PRODUCT_CATEGORY('',''); +#6722=PRODUCT_CONTEXT('',#6727,'mechanical'); +#6723=PRODUCT_CONTEXT('',#6727,'mechanical'); +#6724=PRODUCT_CONTEXT('',#6727,'mechanical'); +#6725=PRODUCT_CONTEXT('',#6727,'mechanical'); +#6726=APPLICATION_PROTOCOL_DEFINITION('international standard', +'automotive_design',2010,#6727); +#6727=APPLICATION_CONTEXT( +'core data for automotive mechanical design processes'); +ENDSEC; +END-ISO-10303-21; diff --git a/eps/hardware/mppt.kicad_sch b/eps/v1/hardware/mppt.kicad_sch similarity index 100% rename from eps/hardware/mppt.kicad_sch rename to eps/v1/hardware/mppt.kicad_sch diff --git a/eps/hardware/power_path_ideal_diode.kicad_sch b/eps/v1/hardware/power_path_ideal_diode.kicad_sch similarity index 100% rename from eps/hardware/power_path_ideal_diode.kicad_sch rename to eps/v1/hardware/power_path_ideal_diode.kicad_sch diff --git a/eps/hardware/solar-string.kicad_sch b/eps/v1/hardware/solar-string.kicad_sch similarity index 100% rename from eps/hardware/solar-string.kicad_sch rename to eps/v1/hardware/solar-string.kicad_sch diff --git a/eps/hardware/stm32l4.kicad_sch b/eps/v1/hardware/stm32l4.kicad_sch similarity index 100% rename from eps/hardware/stm32l4.kicad_sch rename to eps/v1/hardware/stm32l4.kicad_sch diff --git a/eps/hardware/sym-lib-table b/eps/v1/hardware/sym-lib-table similarity index 100% rename from eps/hardware/sym-lib-table rename to eps/v1/hardware/sym-lib-table diff --git a/eps/hardware/symbols/BQ25185DLHR.kicad_sym b/eps/v1/hardware/symbols/BQ25185DLHR.kicad_sym similarity index 100% rename from eps/hardware/symbols/BQ25185DLHR.kicad_sym rename to eps/v1/hardware/symbols/BQ25185DLHR.kicad_sym diff --git a/eps/hardware/symbols/EPS.kicad_sym b/eps/v1/hardware/symbols/EPS.kicad_sym similarity index 100% rename from eps/hardware/symbols/EPS.kicad_sym rename to eps/v1/hardware/symbols/EPS.kicad_sym diff --git a/eps/hardware/symbols/FDMC8327L.kicad_sym b/eps/v1/hardware/symbols/FDMC8327L.kicad_sym similarity index 100% rename from eps/hardware/symbols/FDMC8327L.kicad_sym rename to eps/v1/hardware/symbols/FDMC8327L.kicad_sym diff --git a/eps/hardware/symbols/LTC3130IUDC_PBF.kicad_sym b/eps/v1/hardware/symbols/LTC3130IUDC_PBF.kicad_sym similarity index 100% rename from eps/hardware/symbols/LTC3130IUDC_PBF.kicad_sym rename to eps/v1/hardware/symbols/LTC3130IUDC_PBF.kicad_sym diff --git a/eps/hardware/symbols/LTC4015.kicad_sym b/eps/v1/hardware/symbols/LTC4015.kicad_sym similarity index 100% rename from eps/hardware/symbols/LTC4015.kicad_sym rename to eps/v1/hardware/symbols/LTC4015.kicad_sym diff --git a/eps/hardware/voltage_regulator.kicad_sch b/eps/v1/hardware/voltage_regulator.kicad_sch similarity index 100% rename from eps/hardware/voltage_regulator.kicad_sch rename to eps/v1/hardware/voltage_regulator.kicad_sch diff --git a/eps/hardware/watchdog_timer.kicad_sch b/eps/v1/hardware/watchdog_timer.kicad_sch similarity index 100% rename from eps/hardware/watchdog_timer.kicad_sch rename to eps/v1/hardware/watchdog_timer.kicad_sch diff --git a/eps/v2/.gitignore b/eps/v2/.gitignore new file mode 100644 index 0000000..12eb420 --- /dev/null +++ b/eps/v2/.gitignore @@ -0,0 +1,12 @@ +hardware/eps-backups +hardware/symbols/*.bak +hardware/#auto_saved_files# +hardware/*.lck +hardware/.kiri/ +hardware/_autosave* +hardware/manufacturing/ +hardware/production/ +documentation/sphinx/.venv/ +documentation/doxygen_output/ +battery_contact_l/production +battery_contact_r/production diff --git a/obc/documentation/subsystem_info.md b/obc/documentation/subsystem_info.md new file mode 100644 index 0000000..43c260c --- /dev/null +++ b/obc/documentation/subsystem_info.md @@ -0,0 +1,122 @@ +# Subsystem Info + +# OBC Subsystem + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +# Background and context + +The on-board computer (OBC) subsystem handles main system control, managing the state of the CubeSat, receiving commands from the ground station, and executing known procedures. An MCU on the OBC receives and transmits commands from the other subsystems over a bidirectional communication protocol (CANBus). When in range of ground stations, it can receive commands to execute functions on the satellite. When out of range, it maintains a set of known procedures to execute mission functionality. The OBC also maintains an internal state machine for handling happy-path states and flowing through desired functionality, and for handling errors or latchups and correcting them accordingly. + +# OBC Responsibilities + +1. Performs health checks on boot + 1. Timeout/retry functionality to allow boards of different varieties time to arm themselves + 2. Easy configuration +2. Runs a mission-controller state machine that handles transitions and actions between IDLE -> ARMED -> RECORD -> DOWNLINK, etc. + 1. Handles alarm states and performs corrective actions accordingly + 2. Accepts commands from the ground station that can override the state machine +3. Triggers sensor recording and collection by sending commands to other subsystem MCUs + 1. Handles telemetry, like battery levels and temperature, from the EPS + 2. Saves log data to external storage + 3. Implements ACK/NACK and other handshake behavior to ensure robust communication between subsystems +4. Controls the payload module by sending commands to the payload board processor to trigger camera actions and data collection +5. Uses the UHF communications subsystem to transmit data + 1. Handles data compression + 2. Maintains a queue for downlink so no messages are dropped or unprocessed + 3. Uses the OSUSat packet standard for ground station communication +6. Responds to resets from an external watchdog that handles latchup events +7. Maintains a software watchdog system that can handle alarm states on other boards or systems +8. Handles transitions between normal operations and safe mode, where some modules are shut down to conserve power +9. Manages data storage + 1. Tags images with additional information like location and timestamp + 2. Maintains extensive logging +10. Exposes a "maintenance mode" accessible over radio by the ground station + 1. Enables remote debugging from the ground (functionality TBD) + 2. Starts a watchdog that requires petting from the ground station at a configurable interval; if not petted within the time limit, the system boots to safe mode automatically and attempts recovery + +# OBC Architecture + +- Lower power MCU with enough peripherals to allow for multi-protocol and multi-device communication + - May also carry a high-power co-processor for compute intensive tasks +- Communicates with other subsystems over the inter-board-connector (IBC) +- Has an inhibit that prevents system operation in a down state or when not integrated +- When the inhibit is removed, the device boots up and follows a series of steps: + 1. Wait for specified health probe timeouts for each subsystem + 2. Send health-check queries to other subsystems, retrying up to the max retry count on failure + 3. If a system fails a health check, boot directly to safe mode and enter an alarm state + 1. In safe mode, continuously query and try to cycle failing subsystems until the system is in a healthy state + 4. Once in a healthy state, arm and start the state machine that performs system functionality + 5. Repeatedly transition between IDLE -> ARMED -> RECORD -> DOWNLINK, etc. + 6. Override normal system functionality when a command arrives from the ground station + 7. Continuously monitor for latchups or errors + +# Scope and deliverables + + +| Deliverable | Description | +| :---- | :---- | +| OBC Hardware | The hardware design and manufacturing of the OBC board. Should contain a suitable MCU, IBC, non-volatile storage, hardware watchdogs, inhibits, and other safety features. | +| Health-check functionality | Software functionality to configure, boot, and run health checks on OBC startup | +| Safe mode implementation | Software functionality that allows the OBC to transition to a safe mode where some system features are disabled and monitored for health over time | +| Barebones state machine | Basic software functionality to run through the system state machine; doesn't need to execute command functionality yet | +| Ground station overrides | Software functionality that allows state machine overrides via ground station commands | +| Command implementations | Software functionality that allows the state machine to actually execute actions on other system boards | +| Test harness and software tests (throughout project) | A testing framework that allows OBC testing to occur without the other actual subsystems, by mocking subsystems in software so the OBC can run in a dummy mode as if they were present | +| Software dependency injection framework (throughout project) | A DI framework that allows rapid creation and swapping of components, so that if a communications or payload board's architecture or pinout changes, swappable components can be loaded at boot time | + +# Resources + +- https://github.com/oresat/oresat-c3-hardware + +# Next steps (v1r1) + +- [X] Design OBC block diagram +- [X] Select hardware components +- [X] Design and manufacture hardware +- [X] Scope software and create state machine flowchart +- [ ] Create testable framework without hardware while it's being designed +- [X] Implement and test software functionality +- [X] Test on real hardware +- [X] Integrate with system + +# OBC Messaging Standard + +- Packet based +- Messages are framed consistently, with headers, checksums, and ACK/NACK support +- Backwards compatibility is important, to avoid breaking old commands +- Shared functionality for parsing and serializing between subsystem codebases + + +| Field | Size (bytes) | Notes | +| :---- | :---- | :---- | +| Start Byte | 1 | Tentatively 0x7E. Radio protocols like AX.25 use 0x7E as a start byte. | +| Version # | 1 | Messaging standard version number | +| Destination | 1 | Target destination enum. 0x01 for EPS, 0x02 for payload, etc. | +| Source | 1 | Same enum, corresponds to who sent the packet | +| Message Type | 1 | Enum for message type. 0x01 is command, 0x02 telemetry, etc. | +| Command ID | 1 | Enum for command ID. Subsystem-specific command tables can differ; a common commands table should be maintained with a few commands every subsystem uses, and a specified offset at which subsystem-specific commands begin. | +| Sequence | 1 | Packet sequence number, used for multi-packet payloads | +| Last Chunk Flag | 1 | Indicates whether this packet marks the end of the packet sequence | +| Length | 1 | Packet payload length in bytes | +| Payload | N | Variable length payload | +| CRC | 2 | Cyclic redundancy check for error correction (CRC-16-CCITT) | + + +## Message Handshake + +- Every command must be ACKed with a new packet using the ACK message type +- If an error or invalid state occurs, send back a new packet with the NACK/ERR message type, with the error message/state in the payload +- OBC maintains retry logic to retry messages until a successful ACK occurs or it reaches a specified threshold, at which point it enters safe mode + +## Command Table Code Generation + +- Command table and system configuration live in a YAML document +- A simple Python autogeneration script parses the YAML configuration and generates C header files and Python files containing the command table, accessible programmatically +- This way, commands are known at build time diff --git a/obc/firmware/lib/core b/obc/firmware/lib/core deleted file mode 120000 index 391901d..0000000 --- a/obc/firmware/lib/core +++ /dev/null @@ -1 +0,0 @@ -../../../eps/firmware/lib/core \ No newline at end of file diff --git a/obc/firmware/lib/messaging b/obc/firmware/lib/messaging deleted file mode 120000 index bc02c86..0000000 --- a/obc/firmware/lib/messaging +++ /dev/null @@ -1 +0,0 @@ -../../../eps/firmware/lib/messaging \ No newline at end of file diff --git a/obc/tests/lora-packet-transmission/lib/messaging b/obc/tests/lora-packet-transmission/lib/messaging deleted file mode 160000 index 2955c34..0000000 --- a/obc/tests/lora-packet-transmission/lib/messaging +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2955c34fe076c5245f2dfe1f8e1e96fbfaee9279 diff --git a/obc/tests/lora-packet-transmission/lib/rp2x_rfm69 b/obc/tests/lora-packet-transmission/lib/rp2x_rfm69 deleted file mode 160000 index 86542c9..0000000 --- a/obc/tests/lora-packet-transmission/lib/rp2x_rfm69 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 86542c925e82dea7362ed70ccf902721cf4a5890 diff --git a/obc/v1/documentation/datasheets/AMS1117-3.3.pdf b/obc/v1/documentation/datasheets/AMS1117-3.3.pdf new file mode 100644 index 0000000..e3d6b2c Binary files /dev/null and b/obc/v1/documentation/datasheets/AMS1117-3.3.pdf differ diff --git a/obc/v1/documentation/datasheets/MAX-M10S.pdf b/obc/v1/documentation/datasheets/MAX-M10S.pdf new file mode 100644 index 0000000..e178475 Binary files /dev/null and b/obc/v1/documentation/datasheets/MAX-M10S.pdf differ diff --git a/obc/v1/documentation/datasheets/MAX6369.pdf b/obc/v1/documentation/datasheets/MAX6369.pdf new file mode 100644 index 0000000..bd9dcfa Binary files /dev/null and b/obc/v1/documentation/datasheets/MAX6369.pdf differ diff --git a/obc/v1/documentation/datasheets/MS5607-02BA03_B5.pdf b/obc/v1/documentation/datasheets/MS5607-02BA03_B5.pdf new file mode 100644 index 0000000..3b95266 Binary files /dev/null and b/obc/v1/documentation/datasheets/MS5607-02BA03_B5.pdf differ diff --git a/obc/v1/documentation/datasheets/RFM95.PDF b/obc/v1/documentation/datasheets/RFM95.PDF new file mode 100644 index 0000000..4b22f10 Binary files /dev/null and b/obc/v1/documentation/datasheets/RFM95.PDF differ diff --git a/obc/v1/documentation/datasheets/SN65HVD230.pdf b/obc/v1/documentation/datasheets/SN65HVD230.pdf new file mode 100644 index 0000000..c930031 Binary files /dev/null and b/obc/v1/documentation/datasheets/SN65HVD230.pdf differ diff --git a/obc/v1/documentation/datasheets/ism6hg256x.pdf b/obc/v1/documentation/datasheets/ism6hg256x.pdf new file mode 100644 index 0000000..afa72e8 Binary files /dev/null and b/obc/v1/documentation/datasheets/ism6hg256x.pdf differ diff --git a/obc/v1/documentation/datasheets/lm66100.pdf b/obc/v1/documentation/datasheets/lm66100.pdf new file mode 100644 index 0000000..394edd5 Binary files /dev/null and b/obc/v1/documentation/datasheets/lm66100.pdf differ diff --git a/obc/v1/documentation/datasheets/stm32h743zg.pdf b/obc/v1/documentation/datasheets/stm32h743zg.pdf new file mode 100644 index 0000000..4b2812d Binary files /dev/null and b/obc/v1/documentation/datasheets/stm32h743zg.pdf differ diff --git a/obc/v1/documentation/datasheets/tps564242.pdf b/obc/v1/documentation/datasheets/tps564242.pdf new file mode 100644 index 0000000..20ada12 Binary files /dev/null and b/obc/v1/documentation/datasheets/tps564242.pdf differ diff --git a/obc/v1/documentation/guides/an4938-getting-started-with-stm32h74xig-and-stm32h75xig-mcu-hardware-development-stmicroelectronics-4.pdf b/obc/v1/documentation/guides/an4938-getting-started-with-stm32h74xig-and-stm32h75xig-mcu-hardware-development-stmicroelectronics-4.pdf new file mode 100644 index 0000000..fcfe3d5 Binary files /dev/null and b/obc/v1/documentation/guides/an4938-getting-started-with-stm32h74xig-and-stm32h75xig-mcu-hardware-development-stmicroelectronics-4.pdf differ diff --git a/obc/firmware/.clang-format b/obc/v1/firmware/.clang-format similarity index 100% rename from obc/firmware/.clang-format rename to obc/v1/firmware/.clang-format diff --git a/obc/firmware/.gitignore b/obc/v1/firmware/.gitignore similarity index 100% rename from obc/firmware/.gitignore rename to obc/v1/firmware/.gitignore diff --git a/obc/firmware/CMakeLists.txt b/obc/v1/firmware/CMakeLists.txt similarity index 100% rename from obc/firmware/CMakeLists.txt rename to obc/v1/firmware/CMakeLists.txt diff --git a/obc/firmware/arm-none-eabi-toolchain.cmake b/obc/v1/firmware/arm-none-eabi-toolchain.cmake similarity index 100% rename from obc/firmware/arm-none-eabi-toolchain.cmake rename to obc/v1/firmware/arm-none-eabi-toolchain.cmake diff --git a/obc/firmware/bootstrap/.mxproject b/obc/v1/firmware/bootstrap/.mxproject similarity index 100% rename from obc/firmware/bootstrap/.mxproject rename to obc/v1/firmware/bootstrap/.mxproject diff --git a/obc/firmware/bootstrap/CMakeLists.txt b/obc/v1/firmware/bootstrap/CMakeLists.txt similarity index 100% rename from obc/firmware/bootstrap/CMakeLists.txt rename to obc/v1/firmware/bootstrap/CMakeLists.txt diff --git a/obc/firmware/bootstrap/CMakePresets.json b/obc/v1/firmware/bootstrap/CMakePresets.json similarity index 100% rename from obc/firmware/bootstrap/CMakePresets.json rename to obc/v1/firmware/bootstrap/CMakePresets.json diff --git a/obc/firmware/bootstrap/Core/Inc/main.h b/obc/v1/firmware/bootstrap/Core/Inc/main.h similarity index 100% rename from obc/firmware/bootstrap/Core/Inc/main.h rename to obc/v1/firmware/bootstrap/Core/Inc/main.h diff --git a/obc/firmware/bootstrap/Core/Inc/stm32h7xx_hal_conf.h b/obc/v1/firmware/bootstrap/Core/Inc/stm32h7xx_hal_conf.h similarity index 100% rename from obc/firmware/bootstrap/Core/Inc/stm32h7xx_hal_conf.h rename to obc/v1/firmware/bootstrap/Core/Inc/stm32h7xx_hal_conf.h diff --git a/obc/firmware/bootstrap/Core/Inc/stm32h7xx_it.h b/obc/v1/firmware/bootstrap/Core/Inc/stm32h7xx_it.h similarity index 100% rename from obc/firmware/bootstrap/Core/Inc/stm32h7xx_it.h rename to obc/v1/firmware/bootstrap/Core/Inc/stm32h7xx_it.h diff --git a/obc/firmware/bootstrap/Core/Src/main.c b/obc/v1/firmware/bootstrap/Core/Src/main.c similarity index 100% rename from obc/firmware/bootstrap/Core/Src/main.c rename to obc/v1/firmware/bootstrap/Core/Src/main.c diff --git a/obc/firmware/bootstrap/Core/Src/stm32h7xx_hal_msp.c b/obc/v1/firmware/bootstrap/Core/Src/stm32h7xx_hal_msp.c similarity index 100% rename from obc/firmware/bootstrap/Core/Src/stm32h7xx_hal_msp.c rename to obc/v1/firmware/bootstrap/Core/Src/stm32h7xx_hal_msp.c diff --git a/obc/firmware/bootstrap/Core/Src/stm32h7xx_it.c b/obc/v1/firmware/bootstrap/Core/Src/stm32h7xx_it.c similarity index 100% rename from obc/firmware/bootstrap/Core/Src/stm32h7xx_it.c rename to obc/v1/firmware/bootstrap/Core/Src/stm32h7xx_it.c diff --git a/obc/firmware/bootstrap/Core/Src/syscalls.c b/obc/v1/firmware/bootstrap/Core/Src/syscalls.c similarity index 100% rename from obc/firmware/bootstrap/Core/Src/syscalls.c rename to obc/v1/firmware/bootstrap/Core/Src/syscalls.c diff --git a/obc/firmware/bootstrap/Core/Src/sysmem.c b/obc/v1/firmware/bootstrap/Core/Src/sysmem.c similarity index 100% rename from obc/firmware/bootstrap/Core/Src/sysmem.c rename to obc/v1/firmware/bootstrap/Core/Src/sysmem.c diff --git a/obc/firmware/bootstrap/Core/Src/system_stm32h7xx.c b/obc/v1/firmware/bootstrap/Core/Src/system_stm32h7xx.c similarity index 100% rename from obc/firmware/bootstrap/Core/Src/system_stm32h7xx.c rename to obc/v1/firmware/bootstrap/Core/Src/system_stm32h7xx.c diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h743xx.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h743xx.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h743xx.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h743xx.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/LICENSE.txt b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/LICENSE.txt similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/LICENSE.txt rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Device/ST/STM32H7xx/LICENSE.txt diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/cachel1_armv7.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cachel1_armv7.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/cachel1_armv7.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cachel1_armv7.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armcc.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_armclang_ltm.h diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h similarity index 97% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h index 21a2c71..adbf296 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h +++ b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_compiler.h @@ -1,283 +1,283 @@ -/**************************************************************************//** - * @file cmsis_compiler.h - * @brief CMSIS compiler generic header file - * @version V5.1.0 - * @date 09. October 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __CMSIS_COMPILER_H -#define __CMSIS_COMPILER_H - -#include - -/* - * Arm Compiler 4/5 - */ -#if defined ( __CC_ARM ) - #include "cmsis_armcc.h" - - -/* - * Arm Compiler 6.6 LTM (armclang) - */ -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) && (__ARMCC_VERSION < 6100100) - #include "cmsis_armclang_ltm.h" - - /* - * Arm Compiler above 6.10.1 (armclang) - */ -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100) - #include "cmsis_armclang.h" - - -/* - * GNU Compiler - */ -#elif defined ( __GNUC__ ) - #include "cmsis_gcc.h" - - -/* - * IAR Compiler - */ -#elif defined ( __ICCARM__ ) - #include - - -/* - * TI Arm Compiler - */ -#elif defined ( __TI_ARM__ ) - #include - - #ifndef __ASM - #define __ASM __asm - #endif - #ifndef __INLINE - #define __INLINE inline - #endif - #ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline - #endif - #ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __STATIC_INLINE - #endif - #ifndef __NO_RETURN - #define __NO_RETURN __attribute__((noreturn)) - #endif - #ifndef __USED - #define __USED __attribute__((used)) - #endif - #ifndef __WEAK - #define __WEAK __attribute__((weak)) - #endif - #ifndef __PACKED - #define __PACKED __attribute__((packed)) - #endif - #ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __attribute__((packed)) - #endif - #ifndef __PACKED_UNION - #define __PACKED_UNION union __attribute__((packed)) - #endif - #ifndef __UNALIGNED_UINT32 /* deprecated */ - struct __attribute__((packed)) T_UINT32 { uint32_t v; }; - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) - #endif - #ifndef __UNALIGNED_UINT16_WRITE - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT16_READ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) - #endif - #ifndef __UNALIGNED_UINT32_WRITE - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT32_READ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) - #endif - #ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) - #endif - #ifndef __RESTRICT - #define __RESTRICT __restrict - #endif - #ifndef __COMPILER_BARRIER - #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. - #define __COMPILER_BARRIER() (void)0 - #endif - - -/* - * TASKING Compiler - */ -#elif defined ( __TASKING__ ) - /* - * The CMSIS functions have been implemented as intrinsics in the compiler. - * Please use "carm -?i" to get an up to date list of all intrinsics, - * Including the CMSIS ones. - */ - - #ifndef __ASM - #define __ASM __asm - #endif - #ifndef __INLINE - #define __INLINE inline - #endif - #ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline - #endif - #ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __STATIC_INLINE - #endif - #ifndef __NO_RETURN - #define __NO_RETURN __attribute__((noreturn)) - #endif - #ifndef __USED - #define __USED __attribute__((used)) - #endif - #ifndef __WEAK - #define __WEAK __attribute__((weak)) - #endif - #ifndef __PACKED - #define __PACKED __packed__ - #endif - #ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __packed__ - #endif - #ifndef __PACKED_UNION - #define __PACKED_UNION union __packed__ - #endif - #ifndef __UNALIGNED_UINT32 /* deprecated */ - struct __packed__ T_UINT32 { uint32_t v; }; - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) - #endif - #ifndef __UNALIGNED_UINT16_WRITE - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT16_READ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) - #endif - #ifndef __UNALIGNED_UINT32_WRITE - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT32_READ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) - #endif - #ifndef __ALIGNED - #define __ALIGNED(x) __align(x) - #endif - #ifndef __RESTRICT - #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. - #define __RESTRICT - #endif - #ifndef __COMPILER_BARRIER - #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. - #define __COMPILER_BARRIER() (void)0 - #endif - - -/* - * COSMIC Compiler - */ -#elif defined ( __CSMC__ ) - #include - - #ifndef __ASM - #define __ASM _asm - #endif - #ifndef __INLINE - #define __INLINE inline - #endif - #ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline - #endif - #ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __STATIC_INLINE - #endif - #ifndef __NO_RETURN - // NO RETURN is automatically detected hence no warning here - #define __NO_RETURN - #endif - #ifndef __USED - #warning No compiler specific solution for __USED. __USED is ignored. - #define __USED - #endif - #ifndef __WEAK - #define __WEAK __weak - #endif - #ifndef __PACKED - #define __PACKED @packed - #endif - #ifndef __PACKED_STRUCT - #define __PACKED_STRUCT @packed struct - #endif - #ifndef __PACKED_UNION - #define __PACKED_UNION @packed union - #endif - #ifndef __UNALIGNED_UINT32 /* deprecated */ - @packed struct T_UINT32 { uint32_t v; }; - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) - #endif - #ifndef __UNALIGNED_UINT16_WRITE - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT16_READ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) - #endif - #ifndef __UNALIGNED_UINT32_WRITE - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT32_READ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) - #endif - #ifndef __ALIGNED - #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. - #define __ALIGNED(x) - #endif - #ifndef __RESTRICT - #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. - #define __RESTRICT - #endif - #ifndef __COMPILER_BARRIER - #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. - #define __COMPILER_BARRIER() (void)0 - #endif - - -#else - #error Unknown compiler. -#endif - - -#endif /* __CMSIS_COMPILER_H */ - +/**************************************************************************//** + * @file cmsis_compiler.h + * @brief CMSIS compiler generic header file + * @version V5.1.0 + * @date 09. October 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_COMPILER_H +#define __CMSIS_COMPILER_H + +#include + +/* + * Arm Compiler 4/5 + */ +#if defined ( __CC_ARM ) + #include "cmsis_armcc.h" + + +/* + * Arm Compiler 6.6 LTM (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) && (__ARMCC_VERSION < 6100100) + #include "cmsis_armclang_ltm.h" + + /* + * Arm Compiler above 6.10.1 (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100) + #include "cmsis_armclang.h" + + +/* + * GNU Compiler + */ +#elif defined ( __GNUC__ ) + #include "cmsis_gcc.h" + + +/* + * IAR Compiler + */ +#elif defined ( __ICCARM__ ) + #include + + +/* + * TI Arm Compiler + */ +#elif defined ( __TI_ARM__ ) + #include + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __attribute__((packed)) + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed)) + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed)) + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) + #endif + #ifndef __RESTRICT + #define __RESTRICT __restrict + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +/* + * TASKING Compiler + */ +#elif defined ( __TASKING__ ) + /* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __packed__ + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __packed__ + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __packed__ + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __packed__ T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __align(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +/* + * COSMIC Compiler + */ +#elif defined ( __CSMC__ ) + #include + + #ifndef __ASM + #define __ASM _asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + // NO RETURN is automatically detected hence no warning here + #define __NO_RETURN + #endif + #ifndef __USED + #warning No compiler specific solution for __USED. __USED is ignored. + #define __USED + #endif + #ifndef __WEAK + #define __WEAK __weak + #endif + #ifndef __PACKED + #define __PACKED @packed + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT @packed struct + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION @packed union + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + @packed struct T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. + #define __ALIGNED(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +#else + #error Unknown compiler. +#endif + + +#endif /* __CMSIS_COMPILER_H */ + diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_gcc.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_iccarm.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/cmsis_version.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv81mml.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mbl.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_armv8mml.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm0plus.h diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h similarity index 97% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h index 44c2a49..76b4569 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h +++ b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm1.h @@ -1,979 +1,979 @@ -/**************************************************************************//** - * @file core_cm1.h - * @brief CMSIS Cortex-M1 Core Peripheral Access Layer Header File - * @version V1.0.1 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM1_H_GENERIC -#define __CORE_CM1_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M1 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM1 definitions */ -#define __CM1_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM1_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM1_CMSIS_VERSION ((__CM1_CMSIS_VERSION_MAIN << 16U) | \ - __CM1_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (1U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM1_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM1_H_DEPENDANT -#define __CORE_CM1_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM1_REV - #define __CM1_REV 0x0100U - #warning "__CM1_REV not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M1 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t _reserved0:1; /*!< bit: 0 Reserved */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[31U]; - __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[31U]; - __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[31U]; - __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[31U]; - uint32_t RESERVED4[64U]; - __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - uint32_t RESERVED0; - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_ITCMUAEN_Pos 4U /*!< ACTLR: Instruction TCM Upper Alias Enable Position */ -#define SCnSCB_ACTLR_ITCMUAEN_Msk (1UL << SCnSCB_ACTLR_ITCMUAEN_Pos) /*!< ACTLR: Instruction TCM Upper Alias Enable Mask */ - -#define SCnSCB_ACTLR_ITCMLAEN_Pos 3U /*!< ACTLR: Instruction TCM Lower Alias Enable Position */ -#define SCnSCB_ACTLR_ITCMLAEN_Msk (1UL << SCnSCB_ACTLR_ITCMLAEN_Pos) /*!< ACTLR: Instruction TCM Lower Alias Enable Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Cortex-M1 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. - Therefore they are not covered by the Cortex-M1 header file. - @{ - */ -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ -/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M1 */ - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - Address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)0x0U; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - /* ARM Application Note 321 states that the M1 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)0x0U; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM1_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm1.h + * @brief CMSIS Cortex-M1 Core Peripheral Access Layer Header File + * @version V1.0.1 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM1_H_GENERIC +#define __CORE_CM1_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M1 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM1 definitions */ +#define __CM1_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM1_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM1_CMSIS_VERSION ((__CM1_CMSIS_VERSION_MAIN << 16U) | \ + __CM1_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (1U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM1_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM1_H_DEPENDANT +#define __CORE_CM1_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM1_REV + #define __CM1_REV 0x0100U + #warning "__CM1_REV not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M1 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + uint32_t RESERVED0; + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_ITCMUAEN_Pos 4U /*!< ACTLR: Instruction TCM Upper Alias Enable Position */ +#define SCnSCB_ACTLR_ITCMUAEN_Msk (1UL << SCnSCB_ACTLR_ITCMUAEN_Pos) /*!< ACTLR: Instruction TCM Upper Alias Enable Mask */ + +#define SCnSCB_ACTLR_ITCMLAEN_Pos 3U /*!< ACTLR: Instruction TCM Lower Alias Enable Position */ +#define SCnSCB_ACTLR_ITCMLAEN_Msk (1UL << SCnSCB_ACTLR_ITCMLAEN_Pos) /*!< ACTLR: Instruction TCM Lower Alias Enable Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M1 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M1 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M1 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + Address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)0x0U; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + /* ARM Application Note 321 states that the M1 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)0x0U; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM1_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm23.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm3.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm33.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm35p.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm4.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm55.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm55.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm55.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm55.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm7.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm85.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm85.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_cm85.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_cm85.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc000.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_sc300.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/core_starmc1.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_starmc1.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/core_starmc1.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/core_starmc1.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv7.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/mpu_armv8.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/pac_armv81.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/pac_armv81.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/pac_armv81.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/pac_armv81.h diff --git a/obc/firmware/bootstrap/Drivers/CMSIS/Include/pmu_armv8.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/pmu_armv8.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/CMSIS/Include/pmu_armv8.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/pmu_armv8.h diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h similarity index 97% rename from eps/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h index d4c1474..0d09749 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h +++ b/obc/v1/firmware/bootstrap/Drivers/CMSIS/Include/tz_context.h @@ -1,70 +1,70 @@ -/****************************************************************************** - * @file tz_context.h - * @brief Context Management for Armv8-M TrustZone - * @version V1.0.1 - * @date 10. January 2018 - ******************************************************************************/ -/* - * Copyright (c) 2017-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef TZ_CONTEXT_H -#define TZ_CONTEXT_H - -#include - -#ifndef TZ_MODULEID_T -#define TZ_MODULEID_T -/// \details Data type that identifies secure software modules called by a process. -typedef uint32_t TZ_ModuleId_t; -#endif - -/// \details TZ Memory ID identifies an allocated memory slot. -typedef uint32_t TZ_MemoryId_t; - -/// Initialize secure context memory system -/// \return execution status (1: success, 0: error) -uint32_t TZ_InitContextSystem_S (void); - -/// Allocate context memory for calling secure software modules in TrustZone -/// \param[in] module identifies software modules called from non-secure mode -/// \return value != 0 id TrustZone memory slot identifier -/// \return value 0 no memory available or internal error -TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module); - -/// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S -/// \param[in] id TrustZone memory slot identifier -/// \return execution status (1: success, 0: error) -uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id); - -/// Load secure context (called on RTOS thread context switch) -/// \param[in] id TrustZone memory slot identifier -/// \return execution status (1: success, 0: error) -uint32_t TZ_LoadContext_S (TZ_MemoryId_t id); - -/// Store secure context (called on RTOS thread context switch) -/// \param[in] id TrustZone memory slot identifier -/// \return execution status (1: success, 0: error) -uint32_t TZ_StoreContext_S (TZ_MemoryId_t id); - -#endif // TZ_CONTEXT_H +/****************************************************************************** + * @file tz_context.h + * @brief Context Management for Armv8-M TrustZone + * @version V1.0.1 + * @date 10. January 2018 + ******************************************************************************/ +/* + * Copyright (c) 2017-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef TZ_CONTEXT_H +#define TZ_CONTEXT_H + +#include + +#ifndef TZ_MODULEID_T +#define TZ_MODULEID_T +/// \details Data type that identifies secure software modules called by a process. +typedef uint32_t TZ_ModuleId_t; +#endif + +/// \details TZ Memory ID identifies an allocated memory slot. +typedef uint32_t TZ_MemoryId_t; + +/// Initialize secure context memory system +/// \return execution status (1: success, 0: error) +uint32_t TZ_InitContextSystem_S (void); + +/// Allocate context memory for calling secure software modules in TrustZone +/// \param[in] module identifies software modules called from non-secure mode +/// \return value != 0 id TrustZone memory slot identifier +/// \return value 0 no memory available or internal error +TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module); + +/// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S +/// \param[in] id TrustZone memory slot identifier +/// \return execution status (1: success, 0: error) +uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id); + +/// Load secure context (called on RTOS thread context switch) +/// \param[in] id TrustZone memory slot identifier +/// \return execution status (1: success, 0: error) +uint32_t TZ_LoadContext_S (TZ_MemoryId_t id); + +/// Store secure context (called on RTOS thread context switch) +/// \param[in] id TrustZone memory slot identifier +/// \return execution status (1: success, 0: error) +uint32_t TZ_StoreContext_S (TZ_MemoryId_t id); + +#endif // TZ_CONTEXT_H diff --git a/eps/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt b/obc/v1/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt similarity index 98% rename from eps/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt rename to obc/v1/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt index c0ee812..8dada3e 100644 --- a/eps/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt +++ b/obc/v1/firmware/bootstrap/Drivers/CMSIS/LICENSE.txt @@ -1,201 +1,201 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_fdcan.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_fdcan.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_fdcan.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_fdcan.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mmc.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mmc.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mmc.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mmc.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mmc_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mmc_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mmc_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mmc_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_sd.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_sd.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_sd.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_sd.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_sd_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_sd_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_sd_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_sd_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_bus.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_bus.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_bus.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_bus.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_cortex.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_cortex.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_cortex.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_cortex.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_crs.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_crs.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_crs.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_crs.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_delayblock.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_delayblock.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_delayblock.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_delayblock.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dma.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dma.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dma.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dma.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dmamux.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dmamux.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dmamux.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dmamux.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_exti.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_exti.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_exti.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_exti.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_gpio.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_gpio.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_gpio.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_gpio.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_hsem.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_hsem.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_hsem.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_hsem.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_i2c.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_i2c.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_i2c.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_i2c.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_lpuart.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_lpuart.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_lpuart.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_lpuart.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_pwr.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_pwr.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_pwr.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_pwr.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_rcc.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_rcc.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_rcc.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_rcc.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_sdmmc.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_sdmmc.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_sdmmc.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_sdmmc.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_spi.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_spi.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_spi.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_spi.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_system.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_system.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_system.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_system.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usart.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usart.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usart.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usart.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_utils.h b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_utils.h similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_utils.h rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_utils.h diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/LICENSE.txt b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/LICENSE.txt similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/LICENSE.txt rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/LICENSE.txt diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_fdcan.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_fdcan.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_fdcan.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_fdcan.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mmc.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mmc.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mmc.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mmc.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mmc_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mmc_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mmc_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mmc_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_delayblock.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_delayblock.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_delayblock.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_delayblock.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_sdmmc.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_sdmmc.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_sdmmc.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_sdmmc.c diff --git a/obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c b/obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c similarity index 100% rename from obc/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c rename to obc/v1/firmware/bootstrap/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c diff --git a/obc/firmware/bootstrap/STM32H743XG_FLASH.ld b/obc/v1/firmware/bootstrap/STM32H743XG_FLASH.ld similarity index 100% rename from obc/firmware/bootstrap/STM32H743XG_FLASH.ld rename to obc/v1/firmware/bootstrap/STM32H743XG_FLASH.ld diff --git a/obc/firmware/bootstrap/cmake/gcc-arm-none-eabi.cmake b/obc/v1/firmware/bootstrap/cmake/gcc-arm-none-eabi.cmake similarity index 100% rename from obc/firmware/bootstrap/cmake/gcc-arm-none-eabi.cmake rename to obc/v1/firmware/bootstrap/cmake/gcc-arm-none-eabi.cmake diff --git a/obc/firmware/bootstrap/cmake/starm-clang.cmake b/obc/v1/firmware/bootstrap/cmake/starm-clang.cmake similarity index 100% rename from obc/firmware/bootstrap/cmake/starm-clang.cmake rename to obc/v1/firmware/bootstrap/cmake/starm-clang.cmake diff --git a/obc/firmware/bootstrap/cmake/stm32cubemx/CMakeLists.txt b/obc/v1/firmware/bootstrap/cmake/stm32cubemx/CMakeLists.txt similarity index 100% rename from obc/firmware/bootstrap/cmake/stm32cubemx/CMakeLists.txt rename to obc/v1/firmware/bootstrap/cmake/stm32cubemx/CMakeLists.txt diff --git a/obc/firmware/bootstrap/obc_bringup_2.ioc b/obc/v1/firmware/bootstrap/obc_bringup_2.ioc similarity index 100% rename from obc/firmware/bootstrap/obc_bringup_2.ioc rename to obc/v1/firmware/bootstrap/obc_bringup_2.ioc diff --git a/obc/firmware/bootstrap/startup_stm32h743xx.s b/obc/v1/firmware/bootstrap/startup_stm32h743xx.s similarity index 100% rename from obc/firmware/bootstrap/startup_stm32h743xx.s rename to obc/v1/firmware/bootstrap/startup_stm32h743xx.s diff --git a/obc/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/stm32h743xx.h b/obc/v1/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/stm32h743xx.h similarity index 100% rename from obc/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/stm32h743xx.h rename to obc/v1/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/stm32h743xx.h diff --git a/obc/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/stm32h7xx.h b/obc/v1/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/stm32h7xx.h similarity index 100% rename from obc/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/stm32h7xx.h rename to obc/v1/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/stm32h7xx.h diff --git a/obc/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/system_stm32h7xx.h b/obc/v1/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/system_stm32h7xx.h similarity index 100% rename from obc/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/system_stm32h7xx.h rename to obc/v1/firmware/bsp/cmsis/Device/ST/STM32H7xx/Include/system_stm32h7xx.h diff --git a/obc/firmware/bsp/cmsis/Include/cachel1_armv7.h b/obc/v1/firmware/bsp/cmsis/Include/cachel1_armv7.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/cachel1_armv7.h rename to obc/v1/firmware/bsp/cmsis/Include/cachel1_armv7.h diff --git a/obc/firmware/bsp/cmsis/Include/cmsis_armcc.h b/obc/v1/firmware/bsp/cmsis/Include/cmsis_armcc.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/cmsis_armcc.h rename to obc/v1/firmware/bsp/cmsis/Include/cmsis_armcc.h diff --git a/obc/firmware/bsp/cmsis/Include/cmsis_armclang.h b/obc/v1/firmware/bsp/cmsis/Include/cmsis_armclang.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/cmsis_armclang.h rename to obc/v1/firmware/bsp/cmsis/Include/cmsis_armclang.h diff --git a/obc/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h b/obc/v1/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h rename to obc/v1/firmware/bsp/cmsis/Include/cmsis_armclang_ltm.h diff --git a/eps/firmware/bsp/cmsis/Include/cmsis_compiler.h b/obc/v1/firmware/bsp/cmsis/Include/cmsis_compiler.h similarity index 97% rename from eps/firmware/bsp/cmsis/Include/cmsis_compiler.h rename to obc/v1/firmware/bsp/cmsis/Include/cmsis_compiler.h index 21a2c71..adbf296 100644 --- a/eps/firmware/bsp/cmsis/Include/cmsis_compiler.h +++ b/obc/v1/firmware/bsp/cmsis/Include/cmsis_compiler.h @@ -1,283 +1,283 @@ -/**************************************************************************//** - * @file cmsis_compiler.h - * @brief CMSIS compiler generic header file - * @version V5.1.0 - * @date 09. October 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __CMSIS_COMPILER_H -#define __CMSIS_COMPILER_H - -#include - -/* - * Arm Compiler 4/5 - */ -#if defined ( __CC_ARM ) - #include "cmsis_armcc.h" - - -/* - * Arm Compiler 6.6 LTM (armclang) - */ -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) && (__ARMCC_VERSION < 6100100) - #include "cmsis_armclang_ltm.h" - - /* - * Arm Compiler above 6.10.1 (armclang) - */ -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100) - #include "cmsis_armclang.h" - - -/* - * GNU Compiler - */ -#elif defined ( __GNUC__ ) - #include "cmsis_gcc.h" - - -/* - * IAR Compiler - */ -#elif defined ( __ICCARM__ ) - #include - - -/* - * TI Arm Compiler - */ -#elif defined ( __TI_ARM__ ) - #include - - #ifndef __ASM - #define __ASM __asm - #endif - #ifndef __INLINE - #define __INLINE inline - #endif - #ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline - #endif - #ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __STATIC_INLINE - #endif - #ifndef __NO_RETURN - #define __NO_RETURN __attribute__((noreturn)) - #endif - #ifndef __USED - #define __USED __attribute__((used)) - #endif - #ifndef __WEAK - #define __WEAK __attribute__((weak)) - #endif - #ifndef __PACKED - #define __PACKED __attribute__((packed)) - #endif - #ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __attribute__((packed)) - #endif - #ifndef __PACKED_UNION - #define __PACKED_UNION union __attribute__((packed)) - #endif - #ifndef __UNALIGNED_UINT32 /* deprecated */ - struct __attribute__((packed)) T_UINT32 { uint32_t v; }; - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) - #endif - #ifndef __UNALIGNED_UINT16_WRITE - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT16_READ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) - #endif - #ifndef __UNALIGNED_UINT32_WRITE - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT32_READ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) - #endif - #ifndef __ALIGNED - #define __ALIGNED(x) __attribute__((aligned(x))) - #endif - #ifndef __RESTRICT - #define __RESTRICT __restrict - #endif - #ifndef __COMPILER_BARRIER - #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. - #define __COMPILER_BARRIER() (void)0 - #endif - - -/* - * TASKING Compiler - */ -#elif defined ( __TASKING__ ) - /* - * The CMSIS functions have been implemented as intrinsics in the compiler. - * Please use "carm -?i" to get an up to date list of all intrinsics, - * Including the CMSIS ones. - */ - - #ifndef __ASM - #define __ASM __asm - #endif - #ifndef __INLINE - #define __INLINE inline - #endif - #ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline - #endif - #ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __STATIC_INLINE - #endif - #ifndef __NO_RETURN - #define __NO_RETURN __attribute__((noreturn)) - #endif - #ifndef __USED - #define __USED __attribute__((used)) - #endif - #ifndef __WEAK - #define __WEAK __attribute__((weak)) - #endif - #ifndef __PACKED - #define __PACKED __packed__ - #endif - #ifndef __PACKED_STRUCT - #define __PACKED_STRUCT struct __packed__ - #endif - #ifndef __PACKED_UNION - #define __PACKED_UNION union __packed__ - #endif - #ifndef __UNALIGNED_UINT32 /* deprecated */ - struct __packed__ T_UINT32 { uint32_t v; }; - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) - #endif - #ifndef __UNALIGNED_UINT16_WRITE - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT16_READ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) - #endif - #ifndef __UNALIGNED_UINT32_WRITE - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT32_READ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) - #endif - #ifndef __ALIGNED - #define __ALIGNED(x) __align(x) - #endif - #ifndef __RESTRICT - #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. - #define __RESTRICT - #endif - #ifndef __COMPILER_BARRIER - #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. - #define __COMPILER_BARRIER() (void)0 - #endif - - -/* - * COSMIC Compiler - */ -#elif defined ( __CSMC__ ) - #include - - #ifndef __ASM - #define __ASM _asm - #endif - #ifndef __INLINE - #define __INLINE inline - #endif - #ifndef __STATIC_INLINE - #define __STATIC_INLINE static inline - #endif - #ifndef __STATIC_FORCEINLINE - #define __STATIC_FORCEINLINE __STATIC_INLINE - #endif - #ifndef __NO_RETURN - // NO RETURN is automatically detected hence no warning here - #define __NO_RETURN - #endif - #ifndef __USED - #warning No compiler specific solution for __USED. __USED is ignored. - #define __USED - #endif - #ifndef __WEAK - #define __WEAK __weak - #endif - #ifndef __PACKED - #define __PACKED @packed - #endif - #ifndef __PACKED_STRUCT - #define __PACKED_STRUCT @packed struct - #endif - #ifndef __PACKED_UNION - #define __PACKED_UNION @packed union - #endif - #ifndef __UNALIGNED_UINT32 /* deprecated */ - @packed struct T_UINT32 { uint32_t v; }; - #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) - #endif - #ifndef __UNALIGNED_UINT16_WRITE - __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; - #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT16_READ - __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; - #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) - #endif - #ifndef __UNALIGNED_UINT32_WRITE - __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; - #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) - #endif - #ifndef __UNALIGNED_UINT32_READ - __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; - #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) - #endif - #ifndef __ALIGNED - #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. - #define __ALIGNED(x) - #endif - #ifndef __RESTRICT - #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. - #define __RESTRICT - #endif - #ifndef __COMPILER_BARRIER - #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. - #define __COMPILER_BARRIER() (void)0 - #endif - - -#else - #error Unknown compiler. -#endif - - -#endif /* __CMSIS_COMPILER_H */ - +/**************************************************************************//** + * @file cmsis_compiler.h + * @brief CMSIS compiler generic header file + * @version V5.1.0 + * @date 09. October 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_COMPILER_H +#define __CMSIS_COMPILER_H + +#include + +/* + * Arm Compiler 4/5 + */ +#if defined ( __CC_ARM ) + #include "cmsis_armcc.h" + + +/* + * Arm Compiler 6.6 LTM (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) && (__ARMCC_VERSION < 6100100) + #include "cmsis_armclang_ltm.h" + + /* + * Arm Compiler above 6.10.1 (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100) + #include "cmsis_armclang.h" + + +/* + * GNU Compiler + */ +#elif defined ( __GNUC__ ) + #include "cmsis_gcc.h" + + +/* + * IAR Compiler + */ +#elif defined ( __ICCARM__ ) + #include + + +/* + * TI Arm Compiler + */ +#elif defined ( __TI_ARM__ ) + #include + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __attribute__((packed)) + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed)) + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed)) + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) + #endif + #ifndef __RESTRICT + #define __RESTRICT __restrict + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +/* + * TASKING Compiler + */ +#elif defined ( __TASKING__ ) + /* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __packed__ + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __packed__ + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __packed__ + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __packed__ T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __align(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +/* + * COSMIC Compiler + */ +#elif defined ( __CSMC__ ) + #include + + #ifndef __ASM + #define __ASM _asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + // NO RETURN is automatically detected hence no warning here + #define __NO_RETURN + #endif + #ifndef __USED + #warning No compiler specific solution for __USED. __USED is ignored. + #define __USED + #endif + #ifndef __WEAK + #define __WEAK __weak + #endif + #ifndef __PACKED + #define __PACKED @packed + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT @packed struct + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION @packed union + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + @packed struct T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. + #define __ALIGNED(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +#else + #error Unknown compiler. +#endif + + +#endif /* __CMSIS_COMPILER_H */ + diff --git a/obc/firmware/bsp/cmsis/Include/cmsis_gcc.h b/obc/v1/firmware/bsp/cmsis/Include/cmsis_gcc.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/cmsis_gcc.h rename to obc/v1/firmware/bsp/cmsis/Include/cmsis_gcc.h diff --git a/obc/firmware/bsp/cmsis/Include/cmsis_iccarm.h b/obc/v1/firmware/bsp/cmsis/Include/cmsis_iccarm.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/cmsis_iccarm.h rename to obc/v1/firmware/bsp/cmsis/Include/cmsis_iccarm.h diff --git a/obc/firmware/bsp/cmsis/Include/cmsis_version.h b/obc/v1/firmware/bsp/cmsis/Include/cmsis_version.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/cmsis_version.h rename to obc/v1/firmware/bsp/cmsis/Include/cmsis_version.h diff --git a/obc/firmware/bsp/cmsis/Include/core_armv81mml.h b/obc/v1/firmware/bsp/cmsis/Include/core_armv81mml.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_armv81mml.h rename to obc/v1/firmware/bsp/cmsis/Include/core_armv81mml.h diff --git a/obc/firmware/bsp/cmsis/Include/core_armv8mbl.h b/obc/v1/firmware/bsp/cmsis/Include/core_armv8mbl.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_armv8mbl.h rename to obc/v1/firmware/bsp/cmsis/Include/core_armv8mbl.h diff --git a/obc/firmware/bsp/cmsis/Include/core_armv8mml.h b/obc/v1/firmware/bsp/cmsis/Include/core_armv8mml.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_armv8mml.h rename to obc/v1/firmware/bsp/cmsis/Include/core_armv8mml.h diff --git a/obc/firmware/bsp/cmsis/Include/core_cm0.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm0.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm0.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm0.h diff --git a/obc/firmware/bsp/cmsis/Include/core_cm0plus.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm0plus.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm0plus.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm0plus.h diff --git a/eps/firmware/bsp/cmsis/Include/core_cm1.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm1.h similarity index 97% rename from eps/firmware/bsp/cmsis/Include/core_cm1.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm1.h index 44c2a49..76b4569 100644 --- a/eps/firmware/bsp/cmsis/Include/core_cm1.h +++ b/obc/v1/firmware/bsp/cmsis/Include/core_cm1.h @@ -1,979 +1,979 @@ -/**************************************************************************//** - * @file core_cm1.h - * @brief CMSIS Cortex-M1 Core Peripheral Access Layer Header File - * @version V1.0.1 - * @date 12. November 2018 - ******************************************************************************/ -/* - * Copyright (c) 2009-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef __CORE_CM1_H_GENERIC -#define __CORE_CM1_H_GENERIC - -#include - -#ifdef __cplusplus - extern "C" { -#endif - -/** - \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions - CMSIS violates the following MISRA-C:2004 rules: - - \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'. - - \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers. - - \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code. - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** - \ingroup Cortex_M1 - @{ - */ - -#include "cmsis_version.h" - -/* CMSIS CM1 definitions */ -#define __CM1_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ -#define __CM1_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ -#define __CM1_CMSIS_VERSION ((__CM1_CMSIS_VERSION_MAIN << 16U) | \ - __CM1_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ - -#define __CORTEX_M (1U) /*!< Cortex-M Core */ - -/** __FPU_USED indicates whether an FPU is used or not. - This core does not support an FPU at all -*/ -#define __FPU_USED 0U - -#if defined ( __CC_ARM ) - #if defined __TARGET_FPU_VFP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) - #if defined __ARM_FP - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __GNUC__ ) - #if defined (__VFP_FP__) && !defined(__SOFTFP__) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __ICCARM__ ) - #if defined __ARMVFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TI_ARM__ ) - #if defined __TI_VFP_SUPPORT__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __TASKING__ ) - #if defined __FPU_VFP__ - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#elif defined ( __CSMC__ ) - #if ( __CSMC__ & 0x400U) - #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" - #endif - -#endif - -#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM1_H_GENERIC */ - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM1_H_DEPENDANT -#define __CORE_CM1_H_DEPENDANT - -#ifdef __cplusplus - extern "C" { -#endif - -/* check device defines and use defaults */ -#if defined __CHECK_DEVICE_DEFINES - #ifndef __CM1_REV - #define __CM1_REV 0x0100U - #warning "__CM1_REV not defined in device header file; using default!" - #endif - - #ifndef __NVIC_PRIO_BITS - #define __NVIC_PRIO_BITS 2U - #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" - #endif - - #ifndef __Vendor_SysTickConfig - #define __Vendor_SysTickConfig 0U - #warning "__Vendor_SysTickConfig not defined in device header file; using default!" - #endif -#endif - -/* IO definitions (access restrictions to peripheral registers) */ -/** - \defgroup CMSIS_glob_defs CMSIS Global Defines - - IO Type Qualifiers are used - \li to specify the access to peripheral variables. - \li for automatic generation of peripheral register debug information. -*/ -#ifdef __cplusplus - #define __I volatile /*!< Defines 'read only' permissions */ -#else - #define __I volatile const /*!< Defines 'read only' permissions */ -#endif -#define __O volatile /*!< Defines 'write only' permissions */ -#define __IO volatile /*!< Defines 'read / write' permissions */ - -/* following defines should be used for structure members */ -#define __IM volatile const /*! Defines 'read only' structure member permissions */ -#define __OM volatile /*! Defines 'write only' structure member permissions */ -#define __IOM volatile /*! Defines 'read / write' structure member permissions */ - -/*@} end of group Cortex_M1 */ - - - -/******************************************************************************* - * Register Abstraction - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - ******************************************************************************/ -/** - \defgroup CMSIS_core_register Defines and Type Definitions - \brief Type definitions and defines for Cortex-M processor based devices. -*/ - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CORE Status and Control Registers - \brief Core Register type definitions. - @{ - */ - -/** - \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { - uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - -/* APSR Register Definitions */ -#define APSR_N_Pos 31U /*!< APSR: N Position */ -#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ - -#define APSR_Z_Pos 30U /*!< APSR: Z Position */ -#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ - -#define APSR_C_Pos 29U /*!< APSR: C Position */ -#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ - -#define APSR_V_Pos 28U /*!< APSR: V Position */ -#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ - - -/** - \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - -/* IPSR Register Definitions */ -#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ -#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ - - -/** - \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - -/* xPSR Register Definitions */ -#define xPSR_N_Pos 31U /*!< xPSR: N Position */ -#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ - -#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ -#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ - -#define xPSR_C_Pos 29U /*!< xPSR: C Position */ -#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ - -#define xPSR_V_Pos 28U /*!< xPSR: V Position */ -#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ - -#define xPSR_T_Pos 24U /*!< xPSR: T Position */ -#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ - -#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ -#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ - - -/** - \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t _reserved0:1; /*!< bit: 0 Reserved */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/* CONTROL Register Definitions */ -#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ -#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ - -/*@} end of group CMSIS_CORE */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) - \brief Type definitions for the NVIC Registers - @{ - */ - -/** - \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[31U]; - __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[31U]; - __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[31U]; - __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[31U]; - uint32_t RESERVED4[64U]; - __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCB System Control Block (SCB) - \brief Type definitions for the System Control Block Registers - @{ - */ - -/** - \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ - __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ - uint32_t RESERVED0; - __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ - __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - uint32_t RESERVED1; - __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ - __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ -#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ - -#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) - \brief Type definitions for the System Control and ID Register not in the SCB - @{ - */ - -/** - \brief Structure type to access the System Control and ID Register not in the SCB. - */ -typedef struct -{ - uint32_t RESERVED0[2U]; - __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -} SCnSCB_Type; - -/* Auxiliary Control Register Definitions */ -#define SCnSCB_ACTLR_ITCMUAEN_Pos 4U /*!< ACTLR: Instruction TCM Upper Alias Enable Position */ -#define SCnSCB_ACTLR_ITCMUAEN_Msk (1UL << SCnSCB_ACTLR_ITCMUAEN_Pos) /*!< ACTLR: Instruction TCM Upper Alias Enable Mask */ - -#define SCnSCB_ACTLR_ITCMLAEN_Pos 3U /*!< ACTLR: Instruction TCM Lower Alias Enable Position */ -#define SCnSCB_ACTLR_ITCMLAEN_Msk (1UL << SCnSCB_ACTLR_ITCMLAEN_Pos) /*!< ACTLR: Instruction TCM Lower Alias Enable Mask */ - -/*@} end of group CMSIS_SCnotSCB */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick System Tick Timer (SysTick) - \brief Type definitions for the System Timer Registers. - @{ - */ - -/** - \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) - \brief Cortex-M1 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. - Therefore they are not covered by the Cortex-M1 header file. - @{ - */ -/*@} end of group CMSIS_CoreDebug */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_bitfield Core register bit field macros - \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). - @{ - */ - -/** - \brief Mask and shift a bit field value for use in a register bit range. - \param[in] field Name of the register bit field. - \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. - \return Masked and shifted value. -*/ -#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) - -/** - \brief Mask and shift a register value to extract a bit filed value. - \param[in] field Name of the register bit field. - \param[in] value Value of register. This parameter is interpreted as an uint32_t type. - \return Masked and shifted bit field value. -*/ -#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) - -/*@} end of group CMSIS_core_bitfield */ - - -/** - \ingroup CMSIS_core_register - \defgroup CMSIS_core_base Core Definitions - \brief Definitions for base addresses, unions, and structures. - @{ - */ - -/* Memory mapping of Core Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ -#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ - - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Register Access Functions - ******************************************************************************/ -/** - \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference -*/ - - - -/* ########################## NVIC functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions NVIC Functions - \brief Functions that manage interrupts and exceptions via the NVIC. - @{ - */ - -#ifdef CMSIS_NVIC_VIRTUAL - #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE - #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" - #endif - #include CMSIS_NVIC_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping - #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping - #define NVIC_EnableIRQ __NVIC_EnableIRQ - #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ - #define NVIC_DisableIRQ __NVIC_DisableIRQ - #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ - #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ - #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ -/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M1 */ - #define NVIC_SetPriority __NVIC_SetPriority - #define NVIC_GetPriority __NVIC_GetPriority - #define NVIC_SystemReset __NVIC_SystemReset -#endif /* CMSIS_NVIC_VIRTUAL */ - -#ifdef CMSIS_VECTAB_VIRTUAL - #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE - #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" - #endif - #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE -#else - #define NVIC_SetVector __NVIC_SetVector - #define NVIC_GetVector __NVIC_GetVector -#endif /* (CMSIS_VECTAB_VIRTUAL) */ - -#define NVIC_USER_IRQ_OFFSET 16 - - -/* The following EXC_RETURN values are saved the LR on exception entry */ -#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ -#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ -#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ - - -/* Interrupt Priorities are WORD accessible only under Armv6-M */ -/* The following MACROS handle generation of the register offset and byte masks */ -#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) -#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) -#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) - -#define __NVIC_SetPriorityGrouping(X) (void)(X) -#define __NVIC_GetPriorityGrouping() (0U) - -/** - \brief Enable Interrupt - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - __COMPILER_BARRIER(); - NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __COMPILER_BARRIER(); - } -} - - -/** - \brief Get Interrupt Enable status - \details Returns a device specific interrupt enable status from the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt is not enabled. - \return 1 Interrupt is enabled. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Disable Interrupt - \details Disables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - __DSB(); - __ISB(); - } -} - - -/** - \brief Get Pending Interrupt - \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. - \param [in] IRQn Device specific interrupt number. - \return 0 Interrupt status is not pending. - \return 1 Interrupt status is pending. - \note IRQn must not be negative. - */ -__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); - } - else - { - return(0U); - } -} - - -/** - \brief Set Pending Interrupt - \details Sets the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Clear Pending Interrupt - \details Clears the pending bit of a device specific interrupt in the NVIC pending register. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - } -} - - -/** - \brief Set Interrupt Priority - \details Sets the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } - else - { - SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | - (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); - } -} - - -/** - \brief Get Interrupt Priority - \details Reads the priority of a device specific interrupt or a processor exception. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Interrupt Priority. - Value is aligned automatically to the implemented priority bits of the microcontroller. - */ -__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) -{ - - if ((int32_t)(IRQn) >= 0) - { - return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } - else - { - return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); - } -} - - -/** - \brief Encode Priority - \details Encodes the priority for an interrupt with the given priority group, - preemptive priority value, and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Used priority group. - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - ); -} - - -/** - \brief Decode Priority - \details Decodes an interrupt priority value with a given priority group to - preemptive priority value and subpriority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). - \param [in] PriorityGroup Used priority group. - \param [out] pPreemptPriority Preemptive priority value (starting from 0). - \param [out] pSubPriority Subpriority value (starting from 0). - */ -__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - - *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); - *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); -} - - - -/** - \brief Set Interrupt Vector - \details Sets an interrupt vector in SRAM based interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - Address 0 must be mapped to SRAM. - \param [in] IRQn Interrupt number - \param [in] vector Address of interrupt handler function - */ -__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) -{ - uint32_t *vectors = (uint32_t *)0x0U; - vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; - /* ARM Application Note 321 states that the M1 does not require the architectural barrier */ -} - - -/** - \brief Get Interrupt Vector - \details Reads an interrupt vector from interrupt vector table. - The interrupt number can be positive to specify a device specific interrupt, - or negative to specify a processor exception. - \param [in] IRQn Interrupt number. - \return Address of interrupt handler function - */ -__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) -{ - uint32_t *vectors = (uint32_t *)0x0U; - return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; -} - - -/** - \brief System Reset - \details Initiates a system reset request to reset the MCU. - */ -__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - SCB_AIRCR_SYSRESETREQ_Msk); - __DSB(); /* Ensure completion of memory access */ - - for(;;) /* wait until reset */ - { - __NOP(); - } -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - -/* ########################## FPU functions #################################### */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_FpuFunctions FPU Functions - \brief Function that provides FPU type. - @{ - */ - -/** - \brief get FPU type - \details returns the FPU type - \returns - - \b 0: No FPU - - \b 1: Single precision FPU - - \b 2: Double + Single precision FPU - */ -__STATIC_INLINE uint32_t SCB_GetFPUType(void) -{ - return 0U; /* No FPU */ -} - - -/*@} end of CMSIS_Core_FpuFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** - \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions SysTick Functions - \brief Functions that configure the System. - @{ - */ - -#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) - -/** - \brief System Tick Configuration - \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. - Counter is in free running mode to generate periodic interrupts. - \param [in] ticks Number of ticks between two interrupts. - \return 0 Function succeeded. - \return 1 Function failed. - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - { - return (1UL); /* Reload value impossible */ - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - - -#ifdef __cplusplus -} -#endif - -#endif /* __CORE_CM1_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ +/**************************************************************************//** + * @file core_cm1.h + * @brief CMSIS Cortex-M1 Core Peripheral Access Layer Header File + * @version V1.0.1 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM1_H_GENERIC +#define __CORE_CM1_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M1 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM1 definitions */ +#define __CM1_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM1_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM1_CMSIS_VERSION ((__CM1_CMSIS_VERSION_MAIN << 16U) | \ + __CM1_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (1U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM1_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM1_H_DEPENDANT +#define __CORE_CM1_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM1_REV + #define __CM1_REV 0x0100U + #warning "__CM1_REV not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M1 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + uint32_t RESERVED0; + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_ITCMUAEN_Pos 4U /*!< ACTLR: Instruction TCM Upper Alias Enable Position */ +#define SCnSCB_ACTLR_ITCMUAEN_Msk (1UL << SCnSCB_ACTLR_ITCMUAEN_Pos) /*!< ACTLR: Instruction TCM Upper Alias Enable Mask */ + +#define SCnSCB_ACTLR_ITCMLAEN_Pos 3U /*!< ACTLR: Instruction TCM Lower Alias Enable Position */ +#define SCnSCB_ACTLR_ITCMLAEN_Msk (1UL << SCnSCB_ACTLR_ITCMLAEN_Pos) /*!< ACTLR: Instruction TCM Lower Alias Enable Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M1 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M1 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M1 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + Address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)0x0U; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + /* ARM Application Note 321 states that the M1 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)0x0U; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM1_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/obc/firmware/bsp/cmsis/Include/core_cm23.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm23.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm23.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm23.h diff --git a/obc/firmware/bsp/cmsis/Include/core_cm3.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm3.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm3.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm3.h diff --git a/obc/firmware/bsp/cmsis/Include/core_cm33.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm33.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm33.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm33.h diff --git a/obc/firmware/bsp/cmsis/Include/core_cm35p.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm35p.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm35p.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm35p.h diff --git a/obc/firmware/bsp/cmsis/Include/core_cm4.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm4.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm4.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm4.h diff --git a/obc/firmware/bsp/cmsis/Include/core_cm55.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm55.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm55.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm55.h diff --git a/obc/firmware/bsp/cmsis/Include/core_cm7.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm7.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm7.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm7.h diff --git a/obc/firmware/bsp/cmsis/Include/core_cm85.h b/obc/v1/firmware/bsp/cmsis/Include/core_cm85.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_cm85.h rename to obc/v1/firmware/bsp/cmsis/Include/core_cm85.h diff --git a/obc/firmware/bsp/cmsis/Include/core_sc000.h b/obc/v1/firmware/bsp/cmsis/Include/core_sc000.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_sc000.h rename to obc/v1/firmware/bsp/cmsis/Include/core_sc000.h diff --git a/obc/firmware/bsp/cmsis/Include/core_sc300.h b/obc/v1/firmware/bsp/cmsis/Include/core_sc300.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_sc300.h rename to obc/v1/firmware/bsp/cmsis/Include/core_sc300.h diff --git a/obc/firmware/bsp/cmsis/Include/core_starmc1.h b/obc/v1/firmware/bsp/cmsis/Include/core_starmc1.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/core_starmc1.h rename to obc/v1/firmware/bsp/cmsis/Include/core_starmc1.h diff --git a/obc/firmware/bsp/cmsis/Include/mpu_armv7.h b/obc/v1/firmware/bsp/cmsis/Include/mpu_armv7.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/mpu_armv7.h rename to obc/v1/firmware/bsp/cmsis/Include/mpu_armv7.h diff --git a/obc/firmware/bsp/cmsis/Include/mpu_armv8.h b/obc/v1/firmware/bsp/cmsis/Include/mpu_armv8.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/mpu_armv8.h rename to obc/v1/firmware/bsp/cmsis/Include/mpu_armv8.h diff --git a/obc/firmware/bsp/cmsis/Include/pac_armv81.h b/obc/v1/firmware/bsp/cmsis/Include/pac_armv81.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/pac_armv81.h rename to obc/v1/firmware/bsp/cmsis/Include/pac_armv81.h diff --git a/obc/firmware/bsp/cmsis/Include/pmu_armv8.h b/obc/v1/firmware/bsp/cmsis/Include/pmu_armv8.h similarity index 100% rename from obc/firmware/bsp/cmsis/Include/pmu_armv8.h rename to obc/v1/firmware/bsp/cmsis/Include/pmu_armv8.h diff --git a/eps/firmware/bsp/cmsis/Include/tz_context.h b/obc/v1/firmware/bsp/cmsis/Include/tz_context.h similarity index 97% rename from eps/firmware/bsp/cmsis/Include/tz_context.h rename to obc/v1/firmware/bsp/cmsis/Include/tz_context.h index d4c1474..0d09749 100644 --- a/eps/firmware/bsp/cmsis/Include/tz_context.h +++ b/obc/v1/firmware/bsp/cmsis/Include/tz_context.h @@ -1,70 +1,70 @@ -/****************************************************************************** - * @file tz_context.h - * @brief Context Management for Armv8-M TrustZone - * @version V1.0.1 - * @date 10. January 2018 - ******************************************************************************/ -/* - * Copyright (c) 2017-2018 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#elif defined (__clang__) - #pragma clang system_header /* treat file as system include file */ -#endif - -#ifndef TZ_CONTEXT_H -#define TZ_CONTEXT_H - -#include - -#ifndef TZ_MODULEID_T -#define TZ_MODULEID_T -/// \details Data type that identifies secure software modules called by a process. -typedef uint32_t TZ_ModuleId_t; -#endif - -/// \details TZ Memory ID identifies an allocated memory slot. -typedef uint32_t TZ_MemoryId_t; - -/// Initialize secure context memory system -/// \return execution status (1: success, 0: error) -uint32_t TZ_InitContextSystem_S (void); - -/// Allocate context memory for calling secure software modules in TrustZone -/// \param[in] module identifies software modules called from non-secure mode -/// \return value != 0 id TrustZone memory slot identifier -/// \return value 0 no memory available or internal error -TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module); - -/// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S -/// \param[in] id TrustZone memory slot identifier -/// \return execution status (1: success, 0: error) -uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id); - -/// Load secure context (called on RTOS thread context switch) -/// \param[in] id TrustZone memory slot identifier -/// \return execution status (1: success, 0: error) -uint32_t TZ_LoadContext_S (TZ_MemoryId_t id); - -/// Store secure context (called on RTOS thread context switch) -/// \param[in] id TrustZone memory slot identifier -/// \return execution status (1: success, 0: error) -uint32_t TZ_StoreContext_S (TZ_MemoryId_t id); - -#endif // TZ_CONTEXT_H +/****************************************************************************** + * @file tz_context.h + * @brief Context Management for Armv8-M TrustZone + * @version V1.0.1 + * @date 10. January 2018 + ******************************************************************************/ +/* + * Copyright (c) 2017-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef TZ_CONTEXT_H +#define TZ_CONTEXT_H + +#include + +#ifndef TZ_MODULEID_T +#define TZ_MODULEID_T +/// \details Data type that identifies secure software modules called by a process. +typedef uint32_t TZ_ModuleId_t; +#endif + +/// \details TZ Memory ID identifies an allocated memory slot. +typedef uint32_t TZ_MemoryId_t; + +/// Initialize secure context memory system +/// \return execution status (1: success, 0: error) +uint32_t TZ_InitContextSystem_S (void); + +/// Allocate context memory for calling secure software modules in TrustZone +/// \param[in] module identifies software modules called from non-secure mode +/// \return value != 0 id TrustZone memory slot identifier +/// \return value 0 no memory available or internal error +TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module); + +/// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S +/// \param[in] id TrustZone memory slot identifier +/// \return execution status (1: success, 0: error) +uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id); + +/// Load secure context (called on RTOS thread context switch) +/// \param[in] id TrustZone memory slot identifier +/// \return execution status (1: success, 0: error) +uint32_t TZ_LoadContext_S (TZ_MemoryId_t id); + +/// Store secure context (called on RTOS thread context switch) +/// \param[in] id TrustZone memory slot identifier +/// \return execution status (1: success, 0: error) +uint32_t TZ_StoreContext_S (TZ_MemoryId_t id); + +#endif // TZ_CONTEXT_H diff --git a/obc/firmware/bsp/hal_driver/Inc/Legacy/stm32_hal_legacy.h b/obc/v1/firmware/bsp/hal_driver/Inc/Legacy/stm32_hal_legacy.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/Legacy/stm32_hal_legacy.h rename to obc/v1/firmware/bsp/hal_driver/Inc/Legacy/stm32_hal_legacy.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_cortex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_cortex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_cortex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_cortex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_def.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_def.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_def.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_def.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_dma.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_dma.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_dma.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_dma.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_dma_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_dma_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_dma_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_dma_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_exti.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_exti.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_exti.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_exti.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_fdcan.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_fdcan.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_fdcan.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_fdcan.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_flash.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_flash.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_flash.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_flash.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_flash_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_flash_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_flash_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_flash_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_gpio.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_gpio.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_gpio.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_gpio.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_gpio_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_gpio_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_gpio_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_gpio_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_hsem.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_hsem.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_hsem.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_hsem.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_i2c.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_i2c.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_i2c.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_i2c.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_i2c_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_i2c_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_i2c_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_i2c_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mdma.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mdma.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mdma.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mdma.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mmc.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mmc.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mmc.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mmc.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mmc_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mmc_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mmc_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_mmc_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pcd.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pcd.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pcd.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pcd.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pcd_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pcd_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pcd_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pcd_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pwr.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pwr.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pwr.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pwr.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pwr_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pwr_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pwr_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_pwr_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_rcc.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_rcc.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_rcc.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_rcc.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_rcc_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_rcc_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_rcc_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_rcc_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_sd.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_sd.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_sd.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_sd.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_sd_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_sd_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_sd_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_sd_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_spi.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_spi.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_spi.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_spi.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_spi_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_spi_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_spi_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_spi_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_tim.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_tim.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_tim.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_tim.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_tim_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_tim_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_tim_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_tim_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_uart.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_uart.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_uart.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_uart.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_uart_ex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_uart_ex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_uart_ex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_hal_uart_ex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_bus.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_bus.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_bus.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_bus.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_cortex.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_cortex.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_cortex.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_cortex.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_crs.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_crs.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_crs.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_crs.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_delayblock.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_delayblock.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_delayblock.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_delayblock.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_dma.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_dma.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_dma.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_dma.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_dmamux.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_dmamux.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_dmamux.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_dmamux.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_exti.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_exti.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_exti.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_exti.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_gpio.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_gpio.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_gpio.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_gpio.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_hsem.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_hsem.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_hsem.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_hsem.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_i2c.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_i2c.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_i2c.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_i2c.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_lpuart.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_lpuart.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_lpuart.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_lpuart.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_pwr.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_pwr.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_pwr.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_pwr.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_rcc.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_rcc.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_rcc.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_rcc.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_sdmmc.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_sdmmc.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_sdmmc.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_sdmmc.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_spi.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_spi.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_spi.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_spi.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_system.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_system.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_system.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_system.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_usart.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_usart.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_usart.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_usart.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_usb.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_usb.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_usb.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_usb.h diff --git a/obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_utils.h b/obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_utils.h similarity index 100% rename from obc/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_utils.h rename to obc/v1/firmware/bsp/hal_driver/Inc/stm32h7xx_ll_utils.h diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_cortex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_cortex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_cortex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_cortex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_dma.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_dma.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_dma.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_dma.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_dma_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_dma_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_dma_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_dma_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_exti.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_exti.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_exti.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_exti.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_fdcan.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_fdcan.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_fdcan.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_fdcan.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_flash.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_flash.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_flash.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_flash.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_flash_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_flash_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_flash_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_flash_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_gpio.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_gpio.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_gpio.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_gpio.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_hsem.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_hsem.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_hsem.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_hsem.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_i2c.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_i2c.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_i2c.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_i2c.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_i2c_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_i2c_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_i2c_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_i2c_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mdma.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mdma.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mdma.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mdma.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mmc.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mmc.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mmc.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mmc.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mmc_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mmc_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mmc_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_mmc_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pcd.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pcd.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pcd.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pcd.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pcd_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pcd_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pcd_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pcd_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pwr.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pwr.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pwr.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pwr.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pwr_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pwr_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pwr_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_pwr_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_rcc.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_rcc.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_rcc.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_rcc.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_rcc_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_rcc_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_rcc_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_rcc_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_sd.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_sd.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_sd.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_sd.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_sd_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_sd_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_sd_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_sd_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_spi.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_spi.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_spi.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_spi.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_spi_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_spi_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_spi_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_spi_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_tim.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_tim.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_tim.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_tim.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_tim_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_tim_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_tim_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_tim_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_uart.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_uart.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_uart.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_uart.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_uart_ex.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_uart_ex.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_hal_uart_ex.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_hal_uart_ex.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_ll_delayblock.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_ll_delayblock.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_ll_delayblock.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_ll_delayblock.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_ll_sdmmc.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_ll_sdmmc.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_ll_sdmmc.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_ll_sdmmc.c diff --git a/obc/firmware/bsp/hal_driver/Src/stm32h7xx_ll_usb.c b/obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_ll_usb.c similarity index 100% rename from obc/firmware/bsp/hal_driver/Src/stm32h7xx_ll_usb.c rename to obc/v1/firmware/bsp/hal_driver/Src/stm32h7xx_ll_usb.c diff --git a/obc/firmware/bsp/mcu/Inc/main.h b/obc/v1/firmware/bsp/mcu/Inc/main.h similarity index 100% rename from obc/firmware/bsp/mcu/Inc/main.h rename to obc/v1/firmware/bsp/mcu/Inc/main.h diff --git a/obc/firmware/bsp/mcu/Inc/peripherals.h b/obc/v1/firmware/bsp/mcu/Inc/peripherals.h similarity index 100% rename from obc/firmware/bsp/mcu/Inc/peripherals.h rename to obc/v1/firmware/bsp/mcu/Inc/peripherals.h diff --git a/obc/firmware/bsp/mcu/Inc/stm32h7xx_hal_conf.h b/obc/v1/firmware/bsp/mcu/Inc/stm32h7xx_hal_conf.h similarity index 100% rename from obc/firmware/bsp/mcu/Inc/stm32h7xx_hal_conf.h rename to obc/v1/firmware/bsp/mcu/Inc/stm32h7xx_hal_conf.h diff --git a/obc/firmware/bsp/mcu/Inc/stm32h7xx_it.h b/obc/v1/firmware/bsp/mcu/Inc/stm32h7xx_it.h similarity index 100% rename from obc/firmware/bsp/mcu/Inc/stm32h7xx_it.h rename to obc/v1/firmware/bsp/mcu/Inc/stm32h7xx_it.h diff --git a/obc/firmware/bsp/mcu/Src/peripherals.c b/obc/v1/firmware/bsp/mcu/Src/peripherals.c similarity index 100% rename from obc/firmware/bsp/mcu/Src/peripherals.c rename to obc/v1/firmware/bsp/mcu/Src/peripherals.c diff --git a/obc/firmware/bsp/mcu/Src/stm32h7xx_hal_msp.c b/obc/v1/firmware/bsp/mcu/Src/stm32h7xx_hal_msp.c similarity index 100% rename from obc/firmware/bsp/mcu/Src/stm32h7xx_hal_msp.c rename to obc/v1/firmware/bsp/mcu/Src/stm32h7xx_hal_msp.c diff --git a/obc/firmware/bsp/mcu/Src/stm32h7xx_it.c b/obc/v1/firmware/bsp/mcu/Src/stm32h7xx_it.c similarity index 100% rename from obc/firmware/bsp/mcu/Src/stm32h7xx_it.c rename to obc/v1/firmware/bsp/mcu/Src/stm32h7xx_it.c diff --git a/obc/firmware/bsp/mcu/Src/syscalls.c b/obc/v1/firmware/bsp/mcu/Src/syscalls.c similarity index 100% rename from obc/firmware/bsp/mcu/Src/syscalls.c rename to obc/v1/firmware/bsp/mcu/Src/syscalls.c diff --git a/obc/firmware/bsp/mcu/Src/sysmem.c b/obc/v1/firmware/bsp/mcu/Src/sysmem.c similarity index 100% rename from obc/firmware/bsp/mcu/Src/sysmem.c rename to obc/v1/firmware/bsp/mcu/Src/sysmem.c diff --git a/obc/firmware/bsp/startup/STM32H743XG_FLASH.ld b/obc/v1/firmware/bsp/startup/STM32H743XG_FLASH.ld similarity index 100% rename from obc/firmware/bsp/startup/STM32H743XG_FLASH.ld rename to obc/v1/firmware/bsp/startup/STM32H743XG_FLASH.ld diff --git a/obc/firmware/bsp/startup/startup_stm32h743xx.s b/obc/v1/firmware/bsp/startup/startup_stm32h743xx.s similarity index 100% rename from obc/firmware/bsp/startup/startup_stm32h743xx.s rename to obc/v1/firmware/bsp/startup/startup_stm32h743xx.s diff --git a/obc/firmware/bsp/startup/system_stm32h7xx.c b/obc/v1/firmware/bsp/startup/system_stm32h7xx.c similarity index 100% rename from obc/firmware/bsp/startup/system_stm32h7xx.c rename to obc/v1/firmware/bsp/startup/system_stm32h7xx.c diff --git a/obc/firmware/bsp/system/clock.c b/obc/v1/firmware/bsp/system/clock.c similarity index 100% rename from obc/firmware/bsp/system/clock.c rename to obc/v1/firmware/bsp/system/clock.c diff --git a/obc/firmware/bsp/system/clock.h b/obc/v1/firmware/bsp/system/clock.h similarity index 100% rename from obc/firmware/bsp/system/clock.h rename to obc/v1/firmware/bsp/system/clock.h diff --git a/obc/firmware/bsp/system/dma.c b/obc/v1/firmware/bsp/system/dma.c similarity index 100% rename from obc/firmware/bsp/system/dma.c rename to obc/v1/firmware/bsp/system/dma.c diff --git a/obc/firmware/bsp/system/dma.h b/obc/v1/firmware/bsp/system/dma.h similarity index 100% rename from obc/firmware/bsp/system/dma.h rename to obc/v1/firmware/bsp/system/dma.h diff --git a/obc/firmware/bsp/system/error.c b/obc/v1/firmware/bsp/system/error.c similarity index 100% rename from obc/firmware/bsp/system/error.c rename to obc/v1/firmware/bsp/system/error.c diff --git a/obc/firmware/bsp/system/error.h b/obc/v1/firmware/bsp/system/error.h similarity index 100% rename from obc/firmware/bsp/system/error.h rename to obc/v1/firmware/bsp/system/error.h diff --git a/obc/firmware/config/obc_config.h b/obc/v1/firmware/config/obc_config.h similarity index 100% rename from obc/firmware/config/obc_config.h rename to obc/v1/firmware/config/obc_config.h diff --git a/obc/firmware/hal/hal_adc.c b/obc/v1/firmware/hal/hal_adc.c similarity index 100% rename from obc/firmware/hal/hal_adc.c rename to obc/v1/firmware/hal/hal_adc.c diff --git a/obc/firmware/hal/hal_adc.h b/obc/v1/firmware/hal/hal_adc.h similarity index 100% rename from obc/firmware/hal/hal_adc.h rename to obc/v1/firmware/hal/hal_adc.h diff --git a/obc/firmware/hal/hal_can.c b/obc/v1/firmware/hal/hal_can.c similarity index 100% rename from obc/firmware/hal/hal_can.c rename to obc/v1/firmware/hal/hal_can.c diff --git a/obc/firmware/hal/hal_can.h b/obc/v1/firmware/hal/hal_can.h similarity index 100% rename from obc/firmware/hal/hal_can.h rename to obc/v1/firmware/hal/hal_can.h diff --git a/obc/firmware/hal/hal_flash.c b/obc/v1/firmware/hal/hal_flash.c similarity index 100% rename from obc/firmware/hal/hal_flash.c rename to obc/v1/firmware/hal/hal_flash.c diff --git a/obc/firmware/hal/hal_flash.h b/obc/v1/firmware/hal/hal_flash.h similarity index 100% rename from obc/firmware/hal/hal_flash.h rename to obc/v1/firmware/hal/hal_flash.h diff --git a/obc/firmware/hal/hal_fram.c b/obc/v1/firmware/hal/hal_fram.c similarity index 100% rename from obc/firmware/hal/hal_fram.c rename to obc/v1/firmware/hal/hal_fram.c diff --git a/obc/firmware/hal/hal_fram.h b/obc/v1/firmware/hal/hal_fram.h similarity index 100% rename from obc/firmware/hal/hal_fram.h rename to obc/v1/firmware/hal/hal_fram.h diff --git a/obc/firmware/hal/hal_gpio.c b/obc/v1/firmware/hal/hal_gpio.c similarity index 100% rename from obc/firmware/hal/hal_gpio.c rename to obc/v1/firmware/hal/hal_gpio.c diff --git a/obc/firmware/hal/hal_gpio.h b/obc/v1/firmware/hal/hal_gpio.h similarity index 100% rename from obc/firmware/hal/hal_gpio.h rename to obc/v1/firmware/hal/hal_gpio.h diff --git a/obc/firmware/hal/hal_gpio_types.h b/obc/v1/firmware/hal/hal_gpio_types.h similarity index 100% rename from obc/firmware/hal/hal_gpio_types.h rename to obc/v1/firmware/hal/hal_gpio_types.h diff --git a/obc/firmware/hal/hal_i2c.c b/obc/v1/firmware/hal/hal_i2c.c similarity index 100% rename from obc/firmware/hal/hal_i2c.c rename to obc/v1/firmware/hal/hal_i2c.c diff --git a/obc/firmware/hal/hal_i2c.h b/obc/v1/firmware/hal/hal_i2c.h similarity index 100% rename from obc/firmware/hal/hal_i2c.h rename to obc/v1/firmware/hal/hal_i2c.h diff --git a/obc/firmware/hal/hal_time.c b/obc/v1/firmware/hal/hal_time.c similarity index 100% rename from obc/firmware/hal/hal_time.c rename to obc/v1/firmware/hal/hal_time.c diff --git a/obc/firmware/hal/hal_time.h b/obc/v1/firmware/hal/hal_time.h similarity index 100% rename from obc/firmware/hal/hal_time.h rename to obc/v1/firmware/hal/hal_time.h diff --git a/obc/firmware/hal/hal_uart.c b/obc/v1/firmware/hal/hal_uart.c similarity index 100% rename from obc/firmware/hal/hal_uart.c rename to obc/v1/firmware/hal/hal_uart.c diff --git a/obc/firmware/hal/hal_uart.h b/obc/v1/firmware/hal/hal_uart.h similarity index 100% rename from obc/firmware/hal/hal_uart.h rename to obc/v1/firmware/hal/hal_uart.h diff --git a/obc/v1/firmware/lib/core b/obc/v1/firmware/lib/core new file mode 120000 index 0000000..95fd664 --- /dev/null +++ b/obc/v1/firmware/lib/core @@ -0,0 +1 @@ +../../../../eps/v1/firmware/lib/core \ No newline at end of file diff --git a/obc/v1/firmware/lib/messaging b/obc/v1/firmware/lib/messaging new file mode 120000 index 0000000..f0e706f --- /dev/null +++ b/obc/v1/firmware/lib/messaging @@ -0,0 +1 @@ +../../../../eps/v1/firmware/lib/messaging \ No newline at end of file diff --git a/obc/firmware/main.c b/obc/v1/firmware/main.c similarity index 100% rename from obc/firmware/main.c rename to obc/v1/firmware/main.c diff --git a/obc/firmware/mocks/bsp/adc.h b/obc/v1/firmware/mocks/bsp/adc.h similarity index 100% rename from obc/firmware/mocks/bsp/adc.h rename to obc/v1/firmware/mocks/bsp/adc.h diff --git a/obc/firmware/mocks/bsp/clock.h b/obc/v1/firmware/mocks/bsp/clock.h similarity index 100% rename from obc/firmware/mocks/bsp/clock.h rename to obc/v1/firmware/mocks/bsp/clock.h diff --git a/obc/firmware/mocks/bsp/clock_mock.c b/obc/v1/firmware/mocks/bsp/clock_mock.c similarity index 100% rename from obc/firmware/mocks/bsp/clock_mock.c rename to obc/v1/firmware/mocks/bsp/clock_mock.c diff --git a/obc/firmware/mocks/bsp/dma.h b/obc/v1/firmware/mocks/bsp/dma.h similarity index 100% rename from obc/firmware/mocks/bsp/dma.h rename to obc/v1/firmware/mocks/bsp/dma.h diff --git a/obc/firmware/mocks/bsp/gpio.h b/obc/v1/firmware/mocks/bsp/gpio.h similarity index 100% rename from obc/firmware/mocks/bsp/gpio.h rename to obc/v1/firmware/mocks/bsp/gpio.h diff --git a/obc/firmware/mocks/bsp/hal_stubs.c b/obc/v1/firmware/mocks/bsp/hal_stubs.c similarity index 100% rename from obc/firmware/mocks/bsp/hal_stubs.c rename to obc/v1/firmware/mocks/bsp/hal_stubs.c diff --git a/obc/firmware/mocks/bsp/i2c.h b/obc/v1/firmware/mocks/bsp/i2c.h similarity index 100% rename from obc/firmware/mocks/bsp/i2c.h rename to obc/v1/firmware/mocks/bsp/i2c.h diff --git a/obc/firmware/mocks/bsp/iwdg.h b/obc/v1/firmware/mocks/bsp/iwdg.h similarity index 100% rename from obc/firmware/mocks/bsp/iwdg.h rename to obc/v1/firmware/mocks/bsp/iwdg.h diff --git a/obc/firmware/mocks/bsp/peripherals.h b/obc/v1/firmware/mocks/bsp/peripherals.h similarity index 100% rename from obc/firmware/mocks/bsp/peripherals.h rename to obc/v1/firmware/mocks/bsp/peripherals.h diff --git a/obc/firmware/mocks/bsp/stm32h7xx_hal.h b/obc/v1/firmware/mocks/bsp/stm32h7xx_hal.h similarity index 100% rename from obc/firmware/mocks/bsp/stm32h7xx_hal.h rename to obc/v1/firmware/mocks/bsp/stm32h7xx_hal.h diff --git a/obc/firmware/mocks/bsp/stm32h7xx_hal_gpio.h b/obc/v1/firmware/mocks/bsp/stm32h7xx_hal_gpio.h similarity index 100% rename from obc/firmware/mocks/bsp/stm32h7xx_hal_gpio.h rename to obc/v1/firmware/mocks/bsp/stm32h7xx_hal_gpio.h diff --git a/obc/firmware/mocks/bsp/stm32h7xx_hal_rcc.h b/obc/v1/firmware/mocks/bsp/stm32h7xx_hal_rcc.h similarity index 100% rename from obc/firmware/mocks/bsp/stm32h7xx_hal_rcc.h rename to obc/v1/firmware/mocks/bsp/stm32h7xx_hal_rcc.h diff --git a/obc/firmware/mocks/bsp/usart.h b/obc/v1/firmware/mocks/bsp/usart.h similarity index 100% rename from obc/firmware/mocks/bsp/usart.h rename to obc/v1/firmware/mocks/bsp/usart.h diff --git a/obc/firmware/mocks/hal_adc_mock.c b/obc/v1/firmware/mocks/hal_adc_mock.c similarity index 100% rename from obc/firmware/mocks/hal_adc_mock.c rename to obc/v1/firmware/mocks/hal_adc_mock.c diff --git a/obc/firmware/mocks/hal_adc_mock.h b/obc/v1/firmware/mocks/hal_adc_mock.h similarity index 100% rename from obc/firmware/mocks/hal_adc_mock.h rename to obc/v1/firmware/mocks/hal_adc_mock.h diff --git a/obc/firmware/mocks/hal_can_mock.c b/obc/v1/firmware/mocks/hal_can_mock.c similarity index 100% rename from obc/firmware/mocks/hal_can_mock.c rename to obc/v1/firmware/mocks/hal_can_mock.c diff --git a/obc/firmware/mocks/hal_can_mock.h b/obc/v1/firmware/mocks/hal_can_mock.h similarity index 100% rename from obc/firmware/mocks/hal_can_mock.h rename to obc/v1/firmware/mocks/hal_can_mock.h diff --git a/obc/firmware/mocks/hal_flash_mock.c b/obc/v1/firmware/mocks/hal_flash_mock.c similarity index 100% rename from obc/firmware/mocks/hal_flash_mock.c rename to obc/v1/firmware/mocks/hal_flash_mock.c diff --git a/obc/firmware/mocks/hal_fram_mock.c b/obc/v1/firmware/mocks/hal_fram_mock.c similarity index 100% rename from obc/firmware/mocks/hal_fram_mock.c rename to obc/v1/firmware/mocks/hal_fram_mock.c diff --git a/obc/firmware/mocks/hal_gpio_mock.c b/obc/v1/firmware/mocks/hal_gpio_mock.c similarity index 100% rename from obc/firmware/mocks/hal_gpio_mock.c rename to obc/v1/firmware/mocks/hal_gpio_mock.c diff --git a/obc/firmware/mocks/hal_gpio_mock.h b/obc/v1/firmware/mocks/hal_gpio_mock.h similarity index 100% rename from obc/firmware/mocks/hal_gpio_mock.h rename to obc/v1/firmware/mocks/hal_gpio_mock.h diff --git a/obc/firmware/mocks/hal_i2c_mock.c b/obc/v1/firmware/mocks/hal_i2c_mock.c similarity index 100% rename from obc/firmware/mocks/hal_i2c_mock.c rename to obc/v1/firmware/mocks/hal_i2c_mock.c diff --git a/obc/firmware/mocks/hal_i2c_mock.h b/obc/v1/firmware/mocks/hal_i2c_mock.h similarity index 100% rename from obc/firmware/mocks/hal_i2c_mock.h rename to obc/v1/firmware/mocks/hal_i2c_mock.h diff --git a/obc/firmware/mocks/hal_time_mock.c b/obc/v1/firmware/mocks/hal_time_mock.c similarity index 100% rename from obc/firmware/mocks/hal_time_mock.c rename to obc/v1/firmware/mocks/hal_time_mock.c diff --git a/obc/firmware/mocks/hal_uart_mock.c b/obc/v1/firmware/mocks/hal_uart_mock.c similarity index 100% rename from obc/firmware/mocks/hal_uart_mock.c rename to obc/v1/firmware/mocks/hal_uart_mock.c diff --git a/obc/firmware/mocks/hal_uart_mock.h b/obc/v1/firmware/mocks/hal_uart_mock.h similarity index 100% rename from obc/firmware/mocks/hal_uart_mock.h rename to obc/v1/firmware/mocks/hal_uart_mock.h diff --git a/obc/firmware/ocd b/obc/v1/firmware/ocd similarity index 100% rename from obc/firmware/ocd rename to obc/v1/firmware/ocd diff --git a/obc/firmware/scripts/fetch_logs.py b/obc/v1/firmware/scripts/fetch_logs.py similarity index 100% rename from obc/firmware/scripts/fetch_logs.py rename to obc/v1/firmware/scripts/fetch_logs.py diff --git a/obc/firmware/services/can_events.c b/obc/v1/firmware/services/can_events.c similarity index 100% rename from obc/firmware/services/can_events.c rename to obc/v1/firmware/services/can_events.c diff --git a/obc/firmware/services/can_events.h b/obc/v1/firmware/services/can_events.h similarity index 100% rename from obc/firmware/services/can_events.h rename to obc/v1/firmware/services/can_events.h diff --git a/obc/firmware/services/logging.c b/obc/v1/firmware/services/logging.c similarity index 100% rename from obc/firmware/services/logging.c rename to obc/v1/firmware/services/logging.c diff --git a/obc/firmware/services/logging.h b/obc/v1/firmware/services/logging.h similarity index 100% rename from obc/firmware/services/logging.h rename to obc/v1/firmware/services/logging.h diff --git a/obc/firmware/services/sensors.c b/obc/v1/firmware/services/sensors.c similarity index 100% rename from obc/firmware/services/sensors.c rename to obc/v1/firmware/services/sensors.c diff --git a/obc/firmware/services/sensors.h b/obc/v1/firmware/services/sensors.h similarity index 100% rename from obc/firmware/services/sensors.h rename to obc/v1/firmware/services/sensors.h diff --git a/obc/hardware/.gitignore b/obc/v1/hardware/.gitignore similarity index 100% rename from obc/hardware/.gitignore rename to obc/v1/hardware/.gitignore diff --git a/obc/hardware/backup.kicad_sch b/obc/v1/hardware/backup.kicad_sch similarity index 100% rename from obc/hardware/backup.kicad_sch rename to obc/v1/hardware/backup.kicad_sch diff --git a/obc/hardware/can.kicad_sch b/obc/v1/hardware/can.kicad_sch similarity index 100% rename from obc/hardware/can.kicad_sch rename to obc/v1/hardware/can.kicad_sch diff --git a/obc/hardware/fp-lib-table b/obc/v1/hardware/fp-lib-table similarity index 100% rename from obc/hardware/fp-lib-table rename to obc/v1/hardware/fp-lib-table diff --git a/obc/hardware/inter_board_connector.kicad_sch b/obc/v1/hardware/inter_board_connector.kicad_sch similarity index 100% rename from obc/hardware/inter_board_connector.kicad_sch rename to obc/v1/hardware/inter_board_connector.kicad_sch diff --git a/obc/hardware/obc-footprints.pretty/BatteryHolder_MYOUNG_MY-2032-12_CR2032.kicad_mod b/obc/v1/hardware/obc-footprints.pretty/BatteryHolder_MYOUNG_MY-2032-12_CR2032.kicad_mod similarity index 100% rename from obc/hardware/obc-footprints.pretty/BatteryHolder_MYOUNG_MY-2032-12_CR2032.kicad_mod rename to obc/v1/hardware/obc-footprints.pretty/BatteryHolder_MYOUNG_MY-2032-12_CR2032.kicad_mod diff --git a/obc/hardware/obc-footprints.pretty/osu-aiaa-logo.kicad_mod b/obc/v1/hardware/obc-footprints.pretty/osu-aiaa-logo.kicad_mod similarity index 100% rename from obc/hardware/obc-footprints.pretty/osu-aiaa-logo.kicad_mod rename to obc/v1/hardware/obc-footprints.pretty/osu-aiaa-logo.kicad_mod diff --git a/obc/hardware/obc-footprints.pretty/scrt-logo.kicad_mod b/obc/v1/hardware/obc-footprints.pretty/scrt-logo.kicad_mod similarity index 100% rename from obc/hardware/obc-footprints.pretty/scrt-logo.kicad_mod rename to obc/v1/hardware/obc-footprints.pretty/scrt-logo.kicad_mod diff --git a/obc/hardware/obc-symbols/obc-symbols.bak b/obc/v1/hardware/obc-symbols/obc-symbols.bak similarity index 100% rename from obc/hardware/obc-symbols/obc-symbols.bak rename to obc/v1/hardware/obc-symbols/obc-symbols.bak diff --git a/obc/hardware/obc-symbols/obc-symbols.kicad_sym b/obc/v1/hardware/obc-symbols/obc-symbols.kicad_sym similarity index 100% rename from obc/hardware/obc-symbols/obc-symbols.kicad_sym rename to obc/v1/hardware/obc-symbols/obc-symbols.kicad_sym diff --git a/obc/hardware/obc.kicad_pcb b/obc/v1/hardware/obc.kicad_pcb similarity index 100% rename from obc/hardware/obc.kicad_pcb rename to obc/v1/hardware/obc.kicad_pcb diff --git a/obc/hardware/obc.kicad_prl b/obc/v1/hardware/obc.kicad_prl similarity index 100% rename from obc/hardware/obc.kicad_prl rename to obc/v1/hardware/obc.kicad_prl diff --git a/obc/hardware/obc.kicad_pro b/obc/v1/hardware/obc.kicad_pro similarity index 99% rename from obc/hardware/obc.kicad_pro rename to obc/v1/hardware/obc.kicad_pro index 86d3d4e..6d5fd3d 100644 --- a/obc/hardware/obc.kicad_pro +++ b/obc/v1/hardware/obc.kicad_pro @@ -782,7 +782,7 @@ "uuid": "ba4f88ff-24aa-49a3-8871-8c7e48b371c5" } ], - "used_designators": "R37,#PWR130-131,J6,J10-11,H1-4", + "used_designators": "", "variants": [] }, "sheets": [ diff --git a/obc/hardware/obc.kicad_sch b/obc/v1/hardware/obc.kicad_sch similarity index 100% rename from obc/hardware/obc.kicad_sch rename to obc/v1/hardware/obc.kicad_sch diff --git a/obc/hardware/radio.kicad_sch b/obc/v1/hardware/radio.kicad_sch similarity index 100% rename from obc/hardware/radio.kicad_sch rename to obc/v1/hardware/radio.kicad_sch diff --git a/obc/hardware/sd-card.kicad_sch b/obc/v1/hardware/sd-card.kicad_sch similarity index 100% rename from obc/hardware/sd-card.kicad_sch rename to obc/v1/hardware/sd-card.kicad_sch diff --git a/obc/hardware/sensors.kicad_sch b/obc/v1/hardware/sensors.kicad_sch similarity index 100% rename from obc/hardware/sensors.kicad_sch rename to obc/v1/hardware/sensors.kicad_sch diff --git a/obc/hardware/stm32h7.kicad_sch b/obc/v1/hardware/stm32h7.kicad_sch similarity index 100% rename from obc/hardware/stm32h7.kicad_sch rename to obc/v1/hardware/stm32h7.kicad_sch diff --git a/obc/hardware/watchdog.kicad_sch b/obc/v1/hardware/watchdog.kicad_sch similarity index 100% rename from obc/hardware/watchdog.kicad_sch rename to obc/v1/hardware/watchdog.kicad_sch diff --git a/obc/tests/lora-packet-transmission/.clang-format b/obc/v1/tests/lora-packet-transmission/.clang-format similarity index 100% rename from obc/tests/lora-packet-transmission/.clang-format rename to obc/v1/tests/lora-packet-transmission/.clang-format diff --git a/obc/tests/lora-packet-transmission/.gitignore b/obc/v1/tests/lora-packet-transmission/.gitignore similarity index 100% rename from obc/tests/lora-packet-transmission/.gitignore rename to obc/v1/tests/lora-packet-transmission/.gitignore diff --git a/obc/tests/lora-packet-transmission/CMakeLists.txt b/obc/v1/tests/lora-packet-transmission/CMakeLists.txt similarity index 100% rename from obc/tests/lora-packet-transmission/CMakeLists.txt rename to obc/v1/tests/lora-packet-transmission/CMakeLists.txt diff --git a/obc/tests/lora-packet-transmission/pico_sdk_import.cmake b/obc/v1/tests/lora-packet-transmission/pico_sdk_import.cmake similarity index 100% rename from obc/tests/lora-packet-transmission/pico_sdk_import.cmake rename to obc/v1/tests/lora-packet-transmission/pico_sdk_import.cmake diff --git a/obc/tests/lora-packet-transmission/shell.nix b/obc/v1/tests/lora-packet-transmission/shell.nix similarity index 100% rename from obc/tests/lora-packet-transmission/shell.nix rename to obc/v1/tests/lora-packet-transmission/shell.nix diff --git a/obc/tests/lora-packet-transmission/src/main.c b/obc/v1/tests/lora-packet-transmission/src/main.c similarity index 100% rename from obc/tests/lora-packet-transmission/src/main.c rename to obc/v1/tests/lora-packet-transmission/src/main.c diff --git a/payload/documentation/subsystem_info.md b/payload/documentation/subsystem_info.md new file mode 100644 index 0000000..b9d640c --- /dev/null +++ b/payload/documentation/subsystem_info.md @@ -0,0 +1,73 @@ +# Subsystem Info + +# Payload Subsystem + +## Document Control + +- Version: 1 +- Author: Ethan Eggert +- Approver: +- Last Revised date: 07/5/2026 +- Approval Status: Unapproved + +# Background and context + +The payload subsystem is responsible for controlling the dual camera system (or the mechanism for switching the camera filter for v1), taking images, and recording sensor data over different parts of the earth to perform climate science. Controlled by the OBC, when it receives a command to record payload data, it will automatically start a procedure to take images in different wavelengths over different sections of the earth. After the sensors have completed collection, they will transfer images in chunks over CAN to the OBC for storage, as well as the processed data from the climate algorithms. + +# Payload Responsibilities + +1. Receives commands over CANBus from the OBC when in a healthy state +2. Switches between camera filters/image bands to take images +3. Measures NDVI and RBD to detect vegetation health and oceanic algal blooms +4. Frames images in chunks, sending image bytes alongside a checksum for ordered and error-corrected image transmission to the OBC over CAN +5. Sends back the results of the algorithms to the OBC for storage +6. Performs graceful transitions between safe mode and science mode + +# Considerations + +- OBC needs a write buffer for reliable data storage and transmission, or the payload needs some sort of flow control +- Both OBC and payload need a transaction/retry mechanism in case of power failure or other latchups, for reliability + - This is provided by the packet standard's CRC & ACK/NACK handshake + +# Scope and deliverables + + +| Deliverable | Description | +| :---- | :---- | +| Switching camera mechanism design | The scope and hardware design for a mechanism for taking images in multiple light wavelengths | +| Climate experiment functionality report | Document detailing which algorithms, how and when they're used, that the payload will use to conduct climate science experiments | +| Payload PCB block diagram | The block diagram for the payload PCB | +| Payload PCB design & manufacturing | The design and manufacture of the payload PCB | +| Software control framework | Software functionality for controlling the different hardware elements | +| Healthy <-> safe mode transition | Software functionality for transitioning between safe mode and healthy mode | +| Error-corrected CAN image transmission | Software protocol for transmitting images over UART to the OBC | +| Payload data transmission over CAN | Software functionality for sending payload data to the OBC for storage | +| Testing framework (throughout project) | Software framework that allows for robust testing without the hardware. Should test software functionality and mock hardware-dependent behavior so the software flows as expected. | + +# Resources + +- https://www.arducam.com/embedded-camera-module/cameras-for-raspberrypi/raspberry-pi-camera-multi-cam-adapter-stereo.html +- https://www.raspberrypi.com/products/pi-noir-camera-v2/ + +# Next steps (v1r1) + +- [X] Scope and design payload camera mechanism +- [ ] Design payload block diagram +- [X] Design payload hardware +- [ ] Scope software and create block diagram +- [ ] Create hardware mocks +- [ ] Implement and test software functionality +- [ ] Test on real hardware +- [ ] Integrate into system + +# Next Steps (v2r1) + +- [ ] Scope and design dual-camera system +- [ ] Write climate experiment functionality report +- [ ] Design payload block diagram +- [ ] Design payload hardware +- [ ] Scope software and create block diagram +- [ ] Create hardware mocks +- [ ] Implement and test software functionality +- [ ] Test on real hardware +- [ ] Integrate into system diff --git a/payload/hardware/symbols/522071585.bak b/payload/hardware/symbols/522071585.bak deleted file mode 100644 index 5168280..0000000 --- a/payload/hardware/symbols/522071585.bak +++ /dev/null @@ -1,347 +0,0 @@ - -(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) - (symbol "522071585" (pin_names (offset 1.016)) (in_bom yes) (on_board yes) - (property "Reference" "J" (id 0) (at 4.1656 5.3086 0.0) - (effects (font (size 1.27 1.27)) (justify bottom left)) - ) - (property "Value" "522071585" (id 1) (at 4.8006 -21.3614 0.0) - (effects (font (size 1.27 1.27)) (justify bottom left)) - ) - (property "Footprint" "522071585:CON_522071585_MOL" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "MF" "Molex" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "Description" "\n \n 15 Position FFC, FPC Connector Contacts, Top 0.039 (1.00mm) Surface Mount, Right Angle\n \n" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "Package" "None" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "Price" "None" (id 7) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "Check_prices" "https://www.snapeda.com/parts/522071585/Molex/view-part/?ref=eda" (id 8) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "Availability" "In Stock" (id 9) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "SnapEDA_Link" "https://www.snapeda.com/parts/522071585/Molex/view-part/?ref=snap" (id 10) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "MP" "522071585" (id 11) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "MFR_NAME" "Molex Connector Corporation" (id 12) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (property "MANUFACTURER_PART_NUMBER" "522071585" (id 13) (at 0 0 0) - (effects (font (size 1.27 1.27)) (justify bottom) hide) - ) - (symbol "522071585_0_0" - (polyline - (pts (xy 10.16 0.0) (xy 5.08 0.0)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -2.54) (xy 5.08 -2.54)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -5.08) (xy 5.08 -5.08)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -7.62) (xy 5.08 -7.62)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -10.16) (xy 5.08 -10.16)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -12.7) (xy 5.08 -12.7)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -15.24) (xy 5.08 -15.24)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -17.78) (xy 5.08 -17.78)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -20.32) (xy 5.08 -20.32)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -22.86) (xy 5.08 -22.86)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -25.4) (xy 5.08 -25.4)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -27.94) (xy 5.08 -27.94)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -30.48) (xy 5.08 -30.48)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -33.02) (xy 5.08 -33.02)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -35.56) (xy 5.08 -35.56)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -38.1) (xy 5.08 -38.1)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -40.64) (xy 5.08 -40.64)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 0.0) (xy 8.89 0.8382)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -2.54) (xy 8.89 -1.7018)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -5.08) (xy 8.89 -4.2418)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -7.62) (xy 8.89 -6.7818)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -10.16) (xy 8.89 -9.3218)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -12.7) (xy 8.89 -11.8618)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -15.24) (xy 8.89 -14.4018)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -17.78) (xy 8.89 -16.9418)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -20.32) (xy 8.89 -19.4818)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -22.86) (xy 8.89 -22.0218)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -25.4) (xy 8.89 -24.5618)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -27.94) (xy 8.89 -27.1018)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -30.48) (xy 8.89 -29.6418)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -33.02) (xy 8.89 -32.1818)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -35.56) (xy 8.89 -34.7218)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -38.1) (xy 8.89 -37.2618)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -40.64) (xy 8.89 -39.8018)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 0.0) (xy 8.89 -0.8382)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -2.54) (xy 8.89 -3.3782)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -5.08) (xy 8.89 -5.9182)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -7.62) (xy 8.89 -8.4582)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -10.16) (xy 8.89 -10.9982)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -12.7) (xy 8.89 -13.5382)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -15.24) (xy 8.89 -16.0782)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -17.78) (xy 8.89 -18.6182)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -20.32) (xy 8.89 -21.1582)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -22.86) (xy 8.89 -23.6982)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -25.4) (xy 8.89 -26.2382)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -27.94) (xy 8.89 -28.7782)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -30.48) (xy 8.89 -31.3182)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -33.02) (xy 8.89 -33.8582)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -35.56) (xy 8.89 -36.3982)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -38.1) (xy 8.89 -38.9382)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 10.16 -40.64) (xy 8.89 -41.4782)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 5.08 2.54) (xy 5.08 -43.18)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 5.08 -43.18) (xy 12.7 -43.18)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 12.7 -43.18) (xy 12.7 2.54)) (stroke (width 0.1524)) - ) - (polyline - (pts (xy 12.7 2.54) (xy 5.08 2.54)) (stroke (width 0.1524)) - ) - (pin passive line (at 0.0 0.0 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "1" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -2.54 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "2" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -5.08 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "3" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -7.62 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "4" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -10.16 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "5" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -12.7 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "6" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -15.24 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "7" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -17.78 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "8" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -20.32 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "9" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -22.86 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "10" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -25.4 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "11" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -27.94 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "12" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -30.48 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "13" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -33.02 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "14" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -35.56 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "15" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -38.1 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "P1" - (effects (font (size 1.016 1.016))) - ) - ) - (pin passive line (at 0.0 -40.64 0) (length 5.08) - (name "~" - (effects (font (size 1.016 1.016))) - ) - (number "P2" - (effects (font (size 1.016 1.016))) - ) - ) - ) - ) -) \ No newline at end of file diff --git a/payload/hardware/symbols/CM4102008.bak b/payload/hardware/symbols/CM4102008.bak deleted file mode 100644 index 9a78f24..0000000 --- a/payload/hardware/symbols/CM4102008.bak +++ /dev/null @@ -1,4304 +0,0 @@ -(kicad_symbol_lib - (version 20241209) - (generator "kicad_symbol_editor") - (generator_version "9.0") - (symbol "CM4102008" - (pin_names - (offset 1.016) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "U" - (at -25.4 61.722 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - ) - (property "Value" "CM4102008" - (at -25.4 -61.722 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left top) - ) - ) - (property "Footprint" "CM4102008:MODULE_CM4102008" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "MF" "Raspberry Pi" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "MAXIMUM_PACKAGE_HEIGHT" "5.188 mm" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "Package" "None" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "Price" "None" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "Check_prices" "https://www.snapeda.com/parts/CM4102008/Raspberry+Pi/view-part/?ref=eda" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "STANDARD" "Manufacturer Recommendations" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "PARTREV" "2021-10-12" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "SnapEDA_Link" "https://www.snapeda.com/parts/CM4102008/Raspberry+Pi/view-part/?ref=snap" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "MP" "CM4102008" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "Description_1" "Raspberry Pi Compute Module 4 with WiFi 2GB RAM 8GB Flash | Raspberry Pi CM4102008" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "Availability" "Not in stock" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (property "MANUFACTURER" "Raspberry Pi" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify bottom) - (hide yes) - ) - ) - (symbol "CM4102008_1_0" - (rectangle - (start -25.4 60.96) - (end 25.4 -60.96) - (stroke - (width 0.254) - (type default) - ) - (fill - (type background) - ) - ) - (pin bidirectional line - (at -30.48 57.15 0) - (length 5.08) - (name "SDA0" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "82" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input clock - (at -30.48 54.61 0) - (length 5.08) - (name "SCL0" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "80" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 52.07 0) - (length 5.08) - (name "GPIO4" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "54" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 49.53 0) - (length 5.08) - (name "CAMERA_GPIO" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "97" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 17.78 0) - (length 5.08) - (name "ETHERNET_SYNC_IN" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "16" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 15.24 0) - (length 5.08) - (name "ETHERNET_SYNC_OUT" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "18" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 12.7 0) - (length 5.08) - (name "ETHERNET_~{LED1}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "19" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 10.16 0) - (length 5.08) - (name "ETHERNET_~{LED2}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "17" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 7.62 0) - (length 5.08) - (name "ETHERNET_~{LED3}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "15" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 5.08 0) - (length 5.08) - (name "ETHERNET_PAIR0_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "12" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 2.54 0) - (length 5.08) - (name "ETHERNET_PAIR0_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "10" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 0 0) - (length 5.08) - (name "ETHERNET_PAIR1_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "4" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -2.54 0) - (length 5.08) - (name "ETHERNET_PAIR1_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "6" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -5.08 0) - (length 5.08) - (name "ETHERNET_PAIR2_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "11" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -7.62 0) - (length 5.08) - (name "ETHERNET_PAIR2_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "9" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -10.16 0) - (length 5.08) - (name "ETHERNET_PAIR3_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "3" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -12.7 0) - (length 5.08) - (name "ETHERNET_PAIR3_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "5" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -17.78 0) - (length 5.08) - (name "SD_PWR_ON" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "75" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 -20.32 0) - (length 5.08) - (name "SD_VDD_OVERRIDE" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "73" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional clock - (at -30.48 -22.86 0) - (length 5.08) - (name "SD_CLK" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "57" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 -25.4 0) - (length 5.08) - (name "SD_CMD" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "62" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -27.94 0) - (length 5.08) - (name "SD_DAT0" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "63" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -30.48 0) - (length 5.08) - (name "SD_DAT1" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "67" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -33.02 0) - (length 5.08) - (name "SD_DAT2" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "69" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -35.56 0) - (length 5.08) - (name "SD_DAT3" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "61" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -38.1 0) - (length 5.08) - (name "SD_DAT4" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "68" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -40.64 0) - (length 5.08) - (name "SD_DAT5" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "64" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -43.18 0) - (length 5.08) - (name "SD_DAT6" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "72" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 -45.72 0) - (length 5.08) - (name "SD_DAT7" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "70" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin passive line - (at -30.48 -58.42 0) - (length 5.08) - (name "MOUNTING_PADS" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "SH1" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin passive line - (at -30.48 -58.42 0) - (length 5.08) - (hide yes) - (name "MOUNTING_PADS" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "SH2" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin passive line - (at -30.48 -58.42 0) - (length 5.08) - (hide yes) - (name "MOUNTING_PADS" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "SH3" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin passive line - (at -30.48 -58.42 0) - (length 5.08) - (hide yes) - (name "MOUNTING_PADS" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "SH4" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -12.7 66.04 270) - (length 5.08) - (name "GLOBAL_EN" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "99" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -10.16 66.04 270) - (length 5.08) - (name "BT_~{DISABLE}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "91" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -7.62 66.04 270) - (length 5.08) - (name "WL_~{DISABLE}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "89" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -5.08 66.04 270) - (length 5.08) - (name "~{RPIBOOT}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "93" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -2.54 66.04 270) - (length 5.08) - (name "RUN_PG" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "92" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 58.42 180) - (length 5.08) - (name "+5V(INPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "77" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 58.42 180) - (length 5.08) - (hide yes) - (name "+5V(INPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "79" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 58.42 180) - (length 5.08) - (hide yes) - (name "+5V(INPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "81" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 58.42 180) - (length 5.08) - (hide yes) - (name "+5V(INPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "83" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 58.42 180) - (length 5.08) - (hide yes) - (name "+5V(INPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "85" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 58.42 180) - (length 5.08) - (hide yes) - (name "+5V(INPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "87" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 55.88 180) - (length 5.08) - (name "CM4_3.3V(OUTPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "84" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 55.88 180) - (length 5.08) - (hide yes) - (name "CM4_3.3V(OUTPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "86" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 53.34 180) - (length 5.08) - (name "CM4_1.8V(OUTPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "88" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 53.34 180) - (length 5.08) - (hide yes) - (name "CM4_1.8V(OUTPUT)" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "90" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 50.8 180) - (length 5.08) - (name "GPIO_VREF" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "78" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 45.72 180) - (length 5.08) - (name "~{EXTRST}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "100" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 40.64 180) - (length 5.08) - (name "PI_~{LED}_ACTIVITY" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "21" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 38.1 180) - (length 5.08) - (name "PI_LED_~{PWR}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "95" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 33.02 180) - (length 5.08) - (name "EEPROM_~{WP}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "20" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at 30.48 30.48 180) - (length 5.08) - (name "ANALOGIP1" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "94" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at 30.48 27.94 180) - (length 5.08) - (name "ANALOGIP0" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "96" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 25.4 180) - (length 5.08) - (name "GPIO2" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "58" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 22.86 180) - (length 5.08) - (name "GPIO3" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "56" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 20.32 180) - (length 5.08) - (name "GPIO5" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "34" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 17.78 180) - (length 5.08) - (name "GPIO6" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "30" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 15.24 180) - (length 5.08) - (name "GPIO7" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "37" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 12.7 180) - (length 5.08) - (name "GPIO8" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "39" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 10.16 180) - (length 5.08) - (name "GPIO9" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "40" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 7.62 180) - (length 5.08) - (name "GPIO10" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "44" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 5.08 180) - (length 5.08) - (name "GPIO11" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "38" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 2.54 180) - (length 5.08) - (name "GPIO12" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "31" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 0 180) - (length 5.08) - (name "GPIO13" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "28" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -2.54 180) - (length 5.08) - (name "GPIO14" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "55" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -5.08 180) - (length 5.08) - (name "GPIO15" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "51" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -7.62 180) - (length 5.08) - (name "GPIO16" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "29" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -10.16 180) - (length 5.08) - (name "GPIO17" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "50" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -12.7 180) - (length 5.08) - (name "GPIO18" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "49" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -15.24 180) - (length 5.08) - (name "GPIO19" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "26" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -17.78 180) - (length 5.08) - (name "GPIO20" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "27" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -20.32 180) - (length 5.08) - (name "GPIO21" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "25" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -22.86 180) - (length 5.08) - (name "GPIO22" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "46" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -25.4 180) - (length 5.08) - (name "GPIO23" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "47" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -27.94 180) - (length 5.08) - (name "GPIO24" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "45" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -30.48 180) - (length 5.08) - (name "GPIO25" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "41" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -33.02 180) - (length 5.08) - (name "GPIO26" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "24" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -35.56 180) - (length 5.08) - (name "GPIO27" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "48" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -40.64 180) - (length 5.08) - (name "ID_SC" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "35" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -43.18 180) - (length 5.08) - (name "ID_SD" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "36" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin no_connect line - (at 30.48 -53.34 180) - (length 5.08) - (hide yes) - (name "RESERVED" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "104" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin no_connect line - (at 30.48 -53.34 180) - (length 5.08) - (hide yes) - (name "RESERVED" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "106" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin no_connect line - (at 30.48 -53.34 180) - (length 5.08) - (name "RESERVED" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "76" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "1" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "107" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "108" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "113" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "114" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "119" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "120" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "125" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "126" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "13" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "131" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "132" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "137" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "138" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "14" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "144" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "150" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "155" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "156" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "161" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "162" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "167" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "168" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "173" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "174" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "179" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "180" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "185" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "186" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "191" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "192" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "197" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "198" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "2" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "22" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "23" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "32" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "33" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "42" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "43" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "52" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "53" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "59" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "60" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "65" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "66" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "7" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "71" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "74" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "8" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin power_in line - (at 30.48 -58.42 180) - (length 5.08) - (hide yes) - (name "GND" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "98" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - ) - (symbol "CM4102008_1_1" - (pin bidirectional line - (at -30.48 46.99 0) - (length 5.08) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "32" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 44.45 0) - (length 5.08) - (name "CAM0_C_P" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "142" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 41.91 0) - (length 5.08) - (name "CAM0_C_N_" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "140" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 39.37 0) - (length 5.08) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "33" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 36.83 0) - (length 5.08) - (name "CAM0_D1_P" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "136" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 34.29 0) - (length 5.08) - (name "CAM0_D1_N" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "134" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 31.75 0) - (length 5.08) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "42" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 29.21 0) - (length 5.08) - (name "CAM0_D0_P" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "130" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 26.67 0) - (length 5.08) - (name "CAM0_D0_N_" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "128" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 24.13 0) - (length 5.08) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "43" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - (symbol "CM4102008_2_0" - (rectangle - (start -25.4 -50.8) - (end 25.4 50.8) - (stroke - (width 0.254) - (type default) - ) - (fill - (type background) - ) - ) - (pin input line - (at -30.48 48.26 0) - (length 5.08) - (name "USB_OTG_ID" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "101" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 45.72 0) - (length 5.08) - (name "USB_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "105" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 43.18 0) - (length 5.08) - (name "USB_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "103" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input clock - (at -30.48 38.1 0) - (length 5.08) - (name "CAM0_C_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "142" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input clock - (at -30.48 35.56 0) - (length 5.08) - (name "CAM0_C_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "140" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 33.02 0) - (length 5.08) - (name "CAM0_D0_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "130" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 30.48 0) - (length 5.08) - (name "CAM0_D0_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "128" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 27.94 0) - (length 5.08) - (name "CAM0_D1_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "136" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 25.4 0) - (length 5.08) - (name "CAM0_D1_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "134" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input clock - (at -30.48 20.32 0) - (length 5.08) - (name "CAM1_C_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "129" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input clock - (at -30.48 17.78 0) - (length 5.08) - (name "CAM1_C_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "127" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 15.24 0) - (length 5.08) - (name "CAM1_D0_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "117" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 12.7 0) - (length 5.08) - (name "CAM1_D0_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "115" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 10.16 0) - (length 5.08) - (name "CAM1_D1_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "123" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 7.62 0) - (length 5.08) - (name "CAM1_D1_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "121" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 5.08 0) - (length 5.08) - (name "CAM1_D2_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "135" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 2.54 0) - (length 5.08) - (name "CAM1_D2_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "133" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 0 0) - (length 5.08) - (name "CAM1_D3_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "141" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at -30.48 -2.54 0) - (length 5.08) - (name "CAM1_D3_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "139" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at -30.48 -7.62 0) - (length 5.08) - (name "DSI0_C_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "169" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at -30.48 -10.16 0) - (length 5.08) - (name "DSI0_C_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "171" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -12.7 0) - (length 5.08) - (name "DSI0_D0_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "159" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -15.24 0) - (length 5.08) - (name "DSI0_D0_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "157" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -17.78 0) - (length 5.08) - (name "DSI0_D1_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "165" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -20.32 0) - (length 5.08) - (name "DSI0_D1_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "163" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at -30.48 -25.4 0) - (length 5.08) - (name "DSI1_C_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "187" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at -30.48 -27.94 0) - (length 5.08) - (name "DSI1_C_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "189" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -30.48 0) - (length 5.08) - (name "DSI1_D0_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "177" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -33.02 0) - (length 5.08) - (name "DSI1_D0_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "175" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -35.56 0) - (length 5.08) - (name "DSI1_D1_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "183" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -38.1 0) - (length 5.08) - (name "DSI1_D1_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "181" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -40.64 0) - (length 5.08) - (name "DSI1_D2_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "195" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -43.18 0) - (length 5.08) - (name "DSI1_D2_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "193" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -45.72 0) - (length 5.08) - (name "DSI1_D3_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "196" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at -30.48 -48.26 0) - (length 5.08) - (name "DSI1_D3_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "194" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 48.26 180) - (length 5.08) - (name "VDAC_COMP" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "111" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 43.18 180) - (length 5.08) - (name "PCIE_~{RST}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "109" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at 30.48 40.64 180) - (length 5.08) - (name "PCIE_CLK_~{REQ}" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "102" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at 30.48 38.1 180) - (length 5.08) - (name "PCIE_CLK_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "110" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at 30.48 35.56 180) - (length 5.08) - (name "PCIE_CLK_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "112" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at 30.48 33.02 180) - (length 5.08) - (name "PCIE_RX_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "116" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at 30.48 30.48 180) - (length 5.08) - (name "PCIE_RX_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "118" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 27.94 180) - (length 5.08) - (name "PCIE_TX_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "122" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 25.4 180) - (length 5.08) - (name "PCIE_TX_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "124" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at 30.48 20.32 180) - (length 5.08) - (name "HDMI0_HOTPLUG" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "153" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional clock - (at 30.48 17.78 180) - (length 5.08) - (name "HDMI0_SCL" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "200" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 15.24 180) - (length 5.08) - (name "HDMI0_SDA" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "199" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at 30.48 12.7 180) - (length 5.08) - (name "HDMI0_CEC" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "151" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at 30.48 10.16 180) - (length 5.08) - (name "HDMI0_CLK_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "188" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at 30.48 7.62 180) - (length 5.08) - (name "HDMI0_CLK_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "190" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 5.08 180) - (length 5.08) - (name "HDMI0_TX0_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "182" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 2.54 180) - (length 5.08) - (name "HDMI0_TX0_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "184" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 0 180) - (length 5.08) - (name "HDMI0_TX1_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "176" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 -2.54 180) - (length 5.08) - (name "HDMI0_TX1_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "178" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 -5.08 180) - (length 5.08) - (name "HDMI0_TX2_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "170" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 -7.62 180) - (length 5.08) - (name "HDMI0_TX2_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "172" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at 30.48 -12.7 180) - (length 5.08) - (name "HDMI1_HOTPLUG" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "143" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional line - (at 30.48 -15.24 180) - (length 5.08) - (name "HDMI1_SDA" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "145" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin bidirectional clock - (at 30.48 -17.78 180) - (length 5.08) - (name "HDMI1_SCL" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "147" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin input line - (at 30.48 -20.32 180) - (length 5.08) - (name "HDMI1_CEC" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "149" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at 30.48 -22.86 180) - (length 5.08) - (name "HDMI1_CLK_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "164" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output clock - (at 30.48 -25.4 180) - (length 5.08) - (name "HDMI1_CLK_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "166" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 -27.94 180) - (length 5.08) - (name "HDMI1_TX0_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "158" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 -30.48 180) - (length 5.08) - (name "HDMI1_TX0_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "160" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 -33.02 180) - (length 5.08) - (name "HDMI1_TX1_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "152" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 -35.56 180) - (length 5.08) - (name "HDMI1_TX1_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "154" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 -38.1 180) - (length 5.08) - (name "HDMI1_TX2_P" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "146" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - (pin output line - (at 30.48 -40.64 180) - (length 5.08) - (name "HDMI1_TX2_N" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - (number "148" - (effects - (font - (size 1.016 1.016) - ) - ) - ) - ) - ) - (symbol "CM4102008_2_1" - (pin bidirectional line - (at -30.48 46.99 0) - (length 5.08) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "32-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 44.45 0) - (length 5.08) - (name "CAM0_C_P" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "142-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin output line - (at -30.48 41.91 0) - (length 2.54) - (name "CAM0_C_N_" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "140-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 39.37 0) - (length 5.08) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "33-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 36.83 0) - (length 5.08) - (name "CAM0_D1_P" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "136-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 34.29 0) - (length 2.54) - (name "CAM0_D1_N" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "134-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 31.75 0) - (length 5.08) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "42-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 29.21 0) - (length 2.54) - (name "CAM0_D0_P" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "130-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -30.48 26.67 0) - (length 2.54) - (name "CAM0_D0_N_" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "128-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -30.48 24.13 0) - (length 5.08) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "43-UB" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - (embedded_fonts no) - ) -) diff --git a/payload/hardware/.gitignore b/payload/v1/hardware/.gitignore similarity index 100% rename from payload/hardware/.gitignore rename to payload/v1/hardware/.gitignore diff --git a/payload/hardware/camera.kicad_sch b/payload/v1/hardware/camera.kicad_sch similarity index 100% rename from payload/hardware/camera.kicad_sch rename to payload/v1/hardware/camera.kicad_sch diff --git a/payload/hardware/cameras.kicad_sch b/payload/v1/hardware/cameras.kicad_sch similarity index 100% rename from payload/hardware/cameras.kicad_sch rename to payload/v1/hardware/cameras.kicad_sch diff --git a/payload/hardware/can.kicad_sch b/payload/v1/hardware/can.kicad_sch similarity index 100% rename from payload/hardware/can.kicad_sch rename to payload/v1/hardware/can.kicad_sch diff --git a/payload/hardware/cm4.kicad_sch b/payload/v1/hardware/cm4.kicad_sch similarity index 100% rename from payload/hardware/cm4.kicad_sch rename to payload/v1/hardware/cm4.kicad_sch diff --git a/payload/v1/hardware/fabrication-toolkit-options.json b/payload/v1/hardware/fabrication-toolkit-options.json new file mode 100644 index 0000000..5ab92fb --- /dev/null +++ b/payload/v1/hardware/fabrication-toolkit-options.json @@ -0,0 +1 @@ +{"ARCHIVE_NAME": "", "EXTRA_LAYERS": "", "ALL_ACTIVE_LAYERS": true, "EXTEND_EDGE_CUT": false, "ALTERNATIVE_EDGE_CUT": false, "AUTO TRANSLATE": true, "AUTO FILL": true, "EXCLUDE DNP": false, "OPEN BROWSER": true, "BACKUP_OPT": true} \ No newline at end of file diff --git a/payload/hardware/footprints/CON_522071585_MOL.kicad_mod b/payload/v1/hardware/footprints/CON_522071585_MOL.kicad_mod similarity index 100% rename from payload/hardware/footprints/CON_522071585_MOL.kicad_mod rename to payload/v1/hardware/footprints/CON_522071585_MOL.kicad_mod diff --git a/payload/hardware/footprints/MODULE_CM4102008.kicad_mod b/payload/v1/hardware/footprints/MODULE_CM4102008.kicad_mod similarity index 100% rename from payload/hardware/footprints/MODULE_CM4102008.kicad_mod rename to payload/v1/hardware/footprints/MODULE_CM4102008.kicad_mod diff --git a/payload/hardware/footprints/payload.pretty/ARJM11C7-502-LEDs.kicad_mod b/payload/v1/hardware/footprints/payload.pretty/ARJM11C7-502-LEDs.kicad_mod similarity index 100% rename from payload/hardware/footprints/payload.pretty/ARJM11C7-502-LEDs.kicad_mod rename to payload/v1/hardware/footprints/payload.pretty/ARJM11C7-502-LEDs.kicad_mod diff --git a/payload/hardware/footprints/payload.pretty/Module_Raspberry_Pi_CM4.kicad_mod b/payload/v1/hardware/footprints/payload.pretty/Module_Raspberry_Pi_CM4.kicad_mod similarity index 100% rename from payload/hardware/footprints/payload.pretty/Module_Raspberry_Pi_CM4.kicad_mod rename to payload/v1/hardware/footprints/payload.pretty/Module_Raspberry_Pi_CM4.kicad_mod diff --git a/payload/hardware/fp-info-cache b/payload/v1/hardware/fp-info-cache similarity index 100% rename from payload/hardware/fp-info-cache rename to payload/v1/hardware/fp-info-cache diff --git a/payload/hardware/fp-lib-table b/payload/v1/hardware/fp-lib-table similarity index 100% rename from payload/hardware/fp-lib-table rename to payload/v1/hardware/fp-lib-table diff --git a/payload/hardware/inter_board_connector.kicad_sch b/payload/v1/hardware/inter_board_connector.kicad_sch similarity index 100% rename from payload/hardware/inter_board_connector.kicad_sch rename to payload/v1/hardware/inter_board_connector.kicad_sch diff --git a/payload/hardware/models/ARJM11C7-502-AB-EW2.STEP b/payload/v1/hardware/models/ARJM11C7-502-AB-EW2.STEP similarity index 100% rename from payload/hardware/models/ARJM11C7-502-AB-EW2.STEP rename to payload/v1/hardware/models/ARJM11C7-502-AB-EW2.STEP diff --git a/payload/hardware/models/CM4102008.step b/payload/v1/hardware/models/CM4102008.step similarity index 100% rename from payload/hardware/models/CM4102008.step rename to payload/v1/hardware/models/CM4102008.step diff --git a/payload/hardware/motordriver.kicad_sch b/payload/v1/hardware/motordriver.kicad_sch similarity index 100% rename from payload/hardware/motordriver.kicad_sch rename to payload/v1/hardware/motordriver.kicad_sch diff --git a/payload/hardware/payload.kicad_pcb b/payload/v1/hardware/payload.kicad_pcb similarity index 100% rename from payload/hardware/payload.kicad_pcb rename to payload/v1/hardware/payload.kicad_pcb diff --git a/payload/hardware/payload.kicad_prl b/payload/v1/hardware/payload.kicad_prl similarity index 100% rename from payload/hardware/payload.kicad_prl rename to payload/v1/hardware/payload.kicad_prl diff --git a/payload/hardware/payload.kicad_pro b/payload/v1/hardware/payload.kicad_pro similarity index 100% rename from payload/hardware/payload.kicad_pro rename to payload/v1/hardware/payload.kicad_pro diff --git a/payload/hardware/payload.kicad_sch b/payload/v1/hardware/payload.kicad_sch similarity index 100% rename from payload/hardware/payload.kicad_sch rename to payload/v1/hardware/payload.kicad_sch diff --git a/payload/hardware/payload.kicad_sch-bak b/payload/v1/hardware/payload.kicad_sch-bak similarity index 100% rename from payload/hardware/payload.kicad_sch-bak rename to payload/v1/hardware/payload.kicad_sch-bak diff --git a/payload/v1/hardware/production/bom.csv b/payload/v1/hardware/production/bom.csv new file mode 100644 index 0000000..ba979bb --- /dev/null +++ b/payload/v1/hardware/production/bom.csv @@ -0,0 +1,31 @@ +Designator,Footprint,Quantity,Value,LCSC Part # +"_4, _3, _2, ",,4,, +"C1, C10, C11, C12, C13, C15, C16, C4, C9",0402,9,100n, +C14,0402,1,1u, +C2,0402,1,10u, +C3,0402,1,2.2u, +"C5, C6, C7, C8",0402,4,TBD, +"D1, D2",0805,2,LED, +"D3, D4, D5, D6",D_SOD-323,4,D_Zener, +J1,Amphenol_F32Q-1A7x1-11022_1x22-1MP_P0.5mm_Horizontal,1,~, +J10,Samtec_ERF8-020-XX.X-DV_2x20_P0.8mm_Socket,1,Conn_02x20_Odd_Even, +J2,ARJM11C7-502-LEDs,1,ARJM11C7-502-AB, +J3,USB_C_Receptacle_GCT_USB4110,1,USB_C_Receptacle_USB2.0_16P, +J4,PinHeader_2x04_P2.54mm_Vertical,1,Conn_02x04_Odd_Even, +J5,JST_XH_B5B-XH-AM_1x05_P2.50mm_Vertical,1,Conn_01x05, +J7,Amphenol_F32R-1A7x1-11022_1x22-1MP_P0.5mm_Horizontal,1,~, +JP1,PinHeader_1x02_P2.54mm_Vertical,1,Jumper_2_Open, +"R1, R10, R11, R2",0402,4,1k, +"R12, R13",0402,2,120, +"R17, R18",0402,2,51k,C25794 +"R3, R4, R7",0402,3,5.1k, +"R5, R6",1206,2,1, +R8,0402,1,12k, +R9,0402,1,2k, +SW1,SW_SPST_PTS810,1,SW_Push, +U1,Module_Raspberry_Pi_CM4,1,CM4, +"U2, U5",DFN-14-1EP_3x4.5mm_P0.65mm_EP1.65x4.25mm,2,MCP2517FD-xJHA, +"U4, U7",SOIC-8_3.9x4.9mm_P1.27mm,2,SN65HVD230, +U6,SOT-23-5,1,74LVC1G07, +U9,VQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mm_ThermalVias,1,DRV8846, +"Y1, Y2",Crystal_SMD_SeikoEpson_TSX3225-4Pin_3.2x2.5mm,2,20 MHz, diff --git a/payload/v1/hardware/production/designators.csv b/payload/v1/hardware/production/designators.csv new file mode 100644 index 0000000..fc7c5db --- /dev/null +++ b/payload/v1/hardware/production/designators.csv @@ -0,0 +1,56 @@ +:4 +C1:1 +C10:1 +C11:1 +C12:1 +C13:1 +C14:1 +C15:1 +C16:1 +C2:1 +C3:1 +C4:1 +C5:1 +C6:1 +C7:1 +C8:1 +C9:1 +D1:1 +D2:1 +D3:1 +D4:1 +D5:1 +D6:1 +J1:1 +J10:1 +J2:1 +J3:1 +J4:1 +J5:1 +J7:1 +JP1:1 +R1:1 +R10:1 +R11:1 +R12:1 +R13:1 +R17:1 +R18:1 +R2:1 +R3:1 +R4:1 +R5:1 +R6:1 +R7:1 +R8:1 +R9:1 +SW1:1 +U1:1 +U2:1 +U4:1 +U5:1 +U6:1 +U7:1 +U9:1 +Y1:1 +Y2:1 diff --git a/payload/v1/hardware/production/netlist.ipc b/payload/v1/hardware/production/netlist.ipc new file mode 100644 index 0000000..db232d9 --- /dev/null +++ b/payload/v1/hardware/production/netlist.ipc @@ -0,0 +1,1161 @@ +P CODE 00 +P UNITS CUST 0 +P arrayDim N +317GND VIA MD0118PA00X+056299Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045669Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043701Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-053543X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054409Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-026772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040866Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-026772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041181Y-046299X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-044094X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043858Y-036457X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058268Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040079Y-045197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041811Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-035197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042283Y-029685X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042520Y-037717X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057559Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-037795X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043071Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041496Y-052520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-036457X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056929Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-035197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036220Y-044094X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054409Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041339Y-049764X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055669Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-045669X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057575Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047559Y-035748X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043701Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053622Y-039528X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055039Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057008Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045669Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+029921Y-034646X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042520Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043071Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056378Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039843Y-049764X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057008Y-044331X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039370Y-039370X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042520Y-047638X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+031969Y-037362X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040945Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044094Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-036142X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042520Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045669Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042913Y-031260X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-037795X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-039370X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053780Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042520Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-031496X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041417Y-050787X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+052520Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046929Y-037165X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-034646X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039370Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056614Y-046378X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058189Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-045669X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046693Y-034331X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039370Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047795Y-034252X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057559Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+029921Y-045669X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-035433X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045669Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041417Y-051339X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+037795Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041417Y-029803X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054409Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043701Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040945Y-039370X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039685Y-052520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-035748X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+029921Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043701Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055197Y-043307X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039370Y-047244X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047244Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+031496Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042520Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058268Y-051870X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047244Y-034252X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040315Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+052126Y-036929X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-047244X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-035197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047244Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040866Y-049291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-026772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-034567X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+052520Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+029921Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036220Y-045669X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-044094X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043543Y-035276X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036102Y-052598X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+035433Y-033031X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053543Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043071Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-038425X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040945Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-034331X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043465Y-038661X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051496Y-036850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055669Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042441Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-053543X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051890Y-035512X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-035748X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040866Y-049764X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-031496X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-036220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041496Y-053622X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056378Y-044331X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039370Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053780Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055039Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057323Y-046693X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-035197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036220Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040945Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+052913Y-039370X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058268Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-031496X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040315Y-053622X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+052520Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+037795Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042520Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042441Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041969Y-047244X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058189Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051890Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047559Y-037165X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-037795X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-026772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042598Y-035039X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041811Y-033268X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+029921Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051890Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-034567X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-036457X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039685Y-053622X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053543Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-053543X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056378Y-043307X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036220Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055827Y-043307X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046378Y-036457X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058268Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036220Y-047244X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056614Y-029567X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-053543X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042441Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040394Y-049291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-037795X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051890Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058189Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+031496Y-045669X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044094Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054094Y-036535X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-040551X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054252Y-035039X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040945Y-046614X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041890Y-048268X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-034567X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054094Y-037717X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+031496Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041181Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043071Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+031496Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039370Y-037795X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055039Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056378Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051890Y-037480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055039Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044094Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-037795X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036811Y-031614X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+029921Y-026772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039764Y-050787X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055669Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039370Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057795Y-047323X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-053543X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040866Y-053622X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-035197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041496Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+052520Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041339Y-049291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041496Y-047717X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057008Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053543Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043386Y-036457X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044094Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053543Y-031496X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056220Y-046772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+029921Y-047244X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-026772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-045669X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-035197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036220Y-032402X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054409Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055827Y-044331X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041811Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+052520Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+052520Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-034567X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058189Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-029921X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039370Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-034567X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057579Y-045586X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053543Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050709Y-036063X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051417Y-035512X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041575Y-046693X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055669Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056299Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036220Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040945Y-047323X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041811Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053780Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039764Y-046063X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049134Y-035827X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-047323X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044094Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053780Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043465Y-036772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-035197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041181Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-031496X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-036220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044094Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045669Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058268Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-035827X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055669Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040472Y-046063X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040551Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040315Y-052520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+036220Y-036220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057008Y-047008X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058268Y-029921X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058189Y-044331X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042441Y-036299X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+037795Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043701Y-035748X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+031496Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-047244X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-034567X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-037480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039764Y-047874X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051890Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+052913Y-036929X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051496Y-036220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042598Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042677Y-048425X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044094Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057559Y-044331X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058189Y-043307X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040630Y-045748X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043228Y-034252X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040315Y-049764X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042520Y-039370X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053543Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+031496Y-047244X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039764Y-048504X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-053543X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057008Y-043307X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056063Y-045827X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047244Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039764Y-047244X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+029764Y-037283X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-047244X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042126Y-037087X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055039Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-050394X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046220Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+029921Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042126Y-047953X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058268Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054094Y-038976X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-045591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047244Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+037795Y-036220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053543Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-036220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042913Y-038110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+046850Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-029921X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047244Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054409Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053150Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053543Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-038583X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050630Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-039370X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-026772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-036457X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044094Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058189Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-035197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-039921X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056693Y-025197X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051811Y-034488X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047244Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053543Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055118Y-044331X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053307Y-043996X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048110Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045591Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+049370Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054882Y-044724X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039764Y-046614X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033071Y-034646X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041260Y-047008X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-040945X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057402Y-047717X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039764Y-051339X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039370Y-045669X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047244Y-053543X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047244Y-042520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-036220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058268Y-031496X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+047480Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051890Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+055433Y-045276X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053780Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+041811Y-049291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054409Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+056929Y-046142X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039764Y-045512X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033189Y-040591X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043701Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+053780Y-044961X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050000Y-037559X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-035748X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+059843Y-031496X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051969Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051890Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-038189X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+051260Y-034567X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058268Y-028346X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048819Y-031496X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-031496X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+057559Y-043307X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+048740Y-034567X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+031496Y-048819X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-036220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044094Y-053543X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+034646Y-055118X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+040866Y-052520X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-046220X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+050394Y-026772X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+042205Y-032323X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-039291X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043071Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043701Y-047480X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+054094Y-038425X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+045669Y-053543X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044961Y-048110X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+043071Y-046850X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+037795Y-033071X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+044331Y-035748X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+033583Y-038701X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+039685Y-051969X0236Y0000R000S-2004697133 +317GND VIA MD0118PA00X+058189Y-044961X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+032441Y-030236X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+029764Y-030591X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+055079Y-027677X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+045354Y-029331X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+036732Y-037087X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+041772Y-029803X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+054016Y-043346X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+039449Y-030236X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+054646Y-030787X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+054488Y-027913X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+057165Y-035394X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+037205Y-037087X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+037227Y-052798X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+057244Y-038031X0236Y0000R000S-2004697133 +317+3V3 VIA MD0118PA00X+036339Y-031102X0236Y0000R000S-2004697133 +317/CM4/CAN2- VIA MD0118PA00X+041142Y-027156X0236Y0000R000S-2004697133 +317/CM4/CAN2+ VIA MD0118PA00X+041142Y-027490X0236Y0000R000S-2004697133 +317OR/RAIL_8_VOUT VIA MD0118PA00X+056850Y-028622X0236Y0000R000S-2004697133 +317+5V VIA MD0118PA00X+038287Y-025827X0236Y0000R000S-2004697133 +317+5V VIA MD0118PA00X+037205Y-035138X0236Y0000R000S-2004697133 +317+5V VIA MD0118PA00X+038268Y-029685X0236Y0000R000S-2004697133 +317/CM4/CAN1+ VIA MD0118PA00X+036732Y-027313X0236Y0000R000S-2004697133 +317/CM4/CAN1- VIA MD0118PA00X+036732Y-027648X0236Y0000R000S-2004697133 +317NET-(J4-PIN_2) VIA MD0118PA00X+045118Y-036693X0236Y0000R000S-2004697133 +317NET-(J4-PIN_2) VIA MD0118PA00X+041772Y-037047X0236Y0000R000S-2004697133 +317NET-(J4-PIN_4) VIA MD0118PA00X+036496Y-034882X0236Y0000R000S-2004697133 +317NET-(J4-PIN_4) VIA MD0118PA00X+044916Y-034240X0236Y0000R000S-2004697133 +317NET-(J4-PIN_6) VIA MD0118PA00X+036260Y-034705X0236Y0000R000S-2004697133 +317NET-(J4-PIN_6) VIA MD0118PA00X+044685Y-034055X0236Y0000R000S-2004697133 +317NET-(J4-PIN_8) VIA MD0118PA00X+035984Y-034567X0236Y0000R000S-2004697133 +317NET-(J4-PIN_8) VIA MD0118PA00X+044409Y-033937X0236Y0000R000S-2004697133 +317~{MOTOR_FAULT} VIA MD0118PA00X+040512Y-030591X0236Y0000R000S-2004697133 +317~{MOTOR_FAULT} VIA MD0118PA00X+054670Y-029921X0236Y0000R000S-2004697133 +317~{MOTOR_FAULT} VIA MD0118PA00X+040984Y-037520X0236Y0000R000S-2004697133 +317/CM4/UART2_TX VIA MD0118PA00X+041523Y-026170X0236Y0000R000S-2004697133 +317/CM4/UART2_TX VIA MD0118PA00X+040827Y-035118X0236Y0000R000S-2004697133 +317M4/~{MOTOR_EN} VIA MD0118PA00X+055354Y-030000X0236Y0000R000S-2004697133 +317M4/~{MOTOR_EN} VIA MD0118PA00X+039390Y-031811X0236Y0000R000S-2004697133 +317M4/~{MOTOR_EN} VIA MD0118PA00X+039094Y-036457X0236Y0000R000S-2004697133 +317CM4/MOTOR_STEP VIA MD0118PA00X+055628Y-030110X0236Y0000R000S-2004697133 +317CM4/MOTOR_STEP VIA MD0118PA00X+038681Y-037303X0236Y0000R000S-2004697133 +317CM4/MOTOR_STEP VIA MD0118PA00X+038622Y-032047X0236Y0000R000S-2004697133 +317/CM4/MOTOR_DIR VIA MD0118PA00X+038858Y-032283X0236Y0000R000S-2004697133 +317/CM4/MOTOR_DIR VIA MD0118PA00X+055945Y-029646X0236Y0000R000S-2004697133 +317/CM4/MOTOR_DIR VIA MD0118PA00X+038976Y-037303X0236Y0000R000S-2004697133 +317~{MOTOR_SLEEP} VIA MD0118PA00X+050984Y-036732X0236Y0000R000S-2004697133 +317~{MOTOR_SLEEP} VIA MD0118PA00X+051732Y-027441X0236Y0000R000S-2004697133 +317~{MOTOR_SLEEP} VIA MD0118PA00X+040709Y-036457X0236Y0000R000S-2004697133 +317NLED_ACTIVITY) VIA MD0118PA00X+031496Y-035000X0236Y0000R000S-2004697133 +317NLED_ACTIVITY) VIA MD0118PA00X+041614Y-035118X0236Y0000R000S-2004697133 +317NLED_ACTIVITY) VIA MD0118PA00X+031457Y-030512X0236Y0000R000S-2004697133 +317/CM4/UART2_RX VIA MD0118PA00X+041752Y-026850X0236Y0000R000S-2004697133 +317/CM4/UART2_RX VIA MD0118PA00X+041142Y-036339X0236Y0000R000S-2004697133 +317/CM4/ETH_LED1 VIA MD0118PA00X+042160Y-034190X0236Y0000R000S-2004697133 +317/CM4/ETH_LED1 VIA MD0118PA00X+056063Y-032756X0236Y0000R000S-2004697133 +317/CM4/ETH_LED2 VIA MD0118PA00X+042008Y-033937X0236Y0000R000S-2004697133 +317/CM4/CAN1_INT VIA MD0118PA00X+038110Y-037087X0236Y0000R000S-2004697133 +317/CM4/CAN1_INT VIA MD0118PA00X+037520Y-030945X0236Y0000R000S-2004697133 +317/CM4/CAN1_INT VIA MD0118PA00X+041417Y-037047X0236Y0000R000S-2004697133 +317SCK VIA MD0118PA00X+041597Y-034272X0236Y0000R000S-2004697133 +317SCK VIA MD0118PA00X+045354Y-030827X0236Y0000R000S-2004697133 +317SCK VIA MD0118PA00X+041759Y-031352X0236Y0000R000S-2004697133 +317SCK VIA MD0118PA00X+039365Y-031442X0236Y0000R000S-2004697133 +317MISO VIA MD0118PA00X+039331Y-030787X0236Y0000R000S-2004697133 +317MISO VIA MD0118PA00X+041339Y-030984X0236Y0000R000S-2004697133 +317MISO VIA MD0118PA00X+045354Y-030236X0236Y0000R000S-2004697133 +317MISO VIA MD0118PA00X+041436Y-036319X0236Y0000R000S-2004697133 +317MOSI VIA MD0118PA00X+041319Y-034173X0236Y0000R000S-2004697133 +317MOSI VIA MD0118PA00X+041378Y-031299X0236Y0000R000S-2004697133 +317MOSI VIA MD0118PA00X+045354Y-030531X0236Y0000R000S-2004697133 +317MOSI VIA MD0118PA00X+039370Y-031142X0236Y0000R000S-2004697133 +317/CM4/UART1_TX VIA MD0118PA00X+041575Y-025354X0236Y0000R000S-2004697133 +317/CM4/UART1_TX VIA MD0118PA00X+041929Y-035945X0236Y0000R000S-2004697133 +317/CM4/UART1_TX VIA MD0118PA00X+040236Y-035827X0236Y0000R000S-2004697133 +317/CM4/UART1_RX VIA MD0118PA00X+041868Y-025318X0236Y0000R000S-2004697133 +317/CM4/UART1_RX VIA MD0118PA00X+040197Y-036417X0236Y0000R000S-2004697133 +317/CM4/UART1_RX VIA MD0118PA00X+042126Y-036220X0236Y0000R000S-2004697133 +317/CM4/CAN2_INT VIA MD0118PA00X+043228Y-030295X0236Y0000R000S-2004697133 +317/CM4/CAN2_INT VIA MD0118PA00X+039684Y-036434X0236Y0000R000S-2004697133 +317/CM4/CAN2_INT VIA MD0118PA00X+039843Y-030827X0236Y0000R000S-2004697133 +317CM4/~{CAN1_CS} VIA MD0118PA00X+039449Y-035138X0236Y0000R000S-2004697133 +317CM4/~{CAN1_CS} VIA MD0118PA00X+039483Y-030534X0236Y0000R000S-2004697133 +317CM4/~{CAN2_CS} VIA MD0118PA00X+045669Y-036693X0236Y0000R000S-2004697133 +317CM4/~{CAN2_CS} VIA MD0118PA00X+039449Y-037303X0236Y0000R000S-2004697133 +317CM4/~{CAN2_CS} VIA MD0118PA00X+045502Y-029980X0236Y0000R000S-2004697133 +317RAS/CAMERA_SCL VIA MD0118PA00X+037180Y-036431X0236Y0000R000S-2004697133 +317RAS/CAMERA_SCL VIA MD0118PA00X+037776Y-044429X0236Y0000R000S-2004697133 +317RAS/CAMERA_SCL VIA MD0118PA00X+037815Y-052756X0236Y0000R000S-2004697133 +317RAS/CAMERA_SCL VIA MD0118PA00X+054409Y-044213X0236Y0000R000S-2004697133 +317RAS/CAMERA_SDA VIA MD0118PA00X+036816Y-036443X0236Y0000R000S-2004697133 +317RAS/CAMERA_SDA VIA MD0118PA00X+037520Y-052756X0236Y0000R000S-2004697133 +317RAS/CAMERA_SDA VIA MD0118PA00X+054109Y-044207X0236Y0000R000S-2004697133 +317RAS/CAMERA_SDA VIA MD0118PA00X+037126Y-043661X0236Y0000R000S-2004697133 +317AS/CAMERA_GPIO VIA MD0118PA00X+054646Y-044390X0236Y0000R000S-2004697133 +317AS/CAMERA_GPIO VIA MD0118PA00X+035551Y-044803X0236Y0000R000S-2004697133 +317AS/CAMERA_GPIO VIA MD0118PA00X+035630Y-035866X0236Y0000R000S-2004697133 +317AS/CAMERA_GPIO VIA MD0118PA00X+036654Y-052244X0236Y0000R000S-2004697133 +327NET-(U5-TXCAN) U7 -1 A01X+041154Y-030413X0768Y0236R270S2 +327GND U7 -2 A01X+041654Y-030413X0768Y0236R270S2 +327+3V3 U7 -3 A01X+042154Y-030413X0768Y0236R270S2 +327NET-(U5-RXCAN) U7 -4 A01X+042654Y-030413X0768Y0236R270S2 +327(U7-VREF-PAD5) U7 -5 A01X+042654Y-028465X0768Y0236R270S2 +327/CM4/CAN2- U7 -6 A01X+042154Y-028465X0768Y0236R270S2 +327/CM4/CAN2+ U7 -7 A01X+041654Y-028465X0768Y0236R270S2 +327NET-(U7-RS) U7 -8 A01X+041154Y-028465X0768Y0236R270S2 +327NET-(U5-OSC2) C7 -1 A01X+041390Y-032083X0220Y0244R090S2 +327GND C7 -2 A01X+041390Y-032461X0220Y0244R090S2 +327OR/RAIL_8_VOUT C2 -1 A01X+056850Y-028906X0220Y0244R090S2 +327GND C2 -2 A01X+056850Y-029283X0220Y0244R090S2 +327OR/RAIL_8_VOUT C1 -1 A01X+056457Y-028906X0220Y0244R090S2 +327GND C1 -2 A01X+056457Y-029283X0220Y0244R090S2 +327NET-(U5-OSC1) C8 -1 A01X+042476Y-033287X0220Y0244R180S2 +327GND C8 -2 A01X+042098Y-033287X0220Y0244R180S2 +327+3V3 C9 -1 A01X+039165Y-029843X0220Y0244R180S2 +327GND C9 -2 A01X+038787Y-029843X0220Y0244R180S2 +327NET-(J3-CC1) R3 -1 A01X+046697Y-051969X0213Y0252R180S2 +327GND R3 -2 A01X+046295Y-051969X0213Y0252R180S2 +327+5V C14 -1 A01X+037173Y-034173X0220Y0244R000S2 +327GND C14 -2 A01X+037551Y-034173X0220Y0244R000S2 +327NET-(C4-PAD1) C4 -1 A01X+051811Y-036496X0220Y0244R090S2 +327GND C4 -2 A01X+051811Y-036874X0220Y0244R090S2 +327/CM4/CAN1+ R12 -1 A01X+035862Y-027874X0213Y0252R000S2 +327/CM4/CAN1- R12 -2 A01X+036264Y-027874X0213Y0252R000S2 +367N/C D1260UA00X+031376Y-026455X1260Y0000R000S0 +327NET-(U7-RS) R18 -1 A01X+040606Y-028476X0213Y0252R090S2 +327GND R18 -2 A01X+040606Y-028878X0213Y0252R090S2 +367N/C D1260UA00X+031376Y-053072X1260Y0000R000S0 +327NET-(U5-OSC2) Y2 -1 A01X+041969Y-031841X0551Y0453R090S2 +327GND Y2 -2 A01X+041969Y-032707X0551Y0453R090S2 +327NET-(U5-OSC1) Y2 -3 A01X+042598Y-032707X0551Y0453R090S2 +327GND Y2 -4 A01X+042598Y-031841X0551Y0453R090S2 +327NET-(U2-OSC1) C6 -1 A01X+036260Y-033465X0220Y0244R180S2 +327GND C6 -2 A01X+035882Y-033465X0220Y0244R180S2 +327NET-(U9-VREF) R9 -1 A01X+056335Y-030315X0213Y0252R000S2 +327GND R9 -2 A01X+056736Y-030315X0213Y0252R000S2 +327NET-(U2-OSC2) C5 -1 A01X+035236Y-032283X0220Y0244R090S2 +327GND C5 -2 A01X+035236Y-032661X0220Y0244R090S2 +367N/C J5 D0472UA00X+047244Y-030226X0472Y0000R000S0 +317NET-(J5-PIN_1) J5 -1 D0374PA00X+047874Y-029439X0669Y0768R000S0 +317NET-(J5-PIN_2) J5 -2 D0374PA00X+048858Y-029439X0669Y0768R000S0 +317NET-(J5-PIN_3) J5 -3 D0374PA00X+049843Y-029439X0669Y0768R000S0 +317NET-(J5-PIN_4) J5 -4 D0374PA00X+050827Y-029439X0669Y0768R000S0 +317J5-PIN_5-PAD5) J5 -5 D0374PA00X+051811Y-029439X0669Y0768R000S0 +327NET-(D1-K) R1 -1 A01X+031005Y-029370X0213Y0252R000S2 +327NET-(R1-PAD2) R1 -2 A01X+031406Y-029370X0213Y0252R000S2 +317GND J4 -1 D0394PA00X+047654Y-025433X0669Y0669R090S0 +317NET-(J4-PIN_2) J4 -2 D0394PA00X+047654Y-026433X0669Y0000R090S0 +317GND J4 -3 D0394PA00X+046654Y-025433X0669Y0000R090S0 +317NET-(J4-PIN_4) J4 -4 D0394PA00X+046654Y-026433X0669Y0000R090S0 +317GND J4 -5 D0394PA00X+045654Y-025433X0669Y0000R090S0 +317NET-(J4-PIN_6) J4 -6 D0394PA00X+045654Y-026433X0669Y0000R090S0 +317GND J4 -7 D0394PA00X+044654Y-025433X0669Y0000R090S0 +317NET-(J4-PIN_8) J4 -8 D0394PA00X+044654Y-026433X0669Y0000R090S0 +327NET-(U2-TXCAN) U4 -1 A01X+035313Y-030541X0768Y0236R270S2 +327GND U4 -2 A01X+035813Y-030541X0768Y0236R270S2 +327+3V3 U4 -3 A01X+036313Y-030541X0768Y0236R270S2 +327NET-(U2-RXCAN) U4 -4 A01X+036813Y-030541X0768Y0236R270S2 +327(U4-VREF-PAD5) U4 -5 A01X+036813Y-028593X0768Y0236R270S2 +327/CM4/CAN1- U4 -6 A01X+036313Y-028593X0768Y0236R270S2 +327/CM4/CAN1+ U4 -7 A01X+035813Y-028593X0768Y0236R270S2 +327NET-(U4-RS) U4 -8 A01X+035313Y-028593X0768Y0236R270S2 +327+5V C13 -1 A01X+037173Y-034567X0220Y0244R000S2 +327GND C13 -2 A01X+037551Y-034567X0220Y0244R000S2 +327NET-(U9-AISEN) R5 -1 A01X+053425Y-028253X0443Y0689R270S2 +327GND R5 -2 A01X+053425Y-027101X0443Y0689R270S2 +327NET-(J3-CC2) R4 -1 A01X+048146Y-051969X0213Y0252R000S2 +327GND R4 -2 A01X+048547Y-051969X0213Y0252R000S2 +327+3V3 R7 -1 A01X+054646Y-030591X0213Y0252R270S2 +327~{MOTOR_FAULT} R7 -2 A01X+054646Y-030189X0213Y0252R270S2 +327/CM4/UART2_TX D3 -1 A01X+041299Y-026102X0236Y0177R180S2 +327GND D3 -2 A01X+040472Y-026102X0236Y0177R180S2 +327+3V3 C11 -1 A01X+036173Y-031220X0220Y0244R180S2 +327GND C11 -2 A01X+035795Y-031220X0220Y0244R180S2 +327NET-(J5-PIN_1) U9 -1 A01X+054380Y-028332X0305Y0098R000S2 +327NET-(U9-AISEN) U9 -2 A01X+054380Y-028529X0305Y0098R000S2 +327NET-(J5-PIN_3) U9 -3 A01X+054380Y-028725X0305Y0098R000S2 +327NET-(J5-PIN_4) U9 -4 A01X+054380Y-028922X0305Y0098R000S2 +327NET-(U9-BISEN) U9 -5 A01X+054380Y-029119X0305Y0098R000S2 +327NET-(J5-PIN_2) U9 -6 A01X+054380Y-029316X0305Y0098R000S2 +327~{MOTOR_FAULT} U9 -7 A01X+054670Y-029606X0098Y0305R000S2 +327GND U9 -8 A01X+054867Y-029606X0098Y0305R000S2 +327GND U9 -9 A01X+055064Y-029606X0098Y0305R000S2 +327OFF_SEL-PAD10) U9 -10 A01X+055261Y-029606X0098Y0305R000S2 +327M4/~{MOTOR_EN} U9 -11 A01X+055458Y-029606X0098Y0305R000S2 +327CM4/MOTOR_STEP U9 -12 A01X+055655Y-029606X0098Y0305R000S2 +327/CM4/MOTOR_DIR U9 -13 A01X+055945Y-029316X0305Y0098R000S2 +327NET-(U9-VREF) U9 -14 A01X+055945Y-029119X0305Y0098R000S2 +327OR/RAIL_8_VOUT U9 -15 A01X+055945Y-028922X0305Y0098R000S2 +327-(U9-NC-PAD16) U9 -16 A01X+055945Y-028725X0305Y0098R000S2 +327NET-(U9-VINT) U9 -17 A01X+055945Y-028529X0305Y0098R000S2 +327GND U9 -18 A01X+055945Y-028332X0305Y0098R000S2 +327+3V3 U9 -19 A01X+055655Y-028041X0098Y0305R000S2 +327GND U9 -20 A01X+055458Y-028041X0098Y0305R000S2 +327GND U9 -21 A01X+055261Y-028041X0098Y0305R000S2 +327+3V3 U9 -22 A01X+055064Y-028041X0098Y0305R000S2 +327~{MOTOR_SLEEP} U9 -23 A01X+054867Y-028041X0098Y0305R000S2 +327+3V3 U9 -24 A01X+054670Y-028041X0098Y0305R000S2 +317GND U9 -25 D0079PA00X+054779Y-028440X0197Y0000R000S3 +317GND U9 -25 D0079PA00X+054779Y-028824X0197Y0000R000S3 +317GND U9 -25 D0079PA00X+054779Y-029208X0197Y0000R000S3 +317GND U9 -25 D0079PA00X+055162Y-028440X0197Y0000R000S3 +317GND U9 -25 D0079PA00X+055162Y-028824X0197Y0000R000S3 +327GND U9 -25 A01X+055162Y-028824X0965Y0965R000S2 +327GND U9 -25 A04X+055162Y-028824X0965Y0965R000S3 +317GND U9 -25 D0079PA00X+055162Y-029208X0197Y0000R000S3 +317GND U9 -25 D0079PA00X+055546Y-028440X0197Y0000R000S3 +317GND U9 -25 D0079PA00X+055546Y-028824X0197Y0000R000S3 +317GND U9 -25 D0079PA00X+055546Y-029208X0197Y0000R000S3 +327/CM4/CAN2+ R13 -1 A01X+041689Y-027717X0213Y0252R000S2 +327/CM4/CAN2- R13 -2 A01X+042091Y-027717X0213Y0252R000S2 +327NET-(D2-K) R2 -1 A01X+031005Y-030157X0213Y0252R000S2 +327NLED_ACTIVITY) R2 -2 A01X+031406Y-030157X0213Y0252R000S2 +367N/C D1260UA00X+057994Y-053072X1260Y0000R000S0 +327NET-(D2-K) D2 -1 A01X+030512Y-030157X0384Y0551R180S2 +327+3V3 D2 -2 A01X+029774Y-030157X0384Y0551R180S2 +367N/C J3 D0256UA00X+046256Y-053000X0256Y0000R000S0 +367N/C J3 D0256UA00X+048531Y-053000X0256Y0000R000S0 +327GND J3 -A1 A01X+046134Y-052577X0236Y0453R000S2 +327J3-VBUS-PADA4) J3 -A4 A01X+046449Y-052577X0236Y0453R000S2 +327NET-(J3-CC1) J3 -A5 A01X+046902Y-052577X0118Y0453R000S2 +327/CM4/USB_D+ J3 -A6 A01X+047295Y-052577X0118Y0453R000S2 +327/CM4/USB_D- J3 -A7 A01X+047492Y-052577X0118Y0453R000S2 +327J3-SBU1-PADA8) J3 -A8 A01X+047886Y-052577X0118Y0453R000S2 +327J3-VBUS-PADA4) J3 -A9 A01X+048339Y-052577X0236Y0453R000S2 +327GND J3 -A12 A01X+048654Y-052577X0236Y0453R000S2 +327GND J3 -B1 A01X+048654Y-052577X0236Y0453R000S2 +327J3-VBUS-PADA4) J3 -B4 A01X+048339Y-052577X0236Y0453R000S2 +327NET-(J3-CC2) J3 -B5 A01X+048083Y-052577X0118Y0453R000S2 +327/CM4/USB_D+ J3 -B6 A01X+047689Y-052577X0118Y0453R000S2 +327/CM4/USB_D- J3 -B7 A01X+047098Y-052577X0118Y0453R000S2 +327J3-SBU2-PADB8) J3 -B8 A01X+046705Y-052577X0118Y0453R000S2 +327J3-VBUS-PADA4) J3 -B9 A01X+046449Y-052577X0236Y0453R000S2 +327GND J3 -B12 A01X+046134Y-052577X0236Y0453R000S2 +327GND J3 -SH A01X+045382Y-052803X0858Y0787R000S2 +327GND J3 -SH A01X+045382Y-054350X0858Y0787R000S2 +327GND J3 -SH A01X+049406Y-052803X0858Y0787R000S2 +327GND J3 -SH A01X+049406Y-054350X0858Y0787R000S2 +327/CM4/UART2_RX D4 -1 A01X+042008Y-026594X0236Y0177R270S2 +327GND D4 -2 A01X+042008Y-025768X0236Y0177R270S2 +367N/C U1 D1063UA00X+030866Y-036339X1063Y0000R000S0 +367N/C U1 D1063UA00X+030866Y-049331X1063Y0000R000S0 +367N/C U1 D1063UA00X+049764Y-036339X1063Y0000R000S0 +367N/C U1 D1063UA00X+049764Y-049331X1063Y0000R000S0 +327GND U1 -1 A01X+043189Y-035535X0079Y0276R180S2 +327GND U1 -2 A01X+043189Y-036748X0079Y0276R180S2 +327/CM4/ETH_P3+ U1 -3 A01X+043031Y-035535X0079Y0276R180S2 +327/CM4/ETH_P1+ U1 -4 A01X+043031Y-036748X0079Y0276R180S2 +327/CM4/ETH_P3- U1 -5 A01X+042874Y-035535X0079Y0276R180S2 +327/CM4/ETH_P1- U1 -6 A01X+042874Y-036748X0079Y0276R180S2 +327GND U1 -7 A01X+042717Y-035535X0079Y0276R180S2 +327GND U1 -8 A01X+042717Y-036748X0079Y0276R180S2 +327/CM4/ETH_P2- U1 -9 A01X+042559Y-035535X0079Y0276R180S2 +327/CM4/ETH_P0- U1 -10 A01X+042559Y-036748X0079Y0276R180S2 +327/CM4/ETH_P2+ U1 -11 A01X+042402Y-035535X0079Y0276R180S2 +327/CM4/ETH_P0+ U1 -12 A01X+042402Y-036748X0079Y0276R180S2 +327GND U1 -13 A01X+042244Y-035535X0079Y0276R180S2 +327GND U1 -14 A01X+042244Y-036748X0079Y0276R180S2 +327/CM4/ETH_LED1 U1 -15 A01X+042087Y-035535X0079Y0276R180S2 +327SYNC_IN-PAD16) U1 -16 A01X+042087Y-036748X0079Y0276R180S2 +327/CM4/ETH_LED2 U1 -17 A01X+041929Y-035535X0079Y0276R180S2 +327YNC_OUT-PAD18) U1 -18 A01X+041929Y-036748X0079Y0276R180S2 +327T_NLED1-PAD19) U1 -19 A01X+041772Y-035535X0079Y0276R180S2 +327NET-(J4-PIN_2) U1 -20 A01X+041772Y-036748X0079Y0276R180S2 +327NLED_ACTIVITY) U1 -21 A01X+041614Y-035535X0079Y0276R180S2 +327GND U1 -22 A01X+041614Y-036748X0079Y0276R180S2 +327GND U1 -23 A01X+041457Y-035535X0079Y0276R180S2 +327/CM4/CAN1_INT U1 -24 A01X+041457Y-036748X0079Y0276R180S2 +327SCK U1 -25 A01X+041299Y-035535X0079Y0276R180S2 +327MISO U1 -26 A01X+041299Y-036748X0079Y0276R180S2 +327MOSI U1 -27 A01X+041142Y-035535X0079Y0276R180S2 +327/CM4/UART2_RX U1 -28 A01X+041142Y-036748X0079Y0276R180S2 +327-GPIO16-PAD29) U1 -29 A01X+040984Y-035535X0079Y0276R180S2 +327~{MOTOR_FAULT} U1 -30 A01X+040984Y-036748X0079Y0276R180S2 +327/CM4/UART2_TX U1 -31 A01X+040827Y-035535X0079Y0276R180S2 +327GND U1 -32 A01X+040827Y-036748X0079Y0276R180S2 +327GND U1 -33 A01X+040669Y-035535X0079Y0276R180S2 +327~{MOTOR_SLEEP} U1 -34 A01X+040669Y-036748X0079Y0276R180S2 +327A-ID_SC-PAD35) U1 -35 A01X+040512Y-035535X0079Y0276R180S2 +327A-ID_SD-PAD36) U1 -36 A01X+040512Y-036748X0079Y0276R180S2 +327A-GPIO7-PAD37) U1 -37 A01X+040354Y-035535X0079Y0276R180S2 +327-GPIO11-PAD38) U1 -38 A01X+040354Y-036748X0079Y0276R180S2 +327/CM4/UART1_TX U1 -39 A01X+040197Y-035535X0079Y0276R180S2 +327/CM4/UART1_RX U1 -40 A01X+040197Y-036748X0079Y0276R180S2 +327-GPIO25-PAD41) U1 -41 A01X+040039Y-035535X0079Y0276R180S2 +327GND U1 -42 A01X+040039Y-036748X0079Y0276R180S2 +327GND U1 -43 A01X+039882Y-035535X0079Y0276R180S2 +327-GPIO10-PAD44) U1 -44 A01X+039882Y-036748X0079Y0276R180S2 +327-GPIO24-PAD45) U1 -45 A01X+039724Y-035535X0079Y0276R180S2 +327-GPIO22-PAD46) U1 -46 A01X+039724Y-036748X0079Y0276R180S2 +327-GPIO23-PAD47) U1 -47 A01X+039567Y-035535X0079Y0276R180S2 +327/CM4/CAN2_INT U1 -48 A01X+039567Y-036748X0079Y0276R180S2 +327CM4/~{CAN1_CS} U1 -49 A01X+039409Y-035535X0079Y0276R180S2 +327CM4/~{CAN2_CS} U1 -50 A01X+039409Y-036748X0079Y0276R180S2 +327-GPIO15-PAD51) U1 -51 A01X+039252Y-035535X0079Y0276R180S2 +327GND U1 -52 A01X+039252Y-036748X0079Y0276R180S2 +327GND U1 -53 A01X+039094Y-035535X0079Y0276R180S2 +327M4/~{MOTOR_EN} U1 -54 A01X+039094Y-036748X0079Y0276R180S2 +327-GPIO14-PAD55) U1 -55 A01X+038937Y-035535X0079Y0276R180S2 +327/CM4/MOTOR_DIR U1 -56 A01X+038937Y-036748X0079Y0276R180S2 +327-SD_CLK-PAD57) U1 -57 A01X+038780Y-035535X0079Y0276R180S2 +327CM4/MOTOR_STEP U1 -58 A01X+038780Y-036748X0079Y0276R180S2 +327GND U1 -59 A01X+038622Y-035535X0079Y0276R180S2 +327GND U1 -60 A01X+038622Y-036748X0079Y0276R180S2 +327SD_DAT3-PAD61) U1 -61 A01X+038465Y-035535X0079Y0276R180S2 +327-SD_CMD-PAD62) U1 -62 A01X+038465Y-036748X0079Y0276R180S2 +327SD_DAT0-PAD63) U1 -63 A01X+038307Y-035535X0079Y0276R180S2 +327SD_DAT5-PAD64) U1 -64 A01X+038307Y-036748X0079Y0276R180S2 +327GND U1 -65 A01X+038150Y-035535X0079Y0276R180S2 +327GND U1 -66 A01X+038150Y-036748X0079Y0276R180S2 +327SD_DAT1-PAD67) U1 -67 A01X+037992Y-035535X0079Y0276R180S2 +327SD_DAT4-PAD68) U1 -68 A01X+037992Y-036748X0079Y0276R180S2 +327SD_DAT2-PAD69) U1 -69 A01X+037835Y-035535X0079Y0276R180S2 +327SD_DAT7-PAD70) U1 -70 A01X+037835Y-036748X0079Y0276R180S2 +327GND U1 -71 A01X+037677Y-035535X0079Y0276R180S2 +327SD_DAT6-PAD72) U1 -72 A01X+037677Y-036748X0079Y0276R180S2 +327VERRIDE-PAD73) U1 -73 A01X+037520Y-035535X0079Y0276R180S2 +327GND U1 -74 A01X+037520Y-036748X0079Y0276R180S2 +327_PWR_ON-PAD75) U1 -75 A01X+037362Y-035535X0079Y0276R180S2 +327ESERVED-PAD76) U1 -76 A01X+037362Y-036748X0079Y0276R180S2 +327+5V U1 -77 A01X+037205Y-035535X0079Y0276R180S2 +327+3V3 U1 -78 A01X+037205Y-036748X0079Y0276R180S2 +327+5V U1 -79 A01X+037047Y-035535X0079Y0276R180S2 +327RAS/CAMERA_SCL U1 -80 A01X+037047Y-036748X0079Y0276R180S2 +327+5V U1 -81 A01X+036890Y-035535X0079Y0276R180S2 +327RAS/CAMERA_SDA U1 -82 A01X+036890Y-036748X0079Y0276R180S2 +327+5V U1 -83 A01X+036732Y-035535X0079Y0276R180S2 +327+3V3 U1 -84 A01X+036732Y-036748X0079Y0276R180S2 +327+5V U1 -85 A01X+036575Y-035535X0079Y0276R180S2 +327+3V3 U1 -86 A01X+036575Y-036748X0079Y0276R180S2 +327+5V U1 -87 A01X+036417Y-035535X0079Y0276R180S2 +327_1.8V-PAD88)_1 U1 -88 A01X+036417Y-036748X0079Y0276R180S2 +327NET-(J4-PIN_4) U1 -89 A01X+036260Y-035535X0079Y0276R180S2 +327M4_1.8V-PAD88) U1 -90 A01X+036260Y-036748X0079Y0276R180S2 +327NET-(J4-PIN_6) U1 -91 A01X+036102Y-035535X0079Y0276R180S2 +3274/~{POWER_OFF} U1 -92 A01X+036102Y-036748X0079Y0276R180S2 +327NET-(J4-PIN_8) U1 -93 A01X+035945Y-035535X0079Y0276R180S2 +327ALOGIP1-PAD94) U1 -94 A01X+035945Y-036748X0079Y0276R180S2 +327A-PI_LED_NPWR) U1 -95 A01X+035787Y-035535X0079Y0276R180S2 +327ALOGIP0-PAD96) U1 -96 A01X+035787Y-036748X0079Y0276R180S2 +327AS/CAMERA_GPIO U1 -97 A01X+035630Y-035535X0079Y0276R180S2 +327GND U1 -98 A01X+035630Y-036748X0079Y0276R180S2 +3274/POWER_BUTTON U1 -99 A01X+035472Y-035535X0079Y0276R180S2 +327EXTRST-PAD100) U1 -100 A01X+035472Y-036748X0079Y0276R180S2 +327GND U1 -101 A01X+043189Y-048921X0079Y0276R180S2 +327K_NREQ-PAD102) U1 -102 A01X+043189Y-050134X0079Y0276R180S2 +327/CM4/USB_D- U1 -103 A01X+043031Y-048921X0079Y0276R180S2 +327SERVED-PAD104) U1 -104 A01X+043031Y-050134X0079Y0276R180S2 +327/CM4/USB_D+ U1 -105 A01X+042874Y-048921X0079Y0276R180S2 +327SERVED-PAD106) U1 -106 A01X+042874Y-050134X0079Y0276R180S2 +327GND U1 -107 A01X+042717Y-048921X0079Y0276R180S2 +327GND U1 -108 A01X+042717Y-050134X0079Y0276R180S2 +327E_NRST-PAD109) U1 -109 A01X+042559Y-048921X0079Y0276R180S2 +327_CLK_P-PAD110) U1 -110 A01X+042559Y-050134X0079Y0276R180S2 +327C_COMP-PAD111) U1 -111 A01X+042402Y-048921X0079Y0276R180S2 +327_CLK_N-PAD112) U1 -112 A01X+042402Y-050134X0079Y0276R180S2 +327GND U1 -113 A01X+042244Y-048921X0079Y0276R180S2 +327GND U1 -114 A01X+042244Y-050134X0079Y0276R180S2 +327MERAS/CAM1_D0- U1 -115 A01X+042087Y-048921X0079Y0276R180S2 +327E_RX_P-PAD116) U1 -116 A01X+042087Y-050134X0079Y0276R180S2 +327MERAS/CAM1_D0+ U1 -117 A01X+041929Y-048921X0079Y0276R180S2 +327E_RX_N-PAD118) U1 -118 A01X+041929Y-050134X0079Y0276R180S2 +327GND U1 -119 A01X+041772Y-048921X0079Y0276R180S2 +327GND U1 -120 A01X+041772Y-050134X0079Y0276R180S2 +327MERAS/CAM1_D1- U1 -121 A01X+041614Y-048921X0079Y0276R180S2 +327E_TX_P-PAD122) U1 -122 A01X+041614Y-050134X0079Y0276R180S2 +327MERAS/CAM1_D1+ U1 -123 A01X+041457Y-048921X0079Y0276R180S2 +327E_TX_N-PAD124) U1 -124 A01X+041457Y-050134X0079Y0276R180S2 +327GND U1 -125 A01X+041299Y-048921X0079Y0276R180S2 +327GND U1 -126 A01X+041299Y-050134X0079Y0276R180S2 +327AMERAS/CAM1_C- U1 -127 A01X+041142Y-048921X0079Y0276R180S2 +327MERAS/CAM0_D0- U1 -128 A01X+041142Y-050134X0079Y0276R180S2 +327AMERAS/CAM1_C+ U1 -129 A01X+040984Y-048921X0079Y0276R180S2 +327MERAS/CAM0_D0+ U1 -130 A01X+040984Y-050134X0079Y0276R180S2 +327GND U1 -131 A01X+040827Y-048921X0079Y0276R180S2 +327GND U1 -132 A01X+040827Y-050134X0079Y0276R180S2 +327MERAS/CAM1_D2- U1 -133 A01X+040669Y-048921X0079Y0276R180S2 +327MERAS/CAM0_D1- U1 -134 A01X+040669Y-050134X0079Y0276R180S2 +327MERAS/CAM1_D2+ U1 -135 A01X+040512Y-048921X0079Y0276R180S2 +327MERAS/CAM0_D1+ U1 -136 A01X+040512Y-050134X0079Y0276R180S2 +327GND U1 -137 A01X+040354Y-048921X0079Y0276R180S2 +327GND U1 -138 A01X+040354Y-050134X0079Y0276R180S2 +327MERAS/CAM1_D3- U1 -139 A01X+040197Y-048921X0079Y0276R180S2 +327AMERAS/CAM0_C- U1 -140 A01X+040197Y-050134X0079Y0276R180S2 +327MERAS/CAM1_D3+ U1 -141 A01X+040039Y-048921X0079Y0276R180S2 +327AMERAS/CAM0_C+ U1 -142 A01X+040039Y-050134X0079Y0276R180S2 +327OTPLUG-PAD143) U1 -143 A01X+039882Y-048921X0079Y0276R180S2 +327GND U1 -144 A01X+039882Y-050134X0079Y0276R180S2 +327I1_SDA-PAD145) U1 -145 A01X+039724Y-048921X0079Y0276R180S2 +327_TX2_P-PAD146) U1 -146 A01X+039724Y-050134X0079Y0276R180S2 +327I1_SCL-PAD147) U1 -147 A01X+039567Y-048921X0079Y0276R180S2 +327_TX2_N-PAD148) U1 -148 A01X+039567Y-050134X0079Y0276R180S2 +327I1_CEC-PAD149) U1 -149 A01X+039409Y-048921X0079Y0276R180S2 +327GND U1 -150 A01X+039409Y-050134X0079Y0276R180S2 +327I0_CEC-PAD151) U1 -151 A01X+039252Y-048921X0079Y0276R180S2 +327_TX1_P-PAD152) U1 -152 A01X+039252Y-050134X0079Y0276R180S2 +327OTPLUG-PAD153) U1 -153 A01X+039094Y-048921X0079Y0276R180S2 +327_TX1_N-PAD154) U1 -154 A01X+039094Y-050134X0079Y0276R180S2 +327GND U1 -155 A01X+038937Y-048921X0079Y0276R180S2 +327GND U1 -156 A01X+038937Y-050134X0079Y0276R180S2 +3270_D0_N-PAD157) U1 -157 A01X+038780Y-048921X0079Y0276R180S2 +327_TX0_P-PAD158) U1 -158 A01X+038780Y-050134X0079Y0276R180S2 +3270_D0_P-PAD159) U1 -159 A01X+038622Y-048921X0079Y0276R180S2 +327_TX0_N-PAD160) U1 -160 A01X+038622Y-050134X0079Y0276R180S2 +327GND U1 -161 A01X+038465Y-048921X0079Y0276R180S2 +327GND U1 -162 A01X+038465Y-050134X0079Y0276R180S2 +3270_D1_N-PAD163) U1 -163 A01X+038307Y-048921X0079Y0276R180S2 +327_CLK_P-PAD164) U1 -164 A01X+038307Y-050134X0079Y0276R180S2 +3270_D1_P-PAD165) U1 -165 A01X+038150Y-048921X0079Y0276R180S2 +327_CLK_N-PAD166) U1 -166 A01X+038150Y-050134X0079Y0276R180S2 +327GND U1 -167 A01X+037992Y-048921X0079Y0276R180S2 +327GND U1 -168 A01X+037992Y-050134X0079Y0276R180S2 +327I0_C_N-PAD169) U1 -169 A01X+037835Y-048921X0079Y0276R180S2 +327_TX2_P-PAD170) U1 -170 A01X+037835Y-050134X0079Y0276R180S2 +327I0_C_P-PAD171) U1 -171 A01X+037677Y-048921X0079Y0276R180S2 +327_TX2_N-PAD172) U1 -172 A01X+037677Y-050134X0079Y0276R180S2 +327GND U1 -173 A01X+037520Y-048921X0079Y0276R180S2 +327GND U1 -174 A01X+037520Y-050134X0079Y0276R180S2 +3271_D0_N-PAD175) U1 -175 A01X+037362Y-048921X0079Y0276R180S2 +327_TX1_P-PAD176) U1 -176 A01X+037362Y-050134X0079Y0276R180S2 +3271_D0_P-PAD177) U1 -177 A01X+037205Y-048921X0079Y0276R180S2 +327_TX1_N-PAD178) U1 -178 A01X+037205Y-050134X0079Y0276R180S2 +327GND U1 -179 A01X+037047Y-048921X0079Y0276R180S2 +327GND U1 -180 A01X+037047Y-050134X0079Y0276R180S2 +3271_D1_N-PAD181) U1 -181 A01X+036890Y-048921X0079Y0276R180S2 +327_TX0_P-PAD182) U1 -182 A01X+036890Y-050134X0079Y0276R180S2 +3271_D1_P-PAD183) U1 -183 A01X+036732Y-048921X0079Y0276R180S2 +327_TX0_N-PAD184) U1 -184 A01X+036732Y-050134X0079Y0276R180S2 +327GND U1 -185 A01X+036575Y-048921X0079Y0276R180S2 +327GND U1 -186 A01X+036575Y-050134X0079Y0276R180S2 +327I1_C_N-PAD187) U1 -187 A01X+036417Y-048921X0079Y0276R180S2 +327_CLK_P-PAD188) U1 -188 A01X+036417Y-050134X0079Y0276R180S2 +327I1_C_P-PAD189) U1 -189 A01X+036260Y-048921X0079Y0276R180S2 +327_CLK_N-PAD190) U1 -190 A01X+036260Y-050134X0079Y0276R180S2 +327GND U1 -191 A01X+036102Y-048921X0079Y0276R180S2 +327GND U1 -192 A01X+036102Y-050134X0079Y0276R180S2 +3271_D2_N-PAD193) U1 -193 A01X+035945Y-048921X0079Y0276R180S2 +3271_D3_N-PAD194) U1 -194 A01X+035945Y-050134X0079Y0276R180S2 +3271_D2_P-PAD195) U1 -195 A01X+035787Y-048921X0079Y0276R180S2 +3271_D3_P-PAD196) U1 -196 A01X+035787Y-050134X0079Y0276R180S2 +327GND U1 -197 A01X+035630Y-048921X0079Y0276R180S2 +327GND U1 -198 A01X+035630Y-050134X0079Y0276R180S2 +327I0_SDA-PAD199) U1 -199 A01X+035472Y-048921X0079Y0276R180S2 +327I0_SCL-PAD200) U1 -200 A01X+035472Y-050134X0079Y0276R180S2 +327+3V3 C16 -1 A01X+053701Y-044409X0220Y0244R180S2 +327GND C16 -2 A01X+053323Y-044409X0220Y0244R180S2 +327+3V3 C15 -1 A01X+036843Y-052520X0220Y0244R180S2 +327GND C15 -2 A01X+036465Y-052520X0220Y0244R180S2 +327NET-(D1-K) D1 -1 A01X+030512Y-029386X0384Y0551R180S2 +327+3V3 D1 -2 A01X+029774Y-029386X0384Y0551R180S2 +327NET-(U9-VINT) C3 -1 A01X+056378Y-028535X0220Y0244R270S2 +327GND C3 -2 A01X+056378Y-028157X0220Y0244R270S2 +327/CM4/UART1_RX D6 -1 A01X+041280Y-025354X0236Y0177R180S2 +327GND D6 -2 A01X+040453Y-025354X0236Y0177R180S2 +327/CM4/UART1_TX D5 -1 A01X+041280Y-024606X0236Y0177R180S2 +327GND D5 -2 A01X+040453Y-024606X0236Y0177R180S2 +367N/C D1260UA00X+057994Y-026455X1260Y0000R000S0 +327NET-(JP1-B) SW1 -1 A01X+030502Y-031545X0413Y0256R090S2 +327NET-(JP1-B) SW1 -1 A01X+030502Y-033179X0413Y0256R090S2 +3274/POWER_BUTTON SW1 -2 A01X+029656Y-031545X0413Y0256R090S2 +3274/POWER_BUTTON SW1 -2 A01X+029656Y-033179X0413Y0256R090S2 +327NET-(U9-BISEN) R6 -1 A01X+053425Y-029213X0443Y0689R090S2 +327GND R6 -2 A01X+053425Y-030364X0443Y0689R090S2 +327D-(U6-NC-PAD1) U6 -1 A01X+033332Y-030492X0522Y0236R180S2 +327A-PI_LED_NPWR) U6 -2 A01X+033332Y-030118X0522Y0236R180S2 +327GND U6 -3 A01X+033332Y-029744X0522Y0236R180S2 +327NET-(R1-PAD2) U6 -4 A01X+032436Y-029744X0522Y0236R180S2 +327+3V3 U6 -5 A01X+032436Y-030492X0522Y0236R180S2 +327NET-(U2-TXCAN) U2 -1 A01X+037851Y-030253X0335Y0138R000S2 +327NET-(U2-RXCAN) U2 -2 A01X+037851Y-030509X0335Y0138R000S2 +327LASH}SOF-PAD3) U2 -3 A01X+037851Y-030765X0335Y0138R000S2 +327/CM4/CAN1_INT U2 -4 A01X+037851Y-031021X0335Y0138R000S2 +327NET-(U2-OSC2) U2 -5 A01X+037851Y-031277X0335Y0138R000S2 +327NET-(U2-OSC1) U2 -6 A01X+037851Y-031533X0335Y0138R000S2 +327GND U2 -7 A01X+037851Y-031789X0335Y0138R000S2 +327SH}GPIO1-PAD8) U2 -8 A01X+039032Y-031789X0335Y0138R000S2 +327SH}XSTBY-PAD9) U2 -9 A01X+039032Y-031533X0335Y0138R000S2 +327SCK U2 -10 A01X+039032Y-031277X0335Y0138R000S2 +327MOSI U2 -11 A01X+039032Y-031021X0335Y0138R000S2 +327MISO U2 -12 A01X+039032Y-030765X0335Y0138R000S2 +327CM4/~{CAN1_CS} U2 -13 A01X+039032Y-030509X0335Y0138R000S2 +327+3V3 U2 -14 A01X+039032Y-030253X0335Y0138R000S2 +327GND U2 -15 A01X+038442Y-031021X0650Y1673R000S2 +327+3V3 C12 -1 A01X+042371Y-031089X0220Y0244R180S2 +327GND C12 -2 A01X+041993Y-031089X0220Y0244R180S2 +327NET-(J2-PAD13) R10 -1 A01X+057244Y-038709X0213Y0252R270S2 +327+3V3 R10 -2 A01X+057244Y-038307X0213Y0252R270S2 +327OR/RAIL_8_VOUT R8 -1 A01X+056736Y-029921X0213Y0252R180S2 +327NET-(U9-VREF) R8 -2 A01X+056335Y-029921X0213Y0252R180S2 +327+3V3 J7 -1 A01X+037343Y-053150X0118Y0433R000S2 +327RAS/CAMERA_SDA J7 -2 A01X+037539Y-053150X0118Y0433R000S2 +327RAS/CAMERA_SCL J7 -3 A01X+037736Y-053150X0118Y0433R000S2 +327GND J7 -4 A01X+037933Y-053150X0118Y0433R000S2 +327-CAM_IO1-PAD5) J7 -5 A01X+038130Y-053150X0118Y0433R000S2 +327AS/CAMERA_GPIO J7 -6 A01X+038327Y-053150X0118Y0433R000S2 +327GND J7 -7 A01X+038524Y-053150X0118Y0433R000S2 +327-CAM_D3+-PAD8) J7 -8 A01X+038720Y-053150X0118Y0433R000S2 +327-CAM_D3--PAD9) J7 -9 A01X+038917Y-053150X0118Y0433R000S2 +327GND J7 -10 A01X+039114Y-053150X0118Y0433R000S2 +327CAM_D2+-PAD11) J7 -11 A01X+039311Y-053150X0118Y0433R000S2 +327CAM_D2--PAD12) J7 -12 A01X+039508Y-053150X0118Y0433R000S2 +327GND J7 -13 A01X+039705Y-053150X0118Y0433R000S2 +327AMERAS/CAM0_C+ J7 -14 A01X+039902Y-053150X0118Y0433R000S2 +327AMERAS/CAM0_C- J7 -15 A01X+040098Y-053150X0118Y0433R000S2 +327GND J7 -16 A01X+040295Y-053150X0118Y0433R000S2 +327MERAS/CAM0_D1+ J7 -17 A01X+040492Y-053150X0118Y0433R000S2 +327MERAS/CAM0_D1- J7 -18 A01X+040689Y-053150X0118Y0433R000S2 +327GND J7 -19 A01X+040886Y-053150X0118Y0433R000S2 +327MERAS/CAM0_D0+ J7 -20 A01X+041083Y-053150X0118Y0433R000S2 +327MERAS/CAM0_D0- J7 -21 A01X+041280Y-053150X0118Y0433R000S2 +327GND J7 -22 A01X+041476Y-053150X0118Y0433R000S2 +327N/C J7 -MP A01X+036457Y-053593X0394Y0394R000S2 +327N/C J7 -MP A01X+042362Y-053593X0394Y0394R000S2 +327GND J1 -1 A01X+058169Y-043780X0118Y0433R180S2 +327MERAS/CAM1_D0- J1 -2 A01X+057972Y-043780X0118Y0433R180S2 +327MERAS/CAM1_D0+ J1 -3 A01X+057776Y-043780X0118Y0433R180S2 +327GND J1 -4 A01X+057579Y-043780X0118Y0433R180S2 +327MERAS/CAM1_D1- J1 -5 A01X+057382Y-043780X0118Y0433R180S2 +327MERAS/CAM1_D1+ J1 -6 A01X+057185Y-043780X0118Y0433R180S2 +327GND J1 -7 A01X+056988Y-043780X0118Y0433R180S2 +327AMERAS/CAM1_C- J1 -8 A01X+056791Y-043780X0118Y0433R180S2 +327AMERAS/CAM1_C+ J1 -9 A01X+056594Y-043780X0118Y0433R180S2 +327GND J1 -10 A01X+056398Y-043780X0118Y0433R180S2 +327MERAS/CAM1_D2- J1 -11 A01X+056201Y-043780X0118Y0433R180S2 +327MERAS/CAM1_D2+ J1 -12 A01X+056004Y-043780X0118Y0433R180S2 +327GND J1 -13 A01X+055807Y-043780X0118Y0433R180S2 +327MERAS/CAM1_D3- J1 -14 A01X+055610Y-043780X0118Y0433R180S2 +327MERAS/CAM1_D3+ J1 -15 A01X+055413Y-043780X0118Y0433R180S2 +327GND J1 -16 A01X+055217Y-043780X0118Y0433R180S2 +327AS/CAMERA_GPIO J1 -17 A01X+055020Y-043780X0118Y0433R180S2 +327CAM_IO1-PAD18) J1 -18 A01X+054823Y-043780X0118Y0433R180S2 +327GND J1 -19 A01X+054626Y-043780X0118Y0433R180S2 +327RAS/CAMERA_SCL J1 -20 A01X+054429Y-043780X0118Y0433R180S2 +327RAS/CAMERA_SDA J1 -21 A01X+054232Y-043780X0118Y0433R180S2 +327+3V3 J1 -22 A01X+054035Y-043780X0118Y0433R180S2 +327N/C J1 -MP A01X+059055Y-043337X0394Y0394R180S2 +327N/C J1 -MP A01X+053150Y-043337X0394Y0394R180S2 +327NET-(U5-TXCAN) U5 -1 A01X+043627Y-029732X0335Y0138R000S2 +327NET-(U5-RXCAN) U5 -2 A01X+043627Y-029988X0335Y0138R000S2 +327}SOF-PAD3)#1 U5 -3 A01X+043627Y-030244X0335Y0138R000S2 +327/CM4/CAN2_INT U5 -4 A01X+043627Y-030500X0335Y0138R000S2 +327NET-(U5-OSC2) U5 -5 A01X+043627Y-030755X0335Y0138R000S2 +327NET-(U5-OSC1) U5 -6 A01X+043627Y-031011X0335Y0138R000S2 +327GND U5 -7 A01X+043627Y-031267X0335Y0138R000S2 +327PIO1-PAD8)#1 U5 -8 A01X+044808Y-031267X0335Y0138R000S2 +327STBY-PAD9)#1 U5 -9 A01X+044808Y-031011X0335Y0138R000S2 +327SCK U5 -10 A01X+044808Y-030755X0335Y0138R000S2 +327MOSI U5 -11 A01X+044808Y-030500X0335Y0138R000S2 +327MISO U5 -12 A01X+044808Y-030244X0335Y0138R000S2 +327CM4/~{CAN2_CS} U5 -13 A01X+044808Y-029988X0335Y0138R000S2 +327+3V3 U5 -14 A01X+044808Y-029732X0335Y0138R000S2 +327GND U5 -15 A01X+044218Y-030500X0650Y1673R000S2 +327+3V3 C10 -1 A01X+044795Y-029331X0220Y0244R180S2 +327GND C10 -2 A01X+044417Y-029331X0220Y0244R180S2 +327NET-(U2-OSC2) Y1 -1 A01X+035839Y-032008X0551Y0453R090S2 +327GND Y1 -2 A01X+035839Y-032874X0551Y0453R090S2 +327NET-(U2-OSC1) Y1 -3 A01X+036469Y-032874X0551Y0453R090S2 +327GND Y1 -4 A01X+036469Y-032008X0551Y0453R090S2 +317GND JP1 -1 D0394PA00X+031929Y-032589X0669Y0669R180S0 +317NET-(JP1-B) JP1 -2 D0394PA00X+031929Y-031589X0669Y0000R180S0 +327NET-(U4-RS) R17 -1 A01X+034778Y-028644X0213Y0252R090S2 +327GND R17 -2 A01X+034778Y-029045X0213Y0252R090S2 +327+3V3 R11 -1 A01X+057165Y-035165X0213Y0252R270S2 +327NET-(J2-PAD11) R11 -2 A01X+057165Y-034764X0213Y0252R270S2 +367N/C J10 D0571UA00X+035374Y-026319X0571Y0000R000S0 +367N/C J10 D0571UA00X+042776Y-026319X0571Y0000R000S0 +327GND J10 -1 A04X+036083Y-024980X0197Y0433R000S1 +327GND J10 -2 A04X+036083Y-026476X0197Y0433R000S1 +327OR/RAIL_1_VOUT J10 -3 A04X+036398Y-024980X0197Y0433R000S1 +327OR/RAIL_1_VOUT J10 -4 A04X+036398Y-026476X0197Y0433R000S1 +327OR/RAIL_2_VOUT J10 -5 A04X+036713Y-024980X0197Y0433R000S1 +327OR/RAIL_2_VOUT J10 -6 A04X+036713Y-026476X0197Y0433R000S1 +327OR/RAIL_3_VOUT J10 -7 A04X+037028Y-024980X0197Y0433R000S1 +327OR/RAIL_3_VOUT J10 -8 A04X+037028Y-026476X0197Y0433R000S1 +327OR/RAIL_4_VOUT J10 -9 A04X+037343Y-024980X0197Y0433R000S1 +327OR/RAIL_4_VOUT J10 -10 A04X+037343Y-026476X0197Y0433R000S1 +327OR/RAIL_5_VOUT J10 -11 A04X+037657Y-024980X0197Y0433R000S1 +327OR/RAIL_5_VOUT J10 -12 A04X+037657Y-026476X0197Y0433R000S1 +327OR/RAIL_6_VOUT J10 -13 A04X+037972Y-024980X0197Y0433R000S1 +327OR/RAIL_6_VOUT J10 -14 A04X+037972Y-026476X0197Y0433R000S1 +327+5V J10 -15 A04X+038287Y-024980X0197Y0433R000S1 +327+5V J10 -16 A04X+038287Y-026476X0197Y0433R000S1 +327OR/RAIL_8_VOUT J10 -17 A04X+038602Y-024980X0197Y0433R000S1 +327OR/RAIL_8_VOUT J10 -18 A04X+038602Y-026476X0197Y0433R000S1 +327GND J10 -19 A04X+038917Y-024980X0197Y0433R000S1 +327GND J10 -20 A04X+038917Y-026476X0197Y0433R000S1 +327CTOR/EPS_PGOOD J10 -21 A04X+039232Y-024980X0197Y0433R000S1 +327/CM4/CAN1+ J10 -22 A04X+039232Y-026476X0197Y0433R000S1 +327/EPS_OBC_RESET J10 -23 A04X+039547Y-024980X0197Y0433R000S1 +327/CM4/CAN1- J10 -24 A04X+039547Y-026476X0197Y0433R000S1 +327/OBC_EPS_RESET J10 -25 A04X+039862Y-024980X0197Y0433R000S1 +327/CM4/CAN2+ J10 -26 A04X+039862Y-026476X0197Y0433R000S1 +327/OBC_HEARTBEAT J10 -27 A04X+040177Y-024980X0197Y0433R000S1 +327/CM4/CAN2- J10 -28 A04X+040177Y-026476X0197Y0433R000S1 +327-PIN_29-PAD29) J10 -29 A04X+040492Y-024980X0197Y0433R000S1 +327-PIN_30-PAD30) J10 -30 A04X+040492Y-026476X0197Y0433R000S1 +327-PIN_31-PAD31) J10 -31 A04X+040807Y-024980X0197Y0433R000S1 +327-PIN_32-PAD32) J10 -32 A04X+040807Y-026476X0197Y0433R000S1 +327-PIN_33-PAD33) J10 -33 A04X+041122Y-024980X0197Y0433R000S1 +327-PIN_34-PAD34) J10 -34 A04X+041122Y-026476X0197Y0433R000S1 +327/CM4/UART1_TX J10 -35 A04X+041437Y-024980X0197Y0433R000S1 +327/CM4/UART2_TX J10 -36 A04X+041437Y-026476X0197Y0433R000S1 +327/CM4/UART1_RX J10 -37 A04X+041752Y-024980X0197Y0433R000S1 +327/CM4/UART2_RX J10 -38 A04X+041752Y-026476X0197Y0433R000S1 +327GND J10 -39 A04X+042067Y-024980X0197Y0433R000S1 +327GND J10 -40 A04X+042067Y-026476X0197Y0433R000S1 +317/CM4/ETH_P0+ J2 -1 D0354PA00X+053524Y-038943X0709Y0000R090S0 +317/CM4/ETH_P0- J2 -2 D0354PA00X+052524Y-038443X0709Y0000R090S0 +317/CM4/ETH_P1- J2 -3 D0354PA00X+053524Y-037943X0709Y0000R090S0 +317/CM4/ETH_P1+ J2 -4 D0354PA00X+052524Y-037443X0709Y0000R090S0 +317NET-(C4-PAD1) J2 -5 D0354PA00X+053524Y-036943X0709Y0000R090S0 +317NET-(C4-PAD1) J2 -6 D0354PA00X+052524Y-036443X0709Y0000R090S0 +317/CM4/ETH_P2+ J2 -7 D0354PA00X+053524Y-035943X0709Y0000R090S0 +317/CM4/ETH_P2- J2 -8 D0354PA00X+052524Y-035443X0709Y0000R090S0 +317/CM4/ETH_P3+ J2 -9 D0354PA00X+053524Y-034943X0709Y0000R090S0 +317/CM4/ETH_P3- J2 -10 D0354PA00X+052524Y-034443X0709Y0000R090S0 +317NET-(J2-PAD11) J2 -11 D0402PA00X+057024Y-034022X0709Y0000R090S0 +317/CM4/ETH_LED2 J2 -12 D0402PA00X+057823Y-034022X0709Y0000R090S0 +317NET-(J2-PAD13) J2 -13 D0402PA00X+057024Y-039364X0709Y0000R090S0 +317/CM4/ETH_LED1 J2 -14 D0402PA00X+057823Y-039364X0709Y0000R090S0 +317GND J2 -SH D0630PA00X+054823Y-033642X1181Y0000R090S0 +317GND J2 -SH D0630PA00X+054823Y-039744X1181Y0000R090S0 +999 diff --git a/payload/v1/hardware/production/payload.zip b/payload/v1/hardware/production/payload.zip new file mode 100644 index 0000000..3565773 Binary files /dev/null and b/payload/v1/hardware/production/payload.zip differ diff --git a/payload/v1/hardware/production/positions.csv b/payload/v1/hardware/production/positions.csv new file mode 100644 index 0000000..d6ae680 --- /dev/null +++ b/payload/v1/hardware/production/positions.csv @@ -0,0 +1,60 @@ +Designator,Mid X,Mid Y,Rotation,Layer +_4,79.696,-67.196,0.0,top +_3,79.696,-134.804,0.0,top +_2,147.304,-134.804,0.0,top +,147.304,-67.196,0.0,top +C1,143.4,-73.9,270.0,top +C10,113.3,-74.5,180.0,top +C11,91.4,-79.3,180.0,top +C12,107.141362,-78.965734,180.0,top +C13,94.9,-87.8,0.0,top +C14,94.9,-86.8,0.0,top +C15,93.1,-133.4,180.0,top +C16,135.92,-112.8,180.0,top +C2,144.4,-73.9,270.0,top +C3,143.2,-72.0,90.0,top +C4,131.6,-93.18,270.0,top +C5,89.5,-82.48,270.0,top +C6,91.62,-85.0,180.0,top +C7,105.13,-81.97,270.0,top +C8,107.41,-84.55,180.0,top +C9,99.0,-75.8,180.0,top +D1,76.5625,-74.64,180.0,top +D2,76.5625,-76.6,180.0,top +D3,103.85,-66.3,180.0,top +D4,106.7,-66.5,90.0,top +D5,103.8,-62.5,180.0,top +D6,103.8,-64.4,180.0,top +J1,142.5,-108.3,180.0,top +J10,99.25,-65.35,180.0,bottom +J2,142.3,-93.2,270.0,bottom +J3,120.38,-137.225,0.0,top +J4,117.23,-65.87,270.0,top +J5,125.925,-75.5875,0.0,top +J7,100.1,-137.9,0.0,top +JP1,81.1,-81.505,180.0,top +R1,79.2625,-74.6,0.0,top +R10,145.4,-97.81,90.0,top +R11,145.2,-88.81,90.0,top +R12,91.6,-70.8,0.0,top +R13,106.4,-70.4,0.0,top +R17,88.335,-73.265,270.0,top +R18,103.14,-72.84,270.0,top +R2,79.2625,-76.6,0.0,top +R3,118.1,-132.0,180.0,top +R4,122.8,-132.0,0.0,top +R5,135.7,-70.3,90.0,top +R6,135.7,-75.6625,270.0,top +R7,138.8,-77.19,90.0,top +R8,143.6,-76.0,180.0,top +R9,143.6,-77.0,0.0,top +SW1,76.4,-82.2,270.0,top +U1,102.4,-108.8,0.0,top +U2,97.6425,-78.79375,270.0,top +U4,91.6,-75.1,0.0,top +U5,112.3125,-77.46875,270.0,top +U6,83.525,-76.5,0.0,top +U7,106.435,-74.775,0.0,top +U9,140.1125,-73.2125,0.0,top +Y1,91.83,-82.4,270.0,top +Y2,107.4,-81.975,270.0,top diff --git a/payload/v1/hardware/sierra_quote.log b/payload/v1/hardware/sierra_quote.log new file mode 100644 index 0000000..a847644 --- /dev/null +++ b/payload/v1/hardware/sierra_quote.log @@ -0,0 +1,737 @@ +06-08 00:26:04 sierra_kicad_order.action_sierra_quote 1294:Sierra Circuits Quote plugin version: 4.6 started +06-08 00:26:04 STDERR 1680:C:\Users\bertha\Documents\KiCad\10.0\3rdparty\\plugins\sierra_kicad_order\action_sierra_quote.py:112: wxPyDeprecationWarning: Call to deprecated item. Use SetSizeHints instead. +06-08 00:26:04 STDERR 1680: self.SetSizeHintsSz(sz1, sz2) +06-08 00:26:05 STDOUT 1680:send: +06-08 00:26:05 STDOUT 1680:b'POST /kiprod/client HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 52\r\nHost: api.protoexpress-api.net\r\nUser-Agent: Python-urllib/3.11\r\nContent-Type: application/json\r\nAuthorization: Basic 4f10fd20-630b-11f1-b411-b8f775334f7c\r\nConnection: close\r\n\r\n' +06-08 00:26:05 STDOUT 1680:send: +06-08 00:26:05 STDOUT 1680:b'{"client_id":"4f10fd20-630b-11f1-b411-b8f775334f7c"}' +06-08 00:26:06 STDOUT 1680:reply: +06-08 00:26:06 STDOUT 1680:'HTTP/1.1 200 OK\r\n' +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:Date: +06-08 00:26:06 STDOUT 1680:Mon, 08 Jun 2026 07:26:07 GMT +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:Content-Type: +06-08 00:26:06 STDOUT 1680:application/json +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:Content-Length: +06-08 00:26:06 STDOUT 1680:32 +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:Connection: +06-08 00:26:06 STDOUT 1680:close +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:x-amzn-RequestId: +06-08 00:26:06 STDOUT 1680:eb94bc9d-8c61-4365-80ec-aa0f00b3dda0 +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:Access-Control-Allow-Origin: +06-08 00:26:06 STDOUT 1680:* +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:Access-Control-Allow-Headers: +06-08 00:26:06 STDOUT 1680:* +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:x-amz-apigw-id: +06-08 00:26:06 STDOUT 1680:eoY2RE4aoAMEizg= +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:Access-Control-Allow-Methods: +06-08 00:26:06 STDOUT 1680:* +06-08 00:26:06 STDOUT 1680:header: +06-08 00:26:06 STDOUT 1680:X-Amzn-Trace-Id: +06-08 00:26:06 STDOUT 1680:Root=1-6a266e8e-382507ef27a4599028895e15;Parent=60c05f6e5e2c3927;Sampled=0;Lineage=2:565c4136:0 +06-08 00:26:42 STDOUT 1680:send: +06-08 00:26:42 STDOUT 1680:b'POST /login HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 119\r\nHost: prodsuperapi.app.protoexpress.com\r\nUser-Agent: Python-urllib/3.11\r\nContent-Type: application/json\r\nAccept: application/json\r\nConnection: close\r\n\r\n' +06-08 00:26:42 STDOUT 1680:send: +06-08 00:26:42 STDOUT 1680:b'{"client_id":"4f10fd20-630b-11f1-b411-b8f775334f7c","memberID":"eggertet@oregonstate.edu","password":"7THqqL!dVBzsAVT"}' +06-08 00:26:46 STDOUT 1680:reply: +06-08 00:26:46 STDOUT 1680:'HTTP/1.1 200 OK\r\n' +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:Server: +06-08 00:26:46 STDOUT 1680:nginx/1.24.0 (Ubuntu) +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:Date: +06-08 00:26:46 STDOUT 1680:Mon, 08 Jun 2026 07:26:47 GMT +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:Content-Type: +06-08 00:26:46 STDOUT 1680:text/html; charset=utf-8 +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:Content-Length: +06-08 00:26:46 STDOUT 1680:1690 +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:Connection: +06-08 00:26:46 STDOUT 1680:close +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:Access-Control-Allow-Origin: +06-08 00:26:46 STDOUT 1680:* +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:Strict-Transport-Security: +06-08 00:26:46 STDOUT 1680:max-age=31536000; includeSubdomains; preload +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:X-Frame-Options: +06-08 00:26:46 STDOUT 1680:SAMEORIGIN +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:X-Content-Type-Options: +06-08 00:26:46 STDOUT 1680:nosniff +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:Referrer-Policy: +06-08 00:26:46 STDOUT 1680:no-referrer +06-08 00:26:46 STDOUT 1680:header: +06-08 00:26:46 STDOUT 1680:Content-Security-Policy: +06-08 00:26:46 STDOUT 1680:object-src +06-08 00:26:46 STDERR 1680:C:\Users\bertha\Documents\KiCad\10.0\3rdparty\\plugins\sierra_kicad_order\action_sierra_quote.py:529: wxPyDeprecationWarning: Call to deprecated item. Use SetSizeHints instead. +06-08 00:26:46 STDERR 1680: self.SetSizeHintsSz(sz1, sz2) +06-08 00:26:59 STDOUT 1680:send: +06-08 00:26:59 STDOUT 1680:b'POST /verifyOtp?userID=23e33f40-5fbf-3220-8c40-ff201ad4e922 HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 38\r\nHost: prodsuperapi.app.protoexpress.com\r\nUser-Agent: Python-urllib/3.11\r\nContent-Type: application/json\r\nAccept: application/json\r\nConnection: close\r\n\r\n' +06-08 00:26:59 STDOUT 1680:send: +06-08 00:26:59 STDOUT 1680:b'{"otp":"48W-OQH","otpForLogin":"True"}' +06-08 00:27:00 STDOUT 1680:reply: +06-08 00:27:00 STDOUT 1680:'HTTP/1.1 200 OK\r\n' +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:Server: +06-08 00:27:00 STDOUT 1680:nginx/1.24.0 (Ubuntu) +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:Date: +06-08 00:27:00 STDOUT 1680:Mon, 08 Jun 2026 07:27:01 GMT +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:Content-Type: +06-08 00:27:00 STDOUT 1680:text/html; charset=utf-8 +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:Content-Length: +06-08 00:27:00 STDOUT 1680:384 +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:Connection: +06-08 00:27:00 STDOUT 1680:close +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:Access-Control-Allow-Origin: +06-08 00:27:00 STDOUT 1680:* +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:Strict-Transport-Security: +06-08 00:27:00 STDOUT 1680:max-age=31536000; includeSubdomains; preload +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:X-Frame-Options: +06-08 00:27:00 STDOUT 1680:SAMEORIGIN +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:X-Content-Type-Options: +06-08 00:27:00 STDOUT 1680:nosniff +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:Referrer-Policy: +06-08 00:27:00 STDOUT 1680:no-referrer +06-08 00:27:00 STDOUT 1680:header: +06-08 00:27:00 STDOUT 1680:Content-Security-Policy: +06-08 00:27:00 STDOUT 1680:object-src +06-08 00:27:00 STDERR 1680:C:\Users\bertha\Documents\KiCad\10.0\3rdparty\\plugins\sierra_kicad_order\sierra_quote_dialog.py:147: wxPyDeprecationWarning: Call to deprecated item. Use SetSizeHints instead. +06-08 00:27:00 STDERR 1680: self.SetSizeHintsSz(sz1, sz2) +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'POST /validate?service=validateFile HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: prodsuperapi.app.protoexpress.com\r\nUser-Agent: Python-urllib/3.11\r\nAuthorization: 675e2aa4-630b-11f1-97b0-c67b64906492\r\nUser-Id: 23e33f40-5fbf-3220-8c40-ff201ad4e922\r\nUser-Email: eggertet@oregonstate.edu\r\nFile-Name: payload.kicad_pcb\r\nContent-Type: application/zip\r\nContent-Length: 2352666\r\nBomautomap: false\r\nSessionid: 23e33f405fbf32208c40ff201ad4e9224f10fd20630b11f1b411b8f775334f7c\r\nSource: kicad_4.6\r\nConnection: close\r\n\r\n' +06-08 00:27:39 STDOUT 1680:reading a readable +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(kicad_pcb\r\n\t(version 20260206)\r\n\t(generator "pcbnew")\r\n\t(generator_version "10.0")\r\n\t(general\r\n\t\t(thickness 1.6)\r\n\t\t(legacy_teardrops no)\r\n\t)\r\n\t(paper "A4")\r\n\t(layers\r\n\t\t(0 "F.Cu" signal)\r\n\t\t(4 "In1.Cu" signal)\r\n\t\t(6 "In2.Cu" signal)\r\n\t\t(2 "B.Cu" signal)\r\n\t\t(9 "F.Adhes" user "F.Adhesive")\r\n\t\t(11 "B.Adhes" user "B.Adhesive")\r\n\t\t(13 "F.Paste" user)\r\n\t\t(15 "B.Paste" user)\r\n\t\t(5 "F.SilkS" user "F.Silkscreen")\r\n\t\t(7 "B.SilkS" user "B.Silkscreen")\r\n\t\t(1 "F.Mask" user)\r\n\t\t(3 "B.Mask" user)\r\n\t\t(17 "Dwgs.User" user "User.Drawings")\r\n\t\t(19 "Cmts.User" user "User.Comments")\r\n\t\t(21 "Eco1.User" user "User.Eco1")\r\n\t\t(23 "Eco2.User" user "User.Eco2")\r\n\t\t(25 "Edge.Cuts" user)\r\n\t\t(27 "Margin" user)\r\n\t\t(31 "F.CrtYd" user "F.Courtyard")\r\n\t\t(29 "B.CrtYd" user "B.Courtyard")\r\n\t\t(35 "F.Fab" user)\r\n\t\t(33 "B.Fab" user)\r\n\t\t(39 "User.1" user)\r\n\t\t(41 "User.2" user)\r\n\t\t(43 "User.3" user)\r\n\t\t(45 "User.4" user)\r\n\t)\r\n\t(setup\r\n\t\t(stackup\r\n\t\t\t(layer "F.SilkS"\r\n\t\t\t\t(type "Top Silk Screen")\r\n\t\t\t)\r\n\t\t\t(layer "F.Paste"\r\n\t\t\t\t(type "Top Solder Paste")\r\n\t\t\t)\r\n\t\t\t(layer "F.Mask"\r\n\t\t\t\t(type "Top Solder Mask")\r\n\t\t\t\t(thickness 0.01)\r\n\t\t\t)\r\n\t\t\t(layer "F.Cu"\r\n\t\t\t\t(type "copper")\r\n\t\t\t\t(thickness 0.035)\r\n\t\t\t)\r\n\t\t\t(layer "dielectric 1"\r\n\t\t\t\t(type "prepreg")\r\n\t\t\t\t(thickness 0.1)\r\n\t\t\t\t(material "FR4")\r\n\t\t\t\t(epsilon_r 4.5)\r\n\t\t\t\t(loss_tangent 0.02)\r\n\t\t\t)\r\n\t\t\t(layer "In1.Cu"\r\n\t\t\t\t(type "copper")\r\n\t\t\t\t(thickness 0.035)\r\n\t\t\t)\r\n\t\t\t(layer "dielectric 2"\r\n\t\t\t\t(type "core")\r\n\t\t\t\t(thickness 1.24)\r\n\t\t\t\t(material "FR4")\r\n\t\t\t\t(epsilon_r 4.5)\r\n\t\t\t\t(loss_tangent 0.02)\r\n\t\t\t)\r\n\t\t\t(layer "In2.Cu"\r\n\t\t\t\t(type "copper")\r\n\t\t\t\t(thickness 0.035)\r\n\t\t\t)\r\n\t\t\t(layer "dielectric 3"\r\n\t\t\t\t(type "prepreg")\r\n\t\t\t\t(thickness 0.1)\r\n\t\t\t\t(material "FR4")\r\n\t\t\t\t(epsilon_r 4.5)\r\n\t\t\t\t(loss_tangent 0.02)\r\n\t\t\t)\r\n\t\t\t(layer "B.Cu"\r\n\t\t\t\t(type "copper")\r\n\t\t\t\t(thickness 0.035)\r\n\t\t\t)\r\n\t\t\t(layer "B.Mask"\r\n\t\t\t\t(type "Bottom Solder Mask")\r\n\t\t\t\t(thickness 0.01)\r\n\t\t\t)\r\n\t\t\t(layer "B.Paste"\r\n\t\t\t\t(type "Bottom Solder Paste")\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS"\r\n\t\t\t\t(type "Bottom Silk Screen")\r\n\t\t\t)\r\n\t\t\t(copper_finish "None")\r\n\t\t\t(dielectric_constraints no)\r\n\t\t)\r\n\t\t(pad_to_mask_clearance 0)\r\n\t\t(allow_soldermask_bridges_in_footprints no)\r\n\t\t(tenting\r\n\t\t\t(front yes)\r\n\t\t\t(back yes)\r\n\t\t)\r\n\t\t(covering\r\n\t\t\t(front no)\r\n\t\t\t(back no)\r\n\t\t)\r\n\t\t(plugging\r\n\t\t\t(front no)\r\n\t\t\t(back no)\r\n\t\t)\r\n\t\t(capping no)\r\n\t\t(filling no)\r\n\t\t(pcbplotparams\r\n\t\t\t(layerselection 0x00000000_00000000_55555555_5755f5ff)\r\n\t\t\t(plot_on_all_layers_selection 0x00000000_00000000_00000000_00000000)\r\n\t\t\t(disableapertmacros no)\r\n\t\t\t(usegerberextensions no)\r\n\t\t\t(usegerberattributes yes)\r\n\t\t\t(usegerberadvancedattributes yes)\r\n\t\t\t(creategerberjobfile yes)\r\n\t\t\t(dashed_line_dash_ratio 12)\r\n\t\t\t(dashed_line_gap_ratio 3)\r\n\t\t\t(svgprecision 4)\r\n\t\t\t(plotframeref no)\r\n\t\t\t(mode 1)\r\n\t\t\t(useauxorigin no)\r\n\t\t\t(pdf_front_fp_property_popups yes)\r\n\t\t\t(pdf_back_fp_property_popups yes)\r\n\t\t\t(pdf_metadata yes)\r\n\t\t\t(pdf_single_document no)\r\n\t\t\t(dxfpolygonmode yes)\r\n\t\t\t(dxfimperialunits yes)\r\n\t\t\t(dxfusepcbnewfont yes)\r\n\t\t\t(psnegative no)\r\n\t\t\t(psa4output no)\r\n\t\t\t(plot_black_and_white yes)\r\n\t\t\t(sketchpadsonfab no)\r\n\t\t\t(plotpadnumbers no)\r\n\t\t\t(hidednponfab no)\r\n\t\t\t(sketchdnponfab yes)\r\n\t\t\t(crossoutdnponfab yes)\r\n\t\t\t(subtractmaskfromsilk no)\r\n\t\t\t(outputformat 1)\r\n\t\t\t(mirror no)\r\n\t\t\t(drillshape 1)\r\n\t\t\t(scaleselection 1)\r\n\t\t\t(outputdirectory "")\r\n\t\t)\r\n\t)\r\n\t(footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "00adcfe0-f641-40ae-af85-1f4988658b5f")\r\n\t\t(at 106.435 74.775 90)\r\n\t\t(descr "SOIC, 8 Pin (JEDEC MS-012AA, https://www.analog.com/media/en/package-pcb-resources/package/pkg_pdf/soic_narrow-r/r_8.pdf)")\r\n\t\t(tags "SOIC SO")\r\n\t\t(property "Reference" "U7"\r\n\t\t\t(at 0 -3.4 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "06ff08b0-172b-428f-b2d8-93dfc5aa7c77")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "SN65HVD230"\r\n\t\t\t(at 0 3.4 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "446e4401-31b1-4580-bc0b-5d71532aac61")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "http://www.ti.com/lit/ds/symlink/sn65hvd230.pdf"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "74956233-69cf-48f5-b909-9b5eb7950477")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "CAN Bus Transceivers, 3.3V, 1Mbps, Low-Power capabilities, SOIC-8"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7391148f-066c-4178-ab81-2da1d520b615")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "package/gullwing"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "49920bf7-2117-4dc6-bae1-40ad00343c7b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "931e06ba-c2aa-4019-a335-944d8fa1a003")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "15b676a2-5a7c-4b23-b723-2162ea3975c8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c6ab7b8a-b69b-49f5-9384-a7356530964d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3507c9df-66cc-4e2f-b5c8-bd28ea9ea664")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "66d0cf1c-6695-4fe8-a3d1-c64b85b158b7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "869f08a7-aafb-4098-82af-f7c6b713acb7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e0fe4c30-f234-43f2-9509-7f26cc20d5f8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5e4f3caa-516d-4168-8acb-6bfebef13593")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "65f5c3ac-c2e7-447b-8648-1d7977f513c4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a4dc74a9-edcb-497f-b5c9-b3f0e81a461c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "247e01fd-beea-4a07-bd87-f90a2ffbfef9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "24d0ddeb-ac52-4c52-a538-fe948473d38e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7610c2ea-7d2e-44d2-8984-b1b8e0f28011")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "62ea72a8-15e7-48ed-8723-8ba6767130a0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "SOIC*3.9x4.9mm*P1.27mm*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d4b7b76f-24e6-4b2a-a93b-55ace58d0ff9/e5f9ddce-1d0b-41fa-a941-d9bc87c8d323")\r\n\t\t(shee' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'tname "/CM4/CAN1/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "4" "5" "8" "3" "2" "7" "6")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start 2.06 -2.56)\r\n\t\t\t(end 2.06 -2.465)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f8b4264a-9a16-41ba-81bf-7d077d01c199")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 -2.56)\r\n\t\t\t(end 2.06 -2.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "218549d6-4c92-469b-b72e-60ec4fc75cd6")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 -2.465)\r\n\t\t\t(end -2.06 -2.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "8f593224-a536-4e48-abea-4e7ee33ab49f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.06 2.465)\r\n\t\t\t(end 2.06 2.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "2bec2060-f9ae-4423-be55-8234bcd6a165")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.06 2.56)\r\n\t\t\t(end -2.06 2.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "8aa1bc90-e21a-4838-aa17-34979396d406")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 2.56)\r\n\t\t\t(end -2.06 2.465)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "38706937-ac70-4807-bf9c-2068903ae14b")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -2.6 -2.47) (xy -2.84 -2.8) (xy -2.36 -2.8)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "023f1e4b-274d-4a92-b731-0026fb80c18c")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 -2.7)\r\n\t\t\t(end 2.2 -2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "dcb2843b-9797-4610-95f6-36a7f5f4602e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 -2.7)\r\n\t\t\t(end 2.2 -2.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "55e39361-19cb-4c4c-9505-25d6a7ef9e17")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 3.7 -2.46)\r\n\t\t\t(end 3.7 2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5645ade4-4b05-4962-9554-fb233a7f4f94")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 -2.46)\r\n\t\t\t(end 3.7 -2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "b92ce120-3805-4c4c-a476-63ca48a7ccce")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 -2.46)\r\n\t\t\t(end -2.2 -2.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "b9f31eb1-acf6-4317-916d-aa193c8e6752")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -3.7 -2.46)\r\n\t\t\t(end -2.2 -2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "d5be2ab6-e9d3-4e04-ab5c-45b54db3fb4f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 3.7 2.46)\r\n\t\t\t(end 2.2 2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5238a98a-71f5-44c1-b092-acc63cd6fd71")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 2.46)\r\n\t\t\t(end 2.2 2.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "53e24579-27bf-4204-b575-650b644ccc20")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 2.46)\r\n\t\t\t(end -3.7 2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5cfc0a5f-0500-45cc-b839-9a7d1282303b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -3.7 2.46)\r\n\t\t\t(end -3.7 -2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "89ede8f3-61ad-4dec-8e82-1b461795d275")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 2.7)\r\n\t\t\t(end -2.2 2.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "62704059-8fb5-4992-818a-5f1f8f3b943b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 2.7)\r\n\t\t\t(end -2.2 2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "80a9db7e-aa3a-420a-9ff4-4954ff4618e6")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -0.975 -2.45) (xy 1.95 -2.45) (xy 1.95 2.45) (xy -1.95 2.45) (xy -1.95 -1.475)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7744d227-7223-4ae0-96b0-187f322730a9")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "750561a2-434a-447c-9d88-875437ee5b62")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -2.475 -1.905 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U5-TXCAN)")\r\n\t\t\t(pinfunction "D_1")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "c0c573b7-41a1-4e97-a976-4f8ec52a4eac")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at -2.475 -0.635 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_2")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "1942bab2-b2a6-48d1-8f42-ef22f079e13b")\r\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at -2.475 0.635 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "VCC_3")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "682e9c9a-3ecc-4639-8a26-a62e7a156a66")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at -2.475 1.905 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U5-RXCAN)")\r\n\t\t\t(pinfunction "R_4")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "9c7599f9-dec2-40a8-928e-b738639fba20")\r\n\t\t)\r\n\t\t(pad "5" smd roundrect\r\n\t\t\t(at 2.475 1.905 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U7-Vref-Pad5)")\r\n\t\t\t(pinfunction "Vref_5")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "6bf0b9e5-62bd-4a97-a567-caf3da4e1a36")\r\n\t\t)\r\n\t\t(pad "6" smd roundrect\r\n\t\t\t(at 2.475 0.635 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN2-")\r\n\t\t\t(pinfunction "CANL_6")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "b51f7e22-3e0b-4e7f-af17-b1624b8c893c")\r\n\t\t)\r\n\t\t(pad "7" smd roundrect\r\n\t\t\t(at 2.475 -0.635 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN2+")\r\n\t\t\t(pinfunction "CANH_7")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "27e26253-fc7c-42eb-b836-65e0b029ff62")\r\n\t\t)\r\n\t\t(pad "8" smd roundrect\r\n\t\t\t(at 2.475 -1.905 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U7-Rs)")\r\n\t\t\t(pinfunction "Rs_8")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "defb8f62-ba2d-4e20-a6fd-c4db2481f941")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Package_SO.3dshapes/SOIC-8_3.9x4.9mm_P1.27mm.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "01575092-794c-4a04-bc8e-3414a632eacf")\r\n\t\t(at 105.13 81.97 -90)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C7"\r\n\t\t\t(at 0 1.13 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "d6d348e2-d861-4b91-9f92-a4436230ae9e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "TBD"\r\n\t\t\t(at 0 1.16 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "33805fd4-9a05-4843-842f-d172310ba86b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ccaa01e8-da71-46fa-9d04-a40a9eee69de")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2dcd18c1-42ca-4781-a121-d8de95e6d51b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "00c4ffee-166d-4d69-885a-a6c2dc62105b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "333eacb7-ebe9-4e40-a689-ce0c0b16dc0' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6578f3a4-330c-4e90-8992-8b71012b0b6a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "df5ce25f-13ed-4cb0-bfd8-4ac7cc3deb15")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "69a32e1d-7f83-4f22-b3da-87ef7ed2beee")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "51680330-7a78-4ab9-9e3f-3872f794cc64")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ea59a6a3-fcba-4301-89d4-b74f5d02718c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2def49d1-4028-4a87-a1ae-6ffc835b9e25")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "22fa94c1-b860-402f-95a8-1303c44fbb93")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "09e0546b-ca0c-4165-b8be-5481236a7dde")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "16cb9b73-ee9b-4950-adea-7da5520fc415")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ced4c974-0b98-4b3c-adc4-7422892caac3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4799c34e-24c1-478d-81da-a00c12704839")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f5a197ae-dfa8-4326-bbf9-1b8b651af786")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f15424d0-6bed-40a0-9375-d4fd266855ce")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d4b7b76f-24e6-4b2a-a93b-55ace58d0ff9/54b91561-f064-4894-b465-53b2fe5570c9")\r\n\t\t(sheetname "/CM4/CAN1/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "183b78d5-c176-4954-8364-be15d3022ef3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "2a1ba3f6-722f-430b-9ef1-b0c757e1a4d5")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "4f9af426-064c-4ab2-8757-7171e08c8a15")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d1ae08f6-4c62-48ae-949c-1f4013f80ef8")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "aa16748e-b3fc-47ca-ad1b-68ff118b7bc9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U5-OSC2)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "aaec5049-f44b-4060-b6b9-e0afe2379673")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "623c2b2d-869b-4b56-8fc8-950ae6febc40")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "071e2a2f-046e-417a-a4be-8a953905e377")\r\n\t\t(at 144.4 73.9 -90)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C2"\r\n\t\t\t(at 0 -1.16 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "3f642952-a8ed-4abe-a615-acf598c0032b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "10u"\r\n\t\t\t(at 0 1.16 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "11579514-28af-4161-9cb6-906fa39402fd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ebeaa218-3c4a-4af2-8a33-c251a346bc41")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2153ff17-f913-4422-839d-165c3092689b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5b72af2a-54ce-4a7b-bc4f-e0d2874c1ec9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c437e644-7f46-400a-8aaf-8cd13095f7b3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1d537d7f-55a7-4727-885c-49fb9948cd3a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d37e5d91-0c0d-40ff-8d5a-95a4025a84dc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9d622f8e-6930-4903-875a-3b44d45f7c5e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "181dac15-e5eb-4cbd-a825-d24ee0abf7b1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e750d2f0-bbf8-4c3d-89ef-1b9884622a46")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b1254b14-6b05-48' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'ed-a644-44e97f86ac7c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a748868b-7a24-479f-9239-038abc4cb4ff")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ec471212-90e5-4ca4-b006-27837f451058")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1fa18cef-697a-4d5c-9c91-13bf3a2faa2d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "34699fb2-310b-4f62-86a2-02507ffee568")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "71aede45-a267-44ce-ab69-bd226246565e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0c9c7bf3-ce12-4161-927c-3ba12a6f3e36")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/576532be-276f-4b7e-b3f9-8372e9ce2734")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6b75fd30-1ac7-4267-be27-0bd4e3891492")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "e6f34d51-c548-4571-893e-b476c62a99c9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.91 0.46)\r\n\t\t\t(end -0.91 -0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "bd3469b4-83f9-4df4-8784-11b059ee105d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 0.46)\r\n\t\t\t(end -0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "df6c66d0-e5be-40e4-ac6f-353a425cc4d3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 -0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "0a27f23c-9163-42cf-8492-17af4e6b7288")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3fd4b1b8-fe6a-4bf1-b59b-3626192f1ce1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.5 0.25)\r\n\t\t\t(end -0.5 -0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7ebb02cc-827d-459a-8300-cc3795017933")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.5 0.25)\r\n\t\t\t(end -0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "69299f7f-185e-4ff5-879d-aa15d721c421")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 -0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "94cbe635-8941-4702-b2ea-d6df0becfdf9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "50c4e036-24a7-4eb8-b0ab-1ae78fce23b3")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "29951f28-92fc-4a4a-8e67-b243191bfc6d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "ed20cc6c-f924-437c-8898-51bd9c726864")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "40f989fe-ab5a-46f6-835c-1e9288ce72de")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD9_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "0b86b928-0e44-4527-9b3b-6bc441892e2f")\r\n\t\t(at 143.4 73.9 -90)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C1"\r\n\t\t\t(at -2.1 -1 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "bd3b0e6a-be5e-4b1b-a715-7932f4cd0ed8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "100n"\r\n\t\t\t(at 0 1.16 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7dd47032-398c-4082-99ea-b596c9eba5b9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "46b90f26-7ce7-478d-a985-8107220e1eaa")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "203e7386-c5a0-4e53-bd1a-2bdbb6877154")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "895bd119-7aad-4682-89f3-0a4ff41c1681")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1b7bc1d3-1040-4c35-9e82-0e28f368b38f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a2197a5b-1850-4035-968b-16273f2aa624")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "38ccf51b-ff89-43cc-be6f-aba330edd930")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1c04854b-493e-4c0e-b821-aa310294fe45")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "81c29c28-24ac-47df-b735-a475bfb38c25")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "958a0fa3-7ee8-438f-896c-9c0127d995c5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b470204c-133b-4d09-a55c-bc9231347c55")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "bc55c0f9-7000-4e9b-bf34-c04439e7f577")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8adb63b9-5bf5-457c-af00-3c69c8529244")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a32335dc-eb4d-46b4-9a2b-5d116adb67a4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d14a701b-405c-4a58-a166-371e70a1f585")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "21016d29-b39d-48c3-aadf-640740639faa")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "759ff754-ba02-4000-9e8c-8273da333ac1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/c5543aab-9f52-4940-b1ad-afdeb27ba766")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "cb9e94c7-c29c-414e-8958-be72fd73a564")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6e064d60-296c-4f0a-a98a-bb04b914d05d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.91 0.46)\r\n\t\t\t(end -0.91 -0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "ff03255f-4afd-4fe1-bac5-33a4a69e1510")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 0.46)\r\n\t\t\t(end -0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "fd830271-6bd3-4a4b-9ec9-be4f6b8b13ab")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 -0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "cb5ad064-189b-4241-8c95-0c5acf1bf92e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "6c2a46a4-f312-449c-8ce9-d9fd7e98451c")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.5 0.25)\r\n\t\t\t(end -0.5 -0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "8eec9962-d6a6-496b-a69c-d09fdcace82f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.5 0.25)\r\n\t\t\t(end -0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5ceb2d03-f59e-4e8c-ae7f-e338825d10db")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 -0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "3487a0ce-f6ca-483e-bf5c-f27c72e14f63")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1df81fbf-02c1-4205-a318-812b0daed292")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a28cb77f-017f-4b7a-b423-c0005a4cc19c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0ea82101-325b-4d84-961a-8bb5c088f07e")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "28b2abfa-302e-47dc-8b92-b0a242cfba1f")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD9_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "10b795ef-a631-4e59-988d-e384fc09e85d")\r\n\t\t(at 107.41 84.55 180)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C8"\r\n\t\t\t(at 0 -1.16 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "4243d264-bcb9-45b2-b6ef-05e8ddd9e4c0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "TBD"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "03d9560d-7a6f-4c5d-9d8c-d3279688d78b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5e5e1b56-d8f6-43cd-b6c8-8de4ceb22ae6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e889af9a-e369-4d8b-ba9c-2e8dedcd60ee")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "87f828d1-d0a7-4ad9-ab32-9770bfeafb36")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "12ecbab5-d831-43fa-af55-7716f18ec95f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6b1c001b-30e3-4b10-a7e1-2abd35a89a53")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2fb5542e-67bb-4e9a-ad94-d51c57b66259")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a129411a-06be-4916-97fc-841f8b84e175")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a4a88d52-8378-430c-a0b1-75a97fd64879")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b55b3e7b-2538-4d1f-958e-17a7a1b4cb4e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d7c9eb96-d687-4141-8b66-6b31bcf802f4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0cb82b55-26e4-4abd-8c9a-ed53f69845e6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "51078bfe-c248-429b-bde4-c3a6759f9f79")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "570270c0-f6ba-4cf1-ab64-2de803d19fe1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ef8b3ff6-331c-4194-a8bc-5a866381ee76")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "893ad5a4-fc99-4087-85f7-9fd9b07133f8")\r\n\t\t\t(effects\r\n\t\t\t\t(fon' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b't\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8328465c-fc1b-49ad-8853-4671e439ed76")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4dcfac9d-d364-4039-9376-0e2d281328bc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d4b7b76f-24e6-4b2a-a93b-55ace58d0ff9/a780867a-6a76-4d18-86e9-b0ae40b28ff7")\r\n\t\t(sheetname "/CM4/CAN1/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6316ff2e-cc45-472a-b995-de5ec93146d8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1cabcc84-9b50-4599-8c3f-3e187a98fe88")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "c441503f-3d32-409e-975c-bd868eed3e7f")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "35ee2695-1f10-415c-b679-62b57f5517d5")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "cd12f4cf-3e0f-4131-98ba-ab1340492c20")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U5-OSC1)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "67f18c42-413e-495f-baac-ee572d2499c4")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "38990131-1a6d-4e4d-93fd-5eb03371abbb")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "17f22aee-8c3f-4bbe-a71a-8f9817f4bc79")\r\n\t\t(at 99 75.8 180)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C9"\r\n\t\t\t(at 0 1.1 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "72c12545-dc4b-4f63-9bea-5a276ff42ec3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "100n"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "21e52b4e-f776-44d1-bf0e-9d56cfad9a6b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3c5f599b-25c0-4b4e-976d-a2683ca6d239")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f16da921-afc4-49b0-bfd0-591e7144ac40")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6b2bcf20-aefb-4f0e-bf6b-debfbde29e11")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/e8057e65-de86-4674-be4a-6a6d58efe02c/aabbdee2-5804-4c82-827f-46cf85e2b90e")\r\n\t\t(sheetname "/CM4/CAN/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "a65fbeb1-5f87-453a-810c-dd278c299ab4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "5f539b8c-c5b4-45f3-99a7-a2c39a537b1f")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "a3f4d86b-bd3e-458f-b50f-f3be428c4e74")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "416d8713-6b44-43f6-91e8-129edb202b33")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c75e1015-3534-422b-841b-2a7b6971bfc7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "5c1f2419-a371-4eee-88dc-0ea2a1a7f473")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "74a48f8e-ff9f-4247-810d-40ee7f100d53")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "18b7ff45-5804-4a65-8d51-c42505fe0606")\r\n\t\t(at 118.1 132 180)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R3"\r\n\t\t\t(at 0.3 1.4 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "3d486a36-b5e8-4b9b-be43-022c4fdbfff5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "5.1k"\r\n\t\t\t(at 0 1.17 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a74818bd-cd27-4e0b-8894-b00191e693aa")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "dd01c07f-b8cc-4c7f-a0c2-6e6ee112092f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3228bfe0-da67-43c3-9971-011eb3f3f4f5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6fa8662e-c217-428a-8f3e-89a004ef3b81")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/a01aafd3-2384-40ba-9dce-fa3379460fd9")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "a7666828-28ec-42c3-9d3a-fa78b972c474")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "55cc8216-0cea-47f2-a194-1b8437817af5")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(widt' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'h 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "6988188d-2165-4c83-b312-40fe42fcabbc")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "76e515c5-2767-4a80-bdf3-3acedf761e34")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2781f8ee-fe6a-447a-8d2b-c2c01fa49b3d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0 180)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J3-CC1)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "511bca94-f8ea-4677-b4ba-a3931b59f05d")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0 180)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "809a54d3-bb24-4751-a7a6-6f33b3c2a95f")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "1eeedc2a-56da-41e6-b6a2-b42645c03cae")\r\n\t\t(at 94.9 86.8)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C14"\r\n\t\t\t(at 2.4 -0.4 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "13ed3bcc-0a71-4161-9c39-cf7505c8ae42")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "1u"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "cf7945e9-4674-46bc-9e59-7d1ae4c35cb2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "22ff3fcf-0e12-48eb-a6de-fea9e5ae1835")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9a27309e-5dbe-41b2-b9d5-f78dc4eee222")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "cfae4ecc-619f-474d-9bb0-9a6fad072287")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/065cb0fc-9551-4d10-9d67-cf90cd401280")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "524dcd9c-351a-46f0-bc71-ee8f7083f1d0")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "2049d4d5-11dd-4c5f-a046-7ed619c083d3")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5c6c801c-dc84-4e84-9f53-c1ab459c2c37")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5cca3afb-814a-412e-ac3c-01f0c5e7d840")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2f2ad5aa-d39e-4497-9c0c-d44d9b3df5d1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "6fad23b5-c57b-4765-9c54-e5feec351d3b")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "55bb8581-905c-42ea-a8c3-6c39e8992236")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "2505568d-54e3-4dcf-bb38-bb5748d92bd0")\r\n\t\t(at 131.6 93.18 -90)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C4"\r\n\t\t\t(at 1.72 0.4 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "597edf3b-db76-4956-8b49-874e9165aeb6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "100n"\r\n\t\t\t(at 0 1.16 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "af426501-61fe-44c3-8840-56b21dcbe436")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3e495066-dec7-4c08-83f9-740eeb23567d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6c360b6c-c95f-4e23-9d1a-417abaa9f396")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6f3fca69-6656-4f86-a8cc-9b6fda61d7ce")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/300615ba-e6fa-4e03-91da-80114d2c1f60")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "af75f9d9-9928-46bb-acf7-b0e3e81f546a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "e0683d7a-a540-4a85-a5b1-20bf246d9f59")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "96e5374a-232f-4749-8938-7048dda804f9")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "3370c5e8-39e2-4bad-9f3b-805a9644a4b4")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7eac4f3c-50c5-4a53-8743-6d78710515c0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(C4-Pad1)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "00406a19-208d-462b-9674-d524cbe88247")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "bf839e4c-51ff-4264-ac5b-db39b026f61a")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "29351c50-c500-4f1f-ab48-e7213bbcc6e8")\r\n\t\t(at 91.6 70.8)\r\n\t\t(descr "Resistor SMD 040' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'2 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R12"\r\n\t\t\t(at 0 -1.17 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7d3917fd-a537-4712-8b1c-64f16d8282d4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "120"\r\n\t\t\t(at 0 1.17 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "40910e17-7aa7-4382-b080-b3c682bd52a2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6409997c-3bd2-49dc-bab5-f4210ce33ab0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fbb79462-e3bf-4014-8ae7-045d58222286")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3612aa13-a6e9-4ccc-ac20-c01f0bd659b5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/e8057e65-de86-4674-be4a-6a6d58efe02c/0915719a-249e-4481-a762-a82d2305d1cc")\r\n\t\t(sheetname "/CM4/CAN/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "824f135d-0aa1-4d7a-b216-c38033271005")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "75a820a0-0ce8-40d8-8d93-08138ad979f5")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "36a6fe68-2795-4ea2-b23c-0796ba4bb3f8")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "596e156f-bca2-4138-b06a-49594ed31ee0")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5ebb1fa5-a49d-452f-a76f-71ea21dd1ac4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN1+")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "b835add4-2f23-4cec-bcdd-f19b85aad77e")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN1-")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "6068bad3-eaaf-468f-90a1-d3f98f021ce4")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint ""\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "294d05d1-4e92-430e-86b6-12ef9b9cff5c")\r\n\t\t(at 79.696 67.196)\r\n\t\t(property "Reference" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "762f413a-298b-46b4-85e6-ca81f9fcbc2f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1b59ac1c-983c-402b-8ea9-0b6ff7e80fec")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e443c667-c23e-4a3b-a4de-827e2ff4c11b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "63b325db-e40b-41a7-856f-036f3df336c2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 3.2 3.2)\r\n\t\t\t(drill 3.2)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "98e24885-ddbd-4d92-a996-359e768ae8ab")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "296ac696-f94e-454e-a6c5-18c36b27f827")\r\n\t\t(at 103.14 72.84 -90)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R18"\r\n\t\t\t(at -1.04 1.14 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6943d7c9-ab0b-4c43-a09e-6792547e512a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "51k"\r\n\t\t\t(at 0 1.17 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "bb51f511-a4ff-489d-a03c-31a8f1913e6a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "880f2999-75c9-4b5e-89e9-66167cae5983")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "54a77efa-c15f-4662-b09f-0ee0f3c4998e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5b5fb2c1-2520-4ecf-8ce6-87f17b28046c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "LCSC" "C25794"\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0f75d439-f4c4-4aea-b609-114e89548ed5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KLC_S3.3" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ce4bf5e5-1314-4bd2-bf54-b2c3da097f49")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KLC_S4.1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3da35308-896b-408c-b353-4fcea969bfbe")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7d0dd385-7117-4425-971e-97fe9a01ae2c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1298f7d1-49c2-4d8a-9be3-1c992be677c4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a295cfa0-2141-4ec4-b5a7-96970642614b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ab2174b3-1e90-4444-8e3f-56bc9aadef50")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "21fb603a-2bcf-4072-b38a-e4a142efa963")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "cc67f620-a0f9-476e-855d-4d7e5042f180")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d64d530b-4fc3-4782-8a6f-8f18e680a0ad")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7affac20-cff1-4b02-95d0-e2fab0dc2c11")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a74a7c17-100b-4207-8ae0-a65bd1f79d80")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2b999ab4-79d1-46a3-99db-08c992dcb989")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7d682c63-6309-4f87-838c-bcb29ef00e81")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e78f4a00-bafb-4cd4-bca3-d15b727b4a51")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "69bf05b8-9d57-459b-a190-68981b618856")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "aacddeaf-8c9c-4e10-8c3d-f2a9aed2d30f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d4b7b76f-24e6-4b2a-a93b-55ace58d0ff9/5b32f805-45bb-4fdb-b494-ef9166765172")\r\n\t\t(sheetname "/CM4/CAN1/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "2580d438-de15-450c-8ec2-6fa6d4fe2f59")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "40fecf8b-399f-4cf5-84a7-9c6f07e988fb")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "e7d331f1-f2b2-4777-a6d0-fc55192c4808")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "0dd2da05-abe5-43ed-b9bc-43ff8c05053d")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7e9aeeb1-241f-4e29-8589-e7c2a39df970")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0 270)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U7-Rs)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d90f6e19-53c6-4514-835e-2efd2f7cc8f6")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0 270)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d28a4e93-d065-46cf-b622-e58b0f7c93d7")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint ""\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "2f2c1fd9-4d19-4c7c-b062-d5bfb84bc2b9")\r\n\t\t(at 79.696 134.804)\r\n\t\t(property "Reference" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6ee3b759-be8f-43b1-a89f-36b518f9527c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "346565a6-2541-44e7-8e27-91ca31d29a6e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2be74fd5-8fe8-4485-8397-542842a4f6fc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5d2c95d7-a1ea-4712-b532-d49d0dc5f52a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 3.2 3.2)\r\n\t\t\t(drill 3.2)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "ee698636-d6f8-42da-bcff-e61795e5b99e")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t)\r\n\t(footprint "Crystal:Crystal_SMD_SeikoEpson_TSX3225-4Pin_3.2x2.5mm"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "30094a77-27ca-47d9-b8a4-c2ebed2c415d")\r\n\t\t(at 107.4 81.975 -90)\r\n\t\t(descr "Epson Toyocom TSX-3225, crystal, 3.2x2.5mm package, SMD, http://www.mouser.com/ds/2/137/1721499-465440.pdf")\r\n\t\t(property "Reference" "Y2"\r\n\t\t\t(at 0 -2.450001 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "d6151a0b-1dba-489e-a265-76c0f650ca89")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "20 MHz"\r\n\t\t\t(at 0 2.450001 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a8c80309-65ee-464c-ad00-88469421dca7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a76c938b-a1e7-4572-9d14-64b350687cc8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Four pin crystal, GND on pins 2 and 4"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0f59217e-0a36-4e9e-b04e-a790667706b9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "crystal_resonator_oscillator"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f232a151-b83a-44df-a26c-25872e2b0e1c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "06425d99-1cba-4f0f-80d0-c4d4c267b742")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ebb819fb-fe2c-4256-94b3-a2655b81daf1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "61ab02da-6478-4059-adbb-bce023331467")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "36bff719-af9c-4db0-b092-903b1b963136")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "af3cba24-fabc-492a-9b86-d706d9757648")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f65fc9e8-fafe-4eaf-9d5f-6d2126481638")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8f3ce2c1-c731-4c7c-986e-a7856aaa9217")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d235a645-8b0e-4946-bcc4-d88dbe155699")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "14c831dc-fbab-4785-b08b-c3da7968a3d3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 270)\r\n\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2cd33740-4eb8-4739-a262-e66477f38322")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9d6dee4e-5d67-4290-9d92-fa7c120fd2e0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ebe6b501-d125-4ef8-ae51-acca5679914c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "bbac7091-8c43-4e66-8441-9a0ad2a3e605")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "eda114fb-ff88-462f-a720-60881ca08423")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "Crystal*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d4b7b76f-24e6-4b2a-a93b-55ace58d0ff9/ab25e74f-fc8e-4724-9fc5-7e9c6f026269")\r\n\t\t(sheetname "/CM4/CAN1/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2" "4" "3")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 1.635001)\r\n\t\t\t(end 2.06 1.635001)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "e48f1649-719e-4bd0-a8fc-953dd6281820")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 -1.635001)\r\n\t\t\t(end -2.06 1.635001)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7c1ea53d-b785-4eec-9c5a-affd4ed56dcb")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy 2.1 1.75) (xy -2.1 1.75) (xy -2.1 -1.75) (xy 2.1 -1.75)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "b22489d8-f67a-4488-a714-69747226782f")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy 1.6 -1.25) (xy 1.6 1.25) (xy -0.975001 1.25) (xy -1.6 0.625) (xy -1.6 -1.25)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "96252652-7e24-4edf-9ed3-f154dae69ab2")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "777c2150-de00-422f-98fd-e2f9045e6dc4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.8 0.8)\r\n\t\t\t\t\t(thickness 0.12)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.1 0.8 270)\r\n\t\t\t(size 1.4 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.217391)\r\n\t\t\t(net "Net-(U5-OSC2)")\r\n\t\t\t(pinfunction "1_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "620ca72e-fb56-4160-a02a-407e8210a824")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 1.1 0.8 270)\r\n\t\t\t(size 1.4 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.217391)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "G_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "92586b10-60cc-4640-89f8-56cd34552e67")\r\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at 1.1 -0.8 270)\r\n\t\t\t(size 1.4 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.217391)\r\n\t\t\t(net "Net-(U5-OSC1)")\r\n\t\t\t(pinfunction "3_3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "b225f3f7-0115-4663-bed3-f4cc3e2882f1")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at -1.1 -0.8 270)\r\n\t\t\t(size 1.4 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.217391)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "G_4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "ca5e860e-28dd-4cf5-a373-6e8a4147f512")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Crystal.3dshapes/Crystal_SMD_SeikoEpson_TSX3225-4Pin_3.2x2.5mm.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "301f9a46-8131-4d01-8755-a94abcd8a3b6")\r\n\t\t(at 91.62 85 180)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C6"\r\n\t\t\t(at 0 -1.16 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "53a77bf0-aeb3-4681-b00f-e94ec8709163")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "TBD"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ab11e188-2958-40f9-989b-8843c256bd3e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "912f3c31-b9a0-4653-a8a4-67783d41de4b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d16f9ca6-cbaf-4943-a708-ec012fe58966")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9633459b-fa5d-49d3-8155-25c80a74bda2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b1007192-8dbf-4cc5-a19d-7e8b72008180")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "bf8cc7d0-f7ed-4a65-9b09-579d5b82b718")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "319eebe2-54e3-4537-9c53-858cee5f4acd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b679a725-2cc1-4dbd-93c3-5c1bd5ceab7e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "11238158-a129-4675-85ed-eaf768b5f080")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5b69d57b-507c-4e9f-9f0f-4158913234b9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fd63ac19-92bc-4a3f-8066-ff91b99b4488")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ca0bf8ad-bea2-4263-b131-4c2a5ee054ba")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "82ae417f-4f39-47bc-a6cb-fdc75cc38f24")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "618d2a21-8fb6-426a-8265-e8cda658d7cd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5afb39f2-3d79-4856-9aa2-82e972906b4e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "32d6a207-91a6-4234-ae49-f5e66e07b7e5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "46890fc4-0516-4992-' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'840d-d5427bc168a3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9019b5e6-496f-4dae-a30b-3e316bcf00b2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/e8057e65-de86-4674-be4a-6a6d58efe02c/a780867a-6a76-4d18-86e9-b0ae40b28ff7")\r\n\t\t(sheetname "/CM4/CAN/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "28611d54-5000-4bc7-bed6-96e3d711e406")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "63b5a299-e70f-4739-976c-bc7f30d23c13")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "62228732-66d1-498d-a69c-54f2c892564c")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ac4ebc4e-b284-4ef2-a126-fc68b2340122")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "41880066-4e20-48c8-8ef9-8c3898c90329")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U2-OSC1)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "83865a6a-2c11-4a7a-85a3-3d582ac9506b")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "57856159-f832-4426-927f-3604987cf0ec")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "3359c917-3c5c-4375-851b-b0ccf744e7dc")\r\n\t\t(at 143.6 77)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R9"\r\n\t\t\t(at 2.2 0.2 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0ffa1706-9034-45e0-b51e-626591bbb5f1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "2k"\r\n\t\t\t(at 0 1.17 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "206cf3e3-b763-4566-8e64-7ed64888cd18")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7d4c3d9d-1afb-4039-8edf-30ae8105cd10")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "57ea67fb-e1fc-49f2-b14b-2829856f4d04")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "da30c8f3-84e8-479e-a7b3-571dc16bf5e8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c2e8c499-85f4-4d96-8c4b-315ecfcdfb1d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "881f7f91-5e82-40b5-84d2-6d8f04a17b05")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "dc155825-b5b1-4f40-bdb2-b526a1e10df8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8667d048-c2ff-4070-a08d-d293c1f2b267")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "bee5be62-9607-443a-acaa-f336f04ab725")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "719d48ba-3381-4a0b-bc7e-2c764f42198a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6b5e9905-9160-4206-aedf-bc22b5217213")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c89a0e47-1d22-4044-9cd0-bad337071d55")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "97b459e1-19ce-4461-b325-5546c1cb614e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "26246cc4-dd1b-4526-8c42-5afa96aa422d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "717cf432-1361-4018-abde-3aa7311b9c32")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "12f73b54-9a90-4425-a3bb-38cba872f802")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5f255bec-5d7e-42a2-9d91-5638d8e086d3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8a64c96b-c03f-4447-9deb-e50bf1c2ff90")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/969a2683-d67a-42c2-b780-0ffa566d94ad")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "52b4a19a-dede-4baa-b5b3-e30e8b3e79a4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "d2b21866-a050-4203-a9f1-ff96a96754d0")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "0d58eec5-f59c-419e-9fa1-0bcc38c0c4d7")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "fbc1ea5c-b25a-47e5-a30e-0291ebc29d0c")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' "9c2db7c5-42f2-4f3c-b2b4-19bf60d64f5f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U9-VREF)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "beac08f9-da3b-4c88-8a91-33c4a41585be")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "e0e0d7a9-8888-4fff-87f0-3e69d7f2ba6f")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "344487a0-c669-4970-ba53-8624552fa119")\r\n\t\t(at 89.5 82.48 -90)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C5"\r\n\t\t\t(at 0 1.3 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ce431e7d-6d6a-4856-9804-400846a4128d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "TBD"\r\n\t\t\t(at 0 1.16 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e55c752f-16ff-47e0-b8d4-199146ddd9ac")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "94ed9999-72f2-40ac-bb7c-cc242447d66e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "127973b4-a80d-4f4f-a05a-ea6456ef7231")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "865be07e-ed07-4742-9032-eca22549ce97")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "599a0985-5c6b-4687-8311-277a33e1bdda")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c22be855-1f2c-4036-824e-8db5a35f68fc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6b5975a5-b3a7-47ec-8278-336c871c160a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "da81ba05-352b-48bb-8261-274da935893f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d9c8fa6f-6fd3-4d3c-92f1-c70ada3c7cfa")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2eeb43bf-066c-4228-8077-78cbc748f43b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "345896b3-9d60-4ff0-b4dd-0b3fdb9dc404")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fdf72d04-6b76-4266-81fb-49a3d795904e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "05528eb0-51f6-4a88-b07d-c9ab0b7e55e5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "55daf5db-44d7-4b56-aaa2-ce2f69bc650f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "94133feb-2375-4cb6-8d9d-8d75acd9530a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4396c5ff-5841-4308-a469-517f7fc02fd3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f0653f10-560d-42d8-ab57-2d4e7d48dc41")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ca5523c5-39d7-40a6-8325-e5dde8fc5f20")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/e8057e65-de86-4674-be4a-6a6d58efe02c/54b91561-f064-4894-b465-53b2fe5570c9")\r\n\t\t(sheetname "/CM4/CAN/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "bafcc93b-09c5-4ad8-834a-10bd79c1db24")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0174b0bc-84b6-4cf6-9126-fb905c6fe7bc")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "4d5dd8d6-1ae9-4808-b805-0a9868a32189")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1c0fe07a-3b23-444e-806c-c2ab702e93ec")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b7645f17-f1f1-468a-85b6-2b902638dcb1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U2-OSC2)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1ff2541d-cb9a-4398-ab73-d9f77647d711")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 270)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c6746707-8961-4b9c-b6b6-495549617312")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Connector_JST:JST_XH_B5B-XH-AM_1x05_P2.50mm_Vertical"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "35f4a505-ca5e-473a-b185-68d99cf14b56")\r\n\t\t(at 121.6 74.775)\r\n\t\t(descr "JST XH series connector, B5B-XH-AM, with boss (http://www.jst-mfg.com/product/pdf/eng/eXH.pdf)")\r\n\t\t(tags "connector JST XH vertical boss")\r\n\t\t(property "Reference" "J5"\r\n\t\t\t(at 5 -3.55 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "272630f8-bc66-495c-86b6-b99a2f6c2ac3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "Conn_01x05"\r\n\t\t\t(at 5 4.6 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d346d9a8-e191-4051-8f6b-69db64762c3f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a5046d4d-b0d6-4662-b764-2784dda89b88")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Generic connector, single row, 01x05, script generated (kicad-library-utils/schlib/autogen/connector/)"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "83feaadf-b36e-4484-9fa0-daa661c69b5e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "connector/JST"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3ac9904e-7d95-4b3c-9ba0-e96b32241860")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "Connector*:*_1x??_*")\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/364a4daf-cd82-4f4b-8b4f-5ffbb633f674")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2" "3" "4" "5")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr through_hole)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -2.85 -2.75)\r\n\t\t\t(end -2.85 -1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "fabf497f-fc0e-48f3-9eb4-7c7788b4f077")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.55 -0.2)\r\n\t\t\t(end -1.8 -0.2)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "dc9699aa-1d02-4f7a-9ad4-23173990876e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.8 -0.2)\r\n\t\t\t(end -1.8 1.14)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ba50a2fb-4153-485c-95d8-9d93708e66c2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 -2.75)\r\n\t\t\t(end -2.85 -2.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "fbb16ae7-b367-4019-b7ef-7cb645604eb8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 5 2.75)\r\n\t\t\t(end -0.74 2.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "e2af66e3-123a-4c90-800f-e31198bc916e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 11.8 -0.2)\r\n\t\t\t(end 11.8 2.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b7954f5c-a65b-4c4e-995b-635a18991b03")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 11.8 2.75)\r\n\t\t\t(end 5 2.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "3301b2d4-2fed-44df-9e2b-94cea323ef50")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 12.55 -0.2)\r\n\t\t\t(end 11.8 -0.2)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "8866fd23-a222-49d0-8908-b6d99237ea0a")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -2.56 -2.46)\r\n\t\t\t(end 12.56 3.51)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b23733ef-24ec-4cba-927a-d039059943b6")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -2.55 -2.45)\r\n\t\t\t(end -0.75 -1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "da353287-b32f-4948-96d3-75b07eea282c")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start 0.75 -2.45)\r\n\t\t\t(end 9.25 -1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1be86b25-9370-4633-92bf-2de29be0f4eb")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start 10.75 -2.45)\r\n\t\t\t(end 12.55 -1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "fb7a74c2-d033-4af0-9cf3-ed766b88cef3")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -2.95 -2.85)\r\n\t\t\t(end 12.95 3.9)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "b487e941-bf0b-4872-b085-77769883df9c")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.625 -2.35)\r\n\t\t\t(end 0 -1.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "66feae27-e36f-4d07-b359-582e3847e116")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0 -1.35)\r\n\t\t\t(end 0.625 -2.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c0e43502-3973-412b-bd8d-e63fc9161dbc")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -2.45 -2.35)\r\n\t\t\t(end 12.45 3.4)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ac2b1e79-5c1f-4f7b-9794-56a87660ac16")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 5 2.7 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "8285e011-4aa2-46d4-bfff-4e85ebe24219")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at -1.6 2)\r\n\t\t\t(size 1.2 1.2)\r\n\t\t\t(drill 1.2)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "15655bd1-b75e-415d-baf9-4bbdd1a5f9a7")\r\n\t\t)\r\n\t\t(pad "1" thru_hole roundrect\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 1.7 1.95)\r\n\t\t\t(drill 0.95)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(roundrect_rratio 0.147059)\r\n\t\t\t(net "Net-(J5-Pin_1)")\r\n\t\t\t(pinfunction "Pin_1_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "3c9dbdee-af74-4a5e-a448-831f5088e491")\r\n\t\t)\r\n\t\t(pad "2" thru_hole oval\r\n\t\t\t(at 2.5 0)\r\n\t\t\t(size 1.7 1.95)\r\n\t\t\t(drill 0.95)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(J5-Pin_2)")\r\n\t\t\t(pinfunction "Pin_2_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "086a14f6-0fb8-4bb5-b9fe-214c920deba3")\r\n\t\t)\r\n\t\t(pad "3" thru_hole oval\r\n\t\t\t(at 5 0)\r\n\t\t\t(size 1.7 1.95)\r\n\t\t\t(drill 0.95)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(J5-Pin_3)")\r\n\t\t\t(pinfunction "Pin_3_3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "a5e60f4d-3186-4fd2-b0e1-fbe9aaf96625")\r\n\t\t)\r\n\t\t(pad "4" thru_hole oval\r\n\t\t\t(at 7.5 0)\r\n\t\t\t(size 1.7 1.95)\r\n\t\t\t(drill 0.95)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(J5-Pin_4)")\r\n\t\t\t(pinfunction "Pin_4_4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f5280c4f-9d28-4e41-95a0-5a1db76031e9")\r\n\t\t)\r\n\t\t(pad "5" thru_hole oval\r\n\t\t\t(at 10 0)\r\n\t\t\t(size 1.7 1.95)\r\n\t\t\t(drill 0.95)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "unconnected-(J5-Pin_5-Pad5)")\r\n\t\t\t(pinfunction "Pin_5_5")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "34ed8e7e-5518-44ac-a9e0-c4c7a0e374ba")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Connector_JST.3dshapes/JST_XH_B5B-XH-AM_1x05_P2.50mm_Vertical.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "40fff7f7-285a-447f-b606-b98ef0d7671f")\r\n\t\t(at 79.2625 74.6)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R1"\r\n\t\t\t(at 0 -1.17 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "cc6f2eab-c86d-49fc-a28f-1f4cf07a7878")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "1k"\r\n\t\t\t(at 0 1.17 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5725d206-fb68-49bb-ac1a-953330b00c61")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5fcb1138-1b4d-4689-bb9a-2cb157133bad")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1c7b4db0-2b18-47f5-8163-8c21d1874728")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0d932344-1262-4e84-a17a-f9803aae601d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "36a23769-96de-4923-85fa-c7095bce1029")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b40cff97-d5dd-448a-81f1-2fe883c8e2e9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t\t(uuid "63391459-9cbc-4ccb-8908-540f3d08e452")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6e0d4fad-c33b-45d6-abc0-81ab4534a6eb")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f053dc5c-46de-4b90-bebc-a4c5646e5339")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "134a4eeb-d2fb-4fa9-bf0c-06e038d6b609")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "95f33711-3817-4fee-aa44-1669d0496181")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2fd85b8e-263c-4b37-89cc-b8864698fd40")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b8b992fd-f642-4122-84aa-fd8503a8be14")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "992cd8a9-567b-448f-83e1-762da56c960c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a808df92-3110-4550-85e3-73db68da1317")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4b1be623-b1d2-4792-b71a-ed61c7758776")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "cf02e8ed-22f8-4935-a536-09e9371caab3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "17bef046-cebc-4b29-a079-2c5985a93226")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d311a9bf-b536-4a25-9e0a-08761c899440")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "32d98a9b-17f0-4551-8140-74e929f444be")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b3e2ed77-657b-47ca-842e-b8f510b4240c")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "608dc9a9-2c6d-4873-ae46-c3a97b207620")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2a0d860d-ec5a-4aba-b747-71531d4c10ad")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b69c9292-1f13-475a-8185-411f7a19ea4c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(D1-K)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "273cb1cb-15b0-4643-926b-2ace3ad48171")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(R1-Pad2)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "19f73fc5-67f0-4497-a01f-384ff7cd4334")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "44a0a55e-6199-420e-85b1-6641ff52c57d")\r\n\t\t(at 121.04 64.6 -90)\r\n\t\t(descr "Through hole straight pin header, 2x04, 2.54mm pitch, double rows")\r\n\t\t(tags "Through hole pin header THT 2x04 2.54mm double row")\r\n\t\t(property "Reference" "J4"\r\n\t\t\t(at 1.27 -2.38 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "c9a640ee-f49f-459b-a224-9f1f9b5e2d3e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "Conn_02x04_Odd_Even"\r\n\t\t\t(at 1.27 10 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "db8f23bd-3c76-49ad-acfb-c3a89741f6c6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4efcf3bd-8596-46e4-8f6f-9acf9b8593ec")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Generic connector, double row, 02x04, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/)"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "affc43f0-15d8-4005-8dfb-2fb4edfca183")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "connector/pin_header_socket"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "326532f2-147c-4ba1-8184-33cc0ecd9c45")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7262f2e4-5585-41cd-86c2-7cd176b5ff95")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "320f04a4-d70a-425b-85df-c76c88b9ddd6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "51ecc5a5-6a6e-48d0-8705-e60a63edf1cb")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "caf20589-883e-4d9d-a772-c43c929cf8a6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8e82d6ee-fc80-4636-addf-641e6f271f50")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d47daa25-c439-49ad-8188-4bdc4700d8bd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d94923fe-120f-416f-958c-69812e10f3e6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4b98a41d-a03a-4619-b435-fee16993f39d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "712dd76a-d0cd-4800-81da-4c4fbb6a' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'ffee")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f92f88f7-2262-442c-8618-553f5c1f1a37")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4f22530a-746d-4976-b815-2914ba6e45dc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "174f1f61-f13f-446c-a294-aa5776f99cf4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9bf417fb-9cca-40c1-ab82-585fc8fb6655")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a7e1f5d3-17f8-467e-bb92-2cbcb8079e0e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "Connector*:*_2x??_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/3ff24043-2fff-4442-8330-372a61bb255e")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "3" "5" "7" "2" "4" "6" "8")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr through_hole)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 9)\r\n\t\t\t(end 3.92 9)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f699a2a3-ca14-4a80-a3fc-61aff9f423ac")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 1.27)\r\n\t\t\t(end -1.38 9)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "cacb7080-063b-4d93-805c-ed07ca0e5c36")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 1.27)\r\n\t\t\t(end 1.27 1.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "63c1f29b-ec33-416c-b3a5-935f62d319cf")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.27 1.27)\r\n\t\t\t(end 1.27 -1.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "572f1b88-bc3a-449f-b71e-edd5f6516eff")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 0)\r\n\t\t\t(end -1.38 -1.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ecdc8061-2c1a-437b-a3c9-7b91fc66b930")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 -1.38)\r\n\t\t\t(end 0 -1.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "a2f50d58-6b02-49c6-8d22-2624c55c9185")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.27 -1.38)\r\n\t\t\t(end 3.92 -1.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ce2d32d0-5f03-4fa4-b309-c5db3b3ffe20")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 3.92 -1.38)\r\n\t\t\t(end 3.92 9)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b71ae5fe-dced-41c9-bdb2-a8ab0e334ca7")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -1.77 -1.77)\r\n\t\t\t(end 4.32 9.39)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "eace07ee-f087-43ae-830a-1e478cefab28")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.27 8.89)\r\n\t\t\t(end -1.27 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "373e9aa8-2379-4e7f-bbe4-255c9327bfe1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 3.81 8.89)\r\n\t\t\t(end -1.27 8.89)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "147a47eb-9055-426c-9faf-412b719f199a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.27 0)\r\n\t\t\t(end 0 -1.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ff7b6acc-32dc-4d6b-b8d4-3c93cc2ee8c7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0 -1.27)\r\n\t\t\t(end 3.81 -1.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "31229b58-26ab-4272-a433-fe911aae5b3e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 3.81 -1.27)\r\n\t\t\t(end 3.81 8.89)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1ba408cf-bb6c-40d6-bcc7-faff538f595c")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 1.27 3.81 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a486181b-7a1e-45c0-ac00-24e5520e21b2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" thru_hole rect\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_1_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "2be5b815-5ed7-4856-a809-bbdfa9ac4ad5")\r\n\t\t)\r\n\t\t(pad "2" thru_hole circle\r\n\t\t\t(at 2.54 0 270)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(J4-Pin_2)")\r\n\t\t\t(pinfunction "Pin_2_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1fa6e132-0ee3-4661-a8da-59c91fb6e728")\r\n\t\t)\r\n\t\t(pad "3" thru_hole circle\r\n\t\t\t(at 0 2.54 270)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_3_3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "3292c3a1-8501-4bbd-a3a4-c79441148a61")\r\n\t\t)\r\n\t\t(pad "4" thru_hole circle\r\n\t\t\t(at 2.54 2.54 270)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(J4-Pin_4)")\r\n\t\t\t(pinfunction "Pin_4_4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "a98b5d92-ec77-409a-b3a9-acd03be40720")\r\n\t\t)\r\n\t\t(pad "5" thru_hole circle\r\n\t\t\t(at 0 5.08 270)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_5_5")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "2de416d1-7f31-443f-95b7-446fcc4806ce")\r\n\t\t)\r\n\t\t(pad "6" thru_hole circle\r\n\t\t\t(at 2.54 5.08 270)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(J4-Pin_6)")\r\n\t\t\t(pinfunction "Pin_6_6")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "94fe0723-406f-41c7-928b-0a0f188a5c1c")\r\n\t\t)\r\n\t\t(pad "7" thru_hole circle\r\n\t\t\t(at 0 7.62 270)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_7_7")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f47093c8-89f9-453c-8008-3f2429134151")\r\n\t\t)\r\n\t\t(pad "8" thru_hole circle\r\n\t\t\t(at 2.54 7.62 270)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(J4-Pin_8)")\r\n\t\t\t(pinfunction "Pin_8_8")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "54f985e0-038e-40e5-963f-5fcdb9e50100")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_2x04_P2.54mm_Vertical.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "543f0d05-cef6-49cf-8231-06a4957a3470")\r\n\t\t(at 91.6 75.1 90)\r\n\t\t(descr "SOIC, 8 Pin (JEDEC MS-012AA, https://www.analog.com/media/en/package-pcb-resources/package/pkg_pdf/soic_narrow-r/r_8.pdf)")\r\n\t\t(tags "SOIC SO")\r\n\t\t(property "Reference" "U4"\r\n\t\t\t(at -0.7 -3.4 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1a167f04-0179-4ffe-916c-41b3be90a05e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "SN65HVD230"\r\n\t\t\t(at 0 3.4 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "727cf7ca-bfbc-4f69-a61f-58d66be8f750")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "http://www.ti.com/lit/ds/symlink/sn65hvd230.pdf"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9d1231b7-656a-4fe4-a802-d51ce3e7c244")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "CAN Bus Transceivers, 3.3V, 1Mbps, Low-Power capabilities, SOIC-8"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "533718af-e9bf-4085-b719-fe92f647aa1b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "package/gullwing"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a6c7e1a9-9772-483a-8d29-f7e871c9e8bf")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thicknes' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b's 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6d0e3f55-4ffb-44e2-a26e-ef925e685afb")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9a8b9301-c1ed-4a28-b795-380702d8db0b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "86f12817-0f94-4050-9d41-d9d32d5597fa")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0f7dd9ce-8a0b-40e1-9231-87b7d87f2c5a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "20a5a158-f723-40f2-b9b0-fc58a9202de2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "24e8a1a9-7fb0-4086-ba29-5cc85127bac1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e0198509-a5c0-4060-9ce5-6dc4f885f656")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "42aa6262-dac9-42b1-9373-e2b307478005")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b57756d7-ba7a-4d34-a5d2-c1a59af0752c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6c67dd12-b0ef-471b-9482-f49cca093d78")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2c06dc39-55b9-4037-b279-5e2f6b8ae5b3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3576faa1-17ff-457c-92ce-2ced6ccb51b6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "24d5c58e-4f14-46e4-9108-7cfc57a80cbf")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "50e47cc4-f646-47c5-ab5e-073448071c98")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "SOIC*3.9x4.9mm*P1.27mm*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/e8057e65-de86-4674-be4a-6a6d58efe02c/e5f9ddce-1d0b-41fa-a941-d9bc87c8d323")\r\n\t\t(sheetname "/CM4/CAN/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "4" "5" "8" "3" "2" "7" "6")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start 2.06 -2.56)\r\n\t\t\t(end 2.06 -2.465)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7346f02c-027e-42d2-bd8c-7253960937ae")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 -2.56)\r\n\t\t\t(end 2.06 -2.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "4f56f0b3-66f8-4194-ae9b-44ff9d17106c")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 -2.465)\r\n\t\t\t(end -2.06 -2.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "00f1752c-88e0-43e4-af28-7984ed141509")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.06 2.465)\r\n\t\t\t(end 2.06 2.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "355bed21-6257-4e7a-b473-10b515d67a00")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.06 2.56)\r\n\t\t\t(end -2.06 2.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "9d37b254-328c-44ca-9726-2f1ef48f38fe")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 2.56)\r\n\t\t\t(end -2.06 2.465)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "36a3d3c6-1550-4734-aa33-b853ff3ee3c7")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -2.6 -2.47) (xy -2.84 -2.8) (xy -2.36 -2.8)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f70b4194-2111-4fdf-b090-047b70bb8911")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 -2.7)\r\n\t\t\t(end 2.2 -2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "7640117b-6aab-4837-b930-2b55e74b6829")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 -2.7)\r\n\t\t\t(end 2.2 -2.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "2e7e2bb2-949e-4f66-ad9e-675ea85224ab")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 3.7 -2.46)\r\n\t\t\t(end 3.7 2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "1176d479-82ff-4421-9b76-5a47b45bbdc0")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 -2.46)\r\n\t\t\t(end 3.7 -2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "936a2065-1645-42a2-918b-f5b65053f7c9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 -2.46)\r\n\t\t\t(end -2.2 -2.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "a9cab269-3e2f-4ed2-8e8a-fc3d15b9ad37")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -3.7 -2.46)\r\n\t\t\t(end -2.2 -2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3e7de45f-810b-4d23-bd8f-9af1202fb53f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 3.7 2.46)\r\n\t\t\t(end 2.2 2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "25ef0411-65e5-4528-9d0b-45561e198294")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 2.46)\r\n\t\t\t(end 2.2 2.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "ea272aba-4966-4333-9210-1cf78a763bb9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 2.46)\r\n\t\t\t(end -3.7 2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "0e33b2a2-15e0-4533-b473-331da511b918")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -3.7 2.46)\r\n\t\t\t(end -3.7 -2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "6df67137-1365-4e40-95e1-1a3023b9318a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 2.7)\r\n\t\t\t(end -2.2 2.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "9f39f060-7160-4b46-867e-51e08d0c61f5")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 2.7)\r\n\t\t\t(end -2.2 2.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "9a027e20-ba82-42a0-9ffb-47e0772366dd")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -0.975 -2.45) (xy 1.95 -2.45) (xy 1.95 2.45) (xy -1.95 2.45) (xy -1.95 -1.475)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5e3a0793-7550-4f13-8511-504935204e41")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5fe8f692-01e0-4a41-8264-f3bcea6bce6a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -2.475 -1.905 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U2-TXCAN)")\r\n\t\t\t(pinfunction "D_1")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "77b76cce-e816-4e17-a6c9-e7d8cf77737e")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at -2.475 -0.635 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_2")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "ea433a07-d027-45f4-8414-05da2b662d87")\r' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at -2.475 0.635 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "VCC_3")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "22ab14f5-1514-45ac-b555-eff482cf0eed")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at -2.475 1.905 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U2-RXCAN)")\r\n\t\t\t(pinfunction "R_4")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "10a88262-45fc-4018-ab7a-c7be9c09966d")\r\n\t\t)\r\n\t\t(pad "5" smd roundrect\r\n\t\t\t(at 2.475 1.905 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U4-Vref-Pad5)")\r\n\t\t\t(pinfunction "Vref_5")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "c51d626d-b6c3-4cd4-a3d3-94f96a0814ee")\r\n\t\t)\r\n\t\t(pad "6" smd roundrect\r\n\t\t\t(at 2.475 0.635 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN1-")\r\n\t\t\t(pinfunction "CANL_6")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "9bfb2133-3190-4c58-a7ce-c09c3646caee")\r\n\t\t)\r\n\t\t(pad "7" smd roundrect\r\n\t\t\t(at 2.475 -0.635 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN1+")\r\n\t\t\t(pinfunction "CANH_7")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "6bfc88ef-aed2-450f-8eea-56e75b3beac2")\r\n\t\t)\r\n\t\t(pad "8" smd roundrect\r\n\t\t\t(at 2.475 -1.905 90)\r\n\t\t\t(size 1.95 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U4-Rs)")\r\n\t\t\t(pinfunction "Rs_8")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "53e6e5fb-4c97-48af-9032-cf4844ab3825")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Package_SO.3dshapes/SOIC-8_3.9x4.9mm_P1.27mm.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "5503ed95-a52f-40a3-9ec8-21a5afceaf03")\r\n\t\t(at 94.9 87.8)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C13"\r\n\t\t\t(at 2.4 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "d9121edb-5fc7-4dd0-972f-0588f7287767")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "100n"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c9e75344-9f76-4094-bfe7-c2d6dd982b75")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "05e37cb7-ff9f-452a-8139-2da885650670")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7355765a-5b75-48e1-900c-ba246e125c68")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1c0c0669-65cb-4bf6-bf24-cd2e209eddfd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/414421f7-7e6e-4753-8728-c94e4b726a64")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "d38c8dbd-12f9-4c61-b8ad-0476d1334435")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "dbcbe0ed-8e70-4603-b54d-30590d90fa91")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "c221931a-f473-4a83-abfb-99916398926e")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6fa8ea91-af0e-443b-b118-9f013d1218fd")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "0ef38ae7-11ee-44f4-82ca-3f97c6e93a03")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d3890754-301b-4f51-babd-e33e78981b36")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "95f593df-1c2c-49ed-bd50-9e3b61296434")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_1206_3216Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "552c05bf-9ce8-476b-b759-30daed019fea")\r\n\t\t(at 135.7 70.3 90)\r\n\t\t(descr "Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R5"\r\n\t\t\t(at 0 -1.83 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "029ec33c-e791-4acb-a392-e72a98f9a051")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "1"\r\n\t\t\t(at 0 1.83 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6606abe8-892e-44cd-9071-c8bae41f3f91")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a58f7121-184f-4769-9df5-377bcd910c83")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "166dfe15-c560-4f42-8c75-598ce5a87161")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f2a70e79-b017-4abf-b41b-a4aabb0b3ef7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/fb358393-3429-4757-853a-d9e002248969")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.727064 -0.91)\r\n\t\t\t(end 0.727064 -0.91)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "3e3f4ff1-4397-4175-99de-add39c9ced5d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.727064 0.91)\r\n\t\t\t(end 0.727064 0.91)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0b111ab0-2ba1-41a9-9297-3c0fec248cc3")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -2.28 -1.13)\r\n\t\t\t(end 2.28 1.13)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "f79a1dd5-a271-4bc7-b736-fbf835e27dc2")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -1.6 -0.8)\r\n\t\t\t(end 1.6 0.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "49f11648-7d41-48ed-997f-5d4d6fe831c4")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "54e97505-6eaa-42a7-ab0b-72682be29007")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.8 0.8)\r\n\t\t\t\t\t(thickness 0.12)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.4625 0 90)\r\n\t\t\t(size 1.125 1.75)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.222222)\r\n\t\t\t(net "Net-(U9-AISEN)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(u' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'uid "4f4bc1d4-7762-43e7-97c0-4edcd6f56eb5")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 1.4625 0 90)\r\n\t\t\t(size 1.125 1.75)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.222222)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0dc4184f-c93d-434a-9a6e-1aad141b98b9")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1206_3216Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "5f517bf1-233c-4f8d-9576-45fbfe607d28")\r\n\t\t(at 122.8 132)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R4"\r\n\t\t\t(at 0 -1.17 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "2c7f45b8-2865-4850-b07b-cf03293ac24c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "5.1k"\r\n\t\t\t(at 0 1.17 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2e63799e-1dd0-4f85-b6e6-17b330cc8b43")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fd01393a-f888-418e-b8c3-dddfec9af4c2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6dd268f9-7a3a-45e7-b472-facc8ab60234")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "946dc72a-0402-48a6-af03-4dac00d3306a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/b4fa970f-540a-4fc5-9507-a70d0630c20b")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b27b958b-7e6d-4486-83f9-a4831c1cdd82")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6ac16203-0f2b-4831-b9fb-6264a2da348c")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "bc119eb6-7fe9-4818-b0ba-7821d1f27b1b")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "46a38a72-9c0b-4e73-a3e3-a52bdd925592")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c38ac22e-59bd-4b6b-a697-3cf4e3a81d25")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J3-CC2)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1de9d00f-0abc-466d-a393-996717246b5f")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "da0492ed-5112-42d2-89c9-a740a2db036a")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "5f57bbbe-1cd1-49b8-9927-9e4213cda005")\r\n\t\t(at 138.8 77.19 90)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R7"\r\n\t\t\t(at -0.01 1.4 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f866a6d0-2fca-4db8-a5bc-7f17aa9cc421")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "5.1k"\r\n\t\t\t(at 0 1.17 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "72b8dd69-332d-4227-982d-b554d823b12b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e68ee548-2fd6-4cd2-941a-4580cd357c70")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "65c9ff36-17a6-4ae5-b61b-104a17c4f59c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c4a64769-8a1c-4bc4-98e3-01d8021f6058")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d24a2686-1f52-4180-bc25-9a7f3337d4e7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6d3157b8-18b1-4a2f-99b4-c743045f43f1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7470ee11-b069-410f-8c79-3152a4c7d743")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d4100f7e-1d2c-46a6-8d0e-18a9db68e4f2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fa6bbe23-1862-4230-bb04-bd0734d0d6bf")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "982622a6-d858-449a-a261-55e754aa6d17")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3300d2f5-2a93-486b-a899-e29f01c9a5da")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e7cc22a3-d6f1-4f5a-a524-8c8b71a4020b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b71006e0-2aa8-4e16-ae71-576308d1561e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e6d2efce-952f-4dc8-9c9f-883ba63112ca")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ff987990-9d0a-4768-98d9-9b6cefe86f10")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "06ce72ed-1abc-4d70-a932-08da194928ce")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ffd48e1b-bdad-4723-82b7-bb1ea6c76b11")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "da9bab09-0060-4211-9ad4-686997176383")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/d8569870-5acc-4280-b4dd-75dd7ca097ca")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "c7d423b4-e6d2-4f3f-a5cc-c16ebbc8b4fb")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "c601c7a0-f9fb-4210-94e4-f791301013b7")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "156d7f41-8098-44cb-bf86-604d5fcfbf31")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6c9b3e81-cf39-4d0d-abb9-8bc70040347c")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "214061c4-7f27-49a1-b8e3-68e0399d3c35")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0 90)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "177ad3c3-dfb4-4c3e-97b6-5b6f6bb44d43")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0 90)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "559d1e89-9049-4581-925a-baea05ebdaac")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Diode_SMD:D_SOD-323"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "60a50998-2dea-4c46-956c-9ef630622ef4")\r\n\t\t(at 103.85 66.3 180)\r\n\t\t(descr "SOD-323")\r\n\t\t(tags "SOD-323")\r\n\t\t(property "Reference" "D3"\r\n\t\t\t(at 2.65 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ed179440-84b4-4b74-8d3a-d412819d2097")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "D_Zener"\r\n\t\t\t(at 0.1 1.9 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "054707f4-3d44-4759-8e31-a25dfefd11d6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "91c0ac5c-5cce-49f7-9b85-353b1411fa7e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Zener diode"\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2e1d075e-82be-4cb3-aa6a-cda32971c218")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "TO-???* *_Diode_* *SingleDiode* D_*")\r\n\t\t(path "/45707674-9452-4f3d-9574-bc08f74bdbed")\r\n\t\t(sheetname "/")\r\n\t\t(sheetfile "payload.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 0.85)\r\n\t\t\t(end 1.05 0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "a9e2b900-ddd0-46b0-9b0f-1c5396dc35ce")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 -0.85)\r\n\t\t\t(end 1.05 -0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ea4a41a3-d832-41d7-83a3-e226bf1906ef")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 -0.85)\r\n\t\t\t(end -1.61 0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "a01b9f04-3dd4-46f9-8e59-f1f0e827d3f8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.6 -0.95)\r\n\t\t\t(end 1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3e8bf157-61cf-415c-bcc5-d94a14aa98ae")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 0.95)\r\n\t\t\t(end 1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "4322fe8e-fa2b-489c-a58d-75e7dcde395c")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 -0.95)\r\n\t\t\t(end 1.6 -0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "e3a2be91-9e9c-4428-9cdd-f87ff9a3fe2e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 -0.95)\r\n\t\t\t(end -1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "6c7c31f1-54fe-490a-b194-ddb55dae409a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.9 0.7)\r\n\t\t\t(end -0.9 0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "93031f5c-bd41-46ce-8cf0-8f488f4e3574")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.9 -0.7)\r\n\t\t\t(end 0.9 0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b47c7702-309d-41e9-95eb-e1364bc5261a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 0.35)\r\n\t\t\t(end -0.3 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2b25a0d9-e97c-4508-bc29-e8ebd3ea043e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 0)\r\n\t\t\t(end 0.45 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "905981d3-10aa-4f16-bea3-ebcb3f9ca449")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 -0.35)\r\n\t\t\t(end 0.2 0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ef7e6f8b-a104-4995-99b4-9313fcd8e28e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 0)\r\n\t\t\t(end 0.2 -0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a7015c1e-ed1d-4e88-a283-efc2ef134ec2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 0)\r\n\t\t\t(end -0.5 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "f813317d-e064-4367-a06d-0c3534c1a360")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 -0.35)\r\n\t\t\t(end -0.3 0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "86f81bc2-342c-4361-8464-e736ee8bb0aa")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.9 0.7)\r\n\t\t\t(end -0.9 -0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "27f07b76-aa8c-4c72-93c5-ac71946bae42")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.9 -0.7)\r\n\t\t\t(end 0.9 -0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "20215bb7-0c92-4089-8ef6-aaa057aa7aa7")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 -1.85 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "41becc8f-d940-4a49-9548-cba36efb73cd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.05 0 180)\r\n\t\t\t(size 0.6 0.45)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART2_TX")\r\n\t\t\t(pinfunction "K_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "abfb2f24-5714-470a-a83c-43e8d19ed26c")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 1.05 0 180)\r\n\t\t\t(size 0.6 0.45)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "A_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "20578e66-3051-4868-a6d6-481c0d93597b")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Diode_SMD.3dshapes/D_SOD-323.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "631e1661-6fd4-433d-aa56-99bc262320b8")\r\n\t\t(at 91.4 79.3 180)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C11"\r\n\t\t\t(at 2' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'.3 -0.2 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6f28d4ac-0e37-443c-ba62-eb8ef35c2a61")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "100n"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2a557247-b501-4713-b2cb-fbfd6b73682f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "483ffdfc-1fdf-47bc-9a31-c79ee2471315")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5328e6e6-cb75-4321-9505-6fb634bda9f7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a312922e-a6ae-409c-ad4c-f5d136dbfaad")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/e8057e65-de86-4674-be4a-6a6d58efe02c/d127852c-14a1-4e1f-8108-0fd5a9f6cf65")\r\n\t\t(sheetname "/CM4/CAN/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7647c8d2-9d2c-45e9-9b11-1ce4881275b6")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7f073223-9d2c-4a31-9902-e997309bcc0f")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "8e215002-f4dc-4757-b4ad-340191dd367e")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b45f0aef-6ffc-4e62-885f-daff56361dff")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6dbcc35f-712f-43ec-81b3-1a8a8767e216")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "63548750-3550-4d9b-ac17-dbc7461a5ff7")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "a137c150-b98c-41e9-87c4-69d44aac4378")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Package_DFN_QFN:VQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mm_ThermalVias"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "6575faa3-fb9f-4c19-96a1-0369cfa974a1")\r\n\t\t(at 140.1125 73.2125)\r\n\t\t(descr "VQFN, 24 Pin (http://www.ti.com/lit/ds/symlink/msp430f1101a.pdf)")\r\n\t\t(tags "VQFN NoLead")\r\n\t\t(property "Reference" "U9"\r\n\t\t\t(at 0 -3.33 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "8046cd76-d5df-495f-99ea-f92e5668af71")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "DRV8846"\r\n\t\t\t(at 0 3.33 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "03aac518-565e-4d7c-b67d-fb929f4cd8c8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "https://www.ti.com/lit/ds/symlink/drv8846.pdf"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fc39eeba-aa19-4cf5-b61e-7a8e4dc88dcd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "1.4A stepper driver with microstepping"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "56c413a5-d14b-41b8-875b-e1e45ccf9110")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "package/no_lead"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "198b8bdb-559a-47be-b678-cc57baf992dd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/ba18e815-5208-4728-96b8-f0440260158b")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "14" "11" "12" "13" "23" "7" "19" "22" "24" "10" "20" "21" "8"\r\n\t\t\t\t\t"9" "15" "25" "18" "17" "16" "1" "3" "6" "4" "2" "5"\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -2.11 -2.11)\r\n\t\t\t(end -1.635 -2.11)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "d38d6222-6fcf-4457-9d05-3e3233458cfe")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.11 -1.635)\r\n\t\t\t(end -2.11 -2.11)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "4e9b51e3-b54d-4cff-9fe0-6e50d8356e72")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.11 2.11)\r\n\t\t\t(end -2.11 1.635)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "85af0cab-de3f-48f9-aea5-ae1c2d685cea")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.635 2.11)\r\n\t\t\t(end -2.11 2.11)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "5db947c7-2b51-4f4c-b927-97b67918e9c6")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.635 -2.11)\r\n\t\t\t(end 2.11 -2.11)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "21074307-ac8d-4df2-94ac-09984445e39b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.11 -2.11)\r\n\t\t\t(end 2.11 -1.635)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "dc0f5c5c-e8e8-44c4-9bdc-74599f82ffd9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.11 1.635)\r\n\t\t\t(end 2.11 2.11)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f180b077-9a3f-4ac9-b9db-8ed01e6073b3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.11 2.11)\r\n\t\t\t(end 1.635 2.11)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "38528c0d-8772-43af-ae1c-383e8047e751")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -2.64 -1.25) (xy -2.97 -1.01) (xy -2.97 -1.49)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1f5de4af-2278-4b52-96a2-38c7169167f7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.63 -1.63)\r\n\t\t\t(end -2.25 -1.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "e8b7ada1-2b44-43a5-8cc6-64f44e94d5f4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.63 1.63)\r\n\t\t\t(end -2.63 -1.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "65a28181-1cb9-4f04-b988-02fb3ef6d598")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.25 -2.25)\r\n\t\t\t(end -1.63 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "4ea4faa5-1c8c-4388-925b-614a52a44b4a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.25 -1.63)\r\n\t\t\t(end -2.25 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "68c828b3-6870-43b8-9112-3043b3736e76")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.25 1.63)\r\n\t\t\t(end -2.63 1.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "9ade59e7-069d-4772-8303-c241f3cc8866")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.25 2.25)\r\n\t\t\t(end -2.25 1.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "2a41b2f4-92a1-4991-8857-e2a0988efb5a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.63 -2.63)\r\n\t\t\t(end 1.63 -2.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5c674dad-917c-4be1-8434-fd3235d56c33")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.63 -2.25)\r\n\t\t\t(end -1.63 -2.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "21eb8afb-5b68-4f3d-9db9-8d5115211926")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.63 2.25)\r\n\t\t\t(end -2.25 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uui' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'd "0cabf865-5b30-44b7-8291-619fcb8b8e36")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.63 2.63)\r\n\t\t\t(end -1.63 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "d81dec59-89b8-425e-8e74-b1192e9d55f2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.63 -2.63)\r\n\t\t\t(end 1.63 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "101af2c7-3341-401d-97c3-56cc2d1dde25")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.63 -2.25)\r\n\t\t\t(end 2.25 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "6dc37cf3-65e6-4321-ae53-c34a5d81cd5e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.63 2.25)\r\n\t\t\t(end 1.63 2.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "fa4c8d5b-4394-48e7-b0aa-5b2d3590dcf0")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.63 2.63)\r\n\t\t\t(end -1.63 2.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "db6d8f5d-df16-466b-b83c-093927e5bf0b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.25 -2.25)\r\n\t\t\t(end 2.25 -1.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "d9eadf77-608d-4c8f-972e-034474505249")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.25 -1.63)\r\n\t\t\t(end 2.63 -1.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "9fb19766-f64f-4641-9c86-ebc4712cae13")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.25 1.63)\r\n\t\t\t(end 2.25 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "99a18840-70bc-4edc-a680-72a94390b129")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.25 2.25)\r\n\t\t\t(end 1.63 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3be779ce-a98b-48bc-ba16-20c350ff56a4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.63 -1.63)\r\n\t\t\t(end 2.63 1.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3eb8f029-863d-4655-a10a-244b579124e2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.63 1.63)\r\n\t\t\t(end 2.25 1.63)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "9a94a630-c771-41cc-9e51-de2a9a0250d1")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -1 -2) (xy 2 -2) (xy 2 2) (xy -2 2) (xy -2 -1)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "4f4b1e37-d2bd-4661-8a33-4196bdf0a8d8")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "bea36034-6f94-42b5-8188-deeac230e412")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "" smd roundrect\r\n\t\t\t(at -0.82 -0.82)\r\n\t\t\t(size 0.61 0.61)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(uuid "67567d26-a75f-4ab4-be3e-8db43b7fd143")\r\n\t\t)\r\n\t\t(pad "" smd roundrect\r\n\t\t\t(at -0.82 0)\r\n\t\t\t(size 0.61 0.61)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(uuid "08e3b41a-204a-45c0-b15e-1a10f87a25dc")\r\n\t\t)\r\n\t\t(pad "" smd roundrect\r\n\t\t\t(at -0.82 0.82)\r\n\t\t\t(size 0.61 0.61)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(uuid "0ca169d0-a4e2-4cf2-9d7f-cf3554e5c55f")\r\n\t\t)\r\n\t\t(pad "" smd roundrect\r\n\t\t\t(at 0 -0.82)\r\n\t\t\t(size 0.61 0.61)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(uuid "b9651161-2d20-432d-a0d1-ade682ad1815")\r\n\t\t)\r\n\t\t(pad "" smd roundrect\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 0.61 0.61)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(uuid "510dd8a8-9090-4ff3-b9c8-4bd6f1f5170b")\r\n\t\t)\r\n\t\t(pad "" smd roundrect\r\n\t\t\t(at 0 0.82)\r\n\t\t\t(size 0.61 0.61)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(uuid "f113a20f-988d-499d-921e-d15d14246052")\r\n\t\t)\r\n\t\t(pad "" smd roundrect\r\n\t\t\t(at 0.82 -0.82)\r\n\t\t\t(size 0.61 0.61)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(uuid "815e632e-577d-42f2-bc2e-3d804c6f636d")\r\n\t\t)\r\n\t\t(pad "" smd roundrect\r\n\t\t\t(at 0.82 0)\r\n\t\t\t(size 0.61 0.61)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(uuid "72d2b9c0-30bb-41bb-8ed7-774bff3778c7")\r\n\t\t)\r\n\t\t(pad "" smd roundrect\r\n\t\t\t(at 0.82 0.82)\r\n\t\t\t(size 0.61 0.61)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(uuid "07da9892-7e37-4414-b395-8de6a3e7dd5f")\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.9875 -1.25)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J5-Pin_1)")\r\n\t\t\t(pinfunction "AOUT1_1")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "e08affed-451c-4b54-81f3-8f68df37a256")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at -1.9875 -0.75)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U9-AISEN)")\r\n\t\t\t(pinfunction "AISEN_2")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "9dba4cfe-22f0-4c71-a2ae-96754e6afe5b")\r\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at -1.9875 -0.25)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J5-Pin_3)")\r\n\t\t\t(pinfunction "AOUT2_3")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "2f83ceba-4d80-4fde-98aa-3b341b0eedeb")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at -1.9875 0.25)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J5-Pin_4)")\r\n\t\t\t(pinfunction "BOUT2_4")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "4d8c39e1-18f1-4079-9569-d76c52191e35")\r\n\t\t)\r\n\t\t(pad "5" smd roundrect\r\n\t\t\t(at -1.9875 0.75)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U9-BISEN)")\r\n\t\t\t(pinfunction "BISEN_5")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "a98db5b7-8198-4018-8ede-bfede7b6c0df")\r\n\t\t)\r\n\t\t(pad "6" smd roundrect\r\n\t\t\t(at -1.9875 1.25)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J5-Pin_2)")\r\n\t\t\t(pinfunction "BOUT1_6")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "01bc90be-8ea5-4680-b8f7-7191a1fa5dd2")\r\n\t\t)\r\n\t\t(pad "7" smd roundrect\r\n\t\t\t(at -1.25 1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t\t(pinfunction "~{FAULT}_7")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "e819e448-a655-4cdd-8aa0-a0be6398702a")\r\n\t\t)\r\n\t\t(pad "8" smd roundrect\r\n\t\t\t(at -0.75 1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "M0_8")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "23f10fa1-0544-490b-aa73-47b13be54fc0")\r\n\t\t)\r\n\t\t(pad "9" smd roundrect\r\n\t\t\t(at -0.25 1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "M1_9")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "b6ead990-b73e-4f64-a7e8-5e662c6fb888")\r\n\t\t)\r\n\t\t(pad "10" smd roundrect\r\n\t\t\t(at 0.25 1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U9-TOFF_SEL-Pad10)")\r\n\t\t\t(pinfunction "TOFF_SEL_10")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "e71f73d0-748d-4022-920f-d892a791a9f8")\r\n\t\t)\r\n\t\t(pad "11" smd roundrect\r\n\t\t\t(at 0.75 1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t\t(pinfunction "~{ENBL}_11")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "c0115ee8-8e94-4301-a467-a26f9ec415e9")\r\n\t\t)\r\n\t\t(pad "12" smd roundrect\r\n\t\t\t(at 1.25 1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t\t(pinfunction "STEP_12")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "05ba3f04-6063-4bce-aa5c-c68ade97db18")\r\n\t\t)\r\n\t\t(pad "13" smd roundrect\r\n\t\t\t(at 1.9875 1.25)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t\t(pinfunction "DIR_13")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "8d2e844d-82bc-4a00-a356-e3546f1a92b1")\r\n\t\t)\r\n\t\t(pad "14" smd roundrect\r\n\t\t\t(at 1.9875 0.75)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U9-VREF)")\r\n\t\t\t(pinfunction "VREF_14")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "7e82e0e1-2796-4ee9-9610-46a3849c998e")\r\n\t\t)\r\n\t\t(pad "15" smd roundrect\r\n\t\t\t(at 1.9875 0.25)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t\t(pinfunction "VM_15")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "97c42777-a477-4b01-8673-751fc8ba44c3")\r\n\t\t)\r\n\t\t(pad "16" smd roundrect\r\n\t\t\t(at 1.9875 -0.25)\r\n\t\t\t(size 0.775 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U9-NC-Pad16)")\r\n\t\t\t(pinfunction "NC_16")\r\n\t\t\t(pintype "no_connect")\r\n\t\t\t(uuid "7c610cd2-ae2f-491b-ae79-160845733a64")\r\n\t\t)\r\n\t\t(pad "17" smd roundrect\r\n\t\t\t(at 1.9875 -0.75)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U9-VINT)")\r\n\t\t\t(pinfunction "VINT_17")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "0f80e7a9-3a91-4029-8e49-56853c672bda")\r\n\t\t)\r\n\t\t(pad "18" smd roundrect\r\n\t\t\t(at 1.9875 -1.25)\r\n\t\t\t(size 0.775 0.25)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_18")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "8bae337d-fdd8-4569-beed-29270d5b35d9")\r\n\t\t)\r\n\t\t(pad "19" smd roundrect\r\n\t\t\t(at 1.25 -1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "ADEC_19")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "013544be-94ba-4c6a-82b5-609b290eedea")\r\n\t\t)\r\n\t\t(pad "20" smd roundrect\r\n\t\t\t(at 0.75 -1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "I0_20")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "9ce618ae-8aad-4053-9d02-b1b5650af876")\r\n\t\t)\r\n\t\t(pad "21" smd roundrect\r\n\t\t\t(at 0.25 -1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "I1_21")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "460c7985-089a-4e78-871c-7bd8b60e5456")\r\n\t\t)\r\n\t\t(pad "22" smd roundrect\r\n\t\t\t(at -0.25 -1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "DEC0_22")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "d6516da7-e478-4bf6-91a5-2343a833eb0f")\r\n\t\t)\r\n\t\t(pad "23" smd roundrect\r\n\t\t\t(at -0.75 -1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t\t(pinfunction "~{SLEEP}_23")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "c10ea6cb-fb1c-4990-8c72-8461054ca959")\r\n\t\t)\r\n\t\t(pad "24" smd roundrect\r\n\t\t\t(at -1.25 -1.9875)\r\n\t\t\t(size 0.25 0.775)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "DEC1_24")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "cf837140-7bce-4bae-8e6d-65c32460d904")\r\n\t\t)\r\n\t\t(pad "25" thru_hole circle\r\n\t\t\t(at -0.975 -0.975)\r\n\t\t\t(size 0.5 0.5)\r\n\t\t\t(drill 0.2)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "*.Cu")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "094accb8-911a-446e-8a7f-9d77945da5c9")\r\n\t\t)\r\n\t\t(pad "25" thru_hole circle\r\n\t\t\t(at -0.975 0)\r\n\t\t\t(size 0.5 0.5)\r\n\t\t\t(drill 0.2)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "*.Cu")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "ca533417-2290-40b7-8862-443ac89e2555")\r\n\t\t)\r\n\t\t(pad "25" thru_hole circle\r\n\t\t\t(at -0.975 0.975)\r\n\t\t\t(size 0.5 0.5)\r\n\t\t\t(drill 0.2)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "*.Cu")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "14adbde0-1f59-4670-b0d0-97a4be5b40cf")\r\n\t\t)\r\n\t\t(pad "25" thru_hole circle\r\n\t\t\t(at 0 -0.975)\r\n\t\t\t(size 0.5 0.5)\r\n\t\t\t(drill 0.2)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "*.Cu")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "93c3c510-25b3-44f4-9fc1-01c57341155e")\r\n\t\t)\r\n\t\t(pad "25" thru_hole circle\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 0.5 0.5)\r\n\t\t\t(drill 0.2)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "*.Cu")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "07af9da3-d92b-4c2d-a26e-5d549f55721d")\r\n\t\t)\r\n\t\t(pad "25" smd rect\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 2.45 2.45)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "F.Cu" "F.Mask")\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "29a00000-b020-4de2-9dcb-ec287b3df591")\r\n\t\t)\r\n\t\t(pad "25" smd rect\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 2.45 2.45)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "B.Cu")\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "6dd2d9da-4d17-4742-8297-206203e0fb29")\r\n\t\t)\r\n\t\t(pad "25" thru_hole circle\r\n\t\t\t(at 0 0.975)\r\n\t\t\t(size 0.5 0.5)\r\n\t\t\t(drill 0.2)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "*.Cu")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "5f876182-a38e-4c94-950e-ce2b8f6a3335")\r\n\t\t)\r\n\t\t(pad "25" thru_hole circle\r\n\t\t\t(at 0.975 -0.975)\r\n\t\t\t(size 0.5 0.5)\r\n\t\t\t(drill 0.2)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "*.Cu")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "5272e1a6-5aa5-4662-9bb4-e7e0c9a8e55d")\r\n\t\t)\r\n\t\t(pad "25" thru_hole circle\r\n\t\t\t(at 0.975 0)\r\n\t\t\t(size 0.5 0.5)\r\n\t\t\t(drill 0.2)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "*.Cu")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "6e9789db-f4d6-4fca-92bb-2060df64b90e")\r\n\t\t)\r\n\t\t(pad "25" thru_hole circle\r\n\t\t\t(at 0.975 0.975)\r\n\t\t\t(size 0.5 0.5)\r\n\t\t\t(drill 0.2)\r\n\t\t\t(property pad_prop_heatsink)\r\n\t\t\t(layers "*.Cu")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_25")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(zone_connect 2)\r\n\t\t\t(uuid "40d241f9-9252-4b42-ac52-44954ca3c2b0")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/VQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mm.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "683b58c5-61e4-4048-be96-cd21174ae1d6")\r\n\t\t(at 106.4 70.4)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R13"\r\n\t\t\t(at 0 -1.17 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "35ece84e-af1d-46cc-8929-c08642311f74")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "120"\r\n\t\t\t(at 0 1.17 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "8e3b50bf-034b-4cb1-8806-729b8e8b1594")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "52c13a83-0f92-4cb4-b32d-8fbd1a33ba39")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4813fdf6-0c5e-4ede-9009-ca5e001fe735")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e4979c84-86ad-44eb-9845-43d639ec0a73")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d4b7b76f-24e6-4b2a-a93b-55ace58d0ff9/0915719a-249e-4481-a762-a82d2305d1cc")\r\n\t\t(sheetname "/CM4/CAN1/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "cbf7169b-52b8-4968-8f4c-d7775f47fd89")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "01f12ffe-d056-40ee-804c-c790b672af1a")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'uuid "5739ed82-ac22-42b6-9c1b-1e19d7e54431")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "4f700170-cece-4b9f-9812-573568fbe648")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ee53f417-4395-4c2e-9248-fcb59c423a02")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN2+")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "210c1354-12d9-475f-95d5-3e5db97e2c4b")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN2-")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1029d97a-40af-42d0-b653-e38fc93e13bf")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "6ae076d6-647a-49c3-9382-e93d822ceb3c")\r\n\t\t(at 79.2625 76.6)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R2"\r\n\t\t\t(at 0 1.4 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "e46cb5f5-c6d3-4ab3-9023-b2bfe6e70a56")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "1k"\r\n\t\t\t(at 0 1.17 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "3b1f625e-dffe-4def-b48a-9566ae504cd4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "54d30698-45f7-4d6a-97a8-6050c056add0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "37dd3568-45bf-41ed-9d82-fa752f67a657")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "55678775-77e0-4ca7-bd14-6ca834cd6609")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "54034de6-c25a-409f-84f1-90d93169ff7f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ec8b15ad-0a58-47b0-987a-05530ea34573")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5325acbf-2d8f-4566-8e49-93c8fe5074ed")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "69dc570d-bd51-46d9-9365-27cb5d674778")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b7ccee43-fb91-4146-a92f-7f8fab67f9b1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2f471689-0145-487a-8fcd-a18efc71e76f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8b4f7113-feff-4e04-a6f0-48cf67c5f492")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5dda8a76-a169-4331-9de6-83d0f75fcec0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9f0dbc71-d523-4031-8b69-c54f3b65014b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "105a75db-bdeb-4761-9f59-bb87a968f487")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6abdd425-28b7-48ee-af9f-3034810073bd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9dd4cc74-3f47-4bb8-8d8b-6b41f67de47c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b9363743-edc6-4e70-8eb1-a207a49bb741")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4e7bac0b-61dd-466d-ba51-e63114394be1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/5872dca1-f1a1-43dd-ab54-d03bb06d3f1f")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "981cff35-c6e0-4b7a-aa87-289218b95a65")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "768ce1c1-0448-4ca2-86cc-59f251c9c401")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "800f2a67-f894-43df-b88d-cec5fed603a9")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ed41fa58-93ab-4b39-b9bb-329005f490d9")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e8326b2f-9840-4784-96e8-abb696acec49")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(D2-K)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "9ae47dc0-046c-49b1-864c-727d5ca7de82")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "62a61cde-039b-4cf0-abce-759287599a4e")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint ""\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "6b8a5977-5130-4ef0-82d7-25d3cc83f6c6")\r\n\t\t(at 147.304 134.804)\r\n\t\t(property "Reference" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f771a673-39c7-4d48-a5ee-bc80d34e6bd2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2b6d1039-d3e0-4ecb-980e-fa3d93b91a0b")\r\n\t\t\t(effec' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'ts\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "de36d8e2-5f1d-4e60-b7cf-85c783f15e84")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "717266aa-d287-43e5-bc87-54e2eb633f8a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 3.2 3.2)\r\n\t\t\t(drill 3.2)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "571f6a0d-3de0-4793-b472-3f5d2b056997")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t)\r\n\t(footprint "LED_SMD:LED_0805_2012Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "6ee41636-0d76-435d-b1bb-2ad3a851c528")\r\n\t\t(at 76.5625 76.6 180)\r\n\t\t(descr "LED SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: https://docs.google.com/spreadsheets/d/1BsfQQcO9C6DZCsRaXUlFlo91Tg2WpOkGARC1WS5S8t0/edit?usp=sharing)")\r\n\t\t(tags "LED")\r\n\t\t(property "Reference" "D2"\r\n\t\t\t(at -0.0375 -2 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ad4c3707-8ab6-4d10-a801-dd2bb7491a08")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "LED"\r\n\t\t\t(at 0 1.65 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2ce7d61b-35fa-43af-b61f-dafae5afce88")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2f285e32-d3a6-4c01-a17e-b058b9976b6a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Light emitting diode"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "18a6386d-e880-4816-86dc-c9b688b75608")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "38a65111-efe0-47c4-a735-106d8c48afb1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Sim.Pins" "1=K 2=A"\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a8453128-df60-4b4e-9a78-67b1fc250478")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ededa6cb-7245-4896-a3e0-d74b9300f5b8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ac3f01a1-d927-4b80-bf42-1d455dbd6c87")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "70acfb22-fe2a-43d6-8caa-f67a4b877f2d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "92cd6c21-edcc-4042-aafd-05fdd78b9873")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fcfc9e80-39fc-4298-a45a-37b30af1c367")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b7dbcd8e-8f17-4da0-8b67-fb32e1407262")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e9ac37fe-4d37-4dc5-98eb-dde680c6cbc8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a6a8a88a-942c-414d-a297-9b5bec6c6a05")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "37a6ae12-590f-4d18-9228-c3670e958d29")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "54310c92-e9ed-484c-b285-9f8e24349631")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ab8c322f-0455-449d-b6fd-181b055a77e4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fab15631-a774-4ead-b636-579f6858b6de")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8fd5163e-1a53-454a-b81e-90f36869a7e6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "554d6284-f2c9-4064-8029-4ae45734ccf9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "LED* LED_SMD:* LED_THT:*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/5e683549-ea3c-482a-9c5f-21aa095cbb78")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start 1 -0.96)\r\n\t\t\t(end -1.685 -0.96)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6d57ffda-ca3a-4bae-8a71-ada63d2dedb4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.685 0.96)\r\n\t\t\t(end 1 0.96)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "9a180d66-7feb-4c57-b3e5-f30af5c80f05")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.685 -0.96)\r\n\t\t\t(end -1.685 0.96)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "c03a5d2e-6bce-4dbb-8b8c-bfcfce57947d")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -1.68 -0.95)\r\n\t\t\t(end 1.68 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "0d1071e7-4f26-4259-a150-64f57c79faae")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1 0.6)\r\n\t\t\t(end 1 -0.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "63e55d26-34c2-400c-84be-d189bd262972")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1 -0.6)\r\n\t\t\t(end -0.7 -0.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "52dbe0e2-bea0-4ddb-b6d4-f44b72c48bcf")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.7 -0.6)\r\n\t\t\t(end -1 -0.3)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "41d93652-9103-449a-a9d7-c292db006886")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1 0.6)\r\n\t\t\t(end 1 0.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "464e0e4b-9c66-4ff0-858c-410f17e27fc0")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1 -0.3)\r\n\t\t\t(end -1 0.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c7542301-0206-4068-af2d-945a4ec908cd")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7f4983b3-09fd-4611-a005-ef3607aa64e7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.5 0.5)\r\n\t\t\t\t\t(thickness 0.08)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.9375 0 180)\r\n\t\t\t(size 0.975 1.4)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(D2-K)")\r\n\t\t\t(pinfunction "K_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "5f8a6562-07bf-487d-b0ed-862ae16bb106")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.9375 0 180)\r\n\t\t\t(size 0.975 1.4)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "A_2' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "3f254d6d-8d9e-438b-83a6-34918a07e21a")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/LED_SMD.3dshapes/LED_0805_2012Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Connector_USB:USB_C_Receptacle_GCT_USB4110"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "72bc7400-0743-4636-b39a-5d77a2c3fbf6")\r\n\t\t(at 120.38 137.225)\r\n\t\t(descr "USB 2.0 Type C Receptacle, GCT, 16P, top mounted, horizontal, 5A, https://gct.co/files/drawings/usb4110.pdf")\r\n\t\t(tags "USB 2.0 C Type-C Receptacle SMD 16P 16C USB4110-GF-A")\r\n\t\t(property "Reference" "J3"\r\n\t\t\t(at -5.58 -5.425 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "df87ff47-f442-4edf-9754-e7639f8b261f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "USB_C_Receptacle_USB2.0_16P"\r\n\t\t\t(at 0 5 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d3155e1b-c7d8-409e-83d0-c2b5704851c6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "https://www.usb.org/sites/default/files/documents/usb_type-c.zip"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "19b0cda7-482f-4835-8cd8-1a95215dd14f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "USB 2.0-only 16P Type-C Receptacle connector"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "74a89962-c604-4b83-8f42-a071aa4e5b6d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0d9964fb-3e1a-47db-b13b-c72984dfa1ea")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c6ae164a-3698-4248-937b-8bcfd7cc9187")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "15ce31e2-acad-4e83-a03c-f8a4b00a4827")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7cf082ae-da24-4228-b9c2-9e67d370942c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d376e52d-362a-4ce2-a8ce-e3b166cb8871")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6a059ecc-43e5-488a-8da3-6b6c28db7a44")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6aa45f04-0ed1-4aae-9deb-b680c4aafd9d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "394cb8d6-9348-4d04-b675-b65512b36f76")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a012c04d-385e-4be9-9451-b83e49575d33")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b63562e1-7a7a-43cf-9fbe-3952d3736226")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "97d597fe-8b46-40ca-b6d3-24f919f36a33")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8cce6b7c-915c-4bf3-b851-a8e671c11612")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "cfade49f-863f-4a5b-a699-dd42a00f7adb")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "19b2615f-096a-422b-a4c1-b6c684d2a04f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "USB*C*Receptacle*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/3b3efe59-f2a7-4224-b721-2315b5d95546")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "SH" "B1" "B12" "A1" "A12" "A9" "B4" "B9" "A4" "A5" "B5" "A7" "B7"\r\n\t\t\t\t\t"A6" "B6" "A8" "B8"\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -4.58 -0.435)\r\n\t\t\t(end -4.58 -1.845)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7186b00a-4a85-425a-b7a9-05d984c2c0aa")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -3.76 -4.515)\r\n\t\t\t(end -3.76 -4.365)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1512c60f-a15b-4359-8043-8b8fa5f7a69d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.96 -4.515)\r\n\t\t\t(end -3.76 -4.515)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "9605b25c-b942-4fad-a427-72b90b5502e2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 4.58 -0.435)\r\n\t\t\t(end 4.58 -1.845)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "496763b7-3f24-4fe1-b954-89522196aa29")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -5 3.675)\r\n\t\t\t(end 5 3.675)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "Dwgs.User")\r\n\t\t\t(uuid "497ebd03-04f4-44e0-ae78-917dce2e3fa8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -6.7 -4.61)\r\n\t\t\t(end -4.25 -4.61)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "862d75ec-b8f4-40a1-a17c-09c6bbd0afd7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -6.7 -1.6)\r\n\t\t\t(end -6.7 -4.61)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "f35748ea-5277-4a8e-8072-c837eb4680df")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -6.7 -0.68)\r\n\t\t\t(end -4.97 -0.68)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "e53f6d24-266c-4f37-8d42-2f9d65e41430")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -6.7 2.33)\r\n\t\t\t(end -6.7 -0.68)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "e7c51fc1-4f5a-4c90-9d10-0f30bbf27bb4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -4.97 -1.6)\r\n\t\t\t(end -6.7 -1.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3754e9a6-3253-41ef-acdb-808d1b004eb9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -4.97 -0.68)\r\n\t\t\t(end -4.97 -1.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "1cf4a26f-1606-4dcb-88e0-43de1fd7d3f2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -4.97 2.33)\r\n\t\t\t(end -6.7 2.33)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3616cc51-b952-48b9-90b9-962bd733e903")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -4.97 4.18)\r\n\t\t\t(end -4.97 2.33)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "cc90108d-7431-40ff-8b4b-d4697062ff68")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -4.25 -4.76)\r\n\t\t\t(end 4.25 -4.76)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "b64c8ccb-5469-4d6f-b84d-8ac9f7c848b2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -4.25 -4.61)\r\n\t\t\t(end -4.25 -4.76)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "467de231-470d-4bdc-beaf-c7365aa94531")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 4.25 -4.76)\r\n\t\t\t(end' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' 4.25 -4.61)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "e01927f2-fceb-4f81-919e-00e04eec1b7a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 4.25 -4.61)\r\n\t\t\t(end 6.7 -4.61)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "533e7ce9-9506-472b-a006-d23d815a25aa")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 4.97 -1.6)\r\n\t\t\t(end 4.97 -0.68)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "8b87399a-acff-45f9-a130-427b190aea01")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 4.97 -0.68)\r\n\t\t\t(end 6.7 -0.68)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5b5c3983-28b7-4a53-b5b6-6e8f7528d417")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 4.97 2.33)\r\n\t\t\t(end 4.97 4.18)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "666fd6da-bd08-4bee-a09b-121ffa48b461")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 4.97 4.18)\r\n\t\t\t(end -4.97 4.18)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "239f131b-9c33-4b4d-b375-5717d2aba8a1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 6.7 -4.61)\r\n\t\t\t(end 6.7 -1.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5145f977-d255-4981-b87b-343b0b0a709d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 6.7 -1.6)\r\n\t\t\t(end 4.97 -1.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3604d48c-37bb-462b-876e-fe51d28bb93c")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 6.7 -0.68)\r\n\t\t\t(end 6.7 2.33)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3339876b-6dc3-4d33-bc96-f1e6b19e4b97")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 6.7 2.33)\r\n\t\t\t(end 4.97 2.33)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5e264b0b-9d00-404d-b459-65ad26599387")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -3.7 -3.675)\r\n\t\t\t(end -3.2 -3.095)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e017dca9-83dc-403f-826a-65dfa6814b45")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -3.2 -3.095)\r\n\t\t\t(end -2.7 -3.675)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1f2310da-f595-422f-b520-7f24d26be1fb")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -4.47 -3.675)\r\n\t\t\t(end 4.47 3.675)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "40558878-c693-4187-b421-47cd7ee8ab5f")\r\n\t\t)\r\n\t\t(fp_text user "PCB Edge"\r\n\t\t\t(at 0 3.075 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "Dwgs.User")\r\n\t\t\t(uuid "c5da6eba-c9f7-4fef-9fb0-a5e20d1197eb")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.5 0.5)\r\n\t\t\t\t\t(thickness 0.1)\r\n\t\t\t\t\t(bold yes)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d1bf1b29-2d14-46e4-a955-7087087ff1ce")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at -2.89 -2.605)\r\n\t\t\t(size 0.65 0.65)\r\n\t\t\t(drill 0.65)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "8e9b4fa7-2c46-4504-9403-697e0e9b82d0")\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at 2.89 -2.605)\r\n\t\t\t(size 0.65 0.65)\r\n\t\t\t(drill 0.65)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "28e58a54-4268-49f9-84cb-bbeb86432cc6")\r\n\t\t)\r\n\t\t(pad "A1" smd roundrect\r\n\t\t\t(at -3.2 -3.68)\r\n\t\t\t(size 0.6 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_A1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "3d25cfbe-5a28-4957-8a89-586bccfaeac3")\r\n\t\t)\r\n\t\t(pad "A4" smd roundrect\r\n\t\t\t(at -2.4 -3.68)\r\n\t\t\t(size 0.6 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J3-VBUS-PadA4)")\r\n\t\t\t(pinfunction "VBUS_A4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "55728bae-667e-44f7-8a52-63578786dd1f")\r\n\t\t)\r\n\t\t(pad "A5" smd roundrect\r\n\t\t\t(at -1.25 -3.68)\r\n\t\t\t(size 0.3 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J3-CC1)")\r\n\t\t\t(pinfunction "CC1_A5")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "585a83e3-6342-4aec-a25f-8c131df131e1")\r\n\t\t)\r\n\t\t(pad "A6" smd roundrect\r\n\t\t\t(at -0.25 -3.68)\r\n\t\t\t(size 0.3 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/USB_D+")\r\n\t\t\t(pinfunction "D+_A6")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "dbdc00fb-74d8-4bba-a077-64cfcfe52f0d")\r\n\t\t)\r\n\t\t(pad "A7" smd roundrect\r\n\t\t\t(at 0.25 -3.68)\r\n\t\t\t(size 0.3 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/USB_D-")\r\n\t\t\t(pinfunction "D-_A7")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "d350501d-0f81-4dd0-8b68-8e28114dd0d4")\r\n\t\t)\r\n\t\t(pad "A8" smd roundrect\r\n\t\t\t(at 1.25 -3.68)\r\n\t\t\t(size 0.3 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J3-SBU1-PadA8)")\r\n\t\t\t(pinfunction "SBU1_A8")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "3f1ce2a1-aeb9-4e20-95ae-2ed6910dad42")\r\n\t\t)\r\n\t\t(pad "A9" smd roundrect\r\n\t\t\t(at 2.4 -3.68)\r\n\t\t\t(size 0.6 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J3-VBUS-PadA4)")\r\n\t\t\t(pinfunction "VBUS_A9")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "04510257-e382-4922-bdc9-d0896dfa08ac")\r\n\t\t)\r\n\t\t(pad "A12" smd roundrect\r\n\t\t\t(at 3.2 -3.68)\r\n\t\t\t(size 0.6 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_A12")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "5254239f-9089-4af3-b16f-4b340bdeebab")\r\n\t\t)\r\n\t\t(pad "B1" smd roundrect\r\n\t\t\t(at 3.2 -3.68)\r\n\t\t\t(size 0.6 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_B1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "6b391220-a5d1-4179-b050-89d4728a63ab")\r\n\t\t)\r\n\t\t(pad "B4" smd roundrect\r\n\t\t\t(at 2.4 -3.68)\r\n\t\t\t(size 0.6 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J3-VBUS-PadA4)")\r\n\t\t\t(pinfunction "VBUS_B4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "1f6a7350-517c-4c15-a88e-c66c08d07c1b")\r\n\t\t)\r\n\t\t(pad "B5" smd roundrect\r\n\t\t\t(at 1.75 -3.68)\r\n\t\t\t(size 0.3 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J3-CC2)")\r\n\t\t\t(pinfunction "CC2_B5")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "7702271d-568d-410c-9cf6-50668d652f9e")\r\n\t\t)\r\n\t\t(pad "B6" smd roundrect\r\n\t\t\t(at 0.75 -3.68)\r\n\t\t\t(size 0.3 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/USB_D+")\r\n\t\t\t(pinfunction "D+_B6")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "cdb31dba-852a-4ec5-ac10-d1890a100b9b")\r\n\t\t)\r\n\t\t(pad "B7" smd roundrect\r\n\t\t\t(at -0.75 -3.68)\r\n\t\t\t(size 0.3 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/USB_D-")\r\n\t\t\t(pinfunction "D-_B7")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "4c0a79ba-d132-42e0-84e1-8c4538baff00")\r\n\t\t)\r\n\t\t(pad "B8" smd roundrect\r\n\t\t\t(at -1.75 -3.68)\r\n\t\t\t(size 0.3 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J3-SBU2-PadB8)")\r\n\t\t\t(pinfunction "SBU2_B8")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "11a7b421-60ea-4a8a-955e-e921100f52db")\r\n\t\t)\r\n\t\t(pad "B9" smd roundrect\r\n\t\t\t(at -2.4 -3.68)\r\n\t\t\t(size 0.6 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J3-VBUS-PadA4)")\r\n\t\t\t(pinfunction "VBUS_B9")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "2fb74373-b3ab-41c5-8535-faa5b6a084c1")\r\n\t\t)\r\n\t\t(pad "B12" smd roundrect\r\n\t\t\t(at -3.2 -3.68)\r\n\t\t\t(size 0.6 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_B12")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "892913fa-2312-4e97-8adb-200c77090696")\r\n\t\t)\r\n\t\t(pad "SH" smd roundrect\r\n\t\t\t(at -5.11 -3.105)\r\n\t\t\t(size 2.18 2)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.125)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfun' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'ction "SHIELD_SH")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "7c91d670-c6b1-4e04-bfef-9c7f4afd6c7b")\r\n\t\t)\r\n\t\t(pad "SH" smd roundrect\r\n\t\t\t(at -5.11 0.825)\r\n\t\t\t(size 2.18 2)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.125)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "SHIELD_SH")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "d455097f-cbe1-4c93-92af-e7e77633d4ef")\r\n\t\t)\r\n\t\t(pad "SH" smd roundrect\r\n\t\t\t(at 5.11 -3.105)\r\n\t\t\t(size 2.18 2)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.125)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "SHIELD_SH")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "15230596-1189-4a46-b27a-7e6e912ae088")\r\n\t\t)\r\n\t\t(pad "SH" smd roundrect\r\n\t\t\t(at 5.11 0.825)\r\n\t\t\t(size 2.18 2)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.125)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "SHIELD_SH")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(thermal_bridge_angle 45)\r\n\t\t\t(uuid "3af6f024-f048-437e-8047-5fd18234f6fa")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Connector_USB.3dshapes/USB_C_Receptacle_GCT_USB4110.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Diode_SMD:D_SOD-323"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "75e367c1-94a5-48b2-ae1c-eb1ebc6c0833")\r\n\t\t(at 106.7 66.5 90)\r\n\t\t(descr "SOD-323")\r\n\t\t(tags "SOD-323")\r\n\t\t(property "Reference" "D4"\r\n\t\t\t(at 2.6 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "5eab02db-9200-461c-939b-3c9661efc60f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "D_Zener"\r\n\t\t\t(at 0.1 1.9 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b63d43e5-8456-4478-bb8c-0e64419caae6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a5b7e2f9-d56b-401b-9a35-49b5f9a7354a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Zener diode"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1914f661-bbf5-4504-a7ff-2c349c5779fa")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "TO-???* *_Diode_* *SingleDiode* D_*")\r\n\t\t(path "/70b82023-aeb5-42d6-b7d9-eb5c99b13f4a")\r\n\t\t(sheetname "/")\r\n\t\t(sheetfile "payload.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 -0.85)\r\n\t\t\t(end 1.05 -0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b74ca8d0-f43a-4073-b3b8-607f0fe4a5e2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 -0.85)\r\n\t\t\t(end -1.61 0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "fce05aaf-702d-4223-bee4-ed445cf930a1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 0.85)\r\n\t\t\t(end 1.05 0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7c47f5e8-aa74-4319-ad9c-8024586e5b03")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.6 -0.95)\r\n\t\t\t(end 1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "9dceb765-87c3-4679-8a67-1ea868055049")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 -0.95)\r\n\t\t\t(end 1.6 -0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "96b8be58-0dde-4169-bdda-543a2b995a6d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 -0.95)\r\n\t\t\t(end -1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "8945d837-e226-4b7c-a3ce-418fdca99532")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 0.95)\r\n\t\t\t(end 1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "a9c7678c-b444-4764-ac10-e4e4a6830768")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.9 -0.7)\r\n\t\t\t(end 0.9 0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2555cd2c-3fcd-48ba-a3c0-b4680fa49934")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.9 -0.7)\r\n\t\t\t(end 0.9 -0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "734645fc-d18f-402a-9e70-bd29f44f3950")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 -0.35)\r\n\t\t\t(end 0.2 0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ab08425a-09b5-44a1-a44a-a9e6c05fc35d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 -0.35)\r\n\t\t\t(end -0.3 0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a9b6aecb-702e-45f0-b322-a01e23cec60f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 0)\r\n\t\t\t(end 0.45 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1382bb9a-7628-4054-84fd-3c177a0191c9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 0)\r\n\t\t\t(end 0.2 -0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7ca646ae-d0a9-4548-83d9-bba84a872245")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 0)\r\n\t\t\t(end -0.5 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2216f178-b33e-490e-a029-1c60dd440094")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 0.35)\r\n\t\t\t(end -0.3 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "4db0c229-4e3a-4374-8dfa-71000fb6247e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.9 0.7)\r\n\t\t\t(end -0.9 0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c8210cb3-d57b-4515-8564-0ad81d70d7cd")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.9 0.7)\r\n\t\t\t(end -0.9 -0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "364bb7ce-05d0-484a-8d43-71f993168394")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 -1.85 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b6e2d816-5cca-46d0-a9c4-ef553bab9a08")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.05 0 90)\r\n\t\t\t(size 0.6 0.45)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART2_RX")\r\n\t\t\t(pinfunction "K_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "a631996a-9b1d-46d7-b356-c354c97a4673")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 1.05 0 90)\r\n\t\t\t(size 0.6 0.45)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "A_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0474f83a-979d-4b3b-b5dd-e06dfa9d2f0e")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Diode_SMD.3dshapes/D_SOD-323.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "payload:Module_Raspberry_Pi_CM4"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "7857ee6a-8341-4fd9-8fcd-4fd51ce58ea4")\r\n\t\t(at 102.4 108.8)\r\n\t\t(property "Reference" "U1"\r\n\t\t\t(at 0 -22.5 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "66c064b4-85b2-4ce9-8853-7ee691145965")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.1)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "CM4"\r\n\t\t\t(at 0 1 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "9c78d726-1e6e-4f9b-a329-9e9f9a761258")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "https://pip-assets.raspberrypi.com/categories/634-raspberry-pi-compute-module-4/documents/RP-008168-DS-3-cm4-datasheet.pdf"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "67999f19-4f0c-46a3-8139-75e58bc5118a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Embedded single-board computer"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e2f72aaa-c821-43e9-a058-56a8477b8470")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d9746f51-9ce9-4fcc-8baf-425a2837ecb6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f8ab5d07-3aad-43fe-b2b1-960a301be4fa")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5bbd9757-ca4e-48d6-b6f6-2fc3b783c375")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c9cf6e36-14ce-4060-a268-cfed7273e30a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c62cbf4a-e90a-4a7c-864f-d745d9fa9fc4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8cac2b99-b87e-4c75-877e-b3d6ce6cd26c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "77213a1b-0554-49a7-82a2-e4174c7a1037")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ef120e9b-c0d8-49ea-9ad0-22921e60ec07")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "eed2db58-6303-4ce6-9204-96905c3e2834")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "12c4721d-cac6-4c25-b572-636c69cdc3d6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "67b34d68-4e6d-4599-a7f5-20da64dee43a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "602a2367-93f3-47b5-8d32-0e048ee4661d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "60cc0872-f6cd-4148-9a3f-ff3512fcdfc2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f8ffd20b-58ae-4a7a-b0c0-32b731b3194d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/92da073f-0a6f-4e49-8712-c1ab761a6f31")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -27.6 17.5)\r\n\t\t\t(end -27.6 -17.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0f814464-969a-4b82-b516-6daa6d0b5127")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -25 -20.1)\r\n\t\t\t(end 25 -20.1)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "cf2966c3-7482-4a41-8b28-db4e04db178b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -25 20.1)\r\n\t\t\t(end 25 20.1)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "45484be3-123d-4366-b56b-11f4ec82fa63")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -13.91 -18.55)\r\n\t\t\t(end -12.66 -18.55)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "aac788d7-4872-4633-b7a6-f7d47d0de4e4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -13.91 -15.45)\r\n\t\t\t(end -13.91 -18.55)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "8bb02112-60bb-413a-a33e-69163a279044")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -13.91 15.45)\r\n\t\t\t(end -12.66 15.45)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7c1a65ec-eade-4e10-a26b-2b64cbdc30c5")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -13.91 18.55)\r\n\t\t\t(end -13.91 15.45)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "bd6669e0-3578-488a-a2a3-afa776bccfb2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -12.66 -15.45)\r\n\t\t\t(end -13.91 -15.45)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "56dad47f-0c5f-42e6-bff2-7070ca75a626")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -12.66 18.55)\r\n\t\t\t(end -13.91 18.55)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "8b896aa5-5664-470f-9c81-01c828160a6a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.083494 -19.665)\r\n\t\t\t(end 7.516506 -19.665)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "976153a2-890e-466e-aa56-862e15ae9625")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.083494 14.335)\r\n\t\t\t(end 7.516506 14.335)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "73cf662c-2a2c-4767-a711-0e74166d9ec4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.3 -19.29)\r\n\t\t\t(end 7.083494 -19.665)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b379a687-244c-400a-a641-30afcc4cfc56")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.3 14.71)\r\n\t\t\t(end 7.083494 14.335)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "5b3fb8d5-5fc9-4a4a-bc96-cd646ba021a9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.516506 -19.665)\r\n\t\t\t(end 7.3 -19.29)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "11c62829-cbac-4584-ac20-db08b9a96a81")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.516506 14.335)\r\n\t\t\t(end 7.3 14.71)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "978aa7ca-feb3-4fb4-8197-1fec1bd067ae")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.66 -18.55)\r\n\t\t\t(end 8.91 -18.55)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "d7eb6b8d-2d98-4fde-b2e9-e5419ad970db")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.66 15.45)\r\n\t\t\t(end 8.91 15.45)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "45352c61-a1f6-483f-a909-78a335277ccc")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.91 -18.55)\r\n\t\t\t(end 8.91 -15.45)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1d2ea6e9-991f-482d-b23e-efb826527d3f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.91 -15.45)\r\n\t\t\t(end 7.66 -15.45)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "efd3b8a7-a25b-4ab4-9503-0137f88848d0")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.91 15.45)\r\n\t\t\t(end 8.91 18.55)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1137fd38-98ae-4151-8c13-c6599e365556")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.91 18.55)\r\n\t\t\t(end 7.66 18.55)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "caaf23f6-b56b-4550-8e1a-7e9dfce69d81")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 27.6 17.5)\r\n\t\t\t(end 27.6 -17.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "61a23270-4ccf-4713-9b74-95db117490c4")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start -27.6 -17.5)\r\n\t\t\t(mid -26.838478 -19.338478)\r\n\t\t\t(end -25 -20.1)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "72abcd9f-e8f2-4461-a3c4-f5f31e8ec8d1")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start -25 20.1)\r\n\t\t\t(mid -26.838478 19.338478)\r\n\t\t\t(end -27.6 17.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7fa787a9-7122-4f37-90ce-85865be4a8cf")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start 25 -20.1)\r\n\t\t\t(mid 26.838478 -19.338478)\r\n\t\t\t(end 27.6 -17.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1fb635fb-752f-4d7a-a5d7-22715f929f8b")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start 27.6 17.5)\r\n\t\t\t(mid 26.838478 19.338478)\r\n\t\t\t(end 25 20.1)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6ebb5ff9-0b29-4bdc-ad01-dec8b30bc2bb")\r\n\t\t)\r\n\t\t(fp_circle\r\n\t\t\t(center -24 -16.5)\r\n\t\t\t(end -21.3 -16.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.15)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "Cmts' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'.User")\r\n\t\t\t(uuid "85147121-3290-4481-9aa7-9d34b79c877f")\r\n\t\t)\r\n\t\t(fp_circle\r\n\t\t\t(center -24 16.5)\r\n\t\t\t(end -21.3 16.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.15)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "Cmts.User")\r\n\t\t\t(uuid "7ffd04c0-a537-4725-98ab-be3a149d9c6f")\r\n\t\t)\r\n\t\t(fp_circle\r\n\t\t\t(center 24 -16.5)\r\n\t\t\t(end 26.7 -16.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.15)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "Cmts.User")\r\n\t\t\t(uuid "4a06d16e-0420-4842-85d1-f4a72080ef1b")\r\n\t\t)\r\n\t\t(fp_circle\r\n\t\t\t(center 24 16.5)\r\n\t\t\t(end 26.7 16.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.15)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "Cmts.User")\r\n\t\t\t(uuid "8558df9b-ca50-4752-bce0-669aa5a19547")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -28 -20.5)\r\n\t\t\t(end 28 20.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "66d6e2ec-9194-4379-bfba-750dfe19c5dd")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -27.5 17.433)\r\n\t\t\t(end -27.5 -17.433)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "bab4a63f-5874-4fe0-aae9-7e7a116c3aaa")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -24.933 -20)\r\n\t\t\t(end 24.933 -20)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1cea16cc-896e-496e-8191-1394d2165d0f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -13.8 -18.44)\r\n\t\t\t(end 8.8 -18.44)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2b9a66c4-d168-4b2e-a304-f934fefb912e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -13.8 -15.56)\r\n\t\t\t(end -13.8 -18.44)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d4bcee48-1edd-4bec-8fef-523507eb5962")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -13.8 15.56)\r\n\t\t\t(end 8.8 15.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "64ee97c0-9ff0-4d5d-baf2-8af08396ec59")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -13.8 18.44)\r\n\t\t\t(end -13.8 15.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "8f7b9ca4-e0d3-47c6-b697-52cda3ef79a8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.3 -18.12)\r\n\t\t\t(end 7.1 -18.44)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "38b37696-d442-4967-9764-4b087585b56e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.3 15.88)\r\n\t\t\t(end 7.1 15.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "37eaaa57-1799-42a3-a889-5e732d7cb19b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.5 -18.44)\r\n\t\t\t(end 7.3 -18.12)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ea97c9d1-13bf-4c68-b1b8-fbefa3f86daf")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.5 15.56)\r\n\t\t\t(end 7.3 15.88)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "21ea423f-cc8d-4492-80ca-4c8804cae277")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.8 -18.44)\r\n\t\t\t(end 8.8 -15.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "4791e28e-ebd3-472b-8385-85608f9079e1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.8 -15.56)\r\n\t\t\t(end -13.8 -15.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7c354950-7f5f-4fc3-b945-9f4577aca279")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.8 15.56)\r\n\t\t\t(end 8.8 18.44)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5742f3c7-157f-464c-abc5-1db44bfe34b7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.8 18.44)\r\n\t\t\t(end -13.8 18.44)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a5b07fc6-f351-48c2-a564-1ee944416c9f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 24.933 20)\r\n\t\t\t(end -24.933 20)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b514b0b6-5431-4e98-8397-d0c02bdc7182")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 27.5 -17.433)\r\n\t\t\t(end 27.5 17.433)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "9fb491c6-24da-4055-919f-d3f152d17a67")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start -27.5 -17.433)\r\n\t\t\t(mid -26.748143 -19.248143)\r\n\t\t\t(end -24.933 -20)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b9f752ed-3f57-4659-934d-6ddeeaedaee0")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start -24.933 20)\r\n\t\t\t(mid -26.748143 19.248143)\r\n\t\t\t(end -27.5 17.433)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b2eb2d68-7f49-4b56-bb04-7cc1bec4527a")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start 24.933 -20)\r\n\t\t\t(mid 26.748143 -19.248143)\r\n\t\t\t(end 27.5 -17.433)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2ad40fc2-b33b-43b6-95d1-d0771ffb5fb2")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start 27.5 17.433)\r\n\t\t\t(mid 26.748143 19.248143)\r\n\t\t\t(end 24.933 20)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "cf1113f9-7aba-461e-8eea-71efe02ddf7f")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 2.5 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e9ebdf28-4b26-425d-8454-c47349e0c4b0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at -24 -16.5)\r\n\t\t\t(size 2.7 2.7)\r\n\t\t\t(drill 2.7)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "74ed9634-02bf-4fe2-a074-c91ca52e94c3")\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at -24 16.5)\r\n\t\t\t(size 2.7 2.7)\r\n\t\t\t(drill 2.7)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "36cc2962-ea6e-4bfb-bd9b-1f6b6a3dff37")\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at 24 -16.5)\r\n\t\t\t(size 2.7 2.7)\r\n\t\t\t(drill 2.7)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "6c709b24-99b6-4103-8cc5-90b68333ca53")\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at 24 16.5)\r\n\t\t\t(size 2.7 2.7)\r\n\t\t\t(drill 2.7)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "e050e004-80ae-42a1-a482-bb887ed56e14")\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at 7.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_1")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "bdde636f-6f9f-4daf-ab47-29bd8b177879")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 7.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "166eed1e-9b59-4c67-9a4e-0229303ff10d")\r\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at 6.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/ETH_P3+")\r\n\t\t\t(pinfunction "Ethernet_P3_P_3")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "27b75421-8f0a-4f5a-b8fd-36c733a231b8")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at 6.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/ETH_P1+")\r\n\t\t\t(pinfunction "Ethernet_P1_P_4")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "046f52ce-4aa8-4745-9a4c-88fb6ead5730")\r\n\t\t)\r\n\t\t(pad "5" smd roundrect\r\n\t\t\t(at 6.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/ETH_P3-")\r\n\t\t\t(pinfunction "Ethernet_P3_N_5")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "f83adbfd-0816-49dd-a89a-8e1e8794cc38")\r\n\t\t)\r\n\t\t(pad "6" smd roundrect\r\n\t\t\t(at 6.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/ETH_P1-")\r\n\t\t\t(pinfunction "Ethernet_P1_N_6")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "48909cae-ea6b-4d65-ade3-b39f99d9358b")\r\n\t\t)\r\n\t\t(pad "7" smd roundrect\r\n\t\t\t(at 6.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_7")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "5a964c21-36ff-406c-83c6-5deeddba93db")\r\n\t\t)\r\n\t\t(pad "8" smd roundrect\r\n\t\t\t(at 6.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_8")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c68a40de-649b-493d-a4a5-6e15ec9f03dc")\r\n\t\t)\r\n\t\t(pad "9" smd roundrect\r\n\t\t\t(at 5.7 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/ETH_P2-")\r\n\t\t\t(pinfunction "Ethernet_P2_N_9")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "568f3ce7-d09e-493d-9c4a-7a44d9b66aee")\r\n\t\t)\r\n\t\t(pad "10" smd roundrect\r\n\t\t\t(at 5.7 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/E' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'TH_P0-")\r\n\t\t\t(pinfunction "Ethernet_P0_N_10")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "7df4808b-a475-4c69-9968-039f1e28a1ba")\r\n\t\t)\r\n\t\t(pad "11" smd roundrect\r\n\t\t\t(at 5.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/ETH_P2+")\r\n\t\t\t(pinfunction "Ethernet_P2_P_11")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "d3b1ecae-ab51-4053-9367-798acf2e6a01")\r\n\t\t)\r\n\t\t(pad "12" smd roundrect\r\n\t\t\t(at 5.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/ETH_P0+")\r\n\t\t\t(pinfunction "Ethernet_P0_P_12")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "fac99a2d-9023-4846-89db-621b098c4dc4")\r\n\t\t)\r\n\t\t(pad "13" smd roundrect\r\n\t\t\t(at 4.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_13")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "46d0ace2-bfc8-469c-926f-e0e6a5d57b7a")\r\n\t\t)\r\n\t\t(pad "14" smd roundrect\r\n\t\t\t(at 4.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_14")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "21a0f1d7-fd98-4300-af80-8cf8d6e33513")\r\n\t\t)\r\n\t\t(pad "15" smd roundrect\r\n\t\t\t(at 4.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/ETH_LED1")\r\n\t\t\t(pinfunction "Ethernet_nLED3_15")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "4be18e7a-fd12-4759-a0ce-b72d3486b30f")\r\n\t\t)\r\n\t\t(pad "16" smd roundrect\r\n\t\t\t(at 4.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-Ethernet_SYNC_IN-Pad16)")\r\n\t\t\t(pinfunction "Ethernet_SYNC_IN_16")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "a0b99c3a-a6b3-4454-bdd5-07ebcb82dbe3")\r\n\t\t)\r\n\t\t(pad "17" smd roundrect\r\n\t\t\t(at 4.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/ETH_LED2")\r\n\t\t\t(pinfunction "Ethernet_nLED2_17")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "01cf50db-b9ac-4d99-9398-1bb2134747c2")\r\n\t\t)\r\n\t\t(pad "18" smd roundrect\r\n\t\t\t(at 4.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-Ethernet_SYNC_OUT-Pad18)")\r\n\t\t\t(pinfunction "Ethernet_SYNC_OUT_18")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "e2ab1701-64c6-4838-9a0a-8291f0be0afc")\r\n\t\t)\r\n\t\t(pad "19" smd roundrect\r\n\t\t\t(at 3.7 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-Ethernet_nLED1-Pad19)")\r\n\t\t\t(pinfunction "Ethernet_nLED1_19")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "5920adc7-f803-4844-98da-f7ff0c00f0af")\r\n\t\t)\r\n\t\t(pad "20" smd roundrect\r\n\t\t\t(at 3.7 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J4-Pin_2)")\r\n\t\t\t(pinfunction "EEPROM_nWP_20")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "4aae6c42-7823-4543-af61-1e2aa29fac01")\r\n\t\t)\r\n\t\t(pad "21" smd roundrect\r\n\t\t\t(at 3.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t\t(pinfunction "Pi_nLED_Activity_21")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "d93741fb-101d-49fc-95eb-eb1e1e2954d2")\r\n\t\t)\r\n\t\t(pad "22" smd roundrect\r\n\t\t\t(at 3.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_22")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "aa7a28df-922f-43ed-9940-565894cba417")\r\n\t\t)\r\n\t\t(pad "23" smd roundrect\r\n\t\t\t(at 2.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_23")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "6a04940d-e019-4b5d-ab69-eebacb04914c")\r\n\t\t)\r\n\t\t(pad "24" smd roundrect\r\n\t\t\t(at 2.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN1_INT")\r\n\t\t\t(pinfunction "GPIO26_24")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "4cb4d55e-6674-4fa2-ab9c-443c9ac667ac")\r\n\t\t)\r\n\t\t(pad "25" smd roundrect\r\n\t\t\t(at 2.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "SCK")\r\n\t\t\t(pinfunction "GPIO21_25")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "5bf0b2d2-3b54-4172-a686-0fb8d67a05af")\r\n\t\t)\r\n\t\t(pad "26" smd roundrect\r\n\t\t\t(at 2.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "MISO")\r\n\t\t\t(pinfunction "GPIO19_26")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "90789cee-8fe4-485d-8123-aaf84921f9c2")\r\n\t\t)\r\n\t\t(pad "27" smd roundrect\r\n\t\t\t(at 2.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "MOSI")\r\n\t\t\t(pinfunction "GPIO20_27")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "a2268cb7-363a-4024-8d24-6e427b934a0f")\r\n\t\t)\r\n\t\t(pad "28" smd roundrect\r\n\t\t\t(at 2.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART2_RX")\r\n\t\t\t(pinfunction "GPIO13_28")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "30aa379e-3369-4231-9456-de67c7d1e98a")\r\n\t\t)\r\n\t\t(pad "29" smd roundrect\r\n\t\t\t(at 1.7 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO16-Pad29)")\r\n\t\t\t(pinfunction "GPIO16_29")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "f5ddfd76-17f4-4ec3-bcf3-3911c4ae6d89")\r\n\t\t)\r\n\t\t(pad "30" smd roundrect\r\n\t\t\t(at 1.7 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t\t(pinfunction "GPIO6_30")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "96cc8bb4-57bd-4e06-a7ec-fe77467532b1")\r\n\t\t)\r\n\t\t(pad "31" smd roundrect\r\n\t\t\t(at 1.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART2_TX")\r\n\t\t\t(pinfunction "GPIO12_31")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "fb7b866b-8018-4303-af38-9287eae5b06a")\r\n\t\t)\r\n\t\t(pad "32" smd roundrect\r\n\t\t\t(at 1.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_32")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0dd7f0cc-3b37-4a89-be04-820d364e56f0")\r\n\t\t)\r\n\t\t(pad "33" smd roundrect\r\n\t\t\t(at 0.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_33")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "fc3f18e6-eb06-4553-8378-64e3de3d7fd4")\r\n\t\t)\r\n\t\t(pad "34" smd roundrect\r\n\t\t\t(at 0.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t\t(pinfunction "GPIO5_34")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "c8304bf0-bd75-4d0b-a07c-4791100a28ab")\r\n\t\t)\r\n\t\t(pad "35" smd roundrect\r\n\t\t\t(at 0.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-ID_SC-Pad35)")\r\n\t\t\t(pinfunction "ID_SC_35")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "0ad82387-f4dc-44e4-bd6e-ce7673bd3b4a")\r\n\t\t)\r\n\t\t(pad "36" smd roundrect\r\n\t\t\t(at 0.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-ID_SD-Pad36)")\r\n\t\t\t(pinfunction "ID_SD_36")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "798f60d8-e605-4e3c-8ee3-0f4ad77076db")\r\n\t\t)\r\n\t\t(pad "37" smd roundrect\r\n\t\t\t(at 0.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO7-Pad37)")\r\n\t\t\t(pinfunction "GPIO7_37")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "5a3e4ce1-d5f3-4e40-a000-bc277bc94f08")\r\n\t\t)\r\n\t\t(pad "38" smd roundrect\r\n\t\t\t(at 0.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO11-Pad38)")\r\n\t\t\t(pinfunction "GPIO11_38")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "a48d419a-c4d3-42db-9e90-44dc9c710b74")\r\n\t\t)\r\n\t\t(pad "39" smd roundrect\r\n\t\t\t(at -0.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rra' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'tio 0.25)\r\n\t\t\t(net "/CM4/UART1_TX")\r\n\t\t\t(pinfunction "GPIO8_39")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "1a56475b-1189-461f-96d3-b30ad607a10e")\r\n\t\t)\r\n\t\t(pad "40" smd roundrect\r\n\t\t\t(at -0.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART1_RX")\r\n\t\t\t(pinfunction "GPIO9_40")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "e48d5591-d093-49fd-b599-cad850c010e8")\r\n\t\t)\r\n\t\t(pad "41" smd roundrect\r\n\t\t\t(at -0.7 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO25-Pad41)")\r\n\t\t\t(pinfunction "GPIO25_41")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "2a125663-e306-4c4e-ad69-4ff8bfedaf20")\r\n\t\t)\r\n\t\t(pad "42" smd roundrect\r\n\t\t\t(at -0.7 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_42")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "049807ff-ede8-45c6-8e19-d65bfad32d4d")\r\n\t\t)\r\n\t\t(pad "43" smd roundrect\r\n\t\t\t(at -1.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_43")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "8578275a-bd57-42a2-92b7-77fe24f3a25a")\r\n\t\t)\r\n\t\t(pad "44" smd roundrect\r\n\t\t\t(at -1.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO10-Pad44)")\r\n\t\t\t(pinfunction "GPIO10_44")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "f409bbe9-aa59-44f9-8103-315161c91694")\r\n\t\t)\r\n\t\t(pad "45" smd roundrect\r\n\t\t\t(at -1.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO24-Pad45)")\r\n\t\t\t(pinfunction "GPIO24_45")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "eff7d224-05e8-4aee-a11b-c25646c2fbf6")\r\n\t\t)\r\n\t\t(pad "46" smd roundrect\r\n\t\t\t(at -1.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO22-Pad46)")\r\n\t\t\t(pinfunction "GPIO22_46")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "96d82b83-a7d6-49a3-b5b7-511e9d0768ee")\r\n\t\t)\r\n\t\t(pad "47" smd roundrect\r\n\t\t\t(at -1.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO23-Pad47)")\r\n\t\t\t(pinfunction "GPIO23_47")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "9e5b70b1-1e5a-45ad-bf72-7fc89bc3b720")\r\n\t\t)\r\n\t\t(pad "48" smd roundrect\r\n\t\t\t(at -1.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN2_INT")\r\n\t\t\t(pinfunction "GPIO27_48")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "3e19bf2f-89b5-4e15-8552-ae4ab30e6c08")\r\n\t\t)\r\n\t\t(pad "49" smd roundrect\r\n\t\t\t(at -2.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t\t(pinfunction "GPIO18_49")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "0a499385-b086-4936-8821-2c98172dd79d")\r\n\t\t)\r\n\t\t(pad "50" smd roundrect\r\n\t\t\t(at -2.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t\t(pinfunction "GPIO17_50")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "6d66fa6d-8c66-4d1e-82eb-419aa7878054")\r\n\t\t)\r\n\t\t(pad "51" smd roundrect\r\n\t\t\t(at -2.7 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO15-Pad51)")\r\n\t\t\t(pinfunction "GPIO15_51")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "4cdfd4a5-1391-4fe2-a96c-f0d27f11954f")\r\n\t\t)\r\n\t\t(pad "52" smd roundrect\r\n\t\t\t(at -2.7 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_52")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "970ad1aa-e196-4f48-b320-ab3527f03255")\r\n\t\t)\r\n\t\t(pad "53" smd roundrect\r\n\t\t\t(at -3.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_53")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "e1919633-83d3-4e30-aefa-4c452858c832")\r\n\t\t)\r\n\t\t(pad "54" smd roundrect\r\n\t\t\t(at -3.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t\t(pinfunction "GPIO4_54")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "571b33c9-aa25-47e7-81a2-fb4d024d2424")\r\n\t\t)\r\n\t\t(pad "55" smd roundrect\r\n\t\t\t(at -3.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-GPIO14-Pad55)")\r\n\t\t\t(pinfunction "GPIO14_55")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "64e4bc8b-f1ec-4aa6-aec5-d3995975e613")\r\n\t\t)\r\n\t\t(pad "56" smd roundrect\r\n\t\t\t(at -3.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t\t(pinfunction "GPIO3_56")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "cdd55324-b57b-4e58-b5f0-0090690f4200")\r\n\t\t)\r\n\t\t(pad "57" smd roundrect\r\n\t\t\t(at -3.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_CLK-Pad57)")\r\n\t\t\t(pinfunction "SD_CLK_57")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "1669d9fe-7f3c-4138-8f21-f21b199a5491")\r\n\t\t)\r\n\t\t(pad "58" smd roundrect\r\n\t\t\t(at -3.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t\t(pinfunction "GPIO2_58")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "b114802e-1c6f-4fde-9cc0-c557bf522a72")\r\n\t\t)\r\n\t\t(pad "59" smd roundrect\r\n\t\t\t(at -4.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_59")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1cb80b2e-f531-415a-80ce-095ac8a989c3")\r\n\t\t)\r\n\t\t(pad "60" smd roundrect\r\n\t\t\t(at -4.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_60")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "ea8a5065-c6b4-41fe-9bbb-878263275b81")\r\n\t\t)\r\n\t\t(pad "61" smd roundrect\r\n\t\t\t(at -4.7 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_DAT3-Pad61)")\r\n\t\t\t(pinfunction "SD_DAT3_61")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "fc74a3ec-c157-4992-8424-b356655e8a7d")\r\n\t\t)\r\n\t\t(pad "62" smd roundrect\r\n\t\t\t(at -4.7 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_CMD-Pad62)")\r\n\t\t\t(pinfunction "SD_CMD_62")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "76e8457e-eb70-4dad-b4d8-5e977ffcd3e7")\r\n\t\t)\r\n\t\t(pad "63" smd roundrect\r\n\t\t\t(at -5.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_DAT0-Pad63)")\r\n\t\t\t(pinfunction "SD_DAT0_63")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "5341974f-c729-49d4-8e09-9823ecff89d0")\r\n\t\t)\r\n\t\t(pad "64" smd roundrect\r\n\t\t\t(at -5.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_DAT5-Pad64)")\r\n\t\t\t(pinfunction "SD_DAT5_64")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "ff140066-c57b-4f14-b5c8-80608b1d1229")\r\n\t\t)\r\n\t\t(pad "65" smd roundrect\r\n\t\t\t(at -5.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_65")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c636dd71-37b4-4957-acfc-015d96d55ab2")\r\n\t\t)\r\n\t\t(pad "66" smd roundrect\r\n\t\t\t(at -5.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_66")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "8b448c28-2814-48c6-b16e-4398426af37a")\r\n\t\t)\r\n\t\t(pad "67" smd roundrect\r\n\t\t\t(at -5.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_DAT1-Pad67)")\r\n\t\t\t(pinfunction "SD_DAT1_67")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "57b8c4f8-e89e-49d6-9736-8637bd0e5031")\r\n\t\t)\r\n\t\t(' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'pad "68" smd roundrect\r\n\t\t\t(at -5.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_DAT4-Pad68)")\r\n\t\t\t(pinfunction "SD_DAT4_68")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "6c441a41-deaa-4884-9f55-f4c895558c66")\r\n\t\t)\r\n\t\t(pad "69" smd roundrect\r\n\t\t\t(at -6.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_DAT2-Pad69)")\r\n\t\t\t(pinfunction "SD_DAT2_69")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "8010f3ee-0818-4ad4-81b8-d55ff38488ee")\r\n\t\t)\r\n\t\t(pad "70" smd roundrect\r\n\t\t\t(at -6.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_DAT7-Pad70)")\r\n\t\t\t(pinfunction "SD_DAT7_70")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "b780eaab-3a2c-4c39-9b14-d6b658eb59dd")\r\n\t\t)\r\n\t\t(pad "71" smd roundrect\r\n\t\t\t(at -6.7 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_71")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "5a3a4249-6f9a-47b0-b722-e920a8ab8e6d")\r\n\t\t)\r\n\t\t(pad "72" smd roundrect\r\n\t\t\t(at -6.7 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_DAT6-Pad72)")\r\n\t\t\t(pinfunction "SD_DAT6_72")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "ec72859f-9319-4311-abe2-619f48385397")\r\n\t\t)\r\n\t\t(pad "73" smd roundrect\r\n\t\t\t(at -7.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_VDD_OVERRIDE-Pad73)")\r\n\t\t\t(pinfunction "SD_VDD_OVERRIDE_73")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "5e1017bb-5158-446a-932d-9a5f113e8021")\r\n\t\t)\r\n\t\t(pad "74" smd roundrect\r\n\t\t\t(at -7.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_74")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "6e997eed-3d62-4570-8a96-aa880a3f1b24")\r\n\t\t)\r\n\t\t(pad "75" smd roundrect\r\n\t\t\t(at -7.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-SD_PWR_ON-Pad75)")\r\n\t\t\t(pinfunction "SD_PWR_ON_75")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "237559cb-da37-414a-835d-ef3dff66d7bb")\r\n\t\t)\r\n\t\t(pad "76" smd roundrect\r\n\t\t\t(at -7.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-Reserved-Pad76)")\r\n\t\t\t(pinfunction "Reserved_76")\r\n\t\t\t(pintype "no_connect")\r\n\t\t\t(uuid "993223eb-e9db-4339-9b67-32f65d9d3498")\r\n\t\t)\r\n\t\t(pad "77" smd roundrect\r\n\t\t\t(at -7.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pinfunction "+5V_77")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "42ef10e9-4279-4cda-af6f-8237c3d261fa")\r\n\t\t)\r\n\t\t(pad "78" smd roundrect\r\n\t\t\t(at -7.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "GPIO_VREF_78")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "910b905c-a143-4bf7-99e8-199361713389")\r\n\t\t)\r\n\t\t(pad "79" smd roundrect\r\n\t\t\t(at -8.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pinfunction "+5V_79")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "43cce0f6-8859-4aed-9cd0-ebf7c4800d71")\r\n\t\t)\r\n\t\t(pad "80" smd roundrect\r\n\t\t\t(at -8.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t\t(pinfunction "SCL0_80")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "72e313bd-ffe9-4241-a7ae-75c2a3c76860")\r\n\t\t)\r\n\t\t(pad "81" smd roundrect\r\n\t\t\t(at -8.7 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pinfunction "+5V_81")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "fc991d2f-8a8b-439b-8e93-862f86c96ab5")\r\n\t\t)\r\n\t\t(pad "82" smd roundrect\r\n\t\t\t(at -8.7 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t\t(pinfunction "SDA0_82")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "1e01db31-3a19-4a40-8502-f8c0ee37d5bc")\r\n\t\t)\r\n\t\t(pad "83" smd roundrect\r\n\t\t\t(at -9.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pinfunction "+5V_83")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "01870919-3726-4b04-a3c7-6148bb5ae4cc")\r\n\t\t)\r\n\t\t(pad "84" smd roundrect\r\n\t\t\t(at -9.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "CM4_3.3V_84")\r\n\t\t\t(pintype "power_out")\r\n\t\t\t(uuid "2232fc7a-e43b-4c55-8091-9fa2dd845cff")\r\n\t\t)\r\n\t\t(pad "85" smd roundrect\r\n\t\t\t(at -9.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pinfunction "+5V_85")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "77ff7765-23db-4f70-afda-91db4e278166")\r\n\t\t)\r\n\t\t(pad "86" smd roundrect\r\n\t\t\t(at -9.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "CM4_3.3V_86")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "55e850e4-9800-43cc-8636-3ad25192ea3b")\r\n\t\t)\r\n\t\t(pad "87" smd roundrect\r\n\t\t\t(at -9.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pinfunction "+5V_87")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "264c93c8-41be-41cc-900e-8a0b01e9d322")\r\n\t\t)\r\n\t\t(pad "88" smd roundrect\r\n\t\t\t(at -9.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-CM4_1.8V-Pad88)_1")\r\n\t\t\t(pinfunction "CM4_1.8V_88")\r\n\t\t\t(pintype "power_out+no_connect")\r\n\t\t\t(uuid "610fd437-c915-458f-b578-e2ac5b620d01")\r\n\t\t)\r\n\t\t(pad "89" smd roundrect\r\n\t\t\t(at -10.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J4-Pin_4)")\r\n\t\t\t(pinfunction "WL_nDisable_89")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "81ecef04-0f36-4b1a-a31f-41ed13650be7")\r\n\t\t)\r\n\t\t(pad "90" smd roundrect\r\n\t\t\t(at -10.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-CM4_1.8V-Pad88)")\r\n\t\t\t(pinfunction "CM4_1.8V_90")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "0533824b-8034-4301-bb02-90eb3a248a0a")\r\n\t\t)\r\n\t\t(pad "91" smd roundrect\r\n\t\t\t(at -10.7 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J4-Pin_6)")\r\n\t\t\t(pinfunction "BT_nDisable_91")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "0eeff153-da93-401c-a196-a3a190d51f3f")\r\n\t\t)\r\n\t\t(pad "92" smd roundrect\r\n\t\t\t(at -10.7 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/~{POWER_OFF}")\r\n\t\t\t(pinfunction "RUN_PG_92")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "cc98923f-7cfc-4751-ab50-d127ac4d9633")\r\n\t\t)\r\n\t\t(pad "93" smd roundrect\r\n\t\t\t(at -11.1 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J4-Pin_8)")\r\n\t\t\t(pinfunction "nRPIBOOT_93")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "9bf9c2df-e443-49ac-bee3-b1af40c82206")\r\n\t\t)\r\n\t\t(pad "94" smd roundrect\r\n\t\t\t(at -11.1 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-AnalogIP1-Pad94)")\r\n\t\t\t(pinfunction "AnalogIP1_94")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "def5bb22-3f83-4a91-92b8-9eb4df3e68fe")\r\n\t\t)\r\n\t\t(pad "95" smd roundrect\r\n\t\t\t(at -11.5 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U1A-PI_LED_nPWR)")\r\n\t\t\t(pinfunction "PI_LED_nPWR_95")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "b17483a2-8313-47ba-818d-7417650cc338")\r\n\t\t)\r\n\t\t(pad "96" smd roundrect\r\n\t\t\t(at -11.5 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-AnalogIP0-Pad96)")\r\n\t\t\t(pinfunction "AnalogIP0_96")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "72' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'7bf9c0-90f4-4a20-b9a7-f9e60440dd29")\r\n\t\t)\r\n\t\t(pad "97" smd roundrect\r\n\t\t\t(at -11.9 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t\t(pinfunction "Camera_GPIO_97")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "d6f8d7e7-e47d-4f9d-8d9c-431918887638")\r\n\t\t)\r\n\t\t(pad "98" smd roundrect\r\n\t\t\t(at -11.9 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_98")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "a985d1d9-16da-4d09-adea-f113e962a41e")\r\n\t\t)\r\n\t\t(pad "99" smd roundrect\r\n\t\t\t(at -12.3 -18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/POWER_BUTTON")\r\n\t\t\t(pinfunction "GLOBAL_EN_99")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "baae6f0d-2d23-4be4-854d-30dcc77476cd")\r\n\t\t)\r\n\t\t(pad "100" smd roundrect\r\n\t\t\t(at -12.3 -15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-nEXTRST-Pad100)")\r\n\t\t\t(pinfunction "nEXTRST_100")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "d3ba2d92-b11c-4456-9a2e-63c2d27c140a")\r\n\t\t)\r\n\t\t(pad "101" smd roundrect\r\n\t\t\t(at 7.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "USB_OTG_ID_101")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "82dec085-efe5-4bd7-97d2-0ff64b6be9c9")\r\n\t\t)\r\n\t\t(pad "102" smd roundrect\r\n\t\t\t(at 7.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-PCIe_CLK_nREQ-Pad102)")\r\n\t\t\t(pinfunction "PCIe_CLK_nREQ_102")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "7312d458-adbe-4c5a-b0d4-fbe1092fdc11")\r\n\t\t)\r\n\t\t(pad "103" smd roundrect\r\n\t\t\t(at 6.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/USB_D-")\r\n\t\t\t(pinfunction "USB_N_103")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "471cc3fa-32a9-4f6e-ab09-95ecda8dcea7")\r\n\t\t)\r\n\t\t(pad "104" smd roundrect\r\n\t\t\t(at 6.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-Reserved-Pad104)")\r\n\t\t\t(pinfunction "Reserved_104")\r\n\t\t\t(pintype "no_connect")\r\n\t\t\t(uuid "fdbaf032-d438-4356-bab7-792c0114ff67")\r\n\t\t)\r\n\t\t(pad "105" smd roundrect\r\n\t\t\t(at 6.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/USB_D+")\r\n\t\t\t(pinfunction "USB_P_105")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "89f61733-01c1-4ccb-a0bb-c40399cbc950")\r\n\t\t)\r\n\t\t(pad "106" smd roundrect\r\n\t\t\t(at 6.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1A-Reserved-Pad106)")\r\n\t\t\t(pinfunction "Reserved_106")\r\n\t\t\t(pintype "no_connect")\r\n\t\t\t(uuid "b4c1db10-8e8b-40e7-9201-9fbf3d57e816")\r\n\t\t)\r\n\t\t(pad "107" smd roundrect\r\n\t\t\t(at 6.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_107")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "bd5361a2-48d8-4e45-adba-223e2c02a15f")\r\n\t\t)\r\n\t\t(pad "108" smd roundrect\r\n\t\t\t(at 6.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_108")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "3da25360-c07d-4eb7-bac5-01e108ddee8a")\r\n\t\t)\r\n\t\t(pad "109" smd roundrect\r\n\t\t\t(at 5.7 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-PCIe_nRST-Pad109)")\r\n\t\t\t(pinfunction "PCIe_nRST_109")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "4ae95b45-68cd-4f57-bb67-d9a05d381ac0")\r\n\t\t)\r\n\t\t(pad "110" smd roundrect\r\n\t\t\t(at 5.7 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-PCIe_CLK_P-Pad110)")\r\n\t\t\t(pinfunction "PCIe_CLK_P_110")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "0c12c2fc-f7c9-4931-adf5-3d7f6dd4e8ca")\r\n\t\t)\r\n\t\t(pad "111" smd roundrect\r\n\t\t\t(at 5.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-VDAC_COMP-Pad111)")\r\n\t\t\t(pinfunction "VDAC_COMP_111")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "32188e4d-0ec5-47a2-a721-d9396bb40f87")\r\n\t\t)\r\n\t\t(pad "112" smd roundrect\r\n\t\t\t(at 5.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-PCIe_CLK_N-Pad112)")\r\n\t\t\t(pinfunction "PCIe_CLK_N_112")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "4c38944f-6605-40a5-8449-05c04c3458f7")\r\n\t\t)\r\n\t\t(pad "113" smd roundrect\r\n\t\t\t(at 4.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_113")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "014c1b0c-7ee6-42c6-9cae-0c21a22ab211")\r\n\t\t)\r\n\t\t(pad "114" smd roundrect\r\n\t\t\t(at 4.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_114")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "071e910e-0333-4655-bc5e-f80911d339cb")\r\n\t\t)\r\n\t\t(pad "115" smd roundrect\r\n\t\t\t(at 4.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t\t(pinfunction "CAM1_D0_N_115")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "1e61689d-5a7b-44bd-876a-14c919d24d26")\r\n\t\t)\r\n\t\t(pad "116" smd roundrect\r\n\t\t\t(at 4.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-PCIe_RX_P-Pad116)")\r\n\t\t\t(pinfunction "PCIe_RX_P_116")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "45dd6854-47b4-4ddf-a513-b40ec40e8a8a")\r\n\t\t)\r\n\t\t(pad "117" smd roundrect\r\n\t\t\t(at 4.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t\t(pinfunction "CAM1_D0_P_117")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "eb481a7b-5494-4d5d-a34a-af34d622440b")\r\n\t\t)\r\n\t\t(pad "118" smd roundrect\r\n\t\t\t(at 4.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-PCIe_RX_N-Pad118)")\r\n\t\t\t(pinfunction "PCIe_RX_N_118")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "2f06bf2f-4619-40e3-899d-f8c62dd84ac9")\r\n\t\t)\r\n\t\t(pad "119" smd roundrect\r\n\t\t\t(at 3.7 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_119")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "589759cc-4c91-4cbd-b342-4860b6b7ba5c")\r\n\t\t)\r\n\t\t(pad "120" smd roundrect\r\n\t\t\t(at 3.7 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_120")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0932c324-1c4f-4b7f-914a-a38726967085")\r\n\t\t)\r\n\t\t(pad "121" smd roundrect\r\n\t\t\t(at 3.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t\t(pinfunction "CAM1_D1_N_121")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "c57ce2b6-0bd9-4e4a-a8dd-b33ea32696b2")\r\n\t\t)\r\n\t\t(pad "122" smd roundrect\r\n\t\t\t(at 3.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-PCIe_TX_P-Pad122)")\r\n\t\t\t(pinfunction "PCIe_TX_P_122")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "7d88531c-87a2-489b-8a29-3e8d258ddd00")\r\n\t\t)\r\n\t\t(pad "123" smd roundrect\r\n\t\t\t(at 2.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t\t(pinfunction "CAM1_D1_P_123")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "978e31a8-f68d-4c93-af0c-c47742689f82")\r\n\t\t)\r\n\t\t(pad "124" smd roundrect\r\n\t\t\t(at 2.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-PCIe_TX_N-Pad124)")\r\n\t\t\t(pinfunction "PCIe_TX_N_124")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "a9ef22f0-b01f-4108-8337-34c48da05b87")\r\n\t\t)\r\n\t\t(pad "125" smd roundrect\r\n\t\t\t(at 2.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'"F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_125")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "039f9a66-7320-42a6-abae-2d13d7c601a9")\r\n\t\t)\r\n\t\t(pad "126" smd roundrect\r\n\t\t\t(at 2.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_126")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "76e5764a-e9c3-4703-8710-0114b894cdbf")\r\n\t\t)\r\n\t\t(pad "127" smd roundrect\r\n\t\t\t(at 2.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t\t(pinfunction "CAM1_C_N_127")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "87aa7fe3-dbec-42ae-ab03-9d1214622d5e")\r\n\t\t)\r\n\t\t(pad "128" smd roundrect\r\n\t\t\t(at 2.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_D0-")\r\n\t\t\t(pinfunction "CAM0_D0_N_128")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "b296c816-bef4-41f4-825f-02b9033da726")\r\n\t\t)\r\n\t\t(pad "129" smd roundrect\r\n\t\t\t(at 1.7 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t\t(pinfunction "CAM1_C_P_129")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "43d8c2de-f3ac-48e5-a806-0d3af60e7cce")\r\n\t\t)\r\n\t\t(pad "130" smd roundrect\r\n\t\t\t(at 1.7 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_D0+")\r\n\t\t\t(pinfunction "CAM0_D0_P_130")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "6524bb14-a38d-4c38-aeba-473c9fa63377")\r\n\t\t)\r\n\t\t(pad "131" smd roundrect\r\n\t\t\t(at 1.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_131")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "e0c39c37-7f3f-427b-954d-4dfaeb7be3fc")\r\n\t\t)\r\n\t\t(pad "132" smd roundrect\r\n\t\t\t(at 1.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_132")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "bcf2ab64-011c-40c4-8fb6-29d2a3f66f1a")\r\n\t\t)\r\n\t\t(pad "133" smd roundrect\r\n\t\t\t(at 0.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t\t(pinfunction "CAM1_D2_N_133")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "a43955fe-812a-4501-b333-64a9522025a6")\r\n\t\t)\r\n\t\t(pad "134" smd roundrect\r\n\t\t\t(at 0.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_D1-")\r\n\t\t\t(pinfunction "CAM0_D1_N_134")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "ef4b9468-c41c-4a41-9ab8-6e23bbd4d270")\r\n\t\t)\r\n\t\t(pad "135" smd roundrect\r\n\t\t\t(at 0.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t\t(pinfunction "CAM1_D2_P_135")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "8c5092cf-31d9-462a-8c12-3ae70f26fc3d")\r\n\t\t)\r\n\t\t(pad "136" smd roundrect\r\n\t\t\t(at 0.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_D1+")\r\n\t\t\t(pinfunction "CAM0_D1_P_136")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "03acaa75-21c0-4a7f-9c10-c1ab01a2180f")\r\n\t\t)\r\n\t\t(pad "137" smd roundrect\r\n\t\t\t(at 0.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_137")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d1ef68e6-8bb6-45d8-bc42-e2959fb912dc")\r\n\t\t)\r\n\t\t(pad "138" smd roundrect\r\n\t\t\t(at 0.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_138")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "2ba92ca2-aaa0-4683-a4d7-268f9562691b")\r\n\t\t)\r\n\t\t(pad "139" smd roundrect\r\n\t\t\t(at -0.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t\t(pinfunction "CAM1_D3_N_139")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "2b007ce4-50b3-44f5-bbb5-db808e15755d")\r\n\t\t)\r\n\t\t(pad "140" smd roundrect\r\n\t\t\t(at -0.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_C-")\r\n\t\t\t(pinfunction "CAM0_C_N_140")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "7f298603-efec-4de1-9461-b33d06a37939")\r\n\t\t)\r\n\t\t(pad "141" smd roundrect\r\n\t\t\t(at -0.7 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t\t(pinfunction "CAM1_D3_P_141")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "4e0dc9ca-8549-4170-94cf-3284239f6924")\r\n\t\t)\r\n\t\t(pad "142" smd roundrect\r\n\t\t\t(at -0.7 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_C+")\r\n\t\t\t(pinfunction "CAM0_C_P_142")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "459a674c-bd42-4ee1-bea5-fd5e4e826059")\r\n\t\t)\r\n\t\t(pad "143" smd roundrect\r\n\t\t\t(at -1.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_HOTPLUG-Pad143)")\r\n\t\t\t(pinfunction "HDMI1_HOTPLUG_143")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "a6504183-2896-455f-9726-67de15e934d4")\r\n\t\t)\r\n\t\t(pad "144" smd roundrect\r\n\t\t\t(at -1.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_144")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "8486be7f-2277-4d5f-b8d2-98c4e15b5820")\r\n\t\t)\r\n\t\t(pad "145" smd roundrect\r\n\t\t\t(at -1.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_SDA-Pad145)")\r\n\t\t\t(pinfunction "HDMI1_SDA_145")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "107bda7a-edc6-4ef4-b04d-4ae4c60b5188")\r\n\t\t)\r\n\t\t(pad "146" smd roundrect\r\n\t\t\t(at -1.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_TX2_P-Pad146)")\r\n\t\t\t(pinfunction "HDMI1_TX2_P_146")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "1dd6098b-16a2-4697-aa39-d62f7cd4925d")\r\n\t\t)\r\n\t\t(pad "147" smd roundrect\r\n\t\t\t(at -1.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_SCL-Pad147)")\r\n\t\t\t(pinfunction "HDMI1_SCL_147")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "030fa7fd-0f87-4160-b99c-924ab74fd681")\r\n\t\t)\r\n\t\t(pad "148" smd roundrect\r\n\t\t\t(at -1.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_TX2_N-Pad148)")\r\n\t\t\t(pinfunction "HDMI1_TX2_N_148")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "042ffe8c-a98b-4474-bf1e-576e4d2afac0")\r\n\t\t)\r\n\t\t(pad "149" smd roundrect\r\n\t\t\t(at -2.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_CEC-Pad149)")\r\n\t\t\t(pinfunction "HDMI1_CEC_149")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "e72b4649-4d78-4ab3-83e4-b0885d7774af")\r\n\t\t)\r\n\t\t(pad "150" smd roundrect\r\n\t\t\t(at -2.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_150")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "3535f9f4-3a72-4cd1-b259-96a49a785869")\r\n\t\t)\r\n\t\t(pad "151" smd roundrect\r\n\t\t\t(at -2.7 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_CEC-Pad151)")\r\n\t\t\t(pinfunction "HDMI0_CEC_151")\r\n\t\t\t(pintype "input+no_connect")\r\n\t\t\t(uuid "3ed7ea91-93af-46c5-86fb-ed264b4bfc85")\r\n\t\t)\r\n\t\t(pad "152" smd roundrect\r\n\t\t\t(at -2.7 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_TX1_P-Pad152)")\r\n\t\t\t(pinfunction "HDMI1_TX1_P_152")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "457de20b-959a-4fa3-b10d-407eea066de6")\r\n\t\t)\r\n\t\t(pad "153" smd roundrect\r\n\t\t\t(at -3.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_HOTPLUG-Pad153)")\r\n\t\t\t(pinfunction "HDMI0_HOTPLUG_153")\r\n\t\t\t(pinty' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'pe "input+no_connect")\r\n\t\t\t(uuid "8ffda5cf-87c4-4bff-ad3c-1c2c14a8509a")\r\n\t\t)\r\n\t\t(pad "154" smd roundrect\r\n\t\t\t(at -3.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_TX1_N-Pad154)")\r\n\t\t\t(pinfunction "HDMI1_TX1_N_154")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "79a3b6a0-7b43-46aa-92a2-327e387eb027")\r\n\t\t)\r\n\t\t(pad "155" smd roundrect\r\n\t\t\t(at -3.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_155")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "2793a9ed-e800-464f-897a-6d6a72436e98")\r\n\t\t)\r\n\t\t(pad "156" smd roundrect\r\n\t\t\t(at -3.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_156")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "4efdf20b-191e-4ad9-9d1b-fd05e6bf4187")\r\n\t\t)\r\n\t\t(pad "157" smd roundrect\r\n\t\t\t(at -3.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI0_D0_N-Pad157)")\r\n\t\t\t(pinfunction "DSI0_D0_N_157")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "874096d6-ac98-4c62-9ffe-35d14fd03e9b")\r\n\t\t)\r\n\t\t(pad "158" smd roundrect\r\n\t\t\t(at -3.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_TX0_P-Pad158)")\r\n\t\t\t(pinfunction "HDMI1_TX0_P_158")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "afad4c11-31ab-4289-bfbc-07d599fade03")\r\n\t\t)\r\n\t\t(pad "159" smd roundrect\r\n\t\t\t(at -4.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI0_D0_P-Pad159)")\r\n\t\t\t(pinfunction "DSI0_D0_P_159")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "c7b109d9-02e6-4f3e-88d5-2636efa4973f")\r\n\t\t)\r\n\t\t(pad "160" smd roundrect\r\n\t\t\t(at -4.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_TX0_N-Pad160)")\r\n\t\t\t(pinfunction "HDMI1_TX0_N_160")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "914fe965-d70e-467a-90ec-2055eacafde0")\r\n\t\t)\r\n\t\t(pad "161" smd roundrect\r\n\t\t\t(at -4.7 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_161")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "8ae8c595-48de-4e25-849f-587b8cc7660f")\r\n\t\t)\r\n\t\t(pad "162" smd roundrect\r\n\t\t\t(at -4.7 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_162")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "aff3a7e6-afd3-4e07-8609-e8feb72460f2")\r\n\t\t)\r\n\t\t(pad "163" smd roundrect\r\n\t\t\t(at -5.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI0_D1_N-Pad163)")\r\n\t\t\t(pinfunction "DSI0_D1_N_163")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "51e5ebf4-d674-4aea-82b9-0050a7ff1533")\r\n\t\t)\r\n\t\t(pad "164" smd roundrect\r\n\t\t\t(at -5.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_CLK_P-Pad164)")\r\n\t\t\t(pinfunction "HDMI1_CLK_P_164")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "47560ab5-8306-49b0-bdb1-06806f7ee4c6")\r\n\t\t)\r\n\t\t(pad "165" smd roundrect\r\n\t\t\t(at -5.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI0_D1_P-Pad165)")\r\n\t\t\t(pinfunction "DSI0_D1_P_165")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "65db8c86-d13a-4e8e-aaa2-8aef766d7ff8")\r\n\t\t)\r\n\t\t(pad "166" smd roundrect\r\n\t\t\t(at -5.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI1_CLK_N-Pad166)")\r\n\t\t\t(pinfunction "HDMI1_CLK_N_166")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "47b12451-b7d5-4ec0-a60f-b56084ac7640")\r\n\t\t)\r\n\t\t(pad "167" smd roundrect\r\n\t\t\t(at -5.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_167")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "00a733d6-81dc-48a8-9393-bb51f9efb26b")\r\n\t\t)\r\n\t\t(pad "168" smd roundrect\r\n\t\t\t(at -5.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_168")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "17482481-9369-4127-a374-985feda11e82")\r\n\t\t)\r\n\t\t(pad "169" smd roundrect\r\n\t\t\t(at -6.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI0_C_N-Pad169)")\r\n\t\t\t(pinfunction "DSI0_C_N_169")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "fc306afc-e221-435a-b668-95d075e24511")\r\n\t\t)\r\n\t\t(pad "170" smd roundrect\r\n\t\t\t(at -6.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_TX2_P-Pad170)")\r\n\t\t\t(pinfunction "HDMI0_TX2_P_170")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "2db0de69-3f4d-4baa-9909-6116f8fbf16c")\r\n\t\t)\r\n\t\t(pad "171" smd roundrect\r\n\t\t\t(at -6.7 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI0_C_P-Pad171)")\r\n\t\t\t(pinfunction "DSI0_C_P_171")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "e657485a-ba0f-4899-8f0a-3c60ea656d8a")\r\n\t\t)\r\n\t\t(pad "172" smd roundrect\r\n\t\t\t(at -6.7 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_TX2_N-Pad172)")\r\n\t\t\t(pinfunction "HDMI0_TX2_N_172")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "24bd7150-1d04-404b-aec1-7821e6bf49c3")\r\n\t\t)\r\n\t\t(pad "173" smd roundrect\r\n\t\t\t(at -7.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_173")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "ba328b4a-784d-4e2f-87ca-fc10e39e7133")\r\n\t\t)\r\n\t\t(pad "174" smd roundrect\r\n\t\t\t(at -7.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_174")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "dc90a52a-1542-4967-875f-6f1fd27fbcfb")\r\n\t\t)\r\n\t\t(pad "175" smd roundrect\r\n\t\t\t(at -7.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI1_D0_N-Pad175)")\r\n\t\t\t(pinfunction "DSI1_D0_N_175")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "b21bb3e1-9072-4241-8130-d4417e3b522c")\r\n\t\t)\r\n\t\t(pad "176" smd roundrect\r\n\t\t\t(at -7.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_TX1_P-Pad176)")\r\n\t\t\t(pinfunction "HDMI0_TX1_P_176")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "c8c4e021-9e83-46f8-bbfe-b5aa2bf57fad")\r\n\t\t)\r\n\t\t(pad "177" smd roundrect\r\n\t\t\t(at -7.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI1_D0_P-Pad177)")\r\n\t\t\t(pinfunction "DSI1_D0_P_177")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "eaa68437-2d58-4329-9fb5-a73d21bd3c19")\r\n\t\t)\r\n\t\t(pad "178" smd roundrect\r\n\t\t\t(at -7.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_TX1_N-Pad178)")\r\n\t\t\t(pinfunction "HDMI0_TX1_N_178")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "7dc93537-fe0a-4fc0-ac75-79d8e6c26444")\r\n\t\t)\r\n\t\t(pad "179" smd roundrect\r\n\t\t\t(at -8.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_179")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "82817cd4-2dd6-421e-afcf-84ed5697c5ad")\r\n\t\t)\r\n\t\t(pad "180" smd roundrect\r\n\t\t\t(at -8.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_180")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "de6b79d3-b396-4655-a9b9-0d4a726067c2")\r\n\t\t)\r\n\t\t(pad "181" smd roundrect\r\n\t\t\t(at -8.7 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-D' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'SI1_D1_N-Pad181)")\r\n\t\t\t(pinfunction "DSI1_D1_N_181")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "d61bf1fd-49b1-44f2-835c-dd8bdb95d1ed")\r\n\t\t)\r\n\t\t(pad "182" smd roundrect\r\n\t\t\t(at -8.7 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_TX0_P-Pad182)")\r\n\t\t\t(pinfunction "HDMI0_TX0_P_182")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "84775e0d-4827-4767-93a5-04531f2af0f9")\r\n\t\t)\r\n\t\t(pad "183" smd roundrect\r\n\t\t\t(at -9.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI1_D1_P-Pad183)")\r\n\t\t\t(pinfunction "DSI1_D1_P_183")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "63a3d3c9-41bd-4b3f-aff5-3ac1898540d0")\r\n\t\t)\r\n\t\t(pad "184" smd roundrect\r\n\t\t\t(at -9.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_TX0_N-Pad184)")\r\n\t\t\t(pinfunction "HDMI0_TX0_N_184")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "75ced67c-558f-4d43-a92b-91248f1ed60c")\r\n\t\t)\r\n\t\t(pad "185" smd roundrect\r\n\t\t\t(at -9.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_185")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d31290a1-cf24-46f8-94e8-2b329bea9f85")\r\n\t\t)\r\n\t\t(pad "186" smd roundrect\r\n\t\t\t(at -9.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_186")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c7955126-310a-44f0-8123-e713465c85de")\r\n\t\t)\r\n\t\t(pad "187" smd roundrect\r\n\t\t\t(at -9.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI1_C_N-Pad187)")\r\n\t\t\t(pinfunction "DSI1_C_N_187")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "f17f4a9c-5eac-4c14-b416-db49d3aa6a45")\r\n\t\t)\r\n\t\t(pad "188" smd roundrect\r\n\t\t\t(at -9.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_CLK_P-Pad188)")\r\n\t\t\t(pinfunction "HDMI0_CLK_P_188")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "1da1f661-6e36-46e9-acfc-a0b28bd1da9d")\r\n\t\t)\r\n\t\t(pad "189" smd roundrect\r\n\t\t\t(at -10.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI1_C_P-Pad189)")\r\n\t\t\t(pinfunction "DSI1_C_P_189")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "d9e74588-322a-46e4-b9e1-0fa99d419778")\r\n\t\t)\r\n\t\t(pad "190" smd roundrect\r\n\t\t\t(at -10.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_CLK_N-Pad190)")\r\n\t\t\t(pinfunction "HDMI0_CLK_N_190")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "89f86733-4665-4365-897d-3c9019d6813a")\r\n\t\t)\r\n\t\t(pad "191" smd roundrect\r\n\t\t\t(at -10.7 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_191")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "73c93c8a-931a-4488-96a3-297b052fe9b7")\r\n\t\t)\r\n\t\t(pad "192" smd roundrect\r\n\t\t\t(at -10.7 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_192")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "6022fcdf-0576-46c4-9aed-ce97c462da8b")\r\n\t\t)\r\n\t\t(pad "193" smd roundrect\r\n\t\t\t(at -11.1 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI1_D2_N-Pad193)")\r\n\t\t\t(pinfunction "DSI1_D2_N_193")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "b1d89075-1f38-4be5-8eec-cacb72fbf9cc")\r\n\t\t)\r\n\t\t(pad "194" smd roundrect\r\n\t\t\t(at -11.1 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI1_D3_N-Pad194)")\r\n\t\t\t(pinfunction "DSI1_D3_N_194")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "0bc89411-759a-476a-ba2a-7243ebe33646")\r\n\t\t)\r\n\t\t(pad "195" smd roundrect\r\n\t\t\t(at -11.5 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI1_D2_P-Pad195)")\r\n\t\t\t(pinfunction "DSI1_D2_P_195")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "2f1a6210-ef8a-4dcb-9d8c-3c04ecec1a9c")\r\n\t\t)\r\n\t\t(pad "196" smd roundrect\r\n\t\t\t(at -11.5 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1B-DSI1_D3_P-Pad196)")\r\n\t\t\t(pinfunction "DSI1_D3_P_196")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "3d325a30-df15-4669-bf17-26ea8b8999d4")\r\n\t\t)\r\n\t\t(pad "197" smd roundrect\r\n\t\t\t(at -11.9 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_197")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "2a618d7e-0f04-44a1-a489-2ca1b1dfb97d")\r\n\t\t)\r\n\t\t(pad "198" smd roundrect\r\n\t\t\t(at -11.9 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_198")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "e442df82-f890-4d34-b724-11ceda311373")\r\n\t\t)\r\n\t\t(pad "199" smd roundrect\r\n\t\t\t(at -12.3 15.46 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_SDA-Pad199)")\r\n\t\t\t(pinfunction "HDMI0_SDA_199")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "9aa0eff3-b36e-412e-87b3-16700ae68369")\r\n\t\t)\r\n\t\t(pad "200" smd roundrect\r\n\t\t\t(at -12.3 18.54 180)\r\n\t\t\t(size 0.2 0.7)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U1C-HDMI0_SCL-Pad200)")\r\n\t\t\t(pinfunction "HDMI0_SCL_200")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "73c3d7e9-7c1d-455b-b490-a240e9ac0442")\r\n\t\t)\r\n\t\t(zone\r\n\t\t\t(layers "F.Cu" "B.Cu" "In1.Cu" "In2.Cu")\r\n\t\t\t(uuid "4a6e80ad-2bc3-4640-a2a1-4a192b4caedd")\r\n\t\t\t(name "Antenna")\r\n\t\t\t(hatch edge 0.5)\r\n\t\t\t(connect_pads\r\n\t\t\t\t(clearance 0)\r\n\t\t\t)\r\n\t\t\t(min_thickness 0.25)\r\n\t\t\t(keepout\r\n\t\t\t\t(tracks not_allowed)\r\n\t\t\t\t(vias not_allowed)\r\n\t\t\t\t(pads not_allowed)\r\n\t\t\t\t(copperpour not_allowed)\r\n\t\t\t\t(footprints allowed)\r\n\t\t\t)\r\n\t\t\t(placement\r\n\t\t\t\t(enabled no)\r\n\t\t\t\t(sheetname "")\r\n\t\t\t)\r\n\t\t\t(fill\r\n\t\t\t\t(thermal_gap 0.5)\r\n\t\t\t\t(thermal_bridge_width 0.5)\r\n\t\t\t\t(island_removal_mode 0)\r\n\t\t\t)\r\n\t\t\t(polygon\r\n\t\t\t\t(pts\r\n\t\t\t\t\t(xy 74.9 97.3) (xy 82.9 97.3) (xy 82.9 112.3) (xy 74.9 112.3)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KIPRJMOD}/models/CM4102008.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 3)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz -90 -0 -0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "7962a45d-3db8-4e5f-a712-6639cb5058a0")\r\n\t\t(at 135.92 112.8 180)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C16"\r\n\t\t\t(at 0 -1.16 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b069c99d-95fa-43a9-ab1f-c8faeec51a24")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "100n"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "106c2a95-f713-41e3-a890-fd97dc6e4c12")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c69f63c3-5859-4f45-8d66-1baf0cfd9523")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d24804ca-894d-49de-b4f1-023b2452d72e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2bb7a321-cff3-4dac-a477-5dec71750a9a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/337d7c74-bd9d-4c92-9640-070' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'bf1fb6685/f080d536-70f9-4872-9979-e96bb50f4c21")\r\n\t\t(sheetname "/CM4/Cameras/")\r\n\t\t(sheetfile "cameras.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "6c81093a-ff8a-4202-97ad-d8568f35634e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "4fa35c8f-be96-4c88-bcd6-d010f4ad8726")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "c647927d-fd94-4480-8a30-ffeee42474dd")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "042fbce9-510c-4ca7-80b9-537b96fbf4da")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "9480181d-cac4-4e46-95b8-511506f311c8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c55cfd0c-1f02-4b4e-aed6-bd5fbf368e41")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "6b05c88d-b050-4fbc-856f-448c444f0ed6")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "7cf3779b-491f-4aba-a21d-94665b8487ba")\r\n\t\t(at 93.1 133.4 180)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C15"\r\n\t\t\t(at 0 1.6 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "cb13cab9-0454-4bb3-a9ce-8ed4b5b3c53d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "100n"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "bf5b9343-e435-4526-8d89-48f3de53ec39")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1da6d4ad-1a1d-4e3a-96fe-4b5e0dfc1b31")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d6724dca-2ed0-4fb1-8b1e-98393ac91b1e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1617b739-72f6-4ee6-8fea-293b4b6605e7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/337d7c74-bd9d-4c92-9640-070bf1fb6685/3b79ec7e-cef9-4be1-8f25-82a8b6d932f0")\r\n\t\t(sheetname "/CM4/Cameras/")\r\n\t\t(sheetfile "cameras.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "2cb3b4ee-7b8f-4909-8be7-64fa1ad89bdb")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "d95ccfe7-b6e8-46e3-b839-97793d9a3c72")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "51486f4d-a3db-4a03-97c2-edf4849318b3")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e3e7476d-1984-4fd0-b4f0-96fb98b429ef")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "20c4a14c-583c-400a-91b0-842a20e715e5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "9edf8bed-2d30-49c5-84dd-94ca05430984")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c545b3e3-2fee-4b10-a34a-86dc2cbf3dd7")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "LED_SMD:LED_0805_2012Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "7d0d900d-e2db-4eba-bb6c-d9a7e0070c65")\r\n\t\t(at 76.5625 74.64 180)\r\n\t\t(descr "LED SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: https://docs.google.com/spreadsheets/d/1BsfQQcO9C6DZCsRaXUlFlo91Tg2WpOkGARC1WS5S8t0/edit?usp=sharing)")\r\n\t\t(tags "LED")\r\n\t\t(property "Reference" "D1"\r\n\t\t\t(at -0.2375 2.04 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "a0cae4e8-4e01-4823-9d9b-c7e5531ab944")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "LED"\r\n\t\t\t(at 0 1.65 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c3f521b7-d587-4e39-a367-c13ec8f97e28")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "93af5f50-401f-40a2-90e3-87a2c41943bc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Light emitting diode"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "31cbf995-9c4d-43ce-b087-2e13248599ae")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "308a239d-f128-4c8d-a2fa-e71fb6dbd759")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Sim.Pins" "1=K 2=A"\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f4143764-bf2e-40e2-9b0a-ccfe47628c16")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a94c0a15-62cd-4426-89b2-6f8f1ae3295a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fdba13a1-c594-477e-b27a-eb145827f84d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6292d7c2-eb41-4295-8828-43e489358d32")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "324d2bdd-dd53-48f0-b6c3-270da119f5d8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3d1a08f5-4c4b-4e90-9f52-41a93aab4270")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7f8eeeca-f3de-404d-b181-e25633397598")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "53e83781-b97f-4d31-a8e9-b79f4a8e8df8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "754ab2bc-6331-4732-b4bb-62101d20785f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ec822876-5202-4f49-b674-3bc2459cdce9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ae18c2ad-ccac-4874-b30f-645411e321d4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8c338fcc-a8c0-4e19-8fe4-0d53ef53eefc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "11290414-78e6-402f-b662-e224077d4772")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3bede45d-8c68-4832-8b93-8bec613740de")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "37ab0c89-430f-4465-b1f2-88af723a68a2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "LED* LED_SMD:* LED_THT:*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/9c0ca53a-da3e-4d4b-8b77-272d3aa8244b")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start 1 -0.96)\r\n\t\t\t(end -1.685 -0.96)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ee9f8a04-5c55-43a2-bb58-0c36df523e0b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.685 0.96)\r\n\t\t\t(end 1 0.96)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "62d248be-b92c-40b9-a896-1921e309c184")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.685 -0.96)\r\n\t\t\t(end -1.685 0.96)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f361024b-12a8-469a-a7d1-cd6f33b060d5")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -1.68 -0.95)\r\n\t\t\t(end 1.68 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "77b87a66-81c0-4ceb-b5ea-06fc55a831dc")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1 0.6)\r\n\t\t\t(end 1 -0.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "811d5884-5553-4e72-8a62-eebe22db9ad4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1 -0.6)\r\n\t\t\t(end -0.7 -0.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6b4927ba-292c-470c-b376-c9d9159bcf3c")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.7 -0.6)\r\n\t\t\t(end -1 -0.3)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ce8f3ee7-6ef6-4d18-8c54-b125aff90fbb")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1 0.6)\r\n\t\t\t(end 1 0.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "44041acb-080d-49d5-90ee-e4da7cb99b8f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1 -0.3)\r\n\t\t\t(end -1 0.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "265a33cd-40bb-47de-b937-1512c547157f")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "960f5edf-0ab0-4d77-aaa0-caaca93ed27b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.5 0.5)\r\n\t\t\t\t\t(thickness 0.08)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.9375 0 180)\r\n\t\t\t(size 0.975 1.4)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(D1-K)")\r\n\t\t\t(pinfunction "K_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "3acff277-9b26-4118-bc5d-2906caedef99")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.9375 0 180)\r\n\t\t\t(size 0.975 1.4)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "A_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "5023c45d-4a6d-4146-878a-737a80341496")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/LED_SMD.3dshapes/LED_0805_2012Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "8e541ae8-3796-4e69-8464-6cf1d951fe28")\r\n\t\t(at 143.2 72 90)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C3"\r\n\t\t\t(at 2 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "2f56471e-06b1-4af6-8217-d1fd3d2a6f0a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "2.2u"\r\n\t\t\t(at 0 1.16 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d4424e63-1239-4a74-a62f-c4ef478c3e56")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0ec9d2ba-0996-4a64-aa43-004e0b0856c7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d26794a2-973f-4d48-bca2-cf06aed15e42")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9d98e040-0c17-4f78-a494-ce0a7f8dcaea")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e04a1a85-f452-4a21-a5cd-b27b75eb0381")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d3c76993-b1a8-4eba-abea-ce7eb8a53236")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "40192f5a-aef7-4e7e-a99a-fd1d05e73f63")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c18b057c-e089-4643-87b4-61236426f67f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "35bb273c-6bfe-4721-828c-9fe3f6b911a3")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "45135139-c74b-4e4b-88ea-c7f6df06fed9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d5e36b3d-94a5-4e92-8c81-1d006f50d02e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlo' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'cked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c4eafa77-23a4-4ccb-9c9f-8f817d28fc92")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2d0ac2dc-65d2-42bf-bfcc-dcb7b1fdba69")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "653be202-dc12-489c-82c8-acf1248eb0e2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3d5d1b2e-c2b1-44e2-8c5f-8d1805c91c10")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a850e3ec-6d91-42c3-a033-304ae8f0c78f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "90fbc8e3-4a50-4617-b716-771008fb3653")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/58c4aa14-5582-4f1d-b15c-d8f541333427")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "558e9fd2-1095-4f72-9d40-7a13dcd9c8ba")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0421e157-8e3a-4667-8a2f-41508f9f89a7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "8c7f4399-11df-4afc-9485-82c194cce6a1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 -0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "9d9d6429-b845-4430-8eb4-5c2888e5a2e3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 0.46)\r\n\t\t\t(end -0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "765e221b-9f1c-43ae-8abf-de1af78c9874")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.91 0.46)\r\n\t\t\t(end -0.91 -0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "7b917d5f-d7e2-4996-9465-18c899d39b67")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c2047028-5623-4eec-ba57-8f4636b2f8e9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 -0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "19c13773-ce8e-48fc-bd8f-c429002133ad")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.5 0.25)\r\n\t\t\t(end -0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "9c881bdb-3277-47ee-b4c1-c1c652a1baa8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.5 0.25)\r\n\t\t\t(end -0.5 -0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "8afc5a92-386c-417e-a8fd-bf1ef7c9bc7e")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c1e9897e-ddfa-429b-a779-b98676d45d4b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 90)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U9-VINT)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "ffa2e516-be01-4ea6-88d7-065905c8b713")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 90)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0b1b79e8-0ab9-41d5-9688-a8c10db45c0b")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD9_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Diode_SMD:D_SOD-323"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "9cdb5d39-d7aa-4116-8c15-ca556fc8f68b")\r\n\t\t(at 103.8 64.4 180)\r\n\t\t(descr "SOD-323")\r\n\t\t(tags "SOD-323")\r\n\t\t(property "Reference" "D6"\r\n\t\t\t(at 2.65 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "04449bea-e59b-487c-8f5b-7797c663b95d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "D_Zener"\r\n\t\t\t(at 0.1 1.9 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1116b785-f45e-49f0-a79f-866422f6f344")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "05ed1722-2c80-4e89-9bd5-6c17c3ae3919")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Zener diode"\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6b0e883a-ce95-4d10-b779-b72319d69717")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "TO-???* *_Diode_* *SingleDiode* D_*")\r\n\t\t(path "/f91d006f-579d-40c6-a7e0-f192b2d4191a")\r\n\t\t(sheetname "/")\r\n\t\t(sheetfile "payload.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 0.85)\r\n\t\t\t(end 1.05 0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "847bea4a-d45f-43e7-9c38-49bb13f7b674")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 -0.85)\r\n\t\t\t(end 1.05 -0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ff9bd2cc-c161-4e86-84ab-8a229119bfeb")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 -0.85)\r\n\t\t\t(end -1.61 0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7c0e848e-970d-4b8d-84e6-d52d2d619c75")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.6 -0.95)\r\n\t\t\t(end 1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5ca87293-8d02-46a2-b8d3-d2fceab1ff4c")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 0.95)\r\n\t\t\t(end 1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "ee24b8e9-d652-4705-b747-b4408330699a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 -0.95)\r\n\t\t\t(end 1.6 -0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "1d7aebd4-942c-4126-8ec7-6a94f0939fb9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 -0.95)\r\n\t\t\t(end -1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "7d036282-aa8c-46cd-82f1-78c0a7c0a501")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.9 0.7)\r\n\t\t\t(end -0.9 0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ebf68cf1-98b8-4c9e-a660-d03650577f0f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.9 -0.7)\r\n\t\t\t(end 0.9 0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "04dd33dd-d9fc-4510-b1c5-28fc5418a489")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 0.35)\r\n\t\t\t(end -0.3 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "f62d36f3-eb2e-4be2-bf4c-290f58eb2d60")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 0)\r\n\t\t\t(end 0.45 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5ec39e5a-009b-43af-846f-8a38e3c6a957")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 -0.35)\r\n\t\t\t(end 0.2 0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "4e1d01a6-a904-4c27-a987-23e7d8064273")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 0)\r\n\t\t\t(end 0.2 -0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "81c276f6-a28f-4b4f-b7ed-10ba45b6a987")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 0)\r\n\t\t\t(end -0.5 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "fa2d010a-3f53-4b8a-b51c-634316171b35")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 -0.35)\r\n\t\t\t(end -0.3 0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2b2b2fbb-2dbf-492d-b88e-22648a7152ee")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.9 0.7)\r\n\t\t\t(end -0.9 -0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6fb7378e-d119-4eb5-9626-cbb11e1ec2fd")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.9 -0.7)\r\n\t\t\t(end 0.9 -0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "f2ff8c30-34ce-4a32-a1c0-c0ac3bc1622c")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 -1.85 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6df88ad7-6528-4a0f-8839-bab2e3e77243")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.05 0 180)\r\n\t\t\t(size 0.6 0.45)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART1_RX")\r\n\t\t\t(pinfunction "K_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d29aa3c5-6923-49a4-966f-6c3d3f8b0de2")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 1.05 0 180)\r\n\t\t\t(size 0.6 0.45)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "A_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "7671ce8b-363b-4ebf-910c-39a751d0125d")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Diode_SMD.3dshapes/D_SOD-323.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Diode_SMD:D_SOD-323"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "a0de95cb-7fb6-4a99-b2ee-832d19d28fee")\r\n\t\t(at 103.8 62.5 180)\r\n\t\t(descr "SOD-323")\r\n\t\t(tags "SOD-323")\r\n\t\t(property "Reference" "D5"\r\n\t\t\t(at 2.65 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f4387689-1505-4399-a6e1-a1c5a162af93")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "D_Zener"\r\n\t\t\t(at 0.1 1.9 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "2ce9f603-5f6b-4c9c-abfa-2bf6879e8a21")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d309bb97-f817-47c1-9792-7cdb625b7957")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Zener diode"\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a5b53542-d6f5-4cac-a857-2cec4730c7f4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "TO-???* *_Diode_* *SingleDiode* D_*")\r\n\t\t(path "/4731d2a8-6236-4ee6-857b-51a519af1813")\r\n\t\t(sheetname "/")\r\n\t\t(sheetfile "payload.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 0.85)\r\n\t\t\t(end 1.05 0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7af3f802-12f4-474b-8249-f7fe8c74853f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 -0.85)\r\n\t\t\t(end 1.05 -0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "47fd8ee3-4183-4c03-aa55-49d77c8aab1d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.61 -0.85)\r\n\t\t\t(end -1.61 0.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "5fcf6336-a8e1-4a07-8271-5c2233a28cd6")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.6 -0.95)\r\n\t\t\t(end 1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "db2f2e56-9beb-42a9-af9c-563ec0bf87f7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 0.95)\r\n\t\t\t(end 1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "7a5c322a-80a9-4ad9-9da4-2fe0566d497a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 -0.95)\r\n\t\t\t(end 1.6 -0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "fa75027e-66ad-4a4d-9f11-202043a86894")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.6 -0.95)\r\n\t\t\t(end -1.6 0.95)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "53c48da0-2b9b-4875-ac2b-366c2b5e1f2a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.9 0.7)\r\n\t\t\t(end -0.9 0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "79f51321-5c8b-413a-b211-c106bcd40554")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.9 -0.7)\r\n\t\t\t(end 0.9 0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "29b11fc0-87c3-4690-8296-aa7a127f6a8e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 0.35)\r\n\t\t\t(end -0.3 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "65bc647f-53e6-4fd9-9bc0-2c26ffba25f3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 0)\r\n\t\t\t(end 0.45 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "80ee1bf7-1507-4b54-be08-b563935745db")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.2 -0.35)\r\n\t\t\t(end 0.2 0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "56dea06e-3fb1-4910-98dd-91455a475787")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 0)\r\n\t\t\t(end 0.2 -0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a6139bd1-486a-4aaf-9552-2d181f5c1eb6")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 0)\r\n\t\t\t(end -0.5 0)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6480941a-9ed9-4549-84f1-38c47f52bdb4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.3 -0.35)\r\n\t\t\t(end -0.3 0.35)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "bebaeed3-46f8-4717-b302-ef52c15b9f42")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.9 0.7)\r\n\t\t\t(end -0.9 -0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "007b57ca-142f-4ca9-b40f-ce0e511bc857")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.9 -0.7)\r\n\t\t\t(end 0.9 -0.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "16b8e802-11d6-4286-af32-8e7708b172f5")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 -1.85 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "c1096d5b-bc4b-4540-bb57-f4ce2f55d8a2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.05 0 180)\r\n\t\t\t(size 0.6 0.45)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART1_TX")\r\n\t\t\t(pinfunction "K_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "ecd0eb1a-fb1b-4dd0-8915-c8924e2fecf0")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 1.05 0 180)\r\n\t\t\t(size 0.6 0.45)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "A_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "06825e90-027f-4174-8900-885787ad2abb")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Diode_SMD.3dshapes/D_SOD-323.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint ""\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "a31f3efb-1a5a-4004-9113-9ae0987dffda")\r\n\t\t(at 147.304 67.196)\r\n\t\t(property "Reference" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "060bee71-2ada-48c1-87cf-b18348e73966")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a318e66e-ad53-43fb-b5ee-b1a8828d8863")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "488fcd28-bcc7-4a40-a1c7-43b0c2c40b6f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ed04d76d-7598-4d84-823b-70d6d3bce3fd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 3.2 3.2)\r\n\t\t\t(drill 3.2)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "97b18af7-067e-4c57-9fac-61bfff9dfcc1")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t)\r\n\t(footprint "Button_Switch_SMD:SW_SPST_PTS810"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "a389f6d6-0e60-424b-9bf6-89e7df6f1fe3")\r\n\t\t(at 76.4 82.2 -90)\r\n\t\t(descr "C&K Components, PTS 810 Series,' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' Microminiature SMT Top Actuated, http://www.ckswitches.com/media/1476/pts810.pdf")\r\n\t\t(tags "SPST Button Switch")\r\n\t\t(property "Reference" "SW1"\r\n\t\t\t(at 0 -2.6 270)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "be083f3c-2edb-4a2f-9973-36c9278447fe")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "SW_Push"\r\n\t\t\t(at 0 2.6 270)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "3a4fc26b-5767-483f-9e3e-7ec32ae7e38f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ad0b795a-bed4-4ea1-b26e-e9881d39e68d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Push button switch, generic, two pins"\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "50534b04-558e-474d-8924-948d36fbb033")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/409ceb66-add2-4878-92e8-ac795f47d9dd")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 1.7)\r\n\t\t\t(end 2.2 1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "88ac7b6e-0b6e-4b17-a744-c84bf609d908")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 1.7)\r\n\t\t\t(end 2.2 1.58)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "e1eb3171-014b-466d-b48b-a0a14eee7a7a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 1.58)\r\n\t\t\t(end -2.2 1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "73514407-82c1-44a2-8983-4720fc011fea")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 0.57)\r\n\t\t\t(end 2.2 -0.57)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7a4122ee-91b0-427c-b16f-119182618b9f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 -0.57)\r\n\t\t\t(end -2.2 0.57)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "4fe4398e-8a13-4fd5-bba0-891405aaafbb")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 -1.58)\r\n\t\t\t(end 2.2 -1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "bfa3a260-7d4d-47f0-855e-8b404ae11baa")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.2 -1.7)\r\n\t\t\t(end -2.2 -1.58)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7b1211cf-544e-449c-9ac0-ae1571dd82b7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.2 -1.7)\r\n\t\t\t(end -2.2 -1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "51114cae-d2c1-4e88-9efc-89d83ea43a15")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.85 1.85)\r\n\t\t\t(end -2.85 -1.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "41f61a60-aab3-451e-98d5-b97d847ebd1b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.85 1.85)\r\n\t\t\t(end -2.85 1.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "48922c65-d49f-4f48-a927-7e361d44f6cd")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.85 -1.85)\r\n\t\t\t(end 2.85 -1.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "f3298268-2dc5-4178-968a-acfe60ae12a1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.85 -1.85)\r\n\t\t\t(end 2.85 1.85)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "010bf107-9a09-4124-b49c-daa05b95deb3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.1 1.6)\r\n\t\t\t(end 2.1 1.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "92075cd2-46a2-45cc-9683-ede474d109d9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.1 1.6)\r\n\t\t\t(end 2.1 -1.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "204b6f7f-8f12-43bf-801f-10d009d3a7e8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.4 1.1)\r\n\t\t\t(end -0.4 1.1)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "eed50351-af42-49fb-9daf-a603ffde7d19")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.4 -1.1)\r\n\t\t\t(end 0.4 -1.1)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "438bc622-157f-4042-b571-7d40c3fbfcf0")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.1 -1.6)\r\n\t\t\t(end -2.1 1.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "fcb16e2d-f69e-431f-ba3f-c0b6fde2d371")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.1 -1.6)\r\n\t\t\t(end -2.1 -1.6)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "931b7fcc-d1e5-4031-b591-7b0f1c91f64f")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start -0.4 1.1)\r\n\t\t\t(mid -1.5 0)\r\n\t\t\t(end -0.4 -1.1)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "cc037443-bd98-43c4-8313-82d961a957dd")\r\n\t\t)\r\n\t\t(fp_arc\r\n\t\t\t(start 0.4 -1.1)\r\n\t\t\t(mid 1.5 0)\r\n\t\t\t(end 0.4 1.1)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "fe8f3b5b-f2fd-4ad6-88fc-079724feb7ff")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "747aa6cf-3cc0-4851-ae5b-071c4a73b1b7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.6 0.6)\r\n\t\t\t\t\t(thickness 0.09)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd rect\r\n\t\t\t(at -2.075 -1.075 270)\r\n\t\t\t(size 1.05 0.65)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(JP1-B)")\r\n\t\t\t(pinfunction "1_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "4c253628-59a7-4641-84d8-6c0ad56f89ae")\r\n\t\t)\r\n\t\t(pad "1" smd rect\r\n\t\t\t(at 2.075 -1.075 270)\r\n\t\t\t(size 1.05 0.65)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(JP1-B)")\r\n\t\t\t(pinfunction "1_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "2b837f17-6f77-4556-84a0-18748ee4c154")\r\n\t\t)\r\n\t\t(pad "2" smd rect\r\n\t\t\t(at -2.075 1.075 270)\r\n\t\t\t(size 1.05 0.65)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "/CM4/POWER_BUTTON")\r\n\t\t\t(pinfunction "2_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0874bb25-5cd1-4e30-b449-ecaeaf0940f1")\r\n\t\t)\r\n\t\t(pad "2" smd rect\r\n\t\t\t(at 2.075 1.075 270)\r\n\t\t\t(size 1.05 0.65)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "/CM4/POWER_BUTTON")\r\n\t\t\t(pinfunction "2_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "179240cd-0176-427c-88bc-d6ce8ee52c51")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Button_Switch_SMD.3dshapes/SW_SPST_PTS810.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_1206_3216Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "a7324eaf-2be2-461d-97b2-718f5dd6861c")\r\n\t\t(at 135.7 75.6625 -90)\r\n\t\t(descr "Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R6"\r\n\t\t\t(at 1.1375 -1.83 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "391175e7-ab0c-455c-9a8c-d5da0ddaf309")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "1"\r\n\t\t\t(at 0 1.83 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "0d4eb8ae-59a9-48bb-812b-21d713f770b8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "93c389d4-79f4-4534-9d03-e7a251d6fb29")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1f33a987-8d0a-465b-8eb0-0e0e5876450b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "32637ba1-b6a8-4eb8-8655-8641664d0829")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/d2015a46-1584-4434-ac94-66ce55ec33f4")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.727064 0.91)\r\n\t\t\t(end 0.727064 0.91)\r\n\t\t\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "c71aed5b-8e4e-46fd-886f-a06b0d6db84b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.727064 -0.91)\r\n\t\t\t(end 0.727064 -0.91)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "9df7894b-9ced-45d2-bd9c-69815a42cb0f")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -2.28 -1.13)\r\n\t\t\t(end 2.28 1.13)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "c8134222-fd90-4d92-98e6-8fc0a1ecb349")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -1.6 -0.8)\r\n\t\t\t(end 1.6 0.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "289d6560-e1b3-4cb9-816e-946efffd9ca4")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "92c9145f-45d6-4266-a0f8-9d6944dd1759")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.8 0.8)\r\n\t\t\t\t\t(thickness 0.12)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.4625 0 270)\r\n\t\t\t(size 1.125 1.75)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.222222)\r\n\t\t\t(net "Net-(U9-BISEN)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "73a5e076-8be8-4e17-a547-f925ce242eeb")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 1.4625 0 270)\r\n\t\t\t(size 1.125 1.75)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.222222)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "e4f41242-48dd-4b35-975d-36c06d46bc8f")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1206_3216Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Package_TO_SOT_SMD:SOT-23-5"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "a7ea6dfe-5322-4633-b550-ff9981e9095d")\r\n\t\t(at 83.525 76.5 180)\r\n\t\t(descr "SOT, 5 Pin (JEDEC MO-178 Var AA https://www.jedec.org/document_search?search_api_views_fulltext=MO-178)")\r\n\t\t(tags "SOT TO_SOT_SMD")\r\n\t\t(property "Reference" "U6"\r\n\t\t\t(at 0 -2.4 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "55be7eaa-497e-4d83-b6a5-cbfc04685053")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "74LVC1G07"\r\n\t\t\t(at 0 2.4 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "9102ae7a-c4c0-4517-80c6-6baca6d3053a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "https://www.ti.com/lit/ds/symlink/sn74lvc1g07.pdf"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "dc03c21c-bc6d-40d3-a996-0a1ba3a03d59")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Single Buffer Gate, Open Drain, Low-Voltage CMOS"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8bdfc6aa-1c8c-45a5-ae55-0e7da6e98333")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "package/gullwing"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b554621c-b9ad-4aff-83d3-b1d3ca121ee5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "SOT?23* Texas?R-PDSO-G5?DCK* Texas?R-PDSO-N5?DRL* Texas?X2SON*0.8x0.8mm*P0.48mm*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/3a2840fc-6ef7-4a98-8e9a-488ef5c8c5bc")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "2" "5" "3" "1" "4")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 1.56)\r\n\t\t\t(end -0.91 1.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "9abbf888-402e-4937-bd99-50b384a0aeb2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 1.51)\r\n\t\t\t(end 0.91 1.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "523d3adc-a3b4-4fcb-9717-70e5e6973cba")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 -0.39)\r\n\t\t\t(end 0.91 0.39)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0cfe28ed-7dc6-452d-a59a-245d751152ef")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 0.91 -1.56)\r\n\t\t\t(end 0.91 -1.51)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0999d020-622e-4ac4-ae1b-1bc0923b60a9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.91 1.56)\r\n\t\t\t(end -0.91 1.51)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "bb253808-1179-4ef2-8df3-7068fd0400e1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.91 -1.51)\r\n\t\t\t(end -0.91 -1.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "efcd40ac-a2d4-41ae-92c6-0ea96cc37f1a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.91 -1.56)\r\n\t\t\t(end 0.91 -1.56)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0198d6a7-58bb-4ee6-b540-bec94c069b13")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -1.45 -1.51) (xy -1.69 -1.84) (xy -1.21 -1.84)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "c384cb7b-0a78-4c9b-8ba8-26b0c1da29c9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.05 1.5)\r\n\t\t\t(end 1.05 1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "9e28c594-f4f1-42fb-a95a-3ea3de561056")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.05 0.39)\r\n\t\t\t(end 2.05 1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "2db757b9-bc3d-4d83-89b2-dadacf88a6e3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.05 -0.39)\r\n\t\t\t(end 1.05 -0.39)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "21587927-5b85-4761-82d8-b45d7ba2329a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.05 -1.5)\r\n\t\t\t(end 2.05 -0.39)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "99c10780-dd12-421b-96c6-423419890f21")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.05 1.7)\r\n\t\t\t(end -1.05 1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "51a48a3d-8aeb-4643-8035-425641cacce8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.05 1.5)\r\n\t\t\t(end 1.05 1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "0e8fbcc5-c07b-48d4-b6cf-02dcd0cb1f0e")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.05 0.39)\r\n\t\t\t(end 2.05 0.39)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "a4bd63d3-14aa-4e36-a582-c89e3361caad")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.05 -0.39)\r\n\t\t\t(end 1.05 0.39)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "fbaa1a3d-b341-4655-88a3-ecabf8436a5b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.05 -1.5)\r\n\t\t\t(end 2.05 -1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "8e51bcda-9fac-4658-a21f-0b0e62ad30be")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.05 -1.7)\r\n\t\t\t(end 1.05 -1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "5449da26-5c85-4b5c-8066-b1d3934aecee")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.05 1.7)\r\n\t\t\t(end -1.05 1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "e89afc1c-0eee-41d0-a979-af9617e27302")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.05 1.5)\r\n\t\t\t(end -2.05 1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "1c5067f4-101b-47cf-b43d-ac690232421d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.05 -1.5)\r\n\t\t\t(end -1.05 -1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "152c5e1b-c6c0-4f4e-a6a4-c1d0e016b895")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.05 -1.7)\r\n\t\t\t(end 1.05 -1.7)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "69cd9c08-95a4-4296-9cbe-5d40c0cd23ab")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.05 1.5)\r\n\t\t\t(end -2.05 -1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "d05988d1-7098-4e8d-b044-77144f2be92b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.05 -1.5)\r\n\t\t\t(end -1.05 -1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "920bae11-1947-44d4-a962-e2507491ed9e")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -0.4 -1.45) (xy 0.8 -1.45) (xy 0.8 1.45) (xy -0.8 1.45) (xy -0.8 -1.05)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "23139789-a1ff-4034-a53a-94fddcc840c9")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "36ceab98-5749-49d2-8ad4-97cfd2e17c7a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.72 0.72)\r\n\t\t\t\t\t(thickness 0.11)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.1375 -0.95 180)\r\n\t\t\t(size 1.325 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(U6-NC-Pad1)")\r\n\t\t\t(pinfunction "NC_1")\r\n\t\t\t(pintype "free")\r\n\t\t\t(uuid "cadb2757-21d9-43c7-b5f6-cadaabb13d19")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at -1.1375 0 180)\r\n\t\t\t(size 1.325 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U1A-PI_LED_nPWR)")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "e017ef18-fad0-4f31-a16e-eab1e52bd71e")\r\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at -1.1375 0.95 180)\r\n\t\t\t(size 1.325 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_3")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "05dbe55b-64d2-4b85-b476-1feadfbcd166")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at 1.1375 0.95 180)\r\n\t\t\t(size 1.325 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(R1-Pad2)")\r\n\t\t\t(pintype "open_collector")\r\n\t\t\t(uuid "b3e2c56e-c788-4219-98ad-2faad0b07f0b")\r\n\t\t)\r\n\t\t(pad "5" smd roundrect\r\n\t\t\t(at 1.1375 -0.95 180)\r\n\t\t\t(size 1.325 0.6)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "VCC_5")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "9bcbfab7-59a8-4e44-a179-be93ed0bbe58")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Package_TO_SOT_SMD.3dshapes/SOT-23-5.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Package_DFN_QFN:DFN-14-1EP_3x4.5mm_P0.65mm_EP1.65x4.25mm"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "b0c50d8a-5ff7-49fb-8349-9de2964b0224")\r\n\t\t(at 97.6425 78.79375)\r\n\t\t(descr "14-lead very thin plastic quad flat, 3.0x4.5mm size, 0.65mm pitch (http://ww1.microchip.com/downloads/en/DeviceDoc/14L_VDFN_4_5x3_0mm_JHA_C041198A.pdf)")\r\n\t\t(tags "VDFN DFN 0.65mm")\r\n\t\t(property "Reference" "U2"\r\n\t\t\t(at -1.9425 -3.69375 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "186bac9a-70b5-4c5f-bf0d-9d3d88423b90")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "MCP2517FD-xJHA"\r\n\t\t\t(at 0 3.65 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "77b91d3a-24b7-49ca-a9ee-abbef0462545")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "https://ww1.microchip.com/downloads/en/DeviceDoc/MCP2517FD-External-CAN-FD-Controller-with-SPI-Interface-20005688B.pdf"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2aac6aec-16f5-47e5-bb98-e4e6f2c317d1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "External CAN FD Controller with SPI Interface, VDFN-14"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d03f23a4-7f9a-4716-b391-784f3204b694")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "12f80c33-b894-4dd6-9d52-60ea411cf3fd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1e449d5c-d314-442c-8a0a-f0b5ad72ab40")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "dd994a52-41ec-4714-8622-f4e598d329f0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e55ffc17-05a5-43d3-955e-50ef05b086c9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e0c9391b-2de4-4124-94b0-4a0b47ff7770")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "bf477c92-05d1-412c-8bfa-8254da424ad4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "49baca31-e49c-4596-af50-795985dbd2c5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c8bd4e9d-c61a-45f9-b201-52e18b5eda67")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "51bf486b-c8c4-418f-b1ba-f83f5c1fb0dc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a83ee16e-cf04-4661-9fd6-49b06a7140ce")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d0da2892-49b1-4faf-b572-f83836fa1ecc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "64fb91cd-dbfe-4669-9232-3d77568b45ed")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b2d94f4c-3246-460e-8210-7200e043f059")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "dd15ee4f-e93f-4e38-b163-9b69f536dcee")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "DFN*1EP*3x4.5mm*P0.65mm*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/e8057e65-de86-4674-be4a-6a6d58efe02c/4137ac3b-411f-48d3-9006-09e3c914ac58")\r\n\t\t(sheetname "/CM4/CAN/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "11" "12" "13" "10" "5" "6" "14" "7" "15" "2" "1" "3" "4" "9" "8")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -1.5 2.36)\r\n\t\t\t(end 1.5 2.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "36f9d0e6-24c6-411f-80de-de4e8e2067b7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.5 -2.36)\r\n\t\t\t(end -1.5 -2.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "97d157e2-23d9-4149-9731-be67d68e3c91")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -2.07 -2.26) (xy -2.55 -2.26) (xy -2.07 -2.74) (xy -2.07 -2.26)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1cb049b1-8d4c-4ddb-adbe-473212eef4bc")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.18 -2.5)\r\n\t\t\t(end -2.18 2.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "de6a2adb-7c99-4457-a77b-e46333968460")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.18 2.5)\r\n\t\t\t(end 2.18 2.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "413df819-d7e5-4d83-a32e-2290266166bd")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.18 -2.5)\r\n\t\t\t(end -2.18 -2.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "7b0aa9f6-3f31-4965-bdd6-4d3b63d1d1d4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.18 2.5)\r\n\t\t\t(end 2.18 -2.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3abe2b5f-9cb6-4a87-9117-3501f44ac633")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.5 2.25)\r\n\t\t\t(end -1.5 -1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "79e12ac2-995a-4dd0-bc08-172283dfe4ad")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.5 2.25)\r\n\t\t\t(end 1.5 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "15fd76c0-bbe1-4881-9eee-673db8a56fa5")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.75 -2.25)\r\n\t\t\t(end -1.5 -1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e6a4efc4-7fa4-4bcf-8ea7-0fb459ad46d5")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.5 -2.25)\r\n\t\t\t(end -0.75 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "240cfece-d756-4a2b-9e79-9e54fa17f7df")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.5 2.25)\r\n\t\t\t(end 1.5 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "282ae772-c1f7-4265-bd18-ff688f98910f")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "3c5d8d00-2a00-4ed4-a2ce-07c9d70b5832")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.8 0.8)\r\n\t\t\t\t\t(thickness 0.12)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at -0.4125 -1.59375)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "fd480f81-11f0-41f4-8992-1ee35f75bfa8")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at -0.4125 -0.53125)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "315ce6da-11ad-4532-a2c8-ad5f4f45e659")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at -0.4125 0.53125)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "0cd48266-4bc4-4756-8bd4-cf01927702cd")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at -0.4125 1.59375)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "836c8730-4dbb-4229-af53-48425355db65")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at 0.4125 -1.59375)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "5c8a4cce-579f-4f54-a992-8374cca73c0c")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at 0.4125 -0.53125)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "d0b26ef7-48b3-4a11-b106-1eb0ade487e7")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at 0.4125 0.53125)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "ac7e375a-8a32-492d-8321-181b32262408")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at 0.4125 1.59375)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "95f2164e-3549-4847-b697-7cecde3fd485")\r\n\t\t)\r\n\t\t(pad "1" smd oval\r\n\t\t\t(at -1.5 -1.95)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(U2-TXCAN)")\r\n\t\t\t(pinfunction "TXCAN_1")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "970d87fd-be47-4f9d-9e17-a6a430519a8e")\r\n\t\t)\r\n\t\t(pad "2" smd oval\r\n\t\t\t(at -1.5 -1.3)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(U2-RXCAN)")\r\n\t\t\t(pinfunction "RXCAN_2")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "81562661-5095-4117-80c9-006355e0e1c9")\r\n\t\t)\r\n\t\t(pad "3" smd oval\r\n\t\t\t(at -1.5 -0.65)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "unconnected-(U2-CLKO{slash}SOF-Pad3)")\r\n\t\t\t(pinfunction "CLKO/SOF_3")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "0c0c841e-01b1-44c8-8999-1d8a8993ac5c")\r\n\t\t)\r\n\t\t(pad "4" smd oval\r\n\t\t\t(at -1.5 0)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "/CM4/CAN1_INT")\r\n\t\t\t(pinfunction "~{INT}_4")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "8a814ba8-5ab7-47eb-98d6-35d3c787bc9a")\r\n\t\t)\r\n\t\t(pad "5" smd oval\r\n\t\t\t(at -1.5 0.65)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(U2-OSC2)")\r\n\t\t\t(pinfunction "OSC2_5")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "81431eb3-7e0e-4a7c-ac2a-c8b5ad3c3059")\r\n\t\t)\r\n\t\t(pad "6" smd oval\r\n\t\t\t(at -1.5 1.3)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(U2-OSC1)")\r\n\t\t\t(pinfunction "OSC1_6")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "dbdc2883-c352-497b-a959-1499f9aaa188")\r\n\t\t)\r\n\t\t(pad "7" smd oval\r\n\t\t\t(at -1.5 1.95)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "VSS_7")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "88b12236-860c-4a78-90aa-db2feb3de12a")\r\n\t\t)\r\n\t\t(pad "8" smd oval\r\n\t\t\t(at 1.5 1.95)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "unconnected-(U2-~{INT1}{slash}GPIO1-Pad8)")\r\n\t\t\t(pinfunction "~{INT1}/GPIO1_8")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "f6120678-7197-48f5-b787-69305d95de17")\r\n\t\t)\r\n\t\t(pad "9" smd oval\r\n\t\t\t(at 1.5 1.3)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "unconnected-(U2-~{INT0}{slash}GPIO0{slash}XSTBY-Pad9)")\r\n\t\t\t(pinfunction "~{INT0}/GPIO0/XSTBY_9")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "f9326524-084a-4660-8cca-f3bf815f2ca9")\r\n\t\t)\r\n\t\t(pad "10" smd oval\r\n\t\t\t(at 1.5 0.65)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "SCK")\r\n\t\t\t(pinfunction "SCK_10")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "9956d233-82a5-40a8-b21f-d97a071fce39")\r\n\t\t)\r\n\t\t(pad "11" smd oval\r\n\t\t\t(at 1.5 0)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "MOSI")\r\n\t\t\t(pinfunction "SDI_11")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "44f3b869-ad4f-43b5-a8fb-aa77493d3646")\r\n\t\t)\r\n\t\t(pad "12" smd oval\r\n\t\t\t(at 1.5 -0.65)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "MISO")\r\n\t\t\t(pinfunction "SDO_12")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "4a6a31c3-61b4-4788-b75b-43ce1a2f1732")\r\n\t\t)\r\n\t\t(pad "13" smd oval\r\n\t\t\t(at 1.5 -1.3)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t\t(pinfunction "~{CS}_13")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "ad0bc9dc-1ef0-4ed2-be63-e0a50a0b32f1")\r\n\t\t)\r\n\t\t(pad "14" smd oval\r\n\t\t\t(at 1.5 -1.95)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "VDD_14")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "16c98c3c-9983-4f39-9052-60bf745bc0cb")\r\n\t\t)\r\n\t\t(pad "15" smd rect\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 1.65 4.25)\r\n\t\t\t(layers "F.Cu" "F.Mask")\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "VSS_15")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "9865b2c4-cd27-48c9-ad92-3ed0be7ab017")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/DFN-14-1EP_3x4.5mm_P0.65mm.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "b2096ad8-34c1-4b05-b3eb-1b376530f869")\r\n\t\t(at 107.141362 78.965734 180)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C12"\r\n\t\t\t(at 3.241362 -0.534266 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "8d3537c6-5279-447a-8ddc-21ba04814f66")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "100n"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "8d9b3926-67a6-45f0-9f59-f18ca6e4c3d5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1b33110a-da9a-462e-9ad5-36e522bcf0eb")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ad2de0bc-259f-4102-9c6b-8f1f34b9144c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "af53d906-22f2-4717-9e4f-1dc28d48b8d5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d4b7b76f-24e6-4b2a-a93b-55ace58d0ff9/d127852c-14a1-4e1f-8108-0fd5a9f6cf65")\r\n\t\t(sheetname "/CM4/CAN1/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "3c0a34e6-3ca1-4ed5-ae1d-f8752508355b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "c7d92ba0-c246-4800-85dc-4c5176082836")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(st' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'art -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "3c024286-e689-46f8-8a79-4b629d9402d7")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "8e74ed75-7fce-467d-88fa-e6012ff54874")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b965aba0-ab7c-4631-b2e7-e2ad0c63ba33")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "630d4f76-6100-4527-8715-c30273a01314")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "e404c1c3-d243-44e7-bc6f-d4a05e602908")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "b9573cba-924a-422a-8c39-f8a054699f72")\r\n\t\t(at 145.4 97.81 90)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R10"\r\n\t\t\t(at 0.81 1.4 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "84164ae6-4be7-458c-8a8a-1be04e0661a7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "1k"\r\n\t\t\t(at 0 1.17 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d9d8d98a-0842-40cc-be73-4d19d26e6c73")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6467f85d-9388-4870-b996-a9c8b677ff19")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e5f9a71e-2a0e-4d9f-847d-76d9af87deba")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "60a70f8f-ca65-421e-9ff6-e1197d405f06")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "48246aa7-72f5-41b3-b63d-3d9a36ebe29f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ecc0570d-f70d-40b2-b1f5-3b0ada17ac84")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "62a06286-db84-491a-807e-6b27e4925a27")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ff724278-789b-4a59-9f5d-78bee1d189e8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "36df5263-1f09-4ac1-a30c-6cefdd7b8bed")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9f0b916f-df64-4253-9b61-b34485b93710")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "282b32da-0eee-4b01-9f2a-3978e6a16989")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "33f34b46-1ec3-4a09-80eb-e19c610cad24")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fed3826f-3ab9-498e-bf0f-977e27389acd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e467c9ca-4554-4374-9646-c3641af30e74")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e791ff0d-04ef-44ae-a965-5c40ed3c5295")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "bcb03122-0f9e-43d5-99bc-83f3eed2989c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "69863c04-d3f4-4d5f-b93a-4b9f2a32443f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2f7f7c6c-5050-4409-ace5-23ace4d50575")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/3ff4347b-b39a-4c62-b8d6-7c87863b8420")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "dc88f082-7893-4451-810d-339f5d53ac22")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "c8908b2b-2a32-4011-a1dd-f42b096cbc04")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "eb09e465-27a6-4c00-bd50-b738de99095a")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e1ed9a60-9b44-4dc2-9b59-ca47f32ffcac")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "f47462a9-d705-4960-906f-c1821341df36")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0 90)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J2-Pad13)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "80c1a967-7396-456a-97bd-5d550b724245")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0 90)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "b4d361d2-e71f-402e-a96b-dbf55eb29ea2")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "bcba64da-4efb-44df-916a-69aaa532d10b")\r\n\t\t(at 143.6 76 180)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b', https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R8"\r\n\t\t\t(at -2.2 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f540b936-7a9a-44e9-8623-375f809ea8ed")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "12k"\r\n\t\t\t(at 0 1.17 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "44a4a515-0a9f-4594-921c-dfcbf5edaca2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9405a5c6-454c-4e62-b094-142b2cfca4b4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3a84b8d9-a34f-4b46-ad1f-47db3ba8d55d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0286e28d-5060-46c7-ba1d-311c1ff9fbd0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "49a58833-a50c-46b7-b5dd-89fa5f28cd55")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7a63efb7-a5ef-42d3-af85-26c767954db2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "84f3fc96-7819-4779-b770-f8458d4f8a19")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "92bdd97c-0f4f-4986-b4d3-958ebd5a74cc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9d89b332-6eaa-45a8-8485-f6496f48301c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "95517c01-c18f-427d-af55-962a503603df")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b1af7b2c-3370-4aee-aa0f-e3f0ce86afdb")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5aec9acf-02b7-4931-97b3-ca1b2a20a758")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "61f2d1f6-cc99-400b-999a-d6fc1914d7f2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a3b7ce14-3232-49b6-ae07-4fe72280029f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4981b3a1-aa29-4e70-82e9-0780f73129dc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "dd384b0b-1999-43dd-a460-3884ae169b08")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ed24486e-7927-442f-a02a-186cac8f8f92")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fa79daf4-4986-40c3-a2b0-0db698000cfc")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/71c55f47-f0ca-4422-8c99-f561adfa34ee/9440c0ec-3dd0-4c08-8c7e-821aca96d585")\r\n\t\t(sheetname "/Motor Driver/")\r\n\t\t(sheetfile "motordriver.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "cdec0453-ca4b-4761-bb2d-0aa2ef10763b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "bbcf6803-5a0b-4f05-86db-f04b57b0c7a3")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "1f0c78fc-6557-4672-8d17-103d8f7ea020")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6f4b9e64-83cd-4f7b-9c5d-77cb00a072d8")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "87dd1342-921b-4bce-9f46-35b2d4c5a926")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0 180)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1061ce96-ab15-404c-9a7e-e832aaadb92d")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0 180)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U9-VREF)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "3ee0e86b-5492-44e4-b5fd-3c09820e1aee")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Connector_FFC-FPC:Amphenol_F32R-1A7x1-11022_1x22-1MP_P0.5mm_Horizontal"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "c6105ec4-c978-4f21-906b-9a6a0b4eca49")\r\n\t\t(at 100.1 137.9)\r\n\t\t(descr "Amphenol F32R/J FPC connector, 22 bottom-side contacts, 0.5mm pitch, SMT, https://cdn.amphenol-icc.com/media/wysiwyg/files/drawing/f32r-f32j.pdf")\r\n\t\t(tags "F32J")\r\n\t\t(property "Reference" "J7"\r\n\t\t\t(at 0 -4.65 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "8d81b72c-6299-4c68-ba1b-eb8e7c88278c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "~"\r\n\t\t\t(at 0 3.45 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5cf5666c-e679-4f6a-a46f-7a30afa89566")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "https://www.raspberrypi.com/documentation/accessories/camera.html"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a3463973-75fe-4303-80c0-0272cf228d98")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Raspberry pi camera connector, 22 pin, as on the pi zero series and the pi 5, reversed pin order"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "dd23751f-7156-4545-ba76-529ce48dee43")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "connector/Amphenol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "50959ee1-579e-480b-8991-1c7abfab371e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/337d7c74-bd9d-4c92-9640-070bf1fb6685/a4827f5d-9838-4f23-a6fc-da7e23cc6be4")\r\n\t\t(sheetname "/CM4/Cameras/")\r\n\t\t(sheetfile "cameras.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t(name "A")\r\n\t\t\t\t(pins "6" "5" "2" "3" "1" "22" "19" "16" "13" "10" "7" "4" "14" "15"\r\n\t\t\t\t\t"20" "21" "17" "18" "11" "12" "8" "9"\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -9.26 0.64)\r\n\t\t\t(end -8.81 0.64)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "c18193a7-e47c-47bd-9e6f-ede3496d1bee")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -9.26 2.36)\r\n\t\t\t(end -9.26 0.64)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "4a3c30bc-41ee-4ad9-b85d-9a7ba27d3238")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -8.81 -3.01)\r\n\t\t\t(end -6.66 -3.01)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b1a4c193-f4b4-4ceb-95c4-7bc09bd5a842")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -8.81 0.64)\r\n\t\t\t(end -8.81 -3.01)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "082930d4-dd91-40a1-8697-13aa34de12f2")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 5.66 -3.01)\r\n\t\t\t(end 8.81 -3.01)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "4b1993d0-4b68-456b-a7f3-4164b8f35497")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.81 -3.01)\r\n\t\t\t(end 8.81 0.64)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "39f802bb-2afc-4716-a753-ce9b84124175")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.81 0.64)\r\n\t\t\t(end 9.26 0.64)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "dde1fe92-8180-4850-8052-9360649665c1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 9.26 0.64)\r\n\t\t\t(end 9.26 2.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "4a853baf-e41e-4b36-926c-bf1b480fcc0f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 9.26 2.36)\r\n\t\t\t(end -9.26 2.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0d3894d7-395f-4d30-9ed0-4453c9aa88c9")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -5.72 -2.9) (xy -6.05 -2.66) (xy -6.05 -3.14)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "18b42ab1-8f22-4fe4-8c8c-3e8b5fdfd261")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -9.65 -3.95)\r\n\t\t\t(end 9.65 2.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "d665885d-a6ad-445a-a66d-79a85ffd1a1d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -9.15 0.75)\r\n\t\t\t(end -7.9 0.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d2719e3f-9404-4dff-8c49-1d30bc2f5465")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -9.15 2.25)\r\n\t\t\t(end -9.15 0.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "f7ce3287-30e4-4908-a1d4-fc0a032500c5")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.9 -2.25)\r\n\t\t\t(end 7.9 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d96e71d8-b2ee-4259-9859-0e22dfd472c4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.9 0.75)\r\n\t\t\t(end -7.9 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "74e9584d-85b5-4d13-a082-9e987f364b41")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -5.75 -2.25)\r\n\t\t\t(end -5.25 -1.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "f3356ecc-c0e9-49f8-b9da-bc0f2a9ac692")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -5.25 -1.25)\r\n\t\t\t(end -4.75 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "9f5ad84d-7529-4ed0-87b0-764164ab7b3b")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.9 -2.25)\r\n\t\t\t(end 7.9 0.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a4e2cb80-33f8-4200-a6cc-5a63871e0121")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.9 0.75)\r\n\t\t\t(end 9.15 0.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "aa94fc9a-0525-43dc-9cbd-3cf1f1b38812")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 9.15 0.75)\r\n\t\t\t(end 9.15 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "42bf9b8c-bb70-4566-abf7-317c1c7c6a27")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 9.15 2.25)\r\n\t\t\t(end -9.15 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "75a37ccf-602b-4532-a58a-b2315bbad94c")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "d82fcdf4-eaf0-4961-a67b-1584d2aec015")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -5.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "3V3_1")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "849f8b15-e167-495e-b5d7-a0fc94ce9c14")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at -4.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t\t(pinfunction "SDA_2")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "b11397cb-47dc-4ff1-95f2-0eb4a005da1d")\r\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at -4.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t\t(pinfunction "SCL_3")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "95952622-6e75-4276-8046-63dc1b2da6ca")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at -3.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0230caba-6d9e-4c37-a08e-1af7ac2125ac")\r\n\t\t)\r\n\t\t(pad "5" smd roundrect\r\n\t\t\t(at -3.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J7-CAM_IO1-Pad5)")\r\n\t\t\t(pinfunction "CAM_IO1_5")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "410b68f2-635c-4d7e-8afc-c4fa0a4c92a9")\r\n\t\t)\r\n\t\t(pad "6" smd roundrect\r\n\t\t\t(at -2.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t\t(pinfunction "CAM_IO0_6")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "18062297-a429-4af5-9cf3-c46e7c63e861")\r\n\t\t)\r\n\t\t(pad "7" smd roundrect\r\n\t\t\t(at -2.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_7")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "73db6caf-3adf-4223-affb-586ec7c454c2")\r\n\t\t)\r\n\t\t(pad "8" smd roundrect\r\n\t\t\t(at -1.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J7-CAM_D3+-Pad8)")\r\n\t\t\t(pinfunction "CAM_D3+_8")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "bdb4c294-d448-4e75-9a87-8c2b0b55e349")\r\n\t\t)\r\n\t\t(pad "9" smd roundrect\r\n\t\t\t(at -1.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J7-CAM_D3--Pad9)")\r\n\t\t\t(pinfunction "CAM_D3-_9")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "7466560e-0aac-49ea-a751-0c1c9f7a4165")\r\n\t\t)\r\n\t\t(pad "10" smd roundrect\r\n\t\t\t(at -0.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_10")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "282ee5d3-b5b3-4736-9d7f-42ed88ed0391")\r\n\t\t)\r\n\t\t(pad "11" smd roundrect\r\n\t\t\t(at -0.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J7-CAM_D2+-Pad11)")\r\n\t\t\t(pinfunction "CAM_D2+_11")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "e1fd71ec-0cd8-4c38-8067-59dc9b8a0997")\r\n\t\t)\r\n\t\t(pad "12" smd roundrect\r\n\t\t\t(at 0.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J7-CAM_D2--Pad12)")\r\n\t\t\t(pinfunction "CAM_D2-_12")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "2f352cd2-ab31-42c0-9dbe-9f5e170d0e16")\r\n\t\t)\r\n\t\t(pad "13" smd roundrect\r\n\t\t\t(at 0.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_13")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "e81e1559-2eac-4a68-a005-c69ea3cb1b62")\r\n\t\t)\r\n\t\t(pad "14" smd roundrect\r\n\t\t\t(at 1.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_C+")\r\n\t\t\t(pinfunction "CAM_C+_14")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "54a92842-714d-4cbb-bc16-c3eda' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'd410aaa")\r\n\t\t)\r\n\t\t(pad "15" smd roundrect\r\n\t\t\t(at 1.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_C-")\r\n\t\t\t(pinfunction "CAM_C-_15")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "5eac40a8-af2c-4256-8b7e-1ae1050e3913")\r\n\t\t)\r\n\t\t(pad "16" smd roundrect\r\n\t\t\t(at 2.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_16")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "60d4de22-fa60-4865-9230-9d749d94a040")\r\n\t\t)\r\n\t\t(pad "17" smd roundrect\r\n\t\t\t(at 2.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_D1+")\r\n\t\t\t(pinfunction "CAM_D1+_17")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "e1759b56-4a3a-4690-a5e8-afb07066ca95")\r\n\t\t)\r\n\t\t(pad "18" smd roundrect\r\n\t\t\t(at 3.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_D1-")\r\n\t\t\t(pinfunction "CAM_D1-_18")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "528c3139-a335-4712-afe8-60a441398e30")\r\n\t\t)\r\n\t\t(pad "19" smd roundrect\r\n\t\t\t(at 3.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_19")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "4ed75dae-9779-448d-a133-1701d7b785a6")\r\n\t\t)\r\n\t\t(pad "20" smd roundrect\r\n\t\t\t(at 4.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_D0+")\r\n\t\t\t(pinfunction "CAM_D0+_20")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "7b4e3928-6a0b-4dd9-bea7-62c00582520a")\r\n\t\t)\r\n\t\t(pad "21" smd roundrect\r\n\t\t\t(at 4.75 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM0_D0-")\r\n\t\t\t(pinfunction "CAM_D0-_21")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "09c4f50a-5b88-42b5-9f4a-ecb152b40373")\r\n\t\t)\r\n\t\t(pad "22" smd roundrect\r\n\t\t\t(at 5.25 -2.9)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_22")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "6e790fa9-f9c3-4016-a230-a543ef184738")\r\n\t\t)\r\n\t\t(pad "MP" smd custom\r\n\t\t\t(at -7.5 -1.775)\r\n\t\t\t(size 1 1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(options\r\n\t\t\t\t(clearance outline)\r\n\t\t\t\t(anchor circle)\r\n\t\t\t)\r\n\t\t\t(primitives\r\n\t\t\t\t(gr_poly\r\n\t\t\t\t\t(pts\r\n\t\t\t\t\t\t(xy 1.05 -0.975) (xy 1.05 0.975) (xy -0.25 0.975) (xy -0.25 0.625) (xy -1.05 0.625) (xy -1.05 -0.975)\r\n\t\t\t\t\t)\r\n\t\t\t\t\t(width 0)\r\n\t\t\t\t\t(fill yes)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t\t(uuid "8fbbd739-46c2-4a81-92e2-13d9f5927fba")\r\n\t\t)\r\n\t\t(pad "MP" smd custom\r\n\t\t\t(at 7.5 -1.775)\r\n\t\t\t(size 1 1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(options\r\n\t\t\t\t(clearance outline)\r\n\t\t\t\t(anchor circle)\r\n\t\t\t)\r\n\t\t\t(primitives\r\n\t\t\t\t(gr_poly\r\n\t\t\t\t\t(pts\r\n\t\t\t\t\t\t(xy -1.05 -0.975) (xy -1.05 0.975) (xy 0.25 0.975) (xy 0.25 0.625) (xy 1.05 0.625) (xy 1.05 -0.975)\r\n\t\t\t\t\t)\r\n\t\t\t\t\t(width 0)\r\n\t\t\t\t\t(fill yes)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t\t(uuid "6f835950-ee13-49be-b5ac-da7b811dceee")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Connector_FFC-FPC.3dshapes/Amphenol_F32R-1A7x1-11022_1x22-1MP_P0.5mm_Horizontal.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Connector_FFC-FPC:Amphenol_F32Q-1A7x1-11022_1x22-1MP_P0.5mm_Horizontal"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "db9b1514-cca1-4965-a5b6-721f6caf1869")\r\n\t\t(at 142.5 108.3 180)\r\n\t\t(descr "Amphenol F32Q/T FPC connector, 22 top-side contacts, 0.5mm pitch, SMT, https://cdn.amphenol-icc.com/media/wysiwyg/files/drawing/f32q-f32t.pdf")\r\n\t\t(tags "F32T")\r\n\t\t(property "Reference" "J1"\r\n\t\t\t(at -7.1 -4.7 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "f21f70fc-3024-4ef0-aa46-33af7b9f80cf")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "~"\r\n\t\t\t(at 0 3.45 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "cbcdd5c7-5996-48c9-8644-5836327a9b43")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "https://www.raspberrypi.com/documentation/accessories/camera.html"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "851478d4-6f8d-48db-aa91-2167ad1b4e94")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Raspberry pi camera connector, 22 pin, as on the pi zero series and the pi 5"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ff4bed20-016e-483f-a439-bf9025700ad4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "connector/Amphenol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "23c2e87f-8fbf-49b4-b09d-7fd2abba7047")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "cd080711-821c-47a2-b84b-f86c7d7743e9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "543cb449-e3eb-4938-bad4-611f307ed6d0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "13998c79-fb64-4b12-a08c-31256f7ef90e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f8d42cad-3557-4cd7-9c79-04bdbf73fa8a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d744cc2b-050f-45f9-850b-28c14179d4ff")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "bcb036c4-a040-488e-a186-e5b0b91a9837")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "00a7e82b-d1df-41d7-b133-029158f9fa5e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "07a84c31-715d-472b-adbe-4885457272c4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "173f7ce1-6043-4ef5-9f6c-65ad6d0e8699")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f1ee7b3d-141b-433f-a678-faaf34943182")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "85c570de-0a96-4d8c-a602-e116288d5620")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e1c1a634-81f8-46e3-9998-4c85625e9cc9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0df4c08f-180f-4616-a6a9-3a39536b23f8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "079796e4-0976-44db-b705-7ce8dae4d957")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/337d7c74-bd9d-4c92-9640-070bf1fb6685/0aa203ec-16bd-4097-8768-66f429b5ba49")\r\n\t\t(sheetname "/CM4/Cameras/")\r\n\t\t(sheetfile "came' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'ras.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "17" "18" "21" "20" "22" "1" "4" "7" "10" "19" "13" "16" "9" "8"\r\n\t\t\t\t\t"3" "2" "6" "5" "12" "11" "15" "14"\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start 9.26 2.36)\r\n\t\t\t(end -9.26 2.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "ac521c9c-0a4c-4a58-b278-3a149bcdcb10")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 9.26 0.64)\r\n\t\t\t(end 9.26 2.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b9938610-bf56-49ad-bb89-548c827b6437")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.81 0.64)\r\n\t\t\t(end 9.26 0.64)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "3c7d92c8-1acb-44b2-8d84-5bd41d041365")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.81 -3.01)\r\n\t\t\t(end 8.81 0.64)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1dc1a737-e640-4cf8-846c-6ea20d0336ea")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 5.66 -3.01)\r\n\t\t\t(end 8.81 -3.01)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "a40333e7-cbbb-4689-8f85-04cd2161dd2f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -8.81 0.64)\r\n\t\t\t(end -8.81 -3.01)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "cb3f329d-6dbc-401e-b2d4-cb54b3655883")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -8.81 -3.01)\r\n\t\t\t(end -6.66 -3.01)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "9f614194-a7d0-4fac-aa30-a609ae9fd8c1")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -9.26 2.36)\r\n\t\t\t(end -9.26 0.64)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "9cbb3a36-35fa-48a4-a1c7-e1f301a4c8b7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -9.26 0.64)\r\n\t\t\t(end -8.81 0.64)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "05f240cc-0882-429c-bad4-55b90d2d688c")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -5.72 -2.9) (xy -6.05 -2.66) (xy -6.05 -3.14)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "21f49fd7-e1bb-42d9-a1ee-9d60eb73000a")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -9.65 -3.95)\r\n\t\t\t(end 9.65 2.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "414f2db8-561d-4059-af07-870ea4ec7504")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 9.15 2.25)\r\n\t\t\t(end -9.15 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6b8c849b-b275-4410-b4a6-8b70b4c4754d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 9.15 0.75)\r\n\t\t\t(end 9.15 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "aaccb663-f4c0-47c8-ad5d-c8082a1186fa")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.9 0.75)\r\n\t\t\t(end 9.15 0.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "9d0d042c-8c76-4d43-9d5f-4bd27faadc98")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.9 -2.25)\r\n\t\t\t(end 7.9 0.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "131c5248-43d7-460d-a8d0-cd5e95476bba")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -5.25 -1.25)\r\n\t\t\t(end -4.75 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "fa409845-38ee-4b49-ab9d-f68381ac84a6")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -5.75 -2.25)\r\n\t\t\t(end -5.25 -1.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "3e12e5d5-fe03-45cb-9b8e-70b0ab1cd820")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.9 0.75)\r\n\t\t\t(end -7.9 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "962f4ab4-7277-4b28-bc43-9b61b8b089a9")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.9 -2.25)\r\n\t\t\t(end 7.9 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7f444835-dc4b-490c-8eac-cefaa767d51f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -9.15 2.25)\r\n\t\t\t(end -9.15 0.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "b11c9fef-83c7-4013-8c61-93c3daafc58a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -9.15 0.75)\r\n\t\t\t(end -7.9 0.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "13db62c1-21e5-4b47-98ad-ba5ad8bf15df")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ce96f94d-1af2-4c04-8fd6-d9edf862909f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -5.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_1")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "0caf5b7c-f123-40da-8449-48955d99a7fd")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at -4.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t\t(pinfunction "CAM_D0-_2")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "8ba6e0b2-f6e5-4fda-b88e-1c775be0222f")\r\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at -4.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t\t(pinfunction "CAM_D0+_3")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "0b930915-8b97-4a84-a641-e5cc7ac80453")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at -3.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f1e92376-e546-41bf-af1a-71b4a29452c4")\r\n\t\t)\r\n\t\t(pad "5" smd roundrect\r\n\t\t\t(at -3.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t\t(pinfunction "CAM_D1-_5")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "bce9f8c2-6a86-4f7d-9053-de2e16f33913")\r\n\t\t)\r\n\t\t(pad "6" smd roundrect\r\n\t\t\t(at -2.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t\t(pinfunction "CAM_D1+_6")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "5995584e-10f7-478a-8dab-2e2aa303801a")\r\n\t\t)\r\n\t\t(pad "7" smd roundrect\r\n\t\t\t(at -2.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_7")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d4c92a1d-562e-434e-bfbb-329827916b2a")\r\n\t\t)\r\n\t\t(pad "8" smd roundrect\r\n\t\t\t(at -1.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t\t(pinfunction "CAM_C-_8")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "31270e04-6c53-49c8-a167-3649d9b3da61")\r\n\t\t)\r\n\t\t(pad "9" smd roundrect\r\n\t\t\t(at -1.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t\t(pinfunction "CAM_C+_9")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "663e32a1-f575-4ad1-b43a-bf86167efd7e")\r\n\t\t)\r\n\t\t(pad "10" smd roundrect\r\n\t\t\t(at -0.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_10")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "5ea3bae9-6abc-4008-879a-a41357861aa3")\r\n\t\t)\r\n\t\t(pad "11" smd roundrect\r\n\t\t\t(at -0.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t\t(pinfunction "CAM_D2-_11")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "665c549d-77cb-4d28-a3c1-4052c365b650")\r\n\t\t)\r\n\t\t(pad "12" smd roundrect\r\n\t\t\t(at 0.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t\t(pinfunction "CAM_D2+_12")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "c324fa6c-b429-4bea-8f35-f0d07cf793bc")\r\n\t\t)\r\n\t\t(pad "13" smd roundrect\r\n\t\t\t(at 0.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_13")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "8591ab7b-2a31-435d-bf47-a7be850f92c2")\r\n\t\t)\r\n\t\t(pad "14" smd roundrect\r\n\t\t\t(at 1.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t\t(pinfunction "CAM_D3-_14")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "fa5ba6b5-fdcd-4614-828b-8fdb2bb707f3")\r\n\t\t)\r\n\t\t(pad "15" smd ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'roundrect\r\n\t\t\t(at 1.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t\t(pinfunction "CAM_D3+_15")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "c78c6d3d-42ec-4a6f-b038-db7886abeb5a")\r\n\t\t)\r\n\t\t(pad "16" smd roundrect\r\n\t\t\t(at 2.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_16")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c186295a-ea3f-4f6d-88be-8559272e3d33")\r\n\t\t)\r\n\t\t(pad "17" smd roundrect\r\n\t\t\t(at 2.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t\t(pinfunction "CAM_IO0_17")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "ee37e231-f7db-4556-8425-93acb6f081b6")\r\n\t\t)\r\n\t\t(pad "18" smd roundrect\r\n\t\t\t(at 3.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J1-CAM_IO1-Pad18)")\r\n\t\t\t(pinfunction "CAM_IO1_18")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "4735b9d2-a28d-4762-9733-59830148ffe5")\r\n\t\t)\r\n\t\t(pad "19" smd roundrect\r\n\t\t\t(at 3.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "GND_19")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d4a52257-68d0-4ce7-a19d-4d774dbb7126")\r\n\t\t)\r\n\t\t(pad "20" smd roundrect\r\n\t\t\t(at 4.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t\t(pinfunction "SCL_20")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "a9f14c85-c10f-4f28-af7c-03ded1ecdc2f")\r\n\t\t)\r\n\t\t(pad "21" smd roundrect\r\n\t\t\t(at 4.75 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t\t(pinfunction "SDA_21")\r\n\t\t\t(pintype "bidirectional")\r\n\t\t\t(uuid "4fc64cc9-8226-4bce-a59f-7413cdc646e9")\r\n\t\t)\r\n\t\t(pad "22" smd roundrect\r\n\t\t\t(at 5.25 -2.9 180)\r\n\t\t\t(size 0.3 1.1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "3V3_22")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "ab6f5cb4-8a02-405a-bb94-8db293dd6376")\r\n\t\t)\r\n\t\t(pad "MP" smd custom\r\n\t\t\t(at -7.5 -1.775 180)\r\n\t\t\t(size 1 1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(options\r\n\t\t\t\t(clearance outline)\r\n\t\t\t\t(anchor circle)\r\n\t\t\t)\r\n\t\t\t(primitives\r\n\t\t\t\t(gr_poly\r\n\t\t\t\t\t(pts\r\n\t\t\t\t\t\t(xy 1.05 -0.975) (xy 1.05 0.975) (xy -0.25 0.975) (xy -0.25 0.625) (xy -1.05 0.625) (xy -1.05 -0.975)\r\n\t\t\t\t\t)\r\n\t\t\t\t\t(width 0)\r\n\t\t\t\t\t(fill yes)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t\t(uuid "d7031cf8-909d-4eb4-885f-7b08e902388b")\r\n\t\t)\r\n\t\t(pad "MP" smd custom\r\n\t\t\t(at 7.5 -1.775 180)\r\n\t\t\t(size 1 1)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(options\r\n\t\t\t\t(clearance outline)\r\n\t\t\t\t(anchor circle)\r\n\t\t\t)\r\n\t\t\t(primitives\r\n\t\t\t\t(gr_poly\r\n\t\t\t\t\t(pts\r\n\t\t\t\t\t\t(xy -1.05 -0.975) (xy -1.05 0.975) (xy 0.25 0.975) (xy 0.25 0.625) (xy 1.05 0.625) (xy 1.05 -0.975)\r\n\t\t\t\t\t)\r\n\t\t\t\t\t(width 0)\r\n\t\t\t\t\t(fill yes)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t\t(uuid "1418ba69-7324-4266-ac78-0afdb4c16edb")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Connector_FFC-FPC.3dshapes/Amphenol_F32Q-1A7x1-11022_1x22-1MP_P0.5mm_Horizontal.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Package_DFN_QFN:DFN-14-1EP_3x4.5mm_P0.65mm_EP1.65x4.25mm"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "e2c0f4ef-445f-41c1-866c-8e1ebadb8a9e")\r\n\t\t(at 112.3125 77.46875)\r\n\t\t(descr "14-lead very thin plastic quad flat, 3.0x4.5mm size, 0.65mm pitch (http://ww1.microchip.com/downloads/en/DeviceDoc/14L_VDFN_4_5x3_0mm_JHA_C041198A.pdf)")\r\n\t\t(tags "VDFN DFN 0.65mm")\r\n\t\t(property "Reference" "U5"\r\n\t\t\t(at -1.4125 -3.36875 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "8673590c-76fd-4853-9f45-efe74899e7f0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "MCP2517FD-xJHA"\r\n\t\t\t(at 0 3.65 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e2acc3dd-2a04-4e58-bc1b-e7d390c3deeb")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "https://ww1.microchip.com/downloads/en/DeviceDoc/MCP2517FD-External-CAN-FD-Controller-with-SPI-Interface-20005688B.pdf"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "30c40d1f-1873-4d39-88d7-10a7e243ddaa")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "External CAN FD Controller with SPI Interface, VDFN-14"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b47162d5-43dc-4f08-a8d6-b8366461faf0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "775df97b-6017-4974-8123-c2df6afbd3cf")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f6e15196-b500-4414-ba56-136c641e0f41")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "64f257af-a417-4edf-9187-a32765957c52")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a2a97676-fe72-473a-9860-bb432a5baf69")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "abf3b73a-0e0e-4fc7-9397-6048484d72e2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "766f2e2f-ce86-4725-bada-214a67ffbd3e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8665a486-40f2-476b-b500-4ccc28ccb069")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "65a5cc8e-c1f1-41fb-bc86-1f749e490cf1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8fde8ddb-f131-495f-b4d6-75ff12684f53")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f35693f4-76ca-462a-9ca5-861404f90546")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ed161e57-a4b3-4228-86b9-edc12fab9df8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b176e695-3840-4bed-ab96-b1ff2e89c991")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ce418e9c-22ec-4bd9-a5b5-f2957409739c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "40ac985d-ecae-42d1-86fc-da43071b5afa")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "DFN*1EP*3x4.5mm*P0.65mm*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d4b7b76f-24e6-4b2a-a93b-55ace58d0ff9/4137ac3b-411f-48d3-9006-09e3c914ac58")\r\n\t\t(sheetname "/CM4/CAN1/")\r\n\t\t(sheetfile "can.kicad_sch"' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b')\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "11" "12" "13" "10" "5" "6" "14" "7" "15" "2" "1" "3" "4" "9" "8")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -1.5 2.36)\r\n\t\t\t(end 1.5 2.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "e5939b6c-3ef9-47f3-bdfa-5db5bfbb6e3f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.5 -2.36)\r\n\t\t\t(end -1.5 -2.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "db44d788-e744-4da8-8410-e66d22d7f4af")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy -2.07 -2.26) (xy -2.55 -2.26) (xy -2.07 -2.74) (xy -2.07 -2.26)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill yes)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "42e422d3-0a42-4296-a3d8-8439741e9b32")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.18 -2.5)\r\n\t\t\t(end -2.18 2.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "6c2ec96e-82ea-41c4-a48c-66f62cd73aed")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.18 2.5)\r\n\t\t\t(end 2.18 2.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "7406c1f1-2470-46bb-8177-b496279f4040")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.18 -2.5)\r\n\t\t\t(end -2.18 -2.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "2deaa368-0536-4426-a47f-7bfd48a9bc15")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 2.18 2.5)\r\n\t\t\t(end 2.18 -2.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "a8f691e5-9396-43ca-a653-a2a078cbc69f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.5 2.25)\r\n\t\t\t(end -1.5 -1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "ed15399d-943e-4626-8cf4-d27d6848dcc3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.5 2.25)\r\n\t\t\t(end 1.5 2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "13cde82b-78d5-4929-9d84-4fcf7da361d3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.75 -2.25)\r\n\t\t\t(end -1.5 -1.5)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "8cb5dd28-2484-4251-92ba-be87051e2459")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.5 -2.25)\r\n\t\t\t(end -0.75 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "bbaff111-fd0e-42d0-9439-8e57576df0ff")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.5 2.25)\r\n\t\t\t(end 1.5 -2.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "a3b105e9-2bdc-4120-a6c6-ded38b79387a")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "99f08a79-4b4d-43f2-bd25-297b61f9c532")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.8 0.8)\r\n\t\t\t\t\t(thickness 0.12)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at -0.4125 -1.59375)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "535992d5-53e8-477f-9757-c647ac034bc0")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at -0.4125 -0.53125)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "820bb039-1770-46b6-aa38-8b877c1618d5")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at -0.4125 0.53125)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "19029ae7-4739-403f-a4c3-cda7418d2f3f")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at -0.4125 1.59375)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "c315d489-cebf-4e94-9e98-e5b36b8e1774")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at 0.4125 -1.59375)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "a677d1d9-48b5-47f2-80b9-463ea77e5fe4")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at 0.4125 -0.53125)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "bcb39cd3-336a-4fb9-b25e-3c4719e63100")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at 0.4125 0.53125)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "4562b0e2-c0b9-4717-b2fb-9917d670986a")\r\n\t\t)\r\n\t\t(pad "" smd rect\r\n\t\t\t(at 0.4125 1.59375)\r\n\t\t\t(size 0.66 0.85)\r\n\t\t\t(layers "F.Paste")\r\n\t\t\t(uuid "2e14a709-1a2f-4eb5-9505-d9d6f2a1190a")\r\n\t\t)\r\n\t\t(pad "1" smd oval\r\n\t\t\t(at -1.5 -1.95)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(U5-TXCAN)")\r\n\t\t\t(pinfunction "TXCAN_1")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "830d2690-8146-48d4-a144-efc0995c8b54")\r\n\t\t)\r\n\t\t(pad "2" smd oval\r\n\t\t\t(at -1.5 -1.3)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(U5-RXCAN)")\r\n\t\t\t(pinfunction "RXCAN_2")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "1157de9f-65d5-430d-bbfe-649e2732a70f")\r\n\t\t)\r\n\t\t(pad "3" smd oval\r\n\t\t\t(at -1.5 -0.65)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "unconnected-(U5-CLKO{slash}SOF-Pad3)")\r\n\t\t\t(pinfunction "CLKO/SOF_3")\r\n\t\t\t(pintype "output+no_connect")\r\n\t\t\t(uuid "b5e8114b-1100-49b7-9086-c73883345c67")\r\n\t\t)\r\n\t\t(pad "4" smd oval\r\n\t\t\t(at -1.5 0)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "/CM4/CAN2_INT")\r\n\t\t\t(pinfunction "~{INT}_4")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "05df2cf1-dd36-46c0-b9c5-0880a51316af")\r\n\t\t)\r\n\t\t(pad "5" smd oval\r\n\t\t\t(at -1.5 0.65)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(U5-OSC2)")\r\n\t\t\t(pinfunction "OSC2_5")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "c88e5eaf-d490-4554-9a07-6e989a445cdc")\r\n\t\t)\r\n\t\t(pad "6" smd oval\r\n\t\t\t(at -1.5 1.3)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "Net-(U5-OSC1)")\r\n\t\t\t(pinfunction "OSC1_6")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "99b73cf9-4ea6-4056-a62a-37e54360a546")\r\n\t\t)\r\n\t\t(pad "7" smd oval\r\n\t\t\t(at -1.5 1.95)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "VSS_7")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "9d69e421-71be-4f87-a0fd-6fb2a141465e")\r\n\t\t)\r\n\t\t(pad "8" smd oval\r\n\t\t\t(at 1.5 1.95)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "unconnected-(U5-~{INT1}{slash}GPIO1-Pad8)")\r\n\t\t\t(pinfunction "~{INT1}/GPIO1_8")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "ee859b90-de04-4b1d-8112-e9a8681e58d0")\r\n\t\t)\r\n\t\t(pad "9" smd oval\r\n\t\t\t(at 1.5 1.3)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "unconnected-(U5-~{INT0}{slash}GPIO0{slash}XSTBY-Pad9)")\r\n\t\t\t(pinfunction "~{INT0}/GPIO0/XSTBY_9")\r\n\t\t\t(pintype "bidirectional+no_connect")\r\n\t\t\t(uuid "692c6625-c20d-4170-a734-377d358d7d1d")\r\n\t\t)\r\n\t\t(pad "10" smd oval\r\n\t\t\t(at 1.5 0.65)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "SCK")\r\n\t\t\t(pinfunction "SCK_10")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "56a903bb-2ee7-4c9f-88ca-0fe272d64879")\r\n\t\t)\r\n\t\t(pad "11" smd oval\r\n\t\t\t(at 1.5 0)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "MOSI")\r\n\t\t\t(pinfunction "SDI_11")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "f5ba6fd4-2cd1-4673-8249-d28bb35744d9")\r\n\t\t)\r\n\t\t(pad "12" smd oval\r\n\t\t\t(at 1.5 -0.65)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "MISO")\r\n\t\t\t(pinfunction "SDO_12")\r\n\t\t\t(pintype "output")\r\n\t\t\t(uuid "3201b77b-80e5-4540-b08b-f5d2ed7ac726")\r\n\t\t)\r\n\t\t(pad "13" smd oval\r\n\t\t\t(at 1.5 -1.3)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t\t(pinfunction "~{CS}_13")\r\n\t\t\t(pintype "input")\r\n\t\t\t(uuid "105bd354-462b-409a-aa40-f1a82345c2cc")\r\n\t\t)\r\n\t\t(pad "14" smd oval\r\n\t\t\t(at 1.5 -1.95)\r\n\t\t\t(size 0.85 0.35)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pinfunction "VDD_14")\r\n\t\t\t(pintype "power_in")\r\n\t\t\t(uuid "d2436650-7b8c-4eb7-a484-81fe36eab5a6")\r\n\t\t)\r\n\t\t(pad "15" smd rect\r\n\t\t\t(at 0 0)\r\n\t\t\t(size 1.65 4.25)\r\n\t\t\t(layers "F.Cu" "F.Mask")\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "VSS_15")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1c1263a4-8645-47c1-bc67-46ae2b09885e")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/DFN-14-1EP_3x4.5mm_P0.65mm.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Capacitor_SMD:C_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "e7b1365b-f4ac-42f3-a949-80b60c85e1b8")\r\n\t\t(at 113.3 74.5 180)\r\n\t\t(descr "Capacitor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "capacitor")\r\n\t\t(property "Reference" "C10"\r\n\t\t\t(at -1.9 1.2 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "9e3f5b07-9a56-4bf6-955c-25cf2e9ce424")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(p' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'roperty "Value" "100n"\r\n\t\t\t(at 0 1.16 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "9d813a35-0186-4077-b9a6-2ae946ecae1c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1ae46ee7-91b2-4ddf-a850-bb3452bd9e35")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "capacitor, small US symbol"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "4d5fec4c-0f5e-4afe-a8dc-44540d2613c2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "c972e3eb-46ea-477e-b69c-c37433b2a0f8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "C_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/d4b7b76f-24e6-4b2a-a93b-55ace58d0ff9/aabbdee2-5804-4c82-827f-46cf85e2b90e")\r\n\t\t(sheetname "/CM4/CAN1/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 0.36)\r\n\t\t\t(end 0.107836 0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "0d1016ea-6552-459d-8027-e2d2b745a4f3")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.107836 -0.36)\r\n\t\t\t(end 0.107836 -0.36)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7c947ca3-81f5-4d60-919b-9aa5fe91d40d")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.91 -0.46)\r\n\t\t\t(end 0.91 0.46)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "328f2e36-a53e-429d-a07e-4b42b73d6ea9")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.5 -0.25)\r\n\t\t\t(end 0.5 0.25)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "03599a05-a2cb-4f8e-8383-517b9a5ed288")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "65d49827-8856-4953-94c9-1a45fb481218")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.25 0.25)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "b95049c8-dfbb-42a3-a321-0725924ba890")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.48 0 180)\r\n\t\t\t(size 0.56 0.62)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "254d7d01-9652-4ef0-9631-6cbed2cc6aea")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Crystal:Crystal_SMD_SeikoEpson_TSX3225-4Pin_3.2x2.5mm"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "e9f08a15-baaf-4d8f-960e-d01fc0050d90")\r\n\t\t(at 91.83 82.4 -90)\r\n\t\t(descr "Epson Toyocom TSX-3225, crystal, 3.2x2.5mm package, SMD, http://www.mouser.com/ds/2/137/1721499-465440.pdf")\r\n\t\t(property "Reference" "Y1"\r\n\t\t\t(at 0 -2.45 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "7084f2ba-9c13-43e3-98a5-0b011a6e154a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "20 MHz"\r\n\t\t\t(at 0 2.45 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "75a41167-1c4c-4a72-b7a8-af3cb90305de")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3548399f-b3d8-4cbd-ada6-74f079507837")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Four pin crystal, GND on pins 2 and 4"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "14049545-a105-482a-9a38-3499f8b79cb9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "crystal_resonator_oscillator"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "b67aad93-f9bc-4d2c-9ae2-9d978c72d3ab")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "bdfe2f62-9757-4f6c-a267-6016a8c63c95")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "debe01da-34d9-4265-8ff1-adf59ab03c63")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "681ba54b-4086-4a51-a7a4-5fad8ed1336a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "cbac86dc-83dc-4874-9802-3ac324cccf48")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5a5c52bf-9ea1-4b17-9fe0-0b813e808061")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3ce7913f-fe7e-419b-8a7b-5565dd51949d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d7ba0617-4436-4523-bbd7-d47807c5704b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f215d806-33f6-4864-b11b-0af20fa505ac")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "beacbb62-30ab-4022-8647-410a8e827b99")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9fd17f0a-baea-434b-820d-5462d5cc3fad")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e6cc5be7-9739-45c8-9cae-c57d107a0d28")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "0d736344-e6c6-41c4-830f-ca5146b37be7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "f4912842-1c75-41bb-98aa-0fa0ecee4a22")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "01a74801-96e3-4025-9755-5bd9532a1c24")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "Crystal*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/e8057e65-de86-4674-be4a-6a6d58efe02c/ab25e74f-fc8e-4724-9fc5-7e9c6f026269")\r\n\t\t(sheetname "/CM4/CAN/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2" "4" "3")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 1.635)\r\n\t\t\t(end 2.06 1.635)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "509f5618-7d94-4c51-bf74-f732a9b261fa")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -2.06 -1.635)\r\n\t\t\t(end -2.06 1.635)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "1dfa9344-3e55-4485-85e0-6109ce3f8ce' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'2")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -2.1 -1.75)\r\n\t\t\t(end 2.1 1.75)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "22ed8d6d-4665-4ce1-b810-0e85f4749734")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy 1.6 -1.25) (xy 1.6 1.25) (xy -0.975 1.25) (xy -1.6 0.625) (xy -1.6 -1.25)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e509d936-c1f2-40da-b57f-c92fbce281fe")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "af45bf3f-f51d-4110-a5b5-9f7274dbea02")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.8 0.8)\r\n\t\t\t\t\t(thickness 0.12)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -1.1 0.8 270)\r\n\t\t\t(size 1.4 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.217391)\r\n\t\t\t(net "Net-(U2-OSC2)")\r\n\t\t\t(pinfunction "1_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d81dfa7c-eafd-4eea-86ab-f5d7af785ab6")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 1.1 0.8 270)\r\n\t\t\t(size 1.4 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.217391)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "G_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0a3e698d-6f03-4eae-9452-d1991b897f27")\r\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at 1.1 -0.8 270)\r\n\t\t\t(size 1.4 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.217391)\r\n\t\t\t(net "Net-(U2-OSC1)")\r\n\t\t\t(pinfunction "3_3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "8ef73aef-f358-41f8-b532-5ffa29d48fd8")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at -1.1 -0.8 270)\r\n\t\t\t(size 1.4 1.15)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.217391)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "G_4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f365993f-7656-4828-9a14-69b5bed158cb")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Crystal.3dshapes/Crystal_SMD_SeikoEpson_TSX3225-4Pin_3.2x2.5mm.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "ec75af34-66bc-4fd5-be5e-03a4304458d0")\r\n\t\t(at 81.1 82.775 180)\r\n\t\t(descr "Through hole straight pin header, 1x02, 2.54mm pitch, single row")\r\n\t\t(tags "Through hole pin header THT 1x02 2.54mm single row")\r\n\t\t(property "Reference" "JP1"\r\n\t\t\t(at 0 -2.38 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "156189fa-2781-4a08-878e-2cd99ee3a6b4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "Jumper_2_Open"\r\n\t\t\t(at 0 4.92 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "548808dd-c661-445c-8e21-683bce33ecc6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "603a4be7-c78d-4104-98da-d5b747e87c7a")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Jumper, 2-pole, open"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a1a316fc-0a0e-4ac3-9522-4ef939b48415")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "connector/pin_header_socket"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "049ccc56-a8de-4f55-a889-932faa24e39d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "Jumper* TestPoint*2Pads* TestPoint*Bridge*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/ba42d4e0-5e46-42d9-bd18-f3a184f3ea55")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr through_hole)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start 1.38 1.27)\r\n\t\t\t(end 1.38 3.92)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "29636486-5603-479d-a8aa-f4cf04c8e935")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 3.92)\r\n\t\t\t(end 1.38 3.92)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "779e56dd-9082-4c85-9aa0-7fa9bc291f47")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 1.27)\r\n\t\t\t(end 1.38 1.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "77389fe1-6f5f-4534-800d-a8bf739b1c4d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 1.27)\r\n\t\t\t(end -1.38 3.92)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "979f8448-731f-4939-8ce0-a7c42097f65f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 0)\r\n\t\t\t(end -1.38 -1.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "02c51a93-6eed-46dd-a094-30224572d80d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.38 -1.38)\r\n\t\t\t(end 0 -1.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b73ef048-8dc5-4c0d-b681-254275f46d27")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -1.77 -1.77)\r\n\t\t\t(end 1.77 4.32)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "88583124-0955-4e60-a883-455e0ad0d123")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.27 3.81)\r\n\t\t\t(end -1.27 3.81)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e187aac2-083e-491c-afdd-0f7c7dece165")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 1.27 -1.27)\r\n\t\t\t(end 1.27 3.81)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "e46878c3-cbd3-4d6d-a44d-ddb4a7fbf8df")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.635 -1.27)\r\n\t\t\t(end 1.27 -1.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "6ec8cc51-6d6b-4c15-940b-f3c8eac2feca")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.27 3.81)\r\n\t\t\t(end -1.27 -0.635)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1f27ea62-12ab-4905-a2ed-91cc12d7c3ee")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -1.27 -0.635)\r\n\t\t\t(end -0.635 -1.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "4c9a6b71-024f-4b73-a13b-8864dddcfbe3")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 1.27 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "5a0b54af-8dff-4c7b-a98c-b2921c96a466")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" thru_hole rect\r\n\t\t\t(at 0 0 180)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "A_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0ff6c68b-da3b-4b83-9c8f-16dfe055e14b")\r\n\t\t)\r\n\t\t(pad "2" thru_hole circle\r\n\t\t\t(at 0 2.54 180)\r\n\t\t\t(size 1.7 1.7)\r\n\t\t\t(drill 1)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(JP1-B)")\r\n\t\t\t(pinfunction "B_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1cf26ba1-6a3a-4652-b561-58769f82a254")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x02_P2.54mm_Vertical.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "f098d24a-d69e-429d-852a-4f3be68d5d5e")\r\n\t\t(at 88.335 73.265 -90)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R17"\r\n\t\t\t(at -0.665 1.135 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "56d948b8-c577-4873-8f78-c3427d877f85")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "51k"\r\n\t\t\t(at 0 1.17 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "f59c886c-d14c-4d58-aa02-34eb6ee4d6b7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "94ad5da4-d1e8-45e4-82f5-cd44a82a1e7b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "dee8951e-7637-4afa-a747-d57b8dfdad6e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'hide yes)\r\n\t\t\t(uuid "f2d4af74-688e-4340-9b6d-83b84de89ffd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "LCSC" "C25794"\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8b3cdc4d-1722-4b4a-b04b-83dfad2c0927")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KLC_S3.3" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "35d6d903-d9f2-4221-be33-fa9c4d51ebcd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KLC_S4.1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5f1d29a7-bb51-4939-8c50-79d73615dc1e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "61436cd8-282c-47ec-bb9e-2520e941f79f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d6a77013-d94d-4887-b697-9abf92839fe4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3d85e478-13a4-41b8-bf1b-bdb7c4732603")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a27978b1-7917-4c72-8f0f-3934130ec70e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2fd547fe-3d83-4a94-b397-38e3c28ebf20")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "dd1dde81-e8fd-4f6c-bf83-fc3152d31ac6")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "61e667e6-3565-4fac-919f-0a02d29c0943")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "caa33259-093a-4763-9b89-ed8108f82887")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8f4b8226-efb0-43c4-aa2e-dd1cad3026d7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "283dbed4-a5bf-4bb0-9178-aa2e73471445")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ac028eee-af6d-4165-ad15-89ff4073fba2")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8a70c369-9327-4e7c-b0bc-4851dca86ec8")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "eb3c289a-d4f6-42bb-b9d2-e6643dcfdf74")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 270)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ff77e305-1cbe-4a14-858a-75271f07333d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/e8057e65-de86-4674-be4a-6a6d58efe02c/5b32f805-45bb-4fdb-b494-ef9166765172")\r\n\t\t(sheetname "/CM4/CAN/")\r\n\t\t(sheetfile "can.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "664cbd65-37b0-4b17-b004-18b4e16d51f6")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "b385da36-5774-4bcd-98e4-a771445944dc")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "1636a28b-33ee-4c8a-8956-b6031e60d3d5")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "4c2f0ce5-9211-481b-ab91-978d6d857940")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "95ab6821-6180-4b2b-a63e-000a5e333cda")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0 270)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(U4-Rs)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "57b5a9fb-eef0-4852-8bbb-762a4e6e3c6a")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0 270)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "82dcc5a6-c96a-4daf-94c7-8d67a10856e6")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Resistor_SMD:R_0402_1005Metric"\r\n\t\t(layer "F.Cu")\r\n\t\t(uuid "fe79236b-53de-4270-8fd3-a4033bd0c0d0")\r\n\t\t(at 145.2 88.81 90)\r\n\t\t(descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC-7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf)")\r\n\t\t(tags "resistor")\r\n\t\t(property "Reference" "R11"\r\n\t\t\t(at -0.39 1.4 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "e941e0fe-946f-43ac-a5be-4048d2a9f234")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "1k"\r\n\t\t\t(at 0 1.17 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "7c795d20-4957-4e12-a79d-780fa699807e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d20370fa-37cf-4af8-bc80-0b60254f4dac")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Resistor, small US symbol"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "17042f2c-e663-48f5-9d3d-0871412007ee")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "SMD_2terminal_chip_molded"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "96938a29-f514-408b-adec-962609b25247")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ab1d49cc-5624-4959-93b1-3577bc2c3610")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "1d1ebb37-4db1-4c55-b7bc-4273569c38a7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "64c0b536-1af5-413b-9132-17cb6e256935")\r\n\t\t\t(effects\r\n\t\t\t\t(fon' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b't\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "12f6ea8a-d29d-40bc-b266-7cdf5d551067")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "d57a2e40-98bc-4abd-84a3-8f74ab0e20f5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3a4563a5-218d-422a-8986-3c2a9563e401")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "2bb9a4ba-3f5e-4566-8afb-e96bd06f9dee")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a361df09-8a46-4765-833d-b6569c91e2fd")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "6d6d73b1-33b3-4384-acfb-9f706ea52d58")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "27649a3f-863c-43eb-8bd8-a2cf99d9f8d9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ffc852eb-7509-473a-aa3e-7156f0d1b28d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7b59df40-43de-4013-8d2d-dd959880f0f9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "978083e2-f2a6-4458-8b3b-edfaa9d717c7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "466618d6-e455-4937-9c93-2ef23af67cf1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "R_*")\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/1d49c506-4f89-4fbe-8215-1f8b29142000")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "2")\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 -0.38)\r\n\t\t\t(end 0.153641 -0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "bea9b3ff-e4b5-4e78-b795-2fb7da073fb6")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -0.153641 0.38)\r\n\t\t\t(end 0.153641 0.38)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "F.SilkS")\r\n\t\t\t(uuid "2ae43228-3e0f-491e-9d2d-217ba036ef73")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.93 -0.47)\r\n\t\t\t(end 0.93 0.47)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.CrtYd")\r\n\t\t\t(uuid "607ac816-98ef-4e10-a579-7044da123d34")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -0.525 -0.27)\r\n\t\t\t(end 0.525 0.27)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "0fefc4c9-77c2-47da-aaeb-a10e439c76dd")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(layer "F.Fab")\r\n\t\t\t(uuid "1d0eca1a-f5c7-4147-8da4-b46220ecf980")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 0.26 0.26)\r\n\t\t\t\t\t(thickness 0.04)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -0.51 0 90)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+3V3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f6f861a0-d932-420e-8439-54b6680844d6")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at 0.51 0 90)\r\n\t\t\t(size 0.54 0.64)\r\n\t\t\t(layers "F.Cu" "F.Mask" "F.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "Net-(J2-Pad11)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f63047ff-8778-4075-a99e-36951972e724")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0402_1005Metric.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "Connector_Samtec_EdgeRate:Samtec_ERF8-020-XX.X-DV_2x20_P0.8mm_Socket"\r\n\t\t(layer "B.Cu")\r\n\t\t(uuid "c8674d49-1910-4d2e-8cba-564ee132c6d0")\r\n\t\t(at 99.25 65.35)\r\n\t\t(descr "0.80 mm Edge Rate Rugged High Speed Socket (source: https://suddendocs.samtec.com/prints/erf8-xxx-xx.x-x-dv-xxxx-tr-footprint.pdf)")\r\n\t\t(tags "conn samtec edge-rate socket")\r\n\t\t(property "Reference" "J10"\r\n\t\t\t(at 0 4 0)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "7ebb9837-3487-479f-92fa-cb3f10994c32")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "Conn_02x20_Odd_Even"\r\n\t\t\t(at 0 -4 0)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "4bf29947-aa49-4a73-8a3f-375da0abd5b5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "fd3d3c4f-4909-4911-82f2-846a0fdc4b3d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "Generic connector, double row, 02x20, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/)"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "ad195074-feb8-47d6-8776-a084bf26eeb1")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1.27 1.27)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "KiLib_Generator" "connector/generator"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "a57ca9e2-9868-4f1e-8170-13da3ab146e9")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Availability" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "36223deb-7f26-44d2-94dd-0ab1817f103e")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Check_prices" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "987405b7-7ea2-4d80-a2cd-066845613a2f")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description_1" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "38f6e9fb-cec9-496b-9b31-51fcfd136fe4")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "eef15979-b39d-41ae-bb90-52645ac61eb7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MANUFACTURER_PART_NUMBER" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7f388f80-d738-47e9-99b3-adbe7d0c8634")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MAXIMUM_PACKAGE_HEIGHT" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7f6078fa-9389-419a-9361-5b7b0e7ddaf0")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MF" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7d2778a3-2d13-452f-811b-b25478bb081b")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MFR_NAME" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "18e89bc8-3233-4cc3-8ce8-c6ae5c7e426c")\r' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "MP" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "e8f7f3a6-9cba-4a2b-86ed-402d82a0c507")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "PARTREV" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "7eb448aa-f540-42d9-8a37-2ef3b2b9c960")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Package" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "3eeca73a-d401-4374-b505-79ee1fe750db")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Price" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "8790bf08-f786-4aa0-a22f-8317cc7abee5")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "STANDARD" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "328974df-78f6-476c-bc63-abb6d7c8da41")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "SnapEDA_Link" ""\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "5019c76d-2a5e-46a2-8986-6756fb8028e7")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property ki_fp_filters "Connector*:*_2x??_*")\r\n\t\t(path "/6593efff-3708-47ce-9016-aba84989b608/39546a5f-88f9-4b95-a884-1c228458f851")\r\n\t\t(sheetname "/Inter Board Connector/")\r\n\t\t(sheetfile "inter_board_connector.kicad_sch")\r\n\t\t(units\r\n\t\t\t(unit\r\n\t\t\t\t(name "A")\r\n\t\t\t\t(pins "1" "3" "5" "7" "9" "11" "13" "15" "17" "19" "21" "23" "25" "27"\r\n\t\t\t\t\t"29" "31" "33" "35" "37" "39" "2" "4" "6" "8" "10" "12" "14" "16" "18"\r\n\t\t\t\t\t"20" "22" "24" "26" "28" "30" "32" "34" "36" "38" "40"\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -11.11 -1.245563)\r\n\t\t\t(end -11.11 2.91)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "82f05835-a260-49c3-bb0c-744133bf45ae")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -11.11 2.91)\r\n\t\t\t(end 11.11 2.91)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "29863ecc-9140-4d35-8011-6032173f7d32")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -9.445563 -2.91)\r\n\t\t\t(end -11.11 -1.245563)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "d551ea25-0fc9-4603-82e6-a94bed362a7c")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.816506 -3.525)\r\n\t\t\t(end -7.6 -3.15)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "35d133b5-aec7-484c-8eb3-142aca23056f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.6 -3.15)\r\n\t\t\t(end -7.383494 -3.525)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "b5188df3-b408-46fa-8b6b-6e14157e8aa8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.383494 -3.525)\r\n\t\t\t(end -7.816506 -3.525)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "d6dc779a-554c-4a8c-ae11-24f7755d9074")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 11.11 -2.91)\r\n\t\t\t(end -9.445563 -2.91)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "02ba3a00-681b-45a9-a1dc-e0fa51c787b4")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 11.11 2.91)\r\n\t\t\t(end 11.11 -2.91)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.12)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "ba935eea-756c-4a68-8b32-c7c690d5c5ba")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -11.5 3.3)\r\n\t\t\t(end 11.5 -3.3)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "B.CrtYd")\r\n\t\t\t(uuid "fdb64ce1-31b5-498e-9ad1-e10d05fdbc3d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -11 -1.2)\r\n\t\t\t(end -11 2.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "d0ec9540-1b6e-418c-99dc-6cac182acf3a")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -11 2.8)\r\n\t\t\t(end 11 2.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "17eff0b2-b8bb-4fbb-86ec-f204a822b888")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -9.4 -2.8)\r\n\t\t\t(end -11 -1.2)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "3892bc9f-047f-4112-8d21-299138811798")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -8 -2.8)\r\n\t\t\t(end -7.6 -2.16)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "840dc596-2ce7-4cb5-8d92-70e35a9c58e7")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.6 -2.16)\r\n\t\t\t(end -7.2 -2.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "705a7ee7-8f4a-4327-ab78-05f0515b9f0f")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 11 -2.8)\r\n\t\t\t(end -9.4 -2.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "e28cb0b1-ce4a-49cf-a97d-3fc9ac6ccdcf")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 11 2.8)\r\n\t\t\t(end 11 -2.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "c09f29d1-c0c9-48a0-873f-7bac50a1bdb5")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 0 0)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "657e210d-9964-4c98-8e6d-2b5a2aa96a76")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at -9.4 1.5)\r\n\t\t\t(size 1.45 1.45)\r\n\t\t\t(drill 1.45)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "ee0f7b0d-9cee-4ef9-9c12-4a4708cd4be3")\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at 9.4 1.5)\r\n\t\t\t(size 1.45 1.45)\r\n\t\t\t(drill 1.45)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(uuid "2253ccdf-8703-4c8e-a25f-250b07c661c6")\r\n\t\t)\r\n\t\t(pad "1" smd roundrect\r\n\t\t\t(at -7.6 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_1_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "46700ada-3ee3-4b1d-b615-10efb9ea7d4d")\r\n\t\t)\r\n\t\t(pad "2" smd roundrect\r\n\t\t\t(at -7.6 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_2_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "7e1783e9-3cb7-411a-8617-06b08bca7ab1")\r\n\t\t)\r\n\t\t(pad "3" smd roundrect\r\n\t\t\t(at -6.8 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_1_VOUT")\r\n\t\t\t(pinfunction "Pin_3_3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "178be037-171b-436c-a0d9-f7a02194750c")\r\n\t\t)\r\n\t\t(pad "4" smd roundrect\r\n\t\t\t(at -6.8 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_1_VOUT")\r\n\t\t\t(pinfunction "Pin_4_4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "ceeb42e9-6e61-4c08-a166-378eab1282b6")\r\n\t\t)\r\n\t\t(pad "5" smd roundrect\r\n\t\t\t(at -6 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_2_VOUT")\r\n\t\t\t(pinfunction "Pin_5_5")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "91818ea0-95a8-4fa4-8fb4-06310c889569")\r\n\t\t)\r\n\t\t(pad "6" smd roundrect\r\n\t\t\t(at -6 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_2_VOUT")\r\n\t\t\t(pinfunction "Pin_6_6")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f95d3a95-adb2-4694-bae2-1c7495ecbb0d")\r\n\t\t)\r\n\t\t(pad "7" smd roundrect\r\n\t\t\t(at -5.2 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_3_VOUT")\r\n\t\t\t(pinfunction "Pin_7_7")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "ffd64aa6-8a6d-44ea-a2c0-488ef7c19ccc")\r\n\t\t)\r\n\t\t(pad "8" smd roundrect\r\n\t\t\t(at -5.2 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_3_VOUT")\r\n\t\t\t(pinfunction "Pin_8_8")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f62ffd9f-2c87-44fa-b38b-50e2bd6f4385")\r\n\t\t)\r\n\t\t(pad "9" smd roundrect\r\n\t\t\t(at -4.4 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_4_VOUT")\r\n\t\t\t(pinfunction "Pin_9_9")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "be0781c6-675d-4ed1-8d8b-afd5' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'2d8ee294")\r\n\t\t)\r\n\t\t(pad "10" smd roundrect\r\n\t\t\t(at -4.4 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_4_VOUT")\r\n\t\t\t(pinfunction "Pin_10_10")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "9ba7c639-d385-496d-a2a6-e235c28604fd")\r\n\t\t)\r\n\t\t(pad "11" smd roundrect\r\n\t\t\t(at -3.6 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_5_VOUT")\r\n\t\t\t(pinfunction "Pin_11_11")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "2bf13efa-dcde-49e0-8119-40893d4f4bb5")\r\n\t\t)\r\n\t\t(pad "12" smd roundrect\r\n\t\t\t(at -3.6 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_5_VOUT")\r\n\t\t\t(pinfunction "Pin_12_12")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "20d38ba8-4976-4b4e-a50a-1779b19c1d13")\r\n\t\t)\r\n\t\t(pad "13" smd roundrect\r\n\t\t\t(at -2.8 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_6_VOUT")\r\n\t\t\t(pinfunction "Pin_13_13")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "8883c80a-c22c-42f3-ad09-776ae48c7bbf")\r\n\t\t)\r\n\t\t(pad "14" smd roundrect\r\n\t\t\t(at -2.8 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_6_VOUT")\r\n\t\t\t(pinfunction "Pin_14_14")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1bed8728-34fd-45cd-982c-746d4894e824")\r\n\t\t)\r\n\t\t(pad "15" smd roundrect\r\n\t\t\t(at -2 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pinfunction "Pin_15_15")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "6d4a8d7b-ddac-4ddf-8455-ca38385d05f8")\r\n\t\t)\r\n\t\t(pad "16" smd roundrect\r\n\t\t\t(at -2 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "+5V")\r\n\t\t\t(pinfunction "Pin_16_16")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "0993a7a2-948d-44b5-8e3d-a1b2b4fd7a35")\r\n\t\t)\r\n\t\t(pad "17" smd roundrect\r\n\t\t\t(at -1.2 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t\t(pinfunction "Pin_17_17")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "6bf5d64f-55f1-49b6-837a-d6a75d9027d5")\r\n\t\t)\r\n\t\t(pad "18" smd roundrect\r\n\t\t\t(at -1.2 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t\t(pinfunction "Pin_18_18")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c3ed1784-b66a-4a7c-86d9-a3506a610694")\r\n\t\t)\r\n\t\t(pad "19" smd roundrect\r\n\t\t\t(at -0.4 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_19_19")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "74121d89-90af-4108-828c-72d5f9a6acbc")\r\n\t\t)\r\n\t\t(pad "20" smd roundrect\r\n\t\t\t(at -0.4 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_20_20")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "2a44667c-d1fd-4595-b0b0-aa3818d85e9d")\r\n\t\t)\r\n\t\t(pad "21" smd roundrect\r\n\t\t\t(at 0.4 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/EPS_PGOOD")\r\n\t\t\t(pinfunction "Pin_21_21")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "ad2ba2af-82e3-4ba0-aa04-edec41537eec")\r\n\t\t)\r\n\t\t(pad "22" smd roundrect\r\n\t\t\t(at 0.4 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN1+")\r\n\t\t\t(pinfunction "Pin_22_22")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "6583bec2-d498-4664-873c-ccd030ea19cc")\r\n\t\t)\r\n\t\t(pad "23" smd roundrect\r\n\t\t\t(at 1.2 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/EPS_OBC_RESET")\r\n\t\t\t(pinfunction "Pin_23_23")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "5e0491af-e728-4fee-a8d2-8668c54aa5df")\r\n\t\t)\r\n\t\t(pad "24" smd roundrect\r\n\t\t\t(at 1.2 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN1-")\r\n\t\t\t(pinfunction "Pin_24_24")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "44ca9d9b-580d-43d4-a86e-cb001a97d11c")\r\n\t\t)\r\n\t\t(pad "25" smd roundrect\r\n\t\t\t(at 2 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/OBC_EPS_RESET")\r\n\t\t\t(pinfunction "Pin_25_25")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "dad1183a-6adf-45e5-9a53-ee57167c6158")\r\n\t\t)\r\n\t\t(pad "26" smd roundrect\r\n\t\t\t(at 2 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN2+")\r\n\t\t\t(pinfunction "Pin_26_26")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d1880de2-e55d-4c5e-b8c3-c217d3be4cbf")\r\n\t\t)\r\n\t\t(pad "27" smd roundrect\r\n\t\t\t(at 2.8 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/Inter Board Connector/OBC_HEARTBEAT")\r\n\t\t\t(pinfunction "Pin_27_27")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "20b0202b-950a-4b7a-b1f2-0a6111e7b453")\r\n\t\t)\r\n\t\t(pad "28" smd roundrect\r\n\t\t\t(at 2.8 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/CAN2-")\r\n\t\t\t(pinfunction "Pin_28_28")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "fdafef7c-04d9-4e83-b3e6-b335950d8653")\r\n\t\t)\r\n\t\t(pad "29" smd roundrect\r\n\t\t\t(at 3.6 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J10-Pin_29-Pad29)")\r\n\t\t\t(pinfunction "Pin_29_29")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "3995b2e3-7d4f-45fd-8c35-7bc6e96e001c")\r\n\t\t)\r\n\t\t(pad "30" smd roundrect\r\n\t\t\t(at 3.6 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J10-Pin_30-Pad30)")\r\n\t\t\t(pinfunction "Pin_30_30")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "93d9d659-db13-4e55-915b-bdbad0b57917")\r\n\t\t)\r\n\t\t(pad "31" smd roundrect\r\n\t\t\t(at 4.4 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J10-Pin_31-Pad31)")\r\n\t\t\t(pinfunction "Pin_31_31")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "730ed690-fd84-4ef0-959d-044cdff6175e")\r\n\t\t)\r\n\t\t(pad "32" smd roundrect\r\n\t\t\t(at 4.4 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J10-Pin_32-Pad32)")\r\n\t\t\t(pinfunction "Pin_32_32")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "8c419674-1c5b-46f9-a8f7-702259f81130")\r\n\t\t)\r\n\t\t(pad "33" smd roundrect\r\n\t\t\t(at 5.2 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J10-Pin_33-Pad33)")\r\n\t\t\t(pinfunction "Pin_33_33")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "c3c05d43-ec77-4fc7-ac77-68e64d6a50b3")\r\n\t\t)\r\n\t\t(pad "34" smd roundrect\r\n\t\t\t(at 5.2 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "unconnected-(J10-Pin_34-Pad34)")\r\n\t\t\t(pinfunction "Pin_34_34")\r\n\t\t\t(pintype "passive+no_connect")\r\n\t\t\t(uuid "91a24cfe-c553-41bb-9ae0-108a7e18c6ab")\r\n\t\t)\r\n\t\t(pad "35" smd roundrect\r\n\t\t\t(at 6 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART1_TX")\r\n\t\t\t(pinfunction "Pin_35_35")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "43fcb58f-2e3e-45a3-9d65-1af8a5e8778c")\r\n\t\t)\r\n\t\t(pad "36" smd roundrect\r\n\t\t\t(at 6 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART2_TX")\r\n\t\t\t(pinfunction "Pin_36_36")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "df8ff5d5-a63c-42de-b5ba-8d6945d4fa88")\r\n\t\t)\r\n\t\t(pad "37" smd roundrect\r\n\t\t\t(at 6.8 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART1_RX")\r\n\t\t\t(pinfunction "Pin_37_37")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "d3358cfc-ea09-4f92-91bb-aca5b6557b0f")\r\n\t\t)\r\n\t\t(pad "38" smd roundrect\r\n\t\t\t(at 6.8 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "/CM4/UART2_RX")\r\n\t\t\t(pinfunction "Pin_38_38")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "8b799dd7-c1c9-4207-80d4-ead7784a47a0")\r\n\t\t)\r\n\t\t(pad "39" smd roundrect\r\n\t\t\t(at 7.6 -1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'"B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_39_39")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "51e507e2-8b55-4888-a1bf-61c67db8b152")\r\n\t\t)\r\n\t\t(pad "40" smd roundrect\r\n\t\t\t(at 7.6 1.9)\r\n\t\t\t(size 0.5 1.1)\r\n\t\t\t(layers "B.Cu" "B.Mask" "B.Paste")\r\n\t\t\t(roundrect_rratio 0.25)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "Pin_40_40")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "ff630c66-4b1b-4bba-9d04-560d38be0243")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KICAD10_3DMODEL_DIR}/Connector_Samtec_EdgeRate.3dshapes/Samtec_ERF8-020-XX.X-DV_2x20_P0.8mm_Socket.step"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(footprint "payload:ARJM11C7-502-LEDs"\r\n\t\t(layer "B.Cu")\r\n\t\t(uuid "d8f90024-ed26-4fd0-b3b9-e334af809666")\r\n\t\t(at 142.3 93.2 -90)\r\n\t\t(property "Reference" "J2"\r\n\t\t\t(at 0 12.1 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "f395fbf8-3b7f-4769-8bab-e096d536196c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.1)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Value" "ARJM11C7-502-AB"\r\n\t\t\t(at 0 -1 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "c0b7303b-59ae-4006-8625-3b4150a1857d")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Datasheet" "https://abracon.com/Magnetics/ARJM11.pdf"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "9fb231c1-65b8-4b9b-aa39-3a4a4c778f37")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(property "Description" "RJ45 magjack, 10/100/1000"\r\n\t\t\t(at 0 0 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(hide yes)\r\n\t\t\t(uuid "71809c47-e4cc-446f-9abb-5ba8adbe857c")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(path "/2c1b50ef-7864-4a15-8fab-073a91440387/ed0aa622-c550-4abc-b71e-fd0f0570ffbd")\r\n\t\t(sheetname "/CM4/")\r\n\t\t(sheetfile "cm4.kicad_sch")\r\n\t\t(attr smd)\r\n\t\t(duplicate_pad_numbers_are_jumpers no)\r\n\t\t(fp_line\r\n\t\t\t(start -8.1 10.8)\r\n\t\t\t(end -8.1 4.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "1ec9508d-5eaa-492d-ab47-3a5ae1be8d05")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.1 10.8)\r\n\t\t\t(end -8.1 10.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "830a6b49-83b8-4be6-8406-3270f576144d")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.1 4.8)\r\n\t\t\t(end 8.1 10.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "abbf7abb-5921-45f8-b83c-984f49f79ca8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.1 1.3)\r\n\t\t\t(end 8.1 -10.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "b7749111-09eb-403c-8173-4587e15f08cc")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -8.1 -10.8)\r\n\t\t\t(end -8.1 1.3)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "a13ba364-b6a4-4af7-9fcc-a40cea1e65fd")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 8.1 -10.8)\r\n\t\t\t(end -8.1 -10.8)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "1f6ad39d-7e22-48ba-8a21-8c8af0ac7d38")\r\n\t\t)\r\n\t\t(fp_poly\r\n\t\t\t(pts\r\n\t\t\t\t(xy 8.4 6.3) (xy 8.8 6.7) (xy 8.8 5.9)\r\n\t\t\t)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type solid)\r\n\t\t\t)\r\n\t\t\t(fill yes)\r\n\t\t\t(layer "B.SilkS")\r\n\t\t\t(uuid "dba3b782-35e4-46e2-bcc5-5c1a94a083e0")\r\n\t\t)\r\n\t\t(fp_rect\r\n\t\t\t(start -10 11.125)\r\n\t\t\t(end 10 -11.125)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.05)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(fill no)\r\n\t\t\t(layer "B.CrtYd")\r\n\t\t\t(uuid "384fbbd5-9e62-41b9-8ef0-be25c689dab8")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.975 10.625)\r\n\t\t\t(end 6.975 10.625)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "524a6714-5ac1-47ba-b91c-272d964a8ba5")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.975 9.625)\r\n\t\t\t(end 6.975 10.625)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "8f730fc4-dc8d-42ae-951d-139c02f48827")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.975 9.625)\r\n\t\t\t(end 7.975 -10.625)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "9c36cc92-ab2d-4f8e-a301-1a7918e179e0")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start -7.975 -10.625)\r\n\t\t\t(end -7.975 10.625)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "3b2af8d9-269e-436d-8406-ddf48b646bbd")\r\n\t\t)\r\n\t\t(fp_line\r\n\t\t\t(start 7.975 -10.625)\r\n\t\t\t(end -7.975 -10.625)\r\n\t\t\t(stroke\r\n\t\t\t\t(width 0.1)\r\n\t\t\t\t(type default)\r\n\t\t\t)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "a3dcefc0-5581-473c-af95-ebef78fc4d3d")\r\n\t\t)\r\n\t\t(fp_text user "${REFERENCE}"\r\n\t\t\t(at 0 -2.5 90)\r\n\t\t\t(unlocked yes)\r\n\t\t\t(layer "B.Fab")\r\n\t\t\t(uuid "a3a7798b-7ba1-4a98-b2d3-c6ff9c11b1df")\r\n\t\t\t(effects\r\n\t\t\t\t(font\r\n\t\t\t\t\t(size 1 1)\r\n\t\t\t\t\t(thickness 0.15)\r\n\t\t\t\t)\r\n\t\t\t\t(justify mirror)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at -5.715 0 270)\r\n\t\t\t(size 3.25 3.25)\r\n\t\t\t(drill 3.25)\r\n\t\t\t(layers "*.Mask")\r\n\t\t\t(uuid "a79c5111-0535-4963-8645-a485f968fa7f")\r\n\t\t)\r\n\t\t(pad "" np_thru_hole circle\r\n\t\t\t(at 5.715 0 270)\r\n\t\t\t(size 3.25 3.25)\r\n\t\t\t(drill 3.25)\r\n\t\t\t(layers "*.Mask")\r\n\t\t\t(uuid "19f717c5-fc82-46f2-bdda-77870b036432")\r\n\t\t)\r\n\t\t(pad "1" thru_hole circle\r\n\t\t\t(at 5.715 6.35 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_P0+")\r\n\t\t\t(pinfunction "TD1+_1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f2872e1e-7b9c-4fbd-81b2-62d80db1b2b4")\r\n\t\t)\r\n\t\t(pad "2" thru_hole circle\r\n\t\t\t(at 4.445 8.89 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_P0-")\r\n\t\t\t(pinfunction "TD1-_2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "3493408d-4c34-48c2-b3c1-e59231a5406e")\r\n\t\t)\r\n\t\t(pad "3" thru_hole circle\r\n\t\t\t(at 3.175 6.35 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_P1-")\r\n\t\t\t(pinfunction "TD2+_3")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "bbe38a04-43eb-4d6e-8ec3-53c6b604e386")\r\n\t\t)\r\n\t\t(pad "4" thru_hole circle\r\n\t\t\t(at 1.905 8.89 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_P1+")\r\n\t\t\t(pinfunction "TD2-_4")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "1a4ecd64-3fe7-4359-8b39-eb049d571b70")\r\n\t\t)\r\n\t\t(pad "5" thru_hole circle\r\n\t\t\t(at 0.635 6.35 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(C4-Pad1)")\r\n\t\t\t(pinfunction "CT_5")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "285efb69-8305-4968-9458-284f9a85a698")\r\n\t\t)\r\n\t\t(pad "6" thru_hole circle\r\n\t\t\t(at -0.635 8.89 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(C4-Pad1)")\r\n\t\t\t(pinfunction "CT_6")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "8fcfc217-baf3-4633-8c4f-d2ad1e3bf88a")\r\n\t\t)\r\n\t\t(pad "7" thru_hole circle\r\n\t\t\t(at -1.905 6.35 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_P2+")\r\n\t\t\t(pinfunction "TD3+_7")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "072b2351-5feb-41e9-b27f-ead213e6a37c")\r\n\t\t)\r\n\t\t(pad "8" thru_hole circle\r\n\t\t\t(at -3.175 8.89 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_P2-")\r\n\t\t\t(pinfunction "TD3-_8")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "619e545a-afd5-4e05-8b23-80aa0481d7d1")\r\n\t\t)\r\n\t\t(pad "9" thru_hole circle\r\n\t\t\t(at -4.445 6.35 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_P3+")\r\n\t\t\t(pinfunction "TD4+_9")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "041af889-5f0f-44bc-b40e-f7cadf155a55")\r\n\t\t)\r\n\t\t(pad "10" thru_hole circle\r\n\t\t\t(at -5.715 8.89 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 0.9)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_P3-")\r\n\t\t\t(pinfunction "TD4-_10")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "e69fa898-2c00-4c22-9113-bb9e6d0d2f4f")\r\n\t\t)\r\n\t\t(pad "11" thru_hole circle\r\n\t\t\t(at -6.785 -2.54 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 1.02)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(J2-Pad11)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "f3756605-601e-43d9-b55f-f557868aad9d")\r\n\t\t)\r\n\t\t(pad "12" ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'thru_hole circle\r\n\t\t\t(at -6.785 -4.57 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 1.02)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_LED2")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "a34d8ce2-d06e-468e-9553-b38f079c84e2")\r\n\t\t)\r\n\t\t(pad "13" thru_hole circle\r\n\t\t\t(at 6.785 -2.54 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 1.02)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "Net-(J2-Pad13)")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c3050176-4939-4d40-903b-c5a5ca541a40")\r\n\t\t)\r\n\t\t(pad "14" thru_hole circle\r\n\t\t\t(at 6.785 -4.57 270)\r\n\t\t\t(size 1.8 1.8)\r\n\t\t\t(drill 1.02)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "/CM4/ETH_LED1")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "69467b40-b6bc-48d0-96c1-168548465d95")\r\n\t\t)\r\n\t\t(pad "SH" thru_hole circle\r\n\t\t\t(at -7.75 3.05 270)\r\n\t\t\t(size 3 3)\r\n\t\t\t(drill 1.6)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "SH_SH")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "c6430a48-6e5d-4564-a1fa-88bd117a27d8")\r\n\t\t)\r\n\t\t(pad "SH" thru_hole circle\r\n\t\t\t(at 7.75 3.05 270)\r\n\t\t\t(size 3 3)\r\n\t\t\t(drill 1.6)\r\n\t\t\t(layers "*.Cu" "*.Mask")\r\n\t\t\t(remove_unused_layers no)\r\n\t\t\t(net "GND")\r\n\t\t\t(pinfunction "SH_SH")\r\n\t\t\t(pintype "passive")\r\n\t\t\t(uuid "bd49fa78-906c-4818-95a2-e50cb25eabed")\r\n\t\t)\r\n\t\t(embedded_fonts no)\r\n\t\t(model "${KIPRJMOD}/models/ARJM11C7-502-AB-EW2.STEP"\r\n\t\t\t(offset\r\n\t\t\t\t(xyz 0 0 0)\r\n\t\t\t)\r\n\t\t\t(scale\r\n\t\t\t\t(xyz 1 1 1)\r\n\t\t\t)\r\n\t\t\t(rotate\r\n\t\t\t\t(xyz -90 -0 -0)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(gr_line\r\n\t\t(start 73.5 68.3)\r\n\t\t(end 73.5 133.7)\r\n\t\t(stroke\r\n\t\t\t(width 0.05)\r\n\t\t\t(type default)\r\n\t\t)\r\n\t\t(layer "Edge.Cuts")\r\n\t\t(uuid "67950859-2ba6-405b-8841-a93385555b22")\r\n\t)\r\n\t(gr_line\r\n\t\t(start 80.8 61)\r\n\t\t(end 73.5 68.3)\r\n\t\t(stroke\r\n\t\t\t(width 0.05)\r\n\t\t\t(type default)\r\n\t\t)\r\n\t\t(layer "Edge.Cuts")\r\n\t\t(uuid "c00e585f-d8fd-47cc-9c79-bdb854deb717")\r\n\t)\r\n\t(gr_line\r\n\t\t(start 80.8 61)\r\n\t\t(end 146.2 61)\r\n\t\t(stroke\r\n\t\t\t(width 0.05)\r\n\t\t\t(type default)\r\n\t\t)\r\n\t\t(layer "Edge.Cuts")\r\n\t\t(uuid "d4cd60c2-9994-4555-a875-3d59e065c10c")\r\n\t)\r\n\t(gr_line\r\n\t\t(start 80.8 141)\r\n\t\t(end 73.5 133.7)\r\n\t\t(stroke\r\n\t\t\t(width 0.05)\r\n\t\t\t(type default)\r\n\t\t)\r\n\t\t(layer "Edge.Cuts")\r\n\t\t(uuid "ec4d2494-804e-43ea-835f-40d206ff0eaf")\r\n\t)\r\n\t(gr_line\r\n\t\t(start 146.2 141)\r\n\t\t(end 80.8 141)\r\n\t\t(stroke\r\n\t\t\t(width 0.05)\r\n\t\t\t(type default)\r\n\t\t)\r\n\t\t(layer "Edge.Cuts")\r\n\t\t(uuid "80b621ee-67df-4a61-8ac3-0f7fe7557c90")\r\n\t)\r\n\t(gr_line\r\n\t\t(start 153.5 68.3)\r\n\t\t(end 146.2 61)\r\n\t\t(stroke\r\n\t\t\t(width 0.05)\r\n\t\t\t(type default)\r\n\t\t)\r\n\t\t(layer "Edge.Cuts")\r\n\t\t(uuid "dd31d12a-75c5-4dfb-8ee7-943686e2bede")\r\n\t)\r\n\t(gr_line\r\n\t\t(start 153.5 68.3)\r\n\t\t(end 153.5 133.7)\r\n\t\t(stroke\r\n\t\t\t(width 0.05)\r\n\t\t\t(type default)\r\n\t\t)\r\n\t\t(layer "Edge.Cuts")\r\n\t\t(uuid "6b707c76-11cd-481b-b2c9-5804887b0bd3")\r\n\t)\r\n\t(gr_line\r\n\t\t(start 153.5 133.7)\r\n\t\t(end 146.2 141)\r\n\t\t(stroke\r\n\t\t\t(width 0.05)\r\n\t\t\t(type default)\r\n\t\t)\r\n\t\t(layer "Edge.Cuts")\r\n\t\t(uuid "3cf025c3-0cf7-47d9-aa88-1b5d01e5008e")\r\n\t)\r\n\t(gr_text "foo"\r\n\t\t(at 87.2 139.2 0)\r\n\t\t(layer "F.Cu" knockout)\r\n\t\t(uuid "caf0c010-5a96-4bfc-92ce-4e00ea22eb43")\r\n\t\t(effects\r\n\t\t\t(font\r\n\t\t\t\t(size 0.8 0.8)\r\n\t\t\t\t(thickness 0.2)\r\n\t\t\t\t(bold yes)\r\n\t\t\t)\r\n\t\t\t(justify left bottom)\r\n\t\t)\r\n\t)\r\n\t(gr_text "Ethan Eggbert\\nfrrt.space"\r\n\t\t(at 131.6 131.4 0)\r\n\t\t(layer "F.SilkS")\r\n\t\t(uuid "96f06f4c-4730-4822-a7a5-fcd7836a9dab")\r\n\t\t(effects\r\n\t\t\t(font\r\n\t\t\t\t(size 1 1)\r\n\t\t\t\t(bold yes)\r\n\t\t\t)\r\n\t\t\t(justify left bottom)\r\n\t\t)\r\n\t)\r\n\t(gr_text "Jax"\r\n\t\t(at 86.9 137.1 0)\r\n\t\t(layer "F.SilkS")\r\n\t\t(uuid "1f5750a4-32e8-4fe0-8dd0-6ea705324b4a")\r\n\t\t(effects\r\n\t\t\t(font\r\n\t\t\t\t(size 1 1)\r\n\t\t\t\t(thickness 0.1)\r\n\t\t\t)\r\n\t\t\t(justify left bottom)\r\n\t\t)\r\n\t)\r\n\t(barcode\r\n\t\t(at 136.4 136 0)\r\n\t\t(layer "F.Mask")\r\n\t\t(size 5.8 5.8)\r\n\t\t(text "https://FRRT.SPACE")\r\n\t\t(text_height 1)\r\n\t\t(type qr)\r\n\t\t(ecc_level L)\r\n\t\t(hide yes)\r\n\t\t(knockout no)\r\n\t\t(uuid "b0ca6e03-7bd4-4dbb-b32b-c1511ca218cf")\r\n\t)\r\n\t(barcode\r\n\t\t(at 87.3 108 0)\r\n\t\t(layer "B.SilkS")\r\n\t\t(size 24.4 24.4)\r\n\t\t(text "https://GITHUB.COM/OSUSAT/CUBESAT")\r\n\t\t(text_height 1.5)\r\n\t\t(type qr)\r\n\t\t(ecc_level M)\r\n\t\t(hide yes)\r\n\t\t(knockout no)\r\n\t\t(uuid "fff2839d-2676-4a07-8856-6ee4142e9758")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.2 74.6)\r\n\t\t(end 104.53 75.27)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-TXCAN)")\r\n\t\t(uuid "715265d7-0bfe-4d3b-89e2-f656c00cbdd7")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.53 75.27)\r\n\t\t(end 104.53 77.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-TXCAN)")\r\n\t\t(uuid "94ef2c3a-321e-45bc-8939-734a5fb94e70")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.9 74.6)\r\n\t\t(end 105.2 74.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-TXCAN)")\r\n\t\t(uuid "db8ce2d9-0f33-46b6-98fb-cea22e8f947b")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.8125 75.5125)\r\n\t\t(end 109.9 74.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-TXCAN)")\r\n\t\t(uuid "f90a01e9-1c4e-4836-87f8-d40c97512b4e")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.8125 75.51875)\r\n\t\t(end 110.8125 75.5125)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-TXCAN)")\r\n\t\t(uuid "fa07f0e9-3314-412a-9c99-450532f539bb")\r\n\t)\r\n\t(via\r\n\t\t(at 143 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0042c051-b44d-43b6-8e68-bcfebb9e5e05")\r\n\t)\r\n\t(via\r\n\t\t(at 116 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "005fdb9b-ee9f-45b1-84e1-88a4ac9aa9ce")\r\n\t)\r\n\t(via\r\n\t\t(at 111 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "00938b42-e4c3-400e-93c4-f35e783a63f9")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0222fbec-3ef5-451e-bca2-52bb6efb448f")\r\n\t)\r\n\t(via\r\n\t\t(at 84 136)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "02536bef-68b6-4517-841c-446d43f0d550")\r\n\t)\r\n\t(via\r\n\t\t(at 138.2 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "02dd3d37-cf9b-4cbb-987d-50f4e08ad91e")\r\n\t)\r\n\t(via\r\n\t\t(at 132 68)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0301973a-1050-4d22-ad58-7fca96746489")\r\n\t)\r\n\t(via\r\n\t\t(at 103.8 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "037c8370-7451-4ade-ae28-46c60df6f271")\r\n\t)\r\n\t(via\r\n\t\t(at 84 68)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "039c1f36-5046-46e5-a048-9a4a18c27500")\r\n\t)\r\n\t(via\r\n\t\t(at 88 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "03e68dc7-8f53-4957-a878-8bad4a46285d")\r\n\t)\r\n\t(via\r\n\t\t(at 104.6 117.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "03fa95fa-78f1-416b-8eab-6e0c38906f96")\r\n\t)\r\n\t(via\r\n\t\t(at 88 112)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "04d72018-500a-42f7-a1fd-9c9abfe27e94")\r\n\t)\r\n\t(via\r\n\t\t(at 111.4 92.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0567f1b3-2142-43a7-92a2-3684d280e23f")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "05a7cf2c-4764-4a7d-99ed-dd79bcc99d9d")\r\n\t)\r\n\t(via\r\n\t\t(at 148 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "05b66409-a955-40a0-87fd-4ca9335ba2f3")\r\n\t)\r\n\t(via\r\n\t\t(at 135 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0626db9a-43a7-4b7b-bddf-957fedefd5ea")\r\n\t)\r\n\t(via\r\n\t\t(at 101.8 114.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0636ff93-bae0-417f-8594-85aa679d2ed8")\r\n\t)\r\n\t(via\r\n\t\t(at 106.2 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "069d375e-8994-4e0a-8991-8d31edc9b5bd")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 89.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "07aa3d30-642c-49d7-9625-1573419ccb0f")\r\n\t)\r\n\t(via\r\n\t\t(at 107.4 75.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "07dbd1f1-02b9-4e15-a28d-4e2f7d17936f")\r\n\t)\r\n\t(via\r\n\t\t(at 108 95.8)\r\n\t\t(size 0.6)\r\n\t\t(drill' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "099eb647-fa0f-4b77-8351-d85c39787264")\r\n\t)\r\n\t(via\r\n\t\t(at 144 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "09bb5898-c1b7-4f93-b758-5d17a0d2c696")\r\n\t)\r\n\t(via\r\n\t\t(at 146.2 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "09ce101f-78fd-4514-8292-70259262f422")\r\n\t)\r\n\t(via\r\n\t\t(at 140 96)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "09d99f6c-5212-44a7-927b-38af6503f326")\r\n\t)\r\n\t(via\r\n\t\t(at 109.4 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0a433535-1ab6-44c6-aa54-e7ea3c4c5b6a")\r\n\t)\r\n\t(via\r\n\t\t(at 105.4 133.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0a795435-7d73-4d85-ba5e-daa7985738c1")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 92.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0a981326-102d-48eb-a502-874af884c434")\r\n\t)\r\n\t(via\r\n\t\t(at 144 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0bb2f022-aa7c-485d-90ce-8c99ffb9a02d")\r\n\t)\r\n\t(via\r\n\t\t(at 144.6 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0c4a2e9e-3747-4bc5-a13e-a4155624f587")\r\n\t)\r\n\t(via\r\n\t\t(at 127 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0c84a6c5-c8f3-4271-ae34-d9d42a95f05e")\r\n\t)\r\n\t(via\r\n\t\t(at 119 89.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0ca5b5d0-90a1-4d6f-98ff-e0c347264da3")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0cdf027d-24cf-436d-bee2-c74185ff7d0c")\r\n\t)\r\n\t(via\r\n\t\t(at 92 112)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0d141937-5a96-47ff-b798-60a15fe8f8a8")\r\n\t)\r\n\t(via\r\n\t\t(at 138.2 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0d4b094f-70f2-4a9b-9de0-539ea4b83eaa")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0e900b24-453b-4182-8fb7-2ca076e16f6e")\r\n\t)\r\n\t(via\r\n\t\t(at 105 126.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0ec45d36-0ac6-403a-9d81-8860ffe256de")\r\n\t)\r\n\t(via\r\n\t\t(at 141.4 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0f08cd10-2d94-478e-a880-2b8e06d8301c")\r\n\t)\r\n\t(via\r\n\t\t(at 152 116)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0f53b412-7c58-4398-8416-cf8373f44e5d")\r\n\t)\r\n\t(via\r\n\t\t(at 119 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0fa9074a-3e5d-4890-99db-d8780688cd05")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0facf61e-314f-4bf5-9dc1-49e79b924c84")\r\n\t)\r\n\t(via\r\n\t\t(at 146.240569 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "0fc08196-1efb-4094-873e-34b1644801e6")\r\n\t)\r\n\t(via\r\n\t\t(at 88 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "101c694e-2150-478e-8a45-fed3a318ef62")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "104e7c4b-5a95-4664-af88-87a3396e97a8")\r\n\t)\r\n\t(via\r\n\t\t(at 120.8 90.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "10584eb3-6eef-4726-8e16-f73e7892fc96")\r\n\t)\r\n\t(via\r\n\t\t(at 111 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "11170cca-4bf8-4ce2-97cf-7a3bfc00f12d")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1122799f-311b-43f5-adac-78ca910439cb")\r\n\t)\r\n\t(via\r\n\t\t(at 136.2 100.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "140e52b2-93b5-4726-abab-703e3ee234e5")\r\n\t)\r\n\t(via\r\n\t\t(at 139.8 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1415efb9-eb36-48a7-819e-e2905a43b554")\r\n\t)\r\n\t(via\r\n\t\t(at 144.8 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1426cd58-6146-4e9c-a792-8411b7f02eda")\r\n\t)\r\n\t(via\r\n\t\t(at 127 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "142ffcfc-a99f-4716-9cb6-03c9c783435a")\r\n\t)\r\n\t(via\r\n\t\t(at 116 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "14316508-18f7-45e5-84d1-71e681681e65")\r\n\t)\r\n\t(via\r\n\t\t(at 76 88)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "14dcbb0c-da8b-48ef-96f3-e49ddb04f9e9")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "14e9fc0c-5cee-4683-ae5c-00ebd21d99c6")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "15157799-7313-4c95-a838-9f3656bd8f73")\r\n\t)\r\n\t(via\r\n\t\t(at 84 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "16a38f9d-e38a-4887-93c5-6c6c065634f3")\r\n\t)\r\n\t(via\r\n\t\t(at 88 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "181dd1cf-ae81-4610-a05d-be067d12247e")\r\n\t)\r\n\t(via\r\n\t\t(at 108 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "193b6b3e-e4d5-404a-9faa-bc5717158057")\r\n\t)\r\n\t(via\r\n\t\t(at 109.4 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "19af79db-7902-4649-9f34-bcc4ef6841b3")\r\n\t)\r\n\t(via\r\n\t\t(at 143.2 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1a2ad2d5-43a5-409a-aa60-d684a7f43330")\r\n\t)\r\n\t(via\r\n\t\t(at 101.2 126.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1a2e567a-8c07-4060-8677-2fc5b0443924")\r\n\t)\r\n\t(via\r\n\t\t(at 144.8 112.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1a368402-8a6a-44b2-852c-2a74e6ce3e0f")\r\n\t)\r\n\t(via\r\n\t\t(at 100 100)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1aa7992c-54f5-488e-8ea2-b027eb59b14c")\r\n\t)\r\n\t(via\r\n\t\t(at 124 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1ad4314c-f1da-4d58-88eb-abe30e56f18c")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1cefa28d-1a70-4d9a-aa13-bd489b28abc1")\r\n\t)\r\n\t(via\r\n\t\t(at 128 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1d8eccfd-3085-471f-a7ed-3472453332e2")\r\n\t)\r\n\t(via\r\n\t\t(at 108 121)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1e0d9ab1-8932-4ceb-9a15-71b2d51620b4")\r\n\t)\r\n\t(via\r\n\t\t(at 81.2 94.9)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1e2ec938-adc2-46d9-a350-e38775911cd9")\r\n\t)\r\n\t(via\r\n\t\t(at 140 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1e4ebf73-ad1c-47d3-b40d-a0403ac9cc09")\r\n\t)\r\n\t(via\r\n\t\t(at 104 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1e52e1d9-c3e4-4b0b-baee-32f2445e7114")\r\n\t)\r\n\t(via\r\n\t\t(at 128 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1e90d7da-7a5c-4d25-956c-022e2f251050")\r\n\t)\r\n\t(via\r\n\t\t(at 112 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1f86e456-020b-4723-9569-b103d602' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'389a")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 91.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1f8aab3a-0f22-4e36-a211-d94ef1cdab9c")\r\n\t)\r\n\t(via\r\n\t\t(at 108 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "1fcc1125-b772-454c-b202-ae0a7d83d827")\r\n\t)\r\n\t(via\r\n\t\t(at 116 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "205b5d96-783f-4fd0-9388-f771765876c1")\r\n\t)\r\n\t(via\r\n\t\t(at 109 79.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "215afd9e-699b-4069-b606-0d4c3a785fba")\r\n\t)\r\n\t(via\r\n\t\t(at 88 96)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "22079ef3-f1ac-472c-b2a5-59fc654c6c4c")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "225dbcaf-731f-4140-9425-e5e90ad0d6f8")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "22f882c4-b948-48b1-b792-8b953c090506")\r\n\t)\r\n\t(via\r\n\t\t(at 152 100)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "235f0189-b6d4-4da0-8d0f-ebe4de5bdcda")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "243eee37-58d3-4023-b109-d43cacc123d3")\r\n\t)\r\n\t(via\r\n\t\t(at 132 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "24b5fc9c-fa04-4d88-8a9c-505b6d3f28d4")\r\n\t)\r\n\t(via\r\n\t\t(at 136.6 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "25533164-c855-4ddd-a454-7aabbcc7cd7c")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "25b53abf-b310-44e6-8847-7a8c5059bb23")\r\n\t)\r\n\t(via\r\n\t\t(at 108 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2695d52a-025c-4d34-94c1-942692066f24")\r\n\t)\r\n\t(via\r\n\t\t(at 144 80)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2738b4db-a13f-4119-bb30-cf06ca906815")\r\n\t)\r\n\t(via\r\n\t\t(at 105.2 129)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "27b7c620-bb6c-4f70-9626-3ad47af90d6d")\r\n\t)\r\n\t(via\r\n\t\t(at 133.4 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "284d62a8-20a0-4aa9-ad3c-346113a45758")\r\n\t)\r\n\t(via\r\n\t\t(at 119.2 94.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "287c95c1-d55b-4a6b-a7e5-62d223059c05")\r\n\t)\r\n\t(via\r\n\t\t(at 152 88)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2a6751a8-0366-4f9b-8f74-052eb29aa4de")\r\n\t)\r\n\t(via\r\n\t\t(at 100 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2abf7fb0-1c6a-45a1-bdae-5311fd1f166a")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2b23b47a-1081-48c8-a401-d6273eb29c2a")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2b73dce0-64de-44af-8cb5-0c960c00f18f")\r\n\t)\r\n\t(via\r\n\t\t(at 143.8 117.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2ba6094d-3c4c-4ad4-8929-e418721085b1")\r\n\t)\r\n\t(via\r\n\t\t(at 147.8 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2ccdea1f-e28d-4234-a036-0f1280386804")\r\n\t)\r\n\t(via\r\n\t\t(at 88 116)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2cf6ea69-ac65-452c-8105-12d8b2c17ffa")\r\n\t)\r\n\t(via\r\n\t\t(at 118.6 87.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2d5db2ad-7aaa-430b-9de0-2582d6c49ba5")\r\n\t)\r\n\t(via\r\n\t\t(at 100 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2d602c4a-42f9-4f39-b03d-da089e69d48b")\r\n\t)\r\n\t(via\r\n\t\t(at 124 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2de89dd6-8677-40c3-8891-63e2180ff1cc")\r\n\t)\r\n\t(via\r\n\t\t(at 121.4 87)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2f35c52a-9f0a-43ff-a942-87b4c6c6d08f")\r\n\t)\r\n\t(via\r\n\t\t(at 146.2 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2f945e8f-0982-45ae-b9b6-4da7fdab72ec")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2fd1eceb-6820-4f04-bd1b-433b681536cb")\r\n\t)\r\n\t(via\r\n\t\t(at 76 116)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "2ffa91db-27bc-4c44-8b05-f154904f6e6a")\r\n\t)\r\n\t(via\r\n\t\t(at 135 90)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "303a1a20-2002-4ca8-8ff3-8a54f1111574")\r\n\t)\r\n\t(via\r\n\t\t(at 116 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "31c74ba2-a9f0-4406-9094-8bf246bd2f7c")\r\n\t)\r\n\t(via\r\n\t\t(at 105.2 130.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "326fb363-6934-4d17-a6fe-5fc9ffd12f56")\r\n\t)\r\n\t(via\r\n\t\t(at 96 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "32beb51f-8894-42cd-b673-c399b4921105")\r\n\t)\r\n\t(via\r\n\t\t(at 105.2 75.7)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "330d6f3d-ca26-4161-a43b-efc106737633")\r\n\t)\r\n\t(via\r\n\t\t(at 138.2 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "335607af-8163-4357-9e90-ef657cb1a7eb")\r\n\t)\r\n\t(via\r\n\t\t(at 111 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "336a64a4-98aa-4cf5-a1e9-7fd0dd6b989e")\r\n\t)\r\n\t(via\r\n\t\t(at 104 100)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "33c37524-bf1c-405c-9f83-ae5993313ffe")\r\n\t)\r\n\t(via\r\n\t\t(at 100.8 133.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "33f33763-ea13-4d1c-821c-9fc07a4d9fd1")\r\n\t)\r\n\t(via\r\n\t\t(at 119 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "347ba82f-2aa3-447f-af4a-7794d577d40c")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 90.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "348f930c-3799-4238-9811-f7888ff0e782")\r\n\t)\r\n\t(via\r\n\t\t(at 76 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "349f3565-29c2-4120-819d-36d7abf62189")\r\n\t)\r\n\t(via\r\n\t\t(at 111 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "35689894-f9c7-4146-ad74-9c07582157ed")\r\n\t)\r\n\t(via\r\n\t\t(at 140.2 110)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "358a81f2-f95e-4f02-aa38-d9b62f106e46")\r\n\t)\r\n\t(via\r\n\t\t(at 100 120)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3617e2ca-064e-45fa-980b-d7e92291d3da")\r\n\t)\r\n\t(via\r\n\t\t(at 88 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3646c43b-3b28-40c4-9e92-684e276b22e3")\r\n\t)\r\n\t(via\r\n\t\t(at 120 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3755206a-7d54-453d-90c5-f219d9887f84")\r\n\t)\r\n\t(via\r\n\t\t(at 80 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "37e4218c-e6cd-4f63-9029-4d5fd72c6add")\r\n\t)\r\n\t(via\r\n\t\t(at 108 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "38265458-07f1-42aa-a298-332063f0eed3")\r\n\t)\r\n\t(via\r\n\t\t(at 144 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "38848e00' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'-ed42-48f3-b3e5-9c26ec8e9a14")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "389dbe24-7809-46bd-a198-4f3abc3c958c")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "39117f64-e831-45da-82b9-cdb8ea23c88e")\r\n\t)\r\n\t(via\r\n\t\t(at 148 131.75)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3b8188fc-f01b-49c4-88f3-c40d78a5270a")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3bd86ac6-5a5d-4323-99f7-5040c0dc8925")\r\n\t)\r\n\t(via\r\n\t\t(at 120 87)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3c64c576-7bfc-43dc-89ad-28a596682231")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3c65d934-65f8-4ea4-bc5e-6619fb57ac36")\r\n\t)\r\n\t(via\r\n\t\t(at 102.4 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3c6e756f-3823-42a9-bf63-61b38221e513")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3c7436bc-947d-439c-9685-2330360a18e2")\r\n\t)\r\n\t(via\r\n\t\t(at 132.4 93.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3da2b5b8-82b0-46b2-9b0e-17a5f2f807c7")\r\n\t)\r\n\t(via\r\n\t\t(at 84 120)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3e4dc7b8-2b0c-49f9-8b22-87a7d9b53fbc")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 89.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3e7357ef-18ec-4984-9f31-1f5023619579")\r\n\t)\r\n\t(via\r\n\t\t(at 152 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3f36a5a9-7343-4d0c-a5b2-f1ca3ba41acc")\r\n\t)\r\n\t(via\r\n\t\t(at 120 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3fa5609b-4935-48ef-be06-de6707d922fa")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "3fc98bdc-d9c0-4e07-b047-b8b1cf09a441")\r\n\t)\r\n\t(via\r\n\t\t(at 140 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "408b2eca-2461-4468-83a8-3cac417fd855")\r\n\t)\r\n\t(via\r\n\t\t(at 103.8 125.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "40a4d856-ba24-424b-9cac-9cec897646be")\r\n\t)\r\n\t(via\r\n\t\t(at 88 68)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "41cdb4e4-25d1-48c3-b84b-b307780e8214")\r\n\t)\r\n\t(via\r\n\t\t(at 127 87.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4295bbd5-7794-4ed6-a527-4984bf32c047")\r\n\t)\r\n\t(via\r\n\t\t(at 135 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "43461f4a-86a3-4d8c-87e2-1c22bef3503c")\r\n\t)\r\n\t(via\r\n\t\t(at 133.4 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4391f8ac-4b7f-4d88-9b36-4b96c4d7fe34")\r\n\t)\r\n\t(via\r\n\t\t(at 76 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "444f9818-a5dd-4c09-8788-f54a0614f9b5")\r\n\t)\r\n\t(via\r\n\t\t(at 92 116)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "447fb269-7be3-4d70-908d-092cd10a7d2f")\r\n\t)\r\n\t(via\r\n\t\t(at 84 112)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "44e34220-af9e-46dc-a1bb-b8cfadd701f1")\r\n\t)\r\n\t(via\r\n\t\t(at 84 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "452b8a80-ebd0-49e7-bbd5-710cb4b06961")\r\n\t)\r\n\t(via\r\n\t\t(at 110.6 89.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "45e0cb6e-28d0-468f-ba47-9b88e6792f41")\r\n\t)\r\n\t(via\r\n\t\t(at 91.7 133.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "460ab22d-b602-4f1b-aa64-8542f04fec6e")\r\n\t)\r\n\t(via\r\n\t\t(at 90 83.9)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "47b2267e-8bf5-4bcb-be66-e6306b8f284c")\r\n\t)\r\n\t(via\r\n\t\t(at 136 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "47c60703-10d5-4f01-b711-df4f03b1ddb4")\r\n\t)\r\n\t(via\r\n\t\t(at 109.4 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "49064b44-c166-42b0-8b98-1e015ab8c4dc")\r\n\t)\r\n\t(via\r\n\t\t(at 132 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "49798046-5b76-4d3f-a853-01951d54ffde")\r\n\t)\r\n\t(via\r\n\t\t(at 135 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4a155250-f87c-4a2b-8403-cd2f2e1512f3")\r\n\t)\r\n\t(via\r\n\t\t(at 140 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4a87edec-eeb4-4a17-86ed-eb900bc5da39")\r\n\t)\r\n\t(via\r\n\t\t(at 135 97.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4af952dd-d0bd-4bde-81b0-6b893a59b5f9")\r\n\t)\r\n\t(via\r\n\t\t(at 152 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4b3cd0bc-1993-4053-a9e5-251fa3ca9020")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4baaf7a7-5fe3-4763-a032-5ad3c3ca28c7")\r\n\t)\r\n\t(via\r\n\t\t(at 104 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4bf59ef6-a493-48d1-a7fc-853ff195c972")\r\n\t)\r\n\t(via\r\n\t\t(at 135 87.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4c98bbc1-b401-497d-ab7b-77e3fb9656b0")\r\n\t)\r\n\t(via\r\n\t\t(at 110.4 98.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4cb89a3d-4cea-46f8-844c-bb78d4642bfb")\r\n\t)\r\n\t(via\r\n\t\t(at 140 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4ea45258-f0a1-44a2-baf2-e13e89672d79")\r\n\t)\r\n\t(via\r\n\t\t(at 130.8 93.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4f302e6b-9724-4af1-941c-804a449276e1")\r\n\t)\r\n\t(via\r\n\t\t(at 141.4 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4f586f57-d513-4d5a-8a5c-9327bfafa499")\r\n\t)\r\n\t(via\r\n\t\t(at 107.8 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4f81f4a8-1ecf-47a9-8cd2-0ca6ddb85dd5")\r\n\t)\r\n\t(via\r\n\t\t(at 140 136)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "4fe611ba-214c-48ba-999d-b4cd9a38b718")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5008e529-4fb0-4547-bf2d-1e2c3bb31398")\r\n\t)\r\n\t(via\r\n\t\t(at 131.8 90.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "50d56f0c-2475-43d6-b91e-f3375fb6710e")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 90.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5145caf8-083d-49f7-a962-8d06cf45c67d")\r\n\t)\r\n\t(via\r\n\t\t(at 103.8 126.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5252a61a-1579-4cc5-a314-5fe92d7a6ab0")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "52d4d974-2e22-4709-857d-da1495bf6281")\r\n\t)\r\n\t(via\r\n\t\t(at 128 80)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "53499a76-e03a-4497-8785-a1da1748ab0b")\r\n\t)\r\n\t(via\r\n\t\t(at 84 92)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "53e4da6e-1e23-4d73-a192-85eae3ee388f")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5486723b-976f-412c-af0b-eed580f93bd4")\r\n\t)\r\n\t(via\r\n\t\t(at 105.4 136.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "549c917f-7e17-43f0-925c-eb61e4480ed3")\r\n\t)\r\n\t(via\r\n\t\t(at 143.2 112.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "54fb5f26-0354-4c94-a992-a728eb4a9767")\r\n\t)\r\n\t(via\r\n\t\t(at 100 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "55e7afdc-c6f6-4aef-8af5-e8bbac74461a")\r\n\t)\r\n\t(via\r\n\t\t(at 136.6 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "57679bb6-e25c-46f4-a1e9-5cc8dbeef01d")\r\n\t)\r\n\t(via\r\n\t\t(at 139.8 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "579db492-cdd9-4393-a0db-3f6c58cae97a")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "57ff077a-04af-4d06-9d1c-f0815d159464")\r\n\t)\r\n\t(via\r\n\t\t(at 140 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "587121d6-a671-4e69-bc21-9581ca3c0124")\r\n\t)\r\n\t(via\r\n\t\t(at 145.6 118.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "58ad56c4-1099-4bb9-8e14-1e097b3ddc60")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 89.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5926a300-7e13-4ac7-b206-71269ba2110b")\r\n\t)\r\n\t(via\r\n\t\t(at 92 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5956df53-859b-487b-918b-f2065a81b62b")\r\n\t)\r\n\t(via\r\n\t\t(at 104 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "597f8892-0091-42af-b269-df13c3f666b7")\r\n\t)\r\n\t(via\r\n\t\t(at 134.4 100)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5a8ae6b1-3e70-47e6-8e54-1044992ea206")\r\n\t)\r\n\t(via\r\n\t\t(at 148 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5b02ea54-7c1a-4b7e-bb19-d7a9c1c94d60")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5b2c7d10-1eb6-43b4-a035-92bf12ca2f2e")\r\n\t)\r\n\t(via\r\n\t\t(at 140 80)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5b34149d-ba3e-445e-9af1-0eaf9eb3a71e")\r\n\t)\r\n\t(via\r\n\t\t(at 102.4 136.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5beccb4c-054e-40c5-ba56-4d6329397338")\r\n\t)\r\n\t(via\r\n\t\t(at 133.4 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5bf7e52f-50fe-4061-b169-607fcad79231")\r\n\t)\r\n\t(via\r\n\t\t(at 96 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5c2e3ffd-f4ed-4a4d-b3b9-014a1953756a")\r\n\t)\r\n\t(via\r\n\t\t(at 108 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5d8660bb-ae5e-4ec4-b910-96d5da29b8ca")\r\n\t)\r\n\t(via\r\n\t\t(at 84 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5e7aa272-9ebf-446c-9f5c-b00ef35950f8")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5f8c57f4-c466-4843-8fc2-6b06d410d98c")\r\n\t)\r\n\t(via\r\n\t\t(at 107.8 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "5fcbee1e-ec04-41b9-a82d-6138b1d8657d")\r\n\t)\r\n\t(via\r\n\t\t(at 127 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "600eb4f1-0bf9-4066-b1bf-94b4d277bad4")\r\n\t)\r\n\t(via\r\n\t\t(at 106.6 120)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "602e6dd5-e4a0-4dc5-bee9-7ae45933dcf0")\r\n\t)\r\n\t(via\r\n\t\t(at 147.8 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6034d2e5-9463-4089-bb37-551910dd4587")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "603f816f-dcae-446f-8ceb-160dc13d96bc")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "61192929-17ca-4d82-ac98-99fe97316365")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "62ab6ac9-3437-4456-a599-615a2fdd46a1")\r\n\t)\r\n\t(via\r\n\t\t(at 131.8 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "62f129f5-3b5d-47aa-870c-dd65f0b8334f")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "63e0f3be-b76b-4b6b-8779-29443b4fa7fc")\r\n\t)\r\n\t(via\r\n\t\t(at 120.8 94.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "64c72c04-20e8-44ae-bd7c-0ac5834c3087")\r\n\t)\r\n\t(via\r\n\t\t(at 152 96)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "65071e70-7009-4c05-912b-39abeadfa69f")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "65e644a0-99aa-4fd2-966f-c99ce85003bf")\r\n\t)\r\n\t(via\r\n\t\t(at 124 68)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6661dfd4-04e7-4b1b-a62b-cc58f65c7942")\r\n\t)\r\n\t(via\r\n\t\t(at 144 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "666c3c3e-46a2-43d7-98df-4d05bfd57519")\r\n\t)\r\n\t(via\r\n\t\t(at 108.2 89)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "681356c4-c338-4332-8b16-1f6d65e39d39")\r\n\t)\r\n\t(via\r\n\t\t(at 106.2 84.5)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "68166d55-25bd-4675-b975-7db5b6af67b6")\r\n\t)\r\n\t(via\r\n\t\t(at 76 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "688c6c16-7543-4e7c-a222-bdeb8ff2e902")\r\n\t)\r\n\t(via\r\n\t\t(at 131.8 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6911e870-13bd-4ace-8239-4d13c0a93d05")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 87.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6931cdd2-64d5-4161-93a8-f6211a07b496")\r\n\t)\r\n\t(via\r\n\t\t(at 119 92.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "69c2b661-95be-4c5a-a2d2-35c85a543b14")\r\n\t)\r\n\t(via\r\n\t\t(at 100.8 136.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6a34de62-ae95-4b10-98db-d46846be327d")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6a43066d-b6e9-467a-90b2-714a588bc7aa")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6a73aa69-bcc3-4280-b5a7-95a5228e4a04")\r\n\t)\r\n\t(via\r\n\t\t(at 136 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6ae8269b-c8ce-4576-ac89-c5b6e158b555")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6bce757d-7d66-47c4-876f-62140be57b0a")\r\n\t)\r\n\t(via\r\n\t\t(at 132 136)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6c3c0917-2042-4cb5-bfef-348072c518a0")\r\n\t)\r\n\t(via\r\n\t\t(at 143.2 110)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6c4f8349-d6d7-4eeb-8204-9507e786d992")\r\n\t)\r\n\t(via\r\n\t\t(at 92 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6c9beaf9-7436-4616-b3d1-0ade6b23f9d3")\r\n\t)\r\n\t(via\r\n\t\t(at 128 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6d78c81c-843d-4f14-b75a-ef847adae5b3")\r\n\t)\r\n\t(via\r\n\t\t(at 141.8 110)\r' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6e160496-a013-47f9-b19d-ca6e2da027b7")\r\n\t)\r\n\t(via\r\n\t\t(at 117.8 92.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6e556b70-e1f6-44c6-8655-d93ee19875b1")\r\n\t)\r\n\t(via\r\n\t\t(at 148 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6ec36874-0230-430a-86c1-c0d233202e93")\r\n\t)\r\n\t(via\r\n\t\t(at 92 120)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6f09111a-a9e9-4562-95ae-24561203b8fb")\r\n\t)\r\n\t(via\r\n\t\t(at 135 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6fa630a2-ea92-429f-88f3-cfa24561f61d")\r\n\t)\r\n\t(via\r\n\t\t(at 119 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "6feea593-b55b-4701-827f-72a88fb61ecb")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7035a785-189a-45dc-9383-64498dbddf4c")\r\n\t)\r\n\t(via\r\n\t\t(at 143.8 75.1)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "706b5a9d-e9ba-48c8-807a-01a3bdaac559")\r\n\t)\r\n\t(via\r\n\t\t(at 128 136)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "70f806ed-fec7-41c3-8304-5b15bb49a104")\r\n\t)\r\n\t(via\r\n\t\t(at 107.8 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7174f493-6401-435a-b929-ee355d147d3a")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "71c332ae-669b-42e2-9559-e381ab0ffa6d")\r\n\t)\r\n\t(via\r\n\t\t(at 102.6 125.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "725e91dd-09dc-4e79-aafb-0c7b7488dcf1")\r\n\t)\r\n\t(via\r\n\t\t(at 84 96)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "72c56576-9745-4f45-a32c-839cf2f99e7b")\r\n\t)\r\n\t(via\r\n\t\t(at 131.8 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "72ee9f43-f041-445c-868a-030d2324cbc8")\r\n\t)\r\n\t(via\r\n\t\t(at 147.8 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "75014ddc-421c-48de-8ca1-590851c05ec1")\r\n\t)\r\n\t(via\r\n\t\t(at 80 116)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7670907e-9657-4d1b-8705-333d24380f67")\r\n\t)\r\n\t(via\r\n\t\t(at 112 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "767c5659-812c-4337-938e-9b73be03df00")\r\n\t)\r\n\t(via\r\n\t\t(at 137.4 92.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "768c5bc0-fb50-4ec1-986a-c597f78b7b12")\r\n\t)\r\n\t(via\r\n\t\t(at 132 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "77492388-0f0f-47f7-808f-d59bb6876838")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 103)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "78827047-39b6-4812-ae20-fd4aad701751")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "78d18120-63f8-4432-9168-f9e002a27b95")\r\n\t)\r\n\t(via\r\n\t\t(at 137.8 89)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "796a245b-7be7-4379-af06-7aa349dbfb12")\r\n\t)\r\n\t(via\r\n\t\t(at 104 118.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7a7add23-f2c5-4e50-bfb2-15712bc1fee0")\r\n\t)\r\n\t(via\r\n\t\t(at 106.4 122.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7b173fba-76ff-49ed-a71a-db11e00af6a8")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 87.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7b738614-cbed-48e3-b260-1aa650eaf10b")\r\n\t)\r\n\t(via\r\n\t\t(at 127 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7b9d8191-40eb-4da0-8295-1c1ac5a9ea06")\r\n\t)\r\n\t(via\r\n\t\t(at 137.4 95.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7c7d734e-1094-4388-8b65-90e22fcb1890")\r\n\t)\r\n\t(via\r\n\t\t(at 80 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7cd181cf-d540-48df-b459-647f56d769b2")\r\n\t)\r\n\t(via\r\n\t\t(at 104.6 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7d063b49-b0f2-4b8c-8f7d-2ceea51a541a")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7d064794-1f16-44ee-bee1-a1f3ef7c170b")\r\n\t)\r\n\t(via\r\n\t\t(at 152 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7f255f1f-2500-4fbc-8e01-0c071a16e81d")\r\n\t)\r\n\t(via\r\n\t\t(at 109.4 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7f6d7e44-9422-46a1-9366-e46d0efe5364")\r\n\t)\r\n\t(via\r\n\t\t(at 80 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "7fa94b4f-b56f-42c2-b2b7-8e8808d5c4f0")\r\n\t)\r\n\t(via\r\n\t\t(at 100 96)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "80bb02f8-329f-4246-978f-2eadd196bf2f")\r\n\t)\r\n\t(via\r\n\t\t(at 139.8 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "81a200a1-f2f0-464d-8da1-43fec28b1aaa")\r\n\t)\r\n\t(via\r\n\t\t(at 135 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "81bee881-a75c-4767-b4bb-1df0038c55e8")\r\n\t)\r\n\t(via\r\n\t\t(at 143.2 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "81c1a886-eb4e-4bc4-b4e2-c3600bffaeb2")\r\n\t)\r\n\t(via\r\n\t\t(at 127 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8255e11c-f459-4454-b47e-ae0e171c3041")\r\n\t)\r\n\t(via\r\n\t\t(at 131.8 95.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "82ece06e-c5c8-434a-9b70-e2b1628c73be")\r\n\t)\r\n\t(via\r\n\t\t(at 139.8 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "83471e0e-4b1a-477b-bbdb-2da5499caedd")\r\n\t)\r\n\t(via\r\n\t\t(at 112 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "838c81cf-598c-4bc6-af0a-af90db873bfe")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "83d6e72f-9eaa-4184-93e9-07f19b7d3f46")\r\n\t)\r\n\t(via\r\n\t\t(at 124 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "846cccad-4397-400f-bae1-ef8c876ec701")\r\n\t)\r\n\t(via\r\n\t\t(at 144 96)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "848eccc5-23bd-4675-a670-b686ca791b93")\r\n\t)\r\n\t(via\r\n\t\t(at 93.5 80.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "84b1f2f6-e0fc-4054-8e2d-dab13a31ce98")\r\n\t)\r\n\t(via\r\n\t\t(at 76 68)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8682eb02-96fd-4397-9372-8cfaedbc0437")\r\n\t)\r\n\t(via\r\n\t\t(at 101 129)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "868953d4-06bf-4767-9b31-71284284404b")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8690e5ff-014d-48c3-a76c-1f4d81c6f2f0")\r\n\t)\r\n\t(via\r\n\t\t(at 141.4 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8751e8ea-8a22-4516-854a-d79a2d23f191")\r\n\t)\r\n\t(via\r\n\t\t(at 124 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "88d3d5a0-cabc-45cf-8bf8-a195b55ed20f")\r\n\t)\r\n\t(via\r\n\t\t(at 100 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "893c66b5-afd5' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'-41e8-b3e1-4188775edc94")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "89f03e50-073e-41c8-a07a-290143993e89")\r\n\t)\r\n\t(via\r\n\t\t(at 119 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8a99448c-f558-4f9e-ab6a-9cba10615fe8")\r\n\t)\r\n\t(via\r\n\t\t(at 146.8 120.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8ab98a38-ba41-4ac6-beb7-bb052a177185")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8b9ae19f-6735-4076-bb1c-a973985b658c")\r\n\t)\r\n\t(via\r\n\t\t(at 124 136)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8bae6068-f4bc-4e17-b95c-a1ca688b3877")\r\n\t)\r\n\t(via\r\n\t\t(at 103.8 136.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8bc96c2b-81d9-40da-afca-8a0a9165d0a5")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 89.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8bcd1c62-5a46-4211-ad68-27e8062cdf4f")\r\n\t)\r\n\t(via\r\n\t\t(at 105.4 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8c788d7e-84b3-45c9-a1b8-ace77c90042f")\r\n\t)\r\n\t(via\r\n\t\t(at 133.4 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8ce6f95c-e5fa-4cc6-9d43-6aa59f80edea")\r\n\t)\r\n\t(via\r\n\t\t(at 105 125.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8d3e1404-55f5-4818-9380-2c8c7cdda125")\r\n\t)\r\n\t(via\r\n\t\t(at 105.4 121.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8d74b8de-0274-4854-9515-a67f2d883e12")\r\n\t)\r\n\t(via\r\n\t\t(at 84 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8d903f6c-74a8-4f55-86d8-caffd16a6270")\r\n\t)\r\n\t(via\r\n\t\t(at 88 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8deb641a-cb1a-4d47-8a75-571c3df2f109")\r\n\t)\r\n\t(via\r\n\t\t(at 144.8 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8e1ae9f5-f58e-4766-a2d7-9196dff83ed8")\r\n\t)\r\n\t(via\r\n\t\t(at 136 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8e5a37e8-df68-40c0-928e-5294a92cab8e")\r\n\t)\r\n\t(via\r\n\t\t(at 110.2 92.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "8ecf1292-ad51-4577-888b-d2da03657b49")\r\n\t)\r\n\t(via\r\n\t\t(at 112 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "902b8b41-afcd-4c5c-a2d0-70ce40e33022")\r\n\t)\r\n\t(via\r\n\t\t(at 136 80)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9071e807-08aa-4d95-9c52-03ac5c40201a")\r\n\t)\r\n\t(via\r\n\t\t(at 142.8 118.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "90fcdd86-b36d-4fb2-b8a2-b184cd52fd76")\r\n\t)\r\n\t(via\r\n\t\t(at 76 120)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "91001cff-cf11-43d2-8e37-67e2af7dfe78")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "91227589-129e-4ab6-b0d3-e19878acd89c")\r\n\t)\r\n\t(via\r\n\t\t(at 127 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "914391bb-63aa-4ea5-aa26-247c90b0ba70")\r\n\t)\r\n\t(via\r\n\t\t(at 119 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "92628a4e-4d35-435f-9f40-96c113914b3a")\r\n\t)\r\n\t(via\r\n\t\t(at 140 68)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "92a01bbd-648b-47a5-9364-72d05baf1d89")\r\n\t)\r\n\t(via\r\n\t\t(at 132 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "92f8f4f5-9727-40a9-b3aa-47e669c1d354")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "93061a0c-3b27-4230-85ce-d3cbc0c3b756")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "93274e2b-1b59-4571-8fcf-a8231517ff27")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "93654b81-0a97-4ef3-bfef-f7a10ce67a56")\r\n\t)\r\n\t(via\r\n\t\t(at 127 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "938a9716-d334-4415-b26b-dc26fed54aeb")\r\n\t)\r\n\t(via\r\n\t\t(at 119 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "93fa7b16-0d5d-4d35-bbd1-458eb3fb53fd")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "94963953-ad09-4389-bd13-d3c60d5a23e9")\r\n\t)\r\n\t(via\r\n\t\t(at 84 116)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "96d2a8f5-312d-41aa-8621-6cc9d74d8e38")\r\n\t)\r\n\t(via\r\n\t\t(at 132 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "975055d6-ce71-4e6c-93e5-30b97819190e")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9780b807-4626-43f2-8457-e0f40e5264ff")\r\n\t)\r\n\t(via\r\n\t\t(at 144 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "979a8483-6e49-408c-8704-14cbae5f5742")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 89.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "97b0a678-1646-410a-8d4c-7b27e6c3c85d")\r\n\t)\r\n\t(via\r\n\t\t(at 92 82.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9841919f-2cbb-4103-b1be-28b3f9777a4f")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "99940178-de76-4354-a692-0813a273dbed")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "99ced2c6-b2fc-421c-87b9-528ab7a24bbd")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9a5444b0-4b18-4404-857c-bef72fc35379")\r\n\t)\r\n\t(via\r\n\t\t(at 124 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9ae673c5-2bc7-47a9-858f-fb5b1a7cbf63")\r\n\t)\r\n\t(via\r\n\t\t(at 138.2 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9b308990-de08-4e79-9cc5-bd86be9aa163")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9b75d230-3df0-48b6-a003-5d7b1c1e8df8")\r\n\t)\r\n\t(via\r\n\t\t(at 141.8 112.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9b82459f-f9f2-4a03-9a24-af73e0d9f290")\r\n\t)\r\n\t(via\r\n\t\t(at 106.2 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9bd5e318-e265-4cac-a892-8c8316bfc179")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9dc26490-61a1-42e0-a4b1-560fd2ae8cba")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9df0a493-efae-491e-8967-f1ddd7b4a0dc")\r\n\t)\r\n\t(via\r\n\t\t(at 133.4 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9e246fb2-12b3-4924-938e-08976026d818")\r\n\t)\r\n\t(via\r\n\t\t(at 133.4 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "9f9599f8-eca0-401b-bac5-0aa7c4a1be32")\r\n\t)\r\n\t(via\r\n\t\t(at 152 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a0154ea8-d2bf-41ba-b202-a1af678cf1a4")\r\n\t)\r\n\t(via\r\n\t\t(at 84 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a0bf6cca-6709-4ee0-aa7a-655f5ef59f0b")\r\n\t)\r\n\t(via\r\n\t\t(at 128 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a0d30bdb-2df5-45b7-ac54-b1d92df0ee46")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 87.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a27f11b0-3a02-4882-8154-083fb26ff618")\r\n\t)\r\n\t(via\r\n\t\t(at 147.8 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a2c45967-76f7-41a7-88a1-4a3b2d5ad641")\r\n\t)\r\n\t(via\r\n\t\t(at 119 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a2d0ac62-607e-47b5-b944-6f9c48ca89ea")\r\n\t)\r\n\t(via\r\n\t\t(at 127 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a3354ad0-d1bf-4d36-b068-03b99a24e92e")\r\n\t)\r\n\t(via\r\n\t\t(at 84 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a3955680-b035-4512-8052-7e6e0fe3624a")\r\n\t)\r\n\t(via\r\n\t\t(at 152 76)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a3b5571c-e454-43ee-8469-8cce40cfd24b")\r\n\t)\r\n\t(via\r\n\t\t(at 100 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a42972fe-b50d-4bbf-b0df-e01fc20e6511")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 87.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a4825338-16b5-4b2a-9c2c-42ebbaa25cb9")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a5de8bcb-254f-4365-9d75-12c39329dd08")\r\n\t)\r\n\t(via\r\n\t\t(at 146.250783 115.787339)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a70794b9-5038-41a7-83c4-3194b5091210")\r\n\t)\r\n\t(via\r\n\t\t(at 136 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a7ec25ab-5038-4ee6-bdd3-5688931e4e97")\r\n\t)\r\n\t(via\r\n\t\t(at 128.8 91.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a7fff5e3-a213-48d6-9b5a-ef0ab4bb9c84")\r\n\t)\r\n\t(via\r\n\t\t(at 130.6 90.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a8177efb-020e-4009-a052-d2543b8a6b7e")\r\n\t)\r\n\t(via\r\n\t\t(at 105.6 118.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a8300d4f-d3a4-4fbc-be9f-705ea0bd29f9")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a92623c4-628a-4335-bb75-e91921b36ca9")\r\n\t)\r\n\t(via\r\n\t\t(at 141.4 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a937f888-21ff-45d3-9dcf-ae9a18ba20de")\r\n\t)\r\n\t(via\r\n\t\t(at 143 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a97939eb-4830-4963-a5eb-e07c5246f20f")\r\n\t)\r\n\t(via\r\n\t\t(at 92 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a9aaeb15-9264-4e27-a6af-a2c89bcd062d")\r\n\t)\r\n\t(via\r\n\t\t(at 104 120.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "a9bcc86b-8bda-4efd-9d68-756af8c234d5")\r\n\t)\r\n\t(via\r\n\t\t(at 106.2 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "aa188f8b-b7b2-44ec-8e7b-f95cae167e92")\r\n\t)\r\n\t(via\r\n\t\t(at 136.6 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ab6a076d-2d32-485f-bbc3-9bd3a7a07b15")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ab8850ad-f009-41c9-81f0-a9413941d071")\r\n\t)\r\n\t(via\r\n\t\t(at 101 117)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "abb1810b-9ad7-4da6-b2ce-35511d44004d")\r\n\t)\r\n\t(via\r\n\t\t(at 124.8 91)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ac502d43-8164-4702-88d9-9f14fc55feeb")\r\n\t)\r\n\t(via\r\n\t\t(at 144 120.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ac587124-e9a5-4c32-a545-0bcf980fddde")\r\n\t)\r\n\t(via\r\n\t\t(at 112 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "acb3a6ea-00b4-4441-b062-25f77eae9f11")\r\n\t)\r\n\t(via\r\n\t\t(at 136.6 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ad9ead86-a5be-4b33-aaf2-a8c03e435b1b")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "aed2fd81-71c1-4402-839b-2b6f2dc453bd")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "af24dc8a-7af0-4268-a665-7f0b7b45a406")\r\n\t)\r\n\t(via\r\n\t\t(at 110.4 93.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "af37a14b-b12f-4752-bd91-9859e734ed4c")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 89.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "afa60d86-942a-4611-9cf6-0acb77b8ccb0")\r\n\t)\r\n\t(via\r\n\t\t(at 104.6 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b16c4dec-6960-4d14-98b6-15ca80205acf")\r\n\t)\r\n\t(via\r\n\t\t(at 132 80)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b1c4a64e-977f-4ce1-a67e-84628c4edb8a")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b1f2df95-d082-4c92-a21d-7a25758eaef6")\r\n\t)\r\n\t(via\r\n\t\t(at 140 92)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b3014111-dd41-42df-8300-6d617c8ccfaa")\r\n\t)\r\n\t(via\r\n\t\t(at 112 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b48bfb01-a9ce-4e56-963b-677cdb9065ec")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b4a88974-a01a-47a0-8e47-689796775f54")\r\n\t)\r\n\t(via\r\n\t\t(at 116 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b4e76e0c-49a8-4c78-aaa9-71773e8cbc1a")\r\n\t)\r\n\t(via\r\n\t\t(at 148 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b596485c-cbab-4dca-a5dd-4cc114adabd4")\r\n\t)\r\n\t(via\r\n\t\t(at 128 91)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b69c971c-d563-47b0-ae3a-3cbc6a5e8936")\r\n\t)\r\n\t(via\r\n\t\t(at 141.4 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b796b500-28b7-47a7-bb63-9a9576268eaa")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b8053778-4fdb-4c9d-9aef-97e87ddf3092")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b83963ab-1a81-418f-af16-a561fa1c3513")\r\n\t)\r\n\t(via\r\n\t\t(at 102.8 117)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b877cf56-2109-4111-843a-61582edb046c")\r\n\t)\r\n\t(via\r\n\t\t(at 103 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b8dcfd1f-704e-4c9c-9031-f5dd6040a736")\r\n\t)\r\n\t(via\r\n\t\t(at 102.4 133.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b8efece5-095d-451a-a906-0b709e39a07c")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b95aedcd-75e1-43df-aeab-41ed7c4ced17")\r\n\t)\r\n\t(via\r\n\t\t(at 92 92)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "b9e6e338-ed17-4fda-bca2-3b47ab8fb0dd")\r\n\t)\r\n\t(via\r\n\t\t(at 144.8 119.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ba3cb6ff-42d1-4f33-bd16-188955836543"' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b')\r\n\t)\r\n\t(via\r\n\t\t(at 148 76)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ba6a68b3-5e89-40e2-b294-ded5a4042add")\r\n\t)\r\n\t(via\r\n\t\t(at 147.8 112.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bad91be9-ceec-4d58-97fd-98704e50c08f")\r\n\t)\r\n\t(via\r\n\t\t(at 107.8 92.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bae25beb-1369-48b8-ac2c-a451d271477f")\r\n\t)\r\n\t(via\r\n\t\t(at 96 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bbc0e375-ff71-4813-8197-026388995299")\r\n\t)\r\n\t(via\r\n\t\t(at 111 90.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bbef7575-9a16-4c62-b8d4-3fe0dfb44a10")\r\n\t)\r\n\t(via\r\n\t\t(at 88 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bc326fee-7ad2-40c3-af49-7541998210c4")\r\n\t)\r\n\t(via\r\n\t\t(at 80 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bc6d2f41-8553-4ebe-949f-38ca874eea90")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bcf475f6-c683-4ed7-aa96-92b847c1460d")\r\n\t)\r\n\t(via\r\n\t\t(at 152 120)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bdc277f5-1675-46eb-a239-d07ca00d97b7")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 87.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "be33e8a2-a800-4a63-8638-a04f62c083c6")\r\n\t)\r\n\t(via\r\n\t\t(at 144 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "be52f0fc-3506-473c-ae42-f9ccacef6767")\r\n\t)\r\n\t(via\r\n\t\t(at 135 95.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "be8aae09-3267-459b-b73d-9f91e1dbbad4")\r\n\t)\r\n\t(via\r\n\t\t(at 101 121.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "beb954b4-a80e-4b06-9c91-608ae922a89a")\r\n\t)\r\n\t(via\r\n\t\t(at 131.8 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bec5bcd7-5191-48b4-a86b-aec7f9f77430")\r\n\t)\r\n\t(via\r\n\t\t(at 134.4 93.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bf95bcdb-dfdc-4a18-8c47-9bba0ec2f34d")\r\n\t)\r\n\t(via\r\n\t\t(at 130.8 92)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bf9ed9c8-6e1e-4b8a-9474-06a83e42b383")\r\n\t)\r\n\t(via\r\n\t\t(at 88 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bfd2e7d5-d0aa-4173-9315-4e32155485fd")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "bfe5342d-4726-4fd5-8c54-5747e51f296b")\r\n\t)\r\n\t(via\r\n\t\t(at 108.2 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c13dd86a-8f0c-430f-a1b8-55de219d10f0")\r\n\t)\r\n\t(via\r\n\t\t(at 108.4 123)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c1a27bbe-306a-4300-a965-88d86d676b80")\r\n\t)\r\n\t(via\r\n\t\t(at 112 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c1d3a0ba-e2a8-4c25-a6d7-79abf5cde552")\r\n\t)\r\n\t(via\r\n\t\t(at 140 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c2ba6715-b256-4b58-a347-f32f855b5f4e")\r\n\t)\r\n\t(via\r\n\t\t(at 146.2 112.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c31370bb-70c1-43c3-81a9-17c4c6fa3eda")\r\n\t)\r\n\t(via\r\n\t\t(at 147.8 110)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c3646635-91ee-4ed7-8ad3-1714942e0f01")\r\n\t)\r\n\t(via\r\n\t\t(at 103.2 116.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c3d76c1d-6ddc-4bff-bfb7-466f9ba7966c")\r\n\t)\r\n\t(via\r\n\t\t(at 109.8 87)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c421aee9-ac72-4185-830f-f26f328216e9")\r\n\t)\r\n\t(via\r\n\t\t(at 102.4 126.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c4c3075d-2301-4a5f-9405-0de8569309fb")\r\n\t)\r\n\t(via\r\n\t\t(at 108 100)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c5756338-9131-4520-bc85-8781e06f05cf")\r\n\t)\r\n\t(via\r\n\t\t(at 136 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c5832d51-efb8-4997-b63e-41edcdbcebfa")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c6077f9d-ea0b-4292-9e01-a2a84f99a45d")\r\n\t)\r\n\t(via\r\n\t\t(at 80 120)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c72f5ffb-6e89-469c-9e10-b3b668e3a5c5")\r\n\t)\r\n\t(via\r\n\t\t(at 101 123.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c8312af1-f94b-4c80-a073-b116601f6e3c")\r\n\t)\r\n\t(via\r\n\t\t(at 144 136)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c8933df2-937c-4a3a-aa5d-a199a6d2d992")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c8960c42-d338-4fb5-b5fe-88e9f33563da")\r\n\t)\r\n\t(via\r\n\t\t(at 144.8 110)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c8b2e89e-d094-4627-a250-f69082d1294e")\r\n\t)\r\n\t(via\r\n\t\t(at 142.4 116.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c9828d68-eb10-45ba-8e79-ffd61e36b8fc")\r\n\t)\r\n\t(via\r\n\t\t(at 120 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "c9c50840-e122-42f7-81a8-a8beab54cf5c")\r\n\t)\r\n\t(via\r\n\t\t(at 101 120)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ca9fc7f5-be00-49f7-b107-4a84959a365d")\r\n\t)\r\n\t(via\r\n\t\t(at 84 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cb0c6479-29ed-4a89-9b54-be0e5b3a764d")\r\n\t)\r\n\t(via\r\n\t\t(at 75.6 94.7)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cb0cb07a-9ca4-43e6-902f-5b3b0526eeae")\r\n\t)\r\n\t(via\r\n\t\t(at 88 120)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cbcd6383-96a9-448e-9567-6985160074d6")\r\n\t)\r\n\t(via\r\n\t\t(at 107 94.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cc2c3ab5-3f90-420d-b8a9-faed29b735b4")\r\n\t)\r\n\t(via\r\n\t\t(at 139.8 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cc53c30b-d3c9-42bb-a63c-8b94e573e08e")\r\n\t)\r\n\t(via\r\n\t\t(at 128 128)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ccb3cbd9-9038-442d-b6e2-f212e2629878")\r\n\t)\r\n\t(via\r\n\t\t(at 117.4 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cd1a1e27-5d38-427b-bca0-4cb57baca52c")\r\n\t)\r\n\t(via\r\n\t\t(at 88 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cd1bd3e0-111e-451b-b77a-149a61c36e34")\r\n\t)\r\n\t(via\r\n\t\t(at 127 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cd275357-6fb4-474e-be87-c5245fe25d3b")\r\n\t)\r\n\t(via\r\n\t\t(at 76 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cd7f5fa9-4097-4a0a-95bc-56783c680b44")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cda3f50c-3a93-4d57-b524-dbc753fc2935")\r\n\t)\r\n\t(via\r\n\t\t(at 107 121.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ce4ecb7c-66bd-40cb-a5b5-cea08d6e5e54")\r\n\t)\r\n\t(via\r\n\t\t(at 128 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ce6400' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'6d-905c-4134-933f-898b8cd81c67")\r\n\t)\r\n\t(via\r\n\t\t(at 148 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cef5a5b0-c397-43b0-845f-4f2997c835d3")\r\n\t)\r\n\t(via\r\n\t\t(at 137.4 99)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cf00e2e0-b46c-477e-8531-de5b537e27e8")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cf4c52d7-e6eb-406f-8289-579cd44e6a40")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 115.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "cff7e646-3fef-467d-9698-6a017e83d67a")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d0f666ca-9ea1-4022-b890-621f82da6b63")\r\n\t)\r\n\t(via\r\n\t\t(at 120 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d12cf9f6-f82d-43ed-be9d-b07aab02ec0f")\r\n\t)\r\n\t(via\r\n\t\t(at 119 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d15dd06d-946c-499a-80e5-7550c52da8aa")\r\n\t)\r\n\t(via\r\n\t\t(at 96 92)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d1f9927e-2dac-4687-9eb8-ec3f321877ec")\r\n\t)\r\n\t(via\r\n\t\t(at 136 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d2b8df6d-af47-46bb-bd32-feb1004418e0")\r\n\t)\r\n\t(via\r\n\t\t(at 144 92)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d309475a-c821-4bb9-87cc-b5455baec194")\r\n\t)\r\n\t(via\r\n\t\t(at 109 96.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d337741f-0f1e-44c3-a7e9-0147ee26762d")\r\n\t)\r\n\t(via\r\n\t\t(at 119 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d3462d66-50d6-4568-93b1-de0c87cf8e4e")\r\n\t)\r\n\t(via\r\n\t\t(at 88 76)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d351be09-32b5-4bf9-bd76-49e1111cbbbd")\r\n\t)\r\n\t(via\r\n\t\t(at 120 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d4179256-5a30-42eb-b19a-9792ee068661")\r\n\t)\r\n\t(via\r\n\t\t(at 138.2 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d4396a41-3c4d-44c3-aae8-2aa1fd2a2cd8")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d44708f5-39f8-4f4c-9b6b-6e922a7444ed")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d454fdc3-409b-40a7-9d3d-79337de6334f")\r\n\t)\r\n\t(via\r\n\t\t(at 140 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d466671c-7615-46a6-abf7-c836f0a75a81")\r\n\t)\r\n\t(via\r\n\t\t(at 128 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d4a0b575-30f4-4505-849f-a0a8bb5f8f8a")\r\n\t)\r\n\t(via\r\n\t\t(at 135 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d4b8597a-31fd-4bf0-aaf4-fbb66287f587")\r\n\t)\r\n\t(via\r\n\t\t(at 136 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d4d09632-5d83-4b86-9123-bcc2b01f8451")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 98)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d50de7b6-c231-4f3d-a06f-3bf77d2e669c")\r\n\t)\r\n\t(via\r\n\t\t(at 128.6 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d5858263-75b2-4940-8e38-1ff7675ffaff")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d7955bb8-ea34-4f60-bfa7-93b4b06ee301")\r\n\t)\r\n\t(via\r\n\t\t(at 88 100)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d7b6628d-c6e6-429b-b2ef-1dfb5be64f25")\r\n\t)\r\n\t(via\r\n\t\t(at 144 68)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d7e965c1-ddc2-41eb-99ee-fe665c5eb86f")\r\n\t)\r\n\t(via\r\n\t\t(at 152 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d91ef72b-0ea9-4134-ab72-74e3a47051c8")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 92.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d93f7840-633e-4d3e-a8c7-32bb82262f1c")\r\n\t)\r\n\t(via\r\n\t\t(at 112 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d96d0e03-71ba-4ba2-bd17-773a5fefa8b7")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "d9854744-abac-40e1-8826-9a4d6b685ed5")\r\n\t)\r\n\t(via\r\n\t\t(at 147.8 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "da080b41-6f30-4c02-bca0-f022a5b756ce")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 89.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "da870e90-2e88-4e16-8c9d-aef1366598ea")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 101.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "dacdb160-a0fe-4c20-ad31-35578d4318d1")\r\n\t)\r\n\t(via\r\n\t\t(at 144 64)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "db080cd4-db05-4c88-b6b7-29fa84fcb94f")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "dc7af5c6-0b1c-4d33-88a1-635eca99bc94")\r\n\t)\r\n\t(via\r\n\t\t(at 84 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "dd1baefa-560e-4ca3-86f5-cee22ee102c6")\r\n\t)\r\n\t(via\r\n\t\t(at 131.6 87.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "dd4e2951-dc26-4572-af8f-3c5463168550")\r\n\t)\r\n\t(via\r\n\t\t(at 124 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "dddb2396-ca25-4d02-9ff7-0fd8d0e877f5")\r\n\t)\r\n\t(via\r\n\t\t(at 120 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "dde7edc2-5401-405b-8099-165bde6415ca")\r\n\t)\r\n\t(via\r\n\t\t(at 136 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ddf00549-6b2f-413d-bdc2-2edb3ed28f40")\r\n\t)\r\n\t(via\r\n\t\t(at 140 112.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "GND")\r\n\t\t(uuid "de847a4d-abb3-4bae-a508-69b3ec4796ac")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "deeea3fa-c4df-4b1a-8e21-36e04449856d")\r\n\t)\r\n\t(via\r\n\t\t(at 135.4 111.75)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "df632568-c0ab-4e4f-a9da-8a2b1da1a127")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "dfc19be3-71a0-4be2-b336-eadc7ad5db6a")\r\n\t)\r\n\t(via\r\n\t\t(at 122.2 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e070b8d2-0f69-41ea-a479-e6e395a1566d")\r\n\t)\r\n\t(via\r\n\t\t(at 115.8 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e0b0879b-a1a7-41ba-b985-aa7be6497237")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e1153771-42a0-4c3c-8477-e066968b6f03")\r\n\t)\r\n\t(via\r\n\t\t(at 125.4 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e1484fe6-e51e-4396-ba41-5d561bdd9493")\r\n\t)\r\n\t(via\r\n\t\t(at 139.4 113.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e308956b-673b-418e-99d3-aa3415066ec1")\r\n\t)\r\n\t(via\r\n\t\t(at 152 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e373cbd1-ffc3-4347-816a-9b4a7e9ca423")\r\n\t)\r\n\t(via\r\n\t\t(at 101 118.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(ne' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b't "GND")\r\n\t\t(uuid "e40c07b2-5dee-429e-abf9-1528d7e5110a")\r\n\t)\r\n\t(via\r\n\t\t(at 84 88)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e430933f-e0ef-4b5d-aed3-42b0d60609b4")\r\n\t)\r\n\t(via\r\n\t\t(at 104.8 119.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e4c46376-5f43-4553-b026-6d8302fab5dc")\r\n\t)\r\n\t(via\r\n\t\t(at 124 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e544ac25-6216-472f-8dfb-1753b075c500")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e5d98260-c74e-4073-9f3c-2b31c1b79e00")\r\n\t)\r\n\t(via\r\n\t\t(at 132 104)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e6228799-e75b-45af-8229-a45c7ab0e1ef")\r\n\t)\r\n\t(via\r\n\t\t(at 145.8 121.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e65f5051-f245-4833-a7ef-97bfccea8e85")\r\n\t)\r\n\t(via\r\n\t\t(at 101 130.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e67707b5-73e6-4d0d-b4ee-3eaab1cba634")\r\n\t)\r\n\t(via\r\n\t\t(at 100 116)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e6c0dc92-04fd-4b55-ab2f-3c9a687a5a08")\r\n\t)\r\n\t(via\r\n\t\t(at 120 136)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e70a1142-3ea0-4d82-b6b5-826eede8305f")\r\n\t)\r\n\t(via\r\n\t\t(at 120 108)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e7483171-9d81-4acf-8f1a-13cbef63e9ae")\r\n\t)\r\n\t(via\r\n\t\t(at 152 92)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e79b7f2a-92d0-4714-b5ca-43f9f7ccbbc7")\r\n\t)\r\n\t(via\r\n\t\t(at 132 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e823ecda-63ac-49bd-b3eb-1b9c53cf1560")\r\n\t)\r\n\t(via\r\n\t\t(at 148 80)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e8240fb4-10e2-4f02-a71a-41c9b66405d8")\r\n\t)\r\n\t(via\r\n\t\t(at 120.6 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e91651ec-452f-46fd-bd85-2c79875f40bf")\r\n\t)\r\n\t(via\r\n\t\t(at 131.8 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e932c3f7-c382-4bcf-a3cb-43a8f1c3edc1")\r\n\t)\r\n\t(via\r\n\t\t(at 140.8 115)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "e9b9f081-326c-406a-9898-3901fb2a7b68")\r\n\t)\r\n\t(via\r\n\t\t(at 136.6 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ea32ee97-abe6-4cfb-bf1b-fb4b4493e449")\r\n\t)\r\n\t(via\r\n\t\t(at 106.2 125.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "eb4cf623-ce73-40b0-90e0-5613196164bb")\r\n\t)\r\n\t(via\r\n\t\t(at 138.2 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ebba56ac-a5cd-4fab-afe2-55e8a9154eed")\r\n\t)\r\n\t(via\r\n\t\t(at 144.6 117.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ec07efa9-f967-4c80-80a6-b961a89310dc")\r\n\t)\r\n\t(via\r\n\t\t(at 101 115.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ec60a44b-8a6c-43e1-85b2-dec4160689b4")\r\n\t)\r\n\t(via\r\n\t\t(at 84.3 103.1)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ec8c3a58-d02e-4f64-9956-a00d7fd8b34d")\r\n\t)\r\n\t(via\r\n\t\t(at 111 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ed5fea8d-5b0e-4ff6-844a-3a9495ace7a1")\r\n\t)\r\n\t(via\r\n\t\t(at 136.6 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ed72cc94-5ed6-48ce-8a2c-9286e476bb36")\r\n\t)\r\n\t(via\r\n\t\t(at 127 95.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "edeb4890-362e-4d8c-bce9-b12a75bb0fd0")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "edfe0169-6548-419f-ac60-f8c8c0506adb")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 90.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ee27545c-705b-418c-ac10-bfccea99b57c")\r\n\t)\r\n\t(via\r\n\t\t(at 152 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "eec50ff9-f6a7-4bde-8798-c53b61362701")\r\n\t)\r\n\t(via\r\n\t\t(at 128 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ef39d9fb-11c4-46b9-9645-dac8d6a59b33")\r\n\t)\r\n\t(via\r\n\t\t(at 152 80)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "efe98550-4fe0-45e7-88d3-f51ab758259a")\r\n\t)\r\n\t(via\r\n\t\t(at 132 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f0108e90-25ed-453e-9a7f-cebbedecf7bb")\r\n\t)\r\n\t(via\r\n\t\t(at 131.8 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f040b744-5d87-4dd0-b379-72f684e69618")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 97)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f0bbc207-0ef2-45b0-9ef2-71d71a58482b")\r\n\t)\r\n\t(via\r\n\t\t(at 130.2 87.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f0e1bc92-bd56-4f59-a302-19391e5c71fc")\r\n\t)\r\n\t(via\r\n\t\t(at 148 72)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f1570742-29e3-4478-adc8-ad4a5658a21f")\r\n\t)\r\n\t(via\r\n\t\t(at 124 80)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f1bbf99b-21b3-466c-8d07-a85e9cf81737")\r\n\t)\r\n\t(via\r\n\t\t(at 88 80)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f3554a16-d719-4416-8d60-bee9fde1dddb")\r\n\t)\r\n\t(via\r\n\t\t(at 146.2 110)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f3b1fc80-a022-4067-84b8-07ac404ba43e")\r\n\t)\r\n\t(via\r\n\t\t(at 123.8 87.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f4299543-8886-4f65-b4c7-02ffea01b6a6")\r\n\t)\r\n\t(via\r\n\t\t(at 80 124)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f43b7cce-2249-4065-8864-bf00562a2492")\r\n\t)\r\n\t(via\r\n\t\t(at 88 92)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f50f2d1f-fa3c-42cd-b4c2-2d847c9f7a9e")\r\n\t)\r\n\t(via\r\n\t\t(at 112 136)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f534341b-7ca1-4ecd-91b9-d6e32ca5b29f")\r\n\t)\r\n\t(via\r\n\t\t(at 88 140)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f675546e-a9d6-4d0d-9491-106f04778ab1")\r\n\t)\r\n\t(via\r\n\t\t(at 103.8 133.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f8ccde6a-a424-4a0c-9fa9-08e5ffc837d6")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 117.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f9c80382-d08d-427a-8424-c0d177809e9b")\r\n\t)\r\n\t(via\r\n\t\t(at 128 68)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "f9deabe2-829d-4c28-adbe-68ee8e5879b1")\r\n\t)\r\n\t(via\r\n\t\t(at 107.2 82.1)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fa43bc23-a1db-444c-9fc1-0a0e01ceeaae")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 99.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fa9cd281-3f37-4788-995a-0ce9d34d3fec")\r\n\t)\r\n\t(via\r\n\t\t(at 109.4 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fae62691-82b0-4672-b8fa-6aeb2fb6f347")\r\n\t)\r\n\t(via\r\n\t\t(at 111 120.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "faf39a57-2a80-4d28-bfea-cb59d8d93833")\r\n\t)\r\n\t(via\r\n\t\t(at 137.4 97.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fafde759-a02c-41a9-816a-5747759817b9")\r\n\t)\r\n\t(via\r\n\t\t(at 116 136)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fb7bdbc1-fa0d-49d7-8143-940f4b7ea4ed")\r\n\t)\r\n\t(via\r\n\t\t(at 114.2 122.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fbd4ec19-3533-42ef-9d69-a7f00b60bdc2")\r\n\t)\r\n\t(via\r\n\t\t(at 109.4 119)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fbf0cb29-88bc-4095-8e38-f51812eb3091")\r\n\t)\r\n\t(via\r\n\t\t(at 96 84)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fc53cade-6a1d-42b9-9d60-0bbfebe6f189")\r\n\t)\r\n\t(via\r\n\t\t(at 112.6 90.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fca5e467-68fd-4980-aa9a-1614883ca0b6")\r\n\t)\r\n\t(via\r\n\t\t(at 85.3 98.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fcfb80be-8359-4cc5-94c0-6c6f05056105")\r\n\t)\r\n\t(via\r\n\t\t(at 100.8 132)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "fd58484b-89a8-45c3-809e-059f0f840817")\r\n\t)\r\n\t(via\r\n\t\t(at 147.8 114.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(free yes)\r\n\t\t(net "GND")\r\n\t\t(uuid "ffbd8595-94aa-4670-8f58-957477364634")\r\n\t)\r\n\t(segment\r\n\t\t(start 92 79.3)\r\n\t\t(end 92.3 79)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "062388ff-e76c-4fb2-990d-8eb1ead56954")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.4 97.3)\r\n\t\t(end 145.4 96.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "0f7ef413-4446-40fc-8205-2e6f12c2b86f")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.1425 76.84375)\r\n\t\t(end 100.15625 76.84375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "1b9fb4f7-4ab2-4238-9a09-19e46ba03826")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.8625 71.225)\r\n\t\t(end 138.725 71.225)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "1d6aea9e-5646-4e1d-aedb-ae4d50128842")\r\n\t)\r\n\t(segment\r\n\t\t(start 136.4 112.8)\r\n\t\t(end 136.4 112.05)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "203fe486-5f88-4626-8b00-df2a8c765ee7")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.25 110.15)\r\n\t\t(end 137.2 110.1)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "30c07bd3-2b6c-4d8e-b8a7-bd964802420e")\r\n\t)\r\n\t(segment\r\n\t\t(start 75.625 74.64)\r\n\t\t(end 75.625 76.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "3195b250-631e-4fab-b2c6-efa294c5fdb4")\r\n\t)\r\n\t(segment\r\n\t\t(start 139.8625 70.3375)\r\n\t\t(end 139.9 70.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "31d0c997-c6d7-4285-b145-ad2e79740630")\r\n\t)\r\n\t(segment\r\n\t\t(start 82.3875 76.8125)\r\n\t\t(end 82.4 76.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "371f9a36-3fa8-4dba-8a3c-5b893a2ba47f")\r\n\t)\r\n\t(segment\r\n\t\t(start 75.625 76.6)\r\n\t\t(end 75.625 77.675)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "3e77eb5a-8251-41ba-8c7b-301aeb9abeb7")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.9 93.34)\r\n\t\t(end 93.3 93.34)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "4f986b3c-fcf8-4380-962e-fbaf98f32388")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.621362 77.801362)\r\n\t\t(end 107.07 77.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "65ec065b-a703-4c58-9d08-8d3207e53ccf")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.85 135)\r\n\t\t(end 94.85 134.398531)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "6de995b2-8ae7-4d80-9365-605cac0d30aa")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.3 93.34)\r\n\t\t(end 93.3 94.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "7bce9c39-4fc3-491f-a8be-4b94ae00bf0e")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.8125 75.51875)\r\n\t\t(end 114.18125 75.51875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "84def494-4217-490a-8cde-61947c368116")\r\n\t)\r\n\t(segment\r\n\t\t(start 82.3875 77.45)\r\n\t\t(end 82.3875 76.8125)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "88d3f004-d50c-4554-bb6f-f8a424edd42d")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.235 77.575)\r\n\t\t(end 92.235 78.935)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "897ede7f-96be-4611-9334-2905fd335dfd")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.58 133.4)\r\n\t\t(end 93.851469 133.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "89d92377-a095-4efe-9470-a0dc0964ff2e")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.8125 74.5325)\r\n\t\t(end 113.78 74.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "8e4a1ff5-acee-4e4b-a54b-01dfceefbd04")\r\n\t)\r\n\t(segment\r\n\t\t(start 139.8625 71.225)\r\n\t\t(end 139.8625 70.3375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "91d850c3-d33b-4055-9bf1-8a5ab0f8c953")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.725 71.225)\r\n\t\t(end 138.4 70.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "93aa5b52-a3fc-47c1-9886-050dd8b504d2")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.2 89.32)\r\n\t\t(end 145.2 89.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "9956f42f-1240-4409-9ce8-32cada80c073")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.621362 78.965734)\r\n\t\t(end 107.621362 77.801362)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "9a418edf-eed8-48e2-bafe-aba87e22004b")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.25 111.2)\r\n\t\t(end 137.25 110.15)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "9e85e2e6-2411-4893-bcc2-98bc3cc85190")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.07 77.25)\r\n\t\t(end 107.07 76.67)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "a581c22c-abcc-4d26-9652-41c2386234f6")\r\n\t)\r\n\t(segment\r\n\t\t(start 75.625 77.675)\r\n\t\t(end 75.6 77.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "a9500ac5-afad-4864-8145-7205b3032ff7")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.85 134.398531)\r\n\t\t(end 94.557535 134.106066)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "b2795f14-57a0-400e-a0ab-68776a1df1e7")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.8125 75.51875)\r\n\t\t(end 113.8125 74.5325)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "b6197c92-37fb-433a-9418-ee6355347f0f")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.824999 70.3)\r\n\t\t(end 139.9 70.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "bdf9de83-e7e2-4983-b1cc-134d4256fc8a")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.851469 133.4)\r\n\t\t(end 94.557535 134.106066)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "c0ed9e19-70a6-4554-94bd-50f662e3bd60")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.3625 70.837501)\r\n\t\t(end 140.824999 70.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "c2ed03ca-9c1a-4279-9caa-3100aca8cfee")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.1425 76.84375)\r\n\t\t(end 99.1425 76.1375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "c33fc236-0fbd-4f71-8d6a-c04bf19ce50d")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.07 76.67)\r\n\t\t(end 106.1 75.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "c4f8f9da-7dea-45df-abba-edc1ba6a1d59")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.15625 76.84375)\r\n\t\t(end 100.2 76.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "c7107c33-2a07-4d8d-90d2-0a3d0b6ba2b5")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.18125 75.51875)\r\n\t\t(end 115.2 74.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "ca3d1c88-45c4-4058-832f-d2e345656883")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.88 79.3)\r\n\t\t(end 92 79.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "cefc55ec-cdb2-4646-92a4-d10e61a91a08")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.1425 76.1375)\r\n\t\t(end 99.48 75.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "d87aa653-86ae-427c-9b1c-84787f98fae4")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.235 78.935)\r\n\t\t(end 92.3 79)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "dbb5c86e-2420-4c8d-b17e-5b4b09c23559")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.5 93.34)\r\n\t\t(end 94.5 94.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "ecfd0962-66c3-42e9-ac06-aed039d6cafe")\r\n\t)\r\n\t(segment\r\n\t\t(start 136.4 112.05)\r\n\t\t(end 137.25 111.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "ef2b4288-5c76-447d-ae66-b0aac47e3867")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.8 77.7)\r\n\t\t(end 138.8 78.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "f043c1d5-e3e7-401c-9073-243bdaa20387")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.3625 71.225)\r\n\t\t(end 141.3625 70.837501)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "f1cf862a-14f5-4e9e-8b0b-d9a6e6ec20c2")\r\n\t)\r\n\t(via\r\n\t\t(at 82.4 76.8)' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "04494984-0d79-45a5-8a85-c76531923899")\r\n\t)\r\n\t(via\r\n\t\t(at 75.6 77.7)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "0b4b19e4-ef86-4ca9-8c3d-fd2f3f3a3a8f")\r\n\t)\r\n\t(via\r\n\t\t(at 139.9 70.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "36095f48-a68f-4e54-9e72-cf8de57ea757")\r\n\t)\r\n\t(via\r\n\t\t(at 115.2 74.5)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "372251e0-d85b-4501-9190-e763453a7a1e")\r\n\t)\r\n\t(via\r\n\t\t(at 93.3 94.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "6a7529bd-3b5d-469d-9c79-e95d09149a85")\r\n\t)\r\n\t(via\r\n\t\t(at 106.1 75.7)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "82cfdc03-ccf2-4ecc-9726-527cac935f2a")\r\n\t)\r\n\t(via\r\n\t\t(at 137.2 110.1)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "85a03fbe-fcae-47a5-b817-155b5259d0cb")\r\n\t)\r\n\t(via\r\n\t\t(at 100.2 76.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "86c9adf8-e5cd-4014-96fc-e089d54c5d60")\r\n\t)\r\n\t(via\r\n\t\t(at 138.8 78.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "8cac0ca2-92dc-4dd9-8b97-5a27b1116498")\r\n\t)\r\n\t(via\r\n\t\t(at 138.4 70.9)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "91c2aba8-7435-4502-beb4-07107fff268b")\r\n\t)\r\n\t(via\r\n\t\t(at 145.2 89.9)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "afd97168-35e6-4446-9dfb-6b36e6396335")\r\n\t)\r\n\t(via\r\n\t\t(at 94.5 94.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "bacbe101-014b-4647-a228-35eebc28a764")\r\n\t)\r\n\t(via\r\n\t\t(at 94.557535 134.106066)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "d08cac78-d852-4020-ada1-9525938666e7")\r\n\t)\r\n\t(via\r\n\t\t(at 145.4 96.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "f5f8dfe8-c473-4a8c-8ab2-4f411e1c5577")\r\n\t)\r\n\t(via\r\n\t\t(at 92.3 79)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+3V3")\r\n\t\t(uuid "fff43de0-f145-427f-acb7-13fc11898feb")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.34 77.25)\r\n\t\t(end 109.42125 76.16875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-RXCAN)")\r\n\t\t(uuid "01d7f647-f2af-461a-9cd5-7eb16491c68d")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.42125 76.16875)\r\n\t\t(end 110.8125 76.16875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-RXCAN)")\r\n\t\t(uuid "fd22362c-b63e-4b62-bb0c-c062ebd9eb06")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 68.975)\r\n\t\t(end 104.699999 69.174999)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "71723ac4-3516-4988-b93a-cf07ca13e0b1")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.91 70.4)\r\n\t\t(end 106.91 72.14)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "8ad3b6f4-f017-43d4-ad02-401341b4ba5e")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.91 72.14)\r\n\t\t(end 107.07 72.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "971cb9ca-e1b2-4758-9281-9b433936a1b4")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.699999 69.174999)\r\n\t\t(end 105.684999 69.174999)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "a3a5bb7e-6b94-47e4-ae1a-ffeb2046f564")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.684999 69.174999)\r\n\t\t(end 106.91 70.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "d77f27bf-f57a-4ac3-b4b2-ca4e0af006e9")\r\n\t)\r\n\t(via\r\n\t\t(at 104.5 68.975)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "2ded5615-9d04-4450-bfa2-9755435c5082")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.05 67.55)\r\n\t\t(end 101.875 67.725)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "128d6f01-1add-46de-ba56-140fc9d23393")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.875 67.725)\r\n\t\t(end 101.875 68.056802)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "7d340bb5-8620-42ad-824e-31c5c67bc379")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.300001 69.174999)\r\n\t\t(end 104.5 68.975)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "80deed76-d5e2-4c3f-8dff-e40aee1d1c2f")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.993197 69.174999)\r\n\t\t(end 104.300001 69.174999)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "a427a9ab-908d-4b2e-862d-b34681f97766")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.875 68.056802)\r\n\t\t(end 102.993197 69.174999)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "af613321-5cff-4403-ac4d-717bede16f91")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.05 67.25)\r\n\t\t(end 102.05 67.55)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2-")\r\n\t\t(uuid "c5c1928c-df0a-4b7d-ab24-9abdfe6f39f2")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.89 70.4)\r\n\t\t(end 105.89 72.21)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "538c67ee-671e-4d01-9231-707785e46ad9")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 69.825)\r\n\t\t(end 104.699999 69.625001)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "57c21632-9be4-43f3-be4a-0af23114660c")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.89 72.21)\r\n\t\t(end 105.8 72.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "792bc36d-3ea8-47da-b51a-8103a5bb3829")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.498604 69.625001)\r\n\t\t(end 105.89 70.016397)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "95e5dbb2-d57c-46bc-a904-497dcd454271")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.89 70.016397)\r\n\t\t(end 105.89 70.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "aec64e6c-f6c9-459a-b686-36203160270b")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.699999 69.625001)\r\n\t\t(end 105.498604 69.625001)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "e56d0952-9235-4d0b-8147-82604a1253fe")\r\n\t)\r\n\t(via\r\n\t\t(at 104.5 69.825)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "bfebb38d-af8c-4bed-ba8f-1cc54c2ad240")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.300001 69.625001)\r\n\t\t(end 104.5 69.825)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "00f343c2-d3a8-41fc-b745-d4d39f1b75d5")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.25 67.55)\r\n\t\t(end 101.425 67.725)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "429a9378-9c5c-4392-be6a-f0aa23a0b11d")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.806803 69.625001)\r\n\t\t(end 104.300001 69.625001)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "491982a0-be04-438c-af70-a87533130328")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.425 67.725)\r\n\t\t(end 101.425 68.243198)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "66835fb3-6541-4c46-81c7-74d0940b3511")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.25 67.25)\r\n\t\t(end 101.25 67.55)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "ccc37040-5ba6-4de4-a9e3-7f8036896895")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.425 68.243198)\r\n\t\t(end 102.806803 69.625001)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2+")\r\n\t\t(uuid "e5888b3f-59c3-4c22-88fd-986952fbb8ed")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.17 72.3)\r\n\t\t(end 103.14 72.33)\r\n\t\t(width 0.25)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U7-Rs)")\r\n\t\t(uuid "0d1bfe1e-87c9-46b5-a414-8f211b201646")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.53 72.3)\r\n\t\t(end 103.17 72.3)\r\n\t\t(width 0.25)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U7-Rs)")\r\n\t\t(uuid "1a745c2c-4a83-4f8b-a00d-1be03cce737e")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.35625 78.11875)\r\n\t\t(end 106.6 80.875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC2)")\r\n\t\t(uuid "224ae062-a951-45f2-a958-8e989d665396")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.13 81.49)\r\n\t\t(end 105.985 81.49)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC2)")\r\n\t\t(uuid "2e7927b1-c1b7-4943-8bf0-f8878fb2e628")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.985 81.49)\r\n\t\t(end 106.6 80.875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC2)")\r\n\t\t(uuid "349a8f50-7a30-41c3-81ac-096ed78368ba")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.8125 78.11875)\r\n\t\t(end 109.35625 78.11875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC2)")\r\n\t\t(uuid "d8fd99e6-c762-4a17-be50-640997136544")\r\n\t)\r\n\t(segment\r\n\t\t(start 143.3575 73.4625)\r\n\t\t(end 143.4 73.42)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "1134e17b-e52f-4ead-bcf8-bcaf0dcb6ec4")\r\n\t)\r\n\t(segment\r\n\t\t(start 143.4 73.42)\r\n\t\t(end 144.4 73.42)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'8_VOUT")\r\n\t\t(uuid "292cea16-a138-4e87-b93f-c7af590fac90")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.1 74.12)\r\n\t\t(end 145.1 75.01)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "4111c623-ae9e-4aaa-a778-0f3ef9cdf279")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.1 75.01)\r\n\t\t(end 144.11 76)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "ad298a90-2012-47ea-8762-44878ea0c556")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.1 73.4625)\r\n\t\t(end 143.3575 73.4625)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "c0f296db-a0a3-4423-b142-02c0e307561c")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.4 73.42)\r\n\t\t(end 145.1 74.12)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "e3e32fd3-55e1-458f-88d2-1ce09c12117e")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.4 73.42)\r\n\t\t(end 144.4 72.7)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "ec7f01f6-877d-45c5-aafe-4101cb59455f")\r\n\t)\r\n\t(via\r\n\t\t(at 144.4 72.7)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "355d1187-2fb5-4b21-a11c-4ecbce7c65ec")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.4 72.7)\r\n\t\t(end 144.4 71.4)\r\n\t\t(width 0.3)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "04dcbcff-9cfb-4817-bf62-e5bf02573e43")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.4 71.4)\r\n\t\t(end 135.6 62.6)\r\n\t\t(width 0.3)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "115265a1-71a4-4883-81eb-6b70d3c8180a")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.05 62.900001)\r\n\t\t(end 98.05 63.45)\r\n\t\t(width 0.3)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "25aa6c04-25e9-4e0e-8f03-99271b0fb8f2")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.350001 62.6)\r\n\t\t(end 98.05 62.900001)\r\n\t\t(width 0.3)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "7a66b345-dc6a-4a21-94e2-d2dd64498cda")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.05 67.25)\r\n\t\t(end 98.05 63.45)\r\n\t\t(width 0.25)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "e7bf7be9-be71-4f6a-bafa-5aa70c569a10")\r\n\t)\r\n\t(segment\r\n\t\t(start 135.6 62.6)\r\n\t\t(end 98.350001 62.6)\r\n\t\t(width 0.3)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_8_VOUT")\r\n\t\t(uuid "eccbc704-6852-4b02-9c81-014adb8d7004")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.8125 78.76875)\r\n\t\t(end 110.611459 78.76875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC1)")\r\n\t\t(uuid "14e1fde8-46a5-4470-affd-a77dfb2d7eed")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.025 80.355209)\r\n\t\t(end 109.025 82.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC1)")\r\n\t\t(uuid "331b15d0-04e0-4876-8cde-1201e4e81b28")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.025 82.25)\r\n\t\t(end 108.2 83.075)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC1)")\r\n\t\t(uuid "47142065-6a5e-4884-aced-6480ae23b5a1")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.611459 78.76875)\r\n\t\t(end 109.025 80.355209)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC1)")\r\n\t\t(uuid "5192f26b-5e1c-49ec-8ec4-fe9fd0572ba5")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.89 84.55)\r\n\t\t(end 107.89 83.385)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC1)")\r\n\t\t(uuid "74eb9490-e09b-46bc-a046-be1d99327673")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.89 83.385)\r\n\t\t(end 108.2 83.075)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U5-OSC1)")\r\n\t\t(uuid "cde8ff46-f460-41a2-8fe4-fc2ec266c141")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.13 132.52)\r\n\t\t(end 118.61 132)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J3-CC1)")\r\n\t\t(uuid "98f80873-63b5-4e7d-8078-e0b90a25a7ed")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.13 133.545)\r\n\t\t(end 119.13 132.52)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J3-CC1)")\r\n\t\t(uuid "c19aab0a-bd53-467f-822b-3a3030526d09")\r\n\t)\r\n\t(segment\r\n\t\t(start 97.25 75.35)\r\n\t\t(end 97.2 75.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "059a06d3-02b8-40c6-91e3-e67fd93cb41b")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.3 90.26)\r\n\t\t(end 93.7 90.26)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "0b2f5b63-8bb5-45a8-948e-b06272cb7752")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.5 90.26)\r\n\t\t(end 92.9 90.26)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "27330904-a38a-43af-b136-bf1585ff5da7")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.5 89.25)\r\n\t\t(end 94.5 87.88)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "6b063b2f-593c-4709-9cb5-d1e519ee38a9")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.7 90.26)\r\n\t\t(end 94.1 90.26)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "7b18a4a0-2ec9-4adf-aad9-b76b04ae9da1")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.9 90.26)\r\n\t\t(end 93.3 90.26)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "874352df-f150-45dd-b392-9bb0c11b5cea")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.1 90.26)\r\n\t\t(end 94.5 90.26)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "98f278b0-8638-4020-a570-e6fcdf2c608e")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.5 87.88)\r\n\t\t(end 94.42 87.8)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "a5e82324-dda5-4bcc-9b8b-ae90fcd18073")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.42 87.8)\r\n\t\t(end 94.42 86.8)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "cec76c02-a69e-4fe6-8ea2-dccfe2a2a84e")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.5 90.26)\r\n\t\t(end 94.5 89.25)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "dd80a52f-0853-49f3-a8fe-ef50027dbaf1")\r\n\t)\r\n\t(segment\r\n\t\t(start 97.25 65.6)\r\n\t\t(end 97.25 75.35)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "e2b9584a-1572-4d27-9294-55e7a7cde5cd")\r\n\t)\r\n\t(via\r\n\t\t(at 97.25 65.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "3e495f4f-98da-4821-8080-0e64d6b6b7e7")\r\n\t)\r\n\t(via\r\n\t\t(at 94.5 89.25)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "4fe05543-6174-4fb2-a531-7a497fcf9141")\r\n\t)\r\n\t(via\r\n\t\t(at 97.2 75.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "941e01e4-9c2e-4287-89c2-d88d7b2556f0")\r\n\t)\r\n\t(segment\r\n\t\t(start 97.25 63.45)\r\n\t\t(end 97.25 67.25)\r\n\t\t(width 0.25)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "4da57bdc-925e-4e36-b678-53203632bffa")\r\n\t)\r\n\t(segment\r\n\t\t(start 97.2 75.4)\r\n\t\t(end 94.5 78.1)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "b3c99d20-08fa-42b3-a722-87d4c9150ef9")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.5 78.1)\r\n\t\t(end 94.5 89.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "+5V")\r\n\t\t(uuid "b61f32d9-2b8c-4387-b1f1-b7c7c5c4669b")\r\n\t)\r\n\t(segment\r\n\t\t(start 135.95 93.835)\r\n\t\t(end 134.68 92.565)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(C4-Pad1)")\r\n\t\t(uuid "0264884b-4754-4e51-81a3-8016f6c58bbc")\r\n\t)\r\n\t(segment\r\n\t\t(start 134.68 92.565)\r\n\t\t(end 133.41 92.565)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(C4-Pad1)")\r\n\t\t(uuid "48ffcafa-ca1b-4c89-abb7-64e63f4abfcb")\r\n\t)\r\n\t(segment\r\n\t\t(start 131.6 92.7)\r\n\t\t(end 133.275 92.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(C4-Pad1)")\r\n\t\t(uuid "77338faa-a77c-497e-adba-f142f9632875")\r\n\t)\r\n\t(segment\r\n\t\t(start 133.275 92.7)\r\n\t\t(end 133.41 92.565)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(C4-Pad1)")\r\n\t\t(uuid "ba910597-16b7-43e7-90d2-c61ecbacdc90")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.315001 69.574999)\r\n\t\t(end 91.09 70.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "03a0f9d3-3853-4ddd-a80b-be8eb7344cdc")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.09 70.8)\r\n\t\t(end 91.09 72.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "229be0eb-56e8-4f99-bc1a-79fe4bf7cfcf")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.3 69.375)\r\n\t\t(end 93.100001 69.574999)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "3ca21cef-7545-45d0-9fab-26e5d771eb96")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.100001 69.574999)\r\n\t\t(end 92.315001 69.574999)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "41546bc7-de84-4e1a-81d6-0ed3fac429ba")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.09 72.5)\r\n\t\t(end 90.965 72.625)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "b4e5c327-c269-4ac5-b395-dc91555001d8")\r\n\t)\r\n\t(via\r\n\t\t(at 93.3 69.375)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "cd5a2efd-5443-4d21-a19a-340e3d048df4")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.65 68.075001)\r\n\t\t(end 99.825 68.250001)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "019c39b3-d971-4564-93b4-193dca0b992f")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.499999 69.574999)\r\n\t\t(end ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'93.3 69.375)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "21b43ac5-0b4b-40d7-b4a7-2863b5374de2")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.825 68.556802)\r\n\t\t(end 98.806803 69.574999)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "2c956338-631f-43ab-88b4-d1524590a87d")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.806803 69.574999)\r\n\t\t(end 93.499999 69.574999)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "7417b528-3733-478d-9c4e-c6bd5d584205")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.65 67.25)\r\n\t\t(end 99.65 68.075001)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "f2fd4de4-b705-4d4e-9a3a-d5edd385c5c4")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.825 68.250001)\r\n\t\t(end 99.825 68.556802)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1+")\r\n\t\t(uuid "f7876513-1a79-4456-97ec-40b49c0a434b")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.11 70.8)\r\n\t\t(end 92.11 72.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "1cc5abaa-db44-4505-b4dd-2ba6ded66833")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.100001 70.025001)\r\n\t\t(end 92.501396 70.025001)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "60f4cd0c-1071-404d-ae0f-1fd598e51dc7")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.11 70.416397)\r\n\t\t(end 92.11 70.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "6d722ef9-35a1-410c-9b35-6d98cb9ba55c")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.11 72.5)\r\n\t\t(end 92.235 72.625)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "95f1ea13-f633-4fff-a468-919f622841f8")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.3 70.225)\r\n\t\t(end 93.100001 70.025001)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "9bfd07ba-7172-4b33-9ac4-9ae9bfdd9ec6")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.501396 70.025001)\r\n\t\t(end 92.11 70.416397)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "c5353f99-9ffb-4cdf-bef1-d076ea4d9376")\r\n\t)\r\n\t(via\r\n\t\t(at 93.3 70.225)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "baa3f746-64cb-452a-8413-7da24c74f2dc")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.45 67.25)\r\n\t\t(end 100.45 68.075001)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "1e887f1f-a1b1-4f1a-b602-1a2a3a1437ea")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.499999 70.025001)\r\n\t\t(end 93.3 70.225)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "2c7c5d78-b2af-4cca-956f-afb0f63e000f")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.275 68.743198)\r\n\t\t(end 98.993197 70.025001)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "8c6a2089-0b84-4a22-92e3-5ae8e9b8c31e")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.45 68.075001)\r\n\t\t(end 100.275 68.250001)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "94be3f50-493c-46dc-adc3-7ba77af7a9ac")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.275 68.250001)\r\n\t\t(end 100.275 68.743198)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "b707a46e-e977-479f-b754-ef2261b6fe7e")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.993197 70.025001)\r\n\t\t(end 93.499999 70.025001)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1-")\r\n\t\t(uuid "d43ab737-2fe0-4340-a931-19e57374ac76")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.8925 80.09375)\r\n\t\t(end 92.63 83.35625)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-OSC1)")\r\n\t\t(uuid "13f32810-3883-4099-a8e8-1e5cf1f6dafb")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.63 84.47)\r\n\t\t(end 92.1 85)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-OSC1)")\r\n\t\t(uuid "688b66a2-e645-4db0-ae0e-960191549e46")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.1425 80.09375)\r\n\t\t(end 95.8925 80.09375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-OSC1)")\r\n\t\t(uuid "6ccf91fd-6149-4b0a-a4c0-c3a57c29f3c6")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.63 83.35625)\r\n\t\t(end 92.63 83.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-OSC1)")\r\n\t\t(uuid "8fc49050-3f25-4d33-9a8c-e0334670ac17")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.63 83.5)\r\n\t\t(end 92.63 84.47)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-OSC1)")\r\n\t\t(uuid "a4c7f030-cdd0-4462-a415-da501926309f")\r\n\t)\r\n\t(segment\r\n\t\t(start 143.09 77)\r\n\t\t(end 143.09 76)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-VREF)")\r\n\t\t(uuid "223e7800-f147-47c4-93da-ece436c6e08e")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.487499 73.9625)\r\n\t\t(end 142.1 73.9625)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-VREF)")\r\n\t\t(uuid "81ff9174-0766-401f-a3fd-655f29d3d972")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.8 74.275001)\r\n\t\t(end 142.487499 73.9625)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-VREF)")\r\n\t\t(uuid "c523ebee-35e8-4122-855a-e1cd0684b134")\r\n\t)\r\n\t(segment\r\n\t\t(start 143.09 76)\r\n\t\t(end 142.8 75.71)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-VREF)")\r\n\t\t(uuid "f443feac-bf21-4337-bac0-0076e3ed917d")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.8 75.71)\r\n\t\t(end 142.8 74.275001)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-VREF)")\r\n\t\t(uuid "fa833be4-61a9-4089-b8bf-0d9061708643")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.03 81.3)\r\n\t\t(end 90.2 81.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-OSC2)")\r\n\t\t(uuid "2e0d409e-35c9-4b87-8a82-ef0d0dc2b5bb")\r\n\t)\r\n\t(segment\r\n\t\t(start 90.2 81.3)\r\n\t\t(end 89.5 82)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-OSC2)")\r\n\t\t(uuid "3fe45ff5-d373-41ce-8f03-b6ec8fab7280")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.88625 79.44375)\r\n\t\t(end 91.03 81.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-OSC2)")\r\n\t\t(uuid "9e97d8ef-242c-49a5-9a8c-052434414bec")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.1425 79.44375)\r\n\t\t(end 92.88625 79.44375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-OSC2)")\r\n\t\t(uuid "bfdaafd4-a07f-4c51-b5c8-12406032b1a1")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.125 71.9625)\r\n\t\t(end 137.0625 70.9)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_1)")\r\n\t\t(uuid "12ff21b3-5d36-4adf-80f5-b77fd5ef5947")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.0625 70.9)\r\n\t\t(end 125.475 70.9)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_1)")\r\n\t\t(uuid "6e0612db-6d92-4606-9536-d11bb4e773ca")\r\n\t)\r\n\t(segment\r\n\t\t(start 125.475 70.9)\r\n\t\t(end 121.6 74.775)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_1)")\r\n\t\t(uuid "af66068d-e64f-451f-9ca5-d6623370cefa")\r\n\t)\r\n\t(segment\r\n\t\t(start 136.5375 76.05)\r\n\t\t(end 125.375 76.05)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_2)")\r\n\t\t(uuid "094cef7d-4a32-4852-9fa9-b5ca6fcc1806")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.125 74.4625)\r\n\t\t(end 136.5375 76.05)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_2)")\r\n\t\t(uuid "ad9cad88-bc8f-4bf6-b5e6-4e2a411d19af")\r\n\t)\r\n\t(segment\r\n\t\t(start 125.375 76.05)\r\n\t\t(end 124.1 74.775)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_2)")\r\n\t\t(uuid "d5a31e1c-5fc0-4e41-b15c-a9fca67ed8bf")\r\n\t)\r\n\t(segment\r\n\t\t(start 136.875 72.9625)\r\n\t\t(end 138.125 72.9625)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_3)")\r\n\t\t(uuid "01bd1f18-6aea-44fa-a68b-b00b55dc679f")\r\n\t)\r\n\t(segment\r\n\t\t(start 136.8 72.8875)\r\n\t\t(end 136.875 72.9625)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_3)")\r\n\t\t(uuid "3de6aee8-8cae-42c4-822e-36afd41c9478")\r\n\t)\r\n\t(segment\r\n\t\t(start 126.6 74.775)\r\n\t\t(end 128.4875 72.8875)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_3)")\r\n\t\t(uuid "486abe5a-321f-462d-936b-89d309be123f")\r\n\t)\r\n\t(segment\r\n\t\t(start 128.4875 72.8875)\r\n\t\t(end 136.8 72.8875)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_3)")\r\n\t\t(uuid "af3f3ca0-a2f2-422c-8a11-6b581a77fcf2")\r\n\t)\r\n\t(segment\r\n\t\t(start 130.5375 73.3375)\r\n\t\t(end 129.1 74.775)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_4)")\r\n\t\t(uuid "15a4cd86-154e-4911-a3d5-5b624d3be522")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.125 73.4625)\r\n\t\t(end 136.684744 73.4625)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_4)")\r\n\t\t(uuid "6d8f916f-c90c-4cac-92d2-27736351e8eb")\r\n\t)\r\n\t(segment\r\n\t\t(start 136.559744 73.3375)\r\n\t\t(end 130.5375 73.3375)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_4)")\r\n\t\t(uuid "8924fa86-aef4-45ef-a0fb-472c4b0efb27")\r\n\t)\r\n\t(segment\r\n\t\t(start 136.684744 73.4625)\r\n\t\t(end 136.559744 73.3375)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J5-Pin_4)")\r\n\t\t(uuid "e4a98a60-2733-40d5-b466-f469a5ebfd73")\r\n\t)\r\n\t(segment\r\n\t\t(start 78.7525 74.6)\r\n\t\t(end 77.54 74.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(D1-K)")\r\n\t\t(uuid "407888d0-b105-42de-b106-392e2be25a50")\r\n\t)\r\n\t(segment\r\n\t\t(start 77.54 74.6)\r\n\t\t(end 77.5 74.64)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(D1-K)")\r\n\t\t(uuid "85a413c1-982e-4e98-8a37-f8fde49d237f")\r\n\t)\r\n\t(segment\r\n\t\t(start 81.4375 74.6)\r\n' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t(end 82.3875 75.55)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(R1-Pad2)")\r\n\t\t(uuid "20d760b8-dc0a-4735-b378-8fbd752cdec3")\r\n\t)\r\n\t(segment\r\n\t\t(start 79.7725 74.6)\r\n\t\t(end 81.4375 74.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(R1-Pad2)")\r\n\t\t(uuid "d7ea7584-af51-4ded-a60c-65f33381b36f")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.1 94.1)\r\n\t\t(end 106.1 93.34)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "335863db-6d61-4aa3-a040-06245067576a")\r\n\t)\r\n\t(via\r\n\t\t(at 114.6 93.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "b1be51f0-deec-4548-a060-29fccafcde5c")\r\n\t)\r\n\t(via\r\n\t\t(at 106.1 94.1)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "c03fd696-786d-4dee-8637-a651ba23ed91")\r\n\t)\r\n\t(segment\r\n\t\t(start 121.04 67.14)\r\n\t\t(end 114.65 73.53)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "56e24fc1-e75c-4fba-89de-d5a021e4427b")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.75 88.9)\r\n\t\t(end 114.65 88.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "b87c9227-d896-43ac-b04e-58114aa1975d")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.75 93.05)\r\n\t\t(end 114.75 88.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "c0e34d2e-2072-44a8-88e5-fc7ab45e877c")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.6 93.2)\r\n\t\t(end 114.75 93.05)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "dca753f5-12b2-4aa1-9f18-be6183cdcdaf")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.65 73.53)\r\n\t\t(end 114.65 88.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "f79d45f0-3bfe-40a0-b24c-b09d2c841979")\r\n\t)\r\n\t(segment\r\n\t\t(start 111.4 94.4)\r\n\t\t(end 112.6 93.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "10496fce-06da-4da5-819a-400fb8562194")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.65 93.65)\r\n\t\t(end 108.4 94.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "63100447-840a-4d34-b815-fce5109195a6")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.4 94.4)\r\n\t\t(end 111.4 94.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "7469dab3-ec20-44eb-a5f6-c9cff93d456a")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.1 94.1)\r\n\t\t(end 106.55 93.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "9728f537-adb0-4119-b0c4-59b8607cc510")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.55 93.65)\r\n\t\t(end 107.65 93.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "c42496d5-75f8-4a60-9542-38873c8081e6")\r\n\t)\r\n\t(segment\r\n\t\t(start 112.6 93.2)\r\n\t\t(end 114.6 93.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_2)")\r\n\t\t(uuid "de156070-7ea7-476b-a5d6-19da7c13897c")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.1 90.26)\r\n\t\t(end 92.1 89.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "7ec260b9-fd64-4bd8-9f64-12ab349f3f2e")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.1 89.2)\r\n\t\t(end 92.7 88.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "f0f7b977-07c4-4749-984c-fa51c38b535b")\r\n\t)\r\n\t(via\r\n\t\t(at 92.7 88.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "701ce5fa-2316-4c3c-9a5f-b27131c47786")\r\n\t)\r\n\t(via\r\n\t\t(at 114.085653 86.968523)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "c864c875-b074-46b6-a65f-282c2a01cf67")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.3 86.754176)\r\n\t\t(end 114.085653 86.968523)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "34db1cf2-dc61-43b3-bca0-fea75f2007c4")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.3 71.34)\r\n\t\t(end 114.3 86.754176)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "57673056-7ac8-4462-a4ae-5184dbba500e")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.5 67.14)\r\n\t\t(end 114.3 71.34)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "70174d05-28a3-400a-b179-b25422579b51")\r\n\t)\r\n\t(segment\r\n\t\t(start 112.754176 88.3)\r\n\t\t(end 93 88.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "0785bcae-13b6-4d66-b466-ec46e5f880df")\r\n\t)\r\n\t(segment\r\n\t\t(start 93 88.3)\r\n\t\t(end 92.7 88.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "2493ff9d-f07b-4f42-9dab-94e3b544b99d")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.085653 86.968523)\r\n\t\t(end 112.754176 88.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_4)")\r\n\t\t(uuid "6fb088b1-068e-41af-a2d2-808940e42268")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.7 90.26)\r\n\t\t(end 91.7 88.55)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "04ad79ad-c693-42b5-9194-aef7a13394c7")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.7 88.55)\r\n\t\t(end 92.1 88.15)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "78a02444-7c02-44c2-834c-975ed40b23e4")\r\n\t)\r\n\t(via\r\n\t\t(at 92.1 88.15)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "259349ca-8096-4295-a7eb-94e94378794a")\r\n\t)\r\n\t(via\r\n\t\t(at 113.5 86.5)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "aac75bd3-35d0-410e-9765-ac2cc72930ad")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.96 67.14)\r\n\t\t(end 113.8 69.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "734c04bd-fe40-44a1-a775-d5661b62fbec")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.8 86.2)\r\n\t\t(end 113.5 86.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "902d0346-3f92-4d24-a457-5d4be012f338")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.8 69.3)\r\n\t\t(end 113.8 86.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "942c939f-3eb5-4874-8975-4e55306972cd")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.3 87.95)\r\n\t\t(end 112.05 87.95)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "0bcbc814-8afe-4201-8e13-3cc45dd72883")\r\n\t)\r\n\t(segment\r\n\t\t(start 112.05 87.95)\r\n\t\t(end 113.5 86.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "0c1befbe-9607-4a73-b83c-ebc69274185a")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.1 88.15)\r\n\t\t(end 92.3 87.95)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_6)")\r\n\t\t(uuid "cdaafa06-90cb-45d1-84a7-095231f1d714")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.3 90.26)\r\n\t\t(end 91.3 87.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J4-Pin_8)")\r\n\t\t(uuid "9d421604-8cd4-4606-b3f0-2143d3fbefe2")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.3 87.9)\r\n\t\t(end 91.4 87.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J4-Pin_8)")\r\n\t\t(uuid "b674da3b-0fc0-4738-a5f0-9f561c49b13b")\r\n\t)\r\n\t(via\r\n\t\t(at 91.4 87.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(J4-Pin_8)")\r\n\t\t(uuid "99f40af4-f670-4030-9080-2a748772b149")\r\n\t)\r\n\t(via\r\n\t\t(at 112.8 86.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(J4-Pin_8)")\r\n\t\t(uuid "d25335b1-8385-4d3d-af18-7e77e56b6058")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.42 67.14)\r\n\t\t(end 113.42 85.58)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_8)")\r\n\t\t(uuid "312da70c-8a4b-46d0-b48f-8383e2b06126")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.42 85.58)\r\n\t\t(end 112.8 86.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(J4-Pin_8)")\r\n\t\t(uuid "91fca205-746a-48a6-9cff-bdb058f6554e")\r\n\t)\r\n\t(segment\r\n\t\t(start 112.8 86.2)\r\n\t\t(end 111.4 87.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_8)")\r\n\t\t(uuid "0859a4ff-eb5b-4fa1-b1f6-43c26c009389")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.6 87.6)\r\n\t\t(end 91.4 87.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_8)")\r\n\t\t(uuid "e28b313e-3533-4b71-b788-e75367c96640")\r\n\t)\r\n\t(segment\r\n\t\t(start 111.4 87.6)\r\n\t\t(end 91.6 87.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(J4-Pin_8)")\r\n\t\t(uuid "fe859083-96ed-424d-b651-600c69ae9110")\r\n\t)\r\n\t(segment\r\n\t\t(start 89.945001 76.35)\r\n\t\t(end 89.695 76.600001)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-TXCAN)")\r\n\t\t(uuid "3ef44dce-5e0a-4656-ae75-8921342a7bcf")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.64875 76.35)\r\n\t\t(end 89.945001 76.35)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-TXCAN)")\r\n\t\t(uuid "8a7dd290-4f2a-485f-9cc4-88ab05cf8954")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.1425 76.84375)\r\n\t\t(end 95.64875 76.35)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-TXCAN)")\r\n\t\t(uuid "a4e89b35-66de-4ced-bb36-5e223cddccdc")\r\n\t)\r\n\t(segment\r\n\t\t(start 89.695 76.600001)\r\n\t\t(end 89.695 77.575)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-TXCAN)")\r\n\t\t(uuid "c9f7806e-b698-4d32-9751-9e76e7e85aff")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.58625 77.4937' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'5)\r\n\t\t(end 93.505 77.575)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-RXCAN)")\r\n\t\t(uuid "3e01e675-9ad2-4d9d-b283-f4a2556cae1c")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.1425 77.49375)\r\n\t\t(end 93.58625 77.49375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U2-RXCAN)")\r\n\t\t(uuid "d395ede9-8ba9-456e-9e61-50ef64452c6c")\r\n\t)\r\n\t(segment\r\n\t\t(start 88.465 72.625)\r\n\t\t(end 88.335 72.755)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U4-Rs)")\r\n\t\t(uuid "0f5843c7-24b0-4743-82ce-c70c1af02e37")\r\n\t)\r\n\t(segment\r\n\t\t(start 89.695 72.625)\r\n\t\t(end 88.465 72.625)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U4-Rs)")\r\n\t\t(uuid "40c848f4-c087-43e4-8fc0-3820a4017a79")\r\n\t)\r\n\t(segment\r\n\t\t(start 136.375 72.4375)\r\n\t\t(end 135.7 71.7625)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-AISEN)")\r\n\t\t(uuid "8352544f-fe81-4b74-8df4-05fba030b3b9")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.125 72.4625)\r\n\t\t(end 138.1 72.4375)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-AISEN)")\r\n\t\t(uuid "bfae742b-841a-452b-9b34-8b1c19186f5d")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.1 72.4375)\r\n\t\t(end 136.375 72.4375)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-AISEN)")\r\n\t\t(uuid "c6546573-c297-4614-8805-7ff721761b08")\r\n\t)\r\n\t(segment\r\n\t\t(start 122.13 133.545)\r\n\t\t(end 122.13 132.16)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J3-CC2)")\r\n\t\t(uuid "1027ecab-b994-4ddb-a8a7-a32839e6c6dc")\r\n\t)\r\n\t(segment\r\n\t\t(start 122.13 132.16)\r\n\t\t(end 122.29 132)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J3-CC2)")\r\n\t\t(uuid "bd757fea-c74f-4362-8f47-22d045b72bf0")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.1 93.34)\r\n\t\t(end 104.1 95.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "1b35a406-f644-4225-a222-bcd87e5a5906")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.8625 76)\r\n\t\t(end 138.8625 76.6175)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "1d1dd758-c7bb-457f-b032-e7dabde7ce6e")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.8625 76.6175)\r\n\t\t(end 138.8 76.68)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "7967cd7d-d64b-4dbd-8aa6-1470b5401313")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.8625 75.2)\r\n\t\t(end 138.8625 76)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "fbee307e-f1a1-4ede-8fa2-a0d7b83f0278")\r\n\t)\r\n\t(via\r\n\t\t(at 102.9 77.7)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "57d420e3-9899-4ea3-96e5-9d2f5d78ad1d")\r\n\t)\r\n\t(via\r\n\t\t(at 138.8625 76)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "a71c4993-2769-45b4-b33d-40a745bc2e10")\r\n\t)\r\n\t(via\r\n\t\t(at 104.1 95.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "ff13d5b9-e64e-4ad4-97bc-390e82c63afa")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.8 77.8)\r\n\t\t(end 102.9 77.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "906f021e-12a9-4d27-a379-aa10979e7963")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.8 94)\r\n\t\t(end 102.8 77.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "bdbdd9cf-9f3c-44a5-b47e-256c1617ec85")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.1 95.3)\r\n\t\t(end 102.8 94)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "f580c3d7-f1db-4359-998e-471da00601a7")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.9 77.7)\r\n\t\t(end 104.505026 77.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "2ab2b32f-6901-4381-80b1-b4cdca41691e")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.69635 76.25)\r\n\t\t(end 115.346351 75.599999)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "323dd76e-5265-472f-b9f2-d8d41f025135")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.346351 75.599999)\r\n\t\t(end 120.385965 75.599999)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "6021ca95-3c62-4459-9d44-82e5bf55a118")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.785966 76)\r\n\t\t(end 138.8625 76)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "9d30b58b-68c6-4af2-8f1d-b810984a61f7")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.955026 76.25)\r\n\t\t(end 114.69635 76.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "a83006a8-ba8d-4806-85b5-ce4c569fa91f")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.505026 77.7)\r\n\t\t(end 105.955026 76.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "ecda4293-5ece-43fe-9075-cfe45da2609a")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.385965 75.599999)\r\n\t\t(end 120.785966 76)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_FAULT}")\r\n\t\t(uuid "f577f436-86c9-42a6-886f-d1f2f34be4b3")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.272827 66.472827)\r\n\t\t(end 105.1 66.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "1f59c9c2-5c2c-43bc-9092-ec8cca54979e")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.1 66.3)\r\n\t\t(end 104.9 66.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "60d431d2-28cb-49d9-af98-2ef853f0e8c5")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.7 89.2)\r\n\t\t(end 103.7 90.26)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "71ae95c5-57d5-47d2-897d-6bca30191658")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.469053 66.472827)\r\n\t\t(end 105.272827 66.472827)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "725d4cfc-fbe8-43eb-b4ab-03aef6ccb47c")\r\n\t)\r\n\t(via\r\n\t\t(at 105.469053 66.472827)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "04d3ca33-3326-4cb8-b8ff-e2a0fadafd6b")\r\n\t)\r\n\t(via\r\n\t\t(at 103.7 89.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "78508466-a7c2-4d45-8354-27fbf1be9967")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.25 67.25)\r\n\t\t(end 105.25 66.69188)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "2704468d-adc0-439e-a5f1-06cf49875a32")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.7 89.2)\r\n\t\t(end 103.7 72.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "4c2cc047-19c0-41dc-a677-37ab5e244dba")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.7 72.25)\r\n\t\t(end 105.25 70.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "79774678-90ed-45ee-bc45-a1aef6d0b327")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.25 67.25)\r\n\t\t(end 105.25 70.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "85ace884-8960-47c6-8cc3-55a728dc7f2d")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.25 66.69188)\r\n\t\t(end 105.469053 66.472827)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_TX")\r\n\t\t(uuid "cc9a40ca-2671-4400-bc7a-eee3ce73e253")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.125 73.9625)\r\n\t\t(end 135.9375 73.9625)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-BISEN)")\r\n\t\t(uuid "6723242f-4b4d-47ff-a1af-efc84679731e")\r\n\t)\r\n\t(segment\r\n\t\t(start 135.9375 73.9625)\r\n\t\t(end 135.7 74.2)\r\n\t\t(width 0.3)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-BISEN)")\r\n\t\t(uuid "8cd728c0-b7bc-4d13-834b-1d5810f02695")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.8625 75.2)\r\n\t\t(end 140.8625 75.9375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "f14b2dd3-eee3-4a47-b6cc-5fe3d206296d")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.8625 75.9375)\r\n\t\t(end 140.6 76.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "f2ebbcf2-a13b-4b0f-84e1-6d2572f1b438")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.3 93.34)\r\n\t\t(end 99.3 92.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "f3b3283a-4396-400a-a05c-5e86b7fd30b2")\r\n\t)\r\n\t(via\r\n\t\t(at 140.6 76.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "28a1b8eb-b8f6-432b-b21a-9d9f606fc11c")\r\n\t)\r\n\t(via\r\n\t\t(at 100.05 80.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "6d26bf47-86ab-49a4-9563-b411eefd67e5")\r\n\t)\r\n\t(via\r\n\t\t(at 99.3 92.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "876298ae-6308-4a9e-a96a-b018331b2576")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.3 81.55)\r\n\t\t(end 100.05 80.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "163224b8-f47f-46c5-abab-cf3ba6a88506")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.3 92.6)\r\n\t\t(end 99.3 81.55)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "5925cb61-b937-41f8-a936-ab82f5e2b27c")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.6 76.2)\r\n\t\t(end 140.2 76.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "1a280d1f-84c9-482d-a037-4476fd' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'9c87ab")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.25 78.85)\r\n\t\t(end 110.2 78.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "5dafcc5e-28ca-4116-8114-482186ad17b9")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.708084 80.8)\r\n\t\t(end 100.05 80.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "8cf5015d-316b-4577-8812-1890e6b71146")\r\n\t)\r\n\t(segment\r\n\t\t(start 121.8 76.6)\r\n\t\t(end 119.55 78.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "a207ddb1-cb1d-4bfd-a5af-fdb8eca5eb85")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.2 76.6)\r\n\t\t(end 121.8 76.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "ae04c3e8-b505-40e0-b922-a7343d2c6560")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.708084 78.8)\r\n\t\t(end 105.708084 80.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "b725a6e1-f5e6-4f7a-955e-c446db9579c3")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.55 78.85)\r\n\t\t(end 110.25 78.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "d0e213e3-33d2-48c4-8ba8-d7f94fe5692e")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.2 78.8)\r\n\t\t(end 107.708084 78.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_EN}")\r\n\t\t(uuid "eed3e19f-e076-4f3d-95b9-1a7275321f75")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.3625 75.2)\r\n\t\t(end 141.3625 76.412404)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "0bf219d8-b410-4a1b-99bd-34ac0c9a809f")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.5 93.34)\r\n\t\t(end 98.5 94.499997)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "26ba31ba-33e6-4f60-abf5-fa9371b2529a")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.3625 76.412404)\r\n\t\t(end 141.29636 76.478544)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "81d5ce0c-983e-4e72-8933-ccb5a68ab608")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.5 94.499997)\r\n\t\t(end 98.249997 94.75)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "c2248eac-8871-4126-9b0c-02223eb752bf")\r\n\t)\r\n\t(via\r\n\t\t(at 141.29636 76.478544)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "08fa9229-ef71-4e07-af14-07ce80f7da0a")\r\n\t)\r\n\t(via\r\n\t\t(at 98.249997 94.75)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "1d100adb-9249-4f2b-bd10-69762e9e7665")\r\n\t)\r\n\t(via\r\n\t\t(at 98.1 81.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "75d037ea-5fd4-4211-bdfe-9544ac860e60")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.1 94.600003)\r\n\t\t(end 98.1 81.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "54ed58c4-c3d8-4af4-a842-ed4583a99cc2")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.249997 94.75)\r\n\t\t(end 98.1 94.600003)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "8eb6abbc-324d-45f9-a63a-6eea0b59e704")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.8 79.2)\r\n\t\t(end 122 77)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "2b18a110-0118-4fae-a3d6-333ef85902b4")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.2 79.2)\r\n\t\t(end 119.8 79.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "47208909-8641-4deb-a1d8-262b58ca1359")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.774904 77)\r\n\t\t(end 141.29636 76.478544)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "6176327d-4706-4176-84b5-b15f6c40a0c3")\r\n\t)\r\n\t(segment\r\n\t\t(start 108 81.4)\r\n\t\t(end 110.2 79.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "9b578e35-6f27-406e-ac08-610a4aec5e93")\r\n\t)\r\n\t(segment\r\n\t\t(start 122 77)\r\n\t\t(end 140.774904 77)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "b793aab5-0051-4d29-8e84-2d77cdac96a1")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.1 81.4)\r\n\t\t(end 108 81.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_STEP")\r\n\t\t(uuid "ece72015-4376-458c-8e6b-19af7c98138a")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.1 74.4625)\r\n\t\t(end 142.1 75.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "72ee0b8d-b54f-47bb-9921-9ee1b6cc6960")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.9 94.65)\r\n\t\t(end 99 94.75)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "879092e0-fa8f-4227-88b4-294070937c6b")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.9 93.34)\r\n\t\t(end 98.9 94.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "e6759458-ff02-44f6-92ec-4177b9bddfc8")\r\n\t)\r\n\t(via\r\n\t\t(at 98.7 82)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "54705f86-b01b-4a09-a185-10ba6169307d")\r\n\t)\r\n\t(via\r\n\t\t(at 142.1 75.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "65affd07-d79f-4a63-a31b-dc8ec4f2804b")\r\n\t)\r\n\t(via\r\n\t\t(at 99 94.75)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "fa531df7-2802-4cc6-9c0a-bc8e5fae8c02")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.7 94.422185)\r\n\t\t(end 98.7 82)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "2b27bf28-02cb-4757-ab49-90ad0ec2b4da")\r\n\t)\r\n\t(segment\r\n\t\t(start 99 94.75)\r\n\t\t(end 99 94.722185)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "ae475a1d-7713-40bf-97f6-f6e002abe0d8")\r\n\t)\r\n\t(segment\r\n\t\t(start 99 94.722185)\r\n\t\t(end 98.7 94.422185)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "ed62e959-42d6-48a6-a516-f71dbb1b5096")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.95 81.75)\r\n\t\t(end 105.35 81.75)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "003686d6-6031-4a47-92a2-f5a693e32c66")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.147487 80.747487)\r\n\t\t(end 110.294974 79.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "09708e6d-dd82-493b-b18d-78ea35d6ce5a")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.202722 77.35)\r\n\t\t(end 141.524178 77.028544)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "17e907a2-2484-43f9-979c-9c047c9b089c")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.427818 82.65)\r\n\t\t(end 109.147487 80.930331)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "1a85fe39-0a39-4e8f-b9fe-5787c03b2429")\r\n\t)\r\n\t(segment\r\n\t\t(start 122.144974 77.35)\r\n\t\t(end 141.202722 77.35)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "3a9bc4b8-b80d-41f4-8adb-556b30dd56d0")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.25 82.65)\r\n\t\t(end 107.427818 82.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "4bf48154-e985-4252-9dc5-00cd2c4167e1")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.147487 80.930331)\r\n\t\t(end 109.147487 80.747487)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "50fcd1c7-7b38-4add-b88e-d95a715ad673")\r\n\t)\r\n\t(segment\r\n\t\t(start 98.7 82)\r\n\t\t(end 98.95 81.75)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "6e34e546-2455-401e-9171-10120e8d1bd5")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.35 81.75)\r\n\t\t(end 106.25 82.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "8d4fd8c6-a74f-4c22-88b0-a5f5e0334bbb")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.894974 79.6)\r\n\t\t(end 122.144974 77.35)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "9d41d333-7daf-4692-97a5-6deae5fd5568")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.294974 79.6)\r\n\t\t(end 119.894974 79.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "a06eda84-9af9-4297-a647-7a2a3441e784")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.84636 76.706362)\r\n\t\t(end 142.1 76.452722)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "a214a779-089a-429f-b7ab-af73387cdc47")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.524178 77.028544)\r\n\t\t(end 141.84636 76.706362)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "c30afeb6-f385-4316-b490-42f7cd7efae1")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.1 76.452722)\r\n\t\t(end 142.1 75.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/MOTOR_DIR")\r\n\t\t(uuid "ccb2a2f8-d382-44c0-939e-b2a4399cf577")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.1 72.4625)\r\n\t\t(end 143.1825 72.4625)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-VINT)")\r\n\t\t(uuid "1be25000-bbf7-46b4-9c00-6728d8a880f8")\r\n\t)\r\n\t(segment\r\n\t\t(start 143.1825 72.4625)\r\n\t\t(end 143.2 72.48)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U9-VINT)")\r\n\t\t(uuid "ffbd4c0b-8d81-4704-aebb-81b4dc88980c")\r\n\t)\r\n\t(segment\r\n\t\t(start 139.3625 70.8625)\r\n\t\t(end 139.3625 71.225)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "2e7979ab-6451-41a2-a1d7-2cfc59b9c611")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.3 92.7)\r\n\t\t(end 103.4 92.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "5e2ea7c2-84e1-42f8-9dbf-6e58e9401a3b")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.2 69.7)\r\n\t\t(end 139.3625 70.8625)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "773638a6-c60b-40c4-a40a-d274df390711")\r\n\t)\r\n\t(segment\r\n\t\t(start 131.4 69.7)\r\n\t\t(end 138.2 69.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "b75e3372-ac6c-4987-87d8-0e161fdd2509")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.3 93.34)\r\n\t\t(end 103.3 92.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "cce1013d-74f9-4523-8c67-e64eed35583a")\r\n\t)\r\n\t(via\r\n\t\t(at 129.5 93.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "7eeb6384-f13a-4af3-af6f-f99040be5724")\r\n\t)\r\n\t(via\r\n\t\t(at 131.4 69.7)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "8145a4f8-2a15-4209-ab84-1ffd15e38414")\r\n\t)\r\n\t(via\r\n\t\t(at 103.4 92.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "94653991-b9e0-4b09-a790-777abbe08379")\r\n\t)\r\n\t(segment\r\n\t\t(start 130.5 76)\r\n\t\t(end 130.5 70.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "00773cc8-17cb-4ec0-aed6-787ed9ebec3a")\r\n\t)\r\n\t(segment\r\n\t\t(start 130.5 70.6)\r\n\t\t(end 131.4 69.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "a76c67de-afd9-4195-b69e-96ab8a698d8b")\r\n\t)\r\n\t(segment\r\n\t\t(start 129.5 93.3)\r\n\t\t(end 129.5 77)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "ccc767ac-d07e-4596-937c-2447fd99faf1")\r\n\t)\r\n\t(segment\r\n\t\t(start 129.5 77)\r\n\t\t(end 130.5 76)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "e5d51b57-7009-4a8f-a800-f1de3d38d490")\r\n\t)\r\n\t(segment\r\n\t\t(start 111 94.05)\r\n\t\t(end 108.65 94.05)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "05c7869b-a552-4ede-8d02-61595874e1a8")\r\n\t)\r\n\t(segment\r\n\t\t(start 128.8 94)\r\n\t\t(end 125.695837 94)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "06b47b1d-75c0-4180-8265-3c606609c520")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.65 94.05)\r\n\t\t(end 107.45 92.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "1a6cc6e1-a860-4990-ab15-acafd02a416d")\r\n\t)\r\n\t(segment\r\n\t\t(start 117.4 93.4)\r\n\t\t(end 116.65 92.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "36d11b14-1035-4883-92e5-a2a7c138f78e")\r\n\t)\r\n\t(segment\r\n\t\t(start 112.2 92.85)\r\n\t\t(end 111 94.05)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "53002a77-08c2-4f68-8d80-c8cdfe926661")\r\n\t)\r\n\t(segment\r\n\t\t(start 125.095837 93.4)\r\n\t\t(end 117.4 93.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "54922b71-9b13-4811-94d0-ac3dfa4e599c")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.45 92.85)\r\n\t\t(end 103.65 92.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "6a8e3c96-ca06-4c3e-ae99-30b8ed3e59a9")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.372182 92.65)\r\n\t\t(end 114.172182 92.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "7b57a2ac-a648-4814-ab9d-e9e8ffa18e4b")\r\n\t)\r\n\t(segment\r\n\t\t(start 125.695837 94)\r\n\t\t(end 125.095837 93.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "7ed00029-fc27-48c2-aebc-cad9d8171e12")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.65 92.85)\r\n\t\t(end 103.4 92.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "a8bcd750-f256-44a1-ad3c-2bdeab12381e")\r\n\t)\r\n\t(segment\r\n\t\t(start 116.65 92.65)\r\n\t\t(end 114.372182 92.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "c923a028-6f60-4cc6-aa48-649a09a57ca8")\r\n\t)\r\n\t(segment\r\n\t\t(start 129.5 93.3)\r\n\t\t(end 128.8 94)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "cd2df516-3d32-44db-8321-03649b974e65")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.172182 92.85)\r\n\t\t(end 112.2 92.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{MOTOR_SLEEP}")\r\n\t\t(uuid "d5233e29-0134-4a56-af22-8f0a67f7bf52")\r\n\t)\r\n\t(segment\r\n\t\t(start 78.7525 76.6)\r\n\t\t(end 77.5 76.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(D2-K)")\r\n\t\t(uuid "81b00d09-b598-47b5-a441-c537ad02bff3")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.7 90.26)\r\n\t\t(end 105.7 89.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "4b9d80e3-5b16-46ca-b560-064a1cd0f780")\r\n\t)\r\n\t(segment\r\n\t\t(start 79.9 77.5)\r\n\t\t(end 79.9 76.7275)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "76bbe545-df60-4fcc-98f4-5d3213989d55")\r\n\t)\r\n\t(segment\r\n\t\t(start 79.9 76.7275)\r\n\t\t(end 79.7725 76.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "adcb6f3c-48eb-45f2-b8ff-03ebed613fbf")\r\n\t)\r\n\t(via\r\n\t\t(at 80 88.9)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "109d8a65-4f79-43f4-964b-6bbb292e50d0")\r\n\t)\r\n\t(via\r\n\t\t(at 105.7 89.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "7a79aee4-c2f2-411a-ac4a-63c2204f689f")\r\n\t)\r\n\t(via\r\n\t\t(at 79.9 77.5)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "98b35332-e349-4a50-b450-11e906c4486b")\r\n\t)\r\n\t(segment\r\n\t\t(start 80 88.9)\r\n\t\t(end 80 77.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "19bd459f-ef84-4dec-9395-57aff0c67cf7")\r\n\t)\r\n\t(segment\r\n\t\t(start 80 77.6)\r\n\t\t(end 79.9 77.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "1c6630b4-ee22-4c6c-8ddd-e0e76bc283ba")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.7 89.2)\r\n\t\t(end 105.1 89.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "17201ba6-769e-4859-978d-d3f66967230f")\r\n\t)\r\n\t(segment\r\n\t\t(start 80.9 89.8)\r\n\t\t(end 80 88.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "b2d9ab33-686d-47ef-8268-7a56d82ede89")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.1 89.8)\r\n\t\t(end 80.9 89.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "Net-(U1A-Pi_nLED_Activity)")\r\n\t\t(uuid "b80fcae7-2302-4c2f-93d6-4a113fbfc7fb")\r\n\t)\r\n\t(segment\r\n\t\t(start 122.78 134.119999)\r\n\t\t(end 122.78 133.545)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J3-VBUS-PadA4)")\r\n\t\t(uuid "17068966-349c-433f-8691-9f134896534d")\r\n\t)\r\n\t(segment\r\n\t\t(start 117.98 133.931698)\r\n\t\t(end 118.778002 134.7297)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J3-VBUS-PadA4)")\r\n\t\t(uuid "819bfad0-b5ef-4b4b-803f-c61212b4b3de")\r\n\t)\r\n\t(segment\r\n\t\t(start 122.170299 134.7297)\r\n\t\t(end 122.78 134.119999)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J3-VBUS-PadA4)")\r\n\t\t(uuid "99ce46d2-ed6f-4f35-91a9-b7f22b5de51e")\r\n\t)\r\n\t(segment\r\n\t\t(start 117.98 133.545)\r\n\t\t(end 117.98 133.931698)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J3-VBUS-PadA4)")\r\n\t\t(uuid "adde0bc9-4ad0-4b08-b5ed-3a4b544d79d1")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.778002 134.7297)\r\n\t\t(end 122.170299 134.7297)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J3-VBUS-PadA4)")\r\n\t\t(uuid "e8bc9bb8-c78a-4512-90ba-b1f970f44112")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.05985 129.405504)\r\n\t\t(end 120.05985 132.612349)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "0c6bd1c2-9bff-4220-8acf-5bdd9002fa8d")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.13 133.001442)\r\n\t\t(end 120.416292 132.71515)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "11b7d094-bf44-4d5f-a167-5e2ca337865f")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.416292 132.71515)\r\n\t\t(end 120.875149 132.71515)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "196832fe-4b1d-4ed7-81a4-715a1a1b5794")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.13 133.545)\r\n\t\t(end 120.13 133.001442)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "1f94219d-9b56-48ec-ad0a-c39000868fe9")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.525504 122.92015)\r\n\t\t(end 113.574496 122.92015)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "24d97692-c5b5-4834-a14b-46b6c7a088e7")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.875149 132.71515)\r\n\t\t(end 12' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'1.13 132.970001)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "38505305-dea2-4d4b-9373-3abdfbae503c")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.574496 122.92015)\r\n\t\t(end 120.05985 129.405504)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "617a770b-f0f4-44ac-ba4b-16f9eb9971dc")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.9 123.734999)\r\n\t\t(end 108.92015 123.714849)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "61d91bd5-537e-4c6d-93c3-1b765250dbf1")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.92015 123.714849)\r\n\t\t(end 108.92015 123.525504)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "63f6256f-9ae7-4813-b4df-a7a5e3450ede")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.92015 123.525504)\r\n\t\t(end 109.525504 122.92015)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "69af8128-d3a2-44fe-9b3d-ff392be4c8e9")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.05985 132.612349)\r\n\t\t(end 120.13 132.682499)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "734ae202-3ebd-407f-8f8b-dd88bed18453")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.13 132.682499)\r\n\t\t(end 120.13 133.545)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "77348374-33b1-4076-9d49-58763895f260")\r\n\t)\r\n\t(segment\r\n\t\t(start 121.13 132.970001)\r\n\t\t(end 121.13 133.545)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "8d79659d-6b5a-4f9c-9b40-57c2df838fdc")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.9 124.26)\r\n\t\t(end 108.9 123.734999)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D+")\r\n\t\t(uuid "baa6e3b7-0433-47e7-a252-d7c857825871")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.3 123.734999)\r\n\t\t(end 109.3 124.26)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "040b19b0-e32f-4706-9469-e0b73a530382")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.884851 134.37485)\r\n\t\t(end 120.375149 134.37485)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "107ddcf5-18ee-4749-a744-e894e7475e1b")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.27985 123.714849)\r\n\t\t(end 109.3 123.734999)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "27f9c84e-7da1-4922-a951-efc43ff8195a")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.425504 123.27985)\r\n\t\t(end 109.674496 123.27985)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "371cd859-0072-4c74-8b54-fc6fb6f9a5d1")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.846625 126.040383)\r\n\t\t(end 115.629755 126.25725)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "4ddbd09c-323c-470b-8cce-c511a4b5c638")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.828507 123.682853)\r\n\t\t(end 113.425504 123.27985)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "4e12a097-f4a0-4654-aae4-0bfe389615f2")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.422359 125.276705)\r\n\t\t(end 115.337508 125.191854)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "55e5f9b3-4bf1-4db1-8e2d-16e059d4219b")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.375149 134.37485)\r\n\t\t(end 120.63 134.119999)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "69dd2bf9-a106-441b-9426-7281558175dd")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.674496 123.27985)\r\n\t\t(end 109.27985 123.674496)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "6f2662d7-5194-4879-8e35-ececdfc64546")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.27985 123.674496)\r\n\t\t(end 109.27985 123.714849)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "744544a8-cafe-462f-bcde-300b4db2b507")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.63 134.119999)\r\n\t\t(end 119.884851 134.37485)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "8b389090-3eb7-417b-8496-b4f01c01d3d6")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.290343 126.25725)\r\n\t\t(end 115.20549 126.172397)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "93086a7d-cf3d-431b-8ad8-6c3d20621855")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.20549 125.832985)\r\n\t\t(end 115.422359 125.616117)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "97d38395-bf3d-4c78-aa69-8067326d2da5")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.63 134.119999)\r\n\t\t(end 120.63 133.545)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "9f7e7b75-c56c-4435-82b4-fa0af40f8eb4")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.70015 132.612349)\r\n\t\t(end 119.70015 129.554496)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "c25f8ee1-ad2d-42ea-98db-93a8f4a27c83")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.63 132.682499)\r\n\t\t(end 119.70015 132.612349)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "d8b9c318-7ff5-4878-b9c9-74a67de74690")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.63 133.545)\r\n\t\t(end 119.63 132.682499)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "dbf14f40-4ad3-4d08-8dec-fd837f0c02b5")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.63 133.545)\r\n\t\t(end 119.63 134.119999)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "f1967640-b9a9-454b-ae44-a9125bb677c7")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.70015 129.554496)\r\n\t\t(end 116.186037 126.040383)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "f90c63a4-d436-4026-a9d9-48bc77d2c549")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.337508 125.191854)\r\n\t\t(end 113.828507 123.682853)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "fcb978bc-ca16-4c20-9d0e-d48cc5e1ed25")\r\n\t)\r\n\t(arc\r\n\t\t(start 116.186037 126.040383)\r\n\t\t(mid 116.01633 125.970087)\r\n\t\t(end 115.846625 126.040383)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "4f16bb57-4090-4b2f-9f81-62821b2d13ff")\r\n\t)\r\n\t(arc\r\n\t\t(start 115.629755 126.25725)\r\n\t\t(mid 115.46005 126.327546)\r\n\t\t(end 115.290343 126.25725)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "5371af7b-8bdf-498f-bad1-1669f9b2ae15")\r\n\t)\r\n\t(arc\r\n\t\t(start 115.422359 125.616117)\r\n\t\t(mid 115.492653 125.44641)\r\n\t\t(end 115.422359 125.276705)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "5cacaa6c-4bd9-40aa-9f04-b079d087358f")\r\n\t)\r\n\t(arc\r\n\t\t(start 115.20549 126.172397)\r\n\t\t(mid 115.135196 126.002692)\r\n\t\t(end 115.20549 125.832985)\r\n\t\t(width 0.2097)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/USB_D-")\r\n\t\t(uuid "7f1c15c5-1a6e-46c7-88f7-c5c6eacec451")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.7 67.55)\r\n\t\t(end 106.05 68.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "10623576-4617-49f1-aa2d-9fbad1c5226d")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 93.34)\r\n\t\t(end 104.5 92.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "ddd9e049-a0a9-4352-8017-37e6d8d7d731")\r\n\t)\r\n\t(via\r\n\t\t(at 106.05 68.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "bd872a45-0fd1-4c95-b9a3-cc29540a62be")\r\n\t)\r\n\t(via\r\n\t\t(at 104.5 92.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "c78aa48c-5e36-4ab7-8e76-55a2bf9e5eda")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.05 88.25)\r\n\t\t(end 104.05 72.45)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "58c68194-5099-4405-9011-0c50484cdc7d")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.05 70.45)\r\n\t\t(end 106.05 68.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "60e57e24-a91f-4406-bffa-6087575d03ae")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.05 72.45)\r\n\t\t(end 106.05 70.45)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "78dc145b-e134-403f-899d-23a21ec64bc6")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.05 68.2)\r\n\t\t(end 106.05 67.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "9de9db96-ebf2-4bfd-a5cd-6d558384aba3")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 92.3)\r\n\t\t(end 104.5 88.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "9fb31b38-2162-4f4d-9d89-a52ad9dec4f3")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 88.7)\r\n\t\t(end 104.05 88.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART2_RX")\r\n\t\t(uuid "e8ae7e03-c94b-4492-b51f-815d9f980cca")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.658476 88.755)\r\n\t\t(end 135.95 88.755)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3+")\r\n\t\t(uuid "037001ad-03e0-47c7-a960-15cb626aa6bf")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.25095 89.685949)\r\n\t\t(end 109.25095 89.162526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3+")\r\n\t\t(uuid "376281dd-54cc-48da-bda1-bc74ddb04cf0")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.25095 89.162526)\r\n\t\t(end 109.658476 88.755)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\n\t\t(net "/CM4/ETH_P3+")\r\n\t\t(uuid "482f85ec-02cd-4304-ad10-2d4d7ea4b352")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.3 89.734999)\r\n\t\t(end 109.25095 89.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3+")\r\n\t\t(uuid "b5e30074-a072-4e67-b752-5511ac60097e")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.3 90.26)\r\n\t\t(end 109.3 89.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3+")\r\n\t\t(uuid "cb916f50-4271-433d-958d-a64dea844eaa")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.726938 95.833099)\r\n\t\t(end 119.726938 95.447347)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "1aa1ec1b-e663-43b0-b393-d5fb8385b897")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.25095 93.737474)\r\n\t\t(end 109.25095 93.63905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "2ba93ce1-c02a-49d3-a93e-cdd10f7e1d46")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.886938 96.073099)\r\n\t\t(end 118.766938 96.073099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "373d32fd-60df-4ddd-9614-09d468dbae3e")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.926938 95.833099)\r\n\t\t(end 120.926938 95.447341)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "3760b36a-0328-4bf7-a18f-157e9af33663")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.086938 96.073099)\r\n\t\t(end 119.966938 96.073099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "43fe7528-9857-4c13-aaa2-332537a82182")\r\n\t)\r\n\t(segment\r\n\t\t(start 111.586575 96.073099)\r\n\t\t(end 109.25095 93.737474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "499e4a64-9ca9-4c86-a62b-d6a6b310abe8")\r\n\t)\r\n\t(segment\r\n\t\t(start 117.819825 96.073099)\r\n\t\t(end 111.586575 96.073099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "52af2af2-e04e-4d4b-b3db-bc1542c8e024")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.126938 95.447347)\r\n\t\t(end 119.126938 95.833099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "703fefc7-19a8-4d10-8594-15a69432aa35")\r\n\t)\r\n\t(segment\r\n\t\t(start 133.41 95.105)\r\n\t\t(end 132.441901 96.073099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "a886c26a-2c61-4be7-aae3-6ad40aea67c7")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.3 93.59)\r\n\t\t(end 109.3 93.34)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "ab140bea-063d-4eb6-aeaf-be8fa071025e")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.326938 95.447341)\r\n\t\t(end 120.326938 95.833099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "b9c6a6ff-8606-45c7-9124-475929bec394")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.686938 95.207341)\r\n\t\t(end 120.566938 95.207341)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "c0d13dec-cb3c-48cf-8a15-c658c8720ced")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.25095 93.63905)\r\n\t\t(end 109.3 93.59)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "c73d8392-c4b5-415f-861a-db0000b29f57")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.766938 96.073099)\r\n\t\t(end 117.819825 96.073099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "d7a98cd3-9f2f-4c85-b1e3-cf617dcf48f7")\r\n\t)\r\n\t(segment\r\n\t\t(start 132.441901 96.073099)\r\n\t\t(end 121.166938 96.073099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "eaa8d692-ce6b-4d8f-9762-e7ddbd5184e4")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.486938 95.207347)\r\n\t\t(end 119.366938 95.207347)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "ff583197-d8b0-4faf-9cbb-7f0423431ae4")\r\n\t)\r\n\t(arc\r\n\t\t(start 120.326938 95.833099)\r\n\t\t(mid 120.256644 96.002805)\r\n\t\t(end 120.086938 96.073099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "299a4926-0377-4967-b747-a9ba6a57c1eb")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.726938 95.447347)\r\n\t\t(mid 119.656644 95.277641)\r\n\t\t(end 119.486938 95.207347)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "2acda62b-9ec0-404e-af29-1972a775f8f0")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.966938 96.073099)\r\n\t\t(mid 119.797232 96.002805)\r\n\t\t(end 119.726938 95.833099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "36122cf9-4090-4c1d-80db-5ec360d2f9a7")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.366938 95.207347)\r\n\t\t(mid 119.197232 95.277641)\r\n\t\t(end 119.126938 95.447347)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "3a4d01f9-2563-449a-a7ec-c42615eed182")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.126938 95.833099)\r\n\t\t(mid 119.056644 96.002805)\r\n\t\t(end 118.886938 96.073099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "57623739-c133-48cc-8cfa-6d512a6ccd79")\r\n\t)\r\n\t(arc\r\n\t\t(start 120.566938 95.207341)\r\n\t\t(mid 120.397232 95.277635)\r\n\t\t(end 120.326938 95.447341)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "bd1d74ca-cf66-469a-8104-441672350f9f")\r\n\t)\r\n\t(arc\r\n\t\t(start 120.926938 95.447341)\r\n\t\t(mid 120.856644 95.277635)\r\n\t\t(end 120.686938 95.207341)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "da58c08d-1db4-4889-803e-7795b68aa9ca")\r\n\t)\r\n\t(arc\r\n\t\t(start 121.166938 96.073099)\r\n\t\t(mid 120.997232 96.002805)\r\n\t\t(end 120.926938 95.833099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1+")\r\n\t\t(uuid "f85db0ba-a13a-4215-9d48-b9b4ed5d251e")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.261309 88.077402)\r\n\t\t(end 120.261309 88.213099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "0e8de808-0428-4e8d-9123-32c9af2185b4")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.94905 89.037474)\r\n\t\t(end 108.94905 89.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "12d423b8-2da7-48e8-8e90-42ee99e773d4")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.061309 88.077377)\r\n\t\t(end 119.061309 88.213099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "1d766207-17c1-4e99-9045-ee89177ed8ca")\r\n\t)\r\n\t(segment\r\n\t\t(start 133.41 87.485)\r\n\t\t(end 132.441901 88.453099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "1e4b9940-bc0c-4b45-8bac-afc021b3da80")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.421309 87.837377)\r\n\t\t(end 119.301309 87.837377)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "31b37bbe-5ee7-493a-ba03-ab329993c3dc")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.661309 88.213099)\r\n\t\t(end 119.661309 88.077377)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "44794830-9686-476c-9ffc-cc2a27e6e15a")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.94905 89.685949)\r\n\t\t(end 108.9 89.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "4feafc9a-bc2f-4744-9675-f979d64af9c5")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.821309 88.453099)\r\n\t\t(end 118.701309 88.453099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "5e79115e-f640-42dc-8239-f8568a6081e6")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.861309 88.213099)\r\n\t\t(end 120.861309 88.077402)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "72b4e1e3-d24b-4cb2-875e-c527c16b77ea")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.021309 88.453099)\r\n\t\t(end 119.901309 88.453099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "75610cc7-ea4f-457e-9e99-8e1f67df2dc0")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.621309 87.837402)\r\n\t\t(end 120.501309 87.837402)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "83201e62-e279-413d-bdbb-aed83fd9580f")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.16985 88.453099)\r\n\t\t(end 109.533425 88.453099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "8f38dff0-7c6e-48be-944b-f2f1357fac49")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.533425 88.453099)\r\n\t\t(end 108.94905 89.037474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "96aa32bc-0316-4ae2-a9e4-6c02ba7c3a82")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.9 89.734999)\r\n\t\t(end 108.9 90.26)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "a1927aba-46b2-4138-b19f-cb330153863b")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.701309 88.453099)\r\n\t\t(end 118.16985 88.453099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "cf8453da-667d-439b-95b2-0ac095a68535")\r\n\t)\r\n\t(segment\r\n\t\t(start 132.441901 88.453099)\r\n\t\t(end 121.101309 88.453099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "d9eb74ce-5e58-498c-a1f1-9a37eb740791")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.301309 87.837377)\r\n\t\t(mid 119.131603 87.907671)\r\n\t\t(end 119.061309 88.077377)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "15f42ca1-0ce8-434c' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'-93f0-9a8604770c29")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.901309 88.453099)\r\n\t\t(mid 119.731603 88.382805)\r\n\t\t(end 119.661309 88.213099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "18db51b2-be60-4708-aac4-7ee8b7ff0f41")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.661309 88.077377)\r\n\t\t(mid 119.591015 87.907671)\r\n\t\t(end 119.421309 87.837377)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "33c9846c-a382-45c3-8e0e-df3339cbe346")\r\n\t)\r\n\t(arc\r\n\t\t(start 120.261309 88.213099)\r\n\t\t(mid 120.191015 88.382805)\r\n\t\t(end 120.021309 88.453099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "347f5d12-1dce-4de3-bbd9-fd66f5e7c4a0")\r\n\t)\r\n\t(arc\r\n\t\t(start 121.101309 88.453099)\r\n\t\t(mid 120.931603 88.382805)\r\n\t\t(end 120.861309 88.213099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "7a2f546f-8a25-4d85-ae53-5f5de3f17701")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.061309 88.213099)\r\n\t\t(mid 118.991015 88.382805)\r\n\t\t(end 118.821309 88.453099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "a76078e6-c849-4bc8-bc8a-7a159152c46f")\r\n\t)\r\n\t(arc\r\n\t\t(start 120.501309 87.837402)\r\n\t\t(mid 120.331603 87.907696)\r\n\t\t(end 120.261309 88.077402)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "a7bd1f6c-69ab-4338-ae74-69eff50e278b")\r\n\t)\r\n\t(arc\r\n\t\t(start 120.861309 88.077402)\r\n\t\t(mid 120.791015 87.907696)\r\n\t\t(end 120.621309 87.837402)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P3-")\r\n\t\t(uuid "e4aab997-77c6-4809-8fc7-ca1db569ae3c")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.9 93.59)\r\n\t\t(end 108.9 93.34)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1-")\r\n\t\t(uuid "2521cc4c-40be-4933-b48c-94b77fab0ca3")\r\n\t)\r\n\t(segment\r\n\t\t(start 135.95 96.375)\r\n\t\t(end 111.461524 96.375)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1-")\r\n\t\t(uuid "8bbedf31-12fb-4049-80c3-effb1517e08f")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.94905 93.63905)\r\n\t\t(end 108.9 93.59)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1-")\r\n\t\t(uuid "a05690ef-2048-4d3c-ada9-b0c38ba7228f")\r\n\t)\r\n\t(segment\r\n\t\t(start 111.461524 96.375)\r\n\t\t(end 108.94905 93.862526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1-")\r\n\t\t(uuid "b0adcec8-bf70-4bb2-9b5f-f82fddcb59e9")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.94905 93.862526)\r\n\t\t(end 108.94905 93.63905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P1-")\r\n\t\t(uuid "b48815f0-77b6-4ca1-9b0e-58e9434e5d15")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.16 90.923249)\r\n\t\t(end 118.16 91.30905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "0179dcd9-5778-4524-8e62-9cac9ad0fbbc")\r\n\t)\r\n\t(segment\r\n\t\t(start 123.937474 89.74905)\r\n\t\t(end 122.137474 91.54905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "05d22c8d-1b4b-4048-b969-24af45bfabf6")\r\n\t)\r\n\t(segment\r\n\t\t(start 129.906575 90.993099)\r\n\t\t(end 128.662526 89.74905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "11f360bb-cb15-4190-98f2-193cf3fecfe5")\r\n\t)\r\n\t(segment\r\n\t\t(start 116.507231 91.54905)\r\n\t\t(end 108.662526 91.54905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "1f29fc89-8f63-48be-a631-b878b2791b2d")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.1 90.785001)\r\n\t\t(end 108.1 90.26)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "23c75c22-ae14-4078-aee4-3b8d9fa5035f")\r\n\t)\r\n\t(segment\r\n\t\t(start 122.137474 91.54905)\r\n\t\t(end 120.2 91.54905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "400ba11c-288c-4fc9-beea-c5456c4f2f4f")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.662526 91.54905)\r\n\t\t(end 108.05095 90.937474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "58f8cd69-77d3-4b29-bcba-4f75e65c150c")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.72 90.683243)\r\n\t\t(end 119.6 90.683243)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "6f117b59-b8ea-4e0c-8b5a-6f058a02fa95")\r\n\t)\r\n\t(segment\r\n\t\t(start 133.41 90.025)\r\n\t\t(end 132.441901 90.993099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "75fddf84-b8c0-4027-8d94-b9d8a0d15263")\r\n\t)\r\n\t(segment\r\n\t\t(start 128.662526 89.74905)\r\n\t\t(end 123.937474 89.74905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "7ef8e4fd-5c97-44e5-84e2-2082df796b36")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.36 90.923243)\r\n\t\t(end 119.36 91.30905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "80a26a55-4605-407a-84ff-818f2e923fde")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.76 91.30905)\r\n\t\t(end 118.76 90.923249)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "8376418c-efc4-4663-9bf8-bab548e9db57")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.05095 90.834051)\r\n\t\t(end 108.1 90.785001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "9ab78399-f1c6-4775-81d7-6b27a06f2425")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.96 91.30905)\r\n\t\t(end 119.96 90.923243)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "b1be1e8d-bfd5-45e8-a005-340d4f16a94a")\r\n\t)\r\n\t(segment\r\n\t\t(start 117.92 91.54905)\r\n\t\t(end 117.8 91.54905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "c19ec1ab-e803-497c-9c77-99f841e15c84")\r\n\t)\r\n\t(segment\r\n\t\t(start 118.52 90.683249)\r\n\t\t(end 118.4 90.683249)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "cbf80e25-46ca-4885-8b59-a3d354f3397b")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.05095 90.937474)\r\n\t\t(end 108.05095 90.834051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "d77ffbd3-7cec-476e-8cb7-b14bf2088e36")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.12 91.54905)\r\n\t\t(end 119 91.54905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "db85dc14-4863-4fee-a173-5c42171e42b2")\r\n\t)\r\n\t(segment\r\n\t\t(start 117.8 91.54905)\r\n\t\t(end 116.507231 91.54905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "e71fb130-de7e-424b-b9c9-6ba37a39ad07")\r\n\t)\r\n\t(segment\r\n\t\t(start 132.441901 90.993099)\r\n\t\t(end 129.906575 90.993099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "ef2814a3-286d-465f-876b-c9b234a363a8")\r\n\t)\r\n\t(arc\r\n\t\t(start 118.76 90.923249)\r\n\t\t(mid 118.689706 90.753543)\r\n\t\t(end 118.52 90.683249)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "0ae269bd-4fce-44ee-8adf-c701e4d70cbd")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.36 91.30905)\r\n\t\t(mid 119.289706 91.478756)\r\n\t\t(end 119.12 91.54905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "22023b0b-19f5-4370-b2f4-f55cd5a731fb")\r\n\t)\r\n\t(arc\r\n\t\t(start 118.16 91.30905)\r\n\t\t(mid 118.089706 91.478756)\r\n\t\t(end 117.92 91.54905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "4ef7abb4-88bd-41fe-bf9a-7db0b239d8b4")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.6 90.683243)\r\n\t\t(mid 119.430294 90.753537)\r\n\t\t(end 119.36 90.923243)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "7b0a5390-a070-436d-81af-f6122f7ff30e")\r\n\t)\r\n\t(arc\r\n\t\t(start 119.96 90.923243)\r\n\t\t(mid 119.889706 90.753537)\r\n\t\t(end 119.72 90.683243)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "85f8b16e-94a4-46ca-afff-56d6df1f9d1e")\r\n\t)\r\n\t(arc\r\n\t\t(start 120.2 91.54905)\r\n\t\t(mid 120.030294 91.478756)\r\n\t\t(end 119.96 91.30905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "a48b1b70-9861-4b1a-98ec-2a4f7ea8e625")\r\n\t)\r\n\t(arc\r\n\t\t(start 118.4 90.683249)\r\n\t\t(mid 118.230294 90.753543)\r\n\t\t(end 118.16 90.923249)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "aefe0a8b-2031-46b1-be88-a7e3cef0986a")\r\n\t)\r\n\t(arc\r\n\t\t(start 119 91.54905)\r\n\t\t(mid 118.830294 91.478756)\r\n\t\t(end 118.76 91.30905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2-")\r\n\t\t(uuid "ebd90e84-16d5-4605-a772-b5b25c505d4d")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.05095 94.337474)\r\n\t\t(end 108.05095 93.914051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "115624cf-a442-405c-872e-8efcb28b3db3")\r\n\t)\r\n\t(segment\r\n\t\t(start 121.320099 98.373099)\r\n\t\t(end 121.320099 97.987255)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "1bb8bbb0-5cc7-432e-bc5e-e23fbeb84e11")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.05095 93.914051)\r\n\t\t(end 108.1 93.865001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "21a5df4c-f0b2-49f3-b8e8-0793b46c9b12")\r\n\t)\r\n\t(segment\r\n\t\t(start 119.25985 98.613099)' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\r\n\t\t(end 112.326575 98.613099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "321f0f22-6b15-4449-b6c6-0e1248f046c9")\r\n\t)\r\n\t(segment\r\n\t\t(start 112.326575 98.613099)\r\n\t\t(end 108.05095 94.337474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "489a1eb7-a4d3-45d5-a58b-67a7e46bf1c1")\r\n\t)\r\n\t(segment\r\n\t\t(start 121.080099 97.747255)\r\n\t\t(end 120.960099 97.747255)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "529c6777-ef1f-4f89-98f3-aa115a93196d")\r\n\t)\r\n\t(segment\r\n\t\t(start 133.41 97.645)\r\n\t\t(end 132.441901 98.613099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "5d9ada30-4d4b-4a25-864f-97ec80c1801f")\r\n\t)\r\n\t(segment\r\n\t\t(start 121.680099 98.613099)\r\n\t\t(end 121.560099 98.613099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "6bda119e-3c37-4ffa-b530-417c2cd765b3")\r\n\t)\r\n\t(segment\r\n\t\t(start 121.920099 97.987279)\r\n\t\t(end 121.920099 98.373099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "74aa719f-15ff-48bf-8aee-35af260145f5")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.720099 97.987255)\r\n\t\t(end 120.720099 98.373099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "77e600a0-ecb2-4c96-9556-b538e885d879")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.480099 98.613099)\r\n\t\t(end 120.360099 98.613099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "7b9c5f28-09d1-4c70-9922-3aeb8662c097")\r\n\t)\r\n\t(segment\r\n\t\t(start 120.360099 98.613099)\r\n\t\t(end 119.25985 98.613099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "82d4d10e-1f55-4573-99cd-a0cdc9137ea7")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.1 93.865001)\r\n\t\t(end 108.1 93.34)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "b4298ebc-3f9d-4023-846f-bb9bd4032f31")\r\n\t)\r\n\t(segment\r\n\t\t(start 122.280099 97.747279)\r\n\t\t(end 122.160099 97.747279)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "cc545d8c-e88d-491b-872e-54cb89cdd477")\r\n\t)\r\n\t(segment\r\n\t\t(start 122.520099 98.373099)\r\n\t\t(end 122.520099 97.987279)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "d9f4a543-2730-464a-974a-6483780a13df")\r\n\t)\r\n\t(segment\r\n\t\t(start 132.441901 98.613099)\r\n\t\t(end 122.760099 98.613099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "f8ee796d-86ed-47df-923d-df0fa7293751")\r\n\t)\r\n\t(arc\r\n\t\t(start 121.920099 98.373099)\r\n\t\t(mid 121.849805 98.542805)\r\n\t\t(end 121.680099 98.613099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "0c5fded6-e5a7-4311-90d2-6e00c8619c1b")\r\n\t)\r\n\t(arc\r\n\t\t(start 122.160099 97.747279)\r\n\t\t(mid 121.990393 97.817573)\r\n\t\t(end 121.920099 97.987279)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "224c6501-208a-45f0-8051-2b4e27f966ed")\r\n\t)\r\n\t(arc\r\n\t\t(start 121.320099 97.987255)\r\n\t\t(mid 121.249805 97.817549)\r\n\t\t(end 121.080099 97.747255)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "2256f235-e5a1-4a07-86a3-56007955964f")\r\n\t)\r\n\t(arc\r\n\t\t(start 122.760099 98.613099)\r\n\t\t(mid 122.590393 98.542805)\r\n\t\t(end 122.520099 98.373099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "2fa4393d-275d-4352-b9a9-fee182dc1bd6")\r\n\t)\r\n\t(arc\r\n\t\t(start 120.720099 98.373099)\r\n\t\t(mid 120.649805 98.542805)\r\n\t\t(end 120.480099 98.613099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "5e2c7b93-8e36-4273-9f19-6b716c1c3cf8")\r\n\t)\r\n\t(arc\r\n\t\t(start 121.560099 98.613099)\r\n\t\t(mid 121.390393 98.542805)\r\n\t\t(end 121.320099 98.373099)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "7db22aac-41f6-4e36-b22a-f2d441fbee74")\r\n\t)\r\n\t(arc\r\n\t\t(start 122.520099 97.987279)\r\n\t\t(mid 122.449805 97.817573)\r\n\t\t(end 122.280099 97.747279)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "82da4150-bc56-4984-8706-8f66ef2cbc28")\r\n\t)\r\n\t(arc\r\n\t\t(start 120.960099 97.747255)\r\n\t\t(mid 120.790393 97.817549)\r\n\t\t(end 120.720099 97.987255)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0-")\r\n\t\t(uuid "c5c21087-7041-47f8-a066-93b03e9f3492")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.7 90.785001)\r\n\t\t(end 107.74905 90.834051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2+")\r\n\t\t(uuid "0d323f6a-067b-489b-840a-afdb417fe99c")\r\n\t)\r\n\t(segment\r\n\t\t(start 129.781524 91.295)\r\n\t\t(end 135.95 91.295)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2+")\r\n\t\t(uuid "13b35985-9cba-422c-a934-45216eab7a61")\r\n\t)\r\n\t(segment\r\n\t\t(start 128.537474 90.05095)\r\n\t\t(end 129.781524 91.295)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2+")\r\n\t\t(uuid "1d9e4724-7423-40d2-8cb9-8675749bb535")\r\n\t)\r\n\t(segment\r\n\t\t(start 122.262526 91.85095)\r\n\t\t(end 124.062526 90.05095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2+")\r\n\t\t(uuid "5f174b16-6030-4b23-a2f0-e40e13d1b936")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.74905 91.062526)\r\n\t\t(end 108.537474 91.85095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2+")\r\n\t\t(uuid "6723ff66-5c97-497a-89c0-9570880ddd8c")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.7 90.26)\r\n\t\t(end 107.7 90.785001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2+")\r\n\t\t(uuid "6aea8012-d8ec-43ea-bf72-9e2e54ce6bd4")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.537474 91.85095)\r\n\t\t(end 122.262526 91.85095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2+")\r\n\t\t(uuid "bfdf3de6-f483-4a39-895f-4b212bc04b91")\r\n\t)\r\n\t(segment\r\n\t\t(start 124.062526 90.05095)\r\n\t\t(end 128.537474 90.05095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2+")\r\n\t\t(uuid "c5a10e9c-c439-47d3-8e8b-de71c1a5713f")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.74905 90.834051)\r\n\t\t(end 107.74905 91.062526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P2+")\r\n\t\t(uuid "c72b8c40-b220-421e-8230-a7e5b3166e8b")\r\n\t)\r\n\t(segment\r\n\t\t(start 112.201524 98.915)\r\n\t\t(end 107.74905 94.462526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0+")\r\n\t\t(uuid "0d25ae7f-1e3d-43b3-9a61-3adbf425229b")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.74905 93.914051)\r\n\t\t(end 107.7 93.865001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0+")\r\n\t\t(uuid "5f956af7-839e-451a-b171-d3427bfe86eb")\r\n\t)\r\n\t(segment\r\n\t\t(start 135.95 98.915)\r\n\t\t(end 112.201524 98.915)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0+")\r\n\t\t(uuid "c73734ef-2ac1-4dc1-9a1a-725c84030343")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.7 93.865001)\r\n\t\t(end 107.7 93.34)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0+")\r\n\t\t(uuid "c9f181bc-ac16-430f-af58-710260485640")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.74905 94.462526)\r\n\t\t(end 107.74905 93.914051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_P0+")\r\n\t\t(uuid "fa6dfcf2-6392-47c7-875a-389ebfe1a972")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.9 87.028995)\r\n\t\t(end 107.085873 86.843122)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "1cefc660-ffac-45e0-a037-611efb674e13")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.9 90.26)\r\n\t\t(end 106.9 87.028995)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "f899d2a5-66ab-4032-9618-793e0ec84171")\r\n\t)\r\n\t(via\r\n\t\t(at 107.085873 86.843122)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "2e373017-0723-4fcd-916c-422e681a90f2")\r\n\t)\r\n\t(via\r\n\t\t(at 142.4 83.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "f23663e8-fee0-4f55-9da2-0d8b834e783e")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.4 83.2)\r\n\t\t(end 145.281346 83.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "2c70300b-d6f9-4758-8d6f-2ca23bb07953")\r\n\t)\r\n\t(segment\r\n\t\t(start 148.02 85.938654)\r\n\t\t(end 148.02 98.835)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "66ad1370-2a3d-4b8e-8713-61554b104287")\r\n\t)\r\n\t(segment\r\n\t\t(start 148.02 98.835)\r\n\t\t(end 146.87 99.985)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "ba1f349d-4225-43d9-8977-dc7585fad43c")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.281346 83.2)\r\n\t\t(end 148.02 85.938654)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "f6bdaed0-2093-4a28-b677-249a7e8d05bc")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.085873 86.843122)\r\n\t\t(end 111.278995 82.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "4bcf8ec9-a8e1-4a8b-9559-a6c9bd8ed2d4")\r\n\t)\r\n\t(segment\r\n\t\t(start 111.278995 82.65)\r\n\t\t(end 141.85 82.65)\r\n\t\t(width 0.' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "6659b31c-905a-45d7-afee-b8235554f91c")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.85 82.65)\r\n\t\t(end 142.4 83.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/ETH_LED1")\r\n\t\t(uuid "d7d2ab9a-14cc-444e-8a7f-92322c7dc247")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.7 86.2)\r\n\t\t(end 106.5 86.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_LED2")\r\n\t\t(uuid "b792204f-e17c-42e4-9181-3fd6d44c96d3")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.5 86.4)\r\n\t\t(end 106.5 90.26)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/ETH_LED2")\r\n\t\t(uuid "ca07b611-e4c4-46fb-8c20-538dde2f5a32")\r\n\t)\r\n\t(via\r\n\t\t(at 106.7 86.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/ETH_LED2")\r\n\t\t(uuid "39f8fe9b-ce1b-4c75-9ec0-8f4b1184dac8")\r\n\t)\r\n\t(segment\r\n\t\t(start 146.87 86.415)\r\n\t\t(end 142.755 82.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/ETH_LED2")\r\n\t\t(uuid "182fb087-9585-44d7-be11-12b7248aedad")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.6 82.3)\r\n\t\t(end 106.7 86.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/ETH_LED2")\r\n\t\t(uuid "c435cc0a-74d4-4366-8bb7-539de82b6c74")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.755 82.3)\r\n\t\t(end 110.6 82.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/ETH_LED2")\r\n\t\t(uuid "ef61dab6-e143-47f1-95d3-8fb61a4a6c7d")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.1425 78.79375)\r\n\t\t(end 95.49375 78.79375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "42b442ab-5be8-4640-84d9-04cebcc0121e")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.49375 78.79375)\r\n\t\t(end 95.3 78.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "4f805dfc-8021-4a8d-b0ab-6dc4ae34eaae")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.2 94.1)\r\n\t\t(end 105.3 94)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "5ff56c66-aa1b-4135-82a5-d0621b7d9236")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.3 94)\r\n\t\t(end 105.3 93.34)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "a4b8f743-5bf6-48d9-8e49-2c4ead538296")\r\n\t)\r\n\t(via\r\n\t\t(at 96.8 94.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "01576160-6255-4e5b-9173-cd1f67567d71")\r\n\t)\r\n\t(via\r\n\t\t(at 95.3 78.6)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "8452c294-6831-4f12-9026-96810a2880b0")\r\n\t)\r\n\t(via\r\n\t\t(at 105.2 94.1)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "87c2df89-9c23-434c-b03d-35f0f5510320")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.3 92.7)\r\n\t\t(end 96.8 94.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "72bc1745-860c-4875-b144-1a51574529d8")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.3 78.6)\r\n\t\t(end 95.3 92.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "924d27d9-48b3-41a1-acc1-1f8ded69040e")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.8 94.2)\r\n\t\t(end 105.1 94.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "974dade0-abea-423a-b03b-c119c74e16b9")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.1 94.2)\r\n\t\t(end 105.2 94.1)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/CAN1_INT")\r\n\t\t(uuid "bcc86258-c8c0-4936-8501-c16e9cd48184")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.565931 79.44375)\r\n\t\t(end 99.986092 79.863911)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "3d92c9b6-d53c-4218-ab9f-1aca5ca8469c")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.9 87.807108)\r\n\t\t(end 105.657108 87.05)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "3ef7665b-b270-4175-99a6-6f0692f7882b")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.1425 79.44375)\r\n\t\t(end 99.565931 79.44375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "4bcf94d8-6c6c-4832-bcbf-ca877bcaef37")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.9 90.26)\r\n\t\t(end 104.9 87.807108)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "4fb924b0-8f98-43d9-808f-3aa17fa11b24")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.8125 78.11875)\r\n\t\t(end 115.018744 78.11875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "5d8f4310-72e4-478a-99b8-36db51d06e04")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.018744 78.11875)\r\n\t\t(end 115.2 78.300006)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "88adff6b-96f6-42ee-a7ad-acbd8ad79191")\r\n\t)\r\n\t(via\r\n\t\t(at 105.657108 87.05)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "47888577-26aa-48bc-a656-d37aee73b35a")\r\n\t)\r\n\t(via\r\n\t\t(at 115.2 78.300006)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "5dd88518-c9ba-465b-bfed-7c166c7f4452")\r\n\t)\r\n\t(via\r\n\t\t(at 106.068959 79.633549)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "6386631a-5a8f-4b04-9e33-38409cdd51f6")\r\n\t)\r\n\t(via\r\n\t\t(at 99.986092 79.863911)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "c3eddcf8-deee-436e-a08c-3e523f36e358")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.5 80.230266)\r\n\t\t(end 105.5 86.892892)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "38ab7d4b-5a50-4afb-a759-c989ccfe822c")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.068959 79.633549)\r\n\t\t(end 106.068959 79.661307)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "88a37436-4f08-424e-8f12-56632791d62f")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.5 86.892892)\r\n\t\t(end 105.657108 87.05)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "c9634f8f-733f-4eb0-b0c0-15d1bef14e80")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.068959 79.661307)\r\n\t\t(end 105.5 80.230266)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "ff3d5741-039a-4990-9370-976534697eb4")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.068959 79.633549)\r\n\t\t(end 106.096717 79.633549)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "54053c2e-2e3c-4370-a4ea-8ec8d0c4f9e5")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.43026 78.300006)\r\n\t\t(end 115.2 78.300006)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "6c8de251-5cdd-41e9-85b7-782962f3b6b2")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.580266 80.15)\r\n\t\t(end 100.272181 80.15)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "752608eb-5f6f-48b4-a993-113273707b89")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.068959 79.633549)\r\n\t\t(end 106.068959 79.661307)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "849d5b38-69fa-4281-99b7-ddf24de7bd5d")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.096717 79.633549)\r\n\t\t(end 107.43026 78.300006)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "8ad44d7e-3767-4a80-ac2d-8bc31d980718")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.272181 80.15)\r\n\t\t(end 99.986092 79.863911)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "e64ced17-ec81-48a2-85f8-34729f31fa24")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.068959 79.661307)\r\n\t\t(end 105.580266 80.15)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "SCK")\r\n\t\t(uuid "eeb2c4fc-64f4-4082-926e-776ae15eefa6")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.9 92.677818)\r\n\t\t(end 105.248332 92.329486)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "35370c68-ab6a-4678-a4d0-be2d76321ffe")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.19875 78.2)\r\n\t\t(end 99.1425 78.14375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "48324fbd-cbdc-4546-b32f-fe27713c8500")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.9 78.2)\r\n\t\t(end 99.19875 78.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "5011b75f-1651-401b-a169-6065f39d7606")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.248332 92.329486)\r\n\t\t(end 105.248332 92.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "7526b013-8c3f-47ca-ad1f-300e8b25e20c")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.9 93.34)\r\n\t\t(end 104.9 92.677818)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "76f150c3-4319-4bf6-9644-1846bc69914e")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.83125 76.8)\r\n\t\t(end 113.8125 76.81875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "8c4c198e-83f8-4194-a755-5afd20ff2dbe")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.2 76.8)\r\n\t\t(end 113.83125 76.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "df45e429-0c90-4032-8883-6ca6a51bc184")\r\n\t)\r\n\t(via\r\n\t\t(at 99.9 78.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "929c1c83-cbfc-4b6b-b155-e0ffa362b1db")\r\n\t)\r\n\t(via\r\n\t\t(at 105 78.7)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "b1eeb25c-5d39-4d8f-8128-46e4b5198bae")\r\n\t)\r\n\t(via\r\n\t\t(at 115.2 76.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "bb75157a-640b-472d-9a51-fca6c5e4ac42")\r\n\t)\r\n\t(via\r\n\t\t(at 105.248332 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'92.25)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "e28b4505-e3b7-4d51-a485-a116901e504b")\r\n\t)\r\n\t(segment\r\n\t\t(start 105 78.7)\r\n\t\t(end 104.4 79.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "07be6d08-6207-4dc6-9dae-915e30387060")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.85 91.851668)\r\n\t\t(end 105.248332 92.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "1038bfa5-4495-4fb6-a45b-e93ce510ed77")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.85 88.555026)\r\n\t\t(end 104.85 91.851668)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "4cb5283e-2e2d-4d6c-b688-ca20a9bc7ed0")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.4 79.3)\r\n\t\t(end 104.4 88.105026)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "de5b4e8f-9d0b-425c-86f3-87a1e5dbcab8")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.4 88.105026)\r\n\t\t(end 104.85 88.555026)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "ff7cc544-c277-46ce-8fa3-505bfb004383")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.5 77.5)\r\n\t\t(end 114.65 77.35)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "193c29b1-9b87-4583-9511-eae3bae3496a")\r\n\t)\r\n\t(segment\r\n\t\t(start 105 78.7)\r\n\t\t(end 106.2 77.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "1da6f27f-e98f-42e9-85cf-2c37c2c370b3")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.2 77.5)\r\n\t\t(end 114.5 77.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "4c3aef92-dde6-4357-8c1e-9c4bb848230e")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.999997 77.000003)\r\n\t\t(end 115.2 76.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "94254f15-a261-428a-9719-390c47c2a485")\r\n\t)\r\n\t(segment\r\n\t\t(start 105 78.7)\r\n\t\t(end 104.5 79.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "a9072132-7ea8-4829-ac7f-24485e3ad732")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.972182 77.000003)\r\n\t\t(end 114.999997 77.000003)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "de78c6fa-ef15-45db-b4de-21932cadb93e")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 79.2)\r\n\t\t(end 100.9 79.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "e02a773b-8cb3-4621-a2f9-f5647a149f72")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.65 77.35)\r\n\t\t(end 114.65 77.322185)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "ea8b5782-0f4f-4164-8509-f65c5a410580")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.9 79.2)\r\n\t\t(end 99.9 78.2)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "efbb2337-7c2c-4e13-b9cb-5b8b422d1df6")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.65 77.322185)\r\n\t\t(end 114.972182 77.000003)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MISO")\r\n\t\t(uuid "fe8fcc47-707c-4495-b18e-a08ae97fc8ba")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.118747 77.46875)\r\n\t\t(end 115.2 77.550003)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "263c6bb2-879c-45f4-bf7f-2a5f4e23342a")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 87.25)\r\n\t\t(end 104.95 86.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "7edeac11-d473-47fb-8508-f3cf3ae220ae")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.69375 78.79375)\r\n\t\t(end 99.1425 78.79375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "aad1ebb3-6b93-4122-a791-33d7c850ce37")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.8125 77.46875)\r\n\t\t(end 115.118747 77.46875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "bc2d59d1-e425-465a-8b49-51dfc6c2ee1d")\r\n\t)\r\n\t(segment\r\n\t\t(start 100 79.1)\r\n\t\t(end 99.69375 78.79375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "bcb0f4a9-9b88-45f2-8f22-8ccc0c833728")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 90.26)\r\n\t\t(end 104.5 87.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "f224534e-4a24-4ad1-80a6-f3a70d96da97")\r\n\t)\r\n\t(via\r\n\t\t(at 104.95 86.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "25420d97-e854-4a80-8683-e0d60675d597")\r\n\t)\r\n\t(via\r\n\t\t(at 105.1 79.5)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "6b881966-e5c8-4317-bc0d-c0a649f40081")\r\n\t)\r\n\t(via\r\n\t\t(at 115.2 77.550003)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "8a3eca4d-4f64-47f7-950a-b034293272f7")\r\n\t)\r\n\t(via\r\n\t\t(at 100 79.1)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "bbe43122-4b4a-4947-94f9-6c8acda54f8f")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.9 86.75)\r\n\t\t(end 104.95 86.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "3d11d5c5-2839-4666-b40b-d6afa35c0d18")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.1 79.9)\r\n\t\t(end 104.9 80.1)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "8b25563c-fb35-4a71-9ba5-382d93aeaef6")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.9 80.1)\r\n\t\t(end 104.9 86.75)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "bff6a5c1-3421-4b98-9b6d-7b66999e3227")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.1 79.5)\r\n\t\t(end 105.1 79.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "f9fb7274-bc7b-4afe-aa5f-e97134843623")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.1 79.5)\r\n\t\t(end 104.8 79.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "002ffd7c-277f-46ca-b2fa-7d58f2cb454f")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.1 79.5)\r\n\t\t(end 105.254176 79.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "0a49d51a-7beb-41a2-8c1a-296dbc65c445")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.80417 77.950006)\r\n\t\t(end 114.772182 77.950006)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "2bcba15b-4eb2-4a8d-9c0c-c2da1ff1348a")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.7 79.8)\r\n\t\t(end 100 79.1)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "57fa6372-0818-4397-b493-069764deb488")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.999997 77.750006)\r\n\t\t(end 115.2 77.550003)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "6c031726-24fa-4608-9361-d3e2f6619156")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.772182 77.950006)\r\n\t\t(end 114.972182 77.750006)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "81422525-c221-4800-afa1-0b4efed97632")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.254176 79.5)\r\n\t\t(end 106.80417 77.950006)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "8d320ee2-1f40-4e8f-ae50-ef668a699792")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.8 79.8)\r\n\t\t(end 100.7 79.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "dc35a1c5-29d5-4bcb-b2fa-5465c5710486")\r\n\t)\r\n\t(segment\r\n\t\t(start 114.972182 77.750006)\r\n\t\t(end 114.999997 77.750006)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "MOSI")\r\n\t\t(uuid "fb31b965-6c09-447f-b7ba-216c68142d0e")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.2 91)\r\n\t\t(end 102.1 90.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "9582c4e9-cc63-482b-a587-ba21a4905055")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.6 63.25)\r\n\t\t(end 104.85 62.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "b2203f1d-9eaa-4d56-b75c-17a1ce0e1a4a")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.6 64.4)\r\n\t\t(end 105.6 63.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "c0df9544-39ae-48f0-9d8c-cdfcbd9a5bf1")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.1 90.9)\r\n\t\t(end 102.1 90.26)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "ec5817fd-52a6-48b2-8015-c4a5f2459145")\r\n\t)\r\n\t(via\r\n\t\t(at 105.6 64.4)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "7fd31e34-3538-4b7c-8f57-882310ede218")\r\n\t)\r\n\t(via\r\n\t\t(at 106.5 91.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "c7d9ddef-b3c7-4441-903c-a6fc56299230")\r\n\t)\r\n\t(via\r\n\t\t(at 102.2 91)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "c9ad56fd-f67b-41f8-a057-fbe6cbd18f40")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.6 64.4)\r\n\t\t(end 107.575 66.375)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "1ad0caf8-f1a9-4b8c-ab8d-166847622131")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.3 85.951177)\r\n\t\t(end 107.635873 86.615304)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "43366b2a-015a-47d8-862e-2b135eba8961")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.575 67.29528)\r\n\t\t(end 108.3 68.02028)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "4b1f1459-77f6-4d03-84b0-60f7ded492ad")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.25 64.05)\r\n\t\t(end 105.6 64.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "6bfaff01-989f-4e90-b616-6fbbf2a8902c")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.3 68.02028)\r\n\t\t(end 108.3 85.951177)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "6dcc9ace-c20e-4bae-87bf-8e2b5c77e93b")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.635873 86.615304)\r\n\t\t(end 107.635873 90.164127)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "785bd0a6-343f-4109-b258-a9921f30ccc2")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.25 63.45)\r\n\t\t(end 105.25 64.05)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "c683d67b-77db-4362-a0b5-b8b1d89b936e")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.635873 90.164127)\r\n\t\t(end 106.5 91.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "eacea5bf-0b74-45bf-81af-187362e76c66")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.575 66.375)\r\n\t\t(end 107.575 67.29528)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "f5b822f4-152b-46ac-93c9-7ed50ea3d349")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.5 91.3)\r\n\t\t(end 102.2 91)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "47eb4ed2-03a2-4d8c-9433-8929f563edfa")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.5 91.3)\r\n\t\t(end 102.5 91.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/UART1_TX")\r\n\t\t(uuid "e991c2ed-b174-4b85-b076-13ea779e6fb1")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.34444 64.308842)\r\n\t\t(end 106.34444 64.433378)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "15908f73-93e0-433d-a34c-85a32b3dbc2a")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.175001 64.95)\r\n\t\t(end 104.85 64.624999)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "5e8c56e9-f4ee-47ce-a255-3ed5438d6e57")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.1 92.5)\r\n\t\t(end 102.1 93.34)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "5f6ed0f0-039d-49a3-801c-97997db0ab76")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.85 64.624999)\r\n\t\t(end 104.85 64.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "5fd9e19e-af98-4966-8e90-0105656505d4")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.827818 64.95)\r\n\t\t(end 105.175001 64.95)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "643e20fa-b79b-4fd5-b9bd-5401ec2b301a")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.34444 64.433378)\r\n\t\t(end 105.827818 64.95)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "ea8bbe9f-d630-4d7f-88d8-6f294b3498c3")\r\n\t)\r\n\t(via\r\n\t\t(at 106.34444 64.308842)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "53befa15-7e80-475a-8d93-bd30673d0f34")\r\n\t)\r\n\t(via\r\n\t\t(at 102.1 92.5)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "8763cb30-4003-4905-8a2d-dc69adf9ba44")\r\n\t)\r\n\t(via\r\n\t\t(at 107 92)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "96707cd4-135b-487d-bd01-1501f2cc1592")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.825001 65.775)\r\n\t\t(end 109.09528 65.775)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "13b03211-2576-4c94-b244-76c052a61b5d")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.375001 64.324999)\r\n\t\t(end 107.825001 65.775)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "26290fd2-8275-42b7-81b5-660290c9044d")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.6 67.27972)\r\n\t\t(end 110.6 88.4)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "28b75237-78bd-409f-b953-dd2e8907e3ba")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.05 63.999999)\r\n\t\t(end 106.375001 64.324999)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "3fd80ac5-6e01-4016-b3ee-88ec0254fbdf")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.375001 64.324999)\r\n\t\t(end 106.358844 64.308842)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "abf13e59-fb09-4169-aa80-c6084dd11720")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.05 63.45)\r\n\t\t(end 106.05 63.999999)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "bd742188-a165-4900-b534-3c93ec457dd0")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.6 88.4)\r\n\t\t(end 107 92)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "dc96fc20-6fa7-4b50-81c4-babad63c84c8")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.358844 64.308842)\r\n\t\t(end 106.34444 64.308842)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "e11ae3d9-c789-4e4d-836c-2eb05d76267c")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.09528 65.775)\r\n\t\t(end 110.6 67.27972)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "f829990a-4709-40b6-b424-f91603de0bbf")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.9 91.7)\r\n\t\t(end 106.122182 91.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "16b49cef-179c-40a3-b9f1-f4e0ebd2e405")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.1 92.5)\r\n\t\t(end 102.9 91.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "4c12e4c1-91ad-49c4-a3db-9e297c21e608")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.422182 92)\r\n\t\t(end 107 92)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "cb9b0746-2597-46f9-bd78-24eea22f09d0")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.122182 91.7)\r\n\t\t(end 106.422182 92)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/UART1_RX")\r\n\t\t(uuid "f40a4f03-02fc-4510-a392-a161f3d532b4")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.5 93.34)\r\n\t\t(end 100.5 92.840903)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "75520798-de6d-44b2-bd3e-ce46d7d35271")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.5 92.840903)\r\n\t\t(end 100.798485 92.542418)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "7cb0c9db-b266-4898-af8f-17b36b9e1777")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.8125 77.46875)\r\n\t\t(end 110.31875 77.46875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "8bc2ca75-dc52-4f09-a329-fe5781596797")\r\n\t)\r\n\t(segment\r\n\t\t(start 110.31875 77.46875)\r\n\t\t(end 109.8 76.95)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "f0b2b404-fc9f-4b00-917d-6516cebe0ec8")\r\n\t)\r\n\t(via\r\n\t\t(at 109.8 76.95)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "09500d0c-8cc9-4fa0-a082-8b1614478715")\r\n\t)\r\n\t(via\r\n\t\t(at 100.798485 92.542418)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "3d6e8f2f-e6e8-4641-bf74-36eb9a1cd1e7")\r\n\t)\r\n\t(via\r\n\t\t(at 101.2 78.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "a73a4460-7fe9-438e-b414-c2a15e193e8e")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.2 92.140903)\r\n\t\t(end 101.2 78.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "3946e7f8-606f-4e86-87f9-5966c272fe2b")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.798485 92.542418)\r\n\t\t(end 101.2 92.140903)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "c1459cd3-11cf-4892-ad00-da0b84e2478e")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.75 76.95)\r\n\t\t(end 104.4 78.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "a6075b86-eec8-4992-9efb-20b798f6da24")\r\n\t)\r\n\t(segment\r\n\t\t(start 109.8 76.95)\r\n\t\t(end 105.75 76.95)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "d8a09856-9e42-4e59-bdfc-659007b24afe")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.4 78.3)\r\n\t\t(end 101.2 78.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/CAN2_INT")\r\n\t\t(uuid "de90878f-8638-4892-97ce-401c4b80c3e4")\r\n\t)\r\n\t(segment\r\n\t\t(start 99.1425 77.49375)\r\n\t\t(end 100.222745 77.49375)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t(uuid "55c80e23-1e7e-4b0f-a2e1-954496c9fd5a")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.222745 77.49375)\r\n\t\t(end 100.285873 77.556878)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t(uuid "918ec53f-52a9-4855-833c-a640fee9ed77")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.1 89.35)\r\n\t\t(end 100.1 90.26)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t(uuid "bba31187-a491-4851-8b7a-4463d44c81f9")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.2 89.25)\r\n\t\t(end 100.1 89.35)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t(uuid "da849eab-03ef-4e96-b5a7-c6a426eac7a7")\r\n\t)\r\n\t(via\r\n\t\t(at 100.2 89.25)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t(uuid "45244677-309f-4d3b-9d61-26af42301e72")\r\n\t)\r\n\t(via\r\n\t\t(at 100.285873 77.556878)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t(uuid "b252cdc2-816f-49be-accb-ba3619dcce3a")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.285873 77.556878)\r\n\t\t(end 100.6 77.871005)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t(uuid "a5523a2c-2231-4e09-bc14-e34af30471c1")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.6 77.871005)\r\n\t\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(end 100.6 88.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t(uuid "d13c69c4-f2a2-4105-8b38-60fa434250ba")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.6 88.85)\r\n\t\t(end 100.2 89.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{CAN1_CS}")\r\n\t\t(uuid "f0c8d8ea-3a8f-4c87-b9ab-447df45c5870")\r\n\t)\r\n\t(segment\r\n\t\t(start 113.8125 76.16875)\r\n\t\t(end 115.555418 76.16875)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "2132cc02-10c8-47a9-963a-6594411570c2")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.2 94.75)\r\n\t\t(end 100.1 94.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "3583b1ed-8ef3-44f8-971f-597182d26555")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.555418 76.16875)\r\n\t\t(end 115.574169 76.149999)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "ac638c72-4cf7-46e5-8b06-fe9ba8e3210b")\r\n\t)\r\n\t(segment\r\n\t\t(start 100.1 94.65)\r\n\t\t(end 100.1 93.34)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "ec8945dd-cc98-4699-840d-2e8f0b8f90f8")\r\n\t)\r\n\t(via\r\n\t\t(at 116 93.2)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "63157bc2-85ec-401c-9194-a4ca1d15dee6")\r\n\t)\r\n\t(via\r\n\t\t(at 100.2 94.75)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "a56f8ca9-7bb5-47dd-a52e-109c6c0e9bf6")\r\n\t)\r\n\t(via\r\n\t\t(at 115.574169 76.149999)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "d3f9a3e9-eb8f-4f1a-bb72-26ca3b7bcf0d")\r\n\t)\r\n\t(segment\r\n\t\t(start 116 76.57583)\r\n\t\t(end 115.574169 76.149999)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "0d68bb4f-9a6c-4802-be0f-f804b58ee491")\r\n\t)\r\n\t(segment\r\n\t\t(start 116 86.25)\r\n\t\t(end 116 76.57583)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "464cdd30-5643-4d34-80ae-5d19595faf7c")\r\n\t)\r\n\t(segment\r\n\t\t(start 116.35 86.6)\r\n\t\t(end 116 86.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "85a28ebf-4da8-44f0-a806-93b8d93b33af")\r\n\t)\r\n\t(segment\r\n\t\t(start 116.35 92.85)\r\n\t\t(end 116.35 86.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "a16e104b-c88c-4b36-8b9b-82a3906057d7")\r\n\t)\r\n\t(segment\r\n\t\t(start 116 93.2)\r\n\t\t(end 116.35 92.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "d36da21d-ef00-4059-a1fc-0b0e0c3363c3")\r\n\t)\r\n\t(segment\r\n\t\t(start 116 93.2)\r\n\t\t(end 115.2 94)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "4f147209-9677-4f8e-9d95-3d0575928fe4")\r\n\t)\r\n\t(segment\r\n\t\t(start 112.6 94)\r\n\t\t(end 111.85 94.75)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "68888205-323d-4b04-bd2e-722d4fa250b5")\r\n\t)\r\n\t(segment\r\n\t\t(start 111.85 94.75)\r\n\t\t(end 100.2 94.75)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "771513f1-2abf-4c39-993d-5e2358f0ab87")\r\n\t)\r\n\t(segment\r\n\t\t(start 115.2 94)\r\n\t\t(end 112.6 94)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/~{CAN2_CS}")\r\n\t\t(uuid "cb2e4ca5-3080-40e4-a790-2f8c3921d34d")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.1 92.871746)\r\n\t\t(end 94.436937 92.534809)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "14841bf6-3c61-4b8f-9598-36897ae35a33")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.85 134.200003)\r\n\t\t(end 96.050003 134)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "1df88afd-11b0-4f6a-bde3-2a33e77e2bd5")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.1 93.34)\r\n\t\t(end 94.1 92.871746)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "5e3c0ef1-8e5a-40d2-847b-34aac0d8dc9d")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.25 111.2)\r\n\t\t(end 138.25 112.25)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "6fc5f50f-ea3a-45c1-bb38-37aff8f6ba94")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.85 135)\r\n\t\t(end 95.85 134.200003)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "79ea3670-f375-44c4-bcce-9a37d8916093")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.25 112.25)\r\n\t\t(end 138.2 112.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "e8507794-a5bb-4f13-aec5-3dbe7afb045d")\r\n\t)\r\n\t(via\r\n\t\t(at 94.436937 92.534809)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "00fb7bf7-b9bc-402a-b418-c16d67cd86af")\r\n\t)\r\n\t(via\r\n\t\t(at 95.95 112.85)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "1225b5f3-29d8-4916-8150-6fb0ba873c81")\r\n\t)\r\n\t(via\r\n\t\t(at 96.050003 134)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "c1a380f7-e319-4ce6-9f40-ef2c27520967")\r\n\t)\r\n\t(via\r\n\t\t(at 138.2 112.3)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "d4d3c16b-7363-4f16-bbbd-c5da503eecc9")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.95 111.7)\r\n\t\t(end 95.95 112.398336)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "2726e2f5-a446-4caa-ac6a-800fedb64097")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.05 93.147872)\r\n\t\t(end 95.05 94.75)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "2f1716e6-3d51-4c22-85cf-69c447cd6a59")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.050003 134)\r\n\t\t(end 95.95 133.899997)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "375324ca-36d1-44a3-abd0-d640bd9ed484")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.95 133.899997)\r\n\t\t(end 95.95 112.398336)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "67da44f6-b2ad-4fde-a65e-088c4272a83e")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.05 94.75)\r\n\t\t(end 94.2 95.6)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "77f890a8-93d8-411a-a177-693972553401")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.2 109.95)\r\n\t\t(end 95.95 111.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "ac20b28d-7b81-4f9c-a122-82f33297ff2a")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.95 112.398336)\r\n\t\t(end 95.95 112.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "b86d89a2-162e-4d13-8c14-eb4062f3e65d")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.436937 92.534809)\r\n\t\t(end 95.05 93.147872)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "d46345f8-b86d-40fb-b1ec-042cf8af5830")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.2 95.6)\r\n\t\t(end 94.2 109.95)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "eb1907ee-0b34-4c8f-a0ca-d0a5b8188a23")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.208271 112.836092)\r\n\t\t(end 137.663907 112.836092)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "06042c30-8468-4e50-8691-ac3ed74f4a60")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.022179 112.65)\r\n\t\t(end 137.208271 112.836092)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "0f3969ed-c8a3-4ade-90e7-ea05708e2481")\r\n\t)\r\n\t(segment\r\n\t\t(start 97.198336 112.65)\r\n\t\t(end 137.022179 112.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "3a07cbb7-0100-4b4e-8004-7ca195e7e8c9")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.663907 112.836092)\r\n\t\t(end 138.2 112.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "5f16b419-fb70-4741-a8c7-a76a54635e52")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.998336 112.85)\r\n\t\t(end 97.198336 112.65)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "6b136b3b-b908-4062-a705-c8a32c502982")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.95 112.85)\r\n\t\t(end 96.998336 112.85)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SCL")\r\n\t\t(uuid "b5c6198e-8744-4a90-ad81-8035d7ba7e86")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.7 92.681599)\r\n\t\t(end 93.7 93.34)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "1809ebe4-92f9-48aa-b0d1-0ff8c729d7ee")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.512491 92.56622)\r\n\t\t(end 93.584621 92.56622)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "195457f9-9d8c-4e28-99bc-bb3cf5f3521d")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.35 135)\r\n\t\t(end 95.35 134.05)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "1bd766ea-a95a-4f96-8c66-642feab7afb0")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.75 111.972181)\r\n\t\t(end 137.436089 112.286092)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu"' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b')\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "4d504af5-7716-416e-a0cf-a11df71c61ec")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.584621 92.56622)\r\n\t\t(end 93.7 92.681599)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "72175cab-a8f2-436b-8dec-19dfde1a3220")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.75 111.2)\r\n\t\t(end 137.75 111.972181)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "8f3d52ce-ff6c-47c6-a719-9e4f62f8f586")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.35 134.05)\r\n\t\t(end 95.3 134)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "afab8672-b94f-446f-a776-8c65181888b8")\r\n\t)\r\n\t(via\r\n\t\t(at 93.512491 92.56622)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "03161cab-ecff-4319-ab25-f4d2d9784ac0")\r\n\t)\r\n\t(via\r\n\t\t(at 95.3 134)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "4486a663-2e64-4e6d-8e21-9c0507521416")\r\n\t)\r\n\t(via\r\n\t\t(at 137.436089 112.286092)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "6eb9245e-4550-48e9-94b1-b6718786d77d")\r\n\t)\r\n\t(via\r\n\t\t(at 94.3 110.9)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "73db3d34-aaae-4ae8-a9c4-bff4f803294f")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.3 111.9)\r\n\t\t(end 94.3 110.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "01275b47-a881-4e92-8857-fd7503fbe674")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.85 110.45)\r\n\t\t(end 93.85 92.829197)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "09667ea2-f917-4ef6-ba4c-9b41f21bb503")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.85 92.829197)\r\n\t\t(end 93.587023 92.56622)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "52156caf-17a9-42d2-a0dc-7c4ea3705eab")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.3 134)\r\n\t\t(end 95.3 111.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "641321e3-428f-40a1-a247-f473cb23b429")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.3 110.9)\r\n\t\t(end 93.85 110.45)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "7bc77bef-117e-46fc-b207-c33cbc47111d")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.587023 92.56622)\r\n\t\t(end 93.512491 92.56622)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "b1c5ca37-d6dd-45f2-b9c3-2f980ac86e78")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.7 112.3)\r\n\t\t(end 94.3 110.9)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "9ca33b05-857d-41dc-b51e-e2d9564cbddd")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.436089 112.286092)\r\n\t\t(end 137.422181 112.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "b9db310d-abff-4498-b827-9725d0d71fc9")\r\n\t)\r\n\t(segment\r\n\t\t(start 137.422181 112.3)\r\n\t\t(end 95.7 112.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_SDA")\r\n\t\t(uuid "db07c810-66e7-4dd5-a80a-8e865d347352")\r\n\t)\r\n\t(segment\r\n\t\t(start 90.9 90.26)\r\n\t\t(end 90.9 89.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U1A-PI_LED_nPWR)")\r\n\t\t(uuid "14cd2e6e-521f-4720-a537-2a540f114595")\r\n\t)\r\n\t(segment\r\n\t\t(start 90.9 89.5)\r\n\t\t(end 83.5 82.1)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U1A-PI_LED_nPWR)")\r\n\t\t(uuid "2cd7ca63-0b5b-4d43-aab5-7f29a055fd1c")\r\n\t)\r\n\t(segment\r\n\t\t(start 83.5 82.1)\r\n\t\t(end 83.5 77.6625)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U1A-PI_LED_nPWR)")\r\n\t\t(uuid "54182580-3273-469d-824f-6ee847e44275")\r\n\t)\r\n\t(segment\r\n\t\t(start 83.5 77.6625)\r\n\t\t(end 84.6625 76.5)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(U1A-PI_LED_nPWR)")\r\n\t\t(uuid "d8079d0b-e62d-42c3-9cd2-9d4a590bdb84")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.95 133.45)\r\n\t\t(end 96.35 133.45)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "1f49e2b2-9197-470d-b7a0-06af5d039aaf")\r\n\t)\r\n\t(segment\r\n\t\t(start 139.75 111.2)\r\n\t\t(end 139.75 111.800004)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "3bf7ae42-fc95-4318-b004-e2cc26394be1")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.1 132.7)\r\n\t\t(end 94.2 132.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "454a215d-c14f-478f-bf8a-14fdfca15972")\r\n\t)\r\n\t(segment\r\n\t\t(start 90.5 90.26)\r\n\t\t(end 90.5 91.1)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "66ec12b3-2de5-44fb-a9a2-1d37f90a42ca")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.35 133.45)\r\n\t\t(end 97.35 134.450001)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "9044a90c-3761-4d30-b672-37ad6cc1b334")\r\n\t)\r\n\t(segment\r\n\t\t(start 139.75 111.800004)\r\n\t\t(end 138.800002 112.750002)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "c9f163f7-097c-4ec4-aedc-9368164d0a62")\r\n\t)\r\n\t(segment\r\n\t\t(start 97.35 134.450001)\r\n\t\t(end 97.35 135)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "d8b579ad-32ab-41e2-acd8-2d5e226f0edc")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.2 132.7)\r\n\t\t(end 94.95 133.45)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "ec04968e-ecb6-4d01-ab16-ebb034b0d4ff")\r\n\t)\r\n\t(via\r\n\t\t(at 138.800002 112.750002)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "9139ca94-fd03-431b-9725-94210f61dc91")\r\n\t)\r\n\t(via\r\n\t\t(at 90.3 113.8)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "bcfa6278-7875-4964-b7f3-b8bda4a63ab7")\r\n\t)\r\n\t(via\r\n\t\t(at 90.5 91.1)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "ecc4dcc3-4074-43f2-8492-a13941b4de09")\r\n\t)\r\n\t(via\r\n\t\t(at 93.1 132.7)\r\n\t\t(size 0.6)\r\n\t\t(drill 0.3)\r\n\t\t(layers "F.Cu" "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "ff7f851f-9ca6-45a1-90a1-92858f247890")\r\n\t)\r\n\t(segment\r\n\t\t(start 90.5 91.1)\r\n\t\t(end 90.3 91.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "37915eb1-83c1-409c-a155-2f526a860792")\r\n\t)\r\n\t(segment\r\n\t\t(start 91.65 132.7)\r\n\t\t(end 90.3 131.35)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "75318277-b4e1-4a37-920d-67b8087fead7")\r\n\t)\r\n\t(segment\r\n\t\t(start 90.3 131.35)\r\n\t\t(end 90.3 113.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "88d64cfa-2e70-4f0f-a742-ef5ff77ca491")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.1 132.7)\r\n\t\t(end 91.65 132.7)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "91589cf5-4ea4-4d33-8eca-835aba6937c7")\r\n\t)\r\n\t(segment\r\n\t\t(start 90.3 91.3)\r\n\t\t(end 90.3 113.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "d6e07dea-b661-476e-a943-0a476d283275")\r\n\t)\r\n\t(segment\r\n\t\t(start 97.813908 113.186092)\r\n\t\t(end 97.2 113.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "36f00004-d55b-4398-8682-e67ee71f46a4")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.363912 113.186092)\r\n\t\t(end 97.813908 113.186092)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "4a1f504b-e8c2-49fe-82e8-ed8d4ae25877")\r\n\t)\r\n\t(segment\r\n\t\t(start 97.2 113.8)\r\n\t\t(end 90.3 113.8)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "595cb3ce-4d39-4970-8fc9-9d429bc7e6a9")\r\n\t)\r\n\t(segment\r\n\t\t(start 138.800002 112.750002)\r\n\t\t(end 138.363912 113.186092)\r\n\t\t(width 0.2)\r\n\t\t(layer "In2.Cu")\r\n\t\t(net "/CM4/Cameras/CAMERA_GPIO")\r\n\t\t(uuid "e8026c24-9255-4bb8-8d41-9b835fe6b760")\r\n\t)\r\n\t(segment\r\n\t\t(start 77.35 86.3)\r\n\t\t(end 75.325 84.275)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/POWER_BUTTON")\r\n\t\t(uuid "34a502dd-5edf-4876-80e5-0ea95a948d3d")\r\n\t)\r\n\t(segment\r\n\t\t(start 90.1 90.26)\r\n\t\t(end 86.14 86.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/POWER_BUTTON")\r\n\t\t(uuid "3b02cfb4-ab9d-444a-8d88-71ea4b258d44")\r\n\t)\r\n\t(segment\r\n\t\t(start 86.14 86.3)\r\n\t\t(end 77.35 86.3)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/POWER_BUTTON")\r\n\t\t(uuid "5e77134b-8819-4bee-b428-04121af925a1")\r\n\t)\r\n\t(segment\r\n\t\t(start 75.325 80.125)\r\n\t\t(end 75.325 84.275)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/POWER_BUTTON")\r\n\t\t(uuid "f37890af-1092-4f1e-aa31-24c0b8a5eeb9")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.262526 121.55095)\r\n\t\t(end 108.762526 121.55095)\r\n\t\t(width 0.1519)\r\n' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t(uuid "270d8df6-0e59-4605-8000-a8b813a0a886")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.762526 121.55095)\r\n\t\t(end 106.85095 123.462526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t(uuid "33e669cf-15c6-4a96-bc5e-25581c8fb2a6")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.85095 123.685949)\r\n\t\t(end 106.9 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t(uuid "4475e7fd-56e7-4de4-b147-6f089ed8b0a8")\r\n\t)\r\n\t(segment\r\n\t\t(start 147.15095 112.124051)\r\n\t\t(end 147.15095 118.662526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t(uuid "6a01de91-ca5d-445b-bcfa-6aff2bac64b8")\r\n\t)\r\n\t(segment\r\n\t\t(start 147.25 112.025001)\r\n\t\t(end 147.15095 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t(uuid "8a127674-50ae-4153-ad9f-2316667b636d")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.85095 123.462526)\r\n\t\t(end 106.85095 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t(uuid "ae7f1ffd-9816-4e18-abe3-55ed8e3dec35")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.9 123.734999)\r\n\t\t(end 106.9 124.26)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t(uuid "cddfcf4c-2d5e-43f8-8baa-e6e39b144def")\r\n\t)\r\n\t(segment\r\n\t\t(start 147.15095 118.662526)\r\n\t\t(end 144.262526 121.55095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t(uuid "de3c78ea-eebb-435d-9db9-4b7819ab4299")\r\n\t)\r\n\t(segment\r\n\t\t(start 147.25 111.2)\r\n\t\t(end 147.25 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0-")\r\n\t\t(uuid "f6689ab7-99d4-49e3-b50e-1a04860de842")\r\n\t)\r\n\t(segment\r\n\t\t(start 146.84905 118.537474)\r\n\t\t(end 144.137474 121.24905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t(uuid "12ac092a-5e31-4243-9fb3-46fc54c524ac")\r\n\t)\r\n\t(segment\r\n\t\t(start 146.84905 112.124051)\r\n\t\t(end 146.84905 118.537474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t(uuid "277eed10-1aad-40b2-9d6e-f2fb721b115f")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.54905 123.685949)\r\n\t\t(end 106.5 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t(uuid "35b2c4e7-dbe5-4a94-8e46-e90794440d13")\r\n\t)\r\n\t(segment\r\n\t\t(start 146.75 112.025001)\r\n\t\t(end 146.84905 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t(uuid "4009481d-ed13-489c-97da-b84f1cf6ca86")\r\n\t)\r\n\t(segment\r\n\t\t(start 146.75 111.2)\r\n\t\t(end 146.75 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t(uuid "6440f20f-5bad-4440-8918-930a14f796aa")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.5 123.734999)\r\n\t\t(end 106.5 124.26)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t(uuid "76e94c7f-1e5f-4b10-a5e1-c3b6271a77f9")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.137474 121.24905)\r\n\t\t(end 108.637474 121.24905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t(uuid "9227198d-428c-4374-86cb-b3c133a2e019")\r\n\t)\r\n\t(segment\r\n\t\t(start 106.54905 123.337474)\r\n\t\t(end 106.54905 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t(uuid "9fd8f258-8d94-4989-b67c-590876712f20")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.637474 121.24905)\r\n\t\t(end 106.54905 123.337474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D0+")\r\n\t\t(uuid "e56d7a16-9bc1-483e-89c4-7057bfb0beed")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.65095 123.685949)\r\n\t\t(end 105.65095 122.362526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t(uuid "26f987dc-7ec3-40c0-92e7-37256863d571")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.75 112.025001)\r\n\t\t(end 145.75 111.2)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t(uuid "3ed28015-861f-4d16-a3f5-6adac68825e6")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.65095 112.124051)\r\n\t\t(end 145.75 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t(uuid "48ef4526-6987-4172-9128-000c891ea5fc")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.65095 122.362526)\r\n\t\t(end 108.062526 119.95095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t(uuid "50fceaf9-8f7f-4d19-8ef3-12791c4ea349")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.7 124.26)\r\n\t\t(end 105.7 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t(uuid "9c0decd1-f872-4078-b4d8-6432aa5f0092")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.7 123.734999)\r\n\t\t(end 105.65095 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t(uuid "a1b92ec7-9b81-401f-af5b-f2004949e239")\r\n\t)\r\n\t(segment\r\n\t\t(start 108.062526 119.95095)\r\n\t\t(end 143.116002 119.95095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t(uuid "b66ca590-a745-4ba8-bdd3-19fac87fc2b2")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.65095 117.416001)\r\n\t\t(end 145.65095 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t(uuid "d0a170bb-4970-44af-8bec-f73d2af2ab37")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.65095 117.416001)\r\n\t\t(end 143.116002 119.95095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1-")\r\n\t\t(uuid "e0dff0de-1f85-4ac9-9a8e-63cb2cc245b8")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.3 123.734999)\r\n\t\t(end 105.34905 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t(uuid "0019d9ec-3921-4354-8ae1-612a7323d5cc")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.34905 117.29095)\r\n\t\t(end 145.34905 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t(uuid "11b9a46a-fb47-4487-8eeb-75efcc76c83b")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.34905 112.124051)\r\n\t\t(end 145.25 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t(uuid "84d5dfb1-aa99-41de-950e-ba6d283ee9a7")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.937475 119.64905)\r\n\t\t(end 142.99095 119.64905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t(uuid "befd3768-8d7f-40bc-b4ae-0f0764a86199")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.34905 122.237474)\r\n\t\t(end 107.937475 119.64905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t(uuid "c2ab630f-6690-4597-b9f1-384d2e152b14")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.3 124.26)\r\n\t\t(end 105.3 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t(uuid "ce88c648-b47d-4fda-8d7e-ae4ad6e2a9a1")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.34905 117.29095)\r\n\t\t(end 142.99095 119.64905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t(uuid "d8300ccd-cd24-4f19-8ff2-ab47ae55bfc2")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.25 112.025001)\r\n\t\t(end 145.25 111.2)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t(uuid "e4b6b0ed-fb12-40c3-bfe7-e3a50be0a429")\r\n\t)\r\n\t(segment\r\n\t\t(start 105.34905 123.685949)\r\n\t\t(end 105.34905 122.237474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D1+")\r\n\t\t(uuid "ebb55515-c8bf-4333-898e-28fa9c69c39c")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.15095 116.286001)\r\n\t\t(end 144.15095 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t(uuid "0ef5a436-e17f-46e0-bb6a-354b37c1b8b9")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.462526 118.35095)\r\n\t\t(end 142.086002 118.35095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t(uuid "24e83a6d-4d5c-4b8d-9075-c08a5b8a2ae5")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.45095 123.685949)\r\n\t\t(end 104.45095 121.362526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t(uuid "47d21ef3-c9e4-4d6e-8959-bf1476405a28")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.25 112.025001)\r\n\t\t(end 144.25 111.2)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t(uuid "622e4c1b-5b0e-4a6a-a4d8-f21443ac6d54")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.45095 121.362526)\r\n\t\t(end 107.462526 118.35095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t(uuid "a4ea445a-84ee-450d-ba94-63d937ad8b86")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 123.734999)\r\n\t\t(end 104.45095 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t(uuid "b31c8193-0b26-4cec-9105-41b37fc1b1f6")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 124.26)\r\n\t\t(end 104.5 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t(uuid "bce7ea9d-f508-40f9-b849-4562aed9533f")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.15095 112.124051)\r\n\t\t(end 144.25' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t(uuid "d10b633f-3eea-435e-9707-2ad0f8332669")\r\n\t)\r\n\t(segment\r\n\t\t(start 144.15095 116.286001)\r\n\t\t(end 142.086002 118.35095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C-")\r\n\t\t(uuid "fabfb9cb-b4ce-4be8-94bf-1636057e4da5")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.45095 130.737474)\r\n\t\t(end 104.75095 131.037474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0-")\r\n\t\t(uuid "4bb93ce9-680b-4337-979c-00afbd2108d7")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.75095 131.037474)\r\n\t\t(end 104.75095 134.075949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0-")\r\n\t\t(uuid "52feb1bd-63a0-46bd-bded-cc798bbe9a93")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 127.865001)\r\n\t\t(end 104.45095 127.914051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0-")\r\n\t\t(uuid "567aceae-5428-4ca9-a0a7-2d1db48def1c")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.45095 127.914051)\r\n\t\t(end 104.45095 130.737474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0-")\r\n\t\t(uuid "65ea381b-1d71-4e91-860c-fcbb7d09592d")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.85 134.174999)\r\n\t\t(end 104.85 135)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0-")\r\n\t\t(uuid "e3b30532-e31a-4271-b2a1-db82e3a9c566")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.75095 134.075949)\r\n\t\t(end 104.85 134.174999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0-")\r\n\t\t(uuid "e81ec016-418b-44e9-9cf4-eee21cdd2d7c")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.5 127.34)\r\n\t\t(end 104.5 127.865001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0-")\r\n\t\t(uuid "f011a1ad-16c4-4ce7-910b-c071de65cc87")\r\n\t)\r\n\t(segment\r\n\t\t(start 143.84905 116.16095)\r\n\t\t(end 143.84905 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t(uuid "5367bb36-0d96-4dfd-92e4-0b885a127a93")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.1 123.734999)\r\n\t\t(end 104.14905 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t(uuid "564e72a7-46ae-49c0-8e90-80761c670d16")\r\n\t)\r\n\t(segment\r\n\t\t(start 143.75 112.025001)\r\n\t\t(end 143.75 111.2)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t(uuid "62652ae3-a3f9-4ab9-a41d-24bc65ad413f")\r\n\t)\r\n\t(segment\r\n\t\t(start 107.337474 118.04905)\r\n\t\t(end 141.96095 118.04905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t(uuid "6b33ab22-c005-4329-8844-0f465eb28252")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.14905 123.685949)\r\n\t\t(end 104.14905 121.237474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t(uuid "7afc82f3-bebf-4e76-af26-4b34f8362324")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.1 124.26)\r\n\t\t(end 104.1 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t(uuid "865e6a00-3f7a-4fcc-9ceb-012878c3039c")\r\n\t)\r\n\t(segment\r\n\t\t(start 143.84905 112.124051)\r\n\t\t(end 143.75 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t(uuid "c439b137-b05a-4f36-a826-ee5ea4992ed7")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.14905 121.237474)\r\n\t\t(end 107.337474 118.04905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t(uuid "ef8be7d8-9032-48e8-9e71-a1cf20da05ce")\r\n\t)\r\n\t(segment\r\n\t\t(start 143.84905 116.16095)\r\n\t\t(end 141.96095 118.04905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_C+")\r\n\t\t(uuid "fb35c9a2-f889-4970-b5a8-c4c651a0d152")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.14905 127.914051)\r\n\t\t(end 104.14905 130.862526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0+")\r\n\t\t(uuid "2cf8424d-a886-4ccd-adaa-63d5befbd99a")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.1 127.34)\r\n\t\t(end 104.1 127.865001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0+")\r\n\t\t(uuid "663cac47-0ab8-4c4c-a34d-80bcc8099dc4")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.35 134.174999)\r\n\t\t(end 104.35 135)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0+")\r\n\t\t(uuid "795e334e-8d89-47c1-9e63-1afc69366321")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.14905 130.862526)\r\n\t\t(end 104.44905 131.162526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0+")\r\n\t\t(uuid "7f57041e-7620-415e-9334-a04fb679c117")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.1 127.865001)\r\n\t\t(end 104.14905 127.914051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0+")\r\n\t\t(uuid "de592fef-d937-4404-90ef-f2492e2b9ce0")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.44905 131.162526)\r\n\t\t(end 104.44905 134.075949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0+")\r\n\t\t(uuid "e4e2641a-ea72-4685-b2f6-db1ca2a263a8")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.44905 134.075949)\r\n\t\t(end 104.35 134.174999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D0+")\r\n\t\t(uuid "efed849c-8bd0-4517-9403-39847b1a25b8")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.3 123.734999)\r\n\t\t(end 103.3 124.26)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t(uuid "4ab758be-1a60-421a-89cd-7f10ed60ed12")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.65095 112.124051)\r\n\t\t(end 142.65095 114.646002)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t(uuid "5a52d108-4e94-4e2e-b9ca-9b0d9848cc5c")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.546001 116.75095)\r\n\t\t(end 104.462526 116.75095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t(uuid "6a360c81-f42b-4be4-9ec6-9cd614a07792")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.75 111.2)\r\n\t\t(end 142.75 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t(uuid "95609dc2-39ec-4132-af43-d1e7f95af562")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.25095 117.962526)\r\n\t\t(end 103.25095 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t(uuid "ab0da148-97a8-43d0-b9d5-b276cd1f331f")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.75 112.025001)\r\n\t\t(end 142.65095 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t(uuid "b15685d9-a91b-4d51-a155-b90c0918bbb2")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.65095 114.646002)\r\n\t\t(end 140.546001 116.75095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t(uuid "bdc0ceb2-2899-4d32-bff9-b07cf51e4f78")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.25095 123.685949)\r\n\t\t(end 103.3 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t(uuid "cf90190f-09f0-4b16-a602-077ec82b681c")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.462526 116.75095)\r\n\t\t(end 103.25095 117.962526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2-")\r\n\t\t(uuid "efe5bd1b-5b87-4879-b4f8-265c0a0d1a1b")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.3 127.865001)\r\n\t\t(end 103.25095 127.914051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1-")\r\n\t\t(uuid "423ff400-3720-476a-aeb3-e626fde9e19b")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.25095 134.075949)\r\n\t\t(end 103.35 134.174999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1-")\r\n\t\t(uuid "57ae6f60-e51a-44da-b89c-33137ae2d6d5")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.3 127.34)\r\n\t\t(end 103.3 127.865001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1-")\r\n\t\t(uuid "a883d919-a03a-47a9-9408-400e7877269c")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.35 134.174999)\r\n\t\t(end 103.35 135)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1-")\r\n\t\t(uuid "b3d94c03-5dc7-410e-bc64-28d789dfcb71")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.25095 127.914051)\r\n\t\t(end 103.25095 134.075949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1-")\r\n\t\t(uuid "bdc9559b-7219-4781-9349-9965f90f8839")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.9 123.734999)\r\n\t\t(end 102.9 124.26)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t(uuid "2a87107e-aba9-4eef-8510-b1153a7eedc9")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.25 111.2)\r\n\t\t(end 142.25 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t(uuid "54fdfbcb-cc5f-4857-828b-ca28dd4c9659")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.25 112.025001)\r\n\t\t(end 142.34905 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t(uuid "5968129d-aa33-46c5-aab3-1bf2d0569716")\r\n\t)\r\n\t(segment\r\n\t\t(start 104.337474 116.44905)\r\n\t\t(end 102.94905 117.837475)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t(uuid "5ccaf5e4-c2a7-4967-b59e-fa1a0ae674d5")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.42095 116.44905)\r\n\t\t(end 104.337474 116' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'.44905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t(uuid "61292ead-a7bf-4d1c-8bc5-9d2ec4810f5c")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.34905 114.52095)\r\n\t\t(end 140.42095 116.44905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t(uuid "7cb5fec4-4902-47cf-b68a-72725fb0d6a9")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.94905 117.837475)\r\n\t\t(end 102.94905 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t(uuid "a4f02929-b9f4-4cf4-8bef-e2c9514ecaf7")\r\n\t)\r\n\t(segment\r\n\t\t(start 142.34905 112.124051)\r\n\t\t(end 142.34905 114.52095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t(uuid "a73c33bd-ae65-436d-b0a3-a6459d2b0760")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.94905 123.685949)\r\n\t\t(end 102.9 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D2+")\r\n\t\t(uuid "bb5147a9-01f5-4e2b-a7d7-946c3419686a")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.94905 134.075949)\r\n\t\t(end 102.85 134.174999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1+")\r\n\t\t(uuid "21552b04-630f-4824-9fd5-442436f573cc")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.85 134.174999)\r\n\t\t(end 102.85 135)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1+")\r\n\t\t(uuid "46e2bb98-9e1d-4bce-9818-ae0965667dd7")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.9 127.865001)\r\n\t\t(end 102.94905 127.914051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1+")\r\n\t\t(uuid "a268843e-9fa0-49ec-acb6-4a93771367f1")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.9 127.34)\r\n\t\t(end 102.9 127.865001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1+")\r\n\t\t(uuid "a4f956a1-b900-464e-8954-72f763845417")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.94905 127.914051)\r\n\t\t(end 102.94905 134.075949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_D1+")\r\n\t\t(uuid "b2b65242-e7c7-4a76-a73f-64c29b1cee2f")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.25 112.025001)\r\n\t\t(end 141.15095 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t(uuid "102d5761-9c6b-484d-9e69-d4609fbc6a6b")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.05095 123.685949)\r\n\t\t(end 102.1 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t(uuid "1fc5b04c-6f9e-4213-90d8-7588a6d6f231")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.15095 113.42905)\r\n\t\t(end 139.42905 115.15095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t(uuid "254f108c-5e31-4f1f-8968-8948ea11586c")\r\n\t)\r\n\t(segment\r\n\t\t(start 103.062526 115.15095)\r\n\t\t(end 102.05095 116.162526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t(uuid "2715ea04-bf24-4c31-bf9b-0eaaedec6a9b")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.1 123.734999)\r\n\t\t(end 102.1 124.26)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t(uuid "455db976-c9fd-44ad-be68-3ac4777a9180")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.15095 112.124051)\r\n\t\t(end 141.15095 113.42905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t(uuid "4b17a8d4-172d-45e7-babe-bd1349ca48e7")\r\n\t)\r\n\t(segment\r\n\t\t(start 141.25 111.2)\r\n\t\t(end 141.25 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t(uuid "bb7dc16a-ba48-4046-946a-06cc6077f1ad")\r\n\t)\r\n\t(segment\r\n\t\t(start 139.42905 115.15095)\r\n\t\t(end 103.062526 115.15095)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t(uuid "c57e1e6e-6143-458d-b2ae-9ed52ff3fd9f")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.05095 116.162526)\r\n\t\t(end 102.05095 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3-")\r\n\t\t(uuid "e358271c-26e2-41a6-96ae-276dce328d66")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.75095 131.162526)\r\n\t\t(end 101.75095 134.075949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C-")\r\n\t\t(uuid "1db1eb46-78bd-4651-89e3-0d1a7fc1a3e9")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.85 134.174999)\r\n\t\t(end 101.85 135)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C-")\r\n\t\t(uuid "4ea61bf2-5506-4145-a95a-f4fb9201dbda")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.05095 130.862526)\r\n\t\t(end 101.75095 131.162526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C-")\r\n\t\t(uuid "64756b54-1c71-4277-936a-d1f5338ea02a")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.1 127.865001)\r\n\t\t(end 102.05095 127.914051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C-")\r\n\t\t(uuid "78c6e2cc-e638-4430-b077-9842315f66da")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.05095 127.914051)\r\n\t\t(end 102.05095 130.862526)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C-")\r\n\t\t(uuid "7acdbecf-528b-44de-a204-66634673651f")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.1 127.34)\r\n\t\t(end 102.1 127.865001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C-")\r\n\t\t(uuid "999dab3e-d46b-4460-9946-454407c43197")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.75095 134.075949)\r\n\t\t(end 101.85 134.174999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C-")\r\n\t\t(uuid "a2de5d40-2db9-4143-b9ed-b0d9bc51ed1d")\r\n\t)\r\n\t(segment\r\n\t\t(start 139.303998 114.84905)\r\n\t\t(end 102.937474 114.84905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t(uuid "0b2e46ee-7393-42f7-b0ca-67eec16227c2")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.84905 112.124051)\r\n\t\t(end 140.84905 113.303998)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t(uuid "293debd1-b2e7-4015-8573-12f174c7f1bb")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.74905 116.037475)\r\n\t\t(end 101.74905 123.685949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t(uuid "2c6aa04b-10f5-4976-ac3b-47fa95639901")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.75 112.025001)\r\n\t\t(end 140.84905 112.124051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t(uuid "305a9536-97a5-4a85-82ff-d2cf4e8f46d0")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.7 123.734999)\r\n\t\t(end 101.7 124.26)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t(uuid "5e4a63ce-da32-434e-9b72-900b807aa0b8")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.74905 123.685949)\r\n\t\t(end 101.7 123.734999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t(uuid "736cc59c-2f3e-4ff6-8839-3a89ca1a1c16")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.75 111.2)\r\n\t\t(end 140.75 112.025001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t(uuid "8050bed6-c233-4860-88b2-bd9f7e3e4376")\r\n\t)\r\n\t(segment\r\n\t\t(start 102.937474 114.84905)\r\n\t\t(end 101.74905 116.037475)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t(uuid "9ba5210d-fa08-40de-b5e5-db6b7e68be72")\r\n\t)\r\n\t(segment\r\n\t\t(start 140.84905 113.303998)\r\n\t\t(end 139.303998 114.84905)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM1_D3+")\r\n\t\t(uuid "f9642f07-b1e2-4f2f-b618-7833a7643aca")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.44905 134.075949)\r\n\t\t(end 101.35 134.174999)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C+")\r\n\t\t(uuid "03457f90-b448-4b40-8171-2e22540ee572")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.35 134.174999)\r\n\t\t(end 101.35 135)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C+")\r\n\t\t(uuid "337726be-3f4d-4376-9c28-759929bf783a")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.44905 131.037474)\r\n\t\t(end 101.44905 134.075949)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C+")\r\n\t\t(uuid "43b05358-c563-4226-9c31-7349ee12bbcf")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.7 127.34)\r\n\t\t(end 101.7 127.865001)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C+")\r\n\t\t(uuid "601fe487-55c6-4b72-9482-476cdf0e5867")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.74905 127.914051)\r\n\t\t(end 101.74905 130.737474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C+")\r\n\t\t(uuid "869f729b-02f2-4094-a60b-0d194ef1156d")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.74905 130.737474)\r\n\t\t(end 101.44905 131.037474)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C+")\r\n\t\t(uuid "e14c0c74-b71a-4ada-90d2-a0df1436a00f")\r\n\t)\r\n\t(segment\r\n\t\t(start 101.7 127.865001)\r\n\t\t(end 101.74905 127.914051)\r\n\t\t(width 0.1519)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "/CM4/Cameras/CAM0_C+")\r\n\t\t(uuid "faf407c6-a4b7-4644-84be-2717c11313e6")\r\n\t)\r\n\t(segment\r\n\t\t(start 81.1 80.235)\r\n\t\t(end 77.585 80.235)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(JP1-B)")\r\n\t\t(uuid "2f99ea9b-457d-4058-977e-c19efb2eaabb")\r\n\t)\r\n\t(segment\r\n\t\t(start 77.585 80.235)\r\n\t\t(end 77.475 80.125)\r\n\t\t(width 0.2)\r\n\t\t(laye' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'r "F.Cu")\r\n\t\t(net "Net-(JP1-B)")\r\n\t\t(uuid "3cd0ca20-c945-4f0a-9a9f-f24352dc3f74")\r\n\t)\r\n\t(segment\r\n\t\t(start 77.475 80.125)\r\n\t\t(end 77.475 84.275)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(JP1-B)")\r\n\t\t(uuid "d227318a-2cf7-48d7-b9b6-a37fd34b5d82")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.4 98.32)\r\n\t\t(end 145.4 99.425)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J2-Pad13)")\r\n\t\t(uuid "7859db0a-11d0-4a4f-bc80-45930959dc87")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.4 99.425)\r\n\t\t(end 144.84 99.985)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J2-Pad13)")\r\n\t\t(uuid "9db361a1-c4dd-4cb3-a3d6-17bd6f37962b")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.2 88.3)\r\n\t\t(end 145.2 86.775)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J2-Pad11)")\r\n\t\t(uuid "1f237e8f-59ed-46c3-837c-6a3e445d55a4")\r\n\t)\r\n\t(segment\r\n\t\t(start 145.2 86.775)\r\n\t\t(end 144.84 86.415)\r\n\t\t(width 0.2)\r\n\t\t(layer "F.Cu")\r\n\t\t(net "Net-(J2-Pad11)")\r\n\t\t(uuid "f264651f-56fe-426e-bf00-e1d41801612c")\r\n\t)\r\n\t(segment\r\n\t\t(start 92.45 63.45)\r\n\t\t(end 92.45 67.25)\r\n\t\t(width 0.25)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_1_VOUT")\r\n\t\t(uuid "b880ad22-d33d-41d3-adea-08de162ddcd0")\r\n\t)\r\n\t(segment\r\n\t\t(start 93.25 67.25)\r\n\t\t(end 93.25 63.45)\r\n\t\t(width 0.25)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_2_VOUT")\r\n\t\t(uuid "a997cf6e-acec-4582-8800-fae2662c169e")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.05 63.45)\r\n\t\t(end 94.05 67.25)\r\n\t\t(width 0.25)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_3_VOUT")\r\n\t\t(uuid "9ed79cf6-c53d-45d0-bef2-c7dd0c974bd7")\r\n\t)\r\n\t(segment\r\n\t\t(start 94.85 67.25)\r\n\t\t(end 94.85 63.45)\r\n\t\t(width 0.25)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_4_VOUT")\r\n\t\t(uuid "8fce8e0d-3950-4e94-b2f2-ba7daf305adb")\r\n\t)\r\n\t(segment\r\n\t\t(start 95.65 63.45)\r\n\t\t(end 95.65 67.25)\r\n\t\t(width 0.25)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_5_VOUT")\r\n\t\t(uuid "ca6720c2-a174-40e7-8732-2cb9acf7c874")\r\n\t)\r\n\t(segment\r\n\t\t(start 96.45 67.25)\r\n\t\t(end 96.45 63.45)\r\n\t\t(width 0.25)\r\n\t\t(layer "B.Cu")\r\n\t\t(net "/Inter Board Connector/RAIL_6_VOUT")\r\n\t\t(uuid "906b67c0-a870-499b-b692-bb662c64043a")\r\n\t)\r\n\t(zone\r\n\t\t(net "GND")\r\n\t\t(layers "F.Cu" "B.Cu" "In1.Cu")\r\n\t\t(uuid "846339e5-9285-4d35-b3d9-87eb879beb61")\r\n\t\t(name "GND")\r\n\t\t(hatch edge 0.5)\r\n\t\t(connect_pads thru_hole_only\r\n\t\t\t(clearance 0.15)\r\n\t\t)\r\n\t\t(min_thickness 0.2)\r\n\t\t(fill yes\r\n\t\t\t(thermal_gap 0.5)\r\n\t\t\t(thermal_bridge_width 0.5)\r\n\t\t\t(island_removal_mode 0)\r\n\t\t)\r\n\t\t(polygon\r\n\t\t\t(pts\r\n\t\t\t\t(xy 50 50) (xy 170 50) (xy 170 155) (xy 50 155)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "F.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 109.813422 74.869407) (xy 109.825235 74.879496) (xy 110.235742 75.290003) (xy 110.263519 75.34452)\r\n\t\t\t\t(xy 110.258585 75.386235) (xy 110.260862 75.386845) (xy 110.259183 75.393109) (xy 110.259182 75.393112)\r\n\t\t\t\t(xy 110.237 75.475897) (xy 110.237 75.561603) (xy 110.259182 75.644388) (xy 110.302035 75.718612)\r\n\t\t\t\t(xy 110.332671 75.749248) (xy 110.360447 75.803763) (xy 110.350876 75.864195) (xy 110.307611 75.90746)\r\n\t\t\t\t(xy 110.262666 75.91825) (xy 109.371421 75.91825) (xy 109.279353 75.956385) (xy 108.918307 76.317431)\r\n\t\t\t\t(xy 108.863791 76.345208) (xy 108.803359 76.335637) (xy 108.760094 76.292372) (xy 108.757739 76.287415)\r\n\t\t\t\t(xy 108.742206 76.252235) (xy 108.662765 76.172794) (xy 108.559991 76.127415) (xy 108.55999 76.127414)\r\n\t\t\t\t(xy 108.559988 76.127414) (xy 108.534868 76.1245) (xy 108.145139 76.1245) (xy 108.145136 76.124501)\r\n\t\t\t\t(xy 108.120009 76.127414) (xy 108.017235 76.172794) (xy 107.937794 76.252235) (xy 107.892414 76.355011)\r\n\t\t\t\t(xy 107.8895 76.38013) (xy 107.8895 77.476232) (xy 107.870593 77.534423) (xy 107.821093 77.570387)\r\n\t\t\t\t(xy 107.759907 77.570387) (xy 107.720496 77.546236) (xy 107.549495 77.375235) (xy 107.521718 77.320718)\r\n\t\t\t\t(xy 107.520499 77.305231) (xy 107.520499 76.380139) (xy 107.520499 76.380136) (xy 107.517585 76.355009)\r\n\t\t\t\t(xy 107.472206 76.252235) (xy 107.392765 76.172794) (xy 107.289991 76.127415) (xy 107.28999 76.127414)\r\n\t\t\t\t(xy 107.289988 76.127414) (xy 107.264869 76.1245) (xy 107.264865 76.1245) (xy 106.919769 76.1245)\r\n\t\t\t\t(xy 106.861578 76.105593) (xy 106.849765 76.095504) (xy 106.579496 75.825235) (xy 106.551719 75.770718)\r\n\t\t\t\t(xy 106.5505 75.755231) (xy 106.5505 75.640692) (xy 106.549886 75.638399) (xy 106.519799 75.526114)\r\n\t\t\t\t(xy 106.519797 75.526111) (xy 106.519797 75.526109) (xy 106.460492 75.423391) (xy 106.46049 75.423389)\r\n\t\t\t\t(xy 106.460489 75.423387) (xy 106.376613 75.339511) (xy 106.37661 75.339509) (xy 106.376608 75.339507)\r\n\t\t\t\t(xy 106.273889 75.280202) (xy 106.27389 75.280202) (xy 106.260351 75.276574) (xy 106.159309 75.2495)\r\n\t\t\t\t(xy 106.040691 75.2495) (xy 105.970567 75.268289) (xy 105.926109 75.280202) (xy 105.823391 75.339507)\r\n\t\t\t\t(xy 105.739507 75.423391) (xy 105.680202 75.526109) (xy 105.674876 75.545987) (xy 105.6495 75.640691)\r\n\t\t\t\t(xy 105.6495 75.759309) (xy 105.667919 75.82805) (xy 105.680202 75.87389) (xy 105.739507 75.976608)\r\n\t\t\t\t(xy 105.739509 75.97661) (xy 105.739511 75.976613) (xy 105.823387 76.060489) (xy 105.823389 76.06049)\r\n\t\t\t\t(xy 105.823391 76.060492) (xy 105.92611 76.119797) (xy 105.926111 76.119797) (xy 105.926114 76.119799)\r\n\t\t\t\t(xy 106.040691 76.1505) (xy 106.040693 76.1505) (xy 106.155231 76.1505) (xy 106.213422 76.169407)\r\n\t\t\t\t(xy 106.225235 76.179496) (xy 106.590504 76.544765) (xy 106.618281 76.599282) (xy 106.6195 76.614769)\r\n\t\t\t\t(xy 106.619501 78.119852) (xy 106.619501 78.119863) (xy 106.622414 78.14499) (xy 106.640788 78.186603)\r\n\t\t\t\t(xy 106.667794 78.247765) (xy 106.747235 78.327206) (xy 106.850009 78.372585) (xy 106.875135 78.3755)\r\n\t\t\t\t(xy 107.252189 78.375499) (xy 107.31038 78.394406) (xy 107.346344 78.443906) (xy 107.346344 78.505091)\r\n\t\t\t\t(xy 107.318631 78.543233) (xy 107.320833 78.545435) (xy 107.314347 78.55192) (xy 107.314346 78.551921)\r\n\t\t\t\t(xy 107.274778 78.591489) (xy 107.237549 78.628718) (xy 107.193679 78.728074) (xy 107.190862 78.752356)\r\n\t\t\t\t(xy 107.190862 79.179103) (xy 107.190863 79.179106) (xy 107.193679 79.203395) (xy 107.211559 79.243888)\r\n\t\t\t\t(xy 107.237549 79.30275) (xy 107.314346 79.379547) (xy 107.4137 79.423416) (xy 107.437989 79.426234)\r\n\t\t\t\t(xy 107.455493 79.426233) (xy 107.513683 79.445137) (xy 107.549649 79.494636) (xy 107.549652 79.555821)\r\n\t\t\t\t(xy 107.5255 79.595237) (xy 107.112802 80.007935) (xy 107.058285 80.035712) (xy 107.027311 80.035712)\r\n\t\t\t\t(xy 106.956522 80.0245) (xy 106.956519 80.0245) (xy 106.534908 80.0245) (xy 106.476717 80.005593)\r\n\t\t\t\t(xy 106.440753 79.956093) (xy 106.440753 79.894907) (xy 106.449172 79.875999) (xy 106.488758 79.807435)\r\n\t\t\t\t(xy 106.519459 79.692858) (xy 106.519459 79.57424) (xy 106.488758 79.459663) (xy 106.488756 79.45966)\r\n\t\t\t\t(xy 106.488756 79.459658) (xy 106.429451 79.35694) (xy 106.429449 79.356938) (xy 106.429448 79.356936)\r\n\t\t\t\t(xy 106.345572 79.27306) (xy 106.345569 79.273058) (xy 106.345567 79.273056) (xy 106.242848 79.213751)\r\n\t\t\t\t(xy 106.242849 79.213751) (xy 106.22931 79.210123) (xy 106.128268 79.183049) (xy 106.00965 79.183049)\r\n\t\t\t\t(xy 105.97158 79.19325) (xy 105.895068 79.213751) (xy 105.79235 79.273056) (xy 105.708466 79.35694)\r\n\t\t\t\t(xy 105.704744 79.363387) (xy 105.659271 79.404324) (xy 105.59842 79.410714) (xy 105.545435 79.380116)\r\n\t\t\t\t(xy 105.523386 79.339502) (xy 105.519799 79.326114) (xy 105.519797 79.326111) (xy 105.519797 79.326109)\r\n\t\t\t\t(xy 105.460492 79.223391) (xy 105.46049 79.223389) (xy 105.460489 79.223387) (xy 105.376613 79.139511)\r\n\t\t\t\t(xy 105.37485 79.138493) (xy 105.373875 79.13741) (xy 105.371464 79.13556) (xy 105.371806 79.135113)\r\n\t\t\t\t(xy 105.33391 79.093024) (xy 105.327514 79.032174) (xy 105.354349 78.982752) (xy 105.360489 78.976613)\r\n\t\t\t\t(xy 105.360492 78.976608) (xy 105.419797 78.87389) (xy 105.419797 78.873888) (xy 105.419799 78.873886)\r\n\t\t\t\t(xy 105.4505 78.759309) (xy 105.4505 78.640691) (xy 105.419799 78.526114) (xy 105.419797 78.526111)\r\n\t\t\t\t(xy 105.419797 78.526109) (xy 105.360492 78.423391) (xy 105.36049 78.423389) (xy 105.360489 78.423387)\r\n\t\t\t\t(xy 105.276613 78.339511) (xy 105.27661 78.339509) (xy 105.276608 78.339507) (xy 105.173889 78.280202)\r\n\t\t\t\t(xy 105.17389 78.280202) (xy 105.159119 78.276244) (xy 105.059309 78.2495) (xy 105.059307 78.2495)\r\n\t\t\t\t(xy 105.053041 78.247821) (xy 105.053698 78.245368) (xy 105.008296 78.22371) (xy 104.979104 78.169938)\r\n\t\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t(xy 104.978107 78.140492) (xy 104.979775 78.126114) (xy 104.9805 78.119865) (xy 104.980499 76.380136)\r\n\t\t\t\t(xy 104.977585 76.355009) (xy 104.932206 76.252235) (xy 104.852765 76.172794) (xy 104.852763 76.172793)\r\n\t\t\t\t(xy 104.852762 76.172792) (xy 104.839511 76.166941) (xy 104.793916 76.12614) (xy 104.7805 76.076377)\r\n\t\t\t\t(xy 104.7805 75.414769) (xy 104.799407 75.356578) (xy 104.809496 75.344765) (xy 105.274765 74.879496)\r\n\t\t\t\t(xy 105.329282 74.851719) (xy 105.344769 74.8505) (xy 109.755231 74.8505)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "F.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 143.94626 73.722968) (xy 143.954149 73.721719) (xy 143.974802 73.732242) (xy 143.996854 73.739407)\r\n\t\t\t\t(xy 144.008666 73.749496) (xy 144.038025 73.778854) (xy 144.062984 73.803813) (xy 144.162338 73.847682)\r\n\t\t\t\t(xy 144.186627 73.8505) (xy 144.43523 73.850499) (xy 144.49342 73.869406) (xy 144.505234 73.879495)\r\n\t\t\t\t(xy 144.820504 74.194765) (xy 144.848281 74.249282) (xy 144.8495 74.264769) (xy 144.8495 74.86523)\r\n\t\t\t\t(xy 144.830593 74.923421) (xy 144.820504 74.935234) (xy 144.255233 75.500504) (xy 144.200716 75.528281)\r\n\t\t\t\t(xy 144.185229 75.5295) (xy 143.93238 75.5295) (xy 143.932377 75.529501) (xy 143.908499 75.53227)\r\n\t\t\t\t(xy 143.81086 75.575383) (xy 143.735383 75.65086) (xy 143.690564 75.752364) (xy 143.649763 75.797959)\r\n\t\t\t\t(xy 143.589954 75.810864) (xy 143.533982 75.786149) (xy 143.509436 75.752364) (xy 143.47685 75.678566)\r\n\t\t\t\t(xy 143.464616 75.650859) (xy 143.389141 75.575384) (xy 143.389139 75.575383) (xy 143.291498 75.532269)\r\n\t\t\t\t(xy 143.267627 75.5295) (xy 143.267623 75.5295) (xy 143.1495 75.5295) (xy 143.091309 75.510593)\r\n\t\t\t\t(xy 143.055345 75.461093) (xy 143.0505 75.4305) (xy 143.0505 74.225172) (xy 143.012364 74.133104)\r\n\t\t\t\t(xy 142.941897 74.062636) (xy 142.941897 74.062637) (xy 142.811264 73.932004) (xy 142.800739 73.911348)\r\n\t\t\t\t(xy 142.787113 73.892593) (xy 142.787113 73.884603) (xy 142.783487 73.877487) (xy 142.787113 73.854592)\r\n\t\t\t\t(xy 142.787113 73.831407) (xy 142.791808 73.824944) (xy 142.793058 73.817055) (xy 142.809449 73.800663)\r\n\t\t\t\t(xy 142.823077 73.781907) (xy 142.830674 73.779438) (xy 142.836323 73.77379) (xy 142.881268 73.763)\r\n\t\t\t\t(xy 142.981164 73.763) (xy 143.039355 73.781907) (xy 143.051161 73.79199) (xy 143.062984 73.803813)\r\n\t\t\t\t(xy 143.162338 73.847682) (xy 143.186627 73.8505) (xy 143.613372 73.850499) (xy 143.637662 73.847682)\r\n\t\t\t\t(xy 143.737016 73.803813) (xy 143.777463 73.763366) (xy 143.791334 73.749496) (xy 143.845851 73.721719)\r\n\t\t\t\t(xy 143.861337 73.7205) (xy 143.938663 73.7205)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "F.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 146.009869 61.519407) (xy 146.021682 61.529496) (xy 152.970504 68.478318) (xy 152.998281 68.532835)\r\n\t\t\t\t(xy 152.9995 68.548322) (xy 152.9995 133.451678) (xy 152.980593 133.509869) (xy 152.970504 133.521682)\r\n\t\t\t\t(xy 146.021682 140.470504) (xy 145.967165 140.498281) (xy 145.951678 140.4995) (xy 81.048322 140.4995)\r\n\t\t\t\t(xy 80.990131 140.480593) (xy 80.978318 140.470504) (xy 79.046666 138.538852) (xy 87.309689 138.538852)\r\n\t\t\t\t(xy 87.309689 138.57787) (xy 87.324621 138.613918) (xy 87.352211 138.641508) (xy 87.36094 138.645123)\r\n\t\t\t\t(xy 87.407465 138.684858) (xy 87.422054 138.736587) (xy 87.422054 139.091703) (xy 87.423974 139.111203)\r\n\t\t\t\t(xy 87.423974 139.111204) (xy 87.438905 139.147249) (xy 87.438906 139.14725) (xy 87.438907 139.147252)\r\n\t\t\t\t(xy 87.466497 139.174842) (xy 87.502545 139.189774) (xy 87.502546 139.189774) (xy 87.541562 139.189774)\r\n\t\t\t\t(xy 87.541563 139.189774) (xy 87.577611 139.174842) (xy 87.605201 139.147252) (xy 87.620133 139.111204)\r\n\t\t\t\t(xy 87.622053 139.091702) (xy 87.622054 139.091702) (xy 87.622054 138.757) (xy 87.625423 138.74663)\r\n\t\t\t\t(xy 87.624355 138.735779) (xy 87.634662 138.718194) (xy 87.640961 138.698809) (xy 87.649782 138.692399)\r\n\t\t\t\t(xy 87.655296 138.682994) (xy 87.673969 138.674827) (xy 87.690461 138.662845) (xy 87.711355 138.658476)\r\n\t\t\t\t(xy 87.712523 138.658361) (xy 87.71253 138.658361) (xy 87.732039 138.65644) (xy 87.732039 138.656439)\r\n\t\t\t\t(xy 87.732402 138.656404) (xy 87.792165 138.66952) (xy 87.832805 138.715258) (xy 87.841101 138.754928)\r\n\t\t\t\t(xy 87.841101 138.939314) (xy 87.843022 138.958823) (xy 87.844397 138.962142) (xy 87.844652 138.965728)\r\n\t\t\t\t(xy 87.851659 138.984036) (xy 87.889755 139.060226) (xy 87.894048 139.067046) (xy 87.895366 139.06992)\r\n\t\t\t\t(xy 87.896047 139.071056) (xy 87.896049 139.07106) (xy 87.898305 139.07381) (xy 87.900198 139.076816)\r\n\t\t\t\t(xy 87.902192 139.078544) (xy 87.90752 139.085038) (xy 87.90752 139.085039) (xy 87.908481 139.08621)\r\n\t\t\t\t(xy 87.908485 139.086214) (xy 87.94658 139.12431) (xy 87.946585 139.124314) (xy 87.946589 139.124318)\r\n\t\t\t\t(xy 87.94776 139.125279) (xy 87.947763 139.125281) (xy 87.954248 139.130603) (xy 87.95598 139.1326)\r\n\t\t\t\t(xy 87.958986 139.134491) (xy 87.961734 139.136747) (xy 87.967995 139.1405) (xy 87.967981 139.140523)\r\n\t\t\t\t(xy 87.971265 139.142221) (xy 87.972571 139.143043) (xy 87.972583 139.143049) (xy 88.04875 139.181133)\r\n\t\t\t\t(xy 88.048756 139.181135) (xy 88.048761 139.181138) (xy 88.067069 139.188144) (xy 88.067077 139.188144)\r\n\t\t\t\t(xy 88.06917 139.188609) (xy 88.071816 139.189234) (xy 88.073969 139.189773) (xy 88.073971 139.189773)\r\n\t\t\t\t(xy 88.073973 139.189774) (xy 88.093482 139.191695) (xy 88.093483 139.191695) (xy 88.207774 139.191695)\r\n\t\t\t\t(xy 88.214768 139.191005) (xy 88.227277 139.189774) (xy 88.230597 139.188398) (xy 88.23418 139.188144)\r\n\t\t\t\t(xy 88.252489 139.181138) (xy 88.32868 139.143043) (xy 88.335509 139.138743) (xy 88.338385 139.137425)\r\n\t\t\t\t(xy 88.339513 139.136749) (xy 88.339513 139.136748) (xy 88.339517 139.136747) (xy 88.342265 139.134491)\r\n\t\t\t\t(xy 88.34527 139.1326) (xy 88.346999 139.130606) (xy 88.353489 139.125279) (xy 88.353492 139.125278)\r\n\t\t\t\t(xy 88.353497 139.125272) (xy 88.354671 139.12431) (xy 88.392765 139.086214) (xy 88.395931 139.082356)\r\n\t\t\t\t(xy 88.399056 139.078547) (xy 88.401054 139.076816) (xy 88.402946 139.073808) (xy 88.405201 139.071061)\r\n\t\t\t\t(xy 88.408963 139.064787) (xy 88.408986 139.064801) (xy 88.410691 139.061505) (xy 88.411497 139.060225)\r\n\t\t\t\t(xy 88.423983 139.035252) (xy 88.466914 138.991663) (xy 88.527271 138.981632) (xy 88.581998 139.008993)\r\n\t\t\t\t(xy 88.601077 139.035251) (xy 88.613567 139.06023) (xy 88.61437 139.061505) (xy 88.618847 139.068617)\r\n\t\t\t\t(xy 88.619859 139.07106) (xy 88.622115 139.07381) (xy 88.624008 139.076816) (xy 88.628763 139.082356)\r\n\t\t\t\t(xy 88.628739 139.082376) (xy 88.631326 139.085034) (xy 88.632291 139.08621) (xy 88.632295 139.086214)\r\n\t\t\t\t(xy 88.67039 139.12431) (xy 88.670395 139.124314) (xy 88.670399 139.124318) (xy 88.67157 139.125279)\r\n\t\t\t\t(xy 88.671573 139.125281) (xy 88.678058 139.130603) (xy 88.67979 139.1326) (xy 88.682796 139.134491)\r\n\t\t\t\t(xy 88.685544 139.136747) (xy 88.691805 139.1405) (xy 88.691791 139.140523) (xy 88.695075 139.142221)\r\n\t\t\t\t(xy 88.696381 139.143043) (xy 88.696393 139.143049) (xy 88.77256 139.181133) (xy 88.772566 139.181135)\r\n\t\t\t\t(xy 88.772571 139.181138) (xy 88.790879 139.188144) (xy 88.790887 139.188144) (xy 88.79298 139.188609)\r\n\t\t\t\t(xy 88.795626 139.189234) (xy 88.797779 139.189773) (xy 88.797781 139.189773) (xy 88.797783 139.189774)\r\n\t\t\t\t(xy 88.817292 139.191695) (xy 88.817293 139.191695) (xy 88.931584 139.191695) (xy 88.938578 139.191005)\r\n\t\t\t\t(xy 88.951087 139.189774) (xy 88.954407 139.188398) (xy 88.95799 139.188144) (xy 88.976299 139.181138)\r\n\t\t\t\t(xy 89.05249 139.143043) (xy 89.059319 139.138743) (xy 89.062195 139.137425) (xy 89.063323 139.136749)\r\n\t\t\t\t(xy 89.063323 139.136748) (xy 89.063327 139.136747) (xy 89.066075 139.134491) (xy 89.06908 139.1326)\r\n\t\t\t\t(xy 89.070809 139.130606) (xy 89.077299 139.125279) (xy 89.077302 139.125278) (xy 89.077307 139.125272)\r\n\t\t\t\t(xy 89.078481 139.12431) (xy 89.116575 139.086214) (xy 89.119741 139.082356) (xy 89.122866 139.078547)\r\n\t\t\t\t(xy 89.124864 139.076816) (xy 89.126756 139.073808) (xy 89.129011 139.071061) (xy 89.132773 139.064787)\r\n\t\t\t\t(xy 89.132796 139.064801) (xy 89.134501 139.061505) (xy 89.135307 139.060225) (xy 89.173402 138.984035)\r\n\t\t\t\t(xy 89.180408 138.965727) (xy 89.180408 138.965716) (xy 89.180882 138.963585) (xy 89.18151 138.960925)\r\n\t\t\t\t(xy 89.182032 138.958835) (xy 89.182038 138.958823) (xy 89.183959 138.939314) (xy 89.183959' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' 138.710742)\r\n\t\t\t\t(xy 89.182038 138.691233) (xy 89.180662 138.687912) (xy 89.180408 138.684329) (xy 89.173402 138.666021)\r\n\t\t\t\t(xy 89.135307 138.589831) (xy 89.13101 138.583006) (xy 89.12969 138.580126) (xy 89.129014 138.578998)\r\n\t\t\t\t(xy 89.128087 138.577869) (xy 89.126757 138.576248) (xy 89.124864 138.57324) (xy 89.122866 138.571507)\r\n\t\t\t\t(xy 89.116574 138.563841) (xy 89.115329 138.562596) (xy 89.078485 138.52575) (xy 89.07848 138.525746)\r\n\t\t\t\t(xy 89.077302 138.524779) (xy 89.0773 138.524777) (xy 89.070811 138.519452) (xy 89.069081 138.517457)\r\n\t\t\t\t(xy 89.066069 138.515561) (xy 89.063326 138.51331) (xy 89.063325 138.513309) (xy 89.057067 138.509557)\r\n\t\t\t\t(xy 89.057081 138.509533) (xy 89.053788 138.50783) (xy 89.052499 138.507018) (xy 88.976296 138.468917)\r\n\t\t\t\t(xy 88.976288 138.468914) (xy 88.957991 138.461911) (xy 88.955842 138.461435) (xy 88.953243 138.460821)\r\n\t\t\t\t(xy 88.951089 138.460281) (xy 88.931585 138.458361) (xy 88.931578 138.458361) (xy 88.817292 138.458361)\r\n\t\t\t\t(xy 88.817285 138.458361) (xy 88.80168 138.459897) (xy 88.801676 138.459898) (xy 88.797783 138.460282)\r\n\t\t\t\t(xy 88.794463 138.461657) (xy 88.790878 138.461912) (xy 88.772569 138.468919) (xy 88.69638 138.507015)\r\n\t\t\t\t(xy 88.689556 138.511309) (xy 88.68668 138.512629) (xy 88.685543 138.51331) (xy 88.683078 138.515332)\r\n\t\t\t\t(xy 88.682794 138.515566) (xy 88.67979 138.517458) (xy 88.678062 138.519449) (xy 88.671589 138.524762)\r\n\t\t\t\t(xy 88.671585 138.524767) (xy 88.67039 138.525747) (xy 88.632304 138.563832) (xy 88.632288 138.563849)\r\n\t\t\t\t(xy 88.631317 138.565032) (xy 88.626001 138.57151) (xy 88.624008 138.57324) (xy 88.622115 138.576246)\r\n\t\t\t\t(xy 88.620784 138.577869) (xy 88.619856 138.579) (xy 88.616115 138.585241) (xy 88.616094 138.585228)\r\n\t\t\t\t(xy 88.614402 138.5885) (xy 88.613561 138.589836) (xy 88.601078 138.614802) (xy 88.590103 138.625944)\r\n\t\t\t\t(xy 88.58312 138.63994) (xy 88.569172 138.647194) (xy 88.558142 138.658394) (xy 88.542712 138.660957)\r\n\t\t\t\t(xy 88.528839 138.668174) (xy 88.513294 138.665845) (xy 88.497784 138.668423) (xy 88.483793 138.661427)\r\n\t\t\t\t(xy 88.468328 138.659111) (xy 88.457476 138.648267) (xy 88.443059 138.641059) (xy 88.424701 138.616212)\r\n\t\t\t\t(xy 88.424352 138.615542) (xy 88.411497 138.589831) (xy 88.408512 138.58509) (xy 88.406641 138.581492)\r\n\t\t\t\t(xy 88.406618 138.581358) (xy 88.405204 138.578998) (xy 88.404277 138.577869) (xy 88.402947 138.576248)\r\n\t\t\t\t(xy 88.401054 138.57324) (xy 88.399056 138.571507) (xy 88.392764 138.563841) (xy 88.391519 138.562596)\r\n\t\t\t\t(xy 88.354675 138.52575) (xy 88.35467 138.525746) (xy 88.353492 138.524779) (xy 88.35349 138.524777)\r\n\t\t\t\t(xy 88.347001 138.519452) (xy 88.345271 138.517457) (xy 88.342259 138.515561) (xy 88.339516 138.51331)\r\n\t\t\t\t(xy 88.339515 138.513309) (xy 88.333257 138.509557) (xy 88.333271 138.509533) (xy 88.329978 138.50783)\r\n\t\t\t\t(xy 88.328689 138.507018) (xy 88.252486 138.468917) (xy 88.252478 138.468914) (xy 88.234181 138.461911)\r\n\t\t\t\t(xy 88.232032 138.461435) (xy 88.229433 138.460821) (xy 88.227279 138.460281) (xy 88.207775 138.458361)\r\n\t\t\t\t(xy 88.207768 138.458361) (xy 88.093482 138.458361) (xy 88.093475 138.458361) (xy 88.07787 138.459897)\r\n\t\t\t\t(xy 88.077866 138.459898) (xy 88.073973 138.460282) (xy 88.070653 138.461657) (xy 88.067068 138.461912)\r\n\t\t\t\t(xy 88.048759 138.468919) (xy 87.97257 138.507015) (xy 87.965746 138.511309) (xy 87.96287 138.512629)\r\n\t\t\t\t(xy 87.961733 138.51331) (xy 87.959268 138.515332) (xy 87.958984 138.515566) (xy 87.95598 138.517458)\r\n\t\t\t\t(xy 87.954252 138.519449) (xy 87.947779 138.524762) (xy 87.947775 138.524767) (xy 87.944705 138.527287)\r\n\t\t\t\t(xy 87.944122 138.526576) (xy 87.891367 138.550272) (xy 87.831477 138.537747) (xy 87.79838 138.50685)\r\n\t\t\t\t(xy 87.795677 138.502805) (xy 87.795677 138.502804) (xy 87.787902 138.495029) (xy 87.760127 138.440515)\r\n\t\t\t\t(xy 87.769698 138.380083) (xy 87.787901 138.355027) (xy 87.795677 138.347252) (xy 87.810609 138.311204)\r\n\t\t\t\t(xy 87.810609 138.272186) (xy 87.795677 138.236138) (xy 87.768087 138.208548) (xy 87.768085 138.208547)\r\n\t\t\t\t(xy 87.768084 138.208546) (xy 87.732039 138.193615) (xy 87.712538 138.191695) (xy 87.71253 138.191695)\r\n\t\t\t\t(xy 87.636339 138.191695) (xy 87.636332 138.191695) (xy 87.620434 138.19326) (xy 87.62043 138.193261)\r\n\t\t\t\t(xy 87.61683 138.193616) (xy 87.613509 138.194991) (xy 87.609926 138.195246) (xy 87.591618 138.202252)\r\n\t\t\t\t(xy 87.515428 138.240347) (xy 87.515055 138.240581) (xy 87.513453 138.241301) (xy 87.507852 138.244495)\r\n\t\t\t\t(xy 87.502318 138.248598) (xy 87.49884 138.250787) (xy 87.498832 138.250794) (xy 87.495233 138.254943)\r\n\t\t\t\t(xy 87.490621 138.260262) (xy 87.481149 138.268478) (xy 87.474934 138.278351) (xy 87.473271 138.280269)\r\n\t\t\t\t(xy 87.471005 138.284243) (xy 87.470462 138.285555) (xy 87.432612 138.361256) (xy 87.432607 138.361267)\r\n\t\t\t\t(xy 87.425604 138.379569) (xy 87.425126 138.381724) (xy 87.424514 138.384317) (xy 87.423974 138.386471)\r\n\t\t\t\t(xy 87.423731 138.388946) (xy 87.422852 138.390954) (xy 87.422204 138.393545) (xy 87.421767 138.393435)\r\n\t\t\t\t(xy 87.412866 138.413783) (xy 87.403869 138.439353) (xy 87.387697 138.460514) (xy 87.352211 138.475214)\r\n\t\t\t\t(xy 87.324621 138.502804) (xy 87.309689 138.538852) (xy 79.046666 138.538852) (xy 75.657814 135.15)\r\n\t\t\t\t(xy 91.3945 135.15) (xy 91.3945 136.75) (xy 91.415333 136.82775) (xy 91.47225 136.884667) (xy 91.55 136.9055)\r\n\t\t\t\t(xy 92.0955 136.9055) (xy 92.153691 136.924407) (xy 92.189655 136.973907) (xy 92.1945 137.0045)\r\n\t\t\t\t(xy 92.1945 137.1) (xy 92.215333 137.17775) (xy 92.27225 137.234667) (xy 92.35 137.2555) (xy 92.350002 137.2555)\r\n\t\t\t\t(xy 93.649998 137.2555) (xy 93.65 137.2555) (xy 93.72775 137.234667) (xy 93.784667 137.17775) (xy 93.8055 137.1)\r\n\t\t\t\t(xy 93.8055 135.15) (xy 93.784667 135.07225) (xy 93.72775 135.015333) (xy 93.65 134.9945) (xy 91.55 134.9945)\r\n\t\t\t\t(xy 91.47225 135.015333) (xy 91.415333 135.07225) (xy 91.3945 135.15) (xy 75.657814 135.15) (xy 74.029496 133.521682)\r\n\t\t\t\t(xy 74.001719 133.467165) (xy 74.0005 133.451678) (xy 74.0005 132.640691) (xy 92.6495 132.640691)\r\n\t\t\t\t(xy 92.6495 132.759309) (xy 92.673344 132.848295) (xy 92.680202 132.87389) (xy 92.739507 132.976608)\r\n\t\t\t\t(xy 92.739509 132.97661) (xy 92.739511 132.976613) (xy 92.823387 133.060489) (xy 92.823389 133.06049)\r\n\t\t\t\t(xy 92.823391 133.060492) (xy 92.92611 133.119797) (xy 92.926111 133.119797) (xy 92.926114 133.119799)\r\n\t\t\t\t(xy 93.040691 133.1505) (xy 93.0505 133.1505) (xy 93.108691 133.169407) (xy 93.144655 133.218907)\r\n\t\t\t\t(xy 93.1495 133.2495) (xy 93.1495 133.613369) (xy 93.149501 133.613372) (xy 93.152317 133.637661)\r\n\t\t\t\t(xy 93.155459 133.644776) (xy 93.196187 133.737016) (xy 93.272984 133.813813) (xy 93.372338 133.857682)\r\n\t\t\t\t(xy 93.396627 133.8605) (xy 93.763372 133.860499) (xy 93.787662 133.857682) (xy 93.84163 133.833852)\r\n\t\t\t\t(xy 93.869463 133.831013) (xy 93.897104 133.826636) (xy 93.899651 133.827934) (xy 93.902497 133.827644)\r\n\t\t\t\t(xy 93.951621 133.854413) (xy 94.078039 133.980831) (xy 94.105816 134.035348) (xy 94.107035 134.050835)\r\n\t\t\t\t(xy 94.107035 134.165375) (xy 94.131698 134.257417) (xy 94.137737 134.279956) (xy 94.197042 134.382674)\r\n\t\t\t\t(xy 94.197044 134.382676) (xy 94.197046 134.382679) (xy 94.280922 134.466555) (xy 94.280924 134.466556)\r\n\t\t\t\t(xy 94.280926 134.466558) (xy 94.383645 134.525863) (xy 94.383646 134.525863) (xy 94.383649 134.525865)\r\n\t\t\t\t(xy 94.476125 134.550644) (xy 94.527437 134.583966) (xy 94.549364 134.641087) (xy 94.5495 134.646269)\r\n\t\t\t\t(xy 94.5495 135.497206) (xy 94.549501 135.497216) (xy 94.562583 135.562985) (xy 94.562583 135.562986)\r\n\t\t\t\t(xy 94.612423 135.637577) (xy 94.630144 135.649418) (xy 94.687013 135.687417) (xy 94.703344 135.690665)\r\n\t\t\t\t(xy 94.752789 135.7005) (xy 94.94721 135.700499) (xy 94.947214 135.700498) (xy 94.947216 135.700498)\r\n\t\t\t\t(xy 94.95787 135.698378) (xy 95.012986 135.687417) (xy 95.044998 135.666026) (xy 95.103886 135.649418)\r\n\t\t\t\t(xy 95.155001 135.666026) (xy 95.187014 135.687417) (xy 95.252789 135.7005) (xy 95.44721 135.700499)\r\n\t\t\t\t(xy 95.447214 135.700498) (xy 95.447216 135.700498) (xy 95.45787 135.698378) (xy 95.512986 135.687417)\r\n\t\t\t\t(xy 95.544998 135.666026) (xy 95.603886 135.649418) (xy 95.655001 135.666026) (xy 95.687014 135.687417)\r\n\t\t\t\t(xy 95.752789 135.7005) (xy 95.94721 135.700499) ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(xy 95.947214 135.700498) (xy 95.947216 135.700498)\r\n\t\t\t\t(xy 95.95787 135.698378) (xy 96.012986 135.687417) (xy 96.087577 135.637577) (xy 96.137417 135.562986)\r\n\t\t\t\t(xy 96.1505 135.497211) (xy 96.150499 134.515427) (xy 96.169406 134.457237) (xy 96.218906 134.421273)\r\n\t\t\t\t(xy 96.223857 134.419807) (xy 96.223889 134.419799) (xy 96.291064 134.381015) (xy 96.326611 134.360492)\r\n\t\t\t\t(xy 96.326611 134.360491) (xy 96.326616 134.360489) (xy 96.410492 134.276613) (xy 96.421575 134.257417)\r\n\t\t\t\t(xy 96.4698 134.17389) (xy 96.4698 134.173888) (xy 96.469802 134.173886) (xy 96.478216 134.142484)\r\n\t\t\t\t(xy 96.483977 134.133611) (xy 96.485633 134.123163) (xy 96.500266 134.108529) (xy 96.511539 134.091172)\r\n\t\t\t\t(xy 96.521416 134.08738) (xy 96.528898 134.079899) (xy 96.549339 134.076661) (xy 96.56866 134.069245)\r\n\t\t\t\t(xy 96.578879 134.071983) (xy 96.58933 134.070328) (xy 96.607769 134.079723) (xy 96.627761 134.08508)\r\n\t\t\t\t(xy 96.643846 134.098106) (xy 96.704406 134.158667) (xy 96.732183 134.213184) (xy 96.722611 134.273616)\r\n\t\t\t\t(xy 96.689404 134.310985) (xy 96.612426 134.36242) (xy 96.612421 134.362425) (xy 96.562582 134.437013)\r\n\t\t\t\t(xy 96.562582 134.437014) (xy 96.5495 134.502784) (xy 96.5495 135.497206) (xy 96.549501 135.497216)\r\n\t\t\t\t(xy 96.562583 135.562985) (xy 96.562583 135.562986) (xy 96.612423 135.637577) (xy 96.630144 135.649418)\r\n\t\t\t\t(xy 96.687013 135.687417) (xy 96.703344 135.690665) (xy 96.752789 135.7005) (xy 96.94721 135.700499)\r\n\t\t\t\t(xy 96.947214 135.700498) (xy 96.947216 135.700498) (xy 96.95787 135.698378) (xy 97.012986 135.687417)\r\n\t\t\t\t(xy 97.044998 135.666026) (xy 97.103886 135.649418) (xy 97.155001 135.666026) (xy 97.187014 135.687417)\r\n\t\t\t\t(xy 97.252789 135.7005) (xy 97.44721 135.700499) (xy 97.447214 135.700498) (xy 97.447216 135.700498)\r\n\t\t\t\t(xy 97.45787 135.698378) (xy 97.512986 135.687417) (xy 97.587577 135.637577) (xy 97.637417 135.562986)\r\n\t\t\t\t(xy 97.6505 135.497211) (xy 97.650499 134.50279) (xy 97.650498 134.502784) (xy 98.0495 134.502784)\r\n\t\t\t\t(xy 98.0495 135.497206) (xy 98.049501 135.497216) (xy 98.062583 135.562985) (xy 98.062583 135.562986)\r\n\t\t\t\t(xy 98.112423 135.637577) (xy 98.130144 135.649418) (xy 98.187013 135.687417) (xy 98.203344 135.690665)\r\n\t\t\t\t(xy 98.252789 135.7005) (xy 98.44721 135.700499) (xy 98.447214 135.700498) (xy 98.447216 135.700498)\r\n\t\t\t\t(xy 98.45787 135.698378) (xy 98.512986 135.687417) (xy 98.544998 135.666026) (xy 98.603886 135.649418)\r\n\t\t\t\t(xy 98.655001 135.666026) (xy 98.687014 135.687417) (xy 98.752789 135.7005) (xy 98.94721 135.700499)\r\n\t\t\t\t(xy 98.947214 135.700498) (xy 98.947216 135.700498) (xy 98.95787 135.698378) (xy 99.012986 135.687417)\r\n\t\t\t\t(xy 99.087577 135.637577) (xy 99.137417 135.562986) (xy 99.1505 135.497211) (xy 99.150499 134.50279)\r\n\t\t\t\t(xy 99.150498 134.502784) (xy 99.5495 134.502784) (xy 99.5495 135.497206) (xy 99.549501 135.497216)\r\n\t\t\t\t(xy 99.562583 135.562985) (xy 99.562583 135.562986) (xy 99.612423 135.637577) (xy 99.630144 135.649418)\r\n\t\t\t\t(xy 99.687013 135.687417) (xy 99.703344 135.690665) (xy 99.752789 135.7005) (xy 99.94721 135.700499)\r\n\t\t\t\t(xy 99.947214 135.700498) (xy 99.947216 135.700498) (xy 99.95787 135.698378) (xy 100.012986 135.687417)\r\n\t\t\t\t(xy 100.044998 135.666026) (xy 100.103886 135.649418) (xy 100.155001 135.666026) (xy 100.187014 135.687417)\r\n\t\t\t\t(xy 100.252789 135.7005) (xy 100.44721 135.700499) (xy 100.447214 135.700498) (xy 100.447216 135.700498)\r\n\t\t\t\t(xy 100.45787 135.698378) (xy 100.512986 135.687417) (xy 100.587577 135.637577) (xy 100.637417 135.562986)\r\n\t\t\t\t(xy 100.6505 135.497211) (xy 100.650499 134.50279) (xy 100.650498 134.502784) (xy 101.0495 134.502784)\r\n\t\t\t\t(xy 101.0495 135.497206) (xy 101.049501 135.497216) (xy 101.062583 135.562985) (xy 101.062583 135.562986)\r\n\t\t\t\t(xy 101.112423 135.637577) (xy 101.130144 135.649418) (xy 101.187013 135.687417) (xy 101.203344 135.690665)\r\n\t\t\t\t(xy 101.252789 135.7005) (xy 101.44721 135.700499) (xy 101.447214 135.700498) (xy 101.447216 135.700498)\r\n\t\t\t\t(xy 101.45787 135.698378) (xy 101.512986 135.687417) (xy 101.544998 135.666026) (xy 101.603886 135.649418)\r\n\t\t\t\t(xy 101.655001 135.666026) (xy 101.687014 135.687417) (xy 101.752789 135.7005) (xy 101.94721 135.700499)\r\n\t\t\t\t(xy 101.947214 135.700498) (xy 101.947216 135.700498) (xy 101.95787 135.698378) (xy 102.012986 135.687417)\r\n\t\t\t\t(xy 102.087577 135.637577) (xy 102.137417 135.562986) (xy 102.1505 135.497211) (xy 102.150499 134.50279)\r\n\t\t\t\t(xy 102.150498 134.502784) (xy 102.5495 134.502784) (xy 102.5495 135.497206) (xy 102.549501 135.497216)\r\n\t\t\t\t(xy 102.562583 135.562985) (xy 102.562583 135.562986) (xy 102.612423 135.637577) (xy 102.630144 135.649418)\r\n\t\t\t\t(xy 102.687013 135.687417) (xy 102.703344 135.690665) (xy 102.752789 135.7005) (xy 102.94721 135.700499)\r\n\t\t\t\t(xy 102.947214 135.700498) (xy 102.947216 135.700498) (xy 102.95787 135.698378) (xy 103.012986 135.687417)\r\n\t\t\t\t(xy 103.044998 135.666026) (xy 103.103886 135.649418) (xy 103.155001 135.666026) (xy 103.187014 135.687417)\r\n\t\t\t\t(xy 103.252789 135.7005) (xy 103.44721 135.700499) (xy 103.447214 135.700498) (xy 103.447216 135.700498)\r\n\t\t\t\t(xy 103.45787 135.698378) (xy 103.512986 135.687417) (xy 103.587577 135.637577) (xy 103.637417 135.562986)\r\n\t\t\t\t(xy 103.6505 135.497211) (xy 103.650499 134.50279) (xy 103.637417 134.437014) (xy 103.611259 134.397865)\r\n\t\t\t\t(xy 103.593134 134.370738) (xy 103.57645 134.315737) (xy 103.57645 134.129955) (xy 103.541975 134.046726)\r\n\t\t\t\t(xy 103.506396 134.011146) (xy 103.478619 133.956629) (xy 103.4774 133.941143) (xy 103.4774 128.045118)\r\n\t\t\t\t(xy 103.486018 128.004719) (xy 103.490452 127.994797) (xy 103.491975 127.993275) (xy 103.502072 127.968897)\r\n\t\t\t\t(xy 103.52645 127.910045) (xy 103.52645 127.766845) (xy 103.531295 127.751933) (xy 103.531295 127.736252)\r\n\t\t\t\t(xy 103.535577 127.727425) (xy 103.535134 127.727242) (xy 103.538862 127.718237) (xy 103.538867 127.718231)\r\n\t\t\t\t(xy 103.5505 127.659748) (xy 103.5505 127.020253) (xy 103.8495 127.020253) (xy 103.8495 127.659746)\r\n\t\t\t\t(xy 103.849501 127.659758) (xy 103.861132 127.718227) (xy 103.861133 127.718231) (xy 103.861134 127.718233)\r\n\t\t\t\t(xy 103.864866 127.727242) (xy 103.862785 127.728103) (xy 103.868705 127.736252) (xy 103.868705 127.750877)\r\n\t\t\t\t(xy 103.87355 127.766845) (xy 103.87355 127.910044) (xy 103.911756 128.002282) (xy 103.909844 128.003073)\r\n\t\t\t\t(xy 103.9226 128.045118) (xy 103.9226 130.907569) (xy 103.957073 130.990796) (xy 103.957074 130.990797)\r\n\t\t\t\t(xy 103.957075 130.990799) (xy 104.193605 131.227329) (xy 104.221381 131.281844) (xy 104.2226 131.297331)\r\n\t\t\t\t(xy 104.2226 133.941143) (xy 104.203693 133.999334) (xy 104.193604 134.011146) (xy 104.158024 134.046726)\r\n\t\t\t\t(xy 104.12355 134.129955) (xy 104.12355 134.315737) (xy 104.106866 134.370738) (xy 104.062582 134.437014)\r\n\t\t\t\t(xy 104.0495 134.502784) (xy 104.0495 135.497206) (xy 104.049501 135.497216) (xy 104.062583 135.562985)\r\n\t\t\t\t(xy 104.062583 135.562986) (xy 104.112423 135.637577) (xy 104.130144 135.649418) (xy 104.187013 135.687417)\r\n\t\t\t\t(xy 104.203344 135.690665) (xy 104.252789 135.7005) (xy 104.44721 135.700499) (xy 104.447214 135.700498)\r\n\t\t\t\t(xy 104.447216 135.700498) (xy 104.45787 135.698378) (xy 104.512986 135.687417) (xy 104.544998 135.666026)\r\n\t\t\t\t(xy 104.603886 135.649418) (xy 104.655001 135.666026) (xy 104.687014 135.687417) (xy 104.752789 135.7005)\r\n\t\t\t\t(xy 104.94721 135.700499) (xy 104.947214 135.700498) (xy 104.947216 135.700498) (xy 104.95787 135.698378)\r\n\t\t\t\t(xy 105.012986 135.687417) (xy 105.087577 135.637577) (xy 105.137417 135.562986) (xy 105.1505 135.497211)\r\n\t\t\t\t(xy 105.150499 135.15) (xy 106.3945 135.15) (xy 106.3945 137.1) (xy 106.415333 137.17775) (xy 106.47225 137.234667)\r\n\t\t\t\t(xy 106.55 137.2555) (xy 106.550002 137.2555) (xy 107.849998 137.2555) (xy 107.85 137.2555) (xy 107.92775 137.234667)\r\n\t\t\t\t(xy 107.984667 137.17775) (xy 108.0055 137.1) (xy 108.0055 137.0045) (xy 108.024407 136.946309)\r\n\t\t\t\t(xy 108.073907 136.910345) (xy 108.1045 136.9055) (xy 108.649998 136.9055) (xy 108.65 136.9055)\r\n\t\t\t\t(xy 108.72775 136.884667) (xy 108.784667 136.82775) (xy 108.8055 136.75) (xy 108.8055 135.15) (xy 108.784667 135.07225)\r\n\t\t\t\t(xy 108.72775 135.015333) (xy 108.65 134.9945) (xy 106.55 134.9945) (xy 106.47225 135.015333) (xy 106.415333 135.07225)\r\n\t\t\t\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(xy 106.3945 135.15) (xy 105.150499 135.15) (xy 105.150499 134.9945) (xy 105.150499 134.502793)\r\n\t\t\t\t(xy 105.150498 134.502783) (xy 105.14004 134.450204) (xy 105.137417 134.437014) (xy 105.111259 134.397865)\r\n\t\t\t\t(xy 105.093134 134.370738) (xy 105.07645 134.315737) (xy 105.07645 134.129955) (xy 105.041975 134.046726)\r\n\t\t\t\t(xy 105.006396 134.011146) (xy 104.978619 133.956629) (xy 104.9774 133.941143) (xy 104.9774 130.99243)\r\n\t\t\t\t(xy 104.942925 130.909201) (xy 104.879223 130.845498) (xy 104.879223 130.845499) (xy 104.706396 130.672672)\r\n\t\t\t\t(xy 104.678619 130.618155) (xy 104.6774 130.602668) (xy 104.6774 128.045118) (xy 104.686018 128.004719)\r\n\t\t\t\t(xy 104.690452 127.994797) (xy 104.691975 127.993275) (xy 104.702072 127.968897) (xy 104.72645 127.910045)\r\n\t\t\t\t(xy 104.72645 127.766845) (xy 104.738094 127.728468) (xy 104.735134 127.727242) (xy 104.738862 127.718237)\r\n\t\t\t\t(xy 104.738867 127.718231) (xy 104.7505 127.659748) (xy 104.7505 127.020253) (xy 105.0495 127.020253)\r\n\t\t\t\t(xy 105.0495 127.659746) (xy 105.049501 127.659758) (xy 105.061132 127.718227) (xy 105.061134 127.718233)\r\n\t\t\t\t(xy 105.105445 127.784548) (xy 105.105448 127.784552) (xy 105.171769 127.828867) (xy 105.216231 127.837711)\r\n\t\t\t\t(xy 105.230241 127.840498) (xy 105.230246 127.840498) (xy 105.230252 127.8405) (xy 105.230253 127.8405)\r\n\t\t\t\t(xy 105.369747 127.8405) (xy 105.369748 127.8405) (xy 105.428231 127.828867) (xy 105.444997 127.817663)\r\n\t\t\t\t(xy 105.503885 127.801054) (xy 105.555002 127.817663) (xy 105.571769 127.828867) (xy 105.616231 127.837711)\r\n\t\t\t\t(xy 105.630241 127.840498) (xy 105.630246 127.840498) (xy 105.630252 127.8405) (xy 105.630253 127.8405)\r\n\t\t\t\t(xy 105.769747 127.8405) (xy 105.769748 127.8405) (xy 105.828231 127.828867) (xy 105.894552 127.784552)\r\n\t\t\t\t(xy 105.938867 127.718231) (xy 105.9505 127.659748) (xy 105.9505 127.020253) (xy 106.2495 127.020253)\r\n\t\t\t\t(xy 106.2495 127.659746) (xy 106.249501 127.659758) (xy 106.261132 127.718227) (xy 106.261134 127.718233)\r\n\t\t\t\t(xy 106.305445 127.784548) (xy 106.305448 127.784552) (xy 106.371769 127.828867) (xy 106.416231 127.837711)\r\n\t\t\t\t(xy 106.430241 127.840498) (xy 106.430246 127.840498) (xy 106.430252 127.8405) (xy 106.430253 127.8405)\r\n\t\t\t\t(xy 106.569747 127.8405) (xy 106.569748 127.8405) (xy 106.628231 127.828867) (xy 106.644997 127.817663)\r\n\t\t\t\t(xy 106.703885 127.801054) (xy 106.755002 127.817663) (xy 106.771769 127.828867) (xy 106.816231 127.837711)\r\n\t\t\t\t(xy 106.830241 127.840498) (xy 106.830246 127.840498) (xy 106.830252 127.8405) (xy 106.830253 127.8405)\r\n\t\t\t\t(xy 106.969747 127.8405) (xy 106.969748 127.8405) (xy 107.028231 127.828867) (xy 107.094552 127.784552)\r\n\t\t\t\t(xy 107.138867 127.718231) (xy 107.1505 127.659748) (xy 107.1505 127.020253) (xy 107.4495 127.020253)\r\n\t\t\t\t(xy 107.4495 127.659746) (xy 107.449501 127.659758) (xy 107.461132 127.718227) (xy 107.461134 127.718233)\r\n\t\t\t\t(xy 107.505445 127.784548) (xy 107.505448 127.784552) (xy 107.571769 127.828867) (xy 107.616231 127.837711)\r\n\t\t\t\t(xy 107.630241 127.840498) (xy 107.630246 127.840498) (xy 107.630252 127.8405) (xy 107.630253 127.8405)\r\n\t\t\t\t(xy 107.769747 127.8405) (xy 107.769748 127.8405) (xy 107.828231 127.828867) (xy 107.844997 127.817663)\r\n\t\t\t\t(xy 107.903885 127.801054) (xy 107.955002 127.817663) (xy 107.971769 127.828867) (xy 108.016231 127.837711)\r\n\t\t\t\t(xy 108.030241 127.840498) (xy 108.030246 127.840498) (xy 108.030252 127.8405) (xy 108.030253 127.8405)\r\n\t\t\t\t(xy 108.169747 127.8405) (xy 108.169748 127.8405) (xy 108.228231 127.828867) (xy 108.294552 127.784552)\r\n\t\t\t\t(xy 108.338867 127.718231) (xy 108.3505 127.659748) (xy 108.3505 127.020253) (xy 108.6495 127.020253)\r\n\t\t\t\t(xy 108.6495 127.659746) (xy 108.649501 127.659758) (xy 108.661132 127.718227) (xy 108.661134 127.718233)\r\n\t\t\t\t(xy 108.705445 127.784548) (xy 108.705448 127.784552) (xy 108.771769 127.828867) (xy 108.816231 127.837711)\r\n\t\t\t\t(xy 108.830241 127.840498) (xy 108.830246 127.840498) (xy 108.830252 127.8405) (xy 108.830253 127.8405)\r\n\t\t\t\t(xy 108.969747 127.8405) (xy 108.969748 127.8405) (xy 109.028231 127.828867) (xy 109.044997 127.817663)\r\n\t\t\t\t(xy 109.103885 127.801054) (xy 109.155002 127.817663) (xy 109.171769 127.828867) (xy 109.216231 127.837711)\r\n\t\t\t\t(xy 109.230241 127.840498) (xy 109.230246 127.840498) (xy 109.230252 127.8405) (xy 109.230253 127.8405)\r\n\t\t\t\t(xy 109.369747 127.8405) (xy 109.369748 127.8405) (xy 109.428231 127.828867) (xy 109.444997 127.817663)\r\n\t\t\t\t(xy 109.503885 127.801054) (xy 109.555002 127.817663) (xy 109.571769 127.828867) (xy 109.616231 127.837711)\r\n\t\t\t\t(xy 109.630241 127.840498) (xy 109.630246 127.840498) (xy 109.630252 127.8405) (xy 109.630253 127.8405)\r\n\t\t\t\t(xy 109.769747 127.8405) (xy 109.769748 127.8405) (xy 109.828231 127.828867) (xy 109.894552 127.784552)\r\n\t\t\t\t(xy 109.938867 127.718231) (xy 109.9505 127.659748) (xy 109.9505 127.020252) (xy 109.938867 126.961769)\r\n\t\t\t\t(xy 109.894552 126.895448) (xy 109.843134 126.861091) (xy 109.828233 126.851134) (xy 109.828231 126.851133)\r\n\t\t\t\t(xy 109.828228 126.851132) (xy 109.828227 126.851132) (xy 109.769758 126.839501) (xy 109.769748 126.8395)\r\n\t\t\t\t(xy 109.630252 126.8395) (xy 109.630251 126.8395) (xy 109.630241 126.839501) (xy 109.571772 126.851132)\r\n\t\t\t\t(xy 109.571767 126.851134) (xy 109.555001 126.862337) (xy 109.496113 126.878945) (xy 109.444999 126.862337)\r\n\t\t\t\t(xy 109.428232 126.851134) (xy 109.428233 126.851134) (xy 109.428231 126.851133) (xy 109.428228 126.851132)\r\n\t\t\t\t(xy 109.428227 126.851132) (xy 109.369758 126.839501) (xy 109.369748 126.8395) (xy 109.230252 126.8395)\r\n\t\t\t\t(xy 109.230251 126.8395) (xy 109.230241 126.839501) (xy 109.171772 126.851132) (xy 109.171767 126.851134)\r\n\t\t\t\t(xy 109.155001 126.862337) (xy 109.096113 126.878945) (xy 109.044999 126.862337) (xy 109.028232 126.851134)\r\n\t\t\t\t(xy 109.028233 126.851134) (xy 109.028231 126.851133) (xy 109.028228 126.851132) (xy 109.028227 126.851132)\r\n\t\t\t\t(xy 108.969758 126.839501) (xy 108.969748 126.8395) (xy 108.830252 126.8395) (xy 108.830251 126.8395)\r\n\t\t\t\t(xy 108.830241 126.839501) (xy 108.771772 126.851132) (xy 108.771766 126.851134) (xy 108.705451 126.895445)\r\n\t\t\t\t(xy 108.705445 126.895451) (xy 108.661134 126.961766) (xy 108.661132 126.961772) (xy 108.649501 127.020241)\r\n\t\t\t\t(xy 108.6495 127.020253) (xy 108.3505 127.020253) (xy 108.3505 127.020252) (xy 108.338867 126.961769)\r\n\t\t\t\t(xy 108.294552 126.895448) (xy 108.243134 126.861091) (xy 108.228233 126.851134) (xy 108.228231 126.851133)\r\n\t\t\t\t(xy 108.228228 126.851132) (xy 108.228227 126.851132) (xy 108.169758 126.839501) (xy 108.169748 126.8395)\r\n\t\t\t\t(xy 108.030252 126.8395) (xy 108.030251 126.8395) (xy 108.030241 126.839501) (xy 107.971772 126.851132)\r\n\t\t\t\t(xy 107.971767 126.851134) (xy 107.955001 126.862337) (xy 107.896113 126.878945) (xy 107.844999 126.862337)\r\n\t\t\t\t(xy 107.828232 126.851134) (xy 107.828233 126.851134) (xy 107.828231 126.851133) (xy 107.828228 126.851132)\r\n\t\t\t\t(xy 107.828227 126.851132) (xy 107.769758 126.839501) (xy 107.769748 126.8395) (xy 107.630252 126.8395)\r\n\t\t\t\t(xy 107.630251 126.8395) (xy 107.630241 126.839501) (xy 107.571772 126.851132) (xy 107.571766 126.851134)\r\n\t\t\t\t(xy 107.505451 126.895445) (xy 107.505445 126.895451) (xy 107.461134 126.961766) (xy 107.461132 126.961772)\r\n\t\t\t\t(xy 107.449501 127.020241) (xy 107.4495 127.020253) (xy 107.1505 127.020253) (xy 107.1505 127.020252)\r\n\t\t\t\t(xy 107.138867 126.961769) (xy 107.094552 126.895448) (xy 107.043134 126.861091) (xy 107.028233 126.851134)\r\n\t\t\t\t(xy 107.028231 126.851133) (xy 107.028228 126.851132) (xy 107.028227 126.851132) (xy 106.969758 126.839501)\r\n\t\t\t\t(xy 106.969748 126.8395) (xy 106.830252 126.8395) (xy 106.830251 126.8395) (xy 106.830241 126.839501)\r\n\t\t\t\t(xy 106.771772 126.851132) (xy 106.771767 126.851134) (xy 106.755001 126.862337) (xy 106.696113 126.878945)\r\n\t\t\t\t(xy 106.644999 126.862337) (xy 106.628232 126.851134) (xy 106.628233 126.851134) (xy 106.628231 126.851133)\r\n\t\t\t\t(xy 106.628228 126.851132) (xy 106.628227 126.851132) (xy 106.569758 126.839501) (xy 106.569748 126.8395)\r\n\t\t\t\t(xy 106.430252 126.8395) (xy 106.430251 126.8395) (xy 106.430241 126.839501) (xy 106.371772 126.851132)\r\n\t\t\t\t(xy 106.371766 126.851134) (xy 106.305451 126.895445) (xy 106.305445 126.895451) (xy 106.261134 126.961766)\r\n\t\t\t\t(xy 106.261132 126' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'.961772) (xy 106.249501 127.020241) (xy 106.2495 127.020253) (xy 105.9505 127.020253)\r\n\t\t\t\t(xy 105.9505 127.020252) (xy 105.938867 126.961769) (xy 105.894552 126.895448) (xy 105.843134 126.861091)\r\n\t\t\t\t(xy 105.828233 126.851134) (xy 105.828231 126.851133) (xy 105.828228 126.851132) (xy 105.828227 126.851132)\r\n\t\t\t\t(xy 105.769758 126.839501) (xy 105.769748 126.8395) (xy 105.630252 126.8395) (xy 105.630251 126.8395)\r\n\t\t\t\t(xy 105.630241 126.839501) (xy 105.571772 126.851132) (xy 105.571767 126.851134) (xy 105.555001 126.862337)\r\n\t\t\t\t(xy 105.496113 126.878945) (xy 105.444999 126.862337) (xy 105.428232 126.851134) (xy 105.428233 126.851134)\r\n\t\t\t\t(xy 105.428231 126.851133) (xy 105.428228 126.851132) (xy 105.428227 126.851132) (xy 105.369758 126.839501)\r\n\t\t\t\t(xy 105.369748 126.8395) (xy 105.230252 126.8395) (xy 105.230251 126.8395) (xy 105.230241 126.839501)\r\n\t\t\t\t(xy 105.171772 126.851132) (xy 105.171766 126.851134) (xy 105.105451 126.895445) (xy 105.105445 126.895451)\r\n\t\t\t\t(xy 105.061134 126.961766) (xy 105.061132 126.961772) (xy 105.049501 127.020241) (xy 105.0495 127.020253)\r\n\t\t\t\t(xy 104.7505 127.020253) (xy 104.7505 127.020252) (xy 104.738867 126.961769) (xy 104.694552 126.895448)\r\n\t\t\t\t(xy 104.643134 126.861091) (xy 104.628233 126.851134) (xy 104.628231 126.851133) (xy 104.628228 126.851132)\r\n\t\t\t\t(xy 104.628227 126.851132) (xy 104.569758 126.839501) (xy 104.569748 126.8395) (xy 104.430252 126.8395)\r\n\t\t\t\t(xy 104.430251 126.8395) (xy 104.430241 126.839501) (xy 104.371772 126.851132) (xy 104.371767 126.851134)\r\n\t\t\t\t(xy 104.355001 126.862337) (xy 104.296113 126.878945) (xy 104.244999 126.862337) (xy 104.228232 126.851134)\r\n\t\t\t\t(xy 104.228233 126.851134) (xy 104.228231 126.851133) (xy 104.228228 126.851132) (xy 104.228227 126.851132)\r\n\t\t\t\t(xy 104.169758 126.839501) (xy 104.169748 126.8395) (xy 104.030252 126.8395) (xy 104.030251 126.8395)\r\n\t\t\t\t(xy 104.030241 126.839501) (xy 103.971772 126.851132) (xy 103.971766 126.851134) (xy 103.905451 126.895445)\r\n\t\t\t\t(xy 103.905445 126.895451) (xy 103.861134 126.961766) (xy 103.861132 126.961772) (xy 103.849501 127.020241)\r\n\t\t\t\t(xy 103.8495 127.020253) (xy 103.5505 127.020253) (xy 103.5505 127.020252) (xy 103.538867 126.961769)\r\n\t\t\t\t(xy 103.494552 126.895448) (xy 103.443134 126.861091) (xy 103.428233 126.851134) (xy 103.428231 126.851133)\r\n\t\t\t\t(xy 103.428228 126.851132) (xy 103.428227 126.851132) (xy 103.369758 126.839501) (xy 103.369748 126.8395)\r\n\t\t\t\t(xy 103.230252 126.8395) (xy 103.230251 126.8395) (xy 103.230241 126.839501) (xy 103.171772 126.851132)\r\n\t\t\t\t(xy 103.171767 126.851134) (xy 103.155001 126.862337) (xy 103.096113 126.878945) (xy 103.044999 126.862337)\r\n\t\t\t\t(xy 103.028232 126.851134) (xy 103.028233 126.851134) (xy 103.028231 126.851133) (xy 103.028228 126.851132)\r\n\t\t\t\t(xy 103.028227 126.851132) (xy 102.969758 126.839501) (xy 102.969748 126.8395) (xy 102.830252 126.8395)\r\n\t\t\t\t(xy 102.830251 126.8395) (xy 102.830241 126.839501) (xy 102.771772 126.851132) (xy 102.771766 126.851134)\r\n\t\t\t\t(xy 102.705451 126.895445) (xy 102.705445 126.895451) (xy 102.661134 126.961766) (xy 102.661132 126.961772)\r\n\t\t\t\t(xy 102.649501 127.020241) (xy 102.6495 127.020253) (xy 102.6495 127.659746) (xy 102.649501 127.659758)\r\n\t\t\t\t(xy 102.661132 127.718227) (xy 102.661133 127.718231) (xy 102.661134 127.718233) (xy 102.664866 127.727242)\r\n\t\t\t\t(xy 102.662785 127.728103) (xy 102.668705 127.736252) (xy 102.67355 127.766845) (xy 102.67355 127.910044)\r\n\t\t\t\t(xy 102.711756 128.002282) (xy 102.709844 128.003073) (xy 102.7226 128.045118) (xy 102.7226 133.941143)\r\n\t\t\t\t(xy 102.703693 133.999334) (xy 102.693604 134.011146) (xy 102.658024 134.046726) (xy 102.62355 134.129955)\r\n\t\t\t\t(xy 102.62355 134.315737) (xy 102.606866 134.370738) (xy 102.562582 134.437014) (xy 102.5495 134.502784)\r\n\t\t\t\t(xy 102.150498 134.502784) (xy 102.137417 134.437014) (xy 102.111259 134.397865) (xy 102.093134 134.370738)\r\n\t\t\t\t(xy 102.07645 134.315737) (xy 102.07645 134.129955) (xy 102.041975 134.046726) (xy 102.006396 134.011146)\r\n\t\t\t\t(xy 101.978619 133.956629) (xy 101.9774 133.941143) (xy 101.9774 131.297331) (xy 101.996307 131.23914)\r\n\t\t\t\t(xy 102.00639 131.227333) (xy 102.242925 130.990799) (xy 102.268337 130.929449) (xy 102.2774 130.90757)\r\n\t\t\t\t(xy 102.2774 128.045118) (xy 102.286018 128.004719) (xy 102.290452 127.994797) (xy 102.291975 127.993275)\r\n\t\t\t\t(xy 102.302072 127.968897) (xy 102.32645 127.910045) (xy 102.32645 127.766845) (xy 102.331295 127.750877)\r\n\t\t\t\t(xy 102.331295 127.736252) (xy 102.337214 127.728103) (xy 102.335134 127.727242) (xy 102.338862 127.718237)\r\n\t\t\t\t(xy 102.338867 127.718231) (xy 102.3505 127.659748) (xy 102.3505 127.020252) (xy 102.338867 126.961769)\r\n\t\t\t\t(xy 102.294552 126.895448) (xy 102.243134 126.861091) (xy 102.228233 126.851134) (xy 102.228231 126.851133)\r\n\t\t\t\t(xy 102.228228 126.851132) (xy 102.228227 126.851132) (xy 102.169758 126.839501) (xy 102.169748 126.8395)\r\n\t\t\t\t(xy 102.030252 126.8395) (xy 102.030251 126.8395) (xy 102.030241 126.839501) (xy 101.971772 126.851132)\r\n\t\t\t\t(xy 101.971767 126.851134) (xy 101.955001 126.862337) (xy 101.896113 126.878945) (xy 101.844999 126.862337)\r\n\t\t\t\t(xy 101.828232 126.851134) (xy 101.828233 126.851134) (xy 101.828231 126.851133) (xy 101.828228 126.851132)\r\n\t\t\t\t(xy 101.828227 126.851132) (xy 101.769758 126.839501) (xy 101.769748 126.8395) (xy 101.630252 126.8395)\r\n\t\t\t\t(xy 101.630251 126.8395) (xy 101.630241 126.839501) (xy 101.571772 126.851132) (xy 101.571766 126.851134)\r\n\t\t\t\t(xy 101.505451 126.895445) (xy 101.505445 126.895451) (xy 101.461134 126.961766) (xy 101.461132 126.961772)\r\n\t\t\t\t(xy 101.449501 127.020241) (xy 101.4495 127.020253) (xy 101.4495 127.659746) (xy 101.449501 127.659758)\r\n\t\t\t\t(xy 101.461132 127.718227) (xy 101.461133 127.718231) (xy 101.461134 127.718233) (xy 101.464866 127.727242)\r\n\t\t\t\t(xy 101.461905 127.728468) (xy 101.47355 127.766845) (xy 101.47355 127.910044) (xy 101.511756 128.002282)\r\n\t\t\t\t(xy 101.509844 128.003073) (xy 101.5226 128.045118) (xy 101.5226 130.602668) (xy 101.503693 130.660859)\r\n\t\t\t\t(xy 101.493604 130.672672) (xy 101.320777 130.845499) (xy 101.320776 130.845498) (xy 101.257074 130.909201)\r\n\t\t\t\t(xy 101.2226 130.99243) (xy 101.2226 133.941143) (xy 101.203693 133.999334) (xy 101.193604 134.011146)\r\n\t\t\t\t(xy 101.158024 134.046726) (xy 101.12355 134.129955) (xy 101.12355 134.315737) (xy 101.106866 134.370738)\r\n\t\t\t\t(xy 101.062582 134.437014) (xy 101.0495 134.502784) (xy 100.650498 134.502784) (xy 100.637417 134.437014)\r\n\t\t\t\t(xy 100.587577 134.362423) (xy 100.57645 134.354988) (xy 100.512986 134.312582) (xy 100.447212 134.2995)\r\n\t\t\t\t(xy 100.252793 134.2995) (xy 100.252783 134.299501) (xy 100.187013 134.312583) (xy 100.155001 134.333973)\r\n\t\t\t\t(xy 100.096113 134.350581) (xy 100.044999 134.333973) (xy 100.012985 134.312582) (xy 99.947212 134.2995)\r\n\t\t\t\t(xy 99.752793 134.2995) (xy 99.752783 134.299501) (xy 99.687013 134.312583) (xy 99.612425 134.362421)\r\n\t\t\t\t(xy 99.612421 134.362425) (xy 99.562582 134.437013) (xy 99.562582 134.437014) (xy 99.5495 134.502784)\r\n\t\t\t\t(xy 99.150498 134.502784) (xy 99.137417 134.437014) (xy 99.087577 134.362423) (xy 99.07645 134.354988)\r\n\t\t\t\t(xy 99.012986 134.312582) (xy 98.947212 134.2995) (xy 98.752793 134.2995) (xy 98.752783 134.299501)\r\n\t\t\t\t(xy 98.687013 134.312583) (xy 98.655001 134.333973) (xy 98.596113 134.350581) (xy 98.544999 134.333973)\r\n\t\t\t\t(xy 98.512985 134.312582) (xy 98.447212 134.2995) (xy 98.252793 134.2995) (xy 98.252783 134.299501)\r\n\t\t\t\t(xy 98.187013 134.312583) (xy 98.112425 134.362421) (xy 98.112421 134.362425) (xy 98.062582 134.437013)\r\n\t\t\t\t(xy 98.062582 134.437014) (xy 98.0495 134.502784) (xy 97.650498 134.502784) (xy 97.637417 134.437014)\r\n\t\t\t\t(xy 97.587577 134.362423) (xy 97.587576 134.362422) (xy 97.585855 134.359846) (xy 97.576707 134.342732)\r\n\t\t\t\t(xy 97.562364 134.308104) (xy 97.527876 134.273616) (xy 97.491897 134.237636) (xy 97.491897 134.237637)\r\n\t\t\t\t(xy 96.491897 133.237636) (xy 96.491895 133.237635) (xy 96.491894 133.237634) (xy 96.399829 133.1995)\r\n\t\t\t\t(xy 96.399828 133.1995) (xy 95.094769 133.1995) (xy 95.036578 133.180593) (xy 95.024765 133.170504)\r\n\t\t\t\t(xy 94.686844 132.832583) (xy 94.341897 132.487636) (xy 94.341895 132.487635) (xy 94.341894 132.487634)\r\n\t\t\t\t(xy 94.249829 132.4495) (xy 94.249828 132.4495)' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' (xy 93.527609 132.4495) (xy 93.469418 132.430593)\r\n\t\t\t\t(xy 93.457611 132.420509) (xy 93.376613 132.339511) (xy 93.37661 132.339509) (xy 93.376608 132.339507)\r\n\t\t\t\t(xy 93.273889 132.280202) (xy 93.27389 132.280202) (xy 93.260351 132.276574) (xy 93.159309 132.2495)\r\n\t\t\t\t(xy 93.040691 132.2495) (xy 92.972126 132.267872) (xy 92.926109 132.280202) (xy 92.823391 132.339507)\r\n\t\t\t\t(xy 92.739507 132.423391) (xy 92.680202 132.526109) (xy 92.668306 132.570506) (xy 92.6495 132.640691)\r\n\t\t\t\t(xy 74.0005 132.640691) (xy 74.0005 127.020253) (xy 89.8495 127.020253) (xy 89.8495 127.659746)\r\n\t\t\t\t(xy 89.849501 127.659758) (xy 89.861132 127.718227) (xy 89.861134 127.718233) (xy 89.905445 127.784548)\r\n\t\t\t\t(xy 89.905448 127.784552) (xy 89.971769 127.828867) (xy 90.016231 127.837711) (xy 90.030241 127.840498)\r\n\t\t\t\t(xy 90.030246 127.840498) (xy 90.030252 127.8405) (xy 90.030253 127.8405) (xy 90.169747 127.8405)\r\n\t\t\t\t(xy 90.169748 127.8405) (xy 90.228231 127.828867) (xy 90.294552 127.784552) (xy 90.338867 127.718231)\r\n\t\t\t\t(xy 90.3505 127.659748) (xy 90.3505 127.020253) (xy 90.6495 127.020253) (xy 90.6495 127.659746)\r\n\t\t\t\t(xy 90.649501 127.659758) (xy 90.661132 127.718227) (xy 90.661134 127.718233) (xy 90.705445 127.784548)\r\n\t\t\t\t(xy 90.705448 127.784552) (xy 90.771769 127.828867) (xy 90.816231 127.837711) (xy 90.830241 127.840498)\r\n\t\t\t\t(xy 90.830246 127.840498) (xy 90.830252 127.8405) (xy 90.830253 127.8405) (xy 90.969747 127.8405)\r\n\t\t\t\t(xy 90.969748 127.8405) (xy 91.028231 127.828867) (xy 91.044997 127.817663) (xy 91.103885 127.801054)\r\n\t\t\t\t(xy 91.155002 127.817663) (xy 91.171769 127.828867) (xy 91.216231 127.837711) (xy 91.230241 127.840498)\r\n\t\t\t\t(xy 91.230246 127.840498) (xy 91.230252 127.8405) (xy 91.230253 127.8405) (xy 91.369747 127.8405)\r\n\t\t\t\t(xy 91.369748 127.8405) (xy 91.428231 127.828867) (xy 91.494552 127.784552) (xy 91.538867 127.718231)\r\n\t\t\t\t(xy 91.5505 127.659748) (xy 91.5505 127.020253) (xy 91.8495 127.020253) (xy 91.8495 127.659746)\r\n\t\t\t\t(xy 91.849501 127.659758) (xy 91.861132 127.718227) (xy 91.861134 127.718233) (xy 91.905445 127.784548)\r\n\t\t\t\t(xy 91.905448 127.784552) (xy 91.971769 127.828867) (xy 92.016231 127.837711) (xy 92.030241 127.840498)\r\n\t\t\t\t(xy 92.030246 127.840498) (xy 92.030252 127.8405) (xy 92.030253 127.8405) (xy 92.169747 127.8405)\r\n\t\t\t\t(xy 92.169748 127.8405) (xy 92.228231 127.828867) (xy 92.244997 127.817663) (xy 92.303885 127.801054)\r\n\t\t\t\t(xy 92.355002 127.817663) (xy 92.371769 127.828867) (xy 92.416231 127.837711) (xy 92.430241 127.840498)\r\n\t\t\t\t(xy 92.430246 127.840498) (xy 92.430252 127.8405) (xy 92.430253 127.8405) (xy 92.569747 127.8405)\r\n\t\t\t\t(xy 92.569748 127.8405) (xy 92.628231 127.828867) (xy 92.694552 127.784552) (xy 92.738867 127.718231)\r\n\t\t\t\t(xy 92.7505 127.659748) (xy 92.7505 127.020253) (xy 93.0495 127.020253) (xy 93.0495 127.659746)\r\n\t\t\t\t(xy 93.049501 127.659758) (xy 93.061132 127.718227) (xy 93.061134 127.718233) (xy 93.105445 127.784548)\r\n\t\t\t\t(xy 93.105448 127.784552) (xy 93.171769 127.828867) (xy 93.216231 127.837711) (xy 93.230241 127.840498)\r\n\t\t\t\t(xy 93.230246 127.840498) (xy 93.230252 127.8405) (xy 93.230253 127.8405) (xy 93.369747 127.8405)\r\n\t\t\t\t(xy 93.369748 127.8405) (xy 93.428231 127.828867) (xy 93.444997 127.817663) (xy 93.503885 127.801054)\r\n\t\t\t\t(xy 93.555002 127.817663) (xy 93.571769 127.828867) (xy 93.616231 127.837711) (xy 93.630241 127.840498)\r\n\t\t\t\t(xy 93.630246 127.840498) (xy 93.630252 127.8405) (xy 93.630253 127.8405) (xy 93.769747 127.8405)\r\n\t\t\t\t(xy 93.769748 127.8405) (xy 93.828231 127.828867) (xy 93.894552 127.784552) (xy 93.938867 127.718231)\r\n\t\t\t\t(xy 93.9505 127.659748) (xy 93.9505 127.020253) (xy 94.2495 127.020253) (xy 94.2495 127.659746)\r\n\t\t\t\t(xy 94.249501 127.659758) (xy 94.261132 127.718227) (xy 94.261134 127.718233) (xy 94.305445 127.784548)\r\n\t\t\t\t(xy 94.305448 127.784552) (xy 94.371769 127.828867) (xy 94.416231 127.837711) (xy 94.430241 127.840498)\r\n\t\t\t\t(xy 94.430246 127.840498) (xy 94.430252 127.8405) (xy 94.430253 127.8405) (xy 94.569747 127.8405)\r\n\t\t\t\t(xy 94.569748 127.8405) (xy 94.628231 127.828867) (xy 94.644997 127.817663) (xy 94.703885 127.801054)\r\n\t\t\t\t(xy 94.755002 127.817663) (xy 94.771769 127.828867) (xy 94.816231 127.837711) (xy 94.830241 127.840498)\r\n\t\t\t\t(xy 94.830246 127.840498) (xy 94.830252 127.8405) (xy 94.830253 127.8405) (xy 94.969747 127.8405)\r\n\t\t\t\t(xy 94.969748 127.8405) (xy 95.028231 127.828867) (xy 95.094552 127.784552) (xy 95.138867 127.718231)\r\n\t\t\t\t(xy 95.1505 127.659748) (xy 95.1505 127.020253) (xy 95.4495 127.020253) (xy 95.4495 127.659746)\r\n\t\t\t\t(xy 95.449501 127.659758) (xy 95.461132 127.718227) (xy 95.461134 127.718233) (xy 95.505445 127.784548)\r\n\t\t\t\t(xy 95.505448 127.784552) (xy 95.571769 127.828867) (xy 95.616231 127.837711) (xy 95.630241 127.840498)\r\n\t\t\t\t(xy 95.630246 127.840498) (xy 95.630252 127.8405) (xy 95.630253 127.8405) (xy 95.769747 127.8405)\r\n\t\t\t\t(xy 95.769748 127.8405) (xy 95.828231 127.828867) (xy 95.844997 127.817663) (xy 95.903885 127.801054)\r\n\t\t\t\t(xy 95.955002 127.817663) (xy 95.971769 127.828867) (xy 96.016231 127.837711) (xy 96.030241 127.840498)\r\n\t\t\t\t(xy 96.030246 127.840498) (xy 96.030252 127.8405) (xy 96.030253 127.8405) (xy 96.169747 127.8405)\r\n\t\t\t\t(xy 96.169748 127.8405) (xy 96.228231 127.828867) (xy 96.294552 127.784552) (xy 96.338867 127.718231)\r\n\t\t\t\t(xy 96.3505 127.659748) (xy 96.3505 127.020253) (xy 96.6495 127.020253) (xy 96.6495 127.659746)\r\n\t\t\t\t(xy 96.649501 127.659758) (xy 96.661132 127.718227) (xy 96.661134 127.718233) (xy 96.705445 127.784548)\r\n\t\t\t\t(xy 96.705448 127.784552) (xy 96.771769 127.828867) (xy 96.816231 127.837711) (xy 96.830241 127.840498)\r\n\t\t\t\t(xy 96.830246 127.840498) (xy 96.830252 127.8405) (xy 96.830253 127.8405) (xy 96.969747 127.8405)\r\n\t\t\t\t(xy 96.969748 127.8405) (xy 97.028231 127.828867) (xy 97.044997 127.817663) (xy 97.103885 127.801054)\r\n\t\t\t\t(xy 97.155002 127.817663) (xy 97.171769 127.828867) (xy 97.216231 127.837711) (xy 97.230241 127.840498)\r\n\t\t\t\t(xy 97.230246 127.840498) (xy 97.230252 127.8405) (xy 97.230253 127.8405) (xy 97.369747 127.8405)\r\n\t\t\t\t(xy 97.369748 127.8405) (xy 97.428231 127.828867) (xy 97.494552 127.784552) (xy 97.538867 127.718231)\r\n\t\t\t\t(xy 97.5505 127.659748) (xy 97.5505 127.020253) (xy 97.8495 127.020253) (xy 97.8495 127.659746)\r\n\t\t\t\t(xy 97.849501 127.659758) (xy 97.861132 127.718227) (xy 97.861134 127.718233) (xy 97.905445 127.784548)\r\n\t\t\t\t(xy 97.905448 127.784552) (xy 97.971769 127.828867) (xy 98.016231 127.837711) (xy 98.030241 127.840498)\r\n\t\t\t\t(xy 98.030246 127.840498) (xy 98.030252 127.8405) (xy 98.030253 127.8405) (xy 98.169747 127.8405)\r\n\t\t\t\t(xy 98.169748 127.8405) (xy 98.228231 127.828867) (xy 98.244997 127.817663) (xy 98.303885 127.801054)\r\n\t\t\t\t(xy 98.355002 127.817663) (xy 98.371769 127.828867) (xy 98.416231 127.837711) (xy 98.430241 127.840498)\r\n\t\t\t\t(xy 98.430246 127.840498) (xy 98.430252 127.8405) (xy 98.430253 127.8405) (xy 98.569747 127.8405)\r\n\t\t\t\t(xy 98.569748 127.8405) (xy 98.628231 127.828867) (xy 98.694552 127.784552) (xy 98.738867 127.718231)\r\n\t\t\t\t(xy 98.7505 127.659748) (xy 98.7505 127.020253) (xy 99.0495 127.020253) (xy 99.0495 127.659746)\r\n\t\t\t\t(xy 99.049501 127.659758) (xy 99.061132 127.718227) (xy 99.061134 127.718233) (xy 99.105445 127.784548)\r\n\t\t\t\t(xy 99.105448 127.784552) (xy 99.171769 127.828867) (xy 99.216231 127.837711) (xy 99.230241 127.840498)\r\n\t\t\t\t(xy 99.230246 127.840498) (xy 99.230252 127.8405) (xy 99.230253 127.8405) (xy 99.369747 127.8405)\r\n\t\t\t\t(xy 99.369748 127.8405) (xy 99.428231 127.828867) (xy 99.444997 127.817663) (xy 99.503885 127.801054)\r\n\t\t\t\t(xy 99.555002 127.817663) (xy 99.571769 127.828867) (xy 99.616231 127.837711) (xy 99.630241 127.840498)\r\n\t\t\t\t(xy 99.630246 127.840498) (xy 99.630252 127.8405) (xy 99.630253 127.8405) (xy 99.769747 127.8405)\r\n\t\t\t\t(xy 99.769748 127.8405) (xy 99.828231 127.828867) (xy 99.894552 127.784552) (xy 99.938867 127.718231)\r\n\t\t\t\t(xy 99.9505 127.659748) (xy 99.9505 127.020253) (xy 100.2495 127.020253) (xy 100.2495 127.659746)\r\n\t\t\t\t(xy 100.249501 127.659758) (xy 100.261132 127.718227) (xy 100.261134 127.718233) (xy 100.305445 127.784548)\r\n\t\t\t\t(xy 100.305448 127.784552) (xy 100.371769 127.828867) (xy 100.416231 127.837711) (xy 100.430241 127.840498)\r\n\t\t\t\t(xy 100.430246 127.840498) (xy 100.430252 127.8405) (xy 100.430253' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' 127.8405) (xy 100.569747 127.8405)\r\n\t\t\t\t(xy 100.569748 127.8405) (xy 100.628231 127.828867) (xy 100.644997 127.817663) (xy 100.703885 127.801054)\r\n\t\t\t\t(xy 100.755002 127.817663) (xy 100.771769 127.828867) (xy 100.816231 127.837711) (xy 100.830241 127.840498)\r\n\t\t\t\t(xy 100.830246 127.840498) (xy 100.830252 127.8405) (xy 100.830253 127.8405) (xy 100.969747 127.8405)\r\n\t\t\t\t(xy 100.969748 127.8405) (xy 101.028231 127.828867) (xy 101.094552 127.784552) (xy 101.138867 127.718231)\r\n\t\t\t\t(xy 101.1505 127.659748) (xy 101.1505 127.020252) (xy 101.138867 126.961769) (xy 101.094552 126.895448)\r\n\t\t\t\t(xy 101.043134 126.861091) (xy 101.028233 126.851134) (xy 101.028231 126.851133) (xy 101.028228 126.851132)\r\n\t\t\t\t(xy 101.028227 126.851132) (xy 100.969758 126.839501) (xy 100.969748 126.8395) (xy 100.830252 126.8395)\r\n\t\t\t\t(xy 100.830251 126.8395) (xy 100.830241 126.839501) (xy 100.771772 126.851132) (xy 100.771767 126.851134)\r\n\t\t\t\t(xy 100.755001 126.862337) (xy 100.696113 126.878945) (xy 100.644999 126.862337) (xy 100.628232 126.851134)\r\n\t\t\t\t(xy 100.628233 126.851134) (xy 100.628231 126.851133) (xy 100.628228 126.851132) (xy 100.628227 126.851132)\r\n\t\t\t\t(xy 100.569758 126.839501) (xy 100.569748 126.8395) (xy 100.430252 126.8395) (xy 100.430251 126.8395)\r\n\t\t\t\t(xy 100.430241 126.839501) (xy 100.371772 126.851132) (xy 100.371766 126.851134) (xy 100.305451 126.895445)\r\n\t\t\t\t(xy 100.305445 126.895451) (xy 100.261134 126.961766) (xy 100.261132 126.961772) (xy 100.249501 127.020241)\r\n\t\t\t\t(xy 100.2495 127.020253) (xy 99.9505 127.020253) (xy 99.9505 127.020252) (xy 99.938867 126.961769)\r\n\t\t\t\t(xy 99.894552 126.895448) (xy 99.843134 126.861091) (xy 99.828233 126.851134) (xy 99.828231 126.851133)\r\n\t\t\t\t(xy 99.828228 126.851132) (xy 99.828227 126.851132) (xy 99.769758 126.839501) (xy 99.769748 126.8395)\r\n\t\t\t\t(xy 99.630252 126.8395) (xy 99.630251 126.8395) (xy 99.630241 126.839501) (xy 99.571772 126.851132)\r\n\t\t\t\t(xy 99.571767 126.851134) (xy 99.555001 126.862337) (xy 99.496113 126.878945) (xy 99.444999 126.862337)\r\n\t\t\t\t(xy 99.428232 126.851134) (xy 99.428233 126.851134) (xy 99.428231 126.851133) (xy 99.428228 126.851132)\r\n\t\t\t\t(xy 99.428227 126.851132) (xy 99.369758 126.839501) (xy 99.369748 126.8395) (xy 99.230252 126.8395)\r\n\t\t\t\t(xy 99.230251 126.8395) (xy 99.230241 126.839501) (xy 99.171772 126.851132) (xy 99.171766 126.851134)\r\n\t\t\t\t(xy 99.105451 126.895445) (xy 99.105445 126.895451) (xy 99.061134 126.961766) (xy 99.061132 126.961772)\r\n\t\t\t\t(xy 99.049501 127.020241) (xy 99.0495 127.020253) (xy 98.7505 127.020253) (xy 98.7505 127.020252)\r\n\t\t\t\t(xy 98.738867 126.961769) (xy 98.694552 126.895448) (xy 98.643134 126.861091) (xy 98.628233 126.851134)\r\n\t\t\t\t(xy 98.628231 126.851133) (xy 98.628228 126.851132) (xy 98.628227 126.851132) (xy 98.569758 126.839501)\r\n\t\t\t\t(xy 98.569748 126.8395) (xy 98.430252 126.8395) (xy 98.430251 126.8395) (xy 98.430241 126.839501)\r\n\t\t\t\t(xy 98.371772 126.851132) (xy 98.371767 126.851134) (xy 98.355001 126.862337) (xy 98.296113 126.878945)\r\n\t\t\t\t(xy 98.244999 126.862337) (xy 98.228232 126.851134) (xy 98.228233 126.851134) (xy 98.228231 126.851133)\r\n\t\t\t\t(xy 98.228228 126.851132) (xy 98.228227 126.851132) (xy 98.169758 126.839501) (xy 98.169748 126.8395)\r\n\t\t\t\t(xy 98.030252 126.8395) (xy 98.030251 126.8395) (xy 98.030241 126.839501) (xy 97.971772 126.851132)\r\n\t\t\t\t(xy 97.971766 126.851134) (xy 97.905451 126.895445) (xy 97.905445 126.895451) (xy 97.861134 126.961766)\r\n\t\t\t\t(xy 97.861132 126.961772) (xy 97.849501 127.020241) (xy 97.8495 127.020253) (xy 97.5505 127.020253)\r\n\t\t\t\t(xy 97.5505 127.020252) (xy 97.538867 126.961769) (xy 97.494552 126.895448) (xy 97.443134 126.861091)\r\n\t\t\t\t(xy 97.428233 126.851134) (xy 97.428231 126.851133) (xy 97.428228 126.851132) (xy 97.428227 126.851132)\r\n\t\t\t\t(xy 97.369758 126.839501) (xy 97.369748 126.8395) (xy 97.230252 126.8395) (xy 97.230251 126.8395)\r\n\t\t\t\t(xy 97.230241 126.839501) (xy 97.171772 126.851132) (xy 97.171767 126.851134) (xy 97.155001 126.862337)\r\n\t\t\t\t(xy 97.096113 126.878945) (xy 97.044999 126.862337) (xy 97.028232 126.851134) (xy 97.028233 126.851134)\r\n\t\t\t\t(xy 97.028231 126.851133) (xy 97.028228 126.851132) (xy 97.028227 126.851132) (xy 96.969758 126.839501)\r\n\t\t\t\t(xy 96.969748 126.8395) (xy 96.830252 126.8395) (xy 96.830251 126.8395) (xy 96.830241 126.839501)\r\n\t\t\t\t(xy 96.771772 126.851132) (xy 96.771766 126.851134) (xy 96.705451 126.895445) (xy 96.705445 126.895451)\r\n\t\t\t\t(xy 96.661134 126.961766) (xy 96.661132 126.961772) (xy 96.649501 127.020241) (xy 96.6495 127.020253)\r\n\t\t\t\t(xy 96.3505 127.020253) (xy 96.3505 127.020252) (xy 96.338867 126.961769) (xy 96.294552 126.895448)\r\n\t\t\t\t(xy 96.243134 126.861091) (xy 96.228233 126.851134) (xy 96.228231 126.851133) (xy 96.228228 126.851132)\r\n\t\t\t\t(xy 96.228227 126.851132) (xy 96.169758 126.839501) (xy 96.169748 126.8395) (xy 96.030252 126.8395)\r\n\t\t\t\t(xy 96.030251 126.8395) (xy 96.030241 126.839501) (xy 95.971772 126.851132) (xy 95.971767 126.851134)\r\n\t\t\t\t(xy 95.955001 126.862337) (xy 95.896113 126.878945) (xy 95.844999 126.862337) (xy 95.828232 126.851134)\r\n\t\t\t\t(xy 95.828233 126.851134) (xy 95.828231 126.851133) (xy 95.828228 126.851132) (xy 95.828227 126.851132)\r\n\t\t\t\t(xy 95.769758 126.839501) (xy 95.769748 126.8395) (xy 95.630252 126.8395) (xy 95.630251 126.8395)\r\n\t\t\t\t(xy 95.630241 126.839501) (xy 95.571772 126.851132) (xy 95.571766 126.851134) (xy 95.505451 126.895445)\r\n\t\t\t\t(xy 95.505445 126.895451) (xy 95.461134 126.961766) (xy 95.461132 126.961772) (xy 95.449501 127.020241)\r\n\t\t\t\t(xy 95.4495 127.020253) (xy 95.1505 127.020253) (xy 95.1505 127.020252) (xy 95.138867 126.961769)\r\n\t\t\t\t(xy 95.094552 126.895448) (xy 95.043134 126.861091) (xy 95.028233 126.851134) (xy 95.028231 126.851133)\r\n\t\t\t\t(xy 95.028228 126.851132) (xy 95.028227 126.851132) (xy 94.969758 126.839501) (xy 94.969748 126.8395)\r\n\t\t\t\t(xy 94.830252 126.8395) (xy 94.830251 126.8395) (xy 94.830241 126.839501) (xy 94.771772 126.851132)\r\n\t\t\t\t(xy 94.771767 126.851134) (xy 94.755001 126.862337) (xy 94.696113 126.878945) (xy 94.644999 126.862337)\r\n\t\t\t\t(xy 94.628232 126.851134) (xy 94.628233 126.851134) (xy 94.628231 126.851133) (xy 94.628228 126.851132)\r\n\t\t\t\t(xy 94.628227 126.851132) (xy 94.569758 126.839501) (xy 94.569748 126.8395) (xy 94.430252 126.8395)\r\n\t\t\t\t(xy 94.430251 126.8395) (xy 94.430241 126.839501) (xy 94.371772 126.851132) (xy 94.371766 126.851134)\r\n\t\t\t\t(xy 94.305451 126.895445) (xy 94.305445 126.895451) (xy 94.261134 126.961766) (xy 94.261132 126.961772)\r\n\t\t\t\t(xy 94.249501 127.020241) (xy 94.2495 127.020253) (xy 93.9505 127.020253) (xy 93.9505 127.020252)\r\n\t\t\t\t(xy 93.938867 126.961769) (xy 93.894552 126.895448) (xy 93.843134 126.861091) (xy 93.828233 126.851134)\r\n\t\t\t\t(xy 93.828231 126.851133) (xy 93.828228 126.851132) (xy 93.828227 126.851132) (xy 93.769758 126.839501)\r\n\t\t\t\t(xy 93.769748 126.8395) (xy 93.630252 126.8395) (xy 93.630251 126.8395) (xy 93.630241 126.839501)\r\n\t\t\t\t(xy 93.571772 126.851132) (xy 93.571767 126.851134) (xy 93.555001 126.862337) (xy 93.496113 126.878945)\r\n\t\t\t\t(xy 93.444999 126.862337) (xy 93.428232 126.851134) (xy 93.428233 126.851134) (xy 93.428231 126.851133)\r\n\t\t\t\t(xy 93.428228 126.851132) (xy 93.428227 126.851132) (xy 93.369758 126.839501) (xy 93.369748 126.8395)\r\n\t\t\t\t(xy 93.230252 126.8395) (xy 93.230251 126.8395) (xy 93.230241 126.839501) (xy 93.171772 126.851132)\r\n\t\t\t\t(xy 93.171766 126.851134) (xy 93.105451 126.895445) (xy 93.105445 126.895451) (xy 93.061134 126.961766)\r\n\t\t\t\t(xy 93.061132 126.961772) (xy 93.049501 127.020241) (xy 93.0495 127.020253) (xy 92.7505 127.020253)\r\n\t\t\t\t(xy 92.7505 127.020252) (xy 92.738867 126.961769) (xy 92.694552 126.895448) (xy 92.643134 126.861091)\r\n\t\t\t\t(xy 92.628233 126.851134) (xy 92.628231 126.851133) (xy 92.628228 126.851132) (xy 92.628227 126.851132)\r\n\t\t\t\t(xy 92.569758 126.839501) (xy 92.569748 126.8395) (xy 92.430252 126.8395) (xy 92.430251 126.8395)\r\n\t\t\t\t(xy 92.430241 126.839501) (xy 92.371772 126.851132) (xy 92.371767 126.851134) (xy 92.355001 126.862337)\r\n\t\t\t\t(xy 92.296113 126.878945) (xy 92.244999 126.862337) (xy 92.228232 126.851134) (xy 92.228233 126.851134)\r\n\t\t\t\t(xy 92.228231 126.851133) (xy 92.228228 126.851132) (xy 92.228227 126.851132) (xy 92.169758 126.839501)\r\n\t\t\t\t(xy 92.169748 126.8395) (xy 92.030252 126.8395) (xy 92.030251 126.839' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'5) (xy 92.030241 126.839501)\r\n\t\t\t\t(xy 91.971772 126.851132) (xy 91.971766 126.851134) (xy 91.905451 126.895445) (xy 91.905445 126.895451)\r\n\t\t\t\t(xy 91.861134 126.961766) (xy 91.861132 126.961772) (xy 91.849501 127.020241) (xy 91.8495 127.020253)\r\n\t\t\t\t(xy 91.5505 127.020253) (xy 91.5505 127.020252) (xy 91.538867 126.961769) (xy 91.494552 126.895448)\r\n\t\t\t\t(xy 91.443134 126.861091) (xy 91.428233 126.851134) (xy 91.428231 126.851133) (xy 91.428228 126.851132)\r\n\t\t\t\t(xy 91.428227 126.851132) (xy 91.369758 126.839501) (xy 91.369748 126.8395) (xy 91.230252 126.8395)\r\n\t\t\t\t(xy 91.230251 126.8395) (xy 91.230241 126.839501) (xy 91.171772 126.851132) (xy 91.171767 126.851134)\r\n\t\t\t\t(xy 91.155001 126.862337) (xy 91.096113 126.878945) (xy 91.044999 126.862337) (xy 91.028232 126.851134)\r\n\t\t\t\t(xy 91.028233 126.851134) (xy 91.028231 126.851133) (xy 91.028228 126.851132) (xy 91.028227 126.851132)\r\n\t\t\t\t(xy 90.969758 126.839501) (xy 90.969748 126.8395) (xy 90.830252 126.8395) (xy 90.830251 126.8395)\r\n\t\t\t\t(xy 90.830241 126.839501) (xy 90.771772 126.851132) (xy 90.771766 126.851134) (xy 90.705451 126.895445)\r\n\t\t\t\t(xy 90.705445 126.895451) (xy 90.661134 126.961766) (xy 90.661132 126.961772) (xy 90.649501 127.020241)\r\n\t\t\t\t(xy 90.6495 127.020253) (xy 90.3505 127.020253) (xy 90.3505 127.020252) (xy 90.338867 126.961769)\r\n\t\t\t\t(xy 90.294552 126.895448) (xy 90.243134 126.861091) (xy 90.228233 126.851134) (xy 90.228231 126.851133)\r\n\t\t\t\t(xy 90.228228 126.851132) (xy 90.228227 126.851132) (xy 90.169758 126.839501) (xy 90.169748 126.8395)\r\n\t\t\t\t(xy 90.030252 126.8395) (xy 90.030251 126.8395) (xy 90.030241 126.839501) (xy 89.971772 126.851132)\r\n\t\t\t\t(xy 89.971766 126.851134) (xy 89.905451 126.895445) (xy 89.905445 126.895451) (xy 89.861134 126.961766)\r\n\t\t\t\t(xy 89.861132 126.961772) (xy 89.849501 127.020241) (xy 89.8495 127.020253) (xy 74.0005 127.020253)\r\n\t\t\t\t(xy 74.0005 125.174034) (xy 76.7995 125.174034) (xy 76.7995 125.425965) (xy 76.838908 125.67478)\r\n\t\t\t\t(xy 76.916759 125.914379) (xy 77.018275 126.113617) (xy 77.03113 126.138845) (xy 77.179207 126.342656)\r\n\t\t\t\t(xy 77.357344 126.520793) (xy 77.561155 126.66887) (xy 77.785621 126.783241) (xy 78.025215 126.86109)\r\n\t\t\t\t(xy 78.025216 126.86109) (xy 78.025219 126.861091) (xy 78.274035 126.9005) (xy 78.274038 126.9005)\r\n\t\t\t\t(xy 78.525965 126.9005) (xy 78.77478 126.861091) (xy 78.774781 126.86109) (xy 78.774785 126.86109)\r\n\t\t\t\t(xy 79.014379 126.783241) (xy 79.238845 126.66887) (xy 79.442656 126.520793) (xy 79.620793 126.342656)\r\n\t\t\t\t(xy 79.76887 126.138845) (xy 79.883241 125.914379) (xy 79.96109 125.674785) (xy 79.990143 125.491355)\r\n\t\t\t\t(xy 80.0005 125.425965) (xy 80.0005 125.174034) (xy 79.961091 124.925219) (xy 79.96109 124.925215)\r\n\t\t\t\t(xy 79.883241 124.685621) (xy 79.76887 124.461155) (xy 79.620793 124.257344) (xy 79.442656 124.079207)\r\n\t\t\t\t(xy 79.251402 123.940253) (xy 89.8495 123.940253) (xy 89.8495 124.579746) (xy 89.849501 124.579758)\r\n\t\t\t\t(xy 89.861132 124.638227) (xy 89.861134 124.638233) (xy 89.905445 124.704548) (xy 89.905448 124.704552)\r\n\t\t\t\t(xy 89.971769 124.748867) (xy 90.016231 124.757711) (xy 90.030241 124.760498) (xy 90.030246 124.760498)\r\n\t\t\t\t(xy 90.030252 124.7605) (xy 90.030253 124.7605) (xy 90.169747 124.7605) (xy 90.169748 124.7605)\r\n\t\t\t\t(xy 90.228231 124.748867) (xy 90.294552 124.704552) (xy 90.338867 124.638231) (xy 90.3505 124.579748)\r\n\t\t\t\t(xy 90.3505 123.940253) (xy 90.6495 123.940253) (xy 90.6495 124.579746) (xy 90.649501 124.579758)\r\n\t\t\t\t(xy 90.661132 124.638227) (xy 90.661134 124.638233) (xy 90.705445 124.704548) (xy 90.705448 124.704552)\r\n\t\t\t\t(xy 90.771769 124.748867) (xy 90.816231 124.757711) (xy 90.830241 124.760498) (xy 90.830246 124.760498)\r\n\t\t\t\t(xy 90.830252 124.7605) (xy 90.830253 124.7605) (xy 90.969747 124.7605) (xy 90.969748 124.7605)\r\n\t\t\t\t(xy 91.028231 124.748867) (xy 91.044997 124.737663) (xy 91.103885 124.721054) (xy 91.155002 124.737663)\r\n\t\t\t\t(xy 91.171769 124.748867) (xy 91.216231 124.757711) (xy 91.230241 124.760498) (xy 91.230246 124.760498)\r\n\t\t\t\t(xy 91.230252 124.7605) (xy 91.230253 124.7605) (xy 91.369747 124.7605) (xy 91.369748 124.7605)\r\n\t\t\t\t(xy 91.428231 124.748867) (xy 91.494552 124.704552) (xy 91.538867 124.638231) (xy 91.5505 124.579748)\r\n\t\t\t\t(xy 91.5505 123.940253) (xy 91.8495 123.940253) (xy 91.8495 124.579746) (xy 91.849501 124.579758)\r\n\t\t\t\t(xy 91.861132 124.638227) (xy 91.861134 124.638233) (xy 91.905445 124.704548) (xy 91.905448 124.704552)\r\n\t\t\t\t(xy 91.971769 124.748867) (xy 92.016231 124.757711) (xy 92.030241 124.760498) (xy 92.030246 124.760498)\r\n\t\t\t\t(xy 92.030252 124.7605) (xy 92.030253 124.7605) (xy 92.169747 124.7605) (xy 92.169748 124.7605)\r\n\t\t\t\t(xy 92.228231 124.748867) (xy 92.244997 124.737663) (xy 92.303885 124.721054) (xy 92.355002 124.737663)\r\n\t\t\t\t(xy 92.371769 124.748867) (xy 92.416231 124.757711) (xy 92.430241 124.760498) (xy 92.430246 124.760498)\r\n\t\t\t\t(xy 92.430252 124.7605) (xy 92.430253 124.7605) (xy 92.569747 124.7605) (xy 92.569748 124.7605)\r\n\t\t\t\t(xy 92.628231 124.748867) (xy 92.694552 124.704552) (xy 92.738867 124.638231) (xy 92.7505 124.579748)\r\n\t\t\t\t(xy 92.7505 123.940253) (xy 93.0495 123.940253) (xy 93.0495 124.579746) (xy 93.049501 124.579758)\r\n\t\t\t\t(xy 93.061132 124.638227) (xy 93.061134 124.638233) (xy 93.105445 124.704548) (xy 93.105448 124.704552)\r\n\t\t\t\t(xy 93.171769 124.748867) (xy 93.216231 124.757711) (xy 93.230241 124.760498) (xy 93.230246 124.760498)\r\n\t\t\t\t(xy 93.230252 124.7605) (xy 93.230253 124.7605) (xy 93.369747 124.7605) (xy 93.369748 124.7605)\r\n\t\t\t\t(xy 93.428231 124.748867) (xy 93.444997 124.737663) (xy 93.503885 124.721054) (xy 93.555002 124.737663)\r\n\t\t\t\t(xy 93.571769 124.748867) (xy 93.616231 124.757711) (xy 93.630241 124.760498) (xy 93.630246 124.760498)\r\n\t\t\t\t(xy 93.630252 124.7605) (xy 93.630253 124.7605) (xy 93.769747 124.7605) (xy 93.769748 124.7605)\r\n\t\t\t\t(xy 93.828231 124.748867) (xy 93.894552 124.704552) (xy 93.938867 124.638231) (xy 93.9505 124.579748)\r\n\t\t\t\t(xy 93.9505 123.940253) (xy 94.2495 123.940253) (xy 94.2495 124.579746) (xy 94.249501 124.579758)\r\n\t\t\t\t(xy 94.261132 124.638227) (xy 94.261134 124.638233) (xy 94.305445 124.704548) (xy 94.305448 124.704552)\r\n\t\t\t\t(xy 94.371769 124.748867) (xy 94.416231 124.757711) (xy 94.430241 124.760498) (xy 94.430246 124.760498)\r\n\t\t\t\t(xy 94.430252 124.7605) (xy 94.430253 124.7605) (xy 94.569747 124.7605) (xy 94.569748 124.7605)\r\n\t\t\t\t(xy 94.628231 124.748867) (xy 94.644997 124.737663) (xy 94.703885 124.721054) (xy 94.755002 124.737663)\r\n\t\t\t\t(xy 94.771769 124.748867) (xy 94.816231 124.757711) (xy 94.830241 124.760498) (xy 94.830246 124.760498)\r\n\t\t\t\t(xy 94.830252 124.7605) (xy 94.830253 124.7605) (xy 94.969747 124.7605) (xy 94.969748 124.7605)\r\n\t\t\t\t(xy 95.028231 124.748867) (xy 95.094552 124.704552) (xy 95.138867 124.638231) (xy 95.1505 124.579748)\r\n\t\t\t\t(xy 95.1505 123.940253) (xy 95.4495 123.940253) (xy 95.4495 124.579746) (xy 95.449501 124.579758)\r\n\t\t\t\t(xy 95.461132 124.638227) (xy 95.461134 124.638233) (xy 95.505445 124.704548) (xy 95.505448 124.704552)\r\n\t\t\t\t(xy 95.571769 124.748867) (xy 95.616231 124.757711) (xy 95.630241 124.760498) (xy 95.630246 124.760498)\r\n\t\t\t\t(xy 95.630252 124.7605) (xy 95.630253 124.7605) (xy 95.769747 124.7605) (xy 95.769748 124.7605)\r\n\t\t\t\t(xy 95.828231 124.748867) (xy 95.844997 124.737663) (xy 95.903885 124.721054) (xy 95.955002 124.737663)\r\n\t\t\t\t(xy 95.971769 124.748867) (xy 96.016231 124.757711) (xy 96.030241 124.760498) (xy 96.030246 124.760498)\r\n\t\t\t\t(xy 96.030252 124.7605) (xy 96.030253 124.7605) (xy 96.169747 124.7605) (xy 96.169748 124.7605)\r\n\t\t\t\t(xy 96.228231 124.748867) (xy 96.294552 124.704552) (xy 96.338867 124.638231) (xy 96.3505 124.579748)\r\n\t\t\t\t(xy 96.3505 123.940253) (xy 96.6495 123.940253) (xy 96.6495 124.579746) (xy 96.649501 124.579758)\r\n\t\t\t\t(xy 96.661132 124.638227) (xy 96.661134 124.638233) (xy 96.705445 124.704548) (xy 96.705448 124.704552)\r\n\t\t\t\t(xy 96.771769 124.748867) (xy 96.816231 124.757711) (xy 96.830241 124.760498) (xy 96.830246 124.760498)\r\n\t\t\t\t(xy 96.830252 124.7605) (xy 96.830253 124.7605) (xy 96.969747 124.7605) (xy 96.969748 124.7605)\r\n\t\t\t\t(xy 97.028231 124.748867) (xy 97.044997 124.737663) (xy 97.103885 124.721054) (xy 97.155002 124.737663)\r\n\t\t\t\t(xy 97.171769 124.748867) (xy 97.216231 124.757711) (xy 97.230241 124.760498) (xy 97.' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'230246 124.760498)\r\n\t\t\t\t(xy 97.230252 124.7605) (xy 97.230253 124.7605) (xy 97.369747 124.7605) (xy 97.369748 124.7605)\r\n\t\t\t\t(xy 97.428231 124.748867) (xy 97.494552 124.704552) (xy 97.538867 124.638231) (xy 97.5505 124.579748)\r\n\t\t\t\t(xy 97.5505 123.940253) (xy 97.8495 123.940253) (xy 97.8495 124.579746) (xy 97.849501 124.579758)\r\n\t\t\t\t(xy 97.861132 124.638227) (xy 97.861134 124.638233) (xy 97.905445 124.704548) (xy 97.905448 124.704552)\r\n\t\t\t\t(xy 97.971769 124.748867) (xy 98.016231 124.757711) (xy 98.030241 124.760498) (xy 98.030246 124.760498)\r\n\t\t\t\t(xy 98.030252 124.7605) (xy 98.030253 124.7605) (xy 98.169747 124.7605) (xy 98.169748 124.7605)\r\n\t\t\t\t(xy 98.228231 124.748867) (xy 98.244997 124.737663) (xy 98.303885 124.721054) (xy 98.355002 124.737663)\r\n\t\t\t\t(xy 98.371769 124.748867) (xy 98.416231 124.757711) (xy 98.430241 124.760498) (xy 98.430246 124.760498)\r\n\t\t\t\t(xy 98.430252 124.7605) (xy 98.430253 124.7605) (xy 98.569747 124.7605) (xy 98.569748 124.7605)\r\n\t\t\t\t(xy 98.628231 124.748867) (xy 98.694552 124.704552) (xy 98.738867 124.638231) (xy 98.7505 124.579748)\r\n\t\t\t\t(xy 98.7505 123.940253) (xy 99.0495 123.940253) (xy 99.0495 124.579746) (xy 99.049501 124.579758)\r\n\t\t\t\t(xy 99.061132 124.638227) (xy 99.061134 124.638233) (xy 99.105445 124.704548) (xy 99.105448 124.704552)\r\n\t\t\t\t(xy 99.171769 124.748867) (xy 99.216231 124.757711) (xy 99.230241 124.760498) (xy 99.230246 124.760498)\r\n\t\t\t\t(xy 99.230252 124.7605) (xy 99.230253 124.7605) (xy 99.369747 124.7605) (xy 99.369748 124.7605)\r\n\t\t\t\t(xy 99.428231 124.748867) (xy 99.444997 124.737663) (xy 99.503885 124.721054) (xy 99.555002 124.737663)\r\n\t\t\t\t(xy 99.571769 124.748867) (xy 99.616231 124.757711) (xy 99.630241 124.760498) (xy 99.630246 124.760498)\r\n\t\t\t\t(xy 99.630252 124.7605) (xy 99.630253 124.7605) (xy 99.769747 124.7605) (xy 99.769748 124.7605)\r\n\t\t\t\t(xy 99.828231 124.748867) (xy 99.844997 124.737663) (xy 99.903885 124.721054) (xy 99.955002 124.737663)\r\n\t\t\t\t(xy 99.971769 124.748867) (xy 100.016231 124.757711) (xy 100.030241 124.760498) (xy 100.030246 124.760498)\r\n\t\t\t\t(xy 100.030252 124.7605) (xy 100.030253 124.7605) (xy 100.169747 124.7605) (xy 100.169748 124.7605)\r\n\t\t\t\t(xy 100.228231 124.748867) (xy 100.244997 124.737663) (xy 100.303885 124.721054) (xy 100.355002 124.737663)\r\n\t\t\t\t(xy 100.371769 124.748867) (xy 100.416231 124.757711) (xy 100.430241 124.760498) (xy 100.430246 124.760498)\r\n\t\t\t\t(xy 100.430252 124.7605) (xy 100.430253 124.7605) (xy 100.569747 124.7605) (xy 100.569748 124.7605)\r\n\t\t\t\t(xy 100.628231 124.748867) (xy 100.644997 124.737663) (xy 100.703885 124.721054) (xy 100.755002 124.737663)\r\n\t\t\t\t(xy 100.771769 124.748867) (xy 100.816231 124.757711) (xy 100.830241 124.760498) (xy 100.830246 124.760498)\r\n\t\t\t\t(xy 100.830252 124.7605) (xy 100.830253 124.7605) (xy 100.969747 124.7605) (xy 100.969748 124.7605)\r\n\t\t\t\t(xy 101.028231 124.748867) (xy 101.044997 124.737663) (xy 101.103885 124.721054) (xy 101.155002 124.737663)\r\n\t\t\t\t(xy 101.171769 124.748867) (xy 101.216231 124.757711) (xy 101.230241 124.760498) (xy 101.230246 124.760498)\r\n\t\t\t\t(xy 101.230252 124.7605) (xy 101.230253 124.7605) (xy 101.369747 124.7605) (xy 101.369748 124.7605)\r\n\t\t\t\t(xy 101.428231 124.748867) (xy 101.444997 124.737663) (xy 101.503885 124.721054) (xy 101.555002 124.737663)\r\n\t\t\t\t(xy 101.571769 124.748867) (xy 101.616231 124.757711) (xy 101.630241 124.760498) (xy 101.630246 124.760498)\r\n\t\t\t\t(xy 101.630252 124.7605) (xy 101.630253 124.7605) (xy 101.769747 124.7605) (xy 101.769748 124.7605)\r\n\t\t\t\t(xy 101.828231 124.748867) (xy 101.844997 124.737663) (xy 101.903885 124.721054) (xy 101.955002 124.737663)\r\n\t\t\t\t(xy 101.971769 124.748867) (xy 102.016231 124.757711) (xy 102.030241 124.760498) (xy 102.030246 124.760498)\r\n\t\t\t\t(xy 102.030252 124.7605) (xy 102.030253 124.7605) (xy 102.169747 124.7605) (xy 102.169748 124.7605)\r\n\t\t\t\t(xy 102.228231 124.748867) (xy 102.294552 124.704552) (xy 102.338867 124.638231) (xy 102.3505 124.579748)\r\n\t\t\t\t(xy 102.3505 123.940252) (xy 102.350499 123.940249) (xy 102.6495 123.940249) (xy 102.6495 124.579746)\r\n\t\t\t\t(xy 102.649501 124.579758) (xy 102.661132 124.638227) (xy 102.661134 124.638233) (xy 102.705445 124.704548)\r\n\t\t\t\t(xy 102.705448 124.704552) (xy 102.771769 124.748867) (xy 102.816231 124.757711) (xy 102.830241 124.760498)\r\n\t\t\t\t(xy 102.830246 124.760498) (xy 102.830252 124.7605) (xy 102.830253 124.7605) (xy 102.969747 124.7605)\r\n\t\t\t\t(xy 102.969748 124.7605) (xy 103.028231 124.748867) (xy 103.044997 124.737663) (xy 103.103885 124.721054)\r\n\t\t\t\t(xy 103.155002 124.737663) (xy 103.171769 124.748867) (xy 103.216231 124.757711) (xy 103.230241 124.760498)\r\n\t\t\t\t(xy 103.230246 124.760498) (xy 103.230252 124.7605) (xy 103.230253 124.7605) (xy 103.369747 124.7605)\r\n\t\t\t\t(xy 103.369748 124.7605) (xy 103.428231 124.748867) (xy 103.494552 124.704552) (xy 103.538867 124.638231)\r\n\t\t\t\t(xy 103.5505 124.579748) (xy 103.5505 123.940252) (xy 103.550499 123.940249) (xy 103.8495 123.940249)\r\n\t\t\t\t(xy 103.8495 124.579746) (xy 103.849501 124.579758) (xy 103.861132 124.638227) (xy 103.861134 124.638233)\r\n\t\t\t\t(xy 103.905445 124.704548) (xy 103.905448 124.704552) (xy 103.971769 124.748867) (xy 104.016231 124.757711)\r\n\t\t\t\t(xy 104.030241 124.760498) (xy 104.030246 124.760498) (xy 104.030252 124.7605) (xy 104.030253 124.7605)\r\n\t\t\t\t(xy 104.169747 124.7605) (xy 104.169748 124.7605) (xy 104.228231 124.748867) (xy 104.244997 124.737663)\r\n\t\t\t\t(xy 104.303885 124.721054) (xy 104.355002 124.737663) (xy 104.371769 124.748867) (xy 104.416231 124.757711)\r\n\t\t\t\t(xy 104.430241 124.760498) (xy 104.430246 124.760498) (xy 104.430252 124.7605) (xy 104.430253 124.7605)\r\n\t\t\t\t(xy 104.569747 124.7605) (xy 104.569748 124.7605) (xy 104.628231 124.748867) (xy 104.694552 124.704552)\r\n\t\t\t\t(xy 104.738867 124.638231) (xy 104.7505 124.579748) (xy 104.7505 123.940252) (xy 104.750499 123.940249)\r\n\t\t\t\t(xy 105.0495 123.940249) (xy 105.0495 124.579746) (xy 105.049501 124.579758) (xy 105.061132 124.638227)\r\n\t\t\t\t(xy 105.061134 124.638233) (xy 105.105445 124.704548) (xy 105.105448 124.704552) (xy 105.171769 124.748867)\r\n\t\t\t\t(xy 105.216231 124.757711) (xy 105.230241 124.760498) (xy 105.230246 124.760498) (xy 105.230252 124.7605)\r\n\t\t\t\t(xy 105.230253 124.7605) (xy 105.369747 124.7605) (xy 105.369748 124.7605) (xy 105.428231 124.748867)\r\n\t\t\t\t(xy 105.444997 124.737663) (xy 105.503885 124.721054) (xy 105.555002 124.737663) (xy 105.571769 124.748867)\r\n\t\t\t\t(xy 105.616231 124.757711) (xy 105.630241 124.760498) (xy 105.630246 124.760498) (xy 105.630252 124.7605)\r\n\t\t\t\t(xy 105.630253 124.7605) (xy 105.769747 124.7605) (xy 105.769748 124.7605) (xy 105.828231 124.748867)\r\n\t\t\t\t(xy 105.894552 124.704552) (xy 105.938867 124.638231) (xy 105.9505 124.579748) (xy 105.9505 123.940252)\r\n\t\t\t\t(xy 105.950499 123.940249) (xy 106.2495 123.940249) (xy 106.2495 124.579746) (xy 106.249501 124.579758)\r\n\t\t\t\t(xy 106.261132 124.638227) (xy 106.261134 124.638233) (xy 106.305445 124.704548) (xy 106.305448 124.704552)\r\n\t\t\t\t(xy 106.371769 124.748867) (xy 106.416231 124.757711) (xy 106.430241 124.760498) (xy 106.430246 124.760498)\r\n\t\t\t\t(xy 106.430252 124.7605) (xy 106.430253 124.7605) (xy 106.569747 124.7605) (xy 106.569748 124.7605)\r\n\t\t\t\t(xy 106.628231 124.748867) (xy 106.644997 124.737663) (xy 106.703885 124.721054) (xy 106.755002 124.737663)\r\n\t\t\t\t(xy 106.771769 124.748867) (xy 106.816231 124.757711) (xy 106.830241 124.760498) (xy 106.830246 124.760498)\r\n\t\t\t\t(xy 106.830252 124.7605) (xy 106.830253 124.7605) (xy 106.969747 124.7605) (xy 106.969748 124.7605)\r\n\t\t\t\t(xy 107.028231 124.748867) (xy 107.094552 124.704552) (xy 107.138867 124.638231) (xy 107.1505 124.579748)\r\n\t\t\t\t(xy 107.1505 123.940253) (xy 107.4495 123.940253) (xy 107.4495 124.579746) (xy 107.449501 124.579758)\r\n\t\t\t\t(xy 107.461132 124.638227) (xy 107.461134 124.638233) (xy 107.505445 124.704548) (xy 107.505448 124.704552)\r\n\t\t\t\t(xy 107.571769 124.748867) (xy 107.616231 124.757711) (xy 107.630241 124.760498) (xy 107.630246 124.760498)\r\n\t\t\t\t(xy 107.630252 124.7605) (xy 107.630253 124.7605) (xy 107.769747 124.7605) (xy 107.769748 124.7605)\r\n\t\t\t\t(xy 107.828231 124.748867) (xy 107.844997 124.737663) (xy 107.903885 124.721054) (xy 107.955002 124.737663)\r\n\t\t\t\t(xy 107.971769 124.748867) (xy 108.016231 124.757711) (xy 108.030241 124.760498) (xy 108.030246' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' 124.760498)\r\n\t\t\t\t(xy 108.030252 124.7605) (xy 108.030253 124.7605) (xy 108.169747 124.7605) (xy 108.169748 124.7605)\r\n\t\t\t\t(xy 108.228231 124.748867) (xy 108.294552 124.704552) (xy 108.338867 124.638231) (xy 108.3505 124.579748)\r\n\t\t\t\t(xy 108.3505 123.940252) (xy 108.338867 123.881769) (xy 108.294552 123.815448) (xy 108.273549 123.801414)\r\n\t\t\t\t(xy 108.228233 123.771134) (xy 108.228231 123.771133) (xy 108.228228 123.771132) (xy 108.228227 123.771132)\r\n\t\t\t\t(xy 108.169758 123.759501) (xy 108.169748 123.7595) (xy 108.030252 123.7595) (xy 108.030251 123.7595)\r\n\t\t\t\t(xy 108.030241 123.759501) (xy 107.971772 123.771132) (xy 107.971767 123.771134) (xy 107.955001 123.782337)\r\n\t\t\t\t(xy 107.896113 123.798945) (xy 107.844999 123.782337) (xy 107.828232 123.771134) (xy 107.828233 123.771134)\r\n\t\t\t\t(xy 107.828231 123.771133) (xy 107.828228 123.771132) (xy 107.828227 123.771132) (xy 107.769758 123.759501)\r\n\t\t\t\t(xy 107.769748 123.7595) (xy 107.630252 123.7595) (xy 107.630251 123.7595) (xy 107.630241 123.759501)\r\n\t\t\t\t(xy 107.571772 123.771132) (xy 107.571766 123.771134) (xy 107.505451 123.815445) (xy 107.505445 123.815451)\r\n\t\t\t\t(xy 107.461134 123.881766) (xy 107.461132 123.881772) (xy 107.449501 123.940241) (xy 107.4495 123.940253)\r\n\t\t\t\t(xy 107.1505 123.940253) (xy 107.1505 123.940252) (xy 107.138867 123.881769) (xy 107.138867 123.881768)\r\n\t\t\t\t(xy 107.135137 123.872764) (xy 107.138089 123.871541) (xy 107.12645 123.833154) (xy 107.12645 123.689955)\r\n\t\t\t\t(xy 107.124069 123.684207) (xy 108.64465 123.684207) (xy 108.64465 123.691003) (xy 108.64465 124.310794)\r\n\t\t\t\t(xy 108.646552 124.320357) (xy 108.645209 124.320624) (xy 108.6495 124.342194) (xy 108.6495 124.579746)\r\n\t\t\t\t(xy 108.649501 124.579758) (xy 108.661132 124.638227) (xy 108.661134 124.638233) (xy 108.705445 124.704548)\r\n\t\t\t\t(xy 108.705448 124.704552) (xy 108.771769 124.748867) (xy 108.816231 124.757711) (xy 108.830241 124.760498)\r\n\t\t\t\t(xy 108.830246 124.760498) (xy 108.830252 124.7605) (xy 108.830253 124.7605) (xy 108.969747 124.7605)\r\n\t\t\t\t(xy 108.969748 124.7605) (xy 109.028231 124.748867) (xy 109.044997 124.737663) (xy 109.103885 124.721054)\r\n\t\t\t\t(xy 109.155002 124.737663) (xy 109.171769 124.748867) (xy 109.216231 124.757711) (xy 109.230241 124.760498)\r\n\t\t\t\t(xy 109.230246 124.760498) (xy 109.230252 124.7605) (xy 109.230253 124.7605) (xy 109.369747 124.7605)\r\n\t\t\t\t(xy 109.369748 124.7605) (xy 109.428231 124.748867) (xy 109.494552 124.704552) (xy 109.538867 124.638231)\r\n\t\t\t\t(xy 109.5505 124.579748) (xy 109.5505 124.342194) (xy 109.55479 124.320624) (xy 109.553448 124.320357)\r\n\t\t\t\t(xy 109.55535 124.310794) (xy 109.55535 123.801123) (xy 109.574257 123.742932) (xy 109.584346 123.731119)\r\n\t\t\t\t(xy 109.751269 123.564196) (xy 109.805786 123.536419) (xy 109.821273 123.5352) (xy 113.278728 123.5352)\r\n\t\t\t\t(xy 113.336919 123.554107) (xy 113.348724 123.564189) (xy 113.683862 123.899328) (xy 113.683863 123.899328)\r\n\t\t\t\t(xy 115.121033 125.336498) (xy 115.160943 125.376408) (xy 115.188719 125.430923) (xy 115.179148 125.491355)\r\n\t\t\t\t(xy 115.160942 125.516413) (xy 114.989015 125.68834) (xy 114.989014 125.688341) (xy 114.989009 125.688345)\r\n\t\t\t\t(xy 114.989002 125.688352) (xy 114.985465 125.691891) (xy 114.985463 125.691893) (xy 114.926076 125.786407)\r\n\t\t\t\t(xy 114.889211 125.891761) (xy 114.88921 125.891764) (xy 114.876712 126.002691) (xy 114.88921 126.113617)\r\n\t\t\t\t(xy 114.889211 126.11362) (xy 114.926076 126.218974) (xy 114.985465 126.313491) (xy 115.024929 126.352956)\r\n\t\t\t\t(xy 115.02493 126.352957) (xy 115.045323 126.373351) (xy 115.045324 126.373351) (xy 115.145697 126.473724)\r\n\t\t\t\t(xy 115.145696 126.473724) (xy 115.149242 126.477269) (xy 115.149246 126.477273) (xy 115.218506 126.520793)\r\n\t\t\t\t(xy 115.243762 126.536663) (xy 115.243764 126.536664) (xy 115.349119 126.573531) (xy 115.349122 126.573531)\r\n\t\t\t\t(xy 115.349124 126.573532) (xy 115.460049 126.58603) (xy 115.570974 126.573532) (xy 115.570976 126.573531)\r\n\t\t\t\t(xy 115.570978 126.573531) (xy 115.676333 126.536664) (xy 115.676332 126.536664) (xy 115.676336 126.536663)\r\n\t\t\t\t(xy 115.770852 126.477273) (xy 115.810317 126.437807) (xy 115.94633 126.301795) (xy 116.000842 126.274021)\r\n\t\t\t\t(xy 116.061274 126.283592) (xy 116.086333 126.301798) (xy 119.415804 129.631269) (xy 119.443581 129.685786)\r\n\t\t\t\t(xy 119.4448 129.701273) (xy 119.4448 132.241531) (xy 119.425893 132.299722) (xy 119.376393 132.335686)\r\n\t\t\t\t(xy 119.315207 132.335686) (xy 119.275796 132.311535) (xy 119.059495 132.095234) (xy 119.031718 132.040717)\r\n\t\t\t\t(xy 119.030499 132.02523) (xy 119.030499 131.77238) (xy 119.030499 131.772378) (xy 119.02773 131.748502)\r\n\t\t\t\t(xy 118.984616 131.650859) (xy 118.909141 131.575384) (xy 118.909139 131.575383) (xy 118.811498 131.532269)\r\n\t\t\t\t(xy 118.787626 131.5295) (xy 118.43238 131.5295) (xy 118.432377 131.529501) (xy 118.408499 131.53227)\r\n\t\t\t\t(xy 118.31086 131.575383) (xy 118.235383 131.65086) (xy 118.192269 131.748501) (xy 118.192269 131.748502)\r\n\t\t\t\t(xy 118.1895 131.772372) (xy 118.1895 132.227619) (xy 118.189501 132.227622) (xy 118.19227 132.2515)\r\n\t\t\t\t(xy 118.218779 132.311535) (xy 118.235384 132.349141) (xy 118.310859 132.424616) (xy 118.347723 132.440893)\r\n\t\t\t\t(xy 118.408501 132.46773) (xy 118.412749 132.468222) (xy 118.432377 132.4705) (xy 118.68523 132.470499)\r\n\t\t\t\t(xy 118.692827 132.472967) (xy 118.700717 132.471718) (xy 118.721373 132.482242) (xy 118.74342 132.489406)\r\n\t\t\t\t(xy 118.755234 132.499495) (xy 118.850504 132.594765) (xy 118.878281 132.649282) (xy 118.8795 132.664769)\r\n\t\t\t\t(xy 118.8795 132.729159) (xy 118.860593 132.78735) (xy 118.811093 132.823314) (xy 118.761189 132.826257)\r\n\t\t\t\t(xy 118.72722 132.819501) (xy 118.727212 132.8195) (xy 118.727211 132.8195) (xy 118.727209 132.8195)\r\n\t\t\t\t(xy 118.532793 132.8195) (xy 118.532783 132.819501) (xy 118.467013 132.832583) (xy 118.46701 132.832584)\r\n\t\t\t\t(xy 118.413536 132.868314) (xy 118.354648 132.884922) (xy 118.311537 132.870638) (xy 118.311157 132.8715)\r\n\t\t\t\t(xy 118.302766 132.867795) (xy 118.302765 132.867794) (xy 118.199991 132.822415) (xy 118.19999 132.822414)\r\n\t\t\t\t(xy 118.199988 132.822414) (xy 118.174868 132.8195) (xy 117.785139 132.8195) (xy 117.785136 132.819501)\r\n\t\t\t\t(xy 117.760009 132.822414) (xy 117.657235 132.867794) (xy 117.577794 132.947235) (xy 117.532414 133.050011)\r\n\t\t\t\t(xy 117.5295 133.07513) (xy 117.5295 133.075132) (xy 117.5295 133.075135) (xy 117.5295 133.541079)\r\n\t\t\t\t(xy 117.529501 133.9455) (xy 117.510594 134.003691) (xy 117.461094 134.039655) (xy 117.430501 134.0445)\r\n\t\t\t\t(xy 117.414234 134.0445) (xy 117.324652 134.068503) (xy 117.26786 134.08372) (xy 117.136639 134.159481)\r\n\t\t\t\t(xy 117.029481 134.266639) (xy 116.95372 134.39786) (xy 116.936992 134.460293) (xy 116.9145 134.544234)\r\n\t\t\t\t(xy 116.9145 134.695766) (xy 116.924962 134.73481) (xy 116.95372 134.842139) (xy 117.029481 134.97336)\r\n\t\t\t\t(xy 117.029483 134.973362) (xy 117.029485 134.973365) (xy 117.136635 135.080515) (xy 117.136637 135.080516)\r\n\t\t\t\t(xy 117.136639 135.080518) (xy 117.267861 135.156279) (xy 117.267859 135.156279) (xy 117.267863 135.15628)\r\n\t\t\t\t(xy 117.267865 135.156281) (xy 117.414234 135.1955) (xy 117.414236 135.1955) (xy 117.565764 135.1955)\r\n\t\t\t\t(xy 117.565766 135.1955) (xy 117.712135 135.156281) (xy 117.712137 135.156279) (xy 117.712139 135.156279)\r\n\t\t\t\t(xy 117.84336 135.080518) (xy 117.84336 135.080517) (xy 117.843365 135.080515) (xy 117.950515 134.973365)\r\n\t\t\t\t(xy 118.026281 134.842135) (xy 118.0655 134.695766) (xy 118.0655 134.610467) (xy 118.084407 134.552276)\r\n\t\t\t\t(xy 118.133907 134.516312) (xy 118.195093 134.516312) (xy 118.234504 134.540463) (xy 118.565638 134.871597)\r\n\t\t\t\t(xy 118.565637 134.871597) (xy 118.636105 134.942064) (xy 118.728173 134.9802) (xy 118.728174 134.9802)\r\n\t\t\t\t(xy 122.220128 134.9802) (xy 122.278184 134.956151) (xy 122.312196 134.942064) (xy 122.54451 134.709749)\r\n\t\t\t\t(xy 122.599025 134.681974) (xy 122.659457 134.691545) (xy 122.702722 134.73481) (xy 122.710139 134.754132)\r\n\t\t\t\t(xy 122.73372 134.842139) (xy 122.809481 134.97336) (xy 122.809483 134.973362) (xy 122.809485 134.973365)\r\n\t\t\t\t(xy 122.916635 135.080515) (xy 122.916637 135.080516) (xy 122.916639 135.080518) (xy 123.047861 135.156279)\r\n\t\t\t\t(xy 123.047859 135.156279) (xy 123.047863 135.15628) (xy 123.047865 135.156281) (xy 123.194234 135' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'.1955)\r\n\t\t\t\t(xy 123.194236 135.1955) (xy 123.345764 135.1955) (xy 123.345766 135.1955) (xy 123.492135 135.156281)\r\n\t\t\t\t(xy 123.492137 135.156279) (xy 123.492139 135.156279) (xy 123.62336 135.080518) (xy 123.62336 135.080517)\r\n\t\t\t\t(xy 123.623365 135.080515) (xy 123.730515 134.973365) (xy 123.806281 134.842135) (xy 123.8455 134.695766)\r\n\t\t\t\t(xy 123.8455 134.544234) (xy 123.806281 134.397865) (xy 123.806279 134.397862) (xy 123.806279 134.39786)\r\n\t\t\t\t(xy 123.730518 134.266639) (xy 123.730516 134.266637) (xy 123.730515 134.266635) (xy 123.623365 134.159485)\r\n\t\t\t\t(xy 123.623362 134.159483) (xy 123.62336 134.159481) (xy 123.492138 134.08372) (xy 123.49214 134.08372)\r\n\t\t\t\t(xy 123.435347 134.068503) (xy 123.345766 134.0445) (xy 123.345764 134.0445) (xy 123.3295 134.0445)\r\n\t\t\t\t(xy 123.271309 134.025593) (xy 123.235345 133.976093) (xy 123.2305 133.9455) (xy 123.230499 133.075139)\r\n\t\t\t\t(xy 123.230499 133.075136) (xy 123.227585 133.050009) (xy 123.182206 132.947235) (xy 123.102765 132.867794)\r\n\t\t\t\t(xy 122.999991 132.822415) (xy 122.99999 132.822414) (xy 122.999988 132.822414) (xy 122.974868 132.8195)\r\n\t\t\t\t(xy 122.585139 132.8195) (xy 122.585136 132.819501) (xy 122.560009 132.822414) (xy 122.53595 132.833038)\r\n\t\t\t\t(xy 122.519487 132.840307) (xy 122.514306 132.840835) (xy 122.510093 132.843897) (xy 122.484288 132.843897)\r\n\t\t\t\t(xy 122.458619 132.846515) (xy 122.454117 132.843897) (xy 122.448907 132.843897) (xy 122.428027 132.828727)\r\n\t\t\t\t(xy 122.405725 132.815759) (xy 122.403621 132.810995) (xy 122.399407 132.807933) (xy 122.391432 132.783389)\r\n\t\t\t\t(xy 122.381011 132.759787) (xy 122.3805 132.749742) (xy 122.3805 132.568784) (xy 122.399407 132.510593)\r\n\t\t\t\t(xy 122.448907 132.474629) (xy 122.468092 132.470444) (xy 122.491498 132.46773) (xy 122.589141 132.424616)\r\n\t\t\t\t(xy 122.664616 132.349141) (xy 122.70773 132.251498) (xy 122.7105 132.227623) (xy 122.710499 131.772378)\r\n\t\t\t\t(xy 122.70773 131.748502) (xy 122.664616 131.650859) (xy 122.589141 131.575384) (xy 122.589139 131.575383)\r\n\t\t\t\t(xy 122.491498 131.532269) (xy 122.467626 131.5295) (xy 122.11238 131.5295) (xy 122.112377 131.529501)\r\n\t\t\t\t(xy 122.088499 131.53227) (xy 121.99086 131.575383) (xy 121.915383 131.65086) (xy 121.872269 131.748501)\r\n\t\t\t\t(xy 121.872269 131.748502) (xy 121.8695 131.772372) (xy 121.8695 132.227619) (xy 121.869501 132.227622)\r\n\t\t\t\t(xy 121.87227 132.251502) (xy 121.874225 132.258687) (xy 121.873214 132.258961) (xy 121.8795 132.288757)\r\n\t\t\t\t(xy 121.8795 132.729159) (xy 121.860593 132.78735) (xy 121.811093 132.823314) (xy 121.761189 132.826257)\r\n\t\t\t\t(xy 121.72722 132.819501) (xy 121.727212 132.8195) (xy 121.727211 132.8195) (xy 121.727209 132.8195)\r\n\t\t\t\t(xy 121.532793 132.8195) (xy 121.532783 132.819501) (xy 121.467013 132.832583) (xy 121.467005 132.832586)\r\n\t\t\t\t(xy 121.466632 132.832836) (xy 121.465914 132.833038) (xy 121.459696 132.835613) (xy 121.456587 132.838723)\r\n\t\t\t\t(xy 121.431848 132.842641) (xy 121.407742 132.849437) (xy 121.402097 132.847353) (xy 121.396155 132.848295)\r\n\t\t\t\t(xy 121.37384 132.836925) (xy 121.350341 132.828253) (xy 121.341638 132.820518) (xy 121.269001 132.747882)\r\n\t\t\t\t(xy 121.269 132.747882) (xy 121.091625 132.570507) (xy 121.091625 132.570506) (xy 121.019793 132.498674)\r\n\t\t\t\t(xy 120.940965 132.466023) (xy 120.925942 132.4598) (xy 120.925941 132.4598) (xy 120.467085 132.4598)\r\n\t\t\t\t(xy 120.4142 132.4598) (xy 120.356009 132.440893) (xy 120.320045 132.391393) (xy 120.3152 132.3608)\r\n\t\t\t\t(xy 120.3152 129.467828) (xy 120.315201 129.467819) (xy 120.315201 129.354713) (xy 120.3152 129.354708)\r\n\t\t\t\t(xy 120.29728 129.311449) (xy 120.292184 129.299146) (xy 120.276326 129.26086) (xy 120.204494 129.189028)\r\n\t\t\t\t(xy 120.204492 129.189027) (xy 116.189499 125.174034) (xy 124.7995 125.174034) (xy 124.7995 125.425965)\r\n\t\t\t\t(xy 124.838908 125.67478) (xy 124.916759 125.914379) (xy 125.018275 126.113617) (xy 125.03113 126.138845)\r\n\t\t\t\t(xy 125.179207 126.342656) (xy 125.357344 126.520793) (xy 125.561155 126.66887) (xy 125.785621 126.783241)\r\n\t\t\t\t(xy 126.025215 126.86109) (xy 126.025216 126.86109) (xy 126.025219 126.861091) (xy 126.274035 126.9005)\r\n\t\t\t\t(xy 126.274038 126.9005) (xy 126.525965 126.9005) (xy 126.77478 126.861091) (xy 126.774781 126.86109)\r\n\t\t\t\t(xy 126.774785 126.86109) (xy 127.014379 126.783241) (xy 127.238845 126.66887) (xy 127.442656 126.520793)\r\n\t\t\t\t(xy 127.620793 126.342656) (xy 127.76887 126.138845) (xy 127.883241 125.914379) (xy 127.96109 125.674785)\r\n\t\t\t\t(xy 127.990143 125.491355) (xy 128.0005 125.425965) (xy 128.0005 125.174034) (xy 127.961091 124.925219)\r\n\t\t\t\t(xy 127.96109 124.925215) (xy 127.883241 124.685621) (xy 127.76887 124.461155) (xy 127.620793 124.257344)\r\n\t\t\t\t(xy 127.442656 124.079207) (xy 127.238845 123.93113) (xy 127.238844 123.931129) (xy 127.238842 123.931128)\r\n\t\t\t\t(xy 127.014379 123.816759) (xy 126.77478 123.738908) (xy 126.525965 123.6995) (xy 126.525962 123.6995)\r\n\t\t\t\t(xy 126.274038 123.6995) (xy 126.274035 123.6995) (xy 126.025219 123.738908) (xy 125.78562 123.816759)\r\n\t\t\t\t(xy 125.561157 123.931128) (xy 125.357345 124.079206) (xy 125.179206 124.257345) (xy 125.031128 124.461157)\r\n\t\t\t\t(xy 124.916759 124.68562) (xy 124.838908 124.925219) (xy 124.7995 125.174034) (xy 116.189499 125.174034)\r\n\t\t\t\t(xy 113.790972 122.775507) (xy 113.790972 122.775506) (xy 113.790971 122.775505) (xy 113.719143 122.703676)\r\n\t\t\t\t(xy 113.719141 122.703675) (xy 113.71914 122.703674) (xy 113.652776 122.676186) (xy 113.625289 122.6648)\r\n\t\t\t\t(xy 109.587828 122.6648) (xy 109.58782 122.664799) (xy 109.576297 122.664799) (xy 109.474711 122.664799)\r\n\t\t\t\t(xy 109.47471 122.664799) (xy 109.419734 122.687571) (xy 109.38086 122.703673) (xy 109.380859 122.703674)\r\n\t\t\t\t(xy 109.309027 122.775505) (xy 109.309028 122.775506) (xy 109.309027 122.775507) (xy 108.775507 123.309027)\r\n\t\t\t\t(xy 108.775506 123.309028) (xy 108.775505 123.309027) (xy 108.703673 123.38086) (xy 108.6648 123.47471)\r\n\t\t\t\t(xy 108.6648 123.615866) (xy 108.659418 123.648062) (xy 108.658423 123.650953) (xy 108.64465 123.684207)\r\n\t\t\t\t(xy 107.124069 123.684207) (xy 107.098258 123.621895) (xy 107.093457 123.560898) (xy 107.119716 123.514007)\r\n\t\t\t\t(xy 108.827328 121.806396) (xy 108.881845 121.778619) (xy 108.897332 121.7774) (xy 144.307569 121.7774)\r\n\t\t\t\t(xy 144.30757 121.7774) (xy 144.390799 121.742925) (xy 147.342925 118.7908) (xy 147.368337 118.729449)\r\n\t\t\t\t(xy 147.3774 118.70757) (xy 147.3774 112.258856) (xy 147.396307 112.200665) (xy 147.40639 112.188858)\r\n\t\t\t\t(xy 147.441975 112.153274) (xy 147.47645 112.070045) (xy 147.47645 111.979957) (xy 147.47645 111.884261)\r\n\t\t\t\t(xy 147.493135 111.829259) (xy 147.537417 111.762986) (xy 147.537417 111.762985) (xy 147.550499 111.697215)\r\n\t\t\t\t(xy 147.5505 111.697211) (xy 147.550499 110.70279) (xy 147.537417 110.637014) (xy 147.487577 110.562423)\r\n\t\t\t\t(xy 147.487237 110.562196) (xy 147.412986 110.512582) (xy 147.347212 110.4995) (xy 147.152793 110.4995)\r\n\t\t\t\t(xy 147.152783 110.499501) (xy 147.087013 110.512583) (xy 147.055001 110.533973) (xy 146.996113 110.550581)\r\n\t\t\t\t(xy 146.944999 110.533973) (xy 146.912985 110.512582) (xy 146.847212 110.4995) (xy 146.652793 110.4995)\r\n\t\t\t\t(xy 146.652783 110.499501) (xy 146.587013 110.512583) (xy 146.512425 110.562421) (xy 146.512421 110.562425)\r\n\t\t\t\t(xy 146.462582 110.637013) (xy 146.462582 110.637014) (xy 146.4495 110.702784) (xy 146.4495 111.697206)\r\n\t\t\t\t(xy 146.449501 111.697216) (xy 146.462583 111.762986) (xy 146.462583 111.762987) (xy 146.506865 111.829259)\r\n\t\t\t\t(xy 146.52355 111.884261) (xy 146.52355 112.070044) (xy 146.558023 112.153271) (xy 146.558024 112.153272)\r\n\t\t\t\t(xy 146.558025 112.153274) (xy 146.593605 112.188854) (xy 146.621381 112.243369) (xy 146.6226 112.258856)\r\n\t\t\t\t(xy 146.6226 118.402667) (xy 146.603693 118.460858) (xy 146.593604 118.472671) (xy 144.072672 120.993604)\r\n\t\t\t\t(xy 144.018155 121.021381) (xy 144.002668 121.0226) (xy 108.592428 121.0226) (xy 108.509203 121.057072)\r\n\t\t\t\t(xy 108.509201 121.057073) (xy 108.509201 121.057074) (xy 106.420777 123.145499) (xy 106.420776 123.145498)\r\n\t\t\t\t(xy 106.357074 123.209201) (xy 106.3226 123.29243) (xy 106.3226 123.554881) (xy 106.309846 123.596926)\r\n\t\t\t\t(xy 106.311756 123.597718) (xy 106.27355 123.689955) (xy 106.27355 123.833154) (xy 106.26191 123.871541)\r\n\t\t\t\t(xy 106.264863 123.8' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'72764) (xy 106.261132 123.881768) (xy 106.2495 123.940249) (xy 105.950499 123.940249)\r\n\t\t\t\t(xy 105.938867 123.881769) (xy 105.938867 123.881768) (xy 105.935137 123.872764) (xy 105.938089 123.871541)\r\n\t\t\t\t(xy 105.92645 123.833154) (xy 105.92645 123.689955) (xy 105.891975 123.606726) (xy 105.891974 123.606723)\r\n\t\t\t\t(xy 105.884935 123.589728) (xy 105.8774 123.551845) (xy 105.8774 122.497332) (xy 105.896307 122.439141)\r\n\t\t\t\t(xy 105.906396 122.427328) (xy 108.127329 120.206396) (xy 108.181846 120.178619) (xy 108.197333 120.1774)\r\n\t\t\t\t(xy 143.161045 120.1774) (xy 143.161046 120.1774) (xy 143.244275 120.142925) (xy 145.842926 117.544274)\r\n\t\t\t\t(xy 145.8774 117.461045) (xy 145.8774 117.370957) (xy 145.8774 112.258856) (xy 145.896307 112.200665)\r\n\t\t\t\t(xy 145.90639 112.188858) (xy 145.941975 112.153274) (xy 145.97645 112.070045) (xy 145.97645 111.979957)\r\n\t\t\t\t(xy 145.97645 111.884261) (xy 145.993135 111.829259) (xy 146.037417 111.762986) (xy 146.037417 111.762985)\r\n\t\t\t\t(xy 146.050499 111.697215) (xy 146.0505 111.697211) (xy 146.050499 110.70279) (xy 146.037417 110.637014)\r\n\t\t\t\t(xy 145.987577 110.562423) (xy 145.987237 110.562196) (xy 145.912986 110.512582) (xy 145.847212 110.4995)\r\n\t\t\t\t(xy 145.652793 110.4995) (xy 145.652783 110.499501) (xy 145.587013 110.512583) (xy 145.555001 110.533973)\r\n\t\t\t\t(xy 145.496113 110.550581) (xy 145.444999 110.533973) (xy 145.412985 110.512582) (xy 145.347212 110.4995)\r\n\t\t\t\t(xy 145.152793 110.4995) (xy 145.152783 110.499501) (xy 145.087013 110.512583) (xy 145.012425 110.562421)\r\n\t\t\t\t(xy 145.012421 110.562425) (xy 144.962582 110.637013) (xy 144.962582 110.637014) (xy 144.9495 110.702784)\r\n\t\t\t\t(xy 144.9495 111.697206) (xy 144.949501 111.697216) (xy 144.962583 111.762986) (xy 144.962583 111.762987)\r\n\t\t\t\t(xy 145.006865 111.829259) (xy 145.02355 111.884261) (xy 145.02355 112.070044) (xy 145.058023 112.153271)\r\n\t\t\t\t(xy 145.058024 112.153272) (xy 145.058025 112.153274) (xy 145.093605 112.188854) (xy 145.121381 112.243369)\r\n\t\t\t\t(xy 145.1226 112.258856) (xy 145.1226 117.156144) (xy 145.103693 117.214335) (xy 145.093604 117.226148)\r\n\t\t\t\t(xy 142.926148 119.393604) (xy 142.871631 119.421381) (xy 142.856144 119.4226) (xy 107.982519 119.4226)\r\n\t\t\t\t(xy 107.892431 119.4226) (xy 107.870692 119.431604) (xy 107.809204 119.457073) (xy 107.809202 119.457075)\r\n\t\t\t\t(xy 105.220777 122.045498) (xy 105.220777 122.045499) (xy 105.220776 122.045498) (xy 105.157074 122.109201)\r\n\t\t\t\t(xy 105.1226 122.19243) (xy 105.1226 123.554881) (xy 105.109846 123.596926) (xy 105.111756 123.597718)\r\n\t\t\t\t(xy 105.07355 123.689955) (xy 105.07355 123.833154) (xy 105.06191 123.871541) (xy 105.064863 123.872764)\r\n\t\t\t\t(xy 105.061132 123.881768) (xy 105.0495 123.940249) (xy 104.750499 123.940249) (xy 104.738867 123.881769)\r\n\t\t\t\t(xy 104.738867 123.881768) (xy 104.735137 123.872764) (xy 104.738089 123.871541) (xy 104.72645 123.833154)\r\n\t\t\t\t(xy 104.72645 123.689955) (xy 104.691975 123.606726) (xy 104.691974 123.606723) (xy 104.684935 123.589728)\r\n\t\t\t\t(xy 104.6774 123.551845) (xy 104.6774 121.497332) (xy 104.696307 121.439141) (xy 104.706396 121.427328)\r\n\t\t\t\t(xy 107.527329 118.606396) (xy 107.581846 118.578619) (xy 107.597333 118.5774) (xy 142.131045 118.5774)\r\n\t\t\t\t(xy 142.131046 118.5774) (xy 142.214275 118.542925) (xy 144.342925 116.414274) (xy 144.353404 116.388976)\r\n\t\t\t\t(xy 144.3774 116.331045) (xy 144.3774 112.258856) (xy 144.396307 112.200665) (xy 144.40639 112.188858)\r\n\t\t\t\t(xy 144.441975 112.153274) (xy 144.47645 112.070045) (xy 144.47645 111.979957) (xy 144.47645 111.884261)\r\n\t\t\t\t(xy 144.493135 111.829259) (xy 144.537417 111.762986) (xy 144.537417 111.762985) (xy 144.550499 111.697215)\r\n\t\t\t\t(xy 144.5505 111.697211) (xy 144.550499 110.70279) (xy 144.537417 110.637014) (xy 144.487577 110.562423)\r\n\t\t\t\t(xy 144.487237 110.562196) (xy 144.412986 110.512582) (xy 144.347212 110.4995) (xy 144.152793 110.4995)\r\n\t\t\t\t(xy 144.152783 110.499501) (xy 144.087013 110.512583) (xy 144.055001 110.533973) (xy 143.996113 110.550581)\r\n\t\t\t\t(xy 143.944999 110.533973) (xy 143.912985 110.512582) (xy 143.847212 110.4995) (xy 143.652793 110.4995)\r\n\t\t\t\t(xy 143.652783 110.499501) (xy 143.587013 110.512583) (xy 143.512425 110.562421) (xy 143.512421 110.562425)\r\n\t\t\t\t(xy 143.462582 110.637013) (xy 143.462582 110.637014) (xy 143.4495 110.702784) (xy 143.4495 111.697206)\r\n\t\t\t\t(xy 143.449501 111.697216) (xy 143.462583 111.762986) (xy 143.462583 111.762987) (xy 143.506865 111.829259)\r\n\t\t\t\t(xy 143.52355 111.884261) (xy 143.52355 112.070044) (xy 143.558023 112.153271) (xy 143.558024 112.153272)\r\n\t\t\t\t(xy 143.558025 112.153274) (xy 143.593605 112.188854) (xy 143.621381 112.243369) (xy 143.6226 112.258856)\r\n\t\t\t\t(xy 143.6226 116.026143) (xy 143.603693 116.084334) (xy 143.593604 116.096147) (xy 141.896148 117.793604)\r\n\t\t\t\t(xy 141.841631 117.821381) (xy 141.826144 117.8226) (xy 107.292429 117.8226) (xy 107.233576 117.846977)\r\n\t\t\t\t(xy 107.209203 117.857072) (xy 107.2092 117.857074) (xy 107.2092 117.857075) (xy 104.020777 121.045499)\r\n\t\t\t\t(xy 104.020776 121.045498) (xy 103.957074 121.109201) (xy 103.9226 121.19243) (xy 103.9226 123.554881)\r\n\t\t\t\t(xy 103.909846 123.596926) (xy 103.911756 123.597718) (xy 103.87355 123.689955) (xy 103.87355 123.833154)\r\n\t\t\t\t(xy 103.86191 123.871541) (xy 103.864863 123.872764) (xy 103.861132 123.881768) (xy 103.8495 123.940249)\r\n\t\t\t\t(xy 103.550499 123.940249) (xy 103.538867 123.881769) (xy 103.538867 123.881768) (xy 103.535137 123.872764)\r\n\t\t\t\t(xy 103.538089 123.871541) (xy 103.52645 123.833154) (xy 103.52645 123.689955) (xy 103.491975 123.606726)\r\n\t\t\t\t(xy 103.491974 123.606723) (xy 103.484935 123.589728) (xy 103.4774 123.551845) (xy 103.4774 118.097332)\r\n\t\t\t\t(xy 103.496307 118.039141) (xy 103.506396 118.027328) (xy 104.527329 117.006396) (xy 104.581846 116.978619)\r\n\t\t\t\t(xy 104.597333 116.9774) (xy 140.591044 116.9774) (xy 140.591045 116.9774) (xy 140.674274 116.942925)\r\n\t\t\t\t(xy 142.842925 114.774275) (xy 142.8774 114.691046) (xy 142.8774 114.600958) (xy 142.8774 112.258856)\r\n\t\t\t\t(xy 142.896307 112.200665) (xy 142.90639 112.188858) (xy 142.941975 112.153274) (xy 142.97645 112.070045)\r\n\t\t\t\t(xy 142.97645 111.979957) (xy 142.97645 111.884261) (xy 142.993135 111.829259) (xy 143.037417 111.762986)\r\n\t\t\t\t(xy 143.037417 111.762985) (xy 143.050499 111.697215) (xy 143.0505 111.697211) (xy 143.050499 110.70279)\r\n\t\t\t\t(xy 143.037417 110.637014) (xy 142.987577 110.562423) (xy 142.987237 110.562196) (xy 142.912986 110.512582)\r\n\t\t\t\t(xy 142.847212 110.4995) (xy 142.652793 110.4995) (xy 142.652783 110.499501) (xy 142.587013 110.512583)\r\n\t\t\t\t(xy 142.555001 110.533973) (xy 142.496113 110.550581) (xy 142.444999 110.533973) (xy 142.412985 110.512582)\r\n\t\t\t\t(xy 142.347212 110.4995) (xy 142.152793 110.4995) (xy 142.152783 110.499501) (xy 142.087013 110.512583)\r\n\t\t\t\t(xy 142.012425 110.562421) (xy 142.012421 110.562425) (xy 141.962582 110.637013) (xy 141.962582 110.637014)\r\n\t\t\t\t(xy 141.9495 110.702784) (xy 141.9495 111.697206) (xy 141.949501 111.697216) (xy 141.962583 111.762986)\r\n\t\t\t\t(xy 141.962583 111.762987) (xy 142.006865 111.829259) (xy 142.02355 111.884261) (xy 142.02355 112.070044)\r\n\t\t\t\t(xy 142.058023 112.153271) (xy 142.058024 112.153272) (xy 142.058025 112.153274) (xy 142.093605 112.188854)\r\n\t\t\t\t(xy 142.121381 112.243369) (xy 142.1226 112.258856) (xy 142.1226 114.386143) (xy 142.103693 114.444334)\r\n\t\t\t\t(xy 142.093604 114.456147) (xy 140.356148 116.193604) (xy 140.301631 116.221381) (xy 140.286144 116.2226)\r\n\t\t\t\t(xy 104.382518 116.2226) (xy 104.29243 116.2226) (xy 104.209201 116.257075) (xy 102.820777 117.6455)\r\n\t\t\t\t(xy 102.820776 117.645499) (xy 102.757074 117.709202) (xy 102.7226 117.792431) (xy 102.7226 123.554881)\r\n\t\t\t\t(xy 102.709846 123.596926) (xy 102.711756 123.597718) (xy 102.67355 123.689955) (xy 102.67355 123.833154)\r\n\t\t\t\t(xy 102.66191 123.871541) (xy 102.664863 123.872764) (xy 102.661132 123.881768) (xy 102.6495 123.940249)\r\n\t\t\t\t(xy 102.350499 123.940249) (xy 102.338867 123.881769) (xy 102.338867 123.881768) (xy 102.335137 123.872764)\r\n\t\t\t\t(xy 102.338089 123.871541) (xy 102.32645 123.833154) (xy 102.32645 123.689955) (xy 102.291975 123.606726)\r\n\t\t\t\t(xy 102.291974 123.606723) (xy 102.284935 123.589728) (xy 102.2774 123.551845) (xy 102.2774 116.297332)\r\n\t\t\t\t(xy 102.296307 116.239141) (xy 102.30' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'6396 116.227328) (xy 103.127329 115.406396) (xy 103.181846 115.378619)\r\n\t\t\t\t(xy 103.197333 115.3774) (xy 139.474093 115.3774) (xy 139.474094 115.3774) (xy 139.557323 115.342925)\r\n\t\t\t\t(xy 141.342925 113.557324) (xy 141.375152 113.47952) (xy 141.3774 113.474094) (xy 141.3774 112.258856)\r\n\t\t\t\t(xy 141.396307 112.200665) (xy 141.40639 112.188858) (xy 141.441975 112.153274) (xy 141.47645 112.070045)\r\n\t\t\t\t(xy 141.47645 111.979957) (xy 141.47645 111.884261) (xy 141.493135 111.829259) (xy 141.537417 111.762986)\r\n\t\t\t\t(xy 141.537417 111.762985) (xy 141.550499 111.697215) (xy 141.5505 111.697211) (xy 141.550499 110.70279)\r\n\t\t\t\t(xy 141.537417 110.637014) (xy 141.487577 110.562423) (xy 141.487237 110.562196) (xy 141.412986 110.512582)\r\n\t\t\t\t(xy 141.347212 110.4995) (xy 141.152793 110.4995) (xy 141.152783 110.499501) (xy 141.087013 110.512583)\r\n\t\t\t\t(xy 141.055001 110.533973) (xy 140.996113 110.550581) (xy 140.944999 110.533973) (xy 140.912985 110.512582)\r\n\t\t\t\t(xy 140.847212 110.4995) (xy 140.652793 110.4995) (xy 140.652783 110.499501) (xy 140.587013 110.512583)\r\n\t\t\t\t(xy 140.512425 110.562421) (xy 140.512421 110.562425) (xy 140.462582 110.637013) (xy 140.462582 110.637014)\r\n\t\t\t\t(xy 140.4495 110.702784) (xy 140.4495 111.697206) (xy 140.449501 111.697216) (xy 140.462583 111.762986)\r\n\t\t\t\t(xy 140.462583 111.762987) (xy 140.506865 111.829259) (xy 140.52355 111.884261) (xy 140.52355 112.070044)\r\n\t\t\t\t(xy 140.558023 112.153271) (xy 140.558024 112.153272) (xy 140.558025 112.153274) (xy 140.593605 112.188854)\r\n\t\t\t\t(xy 140.621381 112.243369) (xy 140.6226 112.258856) (xy 140.6226 113.169191) (xy 140.603693 113.227382)\r\n\t\t\t\t(xy 140.593604 113.239195) (xy 139.239196 114.593604) (xy 139.184679 114.621381) (xy 139.169192 114.6226)\r\n\t\t\t\t(xy 102.892429 114.6226) (xy 102.833576 114.646977) (xy 102.809203 114.657072) (xy 102.8092 114.657074)\r\n\t\t\t\t(xy 102.8092 114.657075) (xy 101.620777 115.8455) (xy 101.620776 115.845499) (xy 101.557074 115.909202)\r\n\t\t\t\t(xy 101.5226 115.992431) (xy 101.5226 123.554881) (xy 101.514677 123.593688) (xy 101.509935 123.604815)\r\n\t\t\t\t(xy 101.508025 123.606726) (xy 101.47355 123.689955) (xy 101.47355 123.69021) (xy 101.469514 123.699683)\r\n\t\t\t\t(xy 101.449725 123.722384) (xy 101.430163 123.745288) (xy 101.429654 123.74541) (xy 101.42931 123.745805)\r\n\t\t\t\t(xy 101.399992 123.752531) (xy 101.374612 123.758624) (xy 101.374612 123.7595) (xy 101.370965 123.7595)\r\n\t\t\t\t(xy 101.370669 123.759571) (xy 101.369868 123.7595) (xy 101.369748 123.7595) (xy 101.230252 123.7595)\r\n\t\t\t\t(xy 101.230251 123.7595) (xy 101.230241 123.759501) (xy 101.171772 123.771132) (xy 101.171767 123.771134)\r\n\t\t\t\t(xy 101.155001 123.782337) (xy 101.096113 123.798945) (xy 101.044999 123.782337) (xy 101.028232 123.771134)\r\n\t\t\t\t(xy 101.028233 123.771134) (xy 101.028231 123.771133) (xy 101.028228 123.771132) (xy 101.028227 123.771132)\r\n\t\t\t\t(xy 100.969758 123.759501) (xy 100.969748 123.7595) (xy 100.830252 123.7595) (xy 100.830251 123.7595)\r\n\t\t\t\t(xy 100.830241 123.759501) (xy 100.771772 123.771132) (xy 100.771767 123.771134) (xy 100.755001 123.782337)\r\n\t\t\t\t(xy 100.696113 123.798945) (xy 100.644999 123.782337) (xy 100.628232 123.771134) (xy 100.628233 123.771134)\r\n\t\t\t\t(xy 100.628231 123.771133) (xy 100.628228 123.771132) (xy 100.628227 123.771132) (xy 100.569758 123.759501)\r\n\t\t\t\t(xy 100.569748 123.7595) (xy 100.430252 123.7595) (xy 100.430251 123.7595) (xy 100.430241 123.759501)\r\n\t\t\t\t(xy 100.371772 123.771132) (xy 100.371767 123.771134) (xy 100.355001 123.782337) (xy 100.296113 123.798945)\r\n\t\t\t\t(xy 100.244999 123.782337) (xy 100.228232 123.771134) (xy 100.228233 123.771134) (xy 100.228231 123.771133)\r\n\t\t\t\t(xy 100.228228 123.771132) (xy 100.228227 123.771132) (xy 100.169758 123.759501) (xy 100.169748 123.7595)\r\n\t\t\t\t(xy 100.030252 123.7595) (xy 100.030251 123.7595) (xy 100.030241 123.759501) (xy 99.971772 123.771132)\r\n\t\t\t\t(xy 99.971767 123.771134) (xy 99.955001 123.782337) (xy 99.896113 123.798945) (xy 99.844999 123.782337)\r\n\t\t\t\t(xy 99.828232 123.771134) (xy 99.828233 123.771134) (xy 99.828231 123.771133) (xy 99.828228 123.771132)\r\n\t\t\t\t(xy 99.828227 123.771132) (xy 99.769758 123.759501) (xy 99.769748 123.7595) (xy 99.630252 123.7595)\r\n\t\t\t\t(xy 99.630251 123.7595) (xy 99.630241 123.759501) (xy 99.571772 123.771132) (xy 99.571767 123.771134)\r\n\t\t\t\t(xy 99.555001 123.782337) (xy 99.496113 123.798945) (xy 99.444999 123.782337) (xy 99.428232 123.771134)\r\n\t\t\t\t(xy 99.428233 123.771134) (xy 99.428231 123.771133) (xy 99.428228 123.771132) (xy 99.428227 123.771132)\r\n\t\t\t\t(xy 99.369758 123.759501) (xy 99.369748 123.7595) (xy 99.230252 123.7595) (xy 99.230251 123.7595)\r\n\t\t\t\t(xy 99.230241 123.759501) (xy 99.171772 123.771132) (xy 99.171766 123.771134) (xy 99.105451 123.815445)\r\n\t\t\t\t(xy 99.105445 123.815451) (xy 99.061134 123.881766) (xy 99.061132 123.881772) (xy 99.049501 123.940241)\r\n\t\t\t\t(xy 99.0495 123.940253) (xy 98.7505 123.940253) (xy 98.7505 123.940252) (xy 98.738867 123.881769)\r\n\t\t\t\t(xy 98.694552 123.815448) (xy 98.673549 123.801414) (xy 98.628233 123.771134) (xy 98.628231 123.771133)\r\n\t\t\t\t(xy 98.628228 123.771132) (xy 98.628227 123.771132) (xy 98.569758 123.759501) (xy 98.569748 123.7595)\r\n\t\t\t\t(xy 98.430252 123.7595) (xy 98.430251 123.7595) (xy 98.430241 123.759501) (xy 98.371772 123.771132)\r\n\t\t\t\t(xy 98.371767 123.771134) (xy 98.355001 123.782337) (xy 98.296113 123.798945) (xy 98.244999 123.782337)\r\n\t\t\t\t(xy 98.228232 123.771134) (xy 98.228233 123.771134) (xy 98.228231 123.771133) (xy 98.228228 123.771132)\r\n\t\t\t\t(xy 98.228227 123.771132) (xy 98.169758 123.759501) (xy 98.169748 123.7595) (xy 98.030252 123.7595)\r\n\t\t\t\t(xy 98.030251 123.7595) (xy 98.030241 123.759501) (xy 97.971772 123.771132) (xy 97.971766 123.771134)\r\n\t\t\t\t(xy 97.905451 123.815445) (xy 97.905445 123.815451) (xy 97.861134 123.881766) (xy 97.861132 123.881772)\r\n\t\t\t\t(xy 97.849501 123.940241) (xy 97.8495 123.940253) (xy 97.5505 123.940253) (xy 97.5505 123.940252)\r\n\t\t\t\t(xy 97.538867 123.881769) (xy 97.494552 123.815448) (xy 97.473549 123.801414) (xy 97.428233 123.771134)\r\n\t\t\t\t(xy 97.428231 123.771133) (xy 97.428228 123.771132) (xy 97.428227 123.771132) (xy 97.369758 123.759501)\r\n\t\t\t\t(xy 97.369748 123.7595) (xy 97.230252 123.7595) (xy 97.230251 123.7595) (xy 97.230241 123.759501)\r\n\t\t\t\t(xy 97.171772 123.771132) (xy 97.171767 123.771134) (xy 97.155001 123.782337) (xy 97.096113 123.798945)\r\n\t\t\t\t(xy 97.044999 123.782337) (xy 97.028232 123.771134) (xy 97.028233 123.771134) (xy 97.028231 123.771133)\r\n\t\t\t\t(xy 97.028228 123.771132) (xy 97.028227 123.771132) (xy 96.969758 123.759501) (xy 96.969748 123.7595)\r\n\t\t\t\t(xy 96.830252 123.7595) (xy 96.830251 123.7595) (xy 96.830241 123.759501) (xy 96.771772 123.771132)\r\n\t\t\t\t(xy 96.771766 123.771134) (xy 96.705451 123.815445) (xy 96.705445 123.815451) (xy 96.661134 123.881766)\r\n\t\t\t\t(xy 96.661132 123.881772) (xy 96.649501 123.940241) (xy 96.6495 123.940253) (xy 96.3505 123.940253)\r\n\t\t\t\t(xy 96.3505 123.940252) (xy 96.338867 123.881769) (xy 96.294552 123.815448) (xy 96.273549 123.801414)\r\n\t\t\t\t(xy 96.228233 123.771134) (xy 96.228231 123.771133) (xy 96.228228 123.771132) (xy 96.228227 123.771132)\r\n\t\t\t\t(xy 96.169758 123.759501) (xy 96.169748 123.7595) (xy 96.030252 123.7595) (xy 96.030251 123.7595)\r\n\t\t\t\t(xy 96.030241 123.759501) (xy 95.971772 123.771132) (xy 95.971767 123.771134) (xy 95.955001 123.782337)\r\n\t\t\t\t(xy 95.896113 123.798945) (xy 95.844999 123.782337) (xy 95.828232 123.771134) (xy 95.828233 123.771134)\r\n\t\t\t\t(xy 95.828231 123.771133) (xy 95.828228 123.771132) (xy 95.828227 123.771132) (xy 95.769758 123.759501)\r\n\t\t\t\t(xy 95.769748 123.7595) (xy 95.630252 123.7595) (xy 95.630251 123.7595) (xy 95.630241 123.759501)\r\n\t\t\t\t(xy 95.571772 123.771132) (xy 95.571766 123.771134) (xy 95.505451 123.815445) (xy 95.505445 123.815451)\r\n\t\t\t\t(xy 95.461134 123.881766) (xy 95.461132 123.881772) (xy 95.449501 123.940241) (xy 95.4495 123.940253)\r\n\t\t\t\t(xy 95.1505 123.940253) (xy 95.1505 123.940252) (xy 95.138867 123.881769) (xy 95.094552 123.815448)\r\n\t\t\t\t(xy 95.073549 123.801414) (xy 95.028233 123.771134) (xy 95.028231 123.771133) (xy 95.028228 123.771132)\r\n\t\t\t\t(xy 95.028227 123.771132) (xy 94.969758 123.759501) (xy 94.969748 123.7595) (xy 94.830252 123.7595)\r\n\t\t\t\t(xy 94.830251 123.7595) (xy 94.830241 123.759501) (xy 94.771772 123.771132) ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(xy 94.771767 123.771134)\r\n\t\t\t\t(xy 94.755001 123.782337) (xy 94.696113 123.798945) (xy 94.644999 123.782337) (xy 94.628232 123.771134)\r\n\t\t\t\t(xy 94.628233 123.771134) (xy 94.628231 123.771133) (xy 94.628228 123.771132) (xy 94.628227 123.771132)\r\n\t\t\t\t(xy 94.569758 123.759501) (xy 94.569748 123.7595) (xy 94.430252 123.7595) (xy 94.430251 123.7595)\r\n\t\t\t\t(xy 94.430241 123.759501) (xy 94.371772 123.771132) (xy 94.371766 123.771134) (xy 94.305451 123.815445)\r\n\t\t\t\t(xy 94.305445 123.815451) (xy 94.261134 123.881766) (xy 94.261132 123.881772) (xy 94.249501 123.940241)\r\n\t\t\t\t(xy 94.2495 123.940253) (xy 93.9505 123.940253) (xy 93.9505 123.940252) (xy 93.938867 123.881769)\r\n\t\t\t\t(xy 93.894552 123.815448) (xy 93.873549 123.801414) (xy 93.828233 123.771134) (xy 93.828231 123.771133)\r\n\t\t\t\t(xy 93.828228 123.771132) (xy 93.828227 123.771132) (xy 93.769758 123.759501) (xy 93.769748 123.7595)\r\n\t\t\t\t(xy 93.630252 123.7595) (xy 93.630251 123.7595) (xy 93.630241 123.759501) (xy 93.571772 123.771132)\r\n\t\t\t\t(xy 93.571767 123.771134) (xy 93.555001 123.782337) (xy 93.496113 123.798945) (xy 93.444999 123.782337)\r\n\t\t\t\t(xy 93.428232 123.771134) (xy 93.428233 123.771134) (xy 93.428231 123.771133) (xy 93.428228 123.771132)\r\n\t\t\t\t(xy 93.428227 123.771132) (xy 93.369758 123.759501) (xy 93.369748 123.7595) (xy 93.230252 123.7595)\r\n\t\t\t\t(xy 93.230251 123.7595) (xy 93.230241 123.759501) (xy 93.171772 123.771132) (xy 93.171766 123.771134)\r\n\t\t\t\t(xy 93.105451 123.815445) (xy 93.105445 123.815451) (xy 93.061134 123.881766) (xy 93.061132 123.881772)\r\n\t\t\t\t(xy 93.049501 123.940241) (xy 93.0495 123.940253) (xy 92.7505 123.940253) (xy 92.7505 123.940252)\r\n\t\t\t\t(xy 92.738867 123.881769) (xy 92.694552 123.815448) (xy 92.673549 123.801414) (xy 92.628233 123.771134)\r\n\t\t\t\t(xy 92.628231 123.771133) (xy 92.628228 123.771132) (xy 92.628227 123.771132) (xy 92.569758 123.759501)\r\n\t\t\t\t(xy 92.569748 123.7595) (xy 92.430252 123.7595) (xy 92.430251 123.7595) (xy 92.430241 123.759501)\r\n\t\t\t\t(xy 92.371772 123.771132) (xy 92.371767 123.771134) (xy 92.355001 123.782337) (xy 92.296113 123.798945)\r\n\t\t\t\t(xy 92.244999 123.782337) (xy 92.228232 123.771134) (xy 92.228233 123.771134) (xy 92.228231 123.771133)\r\n\t\t\t\t(xy 92.228228 123.771132) (xy 92.228227 123.771132) (xy 92.169758 123.759501) (xy 92.169748 123.7595)\r\n\t\t\t\t(xy 92.030252 123.7595) (xy 92.030251 123.7595) (xy 92.030241 123.759501) (xy 91.971772 123.771132)\r\n\t\t\t\t(xy 91.971766 123.771134) (xy 91.905451 123.815445) (xy 91.905445 123.815451) (xy 91.861134 123.881766)\r\n\t\t\t\t(xy 91.861132 123.881772) (xy 91.849501 123.940241) (xy 91.8495 123.940253) (xy 91.5505 123.940253)\r\n\t\t\t\t(xy 91.5505 123.940252) (xy 91.538867 123.881769) (xy 91.494552 123.815448) (xy 91.473549 123.801414)\r\n\t\t\t\t(xy 91.428233 123.771134) (xy 91.428231 123.771133) (xy 91.428228 123.771132) (xy 91.428227 123.771132)\r\n\t\t\t\t(xy 91.369758 123.759501) (xy 91.369748 123.7595) (xy 91.230252 123.7595) (xy 91.230251 123.7595)\r\n\t\t\t\t(xy 91.230241 123.759501) (xy 91.171772 123.771132) (xy 91.171767 123.771134) (xy 91.155001 123.782337)\r\n\t\t\t\t(xy 91.096113 123.798945) (xy 91.044999 123.782337) (xy 91.028232 123.771134) (xy 91.028233 123.771134)\r\n\t\t\t\t(xy 91.028231 123.771133) (xy 91.028228 123.771132) (xy 91.028227 123.771132) (xy 90.969758 123.759501)\r\n\t\t\t\t(xy 90.969748 123.7595) (xy 90.830252 123.7595) (xy 90.830251 123.7595) (xy 90.830241 123.759501)\r\n\t\t\t\t(xy 90.771772 123.771132) (xy 90.771766 123.771134) (xy 90.705451 123.815445) (xy 90.705445 123.815451)\r\n\t\t\t\t(xy 90.661134 123.881766) (xy 90.661132 123.881772) (xy 90.649501 123.940241) (xy 90.6495 123.940253)\r\n\t\t\t\t(xy 90.3505 123.940253) (xy 90.3505 123.940252) (xy 90.338867 123.881769) (xy 90.294552 123.815448)\r\n\t\t\t\t(xy 90.273549 123.801414) (xy 90.228233 123.771134) (xy 90.228231 123.771133) (xy 90.228228 123.771132)\r\n\t\t\t\t(xy 90.228227 123.771132) (xy 90.169758 123.759501) (xy 90.169748 123.7595) (xy 90.030252 123.7595)\r\n\t\t\t\t(xy 90.030251 123.7595) (xy 90.030241 123.759501) (xy 89.971772 123.771132) (xy 89.971766 123.771134)\r\n\t\t\t\t(xy 89.905451 123.815445) (xy 89.905445 123.815451) (xy 89.861134 123.881766) (xy 89.861132 123.881772)\r\n\t\t\t\t(xy 89.849501 123.940241) (xy 89.8495 123.940253) (xy 79.251402 123.940253) (xy 79.238845 123.93113)\r\n\t\t\t\t(xy 79.238844 123.931129) (xy 79.238842 123.931128) (xy 79.014379 123.816759) (xy 78.77478 123.738908)\r\n\t\t\t\t(xy 78.525965 123.6995) (xy 78.525962 123.6995) (xy 78.274038 123.6995) (xy 78.274035 123.6995)\r\n\t\t\t\t(xy 78.025219 123.738908) (xy 77.78562 123.816759) (xy 77.561157 123.931128) (xy 77.357345 124.079206)\r\n\t\t\t\t(xy 77.179206 124.257345) (xy 77.031128 124.461157) (xy 76.916759 124.68562) (xy 76.838908 124.925219)\r\n\t\t\t\t(xy 76.7995 125.174034) (xy 74.0005 125.174034) (xy 74.0005 113.740691) (xy 89.8495 113.740691)\r\n\t\t\t\t(xy 89.8495 113.859309) (xy 89.876574 113.960351) (xy 89.880202 113.97389) (xy 89.939507 114.076608)\r\n\t\t\t\t(xy 89.939509 114.07661) (xy 89.939511 114.076613) (xy 90.023387 114.160489) (xy 90.023389 114.16049)\r\n\t\t\t\t(xy 90.023391 114.160492) (xy 90.12611 114.219797) (xy 90.126111 114.219797) (xy 90.126114 114.219799)\r\n\t\t\t\t(xy 90.240691 114.2505) (xy 90.240693 114.2505) (xy 90.359307 114.2505) (xy 90.359309 114.2505)\r\n\t\t\t\t(xy 90.473886 114.219799) (xy 90.473888 114.219797) (xy 90.47389 114.219797) (xy 90.576608 114.160492)\r\n\t\t\t\t(xy 90.576608 114.160491) (xy 90.576613 114.160489) (xy 90.660489 114.076613) (xy 90.719799 113.973886)\r\n\t\t\t\t(xy 90.7505 113.859309) (xy 90.7505 113.740691) (xy 90.719799 113.626114) (xy 90.719797 113.626111)\r\n\t\t\t\t(xy 90.719797 113.626109) (xy 90.660492 113.523391) (xy 90.66049 113.523389) (xy 90.660489 113.523387)\r\n\t\t\t\t(xy 90.576613 113.439511) (xy 90.57661 113.439509) (xy 90.576608 113.439507) (xy 90.473889 113.380202)\r\n\t\t\t\t(xy 90.47389 113.380202) (xy 90.460351 113.376574) (xy 90.359309 113.3495) (xy 90.240691 113.3495)\r\n\t\t\t\t(xy 90.170567 113.368289) (xy 90.126109 113.380202) (xy 90.023391 113.439507) (xy 89.939507 113.523391)\r\n\t\t\t\t(xy 89.880202 113.626109) (xy 89.880201 113.626114) (xy 89.8495 113.740691) (xy 74.0005 113.740691)\r\n\t\t\t\t(xy 74.0005 112.790691) (xy 95.4995 112.790691) (xy 95.4995 112.909309) (xy 95.503408 112.923892)\r\n\t\t\t\t(xy 95.530202 113.02389) (xy 95.589507 113.126608) (xy 95.589509 113.12661) (xy 95.589511 113.126613)\r\n\t\t\t\t(xy 95.673387 113.210489) (xy 95.673389 113.21049) (xy 95.673391 113.210492) (xy 95.77611 113.269797)\r\n\t\t\t\t(xy 95.776111 113.269797) (xy 95.776114 113.269799) (xy 95.890691 113.3005) (xy 95.890693 113.3005)\r\n\t\t\t\t(xy 96.009307 113.3005) (xy 96.009309 113.3005) (xy 96.123886 113.269799) (xy 96.123888 113.269797)\r\n\t\t\t\t(xy 96.12389 113.269797) (xy 96.226608 113.210492) (xy 96.226608 113.210491) (xy 96.226613 113.210489)\r\n\t\t\t\t(xy 96.310489 113.126613) (xy 96.310492 113.126608) (xy 96.369797 113.02389) (xy 96.369797 113.023888)\r\n\t\t\t\t(xy 96.369799 113.023886) (xy 96.4005 112.909309) (xy 96.4005 112.790691) (xy 96.369799 112.676114)\r\n\t\t\t\t(xy 96.31813 112.586622) (xy 135.9695 112.586622) (xy 135.9695 113.013369) (xy 135.969501 113.013372)\r\n\t\t\t\t(xy 135.972317 113.037661) (xy 135.996816 113.093146) (xy 136.016187 113.137016) (xy 136.092984 113.213813)\r\n\t\t\t\t(xy 136.192338 113.257682) (xy 136.216627 113.2605) (xy 136.583372 113.260499) (xy 136.607662 113.257682)\r\n\t\t\t\t(xy 136.707016 113.213813) (xy 136.783813 113.137016) (xy 136.827682 113.037662) (xy 136.8305 113.013373)\r\n\t\t\t\t(xy 136.830499 112.586628) (xy 136.827682 112.562338) (xy 136.783813 112.462984) (xy 136.707016 112.386187)\r\n\t\t\t\t(xy 136.707014 112.386186) (xy 136.707012 112.386184) (xy 136.699446 112.381001) (xy 136.7006 112.379315)\r\n\t\t\t\t(xy 136.690287 112.370085) (xy 136.669407 112.354915) (xy 136.667796 112.349958) (xy 136.663915 112.346485)\r\n\t\t\t\t(xy 136.6505 112.296724) (xy 136.6505 112.194768) (xy 136.669407 112.136577) (xy 136.679496 112.124765)\r\n\t\t\t\t(xy 136.927553 111.876707) (xy 136.98207 111.848929) (xy 137.042502 111.8585) (xy 137.052574 111.864405)\r\n\t\t\t\t(xy 137.053512 111.865032) (xy 137.091382 111.913088) (xy 137.093773 111.974227) (xy 137.077043 112.007596)\r\n\t\t\t\t(xy 137.075601 112.009474) (xy 137.016291 112.112201) (xy 136.999126 112.176261) (xy 136.985589 112.226783)\r\n\t\t\t\t(xy 136.985589 112.345401) (xy 137.012663 112.446443) (xy 137.016291 112.459982) (xy 137.075596 112.5627)\r\n\t\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t(xy 137.075598 112.562702) (xy 137.0756 112.562705) (xy 137.159476 112.646581) (xy 137.159478 112.646582)\r\n\t\t\t\t(xy 137.15948 112.646584) (xy 137.262199 112.705889) (xy 137.2622 112.705889) (xy 137.262203 112.705891)\r\n\t\t\t\t(xy 137.37678 112.736592) (xy 137.376782 112.736592) (xy 137.495396 112.736592) (xy 137.495398 112.736592)\r\n\t\t\t\t(xy 137.609975 112.705891) (xy 137.609977 112.705889) (xy 137.609979 112.705889) (xy 137.712697 112.646584)\r\n\t\t\t\t(xy 137.712697 112.646583) (xy 137.712702 112.646581) (xy 137.741089 112.618193) (xy 137.795602 112.590418)\r\n\t\t\t\t(xy 137.856034 112.599989) (xy 137.88109 112.618192) (xy 137.923387 112.660489) (xy 137.923389 112.66049)\r\n\t\t\t\t(xy 137.923391 112.660492) (xy 138.02611 112.719797) (xy 138.026111 112.719797) (xy 138.026114 112.719799)\r\n\t\t\t\t(xy 138.140691 112.7505) (xy 138.140693 112.7505) (xy 138.257778 112.7505) (xy 138.315969 112.769407)\r\n\t\t\t\t(xy 138.351933 112.818907) (xy 138.353401 112.823865) (xy 138.380203 112.923888) (xy 138.380204 112.92389)\r\n\t\t\t\t(xy 138.380205 112.923893) (xy 138.439509 113.02661) (xy 138.439511 113.026612) (xy 138.439513 113.026615)\r\n\t\t\t\t(xy 138.523389 113.110491) (xy 138.523391 113.110492) (xy 138.523393 113.110494) (xy 138.626112 113.169799)\r\n\t\t\t\t(xy 138.626113 113.169799) (xy 138.626116 113.169801) (xy 138.740693 113.200502) (xy 138.740695 113.200502)\r\n\t\t\t\t(xy 138.859309 113.200502) (xy 138.859311 113.200502) (xy 138.973888 113.169801) (xy 138.97389 113.169799)\r\n\t\t\t\t(xy 138.973892 113.169799) (xy 139.07661 113.110494) (xy 139.07661 113.110493) (xy 139.076615 113.110491)\r\n\t\t\t\t(xy 139.160491 113.026615) (xy 139.219801 112.923888) (xy 139.250502 112.809311) (xy 139.250502 112.69477)\r\n\t\t\t\t(xy 139.269409 112.636579) (xy 139.279498 112.624766) (xy 139.599419 112.304845) (xy 139.962364 111.941901)\r\n\t\t\t\t(xy 140.0005 111.849832) (xy 140.0005 111.848267) (xy 140.001405 111.845283) (xy 140.002402 111.840271)\r\n\t\t\t\t(xy 140.002895 111.840369) (xy 140.017185 111.793265) (xy 140.037416 111.762987) (xy 140.037417 111.762986)\r\n\t\t\t\t(xy 140.0505 111.697211) (xy 140.050499 110.70279) (xy 140.037417 110.637014) (xy 139.987577 110.562423)\r\n\t\t\t\t(xy 139.987237 110.562196) (xy 139.912986 110.512582) (xy 139.847212 110.4995) (xy 139.652793 110.4995)\r\n\t\t\t\t(xy 139.652783 110.499501) (xy 139.587013 110.512583) (xy 139.555001 110.533973) (xy 139.496113 110.550581)\r\n\t\t\t\t(xy 139.444999 110.533973) (xy 139.412985 110.512582) (xy 139.347212 110.4995) (xy 139.152793 110.4995)\r\n\t\t\t\t(xy 139.152783 110.499501) (xy 139.087013 110.512583) (xy 139.012425 110.562421) (xy 139.012421 110.562425)\r\n\t\t\t\t(xy 138.962582 110.637013) (xy 138.962582 110.637014) (xy 138.9495 110.702784) (xy 138.9495 111.697206)\r\n\t\t\t\t(xy 138.949501 111.697216) (xy 138.962583 111.762985) (xy 138.962583 111.762986) (xy 139.012423 111.837577)\r\n\t\t\t\t(xy 139.087014 111.887417) (xy 139.089941 111.887999) (xy 139.09427 111.890422) (xy 139.096023 111.891149)\r\n\t\t\t\t(xy 139.095937 111.891356) (xy 139.143328 111.917891) (xy 139.168948 111.973454) (xy 139.157016 112.033465)\r\n\t\t\t\t(xy 139.140639 112.055101) (xy 138.925236 112.270505) (xy 138.918119 112.274131) (xy 138.913423 112.280595)\r\n\t\t\t\t(xy 138.891372 112.287759) (xy 138.870719 112.298283) (xy 138.855232 112.299502) (xy 138.742224 112.299502)\r\n\t\t\t\t(xy 138.684033 112.280595) (xy 138.648069 112.231095) (xy 138.646597 112.226126) (xy 138.644379 112.217849)\r\n\t\t\t\t(xy 138.619799 112.126114) (xy 138.619796 112.126108) (xy 138.560492 112.023391) (xy 138.560491 112.02339)\r\n\t\t\t\t(xy 138.56049 112.023389) (xy 138.560489 112.023387) (xy 138.529495 111.992393) (xy 138.525868 111.985275)\r\n\t\t\t\t(xy 138.519407 111.980581) (xy 138.512242 111.958531) (xy 138.501719 111.937876) (xy 138.5005 111.92239)\r\n\t\t\t\t(xy 138.5005 111.848267) (xy 138.517185 111.793265) (xy 138.537416 111.762987) (xy 138.537417 111.762986)\r\n\t\t\t\t(xy 138.5505 111.697211) (xy 138.550499 110.70279) (xy 138.537417 110.637014) (xy 138.487577 110.562423)\r\n\t\t\t\t(xy 138.487237 110.562196) (xy 138.412986 110.512582) (xy 138.347212 110.4995) (xy 138.152793 110.4995)\r\n\t\t\t\t(xy 138.152783 110.499501) (xy 138.087013 110.512583) (xy 138.055001 110.533973) (xy 137.996113 110.550581)\r\n\t\t\t\t(xy 137.944999 110.533973) (xy 137.912985 110.512582) (xy 137.847215 110.4995) (xy 137.661013 110.4995)\r\n\t\t\t\t(xy 137.602822 110.480593) (xy 137.566858 110.431093) (xy 137.566858 110.369907) (xy 137.575277 110.350999)\r\n\t\t\t\t(xy 137.619799 110.273886) (xy 137.6505 110.159309) (xy 137.6505 110.040691) (xy 137.619799 109.926114)\r\n\t\t\t\t(xy 137.619797 109.926111) (xy 137.619797 109.926109) (xy 137.560492 109.823391) (xy 137.56049 109.823389)\r\n\t\t\t\t(xy 137.560489 109.823387) (xy 137.476613 109.739511) (xy 137.47661 109.739509) (xy 137.476608 109.739507)\r\n\t\t\t\t(xy 137.373889 109.680202) (xy 137.37389 109.680202) (xy 137.360351 109.676574) (xy 137.259309 109.6495)\r\n\t\t\t\t(xy 137.140691 109.6495) (xy 137.070567 109.668289) (xy 137.026109 109.680202) (xy 136.923391 109.739507)\r\n\t\t\t\t(xy 136.839507 109.823391) (xy 136.780202 109.926109) (xy 136.780201 109.926114) (xy 136.7495 110.040691)\r\n\t\t\t\t(xy 136.7495 110.159309) (xy 136.776574 110.260351) (xy 136.780202 110.27389) (xy 136.839507 110.376608)\r\n\t\t\t\t(xy 136.839509 110.37661) (xy 136.839511 110.376613) (xy 136.923387 110.460489) (xy 136.945246 110.473109)\r\n\t\t\t\t(xy 136.986187 110.518579) (xy 136.992583 110.579429) (xy 136.978063 110.613845) (xy 136.962582 110.637014)\r\n\t\t\t\t(xy 136.9495 110.702784) (xy 136.9495 111.105231) (xy 136.930593 111.163422) (xy 136.920504 111.175234)\r\n\t\t\t\t(xy 136.258103 111.837635) (xy 136.258103 111.837636) (xy 136.258102 111.837635) (xy 136.187635 111.908103)\r\n\t\t\t\t(xy 136.1495 112.000171) (xy 136.1495 112.296724) (xy 136.130593 112.354915) (xy 136.099743 112.379817)\r\n\t\t\t\t(xy 136.100554 112.381001) (xy 136.092987 112.386184) (xy 136.016187 112.462984) (xy 135.972317 112.56234)\r\n\t\t\t\t(xy 135.9695 112.586622) (xy 96.31813 112.586622) (xy 96.310489 112.573387) (xy 96.226613 112.489511)\r\n\t\t\t\t(xy 96.22661 112.489509) (xy 96.226608 112.489507) (xy 96.123889 112.430202) (xy 96.12389 112.430202)\r\n\t\t\t\t(xy 96.110351 112.426574) (xy 96.009309 112.3995) (xy 95.890691 112.3995) (xy 95.820567 112.418289)\r\n\t\t\t\t(xy 95.776109 112.430202) (xy 95.673391 112.489507) (xy 95.589507 112.573391) (xy 95.530202 112.676109)\r\n\t\t\t\t(xy 95.516745 112.726332) (xy 95.4995 112.790691) (xy 74.0005 112.790691) (xy 74.0005 112.399) (xy 74.019407 112.340809)\r\n\t\t\t\t(xy 74.068907 112.304845) (xy 74.0995 112.3) (xy 82.899999 112.3) (xy 82.9 112.3) (xy 82.9 110.840691)\r\n\t\t\t\t(xy 93.8495 110.840691) (xy 93.8495 110.959309) (xy 93.8738 111.049998) (xy 93.880202 111.07389)\r\n\t\t\t\t(xy 93.939507 111.176608) (xy 93.939509 111.17661) (xy 93.939511 111.176613) (xy 94.023387 111.260489)\r\n\t\t\t\t(xy 94.023389 111.26049) (xy 94.023391 111.260492) (xy 94.12611 111.319797) (xy 94.126111 111.319797)\r\n\t\t\t\t(xy 94.126114 111.319799) (xy 94.240691 111.3505) (xy 94.240693 111.3505) (xy 94.359307 111.3505)\r\n\t\t\t\t(xy 94.359309 111.3505) (xy 94.473886 111.319799) (xy 94.473888 111.319797) (xy 94.47389 111.319797)\r\n\t\t\t\t(xy 94.576608 111.260492) (xy 94.576608 111.260491) (xy 94.576613 111.260489) (xy 94.660489 111.176613)\r\n\t\t\t\t(xy 94.678026 111.146239) (xy 94.719797 111.07389) (xy 94.719797 111.073888) (xy 94.719799 111.073886)\r\n\t\t\t\t(xy 94.7505 110.959309) (xy 94.7505 110.840691) (xy 94.719799 110.726114) (xy 94.719797 110.726111)\r\n\t\t\t\t(xy 94.719797 110.726109) (xy 94.660492 110.623391) (xy 94.66049 110.623389) (xy 94.660489 110.623387)\r\n\t\t\t\t(xy 94.576613 110.539511) (xy 94.57661 110.539509) (xy 94.576608 110.539507) (xy 94.473889 110.480202)\r\n\t\t\t\t(xy 94.47389 110.480202) (xy 94.447418 110.473109) (xy 94.359309 110.4495) (xy 94.240691 110.4495)\r\n\t\t\t\t(xy 94.170567 110.468289) (xy 94.126109 110.480202) (xy 94.023391 110.539507) (xy 93.939507 110.623391)\r\n\t\t\t\t(xy 93.880202 110.726109) (xy 93.880201 110.726114) (xy 93.8495 110.840691) (xy 82.9 110.840691)\r\n\t\t\t\t(xy 82.9 109.45) (xy 133.7945 109.45) (xy 133.7945 111.05) (xy 133.815333 111.12775) (xy 133.87225 111.184667)\r\n\t\t\t\t(xy 133.95 111.2055) (xy 133.950002 111.2055) (xy 136.049998 111.2055) (xy 136.05 111.2055) (xy 136.12775 111.184667)\r\n\t\t\t\t(xy 136.184667 111.12775) (xy 136.2055 111.05) (xy 136.2055 109.1) (xy 148.7945 109.1) (xy 148.7945 111.05)\r\n\t\t\t\t(xy 14' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'8.815333 111.12775) (xy 148.87225 111.184667) (xy 148.95 111.2055) (xy 148.950002 111.2055)\r\n\t\t\t\t(xy 151.049998 111.2055) (xy 151.05 111.2055) (xy 151.12775 111.184667) (xy 151.184667 111.12775)\r\n\t\t\t\t(xy 151.2055 111.05) (xy 151.2055 109.45) (xy 151.184667 109.37225) (xy 151.12775 109.315333) (xy 151.05 109.2945)\r\n\t\t\t\t(xy 151.049998 109.2945) (xy 150.5045 109.2945) (xy 150.446309 109.275593) (xy 150.410345 109.226093)\r\n\t\t\t\t(xy 150.4055 109.1955) (xy 150.4055 109.100001) (xy 150.4055 109.1) (xy 150.384667 109.02225) (xy 150.32775 108.965333)\r\n\t\t\t\t(xy 150.25 108.9445) (xy 148.95 108.9445) (xy 148.87225 108.965333) (xy 148.815333 109.02225) (xy 148.7945 109.1)\r\n\t\t\t\t(xy 136.2055 109.1) (xy 136.184667 109.02225) (xy 136.12775 108.965333) (xy 136.05 108.9445) (xy 134.75 108.9445)\r\n\t\t\t\t(xy 134.67225 108.965333) (xy 134.615333 109.02225) (xy 134.5945 109.100001) (xy 134.5945 109.1955)\r\n\t\t\t\t(xy 134.575593 109.253691) (xy 134.526093 109.289655) (xy 134.4955 109.2945) (xy 133.95 109.2945)\r\n\t\t\t\t(xy 133.87225 109.315333) (xy 133.815333 109.37225) (xy 133.7945 109.45) (xy 82.9 109.45) (xy 82.9 100.818912)\r\n\t\t\t\t(xy 137.25 100.818912) (xy 137.25 101.081087) (xy 137.28422 101.34101) (xy 137.28422 101.341015)\r\n\t\t\t\t(xy 137.352075 101.594255) (xy 137.352078 101.594262) (xy 137.452403 101.83647) (xy 137.583492 102.063522)\r\n\t\t\t\t(xy 137.670079 102.176364) (xy 138.534152 101.312291) (xy 138.541049 101.328942) (xy 138.628599 101.45997)\r\n\t\t\t\t(xy 138.74003 101.571401) (xy 138.871058 101.658951) (xy 138.887705 101.665846) (xy 138.023633 102.529919)\r\n\t\t\t\t(xy 138.136477 102.616507) (xy 138.363529 102.747596) (xy 138.605737 102.847921) (xy 138.605744 102.847924)\r\n\t\t\t\t(xy 138.858986 102.915779) (xy 139.118912 102.949999) (xy 139.118914 102.95) (xy 139.381086 102.95)\r\n\t\t\t\t(xy 139.381087 102.949999) (xy 139.64101 102.915779) (xy 139.641015 102.915779) (xy 139.894255 102.847924)\r\n\t\t\t\t(xy 139.894262 102.847921) (xy 140.13647 102.747596) (xy 140.363532 102.616501) (xy 140.476365 102.529919)\r\n\t\t\t\t(xy 140.476365 102.529918) (xy 139.612293 101.665846) (xy 139.628942 101.658951) (xy 139.75997 101.571401)\r\n\t\t\t\t(xy 139.871401 101.45997) (xy 139.958951 101.328942) (xy 139.965847 101.312293) (xy 140.829918 102.176365)\r\n\t\t\t\t(xy 140.829919 102.176365) (xy 140.916501 102.063532) (xy 141.047596 101.83647) (xy 141.147921 101.594262)\r\n\t\t\t\t(xy 141.147924 101.594255) (xy 141.215779 101.341015) (xy 141.215779 101.34101) (xy 141.249999 101.081087)\r\n\t\t\t\t(xy 141.25 101.081086) (xy 141.25 100.818914) (xy 141.249999 100.818912) (xy 141.227119 100.645118)\r\n\t\t\t\t(xy 141.238269 100.584958) (xy 141.282651 100.54284) (xy 141.343313 100.534854) (xy 141.374772 100.54646)\r\n\t\t\t\t(xy 141.468706 100.600693) (xy 141.468711 100.600696) (xy 141.598981 100.654655) (xy 141.695847 100.694778)\r\n\t\t\t\t(xy 141.933323 100.758409) (xy 142.177073 100.7905) (xy 142.177074 100.7905) (xy 142.422926 100.7905)\r\n\t\t\t\t(xy 142.422927 100.7905) (xy 142.666677 100.758409) (xy 142.904153 100.694778) (xy 143.131292 100.600694)\r\n\t\t\t\t(xy 143.344208 100.477767) (xy 143.539256 100.328101) (xy 143.656773 100.210583) (xy 143.711288 100.182807)\r\n\t\t\t\t(xy 143.77172 100.192378) (xy 143.814984 100.235643) (xy 143.823872 100.261272) (xy 143.829868 100.291412)\r\n\t\t\t\t(xy 143.829869 100.291417) (xy 143.829869 100.291418) (xy 143.82987 100.29142) (xy 143.835803 100.305744)\r\n\t\t\t\t(xy 143.909058 100.482597) (xy 144.02402 100.654651) (xy 144.024023 100.654655) (xy 144.170345 100.800977)\r\n\t\t\t\t(xy 144.342402 100.915941) (xy 144.53358 100.99513) (xy 144.736535 101.0355) (xy 144.736536 101.0355)\r\n\t\t\t\t(xy 144.943464 101.0355) (xy 144.943465 101.0355) (xy 145.14642 100.99513) (xy 145.337598 100.915941)\r\n\t\t\t\t(xy 145.509655 100.800977) (xy 145.655977 100.654655) (xy 145.770941 100.482598) (xy 145.770941 100.482596)\r\n\t\t\t\t(xy 145.772684 100.479989) (xy 145.820734 100.442109) (xy 145.881872 100.439707) (xy 145.932746 100.473699)\r\n\t\t\t\t(xy 145.937316 100.479989) (xy 146.04765 100.645118) (xy 146.054023 100.654655) (xy 146.200345 100.800977)\r\n\t\t\t\t(xy 146.372402 100.915941) (xy 146.56358 100.99513) (xy 146.766535 101.0355) (xy 146.766536 101.0355)\r\n\t\t\t\t(xy 146.973464 101.0355) (xy 146.973465 101.0355) (xy 147.17642 100.99513) (xy 147.367598 100.915941)\r\n\t\t\t\t(xy 147.539655 100.800977) (xy 147.685977 100.654655) (xy 147.800941 100.482598) (xy 147.88013 100.29142)\r\n\t\t\t\t(xy 147.9205 100.088465) (xy 147.9205 99.881535) (xy 147.88013 99.67858) (xy 147.800941 99.487402)\r\n\t\t\t\t(xy 147.685977 99.315345) (xy 147.539655 99.169023) (xy 147.539651 99.16902) (xy 147.367597 99.054058)\r\n\t\t\t\t(xy 147.176418 98.974869) (xy 146.973467 98.9345) (xy 146.973465 98.9345) (xy 146.766535 98.9345)\r\n\t\t\t\t(xy 146.766532 98.9345) (xy 146.563581 98.974869) (xy 146.372402 99.054058) (xy 146.200348 99.16902)\r\n\t\t\t\t(xy 146.05402 99.315348) (xy 145.937316 99.49001) (xy 145.934144 99.49251) (xy 145.932746 99.4963)\r\n\t\t\t\t(xy 145.910386 99.511239) (xy 145.889266 99.52789) (xy 145.885229 99.528048) (xy 145.881872 99.530292)\r\n\t\t\t\t(xy 145.855 99.529236) (xy 145.828128 99.530292) (xy 145.82477 99.528048) (xy 145.820734 99.52789)\r\n\t\t\t\t(xy 145.799608 99.511235) (xy 145.777254 99.496299) (xy 145.772684 99.49001) (xy 145.667184 99.332117)\r\n\t\t\t\t(xy 145.6505 99.277116) (xy 145.6505 98.802678) (xy 145.669407 98.744487) (xy 145.709509 98.712115)\r\n\t\t\t\t(xy 145.749141 98.694616) (xy 145.824616 98.619141) (xy 145.86773 98.521498) (xy 145.8705 98.497623)\r\n\t\t\t\t(xy 145.870499 98.142378) (xy 145.86773 98.118502) (xy 145.824616 98.020859) (xy 145.749141 97.945384)\r\n\t\t\t\t(xy 145.749139 97.945383) (xy 145.647635 97.900564) (xy 145.60204 97.859763) (xy 145.589135 97.799954)\r\n\t\t\t\t(xy 145.613849 97.743983) (xy 145.647635 97.719436) (xy 145.689677 97.700872) (xy 145.749141 97.674616)\r\n\t\t\t\t(xy 145.824616 97.599141) (xy 145.86773 97.501498) (xy 145.8705 97.477623) (xy 145.870499 97.122378)\r\n\t\t\t\t(xy 145.86773 97.098502) (xy 145.824616 97.000859) (xy 145.792197 96.96844) (xy 145.764422 96.913926)\r\n\t\t\t\t(xy 145.773993 96.853494) (xy 145.776462 96.848947) (xy 145.819799 96.773886) (xy 145.8505 96.659309)\r\n\t\t\t\t(xy 145.8505 96.540691) (xy 145.819799 96.426114) (xy 145.819797 96.426111) (xy 145.819797 96.426109)\r\n\t\t\t\t(xy 145.760492 96.323391) (xy 145.76049 96.323389) (xy 145.760489 96.323387) (xy 145.676613 96.239511)\r\n\t\t\t\t(xy 145.67661 96.239509) (xy 145.676608 96.239507) (xy 145.573889 96.180202) (xy 145.57389 96.180202)\r\n\t\t\t\t(xy 145.560351 96.176574) (xy 145.459309 96.1495) (xy 145.340691 96.1495) (xy 145.270567 96.168289)\r\n\t\t\t\t(xy 145.226109 96.180202) (xy 145.123391 96.239507) (xy 145.039507 96.323391) (xy 144.980202 96.426109)\r\n\t\t\t\t(xy 144.966173 96.478467) (xy 144.9495 96.540691) (xy 144.9495 96.659309) (xy 144.955425 96.68142)\r\n\t\t\t\t(xy 144.980201 96.773887) (xy 145.023533 96.848939) (xy 145.036254 96.908787) (xy 145.011367 96.964683)\r\n\t\t\t\t(xy 145.0078 96.968442) (xy 144.975384 97.000857) (xy 144.975383 97.000859) (xy 144.932269 97.098501)\r\n\t\t\t\t(xy 144.932269 97.098502) (xy 144.9295 97.122372) (xy 144.9295 97.477619) (xy 144.929501 97.477622)\r\n\t\t\t\t(xy 144.93227 97.5015) (xy 144.954841 97.552616) (xy 144.975384 97.599141) (xy 145.050859 97.674616)\r\n\t\t\t\t(xy 145.148502 97.71773) (xy 145.148504 97.71773) (xy 145.152363 97.719434) (xy 145.197959 97.760235)\r\n\t\t\t\t(xy 145.210864 97.820044) (xy 145.18615 97.876016) (xy 145.152365 97.900563) (xy 145.05086 97.945383)\r\n\t\t\t\t(xy 144.975383 98.02086) (xy 144.932269 98.118501) (xy 144.932269 98.118502) (xy 144.9295 98.142372)\r\n\t\t\t\t(xy 144.9295 98.497619) (xy 144.929501 98.497622) (xy 144.93227 98.5215) (xy 144.975383 98.619139)\r\n\t\t\t\t(xy 144.975384 98.619141) (xy 145.050859 98.694616) (xy 145.09049 98.712115) (xy 145.109713 98.729317)\r\n\t\t\t\t(xy 145.130593 98.744487) (xy 145.132202 98.749441) (xy 145.136083 98.752914) (xy 145.1495 98.802678)\r\n\t\t\t\t(xy 145.1495 98.85485) (xy 145.130593 98.913041) (xy 145.081093 98.949005) (xy 145.031187 98.951948)\r\n\t\t\t\t(xy 144.94347 98.9345) (xy 144.943465 98.9345) (xy 144.736535 98.9345) (xy 144.736532 98.9345) (xy 144.533581 98.974869)\r\n\t\t\t\t(xy 144.342399 99.054059) (xy 144.3295 99.062679) (xy 144.270612 99.079287) (xy 144.213209 99.058109)\r\n\t\t\t\t(xy 144.179217 99.007234) (xy 144.1755 98.980363) (xy 144.1755 98.792074) (xy 144.1755 98.792073)\r\n\t\t\t\t(xy 144.143409 98.548323) (xy' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' 144.079778 98.310847) (xy 144.009996 98.142378) (xy 143.985697 98.083715)\r\n\t\t\t\t(xy 143.985696 98.083714) (xy 143.985694 98.083708) (xy 143.862767 97.870792) (xy 143.81398 97.807212)\r\n\t\t\t\t(xy 143.713106 97.67575) (xy 143.713104 97.675748) (xy 143.713101 97.675744) (xy 143.539256 97.501899)\r\n\t\t\t\t(xy 143.539251 97.501895) (xy 143.539249 97.501893) (xy 143.344211 97.352235) (xy 143.344208 97.352233)\r\n\t\t\t\t(xy 143.131292 97.229306) (xy 143.131288 97.229304) (xy 143.131284 97.229302) (xy 142.904154 97.135222)\r\n\t\t\t\t(xy 142.7671 97.098499) (xy 142.666677 97.071591) (xy 142.666674 97.07159) (xy 142.666672 97.07159)\r\n\t\t\t\t(xy 142.422927 97.0395) (xy 142.177073 97.0395) (xy 142.177072 97.0395) (xy 141.93333 97.07159)\r\n\t\t\t\t(xy 141.933325 97.07159) (xy 141.695845 97.135222) (xy 141.468715 97.229302) (xy 141.255788 97.352235)\r\n\t\t\t\t(xy 141.06075 97.501893) (xy 140.886893 97.67575) (xy 140.737235 97.870788) (xy 140.614302 98.083715)\r\n\t\t\t\t(xy 140.520222 98.310845) (xy 140.45659 98.548325) (xy 140.45659 98.54833) (xy 140.4245 98.792072)\r\n\t\t\t\t(xy 140.4245 99.037928) (xy 140.438301 99.142759) (xy 140.427151 99.20292) (xy 140.382768 99.245037)\r\n\t\t\t\t(xy 140.322106 99.253023) (xy 140.290648 99.241418) (xy 140.13647 99.152403) (xy 139.894262 99.052078)\r\n\t\t\t\t(xy 139.894255 99.052075) (xy 139.641013 98.98422) (xy 139.381087 98.95) (xy 139.118912 98.95) (xy 138.858989 98.98422)\r\n\t\t\t\t(xy 138.858984 98.98422) (xy 138.605744 99.052075) (xy 138.605737 99.052078) (xy 138.363529 99.152403)\r\n\t\t\t\t(xy 138.136472 99.283495) (xy 138.023633 99.370079) (xy 138.887706 100.234152) (xy 138.871058 100.241049)\r\n\t\t\t\t(xy 138.74003 100.328599) (xy 138.628599 100.44003) (xy 138.541049 100.571058) (xy 138.534152 100.587706)\r\n\t\t\t\t(xy 137.670079 99.723633) (xy 137.583495 99.836472) (xy 137.452403 100.063529) (xy 137.352078 100.305737)\r\n\t\t\t\t(xy 137.352075 100.305744) (xy 137.28422 100.558984) (xy 137.28422 100.558989) (xy 137.25 100.818912)\r\n\t\t\t\t(xy 82.9 100.818912) (xy 82.9 97.3) (xy 82.899999 97.3) (xy 74.0995 97.3) (xy 74.041309 97.281093)\r\n\t\t\t\t(xy 74.005345 97.231593) (xy 74.0005 97.201) (xy 74.0005 94.690691) (xy 97.799497 94.690691) (xy 97.799497 94.809309)\r\n\t\t\t\t(xy 97.820549 94.887876) (xy 97.830199 94.92389) (xy 97.889504 95.026608) (xy 97.889506 95.02661)\r\n\t\t\t\t(xy 97.889508 95.026613) (xy 97.973384 95.110489) (xy 97.973386 95.11049) (xy 97.973388 95.110492)\r\n\t\t\t\t(xy 98.076107 95.169797) (xy 98.076108 95.169797) (xy 98.076111 95.169799) (xy 98.190688 95.2005)\r\n\t\t\t\t(xy 98.19069 95.2005) (xy 98.309304 95.2005) (xy 98.309306 95.2005) (xy 98.423883 95.169799) (xy 98.423885 95.169797)\r\n\t\t\t\t(xy 98.423887 95.169797) (xy 98.526605 95.110492) (xy 98.526605 95.110491) (xy 98.52661 95.110489)\r\n\t\t\t\t(xy 98.554997 95.082101) (xy 98.60951 95.054326) (xy 98.669942 95.063897) (xy 98.694998 95.0821)\r\n\t\t\t\t(xy 98.723387 95.110489) (xy 98.723389 95.11049) (xy 98.723391 95.110492) (xy 98.82611 95.169797)\r\n\t\t\t\t(xy 98.826111 95.169797) (xy 98.826114 95.169799) (xy 98.940691 95.2005) (xy 98.940693 95.2005)\r\n\t\t\t\t(xy 99.059307 95.2005) (xy 99.059309 95.2005) (xy 99.173886 95.169799) (xy 99.173888 95.169797)\r\n\t\t\t\t(xy 99.17389 95.169797) (xy 99.276608 95.110492) (xy 99.276608 95.110491) (xy 99.276613 95.110489)\r\n\t\t\t\t(xy 99.360489 95.026613) (xy 99.362352 95.023386) (xy 99.419797 94.92389) (xy 99.419797 94.923888)\r\n\t\t\t\t(xy 99.419799 94.923886) (xy 99.4505 94.809309) (xy 99.4505 94.690691) (xy 99.7495 94.690691) (xy 99.7495 94.809309)\r\n\t\t\t\t(xy 99.770552 94.887876) (xy 99.780202 94.92389) (xy 99.839507 95.026608) (xy 99.839509 95.02661)\r\n\t\t\t\t(xy 99.839511 95.026613) (xy 99.923387 95.110489) (xy 99.923389 95.11049) (xy 99.923391 95.110492)\r\n\t\t\t\t(xy 100.02611 95.169797) (xy 100.026111 95.169797) (xy 100.026114 95.169799) (xy 100.140691 95.2005)\r\n\t\t\t\t(xy 100.140693 95.2005) (xy 100.259307 95.2005) (xy 100.259309 95.2005) (xy 100.373886 95.169799)\r\n\t\t\t\t(xy 100.373888 95.169797) (xy 100.37389 95.169797) (xy 100.476608 95.110492) (xy 100.476608 95.110491)\r\n\t\t\t\t(xy 100.476613 95.110489) (xy 100.560489 95.026613) (xy 100.562352 95.023386) (xy 100.619797 94.92389)\r\n\t\t\t\t(xy 100.619797 94.923888) (xy 100.619799 94.923886) (xy 100.6505 94.809309) (xy 100.6505 94.690691)\r\n\t\t\t\t(xy 100.619799 94.576114) (xy 100.619797 94.576111) (xy 100.619797 94.576109) (xy 100.560492 94.473391)\r\n\t\t\t\t(xy 100.56049 94.473389) (xy 100.560489 94.473387) (xy 100.476613 94.389511) (xy 100.47661 94.389509)\r\n\t\t\t\t(xy 100.399999 94.345277) (xy 100.359059 94.299807) (xy 100.3505 94.259541) (xy 100.3505 93.9395)\r\n\t\t\t\t(xy 100.369407 93.881309) (xy 100.418907 93.845345) (xy 100.4495 93.8405) (xy 100.569747 93.8405)\r\n\t\t\t\t(xy 100.569748 93.8405) (xy 100.628231 93.828867) (xy 100.644997 93.817663) (xy 100.703885 93.801054)\r\n\t\t\t\t(xy 100.755002 93.817663) (xy 100.771769 93.828867) (xy 100.816231 93.837711) (xy 100.830241 93.840498)\r\n\t\t\t\t(xy 100.830246 93.840498) (xy 100.830252 93.8405) (xy 100.830253 93.8405) (xy 100.969747 93.8405)\r\n\t\t\t\t(xy 100.969748 93.8405) (xy 101.028231 93.828867) (xy 101.044997 93.817663) (xy 101.103885 93.801054)\r\n\t\t\t\t(xy 101.155002 93.817663) (xy 101.171769 93.828867) (xy 101.216231 93.837711) (xy 101.230241 93.840498)\r\n\t\t\t\t(xy 101.230246 93.840498) (xy 101.230252 93.8405) (xy 101.230253 93.8405) (xy 101.369747 93.8405)\r\n\t\t\t\t(xy 101.369748 93.8405) (xy 101.428231 93.828867) (xy 101.494552 93.784552) (xy 101.538867 93.718231)\r\n\t\t\t\t(xy 101.5505 93.659748) (xy 101.5505 93.020252) (xy 101.538867 92.961769) (xy 101.494552 92.895448)\r\n\t\t\t\t(xy 101.487361 92.890643) (xy 101.428233 92.851134) (xy 101.428231 92.851133) (xy 101.428228 92.851132)\r\n\t\t\t\t(xy 101.428227 92.851132) (xy 101.369758 92.839501) (xy 101.369748 92.8395) (xy 101.314293 92.8395)\r\n\t\t\t\t(xy 101.256102 92.820593) (xy 101.220138 92.771093) (xy 101.218666 92.714877) (xy 101.248985 92.601727)\r\n\t\t\t\t(xy 101.248985 92.483109) (xy 101.237619 92.440691) (xy 101.6495 92.440691) (xy 101.6495 92.559309)\r\n\t\t\t\t(xy 101.676295 92.659307) (xy 101.680202 92.67389) (xy 101.739507 92.776608) (xy 101.739509 92.77661)\r\n\t\t\t\t(xy 101.739511 92.776613) (xy 101.820505 92.857607) (xy 101.848281 92.912122) (xy 101.8495 92.927609)\r\n\t\t\t\t(xy 101.8495 93.659746) (xy 101.849501 93.659758) (xy 101.861132 93.718227) (xy 101.861134 93.718233)\r\n\t\t\t\t(xy 101.904571 93.78324) (xy 101.905448 93.784552) (xy 101.971769 93.828867) (xy 102.016231 93.837711)\r\n\t\t\t\t(xy 102.030241 93.840498) (xy 102.030246 93.840498) (xy 102.030252 93.8405) (xy 102.030253 93.8405)\r\n\t\t\t\t(xy 102.169747 93.8405) (xy 102.169748 93.8405) (xy 102.228231 93.828867) (xy 102.244997 93.817663)\r\n\t\t\t\t(xy 102.303885 93.801054) (xy 102.355002 93.817663) (xy 102.371769 93.828867) (xy 102.416231 93.837711)\r\n\t\t\t\t(xy 102.430241 93.840498) (xy 102.430246 93.840498) (xy 102.430252 93.8405) (xy 102.430253 93.8405)\r\n\t\t\t\t(xy 102.569747 93.8405) (xy 102.569748 93.8405) (xy 102.628231 93.828867) (xy 102.644997 93.817663)\r\n\t\t\t\t(xy 102.703885 93.801054) (xy 102.755002 93.817663) (xy 102.771769 93.828867) (xy 102.816231 93.837711)\r\n\t\t\t\t(xy 102.830241 93.840498) (xy 102.830246 93.840498) (xy 102.830252 93.8405) (xy 102.830253 93.8405)\r\n\t\t\t\t(xy 102.969747 93.8405) (xy 102.969748 93.8405) (xy 103.028231 93.828867) (xy 103.044997 93.817663)\r\n\t\t\t\t(xy 103.103885 93.801054) (xy 103.155002 93.817663) (xy 103.171769 93.828867) (xy 103.216231 93.837711)\r\n\t\t\t\t(xy 103.230241 93.840498) (xy 103.230246 93.840498) (xy 103.230252 93.8405) (xy 103.230253 93.8405)\r\n\t\t\t\t(xy 103.369747 93.8405) (xy 103.369748 93.8405) (xy 103.428231 93.828867) (xy 103.494552 93.784552)\r\n\t\t\t\t(xy 103.538867 93.718231) (xy 103.5505 93.659748) (xy 103.5505 93.090458) (xy 103.556303 93.072595)\r\n\t\t\t\t(xy 103.557516 93.053853) (xy 103.565329 93.044817) (xy 103.569407 93.032267) (xy 103.596599 93.006777)\r\n\t\t\t\t(xy 103.598267 93.005721) (xy 103.676613 92.960489) (xy 103.688287 92.948814) (xy 103.697599 92.942928)\r\n\t\t\t\t(xy 103.71709 92.937959) (xy 103.735013 92.928828) (xy 103.746054 92.930576) (xy 103.756889 92.927815)\r\n\t\t\t\t(xy 103.775577 92.935252) (xy 103.795445 92.938399) (xy 103.803351 92.946305) (xy 103.813738 92.950439)\r\n\t\t\t\t(xy 103.824485 92.967439) (xy 103.83871 92.981664) (xy 103.841913 92.995006) (xy 103.846433 93.002156)\r\n\t\t\t\t(xy 103.845838 93.011355) (xy 103.8495 93.026609) (xy 103.8495 94.87239) (xy 103.830' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'593 94.930581)\r\n\t\t\t\t(xy 103.820504 94.942393) (xy 103.739511 95.023386) (xy 103.739507 95.023391) (xy 103.680202 95.126109)\r\n\t\t\t\t(xy 103.663037 95.190169) (xy 103.6495 95.240691) (xy 103.6495 95.359309) (xy 103.671273 95.440565)\r\n\t\t\t\t(xy 103.680202 95.47389) (xy 103.739507 95.576608) (xy 103.739509 95.57661) (xy 103.739511 95.576613)\r\n\t\t\t\t(xy 103.823387 95.660489) (xy 103.823389 95.66049) (xy 103.823391 95.660492) (xy 103.92611 95.719797)\r\n\t\t\t\t(xy 103.926111 95.719797) (xy 103.926114 95.719799) (xy 104.040691 95.7505) (xy 104.040693 95.7505)\r\n\t\t\t\t(xy 104.159307 95.7505) (xy 104.159309 95.7505) (xy 104.273886 95.719799) (xy 104.273888 95.719797)\r\n\t\t\t\t(xy 104.27389 95.719797) (xy 104.376608 95.660492) (xy 104.376608 95.660491) (xy 104.376613 95.660489)\r\n\t\t\t\t(xy 104.460489 95.576613) (xy 104.470645 95.559023) (xy 104.519797 95.47389) (xy 104.519797 95.473888)\r\n\t\t\t\t(xy 104.519799 95.473886) (xy 104.5505 95.359309) (xy 104.5505 95.240691) (xy 104.519799 95.126114)\r\n\t\t\t\t(xy 104.519797 95.126111) (xy 104.519797 95.126109) (xy 104.460492 95.023391) (xy 104.460488 95.023386)\r\n\t\t\t\t(xy 104.379496 94.942393) (xy 104.351719 94.887876) (xy 104.3505 94.87239) (xy 104.3505 93.9395)\r\n\t\t\t\t(xy 104.369407 93.881309) (xy 104.418907 93.845345) (xy 104.4495 93.8405) (xy 104.569747 93.8405)\r\n\t\t\t\t(xy 104.569748 93.8405) (xy 104.628231 93.828867) (xy 104.628237 93.828862) (xy 104.637242 93.825134)\r\n\t\t\t\t(xy 104.63795 93.826843) (xy 104.68525 93.813497) (xy 104.742657 93.834666) (xy 104.776656 93.885536)\r\n\t\t\t\t(xy 104.777004 93.938044) (xy 104.766233 93.978243) (xy 104.7495 94.040691) (xy 104.7495 94.159309)\r\n\t\t\t\t(xy 104.761118 94.202668) (xy 104.780202 94.27389) (xy 104.839507 94.376608) (xy 104.839509 94.37661)\r\n\t\t\t\t(xy 104.839511 94.376613) (xy 104.923387 94.460489) (xy 104.923389 94.46049) (xy 104.923391 94.460492)\r\n\t\t\t\t(xy 105.02611 94.519797) (xy 105.026111 94.519797) (xy 105.026114 94.519799) (xy 105.140691 94.5505)\r\n\t\t\t\t(xy 105.140693 94.5505) (xy 105.259307 94.5505) (xy 105.259309 94.5505) (xy 105.373886 94.519799)\r\n\t\t\t\t(xy 105.373888 94.519797) (xy 105.37389 94.519797) (xy 105.476608 94.460492) (xy 105.476608 94.460491)\r\n\t\t\t\t(xy 105.476613 94.460489) (xy 105.560489 94.376613) (xy 105.564263 94.370075) (xy 105.609731 94.329135)\r\n\t\t\t\t(xy 105.670581 94.322738) (xy 105.72357 94.353329) (xy 105.735735 94.370073) (xy 105.739511 94.376613)\r\n\t\t\t\t(xy 105.823387 94.460489) (xy 105.823389 94.46049) (xy 105.823391 94.460492) (xy 105.92611 94.519797)\r\n\t\t\t\t(xy 105.926111 94.519797) (xy 105.926114 94.519799) (xy 106.040691 94.5505) (xy 106.040693 94.5505)\r\n\t\t\t\t(xy 106.159307 94.5505) (xy 106.159309 94.5505) (xy 106.273886 94.519799) (xy 106.273888 94.519797)\r\n\t\t\t\t(xy 106.27389 94.519797) (xy 106.376608 94.460492) (xy 106.376608 94.460491) (xy 106.376613 94.460489)\r\n\t\t\t\t(xy 106.460489 94.376613) (xy 106.462061 94.37389) (xy 106.519797 94.27389) (xy 106.519797 94.273888)\r\n\t\t\t\t(xy 106.519799 94.273886) (xy 106.5505 94.159309) (xy 106.5505 94.040691) (xy 106.527904 93.956362)\r\n\t\t\t\t(xy 106.531106 93.895263) (xy 106.569612 93.847713) (xy 106.586582 93.838895) (xy 106.595154 93.835446)\r\n\t\t\t\t(xy 106.628231 93.828867) (xy 106.65353 93.811961) (xy 106.663051 93.808132) (xy 106.683832 93.806709)\r\n\t\t\t\t(xy 106.703885 93.801054) (xy 106.714775 93.804592) (xy 106.724093 93.803955) (xy 106.736229 93.811563)\r\n\t\t\t\t(xy 106.755002 93.817663) (xy 106.771769 93.828867) (xy 106.816231 93.837711) (xy 106.830241 93.840498)\r\n\t\t\t\t(xy 106.830246 93.840498) (xy 106.830252 93.8405) (xy 106.830253 93.8405) (xy 106.969747 93.8405)\r\n\t\t\t\t(xy 106.969748 93.8405) (xy 107.028231 93.828867) (xy 107.094552 93.784552) (xy 107.138867 93.718231)\r\n\t\t\t\t(xy 107.1505 93.659748) (xy 107.1505 93.020253) (xy 107.4495 93.020253) (xy 107.4495 93.659746)\r\n\t\t\t\t(xy 107.449501 93.659758) (xy 107.458961 93.707314) (xy 107.461133 93.718231) (xy 107.461134 93.718233)\r\n\t\t\t\t(xy 107.464866 93.727242) (xy 107.461905 93.728468) (xy 107.47355 93.766845) (xy 107.47355 93.819957)\r\n\t\t\t\t(xy 107.47355 93.910045) (xy 107.49022 93.950289) (xy 107.511756 94.002282) (xy 107.509844 94.003073)\r\n\t\t\t\t(xy 107.5226 94.045118) (xy 107.5226 94.417482) (xy 107.5226 94.50757) (xy 107.534788 94.536994)\r\n\t\t\t\t(xy 107.557073 94.590796) (xy 107.557074 94.590797) (xy 107.557075 94.590799) (xy 112.009549 99.043273)\r\n\t\t\t\t(xy 112.009548 99.043273) (xy 112.045563 99.079287) (xy 112.073251 99.106975) (xy 112.15648 99.14145)\r\n\t\t\t\t(xy 134.842716 99.14145) (xy 134.900907 99.160357) (xy 134.936871 99.209857) (xy 134.939813 99.221137)\r\n\t\t\t\t(xy 134.93987 99.22142) (xy 134.97267 99.300608) (xy 135.019058 99.412597) (xy 135.096993 99.529236)\r\n\t\t\t\t(xy 135.134023 99.584655) (xy 135.280345 99.730977) (xy 135.452402 99.845941) (xy 135.64358 99.92513)\r\n\t\t\t\t(xy 135.846535 99.9655) (xy 135.846536 99.9655) (xy 136.053464 99.9655) (xy 136.053465 99.9655)\r\n\t\t\t\t(xy 136.25642 99.92513) (xy 136.447598 99.845941) (xy 136.619655 99.730977) (xy 136.765977 99.584655)\r\n\t\t\t\t(xy 136.880941 99.412598) (xy 136.96013 99.22142) (xy 137.0005 99.018465) (xy 137.0005 98.811535)\r\n\t\t\t\t(xy 136.96013 98.60858) (xy 136.880941 98.417402) (xy 136.765977 98.245345) (xy 136.619655 98.099023)\r\n\t\t\t\t(xy 136.596745 98.083715) (xy 136.447597 97.984058) (xy 136.256418 97.904869) (xy 136.053467 97.8645)\r\n\t\t\t\t(xy 136.053465 97.8645) (xy 135.846535 97.8645) (xy 135.846532 97.8645) (xy 135.643581 97.904869)\r\n\t\t\t\t(xy 135.452402 97.984058) (xy 135.280348 98.09902) (xy 135.13402 98.245348) (xy 135.019058 98.417402)\r\n\t\t\t\t(xy 134.93987 98.60858) (xy 134.939815 98.608858) (xy 134.939751 98.608971) (xy 134.938457 98.613238)\r\n\t\t\t\t(xy 134.937521 98.612954) (xy 134.909921 98.662244) (xy 134.854358 98.687863) (xy 134.842716 98.68855)\r\n\t\t\t\t(xy 134.065427 98.68855) (xy 134.007236 98.669643) (xy 133.971272 98.620143) (xy 133.971272 98.558957)\r\n\t\t\t\t(xy 134.007236 98.509457) (xy 134.010426 98.507234) (xy 134.024816 98.497619) (xy 134.079655 98.460977)\r\n\t\t\t\t(xy 134.225977 98.314655) (xy 134.340941 98.142598) (xy 134.42013 97.95142) (xy 134.4605 97.748465)\r\n\t\t\t\t(xy 134.4605 97.541535) (xy 134.42013 97.33858) (xy 134.340941 97.147402) (xy 134.225977 96.975345)\r\n\t\t\t\t(xy 134.079655 96.829023) (xy 134.010425 96.782765) (xy 133.972546 96.734716) (xy 133.970144 96.673578)\r\n\t\t\t\t(xy 134.004136 96.622704) (xy 134.06154 96.601526) (xy 134.065427 96.60145) (xy 134.842716 96.60145)\r\n\t\t\t\t(xy 134.900907 96.620357) (xy 134.936871 96.669857) (xy 134.939815 96.681142) (xy 134.93987 96.681419)\r\n\t\t\t\t(xy 135.019058 96.872597) (xy 135.13402 97.044651) (xy 135.134023 97.044655) (xy 135.280345 97.190977)\r\n\t\t\t\t(xy 135.452402 97.305941) (xy 135.64358 97.38513) (xy 135.846535 97.4255) (xy 135.846536 97.4255)\r\n\t\t\t\t(xy 136.053464 97.4255) (xy 136.053465 97.4255) (xy 136.25642 97.38513) (xy 136.447598 97.305941)\r\n\t\t\t\t(xy 136.619655 97.190977) (xy 136.765977 97.044655) (xy 136.880941 96.872598) (xy 136.96013 96.68142)\r\n\t\t\t\t(xy 137.0005 96.478465) (xy 137.0005 96.271535) (xy 136.96013 96.06858) (xy 136.880941 95.877402)\r\n\t\t\t\t(xy 136.765977 95.705345) (xy 136.619655 95.559023) (xy 136.492238 95.473886) (xy 136.447597 95.444058)\r\n\t\t\t\t(xy 136.256418 95.364869) (xy 136.053467 95.3245) (xy 136.053465 95.3245) (xy 135.846535 95.3245)\r\n\t\t\t\t(xy 135.846532 95.3245) (xy 135.643581 95.364869) (xy 135.452402 95.444058) (xy 135.280348 95.55902)\r\n\t\t\t\t(xy 135.13402 95.705348) (xy 135.019058 95.877402) (xy 134.93987 96.06858) (xy 134.939815 96.068858)\r\n\t\t\t\t(xy 134.939751 96.068971) (xy 134.938457 96.073238) (xy 134.937521 96.072954) (xy 134.909921 96.122244)\r\n\t\t\t\t(xy 134.854358 96.147863) (xy 134.842716 96.14855) (xy 134.065427 96.14855) (xy 134.007236 96.129643)\r\n\t\t\t\t(xy 133.971272 96.080143) (xy 133.971272 96.018957) (xy 134.007236 95.969457) (xy 134.010426 95.967234)\r\n\t\t\t\t(xy 134.079655 95.920977) (xy 134.225977 95.774655) (xy 134.340941 95.602598) (xy 134.42013 95.41142)\r\n\t\t\t\t(xy 134.4605 95.208465) (xy 134.4605 95.001535) (xy 134.42013 94.79858) (xy 134.340941 94.607402)\r\n\t\t\t\t(xy 134.225977 94.435345) (xy 134.079655 94.289023) (xy 134.055184 94.272672) (xy 133.907597 94.174058)\r\n\t\t\t\t(xy 133.716418 94.094869) (xy 133.513467 94.0545) (xy 133.513465 94.0545) (xy 133.306535 94.0545)\r\n\t\t\t\t(xy 133.306532 94.0545) (xy 133.103581 94.094869) (xy 132.912402 94.174058) (xy 132.740348 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'94.28902)\r\n\t\t\t\t(xy 132.59402 94.435348) (xy 132.479058 94.607402) (xy 132.399869 94.798581) (xy 132.3595 95.001532)\r\n\t\t\t\t(xy 132.3595 95.208467) (xy 132.399869 95.411418) (xy 132.479058 95.602596) (xy 132.479221 95.60284)\r\n\t\t\t\t(xy 132.479258 95.602971) (xy 132.481351 95.606887) (xy 132.480491 95.607346) (xy 132.480855 95.608636)\r\n\t\t\t\t(xy 132.485113 95.612894) (xy 132.489029 95.637622) (xy 132.495828 95.661729) (xy 132.493743 95.667379)\r\n\t\t\t\t(xy 132.494685 95.673326) (xy 132.483318 95.695635) (xy 132.474649 95.719132) (xy 132.466908 95.727843)\r\n\t\t\t\t(xy 132.3771 95.817652) (xy 132.322584 95.84543) (xy 132.307096 95.846649) (xy 121.252388 95.846649)\r\n\t\t\t\t(xy 121.194197 95.827742) (xy 121.158233 95.778242) (xy 121.153388 95.747649) (xy 121.153388 95.385934)\r\n\t\t\t\t(xy 121.153388 95.385933) (xy 121.121601 95.267298) (xy 121.121599 95.267295) (xy 121.121599 95.267293)\r\n\t\t\t\t(xy 121.060194 95.160938) (xy 121.060192 95.160936) (xy 121.060191 95.160934) (xy 120.973345 95.074088)\r\n\t\t\t\t(xy 120.973342 95.074086) (xy 120.97334 95.074084) (xy 120.866985 95.012679) (xy 120.825173 95.001476)\r\n\t\t\t\t(xy 120.748346 94.980891) (xy 120.731982 94.980891) (xy 120.566939 94.980891) (xy 120.50553 94.980891)\r\n\t\t\t\t(xy 120.453215 94.994908) (xy 120.38689 95.012679) (xy 120.280535 95.074084) (xy 120.193681 95.160938)\r\n\t\t\t\t(xy 120.132277 95.267292) (xy 120.132275 95.267296) (xy 120.132275 95.267298) (xy 120.132274 95.267304)\r\n\t\t\t\t(xy 120.122564 95.303543) (xy 120.08924 95.354857) (xy 120.032118 95.376784) (xy 119.973018 95.360948)\r\n\t\t\t\t(xy 119.934513 95.313399) (xy 119.931313 95.303552) (xy 119.921601 95.267304) (xy 119.921599 95.267301)\r\n\t\t\t\t(xy 119.921599 95.267299) (xy 119.860194 95.160944) (xy 119.860192 95.160942) (xy 119.860191 95.16094)\r\n\t\t\t\t(xy 119.773345 95.074094) (xy 119.773342 95.074092) (xy 119.77334 95.07409) (xy 119.666985 95.012685)\r\n\t\t\t\t(xy 119.641923 95.00597) (xy 119.548346 94.980897) (xy 119.531982 94.980897) (xy 119.366939 94.980897)\r\n\t\t\t\t(xy 119.30553 94.980897) (xy 119.253215 94.994914) (xy 119.18689 95.012685) (xy 119.080535 95.07409)\r\n\t\t\t\t(xy 118.993681 95.160944) (xy 118.932276 95.267299) (xy 118.900488 95.385939) (xy 118.900488 95.747649)\r\n\t\t\t\t(xy 118.881581 95.80584) (xy 118.832081 95.841804) (xy 118.801488 95.846649) (xy 111.721382 95.846649)\r\n\t\t\t\t(xy 111.663191 95.827742) (xy 111.651378 95.817653) (xy 109.578455 93.744731) (xy 109.550678 93.690214)\r\n\t\t\t\t(xy 109.551197 93.664699) (xy 109.550023 93.664584) (xy 109.550499 93.659752) (xy 109.5505 93.659748)\r\n\t\t\t\t(xy 109.5505 93.140691) (xy 114.1495 93.140691) (xy 114.1495 93.259309) (xy 114.15777 93.290172)\r\n\t\t\t\t(xy 114.180202 93.37389) (xy 114.239507 93.476608) (xy 114.239509 93.47661) (xy 114.239511 93.476613)\r\n\t\t\t\t(xy 114.323387 93.560489) (xy 114.323389 93.56049) (xy 114.323391 93.560492) (xy 114.42611 93.619797)\r\n\t\t\t\t(xy 114.426111 93.619797) (xy 114.426114 93.619799) (xy 114.540691 93.6505) (xy 114.540693 93.6505)\r\n\t\t\t\t(xy 114.659307 93.6505) (xy 114.659309 93.6505) (xy 114.773886 93.619799) (xy 114.773888 93.619797)\r\n\t\t\t\t(xy 114.77389 93.619797) (xy 114.876608 93.560492) (xy 114.876608 93.560491) (xy 114.876613 93.560489)\r\n\t\t\t\t(xy 114.960489 93.476613) (xy 114.962061 93.47389) (xy 115.019797 93.37389) (xy 115.019797 93.373888)\r\n\t\t\t\t(xy 115.019799 93.373886) (xy 115.0505 93.259309) (xy 115.0505 93.140691) (xy 115.5495 93.140691)\r\n\t\t\t\t(xy 115.5495 93.259309) (xy 115.55777 93.290172) (xy 115.580202 93.37389) (xy 115.639507 93.476608)\r\n\t\t\t\t(xy 115.639509 93.47661) (xy 115.639511 93.476613) (xy 115.723387 93.560489) (xy 115.723389 93.56049)\r\n\t\t\t\t(xy 115.723391 93.560492) (xy 115.82611 93.619797) (xy 115.826111 93.619797) (xy 115.826114 93.619799)\r\n\t\t\t\t(xy 115.940691 93.6505) (xy 115.940693 93.6505) (xy 116.059307 93.6505) (xy 116.059309 93.6505)\r\n\t\t\t\t(xy 116.173886 93.619799) (xy 116.173888 93.619797) (xy 116.17389 93.619797) (xy 116.276608 93.560492)\r\n\t\t\t\t(xy 116.276608 93.560491) (xy 116.276613 93.560489) (xy 116.360489 93.476613) (xy 116.362061 93.47389)\r\n\t\t\t\t(xy 116.419797 93.37389) (xy 116.419797 93.373888) (xy 116.419799 93.373886) (xy 116.4505 93.259309)\r\n\t\t\t\t(xy 116.4505 93.140691) (xy 116.419799 93.026114) (xy 116.419797 93.026111) (xy 116.419797 93.026109)\r\n\t\t\t\t(xy 116.360492 92.923391) (xy 116.36049 92.923389) (xy 116.360489 92.923387) (xy 116.276613 92.839511)\r\n\t\t\t\t(xy 116.27661 92.839509) (xy 116.276608 92.839507) (xy 116.173889 92.780202) (xy 116.17389 92.780202)\r\n\t\t\t\t(xy 116.150318 92.773886) (xy 116.059309 92.7495) (xy 115.940691 92.7495) (xy 115.870567 92.768289)\r\n\t\t\t\t(xy 115.826109 92.780202) (xy 115.723391 92.839507) (xy 115.639507 92.923391) (xy 115.580202 93.026109)\r\n\t\t\t\t(xy 115.563037 93.090169) (xy 115.5495 93.140691) (xy 115.0505 93.140691) (xy 115.019799 93.026114)\r\n\t\t\t\t(xy 115.019797 93.026111) (xy 115.019797 93.026109) (xy 114.960492 92.923391) (xy 114.96049 92.923389)\r\n\t\t\t\t(xy 114.960489 92.923387) (xy 114.876613 92.839511) (xy 114.87661 92.839509) (xy 114.876608 92.839507)\r\n\t\t\t\t(xy 114.773889 92.780202) (xy 114.77389 92.780202) (xy 114.750318 92.773886) (xy 114.659309 92.7495)\r\n\t\t\t\t(xy 114.540691 92.7495) (xy 114.470567 92.768289) (xy 114.426109 92.780202) (xy 114.323391 92.839507)\r\n\t\t\t\t(xy 114.239507 92.923391) (xy 114.180202 93.026109) (xy 114.163037 93.090169) (xy 114.1495 93.140691)\r\n\t\t\t\t(xy 109.5505 93.140691) (xy 109.5505 93.020252) (xy 109.538867 92.961769) (xy 109.494552 92.895448)\r\n\t\t\t\t(xy 109.487361 92.890643) (xy 109.428233 92.851134) (xy 109.428231 92.851133) (xy 109.428228 92.851132)\r\n\t\t\t\t(xy 109.428227 92.851132) (xy 109.369758 92.839501) (xy 109.369748 92.8395) (xy 109.230252 92.8395)\r\n\t\t\t\t(xy 109.230251 92.8395) (xy 109.230241 92.839501) (xy 109.171772 92.851132) (xy 109.171767 92.851134)\r\n\t\t\t\t(xy 109.155001 92.862337) (xy 109.096113 92.878945) (xy 109.044999 92.862337) (xy 109.035105 92.855726)\r\n\t\t\t\t(xy 109.028231 92.851133) (xy 109.028228 92.851132) (xy 109.028227 92.851132) (xy 108.969758 92.839501)\r\n\t\t\t\t(xy 108.969748 92.8395) (xy 108.830252 92.8395) (xy 108.830251 92.8395) (xy 108.830241 92.839501)\r\n\t\t\t\t(xy 108.771772 92.851132) (xy 108.771766 92.851134) (xy 108.705451 92.895445) (xy 108.705445 92.895451)\r\n\t\t\t\t(xy 108.661134 92.961766) (xy 108.661132 92.961772) (xy 108.649501 93.020241) (xy 108.6495 93.020253)\r\n\t\t\t\t(xy 108.6495 93.659746) (xy 108.649501 93.659758) (xy 108.661132 93.718227) (xy 108.661134 93.718233)\r\n\t\t\t\t(xy 108.705915 93.785251) (xy 108.7226 93.840253) (xy 108.7226 93.90757) (xy 108.726651 93.91735)\r\n\t\t\t\t(xy 108.757073 93.990796) (xy 108.757074 93.990797) (xy 108.757075 93.990799) (xy 111.333251 96.566975)\r\n\t\t\t\t(xy 111.41648 96.60145) (xy 111.506568 96.60145) (xy 132.754573 96.60145) (xy 132.812764 96.620357)\r\n\t\t\t\t(xy 132.848728 96.669857) (xy 132.848728 96.731043) (xy 132.812764 96.780543) (xy 132.809574 96.782766)\r\n\t\t\t\t(xy 132.740348 96.82902) (xy 132.59402 96.975348) (xy 132.479058 97.147402) (xy 132.399869 97.338581)\r\n\t\t\t\t(xy 132.3595 97.541532) (xy 132.3595 97.748467) (xy 132.399869 97.951418) (xy 132.479058 98.142596)\r\n\t\t\t\t(xy 132.479221 98.14284) (xy 132.479258 98.142971) (xy 132.481351 98.146887) (xy 132.480491 98.147346)\r\n\t\t\t\t(xy 132.480855 98.148636) (xy 132.485113 98.152894) (xy 132.489029 98.177622) (xy 132.495828 98.201729)\r\n\t\t\t\t(xy 132.493743 98.207379) (xy 132.494685 98.213326) (xy 132.483318 98.235635) (xy 132.474649 98.259132)\r\n\t\t\t\t(xy 132.466908 98.267843) (xy 132.3771 98.357652) (xy 132.322584 98.38543) (xy 132.307096 98.386649)\r\n\t\t\t\t(xy 122.845549 98.386649) (xy 122.787358 98.367742) (xy 122.751394 98.318242) (xy 122.746549 98.287649)\r\n\t\t\t\t(xy 122.746549 97.925872) (xy 122.746549 97.925871) (xy 122.714762 97.807236) (xy 122.71476 97.807233)\r\n\t\t\t\t(xy 122.71476 97.807231) (xy 122.653355 97.700876) (xy 122.653353 97.700874) (xy 122.653352 97.700872)\r\n\t\t\t\t(xy 122.566506 97.614026) (xy 122.566503 97.614024) (xy 122.566501 97.614022) (xy 122.460146 97.552617)\r\n\t\t\t\t(xy 122.418789 97.541536) (xy 122.341507 97.520829) (xy 122.325143 97.520829) (xy 122.1601 97.520829)\r\n\t\t\t\t(xy 122.098691 97.520829) (xy 122.046376 97.534846) (xy 121.980051 97.552617) (xy 121.873696 97.614022)\r\n\t\t\t\t(xy 121.786842 97.700876) (xy 121.725438 97.80723) (xy 121.725436 97.807234) (xy 121.725436 97.807236)\r\n\t\t\t\t(xy 121.722005 97.820044) (xy 1' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'21.715729 97.843466) (xy 121.682405 97.89478) (xy 121.625283 97.916707)\r\n\t\t\t\t(xy 121.566183 97.900871) (xy 121.527678 97.853322) (xy 121.524478 97.843475) (xy 121.514762 97.807212)\r\n\t\t\t\t(xy 121.51476 97.807209) (xy 121.51476 97.807207) (xy 121.453355 97.700852) (xy 121.453353 97.70085)\r\n\t\t\t\t(xy 121.453352 97.700848) (xy 121.366506 97.614002) (xy 121.366503 97.614) (xy 121.366501 97.613998)\r\n\t\t\t\t(xy 121.260146 97.552593) (xy 121.218864 97.541532) (xy 121.141507 97.520805) (xy 121.125143 97.520805)\r\n\t\t\t\t(xy 120.9601 97.520805) (xy 120.898691 97.520805) (xy 120.846376 97.534822) (xy 120.780051 97.552593)\r\n\t\t\t\t(xy 120.673696 97.613998) (xy 120.586842 97.700852) (xy 120.525437 97.807207) (xy 120.493649 97.925847)\r\n\t\t\t\t(xy 120.493649 98.287649) (xy 120.474742 98.34584) (xy 120.425242 98.381804) (xy 120.394649 98.386649)\r\n\t\t\t\t(xy 112.461381 98.386649) (xy 112.40319 98.367742) (xy 112.391377 98.357653) (xy 108.306396 94.272672)\r\n\t\t\t\t(xy 108.302769 94.265554) (xy 108.296307 94.260859) (xy 108.289143 94.23881) (xy 108.278619 94.218155)\r\n\t\t\t\t(xy 108.2774 94.202668) (xy 108.2774 94.045118) (xy 108.290155 94.003075) (xy 108.288244 94.002284)\r\n\t\t\t\t(xy 108.304132 93.963926) (xy 108.304132 93.963925) (xy 108.32645 93.910044) (xy 108.32645 93.766845)\r\n\t\t\t\t(xy 108.338094 93.728468) (xy 108.335134 93.727242) (xy 108.338862 93.718237) (xy 108.338867 93.718231)\r\n\t\t\t\t(xy 108.3505 93.659748) (xy 108.3505 93.020252) (xy 108.338867 92.961769) (xy 108.294552 92.895448)\r\n\t\t\t\t(xy 108.287361 92.890643) (xy 108.228233 92.851134) (xy 108.228231 92.851133) (xy 108.228228 92.851132)\r\n\t\t\t\t(xy 108.228227 92.851132) (xy 108.169758 92.839501) (xy 108.169748 92.8395) (xy 108.030252 92.8395)\r\n\t\t\t\t(xy 108.030251 92.8395) (xy 108.030241 92.839501) (xy 107.971772 92.851132) (xy 107.971767 92.851134)\r\n\t\t\t\t(xy 107.955001 92.862337) (xy 107.896113 92.878945) (xy 107.844999 92.862337) (xy 107.835105 92.855726)\r\n\t\t\t\t(xy 107.828231 92.851133) (xy 107.828228 92.851132) (xy 107.828227 92.851132) (xy 107.769758 92.839501)\r\n\t\t\t\t(xy 107.769748 92.8395) (xy 107.630252 92.8395) (xy 107.630251 92.8395) (xy 107.630241 92.839501)\r\n\t\t\t\t(xy 107.571772 92.851132) (xy 107.571766 92.851134) (xy 107.505451 92.895445) (xy 107.505445 92.895451)\r\n\t\t\t\t(xy 107.461134 92.961766) (xy 107.461132 92.961772) (xy 107.449501 93.020241) (xy 107.4495 93.020253)\r\n\t\t\t\t(xy 107.1505 93.020253) (xy 107.1505 93.020252) (xy 107.138867 92.961769) (xy 107.094552 92.895448)\r\n\t\t\t\t(xy 107.087361 92.890643) (xy 107.028233 92.851134) (xy 107.028231 92.851133) (xy 107.028228 92.851132)\r\n\t\t\t\t(xy 107.028227 92.851132) (xy 106.969758 92.839501) (xy 106.969748 92.8395) (xy 106.830252 92.8395)\r\n\t\t\t\t(xy 106.830251 92.8395) (xy 106.830241 92.839501) (xy 106.771772 92.851132) (xy 106.771767 92.851134)\r\n\t\t\t\t(xy 106.755001 92.862337) (xy 106.696113 92.878945) (xy 106.644999 92.862337) (xy 106.635105 92.855726)\r\n\t\t\t\t(xy 106.628231 92.851133) (xy 106.628228 92.851132) (xy 106.628227 92.851132) (xy 106.569758 92.839501)\r\n\t\t\t\t(xy 106.569748 92.8395) (xy 106.430252 92.8395) (xy 106.430251 92.8395) (xy 106.430241 92.839501)\r\n\t\t\t\t(xy 106.371772 92.851132) (xy 106.371767 92.851134) (xy 106.355001 92.862337) (xy 106.296113 92.878945)\r\n\t\t\t\t(xy 106.244999 92.862337) (xy 106.235105 92.855726) (xy 106.228231 92.851133) (xy 106.228228 92.851132)\r\n\t\t\t\t(xy 106.228227 92.851132) (xy 106.169758 92.839501) (xy 106.169748 92.8395) (xy 106.030252 92.8395)\r\n\t\t\t\t(xy 106.030251 92.8395) (xy 106.030241 92.839501) (xy 105.971772 92.851132) (xy 105.971766 92.851134)\r\n\t\t\t\t(xy 105.905451 92.895445) (xy 105.905445 92.895451) (xy 105.861134 92.961766) (xy 105.861132 92.961772)\r\n\t\t\t\t(xy 105.849501 93.020241) (xy 105.8495 93.020253) (xy 105.8495 93.67239) (xy 105.847489 93.678579)\r\n\t\t\t\t(xy 105.848697 93.684974) (xy 105.838983 93.704756) (xy 105.830593 93.730581) (xy 105.822546 93.74029)\r\n\t\t\t\t(xy 105.82153 93.741367) (xy 105.739511 93.823387) (xy 105.732045 93.836316) (xy 105.721546 93.847458)\r\n\t\t\t\t(xy 105.708069 93.854835) (xy 105.690266 93.870865) (xy 105.676059 93.872357) (xy 105.667876 93.876838)\r\n\t\t\t\t(xy 105.652356 93.874849) (xy 105.629416 93.87726) (xy 105.617503 93.870382) (xy 105.607187 93.86906)\r\n\t\t\t\t(xy 105.594493 93.857097) (xy 105.576428 93.846667) (xy 105.564264 93.829925) (xy 105.563764 93.829059)\r\n\t\t\t\t(xy 105.563433 93.827824) (xy 105.56266 93.827096) (xy 105.561278 93.819784) (xy 105.5505 93.779558)\r\n\t\t\t\t(xy 105.5505 93.020253) (xy 105.550498 93.020241) (xy 105.5469 93.002156) (xy 105.538867 92.961769)\r\n\t\t\t\t(xy 105.494552 92.895448) (xy 105.487361 92.890643) (xy 105.428233 92.851134) (xy 105.42715 92.850686)\r\n\t\t\t\t(xy 105.425668 92.849421) (xy 105.420124 92.845716) (xy 105.420562 92.845059) (xy 105.380624 92.81095)\r\n\t\t\t\t(xy 105.366339 92.751456) (xy 105.389752 92.694927) (xy 105.417566 92.67472) (xy 105.416599 92.673044)\r\n\t\t\t\t(xy 105.52494 92.610492) (xy 105.52494 92.610491) (xy 105.524945 92.610489) (xy 105.608821 92.526613)\r\n\t\t\t\t(xy 105.608824 92.526608) (xy 105.668129 92.42389) (xy 105.668129 92.423888) (xy 105.668131 92.423886)\r\n\t\t\t\t(xy 105.698832 92.309309) (xy 105.698832 92.190691) (xy 105.668131 92.076114) (xy 105.668129 92.076111)\r\n\t\t\t\t(xy 105.668129 92.076109) (xy 105.608824 91.973391) (xy 105.608822 91.973389) (xy 105.608821 91.973387)\r\n\t\t\t\t(xy 105.524945 91.889511) (xy 105.524942 91.889509) (xy 105.52494 91.889507) (xy 105.422221 91.830202)\r\n\t\t\t\t(xy 105.422222 91.830202) (xy 105.380068 91.818907) (xy 105.307641 91.7995) (xy 105.189023 91.7995)\r\n\t\t\t\t(xy 105.118899 91.818289) (xy 105.074441 91.830202) (xy 104.971723 91.889507) (xy 104.971718 91.889511)\r\n\t\t\t\t(xy 104.919169 91.94206) (xy 104.864652 91.969837) (xy 104.80422 91.960265) (xy 104.779167 91.942064)\r\n\t\t\t\t(xy 104.776616 91.939513) (xy 104.776608 91.939507) (xy 104.673889 91.880202) (xy 104.67389 91.880202)\r\n\t\t\t\t(xy 104.654935 91.875123) (xy 104.559309 91.8495) (xy 104.440691 91.8495) (xy 104.370567 91.868289)\r\n\t\t\t\t(xy 104.326109 91.880202) (xy 104.223391 91.939507) (xy 104.139507 92.023391) (xy 104.080202 92.126109)\r\n\t\t\t\t(xy 104.0674 92.173886) (xy 104.0495 92.240691) (xy 104.0495 92.359309) (xy 104.068601 92.430593)\r\n\t\t\t\t(xy 104.080202 92.47389) (xy 104.139507 92.576608) (xy 104.139509 92.57661) (xy 104.139511 92.576613)\r\n\t\t\t\t(xy 104.220505 92.657607) (xy 104.22413 92.664722) (xy 104.230593 92.669418) (xy 104.237756 92.691466)\r\n\t\t\t\t(xy 104.248281 92.712122) (xy 104.2495 92.727609) (xy 104.2495 92.7405) (xy 104.230593 92.798691)\r\n\t\t\t\t(xy 104.181093 92.834655) (xy 104.1505 92.8395) (xy 104.030252 92.8395) (xy 104.030251 92.8395)\r\n\t\t\t\t(xy 104.030241 92.839501) (xy 103.971769 92.851132) (xy 103.963009 92.854761) (xy 103.902012 92.859558)\r\n\t\t\t\t(xy 103.849844 92.827586) (xy 103.826433 92.771057) (xy 103.829501 92.737675) (xy 103.8505 92.659309)\r\n\t\t\t\t(xy 103.8505 92.540691) (xy 103.819799 92.426114) (xy 103.819797 92.426111) (xy 103.819797 92.426109)\r\n\t\t\t\t(xy 103.760492 92.323391) (xy 103.76049 92.323389) (xy 103.760489 92.323387) (xy 103.676613 92.239511)\r\n\t\t\t\t(xy 103.67661 92.239509) (xy 103.676608 92.239507) (xy 103.573889 92.180202) (xy 103.57389 92.180202)\r\n\t\t\t\t(xy 103.551923 92.174316) (xy 103.459309 92.1495) (xy 103.340691 92.1495) (xy 103.270567 92.168289)\r\n\t\t\t\t(xy 103.226109 92.180202) (xy 103.123391 92.239507) (xy 103.039507 92.323391) (xy 102.980202 92.426109)\r\n\t\t\t\t(xy 102.973667 92.4505) (xy 102.9495 92.540691) (xy 102.9495 92.659309) (xy 102.964389 92.714878)\r\n\t\t\t\t(xy 102.961188 92.775978) (xy 102.922682 92.823528) (xy 102.891336 92.836892) (xy 102.880199 92.8395)\r\n\t\t\t\t(xy 102.830252 92.8395) (xy 102.771769 92.851133) (xy 102.740066 92.872316) (xy 102.722573 92.876413)\r\n\t\t\t\t(xy 102.709114 92.875278) (xy 102.696113 92.878945) (xy 102.676315 92.872512) (xy 102.661604 92.871272)\r\n\t\t\t\t(xy 102.655035 92.865597) (xy 102.644999 92.862337) (xy 102.635105 92.855726) (xy 102.628231 92.851133)\r\n\t\t\t\t(xy 102.628228 92.851132) (xy 102.628227 92.851132) (xy 102.574675 92.840479) (xy 102.521291 92.810582)\r\n\t\t\t\t(xy 102.495676 92.755017) (xy 102.507614 92.695007) (xy 102.508196 92.693981) (xy 102.519799 92.673886)\r\n\t\t\t\t(xy 102.5505 92.559309) (xy 102.5505 92.440691) (xy 102.519799 92.326114) (xy 102.519797 92.326111)\r\n\t\t\t\t(xy 102.519797 92.326109) (xy 102.460492 92.223391) (xy 102.46049 92.223389) (x' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'y 102.460489 92.223387)\r\n\t\t\t\t(xy 102.376613 92.139511) (xy 102.37661 92.139509) (xy 102.376608 92.139507) (xy 102.273889 92.080202)\r\n\t\t\t\t(xy 102.27389 92.080202) (xy 102.258615 92.076109) (xy 102.159309 92.0495) (xy 102.040691 92.0495)\r\n\t\t\t\t(xy 102.004084 92.059309) (xy 101.926109 92.080202) (xy 101.823391 92.139507) (xy 101.739507 92.223391)\r\n\t\t\t\t(xy 101.680202 92.326109) (xy 101.667083 92.375069) (xy 101.6495 92.440691) (xy 101.237619 92.440691)\r\n\t\t\t\t(xy 101.218284 92.368532) (xy 101.213888 92.360918) (xy 101.158977 92.265809) (xy 101.158975 92.265807)\r\n\t\t\t\t(xy 101.158974 92.265805) (xy 101.075098 92.181929) (xy 101.075095 92.181927) (xy 101.075093 92.181925)\r\n\t\t\t\t(xy 100.972374 92.12262) (xy 100.972375 92.12262) (xy 100.958836 92.118992) (xy 100.857794 92.091918)\r\n\t\t\t\t(xy 100.739176 92.091918) (xy 100.669052 92.110707) (xy 100.624594 92.12262) (xy 100.521876 92.181925)\r\n\t\t\t\t(xy 100.437992 92.265809) (xy 100.378687 92.368527) (xy 100.364949 92.419799) (xy 100.350457 92.473886)\r\n\t\t\t\t(xy 100.347985 92.48311) (xy 100.347985 92.597649) (xy 100.333881 92.648576) (xy 100.327607 92.659033)\r\n\t\t\t\t(xy 100.287636 92.699006) (xy 100.251955 92.785145) (xy 100.248188 92.791427) (xy 100.230367 92.806941)\r\n\t\t\t\t(xy 100.21502 92.824911) (xy 100.207188 92.827119) (xy 100.20204 92.831602) (xy 100.186405 92.832981)\r\n\t\t\t\t(xy 100.163292 92.8395) (xy 100.030252 92.8395) (xy 100.030251 92.8395) (xy 100.030241 92.839501)\r\n\t\t\t\t(xy 99.971772 92.851132) (xy 99.971766 92.851134) (xy 99.905451 92.895445) (xy 99.905445 92.895451)\r\n\t\t\t\t(xy 99.861134 92.961766) (xy 99.861132 92.961772) (xy 99.849501 93.020241) (xy 99.8495 93.020253)\r\n\t\t\t\t(xy 99.8495 94.429558) (xy 99.836236 94.479058) (xy 99.780202 94.576109) (xy 99.763037 94.640169)\r\n\t\t\t\t(xy 99.7495 94.690691) (xy 99.4505 94.690691) (xy 99.419799 94.576114) (xy 99.419797 94.576111)\r\n\t\t\t\t(xy 99.419797 94.576109) (xy 99.360492 94.473391) (xy 99.36049 94.473389) (xy 99.360489 94.473387)\r\n\t\t\t\t(xy 99.276613 94.389511) (xy 99.27661 94.389509) (xy 99.199999 94.345277) (xy 99.159059 94.299807)\r\n\t\t\t\t(xy 99.1505 94.259541) (xy 99.1505 93.9395) (xy 99.169407 93.881309) (xy 99.218907 93.845345) (xy 99.2495 93.8405)\r\n\t\t\t\t(xy 99.369747 93.8405) (xy 99.369748 93.8405) (xy 99.428231 93.828867) (xy 99.494552 93.784552)\r\n\t\t\t\t(xy 99.538867 93.718231) (xy 99.5505 93.659748) (xy 99.5505 93.027609) (xy 99.569407 92.969418)\r\n\t\t\t\t(xy 99.57949 92.957611) (xy 99.660489 92.876613) (xy 99.660492 92.876608) (xy 99.719797 92.77389)\r\n\t\t\t\t(xy 99.719797 92.773888) (xy 99.719799 92.773886) (xy 99.7505 92.659309) (xy 99.7505 92.540691)\r\n\t\t\t\t(xy 99.719799 92.426114) (xy 99.719797 92.426111) (xy 99.719797 92.426109) (xy 99.660492 92.323391)\r\n\t\t\t\t(xy 99.66049 92.323389) (xy 99.660489 92.323387) (xy 99.576613 92.239511) (xy 99.57661 92.239509)\r\n\t\t\t\t(xy 99.576608 92.239507) (xy 99.473889 92.180202) (xy 99.47389 92.180202) (xy 99.451923 92.174316)\r\n\t\t\t\t(xy 99.359309 92.1495) (xy 99.240691 92.1495) (xy 99.170567 92.168289) (xy 99.126109 92.180202)\r\n\t\t\t\t(xy 99.023391 92.239507) (xy 98.939507 92.323391) (xy 98.880202 92.426109) (xy 98.873667 92.4505)\r\n\t\t\t\t(xy 98.8495 92.540691) (xy 98.8495 92.659309) (xy 98.867007 92.724648) (xy 98.863806 92.785748)\r\n\t\t\t\t(xy 98.825301 92.833298) (xy 98.809468 92.841651) (xy 98.800365 92.845444) (xy 98.771769 92.851133)\r\n\t\t\t\t(xy 98.746985 92.867693) (xy 98.738087 92.871402) (xy 98.716732 92.873129) (xy 98.696113 92.878945)\r\n\t\t\t\t(xy 98.685893 92.875624) (xy 98.677101 92.876336) (xy 98.664573 92.868697) (xy 98.644999 92.862337)\r\n\t\t\t\t(xy 98.635105 92.855726) (xy 98.628231 92.851133) (xy 98.628228 92.851132) (xy 98.628227 92.851132)\r\n\t\t\t\t(xy 98.569758 92.839501) (xy 98.569748 92.8395) (xy 98.430252 92.8395) (xy 98.430251 92.8395) (xy 98.430241 92.839501)\r\n\t\t\t\t(xy 98.371772 92.851132) (xy 98.371766 92.851134) (xy 98.305451 92.895445) (xy 98.305445 92.895451)\r\n\t\t\t\t(xy 98.261134 92.961766) (xy 98.261132 92.961772) (xy 98.249501 93.020241) (xy 98.2495 93.020253)\r\n\t\t\t\t(xy 98.2495 94.207776) (xy 98.230593 94.265967) (xy 98.181093 94.301931) (xy 98.176133 94.303399)\r\n\t\t\t\t(xy 98.129518 94.31589) (xy 98.076106 94.330202) (xy 97.973388 94.389507) (xy 97.889504 94.473391)\r\n\t\t\t\t(xy 97.830199 94.576109) (xy 97.813034 94.640169) (xy 97.799497 94.690691) (xy 74.0005 94.690691)\r\n\t\t\t\t(xy 74.0005 92.174034) (xy 76.7995 92.174034) (xy 76.7995 92.425965) (xy 76.838908 92.67478) (xy 76.916759 92.914379)\r\n\t\t\t\t(xy 77.026877 93.130499) (xy 77.03113 93.138845) (xy 77.179207 93.342656) (xy 77.357344 93.520793)\r\n\t\t\t\t(xy 77.561155 93.66887) (xy 77.785621 93.783241) (xy 78.025215 93.86109) (xy 78.025216 93.86109)\r\n\t\t\t\t(xy 78.025219 93.861091) (xy 78.274035 93.9005) (xy 78.274038 93.9005) (xy 78.525965 93.9005) (xy 78.77478 93.861091)\r\n\t\t\t\t(xy 78.774781 93.86109) (xy 78.774785 93.86109) (xy 79.014379 93.783241) (xy 79.238845 93.66887)\r\n\t\t\t\t(xy 79.442656 93.520793) (xy 79.620793 93.342656) (xy 79.76887 93.138845) (xy 79.829296 93.020253)\r\n\t\t\t\t(xy 89.8495 93.020253) (xy 89.8495 93.659746) (xy 89.849501 93.659758) (xy 89.861132 93.718227)\r\n\t\t\t\t(xy 89.861134 93.718233) (xy 89.904571 93.78324) (xy 89.905448 93.784552) (xy 89.971769 93.828867)\r\n\t\t\t\t(xy 90.016231 93.837711) (xy 90.030241 93.840498) (xy 90.030246 93.840498) (xy 90.030252 93.8405)\r\n\t\t\t\t(xy 90.030253 93.8405) (xy 90.169747 93.8405) (xy 90.169748 93.8405) (xy 90.228231 93.828867) (xy 90.294552 93.784552)\r\n\t\t\t\t(xy 90.338867 93.718231) (xy 90.3505 93.659748) (xy 90.3505 93.020253) (xy 90.6495 93.020253) (xy 90.6495 93.659746)\r\n\t\t\t\t(xy 90.649501 93.659758) (xy 90.661132 93.718227) (xy 90.661134 93.718233) (xy 90.704571 93.78324)\r\n\t\t\t\t(xy 90.705448 93.784552) (xy 90.771769 93.828867) (xy 90.816231 93.837711) (xy 90.830241 93.840498)\r\n\t\t\t\t(xy 90.830246 93.840498) (xy 90.830252 93.8405) (xy 90.830253 93.8405) (xy 90.969747 93.8405) (xy 90.969748 93.8405)\r\n\t\t\t\t(xy 91.028231 93.828867) (xy 91.044997 93.817663) (xy 91.103885 93.801054) (xy 91.155002 93.817663)\r\n\t\t\t\t(xy 91.171769 93.828867) (xy 91.216231 93.837711) (xy 91.230241 93.840498) (xy 91.230246 93.840498)\r\n\t\t\t\t(xy 91.230252 93.8405) (xy 91.230253 93.8405) (xy 91.369747 93.8405) (xy 91.369748 93.8405) (xy 91.428231 93.828867)\r\n\t\t\t\t(xy 91.444997 93.817663) (xy 91.503885 93.801054) (xy 91.555002 93.817663) (xy 91.571769 93.828867)\r\n\t\t\t\t(xy 91.616231 93.837711) (xy 91.630241 93.840498) (xy 91.630246 93.840498) (xy 91.630252 93.8405)\r\n\t\t\t\t(xy 91.630253 93.8405) (xy 91.769747 93.8405) (xy 91.769748 93.8405) (xy 91.828231 93.828867) (xy 91.844997 93.817663)\r\n\t\t\t\t(xy 91.903885 93.801054) (xy 91.955002 93.817663) (xy 91.971769 93.828867) (xy 92.016231 93.837711)\r\n\t\t\t\t(xy 92.030241 93.840498) (xy 92.030246 93.840498) (xy 92.030252 93.8405) (xy 92.030253 93.8405)\r\n\t\t\t\t(xy 92.169747 93.8405) (xy 92.169748 93.8405) (xy 92.228231 93.828867) (xy 92.244997 93.817663)\r\n\t\t\t\t(xy 92.303885 93.801054) (xy 92.355002 93.817663) (xy 92.371769 93.828867) (xy 92.416231 93.837711)\r\n\t\t\t\t(xy 92.430241 93.840498) (xy 92.430246 93.840498) (xy 92.430252 93.8405) (xy 92.430253 93.8405)\r\n\t\t\t\t(xy 92.569747 93.8405) (xy 92.569748 93.8405) (xy 92.628231 93.828867) (xy 92.644997 93.817663)\r\n\t\t\t\t(xy 92.703885 93.801054) (xy 92.731188 93.806019) (xy 92.743879 93.810231) (xy 92.771769 93.828867)\r\n\t\t\t\t(xy 92.830252 93.8405) (xy 92.835069 93.8405) (xy 92.84759 93.844656) (xy 92.863744 93.856549) (xy 92.882126 93.864579)\r\n\t\t\t\t(xy 92.887812 93.874269) (xy 92.896861 93.880932) (xy 92.902939 93.900049) (xy 92.913091 93.91735)\r\n\t\t\t\t(xy 92.911995 93.928532) (xy 92.9154 93.939241) (xy 92.909081 93.958278) (xy 92.907125 93.978243)\r\n\t\t\t\t(xy 92.902139 93.988114) (xy 92.880202 94.02611) (xy 92.880201 94.026114) (xy 92.8495 94.140691)\r\n\t\t\t\t(xy 92.8495 94.259309) (xy 92.86821 94.329135) (xy 92.880202 94.37389) (xy 92.939507 94.476608)\r\n\t\t\t\t(xy 92.939509 94.47661) (xy 92.939511 94.476613) (xy 93.023387 94.560489) (xy 93.023389 94.56049)\r\n\t\t\t\t(xy 93.023391 94.560492) (xy 93.12611 94.619797) (xy 93.126111 94.619797) (xy 93.126114 94.619799)\r\n\t\t\t\t(xy 93.240691 94.6505) (xy 93.240693 94.6505) (xy 93.359307 94.6505) (xy 93.359309 94.6505) (xy 93.473886 94.619799)\r\n\t\t\t\t(xy 93.473888 94.619797) (xy 93.47389 94.619797) (xy 93.576608 94.560492) (xy 93.576608 94.560491)\r\n\t\t\t\t(xy 93.576613 94.560489) (xy 93.660489 94.47661' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'3) (xy 93.684315 94.435345) (xy 93.719797 94.37389)\r\n\t\t\t\t(xy 93.719797 94.373888) (xy 93.719799 94.373886) (xy 93.7505 94.259309) (xy 93.7505 94.140691)\r\n\t\t\t\t(xy 93.719799 94.026114) (xy 93.719797 94.02611) (xy 93.719797 94.026109) (xy 93.697861 93.988115)\r\n\t\t\t\t(xy 93.685139 93.928267) (xy 93.710026 93.872371) (xy 93.75241 93.844656) (xy 93.764931 93.8405)\r\n\t\t\t\t(xy 93.769748 93.8405) (xy 93.828231 93.828867) (xy 93.856119 93.810232) (xy 93.868813 93.806019)\r\n\t\t\t\t(xy 93.886683 93.805905) (xy 93.903885 93.801054) (xy 93.918203 93.805706) (xy 93.929997 93.805632)\r\n\t\t\t\t(xy 93.939963 93.812777) (xy 93.955002 93.817663) (xy 93.971769 93.828867) (xy 93.995582 93.833603)\r\n\t\t\t\t(xy 94.035023 93.84145) (xy 94.034555 93.843799) (xy 94.082126 93.864579) (xy 94.113091 93.91735)\r\n\t\t\t\t(xy 94.107125 93.978243) (xy 94.102139 93.988114) (xy 94.080202 94.02611) (xy 94.080201 94.026114)\r\n\t\t\t\t(xy 94.0495 94.140691) (xy 94.0495 94.259309) (xy 94.06821 94.329135) (xy 94.080202 94.37389) (xy 94.139507 94.476608)\r\n\t\t\t\t(xy 94.139509 94.47661) (xy 94.139511 94.476613) (xy 94.223387 94.560489) (xy 94.223389 94.56049)\r\n\t\t\t\t(xy 94.223391 94.560492) (xy 94.32611 94.619797) (xy 94.326111 94.619797) (xy 94.326114 94.619799)\r\n\t\t\t\t(xy 94.440691 94.6505) (xy 94.440693 94.6505) (xy 94.559307 94.6505) (xy 94.559309 94.6505) (xy 94.673886 94.619799)\r\n\t\t\t\t(xy 94.673888 94.619797) (xy 94.67389 94.619797) (xy 94.776608 94.560492) (xy 94.776608 94.560491)\r\n\t\t\t\t(xy 94.776613 94.560489) (xy 94.860489 94.476613) (xy 94.884315 94.435345) (xy 94.919797 94.37389)\r\n\t\t\t\t(xy 94.919797 94.373888) (xy 94.919799 94.373886) (xy 94.9505 94.259309) (xy 94.9505 94.140691)\r\n\t\t\t\t(xy 94.919799 94.026114) (xy 94.919797 94.02611) (xy 94.919797 94.026109) (xy 94.897861 93.988115)\r\n\t\t\t\t(xy 94.885139 93.928267) (xy 94.910026 93.872371) (xy 94.963014 93.841778) (xy 94.964981 93.841473)\r\n\t\t\t\t(xy 94.964977 93.84145) (xy 95.000019 93.834478) (xy 95.028231 93.828867) (xy 95.094552 93.784552)\r\n\t\t\t\t(xy 95.138867 93.718231) (xy 95.1505 93.659748) (xy 95.1505 93.020253) (xy 95.4495 93.020253) (xy 95.4495 93.659746)\r\n\t\t\t\t(xy 95.449501 93.659758) (xy 95.461132 93.718227) (xy 95.461134 93.718233) (xy 95.504571 93.78324)\r\n\t\t\t\t(xy 95.505448 93.784552) (xy 95.571769 93.828867) (xy 95.616231 93.837711) (xy 95.630241 93.840498)\r\n\t\t\t\t(xy 95.630246 93.840498) (xy 95.630252 93.8405) (xy 95.630253 93.8405) (xy 95.769747 93.8405) (xy 95.769748 93.8405)\r\n\t\t\t\t(xy 95.828231 93.828867) (xy 95.844997 93.817663) (xy 95.903885 93.801054) (xy 95.955002 93.817663)\r\n\t\t\t\t(xy 95.971769 93.828867) (xy 96.016231 93.837711) (xy 96.030241 93.840498) (xy 96.030246 93.840498)\r\n\t\t\t\t(xy 96.030252 93.8405) (xy 96.030253 93.8405) (xy 96.169747 93.8405) (xy 96.169748 93.8405) (xy 96.228231 93.828867)\r\n\t\t\t\t(xy 96.244997 93.817663) (xy 96.269902 93.810639) (xy 96.293986 93.801161) (xy 96.298845 93.802475)\r\n\t\t\t\t(xy 96.303885 93.801054) (xy 96.353218 93.816498) (xy 96.354084 93.81705) (xy 96.371769 93.828867)\r\n\t\t\t\t(xy 96.373006 93.829113) (xy 96.381513 93.834536) (xy 96.395718 93.85178) (xy 96.412706 93.866288)\r\n\t\t\t\t(xy 96.414776 93.874913) (xy 96.420417 93.88176) (xy 96.421774 93.904057) (xy 96.42699 93.925783)\r\n\t\t\t\t(xy 96.423734 93.936267) (xy 96.424134 93.942833) (xy 96.41938 93.950289) (xy 96.414032 93.967515)\r\n\t\t\t\t(xy 96.380202 94.02611) (xy 96.380201 94.026114) (xy 96.3495 94.140691) (xy 96.3495 94.259309) (xy 96.36821 94.329135)\r\n\t\t\t\t(xy 96.380202 94.37389) (xy 96.439507 94.476608) (xy 96.439509 94.47661) (xy 96.439511 94.476613)\r\n\t\t\t\t(xy 96.523387 94.560489) (xy 96.523389 94.56049) (xy 96.523391 94.560492) (xy 96.62611 94.619797)\r\n\t\t\t\t(xy 96.626111 94.619797) (xy 96.626114 94.619799) (xy 96.740691 94.6505) (xy 96.740693 94.6505)\r\n\t\t\t\t(xy 96.859307 94.6505) (xy 96.859309 94.6505) (xy 96.973886 94.619799) (xy 96.973888 94.619797)\r\n\t\t\t\t(xy 96.97389 94.619797) (xy 97.010837 94.598466) (xy 97.076608 94.560492) (xy 97.076608 94.560491)\r\n\t\t\t\t(xy 97.076613 94.560489) (xy 97.160489 94.476613) (xy 97.184315 94.435345) (xy 97.219797 94.37389)\r\n\t\t\t\t(xy 97.219797 94.373888) (xy 97.219799 94.373886) (xy 97.2505 94.259309) (xy 97.2505 94.140691)\r\n\t\t\t\t(xy 97.219799 94.026114) (xy 97.219797 94.02611) (xy 97.219797 94.026109) (xy 97.198372 93.989)\r\n\t\t\t\t(xy 97.18565 93.929152) (xy 97.210537 93.873256) (xy 97.263525 93.842663) (xy 97.284108 93.8405)\r\n\t\t\t\t(xy 97.369747 93.8405) (xy 97.369748 93.8405) (xy 97.428231 93.828867) (xy 97.444997 93.817663)\r\n\t\t\t\t(xy 97.503885 93.801054) (xy 97.555002 93.817663) (xy 97.571769 93.828867) (xy 97.616231 93.837711)\r\n\t\t\t\t(xy 97.630241 93.840498) (xy 97.630246 93.840498) (xy 97.630252 93.8405) (xy 97.630253 93.8405)\r\n\t\t\t\t(xy 97.769747 93.8405) (xy 97.769748 93.8405) (xy 97.828231 93.828867) (xy 97.894552 93.784552)\r\n\t\t\t\t(xy 97.938867 93.718231) (xy 97.9505 93.659748) (xy 97.9505 93.020252) (xy 97.938867 92.961769)\r\n\t\t\t\t(xy 97.894552 92.895448) (xy 97.887361 92.890643) (xy 97.828233 92.851134) (xy 97.828231 92.851133)\r\n\t\t\t\t(xy 97.828228 92.851132) (xy 97.828227 92.851132) (xy 97.769758 92.839501) (xy 97.769748 92.8395)\r\n\t\t\t\t(xy 97.630252 92.8395) (xy 97.630251 92.8395) (xy 97.630241 92.839501) (xy 97.571772 92.851132)\r\n\t\t\t\t(xy 97.571767 92.851134) (xy 97.555001 92.862337) (xy 97.496113 92.878945) (xy 97.444999 92.862337)\r\n\t\t\t\t(xy 97.435105 92.855726) (xy 97.428231 92.851133) (xy 97.428228 92.851132) (xy 97.428227 92.851132)\r\n\t\t\t\t(xy 97.369758 92.839501) (xy 97.369748 92.8395) (xy 97.230252 92.8395) (xy 97.230251 92.8395) (xy 97.230241 92.839501)\r\n\t\t\t\t(xy 97.171772 92.851132) (xy 97.171766 92.851134) (xy 97.105451 92.895445) (xy 97.105445 92.895451)\r\n\t\t\t\t(xy 97.061134 92.961766) (xy 97.061132 92.961772) (xy 97.049501 93.020241) (xy 97.0495 93.020253)\r\n\t\t\t\t(xy 97.0495 93.65975) (xy 97.049715 93.661936) (xy 97.0495 93.662915) (xy 97.0495 93.664612) (xy 97.049127 93.664612)\r\n\t\t\t\t(xy 97.043265 93.691312) (xy 97.037153 93.720733) (xy 97.036719 93.721127) (xy 97.036594 93.721698)\r\n\t\t\t\t(xy 97.014138 93.741647) (xy 96.991872 93.761882) (xy 96.99131 93.761927) (xy 96.990852 93.762335)\r\n\t\t\t\t(xy 96.931052 93.768557) (xy 96.928284 93.767981) (xy 96.859309 93.7495) (xy 96.839325 93.7495)\r\n\t\t\t\t(xy 96.829362 93.74743) (xy 96.811203 93.737056) (xy 96.791309 93.730593) (xy 96.785222 93.722215)\r\n\t\t\t\t(xy 96.776234 93.717081) (xy 96.76764 93.698016) (xy 96.755345 93.681093) (xy 96.752816 93.66513)\r\n\t\t\t\t(xy 96.751091 93.661301) (xy 96.751726 93.658243) (xy 96.7505 93.6505) (xy 96.7505 93.020253) (xy 96.750498 93.020241)\r\n\t\t\t\t(xy 96.7469 93.002156) (xy 96.738867 92.961769) (xy 96.694552 92.895448) (xy 96.687361 92.890643)\r\n\t\t\t\t(xy 96.628233 92.851134) (xy 96.628231 92.851133) (xy 96.628228 92.851132) (xy 96.628227 92.851132)\r\n\t\t\t\t(xy 96.569758 92.839501) (xy 96.569748 92.8395) (xy 96.430252 92.8395) (xy 96.430251 92.8395) (xy 96.430241 92.839501)\r\n\t\t\t\t(xy 96.371772 92.851132) (xy 96.371767 92.851134) (xy 96.355001 92.862337) (xy 96.296113 92.878945)\r\n\t\t\t\t(xy 96.244999 92.862337) (xy 96.235105 92.855726) (xy 96.228231 92.851133) (xy 96.228228 92.851132)\r\n\t\t\t\t(xy 96.228227 92.851132) (xy 96.169758 92.839501) (xy 96.169748 92.8395) (xy 96.030252 92.8395)\r\n\t\t\t\t(xy 96.030251 92.8395) (xy 96.030241 92.839501) (xy 95.971772 92.851132) (xy 95.971767 92.851134)\r\n\t\t\t\t(xy 95.955001 92.862337) (xy 95.896113 92.878945) (xy 95.844999 92.862337) (xy 95.835105 92.855726)\r\n\t\t\t\t(xy 95.828231 92.851133) (xy 95.828228 92.851132) (xy 95.828227 92.851132) (xy 95.769758 92.839501)\r\n\t\t\t\t(xy 95.769748 92.8395) (xy 95.630252 92.8395) (xy 95.630251 92.8395) (xy 95.630241 92.839501) (xy 95.571772 92.851132)\r\n\t\t\t\t(xy 95.571766 92.851134) (xy 95.505451 92.895445) (xy 95.505445 92.895451) (xy 95.461134 92.961766)\r\n\t\t\t\t(xy 95.461132 92.961772) (xy 95.449501 93.020241) (xy 95.4495 93.020253) (xy 95.1505 93.020253)\r\n\t\t\t\t(xy 95.1505 93.020252) (xy 95.138867 92.961769) (xy 95.094552 92.895448) (xy 95.087361 92.890643)\r\n\t\t\t\t(xy 95.028233 92.851134) (xy 95.028231 92.851133) (xy 95.028228 92.851132) (xy 95.028227 92.851132)\r\n\t\t\t\t(xy 94.969758 92.839501) (xy 94.969748 92.8395) (xy 94.950706 92.8395) (xy 94.892515 92.820593)\r\n\t\t\t\t(xy 94.856551 92.771093) (xy 94.855079 92.714877) (xy 94.856735 92.708696) (xy 94.856736 92.708695)\r\n\t\t\t\t(xy 94.887437 92.594118) (xy 94.887437 92.4755) (xy 94.85673' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'6 92.360923) (xy 94.856734 92.36092)\r\n\t\t\t\t(xy 94.856734 92.360918) (xy 94.797429 92.2582) (xy 94.797427 92.258198) (xy 94.797426 92.258196)\r\n\t\t\t\t(xy 94.71355 92.17432) (xy 94.713547 92.174318) (xy 94.713545 92.174316) (xy 94.610826 92.115011)\r\n\t\t\t\t(xy 94.610827 92.115011) (xy 94.595772 92.110977) (xy 94.496246 92.084309) (xy 94.377628 92.084309)\r\n\t\t\t\t(xy 94.307504 92.103098) (xy 94.263046 92.115011) (xy 94.160328 92.174316) (xy 94.076446 92.258198)\r\n\t\t\t\t(xy 94.051382 92.30161) (xy 94.005912 92.34255) (xy 93.945062 92.348945) (xy 93.892074 92.318352)\r\n\t\t\t\t(xy 93.879909 92.301609) (xy 93.872982 92.289611) (xy 93.87298 92.289607) (xy 93.789104 92.205731)\r\n\t\t\t\t(xy 93.789101 92.205729) (xy 93.789099 92.205727) (xy 93.68638 92.146422) (xy 93.686381 92.146422)\r\n\t\t\t\t(xy 93.672842 92.142794) (xy 93.5718 92.11572) (xy 93.453182 92.11572) (xy 93.383058 92.134509)\r\n\t\t\t\t(xy 93.3386 92.146422) (xy 93.235882 92.205727) (xy 93.151998 92.289611) (xy 93.092693 92.392329)\r\n\t\t\t\t(xy 93.08244 92.430593) (xy 93.061991 92.506911) (xy 93.061991 92.625529) (xy 93.075172 92.67472)\r\n\t\t\t\t(xy 93.08654 92.717147) (xy 93.083337 92.778249) (xy 93.044832 92.825799) (xy 92.985731 92.841634)\r\n\t\t\t\t(xy 92.971599 92.839868) (xy 92.96975 92.8395) (xy 92.969748 92.8395) (xy 92.830252 92.8395) (xy 92.830251 92.8395)\r\n\t\t\t\t(xy 92.830241 92.839501) (xy 92.771772 92.851132) (xy 92.771767 92.851134) (xy 92.755001 92.862337)\r\n\t\t\t\t(xy 92.696113 92.878945) (xy 92.644999 92.862337) (xy 92.635105 92.855726) (xy 92.628231 92.851133)\r\n\t\t\t\t(xy 92.628228 92.851132) (xy 92.628227 92.851132) (xy 92.569758 92.839501) (xy 92.569748 92.8395)\r\n\t\t\t\t(xy 92.430252 92.8395) (xy 92.430251 92.8395) (xy 92.430241 92.839501) (xy 92.371772 92.851132)\r\n\t\t\t\t(xy 92.371767 92.851134) (xy 92.355001 92.862337) (xy 92.296113 92.878945) (xy 92.244999 92.862337)\r\n\t\t\t\t(xy 92.235105 92.855726) (xy 92.228231 92.851133) (xy 92.228228 92.851132) (xy 92.228227 92.851132)\r\n\t\t\t\t(xy 92.169758 92.839501) (xy 92.169748 92.8395) (xy 92.030252 92.8395) (xy 92.030251 92.8395) (xy 92.030241 92.839501)\r\n\t\t\t\t(xy 91.971772 92.851132) (xy 91.971767 92.851134) (xy 91.955001 92.862337) (xy 91.896113 92.878945)\r\n\t\t\t\t(xy 91.844999 92.862337) (xy 91.835105 92.855726) (xy 91.828231 92.851133) (xy 91.828228 92.851132)\r\n\t\t\t\t(xy 91.828227 92.851132) (xy 91.769758 92.839501) (xy 91.769748 92.8395) (xy 91.630252 92.8395)\r\n\t\t\t\t(xy 91.630251 92.8395) (xy 91.630241 92.839501) (xy 91.571772 92.851132) (xy 91.571767 92.851134)\r\n\t\t\t\t(xy 91.555001 92.862337) (xy 91.496113 92.878945) (xy 91.444999 92.862337) (xy 91.435105 92.855726)\r\n\t\t\t\t(xy 91.428231 92.851133) (xy 91.428228 92.851132) (xy 91.428227 92.851132) (xy 91.369758 92.839501)\r\n\t\t\t\t(xy 91.369748 92.8395) (xy 91.230252 92.8395) (xy 91.230251 92.8395) (xy 91.230241 92.839501) (xy 91.171772 92.851132)\r\n\t\t\t\t(xy 91.171767 92.851134) (xy 91.155001 92.862337) (xy 91.096113 92.878945) (xy 91.044999 92.862337)\r\n\t\t\t\t(xy 91.035105 92.855726) (xy 91.028231 92.851133) (xy 91.028228 92.851132) (xy 91.028227 92.851132)\r\n\t\t\t\t(xy 90.969758 92.839501) (xy 90.969748 92.8395) (xy 90.830252 92.8395) (xy 90.830251 92.8395) (xy 90.830241 92.839501)\r\n\t\t\t\t(xy 90.771772 92.851132) (xy 90.771766 92.851134) (xy 90.705451 92.895445) (xy 90.705445 92.895451)\r\n\t\t\t\t(xy 90.661134 92.961766) (xy 90.661132 92.961772) (xy 90.649501 93.020241) (xy 90.6495 93.020253)\r\n\t\t\t\t(xy 90.3505 93.020253) (xy 90.3505 93.020252) (xy 90.338867 92.961769) (xy 90.294552 92.895448)\r\n\t\t\t\t(xy 90.287361 92.890643) (xy 90.228233 92.851134) (xy 90.228231 92.851133) (xy 90.228228 92.851132)\r\n\t\t\t\t(xy 90.228227 92.851132) (xy 90.169758 92.839501) (xy 90.169748 92.8395) (xy 90.030252 92.8395)\r\n\t\t\t\t(xy 90.030251 92.8395) (xy 90.030241 92.839501) (xy 89.971772 92.851132) (xy 89.971766 92.851134)\r\n\t\t\t\t(xy 89.905451 92.895445) (xy 89.905445 92.895451) (xy 89.861134 92.961766) (xy 89.861132 92.961772)\r\n\t\t\t\t(xy 89.849501 93.020241) (xy 89.8495 93.020253) (xy 79.829296 93.020253) (xy 79.883241 92.914379)\r\n\t\t\t\t(xy 79.96109 92.674785) (xy 79.961091 92.67478) (xy 80.0005 92.425965) (xy 80.0005 92.174034) (xy 79.961091 91.925219)\r\n\t\t\t\t(xy 79.96109 91.925215) (xy 79.883241 91.685621) (xy 79.76887 91.461155) (xy 79.620793 91.257344)\r\n\t\t\t\t(xy 79.442656 91.079207) (xy 79.238845 90.93113) (xy 79.238844 90.931129) (xy 79.238842 90.931128)\r\n\t\t\t\t(xy 79.014379 90.816759) (xy 78.77478 90.738908) (xy 78.525965 90.6995) (xy 78.525962 90.6995) (xy 78.274038 90.6995)\r\n\t\t\t\t(xy 78.274035 90.6995) (xy 78.025219 90.738908) (xy 77.78562 90.816759) (xy 77.561157 90.931128)\r\n\t\t\t\t(xy 77.357345 91.079206) (xy 77.179206 91.257345) (xy 77.031128 91.461157) (xy 76.916759 91.68562)\r\n\t\t\t\t(xy 76.838908 91.925219) (xy 76.7995 92.174034) (xy 74.0005 92.174034) (xy 74.0005 88.840691) (xy 79.5495 88.840691)\r\n\t\t\t\t(xy 79.5495 88.959309) (xy 79.571843 89.042695) (xy 79.580202 89.07389) (xy 79.639507 89.176608)\r\n\t\t\t\t(xy 79.639509 89.17661) (xy 79.639511 89.176613) (xy 79.723387 89.260489) (xy 79.723389 89.26049)\r\n\t\t\t\t(xy 79.723391 89.260492) (xy 79.82611 89.319797) (xy 79.826111 89.319797) (xy 79.826114 89.319799)\r\n\t\t\t\t(xy 79.940691 89.3505) (xy 79.940693 89.3505) (xy 80.059307 89.3505) (xy 80.059309 89.3505) (xy 80.173886 89.319799)\r\n\t\t\t\t(xy 80.173888 89.319797) (xy 80.17389 89.319797) (xy 80.276608 89.260492) (xy 80.276608 89.260491)\r\n\t\t\t\t(xy 80.276613 89.260489) (xy 80.360489 89.176613) (xy 80.380255 89.142378) (xy 80.419797 89.07389)\r\n\t\t\t\t(xy 80.419797 89.073888) (xy 80.419799 89.073886) (xy 80.4505 88.959309) (xy 80.4505 88.840691)\r\n\t\t\t\t(xy 80.419799 88.726114) (xy 80.419797 88.726111) (xy 80.419797 88.726109) (xy 80.360492 88.623391)\r\n\t\t\t\t(xy 80.36049 88.623389) (xy 80.360489 88.623387) (xy 80.276613 88.539511) (xy 80.27661 88.539509)\r\n\t\t\t\t(xy 80.276608 88.539507) (xy 80.173889 88.480202) (xy 80.17389 88.480202) (xy 80.160351 88.476574)\r\n\t\t\t\t(xy 80.059309 88.4495) (xy 79.940691 88.4495) (xy 79.870567 88.468289) (xy 79.826109 88.480202)\r\n\t\t\t\t(xy 79.723391 88.539507) (xy 79.639507 88.623391) (xy 79.580202 88.726109) (xy 79.571058 88.760235)\r\n\t\t\t\t(xy 79.5495 88.840691) (xy 74.0005 88.840691) (xy 74.0005 79.585172) (xy 74.8495 79.585172) (xy 74.8495 80.664827)\r\n\t\t\t\t(xy 74.858232 80.70872) (xy 74.858234 80.708724) (xy 74.858361 80.708914) (xy 74.891496 80.758504)\r\n\t\t\t\t(xy 74.941278 80.791767) (xy 74.98518 80.8005) (xy 74.985182 80.8005) (xy 74.985186 80.800502) (xy 74.989952 80.80145)\r\n\t\t\t\t(xy 74.989744 80.802494) (xy 75.041245 80.825007) (xy 75.072195 80.877787) (xy 75.0745 80.899025)\r\n\t\t\t\t(xy 75.0745 83.500974) (xy 75.055593 83.559165) (xy 75.006093 83.595129) (xy 74.989943 83.598505)\r\n\t\t\t\t(xy 74.989952 83.59855) (xy 74.985406 83.599454) (xy 74.985202 83.599497) (xy 74.985181 83.599499)\r\n\t\t\t\t(xy 74.941279 83.608232) (xy 74.941275 83.608234) (xy 74.891498 83.641494) (xy 74.891494 83.641498)\r\n\t\t\t\t(xy 74.858234 83.691275) (xy 74.858232 83.691279) (xy 74.8495 83.735172) (xy 74.8495 84.814827)\r\n\t\t\t\t(xy 74.858232 84.85872) (xy 74.858234 84.858724) (xy 74.877138 84.887016) (xy 74.891496 84.908504)\r\n\t\t\t\t(xy 74.941278 84.941767) (xy 74.952327 84.943964) (xy 74.985172 84.950499) (xy 74.985178 84.950499)\r\n\t\t\t\t(xy 74.98518 84.9505) (xy 75.605231 84.9505) (xy 75.663422 84.969407) (xy 75.675235 84.979496) (xy 77.137636 86.441897)\r\n\t\t\t\t(xy 77.137635 86.441897) (xy 77.208103 86.512364) (xy 77.300171 86.5505) (xy 77.300172 86.5505)\r\n\t\t\t\t(xy 85.995231 86.5505) (xy 86.053422 86.569407) (xy 86.065235 86.579496) (xy 89.820504 90.334764)\r\n\t\t\t\t(xy 89.848281 90.389281) (xy 89.8495 90.404768) (xy 89.8495 90.579746) (xy 89.849501 90.579758)\r\n\t\t\t\t(xy 89.861132 90.638227) (xy 89.861134 90.638233) (xy 89.902072 90.6995) (xy 89.905448 90.704552)\r\n\t\t\t\t(xy 89.971769 90.748867) (xy 90.025324 90.759519) (xy 90.078707 90.789416) (xy 90.104323 90.844981)\r\n\t\t\t\t(xy 90.092386 90.904991) (xy 90.091746 90.906116) (xy 90.080202 90.92611) (xy 90.080201 90.926114)\r\n\t\t\t\t(xy 90.0495 91.040691) (xy 90.0495 91.159309) (xy 90.066727 91.2236) (xy 90.080202 91.27389) (xy 90.139507 91.376608)\r\n\t\t\t\t(xy 90.139509 91.37661) (xy 90.139511 91.376613) (xy 90.223387 91.460489) (xy 90.223389 91.46049)\r\n\t\t\t\t(xy 90.223391 91.460492) (xy 90.32611 91.519797) (xy 90.326111 91.519797) (xy 90.326114 91.519799)\r\n\t\t\t\t(xy 90.440691 91.5505) (xy 90.440693 91.5505) (xy ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'90.559307 91.5505) (xy 90.559309 91.5505) (xy 90.673886 91.519799)\r\n\t\t\t\t(xy 90.673888 91.519797) (xy 90.67389 91.519797) (xy 90.776608 91.460492) (xy 90.776608 91.460491)\r\n\t\t\t\t(xy 90.776613 91.460489) (xy 90.860489 91.376613) (xy 90.891674 91.3226) (xy 90.919797 91.27389)\r\n\t\t\t\t(xy 90.919797 91.273888) (xy 90.919799 91.273886) (xy 90.9505 91.159309) (xy 90.9505 91.040691)\r\n\t\t\t\t(xy 90.919799 90.926114) (xy 90.908253 90.906117) (xy 90.903101 90.881878) (xy 90.895007 90.858459)\r\n\t\t\t\t(xy 90.896841 90.852432) (xy 90.895532 90.84627) (xy 90.905611 90.823629) (xy 90.912829 90.799927)\r\n\t\t\t\t(xy 90.917533 90.796853) (xy 90.920418 90.790374) (xy 90.961651 90.763048) (xy 90.969023 90.7605)\r\n\t\t\t\t(xy 90.969748 90.7605) (xy 91.028231 90.748867) (xy 91.055605 90.730575) (xy 91.067661 90.726409)\r\n\t\t\t\t(xy 91.086116 90.726065) (xy 91.103885 90.721054) (xy 91.117511 90.725481) (xy 91.128836 90.725271)\r\n\t\t\t\t(xy 91.13925 90.732545) (xy 91.155002 90.737663) (xy 91.171769 90.748867) (xy 91.216231 90.757711)\r\n\t\t\t\t(xy 91.230241 90.760498) (xy 91.230246 90.760498) (xy 91.230252 90.7605) (xy 91.230253 90.7605)\r\n\t\t\t\t(xy 91.369747 90.7605) (xy 91.369748 90.7605) (xy 91.428231 90.748867) (xy 91.444997 90.737663)\r\n\t\t\t\t(xy 91.503885 90.721054) (xy 91.555002 90.737663) (xy 91.571769 90.748867) (xy 91.616231 90.757711)\r\n\t\t\t\t(xy 91.630241 90.760498) (xy 91.630246 90.760498) (xy 91.630252 90.7605) (xy 91.630253 90.7605)\r\n\t\t\t\t(xy 91.769747 90.7605) (xy 91.769748 90.7605) (xy 91.828231 90.748867) (xy 91.844997 90.737663)\r\n\t\t\t\t(xy 91.903885 90.721054) (xy 91.955002 90.737663) (xy 91.971769 90.748867) (xy 92.016231 90.757711)\r\n\t\t\t\t(xy 92.030241 90.760498) (xy 92.030246 90.760498) (xy 92.030252 90.7605) (xy 92.030253 90.7605)\r\n\t\t\t\t(xy 92.169747 90.7605) (xy 92.169748 90.7605) (xy 92.228231 90.748867) (xy 92.244997 90.737663)\r\n\t\t\t\t(xy 92.303885 90.721054) (xy 92.355002 90.737663) (xy 92.371769 90.748867) (xy 92.416231 90.757711)\r\n\t\t\t\t(xy 92.430241 90.760498) (xy 92.430246 90.760498) (xy 92.430252 90.7605) (xy 92.430253 90.7605)\r\n\t\t\t\t(xy 92.569747 90.7605) (xy 92.569748 90.7605) (xy 92.628231 90.748867) (xy 92.644997 90.737663)\r\n\t\t\t\t(xy 92.703885 90.721054) (xy 92.755002 90.737663) (xy 92.771769 90.748867) (xy 92.816231 90.757711)\r\n\t\t\t\t(xy 92.830241 90.760498) (xy 92.830246 90.760498) (xy 92.830252 90.7605) (xy 92.830253 90.7605)\r\n\t\t\t\t(xy 92.969747 90.7605) (xy 92.969748 90.7605) (xy 93.028231 90.748867) (xy 93.044997 90.737663)\r\n\t\t\t\t(xy 93.103885 90.721054) (xy 93.155002 90.737663) (xy 93.171769 90.748867) (xy 93.216231 90.757711)\r\n\t\t\t\t(xy 93.230241 90.760498) (xy 93.230246 90.760498) (xy 93.230252 90.7605) (xy 93.230253 90.7605)\r\n\t\t\t\t(xy 93.369747 90.7605) (xy 93.369748 90.7605) (xy 93.428231 90.748867) (xy 93.444997 90.737663)\r\n\t\t\t\t(xy 93.503885 90.721054) (xy 93.555002 90.737663) (xy 93.571769 90.748867) (xy 93.616231 90.757711)\r\n\t\t\t\t(xy 93.630241 90.760498) (xy 93.630246 90.760498) (xy 93.630252 90.7605) (xy 93.630253 90.7605)\r\n\t\t\t\t(xy 93.769747 90.7605) (xy 93.769748 90.7605) (xy 93.828231 90.748867) (xy 93.844997 90.737663)\r\n\t\t\t\t(xy 93.903885 90.721054) (xy 93.955002 90.737663) (xy 93.971769 90.748867) (xy 94.016231 90.757711)\r\n\t\t\t\t(xy 94.030241 90.760498) (xy 94.030246 90.760498) (xy 94.030252 90.7605) (xy 94.030253 90.7605)\r\n\t\t\t\t(xy 94.169747 90.7605) (xy 94.169748 90.7605) (xy 94.228231 90.748867) (xy 94.244997 90.737663)\r\n\t\t\t\t(xy 94.303885 90.721054) (xy 94.355002 90.737663) (xy 94.371769 90.748867) (xy 94.416231 90.757711)\r\n\t\t\t\t(xy 94.430241 90.760498) (xy 94.430246 90.760498) (xy 94.430252 90.7605) (xy 94.430253 90.7605)\r\n\t\t\t\t(xy 94.569747 90.7605) (xy 94.569748 90.7605) (xy 94.628231 90.748867) (xy 94.644997 90.737663)\r\n\t\t\t\t(xy 94.703885 90.721054) (xy 94.755002 90.737663) (xy 94.771769 90.748867) (xy 94.816231 90.757711)\r\n\t\t\t\t(xy 94.830241 90.760498) (xy 94.830246 90.760498) (xy 94.830252 90.7605) (xy 94.830253 90.7605)\r\n\t\t\t\t(xy 94.969747 90.7605) (xy 94.969748 90.7605) (xy 95.028231 90.748867) (xy 95.044997 90.737663)\r\n\t\t\t\t(xy 95.103885 90.721054) (xy 95.155002 90.737663) (xy 95.171769 90.748867) (xy 95.216231 90.757711)\r\n\t\t\t\t(xy 95.230241 90.760498) (xy 95.230246 90.760498) (xy 95.230252 90.7605) (xy 95.230253 90.7605)\r\n\t\t\t\t(xy 95.369747 90.7605) (xy 95.369748 90.7605) (xy 95.428231 90.748867) (xy 95.494552 90.704552)\r\n\t\t\t\t(xy 95.538867 90.638231) (xy 95.5505 90.579748) (xy 95.5505 89.940253) (xy 95.8495 89.940253) (xy 95.8495 90.579746)\r\n\t\t\t\t(xy 95.849501 90.579758) (xy 95.861132 90.638227) (xy 95.861134 90.638233) (xy 95.902072 90.6995)\r\n\t\t\t\t(xy 95.905448 90.704552) (xy 95.971769 90.748867) (xy 96.016231 90.757711) (xy 96.030241 90.760498)\r\n\t\t\t\t(xy 96.030246 90.760498) (xy 96.030252 90.7605) (xy 96.030253 90.7605) (xy 96.169747 90.7605) (xy 96.169748 90.7605)\r\n\t\t\t\t(xy 96.228231 90.748867) (xy 96.244997 90.737663) (xy 96.303885 90.721054) (xy 96.355002 90.737663)\r\n\t\t\t\t(xy 96.371769 90.748867) (xy 96.416231 90.757711) (xy 96.430241 90.760498) (xy 96.430246 90.760498)\r\n\t\t\t\t(xy 96.430252 90.7605) (xy 96.430253 90.7605) (xy 96.569747 90.7605) (xy 96.569748 90.7605) (xy 96.628231 90.748867)\r\n\t\t\t\t(xy 96.694552 90.704552) (xy 96.738867 90.638231) (xy 96.7505 90.579748) (xy 96.7505 89.940253)\r\n\t\t\t\t(xy 97.0495 89.940253) (xy 97.0495 90.579746) (xy 97.049501 90.579758) (xy 97.061132 90.638227)\r\n\t\t\t\t(xy 97.061134 90.638233) (xy 97.102072 90.6995) (xy 97.105448 90.704552) (xy 97.171769 90.748867)\r\n\t\t\t\t(xy 97.216231 90.757711) (xy 97.230241 90.760498) (xy 97.230246 90.760498) (xy 97.230252 90.7605)\r\n\t\t\t\t(xy 97.230253 90.7605) (xy 97.369747 90.7605) (xy 97.369748 90.7605) (xy 97.428231 90.748867) (xy 97.444997 90.737663)\r\n\t\t\t\t(xy 97.503885 90.721054) (xy 97.555002 90.737663) (xy 97.571769 90.748867) (xy 97.616231 90.757711)\r\n\t\t\t\t(xy 97.630241 90.760498) (xy 97.630246 90.760498) (xy 97.630252 90.7605) (xy 97.630253 90.7605)\r\n\t\t\t\t(xy 97.769747 90.7605) (xy 97.769748 90.7605) (xy 97.828231 90.748867) (xy 97.894552 90.704552)\r\n\t\t\t\t(xy 97.938867 90.638231) (xy 97.9505 90.579748) (xy 97.9505 89.940253) (xy 98.2495 89.940253) (xy 98.2495 90.579746)\r\n\t\t\t\t(xy 98.249501 90.579758) (xy 98.261132 90.638227) (xy 98.261134 90.638233) (xy 98.302072 90.6995)\r\n\t\t\t\t(xy 98.305448 90.704552) (xy 98.371769 90.748867) (xy 98.416231 90.757711) (xy 98.430241 90.760498)\r\n\t\t\t\t(xy 98.430246 90.760498) (xy 98.430252 90.7605) (xy 98.430253 90.7605) (xy 98.569747 90.7605) (xy 98.569748 90.7605)\r\n\t\t\t\t(xy 98.628231 90.748867) (xy 98.644997 90.737663) (xy 98.703885 90.721054) (xy 98.755002 90.737663)\r\n\t\t\t\t(xy 98.771769 90.748867) (xy 98.816231 90.757711) (xy 98.830241 90.760498) (xy 98.830246 90.760498)\r\n\t\t\t\t(xy 98.830252 90.7605) (xy 98.830253 90.7605) (xy 98.969747 90.7605) (xy 98.969748 90.7605) (xy 99.028231 90.748867)\r\n\t\t\t\t(xy 99.094552 90.704552) (xy 99.138867 90.638231) (xy 99.1505 90.579748) (xy 99.1505 89.940253)\r\n\t\t\t\t(xy 99.4495 89.940253) (xy 99.4495 90.579746) (xy 99.449501 90.579758) (xy 99.461132 90.638227)\r\n\t\t\t\t(xy 99.461134 90.638233) (xy 99.502072 90.6995) (xy 99.505448 90.704552) (xy 99.571769 90.748867)\r\n\t\t\t\t(xy 99.616231 90.757711) (xy 99.630241 90.760498) (xy 99.630246 90.760498) (xy 99.630252 90.7605)\r\n\t\t\t\t(xy 99.630253 90.7605) (xy 99.769747 90.7605) (xy 99.769748 90.7605) (xy 99.828231 90.748867) (xy 99.844997 90.737663)\r\n\t\t\t\t(xy 99.903885 90.721054) (xy 99.955002 90.737663) (xy 99.971769 90.748867) (xy 100.016231 90.757711)\r\n\t\t\t\t(xy 100.030241 90.760498) (xy 100.030246 90.760498) (xy 100.030252 90.7605) (xy 100.030253 90.7605)\r\n\t\t\t\t(xy 100.169747 90.7605) (xy 100.169748 90.7605) (xy 100.228231 90.748867) (xy 100.244997 90.737663)\r\n\t\t\t\t(xy 100.303885 90.721054) (xy 100.355002 90.737663) (xy 100.371769 90.748867) (xy 100.416231 90.757711)\r\n\t\t\t\t(xy 100.430241 90.760498) (xy 100.430246 90.760498) (xy 100.430252 90.7605) (xy 100.430253 90.7605)\r\n\t\t\t\t(xy 100.569747 90.7605) (xy 100.569748 90.7605) (xy 100.628231 90.748867) (xy 100.644997 90.737663)\r\n\t\t\t\t(xy 100.703885 90.721054) (xy 100.755002 90.737663) (xy 100.771769 90.748867) (xy 100.816231 90.757711)\r\n\t\t\t\t(xy 100.830241 90.760498) (xy 100.830246 90.760498) (xy 100.830252 90.7605) (xy 100.830253 90.7605)\r\n\t\t\t\t(xy 100.969747 90.7605) (xy 100.969748 90.7605) (xy 101.028231 90.748867) (xy 101.094552 90.704552)\r\n\t\t\t\t(xy 101.138867 90.638231' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b') (xy 101.1505 90.579748) (xy 101.1505 89.940253) (xy 101.4495 89.940253)\r\n\t\t\t\t(xy 101.4495 90.579746) (xy 101.449501 90.579758) (xy 101.461132 90.638227) (xy 101.461134 90.638233)\r\n\t\t\t\t(xy 101.502072 90.6995) (xy 101.505448 90.704552) (xy 101.571769 90.748867) (xy 101.616231 90.757711)\r\n\t\t\t\t(xy 101.630241 90.760498) (xy 101.630246 90.760498) (xy 101.630252 90.7605) (xy 101.630253 90.7605)\r\n\t\t\t\t(xy 101.668763 90.7605) (xy 101.726954 90.779407) (xy 101.762918 90.828907) (xy 101.764389 90.885121)\r\n\t\t\t\t(xy 101.7495 90.940691) (xy 101.7495 91.059309) (xy 101.776295 91.159307) (xy 101.780202 91.17389)\r\n\t\t\t\t(xy 101.839507 91.276608) (xy 101.839509 91.27661) (xy 101.839511 91.276613) (xy 101.923387 91.360489)\r\n\t\t\t\t(xy 101.923389 91.36049) (xy 101.923391 91.360492) (xy 102.02611 91.419797) (xy 102.026111 91.419797)\r\n\t\t\t\t(xy 102.026114 91.419799) (xy 102.140691 91.4505) (xy 102.140693 91.4505) (xy 102.259307 91.4505)\r\n\t\t\t\t(xy 102.259309 91.4505) (xy 102.373886 91.419799) (xy 102.373888 91.419797) (xy 102.37389 91.419797)\r\n\t\t\t\t(xy 102.476608 91.360492) (xy 102.476608 91.360491) (xy 102.476613 91.360489) (xy 102.560489 91.276613)\r\n\t\t\t\t(xy 102.562061 91.27389) (xy 102.619797 91.17389) (xy 102.619797 91.173888) (xy 102.619799 91.173886)\r\n\t\t\t\t(xy 102.6505 91.059309) (xy 102.6505 90.940691) (xy 102.629502 90.862326) (xy 102.632703 90.801227)\r\n\t\t\t\t(xy 102.671208 90.753676) (xy 102.730308 90.73784) (xy 102.763013 90.74524) (xy 102.771767 90.748865)\r\n\t\t\t\t(xy 102.771769 90.748867) (xy 102.801827 90.754845) (xy 102.830241 90.760498) (xy 102.830246 90.760498)\r\n\t\t\t\t(xy 102.830252 90.7605) (xy 102.830253 90.7605) (xy 102.969747 90.7605) (xy 102.969748 90.7605)\r\n\t\t\t\t(xy 103.028231 90.748867) (xy 103.094552 90.704552) (xy 103.138867 90.638231) (xy 103.1505 90.579748)\r\n\t\t\t\t(xy 103.1505 89.940252) (xy 103.138867 89.881769) (xy 103.094552 89.815448) (xy 103.094548 89.815445)\r\n\t\t\t\t(xy 103.028233 89.771134) (xy 103.028231 89.771133) (xy 103.028228 89.771132) (xy 103.028227 89.771132)\r\n\t\t\t\t(xy 102.969758 89.759501) (xy 102.969748 89.7595) (xy 102.830252 89.7595) (xy 102.830251 89.7595)\r\n\t\t\t\t(xy 102.830241 89.759501) (xy 102.771772 89.771132) (xy 102.771767 89.771134) (xy 102.755001 89.782337)\r\n\t\t\t\t(xy 102.696113 89.798945) (xy 102.644999 89.782337) (xy 102.638642 89.778089) (xy 102.628231 89.771133)\r\n\t\t\t\t(xy 102.628228 89.771132) (xy 102.628227 89.771132) (xy 102.569758 89.759501) (xy 102.569748 89.7595)\r\n\t\t\t\t(xy 102.430252 89.7595) (xy 102.430251 89.7595) (xy 102.430241 89.759501) (xy 102.371772 89.771132)\r\n\t\t\t\t(xy 102.371767 89.771134) (xy 102.355001 89.782337) (xy 102.296113 89.798945) (xy 102.244999 89.782337)\r\n\t\t\t\t(xy 102.238642 89.778089) (xy 102.228231 89.771133) (xy 102.228228 89.771132) (xy 102.228227 89.771132)\r\n\t\t\t\t(xy 102.169758 89.759501) (xy 102.169748 89.7595) (xy 102.030252 89.7595) (xy 102.030251 89.7595)\r\n\t\t\t\t(xy 102.030241 89.759501) (xy 101.971772 89.771132) (xy 101.971767 89.771134) (xy 101.955001 89.782337)\r\n\t\t\t\t(xy 101.896113 89.798945) (xy 101.844999 89.782337) (xy 101.838642 89.778089) (xy 101.828231 89.771133)\r\n\t\t\t\t(xy 101.828228 89.771132) (xy 101.828227 89.771132) (xy 101.769758 89.759501) (xy 101.769748 89.7595)\r\n\t\t\t\t(xy 101.630252 89.7595) (xy 101.630251 89.7595) (xy 101.630241 89.759501) (xy 101.571772 89.771132)\r\n\t\t\t\t(xy 101.571766 89.771134) (xy 101.505451 89.815445) (xy 101.505445 89.815451) (xy 101.461134 89.881766)\r\n\t\t\t\t(xy 101.461132 89.881772) (xy 101.449501 89.940241) (xy 101.4495 89.940253) (xy 101.1505 89.940253)\r\n\t\t\t\t(xy 101.1505 89.940252) (xy 101.138867 89.881769) (xy 101.094552 89.815448) (xy 101.094548 89.815445)\r\n\t\t\t\t(xy 101.028233 89.771134) (xy 101.028231 89.771133) (xy 101.028228 89.771132) (xy 101.028227 89.771132)\r\n\t\t\t\t(xy 100.969758 89.759501) (xy 100.969748 89.7595) (xy 100.830252 89.7595) (xy 100.830251 89.7595)\r\n\t\t\t\t(xy 100.830241 89.759501) (xy 100.771772 89.771132) (xy 100.771767 89.771134) (xy 100.755001 89.782337)\r\n\t\t\t\t(xy 100.696113 89.798945) (xy 100.671877 89.794942) (xy 100.657478 89.790676) (xy 100.628231 89.771133)\r\n\t\t\t\t(xy 100.569748 89.7595) (xy 100.552253 89.7595) (xy 100.538486 89.755421) (xy 100.524528 89.745827)\r\n\t\t\t\t(xy 100.508418 89.740593) (xy 100.499943 89.728929) (xy 100.488063 89.720763) (xy 100.48241 89.704796)\r\n\t\t\t\t(xy 100.472454 89.691093) (xy 100.472454 89.676674) (xy 100.467643 89.663086) (xy 100.472454 89.646847)\r\n\t\t\t\t(xy 100.472454 89.629907) (xy 100.482171 89.614049) (xy 100.485024 89.604421) (xy 100.490776 89.600007)\r\n\t\t\t\t(xy 100.496603 89.590498) (xy 100.560489 89.526613) (xy 100.563764 89.52094) (xy 100.619797 89.42389)\r\n\t\t\t\t(xy 100.619797 89.423888) (xy 100.619799 89.423886) (xy 100.6505 89.309309) (xy 100.6505 89.190691)\r\n\t\t\t\t(xy 100.637102 89.140691) (xy 103.2495 89.140691) (xy 103.2495 89.259309) (xy 103.272399 89.344767)\r\n\t\t\t\t(xy 103.280202 89.37389) (xy 103.339507 89.476608) (xy 103.339509 89.47661) (xy 103.339511 89.476613)\r\n\t\t\t\t(xy 103.420505 89.557607) (xy 103.448281 89.612122) (xy 103.4495 89.627609) (xy 103.4495 90.579746)\r\n\t\t\t\t(xy 103.449501 90.579758) (xy 103.461132 90.638227) (xy 103.461134 90.638233) (xy 103.502072 90.6995)\r\n\t\t\t\t(xy 103.505448 90.704552) (xy 103.571769 90.748867) (xy 103.616231 90.757711) (xy 103.630241 90.760498)\r\n\t\t\t\t(xy 103.630246 90.760498) (xy 103.630252 90.7605) (xy 103.630253 90.7605) (xy 103.769747 90.7605)\r\n\t\t\t\t(xy 103.769748 90.7605) (xy 103.828231 90.748867) (xy 103.844997 90.737663) (xy 103.903885 90.721054)\r\n\t\t\t\t(xy 103.955002 90.737663) (xy 103.971769 90.748867) (xy 104.016231 90.757711) (xy 104.030241 90.760498)\r\n\t\t\t\t(xy 104.030246 90.760498) (xy 104.030252 90.7605) (xy 104.030253 90.7605) (xy 104.169747 90.7605)\r\n\t\t\t\t(xy 104.169748 90.7605) (xy 104.228231 90.748867) (xy 104.244997 90.737663) (xy 104.303885 90.721054)\r\n\t\t\t\t(xy 104.355002 90.737663) (xy 104.371769 90.748867) (xy 104.416231 90.757711) (xy 104.430241 90.760498)\r\n\t\t\t\t(xy 104.430246 90.760498) (xy 104.430252 90.7605) (xy 104.430253 90.7605) (xy 104.569747 90.7605)\r\n\t\t\t\t(xy 104.569748 90.7605) (xy 104.628231 90.748867) (xy 104.644997 90.737663) (xy 104.703885 90.721054)\r\n\t\t\t\t(xy 104.755002 90.737663) (xy 104.771769 90.748867) (xy 104.816231 90.757711) (xy 104.830241 90.760498)\r\n\t\t\t\t(xy 104.830246 90.760498) (xy 104.830252 90.7605) (xy 104.830253 90.7605) (xy 104.969747 90.7605)\r\n\t\t\t\t(xy 104.969748 90.7605) (xy 105.028231 90.748867) (xy 105.094552 90.704552) (xy 105.138867 90.638231)\r\n\t\t\t\t(xy 105.1505 90.579748) (xy 105.1505 89.940252) (xy 105.1505 89.518709) (xy 105.169407 89.460518)\r\n\t\t\t\t(xy 105.218907 89.424554) (xy 105.280093 89.424554) (xy 105.322087 89.451388) (xy 105.329664 89.459557)\r\n\t\t\t\t(xy 105.339511 89.476613) (xy 105.421821 89.558923) (xy 105.423087 89.560288) (xy 105.43519 89.58643)\r\n\t\t\t\t(xy 105.448281 89.612122) (xy 105.448525 89.615231) (xy 105.448794 89.615811) (xy 105.448634 89.616617)\r\n\t\t\t\t(xy 105.4495 89.627609) (xy 105.4495 90.579746) (xy 105.449501 90.579758) (xy 105.461132 90.638227)\r\n\t\t\t\t(xy 105.461134 90.638233) (xy 105.502072 90.6995) (xy 105.505448 90.704552) (xy 105.571769 90.748867)\r\n\t\t\t\t(xy 105.616231 90.757711) (xy 105.630241 90.760498) (xy 105.630246 90.760498) (xy 105.630252 90.7605)\r\n\t\t\t\t(xy 105.630253 90.7605) (xy 105.769747 90.7605) (xy 105.769748 90.7605) (xy 105.828231 90.748867)\r\n\t\t\t\t(xy 105.844997 90.737663) (xy 105.903885 90.721054) (xy 105.955002 90.737663) (xy 105.971769 90.748867)\r\n\t\t\t\t(xy 106.016231 90.757711) (xy 106.030241 90.760498) (xy 106.030246 90.760498) (xy 106.030252 90.7605)\r\n\t\t\t\t(xy 106.030253 90.7605) (xy 106.165034 90.7605) (xy 106.223225 90.779407) (xy 106.259189 90.828907)\r\n\t\t\t\t(xy 106.259189 90.890093) (xy 106.2277 90.934647) (xy 106.227976 90.934923) (xy 106.226372 90.936526)\r\n\t\t\t\t(xy 106.225302 90.938041) (xy 106.223393 90.939505) (xy 106.139507 91.023391) (xy 106.080202 91.126109)\r\n\t\t\t\t(xy 106.080201 91.126114) (xy 106.0495 91.240691) (xy 106.0495 91.359309) (xy 106.067069 91.424877)\r\n\t\t\t\t(xy 106.080202 91.47389) (xy 106.139507 91.576608) (xy 106.139509 91.57661) (xy 106.139511 91.576613)\r\n\t\t\t\t(xy 106.223387 91.660489) (xy 106.223389 91.66049) (xy 106.223391 91.660492) (xy 106.32611 91.719797)\r\n\t\t\t\t(xy 106.326111 91.719797) (xy 106.326114 91.719799) (xy 106.440691 91.7505) (xy 106.440693 91.7505)\r\n\t\t\t\t(xy 106.4' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'71442 91.7505) (xy 106.529633 91.769407) (xy 106.565597 91.818907) (xy 106.567068 91.875122)\r\n\t\t\t\t(xy 106.5495 91.940691) (xy 106.5495 92.059309) (xy 106.570989 92.139507) (xy 106.580202 92.17389)\r\n\t\t\t\t(xy 106.639507 92.276608) (xy 106.639509 92.27661) (xy 106.639511 92.276613) (xy 106.723387 92.360489)\r\n\t\t\t\t(xy 106.723389 92.36049) (xy 106.723391 92.360492) (xy 106.82611 92.419797) (xy 106.826111 92.419797)\r\n\t\t\t\t(xy 106.826114 92.419799) (xy 106.940691 92.4505) (xy 106.940693 92.4505) (xy 107.059307 92.4505)\r\n\t\t\t\t(xy 107.059309 92.4505) (xy 107.173886 92.419799) (xy 107.173888 92.419797) (xy 107.17389 92.419797)\r\n\t\t\t\t(xy 107.276608 92.360492) (xy 107.276608 92.360491) (xy 107.276613 92.360489) (xy 107.360489 92.276613)\r\n\t\t\t\t(xy 107.3709 92.258581) (xy 107.419714 92.174034) (xy 124.7995 92.174034) (xy 124.7995 92.425965)\r\n\t\t\t\t(xy 124.838908 92.67478) (xy 124.916759 92.914379) (xy 125.026877 93.130499) (xy 125.03113 93.138845)\r\n\t\t\t\t(xy 125.179207 93.342656) (xy 125.357344 93.520793) (xy 125.561155 93.66887) (xy 125.785621 93.783241)\r\n\t\t\t\t(xy 126.025215 93.86109) (xy 126.025216 93.86109) (xy 126.025219 93.861091) (xy 126.274035 93.9005)\r\n\t\t\t\t(xy 126.274038 93.9005) (xy 126.525965 93.9005) (xy 126.77478 93.861091) (xy 126.774781 93.86109)\r\n\t\t\t\t(xy 126.774785 93.86109) (xy 127.014379 93.783241) (xy 127.238845 93.66887) (xy 127.442656 93.520793)\r\n\t\t\t\t(xy 127.620793 93.342656) (xy 127.694875 93.240691) (xy 129.0495 93.240691) (xy 129.0495 93.359309)\r\n\t\t\t\t(xy 129.076574 93.460351) (xy 129.080202 93.47389) (xy 129.139507 93.576608) (xy 129.139509 93.57661)\r\n\t\t\t\t(xy 129.139511 93.576613) (xy 129.223387 93.660489) (xy 129.223389 93.66049) (xy 129.223391 93.660492)\r\n\t\t\t\t(xy 129.32611 93.719797) (xy 129.326111 93.719797) (xy 129.326114 93.719799) (xy 129.440691 93.7505)\r\n\t\t\t\t(xy 129.440693 93.7505) (xy 129.559307 93.7505) (xy 129.559309 93.7505) (xy 129.673886 93.719799)\r\n\t\t\t\t(xy 129.673888 93.719797) (xy 129.67389 93.719797) (xy 129.776608 93.660492) (xy 129.776608 93.660491)\r\n\t\t\t\t(xy 129.776613 93.660489) (xy 129.860489 93.576613) (xy 129.892717 93.520793) (xy 129.919797 93.47389)\r\n\t\t\t\t(xy 129.919797 93.473888) (xy 129.919799 93.473886) (xy 129.9505 93.359309) (xy 129.9505 93.240691)\r\n\t\t\t\t(xy 129.919799 93.126114) (xy 129.919797 93.126111) (xy 129.919797 93.126109) (xy 129.860492 93.023391)\r\n\t\t\t\t(xy 129.86049 93.023389) (xy 129.860489 93.023387) (xy 129.776613 92.939511) (xy 129.77661 92.939509)\r\n\t\t\t\t(xy 129.776608 92.939507) (xy 129.673889 92.880202) (xy 129.67389 92.880202) (xy 129.659462 92.876336)\r\n\t\t\t\t(xy 129.559309 92.8495) (xy 129.440691 92.8495) (xy 129.381561 92.865344) (xy 129.326109 92.880202)\r\n\t\t\t\t(xy 129.223391 92.939507) (xy 129.139507 93.023391) (xy 129.080202 93.126109) (xy 129.076295 93.140691)\r\n\t\t\t\t(xy 129.0495 93.240691) (xy 127.694875 93.240691) (xy 127.76887 93.138845) (xy 127.883241 92.914379)\r\n\t\t\t\t(xy 127.96109 92.674785) (xy 127.961091 92.67478) (xy 128.0005 92.425965) (xy 128.0005 92.174034)\r\n\t\t\t\t(xy 127.961091 91.925219) (xy 127.96109 91.925215) (xy 127.883241 91.685621) (xy 127.76887 91.461155)\r\n\t\t\t\t(xy 127.620793 91.257344) (xy 127.442656 91.079207) (xy 127.238845 90.93113) (xy 127.238844 90.931129)\r\n\t\t\t\t(xy 127.238842 90.931128) (xy 127.014379 90.816759) (xy 126.77478 90.738908) (xy 126.525965 90.6995)\r\n\t\t\t\t(xy 126.525962 90.6995) (xy 126.274038 90.6995) (xy 126.274035 90.6995) (xy 126.025219 90.738908)\r\n\t\t\t\t(xy 125.78562 90.816759) (xy 125.561157 90.931128) (xy 125.357345 91.079206) (xy 125.179206 91.257345)\r\n\t\t\t\t(xy 125.031128 91.461157) (xy 124.916759 91.68562) (xy 124.838908 91.925219) (xy 124.7995 92.174034)\r\n\t\t\t\t(xy 107.419714 92.174034) (xy 107.419797 92.17389) (xy 107.419797 92.173888) (xy 107.419799 92.173886)\r\n\t\t\t\t(xy 107.4505 92.059309) (xy 107.4505 91.940691) (xy 107.419799 91.826114) (xy 107.419797 91.826111)\r\n\t\t\t\t(xy 107.419797 91.826109) (xy 107.360492 91.723391) (xy 107.36049 91.723389) (xy 107.360489 91.723387)\r\n\t\t\t\t(xy 107.276613 91.639511) (xy 107.27661 91.639509) (xy 107.276608 91.639507) (xy 107.173889 91.580202)\r\n\t\t\t\t(xy 107.17389 91.580202) (xy 107.13567 91.569961) (xy 107.059309 91.5495) (xy 107.028558 91.5495)\r\n\t\t\t\t(xy 106.970367 91.530593) (xy 106.934403 91.481093) (xy 106.932931 91.424877) (xy 106.934292 91.419797)\r\n\t\t\t\t(xy 106.9505 91.359309) (xy 106.9505 91.240691) (xy 106.919799 91.126114) (xy 106.919797 91.126111)\r\n\t\t\t\t(xy 106.919797 91.126109) (xy 106.860492 91.023391) (xy 106.86049 91.023389) (xy 106.860489 91.023387)\r\n\t\t\t\t(xy 106.776613 90.939511) (xy 106.77661 90.939509) (xy 106.776606 90.939505) (xy 106.774698 90.938041)\r\n\t\t\t\t(xy 106.773722 90.936621) (xy 106.772024 90.934923) (xy 106.772338 90.934608) (xy 106.740043 90.887616)\r\n\t\t\t\t(xy 106.741645 90.826452) (xy 106.778893 90.777911) (xy 106.834966 90.7605) (xy 106.969747 90.7605)\r\n\t\t\t\t(xy 106.969748 90.7605) (xy 107.028231 90.748867) (xy 107.094552 90.704552) (xy 107.138867 90.638231)\r\n\t\t\t\t(xy 107.1505 90.579748) (xy 107.1505 89.940253) (xy 107.4495 89.940253) (xy 107.4495 90.579746)\r\n\t\t\t\t(xy 107.449501 90.579758) (xy 107.461132 90.638227) (xy 107.461133 90.638231) (xy 107.461134 90.638233)\r\n\t\t\t\t(xy 107.464866 90.647242) (xy 107.461905 90.648468) (xy 107.47355 90.686845) (xy 107.47355 90.739957)\r\n\t\t\t\t(xy 107.47355 90.830045) (xy 107.486922 90.862328) (xy 107.511756 90.922282) (xy 107.509844 90.923073)\r\n\t\t\t\t(xy 107.5226 90.965118) (xy 107.5226 91.107569) (xy 107.557073 91.190796) (xy 107.557074 91.190797)\r\n\t\t\t\t(xy 107.557075 91.190799) (xy 108.345499 91.979223) (xy 108.345498 91.979223) (xy 108.388703 92.022427)\r\n\t\t\t\t(xy 108.409201 92.042925) (xy 108.49243 92.0774) (xy 108.492431 92.0774) (xy 122.30757 92.0774)\r\n\t\t\t\t(xy 122.390799 92.042925) (xy 124.127329 90.306396) (xy 124.181846 90.278619) (xy 124.197333 90.2774)\r\n\t\t\t\t(xy 128.402668 90.2774) (xy 128.460859 90.296307) (xy 128.472671 90.306395) (xy 129.65325 91.486975)\r\n\t\t\t\t(xy 129.677625 91.497071) (xy 129.677626 91.497072) (xy 129.677627 91.497072) (xy 129.73648 91.52145)\r\n\t\t\t\t(xy 132.754573 91.52145) (xy 132.812764 91.540357) (xy 132.848728 91.589857) (xy 132.848728 91.651043)\r\n\t\t\t\t(xy 132.812764 91.700543) (xy 132.809574 91.702766) (xy 132.740348 91.74902) (xy 132.59402 91.895348)\r\n\t\t\t\t(xy 132.479058 92.067402) (xy 132.399869 92.258581) (xy 132.377744 92.369814) (xy 132.374801 92.375069)\r\n\t\t\t\t(xy 132.374801 92.381093) (xy 132.36008 92.401354) (xy 132.347847 92.423198) (xy 132.342377 92.425719)\r\n\t\t\t\t(xy 132.338837 92.430593) (xy 132.31502 92.438331) (xy 132.292282 92.448814) (xy 132.280646 92.4495)\r\n\t\t\t\t(xy 132.103275 92.4495) (xy 132.045084 92.430593) (xy 132.02018 92.399741) (xy 132.018997 92.400552)\r\n\t\t\t\t(xy 132.013814 92.392986) (xy 132.013813 92.392985) (xy 132.013813 92.392984) (xy 131.937016 92.316187)\r\n\t\t\t\t(xy 131.837662 92.272318) (xy 131.837661 92.272317) (xy 131.837659 92.272317) (xy 131.813376 92.2695)\r\n\t\t\t\t(xy 131.38663 92.2695) (xy 131.386627 92.269501) (xy 131.362338 92.272317) (xy 131.262984 92.316187)\r\n\t\t\t\t(xy 131.186187 92.392984) (xy 131.142317 92.49234) (xy 131.1395 92.516622) (xy 131.1395 92.883369)\r\n\t\t\t\t(xy 131.139501 92.883372) (xy 131.142317 92.907661) (xy 131.161206 92.950439) (xy 131.186187 93.007016)\r\n\t\t\t\t(xy 131.262984 93.083813) (xy 131.362338 93.127682) (xy 131.386627 93.1305) (xy 131.813372 93.130499)\r\n\t\t\t\t(xy 131.837662 93.127682) (xy 131.937016 93.083813) (xy 132.013813 93.007016) (xy 132.013814 93.007011)\r\n\t\t\t\t(xy 132.018997 92.999448) (xy 132.020683 93.000603) (xy 132.053507 92.963919) (xy 132.103275 92.9505)\r\n\t\t\t\t(xy 132.366476 92.9505) (xy 132.424667 92.969407) (xy 132.45794 93.011613) (xy 132.479059 93.062598)\r\n\t\t\t\t(xy 132.554838 93.176011) (xy 132.594023 93.234655) (xy 132.740345 93.380977) (xy 132.912402 93.495941)\r\n\t\t\t\t(xy 133.10358 93.57513) (xy 133.306535 93.6155) (xy 133.306536 93.6155) (xy 133.513464 93.6155)\r\n\t\t\t\t(xy 133.513465 93.6155) (xy 133.71642 93.57513) (xy 133.907598 93.495941) (xy 134.079655 93.380977)\r\n\t\t\t\t(xy 134.225977 93.234655) (xy 134.340941 93.062598) (xy 134.417979 92.876612) (xy 134.435439 92.85617)\r\n\t\t\t\t(xy 134.451251 92.834407) (xy 134.455093 92.833158) (xy 134.457715 92.830089) (xy 134.509442 92.8155)\r\n\t\t\t\t(xy 134.535231 92.8155) (xy 134.593422 92.834407) (xy 134.605235 92.844496) (xy 134.995446 93.234707)\r\n\t\t\t\t(' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'xy 135.023223 93.289224) (xy 135.016906 93.342596) (xy 134.93987 93.528578) (xy 134.93987 93.52858)\r\n\t\t\t\t(xy 134.8995 93.731532) (xy 134.8995 93.938467) (xy 134.939869 94.141418) (xy 135.019058 94.332597)\r\n\t\t\t\t(xy 135.13402 94.504651) (xy 135.134023 94.504655) (xy 135.280345 94.650977) (xy 135.452402 94.765941)\r\n\t\t\t\t(xy 135.64358 94.84513) (xy 135.846535 94.8855) (xy 135.846536 94.8855) (xy 136.053464 94.8855)\r\n\t\t\t\t(xy 136.053465 94.8855) (xy 136.25642 94.84513) (xy 136.447598 94.765941) (xy 136.619655 94.650977)\r\n\t\t\t\t(xy 136.765977 94.504655) (xy 136.880941 94.332598) (xy 136.96013 94.14142) (xy 137.0005 93.938465)\r\n\t\t\t\t(xy 137.0005 93.731535) (xy 136.96013 93.52858) (xy 136.880941 93.337402) (xy 136.765977 93.165345)\r\n\t\t\t\t(xy 136.619655 93.019023) (xy 136.619651 93.01902) (xy 136.447597 92.904058) (xy 136.256418 92.824869)\r\n\t\t\t\t(xy 136.053467 92.7845) (xy 136.053465 92.7845) (xy 135.846535 92.7845) (xy 135.846532 92.7845)\r\n\t\t\t\t(xy 135.64358 92.82487) (xy 135.643578 92.82487) (xy 135.457596 92.901906) (xy 135.396599 92.906707)\r\n\t\t\t\t(xy 135.349707 92.880446) (xy 135.092504 92.623243) (xy 134.821897 92.352636) (xy 134.821895 92.352635)\r\n\t\t\t\t(xy 134.821894 92.352634) (xy 134.729829 92.3145) (xy 134.729828 92.3145) (xy 134.509442 92.3145)\r\n\t\t\t\t(xy 134.451251 92.295593) (xy 134.417979 92.253387) (xy 134.340941 92.067402) (xy 134.225977 91.895345)\r\n\t\t\t\t(xy 134.079655 91.749023) (xy 134.010425 91.702765) (xy 133.972546 91.654716) (xy 133.970144 91.593578)\r\n\t\t\t\t(xy 134.004136 91.542704) (xy 134.06154 91.521526) (xy 134.065427 91.52145) (xy 134.842716 91.52145)\r\n\t\t\t\t(xy 134.900907 91.540357) (xy 134.936871 91.589857) (xy 134.939815 91.601142) (xy 134.93987 91.601419)\r\n\t\t\t\t(xy 135.019058 91.792597) (xy 135.13402 91.964651) (xy 135.134023 91.964655) (xy 135.280345 92.110977)\r\n\t\t\t\t(xy 135.452402 92.225941) (xy 135.64358 92.30513) (xy 135.846535 92.3455) (xy 135.846536 92.3455)\r\n\t\t\t\t(xy 136.053464 92.3455) (xy 136.053465 92.3455) (xy 136.25642 92.30513) (xy 136.447598 92.225941)\r\n\t\t\t\t(xy 136.619655 92.110977) (xy 136.765977 91.964655) (xy 136.880941 91.792598) (xy 136.96013 91.60142)\r\n\t\t\t\t(xy 137.0005 91.398465) (xy 137.0005 91.191535) (xy 136.96013 90.98858) (xy 136.880941 90.797402)\r\n\t\t\t\t(xy 136.765977 90.625345) (xy 136.619655 90.479023) (xy 136.619651 90.47902) (xy 136.447597 90.364058)\r\n\t\t\t\t(xy 136.256418 90.284869) (xy 136.053467 90.2445) (xy 136.053465 90.2445) (xy 135.846535 90.2445)\r\n\t\t\t\t(xy 135.846532 90.2445) (xy 135.643581 90.284869) (xy 135.452402 90.364058) (xy 135.280348 90.47902)\r\n\t\t\t\t(xy 135.13402 90.625348) (xy 135.019058 90.797402) (xy 134.93987 90.98858) (xy 134.939815 90.988858)\r\n\t\t\t\t(xy 134.939751 90.988971) (xy 134.938457 90.993238) (xy 134.937521 90.992954) (xy 134.909921 91.042244)\r\n\t\t\t\t(xy 134.854358 91.067863) (xy 134.842716 91.06855) (xy 134.065427 91.06855) (xy 134.007236 91.049643)\r\n\t\t\t\t(xy 133.971272 91.000143) (xy 133.971272 90.938957) (xy 134.007236 90.889457) (xy 134.010426 90.887234)\r\n\t\t\t\t(xy 134.029683 90.874367) (xy 134.079655 90.840977) (xy 134.225977 90.694655) (xy 134.340941 90.522598)\r\n\t\t\t\t(xy 134.42013 90.33142) (xy 134.4605 90.128465) (xy 134.4605 89.921535) (xy 134.42013 89.71858)\r\n\t\t\t\t(xy 134.340941 89.527402) (xy 134.225977 89.355345) (xy 134.079655 89.209023) (xy 134.010425 89.162765)\r\n\t\t\t\t(xy 133.972546 89.114716) (xy 133.970144 89.053578) (xy 134.004136 89.002704) (xy 134.06154 88.981526)\r\n\t\t\t\t(xy 134.065427 88.98145) (xy 134.842716 88.98145) (xy 134.900907 89.000357) (xy 134.936871 89.049857)\r\n\t\t\t\t(xy 134.939813 89.061137) (xy 134.93987 89.06142) (xy 134.95339 89.094059) (xy 135.019058 89.252597)\r\n\t\t\t\t(xy 135.13402 89.424651) (xy 135.134023 89.424655) (xy 135.280345 89.570977) (xy 135.452402 89.685941)\r\n\t\t\t\t(xy 135.64358 89.76513) (xy 135.846535 89.8055) (xy 135.846536 89.8055) (xy 136.053464 89.8055)\r\n\t\t\t\t(xy 136.053465 89.8055) (xy 136.25642 89.76513) (xy 136.447598 89.685941) (xy 136.619655 89.570977)\r\n\t\t\t\t(xy 136.765977 89.424655) (xy 136.880941 89.252598) (xy 136.96013 89.06142) (xy 137.0005 88.858465)\r\n\t\t\t\t(xy 137.0005 88.651535) (xy 136.96013 88.44858) (xy 136.880941 88.257402) (xy 136.765977 88.085345)\r\n\t\t\t\t(xy 136.619655 87.939023) (xy 136.619651 87.93902) (xy 136.447597 87.824058) (xy 136.256418 87.744869)\r\n\t\t\t\t(xy 136.053467 87.7045) (xy 136.053465 87.7045) (xy 135.846535 87.7045) (xy 135.846532 87.7045)\r\n\t\t\t\t(xy 135.643581 87.744869) (xy 135.452402 87.824058) (xy 135.280348 87.93902) (xy 135.13402 88.085348)\r\n\t\t\t\t(xy 135.019058 88.257402) (xy 134.93987 88.44858) (xy 134.939815 88.448858) (xy 134.939751 88.448971)\r\n\t\t\t\t(xy 134.938457 88.453238) (xy 134.937521 88.452954) (xy 134.909921 88.502244) (xy 134.854358 88.527863)\r\n\t\t\t\t(xy 134.842716 88.52855) (xy 134.065427 88.52855) (xy 134.007236 88.509643) (xy 133.971272 88.460143)\r\n\t\t\t\t(xy 133.971272 88.398957) (xy 134.007236 88.349457) (xy 134.010426 88.347234) (xy 134.013412 88.345239)\r\n\t\t\t\t(xy 134.079655 88.300977) (xy 134.225977 88.154655) (xy 134.340941 87.982598) (xy 134.42013 87.79142)\r\n\t\t\t\t(xy 134.4605 87.588465) (xy 134.4605 87.381535) (xy 134.42013 87.17858) (xy 134.364742 87.044862)\r\n\t\t\t\t(xy 134.358387 87.02952) (xy 134.340941 86.987402) (xy 134.225979 86.815348) (xy 134.225977 86.815345)\r\n\t\t\t\t(xy 134.079655 86.669023) (xy 134.079651 86.66902) (xy 133.907597 86.554058) (xy 133.716418 86.474869)\r\n\t\t\t\t(xy 133.513467 86.4345) (xy 133.513465 86.4345) (xy 133.306535 86.4345) (xy 133.306532 86.4345)\r\n\t\t\t\t(xy 133.103581 86.474869) (xy 132.912402 86.554058) (xy 132.740348 86.66902) (xy 132.59402 86.815348)\r\n\t\t\t\t(xy 132.479058 86.987402) (xy 132.399869 87.178581) (xy 132.3595 87.381532) (xy 132.3595 87.588467)\r\n\t\t\t\t(xy 132.399869 87.791418) (xy 132.479058 87.982596) (xy 132.479221 87.98284) (xy 132.479258 87.982971)\r\n\t\t\t\t(xy 132.481351 87.986887) (xy 132.480491 87.987346) (xy 132.480855 87.988636) (xy 132.485113 87.992894)\r\n\t\t\t\t(xy 132.489029 88.017622) (xy 132.495828 88.041729) (xy 132.493743 88.047379) (xy 132.494685 88.053326)\r\n\t\t\t\t(xy 132.483318 88.075635) (xy 132.474649 88.099132) (xy 132.466908 88.107843) (xy 132.3771 88.197652)\r\n\t\t\t\t(xy 132.322584 88.22543) (xy 132.307096 88.226649) (xy 121.186759 88.226649) (xy 121.128568 88.207742)\r\n\t\t\t\t(xy 121.092604 88.158242) (xy 121.087759 88.127649) (xy 121.087759 88.015995) (xy 121.087759 88.015994)\r\n\t\t\t\t(xy 121.055972 87.897359) (xy 121.05597 87.897356) (xy 121.05597 87.897354) (xy 120.994565 87.790999)\r\n\t\t\t\t(xy 120.994563 87.790997) (xy 120.994562 87.790995) (xy 120.907716 87.704149) (xy 120.907713 87.704147)\r\n\t\t\t\t(xy 120.907711 87.704145) (xy 120.801356 87.64274) (xy 120.739289 87.62611) (xy 120.682717 87.610952)\r\n\t\t\t\t(xy 120.666353 87.610952) (xy 120.50131 87.610952) (xy 120.439901 87.610952) (xy 120.387586 87.624969)\r\n\t\t\t\t(xy 120.321261 87.64274) (xy 120.214906 87.704145) (xy 120.128052 87.790999) (xy 120.066648 87.897353)\r\n\t\t\t\t(xy 120.066646 87.897357) (xy 120.066646 87.897359) (xy 120.05694 87.933587) (xy 120.056939 87.933589)\r\n\t\t\t\t(xy 120.023614 87.984903) (xy 119.966493 88.006829) (xy 119.907392 87.990993) (xy 119.868887 87.943443)\r\n\t\t\t\t(xy 119.865686 87.933589) (xy 119.855972 87.897334) (xy 119.85597 87.897331) (xy 119.85597 87.897329)\r\n\t\t\t\t(xy 119.794565 87.790974) (xy 119.794563 87.790972) (xy 119.794562 87.79097) (xy 119.707716 87.704124)\r\n\t\t\t\t(xy 119.707713 87.704122) (xy 119.707711 87.70412) (xy 119.601356 87.642715) (xy 119.576294 87.636)\r\n\t\t\t\t(xy 119.482717 87.610927) (xy 119.466353 87.610927) (xy 119.30131 87.610927) (xy 119.239901 87.610927)\r\n\t\t\t\t(xy 119.187586 87.624944) (xy 119.121261 87.642715) (xy 119.014906 87.70412) (xy 118.928052 87.790974)\r\n\t\t\t\t(xy 118.866647 87.897329) (xy 118.834859 88.015969) (xy 118.834859 88.127649) (xy 118.815952 88.18584)\r\n\t\t\t\t(xy 118.766452 88.221804) (xy 118.735859 88.226649) (xy 109.48838 88.226649) (xy 109.41414 88.257399)\r\n\t\t\t\t(xy 109.414141 88.2574) (xy 109.405152 88.261123) (xy 108.820777 88.845499) (xy 108.820776 88.845498)\r\n\t\t\t\t(xy 108.757074 88.909201) (xy 108.7226 88.99243) (xy 108.7226 89.554881) (xy 108.709846 89.596926)\r\n\t\t\t\t(xy 108.711756 89.597718) (xy 108.67355 89.689955) (xy 108.67355 89.833154) (xy 108.66191 89.871541)\r\n\t\t\t\t(xy 108.664863 89.872764) (xy 108.661132 89.881768) (xy 108.6495 89.940249) (xy 108.6495 90.579746)\r\n\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t\t(xy 108.649501 90.579758) (xy 108.661132 90.638227) (xy 108.661134 90.638233) (xy 108.702072 90.6995)\r\n\t\t\t\t(xy 108.705448 90.704552) (xy 108.771769 90.748867) (xy 108.816231 90.757711) (xy 108.830241 90.760498)\r\n\t\t\t\t(xy 108.830246 90.760498) (xy 108.830252 90.7605) (xy 108.830253 90.7605) (xy 108.969747 90.7605)\r\n\t\t\t\t(xy 108.969748 90.7605) (xy 109.028231 90.748867) (xy 109.044997 90.737663) (xy 109.103885 90.721054)\r\n\t\t\t\t(xy 109.155002 90.737663) (xy 109.171769 90.748867) (xy 109.216231 90.757711) (xy 109.230241 90.760498)\r\n\t\t\t\t(xy 109.230246 90.760498) (xy 109.230252 90.7605) (xy 109.230253 90.7605) (xy 109.369747 90.7605)\r\n\t\t\t\t(xy 109.369748 90.7605) (xy 109.428231 90.748867) (xy 109.494552 90.704552) (xy 109.538867 90.638231)\r\n\t\t\t\t(xy 109.5505 90.579748) (xy 109.5505 89.940252) (xy 109.538867 89.881769) (xy 109.538867 89.881768)\r\n\t\t\t\t(xy 109.535137 89.872764) (xy 109.538089 89.871541) (xy 109.52645 89.833154) (xy 109.52645 89.689955)\r\n\t\t\t\t(xy 109.520949 89.676674) (xy 109.491975 89.606726) (xy 109.491975 89.606725) (xy 109.491974 89.606724)\r\n\t\t\t\t(xy 109.484935 89.589729) (xy 109.4774 89.551845) (xy 109.4774 89.297332) (xy 109.496307 89.239141)\r\n\t\t\t\t(xy 109.506396 89.227328) (xy 109.723278 89.010446) (xy 109.777795 88.982669) (xy 109.793282 88.98145)\r\n\t\t\t\t(xy 132.754573 88.98145) (xy 132.812764 89.000357) (xy 132.848728 89.049857) (xy 132.848728 89.111043)\r\n\t\t\t\t(xy 132.812764 89.160543) (xy 132.809574 89.162766) (xy 132.740348 89.20902) (xy 132.59402 89.355348)\r\n\t\t\t\t(xy 132.479058 89.527402) (xy 132.399869 89.718581) (xy 132.3595 89.921532) (xy 132.3595 90.128467)\r\n\t\t\t\t(xy 132.399869 90.331418) (xy 132.479058 90.522596) (xy 132.479221 90.52284) (xy 132.479258 90.522971)\r\n\t\t\t\t(xy 132.481351 90.526887) (xy 132.480491 90.527346) (xy 132.480855 90.528636) (xy 132.485113 90.532894)\r\n\t\t\t\t(xy 132.489029 90.557622) (xy 132.495828 90.581729) (xy 132.493743 90.587379) (xy 132.494685 90.593326)\r\n\t\t\t\t(xy 132.483318 90.615635) (xy 132.474649 90.639132) (xy 132.466908 90.647843) (xy 132.3771 90.737652)\r\n\t\t\t\t(xy 132.322584 90.76543) (xy 132.307096 90.766649) (xy 130.041381 90.766649) (xy 129.98319 90.747742)\r\n\t\t\t\t(xy 129.971377 90.737653) (xy 129.410332 90.176608) (xy 128.790799 89.557075) (xy 128.790797 89.557074)\r\n\t\t\t\t(xy 128.790796 89.557073) (xy 128.736994 89.534788) (xy 128.70757 89.5226) (xy 123.89243 89.5226)\r\n\t\t\t\t(xy 123.851604 89.539511) (xy 123.851603 89.539511) (xy 123.809202 89.557073) (xy 122.072672 91.293604)\r\n\t\t\t\t(xy 122.018155 91.321381) (xy 122.002668 91.3226) (xy 120.28545 91.3226) (xy 120.227259 91.303693)\r\n\t\t\t\t(xy 120.191295 91.254193) (xy 120.18645 91.2236) (xy 120.18645 90.861836) (xy 120.18645 90.861835)\r\n\t\t\t\t(xy 120.154663 90.7432) (xy 120.154661 90.743197) (xy 120.154661 90.743195) (xy 120.093256 90.63684)\r\n\t\t\t\t(xy 120.093254 90.636838) (xy 120.093253 90.636836) (xy 120.006407 90.54999) (xy 120.006404 90.549988)\r\n\t\t\t\t(xy 120.006402 90.549986) (xy 119.900047 90.488581) (xy 119.864363 90.47902) (xy 119.781408 90.456793)\r\n\t\t\t\t(xy 119.765044 90.456793) (xy 119.600001 90.456793) (xy 119.538592 90.456793) (xy 119.486277 90.47081)\r\n\t\t\t\t(xy 119.419952 90.488581) (xy 119.313597 90.549986) (xy 119.226743 90.63684) (xy 119.165339 90.743194)\r\n\t\t\t\t(xy 119.165337 90.743198) (xy 119.165337 90.7432) (xy 119.159055 90.766649) (xy 119.155626 90.779445)\r\n\t\t\t\t(xy 119.122302 90.830759) (xy 119.06518 90.852686) (xy 119.00608 90.83685) (xy 118.967575 90.789301)\r\n\t\t\t\t(xy 118.964375 90.779454) (xy 118.954663 90.743206) (xy 118.954661 90.743203) (xy 118.954661 90.743201)\r\n\t\t\t\t(xy 118.893256 90.636846) (xy 118.893254 90.636844) (xy 118.893253 90.636842) (xy 118.806407 90.549996)\r\n\t\t\t\t(xy 118.806404 90.549994) (xy 118.806402 90.549992) (xy 118.700047 90.488587) (xy 118.664341 90.47902)\r\n\t\t\t\t(xy 118.581408 90.456799) (xy 118.565044 90.456799) (xy 118.400001 90.456799) (xy 118.338592 90.456799)\r\n\t\t\t\t(xy 118.286277 90.470816) (xy 118.219952 90.488587) (xy 118.113597 90.549992) (xy 118.026743 90.636846)\r\n\t\t\t\t(xy 117.965338 90.743201) (xy 117.93355 90.861841) (xy 117.93355 91.2236) (xy 117.914643 91.281791)\r\n\t\t\t\t(xy 117.865143 91.317755) (xy 117.83455 91.3226) (xy 108.797332 91.3226) (xy 108.739141 91.303693)\r\n\t\t\t\t(xy 108.727328 91.293604) (xy 108.353467 90.919743) (xy 108.32569 90.865226) (xy 108.324478 90.848536)\r\n\t\t\t\t(xy 108.324649 90.83439) (xy 108.32645 90.830045) (xy 108.32645 90.686218) (xy 108.326457 90.685642)\r\n\t\t\t\t(xy 108.32992 90.675408) (xy 108.338094 90.648468) (xy 108.335134 90.647242) (xy 108.338862 90.638237)\r\n\t\t\t\t(xy 108.338867 90.638231) (xy 108.3505 90.579748) (xy 108.3505 89.940252) (xy 108.338867 89.881769)\r\n\t\t\t\t(xy 108.294552 89.815448) (xy 108.294548 89.815445) (xy 108.228233 89.771134) (xy 108.228231 89.771133)\r\n\t\t\t\t(xy 108.228228 89.771132) (xy 108.228227 89.771132) (xy 108.169758 89.759501) (xy 108.169748 89.7595)\r\n\t\t\t\t(xy 108.030252 89.7595) (xy 108.030251 89.7595) (xy 108.030241 89.759501) (xy 107.971772 89.771132)\r\n\t\t\t\t(xy 107.971767 89.771134) (xy 107.955001 89.782337) (xy 107.896113 89.798945) (xy 107.844999 89.782337)\r\n\t\t\t\t(xy 107.838642 89.778089) (xy 107.828231 89.771133) (xy 107.828228 89.771132) (xy 107.828227 89.771132)\r\n\t\t\t\t(xy 107.769758 89.759501) (xy 107.769748 89.7595) (xy 107.630252 89.7595) (xy 107.630251 89.7595)\r\n\t\t\t\t(xy 107.630241 89.759501) (xy 107.571772 89.771132) (xy 107.571766 89.771134) (xy 107.505451 89.815445)\r\n\t\t\t\t(xy 107.505445 89.815451) (xy 107.461134 89.881766) (xy 107.461132 89.881772) (xy 107.449501 89.940241)\r\n\t\t\t\t(xy 107.4495 89.940253) (xy 107.1505 89.940253) (xy 107.1505 89.940252) (xy 107.1505 87.368162)\r\n\t\t\t\t(xy 107.169407 87.309971) (xy 107.218907 87.274007) (xy 107.223855 87.272541) (xy 107.259759 87.262921)\r\n\t\t\t\t(xy 107.259761 87.262919) (xy 107.259763 87.262919) (xy 107.362481 87.203614) (xy 107.362481 87.203613)\r\n\t\t\t\t(xy 107.362486 87.203611) (xy 107.446362 87.119735) (xy 107.466618 87.084651) (xy 107.50567 87.017012)\r\n\t\t\t\t(xy 107.50567 87.01701) (xy 107.505672 87.017008) (xy 107.536373 86.902431) (xy 107.536373 86.783813)\r\n\t\t\t\t(xy 107.505672 86.669236) (xy 107.50567 86.669233) (xy 107.50567 86.669231) (xy 107.446365 86.566513)\r\n\t\t\t\t(xy 107.446363 86.566511) (xy 107.446362 86.566509) (xy 107.362486 86.482633) (xy 107.362483 86.482631)\r\n\t\t\t\t(xy 107.362481 86.482629) (xy 107.259762 86.423324) (xy 107.259758 86.423322) (xy 107.21244 86.410643)\r\n\t\t\t\t(xy 107.161126 86.377319) (xy 107.1392 86.320197) (xy 107.139261 86.308768) (xy 107.139883 86.298931)\r\n\t\t\t\t(xy 107.1505 86.259309) (xy 107.1505 86.140691) (xy 112.3495 86.140691) (xy 112.3495 86.259309)\r\n\t\t\t\t(xy 112.373847 86.350172) (xy 112.380202 86.37389) (xy 112.439507 86.476608) (xy 112.439509 86.47661)\r\n\t\t\t\t(xy 112.439511 86.476613) (xy 112.523387 86.560489) (xy 112.523389 86.56049) (xy 112.523391 86.560492)\r\n\t\t\t\t(xy 112.62611 86.619797) (xy 112.626111 86.619797) (xy 112.626114 86.619799) (xy 112.740691 86.6505)\r\n\t\t\t\t(xy 112.740693 86.6505) (xy 112.859308 86.6505) (xy 112.859309 86.6505) (xy 112.965552 86.622032)\r\n\t\t\t\t(xy 113.026653 86.625233) (xy 113.074203 86.663738) (xy 113.076669 86.668432) (xy 113.076956 86.668267)\r\n\t\t\t\t(xy 113.139507 86.776608) (xy 113.139509 86.77661) (xy 113.139511 86.776613) (xy 113.223387 86.860489)\r\n\t\t\t\t(xy 113.223389 86.86049) (xy 113.223391 86.860492) (xy 113.32611 86.919797) (xy 113.326111 86.919797)\r\n\t\t\t\t(xy 113.326114 86.919799) (xy 113.440691 86.9505) (xy 113.440693 86.9505) (xy 113.538467 86.9505)\r\n\t\t\t\t(xy 113.596658 86.969407) (xy 113.632622 87.018907) (xy 113.634094 87.023877) (xy 113.635153 87.027829)\r\n\t\t\t\t(xy 113.635153 87.027832) (xy 113.663064 87.131998) (xy 113.665855 87.142413) (xy 113.72516 87.245131)\r\n\t\t\t\t(xy 113.725162 87.245133) (xy 113.725164 87.245136) (xy 113.80904 87.329012) (xy 113.809042 87.329013)\r\n\t\t\t\t(xy 113.809044 87.329015) (xy 113.911763 87.38832) (xy 113.911764 87.38832) (xy 113.911767 87.388322)\r\n\t\t\t\t(xy 114.026344 87.419023) (xy 114.026346 87.419023) (xy 114.14496 87.419023) (xy 114.144962 87.419023)\r\n\t\t\t\t(xy 114.259539 87.388322) (xy 114.259541 87.38832) (xy 114.259543 87.38832) (xy 114.362261 87.329015)\r\n\t\t\t\t(xy 114.362261 87.329014) (xy 114.362266 87.329012) (xy 114.446142 87.245136) (xy 114.458499 87.223734)\r\n\t\t\t\t(xy 114.50545 87.142413) (xy 114.50545 87.142411) (xy 114' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'.505452 87.142409) (xy 114.536153 87.027832)\r\n\t\t\t\t(xy 114.536153 86.909214) (xy 114.505452 86.794637) (xy 114.50545 86.794634) (xy 114.50545 86.794632)\r\n\t\t\t\t(xy 114.446145 86.691914) (xy 114.446143 86.691912) (xy 114.446142 86.69191) (xy 114.362266 86.608034)\r\n\t\t\t\t(xy 114.362263 86.608032) (xy 114.362261 86.60803) (xy 114.259542 86.548725) (xy 114.259543 86.548725)\r\n\t\t\t\t(xy 114.220804 86.538345) (xy 114.144962 86.518023) (xy 114.047186 86.518023) (xy 113.988995 86.499116)\r\n\t\t\t\t(xy 113.953031 86.449616) (xy 113.951559 86.444646) (xy 113.9505 86.440693) (xy 113.9505 86.440691)\r\n\t\t\t\t(xy 113.919799 86.326114) (xy 113.919797 86.326111) (xy 113.919797 86.326109) (xy 113.860492 86.223391)\r\n\t\t\t\t(xy 113.86049 86.223389) (xy 113.860489 86.223387) (xy 113.776613 86.139511) (xy 113.77661 86.139509)\r\n\t\t\t\t(xy 113.776608 86.139507) (xy 113.673889 86.080202) (xy 113.67389 86.080202) (xy 113.653599 86.074765)\r\n\t\t\t\t(xy 113.559309 86.0495) (xy 113.440691 86.0495) (xy 113.359562 86.071238) (xy 113.334447 86.077968)\r\n\t\t\t\t(xy 113.273345 86.074765) (xy 113.225795 86.03626) (xy 113.22334 86.031561) (xy 113.223044 86.031733)\r\n\t\t\t\t(xy 113.160492 85.923391) (xy 113.16049 85.923389) (xy 113.160489 85.923387) (xy 113.076613 85.839511)\r\n\t\t\t\t(xy 113.07661 85.839509) (xy 113.076608 85.839507) (xy 112.973889 85.780202) (xy 112.97389 85.780202)\r\n\t\t\t\t(xy 112.960351 85.776574) (xy 112.859309 85.7495) (xy 112.740691 85.7495) (xy 112.670567 85.768289)\r\n\t\t\t\t(xy 112.626109 85.780202) (xy 112.523391 85.839507) (xy 112.439507 85.923391) (xy 112.380202 86.026109)\r\n\t\t\t\t(xy 112.368066 86.071401) (xy 112.3495 86.140691) (xy 107.1505 86.140691) (xy 107.119799 86.026114)\r\n\t\t\t\t(xy 107.119797 86.026111) (xy 107.119797 86.026109) (xy 107.060492 85.923391) (xy 107.06049 85.923389)\r\n\t\t\t\t(xy 107.060489 85.923387) (xy 106.976613 85.839511) (xy 106.97661 85.839509) (xy 106.976608 85.839507)\r\n\t\t\t\t(xy 106.873889 85.780202) (xy 106.87389 85.780202) (xy 106.860351 85.776574) (xy 106.759309 85.7495)\r\n\t\t\t\t(xy 106.640691 85.7495) (xy 106.570567 85.768289) (xy 106.526109 85.780202) (xy 106.423391 85.839507)\r\n\t\t\t\t(xy 106.339507 85.923391) (xy 106.280202 86.026109) (xy 106.268066 86.071401) (xy 106.249818 86.139507)\r\n\t\t\t\t(xy 106.2495 86.140692) (xy 106.2495 86.259313) (xy 106.255585 86.282023) (xy 106.252381 86.343124)\r\n\t\t\t\t(xy 106.251425 86.345521) (xy 106.2495 86.350167) (xy 106.2495 86.80558) (xy 106.230593 86.863771)\r\n\t\t\t\t(xy 106.181093 86.899735) (xy 106.119907 86.899735) (xy 106.070407 86.863771) (xy 106.064764 86.855081)\r\n\t\t\t\t(xy 106.023617 86.783814) (xy 106.017597 86.773387) (xy 105.933721 86.689511) (xy 105.933718 86.689509)\r\n\t\t\t\t(xy 105.933716 86.689507) (xy 105.830997 86.630202) (xy 105.830998 86.630202) (xy 105.792173 86.619799)\r\n\t\t\t\t(xy 105.716417 86.5995) (xy 105.597799 86.5995) (xy 105.527675 86.618289) (xy 105.483217 86.630202)\r\n\t\t\t\t(xy 105.477224 86.632685) (xy 105.476425 86.630758) (xy 105.425799 86.641512) (xy 105.369907 86.616619)\r\n\t\t\t\t(xy 105.350426 86.59256) (xy 105.310489 86.523387) (xy 105.226613 86.439511) (xy 105.22661 86.439509)\r\n\t\t\t\t(xy 105.226608 86.439507) (xy 105.123889 86.380202) (xy 105.12389 86.380202) (xy 105.100318 86.373886)\r\n\t\t\t\t(xy 105.009309 86.3495) (xy 104.890691 86.3495) (xy 104.820567 86.368289) (xy 104.776109 86.380202)\r\n\t\t\t\t(xy 104.673391 86.439507) (xy 104.589507 86.523391) (xy 104.530202 86.626109) (xy 104.4995 86.740692)\r\n\t\t\t\t(xy 104.4995 86.855231) (xy 104.480593 86.913422) (xy 104.470508 86.925229) (xy 104.358103 87.037636)\r\n\t\t\t\t(xy 104.358102 87.037635) (xy 104.287635 87.108103) (xy 104.2495 87.200171) (xy 104.2495 88.88129)\r\n\t\t\t\t(xy 104.230593 88.939481) (xy 104.181093 88.975445) (xy 104.119907 88.975445) (xy 104.070407 88.939481)\r\n\t\t\t\t(xy 104.064764 88.930791) (xy 104.06049 88.923389) (xy 104.060489 88.923387) (xy 103.976613 88.839511)\r\n\t\t\t\t(xy 103.97661 88.839509) (xy 103.976608 88.839507) (xy 103.873889 88.780202) (xy 103.87389 88.780202)\r\n\t\t\t\t(xy 103.850318 88.773886) (xy 103.759309 88.7495) (xy 103.640691 88.7495) (xy 103.570567 88.768289)\r\n\t\t\t\t(xy 103.526109 88.780202) (xy 103.423391 88.839507) (xy 103.339507 88.923391) (xy 103.280202 89.026109)\r\n\t\t\t\t(xy 103.280201 89.026114) (xy 103.2495 89.140691) (xy 100.637102 89.140691) (xy 100.619799 89.076114)\r\n\t\t\t\t(xy 100.619797 89.076111) (xy 100.619797 89.076109) (xy 100.560492 88.973391) (xy 100.56049 88.973389)\r\n\t\t\t\t(xy 100.560489 88.973387) (xy 100.476613 88.889511) (xy 100.47661 88.889509) (xy 100.476608 88.889507)\r\n\t\t\t\t(xy 100.373889 88.830202) (xy 100.37389 88.830202) (xy 100.360351 88.826574) (xy 100.259309 88.7995)\r\n\t\t\t\t(xy 100.140691 88.7995) (xy 100.070567 88.818289) (xy 100.026109 88.830202) (xy 99.923391 88.889507)\r\n\t\t\t\t(xy 99.839507 88.973391) (xy 99.780202 89.076109) (xy 99.768844 89.118499) (xy 99.7495 89.190691)\r\n\t\t\t\t(xy 99.7495 89.309309) (xy 99.780201 89.423886) (xy 99.822773 89.497623) (xy 99.836236 89.52094)\r\n\t\t\t\t(xy 99.8495 89.570441) (xy 99.8495 89.6605) (xy 99.830593 89.718691) (xy 99.781093 89.754655) (xy 99.7505 89.7595)\r\n\t\t\t\t(xy 99.630252 89.7595) (xy 99.630251 89.7595) (xy 99.630241 89.759501) (xy 99.571772 89.771132)\r\n\t\t\t\t(xy 99.571766 89.771134) (xy 99.505451 89.815445) (xy 99.505445 89.815451) (xy 99.461134 89.881766)\r\n\t\t\t\t(xy 99.461132 89.881772) (xy 99.449501 89.940241) (xy 99.4495 89.940253) (xy 99.1505 89.940253)\r\n\t\t\t\t(xy 99.1505 89.940252) (xy 99.138867 89.881769) (xy 99.094552 89.815448) (xy 99.094548 89.815445)\r\n\t\t\t\t(xy 99.028233 89.771134) (xy 99.028231 89.771133) (xy 99.028228 89.771132) (xy 99.028227 89.771132)\r\n\t\t\t\t(xy 98.969758 89.759501) (xy 98.969748 89.7595) (xy 98.830252 89.7595) (xy 98.830251 89.7595) (xy 98.830241 89.759501)\r\n\t\t\t\t(xy 98.771772 89.771132) (xy 98.771767 89.771134) (xy 98.755001 89.782337) (xy 98.696113 89.798945)\r\n\t\t\t\t(xy 98.644999 89.782337) (xy 98.638642 89.778089) (xy 98.628231 89.771133) (xy 98.628228 89.771132)\r\n\t\t\t\t(xy 98.628227 89.771132) (xy 98.569758 89.759501) (xy 98.569748 89.7595) (xy 98.430252 89.7595)\r\n\t\t\t\t(xy 98.430251 89.7595) (xy 98.430241 89.759501) (xy 98.371772 89.771132) (xy 98.371766 89.771134)\r\n\t\t\t\t(xy 98.305451 89.815445) (xy 98.305445 89.815451) (xy 98.261134 89.881766) (xy 98.261132 89.881772)\r\n\t\t\t\t(xy 98.249501 89.940241) (xy 98.2495 89.940253) (xy 97.9505 89.940253) (xy 97.9505 89.940252) (xy 97.938867 89.881769)\r\n\t\t\t\t(xy 97.894552 89.815448) (xy 97.894548 89.815445) (xy 97.828233 89.771134) (xy 97.828231 89.771133)\r\n\t\t\t\t(xy 97.828228 89.771132) (xy 97.828227 89.771132) (xy 97.769758 89.759501) (xy 97.769748 89.7595)\r\n\t\t\t\t(xy 97.630252 89.7595) (xy 97.630251 89.7595) (xy 97.630241 89.759501) (xy 97.571772 89.771132)\r\n\t\t\t\t(xy 97.571767 89.771134) (xy 97.555001 89.782337) (xy 97.496113 89.798945) (xy 97.444999 89.782337)\r\n\t\t\t\t(xy 97.438642 89.778089) (xy 97.428231 89.771133) (xy 97.428228 89.771132) (xy 97.428227 89.771132)\r\n\t\t\t\t(xy 97.369758 89.759501) (xy 97.369748 89.7595) (xy 97.230252 89.7595) (xy 97.230251 89.7595) (xy 97.230241 89.759501)\r\n\t\t\t\t(xy 97.171772 89.771132) (xy 97.171766 89.771134) (xy 97.105451 89.815445) (xy 97.105445 89.815451)\r\n\t\t\t\t(xy 97.061134 89.881766) (xy 97.061132 89.881772) (xy 97.049501 89.940241) (xy 97.0495 89.940253)\r\n\t\t\t\t(xy 96.7505 89.940253) (xy 96.7505 89.940252) (xy 96.738867 89.881769) (xy 96.694552 89.815448)\r\n\t\t\t\t(xy 96.694548 89.815445) (xy 96.628233 89.771134) (xy 96.628231 89.771133) (xy 96.628228 89.771132)\r\n\t\t\t\t(xy 96.628227 89.771132) (xy 96.569758 89.759501) (xy 96.569748 89.7595) (xy 96.430252 89.7595)\r\n\t\t\t\t(xy 96.430251 89.7595) (xy 96.430241 89.759501) (xy 96.371772 89.771132) (xy 96.371767 89.771134)\r\n\t\t\t\t(xy 96.355001 89.782337) (xy 96.296113 89.798945) (xy 96.244999 89.782337) (xy 96.238642 89.778089)\r\n\t\t\t\t(xy 96.228231 89.771133) (xy 96.228228 89.771132) (xy 96.228227 89.771132) (xy 96.169758 89.759501)\r\n\t\t\t\t(xy 96.169748 89.7595) (xy 96.030252 89.7595) (xy 96.030251 89.7595) (xy 96.030241 89.759501) (xy 95.971772 89.771132)\r\n\t\t\t\t(xy 95.971766 89.771134) (xy 95.905451 89.815445) (xy 95.905445 89.815451) (xy 95.861134 89.881766)\r\n\t\t\t\t(xy 95.861132 89.881772) (xy 95.849501 89.940241) (xy 95.8495 89.940253) (xy 95.5505 89.940253)\r\n\t\t\t\t(xy 95.5505 89.940252) (xy 95.538867 89.881769) (xy 95.494552 89.815448) (xy 95.494548 89.815445)\r\n\t\t\t\t(xy 95.428233 89.771134) ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(xy 95.428231 89.771133) (xy 95.428228 89.771132) (xy 95.428227 89.771132)\r\n\t\t\t\t(xy 95.369758 89.759501) (xy 95.369748 89.7595) (xy 95.230252 89.7595) (xy 95.230251 89.7595) (xy 95.230241 89.759501)\r\n\t\t\t\t(xy 95.171772 89.771132) (xy 95.171767 89.771134) (xy 95.155001 89.782337) (xy 95.096113 89.798945)\r\n\t\t\t\t(xy 95.044999 89.782337) (xy 95.038642 89.778089) (xy 95.028231 89.771133) (xy 95.028228 89.771132)\r\n\t\t\t\t(xy 95.028227 89.771132) (xy 94.969758 89.759501) (xy 94.969748 89.7595) (xy 94.8995 89.7595) (xy 94.884588 89.754655)\r\n\t\t\t\t(xy 94.868907 89.754655) (xy 94.856221 89.745438) (xy 94.841309 89.740593) (xy 94.832092 89.727907)\r\n\t\t\t\t(xy 94.819407 89.718691) (xy 94.814561 89.703778) (xy 94.805345 89.691093) (xy 94.8005 89.6605)\r\n\t\t\t\t(xy 94.8005 89.627609) (xy 94.819407 89.569418) (xy 94.82949 89.557611) (xy 94.860489 89.526613)\r\n\t\t\t\t(xy 94.863764 89.52094) (xy 94.919797 89.42389) (xy 94.919797 89.423888) (xy 94.919799 89.423886)\r\n\t\t\t\t(xy 94.9505 89.309309) (xy 94.9505 89.190691) (xy 94.919799 89.076114) (xy 94.919797 89.076111)\r\n\t\t\t\t(xy 94.919797 89.076109) (xy 94.860492 88.973391) (xy 94.860491 88.97339) (xy 94.86049 88.973389)\r\n\t\t\t\t(xy 94.860489 88.973387) (xy 94.829495 88.942393) (xy 94.801719 88.887876) (xy 94.8005 88.87239)\r\n\t\t\t\t(xy 94.8005 88.165402) (xy 94.808934 88.125417) (xy 94.847682 88.037662) (xy 94.8505 88.013373)\r\n\t\t\t\t(xy 94.850499 87.586628) (xy 94.847682 87.562338) (xy 94.803813 87.462984) (xy 94.749494 87.408665)\r\n\t\t\t\t(xy 94.745869 87.40155) (xy 94.739407 87.396855) (xy 94.732243 87.374806) (xy 94.721719 87.354151)\r\n\t\t\t\t(xy 94.7205 87.338664) (xy 94.7205 87.261336) (xy 94.739407 87.203145) (xy 94.74949 87.191338) (xy 94.803813 87.137016)\r\n\t\t\t\t(xy 94.847682 87.037662) (xy 94.8505 87.013373) (xy 94.850499 86.586628) (xy 94.847682 86.562338)\r\n\t\t\t\t(xy 94.803813 86.462984) (xy 94.727016 86.386187) (xy 94.627662 86.342318) (xy 94.627661 86.342317)\r\n\t\t\t\t(xy 94.627659 86.342317) (xy 94.603376 86.3395) (xy 94.23663 86.3395) (xy 94.236627 86.339501) (xy 94.212338 86.342317)\r\n\t\t\t\t(xy 94.112984 86.386187) (xy 94.036187 86.462984) (xy 93.992317 86.56234) (xy 93.9895 86.586622)\r\n\t\t\t\t(xy 93.9895 87.013369) (xy 93.989501 87.013372) (xy 93.992317 87.037661) (xy 94.013066 87.084651)\r\n\t\t\t\t(xy 94.036187 87.137016) (xy 94.090505 87.191334) (xy 94.09413 87.198449) (xy 94.100593 87.203145)\r\n\t\t\t\t(xy 94.107756 87.225193) (xy 94.118281 87.245849) (xy 94.1195 87.261336) (xy 94.1195 87.338664)\r\n\t\t\t\t(xy 94.100593 87.396855) (xy 94.090509 87.408661) (xy 94.059664 87.439507) (xy 94.036187 87.462984)\r\n\t\t\t\t(xy 93.992317 87.56234) (xy 93.9895 87.586622) (xy 93.9895 88.013369) (xy 93.989501 88.013372) (xy 93.992317 88.037661)\r\n\t\t\t\t(xy 94.009853 88.077376) (xy 94.036187 88.137016) (xy 94.112984 88.213813) (xy 94.140488 88.225957)\r\n\t\t\t\t(xy 94.186083 88.266756) (xy 94.1995 88.316521) (xy 94.1995 88.87239) (xy 94.180593 88.930581) (xy 94.170505 88.942393)\r\n\t\t\t\t(xy 94.139507 88.973391) (xy 94.080202 89.076109) (xy 94.068844 89.118499) (xy 94.0495 89.190691)\r\n\t\t\t\t(xy 94.0495 89.309309) (xy 94.066805 89.37389) (xy 94.080202 89.42389) (xy 94.139507 89.526608)\r\n\t\t\t\t(xy 94.139509 89.52661) (xy 94.139511 89.526613) (xy 94.170505 89.557607) (xy 94.17413 89.564722)\r\n\t\t\t\t(xy 94.180593 89.569418) (xy 94.187756 89.591466) (xy 94.198281 89.612122) (xy 94.1995 89.627609)\r\n\t\t\t\t(xy 94.1995 89.6605) (xy 94.180593 89.718691) (xy 94.131093 89.754655) (xy 94.1005 89.7595) (xy 94.030252 89.7595)\r\n\t\t\t\t(xy 94.030251 89.7595) (xy 94.030241 89.759501) (xy 93.971772 89.771132) (xy 93.971767 89.771134)\r\n\t\t\t\t(xy 93.955001 89.782337) (xy 93.896113 89.798945) (xy 93.844999 89.782337) (xy 93.838642 89.778089)\r\n\t\t\t\t(xy 93.828231 89.771133) (xy 93.828228 89.771132) (xy 93.828227 89.771132) (xy 93.769758 89.759501)\r\n\t\t\t\t(xy 93.769748 89.7595) (xy 93.630252 89.7595) (xy 93.630251 89.7595) (xy 93.630241 89.759501) (xy 93.571772 89.771132)\r\n\t\t\t\t(xy 93.571767 89.771134) (xy 93.555001 89.782337) (xy 93.496113 89.798945) (xy 93.444999 89.782337)\r\n\t\t\t\t(xy 93.438642 89.778089) (xy 93.428231 89.771133) (xy 93.428228 89.771132) (xy 93.428227 89.771132)\r\n\t\t\t\t(xy 93.369758 89.759501) (xy 93.369748 89.7595) (xy 93.230252 89.7595) (xy 93.230251 89.7595) (xy 93.230241 89.759501)\r\n\t\t\t\t(xy 93.171772 89.771132) (xy 93.171767 89.771134) (xy 93.155001 89.782337) (xy 93.096113 89.798945)\r\n\t\t\t\t(xy 93.044999 89.782337) (xy 93.038642 89.778089) (xy 93.028231 89.771133) (xy 93.028228 89.771132)\r\n\t\t\t\t(xy 93.028227 89.771132) (xy 92.969758 89.759501) (xy 92.969748 89.7595) (xy 92.830252 89.7595)\r\n\t\t\t\t(xy 92.830251 89.7595) (xy 92.830241 89.759501) (xy 92.771772 89.771132) (xy 92.771767 89.771134)\r\n\t\t\t\t(xy 92.755001 89.782337) (xy 92.696113 89.798945) (xy 92.644999 89.782337) (xy 92.638642 89.778089)\r\n\t\t\t\t(xy 92.628231 89.771133) (xy 92.628228 89.771132) (xy 92.628227 89.771132) (xy 92.569758 89.759501)\r\n\t\t\t\t(xy 92.569748 89.7595) (xy 92.4495 89.7595) (xy 92.391309 89.740593) (xy 92.355345 89.691093) (xy 92.3505 89.6605)\r\n\t\t\t\t(xy 92.3505 89.344767) (xy 92.369407 89.286576) (xy 92.379484 89.274775) (xy 92.574765 89.079494)\r\n\t\t\t\t(xy 92.62928 89.051719) (xy 92.644767 89.0505) (xy 92.759307 89.0505) (xy 92.759309 89.0505) (xy 92.873886 89.019799)\r\n\t\t\t\t(xy 92.873888 89.019797) (xy 92.87389 89.019797) (xy 92.976608 88.960492) (xy 92.976608 88.960491)\r\n\t\t\t\t(xy 92.976613 88.960489) (xy 93.060489 88.876613) (xy 93.062927 88.87239) (xy 93.119797 88.77389)\r\n\t\t\t\t(xy 93.119797 88.773888) (xy 93.119799 88.773886) (xy 93.1505 88.659309) (xy 93.1505 88.540691)\r\n\t\t\t\t(xy 93.119799 88.426114) (xy 93.119797 88.426111) (xy 93.119797 88.426109) (xy 93.060492 88.323391)\r\n\t\t\t\t(xy 93.06049 88.323389) (xy 93.060489 88.323387) (xy 92.976613 88.239511) (xy 92.97661 88.239509)\r\n\t\t\t\t(xy 92.976608 88.239507) (xy 92.873889 88.180202) (xy 92.87389 88.180202) (xy 92.828564 88.168057)\r\n\t\t\t\t(xy 92.759309 88.1495) (xy 92.642223 88.1495) (xy 92.584032 88.130593) (xy 92.548068 88.081093)\r\n\t\t\t\t(xy 92.546596 88.076123) (xy 92.519799 87.976114) (xy 92.519797 87.976111) (xy 92.519797 87.976109)\r\n\t\t\t\t(xy 92.460492 87.873391) (xy 92.46049 87.873389) (xy 92.460489 87.873387) (xy 92.376613 87.789511)\r\n\t\t\t\t(xy 92.37661 87.789509) (xy 92.376608 87.789507) (xy 92.273889 87.730202) (xy 92.27389 87.730202)\r\n\t\t\t\t(xy 92.25143 87.724184) (xy 92.159309 87.6995) (xy 92.040691 87.6995) (xy 92.023449 87.70412) (xy 91.948567 87.724184)\r\n\t\t\t\t(xy 91.887466 87.720981) (xy 91.839916 87.682476) (xy 91.827319 87.654182) (xy 91.819799 87.626114)\r\n\t\t\t\t(xy 91.819798 87.626113) (xy 91.819798 87.626111) (xy 91.819797 87.62611) (xy 91.760492 87.523391)\r\n\t\t\t\t(xy 91.76049 87.523389) (xy 91.760489 87.523387) (xy 91.676613 87.439511) (xy 91.67661 87.439509)\r\n\t\t\t\t(xy 91.676608 87.439507) (xy 91.573889 87.380202) (xy 91.57389 87.380202) (xy 91.553752 87.374806)\r\n\t\t\t\t(xy 91.459309 87.3495) (xy 91.340691 87.3495) (xy 91.271044 87.368162) (xy 91.226109 87.380202)\r\n\t\t\t\t(xy 91.123391 87.439507) (xy 91.039507 87.523391) (xy 90.980202 87.626109) (xy 90.975746 87.642739)\r\n\t\t\t\t(xy 90.9495 87.740691) (xy 90.9495 87.859309) (xy 90.980201 87.973886) (xy 91.036054 88.070626)\r\n\t\t\t\t(xy 91.036236 88.07094) (xy 91.0495 88.120441) (xy 91.0495 89.056231) (xy 91.030593 89.114422) (xy 90.981093 89.150386)\r\n\t\t\t\t(xy 90.919907 89.150386) (xy 90.880496 89.126235) (xy 83.779496 82.025235) (xy 83.775869 82.018117)\r\n\t\t\t\t(xy 83.769407 82.013422) (xy 83.762243 81.991373) (xy 83.751719 81.970718) (xy 83.7505 81.955231)\r\n\t\t\t\t(xy 83.7505 81.816622) (xy 89.0395 81.816622) (xy 89.0395 82.183369) (xy 89.039501 82.183372) (xy 89.042317 82.207661)\r\n\t\t\t\t(xy 89.066816 82.263146) (xy 89.086187 82.307016) (xy 89.162984 82.383813) (xy 89.262338 82.427682)\r\n\t\t\t\t(xy 89.286627 82.4305) (xy 89.713372 82.430499) (xy 89.737662 82.427682) (xy 89.837016 82.383813)\r\n\t\t\t\t(xy 89.913813 82.307016) (xy 89.957682 82.207662) (xy 89.9605 82.183373) (xy 89.960499 81.934766)\r\n\t\t\t\t(xy 89.979406 81.876577) (xy 89.989482 81.864777) (xy 90.135746 81.718514) (xy 90.190258 81.69074)\r\n\t\t\t\t(xy 90.25069 81.700311) (xy 90.293955 81.743576) (xy 90.303588 81.777724) (xy 90.303892 81.777677)\r\n\t\t\t\t(xy 90.304297 81.780235) (xy 90.304439 81.780738) (xy 90.3045 81.78152) (xy 90.319352 81.875299)\r\n\t\t\t\t(xy 90.319354 81.875304) (xy 90.37695 81.988342) (xy 90.466658 82.0780' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'5) (xy 90.579696 82.135646)\r\n\t\t\t\t(xy 90.673481 82.1505) (xy 91.386518 82.150499) (xy 91.38652 82.150499) (xy 91.386521 82.150498)\r\n\t\t\t\t(xy 91.433411 82.143072) (xy 91.480299 82.135647) (xy 91.480299 82.135646) (xy 91.480304 82.135646)\r\n\t\t\t\t(xy 91.593342 82.07805) (xy 91.68305 81.988342) (xy 91.740646 81.875304) (xy 91.7555 81.781519)\r\n\t\t\t\t(xy 91.755499 80.969767) (xy 91.774406 80.911577) (xy 91.784489 80.89977) (xy 92.961014 79.723246)\r\n\t\t\t\t(xy 93.015531 79.695469) (xy 93.031018 79.69425) (xy 95.592666 79.69425) (xy 95.650857 79.713157)\r\n\t\t\t\t(xy 95.686821 79.762657) (xy 95.686821 79.823843) (xy 95.662671 79.863251) (xy 95.640423 79.8855)\r\n\t\t\t\t(xy 95.632035 79.893888) (xy 95.589182 79.968111) (xy 95.568708 80.044523) (xy 95.543085 80.088903)\r\n\t\t\t\t(xy 93.011484 82.620504) (xy 92.956967 82.648281) (xy 92.94148 82.6495) (xy 92.273479 82.6495) (xy 92.273476 82.649501)\r\n\t\t\t\t(xy 92.1797 82.664352) (xy 92.179695 82.664354) (xy 92.066659 82.721949) (xy 91.976949 82.811659)\r\n\t\t\t\t(xy 91.919354 82.924695) (xy 91.9045 83.018478) (xy 91.9045 83.981521) (xy 91.904501 83.981523)\r\n\t\t\t\t(xy 91.919352 84.075299) (xy 91.919354 84.075304) (xy 91.97695 84.188342) (xy 92.066658 84.27805)\r\n\t\t\t\t(xy 92.179696 84.335646) (xy 92.186681 84.336752) (xy 92.200649 84.343868) (xy 92.216135 84.34632)\r\n\t\t\t\t(xy 92.227224 84.357407) (xy 92.241197 84.364526) (xy 92.248315 84.378495) (xy 92.259403 84.389581)\r\n\t\t\t\t(xy 92.261857 84.405069) (xy 92.268977 84.419041) (xy 92.266525 84.434526) (xy 92.268979 84.450012)\r\n\t\t\t\t(xy 92.261861 84.463983) (xy 92.259409 84.479474) (xy 92.241206 84.504531) (xy 92.23524 84.510498)\r\n\t\t\t\t(xy 92.180726 84.53828) (xy 92.165231 84.5395) (xy 91.91663 84.5395) (xy 91.916627 84.539501) (xy 91.892338 84.542317)\r\n\t\t\t\t(xy 91.792984 84.586187) (xy 91.716187 84.662984) (xy 91.672317 84.76234) (xy 91.6695 84.786622)\r\n\t\t\t\t(xy 91.6695 85.213369) (xy 91.669501 85.213372) (xy 91.672317 85.237661) (xy 91.689106 85.275684)\r\n\t\t\t\t(xy 91.716187 85.337016) (xy 91.792984 85.413813) (xy 91.892338 85.457682) (xy 91.916627 85.4605)\r\n\t\t\t\t(xy 92.283372 85.460499) (xy 92.307662 85.457682) (xy 92.407016 85.413813) (xy 92.483813 85.337016)\r\n\t\t\t\t(xy 92.491807 85.318912) (xy 137.25 85.318912) (xy 137.25 85.581087) (xy 137.28422 85.84101) (xy 137.28422 85.841015)\r\n\t\t\t\t(xy 137.352075 86.094255) (xy 137.352078 86.094262) (xy 137.452403 86.33647) (xy 137.583492 86.563522)\r\n\t\t\t\t(xy 137.670079 86.676364) (xy 138.534152 85.812291) (xy 138.541049 85.828942) (xy 138.628599 85.95997)\r\n\t\t\t\t(xy 138.74003 86.071401) (xy 138.871058 86.158951) (xy 138.887706 86.165846) (xy 138.023633 87.029919)\r\n\t\t\t\t(xy 138.136477 87.116507) (xy 138.363529 87.247596) (xy 138.605737 87.347921) (xy 138.605744 87.347924)\r\n\t\t\t\t(xy 138.858986 87.415779) (xy 139.118912 87.449999) (xy 139.118914 87.45) (xy 139.381086 87.45)\r\n\t\t\t\t(xy 139.381087 87.449999) (xy 139.64101 87.415779) (xy 139.641015 87.415779) (xy 139.894255 87.347924)\r\n\t\t\t\t(xy 139.894262 87.347921) (xy 140.136476 87.247593) (xy 140.290648 87.158582) (xy 140.350496 87.14586)\r\n\t\t\t\t(xy 140.406392 87.170746) (xy 140.436985 87.223734) (xy 140.438301 87.25724) (xy 140.4245 87.362071)\r\n\t\t\t\t(xy 140.4245 87.607927) (xy 140.45659 87.851669) (xy 140.45659 87.851674) (xy 140.520222 88.089154)\r\n\t\t\t\t(xy 140.614302 88.316284) (xy 140.614304 88.316288) (xy 140.614306 88.316292) (xy 140.736853 88.52855)\r\n\t\t\t\t(xy 140.737235 88.529211) (xy 140.886893 88.724249) (xy 140.886895 88.724251) (xy 140.886899 88.724256)\r\n\t\t\t\t(xy 141.060744 88.898101) (xy 141.060748 88.898104) (xy 141.06075 88.898106) (xy 141.187336 88.995239)\r\n\t\t\t\t(xy 141.255792 89.047767) (xy 141.468708 89.170694) (xy 141.468714 89.170696) (xy 141.468715 89.170697)\r\n\t\t\t\t(xy 141.482998 89.176613) (xy 141.695847 89.264778) (xy 141.933323 89.328409) (xy 142.177073 89.3605)\r\n\t\t\t\t(xy 142.177074 89.3605) (xy 142.422926 89.3605) (xy 142.422927 89.3605) (xy 142.666677 89.328409)\r\n\t\t\t\t(xy 142.904153 89.264778) (xy 143.131292 89.170694) (xy 143.344208 89.047767) (xy 143.539256 88.898101)\r\n\t\t\t\t(xy 143.713101 88.724256) (xy 143.862767 88.529208) (xy 143.985694 88.316292) (xy 144.079778 88.089153)\r\n\t\t\t\t(xy 144.143409 87.851677) (xy 144.1755 87.607927) (xy 144.1755 87.419636) (xy 144.194407 87.361445)\r\n\t\t\t\t(xy 144.243907 87.325481) (xy 144.305093 87.325481) (xy 144.329499 87.337319) (xy 144.342402 87.345941)\r\n\t\t\t\t(xy 144.53358 87.42513) (xy 144.736535 87.4655) (xy 144.736536 87.4655) (xy 144.8505 87.4655) (xy 144.908691 87.484407)\r\n\t\t\t\t(xy 144.944655 87.533907) (xy 144.9495 87.5645) (xy 144.9495 87.817321) (xy 144.930593 87.875512)\r\n\t\t\t\t(xy 144.890489 87.907885) (xy 144.85086 87.925383) (xy 144.775383 88.00086) (xy 144.732269 88.098501)\r\n\t\t\t\t(xy 144.732269 88.098502) (xy 144.7295 88.122372) (xy 144.7295 88.477619) (xy 144.729501 88.477622)\r\n\t\t\t\t(xy 144.73227 88.5015) (xy 144.765313 88.576333) (xy 144.775384 88.599141) (xy 144.850859 88.674616)\r\n\t\t\t\t(xy 144.948502 88.71773) (xy 144.948504 88.71773) (xy 144.952363 88.719434) (xy 144.997959 88.760235)\r\n\t\t\t\t(xy 145.010864 88.820044) (xy 144.98615 88.876016) (xy 144.952365 88.900563) (xy 144.85086 88.945383)\r\n\t\t\t\t(xy 144.775383 89.02086) (xy 144.732269 89.118501) (xy 144.732269 89.118502) (xy 144.7295 89.142372)\r\n\t\t\t\t(xy 144.7295 89.497619) (xy 144.729501 89.497622) (xy 144.73227 89.5215) (xy 144.775383 89.619139)\r\n\t\t\t\t(xy 144.776272 89.620437) (xy 144.776904 89.622584) (xy 144.779089 89.627532) (xy 144.778445 89.627816)\r\n\t\t\t\t(xy 144.793558 89.67913) (xy 144.782042 89.719854) (xy 144.782684 89.72012) (xy 144.780425 89.725572)\r\n\t\t\t\t(xy 144.780342 89.725868) (xy 144.780204 89.726106) (xy 144.780201 89.726112) (xy 144.769669 89.765418)\r\n\t\t\t\t(xy 144.7495 89.840691) (xy 144.7495 89.959309) (xy 144.776574 90.060351) (xy 144.780202 90.07389)\r\n\t\t\t\t(xy 144.839507 90.176608) (xy 144.839509 90.17661) (xy 144.839511 90.176613) (xy 144.923387 90.260489)\r\n\t\t\t\t(xy 144.923389 90.26049) (xy 144.923391 90.260492) (xy 145.02611 90.319797) (xy 145.026111 90.319797)\r\n\t\t\t\t(xy 145.026114 90.319799) (xy 145.140691 90.3505) (xy 145.140693 90.3505) (xy 145.259307 90.3505)\r\n\t\t\t\t(xy 145.259309 90.3505) (xy 145.373886 90.319799) (xy 145.373888 90.319797) (xy 145.37389 90.319797)\r\n\t\t\t\t(xy 145.476608 90.260492) (xy 145.476608 90.260491) (xy 145.476613 90.260489) (xy 145.560489 90.176613)\r\n\t\t\t\t(xy 145.560492 90.176608) (xy 145.619797 90.07389) (xy 145.619797 90.073888) (xy 145.619799 90.073886)\r\n\t\t\t\t(xy 145.6505 89.959309) (xy 145.6505 89.840691) (xy 145.619799 89.726114) (xy 145.619666 89.725884)\r\n\t\t\t\t(xy 145.619627 89.7257) (xy 145.617316 89.72012) (xy 145.61835 89.719691) (xy 145.606945 89.666038)\r\n\t\t\t\t(xy 145.621088 89.627612) (xy 145.62091 89.627534) (xy 145.622153 89.624716) (xy 145.623731 89.620432)\r\n\t\t\t\t(xy 145.624611 89.619145) (xy 145.624616 89.619141) (xy 145.66773 89.521498) (xy 145.6705 89.497623)\r\n\t\t\t\t(xy 145.670499 89.142378) (xy 145.66773 89.118502) (xy 145.666058 89.114716) (xy 145.64803 89.073886)\r\n\t\t\t\t(xy 145.624616 89.020859) (xy 145.549141 88.945384) (xy 145.535772 88.939481) (xy 145.447635 88.900564)\r\n\t\t\t\t(xy 145.40204 88.859763) (xy 145.389135 88.799954) (xy 145.413849 88.743983) (xy 145.447635 88.719436)\r\n\t\t\t\t(xy 145.473558 88.707989) (xy 145.549141 88.674616) (xy 145.624616 88.599141) (xy 145.66773 88.501498)\r\n\t\t\t\t(xy 145.6705 88.477623) (xy 145.670499 88.122378) (xy 145.66773 88.098502) (xy 145.663602 88.089154)\r\n\t\t\t\t(xy 145.638513 88.032333) (xy 145.624616 88.000859) (xy 145.549141 87.925384) (xy 145.549139 87.925383)\r\n\t\t\t\t(xy 145.509511 87.907885) (xy 145.463916 87.867084) (xy 145.4505 87.817321) (xy 145.4505 87.323419)\r\n\t\t\t\t(xy 145.469407 87.265228) (xy 145.494499 87.241103) (xy 145.509655 87.230977) (xy 145.655977 87.084655)\r\n\t\t\t\t(xy 145.770941 86.912598) (xy 145.770941 86.912596) (xy 145.772684 86.909989) (xy 145.820734 86.872109)\r\n\t\t\t\t(xy 145.881872 86.869707) (xy 145.932746 86.903699) (xy 145.937316 86.909989) (xy 146.022623 87.037662)\r\n\t\t\t\t(xy 146.054023 87.084655) (xy 146.200345 87.230977) (xy 146.372402 87.345941) (xy 146.56358 87.42513)\r\n\t\t\t\t(xy 146.766535 87.4655) (xy 146.766536 87.4655) (xy 146.973464 87.4655) (xy 146.973465 87.4655)\r\n\t\t\t\t(xy 147.17642 87.42513) (xy 147.367598 87.345941) (xy 147.539655 87.230977) (xy 147.685977 87.084655)\r\n\t\t\t\t(xy 147.800941 86.912598) (xy 1' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'47.88013 86.72142) (xy 147.9205 86.518465) (xy 147.9205 86.311535)\r\n\t\t\t\t(xy 147.88013 86.10858) (xy 147.800941 85.917402) (xy 147.685977 85.745345) (xy 147.539655 85.599023)\r\n\t\t\t\t(xy 147.512812 85.581087) (xy 147.367597 85.484058) (xy 147.176418 85.404869) (xy 146.973467 85.3645)\r\n\t\t\t\t(xy 146.973465 85.3645) (xy 146.766535 85.3645) (xy 146.766532 85.3645) (xy 146.563581 85.404869)\r\n\t\t\t\t(xy 146.372402 85.484058) (xy 146.200348 85.59902) (xy 146.05402 85.745348) (xy 145.937316 85.92001)\r\n\t\t\t\t(xy 145.889266 85.95789) (xy 145.828128 85.960292) (xy 145.777254 85.926299) (xy 145.772684 85.92001)\r\n\t\t\t\t(xy 145.655979 85.745348) (xy 145.655977 85.745345) (xy 145.509655 85.599023) (xy 145.482812 85.581087)\r\n\t\t\t\t(xy 145.337597 85.484058) (xy 145.146418 85.404869) (xy 144.943467 85.3645) (xy 144.943465 85.3645)\r\n\t\t\t\t(xy 144.736535 85.3645) (xy 144.736532 85.3645) (xy 144.533581 85.404869) (xy 144.342402 85.484058)\r\n\t\t\t\t(xy 144.170348 85.59902) (xy 144.02402 85.745348) (xy 143.909058 85.917402) (xy 143.829869 86.108582)\r\n\t\t\t\t(xy 143.829868 86.108585) (xy 143.823872 86.138728) (xy 143.793974 86.192111) (xy 143.738409 86.217725)\r\n\t\t\t\t(xy 143.678399 86.205787) (xy 143.656775 86.189418) (xy 143.539256 86.071899) (xy 143.539251 86.071895)\r\n\t\t\t\t(xy 143.539249 86.071893) (xy 143.344211 85.922235) (xy 143.344208 85.922233) (xy 143.131292 85.799306)\r\n\t\t\t\t(xy 143.131288 85.799304) (xy 143.131284 85.799302) (xy 142.904154 85.705222) (xy 142.79944 85.677164)\r\n\t\t\t\t(xy 142.666677 85.641591) (xy 142.666674 85.64159) (xy 142.666672 85.64159) (xy 142.422927 85.6095)\r\n\t\t\t\t(xy 142.177073 85.6095) (xy 142.177072 85.6095) (xy 141.93333 85.64159) (xy 141.933325 85.64159)\r\n\t\t\t\t(xy 141.695845 85.705222) (xy 141.468715 85.799302) (xy 141.468708 85.799305) (xy 141.468708 85.799306)\r\n\t\t\t\t(xy 141.396475 85.84101) (xy 141.374772 85.85354) (xy 141.314923 85.866261) (xy 141.259028 85.841374)\r\n\t\t\t\t(xy 141.228435 85.788386) (xy 141.227119 85.754881) (xy 141.249999 85.581087) (xy 141.25 85.581086)\r\n\t\t\t\t(xy 141.25 85.318914) (xy 141.249999 85.318912) (xy 141.215779 85.058989) (xy 141.215779 85.058984)\r\n\t\t\t\t(xy 141.147924 84.805744) (xy 141.147921 84.805737) (xy 141.047596 84.563529) (xy 140.916507 84.336477)\r\n\t\t\t\t(xy 140.829918 84.223633) (xy 139.965846 85.087705) (xy 139.958951 85.071058) (xy 139.871401 84.94003)\r\n\t\t\t\t(xy 139.75997 84.828599) (xy 139.628942 84.741049) (xy 139.612291 84.734152) (xy 140.476365 83.870079)\r\n\t\t\t\t(xy 140.363522 83.783492) (xy 140.13647 83.652403) (xy 139.894262 83.552078) (xy 139.894255 83.552075)\r\n\t\t\t\t(xy 139.641013 83.48422) (xy 139.381087 83.45) (xy 139.118912 83.45) (xy 138.858989 83.48422) (xy 138.858984 83.48422)\r\n\t\t\t\t(xy 138.605744 83.552075) (xy 138.605737 83.552078) (xy 138.363529 83.652403) (xy 138.136472 83.783495)\r\n\t\t\t\t(xy 138.023633 83.870079) (xy 138.887706 84.734152) (xy 138.871058 84.741049) (xy 138.74003 84.828599)\r\n\t\t\t\t(xy 138.628599 84.94003) (xy 138.541049 85.071058) (xy 138.534152 85.087706) (xy 137.670079 84.223633)\r\n\t\t\t\t(xy 137.583495 84.336472) (xy 137.452403 84.563529) (xy 137.352078 84.805737) (xy 137.352075 84.805744)\r\n\t\t\t\t(xy 137.28422 85.058984) (xy 137.28422 85.058989) (xy 137.25 85.318912) (xy 92.491807 85.318912)\r\n\t\t\t\t(xy 92.527682 85.237662) (xy 92.5305 85.213373) (xy 92.530499 84.964766) (xy 92.549406 84.906577)\r\n\t\t\t\t(xy 92.559489 84.89477) (xy 92.842364 84.611897) (xy 92.8805 84.519828) (xy 92.8805 84.449499) (xy 92.899407 84.391308)\r\n\t\t\t\t(xy 92.948907 84.355344) (xy 92.9795 84.350499) (xy 92.986521 84.350499) (xy 92.986522 84.350498)\r\n\t\t\t\t(xy 93.033411 84.343072) (xy 93.080299 84.335647) (xy 93.080299 84.335646) (xy 93.080304 84.335646)\r\n\t\t\t\t(xy 93.193342 84.27805) (xy 93.28305 84.188342) (xy 93.340646 84.075304) (xy 93.3555 83.981519)\r\n\t\t\t\t(xy 93.355499 83.026017) (xy 93.374406 82.967827) (xy 93.384495 82.956014) (xy 94.999819 81.340691)\r\n\t\t\t\t(xy 97.6495 81.340691) (xy 97.6495 81.459309) (xy 97.668601 81.530593) (xy 97.680202 81.57389) (xy 97.739507 81.676608)\r\n\t\t\t\t(xy 97.739509 81.67661) (xy 97.739511 81.676613) (xy 97.823387 81.760489) (xy 97.823389 81.76049)\r\n\t\t\t\t(xy 97.823391 81.760492) (xy 97.92611 81.819797) (xy 97.926111 81.819797) (xy 97.926114 81.819799)\r\n\t\t\t\t(xy 98.040691 81.8505) (xy 98.040693 81.8505) (xy 98.1505 81.8505) (xy 98.208691 81.869407) (xy 98.244655 81.918907)\r\n\t\t\t\t(xy 98.2495 81.9495) (xy 98.2495 82.059309) (xy 98.254522 82.07805) (xy 98.280202 82.17389) (xy 98.339507 82.276608)\r\n\t\t\t\t(xy 98.339509 82.27661) (xy 98.339511 82.276613) (xy 98.423387 82.360489) (xy 98.423389 82.36049)\r\n\t\t\t\t(xy 98.423391 82.360492) (xy 98.52611 82.419797) (xy 98.526111 82.419797) (xy 98.526114 82.419799)\r\n\t\t\t\t(xy 98.640691 82.4505) (xy 98.640693 82.4505) (xy 98.759307 82.4505) (xy 98.759309 82.4505) (xy 98.873886 82.419799)\r\n\t\t\t\t(xy 98.873888 82.419797) (xy 98.87389 82.419797) (xy 98.976608 82.360492) (xy 98.976608 82.360491)\r\n\t\t\t\t(xy 98.976613 82.360489) (xy 99.060489 82.276613) (xy 99.075944 82.249845) (xy 99.119797 82.17389)\r\n\t\t\t\t(xy 99.119797 82.173888) (xy 99.119799 82.173886) (xy 99.1505 82.059309) (xy 99.1505 81.940691)\r\n\t\t\t\t(xy 99.119799 81.826114) (xy 99.119797 81.826111) (xy 99.119797 81.826109) (xy 99.060492 81.723391)\r\n\t\t\t\t(xy 99.06049 81.723389) (xy 99.060489 81.723387) (xy 98.976613 81.639511) (xy 98.97661 81.639509)\r\n\t\t\t\t(xy 98.976608 81.639507) (xy 98.873889 81.580202) (xy 98.87389 81.580202) (xy 98.844466 81.572318)\r\n\t\t\t\t(xy 98.759309 81.5495) (xy 98.6495 81.5495) (xy 98.591309 81.530593) (xy 98.555345 81.481093) (xy 98.5505 81.4505)\r\n\t\t\t\t(xy 98.5505 81.340692) (xy 98.5505 81.340691) (xy 98.519799 81.226114) (xy 98.519797 81.226111)\r\n\t\t\t\t(xy 98.519797 81.226109) (xy 98.460492 81.123391) (xy 98.46049 81.123389) (xy 98.460489 81.123387)\r\n\t\t\t\t(xy 98.376613 81.039511) (xy 98.37661 81.039509) (xy 98.376608 81.039507) (xy 98.273889 80.980202)\r\n\t\t\t\t(xy 98.27389 80.980202) (xy 98.250318 80.973886) (xy 98.159309 80.9495) (xy 98.040691 80.9495) (xy 97.971787 80.967963)\r\n\t\t\t\t(xy 97.926109 80.980202) (xy 97.823391 81.039507) (xy 97.739507 81.123391) (xy 97.680202 81.226109)\r\n\t\t\t\t(xy 97.680201 81.226114) (xy 97.6495 81.340691) (xy 94.999819 81.340691) (xy 95.076312 81.264198)\r\n\t\t\t\t(xy 95.892264 80.448246) (xy 95.946781 80.420469) (xy 95.962268 80.41925) (xy 96.435351 80.41925)\r\n\t\t\t\t(xy 96.435353 80.41925) (xy 96.518138 80.397068) (xy 96.592362 80.354215) (xy 96.652965 80.293612)\r\n\t\t\t\t(xy 96.695818 80.219388) (xy 96.718 80.136603) (xy 96.718 80.050897) (xy 96.695818 79.968112) (xy 96.652965 79.893888)\r\n\t\t\t\t(xy 96.597828 79.838751) (xy 96.570053 79.784237) (xy 96.579624 79.723805) (xy 96.597827 79.698749)\r\n\t\t\t\t(xy 96.652965 79.643612) (xy 96.695818 79.569388) (xy 96.718 79.486603) (xy 96.718 79.400897) (xy 96.695818 79.318112)\r\n\t\t\t\t(xy 96.652965 79.243888) (xy 96.597828 79.188751) (xy 96.570053 79.134237) (xy 96.579624 79.073805)\r\n\t\t\t\t(xy 96.597827 79.048749) (xy 96.652965 78.993612) (xy 96.695818 78.919388) (xy 96.718 78.836603)\r\n\t\t\t\t(xy 96.718 78.750897) (xy 96.695818 78.668112) (xy 96.652965 78.593888) (xy 96.597828 78.538751)\r\n\t\t\t\t(xy 96.570053 78.484237) (xy 96.579624 78.423805) (xy 96.597827 78.398749) (xy 96.652965 78.343612)\r\n\t\t\t\t(xy 96.695818 78.269388) (xy 96.718 78.186603) (xy 96.718 78.100897) (xy 96.695818 78.018112) (xy 96.652965 77.943888)\r\n\t\t\t\t(xy 96.597828 77.888751) (xy 96.570053 77.834237) (xy 96.579624 77.773805) (xy 96.597827 77.748749)\r\n\t\t\t\t(xy 96.652965 77.693612) (xy 96.695818 77.619388) (xy 96.718 77.536603) (xy 96.718 77.450897) (xy 96.695818 77.368112)\r\n\t\t\t\t(xy 96.652965 77.293888) (xy 96.597828 77.238751) (xy 96.570053 77.184237) (xy 96.579624 77.123805)\r\n\t\t\t\t(xy 96.597827 77.098749) (xy 96.652965 77.043612) (xy 96.695818 76.969388) (xy 96.718 76.886603)\r\n\t\t\t\t(xy 96.718 76.800897) (xy 98.567 76.800897) (xy 98.567 76.886603) (xy 98.589182 76.969388) (xy 98.632035 77.043612)\r\n\t\t\t\t(xy 98.687171 77.098748) (xy 98.714947 77.153263) (xy 98.705376 77.213695) (xy 98.687172 77.23875)\r\n\t\t\t\t(xy 98.632035 77.293888) (xy 98.589182 77.368112) (xy 98.567 77.450897) (xy 98.567 77.536603) (xy 98.589182 77.619388)\r\n\t\t\t\t(xy 98.632035 77.693612) (xy 98.687171 77.748748) (xy 98.714947 77.803263) (xy 98.705376 77.863695)\r\n\t\t\t\t(xy 98.687172 77.88875) (xy 98.632035 77.943888) (xy 98.589182 78.018112) (xy 98.567 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'78.100897)\r\n\t\t\t\t(xy 98.567 78.186603) (xy 98.589182 78.269388) (xy 98.632035 78.343612) (xy 98.687171 78.398748)\r\n\t\t\t\t(xy 98.714947 78.453263) (xy 98.705376 78.513695) (xy 98.687172 78.53875) (xy 98.632035 78.593888)\r\n\t\t\t\t(xy 98.589182 78.668112) (xy 98.567 78.750897) (xy 98.567 78.836603) (xy 98.589182 78.919388) (xy 98.632035 78.993612)\r\n\t\t\t\t(xy 98.687171 79.048748) (xy 98.714947 79.103263) (xy 98.705376 79.163695) (xy 98.687172 79.18875)\r\n\t\t\t\t(xy 98.632035 79.243888) (xy 98.589182 79.318112) (xy 98.567 79.400897) (xy 98.567 79.486603) (xy 98.589182 79.569388)\r\n\t\t\t\t(xy 98.632035 79.643612) (xy 98.687171 79.698748) (xy 98.714947 79.753263) (xy 98.705376 79.813695)\r\n\t\t\t\t(xy 98.687172 79.83875) (xy 98.632035 79.893888) (xy 98.589182 79.968112) (xy 98.567 80.050897)\r\n\t\t\t\t(xy 98.567 80.136603) (xy 98.589182 80.219388) (xy 98.632035 80.293612) (xy 98.687171 80.348748)\r\n\t\t\t\t(xy 98.714947 80.403263) (xy 98.705376 80.463695) (xy 98.687172 80.48875) (xy 98.632035 80.543888)\r\n\t\t\t\t(xy 98.589182 80.618112) (xy 98.567 80.700897) (xy 98.567 80.786603) (xy 98.589182 80.869388) (xy 98.632035 80.943612)\r\n\t\t\t\t(xy 98.692638 81.004215) (xy 98.766862 81.047068) (xy 98.849647 81.06925) (xy 98.849649 81.06925)\r\n\t\t\t\t(xy 99.435351 81.06925) (xy 99.435353 81.06925) (xy 99.518138 81.047068) (xy 99.548138 81.029747)\r\n\t\t\t\t(xy 99.607985 81.017026) (xy 99.66388 81.041912) (xy 99.683372 81.065981) (xy 99.689508 81.076608)\r\n\t\t\t\t(xy 99.689511 81.076613) (xy 99.773387 81.160489) (xy 99.773389 81.16049) (xy 99.773391 81.160492)\r\n\t\t\t\t(xy 99.87611 81.219797) (xy 99.876111 81.219797) (xy 99.876114 81.219799) (xy 99.990691 81.2505)\r\n\t\t\t\t(xy 99.990693 81.2505) (xy 100.109307 81.2505) (xy 100.109309 81.2505) (xy 100.223886 81.219799)\r\n\t\t\t\t(xy 100.223888 81.219797) (xy 100.22389 81.219797) (xy 100.326608 81.160492) (xy 100.326608 81.160491)\r\n\t\t\t\t(xy 100.326613 81.160489) (xy 100.410489 81.076613) (xy 100.41474 81.06925) (xy 100.469797 80.97389)\r\n\t\t\t\t(xy 100.469797 80.973888) (xy 100.469799 80.973886) (xy 100.5005 80.859309) (xy 100.5005 80.740691)\r\n\t\t\t\t(xy 100.469799 80.626114) (xy 100.469797 80.626111) (xy 100.469797 80.626109) (xy 100.410492 80.523391)\r\n\t\t\t\t(xy 100.41049 80.523389) (xy 100.410489 80.523387) (xy 100.326613 80.439511) (xy 100.32661 80.439509)\r\n\t\t\t\t(xy 100.256867 80.399242) (xy 100.215927 80.353772) (xy 100.209532 80.292922) (xy 100.240125 80.239934)\r\n\t\t\t\t(xy 100.256867 80.22777) (xy 100.262705 80.2244) (xy 100.346581 80.140524) (xy 100.371739 80.09695)\r\n\t\t\t\t(xy 100.405889 80.037801) (xy 100.405889 80.037799) (xy 100.405891 80.037797) (xy 100.436592 79.92322)\r\n\t\t\t\t(xy 100.436592 79.804602) (xy 100.405891 79.690025) (xy 100.405889 79.690022) (xy 100.405889 79.69002)\r\n\t\t\t\t(xy 100.346584 79.587302) (xy 100.346582 79.5873) (xy 100.346581 79.587298) (xy 100.318193 79.55891)\r\n\t\t\t\t(xy 100.290418 79.504396) (xy 100.299989 79.443964) (xy 100.318193 79.418908) (xy 100.360489 79.376613)\r\n\t\t\t\t(xy 100.360902 79.375898) (xy 100.419797 79.27389) (xy 100.419797 79.273888) (xy 100.419799 79.273886)\r\n\t\t\t\t(xy 100.4505 79.159309) (xy 100.4505 79.040691) (xy 100.419799 78.926114) (xy 100.419797 78.926111)\r\n\t\t\t\t(xy 100.419797 78.926109) (xy 100.360492 78.823391) (xy 100.36049 78.823389) (xy 100.360489 78.823387)\r\n\t\t\t\t(xy 100.276613 78.739511) (xy 100.256804 78.728074) (xy 100.211453 78.70189) (xy 100.170513 78.65642)\r\n\t\t\t\t(xy 100.164118 78.59557) (xy 100.190949 78.546152) (xy 100.260489 78.476613) (xy 100.262061 78.47389)\r\n\t\t\t\t(xy 100.319797 78.37389) (xy 100.319797 78.373888) (xy 100.319799 78.373886) (xy 100.3505 78.259309)\r\n\t\t\t\t(xy 100.3505 78.240691) (xy 100.7495 78.240691) (xy 100.7495 78.359309) (xy 100.772424 78.444863)\r\n\t\t\t\t(xy 100.780202 78.47389) (xy 100.839507 78.576608) (xy 100.839509 78.57661) (xy 100.839511 78.576613)\r\n\t\t\t\t(xy 100.923387 78.660489) (xy 100.923389 78.66049) (xy 100.923391 78.660492) (xy 101.02611 78.719797)\r\n\t\t\t\t(xy 101.026111 78.719797) (xy 101.026114 78.719799) (xy 101.140691 78.7505) (xy 101.140693 78.7505)\r\n\t\t\t\t(xy 101.259307 78.7505) (xy 101.259309 78.7505) (xy 101.373886 78.719799) (xy 101.373888 78.719797)\r\n\t\t\t\t(xy 101.37389 78.719797) (xy 101.476608 78.660492) (xy 101.476608 78.660491) (xy 101.476613 78.660489)\r\n\t\t\t\t(xy 101.560489 78.576613) (xy 101.599939 78.508285) (xy 101.619797 78.47389) (xy 101.619797 78.473888)\r\n\t\t\t\t(xy 101.619799 78.473886) (xy 101.6505 78.359309) (xy 101.6505 78.240691) (xy 101.619799 78.126114)\r\n\t\t\t\t(xy 101.619797 78.126111) (xy 101.619797 78.126109) (xy 101.560492 78.023391) (xy 101.56049 78.023389)\r\n\t\t\t\t(xy 101.560489 78.023387) (xy 101.476613 77.939511) (xy 101.47661 77.939509) (xy 101.476608 77.939507)\r\n\t\t\t\t(xy 101.373889 77.880202) (xy 101.37389 77.880202) (xy 101.350158 77.873843) (xy 101.259309 77.8495)\r\n\t\t\t\t(xy 101.140691 77.8495) (xy 101.070715 77.86825) (xy 101.026109 77.880202) (xy 100.923391 77.939507)\r\n\t\t\t\t(xy 100.839507 78.023391) (xy 100.780202 78.126109) (xy 100.773667 78.1505) (xy 100.7495 78.240691)\r\n\t\t\t\t(xy 100.3505 78.240691) (xy 100.3505 78.140691) (xy 100.340055 78.101711) (xy 100.339353 78.092547)\r\n\t\t\t\t(xy 100.344496 78.071316) (xy 100.345639 78.049506) (xy 100.351547 78.042208) (xy 100.353759 78.033082)\r\n\t\t\t\t(xy 100.370398 78.018929) (xy 100.384143 78.001955) (xy 100.397179 77.99615) (xy 100.400366 77.99344)\r\n\t\t\t\t(xy 100.403869 77.993171) (xy 100.412435 77.989357) (xy 100.459759 77.976677) (xy 100.459761 77.976675)\r\n\t\t\t\t(xy 100.459763 77.976675) (xy 100.562481 77.91737) (xy 100.562481 77.917369) (xy 100.562486 77.917367)\r\n\t\t\t\t(xy 100.646362 77.833491) (xy 100.656058 77.816697) (xy 100.70567 77.730768) (xy 100.70567 77.730766)\r\n\t\t\t\t(xy 100.705672 77.730764) (xy 100.729807 77.640691) (xy 102.4495 77.640691) (xy 102.4495 77.759309)\r\n\t\t\t\t(xy 102.463795 77.812657) (xy 102.480202 77.87389) (xy 102.539507 77.976608) (xy 102.539509 77.97661)\r\n\t\t\t\t(xy 102.539511 77.976613) (xy 102.623387 78.060489) (xy 102.623389 78.06049) (xy 102.623391 78.060492)\r\n\t\t\t\t(xy 102.72611 78.119797) (xy 102.726111 78.119797) (xy 102.726114 78.119799) (xy 102.840691 78.1505)\r\n\t\t\t\t(xy 102.840693 78.1505) (xy 102.959307 78.1505) (xy 102.959309 78.1505) (xy 103.073886 78.119799)\r\n\t\t\t\t(xy 103.073888 78.119797) (xy 103.07389 78.119797) (xy 103.176608 78.060492) (xy 103.176608 78.060491)\r\n\t\t\t\t(xy 103.176613 78.060489) (xy 103.260489 77.976613) (xy 103.260492 77.976608) (xy 103.319797 77.87389)\r\n\t\t\t\t(xy 103.319797 77.873888) (xy 103.319799 77.873886) (xy 103.3505 77.759309) (xy 103.3505 77.640691)\r\n\t\t\t\t(xy 103.319799 77.526114) (xy 103.319797 77.526111) (xy 103.319797 77.526109) (xy 103.260492 77.423391)\r\n\t\t\t\t(xy 103.26049 77.423389) (xy 103.260489 77.423387) (xy 103.176613 77.339511) (xy 103.17661 77.339509)\r\n\t\t\t\t(xy 103.176608 77.339507) (xy 103.073889 77.280202) (xy 103.07389 77.280202) (xy 103.048467 77.27339)\r\n\t\t\t\t(xy 102.959309 77.2495) (xy 102.840691 77.2495) (xy 102.770567 77.268289) (xy 102.726109 77.280202)\r\n\t\t\t\t(xy 102.623391 77.339507) (xy 102.539507 77.423391) (xy 102.480202 77.526109) (xy 102.477391 77.536601)\r\n\t\t\t\t(xy 102.4495 77.640691) (xy 100.729807 77.640691) (xy 100.736373 77.616187) (xy 100.736373 77.497569)\r\n\t\t\t\t(xy 100.705672 77.382992) (xy 100.70567 77.382989) (xy 100.70567 77.382987) (xy 100.646365 77.280269)\r\n\t\t\t\t(xy 100.646363 77.280267) (xy 100.646362 77.280265) (xy 100.570741 77.204644) (xy 100.542966 77.15013)\r\n\t\t\t\t(xy 100.552537 77.089698) (xy 100.557247 77.082234) (xy 100.557245 77.082233) (xy 100.619797 76.97389)\r\n\t\t\t\t(xy 100.619797 76.973888) (xy 100.619799 76.973886) (xy 100.6505 76.859309) (xy 100.6505 76.740691)\r\n\t\t\t\t(xy 100.619799 76.626114) (xy 100.619797 76.626111) (xy 100.619797 76.626109) (xy 100.560492 76.523391)\r\n\t\t\t\t(xy 100.56049 76.523389) (xy 100.560489 76.523387) (xy 100.476613 76.439511) (xy 100.47661 76.439509)\r\n\t\t\t\t(xy 100.476608 76.439507) (xy 100.373889 76.380202) (xy 100.37389 76.380202) (xy 100.373621 76.38013)\r\n\t\t\t\t(xy 104.0795 76.38013) (xy 104.0795 76.380132) (xy 104.079501 78.119852) (xy 104.079501 78.119863)\r\n\t\t\t\t(xy 104.082414 78.14499) (xy 104.100788 78.186603) (xy 104.127794 78.247765) (xy 104.207235 78.327206)\r\n\t\t\t\t(xy 104.310009 78.372585) (xy 104.335135 78.3755) (xy 104.495685 78.375499) (xy 104.553875 78.394406)\r\n\t\t\t\t(xy 104.589839 78.443906) (xy 104.58984 78.505091) (x' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'y 104.581423 78.523997) (xy 104.580202 78.526111)\r\n\t\t\t\t(xy 104.580201 78.526113) (xy 104.580201 78.526114) (xy 104.5495 78.640691) (xy 104.5495 78.759309)\r\n\t\t\t\t(xy 104.570211 78.836603) (xy 104.580202 78.87389) (xy 104.639507 78.976608) (xy 104.639509 78.97661)\r\n\t\t\t\t(xy 104.639511 78.976613) (xy 104.723387 79.060489) (xy 104.725144 79.061503) (xy 104.726117 79.062584)\r\n\t\t\t\t(xy 104.728536 79.06444) (xy 104.728192 79.064888) (xy 104.766087 79.106971) (xy 104.772485 79.167821)\r\n\t\t\t\t(xy 104.745655 79.217242) (xy 104.739513 79.223384) (xy 104.739507 79.223391) (xy 104.680202 79.326109)\r\n\t\t\t\t(xy 104.674238 79.348367) (xy 104.6495 79.440691) (xy 104.6495 79.559309) (xy 104.670322 79.637016)\r\n\t\t\t\t(xy 104.680202 79.67389) (xy 104.739507 79.776608) (xy 104.739509 79.77661) (xy 104.739511 79.776613)\r\n\t\t\t\t(xy 104.823387 79.860489) (xy 104.823389 79.86049) (xy 104.823391 79.860492) (xy 104.92611 79.919797)\r\n\t\t\t\t(xy 104.926111 79.919797) (xy 104.926114 79.919799) (xy 105.040691 79.9505) (xy 105.040693 79.9505)\r\n\t\t\t\t(xy 105.159307 79.9505) (xy 105.159309 79.9505) (xy 105.273886 79.919799) (xy 105.273888 79.919797)\r\n\t\t\t\t(xy 105.27389 79.919797) (xy 105.376608 79.860492) (xy 105.376608 79.860491) (xy 105.376613 79.860489)\r\n\t\t\t\t(xy 105.460489 79.776613) (xy 105.464209 79.77017) (xy 105.509678 79.729228) (xy 105.570528 79.722832)\r\n\t\t\t\t(xy 105.623517 79.753424) (xy 105.645571 79.794043) (xy 105.647451 79.801057) (xy 105.649161 79.807439)\r\n\t\t\t\t(xy 105.708466 79.910157) (xy 105.708468 79.910159) (xy 105.70847 79.910162) (xy 105.792346 79.994038)\r\n\t\t\t\t(xy 105.792348 79.994039) (xy 105.79235 79.994041) (xy 105.900692 80.056593) (xy 105.900086 80.057641)\r\n\t\t\t\t(xy 105.941574 80.093069) (xy 105.955861 80.152563) (xy 105.945375 80.189748) (xy 105.889355 80.299692)\r\n\t\t\t\t(xy 105.889354 80.299694) (xy 105.881466 80.3495) (xy 105.8745 80.393481) (xy 105.8745 80.80487)\r\n\t\t\t\t(xy 105.874501 81.1405) (xy 105.869656 81.155411) (xy 105.869656 81.171093) (xy 105.860439 81.183778)\r\n\t\t\t\t(xy 105.855594 81.198691) (xy 105.842908 81.207907) (xy 105.833692 81.220593) (xy 105.818779 81.225438)\r\n\t\t\t\t(xy 105.806094 81.234655) (xy 105.775501 81.2395) (xy 105.633275 81.2395) (xy 105.575084 81.220593)\r\n\t\t\t\t(xy 105.55018 81.189741) (xy 105.548997 81.190552) (xy 105.543814 81.182986) (xy 105.543813 81.182985)\r\n\t\t\t\t(xy 105.543813 81.182984) (xy 105.467016 81.106187) (xy 105.367662 81.062318) (xy 105.367661 81.062317)\r\n\t\t\t\t(xy 105.367659 81.062317) (xy 105.343376 81.0595) (xy 104.91663 81.0595) (xy 104.916627 81.059501)\r\n\t\t\t\t(xy 104.892338 81.062317) (xy 104.792984 81.106187) (xy 104.716187 81.182984) (xy 104.672317 81.28234)\r\n\t\t\t\t(xy 104.6695 81.306622) (xy 104.6695 81.673369) (xy 104.669501 81.673372) (xy 104.672317 81.697661)\r\n\t\t\t\t(xy 104.691233 81.7405) (xy 104.716187 81.797016) (xy 104.792984 81.873813) (xy 104.892338 81.917682)\r\n\t\t\t\t(xy 104.916627 81.9205) (xy 105.343372 81.920499) (xy 105.367662 81.917682) (xy 105.467016 81.873813)\r\n\t\t\t\t(xy 105.543813 81.797016) (xy 105.543814 81.797011) (xy 105.548997 81.789448) (xy 105.550683 81.790603)\r\n\t\t\t\t(xy 105.583507 81.753919) (xy 105.633275 81.7405) (xy 106.034828 81.7405) (xy 106.092946 81.716426)\r\n\t\t\t\t(xy 106.146318 81.71011) (xy 106.149693 81.710644) (xy 106.149696 81.710646) (xy 106.243481 81.7255)\r\n\t\t\t\t(xy 106.956518 81.725499) (xy 106.95652 81.725499) (xy 106.956521 81.725498) (xy 107.013801 81.716427)\r\n\t\t\t\t(xy 107.050299 81.710647) (xy 107.050299 81.710646) (xy 107.050304 81.710646) (xy 107.163342 81.65305)\r\n\t\t\t\t(xy 107.25305 81.563342) (xy 107.310646 81.450304) (xy 107.3255 81.356519) (xy 107.325499 80.544767)\r\n\t\t\t\t(xy 107.344406 80.486577) (xy 107.354489 80.47477) (xy 109.431015 78.398246) (xy 109.485532 78.370469)\r\n\t\t\t\t(xy 109.501019 78.36925) (xy 110.262666 78.36925) (xy 110.320857 78.388157) (xy 110.356821 78.437657)\r\n\t\t\t\t(xy 110.356821 78.498843) (xy 110.332671 78.538251) (xy 110.302035 78.568888) (xy 110.259182 78.643112)\r\n\t\t\t\t(xy 110.237672 78.723391) (xy 110.237 78.725898) (xy 110.237 78.74794) (xy 110.218093 78.806131)\r\n\t\t\t\t(xy 110.208004 78.817943) (xy 108.883103 80.142844) (xy 108.883103 80.142845) (xy 108.883102 80.142844)\r\n\t\t\t\t(xy 108.812635 80.213312) (xy 108.7745 80.30538) (xy 108.7745 82.105231) (xy 108.772031 82.112829)\r\n\t\t\t\t(xy 108.773281 82.12072) (xy 108.762756 82.141375) (xy 108.755593 82.163422) (xy 108.745503 82.175236)\r\n\t\t\t\t(xy 108.712802 82.207936) (xy 108.658285 82.235712) (xy 108.627312 82.235712) (xy 108.556522 82.2245)\r\n\t\t\t\t(xy 107.843479 82.2245) (xy 107.843476 82.224501) (xy 107.7497 82.239352) (xy 107.749695 82.239354)\r\n\t\t\t\t(xy 107.636659 82.296949) (xy 107.546949 82.386659) (xy 107.489354 82.499695) (xy 107.4745 82.593478)\r\n\t\t\t\t(xy 107.4745 83.556521) (xy 107.474501 83.556523) (xy 107.489352 83.650299) (xy 107.489354 83.650304)\r\n\t\t\t\t(xy 107.54695 83.763342) (xy 107.610505 83.826897) (xy 107.61413 83.834012) (xy 107.620593 83.838708)\r\n\t\t\t\t(xy 107.627756 83.860756) (xy 107.638281 83.881412) (xy 107.6395 83.896899) (xy 107.6395 84.046724)\r\n\t\t\t\t(xy 107.620593 84.104915) (xy 107.589743 84.129817) (xy 107.590554 84.131001) (xy 107.582987 84.136184)\r\n\t\t\t\t(xy 107.506187 84.212984) (xy 107.462317 84.31234) (xy 107.4595 84.336622) (xy 107.4595 84.763369)\r\n\t\t\t\t(xy 107.459501 84.763372) (xy 107.462317 84.787661) (xy 107.474309 84.81482) (xy 107.506187 84.887016)\r\n\t\t\t\t(xy 107.582984 84.963813) (xy 107.682338 85.007682) (xy 107.706627 85.0105) (xy 108.073372 85.010499)\r\n\t\t\t\t(xy 108.097662 85.007682) (xy 108.197016 84.963813) (xy 108.273813 84.887016) (xy 108.317682 84.787662)\r\n\t\t\t\t(xy 108.3205 84.763373) (xy 108.320499 84.336628) (xy 108.317682 84.312338) (xy 108.273813 84.212984)\r\n\t\t\t\t(xy 108.197016 84.136187) (xy 108.197014 84.136186) (xy 108.197012 84.136184) (xy 108.189446 84.131001)\r\n\t\t\t\t(xy 108.1906 84.129315) (xy 108.180287 84.120085) (xy 108.159407 84.104915) (xy 108.157796 84.099958)\r\n\t\t\t\t(xy 108.153915 84.096485) (xy 108.1405 84.046724) (xy 108.1405 84.024499) (xy 108.159407 83.966308)\r\n\t\t\t\t(xy 108.208907 83.930344) (xy 108.2395 83.925499) (xy 108.556521 83.925499) (xy 108.556522 83.925498)\r\n\t\t\t\t(xy 108.603411 83.918072) (xy 108.650299 83.910647) (xy 108.650299 83.910646) (xy 108.650304 83.910646)\r\n\t\t\t\t(xy 108.763342 83.85305) (xy 108.85305 83.763342) (xy 108.910646 83.650304) (xy 108.9255 83.556519)\r\n\t\t\t\t(xy 108.925499 83.140691) (xy 141.9495 83.140691) (xy 141.9495 83.259309) (xy 141.976574 83.360351)\r\n\t\t\t\t(xy 141.980202 83.37389) (xy 142.039507 83.476608) (xy 142.039509 83.47661) (xy 142.039511 83.476613)\r\n\t\t\t\t(xy 142.123387 83.560489) (xy 142.123389 83.56049) (xy 142.123391 83.560492) (xy 142.22611 83.619797)\r\n\t\t\t\t(xy 142.226111 83.619797) (xy 142.226114 83.619799) (xy 142.340691 83.6505) (xy 142.340693 83.6505)\r\n\t\t\t\t(xy 142.459307 83.6505) (xy 142.459309 83.6505) (xy 142.573886 83.619799) (xy 142.573888 83.619797)\r\n\t\t\t\t(xy 142.57389 83.619797) (xy 142.676608 83.560492) (xy 142.676608 83.560491) (xy 142.676613 83.560489)\r\n\t\t\t\t(xy 142.760489 83.476613) (xy 142.819799 83.373886) (xy 142.8505 83.259309) (xy 142.8505 83.140691)\r\n\t\t\t\t(xy 142.819799 83.026114) (xy 142.819797 83.026111) (xy 142.819797 83.026109) (xy 142.760492 82.923391)\r\n\t\t\t\t(xy 142.76049 82.923389) (xy 142.760489 82.923387) (xy 142.676613 82.839511) (xy 142.67661 82.839509)\r\n\t\t\t\t(xy 142.676608 82.839507) (xy 142.573889 82.780202) (xy 142.57389 82.780202) (xy 142.560351 82.776574)\r\n\t\t\t\t(xy 142.459309 82.7495) (xy 142.340691 82.7495) (xy 142.270567 82.768289) (xy 142.226109 82.780202)\r\n\t\t\t\t(xy 142.123391 82.839507) (xy 142.039507 82.923391) (xy 141.980202 83.026109) (xy 141.980201 83.026114)\r\n\t\t\t\t(xy 141.9495 83.140691) (xy 108.925499 83.140691) (xy 108.925499 82.744767) (xy 108.944406 82.686577)\r\n\t\t\t\t(xy 108.954496 82.674764) (xy 109.047253 82.582007) (xy 109.237364 82.391897) (xy 109.2755 82.299828)\r\n\t\t\t\t(xy 109.2755 82.200172) (xy 109.2755 80.499977) (xy 109.294407 80.441786) (xy 109.304496 80.429973)\r\n\t\t\t\t(xy 110.611223 79.123246) (xy 110.66574 79.095469) (xy 110.681227 79.09425) (xy 111.105351 79.09425)\r\n\t\t\t\t(xy 111.105353 79.09425) (xy 111.188138 79.072068) (xy 111.262362 79.029215) (xy 111.322965 78.968612)\r\n\t\t\t\t(xy 111.365818 78.894388) (xy 111.388 78.811603) (xy 111.388 78.725897) (xy 111.365818 78.643112)\r\n\t\t\t\t(xy 111.322965 78.56' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'8888) (xy 111.267828 78.513751) (xy 111.240053 78.459237) (xy 111.249624 78.398805)\r\n\t\t\t\t(xy 111.267827 78.373749) (xy 111.322965 78.318612) (xy 111.365818 78.244388) (xy 111.388 78.161603)\r\n\t\t\t\t(xy 111.388 78.075897) (xy 111.365818 77.993112) (xy 111.322965 77.918888) (xy 111.267828 77.863751)\r\n\t\t\t\t(xy 111.240053 77.809237) (xy 111.249624 77.748805) (xy 111.267827 77.723749) (xy 111.322965 77.668612)\r\n\t\t\t\t(xy 111.365818 77.594388) (xy 111.388 77.511603) (xy 111.388 77.425897) (xy 111.365818 77.343112)\r\n\t\t\t\t(xy 111.322965 77.268888) (xy 111.267828 77.213751) (xy 111.240053 77.159237) (xy 111.249624 77.098805)\r\n\t\t\t\t(xy 111.267827 77.073749) (xy 111.322965 77.018612) (xy 111.365818 76.944388) (xy 111.388 76.861603)\r\n\t\t\t\t(xy 111.388 76.775897) (xy 111.365818 76.693112) (xy 111.322965 76.618888) (xy 111.267828 76.563751)\r\n\t\t\t\t(xy 111.240053 76.509237) (xy 111.249624 76.448805) (xy 111.267827 76.423749) (xy 111.322965 76.368612)\r\n\t\t\t\t(xy 111.365818 76.294388) (xy 111.388 76.211603) (xy 111.388 76.125897) (xy 111.365818 76.043112)\r\n\t\t\t\t(xy 111.322965 75.968888) (xy 111.267828 75.913751) (xy 111.240053 75.859237) (xy 111.249624 75.798805)\r\n\t\t\t\t(xy 111.267827 75.773749) (xy 111.322965 75.718612) (xy 111.365818 75.644388) (xy 111.388 75.561603)\r\n\t\t\t\t(xy 111.388 75.475897) (xy 113.237 75.475897) (xy 113.237 75.561603) (xy 113.259182 75.644388) (xy 113.302035 75.718612)\r\n\t\t\t\t(xy 113.357171 75.773748) (xy 113.384947 75.828263) (xy 113.375376 75.888695) (xy 113.357172 75.91375)\r\n\t\t\t\t(xy 113.302035 75.968888) (xy 113.259182 76.043112) (xy 113.237 76.125897) (xy 113.237 76.211603)\r\n\t\t\t\t(xy 113.259182 76.294388) (xy 113.302035 76.368612) (xy 113.357171 76.423748) (xy 113.384947 76.478263)\r\n\t\t\t\t(xy 113.375376 76.538695) (xy 113.357172 76.56375) (xy 113.302035 76.618888) (xy 113.259182 76.693112)\r\n\t\t\t\t(xy 113.237 76.775897) (xy 113.237 76.861603) (xy 113.259182 76.944388) (xy 113.302035 77.018612)\r\n\t\t\t\t(xy 113.357171 77.073748) (xy 113.384947 77.128263) (xy 113.375376 77.188695) (xy 113.357172 77.21375)\r\n\t\t\t\t(xy 113.302035 77.268888) (xy 113.259182 77.343112) (xy 113.237 77.425897) (xy 113.237 77.511603)\r\n\t\t\t\t(xy 113.259182 77.594388) (xy 113.302035 77.668612) (xy 113.357171 77.723748) (xy 113.384947 77.778263)\r\n\t\t\t\t(xy 113.375376 77.838695) (xy 113.357172 77.86375) (xy 113.302035 77.918888) (xy 113.259182 77.993112)\r\n\t\t\t\t(xy 113.237 78.075897) (xy 113.237 78.161603) (xy 113.259182 78.244388) (xy 113.302035 78.318612)\r\n\t\t\t\t(xy 113.357171 78.373748) (xy 113.384947 78.428263) (xy 113.375376 78.488695) (xy 113.357172 78.51375)\r\n\t\t\t\t(xy 113.302035 78.568888) (xy 113.259182 78.643112) (xy 113.237 78.725897) (xy 113.237 78.811603)\r\n\t\t\t\t(xy 113.259182 78.894388) (xy 113.302035 78.968612) (xy 113.357171 79.023748) (xy 113.384947 79.078263)\r\n\t\t\t\t(xy 113.375376 79.138695) (xy 113.357172 79.16375) (xy 113.302035 79.218888) (xy 113.259182 79.293112)\r\n\t\t\t\t(xy 113.237 79.375897) (xy 113.237 79.461603) (xy 113.259182 79.544388) (xy 113.302035 79.618612)\r\n\t\t\t\t(xy 113.362638 79.679215) (xy 113.436862 79.722068) (xy 113.519647 79.74425) (xy 113.519649 79.74425)\r\n\t\t\t\t(xy 114.105351 79.74425) (xy 114.105353 79.74425) (xy 114.188138 79.722068) (xy 114.262362 79.679215)\r\n\t\t\t\t(xy 114.322965 79.618612) (xy 114.365818 79.544388) (xy 114.388 79.461603) (xy 114.388 79.375897)\r\n\t\t\t\t(xy 114.365818 79.293112) (xy 114.322965 79.218888) (xy 114.267828 79.163751) (xy 114.240053 79.109237)\r\n\t\t\t\t(xy 114.249624 79.048805) (xy 114.267827 79.023749) (xy 114.322965 78.968612) (xy 114.365818 78.894388)\r\n\t\t\t\t(xy 114.388 78.811603) (xy 114.388 78.725897) (xy 114.365818 78.643112) (xy 114.322965 78.568888)\r\n\t\t\t\t(xy 114.292328 78.538251) (xy 114.264553 78.483737) (xy 114.274124 78.423305) (xy 114.317389 78.38004)\r\n\t\t\t\t(xy 114.362334 78.36925) (xy 114.676197 78.36925) (xy 114.734388 78.388157) (xy 114.770352 78.437657)\r\n\t\t\t\t(xy 114.771818 78.442608) (xy 114.776274 78.459237) (xy 114.780202 78.473896) (xy 114.839507 78.576614)\r\n\t\t\t\t(xy 114.839509 78.576616) (xy 114.839511 78.576619) (xy 114.923387 78.660495) (xy 114.923389 78.660496)\r\n\t\t\t\t(xy 114.923391 78.660498) (xy 115.02611 78.719803) (xy 115.026111 78.719803) (xy 115.026114 78.719805)\r\n\t\t\t\t(xy 115.140691 78.750506) (xy 115.140693 78.750506) (xy 115.259307 78.750506) (xy 115.259309 78.750506)\r\n\t\t\t\t(xy 115.373886 78.719805) (xy 115.373888 78.719803) (xy 115.37389 78.719803) (xy 115.476608 78.660498)\r\n\t\t\t\t(xy 115.476608 78.660497) (xy 115.476613 78.660495) (xy 115.560489 78.576619) (xy 115.560492 78.576614)\r\n\t\t\t\t(xy 115.619797 78.473896) (xy 115.619797 78.473894) (xy 115.619799 78.473892) (xy 115.6505 78.359315)\r\n\t\t\t\t(xy 115.6505 78.240697) (xy 115.619799 78.12612) (xy 115.619797 78.126117) (xy 115.619797 78.126115)\r\n\t\t\t\t(xy 115.560492 78.023397) (xy 115.56049 78.023395) (xy 115.560489 78.023393) (xy 115.532101 77.995005)\r\n\t\t\t\t(xy 115.504326 77.940491) (xy 115.513897 77.880059) (xy 115.532098 77.855006) (xy 115.560489 77.826616)\r\n\t\t\t\t(xy 115.56069 77.826268) (xy 115.619797 77.723893) (xy 115.619797 77.723891) (xy 115.619799 77.723889)\r\n\t\t\t\t(xy 115.6505 77.609312) (xy 115.6505 77.490694) (xy 115.619799 77.376117) (xy 115.619797 77.376114)\r\n\t\t\t\t(xy 115.619797 77.376112) (xy 115.560492 77.273394) (xy 115.56049 77.273392) (xy 115.560489 77.27339)\r\n\t\t\t\t(xy 115.532101 77.245002) (xy 115.504326 77.190488) (xy 115.513897 77.130056) (xy 115.532098 77.105003)\r\n\t\t\t\t(xy 115.560489 77.076613) (xy 115.57319 77.054615) (xy 115.619797 76.97389) (xy 115.619797 76.973888)\r\n\t\t\t\t(xy 115.619799 76.973886) (xy 115.6505 76.859309) (xy 115.6505 76.740691) (xy 115.639935 76.701262)\r\n\t\t\t\t(xy 115.64046 76.69123) (xy 119.1495 76.69123) (xy 119.1495 76.858769) (xy 119.182183 77.023079)\r\n\t\t\t\t(xy 119.182185 77.023085) (xy 119.246296 77.177862) (xy 119.26447 77.205061) (xy 119.339374 77.317162)\r\n\t\t\t\t(xy 119.457838 77.435626) (xy 119.597137 77.528703) (xy 119.751918 77.592816) (xy 119.916233 77.6255)\r\n\t\t\t\t(xy 119.916234 77.6255) (xy 120.083766 77.6255) (xy 120.083767 77.6255) (xy 120.248082 77.592816)\r\n\t\t\t\t(xy 120.402863 77.528703) (xy 120.542162 77.435626) (xy 120.660626 77.317162) (xy 120.753703 77.177863)\r\n\t\t\t\t(xy 120.817816 77.023082) (xy 120.8505 76.858767) (xy 120.8505 76.691233) (xy 120.817816 76.526918)\r\n\t\t\t\t(xy 120.753703 76.372137) (xy 120.660626 76.232838) (xy 120.542162 76.114374) (xy 120.427355 76.037662)\r\n\t\t\t\t(xy 120.402862 76.021296) (xy 120.248085 75.957185) (xy 120.248079 75.957183) (xy 120.083769 75.9245)\r\n\t\t\t\t(xy 120.083767 75.9245) (xy 119.916233 75.9245) (xy 119.91623 75.9245) (xy 119.75192 75.957183)\r\n\t\t\t\t(xy 119.751914 75.957185) (xy 119.597137 76.021296) (xy 119.457838 76.114374) (xy 119.457834 76.114377)\r\n\t\t\t\t(xy 119.339377 76.232834) (xy 119.339374 76.232838) (xy 119.246296 76.372137) (xy 119.182185 76.526914)\r\n\t\t\t\t(xy 119.182183 76.52692) (xy 119.1495 76.69123) (xy 115.64046 76.69123) (xy 115.643135 76.640162)\r\n\t\t\t\t(xy 115.681639 76.59261) (xy 115.709934 76.580012) (xy 115.748055 76.569798) (xy 115.828437 76.523389)\r\n\t\t\t\t(xy 115.850777 76.510491) (xy 115.850777 76.51049) (xy 115.850782 76.510488) (xy 115.934658 76.426612)\r\n\t\t\t\t(xy 115.934661 76.426607) (xy 115.993966 76.323889) (xy 115.993966 76.323887) (xy 115.993968 76.323885)\r\n\t\t\t\t(xy 116.024669 76.209308) (xy 116.024669 76.09069) (xy 115.993968 75.976113) (xy 115.993966 75.97611)\r\n\t\t\t\t(xy 115.993966 75.976108) (xy 115.934661 75.87339) (xy 115.934659 75.873388) (xy 115.934658 75.873386)\r\n\t\t\t\t(xy 115.850782 75.78951) (xy 115.850779 75.789508) (xy 115.850777 75.789506) (xy 115.748058 75.730201)\r\n\t\t\t\t(xy 115.748059 75.730201) (xy 115.724864 75.723986) (xy 115.633478 75.699499) (xy 115.51486 75.699499)\r\n\t\t\t\t(xy 115.444736 75.718288) (xy 115.400278 75.730201) (xy 115.29756 75.789506) (xy 115.213674 75.873392)\r\n\t\t\t\t(xy 115.209731 75.878532) (xy 115.207447 75.87678) (xy 115.170855 75.909705) (xy 115.13062 75.91825)\r\n\t\t\t\t(xy 114.369068 75.91825) (xy 114.310877 75.899343) (xy 114.274913 75.849843) (xy 114.274913 75.788657)\r\n\t\t\t\t(xy 114.310877 75.739157) (xy 114.315181 75.736746) (xy 114.315038 75.736532) (xy 114.323143 75.731115)\r\n\t\t\t\t(xy 114.323147 75.731114) (xy 115.074764 74.979495) (xy 115.129281 74.951719) (xy 115.144768 74.9505)\r\n\t\t\t\t(xy 115.259307 74.9505) (xy 115.259309 74.9505) (xy 115.373886 74.9197' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'99) (xy 115.373888 74.919797)\r\n\t\t\t\t(xy 115.37389 74.919797) (xy 115.476608 74.860492) (xy 115.476608 74.860491) (xy 115.476613 74.860489)\r\n\t\t\t\t(xy 115.560489 74.776613) (xy 115.563146 74.772011) (xy 115.619797 74.67389) (xy 115.619797 74.673888)\r\n\t\t\t\t(xy 115.619799 74.673886) (xy 115.6505 74.559309) (xy 115.6505 74.440691) (xy 115.619799 74.326114)\r\n\t\t\t\t(xy 115.619797 74.326111) (xy 115.619797 74.326109) (xy 115.560492 74.223391) (xy 115.56049 74.223389)\r\n\t\t\t\t(xy 115.560489 74.223387) (xy 115.476613 74.139511) (xy 115.47661 74.139509) (xy 115.476608 74.139507)\r\n\t\t\t\t(xy 115.408746 74.100327) (xy 115.408745 74.100327) (xy 115.373888 74.080202) (xy 115.373887 74.080201)\r\n\t\t\t\t(xy 115.373886 74.080201) (xy 115.259309 74.0495) (xy 115.140691 74.0495) (xy 115.070567 74.068289)\r\n\t\t\t\t(xy 115.026109 74.080202) (xy 114.923391 74.139507) (xy 114.839507 74.223391) (xy 114.780202 74.326109)\r\n\t\t\t\t(xy 114.7495 74.440692) (xy 114.7495 74.55523) (xy 114.730593 74.613421) (xy 114.720504 74.625234)\r\n\t\t\t\t(xy 114.232004 75.113734) (xy 114.211348 75.124258) (xy 114.192593 75.137885) (xy 114.184604 75.137885)\r\n\t\t\t\t(xy 114.177487 75.141511) (xy 114.154592 75.137885) (xy 114.131407 75.137885) (xy 114.124944 75.133189)\r\n\t\t\t\t(xy 114.117055 75.13194) (xy 114.100663 75.115548) (xy 114.081907 75.101921) (xy 114.079438 75.094323)\r\n\t\t\t\t(xy 114.07379 75.088675) (xy 114.063 75.04373) (xy 114.063 74.978836) (xy 114.081907 74.920645)\r\n\t\t\t\t(xy 114.09199 74.908838) (xy 114.163813 74.837016) (xy 114.207682 74.737662) (xy 114.2105 74.713373)\r\n\t\t\t\t(xy 114.210499 74.286628) (xy 114.207682 74.262338) (xy 114.163813 74.162984) (xy 114.087016 74.086187)\r\n\t\t\t\t(xy 113.987662 74.042318) (xy 113.987661 74.042317) (xy 113.987659 74.042317) (xy 113.963376 74.0395)\r\n\t\t\t\t(xy 113.59663 74.0395) (xy 113.596627 74.039501) (xy 113.572338 74.042317) (xy 113.472984 74.086187)\r\n\t\t\t\t(xy 113.396187 74.162984) (xy 113.352317 74.26234) (xy 113.3495 74.286622) (xy 113.3495 74.713369)\r\n\t\t\t\t(xy 113.349501 74.713372) (xy 113.352317 74.737661) (xy 113.376262 74.79189) (xy 113.396187 74.837016)\r\n\t\t\t\t(xy 113.472984 74.913813) (xy 113.502988 74.92706) (xy 113.522213 74.944263) (xy 113.543093 74.959434)\r\n\t\t\t\t(xy 113.544702 74.964387) (xy 113.548583 74.96786) (xy 113.562 75.017625) (xy 113.562 75.105936)\r\n\t\t\t\t(xy 113.543093 75.164127) (xy 113.493593 75.200091) (xy 113.48863 75.20156) (xy 113.436862 75.215432)\r\n\t\t\t\t(xy 113.362638 75.258285) (xy 113.302035 75.318888) (xy 113.259182 75.393112) (xy 113.237 75.475897)\r\n\t\t\t\t(xy 111.388 75.475897) (xy 111.365818 75.393112) (xy 111.322965 75.318888) (xy 111.262362 75.258285)\r\n\t\t\t\t(xy 111.188138 75.215432) (xy 111.105353 75.19325) (xy 111.105351 75.19325) (xy 110.888518 75.19325)\r\n\t\t\t\t(xy 110.830327 75.174343) (xy 110.818514 75.164254) (xy 110.44615 74.79189) (xy 110.041897 74.387636)\r\n\t\t\t\t(xy 110.041895 74.387635) (xy 110.041894 74.387634) (xy 109.949829 74.3495) (xy 109.949828 74.3495)\r\n\t\t\t\t(xy 105.249828 74.3495) (xy 105.150172 74.3495) (xy 105.150171 74.3495) (xy 105.058105 74.387634)\r\n\t\t\t\t(xy 104.388103 75.057636) (xy 104.388102 75.057635) (xy 104.317635 75.128103) (xy 104.2795 75.220171)\r\n\t\t\t\t(xy 104.2795 76.076377) (xy 104.260593 76.134568) (xy 104.220489 76.166941) (xy 104.207237 76.172792)\r\n\t\t\t\t(xy 104.127794 76.252235) (xy 104.082414 76.355011) (xy 104.0795 76.38013) (xy 100.373621 76.38013)\r\n\t\t\t\t(xy 100.345026 76.372468) (xy 100.259309 76.3495) (xy 100.140691 76.3495) (xy 100.070567 76.368289)\r\n\t\t\t\t(xy 100.026109 76.380202) (xy 99.923391 76.439507) (xy 99.839509 76.523389) (xy 99.827755 76.543749)\r\n\t\t\t\t(xy 99.812375 76.557597) (xy 99.800209 76.574343) (xy 99.790147 76.577612) (xy 99.782286 76.584691)\r\n\t\t\t\t(xy 99.742018 76.59325) (xy 99.636148 76.59325) (xy 99.586651 76.579987) (xy 99.518138 76.540432)\r\n\t\t\t\t(xy 99.466376 76.526562) (xy 99.46411 76.525091) (xy 99.461407 76.525091) (xy 99.43865 76.508557)\r\n\t\t\t\t(xy 99.415062 76.493239) (xy 99.414093 76.490715) (xy 99.411907 76.489127) (xy 99.403214 76.462373)\r\n\t\t\t\t(xy 99.393136 76.436117) (xy 99.393 76.430936) (xy 99.393 76.359499) (xy 99.411907 76.301308) (xy 99.461407 76.265344)\r\n\t\t\t\t(xy 99.492 76.260499) (xy 99.66337 76.260499) (xy 99.663372 76.260499) (xy 99.687662 76.257682)\r\n\t\t\t\t(xy 99.787016 76.213813) (xy 99.863813 76.137016) (xy 99.907682 76.037662) (xy 99.9105 76.013373)\r\n\t\t\t\t(xy 99.910499 75.586628) (xy 99.907682 75.562338) (xy 99.863813 75.462984) (xy 99.787016 75.386187)\r\n\t\t\t\t(xy 99.687662 75.342318) (xy 99.687661 75.342317) (xy 99.687659 75.342317) (xy 99.663376 75.3395)\r\n\t\t\t\t(xy 99.29663 75.3395) (xy 99.296627 75.339501) (xy 99.272338 75.342317) (xy 99.172984 75.386187)\r\n\t\t\t\t(xy 99.096187 75.462984) (xy 99.052317 75.56234) (xy 99.0495 75.586622) (xy 99.0495 75.835231) (xy 99.030593 75.893422)\r\n\t\t\t\t(xy 99.020506 75.905232) (xy 99.000603 75.925136) (xy 99.000602 75.925135) (xy 98.930135 75.995603)\r\n\t\t\t\t(xy 98.892 76.087671) (xy 98.892 76.430936) (xy 98.873093 76.489127) (xy 98.823593 76.525091) (xy 98.81863 76.52656)\r\n\t\t\t\t(xy 98.766862 76.540432) (xy 98.692638 76.583285) (xy 98.632035 76.643888) (xy 98.589182 76.718112)\r\n\t\t\t\t(xy 98.567 76.800897) (xy 96.718 76.800897) (xy 96.695818 76.718112) (xy 96.652965 76.643888) (xy 96.592362 76.583285)\r\n\t\t\t\t(xy 96.518138 76.540432) (xy 96.435353 76.51825) (xy 96.435351 76.51825) (xy 96.212267 76.51825)\r\n\t\t\t\t(xy 96.154076 76.499343) (xy 96.142263 76.489253) (xy 95.980932 76.327922) (xy 95.790647 76.137636)\r\n\t\t\t\t(xy 95.790646 76.137635) (xy 95.698579 76.0995) (xy 95.698578 76.0995) (xy 89.895173 76.0995) (xy 89.895172 76.0995)\r\n\t\t\t\t(xy 89.803104 76.137635) (xy 89.732636 76.208102) (xy 89.732637 76.208103) (xy 89.732636 76.208104)\r\n\t\t\t\t(xy 89.553103 76.387636) (xy 89.553103 76.387637) (xy 89.539178 76.401562) (xy 89.539176 76.401563)\r\n\t\t\t\t(xy 89.511913 76.428825) (xy 89.480789 76.447067) (xy 89.481822 76.449406) (xy 89.372236 76.497793)\r\n\t\t\t\t(xy 89.292794 76.577235) (xy 89.247414 76.680011) (xy 89.2445 76.70513) (xy 89.2445 78.44486) (xy 89.244501 78.444863)\r\n\t\t\t\t(xy 89.247414 78.46999) (xy 89.264323 78.508285) (xy 89.292794 78.572765) (xy 89.372235 78.652206)\r\n\t\t\t\t(xy 89.475009 78.697585) (xy 89.500135 78.7005) (xy 89.889864 78.700499) (xy 89.914991 78.697585)\r\n\t\t\t\t(xy 90.017765 78.652206) (xy 90.097206 78.572765) (xy 90.142585 78.469991) (xy 90.1455 78.444865)\r\n\t\t\t\t(xy 90.145499 76.705136) (xy 90.145499 76.705135) (xy 90.145499 76.702278) (xy 90.146277 76.702278)\r\n\t\t\t\t(xy 90.161013 76.646041) (xy 90.208349 76.607273) (xy 90.244338 76.6005) (xy 91.68566 76.6005) (xy 91.743851 76.619407)\r\n\t\t\t\t(xy 91.779815 76.668907) (xy 91.784119 76.702276) (xy 91.7845 76.702276) (xy 91.7845 78.44486) (xy 91.784501 78.444863)\r\n\t\t\t\t(xy 91.787414 78.46999) (xy 91.804323 78.508285) (xy 91.832794 78.572765) (xy 91.901867 78.641838)\r\n\t\t\t\t(xy 91.903094 78.644246) (xy 91.905435 78.645598) (xy 91.916871 78.671286) (xy 91.929643 78.696353)\r\n\t\t\t\t(xy 91.929219 78.699024) (xy 91.93032 78.701495) (xy 91.924471 78.729004) (xy 91.920072 78.756785)\r\n\t\t\t\t(xy 91.917597 78.761343) (xy 91.901049 78.790003) (xy 91.855578 78.830942) (xy 91.815315 78.8395)\r\n\t\t\t\t(xy 91.69663 78.8395) (xy 91.696627 78.839501) (xy 91.672338 78.842317) (xy 91.572984 78.886187)\r\n\t\t\t\t(xy 91.496187 78.962984) (xy 91.452317 79.06234) (xy 91.4495 79.086622) (xy 91.4495 79.513369) (xy 91.449501 79.513372)\r\n\t\t\t\t(xy 91.452317 79.537661) (xy 91.460336 79.555821) (xy 91.496187 79.637016) (xy 91.572984 79.713813)\r\n\t\t\t\t(xy 91.672338 79.757682) (xy 91.696627 79.7605) (xy 91.976231 79.760499) (xy 92.034421 79.779406)\r\n\t\t\t\t(xy 92.070385 79.828906) (xy 92.070386 79.890091) (xy 92.046235 79.929503) (xy 91.542803 80.432935)\r\n\t\t\t\t(xy 91.488286 80.460712) (xy 91.457312 80.460712) (xy 91.386522 80.4495) (xy 90.673479 80.4495)\r\n\t\t\t\t(xy 90.673476 80.449501) (xy 90.5797 80.464352) (xy 90.579695 80.464354) (xy 90.466659 80.521949)\r\n\t\t\t\t(xy 90.376949 80.611659) (xy 90.319354 80.724695) (xy 90.3045 80.818478) (xy 90.3045 80.9505) (xy 90.285593 81.008691)\r\n\t\t\t\t(xy 90.236093 81.044655) (xy 90.2055 81.0495) (xy 90.150171 81.0495) (xy 90.058103 81.087635) (xy 89.605233 81.540504)\r\n\t\t\t\t(xy 89.550717 81.568281) (xy 89.53523 81.5695) (xy 89.28663 81.5695) (xy 89.286627 81.569501) (xy 89.262338 81.572317)\r\n\t\t\t\t(xy 89.162984 81.616187) (xy 89.086187 81.6929' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'84) (xy 89.042317 81.79234) (xy 89.0395 81.816622)\r\n\t\t\t\t(xy 83.7505 81.816622) (xy 83.7505 77.864478) (xy 83.769407 77.806287) (xy 83.818907 77.770323)\r\n\t\t\t\t(xy 83.880093 77.770323) (xy 83.919501 77.794472) (xy 83.977235 77.852206) (xy 84.080009 77.897585)\r\n\t\t\t\t(xy 84.105135 77.9005) (xy 85.219864 77.900499) (xy 85.244991 77.897585) (xy 85.347765 77.852206)\r\n\t\t\t\t(xy 85.427206 77.772765) (xy 85.472585 77.669991) (xy 85.4755 77.644865) (xy 85.475499 77.255136)\r\n\t\t\t\t(xy 85.472585 77.230009) (xy 85.427206 77.127235) (xy 85.347765 77.047794) (xy 85.347763 77.047793)\r\n\t\t\t\t(xy 85.344974 77.045004) (xy 85.317197 76.990487) (xy 85.326768 76.930055) (xy 85.344974 76.904996)\r\n\t\t\t\t(xy 85.347763 76.902206) (xy 85.347765 76.902206) (xy 85.427206 76.822765) (xy 85.472585 76.719991)\r\n\t\t\t\t(xy 85.4755 76.694865) (xy 85.475499 76.305136) (xy 85.472585 76.280009) (xy 85.427206 76.177235)\r\n\t\t\t\t(xy 85.347765 76.097794) (xy 85.244991 76.052415) (xy 85.24499 76.052414) (xy 85.244988 76.052414)\r\n\t\t\t\t(xy 85.219868 76.0495) (xy 84.105139 76.0495) (xy 84.105136 76.049501) (xy 84.080009 76.052414)\r\n\t\t\t\t(xy 83.977235 76.097794) (xy 83.897794 76.177235) (xy 83.852414 76.280011) (xy 83.8495 76.30513)\r\n\t\t\t\t(xy 83.8495 76.69486) (xy 83.849501 76.694863) (xy 83.852414 76.71999) (xy 83.852415 76.719992)\r\n\t\t\t\t(xy 83.861555 76.740691) (xy 83.893857 76.813849) (xy 83.897257 76.821548) (xy 83.903466 76.882418)\r\n\t\t\t\t(xy 83.876697 76.931541) (xy 83.369503 77.438735) (xy 83.314986 77.466512) (xy 83.254554 77.456941)\r\n\t\t\t\t(xy 83.211289 77.413676) (xy 83.200499 77.368731) (xy 83.200499 77.255139) (xy 83.200499 77.255136)\r\n\t\t\t\t(xy 83.197585 77.230009) (xy 83.152206 77.127235) (xy 83.072765 77.047794) (xy 82.969991 77.002415)\r\n\t\t\t\t(xy 82.96999 77.002414) (xy 82.969988 77.002414) (xy 82.944869 76.9995) (xy 82.944865 76.9995) (xy 82.941955 76.9995)\r\n\t\t\t\t(xy 82.883764 76.980593) (xy 82.8478 76.931093) (xy 82.846328 76.874878) (xy 82.8505 76.859309)\r\n\t\t\t\t(xy 82.8505 76.740691) (xy 82.819799 76.626114) (xy 82.819797 76.626111) (xy 82.819797 76.626109)\r\n\t\t\t\t(xy 82.760492 76.523391) (xy 82.76049 76.523389) (xy 82.760489 76.523387) (xy 82.676613 76.439511)\r\n\t\t\t\t(xy 82.67661 76.439509) (xy 82.676608 76.439507) (xy 82.573889 76.380202) (xy 82.57389 76.380202)\r\n\t\t\t\t(xy 82.545026 76.372468) (xy 82.459309 76.3495) (xy 82.340691 76.3495) (xy 82.270567 76.368289)\r\n\t\t\t\t(xy 82.226109 76.380202) (xy 82.123391 76.439507) (xy 82.039507 76.523391) (xy 81.980202 76.626109)\r\n\t\t\t\t(xy 81.968022 76.671565) (xy 81.9495 76.740691) (xy 81.9495 76.859309) (xy 81.953671 76.874878)\r\n\t\t\t\t(xy 81.95047 76.935978) (xy 81.911964 76.983528) (xy 81.858048 76.9995) (xy 81.83014 76.9995) (xy 81.830135 76.999501)\r\n\t\t\t\t(xy 81.805009 77.002414) (xy 81.702235 77.047794) (xy 81.622794 77.127235) (xy 81.577414 77.230011)\r\n\t\t\t\t(xy 81.5745 77.25513) (xy 81.5745 77.64486) (xy 81.574501 77.644863) (xy 81.577414 77.66999) (xy 81.598401 77.71752)\r\n\t\t\t\t(xy 81.622794 77.772765) (xy 81.702235 77.852206) (xy 81.805009 77.897585) (xy 81.830135 77.9005)\r\n\t\t\t\t(xy 82.944864 77.900499) (xy 82.969991 77.897585) (xy 83.072765 77.852206) (xy 83.080498 77.844472)\r\n\t\t\t\t(xy 83.135013 77.816697) (xy 83.195445 77.826268) (xy 83.23871 77.869533) (xy 83.2495 77.914478)\r\n\t\t\t\t(xy 83.2495 82.149828) (xy 83.287634 82.241894) (xy 83.287635 82.241895) (xy 83.287636 82.241897)\r\n\t\t\t\t(xy 90.620505 89.574766) (xy 90.62413 89.581881) (xy 90.630593 89.586577) (xy 90.637756 89.608625)\r\n\t\t\t\t(xy 90.648281 89.629281) (xy 90.6495 89.644768) (xy 90.6495 89.6605) (xy 90.630593 89.718691) (xy 90.581093 89.754655)\r\n\t\t\t\t(xy 90.5505 89.7595) (xy 90.430252 89.7595) (xy 90.430251 89.7595) (xy 90.430241 89.759501) (xy 90.371772 89.771132)\r\n\t\t\t\t(xy 90.371767 89.771134) (xy 90.355001 89.782337) (xy 90.296113 89.798945) (xy 90.244999 89.782337)\r\n\t\t\t\t(xy 90.238642 89.778089) (xy 90.228231 89.771133) (xy 90.228228 89.771132) (xy 90.228227 89.771132)\r\n\t\t\t\t(xy 90.169758 89.759501) (xy 90.169748 89.7595) (xy 90.030252 89.7595) (xy 90.030248 89.7595) (xy 90.018351 89.761867)\r\n\t\t\t\t(xy 89.957589 89.754675) (xy 89.929033 89.734773) (xy 88.127847 87.933587) (xy 86.281897 86.087636)\r\n\t\t\t\t(xy 86.281895 86.087635) (xy 86.281894 86.087634) (xy 86.189829 86.0495) (xy 86.189828 86.0495)\r\n\t\t\t\t(xy 77.494769 86.0495) (xy 77.436578 86.030593) (xy 77.424765 86.020504) (xy 75.829496 84.425235)\r\n\t\t\t\t(xy 75.801719 84.370718) (xy 75.8005 84.355231) (xy 75.8005 83.735181) (xy 75.800499 83.735172)\r\n\t\t\t\t(xy 75.791767 83.691279) (xy 75.791765 83.691275) (xy 75.791323 83.690614) (xy 75.758504 83.641496)\r\n\t\t\t\t(xy 75.726029 83.619797) (xy 75.708724 83.608234) (xy 75.70872 83.608232) (xy 75.664818 83.599499)\r\n\t\t\t\t(xy 75.664798 83.599497) (xy 75.664789 83.599493) (xy 75.660048 83.59855) (xy 75.660254 83.597509)\r\n\t\t\t\t(xy 75.60874 83.574978) (xy 75.5778 83.522192) (xy 75.5755 83.500974) (xy 75.5755 80.899025) (xy 75.594407 80.840834)\r\n\t\t\t\t(xy 75.643907 80.80487) (xy 75.660056 80.801494) (xy 75.660048 80.80145) (xy 75.664709 80.800522)\r\n\t\t\t\t(xy 75.664818 80.8005) (xy 75.66482 80.8005) (xy 75.708722 80.791767) (xy 75.758504 80.758504) (xy 75.791767 80.708722)\r\n\t\t\t\t(xy 75.8005 80.66482) (xy 75.8005 79.58518) (xy 75.800499 79.585178) (xy 75.800499 79.585172) (xy 76.9995 79.585172)\r\n\t\t\t\t(xy 76.9995 80.664827) (xy 77.008232 80.70872) (xy 77.008234 80.708724) (xy 77.008361 80.708914)\r\n\t\t\t\t(xy 77.041496 80.758504) (xy 77.091278 80.791767) (xy 77.13518 80.8005) (xy 77.135182 80.8005) (xy 77.135186 80.800502)\r\n\t\t\t\t(xy 77.139952 80.80145) (xy 77.139744 80.802494) (xy 77.191245 80.825007) (xy 77.222195 80.877787)\r\n\t\t\t\t(xy 77.2245 80.899025) (xy 77.2245 83.500974) (xy 77.205593 83.559165) (xy 77.156093 83.595129)\r\n\t\t\t\t(xy 77.139943 83.598505) (xy 77.139952 83.59855) (xy 77.135406 83.599454) (xy 77.135202 83.599497)\r\n\t\t\t\t(xy 77.135181 83.599499) (xy 77.091279 83.608232) (xy 77.091275 83.608234) (xy 77.041498 83.641494)\r\n\t\t\t\t(xy 77.041494 83.641498) (xy 77.008234 83.691275) (xy 77.008232 83.691279) (xy 76.9995 83.735172)\r\n\t\t\t\t(xy 76.9995 84.814827) (xy 77.008232 84.85872) (xy 77.008234 84.858724) (xy 77.027138 84.887016)\r\n\t\t\t\t(xy 77.041496 84.908504) (xy 77.091278 84.941767) (xy 77.102327 84.943964) (xy 77.135172 84.950499)\r\n\t\t\t\t(xy 77.135178 84.950499) (xy 77.13518 84.9505) (xy 77.135181 84.9505) (xy 77.814819 84.9505) (xy 77.81482 84.9505)\r\n\t\t\t\t(xy 77.814821 84.950499) (xy 77.814827 84.950499) (xy 77.836623 84.946162) (xy 77.858722 84.941767)\r\n\t\t\t\t(xy 77.908504 84.908504) (xy 77.941767 84.858722) (xy 77.9505 84.81482) (xy 77.9505 83.73518) (xy 77.950499 83.735178)\r\n\t\t\t\t(xy 77.950499 83.735172) (xy 77.941767 83.691279) (xy 77.941765 83.691275) (xy 77.941323 83.690614)\r\n\t\t\t\t(xy 77.908504 83.641496) (xy 77.876029 83.619797) (xy 77.858724 83.608234) (xy 77.85872 83.608232)\r\n\t\t\t\t(xy 77.814818 83.599499) (xy 77.814798 83.599497) (xy 77.814789 83.599493) (xy 77.810048 83.59855)\r\n\t\t\t\t(xy 77.810254 83.597509) (xy 77.75874 83.574978) (xy 77.7278 83.522192) (xy 77.7255 83.500974) (xy 77.7255 80.899025)\r\n\t\t\t\t(xy 77.744407 80.840834) (xy 77.793907 80.80487) (xy 77.810056 80.801494) (xy 77.810048 80.80145)\r\n\t\t\t\t(xy 77.814709 80.800522) (xy 77.814818 80.8005) (xy 77.81482 80.8005) (xy 77.858722 80.791767) (xy 77.908504 80.758504)\r\n\t\t\t\t(xy 77.941767 80.708722) (xy 77.9505 80.66482) (xy 77.9505 80.5845) (xy 77.969407 80.526309) (xy 78.018907 80.490345)\r\n\t\t\t\t(xy 78.0495 80.4855) (xy 80.054678 80.4855) (xy 80.112869 80.504407) (xy 80.146142 80.546615) (xy 80.213367 80.708913)\r\n\t\t\t\t(xy 80.223913 80.724696) (xy 80.322861 80.872782) (xy 80.462218 81.012139) (xy 80.626086 81.121632)\r\n\t\t\t\t(xy 80.808165 81.197051) (xy 80.936757 81.222629) (xy 80.968288 81.228902) (xy 81.021672 81.258799)\r\n\t\t\t\t(xy 81.047288 81.314364) (xy 81.035351 81.374374) (xy 80.990421 81.415906) (xy 80.948974 81.425)\r\n\t\t\t\t(xy 80.202176 81.425) (xy 80.142629 81.431401) (xy 80.142618 81.431403) (xy 80.007911 81.481646)\r\n\t\t\t\t(xy 80.007909 81.481647) (xy 79.892815 81.567807) (xy 79.892807 81.567815) (xy 79.806647 81.682909)\r\n\t\t\t\t(xy 79.806646 81.682911) (xy 79.756403 81.817618) (xy 79.756401 81.817629) (xy 79.75 81.877175)\r\n\t\t\t\t(xy 79.75 82.524999) (xy 79.750001 82.525) (xy 80.666988 82.525) (xy 80.634075 82.582007) (xy 80.6 82.709174)\r\n\t\t\t\t(xy 80.6 82.840826) (xy 80.634075 82.967993) (x' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'y 80.666988 83.025) (xy 79.750001 83.025) (xy 79.75 83.025001)\r\n\t\t\t\t(xy 79.75 83.672824) (xy 79.749999 83.672824) (xy 79.756401 83.73237) (xy 79.756403 83.732381) (xy 79.806646 83.867088)\r\n\t\t\t\t(xy 79.806647 83.86709) (xy 79.892807 83.982184) (xy 79.892815 83.982192) (xy 80.007909 84.068352)\r\n\t\t\t\t(xy 80.007911 84.068353) (xy 80.142618 84.118596) (xy 80.142629 84.118598) (xy 80.202176 84.125)\r\n\t\t\t\t(xy 80.849999 84.125) (xy 80.85 84.124999) (xy 80.85 83.208012) (xy 80.907007 83.240925) (xy 81.034174 83.275)\r\n\t\t\t\t(xy 81.165826 83.275) (xy 81.292993 83.240925) (xy 81.35 83.208012) (xy 81.35 84.124999) (xy 81.350001 84.125)\r\n\t\t\t\t(xy 81.997824 84.125) (xy 82.05737 84.118598) (xy 82.057381 84.118596) (xy 82.192088 84.068353)\r\n\t\t\t\t(xy 82.19209 84.068352) (xy 82.307184 83.982192) (xy 82.307192 83.982184) (xy 82.393352 83.86709)\r\n\t\t\t\t(xy 82.393353 83.867088) (xy 82.443596 83.732381) (xy 82.443598 83.73237) (xy 82.45 83.672824) (xy 82.45 83.025001)\r\n\t\t\t\t(xy 82.449999 83.025) (xy 81.533012 83.025) (xy 81.565925 82.967993) (xy 81.6 82.840826) (xy 81.6 82.709174)\r\n\t\t\t\t(xy 81.565925 82.582007) (xy 81.533012 82.525) (xy 82.449999 82.525) (xy 82.45 82.524999) (xy 82.45 81.877175)\r\n\t\t\t\t(xy 82.443598 81.817629) (xy 82.443596 81.817618) (xy 82.393353 81.682911) (xy 82.393352 81.682909)\r\n\t\t\t\t(xy 82.307192 81.567815) (xy 82.307184 81.567807) (xy 82.19209 81.481647) (xy 82.192088 81.481646)\r\n\t\t\t\t(xy 82.057381 81.431403) (xy 82.05737 81.431401) (xy 81.997824 81.425) (xy 81.251026 81.425) (xy 81.192835 81.406093)\r\n\t\t\t\t(xy 81.156871 81.356593) (xy 81.156871 81.295407) (xy 81.192835 81.245907) (xy 81.231712 81.228902)\r\n\t\t\t\t(xy 81.254252 81.224418) (xy 81.391835 81.197051) (xy 81.573914 81.121632) (xy 81.737782 81.012139)\r\n\t\t\t\t(xy 81.877139 80.872782) (xy 81.986632 80.708914) (xy 82.062051 80.526835) (xy 82.1005 80.333541)\r\n\t\t\t\t(xy 82.1005 80.136459) (xy 82.062051 79.943165) (xy 81.986632 79.761086) (xy 81.877139 79.597218)\r\n\t\t\t\t(xy 81.737782 79.457861) (xy 81.596392 79.363387) (xy 81.573913 79.348367) (xy 81.391835 79.272949)\r\n\t\t\t\t(xy 81.198543 79.2345) (xy 81.198541 79.2345) (xy 81.001459 79.2345) (xy 81.001456 79.2345) (xy 80.808165 79.272949)\r\n\t\t\t\t(xy 80.808163 79.272949) (xy 80.626086 79.348367) (xy 80.462218 79.457861) (xy 80.462214 79.457864)\r\n\t\t\t\t(xy 80.322864 79.597214) (xy 80.322861 79.597218) (xy 80.213367 79.761086) (xy 80.146142 79.923385)\r\n\t\t\t\t(xy 80.106406 79.969911) (xy 80.054678 79.9845) (xy 78.0495 79.9845) (xy 77.991309 79.965593) (xy 77.955345 79.916093)\r\n\t\t\t\t(xy 77.9505 79.8855) (xy 77.9505 79.585181) (xy 77.950499 79.585172) (xy 77.943964 79.552327) (xy 77.941767 79.541278)\r\n\t\t\t\t(xy 77.908504 79.491496) (xy 77.863763 79.461601) (xy 77.858724 79.458234) (xy 77.85872 79.458232)\r\n\t\t\t\t(xy 77.814827 79.4495) (xy 77.81482 79.4495) (xy 77.13518 79.4495) (xy 77.135172 79.4495) (xy 77.091279 79.458232)\r\n\t\t\t\t(xy 77.091275 79.458234) (xy 77.041498 79.491494) (xy 77.041494 79.491498) (xy 77.008234 79.541275)\r\n\t\t\t\t(xy 77.008232 79.541279) (xy 76.9995 79.585172) (xy 75.800499 79.585172) (xy 75.793964 79.552327)\r\n\t\t\t\t(xy 75.791767 79.541278) (xy 75.758504 79.491496) (xy 75.713763 79.461601) (xy 75.708724 79.458234)\r\n\t\t\t\t(xy 75.70872 79.458232) (xy 75.664827 79.4495) (xy 75.66482 79.4495) (xy 74.98518 79.4495) (xy 74.985172 79.4495)\r\n\t\t\t\t(xy 74.941279 79.458232) (xy 74.941275 79.458234) (xy 74.891498 79.491494) (xy 74.891494 79.491498)\r\n\t\t\t\t(xy 74.858234 79.541275) (xy 74.858232 79.541279) (xy 74.8495 79.585172) (xy 74.0005 79.585172)\r\n\t\t\t\t(xy 74.0005 74.152721) (xy 74.987 74.152721) (xy 74.987 75.127278) (xy 74.994454 75.174343) (xy 75.001011 75.215743)\r\n\t\t\t\t(xy 75.001622 75.219597) (xy 75.001623 75.219601) (xy 75.058318 75.33087) (xy 75.05832 75.330873)\r\n\t\t\t\t(xy 75.146627 75.41918) (xy 75.146629 75.419181) (xy 75.146628 75.419181) (xy 75.257898 75.475876)\r\n\t\t\t\t(xy 75.257902 75.475878) (xy 75.290987 75.481118) (xy 75.298103 75.484744) (xy 75.306093 75.484744)\r\n\t\t\t\t(xy 75.324851 75.498373) (xy 75.345504 75.508896) (xy 75.349129 75.516012) (xy 75.355593 75.520708)\r\n\t\t\t\t(xy 75.362757 75.542757) (xy 75.373281 75.563412) (xy 75.3745 75.578899) (xy 75.3745 75.6611) (xy 75.355593 75.719291)\r\n\t\t\t\t(xy 75.306093 75.755255) (xy 75.29099 75.758881) (xy 75.257901 75.764122) (xy 75.257898 75.764123)\r\n\t\t\t\t(xy 75.146629 75.820818) (xy 75.058318 75.909129) (xy 75.001623 76.020398) (xy 75.001622 76.020402)\r\n\t\t\t\t(xy 74.987 76.112721) (xy 74.987 77.087278) (xy 75.001622 77.179597) (xy 75.001623 77.179601) (xy 75.058318 77.29087)\r\n\t\t\t\t(xy 75.05832 77.290873) (xy 75.146627 77.37918) (xy 75.146629 77.379181) (xy 75.146631 77.379183)\r\n\t\t\t\t(xy 75.152933 77.383762) (xy 75.151905 77.385175) (xy 75.188431 77.421704) (xy 75.197999 77.482136)\r\n\t\t\t\t(xy 75.185957 77.516142) (xy 75.180202 77.526109) (xy 75.177391 77.536601) (xy 75.1495 77.640691)\r\n\t\t\t\t(xy 75.1495 77.759309) (xy 75.163795 77.812657) (xy 75.180202 77.87389) (xy 75.239507 77.976608)\r\n\t\t\t\t(xy 75.239509 77.97661) (xy 75.239511 77.976613) (xy 75.323387 78.060489) (xy 75.323389 78.06049)\r\n\t\t\t\t(xy 75.323391 78.060492) (xy 75.42611 78.119797) (xy 75.426111 78.119797) (xy 75.426114 78.119799)\r\n\t\t\t\t(xy 75.540691 78.1505) (xy 75.540693 78.1505) (xy 75.659307 78.1505) (xy 75.659309 78.1505) (xy 75.773886 78.119799)\r\n\t\t\t\t(xy 75.773888 78.119797) (xy 75.77389 78.119797) (xy 75.876608 78.060492) (xy 75.876608 78.060491)\r\n\t\t\t\t(xy 75.876613 78.060489) (xy 75.960489 77.976613) (xy 75.960492 77.976608) (xy 76.019797 77.87389)\r\n\t\t\t\t(xy 76.019797 77.873888) (xy 76.019799 77.873886) (xy 76.0505 77.759309) (xy 76.0505 77.640691)\r\n\t\t\t\t(xy 76.019799 77.526114) (xy 76.019798 77.526112) (xy 76.019129 77.524497) (xy 76.01903 77.523248)\r\n\t\t\t\t(xy 76.018119 77.519846) (xy 76.018749 77.519677) (xy 76.014328 77.4635) (xy 76.046298 77.411331)\r\n\t\t\t\t(xy 76.065645 77.398403) (xy 76.103373 77.37918) (xy 76.19168 77.290873) (xy 76.248378 77.179598)\r\n\t\t\t\t(xy 76.259859 77.107101) (xy 76.263 77.087278) (xy 76.263 76.112721) (xy 76.862 76.112721) (xy 76.862 77.087278)\r\n\t\t\t\t(xy 76.876622 77.179597) (xy 76.876623 77.179601) (xy 76.933318 77.29087) (xy 76.93332 77.290873)\r\n\t\t\t\t(xy 77.021627 77.37918) (xy 77.021629 77.379181) (xy 77.021628 77.379181) (xy 77.132405 77.435625)\r\n\t\t\t\t(xy 77.132902 77.435878) (xy 77.195485 77.445789) (xy 77.225221 77.4505) (xy 77.225224 77.4505)\r\n\t\t\t\t(xy 77.774779 77.4505) (xy 77.801631 77.446246) (xy 77.867098 77.435878) (xy 77.978373 77.37918)\r\n\t\t\t\t(xy 78.06668 77.290873) (xy 78.123378 77.179598) (xy 78.134859 77.107101) (xy 78.138 77.087278)\r\n\t\t\t\t(xy 78.138 76.9495) (xy 78.142845 76.934588) (xy 78.142845 76.918907) (xy 78.152061 76.906221) (xy 78.156907 76.891309)\r\n\t\t\t\t(xy 78.169592 76.882092) (xy 78.178809 76.869407) (xy 78.193721 76.864561) (xy 78.206407 76.855345)\r\n\t\t\t\t(xy 78.237 76.8505) (xy 78.269821 76.8505) (xy 78.328012 76.869407) (xy 78.360385 76.909511) (xy 78.371458 76.934588)\r\n\t\t\t\t(xy 78.377884 76.949141) (xy 78.453359 77.024616) (xy 78.499533 77.045004) (xy 78.551001 77.06773)\r\n\t\t\t\t(xy 78.555249 77.068222) (xy 78.574877 77.0705) (xy 78.930122 77.070499) (xy 78.953998 77.06773)\r\n\t\t\t\t(xy 79.051641 77.024616) (xy 79.127116 76.949141) (xy 79.17023 76.851498) (xy 79.17023 76.851494)\r\n\t\t\t\t(xy 79.171934 76.847636) (xy 79.212735 76.80204) (xy 79.272544 76.789135) (xy 79.328516 76.813849)\r\n\t\t\t\t(xy 79.353063 76.847635) (xy 79.397882 76.949138) (xy 79.397883 76.949139) (xy 79.397884 76.949141)\r\n\t\t\t\t(xy 79.473359 77.024616) (xy 79.52493 77.047387) (xy 79.570523 77.088186) (xy 79.583429 77.147995)\r\n\t\t\t\t(xy 79.558715 77.203967) (xy 79.554945 77.207952) (xy 79.539512 77.223385) (xy 79.539507 77.223391)\r\n\t\t\t\t(xy 79.480202 77.326109) (xy 79.467039 77.375235) (xy 79.4495 77.440691) (xy 79.4495 77.559309)\r\n\t\t\t\t(xy 79.472424 77.644863) (xy 79.480202 77.67389) (xy 79.539507 77.776608) (xy 79.539509 77.77661)\r\n\t\t\t\t(xy 79.539511 77.776613) (xy 79.623387 77.860489) (xy 79.623389 77.86049) (xy 79.623391 77.860492)\r\n\t\t\t\t(xy 79.72611 77.919797) (xy 79.726111 77.919797) (xy 79.726114 77.919799) (xy 79.840691 77.9505)\r\n\t\t\t\t(xy 79.840693 77.9505) (xy 79.959307 77.9505) (xy 79.959309 77.9505) (xy 80.073886 77.919799) (xy 80.073888 77.919797)\r\n\t\t\t\t(xy 80.07389 77.919797) (xy 80.176608 77.860492) (xy 80.176608 77.860491) (xy 80.176613 77.860489)\r\n\t\t\t\t(xy 80.2' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'60489 77.776613) (xy 80.28696 77.730764) (xy 80.319797 77.67389) (xy 80.319797 77.673888)\r\n\t\t\t\t(xy 80.319799 77.673886) (xy 80.3505 77.559309) (xy 80.3505 77.440691) (xy 80.319799 77.326114)\r\n\t\t\t\t(xy 80.319797 77.326111) (xy 80.319797 77.326109) (xy 80.260492 77.223391) (xy 80.260488 77.223386)\r\n\t\t\t\t(xy 80.179496 77.142393) (xy 80.17587 77.135276) (xy 80.169407 77.130581) (xy 80.162242 77.108529)\r\n\t\t\t\t(xy 80.151719 77.087876) (xy 80.1505 77.07239) (xy 80.1505 76.96236) (xy 80.158936 76.922371) (xy 80.164615 76.909511)\r\n\t\t\t\t(xy 80.19023 76.851498) (xy 80.193 76.827623) (xy 80.192999 76.372378) (xy 80.19023 76.348502) (xy 80.184549 76.335637)\r\n\t\t\t\t(xy 80.165446 76.292372) (xy 80.147116 76.250859) (xy 80.071641 76.175384) (xy 80.071639 76.175383)\r\n\t\t\t\t(xy 79.973998 76.132269) (xy 79.950126 76.1295) (xy 79.59488 76.1295) (xy 79.594877 76.129501) (xy 79.570999 76.13227)\r\n\t\t\t\t(xy 79.47336 76.175383) (xy 79.397883 76.25086) (xy 79.353064 76.352364) (xy 79.312263 76.397959)\r\n\t\t\t\t(xy 79.252454 76.410864) (xy 79.196482 76.386149) (xy 79.171936 76.352364) (xy 79.139987 76.280009)\r\n\t\t\t\t(xy 79.127116 76.250859) (xy 79.051641 76.175384) (xy 79.051639 76.175383) (xy 78.953998 76.132269)\r\n\t\t\t\t(xy 78.930126 76.1295) (xy 78.57488 76.1295) (xy 78.574877 76.129501) (xy 78.550999 76.13227) (xy 78.45336 76.175383)\r\n\t\t\t\t(xy 78.377883 76.25086) (xy 78.360385 76.290489) (xy 78.343182 76.309713) (xy 78.328012 76.330593)\r\n\t\t\t\t(xy 78.323056 76.332202) (xy 78.319584 76.336084) (xy 78.269821 76.3495) (xy 78.237 76.3495) (xy 78.178809 76.330593)\r\n\t\t\t\t(xy 78.142845 76.281093) (xy 78.138 76.2505) (xy 78.138 76.112721) (xy 78.132243 76.076377) (xy 78.123378 76.020402)\r\n\t\t\t\t(xy 78.06668 75.909127) (xy 77.978373 75.82082) (xy 77.97837 75.820818) (xy 77.978371 75.820818)\r\n\t\t\t\t(xy 77.867101 75.764123) (xy 77.867098 75.764122) (xy 77.834007 75.758881) (xy 77.774779 75.7495)\r\n\t\t\t\t(xy 77.774776 75.7495) (xy 77.225224 75.7495) (xy 77.225221 75.7495) (xy 77.132902 75.764122) (xy 77.132898 75.764123)\r\n\t\t\t\t(xy 77.021629 75.820818) (xy 76.933318 75.909129) (xy 76.876623 76.020398) (xy 76.876622 76.020402)\r\n\t\t\t\t(xy 76.862 76.112721) (xy 76.263 76.112721) (xy 76.257243 76.076377) (xy 76.248378 76.020402) (xy 76.19168 75.909127)\r\n\t\t\t\t(xy 76.103373 75.82082) (xy 76.10337 75.820818) (xy 76.103371 75.820818) (xy 75.992101 75.764123)\r\n\t\t\t\t(xy 75.992098 75.764122) (xy 75.95901 75.758881) (xy 75.951894 75.755255) (xy 75.943907 75.755255)\r\n\t\t\t\t(xy 75.925149 75.741626) (xy 75.904495 75.731102) (xy 75.900869 75.723986) (xy 75.894407 75.719291)\r\n\t\t\t\t(xy 75.887242 75.69724) (xy 75.876718 75.676584) (xy 75.8755 75.6611) (xy 75.8755 75.578899) (xy 75.894407 75.520708)\r\n\t\t\t\t(xy 75.943907 75.484744) (xy 75.959013 75.481118) (xy 75.992098 75.475878) (xy 76.103373 75.41918)\r\n\t\t\t\t(xy 76.19168 75.330873) (xy 76.248378 75.219598) (xy 76.259859 75.147101) (xy 76.263 75.127278)\r\n\t\t\t\t(xy 76.263 74.152721) (xy 76.862 74.152721) (xy 76.862 75.127278) (xy 76.869454 75.174343) (xy 76.876011 75.215743)\r\n\t\t\t\t(xy 76.876622 75.219597) (xy 76.876623 75.219601) (xy 76.933318 75.33087) (xy 76.93332 75.330873)\r\n\t\t\t\t(xy 77.021627 75.41918) (xy 77.021629 75.419181) (xy 77.021628 75.419181) (xy 77.132898 75.475876)\r\n\t\t\t\t(xy 77.132902 75.475878) (xy 77.195485 75.485789) (xy 77.225221 75.4905) (xy 77.225224 75.4905)\r\n\t\t\t\t(xy 77.774779 75.4905) (xy 77.801631 75.486246) (xy 77.867098 75.475878) (xy 77.978373 75.41918)\r\n\t\t\t\t(xy 78.06668 75.330873) (xy 78.123378 75.219598) (xy 78.134859 75.147101) (xy 78.138 75.127278)\r\n\t\t\t\t(xy 78.138 74.9495) (xy 78.142845 74.934588) (xy 78.142845 74.918907) (xy 78.152061 74.906221) (xy 78.156907 74.891309)\r\n\t\t\t\t(xy 78.169592 74.882092) (xy 78.178809 74.869407) (xy 78.193721 74.864561) (xy 78.206407 74.855345)\r\n\t\t\t\t(xy 78.237 74.8505) (xy 78.269821 74.8505) (xy 78.328012 74.869407) (xy 78.360385 74.909511) (xy 78.368134 74.92706)\r\n\t\t\t\t(xy 78.377884 74.949141) (xy 78.453359 75.024616) (xy 78.48339 75.037876) (xy 78.551001 75.06773)\r\n\t\t\t\t(xy 78.555249 75.068222) (xy 78.574877 75.0705) (xy 78.930122 75.070499) (xy 78.953998 75.06773)\r\n\t\t\t\t(xy 79.051641 75.024616) (xy 79.127116 74.949141) (xy 79.17023 74.851498) (xy 79.17023 74.851494)\r\n\t\t\t\t(xy 79.171934 74.847636) (xy 79.212735 74.80204) (xy 79.272544 74.789135) (xy 79.328516 74.813849)\r\n\t\t\t\t(xy 79.353063 74.847635) (xy 79.397882 74.949138) (xy 79.397883 74.949139) (xy 79.397884 74.949141)\r\n\t\t\t\t(xy 79.473359 75.024616) (xy 79.50339 75.037876) (xy 79.571001 75.06773) (xy 79.575249 75.068222)\r\n\t\t\t\t(xy 79.594877 75.0705) (xy 79.950122 75.070499) (xy 79.973998 75.06773) (xy 80.071641 75.024616)\r\n\t\t\t\t(xy 80.147116 74.949141) (xy 80.163074 74.913) (xy 80.164615 74.909511) (xy 80.205416 74.863916)\r\n\t\t\t\t(xy 80.255179 74.8505) (xy 81.292732 74.8505) (xy 81.350923 74.869407) (xy 81.362735 74.879496)\r\n\t\t\t\t(xy 81.601696 75.118456) (xy 81.629474 75.172973) (xy 81.622258 75.228447) (xy 81.577415 75.330008)\r\n\t\t\t\t(xy 81.577414 75.330011) (xy 81.5745 75.35513) (xy 81.5745 75.74486) (xy 81.574501 75.744863) (xy 81.577414 75.76999)\r\n\t\t\t\t(xy 81.590189 75.798922) (xy 81.622794 75.872765) (xy 81.702235 75.952206) (xy 81.805009 75.997585)\r\n\t\t\t\t(xy 81.830135 76.0005) (xy 82.944864 76.000499) (xy 82.969991 75.997585) (xy 83.072765 75.952206)\r\n\t\t\t\t(xy 83.152206 75.872765) (xy 83.197585 75.769991) (xy 83.2005 75.744865) (xy 83.200499 75.355136)\r\n\t\t\t\t(xy 83.200369 75.354022) (xy 83.199394 75.345603) (xy 83.198824 75.340691) (xy 96.7495 75.340691)\r\n\t\t\t\t(xy 96.7495 75.459309) (xy 96.776574 75.560351) (xy 96.780202 75.57389) (xy 96.839507 75.676608)\r\n\t\t\t\t(xy 96.839509 75.67661) (xy 96.839511 75.676613) (xy 96.923387 75.760489) (xy 96.923389 75.76049)\r\n\t\t\t\t(xy 96.923391 75.760492) (xy 97.02611 75.819797) (xy 97.026111 75.819797) (xy 97.026114 75.819799)\r\n\t\t\t\t(xy 97.140691 75.8505) (xy 97.140693 75.8505) (xy 97.259307 75.8505) (xy 97.259309 75.8505) (xy 97.373886 75.819799)\r\n\t\t\t\t(xy 97.373888 75.819797) (xy 97.37389 75.819797) (xy 97.476608 75.760492) (xy 97.476608 75.760491)\r\n\t\t\t\t(xy 97.476613 75.760489) (xy 97.560489 75.676613) (xy 97.590113 75.625304) (xy 97.619797 75.57389)\r\n\t\t\t\t(xy 97.619797 75.573888) (xy 97.619799 75.573886) (xy 97.6505 75.459309) (xy 97.6505 75.340691)\r\n\t\t\t\t(xy 97.619799 75.226114) (xy 97.619797 75.226111) (xy 97.619797 75.226109) (xy 97.560492 75.123391)\r\n\t\t\t\t(xy 97.560491 75.12339) (xy 97.56049 75.123389) (xy 97.560489 75.123387) (xy 97.529495 75.092393)\r\n\t\t\t\t(xy 97.501719 75.037876) (xy 97.5005 75.02239) (xy 97.5005 74.018478) (xy 120.5995 74.018478) (xy 120.5995 75.531521)\r\n\t\t\t\t(xy 120.599501 75.531523) (xy 120.614352 75.625299) (xy 120.614354 75.625304) (xy 120.67195 75.738342)\r\n\t\t\t\t(xy 120.761658 75.82805) (xy 120.874696 75.885646) (xy 120.968481 75.9005) (xy 122.231518 75.900499)\r\n\t\t\t\t(xy 122.231521 75.900499) (xy 122.231522 75.900498) (xy 122.278411 75.893072) (xy 122.325299 75.885647)\r\n\t\t\t\t(xy 122.325299 75.885646) (xy 122.325304 75.885646) (xy 122.438342 75.82805) (xy 122.52805 75.738342)\r\n\t\t\t\t(xy 122.585646 75.625304) (xy 122.6005 75.531519) (xy 122.600499 74.240477) (xy 122.619406 74.182287)\r\n\t\t\t\t(xy 122.629489 74.17048) (xy 125.570475 71.229496) (xy 125.624992 71.201719) (xy 125.640479 71.2005)\r\n\t\t\t\t(xy 134.593446 71.2005) (xy 134.651637 71.219407) (xy 134.687601 71.268907) (xy 134.687601 71.316529)\r\n\t\t\t\t(xy 134.690573 71.317) (xy 134.6745 71.418477) (xy 134.6745 72.10652) (xy 134.674501 72.106523)\r\n\t\t\t\t(xy 134.689352 72.200299) (xy 134.689354 72.200304) (xy 134.74695 72.313342) (xy 134.836658 72.40305)\r\n\t\t\t\t(xy 134.83666 72.403051) (xy 134.84296 72.407628) (xy 134.840912 72.410446) (xy 134.873514 72.443029)\r\n\t\t\t\t(xy 134.883103 72.503458) (xy 134.855341 72.557983) (xy 134.800833 72.585777) (xy 134.785317 72.587)\r\n\t\t\t\t(xy 128.447935 72.587) (xy 128.371512 72.607478) (xy 128.313986 72.640691) (xy 128.302988 72.64704)\r\n\t\t\t\t(xy 127.198949 73.751077) (xy 127.144433 73.778854) (xy 127.084001 73.769283) (xy 127.073947 73.76339)\r\n\t\t\t\t(xy 127.073913 73.763367) (xy 127.073911 73.763366) (xy 126.891835 73.687949) (xy 126.698543 73.6495)\r\n\t\t\t\t(xy 126.698541 73.6495) (xy 126.501459 73.6495) (xy 126.501456 73.6495) (xy 126.308165 73.687949)\r\n\t\t\t\t(xy 126.308163 73.687949) (xy 126.126086 73.763367) (xy 125.962218 73.872861) (xy 125.962214 73.872864)\r\n\t\t\t\t(x' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'y 125.822864 74.012214) (xy 125.822861 74.012218) (xy 125.713367 74.176086) (xy 125.637949 74.358163)\r\n\t\t\t\t(xy 125.637949 74.358165) (xy 125.5995 74.551456) (xy 125.5995 74.998543) (xy 125.618552 75.094323)\r\n\t\t\t\t(xy 125.632437 75.164127) (xy 125.637949 75.191834) (xy 125.637949 75.191836) (xy 125.713367 75.373913)\r\n\t\t\t\t(xy 125.740666 75.414769) (xy 125.822861 75.537782) (xy 125.822864 75.537785) (xy 125.865575 75.580496)\r\n\t\t\t\t(xy 125.893352 75.635013) (xy 125.883781 75.695445) (xy 125.840516 75.73871) (xy 125.795571 75.7495)\r\n\t\t\t\t(xy 125.540479 75.7495) (xy 125.482288 75.730593) (xy 125.470475 75.720504) (xy 125.073606 75.323635)\r\n\t\t\t\t(xy 125.045829 75.269118) (xy 125.052146 75.215746) (xy 125.062051 75.191835) (xy 125.1005 74.998541)\r\n\t\t\t\t(xy 125.1005 74.551459) (xy 125.062051 74.358165) (xy 124.986632 74.176086) (xy 124.877139 74.012218)\r\n\t\t\t\t(xy 124.737782 73.872861) (xy 124.60166 73.781907) (xy 124.573913 73.763367) (xy 124.391835 73.687949)\r\n\t\t\t\t(xy 124.198543 73.6495) (xy 124.198541 73.6495) (xy 124.001459 73.6495) (xy 124.001456 73.6495)\r\n\t\t\t\t(xy 123.808165 73.687949) (xy 123.808163 73.687949) (xy 123.626086 73.763367) (xy 123.462218 73.872861)\r\n\t\t\t\t(xy 123.462214 73.872864) (xy 123.322864 74.012214) (xy 123.322861 74.012218) (xy 123.213367 74.176086)\r\n\t\t\t\t(xy 123.137949 74.358163) (xy 123.137949 74.358165) (xy 123.0995 74.551456) (xy 123.0995 74.998543)\r\n\t\t\t\t(xy 123.118552 75.094323) (xy 123.132437 75.164127) (xy 123.137949 75.191834) (xy 123.137949 75.191836)\r\n\t\t\t\t(xy 123.213367 75.373913) (xy 123.240666 75.414769) (xy 123.322861 75.537782) (xy 123.462218 75.677139)\r\n\t\t\t\t(xy 123.626086 75.786632) (xy 123.808165 75.862051) (xy 124.001459 75.9005) (xy 124.00146 75.9005)\r\n\t\t\t\t(xy 124.19854 75.9005) (xy 124.198541 75.9005) (xy 124.391835 75.862051) (xy 124.573914 75.786632)\r\n\t\t\t\t(xy 124.573944 75.786611) (xy 124.573961 75.786606) (xy 124.5782 75.784341) (xy 124.578697 75.785271)\r\n\t\t\t\t(xy 124.632831 75.770002) (xy 124.690235 75.791178) (xy 124.698951 75.798922) (xy 125.13454 76.234511)\r\n\t\t\t\t(xy 125.134539 76.234511) (xy 125.190489 76.29046) (xy 125.259007 76.330019) (xy 125.259011 76.330021)\r\n\t\t\t\t(xy 125.335435 76.350499) (xy 125.335437 76.3505) (xy 125.335438 76.3505) (xy 136.577063 76.3505)\r\n\t\t\t\t(xy 136.577063 76.350499) (xy 136.653489 76.330021) (xy 136.722011 76.29046) (xy 136.77796 76.234511)\r\n\t\t\t\t(xy 138.245475 74.766996) (xy 138.252133 74.763603) (xy 138.256462 74.757514) (xy 138.278177 74.750333)\r\n\t\t\t\t(xy 138.299992 74.739219) (xy 138.314454 74.738005) (xy 138.314937 74.738) (xy 138.47098 74.738)\r\n\t\t\t\t(xy 138.479548 74.736295) (xy 138.488779 74.7362) (xy 138.509586 74.742723) (xy 138.531238 74.745283)\r\n\t\t\t\t(xy 138.538163 74.751682) (xy 138.547162 74.754504) (xy 138.56016 74.772011) (xy 138.576174 74.786809)\r\n\t\t\t\t(xy 138.578014 74.796057) (xy 138.583637 74.803629) (xy 138.583862 74.825434) (xy 138.588119 74.846817)\r\n\t\t\t\t(xy 138.587033 74.853675) (xy 138.587 74.85402) (xy 138.587 75.545985) (xy 138.592009 75.571166)\r\n\t\t\t\t(xy 138.584817 75.631928) (xy 138.564915 75.660482) (xy 138.502011 75.723386) (xy 138.502007 75.723391)\r\n\t\t\t\t(xy 138.442702 75.826109) (xy 138.42675 75.885645) (xy 138.412 75.940691) (xy 138.412 76.059309)\r\n\t\t\t\t(xy 138.432822 76.137016) (xy 138.442702 76.17389) (xy 138.455835 76.196636) (xy 138.468557 76.256484)\r\n\t\t\t\t(xy 138.443671 76.31238) (xy 138.440103 76.316139) (xy 138.375383 76.380859) (xy 138.332269 76.478501)\r\n\t\t\t\t(xy 138.332269 76.478502) (xy 138.3295 76.502372) (xy 138.3295 76.857619) (xy 138.329501 76.857622)\r\n\t\t\t\t(xy 138.33227 76.8815) (xy 138.373064 76.973886) (xy 138.375384 76.979141) (xy 138.450859 77.054616)\r\n\t\t\t\t(xy 138.548502 77.09773) (xy 138.548504 77.09773) (xy 138.552363 77.099434) (xy 138.597959 77.140235)\r\n\t\t\t\t(xy 138.610864 77.200044) (xy 138.58615 77.256016) (xy 138.552365 77.280563) (xy 138.45086 77.325383)\r\n\t\t\t\t(xy 138.375383 77.40086) (xy 138.332269 77.498501) (xy 138.332269 77.498502) (xy 138.3295 77.522372)\r\n\t\t\t\t(xy 138.3295 77.877619) (xy 138.329501 77.877622) (xy 138.33227 77.9015) (xy 138.368787 77.984201)\r\n\t\t\t\t(xy 138.374996 78.045071) (xy 138.37385 78.049812) (xy 138.353404 78.12612) (xy 138.3495 78.140691)\r\n\t\t\t\t(xy 138.3495 78.259309) (xy 138.370989 78.339507) (xy 138.380202 78.37389) (xy 138.439507 78.476608)\r\n\t\t\t\t(xy 138.439509 78.47661) (xy 138.439511 78.476613) (xy 138.523387 78.560489) (xy 138.523389 78.56049)\r\n\t\t\t\t(xy 138.523391 78.560492) (xy 138.62611 78.619797) (xy 138.626111 78.619797) (xy 138.626114 78.619799)\r\n\t\t\t\t(xy 138.740691 78.6505) (xy 138.740693 78.6505) (xy 138.859307 78.6505) (xy 138.859309 78.6505)\r\n\t\t\t\t(xy 138.973886 78.619799) (xy 138.973888 78.619797) (xy 138.97389 78.619797) (xy 139.076608 78.560492)\r\n\t\t\t\t(xy 139.076608 78.560491) (xy 139.076613 78.560489) (xy 139.160489 78.476613) (xy 139.162061 78.47389)\r\n\t\t\t\t(xy 139.219797 78.37389) (xy 139.219797 78.373888) (xy 139.219799 78.373886) (xy 139.2505 78.259309)\r\n\t\t\t\t(xy 139.2505 78.140691) (xy 139.226149 78.049812) (xy 139.229351 77.988714) (xy 139.231212 77.984204)\r\n\t\t\t\t(xy 139.267729 77.9015) (xy 139.26773 77.901497) (xy 139.268184 77.897585) (xy 139.2705 77.877623)\r\n\t\t\t\t(xy 139.270499 77.522378) (xy 139.26773 77.498502) (xy 139.267318 77.49757) (xy 139.242204 77.440691)\r\n\t\t\t\t(xy 139.224616 77.400859) (xy 139.149141 77.325384) (xy 139.130518 77.317161) (xy 139.047635 77.280564)\r\n\t\t\t\t(xy 139.00204 77.239763) (xy 138.989135 77.179954) (xy 139.013849 77.123983) (xy 139.047635 77.099436)\r\n\t\t\t\t(xy 139.075174 77.087276) (xy 139.149141 77.054616) (xy 139.224616 76.979141) (xy 139.26773 76.881498)\r\n\t\t\t\t(xy 139.2705 76.857623) (xy 139.270499 76.502378) (xy 139.26773 76.478502) (xy 139.267624 76.478263)\r\n\t\t\t\t(xy 139.220911 76.372468) (xy 139.222858 76.371607) (xy 139.209026 76.324649) (xy 139.222252 76.277888)\r\n\t\t\t\t(xy 139.222986 76.276615) (xy 139.222989 76.276613) (xy 139.282299 76.173886) (xy 139.313 76.059309)\r\n\t\t\t\t(xy 139.313 75.940691) (xy 139.282299 75.826114) (xy 139.282297 75.826111) (xy 139.282297 75.826109)\r\n\t\t\t\t(xy 139.222992 75.723391) (xy 139.22299 75.723389) (xy 139.222989 75.723387) (xy 139.160082 75.66048)\r\n\t\t\t\t(xy 139.132307 75.605966) (xy 139.132991 75.571163) (xy 139.137999 75.545987) (xy 139.138 75.545979)\r\n\t\t\t\t(xy 139.138 74.85402) (xy 139.137999 74.854017) (xy 140.087 74.854017) (xy 140.087 75.545982) (xy 140.099357 75.608109)\r\n\t\t\t\t(xy 140.145482 75.677139) (xy 140.146435 75.678565) (xy 140.151073 75.681664) (xy 140.21689 75.725642)\r\n\t\t\t\t(xy 140.219036 75.726069) (xy 140.222203 75.727842) (xy 140.2259 75.729374) (xy 140.225718 75.729811)\r\n\t\t\t\t(xy 140.272421 75.755965) (xy 140.298037 75.81153) (xy 140.2861 75.87154) (xy 140.269728 75.89317)\r\n\t\t\t\t(xy 140.239507 75.923391) (xy 140.180202 76.026109) (xy 140.171307 76.059307) (xy 140.1495 76.140691)\r\n\t\t\t\t(xy 140.1495 76.259309) (xy 140.164728 76.316139) (xy 140.180202 76.37389) (xy 140.239507 76.476608)\r\n\t\t\t\t(xy 140.239509 76.47661) (xy 140.239511 76.476613) (xy 140.323387 76.560489) (xy 140.323389 76.56049)\r\n\t\t\t\t(xy 140.323391 76.560492) (xy 140.42611 76.619797) (xy 140.426111 76.619797) (xy 140.426114 76.619799)\r\n\t\t\t\t(xy 140.540691 76.6505) (xy 140.540693 76.6505) (xy 140.659308 76.6505) (xy 140.659309 76.6505)\r\n\t\t\t\t(xy 140.773113 76.620006) (xy 140.834213 76.623207) (xy 140.881763 76.661712) (xy 140.884471 76.666132)\r\n\t\t\t\t(xy 140.935867 76.755152) (xy 140.935869 76.755154) (xy 140.935871 76.755157) (xy 141.019747 76.839033)\r\n\t\t\t\t(xy 141.019749 76.839034) (xy 141.019751 76.839036) (xy 141.12247 76.898341) (xy 141.122471 76.898341)\r\n\t\t\t\t(xy 141.122474 76.898343) (xy 141.237051 76.929044) (xy 141.237053 76.929044) (xy 141.355667 76.929044)\r\n\t\t\t\t(xy 141.355669 76.929044) (xy 141.470246 76.898343) (xy 141.470248 76.898341) (xy 141.47025 76.898341)\r\n\t\t\t\t(xy 141.572968 76.839036) (xy 141.572968 76.839035) (xy 141.572973 76.839033) (xy 141.656849 76.755157)\r\n\t\t\t\t(xy 141.661155 76.747699) (xy 141.716157 76.652434) (xy 141.716157 76.652432) (xy 141.716159 76.65243)\r\n\t\t\t\t(xy 141.74686 76.537853) (xy 141.74686 76.419235) (xy 141.716159 76.304658) (xy 141.716157 76.304655)\r\n\t\t\t\t(xy 141.716157 76.304653) (xy 141.656852 76.201935) (xy 141.656847 76.201929) (xy 141.641995 76.187076)\r\n\t\t\t\t(xy 141.614218 76.132558) (xy 141.613 76.117074) (xy 141.613 75.' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'689109) (xy 141.631907 75.630918)\r\n\t\t\t\t(xy 141.681407 75.594954) (xy 141.742593 75.594954) (xy 141.782001 75.619103) (xy 141.823387 75.660489)\r\n\t\t\t\t(xy 141.823389 75.66049) (xy 141.823391 75.660492) (xy 141.92611 75.719797) (xy 141.926111 75.719797)\r\n\t\t\t\t(xy 141.926114 75.719799) (xy 142.040691 75.7505) (xy 142.040693 75.7505) (xy 142.159307 75.7505)\r\n\t\t\t\t(xy 142.159309 75.7505) (xy 142.273886 75.719799) (xy 142.273888 75.719797) (xy 142.27389 75.719797)\r\n\t\t\t\t(xy 142.376608 75.660492) (xy 142.376608 75.660491) (xy 142.376613 75.660489) (xy 142.380498 75.656603)\r\n\t\t\t\t(xy 142.435013 75.628828) (xy 142.495445 75.638399) (xy 142.53871 75.681664) (xy 142.5495 75.726609)\r\n\t\t\t\t(xy 142.5495 75.759828) (xy 142.587634 75.851894) (xy 142.587635 75.851895) (xy 142.587636 75.851897)\r\n\t\t\t\t(xy 142.640505 75.904766) (xy 142.668281 75.959281) (xy 142.6695 75.974768) (xy 142.6695 76.227619)\r\n\t\t\t\t(xy 142.669501 76.227622) (xy 142.67227 76.2515) (xy 142.715102 76.348502) (xy 142.715384 76.349141)\r\n\t\t\t\t(xy 142.790859 76.424616) (xy 142.79086 76.424616) (xy 142.79624 76.429996) (xy 142.824017 76.484513)\r\n\t\t\t\t(xy 142.814446 76.544945) (xy 142.79624 76.570004) (xy 142.79086 76.575383) (xy 142.790859 76.575384)\r\n\t\t\t\t(xy 142.751474 76.614769) (xy 142.715383 76.65086) (xy 142.672269 76.748501) (xy 142.672269 76.748502)\r\n\t\t\t\t(xy 142.6695 76.772372) (xy 142.6695 77.227619) (xy 142.669501 77.227622) (xy 142.67227 77.2515)\r\n\t\t\t\t(xy 142.715383 77.349139) (xy 142.715384 77.349141) (xy 142.790859 77.424616) (xy 142.83968 77.446173)\r\n\t\t\t\t(xy 142.888501 77.46773) (xy 142.892749 77.468222) (xy 142.912377 77.4705) (xy 143.267622 77.470499)\r\n\t\t\t\t(xy 143.291498 77.46773) (xy 143.389141 77.424616) (xy 143.464616 77.349141) (xy 143.50773 77.251498)\r\n\t\t\t\t(xy 143.5105 77.227623) (xy 143.510499 76.772378) (xy 143.50773 76.748502) (xy 143.507375 76.747699)\r\n\t\t\t\t(xy 143.484046 76.694863) (xy 143.464616 76.650859) (xy 143.389141 76.575384) (xy 143.389139 76.575383)\r\n\t\t\t\t(xy 143.38376 76.570004) (xy 143.355983 76.515487) (xy 143.365554 76.455055) (xy 143.38376 76.429996)\r\n\t\t\t\t(xy 143.389139 76.424616) (xy 143.389141 76.424616) (xy 143.464616 76.349141) (xy 143.50773 76.251498)\r\n\t\t\t\t(xy 143.50773 76.251494) (xy 143.509434 76.247636) (xy 143.550235 76.20204) (xy 143.610044 76.189135)\r\n\t\t\t\t(xy 143.666016 76.213849) (xy 143.690563 76.247635) (xy 143.735382 76.349138) (xy 143.735383 76.349139)\r\n\t\t\t\t(xy 143.735384 76.349141) (xy 143.810859 76.424616) (xy 143.844584 76.439507) (xy 143.908501 76.46773)\r\n\t\t\t\t(xy 143.912749 76.468222) (xy 143.932377 76.4705) (xy 144.287622 76.470499) (xy 144.311498 76.46773)\r\n\t\t\t\t(xy 144.409141 76.424616) (xy 144.484616 76.349141) (xy 144.52773 76.251498) (xy 144.5305 76.227623)\r\n\t\t\t\t(xy 144.530499 75.974767) (xy 144.549406 75.916578) (xy 144.559488 75.904771) (xy 145.312364 75.151897)\r\n\t\t\t\t(xy 145.3505 75.059828) (xy 145.3505 74.960173) (xy 145.3505 74.070172) (xy 145.346453 74.060402)\r\n\t\t\t\t(xy 145.312364 73.978103) (xy 145.241897 73.907635) (xy 145.241897 73.907636) (xy 144.889495 73.555234)\r\n\t\t\t\t(xy 144.861718 73.500717) (xy 144.860499 73.48523) (xy 144.860499 73.23663) (xy 144.860499 73.236628)\r\n\t\t\t\t(xy 144.857682 73.212338) (xy 144.813813 73.112984) (xy 144.783805 73.082976) (xy 144.75603 73.028462)\r\n\t\t\t\t(xy 144.765601 72.96803) (xy 144.768075 72.963475) (xy 144.819797 72.87389) (xy 144.819797 72.873888)\r\n\t\t\t\t(xy 144.819799 72.873886) (xy 144.8505 72.759309) (xy 144.8505 72.640691) (xy 144.819799 72.526114)\r\n\t\t\t\t(xy 144.819797 72.526111) (xy 144.819797 72.526109) (xy 144.760492 72.423391) (xy 144.76049 72.423389)\r\n\t\t\t\t(xy 144.760489 72.423387) (xy 144.676613 72.339511) (xy 144.67661 72.339509) (xy 144.676608 72.339507)\r\n\t\t\t\t(xy 144.573889 72.280202) (xy 144.57389 72.280202) (xy 144.544541 72.272338) (xy 144.459309 72.2495)\r\n\t\t\t\t(xy 144.340691 72.2495) (xy 144.273507 72.267502) (xy 144.226109 72.280202) (xy 144.123391 72.339507)\r\n\t\t\t\t(xy 144.039507 72.423391) (xy 143.980202 72.526109) (xy 143.972862 72.553502) (xy 143.9495 72.640691)\r\n\t\t\t\t(xy 143.9495 72.759309) (xy 143.962502 72.807832) (xy 143.980202 72.87389) (xy 144.031924 72.963474)\r\n\t\t\t\t(xy 144.032485 72.966113) (xy 144.034395 72.968023) (xy 144.038797 72.995808) (xy 144.044646 73.023322)\r\n\t\t\t\t(xy 144.043547 73.025789) (xy 144.04397 73.028455) (xy 144.0312 73.05352) (xy 144.019759 73.079218)\r\n\t\t\t\t(xy 144.016196 73.082973) (xy 144.008671 73.090499) (xy 143.954157 73.11828) (xy 143.938663 73.1195)\r\n\t\t\t\t(xy 143.861337 73.1195) (xy 143.803146 73.100593) (xy 143.791334 73.090504) (xy 143.737017 73.036188)\r\n\t\t\t\t(xy 143.737016 73.036187) (xy 143.637662 72.992318) (xy 143.637661 72.992317) (xy 143.637659 72.992317)\r\n\t\t\t\t(xy 143.637654 72.992316) (xy 143.635671 72.992086) (xy 143.634008 72.991324) (xy 143.630476 72.990363)\r\n\t\t\t\t(xy 143.630635 72.989778) (xy 143.580049 72.966595) (xy 143.550034 72.913277) (xy 143.55709 72.8525)\r\n\t\t\t\t(xy 143.577082 72.823746) (xy 143.613813 72.787016) (xy 143.657682 72.687662) (xy 143.6605 72.663373)\r\n\t\t\t\t(xy 143.660499 72.296628) (xy 143.657682 72.272338) (xy 143.613813 72.172984) (xy 143.537016 72.096187)\r\n\t\t\t\t(xy 143.437662 72.052318) (xy 143.437661 72.052317) (xy 143.437659 72.052317) (xy 143.413376 72.0495)\r\n\t\t\t\t(xy 142.98663 72.0495) (xy 142.986627 72.049501) (xy 142.962338 72.052317) (xy 142.862984 72.096187)\r\n\t\t\t\t(xy 142.786187 72.172984) (xy 142.786186 72.172985) (xy 142.779701 72.179471) (xy 142.777778 72.177548)\r\n\t\t\t\t(xy 142.775471 72.179324) (xy 142.765468 72.193093) (xy 142.751829 72.197524) (xy 142.74047 72.206269)\r\n\t\t\t\t(xy 142.707277 72.212) (xy 142.557061 72.212) (xy 142.518296 72.200241) (xy 142.517117 72.203089)\r\n\t\t\t\t(xy 142.508109 72.199357) (xy 142.445982 72.187) (xy 142.44598 72.187) (xy 141.75402 72.187) (xy 141.754017 72.187)\r\n\t\t\t\t(xy 141.69189 72.199357) (xy 141.621437 72.246433) (xy 141.621433 72.246437) (xy 141.574357 72.31689)\r\n\t\t\t\t(xy 141.562 72.379017) (xy 141.562 72.545982) (xy 141.574357 72.608108) (xy 141.607359 72.657499)\r\n\t\t\t\t(xy 141.623967 72.716387) (xy 141.607359 72.767501) (xy 141.574357 72.816891) (xy 141.562 72.879017)\r\n\t\t\t\t(xy 141.562 73.045982) (xy 141.574357 73.108108) (xy 141.607359 73.157499) (xy 141.623967 73.216387)\r\n\t\t\t\t(xy 141.607359 73.267501) (xy 141.574357 73.316891) (xy 141.562 73.379017) (xy 141.562 73.545982)\r\n\t\t\t\t(xy 141.574357 73.608108) (xy 141.607359 73.657499) (xy 141.623967 73.716387) (xy 141.607359 73.767501)\r\n\t\t\t\t(xy 141.574357 73.816891) (xy 141.562 73.879017) (xy 141.562 74.045982) (xy 141.574357 74.108108)\r\n\t\t\t\t(xy 141.607359 74.157499) (xy 141.623967 74.216387) (xy 141.607359 74.267501) (xy 141.574357 74.316891)\r\n\t\t\t\t(xy 141.562 74.379017) (xy 141.562 74.545979) (xy 141.562477 74.550825) (xy 141.561257 74.550945)\r\n\t\t\t\t(xy 141.554707 74.606258) (xy 141.513171 74.651185) (xy 141.45316 74.663117) (xy 141.446324 74.662033)\r\n\t\t\t\t(xy 141.44598 74.662) (xy 141.27902 74.662) (xy 141.279017 74.662) (xy 141.216891 74.674357) (xy 141.167501 74.707359)\r\n\t\t\t\t(xy 141.108613 74.723967) (xy 141.057499 74.707359) (xy 141.008108 74.674357) (xy 141.008109 74.674357)\r\n\t\t\t\t(xy 140.945982 74.662) (xy 140.94598 74.662) (xy 140.77902 74.662) (xy 140.779017 74.662) (xy 140.716891 74.674357)\r\n\t\t\t\t(xy 140.667501 74.707359) (xy 140.608613 74.723967) (xy 140.557499 74.707359) (xy 140.508108 74.674357)\r\n\t\t\t\t(xy 140.508109 74.674357) (xy 140.445982 74.662) (xy 140.44598 74.662) (xy 140.27902 74.662) (xy 140.279017 74.662)\r\n\t\t\t\t(xy 140.21689 74.674357) (xy 140.146437 74.721433) (xy 140.146433 74.721437) (xy 140.099357 74.79189)\r\n\t\t\t\t(xy 140.087 74.854017) (xy 139.137999 74.854017) (xy 139.137299 74.8505) (xy 139.125642 74.791891)\r\n\t\t\t\t(xy 139.125642 74.79189) (xy 139.089405 74.737659) (xy 139.078565 74.721435) (xy 139.078244 74.72122)\r\n\t\t\t\t(xy 139.008109 74.674357) (xy 138.945982 74.662) (xy 138.94598 74.662) (xy 138.77902 74.662) (xy 138.779019 74.662)\r\n\t\t\t\t(xy 138.774175 74.662477) (xy 138.774055 74.661259) (xy 138.718737 74.654705) (xy 138.673812 74.613167)\r\n\t\t\t\t(xy 138.661883 74.553156) (xy 138.662966 74.546316) (xy 138.663 74.545979) (xy 138.663 74.37902)\r\n\t\t\t\t(xy 138.662999 74.379017) (xy 138.661678 74.372377) (xy 138.654095 74.334252) (xy 138.650642 74.31689)\r\n\t\t\t\t(xy 138.630417 74.286622) (xy 138.61764 74.2675) (xy 138.601032 74.208614)' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' (xy 138.617641 74.157498)\r\n\t\t\t\t(xy 138.629663 74.139507) (xy 138.650642 74.108109) (xy 138.663 74.04598) (xy 138.663 73.87902)\r\n\t\t\t\t(xy 138.650642 73.816891) (xy 138.650642 73.81689) (xy 138.631119 73.787673) (xy 138.61764 73.7675)\r\n\t\t\t\t(xy 138.601032 73.708614) (xy 138.617641 73.657498) (xy 138.621954 73.651044) (xy 138.650642 73.608109)\r\n\t\t\t\t(xy 138.663 73.54598) (xy 138.663 73.37902) (xy 138.650642 73.316891) (xy 138.650642 73.31689) (xy 138.617641 73.267502)\r\n\t\t\t\t(xy 138.601032 73.208614) (xy 138.617641 73.157498) (xy 138.618461 73.156272) (xy 138.650642 73.108109)\r\n\t\t\t\t(xy 138.663 73.04598) (xy 138.663 72.87902) (xy 138.650642 72.816891) (xy 138.650642 72.81689) (xy 138.617641 72.767502)\r\n\t\t\t\t(xy 138.601032 72.708614) (xy 138.617641 72.657498) (xy 138.626723 72.643907) (xy 138.650642 72.608109)\r\n\t\t\t\t(xy 138.663 72.54598) (xy 138.663 72.37902) (xy 138.650642 72.316891) (xy 138.650642 72.31689) (xy 138.626127 72.280202)\r\n\t\t\t\t(xy 138.61764 72.2675) (xy 138.601032 72.208614) (xy 138.617641 72.157498) (xy 138.621067 72.152372)\r\n\t\t\t\t(xy 138.650642 72.108109) (xy 138.663 72.04598) (xy 138.663 71.87902) (xy 138.662523 71.874175)\r\n\t\t\t\t(xy 138.663745 71.874054) (xy 138.670285 71.818757) (xy 138.711813 71.773823) (xy 138.771821 71.76188)\r\n\t\t\t\t(xy 138.778685 71.762967) (xy 138.779019 71.762999) (xy 138.77902 71.763) (xy 138.779021 71.763)\r\n\t\t\t\t(xy 138.945979 71.763) (xy 138.94598 71.763) (xy 139.008109 71.750642) (xy 139.057499 71.71764)\r\n\t\t\t\t(xy 139.116386 71.701032) (xy 139.1675 71.71764) (xy 139.186011 71.730009) (xy 139.21689 71.750642)\r\n\t\t\t\t(xy 139.237411 71.754723) (xy 139.27902 71.763) (xy 139.279021 71.763) (xy 139.445979 71.763) (xy 139.44598 71.763)\r\n\t\t\t\t(xy 139.508109 71.750642) (xy 139.557499 71.71764) (xy 139.616386 71.701032) (xy 139.6675 71.71764)\r\n\t\t\t\t(xy 139.686011 71.730009) (xy 139.71689 71.750642) (xy 139.737411 71.754723) (xy 139.77902 71.763)\r\n\t\t\t\t(xy 139.779021 71.763) (xy 139.945979 71.763) (xy 139.94598 71.763) (xy 140.008109 71.750642) (xy 140.078565 71.703565)\r\n\t\t\t\t(xy 140.125642 71.633109) (xy 140.138 71.57098) (xy 140.138 70.87902) (xy 140.125642 70.816891)\r\n\t\t\t\t(xy 140.121911 70.807884) (xy 140.124754 70.806706) (xy 140.113 70.767939) (xy 140.113 70.754373)\r\n\t\t\t\t(xy 140.131907 70.696182) (xy 140.162499 70.668637) (xy 140.176613 70.660489) (xy 140.257607 70.579494)\r\n\t\t\t\t(xy 140.312122 70.551719) (xy 140.327609 70.5505) (xy 140.68023 70.5505) (xy 140.738421 70.569407)\r\n\t\t\t\t(xy 140.750234 70.579496) (xy 141.058004 70.887266) (xy 141.085781 70.941783) (xy 141.087 70.95727)\r\n\t\t\t\t(xy 141.087 71.570982) (xy 141.099357 71.633109) (xy 141.14622 71.703244) (xy 141.146435 71.703565)\r\n\t\t\t\t(xy 141.167501 71.717641) (xy 141.21689 71.750642) (xy 141.237411 71.754723) (xy 141.27902 71.763)\r\n\t\t\t\t(xy 141.279021 71.763) (xy 141.445979 71.763) (xy 141.44598 71.763) (xy 141.508109 71.750642) (xy 141.578565 71.703565)\r\n\t\t\t\t(xy 141.625642 71.633109) (xy 141.638 71.57098) (xy 141.638 70.87902) (xy 141.625642 70.816891)\r\n\t\t\t\t(xy 141.621911 70.807884) (xy 141.622304 70.807721) (xy 141.617586 70.796328) (xy 141.616732 70.796682)\r\n\t\t\t\t(xy 141.574864 70.695604) (xy 141.504397 70.625136) (xy 141.504397 70.625137) (xy 140.966896 70.087636)\r\n\t\t\t\t(xy 140.966894 70.087635) (xy 140.966893 70.087634) (xy 140.874828 70.0495) (xy 140.874827 70.0495)\r\n\t\t\t\t(xy 140.327609 70.0495) (xy 140.269418 70.030593) (xy 140.257611 70.020509) (xy 140.176613 69.939511)\r\n\t\t\t\t(xy 140.17661 69.939509) (xy 140.176608 69.939507) (xy 140.073889 69.880202) (xy 140.07389 69.880202)\r\n\t\t\t\t(xy 140.050318 69.873886) (xy 139.959309 69.8495) (xy 139.840691 69.8495) (xy 139.78467 69.864511)\r\n\t\t\t\t(xy 139.726109 69.880202) (xy 139.623391 69.939507) (xy 139.539507 70.023391) (xy 139.480202 70.126109)\r\n\t\t\t\t(xy 139.4495 70.240692) (xy 139.4495 70.356231) (xy 139.430593 70.414422) (xy 139.381093 70.450386)\r\n\t\t\t\t(xy 139.319907 70.450386) (xy 139.280496 70.426235) (xy 138.81914 69.964879) (xy 138.341897 69.487636)\r\n\t\t\t\t(xy 138.341895 69.487635) (xy 138.341894 69.487634) (xy 138.249829 69.4495) (xy 138.249828 69.4495)\r\n\t\t\t\t(xy 131.827609 69.4495) (xy 131.769418 69.430593) (xy 131.757611 69.420509) (xy 131.676613 69.339511)\r\n\t\t\t\t(xy 131.67661 69.339509) (xy 131.676608 69.339507) (xy 131.573889 69.280202) (xy 131.57389 69.280202)\r\n\t\t\t\t(xy 131.560351 69.276574) (xy 131.459309 69.2495) (xy 131.340691 69.2495) (xy 131.270567 69.268289)\r\n\t\t\t\t(xy 131.226109 69.280202) (xy 131.123391 69.339507) (xy 131.039507 69.423391) (xy 130.980202 69.526109)\r\n\t\t\t\t(xy 130.980201 69.526114) (xy 130.9495 69.640691) (xy 130.9495 69.759309) (xy 130.961797 69.805201)\r\n\t\t\t\t(xy 130.980202 69.87389) (xy 131.039507 69.976608) (xy 131.039509 69.97661) (xy 131.039511 69.976613)\r\n\t\t\t\t(xy 131.123387 70.060489) (xy 131.123389 70.06049) (xy 131.123391 70.060492) (xy 131.22611 70.119797)\r\n\t\t\t\t(xy 131.226111 70.119797) (xy 131.226114 70.119799) (xy 131.340691 70.1505) (xy 131.340693 70.1505)\r\n\t\t\t\t(xy 131.459307 70.1505) (xy 131.459309 70.1505) (xy 131.573886 70.119799) (xy 131.573888 70.119797)\r\n\t\t\t\t(xy 131.57389 70.119797) (xy 131.676608 70.060492) (xy 131.676608 70.060491) (xy 131.676613 70.060489)\r\n\t\t\t\t(xy 131.757607 69.979494) (xy 131.812122 69.951719) (xy 131.827609 69.9505) (xy 138.055231 69.9505)\r\n\t\t\t\t(xy 138.113422 69.969407) (xy 138.125235 69.979496) (xy 138.426235 70.280496) (xy 138.454012 70.335013)\r\n\t\t\t\t(xy 138.444441 70.395445) (xy 138.401176 70.43871) (xy 138.356231 70.4495) (xy 138.340691 70.4495)\r\n\t\t\t\t(xy 138.270567 70.468289) (xy 138.226109 70.480202) (xy 138.123391 70.539507) (xy 138.039507 70.623391)\r\n\t\t\t\t(xy 137.980202 70.726109) (xy 137.974031 70.749139) (xy 137.9495 70.840691) (xy 137.9495 70.959309)\r\n\t\t\t\t(xy 137.957492 70.989135) (xy 137.980201 71.073887) (xy 138.03976 71.177045) (xy 138.052481 71.236893)\r\n\t\t\t\t(xy 138.044301 71.255265) (xy 138.088942 71.248195) (xy 138.122956 71.26024) (xy 138.123386 71.260488)\r\n\t\t\t\t(xy 138.123387 71.260489) (xy 138.226114 71.319799) (xy 138.340691 71.3505) (xy 138.340693 71.3505)\r\n\t\t\t\t(xy 138.455231 71.3505) (xy 138.462828 71.352968) (xy 138.470717 71.351719) (xy 138.491372 71.362242)\r\n\t\t\t\t(xy 138.513422 71.369407) (xy 138.525234 71.379495) (xy 138.558004 71.412265) (xy 138.585781 71.466779)\r\n\t\t\t\t(xy 138.587 71.482268) (xy 138.587 71.570979) (xy 138.587477 71.575825) (xy 138.586257 71.575945)\r\n\t\t\t\t(xy 138.579707 71.631258) (xy 138.538171 71.676185) (xy 138.47816 71.688117) (xy 138.471324 71.687033)\r\n\t\t\t\t(xy 138.47098 71.687) (xy 138.470979 71.687) (xy 138.315479 71.687) (xy 138.257288 71.668093) (xy 138.245475 71.658004)\r\n\t\t\t\t(xy 138.003451 71.41598) (xy 137.975674 71.361463) (xy 137.982419 71.31887) (xy 137.974606 71.323382)\r\n\t\t\t\t(xy 137.913756 71.316986) (xy 137.884022 71.296551) (xy 137.247011 70.65954) (xy 137.247006 70.659537)\r\n\t\t\t\t(xy 137.231353 70.650499) (xy 137.231353 70.6505) (xy 137.178489 70.619979) (xy 137.178488 70.619978)\r\n\t\t\t\t(xy 137.178487 70.619978) (xy 137.102064 70.5995) (xy 137.102062 70.5995) (xy 125.514562 70.5995)\r\n\t\t\t\t(xy 125.435438 70.5995) (xy 125.388661 70.612033) (xy 125.359007 70.619979) (xy 125.290493 70.659536)\r\n\t\t\t\t(xy 125.290492 70.659537) (xy 122.32676 73.623267) (xy 122.272243 73.651044) (xy 122.241268 73.651044)\r\n\t\t\t\t(xy 122.231519 73.6495) (xy 120.968478 73.6495) (xy 120.968476 73.649501) (xy 120.8747 73.664352)\r\n\t\t\t\t(xy 120.874695 73.664354) (xy 120.761659 73.721949) (xy 120.671949 73.811659) (xy 120.614354 73.924695)\r\n\t\t\t\t(xy 120.5995 74.018478) (xy 97.5005 74.018478) (xy 97.5005 72.152372) (xy 102.6695 72.152372) (xy 102.6695 72.507619)\r\n\t\t\t\t(xy 102.669501 72.507622) (xy 102.67227 72.5315) (xy 102.705819 72.607479) (xy 102.715384 72.629141)\r\n\t\t\t\t(xy 102.790859 72.704616) (xy 102.809847 72.713) (xy 102.888501 72.74773) (xy 102.892749 72.748222)\r\n\t\t\t\t(xy 102.912377 72.7505) (xy 103.367622 72.750499) (xy 103.391498 72.74773) (xy 103.489141 72.704616)\r\n\t\t\t\t(xy 103.564616 72.629141) (xy 103.564617 72.629136) (xy 103.5698 72.621573) (xy 103.572293 72.62328)\r\n\t\t\t\t(xy 103.603047 72.588915) (xy 103.652809 72.5755) (xy 103.980501 72.5755) (xy 104.038692 72.594407)\r\n\t\t\t\t(xy 104.074656 72.643907) (xy 104.079501 72.6745) (xy 104.079501 73.169863) (xy 104.082414 73.19499)\r\n\t\t\t\t(xy 104.087676 73.206907) (xy 104.127794 73.297765) (xy 104.207235 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'73.377206) (xy 104.310009 73.422585)\r\n\t\t\t\t(xy 104.335135 73.4255) (xy 104.724864 73.425499) (xy 104.749991 73.422585) (xy 104.852765 73.377206)\r\n\t\t\t\t(xy 104.932206 73.297765) (xy 104.977585 73.194991) (xy 104.9805 73.169865) (xy 104.980499 71.430136)\r\n\t\t\t\t(xy 104.977585 71.405009) (xy 104.932206 71.302235) (xy 104.852765 71.222794) (xy 104.749991 71.177415)\r\n\t\t\t\t(xy 104.74999 71.177414) (xy 104.749988 71.177414) (xy 104.724868 71.1745) (xy 104.335139 71.1745)\r\n\t\t\t\t(xy 104.335136 71.174501) (xy 104.310009 71.177414) (xy 104.207235 71.222794) (xy 104.127794 71.302235)\r\n\t\t\t\t(xy 104.082414 71.405011) (xy 104.0795 71.43013) (xy 104.0795 71.9255) (xy 104.060593 71.983691)\r\n\t\t\t\t(xy 104.011093 72.019655) (xy 103.9805 72.0245) (xy 103.599265 72.0245) (xy 103.541074 72.005593)\r\n\t\t\t\t(xy 103.529262 71.995504) (xy 103.489141 71.955384) (xy 103.48914 71.955383) (xy 103.391498 71.912269)\r\n\t\t\t\t(xy 103.367626 71.9095) (xy 102.91238 71.9095) (xy 102.912377 71.909501) (xy 102.888499 71.91227)\r\n\t\t\t\t(xy 102.79086 71.955383) (xy 102.715383 72.03086) (xy 102.672269 72.128501) (xy 102.672269 72.128502)\r\n\t\t\t\t(xy 102.6695 72.152372) (xy 97.5005 72.152372) (xy 97.5005 68.915691) (xy 104.0495 68.915691) (xy 104.0495 69.034309)\r\n\t\t\t\t(xy 104.06667 69.098387) (xy 104.080202 69.14889) (xy 104.139507 69.251608) (xy 104.139509 69.25161)\r\n\t\t\t\t(xy 104.139511 69.251613) (xy 104.217896 69.329998) (xy 104.245672 69.384513) (xy 104.236101 69.444945)\r\n\t\t\t\t(xy 104.217897 69.47) (xy 104.161789 69.526109) (xy 104.139508 69.54839) (xy 104.139507 69.548391)\r\n\t\t\t\t(xy 104.080202 69.651109) (xy 104.080068 69.651609) (xy 104.0495 69.765691) (xy 104.0495 69.884309)\r\n\t\t\t\t(xy 104.067236 69.9505) (xy 104.080202 69.99889) (xy 104.139507 70.101608) (xy 104.139509 70.10161)\r\n\t\t\t\t(xy 104.139511 70.101613) (xy 104.223387 70.185489) (xy 104.223389 70.18549) (xy 104.223391 70.185492)\r\n\t\t\t\t(xy 104.32611 70.244797) (xy 104.326111 70.244797) (xy 104.326114 70.244799) (xy 104.440691 70.2755)\r\n\t\t\t\t(xy 104.440693 70.2755) (xy 104.559307 70.2755) (xy 104.559309 70.2755) (xy 104.673886 70.244799)\r\n\t\t\t\t(xy 104.673888 70.244797) (xy 104.67389 70.244797) (xy 104.776608 70.185492) (xy 104.776608 70.185491)\r\n\t\t\t\t(xy 104.776613 70.185489) (xy 104.860489 70.101613) (xy 104.875928 70.074872) (xy 104.919797 69.99889)\r\n\t\t\t\t(xy 104.919797 69.998888) (xy 104.919799 69.998886) (xy 104.933199 69.948876) (xy 104.966522 69.897564)\r\n\t\t\t\t(xy 105.023644 69.875637) (xy 105.028825 69.875501) (xy 105.353835 69.875501) (xy 105.361432 69.877969)\r\n\t\t\t\t(xy 105.369322 69.87672) (xy 105.389977 69.887244) (xy 105.412026 69.894408) (xy 105.423839 69.904497)\r\n\t\t\t\t(xy 105.484221 69.964879) (xy 105.511998 70.019396) (xy 105.504781 70.074872) (xy 105.472269 70.148501)\r\n\t\t\t\t(xy 105.472269 70.148502) (xy 105.4695 70.172372) (xy 105.4695 70.627619) (xy 105.469501 70.627622)\r\n\t\t\t\t(xy 105.47227 70.6515) (xy 105.502783 70.720603) (xy 105.515384 70.749141) (xy 105.590859 70.824616)\r\n\t\t\t\t(xy 105.590861 70.824617) (xy 105.596447 70.828443) (xy 105.606826 70.841925) (xy 105.620593 70.851928)\r\n\t\t\t\t(xy 105.625023 70.865564) (xy 105.63377 70.876926) (xy 105.6395 70.910119) (xy 105.6395 71.086638)\r\n\t\t\t\t(xy 105.620593 71.144829) (xy 105.580489 71.177202) (xy 105.477236 71.222793) (xy 105.397794 71.302235)\r\n\t\t\t\t(xy 105.352414 71.405011) (xy 105.3495 71.43013) (xy 105.3495 73.16986) (xy 105.349501 73.169863)\r\n\t\t\t\t(xy 105.352414 73.19499) (xy 105.357676 73.206907) (xy 105.397794 73.297765) (xy 105.477235 73.377206)\r\n\t\t\t\t(xy 105.580009 73.422585) (xy 105.605135 73.4255) (xy 105.994864 73.425499) (xy 106.019991 73.422585)\r\n\t\t\t\t(xy 106.122765 73.377206) (xy 106.202206 73.297765) (xy 106.247585 73.194991) (xy 106.2505 73.169865)\r\n\t\t\t\t(xy 106.250499 71.430136) (xy 106.247585 71.405009) (xy 106.202206 71.302235) (xy 106.202204 71.302233)\r\n\t\t\t\t(xy 106.202205 71.302233) (xy 106.169496 71.269524) (xy 106.141719 71.215007) (xy 106.1405 71.199521)\r\n\t\t\t\t(xy 106.1405 70.910119) (xy 106.159407 70.851928) (xy 106.183553 70.828443) (xy 106.189135 70.824618)\r\n\t\t\t\t(xy 106.189141 70.824616) (xy 106.264616 70.749141) (xy 106.30773 70.651498) (xy 106.30773 70.651494)\r\n\t\t\t\t(xy 106.309434 70.647636) (xy 106.350235 70.60204) (xy 106.410044 70.589135) (xy 106.466016 70.613849)\r\n\t\t\t\t(xy 106.490563 70.647635) (xy 106.535382 70.749138) (xy 106.535383 70.749139) (xy 106.535384 70.749141)\r\n\t\t\t\t(xy 106.610859 70.824616) (xy 106.610861 70.824617) (xy 106.616447 70.828443) (xy 106.65377 70.876926)\r\n\t\t\t\t(xy 106.6595 70.910119) (xy 106.6595 71.300134) (xy 106.651065 71.340121) (xy 106.622415 71.405008)\r\n\t\t\t\t(xy 106.622414 71.405011) (xy 106.6195 71.43013) (xy 106.6195 73.16986) (xy 106.619501 73.169863)\r\n\t\t\t\t(xy 106.622414 73.19499) (xy 106.627676 73.206907) (xy 106.667794 73.297765) (xy 106.747235 73.377206)\r\n\t\t\t\t(xy 106.850009 73.422585) (xy 106.875135 73.4255) (xy 107.264864 73.425499) (xy 107.289991 73.422585)\r\n\t\t\t\t(xy 107.392765 73.377206) (xy 107.472206 73.297765) (xy 107.517585 73.194991) (xy 107.5205 73.169865)\r\n\t\t\t\t(xy 107.520499 71.430136) (xy 107.520498 71.43013) (xy 107.8895 71.43013) (xy 107.8895 73.16986)\r\n\t\t\t\t(xy 107.889501 73.169863) (xy 107.892414 73.19499) (xy 107.897676 73.206907) (xy 107.937794 73.297765)\r\n\t\t\t\t(xy 108.017235 73.377206) (xy 108.120009 73.422585) (xy 108.145135 73.4255) (xy 108.534864 73.425499)\r\n\t\t\t\t(xy 108.559991 73.422585) (xy 108.662765 73.377206) (xy 108.742206 73.297765) (xy 108.787585 73.194991)\r\n\t\t\t\t(xy 108.7905 73.169865) (xy 108.790499 71.430136) (xy 108.787585 71.405009) (xy 108.742206 71.302235)\r\n\t\t\t\t(xy 108.662765 71.222794) (xy 108.559991 71.177415) (xy 108.55999 71.177414) (xy 108.559988 71.177414)\r\n\t\t\t\t(xy 108.534868 71.1745) (xy 108.145139 71.1745) (xy 108.145136 71.174501) (xy 108.120009 71.177414)\r\n\t\t\t\t(xy 108.017235 71.222794) (xy 107.937794 71.302235) (xy 107.892414 71.405011) (xy 107.8895 71.43013)\r\n\t\t\t\t(xy 107.520498 71.43013) (xy 107.517585 71.405009) (xy 107.472206 71.302235) (xy 107.392765 71.222794)\r\n\t\t\t\t(xy 107.289991 71.177415) (xy 107.28999 71.177414) (xy 107.289988 71.177414) (xy 107.264869 71.1745)\r\n\t\t\t\t(xy 107.264865 71.1745) (xy 107.2595 71.1745) (xy 107.244588 71.169655) (xy 107.228907 71.169655)\r\n\t\t\t\t(xy 107.216221 71.160438) (xy 107.201309 71.155593) (xy 107.192092 71.142907) (xy 107.179407 71.133691)\r\n\t\t\t\t(xy 107.174561 71.118778) (xy 107.165345 71.106093) (xy 107.1605 71.0755) (xy 107.1605 70.910119)\r\n\t\t\t\t(xy 107.179407 70.851928) (xy 107.203553 70.828443) (xy 107.209135 70.824618) (xy 107.209141 70.824616)\r\n\t\t\t\t(xy 107.284616 70.749141) (xy 107.32773 70.651498) (xy 107.3305 70.627623) (xy 107.330499 70.172378)\r\n\t\t\t\t(xy 107.32773 70.148502) (xy 107.317842 70.126109) (xy 107.288868 70.060489) (xy 107.284616 70.050859)\r\n\t\t\t\t(xy 107.209141 69.975384) (xy 107.18535 69.964879) (xy 107.111498 69.932269) (xy 107.087627 69.9295)\r\n\t\t\t\t(xy 107.087623 69.9295) (xy 106.834769 69.9295) (xy 106.776578 69.910593) (xy 106.764765 69.900504)\r\n\t\t\t\t(xy 106.298568 69.434307) (xy 105.826896 68.962635) (xy 105.826894 68.962634) (xy 105.826893 68.962633)\r\n\t\t\t\t(xy 105.734828 68.924499) (xy 105.734827 68.924499) (xy 105.028825 68.924499) (xy 104.970634 68.905592)\r\n\t\t\t\t(xy 104.93467 68.856092) (xy 104.933205 68.851146) (xy 104.919799 68.801114) (xy 104.919797 68.801111)\r\n\t\t\t\t(xy 104.919797 68.801109) (xy 104.860492 68.698391) (xy 104.86049 68.698389) (xy 104.860489 68.698387)\r\n\t\t\t\t(xy 104.776613 68.614511) (xy 104.77661 68.614509) (xy 104.776608 68.614507) (xy 104.673889 68.555202)\r\n\t\t\t\t(xy 104.67389 68.555202) (xy 104.648213 68.548322) (xy 104.559309 68.5245) (xy 104.440691 68.5245)\r\n\t\t\t\t(xy 104.370567 68.543289) (xy 104.326109 68.555202) (xy 104.223391 68.614507) (xy 104.139507 68.698391)\r\n\t\t\t\t(xy 104.080202 68.801109) (xy 104.080201 68.801114) (xy 104.0495 68.915691) (xy 97.5005 68.915691)\r\n\t\t\t\t(xy 97.5005 68.140691) (xy 105.5995 68.140691) (xy 105.5995 68.259309) (xy 105.626574 68.360351)\r\n\t\t\t\t(xy 105.630202 68.37389) (xy 105.689507 68.476608) (xy 105.689509 68.47661) (xy 105.689511 68.476613)\r\n\t\t\t\t(xy 105.773387 68.560489) (xy 105.773389 68.56049) (xy 105.773391 68.560492) (xy 105.87611 68.619797)\r\n\t\t\t\t(xy 105.876111 68.619797) (xy 105.876114 68.619799) (xy 105.990691 68.6505) (xy 105.990693 68.6505)\r\n\t\t\t\t(xy 106.109307 68.6505) (xy 106.1' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'09309 68.6505) (xy 106.223886 68.619799) (xy 106.223888 68.619797)\r\n\t\t\t\t(xy 106.22389 68.619797) (xy 106.326608 68.560492) (xy 106.326608 68.560491) (xy 106.326613 68.560489)\r\n\t\t\t\t(xy 106.410489 68.476613) (xy 106.469799 68.373886) (xy 106.5005 68.259309) (xy 106.5005 68.144767)\r\n\t\t\t\t(xy 106.502968 68.137169) (xy 106.501719 68.12928) (xy 106.512243 68.108624) (xy 106.519407 68.086576)\r\n\t\t\t\t(xy 106.529496 68.074763) (xy 106.574764 68.029495) (xy 106.629281 68.001718) (xy 106.644768 68.000499)\r\n\t\t\t\t(xy 106.838398 68.000499) (xy 106.8384 68.000499) (xy 106.915117 67.98524) (xy 107.002112 67.927112)\r\n\t\t\t\t(xy 107.06024 67.840117) (xy 107.0755 67.763401) (xy 107.075499 67.3366) (xy 107.06024 67.259883)\r\n\t\t\t\t(xy 107.060237 67.259879) (xy 107.002113 67.17289) (xy 107.002112 67.172888) (xy 106.915117 67.11476)\r\n\t\t\t\t(xy 106.915113 67.114759) (xy 106.83841 67.099501) (xy 106.838402 67.0995) (xy 106.838401 67.0995)\r\n\t\t\t\t(xy 106.8384 67.0995) (xy 106.561602 67.0995) (xy 106.561595 67.099501) (xy 106.484883 67.114759)\r\n\t\t\t\t(xy 106.484881 67.11476) (xy 106.39789 67.172886) (xy 106.397886 67.17289) (xy 106.339762 67.259879)\r\n\t\t\t\t(xy 106.339759 67.259886) (xy 106.324501 67.336588) (xy 106.3245 67.3366) (xy 106.3245 67.530231)\r\n\t\t\t\t(xy 106.322031 67.537828) (xy 106.323281 67.545718) (xy 106.312756 67.566373) (xy 106.305593 67.588422)\r\n\t\t\t\t(xy 106.295504 67.600235) (xy 106.175235 67.720504) (xy 106.120718 67.748281) (xy 106.105231 67.7495)\r\n\t\t\t\t(xy 105.990691 67.7495) (xy 105.920567 67.768289) (xy 105.876109 67.780202) (xy 105.773391 67.839507)\r\n\t\t\t\t(xy 105.689507 67.923391) (xy 105.630202 68.026109) (xy 105.630201 68.026114) (xy 105.5995 68.140691)\r\n\t\t\t\t(xy 97.5005 68.140691) (xy 97.5005 66.161599) (xy 104.4495 66.161599) (xy 104.4495 66.438397) (xy 104.449501 66.438404)\r\n\t\t\t\t(xy 104.464759 66.515116) (xy 104.46476 66.515118) (xy 104.498396 66.565457) (xy 104.522888 66.602112)\r\n\t\t\t\t(xy 104.609883 66.66024) (xy 104.686599 66.6755) (xy 105.008715 66.675499) (xy 105.066905 66.694406)\r\n\t\t\t\t(xy 105.09445 66.724996) (xy 105.108562 66.749437) (xy 105.108564 66.74944) (xy 105.19244 66.833316)\r\n\t\t\t\t(xy 105.192442 66.833317) (xy 105.192444 66.833319) (xy 105.295163 66.892624) (xy 105.295164 66.892624)\r\n\t\t\t\t(xy 105.295167 66.892626) (xy 105.409744 66.923327) (xy 105.409746 66.923327) (xy 105.52836 66.923327)\r\n\t\t\t\t(xy 105.528362 66.923327) (xy 105.642939 66.892626) (xy 105.642941 66.892624) (xy 105.642943 66.892624)\r\n\t\t\t\t(xy 105.745661 66.833319) (xy 105.745661 66.833318) (xy 105.745666 66.833316) (xy 105.825063 66.753919)\r\n\t\t\t\t(xy 107.6745 66.753919) (xy 107.6745 66.94608) (xy 107.711988 67.134542) (xy 107.711988 67.134544)\r\n\t\t\t\t(xy 107.785521 67.31207) (xy 107.785521 67.312071) (xy 107.892279 67.471844) (xy 107.89228 67.471845)\r\n\t\t\t\t(xy 108.028155 67.60772) (xy 108.187927 67.714477) (xy 108.187928 67.714477) (xy 108.187929 67.714478)\r\n\t\t\t\t(xy 108.228146 67.731136) (xy 108.365457 67.788012) (xy 108.553922 67.8255) (xy 108.553923 67.8255)\r\n\t\t\t\t(xy 108.746077 67.8255) (xy 108.746078 67.8255) (xy 108.934543 67.788012) (xy 109.112073 67.714477)\r\n\t\t\t\t(xy 109.271845 67.60772) (xy 109.40772 67.471845) (xy 109.514477 67.312073) (xy 109.588012 67.134543)\r\n\t\t\t\t(xy 109.6255 66.946078) (xy 109.6255 66.753922) (xy 109.588012 66.565457) (xy 109.514478 66.387929)\r\n\t\t\t\t(xy 109.514478 66.387928) (xy 109.40772 66.228155) (xy 109.271844 66.092279) (xy 109.11207 65.985521)\r\n\t\t\t\t(xy 108.934543 65.911988) (xy 108.74608 65.8745) (xy 108.746078 65.8745) (xy 108.553922 65.8745)\r\n\t\t\t\t(xy 108.553919 65.8745) (xy 108.365457 65.911988) (xy 108.365455 65.911988) (xy 108.187929 65.985521)\r\n\t\t\t\t(xy 108.187928 65.985521) (xy 108.028155 66.092279) (xy 107.892279 66.228155) (xy 107.785521 66.387928)\r\n\t\t\t\t(xy 107.785521 66.387929) (xy 107.711988 66.565455) (xy 107.711988 66.565457) (xy 107.6745 66.753919)\r\n\t\t\t\t(xy 105.825063 66.753919) (xy 105.829542 66.74944) (xy 105.888852 66.646713) (xy 105.919553 66.532136)\r\n\t\t\t\t(xy 105.919553 66.413518) (xy 105.888852 66.298941) (xy 105.88885 66.298938) (xy 105.88885 66.298936)\r\n\t\t\t\t(xy 105.829545 66.196218) (xy 105.829543 66.196216) (xy 105.829542 66.196214) (xy 105.745666 66.112338)\r\n\t\t\t\t(xy 105.745663 66.112336) (xy 105.745661 66.112334) (xy 105.642942 66.053029) (xy 105.642943 66.053029)\r\n\t\t\t\t(xy 105.627003 66.048758) (xy 105.528362 66.022327) (xy 105.409744 66.022327) (xy 105.409739 66.022327)\r\n\t\t\t\t(xy 105.379621 66.030397) (xy 105.31852 66.027193) (xy 105.283997 66.004774) (xy 105.277113 65.99789)\r\n\t\t\t\t(xy 105.277112 65.997888) (xy 105.190117 65.93976) (xy 105.190113 65.939759) (xy 105.11341 65.924501)\r\n\t\t\t\t(xy 105.113402 65.9245) (xy 105.113401 65.9245) (xy 105.1134 65.9245) (xy 104.686602 65.9245) (xy 104.686595 65.924501)\r\n\t\t\t\t(xy 104.609883 65.939759) (xy 104.609881 65.93976) (xy 104.52289 65.997886) (xy 104.522886 65.99789)\r\n\t\t\t\t(xy 104.464762 66.084879) (xy 104.464759 66.084886) (xy 104.449501 66.161589) (xy 104.4495 66.161599)\r\n\t\t\t\t(xy 97.5005 66.161599) (xy 97.5005 66.027609) (xy 97.519407 65.969418) (xy 97.52949 65.957611) (xy 97.610489 65.876613)\r\n\t\t\t\t(xy 97.669799 65.773886) (xy 97.7005 65.659309) (xy 97.7005 65.540691) (xy 97.669799 65.426114)\r\n\t\t\t\t(xy 97.669797 65.426111) (xy 97.669797 65.426109) (xy 97.610492 65.323391) (xy 97.61049 65.323389)\r\n\t\t\t\t(xy 97.610489 65.323387) (xy 97.526613 65.239511) (xy 97.52661 65.239509) (xy 97.526608 65.239507)\r\n\t\t\t\t(xy 97.423889 65.180202) (xy 97.42389 65.180202) (xy 97.410351 65.176574) (xy 97.309309 65.1495)\r\n\t\t\t\t(xy 97.190691 65.1495) (xy 97.120567 65.168289) (xy 97.076109 65.180202) (xy 96.973391 65.239507)\r\n\t\t\t\t(xy 96.889507 65.323391) (xy 96.830202 65.426109) (xy 96.813037 65.490169) (xy 96.7995 65.540691)\r\n\t\t\t\t(xy 96.7995 65.659309) (xy 96.808284 65.69209) (xy 96.830202 65.77389) (xy 96.889507 65.876608)\r\n\t\t\t\t(xy 96.889509 65.87661) (xy 96.889511 65.876613) (xy 96.970505 65.957607) (xy 96.998281 66.012122)\r\n\t\t\t\t(xy 96.9995 66.027609) (xy 96.9995 74.938408) (xy 96.980593 74.996599) (xy 96.950003 75.024143)\r\n\t\t\t\t(xy 96.923389 75.039509) (xy 96.839507 75.123391) (xy 96.780202 75.226109) (xy 96.771581 75.258285)\r\n\t\t\t\t(xy 96.7495 75.340691) (xy 83.198824 75.340691) (xy 83.197585 75.330009) (xy 83.192675 75.318888)\r\n\t\t\t\t(xy 83.152206 75.227235) (xy 83.072765 75.147794) (xy 82.969991 75.102415) (xy 82.96999 75.102414)\r\n\t\t\t\t(xy 82.969988 75.102414) (xy 82.944869 75.0995) (xy 82.944865 75.0995) (xy 82.332268 75.0995) (xy 82.274077 75.080593)\r\n\t\t\t\t(xy 82.262264 75.070504) (xy 81.937043 74.745283) (xy 81.579397 74.387636) (xy 81.579395 74.387635)\r\n\t\t\t\t(xy 81.579394 74.387634) (xy 81.487329 74.3495) (xy 81.487328 74.3495) (xy 80.255179 74.3495) (xy 80.196988 74.330593)\r\n\t\t\t\t(xy 80.164615 74.290489) (xy 80.152185 74.26234) (xy 80.147116 74.250859) (xy 80.071641 74.175384)\r\n\t\t\t\t(xy 80.071639 74.175383) (xy 79.973998 74.132269) (xy 79.950126 74.1295) (xy 79.59488 74.1295) (xy 79.594877 74.129501)\r\n\t\t\t\t(xy 79.570999 74.13227) (xy 79.47336 74.175383) (xy 79.397883 74.25086) (xy 79.353064 74.352364)\r\n\t\t\t\t(xy 79.312263 74.397959) (xy 79.252454 74.410864) (xy 79.196482 74.386149) (xy 79.171936 74.352364)\r\n\t\t\t\t(xy 79.134616 74.267845) (xy 79.127116 74.250859) (xy 79.051641 74.175384) (xy 79.051639 74.175383)\r\n\t\t\t\t(xy 78.953998 74.132269) (xy 78.930126 74.1295) (xy 78.57488 74.1295) (xy 78.574877 74.129501) (xy 78.550999 74.13227)\r\n\t\t\t\t(xy 78.45336 74.175383) (xy 78.377883 74.25086) (xy 78.360385 74.290489) (xy 78.343182 74.309713)\r\n\t\t\t\t(xy 78.328012 74.330593) (xy 78.323056 74.332202) (xy 78.319584 74.336084) (xy 78.269821 74.3495)\r\n\t\t\t\t(xy 78.237 74.3495) (xy 78.178809 74.330593) (xy 78.142845 74.281093) (xy 78.138 74.2505) (xy 78.138 74.152721)\r\n\t\t\t\t(xy 78.130934 74.108109) (xy 78.123378 74.060402) (xy 78.06668 73.949127) (xy 77.978373 73.86082)\r\n\t\t\t\t(xy 77.97837 73.860818) (xy 77.978371 73.860818) (xy 77.867101 73.804123) (xy 77.867098 73.804122)\r\n\t\t\t\t(xy 77.844017 73.800466) (xy 77.774779 73.7895) (xy 77.774776 73.7895) (xy 77.225224 73.7895) (xy 77.225221 73.7895)\r\n\t\t\t\t(xy 77.132902 73.804122) (xy 77.132898 73.804123) (xy 77.021629 73.860818) (xy 76.933318 73.949129)\r\n\t\t\t\t(xy 76.876623 74.060398) (xy 76.876622 74.060402) (xy 76.862 74.152721) (xy 76.263 74.152721) (xy 76.255934 74.108109)\r\n\t\t\t\t(xy 76.248378 74.06040' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'2) (xy 76.19168 73.949127) (xy 76.103373 73.86082) (xy 76.10337 73.860818)\r\n\t\t\t\t(xy 76.103371 73.860818) (xy 75.992101 73.804123) (xy 75.992098 73.804122) (xy 75.969017 73.800466)\r\n\t\t\t\t(xy 75.899779 73.7895) (xy 75.899776 73.7895) (xy 75.350224 73.7895) (xy 75.350221 73.7895) (xy 75.257902 73.804122)\r\n\t\t\t\t(xy 75.257898 73.804123) (xy 75.146629 73.860818) (xy 75.058318 73.949129) (xy 75.001623 74.060398)\r\n\t\t\t\t(xy 75.001622 74.060402) (xy 74.987 74.152721) (xy 74.0005 74.152721) (xy 74.0005 72.577372) (xy 87.8645 72.577372)\r\n\t\t\t\t(xy 87.8645 72.932619) (xy 87.864501 72.932622) (xy 87.86727 72.9565) (xy 87.91011 73.05352) (xy 87.910384 73.054141)\r\n\t\t\t\t(xy 87.985859 73.129616) (xy 88.03468 73.151173) (xy 88.083501 73.17273) (xy 88.087749 73.173222)\r\n\t\t\t\t(xy 88.107377 73.1755) (xy 88.562622 73.175499) (xy 88.586498 73.17273) (xy 88.684141 73.129616)\r\n\t\t\t\t(xy 88.759616 73.054141) (xy 88.80273 72.956498) (xy 88.804685 72.949313) (xy 88.807885 72.950183)\r\n\t\t\t\t(xy 88.827429 72.907492) (xy 88.880734 72.877454) (xy 88.900305 72.8755) (xy 89.145501 72.8755)\r\n\t\t\t\t(xy 89.203692 72.894407) (xy 89.239656 72.943907) (xy 89.244501 72.9745) (xy 89.244501 73.494863)\r\n\t\t\t\t(xy 89.247414 73.51999) (xy 89.25889 73.54598) (xy 89.292794 73.622765) (xy 89.372235 73.702206)\r\n\t\t\t\t(xy 89.475009 73.747585) (xy 89.500135 73.7505) (xy 89.889864 73.750499) (xy 89.914991 73.747585)\r\n\t\t\t\t(xy 90.017765 73.702206) (xy 90.097206 73.622765) (xy 90.142585 73.519991) (xy 90.1455 73.494865)\r\n\t\t\t\t(xy 90.145499 71.755136) (xy 90.145498 71.75513) (xy 90.5145 71.75513) (xy 90.5145 73.49486) (xy 90.514501 73.494863)\r\n\t\t\t\t(xy 90.517414 73.51999) (xy 90.52889 73.54598) (xy 90.562794 73.622765) (xy 90.642235 73.702206)\r\n\t\t\t\t(xy 90.745009 73.747585) (xy 90.770135 73.7505) (xy 91.159864 73.750499) (xy 91.184991 73.747585)\r\n\t\t\t\t(xy 91.287765 73.702206) (xy 91.367206 73.622765) (xy 91.412585 73.519991) (xy 91.4155 73.494865)\r\n\t\t\t\t(xy 91.415499 71.755136) (xy 91.412585 71.730009) (xy 91.367206 71.627235) (xy 91.367204 71.627233)\r\n\t\t\t\t(xy 91.362021 71.619666) (xy 91.363837 71.618422) (xy 91.341717 71.574996) (xy 91.3405 71.559521)\r\n\t\t\t\t(xy 91.3405 71.310119) (xy 91.359407 71.251928) (xy 91.383553 71.228443) (xy 91.389135 71.224618)\r\n\t\t\t\t(xy 91.389141 71.224616) (xy 91.464616 71.149141) (xy 91.50773 71.051498) (xy 91.50773 71.051494)\r\n\t\t\t\t(xy 91.509434 71.047636) (xy 91.550235 71.00204) (xy 91.610044 70.989135) (xy 91.666016 71.013849)\r\n\t\t\t\t(xy 91.690563 71.047635) (xy 91.735382 71.149138) (xy 91.735383 71.149139) (xy 91.735384 71.149141)\r\n\t\t\t\t(xy 91.810859 71.224616) (xy 91.810861 71.224617) (xy 91.816447 71.228443) (xy 91.85377 71.276926)\r\n\t\t\t\t(xy 91.8595 71.310119) (xy 91.8595 71.559521) (xy 91.840593 71.617712) (xy 91.834148 71.625258)\r\n\t\t\t\t(xy 91.832795 71.627233) (xy 91.832794 71.627234) (xy 91.832794 71.627235) (xy 91.811181 71.676185)\r\n\t\t\t\t(xy 91.787414 71.730011) (xy 91.7845 71.75513) (xy 91.7845 73.49486) (xy 91.784501 73.494863) (xy 91.787414 73.51999)\r\n\t\t\t\t(xy 91.79889 73.54598) (xy 91.832794 73.622765) (xy 91.912235 73.702206) (xy 92.015009 73.747585)\r\n\t\t\t\t(xy 92.040135 73.7505) (xy 92.429864 73.750499) (xy 92.454991 73.747585) (xy 92.557765 73.702206)\r\n\t\t\t\t(xy 92.637206 73.622765) (xy 92.682585 73.519991) (xy 92.6855 73.494865) (xy 92.685499 71.755136)\r\n\t\t\t\t(xy 92.685498 71.75513) (xy 93.0545 71.75513) (xy 93.0545 73.49486) (xy 93.054501 73.494863) (xy 93.057414 73.51999)\r\n\t\t\t\t(xy 93.06889 73.54598) (xy 93.102794 73.622765) (xy 93.182235 73.702206) (xy 93.285009 73.747585)\r\n\t\t\t\t(xy 93.310135 73.7505) (xy 93.699864 73.750499) (xy 93.724991 73.747585) (xy 93.827765 73.702206)\r\n\t\t\t\t(xy 93.907206 73.622765) (xy 93.952585 73.519991) (xy 93.9555 73.494865) (xy 93.955499 71.755136)\r\n\t\t\t\t(xy 93.952585 71.730009) (xy 93.907206 71.627235) (xy 93.827765 71.547794) (xy 93.724991 71.502415)\r\n\t\t\t\t(xy 93.72499 71.502414) (xy 93.724988 71.502414) (xy 93.699868 71.4995) (xy 93.310139 71.4995) (xy 93.310136 71.499501)\r\n\t\t\t\t(xy 93.285009 71.502414) (xy 93.182235 71.547794) (xy 93.102794 71.627235) (xy 93.057414 71.730011)\r\n\t\t\t\t(xy 93.0545 71.75513) (xy 92.685498 71.75513) (xy 92.682585 71.730009) (xy 92.637206 71.627235)\r\n\t\t\t\t(xy 92.557765 71.547794) (xy 92.454991 71.502415) (xy 92.45499 71.502414) (xy 92.454988 71.502414)\r\n\t\t\t\t(xy 92.448089 71.501614) (xy 92.438956 71.497429) (xy 92.428907 71.497429) (xy 92.411744 71.484959)\r\n\t\t\t\t(xy 92.392465 71.476125) (xy 92.387536 71.467371) (xy 92.379407 71.461465) (xy 92.372851 71.44129)\r\n\t\t\t\t(xy 92.362447 71.42281) (xy 92.3605 71.403274) (xy 92.3605 71.310119) (xy 92.379407 71.251928) (xy 92.403553 71.228443)\r\n\t\t\t\t(xy 92.409135 71.224618) (xy 92.409141 71.224616) (xy 92.484616 71.149141) (xy 92.52773 71.051498)\r\n\t\t\t\t(xy 92.5305 71.027623) (xy 92.530499 70.572378) (xy 92.52773 70.548502) (xy 92.495217 70.474869)\r\n\t\t\t\t(xy 92.492378 70.447031) (xy 92.488001 70.419394) (xy 92.489299 70.416846) (xy 92.489009 70.414002)\r\n\t\t\t\t(xy 92.515779 70.364878) (xy 92.576161 70.304497) (xy 92.630678 70.27672) (xy 92.646164 70.275501)\r\n\t\t\t\t(xy 92.771175 70.275501) (xy 92.829366 70.294408) (xy 92.86533 70.343908) (xy 92.866794 70.348853)\r\n\t\t\t\t(xy 92.873904 70.375384) (xy 92.880202 70.39889) (xy 92.939507 70.501608) (xy 92.939509 70.50161)\r\n\t\t\t\t(xy 92.939511 70.501613) (xy 93.023387 70.585489) (xy 93.023389 70.58549) (xy 93.023391 70.585492)\r\n\t\t\t\t(xy 93.12611 70.644797) (xy 93.126111 70.644797) (xy 93.126114 70.644799) (xy 93.240691 70.6755)\r\n\t\t\t\t(xy 93.240693 70.6755) (xy 93.359307 70.6755) (xy 93.359309 70.6755) (xy 93.473886 70.644799) (xy 93.473888 70.644797)\r\n\t\t\t\t(xy 93.47389 70.644797) (xy 93.576608 70.585492) (xy 93.576608 70.585491) (xy 93.576613 70.585489)\r\n\t\t\t\t(xy 93.660489 70.501613) (xy 93.675928 70.474872) (xy 93.719797 70.39889) (xy 93.719797 70.398888)\r\n\t\t\t\t(xy 93.719799 70.398886) (xy 93.7505 70.284309) (xy 93.7505 70.165691) (xy 93.719799 70.051114)\r\n\t\t\t\t(xy 93.719797 70.051111) (xy 93.719797 70.051109) (xy 93.660492 69.948391) (xy 93.66049 69.948389)\r\n\t\t\t\t(xy 93.660489 69.948387) (xy 93.582103 69.870001) (xy 93.554328 69.815487) (xy 93.563899 69.755055)\r\n\t\t\t\t(xy 93.582102 69.729999) (xy 93.660489 69.651613) (xy 93.719799 69.548886) (xy 93.7505 69.434309)\r\n\t\t\t\t(xy 93.7505 69.315691) (xy 93.719799 69.201114) (xy 93.719797 69.201111) (xy 93.719797 69.201109)\r\n\t\t\t\t(xy 93.660492 69.098391) (xy 93.66049 69.098389) (xy 93.660489 69.098387) (xy 93.576613 69.014511)\r\n\t\t\t\t(xy 93.57661 69.014509) (xy 93.576608 69.014507) (xy 93.473889 68.955202) (xy 93.47389 68.955202)\r\n\t\t\t\t(xy 93.460351 68.951574) (xy 93.359309 68.9245) (xy 93.240691 68.9245) (xy 93.170567 68.943289)\r\n\t\t\t\t(xy 93.126109 68.955202) (xy 93.023391 69.014507) (xy 92.939507 69.098391) (xy 92.880202 69.201109)\r\n\t\t\t\t(xy 92.880201 69.201114) (xy 92.8668 69.251123) (xy 92.833478 69.302436) (xy 92.776356 69.324363)\r\n\t\t\t\t(xy 92.771175 69.324499) (xy 92.265172 69.324499) (xy 92.173104 69.362634) (xy 91.235232 70.300504)\r\n\t\t\t\t(xy 91.180716 70.328281) (xy 91.165229 70.3295) (xy 90.91238 70.3295) (xy 90.912377 70.329501) (xy 90.888499 70.33227)\r\n\t\t\t\t(xy 90.79086 70.375383) (xy 90.715383 70.45086) (xy 90.672269 70.548501) (xy 90.672269 70.548502)\r\n\t\t\t\t(xy 90.6695 70.572372) (xy 90.6695 71.027619) (xy 90.669501 71.027622) (xy 90.67227 71.0515) (xy 90.696376 71.106093)\r\n\t\t\t\t(xy 90.715384 71.149141) (xy 90.790859 71.224616) (xy 90.790861 71.224617) (xy 90.796447 71.228443)\r\n\t\t\t\t(xy 90.806826 71.241925) (xy 90.820593 71.251928) (xy 90.825023 71.265564) (xy 90.83377 71.276926)\r\n\t\t\t\t(xy 90.8395 71.310119) (xy 90.8395 71.403274) (xy 90.820593 71.461465) (xy 90.771093 71.497429)\r\n\t\t\t\t(xy 90.751907 71.501615) (xy 90.745009 71.502415) (xy 90.642235 71.547794) (xy 90.562794 71.627235)\r\n\t\t\t\t(xy 90.517414 71.730011) (xy 90.5145 71.75513) (xy 90.145498 71.75513) (xy 90.142585 71.730009)\r\n\t\t\t\t(xy 90.097206 71.627235) (xy 90.017765 71.547794) (xy 89.914991 71.502415) (xy 89.91499 71.502414)\r\n\t\t\t\t(xy 89.914988 71.502414) (xy 89.889868 71.4995) (xy 89.500139 71.4995) (xy 89.500136 71.499501)\r\n\t\t\t\t(xy 89.475009 71.502414) (xy 89.372235 71.547794) (xy 89.292794 71.627235) (xy 89.247414 71.730011)\r\n\t\t\t\t(xy 89.2445 71.75513) (xy 89.2445 72.2755) (xy 89.225593 72.333691) (xy 89.176093 72.369655) (xy 89.1455 72.3745)\r\n\t\t\t\t(xy 88.691699 72.3745)' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' (xy 88.651711 72.366064) (xy 88.5865 72.33727) (xy 88.586497 72.337269) (xy 88.562626 72.3345)\r\n\t\t\t\t(xy 88.10738 72.3345) (xy 88.107377 72.334501) (xy 88.083499 72.33727) (xy 87.98586 72.380383) (xy 87.910383 72.45586)\r\n\t\t\t\t(xy 87.867269 72.553501) (xy 87.867269 72.553502) (xy 87.8645 72.577372) (xy 74.0005 72.577372)\r\n\t\t\t\t(xy 74.0005 68.548322) (xy 74.019407 68.490131) (xy 74.029496 68.478318) (xy 75.753895 66.753919)\r\n\t\t\t\t(xy 88.8745 66.753919) (xy 88.8745 66.94608) (xy 88.911988 67.134542) (xy 88.911988 67.134544) (xy 88.985521 67.31207)\r\n\t\t\t\t(xy 88.985521 67.312071) (xy 89.092279 67.471844) (xy 89.09228 67.471845) (xy 89.228155 67.60772)\r\n\t\t\t\t(xy 89.387927 67.714477) (xy 89.387928 67.714477) (xy 89.387929 67.714478) (xy 89.428146 67.731136)\r\n\t\t\t\t(xy 89.565457 67.788012) (xy 89.753922 67.8255) (xy 89.753923 67.8255) (xy 89.946077 67.8255) (xy 89.946078 67.8255)\r\n\t\t\t\t(xy 90.134543 67.788012) (xy 90.312073 67.714477) (xy 90.471845 67.60772) (xy 90.60772 67.471845)\r\n\t\t\t\t(xy 90.714477 67.312073) (xy 90.788012 67.134543) (xy 90.8255 66.946078) (xy 90.8255 66.753922)\r\n\t\t\t\t(xy 90.788012 66.565457) (xy 90.714478 66.387929) (xy 90.714478 66.387928) (xy 90.60772 66.228155)\r\n\t\t\t\t(xy 90.471844 66.092279) (xy 90.31207 65.985521) (xy 90.134543 65.911988) (xy 89.94608 65.8745)\r\n\t\t\t\t(xy 89.946078 65.8745) (xy 89.753922 65.8745) (xy 89.753919 65.8745) (xy 89.565457 65.911988) (xy 89.565455 65.911988)\r\n\t\t\t\t(xy 89.387929 65.985521) (xy 89.387928 65.985521) (xy 89.228155 66.092279) (xy 89.092279 66.228155)\r\n\t\t\t\t(xy 88.985521 66.387928) (xy 88.985521 66.387929) (xy 88.911988 66.565455) (xy 88.911988 66.565457)\r\n\t\t\t\t(xy 88.8745 66.753919) (xy 75.753895 66.753919) (xy 80.146215 62.361599) (xy 104.3995 62.361599)\r\n\t\t\t\t(xy 104.3995 62.638397) (xy 104.399501 62.638404) (xy 104.414759 62.715116) (xy 104.41476 62.715118)\r\n\t\t\t\t(xy 104.472494 62.801523) (xy 104.472888 62.802112) (xy 104.559883 62.86024) (xy 104.636599 62.8755)\r\n\t\t\t\t(xy 104.83023 62.875499) (xy 104.88842 62.894406) (xy 104.900234 62.904495) (xy 105.320504 63.324765)\r\n\t\t\t\t(xy 105.348281 63.379282) (xy 105.3495 63.394769) (xy 105.3495 63.97239) (xy 105.347031 63.979988)\r\n\t\t\t\t(xy 105.348281 63.987881) (xy 105.337756 64.008535) (xy 105.330593 64.030581) (xy 105.320501 64.042396)\r\n\t\t\t\t(xy 105.307277 64.055619) (xy 105.252759 64.083395) (xy 105.192328 64.073821) (xy 105.182275 64.067928)\r\n\t\t\t\t(xy 105.140123 64.039763) (xy 105.140119 64.039761) (xy 105.140117 64.03976) (xy 105.140114 64.039759)\r\n\t\t\t\t(xy 105.140113 64.039759) (xy 105.06341 64.024501) (xy 105.063402 64.0245) (xy 105.063401 64.0245)\r\n\t\t\t\t(xy 105.0634 64.0245) (xy 104.636602 64.0245) (xy 104.636595 64.024501) (xy 104.559883 64.039759)\r\n\t\t\t\t(xy 104.559881 64.03976) (xy 104.47289 64.097886) (xy 104.472886 64.09789) (xy 104.414762 64.184879)\r\n\t\t\t\t(xy 104.414759 64.184886) (xy 104.399501 64.261589) (xy 104.3995 64.261599) (xy 104.3995 64.538397)\r\n\t\t\t\t(xy 104.399501 64.538404) (xy 104.414759 64.615116) (xy 104.41476 64.615118) (xy 104.472494 64.701523)\r\n\t\t\t\t(xy 104.472888 64.702112) (xy 104.559883 64.76024) (xy 104.619181 64.772035) (xy 104.669868 64.799128)\r\n\t\t\t\t(xy 104.95699 65.086249) (xy 104.956993 65.086253) (xy 104.956994 65.086253) (xy 104.962636 65.091895)\r\n\t\t\t\t(xy 104.962637 65.091897) (xy 105.033104 65.162364) (xy 105.033105 65.162364) (xy 105.033106 65.162365)\r\n\t\t\t\t(xy 105.125172 65.2005) (xy 105.125173 65.2005) (xy 105.877647 65.2005) (xy 105.926652 65.180201)\r\n\t\t\t\t(xy 105.969715 65.162364) (xy 106.344272 64.787805) (xy 106.398787 64.760029) (xy 106.401357 64.759656)\r\n\t\t\t\t(xy 106.403735 64.759342) (xy 106.403749 64.759342) (xy 106.518326 64.728641) (xy 106.518328 64.728639)\r\n\t\t\t\t(xy 106.51833 64.728639) (xy 106.621048 64.669334) (xy 106.621048 64.669333) (xy 106.621053 64.669331)\r\n\t\t\t\t(xy 106.704929 64.585455) (xy 106.707448 64.581093) (xy 106.734536 64.534174) (xy 106.757876 64.493749)\r\n\t\t\t\t(xy 112.07 64.493749) (xy 112.07 64.70625) (xy 112.10324 64.916121) (xy 112.168904 65.118215) (xy 112.265376 65.307553)\r\n\t\t\t\t(xy 112.26538 65.307559) (xy 112.304728 65.361716) (xy 112.304729 65.361716) (xy 112.937037 64.729407)\r\n\t\t\t\t(xy 112.954075 64.792993) (xy 113.019901 64.907007) (xy 113.112993 65.000099) (xy 113.227007 65.065925)\r\n\t\t\t\t(xy 113.290589 65.082962) (xy 112.658282 65.715269) (xy 112.658282 65.71527) (xy 112.71244 65.754619)\r\n\t\t\t\t(xy 112.712446 65.754623) (xy 112.901784 65.851095) (xy 113.103878 65.916759) (xy 113.300856 65.947957)\r\n\t\t\t\t(xy 113.355372 65.975734) (xy 113.38315 66.030251) (xy 113.373579 66.090683) (xy 113.330314 66.133948)\r\n\t\t\t\t(xy 113.304684 66.142836) (xy 113.128163 66.177949) (xy 112.946086 66.253367) (xy 112.782218 66.362861)\r\n\t\t\t\t(xy 112.782214 66.362864) (xy 112.642864 66.502214) (xy 112.642861 66.502218) (xy 112.533367 66.666086)\r\n\t\t\t\t(xy 112.457949 66.848163) (xy 112.457949 66.848165) (xy 112.4195 67.041456) (xy 112.4195 67.238543)\r\n\t\t\t\t(xy 112.457949 67.431834) (xy 112.457949 67.431836) (xy 112.533367 67.613913) (xy 112.533368 67.613914)\r\n\t\t\t\t(xy 112.642861 67.777782) (xy 112.782218 67.917139) (xy 112.946086 68.026632) (xy 113.128165 68.102051)\r\n\t\t\t\t(xy 113.321459 68.1405) (xy 113.32146 68.1405) (xy 113.51854 68.1405) (xy 113.518541 68.1405) (xy 113.711835 68.102051)\r\n\t\t\t\t(xy 113.893914 68.026632) (xy 114.057782 67.917139) (xy 114.197139 67.777782) (xy 114.306632 67.613914)\r\n\t\t\t\t(xy 114.382051 67.431835) (xy 114.4205 67.238541) (xy 114.4205 67.041459) (xy 114.382051 66.848165)\r\n\t\t\t\t(xy 114.306632 66.666086) (xy 114.197139 66.502218) (xy 114.057782 66.362861) (xy 113.893914 66.253368)\r\n\t\t\t\t(xy 113.893915 66.253368) (xy 113.893913 66.253367) (xy 113.711836 66.177949) (xy 113.535315 66.142836)\r\n\t\t\t\t(xy 113.481932 66.112939) (xy 113.456316 66.057373) (xy 113.468253 65.997364) (xy 113.513183 65.955832)\r\n\t\t\t\t(xy 113.539143 65.947957) (xy 113.736121 65.916759) (xy 113.938215 65.851095) (xy 114.127556 65.75462)\r\n\t\t\t\t(xy 114.181716 65.71527) (xy 113.549408 65.082962) (xy 113.612993 65.065925) (xy 113.727007 65.000099)\r\n\t\t\t\t(xy 113.820099 64.907007) (xy 113.885925 64.792993) (xy 113.902962 64.729408) (xy 114.53527 65.361716)\r\n\t\t\t\t(xy 114.574622 65.307554) (xy 114.601789 65.254235) (xy 114.645053 65.21097) (xy 114.705485 65.201398)\r\n\t\t\t\t(xy 114.760002 65.229175) (xy 114.778209 65.254234) (xy 114.805376 65.307553) (xy 114.80538 65.307559)\r\n\t\t\t\t(xy 114.844728 65.361716) (xy 114.844729 65.361716) (xy 115.477037 64.729407) (xy 115.494075 64.792993)\r\n\t\t\t\t(xy 115.559901 64.907007) (xy 115.652993 65.000099) (xy 115.767007 65.065925) (xy 115.830589 65.082962)\r\n\t\t\t\t(xy 115.198282 65.715269) (xy 115.198282 65.71527) (xy 115.25244 65.754619) (xy 115.252446 65.754623)\r\n\t\t\t\t(xy 115.441784 65.851095) (xy 115.643878 65.916759) (xy 115.840856 65.947957) (xy 115.895372 65.975734)\r\n\t\t\t\t(xy 115.92315 66.030251) (xy 115.913579 66.090683) (xy 115.870314 66.133948) (xy 115.844684 66.142836)\r\n\t\t\t\t(xy 115.668163 66.177949) (xy 115.486086 66.253367) (xy 115.322218 66.362861) (xy 115.322214 66.362864)\r\n\t\t\t\t(xy 115.182864 66.502214) (xy 115.182861 66.502218) (xy 115.073367 66.666086) (xy 114.997949 66.848163)\r\n\t\t\t\t(xy 114.997949 66.848165) (xy 114.9595 67.041456) (xy 114.9595 67.238543) (xy 114.997949 67.431834)\r\n\t\t\t\t(xy 114.997949 67.431836) (xy 115.073367 67.613913) (xy 115.073368 67.613914) (xy 115.182861 67.777782)\r\n\t\t\t\t(xy 115.322218 67.917139) (xy 115.486086 68.026632) (xy 115.668165 68.102051) (xy 115.861459 68.1405)\r\n\t\t\t\t(xy 115.86146 68.1405) (xy 116.05854 68.1405) (xy 116.058541 68.1405) (xy 116.251835 68.102051)\r\n\t\t\t\t(xy 116.433914 68.026632) (xy 116.597782 67.917139) (xy 116.737139 67.777782) (xy 116.846632 67.613914)\r\n\t\t\t\t(xy 116.922051 67.431835) (xy 116.9605 67.238541) (xy 116.9605 67.041459) (xy 116.922051 66.848165)\r\n\t\t\t\t(xy 116.846632 66.666086) (xy 116.737139 66.502218) (xy 116.597782 66.362861) (xy 116.433914 66.253368)\r\n\t\t\t\t(xy 116.433915 66.253368) (xy 116.433913 66.253367) (xy 116.251836 66.177949) (xy 116.075315 66.142836)\r\n\t\t\t\t(xy 116.021932 66.112939) (xy 115.996316 66.057373) (xy 116.008253 65.997364) (xy 116.053183 65.955832)\r\n\t\t\t\t(xy 116.079143 65.947957) (xy 116.276121 65.916759) (xy 116.478215 65.851095) (xy 116.667556 65.75462)\r\n\t\t\t\t(xy 116.721716 65.71527) (xy 116.089408 65.082962) (xy 116.152993 65.065925) (xy 1' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'16.267007 65.000099)\r\n\t\t\t\t(xy 116.360099 64.907007) (xy 116.425925 64.792993) (xy 116.442962 64.729408) (xy 117.07527 65.361716)\r\n\t\t\t\t(xy 117.114622 65.307554) (xy 117.141789 65.254235) (xy 117.185053 65.21097) (xy 117.245485 65.201398)\r\n\t\t\t\t(xy 117.300002 65.229175) (xy 117.318209 65.254234) (xy 117.345376 65.307553) (xy 117.34538 65.307559)\r\n\t\t\t\t(xy 117.384728 65.361716) (xy 117.384729 65.361716) (xy 118.017037 64.729407) (xy 118.034075 64.792993)\r\n\t\t\t\t(xy 118.099901 64.907007) (xy 118.192993 65.000099) (xy 118.307007 65.065925) (xy 118.370589 65.082962)\r\n\t\t\t\t(xy 117.738282 65.715269) (xy 117.738282 65.71527) (xy 117.79244 65.754619) (xy 117.792446 65.754623)\r\n\t\t\t\t(xy 117.981784 65.851095) (xy 118.183878 65.916759) (xy 118.380856 65.947957) (xy 118.435372 65.975734)\r\n\t\t\t\t(xy 118.46315 66.030251) (xy 118.453579 66.090683) (xy 118.410314 66.133948) (xy 118.384684 66.142836)\r\n\t\t\t\t(xy 118.208163 66.177949) (xy 118.026086 66.253367) (xy 117.862218 66.362861) (xy 117.862214 66.362864)\r\n\t\t\t\t(xy 117.722864 66.502214) (xy 117.722861 66.502218) (xy 117.613367 66.666086) (xy 117.537949 66.848163)\r\n\t\t\t\t(xy 117.537949 66.848165) (xy 117.4995 67.041456) (xy 117.4995 67.238543) (xy 117.537949 67.431834)\r\n\t\t\t\t(xy 117.537949 67.431836) (xy 117.613367 67.613913) (xy 117.613368 67.613914) (xy 117.722861 67.777782)\r\n\t\t\t\t(xy 117.862218 67.917139) (xy 118.026086 68.026632) (xy 118.208165 68.102051) (xy 118.401459 68.1405)\r\n\t\t\t\t(xy 118.40146 68.1405) (xy 118.59854 68.1405) (xy 118.598541 68.1405) (xy 118.791835 68.102051)\r\n\t\t\t\t(xy 118.973914 68.026632) (xy 119.137782 67.917139) (xy 119.277139 67.777782) (xy 119.386632 67.613914)\r\n\t\t\t\t(xy 119.462051 67.431835) (xy 119.5005 67.238541) (xy 119.5005 67.041459) (xy 119.462051 66.848165)\r\n\t\t\t\t(xy 119.386632 66.666086) (xy 119.277139 66.502218) (xy 119.137782 66.362861) (xy 118.973914 66.253368)\r\n\t\t\t\t(xy 118.973915 66.253368) (xy 118.973913 66.253367) (xy 118.791836 66.177949) (xy 118.615315 66.142836)\r\n\t\t\t\t(xy 118.561932 66.112939) (xy 118.536316 66.057373) (xy 118.548253 65.997364) (xy 118.593183 65.955832)\r\n\t\t\t\t(xy 118.619143 65.947957) (xy 118.816121 65.916759) (xy 119.018215 65.851095) (xy 119.207556 65.75462)\r\n\t\t\t\t(xy 119.261716 65.71527) (xy 118.629408 65.082962) (xy 118.692993 65.065925) (xy 118.807007 65.000099)\r\n\t\t\t\t(xy 118.900099 64.907007) (xy 118.965925 64.792993) (xy 118.982962 64.729408) (xy 119.628708 65.375154)\r\n\t\t\t\t(xy 119.642724 65.378519) (xy 119.682463 65.425043) (xy 119.69 65.462932) (xy 119.69 65.497824)\r\n\t\t\t\t(xy 119.689999 65.497824) (xy 119.696401 65.55737) (xy 119.696403 65.557381) (xy 119.746646 65.692088)\r\n\t\t\t\t(xy 119.746647 65.69209) (xy 119.832807 65.807184) (xy 119.832815 65.807192) (xy 119.947909 65.893352)\r\n\t\t\t\t(xy 119.947911 65.893353) (xy 120.082618 65.943596) (xy 120.082629 65.943598) (xy 120.142176 65.95)\r\n\t\t\t\t(xy 120.888974 65.95) (xy 120.947165 65.968907) (xy 120.983129 66.018407) (xy 120.983129 66.079593)\r\n\t\t\t\t(xy 120.947165 66.129093) (xy 120.908288 66.146098) (xy 120.748165 66.177949) (xy 120.748163 66.177949)\r\n\t\t\t\t(xy 120.566086 66.253367) (xy 120.402218 66.362861) (xy 120.402214 66.362864) (xy 120.262864 66.502214)\r\n\t\t\t\t(xy 120.262861 66.502218) (xy 120.153367 66.666086) (xy 120.077949 66.848163) (xy 120.077949 66.848165)\r\n\t\t\t\t(xy 120.0395 67.041456) (xy 120.0395 67.238543) (xy 120.077949 67.431834) (xy 120.077949 67.431836)\r\n\t\t\t\t(xy 120.153367 67.613913) (xy 120.153368 67.613914) (xy 120.262861 67.777782) (xy 120.402218 67.917139)\r\n\t\t\t\t(xy 120.566086 68.026632) (xy 120.748165 68.102051) (xy 120.941459 68.1405) (xy 120.94146 68.1405)\r\n\t\t\t\t(xy 121.13854 68.1405) (xy 121.138541 68.1405) (xy 121.331835 68.102051) (xy 121.513914 68.026632)\r\n\t\t\t\t(xy 121.677782 67.917139) (xy 121.817139 67.777782) (xy 121.926632 67.613914) (xy 122.002051 67.431835)\r\n\t\t\t\t(xy 122.0405 67.238541) (xy 122.0405 67.041459) (xy 122.002051 66.848165) (xy 121.926632 66.666086)\r\n\t\t\t\t(xy 121.817139 66.502218) (xy 121.677782 66.362861) (xy 121.513914 66.253368) (xy 121.513915 66.253368)\r\n\t\t\t\t(xy 121.513913 66.253367) (xy 121.331835 66.177949) (xy 121.171712 66.146098) (xy 121.118328 66.116201)\r\n\t\t\t\t(xy 121.092712 66.060636) (xy 121.104649 66.000626) (xy 121.149579 65.959094) (xy 121.191026 65.95)\r\n\t\t\t\t(xy 121.937824 65.95) (xy 121.99737 65.943598) (xy 121.997381 65.943596) (xy 122.132088 65.893353)\r\n\t\t\t\t(xy 122.13209 65.893352) (xy 122.247184 65.807192) (xy 122.247192 65.807184) (xy 122.333352 65.69209)\r\n\t\t\t\t(xy 122.333353 65.692088) (xy 122.383596 65.557381) (xy 122.383598 65.55737) (xy 122.39 65.497824)\r\n\t\t\t\t(xy 122.39 64.850001) (xy 122.389999 64.85) (xy 121.473012 64.85) (xy 121.505925 64.792993) (xy 121.54 64.665826)\r\n\t\t\t\t(xy 121.54 64.534174) (xy 121.505925 64.407007) (xy 121.473012 64.35) (xy 122.389999 64.35) (xy 122.39 64.349999)\r\n\t\t\t\t(xy 122.39 63.702175) (xy 122.383598 63.642629) (xy 122.383596 63.642618) (xy 122.333353 63.507911)\r\n\t\t\t\t(xy 122.333352 63.507909) (xy 122.247192 63.392815) (xy 122.247184 63.392807) (xy 122.13209 63.306647)\r\n\t\t\t\t(xy 122.132088 63.306646) (xy 121.997381 63.256403) (xy 121.99737 63.256401) (xy 121.937824 63.25)\r\n\t\t\t\t(xy 121.290001 63.25) (xy 121.29 63.250001) (xy 121.29 64.166988) (xy 121.232993 64.134075) (xy 121.105826 64.1)\r\n\t\t\t\t(xy 120.974174 64.1) (xy 120.847007 64.134075) (xy 120.79 64.166988) (xy 120.79 63.250001) (xy 120.789999 63.25)\r\n\t\t\t\t(xy 120.142176 63.25) (xy 120.082629 63.256401) (xy 120.082618 63.256403) (xy 119.947911 63.306646)\r\n\t\t\t\t(xy 119.947909 63.306647) (xy 119.832815 63.392807) (xy 119.832807 63.392815) (xy 119.746647 63.507909)\r\n\t\t\t\t(xy 119.746646 63.507911) (xy 119.696403 63.642618) (xy 119.696401 63.642629) (xy 119.69 63.702175)\r\n\t\t\t\t(xy 119.69 63.737065) (xy 119.671093 63.795256) (xy 119.624292 63.829259) (xy 118.982962 64.470589)\r\n\t\t\t\t(xy 118.965925 64.407007) (xy 118.900099 64.292993) (xy 118.807007 64.199901) (xy 118.692993 64.134075)\r\n\t\t\t\t(xy 118.629407 64.117037) (xy 119.261716 63.484729) (xy 119.261716 63.484728) (xy 119.207559 63.44538)\r\n\t\t\t\t(xy 119.207553 63.445376) (xy 119.018215 63.348904) (xy 118.816121 63.28324) (xy 118.60625 63.25)\r\n\t\t\t\t(xy 118.39375 63.25) (xy 118.183878 63.28324) (xy 117.981784 63.348904) (xy 117.792446 63.445376)\r\n\t\t\t\t(xy 117.792442 63.445378) (xy 117.738282 63.484728) (xy 118.370591 64.117037) (xy 118.307007 64.134075)\r\n\t\t\t\t(xy 118.192993 64.199901) (xy 118.099901 64.292993) (xy 118.034075 64.407007) (xy 118.017037 64.470591)\r\n\t\t\t\t(xy 117.384728 63.838282) (xy 117.345378 63.892442) (xy 117.345376 63.892446) (xy 117.31821 63.945764)\r\n\t\t\t\t(xy 117.274945 63.989029) (xy 117.214513 63.9986) (xy 117.159996 63.970822) (xy 117.14179 63.945764)\r\n\t\t\t\t(xy 117.114623 63.892446) (xy 117.114619 63.89244) (xy 117.07527 63.838282) (xy 117.075269 63.838282)\r\n\t\t\t\t(xy 116.442962 64.470589) (xy 116.425925 64.407007) (xy 116.360099 64.292993) (xy 116.267007 64.199901)\r\n\t\t\t\t(xy 116.152993 64.134075) (xy 116.089407 64.117037) (xy 116.721716 63.484729) (xy 116.721716 63.484728)\r\n\t\t\t\t(xy 116.667559 63.44538) (xy 116.667553 63.445376) (xy 116.478215 63.348904) (xy 116.276121 63.28324)\r\n\t\t\t\t(xy 116.06625 63.25) (xy 115.85375 63.25) (xy 115.643878 63.28324) (xy 115.441784 63.348904) (xy 115.252446 63.445376)\r\n\t\t\t\t(xy 115.252442 63.445378) (xy 115.198282 63.484728) (xy 115.830591 64.117037) (xy 115.767007 64.134075)\r\n\t\t\t\t(xy 115.652993 64.199901) (xy 115.559901 64.292993) (xy 115.494075 64.407007) (xy 115.477037 64.470591)\r\n\t\t\t\t(xy 114.844728 63.838282) (xy 114.805378 63.892442) (xy 114.805376 63.892446) (xy 114.77821 63.945764)\r\n\t\t\t\t(xy 114.734945 63.989029) (xy 114.674513 63.9986) (xy 114.619996 63.970822) (xy 114.60179 63.945764)\r\n\t\t\t\t(xy 114.574623 63.892446) (xy 114.574619 63.89244) (xy 114.53527 63.838282) (xy 114.535269 63.838282)\r\n\t\t\t\t(xy 113.902962 64.470589) (xy 113.885925 64.407007) (xy 113.820099 64.292993) (xy 113.727007 64.199901)\r\n\t\t\t\t(xy 113.612993 64.134075) (xy 113.549407 64.117037) (xy 114.181716 63.484729) (xy 114.181716 63.484728)\r\n\t\t\t\t(xy 114.127559 63.44538) (xy 114.127553 63.445376) (xy 113.938215 63.348904) (xy 113.736121 63.28324)\r\n\t\t\t\t(xy 113.52625 63.25) (xy 113.31375 63.25) (xy 113.103878 63.28324) (xy 112.901784 63.348904) (xy 112.712446 63.445376)\r\n\t\t\t\t(xy 112.712442 63.445378) (xy 112.658282 63.484728) ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(xy 113.290591 64.117037) (xy 113.227007 64.134075)\r\n\t\t\t\t(xy 113.112993 64.199901) (xy 113.019901 64.292993) (xy 112.954075 64.407007) (xy 112.937037 64.470591)\r\n\t\t\t\t(xy 112.304728 63.838282) (xy 112.265378 63.892442) (xy 112.265376 63.892446) (xy 112.168904 64.081784)\r\n\t\t\t\t(xy 112.10324 64.283878) (xy 112.07 64.493749) (xy 106.757876 64.493749) (xy 106.764239 64.482728)\r\n\t\t\t\t(xy 106.79494 64.368151) (xy 106.79494 64.249533) (xy 106.764239 64.134956) (xy 106.764237 64.134953)\r\n\t\t\t\t(xy 106.764237 64.134951) (xy 106.704932 64.032233) (xy 106.70493 64.032231) (xy 106.704929 64.032229)\r\n\t\t\t\t(xy 106.621053 63.948353) (xy 106.62105 63.948351) (xy 106.621048 63.948349) (xy 106.518329 63.889044)\r\n\t\t\t\t(xy 106.51833 63.889044) (xy 106.504791 63.885416) (xy 106.403749 63.858342) (xy 106.285131 63.858342)\r\n\t\t\t\t(xy 106.215007 63.877131) (xy 106.170549 63.889044) (xy 106.067831 63.948349) (xy 106.067825 63.948353)\r\n\t\t\t\t(xy 106.019503 63.996676) (xy 105.964986 64.024453) (xy 105.904554 64.014881) (xy 105.86129 63.971616)\r\n\t\t\t\t(xy 105.8505 63.926672) (xy 105.8505 63.200171) (xy 105.812364 63.108103) (xy 105.741897 63.037635)\r\n\t\t\t\t(xy 105.741897 63.037636) (xy 105.329495 62.625234) (xy 105.301718 62.570717) (xy 105.300499 62.55523)\r\n\t\t\t\t(xy 105.300499 62.361602) (xy 105.300498 62.361595) (xy 105.28524 62.284883) (xy 105.285239 62.284881)\r\n\t\t\t\t(xy 105.227113 62.19789) (xy 105.227112 62.197888) (xy 105.140117 62.13976) (xy 105.140113 62.139759)\r\n\t\t\t\t(xy 105.06341 62.124501) (xy 105.063402 62.1245) (xy 105.063401 62.1245) (xy 105.0634 62.1245) (xy 104.636602 62.1245)\r\n\t\t\t\t(xy 104.636595 62.124501) (xy 104.559883 62.139759) (xy 104.559881 62.13976) (xy 104.47289 62.197886)\r\n\t\t\t\t(xy 104.472886 62.19789) (xy 104.414762 62.284879) (xy 104.414759 62.284886) (xy 104.399501 62.361589)\r\n\t\t\t\t(xy 104.3995 62.361599) (xy 80.146215 62.361599) (xy 80.978318 61.529496) (xy 81.032835 61.501719)\r\n\t\t\t\t(xy 81.048322 61.5005) (xy 145.951678 61.5005)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "B.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 119.628708 65.375154) (xy 119.642724 65.378519) (xy 119.682463 65.425043) (xy 119.69 65.462932)\r\n\t\t\t\t(xy 119.69 65.497824) (xy 119.689999 65.497824) (xy 119.696401 65.55737) (xy 119.696403 65.557381)\r\n\t\t\t\t(xy 119.746646 65.692088) (xy 119.746647 65.69209) (xy 119.832807 65.807184) (xy 119.832815 65.807192)\r\n\t\t\t\t(xy 119.947909 65.893352) (xy 119.947911 65.893353) (xy 120.082618 65.943596) (xy 120.082629 65.943598)\r\n\t\t\t\t(xy 120.142176 65.95) (xy 120.888974 65.95) (xy 120.947165 65.968907) (xy 120.983129 66.018407)\r\n\t\t\t\t(xy 120.983129 66.079593) (xy 120.947165 66.129093) (xy 120.908288 66.146098) (xy 120.748165 66.177949)\r\n\t\t\t\t(xy 120.748163 66.177949) (xy 120.566086 66.253367) (xy 120.402218 66.362861) (xy 120.402214 66.362864)\r\n\t\t\t\t(xy 120.262864 66.502214) (xy 120.262861 66.502218) (xy 120.153367 66.666086) (xy 120.077949 66.848163)\r\n\t\t\t\t(xy 120.077949 66.848165) (xy 120.0395 67.041456) (xy 120.0395 67.238543) (xy 120.077949 67.431834)\r\n\t\t\t\t(xy 120.077949 67.431836) (xy 120.145174 67.594134) (xy 120.149974 67.655131) (xy 120.123714 67.702023)\r\n\t\t\t\t(xy 114.719504 73.106234) (xy 114.664987 73.134011) (xy 114.604555 73.12444) (xy 114.56129 73.081175)\r\n\t\t\t\t(xy 114.5505 73.03623) (xy 114.5505 71.484768) (xy 114.569407 71.426577) (xy 114.57949 71.41477)\r\n\t\t\t\t(xy 117.937977 68.056282) (xy 117.992492 68.028507) (xy 118.045862 68.034823) (xy 118.208165 68.102051)\r\n\t\t\t\t(xy 118.401459 68.1405) (xy 118.40146 68.1405) (xy 118.59854 68.1405) (xy 118.598541 68.1405) (xy 118.791835 68.102051)\r\n\t\t\t\t(xy 118.973914 68.026632) (xy 119.137782 67.917139) (xy 119.277139 67.777782) (xy 119.386632 67.613914)\r\n\t\t\t\t(xy 119.462051 67.431835) (xy 119.5005 67.238541) (xy 119.5005 67.041459) (xy 119.462051 66.848165)\r\n\t\t\t\t(xy 119.386632 66.666086) (xy 119.277139 66.502218) (xy 119.137782 66.362861) (xy 118.973914 66.253368)\r\n\t\t\t\t(xy 118.973915 66.253368) (xy 118.973913 66.253367) (xy 118.791836 66.177949) (xy 118.615315 66.142836)\r\n\t\t\t\t(xy 118.561932 66.112939) (xy 118.536316 66.057373) (xy 118.548253 65.997364) (xy 118.593183 65.955832)\r\n\t\t\t\t(xy 118.619143 65.947957) (xy 118.816121 65.916759) (xy 119.018215 65.851095) (xy 119.207556 65.75462)\r\n\t\t\t\t(xy 119.261716 65.71527) (xy 118.629408 65.082962) (xy 118.692993 65.065925) (xy 118.807007 65.000099)\r\n\t\t\t\t(xy 118.900099 64.907007) (xy 118.965925 64.792993) (xy 118.982962 64.729408)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "B.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 118.034075 64.792993) (xy 118.099901 64.907007) (xy 118.192993 65.000099) (xy 118.307007 65.065925)\r\n\t\t\t\t(xy 118.370589 65.082962) (xy 117.738282 65.715269) (xy 117.738282 65.71527) (xy 117.79244 65.754619)\r\n\t\t\t\t(xy 117.792446 65.754623) (xy 117.981784 65.851095) (xy 118.183878 65.916759) (xy 118.380856 65.947957)\r\n\t\t\t\t(xy 118.435372 65.975734) (xy 118.46315 66.030251) (xy 118.453579 66.090683) (xy 118.410314 66.133948)\r\n\t\t\t\t(xy 118.384684 66.142836) (xy 118.208163 66.177949) (xy 118.026086 66.253367) (xy 117.862218 66.362861)\r\n\t\t\t\t(xy 117.862214 66.362864) (xy 117.722864 66.502214) (xy 117.722861 66.502218) (xy 117.613367 66.666086)\r\n\t\t\t\t(xy 117.537949 66.848163) (xy 117.537949 66.848165) (xy 117.4995 67.041456) (xy 117.4995 67.238543)\r\n\t\t\t\t(xy 117.537949 67.431834) (xy 117.537949 67.431836) (xy 117.605174 67.594134) (xy 117.609974 67.655131)\r\n\t\t\t\t(xy 117.583714 67.702023) (xy 114.219504 71.066234) (xy 114.164987 71.094011) (xy 114.104555 71.08444)\r\n\t\t\t\t(xy 114.06129 71.041175) (xy 114.0505 70.99623) (xy 114.0505 69.444768) (xy 114.069407 69.386577)\r\n\t\t\t\t(xy 114.07949 69.37477) (xy 115.397977 68.056282) (xy 115.452492 68.028507) (xy 115.505862 68.034823)\r\n\t\t\t\t(xy 115.668165 68.102051) (xy 115.861459 68.1405) (xy 115.86146 68.1405) (xy 116.05854 68.1405)\r\n\t\t\t\t(xy 116.058541 68.1405) (xy 116.251835 68.102051) (xy 116.433914 68.026632) (xy 116.597782 67.917139)\r\n\t\t\t\t(xy 116.737139 67.777782) (xy 116.846632 67.613914) (xy 116.922051 67.431835) (xy 116.9605 67.238541)\r\n\t\t\t\t(xy 116.9605 67.041459) (xy 116.922051 66.848165) (xy 116.846632 66.666086) (xy 116.737139 66.502218)\r\n\t\t\t\t(xy 116.597782 66.362861) (xy 116.433914 66.253368) (xy 116.433915 66.253368) (xy 116.433913 66.253367)\r\n\t\t\t\t(xy 116.251836 66.177949) (xy 116.075315 66.142836) (xy 116.021932 66.112939) (xy 115.996316 66.057373)\r\n\t\t\t\t(xy 116.008253 65.997364) (xy 116.053183 65.955832) (xy 116.079143 65.947957) (xy 116.276121 65.916759)\r\n\t\t\t\t(xy 116.478215 65.851095) (xy 116.667556 65.75462) (xy 116.721716 65.71527) (xy 116.089408 65.082962)\r\n\t\t\t\t(xy 116.152993 65.065925) (xy 116.267007 65.000099) (xy 116.360099 64.907007) (xy 116.425925 64.792993)\r\n\t\t\t\t(xy 116.442962 64.729408) (xy 117.07527 65.361716) (xy 117.114622 65.307554) (xy 117.141789 65.254235)\r\n\t\t\t\t(xy 117.185053 65.21097) (xy 117.245485 65.201398) (xy 117.300002 65.229175) (xy 117.318209 65.254234)\r\n\t\t\t\t(xy 117.345376 65.307553) (xy 117.34538 65.307559) (xy 117.384728 65.361716) (xy 117.384729 65.361716)\r\n\t\t\t\t(xy 118.017037 64.729407)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "B.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 115.494075 64.792993) (xy 115.559901 64.907007) (xy 115.652993 65.000099) (xy 115.767007 65.065925)\r\n\t\t\t\t(xy 115.830589 65.082962) (xy 115.198282 65.715269) (xy 115.198282 65.71527) (xy 115.25244 65.754619)\r\n\t\t\t\t(xy 115.252446 65.754623) (xy 115.441784 65.851095) (xy 115.643878 65.916759) (xy 115.840856 65.947957)\r\n\t\t\t\t(xy 115.895372 65.975734) (xy 115.92315 66.030251) (xy 115.913579 66.090683) (xy 115.870314 66.133948)\r\n\t\t\t\t(xy 115.844684 66.142836) (xy 115.668163 66.177949) (xy 115.486086 66.253367) (xy 115.322218 66.362861)\r\n\t\t\t\t(xy 115.322214 66.362864) (xy 115.182864 66.502214) (xy 115.182861 66.502218) (xy 115.073367 66.666086)\r\n\t\t\t\t(xy 114.997949 66.848163) (xy 114.997949 66.848165) (xy 114.9595 67.041456) (xy 114.9595 67.238543)\r\n\t\t\t\t(xy 114.997949 67.431834) (xy 114.997949 67.431836) (xy 115.065174 67.594134) (xy 115.069974 67.655131)\r\n\t\t\t\t(xy 115.043714 67.702023) (xy 113.839504 68.906234) (xy 113.784987 68.934011) (xy 113.724555 68.92444)\r\n\t\t\t\t(xy 113.68129 68.881175) (xy 113.6705 68.83623) (xy 113.6705 68.185321) (xy 113.689407 68.12713)\r\n\t\t\t\t(xy 113.731612 68.093858) (xy 113.893914 68.026632) (xy 114.057782 67.917139) (xy 114.197139 67.777782)\r\n\t\t\t\t(xy 114.306632 67.613914) (xy ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'114.382051 67.431835) (xy 114.4205 67.238541) (xy 114.4205 67.041459)\r\n\t\t\t\t(xy 114.382051 66.848165) (xy 114.306632 66.666086) (xy 114.197139 66.502218) (xy 114.057782 66.362861)\r\n\t\t\t\t(xy 113.893914 66.253368) (xy 113.893915 66.253368) (xy 113.893913 66.253367) (xy 113.711836 66.177949)\r\n\t\t\t\t(xy 113.535315 66.142836) (xy 113.481932 66.112939) (xy 113.456316 66.057373) (xy 113.468253 65.997364)\r\n\t\t\t\t(xy 113.513183 65.955832) (xy 113.539143 65.947957) (xy 113.736121 65.916759) (xy 113.938215 65.851095)\r\n\t\t\t\t(xy 114.127556 65.75462) (xy 114.181716 65.71527) (xy 113.549408 65.082962) (xy 113.612993 65.065925)\r\n\t\t\t\t(xy 113.727007 65.000099) (xy 113.820099 64.907007) (xy 113.885925 64.792993) (xy 113.902962 64.729408)\r\n\t\t\t\t(xy 114.53527 65.361716) (xy 114.574622 65.307554) (xy 114.601789 65.254235) (xy 114.645053 65.21097)\r\n\t\t\t\t(xy 114.705485 65.201398) (xy 114.760002 65.229175) (xy 114.778209 65.254234) (xy 114.805376 65.307553)\r\n\t\t\t\t(xy 114.80538 65.307559) (xy 114.844728 65.361716) (xy 114.844729 65.361716) (xy 115.477037 64.729407)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "B.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 109.794504 66.828485) (xy 110.320504 67.354485) (xy 110.348281 67.409002) (xy 110.3495 67.424489)\r\n\t\t\t\t(xy 110.3495 76.63129) (xy 110.330593 76.689481) (xy 110.281093 76.725445) (xy 110.219907 76.725445)\r\n\t\t\t\t(xy 110.170407 76.689481) (xy 110.164764 76.680791) (xy 110.16049 76.673389) (xy 110.160489 76.673387)\r\n\t\t\t\t(xy 110.076613 76.589511) (xy 110.07661 76.589509) (xy 110.076608 76.589507) (xy 109.973889 76.530202)\r\n\t\t\t\t(xy 109.97389 76.530202) (xy 109.948456 76.523387) (xy 109.859309 76.4995) (xy 109.740691 76.4995)\r\n\t\t\t\t(xy 109.670567 76.518289) (xy 109.626109 76.530202) (xy 109.523391 76.589507) (xy 109.439507 76.673391)\r\n\t\t\t\t(xy 109.380202 76.776109) (xy 109.363342 76.839033) (xy 109.3495 76.890691) (xy 109.3495 77.009309)\r\n\t\t\t\t(xy 109.367533 77.076608) (xy 109.380202 77.12389) (xy 109.439507 77.226608) (xy 109.439509 77.22661)\r\n\t\t\t\t(xy 109.439511 77.226613) (xy 109.523387 77.310489) (xy 109.523389 77.31049) (xy 109.523391 77.310492)\r\n\t\t\t\t(xy 109.62611 77.369797) (xy 109.626111 77.369797) (xy 109.626114 77.369799) (xy 109.740691 77.4005)\r\n\t\t\t\t(xy 109.740693 77.4005) (xy 109.859307 77.4005) (xy 109.859309 77.4005) (xy 109.973886 77.369799)\r\n\t\t\t\t(xy 109.973888 77.369797) (xy 109.97389 77.369797) (xy 110.076608 77.310492) (xy 110.076608 77.310491)\r\n\t\t\t\t(xy 110.076613 77.310489) (xy 110.160489 77.226613) (xy 110.164763 77.219209) (xy 110.210231 77.178269)\r\n\t\t\t\t(xy 110.271081 77.171872) (xy 110.32407 77.202463) (xy 110.348957 77.258358) (xy 110.3495 77.268709)\r\n\t\t\t\t(xy 110.3495 88.25523) (xy 110.330593 88.313421) (xy 110.320504 88.325234) (xy 107.125234 91.520504)\r\n\t\t\t\t(xy 107.118116 91.52413) (xy 107.113421 91.530593) (xy 107.091372 91.537756) (xy 107.070717 91.548281)\r\n\t\t\t\t(xy 107.05523 91.5495) (xy 107.028558 91.5495) (xy 106.970367 91.530593) (xy 106.934403 91.481093)\r\n\t\t\t\t(xy 106.932931 91.424877) (xy 106.938486 91.404145) (xy 106.9505 91.359309) (xy 106.9505 91.244768)\r\n\t\t\t\t(xy 106.969407 91.186577) (xy 106.979496 91.174764) (xy 107.356858 90.797402) (xy 107.848237 90.306024)\r\n\t\t\t\t(xy 107.886373 90.213955) (xy 107.886373 90.114299) (xy 107.886373 86.760072) (xy 107.90528 86.701881)\r\n\t\t\t\t(xy 107.915363 86.690074) (xy 108.512364 86.093074) (xy 108.5505 86.001005) (xy 108.5505 85.90135)\r\n\t\t\t\t(xy 108.5505 67.970452) (xy 108.5505 67.97045) (xy 108.54716 67.962387) (xy 108.542358 67.90139)\r\n\t\t\t\t(xy 108.574327 67.849221) (xy 108.630854 67.825805) (xy 108.638623 67.8255) (xy 108.746077 67.8255)\r\n\t\t\t\t(xy 108.746078 67.8255) (xy 108.934543 67.788012) (xy 109.112073 67.714477) (xy 109.271845 67.60772)\r\n\t\t\t\t(xy 109.40772 67.471845) (xy 109.514477 67.312073) (xy 109.588012 67.134543) (xy 109.6255 66.946078)\r\n\t\t\t\t(xy 109.6255 66.898489) (xy 109.644407 66.840298) (xy 109.693907 66.804334) (xy 109.755093 66.804334)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "B.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 80.634075 82.582007) (xy 80.6 82.709174) (xy 80.6 82.840826) (xy 80.634075 82.967993) (xy 80.666988 83.025)\r\n\t\t\t\t(xy 80.3495 83.025) (xy 80.291309 83.006093) (xy 80.255345 82.956593) (xy 80.2505 82.926) (xy 80.2505 82.624)\r\n\t\t\t\t(xy 80.269407 82.565809) (xy 80.318907 82.529845) (xy 80.3495 82.525) (xy 80.666988 82.525)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "B.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 146.009869 61.519407) (xy 146.021682 61.529496) (xy 152.970504 68.478318) (xy 152.998281 68.532835)\r\n\t\t\t\t(xy 152.9995 68.548322) (xy 152.9995 133.451678) (xy 152.980593 133.509869) (xy 152.970504 133.521682)\r\n\t\t\t\t(xy 146.021682 140.470504) (xy 145.967165 140.498281) (xy 145.951678 140.4995) (xy 81.048322 140.4995)\r\n\t\t\t\t(xy 80.990131 140.480593) (xy 80.978318 140.470504) (xy 74.029496 133.521682) (xy 74.001719 133.467165)\r\n\t\t\t\t(xy 74.0005 133.451678) (xy 74.0005 125.174034) (xy 76.7995 125.174034) (xy 76.7995 125.425965)\r\n\t\t\t\t(xy 76.838908 125.67478) (xy 76.83891 125.674785) (xy 76.916759 125.914379) (xy 77.03113 126.138845)\r\n\t\t\t\t(xy 77.179207 126.342656) (xy 77.357344 126.520793) (xy 77.561155 126.66887) (xy 77.785621 126.783241)\r\n\t\t\t\t(xy 78.025215 126.86109) (xy 78.025216 126.86109) (xy 78.025219 126.861091) (xy 78.274035 126.9005)\r\n\t\t\t\t(xy 78.274038 126.9005) (xy 78.525965 126.9005) (xy 78.77478 126.861091) (xy 78.774781 126.86109)\r\n\t\t\t\t(xy 78.774785 126.86109) (xy 79.014379 126.783241) (xy 79.238845 126.66887) (xy 79.442656 126.520793)\r\n\t\t\t\t(xy 79.620793 126.342656) (xy 79.76887 126.138845) (xy 79.883241 125.914379) (xy 79.96109 125.674785)\r\n\t\t\t\t(xy 80.0005 125.425962) (xy 80.0005 125.174038) (xy 80.0005 125.174034) (xy 79.961091 124.925219)\r\n\t\t\t\t(xy 79.96109 124.925215) (xy 79.883241 124.685621) (xy 79.76887 124.461155) (xy 79.620793 124.257344)\r\n\t\t\t\t(xy 79.442656 124.079207) (xy 79.238845 123.93113) (xy 79.238844 123.931129) (xy 79.238842 123.931128)\r\n\t\t\t\t(xy 79.014379 123.816759) (xy 78.77478 123.738908) (xy 78.525965 123.6995) (xy 78.525962 123.6995)\r\n\t\t\t\t(xy 78.274038 123.6995) (xy 78.274035 123.6995) (xy 78.025219 123.738908) (xy 77.78562 123.816759)\r\n\t\t\t\t(xy 77.561157 123.931128) (xy 77.357345 124.079206) (xy 77.179206 124.257345) (xy 77.031128 124.461157)\r\n\t\t\t\t(xy 76.916759 124.68562) (xy 76.838908 124.925219) (xy 76.7995 125.174034) (xy 74.0005 125.174034)\r\n\t\t\t\t(xy 74.0005 113.740691) (xy 89.8495 113.740691) (xy 89.8495 113.859309) (xy 89.876574 113.960351)\r\n\t\t\t\t(xy 89.880202 113.97389) (xy 89.939507 114.076608) (xy 89.939509 114.07661) (xy 89.939511 114.076613)\r\n\t\t\t\t(xy 90.020505 114.157607) (xy 90.048281 114.212122) (xy 90.0495 114.227609) (xy 90.0495 131.399828)\r\n\t\t\t\t(xy 90.087634 131.491894) (xy 90.087635 131.491895) (xy 90.087636 131.491897) (xy 91.437636 132.841897)\r\n\t\t\t\t(xy 91.437635 132.841897) (xy 91.508103 132.912364) (xy 91.600171 132.9505) (xy 91.600172 132.9505)\r\n\t\t\t\t(xy 92.672391 132.9505) (xy 92.730582 132.969407) (xy 92.742388 132.97949) (xy 92.823387 133.060489)\r\n\t\t\t\t(xy 92.823389 133.06049) (xy 92.823391 133.060492) (xy 92.92611 133.119797) (xy 92.926111 133.119797)\r\n\t\t\t\t(xy 92.926114 133.119799) (xy 93.040691 133.1505) (xy 93.040693 133.1505) (xy 93.159307 133.1505)\r\n\t\t\t\t(xy 93.159309 133.1505) (xy 93.273886 133.119799) (xy 93.273888 133.119797) (xy 93.27389 133.119797)\r\n\t\t\t\t(xy 93.376608 133.060492) (xy 93.376608 133.060491) (xy 93.376613 133.060489) (xy 93.460489 132.976613)\r\n\t\t\t\t(xy 93.460492 132.976608) (xy 93.519797 132.87389) (xy 93.519797 132.873888) (xy 93.519799 132.873886)\r\n\t\t\t\t(xy 93.5505 132.759309) (xy 93.5505 132.640691) (xy 93.519799 132.526114) (xy 93.519797 132.526111)\r\n\t\t\t\t(xy 93.519797 132.526109) (xy 93.460492 132.423391) (xy 93.46049 132.423389) (xy 93.460489 132.423387)\r\n\t\t\t\t(xy 93.376613 132.339511) (xy 93.37661 132.339509) (xy 93.376608 132.339507) (xy 93.273889 132.280202)\r\n\t\t\t\t(xy 93.27389 132.280202) (xy 93.260351 132.276574) (xy 93.159309 132.2495) (xy 93.040691 132.2495)\r\n\t\t\t\t(xy 92.970567 132.268289) (xy 92.926109 132.280202) (xy 92.823391 132.339507) (xy 92.82339 132.339508)\r\n\t\t\t\t(xy 92.823387 132.33951) (xy 92.823387 132.339511) (xy 92.742392 132.420505) (xy 92.687878 132.448281)\r\n\t\t\t\t(xy 92.672391 132.4495) (xy 91.794769 132.4495) (xy 91.736578 132.430593) (xy 91.724765 132.420504)\r\n\t\t\t\t(xy 90.579496 131.275235) (xy 90.551719 131.220718' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b') (xy 90.5505 131.205231) (xy 90.5505 114.227609)\r\n\t\t\t\t(xy 90.569407 114.169418) (xy 90.57949 114.157611) (xy 90.660489 114.076613) (xy 90.719799 113.973886)\r\n\t\t\t\t(xy 90.7505 113.859309) (xy 90.7505 113.740691) (xy 90.719799 113.626114) (xy 90.719797 113.626111)\r\n\t\t\t\t(xy 90.719797 113.626109) (xy 90.660492 113.523391) (xy 90.660488 113.523386) (xy 90.579496 113.442393)\r\n\t\t\t\t(xy 90.551719 113.387876) (xy 90.5505 113.37239) (xy 90.5505 94.140691) (xy 92.8495 94.140691) (xy 92.8495 94.259309)\r\n\t\t\t\t(xy 92.863227 94.310537) (xy 92.880202 94.37389) (xy 92.939507 94.476608) (xy 92.939509 94.47661)\r\n\t\t\t\t(xy 92.939511 94.476613) (xy 93.023387 94.560489) (xy 93.023389 94.56049) (xy 93.023391 94.560492)\r\n\t\t\t\t(xy 93.12611 94.619797) (xy 93.126111 94.619797) (xy 93.126114 94.619799) (xy 93.240691 94.6505)\r\n\t\t\t\t(xy 93.240693 94.6505) (xy 93.359308 94.6505) (xy 93.359309 94.6505) (xy 93.473886 94.619799) (xy 93.473888 94.619797)\r\n\t\t\t\t(xy 93.474876 94.619533) (xy 93.535978 94.622734) (xy 93.583528 94.661239) (xy 93.5995 94.715159)\r\n\t\t\t\t(xy 93.5995 110.499828) (xy 93.637634 110.591894) (xy 93.637635 110.591895) (xy 93.637636 110.591897)\r\n\t\t\t\t(xy 93.820505 110.774766) (xy 93.848281 110.829281) (xy 93.8495 110.844768) (xy 93.8495 110.959309)\r\n\t\t\t\t(xy 93.857304 110.988434) (xy 93.880202 111.07389) (xy 93.939507 111.176608) (xy 93.939509 111.17661)\r\n\t\t\t\t(xy 93.939511 111.176613) (xy 94.023387 111.260489) (xy 94.023389 111.26049) (xy 94.023391 111.260492)\r\n\t\t\t\t(xy 94.12611 111.319797) (xy 94.126111 111.319797) (xy 94.126114 111.319799) (xy 94.240691 111.3505)\r\n\t\t\t\t(xy 94.240693 111.3505) (xy 94.355231 111.3505) (xy 94.413422 111.369407) (xy 94.425235 111.379496)\r\n\t\t\t\t(xy 95.020504 111.974764) (xy 95.048281 112.029281) (xy 95.0495 112.044768) (xy 95.0495 133.57239)\r\n\t\t\t\t(xy 95.047031 133.579987) (xy 95.048281 133.587877) (xy 95.037756 133.608532) (xy 95.030593 133.630581)\r\n\t\t\t\t(xy 95.020504 133.642394) (xy 94.940593 133.722305) (xy 94.886076 133.750082) (xy 94.825644 133.740511)\r\n\t\t\t\t(xy 94.821088 133.738037) (xy 94.731423 133.686268) (xy 94.731422 133.686267) (xy 94.731421 133.686267)\r\n\t\t\t\t(xy 94.616844 133.655566) (xy 94.498226 133.655566) (xy 94.428102 133.674355) (xy 94.383644 133.686268)\r\n\t\t\t\t(xy 94.280926 133.745573) (xy 94.197042 133.829457) (xy 94.137737 133.932175) (xy 94.137736 133.93218)\r\n\t\t\t\t(xy 94.107035 134.046757) (xy 94.107035 134.165375) (xy 94.109316 134.173886) (xy 94.137737 134.279956)\r\n\t\t\t\t(xy 94.197042 134.382674) (xy 94.197044 134.382676) (xy 94.197046 134.382679) (xy 94.280922 134.466555)\r\n\t\t\t\t(xy 94.280924 134.466556) (xy 94.280926 134.466558) (xy 94.383645 134.525863) (xy 94.383646 134.525863)\r\n\t\t\t\t(xy 94.383649 134.525865) (xy 94.498226 134.556566) (xy 94.498228 134.556566) (xy 94.616842 134.556566)\r\n\t\t\t\t(xy 94.616844 134.556566) (xy 94.662867 134.544234) (xy 116.9145 134.544234) (xy 116.9145 134.695766)\r\n\t\t\t\t(xy 116.949086 134.824847) (xy 116.95372 134.842139) (xy 117.029481 134.97336) (xy 117.029483 134.973362)\r\n\t\t\t\t(xy 117.029485 134.973365) (xy 117.136635 135.080515) (xy 117.136637 135.080516) (xy 117.136639 135.080518)\r\n\t\t\t\t(xy 117.267861 135.156279) (xy 117.267859 135.156279) (xy 117.267863 135.15628) (xy 117.267865 135.156281)\r\n\t\t\t\t(xy 117.414234 135.1955) (xy 117.414236 135.1955) (xy 117.565764 135.1955) (xy 117.565766 135.1955)\r\n\t\t\t\t(xy 117.712135 135.156281) (xy 117.712137 135.156279) (xy 117.712139 135.156279) (xy 117.84336 135.080518)\r\n\t\t\t\t(xy 117.84336 135.080517) (xy 117.843365 135.080515) (xy 117.950515 134.973365) (xy 118.026281 134.842135)\r\n\t\t\t\t(xy 118.0655 134.695766) (xy 118.0655 134.544234) (xy 122.6945 134.544234) (xy 122.6945 134.695766)\r\n\t\t\t\t(xy 122.729086 134.824847) (xy 122.73372 134.842139) (xy 122.809481 134.97336) (xy 122.809483 134.973362)\r\n\t\t\t\t(xy 122.809485 134.973365) (xy 122.916635 135.080515) (xy 122.916637 135.080516) (xy 122.916639 135.080518)\r\n\t\t\t\t(xy 123.047861 135.156279) (xy 123.047859 135.156279) (xy 123.047863 135.15628) (xy 123.047865 135.156281)\r\n\t\t\t\t(xy 123.194234 135.1955) (xy 123.194236 135.1955) (xy 123.345764 135.1955) (xy 123.345766 135.1955)\r\n\t\t\t\t(xy 123.492135 135.156281) (xy 123.492137 135.156279) (xy 123.492139 135.156279) (xy 123.62336 135.080518)\r\n\t\t\t\t(xy 123.62336 135.080517) (xy 123.623365 135.080515) (xy 123.730515 134.973365) (xy 123.806281 134.842135)\r\n\t\t\t\t(xy 123.8455 134.695766) (xy 123.8455 134.544234) (xy 123.806281 134.397865) (xy 123.806279 134.397862)\r\n\t\t\t\t(xy 123.806279 134.39786) (xy 123.730518 134.266639) (xy 123.730516 134.266637) (xy 123.730515 134.266635)\r\n\t\t\t\t(xy 123.623365 134.159485) (xy 123.623362 134.159483) (xy 123.62336 134.159481) (xy 123.492138 134.08372)\r\n\t\t\t\t(xy 123.49214 134.08372) (xy 123.435347 134.068503) (xy 123.345766 134.0445) (xy 123.194234 134.0445)\r\n\t\t\t\t(xy 123.104652 134.068503) (xy 123.04786 134.08372) (xy 122.916639 134.159481) (xy 122.809481 134.266639)\r\n\t\t\t\t(xy 122.73372 134.39786) (xy 122.719616 134.4505) (xy 122.6945 134.544234) (xy 118.0655 134.544234)\r\n\t\t\t\t(xy 118.026281 134.397865) (xy 118.026279 134.397862) (xy 118.026279 134.39786) (xy 117.950518 134.266639)\r\n\t\t\t\t(xy 117.950516 134.266637) (xy 117.950515 134.266635) (xy 117.843365 134.159485) (xy 117.843362 134.159483)\r\n\t\t\t\t(xy 117.84336 134.159481) (xy 117.712138 134.08372) (xy 117.71214 134.08372) (xy 117.655347 134.068503)\r\n\t\t\t\t(xy 117.565766 134.0445) (xy 117.414234 134.0445) (xy 117.324652 134.068503) (xy 117.26786 134.08372)\r\n\t\t\t\t(xy 117.136639 134.159481) (xy 117.029481 134.266639) (xy 116.95372 134.39786) (xy 116.939616 134.4505)\r\n\t\t\t\t(xy 116.9145 134.544234) (xy 94.662867 134.544234) (xy 94.731421 134.525865) (xy 94.731423 134.525863)\r\n\t\t\t\t(xy 94.731425 134.525863) (xy 94.834143 134.466558) (xy 94.834143 134.466557) (xy 94.834148 134.466555)\r\n\t\t\t\t(xy 94.916943 134.383759) (xy 94.971457 134.355983) (xy 95.03189 134.365554) (xy 95.036426 134.368017)\r\n\t\t\t\t(xy 95.126114 134.419799) (xy 95.240691 134.4505) (xy 95.240693 134.4505) (xy 95.359307 134.4505)\r\n\t\t\t\t(xy 95.359309 134.4505) (xy 95.473886 134.419799) (xy 95.473888 134.419797) (xy 95.47389 134.419797)\r\n\t\t\t\t(xy 95.576608 134.360492) (xy 95.576608 134.360491) (xy 95.576613 134.360489) (xy 95.605 134.332101)\r\n\t\t\t\t(xy 95.659513 134.304326) (xy 95.719945 134.313897) (xy 95.745001 134.3321) (xy 95.77339 134.360489)\r\n\t\t\t\t(xy 95.773392 134.36049) (xy 95.773394 134.360492) (xy 95.876113 134.419797) (xy 95.876114 134.419797)\r\n\t\t\t\t(xy 95.876117 134.419799) (xy 95.990694 134.4505) (xy 95.990696 134.4505) (xy 96.10931 134.4505)\r\n\t\t\t\t(xy 96.109312 134.4505) (xy 96.223889 134.419799) (xy 96.223891 134.419797) (xy 96.223893 134.419797)\r\n\t\t\t\t(xy 96.326611 134.360492) (xy 96.326611 134.360491) (xy 96.326616 134.360489) (xy 96.410492 134.276613)\r\n\t\t\t\t(xy 96.469802 134.173886) (xy 96.500503 134.059309) (xy 96.500503 133.940691) (xy 96.469802 133.826114)\r\n\t\t\t\t(xy 96.4698 133.826111) (xy 96.4698 133.826109) (xy 96.410495 133.723391) (xy 96.410493 133.723389)\r\n\t\t\t\t(xy 96.410492 133.723387) (xy 96.326616 133.639511) (xy 96.317258 133.634108) (xy 96.249999 133.595275)\r\n\t\t\t\t(xy 96.209059 133.549805) (xy 96.2005 133.509539) (xy 96.2005 125.174034) (xy 124.7995 125.174034)\r\n\t\t\t\t(xy 124.7995 125.425965) (xy 124.838908 125.67478) (xy 124.83891 125.674785) (xy 124.916759 125.914379)\r\n\t\t\t\t(xy 125.03113 126.138845) (xy 125.179207 126.342656) (xy 125.357344 126.520793) (xy 125.561155 126.66887)\r\n\t\t\t\t(xy 125.785621 126.783241) (xy 126.025215 126.86109) (xy 126.025216 126.86109) (xy 126.025219 126.861091)\r\n\t\t\t\t(xy 126.274035 126.9005) (xy 126.274038 126.9005) (xy 126.525965 126.9005) (xy 126.77478 126.861091)\r\n\t\t\t\t(xy 126.774781 126.86109) (xy 126.774785 126.86109) (xy 127.014379 126.783241) (xy 127.238845 126.66887)\r\n\t\t\t\t(xy 127.442656 126.520793) (xy 127.620793 126.342656) (xy 127.76887 126.138845) (xy 127.883241 125.914379)\r\n\t\t\t\t(xy 127.96109 125.674785) (xy 128.0005 125.425962) (xy 128.0005 125.174038) (xy 128.0005 125.174034)\r\n\t\t\t\t(xy 127.961091 124.925219) (xy 127.96109 124.925215) (xy 127.883241 124.685621) (xy 127.76887 124.461155)\r\n\t\t\t\t(xy 127.620793 124.257344) (xy 127.442656 124.079207) (xy 127.238845 123.93113) (xy 127.238844 123.931129)\r\n\t\t\t\t(xy 127.238842 123.931128) (xy 127.014379 123.816759) (xy 126.77478 123.738908) (xy 126.525965 123.6' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'995)\r\n\t\t\t\t(xy 126.525962 123.6995) (xy 126.274038 123.6995) (xy 126.274035 123.6995) (xy 126.025219 123.738908)\r\n\t\t\t\t(xy 125.78562 123.816759) (xy 125.561157 123.931128) (xy 125.357345 124.079206) (xy 125.179206 124.257345)\r\n\t\t\t\t(xy 125.031128 124.461157) (xy 124.916759 124.68562) (xy 124.838908 124.925219) (xy 124.7995 125.174034)\r\n\t\t\t\t(xy 96.2005 125.174034) (xy 96.2005 113.277609) (xy 96.219407 113.219418) (xy 96.22949 113.207611)\r\n\t\t\t\t(xy 96.310489 113.126613) (xy 96.310492 113.126608) (xy 96.369797 113.02389) (xy 96.369797 113.023888)\r\n\t\t\t\t(xy 96.369799 113.023886) (xy 96.4005 112.909309) (xy 96.4005 112.790691) (xy 96.369799 112.676114)\r\n\t\t\t\t(xy 96.369797 112.676111) (xy 96.369797 112.676109) (xy 96.310492 112.573391) (xy 96.310488 112.573386)\r\n\t\t\t\t(xy 96.229496 112.492393) (xy 96.201719 112.437876) (xy 96.2005 112.42239) (xy 96.2005 112.226783)\r\n\t\t\t\t(xy 136.985589 112.226783) (xy 136.985589 112.345401) (xy 136.986422 112.348508) (xy 137.016291 112.459982)\r\n\t\t\t\t(xy 137.075596 112.5627) (xy 137.075598 112.562702) (xy 137.0756 112.562705) (xy 137.159476 112.646581)\r\n\t\t\t\t(xy 137.159478 112.646582) (xy 137.15948 112.646584) (xy 137.262199 112.705889) (xy 137.2622 112.705889)\r\n\t\t\t\t(xy 137.262203 112.705891) (xy 137.37678 112.736592) (xy 137.376782 112.736592) (xy 137.495396 112.736592)\r\n\t\t\t\t(xy 137.495398 112.736592) (xy 137.609975 112.705891) (xy 137.609977 112.705889) (xy 137.609979 112.705889)\r\n\t\t\t\t(xy 137.712697 112.646584) (xy 137.712697 112.646583) (xy 137.712702 112.646581) (xy 137.741089 112.618193)\r\n\t\t\t\t(xy 137.795602 112.590418) (xy 137.856034 112.599989) (xy 137.88109 112.618192) (xy 137.923387 112.660489)\r\n\t\t\t\t(xy 137.923389 112.66049) (xy 137.923391 112.660492) (xy 138.02611 112.719797) (xy 138.026111 112.719797)\r\n\t\t\t\t(xy 138.026114 112.719799) (xy 138.140691 112.7505) (xy 138.140693 112.7505) (xy 138.257778 112.7505)\r\n\t\t\t\t(xy 138.315969 112.769407) (xy 138.351933 112.818907) (xy 138.353401 112.823865) (xy 138.380203 112.923888)\r\n\t\t\t\t(xy 138.380204 112.92389) (xy 138.380205 112.923893) (xy 138.439509 113.02661) (xy 138.439511 113.026612)\r\n\t\t\t\t(xy 138.439513 113.026615) (xy 138.523389 113.110491) (xy 138.523391 113.110492) (xy 138.523393 113.110494)\r\n\t\t\t\t(xy 138.626112 113.169799) (xy 138.626113 113.169799) (xy 138.626116 113.169801) (xy 138.740693 113.200502)\r\n\t\t\t\t(xy 138.740695 113.200502) (xy 138.859309 113.200502) (xy 138.859311 113.200502) (xy 138.973888 113.169801)\r\n\t\t\t\t(xy 138.97389 113.169799) (xy 138.973892 113.169799) (xy 139.07661 113.110494) (xy 139.07661 113.110493)\r\n\t\t\t\t(xy 139.076615 113.110491) (xy 139.160491 113.026615) (xy 139.219801 112.923888) (xy 139.250502 112.809311)\r\n\t\t\t\t(xy 139.250502 112.690693) (xy 139.219801 112.576116) (xy 139.219799 112.576113) (xy 139.219799 112.576111)\r\n\t\t\t\t(xy 139.160494 112.473393) (xy 139.160492 112.473391) (xy 139.160491 112.473389) (xy 139.076615 112.389513)\r\n\t\t\t\t(xy 139.076612 112.389511) (xy 139.07661 112.389509) (xy 138.973891 112.330204) (xy 138.973892 112.330204)\r\n\t\t\t\t(xy 138.949503 112.323669) (xy 138.859311 112.299502) (xy 138.742224 112.299502) (xy 138.684033 112.280595)\r\n\t\t\t\t(xy 138.648069 112.231095) (xy 138.646597 112.226126) (xy 138.619799 112.126114) (xy 138.619796 112.126108)\r\n\t\t\t\t(xy 138.560492 112.023391) (xy 138.56049 112.023389) (xy 138.560489 112.023387) (xy 138.476613 111.939511)\r\n\t\t\t\t(xy 138.47661 111.939509) (xy 138.476608 111.939507) (xy 138.373889 111.880202) (xy 138.37389 111.880202)\r\n\t\t\t\t(xy 138.360351 111.876574) (xy 138.259309 111.8495) (xy 138.140691 111.8495) (xy 138.070567 111.868289)\r\n\t\t\t\t(xy 138.026109 111.880202) (xy 137.923391 111.939507) (xy 137.895001 111.967897) (xy 137.840484 111.995673)\r\n\t\t\t\t(xy 137.780052 111.986101) (xy 137.754997 111.967898) (xy 137.712702 111.925603) (xy 137.712699 111.925601)\r\n\t\t\t\t(xy 137.712697 111.925599) (xy 137.609978 111.866294) (xy 137.609979 111.866294) (xy 137.59644 111.862666)\r\n\t\t\t\t(xy 137.495398 111.835592) (xy 137.37678 111.835592) (xy 137.306656 111.854381) (xy 137.262198 111.866294)\r\n\t\t\t\t(xy 137.15948 111.925599) (xy 137.075596 112.009483) (xy 137.016291 112.112201) (xy 137.01629 112.112206)\r\n\t\t\t\t(xy 136.985589 112.226783) (xy 96.2005 112.226783) (xy 96.2005 111.761359) (xy 96.200501 111.76135)\r\n\t\t\t\t(xy 96.200501 111.650172) (xy 96.162364 111.558104) (xy 96.162364 111.558103) (xy 96.091897 111.487636)\r\n\t\t\t\t(xy 96.091895 111.487635) (xy 95.415825 110.811565) (xy 94.708467 110.104206) (xy 94.644952 110.040691)\r\n\t\t\t\t(xy 136.7495 110.040691) (xy 136.7495 110.159309) (xy 136.761679 110.20476) (xy 136.780202 110.27389)\r\n\t\t\t\t(xy 136.839507 110.376608) (xy 136.839509 110.37661) (xy 136.839511 110.376613) (xy 136.923387 110.460489)\r\n\t\t\t\t(xy 136.923389 110.46049) (xy 136.923391 110.460492) (xy 137.02611 110.519797) (xy 137.026111 110.519797)\r\n\t\t\t\t(xy 137.026114 110.519799) (xy 137.140691 110.5505) (xy 137.140693 110.5505) (xy 137.259307 110.5505)\r\n\t\t\t\t(xy 137.259309 110.5505) (xy 137.373886 110.519799) (xy 137.373888 110.519797) (xy 137.37389 110.519797)\r\n\t\t\t\t(xy 137.476608 110.460492) (xy 137.476608 110.460491) (xy 137.476613 110.460489) (xy 137.560489 110.376613)\r\n\t\t\t\t(xy 137.619799 110.273886) (xy 137.6505 110.159309) (xy 137.6505 110.040691) (xy 137.619799 109.926114)\r\n\t\t\t\t(xy 137.619797 109.926111) (xy 137.619797 109.926109) (xy 137.560492 109.823391) (xy 137.56049 109.823389)\r\n\t\t\t\t(xy 137.560489 109.823387) (xy 137.476613 109.739511) (xy 137.47661 109.739509) (xy 137.476608 109.739507)\r\n\t\t\t\t(xy 137.373889 109.680202) (xy 137.37389 109.680202) (xy 137.360351 109.676574) (xy 137.259309 109.6495)\r\n\t\t\t\t(xy 137.140691 109.6495) (xy 137.070567 109.668289) (xy 137.026109 109.680202) (xy 136.923391 109.739507)\r\n\t\t\t\t(xy 136.839507 109.823391) (xy 136.780202 109.926109) (xy 136.780201 109.926114) (xy 136.7495 110.040691)\r\n\t\t\t\t(xy 94.644952 110.040691) (xy 94.479496 109.875235) (xy 94.451719 109.820718) (xy 94.4505 109.805231)\r\n\t\t\t\t(xy 94.4505 98.811532) (xy 134.8995 98.811532) (xy 134.8995 99.018467) (xy 134.939869 99.221418)\r\n\t\t\t\t(xy 135.019058 99.412597) (xy 135.090256 99.519153) (xy 135.134023 99.584655) (xy 135.280345 99.730977)\r\n\t\t\t\t(xy 135.452402 99.845941) (xy 135.64358 99.92513) (xy 135.846535 99.9655) (xy 135.846536 99.9655)\r\n\t\t\t\t(xy 136.053464 99.9655) (xy 136.053465 99.9655) (xy 136.25642 99.92513) (xy 136.447598 99.845941)\r\n\t\t\t\t(xy 136.619655 99.730977) (xy 136.765977 99.584655) (xy 136.880941 99.412598) (xy 136.96013 99.22142)\r\n\t\t\t\t(xy 137.0005 99.018465) (xy 137.0005 98.811535) (xy 136.96013 98.60858) (xy 136.880941 98.417402)\r\n\t\t\t\t(xy 136.765977 98.245345) (xy 136.619655 98.099023) (xy 136.596745 98.083715) (xy 136.447597 97.984058)\r\n\t\t\t\t(xy 136.256418 97.904869) (xy 136.053467 97.8645) (xy 136.053465 97.8645) (xy 135.846535 97.8645)\r\n\t\t\t\t(xy 135.846532 97.8645) (xy 135.643581 97.904869) (xy 135.452402 97.984058) (xy 135.280348 98.09902)\r\n\t\t\t\t(xy 135.13402 98.245348) (xy 135.019058 98.417402) (xy 134.939869 98.608581) (xy 134.8995 98.811532)\r\n\t\t\t\t(xy 94.4505 98.811532) (xy 94.4505 97.541532) (xy 132.3595 97.541532) (xy 132.3595 97.748467) (xy 132.399869 97.951418)\r\n\t\t\t\t(xy 132.479058 98.142597) (xy 132.59402 98.314651) (xy 132.594023 98.314655) (xy 132.740345 98.460977)\r\n\t\t\t\t(xy 132.912402 98.575941) (xy 133.10358 98.65513) (xy 133.306535 98.6955) (xy 133.306536 98.6955)\r\n\t\t\t\t(xy 133.513464 98.6955) (xy 133.513465 98.6955) (xy 133.71642 98.65513) (xy 133.907598 98.575941)\r\n\t\t\t\t(xy 134.079655 98.460977) (xy 134.225977 98.314655) (xy 134.340941 98.142598) (xy 134.42013 97.95142)\r\n\t\t\t\t(xy 134.4605 97.748465) (xy 134.4605 97.541535) (xy 134.42013 97.33858) (xy 134.340941 97.147402)\r\n\t\t\t\t(xy 134.225977 96.975345) (xy 134.079655 96.829023) (xy 134.079651 96.82902) (xy 133.907597 96.714058)\r\n\t\t\t\t(xy 133.716418 96.634869) (xy 133.513467 96.5945) (xy 133.513465 96.5945) (xy 133.306535 96.5945)\r\n\t\t\t\t(xy 133.306532 96.5945) (xy 133.103581 96.634869) (xy 132.912402 96.714058) (xy 132.740348 96.82902)\r\n\t\t\t\t(xy 132.59402 96.975348) (xy 132.479058 97.147402) (xy 132.399869 97.338581) (xy 132.3595 97.541532)\r\n\t\t\t\t(xy 94.4505 97.541532) (xy 94.4505 96.271532) (xy 134.8995 96.271532) (xy 134.8995 96.478467) (xy 134.939869 96.681418)\r\n\t\t\t\t(xy 135.019058 96.872597) (xy 135.13402 97.044651) (xy 135.134023 97.044655) ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(xy 135.280345 97.190977)\r\n\t\t\t\t(xy 135.452402 97.305941) (xy 135.64358 97.38513) (xy 135.846535 97.4255) (xy 135.846536 97.4255)\r\n\t\t\t\t(xy 136.053464 97.4255) (xy 136.053465 97.4255) (xy 136.25642 97.38513) (xy 136.447598 97.305941)\r\n\t\t\t\t(xy 136.619655 97.190977) (xy 136.765977 97.044655) (xy 136.880941 96.872598) (xy 136.96013 96.68142)\r\n\t\t\t\t(xy 136.988123 96.540691) (xy 144.9495 96.540691) (xy 144.9495 96.659309) (xy 144.976574 96.760351)\r\n\t\t\t\t(xy 144.980202 96.77389) (xy 145.039507 96.876608) (xy 145.039509 96.87661) (xy 145.039511 96.876613)\r\n\t\t\t\t(xy 145.123387 96.960489) (xy 145.123389 96.96049) (xy 145.123391 96.960492) (xy 145.22611 97.019797)\r\n\t\t\t\t(xy 145.226111 97.019797) (xy 145.226114 97.019799) (xy 145.340691 97.0505) (xy 145.340693 97.0505)\r\n\t\t\t\t(xy 145.459307 97.0505) (xy 145.459309 97.0505) (xy 145.573886 97.019799) (xy 145.573888 97.019797)\r\n\t\t\t\t(xy 145.57389 97.019797) (xy 145.676608 96.960492) (xy 145.676608 96.960491) (xy 145.676613 96.960489)\r\n\t\t\t\t(xy 145.760489 96.876613) (xy 145.762808 96.872597) (xy 145.819797 96.77389) (xy 145.819797 96.773888)\r\n\t\t\t\t(xy 145.819799 96.773886) (xy 145.8505 96.659309) (xy 145.8505 96.540691) (xy 145.819799 96.426114)\r\n\t\t\t\t(xy 145.819797 96.426111) (xy 145.819797 96.426109) (xy 145.760492 96.323391) (xy 145.76049 96.323389)\r\n\t\t\t\t(xy 145.760489 96.323387) (xy 145.676613 96.239511) (xy 145.67661 96.239509) (xy 145.676608 96.239507)\r\n\t\t\t\t(xy 145.573889 96.180202) (xy 145.57389 96.180202) (xy 145.560351 96.176574) (xy 145.459309 96.1495)\r\n\t\t\t\t(xy 145.340691 96.1495) (xy 145.270567 96.168289) (xy 145.226109 96.180202) (xy 145.123391 96.239507)\r\n\t\t\t\t(xy 145.039507 96.323391) (xy 144.980202 96.426109) (xy 144.966173 96.478467) (xy 144.9495 96.540691)\r\n\t\t\t\t(xy 136.988123 96.540691) (xy 137.0005 96.478465) (xy 137.0005 96.271535) (xy 136.96013 96.06858)\r\n\t\t\t\t(xy 136.880941 95.877402) (xy 136.765977 95.705345) (xy 136.619655 95.559023) (xy 136.447598 95.444059)\r\n\t\t\t\t(xy 136.447599 95.444059) (xy 136.447597 95.444058) (xy 136.256418 95.364869) (xy 136.053467 95.3245)\r\n\t\t\t\t(xy 136.053465 95.3245) (xy 135.846535 95.3245) (xy 135.846532 95.3245) (xy 135.643581 95.364869)\r\n\t\t\t\t(xy 135.452402 95.444058) (xy 135.280348 95.55902) (xy 135.13402 95.705348) (xy 135.019058 95.877402)\r\n\t\t\t\t(xy 134.939869 96.068581) (xy 134.8995 96.271532) (xy 94.4505 96.271532) (xy 94.4505 95.744767)\r\n\t\t\t\t(xy 94.469407 95.686576) (xy 94.47949 95.674769) (xy 95.191895 94.962364) (xy 95.191897 94.962364)\r\n\t\t\t\t(xy 95.262364 94.891897) (xy 95.279925 94.8495) (xy 95.300501 94.799827) (xy 95.300501 94.700172)\r\n\t\t\t\t(xy 95.3005 94.700169) (xy 95.3005 93.293769) (xy 95.319407 93.235578) (xy 95.368907 93.199614)\r\n\t\t\t\t(xy 95.430093 93.199614) (xy 95.469504 93.223765) (xy 96.320504 94.074765) (xy 96.348281 94.129282)\r\n\t\t\t\t(xy 96.3495 94.144769) (xy 96.3495 94.259309) (xy 96.363227 94.310537) (xy 96.380202 94.37389) (xy 96.439507 94.476608)\r\n\t\t\t\t(xy 96.439509 94.47661) (xy 96.439511 94.476613) (xy 96.523387 94.560489) (xy 96.523389 94.56049)\r\n\t\t\t\t(xy 96.523391 94.560492) (xy 96.62611 94.619797) (xy 96.626111 94.619797) (xy 96.626114 94.619799)\r\n\t\t\t\t(xy 96.740691 94.6505) (xy 96.740693 94.6505) (xy 96.859307 94.6505) (xy 96.859309 94.6505) (xy 96.973886 94.619799)\r\n\t\t\t\t(xy 96.973888 94.619797) (xy 96.97389 94.619797) (xy 97.076608 94.560492) (xy 97.076608 94.560491)\r\n\t\t\t\t(xy 97.076613 94.560489) (xy 97.160489 94.476613) (xy 97.184315 94.435345) (xy 97.219797 94.37389)\r\n\t\t\t\t(xy 97.219797 94.373888) (xy 97.219799 94.373886) (xy 97.2505 94.259309) (xy 97.2505 94.140691)\r\n\t\t\t\t(xy 97.219799 94.026114) (xy 97.219797 94.026111) (xy 97.219797 94.026109) (xy 97.160492 93.923391)\r\n\t\t\t\t(xy 97.16049 93.923389) (xy 97.160489 93.923387) (xy 97.076613 93.839511) (xy 97.07661 93.839509)\r\n\t\t\t\t(xy 97.076608 93.839507) (xy 96.973889 93.780202) (xy 96.97389 93.780202) (xy 96.960351 93.776574)\r\n\t\t\t\t(xy 96.859309 93.7495) (xy 96.744769 93.7495) (xy 96.686578 93.730593) (xy 96.674765 93.720504)\r\n\t\t\t\t(xy 95.579496 92.625235) (xy 95.551719 92.570718) (xy 95.5505 92.555231) (xy 95.5505 81.340691)\r\n\t\t\t\t(xy 97.6495 81.340691) (xy 97.6495 81.459309) (xy 97.668601 81.530593) (xy 97.680202 81.57389) (xy 97.739507 81.676608)\r\n\t\t\t\t(xy 97.739509 81.67661) (xy 97.739511 81.676613) (xy 97.820505 81.757607) (xy 97.848281 81.812122)\r\n\t\t\t\t(xy 97.8495 81.827609) (xy 97.8495 94.516155) (xy 97.836236 94.565656) (xy 97.830199 94.576111)\r\n\t\t\t\t(xy 97.830198 94.576113) (xy 97.830198 94.576114) (xy 97.799497 94.690691) (xy 97.799497 94.809309)\r\n\t\t\t\t(xy 97.821626 94.891894) (xy 97.830199 94.92389) (xy 97.889504 95.026608) (xy 97.889506 95.02661)\r\n\t\t\t\t(xy 97.889508 95.026613) (xy 97.973384 95.110489) (xy 97.973386 95.11049) (xy 97.973388 95.110492)\r\n\t\t\t\t(xy 98.076107 95.169797) (xy 98.076108 95.169797) (xy 98.076111 95.169799) (xy 98.190688 95.2005)\r\n\t\t\t\t(xy 98.19069 95.2005) (xy 98.309304 95.2005) (xy 98.309306 95.2005) (xy 98.423883 95.169799) (xy 98.423885 95.169797)\r\n\t\t\t\t(xy 98.423887 95.169797) (xy 98.526605 95.110492) (xy 98.526605 95.110491) (xy 98.52661 95.110489)\r\n\t\t\t\t(xy 98.554997 95.082101) (xy 98.60951 95.054326) (xy 98.669942 95.063897) (xy 98.694998 95.0821)\r\n\t\t\t\t(xy 98.723387 95.110489) (xy 98.723389 95.11049) (xy 98.723391 95.110492) (xy 98.82611 95.169797)\r\n\t\t\t\t(xy 98.826111 95.169797) (xy 98.826114 95.169799) (xy 98.940691 95.2005) (xy 98.940693 95.2005)\r\n\t\t\t\t(xy 99.059307 95.2005) (xy 99.059309 95.2005) (xy 99.173886 95.169799) (xy 99.173888 95.169797)\r\n\t\t\t\t(xy 99.17389 95.169797) (xy 99.276608 95.110492) (xy 99.276608 95.110491) (xy 99.276613 95.110489)\r\n\t\t\t\t(xy 99.360489 95.026613) (xy 99.362352 95.023387) (xy 99.419797 94.92389) (xy 99.419797 94.923888)\r\n\t\t\t\t(xy 99.419799 94.923886) (xy 99.4505 94.809309) (xy 99.4505 94.690691) (xy 99.7495 94.690691) (xy 99.7495 94.809309)\r\n\t\t\t\t(xy 99.771629 94.891894) (xy 99.780202 94.92389) (xy 99.839507 95.026608) (xy 99.839509 95.02661)\r\n\t\t\t\t(xy 99.839511 95.026613) (xy 99.923387 95.110489) (xy 99.923389 95.11049) (xy 99.923391 95.110492)\r\n\t\t\t\t(xy 100.02611 95.169797) (xy 100.026111 95.169797) (xy 100.026114 95.169799) (xy 100.140691 95.2005)\r\n\t\t\t\t(xy 100.140693 95.2005) (xy 100.259307 95.2005) (xy 100.259309 95.2005) (xy 100.373886 95.169799)\r\n\t\t\t\t(xy 100.373888 95.169797) (xy 100.37389 95.169797) (xy 100.476608 95.110492) (xy 100.476608 95.110491)\r\n\t\t\t\t(xy 100.476613 95.110489) (xy 100.560489 95.026613) (xy 100.562352 95.023387) (xy 100.619797 94.92389)\r\n\t\t\t\t(xy 100.619797 94.923888) (xy 100.619799 94.923886) (xy 100.6505 94.809309) (xy 100.6505 94.690691)\r\n\t\t\t\t(xy 100.619799 94.576114) (xy 100.619797 94.576111) (xy 100.619797 94.576109) (xy 100.560492 94.473391)\r\n\t\t\t\t(xy 100.56049 94.473389) (xy 100.560489 94.473387) (xy 100.476613 94.389511) (xy 100.47661 94.389509)\r\n\t\t\t\t(xy 100.476608 94.389507) (xy 100.373889 94.330202) (xy 100.37389 94.330202) (xy 100.346034 94.322738)\r\n\t\t\t\t(xy 100.259309 94.2995) (xy 100.140691 94.2995) (xy 100.099501 94.310537) (xy 100.026109 94.330202)\r\n\t\t\t\t(xy 99.923391 94.389507) (xy 99.839507 94.473391) (xy 99.780202 94.576109) (xy 99.767709 94.622734)\r\n\t\t\t\t(xy 99.7495 94.690691) (xy 99.4505 94.690691) (xy 99.419799 94.576114) (xy 99.419797 94.576111)\r\n\t\t\t\t(xy 99.419797 94.576109) (xy 99.360492 94.473391) (xy 99.36049 94.473389) (xy 99.360489 94.473387)\r\n\t\t\t\t(xy 99.276613 94.389511) (xy 99.27661 94.389509) (xy 99.276608 94.389507) (xy 99.173889 94.330202)\r\n\t\t\t\t(xy 99.17389 94.330202) (xy 99.146034 94.322738) (xy 99.059309 94.2995) (xy 99.059307 94.2995) (xy 99.0495 94.2995)\r\n\t\t\t\t(xy 98.991309 94.280593) (xy 98.955345 94.231093) (xy 98.9505 94.2005) (xy 98.9505 93.089881) (xy 98.969407 93.03169)\r\n\t\t\t\t(xy 99.018907 92.995726) (xy 99.080093 92.995726) (xy 99.098999 93.004144) (xy 99.126114 93.019799)\r\n\t\t\t\t(xy 99.240691 93.0505) (xy 99.240693 93.0505) (xy 99.359307 93.0505) (xy 99.359309 93.0505) (xy 99.473886 93.019799)\r\n\t\t\t\t(xy 99.473888 93.019797) (xy 99.47389 93.019797) (xy 99.576608 92.960492) (xy 99.576608 92.960491)\r\n\t\t\t\t(xy 99.576613 92.960489) (xy 99.660489 92.876613) (xy 99.68191 92.839511) (xy 99.719797 92.77389)\r\n\t\t\t\t(xy 99.719797 92.773888) (xy 99.719799 92.773886) (xy 99.7505 92.659309) (xy 99.7505 92.540691)\r\n\t\t\t\t(xy 99.719799 92.426114) (xy 99.719797 92.426111) (xy 99.719797 92.426109)' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' (xy 99.660492 92.323391)\r\n\t\t\t\t(xy 99.660488 92.323386) (xy 99.579496 92.242393) (xy 99.551719 92.187876) (xy 99.5505 92.17239)\r\n\t\t\t\t(xy 99.5505 81.694767) (xy 99.569407 81.636576) (xy 99.579484 81.624776) (xy 99.924765 81.279494)\r\n\t\t\t\t(xy 99.97928 81.251719) (xy 99.994767 81.2505) (xy 100.109308 81.2505) (xy 100.109309 81.2505) (xy 100.223886 81.219799)\r\n\t\t\t\t(xy 100.223888 81.219797) (xy 100.224876 81.219533) (xy 100.285978 81.222734) (xy 100.333528 81.261239)\r\n\t\t\t\t(xy 100.3495 81.315159) (xy 100.3495 88.7005) (xy 100.330593 88.758691) (xy 100.281093 88.794655)\r\n\t\t\t\t(xy 100.2505 88.7995) (xy 100.140691 88.7995) (xy 100.070567 88.818289) (xy 100.026109 88.830202)\r\n\t\t\t\t(xy 99.923391 88.889507) (xy 99.839507 88.973391) (xy 99.780202 89.076109) (xy 99.767165 89.124763)\r\n\t\t\t\t(xy 99.7495 89.190691) (xy 99.7495 89.309309) (xy 99.766805 89.37389) (xy 99.780202 89.42389) (xy 99.839507 89.526608)\r\n\t\t\t\t(xy 99.839509 89.52661) (xy 99.839511 89.526613) (xy 99.923387 89.610489) (xy 99.923389 89.61049)\r\n\t\t\t\t(xy 99.923391 89.610492) (xy 100.02611 89.669797) (xy 100.026111 89.669797) (xy 100.026114 89.669799)\r\n\t\t\t\t(xy 100.140691 89.7005) (xy 100.140693 89.7005) (xy 100.259307 89.7005) (xy 100.259309 89.7005)\r\n\t\t\t\t(xy 100.373886 89.669799) (xy 100.373888 89.669797) (xy 100.37389 89.669797) (xy 100.476608 89.610492)\r\n\t\t\t\t(xy 100.476608 89.610491) (xy 100.476613 89.610489) (xy 100.560489 89.526613) (xy 100.564763 89.519211)\r\n\t\t\t\t(xy 100.619797 89.42389) (xy 100.619797 89.423888) (xy 100.619799 89.423886) (xy 100.6505 89.309309)\r\n\t\t\t\t(xy 100.6505 89.194767) (xy 100.652968 89.187169) (xy 100.651719 89.17928) (xy 100.662243 89.158624)\r\n\t\t\t\t(xy 100.669407 89.136576) (xy 100.679488 89.124771) (xy 100.780499 89.023761) (xy 100.835013 88.995986)\r\n\t\t\t\t(xy 100.895445 89.005557) (xy 100.93871 89.048822) (xy 100.9495 89.093767) (xy 100.9495 91.992918)\r\n\t\t\t\t(xy 100.930593 92.051109) (xy 100.881093 92.087073) (xy 100.8505 92.091918) (xy 100.739176 92.091918)\r\n\t\t\t\t(xy 100.671253 92.110118) (xy 100.624594 92.12262) (xy 100.521876 92.181925) (xy 100.437992 92.265809)\r\n\t\t\t\t(xy 100.378687 92.368527) (xy 100.364949 92.419799) (xy 100.347985 92.483109) (xy 100.347985 92.601727)\r\n\t\t\t\t(xy 100.366225 92.669799) (xy 100.378687 92.716308) (xy 100.437992 92.819026) (xy 100.437994 92.819028)\r\n\t\t\t\t(xy 100.437996 92.819031) (xy 100.521872 92.902907) (xy 100.521874 92.902908) (xy 100.521876 92.90291)\r\n\t\t\t\t(xy 100.624595 92.962215) (xy 100.624596 92.962215) (xy 100.624599 92.962217) (xy 100.739176 92.992918)\r\n\t\t\t\t(xy 100.739178 92.992918) (xy 100.857792 92.992918) (xy 100.857794 92.992918) (xy 100.972371 92.962217)\r\n\t\t\t\t(xy 100.972373 92.962215) (xy 100.972375 92.962215) (xy 101.075093 92.90291) (xy 101.075093 92.902909)\r\n\t\t\t\t(xy 101.075098 92.902907) (xy 101.158974 92.819031) (xy 101.181393 92.7802) (xy 101.218282 92.716308)\r\n\t\t\t\t(xy 101.218282 92.716306) (xy 101.218284 92.716304) (xy 101.248985 92.601727) (xy 101.248985 92.487185)\r\n\t\t\t\t(xy 101.267892 92.428994) (xy 101.277982 92.417181) (xy 101.326636 92.368527) (xy 101.412364 92.2828)\r\n\t\t\t\t(xy 101.4505 92.190731) (xy 101.4505 92.091075) (xy 101.4505 78.727609) (xy 101.469407 78.669418)\r\n\t\t\t\t(xy 101.47949 78.657611) (xy 101.560489 78.576613) (xy 101.618225 78.476613) (xy 101.619797 78.47389)\r\n\t\t\t\t(xy 101.619797 78.473888) (xy 101.619799 78.473886) (xy 101.6505 78.359309) (xy 101.6505 78.240691)\r\n\t\t\t\t(xy 101.619799 78.126114) (xy 101.619797 78.126111) (xy 101.619797 78.126109) (xy 101.560492 78.023391)\r\n\t\t\t\t(xy 101.56049 78.023389) (xy 101.560489 78.023387) (xy 101.476613 77.939511) (xy 101.47661 77.939509)\r\n\t\t\t\t(xy 101.476608 77.939507) (xy 101.373889 77.880202) (xy 101.37389 77.880202) (xy 101.350318 77.873886)\r\n\t\t\t\t(xy 101.259309 77.8495) (xy 101.140691 77.8495) (xy 101.026114 77.880201) (xy 101.026113 77.880201)\r\n\t\t\t\t(xy 101.026111 77.880202) (xy 100.998765 77.89599) (xy 100.938917 77.908709) (xy 100.883022 77.883822)\r\n\t\t\t\t(xy 100.85243 77.830833) (xy 100.852169 77.829567) (xy 100.850501 77.821185) (xy 100.850501 77.821178)\r\n\t\t\t\t(xy 100.828275 77.767521) (xy 100.820946 77.749827) (xy 100.818085 77.742921) (xy 100.812364 77.729108)\r\n\t\t\t\t(xy 100.765367 77.682111) (xy 100.737592 77.627597) (xy 100.736373 77.61211) (xy 100.736373 77.49757)\r\n\t\t\t\t(xy 100.730445 77.475445) (xy 100.705672 77.382992) (xy 100.70567 77.382989) (xy 100.70567 77.382987)\r\n\t\t\t\t(xy 100.646365 77.280269) (xy 100.646363 77.280267) (xy 100.646362 77.280265) (xy 100.570741 77.204644)\r\n\t\t\t\t(xy 100.542966 77.15013) (xy 100.552537 77.089698) (xy 100.557247 77.082234) (xy 100.557245 77.082233)\r\n\t\t\t\t(xy 100.619797 76.97389) (xy 100.619797 76.973888) (xy 100.619799 76.973886) (xy 100.6505 76.859309)\r\n\t\t\t\t(xy 100.6505 76.740691) (xy 100.619799 76.626114) (xy 100.619797 76.626111) (xy 100.619797 76.626109)\r\n\t\t\t\t(xy 100.560492 76.523391) (xy 100.56049 76.523389) (xy 100.560489 76.523387) (xy 100.476613 76.439511)\r\n\t\t\t\t(xy 100.47661 76.439509) (xy 100.476608 76.439507) (xy 100.373889 76.380202) (xy 100.37389 76.380202)\r\n\t\t\t\t(xy 100.335767 76.369987) (xy 100.259309 76.3495) (xy 100.140691 76.3495) (xy 100.070567 76.368289)\r\n\t\t\t\t(xy 100.026109 76.380202) (xy 99.923391 76.439507) (xy 99.839507 76.523391) (xy 99.780202 76.626109)\r\n\t\t\t\t(xy 99.770662 76.661712) (xy 99.7495 76.740691) (xy 99.7495 76.859309) (xy 99.768186 76.929044)\r\n\t\t\t\t(xy 99.780202 76.97389) (xy 99.839507 77.076608) (xy 99.839509 77.07661) (xy 99.839511 77.076613)\r\n\t\t\t\t(xy 99.91513 77.152232) (xy 99.942906 77.206747) (xy 99.933335 77.267179) (xy 99.928625 77.274643)\r\n\t\t\t\t(xy 99.928628 77.274645) (xy 99.866075 77.382987) (xy 99.835373 77.49757) (xy 99.835373 77.616189)\r\n\t\t\t\t(xy 99.843434 77.646271) (xy 99.840233 77.707373) (xy 99.801728 77.754923) (xy 99.773433 77.767521)\r\n\t\t\t\t(xy 99.726112 77.780201) (xy 99.72611 77.780202) (xy 99.623391 77.839507) (xy 99.539507 77.923391)\r\n\t\t\t\t(xy 99.480202 78.026109) (xy 99.47099 78.060489) (xy 99.4495 78.140691) (xy 99.4495 78.259309) (xy 99.46667 78.323387)\r\n\t\t\t\t(xy 99.480202 78.37389) (xy 99.539507 78.476608) (xy 99.539509 78.47661) (xy 99.539511 78.476613)\r\n\t\t\t\t(xy 99.623387 78.560489) (xy 99.623389 78.56049) (xy 99.623391 78.560492) (xy 99.688545 78.598109)\r\n\t\t\t\t(xy 99.729486 78.643578) (xy 99.735882 78.704429) (xy 99.709049 78.753848) (xy 99.639511 78.823386)\r\n\t\t\t\t(xy 99.639507 78.823391) (xy 99.580202 78.926109) (xy 99.566671 78.976608) (xy 99.5495 79.040691)\r\n\t\t\t\t(xy 99.5495 79.159309) (xy 99.576574 79.260351) (xy 99.580202 79.27389) (xy 99.639507 79.376608)\r\n\t\t\t\t(xy 99.639509 79.37661) (xy 99.639511 79.376613) (xy 99.667897 79.404999) (xy 99.695673 79.459514)\r\n\t\t\t\t(xy 99.686102 79.519946) (xy 99.667896 79.545004) (xy 99.625603 79.587296) (xy 99.625599 79.587302)\r\n\t\t\t\t(xy 99.566294 79.69002) (xy 99.566293 79.690025) (xy 99.535592 79.804602) (xy 99.535592 79.92322)\r\n\t\t\t\t(xy 99.544939 79.958103) (xy 99.566294 80.037801) (xy 99.625599 80.140519) (xy 99.625601 80.140521)\r\n\t\t\t\t(xy 99.625603 80.140524) (xy 99.709479 80.2244) (xy 99.709481 80.224401) (xy 99.709483 80.224403)\r\n\t\t\t\t(xy 99.779223 80.264668) (xy 99.820164 80.310138) (xy 99.826559 80.370988) (xy 99.795967 80.423976)\r\n\t\t\t\t(xy 99.779228 80.436138) (xy 99.773389 80.439509) (xy 99.689507 80.523391) (xy 99.630202 80.626109)\r\n\t\t\t\t(xy 99.5995 80.740692) (xy 99.5995 80.855231) (xy 99.580593 80.913422) (xy 99.570509 80.925228)\r\n\t\t\t\t(xy 99.158103 81.337636) (xy 99.158102 81.337635) (xy 99.087635 81.408103) (xy 99.0495 81.500171)\r\n\t\t\t\t(xy 99.0495 81.510118) (xy 99.030593 81.568309) (xy 98.981093 81.604273) (xy 98.919907 81.604273)\r\n\t\t\t\t(xy 98.901001 81.595855) (xy 98.873889 81.580202) (xy 98.873886 81.580201) (xy 98.759309 81.5495)\r\n\t\t\t\t(xy 98.6495 81.5495) (xy 98.591309 81.530593) (xy 98.555345 81.481093) (xy 98.5505 81.4505) (xy 98.5505 81.340692)\r\n\t\t\t\t(xy 98.549681 81.337635) (xy 98.519799 81.226114) (xy 98.519797 81.226111) (xy 98.519797 81.226109)\r\n\t\t\t\t(xy 98.460492 81.123391) (xy 98.46049 81.123389) (xy 98.460489 81.123387) (xy 98.376613 81.039511)\r\n\t\t\t\t(xy 98.37661 81.039509) (xy 98.376608 81.039507) (xy 98.273889 80.980202) (xy 98.27389 80.980202)\r\n\t\t\t\t(xy 98.260351 80.976574) (xy 98.159309 80.9495) (xy 98.040691 80.9495) (xy 97.970567 80.968289)\r\n\t\t\t\t(xy 97.926109 80.980202) (xy 97.823391 81.039507) (xy 97.739507 81.12' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'3391) (xy 97.680202 81.226109)\r\n\t\t\t\t(xy 97.680201 81.226114) (xy 97.6495 81.340691) (xy 95.5505 81.340691) (xy 95.5505 79.027609) (xy 95.569407 78.969418)\r\n\t\t\t\t(xy 95.57949 78.957611) (xy 95.660489 78.876613) (xy 95.662061 78.87389) (xy 95.719797 78.77389)\r\n\t\t\t\t(xy 95.719797 78.773888) (xy 95.719799 78.773886) (xy 95.7505 78.659309) (xy 95.7505 78.540691)\r\n\t\t\t\t(xy 95.719799 78.426114) (xy 95.719797 78.426111) (xy 95.719797 78.426109) (xy 95.660492 78.323391)\r\n\t\t\t\t(xy 95.66049 78.323389) (xy 95.660489 78.323387) (xy 95.576613 78.239511) (xy 95.57661 78.239509)\r\n\t\t\t\t(xy 95.576608 78.239507) (xy 95.473889 78.180202) (xy 95.47389 78.180202) (xy 95.453591 78.174763)\r\n\t\t\t\t(xy 95.359309 78.1495) (xy 95.240691 78.1495) (xy 95.170567 78.168289) (xy 95.126109 78.180202)\r\n\t\t\t\t(xy 95.023391 78.239507) (xy 94.939509 78.323389) (xy 94.935236 78.330791) (xy 94.889766 78.371731)\r\n\t\t\t\t(xy 94.828916 78.378126) (xy 94.775928 78.347533) (xy 94.751042 78.291637) (xy 94.7505 78.28129)\r\n\t\t\t\t(xy 94.7505 78.244767) (xy 94.769407 78.186576) (xy 94.77949 78.174769) (xy 97.074763 75.879495)\r\n\t\t\t\t(xy 97.12928 75.851719) (xy 97.144767 75.8505) (xy 97.259307 75.8505) (xy 97.259309 75.8505) (xy 97.373886 75.819799)\r\n\t\t\t\t(xy 97.373888 75.819797) (xy 97.37389 75.819797) (xy 97.476608 75.760492) (xy 97.476608 75.760491)\r\n\t\t\t\t(xy 97.476613 75.760489) (xy 97.560489 75.676613) (xy 97.58191 75.639511) (xy 97.619797 75.57389)\r\n\t\t\t\t(xy 97.619797 75.573888) (xy 97.619799 75.573886) (xy 97.6505 75.459309) (xy 97.6505 75.340691)\r\n\t\t\t\t(xy 97.619799 75.226114) (xy 97.619797 75.226111) (xy 97.619797 75.226109) (xy 97.560492 75.123391)\r\n\t\t\t\t(xy 97.56049 75.123389) (xy 97.560489 75.123387) (xy 97.476613 75.039511) (xy 97.47661 75.039509)\r\n\t\t\t\t(xy 97.476608 75.039507) (xy 97.373889 74.980202) (xy 97.37389 74.980202) (xy 97.360351 74.976574)\r\n\t\t\t\t(xy 97.259309 74.9495) (xy 97.140691 74.9495) (xy 97.070567 74.968289) (xy 97.026109 74.980202)\r\n\t\t\t\t(xy 96.923391 75.039507) (xy 96.839507 75.123391) (xy 96.780202 75.226109) (xy 96.765708 75.280201)\r\n\t\t\t\t(xy 96.749818 75.339507) (xy 96.7495 75.340692) (xy 96.7495 75.455231) (xy 96.730593 75.513422)\r\n\t\t\t\t(xy 96.720504 75.525234) (xy 94.358103 77.887635) (xy 94.358103 77.887636) (xy 94.358102 77.887635)\r\n\t\t\t\t(xy 94.287635 77.958103) (xy 94.2495 78.050171) (xy 94.2495 88.82239) (xy 94.230593 88.880581) (xy 94.220504 88.892393)\r\n\t\t\t\t(xy 94.139511 88.973386) (xy 94.139507 88.973391) (xy 94.080202 89.076109) (xy 94.067165 89.124763)\r\n\t\t\t\t(xy 94.0495 89.190691) (xy 94.0495 89.309309) (xy 94.066805 89.37389) (xy 94.080202 89.42389) (xy 94.139507 89.526608)\r\n\t\t\t\t(xy 94.139509 89.52661) (xy 94.139511 89.526613) (xy 94.223387 89.610489) (xy 94.223389 89.61049)\r\n\t\t\t\t(xy 94.223391 89.610492) (xy 94.32611 89.669797) (xy 94.326111 89.669797) (xy 94.326114 89.669799)\r\n\t\t\t\t(xy 94.440691 89.7005) (xy 94.440693 89.7005) (xy 94.559307 89.7005) (xy 94.559309 89.7005) (xy 94.673886 89.669799)\r\n\t\t\t\t(xy 94.673888 89.669797) (xy 94.67389 89.669797) (xy 94.776608 89.610492) (xy 94.776608 89.610491)\r\n\t\t\t\t(xy 94.776613 89.610489) (xy 94.860489 89.526613) (xy 94.864763 89.519209) (xy 94.910231 89.478269)\r\n\t\t\t\t(xy 94.971081 89.471872) (xy 95.02407 89.502463) (xy 95.048957 89.558358) (xy 95.0495 89.568709)\r\n\t\t\t\t(xy 95.0495 92.32859) (xy 95.030593 92.386781) (xy 94.981093 92.422745) (xy 94.919907 92.422745)\r\n\t\t\t\t(xy 94.870407 92.386781) (xy 94.859035 92.366473) (xy 94.856734 92.360919) (xy 94.797429 92.2582)\r\n\t\t\t\t(xy 94.797427 92.258198) (xy 94.797426 92.258196) (xy 94.71355 92.17432) (xy 94.713547 92.174318)\r\n\t\t\t\t(xy 94.713545 92.174316) (xy 94.610826 92.115011) (xy 94.610827 92.115011) (xy 94.592566 92.110118)\r\n\t\t\t\t(xy 94.496246 92.084309) (xy 94.377628 92.084309) (xy 94.307504 92.103098) (xy 94.263046 92.115011)\r\n\t\t\t\t(xy 94.160328 92.174316) (xy 94.076446 92.258198) (xy 94.051382 92.30161) (xy 94.005912 92.34255)\r\n\t\t\t\t(xy 93.945062 92.348945) (xy 93.892074 92.318352) (xy 93.879909 92.301609) (xy 93.872982 92.289611)\r\n\t\t\t\t(xy 93.87298 92.289607) (xy 93.789104 92.205731) (xy 93.789101 92.205729) (xy 93.789099 92.205727)\r\n\t\t\t\t(xy 93.68638 92.146422) (xy 93.686381 92.146422) (xy 93.672842 92.142794) (xy 93.5718 92.11572)\r\n\t\t\t\t(xy 93.453182 92.11572) (xy 93.393985 92.131582) (xy 93.3386 92.146422) (xy 93.235882 92.205727)\r\n\t\t\t\t(xy 93.151998 92.289611) (xy 93.092693 92.392329) (xy 93.082869 92.428994) (xy 93.061991 92.506911)\r\n\t\t\t\t(xy 93.061991 92.625529) (xy 93.075188 92.67478) (xy 93.092693 92.74011) (xy 93.151998 92.842828)\r\n\t\t\t\t(xy 93.152 92.84283) (xy 93.152002 92.842833) (xy 93.235878 92.926709) (xy 93.23588 92.92671) (xy 93.235882 92.926712)\r\n\t\t\t\t(xy 93.338601 92.986017) (xy 93.338602 92.986017) (xy 93.338605 92.986019) (xy 93.453182 93.01672)\r\n\t\t\t\t(xy 93.453184 93.01672) (xy 93.5005 93.01672) (xy 93.558691 93.035627) (xy 93.594655 93.085127)\r\n\t\t\t\t(xy 93.5995 93.11572) (xy 93.5995 93.68484) (xy 93.580593 93.743031) (xy 93.531093 93.778995) (xy 93.474877 93.780467)\r\n\t\t\t\t(xy 93.473887 93.780201) (xy 93.473886 93.780201) (xy 93.359309 93.7495) (xy 93.240691 93.7495)\r\n\t\t\t\t(xy 93.170567 93.768289) (xy 93.126109 93.780202) (xy 93.023391 93.839507) (xy 92.939507 93.923391)\r\n\t\t\t\t(xy 92.880202 94.026109) (xy 92.880201 94.026114) (xy 92.8495 94.140691) (xy 90.5505 94.140691)\r\n\t\t\t\t(xy 90.5505 91.628825) (xy 90.569407 91.570634) (xy 90.618907 91.53467) (xy 90.623853 91.533205)\r\n\t\t\t\t(xy 90.673886 91.519799) (xy 90.775456 91.461157) (xy 90.776608 91.460492) (xy 90.776608 91.460491)\r\n\t\t\t\t(xy 90.776613 91.460489) (xy 90.860489 91.376613) (xy 90.918225 91.276613) (xy 90.919797 91.27389)\r\n\t\t\t\t(xy 90.919797 91.273888) (xy 90.919799 91.273886) (xy 90.9505 91.159309) (xy 90.9505 91.040691)\r\n\t\t\t\t(xy 90.919799 90.926114) (xy 90.919797 90.926111) (xy 90.919797 90.926109) (xy 90.860492 90.823391)\r\n\t\t\t\t(xy 90.86049 90.823389) (xy 90.860489 90.823387) (xy 90.776613 90.739511) (xy 90.77661 90.739509)\r\n\t\t\t\t(xy 90.776608 90.739507) (xy 90.673889 90.680202) (xy 90.67389 90.680202) (xy 90.660351 90.676574)\r\n\t\t\t\t(xy 90.559309 90.6495) (xy 90.440691 90.6495) (xy 90.370567 90.668289) (xy 90.326109 90.680202)\r\n\t\t\t\t(xy 90.223391 90.739507) (xy 90.139507 90.823391) (xy 90.080202 90.926109) (xy 90.0495 91.040692)\r\n\t\t\t\t(xy 90.0495 91.159313) (xy 90.055585 91.182023) (xy 90.052381 91.243124) (xy 90.051425 91.245521)\r\n\t\t\t\t(xy 90.0495 91.250167) (xy 90.0495 113.37239) (xy 90.030593 113.430581) (xy 90.020504 113.442393)\r\n\t\t\t\t(xy 89.939511 113.523386) (xy 89.939507 113.523391) (xy 89.880202 113.626109) (xy 89.880201 113.626114)\r\n\t\t\t\t(xy 89.8495 113.740691) (xy 74.0005 113.740691) (xy 74.0005 112.399) (xy 74.019407 112.340809) (xy 74.068907 112.304845)\r\n\t\t\t\t(xy 74.0995 112.3) (xy 82.899999 112.3) (xy 82.9 112.3) (xy 82.9 97.3) (xy 82.899999 97.3) (xy 74.0995 97.3)\r\n\t\t\t\t(xy 74.041309 97.281093) (xy 74.005345 97.231593) (xy 74.0005 97.201) (xy 74.0005 92.174034) (xy 76.7995 92.174034)\r\n\t\t\t\t(xy 76.7995 92.425965) (xy 76.838908 92.67478) (xy 76.916759 92.914379) (xy 77.02464 93.126109)\r\n\t\t\t\t(xy 77.03113 93.138845) (xy 77.179207 93.342656) (xy 77.357344 93.520793) (xy 77.561155 93.66887)\r\n\t\t\t\t(xy 77.785621 93.783241) (xy 78.025215 93.86109) (xy 78.025216 93.86109) (xy 78.025219 93.861091)\r\n\t\t\t\t(xy 78.274035 93.9005) (xy 78.274038 93.9005) (xy 78.525965 93.9005) (xy 78.77478 93.861091) (xy 78.774781 93.86109)\r\n\t\t\t\t(xy 78.774785 93.86109) (xy 79.014379 93.783241) (xy 79.238845 93.66887) (xy 79.442656 93.520793)\r\n\t\t\t\t(xy 79.620793 93.342656) (xy 79.76887 93.138845) (xy 79.883241 92.914379) (xy 79.96109 92.674785)\r\n\t\t\t\t(xy 79.961232 92.67389) (xy 80.0005 92.425965) (xy 80.0005 92.174034) (xy 79.961091 91.925219) (xy 79.956655 91.911565)\r\n\t\t\t\t(xy 79.883241 91.685621) (xy 79.76887 91.461155) (xy 79.620793 91.257344) (xy 79.442656 91.079207)\r\n\t\t\t\t(xy 79.238845 90.93113) (xy 79.238844 90.931129) (xy 79.238842 90.931128) (xy 79.014379 90.816759)\r\n\t\t\t\t(xy 78.77478 90.738908) (xy 78.525965 90.6995) (xy 78.525962 90.6995) (xy 78.274038 90.6995) (xy 78.274035 90.6995)\r\n\t\t\t\t(xy 78.025219 90.738908) (xy 77.78562 90.816759) (xy 77.561157 90.931128) (xy 77.357345 91.079206)\r\n\t\t\t\t(xy 77.179206 91.257345) (xy 77.031128 91.461157) (xy 76.916759 91.68562) (xy 76.838908 91.925219)\r\n\t\t\t\t(xy 76.7995 92.174034) (xy 74.0005 92.174034) (xy 74.000' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'5 77.640691) (xy 75.1495 77.640691) (xy 75.1495 77.759309)\r\n\t\t\t\t(xy 75.166077 77.821175) (xy 75.180202 77.87389) (xy 75.239507 77.976608) (xy 75.239509 77.97661)\r\n\t\t\t\t(xy 75.239511 77.976613) (xy 75.323387 78.060489) (xy 75.323389 78.06049) (xy 75.323391 78.060492)\r\n\t\t\t\t(xy 75.42611 78.119797) (xy 75.426111 78.119797) (xy 75.426114 78.119799) (xy 75.540691 78.1505)\r\n\t\t\t\t(xy 75.540693 78.1505) (xy 75.659307 78.1505) (xy 75.659309 78.1505) (xy 75.773886 78.119799) (xy 75.773888 78.119797)\r\n\t\t\t\t(xy 75.77389 78.119797) (xy 75.876608 78.060492) (xy 75.876608 78.060491) (xy 75.876613 78.060489)\r\n\t\t\t\t(xy 75.960489 77.976613) (xy 75.98191 77.939511) (xy 76.019797 77.87389) (xy 76.019797 77.873888)\r\n\t\t\t\t(xy 76.019799 77.873886) (xy 76.0505 77.759309) (xy 76.0505 77.640691) (xy 76.019799 77.526114)\r\n\t\t\t\t(xy 76.019797 77.526111) (xy 76.019797 77.526109) (xy 75.995313 77.483702) (xy 75.97048 77.440691)\r\n\t\t\t\t(xy 79.4495 77.440691) (xy 79.4495 77.559309) (xy 79.463648 77.61211) (xy 79.480202 77.67389) (xy 79.539507 77.776608)\r\n\t\t\t\t(xy 79.539509 77.77661) (xy 79.539511 77.776613) (xy 79.623387 77.860489) (xy 79.700001 77.904722)\r\n\t\t\t\t(xy 79.740941 77.950191) (xy 79.7495 77.990458) (xy 79.7495 88.47239) (xy 79.730593 88.530581) (xy 79.720504 88.542393)\r\n\t\t\t\t(xy 79.639511 88.623386) (xy 79.639507 88.623391) (xy 79.580202 88.726109) (xy 79.571472 88.758691)\r\n\t\t\t\t(xy 79.5495 88.840691) (xy 79.5495 88.959309) (xy 79.572399 89.044768) (xy 79.580202 89.07389) (xy 79.639507 89.176608)\r\n\t\t\t\t(xy 79.639509 89.17661) (xy 79.639511 89.176613) (xy 79.723387 89.260489) (xy 79.723389 89.26049)\r\n\t\t\t\t(xy 79.723391 89.260492) (xy 79.82611 89.319797) (xy 79.826111 89.319797) (xy 79.826114 89.319799)\r\n\t\t\t\t(xy 79.940691 89.3505) (xy 79.940693 89.3505) (xy 80.059307 89.3505) (xy 80.059309 89.3505) (xy 80.173886 89.319799)\r\n\t\t\t\t(xy 80.173888 89.319797) (xy 80.17389 89.319797) (xy 80.276608 89.260492) (xy 80.276608 89.260491)\r\n\t\t\t\t(xy 80.276613 89.260489) (xy 80.360489 89.176613) (xy 80.419799 89.073886) (xy 80.4505 88.959309)\r\n\t\t\t\t(xy 80.4505 88.840691) (xy 80.419799 88.726114) (xy 80.419797 88.726111) (xy 80.419797 88.726109)\r\n\t\t\t\t(xy 80.360492 88.623391) (xy 80.360488 88.623386) (xy 80.279496 88.542393) (xy 80.251719 88.487876)\r\n\t\t\t\t(xy 80.2505 88.47239) (xy 80.2505 87.740691) (xy 90.9495 87.740691) (xy 90.9495 87.859309) (xy 90.976549 87.960257)\r\n\t\t\t\t(xy 90.980202 87.97389) (xy 91.039507 88.076608) (xy 91.039509 88.07661) (xy 91.039511 88.076613)\r\n\t\t\t\t(xy 91.123387 88.160489) (xy 91.123389 88.16049) (xy 91.123391 88.160492) (xy 91.22611 88.219797)\r\n\t\t\t\t(xy 91.226111 88.219797) (xy 91.226114 88.219799) (xy 91.340691 88.2505) (xy 91.340693 88.2505)\r\n\t\t\t\t(xy 91.459306 88.2505) (xy 91.459309 88.2505) (xy 91.551433 88.225815) (xy 91.612532 88.229017)\r\n\t\t\t\t(xy 91.660082 88.267522) (xy 91.672679 88.295815) (xy 91.677397 88.313421) (xy 91.680202 88.32389)\r\n\t\t\t\t(xy 91.739507 88.426608) (xy 91.739509 88.42661) (xy 91.739511 88.426613) (xy 91.823387 88.510489)\r\n\t\t\t\t(xy 91.823389 88.51049) (xy 91.823391 88.510492) (xy 91.92611 88.569797) (xy 91.926111 88.569797)\r\n\t\t\t\t(xy 91.926114 88.569799) (xy 92.040691 88.6005) (xy 92.040693 88.6005) (xy 92.157777 88.6005) (xy 92.215968 88.619407)\r\n\t\t\t\t(xy 92.251932 88.668907) (xy 92.253398 88.673859) (xy 92.276792 88.761166) (xy 92.280202 88.77389)\r\n\t\t\t\t(xy 92.339507 88.876608) (xy 92.339509 88.87661) (xy 92.339511 88.876613) (xy 92.423387 88.960489)\r\n\t\t\t\t(xy 92.423389 88.96049) (xy 92.423391 88.960492) (xy 92.52611 89.019797) (xy 92.526111 89.019797)\r\n\t\t\t\t(xy 92.526114 89.019799) (xy 92.640691 89.0505) (xy 92.640693 89.0505) (xy 92.759307 89.0505) (xy 92.759309 89.0505)\r\n\t\t\t\t(xy 92.873886 89.019799) (xy 92.873888 89.019797) (xy 92.87389 89.019797) (xy 92.976608 88.960492)\r\n\t\t\t\t(xy 92.976608 88.960491) (xy 92.976613 88.960489) (xy 93.060489 88.876613) (xy 93.075755 88.850172)\r\n\t\t\t\t(xy 93.119797 88.77389) (xy 93.119797 88.773888) (xy 93.119799 88.773886) (xy 93.1505 88.659309)\r\n\t\t\t\t(xy 93.1505 88.540691) (xy 93.119799 88.426114) (xy 93.119797 88.426111) (xy 93.119797 88.426109)\r\n\t\t\t\t(xy 93.060492 88.323391) (xy 93.06049 88.323389) (xy 93.060489 88.323387) (xy 92.976613 88.239511)\r\n\t\t\t\t(xy 92.97661 88.239509) (xy 92.976608 88.239507) (xy 92.873889 88.180202) (xy 92.87389 88.180202)\r\n\t\t\t\t(xy 92.849497 88.173666) (xy 92.759309 88.1495) (xy 92.642223 88.1495) (xy 92.584032 88.130593)\r\n\t\t\t\t(xy 92.548068 88.081093) (xy 92.546596 88.076123) (xy 92.519799 87.976114) (xy 92.519797 87.976111)\r\n\t\t\t\t(xy 92.519797 87.976109) (xy 92.460492 87.873391) (xy 92.46049 87.873389) (xy 92.460489 87.873387)\r\n\t\t\t\t(xy 92.376613 87.789511) (xy 92.37661 87.789509) (xy 92.376608 87.789507) (xy 92.273889 87.730202)\r\n\t\t\t\t(xy 92.27389 87.730202) (xy 92.25143 87.724184) (xy 92.159309 87.6995) (xy 92.040691 87.6995) (xy 92.022031 87.7045)\r\n\t\t\t\t(xy 91.948567 87.724184) (xy 91.887466 87.720981) (xy 91.839916 87.682476) (xy 91.827319 87.654182)\r\n\t\t\t\t(xy 91.819799 87.626114) (xy 91.819798 87.626113) (xy 91.819798 87.626111) (xy 91.819797 87.62611)\r\n\t\t\t\t(xy 91.760492 87.523391) (xy 91.76049 87.523389) (xy 91.760489 87.523387) (xy 91.676613 87.439511)\r\n\t\t\t\t(xy 91.67661 87.439509) (xy 91.676608 87.439507) (xy 91.573889 87.380202) (xy 91.57389 87.380202)\r\n\t\t\t\t(xy 91.560351 87.376574) (xy 91.459309 87.3495) (xy 91.340691 87.3495) (xy 91.270567 87.368289)\r\n\t\t\t\t(xy 91.226109 87.380202) (xy 91.123391 87.439507) (xy 91.039507 87.523391) (xy 90.980202 87.626109)\r\n\t\t\t\t(xy 90.980201 87.626114) (xy 90.9495 87.740691) (xy 80.2505 87.740691) (xy 80.2505 84.224) (xy 80.269407 84.165809)\r\n\t\t\t\t(xy 80.318907 84.129845) (xy 80.3495 84.125) (xy 80.849999 84.125) (xy 80.85 84.124999) (xy 80.85 83.208012)\r\n\t\t\t\t(xy 80.907007 83.240925) (xy 81.034174 83.275) (xy 81.165826 83.275) (xy 81.292993 83.240925) (xy 81.35 83.208012)\r\n\t\t\t\t(xy 81.35 84.124999) (xy 81.350001 84.125) (xy 81.997824 84.125) (xy 82.05737 84.118598) (xy 82.057381 84.118596)\r\n\t\t\t\t(xy 82.192088 84.068353) (xy 82.19209 84.068352) (xy 82.307184 83.982192) (xy 82.307192 83.982184)\r\n\t\t\t\t(xy 82.393352 83.86709) (xy 82.393353 83.867088) (xy 82.443596 83.732381) (xy 82.443598 83.73237)\r\n\t\t\t\t(xy 82.45 83.672824) (xy 82.45 83.025001) (xy 82.449999 83.025) (xy 81.533012 83.025) (xy 81.565925 82.967993)\r\n\t\t\t\t(xy 81.6 82.840826) (xy 81.6 82.709174) (xy 81.565925 82.582007) (xy 81.533012 82.525) (xy 82.449999 82.525)\r\n\t\t\t\t(xy 82.45 82.524999) (xy 82.45 81.877175) (xy 82.443598 81.817629) (xy 82.443596 81.817618) (xy 82.393353 81.682911)\r\n\t\t\t\t(xy 82.393352 81.682909) (xy 82.307192 81.567815) (xy 82.307184 81.567807) (xy 82.19209 81.481647)\r\n\t\t\t\t(xy 82.192088 81.481646) (xy 82.057381 81.431403) (xy 82.05737 81.431401) (xy 81.997824 81.425)\r\n\t\t\t\t(xy 81.251026 81.425) (xy 81.192835 81.406093) (xy 81.156871 81.356593) (xy 81.156871 81.295407)\r\n\t\t\t\t(xy 81.192835 81.245907) (xy 81.231712 81.228902) (xy 81.262719 81.222734) (xy 81.391835 81.197051)\r\n\t\t\t\t(xy 81.573914 81.121632) (xy 81.737782 81.012139) (xy 81.877139 80.872782) (xy 81.986632 80.708914)\r\n\t\t\t\t(xy 82.062051 80.526835) (xy 82.1005 80.333541) (xy 82.1005 80.136459) (xy 82.062051 79.943165)\r\n\t\t\t\t(xy 81.986632 79.761086) (xy 81.877139 79.597218) (xy 81.737782 79.457861) (xy 81.592059 79.360492)\r\n\t\t\t\t(xy 81.573913 79.348367) (xy 81.391835 79.272949) (xy 81.198543 79.2345) (xy 81.198541 79.2345)\r\n\t\t\t\t(xy 81.001459 79.2345) (xy 81.001456 79.2345) (xy 80.808165 79.272949) (xy 80.808163 79.272949)\r\n\t\t\t\t(xy 80.626086 79.348367) (xy 80.462218 79.457861) (xy 80.462214 79.457864) (xy 80.419504 79.500575)\r\n\t\t\t\t(xy 80.364987 79.528352) (xy 80.304555 79.518781) (xy 80.26129 79.475516) (xy 80.2505 79.430571)\r\n\t\t\t\t(xy 80.2505 78.940691) (xy 91.8495 78.940691) (xy 91.8495 79.059309) (xy 91.855098 79.080201) (xy 91.880202 79.17389)\r\n\t\t\t\t(xy 91.939507 79.276608) (xy 91.939509 79.27661) (xy 91.939511 79.276613) (xy 92.023387 79.360489)\r\n\t\t\t\t(xy 92.023389 79.36049) (xy 92.023391 79.360492) (xy 92.12611 79.419797) (xy 92.126111 79.419797)\r\n\t\t\t\t(xy 92.126114 79.419799) (xy 92.240691 79.4505) (xy 92.240693 79.4505) (xy 92.359307 79.4505) (xy 92.359309 79.4505)\r\n\t\t\t\t(xy 92.473886 79.419799) (xy 92.473888 79.419797) (xy 92.47389 79.419797) (xy 92.576608 79.360492)\r\n\t\t\t\t(xy 92.576608 79.360491) (xy 92.576613 79.360489) (xy 92.66' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'0489 79.276613) (xy 92.662061 79.27389)\r\n\t\t\t\t(xy 92.719797 79.17389) (xy 92.719797 79.173888) (xy 92.719799 79.173886) (xy 92.7505 79.059309)\r\n\t\t\t\t(xy 92.7505 78.940691) (xy 92.719799 78.826114) (xy 92.719797 78.826111) (xy 92.719797 78.826109)\r\n\t\t\t\t(xy 92.660492 78.723391) (xy 92.66049 78.723389) (xy 92.660489 78.723387) (xy 92.576613 78.639511)\r\n\t\t\t\t(xy 92.57661 78.639509) (xy 92.576608 78.639507) (xy 92.473889 78.580202) (xy 92.47389 78.580202)\r\n\t\t\t\t(xy 92.432893 78.569217) (xy 92.359309 78.5495) (xy 92.240691 78.5495) (xy 92.199669 78.560492)\r\n\t\t\t\t(xy 92.126109 78.580202) (xy 92.023391 78.639507) (xy 91.939507 78.723391) (xy 91.880202 78.826109)\r\n\t\t\t\t(xy 91.873429 78.851388) (xy 91.8495 78.940691) (xy 80.2505 78.940691) (xy 80.2505 77.820441) (xy 80.263764 77.77094)\r\n\t\t\t\t(xy 80.265738 77.767521) (xy 80.319799 77.673886) (xy 80.3505 77.559309) (xy 80.3505 77.440691)\r\n\t\t\t\t(xy 80.319799 77.326114) (xy 80.319797 77.326111) (xy 80.319797 77.326109) (xy 80.260492 77.223391)\r\n\t\t\t\t(xy 80.26049 77.223389) (xy 80.260489 77.223387) (xy 80.176613 77.139511) (xy 80.17661 77.139509)\r\n\t\t\t\t(xy 80.176608 77.139507) (xy 80.073889 77.080202) (xy 80.07389 77.080202) (xy 80.053591 77.074763)\r\n\t\t\t\t(xy 79.959309 77.0495) (xy 79.840691 77.0495) (xy 79.770567 77.068289) (xy 79.726109 77.080202)\r\n\t\t\t\t(xy 79.623391 77.139507) (xy 79.539507 77.223391) (xy 79.480202 77.326109) (xy 79.464962 77.382987)\r\n\t\t\t\t(xy 79.4495 77.440691) (xy 75.97048 77.440691) (xy 75.960492 77.423391) (xy 75.96049 77.423389)\r\n\t\t\t\t(xy 75.960489 77.423387) (xy 75.876613 77.339511) (xy 75.87661 77.339509) (xy 75.876608 77.339507)\r\n\t\t\t\t(xy 75.773889 77.280202) (xy 75.77389 77.280202) (xy 75.748467 77.27339) (xy 75.659309 77.2495)\r\n\t\t\t\t(xy 75.540691 77.2495) (xy 75.470567 77.268289) (xy 75.426109 77.280202) (xy 75.323391 77.339507)\r\n\t\t\t\t(xy 75.239507 77.423391) (xy 75.180202 77.526109) (xy 75.180201 77.526114) (xy 75.1495 77.640691)\r\n\t\t\t\t(xy 74.0005 77.640691) (xy 74.0005 76.740691) (xy 81.9495 76.740691) (xy 81.9495 76.859309) (xy 81.968186 76.929044)\r\n\t\t\t\t(xy 81.980202 76.97389) (xy 82.039507 77.076608) (xy 82.039509 77.07661) (xy 82.039511 77.076613)\r\n\t\t\t\t(xy 82.123387 77.160489) (xy 82.123389 77.16049) (xy 82.123391 77.160492) (xy 82.22611 77.219797)\r\n\t\t\t\t(xy 82.226111 77.219797) (xy 82.226114 77.219799) (xy 82.340691 77.2505) (xy 82.340693 77.2505)\r\n\t\t\t\t(xy 82.459307 77.2505) (xy 82.459309 77.2505) (xy 82.573886 77.219799) (xy 82.573888 77.219797)\r\n\t\t\t\t(xy 82.57389 77.219797) (xy 82.676608 77.160492) (xy 82.676608 77.160491) (xy 82.676613 77.160489)\r\n\t\t\t\t(xy 82.760489 77.076613) (xy 82.791394 77.023085) (xy 82.819797 76.97389) (xy 82.819797 76.973888)\r\n\t\t\t\t(xy 82.819799 76.973886) (xy 82.8505 76.859309) (xy 82.8505 76.740691) (xy 82.819799 76.626114)\r\n\t\t\t\t(xy 82.819797 76.626111) (xy 82.819797 76.626109) (xy 82.760492 76.523391) (xy 82.76049 76.523389)\r\n\t\t\t\t(xy 82.760489 76.523387) (xy 82.676613 76.439511) (xy 82.67661 76.439509) (xy 82.676608 76.439507)\r\n\t\t\t\t(xy 82.573889 76.380202) (xy 82.57389 76.380202) (xy 82.535767 76.369987) (xy 82.459309 76.3495)\r\n\t\t\t\t(xy 82.340691 76.3495) (xy 82.270567 76.368289) (xy 82.226109 76.380202) (xy 82.123391 76.439507)\r\n\t\t\t\t(xy 82.039507 76.523391) (xy 81.980202 76.626109) (xy 81.970662 76.661712) (xy 81.9495 76.740691)\r\n\t\t\t\t(xy 74.0005 76.740691) (xy 74.0005 69.315691) (xy 92.8495 69.315691) (xy 92.8495 69.434309) (xy 92.857593 69.464511)\r\n\t\t\t\t(xy 92.880202 69.54889) (xy 92.939507 69.651608) (xy 92.939509 69.65161) (xy 92.939511 69.651613)\r\n\t\t\t\t(xy 93.017896 69.729998) (xy 93.045672 69.784513) (xy 93.036101 69.844945) (xy 93.017897 69.87)\r\n\t\t\t\t(xy 92.948391 69.939507) (xy 92.939508 69.94839) (xy 92.939507 69.948391) (xy 92.880202 70.051109)\r\n\t\t\t\t(xy 92.880201 70.051114) (xy 92.8495 70.165691) (xy 92.8495 70.284309) (xy 92.873864 70.375235)\r\n\t\t\t\t(xy 92.880202 70.39889) (xy 92.939507 70.501608) (xy 92.939509 70.50161) (xy 92.939511 70.501613)\r\n\t\t\t\t(xy 93.023387 70.585489) (xy 93.023389 70.58549) (xy 93.023391 70.585492) (xy 93.12611 70.644797)\r\n\t\t\t\t(xy 93.126111 70.644797) (xy 93.126114 70.644799) (xy 93.240691 70.6755) (xy 93.240693 70.6755)\r\n\t\t\t\t(xy 93.359307 70.6755) (xy 93.359309 70.6755) (xy 93.473886 70.644799) (xy 93.473888 70.644797)\r\n\t\t\t\t(xy 93.47389 70.644797) (xy 93.576608 70.585492) (xy 93.576608 70.585491) (xy 93.576613 70.585489)\r\n\t\t\t\t(xy 93.660489 70.501613) (xy 93.676495 70.47389) (xy 93.719797 70.39889) (xy 93.719797 70.398888)\r\n\t\t\t\t(xy 93.719799 70.398886) (xy 93.733199 70.348876) (xy 93.766522 70.297564) (xy 93.823644 70.275637)\r\n\t\t\t\t(xy 93.828825 70.275501) (xy 99.043026 70.275501) (xy 99.101082 70.251452) (xy 99.135094 70.237365)\r\n\t\t\t\t(xy 100.487364 68.885095) (xy 100.5255 68.793026) (xy 100.5255 68.69337) (xy 100.5255 68.394769)\r\n\t\t\t\t(xy 100.544407 68.336578) (xy 100.55449 68.324771) (xy 100.662364 68.216898) (xy 100.7005 68.124829)\r\n\t\t\t\t(xy 100.7005 68.025174) (xy 100.7005 68.025173) (xy 100.7005 67.9754) (xy 100.705067 67.961341)\r\n\t\t\t\t(xy 100.704793 67.946563) (xy 100.713819 67.934405) (xy 100.719407 67.917209) (xy 100.73983 67.896403)\r\n\t\t\t\t(xy 100.742107 67.894682) (xy 100.773624 67.873624) (xy 100.77733 67.868077) (xy 100.79033 67.858258)\r\n\t\t\t\t(xy 100.813073 67.850397) (xy 100.834513 67.839474) (xy 100.841485 67.840578) (xy 100.848159 67.838272)\r\n\t\t\t\t(xy 100.871177 67.84528) (xy 100.894945 67.849045) (xy 100.903172 67.855022) (xy 100.906691 67.856094)\r\n\t\t\t\t(xy 100.909176 67.859384) (xy 100.920004 67.867251) (xy 100.926373 67.87362) (xy 100.926376 67.873624)\r\n\t\t\t\t(xy 101.017505 67.934515) (xy 101.094815 67.949893) (xy 101.148198 67.979789) (xy 101.173814 68.035354)\r\n\t\t\t\t(xy 101.1745 68.04699) (xy 101.1745 68.293026) (xy 101.212634 68.385092) (xy 101.212635 68.385093)\r\n\t\t\t\t(xy 101.212636 68.385095) (xy 102.594438 69.766896) (xy 102.594439 69.766898) (xy 102.664906 69.837365)\r\n\t\t\t\t(xy 102.703043 69.853161) (xy 102.730443 69.864511) (xy 102.756973 69.875501) (xy 102.756976 69.875502)\r\n\t\t\t\t(xy 102.756979 69.875502) (xy 102.868154 69.875502) (xy 102.868162 69.875501) (xy 103.971175 69.875501)\r\n\t\t\t\t(xy 104.029366 69.894408) (xy 104.06533 69.943908) (xy 104.066794 69.948853) (xy 104.074232 69.976608)\r\n\t\t\t\t(xy 104.080202 69.99889) (xy 104.139507 70.101608) (xy 104.139509 70.10161) (xy 104.139511 70.101613)\r\n\t\t\t\t(xy 104.223387 70.185489) (xy 104.223389 70.18549) (xy 104.223391 70.185492) (xy 104.32611 70.244797)\r\n\t\t\t\t(xy 104.326111 70.244797) (xy 104.326114 70.244799) (xy 104.440691 70.2755) (xy 104.440693 70.2755)\r\n\t\t\t\t(xy 104.559307 70.2755) (xy 104.559309 70.2755) (xy 104.673886 70.244799) (xy 104.673888 70.244797)\r\n\t\t\t\t(xy 104.67389 70.244797) (xy 104.776608 70.185492) (xy 104.776608 70.185491) (xy 104.776613 70.185489)\r\n\t\t\t\t(xy 104.830498 70.131603) (xy 104.885013 70.103828) (xy 104.945445 70.113399) (xy 104.98871 70.156664)\r\n\t\t\t\t(xy 104.9995 70.201609) (xy 104.9995 70.555231) (xy 104.980593 70.613422) (xy 104.970504 70.625235)\r\n\t\t\t\t(xy 103.558103 72.037636) (xy 103.558102 72.037635) (xy 103.487635 72.108103) (xy 103.4495 72.200171)\r\n\t\t\t\t(xy 103.4495 77.38129) (xy 103.430593 77.439481) (xy 103.381093 77.475445) (xy 103.319907 77.475445)\r\n\t\t\t\t(xy 103.270407 77.439481) (xy 103.264764 77.430791) (xy 103.26049 77.423389) (xy 103.260489 77.423387)\r\n\t\t\t\t(xy 103.176613 77.339511) (xy 103.17661 77.339509) (xy 103.176608 77.339507) (xy 103.073889 77.280202)\r\n\t\t\t\t(xy 103.07389 77.280202) (xy 103.048467 77.27339) (xy 102.959309 77.2495) (xy 102.840691 77.2495)\r\n\t\t\t\t(xy 102.770567 77.268289) (xy 102.726109 77.280202) (xy 102.623391 77.339507) (xy 102.539507 77.423391)\r\n\t\t\t\t(xy 102.480202 77.526109) (xy 102.480201 77.526114) (xy 102.4495 77.640691) (xy 102.4495 77.759309)\r\n\t\t\t\t(xy 102.480201 77.873886) (xy 102.480202 77.873888) (xy 102.485938 77.883822) (xy 102.535237 77.969211)\r\n\t\t\t\t(xy 102.536236 77.97094) (xy 102.5495 78.020441) (xy 102.5495 90.510118) (xy 102.530593 90.568309)\r\n\t\t\t\t(xy 102.481093 90.604273) (xy 102.419907 90.604273) (xy 102.401001 90.595855) (xy 102.373889 90.580202)\r\n\t\t\t\t(xy 102.373886 90.580201) (xy 102.259309 90.5495) (xy 102.140691 90.5495) (xy 102.070567 90.568289)\r\n\t\t\t\t(xy 102.026109 90.580202) (xy 101.923391 90.639507) (xy 101.839507 90.723391) (xy 101.780202 90.826109)\r\n\t\t\t\t(xy 101.765708 90.880201) (xy 101.7495 9' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'0.940691) (xy 101.7495 91.059309) (xy 101.776295 91.159307)\r\n\t\t\t\t(xy 101.780202 91.17389) (xy 101.839507 91.276608) (xy 101.839509 91.27661) (xy 101.839511 91.276613)\r\n\t\t\t\t(xy 101.923387 91.360489) (xy 101.923389 91.36049) (xy 101.923391 91.360492) (xy 102.02611 91.419797)\r\n\t\t\t\t(xy 102.026111 91.419797) (xy 102.026114 91.419799) (xy 102.140691 91.4505) (xy 102.140693 91.4505)\r\n\t\t\t\t(xy 102.259307 91.4505) (xy 102.259309 91.4505) (xy 102.373886 91.419799) (xy 102.400999 91.404144)\r\n\t\t\t\t(xy 102.460847 91.391423) (xy 102.516743 91.416309) (xy 102.547336 91.469296) (xy 102.5495 91.489881)\r\n\t\t\t\t(xy 102.5495 92.073391) (xy 102.530593 92.131582) (xy 102.481093 92.167546) (xy 102.419907 92.167546)\r\n\t\t\t\t(xy 102.380498 92.143396) (xy 102.376613 92.139511) (xy 102.37661 92.139509) (xy 102.376608 92.139507)\r\n\t\t\t\t(xy 102.273889 92.080202) (xy 102.27389 92.080202) (xy 102.248471 92.073391) (xy 102.159309 92.0495)\r\n\t\t\t\t(xy 102.040691 92.0495) (xy 102.004084 92.059309) (xy 101.926109 92.080202) (xy 101.823391 92.139507)\r\n\t\t\t\t(xy 101.739507 92.223391) (xy 101.680202 92.326109) (xy 101.674083 92.348945) (xy 101.6495 92.440691)\r\n\t\t\t\t(xy 101.6495 92.559309) (xy 101.664914 92.616833) (xy 101.680202 92.67389) (xy 101.739507 92.776608)\r\n\t\t\t\t(xy 101.739509 92.77661) (xy 101.739511 92.776613) (xy 101.823387 92.860489) (xy 101.823389 92.86049)\r\n\t\t\t\t(xy 101.823391 92.860492) (xy 101.92611 92.919797) (xy 101.926111 92.919797) (xy 101.926114 92.919799)\r\n\t\t\t\t(xy 102.040691 92.9505) (xy 102.040693 92.9505) (xy 102.159307 92.9505) (xy 102.159309 92.9505)\r\n\t\t\t\t(xy 102.273886 92.919799) (xy 102.273888 92.919797) (xy 102.27389 92.919797) (xy 102.376608 92.860492)\r\n\t\t\t\t(xy 102.376608 92.860491) (xy 102.376613 92.860489) (xy 102.380498 92.856603) (xy 102.435013 92.828828)\r\n\t\t\t\t(xy 102.495445 92.838399) (xy 102.53871 92.881664) (xy 102.5495 92.926609) (xy 102.5495 94.049828)\r\n\t\t\t\t(xy 102.587634 94.141894) (xy 102.587635 94.141895) (xy 102.587636 94.141897) (xy 103.130832 94.685092)\r\n\t\t\t\t(xy 103.620504 95.174764) (xy 103.648281 95.229281) (xy 103.6495 95.244768) (xy 103.6495 95.359309)\r\n\t\t\t\t(xy 103.663463 95.411418) (xy 103.680202 95.47389) (xy 103.739507 95.576608) (xy 103.739509 95.57661)\r\n\t\t\t\t(xy 103.739511 95.576613) (xy 103.823387 95.660489) (xy 103.823389 95.66049) (xy 103.823391 95.660492)\r\n\t\t\t\t(xy 103.92611 95.719797) (xy 103.926111 95.719797) (xy 103.926114 95.719799) (xy 104.040691 95.7505)\r\n\t\t\t\t(xy 104.040693 95.7505) (xy 104.159307 95.7505) (xy 104.159309 95.7505) (xy 104.273886 95.719799)\r\n\t\t\t\t(xy 104.273888 95.719797) (xy 104.27389 95.719797) (xy 104.376608 95.660492) (xy 104.376608 95.660491)\r\n\t\t\t\t(xy 104.376613 95.660489) (xy 104.460489 95.576613) (xy 104.470645 95.559023) (xy 104.519797 95.47389)\r\n\t\t\t\t(xy 104.519797 95.473888) (xy 104.519799 95.473886) (xy 104.5505 95.359309) (xy 104.5505 95.240691)\r\n\t\t\t\t(xy 104.519799 95.126114) (xy 104.460489 95.023387) (xy 104.438634 95.001532) (xy 132.3595 95.001532)\r\n\t\t\t\t(xy 132.3595 95.208467) (xy 132.399869 95.411418) (xy 132.479058 95.602597) (xy 132.577883 95.7505)\r\n\t\t\t\t(xy 132.594023 95.774655) (xy 132.740345 95.920977) (xy 132.912402 96.035941) (xy 133.10358 96.11513)\r\n\t\t\t\t(xy 133.306535 96.1555) (xy 133.306536 96.1555) (xy 133.513464 96.1555) (xy 133.513465 96.1555)\r\n\t\t\t\t(xy 133.71642 96.11513) (xy 133.907598 96.035941) (xy 134.079655 95.920977) (xy 134.225977 95.774655)\r\n\t\t\t\t(xy 134.340941 95.602598) (xy 134.42013 95.41142) (xy 134.4605 95.208465) (xy 134.4605 95.001535)\r\n\t\t\t\t(xy 134.42013 94.79858) (xy 134.340941 94.607402) (xy 134.225977 94.435345) (xy 134.079655 94.289023)\r\n\t\t\t\t(xy 134.035182 94.259307) (xy 133.907597 94.174058) (xy 133.716418 94.094869) (xy 133.513467 94.0545)\r\n\t\t\t\t(xy 133.513465 94.0545) (xy 133.306535 94.0545) (xy 133.306532 94.0545) (xy 133.103581 94.094869)\r\n\t\t\t\t(xy 132.912402 94.174058) (xy 132.740348 94.28902) (xy 132.59402 94.435348) (xy 132.479058 94.607402)\r\n\t\t\t\t(xy 132.399869 94.798581) (xy 132.3595 95.001532) (xy 104.438634 95.001532) (xy 104.376613 94.939511)\r\n\t\t\t\t(xy 104.37661 94.939509) (xy 104.376608 94.939507) (xy 104.273889 94.880202) (xy 104.27389 94.880202)\r\n\t\t\t\t(xy 104.260351 94.876574) (xy 104.159309 94.8495) (xy 104.044768 94.8495) (xy 103.986577 94.830593)\r\n\t\t\t\t(xy 103.974764 94.820504) (xy 103.258467 94.104206) (xy 103.194952 94.040691) (xy 104.7495 94.040691)\r\n\t\t\t\t(xy 104.7495 94.159309) (xy 104.760537 94.2005) (xy 104.780202 94.27389) (xy 104.839507 94.376608)\r\n\t\t\t\t(xy 104.839509 94.37661) (xy 104.839511 94.376613) (xy 104.923387 94.460489) (xy 104.923389 94.46049)\r\n\t\t\t\t(xy 104.923391 94.460492) (xy 105.02611 94.519797) (xy 105.026111 94.519797) (xy 105.026114 94.519799)\r\n\t\t\t\t(xy 105.140691 94.5505) (xy 105.140693 94.5505) (xy 105.259307 94.5505) (xy 105.259309 94.5505)\r\n\t\t\t\t(xy 105.373886 94.519799) (xy 105.373888 94.519797) (xy 105.37389 94.519797) (xy 105.476608 94.460492)\r\n\t\t\t\t(xy 105.476608 94.460491) (xy 105.476613 94.460489) (xy 105.560489 94.376613) (xy 105.564263 94.370075)\r\n\t\t\t\t(xy 105.609731 94.329135) (xy 105.670581 94.322738) (xy 105.72357 94.353329) (xy 105.735735 94.370073)\r\n\t\t\t\t(xy 105.739511 94.376613) (xy 105.823387 94.460489) (xy 105.823389 94.46049) (xy 105.823391 94.460492)\r\n\t\t\t\t(xy 105.92611 94.519797) (xy 105.926111 94.519797) (xy 105.926114 94.519799) (xy 106.040691 94.5505)\r\n\t\t\t\t(xy 106.040693 94.5505) (xy 106.159307 94.5505) (xy 106.159309 94.5505) (xy 106.273886 94.519799)\r\n\t\t\t\t(xy 106.273888 94.519797) (xy 106.27389 94.519797) (xy 106.376608 94.460492) (xy 106.376608 94.460491)\r\n\t\t\t\t(xy 106.376613 94.460489) (xy 106.460489 94.376613) (xy 106.462061 94.37389) (xy 106.519797 94.27389)\r\n\t\t\t\t(xy 106.519797 94.273888) (xy 106.519799 94.273886) (xy 106.5505 94.159309) (xy 106.5505 94.040691)\r\n\t\t\t\t(xy 106.519799 93.926114) (xy 106.519797 93.926111) (xy 106.519797 93.926109) (xy 106.460492 93.823391)\r\n\t\t\t\t(xy 106.46049 93.823389) (xy 106.460489 93.823387) (xy 106.376613 93.739511) (xy 106.37661 93.739509)\r\n\t\t\t\t(xy 106.376608 93.739507) (xy 106.273889 93.680202) (xy 106.27389 93.680202) (xy 106.231598 93.66887)\r\n\t\t\t\t(xy 106.159309 93.6495) (xy 106.040691 93.6495) (xy 105.999669 93.660492) (xy 105.926109 93.680202)\r\n\t\t\t\t(xy 105.823391 93.739507) (xy 105.739509 93.823389) (xy 105.735736 93.829925) (xy 105.690266 93.870865)\r\n\t\t\t\t(xy 105.629416 93.87726) (xy 105.576428 93.846667) (xy 105.564264 93.829925) (xy 105.56049 93.823389)\r\n\t\t\t\t(xy 105.560489 93.823387) (xy 105.476613 93.739511) (xy 105.47661 93.739509) (xy 105.476608 93.739507)\r\n\t\t\t\t(xy 105.373889 93.680202) (xy 105.37389 93.680202) (xy 105.331598 93.66887) (xy 105.259309 93.6495)\r\n\t\t\t\t(xy 105.140691 93.6495) (xy 105.099669 93.660492) (xy 105.026109 93.680202) (xy 104.923391 93.739507)\r\n\t\t\t\t(xy 104.839507 93.823391) (xy 104.780202 93.926109) (xy 104.763037 93.990169) (xy 104.7495 94.040691)\r\n\t\t\t\t(xy 103.194952 94.040691) (xy 103.079496 93.925235) (xy 103.051719 93.870718) (xy 103.0505 93.855231)\r\n\t\t\t\t(xy 103.0505 93.089881) (xy 103.069407 93.03169) (xy 103.118907 92.995726) (xy 103.180093 92.995726)\r\n\t\t\t\t(xy 103.198999 93.004144) (xy 103.226114 93.019799) (xy 103.340691 93.0505) (xy 103.340693 93.0505)\r\n\t\t\t\t(xy 103.459307 93.0505) (xy 103.459309 93.0505) (xy 103.573886 93.019799) (xy 103.573888 93.019797)\r\n\t\t\t\t(xy 103.57389 93.019797) (xy 103.676608 92.960492) (xy 103.676608 92.960491) (xy 103.676613 92.960489)\r\n\t\t\t\t(xy 103.760489 92.876613) (xy 103.78191 92.839511) (xy 103.819797 92.77389) (xy 103.819797 92.773888)\r\n\t\t\t\t(xy 103.819799 92.773886) (xy 103.8505 92.659309) (xy 103.8505 92.540691) (xy 103.819799 92.426114)\r\n\t\t\t\t(xy 103.819797 92.426111) (xy 103.819797 92.426109) (xy 103.760492 92.323391) (xy 103.76049 92.323389)\r\n\t\t\t\t(xy 103.760489 92.323387) (xy 103.676613 92.239511) (xy 103.67661 92.239509) (xy 103.676608 92.239507)\r\n\t\t\t\t(xy 103.573889 92.180202) (xy 103.57389 92.180202) (xy 103.551923 92.174316) (xy 103.459309 92.1495)\r\n\t\t\t\t(xy 103.340691 92.1495) (xy 103.248077 92.174316) (xy 103.22611 92.180202) (xy 103.198999 92.195855)\r\n\t\t\t\t(xy 103.139151 92.208576) (xy 103.083255 92.183689) (xy 103.052663 92.1307) (xy 103.0505 92.110118)\r\n\t\t\t\t(xy 103.0505 78.190458) (xy 103.069407 78.132267) (xy 103.099997 78.104723) (xy 103.176613 78.060489)\r\n\t\t\t\t(xy 103.260489 77.976613) (xy 103.264763 77' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'.969209) (xy 103.310231 77.928269) (xy 103.371081 77.921872)\r\n\t\t\t\t(xy 103.42407 77.952463) (xy 103.448957 78.008358) (xy 103.4495 78.018709) (xy 103.4495 88.77239)\r\n\t\t\t\t(xy 103.430593 88.830581) (xy 103.420504 88.842393) (xy 103.339511 88.923386) (xy 103.339507 88.923391)\r\n\t\t\t\t(xy 103.280202 89.026109) (xy 103.2674 89.073886) (xy 103.2495 89.140691) (xy 103.2495 89.259309)\r\n\t\t\t\t(xy 103.270573 89.337953) (xy 103.280202 89.37389) (xy 103.339507 89.476608) (xy 103.339509 89.47661)\r\n\t\t\t\t(xy 103.339511 89.476613) (xy 103.423387 89.560489) (xy 103.423389 89.56049) (xy 103.423391 89.560492)\r\n\t\t\t\t(xy 103.52611 89.619797) (xy 103.526111 89.619797) (xy 103.526114 89.619799) (xy 103.640691 89.6505)\r\n\t\t\t\t(xy 103.640693 89.6505) (xy 103.759307 89.6505) (xy 103.759309 89.6505) (xy 103.873886 89.619799)\r\n\t\t\t\t(xy 103.873888 89.619797) (xy 103.87389 89.619797) (xy 103.976608 89.560492) (xy 103.976608 89.560491)\r\n\t\t\t\t(xy 103.976613 89.560489) (xy 104.060489 89.476613) (xy 104.064763 89.469209) (xy 104.110231 89.428269)\r\n\t\t\t\t(xy 104.171081 89.421872) (xy 104.22407 89.452463) (xy 104.248957 89.508358) (xy 104.2495 89.518709)\r\n\t\t\t\t(xy 104.2495 91.87239) (xy 104.230593 91.930581) (xy 104.220504 91.942393) (xy 104.139511 92.023386)\r\n\t\t\t\t(xy 104.139507 92.023391) (xy 104.080202 92.126109) (xy 104.069099 92.167546) (xy 104.0495 92.240691)\r\n\t\t\t\t(xy 104.0495 92.359309) (xy 104.068172 92.428994) (xy 104.080202 92.47389) (xy 104.139507 92.576608)\r\n\t\t\t\t(xy 104.139509 92.57661) (xy 104.139511 92.576613) (xy 104.223387 92.660489) (xy 104.223389 92.66049)\r\n\t\t\t\t(xy 104.223391 92.660492) (xy 104.32611 92.719797) (xy 104.326111 92.719797) (xy 104.326114 92.719799)\r\n\t\t\t\t(xy 104.440691 92.7505) (xy 104.440693 92.7505) (xy 104.559307 92.7505) (xy 104.559309 92.7505)\r\n\t\t\t\t(xy 104.673886 92.719799) (xy 104.673888 92.719797) (xy 104.67389 92.719797) (xy 104.776608 92.660492)\r\n\t\t\t\t(xy 104.776608 92.660491) (xy 104.776613 92.660489) (xy 104.829163 92.607938) (xy 104.883677 92.580162)\r\n\t\t\t\t(xy 104.944109 92.589733) (xy 104.969164 92.607935) (xy 104.971715 92.610486) (xy 104.971723 92.610492)\r\n\t\t\t\t(xy 105.074442 92.669797) (xy 105.074443 92.669797) (xy 105.074446 92.669799) (xy 105.189023 92.7005)\r\n\t\t\t\t(xy 105.189025 92.7005) (xy 105.307639 92.7005) (xy 105.307641 92.7005) (xy 105.422218 92.669799)\r\n\t\t\t\t(xy 105.42222 92.669797) (xy 105.422222 92.669797) (xy 105.52494 92.610492) (xy 105.52494 92.610491)\r\n\t\t\t\t(xy 105.524945 92.610489) (xy 105.608821 92.526613) (xy 105.608824 92.526608) (xy 105.668129 92.42389)\r\n\t\t\t\t(xy 105.668129 92.423888) (xy 105.668131 92.423886) (xy 105.698832 92.309309) (xy 105.698832 92.190691)\r\n\t\t\t\t(xy 105.668131 92.076114) (xy 105.668129 92.076111) (xy 105.668129 92.076109) (xy 105.608824 91.973391)\r\n\t\t\t\t(xy 105.608822 91.973389) (xy 105.608821 91.973387) (xy 105.524945 91.889511) (xy 105.524942 91.889509)\r\n\t\t\t\t(xy 105.52494 91.889507) (xy 105.422221 91.830202) (xy 105.422222 91.830202) (xy 105.380068 91.818907)\r\n\t\t\t\t(xy 105.307641 91.7995) (xy 105.1995 91.7995) (xy 105.141309 91.780593) (xy 105.105345 91.731093)\r\n\t\t\t\t(xy 105.1005 91.7005) (xy 105.1005 89.432108) (xy 105.119407 89.373917) (xy 105.168907 89.337953)\r\n\t\t\t\t(xy 105.230093 89.337953) (xy 105.279593 89.373917) (xy 105.285236 89.382608) (xy 105.339507 89.476608)\r\n\t\t\t\t(xy 105.339509 89.47661) (xy 105.339511 89.476613) (xy 105.423387 89.560489) (xy 105.423389 89.56049)\r\n\t\t\t\t(xy 105.423391 89.560492) (xy 105.52611 89.619797) (xy 105.526111 89.619797) (xy 105.526114 89.619799)\r\n\t\t\t\t(xy 105.640691 89.6505) (xy 105.640693 89.6505) (xy 105.759307 89.6505) (xy 105.759309 89.6505)\r\n\t\t\t\t(xy 105.873886 89.619799) (xy 105.873888 89.619797) (xy 105.87389 89.619797) (xy 105.976608 89.560492)\r\n\t\t\t\t(xy 105.976608 89.560491) (xy 105.976613 89.560489) (xy 106.060489 89.476613) (xy 106.092094 89.421872)\r\n\t\t\t\t(xy 106.119797 89.37389) (xy 106.119797 89.373888) (xy 106.119799 89.373886) (xy 106.1505 89.259309)\r\n\t\t\t\t(xy 106.1505 89.140691) (xy 106.119799 89.026114) (xy 106.119797 89.026111) (xy 106.119797 89.026109)\r\n\t\t\t\t(xy 106.060492 88.923391) (xy 106.06049 88.923389) (xy 106.060489 88.923387) (xy 105.976613 88.839511)\r\n\t\t\t\t(xy 105.97661 88.839509) (xy 105.976608 88.839507) (xy 105.873889 88.780202) (xy 105.87389 88.780202)\r\n\t\t\t\t(xy 105.844735 88.77239) (xy 105.759309 88.7495) (xy 105.640691 88.7495) (xy 105.570567 88.768289)\r\n\t\t\t\t(xy 105.526109 88.780202) (xy 105.423391 88.839507) (xy 105.339509 88.923389) (xy 105.285236 89.017392)\r\n\t\t\t\t(xy 105.239766 89.058332) (xy 105.178916 89.064727) (xy 105.125928 89.034134) (xy 105.101042 88.978239)\r\n\t\t\t\t(xy 105.1005 88.967891) (xy 105.1005 88.505197) (xy 105.062364 88.413129) (xy 104.991897 88.342661)\r\n\t\t\t\t(xy 104.991897 88.342662) (xy 104.679496 88.030261) (xy 104.651719 87.975744) (xy 104.6505 87.960257)\r\n\t\t\t\t(xy 104.6505 87.315159) (xy 104.669407 87.256968) (xy 104.718907 87.221004) (xy 104.775124 87.219533)\r\n\t\t\t\t(xy 104.776111 87.219797) (xy 104.776114 87.219799) (xy 104.890691 87.2505) (xy 104.890692 87.2505)\r\n\t\t\t\t(xy 105.009307 87.2505) (xy 105.009309 87.2505) (xy 105.123886 87.219799) (xy 105.123888 87.219797)\r\n\t\t\t\t(xy 105.12389 87.219797) (xy 105.129884 87.217315) (xy 105.130684 87.219247) (xy 105.181271 87.208483)\r\n\t\t\t\t(xy 105.237173 87.233356) (xy 105.256681 87.25744) (xy 105.296619 87.326613) (xy 105.380495 87.410489)\r\n\t\t\t\t(xy 105.380497 87.41049) (xy 105.380499 87.410492) (xy 105.483218 87.469797) (xy 105.483219 87.469797)\r\n\t\t\t\t(xy 105.483222 87.469799) (xy 105.597799 87.5005) (xy 105.597801 87.5005) (xy 105.716415 87.5005)\r\n\t\t\t\t(xy 105.716417 87.5005) (xy 105.830994 87.469799) (xy 105.830996 87.469797) (xy 105.830998 87.469797)\r\n\t\t\t\t(xy 105.933716 87.410492) (xy 105.933716 87.410491) (xy 105.933721 87.410489) (xy 106.017597 87.326613)\r\n\t\t\t\t(xy 106.037709 87.291778) (xy 106.076905 87.22389) (xy 106.076905 87.223888) (xy 106.076907 87.223886)\r\n\t\t\t\t(xy 106.107608 87.109309) (xy 106.107608 86.990691) (xy 106.076907 86.876114) (xy 106.076905 86.876111)\r\n\t\t\t\t(xy 106.076905 86.876109) (xy 106.0176 86.773391) (xy 106.017598 86.773389) (xy 106.017597 86.773387)\r\n\t\t\t\t(xy 105.933721 86.689511) (xy 105.933718 86.689509) (xy 105.933716 86.689507) (xy 105.830997 86.630202)\r\n\t\t\t\t(xy 105.830996 86.630201) (xy 105.823874 86.628293) (xy 105.77256 86.594967) (xy 105.750635 86.537845)\r\n\t\t\t\t(xy 105.7505 86.532667) (xy 105.7505 80.375032) (xy 105.769407 80.316841) (xy 105.779484 80.30504)\r\n\t\t\t\t(xy 105.971481 80.113043) (xy 106.025996 80.085268) (xy 106.041483 80.084049) (xy 106.128266 80.084049)\r\n\t\t\t\t(xy 106.128268 80.084049) (xy 106.242845 80.053348) (xy 106.242847 80.053346) (xy 106.242849 80.053346)\r\n\t\t\t\t(xy 106.345567 79.994041) (xy 106.345567 79.99404) (xy 106.345572 79.994038) (xy 106.429448 79.910162)\r\n\t\t\t\t(xy 106.442454 79.887635) (xy 106.488756 79.807439) (xy 106.488756 79.807437) (xy 106.488758 79.807435)\r\n\t\t\t\t(xy 106.519459 79.692858) (xy 106.519459 79.57424) (xy 106.488758 79.459663) (xy 106.488756 79.45966)\r\n\t\t\t\t(xy 106.488756 79.459658) (xy 106.429451 79.35694) (xy 106.429449 79.356938) (xy 106.429448 79.356936)\r\n\t\t\t\t(xy 106.345572 79.27306) (xy 106.345569 79.273058) (xy 106.345567 79.273056) (xy 106.242848 79.213751)\r\n\t\t\t\t(xy 106.242849 79.213751) (xy 106.22931 79.210123) (xy 106.128268 79.183049) (xy 106.00965 79.183049)\r\n\t\t\t\t(xy 105.939526 79.201838) (xy 105.895068 79.213751) (xy 105.79235 79.273056) (xy 105.708466 79.35694)\r\n\t\t\t\t(xy 105.704744 79.363387) (xy 105.659271 79.404324) (xy 105.59842 79.410714) (xy 105.545435 79.380116)\r\n\t\t\t\t(xy 105.523386 79.339502) (xy 105.519799 79.326114) (xy 105.519797 79.326111) (xy 105.519797 79.326109)\r\n\t\t\t\t(xy 105.460492 79.223391) (xy 105.46049 79.223389) (xy 105.460489 79.223387) (xy 105.376613 79.139511)\r\n\t\t\t\t(xy 105.37485 79.138493) (xy 105.373875 79.13741) (xy 105.371464 79.13556) (xy 105.371806 79.135113)\r\n\t\t\t\t(xy 105.33391 79.093024) (xy 105.327514 79.032174) (xy 105.354349 78.982752) (xy 105.360489 78.976613)\r\n\t\t\t\t(xy 105.369914 78.960288) (xy 105.419797 78.87389) (xy 105.419797 78.873888) (xy 105.419799 78.873886)\r\n\t\t\t\t(xy 105.4505 78.759309) (xy 105.4505 78.640691) (xy 105.419799 78.526114) (xy 105.419797 78.526111)\r\n\t\t\t\t(xy 105.419797 78.526109) (xy 105.360492 78.423391) (xy 105.36049 78.423389) (xy 105.360489 78.423387)\r\n\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t\t(xy 105.276613 78.339511) (xy 105.27661 78.339509) (xy 105.276608 78.339507) (xy 105.173889 78.280202)\r\n\t\t\t\t(xy 105.17389 78.280202) (xy 105.160351 78.276574) (xy 105.059309 78.2495) (xy 104.940691 78.2495)\r\n\t\t\t\t(xy 104.904084 78.259309) (xy 104.826109 78.280202) (xy 104.723391 78.339507) (xy 104.639507 78.423391)\r\n\t\t\t\t(xy 104.580202 78.526109) (xy 104.566671 78.576608) (xy 104.549818 78.639507) (xy 104.5495 78.640692)\r\n\t\t\t\t(xy 104.5495 78.755231) (xy 104.547031 78.762828) (xy 104.548281 78.770718) (xy 104.537756 78.791373)\r\n\t\t\t\t(xy 104.530593 78.813422) (xy 104.520509 78.825229) (xy 104.469502 78.876235) (xy 104.414987 78.904012)\r\n\t\t\t\t(xy 104.354555 78.894441) (xy 104.31129 78.851176) (xy 104.3005 78.806231) (xy 104.3005 75.640691)\r\n\t\t\t\t(xy 105.6495 75.640691) (xy 105.6495 75.759309) (xy 105.667919 75.82805) (xy 105.680202 75.87389)\r\n\t\t\t\t(xy 105.739507 75.976608) (xy 105.739509 75.97661) (xy 105.739511 75.976613) (xy 105.823387 76.060489)\r\n\t\t\t\t(xy 105.823389 76.06049) (xy 105.823391 76.060492) (xy 105.92611 76.119797) (xy 105.926111 76.119797)\r\n\t\t\t\t(xy 105.926114 76.119799) (xy 106.040691 76.1505) (xy 106.040693 76.1505) (xy 106.159307 76.1505)\r\n\t\t\t\t(xy 106.159309 76.1505) (xy 106.273886 76.119799) (xy 106.273888 76.119797) (xy 106.27389 76.119797)\r\n\t\t\t\t(xy 106.376608 76.060492) (xy 106.376608 76.060491) (xy 106.376613 76.060489) (xy 106.460489 75.976613)\r\n\t\t\t\t(xy 106.471706 75.957185) (xy 106.519797 75.87389) (xy 106.519797 75.873888) (xy 106.519799 75.873886)\r\n\t\t\t\t(xy 106.5505 75.759309) (xy 106.5505 75.640691) (xy 106.519799 75.526114) (xy 106.519797 75.526111)\r\n\t\t\t\t(xy 106.519797 75.526109) (xy 106.460492 75.423391) (xy 106.46049 75.423389) (xy 106.460489 75.423387)\r\n\t\t\t\t(xy 106.376613 75.339511) (xy 106.37661 75.339509) (xy 106.376608 75.339507) (xy 106.273889 75.280202)\r\n\t\t\t\t(xy 106.27389 75.280202) (xy 106.260351 75.276574) (xy 106.159309 75.2495) (xy 106.040691 75.2495)\r\n\t\t\t\t(xy 105.970567 75.268289) (xy 105.926109 75.280202) (xy 105.823391 75.339507) (xy 105.739507 75.423391)\r\n\t\t\t\t(xy 105.680202 75.526109) (xy 105.6674 75.573886) (xy 105.6495 75.640691) (xy 104.3005 75.640691)\r\n\t\t\t\t(xy 104.3005 72.594768) (xy 104.319407 72.536577) (xy 104.32949 72.52477) (xy 106.262364 70.591897)\r\n\t\t\t\t(xy 106.3005 70.499828) (xy 106.3005 70.400172) (xy 106.3005 68.627609) (xy 106.319407 68.569418)\r\n\t\t\t\t(xy 106.32949 68.557611) (xy 106.410489 68.476613) (xy 106.419782 68.460518) (xy 106.469797 68.37389)\r\n\t\t\t\t(xy 106.469797 68.373888) (xy 106.469799 68.373886) (xy 106.5005 68.259309) (xy 106.5005 68.140691)\r\n\t\t\t\t(xy 106.469799 68.026114) (xy 106.410489 67.923387) (xy 106.410488 67.923386) (xy 106.408769 67.920408)\r\n\t\t\t\t(xy 106.396047 67.860559) (xy 106.412189 67.815907) (xy 106.434515 67.782495) (xy 106.4505 67.702133)\r\n\t\t\t\t(xy 106.450499 66.797868) (xy 106.434515 66.717505) (xy 106.434512 66.717501) (xy 106.373626 66.626379)\r\n\t\t\t\t(xy 106.373624 66.626376) (xy 106.359709 66.617078) (xy 106.282497 66.565486) (xy 106.282496 66.565485)\r\n\t\t\t\t(xy 106.282495 66.565485) (xy 106.202133 66.5495) (xy 106.018553 66.5495) (xy 105.960362 66.530593)\r\n\t\t\t\t(xy 105.924398 66.481093) (xy 105.919553 66.4505) (xy 105.919553 66.413519) (xy 105.896664 66.328096)\r\n\t\t\t\t(xy 105.888852 66.298941) (xy 105.88885 66.298938) (xy 105.88885 66.298936) (xy 105.829545 66.196218)\r\n\t\t\t\t(xy 105.829543 66.196216) (xy 105.829542 66.196214) (xy 105.745666 66.112338) (xy 105.745663 66.112336)\r\n\t\t\t\t(xy 105.745661 66.112334) (xy 105.642942 66.053029) (xy 105.642943 66.053029) (xy 105.629404 66.049401)\r\n\t\t\t\t(xy 105.528362 66.022327) (xy 105.409744 66.022327) (xy 105.33962 66.041116) (xy 105.295162 66.053029)\r\n\t\t\t\t(xy 105.192444 66.112334) (xy 105.10856 66.196218) (xy 105.049255 66.298936) (xy 105.018553 66.413519)\r\n\t\t\t\t(xy 105.018553 66.511868) (xy 105.013755 66.526632) (xy 105.013806 66.542157) (xy 105.004858 66.554016)\r\n\t\t\t\t(xy 104.999646 66.570059) (xy 104.978002 66.591772) (xy 104.976291 66.593023) (xy 104.926376 66.626376)\r\n\t\t\t\t(xy 104.922246 66.632556) (xy 104.908449 66.642649) (xy 104.886282 66.64993) (xy 104.865487 66.660526)\r\n\t\t\t\t(xy 104.857755 66.659301) (xy 104.85032 66.661744) (xy 104.828106 66.654605) (xy 104.805055 66.650955)\r\n\t\t\t\t(xy 104.795783 66.644218) (xy 104.792068 66.643025) (xy 104.789717 66.639812) (xy 104.779996 66.632749)\r\n\t\t\t\t(xy 104.773626 66.626379) (xy 104.773624 66.626376) (xy 104.759709 66.617078) (xy 104.682497 66.565486)\r\n\t\t\t\t(xy 104.682496 66.565485) (xy 104.682495 66.565485) (xy 104.602133 66.5495) (xy 104.602132 66.5495)\r\n\t\t\t\t(xy 104.29787 66.5495) (xy 104.297863 66.549501) (xy 104.217505 66.565484) (xy 104.217503 66.565485)\r\n\t\t\t\t(xy 104.126379 66.626373) (xy 104.120004 66.632749) (xy 104.065487 66.660526) (xy 104.005055 66.650955)\r\n\t\t\t\t(xy 103.979996 66.632749) (xy 103.973626 66.626379) (xy 103.973624 66.626376) (xy 103.959709 66.617078)\r\n\t\t\t\t(xy 103.882497 66.565486) (xy 103.882496 66.565485) (xy 103.882495 66.565485) (xy 103.802133 66.5495)\r\n\t\t\t\t(xy 103.802132 66.5495) (xy 103.49787 66.5495) (xy 103.497863 66.549501) (xy 103.417505 66.565484)\r\n\t\t\t\t(xy 103.417503 66.565485) (xy 103.326379 66.626373) (xy 103.320004 66.632749) (xy 103.265487 66.660526)\r\n\t\t\t\t(xy 103.205055 66.650955) (xy 103.179996 66.632749) (xy 103.173626 66.626379) (xy 103.173624 66.626376)\r\n\t\t\t\t(xy 103.159709 66.617078) (xy 103.082497 66.565486) (xy 103.082496 66.565485) (xy 103.082495 66.565485)\r\n\t\t\t\t(xy 103.002133 66.5495) (xy 103.002132 66.5495) (xy 102.69787 66.5495) (xy 102.697863 66.549501)\r\n\t\t\t\t(xy 102.617505 66.565484) (xy 102.617503 66.565485) (xy 102.526379 66.626373) (xy 102.520004 66.632749)\r\n\t\t\t\t(xy 102.465487 66.660526) (xy 102.405055 66.650955) (xy 102.379996 66.632749) (xy 102.373626 66.626379)\r\n\t\t\t\t(xy 102.373624 66.626376) (xy 102.359709 66.617078) (xy 102.282497 66.565486) (xy 102.282496 66.565485)\r\n\t\t\t\t(xy 102.282495 66.565485) (xy 102.202133 66.5495) (xy 102.202132 66.5495) (xy 101.89787 66.5495)\r\n\t\t\t\t(xy 101.897863 66.549501) (xy 101.817505 66.565484) (xy 101.817503 66.565485) (xy 101.726379 66.626373)\r\n\t\t\t\t(xy 101.720004 66.632749) (xy 101.665487 66.660526) (xy 101.605055 66.650955) (xy 101.579996 66.632749)\r\n\t\t\t\t(xy 101.573626 66.626379) (xy 101.573624 66.626376) (xy 101.559709 66.617078) (xy 101.482497 66.565486)\r\n\t\t\t\t(xy 101.482496 66.565485) (xy 101.482495 66.565485) (xy 101.402133 66.5495) (xy 101.402132 66.5495)\r\n\t\t\t\t(xy 101.09787 66.5495) (xy 101.097863 66.549501) (xy 101.017505 66.565484) (xy 101.017503 66.565485)\r\n\t\t\t\t(xy 100.926379 66.626373) (xy 100.920004 66.632749) (xy 100.865487 66.660526) (xy 100.805055 66.650955)\r\n\t\t\t\t(xy 100.779996 66.632749) (xy 100.773626 66.626379) (xy 100.773624 66.626376) (xy 100.759709 66.617078)\r\n\t\t\t\t(xy 100.682497 66.565486) (xy 100.682496 66.565485) (xy 100.682495 66.565485) (xy 100.602133 66.5495)\r\n\t\t\t\t(xy 100.602132 66.5495) (xy 100.29787 66.5495) (xy 100.297863 66.549501) (xy 100.217505 66.565484)\r\n\t\t\t\t(xy 100.217503 66.565485) (xy 100.126379 66.626373) (xy 100.120004 66.632749) (xy 100.065487 66.660526)\r\n\t\t\t\t(xy 100.005055 66.650955) (xy 99.979996 66.632749) (xy 99.973626 66.626379) (xy 99.973624 66.626376)\r\n\t\t\t\t(xy 99.959709 66.617078) (xy 99.882497 66.565486) (xy 99.882496 66.565485) (xy 99.882495 66.565485)\r\n\t\t\t\t(xy 99.802133 66.5495) (xy 99.802132 66.5495) (xy 99.49787 66.5495) (xy 99.497863 66.549501) (xy 99.417505 66.565484)\r\n\t\t\t\t(xy 99.417503 66.565485) (xy 99.326379 66.626373) (xy 99.326373 66.626379) (xy 99.265486 66.717501)\r\n\t\t\t\t(xy 99.265486 66.717503) (xy 99.265485 66.717505) (xy 99.258241 66.753923) (xy 99.2495 66.797867)\r\n\t\t\t\t(xy 99.2495 67.702129) (xy 99.249501 67.702136) (xy 99.265484 67.782494) (xy 99.265485 67.782496)\r\n\t\t\t\t(xy 99.326373 67.87362) (xy 99.326376 67.873624) (xy 99.355502 67.893085) (xy 99.393381 67.941134)\r\n\t\t\t\t(xy 99.3995 67.9754) (xy 99.3995 68.124829) (xy 99.437634 68.216895) (xy 99.437635 68.216896) (xy 99.437636 68.216898)\r\n\t\t\t\t(xy 99.545505 68.324767) (xy 99.54913 68.331882) (xy 99.555593 68.336578) (xy 99.562756 68.358626)\r\n\t\t\t\t(xy 99.573281 68.379282) (xy 99.5745 68.394769) (xy 99.5745 68.412033) (xy 99.555593 68.470224)\r\n\t\t\t\t(xy 99.545504 68.482037) (xy 98.732038 69.295503) (xy 98.677521 69.32328) (xy 98.662034 69.324499)\r\n\t\t\t\t(xy 93.828825 69.324499) (xy 93.770634 69.305' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'592) (xy 93.73467 69.256092) (xy 93.733205 69.251146)\r\n\t\t\t\t(xy 93.719799 69.201114) (xy 93.719797 69.201111) (xy 93.719797 69.201109) (xy 93.660492 69.098391)\r\n\t\t\t\t(xy 93.66049 69.098389) (xy 93.660489 69.098387) (xy 93.576613 69.014511) (xy 93.57661 69.014509)\r\n\t\t\t\t(xy 93.576608 69.014507) (xy 93.473889 68.955202) (xy 93.47389 68.955202) (xy 93.460351 68.951574)\r\n\t\t\t\t(xy 93.359309 68.9245) (xy 93.240691 68.9245) (xy 93.170567 68.943289) (xy 93.126109 68.955202)\r\n\t\t\t\t(xy 93.023391 69.014507) (xy 92.939507 69.098391) (xy 92.880202 69.201109) (xy 92.880201 69.201114)\r\n\t\t\t\t(xy 92.8495 69.315691) (xy 74.0005 69.315691) (xy 74.0005 68.548322) (xy 74.019407 68.490131) (xy 74.029496 68.478318)\r\n\t\t\t\t(xy 75.753895 66.753919) (xy 88.8745 66.753919) (xy 88.8745 66.94608) (xy 88.911988 67.134542) (xy 88.911988 67.134544)\r\n\t\t\t\t(xy 88.985521 67.31207) (xy 88.985521 67.312071) (xy 89.069113 67.437174) (xy 89.09228 67.471845)\r\n\t\t\t\t(xy 89.228155 67.60772) (xy 89.387927 67.714477) (xy 89.565457 67.788012) (xy 89.753922 67.8255)\r\n\t\t\t\t(xy 89.753923 67.8255) (xy 89.946077 67.8255) (xy 89.946078 67.8255) (xy 90.134543 67.788012) (xy 90.312073 67.714477)\r\n\t\t\t\t(xy 90.471845 67.60772) (xy 90.60772 67.471845) (xy 90.714477 67.312073) (xy 90.788012 67.134543)\r\n\t\t\t\t(xy 90.8255 66.946078) (xy 90.8255 66.753922) (xy 90.788012 66.565457) (xy 90.751244 66.476692)\r\n\t\t\t\t(xy 90.714478 66.387929) (xy 90.714478 66.387928) (xy 90.60772 66.228155) (xy 90.471844 66.092279)\r\n\t\t\t\t(xy 90.31207 65.985521) (xy 90.134543 65.911988) (xy 89.94608 65.8745) (xy 89.946078 65.8745) (xy 89.753922 65.8745)\r\n\t\t\t\t(xy 89.753919 65.8745) (xy 89.565457 65.911988) (xy 89.565455 65.911988) (xy 89.387929 65.985521)\r\n\t\t\t\t(xy 89.387928 65.985521) (xy 89.228155 66.092279) (xy 89.092279 66.228155) (xy 88.985521 66.387928)\r\n\t\t\t\t(xy 88.985521 66.387929) (xy 88.911988 66.565455) (xy 88.911988 66.565457) (xy 88.8745 66.753919)\r\n\t\t\t\t(xy 75.753895 66.753919) (xy 79.509947 62.997867) (xy 92.0495 62.997867) (xy 92.0495 63.902129)\r\n\t\t\t\t(xy 92.049501 63.902136) (xy 92.065484 63.982494) (xy 92.065485 63.982496) (xy 92.126373 64.07362)\r\n\t\t\t\t(xy 92.126376 64.073624) (xy 92.126379 64.073626) (xy 92.130501 64.07638) (xy 92.168381 64.12443)\r\n\t\t\t\t(xy 92.1745 64.158696) (xy 92.1745 66.541304) (xy 92.155593 66.599495) (xy 92.130502 66.623619)\r\n\t\t\t\t(xy 92.126379 66.626373) (xy 92.126373 66.626379) (xy 92.065486 66.717501) (xy 92.065486 66.717503)\r\n\t\t\t\t(xy 92.065485 66.717505) (xy 92.058241 66.753923) (xy 92.0495 66.797867) (xy 92.0495 67.702129)\r\n\t\t\t\t(xy 92.049501 67.702136) (xy 92.065484 67.782494) (xy 92.065485 67.782496) (xy 92.126373 67.87362)\r\n\t\t\t\t(xy 92.126376 67.873624) (xy 92.217505 67.934515) (xy 92.297867 67.9505) (xy 92.602132 67.950499)\r\n\t\t\t\t(xy 92.682495 67.934515) (xy 92.773624 67.873624) (xy 92.773628 67.873617) (xy 92.779996 67.867251)\r\n\t\t\t\t(xy 92.834513 67.839474) (xy 92.894945 67.849045) (xy 92.920004 67.867251) (xy 92.926373 67.87362)\r\n\t\t\t\t(xy 92.926376 67.873624) (xy 93.017505 67.934515) (xy 93.097867 67.9505) (xy 93.402132 67.950499)\r\n\t\t\t\t(xy 93.482495 67.934515) (xy 93.573624 67.873624) (xy 93.573628 67.873617) (xy 93.579996 67.867251)\r\n\t\t\t\t(xy 93.634513 67.839474) (xy 93.694945 67.849045) (xy 93.720004 67.867251) (xy 93.726373 67.87362)\r\n\t\t\t\t(xy 93.726376 67.873624) (xy 93.817505 67.934515) (xy 93.897867 67.9505) (xy 94.202132 67.950499)\r\n\t\t\t\t(xy 94.282495 67.934515) (xy 94.373624 67.873624) (xy 94.373628 67.873617) (xy 94.379996 67.867251)\r\n\t\t\t\t(xy 94.434513 67.839474) (xy 94.494945 67.849045) (xy 94.520004 67.867251) (xy 94.526373 67.87362)\r\n\t\t\t\t(xy 94.526376 67.873624) (xy 94.617505 67.934515) (xy 94.697867 67.9505) (xy 95.002132 67.950499)\r\n\t\t\t\t(xy 95.082495 67.934515) (xy 95.173624 67.873624) (xy 95.173628 67.873617) (xy 95.179996 67.867251)\r\n\t\t\t\t(xy 95.234513 67.839474) (xy 95.294945 67.849045) (xy 95.320004 67.867251) (xy 95.326373 67.87362)\r\n\t\t\t\t(xy 95.326376 67.873624) (xy 95.417505 67.934515) (xy 95.497867 67.9505) (xy 95.802132 67.950499)\r\n\t\t\t\t(xy 95.882495 67.934515) (xy 95.973624 67.873624) (xy 95.973628 67.873617) (xy 95.979996 67.867251)\r\n\t\t\t\t(xy 96.034513 67.839474) (xy 96.094945 67.849045) (xy 96.120004 67.867251) (xy 96.126373 67.87362)\r\n\t\t\t\t(xy 96.126376 67.873624) (xy 96.217505 67.934515) (xy 96.297867 67.9505) (xy 96.602132 67.950499)\r\n\t\t\t\t(xy 96.682495 67.934515) (xy 96.773624 67.873624) (xy 96.773628 67.873617) (xy 96.779996 67.867251)\r\n\t\t\t\t(xy 96.834513 67.839474) (xy 96.894945 67.849045) (xy 96.920004 67.867251) (xy 96.926373 67.87362)\r\n\t\t\t\t(xy 96.926376 67.873624) (xy 97.017505 67.934515) (xy 97.097867 67.9505) (xy 97.402132 67.950499)\r\n\t\t\t\t(xy 97.482495 67.934515) (xy 97.573624 67.873624) (xy 97.573628 67.873617) (xy 97.579996 67.867251)\r\n\t\t\t\t(xy 97.634513 67.839474) (xy 97.694945 67.849045) (xy 97.720004 67.867251) (xy 97.726373 67.87362)\r\n\t\t\t\t(xy 97.726376 67.873624) (xy 97.817505 67.934515) (xy 97.897867 67.9505) (xy 98.202132 67.950499)\r\n\t\t\t\t(xy 98.282495 67.934515) (xy 98.373624 67.873624) (xy 98.434515 67.782495) (xy 98.4505 67.702133)\r\n\t\t\t\t(xy 98.450499 66.797868) (xy 98.434515 66.717505) (xy 98.434512 66.717501) (xy 98.373626 66.626379)\r\n\t\t\t\t(xy 98.373624 66.626376) (xy 98.369498 66.623619) (xy 98.331619 66.575569) (xy 98.3255 66.541304)\r\n\t\t\t\t(xy 98.3255 64.158696) (xy 98.344407 64.100505) (xy 98.369499 64.07638) (xy 98.373624 64.073624)\r\n\t\t\t\t(xy 98.434515 63.982495) (xy 98.4505 63.902133) (xy 98.450499 62.999499) (xy 98.469406 62.941309)\r\n\t\t\t\t(xy 98.518906 62.905345) (xy 98.549499 62.9005) (xy 99.1505 62.9005) (xy 99.208691 62.919407) (xy 99.244655 62.968907)\r\n\t\t\t\t(xy 99.2495 62.9995) (xy 99.2495 63.902129) (xy 99.249501 63.902136) (xy 99.265484 63.982494) (xy 99.265485 63.982496)\r\n\t\t\t\t(xy 99.326373 64.07362) (xy 99.326376 64.073624) (xy 99.417505 64.134515) (xy 99.497867 64.1505)\r\n\t\t\t\t(xy 99.802132 64.150499) (xy 99.882495 64.134515) (xy 99.973624 64.073624) (xy 99.973628 64.073617)\r\n\t\t\t\t(xy 99.979996 64.067251) (xy 100.034513 64.039474) (xy 100.094945 64.049045) (xy 100.120004 64.067251)\r\n\t\t\t\t(xy 100.126373 64.07362) (xy 100.126376 64.073624) (xy 100.217505 64.134515) (xy 100.297867 64.1505)\r\n\t\t\t\t(xy 100.602132 64.150499) (xy 100.682495 64.134515) (xy 100.773624 64.073624) (xy 100.773628 64.073617)\r\n\t\t\t\t(xy 100.779996 64.067251) (xy 100.834513 64.039474) (xy 100.894945 64.049045) (xy 100.920004 64.067251)\r\n\t\t\t\t(xy 100.926373 64.07362) (xy 100.926376 64.073624) (xy 101.017505 64.134515) (xy 101.097867 64.1505)\r\n\t\t\t\t(xy 101.402132 64.150499) (xy 101.482495 64.134515) (xy 101.573624 64.073624) (xy 101.573628 64.073617)\r\n\t\t\t\t(xy 101.579996 64.067251) (xy 101.634513 64.039474) (xy 101.694945 64.049045) (xy 101.720004 64.067251)\r\n\t\t\t\t(xy 101.726373 64.07362) (xy 101.726376 64.073624) (xy 101.817505 64.134515) (xy 101.897867 64.1505)\r\n\t\t\t\t(xy 102.202132 64.150499) (xy 102.282495 64.134515) (xy 102.373624 64.073624) (xy 102.373628 64.073617)\r\n\t\t\t\t(xy 102.379996 64.067251) (xy 102.434513 64.039474) (xy 102.494945 64.049045) (xy 102.520004 64.067251)\r\n\t\t\t\t(xy 102.526373 64.07362) (xy 102.526376 64.073624) (xy 102.617505 64.134515) (xy 102.697867 64.1505)\r\n\t\t\t\t(xy 103.002132 64.150499) (xy 103.082495 64.134515) (xy 103.173624 64.073624) (xy 103.173628 64.073617)\r\n\t\t\t\t(xy 103.179996 64.067251) (xy 103.234513 64.039474) (xy 103.294945 64.049045) (xy 103.320004 64.067251)\r\n\t\t\t\t(xy 103.326373 64.07362) (xy 103.326376 64.073624) (xy 103.417505 64.134515) (xy 103.497867 64.1505)\r\n\t\t\t\t(xy 103.802132 64.150499) (xy 103.882495 64.134515) (xy 103.973624 64.073624) (xy 103.973628 64.073617)\r\n\t\t\t\t(xy 103.979996 64.067251) (xy 104.034513 64.039474) (xy 104.094945 64.049045) (xy 104.120004 64.067251)\r\n\t\t\t\t(xy 104.126373 64.07362) (xy 104.126376 64.073624) (xy 104.217505 64.134515) (xy 104.297867 64.1505)\r\n\t\t\t\t(xy 104.602132 64.150499) (xy 104.682495 64.134515) (xy 104.773624 64.073624) (xy 104.773628 64.073617)\r\n\t\t\t\t(xy 104.779996 64.067251) (xy 104.834513 64.039474) (xy 104.894945 64.049045) (xy 104.907927 64.056972)\r\n\t\t\t\t(xy 104.922066 64.067173) (xy 104.926376 64.073624) (xy 104.988984 64.115458) (xy 104.99043 64.116501)\r\n\t\t\t\t(xy 105.000755 64.130614) (xy 105.023966 64.158896) (xy 105.037636 64.191897) (xy 105.120505 64.274766)\r\n\t\t\t\t(xy 105.148281 64.329281) (xy 105.1495 64.344768) ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(xy 105.1495 64.459309) (xy 105.160671 64.501)\r\n\t\t\t\t(xy 105.180202 64.57389) (xy 105.239507 64.676608) (xy 105.239509 64.67661) (xy 105.239511 64.676613)\r\n\t\t\t\t(xy 105.323387 64.760489) (xy 105.323389 64.76049) (xy 105.323391 64.760492) (xy 105.42611 64.819797)\r\n\t\t\t\t(xy 105.426111 64.819797) (xy 105.426114 64.819799) (xy 105.540691 64.8505) (xy 105.540693 64.8505)\r\n\t\t\t\t(xy 105.655231 64.8505) (xy 105.713422 64.869407) (xy 105.725235 64.879496) (xy 107.295504 66.449764)\r\n\t\t\t\t(xy 107.323281 66.504281) (xy 107.3245 66.519768) (xy 107.3245 67.345108) (xy 107.362634 67.437174)\r\n\t\t\t\t(xy 107.362635 67.437175) (xy 107.362636 67.437177) (xy 107.707954 67.782494) (xy 108.020504 68.095044)\r\n\t\t\t\t(xy 108.048281 68.149561) (xy 108.0495 68.165048) (xy 108.0495 85.806408) (xy 108.030593 85.864599)\r\n\t\t\t\t(xy 108.020504 85.876412) (xy 107.44904 86.447876) (xy 107.423955 86.460656) (xy 107.399568 86.47472)\r\n\t\t\t\t(xy 107.397117 86.474331) (xy 107.394523 86.475653) (xy 107.338721 86.468291) (xy 107.333996 86.466184)\r\n\t\t\t\t(xy 107.259759 86.423323) (xy 107.204894 86.408622) (xy 107.197749 86.405436) (xy 107.180548 86.389932)\r\n\t\t\t\t(xy 107.161126 86.377319) (xy 107.158253 86.369836) (xy 107.152301 86.364471) (xy 107.147498 86.341815)\r\n\t\t\t\t(xy 107.1392 86.320197) (xy 107.140431 86.308481) (xy 107.139612 86.304616) (xy 107.141215 86.301018)\r\n\t\t\t\t(xy 107.142437 86.2894) (xy 107.1505 86.259309) (xy 107.1505 86.140691) (xy 107.119799 86.026114)\r\n\t\t\t\t(xy 107.119797 86.026111) (xy 107.119797 86.026109) (xy 107.060492 85.923391) (xy 107.06049 85.923389)\r\n\t\t\t\t(xy 107.060489 85.923387) (xy 106.976613 85.839511) (xy 106.97661 85.839509) (xy 106.976608 85.839507)\r\n\t\t\t\t(xy 106.873889 85.780202) (xy 106.87389 85.780202) (xy 106.860351 85.776574) (xy 106.759309 85.7495)\r\n\t\t\t\t(xy 106.640691 85.7495) (xy 106.570567 85.768289) (xy 106.526109 85.780202) (xy 106.423391 85.839507)\r\n\t\t\t\t(xy 106.339507 85.923391) (xy 106.280202 86.026109) (xy 106.268066 86.071401) (xy 106.2495 86.140691)\r\n\t\t\t\t(xy 106.2495 86.259309) (xy 106.260357 86.299828) (xy 106.280202 86.37389) (xy 106.339507 86.476608)\r\n\t\t\t\t(xy 106.339509 86.47661) (xy 106.339511 86.476613) (xy 106.423387 86.560489) (xy 106.423389 86.56049)\r\n\t\t\t\t(xy 106.423391 86.560492) (xy 106.52611 86.619797) (xy 106.526108 86.619797) (xy 106.526112 86.619798)\r\n\t\t\t\t(xy 106.526114 86.619799) (xy 106.573432 86.632478) (xy 106.624745 86.665801) (xy 106.646672 86.722923)\r\n\t\t\t\t(xy 106.643435 86.753724) (xy 106.635373 86.783813) (xy 106.635373 86.902431) (xy 106.640027 86.919799)\r\n\t\t\t\t(xy 106.666075 87.017012) (xy 106.72538 87.11973) (xy 106.725382 87.119732) (xy 106.725384 87.119735)\r\n\t\t\t\t(xy 106.80926 87.203611) (xy 106.809262 87.203612) (xy 106.809264 87.203614) (xy 106.911983 87.262919)\r\n\t\t\t\t(xy 106.911984 87.262919) (xy 106.911987 87.262921) (xy 107.026564 87.293622) (xy 107.026566 87.293622)\r\n\t\t\t\t(xy 107.145181 87.293622) (xy 107.145182 87.293622) (xy 107.259759 87.262921) (xy 107.259761 87.262919)\r\n\t\t\t\t(xy 107.260749 87.262655) (xy 107.321851 87.265856) (xy 107.369401 87.304361) (xy 107.385373 87.358281)\r\n\t\t\t\t(xy 107.385373 90.019357) (xy 107.366466 90.077548) (xy 107.356377 90.089361) (xy 106.625234 90.820504)\r\n\t\t\t\t(xy 106.570717 90.848281) (xy 106.55523 90.8495) (xy 106.440691 90.8495) (xy 106.370567 90.868289)\r\n\t\t\t\t(xy 106.326109 90.880202) (xy 106.223391 90.939507) (xy 106.139507 91.023391) (xy 106.080202 91.126109)\r\n\t\t\t\t(xy 106.080201 91.126114) (xy 106.0495 91.240691) (xy 106.0495 91.359309) (xy 106.067069 91.424877)\r\n\t\t\t\t(xy 106.080202 91.47389) (xy 106.139507 91.576608) (xy 106.139509 91.57661) (xy 106.139511 91.576613)\r\n\t\t\t\t(xy 106.223387 91.660489) (xy 106.223389 91.66049) (xy 106.223391 91.660492) (xy 106.32611 91.719797)\r\n\t\t\t\t(xy 106.326111 91.719797) (xy 106.326114 91.719799) (xy 106.440691 91.7505) (xy 106.440693 91.7505)\r\n\t\t\t\t(xy 106.471442 91.7505) (xy 106.529633 91.769407) (xy 106.565597 91.818907) (xy 106.567068 91.875122)\r\n\t\t\t\t(xy 106.5495 91.940691) (xy 106.5495 92.059309) (xy 106.568629 92.1307) (xy 106.580202 92.17389)\r\n\t\t\t\t(xy 106.639507 92.276608) (xy 106.639509 92.27661) (xy 106.639511 92.276613) (xy 106.723387 92.360489)\r\n\t\t\t\t(xy 106.723389 92.36049) (xy 106.723391 92.360492) (xy 106.82611 92.419797) (xy 106.826111 92.419797)\r\n\t\t\t\t(xy 106.826114 92.419799) (xy 106.940691 92.4505) (xy 106.940693 92.4505) (xy 107.059307 92.4505)\r\n\t\t\t\t(xy 107.059309 92.4505) (xy 107.173886 92.419799) (xy 107.173888 92.419797) (xy 107.17389 92.419797)\r\n\t\t\t\t(xy 107.276608 92.360492) (xy 107.276608 92.360491) (xy 107.276613 92.360489) (xy 107.360489 92.276613)\r\n\t\t\t\t(xy 107.3709 92.258581) (xy 107.419797 92.17389) (xy 107.419797 92.173888) (xy 107.419799 92.173886)\r\n\t\t\t\t(xy 107.4505 92.059309) (xy 107.4505 91.944767) (xy 107.469407 91.886576) (xy 107.47949 91.874769)\r\n\t\t\t\t(xy 110.741895 88.612364) (xy 110.741897 88.612364) (xy 110.812364 88.541897) (xy 110.8505 88.449828)\r\n\t\t\t\t(xy 110.8505 67.229892) (xy 110.812364 67.137823) (xy 110.809083 67.134542) (xy 110.741897 67.067355)\r\n\t\t\t\t(xy 110.741897 67.067356) (xy 109.237177 65.562636) (xy 109.237175 65.562635) (xy 109.237174 65.562634)\r\n\t\t\t\t(xy 109.145109 65.5245) (xy 109.145108 65.5245) (xy 107.96977 65.5245) (xy 107.911579 65.505593)\r\n\t\t\t\t(xy 107.899766 65.495504) (xy 106.96413 64.559867) (xy 106.898012 64.493749) (xy 112.07 64.493749)\r\n\t\t\t\t(xy 112.07 64.70625) (xy 112.10324 64.916121) (xy 112.168904 65.118215) (xy 112.265376 65.307553)\r\n\t\t\t\t(xy 112.26538 65.307559) (xy 112.304728 65.361716) (xy 112.304729 65.361716) (xy 112.937037 64.729407)\r\n\t\t\t\t(xy 112.954075 64.792993) (xy 113.019901 64.907007) (xy 113.112993 65.000099) (xy 113.227007 65.065925)\r\n\t\t\t\t(xy 113.290589 65.082962) (xy 112.658282 65.715269) (xy 112.658282 65.71527) (xy 112.71244 65.754619)\r\n\t\t\t\t(xy 112.712446 65.754623) (xy 112.901784 65.851095) (xy 113.103878 65.916759) (xy 113.300856 65.947957)\r\n\t\t\t\t(xy 113.355372 65.975734) (xy 113.38315 66.030251) (xy 113.373579 66.090683) (xy 113.330314 66.133948)\r\n\t\t\t\t(xy 113.304684 66.142836) (xy 113.128163 66.177949) (xy 112.946086 66.253367) (xy 112.782218 66.362861)\r\n\t\t\t\t(xy 112.782214 66.362864) (xy 112.642864 66.502214) (xy 112.642861 66.502218) (xy 112.533367 66.666086)\r\n\t\t\t\t(xy 112.457949 66.848163) (xy 112.457949 66.848165) (xy 112.4195 67.041456) (xy 112.4195 67.238543)\r\n\t\t\t\t(xy 112.457949 67.431834) (xy 112.457949 67.431836) (xy 112.533367 67.613913) (xy 112.533368 67.613914)\r\n\t\t\t\t(xy 112.642861 67.777782) (xy 112.782218 67.917139) (xy 112.946086 68.026632) (xy 113.108387 68.093858)\r\n\t\t\t\t(xy 113.154911 68.133593) (xy 113.1695 68.185321) (xy 113.1695 85.435231) (xy 113.150593 85.493422)\r\n\t\t\t\t(xy 113.140504 85.505234) (xy 112.925233 85.720504) (xy 112.870718 85.748281) (xy 112.855231 85.7495)\r\n\t\t\t\t(xy 112.740691 85.7495) (xy 112.670567 85.768289) (xy 112.626109 85.780202) (xy 112.523391 85.839507)\r\n\t\t\t\t(xy 112.439507 85.923391) (xy 112.380202 86.026109) (xy 112.368066 86.071401) (xy 112.3495 86.140691)\r\n\t\t\t\t(xy 112.3495 86.259309) (xy 112.360357 86.299828) (xy 112.380202 86.37389) (xy 112.439507 86.476608)\r\n\t\t\t\t(xy 112.439509 86.47661) (xy 112.439511 86.476613) (xy 112.523387 86.560489) (xy 112.523389 86.56049)\r\n\t\t\t\t(xy 112.523391 86.560492) (xy 112.62611 86.619797) (xy 112.626111 86.619797) (xy 112.626114 86.619799)\r\n\t\t\t\t(xy 112.740691 86.6505) (xy 112.740693 86.6505) (xy 112.859308 86.6505) (xy 112.859309 86.6505)\r\n\t\t\t\t(xy 112.965552 86.622032) (xy 113.026653 86.625233) (xy 113.074203 86.663738) (xy 113.076669 86.668432)\r\n\t\t\t\t(xy 113.076956 86.668267) (xy 113.139507 86.776608) (xy 113.139509 86.77661) (xy 113.139511 86.776613)\r\n\t\t\t\t(xy 113.223387 86.860489) (xy 113.223389 86.86049) (xy 113.223391 86.860492) (xy 113.32611 86.919797)\r\n\t\t\t\t(xy 113.326111 86.919797) (xy 113.326114 86.919799) (xy 113.440691 86.9505) (xy 113.440693 86.9505)\r\n\t\t\t\t(xy 113.538467 86.9505) (xy 113.596658 86.969407) (xy 113.632622 87.018907) (xy 113.634094 87.023877)\r\n\t\t\t\t(xy 113.635153 87.027829) (xy 113.635153 87.027832) (xy 113.663064 87.131998) (xy 113.665855 87.142413)\r\n\t\t\t\t(xy 113.72516 87.245131) (xy 113.725162 87.245133) (xy 113.725164 87.245136) (xy 113.80904 87.329012)\r\n\t\t\t\t(xy 113.809042 87.329013) (xy 113.809044 87.329015) (xy 113.911763 87.38832) (xy 113.911764 87.38832)\r\n\t\t\t\t(xy 113.911767 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'87.388322) (xy 114.026344 87.419023) (xy 114.026346 87.419023) (xy 114.14496 87.419023)\r\n\t\t\t\t(xy 114.144962 87.419023) (xy 114.259539 87.388322) (xy 114.259542 87.388319) (xy 114.262614 87.387048)\r\n\t\t\t\t(xy 114.264989 87.386861) (xy 114.265807 87.386642) (xy 114.265847 87.386793) (xy 114.32361 87.382247)\r\n\t\t\t\t(xy 114.37578 87.414216) (xy 114.399195 87.470744) (xy 114.3995 87.478512) (xy 114.3995 88.849828)\r\n\t\t\t\t(xy 114.437634 88.941894) (xy 114.437635 88.941895) (xy 114.437636 88.941897) (xy 114.470505 88.974766)\r\n\t\t\t\t(xy 114.498281 89.029281) (xy 114.4995 89.044768) (xy 114.4995 92.684572) (xy 114.480593 92.742763)\r\n\t\t\t\t(xy 114.431093 92.778727) (xy 114.426124 92.780198) (xy 114.426114 92.7802) (xy 114.42611 92.780202)\r\n\t\t\t\t(xy 114.323391 92.839507) (xy 114.239507 92.923391) (xy 114.180202 93.026109) (xy 114.177652 93.035627)\r\n\t\t\t\t(xy 114.1495 93.140691) (xy 114.1495 93.259309) (xy 114.158734 93.293769) (xy 114.180202 93.37389)\r\n\t\t\t\t(xy 114.239507 93.476608) (xy 114.239509 93.47661) (xy 114.239511 93.476613) (xy 114.323387 93.560489)\r\n\t\t\t\t(xy 114.323389 93.56049) (xy 114.323391 93.560492) (xy 114.42611 93.619797) (xy 114.426111 93.619797)\r\n\t\t\t\t(xy 114.426114 93.619799) (xy 114.540691 93.6505) (xy 114.540693 93.6505) (xy 114.659307 93.6505)\r\n\t\t\t\t(xy 114.659309 93.6505) (xy 114.773886 93.619799) (xy 114.773888 93.619797) (xy 114.77389 93.619797)\r\n\t\t\t\t(xy 114.876608 93.560492) (xy 114.876608 93.560491) (xy 114.876613 93.560489) (xy 114.960489 93.476613)\r\n\t\t\t\t(xy 114.962061 93.47389) (xy 115.019797 93.37389) (xy 115.019797 93.373888) (xy 115.019799 93.373886)\r\n\t\t\t\t(xy 115.0505 93.259309) (xy 115.0505 93.140691) (xy 115.019799 93.026114) (xy 115.015703 93.01902)\r\n\t\t\t\t(xy 115.013763 93.015659) (xy 115.0005 92.96616) (xy 115.0005 88.850171) (xy 114.962364 88.758103)\r\n\t\t\t\t(xy 114.929496 88.725234) (xy 114.901719 88.670717) (xy 114.9005 88.655231) (xy 114.9005 78.815165)\r\n\t\t\t\t(xy 114.919407 78.756974) (xy 114.968907 78.72101) (xy 115.025124 78.719539) (xy 115.026111 78.719803)\r\n\t\t\t\t(xy 115.026114 78.719805) (xy 115.140691 78.750506) (xy 115.140692 78.750506) (xy 115.259307 78.750506)\r\n\t\t\t\t(xy 115.259309 78.750506) (xy 115.373886 78.719805) (xy 115.373888 78.719803) (xy 115.37389 78.719803)\r\n\t\t\t\t(xy 115.476608 78.660498) (xy 115.476608 78.660497) (xy 115.476613 78.660495) (xy 115.560489 78.576619)\r\n\t\t\t\t(xy 115.564763 78.569215) (xy 115.610231 78.528275) (xy 115.671081 78.521878) (xy 115.72407 78.552469)\r\n\t\t\t\t(xy 115.748957 78.608364) (xy 115.7495 78.618715) (xy 115.7495 86.299828) (xy 115.787635 86.391896)\r\n\t\t\t\t(xy 115.787636 86.391897) (xy 115.934084 86.538345) (xy 116.070503 86.674763) (xy 116.098281 86.72928)\r\n\t\t\t\t(xy 116.0995 86.744767) (xy 116.0995 92.6505) (xy 116.080593 92.708691) (xy 116.031093 92.744655)\r\n\t\t\t\t(xy 116.0005 92.7495) (xy 115.940691 92.7495) (xy 115.899501 92.760537) (xy 115.826109 92.780202)\r\n\t\t\t\t(xy 115.723391 92.839507) (xy 115.639507 92.923391) (xy 115.580202 93.026109) (xy 115.577652 93.035627)\r\n\t\t\t\t(xy 115.5495 93.140691) (xy 115.5495 93.259309) (xy 115.558734 93.293769) (xy 115.580202 93.37389)\r\n\t\t\t\t(xy 115.639507 93.476608) (xy 115.639509 93.47661) (xy 115.639511 93.476613) (xy 115.723387 93.560489)\r\n\t\t\t\t(xy 115.723389 93.56049) (xy 115.723391 93.560492) (xy 115.82611 93.619797) (xy 115.826111 93.619797)\r\n\t\t\t\t(xy 115.826114 93.619799) (xy 115.940691 93.6505) (xy 115.940693 93.6505) (xy 116.059307 93.6505)\r\n\t\t\t\t(xy 116.059309 93.6505) (xy 116.173886 93.619799) (xy 116.173888 93.619797) (xy 116.17389 93.619797)\r\n\t\t\t\t(xy 116.276608 93.560492) (xy 116.276608 93.560491) (xy 116.276613 93.560489) (xy 116.360489 93.476613)\r\n\t\t\t\t(xy 116.362061 93.47389) (xy 116.419797 93.37389) (xy 116.419797 93.373888) (xy 116.419799 93.373886)\r\n\t\t\t\t(xy 116.4505 93.259309) (xy 116.4505 93.144768) (xy 116.469407 93.086577) (xy 116.479496 93.074764)\r\n\t\t\t\t(xy 116.491896 93.062364) (xy 116.491897 93.062364) (xy 116.562364 92.991897) (xy 116.585721 92.935508)\r\n\t\t\t\t(xy 116.600501 92.899828) (xy 116.600501 92.800172) (xy 116.6005 92.800169) (xy 116.6005 92.174034)\r\n\t\t\t\t(xy 124.7995 92.174034) (xy 124.7995 92.425965) (xy 124.838908 92.67478) (xy 124.916759 92.914379)\r\n\t\t\t\t(xy 125.02464 93.126109) (xy 125.03113 93.138845) (xy 125.179207 93.342656) (xy 125.357344 93.520793)\r\n\t\t\t\t(xy 125.561155 93.66887) (xy 125.785621 93.783241) (xy 126.025215 93.86109) (xy 126.025216 93.86109)\r\n\t\t\t\t(xy 126.025219 93.861091) (xy 126.274035 93.9005) (xy 126.274038 93.9005) (xy 126.525965 93.9005)\r\n\t\t\t\t(xy 126.77478 93.861091) (xy 126.774781 93.86109) (xy 126.774785 93.86109) (xy 127.014379 93.783241)\r\n\t\t\t\t(xy 127.238845 93.66887) (xy 127.442656 93.520793) (xy 127.620793 93.342656) (xy 127.76887 93.138845)\r\n\t\t\t\t(xy 127.883241 92.914379) (xy 127.96109 92.674785) (xy 127.961232 92.67389) (xy 128.0005 92.425965)\r\n\t\t\t\t(xy 128.0005 92.174034) (xy 127.961091 91.925219) (xy 127.956655 91.911565) (xy 127.883241 91.685621)\r\n\t\t\t\t(xy 127.76887 91.461155) (xy 127.620793 91.257344) (xy 127.442656 91.079207) (xy 127.238845 90.93113)\r\n\t\t\t\t(xy 127.238844 90.931129) (xy 127.238842 90.931128) (xy 127.014379 90.816759) (xy 126.77478 90.738908)\r\n\t\t\t\t(xy 126.525965 90.6995) (xy 126.525962 90.6995) (xy 126.274038 90.6995) (xy 126.274035 90.6995)\r\n\t\t\t\t(xy 126.025219 90.738908) (xy 125.78562 90.816759) (xy 125.561157 90.931128) (xy 125.357345 91.079206)\r\n\t\t\t\t(xy 125.179206 91.257345) (xy 125.031128 91.461157) (xy 124.916759 91.68562) (xy 124.838908 91.925219)\r\n\t\t\t\t(xy 124.7995 92.174034) (xy 116.6005 92.174034) (xy 116.6005 86.661359) (xy 116.600501 86.66135)\r\n\t\t\t\t(xy 116.600501 86.550172) (xy 116.574558 86.487542) (xy 116.568703 86.473407) (xy 116.562364 86.458103)\r\n\t\t\t\t(xy 116.491897 86.387636) (xy 116.491895 86.387635) (xy 116.279496 86.175235) (xy 116.251719 86.120719)\r\n\t\t\t\t(xy 116.2505 86.105232) (xy 116.2505 76.69123) (xy 119.1495 76.69123) (xy 119.1495 76.858769) (xy 119.182183 77.023079)\r\n\t\t\t\t(xy 119.182185 77.023085) (xy 119.246296 77.177862) (xy 119.274318 77.219799) (xy 119.339374 77.317162)\r\n\t\t\t\t(xy 119.457838 77.435626) (xy 119.597137 77.528703) (xy 119.751918 77.592816) (xy 119.916233 77.6255)\r\n\t\t\t\t(xy 119.916234 77.6255) (xy 120.083766 77.6255) (xy 120.083767 77.6255) (xy 120.248082 77.592816)\r\n\t\t\t\t(xy 120.402863 77.528703) (xy 120.542162 77.435626) (xy 120.660626 77.317162) (xy 120.753703 77.177863)\r\n\t\t\t\t(xy 120.817816 77.023082) (xy 120.8505 76.858767) (xy 120.8505 76.691233) (xy 120.817816 76.526918)\r\n\t\t\t\t(xy 120.753703 76.372137) (xy 120.660626 76.232838) (xy 120.542162 76.114374) (xy 120.412961 76.028044)\r\n\t\t\t\t(xy 120.402862 76.021296) (xy 120.248085 75.957185) (xy 120.248079 75.957183) (xy 120.083769 75.9245)\r\n\t\t\t\t(xy 120.083767 75.9245) (xy 119.916233 75.9245) (xy 119.91623 75.9245) (xy 119.75192 75.957183)\r\n\t\t\t\t(xy 119.751914 75.957185) (xy 119.597137 76.021296) (xy 119.457838 76.114374) (xy 119.457834 76.114377)\r\n\t\t\t\t(xy 119.339377 76.232834) (xy 119.339374 76.232838) (xy 119.246296 76.372137) (xy 119.182185 76.526914)\r\n\t\t\t\t(xy 119.182183 76.52692) (xy 119.1495 76.69123) (xy 116.2505 76.69123) (xy 116.2505 76.526001) (xy 116.212364 76.433933)\r\n\t\t\t\t(xy 116.141897 76.363465) (xy 116.141897 76.363466) (xy 116.053665 76.275234) (xy 116.025888 76.220717)\r\n\t\t\t\t(xy 116.024669 76.20523) (xy 116.024669 76.090691) (xy 116.016577 76.060492) (xy 115.993968 75.976113)\r\n\t\t\t\t(xy 115.993966 75.97611) (xy 115.993966 75.976108) (xy 115.934661 75.87339) (xy 115.934659 75.873388)\r\n\t\t\t\t(xy 115.934658 75.873386) (xy 115.850782 75.78951) (xy 115.850779 75.789508) (xy 115.850777 75.789506)\r\n\t\t\t\t(xy 115.748058 75.730201) (xy 115.748059 75.730201) (xy 115.73452 75.726573) (xy 115.633478 75.699499)\r\n\t\t\t\t(xy 115.51486 75.699499) (xy 115.444736 75.718288) (xy 115.400278 75.730201) (xy 115.29756 75.789506)\r\n\t\t\t\t(xy 115.213676 75.87339) (xy 115.154371 75.976108) (xy 115.140972 76.026114) (xy 115.132229 76.058746)\r\n\t\t\t\t(xy 115.123669 76.090691) (xy 115.123669 76.209307) (xy 115.134234 76.248739) (xy 115.131031 76.309841)\r\n\t\t\t\t(xy 115.092525 76.35739) (xy 115.064231 76.369987) (xy 115.025124 76.380466) (xy 114.964022 76.377265)\r\n\t\t\t\t(xy 114.916472 76.33876) (xy 114.9005 76.28484) (xy 114.9005 75.015159) (xy 114.919407 74.956968)\r\n\t\t\t\t(xy 114.968907 74.921004) (xy 115.025124 74.919533) (xy 115.026111 7' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'4.919797) (xy 115.026114 74.919799)\r\n\t\t\t\t(xy 115.140691 74.9505) (xy 115.140692 74.9505) (xy 115.259307 74.9505) (xy 115.259309 74.9505)\r\n\t\t\t\t(xy 115.373886 74.919799) (xy 115.373888 74.919797) (xy 115.37389 74.919797) (xy 115.476608 74.860492)\r\n\t\t\t\t(xy 115.476608 74.860491) (xy 115.476613 74.860489) (xy 115.560489 74.776613) (xy 115.619799 74.673886)\r\n\t\t\t\t(xy 115.6505 74.559309) (xy 115.6505 74.440691) (xy 115.619799 74.326114) (xy 115.619797 74.326111)\r\n\t\t\t\t(xy 115.619797 74.326109) (xy 115.560492 74.223391) (xy 115.56049 74.223389) (xy 115.560489 74.223387)\r\n\t\t\t\t(xy 115.476613 74.139511) (xy 115.47661 74.139509) (xy 115.476608 74.139507) (xy 115.408746 74.100327)\r\n\t\t\t\t(xy 115.408745 74.100327) (xy 115.373888 74.080202) (xy 115.373887 74.080201) (xy 115.373886 74.080201)\r\n\t\t\t\t(xy 115.259309 74.0495) (xy 115.140691 74.0495) (xy 115.026114 74.080201) (xy 115.026112 74.080201)\r\n\t\t\t\t(xy 115.025123 74.080467) (xy 114.964022 74.077265) (xy 114.916472 74.038759) (xy 114.910464 74.018478)\r\n\t\t\t\t(xy 120.5995 74.018478) (xy 120.5995 75.531521) (xy 120.599501 75.531523) (xy 120.614352 75.625299)\r\n\t\t\t\t(xy 120.614354 75.625304) (xy 120.67195 75.738342) (xy 120.761658 75.82805) (xy 120.874696 75.885646)\r\n\t\t\t\t(xy 120.968481 75.9005) (xy 122.231518 75.900499) (xy 122.231521 75.900499) (xy 122.231522 75.900498)\r\n\t\t\t\t(xy 122.278411 75.893072) (xy 122.325299 75.885647) (xy 122.325299 75.885646) (xy 122.325304 75.885646)\r\n\t\t\t\t(xy 122.438342 75.82805) (xy 122.52805 75.738342) (xy 122.585646 75.625304) (xy 122.6005 75.531519)\r\n\t\t\t\t(xy 122.600499 74.551456) (xy 123.0995 74.551456) (xy 123.0995 74.998543) (xy 123.137949 75.191834)\r\n\t\t\t\t(xy 123.137949 75.191836) (xy 123.213367 75.373913) (xy 123.213368 75.373914) (xy 123.322861 75.537782)\r\n\t\t\t\t(xy 123.462218 75.677139) (xy 123.626086 75.786632) (xy 123.808165 75.862051) (xy 124.001459 75.9005)\r\n\t\t\t\t(xy 124.00146 75.9005) (xy 124.19854 75.9005) (xy 124.198541 75.9005) (xy 124.391835 75.862051)\r\n\t\t\t\t(xy 124.573914 75.786632) (xy 124.737782 75.677139) (xy 124.877139 75.537782) (xy 124.986632 75.373914)\r\n\t\t\t\t(xy 125.062051 75.191835) (xy 125.1005 74.998541) (xy 125.1005 74.551459) (xy 125.100499 74.551456)\r\n\t\t\t\t(xy 125.5995 74.551456) (xy 125.5995 74.998543) (xy 125.637949 75.191834) (xy 125.637949 75.191836)\r\n\t\t\t\t(xy 125.713367 75.373913) (xy 125.713368 75.373914) (xy 125.822861 75.537782) (xy 125.962218 75.677139)\r\n\t\t\t\t(xy 126.126086 75.786632) (xy 126.308165 75.862051) (xy 126.501459 75.9005) (xy 126.50146 75.9005)\r\n\t\t\t\t(xy 126.69854 75.9005) (xy 126.698541 75.9005) (xy 126.891835 75.862051) (xy 127.073914 75.786632)\r\n\t\t\t\t(xy 127.237782 75.677139) (xy 127.377139 75.537782) (xy 127.486632 75.373914) (xy 127.562051 75.191835)\r\n\t\t\t\t(xy 127.6005 74.998541) (xy 127.6005 74.551459) (xy 127.600499 74.551456) (xy 128.0995 74.551456)\r\n\t\t\t\t(xy 128.0995 74.998543) (xy 128.137949 75.191834) (xy 128.137949 75.191836) (xy 128.213367 75.373913)\r\n\t\t\t\t(xy 128.213368 75.373914) (xy 128.322861 75.537782) (xy 128.462218 75.677139) (xy 128.626086 75.786632)\r\n\t\t\t\t(xy 128.808165 75.862051) (xy 129.001459 75.9005) (xy 129.00146 75.9005) (xy 129.19854 75.9005)\r\n\t\t\t\t(xy 129.198541 75.9005) (xy 129.391835 75.862051) (xy 129.573914 75.786632) (xy 129.737782 75.677139)\r\n\t\t\t\t(xy 129.877139 75.537782) (xy 129.986632 75.373914) (xy 130.059036 75.199112) (xy 130.098772 75.152587)\r\n\t\t\t\t(xy 130.158267 75.138303) (xy 130.214795 75.161717) (xy 130.246764 75.213886) (xy 130.2495 75.236998)\r\n\t\t\t\t(xy 130.2495 75.855231) (xy 130.230593 75.913422) (xy 130.220504 75.925234) (xy 129.358103 76.787635)\r\n\t\t\t\t(xy 129.358103 76.787636) (xy 129.358102 76.787635) (xy 129.287635 76.858103) (xy 129.2495 76.950171)\r\n\t\t\t\t(xy 129.2495 92.87239) (xy 129.230593 92.930581) (xy 129.220504 92.942393) (xy 129.139511 93.023386)\r\n\t\t\t\t(xy 129.139507 93.023391) (xy 129.080202 93.126109) (xy 129.069689 93.165345) (xy 129.0495 93.240691)\r\n\t\t\t\t(xy 129.0495 93.359309) (xy 129.076574 93.460351) (xy 129.080202 93.47389) (xy 129.139507 93.576608)\r\n\t\t\t\t(xy 129.139509 93.57661) (xy 129.139511 93.576613) (xy 129.223387 93.660489) (xy 129.223389 93.66049)\r\n\t\t\t\t(xy 129.223391 93.660492) (xy 129.32611 93.719797) (xy 129.326111 93.719797) (xy 129.326114 93.719799)\r\n\t\t\t\t(xy 129.440691 93.7505) (xy 129.440693 93.7505) (xy 129.559307 93.7505) (xy 129.559309 93.7505)\r\n\t\t\t\t(xy 129.630098 93.731532) (xy 134.8995 93.731532) (xy 134.8995 93.938467) (xy 134.939869 94.141418)\r\n\t\t\t\t(xy 135.019058 94.332597) (xy 135.115286 94.476613) (xy 135.134023 94.504655) (xy 135.280345 94.650977)\r\n\t\t\t\t(xy 135.452402 94.765941) (xy 135.64358 94.84513) (xy 135.846535 94.8855) (xy 135.846536 94.8855)\r\n\t\t\t\t(xy 136.053464 94.8855) (xy 136.053465 94.8855) (xy 136.25642 94.84513) (xy 136.447598 94.765941)\r\n\t\t\t\t(xy 136.619655 94.650977) (xy 136.765977 94.504655) (xy 136.880941 94.332598) (xy 136.96013 94.14142)\r\n\t\t\t\t(xy 137.0005 93.938465) (xy 137.0005 93.731535) (xy 136.96013 93.52858) (xy 136.880941 93.337402)\r\n\t\t\t\t(xy 136.765977 93.165345) (xy 136.619655 93.019023) (xy 136.619651 93.01902) (xy 136.447597 92.904058)\r\n\t\t\t\t(xy 136.256418 92.824869) (xy 136.053467 92.7845) (xy 136.053465 92.7845) (xy 135.846535 92.7845)\r\n\t\t\t\t(xy 135.846532 92.7845) (xy 135.643581 92.824869) (xy 135.452402 92.904058) (xy 135.280348 93.01902)\r\n\t\t\t\t(xy 135.13402 93.165348) (xy 135.019058 93.337402) (xy 134.939869 93.528581) (xy 134.8995 93.731532)\r\n\t\t\t\t(xy 129.630098 93.731532) (xy 129.673886 93.719799) (xy 129.673888 93.719797) (xy 129.67389 93.719797)\r\n\t\t\t\t(xy 129.776608 93.660492) (xy 129.776608 93.660491) (xy 129.776613 93.660489) (xy 129.860489 93.576613)\r\n\t\t\t\t(xy 129.892717 93.520793) (xy 129.919797 93.47389) (xy 129.919797 93.473888) (xy 129.919799 93.473886)\r\n\t\t\t\t(xy 129.9505 93.359309) (xy 129.9505 93.240691) (xy 129.919799 93.126114) (xy 129.919797 93.126111)\r\n\t\t\t\t(xy 129.919797 93.126109) (xy 129.860492 93.023391) (xy 129.860488 93.023386) (xy 129.779496 92.942393)\r\n\t\t\t\t(xy 129.751719 92.887876) (xy 129.7505 92.87239) (xy 129.7505 92.461532) (xy 132.3595 92.461532)\r\n\t\t\t\t(xy 132.3595 92.668467) (xy 132.399869 92.871418) (xy 132.479058 93.062597) (xy 132.59402 93.234651)\r\n\t\t\t\t(xy 132.594023 93.234655) (xy 132.740345 93.380977) (xy 132.912402 93.495941) (xy 133.10358 93.57513)\r\n\t\t\t\t(xy 133.306535 93.6155) (xy 133.306536 93.6155) (xy 133.513464 93.6155) (xy 133.513465 93.6155)\r\n\t\t\t\t(xy 133.71642 93.57513) (xy 133.907598 93.495941) (xy 134.079655 93.380977) (xy 134.225977 93.234655)\r\n\t\t\t\t(xy 134.340941 93.062598) (xy 134.42013 92.87142) (xy 134.4605 92.668465) (xy 134.4605 92.461535)\r\n\t\t\t\t(xy 134.42013 92.25858) (xy 134.340941 92.067402) (xy 134.225977 91.895345) (xy 134.079655 91.749023)\r\n\t\t\t\t(xy 133.984767 91.685621) (xy 133.907597 91.634058) (xy 133.716418 91.554869) (xy 133.513467 91.5145)\r\n\t\t\t\t(xy 133.513465 91.5145) (xy 133.306535 91.5145) (xy 133.306532 91.5145) (xy 133.103581 91.554869)\r\n\t\t\t\t(xy 132.912402 91.634058) (xy 132.740348 91.74902) (xy 132.59402 91.895348) (xy 132.479058 92.067402)\r\n\t\t\t\t(xy 132.399869 92.258581) (xy 132.3595 92.461532) (xy 129.7505 92.461532) (xy 129.7505 91.191532)\r\n\t\t\t\t(xy 134.8995 91.191532) (xy 134.8995 91.398467) (xy 134.939869 91.601418) (xy 135.019058 91.792597)\r\n\t\t\t\t(xy 135.119148 91.942393) (xy 135.134023 91.964655) (xy 135.280345 92.110977) (xy 135.452402 92.225941)\r\n\t\t\t\t(xy 135.64358 92.30513) (xy 135.846535 92.3455) (xy 135.846536 92.3455) (xy 136.053464 92.3455)\r\n\t\t\t\t(xy 136.053465 92.3455) (xy 136.25642 92.30513) (xy 136.447598 92.225941) (xy 136.619655 92.110977)\r\n\t\t\t\t(xy 136.765977 91.964655) (xy 136.880941 91.792598) (xy 136.96013 91.60142) (xy 137.0005 91.398465)\r\n\t\t\t\t(xy 137.0005 91.191535) (xy 136.96013 90.98858) (xy 136.880941 90.797402) (xy 136.765977 90.625345)\r\n\t\t\t\t(xy 136.619655 90.479023) (xy 136.447598 90.364059) (xy 136.447599 90.364059) (xy 136.447597 90.364058)\r\n\t\t\t\t(xy 136.256418 90.284869) (xy 136.053467 90.2445) (xy 136.053465 90.2445) (xy 135.846535 90.2445)\r\n\t\t\t\t(xy 135.846532 90.2445) (xy 135.643581 90.284869) (xy 135.452402 90.364058) (xy 135.280348 90.47902)\r\n\t\t\t\t(xy 135.13402 90.625348) (xy 135.019058 90.797402) (xy 134.939869 90.988581) (xy 134.8995 91.191532)\r\n\t\t\t\t(xy 129.7505 91.191532) (xy 129.7505 89.921532) (xy 132.3595 89.921532) (xy 132.3595 90.128467)\r\n\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'\t\t\t(xy 132.399869 90.331418) (xy 132.479058 90.522597) (xy 132.584365 90.680201) (xy 132.594023 90.694655)\r\n\t\t\t\t(xy 132.740345 90.840977) (xy 132.912402 90.955941) (xy 133.10358 91.03513) (xy 133.306535 91.0755)\r\n\t\t\t\t(xy 133.306536 91.0755) (xy 133.513464 91.0755) (xy 133.513465 91.0755) (xy 133.71642 91.03513)\r\n\t\t\t\t(xy 133.907598 90.955941) (xy 134.079655 90.840977) (xy 134.225977 90.694655) (xy 134.340941 90.522598)\r\n\t\t\t\t(xy 134.42013 90.33142) (xy 134.4605 90.128465) (xy 134.4605 89.921535) (xy 134.444419 89.840691)\r\n\t\t\t\t(xy 144.7495 89.840691) (xy 144.7495 89.959309) (xy 144.76559 90.019357) (xy 144.780202 90.07389)\r\n\t\t\t\t(xy 144.839507 90.176608) (xy 144.839509 90.17661) (xy 144.839511 90.176613) (xy 144.923387 90.260489)\r\n\t\t\t\t(xy 144.923389 90.26049) (xy 144.923391 90.260492) (xy 145.02611 90.319797) (xy 145.026111 90.319797)\r\n\t\t\t\t(xy 145.026114 90.319799) (xy 145.140691 90.3505) (xy 145.140693 90.3505) (xy 145.259307 90.3505)\r\n\t\t\t\t(xy 145.259309 90.3505) (xy 145.373886 90.319799) (xy 145.373888 90.319797) (xy 145.37389 90.319797)\r\n\t\t\t\t(xy 145.476608 90.260492) (xy 145.476608 90.260491) (xy 145.476613 90.260489) (xy 145.560489 90.176613)\r\n\t\t\t\t(xy 145.560492 90.176608) (xy 145.619797 90.07389) (xy 145.619797 90.073888) (xy 145.619799 90.073886)\r\n\t\t\t\t(xy 145.6505 89.959309) (xy 145.6505 89.840691) (xy 145.619799 89.726114) (xy 145.619797 89.726111)\r\n\t\t\t\t(xy 145.619797 89.726109) (xy 145.560492 89.623391) (xy 145.56049 89.623389) (xy 145.560489 89.623387)\r\n\t\t\t\t(xy 145.476613 89.539511) (xy 145.47661 89.539509) (xy 145.476608 89.539507) (xy 145.373889 89.480202)\r\n\t\t\t\t(xy 145.37389 89.480202) (xy 145.342802 89.471872) (xy 145.259309 89.4495) (xy 145.140691 89.4495)\r\n\t\t\t\t(xy 145.070567 89.468289) (xy 145.026109 89.480202) (xy 144.923391 89.539507) (xy 144.839507 89.623391)\r\n\t\t\t\t(xy 144.780202 89.726109) (xy 144.763037 89.790169) (xy 144.7495 89.840691) (xy 134.444419 89.840691)\r\n\t\t\t\t(xy 134.42013 89.71858) (xy 134.340941 89.527402) (xy 134.225977 89.355345) (xy 134.079655 89.209023)\r\n\t\t\t\t(xy 134.079651 89.20902) (xy 133.907597 89.094058) (xy 133.716418 89.014869) (xy 133.513467 88.9745)\r\n\t\t\t\t(xy 133.513465 88.9745) (xy 133.306535 88.9745) (xy 133.306532 88.9745) (xy 133.103581 89.014869)\r\n\t\t\t\t(xy 132.912402 89.094058) (xy 132.740348 89.20902) (xy 132.59402 89.355348) (xy 132.479058 89.527402)\r\n\t\t\t\t(xy 132.399869 89.718581) (xy 132.3595 89.921532) (xy 129.7505 89.921532) (xy 129.7505 88.651532)\r\n\t\t\t\t(xy 134.8995 88.651532) (xy 134.8995 88.858467) (xy 134.939869 89.061418) (xy 135.019058 89.252597)\r\n\t\t\t\t(xy 135.091156 89.3605) (xy 135.134023 89.424655) (xy 135.280345 89.570977) (xy 135.452402 89.685941)\r\n\t\t\t\t(xy 135.64358 89.76513) (xy 135.846535 89.8055) (xy 135.846536 89.8055) (xy 136.053464 89.8055)\r\n\t\t\t\t(xy 136.053465 89.8055) (xy 136.25642 89.76513) (xy 136.447598 89.685941) (xy 136.619655 89.570977)\r\n\t\t\t\t(xy 136.765977 89.424655) (xy 136.880941 89.252598) (xy 136.96013 89.06142) (xy 137.0005 88.858465)\r\n\t\t\t\t(xy 137.0005 88.651535) (xy 136.96013 88.44858) (xy 136.880941 88.257402) (xy 136.765977 88.085345)\r\n\t\t\t\t(xy 136.619655 87.939023) (xy 136.619651 87.93902) (xy 136.447597 87.824058) (xy 136.256418 87.744869)\r\n\t\t\t\t(xy 136.053467 87.7045) (xy 136.053465 87.7045) (xy 135.846535 87.7045) (xy 135.846532 87.7045)\r\n\t\t\t\t(xy 135.643581 87.744869) (xy 135.452402 87.824058) (xy 135.280348 87.93902) (xy 135.13402 88.085348)\r\n\t\t\t\t(xy 135.019058 88.257402) (xy 134.939869 88.448581) (xy 134.8995 88.651532) (xy 129.7505 88.651532)\r\n\t\t\t\t(xy 129.7505 87.381532) (xy 132.3595 87.381532) (xy 132.3595 87.588467) (xy 132.399869 87.791418)\r\n\t\t\t\t(xy 132.479058 87.982597) (xy 132.59402 88.154651) (xy 132.594023 88.154655) (xy 132.740345 88.300977)\r\n\t\t\t\t(xy 132.912402 88.415941) (xy 133.10358 88.49513) (xy 133.306535 88.5355) (xy 133.306536 88.5355)\r\n\t\t\t\t(xy 133.513464 88.5355) (xy 133.513465 88.5355) (xy 133.71642 88.49513) (xy 133.907598 88.415941)\r\n\t\t\t\t(xy 134.079655 88.300977) (xy 134.225977 88.154655) (xy 134.340941 87.982598) (xy 134.42013 87.79142)\r\n\t\t\t\t(xy 134.4605 87.588465) (xy 134.4605 87.381535) (xy 134.42013 87.17858) (xy 134.340941 86.987402)\r\n\t\t\t\t(xy 134.225977 86.815345) (xy 134.079655 86.669023) (xy 134.079651 86.66902) (xy 133.907597 86.554058)\r\n\t\t\t\t(xy 133.716418 86.474869) (xy 133.513467 86.4345) (xy 133.513465 86.4345) (xy 133.306535 86.4345)\r\n\t\t\t\t(xy 133.306532 86.4345) (xy 133.103581 86.474869) (xy 132.912402 86.554058) (xy 132.740348 86.66902)\r\n\t\t\t\t(xy 132.59402 86.815348) (xy 132.479058 86.987402) (xy 132.399869 87.178581) (xy 132.3595 87.381532)\r\n\t\t\t\t(xy 129.7505 87.381532) (xy 129.7505 85.318912) (xy 137.25 85.318912) (xy 137.25 85.581087) (xy 137.28422 85.84101)\r\n\t\t\t\t(xy 137.28422 85.841015) (xy 137.352075 86.094255) (xy 137.352078 86.094262) (xy 137.452403 86.33647)\r\n\t\t\t\t(xy 137.583492 86.563522) (xy 137.670079 86.676364) (xy 138.534152 85.812291) (xy 138.541049 85.828942)\r\n\t\t\t\t(xy 138.628599 85.95997) (xy 138.74003 86.071401) (xy 138.871058 86.158951) (xy 138.887706 86.165846)\r\n\t\t\t\t(xy 138.023633 87.029919) (xy 138.136477 87.116507) (xy 138.363529 87.247596) (xy 138.605737 87.347921)\r\n\t\t\t\t(xy 138.605744 87.347924) (xy 138.858986 87.415779) (xy 139.118912 87.449999) (xy 139.118914 87.45)\r\n\t\t\t\t(xy 139.381086 87.45) (xy 139.381087 87.449999) (xy 139.64101 87.415779) (xy 139.641015 87.415779)\r\n\t\t\t\t(xy 139.894255 87.347924) (xy 139.894262 87.347921) (xy 140.136476 87.247593) (xy 140.290648 87.158582)\r\n\t\t\t\t(xy 140.350496 87.14586) (xy 140.406392 87.170746) (xy 140.436985 87.223734) (xy 140.438301 87.25724)\r\n\t\t\t\t(xy 140.4245 87.362071) (xy 140.4245 87.607927) (xy 140.45659 87.851669) (xy 140.45659 87.851674)\r\n\t\t\t\t(xy 140.520222 88.089154) (xy 140.614302 88.316284) (xy 140.614304 88.316288) (xy 140.614306 88.316292)\r\n\t\t\t\t(xy 140.734477 88.524434) (xy 140.737235 88.529211) (xy 140.886893 88.724249) (xy 140.886895 88.724251)\r\n\t\t\t\t(xy 140.886899 88.724256) (xy 141.060744 88.898101) (xy 141.060748 88.898104) (xy 141.06075 88.898106)\r\n\t\t\t\t(xy 141.238025 89.034134) (xy 141.255792 89.047767) (xy 141.468708 89.170694) (xy 141.468714 89.170696)\r\n\t\t\t\t(xy 141.468715 89.170697) (xy 141.482998 89.176613) (xy 141.695847 89.264778) (xy 141.933323 89.328409)\r\n\t\t\t\t(xy 142.177073 89.3605) (xy 142.177074 89.3605) (xy 142.422926 89.3605) (xy 142.422927 89.3605)\r\n\t\t\t\t(xy 142.666677 89.328409) (xy 142.904153 89.264778) (xy 143.131292 89.170694) (xy 143.344208 89.047767)\r\n\t\t\t\t(xy 143.539256 88.898101) (xy 143.713101 88.724256) (xy 143.862767 88.529208) (xy 143.985694 88.316292)\r\n\t\t\t\t(xy 144.079778 88.089153) (xy 144.143409 87.851677) (xy 144.1755 87.607927) (xy 144.1755 87.419636)\r\n\t\t\t\t(xy 144.194407 87.361445) (xy 144.243907 87.325481) (xy 144.305093 87.325481) (xy 144.329499 87.337319)\r\n\t\t\t\t(xy 144.342402 87.345941) (xy 144.53358 87.42513) (xy 144.736535 87.4655) (xy 144.736536 87.4655)\r\n\t\t\t\t(xy 144.943464 87.4655) (xy 144.943465 87.4655) (xy 145.14642 87.42513) (xy 145.337598 87.345941)\r\n\t\t\t\t(xy 145.509655 87.230977) (xy 145.655977 87.084655) (xy 145.770941 86.912598) (xy 145.770941 86.912596)\r\n\t\t\t\t(xy 145.772684 86.909989) (xy 145.820734 86.872109) (xy 145.881872 86.869707) (xy 145.932746 86.903699)\r\n\t\t\t\t(xy 145.937316 86.909989) (xy 145.939058 86.912596) (xy 145.939059 86.912598) (xy 146.054023 87.084655)\r\n\t\t\t\t(xy 146.200345 87.230977) (xy 146.372402 87.345941) (xy 146.56358 87.42513) (xy 146.766535 87.4655)\r\n\t\t\t\t(xy 146.766536 87.4655) (xy 146.973464 87.4655) (xy 146.973465 87.4655) (xy 147.17642 87.42513)\r\n\t\t\t\t(xy 147.367598 87.345941) (xy 147.539655 87.230977) (xy 147.600498 87.170133) (xy 147.655013 87.142358)\r\n\t\t\t\t(xy 147.715445 87.151929) (xy 147.75871 87.195194) (xy 147.7695 87.240139) (xy 147.7695 98.690231)\r\n\t\t\t\t(xy 147.750593 98.748422) (xy 147.740503 98.760235) (xy 147.470291 99.030446) (xy 147.415775 99.058223)\r\n\t\t\t\t(xy 147.362403 99.051906) (xy 147.17642 98.97487) (xy 146.973467 98.9345) (xy 146.973465 98.9345)\r\n\t\t\t\t(xy 146.766535 98.9345) (xy 146.766532 98.9345) (xy 146.563581 98.974869) (xy 146.372402 99.054058)\r\n\t\t\t\t(xy 146.200348 99.16902) (xy 146.05402 99.315348) (xy 145.937316 99.49001) (xy 145.889266 99.52789)\r\n\t\t\t\t(xy 145.828128 99.530292) (xy 145.777254 99.496299) (xy 145.772684 99.49001) (xy 145.655979 99.315348)\r\n\t\t\t\t(xy 145.6559' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'77 99.315345) (xy 145.509655 99.169023) (xy 145.509651 99.16902) (xy 145.337597 99.054058)\r\n\t\t\t\t(xy 145.146418 98.974869) (xy 144.943467 98.9345) (xy 144.943465 98.9345) (xy 144.736535 98.9345)\r\n\t\t\t\t(xy 144.736532 98.9345) (xy 144.533581 98.974869) (xy 144.342399 99.054059) (xy 144.3295 99.062679)\r\n\t\t\t\t(xy 144.270612 99.079287) (xy 144.213209 99.058109) (xy 144.179217 99.007234) (xy 144.1755 98.980363)\r\n\t\t\t\t(xy 144.1755 98.792074) (xy 144.1755 98.792073) (xy 144.143409 98.548323) (xy 144.079778 98.310847)\r\n\t\t\t\t(xy 143.992038 98.099023) (xy 143.985697 98.083715) (xy 143.985696 98.083714) (xy 143.985694 98.083708)\r\n\t\t\t\t(xy 143.862767 97.870792) (xy 143.857939 97.8645) (xy 143.713106 97.67575) (xy 143.713104 97.675748)\r\n\t\t\t\t(xy 143.713101 97.675744) (xy 143.539256 97.501899) (xy 143.539251 97.501895) (xy 143.539249 97.501893)\r\n\t\t\t\t(xy 143.344211 97.352235) (xy 143.344208 97.352233) (xy 143.131292 97.229306) (xy 143.131288 97.229304)\r\n\t\t\t\t(xy 143.131284 97.229302) (xy 142.904154 97.135222) (xy 142.79944 97.107164) (xy 142.666677 97.071591)\r\n\t\t\t\t(xy 142.666674 97.07159) (xy 142.666672 97.07159) (xy 142.422927 97.0395) (xy 142.177073 97.0395)\r\n\t\t\t\t(xy 142.177072 97.0395) (xy 141.93333 97.07159) (xy 141.933325 97.07159) (xy 141.695845 97.135222)\r\n\t\t\t\t(xy 141.468715 97.229302) (xy 141.255788 97.352235) (xy 141.06075 97.501893) (xy 140.886893 97.67575)\r\n\t\t\t\t(xy 140.737235 97.870788) (xy 140.614302 98.083715) (xy 140.520222 98.310845) (xy 140.45659 98.548325)\r\n\t\t\t\t(xy 140.45659 98.54833) (xy 140.4245 98.792072) (xy 140.4245 99.037928) (xy 140.438301 99.142759)\r\n\t\t\t\t(xy 140.427151 99.20292) (xy 140.382768 99.245037) (xy 140.322106 99.253023) (xy 140.290648 99.241418)\r\n\t\t\t\t(xy 140.13647 99.152403) (xy 139.894262 99.052078) (xy 139.894255 99.052075) (xy 139.641013 98.98422)\r\n\t\t\t\t(xy 139.381087 98.95) (xy 139.118912 98.95) (xy 138.858989 98.98422) (xy 138.858984 98.98422) (xy 138.605744 99.052075)\r\n\t\t\t\t(xy 138.605737 99.052078) (xy 138.363529 99.152403) (xy 138.136472 99.283495) (xy 138.023633 99.370079)\r\n\t\t\t\t(xy 138.887706 100.234152) (xy 138.871058 100.241049) (xy 138.74003 100.328599) (xy 138.628599 100.44003)\r\n\t\t\t\t(xy 138.541049 100.571058) (xy 138.534152 100.587706) (xy 137.670079 99.723633) (xy 137.583495 99.836472)\r\n\t\t\t\t(xy 137.452403 100.063529) (xy 137.352078 100.305737) (xy 137.352075 100.305744) (xy 137.28422 100.558984)\r\n\t\t\t\t(xy 137.28422 100.558989) (xy 137.25 100.818912) (xy 137.25 101.081087) (xy 137.28422 101.34101)\r\n\t\t\t\t(xy 137.28422 101.341015) (xy 137.352075 101.594255) (xy 137.352078 101.594262) (xy 137.452403 101.83647)\r\n\t\t\t\t(xy 137.583492 102.063522) (xy 137.670079 102.176364) (xy 138.534152 101.312291) (xy 138.541049 101.328942)\r\n\t\t\t\t(xy 138.628599 101.45997) (xy 138.74003 101.571401) (xy 138.871058 101.658951) (xy 138.887705 101.665846)\r\n\t\t\t\t(xy 138.023633 102.529919) (xy 138.136477 102.616507) (xy 138.363529 102.747596) (xy 138.605737 102.847921)\r\n\t\t\t\t(xy 138.605744 102.847924) (xy 138.858986 102.915779) (xy 139.118912 102.949999) (xy 139.118914 102.95)\r\n\t\t\t\t(xy 139.381086 102.95) (xy 139.381087 102.949999) (xy 139.64101 102.915779) (xy 139.641015 102.915779)\r\n\t\t\t\t(xy 139.894255 102.847924) (xy 139.894262 102.847921) (xy 140.13647 102.747596) (xy 140.363532 102.616501)\r\n\t\t\t\t(xy 140.476365 102.529919) (xy 140.476365 102.529918) (xy 139.612293 101.665846) (xy 139.628942 101.658951)\r\n\t\t\t\t(xy 139.75997 101.571401) (xy 139.871401 101.45997) (xy 139.958951 101.328942) (xy 139.965847 101.312293)\r\n\t\t\t\t(xy 140.829918 102.176365) (xy 140.829919 102.176365) (xy 140.916501 102.063532) (xy 141.047596 101.83647)\r\n\t\t\t\t(xy 141.147921 101.594262) (xy 141.147924 101.594255) (xy 141.215779 101.341015) (xy 141.215779 101.34101)\r\n\t\t\t\t(xy 141.249999 101.081087) (xy 141.25 101.081086) (xy 141.25 100.818914) (xy 141.249999 100.818912)\r\n\t\t\t\t(xy 141.227119 100.645118) (xy 141.238269 100.584958) (xy 141.282651 100.54284) (xy 141.343313 100.534854)\r\n\t\t\t\t(xy 141.374772 100.54646) (xy 141.468706 100.600693) (xy 141.468711 100.600696) (xy 141.598981 100.654655)\r\n\t\t\t\t(xy 141.695847 100.694778) (xy 141.933323 100.758409) (xy 142.177073 100.7905) (xy 142.177074 100.7905)\r\n\t\t\t\t(xy 142.422926 100.7905) (xy 142.422927 100.7905) (xy 142.666677 100.758409) (xy 142.904153 100.694778)\r\n\t\t\t\t(xy 143.131292 100.600694) (xy 143.344208 100.477767) (xy 143.539256 100.328101) (xy 143.656773 100.210583)\r\n\t\t\t\t(xy 143.711288 100.182807) (xy 143.77172 100.192378) (xy 143.814984 100.235643) (xy 143.823872 100.261272)\r\n\t\t\t\t(xy 143.829868 100.291412) (xy 143.829869 100.291417) (xy 143.829869 100.291418) (xy 143.82987 100.29142)\r\n\t\t\t\t(xy 143.835803 100.305744) (xy 143.909058 100.482597) (xy 144.02402 100.654651) (xy 144.024023 100.654655)\r\n\t\t\t\t(xy 144.170345 100.800977) (xy 144.342402 100.915941) (xy 144.53358 100.99513) (xy 144.736535 101.0355)\r\n\t\t\t\t(xy 144.736536 101.0355) (xy 144.943464 101.0355) (xy 144.943465 101.0355) (xy 145.14642 100.99513)\r\n\t\t\t\t(xy 145.337598 100.915941) (xy 145.509655 100.800977) (xy 145.655977 100.654655) (xy 145.770941 100.482598)\r\n\t\t\t\t(xy 145.770941 100.482596) (xy 145.772684 100.479989) (xy 145.820734 100.442109) (xy 145.881872 100.439707)\r\n\t\t\t\t(xy 145.932746 100.473699) (xy 145.937316 100.479989) (xy 146.04765 100.645118) (xy 146.054023 100.654655)\r\n\t\t\t\t(xy 146.200345 100.800977) (xy 146.372402 100.915941) (xy 146.56358 100.99513) (xy 146.766535 101.0355)\r\n\t\t\t\t(xy 146.766536 101.0355) (xy 146.973464 101.0355) (xy 146.973465 101.0355) (xy 147.17642 100.99513)\r\n\t\t\t\t(xy 147.367598 100.915941) (xy 147.539655 100.800977) (xy 147.685977 100.654655) (xy 147.800941 100.482598)\r\n\t\t\t\t(xy 147.88013 100.29142) (xy 147.9205 100.088465) (xy 147.9205 99.881535) (xy 147.88013 99.67858)\r\n\t\t\t\t(xy 147.803091 99.492594) (xy 147.798291 99.431599) (xy 147.82455 99.384708) (xy 148.161895 99.047364)\r\n\t\t\t\t(xy 148.161897 99.047364) (xy 148.232364 98.976897) (xy 148.249925 98.9345) (xy 148.270501 98.884827)\r\n\t\t\t\t(xy 148.270501 98.785172) (xy 148.2705 98.785169) (xy 148.2705 86.000013) (xy 148.270501 86.000004)\r\n\t\t\t\t(xy 148.270501 85.888827) (xy 148.243766 85.824283) (xy 148.241809 85.819561) (xy 148.232364 85.796757)\r\n\t\t\t\t(xy 148.161897 85.72629) (xy 148.161895 85.726289) (xy 145.423243 82.987636) (xy 145.423241 82.987635)\r\n\t\t\t\t(xy 145.42324 82.987634) (xy 145.331175 82.9495) (xy 145.331174 82.9495) (xy 142.827609 82.9495)\r\n\t\t\t\t(xy 142.769418 82.930593) (xy 142.757611 82.920509) (xy 142.676613 82.839511) (xy 142.67661 82.839509)\r\n\t\t\t\t(xy 142.676608 82.839507) (xy 142.573889 82.780202) (xy 142.57389 82.780202) (xy 142.560351 82.776574)\r\n\t\t\t\t(xy 142.459309 82.7495) (xy 142.340691 82.7495) (xy 142.270567 82.768289) (xy 142.226109 82.780202)\r\n\t\t\t\t(xy 142.123391 82.839507) (xy 142.039507 82.923391) (xy 141.980202 83.026109) (xy 141.980201 83.026114)\r\n\t\t\t\t(xy 141.9495 83.140691) (xy 141.9495 83.259309) (xy 141.976574 83.360351) (xy 141.980202 83.37389)\r\n\t\t\t\t(xy 142.039507 83.476608) (xy 142.039509 83.47661) (xy 142.039511 83.476613) (xy 142.123387 83.560489)\r\n\t\t\t\t(xy 142.123389 83.56049) (xy 142.123391 83.560492) (xy 142.22611 83.619797) (xy 142.226111 83.619797)\r\n\t\t\t\t(xy 142.226114 83.619799) (xy 142.340691 83.6505) (xy 142.340693 83.6505) (xy 142.459307 83.6505)\r\n\t\t\t\t(xy 142.459309 83.6505) (xy 142.573886 83.619799) (xy 142.573888 83.619797) (xy 142.57389 83.619797)\r\n\t\t\t\t(xy 142.676608 83.560492) (xy 142.676608 83.560491) (xy 142.676613 83.560489) (xy 142.757607 83.479494)\r\n\t\t\t\t(xy 142.812122 83.451719) (xy 142.827609 83.4505) (xy 145.136577 83.4505) (xy 145.194768 83.469407)\r\n\t\t\t\t(xy 145.206581 83.479496) (xy 146.922582 85.195496) (xy 146.950359 85.250013) (xy 146.940788 85.310445)\r\n\t\t\t\t(xy 146.897523 85.35371) (xy 146.852578 85.3645) (xy 146.766532 85.3645) (xy 146.563581 85.404869)\r\n\t\t\t\t(xy 146.372402 85.484058) (xy 146.200348 85.59902) (xy 146.05402 85.745348) (xy 145.937316 85.92001)\r\n\t\t\t\t(xy 145.889266 85.95789) (xy 145.828128 85.960292) (xy 145.777254 85.926299) (xy 145.772684 85.92001)\r\n\t\t\t\t(xy 145.655979 85.745348) (xy 145.655977 85.745345) (xy 145.509655 85.599023) (xy 145.482812 85.581087)\r\n\t\t\t\t(xy 145.337597 85.484058) (xy 145.146418 85.404869) (xy 144.943467 85.3645) (xy 144.943465 85.3645)\r\n\t\t\t\t(xy 144.736535 85.3645) (xy 144.736532 85.3645) (xy 144.533581 85.404869' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b') (xy 144.342402 85.484058)\r\n\t\t\t\t(xy 144.170348 85.59902) (xy 144.02402 85.745348) (xy 143.909058 85.917402) (xy 143.829869 86.108582)\r\n\t\t\t\t(xy 143.829868 86.108585) (xy 143.823872 86.138728) (xy 143.793974 86.192111) (xy 143.738409 86.217725)\r\n\t\t\t\t(xy 143.678399 86.205787) (xy 143.656775 86.189418) (xy 143.539256 86.071899) (xy 143.539251 86.071895)\r\n\t\t\t\t(xy 143.539249 86.071893) (xy 143.344211 85.922235) (xy 143.344208 85.922233) (xy 143.131292 85.799306)\r\n\t\t\t\t(xy 143.131288 85.799304) (xy 143.131284 85.799302) (xy 142.904154 85.705222) (xy 142.79944 85.677164)\r\n\t\t\t\t(xy 142.666677 85.641591) (xy 142.666674 85.64159) (xy 142.666672 85.64159) (xy 142.422927 85.6095)\r\n\t\t\t\t(xy 142.177073 85.6095) (xy 142.177072 85.6095) (xy 141.93333 85.64159) (xy 141.933325 85.64159)\r\n\t\t\t\t(xy 141.695845 85.705222) (xy 141.468715 85.799302) (xy 141.468708 85.799305) (xy 141.468708 85.799306)\r\n\t\t\t\t(xy 141.396475 85.84101) (xy 141.374772 85.85354) (xy 141.314923 85.866261) (xy 141.259028 85.841374)\r\n\t\t\t\t(xy 141.228435 85.788386) (xy 141.227119 85.754881) (xy 141.249999 85.581087) (xy 141.25 85.581086)\r\n\t\t\t\t(xy 141.25 85.318914) (xy 141.249999 85.318912) (xy 141.215779 85.058989) (xy 141.215779 85.058984)\r\n\t\t\t\t(xy 141.147924 84.805744) (xy 141.147921 84.805737) (xy 141.047596 84.563529) (xy 140.916507 84.336477)\r\n\t\t\t\t(xy 140.829918 84.223633) (xy 139.965846 85.087705) (xy 139.958951 85.071058) (xy 139.871401 84.94003)\r\n\t\t\t\t(xy 139.75997 84.828599) (xy 139.628942 84.741049) (xy 139.612291 84.734152) (xy 140.476365 83.870079)\r\n\t\t\t\t(xy 140.363522 83.783492) (xy 140.13647 83.652403) (xy 139.894262 83.552078) (xy 139.894255 83.552075)\r\n\t\t\t\t(xy 139.641013 83.48422) (xy 139.381087 83.45) (xy 139.118912 83.45) (xy 138.858989 83.48422) (xy 138.858984 83.48422)\r\n\t\t\t\t(xy 138.605744 83.552075) (xy 138.605737 83.552078) (xy 138.363529 83.652403) (xy 138.136472 83.783495)\r\n\t\t\t\t(xy 138.023633 83.870079) (xy 138.887706 84.734152) (xy 138.871058 84.741049) (xy 138.74003 84.828599)\r\n\t\t\t\t(xy 138.628599 84.94003) (xy 138.541049 85.071058) (xy 138.534152 85.087706) (xy 137.670079 84.223633)\r\n\t\t\t\t(xy 137.583495 84.336472) (xy 137.452403 84.563529) (xy 137.352078 84.805737) (xy 137.352075 84.805744)\r\n\t\t\t\t(xy 137.28422 85.058984) (xy 137.28422 85.058989) (xy 137.25 85.318912) (xy 129.7505 85.318912)\r\n\t\t\t\t(xy 129.7505 78.140691) (xy 138.3495 78.140691) (xy 138.3495 78.259309) (xy 138.36667 78.323387)\r\n\t\t\t\t(xy 138.380202 78.37389) (xy 138.439507 78.476608) (xy 138.439509 78.47661) (xy 138.439511 78.476613)\r\n\t\t\t\t(xy 138.523387 78.560489) (xy 138.523389 78.56049) (xy 138.523391 78.560492) (xy 138.62611 78.619797)\r\n\t\t\t\t(xy 138.626111 78.619797) (xy 138.626114 78.619799) (xy 138.740691 78.6505) (xy 138.740693 78.6505)\r\n\t\t\t\t(xy 138.859307 78.6505) (xy 138.859309 78.6505) (xy 138.973886 78.619799) (xy 138.973888 78.619797)\r\n\t\t\t\t(xy 138.97389 78.619797) (xy 139.076608 78.560492) (xy 139.076608 78.560491) (xy 139.076613 78.560489)\r\n\t\t\t\t(xy 139.160489 78.476613) (xy 139.162061 78.47389) (xy 139.219797 78.37389) (xy 139.219797 78.373888)\r\n\t\t\t\t(xy 139.219799 78.373886) (xy 139.2505 78.259309) (xy 139.2505 78.140691) (xy 139.219799 78.026114)\r\n\t\t\t\t(xy 139.219797 78.026111) (xy 139.219797 78.026109) (xy 139.160492 77.923391) (xy 139.16049 77.923389)\r\n\t\t\t\t(xy 139.160489 77.923387) (xy 139.076613 77.839511) (xy 139.07661 77.839509) (xy 139.076608 77.839507)\r\n\t\t\t\t(xy 138.973889 77.780202) (xy 138.97389 77.780202) (xy 138.960351 77.776574) (xy 138.859309 77.7495)\r\n\t\t\t\t(xy 138.740691 77.7495) (xy 138.704084 77.759309) (xy 138.626109 77.780202) (xy 138.523391 77.839507)\r\n\t\t\t\t(xy 138.439507 77.923391) (xy 138.380202 78.026109) (xy 138.37099 78.060489) (xy 138.3495 78.140691)\r\n\t\t\t\t(xy 129.7505 78.140691) (xy 129.7505 77.144767) (xy 129.769407 77.086576) (xy 129.77949 77.074769)\r\n\t\t\t\t(xy 130.641895 76.212364) (xy 130.641897 76.212364) (xy 130.712364 76.141897) (xy 130.740816 76.073207)\r\n\t\t\t\t(xy 130.750501 76.049827) (xy 130.750501 75.950172) (xy 130.7505 75.950169) (xy 130.7505 75.940691)\r\n\t\t\t\t(xy 138.412 75.940691) (xy 138.412 76.059309) (xy 138.433806 76.140691) (xy 138.442702 76.17389)\r\n\t\t\t\t(xy 138.502007 76.276608) (xy 138.502009 76.27661) (xy 138.502011 76.276613) (xy 138.585887 76.360489)\r\n\t\t\t\t(xy 138.585889 76.36049) (xy 138.585891 76.360492) (xy 138.68861 76.419797) (xy 138.688611 76.419797)\r\n\t\t\t\t(xy 138.688614 76.419799) (xy 138.803191 76.4505) (xy 138.803193 76.4505) (xy 138.921807 76.4505)\r\n\t\t\t\t(xy 138.921809 76.4505) (xy 139.036386 76.419799) (xy 139.036388 76.419797) (xy 139.03639 76.419797)\r\n\t\t\t\t(xy 139.139108 76.360492) (xy 139.139108 76.360491) (xy 139.139113 76.360489) (xy 139.222989 76.276613)\r\n\t\t\t\t(xy 139.282299 76.173886) (xy 139.288632 76.150247) (xy 139.291193 76.140691) (xy 140.1495 76.140691)\r\n\t\t\t\t(xy 140.1495 76.259309) (xy 140.16304 76.309841) (xy 140.180202 76.37389) (xy 140.239507 76.476608)\r\n\t\t\t\t(xy 140.239509 76.47661) (xy 140.239511 76.476613) (xy 140.323387 76.560489) (xy 140.323389 76.56049)\r\n\t\t\t\t(xy 140.323391 76.560492) (xy 140.42611 76.619797) (xy 140.426111 76.619797) (xy 140.426114 76.619799)\r\n\t\t\t\t(xy 140.540691 76.6505) (xy 140.540693 76.6505) (xy 140.659308 76.6505) (xy 140.659309 76.6505)\r\n\t\t\t\t(xy 140.773113 76.620006) (xy 140.834213 76.623207) (xy 140.881763 76.661712) (xy 140.884471 76.666132)\r\n\t\t\t\t(xy 140.935867 76.755152) (xy 140.935869 76.755154) (xy 140.935871 76.755157) (xy 141.019747 76.839033)\r\n\t\t\t\t(xy 141.019749 76.839034) (xy 141.019751 76.839036) (xy 141.12247 76.898341) (xy 141.122471 76.898341)\r\n\t\t\t\t(xy 141.122474 76.898343) (xy 141.237051 76.929044) (xy 141.237053 76.929044) (xy 141.355667 76.929044)\r\n\t\t\t\t(xy 141.355669 76.929044) (xy 141.470246 76.898343) (xy 141.470248 76.898341) (xy 141.47025 76.898341)\r\n\t\t\t\t(xy 141.572968 76.839036) (xy 141.572968 76.839035) (xy 141.572973 76.839033) (xy 141.656849 76.755157)\r\n\t\t\t\t(xy 141.656852 76.755152) (xy 141.716157 76.652434) (xy 141.716157 76.652432) (xy 141.716159 76.65243)\r\n\t\t\t\t(xy 141.74686 76.537853) (xy 141.74686 76.419235) (xy 141.716159 76.304658) (xy 141.716157 76.304655)\r\n\t\t\t\t(xy 141.716157 76.304653) (xy 141.656852 76.201935) (xy 141.65685 76.201933) (xy 141.656849 76.201931)\r\n\t\t\t\t(xy 141.572973 76.118055) (xy 141.57297 76.118053) (xy 141.572968 76.118051) (xy 141.470249 76.058746)\r\n\t\t\t\t(xy 141.47025 76.058746) (xy 141.456711 76.055118) (xy 141.355669 76.028044) (xy 141.237051 76.028044)\r\n\t\t\t\t(xy 141.123247 76.058538) (xy 141.062145 76.055335) (xy 141.014596 76.01683) (xy 141.011888 76.012411)\r\n\t\t\t\t(xy 140.960492 75.923391) (xy 140.96049 75.923389) (xy 140.960489 75.923387) (xy 140.876613 75.839511)\r\n\t\t\t\t(xy 140.87661 75.839509) (xy 140.876608 75.839507) (xy 140.773889 75.780202) (xy 140.77389 75.780202)\r\n\t\t\t\t(xy 140.760351 75.776574) (xy 140.659309 75.7495) (xy 140.540691 75.7495) (xy 140.499669 75.760492)\r\n\t\t\t\t(xy 140.426109 75.780202) (xy 140.323391 75.839507) (xy 140.239507 75.923391) (xy 140.180202 76.026109)\r\n\t\t\t\t(xy 140.180201 76.026114) (xy 140.1495 76.140691) (xy 139.291193 76.140691) (xy 139.299798 76.108581)\r\n\t\t\t\t(xy 139.299798 76.108579) (xy 139.313 76.059309) (xy 139.313 75.940691) (xy 139.282299 75.826114)\r\n\t\t\t\t(xy 139.282297 75.826111) (xy 139.282297 75.826109) (xy 139.222992 75.723391) (xy 139.22299 75.723389)\r\n\t\t\t\t(xy 139.222989 75.723387) (xy 139.139113 75.639511) (xy 139.13911 75.639509) (xy 139.139108 75.639507)\r\n\t\t\t\t(xy 139.036389 75.580202) (xy 139.03639 75.580202) (xy 139.012818 75.573886) (xy 138.921809 75.5495)\r\n\t\t\t\t(xy 138.803191 75.5495) (xy 138.733067 75.568289) (xy 138.688609 75.580202) (xy 138.585891 75.639507)\r\n\t\t\t\t(xy 138.502007 75.723391) (xy 138.442702 75.826109) (xy 138.436167 75.8505) (xy 138.412 75.940691)\r\n\t\t\t\t(xy 130.7505 75.940691) (xy 130.7505 75.704429) (xy 130.769407 75.646238) (xy 130.818907 75.610274)\r\n\t\t\t\t(xy 130.880093 75.610274) (xy 130.919504 75.634425) (xy 130.962218 75.677139) (xy 131.126086 75.786632)\r\n\t\t\t\t(xy 131.308165 75.862051) (xy 131.501459 75.9005) (xy 131.50146 75.9005) (xy 131.69854 75.9005)\r\n\t\t\t\t(xy 131.698541 75.9005) (xy 131.891835 75.862051) (xy 132.073914 75.786632) (xy 132.237782 75.677139)\r\n\t\t\t\t(xy 132.377139 75.537782) (xy 132.486632 75.373914) (xy 132.541814 75.240691) (xy 141.6495 75.240691)\r\n\t\t\t\t(xy 141.6495 75.359309) (xy 14' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'1.66667 75.423387) (xy 141.680202 75.47389) (xy 141.739507 75.576608)\r\n\t\t\t\t(xy 141.739509 75.57661) (xy 141.739511 75.576613) (xy 141.823387 75.660489) (xy 141.823389 75.66049)\r\n\t\t\t\t(xy 141.823391 75.660492) (xy 141.92611 75.719797) (xy 141.926111 75.719797) (xy 141.926114 75.719799)\r\n\t\t\t\t(xy 142.040691 75.7505) (xy 142.040693 75.7505) (xy 142.159307 75.7505) (xy 142.159309 75.7505)\r\n\t\t\t\t(xy 142.273886 75.719799) (xy 142.273888 75.719797) (xy 142.27389 75.719797) (xy 142.376608 75.660492)\r\n\t\t\t\t(xy 142.376608 75.660491) (xy 142.376613 75.660489) (xy 142.460489 75.576613) (xy 142.462061 75.57389)\r\n\t\t\t\t(xy 142.519797 75.47389) (xy 142.519797 75.473888) (xy 142.519799 75.473886) (xy 142.5505 75.359309)\r\n\t\t\t\t(xy 142.5505 75.240691) (xy 142.519799 75.126114) (xy 142.519797 75.126111) (xy 142.519797 75.126109)\r\n\t\t\t\t(xy 142.460492 75.023391) (xy 142.46049 75.023389) (xy 142.460489 75.023387) (xy 142.376613 74.939511)\r\n\t\t\t\t(xy 142.37661 74.939509) (xy 142.376608 74.939507) (xy 142.273889 74.880202) (xy 142.27389 74.880202)\r\n\t\t\t\t(xy 142.260351 74.876574) (xy 142.159309 74.8495) (xy 142.040691 74.8495) (xy 141.999669 74.860492)\r\n\t\t\t\t(xy 141.926109 74.880202) (xy 141.823391 74.939507) (xy 141.739507 75.023391) (xy 141.680202 75.126109)\r\n\t\t\t\t(xy 141.670661 75.161717) (xy 141.6495 75.240691) (xy 132.541814 75.240691) (xy 132.562051 75.191835)\r\n\t\t\t\t(xy 132.6005 74.998541) (xy 132.6005 74.551459) (xy 132.562051 74.358165) (xy 132.486632 74.176086)\r\n\t\t\t\t(xy 132.377139 74.012218) (xy 132.237782 73.872861) (xy 132.073914 73.763368) (xy 132.073915 73.763368)\r\n\t\t\t\t(xy 132.073913 73.763367) (xy 131.891835 73.687949) (xy 131.698543 73.6495) (xy 131.698541 73.6495)\r\n\t\t\t\t(xy 131.501459 73.6495) (xy 131.501456 73.6495) (xy 131.308165 73.687949) (xy 131.308163 73.687949)\r\n\t\t\t\t(xy 131.126086 73.763367) (xy 130.962218 73.872861) (xy 130.962214 73.872864) (xy 130.919504 73.915575)\r\n\t\t\t\t(xy 130.864987 73.943352) (xy 130.804555 73.933781) (xy 130.76129 73.890516) (xy 130.7505 73.845571)\r\n\t\t\t\t(xy 130.7505 70.840691) (xy 137.9495 70.840691) (xy 137.9495 70.959309) (xy 137.959393 70.99623)\r\n\t\t\t\t(xy 137.980202 71.07389) (xy 138.039507 71.176608) (xy 138.039509 71.17661) (xy 138.039511 71.176613)\r\n\t\t\t\t(xy 138.123387 71.260489) (xy 138.123389 71.26049) (xy 138.123391 71.260492) (xy 138.22611 71.319797)\r\n\t\t\t\t(xy 138.226111 71.319797) (xy 138.226114 71.319799) (xy 138.340691 71.3505) (xy 138.340693 71.3505)\r\n\t\t\t\t(xy 138.459307 71.3505) (xy 138.459309 71.3505) (xy 138.573886 71.319799) (xy 138.573888 71.319797)\r\n\t\t\t\t(xy 138.57389 71.319797) (xy 138.676608 71.260492) (xy 138.676608 71.260491) (xy 138.676613 71.260489)\r\n\t\t\t\t(xy 138.760489 71.176613) (xy 138.819799 71.073886) (xy 138.8505 70.959309) (xy 138.8505 70.840691)\r\n\t\t\t\t(xy 138.819799 70.726114) (xy 138.819797 70.726111) (xy 138.819797 70.726109) (xy 138.760492 70.623391)\r\n\t\t\t\t(xy 138.76049 70.623389) (xy 138.760489 70.623387) (xy 138.676613 70.539511) (xy 138.67661 70.539509)\r\n\t\t\t\t(xy 138.676608 70.539507) (xy 138.573889 70.480202) (xy 138.57389 70.480202) (xy 138.550318 70.473886)\r\n\t\t\t\t(xy 138.459309 70.4495) (xy 138.340691 70.4495) (xy 138.270567 70.468289) (xy 138.226109 70.480202)\r\n\t\t\t\t(xy 138.123391 70.539507) (xy 138.039507 70.623391) (xy 137.980202 70.726109) (xy 137.973667 70.7505)\r\n\t\t\t\t(xy 137.9495 70.840691) (xy 130.7505 70.840691) (xy 130.7505 70.744768) (xy 130.769407 70.686577)\r\n\t\t\t\t(xy 130.77949 70.67477) (xy 131.213568 70.240691) (xy 139.4495 70.240691) (xy 139.4495 70.359309)\r\n\t\t\t\t(xy 139.462073 70.406231) (xy 139.480202 70.47389) (xy 139.539507 70.576608) (xy 139.539509 70.57661)\r\n\t\t\t\t(xy 139.539511 70.576613) (xy 139.623387 70.660489) (xy 139.623389 70.66049) (xy 139.623391 70.660492)\r\n\t\t\t\t(xy 139.72611 70.719797) (xy 139.726111 70.719797) (xy 139.726114 70.719799) (xy 139.840691 70.7505)\r\n\t\t\t\t(xy 139.840693 70.7505) (xy 139.959307 70.7505) (xy 139.959309 70.7505) (xy 140.073886 70.719799)\r\n\t\t\t\t(xy 140.073888 70.719797) (xy 140.07389 70.719797) (xy 140.176608 70.660492) (xy 140.176608 70.660491)\r\n\t\t\t\t(xy 140.176613 70.660489) (xy 140.260489 70.576613) (xy 140.275755 70.550172) (xy 140.319797 70.47389)\r\n\t\t\t\t(xy 140.319797 70.473888) (xy 140.319799 70.473886) (xy 140.3505 70.359309) (xy 140.3505 70.240691)\r\n\t\t\t\t(xy 140.319799 70.126114) (xy 140.319797 70.126111) (xy 140.319797 70.126109) (xy 140.260492 70.023391)\r\n\t\t\t\t(xy 140.26049 70.023389) (xy 140.260489 70.023387) (xy 140.176613 69.939511) (xy 140.17661 69.939509)\r\n\t\t\t\t(xy 140.176608 69.939507) (xy 140.073889 69.880202) (xy 140.07389 69.880202) (xy 140.050318 69.873886)\r\n\t\t\t\t(xy 139.959309 69.8495) (xy 139.840691 69.8495) (xy 139.78467 69.864511) (xy 139.726109 69.880202)\r\n\t\t\t\t(xy 139.623391 69.939507) (xy 139.539507 70.023391) (xy 139.480202 70.126109) (xy 139.476862 70.138575)\r\n\t\t\t\t(xy 139.4495 70.240691) (xy 131.213568 70.240691) (xy 131.274764 70.179495) (xy 131.329281 70.151719)\r\n\t\t\t\t(xy 131.344768 70.1505) (xy 131.459307 70.1505) (xy 131.459309 70.1505) (xy 131.573886 70.119799)\r\n\t\t\t\t(xy 131.573888 70.119797) (xy 131.57389 70.119797) (xy 131.676608 70.060492) (xy 131.676608 70.060491)\r\n\t\t\t\t(xy 131.676613 70.060489) (xy 131.760489 69.976613) (xy 131.776784 69.94839) (xy 131.819797 69.87389)\r\n\t\t\t\t(xy 131.819797 69.873888) (xy 131.819799 69.873886) (xy 131.8505 69.759309) (xy 131.8505 69.640691)\r\n\t\t\t\t(xy 131.819799 69.526114) (xy 131.819797 69.526111) (xy 131.819797 69.526109) (xy 131.760492 69.423391)\r\n\t\t\t\t(xy 131.76049 69.423389) (xy 131.760489 69.423387) (xy 131.676613 69.339511) (xy 131.67661 69.339509)\r\n\t\t\t\t(xy 131.676608 69.339507) (xy 131.573889 69.280202) (xy 131.57389 69.280202) (xy 131.560351 69.276574)\r\n\t\t\t\t(xy 131.459309 69.2495) (xy 131.340691 69.2495) (xy 131.270567 69.268289) (xy 131.226109 69.280202)\r\n\t\t\t\t(xy 131.123391 69.339507) (xy 131.039507 69.423391) (xy 130.980202 69.526109) (xy 130.9495 69.640692)\r\n\t\t\t\t(xy 130.9495 69.75523) (xy 130.930593 69.813421) (xy 130.920504 69.825234) (xy 130.358103 70.387636)\r\n\t\t\t\t(xy 130.358102 70.387635) (xy 130.287635 70.458103) (xy 130.2495 70.550171) (xy 130.2495 74.313001)\r\n\t\t\t\t(xy 130.230593 74.371192) (xy 130.181093 74.407156) (xy 130.119907 74.407156) (xy 130.070407 74.371192)\r\n\t\t\t\t(xy 130.059036 74.350886) (xy 129.986632 74.176086) (xy 129.962193 74.139511) (xy 129.877139 74.012218)\r\n\t\t\t\t(xy 129.737782 73.872861) (xy 129.573914 73.763368) (xy 129.573915 73.763368) (xy 129.573913 73.763367)\r\n\t\t\t\t(xy 129.391835 73.687949) (xy 129.198543 73.6495) (xy 129.198541 73.6495) (xy 129.001459 73.6495)\r\n\t\t\t\t(xy 129.001456 73.6495) (xy 128.808165 73.687949) (xy 128.808163 73.687949) (xy 128.626086 73.763367)\r\n\t\t\t\t(xy 128.462218 73.872861) (xy 128.462214 73.872864) (xy 128.322864 74.012214) (xy 128.322861 74.012218)\r\n\t\t\t\t(xy 128.213367 74.176086) (xy 128.137949 74.358163) (xy 128.137949 74.358165) (xy 128.0995 74.551456)\r\n\t\t\t\t(xy 127.600499 74.551456) (xy 127.562051 74.358165) (xy 127.486632 74.176086) (xy 127.377139 74.012218)\r\n\t\t\t\t(xy 127.237782 73.872861) (xy 127.073914 73.763368) (xy 127.073915 73.763368) (xy 127.073913 73.763367)\r\n\t\t\t\t(xy 126.891835 73.687949) (xy 126.698543 73.6495) (xy 126.698541 73.6495) (xy 126.501459 73.6495)\r\n\t\t\t\t(xy 126.501456 73.6495) (xy 126.308165 73.687949) (xy 126.308163 73.687949) (xy 126.126086 73.763367)\r\n\t\t\t\t(xy 125.962218 73.872861) (xy 125.962214 73.872864) (xy 125.822864 74.012214) (xy 125.822861 74.012218)\r\n\t\t\t\t(xy 125.713367 74.176086) (xy 125.637949 74.358163) (xy 125.637949 74.358165) (xy 125.5995 74.551456)\r\n\t\t\t\t(xy 125.100499 74.551456) (xy 125.062051 74.358165) (xy 124.986632 74.176086) (xy 124.877139 74.012218)\r\n\t\t\t\t(xy 124.737782 73.872861) (xy 124.573914 73.763368) (xy 124.573915 73.763368) (xy 124.573913 73.763367)\r\n\t\t\t\t(xy 124.391835 73.687949) (xy 124.198543 73.6495) (xy 124.198541 73.6495) (xy 124.001459 73.6495)\r\n\t\t\t\t(xy 124.001456 73.6495) (xy 123.808165 73.687949) (xy 123.808163 73.687949) (xy 123.626086 73.763367)\r\n\t\t\t\t(xy 123.462218 73.872861) (xy 123.462214 73.872864) (xy 123.322864 74.012214) (xy 123.322861 74.012218)\r\n\t\t\t\t(xy 123.213367 74.176086) (xy 123.137949 74.358163) (xy 123.137949 74.358165) (xy 123.0995 74.551456)\r\n\t\t\t\t(xy 122.600499 74.551456) (xy 122.600499 74.018482) (xy 122.600499 74.018481) (xy 122.600499 74.018478)\r\n\t\t\t\t(xy 122' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'.600498 74.018476) (xy 122.585647 73.9247) (xy 122.585646 73.924698) (xy 122.585646 73.924696)\r\n\t\t\t\t(xy 122.52805 73.811658) (xy 122.438342 73.72195) (xy 122.325304 73.664354) (xy 122.325305 73.664354)\r\n\t\t\t\t(xy 122.231521 73.6495) (xy 120.968478 73.6495) (xy 120.968476 73.649501) (xy 120.8747 73.664352)\r\n\t\t\t\t(xy 120.874695 73.664354) (xy 120.761659 73.721949) (xy 120.671949 73.811659) (xy 120.614354 73.924695)\r\n\t\t\t\t(xy 120.5995 74.018478) (xy 114.910464 74.018478) (xy 114.9005 73.98484) (xy 114.9005 73.674768)\r\n\t\t\t\t(xy 114.919407 73.616577) (xy 114.929496 73.604764) (xy 117.693569 70.840691) (xy 120.477977 68.056282)\r\n\t\t\t\t(xy 120.532492 68.028507) (xy 120.585862 68.034823) (xy 120.748165 68.102051) (xy 120.941459 68.1405)\r\n\t\t\t\t(xy 120.94146 68.1405) (xy 121.13854 68.1405) (xy 121.138541 68.1405) (xy 121.331835 68.102051)\r\n\t\t\t\t(xy 121.513914 68.026632) (xy 121.677782 67.917139) (xy 121.817139 67.777782) (xy 121.926632 67.613914)\r\n\t\t\t\t(xy 122.002051 67.431835) (xy 122.0405 67.238541) (xy 122.0405 67.041459) (xy 122.002051 66.848165)\r\n\t\t\t\t(xy 121.926632 66.666086) (xy 121.817139 66.502218) (xy 121.677782 66.362861) (xy 121.513914 66.253368)\r\n\t\t\t\t(xy 121.513915 66.253368) (xy 121.513913 66.253367) (xy 121.331835 66.177949) (xy 121.171712 66.146098)\r\n\t\t\t\t(xy 121.118328 66.116201) (xy 121.092712 66.060636) (xy 121.104649 66.000626) (xy 121.149579 65.959094)\r\n\t\t\t\t(xy 121.191026 65.95) (xy 121.937824 65.95) (xy 121.99737 65.943598) (xy 121.997381 65.943596) (xy 122.132088 65.893353)\r\n\t\t\t\t(xy 122.13209 65.893352) (xy 122.247184 65.807192) (xy 122.247192 65.807184) (xy 122.333352 65.69209)\r\n\t\t\t\t(xy 122.333353 65.692088) (xy 122.383596 65.557381) (xy 122.383598 65.55737) (xy 122.39 65.497824)\r\n\t\t\t\t(xy 122.39 64.850001) (xy 122.389999 64.85) (xy 121.473012 64.85) (xy 121.505925 64.792993) (xy 121.54 64.665826)\r\n\t\t\t\t(xy 121.54 64.534174) (xy 121.505925 64.407007) (xy 121.473012 64.35) (xy 122.389999 64.35) (xy 122.39 64.349999)\r\n\t\t\t\t(xy 122.39 63.702175) (xy 122.383598 63.642629) (xy 122.383596 63.642618) (xy 122.333353 63.507911)\r\n\t\t\t\t(xy 122.333352 63.507909) (xy 122.247192 63.392815) (xy 122.247184 63.392807) (xy 122.13209 63.306647)\r\n\t\t\t\t(xy 122.132088 63.306646) (xy 121.997381 63.256403) (xy 121.99737 63.256401) (xy 121.937824 63.25)\r\n\t\t\t\t(xy 121.290001 63.25) (xy 121.29 63.250001) (xy 121.29 64.166988) (xy 121.232993 64.134075) (xy 121.105826 64.1)\r\n\t\t\t\t(xy 120.974174 64.1) (xy 120.847007 64.134075) (xy 120.79 64.166988) (xy 120.79 63.250001) (xy 120.789999 63.25)\r\n\t\t\t\t(xy 120.142176 63.25) (xy 120.082629 63.256401) (xy 120.082618 63.256403) (xy 119.947911 63.306646)\r\n\t\t\t\t(xy 119.947909 63.306647) (xy 119.832815 63.392807) (xy 119.832807 63.392815) (xy 119.746647 63.507909)\r\n\t\t\t\t(xy 119.746646 63.507911) (xy 119.696403 63.642618) (xy 119.696401 63.642629) (xy 119.69 63.702175)\r\n\t\t\t\t(xy 119.69 63.737065) (xy 119.671093 63.795256) (xy 119.624292 63.829259) (xy 118.982962 64.470589)\r\n\t\t\t\t(xy 118.965925 64.407007) (xy 118.900099 64.292993) (xy 118.807007 64.199901) (xy 118.692993 64.134075)\r\n\t\t\t\t(xy 118.629407 64.117037) (xy 119.261716 63.484729) (xy 119.261716 63.484728) (xy 119.207559 63.44538)\r\n\t\t\t\t(xy 119.207553 63.445376) (xy 119.018215 63.348904) (xy 118.816121 63.28324) (xy 118.60625 63.25)\r\n\t\t\t\t(xy 118.39375 63.25) (xy 118.183878 63.28324) (xy 117.981784 63.348904) (xy 117.792446 63.445376)\r\n\t\t\t\t(xy 117.792442 63.445378) (xy 117.738282 63.484728) (xy 118.370591 64.117037) (xy 118.307007 64.134075)\r\n\t\t\t\t(xy 118.192993 64.199901) (xy 118.099901 64.292993) (xy 118.034075 64.407007) (xy 118.017037 64.470591)\r\n\t\t\t\t(xy 117.384728 63.838282) (xy 117.345378 63.892442) (xy 117.345376 63.892446) (xy 117.31821 63.945764)\r\n\t\t\t\t(xy 117.274945 63.989029) (xy 117.214513 63.9986) (xy 117.159996 63.970822) (xy 117.14179 63.945764)\r\n\t\t\t\t(xy 117.114623 63.892446) (xy 117.114619 63.89244) (xy 117.07527 63.838282) (xy 117.075269 63.838282)\r\n\t\t\t\t(xy 116.442962 64.470589) (xy 116.425925 64.407007) (xy 116.360099 64.292993) (xy 116.267007 64.199901)\r\n\t\t\t\t(xy 116.152993 64.134075) (xy 116.089407 64.117037) (xy 116.721716 63.484729) (xy 116.721716 63.484728)\r\n\t\t\t\t(xy 116.667559 63.44538) (xy 116.667553 63.445376) (xy 116.478215 63.348904) (xy 116.276121 63.28324)\r\n\t\t\t\t(xy 116.06625 63.25) (xy 115.85375 63.25) (xy 115.643878 63.28324) (xy 115.441784 63.348904) (xy 115.252446 63.445376)\r\n\t\t\t\t(xy 115.252442 63.445378) (xy 115.198282 63.484728) (xy 115.830591 64.117037) (xy 115.767007 64.134075)\r\n\t\t\t\t(xy 115.652993 64.199901) (xy 115.559901 64.292993) (xy 115.494075 64.407007) (xy 115.477037 64.470591)\r\n\t\t\t\t(xy 114.844728 63.838282) (xy 114.805378 63.892442) (xy 114.805376 63.892446) (xy 114.77821 63.945764)\r\n\t\t\t\t(xy 114.734945 63.989029) (xy 114.674513 63.9986) (xy 114.619996 63.970822) (xy 114.60179 63.945764)\r\n\t\t\t\t(xy 114.574623 63.892446) (xy 114.574619 63.89244) (xy 114.53527 63.838282) (xy 114.535269 63.838282)\r\n\t\t\t\t(xy 113.902962 64.470589) (xy 113.885925 64.407007) (xy 113.820099 64.292993) (xy 113.727007 64.199901)\r\n\t\t\t\t(xy 113.612993 64.134075) (xy 113.549407 64.117037) (xy 114.181716 63.484729) (xy 114.181716 63.484728)\r\n\t\t\t\t(xy 114.127559 63.44538) (xy 114.127553 63.445376) (xy 113.938215 63.348904) (xy 113.736121 63.28324)\r\n\t\t\t\t(xy 113.52625 63.25) (xy 113.31375 63.25) (xy 113.103878 63.28324) (xy 112.901784 63.348904) (xy 112.712446 63.445376)\r\n\t\t\t\t(xy 112.712442 63.445378) (xy 112.658282 63.484728) (xy 113.290591 64.117037) (xy 113.227007 64.134075)\r\n\t\t\t\t(xy 113.112993 64.199901) (xy 113.019901 64.292993) (xy 112.954075 64.407007) (xy 112.937037 64.470591)\r\n\t\t\t\t(xy 112.304728 63.838282) (xy 112.265378 63.892442) (xy 112.265376 63.892446) (xy 112.168904 64.081784)\r\n\t\t\t\t(xy 112.10324 64.283878) (xy 112.07 64.493749) (xy 106.898012 64.493749) (xy 106.823936 64.419673)\r\n\t\t\t\t(xy 106.796159 64.365156) (xy 106.79494 64.349669) (xy 106.79494 64.249534) (xy 106.79494 64.249533)\r\n\t\t\t\t(xy 106.764239 64.134956) (xy 106.764237 64.134953) (xy 106.764237 64.134951) (xy 106.704932 64.032233)\r\n\t\t\t\t(xy 106.70493 64.032231) (xy 106.704929 64.032229) (xy 106.621053 63.948353) (xy 106.62105 63.948351)\r\n\t\t\t\t(xy 106.621048 63.948349) (xy 106.518329 63.889044) (xy 106.512332 63.88656) (xy 106.51348 63.883788)\r\n\t\t\t\t(xy 106.472534 63.857171) (xy 106.450632 63.80004) (xy 106.450499 63.794903) (xy 106.450499 62.9995)\r\n\t\t\t\t(xy 106.469406 62.941309) (xy 106.518906 62.905345) (xy 106.549499 62.9005) (xy 135.434521 62.9005)\r\n\t\t\t\t(xy 135.492712 62.919407) (xy 135.504525 62.929496) (xy 144.070504 71.495475) (xy 144.098281 71.549992)\r\n\t\t\t\t(xy 144.0995 71.565479) (xy 144.0995 72.32239) (xy 144.080593 72.380581) (xy 144.070505 72.392393)\r\n\t\t\t\t(xy 144.039507 72.423391) (xy 143.980202 72.526109) (xy 143.980201 72.526114) (xy 143.9495 72.640691)\r\n\t\t\t\t(xy 143.9495 72.759309) (xy 143.976574 72.860351) (xy 143.980202 72.87389) (xy 144.039507 72.976608)\r\n\t\t\t\t(xy 144.039509 72.97661) (xy 144.039511 72.976613) (xy 144.123387 73.060489) (xy 144.123389 73.06049)\r\n\t\t\t\t(xy 144.123391 73.060492) (xy 144.22611 73.119797) (xy 144.226111 73.119797) (xy 144.226114 73.119799)\r\n\t\t\t\t(xy 144.340691 73.1505) (xy 144.340693 73.1505) (xy 144.459307 73.1505) (xy 144.459309 73.1505)\r\n\t\t\t\t(xy 144.573886 73.119799) (xy 144.573888 73.119797) (xy 144.57389 73.119797) (xy 144.676608 73.060492)\r\n\t\t\t\t(xy 144.676608 73.060491) (xy 144.676613 73.060489) (xy 144.760489 72.976613) (xy 144.819799 72.873886)\r\n\t\t\t\t(xy 144.8505 72.759309) (xy 144.8505 72.640691) (xy 144.819799 72.526114) (xy 144.819797 72.526111)\r\n\t\t\t\t(xy 144.819797 72.526109) (xy 144.760492 72.423391) (xy 144.760491 72.42339) (xy 144.76049 72.423389)\r\n\t\t\t\t(xy 144.760489 72.423387) (xy 144.729495 72.392393) (xy 144.701719 72.337876) (xy 144.7005 72.32239)\r\n\t\t\t\t(xy 144.7005 71.360437) (xy 144.700499 71.360435) (xy 144.68961 71.319799) (xy 144.680021 71.284011)\r\n\t\t\t\t(xy 144.666442 71.260492) (xy 144.64046 71.215489) (xy 144.584511 71.159539) (xy 144.584511 71.15954)\r\n\t\t\t\t(xy 135.784511 62.35954) (xy 135.784508 62.359538) (xy 135.715992 62.31998) (xy 135.715988 62.319978)\r\n\t\t\t\t(xy 135.639564 62.2995) (xy 135.639562 62.2995) (xy 98.310439 62.2995) (xy 98.310436 62.2995) (xy 98.234012 62.319978)\r\n\t\t\t\t(xy 98.234008 62.31998) (xy 98.16549 62.359539) (xy 97.80954 62.715489' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b') (xy 97.769084 62.78556)\r\n\t\t\t\t(xy 97.745204 62.813356) (xy 97.741877 62.816018) (xy 97.726376 62.826376) (xy 97.723436 62.830774)\r\n\t\t\t\t(xy 97.711856 62.840042) (xy 97.688106 62.849001) (xy 97.665487 62.860526) (xy 97.6599 62.859641)\r\n\t\t\t\t(xy 97.654608 62.861638) (xy 97.630127 62.854925) (xy 97.605055 62.850955) (xy 97.598635 62.846291)\r\n\t\t\t\t(xy 97.5956 62.845459) (xy 97.592974 62.842178) (xy 97.579996 62.832749) (xy 97.573626 62.826379)\r\n\t\t\t\t(xy 97.573624 62.826376) (xy 97.57362 62.826373) (xy 97.482497 62.765486) (xy 97.482496 62.765485)\r\n\t\t\t\t(xy 97.482495 62.765485) (xy 97.402133 62.7495) (xy 97.402132 62.7495) (xy 97.09787 62.7495) (xy 97.097863 62.749501)\r\n\t\t\t\t(xy 97.017505 62.765484) (xy 97.017503 62.765485) (xy 96.926379 62.826373) (xy 96.920004 62.832749)\r\n\t\t\t\t(xy 96.865487 62.860526) (xy 96.805055 62.850955) (xy 96.779996 62.832749) (xy 96.773626 62.826379)\r\n\t\t\t\t(xy 96.773624 62.826376) (xy 96.77362 62.826373) (xy 96.682497 62.765486) (xy 96.682496 62.765485)\r\n\t\t\t\t(xy 96.682495 62.765485) (xy 96.602133 62.7495) (xy 96.602132 62.7495) (xy 96.29787 62.7495) (xy 96.297863 62.749501)\r\n\t\t\t\t(xy 96.217505 62.765484) (xy 96.217503 62.765485) (xy 96.126379 62.826373) (xy 96.120004 62.832749)\r\n\t\t\t\t(xy 96.065487 62.860526) (xy 96.005055 62.850955) (xy 95.979996 62.832749) (xy 95.973626 62.826379)\r\n\t\t\t\t(xy 95.973624 62.826376) (xy 95.97362 62.826373) (xy 95.882497 62.765486) (xy 95.882496 62.765485)\r\n\t\t\t\t(xy 95.882495 62.765485) (xy 95.802133 62.7495) (xy 95.802132 62.7495) (xy 95.49787 62.7495) (xy 95.497863 62.749501)\r\n\t\t\t\t(xy 95.417505 62.765484) (xy 95.417503 62.765485) (xy 95.326379 62.826373) (xy 95.320004 62.832749)\r\n\t\t\t\t(xy 95.265487 62.860526) (xy 95.205055 62.850955) (xy 95.179996 62.832749) (xy 95.173626 62.826379)\r\n\t\t\t\t(xy 95.173624 62.826376) (xy 95.17362 62.826373) (xy 95.082497 62.765486) (xy 95.082496 62.765485)\r\n\t\t\t\t(xy 95.082495 62.765485) (xy 95.002133 62.7495) (xy 95.002132 62.7495) (xy 94.69787 62.7495) (xy 94.697863 62.749501)\r\n\t\t\t\t(xy 94.617505 62.765484) (xy 94.617503 62.765485) (xy 94.526379 62.826373) (xy 94.520004 62.832749)\r\n\t\t\t\t(xy 94.465487 62.860526) (xy 94.405055 62.850955) (xy 94.379996 62.832749) (xy 94.373626 62.826379)\r\n\t\t\t\t(xy 94.373624 62.826376) (xy 94.37362 62.826373) (xy 94.282497 62.765486) (xy 94.282496 62.765485)\r\n\t\t\t\t(xy 94.282495 62.765485) (xy 94.202133 62.7495) (xy 94.202132 62.7495) (xy 93.89787 62.7495) (xy 93.897863 62.749501)\r\n\t\t\t\t(xy 93.817505 62.765484) (xy 93.817503 62.765485) (xy 93.726379 62.826373) (xy 93.720004 62.832749)\r\n\t\t\t\t(xy 93.665487 62.860526) (xy 93.605055 62.850955) (xy 93.579996 62.832749) (xy 93.573626 62.826379)\r\n\t\t\t\t(xy 93.573624 62.826376) (xy 93.57362 62.826373) (xy 93.482497 62.765486) (xy 93.482496 62.765485)\r\n\t\t\t\t(xy 93.482495 62.765485) (xy 93.402133 62.7495) (xy 93.402132 62.7495) (xy 93.09787 62.7495) (xy 93.097863 62.749501)\r\n\t\t\t\t(xy 93.017505 62.765484) (xy 93.017503 62.765485) (xy 92.926379 62.826373) (xy 92.920004 62.832749)\r\n\t\t\t\t(xy 92.865487 62.860526) (xy 92.805055 62.850955) (xy 92.779996 62.832749) (xy 92.773626 62.826379)\r\n\t\t\t\t(xy 92.773624 62.826376) (xy 92.77362 62.826373) (xy 92.682497 62.765486) (xy 92.682496 62.765485)\r\n\t\t\t\t(xy 92.682495 62.765485) (xy 92.602133 62.7495) (xy 92.602132 62.7495) (xy 92.29787 62.7495) (xy 92.297863 62.749501)\r\n\t\t\t\t(xy 92.217505 62.765484) (xy 92.217503 62.765485) (xy 92.126379 62.826373) (xy 92.126373 62.826379)\r\n\t\t\t\t(xy 92.065486 62.917501) (xy 92.065486 62.917503) (xy 92.065485 62.917505) (xy 92.055261 62.968907)\r\n\t\t\t\t(xy 92.0495 62.997867) (xy 79.509947 62.997867) (xy 80.978318 61.529496) (xy 81.032835 61.501719)\r\n\t\t\t\t(xy 81.048322 61.5005) (xy 145.951678 61.5005)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "In1.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 146.009869 61.519407) (xy 146.021682 61.529496) (xy 152.970504 68.478318) (xy 152.998281 68.532835)\r\n\t\t\t\t(xy 152.9995 68.548322) (xy 152.9995 133.451678) (xy 152.980593 133.509869) (xy 152.970504 133.521682)\r\n\t\t\t\t(xy 146.021682 140.470504) (xy 145.967165 140.498281) (xy 145.951678 140.4995) (xy 81.048322 140.4995)\r\n\t\t\t\t(xy 80.990131 140.480593) (xy 80.978318 140.470504) (xy 74.554571 134.046757) (xy 94.107035 134.046757)\r\n\t\t\t\t(xy 94.107035 134.165375) (xy 94.109316 134.173886) (xy 94.137737 134.279956) (xy 94.197042 134.382674)\r\n\t\t\t\t(xy 94.197044 134.382676) (xy 94.197046 134.382679) (xy 94.280922 134.466555) (xy 94.280924 134.466556)\r\n\t\t\t\t(xy 94.280926 134.466558) (xy 94.383645 134.525863) (xy 94.383646 134.525863) (xy 94.383649 134.525865)\r\n\t\t\t\t(xy 94.498226 134.556566) (xy 94.498228 134.556566) (xy 94.616842 134.556566) (xy 94.616844 134.556566)\r\n\t\t\t\t(xy 94.662867 134.544234) (xy 116.9145 134.544234) (xy 116.9145 134.695766) (xy 116.949086 134.824847)\r\n\t\t\t\t(xy 116.95372 134.842139) (xy 117.029481 134.97336) (xy 117.029483 134.973362) (xy 117.029485 134.973365)\r\n\t\t\t\t(xy 117.136635 135.080515) (xy 117.136637 135.080516) (xy 117.136639 135.080518) (xy 117.267861 135.156279)\r\n\t\t\t\t(xy 117.267859 135.156279) (xy 117.267863 135.15628) (xy 117.267865 135.156281) (xy 117.414234 135.1955)\r\n\t\t\t\t(xy 117.414236 135.1955) (xy 117.565764 135.1955) (xy 117.565766 135.1955) (xy 117.712135 135.156281)\r\n\t\t\t\t(xy 117.712137 135.156279) (xy 117.712139 135.156279) (xy 117.84336 135.080518) (xy 117.84336 135.080517)\r\n\t\t\t\t(xy 117.843365 135.080515) (xy 117.950515 134.973365) (xy 118.026281 134.842135) (xy 118.0655 134.695766)\r\n\t\t\t\t(xy 118.0655 134.544234) (xy 122.6945 134.544234) (xy 122.6945 134.695766) (xy 122.729086 134.824847)\r\n\t\t\t\t(xy 122.73372 134.842139) (xy 122.809481 134.97336) (xy 122.809483 134.973362) (xy 122.809485 134.973365)\r\n\t\t\t\t(xy 122.916635 135.080515) (xy 122.916637 135.080516) (xy 122.916639 135.080518) (xy 123.047861 135.156279)\r\n\t\t\t\t(xy 123.047859 135.156279) (xy 123.047863 135.15628) (xy 123.047865 135.156281) (xy 123.194234 135.1955)\r\n\t\t\t\t(xy 123.194236 135.1955) (xy 123.345764 135.1955) (xy 123.345766 135.1955) (xy 123.492135 135.156281)\r\n\t\t\t\t(xy 123.492137 135.156279) (xy 123.492139 135.156279) (xy 123.62336 135.080518) (xy 123.62336 135.080517)\r\n\t\t\t\t(xy 123.623365 135.080515) (xy 123.730515 134.973365) (xy 123.806281 134.842135) (xy 123.8455 134.695766)\r\n\t\t\t\t(xy 123.8455 134.544234) (xy 123.806281 134.397865) (xy 123.806279 134.397862) (xy 123.806279 134.39786)\r\n\t\t\t\t(xy 123.730518 134.266639) (xy 123.730516 134.266637) (xy 123.730515 134.266635) (xy 123.623365 134.159485)\r\n\t\t\t\t(xy 123.623362 134.159483) (xy 123.62336 134.159481) (xy 123.492138 134.08372) (xy 123.49214 134.08372)\r\n\t\t\t\t(xy 123.435347 134.068503) (xy 123.345766 134.0445) (xy 123.194234 134.0445) (xy 123.104652 134.068503)\r\n\t\t\t\t(xy 123.04786 134.08372) (xy 122.916639 134.159481) (xy 122.809481 134.266639) (xy 122.73372 134.39786)\r\n\t\t\t\t(xy 122.719616 134.4505) (xy 122.6945 134.544234) (xy 118.0655 134.544234) (xy 118.026281 134.397865)\r\n\t\t\t\t(xy 118.026279 134.397862) (xy 118.026279 134.39786) (xy 117.950518 134.266639) (xy 117.950516 134.266637)\r\n\t\t\t\t(xy 117.950515 134.266635) (xy 117.843365 134.159485) (xy 117.843362 134.159483) (xy 117.84336 134.159481)\r\n\t\t\t\t(xy 117.712138 134.08372) (xy 117.71214 134.08372) (xy 117.655347 134.068503) (xy 117.565766 134.0445)\r\n\t\t\t\t(xy 117.414234 134.0445) (xy 117.324652 134.068503) (xy 117.26786 134.08372) (xy 117.136639 134.159481)\r\n\t\t\t\t(xy 117.029481 134.266639) (xy 116.95372 134.39786) (xy 116.939616 134.4505) (xy 116.9145 134.544234)\r\n\t\t\t\t(xy 94.662867 134.544234) (xy 94.731421 134.525865) (xy 94.731423 134.525863) (xy 94.731425 134.525863)\r\n\t\t\t\t(xy 94.834143 134.466558) (xy 94.834143 134.466557) (xy 94.834148 134.466555) (xy 94.916943 134.383759)\r\n\t\t\t\t(xy 94.971457 134.355983) (xy 95.03189 134.365554) (xy 95.036426 134.368017) (xy 95.126114 134.419799)\r\n\t\t\t\t(xy 95.240691 134.4505) (xy 95.240693 134.4505) (xy 95.359307 134.4505) (xy 95.359309 134.4505)\r\n\t\t\t\t(xy 95.473886 134.419799) (xy 95.473888 134.419797) (xy 95.47389 134.419797) (xy 95.576608 134.360492)\r\n\t\t\t\t(xy 95.576608 134.360491) (xy 95.576613 134.360489) (xy 95.605 134.332101) (xy 95.659513 134.304326)\r\n\t\t\t\t(xy 95.719945 134.313897) (xy 95.745001 134.3321) (xy 95.77339 134.360489) (xy 95.773392 134.36049)\r\n\t\t\t\t(xy 95.773394 134.360492) (xy 95.876113 134.419797) (xy 95.876114 134.419797) (xy 95.876117 134.419799)\r\n\t\t\t\t' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'(xy 95.990694 134.4505) (xy 95.990696 134.4505) (xy 96.10931 134.4505) (xy 96.109312 134.4505) (xy 96.223889 134.419799)\r\n\t\t\t\t(xy 96.223891 134.419797) (xy 96.223893 134.419797) (xy 96.326611 134.360492) (xy 96.326611 134.360491)\r\n\t\t\t\t(xy 96.326616 134.360489) (xy 96.410492 134.276613) (xy 96.469802 134.173886) (xy 96.500503 134.059309)\r\n\t\t\t\t(xy 96.500503 133.940691) (xy 96.469802 133.826114) (xy 96.4698 133.826111) (xy 96.4698 133.826109)\r\n\t\t\t\t(xy 96.410495 133.723391) (xy 96.410493 133.723389) (xy 96.410492 133.723387) (xy 96.326616 133.639511)\r\n\t\t\t\t(xy 96.326613 133.639509) (xy 96.326611 133.639507) (xy 96.223892 133.580202) (xy 96.223893 133.580202)\r\n\t\t\t\t(xy 96.210354 133.576574) (xy 96.109312 133.5495) (xy 95.990694 133.5495) (xy 95.92057 133.568289)\r\n\t\t\t\t(xy 95.876112 133.580202) (xy 95.773394 133.639507) (xy 95.745004 133.667897) (xy 95.690487 133.695673)\r\n\t\t\t\t(xy 95.630055 133.686101) (xy 95.605 133.667898) (xy 95.576613 133.639511) (xy 95.57661 133.639509)\r\n\t\t\t\t(xy 95.576608 133.639507) (xy 95.473889 133.580202) (xy 95.47389 133.580202) (xy 95.460351 133.576574)\r\n\t\t\t\t(xy 95.359309 133.5495) (xy 95.240691 133.5495) (xy 95.170567 133.568289) (xy 95.126109 133.580202)\r\n\t\t\t\t(xy 95.023391 133.639507) (xy 95.023386 133.639511) (xy 94.940592 133.722305) (xy 94.886075 133.750082)\r\n\t\t\t\t(xy 94.825643 133.74051) (xy 94.821088 133.738037) (xy 94.731423 133.686268) (xy 94.731422 133.686267)\r\n\t\t\t\t(xy 94.731421 133.686267) (xy 94.616844 133.655566) (xy 94.498226 133.655566) (xy 94.428102 133.674355)\r\n\t\t\t\t(xy 94.383644 133.686268) (xy 94.280926 133.745573) (xy 94.197042 133.829457) (xy 94.137737 133.932175)\r\n\t\t\t\t(xy 94.137736 133.93218) (xy 94.107035 134.046757) (xy 74.554571 134.046757) (xy 74.029496 133.521682)\r\n\t\t\t\t(xy 74.001719 133.467165) (xy 74.0005 133.451678) (xy 74.0005 132.640691) (xy 92.6495 132.640691)\r\n\t\t\t\t(xy 92.6495 132.759309) (xy 92.676574 132.860351) (xy 92.680202 132.87389) (xy 92.739507 132.976608)\r\n\t\t\t\t(xy 92.739509 132.97661) (xy 92.739511 132.976613) (xy 92.823387 133.060489) (xy 92.823389 133.06049)\r\n\t\t\t\t(xy 92.823391 133.060492) (xy 92.92611 133.119797) (xy 92.926111 133.119797) (xy 92.926114 133.119799)\r\n\t\t\t\t(xy 93.040691 133.1505) (xy 93.040693 133.1505) (xy 93.159307 133.1505) (xy 93.159309 133.1505)\r\n\t\t\t\t(xy 93.273886 133.119799) (xy 93.273888 133.119797) (xy 93.27389 133.119797) (xy 93.376608 133.060492)\r\n\t\t\t\t(xy 93.376608 133.060491) (xy 93.376613 133.060489) (xy 93.460489 132.976613) (xy 93.519799 132.873886)\r\n\t\t\t\t(xy 93.5505 132.759309) (xy 93.5505 132.640691) (xy 93.519799 132.526114) (xy 93.519797 132.526111)\r\n\t\t\t\t(xy 93.519797 132.526109) (xy 93.460492 132.423391) (xy 93.46049 132.423389) (xy 93.460489 132.423387)\r\n\t\t\t\t(xy 93.376613 132.339511) (xy 93.37661 132.339509) (xy 93.376608 132.339507) (xy 93.273889 132.280202)\r\n\t\t\t\t(xy 93.27389 132.280202) (xy 93.260351 132.276574) (xy 93.159309 132.2495) (xy 93.040691 132.2495)\r\n\t\t\t\t(xy 92.970567 132.268289) (xy 92.926109 132.280202) (xy 92.823391 132.339507) (xy 92.739507 132.423391)\r\n\t\t\t\t(xy 92.680202 132.526109) (xy 92.680201 132.526114) (xy 92.6495 132.640691) (xy 74.0005 132.640691)\r\n\t\t\t\t(xy 74.0005 125.174034) (xy 76.7995 125.174034) (xy 76.7995 125.425965) (xy 76.838908 125.67478)\r\n\t\t\t\t(xy 76.83891 125.674785) (xy 76.916759 125.914379) (xy 77.03113 126.138845) (xy 77.179207 126.342656)\r\n\t\t\t\t(xy 77.357344 126.520793) (xy 77.561155 126.66887) (xy 77.785621 126.783241) (xy 78.025215 126.86109)\r\n\t\t\t\t(xy 78.025216 126.86109) (xy 78.025219 126.861091) (xy 78.274035 126.9005) (xy 78.274038 126.9005)\r\n\t\t\t\t(xy 78.525965 126.9005) (xy 78.77478 126.861091) (xy 78.774781 126.86109) (xy 78.774785 126.86109)\r\n\t\t\t\t(xy 79.014379 126.783241) (xy 79.238845 126.66887) (xy 79.442656 126.520793) (xy 79.620793 126.342656)\r\n\t\t\t\t(xy 79.76887 126.138845) (xy 79.883241 125.914379) (xy 79.96109 125.674785) (xy 80.0005 125.425962)\r\n\t\t\t\t(xy 80.0005 125.174038) (xy 80.0005 125.174034) (xy 124.7995 125.174034) (xy 124.7995 125.425965)\r\n\t\t\t\t(xy 124.838908 125.67478) (xy 124.83891 125.674785) (xy 124.916759 125.914379) (xy 125.03113 126.138845)\r\n\t\t\t\t(xy 125.179207 126.342656) (xy 125.357344 126.520793) (xy 125.561155 126.66887) (xy 125.785621 126.783241)\r\n\t\t\t\t(xy 126.025215 126.86109) (xy 126.025216 126.86109) (xy 126.025219 126.861091) (xy 126.274035 126.9005)\r\n\t\t\t\t(xy 126.274038 126.9005) (xy 126.525965 126.9005) (xy 126.77478 126.861091) (xy 126.774781 126.86109)\r\n\t\t\t\t(xy 126.774785 126.86109) (xy 127.014379 126.783241) (xy 127.238845 126.66887) (xy 127.442656 126.520793)\r\n\t\t\t\t(xy 127.620793 126.342656) (xy 127.76887 126.138845) (xy 127.883241 125.914379) (xy 127.96109 125.674785)\r\n\t\t\t\t(xy 128.0005 125.425962) (xy 128.0005 125.174038) (xy 128.0005 125.174034) (xy 127.961091 124.925219)\r\n\t\t\t\t(xy 127.96109 124.925215) (xy 127.883241 124.685621) (xy 127.76887 124.461155) (xy 127.620793 124.257344)\r\n\t\t\t\t(xy 127.442656 124.079207) (xy 127.238845 123.93113) (xy 127.238844 123.931129) (xy 127.238842 123.931128)\r\n\t\t\t\t(xy 127.014379 123.816759) (xy 126.77478 123.738908) (xy 126.525965 123.6995) (xy 126.525962 123.6995)\r\n\t\t\t\t(xy 126.274038 123.6995) (xy 126.274035 123.6995) (xy 126.025219 123.738908) (xy 125.78562 123.816759)\r\n\t\t\t\t(xy 125.561157 123.931128) (xy 125.357345 124.079206) (xy 125.179206 124.257345) (xy 125.031128 124.461157)\r\n\t\t\t\t(xy 124.916759 124.68562) (xy 124.838908 124.925219) (xy 124.7995 125.174034) (xy 80.0005 125.174034)\r\n\t\t\t\t(xy 79.961091 124.925219) (xy 79.96109 124.925215) (xy 79.883241 124.685621) (xy 79.76887 124.461155)\r\n\t\t\t\t(xy 79.620793 124.257344) (xy 79.442656 124.079207) (xy 79.238845 123.93113) (xy 79.238844 123.931129)\r\n\t\t\t\t(xy 79.238842 123.931128) (xy 79.014379 123.816759) (xy 78.77478 123.738908) (xy 78.525965 123.6995)\r\n\t\t\t\t(xy 78.525962 123.6995) (xy 78.274038 123.6995) (xy 78.274035 123.6995) (xy 78.025219 123.738908)\r\n\t\t\t\t(xy 77.78562 123.816759) (xy 77.561157 123.931128) (xy 77.357345 124.079206) (xy 77.179206 124.257345)\r\n\t\t\t\t(xy 77.031128 124.461157) (xy 76.916759 124.68562) (xy 76.838908 124.925219) (xy 76.7995 125.174034)\r\n\t\t\t\t(xy 74.0005 125.174034) (xy 74.0005 113.740691) (xy 89.8495 113.740691) (xy 89.8495 113.859309)\r\n\t\t\t\t(xy 89.876574 113.960351) (xy 89.880202 113.97389) (xy 89.939507 114.076608) (xy 89.939509 114.07661)\r\n\t\t\t\t(xy 89.939511 114.076613) (xy 90.023387 114.160489) (xy 90.023389 114.16049) (xy 90.023391 114.160492)\r\n\t\t\t\t(xy 90.12611 114.219797) (xy 90.126111 114.219797) (xy 90.126114 114.219799) (xy 90.240691 114.2505)\r\n\t\t\t\t(xy 90.240693 114.2505) (xy 90.359307 114.2505) (xy 90.359309 114.2505) (xy 90.473886 114.219799)\r\n\t\t\t\t(xy 90.473888 114.219797) (xy 90.47389 114.219797) (xy 90.576608 114.160492) (xy 90.576608 114.160491)\r\n\t\t\t\t(xy 90.576613 114.160489) (xy 90.660489 114.076613) (xy 90.719799 113.973886) (xy 90.7505 113.859309)\r\n\t\t\t\t(xy 90.7505 113.740691) (xy 90.719799 113.626114) (xy 90.719797 113.626111) (xy 90.719797 113.626109)\r\n\t\t\t\t(xy 90.660492 113.523391) (xy 90.66049 113.523389) (xy 90.660489 113.523387) (xy 90.576613 113.439511)\r\n\t\t\t\t(xy 90.57661 113.439509) (xy 90.576608 113.439507) (xy 90.473889 113.380202) (xy 90.47389 113.380202)\r\n\t\t\t\t(xy 90.460351 113.376574) (xy 90.359309 113.3495) (xy 90.240691 113.3495) (xy 90.170567 113.368289)\r\n\t\t\t\t(xy 90.126109 113.380202) (xy 90.023391 113.439507) (xy 89.939507 113.523391) (xy 89.880202 113.626109)\r\n\t\t\t\t(xy 89.880201 113.626114) (xy 89.8495 113.740691) (xy 74.0005 113.740691) (xy 74.0005 112.790691)\r\n\t\t\t\t(xy 95.4995 112.790691) (xy 95.4995 112.909309) (xy 95.503408 112.923892) (xy 95.530202 113.02389)\r\n\t\t\t\t(xy 95.589507 113.126608) (xy 95.589509 113.12661) (xy 95.589511 113.126613) (xy 95.673387 113.210489)\r\n\t\t\t\t(xy 95.673389 113.21049) (xy 95.673391 113.210492) (xy 95.77611 113.269797) (xy 95.776111 113.269797)\r\n\t\t\t\t(xy 95.776114 113.269799) (xy 95.890691 113.3005) (xy 95.890693 113.3005) (xy 96.009307 113.3005)\r\n\t\t\t\t(xy 96.009309 113.3005) (xy 96.123886 113.269799) (xy 96.123888 113.269797) (xy 96.12389 113.269797)\r\n\t\t\t\t(xy 96.226608 113.210492) (xy 96.226608 113.210491) (xy 96.226613 113.210489) (xy 96.310489 113.126613)\r\n\t\t\t\t(xy 96.310492 113.126608) (xy 96.369797 113.02389) (xy 96.369797 113.023888) (xy 96.369799 113.023886)\r\n\t\t\t\t(xy 96.4005 112.909309) (xy 96.4005 112.79' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'0691) (xy 96.369799 112.676114) (xy 96.369797 112.676111)\r\n\t\t\t\t(xy 96.369797 112.676109) (xy 96.310492 112.573391) (xy 96.31049 112.573389) (xy 96.310489 112.573387)\r\n\t\t\t\t(xy 96.226613 112.489511) (xy 96.22661 112.489509) (xy 96.226608 112.489507) (xy 96.123889 112.430202)\r\n\t\t\t\t(xy 96.12389 112.430202) (xy 96.110351 112.426574) (xy 96.009309 112.3995) (xy 95.890691 112.3995)\r\n\t\t\t\t(xy 95.820567 112.418289) (xy 95.776109 112.430202) (xy 95.673391 112.489507) (xy 95.589507 112.573391)\r\n\t\t\t\t(xy 95.530202 112.676109) (xy 95.516745 112.726332) (xy 95.4995 112.790691) (xy 74.0005 112.790691)\r\n\t\t\t\t(xy 74.0005 112.399) (xy 74.019407 112.340809) (xy 74.068907 112.304845) (xy 74.0995 112.3) (xy 82.899999 112.3)\r\n\t\t\t\t(xy 82.9 112.3) (xy 82.9 112.226783) (xy 136.985589 112.226783) (xy 136.985589 112.345401) (xy 137.012663 112.446443)\r\n\t\t\t\t(xy 137.016291 112.459982) (xy 137.075596 112.5627) (xy 137.075598 112.562702) (xy 137.0756 112.562705)\r\n\t\t\t\t(xy 137.159476 112.646581) (xy 137.159478 112.646582) (xy 137.15948 112.646584) (xy 137.262199 112.705889)\r\n\t\t\t\t(xy 137.2622 112.705889) (xy 137.262203 112.705891) (xy 137.37678 112.736592) (xy 137.376782 112.736592)\r\n\t\t\t\t(xy 137.495396 112.736592) (xy 137.495398 112.736592) (xy 137.609975 112.705891) (xy 137.609977 112.705889)\r\n\t\t\t\t(xy 137.609979 112.705889) (xy 137.712697 112.646584) (xy 137.712697 112.646583) (xy 137.712702 112.646581)\r\n\t\t\t\t(xy 137.741089 112.618193) (xy 137.795602 112.590418) (xy 137.856034 112.599989) (xy 137.88109 112.618192)\r\n\t\t\t\t(xy 137.923387 112.660489) (xy 137.923389 112.66049) (xy 137.923391 112.660492) (xy 138.02611 112.719797)\r\n\t\t\t\t(xy 138.026111 112.719797) (xy 138.026114 112.719799) (xy 138.140691 112.7505) (xy 138.140693 112.7505)\r\n\t\t\t\t(xy 138.257778 112.7505) (xy 138.315969 112.769407) (xy 138.351933 112.818907) (xy 138.353401 112.823865)\r\n\t\t\t\t(xy 138.380203 112.923888) (xy 138.380204 112.92389) (xy 138.380205 112.923893) (xy 138.439509 113.02661)\r\n\t\t\t\t(xy 138.439511 113.026612) (xy 138.439513 113.026615) (xy 138.523389 113.110491) (xy 138.523391 113.110492)\r\n\t\t\t\t(xy 138.523393 113.110494) (xy 138.626112 113.169799) (xy 138.626113 113.169799) (xy 138.626116 113.169801)\r\n\t\t\t\t(xy 138.740693 113.200502) (xy 138.740695 113.200502) (xy 138.859309 113.200502) (xy 138.859311 113.200502)\r\n\t\t\t\t(xy 138.973888 113.169801) (xy 138.97389 113.169799) (xy 138.973892 113.169799) (xy 139.07661 113.110494)\r\n\t\t\t\t(xy 139.07661 113.110493) (xy 139.076615 113.110491) (xy 139.160491 113.026615) (xy 139.219801 112.923888)\r\n\t\t\t\t(xy 139.250502 112.809311) (xy 139.250502 112.690693) (xy 139.219801 112.576116) (xy 139.219799 112.576113)\r\n\t\t\t\t(xy 139.219799 112.576111) (xy 139.160494 112.473393) (xy 139.160492 112.473391) (xy 139.160491 112.473389)\r\n\t\t\t\t(xy 139.076615 112.389513) (xy 139.076612 112.389511) (xy 139.07661 112.389509) (xy 138.973891 112.330204)\r\n\t\t\t\t(xy 138.973892 112.330204) (xy 138.949503 112.323669) (xy 138.859311 112.299502) (xy 138.742224 112.299502)\r\n\t\t\t\t(xy 138.684033 112.280595) (xy 138.648069 112.231095) (xy 138.646597 112.226126) (xy 138.619799 112.126114)\r\n\t\t\t\t(xy 138.619796 112.126108) (xy 138.560492 112.023391) (xy 138.56049 112.023389) (xy 138.560489 112.023387)\r\n\t\t\t\t(xy 138.476613 111.939511) (xy 138.47661 111.939509) (xy 138.476608 111.939507) (xy 138.373889 111.880202)\r\n\t\t\t\t(xy 138.37389 111.880202) (xy 138.360351 111.876574) (xy 138.259309 111.8495) (xy 138.140691 111.8495)\r\n\t\t\t\t(xy 138.070567 111.868289) (xy 138.026109 111.880202) (xy 137.923391 111.939507) (xy 137.895001 111.967897)\r\n\t\t\t\t(xy 137.840484 111.995673) (xy 137.780052 111.986101) (xy 137.754997 111.967898) (xy 137.712702 111.925603)\r\n\t\t\t\t(xy 137.712699 111.925601) (xy 137.712697 111.925599) (xy 137.609978 111.866294) (xy 137.609979 111.866294)\r\n\t\t\t\t(xy 137.59644 111.862666) (xy 137.495398 111.835592) (xy 137.37678 111.835592) (xy 137.324875 111.8495)\r\n\t\t\t\t(xy 137.262198 111.866294) (xy 137.15948 111.925599) (xy 137.075596 112.009483) (xy 137.016291 112.112201)\r\n\t\t\t\t(xy 137.01629 112.112206) (xy 136.985589 112.226783) (xy 82.9 112.226783) (xy 82.9 110.840691) (xy 93.8495 110.840691)\r\n\t\t\t\t(xy 93.8495 110.959309) (xy 93.876574 111.060351) (xy 93.880202 111.07389) (xy 93.939507 111.176608)\r\n\t\t\t\t(xy 93.939509 111.17661) (xy 93.939511 111.176613) (xy 94.023387 111.260489) (xy 94.023389 111.26049)\r\n\t\t\t\t(xy 94.023391 111.260492) (xy 94.12611 111.319797) (xy 94.126111 111.319797) (xy 94.126114 111.319799)\r\n\t\t\t\t(xy 94.240691 111.3505) (xy 94.240693 111.3505) (xy 94.359307 111.3505) (xy 94.359309 111.3505)\r\n\t\t\t\t(xy 94.473886 111.319799) (xy 94.473888 111.319797) (xy 94.47389 111.319797) (xy 94.576608 111.260492)\r\n\t\t\t\t(xy 94.576608 111.260491) (xy 94.576613 111.260489) (xy 94.660489 111.176613) (xy 94.719799 111.073886)\r\n\t\t\t\t(xy 94.7505 110.959309) (xy 94.7505 110.840691) (xy 94.719799 110.726114) (xy 94.719797 110.726111)\r\n\t\t\t\t(xy 94.719797 110.726109) (xy 94.660492 110.623391) (xy 94.66049 110.623389) (xy 94.660489 110.623387)\r\n\t\t\t\t(xy 94.576613 110.539511) (xy 94.57661 110.539509) (xy 94.576608 110.539507) (xy 94.473889 110.480202)\r\n\t\t\t\t(xy 94.47389 110.480202) (xy 94.460351 110.476574) (xy 94.359309 110.4495) (xy 94.240691 110.4495)\r\n\t\t\t\t(xy 94.199669 110.460492) (xy 94.126109 110.480202) (xy 94.023391 110.539507) (xy 93.939507 110.623391)\r\n\t\t\t\t(xy 93.880202 110.726109) (xy 93.880201 110.726114) (xy 93.8495 110.840691) (xy 82.9 110.840691)\r\n\t\t\t\t(xy 82.9 110.040691) (xy 136.7495 110.040691) (xy 136.7495 110.159309) (xy 136.776574 110.260351)\r\n\t\t\t\t(xy 136.780202 110.27389) (xy 136.839507 110.376608) (xy 136.839509 110.37661) (xy 136.839511 110.376613)\r\n\t\t\t\t(xy 136.923387 110.460489) (xy 136.923389 110.46049) (xy 136.923391 110.460492) (xy 137.02611 110.519797)\r\n\t\t\t\t(xy 137.026111 110.519797) (xy 137.026114 110.519799) (xy 137.140691 110.5505) (xy 137.140693 110.5505)\r\n\t\t\t\t(xy 137.259307 110.5505) (xy 137.259309 110.5505) (xy 137.373886 110.519799) (xy 137.373888 110.519797)\r\n\t\t\t\t(xy 137.37389 110.519797) (xy 137.476608 110.460492) (xy 137.476608 110.460491) (xy 137.476613 110.460489)\r\n\t\t\t\t(xy 137.560489 110.376613) (xy 137.619799 110.273886) (xy 137.6505 110.159309) (xy 137.6505 110.040691)\r\n\t\t\t\t(xy 137.619799 109.926114) (xy 137.619797 109.926111) (xy 137.619797 109.926109) (xy 137.560492 109.823391)\r\n\t\t\t\t(xy 137.56049 109.823389) (xy 137.560489 109.823387) (xy 137.476613 109.739511) (xy 137.47661 109.739509)\r\n\t\t\t\t(xy 137.476608 109.739507) (xy 137.373889 109.680202) (xy 137.37389 109.680202) (xy 137.360351 109.676574)\r\n\t\t\t\t(xy 137.259309 109.6495) (xy 137.140691 109.6495) (xy 137.070567 109.668289) (xy 137.026109 109.680202)\r\n\t\t\t\t(xy 136.923391 109.739507) (xy 136.839507 109.823391) (xy 136.780202 109.926109) (xy 136.780201 109.926114)\r\n\t\t\t\t(xy 136.7495 110.040691) (xy 82.9 110.040691) (xy 82.9 100.818912) (xy 137.25 100.818912) (xy 137.25 101.081087)\r\n\t\t\t\t(xy 137.28422 101.34101) (xy 137.28422 101.341015) (xy 137.352075 101.594255) (xy 137.352078 101.594262)\r\n\t\t\t\t(xy 137.452403 101.83647) (xy 137.583492 102.063522) (xy 137.670079 102.176364) (xy 138.534152 101.312291)\r\n\t\t\t\t(xy 138.541049 101.328942) (xy 138.628599 101.45997) (xy 138.74003 101.571401) (xy 138.871058 101.658951)\r\n\t\t\t\t(xy 138.887705 101.665846) (xy 138.023633 102.529919) (xy 138.136477 102.616507) (xy 138.363529 102.747596)\r\n\t\t\t\t(xy 138.605737 102.847921) (xy 138.605744 102.847924) (xy 138.858986 102.915779) (xy 139.118912 102.949999)\r\n\t\t\t\t(xy 139.118914 102.95) (xy 139.381086 102.95) (xy 139.381087 102.949999) (xy 139.64101 102.915779)\r\n\t\t\t\t(xy 139.641015 102.915779) (xy 139.894255 102.847924) (xy 139.894262 102.847921) (xy 140.13647 102.747596)\r\n\t\t\t\t(xy 140.363532 102.616501) (xy 140.476365 102.529919) (xy 140.476365 102.529918) (xy 139.612293 101.665846)\r\n\t\t\t\t(xy 139.628942 101.658951) (xy 139.75997 101.571401) (xy 139.871401 101.45997) (xy 139.958951 101.328942)\r\n\t\t\t\t(xy 139.965847 101.312293) (xy 140.829918 102.176365) (xy 140.829919 102.176365) (xy 140.916501 102.063532)\r\n\t\t\t\t(xy 141.047596 101.83647) (xy 141.147921 101.594262) (xy 141.147924 101.594255) (xy 141.215779 101.341015)\r\n\t\t\t\t(xy 141.215779 101.34101) (xy 141.249999 101.081087) (xy 141.25 101.081086) (xy 141.25 100.818914)\r\n\t\t\t\t(xy 141.249999 100.818912) (xy 141.227119 100.645118) (xy ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'141.238269 100.584958) (xy 141.282651 100.54284)\r\n\t\t\t\t(xy 141.343313 100.534854) (xy 141.374772 100.54646) (xy 141.468706 100.600693) (xy 141.468711 100.600696)\r\n\t\t\t\t(xy 141.598981 100.654655) (xy 141.695847 100.694778) (xy 141.933323 100.758409) (xy 142.177073 100.7905)\r\n\t\t\t\t(xy 142.177074 100.7905) (xy 142.422926 100.7905) (xy 142.422927 100.7905) (xy 142.666677 100.758409)\r\n\t\t\t\t(xy 142.904153 100.694778) (xy 143.131292 100.600694) (xy 143.344208 100.477767) (xy 143.539256 100.328101)\r\n\t\t\t\t(xy 143.656773 100.210583) (xy 143.711288 100.182807) (xy 143.77172 100.192378) (xy 143.814984 100.235643)\r\n\t\t\t\t(xy 143.823872 100.261272) (xy 143.829868 100.291412) (xy 143.829869 100.291417) (xy 143.829869 100.291418)\r\n\t\t\t\t(xy 143.82987 100.29142) (xy 143.835803 100.305744) (xy 143.909058 100.482597) (xy 144.02402 100.654651)\r\n\t\t\t\t(xy 144.024023 100.654655) (xy 144.170345 100.800977) (xy 144.342402 100.915941) (xy 144.53358 100.99513)\r\n\t\t\t\t(xy 144.736535 101.0355) (xy 144.736536 101.0355) (xy 144.943464 101.0355) (xy 144.943465 101.0355)\r\n\t\t\t\t(xy 145.14642 100.99513) (xy 145.337598 100.915941) (xy 145.509655 100.800977) (xy 145.655977 100.654655)\r\n\t\t\t\t(xy 145.770941 100.482598) (xy 145.770941 100.482596) (xy 145.772684 100.479989) (xy 145.820734 100.442109)\r\n\t\t\t\t(xy 145.881872 100.439707) (xy 145.932746 100.473699) (xy 145.937316 100.479989) (xy 146.04765 100.645118)\r\n\t\t\t\t(xy 146.054023 100.654655) (xy 146.200345 100.800977) (xy 146.372402 100.915941) (xy 146.56358 100.99513)\r\n\t\t\t\t(xy 146.766535 101.0355) (xy 146.766536 101.0355) (xy 146.973464 101.0355) (xy 146.973465 101.0355)\r\n\t\t\t\t(xy 147.17642 100.99513) (xy 147.367598 100.915941) (xy 147.539655 100.800977) (xy 147.685977 100.654655)\r\n\t\t\t\t(xy 147.800941 100.482598) (xy 147.88013 100.29142) (xy 147.9205 100.088465) (xy 147.9205 99.881535)\r\n\t\t\t\t(xy 147.88013 99.67858) (xy 147.800941 99.487402) (xy 147.685977 99.315345) (xy 147.539655 99.169023)\r\n\t\t\t\t(xy 147.539651 99.16902) (xy 147.367597 99.054058) (xy 147.176418 98.974869) (xy 146.973467 98.9345)\r\n\t\t\t\t(xy 146.973465 98.9345) (xy 146.766535 98.9345) (xy 146.766532 98.9345) (xy 146.563581 98.974869)\r\n\t\t\t\t(xy 146.372402 99.054058) (xy 146.200348 99.16902) (xy 146.05402 99.315348) (xy 145.937316 99.49001)\r\n\t\t\t\t(xy 145.889266 99.52789) (xy 145.828128 99.530292) (xy 145.777254 99.496299) (xy 145.772684 99.49001)\r\n\t\t\t\t(xy 145.655979 99.315348) (xy 145.655977 99.315345) (xy 145.509655 99.169023) (xy 145.509651 99.16902)\r\n\t\t\t\t(xy 145.337597 99.054058) (xy 145.146418 98.974869) (xy 144.943467 98.9345) (xy 144.943465 98.9345)\r\n\t\t\t\t(xy 144.736535 98.9345) (xy 144.736532 98.9345) (xy 144.533581 98.974869) (xy 144.342399 99.054059)\r\n\t\t\t\t(xy 144.3295 99.062679) (xy 144.270612 99.079287) (xy 144.213209 99.058109) (xy 144.179217 99.007234)\r\n\t\t\t\t(xy 144.1755 98.980363) (xy 144.1755 98.792074) (xy 144.1755 98.792073) (xy 144.143409 98.548323)\r\n\t\t\t\t(xy 144.079778 98.310847) (xy 143.992038 98.099023) (xy 143.985697 98.083715) (xy 143.985696 98.083714)\r\n\t\t\t\t(xy 143.985694 98.083708) (xy 143.862767 97.870792) (xy 143.857939 97.8645) (xy 143.713106 97.67575)\r\n\t\t\t\t(xy 143.713104 97.675748) (xy 143.713101 97.675744) (xy 143.539256 97.501899) (xy 143.539251 97.501895)\r\n\t\t\t\t(xy 143.539249 97.501893) (xy 143.344211 97.352235) (xy 143.344208 97.352233) (xy 143.131292 97.229306)\r\n\t\t\t\t(xy 143.131288 97.229304) (xy 143.131284 97.229302) (xy 142.904154 97.135222) (xy 142.79944 97.107164)\r\n\t\t\t\t(xy 142.666677 97.071591) (xy 142.666674 97.07159) (xy 142.666672 97.07159) (xy 142.422927 97.0395)\r\n\t\t\t\t(xy 142.177073 97.0395) (xy 142.177072 97.0395) (xy 141.93333 97.07159) (xy 141.933325 97.07159)\r\n\t\t\t\t(xy 141.695845 97.135222) (xy 141.468715 97.229302) (xy 141.255788 97.352235) (xy 141.06075 97.501893)\r\n\t\t\t\t(xy 140.886893 97.67575) (xy 140.737235 97.870788) (xy 140.614302 98.083715) (xy 140.520222 98.310845)\r\n\t\t\t\t(xy 140.45659 98.548325) (xy 140.45659 98.54833) (xy 140.4245 98.792072) (xy 140.4245 99.037928)\r\n\t\t\t\t(xy 140.438301 99.142759) (xy 140.427151 99.20292) (xy 140.382768 99.245037) (xy 140.322106 99.253023)\r\n\t\t\t\t(xy 140.290648 99.241418) (xy 140.13647 99.152403) (xy 139.894262 99.052078) (xy 139.894255 99.052075)\r\n\t\t\t\t(xy 139.641013 98.98422) (xy 139.381087 98.95) (xy 139.118912 98.95) (xy 138.858989 98.98422) (xy 138.858984 98.98422)\r\n\t\t\t\t(xy 138.605744 99.052075) (xy 138.605737 99.052078) (xy 138.363529 99.152403) (xy 138.136472 99.283495)\r\n\t\t\t\t(xy 138.023633 99.370079) (xy 138.887706 100.234152) (xy 138.871058 100.241049) (xy 138.74003 100.328599)\r\n\t\t\t\t(xy 138.628599 100.44003) (xy 138.541049 100.571058) (xy 138.534152 100.587706) (xy 137.670079 99.723633)\r\n\t\t\t\t(xy 137.583495 99.836472) (xy 137.452403 100.063529) (xy 137.352078 100.305737) (xy 137.352075 100.305744)\r\n\t\t\t\t(xy 137.28422 100.558984) (xy 137.28422 100.558989) (xy 137.25 100.818912) (xy 82.9 100.818912)\r\n\t\t\t\t(xy 82.9 98.811532) (xy 134.8995 98.811532) (xy 134.8995 99.018467) (xy 134.939869 99.221418) (xy 135.019058 99.412597)\r\n\t\t\t\t(xy 135.090256 99.519153) (xy 135.134023 99.584655) (xy 135.280345 99.730977) (xy 135.452402 99.845941)\r\n\t\t\t\t(xy 135.64358 99.92513) (xy 135.846535 99.9655) (xy 135.846536 99.9655) (xy 136.053464 99.9655)\r\n\t\t\t\t(xy 136.053465 99.9655) (xy 136.25642 99.92513) (xy 136.447598 99.845941) (xy 136.619655 99.730977)\r\n\t\t\t\t(xy 136.765977 99.584655) (xy 136.880941 99.412598) (xy 136.96013 99.22142) (xy 137.0005 99.018465)\r\n\t\t\t\t(xy 137.0005 98.811535) (xy 136.96013 98.60858) (xy 136.880941 98.417402) (xy 136.765977 98.245345)\r\n\t\t\t\t(xy 136.619655 98.099023) (xy 136.596745 98.083715) (xy 136.447597 97.984058) (xy 136.256418 97.904869)\r\n\t\t\t\t(xy 136.053467 97.8645) (xy 136.053465 97.8645) (xy 135.846535 97.8645) (xy 135.846532 97.8645)\r\n\t\t\t\t(xy 135.643581 97.904869) (xy 135.452402 97.984058) (xy 135.280348 98.09902) (xy 135.13402 98.245348)\r\n\t\t\t\t(xy 135.019058 98.417402) (xy 134.939869 98.608581) (xy 134.8995 98.811532) (xy 82.9 98.811532)\r\n\t\t\t\t(xy 82.9 97.541532) (xy 132.3595 97.541532) (xy 132.3595 97.748467) (xy 132.399869 97.951418) (xy 132.479058 98.142597)\r\n\t\t\t\t(xy 132.59402 98.314651) (xy 132.594023 98.314655) (xy 132.740345 98.460977) (xy 132.912402 98.575941)\r\n\t\t\t\t(xy 133.10358 98.65513) (xy 133.306535 98.6955) (xy 133.306536 98.6955) (xy 133.513464 98.6955)\r\n\t\t\t\t(xy 133.513465 98.6955) (xy 133.71642 98.65513) (xy 133.907598 98.575941) (xy 134.079655 98.460977)\r\n\t\t\t\t(xy 134.225977 98.314655) (xy 134.340941 98.142598) (xy 134.42013 97.95142) (xy 134.4605 97.748465)\r\n\t\t\t\t(xy 134.4605 97.541535) (xy 134.42013 97.33858) (xy 134.340941 97.147402) (xy 134.225977 96.975345)\r\n\t\t\t\t(xy 134.079655 96.829023) (xy 134.079651 96.82902) (xy 133.907597 96.714058) (xy 133.716418 96.634869)\r\n\t\t\t\t(xy 133.513467 96.5945) (xy 133.513465 96.5945) (xy 133.306535 96.5945) (xy 133.306532 96.5945)\r\n\t\t\t\t(xy 133.103581 96.634869) (xy 132.912402 96.714058) (xy 132.740348 96.82902) (xy 132.59402 96.975348)\r\n\t\t\t\t(xy 132.479058 97.147402) (xy 132.399869 97.338581) (xy 132.3595 97.541532) (xy 82.9 97.541532)\r\n\t\t\t\t(xy 82.9 97.3) (xy 82.899999 97.3) (xy 74.0995 97.3) (xy 74.041309 97.281093) (xy 74.005345 97.231593)\r\n\t\t\t\t(xy 74.0005 97.201) (xy 74.0005 96.271532) (xy 134.8995 96.271532) (xy 134.8995 96.478467) (xy 134.939869 96.681418)\r\n\t\t\t\t(xy 135.019058 96.872597) (xy 135.13402 97.044651) (xy 135.134023 97.044655) (xy 135.280345 97.190977)\r\n\t\t\t\t(xy 135.452402 97.305941) (xy 135.64358 97.38513) (xy 135.846535 97.4255) (xy 135.846536 97.4255)\r\n\t\t\t\t(xy 136.053464 97.4255) (xy 136.053465 97.4255) (xy 136.25642 97.38513) (xy 136.447598 97.305941)\r\n\t\t\t\t(xy 136.619655 97.190977) (xy 136.765977 97.044655) (xy 136.880941 96.872598) (xy 136.96013 96.68142)\r\n\t\t\t\t(xy 136.988123 96.540691) (xy 144.9495 96.540691) (xy 144.9495 96.659309) (xy 144.976574 96.760351)\r\n\t\t\t\t(xy 144.980202 96.77389) (xy 145.039507 96.876608) (xy 145.039509 96.87661) (xy 145.039511 96.876613)\r\n\t\t\t\t(xy 145.123387 96.960489) (xy 145.123389 96.96049) (xy 145.123391 96.960492) (xy 145.22611 97.019797)\r\n\t\t\t\t(xy 145.226111 97.019797) (xy 145.226114 97.019799) (xy 145.340691 97.0505) (xy 145.340693 97.0505)\r\n\t\t\t\t(xy 145.459307 97.0505) (xy 145.459309 97.0505) (xy 145.573886 97.019799) (xy 145.573888 97.019797)\r\n\t\t\t\t(xy 145.57389 97.019797) (xy 145.676608 96.960492) (xy' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' 145.676608 96.960491) (xy 145.676613 96.960489)\r\n\t\t\t\t(xy 145.760489 96.876613) (xy 145.762808 96.872597) (xy 145.819797 96.77389) (xy 145.819797 96.773888)\r\n\t\t\t\t(xy 145.819799 96.773886) (xy 145.8505 96.659309) (xy 145.8505 96.540691) (xy 145.819799 96.426114)\r\n\t\t\t\t(xy 145.819797 96.426111) (xy 145.819797 96.426109) (xy 145.760492 96.323391) (xy 145.76049 96.323389)\r\n\t\t\t\t(xy 145.760489 96.323387) (xy 145.676613 96.239511) (xy 145.67661 96.239509) (xy 145.676608 96.239507)\r\n\t\t\t\t(xy 145.573889 96.180202) (xy 145.57389 96.180202) (xy 145.560351 96.176574) (xy 145.459309 96.1495)\r\n\t\t\t\t(xy 145.340691 96.1495) (xy 145.270567 96.168289) (xy 145.226109 96.180202) (xy 145.123391 96.239507)\r\n\t\t\t\t(xy 145.039507 96.323391) (xy 144.980202 96.426109) (xy 144.966173 96.478467) (xy 144.9495 96.540691)\r\n\t\t\t\t(xy 136.988123 96.540691) (xy 137.0005 96.478465) (xy 137.0005 96.271535) (xy 136.96013 96.06858)\r\n\t\t\t\t(xy 136.880941 95.877402) (xy 136.765977 95.705345) (xy 136.619655 95.559023) (xy 136.447598 95.444059)\r\n\t\t\t\t(xy 136.447599 95.444059) (xy 136.447597 95.444058) (xy 136.256418 95.364869) (xy 136.053467 95.3245)\r\n\t\t\t\t(xy 136.053465 95.3245) (xy 135.846535 95.3245) (xy 135.846532 95.3245) (xy 135.643581 95.364869)\r\n\t\t\t\t(xy 135.452402 95.444058) (xy 135.280348 95.55902) (xy 135.13402 95.705348) (xy 135.019058 95.877402)\r\n\t\t\t\t(xy 134.939869 96.068581) (xy 134.8995 96.271532) (xy 74.0005 96.271532) (xy 74.0005 95.240691)\r\n\t\t\t\t(xy 103.6495 95.240691) (xy 103.6495 95.359309) (xy 103.663463 95.411418) (xy 103.680202 95.47389)\r\n\t\t\t\t(xy 103.739507 95.576608) (xy 103.739509 95.57661) (xy 103.739511 95.576613) (xy 103.823387 95.660489)\r\n\t\t\t\t(xy 103.823389 95.66049) (xy 103.823391 95.660492) (xy 103.92611 95.719797) (xy 103.926111 95.719797)\r\n\t\t\t\t(xy 103.926114 95.719799) (xy 104.040691 95.7505) (xy 104.040693 95.7505) (xy 104.159307 95.7505)\r\n\t\t\t\t(xy 104.159309 95.7505) (xy 104.273886 95.719799) (xy 104.273888 95.719797) (xy 104.27389 95.719797)\r\n\t\t\t\t(xy 104.376608 95.660492) (xy 104.376608 95.660491) (xy 104.376613 95.660489) (xy 104.460489 95.576613)\r\n\t\t\t\t(xy 104.470645 95.559023) (xy 104.519797 95.47389) (xy 104.519797 95.473888) (xy 104.519799 95.473886)\r\n\t\t\t\t(xy 104.5505 95.359309) (xy 104.5505 95.240691) (xy 104.519799 95.126114) (xy 104.460489 95.023387)\r\n\t\t\t\t(xy 104.438634 95.001532) (xy 132.3595 95.001532) (xy 132.3595 95.208467) (xy 132.399869 95.411418)\r\n\t\t\t\t(xy 132.479058 95.602597) (xy 132.577883 95.7505) (xy 132.594023 95.774655) (xy 132.740345 95.920977)\r\n\t\t\t\t(xy 132.912402 96.035941) (xy 133.10358 96.11513) (xy 133.306535 96.1555) (xy 133.306536 96.1555)\r\n\t\t\t\t(xy 133.513464 96.1555) (xy 133.513465 96.1555) (xy 133.71642 96.11513) (xy 133.907598 96.035941)\r\n\t\t\t\t(xy 134.079655 95.920977) (xy 134.225977 95.774655) (xy 134.340941 95.602598) (xy 134.42013 95.41142)\r\n\t\t\t\t(xy 134.4605 95.208465) (xy 134.4605 95.001535) (xy 134.42013 94.79858) (xy 134.340941 94.607402)\r\n\t\t\t\t(xy 134.225977 94.435345) (xy 134.079655 94.289023) (xy 133.907598 94.174059) (xy 133.907599 94.174059)\r\n\t\t\t\t(xy 133.907597 94.174058) (xy 133.716418 94.094869) (xy 133.513467 94.0545) (xy 133.513465 94.0545)\r\n\t\t\t\t(xy 133.306535 94.0545) (xy 133.306532 94.0545) (xy 133.103581 94.094869) (xy 132.912402 94.174058)\r\n\t\t\t\t(xy 132.740348 94.28902) (xy 132.59402 94.435348) (xy 132.479058 94.607402) (xy 132.399869 94.798581)\r\n\t\t\t\t(xy 132.3595 95.001532) (xy 104.438634 95.001532) (xy 104.376613 94.939511) (xy 104.37661 94.939509)\r\n\t\t\t\t(xy 104.376608 94.939507) (xy 104.273889 94.880202) (xy 104.27389 94.880202) (xy 104.260351 94.876574)\r\n\t\t\t\t(xy 104.159309 94.8495) (xy 104.040691 94.8495) (xy 103.970567 94.868289) (xy 103.926109 94.880202)\r\n\t\t\t\t(xy 103.823391 94.939507) (xy 103.739507 95.023391) (xy 103.680202 95.126109) (xy 103.663037 95.190169)\r\n\t\t\t\t(xy 103.6495 95.240691) (xy 74.0005 95.240691) (xy 74.0005 94.690691) (xy 97.799497 94.690691) (xy 97.799497 94.809309)\r\n\t\t\t\t(xy 97.826571 94.910351) (xy 97.830199 94.92389) (xy 97.889504 95.026608) (xy 97.889506 95.02661)\r\n\t\t\t\t(xy 97.889508 95.026613) (xy 97.973384 95.110489) (xy 97.973386 95.11049) (xy 97.973388 95.110492)\r\n\t\t\t\t(xy 98.076107 95.169797) (xy 98.076108 95.169797) (xy 98.076111 95.169799) (xy 98.190688 95.2005)\r\n\t\t\t\t(xy 98.19069 95.2005) (xy 98.309304 95.2005) (xy 98.309306 95.2005) (xy 98.423883 95.169799) (xy 98.423885 95.169797)\r\n\t\t\t\t(xy 98.423887 95.169797) (xy 98.526605 95.110492) (xy 98.526605 95.110491) (xy 98.52661 95.110489)\r\n\t\t\t\t(xy 98.554997 95.082101) (xy 98.60951 95.054326) (xy 98.669942 95.063897) (xy 98.694998 95.0821)\r\n\t\t\t\t(xy 98.723387 95.110489) (xy 98.723389 95.11049) (xy 98.723391 95.110492) (xy 98.82611 95.169797)\r\n\t\t\t\t(xy 98.826111 95.169797) (xy 98.826114 95.169799) (xy 98.940691 95.2005) (xy 98.940693 95.2005)\r\n\t\t\t\t(xy 99.059307 95.2005) (xy 99.059309 95.2005) (xy 99.173886 95.169799) (xy 99.173888 95.169797)\r\n\t\t\t\t(xy 99.17389 95.169797) (xy 99.276608 95.110492) (xy 99.276608 95.110491) (xy 99.276613 95.110489)\r\n\t\t\t\t(xy 99.360489 95.026613) (xy 99.362352 95.023387) (xy 99.419797 94.92389) (xy 99.419797 94.923888)\r\n\t\t\t\t(xy 99.419799 94.923886) (xy 99.4505 94.809309) (xy 99.4505 94.690691) (xy 99.7495 94.690691) (xy 99.7495 94.809309)\r\n\t\t\t\t(xy 99.776574 94.910351) (xy 99.780202 94.92389) (xy 99.839507 95.026608) (xy 99.839509 95.02661)\r\n\t\t\t\t(xy 99.839511 95.026613) (xy 99.923387 95.110489) (xy 99.923389 95.11049) (xy 99.923391 95.110492)\r\n\t\t\t\t(xy 100.02611 95.169797) (xy 100.026111 95.169797) (xy 100.026114 95.169799) (xy 100.140691 95.2005)\r\n\t\t\t\t(xy 100.140693 95.2005) (xy 100.259307 95.2005) (xy 100.259309 95.2005) (xy 100.373886 95.169799)\r\n\t\t\t\t(xy 100.373888 95.169797) (xy 100.37389 95.169797) (xy 100.410837 95.148466) (xy 100.476608 95.110492)\r\n\t\t\t\t(xy 100.476608 95.110491) (xy 100.476613 95.110489) (xy 100.560489 95.026613) (xy 100.562352 95.023387)\r\n\t\t\t\t(xy 100.619797 94.92389) (xy 100.619797 94.923888) (xy 100.619799 94.923886) (xy 100.6505 94.809309)\r\n\t\t\t\t(xy 100.6505 94.690691) (xy 100.619799 94.576114) (xy 100.619797 94.576111) (xy 100.619797 94.576109)\r\n\t\t\t\t(xy 100.560492 94.473391) (xy 100.56049 94.473389) (xy 100.560489 94.473387) (xy 100.476613 94.389511)\r\n\t\t\t\t(xy 100.47661 94.389509) (xy 100.476608 94.389507) (xy 100.373889 94.330202) (xy 100.37389 94.330202)\r\n\t\t\t\t(xy 100.346034 94.322738) (xy 100.259309 94.2995) (xy 100.140691 94.2995) (xy 100.070567 94.318289)\r\n\t\t\t\t(xy 100.026109 94.330202) (xy 99.923391 94.389507) (xy 99.839507 94.473391) (xy 99.780202 94.576109)\r\n\t\t\t\t(xy 99.763037 94.640169) (xy 99.7495 94.690691) (xy 99.4505 94.690691) (xy 99.419799 94.576114)\r\n\t\t\t\t(xy 99.419797 94.576111) (xy 99.419797 94.576109) (xy 99.360492 94.473391) (xy 99.36049 94.473389)\r\n\t\t\t\t(xy 99.360489 94.473387) (xy 99.276613 94.389511) (xy 99.27661 94.389509) (xy 99.276608 94.389507)\r\n\t\t\t\t(xy 99.173889 94.330202) (xy 99.17389 94.330202) (xy 99.146034 94.322738) (xy 99.059309 94.2995)\r\n\t\t\t\t(xy 98.940691 94.2995) (xy 98.870567 94.318289) (xy 98.826109 94.330202) (xy 98.723391 94.389507)\r\n\t\t\t\t(xy 98.695001 94.417897) (xy 98.640484 94.445673) (xy 98.580052 94.436101) (xy 98.554997 94.417898)\r\n\t\t\t\t(xy 98.52661 94.389511) (xy 98.526607 94.389509) (xy 98.526605 94.389507) (xy 98.423886 94.330202)\r\n\t\t\t\t(xy 98.423887 94.330202) (xy 98.396031 94.322738) (xy 98.309306 94.2995) (xy 98.190688 94.2995)\r\n\t\t\t\t(xy 98.120564 94.318289) (xy 98.076106 94.330202) (xy 97.973388 94.389507) (xy 97.889504 94.473391)\r\n\t\t\t\t(xy 97.830199 94.576109) (xy 97.813034 94.640169) (xy 97.799497 94.690691) (xy 74.0005 94.690691)\r\n\t\t\t\t(xy 74.0005 94.140691) (xy 92.8495 94.140691) (xy 92.8495 94.259309) (xy 92.866496 94.322738) (xy 92.880202 94.37389)\r\n\t\t\t\t(xy 92.939507 94.476608) (xy 92.939509 94.47661) (xy 92.939511 94.476613) (xy 93.023387 94.560489)\r\n\t\t\t\t(xy 93.023389 94.56049) (xy 93.023391 94.560492) (xy 93.12611 94.619797) (xy 93.126111 94.619797)\r\n\t\t\t\t(xy 93.126114 94.619799) (xy 93.240691 94.6505) (xy 93.240693 94.6505) (xy 93.359307 94.6505) (xy 93.359309 94.6505)\r\n\t\t\t\t(xy 93.473886 94.619799) (xy 93.473888 94.619797) (xy 93.47389 94.619797) (xy 93.576608 94.560492)\r\n\t\t\t\t(xy 93.576608 94.560491) (xy 93.576613 94.560489) (xy 93.660489 94.476613) (xy 93.669798 94.460489)\r\n\t\t\t\t(xy 93.719797 94.37389) (xy 93.719797 94.373888) (xy 93.719799 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'94.373886) (xy 93.7505 94.259309)\r\n\t\t\t\t(xy 93.7505 94.140691) (xy 94.0495 94.140691) (xy 94.0495 94.259309) (xy 94.066496 94.322738) (xy 94.080202 94.37389)\r\n\t\t\t\t(xy 94.139507 94.476608) (xy 94.139509 94.47661) (xy 94.139511 94.476613) (xy 94.223387 94.560489)\r\n\t\t\t\t(xy 94.223389 94.56049) (xy 94.223391 94.560492) (xy 94.32611 94.619797) (xy 94.326111 94.619797)\r\n\t\t\t\t(xy 94.326114 94.619799) (xy 94.440691 94.6505) (xy 94.440693 94.6505) (xy 94.559307 94.6505) (xy 94.559309 94.6505)\r\n\t\t\t\t(xy 94.673886 94.619799) (xy 94.673888 94.619797) (xy 94.67389 94.619797) (xy 94.776608 94.560492)\r\n\t\t\t\t(xy 94.776608 94.560491) (xy 94.776613 94.560489) (xy 94.860489 94.476613) (xy 94.869798 94.460489)\r\n\t\t\t\t(xy 94.919797 94.37389) (xy 94.919797 94.373888) (xy 94.919799 94.373886) (xy 94.9505 94.259309)\r\n\t\t\t\t(xy 94.9505 94.140691) (xy 96.3495 94.140691) (xy 96.3495 94.259309) (xy 96.366496 94.322738) (xy 96.380202 94.37389)\r\n\t\t\t\t(xy 96.439507 94.476608) (xy 96.439509 94.47661) (xy 96.439511 94.476613) (xy 96.523387 94.560489)\r\n\t\t\t\t(xy 96.523389 94.56049) (xy 96.523391 94.560492) (xy 96.62611 94.619797) (xy 96.626111 94.619797)\r\n\t\t\t\t(xy 96.626114 94.619799) (xy 96.740691 94.6505) (xy 96.740693 94.6505) (xy 96.859307 94.6505) (xy 96.859309 94.6505)\r\n\t\t\t\t(xy 96.973886 94.619799) (xy 96.973888 94.619797) (xy 96.97389 94.619797) (xy 97.010837 94.598466)\r\n\t\t\t\t(xy 97.076608 94.560492) (xy 97.076608 94.560491) (xy 97.076613 94.560489) (xy 97.160489 94.476613)\r\n\t\t\t\t(xy 97.169798 94.460489) (xy 97.219797 94.37389) (xy 97.219797 94.373888) (xy 97.219799 94.373886)\r\n\t\t\t\t(xy 97.2505 94.259309) (xy 97.2505 94.140691) (xy 97.223705 94.040691) (xy 104.7495 94.040691) (xy 104.7495 94.159309)\r\n\t\t\t\t(xy 104.776295 94.259307) (xy 104.780202 94.27389) (xy 104.839507 94.376608) (xy 104.839509 94.37661)\r\n\t\t\t\t(xy 104.839511 94.376613) (xy 104.923387 94.460489) (xy 104.923389 94.46049) (xy 104.923391 94.460492)\r\n\t\t\t\t(xy 105.02611 94.519797) (xy 105.026111 94.519797) (xy 105.026114 94.519799) (xy 105.140691 94.5505)\r\n\t\t\t\t(xy 105.140693 94.5505) (xy 105.259307 94.5505) (xy 105.259309 94.5505) (xy 105.373886 94.519799)\r\n\t\t\t\t(xy 105.373888 94.519797) (xy 105.37389 94.519797) (xy 105.476608 94.460492) (xy 105.476608 94.460491)\r\n\t\t\t\t(xy 105.476613 94.460489) (xy 105.560489 94.376613) (xy 105.564263 94.370075) (xy 105.609731 94.329135)\r\n\t\t\t\t(xy 105.670581 94.322738) (xy 105.72357 94.353329) (xy 105.735735 94.370073) (xy 105.739511 94.376613)\r\n\t\t\t\t(xy 105.823387 94.460489) (xy 105.823389 94.46049) (xy 105.823391 94.460492) (xy 105.92611 94.519797)\r\n\t\t\t\t(xy 105.926111 94.519797) (xy 105.926114 94.519799) (xy 106.040691 94.5505) (xy 106.040693 94.5505)\r\n\t\t\t\t(xy 106.159307 94.5505) (xy 106.159309 94.5505) (xy 106.273886 94.519799) (xy 106.273888 94.519797)\r\n\t\t\t\t(xy 106.27389 94.519797) (xy 106.376608 94.460492) (xy 106.376608 94.460491) (xy 106.376613 94.460489)\r\n\t\t\t\t(xy 106.460489 94.376613) (xy 106.462061 94.37389) (xy 106.519797 94.27389) (xy 106.519797 94.273888)\r\n\t\t\t\t(xy 106.519799 94.273886) (xy 106.5505 94.159309) (xy 106.5505 94.040691) (xy 106.519799 93.926114)\r\n\t\t\t\t(xy 106.519797 93.926111) (xy 106.519797 93.926109) (xy 106.460492 93.823391) (xy 106.46049 93.823389)\r\n\t\t\t\t(xy 106.460489 93.823387) (xy 106.376613 93.739511) (xy 106.37661 93.739509) (xy 106.376608 93.739507)\r\n\t\t\t\t(xy 106.273889 93.680202) (xy 106.27389 93.680202) (xy 106.231598 93.66887) (xy 106.159309 93.6495)\r\n\t\t\t\t(xy 106.040691 93.6495) (xy 105.999669 93.660492) (xy 105.926109 93.680202) (xy 105.823391 93.739507)\r\n\t\t\t\t(xy 105.739509 93.823389) (xy 105.735736 93.829925) (xy 105.690266 93.870865) (xy 105.629416 93.87726)\r\n\t\t\t\t(xy 105.576428 93.846667) (xy 105.564264 93.829925) (xy 105.56049 93.823389) (xy 105.560489 93.823387)\r\n\t\t\t\t(xy 105.476613 93.739511) (xy 105.47661 93.739509) (xy 105.476608 93.739507) (xy 105.373889 93.680202)\r\n\t\t\t\t(xy 105.37389 93.680202) (xy 105.331598 93.66887) (xy 105.259309 93.6495) (xy 105.140691 93.6495)\r\n\t\t\t\t(xy 105.099669 93.660492) (xy 105.026109 93.680202) (xy 104.923391 93.739507) (xy 104.839507 93.823391)\r\n\t\t\t\t(xy 104.780202 93.926109) (xy 104.776891 93.938467) (xy 104.7495 94.040691) (xy 97.223705 94.040691)\r\n\t\t\t\t(xy 97.219799 94.026114) (xy 97.169196 93.938467) (xy 97.160492 93.923391) (xy 97.16049 93.923389)\r\n\t\t\t\t(xy 97.160489 93.923387) (xy 97.076613 93.839511) (xy 97.07661 93.839509) (xy 97.076608 93.839507)\r\n\t\t\t\t(xy 96.973889 93.780202) (xy 96.97389 93.780202) (xy 96.960351 93.776574) (xy 96.859309 93.7495)\r\n\t\t\t\t(xy 96.740691 93.7495) (xy 96.670567 93.768289) (xy 96.626109 93.780202) (xy 96.523391 93.839507)\r\n\t\t\t\t(xy 96.439507 93.923391) (xy 96.380202 94.026109) (xy 96.380201 94.026114) (xy 96.3495 94.140691)\r\n\t\t\t\t(xy 94.9505 94.140691) (xy 94.919799 94.026114) (xy 94.919797 94.02611) (xy 94.919797 94.026109)\r\n\t\t\t\t(xy 94.860492 93.923391) (xy 94.86049 93.923389) (xy 94.860489 93.923387) (xy 94.776613 93.839511)\r\n\t\t\t\t(xy 94.77661 93.839509) (xy 94.776608 93.839507) (xy 94.673889 93.780202) (xy 94.67389 93.780202)\r\n\t\t\t\t(xy 94.660351 93.776574) (xy 94.559309 93.7495) (xy 94.440691 93.7495) (xy 94.370567 93.768289)\r\n\t\t\t\t(xy 94.326109 93.780202) (xy 94.223391 93.839507) (xy 94.139507 93.923391) (xy 94.080202 94.026109)\r\n\t\t\t\t(xy 94.080201 94.026114) (xy 94.0495 94.140691) (xy 93.7505 94.140691) (xy 93.719799 94.026114)\r\n\t\t\t\t(xy 93.719797 94.02611) (xy 93.719797 94.026109) (xy 93.660492 93.923391) (xy 93.66049 93.923389)\r\n\t\t\t\t(xy 93.660489 93.923387) (xy 93.576613 93.839511) (xy 93.57661 93.839509) (xy 93.576608 93.839507)\r\n\t\t\t\t(xy 93.473889 93.780202) (xy 93.47389 93.780202) (xy 93.460351 93.776574) (xy 93.359309 93.7495)\r\n\t\t\t\t(xy 93.240691 93.7495) (xy 93.170567 93.768289) (xy 93.126109 93.780202) (xy 93.023391 93.839507)\r\n\t\t\t\t(xy 92.939507 93.923391) (xy 92.880202 94.026109) (xy 92.880201 94.026114) (xy 92.8495 94.140691)\r\n\t\t\t\t(xy 74.0005 94.140691) (xy 74.0005 92.174034) (xy 76.7995 92.174034) (xy 76.7995 92.425965) (xy 76.838908 92.67478)\r\n\t\t\t\t(xy 76.916759 92.914379) (xy 77.02464 93.126109) (xy 77.03113 93.138845) (xy 77.179207 93.342656)\r\n\t\t\t\t(xy 77.357344 93.520793) (xy 77.561155 93.66887) (xy 77.785621 93.783241) (xy 78.025215 93.86109)\r\n\t\t\t\t(xy 78.025216 93.86109) (xy 78.025219 93.861091) (xy 78.274035 93.9005) (xy 78.274038 93.9005) (xy 78.525965 93.9005)\r\n\t\t\t\t(xy 78.77478 93.861091) (xy 78.774781 93.86109) (xy 78.774785 93.86109) (xy 79.014379 93.783241)\r\n\t\t\t\t(xy 79.238845 93.66887) (xy 79.442656 93.520793) (xy 79.620793 93.342656) (xy 79.767529 93.140691)\r\n\t\t\t\t(xy 114.1495 93.140691) (xy 114.1495 93.259309) (xy 114.170425 93.337402) (xy 114.180202 93.37389)\r\n\t\t\t\t(xy 114.239507 93.476608) (xy 114.239509 93.47661) (xy 114.239511 93.476613) (xy 114.323387 93.560489)\r\n\t\t\t\t(xy 114.323389 93.56049) (xy 114.323391 93.560492) (xy 114.42611 93.619797) (xy 114.426111 93.619797)\r\n\t\t\t\t(xy 114.426114 93.619799) (xy 114.540691 93.6505) (xy 114.540693 93.6505) (xy 114.659307 93.6505)\r\n\t\t\t\t(xy 114.659309 93.6505) (xy 114.773886 93.619799) (xy 114.773888 93.619797) (xy 114.77389 93.619797)\r\n\t\t\t\t(xy 114.876608 93.560492) (xy 114.876608 93.560491) (xy 114.876613 93.560489) (xy 114.960489 93.476613)\r\n\t\t\t\t(xy 114.962061 93.47389) (xy 115.019797 93.37389) (xy 115.019797 93.373888) (xy 115.019799 93.373886)\r\n\t\t\t\t(xy 115.0505 93.259309) (xy 115.0505 93.140691) (xy 115.5495 93.140691) (xy 115.5495 93.259309)\r\n\t\t\t\t(xy 115.570425 93.337402) (xy 115.580202 93.37389) (xy 115.639507 93.476608) (xy 115.639509 93.47661)\r\n\t\t\t\t(xy 115.639511 93.476613) (xy 115.723387 93.560489) (xy 115.723389 93.56049) (xy 115.723391 93.560492)\r\n\t\t\t\t(xy 115.82611 93.619797) (xy 115.826111 93.619797) (xy 115.826114 93.619799) (xy 115.940691 93.6505)\r\n\t\t\t\t(xy 115.940693 93.6505) (xy 116.059307 93.6505) (xy 116.059309 93.6505) (xy 116.173886 93.619799)\r\n\t\t\t\t(xy 116.173888 93.619797) (xy 116.17389 93.619797) (xy 116.276608 93.560492) (xy 116.276608 93.560491)\r\n\t\t\t\t(xy 116.276613 93.560489) (xy 116.360489 93.476613) (xy 116.362061 93.47389) (xy 116.419797 93.37389)\r\n\t\t\t\t(xy 116.419797 93.373888) (xy 116.419799 93.373886) (xy 116.4505 93.259309) (xy 116.4505 93.140691)\r\n\t\t\t\t(xy 116.419799 93.026114) (xy 116.419797 93.026111) (xy 116.419797 93.026109) (xy 116.360492 92.923391)\r\n\t\t\t\t(xy 116.36049 92.923389) (xy 116.360489 92.9' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'23387) (xy 116.276613 92.839511) (xy 116.27661 92.839509)\r\n\t\t\t\t(xy 116.276608 92.839507) (xy 116.173889 92.780202) (xy 116.17389 92.780202) (xy 116.150318 92.773886)\r\n\t\t\t\t(xy 116.059309 92.7495) (xy 115.940691 92.7495) (xy 115.870567 92.768289) (xy 115.826109 92.780202)\r\n\t\t\t\t(xy 115.723391 92.839507) (xy 115.639507 92.923391) (xy 115.580202 93.026109) (xy 115.580201 93.026114)\r\n\t\t\t\t(xy 115.5495 93.140691) (xy 115.0505 93.140691) (xy 115.019799 93.026114) (xy 115.019797 93.026111)\r\n\t\t\t\t(xy 115.019797 93.026109) (xy 114.960492 92.923391) (xy 114.96049 92.923389) (xy 114.960489 92.923387)\r\n\t\t\t\t(xy 114.876613 92.839511) (xy 114.87661 92.839509) (xy 114.876608 92.839507) (xy 114.773889 92.780202)\r\n\t\t\t\t(xy 114.77389 92.780202) (xy 114.750318 92.773886) (xy 114.659309 92.7495) (xy 114.540691 92.7495)\r\n\t\t\t\t(xy 114.470567 92.768289) (xy 114.426109 92.780202) (xy 114.323391 92.839507) (xy 114.239507 92.923391)\r\n\t\t\t\t(xy 114.180202 93.026109) (xy 114.180201 93.026114) (xy 114.1495 93.140691) (xy 79.767529 93.140691)\r\n\t\t\t\t(xy 79.76887 93.138845) (xy 79.883241 92.914379) (xy 79.96109 92.674785) (xy 79.961232 92.67389)\r\n\t\t\t\t(xy 79.987679 92.506911) (xy 93.061991 92.506911) (xy 93.061991 92.625529) (xy 93.086314 92.716304)\r\n\t\t\t\t(xy 93.092693 92.74011) (xy 93.151998 92.842828) (xy 93.152 92.84283) (xy 93.152002 92.842833) (xy 93.235878 92.926709)\r\n\t\t\t\t(xy 93.23588 92.92671) (xy 93.235882 92.926712) (xy 93.338601 92.986017) (xy 93.338602 92.986017)\r\n\t\t\t\t(xy 93.338605 92.986019) (xy 93.453182 93.01672) (xy 93.453184 93.01672) (xy 93.571798 93.01672)\r\n\t\t\t\t(xy 93.5718 93.01672) (xy 93.686377 92.986019) (xy 93.686379 92.986017) (xy 93.686381 92.986017)\r\n\t\t\t\t(xy 93.789099 92.926712) (xy 93.789099 92.926711) (xy 93.789104 92.926709) (xy 93.87298 92.842833)\r\n\t\t\t\t(xy 93.898045 92.799418) (xy 93.943513 92.758478) (xy 94.004363 92.752082) (xy 94.057352 92.782674)\r\n\t\t\t\t(xy 94.069517 92.799418) (xy 94.076445 92.811417) (xy 94.076448 92.811422) (xy 94.160324 92.895298)\r\n\t\t\t\t(xy 94.160326 92.895299) (xy 94.160328 92.895301) (xy 94.263047 92.954606) (xy 94.263048 92.954606)\r\n\t\t\t\t(xy 94.263051 92.954608) (xy 94.377628 92.985309) (xy 94.37763 92.985309) (xy 94.496244 92.985309)\r\n\t\t\t\t(xy 94.496246 92.985309) (xy 94.610823 92.954608) (xy 94.610825 92.954606) (xy 94.610827 92.954606)\r\n\t\t\t\t(xy 94.713545 92.895301) (xy 94.713545 92.8953) (xy 94.71355 92.895298) (xy 94.797426 92.811422)\r\n\t\t\t\t(xy 94.797429 92.811417) (xy 94.856734 92.708699) (xy 94.856734 92.708697) (xy 94.856736 92.708695)\r\n\t\t\t\t(xy 94.887437 92.594118) (xy 94.887437 92.540691) (xy 98.8495 92.540691) (xy 98.8495 92.659309)\r\n\t\t\t\t(xy 98.87115 92.740106) (xy 98.880202 92.77389) (xy 98.939507 92.876608) (xy 98.939509 92.87661)\r\n\t\t\t\t(xy 98.939511 92.876613) (xy 99.023387 92.960489) (xy 99.023389 92.96049) (xy 99.023391 92.960492)\r\n\t\t\t\t(xy 99.12611 93.019797) (xy 99.126111 93.019797) (xy 99.126114 93.019799) (xy 99.240691 93.0505)\r\n\t\t\t\t(xy 99.240693 93.0505) (xy 99.359307 93.0505) (xy 99.359309 93.0505) (xy 99.473886 93.019799) (xy 99.473888 93.019797)\r\n\t\t\t\t(xy 99.47389 93.019797) (xy 99.576608 92.960492) (xy 99.576608 92.960491) (xy 99.576613 92.960489)\r\n\t\t\t\t(xy 99.660489 92.876613) (xy 99.68191 92.839511) (xy 99.719797 92.77389) (xy 99.719797 92.773888)\r\n\t\t\t\t(xy 99.719799 92.773886) (xy 99.7505 92.659309) (xy 99.7505 92.540691) (xy 99.735071 92.483109)\r\n\t\t\t\t(xy 100.347985 92.483109) (xy 100.347985 92.601727) (xy 100.366225 92.669799) (xy 100.378687 92.716308)\r\n\t\t\t\t(xy 100.437992 92.819026) (xy 100.437994 92.819028) (xy 100.437996 92.819031) (xy 100.521872 92.902907)\r\n\t\t\t\t(xy 100.521874 92.902908) (xy 100.521876 92.90291) (xy 100.624595 92.962215) (xy 100.624596 92.962215)\r\n\t\t\t\t(xy 100.624599 92.962217) (xy 100.739176 92.992918) (xy 100.739178 92.992918) (xy 100.857792 92.992918)\r\n\t\t\t\t(xy 100.857794 92.992918) (xy 100.972371 92.962217) (xy 100.972373 92.962215) (xy 100.972375 92.962215)\r\n\t\t\t\t(xy 101.075093 92.90291) (xy 101.075093 92.902909) (xy 101.075098 92.902907) (xy 101.158974 92.819031)\r\n\t\t\t\t(xy 101.183467 92.776608) (xy 101.218282 92.716308) (xy 101.218282 92.716306) (xy 101.218284 92.716304)\r\n\t\t\t\t(xy 101.248985 92.601727) (xy 101.248985 92.483109) (xy 101.237619 92.440691) (xy 101.6495 92.440691)\r\n\t\t\t\t(xy 101.6495 92.559309) (xy 101.662531 92.60794) (xy 101.680202 92.67389) (xy 101.739507 92.776608)\r\n\t\t\t\t(xy 101.739509 92.77661) (xy 101.739511 92.776613) (xy 101.823387 92.860489) (xy 101.823389 92.86049)\r\n\t\t\t\t(xy 101.823391 92.860492) (xy 101.92611 92.919797) (xy 101.926111 92.919797) (xy 101.926114 92.919799)\r\n\t\t\t\t(xy 102.040691 92.9505) (xy 102.040693 92.9505) (xy 102.159307 92.9505) (xy 102.159309 92.9505)\r\n\t\t\t\t(xy 102.273886 92.919799) (xy 102.273888 92.919797) (xy 102.27389 92.919797) (xy 102.376608 92.860492)\r\n\t\t\t\t(xy 102.376608 92.860491) (xy 102.376613 92.860489) (xy 102.460489 92.776613) (xy 102.462061 92.77389)\r\n\t\t\t\t(xy 102.519797 92.67389) (xy 102.519797 92.673888) (xy 102.519799 92.673886) (xy 102.5505 92.559309)\r\n\t\t\t\t(xy 102.5505 92.540691) (xy 102.9495 92.540691) (xy 102.9495 92.659309) (xy 102.97115 92.740106)\r\n\t\t\t\t(xy 102.980202 92.77389) (xy 103.039507 92.876608) (xy 103.039509 92.87661) (xy 103.039511 92.876613)\r\n\t\t\t\t(xy 103.123387 92.960489) (xy 103.123389 92.96049) (xy 103.123391 92.960492) (xy 103.22611 93.019797)\r\n\t\t\t\t(xy 103.226111 93.019797) (xy 103.226114 93.019799) (xy 103.340691 93.0505) (xy 103.340693 93.0505)\r\n\t\t\t\t(xy 103.459307 93.0505) (xy 103.459309 93.0505) (xy 103.573886 93.019799) (xy 103.573888 93.019797)\r\n\t\t\t\t(xy 103.57389 93.019797) (xy 103.676608 92.960492) (xy 103.676608 92.960491) (xy 103.676613 92.960489)\r\n\t\t\t\t(xy 103.760489 92.876613) (xy 103.78191 92.839511) (xy 103.819797 92.77389) (xy 103.819797 92.773888)\r\n\t\t\t\t(xy 103.819799 92.773886) (xy 103.8505 92.659309) (xy 103.8505 92.540691) (xy 103.819799 92.426114)\r\n\t\t\t\t(xy 103.819797 92.426111) (xy 103.819797 92.426109) (xy 103.760492 92.323391) (xy 103.76049 92.323389)\r\n\t\t\t\t(xy 103.760489 92.323387) (xy 103.677793 92.240691) (xy 104.0495 92.240691) (xy 104.0495 92.359309)\r\n\t\t\t\t(xy 104.073935 92.4505) (xy 104.080202 92.47389) (xy 104.139507 92.576608) (xy 104.139509 92.57661)\r\n\t\t\t\t(xy 104.139511 92.576613) (xy 104.223387 92.660489) (xy 104.223389 92.66049) (xy 104.223391 92.660492)\r\n\t\t\t\t(xy 104.32611 92.719797) (xy 104.326111 92.719797) (xy 104.326114 92.719799) (xy 104.440691 92.7505)\r\n\t\t\t\t(xy 104.440693 92.7505) (xy 104.559307 92.7505) (xy 104.559309 92.7505) (xy 104.673886 92.719799)\r\n\t\t\t\t(xy 104.673888 92.719797) (xy 104.67389 92.719797) (xy 104.776608 92.660492) (xy 104.776608 92.660491)\r\n\t\t\t\t(xy 104.776613 92.660489) (xy 104.829163 92.607938) (xy 104.883677 92.580162) (xy 104.944109 92.589733)\r\n\t\t\t\t(xy 104.969164 92.607935) (xy 104.971715 92.610486) (xy 104.971723 92.610492) (xy 105.074442 92.669797)\r\n\t\t\t\t(xy 105.074443 92.669797) (xy 105.074446 92.669799) (xy 105.189023 92.7005) (xy 105.189025 92.7005)\r\n\t\t\t\t(xy 105.307639 92.7005) (xy 105.307641 92.7005) (xy 105.422218 92.669799) (xy 105.42222 92.669797)\r\n\t\t\t\t(xy 105.422222 92.669797) (xy 105.52494 92.610492) (xy 105.52494 92.610491) (xy 105.524945 92.610489)\r\n\t\t\t\t(xy 105.608821 92.526613) (xy 105.608824 92.526608) (xy 105.668129 92.42389) (xy 105.668129 92.423888)\r\n\t\t\t\t(xy 105.668131 92.423886) (xy 105.698832 92.309309) (xy 105.698832 92.190691) (xy 105.668131 92.076114)\r\n\t\t\t\t(xy 105.668129 92.076111) (xy 105.668129 92.076109) (xy 105.608824 91.973391) (xy 105.608822 91.973389)\r\n\t\t\t\t(xy 105.608821 91.973387) (xy 105.524945 91.889511) (xy 105.524942 91.889509) (xy 105.52494 91.889507)\r\n\t\t\t\t(xy 105.422221 91.830202) (xy 105.422222 91.830202) (xy 105.380068 91.818907) (xy 105.307641 91.7995)\r\n\t\t\t\t(xy 105.189023 91.7995) (xy 105.118899 91.818289) (xy 105.074441 91.830202) (xy 104.971723 91.889507)\r\n\t\t\t\t(xy 104.971718 91.889511) (xy 104.919169 91.94206) (xy 104.864652 91.969837) (xy 104.80422 91.960265)\r\n\t\t\t\t(xy 104.779167 91.942064) (xy 104.776616 91.939513) (xy 104.776608 91.939507) (xy 104.673889 91.880202)\r\n\t\t\t\t(xy 104.67389 91.880202) (xy 104.654935 91.875123) (xy 104.559309 91.8495) (xy 104.440691 91.8495)\r\n\t\t\t\t(xy 104.370567 91.868289) (xy 104.326109 91.880202) (xy 104.223391 91.939507) (xy 104.139507 92.023391)\r\n\t\t\t\t(xy 104.080202 92.126109) (xy 104.067401 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'92.173885) (xy 104.0495 92.240691) (xy 103.677793 92.240691)\r\n\t\t\t\t(xy 103.676613 92.239511) (xy 103.67661 92.239509) (xy 103.676608 92.239507) (xy 103.573889 92.180202)\r\n\t\t\t\t(xy 103.57389 92.180202) (xy 103.551923 92.174316) (xy 103.459309 92.1495) (xy 103.340691 92.1495)\r\n\t\t\t\t(xy 103.270567 92.168289) (xy 103.226109 92.180202) (xy 103.123391 92.239507) (xy 103.039507 92.323391)\r\n\t\t\t\t(xy 102.980202 92.426109) (xy 102.9674 92.473886) (xy 102.9495 92.540691) (xy 102.5505 92.540691)\r\n\t\t\t\t(xy 102.5505 92.440691) (xy 102.519799 92.326114) (xy 102.519797 92.326111) (xy 102.519797 92.326109)\r\n\t\t\t\t(xy 102.460492 92.223391) (xy 102.46049 92.223389) (xy 102.460489 92.223387) (xy 102.376613 92.139511)\r\n\t\t\t\t(xy 102.37661 92.139509) (xy 102.376608 92.139507) (xy 102.273889 92.080202) (xy 102.27389 92.080202)\r\n\t\t\t\t(xy 102.258615 92.076109) (xy 102.159309 92.0495) (xy 102.040691 92.0495) (xy 102.004084 92.059309)\r\n\t\t\t\t(xy 101.926109 92.080202) (xy 101.823391 92.139507) (xy 101.739507 92.223391) (xy 101.680202 92.326109)\r\n\t\t\t\t(xy 101.674083 92.348945) (xy 101.6495 92.440691) (xy 101.237619 92.440691) (xy 101.218284 92.368532)\r\n\t\t\t\t(xy 101.213888 92.360918) (xy 101.158977 92.265809) (xy 101.158975 92.265807) (xy 101.158974 92.265805)\r\n\t\t\t\t(xy 101.075098 92.181929) (xy 101.075095 92.181927) (xy 101.075093 92.181925) (xy 100.972374 92.12262)\r\n\t\t\t\t(xy 100.972375 92.12262) (xy 100.958836 92.118992) (xy 100.857794 92.091918) (xy 100.739176 92.091918)\r\n\t\t\t\t(xy 100.669052 92.110707) (xy 100.624594 92.12262) (xy 100.521876 92.181925) (xy 100.437992 92.265809)\r\n\t\t\t\t(xy 100.378687 92.368527) (xy 100.363296 92.425968) (xy 100.347985 92.483109) (xy 99.735071 92.483109)\r\n\t\t\t\t(xy 99.719799 92.426114) (xy 99.719797 92.426111) (xy 99.719797 92.426109) (xy 99.660492 92.323391)\r\n\t\t\t\t(xy 99.66049 92.323389) (xy 99.660489 92.323387) (xy 99.576613 92.239511) (xy 99.57661 92.239509)\r\n\t\t\t\t(xy 99.576608 92.239507) (xy 99.473889 92.180202) (xy 99.47389 92.180202) (xy 99.451923 92.174316)\r\n\t\t\t\t(xy 99.359309 92.1495) (xy 99.240691 92.1495) (xy 99.170567 92.168289) (xy 99.126109 92.180202)\r\n\t\t\t\t(xy 99.023391 92.239507) (xy 98.939507 92.323391) (xy 98.880202 92.426109) (xy 98.8674 92.473886)\r\n\t\t\t\t(xy 98.8495 92.540691) (xy 94.887437 92.540691) (xy 94.887437 92.4755) (xy 94.856736 92.360923)\r\n\t\t\t\t(xy 94.856734 92.36092) (xy 94.856734 92.360918) (xy 94.797429 92.2582) (xy 94.797427 92.258198)\r\n\t\t\t\t(xy 94.797426 92.258196) (xy 94.71355 92.17432) (xy 94.713547 92.174318) (xy 94.713545 92.174316)\r\n\t\t\t\t(xy 94.610826 92.115011) (xy 94.610827 92.115011) (xy 94.595772 92.110977) (xy 94.496246 92.084309)\r\n\t\t\t\t(xy 94.377628 92.084309) (xy 94.307504 92.103098) (xy 94.263046 92.115011) (xy 94.160328 92.174316)\r\n\t\t\t\t(xy 94.076446 92.258198) (xy 94.051382 92.30161) (xy 94.005912 92.34255) (xy 93.945062 92.348945)\r\n\t\t\t\t(xy 93.892074 92.318352) (xy 93.879909 92.301609) (xy 93.872982 92.289611) (xy 93.87298 92.289607)\r\n\t\t\t\t(xy 93.789104 92.205731) (xy 93.789101 92.205729) (xy 93.789099 92.205727) (xy 93.68638 92.146422)\r\n\t\t\t\t(xy 93.686381 92.146422) (xy 93.672842 92.142794) (xy 93.5718 92.11572) (xy 93.453182 92.11572)\r\n\t\t\t\t(xy 93.383058 92.134509) (xy 93.3386 92.146422) (xy 93.235882 92.205727) (xy 93.151998 92.289611)\r\n\t\t\t\t(xy 93.092693 92.392329) (xy 93.079735 92.440691) (xy 93.061991 92.506911) (xy 79.987679 92.506911)\r\n\t\t\t\t(xy 79.99116 92.484935) (xy 80.0005 92.425965) (xy 80.0005 92.174034) (xy 79.961091 91.925219) (xy 79.96109 91.925215)\r\n\t\t\t\t(xy 79.883241 91.685621) (xy 79.76887 91.461155) (xy 79.620793 91.257344) (xy 79.442656 91.079207)\r\n\t\t\t\t(xy 79.389643 91.040691) (xy 90.0495 91.040691) (xy 90.0495 91.159309) (xy 90.071306 91.240691)\r\n\t\t\t\t(xy 90.080202 91.27389) (xy 90.139507 91.376608) (xy 90.139509 91.37661) (xy 90.139511 91.376613)\r\n\t\t\t\t(xy 90.223387 91.460489) (xy 90.223389 91.46049) (xy 90.223391 91.460492) (xy 90.32611 91.519797)\r\n\t\t\t\t(xy 90.326111 91.519797) (xy 90.326114 91.519799) (xy 90.440691 91.5505) (xy 90.440693 91.5505)\r\n\t\t\t\t(xy 90.559307 91.5505) (xy 90.559309 91.5505) (xy 90.673886 91.519799) (xy 90.673888 91.519797)\r\n\t\t\t\t(xy 90.67389 91.519797) (xy 90.776608 91.460492) (xy 90.776608 91.460491) (xy 90.776613 91.460489)\r\n\t\t\t\t(xy 90.860489 91.376613) (xy 90.918225 91.276613) (xy 90.919797 91.27389) (xy 90.919797 91.273888)\r\n\t\t\t\t(xy 90.919799 91.273886) (xy 90.9505 91.159309) (xy 90.9505 91.040691) (xy 90.923705 90.940691)\r\n\t\t\t\t(xy 101.7495 90.940691) (xy 101.7495 91.059309) (xy 101.776295 91.159307) (xy 101.780202 91.17389)\r\n\t\t\t\t(xy 101.839507 91.276608) (xy 101.839509 91.27661) (xy 101.839511 91.276613) (xy 101.923387 91.360489)\r\n\t\t\t\t(xy 101.923389 91.36049) (xy 101.923391 91.360492) (xy 102.02611 91.419797) (xy 102.026111 91.419797)\r\n\t\t\t\t(xy 102.026114 91.419799) (xy 102.140691 91.4505) (xy 102.140693 91.4505) (xy 102.259307 91.4505)\r\n\t\t\t\t(xy 102.259309 91.4505) (xy 102.373886 91.419799) (xy 102.373888 91.419797) (xy 102.37389 91.419797)\r\n\t\t\t\t(xy 102.476608 91.360492) (xy 102.476608 91.360491) (xy 102.476613 91.360489) (xy 102.560489 91.276613)\r\n\t\t\t\t(xy 102.562061 91.27389) (xy 102.581229 91.240691) (xy 106.0495 91.240691) (xy 106.0495 91.359309)\r\n\t\t\t\t(xy 106.067069 91.424877) (xy 106.080202 91.47389) (xy 106.139507 91.576608) (xy 106.139509 91.57661)\r\n\t\t\t\t(xy 106.139511 91.576613) (xy 106.223387 91.660489) (xy 106.223389 91.66049) (xy 106.223391 91.660492)\r\n\t\t\t\t(xy 106.32611 91.719797) (xy 106.326111 91.719797) (xy 106.326114 91.719799) (xy 106.440691 91.7505)\r\n\t\t\t\t(xy 106.440693 91.7505) (xy 106.471442 91.7505) (xy 106.529633 91.769407) (xy 106.565597 91.818907)\r\n\t\t\t\t(xy 106.567068 91.875122) (xy 106.5495 91.940691) (xy 106.5495 92.059309) (xy 106.570989 92.139507)\r\n\t\t\t\t(xy 106.580202 92.17389) (xy 106.639507 92.276608) (xy 106.639509 92.27661) (xy 106.639511 92.276613)\r\n\t\t\t\t(xy 106.723387 92.360489) (xy 106.723389 92.36049) (xy 106.723391 92.360492) (xy 106.82611 92.419797)\r\n\t\t\t\t(xy 106.826111 92.419797) (xy 106.826114 92.419799) (xy 106.940691 92.4505) (xy 106.940693 92.4505)\r\n\t\t\t\t(xy 107.059307 92.4505) (xy 107.059309 92.4505) (xy 107.173886 92.419799) (xy 107.173888 92.419797)\r\n\t\t\t\t(xy 107.17389 92.419797) (xy 107.276608 92.360492) (xy 107.276608 92.360491) (xy 107.276613 92.360489)\r\n\t\t\t\t(xy 107.360489 92.276613) (xy 107.419714 92.174034) (xy 124.7995 92.174034) (xy 124.7995 92.425965)\r\n\t\t\t\t(xy 124.838908 92.67478) (xy 124.916759 92.914379) (xy 125.02464 93.126109) (xy 125.03113 93.138845)\r\n\t\t\t\t(xy 125.179207 93.342656) (xy 125.357344 93.520793) (xy 125.561155 93.66887) (xy 125.785621 93.783241)\r\n\t\t\t\t(xy 126.025215 93.86109) (xy 126.025216 93.86109) (xy 126.025219 93.861091) (xy 126.274035 93.9005)\r\n\t\t\t\t(xy 126.274038 93.9005) (xy 126.525965 93.9005) (xy 126.77478 93.861091) (xy 126.774781 93.86109)\r\n\t\t\t\t(xy 126.774785 93.86109) (xy 127.014379 93.783241) (xy 127.238845 93.66887) (xy 127.442656 93.520793)\r\n\t\t\t\t(xy 127.620793 93.342656) (xy 127.694875 93.240691) (xy 129.0495 93.240691) (xy 129.0495 93.359309)\r\n\t\t\t\t(xy 129.076574 93.460351) (xy 129.080202 93.47389) (xy 129.139507 93.576608) (xy 129.139509 93.57661)\r\n\t\t\t\t(xy 129.139511 93.576613) (xy 129.223387 93.660489) (xy 129.223389 93.66049) (xy 129.223391 93.660492)\r\n\t\t\t\t(xy 129.32611 93.719797) (xy 129.326111 93.719797) (xy 129.326114 93.719799) (xy 129.440691 93.7505)\r\n\t\t\t\t(xy 129.440693 93.7505) (xy 129.559307 93.7505) (xy 129.559309 93.7505) (xy 129.630098 93.731532)\r\n\t\t\t\t(xy 134.8995 93.731532) (xy 134.8995 93.938467) (xy 134.939869 94.141418) (xy 135.019058 94.332597)\r\n\t\t\t\t(xy 135.13402 94.504651) (xy 135.134023 94.504655) (xy 135.280345 94.650977) (xy 135.452402 94.765941)\r\n\t\t\t\t(xy 135.64358 94.84513) (xy 135.846535 94.8855) (xy 135.846536 94.8855) (xy 136.053464 94.8855)\r\n\t\t\t\t(xy 136.053465 94.8855) (xy 136.25642 94.84513) (xy 136.447598 94.765941) (xy 136.619655 94.650977)\r\n\t\t\t\t(xy 136.765977 94.504655) (xy 136.880941 94.332598) (xy 136.96013 94.14142) (xy 137.0005 93.938465)\r\n\t\t\t\t(xy 137.0005 93.731535) (xy 136.96013 93.52858) (xy 136.880941 93.337402) (xy 136.765977 93.165345)\r\n\t\t\t\t(xy 136.619655 93.019023) (xy 136.619651 93.01902) (xy 136.447597 92.904058) (xy 136.256418 92.824869)\r\n\t\t\t\t(xy 136.053467 92.7845) (xy 136.053465 92.7845) (xy 135.846535 92.7845) (xy 135.846532 92.7845)\r\n\t\t\t\t(xy 135.643581 ' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'92.824869) (xy 135.452402 92.904058) (xy 135.280348 93.01902) (xy 135.13402 93.165348)\r\n\t\t\t\t(xy 135.019058 93.337402) (xy 134.939869 93.528581) (xy 134.8995 93.731532) (xy 129.630098 93.731532)\r\n\t\t\t\t(xy 129.673886 93.719799) (xy 129.673888 93.719797) (xy 129.67389 93.719797) (xy 129.776608 93.660492)\r\n\t\t\t\t(xy 129.776608 93.660491) (xy 129.776613 93.660489) (xy 129.860489 93.576613) (xy 129.892717 93.520793)\r\n\t\t\t\t(xy 129.919797 93.47389) (xy 129.919797 93.473888) (xy 129.919799 93.473886) (xy 129.9505 93.359309)\r\n\t\t\t\t(xy 129.9505 93.240691) (xy 129.919799 93.126114) (xy 129.919797 93.126111) (xy 129.919797 93.126109)\r\n\t\t\t\t(xy 129.860492 93.023391) (xy 129.86049 93.023389) (xy 129.860489 93.023387) (xy 129.776613 92.939511)\r\n\t\t\t\t(xy 129.77661 92.939509) (xy 129.776608 92.939507) (xy 129.673889 92.880202) (xy 129.67389 92.880202)\r\n\t\t\t\t(xy 129.641115 92.87142) (xy 129.559309 92.8495) (xy 129.440691 92.8495) (xy 129.399669 92.860492)\r\n\t\t\t\t(xy 129.326109 92.880202) (xy 129.223391 92.939507) (xy 129.139507 93.023391) (xy 129.080202 93.126109)\r\n\t\t\t\t(xy 129.076295 93.140691) (xy 129.0495 93.240691) (xy 127.694875 93.240691) (xy 127.76887 93.138845)\r\n\t\t\t\t(xy 127.883241 92.914379) (xy 127.96109 92.674785) (xy 127.961232 92.67389) (xy 127.994867 92.461532)\r\n\t\t\t\t(xy 132.3595 92.461532) (xy 132.3595 92.668467) (xy 132.399869 92.871418) (xy 132.479058 93.062597)\r\n\t\t\t\t(xy 132.59402 93.234651) (xy 132.594023 93.234655) (xy 132.740345 93.380977) (xy 132.912402 93.495941)\r\n\t\t\t\t(xy 133.10358 93.57513) (xy 133.306535 93.6155) (xy 133.306536 93.6155) (xy 133.513464 93.6155)\r\n\t\t\t\t(xy 133.513465 93.6155) (xy 133.71642 93.57513) (xy 133.907598 93.495941) (xy 134.079655 93.380977)\r\n\t\t\t\t(xy 134.225977 93.234655) (xy 134.340941 93.062598) (xy 134.42013 92.87142) (xy 134.4605 92.668465)\r\n\t\t\t\t(xy 134.4605 92.461535) (xy 134.42013 92.25858) (xy 134.340941 92.067402) (xy 134.225977 91.895345)\r\n\t\t\t\t(xy 134.079655 91.749023) (xy 133.984767 91.685621) (xy 133.907597 91.634058) (xy 133.716418 91.554869)\r\n\t\t\t\t(xy 133.513467 91.5145) (xy 133.513465 91.5145) (xy 133.306535 91.5145) (xy 133.306532 91.5145)\r\n\t\t\t\t(xy 133.103581 91.554869) (xy 132.912402 91.634058) (xy 132.740348 91.74902) (xy 132.59402 91.895348)\r\n\t\t\t\t(xy 132.479058 92.067402) (xy 132.399869 92.258581) (xy 132.3595 92.461532) (xy 127.994867 92.461532)\r\n\t\t\t\t(xy 127.99809 92.441184) (xy 127.99809 92.441183) (xy 128.000499 92.425968) (xy 128.0005 92.425966)\r\n\t\t\t\t(xy 128.0005 92.174034) (xy 127.961091 91.925219) (xy 127.96109 91.925215) (xy 127.883241 91.685621)\r\n\t\t\t\t(xy 127.76887 91.461155) (xy 127.620793 91.257344) (xy 127.554981 91.191532) (xy 134.8995 91.191532)\r\n\t\t\t\t(xy 134.8995 91.398467) (xy 134.939869 91.601418) (xy 135.019058 91.792597) (xy 135.13402 91.964651)\r\n\t\t\t\t(xy 135.134023 91.964655) (xy 135.280345 92.110977) (xy 135.452402 92.225941) (xy 135.64358 92.30513)\r\n\t\t\t\t(xy 135.846535 92.3455) (xy 135.846536 92.3455) (xy 136.053464 92.3455) (xy 136.053465 92.3455)\r\n\t\t\t\t(xy 136.25642 92.30513) (xy 136.447598 92.225941) (xy 136.619655 92.110977) (xy 136.765977 91.964655)\r\n\t\t\t\t(xy 136.880941 91.792598) (xy 136.96013 91.60142) (xy 137.0005 91.398465) (xy 137.0005 91.191535)\r\n\t\t\t\t(xy 136.96013 90.98858) (xy 136.880941 90.797402) (xy 136.765977 90.625345) (xy 136.619655 90.479023)\r\n\t\t\t\t(xy 136.447598 90.364059) (xy 136.447599 90.364059) (xy 136.447597 90.364058) (xy 136.256418 90.284869)\r\n\t\t\t\t(xy 136.053467 90.2445) (xy 136.053465 90.2445) (xy 135.846535 90.2445) (xy 135.846532 90.2445)\r\n\t\t\t\t(xy 135.643581 90.284869) (xy 135.452402 90.364058) (xy 135.280348 90.47902) (xy 135.13402 90.625348)\r\n\t\t\t\t(xy 135.019058 90.797402) (xy 134.939869 90.988581) (xy 134.8995 91.191532) (xy 127.554981 91.191532)\r\n\t\t\t\t(xy 127.442656 91.079207) (xy 127.238845 90.93113) (xy 127.238844 90.931129) (xy 127.238842 90.931128)\r\n\t\t\t\t(xy 127.014379 90.816759) (xy 126.77478 90.738908) (xy 126.525965 90.6995) (xy 126.525962 90.6995)\r\n\t\t\t\t(xy 126.274038 90.6995) (xy 126.274035 90.6995) (xy 126.025219 90.738908) (xy 125.78562 90.816759)\r\n\t\t\t\t(xy 125.561157 90.931128) (xy 125.357345 91.079206) (xy 125.179206 91.257345) (xy 125.031128 91.461157)\r\n\t\t\t\t(xy 124.916759 91.68562) (xy 124.838908 91.925219) (xy 124.7995 92.174034) (xy 107.419714 92.174034)\r\n\t\t\t\t(xy 107.419799 92.173886) (xy 107.4505 92.059309) (xy 107.4505 91.940691) (xy 107.419799 91.826114)\r\n\t\t\t\t(xy 107.419797 91.826111) (xy 107.419797 91.826109) (xy 107.360492 91.723391) (xy 107.36049 91.723389)\r\n\t\t\t\t(xy 107.360489 91.723387) (xy 107.276613 91.639511) (xy 107.27661 91.639509) (xy 107.276608 91.639507)\r\n\t\t\t\t(xy 107.173889 91.580202) (xy 107.17389 91.580202) (xy 107.13567 91.569961) (xy 107.059309 91.5495)\r\n\t\t\t\t(xy 107.028558 91.5495) (xy 106.970367 91.530593) (xy 106.934403 91.481093) (xy 106.932931 91.424877)\r\n\t\t\t\t(xy 106.934292 91.419797) (xy 106.9505 91.359309) (xy 106.9505 91.240691) (xy 106.919799 91.126114)\r\n\t\t\t\t(xy 106.919797 91.126111) (xy 106.919797 91.126109) (xy 106.860492 91.023391) (xy 106.86049 91.023389)\r\n\t\t\t\t(xy 106.860489 91.023387) (xy 106.776613 90.939511) (xy 106.77661 90.939509) (xy 106.776608 90.939507)\r\n\t\t\t\t(xy 106.673889 90.880202) (xy 106.67389 90.880202) (xy 106.660351 90.876574) (xy 106.559309 90.8495)\r\n\t\t\t\t(xy 106.440691 90.8495) (xy 106.370567 90.868289) (xy 106.326109 90.880202) (xy 106.223391 90.939507)\r\n\t\t\t\t(xy 106.139507 91.023391) (xy 106.080202 91.126109) (xy 106.080201 91.126114) (xy 106.0495 91.240691)\r\n\t\t\t\t(xy 102.581229 91.240691) (xy 102.613555 91.184702) (xy 102.613555 91.184701) (xy 102.614214 91.183558)\r\n\t\t\t\t(xy 102.619799 91.173886) (xy 102.6505 91.059309) (xy 102.6505 90.940691) (xy 102.619799 90.826114)\r\n\t\t\t\t(xy 102.619797 90.826111) (xy 102.619797 90.826109) (xy 102.560492 90.723391) (xy 102.56049 90.723389)\r\n\t\t\t\t(xy 102.560489 90.723387) (xy 102.476613 90.639511) (xy 102.47661 90.639509) (xy 102.476608 90.639507)\r\n\t\t\t\t(xy 102.373889 90.580202) (xy 102.37389 90.580202) (xy 102.360351 90.576574) (xy 102.259309 90.5495)\r\n\t\t\t\t(xy 102.140691 90.5495) (xy 102.070567 90.568289) (xy 102.026109 90.580202) (xy 101.923391 90.639507)\r\n\t\t\t\t(xy 101.839507 90.723391) (xy 101.780202 90.826109) (xy 101.765708 90.880201) (xy 101.7495 90.940691)\r\n\t\t\t\t(xy 90.923705 90.940691) (xy 90.919799 90.926114) (xy 90.919796 90.926109) (xy 90.860492 90.823391)\r\n\t\t\t\t(xy 90.86049 90.823389) (xy 90.860489 90.823387) (xy 90.776613 90.739511) (xy 90.77661 90.739509)\r\n\t\t\t\t(xy 90.776608 90.739507) (xy 90.673889 90.680202) (xy 90.67389 90.680202) (xy 90.660351 90.676574)\r\n\t\t\t\t(xy 90.559309 90.6495) (xy 90.440691 90.6495) (xy 90.370567 90.668289) (xy 90.326109 90.680202)\r\n\t\t\t\t(xy 90.223391 90.739507) (xy 90.139507 90.823391) (xy 90.080202 90.926109) (xy 90.080201 90.926114)\r\n\t\t\t\t(xy 90.0495 91.040691) (xy 79.389643 91.040691) (xy 79.238845 90.93113) (xy 79.238844 90.931129)\r\n\t\t\t\t(xy 79.238842 90.931128) (xy 79.014379 90.816759) (xy 78.77478 90.738908) (xy 78.525965 90.6995)\r\n\t\t\t\t(xy 78.525962 90.6995) (xy 78.274038 90.6995) (xy 78.274035 90.6995) (xy 78.025219 90.738908) (xy 77.78562 90.816759)\r\n\t\t\t\t(xy 77.561157 90.931128) (xy 77.357345 91.079206) (xy 77.179206 91.257345) (xy 77.031128 91.461157)\r\n\t\t\t\t(xy 76.916759 91.68562) (xy 76.838908 91.925219) (xy 76.7995 92.174034) (xy 74.0005 92.174034) (xy 74.0005 89.921532)\r\n\t\t\t\t(xy 132.3595 89.921532) (xy 132.3595 90.128467) (xy 132.399869 90.331418) (xy 132.479058 90.522597)\r\n\t\t\t\t(xy 132.584365 90.680201) (xy 132.594023 90.694655) (xy 132.740345 90.840977) (xy 132.912402 90.955941)\r\n\t\t\t\t(xy 133.10358 91.03513) (xy 133.306535 91.0755) (xy 133.306536 91.0755) (xy 133.513464 91.0755)\r\n\t\t\t\t(xy 133.513465 91.0755) (xy 133.71642 91.03513) (xy 133.907598 90.955941) (xy 134.079655 90.840977)\r\n\t\t\t\t(xy 134.225977 90.694655) (xy 134.340941 90.522598) (xy 134.42013 90.33142) (xy 134.4605 90.128465)\r\n\t\t\t\t(xy 134.4605 89.921535) (xy 134.444419 89.840691) (xy 144.7495 89.840691) (xy 144.7495 89.959309)\r\n\t\t\t\t(xy 144.776574 90.060351) (xy 144.780202 90.07389) (xy 144.839507 90.176608) (xy 144.839509 90.17661)\r\n\t\t\t\t(xy 144.839511 90.176613) (xy 144.923387 90.260489) (xy 144.923389 90.26049) (xy 144.923391 90.260492)\r\n\t\t\t\t(xy 145.02611 90.319797) (xy 145.026111 90.319797) (xy 145.026114 90.319799) (xy 145.140691 90.3505)\r\n\t\t\t\t(xy 145.140693 90.35' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'05) (xy 145.259307 90.3505) (xy 145.259309 90.3505) (xy 145.373886 90.319799)\r\n\t\t\t\t(xy 145.373888 90.319797) (xy 145.37389 90.319797) (xy 145.476608 90.260492) (xy 145.476608 90.260491)\r\n\t\t\t\t(xy 145.476613 90.260489) (xy 145.560489 90.176613) (xy 145.560492 90.176608) (xy 145.619797 90.07389)\r\n\t\t\t\t(xy 145.619797 90.073888) (xy 145.619799 90.073886) (xy 145.6505 89.959309) (xy 145.6505 89.840691)\r\n\t\t\t\t(xy 145.619799 89.726114) (xy 145.619797 89.726111) (xy 145.619797 89.726109) (xy 145.560492 89.623391)\r\n\t\t\t\t(xy 145.56049 89.623389) (xy 145.560489 89.623387) (xy 145.476613 89.539511) (xy 145.47661 89.539509)\r\n\t\t\t\t(xy 145.476608 89.539507) (xy 145.373889 89.480202) (xy 145.37389 89.480202) (xy 145.360351 89.476574)\r\n\t\t\t\t(xy 145.259309 89.4495) (xy 145.140691 89.4495) (xy 145.070567 89.468289) (xy 145.026109 89.480202)\r\n\t\t\t\t(xy 144.923391 89.539507) (xy 144.839507 89.623391) (xy 144.780202 89.726109) (xy 144.763037 89.790169)\r\n\t\t\t\t(xy 144.7495 89.840691) (xy 134.444419 89.840691) (xy 134.42013 89.71858) (xy 134.340941 89.527402)\r\n\t\t\t\t(xy 134.225977 89.355345) (xy 134.079655 89.209023) (xy 134.052221 89.190692) (xy 133.907597 89.094058)\r\n\t\t\t\t(xy 133.716418 89.014869) (xy 133.513467 88.9745) (xy 133.513465 88.9745) (xy 133.306535 88.9745)\r\n\t\t\t\t(xy 133.306532 88.9745) (xy 133.103581 89.014869) (xy 132.912402 89.094058) (xy 132.740348 89.20902)\r\n\t\t\t\t(xy 132.59402 89.355348) (xy 132.479058 89.527402) (xy 132.399869 89.718581) (xy 132.3595 89.921532)\r\n\t\t\t\t(xy 74.0005 89.921532) (xy 74.0005 88.840691) (xy 79.5495 88.840691) (xy 79.5495 88.959309) (xy 79.573202 89.047764)\r\n\t\t\t\t(xy 79.580202 89.07389) (xy 79.639507 89.176608) (xy 79.639509 89.17661) (xy 79.639511 89.176613)\r\n\t\t\t\t(xy 79.723387 89.260489) (xy 79.723389 89.26049) (xy 79.723391 89.260492) (xy 79.82611 89.319797)\r\n\t\t\t\t(xy 79.826111 89.319797) (xy 79.826114 89.319799) (xy 79.940691 89.3505) (xy 79.940693 89.3505)\r\n\t\t\t\t(xy 80.059307 89.3505) (xy 80.059309 89.3505) (xy 80.173886 89.319799) (xy 80.173888 89.319797)\r\n\t\t\t\t(xy 80.17389 89.319797) (xy 80.276608 89.260492) (xy 80.276608 89.260491) (xy 80.276613 89.260489)\r\n\t\t\t\t(xy 80.346411 89.190691) (xy 94.0495 89.190691) (xy 94.0495 89.309309) (xy 94.066805 89.37389) (xy 94.080202 89.42389)\r\n\t\t\t\t(xy 94.139507 89.526608) (xy 94.139509 89.52661) (xy 94.139511 89.526613) (xy 94.223387 89.610489)\r\n\t\t\t\t(xy 94.223389 89.61049) (xy 94.223391 89.610492) (xy 94.32611 89.669797) (xy 94.326111 89.669797)\r\n\t\t\t\t(xy 94.326114 89.669799) (xy 94.440691 89.7005) (xy 94.440693 89.7005) (xy 94.559307 89.7005) (xy 94.559309 89.7005)\r\n\t\t\t\t(xy 94.673886 89.669799) (xy 94.673888 89.669797) (xy 94.67389 89.669797) (xy 94.776608 89.610492)\r\n\t\t\t\t(xy 94.776608 89.610491) (xy 94.776613 89.610489) (xy 94.860489 89.526613) (xy 94.919355 89.424655)\r\n\t\t\t\t(xy 94.919797 89.42389) (xy 94.919797 89.423888) (xy 94.919799 89.423886) (xy 94.9505 89.309309)\r\n\t\t\t\t(xy 94.9505 89.190691) (xy 99.7495 89.190691) (xy 99.7495 89.309309) (xy 99.766805 89.37389) (xy 99.780202 89.42389)\r\n\t\t\t\t(xy 99.839507 89.526608) (xy 99.839509 89.52661) (xy 99.839511 89.526613) (xy 99.923387 89.610489)\r\n\t\t\t\t(xy 99.923389 89.61049) (xy 99.923391 89.610492) (xy 100.02611 89.669797) (xy 100.026111 89.669797)\r\n\t\t\t\t(xy 100.026114 89.669799) (xy 100.140691 89.7005) (xy 100.140693 89.7005) (xy 100.259307 89.7005)\r\n\t\t\t\t(xy 100.259309 89.7005) (xy 100.373886 89.669799) (xy 100.373888 89.669797) (xy 100.37389 89.669797)\r\n\t\t\t\t(xy 100.476608 89.610492) (xy 100.476608 89.610491) (xy 100.476613 89.610489) (xy 100.560489 89.526613)\r\n\t\t\t\t(xy 100.619355 89.424655) (xy 100.619797 89.42389) (xy 100.619797 89.423888) (xy 100.619799 89.423886)\r\n\t\t\t\t(xy 100.6505 89.309309) (xy 100.6505 89.190691) (xy 100.637102 89.140691) (xy 103.2495 89.140691)\r\n\t\t\t\t(xy 103.2495 89.259309) (xy 103.273935 89.3505) (xy 103.280202 89.37389) (xy 103.339507 89.476608)\r\n\t\t\t\t(xy 103.339509 89.47661) (xy 103.339511 89.476613) (xy 103.423387 89.560489) (xy 103.423389 89.56049)\r\n\t\t\t\t(xy 103.423391 89.560492) (xy 103.52611 89.619797) (xy 103.526111 89.619797) (xy 103.526114 89.619799)\r\n\t\t\t\t(xy 103.640691 89.6505) (xy 103.640693 89.6505) (xy 103.759307 89.6505) (xy 103.759309 89.6505)\r\n\t\t\t\t(xy 103.873886 89.619799) (xy 103.873888 89.619797) (xy 103.87389 89.619797) (xy 103.976608 89.560492)\r\n\t\t\t\t(xy 103.976608 89.560491) (xy 103.976613 89.560489) (xy 104.060489 89.476613) (xy 104.119799 89.373886)\r\n\t\t\t\t(xy 104.1505 89.259309) (xy 104.1505 89.140691) (xy 105.2495 89.140691) (xy 105.2495 89.259309)\r\n\t\t\t\t(xy 105.273935 89.3505) (xy 105.280202 89.37389) (xy 105.339507 89.476608) (xy 105.339509 89.47661)\r\n\t\t\t\t(xy 105.339511 89.476613) (xy 105.423387 89.560489) (xy 105.423389 89.56049) (xy 105.423391 89.560492)\r\n\t\t\t\t(xy 105.52611 89.619797) (xy 105.526111 89.619797) (xy 105.526114 89.619799) (xy 105.640691 89.6505)\r\n\t\t\t\t(xy 105.640693 89.6505) (xy 105.759307 89.6505) (xy 105.759309 89.6505) (xy 105.873886 89.619799)\r\n\t\t\t\t(xy 105.873888 89.619797) (xy 105.87389 89.619797) (xy 105.976608 89.560492) (xy 105.976608 89.560491)\r\n\t\t\t\t(xy 105.976613 89.560489) (xy 106.060489 89.476613) (xy 106.119799 89.373886) (xy 106.1505 89.259309)\r\n\t\t\t\t(xy 106.1505 89.140691) (xy 106.119799 89.026114) (xy 106.119797 89.026111) (xy 106.119797 89.026109)\r\n\t\t\t\t(xy 106.060492 88.923391) (xy 106.06049 88.923389) (xy 106.060489 88.923387) (xy 105.976613 88.839511)\r\n\t\t\t\t(xy 105.97661 88.839509) (xy 105.976608 88.839507) (xy 105.873889 88.780202) (xy 105.87389 88.780202)\r\n\t\t\t\t(xy 105.850318 88.773886) (xy 105.759309 88.7495) (xy 105.640691 88.7495) (xy 105.570567 88.768289)\r\n\t\t\t\t(xy 105.526109 88.780202) (xy 105.423391 88.839507) (xy 105.339507 88.923391) (xy 105.280202 89.026109)\r\n\t\t\t\t(xy 105.280201 89.026114) (xy 105.2495 89.140691) (xy 104.1505 89.140691) (xy 104.119799 89.026114)\r\n\t\t\t\t(xy 104.119797 89.026111) (xy 104.119797 89.026109) (xy 104.060492 88.923391) (xy 104.06049 88.923389)\r\n\t\t\t\t(xy 104.060489 88.923387) (xy 103.976613 88.839511) (xy 103.97661 88.839509) (xy 103.976608 88.839507)\r\n\t\t\t\t(xy 103.873889 88.780202) (xy 103.87389 88.780202) (xy 103.850318 88.773886) (xy 103.759309 88.7495)\r\n\t\t\t\t(xy 103.640691 88.7495) (xy 103.570567 88.768289) (xy 103.526109 88.780202) (xy 103.423391 88.839507)\r\n\t\t\t\t(xy 103.339507 88.923391) (xy 103.280202 89.026109) (xy 103.280201 89.026114) (xy 103.2495 89.140691)\r\n\t\t\t\t(xy 100.637102 89.140691) (xy 100.619799 89.076114) (xy 100.619797 89.076111) (xy 100.619797 89.076109)\r\n\t\t\t\t(xy 100.560492 88.973391) (xy 100.56049 88.973389) (xy 100.560489 88.973387) (xy 100.476613 88.889511)\r\n\t\t\t\t(xy 100.47661 88.889509) (xy 100.476608 88.889507) (xy 100.373889 88.830202) (xy 100.37389 88.830202)\r\n\t\t\t\t(xy 100.360351 88.826574) (xy 100.259309 88.7995) (xy 100.140691 88.7995) (xy 100.070567 88.818289)\r\n\t\t\t\t(xy 100.026109 88.830202) (xy 99.923391 88.889507) (xy 99.839507 88.973391) (xy 99.780202 89.076109)\r\n\t\t\t\t(xy 99.764503 89.134701) (xy 99.7495 89.190691) (xy 94.9505 89.190691) (xy 94.919799 89.076114)\r\n\t\t\t\t(xy 94.919797 89.076111) (xy 94.919797 89.076109) (xy 94.860492 88.973391) (xy 94.86049 88.973389)\r\n\t\t\t\t(xy 94.860489 88.973387) (xy 94.776613 88.889511) (xy 94.77661 88.889509) (xy 94.776608 88.889507)\r\n\t\t\t\t(xy 94.673889 88.830202) (xy 94.67389 88.830202) (xy 94.660351 88.826574) (xy 94.559309 88.7995)\r\n\t\t\t\t(xy 94.440691 88.7995) (xy 94.370567 88.818289) (xy 94.326109 88.830202) (xy 94.223391 88.889507)\r\n\t\t\t\t(xy 94.139507 88.973391) (xy 94.080202 89.076109) (xy 94.064503 89.134701) (xy 94.0495 89.190691)\r\n\t\t\t\t(xy 80.346411 89.190691) (xy 80.360489 89.176613) (xy 80.419799 89.073886) (xy 80.4505 88.959309)\r\n\t\t\t\t(xy 80.4505 88.840691) (xy 80.419799 88.726114) (xy 80.419797 88.726111) (xy 80.419797 88.726109)\r\n\t\t\t\t(xy 80.360492 88.623391) (xy 80.36049 88.623389) (xy 80.360489 88.623387) (xy 80.276613 88.539511)\r\n\t\t\t\t(xy 80.27661 88.539509) (xy 80.276608 88.539507) (xy 80.173889 88.480202) (xy 80.17389 88.480202)\r\n\t\t\t\t(xy 80.160351 88.476574) (xy 80.059309 88.4495) (xy 79.940691 88.4495) (xy 79.870567 88.468289)\r\n\t\t\t\t(xy 79.826109 88.480202) (xy 79.723391 88.539507) (xy 79.639507 88.623391) (xy 79.580202 88.726109)\r\n\t\t\t\t(xy 79.5674 88.773886) (xy 79.5495 88.840691) (xy 74.0005 88.840691) (xy 74.0005 87.740691) (xy 90.9495 87.740691)\r\n\t\t\t\t(xy 90.9495 87.85930' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'9) (xy 90.976574 87.960351) (xy 90.980202 87.97389) (xy 91.039507 88.076608)\r\n\t\t\t\t(xy 91.039509 88.07661) (xy 91.039511 88.076613) (xy 91.123387 88.160489) (xy 91.123389 88.16049)\r\n\t\t\t\t(xy 91.123391 88.160492) (xy 91.22611 88.219797) (xy 91.226111 88.219797) (xy 91.226114 88.219799)\r\n\t\t\t\t(xy 91.340691 88.2505) (xy 91.340693 88.2505) (xy 91.459306 88.2505) (xy 91.459309 88.2505) (xy 91.551433 88.225815)\r\n\t\t\t\t(xy 91.612532 88.229017) (xy 91.660082 88.267522) (xy 91.672679 88.295815) (xy 91.678164 88.316284)\r\n\t\t\t\t(xy 91.680202 88.32389) (xy 91.739507 88.426608) (xy 91.739509 88.42661) (xy 91.739511 88.426613)\r\n\t\t\t\t(xy 91.823387 88.510489) (xy 91.823389 88.51049) (xy 91.823391 88.510492) (xy 91.92611 88.569797)\r\n\t\t\t\t(xy 91.926111 88.569797) (xy 91.926114 88.569799) (xy 92.040691 88.6005) (xy 92.040693 88.6005)\r\n\t\t\t\t(xy 92.157777 88.6005) (xy 92.215968 88.619407) (xy 92.251932 88.668907) (xy 92.253398 88.673859)\r\n\t\t\t\t(xy 92.273667 88.7495) (xy 92.280202 88.77389) (xy 92.339507 88.876608) (xy 92.339509 88.87661)\r\n\t\t\t\t(xy 92.339511 88.876613) (xy 92.423387 88.960489) (xy 92.423389 88.96049) (xy 92.423391 88.960492)\r\n\t\t\t\t(xy 92.52611 89.019797) (xy 92.526111 89.019797) (xy 92.526114 89.019799) (xy 92.640691 89.0505)\r\n\t\t\t\t(xy 92.640693 89.0505) (xy 92.759307 89.0505) (xy 92.759309 89.0505) (xy 92.873886 89.019799) (xy 92.873888 89.019797)\r\n\t\t\t\t(xy 92.87389 89.019797) (xy 92.976608 88.960492) (xy 92.976608 88.960491) (xy 92.976613 88.960489)\r\n\t\t\t\t(xy 93.060489 88.876613) (xy 93.08191 88.839511) (xy 93.119797 88.77389) (xy 93.119797 88.773888)\r\n\t\t\t\t(xy 93.119799 88.773886) (xy 93.1505 88.659309) (xy 93.1505 88.651532) (xy 134.8995 88.651532) (xy 134.8995 88.858467)\r\n\t\t\t\t(xy 134.939869 89.061418) (xy 135.019058 89.252597) (xy 135.091156 89.3605) (xy 135.134023 89.424655)\r\n\t\t\t\t(xy 135.280345 89.570977) (xy 135.452402 89.685941) (xy 135.64358 89.76513) (xy 135.846535 89.8055)\r\n\t\t\t\t(xy 135.846536 89.8055) (xy 136.053464 89.8055) (xy 136.053465 89.8055) (xy 136.25642 89.76513)\r\n\t\t\t\t(xy 136.447598 89.685941) (xy 136.619655 89.570977) (xy 136.765977 89.424655) (xy 136.880941 89.252598)\r\n\t\t\t\t(xy 136.96013 89.06142) (xy 137.0005 88.858465) (xy 137.0005 88.651535) (xy 136.96013 88.44858)\r\n\t\t\t\t(xy 136.880941 88.257402) (xy 136.765977 88.085345) (xy 136.619655 87.939023) (xy 136.619651 87.93902)\r\n\t\t\t\t(xy 136.447597 87.824058) (xy 136.256418 87.744869) (xy 136.053467 87.7045) (xy 136.053465 87.7045)\r\n\t\t\t\t(xy 135.846535 87.7045) (xy 135.846532 87.7045) (xy 135.643581 87.744869) (xy 135.452402 87.824058)\r\n\t\t\t\t(xy 135.280348 87.93902) (xy 135.13402 88.085348) (xy 135.019058 88.257402) (xy 134.939869 88.448581)\r\n\t\t\t\t(xy 134.8995 88.651532) (xy 93.1505 88.651532) (xy 93.1505 88.540691) (xy 93.119799 88.426114) (xy 93.119797 88.426111)\r\n\t\t\t\t(xy 93.119797 88.426109) (xy 93.060492 88.323391) (xy 93.06049 88.323389) (xy 93.060489 88.323387)\r\n\t\t\t\t(xy 92.976613 88.239511) (xy 92.97661 88.239509) (xy 92.976608 88.239507) (xy 92.873889 88.180202)\r\n\t\t\t\t(xy 92.87389 88.180202) (xy 92.849497 88.173666) (xy 92.759309 88.1495) (xy 92.642223 88.1495) (xy 92.584032 88.130593)\r\n\t\t\t\t(xy 92.548068 88.081093) (xy 92.546596 88.076123) (xy 92.521536 87.982598) (xy 92.519799 87.976114)\r\n\t\t\t\t(xy 92.519797 87.976111) (xy 92.519797 87.976109) (xy 92.460492 87.873391) (xy 92.46049 87.873389)\r\n\t\t\t\t(xy 92.460489 87.873387) (xy 92.376613 87.789511) (xy 92.37661 87.789509) (xy 92.376608 87.789507)\r\n\t\t\t\t(xy 92.273889 87.730202) (xy 92.27389 87.730202) (xy 92.25143 87.724184) (xy 92.159309 87.6995)\r\n\t\t\t\t(xy 92.040691 87.6995) (xy 92.022031 87.7045) (xy 91.948567 87.724184) (xy 91.887466 87.720981)\r\n\t\t\t\t(xy 91.839916 87.682476) (xy 91.827319 87.654182) (xy 91.819799 87.626114) (xy 91.819798 87.626113)\r\n\t\t\t\t(xy 91.819798 87.626111) (xy 91.819797 87.62611) (xy 91.760492 87.523391) (xy 91.76049 87.523389)\r\n\t\t\t\t(xy 91.760489 87.523387) (xy 91.676613 87.439511) (xy 91.67661 87.439509) (xy 91.676608 87.439507)\r\n\t\t\t\t(xy 91.573889 87.380202) (xy 91.57389 87.380202) (xy 91.560351 87.376574) (xy 91.459309 87.3495)\r\n\t\t\t\t(xy 91.340691 87.3495) (xy 91.270567 87.368289) (xy 91.226109 87.380202) (xy 91.123391 87.439507)\r\n\t\t\t\t(xy 91.039507 87.523391) (xy 90.980202 87.626109) (xy 90.980201 87.626114) (xy 90.9495 87.740691)\r\n\t\t\t\t(xy 74.0005 87.740691) (xy 74.0005 86.740691) (xy 104.4995 86.740691) (xy 104.4995 86.859309) (xy 104.518489 86.930177)\r\n\t\t\t\t(xy 104.530202 86.97389) (xy 104.589507 87.076608) (xy 104.589509 87.07661) (xy 104.589511 87.076613)\r\n\t\t\t\t(xy 104.673387 87.160489) (xy 104.673389 87.16049) (xy 104.673391 87.160492) (xy 104.77611 87.219797)\r\n\t\t\t\t(xy 104.776111 87.219797) (xy 104.776114 87.219799) (xy 104.890691 87.2505) (xy 104.890693 87.2505)\r\n\t\t\t\t(xy 105.009307 87.2505) (xy 105.009309 87.2505) (xy 105.123886 87.219799) (xy 105.123888 87.219797)\r\n\t\t\t\t(xy 105.12389 87.219797) (xy 105.129884 87.217315) (xy 105.130684 87.219247) (xy 105.181271 87.208483)\r\n\t\t\t\t(xy 105.237173 87.233356) (xy 105.256681 87.25744) (xy 105.296619 87.326613) (xy 105.380495 87.410489)\r\n\t\t\t\t(xy 105.380497 87.41049) (xy 105.380499 87.410492) (xy 105.483218 87.469797) (xy 105.483219 87.469797)\r\n\t\t\t\t(xy 105.483222 87.469799) (xy 105.597799 87.5005) (xy 105.597801 87.5005) (xy 105.716415 87.5005)\r\n\t\t\t\t(xy 105.716417 87.5005) (xy 105.830994 87.469799) (xy 105.830996 87.469797) (xy 105.830998 87.469797)\r\n\t\t\t\t(xy 105.933716 87.410492) (xy 105.933716 87.410491) (xy 105.933721 87.410489) (xy 106.017597 87.326613)\r\n\t\t\t\t(xy 106.05765 87.25724) (xy 106.076905 87.22389) (xy 106.076905 87.223888) (xy 106.076907 87.223886)\r\n\t\t\t\t(xy 106.107608 87.109309) (xy 106.107608 86.990691) (xy 106.076907 86.876114) (xy 106.076905 86.876111)\r\n\t\t\t\t(xy 106.076905 86.876109) (xy 106.0176 86.773391) (xy 106.017598 86.773389) (xy 106.017597 86.773387)\r\n\t\t\t\t(xy 105.933721 86.689511) (xy 105.933718 86.689509) (xy 105.933716 86.689507) (xy 105.830997 86.630202)\r\n\t\t\t\t(xy 105.830998 86.630202) (xy 105.792173 86.619799) (xy 105.716417 86.5995) (xy 105.597799 86.5995)\r\n\t\t\t\t(xy 105.527675 86.618289) (xy 105.483217 86.630202) (xy 105.477224 86.632685) (xy 105.476425 86.630758)\r\n\t\t\t\t(xy 105.425799 86.641512) (xy 105.369907 86.616619) (xy 105.350426 86.59256) (xy 105.310489 86.523387)\r\n\t\t\t\t(xy 105.226613 86.439511) (xy 105.22661 86.439509) (xy 105.226608 86.439507) (xy 105.123889 86.380202)\r\n\t\t\t\t(xy 105.12389 86.380202) (xy 105.100318 86.373886) (xy 105.009309 86.3495) (xy 104.890691 86.3495)\r\n\t\t\t\t(xy 104.820567 86.368289) (xy 104.776109 86.380202) (xy 104.673391 86.439507) (xy 104.589507 86.523391)\r\n\t\t\t\t(xy 104.530202 86.626109) (xy 104.519567 86.665801) (xy 104.4995 86.740691) (xy 74.0005 86.740691)\r\n\t\t\t\t(xy 74.0005 86.140691) (xy 106.2495 86.140691) (xy 106.2495 86.259309) (xy 106.270175 86.33647)\r\n\t\t\t\t(xy 106.280202 86.37389) (xy 106.339507 86.476608) (xy 106.339509 86.47661) (xy 106.339511 86.476613)\r\n\t\t\t\t(xy 106.423387 86.560489) (xy 106.423389 86.56049) (xy 106.423391 86.560492) (xy 106.52611 86.619797)\r\n\t\t\t\t(xy 106.526108 86.619797) (xy 106.526112 86.619798) (xy 106.526114 86.619799) (xy 106.573432 86.632478)\r\n\t\t\t\t(xy 106.624745 86.665801) (xy 106.646672 86.722923) (xy 106.643435 86.753724) (xy 106.635373 86.783813)\r\n\t\t\t\t(xy 106.635373 86.902431) (xy 106.658141 86.987402) (xy 106.666075 87.017012) (xy 106.72538 87.11973)\r\n\t\t\t\t(xy 106.725382 87.119732) (xy 106.725384 87.119735) (xy 106.80926 87.203611) (xy 106.809262 87.203612)\r\n\t\t\t\t(xy 106.809264 87.203614) (xy 106.911983 87.262919) (xy 106.911984 87.262919) (xy 106.911987 87.262921)\r\n\t\t\t\t(xy 107.026564 87.293622) (xy 107.026566 87.293622) (xy 107.14518 87.293622) (xy 107.145182 87.293622)\r\n\t\t\t\t(xy 107.259759 87.262921) (xy 107.259761 87.262919) (xy 107.259763 87.262919) (xy 107.362481 87.203614)\r\n\t\t\t\t(xy 107.362481 87.203613) (xy 107.362486 87.203611) (xy 107.446362 87.119735) (xy 107.505672 87.017008)\r\n\t\t\t\t(xy 107.536373 86.902431) (xy 107.536373 86.783813) (xy 107.505672 86.669236) (xy 107.50567 86.669233)\r\n\t\t\t\t(xy 107.50567 86.669231) (xy 107.446365 86.566513) (xy 107.446363 86.566511) (xy 107.446362 86.566509)\r\n\t\t\t\t(xy 107.362486 86.482633) (xy 107.362483 86.482631) (xy 107.362481 86.482629) (xy 107.259762 86.423324)\r\n\t\t\t\t(xy 107.259758 86.423322) (xy 107.21244 86.410643) (xy 107.161126 86.377319) (xy 107.' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'1392 86.320197)\r\n\t\t\t\t(xy 107.139261 86.308768) (xy 107.139883 86.298931) (xy 107.1505 86.259309) (xy 107.1505 86.140691)\r\n\t\t\t\t(xy 112.3495 86.140691) (xy 112.3495 86.259309) (xy 112.370175 86.33647) (xy 112.380202 86.37389)\r\n\t\t\t\t(xy 112.439507 86.476608) (xy 112.439509 86.47661) (xy 112.439511 86.476613) (xy 112.523387 86.560489)\r\n\t\t\t\t(xy 112.523389 86.56049) (xy 112.523391 86.560492) (xy 112.62611 86.619797) (xy 112.626111 86.619797)\r\n\t\t\t\t(xy 112.626114 86.619799) (xy 112.740691 86.6505) (xy 112.740693 86.6505) (xy 112.859308 86.6505)\r\n\t\t\t\t(xy 112.859309 86.6505) (xy 112.965552 86.622032) (xy 113.026653 86.625233) (xy 113.074203 86.663738)\r\n\t\t\t\t(xy 113.076669 86.668432) (xy 113.076956 86.668267) (xy 113.139507 86.776608) (xy 113.139509 86.77661)\r\n\t\t\t\t(xy 113.139511 86.776613) (xy 113.223387 86.860489) (xy 113.223389 86.86049) (xy 113.223391 86.860492)\r\n\t\t\t\t(xy 113.32611 86.919797) (xy 113.326111 86.919797) (xy 113.326114 86.919799) (xy 113.440691 86.9505)\r\n\t\t\t\t(xy 113.440693 86.9505) (xy 113.538467 86.9505) (xy 113.596658 86.969407) (xy 113.632622 87.018907)\r\n\t\t\t\t(xy 113.634094 87.023877) (xy 113.635153 87.027829) (xy 113.635153 87.027832) (xy 113.663064 87.131998)\r\n\t\t\t\t(xy 113.665855 87.142413) (xy 113.72516 87.245131) (xy 113.725162 87.245133) (xy 113.725164 87.245136)\r\n\t\t\t\t(xy 113.80904 87.329012) (xy 113.809042 87.329013) (xy 113.809044 87.329015) (xy 113.911763 87.38832)\r\n\t\t\t\t(xy 113.911764 87.38832) (xy 113.911767 87.388322) (xy 114.026344 87.419023) (xy 114.026346 87.419023)\r\n\t\t\t\t(xy 114.14496 87.419023) (xy 114.144962 87.419023) (xy 114.259539 87.388322) (xy 114.259541 87.38832)\r\n\t\t\t\t(xy 114.259543 87.38832) (xy 114.2713 87.381532) (xy 132.3595 87.381532) (xy 132.3595 87.588467)\r\n\t\t\t\t(xy 132.399869 87.791418) (xy 132.479058 87.982597) (xy 132.59402 88.154651) (xy 132.594023 88.154655)\r\n\t\t\t\t(xy 132.740345 88.300977) (xy 132.912402 88.415941) (xy 133.10358 88.49513) (xy 133.306535 88.5355)\r\n\t\t\t\t(xy 133.306536 88.5355) (xy 133.513464 88.5355) (xy 133.513465 88.5355) (xy 133.71642 88.49513)\r\n\t\t\t\t(xy 133.907598 88.415941) (xy 134.079655 88.300977) (xy 134.225977 88.154655) (xy 134.340941 87.982598)\r\n\t\t\t\t(xy 134.42013 87.79142) (xy 134.4605 87.588465) (xy 134.4605 87.381535) (xy 134.42013 87.17858)\r\n\t\t\t\t(xy 134.340941 86.987402) (xy 134.225977 86.815345) (xy 134.079655 86.669023) (xy 134.079651 86.66902)\r\n\t\t\t\t(xy 133.907597 86.554058) (xy 133.716418 86.474869) (xy 133.513467 86.4345) (xy 133.513465 86.4345)\r\n\t\t\t\t(xy 133.306535 86.4345) (xy 133.306532 86.4345) (xy 133.103581 86.474869) (xy 132.912402 86.554058)\r\n\t\t\t\t(xy 132.740348 86.66902) (xy 132.59402 86.815348) (xy 132.479058 86.987402) (xy 132.399869 87.178581)\r\n\t\t\t\t(xy 132.3595 87.381532) (xy 114.2713 87.381532) (xy 114.362261 87.329015) (xy 114.362261 87.329014)\r\n\t\t\t\t(xy 114.362266 87.329012) (xy 114.446142 87.245136) (xy 114.454317 87.230977) (xy 114.50545 87.142413)\r\n\t\t\t\t(xy 114.50545 87.142411) (xy 114.505452 87.142409) (xy 114.536153 87.027832) (xy 114.536153 86.909214)\r\n\t\t\t\t(xy 114.505452 86.794637) (xy 114.50545 86.794634) (xy 114.50545 86.794632) (xy 114.446145 86.691914)\r\n\t\t\t\t(xy 114.446143 86.691912) (xy 114.446142 86.69191) (xy 114.362266 86.608034) (xy 114.362263 86.608032)\r\n\t\t\t\t(xy 114.362261 86.60803) (xy 114.259542 86.548725) (xy 114.259543 86.548725) (xy 114.220804 86.538345)\r\n\t\t\t\t(xy 114.144962 86.518023) (xy 114.047186 86.518023) (xy 113.988995 86.499116) (xy 113.953031 86.449616)\r\n\t\t\t\t(xy 113.951559 86.444646) (xy 113.9505 86.440693) (xy 113.9505 86.440691) (xy 113.919799 86.326114)\r\n\t\t\t\t(xy 113.919797 86.326111) (xy 113.919797 86.326109) (xy 113.860492 86.223391) (xy 113.86049 86.223389)\r\n\t\t\t\t(xy 113.860489 86.223387) (xy 113.776613 86.139511) (xy 113.77661 86.139509) (xy 113.776608 86.139507)\r\n\t\t\t\t(xy 113.673889 86.080202) (xy 113.67389 86.080202) (xy 113.653599 86.074765) (xy 113.559309 86.0495)\r\n\t\t\t\t(xy 113.440691 86.0495) (xy 113.359562 86.071238) (xy 113.334447 86.077968) (xy 113.273345 86.074765)\r\n\t\t\t\t(xy 113.225795 86.03626) (xy 113.22334 86.031561) (xy 113.223044 86.031733) (xy 113.160492 85.923391)\r\n\t\t\t\t(xy 113.16049 85.923389) (xy 113.160489 85.923387) (xy 113.076613 85.839511) (xy 113.07661 85.839509)\r\n\t\t\t\t(xy 113.076608 85.839507) (xy 112.973889 85.780202) (xy 112.97389 85.780202) (xy 112.960351 85.776574)\r\n\t\t\t\t(xy 112.859309 85.7495) (xy 112.740691 85.7495) (xy 112.670567 85.768289) (xy 112.626109 85.780202)\r\n\t\t\t\t(xy 112.523391 85.839507) (xy 112.439507 85.923391) (xy 112.380202 86.026109) (xy 112.368066 86.071401)\r\n\t\t\t\t(xy 112.3495 86.140691) (xy 107.1505 86.140691) (xy 107.119799 86.026114) (xy 107.119797 86.026111)\r\n\t\t\t\t(xy 107.119797 86.026109) (xy 107.060492 85.923391) (xy 107.06049 85.923389) (xy 107.060489 85.923387)\r\n\t\t\t\t(xy 106.976613 85.839511) (xy 106.97661 85.839509) (xy 106.976608 85.839507) (xy 106.873889 85.780202)\r\n\t\t\t\t(xy 106.87389 85.780202) (xy 106.860351 85.776574) (xy 106.759309 85.7495) (xy 106.640691 85.7495)\r\n\t\t\t\t(xy 106.570567 85.768289) (xy 106.526109 85.780202) (xy 106.423391 85.839507) (xy 106.339507 85.923391)\r\n\t\t\t\t(xy 106.280202 86.026109) (xy 106.268066 86.071401) (xy 106.2495 86.140691) (xy 74.0005 86.140691)\r\n\t\t\t\t(xy 74.0005 85.318912) (xy 137.25 85.318912) (xy 137.25 85.581087) (xy 137.28422 85.84101) (xy 137.28422 85.841015)\r\n\t\t\t\t(xy 137.352075 86.094255) (xy 137.352078 86.094262) (xy 137.452403 86.33647) (xy 137.583492 86.563522)\r\n\t\t\t\t(xy 137.670079 86.676364) (xy 138.534152 85.812291) (xy 138.541049 85.828942) (xy 138.628599 85.95997)\r\n\t\t\t\t(xy 138.74003 86.071401) (xy 138.871058 86.158951) (xy 138.887706 86.165846) (xy 138.023633 87.029919)\r\n\t\t\t\t(xy 138.136477 87.116507) (xy 138.363529 87.247596) (xy 138.605737 87.347921) (xy 138.605744 87.347924)\r\n\t\t\t\t(xy 138.858986 87.415779) (xy 139.118912 87.449999) (xy 139.118914 87.45) (xy 139.381086 87.45)\r\n\t\t\t\t(xy 139.381087 87.449999) (xy 139.64101 87.415779) (xy 139.641015 87.415779) (xy 139.894255 87.347924)\r\n\t\t\t\t(xy 139.894262 87.347921) (xy 140.136476 87.247593) (xy 140.290648 87.158582) (xy 140.350496 87.14586)\r\n\t\t\t\t(xy 140.406392 87.170746) (xy 140.436985 87.223734) (xy 140.438301 87.25724) (xy 140.4245 87.362071)\r\n\t\t\t\t(xy 140.4245 87.607927) (xy 140.45659 87.851669) (xy 140.45659 87.851674) (xy 140.520222 88.089154)\r\n\t\t\t\t(xy 140.614302 88.316284) (xy 140.614304 88.316288) (xy 140.614306 88.316292) (xy 140.737233 88.529208)\r\n\t\t\t\t(xy 140.737235 88.529211) (xy 140.886893 88.724249) (xy 140.886895 88.724251) (xy 140.886899 88.724256)\r\n\t\t\t\t(xy 141.060744 88.898101) (xy 141.060748 88.898104) (xy 141.06075 88.898106) (xy 141.21292 89.01487)\r\n\t\t\t\t(xy 141.255792 89.047767) (xy 141.468708 89.170694) (xy 141.468714 89.170696) (xy 141.468715 89.170697)\r\n\t\t\t\t(xy 141.482993 89.176611) (xy 141.695847 89.264778) (xy 141.933323 89.328409) (xy 142.177073 89.3605)\r\n\t\t\t\t(xy 142.177074 89.3605) (xy 142.422926 89.3605) (xy 142.422927 89.3605) (xy 142.666677 89.328409)\r\n\t\t\t\t(xy 142.904153 89.264778) (xy 143.131292 89.170694) (xy 143.344208 89.047767) (xy 143.539256 88.898101)\r\n\t\t\t\t(xy 143.713101 88.724256) (xy 143.862767 88.529208) (xy 143.985694 88.316292) (xy 144.079778 88.089153)\r\n\t\t\t\t(xy 144.143409 87.851677) (xy 144.1755 87.607927) (xy 144.1755 87.419636) (xy 144.194407 87.361445)\r\n\t\t\t\t(xy 144.243907 87.325481) (xy 144.305093 87.325481) (xy 144.329499 87.337319) (xy 144.342402 87.345941)\r\n\t\t\t\t(xy 144.53358 87.42513) (xy 144.736535 87.4655) (xy 144.736536 87.4655) (xy 144.943464 87.4655)\r\n\t\t\t\t(xy 144.943465 87.4655) (xy 145.14642 87.42513) (xy 145.337598 87.345941) (xy 145.509655 87.230977)\r\n\t\t\t\t(xy 145.655977 87.084655) (xy 145.770941 86.912598) (xy 145.770941 86.912596) (xy 145.772684 86.909989)\r\n\t\t\t\t(xy 145.820734 86.872109) (xy 145.881872 86.869707) (xy 145.932746 86.903699) (xy 145.937316 86.909989)\r\n\t\t\t\t(xy 146.048649 87.076613) (xy 146.054023 87.084655) (xy 146.200345 87.230977) (xy 146.372402 87.345941)\r\n\t\t\t\t(xy 146.56358 87.42513) (xy 146.766535 87.4655) (xy 146.766536 87.4655) (xy 146.973464 87.4655)\r\n\t\t\t\t(xy 146.973465 87.4655) (xy 147.17642 87.42513) (xy 147.367598 87.345941) (xy 147.539655 87.230977)\r\n\t\t\t\t(xy 147.685977 87.084655) (xy 147.800941 86.912598) (xy 147.88013 86.72142) (xy 147.9205 86.518465)\r\n\t\t\t\t(xy 147.9205 86.311535) (xy 147.88013 86.10858) (xy 147.800' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'941 85.917402) (xy 147.685977 85.745345)\r\n\t\t\t\t(xy 147.539655 85.599023) (xy 147.512812 85.581087) (xy 147.367597 85.484058) (xy 147.176418 85.404869)\r\n\t\t\t\t(xy 146.973467 85.3645) (xy 146.973465 85.3645) (xy 146.766535 85.3645) (xy 146.766532 85.3645)\r\n\t\t\t\t(xy 146.563581 85.404869) (xy 146.372402 85.484058) (xy 146.200348 85.59902) (xy 146.05402 85.745348)\r\n\t\t\t\t(xy 145.937316 85.92001) (xy 145.889266 85.95789) (xy 145.828128 85.960292) (xy 145.777254 85.926299)\r\n\t\t\t\t(xy 145.772684 85.92001) (xy 145.655979 85.745348) (xy 145.655977 85.745345) (xy 145.509655 85.599023)\r\n\t\t\t\t(xy 145.482812 85.581087) (xy 145.337597 85.484058) (xy 145.146418 85.404869) (xy 144.943467 85.3645)\r\n\t\t\t\t(xy 144.943465 85.3645) (xy 144.736535 85.3645) (xy 144.736532 85.3645) (xy 144.533581 85.404869)\r\n\t\t\t\t(xy 144.342402 85.484058) (xy 144.170348 85.59902) (xy 144.02402 85.745348) (xy 143.909058 85.917402)\r\n\t\t\t\t(xy 143.829869 86.108582) (xy 143.829868 86.108585) (xy 143.823872 86.138728) (xy 143.793974 86.192111)\r\n\t\t\t\t(xy 143.738409 86.217725) (xy 143.678399 86.205787) (xy 143.656775 86.189418) (xy 143.539256 86.071899)\r\n\t\t\t\t(xy 143.539251 86.071895) (xy 143.539249 86.071893) (xy 143.344211 85.922235) (xy 143.344208 85.922233)\r\n\t\t\t\t(xy 143.131292 85.799306) (xy 143.131288 85.799304) (xy 143.131284 85.799302) (xy 142.904154 85.705222)\r\n\t\t\t\t(xy 142.79944 85.677164) (xy 142.666677 85.641591) (xy 142.666674 85.64159) (xy 142.666672 85.64159)\r\n\t\t\t\t(xy 142.422927 85.6095) (xy 142.177073 85.6095) (xy 142.177072 85.6095) (xy 141.93333 85.64159)\r\n\t\t\t\t(xy 141.933325 85.64159) (xy 141.695845 85.705222) (xy 141.468715 85.799302) (xy 141.468708 85.799305)\r\n\t\t\t\t(xy 141.468708 85.799306) (xy 141.396475 85.84101) (xy 141.374772 85.85354) (xy 141.314923 85.866261)\r\n\t\t\t\t(xy 141.259028 85.841374) (xy 141.228435 85.788386) (xy 141.227119 85.754881) (xy 141.249999 85.581087)\r\n\t\t\t\t(xy 141.25 85.581086) (xy 141.25 85.318914) (xy 141.249999 85.318912) (xy 141.215779 85.058989)\r\n\t\t\t\t(xy 141.215779 85.058984) (xy 141.147924 84.805744) (xy 141.147921 84.805737) (xy 141.047596 84.563529)\r\n\t\t\t\t(xy 140.916507 84.336477) (xy 140.829918 84.223633) (xy 139.965846 85.087705) (xy 139.958951 85.071058)\r\n\t\t\t\t(xy 139.871401 84.94003) (xy 139.75997 84.828599) (xy 139.628942 84.741049) (xy 139.612291 84.734152)\r\n\t\t\t\t(xy 140.476365 83.870079) (xy 140.363522 83.783492) (xy 140.13647 83.652403) (xy 139.894262 83.552078)\r\n\t\t\t\t(xy 139.894255 83.552075) (xy 139.641013 83.48422) (xy 139.381087 83.45) (xy 139.118912 83.45) (xy 138.858989 83.48422)\r\n\t\t\t\t(xy 138.858984 83.48422) (xy 138.605744 83.552075) (xy 138.605737 83.552078) (xy 138.363529 83.652403)\r\n\t\t\t\t(xy 138.136472 83.783495) (xy 138.023633 83.870079) (xy 138.887706 84.734152) (xy 138.871058 84.741049)\r\n\t\t\t\t(xy 138.74003 84.828599) (xy 138.628599 84.94003) (xy 138.541049 85.071058) (xy 138.534152 85.087706)\r\n\t\t\t\t(xy 137.670079 84.223633) (xy 137.583495 84.336472) (xy 137.452403 84.563529) (xy 137.352078 84.805737)\r\n\t\t\t\t(xy 137.352075 84.805744) (xy 137.28422 85.058984) (xy 137.28422 85.058989) (xy 137.25 85.318912)\r\n\t\t\t\t(xy 74.0005 85.318912) (xy 74.0005 83.672824) (xy 79.749999 83.672824) (xy 79.756401 83.73237) (xy 79.756403 83.732381)\r\n\t\t\t\t(xy 79.806646 83.867088) (xy 79.806647 83.86709) (xy 79.892807 83.982184) (xy 79.892815 83.982192)\r\n\t\t\t\t(xy 80.007909 84.068352) (xy 80.007911 84.068353) (xy 80.142618 84.118596) (xy 80.142629 84.118598)\r\n\t\t\t\t(xy 80.202176 84.125) (xy 80.849999 84.125) (xy 80.85 84.124999) (xy 80.85 83.208012) (xy 80.907007 83.240925)\r\n\t\t\t\t(xy 81.034174 83.275) (xy 81.165826 83.275) (xy 81.292993 83.240925) (xy 81.35 83.208012) (xy 81.35 84.124999)\r\n\t\t\t\t(xy 81.350001 84.125) (xy 81.997824 84.125) (xy 82.05737 84.118598) (xy 82.057381 84.118596) (xy 82.192088 84.068353)\r\n\t\t\t\t(xy 82.19209 84.068352) (xy 82.307184 83.982192) (xy 82.307192 83.982184) (xy 82.393352 83.867091)\r\n\t\t\t\t(xy 82.393354 83.867087) (xy 82.443596 83.732381) (xy 82.443598 83.73237) (xy 82.45 83.672824) (xy 82.45 83.140691)\r\n\t\t\t\t(xy 141.9495 83.140691) (xy 141.9495 83.259309) (xy 141.976574 83.360351) (xy 141.980202 83.37389)\r\n\t\t\t\t(xy 142.039507 83.476608) (xy 142.039509 83.47661) (xy 142.039511 83.476613) (xy 142.123387 83.560489)\r\n\t\t\t\t(xy 142.123389 83.56049) (xy 142.123391 83.560492) (xy 142.22611 83.619797) (xy 142.226111 83.619797)\r\n\t\t\t\t(xy 142.226114 83.619799) (xy 142.340691 83.6505) (xy 142.340693 83.6505) (xy 142.459307 83.6505)\r\n\t\t\t\t(xy 142.459309 83.6505) (xy 142.573886 83.619799) (xy 142.573888 83.619797) (xy 142.57389 83.619797)\r\n\t\t\t\t(xy 142.676608 83.560492) (xy 142.676608 83.560491) (xy 142.676613 83.560489) (xy 142.760489 83.476613)\r\n\t\t\t\t(xy 142.819799 83.373886) (xy 142.8505 83.259309) (xy 142.8505 83.140691) (xy 142.819799 83.026114)\r\n\t\t\t\t(xy 142.819797 83.026111) (xy 142.819797 83.026109) (xy 142.760492 82.923391) (xy 142.76049 82.923389)\r\n\t\t\t\t(xy 142.760489 82.923387) (xy 142.676613 82.839511) (xy 142.67661 82.839509) (xy 142.676608 82.839507)\r\n\t\t\t\t(xy 142.573889 82.780202) (xy 142.57389 82.780202) (xy 142.560351 82.776574) (xy 142.459309 82.7495)\r\n\t\t\t\t(xy 142.340691 82.7495) (xy 142.270567 82.768289) (xy 142.226109 82.780202) (xy 142.123391 82.839507)\r\n\t\t\t\t(xy 142.039507 82.923391) (xy 141.980202 83.026109) (xy 141.980201 83.026114) (xy 141.9495 83.140691)\r\n\t\t\t\t(xy 82.45 83.140691) (xy 82.45 83.025001) (xy 82.449999 83.025) (xy 81.533012 83.025) (xy 81.565925 82.967993)\r\n\t\t\t\t(xy 81.6 82.840826) (xy 81.6 82.709174) (xy 81.565925 82.582007) (xy 81.533012 82.525) (xy 82.449999 82.525)\r\n\t\t\t\t(xy 82.45 82.524999) (xy 82.45 81.877175) (xy 82.443598 81.817629) (xy 82.443596 81.817618) (xy 82.393353 81.682911)\r\n\t\t\t\t(xy 82.393352 81.682909) (xy 82.307192 81.567815) (xy 82.307184 81.567807) (xy 82.19209 81.481647)\r\n\t\t\t\t(xy 82.192088 81.481646) (xy 82.057376 81.431401) (xy 81.997824 81.425) (xy 81.251026 81.425) (xy 81.192835 81.406093)\r\n\t\t\t\t(xy 81.156871 81.356593) (xy 81.156871 81.340691) (xy 97.6495 81.340691) (xy 97.6495 81.459309)\r\n\t\t\t\t(xy 97.668601 81.530593) (xy 97.680202 81.57389) (xy 97.739507 81.676608) (xy 97.739509 81.67661)\r\n\t\t\t\t(xy 97.739511 81.676613) (xy 97.823387 81.760489) (xy 97.823389 81.76049) (xy 97.823391 81.760492)\r\n\t\t\t\t(xy 97.92611 81.819797) (xy 97.926111 81.819797) (xy 97.926114 81.819799) (xy 98.040691 81.8505)\r\n\t\t\t\t(xy 98.040693 81.8505) (xy 98.1505 81.8505) (xy 98.208691 81.869407) (xy 98.244655 81.918907) (xy 98.2495 81.9495)\r\n\t\t\t\t(xy 98.2495 82.059309) (xy 98.276574 82.160351) (xy 98.280202 82.17389) (xy 98.339507 82.276608)\r\n\t\t\t\t(xy 98.339509 82.27661) (xy 98.339511 82.276613) (xy 98.423387 82.360489) (xy 98.423389 82.36049)\r\n\t\t\t\t(xy 98.423391 82.360492) (xy 98.52611 82.419797) (xy 98.526111 82.419797) (xy 98.526114 82.419799)\r\n\t\t\t\t(xy 98.640691 82.4505) (xy 98.640693 82.4505) (xy 98.759307 82.4505) (xy 98.759309 82.4505) (xy 98.873886 82.419799)\r\n\t\t\t\t(xy 98.873888 82.419797) (xy 98.87389 82.419797) (xy 98.976608 82.360492) (xy 98.976608 82.360491)\r\n\t\t\t\t(xy 98.976613 82.360489) (xy 99.060489 82.276613) (xy 99.119799 82.173886) (xy 99.1505 82.059309)\r\n\t\t\t\t(xy 99.1505 81.940691) (xy 99.119799 81.826114) (xy 99.119797 81.826111) (xy 99.119797 81.826109)\r\n\t\t\t\t(xy 99.060492 81.723391) (xy 99.06049 81.723389) (xy 99.060489 81.723387) (xy 98.976613 81.639511)\r\n\t\t\t\t(xy 98.97661 81.639509) (xy 98.976608 81.639507) (xy 98.873889 81.580202) (xy 98.87389 81.580202)\r\n\t\t\t\t(xy 98.850318 81.573886) (xy 98.759309 81.5495) (xy 98.6495 81.5495) (xy 98.591309 81.530593) (xy 98.555345 81.481093)\r\n\t\t\t\t(xy 98.5505 81.4505) (xy 98.5505 81.340692) (xy 98.5505 81.340691) (xy 98.519799 81.226114) (xy 98.519797 81.226111)\r\n\t\t\t\t(xy 98.519797 81.226109) (xy 98.460492 81.123391) (xy 98.46049 81.123389) (xy 98.460489 81.123387)\r\n\t\t\t\t(xy 98.376613 81.039511) (xy 98.37661 81.039509) (xy 98.376608 81.039507) (xy 98.273889 80.980202)\r\n\t\t\t\t(xy 98.27389 80.980202) (xy 98.250318 80.973886) (xy 98.159309 80.9495) (xy 98.040691 80.9495) (xy 97.970567 80.968289)\r\n\t\t\t\t(xy 97.926109 80.980202) (xy 97.823391 81.039507) (xy 97.739507 81.123391) (xy 97.680202 81.226109)\r\n\t\t\t\t(xy 97.680201 81.226114) (xy 97.6495 81.340691) (xy 81.156871 81.340691) (xy 81.156871 81.295407)\r\n\t\t\t\t(xy 81.192835 81.245907) (xy 81.231712 81.228902) (xy 81.254252 81.224418) (xy 81.391835 81.197051' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b')\r\n\t\t\t\t(xy 81.573914 81.121632) (xy 81.737782 81.012139) (xy 81.877139 80.872782) (xy 81.986632 80.708914)\r\n\t\t\t\t(xy 82.062051 80.526835) (xy 82.1005 80.333541) (xy 82.1005 80.136459) (xy 82.062051 79.943165)\r\n\t\t\t\t(xy 81.986632 79.761086) (xy 81.877139 79.597218) (xy 81.737782 79.457861) (xy 81.592059 79.360492)\r\n\t\t\t\t(xy 81.573913 79.348367) (xy 81.391835 79.272949) (xy 81.198543 79.2345) (xy 81.198541 79.2345)\r\n\t\t\t\t(xy 81.001459 79.2345) (xy 81.001456 79.2345) (xy 80.808165 79.272949) (xy 80.808163 79.272949)\r\n\t\t\t\t(xy 80.626086 79.348367) (xy 80.462218 79.457861) (xy 80.462214 79.457864) (xy 80.322864 79.597214)\r\n\t\t\t\t(xy 80.322861 79.597218) (xy 80.213367 79.761086) (xy 80.137949 79.943163) (xy 80.137949 79.943165)\r\n\t\t\t\t(xy 80.0995 80.136456) (xy 80.0995 80.333543) (xy 80.137949 80.526834) (xy 80.137949 80.526836)\r\n\t\t\t\t(xy 80.213367 80.708913) (xy 80.213368 80.708914) (xy 80.322861 80.872782) (xy 80.462218 81.012139)\r\n\t\t\t\t(xy 80.626086 81.121632) (xy 80.808165 81.197051) (xy 80.922516 81.219797) (xy 80.968288 81.228902)\r\n\t\t\t\t(xy 81.021672 81.258799) (xy 81.047288 81.314364) (xy 81.035351 81.374374) (xy 80.990421 81.415906)\r\n\t\t\t\t(xy 80.948974 81.425) (xy 80.202176 81.425) (xy 80.142629 81.431401) (xy 80.142618 81.431403) (xy 80.007911 81.481646)\r\n\t\t\t\t(xy 80.007909 81.481647) (xy 79.892815 81.567807) (xy 79.892807 81.567815) (xy 79.806647 81.682909)\r\n\t\t\t\t(xy 79.806646 81.682911) (xy 79.756403 81.817618) (xy 79.756401 81.817629) (xy 79.75 81.877175)\r\n\t\t\t\t(xy 79.75 82.524999) (xy 79.750001 82.525) (xy 80.666988 82.525) (xy 80.634075 82.582007) (xy 80.6 82.709174)\r\n\t\t\t\t(xy 80.6 82.840826) (xy 80.634075 82.967993) (xy 80.666988 83.025) (xy 79.750001 83.025) (xy 79.75 83.025001)\r\n\t\t\t\t(xy 79.75 83.672824) (xy 79.749999 83.672824) (xy 74.0005 83.672824) (xy 74.0005 78.940691) (xy 91.8495 78.940691)\r\n\t\t\t\t(xy 91.8495 79.059309) (xy 91.867249 79.125548) (xy 91.880202 79.17389) (xy 91.939507 79.276608)\r\n\t\t\t\t(xy 91.939509 79.27661) (xy 91.939511 79.276613) (xy 92.023387 79.360489) (xy 92.023389 79.36049)\r\n\t\t\t\t(xy 92.023391 79.360492) (xy 92.12611 79.419797) (xy 92.126111 79.419797) (xy 92.126114 79.419799)\r\n\t\t\t\t(xy 92.240691 79.4505) (xy 92.240693 79.4505) (xy 92.359307 79.4505) (xy 92.359309 79.4505) (xy 92.473886 79.419799)\r\n\t\t\t\t(xy 92.473888 79.419797) (xy 92.47389 79.419797) (xy 92.576608 79.360492) (xy 92.576608 79.360491)\r\n\t\t\t\t(xy 92.576613 79.360489) (xy 92.660489 79.276613) (xy 92.662061 79.27389) (xy 92.719797 79.17389)\r\n\t\t\t\t(xy 92.719797 79.173888) (xy 92.719799 79.173886) (xy 92.7505 79.059309) (xy 92.7505 78.940691)\r\n\t\t\t\t(xy 92.719799 78.826114) (xy 92.719797 78.826111) (xy 92.719797 78.826109) (xy 92.660492 78.723391)\r\n\t\t\t\t(xy 92.66049 78.723389) (xy 92.660489 78.723387) (xy 92.576613 78.639511) (xy 92.57661 78.639509)\r\n\t\t\t\t(xy 92.576608 78.639507) (xy 92.542713 78.619938) (xy 92.542712 78.619938) (xy 92.473888 78.580202)\r\n\t\t\t\t(xy 92.473887 78.580201) (xy 92.473886 78.580201) (xy 92.359309 78.5495) (xy 92.240691 78.5495)\r\n\t\t\t\t(xy 92.199669 78.560492) (xy 92.126109 78.580202) (xy 92.023391 78.639507) (xy 91.939507 78.723391)\r\n\t\t\t\t(xy 91.880202 78.826109) (xy 91.880201 78.826114) (xy 91.8495 78.940691) (xy 74.0005 78.940691)\r\n\t\t\t\t(xy 74.0005 78.540691) (xy 94.8495 78.540691) (xy 94.8495 78.659309) (xy 94.86571 78.719805) (xy 94.880202 78.77389)\r\n\t\t\t\t(xy 94.939507 78.876608) (xy 94.939509 78.87661) (xy 94.939511 78.876613) (xy 95.023387 78.960489)\r\n\t\t\t\t(xy 95.023389 78.96049) (xy 95.023391 78.960492) (xy 95.12611 79.019797) (xy 95.126111 79.019797)\r\n\t\t\t\t(xy 95.126114 79.019799) (xy 95.240691 79.0505) (xy 95.240693 79.0505) (xy 95.359307 79.0505) (xy 95.359309 79.0505)\r\n\t\t\t\t(xy 95.473886 79.019799) (xy 95.473888 79.019797) (xy 95.47389 79.019797) (xy 95.576608 78.960492)\r\n\t\t\t\t(xy 95.576608 78.960491) (xy 95.576613 78.960489) (xy 95.660489 78.876613) (xy 95.662061 78.87389)\r\n\t\t\t\t(xy 95.719797 78.77389) (xy 95.719797 78.773888) (xy 95.719799 78.773886) (xy 95.7505 78.659309)\r\n\t\t\t\t(xy 95.7505 78.540691) (xy 95.719799 78.426114) (xy 95.719797 78.426111) (xy 95.719797 78.426109)\r\n\t\t\t\t(xy 95.660492 78.323391) (xy 95.66049 78.323389) (xy 95.660489 78.323387) (xy 95.576613 78.239511)\r\n\t\t\t\t(xy 95.57661 78.239509) (xy 95.576608 78.239507) (xy 95.542713 78.219938) (xy 95.542712 78.219938)\r\n\t\t\t\t(xy 95.473888 78.180202) (xy 95.473887 78.180201) (xy 95.473886 78.180201) (xy 95.359309 78.1495)\r\n\t\t\t\t(xy 95.240691 78.1495) (xy 95.170567 78.168289) (xy 95.126109 78.180202) (xy 95.023391 78.239507)\r\n\t\t\t\t(xy 94.939507 78.323391) (xy 94.880202 78.426109) (xy 94.880201 78.426114) (xy 94.8495 78.540691)\r\n\t\t\t\t(xy 74.0005 78.540691) (xy 74.0005 77.640691) (xy 75.1495 77.640691) (xy 75.1495 77.759309) (xy 75.176574 77.860351)\r\n\t\t\t\t(xy 75.180202 77.87389) (xy 75.239507 77.976608) (xy 75.239509 77.97661) (xy 75.239511 77.976613)\r\n\t\t\t\t(xy 75.323387 78.060489) (xy 75.323389 78.06049) (xy 75.323391 78.060492) (xy 75.42611 78.119797)\r\n\t\t\t\t(xy 75.426111 78.119797) (xy 75.426114 78.119799) (xy 75.540691 78.1505) (xy 75.540693 78.1505)\r\n\t\t\t\t(xy 75.659307 78.1505) (xy 75.659309 78.1505) (xy 75.695916 78.140691) (xy 99.4495 78.140691) (xy 99.4495 78.259309)\r\n\t\t\t\t(xy 99.46667 78.323387) (xy 99.480202 78.37389) (xy 99.539507 78.476608) (xy 99.539509 78.47661)\r\n\t\t\t\t(xy 99.539511 78.476613) (xy 99.623387 78.560489) (xy 99.623389 78.56049) (xy 99.623391 78.560492)\r\n\t\t\t\t(xy 99.688545 78.598109) (xy 99.729486 78.643578) (xy 99.735882 78.704429) (xy 99.709049 78.753848)\r\n\t\t\t\t(xy 99.639511 78.823386) (xy 99.639507 78.823391) (xy 99.580202 78.926109) (xy 99.580201 78.926114)\r\n\t\t\t\t(xy 99.5495 79.040691) (xy 99.5495 79.159309) (xy 99.576574 79.260351) (xy 99.580202 79.27389) (xy 99.639507 79.376608)\r\n\t\t\t\t(xy 99.639509 79.37661) (xy 99.639511 79.376613) (xy 99.667897 79.404999) (xy 99.695673 79.459514)\r\n\t\t\t\t(xy 99.686102 79.519946) (xy 99.667896 79.545004) (xy 99.625603 79.587296) (xy 99.625599 79.587302)\r\n\t\t\t\t(xy 99.566294 79.69002) (xy 99.549305 79.753424) (xy 99.535592 79.804602) (xy 99.535592 79.92322)\r\n\t\t\t\t(xy 99.542902 79.9505) (xy 99.566294 80.037801) (xy 99.625599 80.140519) (xy 99.625601 80.140521)\r\n\t\t\t\t(xy 99.625603 80.140524) (xy 99.709479 80.2244) (xy 99.709481 80.224401) (xy 99.709483 80.224403)\r\n\t\t\t\t(xy 99.779223 80.264668) (xy 99.820164 80.310138) (xy 99.826559 80.370988) (xy 99.795967 80.423976)\r\n\t\t\t\t(xy 99.779228 80.436138) (xy 99.773389 80.439509) (xy 99.689507 80.523391) (xy 99.630202 80.626109)\r\n\t\t\t\t(xy 99.630201 80.626114) (xy 99.5995 80.740691) (xy 99.5995 80.859309) (xy 99.603111 80.872785)\r\n\t\t\t\t(xy 99.630202 80.97389) (xy 99.689507 81.076608) (xy 99.689509 81.07661) (xy 99.689511 81.076613)\r\n\t\t\t\t(xy 99.773387 81.160489) (xy 99.773389 81.16049) (xy 99.773391 81.160492) (xy 99.87611 81.219797)\r\n\t\t\t\t(xy 99.876111 81.219797) (xy 99.876114 81.219799) (xy 99.990691 81.2505) (xy 99.990693 81.2505)\r\n\t\t\t\t(xy 100.109307 81.2505) (xy 100.109309 81.2505) (xy 100.223886 81.219799) (xy 100.223888 81.219797)\r\n\t\t\t\t(xy 100.22389 81.219797) (xy 100.326608 81.160492) (xy 100.326608 81.160491) (xy 100.326613 81.160489)\r\n\t\t\t\t(xy 100.410489 81.076613) (xy 100.43191 81.039511) (xy 100.469797 80.97389) (xy 100.469797 80.973888)\r\n\t\t\t\t(xy 100.469799 80.973886) (xy 100.5005 80.859309) (xy 100.5005 80.740691) (xy 100.469799 80.626114)\r\n\t\t\t\t(xy 100.469797 80.626111) (xy 100.469797 80.626109) (xy 100.410492 80.523391) (xy 100.41049 80.523389)\r\n\t\t\t\t(xy 100.410489 80.523387) (xy 100.326613 80.439511) (xy 100.320771 80.436138) (xy 100.256867 80.399242)\r\n\t\t\t\t(xy 100.215927 80.353772) (xy 100.209532 80.292922) (xy 100.240125 80.239934) (xy 100.256867 80.22777)\r\n\t\t\t\t(xy 100.262705 80.2244) (xy 100.346581 80.140524) (xy 100.405891 80.037797) (xy 100.436592 79.92322)\r\n\t\t\t\t(xy 100.436592 79.804602) (xy 100.405891 79.690025) (xy 100.405889 79.690022) (xy 100.405889 79.69002)\r\n\t\t\t\t(xy 100.346584 79.587302) (xy 100.346582 79.5873) (xy 100.346581 79.587298) (xy 100.318193 79.55891)\r\n\t\t\t\t(xy 100.290418 79.504396) (xy 100.299989 79.443964) (xy 100.318193 79.418908) (xy 100.360489 79.376613)\r\n\t\t\t\t(xy 100.37185 79.356936) (xy 100.419797 79.27389) (xy 100.419797 79.273888) (xy 100.419799 79.273886)\r\n\t\t\t\t(xy 100.4505 79.159309) (xy 100.4505 79.040691) (xy 100.419799 78.926114) (xy 100.419797 78.926111)\r\n\t\t\t\t(xy 100' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'.419797 78.926109) (xy 100.360492 78.823391) (xy 100.36049 78.823389) (xy 100.360489 78.823387)\r\n\t\t\t\t(xy 100.276613 78.739511) (xy 100.242482 78.719805) (xy 100.211453 78.70189) (xy 100.170513 78.65642)\r\n\t\t\t\t(xy 100.164118 78.59557) (xy 100.190949 78.546152) (xy 100.260489 78.476613) (xy 100.262061 78.47389)\r\n\t\t\t\t(xy 100.319797 78.37389) (xy 100.319797 78.373888) (xy 100.319799 78.373886) (xy 100.3505 78.259309)\r\n\t\t\t\t(xy 100.3505 78.240691) (xy 100.7495 78.240691) (xy 100.7495 78.359309) (xy 100.776574 78.460351)\r\n\t\t\t\t(xy 100.780202 78.47389) (xy 100.839507 78.576608) (xy 100.839509 78.57661) (xy 100.839511 78.576613)\r\n\t\t\t\t(xy 100.923387 78.660489) (xy 100.923389 78.66049) (xy 100.923391 78.660492) (xy 101.02611 78.719797)\r\n\t\t\t\t(xy 101.026111 78.719797) (xy 101.026114 78.719799) (xy 101.140691 78.7505) (xy 101.140693 78.7505)\r\n\t\t\t\t(xy 101.259307 78.7505) (xy 101.259309 78.7505) (xy 101.373886 78.719799) (xy 101.373888 78.719797)\r\n\t\t\t\t(xy 101.37389 78.719797) (xy 101.476608 78.660492) (xy 101.476608 78.660491) (xy 101.476613 78.660489)\r\n\t\t\t\t(xy 101.496411 78.640691) (xy 104.5495 78.640691) (xy 104.5495 78.759309) (xy 104.576574 78.860351)\r\n\t\t\t\t(xy 104.580202 78.87389) (xy 104.639507 78.976608) (xy 104.639509 78.97661) (xy 104.639511 78.976613)\r\n\t\t\t\t(xy 104.723387 79.060489) (xy 104.725144 79.061503) (xy 104.726117 79.062584) (xy 104.728536 79.06444)\r\n\t\t\t\t(xy 104.728192 79.064888) (xy 104.766087 79.106971) (xy 104.772485 79.167821) (xy 104.745655 79.217242)\r\n\t\t\t\t(xy 104.739513 79.223384) (xy 104.739507 79.223391) (xy 104.680202 79.326109) (xy 104.674238 79.348367)\r\n\t\t\t\t(xy 104.6495 79.440691) (xy 104.6495 79.559309) (xy 104.657 79.587298) (xy 104.680202 79.67389)\r\n\t\t\t\t(xy 104.739507 79.776608) (xy 104.739509 79.77661) (xy 104.739511 79.776613) (xy 104.823387 79.860489)\r\n\t\t\t\t(xy 104.823389 79.86049) (xy 104.823391 79.860492) (xy 104.92611 79.919797) (xy 104.926111 79.919797)\r\n\t\t\t\t(xy 104.926114 79.919799) (xy 105.040691 79.9505) (xy 105.040693 79.9505) (xy 105.159307 79.9505)\r\n\t\t\t\t(xy 105.159309 79.9505) (xy 105.273886 79.919799) (xy 105.273888 79.919797) (xy 105.27389 79.919797)\r\n\t\t\t\t(xy 105.376608 79.860492) (xy 105.376608 79.860491) (xy 105.376613 79.860489) (xy 105.460489 79.776613)\r\n\t\t\t\t(xy 105.464209 79.77017) (xy 105.509678 79.729228) (xy 105.570528 79.722832) (xy 105.623517 79.753424)\r\n\t\t\t\t(xy 105.645571 79.794043) (xy 105.648401 79.804602) (xy 105.649161 79.807439) (xy 105.708466 79.910157)\r\n\t\t\t\t(xy 105.708468 79.910159) (xy 105.70847 79.910162) (xy 105.792346 79.994038) (xy 105.792348 79.994039)\r\n\t\t\t\t(xy 105.79235 79.994041) (xy 105.895069 80.053346) (xy 105.89507 80.053346) (xy 105.895073 80.053348)\r\n\t\t\t\t(xy 106.00965 80.084049) (xy 106.009652 80.084049) (xy 106.128266 80.084049) (xy 106.128268 80.084049)\r\n\t\t\t\t(xy 106.242845 80.053348) (xy 106.242847 80.053346) (xy 106.242849 80.053346) (xy 106.345567 79.994041)\r\n\t\t\t\t(xy 106.345567 79.99404) (xy 106.345572 79.994038) (xy 106.429448 79.910162) (xy 106.488758 79.807435)\r\n\t\t\t\t(xy 106.519459 79.692858) (xy 106.519459 79.57424) (xy 106.488758 79.459663) (xy 106.488756 79.45966)\r\n\t\t\t\t(xy 106.488756 79.459658) (xy 106.429451 79.35694) (xy 106.429449 79.356938) (xy 106.429448 79.356936)\r\n\t\t\t\t(xy 106.345572 79.27306) (xy 106.345569 79.273058) (xy 106.345567 79.273056) (xy 106.242848 79.213751)\r\n\t\t\t\t(xy 106.242849 79.213751) (xy 106.22931 79.210123) (xy 106.128268 79.183049) (xy 106.00965 79.183049)\r\n\t\t\t\t(xy 105.939526 79.201838) (xy 105.895068 79.213751) (xy 105.79235 79.273056) (xy 105.708466 79.35694)\r\n\t\t\t\t(xy 105.704744 79.363387) (xy 105.659271 79.404324) (xy 105.59842 79.410714) (xy 105.545435 79.380116)\r\n\t\t\t\t(xy 105.523386 79.339502) (xy 105.519799 79.326114) (xy 105.519797 79.326111) (xy 105.519797 79.326109)\r\n\t\t\t\t(xy 105.460492 79.223391) (xy 105.46049 79.223389) (xy 105.460489 79.223387) (xy 105.376613 79.139511)\r\n\t\t\t\t(xy 105.37485 79.138493) (xy 105.373875 79.13741) (xy 105.371464 79.13556) (xy 105.371806 79.135113)\r\n\t\t\t\t(xy 105.33391 79.093024) (xy 105.327514 79.032174) (xy 105.354349 78.982752) (xy 105.360489 78.976613)\r\n\t\t\t\t(xy 105.418225 78.876613) (xy 105.419797 78.87389) (xy 105.419797 78.873888) (xy 105.419799 78.873886)\r\n\t\t\t\t(xy 105.4505 78.759309) (xy 105.4505 78.640691) (xy 105.419799 78.526114) (xy 105.419797 78.526111)\r\n\t\t\t\t(xy 105.419797 78.526109) (xy 105.360492 78.423391) (xy 105.36049 78.423389) (xy 105.360489 78.423387)\r\n\t\t\t\t(xy 105.276613 78.339511) (xy 105.27661 78.339509) (xy 105.276608 78.339507) (xy 105.173889 78.280202)\r\n\t\t\t\t(xy 105.17389 78.280202) (xy 105.160351 78.276574) (xy 105.059309 78.2495) (xy 104.940691 78.2495)\r\n\t\t\t\t(xy 104.904084 78.259309) (xy 104.826109 78.280202) (xy 104.723391 78.339507) (xy 104.639507 78.423391)\r\n\t\t\t\t(xy 104.580202 78.526109) (xy 104.57099 78.560489) (xy 104.5495 78.640691) (xy 101.496411 78.640691)\r\n\t\t\t\t(xy 101.560489 78.576613) (xy 101.618225 78.476613) (xy 101.619797 78.47389) (xy 101.619797 78.473888)\r\n\t\t\t\t(xy 101.619799 78.473886) (xy 101.6505 78.359309) (xy 101.6505 78.240691) (xy 101.619799 78.126114)\r\n\t\t\t\t(xy 101.619797 78.126111) (xy 101.619797 78.126109) (xy 101.560492 78.023391) (xy 101.56049 78.023389)\r\n\t\t\t\t(xy 101.560489 78.023387) (xy 101.476613 77.939511) (xy 101.47661 77.939509) (xy 101.476608 77.939507)\r\n\t\t\t\t(xy 101.373889 77.880202) (xy 101.37389 77.880202) (xy 101.350318 77.873886) (xy 101.259309 77.8495)\r\n\t\t\t\t(xy 101.140691 77.8495) (xy 101.099669 77.860492) (xy 101.026109 77.880202) (xy 100.923391 77.939507)\r\n\t\t\t\t(xy 100.839507 78.023391) (xy 100.780202 78.126109) (xy 100.773667 78.1505) (xy 100.7495 78.240691)\r\n\t\t\t\t(xy 100.3505 78.240691) (xy 100.3505 78.140691) (xy 100.340055 78.101711) (xy 100.339353 78.092547)\r\n\t\t\t\t(xy 100.344496 78.071316) (xy 100.345639 78.049506) (xy 100.351547 78.042208) (xy 100.353759 78.033082)\r\n\t\t\t\t(xy 100.370398 78.018929) (xy 100.384143 78.001955) (xy 100.397179 77.99615) (xy 100.400366 77.99344)\r\n\t\t\t\t(xy 100.403869 77.993171) (xy 100.412435 77.989357) (xy 100.459759 77.976677) (xy 100.459761 77.976675)\r\n\t\t\t\t(xy 100.459763 77.976675) (xy 100.562481 77.91737) (xy 100.562481 77.917369) (xy 100.562486 77.917367)\r\n\t\t\t\t(xy 100.646362 77.833491) (xy 100.68445 77.767521) (xy 100.70567 77.730768) (xy 100.70567 77.730766)\r\n\t\t\t\t(xy 100.705672 77.730764) (xy 100.729807 77.640691) (xy 102.4495 77.640691) (xy 102.4495 77.759309)\r\n\t\t\t\t(xy 102.476574 77.860351) (xy 102.480202 77.87389) (xy 102.539507 77.976608) (xy 102.539509 77.97661)\r\n\t\t\t\t(xy 102.539511 77.976613) (xy 102.623387 78.060489) (xy 102.623389 78.06049) (xy 102.623391 78.060492)\r\n\t\t\t\t(xy 102.72611 78.119797) (xy 102.726111 78.119797) (xy 102.726114 78.119799) (xy 102.840691 78.1505)\r\n\t\t\t\t(xy 102.840693 78.1505) (xy 102.959307 78.1505) (xy 102.959309 78.1505) (xy 103.073886 78.119799)\r\n\t\t\t\t(xy 103.073888 78.119797) (xy 103.07389 78.119797) (xy 103.176608 78.060492) (xy 103.176608 78.060491)\r\n\t\t\t\t(xy 103.176613 78.060489) (xy 103.260489 77.976613) (xy 103.260492 77.976608) (xy 103.319797 77.87389)\r\n\t\t\t\t(xy 103.319797 77.873888) (xy 103.319799 77.873886) (xy 103.3505 77.759309) (xy 103.3505 77.640691)\r\n\t\t\t\t(xy 103.319799 77.526114) (xy 103.319797 77.526111) (xy 103.319797 77.526109) (xy 103.260492 77.423391)\r\n\t\t\t\t(xy 103.26049 77.423389) (xy 103.260489 77.423387) (xy 103.176613 77.339511) (xy 103.17661 77.339509)\r\n\t\t\t\t(xy 103.176608 77.339507) (xy 103.073889 77.280202) (xy 103.07389 77.280202) (xy 103.048467 77.27339)\r\n\t\t\t\t(xy 102.959309 77.2495) (xy 102.840691 77.2495) (xy 102.770567 77.268289) (xy 102.726109 77.280202)\r\n\t\t\t\t(xy 102.623391 77.339507) (xy 102.539507 77.423391) (xy 102.480202 77.526109) (xy 102.480201 77.526114)\r\n\t\t\t\t(xy 102.4495 77.640691) (xy 100.729807 77.640691) (xy 100.736373 77.616187) (xy 100.736373 77.497569)\r\n\t\t\t\t(xy 100.705672 77.382992) (xy 100.70567 77.382989) (xy 100.70567 77.382987) (xy 100.646365 77.280269)\r\n\t\t\t\t(xy 100.646363 77.280267) (xy 100.646362 77.280265) (xy 100.570741 77.204644) (xy 100.542966 77.15013)\r\n\t\t\t\t(xy 100.552537 77.089698) (xy 100.557247 77.082234) (xy 100.557245 77.082233) (xy 100.619797 76.97389)\r\n\t\t\t\t(xy 100.619797 76.973888) (xy 100.619799 76.973886) (xy 100.642091 76.890691) (xy 109.3495 76.890691)\r\n\t\t\t\t(xy 109.3495 77.009309) (xy 109.367533 77.076608) (xy 109.380202 77.' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'12389) (xy 109.439507 77.226608)\r\n\t\t\t\t(xy 109.439509 77.22661) (xy 109.439511 77.226613) (xy 109.523387 77.310489) (xy 109.523389 77.31049)\r\n\t\t\t\t(xy 109.523391 77.310492) (xy 109.62611 77.369797) (xy 109.626111 77.369797) (xy 109.626114 77.369799)\r\n\t\t\t\t(xy 109.740691 77.4005) (xy 109.740693 77.4005) (xy 109.859307 77.4005) (xy 109.859309 77.4005)\r\n\t\t\t\t(xy 109.973886 77.369799) (xy 109.973888 77.369797) (xy 109.97389 77.369797) (xy 110.076608 77.310492)\r\n\t\t\t\t(xy 110.076608 77.310491) (xy 110.076613 77.310489) (xy 110.160489 77.226613) (xy 110.188636 77.177862)\r\n\t\t\t\t(xy 110.219797 77.12389) (xy 110.219797 77.123888) (xy 110.219799 77.123886) (xy 110.2505 77.009309)\r\n\t\t\t\t(xy 110.2505 76.890691) (xy 110.219799 76.776114) (xy 110.219797 76.776111) (xy 110.219797 76.776109)\r\n\t\t\t\t(xy 110.199348 76.740691) (xy 114.7495 76.740691) (xy 114.7495 76.859309) (xy 114.768186 76.929044)\r\n\t\t\t\t(xy 114.780202 76.97389) (xy 114.839507 77.076608) (xy 114.839509 77.07661) (xy 114.839511 77.076613)\r\n\t\t\t\t(xy 114.867897 77.104999) (xy 114.895673 77.159514) (xy 114.886102 77.219946) (xy 114.867897 77.245004)\r\n\t\t\t\t(xy 114.839507 77.273394) (xy 114.780202 77.376112) (xy 114.763037 77.440172) (xy 114.7495 77.490694)\r\n\t\t\t\t(xy 114.7495 77.609312) (xy 114.766803 77.673886) (xy 114.780202 77.723893) (xy 114.839507 77.826611)\r\n\t\t\t\t(xy 114.839509 77.826613) (xy 114.839511 77.826616) (xy 114.867897 77.855002) (xy 114.895673 77.909517)\r\n\t\t\t\t(xy 114.886102 77.969949) (xy 114.867897 77.995007) (xy 114.839507 78.023397) (xy 114.780202 78.126115)\r\n\t\t\t\t(xy 114.77117 78.159825) (xy 114.7495 78.240697) (xy 114.7495 78.359315) (xy 114.766668 78.423387)\r\n\t\t\t\t(xy 114.780202 78.473896) (xy 114.839507 78.576614) (xy 114.839509 78.576616) (xy 114.839511 78.576619)\r\n\t\t\t\t(xy 114.923387 78.660495) (xy 114.923389 78.660496) (xy 114.923391 78.660498) (xy 115.02611 78.719803)\r\n\t\t\t\t(xy 115.026111 78.719803) (xy 115.026114 78.719805) (xy 115.140691 78.750506) (xy 115.140693 78.750506)\r\n\t\t\t\t(xy 115.259307 78.750506) (xy 115.259309 78.750506) (xy 115.373886 78.719805) (xy 115.373888 78.719803)\r\n\t\t\t\t(xy 115.37389 78.719803) (xy 115.476608 78.660498) (xy 115.476608 78.660497) (xy 115.476613 78.660495)\r\n\t\t\t\t(xy 115.560489 78.576619) (xy 115.560492 78.576614) (xy 115.619797 78.473896) (xy 115.619797 78.473894)\r\n\t\t\t\t(xy 115.619799 78.473892) (xy 115.6505 78.359315) (xy 115.6505 78.240697) (xy 115.62883 78.159823)\r\n\t\t\t\t(xy 115.62883 78.159822) (xy 115.623704 78.140691) (xy 138.3495 78.140691) (xy 138.3495 78.259309)\r\n\t\t\t\t(xy 138.36667 78.323387) (xy 138.380202 78.37389) (xy 138.439507 78.476608) (xy 138.439509 78.47661)\r\n\t\t\t\t(xy 138.439511 78.476613) (xy 138.523387 78.560489) (xy 138.523389 78.56049) (xy 138.523391 78.560492)\r\n\t\t\t\t(xy 138.62611 78.619797) (xy 138.626111 78.619797) (xy 138.626114 78.619799) (xy 138.740691 78.6505)\r\n\t\t\t\t(xy 138.740693 78.6505) (xy 138.859307 78.6505) (xy 138.859309 78.6505) (xy 138.973886 78.619799)\r\n\t\t\t\t(xy 138.973888 78.619797) (xy 138.97389 78.619797) (xy 139.076608 78.560492) (xy 139.076608 78.560491)\r\n\t\t\t\t(xy 139.076613 78.560489) (xy 139.160489 78.476613) (xy 139.162061 78.47389) (xy 139.219797 78.37389)\r\n\t\t\t\t(xy 139.219797 78.373888) (xy 139.219799 78.373886) (xy 139.2505 78.259309) (xy 139.2505 78.140691)\r\n\t\t\t\t(xy 139.219799 78.026114) (xy 139.219797 78.026111) (xy 139.219797 78.026109) (xy 139.160492 77.923391)\r\n\t\t\t\t(xy 139.16049 77.923389) (xy 139.160489 77.923387) (xy 139.076613 77.839511) (xy 139.07661 77.839509)\r\n\t\t\t\t(xy 139.076608 77.839507) (xy 138.973889 77.780202) (xy 138.97389 77.780202) (xy 138.960351 77.776574)\r\n\t\t\t\t(xy 138.859309 77.7495) (xy 138.740691 77.7495) (xy 138.704084 77.759309) (xy 138.626109 77.780202)\r\n\t\t\t\t(xy 138.523391 77.839507) (xy 138.439507 77.923391) (xy 138.380202 78.026109) (xy 138.373933 78.049506)\r\n\t\t\t\t(xy 138.3495 78.140691) (xy 115.623704 78.140691) (xy 115.619799 78.12612) (xy 115.619797 78.126116)\r\n\t\t\t\t(xy 115.560492 78.023397) (xy 115.56049 78.023395) (xy 115.560489 78.023393) (xy 115.532101 77.995005)\r\n\t\t\t\t(xy 115.504326 77.940491) (xy 115.513897 77.880059) (xy 115.532098 77.855006) (xy 115.560489 77.826616)\r\n\t\t\t\t(xy 115.560492 77.826611) (xy 115.619797 77.723893) (xy 115.619797 77.723891) (xy 115.619799 77.723889)\r\n\t\t\t\t(xy 115.6505 77.609312) (xy 115.6505 77.490694) (xy 115.619799 77.376117) (xy 115.619797 77.376114)\r\n\t\t\t\t(xy 115.619797 77.376112) (xy 115.560492 77.273394) (xy 115.56049 77.273392) (xy 115.560489 77.27339)\r\n\t\t\t\t(xy 115.532101 77.245002) (xy 115.504326 77.190488) (xy 115.513897 77.130056) (xy 115.532098 77.105003)\r\n\t\t\t\t(xy 115.560489 77.076613) (xy 115.591394 77.023085) (xy 115.619797 76.97389) (xy 115.619797 76.973888)\r\n\t\t\t\t(xy 115.619799 76.973886) (xy 115.6505 76.859309) (xy 115.6505 76.740691) (xy 115.639935 76.701262)\r\n\t\t\t\t(xy 115.64046 76.69123) (xy 119.1495 76.69123) (xy 119.1495 76.858769) (xy 119.182183 77.023079)\r\n\t\t\t\t(xy 119.182185 77.023085) (xy 119.246296 77.177862) (xy 119.274318 77.219799) (xy 119.339374 77.317162)\r\n\t\t\t\t(xy 119.457838 77.435626) (xy 119.597137 77.528703) (xy 119.751918 77.592816) (xy 119.916233 77.6255)\r\n\t\t\t\t(xy 119.916234 77.6255) (xy 120.083766 77.6255) (xy 120.083767 77.6255) (xy 120.248082 77.592816)\r\n\t\t\t\t(xy 120.402863 77.528703) (xy 120.542162 77.435626) (xy 120.660626 77.317162) (xy 120.753703 77.177863)\r\n\t\t\t\t(xy 120.817816 77.023082) (xy 120.8505 76.858767) (xy 120.8505 76.691233) (xy 120.817816 76.526918)\r\n\t\t\t\t(xy 120.753703 76.372137) (xy 120.660626 76.232838) (xy 120.542162 76.114374) (xy 120.412961 76.028044)\r\n\t\t\t\t(xy 120.402862 76.021296) (xy 120.248085 75.957185) (xy 120.248079 75.957183) (xy 120.165167 75.940691)\r\n\t\t\t\t(xy 138.412 75.940691) (xy 138.412 76.059309) (xy 138.433806 76.140691) (xy 138.442702 76.17389)\r\n\t\t\t\t(xy 138.502007 76.276608) (xy 138.502009 76.27661) (xy 138.502011 76.276613) (xy 138.585887 76.360489)\r\n\t\t\t\t(xy 138.585889 76.36049) (xy 138.585891 76.360492) (xy 138.68861 76.419797) (xy 138.688611 76.419797)\r\n\t\t\t\t(xy 138.688614 76.419799) (xy 138.803191 76.4505) (xy 138.803193 76.4505) (xy 138.921807 76.4505)\r\n\t\t\t\t(xy 138.921809 76.4505) (xy 139.036386 76.419799) (xy 139.036388 76.419797) (xy 139.03639 76.419797)\r\n\t\t\t\t(xy 139.139108 76.360492) (xy 139.139108 76.360491) (xy 139.139113 76.360489) (xy 139.222989 76.276613)\r\n\t\t\t\t(xy 139.282299 76.173886) (xy 139.291194 76.140691) (xy 140.1495 76.140691) (xy 140.1495 76.259309)\r\n\t\t\t\t(xy 140.16304 76.309841) (xy 140.180202 76.37389) (xy 140.239507 76.476608) (xy 140.239509 76.47661)\r\n\t\t\t\t(xy 140.239511 76.476613) (xy 140.323387 76.560489) (xy 140.323389 76.56049) (xy 140.323391 76.560492)\r\n\t\t\t\t(xy 140.42611 76.619797) (xy 140.426111 76.619797) (xy 140.426114 76.619799) (xy 140.540691 76.6505)\r\n\t\t\t\t(xy 140.540693 76.6505) (xy 140.659308 76.6505) (xy 140.659309 76.6505) (xy 140.773113 76.620006)\r\n\t\t\t\t(xy 140.834213 76.623207) (xy 140.881763 76.661712) (xy 140.884471 76.666132) (xy 140.935867 76.755152)\r\n\t\t\t\t(xy 140.935869 76.755154) (xy 140.935871 76.755157) (xy 141.019747 76.839033) (xy 141.019749 76.839034)\r\n\t\t\t\t(xy 141.019751 76.839036) (xy 141.12247 76.898341) (xy 141.122471 76.898341) (xy 141.122474 76.898343)\r\n\t\t\t\t(xy 141.237051 76.929044) (xy 141.237053 76.929044) (xy 141.355667 76.929044) (xy 141.355669 76.929044)\r\n\t\t\t\t(xy 141.470246 76.898343) (xy 141.470248 76.898341) (xy 141.47025 76.898341) (xy 141.572968 76.839036)\r\n\t\t\t\t(xy 141.572968 76.839035) (xy 141.572973 76.839033) (xy 141.656849 76.755157) (xy 141.656852 76.755152)\r\n\t\t\t\t(xy 141.716157 76.652434) (xy 141.716157 76.652432) (xy 141.716159 76.65243) (xy 141.74686 76.537853)\r\n\t\t\t\t(xy 141.74686 76.419235) (xy 141.716159 76.304658) (xy 141.716157 76.304655) (xy 141.716157 76.304653)\r\n\t\t\t\t(xy 141.656852 76.201935) (xy 141.65685 76.201933) (xy 141.656849 76.201931) (xy 141.572973 76.118055)\r\n\t\t\t\t(xy 141.57297 76.118053) (xy 141.572968 76.118051) (xy 141.470249 76.058746) (xy 141.47025 76.058746)\r\n\t\t\t\t(xy 141.456711 76.055118) (xy 141.355669 76.028044) (xy 141.237051 76.028044) (xy 141.123247 76.058538)\r\n\t\t\t\t(xy 141.062145 76.055335) (xy 141.014596 76.01683) (xy 141.011888 76.012411) (xy 140.960492 75.923391)\r\n\t\t\t\t(xy 140.96049 75.923389) (xy 140.960489 75.923387) (xy 140.876613 75.839511) (xy 140.87661 75.839509)\r\n\t\t\t\t(xy 140.876608 75.8395' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'07) (xy 140.773889 75.780202) (xy 140.77389 75.780202) (xy 140.760351 75.776574)\r\n\t\t\t\t(xy 140.659309 75.7495) (xy 140.540691 75.7495) (xy 140.499669 75.760492) (xy 140.426109 75.780202)\r\n\t\t\t\t(xy 140.323391 75.839507) (xy 140.239507 75.923391) (xy 140.180202 76.026109) (xy 140.180201 76.026114)\r\n\t\t\t\t(xy 140.1495 76.140691) (xy 139.291194 76.140691) (xy 139.296792 76.119799) (xy 139.299798 76.108581)\r\n\t\t\t\t(xy 139.299798 76.108579) (xy 139.313 76.059309) (xy 139.313 75.940691) (xy 139.282299 75.826114)\r\n\t\t\t\t(xy 139.282297 75.826111) (xy 139.282297 75.826109) (xy 139.222992 75.723391) (xy 139.22299 75.723389)\r\n\t\t\t\t(xy 139.222989 75.723387) (xy 139.139113 75.639511) (xy 139.13911 75.639509) (xy 139.139108 75.639507)\r\n\t\t\t\t(xy 139.036389 75.580202) (xy 139.03639 75.580202) (xy 139.012818 75.573886) (xy 138.921809 75.5495)\r\n\t\t\t\t(xy 138.803191 75.5495) (xy 138.733067 75.568289) (xy 138.688609 75.580202) (xy 138.585891 75.639507)\r\n\t\t\t\t(xy 138.502007 75.723391) (xy 138.442702 75.826109) (xy 138.436167 75.8505) (xy 138.412 75.940691)\r\n\t\t\t\t(xy 120.165167 75.940691) (xy 120.083769 75.9245) (xy 120.083767 75.9245) (xy 119.916233 75.9245)\r\n\t\t\t\t(xy 119.91623 75.9245) (xy 119.75192 75.957183) (xy 119.751914 75.957185) (xy 119.597137 76.021296)\r\n\t\t\t\t(xy 119.457838 76.114374) (xy 119.457834 76.114377) (xy 119.339377 76.232834) (xy 119.339374 76.232838)\r\n\t\t\t\t(xy 119.246296 76.372137) (xy 119.182185 76.526914) (xy 119.182183 76.52692) (xy 119.1495 76.69123)\r\n\t\t\t\t(xy 115.64046 76.69123) (xy 115.643135 76.640162) (xy 115.681639 76.59261) (xy 115.709934 76.580012)\r\n\t\t\t\t(xy 115.748055 76.569798) (xy 115.828434 76.523391) (xy 115.850777 76.510491) (xy 115.850777 76.51049)\r\n\t\t\t\t(xy 115.850782 76.510488) (xy 115.934658 76.426612) (xy 115.961454 76.3802) (xy 115.993966 76.323889)\r\n\t\t\t\t(xy 115.993966 76.323887) (xy 115.993968 76.323885) (xy 116.024669 76.209308) (xy 116.024669 76.09069)\r\n\t\t\t\t(xy 115.993968 75.976113) (xy 115.993966 75.97611) (xy 115.993966 75.976108) (xy 115.934661 75.87339)\r\n\t\t\t\t(xy 115.934659 75.873388) (xy 115.934658 75.873386) (xy 115.850782 75.78951) (xy 115.850779 75.789508)\r\n\t\t\t\t(xy 115.850777 75.789506) (xy 115.748058 75.730201) (xy 115.748059 75.730201) (xy 115.73452 75.726573)\r\n\t\t\t\t(xy 115.633478 75.699499) (xy 115.51486 75.699499) (xy 115.444736 75.718288) (xy 115.400278 75.730201)\r\n\t\t\t\t(xy 115.29756 75.789506) (xy 115.213676 75.87339) (xy 115.154371 75.976108) (xy 115.140972 76.026114)\r\n\t\t\t\t(xy 115.132229 76.058746) (xy 115.123669 76.090691) (xy 115.123669 76.209307) (xy 115.134234 76.248739)\r\n\t\t\t\t(xy 115.131031 76.309841) (xy 115.092525 76.35739) (xy 115.064231 76.369987) (xy 115.026114 76.3802)\r\n\t\t\t\t(xy 115.02611 76.380202) (xy 114.923391 76.439507) (xy 114.839507 76.523391) (xy 114.780202 76.626109)\r\n\t\t\t\t(xy 114.770662 76.661712) (xy 114.7495 76.740691) (xy 110.199348 76.740691) (xy 110.160492 76.673391)\r\n\t\t\t\t(xy 110.16049 76.673389) (xy 110.160489 76.673387) (xy 110.076613 76.589511) (xy 110.07661 76.589509)\r\n\t\t\t\t(xy 110.076608 76.589507) (xy 109.973889 76.530202) (xy 109.97389 76.530202) (xy 109.948456 76.523387)\r\n\t\t\t\t(xy 109.859309 76.4995) (xy 109.740691 76.4995) (xy 109.670567 76.518289) (xy 109.626109 76.530202)\r\n\t\t\t\t(xy 109.523391 76.589507) (xy 109.439507 76.673391) (xy 109.380202 76.776109) (xy 109.380201 76.776114)\r\n\t\t\t\t(xy 109.3495 76.890691) (xy 100.642091 76.890691) (xy 100.6505 76.859309) (xy 100.6505 76.740691)\r\n\t\t\t\t(xy 100.619799 76.626114) (xy 100.619797 76.626111) (xy 100.619797 76.626109) (xy 100.560492 76.523391)\r\n\t\t\t\t(xy 100.56049 76.523389) (xy 100.560489 76.523387) (xy 100.476613 76.439511) (xy 100.47661 76.439509)\r\n\t\t\t\t(xy 100.476608 76.439507) (xy 100.373889 76.380202) (xy 100.37389 76.380202) (xy 100.335767 76.369987)\r\n\t\t\t\t(xy 100.259309 76.3495) (xy 100.140691 76.3495) (xy 100.099669 76.360492) (xy 100.026109 76.380202)\r\n\t\t\t\t(xy 99.923391 76.439507) (xy 99.839507 76.523391) (xy 99.780202 76.626109) (xy 99.770662 76.661712)\r\n\t\t\t\t(xy 99.7495 76.740691) (xy 99.7495 76.859309) (xy 99.768186 76.929044) (xy 99.780202 76.97389) (xy 99.839507 77.076608)\r\n\t\t\t\t(xy 99.839509 77.07661) (xy 99.839511 77.076613) (xy 99.91513 77.152232) (xy 99.942906 77.206747)\r\n\t\t\t\t(xy 99.933335 77.267179) (xy 99.928625 77.274643) (xy 99.928628 77.274645) (xy 99.866075 77.382987)\r\n\t\t\t\t(xy 99.835373 77.49757) (xy 99.835373 77.616189) (xy 99.843434 77.646271) (xy 99.840233 77.707373)\r\n\t\t\t\t(xy 99.801728 77.754923) (xy 99.773433 77.767521) (xy 99.726112 77.780201) (xy 99.72611 77.780202)\r\n\t\t\t\t(xy 99.623391 77.839507) (xy 99.539507 77.923391) (xy 99.480202 78.026109) (xy 99.473933 78.049506)\r\n\t\t\t\t(xy 99.4495 78.140691) (xy 75.695916 78.140691) (xy 75.773886 78.119799) (xy 75.773888 78.119797)\r\n\t\t\t\t(xy 75.77389 78.119797) (xy 75.876608 78.060492) (xy 75.876608 78.060491) (xy 75.876613 78.060489)\r\n\t\t\t\t(xy 75.960489 77.976613) (xy 75.960492 77.976608) (xy 76.019797 77.87389) (xy 76.019797 77.873888)\r\n\t\t\t\t(xy 76.019799 77.873886) (xy 76.0505 77.759309) (xy 76.0505 77.640691) (xy 76.019799 77.526114)\r\n\t\t\t\t(xy 76.019797 77.526111) (xy 76.019797 77.526109) (xy 75.995313 77.483702) (xy 75.97048 77.440691)\r\n\t\t\t\t(xy 79.4495 77.440691) (xy 79.4495 77.559309) (xy 79.46474 77.616185) (xy 79.480202 77.67389) (xy 79.539507 77.776608)\r\n\t\t\t\t(xy 79.539509 77.77661) (xy 79.539511 77.776613) (xy 79.623387 77.860489) (xy 79.623389 77.86049)\r\n\t\t\t\t(xy 79.623391 77.860492) (xy 79.72611 77.919797) (xy 79.726111 77.919797) (xy 79.726114 77.919799)\r\n\t\t\t\t(xy 79.840691 77.9505) (xy 79.840693 77.9505) (xy 79.959307 77.9505) (xy 79.959309 77.9505) (xy 80.073886 77.919799)\r\n\t\t\t\t(xy 80.073888 77.919797) (xy 80.07389 77.919797) (xy 80.176608 77.860492) (xy 80.176608 77.860491)\r\n\t\t\t\t(xy 80.176613 77.860489) (xy 80.260489 77.776613) (xy 80.290927 77.723893) (xy 80.319797 77.67389)\r\n\t\t\t\t(xy 80.319797 77.673888) (xy 80.319799 77.673886) (xy 80.3505 77.559309) (xy 80.3505 77.440691)\r\n\t\t\t\t(xy 80.319799 77.326114) (xy 80.319797 77.326111) (xy 80.319797 77.326109) (xy 80.260492 77.223391)\r\n\t\t\t\t(xy 80.26049 77.223389) (xy 80.260489 77.223387) (xy 80.176613 77.139511) (xy 80.17661 77.139509)\r\n\t\t\t\t(xy 80.176608 77.139507) (xy 80.073889 77.080202) (xy 80.07389 77.080202) (xy 80.060351 77.076574)\r\n\t\t\t\t(xy 79.959309 77.0495) (xy 79.840691 77.0495) (xy 79.770567 77.068289) (xy 79.726109 77.080202)\r\n\t\t\t\t(xy 79.623391 77.139507) (xy 79.539507 77.223391) (xy 79.480202 77.326109) (xy 79.466804 77.376112)\r\n\t\t\t\t(xy 79.4495 77.440691) (xy 75.97048 77.440691) (xy 75.960492 77.423391) (xy 75.96049 77.423389)\r\n\t\t\t\t(xy 75.960489 77.423387) (xy 75.876613 77.339511) (xy 75.87661 77.339509) (xy 75.876608 77.339507)\r\n\t\t\t\t(xy 75.773889 77.280202) (xy 75.77389 77.280202) (xy 75.748467 77.27339) (xy 75.659309 77.2495)\r\n\t\t\t\t(xy 75.540691 77.2495) (xy 75.470567 77.268289) (xy 75.426109 77.280202) (xy 75.323391 77.339507)\r\n\t\t\t\t(xy 75.239507 77.423391) (xy 75.180202 77.526109) (xy 75.180201 77.526114) (xy 75.1495 77.640691)\r\n\t\t\t\t(xy 74.0005 77.640691) (xy 74.0005 76.740691) (xy 81.9495 76.740691) (xy 81.9495 76.859309) (xy 81.968186 76.929044)\r\n\t\t\t\t(xy 81.980202 76.97389) (xy 82.039507 77.076608) (xy 82.039509 77.07661) (xy 82.039511 77.076613)\r\n\t\t\t\t(xy 82.123387 77.160489) (xy 82.123389 77.16049) (xy 82.123391 77.160492) (xy 82.22611 77.219797)\r\n\t\t\t\t(xy 82.226111 77.219797) (xy 82.226114 77.219799) (xy 82.340691 77.2505) (xy 82.340693 77.2505)\r\n\t\t\t\t(xy 82.459307 77.2505) (xy 82.459309 77.2505) (xy 82.573886 77.219799) (xy 82.573888 77.219797)\r\n\t\t\t\t(xy 82.57389 77.219797) (xy 82.676608 77.160492) (xy 82.676608 77.160491) (xy 82.676613 77.160489)\r\n\t\t\t\t(xy 82.760489 77.076613) (xy 82.791394 77.023085) (xy 82.819797 76.97389) (xy 82.819797 76.973888)\r\n\t\t\t\t(xy 82.819799 76.973886) (xy 82.8505 76.859309) (xy 82.8505 76.740691) (xy 82.819799 76.626114)\r\n\t\t\t\t(xy 82.819797 76.626111) (xy 82.819797 76.626109) (xy 82.760492 76.523391) (xy 82.76049 76.523389)\r\n\t\t\t\t(xy 82.760489 76.523387) (xy 82.676613 76.439511) (xy 82.67661 76.439509) (xy 82.676608 76.439507)\r\n\t\t\t\t(xy 82.573889 76.380202) (xy 82.57389 76.380202) (xy 82.535767 76.369987) (xy 82.459309 76.3495)\r\n\t\t\t\t(xy 82.340691 76.3495) (xy 82.299669 76.360492) (xy 82.226109 76.380202) (xy 82.123391 76.439507)\r\n\t\t\t\t(xy 82.039507 76.523391) (xy 81.980202 76.626109) (xy 81.9' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'70662 76.661712) (xy 81.9495 76.740691)\r\n\t\t\t\t(xy 74.0005 76.740691) (xy 74.0005 75.340691) (xy 96.7495 75.340691) (xy 96.7495 75.459309) (xy 96.768849 75.531519)\r\n\t\t\t\t(xy 96.780202 75.57389) (xy 96.839507 75.676608) (xy 96.839509 75.67661) (xy 96.839511 75.676613)\r\n\t\t\t\t(xy 96.923387 75.760489) (xy 96.923389 75.76049) (xy 96.923391 75.760492) (xy 97.02611 75.819797)\r\n\t\t\t\t(xy 97.026111 75.819797) (xy 97.026114 75.819799) (xy 97.140691 75.8505) (xy 97.140693 75.8505)\r\n\t\t\t\t(xy 97.259307 75.8505) (xy 97.259309 75.8505) (xy 97.373886 75.819799) (xy 97.373888 75.819797)\r\n\t\t\t\t(xy 97.37389 75.819797) (xy 97.476608 75.760492) (xy 97.476608 75.760491) (xy 97.476613 75.760489)\r\n\t\t\t\t(xy 97.560489 75.676613) (xy 97.569798 75.660489) (xy 97.581229 75.640691) (xy 105.6495 75.640691)\r\n\t\t\t\t(xy 105.6495 75.759309) (xy 105.667919 75.82805) (xy 105.680202 75.87389) (xy 105.739507 75.976608)\r\n\t\t\t\t(xy 105.739509 75.97661) (xy 105.739511 75.976613) (xy 105.823387 76.060489) (xy 105.823389 76.06049)\r\n\t\t\t\t(xy 105.823391 76.060492) (xy 105.92611 76.119797) (xy 105.926111 76.119797) (xy 105.926114 76.119799)\r\n\t\t\t\t(xy 106.040691 76.1505) (xy 106.040693 76.1505) (xy 106.159307 76.1505) (xy 106.159309 76.1505)\r\n\t\t\t\t(xy 106.273886 76.119799) (xy 106.273888 76.119797) (xy 106.27389 76.119797) (xy 106.376608 76.060492)\r\n\t\t\t\t(xy 106.376608 76.060491) (xy 106.376613 76.060489) (xy 106.460489 75.976613) (xy 106.471706 75.957185)\r\n\t\t\t\t(xy 106.519797 75.87389) (xy 106.519797 75.873888) (xy 106.519799 75.873886) (xy 106.5505 75.759309)\r\n\t\t\t\t(xy 106.5505 75.640691) (xy 106.519799 75.526114) (xy 106.519797 75.526111) (xy 106.519797 75.526109)\r\n\t\t\t\t(xy 106.460492 75.423391) (xy 106.46049 75.423389) (xy 106.460489 75.423387) (xy 106.376613 75.339511)\r\n\t\t\t\t(xy 106.37661 75.339509) (xy 106.376608 75.339507) (xy 106.273889 75.280202) (xy 106.27389 75.280202)\r\n\t\t\t\t(xy 106.260351 75.276574) (xy 106.159309 75.2495) (xy 106.040691 75.2495) (xy 105.970567 75.268289)\r\n\t\t\t\t(xy 105.926109 75.280202) (xy 105.823391 75.339507) (xy 105.739507 75.423391) (xy 105.680202 75.526109)\r\n\t\t\t\t(xy 105.6674 75.573886) (xy 105.6495 75.640691) (xy 97.581229 75.640691) (xy 97.613555 75.584702)\r\n\t\t\t\t(xy 97.613555 75.584701) (xy 97.616153 75.580201) (xy 97.619799 75.573886) (xy 97.6505 75.459309)\r\n\t\t\t\t(xy 97.6505 75.340691) (xy 97.619799 75.226114) (xy 97.619797 75.226111) (xy 97.619797 75.226109)\r\n\t\t\t\t(xy 97.560492 75.123391) (xy 97.56049 75.123389) (xy 97.560489 75.123387) (xy 97.476613 75.039511)\r\n\t\t\t\t(xy 97.47661 75.039509) (xy 97.476608 75.039507) (xy 97.373889 74.980202) (xy 97.37389 74.980202)\r\n\t\t\t\t(xy 97.360351 74.976574) (xy 97.259309 74.9495) (xy 97.140691 74.9495) (xy 97.070567 74.968289)\r\n\t\t\t\t(xy 97.026109 74.980202) (xy 96.923391 75.039507) (xy 96.839507 75.123391) (xy 96.780202 75.226109)\r\n\t\t\t\t(xy 96.765708 75.280201) (xy 96.7495 75.340691) (xy 74.0005 75.340691) (xy 74.0005 74.440691) (xy 114.7495 74.440691)\r\n\t\t\t\t(xy 114.7495 74.559309) (xy 114.776574 74.660351) (xy 114.780202 74.67389) (xy 114.839507 74.776608)\r\n\t\t\t\t(xy 114.839509 74.77661) (xy 114.839511 74.776613) (xy 114.923387 74.860489) (xy 114.923389 74.86049)\r\n\t\t\t\t(xy 114.923391 74.860492) (xy 115.02611 74.919797) (xy 115.026111 74.919797) (xy 115.026114 74.919799)\r\n\t\t\t\t(xy 115.140691 74.9505) (xy 115.140693 74.9505) (xy 115.259307 74.9505) (xy 115.259309 74.9505)\r\n\t\t\t\t(xy 115.373886 74.919799) (xy 115.373888 74.919797) (xy 115.37389 74.919797) (xy 115.476608 74.860492)\r\n\t\t\t\t(xy 115.476608 74.860491) (xy 115.476613 74.860489) (xy 115.560489 74.776613) (xy 115.619799 74.673886)\r\n\t\t\t\t(xy 115.6505 74.559309) (xy 115.6505 74.440691) (xy 115.619799 74.326114) (xy 115.619797 74.326111)\r\n\t\t\t\t(xy 115.619797 74.326109) (xy 115.560492 74.223391) (xy 115.56049 74.223389) (xy 115.560489 74.223387)\r\n\t\t\t\t(xy 115.476613 74.139511) (xy 115.47661 74.139509) (xy 115.476608 74.139507) (xy 115.408746 74.100327)\r\n\t\t\t\t(xy 115.408745 74.100327) (xy 115.373888 74.080202) (xy 115.373887 74.080201) (xy 115.373886 74.080201)\r\n\t\t\t\t(xy 115.259309 74.0495) (xy 115.140691 74.0495) (xy 115.070567 74.068289) (xy 115.026109 74.080202)\r\n\t\t\t\t(xy 114.923391 74.139507) (xy 114.839507 74.223391) (xy 114.780202 74.326109) (xy 114.780201 74.326114)\r\n\t\t\t\t(xy 114.7495 74.440691) (xy 74.0005 74.440691) (xy 74.0005 74.018478) (xy 120.5995 74.018478) (xy 120.5995 75.531521)\r\n\t\t\t\t(xy 120.599501 75.531523) (xy 120.614352 75.625299) (xy 120.614354 75.625304) (xy 120.67195 75.738342)\r\n\t\t\t\t(xy 120.761658 75.82805) (xy 120.874696 75.885646) (xy 120.968481 75.9005) (xy 122.231518 75.900499)\r\n\t\t\t\t(xy 122.231521 75.900499) (xy 122.231522 75.900498) (xy 122.278411 75.893072) (xy 122.325299 75.885647)\r\n\t\t\t\t(xy 122.325299 75.885646) (xy 122.325304 75.885646) (xy 122.438342 75.82805) (xy 122.52805 75.738342)\r\n\t\t\t\t(xy 122.585646 75.625304) (xy 122.6005 75.531519) (xy 122.600499 74.551456) (xy 123.0995 74.551456)\r\n\t\t\t\t(xy 123.0995 74.998543) (xy 123.137949 75.191834) (xy 123.137949 75.191836) (xy 123.213367 75.373913)\r\n\t\t\t\t(xy 123.213368 75.373914) (xy 123.322861 75.537782) (xy 123.462218 75.677139) (xy 123.626086 75.786632)\r\n\t\t\t\t(xy 123.808165 75.862051) (xy 124.001459 75.9005) (xy 124.00146 75.9005) (xy 124.19854 75.9005)\r\n\t\t\t\t(xy 124.198541 75.9005) (xy 124.391835 75.862051) (xy 124.573914 75.786632) (xy 124.737782 75.677139)\r\n\t\t\t\t(xy 124.877139 75.537782) (xy 124.986632 75.373914) (xy 125.062051 75.191835) (xy 125.1005 74.998541)\r\n\t\t\t\t(xy 125.1005 74.551459) (xy 125.100499 74.551456) (xy 125.5995 74.551456) (xy 125.5995 74.998543)\r\n\t\t\t\t(xy 125.637949 75.191834) (xy 125.637949 75.191836) (xy 125.713367 75.373913) (xy 125.713368 75.373914)\r\n\t\t\t\t(xy 125.822861 75.537782) (xy 125.962218 75.677139) (xy 126.126086 75.786632) (xy 126.308165 75.862051)\r\n\t\t\t\t(xy 126.501459 75.9005) (xy 126.50146 75.9005) (xy 126.69854 75.9005) (xy 126.698541 75.9005) (xy 126.891835 75.862051)\r\n\t\t\t\t(xy 127.073914 75.786632) (xy 127.237782 75.677139) (xy 127.377139 75.537782) (xy 127.486632 75.373914)\r\n\t\t\t\t(xy 127.562051 75.191835) (xy 127.6005 74.998541) (xy 127.6005 74.551459) (xy 127.600499 74.551456)\r\n\t\t\t\t(xy 128.0995 74.551456) (xy 128.0995 74.998543) (xy 128.137949 75.191834) (xy 128.137949 75.191836)\r\n\t\t\t\t(xy 128.213367 75.373913) (xy 128.213368 75.373914) (xy 128.322861 75.537782) (xy 128.462218 75.677139)\r\n\t\t\t\t(xy 128.626086 75.786632) (xy 128.808165 75.862051) (xy 129.001459 75.9005) (xy 129.00146 75.9005)\r\n\t\t\t\t(xy 129.19854 75.9005) (xy 129.198541 75.9005) (xy 129.391835 75.862051) (xy 129.573914 75.786632)\r\n\t\t\t\t(xy 129.737782 75.677139) (xy 129.877139 75.537782) (xy 129.986632 75.373914) (xy 130.062051 75.191835)\r\n\t\t\t\t(xy 130.1005 74.998541) (xy 130.1005 74.551459) (xy 130.100499 74.551456) (xy 130.5995 74.551456)\r\n\t\t\t\t(xy 130.5995 74.998543) (xy 130.637949 75.191834) (xy 130.637949 75.191836) (xy 130.713367 75.373913)\r\n\t\t\t\t(xy 130.713368 75.373914) (xy 130.822861 75.537782) (xy 130.962218 75.677139) (xy 131.126086 75.786632)\r\n\t\t\t\t(xy 131.308165 75.862051) (xy 131.501459 75.9005) (xy 131.50146 75.9005) (xy 131.69854 75.9005)\r\n\t\t\t\t(xy 131.698541 75.9005) (xy 131.891835 75.862051) (xy 132.073914 75.786632) (xy 132.237782 75.677139)\r\n\t\t\t\t(xy 132.377139 75.537782) (xy 132.486632 75.373914) (xy 132.541814 75.240691) (xy 141.6495 75.240691)\r\n\t\t\t\t(xy 141.6495 75.359309) (xy 141.66667 75.423387) (xy 141.680202 75.47389) (xy 141.739507 75.576608)\r\n\t\t\t\t(xy 141.739509 75.57661) (xy 141.739511 75.576613) (xy 141.823387 75.660489) (xy 141.823389 75.66049)\r\n\t\t\t\t(xy 141.823391 75.660492) (xy 141.92611 75.719797) (xy 141.926111 75.719797) (xy 141.926114 75.719799)\r\n\t\t\t\t(xy 142.040691 75.7505) (xy 142.040693 75.7505) (xy 142.159307 75.7505) (xy 142.159309 75.7505)\r\n\t\t\t\t(xy 142.273886 75.719799) (xy 142.273888 75.719797) (xy 142.27389 75.719797) (xy 142.376608 75.660492)\r\n\t\t\t\t(xy 142.376608 75.660491) (xy 142.376613 75.660489) (xy 142.460489 75.576613) (xy 142.462062 75.573888)\r\n\t\t\t\t(xy 142.519797 75.47389) (xy 142.519797 75.473888) (xy 142.519799 75.473886) (xy 142.5505 75.359309)\r\n\t\t\t\t(xy 142.5505 75.240691) (xy 142.519799 75.126114) (xy 142.519797 75.126111) (xy 142.519797 75.126109)\r\n\t\t\t\t(xy 142.460492 75.023391) (xy 142.46049 75.023389) (xy 142.460489 75.023387) (xy 142.376613 74.939511)\r\n\t\t\t\t(xy 142.37661 74.939509) (xy' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b' 142.376608 74.939507) (xy 142.273889 74.880202) (xy 142.27389 74.880202)\r\n\t\t\t\t(xy 142.260351 74.876574) (xy 142.159309 74.8495) (xy 142.040691 74.8495) (xy 141.999669 74.860492)\r\n\t\t\t\t(xy 141.926109 74.880202) (xy 141.823391 74.939507) (xy 141.739507 75.023391) (xy 141.680202 75.126109)\r\n\t\t\t\t(xy 141.680201 75.126114) (xy 141.6495 75.240691) (xy 132.541814 75.240691) (xy 132.562051 75.191835)\r\n\t\t\t\t(xy 132.6005 74.998541) (xy 132.6005 74.551459) (xy 132.562051 74.358165) (xy 132.486632 74.176086)\r\n\t\t\t\t(xy 132.377139 74.012218) (xy 132.237782 73.872861) (xy 132.073914 73.763368) (xy 132.073915 73.763368)\r\n\t\t\t\t(xy 132.073913 73.763367) (xy 131.891835 73.687949) (xy 131.698543 73.6495) (xy 131.698541 73.6495)\r\n\t\t\t\t(xy 131.501459 73.6495) (xy 131.501456 73.6495) (xy 131.308165 73.687949) (xy 131.308163 73.687949)\r\n\t\t\t\t(xy 131.126086 73.763367) (xy 130.962218 73.872861) (xy 130.962214 73.872864) (xy 130.822864 74.012214)\r\n\t\t\t\t(xy 130.822861 74.012218) (xy 130.713367 74.176086) (xy 130.637949 74.358163) (xy 130.637949 74.358165)\r\n\t\t\t\t(xy 130.5995 74.551456) (xy 130.100499 74.551456) (xy 130.062051 74.358165) (xy 129.986632 74.176086)\r\n\t\t\t\t(xy 129.877139 74.012218) (xy 129.737782 73.872861) (xy 129.573914 73.763368) (xy 129.573915 73.763368)\r\n\t\t\t\t(xy 129.573913 73.763367) (xy 129.391835 73.687949) (xy 129.198543 73.6495) (xy 129.198541 73.6495)\r\n\t\t\t\t(xy 129.001459 73.6495) (xy 129.001456 73.6495) (xy 128.808165 73.687949) (xy 128.808163 73.687949)\r\n\t\t\t\t(xy 128.626086 73.763367) (xy 128.462218 73.872861) (xy 128.462214 73.872864) (xy 128.322864 74.012214)\r\n\t\t\t\t(xy 128.322861 74.012218) (xy 128.213367 74.176086) (xy 128.137949 74.358163) (xy 128.137949 74.358165)\r\n\t\t\t\t(xy 128.0995 74.551456) (xy 127.600499 74.551456) (xy 127.562051 74.358165) (xy 127.486632 74.176086)\r\n\t\t\t\t(xy 127.377139 74.012218) (xy 127.237782 73.872861) (xy 127.073914 73.763368) (xy 127.073915 73.763368)\r\n\t\t\t\t(xy 127.073913 73.763367) (xy 126.891835 73.687949) (xy 126.698543 73.6495) (xy 126.698541 73.6495)\r\n\t\t\t\t(xy 126.501459 73.6495) (xy 126.501456 73.6495) (xy 126.308165 73.687949) (xy 126.308163 73.687949)\r\n\t\t\t\t(xy 126.126086 73.763367) (xy 125.962218 73.872861) (xy 125.962214 73.872864) (xy 125.822864 74.012214)\r\n\t\t\t\t(xy 125.822861 74.012218) (xy 125.713367 74.176086) (xy 125.637949 74.358163) (xy 125.637949 74.358165)\r\n\t\t\t\t(xy 125.5995 74.551456) (xy 125.100499 74.551456) (xy 125.062051 74.358165) (xy 124.986632 74.176086)\r\n\t\t\t\t(xy 124.877139 74.012218) (xy 124.737782 73.872861) (xy 124.573914 73.763368) (xy 124.573915 73.763368)\r\n\t\t\t\t(xy 124.573913 73.763367) (xy 124.391835 73.687949) (xy 124.198543 73.6495) (xy 124.198541 73.6495)\r\n\t\t\t\t(xy 124.001459 73.6495) (xy 124.001456 73.6495) (xy 123.808165 73.687949) (xy 123.808163 73.687949)\r\n\t\t\t\t(xy 123.626086 73.763367) (xy 123.462218 73.872861) (xy 123.462214 73.872864) (xy 123.322864 74.012214)\r\n\t\t\t\t(xy 123.322861 74.012218) (xy 123.213367 74.176086) (xy 123.137949 74.358163) (xy 123.137949 74.358165)\r\n\t\t\t\t(xy 123.0995 74.551456) (xy 122.600499 74.551456) (xy 122.600499 74.018482) (xy 122.600499 74.018481)\r\n\t\t\t\t(xy 122.600499 74.018478) (xy 122.600498 74.018476) (xy 122.585647 73.9247) (xy 122.585646 73.924698)\r\n\t\t\t\t(xy 122.585646 73.924696) (xy 122.52805 73.811658) (xy 122.438342 73.72195) (xy 122.325304 73.664354)\r\n\t\t\t\t(xy 122.325305 73.664354) (xy 122.231521 73.6495) (xy 120.968478 73.6495) (xy 120.968476 73.649501)\r\n\t\t\t\t(xy 120.8747 73.664352) (xy 120.874695 73.664354) (xy 120.761659 73.721949) (xy 120.671949 73.811659)\r\n\t\t\t\t(xy 120.614354 73.924695) (xy 120.5995 74.018478) (xy 74.0005 74.018478) (xy 74.0005 72.640691)\r\n\t\t\t\t(xy 143.9495 72.640691) (xy 143.9495 72.759309) (xy 143.976574 72.860351) (xy 143.980202 72.87389)\r\n\t\t\t\t(xy 144.039507 72.976608) (xy 144.039509 72.97661) (xy 144.039511 72.976613) (xy 144.123387 73.060489)\r\n\t\t\t\t(xy 144.123389 73.06049) (xy 144.123391 73.060492) (xy 144.22611 73.119797) (xy 144.226111 73.119797)\r\n\t\t\t\t(xy 144.226114 73.119799) (xy 144.340691 73.1505) (xy 144.340693 73.1505) (xy 144.459307 73.1505)\r\n\t\t\t\t(xy 144.459309 73.1505) (xy 144.573886 73.119799) (xy 144.573888 73.119797) (xy 144.57389 73.119797)\r\n\t\t\t\t(xy 144.676608 73.060492) (xy 144.676608 73.060491) (xy 144.676613 73.060489) (xy 144.760489 72.976613)\r\n\t\t\t\t(xy 144.819799 72.873886) (xy 144.8505 72.759309) (xy 144.8505 72.640691) (xy 144.819799 72.526114)\r\n\t\t\t\t(xy 144.819797 72.526111) (xy 144.819797 72.526109) (xy 144.760492 72.423391) (xy 144.76049 72.423389)\r\n\t\t\t\t(xy 144.760489 72.423387) (xy 144.676613 72.339511) (xy 144.67661 72.339509) (xy 144.676608 72.339507)\r\n\t\t\t\t(xy 144.573889 72.280202) (xy 144.57389 72.280202) (xy 144.560351 72.276574) (xy 144.459309 72.2495)\r\n\t\t\t\t(xy 144.340691 72.2495) (xy 144.270567 72.268289) (xy 144.226109 72.280202) (xy 144.123391 72.339507)\r\n\t\t\t\t(xy 144.039507 72.423391) (xy 143.980202 72.526109) (xy 143.980201 72.526114) (xy 143.9495 72.640691)\r\n\t\t\t\t(xy 74.0005 72.640691) (xy 74.0005 70.840691) (xy 137.9495 70.840691) (xy 137.9495 70.959309) (xy 137.976574 71.060351)\r\n\t\t\t\t(xy 137.980202 71.07389) (xy 138.039507 71.176608) (xy 138.039509 71.17661) (xy 138.039511 71.176613)\r\n\t\t\t\t(xy 138.123387 71.260489) (xy 138.123389 71.26049) (xy 138.123391 71.260492) (xy 138.22611 71.319797)\r\n\t\t\t\t(xy 138.226111 71.319797) (xy 138.226114 71.319799) (xy 138.340691 71.3505) (xy 138.340693 71.3505)\r\n\t\t\t\t(xy 138.459307 71.3505) (xy 138.459309 71.3505) (xy 138.573886 71.319799) (xy 138.573888 71.319797)\r\n\t\t\t\t(xy 138.57389 71.319797) (xy 138.676608 71.260492) (xy 138.676608 71.260491) (xy 138.676613 71.260489)\r\n\t\t\t\t(xy 138.760489 71.176613) (xy 138.819799 71.073886) (xy 138.8505 70.959309) (xy 138.8505 70.840691)\r\n\t\t\t\t(xy 138.819799 70.726114) (xy 138.819797 70.726111) (xy 138.819797 70.726109) (xy 138.760492 70.623391)\r\n\t\t\t\t(xy 138.76049 70.623389) (xy 138.760489 70.623387) (xy 138.676613 70.539511) (xy 138.67661 70.539509)\r\n\t\t\t\t(xy 138.676608 70.539507) (xy 138.573889 70.480202) (xy 138.57389 70.480202) (xy 138.550318 70.473886)\r\n\t\t\t\t(xy 138.459309 70.4495) (xy 138.340691 70.4495) (xy 138.270567 70.468289) (xy 138.226109 70.480202)\r\n\t\t\t\t(xy 138.123391 70.539507) (xy 138.039507 70.623391) (xy 137.980202 70.726109) (xy 137.980201 70.726114)\r\n\t\t\t\t(xy 137.9495 70.840691) (xy 74.0005 70.840691) (xy 74.0005 69.315691) (xy 92.8495 69.315691) (xy 92.8495 69.434309)\r\n\t\t\t\t(xy 92.85235 69.444945) (xy 92.880202 69.54889) (xy 92.939507 69.651608) (xy 92.939509 69.65161)\r\n\t\t\t\t(xy 92.939511 69.651613) (xy 93.017896 69.729998) (xy 93.045672 69.784513) (xy 93.036101 69.844945)\r\n\t\t\t\t(xy 93.017897 69.87) (xy 92.948391 69.939507) (xy 92.939508 69.94839) (xy 92.939507 69.948391) (xy 92.880202 70.051109)\r\n\t\t\t\t(xy 92.880201 70.051114) (xy 92.8495 70.165691) (xy 92.8495 70.284309) (xy 92.869596 70.359307)\r\n\t\t\t\t(xy 92.880202 70.39889) (xy 92.939507 70.501608) (xy 92.939509 70.50161) (xy 92.939511 70.501613)\r\n\t\t\t\t(xy 93.023387 70.585489) (xy 93.023389 70.58549) (xy 93.023391 70.585492) (xy 93.12611 70.644797)\r\n\t\t\t\t(xy 93.126111 70.644797) (xy 93.126114 70.644799) (xy 93.240691 70.6755) (xy 93.240693 70.6755)\r\n\t\t\t\t(xy 93.359307 70.6755) (xy 93.359309 70.6755) (xy 93.473886 70.644799) (xy 93.473888 70.644797)\r\n\t\t\t\t(xy 93.47389 70.644797) (xy 93.576608 70.585492) (xy 93.576608 70.585491) (xy 93.576613 70.585489)\r\n\t\t\t\t(xy 93.660489 70.501613) (xy 93.676495 70.47389) (xy 93.719797 70.39889) (xy 93.719797 70.398888)\r\n\t\t\t\t(xy 93.719799 70.398886) (xy 93.7505 70.284309) (xy 93.7505 70.165691) (xy 93.719799 70.051114)\r\n\t\t\t\t(xy 93.719797 70.051111) (xy 93.719797 70.051109) (xy 93.660492 69.948391) (xy 93.66049 69.948389)\r\n\t\t\t\t(xy 93.660489 69.948387) (xy 93.582103 69.870001) (xy 93.554328 69.815487) (xy 93.563899 69.755055)\r\n\t\t\t\t(xy 93.582102 69.729999) (xy 93.660489 69.651613) (xy 93.660778 69.651113) (xy 93.719797 69.54889)\r\n\t\t\t\t(xy 93.719797 69.548888) (xy 93.719799 69.548886) (xy 93.7505 69.434309) (xy 93.7505 69.315691)\r\n\t\t\t\t(xy 93.719799 69.201114) (xy 93.719797 69.201111) (xy 93.719797 69.201109) (xy 93.660492 69.098391)\r\n\t\t\t\t(xy 93.66049 69.098389) (xy 93.660489 69.098387) (xy 93.576613 69.014511) (xy 93.57661 69.014509)\r\n\t\t\t\t(xy 93.576608 69.014507) (xy 93.542713 68.994938) (xy 93.542712 68.994938) (xy 93.473888 68.955202)\r\n\t\t\t\t(xy 93.47' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'3887 68.955201) (xy 93.473886 68.955201) (xy 93.359309 68.9245) (xy 93.240691 68.9245)\r\n\t\t\t\t(xy 93.170567 68.943289) (xy 93.126109 68.955202) (xy 93.023391 69.014507) (xy 92.939507 69.098391)\r\n\t\t\t\t(xy 92.880202 69.201109) (xy 92.880201 69.201114) (xy 92.8495 69.315691) (xy 74.0005 69.315691)\r\n\t\t\t\t(xy 74.0005 68.915691) (xy 104.0495 68.915691) (xy 104.0495 69.034309) (xy 104.06667 69.098387)\r\n\t\t\t\t(xy 104.080202 69.14889) (xy 104.139507 69.251608) (xy 104.139509 69.25161) (xy 104.139511 69.251613)\r\n\t\t\t\t(xy 104.217896 69.329998) (xy 104.245672 69.384513) (xy 104.236101 69.444945) (xy 104.217897 69.47)\r\n\t\t\t\t(xy 104.161789 69.526109) (xy 104.139508 69.54839) (xy 104.139507 69.548391) (xy 104.080202 69.651109)\r\n\t\t\t\t(xy 104.080068 69.651609) (xy 104.0495 69.765691) (xy 104.0495 69.884309) (xy 104.06667 69.948387)\r\n\t\t\t\t(xy 104.080202 69.99889) (xy 104.139507 70.101608) (xy 104.139509 70.10161) (xy 104.139511 70.101613)\r\n\t\t\t\t(xy 104.223387 70.185489) (xy 104.223389 70.18549) (xy 104.223391 70.185492) (xy 104.32611 70.244797)\r\n\t\t\t\t(xy 104.326111 70.244797) (xy 104.326114 70.244799) (xy 104.440691 70.2755) (xy 104.440693 70.2755)\r\n\t\t\t\t(xy 104.559307 70.2755) (xy 104.559309 70.2755) (xy 104.673886 70.244799) (xy 104.673888 70.244797)\r\n\t\t\t\t(xy 104.67389 70.244797) (xy 104.681002 70.240691) (xy 139.4495 70.240691) (xy 139.4495 70.359309)\r\n\t\t\t\t(xy 139.460105 70.398886) (xy 139.480202 70.47389) (xy 139.539507 70.576608) (xy 139.539509 70.57661)\r\n\t\t\t\t(xy 139.539511 70.576613) (xy 139.623387 70.660489) (xy 139.623389 70.66049) (xy 139.623391 70.660492)\r\n\t\t\t\t(xy 139.72611 70.719797) (xy 139.726111 70.719797) (xy 139.726114 70.719799) (xy 139.840691 70.7505)\r\n\t\t\t\t(xy 139.840693 70.7505) (xy 139.959307 70.7505) (xy 139.959309 70.7505) (xy 140.073886 70.719799)\r\n\t\t\t\t(xy 140.073888 70.719797) (xy 140.07389 70.719797) (xy 140.176608 70.660492) (xy 140.176608 70.660491)\r\n\t\t\t\t(xy 140.176613 70.660489) (xy 140.260489 70.576613) (xy 140.28191 70.539511) (xy 140.319797 70.47389)\r\n\t\t\t\t(xy 140.319797 70.473888) (xy 140.319799 70.473886) (xy 140.3505 70.359309) (xy 140.3505 70.240691)\r\n\t\t\t\t(xy 140.319799 70.126114) (xy 140.319797 70.126111) (xy 140.319797 70.126109) (xy 140.260492 70.023391)\r\n\t\t\t\t(xy 140.26049 70.023389) (xy 140.260489 70.023387) (xy 140.176613 69.939511) (xy 140.17661 69.939509)\r\n\t\t\t\t(xy 140.176608 69.939507) (xy 140.073889 69.880202) (xy 140.07389 69.880202) (xy 140.050318 69.873886)\r\n\t\t\t\t(xy 139.959309 69.8495) (xy 139.840691 69.8495) (xy 139.78467 69.864511) (xy 139.726109 69.880202)\r\n\t\t\t\t(xy 139.623391 69.939507) (xy 139.539507 70.023391) (xy 139.480202 70.126109) (xy 139.480201 70.126114)\r\n\t\t\t\t(xy 139.4495 70.240691) (xy 104.681002 70.240691) (xy 104.776608 70.185492) (xy 104.776608 70.185491)\r\n\t\t\t\t(xy 104.776613 70.185489) (xy 104.860489 70.101613) (xy 104.860492 70.101608) (xy 104.919797 69.99889)\r\n\t\t\t\t(xy 104.919797 69.998888) (xy 104.919799 69.998886) (xy 104.9505 69.884309) (xy 104.9505 69.765691)\r\n\t\t\t\t(xy 104.919799 69.651114) (xy 104.913782 69.640692) (xy 104.913781 69.640691) (xy 130.9495 69.640691)\r\n\t\t\t\t(xy 130.9495 69.759309) (xy 130.961797 69.805201) (xy 130.980202 69.87389) (xy 131.039507 69.976608)\r\n\t\t\t\t(xy 131.039509 69.97661) (xy 131.039511 69.976613) (xy 131.123387 70.060489) (xy 131.123389 70.06049)\r\n\t\t\t\t(xy 131.123391 70.060492) (xy 131.22611 70.119797) (xy 131.226111 70.119797) (xy 131.226114 70.119799)\r\n\t\t\t\t(xy 131.340691 70.1505) (xy 131.340693 70.1505) (xy 131.459307 70.1505) (xy 131.459309 70.1505)\r\n\t\t\t\t(xy 131.573886 70.119799) (xy 131.573888 70.119797) (xy 131.57389 70.119797) (xy 131.676608 70.060492)\r\n\t\t\t\t(xy 131.676608 70.060491) (xy 131.676613 70.060489) (xy 131.760489 69.976613) (xy 131.776784 69.94839)\r\n\t\t\t\t(xy 131.819797 69.87389) (xy 131.819797 69.873888) (xy 131.819799 69.873886) (xy 131.8505 69.759309)\r\n\t\t\t\t(xy 131.8505 69.640691) (xy 131.819799 69.526114) (xy 131.819797 69.526111) (xy 131.819797 69.526109)\r\n\t\t\t\t(xy 131.760492 69.423391) (xy 131.76049 69.423389) (xy 131.760489 69.423387) (xy 131.676613 69.339511)\r\n\t\t\t\t(xy 131.67661 69.339509) (xy 131.676608 69.339507) (xy 131.573889 69.280202) (xy 131.57389 69.280202)\r\n\t\t\t\t(xy 131.560351 69.276574) (xy 131.459309 69.2495) (xy 131.340691 69.2495) (xy 131.270567 69.268289)\r\n\t\t\t\t(xy 131.226109 69.280202) (xy 131.123391 69.339507) (xy 131.039507 69.423391) (xy 130.980202 69.526109)\r\n\t\t\t\t(xy 130.980201 69.526114) (xy 130.9495 69.640691) (xy 104.913781 69.640691) (xy 104.860492 69.548391)\r\n\t\t\t\t(xy 104.86049 69.548389) (xy 104.860489 69.548387) (xy 104.782103 69.470001) (xy 104.754328 69.415487)\r\n\t\t\t\t(xy 104.763899 69.355055) (xy 104.782102 69.329999) (xy 104.860489 69.251613) (xy 104.919799 69.148886)\r\n\t\t\t\t(xy 104.9505 69.034309) (xy 104.9505 68.915691) (xy 104.919799 68.801114) (xy 104.919797 68.801111)\r\n\t\t\t\t(xy 104.919797 68.801109) (xy 104.860492 68.698391) (xy 104.86049 68.698389) (xy 104.860489 68.698387)\r\n\t\t\t\t(xy 104.776613 68.614511) (xy 104.77661 68.614509) (xy 104.776608 68.614507) (xy 104.673889 68.555202)\r\n\t\t\t\t(xy 104.67389 68.555202) (xy 104.648213 68.548322) (xy 104.559309 68.5245) (xy 104.440691 68.5245)\r\n\t\t\t\t(xy 104.370567 68.543289) (xy 104.326109 68.555202) (xy 104.223391 68.614507) (xy 104.139507 68.698391)\r\n\t\t\t\t(xy 104.080202 68.801109) (xy 104.080201 68.801114) (xy 104.0495 68.915691) (xy 74.0005 68.915691)\r\n\t\t\t\t(xy 74.0005 68.548322) (xy 74.019407 68.490131) (xy 74.029496 68.478318) (xy 74.367123 68.140691)\r\n\t\t\t\t(xy 105.5995 68.140691) (xy 105.5995 68.259309) (xy 105.626574 68.360351) (xy 105.630202 68.37389)\r\n\t\t\t\t(xy 105.689507 68.476608) (xy 105.689509 68.47661) (xy 105.689511 68.476613) (xy 105.773387 68.560489)\r\n\t\t\t\t(xy 105.773389 68.56049) (xy 105.773391 68.560492) (xy 105.87611 68.619797) (xy 105.876111 68.619797)\r\n\t\t\t\t(xy 105.876114 68.619799) (xy 105.990691 68.6505) (xy 105.990693 68.6505) (xy 106.109307 68.6505)\r\n\t\t\t\t(xy 106.109309 68.6505) (xy 106.223886 68.619799) (xy 106.223888 68.619797) (xy 106.22389 68.619797)\r\n\t\t\t\t(xy 106.326608 68.560492) (xy 106.326608 68.560491) (xy 106.326613 68.560489) (xy 106.410489 68.476613)\r\n\t\t\t\t(xy 106.469799 68.373886) (xy 106.5005 68.259309) (xy 106.5005 68.140691) (xy 106.469799 68.026114)\r\n\t\t\t\t(xy 106.469797 68.026111) (xy 106.469797 68.026109) (xy 106.410492 67.923391) (xy 106.41049 67.923389)\r\n\t\t\t\t(xy 106.410489 67.923387) (xy 106.326613 67.839511) (xy 106.32661 67.839509) (xy 106.326608 67.839507)\r\n\t\t\t\t(xy 106.223889 67.780202) (xy 106.22389 67.780202) (xy 106.210351 67.776574) (xy 106.109309 67.7495)\r\n\t\t\t\t(xy 105.990691 67.7495) (xy 105.920567 67.768289) (xy 105.876109 67.780202) (xy 105.773391 67.839507)\r\n\t\t\t\t(xy 105.689507 67.923391) (xy 105.630202 68.026109) (xy 105.630201 68.026114) (xy 105.5995 68.140691)\r\n\t\t\t\t(xy 74.367123 68.140691) (xy 75.753895 66.753919) (xy 88.8745 66.753919) (xy 88.8745 66.94608) (xy 88.911988 67.134542)\r\n\t\t\t\t(xy 88.911988 67.134544) (xy 88.985521 67.31207) (xy 88.985521 67.312071) (xy 89.092279 67.471844)\r\n\t\t\t\t(xy 89.09228 67.471845) (xy 89.228155 67.60772) (xy 89.387927 67.714477) (xy 89.565457 67.788012)\r\n\t\t\t\t(xy 89.753922 67.8255) (xy 89.753923 67.8255) (xy 89.946077 67.8255) (xy 89.946078 67.8255) (xy 90.134543 67.788012)\r\n\t\t\t\t(xy 90.312073 67.714477) (xy 90.471845 67.60772) (xy 90.60772 67.471845) (xy 90.714477 67.312073)\r\n\t\t\t\t(xy 90.788012 67.134543) (xy 90.8255 66.946078) (xy 90.8255 66.753922) (xy 90.788012 66.565457)\r\n\t\t\t\t(xy 90.725077 66.413518) (xy 105.018553 66.413518) (xy 105.018553 66.532136) (xy 105.045627 66.633178)\r\n\t\t\t\t(xy 105.049255 66.646717) (xy 105.10856 66.749435) (xy 105.108562 66.749437) (xy 105.108564 66.74944)\r\n\t\t\t\t(xy 105.19244 66.833316) (xy 105.192442 66.833317) (xy 105.192444 66.833319) (xy 105.295163 66.892624)\r\n\t\t\t\t(xy 105.295164 66.892624) (xy 105.295167 66.892626) (xy 105.409744 66.923327) (xy 105.409746 66.923327)\r\n\t\t\t\t(xy 105.52836 66.923327) (xy 105.528362 66.923327) (xy 105.642939 66.892626) (xy 105.642941 66.892624)\r\n\t\t\t\t(xy 105.642943 66.892624) (xy 105.745661 66.833319) (xy 105.745661 66.833318) (xy 105.745666 66.833316)\r\n\t\t\t\t(xy 105.825063 66.753919) (xy 107.6745 66.753919) (xy 107.6745 66.94608) (xy 107.711988 67.134542)\r\n\t\t\t\t(xy 107.711988 67.134544) (xy 107.785521 67.31207) (xy 107.785521 67.312071) (xy 107.892279 67.4718' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'44)\r\n\t\t\t\t(xy 107.89228 67.471845) (xy 108.028155 67.60772) (xy 108.187927 67.714477) (xy 108.365457 67.788012)\r\n\t\t\t\t(xy 108.553922 67.8255) (xy 108.553923 67.8255) (xy 108.746077 67.8255) (xy 108.746078 67.8255)\r\n\t\t\t\t(xy 108.934543 67.788012) (xy 109.112073 67.714477) (xy 109.271845 67.60772) (xy 109.40772 67.471845)\r\n\t\t\t\t(xy 109.514477 67.312073) (xy 109.588012 67.134543) (xy 109.6255 66.946078) (xy 109.6255 66.753922)\r\n\t\t\t\t(xy 109.588012 66.565457) (xy 109.514478 66.387929) (xy 109.514478 66.387928) (xy 109.40772 66.228155)\r\n\t\t\t\t(xy 109.271844 66.092279) (xy 109.11207 65.985521) (xy 108.934543 65.911988) (xy 108.74608 65.8745)\r\n\t\t\t\t(xy 108.746078 65.8745) (xy 108.553922 65.8745) (xy 108.553919 65.8745) (xy 108.365457 65.911988)\r\n\t\t\t\t(xy 108.365455 65.911988) (xy 108.187929 65.985521) (xy 108.187928 65.985521) (xy 108.028155 66.092279)\r\n\t\t\t\t(xy 107.892279 66.228155) (xy 107.785521 66.387928) (xy 107.785521 66.387929) (xy 107.711988 66.565455)\r\n\t\t\t\t(xy 107.711988 66.565457) (xy 107.6745 66.753919) (xy 105.825063 66.753919) (xy 105.829542 66.74944)\r\n\t\t\t\t(xy 105.888852 66.646713) (xy 105.919553 66.532136) (xy 105.919553 66.413518) (xy 105.888852 66.298941)\r\n\t\t\t\t(xy 105.88885 66.298938) (xy 105.88885 66.298936) (xy 105.829545 66.196218) (xy 105.829543 66.196216)\r\n\t\t\t\t(xy 105.829542 66.196214) (xy 105.745666 66.112338) (xy 105.745663 66.112336) (xy 105.745661 66.112334)\r\n\t\t\t\t(xy 105.642942 66.053029) (xy 105.642943 66.053029) (xy 105.629404 66.049401) (xy 105.528362 66.022327)\r\n\t\t\t\t(xy 105.409744 66.022327) (xy 105.33962 66.041116) (xy 105.295162 66.053029) (xy 105.192444 66.112334)\r\n\t\t\t\t(xy 105.10856 66.196218) (xy 105.049255 66.298936) (xy 105.049254 66.298941) (xy 105.018553 66.413518)\r\n\t\t\t\t(xy 90.725077 66.413518) (xy 90.714478 66.387929) (xy 90.714478 66.387928) (xy 90.60772 66.228155)\r\n\t\t\t\t(xy 90.471844 66.092279) (xy 90.31207 65.985521) (xy 90.134543 65.911988) (xy 89.94608 65.8745)\r\n\t\t\t\t(xy 89.946078 65.8745) (xy 89.753922 65.8745) (xy 89.753919 65.8745) (xy 89.565457 65.911988) (xy 89.565455 65.911988)\r\n\t\t\t\t(xy 89.387929 65.985521) (xy 89.387928 65.985521) (xy 89.228155 66.092279) (xy 89.092279 66.228155)\r\n\t\t\t\t(xy 88.985521 66.387928) (xy 88.985521 66.387929) (xy 88.911988 66.565455) (xy 88.911988 66.565457)\r\n\t\t\t\t(xy 88.8745 66.753919) (xy 75.753895 66.753919) (xy 76.967123 65.540691) (xy 96.7995 65.540691)\r\n\t\t\t\t(xy 96.7995 65.659309) (xy 96.808284 65.69209) (xy 96.830202 65.77389) (xy 96.889507 65.876608)\r\n\t\t\t\t(xy 96.889509 65.87661) (xy 96.889511 65.876613) (xy 96.973387 65.960489) (xy 96.973389 65.96049)\r\n\t\t\t\t(xy 96.973391 65.960492) (xy 97.07611 66.019797) (xy 97.076111 66.019797) (xy 97.076114 66.019799)\r\n\t\t\t\t(xy 97.190691 66.0505) (xy 97.190693 66.0505) (xy 97.309307 66.0505) (xy 97.309309 66.0505) (xy 97.423886 66.019799)\r\n\t\t\t\t(xy 97.423888 66.019797) (xy 97.42389 66.019797) (xy 97.526608 65.960492) (xy 97.526608 65.960491)\r\n\t\t\t\t(xy 97.526613 65.960489) (xy 97.610489 65.876613) (xy 97.669799 65.773886) (xy 97.7005 65.659309)\r\n\t\t\t\t(xy 97.7005 65.540691) (xy 97.669799 65.426114) (xy 97.669797 65.426111) (xy 97.669797 65.426109)\r\n\t\t\t\t(xy 97.610492 65.323391) (xy 97.61049 65.323389) (xy 97.610489 65.323387) (xy 97.526613 65.239511)\r\n\t\t\t\t(xy 97.52661 65.239509) (xy 97.526608 65.239507) (xy 97.423889 65.180202) (xy 97.42389 65.180202)\r\n\t\t\t\t(xy 97.410351 65.176574) (xy 97.309309 65.1495) (xy 97.190691 65.1495) (xy 97.120567 65.168289)\r\n\t\t\t\t(xy 97.076109 65.180202) (xy 96.973391 65.239507) (xy 96.889507 65.323391) (xy 96.830202 65.426109)\r\n\t\t\t\t(xy 96.813037 65.490169) (xy 96.7995 65.540691) (xy 76.967123 65.540691) (xy 78.167123 64.340691)\r\n\t\t\t\t(xy 105.1495 64.340691) (xy 105.1495 64.459309) (xy 105.160671 64.501) (xy 105.180202 64.57389)\r\n\t\t\t\t(xy 105.239507 64.676608) (xy 105.239509 64.67661) (xy 105.239511 64.676613) (xy 105.323387 64.760489)\r\n\t\t\t\t(xy 105.323389 64.76049) (xy 105.323391 64.760492) (xy 105.42611 64.819797) (xy 105.426111 64.819797)\r\n\t\t\t\t(xy 105.426114 64.819799) (xy 105.540691 64.8505) (xy 105.540693 64.8505) (xy 105.659307 64.8505)\r\n\t\t\t\t(xy 105.659309 64.8505) (xy 105.773886 64.819799) (xy 105.773888 64.819797) (xy 105.77389 64.819797)\r\n\t\t\t\t(xy 105.876608 64.760492) (xy 105.876608 64.760491) (xy 105.876613 64.760489) (xy 105.950679 64.686422)\r\n\t\t\t\t(xy 106.005193 64.658646) (xy 106.065625 64.668217) (xy 106.070181 64.670691) (xy 106.17055 64.728639)\r\n\t\t\t\t(xy 106.170551 64.728639) (xy 106.170554 64.728641) (xy 106.285131 64.759342) (xy 106.285133 64.759342)\r\n\t\t\t\t(xy 106.403747 64.759342) (xy 106.403749 64.759342) (xy 106.518326 64.728641) (xy 106.518328 64.728639)\r\n\t\t\t\t(xy 106.51833 64.728639) (xy 106.621048 64.669334) (xy 106.621048 64.669333) (xy 106.621053 64.669331)\r\n\t\t\t\t(xy 106.704929 64.585455) (xy 106.707448 64.581093) (xy 106.734536 64.534174) (xy 106.757876 64.493749)\r\n\t\t\t\t(xy 112.07 64.493749) (xy 112.07 64.70625) (xy 112.10324 64.916121) (xy 112.168904 65.118215) (xy 112.265376 65.307553)\r\n\t\t\t\t(xy 112.26538 65.307559) (xy 112.304728 65.361716) (xy 112.304729 65.361716) (xy 112.937037 64.729407)\r\n\t\t\t\t(xy 112.954075 64.792993) (xy 113.019901 64.907007) (xy 113.112993 65.000099) (xy 113.227007 65.065925)\r\n\t\t\t\t(xy 113.290589 65.082962) (xy 112.658282 65.715269) (xy 112.658282 65.71527) (xy 112.71244 65.754619)\r\n\t\t\t\t(xy 112.712446 65.754623) (xy 112.901784 65.851095) (xy 113.103878 65.916759) (xy 113.300856 65.947957)\r\n\t\t\t\t(xy 113.355372 65.975734) (xy 113.38315 66.030251) (xy 113.373579 66.090683) (xy 113.330314 66.133948)\r\n\t\t\t\t(xy 113.304684 66.142836) (xy 113.128163 66.177949) (xy 112.946086 66.253367) (xy 112.782218 66.362861)\r\n\t\t\t\t(xy 112.782214 66.362864) (xy 112.642864 66.502214) (xy 112.642861 66.502218) (xy 112.533367 66.666086)\r\n\t\t\t\t(xy 112.457949 66.848163) (xy 112.457949 66.848165) (xy 112.4195 67.041456) (xy 112.4195 67.238543)\r\n\t\t\t\t(xy 112.457949 67.431834) (xy 112.457949 67.431836) (xy 112.533367 67.613913) (xy 112.533368 67.613914)\r\n\t\t\t\t(xy 112.642861 67.777782) (xy 112.782218 67.917139) (xy 112.946086 68.026632) (xy 113.128165 68.102051)\r\n\t\t\t\t(xy 113.321459 68.1405) (xy 113.32146 68.1405) (xy 113.51854 68.1405) (xy 113.518541 68.1405) (xy 113.711835 68.102051)\r\n\t\t\t\t(xy 113.893914 68.026632) (xy 114.057782 67.917139) (xy 114.197139 67.777782) (xy 114.306632 67.613914)\r\n\t\t\t\t(xy 114.382051 67.431835) (xy 114.4205 67.238541) (xy 114.4205 67.041459) (xy 114.382051 66.848165)\r\n\t\t\t\t(xy 114.306632 66.666086) (xy 114.197139 66.502218) (xy 114.057782 66.362861) (xy 113.893914 66.253368)\r\n\t\t\t\t(xy 113.893915 66.253368) (xy 113.893913 66.253367) (xy 113.711836 66.177949) (xy 113.535315 66.142836)\r\n\t\t\t\t(xy 113.481932 66.112939) (xy 113.456316 66.057373) (xy 113.468253 65.997364) (xy 113.513183 65.955832)\r\n\t\t\t\t(xy 113.539143 65.947957) (xy 113.736121 65.916759) (xy 113.938215 65.851095) (xy 114.127556 65.75462)\r\n\t\t\t\t(xy 114.181716 65.71527) (xy 113.549408 65.082962) (xy 113.612993 65.065925) (xy 113.727007 65.000099)\r\n\t\t\t\t(xy 113.820099 64.907007) (xy 113.885925 64.792993) (xy 113.902962 64.729408) (xy 114.53527 65.361716)\r\n\t\t\t\t(xy 114.574622 65.307554) (xy 114.601789 65.254235) (xy 114.645053 65.21097) (xy 114.705485 65.201398)\r\n\t\t\t\t(xy 114.760002 65.229175) (xy 114.778209 65.254234) (xy 114.805376 65.307553) (xy 114.80538 65.307559)\r\n\t\t\t\t(xy 114.844728 65.361716) (xy 114.844729 65.361716) (xy 115.477037 64.729407) (xy 115.494075 64.792993)\r\n\t\t\t\t(xy 115.559901 64.907007) (xy 115.652993 65.000099) (xy 115.767007 65.065925) (xy 115.830589 65.082962)\r\n\t\t\t\t(xy 115.198282 65.715269) (xy 115.198282 65.71527) (xy 115.25244 65.754619) (xy 115.252446 65.754623)\r\n\t\t\t\t(xy 115.441784 65.851095) (xy 115.643878 65.916759) (xy 115.840856 65.947957) (xy 115.895372 65.975734)\r\n\t\t\t\t(xy 115.92315 66.030251) (xy 115.913579 66.090683) (xy 115.870314 66.133948) (xy 115.844684 66.142836)\r\n\t\t\t\t(xy 115.668163 66.177949) (xy 115.486086 66.253367) (xy 115.322218 66.362861) (xy 115.322214 66.362864)\r\n\t\t\t\t(xy 115.182864 66.502214) (xy 115.182861 66.502218) (xy 115.073367 66.666086) (xy 114.997949 66.848163)\r\n\t\t\t\t(xy 114.997949 66.848165) (xy 114.9595 67.041456) (xy 114.9595 67.238543) (xy 114.997949 67.431834)\r\n\t\t\t\t(xy 114.997949 67.431836) (xy 115.073367 67.613913) (xy 115.073368 67.613914) (xy 115.182861 67.777782)\r\n\t\t\t\t(xy 115.32221' +06-08 00:27:39 STDOUT 1680:send: +06-08 00:27:39 STDOUT 1680:b'8 67.917139) (xy 115.486086 68.026632) (xy 115.668165 68.102051) (xy 115.861459 68.1405)\r\n\t\t\t\t(xy 115.86146 68.1405) (xy 116.05854 68.1405) (xy 116.058541 68.1405) (xy 116.251835 68.102051)\r\n\t\t\t\t(xy 116.433914 68.026632) (xy 116.597782 67.917139) (xy 116.737139 67.777782) (xy 116.846632 67.613914)\r\n\t\t\t\t(xy 116.922051 67.431835) (xy 116.9605 67.238541) (xy 116.9605 67.041459) (xy 116.922051 66.848165)\r\n\t\t\t\t(xy 116.846632 66.666086) (xy 116.737139 66.502218) (xy 116.597782 66.362861) (xy 116.433914 66.253368)\r\n\t\t\t\t(xy 116.433915 66.253368) (xy 116.433913 66.253367) (xy 116.251836 66.177949) (xy 116.075315 66.142836)\r\n\t\t\t\t(xy 116.021932 66.112939) (xy 115.996316 66.057373) (xy 116.008253 65.997364) (xy 116.053183 65.955832)\r\n\t\t\t\t(xy 116.079143 65.947957) (xy 116.276121 65.916759) (xy 116.478215 65.851095) (xy 116.667556 65.75462)\r\n\t\t\t\t(xy 116.721716 65.71527) (xy 116.089408 65.082962) (xy 116.152993 65.065925) (xy 116.267007 65.000099)\r\n\t\t\t\t(xy 116.360099 64.907007) (xy 116.425925 64.792993) (xy 116.442962 64.729408) (xy 117.07527 65.361716)\r\n\t\t\t\t(xy 117.114622 65.307554) (xy 117.141789 65.254235) (xy 117.185053 65.21097) (xy 117.245485 65.201398)\r\n\t\t\t\t(xy 117.300002 65.229175) (xy 117.318209 65.254234) (xy 117.345376 65.307553) (xy 117.34538 65.307559)\r\n\t\t\t\t(xy 117.384728 65.361716) (xy 117.384729 65.361716) (xy 118.017037 64.729407) (xy 118.034075 64.792993)\r\n\t\t\t\t(xy 118.099901 64.907007) (xy 118.192993 65.000099) (xy 118.307007 65.065925) (xy 118.370589 65.082962)\r\n\t\t\t\t(xy 117.738282 65.715269) (xy 117.738282 65.71527) (xy 117.79244 65.754619) (xy 117.792446 65.754623)\r\n\t\t\t\t(xy 117.981784 65.851095) (xy 118.183878 65.916759) (xy 118.380856 65.947957) (xy 118.435372 65.975734)\r\n\t\t\t\t(xy 118.46315 66.030251) (xy 118.453579 66.090683) (xy 118.410314 66.133948) (xy 118.384684 66.142836)\r\n\t\t\t\t(xy 118.208163 66.177949) (xy 118.026086 66.253367) (xy 117.862218 66.362861) (xy 117.862214 66.362864)\r\n\t\t\t\t(xy 117.722864 66.502214) (xy 117.722861 66.502218) (xy 117.613367 66.666086) (xy 117.537949 66.848163)\r\n\t\t\t\t(xy 117.537949 66.848165) (xy 117.4995 67.041456) (xy 117.4995 67.238543) (xy 117.537949 67.431834)\r\n\t\t\t\t(xy 117.537949 67.431836) (xy 117.613367 67.613913) (xy 117.613368 67.613914) (xy 117.722861 67.777782)\r\n\t\t\t\t(xy 117.862218 67.917139) (xy 118.026086 68.026632) (xy 118.208165 68.102051) (xy 118.401459 68.1405)\r\n\t\t\t\t(xy 118.40146 68.1405) (xy 118.59854 68.1405) (xy 118.598541 68.1405) (xy 118.791835 68.102051)\r\n\t\t\t\t(xy 118.973914 68.026632) (xy 119.137782 67.917139) (xy 119.277139 67.777782) (xy 119.386632 67.613914)\r\n\t\t\t\t(xy 119.462051 67.431835) (xy 119.5005 67.238541) (xy 119.5005 67.041459) (xy 119.462051 66.848165)\r\n\t\t\t\t(xy 119.386632 66.666086) (xy 119.277139 66.502218) (xy 119.137782 66.362861) (xy 118.973914 66.253368)\r\n\t\t\t\t(xy 118.973915 66.253368) (xy 118.973913 66.253367) (xy 118.791836 66.177949) (xy 118.615315 66.142836)\r\n\t\t\t\t(xy 118.561932 66.112939) (xy 118.536316 66.057373) (xy 118.548253 65.997364) (xy 118.593183 65.955832)\r\n\t\t\t\t(xy 118.619143 65.947957) (xy 118.816121 65.916759) (xy 119.018215 65.851095) (xy 119.207556 65.75462)\r\n\t\t\t\t(xy 119.261716 65.71527) (xy 118.629408 65.082962) (xy 118.692993 65.065925) (xy 118.807007 65.000099)\r\n\t\t\t\t(xy 118.900099 64.907007) (xy 118.965925 64.792993) (xy 118.982962 64.729408) (xy 119.628708 65.375154)\r\n\t\t\t\t(xy 119.642724 65.378519) (xy 119.682463 65.425043) (xy 119.69 65.462932) (xy 119.69 65.497824)\r\n\t\t\t\t(xy 119.689999 65.497824) (xy 119.696401 65.55737) (xy 119.696403 65.557381) (xy 119.746646 65.692088)\r\n\t\t\t\t(xy 119.746647 65.69209) (xy 119.832807 65.807184) (xy 119.832815 65.807192) (xy 119.947909 65.893352)\r\n\t\t\t\t(xy 119.947911 65.893353) (xy 120.082618 65.943596) (xy 120.082629 65.943598) (xy 120.142176 65.95)\r\n\t\t\t\t(xy 120.888974 65.95) (xy 120.947165 65.968907) (xy 120.983129 66.018407) (xy 120.983129 66.079593)\r\n\t\t\t\t(xy 120.947165 66.129093) (xy 120.908288 66.146098) (xy 120.748165 66.177949) (xy 120.748163 66.177949)\r\n\t\t\t\t(xy 120.566086 66.253367) (xy 120.402218 66.362861) (xy 120.402214 66.362864) (xy 120.262864 66.502214)\r\n\t\t\t\t(xy 120.262861 66.502218) (xy 120.153367 66.666086) (xy 120.077949 66.848163) (xy 120.077949 66.848165)\r\n\t\t\t\t(xy 120.0395 67.041456) (xy 120.0395 67.238543) (xy 120.077949 67.431834) (xy 120.077949 67.431836)\r\n\t\t\t\t(xy 120.153367 67.613913) (xy 120.153368 67.613914) (xy 120.262861 67.777782) (xy 120.402218 67.917139)\r\n\t\t\t\t(xy 120.566086 68.026632) (xy 120.748165 68.102051) (xy 120.941459 68.1405) (xy 120.94146 68.1405)\r\n\t\t\t\t(xy 121.13854 68.1405) (xy 121.138541 68.1405) (xy 121.331835 68.102051) (xy 121.513914 68.026632)\r\n\t\t\t\t(xy 121.677782 67.917139) (xy 121.817139 67.777782) (xy 121.926632 67.613914) (xy 122.002051 67.431835)\r\n\t\t\t\t(xy 122.0405 67.238541) (xy 122.0405 67.041459) (xy 122.002051 66.848165) (xy 121.926632 66.666086)\r\n\t\t\t\t(xy 121.817139 66.502218) (xy 121.677782 66.362861) (xy 121.513914 66.253368) (xy 121.513915 66.253368)\r\n\t\t\t\t(xy 121.513913 66.253367) (xy 121.331835 66.177949) (xy 121.171712 66.146098) (xy 121.118328 66.116201)\r\n\t\t\t\t(xy 121.092712 66.060636) (xy 121.104649 66.000626) (xy 121.149579 65.959094) (xy 121.191026 65.95)\r\n\t\t\t\t(xy 121.937824 65.95) (xy 121.99737 65.943598) (xy 121.997381 65.943596) (xy 122.132088 65.893353)\r\n\t\t\t\t(xy 122.13209 65.893352) (xy 122.247184 65.807192) (xy 122.247192 65.807184) (xy 122.333352 65.69209)\r\n\t\t\t\t(xy 122.333353 65.692088) (xy 122.383596 65.557381) (xy 122.383598 65.55737) (xy 122.39 65.497824)\r\n\t\t\t\t(xy 122.39 64.850001) (xy 122.389999 64.85) (xy 121.473012 64.85) (xy 121.505925 64.792993) (xy 121.54 64.665826)\r\n\t\t\t\t(xy 121.54 64.534174) (xy 121.505925 64.407007) (xy 121.473012 64.35) (xy 122.389999 64.35) (xy 122.39 64.349999)\r\n\t\t\t\t(xy 122.39 63.702175) (xy 122.383598 63.642629) (xy 122.383596 63.642618) (xy 122.333353 63.507911)\r\n\t\t\t\t(xy 122.333352 63.507909) (xy 122.247192 63.392815) (xy 122.247184 63.392807) (xy 122.13209 63.306647)\r\n\t\t\t\t(xy 122.132088 63.306646) (xy 121.997381 63.256403) (xy 121.99737 63.256401) (xy 121.937824 63.25)\r\n\t\t\t\t(xy 121.290001 63.25) (xy 121.29 63.250001) (xy 121.29 64.166988) (xy 121.232993 64.134075) (xy 121.105826 64.1)\r\n\t\t\t\t(xy 120.974174 64.1) (xy 120.847007 64.134075) (xy 120.79 64.166988) (xy 120.79 63.250001) (xy 120.789999 63.25)\r\n\t\t\t\t(xy 120.142176 63.25) (xy 120.082629 63.256401) (xy 120.082618 63.256403) (xy 119.947911 63.306646)\r\n\t\t\t\t(xy 119.947909 63.306647) (xy 119.832815 63.392807) (xy 119.832807 63.392815) (xy 119.746647 63.507909)\r\n\t\t\t\t(xy 119.746646 63.507911) (xy 119.696403 63.642618) (xy 119.696401 63.642629) (xy 119.69 63.702175)\r\n\t\t\t\t(xy 119.69 63.737065) (xy 119.671093 63.795256) (xy 119.624292 63.829259) (xy 118.982962 64.470589)\r\n\t\t\t\t(xy 118.965925 64.407007) (xy 118.900099 64.292993) (xy 118.807007 64.199901) (xy 118.692993 64.134075)\r\n\t\t\t\t(xy 118.629407 64.117037) (xy 119.261716 63.484729) (xy 119.261716 63.484728) (xy 119.207559 63.44538)\r\n\t\t\t\t(xy 119.207553 63.445376) (xy 119.018215 63.348904) (xy 118.816121 63.28324) (xy 118.60625 63.25)\r\n\t\t\t\t(xy 118.39375 63.25) (xy 118.183878 63.28324) (xy 117.981784 63.348904) (xy 117.792446 63.445376)\r\n\t\t\t\t(xy 117.792442 63.445378) (xy 117.738282 63.484728) (xy 118.370591 64.117037) (xy 118.307007 64.134075)\r\n\t\t\t\t(xy 118.192993 64.199901) (xy 118.099901 64.292993) (xy 118.034075 64.407007) (xy 118.017037 64.470591)\r\n\t\t\t\t(xy 117.384728 63.838282) (xy 117.345378 63.892442) (xy 117.345376 63.892446) (xy 117.31821 63.945764)\r\n\t\t\t\t(xy 117.274945 63.989029) (xy 117.214513 63.9986) (xy 117.159996 63.970822) (xy 117.14179 63.945764)\r\n\t\t\t\t(xy 117.114623 63.892446) (xy 117.114619 63.89244) (xy 117.07527 63.838282) (xy 117.075269 63.838282)\r\n\t\t\t\t(xy 116.442962 64.470589) (xy 116.425925 64.407007) (xy 116.360099 64.292993) (xy 116.267007 64.199901)\r\n\t\t\t\t(xy 116.152993 64.134075) (xy 116.089407 64.117037) (xy 116.721716 63.484729) (xy 116.721716 63.484728)\r\n\t\t\t\t(xy 116.667559 63.44538) (xy 116.667553 63.445376) (xy 116.478215 63.348904) (xy 116.276121 63.28324)\r\n\t\t\t\t(xy 116.06625 63.25) (xy 115.85375 63.25) (xy 115.643878 63.28324) (xy 115.441784 63.348904) (xy 115.252446 63.445376)\r\n\t\t\t\t(xy 115.252442 63.445378) (xy 115.198282 63.484728) (xy 115.830591 64.117037) (xy 115.767007 64.134075)\r\n\t\t\t\t(xy 1' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'15.652993 64.199901) (xy 115.559901 64.292993) (xy 115.494075 64.407007) (xy 115.477037 64.470591)\r\n\t\t\t\t(xy 114.844728 63.838282) (xy 114.805378 63.892442) (xy 114.805376 63.892446) (xy 114.77821 63.945764)\r\n\t\t\t\t(xy 114.734945 63.989029) (xy 114.674513 63.9986) (xy 114.619996 63.970822) (xy 114.60179 63.945764)\r\n\t\t\t\t(xy 114.574623 63.892446) (xy 114.574619 63.89244) (xy 114.53527 63.838282) (xy 114.535269 63.838282)\r\n\t\t\t\t(xy 113.902962 64.470589) (xy 113.885925 64.407007) (xy 113.820099 64.292993) (xy 113.727007 64.199901)\r\n\t\t\t\t(xy 113.612993 64.134075) (xy 113.549407 64.117037) (xy 114.181716 63.484729) (xy 114.181716 63.484728)\r\n\t\t\t\t(xy 114.127559 63.44538) (xy 114.127553 63.445376) (xy 113.938215 63.348904) (xy 113.736121 63.28324)\r\n\t\t\t\t(xy 113.52625 63.25) (xy 113.31375 63.25) (xy 113.103878 63.28324) (xy 112.901784 63.348904) (xy 112.712446 63.445376)\r\n\t\t\t\t(xy 112.712442 63.445378) (xy 112.658282 63.484728) (xy 113.290591 64.117037) (xy 113.227007 64.134075)\r\n\t\t\t\t(xy 113.112993 64.199901) (xy 113.019901 64.292993) (xy 112.954075 64.407007) (xy 112.937037 64.470591)\r\n\t\t\t\t(xy 112.304728 63.838282) (xy 112.265378 63.892442) (xy 112.265376 63.892446) (xy 112.168904 64.081784)\r\n\t\t\t\t(xy 112.10324 64.283878) (xy 112.07 64.493749) (xy 106.757876 64.493749) (xy 106.764239 64.482728)\r\n\t\t\t\t(xy 106.79494 64.368151) (xy 106.79494 64.249533) (xy 106.764239 64.134956) (xy 106.764237 64.134953)\r\n\t\t\t\t(xy 106.764237 64.134951) (xy 106.704932 64.032233) (xy 106.70493 64.032231) (xy 106.704929 64.032229)\r\n\t\t\t\t(xy 106.621053 63.948353) (xy 106.62105 63.948351) (xy 106.621048 63.948349) (xy 106.518329 63.889044)\r\n\t\t\t\t(xy 106.51833 63.889044) (xy 106.504791 63.885416) (xy 106.403749 63.858342) (xy 106.285131 63.858342)\r\n\t\t\t\t(xy 106.215007 63.877131) (xy 106.170549 63.889044) (xy 106.067831 63.948349) (xy 106.067825 63.948354)\r\n\t\t\t\t(xy 105.99376 64.022418) (xy 105.939243 64.050195) (xy 105.878811 64.040623) (xy 105.874257 64.03815)\r\n\t\t\t\t(xy 105.773889 63.980202) (xy 105.77389 63.980202) (xy 105.738883 63.970822) (xy 105.659309 63.9495)\r\n\t\t\t\t(xy 105.540691 63.9495) (xy 105.470567 63.968289) (xy 105.426109 63.980202) (xy 105.323391 64.039507)\r\n\t\t\t\t(xy 105.239507 64.123391) (xy 105.180202 64.226109) (xy 105.164723 64.283878) (xy 105.1495 64.340691)\r\n\t\t\t\t(xy 78.167123 64.340691) (xy 80.978318 61.529496) (xy 81.032835 61.501719) (xy 81.048322 61.5005)\r\n\t\t\t\t(xy 145.951678 61.5005)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(zone\r\n\t\t(layers "F.Cu" "B.Cu" "In1.Cu" "In2.Cu")\r\n\t\t(uuid "ddf5d6fb-8496-4e31-b143-a0fb2f9dc42e")\r\n\t\t(name "GND")\r\n\t\t(hatch edge 0.5)\r\n\t\t(connect_pads thru_hole_only\r\n\t\t\t(clearance 0)\r\n\t\t)\r\n\t\t(min_thickness 0.2)\r\n\t\t(keepout\r\n\t\t\t(tracks not_allowed)\r\n\t\t\t(vias not_allowed)\r\n\t\t\t(pads not_allowed)\r\n\t\t\t(copperpour not_allowed)\r\n\t\t\t(footprints allowed)\r\n\t\t)\r\n\t\t(placement\r\n\t\t\t(enabled no)\r\n\t\t\t(sheetname "/CM4/")\r\n\t\t)\r\n\t\t(fill\r\n\t\t\t(thermal_gap 0.5)\r\n\t\t\t(thermal_bridge_width 0.5)\r\n\t\t\t(island_removal_mode 0)\r\n\t\t)\r\n\t\t(polygon\r\n\t\t\t(pts\r\n\t\t\t\t(xy 74.9 97.3) (xy 73.5 97.3) (xy 73.5 112.3) (xy 74.9 112.3)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(zone\r\n\t\t(net "+3V3")\r\n\t\t(layer "In2.Cu")\r\n\t\t(uuid "ef4af498-3481-40a3-9c6f-891d394c30ae")\r\n\t\t(name "3.3V power")\r\n\t\t(hatch edge 0.5)\r\n\t\t(connect_pads thru_hole_only\r\n\t\t\t(clearance 0.15)\r\n\t\t)\r\n\t\t(min_thickness 0.2)\r\n\t\t(fill yes\r\n\t\t\t(thermal_gap 0.5)\r\n\t\t\t(thermal_bridge_width 0.5)\r\n\t\t\t(island_removal_mode 0)\r\n\t\t)\r\n\t\t(polygon\r\n\t\t\t(pts\r\n\t\t\t\t(xy 50 50) (xy 170 50) (xy 170 155) (xy 50 155)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(filled_polygon\r\n\t\t\t(layer "In2.Cu")\r\n\t\t\t(pts\r\n\t\t\t\t(xy 146.009869 61.519407) (xy 146.021682 61.529496) (xy 152.970504 68.478318) (xy 152.998281 68.532835)\r\n\t\t\t\t(xy 152.9995 68.548322) (xy 152.9995 133.451678) (xy 152.980593 133.509869) (xy 152.970504 133.521682)\r\n\t\t\t\t(xy 146.021682 140.470504) (xy 145.967165 140.498281) (xy 145.951678 140.4995) (xy 144.376609 140.4995)\r\n\t\t\t\t(xy 144.318418 140.480593) (xy 144.282454 140.431093) (xy 144.282454 140.369907) (xy 144.306603 140.330498)\r\n\t\t\t\t(xy 144.360489 140.276613) (xy 144.419799 140.173886) (xy 144.4505 140.059309) (xy 144.4505 139.940691)\r\n\t\t\t\t(xy 144.419799 139.826114) (xy 144.419797 139.826111) (xy 144.419797 139.826109) (xy 144.360492 139.723391)\r\n\t\t\t\t(xy 144.36049 139.723389) (xy 144.360489 139.723387) (xy 144.276613 139.639511) (xy 144.27661 139.639509)\r\n\t\t\t\t(xy 144.276608 139.639507) (xy 144.173889 139.580202) (xy 144.17389 139.580202) (xy 144.160351 139.576574)\r\n\t\t\t\t(xy 144.059309 139.5495) (xy 143.940691 139.5495) (xy 143.870567 139.568289) (xy 143.826109 139.580202)\r\n\t\t\t\t(xy 143.723391 139.639507) (xy 143.639507 139.723391) (xy 143.580202 139.826109) (xy 143.580201 139.826114)\r\n\t\t\t\t(xy 143.5495 139.940691) (xy 143.5495 140.059309) (xy 143.576574 140.160351) (xy 143.580202 140.17389)\r\n\t\t\t\t(xy 143.639507 140.276608) (xy 143.639509 140.27661) (xy 143.639511 140.276613) (xy 143.693396 140.330498)\r\n\t\t\t\t(xy 143.721172 140.385013) (xy 143.711601 140.445445) (xy 143.668336 140.48871) (xy 143.623391 140.4995)\r\n\t\t\t\t(xy 140.376609 140.4995) (xy 140.318418 140.480593) (xy 140.282454 140.431093) (xy 140.282454 140.369907)\r\n\t\t\t\t(xy 140.306603 140.330498) (xy 140.360489 140.276613) (xy 140.419799 140.173886) (xy 140.4505 140.059309)\r\n\t\t\t\t(xy 140.4505 139.940691) (xy 140.419799 139.826114) (xy 140.419797 139.826111) (xy 140.419797 139.826109)\r\n\t\t\t\t(xy 140.360492 139.723391) (xy 140.36049 139.723389) (xy 140.360489 139.723387) (xy 140.276613 139.639511)\r\n\t\t\t\t(xy 140.27661 139.639509) (xy 140.276608 139.639507) (xy 140.173889 139.580202) (xy 140.17389 139.580202)\r\n\t\t\t\t(xy 140.160351 139.576574) (xy 140.059309 139.5495) (xy 139.940691 139.5495) (xy 139.870567 139.568289)\r\n\t\t\t\t(xy 139.826109 139.580202) (xy 139.723391 139.639507) (xy 139.639507 139.723391) (xy 139.580202 139.826109)\r\n\t\t\t\t(xy 139.580201 139.826114) (xy 139.5495 139.940691) (xy 139.5495 140.059309) (xy 139.576574 140.160351)\r\n\t\t\t\t(xy 139.580202 140.17389) (xy 139.639507 140.276608) (xy 139.639509 140.27661) (xy 139.639511 140.276613)\r\n\t\t\t\t(xy 139.693396 140.330498) (xy 139.721172 140.385013) (xy 139.711601 140.445445) (xy 139.668336 140.48871)\r\n\t\t\t\t(xy 139.623391 140.4995) (xy 136.376609 140.4995) (xy 136.318418 140.480593) (xy 136.282454 140.431093)\r\n\t\t\t\t(xy 136.282454 140.369907) (xy 136.306603 140.330498) (xy 136.360489 140.276613) (xy 136.419799 140.173886)\r\n\t\t\t\t(xy 136.4505 140.059309) (xy 136.4505 139.940691) (xy 136.419799 139.826114) (xy 136.419797 139.826111)\r\n\t\t\t\t(xy 136.419797 139.826109) (xy 136.360492 139.723391) (xy 136.36049 139.723389) (xy 136.360489 139.723387)\r\n\t\t\t\t(xy 136.276613 139.639511) (xy 136.27661 139.639509) (xy 136.276608 139.639507) (xy 136.173889 139.580202)\r\n\t\t\t\t(xy 136.17389 139.580202) (xy 136.160351 139.576574) (xy 136.059309 139.5495) (xy 135.940691 139.5495)\r\n\t\t\t\t(xy 135.870567 139.568289) (xy 135.826109 139.580202) (xy 135.723391 139.639507) (xy 135.639507 139.723391)\r\n\t\t\t\t(xy 135.580202 139.826109) (xy 135.580201 139.826114) (xy 135.5495 139.940691) (xy 135.5495 140.059309)\r\n\t\t\t\t(xy 135.576574 140.160351) (xy 135.580202 140.17389) (xy 135.639507 140.276608) (xy 135.639509 140.27661)\r\n\t\t\t\t(xy 135.639511 140.276613) (xy 135.693396 140.330498) (xy 135.721172 140.385013) (xy 135.711601 140.445445)\r\n\t\t\t\t(xy 135.668336 140.48871) (xy 135.623391 140.4995) (xy 132.376609 140.4995) (xy 132.318418 140.480593)\r\n\t\t\t\t(xy 132.282454 140.431093) (xy 132.282454 140.369907) (xy 132.306603 140.330498) (xy 132.360489 140.276613)\r\n\t\t\t\t(xy 132.419799 140.173886) (xy 132.4505 140.059309) (xy 132.4505 139.940691) (xy 132.419799 139.826114)\r\n\t\t\t\t(xy 132.419797 139.826111) (xy 132.419797 139.826109) (xy 132.360492 139.723391) (xy 132.36049 139.723389)\r\n\t\t\t\t(xy 132.360489 139.723387) (xy 132.276613 139.639511) (xy 132.27661 139.639509) (xy 132.276608 139.639507)\r\n\t\t\t\t(xy 132.173889 139.580202) (xy 132.17389 139.580202) (xy 132.160351 139.576574) (xy 132.059309 139.5495)\r\n\t\t\t\t(xy 131.940691 139.5495) (xy 131.870567 139.568289) (xy 131.826109 139.580202) (xy 131.723391 139.639507)\r\n\t\t\t\t(xy 131.639507 139.723391) (xy 131.580202 139.826109) (xy 131.580201 139.826114) (xy 131.5495 139.940691)\r\n\t\t\t\t(xy 131.5495 140.059309) (xy 131.576574 140.160351) (xy 131.580202 140.17389) (xy 131.639507 140.276608)\r\n\t\t\t\t(xy 131.639509 140.27661) (xy 131.639511 140.276613) (xy ' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'131.693396 140.330498) (xy 131.721172 140.385013)\r\n\t\t\t\t(xy 131.711601 140.445445) (xy 131.668336 140.48871) (xy 131.623391 140.4995) (xy 128.376609 140.4995)\r\n\t\t\t\t(xy 128.318418 140.480593) (xy 128.282454 140.431093) (xy 128.282454 140.369907) (xy 128.306603 140.330498)\r\n\t\t\t\t(xy 128.360489 140.276613) (xy 128.419799 140.173886) (xy 128.4505 140.059309) (xy 128.4505 139.940691)\r\n\t\t\t\t(xy 128.419799 139.826114) (xy 128.419797 139.826111) (xy 128.419797 139.826109) (xy 128.360492 139.723391)\r\n\t\t\t\t(xy 128.36049 139.723389) (xy 128.360489 139.723387) (xy 128.276613 139.639511) (xy 128.27661 139.639509)\r\n\t\t\t\t(xy 128.276608 139.639507) (xy 128.173889 139.580202) (xy 128.17389 139.580202) (xy 128.160351 139.576574)\r\n\t\t\t\t(xy 128.059309 139.5495) (xy 127.940691 139.5495) (xy 127.870567 139.568289) (xy 127.826109 139.580202)\r\n\t\t\t\t(xy 127.723391 139.639507) (xy 127.639507 139.723391) (xy 127.580202 139.826109) (xy 127.580201 139.826114)\r\n\t\t\t\t(xy 127.5495 139.940691) (xy 127.5495 140.059309) (xy 127.576574 140.160351) (xy 127.580202 140.17389)\r\n\t\t\t\t(xy 127.639507 140.276608) (xy 127.639509 140.27661) (xy 127.639511 140.276613) (xy 127.693396 140.330498)\r\n\t\t\t\t(xy 127.721172 140.385013) (xy 127.711601 140.445445) (xy 127.668336 140.48871) (xy 127.623391 140.4995)\r\n\t\t\t\t(xy 124.376609 140.4995) (xy 124.318418 140.480593) (xy 124.282454 140.431093) (xy 124.282454 140.369907)\r\n\t\t\t\t(xy 124.306603 140.330498) (xy 124.360489 140.276613) (xy 124.419799 140.173886) (xy 124.4505 140.059309)\r\n\t\t\t\t(xy 124.4505 139.940691) (xy 124.419799 139.826114) (xy 124.419797 139.826111) (xy 124.419797 139.826109)\r\n\t\t\t\t(xy 124.360492 139.723391) (xy 124.36049 139.723389) (xy 124.360489 139.723387) (xy 124.276613 139.639511)\r\n\t\t\t\t(xy 124.27661 139.639509) (xy 124.276608 139.639507) (xy 124.173889 139.580202) (xy 124.17389 139.580202)\r\n\t\t\t\t(xy 124.160351 139.576574) (xy 124.059309 139.5495) (xy 123.940691 139.5495) (xy 123.870567 139.568289)\r\n\t\t\t\t(xy 123.826109 139.580202) (xy 123.723391 139.639507) (xy 123.639507 139.723391) (xy 123.580202 139.826109)\r\n\t\t\t\t(xy 123.580201 139.826114) (xy 123.5495 139.940691) (xy 123.5495 140.059309) (xy 123.576574 140.160351)\r\n\t\t\t\t(xy 123.580202 140.17389) (xy 123.639507 140.276608) (xy 123.639509 140.27661) (xy 123.639511 140.276613)\r\n\t\t\t\t(xy 123.693396 140.330498) (xy 123.721172 140.385013) (xy 123.711601 140.445445) (xy 123.668336 140.48871)\r\n\t\t\t\t(xy 123.623391 140.4995) (xy 120.376609 140.4995) (xy 120.318418 140.480593) (xy 120.282454 140.431093)\r\n\t\t\t\t(xy 120.282454 140.369907) (xy 120.306603 140.330498) (xy 120.360489 140.276613) (xy 120.419799 140.173886)\r\n\t\t\t\t(xy 120.4505 140.059309) (xy 120.4505 139.940691) (xy 120.419799 139.826114) (xy 120.419797 139.826111)\r\n\t\t\t\t(xy 120.419797 139.826109) (xy 120.360492 139.723391) (xy 120.36049 139.723389) (xy 120.360489 139.723387)\r\n\t\t\t\t(xy 120.276613 139.639511) (xy 120.27661 139.639509) (xy 120.276608 139.639507) (xy 120.173889 139.580202)\r\n\t\t\t\t(xy 120.17389 139.580202) (xy 120.160351 139.576574) (xy 120.059309 139.5495) (xy 119.940691 139.5495)\r\n\t\t\t\t(xy 119.870567 139.568289) (xy 119.826109 139.580202) (xy 119.723391 139.639507) (xy 119.639507 139.723391)\r\n\t\t\t\t(xy 119.580202 139.826109) (xy 119.580201 139.826114) (xy 119.5495 139.940691) (xy 119.5495 140.059309)\r\n\t\t\t\t(xy 119.576574 140.160351) (xy 119.580202 140.17389) (xy 119.639507 140.276608) (xy 119.639509 140.27661)\r\n\t\t\t\t(xy 119.639511 140.276613) (xy 119.693396 140.330498) (xy 119.721172 140.385013) (xy 119.711601 140.445445)\r\n\t\t\t\t(xy 119.668336 140.48871) (xy 119.623391 140.4995) (xy 116.376609 140.4995) (xy 116.318418 140.480593)\r\n\t\t\t\t(xy 116.282454 140.431093) (xy 116.282454 140.369907) (xy 116.306603 140.330498) (xy 116.360489 140.276613)\r\n\t\t\t\t(xy 116.419799 140.173886) (xy 116.4505 140.059309) (xy 116.4505 139.940691) (xy 116.419799 139.826114)\r\n\t\t\t\t(xy 116.419797 139.826111) (xy 116.419797 139.826109) (xy 116.360492 139.723391) (xy 116.36049 139.723389)\r\n\t\t\t\t(xy 116.360489 139.723387) (xy 116.276613 139.639511) (xy 116.27661 139.639509) (xy 116.276608 139.639507)\r\n\t\t\t\t(xy 116.173889 139.580202) (xy 116.17389 139.580202) (xy 116.160351 139.576574) (xy 116.059309 139.5495)\r\n\t\t\t\t(xy 115.940691 139.5495) (xy 115.870567 139.568289) (xy 115.826109 139.580202) (xy 115.723391 139.639507)\r\n\t\t\t\t(xy 115.639507 139.723391) (xy 115.580202 139.826109) (xy 115.580201 139.826114) (xy 115.5495 139.940691)\r\n\t\t\t\t(xy 115.5495 140.059309) (xy 115.576574 140.160351) (xy 115.580202 140.17389) (xy 115.639507 140.276608)\r\n\t\t\t\t(xy 115.639509 140.27661) (xy 115.639511 140.276613) (xy 115.693396 140.330498) (xy 115.721172 140.385013)\r\n\t\t\t\t(xy 115.711601 140.445445) (xy 115.668336 140.48871) (xy 115.623391 140.4995) (xy 112.376609 140.4995)\r\n\t\t\t\t(xy 112.318418 140.480593) (xy 112.282454 140.431093) (xy 112.282454 140.369907) (xy 112.306603 140.330498)\r\n\t\t\t\t(xy 112.360489 140.276613) (xy 112.419799 140.173886) (xy 112.4505 140.059309) (xy 112.4505 139.940691)\r\n\t\t\t\t(xy 112.419799 139.826114) (xy 112.419797 139.826111) (xy 112.419797 139.826109) (xy 112.360492 139.723391)\r\n\t\t\t\t(xy 112.36049 139.723389) (xy 112.360489 139.723387) (xy 112.276613 139.639511) (xy 112.27661 139.639509)\r\n\t\t\t\t(xy 112.276608 139.639507) (xy 112.173889 139.580202) (xy 112.17389 139.580202) (xy 112.160351 139.576574)\r\n\t\t\t\t(xy 112.059309 139.5495) (xy 111.940691 139.5495) (xy 111.870567 139.568289) (xy 111.826109 139.580202)\r\n\t\t\t\t(xy 111.723391 139.639507) (xy 111.639507 139.723391) (xy 111.580202 139.826109) (xy 111.580201 139.826114)\r\n\t\t\t\t(xy 111.5495 139.940691) (xy 111.5495 140.059309) (xy 111.576574 140.160351) (xy 111.580202 140.17389)\r\n\t\t\t\t(xy 111.639507 140.276608) (xy 111.639509 140.27661) (xy 111.639511 140.276613) (xy 111.693396 140.330498)\r\n\t\t\t\t(xy 111.721172 140.385013) (xy 111.711601 140.445445) (xy 111.668336 140.48871) (xy 111.623391 140.4995)\r\n\t\t\t\t(xy 108.376609 140.4995) (xy 108.318418 140.480593) (xy 108.282454 140.431093) (xy 108.282454 140.369907)\r\n\t\t\t\t(xy 108.306603 140.330498) (xy 108.360489 140.276613) (xy 108.419799 140.173886) (xy 108.4505 140.059309)\r\n\t\t\t\t(xy 108.4505 139.940691) (xy 108.419799 139.826114) (xy 108.419797 139.826111) (xy 108.419797 139.826109)\r\n\t\t\t\t(xy 108.360492 139.723391) (xy 108.36049 139.723389) (xy 108.360489 139.723387) (xy 108.276613 139.639511)\r\n\t\t\t\t(xy 108.27661 139.639509) (xy 108.276608 139.639507) (xy 108.173889 139.580202) (xy 108.17389 139.580202)\r\n\t\t\t\t(xy 108.160351 139.576574) (xy 108.059309 139.5495) (xy 107.940691 139.5495) (xy 107.870567 139.568289)\r\n\t\t\t\t(xy 107.826109 139.580202) (xy 107.723391 139.639507) (xy 107.639507 139.723391) (xy 107.580202 139.826109)\r\n\t\t\t\t(xy 107.580201 139.826114) (xy 107.5495 139.940691) (xy 107.5495 140.059309) (xy 107.576574 140.160351)\r\n\t\t\t\t(xy 107.580202 140.17389) (xy 107.639507 140.276608) (xy 107.639509 140.27661) (xy 107.639511 140.276613)\r\n\t\t\t\t(xy 107.693396 140.330498) (xy 107.721172 140.385013) (xy 107.711601 140.445445) (xy 107.668336 140.48871)\r\n\t\t\t\t(xy 107.623391 140.4995) (xy 104.376609 140.4995) (xy 104.318418 140.480593) (xy 104.282454 140.431093)\r\n\t\t\t\t(xy 104.282454 140.369907) (xy 104.306603 140.330498) (xy 104.360489 140.276613) (xy 104.419799 140.173886)\r\n\t\t\t\t(xy 104.4505 140.059309) (xy 104.4505 139.940691) (xy 104.419799 139.826114) (xy 104.419797 139.826111)\r\n\t\t\t\t(xy 104.419797 139.826109) (xy 104.360492 139.723391) (xy 104.36049 139.723389) (xy 104.360489 139.723387)\r\n\t\t\t\t(xy 104.276613 139.639511) (xy 104.27661 139.639509) (xy 104.276608 139.639507) (xy 104.173889 139.580202)\r\n\t\t\t\t(xy 104.17389 139.580202) (xy 104.160351 139.576574) (xy 104.059309 139.5495) (xy 103.940691 139.5495)\r\n\t\t\t\t(xy 103.870567 139.568289) (xy 103.826109 139.580202) (xy 103.723391 139.639507) (xy 103.639507 139.723391)\r\n\t\t\t\t(xy 103.580202 139.826109) (xy 103.580201 139.826114) (xy 103.5495 139.940691) (xy 103.5495 140.059309)\r\n\t\t\t\t(xy 103.576574 140.160351) (xy 103.580202 140.17389) (xy 103.639507 140.276608) (xy 103.639509 140.27661)\r\n\t\t\t\t(xy 103.639511 140.276613) (xy 103.693396 140.330498) (xy 103.721172 140.385013) (xy 103.711601 140.445445)\r\n\t\t\t\t(xy 103.668336 140.48871) (xy 103.623391 140.4995) (xy 100.376609 140.4995) (xy 100.318418 140.480593)\r\n\t\t\t\t(xy 100.282454 140.431093) (xy 100.282454 140.3' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'69907) (xy 100.306603 140.330498) (xy 100.360489 140.276613)\r\n\t\t\t\t(xy 100.419799 140.173886) (xy 100.4505 140.059309) (xy 100.4505 139.940691) (xy 100.419799 139.826114)\r\n\t\t\t\t(xy 100.419797 139.826111) (xy 100.419797 139.826109) (xy 100.360492 139.723391) (xy 100.36049 139.723389)\r\n\t\t\t\t(xy 100.360489 139.723387) (xy 100.276613 139.639511) (xy 100.27661 139.639509) (xy 100.276608 139.639507)\r\n\t\t\t\t(xy 100.173889 139.580202) (xy 100.17389 139.580202) (xy 100.160351 139.576574) (xy 100.059309 139.5495)\r\n\t\t\t\t(xy 99.940691 139.5495) (xy 99.870567 139.568289) (xy 99.826109 139.580202) (xy 99.723391 139.639507)\r\n\t\t\t\t(xy 99.639507 139.723391) (xy 99.580202 139.826109) (xy 99.580201 139.826114) (xy 99.5495 139.940691)\r\n\t\t\t\t(xy 99.5495 140.059309) (xy 99.576574 140.160351) (xy 99.580202 140.17389) (xy 99.639507 140.276608)\r\n\t\t\t\t(xy 99.639509 140.27661) (xy 99.639511 140.276613) (xy 99.693396 140.330498) (xy 99.721172 140.385013)\r\n\t\t\t\t(xy 99.711601 140.445445) (xy 99.668336 140.48871) (xy 99.623391 140.4995) (xy 96.376609 140.4995)\r\n\t\t\t\t(xy 96.318418 140.480593) (xy 96.282454 140.431093) (xy 96.282454 140.369907) (xy 96.306603 140.330498)\r\n\t\t\t\t(xy 96.360489 140.276613) (xy 96.419799 140.173886) (xy 96.4505 140.059309) (xy 96.4505 139.940691)\r\n\t\t\t\t(xy 96.419799 139.826114) (xy 96.419797 139.826111) (xy 96.419797 139.826109) (xy 96.360492 139.723391)\r\n\t\t\t\t(xy 96.36049 139.723389) (xy 96.360489 139.723387) (xy 96.276613 139.639511) (xy 96.27661 139.639509)\r\n\t\t\t\t(xy 96.276608 139.639507) (xy 96.173889 139.580202) (xy 96.17389 139.580202) (xy 96.160351 139.576574)\r\n\t\t\t\t(xy 96.059309 139.5495) (xy 95.940691 139.5495) (xy 95.870567 139.568289) (xy 95.826109 139.580202)\r\n\t\t\t\t(xy 95.723391 139.639507) (xy 95.639507 139.723391) (xy 95.580202 139.826109) (xy 95.580201 139.826114)\r\n\t\t\t\t(xy 95.5495 139.940691) (xy 95.5495 140.059309) (xy 95.576574 140.160351) (xy 95.580202 140.17389)\r\n\t\t\t\t(xy 95.639507 140.276608) (xy 95.639509 140.27661) (xy 95.639511 140.276613) (xy 95.693396 140.330498)\r\n\t\t\t\t(xy 95.721172 140.385013) (xy 95.711601 140.445445) (xy 95.668336 140.48871) (xy 95.623391 140.4995)\r\n\t\t\t\t(xy 92.376609 140.4995) (xy 92.318418 140.480593) (xy 92.282454 140.431093) (xy 92.282454 140.369907)\r\n\t\t\t\t(xy 92.306603 140.330498) (xy 92.360489 140.276613) (xy 92.419799 140.173886) (xy 92.4505 140.059309)\r\n\t\t\t\t(xy 92.4505 139.940691) (xy 92.419799 139.826114) (xy 92.419797 139.826111) (xy 92.419797 139.826109)\r\n\t\t\t\t(xy 92.360492 139.723391) (xy 92.36049 139.723389) (xy 92.360489 139.723387) (xy 92.276613 139.639511)\r\n\t\t\t\t(xy 92.27661 139.639509) (xy 92.276608 139.639507) (xy 92.173889 139.580202) (xy 92.17389 139.580202)\r\n\t\t\t\t(xy 92.160351 139.576574) (xy 92.059309 139.5495) (xy 91.940691 139.5495) (xy 91.870567 139.568289)\r\n\t\t\t\t(xy 91.826109 139.580202) (xy 91.723391 139.639507) (xy 91.639507 139.723391) (xy 91.580202 139.826109)\r\n\t\t\t\t(xy 91.580201 139.826114) (xy 91.5495 139.940691) (xy 91.5495 140.059309) (xy 91.576574 140.160351)\r\n\t\t\t\t(xy 91.580202 140.17389) (xy 91.639507 140.276608) (xy 91.639509 140.27661) (xy 91.639511 140.276613)\r\n\t\t\t\t(xy 91.693396 140.330498) (xy 91.721172 140.385013) (xy 91.711601 140.445445) (xy 91.668336 140.48871)\r\n\t\t\t\t(xy 91.623391 140.4995) (xy 88.376609 140.4995) (xy 88.318418 140.480593) (xy 88.282454 140.431093)\r\n\t\t\t\t(xy 88.282454 140.369907) (xy 88.306603 140.330498) (xy 88.360489 140.276613) (xy 88.419799 140.173886)\r\n\t\t\t\t(xy 88.4505 140.059309) (xy 88.4505 139.940691) (xy 88.419799 139.826114) (xy 88.419797 139.826111)\r\n\t\t\t\t(xy 88.419797 139.826109) (xy 88.360492 139.723391) (xy 88.36049 139.723389) (xy 88.360489 139.723387)\r\n\t\t\t\t(xy 88.276613 139.639511) (xy 88.27661 139.639509) (xy 88.276608 139.639507) (xy 88.173889 139.580202)\r\n\t\t\t\t(xy 88.17389 139.580202) (xy 88.160351 139.576574) (xy 88.059309 139.5495) (xy 87.940691 139.5495)\r\n\t\t\t\t(xy 87.870567 139.568289) (xy 87.826109 139.580202) (xy 87.723391 139.639507) (xy 87.639507 139.723391)\r\n\t\t\t\t(xy 87.580202 139.826109) (xy 87.580201 139.826114) (xy 87.5495 139.940691) (xy 87.5495 140.059309)\r\n\t\t\t\t(xy 87.576574 140.160351) (xy 87.580202 140.17389) (xy 87.639507 140.276608) (xy 87.639509 140.27661)\r\n\t\t\t\t(xy 87.639511 140.276613) (xy 87.693396 140.330498) (xy 87.721172 140.385013) (xy 87.711601 140.445445)\r\n\t\t\t\t(xy 87.668336 140.48871) (xy 87.623391 140.4995) (xy 84.376609 140.4995) (xy 84.318418 140.480593)\r\n\t\t\t\t(xy 84.282454 140.431093) (xy 84.282454 140.369907) (xy 84.306603 140.330498) (xy 84.360489 140.276613)\r\n\t\t\t\t(xy 84.419799 140.173886) (xy 84.4505 140.059309) (xy 84.4505 139.940691) (xy 84.419799 139.826114)\r\n\t\t\t\t(xy 84.419797 139.826111) (xy 84.419797 139.826109) (xy 84.360492 139.723391) (xy 84.36049 139.723389)\r\n\t\t\t\t(xy 84.360489 139.723387) (xy 84.276613 139.639511) (xy 84.27661 139.639509) (xy 84.276608 139.639507)\r\n\t\t\t\t(xy 84.173889 139.580202) (xy 84.17389 139.580202) (xy 84.160351 139.576574) (xy 84.059309 139.5495)\r\n\t\t\t\t(xy 83.940691 139.5495) (xy 83.870567 139.568289) (xy 83.826109 139.580202) (xy 83.723391 139.639507)\r\n\t\t\t\t(xy 83.639507 139.723391) (xy 83.580202 139.826109) (xy 83.580201 139.826114) (xy 83.5495 139.940691)\r\n\t\t\t\t(xy 83.5495 140.059309) (xy 83.576574 140.160351) (xy 83.580202 140.17389) (xy 83.639507 140.276608)\r\n\t\t\t\t(xy 83.639509 140.27661) (xy 83.639511 140.276613) (xy 83.693396 140.330498) (xy 83.721172 140.385013)\r\n\t\t\t\t(xy 83.711601 140.445445) (xy 83.668336 140.48871) (xy 83.623391 140.4995) (xy 81.048322 140.4995)\r\n\t\t\t\t(xy 80.990131 140.480593) (xy 80.978318 140.470504) (xy 76.448505 135.940691) (xy 79.5495 135.940691)\r\n\t\t\t\t(xy 79.5495 136.059309) (xy 79.571306 136.140691) (xy 79.580202 136.17389) (xy 79.639507 136.276608)\r\n\t\t\t\t(xy 79.639509 136.27661) (xy 79.639511 136.276613) (xy 79.723387 136.360489) (xy 79.723389 136.36049)\r\n\t\t\t\t(xy 79.723391 136.360492) (xy 79.82611 136.419797) (xy 79.826111 136.419797) (xy 79.826114 136.419799)\r\n\t\t\t\t(xy 79.940691 136.4505) (xy 79.940693 136.4505) (xy 80.059307 136.4505) (xy 80.059309 136.4505)\r\n\t\t\t\t(xy 80.173886 136.419799) (xy 80.173888 136.419797) (xy 80.17389 136.419797) (xy 80.276608 136.360492)\r\n\t\t\t\t(xy 80.276608 136.360491) (xy 80.276613 136.360489) (xy 80.360489 136.276613) (xy 80.419799 136.173886)\r\n\t\t\t\t(xy 80.4505 136.059309) (xy 80.4505 135.940691) (xy 83.5495 135.940691) (xy 83.5495 136.059309)\r\n\t\t\t\t(xy 83.571306 136.140691) (xy 83.580202 136.17389) (xy 83.639507 136.276608) (xy 83.639509 136.27661)\r\n\t\t\t\t(xy 83.639511 136.276613) (xy 83.723387 136.360489) (xy 83.723389 136.36049) (xy 83.723391 136.360492)\r\n\t\t\t\t(xy 83.82611 136.419797) (xy 83.826111 136.419797) (xy 83.826114 136.419799) (xy 83.940691 136.4505)\r\n\t\t\t\t(xy 83.940693 136.4505) (xy 84.059307 136.4505) (xy 84.059309 136.4505) (xy 84.173886 136.419799)\r\n\t\t\t\t(xy 84.173888 136.419797) (xy 84.17389 136.419797) (xy 84.276608 136.360492) (xy 84.276608 136.360491)\r\n\t\t\t\t(xy 84.276613 136.360489) (xy 84.360489 136.276613) (xy 84.419799 136.173886) (xy 84.428694 136.140691)\r\n\t\t\t\t(xy 100.3495 136.140691) (xy 100.3495 136.259309) (xy 100.354137 136.276613) (xy 100.380202 136.37389)\r\n\t\t\t\t(xy 100.439507 136.476608) (xy 100.439509 136.47661) (xy 100.439511 136.476613) (xy 100.523387 136.560489)\r\n\t\t\t\t(xy 100.523389 136.56049) (xy 100.523391 136.560492) (xy 100.62611 136.619797) (xy 100.626111 136.619797)\r\n\t\t\t\t(xy 100.626114 136.619799) (xy 100.740691 136.6505) (xy 100.740693 136.6505) (xy 100.859307 136.6505)\r\n\t\t\t\t(xy 100.859309 136.6505) (xy 100.973886 136.619799) (xy 100.973888 136.619797) (xy 100.97389 136.619797)\r\n\t\t\t\t(xy 101.076608 136.560492) (xy 101.076608 136.560491) (xy 101.076613 136.560489) (xy 101.160489 136.476613)\r\n\t\t\t\t(xy 101.160492 136.476608) (xy 101.219797 136.37389) (xy 101.219797 136.373888) (xy 101.219799 136.373886)\r\n\t\t\t\t(xy 101.2505 136.259309) (xy 101.2505 136.140691) (xy 101.9495 136.140691) (xy 101.9495 136.259309)\r\n\t\t\t\t(xy 101.954137 136.276613) (xy 101.980202 136.37389) (xy 102.039507 136.476608) (xy 102.039509 136.47661)\r\n\t\t\t\t(xy 102.039511 136.476613) (xy 102.123387 136.560489) (xy 102.123389 136.56049) (xy 102.123391 136.560492)\r\n\t\t\t\t(xy 102.22611 136.619797) (xy 102.226111 136.619797) (xy 102.226114 136.619799) (xy 102.340691 136.6505)\r\n\t\t\t\t(xy 102.340693 136.6505) (xy 102.459307 136.6505) (xy 102.459309 136.65' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'05) (xy 102.573886 136.619799)\r\n\t\t\t\t(xy 102.573888 136.619797) (xy 102.57389 136.619797) (xy 102.676608 136.560492) (xy 102.676608 136.560491)\r\n\t\t\t\t(xy 102.676613 136.560489) (xy 102.760489 136.476613) (xy 102.760492 136.476608) (xy 102.819797 136.37389)\r\n\t\t\t\t(xy 102.819797 136.373888) (xy 102.819799 136.373886) (xy 102.8505 136.259309) (xy 102.8505 136.140691)\r\n\t\t\t\t(xy 103.3495 136.140691) (xy 103.3495 136.259309) (xy 103.354137 136.276613) (xy 103.380202 136.37389)\r\n\t\t\t\t(xy 103.439507 136.476608) (xy 103.439509 136.47661) (xy 103.439511 136.476613) (xy 103.523387 136.560489)\r\n\t\t\t\t(xy 103.523389 136.56049) (xy 103.523391 136.560492) (xy 103.62611 136.619797) (xy 103.626111 136.619797)\r\n\t\t\t\t(xy 103.626114 136.619799) (xy 103.740691 136.6505) (xy 103.740693 136.6505) (xy 103.859307 136.6505)\r\n\t\t\t\t(xy 103.859309 136.6505) (xy 103.973886 136.619799) (xy 103.973888 136.619797) (xy 103.97389 136.619797)\r\n\t\t\t\t(xy 104.076608 136.560492) (xy 104.076608 136.560491) (xy 104.076613 136.560489) (xy 104.160489 136.476613)\r\n\t\t\t\t(xy 104.160492 136.476608) (xy 104.219797 136.37389) (xy 104.219797 136.373888) (xy 104.219799 136.373886)\r\n\t\t\t\t(xy 104.2505 136.259309) (xy 104.2505 136.140691) (xy 104.9495 136.140691) (xy 104.9495 136.259309)\r\n\t\t\t\t(xy 104.954137 136.276613) (xy 104.980202 136.37389) (xy 105.039507 136.476608) (xy 105.039509 136.47661)\r\n\t\t\t\t(xy 105.039511 136.476613) (xy 105.123387 136.560489) (xy 105.123389 136.56049) (xy 105.123391 136.560492)\r\n\t\t\t\t(xy 105.22611 136.619797) (xy 105.226111 136.619797) (xy 105.226114 136.619799) (xy 105.340691 136.6505)\r\n\t\t\t\t(xy 105.340693 136.6505) (xy 105.459307 136.6505) (xy 105.459309 136.6505) (xy 105.573886 136.619799)\r\n\t\t\t\t(xy 105.573888 136.619797) (xy 105.57389 136.619797) (xy 105.676608 136.560492) (xy 105.676608 136.560491)\r\n\t\t\t\t(xy 105.676613 136.560489) (xy 105.760489 136.476613) (xy 105.760492 136.476608) (xy 105.819797 136.37389)\r\n\t\t\t\t(xy 105.819797 136.373888) (xy 105.819799 136.373886) (xy 105.8505 136.259309) (xy 105.8505 136.140691)\r\n\t\t\t\t(xy 105.819799 136.026114) (xy 105.819797 136.026111) (xy 105.819797 136.026109) (xy 105.795313 135.983702)\r\n\t\t\t\t(xy 105.77048 135.940691) (xy 111.5495 135.940691) (xy 111.5495 136.059309) (xy 111.571306 136.140691)\r\n\t\t\t\t(xy 111.580202 136.17389) (xy 111.639507 136.276608) (xy 111.639509 136.27661) (xy 111.639511 136.276613)\r\n\t\t\t\t(xy 111.723387 136.360489) (xy 111.723389 136.36049) (xy 111.723391 136.360492) (xy 111.82611 136.419797)\r\n\t\t\t\t(xy 111.826111 136.419797) (xy 111.826114 136.419799) (xy 111.940691 136.4505) (xy 111.940693 136.4505)\r\n\t\t\t\t(xy 112.059307 136.4505) (xy 112.059309 136.4505) (xy 112.173886 136.419799) (xy 112.173888 136.419797)\r\n\t\t\t\t(xy 112.17389 136.419797) (xy 112.276608 136.360492) (xy 112.276608 136.360491) (xy 112.276613 136.360489)\r\n\t\t\t\t(xy 112.360489 136.276613) (xy 112.419799 136.173886) (xy 112.4505 136.059309) (xy 112.4505 135.940691)\r\n\t\t\t\t(xy 115.5495 135.940691) (xy 115.5495 136.059309) (xy 115.571306 136.140691) (xy 115.580202 136.17389)\r\n\t\t\t\t(xy 115.639507 136.276608) (xy 115.639509 136.27661) (xy 115.639511 136.276613) (xy 115.723387 136.360489)\r\n\t\t\t\t(xy 115.723389 136.36049) (xy 115.723391 136.360492) (xy 115.82611 136.419797) (xy 115.826111 136.419797)\r\n\t\t\t\t(xy 115.826114 136.419799) (xy 115.940691 136.4505) (xy 115.940693 136.4505) (xy 116.059307 136.4505)\r\n\t\t\t\t(xy 116.059309 136.4505) (xy 116.173886 136.419799) (xy 116.173888 136.419797) (xy 116.17389 136.419797)\r\n\t\t\t\t(xy 116.276608 136.360492) (xy 116.276608 136.360491) (xy 116.276613 136.360489) (xy 116.360489 136.276613)\r\n\t\t\t\t(xy 116.419799 136.173886) (xy 116.4505 136.059309) (xy 116.4505 135.940691) (xy 119.5495 135.940691)\r\n\t\t\t\t(xy 119.5495 136.059309) (xy 119.571306 136.140691) (xy 119.580202 136.17389) (xy 119.639507 136.276608)\r\n\t\t\t\t(xy 119.639509 136.27661) (xy 119.639511 136.276613) (xy 119.723387 136.360489) (xy 119.723389 136.36049)\r\n\t\t\t\t(xy 119.723391 136.360492) (xy 119.82611 136.419797) (xy 119.826111 136.419797) (xy 119.826114 136.419799)\r\n\t\t\t\t(xy 119.940691 136.4505) (xy 119.940693 136.4505) (xy 120.059307 136.4505) (xy 120.059309 136.4505)\r\n\t\t\t\t(xy 120.173886 136.419799) (xy 120.173888 136.419797) (xy 120.17389 136.419797) (xy 120.276608 136.360492)\r\n\t\t\t\t(xy 120.276608 136.360491) (xy 120.276613 136.360489) (xy 120.360489 136.276613) (xy 120.419799 136.173886)\r\n\t\t\t\t(xy 120.4505 136.059309) (xy 120.4505 135.940691) (xy 123.5495 135.940691) (xy 123.5495 136.059309)\r\n\t\t\t\t(xy 123.571306 136.140691) (xy 123.580202 136.17389) (xy 123.639507 136.276608) (xy 123.639509 136.27661)\r\n\t\t\t\t(xy 123.639511 136.276613) (xy 123.723387 136.360489) (xy 123.723389 136.36049) (xy 123.723391 136.360492)\r\n\t\t\t\t(xy 123.82611 136.419797) (xy 123.826111 136.419797) (xy 123.826114 136.419799) (xy 123.940691 136.4505)\r\n\t\t\t\t(xy 123.940693 136.4505) (xy 124.059307 136.4505) (xy 124.059309 136.4505) (xy 124.173886 136.419799)\r\n\t\t\t\t(xy 124.173888 136.419797) (xy 124.17389 136.419797) (xy 124.276608 136.360492) (xy 124.276608 136.360491)\r\n\t\t\t\t(xy 124.276613 136.360489) (xy 124.360489 136.276613) (xy 124.419799 136.173886) (xy 124.4505 136.059309)\r\n\t\t\t\t(xy 124.4505 135.940691) (xy 127.5495 135.940691) (xy 127.5495 136.059309) (xy 127.571306 136.140691)\r\n\t\t\t\t(xy 127.580202 136.17389) (xy 127.639507 136.276608) (xy 127.639509 136.27661) (xy 127.639511 136.276613)\r\n\t\t\t\t(xy 127.723387 136.360489) (xy 127.723389 136.36049) (xy 127.723391 136.360492) (xy 127.82611 136.419797)\r\n\t\t\t\t(xy 127.826111 136.419797) (xy 127.826114 136.419799) (xy 127.940691 136.4505) (xy 127.940693 136.4505)\r\n\t\t\t\t(xy 128.059307 136.4505) (xy 128.059309 136.4505) (xy 128.173886 136.419799) (xy 128.173888 136.419797)\r\n\t\t\t\t(xy 128.17389 136.419797) (xy 128.276608 136.360492) (xy 128.276608 136.360491) (xy 128.276613 136.360489)\r\n\t\t\t\t(xy 128.360489 136.276613) (xy 128.419799 136.173886) (xy 128.4505 136.059309) (xy 128.4505 135.940691)\r\n\t\t\t\t(xy 131.5495 135.940691) (xy 131.5495 136.059309) (xy 131.571306 136.140691) (xy 131.580202 136.17389)\r\n\t\t\t\t(xy 131.639507 136.276608) (xy 131.639509 136.27661) (xy 131.639511 136.276613) (xy 131.723387 136.360489)\r\n\t\t\t\t(xy 131.723389 136.36049) (xy 131.723391 136.360492) (xy 131.82611 136.419797) (xy 131.826111 136.419797)\r\n\t\t\t\t(xy 131.826114 136.419799) (xy 131.940691 136.4505) (xy 131.940693 136.4505) (xy 132.059307 136.4505)\r\n\t\t\t\t(xy 132.059309 136.4505) (xy 132.173886 136.419799) (xy 132.173888 136.419797) (xy 132.17389 136.419797)\r\n\t\t\t\t(xy 132.276608 136.360492) (xy 132.276608 136.360491) (xy 132.276613 136.360489) (xy 132.360489 136.276613)\r\n\t\t\t\t(xy 132.419799 136.173886) (xy 132.4505 136.059309) (xy 132.4505 135.940691) (xy 139.5495 135.940691)\r\n\t\t\t\t(xy 139.5495 136.059309) (xy 139.571306 136.140691) (xy 139.580202 136.17389) (xy 139.639507 136.276608)\r\n\t\t\t\t(xy 139.639509 136.27661) (xy 139.639511 136.276613) (xy 139.723387 136.360489) (xy 139.723389 136.36049)\r\n\t\t\t\t(xy 139.723391 136.360492) (xy 139.82611 136.419797) (xy 139.826111 136.419797) (xy 139.826114 136.419799)\r\n\t\t\t\t(xy 139.940691 136.4505) (xy 139.940693 136.4505) (xy 140.059307 136.4505) (xy 140.059309 136.4505)\r\n\t\t\t\t(xy 140.173886 136.419799) (xy 140.173888 136.419797) (xy 140.17389 136.419797) (xy 140.276608 136.360492)\r\n\t\t\t\t(xy 140.276608 136.360491) (xy 140.276613 136.360489) (xy 140.360489 136.276613) (xy 140.419799 136.173886)\r\n\t\t\t\t(xy 140.4505 136.059309) (xy 140.4505 135.940691) (xy 143.5495 135.940691) (xy 143.5495 136.059309)\r\n\t\t\t\t(xy 143.571306 136.140691) (xy 143.580202 136.17389) (xy 143.639507 136.276608) (xy 143.639509 136.27661)\r\n\t\t\t\t(xy 143.639511 136.276613) (xy 143.723387 136.360489) (xy 143.723389 136.36049) (xy 143.723391 136.360492)\r\n\t\t\t\t(xy 143.82611 136.419797) (xy 143.826111 136.419797) (xy 143.826114 136.419799) (xy 143.940691 136.4505)\r\n\t\t\t\t(xy 143.940693 136.4505) (xy 144.059307 136.4505) (xy 144.059309 136.4505) (xy 144.173886 136.419799)\r\n\t\t\t\t(xy 144.173888 136.419797) (xy 144.17389 136.419797) (xy 144.276608 136.360492) (xy 144.276608 136.360491)\r\n\t\t\t\t(xy 144.276613 136.360489) (xy 144.360489 136.276613) (xy 144.419799 136.173886) (xy 144.4505 136.059309)\r\n\t\t\t\t(xy 144.4505 135.940691) (xy 147.5495 135.940691) (xy 147.5495 136.059309) (xy 147.571306 136.140691)\r\n\t\t\t\t(xy 147.580202 13' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'6.17389) (xy 147.639507 136.276608) (xy 147.639509 136.27661) (xy 147.639511 136.276613)\r\n\t\t\t\t(xy 147.723387 136.360489) (xy 147.723389 136.36049) (xy 147.723391 136.360492) (xy 147.82611 136.419797)\r\n\t\t\t\t(xy 147.826111 136.419797) (xy 147.826114 136.419799) (xy 147.940691 136.4505) (xy 147.940693 136.4505)\r\n\t\t\t\t(xy 148.059307 136.4505) (xy 148.059309 136.4505) (xy 148.173886 136.419799) (xy 148.173888 136.419797)\r\n\t\t\t\t(xy 148.17389 136.419797) (xy 148.276608 136.360492) (xy 148.276608 136.360491) (xy 148.276613 136.360489)\r\n\t\t\t\t(xy 148.360489 136.276613) (xy 148.419799 136.173886) (xy 148.4505 136.059309) (xy 148.4505 135.940691)\r\n\t\t\t\t(xy 148.419799 135.826114) (xy 148.419797 135.826111) (xy 148.419797 135.826109) (xy 148.360492 135.723391)\r\n\t\t\t\t(xy 148.36049 135.723389) (xy 148.360489 135.723387) (xy 148.276613 135.639511) (xy 148.27661 135.639509)\r\n\t\t\t\t(xy 148.276608 135.639507) (xy 148.173889 135.580202) (xy 148.17389 135.580202) (xy 148.160351 135.576574)\r\n\t\t\t\t(xy 148.059309 135.5495) (xy 147.940691 135.5495) (xy 147.870567 135.568289) (xy 147.826109 135.580202)\r\n\t\t\t\t(xy 147.723391 135.639507) (xy 147.639507 135.723391) (xy 147.580202 135.826109) (xy 147.580201 135.826114)\r\n\t\t\t\t(xy 147.5495 135.940691) (xy 144.4505 135.940691) (xy 144.419799 135.826114) (xy 144.419797 135.826111)\r\n\t\t\t\t(xy 144.419797 135.826109) (xy 144.360492 135.723391) (xy 144.36049 135.723389) (xy 144.360489 135.723387)\r\n\t\t\t\t(xy 144.276613 135.639511) (xy 144.27661 135.639509) (xy 144.276608 135.639507) (xy 144.173889 135.580202)\r\n\t\t\t\t(xy 144.17389 135.580202) (xy 144.160351 135.576574) (xy 144.059309 135.5495) (xy 143.940691 135.5495)\r\n\t\t\t\t(xy 143.870567 135.568289) (xy 143.826109 135.580202) (xy 143.723391 135.639507) (xy 143.639507 135.723391)\r\n\t\t\t\t(xy 143.580202 135.826109) (xy 143.580201 135.826114) (xy 143.5495 135.940691) (xy 140.4505 135.940691)\r\n\t\t\t\t(xy 140.419799 135.826114) (xy 140.419797 135.826111) (xy 140.419797 135.826109) (xy 140.360492 135.723391)\r\n\t\t\t\t(xy 140.36049 135.723389) (xy 140.360489 135.723387) (xy 140.276613 135.639511) (xy 140.27661 135.639509)\r\n\t\t\t\t(xy 140.276608 135.639507) (xy 140.173889 135.580202) (xy 140.17389 135.580202) (xy 140.160351 135.576574)\r\n\t\t\t\t(xy 140.059309 135.5495) (xy 139.940691 135.5495) (xy 139.870567 135.568289) (xy 139.826109 135.580202)\r\n\t\t\t\t(xy 139.723391 135.639507) (xy 139.639507 135.723391) (xy 139.580202 135.826109) (xy 139.580201 135.826114)\r\n\t\t\t\t(xy 139.5495 135.940691) (xy 132.4505 135.940691) (xy 132.419799 135.826114) (xy 132.419797 135.826111)\r\n\t\t\t\t(xy 132.419797 135.826109) (xy 132.360492 135.723391) (xy 132.36049 135.723389) (xy 132.360489 135.723387)\r\n\t\t\t\t(xy 132.276613 135.639511) (xy 132.27661 135.639509) (xy 132.276608 135.639507) (xy 132.173889 135.580202)\r\n\t\t\t\t(xy 132.17389 135.580202) (xy 132.160351 135.576574) (xy 132.059309 135.5495) (xy 131.940691 135.5495)\r\n\t\t\t\t(xy 131.870567 135.568289) (xy 131.826109 135.580202) (xy 131.723391 135.639507) (xy 131.639507 135.723391)\r\n\t\t\t\t(xy 131.580202 135.826109) (xy 131.580201 135.826114) (xy 131.5495 135.940691) (xy 128.4505 135.940691)\r\n\t\t\t\t(xy 128.419799 135.826114) (xy 128.419797 135.826111) (xy 128.419797 135.826109) (xy 128.360492 135.723391)\r\n\t\t\t\t(xy 128.36049 135.723389) (xy 128.360489 135.723387) (xy 128.276613 135.639511) (xy 128.27661 135.639509)\r\n\t\t\t\t(xy 128.276608 135.639507) (xy 128.173889 135.580202) (xy 128.17389 135.580202) (xy 128.160351 135.576574)\r\n\t\t\t\t(xy 128.059309 135.5495) (xy 127.940691 135.5495) (xy 127.870567 135.568289) (xy 127.826109 135.580202)\r\n\t\t\t\t(xy 127.723391 135.639507) (xy 127.639507 135.723391) (xy 127.580202 135.826109) (xy 127.580201 135.826114)\r\n\t\t\t\t(xy 127.5495 135.940691) (xy 124.4505 135.940691) (xy 124.419799 135.826114) (xy 124.419797 135.826111)\r\n\t\t\t\t(xy 124.419797 135.826109) (xy 124.360492 135.723391) (xy 124.36049 135.723389) (xy 124.360489 135.723387)\r\n\t\t\t\t(xy 124.276613 135.639511) (xy 124.27661 135.639509) (xy 124.276608 135.639507) (xy 124.173889 135.580202)\r\n\t\t\t\t(xy 124.17389 135.580202) (xy 124.160351 135.576574) (xy 124.059309 135.5495) (xy 123.940691 135.5495)\r\n\t\t\t\t(xy 123.870567 135.568289) (xy 123.826109 135.580202) (xy 123.723391 135.639507) (xy 123.639507 135.723391)\r\n\t\t\t\t(xy 123.580202 135.826109) (xy 123.580201 135.826114) (xy 123.5495 135.940691) (xy 120.4505 135.940691)\r\n\t\t\t\t(xy 120.419799 135.826114) (xy 120.419797 135.826111) (xy 120.419797 135.826109) (xy 120.360492 135.723391)\r\n\t\t\t\t(xy 120.36049 135.723389) (xy 120.360489 135.723387) (xy 120.276613 135.639511) (xy 120.27661 135.639509)\r\n\t\t\t\t(xy 120.276608 135.639507) (xy 120.173889 135.580202) (xy 120.17389 135.580202) (xy 120.160351 135.576574)\r\n\t\t\t\t(xy 120.059309 135.5495) (xy 119.940691 135.5495) (xy 119.870567 135.568289) (xy 119.826109 135.580202)\r\n\t\t\t\t(xy 119.723391 135.639507) (xy 119.639507 135.723391) (xy 119.580202 135.826109) (xy 119.580201 135.826114)\r\n\t\t\t\t(xy 119.5495 135.940691) (xy 116.4505 135.940691) (xy 116.419799 135.826114) (xy 116.419797 135.826111)\r\n\t\t\t\t(xy 116.419797 135.826109) (xy 116.360492 135.723391) (xy 116.36049 135.723389) (xy 116.360489 135.723387)\r\n\t\t\t\t(xy 116.276613 135.639511) (xy 116.27661 135.639509) (xy 116.276608 135.639507) (xy 116.173889 135.580202)\r\n\t\t\t\t(xy 116.17389 135.580202) (xy 116.160351 135.576574) (xy 116.059309 135.5495) (xy 115.940691 135.5495)\r\n\t\t\t\t(xy 115.870567 135.568289) (xy 115.826109 135.580202) (xy 115.723391 135.639507) (xy 115.639507 135.723391)\r\n\t\t\t\t(xy 115.580202 135.826109) (xy 115.580201 135.826114) (xy 115.5495 135.940691) (xy 112.4505 135.940691)\r\n\t\t\t\t(xy 112.419799 135.826114) (xy 112.419797 135.826111) (xy 112.419797 135.826109) (xy 112.360492 135.723391)\r\n\t\t\t\t(xy 112.36049 135.723389) (xy 112.360489 135.723387) (xy 112.276613 135.639511) (xy 112.27661 135.639509)\r\n\t\t\t\t(xy 112.276608 135.639507) (xy 112.173889 135.580202) (xy 112.17389 135.580202) (xy 112.160351 135.576574)\r\n\t\t\t\t(xy 112.059309 135.5495) (xy 111.940691 135.5495) (xy 111.870567 135.568289) (xy 111.826109 135.580202)\r\n\t\t\t\t(xy 111.723391 135.639507) (xy 111.639507 135.723391) (xy 111.580202 135.826109) (xy 111.580201 135.826114)\r\n\t\t\t\t(xy 111.5495 135.940691) (xy 105.77048 135.940691) (xy 105.760492 135.923391) (xy 105.76049 135.923389)\r\n\t\t\t\t(xy 105.760489 135.923387) (xy 105.676613 135.839511) (xy 105.67661 135.839509) (xy 105.676608 135.839507)\r\n\t\t\t\t(xy 105.573889 135.780202) (xy 105.57389 135.780202) (xy 105.560351 135.776574) (xy 105.459309 135.7495)\r\n\t\t\t\t(xy 105.340691 135.7495) (xy 105.270567 135.768289) (xy 105.226109 135.780202) (xy 105.123391 135.839507)\r\n\t\t\t\t(xy 105.039507 135.923391) (xy 104.980202 136.026109) (xy 104.980201 136.026114) (xy 104.9495 136.140691)\r\n\t\t\t\t(xy 104.2505 136.140691) (xy 104.219799 136.026114) (xy 104.219797 136.026111) (xy 104.219797 136.026109)\r\n\t\t\t\t(xy 104.160492 135.923391) (xy 104.16049 135.923389) (xy 104.160489 135.923387) (xy 104.076613 135.839511)\r\n\t\t\t\t(xy 104.07661 135.839509) (xy 104.076608 135.839507) (xy 103.973889 135.780202) (xy 103.97389 135.780202)\r\n\t\t\t\t(xy 103.960351 135.776574) (xy 103.859309 135.7495) (xy 103.740691 135.7495) (xy 103.670567 135.768289)\r\n\t\t\t\t(xy 103.626109 135.780202) (xy 103.523391 135.839507) (xy 103.439507 135.923391) (xy 103.380202 136.026109)\r\n\t\t\t\t(xy 103.380201 136.026114) (xy 103.3495 136.140691) (xy 102.8505 136.140691) (xy 102.819799 136.026114)\r\n\t\t\t\t(xy 102.819797 136.026111) (xy 102.819797 136.026109) (xy 102.760492 135.923391) (xy 102.76049 135.923389)\r\n\t\t\t\t(xy 102.760489 135.923387) (xy 102.676613 135.839511) (xy 102.67661 135.839509) (xy 102.676608 135.839507)\r\n\t\t\t\t(xy 102.573889 135.780202) (xy 102.57389 135.780202) (xy 102.560351 135.776574) (xy 102.459309 135.7495)\r\n\t\t\t\t(xy 102.340691 135.7495) (xy 102.270567 135.768289) (xy 102.226109 135.780202) (xy 102.123391 135.839507)\r\n\t\t\t\t(xy 102.039507 135.923391) (xy 101.980202 136.026109) (xy 101.980201 136.026114) (xy 101.9495 136.140691)\r\n\t\t\t\t(xy 101.2505 136.140691) (xy 101.219799 136.026114) (xy 101.219797 136.026111) (xy 101.219797 136.026109)\r\n\t\t\t\t(xy 101.160492 135.923391) (xy 101.16049 135.923389) (xy 101.160489 135.923387) (xy 101.076613 135.839511)\r\n\t\t\t\t(xy 101.07661 135.839509) (xy 101.076608 135.839507) (xy 100.973889 135.780202) (xy 100.97389 135.780202)\r\n\t\t' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'\t\t(xy 100.960351 135.776574) (xy 100.859309 135.7495) (xy 100.740691 135.7495) (xy 100.670567 135.768289)\r\n\t\t\t\t(xy 100.626109 135.780202) (xy 100.523391 135.839507) (xy 100.439507 135.923391) (xy 100.380202 136.026109)\r\n\t\t\t\t(xy 100.380201 136.026114) (xy 100.3495 136.140691) (xy 84.428694 136.140691) (xy 84.4505 136.059309)\r\n\t\t\t\t(xy 84.4505 135.940691) (xy 84.419799 135.826114) (xy 84.419797 135.826111) (xy 84.419797 135.826109)\r\n\t\t\t\t(xy 84.360492 135.723391) (xy 84.36049 135.723389) (xy 84.360489 135.723387) (xy 84.276613 135.639511)\r\n\t\t\t\t(xy 84.27661 135.639509) (xy 84.276608 135.639507) (xy 84.173889 135.580202) (xy 84.17389 135.580202)\r\n\t\t\t\t(xy 84.160351 135.576574) (xy 84.059309 135.5495) (xy 83.940691 135.5495) (xy 83.870567 135.568289)\r\n\t\t\t\t(xy 83.826109 135.580202) (xy 83.723391 135.639507) (xy 83.639507 135.723391) (xy 83.580202 135.826109)\r\n\t\t\t\t(xy 83.580201 135.826114) (xy 83.5495 135.940691) (xy 80.4505 135.940691) (xy 80.419799 135.826114)\r\n\t\t\t\t(xy 80.419797 135.826111) (xy 80.419797 135.826109) (xy 80.360492 135.723391) (xy 80.36049 135.723389)\r\n\t\t\t\t(xy 80.360489 135.723387) (xy 80.276613 135.639511) (xy 80.27661 135.639509) (xy 80.276608 135.639507)\r\n\t\t\t\t(xy 80.173889 135.580202) (xy 80.17389 135.580202) (xy 80.160351 135.576574) (xy 80.059309 135.5495)\r\n\t\t\t\t(xy 79.940691 135.5495) (xy 79.870567 135.568289) (xy 79.826109 135.580202) (xy 79.723391 135.639507)\r\n\t\t\t\t(xy 79.639507 135.723391) (xy 79.580202 135.826109) (xy 79.580201 135.826114) (xy 79.5495 135.940691)\r\n\t\t\t\t(xy 76.448505 135.940691) (xy 75.052048 134.544234) (xy 116.9145 134.544234) (xy 116.9145 134.695766)\r\n\t\t\t\t(xy 116.949086 134.824847) (xy 116.95372 134.842139) (xy 117.029481 134.97336) (xy 117.029483 134.973362)\r\n\t\t\t\t(xy 117.029485 134.973365) (xy 117.136635 135.080515) (xy 117.136637 135.080516) (xy 117.136639 135.080518)\r\n\t\t\t\t(xy 117.267861 135.156279) (xy 117.267859 135.156279) (xy 117.267863 135.15628) (xy 117.267865 135.156281)\r\n\t\t\t\t(xy 117.414234 135.1955) (xy 117.414236 135.1955) (xy 117.565764 135.1955) (xy 117.565766 135.1955)\r\n\t\t\t\t(xy 117.712135 135.156281) (xy 117.712137 135.156279) (xy 117.712139 135.156279) (xy 117.84336 135.080518)\r\n\t\t\t\t(xy 117.84336 135.080517) (xy 117.843365 135.080515) (xy 117.950515 134.973365) (xy 118.026281 134.842135)\r\n\t\t\t\t(xy 118.0655 134.695766) (xy 118.0655 134.544234) (xy 122.6945 134.544234) (xy 122.6945 134.695766)\r\n\t\t\t\t(xy 122.729086 134.824847) (xy 122.73372 134.842139) (xy 122.809481 134.97336) (xy 122.809483 134.973362)\r\n\t\t\t\t(xy 122.809485 134.973365) (xy 122.916635 135.080515) (xy 122.916637 135.080516) (xy 122.916639 135.080518)\r\n\t\t\t\t(xy 123.047861 135.156279) (xy 123.047859 135.156279) (xy 123.047863 135.15628) (xy 123.047865 135.156281)\r\n\t\t\t\t(xy 123.194234 135.1955) (xy 123.194236 135.1955) (xy 123.345764 135.1955) (xy 123.345766 135.1955)\r\n\t\t\t\t(xy 123.492135 135.156281) (xy 123.492137 135.156279) (xy 123.492139 135.156279) (xy 123.62336 135.080518)\r\n\t\t\t\t(xy 123.62336 135.080517) (xy 123.623365 135.080515) (xy 123.730515 134.973365) (xy 123.806281 134.842135)\r\n\t\t\t\t(xy 123.8455 134.695766) (xy 123.8455 134.544234) (xy 123.806281 134.397865) (xy 123.806279 134.397862)\r\n\t\t\t\t(xy 123.806279 134.39786) (xy 123.730518 134.266639) (xy 123.730516 134.266637) (xy 123.730515 134.266635)\r\n\t\t\t\t(xy 123.623365 134.159485) (xy 123.623362 134.159483) (xy 123.62336 134.159481) (xy 123.492138 134.08372)\r\n\t\t\t\t(xy 123.49214 134.08372) (xy 123.435347 134.068503) (xy 123.345766 134.0445) (xy 123.194234 134.0445)\r\n\t\t\t\t(xy 123.104652 134.068503) (xy 123.04786 134.08372) (xy 122.916639 134.159481) (xy 122.809481 134.266639)\r\n\t\t\t\t(xy 122.73372 134.39786) (xy 122.719616 134.4505) (xy 122.6945 134.544234) (xy 118.0655 134.544234)\r\n\t\t\t\t(xy 118.026281 134.397865) (xy 118.026279 134.397862) (xy 118.026279 134.39786) (xy 117.950518 134.266639)\r\n\t\t\t\t(xy 117.950516 134.266637) (xy 117.950515 134.266635) (xy 117.843365 134.159485) (xy 117.843362 134.159483)\r\n\t\t\t\t(xy 117.84336 134.159481) (xy 117.712138 134.08372) (xy 117.71214 134.08372) (xy 117.655347 134.068503)\r\n\t\t\t\t(xy 117.565766 134.0445) (xy 117.414234 134.0445) (xy 117.324652 134.068503) (xy 117.26786 134.08372)\r\n\t\t\t\t(xy 117.136639 134.159481) (xy 117.029481 134.266639) (xy 116.95372 134.39786) (xy 116.939616 134.4505)\r\n\t\t\t\t(xy 116.9145 134.544234) (xy 75.052048 134.544234) (xy 74.048505 133.540691) (xy 91.2495 133.540691)\r\n\t\t\t\t(xy 91.2495 133.659309) (xy 91.254137 133.676613) (xy 91.280202 133.77389) (xy 91.339507 133.876608)\r\n\t\t\t\t(xy 91.339509 133.87661) (xy 91.339511 133.876613) (xy 91.423387 133.960489) (xy 91.423389 133.96049)\r\n\t\t\t\t(xy 91.423391 133.960492) (xy 91.52611 134.019797) (xy 91.526111 134.019797) (xy 91.526114 134.019799)\r\n\t\t\t\t(xy 91.640691 134.0505) (xy 91.640693 134.0505) (xy 91.759307 134.0505) (xy 91.759309 134.0505)\r\n\t\t\t\t(xy 91.873886 134.019799) (xy 91.873888 134.019797) (xy 91.87389 134.019797) (xy 91.976608 133.960492)\r\n\t\t\t\t(xy 91.976608 133.960491) (xy 91.976613 133.960489) (xy 91.996411 133.940691) (xy 94.8495 133.940691)\r\n\t\t\t\t(xy 94.8495 134.059309) (xy 94.856041 134.083719) (xy 94.880202 134.17389) (xy 94.939507 134.276608)\r\n\t\t\t\t(xy 94.939509 134.27661) (xy 94.939511 134.276613) (xy 95.023387 134.360489) (xy 95.023389 134.36049)\r\n\t\t\t\t(xy 95.023391 134.360492) (xy 95.12611 134.419797) (xy 95.126111 134.419797) (xy 95.126114 134.419799)\r\n\t\t\t\t(xy 95.240691 134.4505) (xy 95.240693 134.4505) (xy 95.359307 134.4505) (xy 95.359309 134.4505)\r\n\t\t\t\t(xy 95.473886 134.419799) (xy 95.473888 134.419797) (xy 95.47389 134.419797) (xy 95.576608 134.360492)\r\n\t\t\t\t(xy 95.576608 134.360491) (xy 95.576613 134.360489) (xy 95.605 134.332101) (xy 95.659513 134.304326)\r\n\t\t\t\t(xy 95.719945 134.313897) (xy 95.745001 134.3321) (xy 95.77339 134.360489) (xy 95.773392 134.36049)\r\n\t\t\t\t(xy 95.773394 134.360492) (xy 95.876113 134.419797) (xy 95.876114 134.419797) (xy 95.876117 134.419799)\r\n\t\t\t\t(xy 95.990694 134.4505) (xy 95.990696 134.4505) (xy 96.10931 134.4505) (xy 96.109312 134.4505) (xy 96.223889 134.419799)\r\n\t\t\t\t(xy 96.223891 134.419797) (xy 96.223893 134.419797) (xy 96.326611 134.360492) (xy 96.326611 134.360491)\r\n\t\t\t\t(xy 96.326616 134.360489) (xy 96.410492 134.276613) (xy 96.469802 134.173886) (xy 96.500503 134.059309)\r\n\t\t\t\t(xy 96.500503 133.940691) (xy 96.469802 133.826114) (xy 96.4698 133.826111) (xy 96.4698 133.826109)\r\n\t\t\t\t(xy 96.410495 133.723391) (xy 96.410493 133.723389) (xy 96.410492 133.723387) (xy 96.326616 133.639511)\r\n\t\t\t\t(xy 96.326613 133.639509) (xy 96.326611 133.639507) (xy 96.223892 133.580202) (xy 96.223893 133.580202)\r\n\t\t\t\t(xy 96.200321 133.573886) (xy 96.109312 133.5495) (xy 95.990694 133.5495) (xy 95.92057 133.568289)\r\n\t\t\t\t(xy 95.876112 133.580202) (xy 95.773394 133.639507) (xy 95.745004 133.667897) (xy 95.690487 133.695673)\r\n\t\t\t\t(xy 95.630055 133.686101) (xy 95.605 133.667898) (xy 95.576613 133.639511) (xy 95.57661 133.639509)\r\n\t\t\t\t(xy 95.576608 133.639507) (xy 95.473889 133.580202) (xy 95.47389 133.580202) (xy 95.450318 133.573886)\r\n\t\t\t\t(xy 95.359309 133.5495) (xy 95.240691 133.5495) (xy 95.170567 133.568289) (xy 95.126109 133.580202)\r\n\t\t\t\t(xy 95.023391 133.639507) (xy 94.939507 133.723391) (xy 94.880202 133.826109) (xy 94.880201 133.826114)\r\n\t\t\t\t(xy 94.8495 133.940691) (xy 91.996411 133.940691) (xy 92.060489 133.876613) (xy 92.060492 133.876608)\r\n\t\t\t\t(xy 92.119797 133.77389) (xy 92.119797 133.773888) (xy 92.119799 133.773886) (xy 92.1505 133.659309)\r\n\t\t\t\t(xy 92.1505 133.540691) (xy 92.119799 133.426114) (xy 92.119797 133.426111) (xy 92.119797 133.426109)\r\n\t\t\t\t(xy 92.095313 133.383702) (xy 92.07048 133.340691) (xy 100.3495 133.340691) (xy 100.3495 133.459309)\r\n\t\t\t\t(xy 100.363048 133.509869) (xy 100.380202 133.57389) (xy 100.439507 133.676608) (xy 100.439509 133.67661)\r\n\t\t\t\t(xy 100.439511 133.676613) (xy 100.523387 133.760489) (xy 100.523389 133.76049) (xy 100.523391 133.760492)\r\n\t\t\t\t(xy 100.62611 133.819797) (xy 100.626111 133.819797) (xy 100.626114 133.819799) (xy 100.740691 133.8505)\r\n\t\t\t\t(xy 100.740693 133.8505) (xy 100.859307 133.8505) (xy 100.859309 133.8505) (xy 100.973886 133.819799)\r\n\t\t\t\t(xy 100.973888 133.819797) (xy 100.97389 133.819797) (xy 101.076608 133.760492) (xy 101.076608 133.760491)\r\n\t\t\t\t(xy 101.076613 133.760489) (xy 101.160489 133.676613) (xy 1' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'01.18191 133.639511) (xy 101.219797 133.57389)\r\n\t\t\t\t(xy 101.219797 133.573888) (xy 101.219799 133.573886) (xy 101.2505 133.459309) (xy 101.2505 133.340691)\r\n\t\t\t\t(xy 101.9495 133.340691) (xy 101.9495 133.459309) (xy 101.963048 133.509869) (xy 101.980202 133.57389)\r\n\t\t\t\t(xy 102.039507 133.676608) (xy 102.039509 133.67661) (xy 102.039511 133.676613) (xy 102.123387 133.760489)\r\n\t\t\t\t(xy 102.123389 133.76049) (xy 102.123391 133.760492) (xy 102.22611 133.819797) (xy 102.226111 133.819797)\r\n\t\t\t\t(xy 102.226114 133.819799) (xy 102.340691 133.8505) (xy 102.340693 133.8505) (xy 102.459307 133.8505)\r\n\t\t\t\t(xy 102.459309 133.8505) (xy 102.573886 133.819799) (xy 102.573888 133.819797) (xy 102.57389 133.819797)\r\n\t\t\t\t(xy 102.676608 133.760492) (xy 102.676608 133.760491) (xy 102.676613 133.760489) (xy 102.760489 133.676613)\r\n\t\t\t\t(xy 102.78191 133.639511) (xy 102.819797 133.57389) (xy 102.819797 133.573888) (xy 102.819799 133.573886)\r\n\t\t\t\t(xy 102.8505 133.459309) (xy 102.8505 133.340691) (xy 103.3495 133.340691) (xy 103.3495 133.459309)\r\n\t\t\t\t(xy 103.363048 133.509869) (xy 103.380202 133.57389) (xy 103.439507 133.676608) (xy 103.439509 133.67661)\r\n\t\t\t\t(xy 103.439511 133.676613) (xy 103.523387 133.760489) (xy 103.523389 133.76049) (xy 103.523391 133.760492)\r\n\t\t\t\t(xy 103.62611 133.819797) (xy 103.626111 133.819797) (xy 103.626114 133.819799) (xy 103.740691 133.8505)\r\n\t\t\t\t(xy 103.740693 133.8505) (xy 103.859307 133.8505) (xy 103.859309 133.8505) (xy 103.973886 133.819799)\r\n\t\t\t\t(xy 103.973888 133.819797) (xy 103.97389 133.819797) (xy 104.076608 133.760492) (xy 104.076608 133.760491)\r\n\t\t\t\t(xy 104.076613 133.760489) (xy 104.160489 133.676613) (xy 104.18191 133.639511) (xy 104.219797 133.57389)\r\n\t\t\t\t(xy 104.219797 133.573888) (xy 104.219799 133.573886) (xy 104.2505 133.459309) (xy 104.2505 133.340691)\r\n\t\t\t\t(xy 104.9495 133.340691) (xy 104.9495 133.459309) (xy 104.963048 133.509869) (xy 104.980202 133.57389)\r\n\t\t\t\t(xy 105.039507 133.676608) (xy 105.039509 133.67661) (xy 105.039511 133.676613) (xy 105.123387 133.760489)\r\n\t\t\t\t(xy 105.123389 133.76049) (xy 105.123391 133.760492) (xy 105.22611 133.819797) (xy 105.226111 133.819797)\r\n\t\t\t\t(xy 105.226114 133.819799) (xy 105.340691 133.8505) (xy 105.340693 133.8505) (xy 105.459307 133.8505)\r\n\t\t\t\t(xy 105.459309 133.8505) (xy 105.573886 133.819799) (xy 105.573888 133.819797) (xy 105.57389 133.819797)\r\n\t\t\t\t(xy 105.676608 133.760492) (xy 105.676608 133.760491) (xy 105.676613 133.760489) (xy 105.760489 133.676613)\r\n\t\t\t\t(xy 105.78191 133.639511) (xy 105.819797 133.57389) (xy 105.819797 133.573888) (xy 105.819799 133.573886)\r\n\t\t\t\t(xy 105.8505 133.459309) (xy 105.8505 133.340691) (xy 105.819799 133.226114) (xy 105.819797 133.226111)\r\n\t\t\t\t(xy 105.819797 133.226109) (xy 105.760492 133.123391) (xy 105.76049 133.123389) (xy 105.760489 133.123387)\r\n\t\t\t\t(xy 105.676613 133.039511) (xy 105.67661 133.039509) (xy 105.676608 133.039507) (xy 105.573889 132.980202)\r\n\t\t\t\t(xy 105.57389 132.980202) (xy 105.560351 132.976574) (xy 105.459309 132.9495) (xy 105.340691 132.9495)\r\n\t\t\t\t(xy 105.270567 132.968289) (xy 105.226109 132.980202) (xy 105.123391 133.039507) (xy 105.039507 133.123391)\r\n\t\t\t\t(xy 104.980202 133.226109) (xy 104.980201 133.226114) (xy 104.9495 133.340691) (xy 104.2505 133.340691)\r\n\t\t\t\t(xy 104.219799 133.226114) (xy 104.219797 133.226111) (xy 104.219797 133.226109) (xy 104.160492 133.123391)\r\n\t\t\t\t(xy 104.16049 133.123389) (xy 104.160489 133.123387) (xy 104.076613 133.039511) (xy 104.07661 133.039509)\r\n\t\t\t\t(xy 104.076608 133.039507) (xy 103.973889 132.980202) (xy 103.97389 132.980202) (xy 103.960351 132.976574)\r\n\t\t\t\t(xy 103.859309 132.9495) (xy 103.740691 132.9495) (xy 103.670567 132.968289) (xy 103.626109 132.980202)\r\n\t\t\t\t(xy 103.523391 133.039507) (xy 103.439507 133.123391) (xy 103.380202 133.226109) (xy 103.380201 133.226114)\r\n\t\t\t\t(xy 103.3495 133.340691) (xy 102.8505 133.340691) (xy 102.819799 133.226114) (xy 102.819797 133.226111)\r\n\t\t\t\t(xy 102.819797 133.226109) (xy 102.760492 133.123391) (xy 102.76049 133.123389) (xy 102.760489 133.123387)\r\n\t\t\t\t(xy 102.676613 133.039511) (xy 102.67661 133.039509) (xy 102.676608 133.039507) (xy 102.573889 132.980202)\r\n\t\t\t\t(xy 102.57389 132.980202) (xy 102.560351 132.976574) (xy 102.459309 132.9495) (xy 102.340691 132.9495)\r\n\t\t\t\t(xy 102.270567 132.968289) (xy 102.226109 132.980202) (xy 102.123391 133.039507) (xy 102.039507 133.123391)\r\n\t\t\t\t(xy 101.980202 133.226109) (xy 101.980201 133.226114) (xy 101.9495 133.340691) (xy 101.2505 133.340691)\r\n\t\t\t\t(xy 101.219799 133.226114) (xy 101.219797 133.226111) (xy 101.219797 133.226109) (xy 101.160492 133.123391)\r\n\t\t\t\t(xy 101.16049 133.123389) (xy 101.160489 133.123387) (xy 101.076613 133.039511) (xy 101.07661 133.039509)\r\n\t\t\t\t(xy 101.076608 133.039507) (xy 100.973889 132.980202) (xy 100.97389 132.980202) (xy 100.960351 132.976574)\r\n\t\t\t\t(xy 100.859309 132.9495) (xy 100.740691 132.9495) (xy 100.670567 132.968289) (xy 100.626109 132.980202)\r\n\t\t\t\t(xy 100.523391 133.039507) (xy 100.439507 133.123391) (xy 100.380202 133.226109) (xy 100.380201 133.226114)\r\n\t\t\t\t(xy 100.3495 133.340691) (xy 92.07048 133.340691) (xy 92.060492 133.323391) (xy 92.06049 133.323389)\r\n\t\t\t\t(xy 92.060489 133.323387) (xy 91.976613 133.239511) (xy 91.97661 133.239509) (xy 91.976608 133.239507)\r\n\t\t\t\t(xy 91.873889 133.180202) (xy 91.87389 133.180202) (xy 91.860351 133.176574) (xy 91.759309 133.1495)\r\n\t\t\t\t(xy 91.640691 133.1495) (xy 91.570567 133.168289) (xy 91.526109 133.180202) (xy 91.423391 133.239507)\r\n\t\t\t\t(xy 91.339507 133.323391) (xy 91.280202 133.426109) (xy 91.280201 133.426114) (xy 91.2495 133.540691)\r\n\t\t\t\t(xy 74.048505 133.540691) (xy 74.029496 133.521682) (xy 74.001719 133.467165) (xy 74.0005 133.451678)\r\n\t\t\t\t(xy 74.0005 132.640691) (xy 92.6495 132.640691) (xy 92.6495 132.759309) (xy 92.676574 132.860351)\r\n\t\t\t\t(xy 92.680202 132.87389) (xy 92.739507 132.976608) (xy 92.739509 132.97661) (xy 92.739511 132.976613)\r\n\t\t\t\t(xy 92.823387 133.060489) (xy 92.823389 133.06049) (xy 92.823391 133.060492) (xy 92.92611 133.119797)\r\n\t\t\t\t(xy 92.926111 133.119797) (xy 92.926114 133.119799) (xy 93.040691 133.1505) (xy 93.040693 133.1505)\r\n\t\t\t\t(xy 93.159307 133.1505) (xy 93.159309 133.1505) (xy 93.273886 133.119799) (xy 93.273888 133.119797)\r\n\t\t\t\t(xy 93.27389 133.119797) (xy 93.376608 133.060492) (xy 93.376608 133.060491) (xy 93.376613 133.060489)\r\n\t\t\t\t(xy 93.460489 132.976613) (xy 93.519799 132.873886) (xy 93.5505 132.759309) (xy 93.5505 132.640691)\r\n\t\t\t\t(xy 93.519799 132.526114) (xy 93.519797 132.526111) (xy 93.519797 132.526109) (xy 93.460492 132.423391)\r\n\t\t\t\t(xy 93.46049 132.423389) (xy 93.460489 132.423387) (xy 93.376613 132.339511) (xy 93.37661 132.339509)\r\n\t\t\t\t(xy 93.376608 132.339507) (xy 93.273889 132.280202) (xy 93.27389 132.280202) (xy 93.260351 132.276574)\r\n\t\t\t\t(xy 93.159309 132.2495) (xy 93.040691 132.2495) (xy 92.970567 132.268289) (xy 92.926109 132.280202)\r\n\t\t\t\t(xy 92.823391 132.339507) (xy 92.739507 132.423391) (xy 92.680202 132.526109) (xy 92.680201 132.526114)\r\n\t\t\t\t(xy 92.6495 132.640691) (xy 74.0005 132.640691) (xy 74.0005 131.940691) (xy 75.5495 131.940691)\r\n\t\t\t\t(xy 75.5495 132.059309) (xy 75.576574 132.160351) (xy 75.580202 132.17389) (xy 75.639507 132.276608)\r\n\t\t\t\t(xy 75.639509 132.27661) (xy 75.639511 132.276613) (xy 75.723387 132.360489) (xy 75.723389 132.36049)\r\n\t\t\t\t(xy 75.723391 132.360492) (xy 75.82611 132.419797) (xy 75.826111 132.419797) (xy 75.826114 132.419799)\r\n\t\t\t\t(xy 75.940691 132.4505) (xy 75.940693 132.4505) (xy 76.059307 132.4505) (xy 76.059309 132.4505)\r\n\t\t\t\t(xy 76.173886 132.419799) (xy 76.173888 132.419797) (xy 76.17389 132.419797) (xy 76.276608 132.360492)\r\n\t\t\t\t(xy 76.276608 132.360491) (xy 76.276613 132.360489) (xy 76.360489 132.276613) (xy 76.376143 132.2495)\r\n\t\t\t\t(xy 76.419797 132.17389) (xy 76.419797 132.173888) (xy 76.419799 132.173886) (xy 76.4505 132.059309)\r\n\t\t\t\t(xy 76.4505 131.940691) (xy 79.5495 131.940691) (xy 79.5495 132.059309) (xy 79.576574 132.160351)\r\n\t\t\t\t(xy 79.580202 132.17389) (xy 79.639507 132.276608) (xy 79.639509 132.27661) (xy 79.639511 132.276613)\r\n\t\t\t\t(xy 79.723387 132.360489) (xy 79.723389 132.36049) (xy 79.723391 132.360492) (xy 79.82611 132.419797)\r\n\t\t\t\t(xy 79.826111 132.419797) (xy 79.826114 132.419799) (xy 79.940691 132.4505) (xy 79.94069' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'3 132.4505)\r\n\t\t\t\t(xy 80.059307 132.4505) (xy 80.059309 132.4505) (xy 80.173886 132.419799) (xy 80.173888 132.419797)\r\n\t\t\t\t(xy 80.17389 132.419797) (xy 80.276608 132.360492) (xy 80.276608 132.360491) (xy 80.276613 132.360489)\r\n\t\t\t\t(xy 80.360489 132.276613) (xy 80.376143 132.2495) (xy 80.419797 132.17389) (xy 80.419797 132.173888)\r\n\t\t\t\t(xy 80.419799 132.173886) (xy 80.4505 132.059309) (xy 80.4505 131.940691) (xy 83.5495 131.940691)\r\n\t\t\t\t(xy 83.5495 132.059309) (xy 83.576574 132.160351) (xy 83.580202 132.17389) (xy 83.639507 132.276608)\r\n\t\t\t\t(xy 83.639509 132.27661) (xy 83.639511 132.276613) (xy 83.723387 132.360489) (xy 83.723389 132.36049)\r\n\t\t\t\t(xy 83.723391 132.360492) (xy 83.82611 132.419797) (xy 83.826111 132.419797) (xy 83.826114 132.419799)\r\n\t\t\t\t(xy 83.940691 132.4505) (xy 83.940693 132.4505) (xy 84.059307 132.4505) (xy 84.059309 132.4505)\r\n\t\t\t\t(xy 84.173886 132.419799) (xy 84.173888 132.419797) (xy 84.17389 132.419797) (xy 84.276608 132.360492)\r\n\t\t\t\t(xy 84.276608 132.360491) (xy 84.276613 132.360489) (xy 84.360489 132.276613) (xy 84.376143 132.2495)\r\n\t\t\t\t(xy 84.419797 132.17389) (xy 84.419797 132.173888) (xy 84.419799 132.173886) (xy 84.4505 132.059309)\r\n\t\t\t\t(xy 84.4505 131.940691) (xy 87.5495 131.940691) (xy 87.5495 132.059309) (xy 87.576574 132.160351)\r\n\t\t\t\t(xy 87.580202 132.17389) (xy 87.639507 132.276608) (xy 87.639509 132.27661) (xy 87.639511 132.276613)\r\n\t\t\t\t(xy 87.723387 132.360489) (xy 87.723389 132.36049) (xy 87.723391 132.360492) (xy 87.82611 132.419797)\r\n\t\t\t\t(xy 87.826111 132.419797) (xy 87.826114 132.419799) (xy 87.940691 132.4505) (xy 87.940693 132.4505)\r\n\t\t\t\t(xy 88.059307 132.4505) (xy 88.059309 132.4505) (xy 88.173886 132.419799) (xy 88.173888 132.419797)\r\n\t\t\t\t(xy 88.17389 132.419797) (xy 88.276608 132.360492) (xy 88.276608 132.360491) (xy 88.276613 132.360489)\r\n\t\t\t\t(xy 88.360489 132.276613) (xy 88.376143 132.2495) (xy 88.419797 132.17389) (xy 88.419797 132.173888)\r\n\t\t\t\t(xy 88.419799 132.173886) (xy 88.4505 132.059309) (xy 88.4505 131.940691) (xy 91.5495 131.940691)\r\n\t\t\t\t(xy 91.5495 132.059309) (xy 91.576574 132.160351) (xy 91.580202 132.17389) (xy 91.639507 132.276608)\r\n\t\t\t\t(xy 91.639509 132.27661) (xy 91.639511 132.276613) (xy 91.723387 132.360489) (xy 91.723389 132.36049)\r\n\t\t\t\t(xy 91.723391 132.360492) (xy 91.82611 132.419797) (xy 91.826111 132.419797) (xy 91.826114 132.419799)\r\n\t\t\t\t(xy 91.940691 132.4505) (xy 91.940693 132.4505) (xy 92.059307 132.4505) (xy 92.059309 132.4505)\r\n\t\t\t\t(xy 92.173886 132.419799) (xy 92.173888 132.419797) (xy 92.17389 132.419797) (xy 92.276608 132.360492)\r\n\t\t\t\t(xy 92.276608 132.360491) (xy 92.276613 132.360489) (xy 92.360489 132.276613) (xy 92.376143 132.2495)\r\n\t\t\t\t(xy 92.419797 132.17389) (xy 92.419797 132.173888) (xy 92.419799 132.173886) (xy 92.4505 132.059309)\r\n\t\t\t\t(xy 92.4505 131.940691) (xy 99.5495 131.940691) (xy 99.5495 132.059309) (xy 99.576574 132.160351)\r\n\t\t\t\t(xy 99.580202 132.17389) (xy 99.639507 132.276608) (xy 99.639509 132.27661) (xy 99.639511 132.276613)\r\n\t\t\t\t(xy 99.723387 132.360489) (xy 99.723389 132.36049) (xy 99.723391 132.360492) (xy 99.82611 132.419797)\r\n\t\t\t\t(xy 99.826111 132.419797) (xy 99.826114 132.419799) (xy 99.940691 132.4505) (xy 99.940693 132.4505)\r\n\t\t\t\t(xy 100.059307 132.4505) (xy 100.059309 132.4505) (xy 100.173886 132.419799) (xy 100.173888 132.419797)\r\n\t\t\t\t(xy 100.17389 132.419797) (xy 100.276608 132.360492) (xy 100.276608 132.360491) (xy 100.276613 132.360489)\r\n\t\t\t\t(xy 100.329998 132.307103) (xy 100.384513 132.279328) (xy 100.444945 132.288899) (xy 100.47 132.307102)\r\n\t\t\t\t(xy 100.523387 132.360489) (xy 100.523389 132.36049) (xy 100.523391 132.360492) (xy 100.62611 132.419797)\r\n\t\t\t\t(xy 100.626111 132.419797) (xy 100.626114 132.419799) (xy 100.740691 132.4505) (xy 100.740693 132.4505)\r\n\t\t\t\t(xy 100.859307 132.4505) (xy 100.859309 132.4505) (xy 100.973886 132.419799) (xy 100.973888 132.419797)\r\n\t\t\t\t(xy 100.97389 132.419797) (xy 101.076608 132.360492) (xy 101.076608 132.360491) (xy 101.076613 132.360489)\r\n\t\t\t\t(xy 101.160489 132.276613) (xy 101.176143 132.2495) (xy 101.219797 132.17389) (xy 101.219797 132.173888)\r\n\t\t\t\t(xy 101.219799 132.173886) (xy 101.2505 132.059309) (xy 101.2505 131.940691) (xy 101.9495 131.940691)\r\n\t\t\t\t(xy 101.9495 132.059309) (xy 101.976574 132.160351) (xy 101.980202 132.17389) (xy 102.039507 132.276608)\r\n\t\t\t\t(xy 102.039509 132.27661) (xy 102.039511 132.276613) (xy 102.123387 132.360489) (xy 102.123389 132.36049)\r\n\t\t\t\t(xy 102.123391 132.360492) (xy 102.22611 132.419797) (xy 102.226111 132.419797) (xy 102.226114 132.419799)\r\n\t\t\t\t(xy 102.340691 132.4505) (xy 102.340693 132.4505) (xy 102.459307 132.4505) (xy 102.459309 132.4505)\r\n\t\t\t\t(xy 102.573886 132.419799) (xy 102.573888 132.419797) (xy 102.57389 132.419797) (xy 102.676608 132.360492)\r\n\t\t\t\t(xy 102.676608 132.360491) (xy 102.676613 132.360489) (xy 102.760489 132.276613) (xy 102.776143 132.2495)\r\n\t\t\t\t(xy 102.819797 132.17389) (xy 102.819797 132.173888) (xy 102.819799 132.173886) (xy 102.8505 132.059309)\r\n\t\t\t\t(xy 102.8505 131.940691) (xy 103.3495 131.940691) (xy 103.3495 132.059309) (xy 103.376574 132.160351)\r\n\t\t\t\t(xy 103.380202 132.17389) (xy 103.439507 132.276608) (xy 103.439509 132.27661) (xy 103.439511 132.276613)\r\n\t\t\t\t(xy 103.523387 132.360489) (xy 103.523389 132.36049) (xy 103.523391 132.360492) (xy 103.62611 132.419797)\r\n\t\t\t\t(xy 103.626111 132.419797) (xy 103.626114 132.419799) (xy 103.740691 132.4505) (xy 103.740693 132.4505)\r\n\t\t\t\t(xy 103.859307 132.4505) (xy 103.859309 132.4505) (xy 103.973886 132.419799) (xy 103.973888 132.419797)\r\n\t\t\t\t(xy 103.97389 132.419797) (xy 104.076608 132.360492) (xy 104.076608 132.360491) (xy 104.076613 132.360489)\r\n\t\t\t\t(xy 104.160489 132.276613) (xy 104.176143 132.2495) (xy 104.219797 132.17389) (xy 104.219797 132.173888)\r\n\t\t\t\t(xy 104.219799 132.173886) (xy 104.2505 132.059309) (xy 104.2505 131.940691) (xy 104.9495 131.940691)\r\n\t\t\t\t(xy 104.9495 132.059309) (xy 104.976574 132.160351) (xy 104.980202 132.17389) (xy 105.039507 132.276608)\r\n\t\t\t\t(xy 105.039509 132.27661) (xy 105.039511 132.276613) (xy 105.123387 132.360489) (xy 105.123389 132.36049)\r\n\t\t\t\t(xy 105.123391 132.360492) (xy 105.22611 132.419797) (xy 105.226111 132.419797) (xy 105.226114 132.419799)\r\n\t\t\t\t(xy 105.340691 132.4505) (xy 105.340693 132.4505) (xy 105.459307 132.4505) (xy 105.459309 132.4505)\r\n\t\t\t\t(xy 105.573886 132.419799) (xy 105.573888 132.419797) (xy 105.57389 132.419797) (xy 105.676608 132.360492)\r\n\t\t\t\t(xy 105.676608 132.360491) (xy 105.676613 132.360489) (xy 105.760489 132.276613) (xy 105.776143 132.2495)\r\n\t\t\t\t(xy 105.819797 132.17389) (xy 105.819797 132.173888) (xy 105.819799 132.173886) (xy 105.8505 132.059309)\r\n\t\t\t\t(xy 105.8505 131.940691) (xy 107.5495 131.940691) (xy 107.5495 132.059309) (xy 107.576574 132.160351)\r\n\t\t\t\t(xy 107.580202 132.17389) (xy 107.639507 132.276608) (xy 107.639509 132.27661) (xy 107.639511 132.276613)\r\n\t\t\t\t(xy 107.723387 132.360489) (xy 107.723389 132.36049) (xy 107.723391 132.360492) (xy 107.82611 132.419797)\r\n\t\t\t\t(xy 107.826111 132.419797) (xy 107.826114 132.419799) (xy 107.940691 132.4505) (xy 107.940693 132.4505)\r\n\t\t\t\t(xy 108.059307 132.4505) (xy 108.059309 132.4505) (xy 108.173886 132.419799) (xy 108.173888 132.419797)\r\n\t\t\t\t(xy 108.17389 132.419797) (xy 108.276608 132.360492) (xy 108.276608 132.360491) (xy 108.276613 132.360489)\r\n\t\t\t\t(xy 108.360489 132.276613) (xy 108.376143 132.2495) (xy 108.419797 132.17389) (xy 108.419797 132.173888)\r\n\t\t\t\t(xy 108.419799 132.173886) (xy 108.4505 132.059309) (xy 108.4505 131.940691) (xy 111.5495 131.940691)\r\n\t\t\t\t(xy 111.5495 132.059309) (xy 111.576574 132.160351) (xy 111.580202 132.17389) (xy 111.639507 132.276608)\r\n\t\t\t\t(xy 111.639509 132.27661) (xy 111.639511 132.276613) (xy 111.723387 132.360489) (xy 111.723389 132.36049)\r\n\t\t\t\t(xy 111.723391 132.360492) (xy 111.82611 132.419797) (xy 111.826111 132.419797) (xy 111.826114 132.419799)\r\n\t\t\t\t(xy 111.940691 132.4505) (xy 111.940693 132.4505) (xy 112.059307 132.4505) (xy 112.059309 132.4505)\r\n\t\t\t\t(xy 112.173886 132.419799) (xy 112.173888 132.419797) (xy 112.17389 132.419797) (xy 112.276608 132.360492)\r\n\t\t\t\t(xy 112.276608 132.360491) (xy 112.276613 132.360489) (xy 112.360489 132.276613) (xy 112.376143 132.2495)\r\n\t\t\t\t(xy 112.419797 132.17389) (xy 112.419797 132.173888) (xy 1' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'12.419799 132.173886) (xy 112.4505 132.059309)\r\n\t\t\t\t(xy 112.4505 131.940691) (xy 127.5495 131.940691) (xy 127.5495 132.059309) (xy 127.576574 132.160351)\r\n\t\t\t\t(xy 127.580202 132.17389) (xy 127.639507 132.276608) (xy 127.639509 132.27661) (xy 127.639511 132.276613)\r\n\t\t\t\t(xy 127.723387 132.360489) (xy 127.723389 132.36049) (xy 127.723391 132.360492) (xy 127.82611 132.419797)\r\n\t\t\t\t(xy 127.826111 132.419797) (xy 127.826114 132.419799) (xy 127.940691 132.4505) (xy 127.940693 132.4505)\r\n\t\t\t\t(xy 128.059307 132.4505) (xy 128.059309 132.4505) (xy 128.173886 132.419799) (xy 128.173888 132.419797)\r\n\t\t\t\t(xy 128.17389 132.419797) (xy 128.276608 132.360492) (xy 128.276608 132.360491) (xy 128.276613 132.360489)\r\n\t\t\t\t(xy 128.360489 132.276613) (xy 128.376143 132.2495) (xy 128.419797 132.17389) (xy 128.419797 132.173888)\r\n\t\t\t\t(xy 128.419799 132.173886) (xy 128.4505 132.059309) (xy 128.4505 131.940691) (xy 131.5495 131.940691)\r\n\t\t\t\t(xy 131.5495 132.059309) (xy 131.576574 132.160351) (xy 131.580202 132.17389) (xy 131.639507 132.276608)\r\n\t\t\t\t(xy 131.639509 132.27661) (xy 131.639511 132.276613) (xy 131.723387 132.360489) (xy 131.723389 132.36049)\r\n\t\t\t\t(xy 131.723391 132.360492) (xy 131.82611 132.419797) (xy 131.826111 132.419797) (xy 131.826114 132.419799)\r\n\t\t\t\t(xy 131.940691 132.4505) (xy 131.940693 132.4505) (xy 132.059307 132.4505) (xy 132.059309 132.4505)\r\n\t\t\t\t(xy 132.173886 132.419799) (xy 132.173888 132.419797) (xy 132.17389 132.419797) (xy 132.276608 132.360492)\r\n\t\t\t\t(xy 132.276608 132.360491) (xy 132.276613 132.360489) (xy 132.360489 132.276613) (xy 132.376143 132.2495)\r\n\t\t\t\t(xy 132.419797 132.17389) (xy 132.419797 132.173888) (xy 132.419799 132.173886) (xy 132.4505 132.059309)\r\n\t\t\t\t(xy 132.4505 131.940691) (xy 135.5495 131.940691) (xy 135.5495 132.059309) (xy 135.576574 132.160351)\r\n\t\t\t\t(xy 135.580202 132.17389) (xy 135.639507 132.276608) (xy 135.639509 132.27661) (xy 135.639511 132.276613)\r\n\t\t\t\t(xy 135.723387 132.360489) (xy 135.723389 132.36049) (xy 135.723391 132.360492) (xy 135.82611 132.419797)\r\n\t\t\t\t(xy 135.826111 132.419797) (xy 135.826114 132.419799) (xy 135.940691 132.4505) (xy 135.940693 132.4505)\r\n\t\t\t\t(xy 136.059307 132.4505) (xy 136.059309 132.4505) (xy 136.173886 132.419799) (xy 136.173888 132.419797)\r\n\t\t\t\t(xy 136.17389 132.419797) (xy 136.276608 132.360492) (xy 136.276608 132.360491) (xy 136.276613 132.360489)\r\n\t\t\t\t(xy 136.360489 132.276613) (xy 136.376143 132.2495) (xy 136.419797 132.17389) (xy 136.419797 132.173888)\r\n\t\t\t\t(xy 136.419799 132.173886) (xy 136.4505 132.059309) (xy 136.4505 131.940691) (xy 139.5495 131.940691)\r\n\t\t\t\t(xy 139.5495 132.059309) (xy 139.576574 132.160351) (xy 139.580202 132.17389) (xy 139.639507 132.276608)\r\n\t\t\t\t(xy 139.639509 132.27661) (xy 139.639511 132.276613) (xy 139.723387 132.360489) (xy 139.723389 132.36049)\r\n\t\t\t\t(xy 139.723391 132.360492) (xy 139.82611 132.419797) (xy 139.826111 132.419797) (xy 139.826114 132.419799)\r\n\t\t\t\t(xy 139.940691 132.4505) (xy 139.940693 132.4505) (xy 140.059307 132.4505) (xy 140.059309 132.4505)\r\n\t\t\t\t(xy 140.173886 132.419799) (xy 140.173888 132.419797) (xy 140.17389 132.419797) (xy 140.276608 132.360492)\r\n\t\t\t\t(xy 140.276608 132.360491) (xy 140.276613 132.360489) (xy 140.360489 132.276613) (xy 140.376143 132.2495)\r\n\t\t\t\t(xy 140.419797 132.17389) (xy 140.419797 132.173888) (xy 140.419799 132.173886) (xy 140.4505 132.059309)\r\n\t\t\t\t(xy 140.4505 131.940691) (xy 143.5495 131.940691) (xy 143.5495 132.059309) (xy 143.576574 132.160351)\r\n\t\t\t\t(xy 143.580202 132.17389) (xy 143.639507 132.276608) (xy 143.639509 132.27661) (xy 143.639511 132.276613)\r\n\t\t\t\t(xy 143.723387 132.360489) (xy 143.723389 132.36049) (xy 143.723391 132.360492) (xy 143.82611 132.419797)\r\n\t\t\t\t(xy 143.826111 132.419797) (xy 143.826114 132.419799) (xy 143.940691 132.4505) (xy 143.940693 132.4505)\r\n\t\t\t\t(xy 144.059307 132.4505) (xy 144.059309 132.4505) (xy 144.173886 132.419799) (xy 144.173888 132.419797)\r\n\t\t\t\t(xy 144.17389 132.419797) (xy 144.276608 132.360492) (xy 144.276608 132.360491) (xy 144.276613 132.360489)\r\n\t\t\t\t(xy 144.360489 132.276613) (xy 144.376143 132.2495) (xy 144.419797 132.17389) (xy 144.419797 132.173888)\r\n\t\t\t\t(xy 144.419799 132.173886) (xy 144.4505 132.059309) (xy 144.4505 131.940691) (xy 147.5495 131.940691)\r\n\t\t\t\t(xy 147.5495 132.059309) (xy 147.576574 132.160351) (xy 147.580202 132.17389) (xy 147.639507 132.276608)\r\n\t\t\t\t(xy 147.639509 132.27661) (xy 147.639511 132.276613) (xy 147.723387 132.360489) (xy 147.723389 132.36049)\r\n\t\t\t\t(xy 147.723391 132.360492) (xy 147.82611 132.419797) (xy 147.826111 132.419797) (xy 147.826114 132.419799)\r\n\t\t\t\t(xy 147.940691 132.4505) (xy 147.940693 132.4505) (xy 148.059307 132.4505) (xy 148.059309 132.4505)\r\n\t\t\t\t(xy 148.173886 132.419799) (xy 148.173888 132.419797) (xy 148.17389 132.419797) (xy 148.276608 132.360492)\r\n\t\t\t\t(xy 148.276608 132.360491) (xy 148.276613 132.360489) (xy 148.360489 132.276613) (xy 148.376143 132.2495)\r\n\t\t\t\t(xy 148.419797 132.17389) (xy 148.419797 132.173888) (xy 148.419799 132.173886) (xy 148.4505 132.059309)\r\n\t\t\t\t(xy 148.4505 131.940691) (xy 151.5495 131.940691) (xy 151.5495 132.059309) (xy 151.576574 132.160351)\r\n\t\t\t\t(xy 151.580202 132.17389) (xy 151.639507 132.276608) (xy 151.639509 132.27661) (xy 151.639511 132.276613)\r\n\t\t\t\t(xy 151.723387 132.360489) (xy 151.723389 132.36049) (xy 151.723391 132.360492) (xy 151.82611 132.419797)\r\n\t\t\t\t(xy 151.826111 132.419797) (xy 151.826114 132.419799) (xy 151.940691 132.4505) (xy 151.940693 132.4505)\r\n\t\t\t\t(xy 152.059307 132.4505) (xy 152.059309 132.4505) (xy 152.173886 132.419799) (xy 152.173888 132.419797)\r\n\t\t\t\t(xy 152.17389 132.419797) (xy 152.276608 132.360492) (xy 152.276608 132.360491) (xy 152.276613 132.360489)\r\n\t\t\t\t(xy 152.360489 132.276613) (xy 152.376143 132.2495) (xy 152.419797 132.17389) (xy 152.419797 132.173888)\r\n\t\t\t\t(xy 152.419799 132.173886) (xy 152.4505 132.059309) (xy 152.4505 131.940691) (xy 152.419799 131.826114)\r\n\t\t\t\t(xy 152.419797 131.826111) (xy 152.419797 131.826109) (xy 152.360492 131.723391) (xy 152.36049 131.723389)\r\n\t\t\t\t(xy 152.360489 131.723387) (xy 152.276613 131.639511) (xy 152.27661 131.639509) (xy 152.276608 131.639507)\r\n\t\t\t\t(xy 152.173889 131.580202) (xy 152.17389 131.580202) (xy 152.160351 131.576574) (xy 152.059309 131.5495)\r\n\t\t\t\t(xy 151.940691 131.5495) (xy 151.870567 131.568289) (xy 151.826109 131.580202) (xy 151.723391 131.639507)\r\n\t\t\t\t(xy 151.639507 131.723391) (xy 151.580202 131.826109) (xy 151.580201 131.826114) (xy 151.5495 131.940691)\r\n\t\t\t\t(xy 148.4505 131.940691) (xy 148.419799 131.826114) (xy 148.419797 131.826111) (xy 148.419797 131.826109)\r\n\t\t\t\t(xy 148.360492 131.723391) (xy 148.36049 131.723389) (xy 148.360489 131.723387) (xy 148.276613 131.639511)\r\n\t\t\t\t(xy 148.27661 131.639509) (xy 148.276608 131.639507) (xy 148.173889 131.580202) (xy 148.17389 131.580202)\r\n\t\t\t\t(xy 148.160351 131.576574) (xy 148.059309 131.5495) (xy 147.940691 131.5495) (xy 147.870567 131.568289)\r\n\t\t\t\t(xy 147.826109 131.580202) (xy 147.723391 131.639507) (xy 147.639507 131.723391) (xy 147.580202 131.826109)\r\n\t\t\t\t(xy 147.580201 131.826114) (xy 147.5495 131.940691) (xy 144.4505 131.940691) (xy 144.419799 131.826114)\r\n\t\t\t\t(xy 144.419797 131.826111) (xy 144.419797 131.826109) (xy 144.360492 131.723391) (xy 144.36049 131.723389)\r\n\t\t\t\t(xy 144.360489 131.723387) (xy 144.276613 131.639511) (xy 144.27661 131.639509) (xy 144.276608 131.639507)\r\n\t\t\t\t(xy 144.173889 131.580202) (xy 144.17389 131.580202) (xy 144.160351 131.576574) (xy 144.059309 131.5495)\r\n\t\t\t\t(xy 143.940691 131.5495) (xy 143.870567 131.568289) (xy 143.826109 131.580202) (xy 143.723391 131.639507)\r\n\t\t\t\t(xy 143.639507 131.723391) (xy 143.580202 131.826109) (xy 143.580201 131.826114) (xy 143.5495 131.940691)\r\n\t\t\t\t(xy 140.4505 131.940691) (xy 140.419799 131.826114) (xy 140.419797 131.826111) (xy 140.419797 131.826109)\r\n\t\t\t\t(xy 140.360492 131.723391) (xy 140.36049 131.723389) (xy 140.360489 131.723387) (xy 140.276613 131.639511)\r\n\t\t\t\t(xy 140.27661 131.639509) (xy 140.276608 131.639507) (xy 140.173889 131.580202) (xy 140.17389 131.580202)\r\n\t\t\t\t(xy 140.160351 131.576574) (xy 140.059309 131.5495) (xy 139.940691 131.5495) (xy 139.870567 131.568289)\r\n\t\t\t\t(xy 139.826109 131.580202) (xy 139.723391 131.639507) (xy 139.639507 131.723391) (xy 139.580202 131.8' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'26109)\r\n\t\t\t\t(xy 139.580201 131.826114) (xy 139.5495 131.940691) (xy 136.4505 131.940691) (xy 136.419799 131.826114)\r\n\t\t\t\t(xy 136.419797 131.826111) (xy 136.419797 131.826109) (xy 136.360492 131.723391) (xy 136.36049 131.723389)\r\n\t\t\t\t(xy 136.360489 131.723387) (xy 136.276613 131.639511) (xy 136.27661 131.639509) (xy 136.276608 131.639507)\r\n\t\t\t\t(xy 136.173889 131.580202) (xy 136.17389 131.580202) (xy 136.160351 131.576574) (xy 136.059309 131.5495)\r\n\t\t\t\t(xy 135.940691 131.5495) (xy 135.870567 131.568289) (xy 135.826109 131.580202) (xy 135.723391 131.639507)\r\n\t\t\t\t(xy 135.639507 131.723391) (xy 135.580202 131.826109) (xy 135.580201 131.826114) (xy 135.5495 131.940691)\r\n\t\t\t\t(xy 132.4505 131.940691) (xy 132.419799 131.826114) (xy 132.419797 131.826111) (xy 132.419797 131.826109)\r\n\t\t\t\t(xy 132.360492 131.723391) (xy 132.36049 131.723389) (xy 132.360489 131.723387) (xy 132.276613 131.639511)\r\n\t\t\t\t(xy 132.27661 131.639509) (xy 132.276608 131.639507) (xy 132.173889 131.580202) (xy 132.17389 131.580202)\r\n\t\t\t\t(xy 132.160351 131.576574) (xy 132.059309 131.5495) (xy 131.940691 131.5495) (xy 131.870567 131.568289)\r\n\t\t\t\t(xy 131.826109 131.580202) (xy 131.723391 131.639507) (xy 131.639507 131.723391) (xy 131.580202 131.826109)\r\n\t\t\t\t(xy 131.580201 131.826114) (xy 131.5495 131.940691) (xy 128.4505 131.940691) (xy 128.419799 131.826114)\r\n\t\t\t\t(xy 128.419797 131.826111) (xy 128.419797 131.826109) (xy 128.360492 131.723391) (xy 128.36049 131.723389)\r\n\t\t\t\t(xy 128.360489 131.723387) (xy 128.276613 131.639511) (xy 128.27661 131.639509) (xy 128.276608 131.639507)\r\n\t\t\t\t(xy 128.173889 131.580202) (xy 128.17389 131.580202) (xy 128.160351 131.576574) (xy 128.059309 131.5495)\r\n\t\t\t\t(xy 127.940691 131.5495) (xy 127.870567 131.568289) (xy 127.826109 131.580202) (xy 127.723391 131.639507)\r\n\t\t\t\t(xy 127.639507 131.723391) (xy 127.580202 131.826109) (xy 127.580201 131.826114) (xy 127.5495 131.940691)\r\n\t\t\t\t(xy 112.4505 131.940691) (xy 112.419799 131.826114) (xy 112.419797 131.826111) (xy 112.419797 131.826109)\r\n\t\t\t\t(xy 112.360492 131.723391) (xy 112.36049 131.723389) (xy 112.360489 131.723387) (xy 112.276613 131.639511)\r\n\t\t\t\t(xy 112.27661 131.639509) (xy 112.276608 131.639507) (xy 112.173889 131.580202) (xy 112.17389 131.580202)\r\n\t\t\t\t(xy 112.160351 131.576574) (xy 112.059309 131.5495) (xy 111.940691 131.5495) (xy 111.870567 131.568289)\r\n\t\t\t\t(xy 111.826109 131.580202) (xy 111.723391 131.639507) (xy 111.639507 131.723391) (xy 111.580202 131.826109)\r\n\t\t\t\t(xy 111.580201 131.826114) (xy 111.5495 131.940691) (xy 108.4505 131.940691) (xy 108.419799 131.826114)\r\n\t\t\t\t(xy 108.419797 131.826111) (xy 108.419797 131.826109) (xy 108.360492 131.723391) (xy 108.36049 131.723389)\r\n\t\t\t\t(xy 108.360489 131.723387) (xy 108.276613 131.639511) (xy 108.27661 131.639509) (xy 108.276608 131.639507)\r\n\t\t\t\t(xy 108.173889 131.580202) (xy 108.17389 131.580202) (xy 108.160351 131.576574) (xy 108.059309 131.5495)\r\n\t\t\t\t(xy 107.940691 131.5495) (xy 107.870567 131.568289) (xy 107.826109 131.580202) (xy 107.723391 131.639507)\r\n\t\t\t\t(xy 107.639507 131.723391) (xy 107.580202 131.826109) (xy 107.580201 131.826114) (xy 107.5495 131.940691)\r\n\t\t\t\t(xy 105.8505 131.940691) (xy 105.819799 131.826114) (xy 105.819797 131.826111) (xy 105.819797 131.826109)\r\n\t\t\t\t(xy 105.760492 131.723391) (xy 105.76049 131.723389) (xy 105.760489 131.723387) (xy 105.676613 131.639511)\r\n\t\t\t\t(xy 105.67661 131.639509) (xy 105.676608 131.639507) (xy 105.573889 131.580202) (xy 105.57389 131.580202)\r\n\t\t\t\t(xy 105.560351 131.576574) (xy 105.459309 131.5495) (xy 105.340691 131.5495) (xy 105.270567 131.568289)\r\n\t\t\t\t(xy 105.226109 131.580202) (xy 105.123391 131.639507) (xy 105.039507 131.723391) (xy 104.980202 131.826109)\r\n\t\t\t\t(xy 104.980201 131.826114) (xy 104.9495 131.940691) (xy 104.2505 131.940691) (xy 104.219799 131.826114)\r\n\t\t\t\t(xy 104.219797 131.826111) (xy 104.219797 131.826109) (xy 104.160492 131.723391) (xy 104.16049 131.723389)\r\n\t\t\t\t(xy 104.160489 131.723387) (xy 104.076613 131.639511) (xy 104.07661 131.639509) (xy 104.076608 131.639507)\r\n\t\t\t\t(xy 103.973889 131.580202) (xy 103.97389 131.580202) (xy 103.960351 131.576574) (xy 103.859309 131.5495)\r\n\t\t\t\t(xy 103.740691 131.5495) (xy 103.670567 131.568289) (xy 103.626109 131.580202) (xy 103.523391 131.639507)\r\n\t\t\t\t(xy 103.439507 131.723391) (xy 103.380202 131.826109) (xy 103.380201 131.826114) (xy 103.3495 131.940691)\r\n\t\t\t\t(xy 102.8505 131.940691) (xy 102.819799 131.826114) (xy 102.819797 131.826111) (xy 102.819797 131.826109)\r\n\t\t\t\t(xy 102.760492 131.723391) (xy 102.76049 131.723389) (xy 102.760489 131.723387) (xy 102.676613 131.639511)\r\n\t\t\t\t(xy 102.67661 131.639509) (xy 102.676608 131.639507) (xy 102.573889 131.580202) (xy 102.57389 131.580202)\r\n\t\t\t\t(xy 102.560351 131.576574) (xy 102.459309 131.5495) (xy 102.340691 131.5495) (xy 102.270567 131.568289)\r\n\t\t\t\t(xy 102.226109 131.580202) (xy 102.123391 131.639507) (xy 102.039507 131.723391) (xy 101.980202 131.826109)\r\n\t\t\t\t(xy 101.980201 131.826114) (xy 101.9495 131.940691) (xy 101.2505 131.940691) (xy 101.219799 131.826114)\r\n\t\t\t\t(xy 101.219797 131.826111) (xy 101.219797 131.826109) (xy 101.160492 131.723391) (xy 101.16049 131.723389)\r\n\t\t\t\t(xy 101.160489 131.723387) (xy 101.076613 131.639511) (xy 101.07661 131.639509) (xy 101.076608 131.639507)\r\n\t\t\t\t(xy 100.973889 131.580202) (xy 100.97389 131.580202) (xy 100.960351 131.576574) (xy 100.859309 131.5495)\r\n\t\t\t\t(xy 100.740691 131.5495) (xy 100.670567 131.568289) (xy 100.626109 131.580202) (xy 100.523391 131.639507)\r\n\t\t\t\t(xy 100.52339 131.639508) (xy 100.523387 131.63951) (xy 100.523387 131.639511) (xy 100.470001 131.692896)\r\n\t\t\t\t(xy 100.415487 131.720672) (xy 100.355055 131.711101) (xy 100.329999 131.692897) (xy 100.276613 131.639511)\r\n\t\t\t\t(xy 100.27661 131.639509) (xy 100.276608 131.639507) (xy 100.173889 131.580202) (xy 100.17389 131.580202)\r\n\t\t\t\t(xy 100.160351 131.576574) (xy 100.059309 131.5495) (xy 99.940691 131.5495) (xy 99.870567 131.568289)\r\n\t\t\t\t(xy 99.826109 131.580202) (xy 99.723391 131.639507) (xy 99.639507 131.723391) (xy 99.580202 131.826109)\r\n\t\t\t\t(xy 99.580201 131.826114) (xy 99.5495 131.940691) (xy 92.4505 131.940691) (xy 92.419799 131.826114)\r\n\t\t\t\t(xy 92.419797 131.826111) (xy 92.419797 131.826109) (xy 92.360492 131.723391) (xy 92.36049 131.723389)\r\n\t\t\t\t(xy 92.360489 131.723387) (xy 92.276613 131.639511) (xy 92.27661 131.639509) (xy 92.276608 131.639507)\r\n\t\t\t\t(xy 92.173889 131.580202) (xy 92.17389 131.580202) (xy 92.160351 131.576574) (xy 92.059309 131.5495)\r\n\t\t\t\t(xy 91.940691 131.5495) (xy 91.870567 131.568289) (xy 91.826109 131.580202) (xy 91.723391 131.639507)\r\n\t\t\t\t(xy 91.639507 131.723391) (xy 91.580202 131.826109) (xy 91.580201 131.826114) (xy 91.5495 131.940691)\r\n\t\t\t\t(xy 88.4505 131.940691) (xy 88.419799 131.826114) (xy 88.419797 131.826111) (xy 88.419797 131.826109)\r\n\t\t\t\t(xy 88.360492 131.723391) (xy 88.36049 131.723389) (xy 88.360489 131.723387) (xy 88.276613 131.639511)\r\n\t\t\t\t(xy 88.27661 131.639509) (xy 88.276608 131.639507) (xy 88.173889 131.580202) (xy 88.17389 131.580202)\r\n\t\t\t\t(xy 88.160351 131.576574) (xy 88.059309 131.5495) (xy 87.940691 131.5495) (xy 87.870567 131.568289)\r\n\t\t\t\t(xy 87.826109 131.580202) (xy 87.723391 131.639507) (xy 87.639507 131.723391) (xy 87.580202 131.826109)\r\n\t\t\t\t(xy 87.580201 131.826114) (xy 87.5495 131.940691) (xy 84.4505 131.940691) (xy 84.419799 131.826114)\r\n\t\t\t\t(xy 84.419797 131.826111) (xy 84.419797 131.826109) (xy 84.360492 131.723391) (xy 84.36049 131.723389)\r\n\t\t\t\t(xy 84.360489 131.723387) (xy 84.276613 131.639511) (xy 84.27661 131.639509) (xy 84.276608 131.639507)\r\n\t\t\t\t(xy 84.173889 131.580202) (xy 84.17389 131.580202) (xy 84.160351 131.576574) (xy 84.059309 131.5495)\r\n\t\t\t\t(xy 83.940691 131.5495) (xy 83.870567 131.568289) (xy 83.826109 131.580202) (xy 83.723391 131.639507)\r\n\t\t\t\t(xy 83.639507 131.723391) (xy 83.580202 131.826109) (xy 83.580201 131.826114) (xy 83.5495 131.940691)\r\n\t\t\t\t(xy 80.4505 131.940691) (xy 80.419799 131.826114) (xy 80.419797 131.826111) (xy 80.419797 131.826109)\r\n\t\t\t\t(xy 80.360492 131.723391) (xy 80.36049 131.723389) (xy 80.360489 131.723387) (xy 80.276613 131.639511)\r\n\t\t\t\t(xy 80.27661 131.639509) (xy 80.276608 131.639507) (xy 80.173889 131.580202) (xy 80.17389 131.580202)\r\n\t\t\t\t(xy 80.160351 131.576574) (xy 80.059309 131.5495) (' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'xy 79.940691 131.5495) (xy 79.870567 131.568289)\r\n\t\t\t\t(xy 79.826109 131.580202) (xy 79.723391 131.639507) (xy 79.639507 131.723391) (xy 79.580202 131.826109)\r\n\t\t\t\t(xy 79.580201 131.826114) (xy 79.5495 131.940691) (xy 76.4505 131.940691) (xy 76.419799 131.826114)\r\n\t\t\t\t(xy 76.419797 131.826111) (xy 76.419797 131.826109) (xy 76.360492 131.723391) (xy 76.36049 131.723389)\r\n\t\t\t\t(xy 76.360489 131.723387) (xy 76.276613 131.639511) (xy 76.27661 131.639509) (xy 76.276608 131.639507)\r\n\t\t\t\t(xy 76.173889 131.580202) (xy 76.17389 131.580202) (xy 76.160351 131.576574) (xy 76.059309 131.5495)\r\n\t\t\t\t(xy 75.940691 131.5495) (xy 75.870567 131.568289) (xy 75.826109 131.580202) (xy 75.723391 131.639507)\r\n\t\t\t\t(xy 75.639507 131.723391) (xy 75.580202 131.826109) (xy 75.580201 131.826114) (xy 75.5495 131.940691)\r\n\t\t\t\t(xy 74.0005 131.940691) (xy 74.0005 130.340691) (xy 100.5495 130.340691) (xy 100.5495 130.459309)\r\n\t\t\t\t(xy 100.576574 130.560351) (xy 100.580202 130.57389) (xy 100.639507 130.676608) (xy 100.639509 130.67661)\r\n\t\t\t\t(xy 100.639511 130.676613) (xy 100.723387 130.760489) (xy 100.723389 130.76049) (xy 100.723391 130.760492)\r\n\t\t\t\t(xy 100.82611 130.819797) (xy 100.826111 130.819797) (xy 100.826114 130.819799) (xy 100.940691 130.8505)\r\n\t\t\t\t(xy 100.940693 130.8505) (xy 101.059307 130.8505) (xy 101.059309 130.8505) (xy 101.173886 130.819799)\r\n\t\t\t\t(xy 101.173888 130.819797) (xy 101.17389 130.819797) (xy 101.276608 130.760492) (xy 101.276608 130.760491)\r\n\t\t\t\t(xy 101.276613 130.760489) (xy 101.360489 130.676613) (xy 101.419799 130.573886) (xy 101.4505 130.459309)\r\n\t\t\t\t(xy 101.4505 130.340691) (xy 104.7495 130.340691) (xy 104.7495 130.459309) (xy 104.776574 130.560351)\r\n\t\t\t\t(xy 104.780202 130.57389) (xy 104.839507 130.676608) (xy 104.839509 130.67661) (xy 104.839511 130.676613)\r\n\t\t\t\t(xy 104.923387 130.760489) (xy 104.923389 130.76049) (xy 104.923391 130.760492) (xy 105.02611 130.819797)\r\n\t\t\t\t(xy 105.026111 130.819797) (xy 105.026114 130.819799) (xy 105.140691 130.8505) (xy 105.140693 130.8505)\r\n\t\t\t\t(xy 105.259307 130.8505) (xy 105.259309 130.8505) (xy 105.373886 130.819799) (xy 105.373888 130.819797)\r\n\t\t\t\t(xy 105.37389 130.819797) (xy 105.476608 130.760492) (xy 105.476608 130.760491) (xy 105.476613 130.760489)\r\n\t\t\t\t(xy 105.560489 130.676613) (xy 105.619799 130.573886) (xy 105.6505 130.459309) (xy 105.6505 130.340691)\r\n\t\t\t\t(xy 105.619799 130.226114) (xy 105.619797 130.226111) (xy 105.619797 130.226109) (xy 105.560492 130.123391)\r\n\t\t\t\t(xy 105.56049 130.123389) (xy 105.560489 130.123387) (xy 105.476613 130.039511) (xy 105.47661 130.039509)\r\n\t\t\t\t(xy 105.476608 130.039507) (xy 105.373889 129.980202) (xy 105.37389 129.980202) (xy 105.360351 129.976574)\r\n\t\t\t\t(xy 105.259309 129.9495) (xy 105.140691 129.9495) (xy 105.070567 129.968289) (xy 105.026109 129.980202)\r\n\t\t\t\t(xy 104.923391 130.039507) (xy 104.839507 130.123391) (xy 104.780202 130.226109) (xy 104.780201 130.226114)\r\n\t\t\t\t(xy 104.7495 130.340691) (xy 101.4505 130.340691) (xy 101.419799 130.226114) (xy 101.419797 130.226111)\r\n\t\t\t\t(xy 101.419797 130.226109) (xy 101.360492 130.123391) (xy 101.36049 130.123389) (xy 101.360489 130.123387)\r\n\t\t\t\t(xy 101.276613 130.039511) (xy 101.27661 130.039509) (xy 101.276608 130.039507) (xy 101.173889 129.980202)\r\n\t\t\t\t(xy 101.17389 129.980202) (xy 101.160351 129.976574) (xy 101.059309 129.9495) (xy 100.940691 129.9495)\r\n\t\t\t\t(xy 100.870567 129.968289) (xy 100.826109 129.980202) (xy 100.723391 130.039507) (xy 100.639507 130.123391)\r\n\t\t\t\t(xy 100.580202 130.226109) (xy 100.580201 130.226114) (xy 100.5495 130.340691) (xy 74.0005 130.340691)\r\n\t\t\t\t(xy 74.0005 128.940691) (xy 100.5495 128.940691) (xy 100.5495 129.059309) (xy 100.576574 129.160351)\r\n\t\t\t\t(xy 100.580202 129.17389) (xy 100.639507 129.276608) (xy 100.639509 129.27661) (xy 100.639511 129.276613)\r\n\t\t\t\t(xy 100.723387 129.360489) (xy 100.723389 129.36049) (xy 100.723391 129.360492) (xy 100.82611 129.419797)\r\n\t\t\t\t(xy 100.826111 129.419797) (xy 100.826114 129.419799) (xy 100.940691 129.4505) (xy 100.940693 129.4505)\r\n\t\t\t\t(xy 101.059307 129.4505) (xy 101.059309 129.4505) (xy 101.173886 129.419799) (xy 101.173888 129.419797)\r\n\t\t\t\t(xy 101.17389 129.419797) (xy 101.276608 129.360492) (xy 101.276608 129.360491) (xy 101.276613 129.360489)\r\n\t\t\t\t(xy 101.360489 129.276613) (xy 101.419799 129.173886) (xy 101.4505 129.059309) (xy 101.4505 128.940691)\r\n\t\t\t\t(xy 104.7495 128.940691) (xy 104.7495 129.059309) (xy 104.776574 129.160351) (xy 104.780202 129.17389)\r\n\t\t\t\t(xy 104.839507 129.276608) (xy 104.839509 129.27661) (xy 104.839511 129.276613) (xy 104.923387 129.360489)\r\n\t\t\t\t(xy 104.923389 129.36049) (xy 104.923391 129.360492) (xy 105.02611 129.419797) (xy 105.026111 129.419797)\r\n\t\t\t\t(xy 105.026114 129.419799) (xy 105.140691 129.4505) (xy 105.140693 129.4505) (xy 105.259307 129.4505)\r\n\t\t\t\t(xy 105.259309 129.4505) (xy 105.373886 129.419799) (xy 105.373888 129.419797) (xy 105.37389 129.419797)\r\n\t\t\t\t(xy 105.476608 129.360492) (xy 105.476608 129.360491) (xy 105.476613 129.360489) (xy 105.560489 129.276613)\r\n\t\t\t\t(xy 105.619799 129.173886) (xy 105.6505 129.059309) (xy 105.6505 128.940691) (xy 105.619799 128.826114)\r\n\t\t\t\t(xy 105.619797 128.826111) (xy 105.619797 128.826109) (xy 105.560492 128.723391) (xy 105.56049 128.723389)\r\n\t\t\t\t(xy 105.560489 128.723387) (xy 105.476613 128.639511) (xy 105.47661 128.639509) (xy 105.476608 128.639507)\r\n\t\t\t\t(xy 105.373889 128.580202) (xy 105.37389 128.580202) (xy 105.360351 128.576574) (xy 105.259309 128.5495)\r\n\t\t\t\t(xy 105.140691 128.5495) (xy 105.070567 128.568289) (xy 105.026109 128.580202) (xy 104.923391 128.639507)\r\n\t\t\t\t(xy 104.839507 128.723391) (xy 104.780202 128.826109) (xy 104.780201 128.826114) (xy 104.7495 128.940691)\r\n\t\t\t\t(xy 101.4505 128.940691) (xy 101.419799 128.826114) (xy 101.419797 128.826111) (xy 101.419797 128.826109)\r\n\t\t\t\t(xy 101.360492 128.723391) (xy 101.36049 128.723389) (xy 101.360489 128.723387) (xy 101.276613 128.639511)\r\n\t\t\t\t(xy 101.27661 128.639509) (xy 101.276608 128.639507) (xy 101.173889 128.580202) (xy 101.17389 128.580202)\r\n\t\t\t\t(xy 101.160351 128.576574) (xy 101.059309 128.5495) (xy 100.940691 128.5495) (xy 100.870567 128.568289)\r\n\t\t\t\t(xy 100.826109 128.580202) (xy 100.723391 128.639507) (xy 100.639507 128.723391) (xy 100.580202 128.826109)\r\n\t\t\t\t(xy 100.580201 128.826114) (xy 100.5495 128.940691) (xy 74.0005 128.940691) (xy 74.0005 127.940691)\r\n\t\t\t\t(xy 75.5495 127.940691) (xy 75.5495 128.059309) (xy 75.576574 128.160351) (xy 75.580202 128.17389)\r\n\t\t\t\t(xy 75.639507 128.276608) (xy 75.639509 128.27661) (xy 75.639511 128.276613) (xy 75.723387 128.360489)\r\n\t\t\t\t(xy 75.723389 128.36049) (xy 75.723391 128.360492) (xy 75.82611 128.419797) (xy 75.826111 128.419797)\r\n\t\t\t\t(xy 75.826114 128.419799) (xy 75.940691 128.4505) (xy 75.940693 128.4505) (xy 76.059307 128.4505)\r\n\t\t\t\t(xy 76.059309 128.4505) (xy 76.173886 128.419799) (xy 76.173888 128.419797) (xy 76.17389 128.419797)\r\n\t\t\t\t(xy 76.276608 128.360492) (xy 76.276608 128.360491) (xy 76.276613 128.360489) (xy 76.360489 128.276613)\r\n\t\t\t\t(xy 76.419799 128.173886) (xy 76.4505 128.059309) (xy 76.4505 127.940691) (xy 79.5495 127.940691)\r\n\t\t\t\t(xy 79.5495 128.059309) (xy 79.576574 128.160351) (xy 79.580202 128.17389) (xy 79.639507 128.276608)\r\n\t\t\t\t(xy 79.639509 128.27661) (xy 79.639511 128.276613) (xy 79.723387 128.360489) (xy 79.723389 128.36049)\r\n\t\t\t\t(xy 79.723391 128.360492) (xy 79.82611 128.419797) (xy 79.826111 128.419797) (xy 79.826114 128.419799)\r\n\t\t\t\t(xy 79.940691 128.4505) (xy 79.940693 128.4505) (xy 80.059307 128.4505) (xy 80.059309 128.4505)\r\n\t\t\t\t(xy 80.173886 128.419799) (xy 80.173888 128.419797) (xy 80.17389 128.419797) (xy 80.276608 128.360492)\r\n\t\t\t\t(xy 80.276608 128.360491) (xy 80.276613 128.360489) (xy 80.360489 128.276613) (xy 80.419799 128.173886)\r\n\t\t\t\t(xy 80.4505 128.059309) (xy 80.4505 127.940691) (xy 83.5495 127.940691) (xy 83.5495 128.059309)\r\n\t\t\t\t(xy 83.576574 128.160351) (xy 83.580202 128.17389) (xy 83.639507 128.276608) (xy 83.639509 128.27661)\r\n\t\t\t\t(xy 83.639511 128.276613) (xy 83.723387 128.360489) (xy 83.723389 128.36049) (xy 83.723391 128.360492)\r\n\t\t\t\t(xy 83.82611 128.419797) (xy 83.826111 128.419797) (xy 83.826114 128.419799) (xy 83.940691 128.4505)\r\n\t\t\t\t(xy 83.940693 128.4505) (xy 84.059307 128.4505) (xy 84.059309 128.4505) (xy 84.' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'173886 128.419799)\r\n\t\t\t\t(xy 84.173888 128.419797) (xy 84.17389 128.419797) (xy 84.276608 128.360492) (xy 84.276608 128.360491)\r\n\t\t\t\t(xy 84.276613 128.360489) (xy 84.360489 128.276613) (xy 84.419799 128.173886) (xy 84.4505 128.059309)\r\n\t\t\t\t(xy 84.4505 127.940691) (xy 87.5495 127.940691) (xy 87.5495 128.059309) (xy 87.576574 128.160351)\r\n\t\t\t\t(xy 87.580202 128.17389) (xy 87.639507 128.276608) (xy 87.639509 128.27661) (xy 87.639511 128.276613)\r\n\t\t\t\t(xy 87.723387 128.360489) (xy 87.723389 128.36049) (xy 87.723391 128.360492) (xy 87.82611 128.419797)\r\n\t\t\t\t(xy 87.826111 128.419797) (xy 87.826114 128.419799) (xy 87.940691 128.4505) (xy 87.940693 128.4505)\r\n\t\t\t\t(xy 88.059307 128.4505) (xy 88.059309 128.4505) (xy 88.173886 128.419799) (xy 88.173888 128.419797)\r\n\t\t\t\t(xy 88.17389 128.419797) (xy 88.276608 128.360492) (xy 88.276608 128.360491) (xy 88.276613 128.360489)\r\n\t\t\t\t(xy 88.360489 128.276613) (xy 88.419799 128.173886) (xy 88.4505 128.059309) (xy 88.4505 127.940691)\r\n\t\t\t\t(xy 111.5495 127.940691) (xy 111.5495 128.059309) (xy 111.576574 128.160351) (xy 111.580202 128.17389)\r\n\t\t\t\t(xy 111.639507 128.276608) (xy 111.639509 128.27661) (xy 111.639511 128.276613) (xy 111.723387 128.360489)\r\n\t\t\t\t(xy 111.723389 128.36049) (xy 111.723391 128.360492) (xy 111.82611 128.419797) (xy 111.826111 128.419797)\r\n\t\t\t\t(xy 111.826114 128.419799) (xy 111.940691 128.4505) (xy 111.940693 128.4505) (xy 112.059307 128.4505)\r\n\t\t\t\t(xy 112.059309 128.4505) (xy 112.173886 128.419799) (xy 112.173888 128.419797) (xy 112.17389 128.419797)\r\n\t\t\t\t(xy 112.276608 128.360492) (xy 112.276608 128.360491) (xy 112.276613 128.360489) (xy 112.360489 128.276613)\r\n\t\t\t\t(xy 112.419799 128.173886) (xy 112.4505 128.059309) (xy 112.4505 127.940691) (xy 115.5495 127.940691)\r\n\t\t\t\t(xy 115.5495 128.059309) (xy 115.576574 128.160351) (xy 115.580202 128.17389) (xy 115.639507 128.276608)\r\n\t\t\t\t(xy 115.639509 128.27661) (xy 115.639511 128.276613) (xy 115.723387 128.360489) (xy 115.723389 128.36049)\r\n\t\t\t\t(xy 115.723391 128.360492) (xy 115.82611 128.419797) (xy 115.826111 128.419797) (xy 115.826114 128.419799)\r\n\t\t\t\t(xy 115.940691 128.4505) (xy 115.940693 128.4505) (xy 116.059307 128.4505) (xy 116.059309 128.4505)\r\n\t\t\t\t(xy 116.173886 128.419799) (xy 116.173888 128.419797) (xy 116.17389 128.419797) (xy 116.276608 128.360492)\r\n\t\t\t\t(xy 116.276608 128.360491) (xy 116.276613 128.360489) (xy 116.360489 128.276613) (xy 116.419799 128.173886)\r\n\t\t\t\t(xy 116.4505 128.059309) (xy 116.4505 127.940691) (xy 119.5495 127.940691) (xy 119.5495 128.059309)\r\n\t\t\t\t(xy 119.576574 128.160351) (xy 119.580202 128.17389) (xy 119.639507 128.276608) (xy 119.639509 128.27661)\r\n\t\t\t\t(xy 119.639511 128.276613) (xy 119.723387 128.360489) (xy 119.723389 128.36049) (xy 119.723391 128.360492)\r\n\t\t\t\t(xy 119.82611 128.419797) (xy 119.826111 128.419797) (xy 119.826114 128.419799) (xy 119.940691 128.4505)\r\n\t\t\t\t(xy 119.940693 128.4505) (xy 120.059307 128.4505) (xy 120.059309 128.4505) (xy 120.173886 128.419799)\r\n\t\t\t\t(xy 120.173888 128.419797) (xy 120.17389 128.419797) (xy 120.276608 128.360492) (xy 120.276608 128.360491)\r\n\t\t\t\t(xy 120.276613 128.360489) (xy 120.360489 128.276613) (xy 120.419799 128.173886) (xy 120.4505 128.059309)\r\n\t\t\t\t(xy 120.4505 127.940691) (xy 123.5495 127.940691) (xy 123.5495 128.059309) (xy 123.576574 128.160351)\r\n\t\t\t\t(xy 123.580202 128.17389) (xy 123.639507 128.276608) (xy 123.639509 128.27661) (xy 123.639511 128.276613)\r\n\t\t\t\t(xy 123.723387 128.360489) (xy 123.723389 128.36049) (xy 123.723391 128.360492) (xy 123.82611 128.419797)\r\n\t\t\t\t(xy 123.826111 128.419797) (xy 123.826114 128.419799) (xy 123.940691 128.4505) (xy 123.940693 128.4505)\r\n\t\t\t\t(xy 124.059307 128.4505) (xy 124.059309 128.4505) (xy 124.173886 128.419799) (xy 124.173888 128.419797)\r\n\t\t\t\t(xy 124.17389 128.419797) (xy 124.276608 128.360492) (xy 124.276608 128.360491) (xy 124.276613 128.360489)\r\n\t\t\t\t(xy 124.360489 128.276613) (xy 124.419799 128.173886) (xy 124.4505 128.059309) (xy 124.4505 127.940691)\r\n\t\t\t\t(xy 127.5495 127.940691) (xy 127.5495 128.059309) (xy 127.576574 128.160351) (xy 127.580202 128.17389)\r\n\t\t\t\t(xy 127.639507 128.276608) (xy 127.639509 128.27661) (xy 127.639511 128.276613) (xy 127.723387 128.360489)\r\n\t\t\t\t(xy 127.723389 128.36049) (xy 127.723391 128.360492) (xy 127.82611 128.419797) (xy 127.826111 128.419797)\r\n\t\t\t\t(xy 127.826114 128.419799) (xy 127.940691 128.4505) (xy 127.940693 128.4505) (xy 128.059307 128.4505)\r\n\t\t\t\t(xy 128.059309 128.4505) (xy 128.173886 128.419799) (xy 128.173888 128.419797) (xy 128.17389 128.419797)\r\n\t\t\t\t(xy 128.276608 128.360492) (xy 128.276608 128.360491) (xy 128.276613 128.360489) (xy 128.360489 128.276613)\r\n\t\t\t\t(xy 128.419799 128.173886) (xy 128.4505 128.059309) (xy 128.4505 127.940691) (xy 131.5495 127.940691)\r\n\t\t\t\t(xy 131.5495 128.059309) (xy 131.576574 128.160351) (xy 131.580202 128.17389) (xy 131.639507 128.276608)\r\n\t\t\t\t(xy 131.639509 128.27661) (xy 131.639511 128.276613) (xy 131.723387 128.360489) (xy 131.723389 128.36049)\r\n\t\t\t\t(xy 131.723391 128.360492) (xy 131.82611 128.419797) (xy 131.826111 128.419797) (xy 131.826114 128.419799)\r\n\t\t\t\t(xy 131.940691 128.4505) (xy 131.940693 128.4505) (xy 132.059307 128.4505) (xy 132.059309 128.4505)\r\n\t\t\t\t(xy 132.173886 128.419799) (xy 132.173888 128.419797) (xy 132.17389 128.419797) (xy 132.276608 128.360492)\r\n\t\t\t\t(xy 132.276608 128.360491) (xy 132.276613 128.360489) (xy 132.360489 128.276613) (xy 132.419799 128.173886)\r\n\t\t\t\t(xy 132.4505 128.059309) (xy 132.4505 127.940691) (xy 135.5495 127.940691) (xy 135.5495 128.059309)\r\n\t\t\t\t(xy 135.576574 128.160351) (xy 135.580202 128.17389) (xy 135.639507 128.276608) (xy 135.639509 128.27661)\r\n\t\t\t\t(xy 135.639511 128.276613) (xy 135.723387 128.360489) (xy 135.723389 128.36049) (xy 135.723391 128.360492)\r\n\t\t\t\t(xy 135.82611 128.419797) (xy 135.826111 128.419797) (xy 135.826114 128.419799) (xy 135.940691 128.4505)\r\n\t\t\t\t(xy 135.940693 128.4505) (xy 136.059307 128.4505) (xy 136.059309 128.4505) (xy 136.173886 128.419799)\r\n\t\t\t\t(xy 136.173888 128.419797) (xy 136.17389 128.419797) (xy 136.276608 128.360492) (xy 136.276608 128.360491)\r\n\t\t\t\t(xy 136.276613 128.360489) (xy 136.360489 128.276613) (xy 136.419799 128.173886) (xy 136.4505 128.059309)\r\n\t\t\t\t(xy 136.4505 127.940691) (xy 139.5495 127.940691) (xy 139.5495 128.059309) (xy 139.576574 128.160351)\r\n\t\t\t\t(xy 139.580202 128.17389) (xy 139.639507 128.276608) (xy 139.639509 128.27661) (xy 139.639511 128.276613)\r\n\t\t\t\t(xy 139.723387 128.360489) (xy 139.723389 128.36049) (xy 139.723391 128.360492) (xy 139.82611 128.419797)\r\n\t\t\t\t(xy 139.826111 128.419797) (xy 139.826114 128.419799) (xy 139.940691 128.4505) (xy 139.940693 128.4505)\r\n\t\t\t\t(xy 140.059307 128.4505) (xy 140.059309 128.4505) (xy 140.173886 128.419799) (xy 140.173888 128.419797)\r\n\t\t\t\t(xy 140.17389 128.419797) (xy 140.276608 128.360492) (xy 140.276608 128.360491) (xy 140.276613 128.360489)\r\n\t\t\t\t(xy 140.360489 128.276613) (xy 140.419799 128.173886) (xy 140.4505 128.059309) (xy 140.4505 127.940691)\r\n\t\t\t\t(xy 143.5495 127.940691) (xy 143.5495 128.059309) (xy 143.576574 128.160351) (xy 143.580202 128.17389)\r\n\t\t\t\t(xy 143.639507 128.276608) (xy 143.639509 128.27661) (xy 143.639511 128.276613) (xy 143.723387 128.360489)\r\n\t\t\t\t(xy 143.723389 128.36049) (xy 143.723391 128.360492) (xy 143.82611 128.419797) (xy 143.826111 128.419797)\r\n\t\t\t\t(xy 143.826114 128.419799) (xy 143.940691 128.4505) (xy 143.940693 128.4505) (xy 144.059307 128.4505)\r\n\t\t\t\t(xy 144.059309 128.4505) (xy 144.173886 128.419799) (xy 144.173888 128.419797) (xy 144.17389 128.419797)\r\n\t\t\t\t(xy 144.276608 128.360492) (xy 144.276608 128.360491) (xy 144.276613 128.360489) (xy 144.360489 128.276613)\r\n\t\t\t\t(xy 144.419799 128.173886) (xy 144.4505 128.059309) (xy 144.4505 127.940691) (xy 147.5495 127.940691)\r\n\t\t\t\t(xy 147.5495 128.059309) (xy 147.576574 128.160351) (xy 147.580202 128.17389) (xy 147.639507 128.276608)\r\n\t\t\t\t(xy 147.639509 128.27661) (xy 147.639511 128.276613) (xy 147.723387 128.360489) (xy 147.723389 128.36049)\r\n\t\t\t\t(xy 147.723391 128.360492) (xy 147.82611 128.419797) (xy 147.826111 128.419797) (xy 147.826114 128.419799)\r\n\t\t\t\t(xy 147.940691 128.4505) (xy 147.940693 128.4505) (xy 148.059307 128.4505) (xy 148.059309 128.4505)\r\n\t\t\t\t(xy 148.173886 128.419799) (xy 148.173888 128.419797) (xy 148.17389 128.4' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'19797) (xy 148.276608 128.360492)\r\n\t\t\t\t(xy 148.276608 128.360491) (xy 148.276613 128.360489) (xy 148.360489 128.276613) (xy 148.419799 128.173886)\r\n\t\t\t\t(xy 148.4505 128.059309) (xy 148.4505 127.940691) (xy 151.5495 127.940691) (xy 151.5495 128.059309)\r\n\t\t\t\t(xy 151.576574 128.160351) (xy 151.580202 128.17389) (xy 151.639507 128.276608) (xy 151.639509 128.27661)\r\n\t\t\t\t(xy 151.639511 128.276613) (xy 151.723387 128.360489) (xy 151.723389 128.36049) (xy 151.723391 128.360492)\r\n\t\t\t\t(xy 151.82611 128.419797) (xy 151.826111 128.419797) (xy 151.826114 128.419799) (xy 151.940691 128.4505)\r\n\t\t\t\t(xy 151.940693 128.4505) (xy 152.059307 128.4505) (xy 152.059309 128.4505) (xy 152.173886 128.419799)\r\n\t\t\t\t(xy 152.173888 128.419797) (xy 152.17389 128.419797) (xy 152.276608 128.360492) (xy 152.276608 128.360491)\r\n\t\t\t\t(xy 152.276613 128.360489) (xy 152.360489 128.276613) (xy 152.419799 128.173886) (xy 152.4505 128.059309)\r\n\t\t\t\t(xy 152.4505 127.940691) (xy 152.419799 127.826114) (xy 152.419797 127.826111) (xy 152.419797 127.826109)\r\n\t\t\t\t(xy 152.360492 127.723391) (xy 152.36049 127.723389) (xy 152.360489 127.723387) (xy 152.276613 127.639511)\r\n\t\t\t\t(xy 152.27661 127.639509) (xy 152.276608 127.639507) (xy 152.173889 127.580202) (xy 152.17389 127.580202)\r\n\t\t\t\t(xy 152.160351 127.576574) (xy 152.059309 127.5495) (xy 151.940691 127.5495) (xy 151.870567 127.568289)\r\n\t\t\t\t(xy 151.826109 127.580202) (xy 151.723391 127.639507) (xy 151.639507 127.723391) (xy 151.580202 127.826109)\r\n\t\t\t\t(xy 151.580201 127.826114) (xy 151.5495 127.940691) (xy 148.4505 127.940691) (xy 148.419799 127.826114)\r\n\t\t\t\t(xy 148.419797 127.826111) (xy 148.419797 127.826109) (xy 148.360492 127.723391) (xy 148.36049 127.723389)\r\n\t\t\t\t(xy 148.360489 127.723387) (xy 148.276613 127.639511) (xy 148.27661 127.639509) (xy 148.276608 127.639507)\r\n\t\t\t\t(xy 148.173889 127.580202) (xy 148.17389 127.580202) (xy 148.160351 127.576574) (xy 148.059309 127.5495)\r\n\t\t\t\t(xy 147.940691 127.5495) (xy 147.870567 127.568289) (xy 147.826109 127.580202) (xy 147.723391 127.639507)\r\n\t\t\t\t(xy 147.639507 127.723391) (xy 147.580202 127.826109) (xy 147.580201 127.826114) (xy 147.5495 127.940691)\r\n\t\t\t\t(xy 144.4505 127.940691) (xy 144.419799 127.826114) (xy 144.419797 127.826111) (xy 144.419797 127.826109)\r\n\t\t\t\t(xy 144.360492 127.723391) (xy 144.36049 127.723389) (xy 144.360489 127.723387) (xy 144.276613 127.639511)\r\n\t\t\t\t(xy 144.27661 127.639509) (xy 144.276608 127.639507) (xy 144.173889 127.580202) (xy 144.17389 127.580202)\r\n\t\t\t\t(xy 144.160351 127.576574) (xy 144.059309 127.5495) (xy 143.940691 127.5495) (xy 143.870567 127.568289)\r\n\t\t\t\t(xy 143.826109 127.580202) (xy 143.723391 127.639507) (xy 143.639507 127.723391) (xy 143.580202 127.826109)\r\n\t\t\t\t(xy 143.580201 127.826114) (xy 143.5495 127.940691) (xy 140.4505 127.940691) (xy 140.419799 127.826114)\r\n\t\t\t\t(xy 140.419797 127.826111) (xy 140.419797 127.826109) (xy 140.360492 127.723391) (xy 140.36049 127.723389)\r\n\t\t\t\t(xy 140.360489 127.723387) (xy 140.276613 127.639511) (xy 140.27661 127.639509) (xy 140.276608 127.639507)\r\n\t\t\t\t(xy 140.173889 127.580202) (xy 140.17389 127.580202) (xy 140.160351 127.576574) (xy 140.059309 127.5495)\r\n\t\t\t\t(xy 139.940691 127.5495) (xy 139.870567 127.568289) (xy 139.826109 127.580202) (xy 139.723391 127.639507)\r\n\t\t\t\t(xy 139.639507 127.723391) (xy 139.580202 127.826109) (xy 139.580201 127.826114) (xy 139.5495 127.940691)\r\n\t\t\t\t(xy 136.4505 127.940691) (xy 136.419799 127.826114) (xy 136.419797 127.826111) (xy 136.419797 127.826109)\r\n\t\t\t\t(xy 136.360492 127.723391) (xy 136.36049 127.723389) (xy 136.360489 127.723387) (xy 136.276613 127.639511)\r\n\t\t\t\t(xy 136.27661 127.639509) (xy 136.276608 127.639507) (xy 136.173889 127.580202) (xy 136.17389 127.580202)\r\n\t\t\t\t(xy 136.160351 127.576574) (xy 136.059309 127.5495) (xy 135.940691 127.5495) (xy 135.870567 127.568289)\r\n\t\t\t\t(xy 135.826109 127.580202) (xy 135.723391 127.639507) (xy 135.639507 127.723391) (xy 135.580202 127.826109)\r\n\t\t\t\t(xy 135.580201 127.826114) (xy 135.5495 127.940691) (xy 132.4505 127.940691) (xy 132.419799 127.826114)\r\n\t\t\t\t(xy 132.419797 127.826111) (xy 132.419797 127.826109) (xy 132.360492 127.723391) (xy 132.36049 127.723389)\r\n\t\t\t\t(xy 132.360489 127.723387) (xy 132.276613 127.639511) (xy 132.27661 127.639509) (xy 132.276608 127.639507)\r\n\t\t\t\t(xy 132.173889 127.580202) (xy 132.17389 127.580202) (xy 132.160351 127.576574) (xy 132.059309 127.5495)\r\n\t\t\t\t(xy 131.940691 127.5495) (xy 131.870567 127.568289) (xy 131.826109 127.580202) (xy 131.723391 127.639507)\r\n\t\t\t\t(xy 131.639507 127.723391) (xy 131.580202 127.826109) (xy 131.580201 127.826114) (xy 131.5495 127.940691)\r\n\t\t\t\t(xy 128.4505 127.940691) (xy 128.419799 127.826114) (xy 128.419797 127.826111) (xy 128.419797 127.826109)\r\n\t\t\t\t(xy 128.360492 127.723391) (xy 128.36049 127.723389) (xy 128.360489 127.723387) (xy 128.276613 127.639511)\r\n\t\t\t\t(xy 128.27661 127.639509) (xy 128.276608 127.639507) (xy 128.173889 127.580202) (xy 128.17389 127.580202)\r\n\t\t\t\t(xy 128.160351 127.576574) (xy 128.059309 127.5495) (xy 127.940691 127.5495) (xy 127.870567 127.568289)\r\n\t\t\t\t(xy 127.826109 127.580202) (xy 127.723391 127.639507) (xy 127.639507 127.723391) (xy 127.580202 127.826109)\r\n\t\t\t\t(xy 127.580201 127.826114) (xy 127.5495 127.940691) (xy 124.4505 127.940691) (xy 124.419799 127.826114)\r\n\t\t\t\t(xy 124.419797 127.826111) (xy 124.419797 127.826109) (xy 124.360492 127.723391) (xy 124.36049 127.723389)\r\n\t\t\t\t(xy 124.360489 127.723387) (xy 124.276613 127.639511) (xy 124.27661 127.639509) (xy 124.276608 127.639507)\r\n\t\t\t\t(xy 124.173889 127.580202) (xy 124.17389 127.580202) (xy 124.160351 127.576574) (xy 124.059309 127.5495)\r\n\t\t\t\t(xy 123.940691 127.5495) (xy 123.870567 127.568289) (xy 123.826109 127.580202) (xy 123.723391 127.639507)\r\n\t\t\t\t(xy 123.639507 127.723391) (xy 123.580202 127.826109) (xy 123.580201 127.826114) (xy 123.5495 127.940691)\r\n\t\t\t\t(xy 120.4505 127.940691) (xy 120.419799 127.826114) (xy 120.419797 127.826111) (xy 120.419797 127.826109)\r\n\t\t\t\t(xy 120.360492 127.723391) (xy 120.36049 127.723389) (xy 120.360489 127.723387) (xy 120.276613 127.639511)\r\n\t\t\t\t(xy 120.27661 127.639509) (xy 120.276608 127.639507) (xy 120.173889 127.580202) (xy 120.17389 127.580202)\r\n\t\t\t\t(xy 120.160351 127.576574) (xy 120.059309 127.5495) (xy 119.940691 127.5495) (xy 119.870567 127.568289)\r\n\t\t\t\t(xy 119.826109 127.580202) (xy 119.723391 127.639507) (xy 119.639507 127.723391) (xy 119.580202 127.826109)\r\n\t\t\t\t(xy 119.580201 127.826114) (xy 119.5495 127.940691) (xy 116.4505 127.940691) (xy 116.419799 127.826114)\r\n\t\t\t\t(xy 116.419797 127.826111) (xy 116.419797 127.826109) (xy 116.360492 127.723391) (xy 116.36049 127.723389)\r\n\t\t\t\t(xy 116.360489 127.723387) (xy 116.276613 127.639511) (xy 116.27661 127.639509) (xy 116.276608 127.639507)\r\n\t\t\t\t(xy 116.173889 127.580202) (xy 116.17389 127.580202) (xy 116.160351 127.576574) (xy 116.059309 127.5495)\r\n\t\t\t\t(xy 115.940691 127.5495) (xy 115.870567 127.568289) (xy 115.826109 127.580202) (xy 115.723391 127.639507)\r\n\t\t\t\t(xy 115.639507 127.723391) (xy 115.580202 127.826109) (xy 115.580201 127.826114) (xy 115.5495 127.940691)\r\n\t\t\t\t(xy 112.4505 127.940691) (xy 112.419799 127.826114) (xy 112.419797 127.826111) (xy 112.419797 127.826109)\r\n\t\t\t\t(xy 112.360492 127.723391) (xy 112.36049 127.723389) (xy 112.360489 127.723387) (xy 112.276613 127.639511)\r\n\t\t\t\t(xy 112.27661 127.639509) (xy 112.276608 127.639507) (xy 112.173889 127.580202) (xy 112.17389 127.580202)\r\n\t\t\t\t(xy 112.160351 127.576574) (xy 112.059309 127.5495) (xy 111.940691 127.5495) (xy 111.870567 127.568289)\r\n\t\t\t\t(xy 111.826109 127.580202) (xy 111.723391 127.639507) (xy 111.639507 127.723391) (xy 111.580202 127.826109)\r\n\t\t\t\t(xy 111.580201 127.826114) (xy 111.5495 127.940691) (xy 88.4505 127.940691) (xy 88.419799 127.826114)\r\n\t\t\t\t(xy 88.419797 127.826111) (xy 88.419797 127.826109) (xy 88.360492 127.723391) (xy 88.36049 127.723389)\r\n\t\t\t\t(xy 88.360489 127.723387) (xy 88.276613 127.639511) (xy 88.27661 127.639509) (xy 88.276608 127.639507)\r\n\t\t\t\t(xy 88.173889 127.580202) (xy 88.17389 127.580202) (xy 88.160351 127.576574) (xy 88.059309 127.5495)\r\n\t\t\t\t(xy 87.940691 127.5495) (xy 87.870567 127.568289) (xy 87.826109 127.580202) (xy 87.723391 127.639507)\r\n\t\t\t\t(xy 87.639507 127.723391) (xy 87.580202 127.826109) (xy 87.580201 127.82611' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'4) (xy 87.5495 127.940691)\r\n\t\t\t\t(xy 84.4505 127.940691) (xy 84.419799 127.826114) (xy 84.419797 127.826111) (xy 84.419797 127.826109)\r\n\t\t\t\t(xy 84.360492 127.723391) (xy 84.36049 127.723389) (xy 84.360489 127.723387) (xy 84.276613 127.639511)\r\n\t\t\t\t(xy 84.27661 127.639509) (xy 84.276608 127.639507) (xy 84.173889 127.580202) (xy 84.17389 127.580202)\r\n\t\t\t\t(xy 84.160351 127.576574) (xy 84.059309 127.5495) (xy 83.940691 127.5495) (xy 83.870567 127.568289)\r\n\t\t\t\t(xy 83.826109 127.580202) (xy 83.723391 127.639507) (xy 83.639507 127.723391) (xy 83.580202 127.826109)\r\n\t\t\t\t(xy 83.580201 127.826114) (xy 83.5495 127.940691) (xy 80.4505 127.940691) (xy 80.419799 127.826114)\r\n\t\t\t\t(xy 80.419797 127.826111) (xy 80.419797 127.826109) (xy 80.360492 127.723391) (xy 80.36049 127.723389)\r\n\t\t\t\t(xy 80.360489 127.723387) (xy 80.276613 127.639511) (xy 80.27661 127.639509) (xy 80.276608 127.639507)\r\n\t\t\t\t(xy 80.173889 127.580202) (xy 80.17389 127.580202) (xy 80.160351 127.576574) (xy 80.059309 127.5495)\r\n\t\t\t\t(xy 79.940691 127.5495) (xy 79.870567 127.568289) (xy 79.826109 127.580202) (xy 79.723391 127.639507)\r\n\t\t\t\t(xy 79.639507 127.723391) (xy 79.580202 127.826109) (xy 79.580201 127.826114) (xy 79.5495 127.940691)\r\n\t\t\t\t(xy 76.4505 127.940691) (xy 76.419799 127.826114) (xy 76.419797 127.826111) (xy 76.419797 127.826109)\r\n\t\t\t\t(xy 76.360492 127.723391) (xy 76.36049 127.723389) (xy 76.360489 127.723387) (xy 76.276613 127.639511)\r\n\t\t\t\t(xy 76.27661 127.639509) (xy 76.276608 127.639507) (xy 76.173889 127.580202) (xy 76.17389 127.580202)\r\n\t\t\t\t(xy 76.160351 127.576574) (xy 76.059309 127.5495) (xy 75.940691 127.5495) (xy 75.870567 127.568289)\r\n\t\t\t\t(xy 75.826109 127.580202) (xy 75.723391 127.639507) (xy 75.639507 127.723391) (xy 75.580202 127.826109)\r\n\t\t\t\t(xy 75.580201 127.826114) (xy 75.5495 127.940691) (xy 74.0005 127.940691) (xy 74.0005 125.174034)\r\n\t\t\t\t(xy 76.7995 125.174034) (xy 76.7995 125.425965) (xy 76.838908 125.67478) (xy 76.916759 125.914379)\r\n\t\t\t\t(xy 77.023255 126.123391) (xy 77.03113 126.138845) (xy 77.179207 126.342656) (xy 77.357344 126.520793)\r\n\t\t\t\t(xy 77.561155 126.66887) (xy 77.785621 126.783241) (xy 78.025215 126.86109) (xy 78.025216 126.86109)\r\n\t\t\t\t(xy 78.025219 126.861091) (xy 78.274035 126.9005) (xy 78.274038 126.9005) (xy 78.525965 126.9005)\r\n\t\t\t\t(xy 78.77478 126.861091) (xy 78.774781 126.86109) (xy 78.774785 126.86109) (xy 79.014379 126.783241)\r\n\t\t\t\t(xy 79.238845 126.66887) (xy 79.442656 126.520793) (xy 79.620793 126.342656) (xy 79.622221 126.340691)\r\n\t\t\t\t(xy 100.7495 126.340691) (xy 100.7495 126.459309) (xy 100.765975 126.520793) (xy 100.780202 126.57389)\r\n\t\t\t\t(xy 100.839507 126.676608) (xy 100.839509 126.67661) (xy 100.839511 126.676613) (xy 100.923387 126.760489)\r\n\t\t\t\t(xy 100.923389 126.76049) (xy 100.923391 126.760492) (xy 101.02611 126.819797) (xy 101.026111 126.819797)\r\n\t\t\t\t(xy 101.026114 126.819799) (xy 101.140691 126.8505) (xy 101.140693 126.8505) (xy 101.259307 126.8505)\r\n\t\t\t\t(xy 101.259309 126.8505) (xy 101.373886 126.819799) (xy 101.373888 126.819797) (xy 101.37389 126.819797)\r\n\t\t\t\t(xy 101.476608 126.760492) (xy 101.476608 126.760491) (xy 101.476613 126.760489) (xy 101.560489 126.676613)\r\n\t\t\t\t(xy 101.564959 126.668871) (xy 101.619797 126.57389) (xy 101.619797 126.573888) (xy 101.619799 126.573886)\r\n\t\t\t\t(xy 101.6505 126.459309) (xy 101.6505 126.340691) (xy 101.9495 126.340691) (xy 101.9495 126.459309)\r\n\t\t\t\t(xy 101.965975 126.520793) (xy 101.980202 126.57389) (xy 102.039507 126.676608) (xy 102.039509 126.67661)\r\n\t\t\t\t(xy 102.039511 126.676613) (xy 102.123387 126.760489) (xy 102.123389 126.76049) (xy 102.123391 126.760492)\r\n\t\t\t\t(xy 102.22611 126.819797) (xy 102.226111 126.819797) (xy 102.226114 126.819799) (xy 102.340691 126.8505)\r\n\t\t\t\t(xy 102.340693 126.8505) (xy 102.459307 126.8505) (xy 102.459309 126.8505) (xy 102.573886 126.819799)\r\n\t\t\t\t(xy 102.573888 126.819797) (xy 102.57389 126.819797) (xy 102.676608 126.760492) (xy 102.676608 126.760491)\r\n\t\t\t\t(xy 102.676613 126.760489) (xy 102.760489 126.676613) (xy 102.764959 126.668871) (xy 102.819797 126.57389)\r\n\t\t\t\t(xy 102.819797 126.573888) (xy 102.819799 126.573886) (xy 102.8505 126.459309) (xy 102.8505 126.340691)\r\n\t\t\t\t(xy 103.3495 126.340691) (xy 103.3495 126.459309) (xy 103.365975 126.520793) (xy 103.380202 126.57389)\r\n\t\t\t\t(xy 103.439507 126.676608) (xy 103.439509 126.67661) (xy 103.439511 126.676613) (xy 103.523387 126.760489)\r\n\t\t\t\t(xy 103.523389 126.76049) (xy 103.523391 126.760492) (xy 103.62611 126.819797) (xy 103.626111 126.819797)\r\n\t\t\t\t(xy 103.626114 126.819799) (xy 103.740691 126.8505) (xy 103.740693 126.8505) (xy 103.859307 126.8505)\r\n\t\t\t\t(xy 103.859309 126.8505) (xy 103.973886 126.819799) (xy 103.973888 126.819797) (xy 103.97389 126.819797)\r\n\t\t\t\t(xy 104.076608 126.760492) (xy 104.076608 126.760491) (xy 104.076613 126.760489) (xy 104.160489 126.676613)\r\n\t\t\t\t(xy 104.164959 126.668871) (xy 104.219797 126.57389) (xy 104.219797 126.573888) (xy 104.219799 126.573886)\r\n\t\t\t\t(xy 104.2505 126.459309) (xy 104.2505 126.340691) (xy 104.5495 126.340691) (xy 104.5495 126.459309)\r\n\t\t\t\t(xy 104.565975 126.520793) (xy 104.580202 126.57389) (xy 104.639507 126.676608) (xy 104.639509 126.67661)\r\n\t\t\t\t(xy 104.639511 126.676613) (xy 104.723387 126.760489) (xy 104.723389 126.76049) (xy 104.723391 126.760492)\r\n\t\t\t\t(xy 104.82611 126.819797) (xy 104.826111 126.819797) (xy 104.826114 126.819799) (xy 104.940691 126.8505)\r\n\t\t\t\t(xy 104.940693 126.8505) (xy 105.059307 126.8505) (xy 105.059309 126.8505) (xy 105.173886 126.819799)\r\n\t\t\t\t(xy 105.173888 126.819797) (xy 105.17389 126.819797) (xy 105.276608 126.760492) (xy 105.276608 126.760491)\r\n\t\t\t\t(xy 105.276613 126.760489) (xy 105.360489 126.676613) (xy 105.364959 126.668871) (xy 105.419797 126.57389)\r\n\t\t\t\t(xy 105.419797 126.573888) (xy 105.419799 126.573886) (xy 105.4505 126.459309) (xy 105.4505 126.340691)\r\n\t\t\t\t(xy 105.419799 126.226114) (xy 105.419797 126.226111) (xy 105.419797 126.226109) (xy 105.360492 126.123391)\r\n\t\t\t\t(xy 105.36049 126.123389) (xy 105.360489 126.123387) (xy 105.276613 126.039511) (xy 105.27661 126.039509)\r\n\t\t\t\t(xy 105.276608 126.039507) (xy 105.173889 125.980202) (xy 105.17389 125.980202) (xy 105.160351 125.976574)\r\n\t\t\t\t(xy 105.059309 125.9495) (xy 104.940691 125.9495) (xy 104.870567 125.968289) (xy 104.826109 125.980202)\r\n\t\t\t\t(xy 104.723391 126.039507) (xy 104.639507 126.123391) (xy 104.580202 126.226109) (xy 104.580201 126.226114)\r\n\t\t\t\t(xy 104.5495 126.340691) (xy 104.2505 126.340691) (xy 104.219799 126.226114) (xy 104.219797 126.226111)\r\n\t\t\t\t(xy 104.219797 126.226109) (xy 104.160492 126.123391) (xy 104.16049 126.123389) (xy 104.160489 126.123387)\r\n\t\t\t\t(xy 104.076613 126.039511) (xy 104.07661 126.039509) (xy 104.076608 126.039507) (xy 103.973889 125.980202)\r\n\t\t\t\t(xy 103.97389 125.980202) (xy 103.960351 125.976574) (xy 103.859309 125.9495) (xy 103.740691 125.9495)\r\n\t\t\t\t(xy 103.670567 125.968289) (xy 103.626109 125.980202) (xy 103.523391 126.039507) (xy 103.439507 126.123391)\r\n\t\t\t\t(xy 103.380202 126.226109) (xy 103.380201 126.226114) (xy 103.3495 126.340691) (xy 102.8505 126.340691)\r\n\t\t\t\t(xy 102.819799 126.226114) (xy 102.819797 126.226111) (xy 102.819797 126.226109) (xy 102.760492 126.123391)\r\n\t\t\t\t(xy 102.76049 126.123389) (xy 102.760489 126.123387) (xy 102.676613 126.039511) (xy 102.67661 126.039509)\r\n\t\t\t\t(xy 102.676608 126.039507) (xy 102.573889 125.980202) (xy 102.57389 125.980202) (xy 102.560351 125.976574)\r\n\t\t\t\t(xy 102.459309 125.9495) (xy 102.340691 125.9495) (xy 102.270567 125.968289) (xy 102.226109 125.980202)\r\n\t\t\t\t(xy 102.123391 126.039507) (xy 102.039507 126.123391) (xy 101.980202 126.226109) (xy 101.980201 126.226114)\r\n\t\t\t\t(xy 101.9495 126.340691) (xy 101.6505 126.340691) (xy 101.619799 126.226114) (xy 101.619797 126.226111)\r\n\t\t\t\t(xy 101.619797 126.226109) (xy 101.560492 126.123391) (xy 101.56049 126.123389) (xy 101.560489 126.123387)\r\n\t\t\t\t(xy 101.476613 126.039511) (xy 101.47661 126.039509) (xy 101.476608 126.039507) (xy 101.373889 125.980202)\r\n\t\t\t\t(xy 101.37389 125.980202) (xy 101.360351 125.976574) (xy 101.259309 125.9495) (xy 101.140691 125.9495)\r\n\t\t\t\t(xy 101.070567 125.968289) (xy 101.026109 125.980202) (xy 100.923391 126.039507) (xy 100.839507 126.123391)\r\n\t\t\t\t(xy 100.780202 126.226109) (xy 100.780201 126.226114) (xy 100.7495 126.340' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'691) (xy 79.622221 126.340691)\r\n\t\t\t\t(xy 79.76887 126.138845) (xy 79.883241 125.914379) (xy 79.96109 125.674785) (xy 79.961091 125.67478)\r\n\t\t\t\t(xy 80.0005 125.425965) (xy 80.0005 125.174034) (xy 79.996644 125.149689) (xy 79.995219 125.140691)\r\n\t\t\t\t(xy 102.1495 125.140691) (xy 102.1495 125.259309) (xy 102.176574 125.360351) (xy 102.180202 125.37389)\r\n\t\t\t\t(xy 102.239507 125.476608) (xy 102.239509 125.47661) (xy 102.239511 125.476613) (xy 102.323387 125.560489)\r\n\t\t\t\t(xy 102.323389 125.56049) (xy 102.323391 125.560492) (xy 102.42611 125.619797) (xy 102.426111 125.619797)\r\n\t\t\t\t(xy 102.426114 125.619799) (xy 102.540691 125.6505) (xy 102.540693 125.6505) (xy 102.659307 125.6505)\r\n\t\t\t\t(xy 102.659309 125.6505) (xy 102.773886 125.619799) (xy 102.773888 125.619797) (xy 102.77389 125.619797)\r\n\t\t\t\t(xy 102.876608 125.560492) (xy 102.876608 125.560491) (xy 102.876613 125.560489) (xy 102.960489 125.476613)\r\n\t\t\t\t(xy 103.019799 125.373886) (xy 103.0505 125.259309) (xy 103.0505 125.140691) (xy 103.3495 125.140691)\r\n\t\t\t\t(xy 103.3495 125.259309) (xy 103.376574 125.360351) (xy 103.380202 125.37389) (xy 103.439507 125.476608)\r\n\t\t\t\t(xy 103.439509 125.47661) (xy 103.439511 125.476613) (xy 103.523387 125.560489) (xy 103.523389 125.56049)\r\n\t\t\t\t(xy 103.523391 125.560492) (xy 103.62611 125.619797) (xy 103.626111 125.619797) (xy 103.626114 125.619799)\r\n\t\t\t\t(xy 103.740691 125.6505) (xy 103.740693 125.6505) (xy 103.859307 125.6505) (xy 103.859309 125.6505)\r\n\t\t\t\t(xy 103.973886 125.619799) (xy 103.973888 125.619797) (xy 103.97389 125.619797) (xy 104.076608 125.560492)\r\n\t\t\t\t(xy 104.076608 125.560491) (xy 104.076613 125.560489) (xy 104.160489 125.476613) (xy 104.219799 125.373886)\r\n\t\t\t\t(xy 104.2505 125.259309) (xy 104.2505 125.140691) (xy 104.5495 125.140691) (xy 104.5495 125.259309)\r\n\t\t\t\t(xy 104.576574 125.360351) (xy 104.580202 125.37389) (xy 104.639507 125.476608) (xy 104.639509 125.47661)\r\n\t\t\t\t(xy 104.639511 125.476613) (xy 104.723387 125.560489) (xy 104.723389 125.56049) (xy 104.723391 125.560492)\r\n\t\t\t\t(xy 104.82611 125.619797) (xy 104.826111 125.619797) (xy 104.826114 125.619799) (xy 104.940691 125.6505)\r\n\t\t\t\t(xy 104.940693 125.6505) (xy 105.059307 125.6505) (xy 105.059309 125.6505) (xy 105.173886 125.619799)\r\n\t\t\t\t(xy 105.173888 125.619797) (xy 105.17389 125.619797) (xy 105.276608 125.560492) (xy 105.276608 125.560491)\r\n\t\t\t\t(xy 105.276613 125.560489) (xy 105.360489 125.476613) (xy 105.419799 125.373886) (xy 105.4505 125.259309)\r\n\t\t\t\t(xy 105.4505 125.140691) (xy 105.7495 125.140691) (xy 105.7495 125.259309) (xy 105.776574 125.360351)\r\n\t\t\t\t(xy 105.780202 125.37389) (xy 105.839507 125.476608) (xy 105.839509 125.47661) (xy 105.839511 125.476613)\r\n\t\t\t\t(xy 105.923387 125.560489) (xy 105.923389 125.56049) (xy 105.923391 125.560492) (xy 106.02611 125.619797)\r\n\t\t\t\t(xy 106.026111 125.619797) (xy 106.026114 125.619799) (xy 106.140691 125.6505) (xy 106.140693 125.6505)\r\n\t\t\t\t(xy 106.259307 125.6505) (xy 106.259309 125.6505) (xy 106.373886 125.619799) (xy 106.373888 125.619797)\r\n\t\t\t\t(xy 106.37389 125.619797) (xy 106.476608 125.560492) (xy 106.476608 125.560491) (xy 106.476613 125.560489)\r\n\t\t\t\t(xy 106.560489 125.476613) (xy 106.619799 125.373886) (xy 106.6505 125.259309) (xy 106.6505 125.174034)\r\n\t\t\t\t(xy 124.7995 125.174034) (xy 124.7995 125.425965) (xy 124.838908 125.67478) (xy 124.916759 125.914379)\r\n\t\t\t\t(xy 125.023255 126.123391) (xy 125.03113 126.138845) (xy 125.179207 126.342656) (xy 125.357344 126.520793)\r\n\t\t\t\t(xy 125.561155 126.66887) (xy 125.785621 126.783241) (xy 126.025215 126.86109) (xy 126.025216 126.86109)\r\n\t\t\t\t(xy 126.025219 126.861091) (xy 126.274035 126.9005) (xy 126.274038 126.9005) (xy 126.525965 126.9005)\r\n\t\t\t\t(xy 126.77478 126.861091) (xy 126.774781 126.86109) (xy 126.774785 126.86109) (xy 127.014379 126.783241)\r\n\t\t\t\t(xy 127.238845 126.66887) (xy 127.442656 126.520793) (xy 127.620793 126.342656) (xy 127.76887 126.138845)\r\n\t\t\t\t(xy 127.883241 125.914379) (xy 127.96109 125.674785) (xy 127.961091 125.67478) (xy 128.0005 125.425965)\r\n\t\t\t\t(xy 128.0005 125.174034) (xy 127.961091 124.925219) (xy 127.933243 124.839511) (xy 127.883241 124.685621)\r\n\t\t\t\t(xy 127.836121 124.593144) (xy 127.826551 124.532713) (xy 127.854328 124.478196) (xy 127.908845 124.450419)\r\n\t\t\t\t(xy 127.93726 124.450048) (xy 127.94069 124.450499) (xy 127.940691 124.4505) (xy 127.940692 124.4505)\r\n\t\t\t\t(xy 128.059307 124.4505) (xy 128.059309 124.4505) (xy 128.173886 124.419799) (xy 128.173888 124.419797)\r\n\t\t\t\t(xy 128.17389 124.419797) (xy 128.276608 124.360492) (xy 128.276608 124.360491) (xy 128.276613 124.360489)\r\n\t\t\t\t(xy 128.360489 124.276613) (xy 128.360492 124.276608) (xy 128.419797 124.17389) (xy 128.419797 124.173888)\r\n\t\t\t\t(xy 128.419799 124.173886) (xy 128.4505 124.059309) (xy 128.4505 123.940691) (xy 131.5495 123.940691)\r\n\t\t\t\t(xy 131.5495 124.059309) (xy 131.554832 124.079207) (xy 131.580202 124.17389) (xy 131.639507 124.276608)\r\n\t\t\t\t(xy 131.639509 124.27661) (xy 131.639511 124.276613) (xy 131.723387 124.360489) (xy 131.723389 124.36049)\r\n\t\t\t\t(xy 131.723391 124.360492) (xy 131.82611 124.419797) (xy 131.826111 124.419797) (xy 131.826114 124.419799)\r\n\t\t\t\t(xy 131.940691 124.4505) (xy 131.940693 124.4505) (xy 132.059307 124.4505) (xy 132.059309 124.4505)\r\n\t\t\t\t(xy 132.173886 124.419799) (xy 132.173888 124.419797) (xy 132.17389 124.419797) (xy 132.276608 124.360492)\r\n\t\t\t\t(xy 132.276608 124.360491) (xy 132.276613 124.360489) (xy 132.360489 124.276613) (xy 132.360492 124.276608)\r\n\t\t\t\t(xy 132.419797 124.17389) (xy 132.419797 124.173888) (xy 132.419799 124.173886) (xy 132.4505 124.059309)\r\n\t\t\t\t(xy 132.4505 123.940691) (xy 135.5495 123.940691) (xy 135.5495 124.059309) (xy 135.554832 124.079207)\r\n\t\t\t\t(xy 135.580202 124.17389) (xy 135.639507 124.276608) (xy 135.639509 124.27661) (xy 135.639511 124.276613)\r\n\t\t\t\t(xy 135.723387 124.360489) (xy 135.723389 124.36049) (xy 135.723391 124.360492) (xy 135.82611 124.419797)\r\n\t\t\t\t(xy 135.826111 124.419797) (xy 135.826114 124.419799) (xy 135.940691 124.4505) (xy 135.940693 124.4505)\r\n\t\t\t\t(xy 136.059307 124.4505) (xy 136.059309 124.4505) (xy 136.173886 124.419799) (xy 136.173888 124.419797)\r\n\t\t\t\t(xy 136.17389 124.419797) (xy 136.276608 124.360492) (xy 136.276608 124.360491) (xy 136.276613 124.360489)\r\n\t\t\t\t(xy 136.360489 124.276613) (xy 136.360492 124.276608) (xy 136.419797 124.17389) (xy 136.419797 124.173888)\r\n\t\t\t\t(xy 136.419799 124.173886) (xy 136.4505 124.059309) (xy 136.4505 123.940691) (xy 139.5495 123.940691)\r\n\t\t\t\t(xy 139.5495 124.059309) (xy 139.554832 124.079207) (xy 139.580202 124.17389) (xy 139.639507 124.276608)\r\n\t\t\t\t(xy 139.639509 124.27661) (xy 139.639511 124.276613) (xy 139.723387 124.360489) (xy 139.723389 124.36049)\r\n\t\t\t\t(xy 139.723391 124.360492) (xy 139.82611 124.419797) (xy 139.826111 124.419797) (xy 139.826114 124.419799)\r\n\t\t\t\t(xy 139.940691 124.4505) (xy 139.940693 124.4505) (xy 140.059307 124.4505) (xy 140.059309 124.4505)\r\n\t\t\t\t(xy 140.173886 124.419799) (xy 140.173888 124.419797) (xy 140.17389 124.419797) (xy 140.276608 124.360492)\r\n\t\t\t\t(xy 140.276608 124.360491) (xy 140.276613 124.360489) (xy 140.360489 124.276613) (xy 140.360492 124.276608)\r\n\t\t\t\t(xy 140.419797 124.17389) (xy 140.419797 124.173888) (xy 140.419799 124.173886) (xy 140.4505 124.059309)\r\n\t\t\t\t(xy 140.4505 123.940691) (xy 143.5495 123.940691) (xy 143.5495 124.059309) (xy 143.554832 124.079207)\r\n\t\t\t\t(xy 143.580202 124.17389) (xy 143.639507 124.276608) (xy 143.639509 124.27661) (xy 143.639511 124.276613)\r\n\t\t\t\t(xy 143.723387 124.360489) (xy 143.723389 124.36049) (xy 143.723391 124.360492) (xy 143.82611 124.419797)\r\n\t\t\t\t(xy 143.826111 124.419797) (xy 143.826114 124.419799) (xy 143.940691 124.4505) (xy 143.940693 124.4505)\r\n\t\t\t\t(xy 144.059307 124.4505) (xy 144.059309 124.4505) (xy 144.173886 124.419799) (xy 144.173888 124.419797)\r\n\t\t\t\t(xy 144.17389 124.419797) (xy 144.276608 124.360492) (xy 144.276608 124.360491) (xy 144.276613 124.360489)\r\n\t\t\t\t(xy 144.360489 124.276613) (xy 144.360492 124.276608) (xy 144.419797 124.17389) (xy 144.419797 124.173888)\r\n\t\t\t\t(xy 144.419799 124.173886) (xy 144.4505 124.059309) (xy 144.4505 123.940691) (xy 147.5495 123.940691)\r\n\t\t\t\t(xy 147.5495 124.059309) (xy 147.554832 124.079207) (xy 147.580202 124.17389) (xy 147.639507 124.276608)\r\n\t\t\t\t(xy 147.639509 124.27661) (x' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'y 147.639511 124.276613) (xy 147.723387 124.360489) (xy 147.723389 124.36049)\r\n\t\t\t\t(xy 147.723391 124.360492) (xy 147.82611 124.419797) (xy 147.826111 124.419797) (xy 147.826114 124.419799)\r\n\t\t\t\t(xy 147.940691 124.4505) (xy 147.940693 124.4505) (xy 148.059307 124.4505) (xy 148.059309 124.4505)\r\n\t\t\t\t(xy 148.173886 124.419799) (xy 148.173888 124.419797) (xy 148.17389 124.419797) (xy 148.276608 124.360492)\r\n\t\t\t\t(xy 148.276608 124.360491) (xy 148.276613 124.360489) (xy 148.360489 124.276613) (xy 148.360492 124.276608)\r\n\t\t\t\t(xy 148.419797 124.17389) (xy 148.419797 124.173888) (xy 148.419799 124.173886) (xy 148.4505 124.059309)\r\n\t\t\t\t(xy 148.4505 123.940691) (xy 151.5495 123.940691) (xy 151.5495 124.059309) (xy 151.554832 124.079207)\r\n\t\t\t\t(xy 151.580202 124.17389) (xy 151.639507 124.276608) (xy 151.639509 124.27661) (xy 151.639511 124.276613)\r\n\t\t\t\t(xy 151.723387 124.360489) (xy 151.723389 124.36049) (xy 151.723391 124.360492) (xy 151.82611 124.419797)\r\n\t\t\t\t(xy 151.826111 124.419797) (xy 151.826114 124.419799) (xy 151.940691 124.4505) (xy 151.940693 124.4505)\r\n\t\t\t\t(xy 152.059307 124.4505) (xy 152.059309 124.4505) (xy 152.173886 124.419799) (xy 152.173888 124.419797)\r\n\t\t\t\t(xy 152.17389 124.419797) (xy 152.276608 124.360492) (xy 152.276608 124.360491) (xy 152.276613 124.360489)\r\n\t\t\t\t(xy 152.360489 124.276613) (xy 152.360492 124.276608) (xy 152.419797 124.17389) (xy 152.419797 124.173888)\r\n\t\t\t\t(xy 152.419799 124.173886) (xy 152.4505 124.059309) (xy 152.4505 123.940691) (xy 152.419799 123.826114)\r\n\t\t\t\t(xy 152.419797 123.826111) (xy 152.419797 123.826109) (xy 152.360492 123.723391) (xy 152.36049 123.723389)\r\n\t\t\t\t(xy 152.360489 123.723387) (xy 152.276613 123.639511) (xy 152.27661 123.639509) (xy 152.276608 123.639507)\r\n\t\t\t\t(xy 152.173889 123.580202) (xy 152.17389 123.580202) (xy 152.160351 123.576574) (xy 152.059309 123.5495)\r\n\t\t\t\t(xy 151.940691 123.5495) (xy 151.899669 123.560492) (xy 151.826109 123.580202) (xy 151.723391 123.639507)\r\n\t\t\t\t(xy 151.639507 123.723391) (xy 151.580202 123.826109) (xy 151.580201 123.826114) (xy 151.5495 123.940691)\r\n\t\t\t\t(xy 148.4505 123.940691) (xy 148.419799 123.826114) (xy 148.419797 123.826111) (xy 148.419797 123.826109)\r\n\t\t\t\t(xy 148.360492 123.723391) (xy 148.36049 123.723389) (xy 148.360489 123.723387) (xy 148.276613 123.639511)\r\n\t\t\t\t(xy 148.27661 123.639509) (xy 148.276608 123.639507) (xy 148.173889 123.580202) (xy 148.17389 123.580202)\r\n\t\t\t\t(xy 148.160351 123.576574) (xy 148.059309 123.5495) (xy 147.940691 123.5495) (xy 147.899669 123.560492)\r\n\t\t\t\t(xy 147.826109 123.580202) (xy 147.723391 123.639507) (xy 147.639507 123.723391) (xy 147.580202 123.826109)\r\n\t\t\t\t(xy 147.580201 123.826114) (xy 147.5495 123.940691) (xy 144.4505 123.940691) (xy 144.419799 123.826114)\r\n\t\t\t\t(xy 144.419797 123.826111) (xy 144.419797 123.826109) (xy 144.360492 123.723391) (xy 144.36049 123.723389)\r\n\t\t\t\t(xy 144.360489 123.723387) (xy 144.276613 123.639511) (xy 144.27661 123.639509) (xy 144.276608 123.639507)\r\n\t\t\t\t(xy 144.173889 123.580202) (xy 144.17389 123.580202) (xy 144.160351 123.576574) (xy 144.059309 123.5495)\r\n\t\t\t\t(xy 143.940691 123.5495) (xy 143.899669 123.560492) (xy 143.826109 123.580202) (xy 143.723391 123.639507)\r\n\t\t\t\t(xy 143.639507 123.723391) (xy 143.580202 123.826109) (xy 143.580201 123.826114) (xy 143.5495 123.940691)\r\n\t\t\t\t(xy 140.4505 123.940691) (xy 140.419799 123.826114) (xy 140.419797 123.826111) (xy 140.419797 123.826109)\r\n\t\t\t\t(xy 140.360492 123.723391) (xy 140.36049 123.723389) (xy 140.360489 123.723387) (xy 140.276613 123.639511)\r\n\t\t\t\t(xy 140.27661 123.639509) (xy 140.276608 123.639507) (xy 140.173889 123.580202) (xy 140.17389 123.580202)\r\n\t\t\t\t(xy 140.160351 123.576574) (xy 140.059309 123.5495) (xy 139.940691 123.5495) (xy 139.899669 123.560492)\r\n\t\t\t\t(xy 139.826109 123.580202) (xy 139.723391 123.639507) (xy 139.639507 123.723391) (xy 139.580202 123.826109)\r\n\t\t\t\t(xy 139.580201 123.826114) (xy 139.5495 123.940691) (xy 136.4505 123.940691) (xy 136.419799 123.826114)\r\n\t\t\t\t(xy 136.419797 123.826111) (xy 136.419797 123.826109) (xy 136.360492 123.723391) (xy 136.36049 123.723389)\r\n\t\t\t\t(xy 136.360489 123.723387) (xy 136.276613 123.639511) (xy 136.27661 123.639509) (xy 136.276608 123.639507)\r\n\t\t\t\t(xy 136.173889 123.580202) (xy 136.17389 123.580202) (xy 136.160351 123.576574) (xy 136.059309 123.5495)\r\n\t\t\t\t(xy 135.940691 123.5495) (xy 135.899669 123.560492) (xy 135.826109 123.580202) (xy 135.723391 123.639507)\r\n\t\t\t\t(xy 135.639507 123.723391) (xy 135.580202 123.826109) (xy 135.580201 123.826114) (xy 135.5495 123.940691)\r\n\t\t\t\t(xy 132.4505 123.940691) (xy 132.419799 123.826114) (xy 132.419797 123.826111) (xy 132.419797 123.826109)\r\n\t\t\t\t(xy 132.360492 123.723391) (xy 132.36049 123.723389) (xy 132.360489 123.723387) (xy 132.276613 123.639511)\r\n\t\t\t\t(xy 132.27661 123.639509) (xy 132.276608 123.639507) (xy 132.173889 123.580202) (xy 132.17389 123.580202)\r\n\t\t\t\t(xy 132.160351 123.576574) (xy 132.059309 123.5495) (xy 131.940691 123.5495) (xy 131.899669 123.560492)\r\n\t\t\t\t(xy 131.826109 123.580202) (xy 131.723391 123.639507) (xy 131.639507 123.723391) (xy 131.580202 123.826109)\r\n\t\t\t\t(xy 131.580201 123.826114) (xy 131.5495 123.940691) (xy 128.4505 123.940691) (xy 128.419799 123.826114)\r\n\t\t\t\t(xy 128.419797 123.826111) (xy 128.419797 123.826109) (xy 128.360492 123.723391) (xy 128.36049 123.723389)\r\n\t\t\t\t(xy 128.360489 123.723387) (xy 128.276613 123.639511) (xy 128.27661 123.639509) (xy 128.276608 123.639507)\r\n\t\t\t\t(xy 128.173889 123.580202) (xy 128.17389 123.580202) (xy 128.160351 123.576574) (xy 128.059309 123.5495)\r\n\t\t\t\t(xy 127.940691 123.5495) (xy 127.899669 123.560492) (xy 127.826109 123.580202) (xy 127.723391 123.639507)\r\n\t\t\t\t(xy 127.639507 123.723391) (xy 127.580202 123.826109) (xy 127.580201 123.826114) (xy 127.552063 123.931128)\r\n\t\t\t\t(xy 127.5495 123.940692) (xy 127.5495 123.962535) (xy 127.530593 124.020726) (xy 127.481093 124.05669)\r\n\t\t\t\t(xy 127.419907 124.05669) (xy 127.392309 124.042628) (xy 127.238843 123.931128) (xy 127.014379 123.816759)\r\n\t\t\t\t(xy 126.77478 123.738908) (xy 126.525965 123.6995) (xy 126.525962 123.6995) (xy 126.274038 123.6995)\r\n\t\t\t\t(xy 126.274035 123.6995) (xy 126.025219 123.738908) (xy 125.78562 123.816759) (xy 125.561157 123.931128)\r\n\t\t\t\t(xy 125.357345 124.079206) (xy 125.179206 124.257345) (xy 125.031128 124.461157) (xy 124.916759 124.68562)\r\n\t\t\t\t(xy 124.838908 124.925219) (xy 124.7995 125.174034) (xy 106.6505 125.174034) (xy 106.6505 125.140691)\r\n\t\t\t\t(xy 106.619799 125.026114) (xy 106.619797 125.026111) (xy 106.619797 125.026109) (xy 106.560492 124.923391)\r\n\t\t\t\t(xy 106.56049 124.923389) (xy 106.560489 124.923387) (xy 106.476613 124.839511) (xy 106.47661 124.839509)\r\n\t\t\t\t(xy 106.476608 124.839507) (xy 106.373889 124.780202) (xy 106.37389 124.780202) (xy 106.360351 124.776574)\r\n\t\t\t\t(xy 106.259309 124.7495) (xy 106.140691 124.7495) (xy 106.070567 124.768289) (xy 106.026109 124.780202)\r\n\t\t\t\t(xy 105.923391 124.839507) (xy 105.839507 124.923391) (xy 105.780202 125.026109) (xy 105.780201 125.026114)\r\n\t\t\t\t(xy 105.7495 125.140691) (xy 105.4505 125.140691) (xy 105.419799 125.026114) (xy 105.419797 125.026111)\r\n\t\t\t\t(xy 105.419797 125.026109) (xy 105.360492 124.923391) (xy 105.36049 124.923389) (xy 105.360489 124.923387)\r\n\t\t\t\t(xy 105.276613 124.839511) (xy 105.27661 124.839509) (xy 105.276608 124.839507) (xy 105.173889 124.780202)\r\n\t\t\t\t(xy 105.17389 124.780202) (xy 105.160351 124.776574) (xy 105.059309 124.7495) (xy 104.940691 124.7495)\r\n\t\t\t\t(xy 104.870567 124.768289) (xy 104.826109 124.780202) (xy 104.723391 124.839507) (xy 104.639507 124.923391)\r\n\t\t\t\t(xy 104.580202 125.026109) (xy 104.580201 125.026114) (xy 104.5495 125.140691) (xy 104.2505 125.140691)\r\n\t\t\t\t(xy 104.219799 125.026114) (xy 104.219797 125.026111) (xy 104.219797 125.026109) (xy 104.160492 124.923391)\r\n\t\t\t\t(xy 104.16049 124.923389) (xy 104.160489 124.923387) (xy 104.076613 124.839511) (xy 104.07661 124.839509)\r\n\t\t\t\t(xy 104.076608 124.839507) (xy 103.973889 124.780202) (xy 103.97389 124.780202) (xy 103.960351 124.776574)\r\n\t\t\t\t(xy 103.859309 124.7495) (xy 103.740691 124.7495) (xy 103.670567 124.768289) (xy 103.626109 124.780202)\r\n\t\t\t\t(xy 103.523391 124.839507) (xy 103.439507 124.923391) (xy 103.380202 125.026109) (xy 103.380201 125.026114)\r\n\t\t\t\t(xy 103.3495 125.14069' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'1) (xy 103.0505 125.140691) (xy 103.019799 125.026114) (xy 103.019797 125.026111)\r\n\t\t\t\t(xy 103.019797 125.026109) (xy 102.960492 124.923391) (xy 102.96049 124.923389) (xy 102.960489 124.923387)\r\n\t\t\t\t(xy 102.876613 124.839511) (xy 102.87661 124.839509) (xy 102.876608 124.839507) (xy 102.773889 124.780202)\r\n\t\t\t\t(xy 102.77389 124.780202) (xy 102.760351 124.776574) (xy 102.659309 124.7495) (xy 102.540691 124.7495)\r\n\t\t\t\t(xy 102.470567 124.768289) (xy 102.426109 124.780202) (xy 102.323391 124.839507) (xy 102.239507 124.923391)\r\n\t\t\t\t(xy 102.180202 125.026109) (xy 102.180201 125.026114) (xy 102.1495 125.140691) (xy 79.995219 125.140691)\r\n\t\t\t\t(xy 79.961091 124.925219) (xy 79.933243 124.839511) (xy 79.883241 124.685621) (xy 79.836121 124.593144)\r\n\t\t\t\t(xy 79.826551 124.532713) (xy 79.854328 124.478196) (xy 79.908845 124.450419) (xy 79.93726 124.450048)\r\n\t\t\t\t(xy 79.94069 124.450499) (xy 79.940691 124.4505) (xy 79.940692 124.4505) (xy 80.059307 124.4505)\r\n\t\t\t\t(xy 80.059309 124.4505) (xy 80.173886 124.419799) (xy 80.173888 124.419797) (xy 80.17389 124.419797)\r\n\t\t\t\t(xy 80.276608 124.360492) (xy 80.276608 124.360491) (xy 80.276613 124.360489) (xy 80.360489 124.276613)\r\n\t\t\t\t(xy 80.360492 124.276608) (xy 80.419797 124.17389) (xy 80.419797 124.173888) (xy 80.419799 124.173886)\r\n\t\t\t\t(xy 80.4505 124.059309) (xy 80.4505 123.940691) (xy 83.5495 123.940691) (xy 83.5495 124.059309)\r\n\t\t\t\t(xy 83.554832 124.079207) (xy 83.580202 124.17389) (xy 83.639507 124.276608) (xy 83.639509 124.27661)\r\n\t\t\t\t(xy 83.639511 124.276613) (xy 83.723387 124.360489) (xy 83.723389 124.36049) (xy 83.723391 124.360492)\r\n\t\t\t\t(xy 83.82611 124.419797) (xy 83.826111 124.419797) (xy 83.826114 124.419799) (xy 83.940691 124.4505)\r\n\t\t\t\t(xy 83.940693 124.4505) (xy 84.059307 124.4505) (xy 84.059309 124.4505) (xy 84.173886 124.419799)\r\n\t\t\t\t(xy 84.173888 124.419797) (xy 84.17389 124.419797) (xy 84.276608 124.360492) (xy 84.276608 124.360491)\r\n\t\t\t\t(xy 84.276613 124.360489) (xy 84.360489 124.276613) (xy 84.360492 124.276608) (xy 84.419797 124.17389)\r\n\t\t\t\t(xy 84.419797 124.173888) (xy 84.419799 124.173886) (xy 84.4505 124.059309) (xy 84.4505 123.940691)\r\n\t\t\t\t(xy 87.5495 123.940691) (xy 87.5495 124.059309) (xy 87.554832 124.079207) (xy 87.580202 124.17389)\r\n\t\t\t\t(xy 87.639507 124.276608) (xy 87.639509 124.27661) (xy 87.639511 124.276613) (xy 87.723387 124.360489)\r\n\t\t\t\t(xy 87.723389 124.36049) (xy 87.723391 124.360492) (xy 87.82611 124.419797) (xy 87.826111 124.419797)\r\n\t\t\t\t(xy 87.826114 124.419799) (xy 87.940691 124.4505) (xy 87.940693 124.4505) (xy 88.059307 124.4505)\r\n\t\t\t\t(xy 88.059309 124.4505) (xy 88.173886 124.419799) (xy 88.173888 124.419797) (xy 88.17389 124.419797)\r\n\t\t\t\t(xy 88.276608 124.360492) (xy 88.276608 124.360491) (xy 88.276613 124.360489) (xy 88.360489 124.276613)\r\n\t\t\t\t(xy 88.360492 124.276608) (xy 88.419797 124.17389) (xy 88.419797 124.173888) (xy 88.419799 124.173886)\r\n\t\t\t\t(xy 88.4505 124.059309) (xy 88.4505 123.940691) (xy 111.5495 123.940691) (xy 111.5495 124.059309)\r\n\t\t\t\t(xy 111.554832 124.079207) (xy 111.580202 124.17389) (xy 111.639507 124.276608) (xy 111.639509 124.27661)\r\n\t\t\t\t(xy 111.639511 124.276613) (xy 111.723387 124.360489) (xy 111.723389 124.36049) (xy 111.723391 124.360492)\r\n\t\t\t\t(xy 111.82611 124.419797) (xy 111.826111 124.419797) (xy 111.826114 124.419799) (xy 111.940691 124.4505)\r\n\t\t\t\t(xy 111.940693 124.4505) (xy 112.059307 124.4505) (xy 112.059309 124.4505) (xy 112.173886 124.419799)\r\n\t\t\t\t(xy 112.173888 124.419797) (xy 112.17389 124.419797) (xy 112.276608 124.360492) (xy 112.276608 124.360491)\r\n\t\t\t\t(xy 112.276613 124.360489) (xy 112.360489 124.276613) (xy 112.360492 124.276608) (xy 112.419797 124.17389)\r\n\t\t\t\t(xy 112.419797 124.173888) (xy 112.419799 124.173886) (xy 112.4505 124.059309) (xy 112.4505 123.940691)\r\n\t\t\t\t(xy 115.5495 123.940691) (xy 115.5495 124.059309) (xy 115.554832 124.079207) (xy 115.580202 124.17389)\r\n\t\t\t\t(xy 115.639507 124.276608) (xy 115.639509 124.27661) (xy 115.639511 124.276613) (xy 115.723387 124.360489)\r\n\t\t\t\t(xy 115.723389 124.36049) (xy 115.723391 124.360492) (xy 115.82611 124.419797) (xy 115.826111 124.419797)\r\n\t\t\t\t(xy 115.826114 124.419799) (xy 115.940691 124.4505) (xy 115.940693 124.4505) (xy 116.059307 124.4505)\r\n\t\t\t\t(xy 116.059309 124.4505) (xy 116.173886 124.419799) (xy 116.173888 124.419797) (xy 116.17389 124.419797)\r\n\t\t\t\t(xy 116.276608 124.360492) (xy 116.276608 124.360491) (xy 116.276613 124.360489) (xy 116.360489 124.276613)\r\n\t\t\t\t(xy 116.360492 124.276608) (xy 116.419797 124.17389) (xy 116.419797 124.173888) (xy 116.419799 124.173886)\r\n\t\t\t\t(xy 116.4505 124.059309) (xy 116.4505 123.940691) (xy 119.5495 123.940691) (xy 119.5495 124.059309)\r\n\t\t\t\t(xy 119.554832 124.079207) (xy 119.580202 124.17389) (xy 119.639507 124.276608) (xy 119.639509 124.27661)\r\n\t\t\t\t(xy 119.639511 124.276613) (xy 119.723387 124.360489) (xy 119.723389 124.36049) (xy 119.723391 124.360492)\r\n\t\t\t\t(xy 119.82611 124.419797) (xy 119.826111 124.419797) (xy 119.826114 124.419799) (xy 119.940691 124.4505)\r\n\t\t\t\t(xy 119.940693 124.4505) (xy 120.059307 124.4505) (xy 120.059309 124.4505) (xy 120.173886 124.419799)\r\n\t\t\t\t(xy 120.173888 124.419797) (xy 120.17389 124.419797) (xy 120.276608 124.360492) (xy 120.276608 124.360491)\r\n\t\t\t\t(xy 120.276613 124.360489) (xy 120.360489 124.276613) (xy 120.360492 124.276608) (xy 120.419797 124.17389)\r\n\t\t\t\t(xy 120.419797 124.173888) (xy 120.419799 124.173886) (xy 120.4505 124.059309) (xy 120.4505 123.940691)\r\n\t\t\t\t(xy 123.5495 123.940691) (xy 123.5495 124.059309) (xy 123.554832 124.079207) (xy 123.580202 124.17389)\r\n\t\t\t\t(xy 123.639507 124.276608) (xy 123.639509 124.27661) (xy 123.639511 124.276613) (xy 123.723387 124.360489)\r\n\t\t\t\t(xy 123.723389 124.36049) (xy 123.723391 124.360492) (xy 123.82611 124.419797) (xy 123.826111 124.419797)\r\n\t\t\t\t(xy 123.826114 124.419799) (xy 123.940691 124.4505) (xy 123.940693 124.4505) (xy 124.059307 124.4505)\r\n\t\t\t\t(xy 124.059309 124.4505) (xy 124.173886 124.419799) (xy 124.173888 124.419797) (xy 124.17389 124.419797)\r\n\t\t\t\t(xy 124.276608 124.360492) (xy 124.276608 124.360491) (xy 124.276613 124.360489) (xy 124.360489 124.276613)\r\n\t\t\t\t(xy 124.360492 124.276608) (xy 124.419797 124.17389) (xy 124.419797 124.173888) (xy 124.419799 124.173886)\r\n\t\t\t\t(xy 124.4505 124.059309) (xy 124.4505 123.940691) (xy 124.419799 123.826114) (xy 124.419797 123.826111)\r\n\t\t\t\t(xy 124.419797 123.826109) (xy 124.360492 123.723391) (xy 124.36049 123.723389) (xy 124.360489 123.723387)\r\n\t\t\t\t(xy 124.276613 123.639511) (xy 124.27661 123.639509) (xy 124.276608 123.639507) (xy 124.173889 123.580202)\r\n\t\t\t\t(xy 124.17389 123.580202) (xy 124.160351 123.576574) (xy 124.059309 123.5495) (xy 123.940691 123.5495)\r\n\t\t\t\t(xy 123.899669 123.560492) (xy 123.826109 123.580202) (xy 123.723391 123.639507) (xy 123.639507 123.723391)\r\n\t\t\t\t(xy 123.580202 123.826109) (xy 123.580201 123.826114) (xy 123.5495 123.940691) (xy 120.4505 123.940691)\r\n\t\t\t\t(xy 120.419799 123.826114) (xy 120.419797 123.826111) (xy 120.419797 123.826109) (xy 120.360492 123.723391)\r\n\t\t\t\t(xy 120.36049 123.723389) (xy 120.360489 123.723387) (xy 120.276613 123.639511) (xy 120.27661 123.639509)\r\n\t\t\t\t(xy 120.276608 123.639507) (xy 120.173889 123.580202) (xy 120.17389 123.580202) (xy 120.160351 123.576574)\r\n\t\t\t\t(xy 120.059309 123.5495) (xy 119.940691 123.5495) (xy 119.899669 123.560492) (xy 119.826109 123.580202)\r\n\t\t\t\t(xy 119.723391 123.639507) (xy 119.639507 123.723391) (xy 119.580202 123.826109) (xy 119.580201 123.826114)\r\n\t\t\t\t(xy 119.5495 123.940691) (xy 116.4505 123.940691) (xy 116.419799 123.826114) (xy 116.419797 123.826111)\r\n\t\t\t\t(xy 116.419797 123.826109) (xy 116.360492 123.723391) (xy 116.36049 123.723389) (xy 116.360489 123.723387)\r\n\t\t\t\t(xy 116.276613 123.639511) (xy 116.27661 123.639509) (xy 116.276608 123.639507) (xy 116.173889 123.580202)\r\n\t\t\t\t(xy 116.17389 123.580202) (xy 116.160351 123.576574) (xy 116.059309 123.5495) (xy 115.940691 123.5495)\r\n\t\t\t\t(xy 115.899669 123.560492) (xy 115.826109 123.580202) (xy 115.723391 123.639507) (xy 115.639507 123.723391)\r\n\t\t\t\t(xy 115.580202 123.826109) (xy 115.580201 123.826114) (xy 115.5495 123.940691) (xy 112.4505 123.940691)\r\n\t\t\t\t(xy 112.419799 123.826114) (xy 112.419797 123.826111) (xy 112.419797 123.826109) (xy 112.360492 123.723391)\r\n\t\t\t\t(xy 112.36049 123.72' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'3389) (xy 112.360489 123.723387) (xy 112.276613 123.639511) (xy 112.27661 123.639509)\r\n\t\t\t\t(xy 112.276608 123.639507) (xy 112.173889 123.580202) (xy 112.17389 123.580202) (xy 112.160351 123.576574)\r\n\t\t\t\t(xy 112.059309 123.5495) (xy 111.940691 123.5495) (xy 111.899669 123.560492) (xy 111.826109 123.580202)\r\n\t\t\t\t(xy 111.723391 123.639507) (xy 111.639507 123.723391) (xy 111.580202 123.826109) (xy 111.580201 123.826114)\r\n\t\t\t\t(xy 111.5495 123.940691) (xy 88.4505 123.940691) (xy 88.419799 123.826114) (xy 88.419797 123.826111)\r\n\t\t\t\t(xy 88.419797 123.826109) (xy 88.360492 123.723391) (xy 88.36049 123.723389) (xy 88.360489 123.723387)\r\n\t\t\t\t(xy 88.276613 123.639511) (xy 88.27661 123.639509) (xy 88.276608 123.639507) (xy 88.173889 123.580202)\r\n\t\t\t\t(xy 88.17389 123.580202) (xy 88.160351 123.576574) (xy 88.059309 123.5495) (xy 87.940691 123.5495)\r\n\t\t\t\t(xy 87.899669 123.560492) (xy 87.826109 123.580202) (xy 87.723391 123.639507) (xy 87.639507 123.723391)\r\n\t\t\t\t(xy 87.580202 123.826109) (xy 87.580201 123.826114) (xy 87.5495 123.940691) (xy 84.4505 123.940691)\r\n\t\t\t\t(xy 84.419799 123.826114) (xy 84.419797 123.826111) (xy 84.419797 123.826109) (xy 84.360492 123.723391)\r\n\t\t\t\t(xy 84.36049 123.723389) (xy 84.360489 123.723387) (xy 84.276613 123.639511) (xy 84.27661 123.639509)\r\n\t\t\t\t(xy 84.276608 123.639507) (xy 84.173889 123.580202) (xy 84.17389 123.580202) (xy 84.160351 123.576574)\r\n\t\t\t\t(xy 84.059309 123.5495) (xy 83.940691 123.5495) (xy 83.899669 123.560492) (xy 83.826109 123.580202)\r\n\t\t\t\t(xy 83.723391 123.639507) (xy 83.639507 123.723391) (xy 83.580202 123.826109) (xy 83.580201 123.826114)\r\n\t\t\t\t(xy 83.5495 123.940691) (xy 80.4505 123.940691) (xy 80.419799 123.826114) (xy 80.419797 123.826111)\r\n\t\t\t\t(xy 80.419797 123.826109) (xy 80.360492 123.723391) (xy 80.36049 123.723389) (xy 80.360489 123.723387)\r\n\t\t\t\t(xy 80.276613 123.639511) (xy 80.27661 123.639509) (xy 80.276608 123.639507) (xy 80.173889 123.580202)\r\n\t\t\t\t(xy 80.17389 123.580202) (xy 80.160351 123.576574) (xy 80.059309 123.5495) (xy 79.940691 123.5495)\r\n\t\t\t\t(xy 79.899669 123.560492) (xy 79.826109 123.580202) (xy 79.723391 123.639507) (xy 79.639507 123.723391)\r\n\t\t\t\t(xy 79.580202 123.826109) (xy 79.580201 123.826114) (xy 79.552063 123.931128) (xy 79.5495 123.940692)\r\n\t\t\t\t(xy 79.5495 123.962535) (xy 79.530593 124.020726) (xy 79.481093 124.05669) (xy 79.419907 124.05669)\r\n\t\t\t\t(xy 79.392309 124.042628) (xy 79.238843 123.931128) (xy 79.014379 123.816759) (xy 78.77478 123.738908)\r\n\t\t\t\t(xy 78.525965 123.6995) (xy 78.525962 123.6995) (xy 78.274038 123.6995) (xy 78.274035 123.6995)\r\n\t\t\t\t(xy 78.025219 123.738908) (xy 77.78562 123.816759) (xy 77.561157 123.931128) (xy 77.357345 124.079206)\r\n\t\t\t\t(xy 77.179206 124.257345) (xy 77.031128 124.461157) (xy 76.916759 124.68562) (xy 76.838908 124.925219)\r\n\t\t\t\t(xy 76.7995 125.174034) (xy 74.0005 125.174034) (xy 74.0005 123.940691) (xy 75.5495 123.940691)\r\n\t\t\t\t(xy 75.5495 124.059309) (xy 75.554832 124.079207) (xy 75.580202 124.17389) (xy 75.639507 124.276608)\r\n\t\t\t\t(xy 75.639509 124.27661) (xy 75.639511 124.276613) (xy 75.723387 124.360489) (xy 75.723389 124.36049)\r\n\t\t\t\t(xy 75.723391 124.360492) (xy 75.82611 124.419797) (xy 75.826111 124.419797) (xy 75.826114 124.419799)\r\n\t\t\t\t(xy 75.940691 124.4505) (xy 75.940693 124.4505) (xy 76.059307 124.4505) (xy 76.059309 124.4505)\r\n\t\t\t\t(xy 76.173886 124.419799) (xy 76.173888 124.419797) (xy 76.17389 124.419797) (xy 76.276608 124.360492)\r\n\t\t\t\t(xy 76.276608 124.360491) (xy 76.276613 124.360489) (xy 76.360489 124.276613) (xy 76.360492 124.276608)\r\n\t\t\t\t(xy 76.419797 124.17389) (xy 76.419797 124.173888) (xy 76.419799 124.173886) (xy 76.4505 124.059309)\r\n\t\t\t\t(xy 76.4505 123.940691) (xy 76.419799 123.826114) (xy 76.419797 123.826111) (xy 76.419797 123.826109)\r\n\t\t\t\t(xy 76.360492 123.723391) (xy 76.36049 123.723389) (xy 76.360489 123.723387) (xy 76.276613 123.639511)\r\n\t\t\t\t(xy 76.27661 123.639509) (xy 76.276608 123.639507) (xy 76.173889 123.580202) (xy 76.17389 123.580202)\r\n\t\t\t\t(xy 76.160351 123.576574) (xy 76.059309 123.5495) (xy 75.940691 123.5495) (xy 75.899669 123.560492)\r\n\t\t\t\t(xy 75.826109 123.580202) (xy 75.723391 123.639507) (xy 75.639507 123.723391) (xy 75.580202 123.826109)\r\n\t\t\t\t(xy 75.580201 123.826114) (xy 75.5495 123.940691) (xy 74.0005 123.940691) (xy 74.0005 123.140691)\r\n\t\t\t\t(xy 100.5495 123.140691) (xy 100.5495 123.259309) (xy 100.554137 123.276613) (xy 100.580202 123.37389)\r\n\t\t\t\t(xy 100.639507 123.476608) (xy 100.639509 123.47661) (xy 100.639511 123.476613) (xy 100.723387 123.560489)\r\n\t\t\t\t(xy 100.723389 123.56049) (xy 100.723391 123.560492) (xy 100.82611 123.619797) (xy 100.826111 123.619797)\r\n\t\t\t\t(xy 100.826114 123.619799) (xy 100.940691 123.6505) (xy 100.940693 123.6505) (xy 101.059307 123.6505)\r\n\t\t\t\t(xy 101.059309 123.6505) (xy 101.173886 123.619799) (xy 101.173888 123.619797) (xy 101.17389 123.619797)\r\n\t\t\t\t(xy 101.276608 123.560492) (xy 101.276608 123.560491) (xy 101.276613 123.560489) (xy 101.360489 123.476613)\r\n\t\t\t\t(xy 101.360492 123.476608) (xy 101.419797 123.37389) (xy 101.419797 123.373888) (xy 101.419799 123.373886)\r\n\t\t\t\t(xy 101.4505 123.259309) (xy 101.4505 123.140691) (xy 101.419799 123.026114) (xy 101.419797 123.026111)\r\n\t\t\t\t(xy 101.419797 123.026109) (xy 101.360492 122.923391) (xy 101.36049 122.923389) (xy 101.360489 122.923387)\r\n\t\t\t\t(xy 101.276613 122.839511) (xy 101.27661 122.839509) (xy 101.276608 122.839507) (xy 101.173889 122.780202)\r\n\t\t\t\t(xy 101.17389 122.780202) (xy 101.150318 122.773886) (xy 101.059309 122.7495) (xy 100.940691 122.7495)\r\n\t\t\t\t(xy 100.870567 122.768289) (xy 100.826109 122.780202) (xy 100.723391 122.839507) (xy 100.639507 122.923391)\r\n\t\t\t\t(xy 100.580202 123.026109) (xy 100.580201 123.026114) (xy 100.5495 123.140691) (xy 74.0005 123.140691)\r\n\t\t\t\t(xy 74.0005 122.540691) (xy 105.9495 122.540691) (xy 105.9495 122.659309) (xy 105.96667 122.723387)\r\n\t\t\t\t(xy 105.980202 122.77389) (xy 106.039507 122.876608) (xy 106.039509 122.87661) (xy 106.039511 122.876613)\r\n\t\t\t\t(xy 106.123387 122.960489) (xy 106.123389 122.96049) (xy 106.123391 122.960492) (xy 106.22611 123.019797)\r\n\t\t\t\t(xy 106.226111 123.019797) (xy 106.226114 123.019799) (xy 106.340691 123.0505) (xy 106.340693 123.0505)\r\n\t\t\t\t(xy 106.459307 123.0505) (xy 106.459309 123.0505) (xy 106.573886 123.019799) (xy 106.573888 123.019797)\r\n\t\t\t\t(xy 106.57389 123.019797) (xy 106.676608 122.960492) (xy 106.676608 122.960491) (xy 106.676613 122.960489)\r\n\t\t\t\t(xy 106.696411 122.940691) (xy 107.9495 122.940691) (xy 107.9495 123.059309) (xy 107.971306 123.140691)\r\n\t\t\t\t(xy 107.980202 123.17389) (xy 108.039507 123.276608) (xy 108.039509 123.27661) (xy 108.039511 123.276613)\r\n\t\t\t\t(xy 108.123387 123.360489) (xy 108.123389 123.36049) (xy 108.123391 123.360492) (xy 108.22611 123.419797)\r\n\t\t\t\t(xy 108.226111 123.419797) (xy 108.226114 123.419799) (xy 108.340691 123.4505) (xy 108.340693 123.4505)\r\n\t\t\t\t(xy 108.459307 123.4505) (xy 108.459309 123.4505) (xy 108.573886 123.419799) (xy 108.573888 123.419797)\r\n\t\t\t\t(xy 108.57389 123.419797) (xy 108.676608 123.360492) (xy 108.676608 123.360491) (xy 108.676613 123.360489)\r\n\t\t\t\t(xy 108.760489 123.276613) (xy 108.819799 123.173886) (xy 108.8505 123.059309) (xy 108.8505 122.940691)\r\n\t\t\t\t(xy 108.819799 122.826114) (xy 108.819797 122.826111) (xy 108.819797 122.826109) (xy 108.760492 122.723391)\r\n\t\t\t\t(xy 108.76049 122.723389) (xy 108.760489 122.723387) (xy 108.676613 122.639511) (xy 108.67661 122.639509)\r\n\t\t\t\t(xy 108.676608 122.639507) (xy 108.573889 122.580202) (xy 108.57389 122.580202) (xy 108.560351 122.576574)\r\n\t\t\t\t(xy 108.459309 122.5495) (xy 108.340691 122.5495) (xy 108.299669 122.560492) (xy 108.226109 122.580202)\r\n\t\t\t\t(xy 108.123391 122.639507) (xy 108.039507 122.723391) (xy 107.980202 122.826109) (xy 107.980201 122.826114)\r\n\t\t\t\t(xy 107.9495 122.940691) (xy 106.696411 122.940691) (xy 106.760489 122.876613) (xy 106.78191 122.839511)\r\n\t\t\t\t(xy 106.819797 122.77389) (xy 106.819797 122.773888) (xy 106.819799 122.773886) (xy 106.8505 122.659309)\r\n\t\t\t\t(xy 106.8505 122.540691) (xy 106.819799 122.426114) (xy 106.79723 122.387025) (xy 106.784509 122.327178)\r\n\t\t\t\t(xy 106.809395 122.271282) (xy 106.862382 122.240689) (xy 106.908587 122.241897) (xy 106.940691 122.2505)\r\n\t\t\t\t(xy 106.940693 122.2505) (xy 107.059307 122.2505) (xy 107.059309 122.250' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'5) (xy 107.173886 122.219799)\r\n\t\t\t\t(xy 107.173888 122.219797) (xy 107.17389 122.219797) (xy 107.276608 122.160492) (xy 107.276608 122.160491)\r\n\t\t\t\t(xy 107.276613 122.160489) (xy 107.296411 122.140691) (xy 108.9495 122.140691) (xy 108.9495 122.259309)\r\n\t\t\t\t(xy 108.96667 122.323387) (xy 108.980202 122.37389) (xy 109.039507 122.476608) (xy 109.039509 122.47661)\r\n\t\t\t\t(xy 109.039511 122.476613) (xy 109.123387 122.560489) (xy 109.123389 122.56049) (xy 109.123391 122.560492)\r\n\t\t\t\t(xy 109.22611 122.619797) (xy 109.226111 122.619797) (xy 109.226114 122.619799) (xy 109.340691 122.6505)\r\n\t\t\t\t(xy 109.340693 122.6505) (xy 109.459307 122.6505) (xy 109.459309 122.6505) (xy 109.573886 122.619799)\r\n\t\t\t\t(xy 109.573888 122.619797) (xy 109.57389 122.619797) (xy 109.676608 122.560492) (xy 109.676608 122.560491)\r\n\t\t\t\t(xy 109.676613 122.560489) (xy 109.760489 122.476613) (xy 109.819799 122.373886) (xy 109.8505 122.259309)\r\n\t\t\t\t(xy 109.8505 122.140691) (xy 110.5495 122.140691) (xy 110.5495 122.259309) (xy 110.56667 122.323387)\r\n\t\t\t\t(xy 110.580202 122.37389) (xy 110.639507 122.476608) (xy 110.639509 122.47661) (xy 110.639511 122.476613)\r\n\t\t\t\t(xy 110.723387 122.560489) (xy 110.723389 122.56049) (xy 110.723391 122.560492) (xy 110.82611 122.619797)\r\n\t\t\t\t(xy 110.826111 122.619797) (xy 110.826114 122.619799) (xy 110.940691 122.6505) (xy 110.940693 122.6505)\r\n\t\t\t\t(xy 111.059307 122.6505) (xy 111.059309 122.6505) (xy 111.173886 122.619799) (xy 111.173888 122.619797)\r\n\t\t\t\t(xy 111.17389 122.619797) (xy 111.276608 122.560492) (xy 111.276608 122.560491) (xy 111.276613 122.560489)\r\n\t\t\t\t(xy 111.360489 122.476613) (xy 111.419799 122.373886) (xy 111.4505 122.259309) (xy 111.4505 122.140691)\r\n\t\t\t\t(xy 112.1495 122.140691) (xy 112.1495 122.259309) (xy 112.16667 122.323387) (xy 112.180202 122.37389)\r\n\t\t\t\t(xy 112.239507 122.476608) (xy 112.239509 122.47661) (xy 112.239511 122.476613) (xy 112.323387 122.560489)\r\n\t\t\t\t(xy 112.323389 122.56049) (xy 112.323391 122.560492) (xy 112.42611 122.619797) (xy 112.426111 122.619797)\r\n\t\t\t\t(xy 112.426114 122.619799) (xy 112.540691 122.6505) (xy 112.540693 122.6505) (xy 112.659307 122.6505)\r\n\t\t\t\t(xy 112.659309 122.6505) (xy 112.773886 122.619799) (xy 112.773888 122.619797) (xy 112.77389 122.619797)\r\n\t\t\t\t(xy 112.876608 122.560492) (xy 112.876608 122.560491) (xy 112.876613 122.560489) (xy 112.960489 122.476613)\r\n\t\t\t\t(xy 113.019799 122.373886) (xy 113.0505 122.259309) (xy 113.0505 122.140691) (xy 113.7495 122.140691)\r\n\t\t\t\t(xy 113.7495 122.259309) (xy 113.76667 122.323387) (xy 113.780202 122.37389) (xy 113.839507 122.476608)\r\n\t\t\t\t(xy 113.839509 122.47661) (xy 113.839511 122.476613) (xy 113.923387 122.560489) (xy 113.923389 122.56049)\r\n\t\t\t\t(xy 113.923391 122.560492) (xy 114.02611 122.619797) (xy 114.026111 122.619797) (xy 114.026114 122.619799)\r\n\t\t\t\t(xy 114.140691 122.6505) (xy 114.140693 122.6505) (xy 114.259307 122.6505) (xy 114.259309 122.6505)\r\n\t\t\t\t(xy 114.373886 122.619799) (xy 114.373888 122.619797) (xy 114.37389 122.619797) (xy 114.476608 122.560492)\r\n\t\t\t\t(xy 114.476608 122.560491) (xy 114.476613 122.560489) (xy 114.560489 122.476613) (xy 114.619799 122.373886)\r\n\t\t\t\t(xy 114.6505 122.259309) (xy 114.6505 122.140691) (xy 115.3495 122.140691) (xy 115.3495 122.259309)\r\n\t\t\t\t(xy 115.36667 122.323387) (xy 115.380202 122.37389) (xy 115.439507 122.476608) (xy 115.439509 122.47661)\r\n\t\t\t\t(xy 115.439511 122.476613) (xy 115.523387 122.560489) (xy 115.523389 122.56049) (xy 115.523391 122.560492)\r\n\t\t\t\t(xy 115.62611 122.619797) (xy 115.626111 122.619797) (xy 115.626114 122.619799) (xy 115.740691 122.6505)\r\n\t\t\t\t(xy 115.740693 122.6505) (xy 115.859307 122.6505) (xy 115.859309 122.6505) (xy 115.973886 122.619799)\r\n\t\t\t\t(xy 115.973888 122.619797) (xy 115.97389 122.619797) (xy 116.076608 122.560492) (xy 116.076608 122.560491)\r\n\t\t\t\t(xy 116.076613 122.560489) (xy 116.160489 122.476613) (xy 116.219799 122.373886) (xy 116.2505 122.259309)\r\n\t\t\t\t(xy 116.2505 122.140691) (xy 116.9495 122.140691) (xy 116.9495 122.259309) (xy 116.96667 122.323387)\r\n\t\t\t\t(xy 116.980202 122.37389) (xy 117.039507 122.476608) (xy 117.039509 122.47661) (xy 117.039511 122.476613)\r\n\t\t\t\t(xy 117.123387 122.560489) (xy 117.123389 122.56049) (xy 117.123391 122.560492) (xy 117.22611 122.619797)\r\n\t\t\t\t(xy 117.226111 122.619797) (xy 117.226114 122.619799) (xy 117.340691 122.6505) (xy 117.340693 122.6505)\r\n\t\t\t\t(xy 117.459307 122.6505) (xy 117.459309 122.6505) (xy 117.573886 122.619799) (xy 117.573888 122.619797)\r\n\t\t\t\t(xy 117.57389 122.619797) (xy 117.676608 122.560492) (xy 117.676608 122.560491) (xy 117.676613 122.560489)\r\n\t\t\t\t(xy 117.760489 122.476613) (xy 117.819799 122.373886) (xy 117.8505 122.259309) (xy 117.8505 122.140691)\r\n\t\t\t\t(xy 118.5495 122.140691) (xy 118.5495 122.259309) (xy 118.56667 122.323387) (xy 118.580202 122.37389)\r\n\t\t\t\t(xy 118.639507 122.476608) (xy 118.639509 122.47661) (xy 118.639511 122.476613) (xy 118.723387 122.560489)\r\n\t\t\t\t(xy 118.723389 122.56049) (xy 118.723391 122.560492) (xy 118.82611 122.619797) (xy 118.826111 122.619797)\r\n\t\t\t\t(xy 118.826114 122.619799) (xy 118.940691 122.6505) (xy 118.940693 122.6505) (xy 119.059307 122.6505)\r\n\t\t\t\t(xy 119.059309 122.6505) (xy 119.173886 122.619799) (xy 119.173888 122.619797) (xy 119.17389 122.619797)\r\n\t\t\t\t(xy 119.276608 122.560492) (xy 119.276608 122.560491) (xy 119.276613 122.560489) (xy 119.360489 122.476613)\r\n\t\t\t\t(xy 119.419799 122.373886) (xy 119.4505 122.259309) (xy 119.4505 122.140691) (xy 120.1495 122.140691)\r\n\t\t\t\t(xy 120.1495 122.259309) (xy 120.16667 122.323387) (xy 120.180202 122.37389) (xy 120.239507 122.476608)\r\n\t\t\t\t(xy 120.239509 122.47661) (xy 120.239511 122.476613) (xy 120.323387 122.560489) (xy 120.323389 122.56049)\r\n\t\t\t\t(xy 120.323391 122.560492) (xy 120.42611 122.619797) (xy 120.426111 122.619797) (xy 120.426114 122.619799)\r\n\t\t\t\t(xy 120.540691 122.6505) (xy 120.540693 122.6505) (xy 120.659307 122.6505) (xy 120.659309 122.6505)\r\n\t\t\t\t(xy 120.773886 122.619799) (xy 120.773888 122.619797) (xy 120.77389 122.619797) (xy 120.876608 122.560492)\r\n\t\t\t\t(xy 120.876608 122.560491) (xy 120.876613 122.560489) (xy 120.960489 122.476613) (xy 121.019799 122.373886)\r\n\t\t\t\t(xy 121.0505 122.259309) (xy 121.0505 122.140691) (xy 121.7495 122.140691) (xy 121.7495 122.259309)\r\n\t\t\t\t(xy 121.76667 122.323387) (xy 121.780202 122.37389) (xy 121.839507 122.476608) (xy 121.839509 122.47661)\r\n\t\t\t\t(xy 121.839511 122.476613) (xy 121.923387 122.560489) (xy 121.923389 122.56049) (xy 121.923391 122.560492)\r\n\t\t\t\t(xy 122.02611 122.619797) (xy 122.026111 122.619797) (xy 122.026114 122.619799) (xy 122.140691 122.6505)\r\n\t\t\t\t(xy 122.140693 122.6505) (xy 122.259307 122.6505) (xy 122.259309 122.6505) (xy 122.373886 122.619799)\r\n\t\t\t\t(xy 122.373888 122.619797) (xy 122.37389 122.619797) (xy 122.476608 122.560492) (xy 122.476608 122.560491)\r\n\t\t\t\t(xy 122.476613 122.560489) (xy 122.560489 122.476613) (xy 122.619799 122.373886) (xy 122.6505 122.259309)\r\n\t\t\t\t(xy 122.6505 122.140691) (xy 123.3495 122.140691) (xy 123.3495 122.259309) (xy 123.36667 122.323387)\r\n\t\t\t\t(xy 123.380202 122.37389) (xy 123.439507 122.476608) (xy 123.439509 122.47661) (xy 123.439511 122.476613)\r\n\t\t\t\t(xy 123.523387 122.560489) (xy 123.523389 122.56049) (xy 123.523391 122.560492) (xy 123.62611 122.619797)\r\n\t\t\t\t(xy 123.626111 122.619797) (xy 123.626114 122.619799) (xy 123.740691 122.6505) (xy 123.740693 122.6505)\r\n\t\t\t\t(xy 123.859307 122.6505) (xy 123.859309 122.6505) (xy 123.973886 122.619799) (xy 123.973888 122.619797)\r\n\t\t\t\t(xy 123.97389 122.619797) (xy 124.076608 122.560492) (xy 124.076608 122.560491) (xy 124.076613 122.560489)\r\n\t\t\t\t(xy 124.160489 122.476613) (xy 124.219799 122.373886) (xy 124.2505 122.259309) (xy 124.2505 122.140691)\r\n\t\t\t\t(xy 124.9495 122.140691) (xy 124.9495 122.259309) (xy 124.96667 122.323387) (xy 124.980202 122.37389)\r\n\t\t\t\t(xy 125.039507 122.476608) (xy 125.039509 122.47661) (xy 125.039511 122.476613) (xy 125.123387 122.560489)\r\n\t\t\t\t(xy 125.123389 122.56049) (xy 125.123391 122.560492) (xy 125.22611 122.619797) (xy 125.226111 122.619797)\r\n\t\t\t\t(xy 125.226114 122.619799) (xy 125.340691 122.6505) (xy 125.340693 122.6505) (xy 125.459307 122.6505)\r\n\t\t\t\t(xy 125.459309 122.6505) (xy 125.573886 122.619799) (xy 125.573888 122.619797) (xy 125.57389 122.619797)\r\n\t\t\t\t(xy 125.676608 122.560492) (xy 125' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'.676608 122.560491) (xy 125.676613 122.560489) (xy 125.760489 122.476613)\r\n\t\t\t\t(xy 125.819799 122.373886) (xy 125.8505 122.259309) (xy 125.8505 122.140691) (xy 126.5495 122.140691)\r\n\t\t\t\t(xy 126.5495 122.259309) (xy 126.56667 122.323387) (xy 126.580202 122.37389) (xy 126.639507 122.476608)\r\n\t\t\t\t(xy 126.639509 122.47661) (xy 126.639511 122.476613) (xy 126.723387 122.560489) (xy 126.723389 122.56049)\r\n\t\t\t\t(xy 126.723391 122.560492) (xy 126.82611 122.619797) (xy 126.826111 122.619797) (xy 126.826114 122.619799)\r\n\t\t\t\t(xy 126.940691 122.6505) (xy 126.940693 122.6505) (xy 127.059307 122.6505) (xy 127.059309 122.6505)\r\n\t\t\t\t(xy 127.173886 122.619799) (xy 127.173888 122.619797) (xy 127.17389 122.619797) (xy 127.276608 122.560492)\r\n\t\t\t\t(xy 127.276608 122.560491) (xy 127.276613 122.560489) (xy 127.360489 122.476613) (xy 127.419799 122.373886)\r\n\t\t\t\t(xy 127.4505 122.259309) (xy 127.4505 122.140691) (xy 128.1495 122.140691) (xy 128.1495 122.259309)\r\n\t\t\t\t(xy 128.16667 122.323387) (xy 128.180202 122.37389) (xy 128.239507 122.476608) (xy 128.239509 122.47661)\r\n\t\t\t\t(xy 128.239511 122.476613) (xy 128.323387 122.560489) (xy 128.323389 122.56049) (xy 128.323391 122.560492)\r\n\t\t\t\t(xy 128.42611 122.619797) (xy 128.426111 122.619797) (xy 128.426114 122.619799) (xy 128.540691 122.6505)\r\n\t\t\t\t(xy 128.540693 122.6505) (xy 128.659307 122.6505) (xy 128.659309 122.6505) (xy 128.773886 122.619799)\r\n\t\t\t\t(xy 128.773888 122.619797) (xy 128.77389 122.619797) (xy 128.876608 122.560492) (xy 128.876608 122.560491)\r\n\t\t\t\t(xy 128.876613 122.560489) (xy 128.960489 122.476613) (xy 129.019799 122.373886) (xy 129.0505 122.259309)\r\n\t\t\t\t(xy 129.0505 122.140691) (xy 129.7495 122.140691) (xy 129.7495 122.259309) (xy 129.76667 122.323387)\r\n\t\t\t\t(xy 129.780202 122.37389) (xy 129.839507 122.476608) (xy 129.839509 122.47661) (xy 129.839511 122.476613)\r\n\t\t\t\t(xy 129.923387 122.560489) (xy 129.923389 122.56049) (xy 129.923391 122.560492) (xy 130.02611 122.619797)\r\n\t\t\t\t(xy 130.026111 122.619797) (xy 130.026114 122.619799) (xy 130.140691 122.6505) (xy 130.140693 122.6505)\r\n\t\t\t\t(xy 130.259307 122.6505) (xy 130.259309 122.6505) (xy 130.373886 122.619799) (xy 130.373888 122.619797)\r\n\t\t\t\t(xy 130.37389 122.619797) (xy 130.476608 122.560492) (xy 130.476608 122.560491) (xy 130.476613 122.560489)\r\n\t\t\t\t(xy 130.560489 122.476613) (xy 130.619799 122.373886) (xy 130.6505 122.259309) (xy 130.6505 122.140691)\r\n\t\t\t\t(xy 131.3495 122.140691) (xy 131.3495 122.259309) (xy 131.36667 122.323387) (xy 131.380202 122.37389)\r\n\t\t\t\t(xy 131.439507 122.476608) (xy 131.439509 122.47661) (xy 131.439511 122.476613) (xy 131.523387 122.560489)\r\n\t\t\t\t(xy 131.523389 122.56049) (xy 131.523391 122.560492) (xy 131.62611 122.619797) (xy 131.626111 122.619797)\r\n\t\t\t\t(xy 131.626114 122.619799) (xy 131.740691 122.6505) (xy 131.740693 122.6505) (xy 131.859307 122.6505)\r\n\t\t\t\t(xy 131.859309 122.6505) (xy 131.973886 122.619799) (xy 131.973888 122.619797) (xy 131.97389 122.619797)\r\n\t\t\t\t(xy 132.076608 122.560492) (xy 132.076608 122.560491) (xy 132.076613 122.560489) (xy 132.160489 122.476613)\r\n\t\t\t\t(xy 132.219799 122.373886) (xy 132.2505 122.259309) (xy 132.2505 122.140691) (xy 132.9495 122.140691)\r\n\t\t\t\t(xy 132.9495 122.259309) (xy 132.96667 122.323387) (xy 132.980202 122.37389) (xy 133.039507 122.476608)\r\n\t\t\t\t(xy 133.039509 122.47661) (xy 133.039511 122.476613) (xy 133.123387 122.560489) (xy 133.123389 122.56049)\r\n\t\t\t\t(xy 133.123391 122.560492) (xy 133.22611 122.619797) (xy 133.226111 122.619797) (xy 133.226114 122.619799)\r\n\t\t\t\t(xy 133.340691 122.6505) (xy 133.340693 122.6505) (xy 133.459307 122.6505) (xy 133.459309 122.6505)\r\n\t\t\t\t(xy 133.573886 122.619799) (xy 133.573888 122.619797) (xy 133.57389 122.619797) (xy 133.676608 122.560492)\r\n\t\t\t\t(xy 133.676608 122.560491) (xy 133.676613 122.560489) (xy 133.760489 122.476613) (xy 133.819799 122.373886)\r\n\t\t\t\t(xy 133.8505 122.259309) (xy 133.8505 122.140691) (xy 134.5495 122.140691) (xy 134.5495 122.259309)\r\n\t\t\t\t(xy 134.56667 122.323387) (xy 134.580202 122.37389) (xy 134.639507 122.476608) (xy 134.639509 122.47661)\r\n\t\t\t\t(xy 134.639511 122.476613) (xy 134.723387 122.560489) (xy 134.723389 122.56049) (xy 134.723391 122.560492)\r\n\t\t\t\t(xy 134.82611 122.619797) (xy 134.826111 122.619797) (xy 134.826114 122.619799) (xy 134.940691 122.6505)\r\n\t\t\t\t(xy 134.940693 122.6505) (xy 135.059307 122.6505) (xy 135.059309 122.6505) (xy 135.173886 122.619799)\r\n\t\t\t\t(xy 135.173888 122.619797) (xy 135.17389 122.619797) (xy 135.276608 122.560492) (xy 135.276608 122.560491)\r\n\t\t\t\t(xy 135.276613 122.560489) (xy 135.360489 122.476613) (xy 135.419799 122.373886) (xy 135.4505 122.259309)\r\n\t\t\t\t(xy 135.4505 122.140691) (xy 136.1495 122.140691) (xy 136.1495 122.259309) (xy 136.16667 122.323387)\r\n\t\t\t\t(xy 136.180202 122.37389) (xy 136.239507 122.476608) (xy 136.239509 122.47661) (xy 136.239511 122.476613)\r\n\t\t\t\t(xy 136.323387 122.560489) (xy 136.323389 122.56049) (xy 136.323391 122.560492) (xy 136.42611 122.619797)\r\n\t\t\t\t(xy 136.426111 122.619797) (xy 136.426114 122.619799) (xy 136.540691 122.6505) (xy 136.540693 122.6505)\r\n\t\t\t\t(xy 136.659307 122.6505) (xy 136.659309 122.6505) (xy 136.773886 122.619799) (xy 136.773888 122.619797)\r\n\t\t\t\t(xy 136.77389 122.619797) (xy 136.876608 122.560492) (xy 136.876608 122.560491) (xy 136.876613 122.560489)\r\n\t\t\t\t(xy 136.960489 122.476613) (xy 137.019799 122.373886) (xy 137.0505 122.259309) (xy 137.0505 122.140691)\r\n\t\t\t\t(xy 137.7495 122.140691) (xy 137.7495 122.259309) (xy 137.76667 122.323387) (xy 137.780202 122.37389)\r\n\t\t\t\t(xy 137.839507 122.476608) (xy 137.839509 122.47661) (xy 137.839511 122.476613) (xy 137.923387 122.560489)\r\n\t\t\t\t(xy 137.923389 122.56049) (xy 137.923391 122.560492) (xy 138.02611 122.619797) (xy 138.026111 122.619797)\r\n\t\t\t\t(xy 138.026114 122.619799) (xy 138.140691 122.6505) (xy 138.140693 122.6505) (xy 138.259307 122.6505)\r\n\t\t\t\t(xy 138.259309 122.6505) (xy 138.373886 122.619799) (xy 138.373888 122.619797) (xy 138.37389 122.619797)\r\n\t\t\t\t(xy 138.476608 122.560492) (xy 138.476608 122.560491) (xy 138.476613 122.560489) (xy 138.560489 122.476613)\r\n\t\t\t\t(xy 138.619799 122.373886) (xy 138.6505 122.259309) (xy 138.6505 122.140691) (xy 139.3495 122.140691)\r\n\t\t\t\t(xy 139.3495 122.259309) (xy 139.36667 122.323387) (xy 139.380202 122.37389) (xy 139.439507 122.476608)\r\n\t\t\t\t(xy 139.439509 122.47661) (xy 139.439511 122.476613) (xy 139.523387 122.560489) (xy 139.523389 122.56049)\r\n\t\t\t\t(xy 139.523391 122.560492) (xy 139.62611 122.619797) (xy 139.626111 122.619797) (xy 139.626114 122.619799)\r\n\t\t\t\t(xy 139.740691 122.6505) (xy 139.740693 122.6505) (xy 139.859307 122.6505) (xy 139.859309 122.6505)\r\n\t\t\t\t(xy 139.973886 122.619799) (xy 139.973888 122.619797) (xy 139.97389 122.619797) (xy 140.076608 122.560492)\r\n\t\t\t\t(xy 140.076608 122.560491) (xy 140.076613 122.560489) (xy 140.160489 122.476613) (xy 140.219799 122.373886)\r\n\t\t\t\t(xy 140.2505 122.259309) (xy 140.2505 122.140691) (xy 140.9495 122.140691) (xy 140.9495 122.259309)\r\n\t\t\t\t(xy 140.96667 122.323387) (xy 140.980202 122.37389) (xy 141.039507 122.476608) (xy 141.039509 122.47661)\r\n\t\t\t\t(xy 141.039511 122.476613) (xy 141.123387 122.560489) (xy 141.123389 122.56049) (xy 141.123391 122.560492)\r\n\t\t\t\t(xy 141.22611 122.619797) (xy 141.226111 122.619797) (xy 141.226114 122.619799) (xy 141.340691 122.6505)\r\n\t\t\t\t(xy 141.340693 122.6505) (xy 141.459307 122.6505) (xy 141.459309 122.6505) (xy 141.573886 122.619799)\r\n\t\t\t\t(xy 141.573888 122.619797) (xy 141.57389 122.619797) (xy 141.676608 122.560492) (xy 141.676608 122.560491)\r\n\t\t\t\t(xy 141.676613 122.560489) (xy 141.760489 122.476613) (xy 141.819799 122.373886) (xy 141.8505 122.259309)\r\n\t\t\t\t(xy 141.8505 122.140691) (xy 142.5495 122.140691) (xy 142.5495 122.259309) (xy 142.56667 122.323387)\r\n\t\t\t\t(xy 142.580202 122.37389) (xy 142.639507 122.476608) (xy 142.639509 122.47661) (xy 142.639511 122.476613)\r\n\t\t\t\t(xy 142.723387 122.560489) (xy 142.723389 122.56049) (xy 142.723391 122.560492) (xy 142.82611 122.619797)\r\n\t\t\t\t(xy 142.826111 122.619797) (xy 142.826114 122.619799) (xy 142.940691 122.6505) (xy 142.940693 122.6505)\r\n\t\t\t\t(xy 143.059307 122.6505) (xy 143.059309 122.6505) (xy 143.173886 122.619799) (xy 143.173888 122.619797)\r\n\t\t\t\t(xy 143.17389 122.619797) (xy 143.276608 122.560492) (xy 143.276608 122.560491) (xy 143.276613 122.560489' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b')\r\n\t\t\t\t(xy 143.360489 122.476613) (xy 143.419799 122.373886) (xy 143.4505 122.259309) (xy 143.4505 122.140691)\r\n\t\t\t\t(xy 144.1495 122.140691) (xy 144.1495 122.259309) (xy 144.16667 122.323387) (xy 144.180202 122.37389)\r\n\t\t\t\t(xy 144.239507 122.476608) (xy 144.239509 122.47661) (xy 144.239511 122.476613) (xy 144.323387 122.560489)\r\n\t\t\t\t(xy 144.323389 122.56049) (xy 144.323391 122.560492) (xy 144.42611 122.619797) (xy 144.426111 122.619797)\r\n\t\t\t\t(xy 144.426114 122.619799) (xy 144.540691 122.6505) (xy 144.540693 122.6505) (xy 144.659307 122.6505)\r\n\t\t\t\t(xy 144.659309 122.6505) (xy 144.773886 122.619799) (xy 144.773888 122.619797) (xy 144.77389 122.619797)\r\n\t\t\t\t(xy 144.876608 122.560492) (xy 144.876608 122.560491) (xy 144.876613 122.560489) (xy 144.960489 122.476613)\r\n\t\t\t\t(xy 145.019799 122.373886) (xy 145.0505 122.259309) (xy 145.0505 122.140691) (xy 145.019799 122.026114)\r\n\t\t\t\t(xy 145.019797 122.026111) (xy 145.019797 122.026109) (xy 144.960492 121.923391) (xy 144.96049 121.923389)\r\n\t\t\t\t(xy 144.960489 121.923387) (xy 144.876613 121.839511) (xy 144.87661 121.839509) (xy 144.876608 121.839507)\r\n\t\t\t\t(xy 144.773889 121.780202) (xy 144.77389 121.780202) (xy 144.750318 121.773886) (xy 144.659309 121.7495)\r\n\t\t\t\t(xy 144.540691 121.7495) (xy 144.470567 121.768289) (xy 144.426109 121.780202) (xy 144.323391 121.839507)\r\n\t\t\t\t(xy 144.239507 121.923391) (xy 144.180202 122.026109) (xy 144.166671 122.076608) (xy 144.1495 122.140691)\r\n\t\t\t\t(xy 143.4505 122.140691) (xy 143.419799 122.026114) (xy 143.419797 122.026111) (xy 143.419797 122.026109)\r\n\t\t\t\t(xy 143.360492 121.923391) (xy 143.36049 121.923389) (xy 143.360489 121.923387) (xy 143.276613 121.839511)\r\n\t\t\t\t(xy 143.27661 121.839509) (xy 143.276608 121.839507) (xy 143.173889 121.780202) (xy 143.17389 121.780202)\r\n\t\t\t\t(xy 143.150318 121.773886) (xy 143.059309 121.7495) (xy 142.940691 121.7495) (xy 142.870567 121.768289)\r\n\t\t\t\t(xy 142.826109 121.780202) (xy 142.723391 121.839507) (xy 142.639507 121.923391) (xy 142.580202 122.026109)\r\n\t\t\t\t(xy 142.566671 122.076608) (xy 142.5495 122.140691) (xy 141.8505 122.140691) (xy 141.819799 122.026114)\r\n\t\t\t\t(xy 141.819797 122.026111) (xy 141.819797 122.026109) (xy 141.760492 121.923391) (xy 141.76049 121.923389)\r\n\t\t\t\t(xy 141.760489 121.923387) (xy 141.676613 121.839511) (xy 141.67661 121.839509) (xy 141.676608 121.839507)\r\n\t\t\t\t(xy 141.573889 121.780202) (xy 141.57389 121.780202) (xy 141.550318 121.773886) (xy 141.459309 121.7495)\r\n\t\t\t\t(xy 141.340691 121.7495) (xy 141.270567 121.768289) (xy 141.226109 121.780202) (xy 141.123391 121.839507)\r\n\t\t\t\t(xy 141.039507 121.923391) (xy 140.980202 122.026109) (xy 140.966671 122.076608) (xy 140.9495 122.140691)\r\n\t\t\t\t(xy 140.2505 122.140691) (xy 140.219799 122.026114) (xy 140.219797 122.026111) (xy 140.219797 122.026109)\r\n\t\t\t\t(xy 140.160492 121.923391) (xy 140.16049 121.923389) (xy 140.160489 121.923387) (xy 140.076613 121.839511)\r\n\t\t\t\t(xy 140.07661 121.839509) (xy 140.076608 121.839507) (xy 139.973889 121.780202) (xy 139.97389 121.780202)\r\n\t\t\t\t(xy 139.950318 121.773886) (xy 139.859309 121.7495) (xy 139.740691 121.7495) (xy 139.670567 121.768289)\r\n\t\t\t\t(xy 139.626109 121.780202) (xy 139.523391 121.839507) (xy 139.439507 121.923391) (xy 139.380202 122.026109)\r\n\t\t\t\t(xy 139.366671 122.076608) (xy 139.3495 122.140691) (xy 138.6505 122.140691) (xy 138.619799 122.026114)\r\n\t\t\t\t(xy 138.619797 122.026111) (xy 138.619797 122.026109) (xy 138.560492 121.923391) (xy 138.56049 121.923389)\r\n\t\t\t\t(xy 138.560489 121.923387) (xy 138.476613 121.839511) (xy 138.47661 121.839509) (xy 138.476608 121.839507)\r\n\t\t\t\t(xy 138.373889 121.780202) (xy 138.37389 121.780202) (xy 138.350318 121.773886) (xy 138.259309 121.7495)\r\n\t\t\t\t(xy 138.140691 121.7495) (xy 138.070567 121.768289) (xy 138.026109 121.780202) (xy 137.923391 121.839507)\r\n\t\t\t\t(xy 137.839507 121.923391) (xy 137.780202 122.026109) (xy 137.766671 122.076608) (xy 137.7495 122.140691)\r\n\t\t\t\t(xy 137.0505 122.140691) (xy 137.019799 122.026114) (xy 137.019797 122.026111) (xy 137.019797 122.026109)\r\n\t\t\t\t(xy 136.960492 121.923391) (xy 136.96049 121.923389) (xy 136.960489 121.923387) (xy 136.876613 121.839511)\r\n\t\t\t\t(xy 136.87661 121.839509) (xy 136.876608 121.839507) (xy 136.773889 121.780202) (xy 136.77389 121.780202)\r\n\t\t\t\t(xy 136.750318 121.773886) (xy 136.659309 121.7495) (xy 136.540691 121.7495) (xy 136.470567 121.768289)\r\n\t\t\t\t(xy 136.426109 121.780202) (xy 136.323391 121.839507) (xy 136.239507 121.923391) (xy 136.180202 122.026109)\r\n\t\t\t\t(xy 136.166671 122.076608) (xy 136.1495 122.140691) (xy 135.4505 122.140691) (xy 135.419799 122.026114)\r\n\t\t\t\t(xy 135.419797 122.026111) (xy 135.419797 122.026109) (xy 135.360492 121.923391) (xy 135.36049 121.923389)\r\n\t\t\t\t(xy 135.360489 121.923387) (xy 135.276613 121.839511) (xy 135.27661 121.839509) (xy 135.276608 121.839507)\r\n\t\t\t\t(xy 135.173889 121.780202) (xy 135.17389 121.780202) (xy 135.150318 121.773886) (xy 135.059309 121.7495)\r\n\t\t\t\t(xy 134.940691 121.7495) (xy 134.870567 121.768289) (xy 134.826109 121.780202) (xy 134.723391 121.839507)\r\n\t\t\t\t(xy 134.639507 121.923391) (xy 134.580202 122.026109) (xy 134.566671 122.076608) (xy 134.5495 122.140691)\r\n\t\t\t\t(xy 133.8505 122.140691) (xy 133.819799 122.026114) (xy 133.819797 122.026111) (xy 133.819797 122.026109)\r\n\t\t\t\t(xy 133.760492 121.923391) (xy 133.76049 121.923389) (xy 133.760489 121.923387) (xy 133.676613 121.839511)\r\n\t\t\t\t(xy 133.67661 121.839509) (xy 133.676608 121.839507) (xy 133.573889 121.780202) (xy 133.57389 121.780202)\r\n\t\t\t\t(xy 133.550318 121.773886) (xy 133.459309 121.7495) (xy 133.340691 121.7495) (xy 133.270567 121.768289)\r\n\t\t\t\t(xy 133.226109 121.780202) (xy 133.123391 121.839507) (xy 133.039507 121.923391) (xy 132.980202 122.026109)\r\n\t\t\t\t(xy 132.966671 122.076608) (xy 132.9495 122.140691) (xy 132.2505 122.140691) (xy 132.219799 122.026114)\r\n\t\t\t\t(xy 132.219797 122.026111) (xy 132.219797 122.026109) (xy 132.160492 121.923391) (xy 132.16049 121.923389)\r\n\t\t\t\t(xy 132.160489 121.923387) (xy 132.076613 121.839511) (xy 132.07661 121.839509) (xy 132.076608 121.839507)\r\n\t\t\t\t(xy 131.973889 121.780202) (xy 131.97389 121.780202) (xy 131.950318 121.773886) (xy 131.859309 121.7495)\r\n\t\t\t\t(xy 131.740691 121.7495) (xy 131.670567 121.768289) (xy 131.626109 121.780202) (xy 131.523391 121.839507)\r\n\t\t\t\t(xy 131.439507 121.923391) (xy 131.380202 122.026109) (xy 131.366671 122.076608) (xy 131.3495 122.140691)\r\n\t\t\t\t(xy 130.6505 122.140691) (xy 130.619799 122.026114) (xy 130.619797 122.026111) (xy 130.619797 122.026109)\r\n\t\t\t\t(xy 130.560492 121.923391) (xy 130.56049 121.923389) (xy 130.560489 121.923387) (xy 130.476613 121.839511)\r\n\t\t\t\t(xy 130.47661 121.839509) (xy 130.476608 121.839507) (xy 130.373889 121.780202) (xy 130.37389 121.780202)\r\n\t\t\t\t(xy 130.350318 121.773886) (xy 130.259309 121.7495) (xy 130.140691 121.7495) (xy 130.070567 121.768289)\r\n\t\t\t\t(xy 130.026109 121.780202) (xy 129.923391 121.839507) (xy 129.839507 121.923391) (xy 129.780202 122.026109)\r\n\t\t\t\t(xy 129.766671 122.076608) (xy 129.7495 122.140691) (xy 129.0505 122.140691) (xy 129.019799 122.026114)\r\n\t\t\t\t(xy 129.019797 122.026111) (xy 129.019797 122.026109) (xy 128.960492 121.923391) (xy 128.96049 121.923389)\r\n\t\t\t\t(xy 128.960489 121.923387) (xy 128.876613 121.839511) (xy 128.87661 121.839509) (xy 128.876608 121.839507)\r\n\t\t\t\t(xy 128.773889 121.780202) (xy 128.77389 121.780202) (xy 128.750318 121.773886) (xy 128.659309 121.7495)\r\n\t\t\t\t(xy 128.540691 121.7495) (xy 128.470567 121.768289) (xy 128.426109 121.780202) (xy 128.323391 121.839507)\r\n\t\t\t\t(xy 128.239507 121.923391) (xy 128.180202 122.026109) (xy 128.166671 122.076608) (xy 128.1495 122.140691)\r\n\t\t\t\t(xy 127.4505 122.140691) (xy 127.419799 122.026114) (xy 127.419797 122.026111) (xy 127.419797 122.026109)\r\n\t\t\t\t(xy 127.360492 121.923391) (xy 127.36049 121.923389) (xy 127.360489 121.923387) (xy 127.276613 121.839511)\r\n\t\t\t\t(xy 127.27661 121.839509) (xy 127.276608 121.839507) (xy 127.173889 121.780202) (xy 127.17389 121.780202)\r\n\t\t\t\t(xy 127.150318 121.773886) (xy 127.059309 121.7495) (xy 126.940691 121.7495) (xy 126.870567 121.768289)\r\n\t\t\t\t(xy 126.826109 121.780202) (xy 126.723391 121.839507) (xy 126.639507 121.923391) (xy 126.580202 122.026109)\r\n\t\t\t\t(xy 126.566671 122.076608) (xy 126.5495 122.140691) (xy 125.8505 122.140691) (xy 125.81979' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'9 122.026114)\r\n\t\t\t\t(xy 125.819797 122.026111) (xy 125.819797 122.026109) (xy 125.760492 121.923391) (xy 125.76049 121.923389)\r\n\t\t\t\t(xy 125.760489 121.923387) (xy 125.676613 121.839511) (xy 125.67661 121.839509) (xy 125.676608 121.839507)\r\n\t\t\t\t(xy 125.573889 121.780202) (xy 125.57389 121.780202) (xy 125.550318 121.773886) (xy 125.459309 121.7495)\r\n\t\t\t\t(xy 125.340691 121.7495) (xy 125.270567 121.768289) (xy 125.226109 121.780202) (xy 125.123391 121.839507)\r\n\t\t\t\t(xy 125.039507 121.923391) (xy 124.980202 122.026109) (xy 124.966671 122.076608) (xy 124.9495 122.140691)\r\n\t\t\t\t(xy 124.2505 122.140691) (xy 124.219799 122.026114) (xy 124.219797 122.026111) (xy 124.219797 122.026109)\r\n\t\t\t\t(xy 124.160492 121.923391) (xy 124.16049 121.923389) (xy 124.160489 121.923387) (xy 124.076613 121.839511)\r\n\t\t\t\t(xy 124.07661 121.839509) (xy 124.076608 121.839507) (xy 123.973889 121.780202) (xy 123.97389 121.780202)\r\n\t\t\t\t(xy 123.950318 121.773886) (xy 123.859309 121.7495) (xy 123.740691 121.7495) (xy 123.670567 121.768289)\r\n\t\t\t\t(xy 123.626109 121.780202) (xy 123.523391 121.839507) (xy 123.439507 121.923391) (xy 123.380202 122.026109)\r\n\t\t\t\t(xy 123.366671 122.076608) (xy 123.3495 122.140691) (xy 122.6505 122.140691) (xy 122.619799 122.026114)\r\n\t\t\t\t(xy 122.619797 122.026111) (xy 122.619797 122.026109) (xy 122.560492 121.923391) (xy 122.56049 121.923389)\r\n\t\t\t\t(xy 122.560489 121.923387) (xy 122.476613 121.839511) (xy 122.47661 121.839509) (xy 122.476608 121.839507)\r\n\t\t\t\t(xy 122.373889 121.780202) (xy 122.37389 121.780202) (xy 122.350318 121.773886) (xy 122.259309 121.7495)\r\n\t\t\t\t(xy 122.140691 121.7495) (xy 122.070567 121.768289) (xy 122.026109 121.780202) (xy 121.923391 121.839507)\r\n\t\t\t\t(xy 121.839507 121.923391) (xy 121.780202 122.026109) (xy 121.766671 122.076608) (xy 121.7495 122.140691)\r\n\t\t\t\t(xy 121.0505 122.140691) (xy 121.019799 122.026114) (xy 121.019797 122.026111) (xy 121.019797 122.026109)\r\n\t\t\t\t(xy 120.960492 121.923391) (xy 120.96049 121.923389) (xy 120.960489 121.923387) (xy 120.876613 121.839511)\r\n\t\t\t\t(xy 120.87661 121.839509) (xy 120.876608 121.839507) (xy 120.773889 121.780202) (xy 120.77389 121.780202)\r\n\t\t\t\t(xy 120.750318 121.773886) (xy 120.659309 121.7495) (xy 120.540691 121.7495) (xy 120.470567 121.768289)\r\n\t\t\t\t(xy 120.426109 121.780202) (xy 120.323391 121.839507) (xy 120.239507 121.923391) (xy 120.180202 122.026109)\r\n\t\t\t\t(xy 120.166671 122.076608) (xy 120.1495 122.140691) (xy 119.4505 122.140691) (xy 119.419799 122.026114)\r\n\t\t\t\t(xy 119.419797 122.026111) (xy 119.419797 122.026109) (xy 119.360492 121.923391) (xy 119.36049 121.923389)\r\n\t\t\t\t(xy 119.360489 121.923387) (xy 119.276613 121.839511) (xy 119.27661 121.839509) (xy 119.276608 121.839507)\r\n\t\t\t\t(xy 119.173889 121.780202) (xy 119.17389 121.780202) (xy 119.150318 121.773886) (xy 119.059309 121.7495)\r\n\t\t\t\t(xy 118.940691 121.7495) (xy 118.870567 121.768289) (xy 118.826109 121.780202) (xy 118.723391 121.839507)\r\n\t\t\t\t(xy 118.639507 121.923391) (xy 118.580202 122.026109) (xy 118.566671 122.076608) (xy 118.5495 122.140691)\r\n\t\t\t\t(xy 117.8505 122.140691) (xy 117.819799 122.026114) (xy 117.819797 122.026111) (xy 117.819797 122.026109)\r\n\t\t\t\t(xy 117.760492 121.923391) (xy 117.76049 121.923389) (xy 117.760489 121.923387) (xy 117.676613 121.839511)\r\n\t\t\t\t(xy 117.67661 121.839509) (xy 117.676608 121.839507) (xy 117.573889 121.780202) (xy 117.57389 121.780202)\r\n\t\t\t\t(xy 117.550318 121.773886) (xy 117.459309 121.7495) (xy 117.340691 121.7495) (xy 117.270567 121.768289)\r\n\t\t\t\t(xy 117.226109 121.780202) (xy 117.123391 121.839507) (xy 117.039507 121.923391) (xy 116.980202 122.026109)\r\n\t\t\t\t(xy 116.966671 122.076608) (xy 116.9495 122.140691) (xy 116.2505 122.140691) (xy 116.219799 122.026114)\r\n\t\t\t\t(xy 116.219797 122.026111) (xy 116.219797 122.026109) (xy 116.160492 121.923391) (xy 116.16049 121.923389)\r\n\t\t\t\t(xy 116.160489 121.923387) (xy 116.076613 121.839511) (xy 116.07661 121.839509) (xy 116.076608 121.839507)\r\n\t\t\t\t(xy 115.973889 121.780202) (xy 115.97389 121.780202) (xy 115.950318 121.773886) (xy 115.859309 121.7495)\r\n\t\t\t\t(xy 115.740691 121.7495) (xy 115.670567 121.768289) (xy 115.626109 121.780202) (xy 115.523391 121.839507)\r\n\t\t\t\t(xy 115.439507 121.923391) (xy 115.380202 122.026109) (xy 115.366671 122.076608) (xy 115.3495 122.140691)\r\n\t\t\t\t(xy 114.6505 122.140691) (xy 114.619799 122.026114) (xy 114.619797 122.026111) (xy 114.619797 122.026109)\r\n\t\t\t\t(xy 114.560492 121.923391) (xy 114.56049 121.923389) (xy 114.560489 121.923387) (xy 114.476613 121.839511)\r\n\t\t\t\t(xy 114.47661 121.839509) (xy 114.476608 121.839507) (xy 114.373889 121.780202) (xy 114.37389 121.780202)\r\n\t\t\t\t(xy 114.350318 121.773886) (xy 114.259309 121.7495) (xy 114.140691 121.7495) (xy 114.070567 121.768289)\r\n\t\t\t\t(xy 114.026109 121.780202) (xy 113.923391 121.839507) (xy 113.839507 121.923391) (xy 113.780202 122.026109)\r\n\t\t\t\t(xy 113.766671 122.076608) (xy 113.7495 122.140691) (xy 113.0505 122.140691) (xy 113.019799 122.026114)\r\n\t\t\t\t(xy 113.019797 122.026111) (xy 113.019797 122.026109) (xy 112.960492 121.923391) (xy 112.96049 121.923389)\r\n\t\t\t\t(xy 112.960489 121.923387) (xy 112.876613 121.839511) (xy 112.87661 121.839509) (xy 112.876608 121.839507)\r\n\t\t\t\t(xy 112.773889 121.780202) (xy 112.77389 121.780202) (xy 112.750318 121.773886) (xy 112.659309 121.7495)\r\n\t\t\t\t(xy 112.540691 121.7495) (xy 112.470567 121.768289) (xy 112.426109 121.780202) (xy 112.323391 121.839507)\r\n\t\t\t\t(xy 112.239507 121.923391) (xy 112.180202 122.026109) (xy 112.166671 122.076608) (xy 112.1495 122.140691)\r\n\t\t\t\t(xy 111.4505 122.140691) (xy 111.419799 122.026114) (xy 111.419797 122.026111) (xy 111.419797 122.026109)\r\n\t\t\t\t(xy 111.360492 121.923391) (xy 111.36049 121.923389) (xy 111.360489 121.923387) (xy 111.276613 121.839511)\r\n\t\t\t\t(xy 111.27661 121.839509) (xy 111.276608 121.839507) (xy 111.173889 121.780202) (xy 111.17389 121.780202)\r\n\t\t\t\t(xy 111.150318 121.773886) (xy 111.059309 121.7495) (xy 110.940691 121.7495) (xy 110.870567 121.768289)\r\n\t\t\t\t(xy 110.826109 121.780202) (xy 110.723391 121.839507) (xy 110.639507 121.923391) (xy 110.580202 122.026109)\r\n\t\t\t\t(xy 110.566671 122.076608) (xy 110.5495 122.140691) (xy 109.8505 122.140691) (xy 109.819799 122.026114)\r\n\t\t\t\t(xy 109.819797 122.026111) (xy 109.819797 122.026109) (xy 109.760492 121.923391) (xy 109.76049 121.923389)\r\n\t\t\t\t(xy 109.760489 121.923387) (xy 109.676613 121.839511) (xy 109.67661 121.839509) (xy 109.676608 121.839507)\r\n\t\t\t\t(xy 109.573889 121.780202) (xy 109.57389 121.780202) (xy 109.550318 121.773886) (xy 109.459309 121.7495)\r\n\t\t\t\t(xy 109.340691 121.7495) (xy 109.270567 121.768289) (xy 109.226109 121.780202) (xy 109.123391 121.839507)\r\n\t\t\t\t(xy 109.039507 121.923391) (xy 108.980202 122.026109) (xy 108.966671 122.076608) (xy 108.9495 122.140691)\r\n\t\t\t\t(xy 107.296411 122.140691) (xy 107.360489 122.076613) (xy 107.362678 122.072822) (xy 107.419797 121.97389)\r\n\t\t\t\t(xy 107.419797 121.973888) (xy 107.419799 121.973886) (xy 107.4505 121.859309) (xy 107.4505 121.740691)\r\n\t\t\t\t(xy 107.419799 121.626114) (xy 107.419797 121.626111) (xy 107.419797 121.626109) (xy 107.360492 121.523391)\r\n\t\t\t\t(xy 107.36049 121.523389) (xy 107.360489 121.523387) (xy 107.276613 121.439511) (xy 107.27661 121.439509)\r\n\t\t\t\t(xy 107.276608 121.439507) (xy 107.173889 121.380202) (xy 107.17389 121.380202) (xy 107.150318 121.373886)\r\n\t\t\t\t(xy 107.059309 121.3495) (xy 106.940691 121.3495) (xy 106.899669 121.360492) (xy 106.826109 121.380202)\r\n\t\t\t\t(xy 106.723391 121.439507) (xy 106.639507 121.523391) (xy 106.580202 121.626109) (xy 106.580201 121.626114)\r\n\t\t\t\t(xy 106.5495 121.740691) (xy 106.5495 121.859309) (xy 106.580201 121.973886) (xy 106.580202 121.973888)\r\n\t\t\t\t(xy 106.602768 122.012973) (xy 106.61549 122.072822) (xy 106.590604 122.128717) (xy 106.537616 122.15931)\r\n\t\t\t\t(xy 106.49141 122.158101) (xy 106.459309 122.1495) (xy 106.340691 122.1495) (xy 106.299669 122.160492)\r\n\t\t\t\t(xy 106.226109 122.180202) (xy 106.123391 122.239507) (xy 106.039507 122.323391) (xy 105.980202 122.426109)\r\n\t\t\t\t(xy 105.980201 122.426114) (xy 105.9495 122.540691) (xy 74.0005 122.540691) (xy 74.0005 121.540691)\r\n\t\t\t\t(xy 100.5495 121.540691) (xy 100.5495 121.659309) (xy 100.558018 121.691098) (xy 100.580202 121.77389)\r\n\t\t\t\t(xy 100.639507 121.876608) (xy 100.639509 121.87661) (xy 100.639511 121.876613)' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' (xy 100.723387 121.960489)\r\n\t\t\t\t(xy 100.723389 121.96049) (xy 100.723391 121.960492) (xy 100.82611 122.019797) (xy 100.826111 122.019797)\r\n\t\t\t\t(xy 100.826114 122.019799) (xy 100.940691 122.0505) (xy 100.940693 122.0505) (xy 101.059307 122.0505)\r\n\t\t\t\t(xy 101.059309 122.0505) (xy 101.173886 122.019799) (xy 101.173888 122.019797) (xy 101.17389 122.019797)\r\n\t\t\t\t(xy 101.276608 121.960492) (xy 101.276608 121.960491) (xy 101.276613 121.960489) (xy 101.360489 121.876613)\r\n\t\t\t\t(xy 101.38191 121.839511) (xy 101.419797 121.77389) (xy 101.419797 121.773888) (xy 101.419799 121.773886)\r\n\t\t\t\t(xy 101.4505 121.659309) (xy 101.4505 121.540691) (xy 101.419799 121.426114) (xy 101.419797 121.426111)\r\n\t\t\t\t(xy 101.419797 121.426109) (xy 101.360492 121.323391) (xy 101.36049 121.323389) (xy 101.360489 121.323387)\r\n\t\t\t\t(xy 101.276613 121.239511) (xy 101.27661 121.239509) (xy 101.276608 121.239507) (xy 101.242713 121.219938)\r\n\t\t\t\t(xy 101.242712 121.219938) (xy 101.173888 121.180202) (xy 101.173887 121.180201) (xy 101.173886 121.180201)\r\n\t\t\t\t(xy 101.059309 121.1495) (xy 100.940691 121.1495) (xy 100.870567 121.168289) (xy 100.826109 121.180202)\r\n\t\t\t\t(xy 100.723391 121.239507) (xy 100.639507 121.323391) (xy 100.580202 121.426109) (xy 100.580201 121.426114)\r\n\t\t\t\t(xy 100.5495 121.540691) (xy 74.0005 121.540691) (xy 74.0005 121.140691) (xy 104.9495 121.140691)\r\n\t\t\t\t(xy 104.9495 121.259309) (xy 104.954137 121.276613) (xy 104.980202 121.37389) (xy 105.039507 121.476608)\r\n\t\t\t\t(xy 105.039509 121.47661) (xy 105.039511 121.476613) (xy 105.123387 121.560489) (xy 105.123389 121.56049)\r\n\t\t\t\t(xy 105.123391 121.560492) (xy 105.22611 121.619797) (xy 105.226111 121.619797) (xy 105.226114 121.619799)\r\n\t\t\t\t(xy 105.340691 121.6505) (xy 105.340693 121.6505) (xy 105.459307 121.6505) (xy 105.459309 121.6505)\r\n\t\t\t\t(xy 105.573886 121.619799) (xy 105.573888 121.619797) (xy 105.57389 121.619797) (xy 105.676608 121.560492)\r\n\t\t\t\t(xy 105.676608 121.560491) (xy 105.676613 121.560489) (xy 105.760489 121.476613) (xy 105.760492 121.476608)\r\n\t\t\t\t(xy 105.819797 121.37389) (xy 105.819797 121.373888) (xy 105.819799 121.373886) (xy 105.8505 121.259309)\r\n\t\t\t\t(xy 105.8505 121.140691) (xy 105.819799 121.026114) (xy 105.819797 121.026111) (xy 105.819797 121.026109)\r\n\t\t\t\t(xy 105.795313 120.983702) (xy 105.77048 120.940691) (xy 107.5495 120.940691) (xy 107.5495 121.059309)\r\n\t\t\t\t(xy 107.571306 121.140691) (xy 107.580202 121.17389) (xy 107.639507 121.276608) (xy 107.639509 121.27661)\r\n\t\t\t\t(xy 107.639511 121.276613) (xy 107.723387 121.360489) (xy 107.723389 121.36049) (xy 107.723391 121.360492)\r\n\t\t\t\t(xy 107.82611 121.419797) (xy 107.826111 121.419797) (xy 107.826114 121.419799) (xy 107.940691 121.4505)\r\n\t\t\t\t(xy 107.940693 121.4505) (xy 108.059307 121.4505) (xy 108.059309 121.4505) (xy 108.173886 121.419799)\r\n\t\t\t\t(xy 108.173888 121.419797) (xy 108.17389 121.419797) (xy 108.276608 121.360492) (xy 108.276608 121.360491)\r\n\t\t\t\t(xy 108.276613 121.360489) (xy 108.360489 121.276613) (xy 108.38191 121.239511) (xy 108.419797 121.17389)\r\n\t\t\t\t(xy 108.419797 121.173888) (xy 108.419799 121.173886) (xy 108.428694 121.140691) (xy 145.3495 121.140691)\r\n\t\t\t\t(xy 145.3495 121.259309) (xy 145.354137 121.276613) (xy 145.380202 121.37389) (xy 145.439507 121.476608)\r\n\t\t\t\t(xy 145.439509 121.47661) (xy 145.439511 121.476613) (xy 145.523387 121.560489) (xy 145.523389 121.56049)\r\n\t\t\t\t(xy 145.523391 121.560492) (xy 145.62611 121.619797) (xy 145.626111 121.619797) (xy 145.626114 121.619799)\r\n\t\t\t\t(xy 145.740691 121.6505) (xy 145.740693 121.6505) (xy 145.859307 121.6505) (xy 145.859309 121.6505)\r\n\t\t\t\t(xy 145.863409 121.649401) (xy 145.924509 121.652597) (xy 145.972062 121.691098) (xy 145.987904 121.750197)\r\n\t\t\t\t(xy 145.965982 121.807321) (xy 145.938543 121.830759) (xy 145.923391 121.839507) (xy 145.839507 121.923391)\r\n\t\t\t\t(xy 145.780202 122.026109) (xy 145.766671 122.076608) (xy 145.7495 122.140691) (xy 145.7495 122.259309)\r\n\t\t\t\t(xy 145.76667 122.323387) (xy 145.780202 122.37389) (xy 145.839507 122.476608) (xy 145.839509 122.47661)\r\n\t\t\t\t(xy 145.839511 122.476613) (xy 145.923387 122.560489) (xy 145.923389 122.56049) (xy 145.923391 122.560492)\r\n\t\t\t\t(xy 146.02611 122.619797) (xy 146.026111 122.619797) (xy 146.026114 122.619799) (xy 146.140691 122.6505)\r\n\t\t\t\t(xy 146.140693 122.6505) (xy 146.259307 122.6505) (xy 146.259309 122.6505) (xy 146.373886 122.619799)\r\n\t\t\t\t(xy 146.373888 122.619797) (xy 146.37389 122.619797) (xy 146.476608 122.560492) (xy 146.476608 122.560491)\r\n\t\t\t\t(xy 146.476613 122.560489) (xy 146.560489 122.476613) (xy 146.619799 122.373886) (xy 146.6505 122.259309)\r\n\t\t\t\t(xy 146.6505 122.140691) (xy 147.3495 122.140691) (xy 147.3495 122.259309) (xy 147.36667 122.323387)\r\n\t\t\t\t(xy 147.380202 122.37389) (xy 147.439507 122.476608) (xy 147.439509 122.47661) (xy 147.439511 122.476613)\r\n\t\t\t\t(xy 147.523387 122.560489) (xy 147.523389 122.56049) (xy 147.523391 122.560492) (xy 147.62611 122.619797)\r\n\t\t\t\t(xy 147.626111 122.619797) (xy 147.626114 122.619799) (xy 147.740691 122.6505) (xy 147.740693 122.6505)\r\n\t\t\t\t(xy 147.859307 122.6505) (xy 147.859309 122.6505) (xy 147.973886 122.619799) (xy 147.973888 122.619797)\r\n\t\t\t\t(xy 147.97389 122.619797) (xy 148.076608 122.560492) (xy 148.076608 122.560491) (xy 148.076613 122.560489)\r\n\t\t\t\t(xy 148.160489 122.476613) (xy 148.219799 122.373886) (xy 148.2505 122.259309) (xy 148.2505 122.140691)\r\n\t\t\t\t(xy 148.219799 122.026114) (xy 148.219797 122.026111) (xy 148.219797 122.026109) (xy 148.160492 121.923391)\r\n\t\t\t\t(xy 148.16049 121.923389) (xy 148.160489 121.923387) (xy 148.076613 121.839511) (xy 148.07661 121.839509)\r\n\t\t\t\t(xy 148.076608 121.839507) (xy 147.973889 121.780202) (xy 147.97389 121.780202) (xy 147.950318 121.773886)\r\n\t\t\t\t(xy 147.859309 121.7495) (xy 147.740691 121.7495) (xy 147.670567 121.768289) (xy 147.626109 121.780202)\r\n\t\t\t\t(xy 147.523391 121.839507) (xy 147.439507 121.923391) (xy 147.380202 122.026109) (xy 147.366671 122.076608)\r\n\t\t\t\t(xy 147.3495 122.140691) (xy 146.6505 122.140691) (xy 146.619799 122.026114) (xy 146.619797 122.026111)\r\n\t\t\t\t(xy 146.619797 122.026109) (xy 146.560492 121.923391) (xy 146.56049 121.923389) (xy 146.560489 121.923387)\r\n\t\t\t\t(xy 146.476613 121.839511) (xy 146.47661 121.839509) (xy 146.476608 121.839507) (xy 146.373889 121.780202)\r\n\t\t\t\t(xy 146.37389 121.780202) (xy 146.350318 121.773886) (xy 146.259309 121.7495) (xy 146.140691 121.7495)\r\n\t\t\t\t(xy 146.140688 121.7495) (xy 146.136581 121.750601) (xy 146.07548 121.747398) (xy 146.02793 121.708891)\r\n\t\t\t\t(xy 146.012096 121.649791) (xy 146.034024 121.59267) (xy 146.061461 121.569237) (xy 146.076613 121.560489)\r\n\t\t\t\t(xy 146.160489 121.476613) (xy 146.160492 121.476608) (xy 146.219797 121.37389) (xy 146.219797 121.373888)\r\n\t\t\t\t(xy 146.219799 121.373886) (xy 146.2505 121.259309) (xy 146.2505 121.140691) (xy 146.219799 121.026114)\r\n\t\t\t\t(xy 146.219797 121.026111) (xy 146.219797 121.026109) (xy 146.160492 120.923391) (xy 146.16049 120.923389)\r\n\t\t\t\t(xy 146.160489 120.923387) (xy 146.076613 120.839511) (xy 146.07661 120.839509) (xy 146.076608 120.839507)\r\n\t\t\t\t(xy 145.973889 120.780202) (xy 145.97389 120.780202) (xy 145.950318 120.773886) (xy 145.859309 120.7495)\r\n\t\t\t\t(xy 145.740691 120.7495) (xy 145.670567 120.768289) (xy 145.626109 120.780202) (xy 145.523391 120.839507)\r\n\t\t\t\t(xy 145.439507 120.923391) (xy 145.380202 121.026109) (xy 145.380201 121.026114) (xy 145.3495 121.140691)\r\n\t\t\t\t(xy 108.428694 121.140691) (xy 108.4505 121.059309) (xy 108.4505 120.940691) (xy 108.419799 120.826114)\r\n\t\t\t\t(xy 108.419797 120.826111) (xy 108.419797 120.826109) (xy 108.360492 120.723391) (xy 108.36049 120.723389)\r\n\t\t\t\t(xy 108.360489 120.723387) (xy 108.276613 120.639511) (xy 108.27661 120.639509) (xy 108.276608 120.639507)\r\n\t\t\t\t(xy 108.242713 120.619938) (xy 108.242712 120.619938) (xy 108.173888 120.580202) (xy 108.173887 120.580201)\r\n\t\t\t\t(xy 108.173886 120.580201) (xy 108.059309 120.5495) (xy 107.940691 120.5495) (xy 107.899669 120.560492)\r\n\t\t\t\t(xy 107.826109 120.580202) (xy 107.723391 120.639507) (xy 107.639507 120.723391) (xy 107.580202 120.826109)\r\n\t\t\t\t(xy 107.580201 120.826114) (xy 107.5495 120.940691) (xy 105.77048 120.940691) (xy 105.760492 120.923391)\r\n\t\t\t\t(xy 105.76049 120.923389) (xy 105.760489 120.923387) (xy 105.676613 120.839511) (xy 105.67661' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' 120.839509)\r\n\t\t\t\t(xy 105.676608 120.839507) (xy 105.573889 120.780202) (xy 105.57389 120.780202) (xy 105.550318 120.773886)\r\n\t\t\t\t(xy 105.459309 120.7495) (xy 105.340691 120.7495) (xy 105.270567 120.768289) (xy 105.226109 120.780202)\r\n\t\t\t\t(xy 105.123391 120.839507) (xy 105.039507 120.923391) (xy 104.980202 121.026109) (xy 104.980201 121.026114)\r\n\t\t\t\t(xy 104.9495 121.140691) (xy 74.0005 121.140691) (xy 74.0005 119.940691) (xy 75.5495 119.940691)\r\n\t\t\t\t(xy 75.5495 120.059309) (xy 75.570086 120.136137) (xy 75.580202 120.17389) (xy 75.639507 120.276608)\r\n\t\t\t\t(xy 75.639509 120.27661) (xy 75.639511 120.276613) (xy 75.723387 120.360489) (xy 75.723389 120.36049)\r\n\t\t\t\t(xy 75.723391 120.360492) (xy 75.82611 120.419797) (xy 75.826111 120.419797) (xy 75.826114 120.419799)\r\n\t\t\t\t(xy 75.940691 120.4505) (xy 75.940693 120.4505) (xy 76.059307 120.4505) (xy 76.059309 120.4505)\r\n\t\t\t\t(xy 76.173886 120.419799) (xy 76.173888 120.419797) (xy 76.17389 120.419797) (xy 76.276608 120.360492)\r\n\t\t\t\t(xy 76.276608 120.360491) (xy 76.276613 120.360489) (xy 76.360489 120.276613) (xy 76.38191 120.239511)\r\n\t\t\t\t(xy 76.419797 120.17389) (xy 76.419797 120.173888) (xy 76.419799 120.173886) (xy 76.4505 120.059309)\r\n\t\t\t\t(xy 76.4505 119.940691) (xy 79.5495 119.940691) (xy 79.5495 120.059309) (xy 79.570086 120.136137)\r\n\t\t\t\t(xy 79.580202 120.17389) (xy 79.639507 120.276608) (xy 79.639509 120.27661) (xy 79.639511 120.276613)\r\n\t\t\t\t(xy 79.723387 120.360489) (xy 79.723389 120.36049) (xy 79.723391 120.360492) (xy 79.82611 120.419797)\r\n\t\t\t\t(xy 79.826111 120.419797) (xy 79.826114 120.419799) (xy 79.940691 120.4505) (xy 79.940693 120.4505)\r\n\t\t\t\t(xy 80.059307 120.4505) (xy 80.059309 120.4505) (xy 80.173886 120.419799) (xy 80.173888 120.419797)\r\n\t\t\t\t(xy 80.17389 120.419797) (xy 80.276608 120.360492) (xy 80.276608 120.360491) (xy 80.276613 120.360489)\r\n\t\t\t\t(xy 80.360489 120.276613) (xy 80.38191 120.239511) (xy 80.419797 120.17389) (xy 80.419797 120.173888)\r\n\t\t\t\t(xy 80.419799 120.173886) (xy 80.4505 120.059309) (xy 80.4505 119.940691) (xy 83.5495 119.940691)\r\n\t\t\t\t(xy 83.5495 120.059309) (xy 83.570086 120.136137) (xy 83.580202 120.17389) (xy 83.639507 120.276608)\r\n\t\t\t\t(xy 83.639509 120.27661) (xy 83.639511 120.276613) (xy 83.723387 120.360489) (xy 83.723389 120.36049)\r\n\t\t\t\t(xy 83.723391 120.360492) (xy 83.82611 120.419797) (xy 83.826111 120.419797) (xy 83.826114 120.419799)\r\n\t\t\t\t(xy 83.940691 120.4505) (xy 83.940693 120.4505) (xy 84.059307 120.4505) (xy 84.059309 120.4505)\r\n\t\t\t\t(xy 84.173886 120.419799) (xy 84.173888 120.419797) (xy 84.17389 120.419797) (xy 84.276608 120.360492)\r\n\t\t\t\t(xy 84.276608 120.360491) (xy 84.276613 120.360489) (xy 84.360489 120.276613) (xy 84.38191 120.239511)\r\n\t\t\t\t(xy 84.419797 120.17389) (xy 84.419797 120.173888) (xy 84.419799 120.173886) (xy 84.4505 120.059309)\r\n\t\t\t\t(xy 84.4505 119.940691) (xy 87.5495 119.940691) (xy 87.5495 120.059309) (xy 87.570086 120.136137)\r\n\t\t\t\t(xy 87.580202 120.17389) (xy 87.639507 120.276608) (xy 87.639509 120.27661) (xy 87.639511 120.276613)\r\n\t\t\t\t(xy 87.723387 120.360489) (xy 87.723389 120.36049) (xy 87.723391 120.360492) (xy 87.82611 120.419797)\r\n\t\t\t\t(xy 87.826111 120.419797) (xy 87.826114 120.419799) (xy 87.940691 120.4505) (xy 87.940693 120.4505)\r\n\t\t\t\t(xy 88.059307 120.4505) (xy 88.059309 120.4505) (xy 88.173886 120.419799) (xy 88.173888 120.419797)\r\n\t\t\t\t(xy 88.17389 120.419797) (xy 88.276608 120.360492) (xy 88.276608 120.360491) (xy 88.276613 120.360489)\r\n\t\t\t\t(xy 88.360489 120.276613) (xy 88.38191 120.239511) (xy 88.419797 120.17389) (xy 88.419797 120.173888)\r\n\t\t\t\t(xy 88.419799 120.173886) (xy 88.4505 120.059309) (xy 88.4505 119.940691) (xy 91.5495 119.940691)\r\n\t\t\t\t(xy 91.5495 120.059309) (xy 91.570086 120.136137) (xy 91.580202 120.17389) (xy 91.639507 120.276608)\r\n\t\t\t\t(xy 91.639509 120.27661) (xy 91.639511 120.276613) (xy 91.723387 120.360489) (xy 91.723389 120.36049)\r\n\t\t\t\t(xy 91.723391 120.360492) (xy 91.82611 120.419797) (xy 91.826111 120.419797) (xy 91.826114 120.419799)\r\n\t\t\t\t(xy 91.940691 120.4505) (xy 91.940693 120.4505) (xy 92.059307 120.4505) (xy 92.059309 120.4505)\r\n\t\t\t\t(xy 92.173886 120.419799) (xy 92.173888 120.419797) (xy 92.17389 120.419797) (xy 92.276608 120.360492)\r\n\t\t\t\t(xy 92.276608 120.360491) (xy 92.276613 120.360489) (xy 92.360489 120.276613) (xy 92.38191 120.239511)\r\n\t\t\t\t(xy 92.419797 120.17389) (xy 92.419797 120.173888) (xy 92.419799 120.173886) (xy 92.4505 120.059309)\r\n\t\t\t\t(xy 92.4505 119.940691) (xy 99.5495 119.940691) (xy 99.5495 120.059309) (xy 99.570086 120.136137)\r\n\t\t\t\t(xy 99.580202 120.17389) (xy 99.639507 120.276608) (xy 99.639509 120.27661) (xy 99.639511 120.276613)\r\n\t\t\t\t(xy 99.723387 120.360489) (xy 99.723389 120.36049) (xy 99.723391 120.360492) (xy 99.82611 120.419797)\r\n\t\t\t\t(xy 99.826111 120.419797) (xy 99.826114 120.419799) (xy 99.940691 120.4505) (xy 99.940693 120.4505)\r\n\t\t\t\t(xy 100.059307 120.4505) (xy 100.059309 120.4505) (xy 100.173886 120.419799) (xy 100.173888 120.419797)\r\n\t\t\t\t(xy 100.17389 120.419797) (xy 100.276608 120.360492) (xy 100.276608 120.360491) (xy 100.276613 120.360489)\r\n\t\t\t\t(xy 100.360489 120.276613) (xy 100.360492 120.276608) (xy 100.414264 120.183474) (xy 100.459733 120.142533)\r\n\t\t\t\t(xy 100.520584 120.136137) (xy 100.573572 120.16673) (xy 100.585736 120.183474) (xy 100.639507 120.276608)\r\n\t\t\t\t(xy 100.639509 120.27661) (xy 100.639511 120.276613) (xy 100.723387 120.360489) (xy 100.723389 120.36049)\r\n\t\t\t\t(xy 100.723391 120.360492) (xy 100.82611 120.419797) (xy 100.826111 120.419797) (xy 100.826114 120.419799)\r\n\t\t\t\t(xy 100.940691 120.4505) (xy 100.940693 120.4505) (xy 101.059307 120.4505) (xy 101.059309 120.4505)\r\n\t\t\t\t(xy 101.173886 120.419799) (xy 101.173888 120.419797) (xy 101.17389 120.419797) (xy 101.276608 120.360492)\r\n\t\t\t\t(xy 101.276608 120.360491) (xy 101.276613 120.360489) (xy 101.360489 120.276613) (xy 101.419799 120.173886)\r\n\t\t\t\t(xy 101.428694 120.140691) (xy 103.5495 120.140691) (xy 103.5495 120.259309) (xy 103.554137 120.276613)\r\n\t\t\t\t(xy 103.580202 120.37389) (xy 103.639507 120.476608) (xy 103.639509 120.47661) (xy 103.639511 120.476613)\r\n\t\t\t\t(xy 103.723387 120.560489) (xy 103.723389 120.56049) (xy 103.723391 120.560492) (xy 103.82611 120.619797)\r\n\t\t\t\t(xy 103.826111 120.619797) (xy 103.826114 120.619799) (xy 103.940691 120.6505) (xy 103.940693 120.6505)\r\n\t\t\t\t(xy 104.059307 120.6505) (xy 104.059309 120.6505) (xy 104.173886 120.619799) (xy 104.173888 120.619797)\r\n\t\t\t\t(xy 104.17389 120.619797) (xy 104.276608 120.560492) (xy 104.276608 120.560491) (xy 104.276613 120.560489)\r\n\t\t\t\t(xy 104.296411 120.540691) (xy 108.9495 120.540691) (xy 108.9495 120.659309) (xy 108.96667 120.723387)\r\n\t\t\t\t(xy 108.980202 120.77389) (xy 109.039507 120.876608) (xy 109.039509 120.87661) (xy 109.039511 120.876613)\r\n\t\t\t\t(xy 109.123387 120.960489) (xy 109.123389 120.96049) (xy 109.123391 120.960492) (xy 109.22611 121.019797)\r\n\t\t\t\t(xy 109.226111 121.019797) (xy 109.226114 121.019799) (xy 109.340691 121.0505) (xy 109.340693 121.0505)\r\n\t\t\t\t(xy 109.459307 121.0505) (xy 109.459309 121.0505) (xy 109.573886 121.019799) (xy 109.573888 121.019797)\r\n\t\t\t\t(xy 109.57389 121.019797) (xy 109.676608 120.960492) (xy 109.676608 120.960491) (xy 109.676613 120.960489)\r\n\t\t\t\t(xy 109.760489 120.876613) (xy 109.78191 120.839511) (xy 109.819797 120.77389) (xy 109.819797 120.773888)\r\n\t\t\t\t(xy 109.819799 120.773886) (xy 109.8505 120.659309) (xy 109.8505 120.540691) (xy 110.5495 120.540691)\r\n\t\t\t\t(xy 110.5495 120.659309) (xy 110.56667 120.723387) (xy 110.580202 120.77389) (xy 110.639507 120.876608)\r\n\t\t\t\t(xy 110.639509 120.87661) (xy 110.639511 120.876613) (xy 110.723387 120.960489) (xy 110.723389 120.96049)\r\n\t\t\t\t(xy 110.723391 120.960492) (xy 110.82611 121.019797) (xy 110.826111 121.019797) (xy 110.826114 121.019799)\r\n\t\t\t\t(xy 110.940691 121.0505) (xy 110.940693 121.0505) (xy 111.059307 121.0505) (xy 111.059309 121.0505)\r\n\t\t\t\t(xy 111.173886 121.019799) (xy 111.173888 121.019797) (xy 111.17389 121.019797) (xy 111.276608 120.960492)\r\n\t\t\t\t(xy 111.276608 120.960491) (xy 111.276613 120.960489) (xy 111.360489 120.876613) (xy 111.38191 120.839511)\r\n\t\t\t\t(xy 111.419797 120.77389) (xy 111.419797 120.773888) (xy 111.419799 120.773886) (xy 111.4505 120.659309)\r\n\t\t\t\t(xy 111.4505 120.540691) (xy 112.1495 120.540691) (xy 112.1495 120.659309) (xy 112.16' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'667 120.723387)\r\n\t\t\t\t(xy 112.180202 120.77389) (xy 112.239507 120.876608) (xy 112.239509 120.87661) (xy 112.239511 120.876613)\r\n\t\t\t\t(xy 112.323387 120.960489) (xy 112.323389 120.96049) (xy 112.323391 120.960492) (xy 112.42611 121.019797)\r\n\t\t\t\t(xy 112.426111 121.019797) (xy 112.426114 121.019799) (xy 112.540691 121.0505) (xy 112.540693 121.0505)\r\n\t\t\t\t(xy 112.659307 121.0505) (xy 112.659309 121.0505) (xy 112.773886 121.019799) (xy 112.773888 121.019797)\r\n\t\t\t\t(xy 112.77389 121.019797) (xy 112.876608 120.960492) (xy 112.876608 120.960491) (xy 112.876613 120.960489)\r\n\t\t\t\t(xy 112.960489 120.876613) (xy 112.98191 120.839511) (xy 113.019797 120.77389) (xy 113.019797 120.773888)\r\n\t\t\t\t(xy 113.019799 120.773886) (xy 113.0505 120.659309) (xy 113.0505 120.540691) (xy 113.7495 120.540691)\r\n\t\t\t\t(xy 113.7495 120.659309) (xy 113.76667 120.723387) (xy 113.780202 120.77389) (xy 113.839507 120.876608)\r\n\t\t\t\t(xy 113.839509 120.87661) (xy 113.839511 120.876613) (xy 113.923387 120.960489) (xy 113.923389 120.96049)\r\n\t\t\t\t(xy 113.923391 120.960492) (xy 114.02611 121.019797) (xy 114.026111 121.019797) (xy 114.026114 121.019799)\r\n\t\t\t\t(xy 114.140691 121.0505) (xy 114.140693 121.0505) (xy 114.259307 121.0505) (xy 114.259309 121.0505)\r\n\t\t\t\t(xy 114.373886 121.019799) (xy 114.373888 121.019797) (xy 114.37389 121.019797) (xy 114.476608 120.960492)\r\n\t\t\t\t(xy 114.476608 120.960491) (xy 114.476613 120.960489) (xy 114.560489 120.876613) (xy 114.58191 120.839511)\r\n\t\t\t\t(xy 114.619797 120.77389) (xy 114.619797 120.773888) (xy 114.619799 120.773886) (xy 114.6505 120.659309)\r\n\t\t\t\t(xy 114.6505 120.540691) (xy 115.3495 120.540691) (xy 115.3495 120.659309) (xy 115.36667 120.723387)\r\n\t\t\t\t(xy 115.380202 120.77389) (xy 115.439507 120.876608) (xy 115.439509 120.87661) (xy 115.439511 120.876613)\r\n\t\t\t\t(xy 115.523387 120.960489) (xy 115.523389 120.96049) (xy 115.523391 120.960492) (xy 115.62611 121.019797)\r\n\t\t\t\t(xy 115.626111 121.019797) (xy 115.626114 121.019799) (xy 115.740691 121.0505) (xy 115.740693 121.0505)\r\n\t\t\t\t(xy 115.859307 121.0505) (xy 115.859309 121.0505) (xy 115.973886 121.019799) (xy 115.973888 121.019797)\r\n\t\t\t\t(xy 115.97389 121.019797) (xy 116.076608 120.960492) (xy 116.076608 120.960491) (xy 116.076613 120.960489)\r\n\t\t\t\t(xy 116.160489 120.876613) (xy 116.18191 120.839511) (xy 116.219797 120.77389) (xy 116.219797 120.773888)\r\n\t\t\t\t(xy 116.219799 120.773886) (xy 116.2505 120.659309) (xy 116.2505 120.540691) (xy 116.9495 120.540691)\r\n\t\t\t\t(xy 116.9495 120.659309) (xy 116.96667 120.723387) (xy 116.980202 120.77389) (xy 117.039507 120.876608)\r\n\t\t\t\t(xy 117.039509 120.87661) (xy 117.039511 120.876613) (xy 117.123387 120.960489) (xy 117.123389 120.96049)\r\n\t\t\t\t(xy 117.123391 120.960492) (xy 117.22611 121.019797) (xy 117.226111 121.019797) (xy 117.226114 121.019799)\r\n\t\t\t\t(xy 117.340691 121.0505) (xy 117.340693 121.0505) (xy 117.459307 121.0505) (xy 117.459309 121.0505)\r\n\t\t\t\t(xy 117.573886 121.019799) (xy 117.573888 121.019797) (xy 117.57389 121.019797) (xy 117.676608 120.960492)\r\n\t\t\t\t(xy 117.676608 120.960491) (xy 117.676613 120.960489) (xy 117.760489 120.876613) (xy 117.78191 120.839511)\r\n\t\t\t\t(xy 117.819797 120.77389) (xy 117.819797 120.773888) (xy 117.819799 120.773886) (xy 117.8505 120.659309)\r\n\t\t\t\t(xy 117.8505 120.540691) (xy 118.5495 120.540691) (xy 118.5495 120.659309) (xy 118.56667 120.723387)\r\n\t\t\t\t(xy 118.580202 120.77389) (xy 118.639507 120.876608) (xy 118.639509 120.87661) (xy 118.639511 120.876613)\r\n\t\t\t\t(xy 118.723387 120.960489) (xy 118.723389 120.96049) (xy 118.723391 120.960492) (xy 118.82611 121.019797)\r\n\t\t\t\t(xy 118.826111 121.019797) (xy 118.826114 121.019799) (xy 118.940691 121.0505) (xy 118.940693 121.0505)\r\n\t\t\t\t(xy 119.059307 121.0505) (xy 119.059309 121.0505) (xy 119.173886 121.019799) (xy 119.173888 121.019797)\r\n\t\t\t\t(xy 119.17389 121.019797) (xy 119.276608 120.960492) (xy 119.276608 120.960491) (xy 119.276613 120.960489)\r\n\t\t\t\t(xy 119.360489 120.876613) (xy 119.38191 120.839511) (xy 119.419797 120.77389) (xy 119.419797 120.773888)\r\n\t\t\t\t(xy 119.419799 120.773886) (xy 119.4505 120.659309) (xy 119.4505 120.540691) (xy 120.1495 120.540691)\r\n\t\t\t\t(xy 120.1495 120.659309) (xy 120.16667 120.723387) (xy 120.180202 120.77389) (xy 120.239507 120.876608)\r\n\t\t\t\t(xy 120.239509 120.87661) (xy 120.239511 120.876613) (xy 120.323387 120.960489) (xy 120.323389 120.96049)\r\n\t\t\t\t(xy 120.323391 120.960492) (xy 120.42611 121.019797) (xy 120.426111 121.019797) (xy 120.426114 121.019799)\r\n\t\t\t\t(xy 120.540691 121.0505) (xy 120.540693 121.0505) (xy 120.659307 121.0505) (xy 120.659309 121.0505)\r\n\t\t\t\t(xy 120.773886 121.019799) (xy 120.773888 121.019797) (xy 120.77389 121.019797) (xy 120.876608 120.960492)\r\n\t\t\t\t(xy 120.876608 120.960491) (xy 120.876613 120.960489) (xy 120.960489 120.876613) (xy 120.98191 120.839511)\r\n\t\t\t\t(xy 121.019797 120.77389) (xy 121.019797 120.773888) (xy 121.019799 120.773886) (xy 121.0505 120.659309)\r\n\t\t\t\t(xy 121.0505 120.540691) (xy 121.7495 120.540691) (xy 121.7495 120.659309) (xy 121.76667 120.723387)\r\n\t\t\t\t(xy 121.780202 120.77389) (xy 121.839507 120.876608) (xy 121.839509 120.87661) (xy 121.839511 120.876613)\r\n\t\t\t\t(xy 121.923387 120.960489) (xy 121.923389 120.96049) (xy 121.923391 120.960492) (xy 122.02611 121.019797)\r\n\t\t\t\t(xy 122.026111 121.019797) (xy 122.026114 121.019799) (xy 122.140691 121.0505) (xy 122.140693 121.0505)\r\n\t\t\t\t(xy 122.259307 121.0505) (xy 122.259309 121.0505) (xy 122.373886 121.019799) (xy 122.373888 121.019797)\r\n\t\t\t\t(xy 122.37389 121.019797) (xy 122.476608 120.960492) (xy 122.476608 120.960491) (xy 122.476613 120.960489)\r\n\t\t\t\t(xy 122.560489 120.876613) (xy 122.58191 120.839511) (xy 122.619797 120.77389) (xy 122.619797 120.773888)\r\n\t\t\t\t(xy 122.619799 120.773886) (xy 122.6505 120.659309) (xy 122.6505 120.540691) (xy 123.3495 120.540691)\r\n\t\t\t\t(xy 123.3495 120.659309) (xy 123.36667 120.723387) (xy 123.380202 120.77389) (xy 123.439507 120.876608)\r\n\t\t\t\t(xy 123.439509 120.87661) (xy 123.439511 120.876613) (xy 123.523387 120.960489) (xy 123.523389 120.96049)\r\n\t\t\t\t(xy 123.523391 120.960492) (xy 123.62611 121.019797) (xy 123.626111 121.019797) (xy 123.626114 121.019799)\r\n\t\t\t\t(xy 123.740691 121.0505) (xy 123.740693 121.0505) (xy 123.859307 121.0505) (xy 123.859309 121.0505)\r\n\t\t\t\t(xy 123.973886 121.019799) (xy 123.973888 121.019797) (xy 123.97389 121.019797) (xy 124.076608 120.960492)\r\n\t\t\t\t(xy 124.076608 120.960491) (xy 124.076613 120.960489) (xy 124.160489 120.876613) (xy 124.18191 120.839511)\r\n\t\t\t\t(xy 124.219797 120.77389) (xy 124.219797 120.773888) (xy 124.219799 120.773886) (xy 124.2505 120.659309)\r\n\t\t\t\t(xy 124.2505 120.540691) (xy 124.9495 120.540691) (xy 124.9495 120.659309) (xy 124.96667 120.723387)\r\n\t\t\t\t(xy 124.980202 120.77389) (xy 125.039507 120.876608) (xy 125.039509 120.87661) (xy 125.039511 120.876613)\r\n\t\t\t\t(xy 125.123387 120.960489) (xy 125.123389 120.96049) (xy 125.123391 120.960492) (xy 125.22611 121.019797)\r\n\t\t\t\t(xy 125.226111 121.019797) (xy 125.226114 121.019799) (xy 125.340691 121.0505) (xy 125.340693 121.0505)\r\n\t\t\t\t(xy 125.459307 121.0505) (xy 125.459309 121.0505) (xy 125.573886 121.019799) (xy 125.573888 121.019797)\r\n\t\t\t\t(xy 125.57389 121.019797) (xy 125.676608 120.960492) (xy 125.676608 120.960491) (xy 125.676613 120.960489)\r\n\t\t\t\t(xy 125.760489 120.876613) (xy 125.78191 120.839511) (xy 125.819797 120.77389) (xy 125.819797 120.773888)\r\n\t\t\t\t(xy 125.819799 120.773886) (xy 125.8505 120.659309) (xy 125.8505 120.540691) (xy 126.5495 120.540691)\r\n\t\t\t\t(xy 126.5495 120.659309) (xy 126.56667 120.723387) (xy 126.580202 120.77389) (xy 126.639507 120.876608)\r\n\t\t\t\t(xy 126.639509 120.87661) (xy 126.639511 120.876613) (xy 126.723387 120.960489) (xy 126.723389 120.96049)\r\n\t\t\t\t(xy 126.723391 120.960492) (xy 126.82611 121.019797) (xy 126.826111 121.019797) (xy 126.826114 121.019799)\r\n\t\t\t\t(xy 126.940691 121.0505) (xy 126.940693 121.0505) (xy 127.059307 121.0505) (xy 127.059309 121.0505)\r\n\t\t\t\t(xy 127.173886 121.019799) (xy 127.173888 121.019797) (xy 127.17389 121.019797) (xy 127.276608 120.960492)\r\n\t\t\t\t(xy 127.276608 120.960491) (xy 127.276613 120.960489) (xy 127.360489 120.876613) (xy 127.38191 120.839511)\r\n\t\t\t\t(xy 127.419797 120.77389) (xy 127.419797 120.773888) (xy 127.419799 120.773886) (xy 127.4505 120.659309)\r\n\t\t\t\t(xy 127.4505 120.540691) (xy 128.1495 120.' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'540691) (xy 128.1495 120.659309) (xy 128.16667 120.723387)\r\n\t\t\t\t(xy 128.180202 120.77389) (xy 128.239507 120.876608) (xy 128.239509 120.87661) (xy 128.239511 120.876613)\r\n\t\t\t\t(xy 128.323387 120.960489) (xy 128.323389 120.96049) (xy 128.323391 120.960492) (xy 128.42611 121.019797)\r\n\t\t\t\t(xy 128.426111 121.019797) (xy 128.426114 121.019799) (xy 128.540691 121.0505) (xy 128.540693 121.0505)\r\n\t\t\t\t(xy 128.659307 121.0505) (xy 128.659309 121.0505) (xy 128.773886 121.019799) (xy 128.773888 121.019797)\r\n\t\t\t\t(xy 128.77389 121.019797) (xy 128.876608 120.960492) (xy 128.876608 120.960491) (xy 128.876613 120.960489)\r\n\t\t\t\t(xy 128.960489 120.876613) (xy 128.98191 120.839511) (xy 129.019797 120.77389) (xy 129.019797 120.773888)\r\n\t\t\t\t(xy 129.019799 120.773886) (xy 129.0505 120.659309) (xy 129.0505 120.540691) (xy 129.7495 120.540691)\r\n\t\t\t\t(xy 129.7495 120.659309) (xy 129.76667 120.723387) (xy 129.780202 120.77389) (xy 129.839507 120.876608)\r\n\t\t\t\t(xy 129.839509 120.87661) (xy 129.839511 120.876613) (xy 129.923387 120.960489) (xy 129.923389 120.96049)\r\n\t\t\t\t(xy 129.923391 120.960492) (xy 130.02611 121.019797) (xy 130.026111 121.019797) (xy 130.026114 121.019799)\r\n\t\t\t\t(xy 130.140691 121.0505) (xy 130.140693 121.0505) (xy 130.259307 121.0505) (xy 130.259309 121.0505)\r\n\t\t\t\t(xy 130.373886 121.019799) (xy 130.373888 121.019797) (xy 130.37389 121.019797) (xy 130.476608 120.960492)\r\n\t\t\t\t(xy 130.476608 120.960491) (xy 130.476613 120.960489) (xy 130.560489 120.876613) (xy 130.58191 120.839511)\r\n\t\t\t\t(xy 130.619797 120.77389) (xy 130.619797 120.773888) (xy 130.619799 120.773886) (xy 130.6505 120.659309)\r\n\t\t\t\t(xy 130.6505 120.540691) (xy 131.3495 120.540691) (xy 131.3495 120.659309) (xy 131.36667 120.723387)\r\n\t\t\t\t(xy 131.380202 120.77389) (xy 131.439507 120.876608) (xy 131.439509 120.87661) (xy 131.439511 120.876613)\r\n\t\t\t\t(xy 131.523387 120.960489) (xy 131.523389 120.96049) (xy 131.523391 120.960492) (xy 131.62611 121.019797)\r\n\t\t\t\t(xy 131.626111 121.019797) (xy 131.626114 121.019799) (xy 131.740691 121.0505) (xy 131.740693 121.0505)\r\n\t\t\t\t(xy 131.859307 121.0505) (xy 131.859309 121.0505) (xy 131.973886 121.019799) (xy 131.973888 121.019797)\r\n\t\t\t\t(xy 131.97389 121.019797) (xy 132.076608 120.960492) (xy 132.076608 120.960491) (xy 132.076613 120.960489)\r\n\t\t\t\t(xy 132.160489 120.876613) (xy 132.18191 120.839511) (xy 132.219797 120.77389) (xy 132.219797 120.773888)\r\n\t\t\t\t(xy 132.219799 120.773886) (xy 132.2505 120.659309) (xy 132.2505 120.540691) (xy 132.9495 120.540691)\r\n\t\t\t\t(xy 132.9495 120.659309) (xy 132.96667 120.723387) (xy 132.980202 120.77389) (xy 133.039507 120.876608)\r\n\t\t\t\t(xy 133.039509 120.87661) (xy 133.039511 120.876613) (xy 133.123387 120.960489) (xy 133.123389 120.96049)\r\n\t\t\t\t(xy 133.123391 120.960492) (xy 133.22611 121.019797) (xy 133.226111 121.019797) (xy 133.226114 121.019799)\r\n\t\t\t\t(xy 133.340691 121.0505) (xy 133.340693 121.0505) (xy 133.459307 121.0505) (xy 133.459309 121.0505)\r\n\t\t\t\t(xy 133.573886 121.019799) (xy 133.573888 121.019797) (xy 133.57389 121.019797) (xy 133.676608 120.960492)\r\n\t\t\t\t(xy 133.676608 120.960491) (xy 133.676613 120.960489) (xy 133.760489 120.876613) (xy 133.78191 120.839511)\r\n\t\t\t\t(xy 133.819797 120.77389) (xy 133.819797 120.773888) (xy 133.819799 120.773886) (xy 133.8505 120.659309)\r\n\t\t\t\t(xy 133.8505 120.540691) (xy 134.5495 120.540691) (xy 134.5495 120.659309) (xy 134.56667 120.723387)\r\n\t\t\t\t(xy 134.580202 120.77389) (xy 134.639507 120.876608) (xy 134.639509 120.87661) (xy 134.639511 120.876613)\r\n\t\t\t\t(xy 134.723387 120.960489) (xy 134.723389 120.96049) (xy 134.723391 120.960492) (xy 134.82611 121.019797)\r\n\t\t\t\t(xy 134.826111 121.019797) (xy 134.826114 121.019799) (xy 134.940691 121.0505) (xy 134.940693 121.0505)\r\n\t\t\t\t(xy 135.059307 121.0505) (xy 135.059309 121.0505) (xy 135.173886 121.019799) (xy 135.173888 121.019797)\r\n\t\t\t\t(xy 135.17389 121.019797) (xy 135.276608 120.960492) (xy 135.276608 120.960491) (xy 135.276613 120.960489)\r\n\t\t\t\t(xy 135.360489 120.876613) (xy 135.38191 120.839511) (xy 135.419797 120.77389) (xy 135.419797 120.773888)\r\n\t\t\t\t(xy 135.419799 120.773886) (xy 135.4505 120.659309) (xy 135.4505 120.540691) (xy 136.1495 120.540691)\r\n\t\t\t\t(xy 136.1495 120.659309) (xy 136.16667 120.723387) (xy 136.180202 120.77389) (xy 136.239507 120.876608)\r\n\t\t\t\t(xy 136.239509 120.87661) (xy 136.239511 120.876613) (xy 136.323387 120.960489) (xy 136.323389 120.96049)\r\n\t\t\t\t(xy 136.323391 120.960492) (xy 136.42611 121.019797) (xy 136.426111 121.019797) (xy 136.426114 121.019799)\r\n\t\t\t\t(xy 136.540691 121.0505) (xy 136.540693 121.0505) (xy 136.659307 121.0505) (xy 136.659309 121.0505)\r\n\t\t\t\t(xy 136.773886 121.019799) (xy 136.773888 121.019797) (xy 136.77389 121.019797) (xy 136.876608 120.960492)\r\n\t\t\t\t(xy 136.876608 120.960491) (xy 136.876613 120.960489) (xy 136.960489 120.876613) (xy 136.98191 120.839511)\r\n\t\t\t\t(xy 137.019797 120.77389) (xy 137.019797 120.773888) (xy 137.019799 120.773886) (xy 137.0505 120.659309)\r\n\t\t\t\t(xy 137.0505 120.540691) (xy 137.7495 120.540691) (xy 137.7495 120.659309) (xy 137.76667 120.723387)\r\n\t\t\t\t(xy 137.780202 120.77389) (xy 137.839507 120.876608) (xy 137.839509 120.87661) (xy 137.839511 120.876613)\r\n\t\t\t\t(xy 137.923387 120.960489) (xy 137.923389 120.96049) (xy 137.923391 120.960492) (xy 138.02611 121.019797)\r\n\t\t\t\t(xy 138.026111 121.019797) (xy 138.026114 121.019799) (xy 138.140691 121.0505) (xy 138.140693 121.0505)\r\n\t\t\t\t(xy 138.259307 121.0505) (xy 138.259309 121.0505) (xy 138.373886 121.019799) (xy 138.373888 121.019797)\r\n\t\t\t\t(xy 138.37389 121.019797) (xy 138.476608 120.960492) (xy 138.476608 120.960491) (xy 138.476613 120.960489)\r\n\t\t\t\t(xy 138.560489 120.876613) (xy 138.58191 120.839511) (xy 138.619797 120.77389) (xy 138.619797 120.773888)\r\n\t\t\t\t(xy 138.619799 120.773886) (xy 138.6505 120.659309) (xy 138.6505 120.540691) (xy 139.3495 120.540691)\r\n\t\t\t\t(xy 139.3495 120.659309) (xy 139.36667 120.723387) (xy 139.380202 120.77389) (xy 139.439507 120.876608)\r\n\t\t\t\t(xy 139.439509 120.87661) (xy 139.439511 120.876613) (xy 139.523387 120.960489) (xy 139.523389 120.96049)\r\n\t\t\t\t(xy 139.523391 120.960492) (xy 139.62611 121.019797) (xy 139.626111 121.019797) (xy 139.626114 121.019799)\r\n\t\t\t\t(xy 139.740691 121.0505) (xy 139.740693 121.0505) (xy 139.859307 121.0505) (xy 139.859309 121.0505)\r\n\t\t\t\t(xy 139.973886 121.019799) (xy 139.973888 121.019797) (xy 139.97389 121.019797) (xy 140.076608 120.960492)\r\n\t\t\t\t(xy 140.076608 120.960491) (xy 140.076613 120.960489) (xy 140.160489 120.876613) (xy 140.18191 120.839511)\r\n\t\t\t\t(xy 140.219797 120.77389) (xy 140.219797 120.773888) (xy 140.219799 120.773886) (xy 140.2505 120.659309)\r\n\t\t\t\t(xy 140.2505 120.540691) (xy 140.9495 120.540691) (xy 140.9495 120.659309) (xy 140.96667 120.723387)\r\n\t\t\t\t(xy 140.980202 120.77389) (xy 141.039507 120.876608) (xy 141.039509 120.87661) (xy 141.039511 120.876613)\r\n\t\t\t\t(xy 141.123387 120.960489) (xy 141.123389 120.96049) (xy 141.123391 120.960492) (xy 141.22611 121.019797)\r\n\t\t\t\t(xy 141.226111 121.019797) (xy 141.226114 121.019799) (xy 141.340691 121.0505) (xy 141.340693 121.0505)\r\n\t\t\t\t(xy 141.459307 121.0505) (xy 141.459309 121.0505) (xy 141.573886 121.019799) (xy 141.573888 121.019797)\r\n\t\t\t\t(xy 141.57389 121.019797) (xy 141.676608 120.960492) (xy 141.676608 120.960491) (xy 141.676613 120.960489)\r\n\t\t\t\t(xy 141.760489 120.876613) (xy 141.78191 120.839511) (xy 141.819797 120.77389) (xy 141.819797 120.773888)\r\n\t\t\t\t(xy 141.819799 120.773886) (xy 141.8505 120.659309) (xy 141.8505 120.540691) (xy 142.5495 120.540691)\r\n\t\t\t\t(xy 142.5495 120.659309) (xy 142.56667 120.723387) (xy 142.580202 120.77389) (xy 142.639507 120.876608)\r\n\t\t\t\t(xy 142.639509 120.87661) (xy 142.639511 120.876613) (xy 142.723387 120.960489) (xy 142.723389 120.96049)\r\n\t\t\t\t(xy 142.723391 120.960492) (xy 142.82611 121.019797) (xy 142.826111 121.019797) (xy 142.826114 121.019799)\r\n\t\t\t\t(xy 142.940691 121.0505) (xy 142.940693 121.0505) (xy 143.059307 121.0505) (xy 143.059309 121.0505)\r\n\t\t\t\t(xy 143.173886 121.019799) (xy 143.173888 121.019797) (xy 143.17389 121.019797) (xy 143.276608 120.960492)\r\n\t\t\t\t(xy 143.276608 120.960491) (xy 143.276613 120.960489) (xy 143.360489 120.876613) (xy 143.38191 120.839511)\r\n\t\t\t\t(xy 143.419797 120.77389) (xy 143.419797 120.773888) (xy 143.419799 120.773886) (xy 143.4505 120.659309)\r\n\t\t\t' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'\t(xy 143.4505 120.540691) (xy 143.4494 120.536586) (xy 143.452598 120.475488) (xy 143.4911 120.427935)\r\n\t\t\t\t(xy 143.5502 120.412095) (xy 143.607322 120.434018) (xy 143.63076 120.461458) (xy 143.639507 120.476608)\r\n\t\t\t\t(xy 143.639509 120.47661) (xy 143.639511 120.476613) (xy 143.723387 120.560489) (xy 143.723389 120.56049)\r\n\t\t\t\t(xy 143.723391 120.560492) (xy 143.82611 120.619797) (xy 143.826111 120.619797) (xy 143.826114 120.619799)\r\n\t\t\t\t(xy 143.940691 120.6505) (xy 143.940693 120.6505) (xy 144.059307 120.6505) (xy 144.059309 120.6505)\r\n\t\t\t\t(xy 144.173886 120.619799) (xy 144.173888 120.619797) (xy 144.17389 120.619797) (xy 144.276608 120.560492)\r\n\t\t\t\t(xy 144.276608 120.560491) (xy 144.276613 120.560489) (xy 144.360489 120.476613) (xy 144.369239 120.461458)\r\n\t\t\t\t(xy 144.419797 120.37389) (xy 144.419797 120.373888) (xy 144.419799 120.373886) (xy 144.4505 120.259309)\r\n\t\t\t\t(xy 144.4505 120.140691) (xy 146.3495 120.140691) (xy 146.3495 120.259309) (xy 146.354137 120.276613)\r\n\t\t\t\t(xy 146.380202 120.37389) (xy 146.439507 120.476608) (xy 146.439509 120.47661) (xy 146.439511 120.476613)\r\n\t\t\t\t(xy 146.523387 120.560489) (xy 146.523389 120.56049) (xy 146.523391 120.560492) (xy 146.62611 120.619797)\r\n\t\t\t\t(xy 146.626111 120.619797) (xy 146.626114 120.619799) (xy 146.740691 120.6505) (xy 146.740693 120.6505)\r\n\t\t\t\t(xy 146.859307 120.6505) (xy 146.859309 120.6505) (xy 146.973886 120.619799) (xy 146.973888 120.619797)\r\n\t\t\t\t(xy 146.97389 120.619797) (xy 147.076608 120.560492) (xy 147.076608 120.560491) (xy 147.076613 120.560489)\r\n\t\t\t\t(xy 147.160489 120.476613) (xy 147.169237 120.46146) (xy 147.214706 120.420519) (xy 147.275556 120.414123)\r\n\t\t\t\t(xy 147.328545 120.444715) (xy 147.353432 120.500611) (xy 147.350601 120.536581) (xy 147.3495 120.540688)\r\n\t\t\t\t(xy 147.3495 120.540691) (xy 147.3495 120.659309) (xy 147.36667 120.723387) (xy 147.380202 120.77389)\r\n\t\t\t\t(xy 147.439507 120.876608) (xy 147.439509 120.87661) (xy 147.439511 120.876613) (xy 147.523387 120.960489)\r\n\t\t\t\t(xy 147.523389 120.96049) (xy 147.523391 120.960492) (xy 147.62611 121.019797) (xy 147.626111 121.019797)\r\n\t\t\t\t(xy 147.626114 121.019799) (xy 147.740691 121.0505) (xy 147.740693 121.0505) (xy 147.859307 121.0505)\r\n\t\t\t\t(xy 147.859309 121.0505) (xy 147.973886 121.019799) (xy 147.973888 121.019797) (xy 147.97389 121.019797)\r\n\t\t\t\t(xy 148.076608 120.960492) (xy 148.076608 120.960491) (xy 148.076613 120.960489) (xy 148.160489 120.876613)\r\n\t\t\t\t(xy 148.18191 120.839511) (xy 148.219797 120.77389) (xy 148.219797 120.773888) (xy 148.219799 120.773886)\r\n\t\t\t\t(xy 148.2505 120.659309) (xy 148.2505 120.540691) (xy 148.219799 120.426114) (xy 148.219797 120.426111)\r\n\t\t\t\t(xy 148.219797 120.426109) (xy 148.160492 120.323391) (xy 148.16049 120.323389) (xy 148.160489 120.323387)\r\n\t\t\t\t(xy 148.076613 120.239511) (xy 148.07661 120.239509) (xy 148.076608 120.239507) (xy 147.973889 120.180202)\r\n\t\t\t\t(xy 147.97389 120.180202) (xy 147.950318 120.173886) (xy 147.859309 120.1495) (xy 147.740691 120.1495)\r\n\t\t\t\t(xy 147.676388 120.16673) (xy 147.626109 120.180202) (xy 147.523391 120.239507) (xy 147.439507 120.323391)\r\n\t\t\t\t(xy 147.430759 120.338543) (xy 147.385288 120.379482) (xy 147.324437 120.385875) (xy 147.271451 120.35528)\r\n\t\t\t\t(xy 147.246567 120.299383) (xy 147.2494 120.263411) (xy 147.2505 120.259309) (xy 147.2505 120.140691)\r\n\t\t\t\t(xy 147.219799 120.026114) (xy 147.219797 120.026111) (xy 147.219797 120.026109) (xy 147.195313 119.983702)\r\n\t\t\t\t(xy 147.17048 119.940691) (xy 151.5495 119.940691) (xy 151.5495 120.059309) (xy 151.570086 120.136137)\r\n\t\t\t\t(xy 151.580202 120.17389) (xy 151.639507 120.276608) (xy 151.639509 120.27661) (xy 151.639511 120.276613)\r\n\t\t\t\t(xy 151.723387 120.360489) (xy 151.723389 120.36049) (xy 151.723391 120.360492) (xy 151.82611 120.419797)\r\n\t\t\t\t(xy 151.826111 120.419797) (xy 151.826114 120.419799) (xy 151.940691 120.4505) (xy 151.940693 120.4505)\r\n\t\t\t\t(xy 152.059307 120.4505) (xy 152.059309 120.4505) (xy 152.173886 120.419799) (xy 152.173888 120.419797)\r\n\t\t\t\t(xy 152.17389 120.419797) (xy 152.276608 120.360492) (xy 152.276608 120.360491) (xy 152.276613 120.360489)\r\n\t\t\t\t(xy 152.360489 120.276613) (xy 152.38191 120.239511) (xy 152.419797 120.17389) (xy 152.419797 120.173888)\r\n\t\t\t\t(xy 152.419799 120.173886) (xy 152.4505 120.059309) (xy 152.4505 119.940691) (xy 152.419799 119.826114)\r\n\t\t\t\t(xy 152.419797 119.826111) (xy 152.419797 119.826109) (xy 152.360492 119.723391) (xy 152.36049 119.723389)\r\n\t\t\t\t(xy 152.360489 119.723387) (xy 152.276613 119.639511) (xy 152.27661 119.639509) (xy 152.276608 119.639507)\r\n\t\t\t\t(xy 152.173889 119.580202) (xy 152.17389 119.580202) (xy 152.150318 119.573886) (xy 152.059309 119.5495)\r\n\t\t\t\t(xy 151.940691 119.5495) (xy 151.870567 119.568289) (xy 151.826109 119.580202) (xy 151.723391 119.639507)\r\n\t\t\t\t(xy 151.639507 119.723391) (xy 151.580202 119.826109) (xy 151.580201 119.826114) (xy 151.5495 119.940691)\r\n\t\t\t\t(xy 147.17048 119.940691) (xy 147.160492 119.923391) (xy 147.16049 119.923389) (xy 147.160489 119.923387)\r\n\t\t\t\t(xy 147.076613 119.839511) (xy 147.07661 119.839509) (xy 147.076608 119.839507) (xy 146.973889 119.780202)\r\n\t\t\t\t(xy 146.97389 119.780202) (xy 146.960351 119.776574) (xy 146.859309 119.7495) (xy 146.740691 119.7495)\r\n\t\t\t\t(xy 146.699669 119.760492) (xy 146.626109 119.780202) (xy 146.523391 119.839507) (xy 146.439507 119.923391)\r\n\t\t\t\t(xy 146.380202 120.026109) (xy 146.380201 120.026114) (xy 146.3495 120.140691) (xy 144.4505 120.140691)\r\n\t\t\t\t(xy 144.419799 120.026114) (xy 144.419797 120.026111) (xy 144.419797 120.026109) (xy 144.360492 119.923391)\r\n\t\t\t\t(xy 144.36049 119.923389) (xy 144.360489 119.923387) (xy 144.276613 119.839511) (xy 144.27661 119.839509)\r\n\t\t\t\t(xy 144.276608 119.839507) (xy 144.173889 119.780202) (xy 144.17389 119.780202) (xy 144.160351 119.776574)\r\n\t\t\t\t(xy 144.059309 119.7495) (xy 143.940691 119.7495) (xy 143.899669 119.760492) (xy 143.826109 119.780202)\r\n\t\t\t\t(xy 143.723391 119.839507) (xy 143.639507 119.923391) (xy 143.580202 120.026109) (xy 143.580201 120.026114)\r\n\t\t\t\t(xy 143.5495 120.140691) (xy 143.5495 120.259309) (xy 143.5506 120.263417) (xy 143.547399 120.324517)\r\n\t\t\t\t(xy 143.508893 120.372067) (xy 143.449793 120.387903) (xy 143.392671 120.365977) (xy 143.369238 120.33854)\r\n\t\t\t\t(xy 143.36049 120.323389) (xy 143.360489 120.323387) (xy 143.276613 120.239511) (xy 143.27661 120.239509)\r\n\t\t\t\t(xy 143.276608 120.239507) (xy 143.173889 120.180202) (xy 143.17389 120.180202) (xy 143.150318 120.173886)\r\n\t\t\t\t(xy 143.059309 120.1495) (xy 142.940691 120.1495) (xy 142.876388 120.16673) (xy 142.826109 120.180202)\r\n\t\t\t\t(xy 142.723391 120.239507) (xy 142.639507 120.323391) (xy 142.580202 120.426109) (xy 142.56667 120.476613)\r\n\t\t\t\t(xy 142.5495 120.540691) (xy 141.8505 120.540691) (xy 141.819799 120.426114) (xy 141.819797 120.426111)\r\n\t\t\t\t(xy 141.819797 120.426109) (xy 141.760492 120.323391) (xy 141.76049 120.323389) (xy 141.760489 120.323387)\r\n\t\t\t\t(xy 141.676613 120.239511) (xy 141.67661 120.239509) (xy 141.676608 120.239507) (xy 141.573889 120.180202)\r\n\t\t\t\t(xy 141.57389 120.180202) (xy 141.550318 120.173886) (xy 141.459309 120.1495) (xy 141.340691 120.1495)\r\n\t\t\t\t(xy 141.276388 120.16673) (xy 141.226109 120.180202) (xy 141.123391 120.239507) (xy 141.039507 120.323391)\r\n\t\t\t\t(xy 140.980202 120.426109) (xy 140.96667 120.476613) (xy 140.9495 120.540691) (xy 140.2505 120.540691)\r\n\t\t\t\t(xy 140.219799 120.426114) (xy 140.219797 120.426111) (xy 140.219797 120.426109) (xy 140.160492 120.323391)\r\n\t\t\t\t(xy 140.16049 120.323389) (xy 140.160489 120.323387) (xy 140.076613 120.239511) (xy 140.07661 120.239509)\r\n\t\t\t\t(xy 140.076608 120.239507) (xy 139.973889 120.180202) (xy 139.97389 120.180202) (xy 139.950318 120.173886)\r\n\t\t\t\t(xy 139.859309 120.1495) (xy 139.740691 120.1495) (xy 139.676388 120.16673) (xy 139.626109 120.180202)\r\n\t\t\t\t(xy 139.523391 120.239507) (xy 139.439507 120.323391) (xy 139.380202 120.426109) (xy 139.36667 120.476613)\r\n\t\t\t\t(xy 139.3495 120.540691) (xy 138.6505 120.540691) (xy 138.619799 120.426114) (xy 138.619797 120.426111)\r\n\t\t\t\t(xy 138.619797 120.426109) (xy 138.560492 120.323391) (xy 138.56049 120.323389) (xy 138.560489 120.323387)\r\n\t\t\t\t(xy 138.476613 120.239511) (xy 138.47661 120.239509) (xy 138.476608 120.239507) (xy 138.373889 120.180202)\r\n\t\t\t\t(xy 138.37389 ' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'120.180202) (xy 138.350318 120.173886) (xy 138.259309 120.1495) (xy 138.140691 120.1495)\r\n\t\t\t\t(xy 138.076388 120.16673) (xy 138.026109 120.180202) (xy 137.923391 120.239507) (xy 137.839507 120.323391)\r\n\t\t\t\t(xy 137.780202 120.426109) (xy 137.76667 120.476613) (xy 137.7495 120.540691) (xy 137.0505 120.540691)\r\n\t\t\t\t(xy 137.019799 120.426114) (xy 137.019797 120.426111) (xy 137.019797 120.426109) (xy 136.960492 120.323391)\r\n\t\t\t\t(xy 136.96049 120.323389) (xy 136.960489 120.323387) (xy 136.876613 120.239511) (xy 136.87661 120.239509)\r\n\t\t\t\t(xy 136.876608 120.239507) (xy 136.773889 120.180202) (xy 136.77389 120.180202) (xy 136.750318 120.173886)\r\n\t\t\t\t(xy 136.659309 120.1495) (xy 136.540691 120.1495) (xy 136.476388 120.16673) (xy 136.426109 120.180202)\r\n\t\t\t\t(xy 136.323391 120.239507) (xy 136.239507 120.323391) (xy 136.180202 120.426109) (xy 136.16667 120.476613)\r\n\t\t\t\t(xy 136.1495 120.540691) (xy 135.4505 120.540691) (xy 135.419799 120.426114) (xy 135.419797 120.426111)\r\n\t\t\t\t(xy 135.419797 120.426109) (xy 135.360492 120.323391) (xy 135.36049 120.323389) (xy 135.360489 120.323387)\r\n\t\t\t\t(xy 135.276613 120.239511) (xy 135.27661 120.239509) (xy 135.276608 120.239507) (xy 135.173889 120.180202)\r\n\t\t\t\t(xy 135.17389 120.180202) (xy 135.150318 120.173886) (xy 135.059309 120.1495) (xy 134.940691 120.1495)\r\n\t\t\t\t(xy 134.876388 120.16673) (xy 134.826109 120.180202) (xy 134.723391 120.239507) (xy 134.639507 120.323391)\r\n\t\t\t\t(xy 134.580202 120.426109) (xy 134.56667 120.476613) (xy 134.5495 120.540691) (xy 133.8505 120.540691)\r\n\t\t\t\t(xy 133.819799 120.426114) (xy 133.819797 120.426111) (xy 133.819797 120.426109) (xy 133.760492 120.323391)\r\n\t\t\t\t(xy 133.76049 120.323389) (xy 133.760489 120.323387) (xy 133.676613 120.239511) (xy 133.67661 120.239509)\r\n\t\t\t\t(xy 133.676608 120.239507) (xy 133.573889 120.180202) (xy 133.57389 120.180202) (xy 133.550318 120.173886)\r\n\t\t\t\t(xy 133.459309 120.1495) (xy 133.340691 120.1495) (xy 133.276388 120.16673) (xy 133.226109 120.180202)\r\n\t\t\t\t(xy 133.123391 120.239507) (xy 133.039507 120.323391) (xy 132.980202 120.426109) (xy 132.96667 120.476613)\r\n\t\t\t\t(xy 132.9495 120.540691) (xy 132.2505 120.540691) (xy 132.219799 120.426114) (xy 132.219797 120.426111)\r\n\t\t\t\t(xy 132.219797 120.426109) (xy 132.160492 120.323391) (xy 132.16049 120.323389) (xy 132.160489 120.323387)\r\n\t\t\t\t(xy 132.076613 120.239511) (xy 132.07661 120.239509) (xy 132.076608 120.239507) (xy 131.973889 120.180202)\r\n\t\t\t\t(xy 131.97389 120.180202) (xy 131.950318 120.173886) (xy 131.859309 120.1495) (xy 131.740691 120.1495)\r\n\t\t\t\t(xy 131.676388 120.16673) (xy 131.626109 120.180202) (xy 131.523391 120.239507) (xy 131.439507 120.323391)\r\n\t\t\t\t(xy 131.380202 120.426109) (xy 131.36667 120.476613) (xy 131.3495 120.540691) (xy 130.6505 120.540691)\r\n\t\t\t\t(xy 130.619799 120.426114) (xy 130.619797 120.426111) (xy 130.619797 120.426109) (xy 130.560492 120.323391)\r\n\t\t\t\t(xy 130.56049 120.323389) (xy 130.560489 120.323387) (xy 130.476613 120.239511) (xy 130.47661 120.239509)\r\n\t\t\t\t(xy 130.476608 120.239507) (xy 130.373889 120.180202) (xy 130.37389 120.180202) (xy 130.350318 120.173886)\r\n\t\t\t\t(xy 130.259309 120.1495) (xy 130.140691 120.1495) (xy 130.076388 120.16673) (xy 130.026109 120.180202)\r\n\t\t\t\t(xy 129.923391 120.239507) (xy 129.839507 120.323391) (xy 129.780202 120.426109) (xy 129.76667 120.476613)\r\n\t\t\t\t(xy 129.7495 120.540691) (xy 129.0505 120.540691) (xy 129.019799 120.426114) (xy 129.019797 120.426111)\r\n\t\t\t\t(xy 129.019797 120.426109) (xy 128.960492 120.323391) (xy 128.96049 120.323389) (xy 128.960489 120.323387)\r\n\t\t\t\t(xy 128.876613 120.239511) (xy 128.87661 120.239509) (xy 128.876608 120.239507) (xy 128.773889 120.180202)\r\n\t\t\t\t(xy 128.77389 120.180202) (xy 128.750318 120.173886) (xy 128.659309 120.1495) (xy 128.540691 120.1495)\r\n\t\t\t\t(xy 128.476388 120.16673) (xy 128.426109 120.180202) (xy 128.323391 120.239507) (xy 128.239507 120.323391)\r\n\t\t\t\t(xy 128.180202 120.426109) (xy 128.16667 120.476613) (xy 128.1495 120.540691) (xy 127.4505 120.540691)\r\n\t\t\t\t(xy 127.419799 120.426114) (xy 127.419797 120.426111) (xy 127.419797 120.426109) (xy 127.360492 120.323391)\r\n\t\t\t\t(xy 127.36049 120.323389) (xy 127.360489 120.323387) (xy 127.276613 120.239511) (xy 127.27661 120.239509)\r\n\t\t\t\t(xy 127.276608 120.239507) (xy 127.173889 120.180202) (xy 127.17389 120.180202) (xy 127.150318 120.173886)\r\n\t\t\t\t(xy 127.059309 120.1495) (xy 126.940691 120.1495) (xy 126.876388 120.16673) (xy 126.826109 120.180202)\r\n\t\t\t\t(xy 126.723391 120.239507) (xy 126.639507 120.323391) (xy 126.580202 120.426109) (xy 126.56667 120.476613)\r\n\t\t\t\t(xy 126.5495 120.540691) (xy 125.8505 120.540691) (xy 125.819799 120.426114) (xy 125.819797 120.426111)\r\n\t\t\t\t(xy 125.819797 120.426109) (xy 125.760492 120.323391) (xy 125.76049 120.323389) (xy 125.760489 120.323387)\r\n\t\t\t\t(xy 125.676613 120.239511) (xy 125.67661 120.239509) (xy 125.676608 120.239507) (xy 125.573889 120.180202)\r\n\t\t\t\t(xy 125.57389 120.180202) (xy 125.550318 120.173886) (xy 125.459309 120.1495) (xy 125.340691 120.1495)\r\n\t\t\t\t(xy 125.276388 120.16673) (xy 125.226109 120.180202) (xy 125.123391 120.239507) (xy 125.039507 120.323391)\r\n\t\t\t\t(xy 124.980202 120.426109) (xy 124.96667 120.476613) (xy 124.9495 120.540691) (xy 124.2505 120.540691)\r\n\t\t\t\t(xy 124.219799 120.426114) (xy 124.219797 120.426111) (xy 124.219797 120.426109) (xy 124.160492 120.323391)\r\n\t\t\t\t(xy 124.16049 120.323389) (xy 124.160489 120.323387) (xy 124.076613 120.239511) (xy 124.07661 120.239509)\r\n\t\t\t\t(xy 124.076608 120.239507) (xy 123.973889 120.180202) (xy 123.97389 120.180202) (xy 123.950318 120.173886)\r\n\t\t\t\t(xy 123.859309 120.1495) (xy 123.740691 120.1495) (xy 123.676388 120.16673) (xy 123.626109 120.180202)\r\n\t\t\t\t(xy 123.523391 120.239507) (xy 123.439507 120.323391) (xy 123.380202 120.426109) (xy 123.36667 120.476613)\r\n\t\t\t\t(xy 123.3495 120.540691) (xy 122.6505 120.540691) (xy 122.619799 120.426114) (xy 122.619797 120.426111)\r\n\t\t\t\t(xy 122.619797 120.426109) (xy 122.560492 120.323391) (xy 122.56049 120.323389) (xy 122.560489 120.323387)\r\n\t\t\t\t(xy 122.476613 120.239511) (xy 122.47661 120.239509) (xy 122.476608 120.239507) (xy 122.373889 120.180202)\r\n\t\t\t\t(xy 122.37389 120.180202) (xy 122.350318 120.173886) (xy 122.259309 120.1495) (xy 122.140691 120.1495)\r\n\t\t\t\t(xy 122.076388 120.16673) (xy 122.026109 120.180202) (xy 121.923391 120.239507) (xy 121.839507 120.323391)\r\n\t\t\t\t(xy 121.780202 120.426109) (xy 121.76667 120.476613) (xy 121.7495 120.540691) (xy 121.0505 120.540691)\r\n\t\t\t\t(xy 121.019799 120.426114) (xy 121.019797 120.426111) (xy 121.019797 120.426109) (xy 120.960492 120.323391)\r\n\t\t\t\t(xy 120.96049 120.323389) (xy 120.960489 120.323387) (xy 120.876613 120.239511) (xy 120.87661 120.239509)\r\n\t\t\t\t(xy 120.876608 120.239507) (xy 120.773889 120.180202) (xy 120.77389 120.180202) (xy 120.750318 120.173886)\r\n\t\t\t\t(xy 120.659309 120.1495) (xy 120.540691 120.1495) (xy 120.476388 120.16673) (xy 120.426109 120.180202)\r\n\t\t\t\t(xy 120.323391 120.239507) (xy 120.239507 120.323391) (xy 120.180202 120.426109) (xy 120.16667 120.476613)\r\n\t\t\t\t(xy 120.1495 120.540691) (xy 119.4505 120.540691) (xy 119.419799 120.426114) (xy 119.419797 120.426111)\r\n\t\t\t\t(xy 119.419797 120.426109) (xy 119.360492 120.323391) (xy 119.36049 120.323389) (xy 119.360489 120.323387)\r\n\t\t\t\t(xy 119.276613 120.239511) (xy 119.27661 120.239509) (xy 119.276608 120.239507) (xy 119.173889 120.180202)\r\n\t\t\t\t(xy 119.17389 120.180202) (xy 119.150318 120.173886) (xy 119.059309 120.1495) (xy 118.940691 120.1495)\r\n\t\t\t\t(xy 118.876388 120.16673) (xy 118.826109 120.180202) (xy 118.723391 120.239507) (xy 118.639507 120.323391)\r\n\t\t\t\t(xy 118.580202 120.426109) (xy 118.56667 120.476613) (xy 118.5495 120.540691) (xy 117.8505 120.540691)\r\n\t\t\t\t(xy 117.819799 120.426114) (xy 117.819797 120.426111) (xy 117.819797 120.426109) (xy 117.760492 120.323391)\r\n\t\t\t\t(xy 117.76049 120.323389) (xy 117.760489 120.323387) (xy 117.676613 120.239511) (xy 117.67661 120.239509)\r\n\t\t\t\t(xy 117.676608 120.239507) (xy 117.573889 120.180202) (xy 117.57389 120.180202) (xy 117.550318 120.173886)\r\n\t\t\t\t(xy 117.459309 120.1495) (xy 117.340691 120.1495) (xy 117.276388 120.16673) (xy 117.226109 120.180202)\r\n\t\t\t\t(xy 117.123391 120.239507) (xy 117.039507 120.323391) (xy 116.980202 120.426109) (xy 116.96667 120.476613)\r\n\t\t\t\t(xy 116.9495 120.540' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'691) (xy 116.2505 120.540691) (xy 116.219799 120.426114) (xy 116.219797 120.426111)\r\n\t\t\t\t(xy 116.219797 120.426109) (xy 116.160492 120.323391) (xy 116.16049 120.323389) (xy 116.160489 120.323387)\r\n\t\t\t\t(xy 116.076613 120.239511) (xy 116.07661 120.239509) (xy 116.076608 120.239507) (xy 115.973889 120.180202)\r\n\t\t\t\t(xy 115.97389 120.180202) (xy 115.950318 120.173886) (xy 115.859309 120.1495) (xy 115.740691 120.1495)\r\n\t\t\t\t(xy 115.676388 120.16673) (xy 115.626109 120.180202) (xy 115.523391 120.239507) (xy 115.439507 120.323391)\r\n\t\t\t\t(xy 115.380202 120.426109) (xy 115.36667 120.476613) (xy 115.3495 120.540691) (xy 114.6505 120.540691)\r\n\t\t\t\t(xy 114.619799 120.426114) (xy 114.619797 120.426111) (xy 114.619797 120.426109) (xy 114.560492 120.323391)\r\n\t\t\t\t(xy 114.56049 120.323389) (xy 114.560489 120.323387) (xy 114.476613 120.239511) (xy 114.47661 120.239509)\r\n\t\t\t\t(xy 114.476608 120.239507) (xy 114.373889 120.180202) (xy 114.37389 120.180202) (xy 114.350318 120.173886)\r\n\t\t\t\t(xy 114.259309 120.1495) (xy 114.140691 120.1495) (xy 114.076388 120.16673) (xy 114.026109 120.180202)\r\n\t\t\t\t(xy 113.923391 120.239507) (xy 113.839507 120.323391) (xy 113.780202 120.426109) (xy 113.76667 120.476613)\r\n\t\t\t\t(xy 113.7495 120.540691) (xy 113.0505 120.540691) (xy 113.019799 120.426114) (xy 113.019797 120.426111)\r\n\t\t\t\t(xy 113.019797 120.426109) (xy 112.960492 120.323391) (xy 112.96049 120.323389) (xy 112.960489 120.323387)\r\n\t\t\t\t(xy 112.876613 120.239511) (xy 112.87661 120.239509) (xy 112.876608 120.239507) (xy 112.773889 120.180202)\r\n\t\t\t\t(xy 112.77389 120.180202) (xy 112.750318 120.173886) (xy 112.659309 120.1495) (xy 112.540691 120.1495)\r\n\t\t\t\t(xy 112.476388 120.16673) (xy 112.426109 120.180202) (xy 112.323391 120.239507) (xy 112.239507 120.323391)\r\n\t\t\t\t(xy 112.180202 120.426109) (xy 112.16667 120.476613) (xy 112.1495 120.540691) (xy 111.4505 120.540691)\r\n\t\t\t\t(xy 111.419799 120.426114) (xy 111.419797 120.426111) (xy 111.419797 120.426109) (xy 111.360492 120.323391)\r\n\t\t\t\t(xy 111.36049 120.323389) (xy 111.360489 120.323387) (xy 111.276613 120.239511) (xy 111.27661 120.239509)\r\n\t\t\t\t(xy 111.276608 120.239507) (xy 111.173889 120.180202) (xy 111.17389 120.180202) (xy 111.150318 120.173886)\r\n\t\t\t\t(xy 111.059309 120.1495) (xy 110.940691 120.1495) (xy 110.876388 120.16673) (xy 110.826109 120.180202)\r\n\t\t\t\t(xy 110.723391 120.239507) (xy 110.639507 120.323391) (xy 110.580202 120.426109) (xy 110.56667 120.476613)\r\n\t\t\t\t(xy 110.5495 120.540691) (xy 109.8505 120.540691) (xy 109.819799 120.426114) (xy 109.819797 120.426111)\r\n\t\t\t\t(xy 109.819797 120.426109) (xy 109.760492 120.323391) (xy 109.76049 120.323389) (xy 109.760489 120.323387)\r\n\t\t\t\t(xy 109.676613 120.239511) (xy 109.67661 120.239509) (xy 109.676608 120.239507) (xy 109.573889 120.180202)\r\n\t\t\t\t(xy 109.57389 120.180202) (xy 109.550318 120.173886) (xy 109.459309 120.1495) (xy 109.340691 120.1495)\r\n\t\t\t\t(xy 109.276388 120.16673) (xy 109.226109 120.180202) (xy 109.123391 120.239507) (xy 109.039507 120.323391)\r\n\t\t\t\t(xy 108.980202 120.426109) (xy 108.96667 120.476613) (xy 108.9495 120.540691) (xy 104.296411 120.540691)\r\n\t\t\t\t(xy 104.360489 120.476613) (xy 104.369239 120.461458) (xy 104.419797 120.37389) (xy 104.419797 120.373888)\r\n\t\t\t\t(xy 104.419799 120.373886) (xy 104.4505 120.259309) (xy 104.4505 120.140691) (xy 104.419799 120.026114)\r\n\t\t\t\t(xy 104.419797 120.026111) (xy 104.419797 120.026109) (xy 104.37048 119.940691) (xy 106.1495 119.940691)\r\n\t\t\t\t(xy 106.1495 120.059309) (xy 106.170086 120.136137) (xy 106.180202 120.17389) (xy 106.239507 120.276608)\r\n\t\t\t\t(xy 106.239509 120.27661) (xy 106.239511 120.276613) (xy 106.323387 120.360489) (xy 106.323389 120.36049)\r\n\t\t\t\t(xy 106.323391 120.360492) (xy 106.42611 120.419797) (xy 106.426111 120.419797) (xy 106.426114 120.419799)\r\n\t\t\t\t(xy 106.540691 120.4505) (xy 106.540693 120.4505) (xy 106.659307 120.4505) (xy 106.659309 120.4505)\r\n\t\t\t\t(xy 106.773886 120.419799) (xy 106.773888 120.419797) (xy 106.77389 120.419797) (xy 106.876608 120.360492)\r\n\t\t\t\t(xy 106.876608 120.360491) (xy 106.876613 120.360489) (xy 106.960489 120.276613) (xy 106.98191 120.239511)\r\n\t\t\t\t(xy 107.019797 120.17389) (xy 107.019797 120.173888) (xy 107.019799 120.173886) (xy 107.0505 120.059309)\r\n\t\t\t\t(xy 107.0505 119.940691) (xy 107.019799 119.826114) (xy 107.019797 119.826111) (xy 107.019797 119.826109)\r\n\t\t\t\t(xy 106.960492 119.723391) (xy 106.96049 119.723389) (xy 106.960489 119.723387) (xy 106.876613 119.639511)\r\n\t\t\t\t(xy 106.87661 119.639509) (xy 106.876608 119.639507) (xy 106.773889 119.580202) (xy 106.77389 119.580202)\r\n\t\t\t\t(xy 106.750318 119.573886) (xy 106.659309 119.5495) (xy 106.540691 119.5495) (xy 106.470567 119.568289)\r\n\t\t\t\t(xy 106.426109 119.580202) (xy 106.323391 119.639507) (xy 106.239507 119.723391) (xy 106.180202 119.826109)\r\n\t\t\t\t(xy 106.180201 119.826114) (xy 106.1495 119.940691) (xy 104.37048 119.940691) (xy 104.360492 119.923391)\r\n\t\t\t\t(xy 104.36049 119.923389) (xy 104.360489 119.923387) (xy 104.276613 119.839511) (xy 104.27661 119.839509)\r\n\t\t\t\t(xy 104.276608 119.839507) (xy 104.173889 119.780202) (xy 104.17389 119.780202) (xy 104.160351 119.776574)\r\n\t\t\t\t(xy 104.059309 119.7495) (xy 103.940691 119.7495) (xy 103.899669 119.760492) (xy 103.826109 119.780202)\r\n\t\t\t\t(xy 103.723391 119.839507) (xy 103.639507 119.923391) (xy 103.580202 120.026109) (xy 103.580201 120.026114)\r\n\t\t\t\t(xy 103.5495 120.140691) (xy 101.428694 120.140691) (xy 101.4505 120.059309) (xy 101.4505 119.940691)\r\n\t\t\t\t(xy 101.419799 119.826114) (xy 101.419797 119.826111) (xy 101.419797 119.826109) (xy 101.360492 119.723391)\r\n\t\t\t\t(xy 101.36049 119.723389) (xy 101.360489 119.723387) (xy 101.276613 119.639511) (xy 101.27661 119.639509)\r\n\t\t\t\t(xy 101.276608 119.639507) (xy 101.173889 119.580202) (xy 101.17389 119.580202) (xy 101.150318 119.573886)\r\n\t\t\t\t(xy 101.059309 119.5495) (xy 100.940691 119.5495) (xy 100.870567 119.568289) (xy 100.826109 119.580202)\r\n\t\t\t\t(xy 100.723391 119.639507) (xy 100.639509 119.723389) (xy 100.585736 119.816526) (xy 100.540266 119.857466)\r\n\t\t\t\t(xy 100.479416 119.863861) (xy 100.426428 119.833268) (xy 100.414264 119.816526) (xy 100.36049 119.723389)\r\n\t\t\t\t(xy 100.360489 119.723387) (xy 100.276613 119.639511) (xy 100.27661 119.639509) (xy 100.276608 119.639507)\r\n\t\t\t\t(xy 100.173889 119.580202) (xy 100.17389 119.580202) (xy 100.150318 119.573886) (xy 100.059309 119.5495)\r\n\t\t\t\t(xy 99.940691 119.5495) (xy 99.870567 119.568289) (xy 99.826109 119.580202) (xy 99.723391 119.639507)\r\n\t\t\t\t(xy 99.639507 119.723391) (xy 99.580202 119.826109) (xy 99.580201 119.826114) (xy 99.5495 119.940691)\r\n\t\t\t\t(xy 92.4505 119.940691) (xy 92.419799 119.826114) (xy 92.419797 119.826111) (xy 92.419797 119.826109)\r\n\t\t\t\t(xy 92.360492 119.723391) (xy 92.36049 119.723389) (xy 92.360489 119.723387) (xy 92.276613 119.639511)\r\n\t\t\t\t(xy 92.27661 119.639509) (xy 92.276608 119.639507) (xy 92.173889 119.580202) (xy 92.17389 119.580202)\r\n\t\t\t\t(xy 92.150318 119.573886) (xy 92.059309 119.5495) (xy 91.940691 119.5495) (xy 91.870567 119.568289)\r\n\t\t\t\t(xy 91.826109 119.580202) (xy 91.723391 119.639507) (xy 91.639507 119.723391) (xy 91.580202 119.826109)\r\n\t\t\t\t(xy 91.580201 119.826114) (xy 91.5495 119.940691) (xy 88.4505 119.940691) (xy 88.419799 119.826114)\r\n\t\t\t\t(xy 88.419797 119.826111) (xy 88.419797 119.826109) (xy 88.360492 119.723391) (xy 88.36049 119.723389)\r\n\t\t\t\t(xy 88.360489 119.723387) (xy 88.276613 119.639511) (xy 88.27661 119.639509) (xy 88.276608 119.639507)\r\n\t\t\t\t(xy 88.173889 119.580202) (xy 88.17389 119.580202) (xy 88.150318 119.573886) (xy 88.059309 119.5495)\r\n\t\t\t\t(xy 87.940691 119.5495) (xy 87.870567 119.568289) (xy 87.826109 119.580202) (xy 87.723391 119.639507)\r\n\t\t\t\t(xy 87.639507 119.723391) (xy 87.580202 119.826109) (xy 87.580201 119.826114) (xy 87.5495 119.940691)\r\n\t\t\t\t(xy 84.4505 119.940691) (xy 84.419799 119.826114) (xy 84.419797 119.826111) (xy 84.419797 119.826109)\r\n\t\t\t\t(xy 84.360492 119.723391) (xy 84.36049 119.723389) (xy 84.360489 119.723387) (xy 84.276613 119.639511)\r\n\t\t\t\t(xy 84.27661 119.639509) (xy 84.276608 119.639507) (xy 84.173889 119.580202) (xy 84.17389 119.580202)\r\n\t\t\t\t(xy 84.150318 119.573886) (xy 84.059309 119.5495) (xy 83.940691 119.5495) (xy 83.870567 119.568289)\r\n\t\t\t\t(xy 83.826109 119.580202) (xy 83.723391 119.639507) (xy 83.639507 119.723391) (xy 83' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'.580202 119.826109)\r\n\t\t\t\t(xy 83.580201 119.826114) (xy 83.5495 119.940691) (xy 80.4505 119.940691) (xy 80.419799 119.826114)\r\n\t\t\t\t(xy 80.419797 119.826111) (xy 80.419797 119.826109) (xy 80.360492 119.723391) (xy 80.36049 119.723389)\r\n\t\t\t\t(xy 80.360489 119.723387) (xy 80.276613 119.639511) (xy 80.27661 119.639509) (xy 80.276608 119.639507)\r\n\t\t\t\t(xy 80.173889 119.580202) (xy 80.17389 119.580202) (xy 80.150318 119.573886) (xy 80.059309 119.5495)\r\n\t\t\t\t(xy 79.940691 119.5495) (xy 79.870567 119.568289) (xy 79.826109 119.580202) (xy 79.723391 119.639507)\r\n\t\t\t\t(xy 79.639507 119.723391) (xy 79.580202 119.826109) (xy 79.580201 119.826114) (xy 79.5495 119.940691)\r\n\t\t\t\t(xy 76.4505 119.940691) (xy 76.419799 119.826114) (xy 76.419797 119.826111) (xy 76.419797 119.826109)\r\n\t\t\t\t(xy 76.360492 119.723391) (xy 76.36049 119.723389) (xy 76.360489 119.723387) (xy 76.276613 119.639511)\r\n\t\t\t\t(xy 76.27661 119.639509) (xy 76.276608 119.639507) (xy 76.173889 119.580202) (xy 76.17389 119.580202)\r\n\t\t\t\t(xy 76.150318 119.573886) (xy 76.059309 119.5495) (xy 75.940691 119.5495) (xy 75.870567 119.568289)\r\n\t\t\t\t(xy 75.826109 119.580202) (xy 75.723391 119.639507) (xy 75.639507 119.723391) (xy 75.580202 119.826109)\r\n\t\t\t\t(xy 75.580201 119.826114) (xy 75.5495 119.940691) (xy 74.0005 119.940691) (xy 74.0005 119.340691)\r\n\t\t\t\t(xy 104.3495 119.340691) (xy 104.3495 119.459309) (xy 104.373667 119.5495) (xy 104.380202 119.57389)\r\n\t\t\t\t(xy 104.439507 119.676608) (xy 104.439509 119.67661) (xy 104.439511 119.676613) (xy 104.523387 119.760489)\r\n\t\t\t\t(xy 104.523389 119.76049) (xy 104.523391 119.760492) (xy 104.62611 119.819797) (xy 104.626111 119.819797)\r\n\t\t\t\t(xy 104.626114 119.819799) (xy 104.740691 119.8505) (xy 104.740693 119.8505) (xy 104.859307 119.8505)\r\n\t\t\t\t(xy 104.859309 119.8505) (xy 104.973886 119.819799) (xy 104.973888 119.819797) (xy 104.97389 119.819797)\r\n\t\t\t\t(xy 105.076608 119.760492) (xy 105.076608 119.760491) (xy 105.076613 119.760489) (xy 105.160489 119.676613)\r\n\t\t\t\t(xy 105.18191 119.639511) (xy 105.219797 119.57389) (xy 105.219797 119.573888) (xy 105.219799 119.573886)\r\n\t\t\t\t(xy 105.2505 119.459309) (xy 105.2505 119.340691) (xy 105.219799 119.226114) (xy 105.219797 119.226111)\r\n\t\t\t\t(xy 105.219797 119.226109) (xy 105.160492 119.123391) (xy 105.16049 119.123389) (xy 105.160489 119.123387)\r\n\t\t\t\t(xy 105.076613 119.039511) (xy 105.07661 119.039509) (xy 105.076608 119.039507) (xy 104.973889 118.980202)\r\n\t\t\t\t(xy 104.97389 118.980202) (xy 104.950318 118.973886) (xy 104.859309 118.9495) (xy 104.740691 118.9495)\r\n\t\t\t\t(xy 104.699669 118.960492) (xy 104.626109 118.980202) (xy 104.523391 119.039507) (xy 104.439507 119.123391)\r\n\t\t\t\t(xy 104.380202 119.226109) (xy 104.380201 119.226114) (xy 104.3495 119.340691) (xy 74.0005 119.340691)\r\n\t\t\t\t(xy 74.0005 118.340691) (xy 100.5495 118.340691) (xy 100.5495 118.459309) (xy 100.56667 118.523387)\r\n\t\t\t\t(xy 100.580202 118.57389) (xy 100.639507 118.676608) (xy 100.639509 118.67661) (xy 100.639511 118.676613)\r\n\t\t\t\t(xy 100.723387 118.760489) (xy 100.723389 118.76049) (xy 100.723391 118.760492) (xy 100.82611 118.819797)\r\n\t\t\t\t(xy 100.826111 118.819797) (xy 100.826114 118.819799) (xy 100.940691 118.8505) (xy 100.940693 118.8505)\r\n\t\t\t\t(xy 101.059307 118.8505) (xy 101.059309 118.8505) (xy 101.173886 118.819799) (xy 101.173888 118.819797)\r\n\t\t\t\t(xy 101.17389 118.819797) (xy 101.276608 118.760492) (xy 101.276608 118.760491) (xy 101.276613 118.760489)\r\n\t\t\t\t(xy 101.360489 118.676613) (xy 101.38191 118.639511) (xy 101.419797 118.57389) (xy 101.419797 118.573888)\r\n\t\t\t\t(xy 101.419799 118.573886) (xy 101.4505 118.459309) (xy 101.4505 118.340691) (xy 103.5495 118.340691)\r\n\t\t\t\t(xy 103.5495 118.459309) (xy 103.56667 118.523387) (xy 103.580202 118.57389) (xy 103.639507 118.676608)\r\n\t\t\t\t(xy 103.639509 118.67661) (xy 103.639511 118.676613) (xy 103.723387 118.760489) (xy 103.723389 118.76049)\r\n\t\t\t\t(xy 103.723391 118.760492) (xy 103.82611 118.819797) (xy 103.826111 118.819797) (xy 103.826114 118.819799)\r\n\t\t\t\t(xy 103.940691 118.8505) (xy 103.940693 118.8505) (xy 104.059307 118.8505) (xy 104.059309 118.8505)\r\n\t\t\t\t(xy 104.173886 118.819799) (xy 104.173888 118.819797) (xy 104.17389 118.819797) (xy 104.276608 118.760492)\r\n\t\t\t\t(xy 104.276608 118.760491) (xy 104.276613 118.760489) (xy 104.360489 118.676613) (xy 104.419799 118.573886)\r\n\t\t\t\t(xy 104.428694 118.540691) (xy 105.1495 118.540691) (xy 105.1495 118.659309) (xy 105.154137 118.676613)\r\n\t\t\t\t(xy 105.180202 118.77389) (xy 105.239507 118.876608) (xy 105.239509 118.87661) (xy 105.239511 118.876613)\r\n\t\t\t\t(xy 105.323387 118.960489) (xy 105.323389 118.96049) (xy 105.323391 118.960492) (xy 105.42611 119.019797)\r\n\t\t\t\t(xy 105.426111 119.019797) (xy 105.426114 119.019799) (xy 105.540691 119.0505) (xy 105.540693 119.0505)\r\n\t\t\t\t(xy 105.659307 119.0505) (xy 105.659309 119.0505) (xy 105.773886 119.019799) (xy 105.773888 119.019797)\r\n\t\t\t\t(xy 105.77389 119.019797) (xy 105.876608 118.960492) (xy 105.876608 118.960491) (xy 105.876613 118.960489)\r\n\t\t\t\t(xy 105.896411 118.940691) (xy 107.7495 118.940691) (xy 107.7495 119.059309) (xy 107.754137 119.076613)\r\n\t\t\t\t(xy 107.780202 119.17389) (xy 107.839507 119.276608) (xy 107.839509 119.27661) (xy 107.839511 119.276613)\r\n\t\t\t\t(xy 107.923387 119.360489) (xy 107.923389 119.36049) (xy 107.923391 119.360492) (xy 108.02611 119.419797)\r\n\t\t\t\t(xy 108.026111 119.419797) (xy 108.026114 119.419799) (xy 108.140691 119.4505) (xy 108.140693 119.4505)\r\n\t\t\t\t(xy 108.259307 119.4505) (xy 108.259309 119.4505) (xy 108.373886 119.419799) (xy 108.373888 119.419797)\r\n\t\t\t\t(xy 108.37389 119.419797) (xy 108.476608 119.360492) (xy 108.476608 119.360491) (xy 108.476613 119.360489)\r\n\t\t\t\t(xy 108.560489 119.276613) (xy 108.560492 119.276608) (xy 108.619797 119.17389) (xy 108.619797 119.173888)\r\n\t\t\t\t(xy 108.619799 119.173886) (xy 108.6505 119.059309) (xy 108.6505 118.940691) (xy 108.9495 118.940691)\r\n\t\t\t\t(xy 108.9495 119.059309) (xy 108.954137 119.076613) (xy 108.980202 119.17389) (xy 109.039507 119.276608)\r\n\t\t\t\t(xy 109.039509 119.27661) (xy 109.039511 119.276613) (xy 109.123387 119.360489) (xy 109.123389 119.36049)\r\n\t\t\t\t(xy 109.123391 119.360492) (xy 109.22611 119.419797) (xy 109.226111 119.419797) (xy 109.226114 119.419799)\r\n\t\t\t\t(xy 109.340691 119.4505) (xy 109.340693 119.4505) (xy 109.459307 119.4505) (xy 109.459309 119.4505)\r\n\t\t\t\t(xy 109.573886 119.419799) (xy 109.573888 119.419797) (xy 109.57389 119.419797) (xy 109.676608 119.360492)\r\n\t\t\t\t(xy 109.676608 119.360491) (xy 109.676613 119.360489) (xy 109.760489 119.276613) (xy 109.760492 119.276608)\r\n\t\t\t\t(xy 109.819797 119.17389) (xy 109.819797 119.173888) (xy 109.819799 119.173886) (xy 109.8505 119.059309)\r\n\t\t\t\t(xy 109.8505 118.940691) (xy 110.5495 118.940691) (xy 110.5495 119.059309) (xy 110.554137 119.076613)\r\n\t\t\t\t(xy 110.580202 119.17389) (xy 110.639507 119.276608) (xy 110.639509 119.27661) (xy 110.639511 119.276613)\r\n\t\t\t\t(xy 110.723387 119.360489) (xy 110.723389 119.36049) (xy 110.723391 119.360492) (xy 110.82611 119.419797)\r\n\t\t\t\t(xy 110.826111 119.419797) (xy 110.826114 119.419799) (xy 110.940691 119.4505) (xy 110.940693 119.4505)\r\n\t\t\t\t(xy 111.059307 119.4505) (xy 111.059309 119.4505) (xy 111.173886 119.419799) (xy 111.173888 119.419797)\r\n\t\t\t\t(xy 111.17389 119.419797) (xy 111.276608 119.360492) (xy 111.276608 119.360491) (xy 111.276613 119.360489)\r\n\t\t\t\t(xy 111.360489 119.276613) (xy 111.360492 119.276608) (xy 111.419797 119.17389) (xy 111.419797 119.173888)\r\n\t\t\t\t(xy 111.419799 119.173886) (xy 111.4505 119.059309) (xy 111.4505 118.940691) (xy 112.1495 118.940691)\r\n\t\t\t\t(xy 112.1495 119.059309) (xy 112.154137 119.076613) (xy 112.180202 119.17389) (xy 112.239507 119.276608)\r\n\t\t\t\t(xy 112.239509 119.27661) (xy 112.239511 119.276613) (xy 112.323387 119.360489) (xy 112.323389 119.36049)\r\n\t\t\t\t(xy 112.323391 119.360492) (xy 112.42611 119.419797) (xy 112.426111 119.419797) (xy 112.426114 119.419799)\r\n\t\t\t\t(xy 112.540691 119.4505) (xy 112.540693 119.4505) (xy 112.659307 119.4505) (xy 112.659309 119.4505)\r\n\t\t\t\t(xy 112.773886 119.419799) (xy 112.773888 119.419797) (xy 112.77389 119.419797) (xy 112.876608 119.360492)\r\n\t\t\t\t(xy 112.876608 119.360491) (xy 112.876613 119.360489) (xy 112.960489 119.276613) (xy 112.960492 119.276608)\r\n\t\t\t\t(xy 113.019797 119.17389) (xy 113.019797 119.173888) (xy 113.01' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'9799 119.173886) (xy 113.0505 119.059309)\r\n\t\t\t\t(xy 113.0505 118.940691) (xy 113.7495 118.940691) (xy 113.7495 119.059309) (xy 113.754137 119.076613)\r\n\t\t\t\t(xy 113.780202 119.17389) (xy 113.839507 119.276608) (xy 113.839509 119.27661) (xy 113.839511 119.276613)\r\n\t\t\t\t(xy 113.923387 119.360489) (xy 113.923389 119.36049) (xy 113.923391 119.360492) (xy 114.02611 119.419797)\r\n\t\t\t\t(xy 114.026111 119.419797) (xy 114.026114 119.419799) (xy 114.140691 119.4505) (xy 114.140693 119.4505)\r\n\t\t\t\t(xy 114.259307 119.4505) (xy 114.259309 119.4505) (xy 114.373886 119.419799) (xy 114.373888 119.419797)\r\n\t\t\t\t(xy 114.37389 119.419797) (xy 114.476608 119.360492) (xy 114.476608 119.360491) (xy 114.476613 119.360489)\r\n\t\t\t\t(xy 114.560489 119.276613) (xy 114.560492 119.276608) (xy 114.619797 119.17389) (xy 114.619797 119.173888)\r\n\t\t\t\t(xy 114.619799 119.173886) (xy 114.6505 119.059309) (xy 114.6505 118.940691) (xy 115.3495 118.940691)\r\n\t\t\t\t(xy 115.3495 119.059309) (xy 115.354137 119.076613) (xy 115.380202 119.17389) (xy 115.439507 119.276608)\r\n\t\t\t\t(xy 115.439509 119.27661) (xy 115.439511 119.276613) (xy 115.523387 119.360489) (xy 115.523389 119.36049)\r\n\t\t\t\t(xy 115.523391 119.360492) (xy 115.62611 119.419797) (xy 115.626111 119.419797) (xy 115.626114 119.419799)\r\n\t\t\t\t(xy 115.740691 119.4505) (xy 115.740693 119.4505) (xy 115.859307 119.4505) (xy 115.859309 119.4505)\r\n\t\t\t\t(xy 115.973886 119.419799) (xy 115.973888 119.419797) (xy 115.97389 119.419797) (xy 116.076608 119.360492)\r\n\t\t\t\t(xy 116.076608 119.360491) (xy 116.076613 119.360489) (xy 116.160489 119.276613) (xy 116.160492 119.276608)\r\n\t\t\t\t(xy 116.219797 119.17389) (xy 116.219797 119.173888) (xy 116.219799 119.173886) (xy 116.2505 119.059309)\r\n\t\t\t\t(xy 116.2505 118.940691) (xy 116.9495 118.940691) (xy 116.9495 119.059309) (xy 116.954137 119.076613)\r\n\t\t\t\t(xy 116.980202 119.17389) (xy 117.039507 119.276608) (xy 117.039509 119.27661) (xy 117.039511 119.276613)\r\n\t\t\t\t(xy 117.123387 119.360489) (xy 117.123389 119.36049) (xy 117.123391 119.360492) (xy 117.22611 119.419797)\r\n\t\t\t\t(xy 117.226111 119.419797) (xy 117.226114 119.419799) (xy 117.340691 119.4505) (xy 117.340693 119.4505)\r\n\t\t\t\t(xy 117.459307 119.4505) (xy 117.459309 119.4505) (xy 117.573886 119.419799) (xy 117.573888 119.419797)\r\n\t\t\t\t(xy 117.57389 119.419797) (xy 117.676608 119.360492) (xy 117.676608 119.360491) (xy 117.676613 119.360489)\r\n\t\t\t\t(xy 117.760489 119.276613) (xy 117.760492 119.276608) (xy 117.819797 119.17389) (xy 117.819797 119.173888)\r\n\t\t\t\t(xy 117.819799 119.173886) (xy 117.8505 119.059309) (xy 117.8505 118.940691) (xy 118.5495 118.940691)\r\n\t\t\t\t(xy 118.5495 119.059309) (xy 118.554137 119.076613) (xy 118.580202 119.17389) (xy 118.639507 119.276608)\r\n\t\t\t\t(xy 118.639509 119.27661) (xy 118.639511 119.276613) (xy 118.723387 119.360489) (xy 118.723389 119.36049)\r\n\t\t\t\t(xy 118.723391 119.360492) (xy 118.82611 119.419797) (xy 118.826111 119.419797) (xy 118.826114 119.419799)\r\n\t\t\t\t(xy 118.940691 119.4505) (xy 118.940693 119.4505) (xy 119.059307 119.4505) (xy 119.059309 119.4505)\r\n\t\t\t\t(xy 119.173886 119.419799) (xy 119.173888 119.419797) (xy 119.17389 119.419797) (xy 119.276608 119.360492)\r\n\t\t\t\t(xy 119.276608 119.360491) (xy 119.276613 119.360489) (xy 119.360489 119.276613) (xy 119.360492 119.276608)\r\n\t\t\t\t(xy 119.419797 119.17389) (xy 119.419797 119.173888) (xy 119.419799 119.173886) (xy 119.4505 119.059309)\r\n\t\t\t\t(xy 119.4505 118.940691) (xy 120.1495 118.940691) (xy 120.1495 119.059309) (xy 120.154137 119.076613)\r\n\t\t\t\t(xy 120.180202 119.17389) (xy 120.239507 119.276608) (xy 120.239509 119.27661) (xy 120.239511 119.276613)\r\n\t\t\t\t(xy 120.323387 119.360489) (xy 120.323389 119.36049) (xy 120.323391 119.360492) (xy 120.42611 119.419797)\r\n\t\t\t\t(xy 120.426111 119.419797) (xy 120.426114 119.419799) (xy 120.540691 119.4505) (xy 120.540693 119.4505)\r\n\t\t\t\t(xy 120.659307 119.4505) (xy 120.659309 119.4505) (xy 120.773886 119.419799) (xy 120.773888 119.419797)\r\n\t\t\t\t(xy 120.77389 119.419797) (xy 120.876608 119.360492) (xy 120.876608 119.360491) (xy 120.876613 119.360489)\r\n\t\t\t\t(xy 120.960489 119.276613) (xy 120.960492 119.276608) (xy 121.019797 119.17389) (xy 121.019797 119.173888)\r\n\t\t\t\t(xy 121.019799 119.173886) (xy 121.0505 119.059309) (xy 121.0505 118.940691) (xy 121.7495 118.940691)\r\n\t\t\t\t(xy 121.7495 119.059309) (xy 121.754137 119.076613) (xy 121.780202 119.17389) (xy 121.839507 119.276608)\r\n\t\t\t\t(xy 121.839509 119.27661) (xy 121.839511 119.276613) (xy 121.923387 119.360489) (xy 121.923389 119.36049)\r\n\t\t\t\t(xy 121.923391 119.360492) (xy 122.02611 119.419797) (xy 122.026111 119.419797) (xy 122.026114 119.419799)\r\n\t\t\t\t(xy 122.140691 119.4505) (xy 122.140693 119.4505) (xy 122.259307 119.4505) (xy 122.259309 119.4505)\r\n\t\t\t\t(xy 122.373886 119.419799) (xy 122.373888 119.419797) (xy 122.37389 119.419797) (xy 122.476608 119.360492)\r\n\t\t\t\t(xy 122.476608 119.360491) (xy 122.476613 119.360489) (xy 122.560489 119.276613) (xy 122.560492 119.276608)\r\n\t\t\t\t(xy 122.619797 119.17389) (xy 122.619797 119.173888) (xy 122.619799 119.173886) (xy 122.6505 119.059309)\r\n\t\t\t\t(xy 122.6505 118.940691) (xy 123.3495 118.940691) (xy 123.3495 119.059309) (xy 123.354137 119.076613)\r\n\t\t\t\t(xy 123.380202 119.17389) (xy 123.439507 119.276608) (xy 123.439509 119.27661) (xy 123.439511 119.276613)\r\n\t\t\t\t(xy 123.523387 119.360489) (xy 123.523389 119.36049) (xy 123.523391 119.360492) (xy 123.62611 119.419797)\r\n\t\t\t\t(xy 123.626111 119.419797) (xy 123.626114 119.419799) (xy 123.740691 119.4505) (xy 123.740693 119.4505)\r\n\t\t\t\t(xy 123.859307 119.4505) (xy 123.859309 119.4505) (xy 123.973886 119.419799) (xy 123.973888 119.419797)\r\n\t\t\t\t(xy 123.97389 119.419797) (xy 124.076608 119.360492) (xy 124.076608 119.360491) (xy 124.076613 119.360489)\r\n\t\t\t\t(xy 124.160489 119.276613) (xy 124.160492 119.276608) (xy 124.219797 119.17389) (xy 124.219797 119.173888)\r\n\t\t\t\t(xy 124.219799 119.173886) (xy 124.2505 119.059309) (xy 124.2505 118.940691) (xy 124.9495 118.940691)\r\n\t\t\t\t(xy 124.9495 119.059309) (xy 124.954137 119.076613) (xy 124.980202 119.17389) (xy 125.039507 119.276608)\r\n\t\t\t\t(xy 125.039509 119.27661) (xy 125.039511 119.276613) (xy 125.123387 119.360489) (xy 125.123389 119.36049)\r\n\t\t\t\t(xy 125.123391 119.360492) (xy 125.22611 119.419797) (xy 125.226111 119.419797) (xy 125.226114 119.419799)\r\n\t\t\t\t(xy 125.340691 119.4505) (xy 125.340693 119.4505) (xy 125.459307 119.4505) (xy 125.459309 119.4505)\r\n\t\t\t\t(xy 125.573886 119.419799) (xy 125.573888 119.419797) (xy 125.57389 119.419797) (xy 125.676608 119.360492)\r\n\t\t\t\t(xy 125.676608 119.360491) (xy 125.676613 119.360489) (xy 125.760489 119.276613) (xy 125.760492 119.276608)\r\n\t\t\t\t(xy 125.819797 119.17389) (xy 125.819797 119.173888) (xy 125.819799 119.173886) (xy 125.8505 119.059309)\r\n\t\t\t\t(xy 125.8505 118.940691) (xy 126.5495 118.940691) (xy 126.5495 119.059309) (xy 126.554137 119.076613)\r\n\t\t\t\t(xy 126.580202 119.17389) (xy 126.639507 119.276608) (xy 126.639509 119.27661) (xy 126.639511 119.276613)\r\n\t\t\t\t(xy 126.723387 119.360489) (xy 126.723389 119.36049) (xy 126.723391 119.360492) (xy 126.82611 119.419797)\r\n\t\t\t\t(xy 126.826111 119.419797) (xy 126.826114 119.419799) (xy 126.940691 119.4505) (xy 126.940693 119.4505)\r\n\t\t\t\t(xy 127.059307 119.4505) (xy 127.059309 119.4505) (xy 127.173886 119.419799) (xy 127.173888 119.419797)\r\n\t\t\t\t(xy 127.17389 119.419797) (xy 127.276608 119.360492) (xy 127.276608 119.360491) (xy 127.276613 119.360489)\r\n\t\t\t\t(xy 127.360489 119.276613) (xy 127.360492 119.276608) (xy 127.419797 119.17389) (xy 127.419797 119.173888)\r\n\t\t\t\t(xy 127.419799 119.173886) (xy 127.4505 119.059309) (xy 127.4505 118.940691) (xy 128.1495 118.940691)\r\n\t\t\t\t(xy 128.1495 119.059309) (xy 128.154137 119.076613) (xy 128.180202 119.17389) (xy 128.239507 119.276608)\r\n\t\t\t\t(xy 128.239509 119.27661) (xy 128.239511 119.276613) (xy 128.323387 119.360489) (xy 128.323389 119.36049)\r\n\t\t\t\t(xy 128.323391 119.360492) (xy 128.42611 119.419797) (xy 128.426111 119.419797) (xy 128.426114 119.419799)\r\n\t\t\t\t(xy 128.540691 119.4505) (xy 128.540693 119.4505) (xy 128.659307 119.4505) (xy 128.659309 119.4505)\r\n\t\t\t\t(xy 128.773886 119.419799) (xy 128.773888 119.419797) (xy 128.77389 119.419797) (xy 128.876608 119.360492)\r\n\t\t\t\t(xy 128.876608 119.360491) (xy 128.876613 119.360489) (xy 128.960489 119.276613) (xy 128.960492 119.276608)\r\n\t\t\t\t' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'(xy 129.019797 119.17389) (xy 129.019797 119.173888) (xy 129.019799 119.173886) (xy 129.0505 119.059309)\r\n\t\t\t\t(xy 129.0505 118.940691) (xy 129.7495 118.940691) (xy 129.7495 119.059309) (xy 129.754137 119.076613)\r\n\t\t\t\t(xy 129.780202 119.17389) (xy 129.839507 119.276608) (xy 129.839509 119.27661) (xy 129.839511 119.276613)\r\n\t\t\t\t(xy 129.923387 119.360489) (xy 129.923389 119.36049) (xy 129.923391 119.360492) (xy 130.02611 119.419797)\r\n\t\t\t\t(xy 130.026111 119.419797) (xy 130.026114 119.419799) (xy 130.140691 119.4505) (xy 130.140693 119.4505)\r\n\t\t\t\t(xy 130.259307 119.4505) (xy 130.259309 119.4505) (xy 130.373886 119.419799) (xy 130.373888 119.419797)\r\n\t\t\t\t(xy 130.37389 119.419797) (xy 130.476608 119.360492) (xy 130.476608 119.360491) (xy 130.476613 119.360489)\r\n\t\t\t\t(xy 130.560489 119.276613) (xy 130.560492 119.276608) (xy 130.619797 119.17389) (xy 130.619797 119.173888)\r\n\t\t\t\t(xy 130.619799 119.173886) (xy 130.6505 119.059309) (xy 130.6505 118.940691) (xy 131.3495 118.940691)\r\n\t\t\t\t(xy 131.3495 119.059309) (xy 131.354137 119.076613) (xy 131.380202 119.17389) (xy 131.439507 119.276608)\r\n\t\t\t\t(xy 131.439509 119.27661) (xy 131.439511 119.276613) (xy 131.523387 119.360489) (xy 131.523389 119.36049)\r\n\t\t\t\t(xy 131.523391 119.360492) (xy 131.62611 119.419797) (xy 131.626111 119.419797) (xy 131.626114 119.419799)\r\n\t\t\t\t(xy 131.740691 119.4505) (xy 131.740693 119.4505) (xy 131.859307 119.4505) (xy 131.859309 119.4505)\r\n\t\t\t\t(xy 131.973886 119.419799) (xy 131.973888 119.419797) (xy 131.97389 119.419797) (xy 132.076608 119.360492)\r\n\t\t\t\t(xy 132.076608 119.360491) (xy 132.076613 119.360489) (xy 132.160489 119.276613) (xy 132.160492 119.276608)\r\n\t\t\t\t(xy 132.219797 119.17389) (xy 132.219797 119.173888) (xy 132.219799 119.173886) (xy 132.2505 119.059309)\r\n\t\t\t\t(xy 132.2505 118.940691) (xy 132.9495 118.940691) (xy 132.9495 119.059309) (xy 132.954137 119.076613)\r\n\t\t\t\t(xy 132.980202 119.17389) (xy 133.039507 119.276608) (xy 133.039509 119.27661) (xy 133.039511 119.276613)\r\n\t\t\t\t(xy 133.123387 119.360489) (xy 133.123389 119.36049) (xy 133.123391 119.360492) (xy 133.22611 119.419797)\r\n\t\t\t\t(xy 133.226111 119.419797) (xy 133.226114 119.419799) (xy 133.340691 119.4505) (xy 133.340693 119.4505)\r\n\t\t\t\t(xy 133.459307 119.4505) (xy 133.459309 119.4505) (xy 133.573886 119.419799) (xy 133.573888 119.419797)\r\n\t\t\t\t(xy 133.57389 119.419797) (xy 133.676608 119.360492) (xy 133.676608 119.360491) (xy 133.676613 119.360489)\r\n\t\t\t\t(xy 133.760489 119.276613) (xy 133.760492 119.276608) (xy 133.819797 119.17389) (xy 133.819797 119.173888)\r\n\t\t\t\t(xy 133.819799 119.173886) (xy 133.8505 119.059309) (xy 133.8505 118.940691) (xy 134.5495 118.940691)\r\n\t\t\t\t(xy 134.5495 119.059309) (xy 134.554137 119.076613) (xy 134.580202 119.17389) (xy 134.639507 119.276608)\r\n\t\t\t\t(xy 134.639509 119.27661) (xy 134.639511 119.276613) (xy 134.723387 119.360489) (xy 134.723389 119.36049)\r\n\t\t\t\t(xy 134.723391 119.360492) (xy 134.82611 119.419797) (xy 134.826111 119.419797) (xy 134.826114 119.419799)\r\n\t\t\t\t(xy 134.940691 119.4505) (xy 134.940693 119.4505) (xy 135.059307 119.4505) (xy 135.059309 119.4505)\r\n\t\t\t\t(xy 135.173886 119.419799) (xy 135.173888 119.419797) (xy 135.17389 119.419797) (xy 135.276608 119.360492)\r\n\t\t\t\t(xy 135.276608 119.360491) (xy 135.276613 119.360489) (xy 135.360489 119.276613) (xy 135.360492 119.276608)\r\n\t\t\t\t(xy 135.419797 119.17389) (xy 135.419797 119.173888) (xy 135.419799 119.173886) (xy 135.4505 119.059309)\r\n\t\t\t\t(xy 135.4505 118.940691) (xy 136.1495 118.940691) (xy 136.1495 119.059309) (xy 136.154137 119.076613)\r\n\t\t\t\t(xy 136.180202 119.17389) (xy 136.239507 119.276608) (xy 136.239509 119.27661) (xy 136.239511 119.276613)\r\n\t\t\t\t(xy 136.323387 119.360489) (xy 136.323389 119.36049) (xy 136.323391 119.360492) (xy 136.42611 119.419797)\r\n\t\t\t\t(xy 136.426111 119.419797) (xy 136.426114 119.419799) (xy 136.540691 119.4505) (xy 136.540693 119.4505)\r\n\t\t\t\t(xy 136.659307 119.4505) (xy 136.659309 119.4505) (xy 136.773886 119.419799) (xy 136.773888 119.419797)\r\n\t\t\t\t(xy 136.77389 119.419797) (xy 136.876608 119.360492) (xy 136.876608 119.360491) (xy 136.876613 119.360489)\r\n\t\t\t\t(xy 136.960489 119.276613) (xy 136.960492 119.276608) (xy 137.019797 119.17389) (xy 137.019797 119.173888)\r\n\t\t\t\t(xy 137.019799 119.173886) (xy 137.0505 119.059309) (xy 137.0505 118.940691) (xy 137.7495 118.940691)\r\n\t\t\t\t(xy 137.7495 119.059309) (xy 137.754137 119.076613) (xy 137.780202 119.17389) (xy 137.839507 119.276608)\r\n\t\t\t\t(xy 137.839509 119.27661) (xy 137.839511 119.276613) (xy 137.923387 119.360489) (xy 137.923389 119.36049)\r\n\t\t\t\t(xy 137.923391 119.360492) (xy 138.02611 119.419797) (xy 138.026111 119.419797) (xy 138.026114 119.419799)\r\n\t\t\t\t(xy 138.140691 119.4505) (xy 138.140693 119.4505) (xy 138.259307 119.4505) (xy 138.259309 119.4505)\r\n\t\t\t\t(xy 138.373886 119.419799) (xy 138.373888 119.419797) (xy 138.37389 119.419797) (xy 138.476608 119.360492)\r\n\t\t\t\t(xy 138.476608 119.360491) (xy 138.476613 119.360489) (xy 138.560489 119.276613) (xy 138.560492 119.276608)\r\n\t\t\t\t(xy 138.619797 119.17389) (xy 138.619797 119.173888) (xy 138.619799 119.173886) (xy 138.6505 119.059309)\r\n\t\t\t\t(xy 138.6505 118.940691) (xy 139.3495 118.940691) (xy 139.3495 119.059309) (xy 139.354137 119.076613)\r\n\t\t\t\t(xy 139.380202 119.17389) (xy 139.439507 119.276608) (xy 139.439509 119.27661) (xy 139.439511 119.276613)\r\n\t\t\t\t(xy 139.523387 119.360489) (xy 139.523389 119.36049) (xy 139.523391 119.360492) (xy 139.62611 119.419797)\r\n\t\t\t\t(xy 139.626111 119.419797) (xy 139.626114 119.419799) (xy 139.740691 119.4505) (xy 139.740693 119.4505)\r\n\t\t\t\t(xy 139.859307 119.4505) (xy 139.859309 119.4505) (xy 139.973886 119.419799) (xy 139.973888 119.419797)\r\n\t\t\t\t(xy 139.97389 119.419797) (xy 140.076608 119.360492) (xy 140.076608 119.360491) (xy 140.076613 119.360489)\r\n\t\t\t\t(xy 140.160489 119.276613) (xy 140.160492 119.276608) (xy 140.219797 119.17389) (xy 140.219797 119.173888)\r\n\t\t\t\t(xy 140.219799 119.173886) (xy 140.2505 119.059309) (xy 140.2505 118.940691) (xy 140.9495 118.940691)\r\n\t\t\t\t(xy 140.9495 119.059309) (xy 140.954137 119.076613) (xy 140.980202 119.17389) (xy 141.039507 119.276608)\r\n\t\t\t\t(xy 141.039509 119.27661) (xy 141.039511 119.276613) (xy 141.123387 119.360489) (xy 141.123389 119.36049)\r\n\t\t\t\t(xy 141.123391 119.360492) (xy 141.22611 119.419797) (xy 141.226111 119.419797) (xy 141.226114 119.419799)\r\n\t\t\t\t(xy 141.340691 119.4505) (xy 141.340693 119.4505) (xy 141.459307 119.4505) (xy 141.459309 119.4505)\r\n\t\t\t\t(xy 141.573886 119.419799) (xy 141.573888 119.419797) (xy 141.57389 119.419797) (xy 141.676608 119.360492)\r\n\t\t\t\t(xy 141.676608 119.360491) (xy 141.676613 119.360489) (xy 141.696411 119.340691) (xy 144.3495 119.340691)\r\n\t\t\t\t(xy 144.3495 119.459309) (xy 144.373667 119.5495) (xy 144.380202 119.57389) (xy 144.439507 119.676608)\r\n\t\t\t\t(xy 144.439509 119.67661) (xy 144.439511 119.676613) (xy 144.523387 119.760489) (xy 144.523389 119.76049)\r\n\t\t\t\t(xy 144.523391 119.760492) (xy 144.62611 119.819797) (xy 144.626111 119.819797) (xy 144.626114 119.819799)\r\n\t\t\t\t(xy 144.740691 119.8505) (xy 144.740693 119.8505) (xy 144.859307 119.8505) (xy 144.859309 119.8505)\r\n\t\t\t\t(xy 144.973886 119.819799) (xy 144.973888 119.819797) (xy 144.97389 119.819797) (xy 145.076608 119.760492)\r\n\t\t\t\t(xy 145.076608 119.760491) (xy 145.076613 119.760489) (xy 145.160489 119.676613) (xy 145.18191 119.639511)\r\n\t\t\t\t(xy 145.219797 119.57389) (xy 145.219797 119.573888) (xy 145.219799 119.573886) (xy 145.2505 119.459309)\r\n\t\t\t\t(xy 145.2505 119.340691) (xy 145.219799 119.226114) (xy 145.219797 119.226111) (xy 145.219797 119.226109)\r\n\t\t\t\t(xy 145.160492 119.123391) (xy 145.16049 119.123389) (xy 145.160489 119.123387) (xy 145.076613 119.039511)\r\n\t\t\t\t(xy 145.07661 119.039509) (xy 145.076608 119.039507) (xy 144.973889 118.980202) (xy 144.97389 118.980202)\r\n\t\t\t\t(xy 144.950318 118.973886) (xy 144.859309 118.9495) (xy 144.740691 118.9495) (xy 144.699669 118.960492)\r\n\t\t\t\t(xy 144.626109 118.980202) (xy 144.523391 119.039507) (xy 144.439507 119.123391) (xy 144.380202 119.226109)\r\n\t\t\t\t(xy 144.380201 119.226114) (xy 144.3495 119.340691) (xy 141.696411 119.340691) (xy 141.760489 119.276613)\r\n\t\t\t\t(xy 141.760492 119.276608) (xy 141.819797 119.17389) (xy 141.819797 119.173888) (xy 141.819799 119.173886)\r\n\t\t\t\t(xy 141.8505 119.059309) (xy 141.8505 118' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'.940691) (xy 141.819799 118.826114) (xy 141.819797 118.826111)\r\n\t\t\t\t(xy 141.819797 118.826109) (xy 141.795313 118.783702) (xy 141.77048 118.740691) (xy 142.3495 118.740691)\r\n\t\t\t\t(xy 142.3495 118.859309) (xy 142.354137 118.876613) (xy 142.380202 118.97389) (xy 142.439507 119.076608)\r\n\t\t\t\t(xy 142.439509 119.07661) (xy 142.439511 119.076613) (xy 142.523387 119.160489) (xy 142.523389 119.16049)\r\n\t\t\t\t(xy 142.523391 119.160492) (xy 142.62611 119.219797) (xy 142.626111 119.219797) (xy 142.626114 119.219799)\r\n\t\t\t\t(xy 142.740691 119.2505) (xy 142.740693 119.2505) (xy 142.859307 119.2505) (xy 142.859309 119.2505)\r\n\t\t\t\t(xy 142.973886 119.219799) (xy 142.973888 119.219797) (xy 142.97389 119.219797) (xy 143.076608 119.160492)\r\n\t\t\t\t(xy 143.076608 119.160491) (xy 143.076613 119.160489) (xy 143.160489 119.076613) (xy 143.170481 119.059307)\r\n\t\t\t\t(xy 143.219797 118.97389) (xy 143.219797 118.973888) (xy 143.219799 118.973886) (xy 143.2505 118.859309)\r\n\t\t\t\t(xy 143.2505 118.740691) (xy 143.219799 118.626114) (xy 143.219797 118.626111) (xy 143.219797 118.626109)\r\n\t\t\t\t(xy 143.195313 118.583702) (xy 143.17048 118.540691) (xy 145.1495 118.540691) (xy 145.1495 118.659309)\r\n\t\t\t\t(xy 145.154137 118.676613) (xy 145.180202 118.77389) (xy 145.239507 118.876608) (xy 145.239509 118.87661)\r\n\t\t\t\t(xy 145.239511 118.876613) (xy 145.323387 118.960489) (xy 145.323389 118.96049) (xy 145.323391 118.960492)\r\n\t\t\t\t(xy 145.42611 119.019797) (xy 145.426111 119.019797) (xy 145.426114 119.019799) (xy 145.540691 119.0505)\r\n\t\t\t\t(xy 145.540693 119.0505) (xy 145.659307 119.0505) (xy 145.659309 119.0505) (xy 145.773886 119.019799)\r\n\t\t\t\t(xy 145.773888 119.019797) (xy 145.77389 119.019797) (xy 145.876608 118.960492) (xy 145.876608 118.960491)\r\n\t\t\t\t(xy 145.876613 118.960489) (xy 145.896411 118.940691) (xy 147.3495 118.940691) (xy 147.3495 119.059309)\r\n\t\t\t\t(xy 147.354137 119.076613) (xy 147.380202 119.17389) (xy 147.439507 119.276608) (xy 147.439509 119.27661)\r\n\t\t\t\t(xy 147.439511 119.276613) (xy 147.523387 119.360489) (xy 147.523389 119.36049) (xy 147.523391 119.360492)\r\n\t\t\t\t(xy 147.62611 119.419797) (xy 147.626111 119.419797) (xy 147.626114 119.419799) (xy 147.740691 119.4505)\r\n\t\t\t\t(xy 147.740693 119.4505) (xy 147.859307 119.4505) (xy 147.859309 119.4505) (xy 147.973886 119.419799)\r\n\t\t\t\t(xy 147.973888 119.419797) (xy 147.97389 119.419797) (xy 148.076608 119.360492) (xy 148.076608 119.360491)\r\n\t\t\t\t(xy 148.076613 119.360489) (xy 148.160489 119.276613) (xy 148.160492 119.276608) (xy 148.219797 119.17389)\r\n\t\t\t\t(xy 148.219797 119.173888) (xy 148.219799 119.173886) (xy 148.2505 119.059309) (xy 148.2505 118.940691)\r\n\t\t\t\t(xy 148.219799 118.826114) (xy 148.219797 118.826111) (xy 148.219797 118.826109) (xy 148.160492 118.723391)\r\n\t\t\t\t(xy 148.16049 118.723389) (xy 148.160489 118.723387) (xy 148.076613 118.639511) (xy 148.07661 118.639509)\r\n\t\t\t\t(xy 148.076608 118.639507) (xy 147.973889 118.580202) (xy 147.97389 118.580202) (xy 147.950318 118.573886)\r\n\t\t\t\t(xy 147.859309 118.5495) (xy 147.740691 118.5495) (xy 147.670567 118.568289) (xy 147.626109 118.580202)\r\n\t\t\t\t(xy 147.523391 118.639507) (xy 147.439507 118.723391) (xy 147.380202 118.826109) (xy 147.380201 118.826114)\r\n\t\t\t\t(xy 147.3495 118.940691) (xy 145.896411 118.940691) (xy 145.960489 118.876613) (xy 145.970481 118.859307)\r\n\t\t\t\t(xy 146.019797 118.77389) (xy 146.019797 118.773888) (xy 146.019799 118.773886) (xy 146.0505 118.659309)\r\n\t\t\t\t(xy 146.0505 118.540691) (xy 146.019799 118.426114) (xy 146.019797 118.426111) (xy 146.019797 118.426109)\r\n\t\t\t\t(xy 145.960492 118.323391) (xy 145.96049 118.323389) (xy 145.960489 118.323387) (xy 145.876613 118.239511)\r\n\t\t\t\t(xy 145.87661 118.239509) (xy 145.876608 118.239507) (xy 145.773889 118.180202) (xy 145.77389 118.180202)\r\n\t\t\t\t(xy 145.760351 118.176574) (xy 145.659309 118.1495) (xy 145.540691 118.1495) (xy 145.499669 118.160492)\r\n\t\t\t\t(xy 145.426109 118.180202) (xy 145.323391 118.239507) (xy 145.239507 118.323391) (xy 145.180202 118.426109)\r\n\t\t\t\t(xy 145.180201 118.426114) (xy 145.1495 118.540691) (xy 143.17048 118.540691) (xy 143.160492 118.523391)\r\n\t\t\t\t(xy 143.16049 118.523389) (xy 143.160489 118.523387) (xy 143.076613 118.439511) (xy 143.07661 118.439509)\r\n\t\t\t\t(xy 143.076608 118.439507) (xy 142.973889 118.380202) (xy 142.97389 118.380202) (xy 142.960351 118.376574)\r\n\t\t\t\t(xy 142.859309 118.3495) (xy 142.740691 118.3495) (xy 142.670567 118.368289) (xy 142.626109 118.380202)\r\n\t\t\t\t(xy 142.523391 118.439507) (xy 142.439507 118.523391) (xy 142.380202 118.626109) (xy 142.380201 118.626114)\r\n\t\t\t\t(xy 142.3495 118.740691) (xy 141.77048 118.740691) (xy 141.760492 118.723391) (xy 141.76049 118.723389)\r\n\t\t\t\t(xy 141.760489 118.723387) (xy 141.676613 118.639511) (xy 141.67661 118.639509) (xy 141.676608 118.639507)\r\n\t\t\t\t(xy 141.573889 118.580202) (xy 141.57389 118.580202) (xy 141.550318 118.573886) (xy 141.459309 118.5495)\r\n\t\t\t\t(xy 141.340691 118.5495) (xy 141.270567 118.568289) (xy 141.226109 118.580202) (xy 141.123391 118.639507)\r\n\t\t\t\t(xy 141.039507 118.723391) (xy 140.980202 118.826109) (xy 140.980201 118.826114) (xy 140.9495 118.940691)\r\n\t\t\t\t(xy 140.2505 118.940691) (xy 140.219799 118.826114) (xy 140.219797 118.826111) (xy 140.219797 118.826109)\r\n\t\t\t\t(xy 140.160492 118.723391) (xy 140.16049 118.723389) (xy 140.160489 118.723387) (xy 140.076613 118.639511)\r\n\t\t\t\t(xy 140.07661 118.639509) (xy 140.076608 118.639507) (xy 139.973889 118.580202) (xy 139.97389 118.580202)\r\n\t\t\t\t(xy 139.950318 118.573886) (xy 139.859309 118.5495) (xy 139.740691 118.5495) (xy 139.670567 118.568289)\r\n\t\t\t\t(xy 139.626109 118.580202) (xy 139.523391 118.639507) (xy 139.439507 118.723391) (xy 139.380202 118.826109)\r\n\t\t\t\t(xy 139.380201 118.826114) (xy 139.3495 118.940691) (xy 138.6505 118.940691) (xy 138.619799 118.826114)\r\n\t\t\t\t(xy 138.619797 118.826111) (xy 138.619797 118.826109) (xy 138.560492 118.723391) (xy 138.56049 118.723389)\r\n\t\t\t\t(xy 138.560489 118.723387) (xy 138.476613 118.639511) (xy 138.47661 118.639509) (xy 138.476608 118.639507)\r\n\t\t\t\t(xy 138.373889 118.580202) (xy 138.37389 118.580202) (xy 138.350318 118.573886) (xy 138.259309 118.5495)\r\n\t\t\t\t(xy 138.140691 118.5495) (xy 138.070567 118.568289) (xy 138.026109 118.580202) (xy 137.923391 118.639507)\r\n\t\t\t\t(xy 137.839507 118.723391) (xy 137.780202 118.826109) (xy 137.780201 118.826114) (xy 137.7495 118.940691)\r\n\t\t\t\t(xy 137.0505 118.940691) (xy 137.019799 118.826114) (xy 137.019797 118.826111) (xy 137.019797 118.826109)\r\n\t\t\t\t(xy 136.960492 118.723391) (xy 136.96049 118.723389) (xy 136.960489 118.723387) (xy 136.876613 118.639511)\r\n\t\t\t\t(xy 136.87661 118.639509) (xy 136.876608 118.639507) (xy 136.773889 118.580202) (xy 136.77389 118.580202)\r\n\t\t\t\t(xy 136.750318 118.573886) (xy 136.659309 118.5495) (xy 136.540691 118.5495) (xy 136.470567 118.568289)\r\n\t\t\t\t(xy 136.426109 118.580202) (xy 136.323391 118.639507) (xy 136.239507 118.723391) (xy 136.180202 118.826109)\r\n\t\t\t\t(xy 136.180201 118.826114) (xy 136.1495 118.940691) (xy 135.4505 118.940691) (xy 135.419799 118.826114)\r\n\t\t\t\t(xy 135.419797 118.826111) (xy 135.419797 118.826109) (xy 135.360492 118.723391) (xy 135.36049 118.723389)\r\n\t\t\t\t(xy 135.360489 118.723387) (xy 135.276613 118.639511) (xy 135.27661 118.639509) (xy 135.276608 118.639507)\r\n\t\t\t\t(xy 135.173889 118.580202) (xy 135.17389 118.580202) (xy 135.150318 118.573886) (xy 135.059309 118.5495)\r\n\t\t\t\t(xy 134.940691 118.5495) (xy 134.870567 118.568289) (xy 134.826109 118.580202) (xy 134.723391 118.639507)\r\n\t\t\t\t(xy 134.639507 118.723391) (xy 134.580202 118.826109) (xy 134.580201 118.826114) (xy 134.5495 118.940691)\r\n\t\t\t\t(xy 133.8505 118.940691) (xy 133.819799 118.826114) (xy 133.819797 118.826111) (xy 133.819797 118.826109)\r\n\t\t\t\t(xy 133.760492 118.723391) (xy 133.76049 118.723389) (xy 133.760489 118.723387) (xy 133.676613 118.639511)\r\n\t\t\t\t(xy 133.67661 118.639509) (xy 133.676608 118.639507) (xy 133.573889 118.580202) (xy 133.57389 118.580202)\r\n\t\t\t\t(xy 133.550318 118.573886) (xy 133.459309 118.5495) (xy 133.340691 118.5495) (xy 133.270567 118.568289)\r\n\t\t\t\t(xy 133.226109 118.580202) (xy 133.123391 118.639507) (xy 133.039507 118.723391) (xy 132.980202 118.826109)\r\n\t\t\t\t(xy 132.980201 118.826114) (xy 132.9495 118.940691) (xy 132.2505 118.940691) (xy 132.219799 118.826114)\r\n\t\t\t\t(xy 132.219797 118.826111) (xy 132.219' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'797 118.826109) (xy 132.160492 118.723391) (xy 132.16049 118.723389)\r\n\t\t\t\t(xy 132.160489 118.723387) (xy 132.076613 118.639511) (xy 132.07661 118.639509) (xy 132.076608 118.639507)\r\n\t\t\t\t(xy 131.973889 118.580202) (xy 131.97389 118.580202) (xy 131.950318 118.573886) (xy 131.859309 118.5495)\r\n\t\t\t\t(xy 131.740691 118.5495) (xy 131.670567 118.568289) (xy 131.626109 118.580202) (xy 131.523391 118.639507)\r\n\t\t\t\t(xy 131.439507 118.723391) (xy 131.380202 118.826109) (xy 131.380201 118.826114) (xy 131.3495 118.940691)\r\n\t\t\t\t(xy 130.6505 118.940691) (xy 130.619799 118.826114) (xy 130.619797 118.826111) (xy 130.619797 118.826109)\r\n\t\t\t\t(xy 130.560492 118.723391) (xy 130.56049 118.723389) (xy 130.560489 118.723387) (xy 130.476613 118.639511)\r\n\t\t\t\t(xy 130.47661 118.639509) (xy 130.476608 118.639507) (xy 130.373889 118.580202) (xy 130.37389 118.580202)\r\n\t\t\t\t(xy 130.350318 118.573886) (xy 130.259309 118.5495) (xy 130.140691 118.5495) (xy 130.070567 118.568289)\r\n\t\t\t\t(xy 130.026109 118.580202) (xy 129.923391 118.639507) (xy 129.839507 118.723391) (xy 129.780202 118.826109)\r\n\t\t\t\t(xy 129.780201 118.826114) (xy 129.7495 118.940691) (xy 129.0505 118.940691) (xy 129.019799 118.826114)\r\n\t\t\t\t(xy 129.019797 118.826111) (xy 129.019797 118.826109) (xy 128.960492 118.723391) (xy 128.96049 118.723389)\r\n\t\t\t\t(xy 128.960489 118.723387) (xy 128.876613 118.639511) (xy 128.87661 118.639509) (xy 128.876608 118.639507)\r\n\t\t\t\t(xy 128.773889 118.580202) (xy 128.77389 118.580202) (xy 128.750318 118.573886) (xy 128.659309 118.5495)\r\n\t\t\t\t(xy 128.540691 118.5495) (xy 128.470567 118.568289) (xy 128.426109 118.580202) (xy 128.323391 118.639507)\r\n\t\t\t\t(xy 128.239507 118.723391) (xy 128.180202 118.826109) (xy 128.180201 118.826114) (xy 128.1495 118.940691)\r\n\t\t\t\t(xy 127.4505 118.940691) (xy 127.419799 118.826114) (xy 127.419797 118.826111) (xy 127.419797 118.826109)\r\n\t\t\t\t(xy 127.360492 118.723391) (xy 127.36049 118.723389) (xy 127.360489 118.723387) (xy 127.276613 118.639511)\r\n\t\t\t\t(xy 127.27661 118.639509) (xy 127.276608 118.639507) (xy 127.173889 118.580202) (xy 127.17389 118.580202)\r\n\t\t\t\t(xy 127.150318 118.573886) (xy 127.059309 118.5495) (xy 126.940691 118.5495) (xy 126.870567 118.568289)\r\n\t\t\t\t(xy 126.826109 118.580202) (xy 126.723391 118.639507) (xy 126.639507 118.723391) (xy 126.580202 118.826109)\r\n\t\t\t\t(xy 126.580201 118.826114) (xy 126.5495 118.940691) (xy 125.8505 118.940691) (xy 125.819799 118.826114)\r\n\t\t\t\t(xy 125.819797 118.826111) (xy 125.819797 118.826109) (xy 125.760492 118.723391) (xy 125.76049 118.723389)\r\n\t\t\t\t(xy 125.760489 118.723387) (xy 125.676613 118.639511) (xy 125.67661 118.639509) (xy 125.676608 118.639507)\r\n\t\t\t\t(xy 125.573889 118.580202) (xy 125.57389 118.580202) (xy 125.550318 118.573886) (xy 125.459309 118.5495)\r\n\t\t\t\t(xy 125.340691 118.5495) (xy 125.270567 118.568289) (xy 125.226109 118.580202) (xy 125.123391 118.639507)\r\n\t\t\t\t(xy 125.039507 118.723391) (xy 124.980202 118.826109) (xy 124.980201 118.826114) (xy 124.9495 118.940691)\r\n\t\t\t\t(xy 124.2505 118.940691) (xy 124.219799 118.826114) (xy 124.219797 118.826111) (xy 124.219797 118.826109)\r\n\t\t\t\t(xy 124.160492 118.723391) (xy 124.16049 118.723389) (xy 124.160489 118.723387) (xy 124.076613 118.639511)\r\n\t\t\t\t(xy 124.07661 118.639509) (xy 124.076608 118.639507) (xy 123.973889 118.580202) (xy 123.97389 118.580202)\r\n\t\t\t\t(xy 123.950318 118.573886) (xy 123.859309 118.5495) (xy 123.740691 118.5495) (xy 123.670567 118.568289)\r\n\t\t\t\t(xy 123.626109 118.580202) (xy 123.523391 118.639507) (xy 123.439507 118.723391) (xy 123.380202 118.826109)\r\n\t\t\t\t(xy 123.380201 118.826114) (xy 123.3495 118.940691) (xy 122.6505 118.940691) (xy 122.619799 118.826114)\r\n\t\t\t\t(xy 122.619797 118.826111) (xy 122.619797 118.826109) (xy 122.560492 118.723391) (xy 122.56049 118.723389)\r\n\t\t\t\t(xy 122.560489 118.723387) (xy 122.476613 118.639511) (xy 122.47661 118.639509) (xy 122.476608 118.639507)\r\n\t\t\t\t(xy 122.373889 118.580202) (xy 122.37389 118.580202) (xy 122.350318 118.573886) (xy 122.259309 118.5495)\r\n\t\t\t\t(xy 122.140691 118.5495) (xy 122.070567 118.568289) (xy 122.026109 118.580202) (xy 121.923391 118.639507)\r\n\t\t\t\t(xy 121.839507 118.723391) (xy 121.780202 118.826109) (xy 121.780201 118.826114) (xy 121.7495 118.940691)\r\n\t\t\t\t(xy 121.0505 118.940691) (xy 121.019799 118.826114) (xy 121.019797 118.826111) (xy 121.019797 118.826109)\r\n\t\t\t\t(xy 120.960492 118.723391) (xy 120.96049 118.723389) (xy 120.960489 118.723387) (xy 120.876613 118.639511)\r\n\t\t\t\t(xy 120.87661 118.639509) (xy 120.876608 118.639507) (xy 120.773889 118.580202) (xy 120.77389 118.580202)\r\n\t\t\t\t(xy 120.750318 118.573886) (xy 120.659309 118.5495) (xy 120.540691 118.5495) (xy 120.470567 118.568289)\r\n\t\t\t\t(xy 120.426109 118.580202) (xy 120.323391 118.639507) (xy 120.239507 118.723391) (xy 120.180202 118.826109)\r\n\t\t\t\t(xy 120.180201 118.826114) (xy 120.1495 118.940691) (xy 119.4505 118.940691) (xy 119.419799 118.826114)\r\n\t\t\t\t(xy 119.419797 118.826111) (xy 119.419797 118.826109) (xy 119.360492 118.723391) (xy 119.36049 118.723389)\r\n\t\t\t\t(xy 119.360489 118.723387) (xy 119.276613 118.639511) (xy 119.27661 118.639509) (xy 119.276608 118.639507)\r\n\t\t\t\t(xy 119.173889 118.580202) (xy 119.17389 118.580202) (xy 119.150318 118.573886) (xy 119.059309 118.5495)\r\n\t\t\t\t(xy 118.940691 118.5495) (xy 118.870567 118.568289) (xy 118.826109 118.580202) (xy 118.723391 118.639507)\r\n\t\t\t\t(xy 118.639507 118.723391) (xy 118.580202 118.826109) (xy 118.580201 118.826114) (xy 118.5495 118.940691)\r\n\t\t\t\t(xy 117.8505 118.940691) (xy 117.819799 118.826114) (xy 117.819797 118.826111) (xy 117.819797 118.826109)\r\n\t\t\t\t(xy 117.760492 118.723391) (xy 117.76049 118.723389) (xy 117.760489 118.723387) (xy 117.676613 118.639511)\r\n\t\t\t\t(xy 117.67661 118.639509) (xy 117.676608 118.639507) (xy 117.573889 118.580202) (xy 117.57389 118.580202)\r\n\t\t\t\t(xy 117.550318 118.573886) (xy 117.459309 118.5495) (xy 117.340691 118.5495) (xy 117.270567 118.568289)\r\n\t\t\t\t(xy 117.226109 118.580202) (xy 117.123391 118.639507) (xy 117.039507 118.723391) (xy 116.980202 118.826109)\r\n\t\t\t\t(xy 116.980201 118.826114) (xy 116.9495 118.940691) (xy 116.2505 118.940691) (xy 116.219799 118.826114)\r\n\t\t\t\t(xy 116.219797 118.826111) (xy 116.219797 118.826109) (xy 116.160492 118.723391) (xy 116.16049 118.723389)\r\n\t\t\t\t(xy 116.160489 118.723387) (xy 116.076613 118.639511) (xy 116.07661 118.639509) (xy 116.076608 118.639507)\r\n\t\t\t\t(xy 115.973889 118.580202) (xy 115.97389 118.580202) (xy 115.950318 118.573886) (xy 115.859309 118.5495)\r\n\t\t\t\t(xy 115.740691 118.5495) (xy 115.670567 118.568289) (xy 115.626109 118.580202) (xy 115.523391 118.639507)\r\n\t\t\t\t(xy 115.439507 118.723391) (xy 115.380202 118.826109) (xy 115.380201 118.826114) (xy 115.3495 118.940691)\r\n\t\t\t\t(xy 114.6505 118.940691) (xy 114.619799 118.826114) (xy 114.619797 118.826111) (xy 114.619797 118.826109)\r\n\t\t\t\t(xy 114.560492 118.723391) (xy 114.56049 118.723389) (xy 114.560489 118.723387) (xy 114.476613 118.639511)\r\n\t\t\t\t(xy 114.47661 118.639509) (xy 114.476608 118.639507) (xy 114.373889 118.580202) (xy 114.37389 118.580202)\r\n\t\t\t\t(xy 114.350318 118.573886) (xy 114.259309 118.5495) (xy 114.140691 118.5495) (xy 114.070567 118.568289)\r\n\t\t\t\t(xy 114.026109 118.580202) (xy 113.923391 118.639507) (xy 113.839507 118.723391) (xy 113.780202 118.826109)\r\n\t\t\t\t(xy 113.780201 118.826114) (xy 113.7495 118.940691) (xy 113.0505 118.940691) (xy 113.019799 118.826114)\r\n\t\t\t\t(xy 113.019797 118.826111) (xy 113.019797 118.826109) (xy 112.960492 118.723391) (xy 112.96049 118.723389)\r\n\t\t\t\t(xy 112.960489 118.723387) (xy 112.876613 118.639511) (xy 112.87661 118.639509) (xy 112.876608 118.639507)\r\n\t\t\t\t(xy 112.773889 118.580202) (xy 112.77389 118.580202) (xy 112.750318 118.573886) (xy 112.659309 118.5495)\r\n\t\t\t\t(xy 112.540691 118.5495) (xy 112.470567 118.568289) (xy 112.426109 118.580202) (xy 112.323391 118.639507)\r\n\t\t\t\t(xy 112.239507 118.723391) (xy 112.180202 118.826109) (xy 112.180201 118.826114) (xy 112.1495 118.940691)\r\n\t\t\t\t(xy 111.4505 118.940691) (xy 111.419799 118.826114) (xy 111.419797 118.826111) (xy 111.419797 118.826109)\r\n\t\t\t\t(xy 111.360492 118.723391) (xy 111.36049 118.723389) (xy 111.360489 118.723387) (xy 111.276613 118.639511)\r\n\t\t\t\t(xy 111.27661 118.639509) (xy 111.276608 118.639507) (xy 111.173889 118.580202) (xy 111.17389 118.580202)\r\n\t\t\t\t(xy 111.150318' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' 118.573886) (xy 111.059309 118.5495) (xy 110.940691 118.5495) (xy 110.870567 118.568289)\r\n\t\t\t\t(xy 110.826109 118.580202) (xy 110.723391 118.639507) (xy 110.639507 118.723391) (xy 110.580202 118.826109)\r\n\t\t\t\t(xy 110.580201 118.826114) (xy 110.5495 118.940691) (xy 109.8505 118.940691) (xy 109.819799 118.826114)\r\n\t\t\t\t(xy 109.819797 118.826111) (xy 109.819797 118.826109) (xy 109.760492 118.723391) (xy 109.76049 118.723389)\r\n\t\t\t\t(xy 109.760489 118.723387) (xy 109.676613 118.639511) (xy 109.67661 118.639509) (xy 109.676608 118.639507)\r\n\t\t\t\t(xy 109.573889 118.580202) (xy 109.57389 118.580202) (xy 109.550318 118.573886) (xy 109.459309 118.5495)\r\n\t\t\t\t(xy 109.340691 118.5495) (xy 109.270567 118.568289) (xy 109.226109 118.580202) (xy 109.123391 118.639507)\r\n\t\t\t\t(xy 109.039507 118.723391) (xy 108.980202 118.826109) (xy 108.980201 118.826114) (xy 108.9495 118.940691)\r\n\t\t\t\t(xy 108.6505 118.940691) (xy 108.619799 118.826114) (xy 108.619797 118.826111) (xy 108.619797 118.826109)\r\n\t\t\t\t(xy 108.560492 118.723391) (xy 108.56049 118.723389) (xy 108.560489 118.723387) (xy 108.476613 118.639511)\r\n\t\t\t\t(xy 108.47661 118.639509) (xy 108.476608 118.639507) (xy 108.373889 118.580202) (xy 108.37389 118.580202)\r\n\t\t\t\t(xy 108.350318 118.573886) (xy 108.259309 118.5495) (xy 108.140691 118.5495) (xy 108.070567 118.568289)\r\n\t\t\t\t(xy 108.026109 118.580202) (xy 107.923391 118.639507) (xy 107.839507 118.723391) (xy 107.780202 118.826109)\r\n\t\t\t\t(xy 107.780201 118.826114) (xy 107.7495 118.940691) (xy 105.896411 118.940691) (xy 105.960489 118.876613)\r\n\t\t\t\t(xy 105.970481 118.859307) (xy 106.019797 118.77389) (xy 106.019797 118.773888) (xy 106.019799 118.773886)\r\n\t\t\t\t(xy 106.0505 118.659309) (xy 106.0505 118.540691) (xy 106.019799 118.426114) (xy 106.019797 118.426111)\r\n\t\t\t\t(xy 106.019797 118.426109) (xy 105.960492 118.323391) (xy 105.96049 118.323389) (xy 105.960489 118.323387)\r\n\t\t\t\t(xy 105.876613 118.239511) (xy 105.87661 118.239509) (xy 105.876608 118.239507) (xy 105.773889 118.180202)\r\n\t\t\t\t(xy 105.77389 118.180202) (xy 105.760351 118.176574) (xy 105.659309 118.1495) (xy 105.540691 118.1495)\r\n\t\t\t\t(xy 105.499669 118.160492) (xy 105.426109 118.180202) (xy 105.323391 118.239507) (xy 105.239507 118.323391)\r\n\t\t\t\t(xy 105.180202 118.426109) (xy 105.180201 118.426114) (xy 105.1495 118.540691) (xy 104.428694 118.540691)\r\n\t\t\t\t(xy 104.433329 118.523391) (xy 104.437298 118.508581) (xy 104.437298 118.508579) (xy 104.4505 118.459309)\r\n\t\t\t\t(xy 104.4505 118.340691) (xy 104.419799 118.226114) (xy 104.39723 118.187025) (xy 104.384509 118.127178)\r\n\t\t\t\t(xy 104.409395 118.071282) (xy 104.462382 118.040689) (xy 104.508587 118.041897) (xy 104.540691 118.0505)\r\n\t\t\t\t(xy 104.540693 118.0505) (xy 104.659307 118.0505) (xy 104.659309 118.0505) (xy 104.773886 118.019799)\r\n\t\t\t\t(xy 104.773888 118.019797) (xy 104.77389 118.019797) (xy 104.876608 117.960492) (xy 104.876608 117.960491)\r\n\t\t\t\t(xy 104.876613 117.960489) (xy 104.960489 117.876613) (xy 104.970481 117.859307) (xy 105.019797 117.77389)\r\n\t\t\t\t(xy 105.019797 117.773888) (xy 105.019799 117.773886) (xy 105.0505 117.659309) (xy 105.0505 117.540691)\r\n\t\t\t\t(xy 105.019799 117.426114) (xy 105.019797 117.426111) (xy 105.019797 117.426109) (xy 104.995313 117.383702)\r\n\t\t\t\t(xy 104.97048 117.340691) (xy 105.7495 117.340691) (xy 105.7495 117.459309) (xy 105.754137 117.476613)\r\n\t\t\t\t(xy 105.780202 117.57389) (xy 105.839507 117.676608) (xy 105.839509 117.67661) (xy 105.839511 117.676613)\r\n\t\t\t\t(xy 105.923387 117.760489) (xy 105.923389 117.76049) (xy 105.923391 117.760492) (xy 106.02611 117.819797)\r\n\t\t\t\t(xy 106.026111 117.819797) (xy 106.026114 117.819799) (xy 106.140691 117.8505) (xy 106.140693 117.8505)\r\n\t\t\t\t(xy 106.259307 117.8505) (xy 106.259309 117.8505) (xy 106.373886 117.819799) (xy 106.373888 117.819797)\r\n\t\t\t\t(xy 106.37389 117.819797) (xy 106.476608 117.760492) (xy 106.476608 117.760491) (xy 106.476613 117.760489)\r\n\t\t\t\t(xy 106.560489 117.676613) (xy 106.570481 117.659307) (xy 106.619797 117.57389) (xy 106.619797 117.573888)\r\n\t\t\t\t(xy 106.619799 117.573886) (xy 106.6505 117.459309) (xy 106.6505 117.340691) (xy 107.3495 117.340691)\r\n\t\t\t\t(xy 107.3495 117.459309) (xy 107.354137 117.476613) (xy 107.380202 117.57389) (xy 107.439507 117.676608)\r\n\t\t\t\t(xy 107.439509 117.67661) (xy 107.439511 117.676613) (xy 107.523387 117.760489) (xy 107.523389 117.76049)\r\n\t\t\t\t(xy 107.523391 117.760492) (xy 107.62611 117.819797) (xy 107.626111 117.819797) (xy 107.626114 117.819799)\r\n\t\t\t\t(xy 107.740691 117.8505) (xy 107.740693 117.8505) (xy 107.859307 117.8505) (xy 107.859309 117.8505)\r\n\t\t\t\t(xy 107.973886 117.819799) (xy 107.973888 117.819797) (xy 107.97389 117.819797) (xy 108.076608 117.760492)\r\n\t\t\t\t(xy 108.076608 117.760491) (xy 108.076613 117.760489) (xy 108.160489 117.676613) (xy 108.170481 117.659307)\r\n\t\t\t\t(xy 108.219797 117.57389) (xy 108.219797 117.573888) (xy 108.219799 117.573886) (xy 108.2505 117.459309)\r\n\t\t\t\t(xy 108.2505 117.340691) (xy 108.9495 117.340691) (xy 108.9495 117.459309) (xy 108.954137 117.476613)\r\n\t\t\t\t(xy 108.980202 117.57389) (xy 109.039507 117.676608) (xy 109.039509 117.67661) (xy 109.039511 117.676613)\r\n\t\t\t\t(xy 109.123387 117.760489) (xy 109.123389 117.76049) (xy 109.123391 117.760492) (xy 109.22611 117.819797)\r\n\t\t\t\t(xy 109.226111 117.819797) (xy 109.226114 117.819799) (xy 109.340691 117.8505) (xy 109.340693 117.8505)\r\n\t\t\t\t(xy 109.459307 117.8505) (xy 109.459309 117.8505) (xy 109.573886 117.819799) (xy 109.573888 117.819797)\r\n\t\t\t\t(xy 109.57389 117.819797) (xy 109.676608 117.760492) (xy 109.676608 117.760491) (xy 109.676613 117.760489)\r\n\t\t\t\t(xy 109.760489 117.676613) (xy 109.770481 117.659307) (xy 109.819797 117.57389) (xy 109.819797 117.573888)\r\n\t\t\t\t(xy 109.819799 117.573886) (xy 109.8505 117.459309) (xy 109.8505 117.340691) (xy 110.5495 117.340691)\r\n\t\t\t\t(xy 110.5495 117.459309) (xy 110.554137 117.476613) (xy 110.580202 117.57389) (xy 110.639507 117.676608)\r\n\t\t\t\t(xy 110.639509 117.67661) (xy 110.639511 117.676613) (xy 110.723387 117.760489) (xy 110.723389 117.76049)\r\n\t\t\t\t(xy 110.723391 117.760492) (xy 110.82611 117.819797) (xy 110.826111 117.819797) (xy 110.826114 117.819799)\r\n\t\t\t\t(xy 110.940691 117.8505) (xy 110.940693 117.8505) (xy 111.059307 117.8505) (xy 111.059309 117.8505)\r\n\t\t\t\t(xy 111.173886 117.819799) (xy 111.173888 117.819797) (xy 111.17389 117.819797) (xy 111.276608 117.760492)\r\n\t\t\t\t(xy 111.276608 117.760491) (xy 111.276613 117.760489) (xy 111.360489 117.676613) (xy 111.370481 117.659307)\r\n\t\t\t\t(xy 111.419797 117.57389) (xy 111.419797 117.573888) (xy 111.419799 117.573886) (xy 111.4505 117.459309)\r\n\t\t\t\t(xy 111.4505 117.340691) (xy 112.1495 117.340691) (xy 112.1495 117.459309) (xy 112.154137 117.476613)\r\n\t\t\t\t(xy 112.180202 117.57389) (xy 112.239507 117.676608) (xy 112.239509 117.67661) (xy 112.239511 117.676613)\r\n\t\t\t\t(xy 112.323387 117.760489) (xy 112.323389 117.76049) (xy 112.323391 117.760492) (xy 112.42611 117.819797)\r\n\t\t\t\t(xy 112.426111 117.819797) (xy 112.426114 117.819799) (xy 112.540691 117.8505) (xy 112.540693 117.8505)\r\n\t\t\t\t(xy 112.659307 117.8505) (xy 112.659309 117.8505) (xy 112.773886 117.819799) (xy 112.773888 117.819797)\r\n\t\t\t\t(xy 112.77389 117.819797) (xy 112.876608 117.760492) (xy 112.876608 117.760491) (xy 112.876613 117.760489)\r\n\t\t\t\t(xy 112.960489 117.676613) (xy 112.970481 117.659307) (xy 113.019797 117.57389) (xy 113.019797 117.573888)\r\n\t\t\t\t(xy 113.019799 117.573886) (xy 113.0505 117.459309) (xy 113.0505 117.340691) (xy 113.7495 117.340691)\r\n\t\t\t\t(xy 113.7495 117.459309) (xy 113.754137 117.476613) (xy 113.780202 117.57389) (xy 113.839507 117.676608)\r\n\t\t\t\t(xy 113.839509 117.67661) (xy 113.839511 117.676613) (xy 113.923387 117.760489) (xy 113.923389 117.76049)\r\n\t\t\t\t(xy 113.923391 117.760492) (xy 114.02611 117.819797) (xy 114.026111 117.819797) (xy 114.026114 117.819799)\r\n\t\t\t\t(xy 114.140691 117.8505) (xy 114.140693 117.8505) (xy 114.259307 117.8505) (xy 114.259309 117.8505)\r\n\t\t\t\t(xy 114.373886 117.819799) (xy 114.373888 117.819797) (xy 114.37389 117.819797) (xy 114.476608 117.760492)\r\n\t\t\t\t(xy 114.476608 117.760491) (xy 114.476613 117.760489) (xy 114.560489 117.676613) (xy 114.570481 117.659307)\r\n\t\t\t\t(xy 114.619797 117.57389) (xy 114.619797 117.573888) (xy 114.619799 117.573886) (xy 114.6505 117.459309)\r\n\t\t\t\t(xy 114.6505 117.340691) (xy 115.349' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'5 117.340691) (xy 115.3495 117.459309) (xy 115.354137 117.476613)\r\n\t\t\t\t(xy 115.380202 117.57389) (xy 115.439507 117.676608) (xy 115.439509 117.67661) (xy 115.439511 117.676613)\r\n\t\t\t\t(xy 115.523387 117.760489) (xy 115.523389 117.76049) (xy 115.523391 117.760492) (xy 115.62611 117.819797)\r\n\t\t\t\t(xy 115.626111 117.819797) (xy 115.626114 117.819799) (xy 115.740691 117.8505) (xy 115.740693 117.8505)\r\n\t\t\t\t(xy 115.859307 117.8505) (xy 115.859309 117.8505) (xy 115.973886 117.819799) (xy 115.973888 117.819797)\r\n\t\t\t\t(xy 115.97389 117.819797) (xy 116.076608 117.760492) (xy 116.076608 117.760491) (xy 116.076613 117.760489)\r\n\t\t\t\t(xy 116.160489 117.676613) (xy 116.170481 117.659307) (xy 116.219797 117.57389) (xy 116.219797 117.573888)\r\n\t\t\t\t(xy 116.219799 117.573886) (xy 116.2505 117.459309) (xy 116.2505 117.340691) (xy 116.9495 117.340691)\r\n\t\t\t\t(xy 116.9495 117.459309) (xy 116.954137 117.476613) (xy 116.980202 117.57389) (xy 117.039507 117.676608)\r\n\t\t\t\t(xy 117.039509 117.67661) (xy 117.039511 117.676613) (xy 117.123387 117.760489) (xy 117.123389 117.76049)\r\n\t\t\t\t(xy 117.123391 117.760492) (xy 117.22611 117.819797) (xy 117.226111 117.819797) (xy 117.226114 117.819799)\r\n\t\t\t\t(xy 117.340691 117.8505) (xy 117.340693 117.8505) (xy 117.459307 117.8505) (xy 117.459309 117.8505)\r\n\t\t\t\t(xy 117.573886 117.819799) (xy 117.573888 117.819797) (xy 117.57389 117.819797) (xy 117.676608 117.760492)\r\n\t\t\t\t(xy 117.676608 117.760491) (xy 117.676613 117.760489) (xy 117.760489 117.676613) (xy 117.770481 117.659307)\r\n\t\t\t\t(xy 117.819797 117.57389) (xy 117.819797 117.573888) (xy 117.819799 117.573886) (xy 117.8505 117.459309)\r\n\t\t\t\t(xy 117.8505 117.340691) (xy 118.5495 117.340691) (xy 118.5495 117.459309) (xy 118.554137 117.476613)\r\n\t\t\t\t(xy 118.580202 117.57389) (xy 118.639507 117.676608) (xy 118.639509 117.67661) (xy 118.639511 117.676613)\r\n\t\t\t\t(xy 118.723387 117.760489) (xy 118.723389 117.76049) (xy 118.723391 117.760492) (xy 118.82611 117.819797)\r\n\t\t\t\t(xy 118.826111 117.819797) (xy 118.826114 117.819799) (xy 118.940691 117.8505) (xy 118.940693 117.8505)\r\n\t\t\t\t(xy 119.059307 117.8505) (xy 119.059309 117.8505) (xy 119.173886 117.819799) (xy 119.173888 117.819797)\r\n\t\t\t\t(xy 119.17389 117.819797) (xy 119.276608 117.760492) (xy 119.276608 117.760491) (xy 119.276613 117.760489)\r\n\t\t\t\t(xy 119.360489 117.676613) (xy 119.370481 117.659307) (xy 119.419797 117.57389) (xy 119.419797 117.573888)\r\n\t\t\t\t(xy 119.419799 117.573886) (xy 119.4505 117.459309) (xy 119.4505 117.340691) (xy 120.1495 117.340691)\r\n\t\t\t\t(xy 120.1495 117.459309) (xy 120.154137 117.476613) (xy 120.180202 117.57389) (xy 120.239507 117.676608)\r\n\t\t\t\t(xy 120.239509 117.67661) (xy 120.239511 117.676613) (xy 120.323387 117.760489) (xy 120.323389 117.76049)\r\n\t\t\t\t(xy 120.323391 117.760492) (xy 120.42611 117.819797) (xy 120.426111 117.819797) (xy 120.426114 117.819799)\r\n\t\t\t\t(xy 120.540691 117.8505) (xy 120.540693 117.8505) (xy 120.659307 117.8505) (xy 120.659309 117.8505)\r\n\t\t\t\t(xy 120.773886 117.819799) (xy 120.773888 117.819797) (xy 120.77389 117.819797) (xy 120.876608 117.760492)\r\n\t\t\t\t(xy 120.876608 117.760491) (xy 120.876613 117.760489) (xy 120.960489 117.676613) (xy 120.970481 117.659307)\r\n\t\t\t\t(xy 121.019797 117.57389) (xy 121.019797 117.573888) (xy 121.019799 117.573886) (xy 121.0505 117.459309)\r\n\t\t\t\t(xy 121.0505 117.340691) (xy 121.7495 117.340691) (xy 121.7495 117.459309) (xy 121.754137 117.476613)\r\n\t\t\t\t(xy 121.780202 117.57389) (xy 121.839507 117.676608) (xy 121.839509 117.67661) (xy 121.839511 117.676613)\r\n\t\t\t\t(xy 121.923387 117.760489) (xy 121.923389 117.76049) (xy 121.923391 117.760492) (xy 122.02611 117.819797)\r\n\t\t\t\t(xy 122.026111 117.819797) (xy 122.026114 117.819799) (xy 122.140691 117.8505) (xy 122.140693 117.8505)\r\n\t\t\t\t(xy 122.259307 117.8505) (xy 122.259309 117.8505) (xy 122.373886 117.819799) (xy 122.373888 117.819797)\r\n\t\t\t\t(xy 122.37389 117.819797) (xy 122.476608 117.760492) (xy 122.476608 117.760491) (xy 122.476613 117.760489)\r\n\t\t\t\t(xy 122.560489 117.676613) (xy 122.570481 117.659307) (xy 122.619797 117.57389) (xy 122.619797 117.573888)\r\n\t\t\t\t(xy 122.619799 117.573886) (xy 122.6505 117.459309) (xy 122.6505 117.340691) (xy 123.3495 117.340691)\r\n\t\t\t\t(xy 123.3495 117.459309) (xy 123.354137 117.476613) (xy 123.380202 117.57389) (xy 123.439507 117.676608)\r\n\t\t\t\t(xy 123.439509 117.67661) (xy 123.439511 117.676613) (xy 123.523387 117.760489) (xy 123.523389 117.76049)\r\n\t\t\t\t(xy 123.523391 117.760492) (xy 123.62611 117.819797) (xy 123.626111 117.819797) (xy 123.626114 117.819799)\r\n\t\t\t\t(xy 123.740691 117.8505) (xy 123.740693 117.8505) (xy 123.859307 117.8505) (xy 123.859309 117.8505)\r\n\t\t\t\t(xy 123.973886 117.819799) (xy 123.973888 117.819797) (xy 123.97389 117.819797) (xy 124.076608 117.760492)\r\n\t\t\t\t(xy 124.076608 117.760491) (xy 124.076613 117.760489) (xy 124.160489 117.676613) (xy 124.170481 117.659307)\r\n\t\t\t\t(xy 124.219797 117.57389) (xy 124.219797 117.573888) (xy 124.219799 117.573886) (xy 124.2505 117.459309)\r\n\t\t\t\t(xy 124.2505 117.340691) (xy 124.9495 117.340691) (xy 124.9495 117.459309) (xy 124.954137 117.476613)\r\n\t\t\t\t(xy 124.980202 117.57389) (xy 125.039507 117.676608) (xy 125.039509 117.67661) (xy 125.039511 117.676613)\r\n\t\t\t\t(xy 125.123387 117.760489) (xy 125.123389 117.76049) (xy 125.123391 117.760492) (xy 125.22611 117.819797)\r\n\t\t\t\t(xy 125.226111 117.819797) (xy 125.226114 117.819799) (xy 125.340691 117.8505) (xy 125.340693 117.8505)\r\n\t\t\t\t(xy 125.459307 117.8505) (xy 125.459309 117.8505) (xy 125.573886 117.819799) (xy 125.573888 117.819797)\r\n\t\t\t\t(xy 125.57389 117.819797) (xy 125.676608 117.760492) (xy 125.676608 117.760491) (xy 125.676613 117.760489)\r\n\t\t\t\t(xy 125.760489 117.676613) (xy 125.770481 117.659307) (xy 125.819797 117.57389) (xy 125.819797 117.573888)\r\n\t\t\t\t(xy 125.819799 117.573886) (xy 125.8505 117.459309) (xy 125.8505 117.340691) (xy 126.5495 117.340691)\r\n\t\t\t\t(xy 126.5495 117.459309) (xy 126.554137 117.476613) (xy 126.580202 117.57389) (xy 126.639507 117.676608)\r\n\t\t\t\t(xy 126.639509 117.67661) (xy 126.639511 117.676613) (xy 126.723387 117.760489) (xy 126.723389 117.76049)\r\n\t\t\t\t(xy 126.723391 117.760492) (xy 126.82611 117.819797) (xy 126.826111 117.819797) (xy 126.826114 117.819799)\r\n\t\t\t\t(xy 126.940691 117.8505) (xy 126.940693 117.8505) (xy 127.059307 117.8505) (xy 127.059309 117.8505)\r\n\t\t\t\t(xy 127.173886 117.819799) (xy 127.173888 117.819797) (xy 127.17389 117.819797) (xy 127.276608 117.760492)\r\n\t\t\t\t(xy 127.276608 117.760491) (xy 127.276613 117.760489) (xy 127.360489 117.676613) (xy 127.370481 117.659307)\r\n\t\t\t\t(xy 127.419797 117.57389) (xy 127.419797 117.573888) (xy 127.419799 117.573886) (xy 127.4505 117.459309)\r\n\t\t\t\t(xy 127.4505 117.340691) (xy 128.1495 117.340691) (xy 128.1495 117.459309) (xy 128.154137 117.476613)\r\n\t\t\t\t(xy 128.180202 117.57389) (xy 128.239507 117.676608) (xy 128.239509 117.67661) (xy 128.239511 117.676613)\r\n\t\t\t\t(xy 128.323387 117.760489) (xy 128.323389 117.76049) (xy 128.323391 117.760492) (xy 128.42611 117.819797)\r\n\t\t\t\t(xy 128.426111 117.819797) (xy 128.426114 117.819799) (xy 128.540691 117.8505) (xy 128.540693 117.8505)\r\n\t\t\t\t(xy 128.659307 117.8505) (xy 128.659309 117.8505) (xy 128.773886 117.819799) (xy 128.773888 117.819797)\r\n\t\t\t\t(xy 128.77389 117.819797) (xy 128.876608 117.760492) (xy 128.876608 117.760491) (xy 128.876613 117.760489)\r\n\t\t\t\t(xy 128.960489 117.676613) (xy 128.970481 117.659307) (xy 129.019797 117.57389) (xy 129.019797 117.573888)\r\n\t\t\t\t(xy 129.019799 117.573886) (xy 129.0505 117.459309) (xy 129.0505 117.340691) (xy 129.7495 117.340691)\r\n\t\t\t\t(xy 129.7495 117.459309) (xy 129.754137 117.476613) (xy 129.780202 117.57389) (xy 129.839507 117.676608)\r\n\t\t\t\t(xy 129.839509 117.67661) (xy 129.839511 117.676613) (xy 129.923387 117.760489) (xy 129.923389 117.76049)\r\n\t\t\t\t(xy 129.923391 117.760492) (xy 130.02611 117.819797) (xy 130.026111 117.819797) (xy 130.026114 117.819799)\r\n\t\t\t\t(xy 130.140691 117.8505) (xy 130.140693 117.8505) (xy 130.259307 117.8505) (xy 130.259309 117.8505)\r\n\t\t\t\t(xy 130.373886 117.819799) (xy 130.373888 117.819797) (xy 130.37389 117.819797) (xy 130.476608 117.760492)\r\n\t\t\t\t(xy 130.476608 117.760491) (xy 130.476613 117.760489) (xy 130.560489 117.676613) (xy 130.570481 117.659307)\r\n\t\t\t\t(xy 130.619797 117.57389) (xy 130.619797 117.573888) (xy 130.619799 117.573886) (xy' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' 130.6505 117.459309)\r\n\t\t\t\t(xy 130.6505 117.340691) (xy 131.3495 117.340691) (xy 131.3495 117.459309) (xy 131.354137 117.476613)\r\n\t\t\t\t(xy 131.380202 117.57389) (xy 131.439507 117.676608) (xy 131.439509 117.67661) (xy 131.439511 117.676613)\r\n\t\t\t\t(xy 131.523387 117.760489) (xy 131.523389 117.76049) (xy 131.523391 117.760492) (xy 131.62611 117.819797)\r\n\t\t\t\t(xy 131.626111 117.819797) (xy 131.626114 117.819799) (xy 131.740691 117.8505) (xy 131.740693 117.8505)\r\n\t\t\t\t(xy 131.859307 117.8505) (xy 131.859309 117.8505) (xy 131.973886 117.819799) (xy 131.973888 117.819797)\r\n\t\t\t\t(xy 131.97389 117.819797) (xy 132.076608 117.760492) (xy 132.076608 117.760491) (xy 132.076613 117.760489)\r\n\t\t\t\t(xy 132.160489 117.676613) (xy 132.170481 117.659307) (xy 132.219797 117.57389) (xy 132.219797 117.573888)\r\n\t\t\t\t(xy 132.219799 117.573886) (xy 132.2505 117.459309) (xy 132.2505 117.340691) (xy 132.9495 117.340691)\r\n\t\t\t\t(xy 132.9495 117.459309) (xy 132.954137 117.476613) (xy 132.980202 117.57389) (xy 133.039507 117.676608)\r\n\t\t\t\t(xy 133.039509 117.67661) (xy 133.039511 117.676613) (xy 133.123387 117.760489) (xy 133.123389 117.76049)\r\n\t\t\t\t(xy 133.123391 117.760492) (xy 133.22611 117.819797) (xy 133.226111 117.819797) (xy 133.226114 117.819799)\r\n\t\t\t\t(xy 133.340691 117.8505) (xy 133.340693 117.8505) (xy 133.459307 117.8505) (xy 133.459309 117.8505)\r\n\t\t\t\t(xy 133.573886 117.819799) (xy 133.573888 117.819797) (xy 133.57389 117.819797) (xy 133.676608 117.760492)\r\n\t\t\t\t(xy 133.676608 117.760491) (xy 133.676613 117.760489) (xy 133.760489 117.676613) (xy 133.770481 117.659307)\r\n\t\t\t\t(xy 133.819797 117.57389) (xy 133.819797 117.573888) (xy 133.819799 117.573886) (xy 133.8505 117.459309)\r\n\t\t\t\t(xy 133.8505 117.340691) (xy 134.5495 117.340691) (xy 134.5495 117.459309) (xy 134.554137 117.476613)\r\n\t\t\t\t(xy 134.580202 117.57389) (xy 134.639507 117.676608) (xy 134.639509 117.67661) (xy 134.639511 117.676613)\r\n\t\t\t\t(xy 134.723387 117.760489) (xy 134.723389 117.76049) (xy 134.723391 117.760492) (xy 134.82611 117.819797)\r\n\t\t\t\t(xy 134.826111 117.819797) (xy 134.826114 117.819799) (xy 134.940691 117.8505) (xy 134.940693 117.8505)\r\n\t\t\t\t(xy 135.059307 117.8505) (xy 135.059309 117.8505) (xy 135.173886 117.819799) (xy 135.173888 117.819797)\r\n\t\t\t\t(xy 135.17389 117.819797) (xy 135.276608 117.760492) (xy 135.276608 117.760491) (xy 135.276613 117.760489)\r\n\t\t\t\t(xy 135.360489 117.676613) (xy 135.370481 117.659307) (xy 135.419797 117.57389) (xy 135.419797 117.573888)\r\n\t\t\t\t(xy 135.419799 117.573886) (xy 135.4505 117.459309) (xy 135.4505 117.340691) (xy 136.1495 117.340691)\r\n\t\t\t\t(xy 136.1495 117.459309) (xy 136.154137 117.476613) (xy 136.180202 117.57389) (xy 136.239507 117.676608)\r\n\t\t\t\t(xy 136.239509 117.67661) (xy 136.239511 117.676613) (xy 136.323387 117.760489) (xy 136.323389 117.76049)\r\n\t\t\t\t(xy 136.323391 117.760492) (xy 136.42611 117.819797) (xy 136.426111 117.819797) (xy 136.426114 117.819799)\r\n\t\t\t\t(xy 136.540691 117.8505) (xy 136.540693 117.8505) (xy 136.659307 117.8505) (xy 136.659309 117.8505)\r\n\t\t\t\t(xy 136.773886 117.819799) (xy 136.773888 117.819797) (xy 136.77389 117.819797) (xy 136.876608 117.760492)\r\n\t\t\t\t(xy 136.876608 117.760491) (xy 136.876613 117.760489) (xy 136.960489 117.676613) (xy 136.970481 117.659307)\r\n\t\t\t\t(xy 137.019797 117.57389) (xy 137.019797 117.573888) (xy 137.019799 117.573886) (xy 137.0505 117.459309)\r\n\t\t\t\t(xy 137.0505 117.340691) (xy 137.7495 117.340691) (xy 137.7495 117.459309) (xy 137.754137 117.476613)\r\n\t\t\t\t(xy 137.780202 117.57389) (xy 137.839507 117.676608) (xy 137.839509 117.67661) (xy 137.839511 117.676613)\r\n\t\t\t\t(xy 137.923387 117.760489) (xy 137.923389 117.76049) (xy 137.923391 117.760492) (xy 138.02611 117.819797)\r\n\t\t\t\t(xy 138.026111 117.819797) (xy 138.026114 117.819799) (xy 138.140691 117.8505) (xy 138.140693 117.8505)\r\n\t\t\t\t(xy 138.259307 117.8505) (xy 138.259309 117.8505) (xy 138.373886 117.819799) (xy 138.373888 117.819797)\r\n\t\t\t\t(xy 138.37389 117.819797) (xy 138.476608 117.760492) (xy 138.476608 117.760491) (xy 138.476613 117.760489)\r\n\t\t\t\t(xy 138.560489 117.676613) (xy 138.570481 117.659307) (xy 138.619797 117.57389) (xy 138.619797 117.573888)\r\n\t\t\t\t(xy 138.619799 117.573886) (xy 138.6505 117.459309) (xy 138.6505 117.340691) (xy 139.3495 117.340691)\r\n\t\t\t\t(xy 139.3495 117.459309) (xy 139.354137 117.476613) (xy 139.380202 117.57389) (xy 139.439507 117.676608)\r\n\t\t\t\t(xy 139.439509 117.67661) (xy 139.439511 117.676613) (xy 139.523387 117.760489) (xy 139.523389 117.76049)\r\n\t\t\t\t(xy 139.523391 117.760492) (xy 139.62611 117.819797) (xy 139.626111 117.819797) (xy 139.626114 117.819799)\r\n\t\t\t\t(xy 139.740691 117.8505) (xy 139.740693 117.8505) (xy 139.859307 117.8505) (xy 139.859309 117.8505)\r\n\t\t\t\t(xy 139.973886 117.819799) (xy 139.973888 117.819797) (xy 139.97389 117.819797) (xy 140.076608 117.760492)\r\n\t\t\t\t(xy 140.076608 117.760491) (xy 140.076613 117.760489) (xy 140.160489 117.676613) (xy 140.170481 117.659307)\r\n\t\t\t\t(xy 140.219797 117.57389) (xy 140.219797 117.573888) (xy 140.219799 117.573886) (xy 140.2505 117.459309)\r\n\t\t\t\t(xy 140.2505 117.340691) (xy 140.9495 117.340691) (xy 140.9495 117.459309) (xy 140.954137 117.476613)\r\n\t\t\t\t(xy 140.980202 117.57389) (xy 141.039507 117.676608) (xy 141.039509 117.67661) (xy 141.039511 117.676613)\r\n\t\t\t\t(xy 141.123387 117.760489) (xy 141.123389 117.76049) (xy 141.123391 117.760492) (xy 141.22611 117.819797)\r\n\t\t\t\t(xy 141.226111 117.819797) (xy 141.226114 117.819799) (xy 141.340691 117.8505) (xy 141.340693 117.8505)\r\n\t\t\t\t(xy 141.459307 117.8505) (xy 141.459309 117.8505) (xy 141.573886 117.819799) (xy 141.573888 117.819797)\r\n\t\t\t\t(xy 141.57389 117.819797) (xy 141.676608 117.760492) (xy 141.676608 117.760491) (xy 141.676613 117.760489)\r\n\t\t\t\t(xy 141.696411 117.740691) (xy 143.3495 117.740691) (xy 143.3495 117.859309) (xy 143.354137 117.876613)\r\n\t\t\t\t(xy 143.380202 117.97389) (xy 143.439507 118.076608) (xy 143.439509 118.07661) (xy 143.439511 118.076613)\r\n\t\t\t\t(xy 143.523387 118.160489) (xy 143.523389 118.16049) (xy 143.523391 118.160492) (xy 143.62611 118.219797)\r\n\t\t\t\t(xy 143.626111 118.219797) (xy 143.626114 118.219799) (xy 143.740691 118.2505) (xy 143.740693 118.2505)\r\n\t\t\t\t(xy 143.859307 118.2505) (xy 143.859309 118.2505) (xy 143.973886 118.219799) (xy 143.973888 118.219797)\r\n\t\t\t\t(xy 143.97389 118.219797) (xy 144.076608 118.160492) (xy 144.076608 118.160491) (xy 144.076613 118.160489)\r\n\t\t\t\t(xy 144.160489 118.076613) (xy 144.163567 118.071282) (xy 144.219797 117.97389) (xy 144.219797 117.973888)\r\n\t\t\t\t(xy 144.219799 117.973886) (xy 144.2505 117.859309) (xy 144.2505 117.740691) (xy 144.241898 117.708588)\r\n\t\t\t\t(xy 144.2451 117.647489) (xy 144.283606 117.599939) (xy 144.342706 117.584103) (xy 144.387024 117.59723)\r\n\t\t\t\t(xy 144.426114 117.619799) (xy 144.540691 117.6505) (xy 144.540693 117.6505) (xy 144.659307 117.6505)\r\n\t\t\t\t(xy 144.659309 117.6505) (xy 144.773886 117.619799) (xy 144.773888 117.619797) (xy 144.77389 117.619797)\r\n\t\t\t\t(xy 144.876608 117.560492) (xy 144.876608 117.560491) (xy 144.876613 117.560489) (xy 144.960489 117.476613)\r\n\t\t\t\t(xy 144.975566 117.4505) (xy 145.004687 117.400061) (xy 145.019799 117.373886) (xy 145.028694 117.340691)\r\n\t\t\t\t(xy 145.7495 117.340691) (xy 145.7495 117.459309) (xy 145.754137 117.476613) (xy 145.780202 117.57389)\r\n\t\t\t\t(xy 145.839507 117.676608) (xy 145.839509 117.67661) (xy 145.839511 117.676613) (xy 145.923387 117.760489)\r\n\t\t\t\t(xy 145.923389 117.76049) (xy 145.923391 117.760492) (xy 146.02611 117.819797) (xy 146.026111 117.819797)\r\n\t\t\t\t(xy 146.026114 117.819799) (xy 146.140691 117.8505) (xy 146.140693 117.8505) (xy 146.259307 117.8505)\r\n\t\t\t\t(xy 146.259309 117.8505) (xy 146.373886 117.819799) (xy 146.373888 117.819797) (xy 146.37389 117.819797)\r\n\t\t\t\t(xy 146.476608 117.760492) (xy 146.476608 117.760491) (xy 146.476613 117.760489) (xy 146.560489 117.676613)\r\n\t\t\t\t(xy 146.570481 117.659307) (xy 146.619797 117.57389) (xy 146.619797 117.573888) (xy 146.619799 117.573886)\r\n\t\t\t\t(xy 146.6505 117.459309) (xy 146.6505 117.340691) (xy 147.3495 117.340691) (xy 147.3495 117.459309)\r\n\t\t\t\t(xy 147.354137 117.476613) (xy 147.380202 117.57389) (xy 147.439507 117.676608) (xy 147.439509 117.67661)\r\n\t\t\t\t(xy 147.439511 117.676613) (xy 147.523387 117.760489) (xy 147.523389 117.76049) (xy 147.523391 117.760492)\r\n\t\t\t\t(xy 147.62611 117.8' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'19797) (xy 147.626111 117.819797) (xy 147.626114 117.819799) (xy 147.740691 117.8505)\r\n\t\t\t\t(xy 147.740693 117.8505) (xy 147.859307 117.8505) (xy 147.859309 117.8505) (xy 147.973886 117.819799)\r\n\t\t\t\t(xy 147.973888 117.819797) (xy 147.97389 117.819797) (xy 148.076608 117.760492) (xy 148.076608 117.760491)\r\n\t\t\t\t(xy 148.076613 117.760489) (xy 148.160489 117.676613) (xy 148.170481 117.659307) (xy 148.219797 117.57389)\r\n\t\t\t\t(xy 148.219797 117.573888) (xy 148.219799 117.573886) (xy 148.2505 117.459309) (xy 148.2505 117.340691)\r\n\t\t\t\t(xy 148.219799 117.226114) (xy 148.219797 117.226111) (xy 148.219797 117.226109) (xy 148.160492 117.123391)\r\n\t\t\t\t(xy 148.16049 117.123389) (xy 148.160489 117.123387) (xy 148.076613 117.039511) (xy 148.07661 117.039509)\r\n\t\t\t\t(xy 148.076608 117.039507) (xy 147.973889 116.980202) (xy 147.97389 116.980202) (xy 147.960351 116.976574)\r\n\t\t\t\t(xy 147.859309 116.9495) (xy 147.740691 116.9495) (xy 147.670567 116.968289) (xy 147.626109 116.980202)\r\n\t\t\t\t(xy 147.523391 117.039507) (xy 147.439507 117.123391) (xy 147.380202 117.226109) (xy 147.380201 117.226114)\r\n\t\t\t\t(xy 147.3495 117.340691) (xy 146.6505 117.340691) (xy 146.619799 117.226114) (xy 146.619797 117.226111)\r\n\t\t\t\t(xy 146.619797 117.226109) (xy 146.560492 117.123391) (xy 146.56049 117.123389) (xy 146.560489 117.123387)\r\n\t\t\t\t(xy 146.476613 117.039511) (xy 146.47661 117.039509) (xy 146.476608 117.039507) (xy 146.373889 116.980202)\r\n\t\t\t\t(xy 146.37389 116.980202) (xy 146.360351 116.976574) (xy 146.259309 116.9495) (xy 146.140691 116.9495)\r\n\t\t\t\t(xy 146.070567 116.968289) (xy 146.026109 116.980202) (xy 145.923391 117.039507) (xy 145.839507 117.123391)\r\n\t\t\t\t(xy 145.780202 117.226109) (xy 145.780201 117.226114) (xy 145.7495 117.340691) (xy 145.028694 117.340691)\r\n\t\t\t\t(xy 145.033329 117.323391) (xy 145.037298 117.308581) (xy 145.037298 117.308579) (xy 145.0505 117.259309)\r\n\t\t\t\t(xy 145.0505 117.140691) (xy 145.019799 117.026114) (xy 145.019797 117.026111) (xy 145.019797 117.026109)\r\n\t\t\t\t(xy 144.960492 116.923391) (xy 144.96049 116.923389) (xy 144.960489 116.923387) (xy 144.876613 116.839511)\r\n\t\t\t\t(xy 144.87661 116.839509) (xy 144.876608 116.839507) (xy 144.773889 116.780202) (xy 144.77389 116.780202)\r\n\t\t\t\t(xy 144.760351 116.776574) (xy 144.659309 116.7495) (xy 144.540691 116.7495) (xy 144.499669 116.760492)\r\n\t\t\t\t(xy 144.426109 116.780202) (xy 144.323391 116.839507) (xy 144.239507 116.923391) (xy 144.180202 117.026109)\r\n\t\t\t\t(xy 144.1495 117.140692) (xy 144.1495 117.259309) (xy 144.158101 117.29141) (xy 144.154898 117.352512)\r\n\t\t\t\t(xy 144.116392 117.400061) (xy 144.057291 117.415896) (xy 144.012973 117.402768) (xy 143.973888 117.380202)\r\n\t\t\t\t(xy 143.973887 117.380201) (xy 143.973886 117.380201) (xy 143.859309 117.3495) (xy 143.740691 117.3495)\r\n\t\t\t\t(xy 143.699669 117.360492) (xy 143.626109 117.380202) (xy 143.523391 117.439507) (xy 143.439507 117.523391)\r\n\t\t\t\t(xy 143.380202 117.626109) (xy 143.373667 117.6505) (xy 143.3495 117.740691) (xy 141.696411 117.740691)\r\n\t\t\t\t(xy 141.760489 117.676613) (xy 141.770481 117.659307) (xy 141.819797 117.57389) (xy 141.819797 117.573888)\r\n\t\t\t\t(xy 141.819799 117.573886) (xy 141.8505 117.459309) (xy 141.8505 117.340691) (xy 141.819799 117.226114)\r\n\t\t\t\t(xy 141.819797 117.226111) (xy 141.819797 117.226109) (xy 141.760492 117.123391) (xy 141.76049 117.123389)\r\n\t\t\t\t(xy 141.760489 117.123387) (xy 141.676613 117.039511) (xy 141.67661 117.039509) (xy 141.676608 117.039507)\r\n\t\t\t\t(xy 141.573889 116.980202) (xy 141.57389 116.980202) (xy 141.560351 116.976574) (xy 141.459309 116.9495)\r\n\t\t\t\t(xy 141.340691 116.9495) (xy 141.270567 116.968289) (xy 141.226109 116.980202) (xy 141.123391 117.039507)\r\n\t\t\t\t(xy 141.039507 117.123391) (xy 140.980202 117.226109) (xy 140.980201 117.226114) (xy 140.9495 117.340691)\r\n\t\t\t\t(xy 140.2505 117.340691) (xy 140.219799 117.226114) (xy 140.219797 117.226111) (xy 140.219797 117.226109)\r\n\t\t\t\t(xy 140.160492 117.123391) (xy 140.16049 117.123389) (xy 140.160489 117.123387) (xy 140.076613 117.039511)\r\n\t\t\t\t(xy 140.07661 117.039509) (xy 140.076608 117.039507) (xy 139.973889 116.980202) (xy 139.97389 116.980202)\r\n\t\t\t\t(xy 139.960351 116.976574) (xy 139.859309 116.9495) (xy 139.740691 116.9495) (xy 139.670567 116.968289)\r\n\t\t\t\t(xy 139.626109 116.980202) (xy 139.523391 117.039507) (xy 139.439507 117.123391) (xy 139.380202 117.226109)\r\n\t\t\t\t(xy 139.380201 117.226114) (xy 139.3495 117.340691) (xy 138.6505 117.340691) (xy 138.619799 117.226114)\r\n\t\t\t\t(xy 138.619797 117.226111) (xy 138.619797 117.226109) (xy 138.560492 117.123391) (xy 138.56049 117.123389)\r\n\t\t\t\t(xy 138.560489 117.123387) (xy 138.476613 117.039511) (xy 138.47661 117.039509) (xy 138.476608 117.039507)\r\n\t\t\t\t(xy 138.373889 116.980202) (xy 138.37389 116.980202) (xy 138.360351 116.976574) (xy 138.259309 116.9495)\r\n\t\t\t\t(xy 138.140691 116.9495) (xy 138.070567 116.968289) (xy 138.026109 116.980202) (xy 137.923391 117.039507)\r\n\t\t\t\t(xy 137.839507 117.123391) (xy 137.780202 117.226109) (xy 137.780201 117.226114) (xy 137.7495 117.340691)\r\n\t\t\t\t(xy 137.0505 117.340691) (xy 137.019799 117.226114) (xy 137.019797 117.226111) (xy 137.019797 117.226109)\r\n\t\t\t\t(xy 136.960492 117.123391) (xy 136.96049 117.123389) (xy 136.960489 117.123387) (xy 136.876613 117.039511)\r\n\t\t\t\t(xy 136.87661 117.039509) (xy 136.876608 117.039507) (xy 136.773889 116.980202) (xy 136.77389 116.980202)\r\n\t\t\t\t(xy 136.760351 116.976574) (xy 136.659309 116.9495) (xy 136.540691 116.9495) (xy 136.470567 116.968289)\r\n\t\t\t\t(xy 136.426109 116.980202) (xy 136.323391 117.039507) (xy 136.239507 117.123391) (xy 136.180202 117.226109)\r\n\t\t\t\t(xy 136.180201 117.226114) (xy 136.1495 117.340691) (xy 135.4505 117.340691) (xy 135.419799 117.226114)\r\n\t\t\t\t(xy 135.419797 117.226111) (xy 135.419797 117.226109) (xy 135.360492 117.123391) (xy 135.36049 117.123389)\r\n\t\t\t\t(xy 135.360489 117.123387) (xy 135.276613 117.039511) (xy 135.27661 117.039509) (xy 135.276608 117.039507)\r\n\t\t\t\t(xy 135.173889 116.980202) (xy 135.17389 116.980202) (xy 135.160351 116.976574) (xy 135.059309 116.9495)\r\n\t\t\t\t(xy 134.940691 116.9495) (xy 134.870567 116.968289) (xy 134.826109 116.980202) (xy 134.723391 117.039507)\r\n\t\t\t\t(xy 134.639507 117.123391) (xy 134.580202 117.226109) (xy 134.580201 117.226114) (xy 134.5495 117.340691)\r\n\t\t\t\t(xy 133.8505 117.340691) (xy 133.819799 117.226114) (xy 133.819797 117.226111) (xy 133.819797 117.226109)\r\n\t\t\t\t(xy 133.760492 117.123391) (xy 133.76049 117.123389) (xy 133.760489 117.123387) (xy 133.676613 117.039511)\r\n\t\t\t\t(xy 133.67661 117.039509) (xy 133.676608 117.039507) (xy 133.573889 116.980202) (xy 133.57389 116.980202)\r\n\t\t\t\t(xy 133.560351 116.976574) (xy 133.459309 116.9495) (xy 133.340691 116.9495) (xy 133.270567 116.968289)\r\n\t\t\t\t(xy 133.226109 116.980202) (xy 133.123391 117.039507) (xy 133.039507 117.123391) (xy 132.980202 117.226109)\r\n\t\t\t\t(xy 132.980201 117.226114) (xy 132.9495 117.340691) (xy 132.2505 117.340691) (xy 132.219799 117.226114)\r\n\t\t\t\t(xy 132.219797 117.226111) (xy 132.219797 117.226109) (xy 132.160492 117.123391) (xy 132.16049 117.123389)\r\n\t\t\t\t(xy 132.160489 117.123387) (xy 132.076613 117.039511) (xy 132.07661 117.039509) (xy 132.076608 117.039507)\r\n\t\t\t\t(xy 131.973889 116.980202) (xy 131.97389 116.980202) (xy 131.960351 116.976574) (xy 131.859309 116.9495)\r\n\t\t\t\t(xy 131.740691 116.9495) (xy 131.670567 116.968289) (xy 131.626109 116.980202) (xy 131.523391 117.039507)\r\n\t\t\t\t(xy 131.439507 117.123391) (xy 131.380202 117.226109) (xy 131.380201 117.226114) (xy 131.3495 117.340691)\r\n\t\t\t\t(xy 130.6505 117.340691) (xy 130.619799 117.226114) (xy 130.619797 117.226111) (xy 130.619797 117.226109)\r\n\t\t\t\t(xy 130.560492 117.123391) (xy 130.56049 117.123389) (xy 130.560489 117.123387) (xy 130.476613 117.039511)\r\n\t\t\t\t(xy 130.47661 117.039509) (xy 130.476608 117.039507) (xy 130.373889 116.980202) (xy 130.37389 116.980202)\r\n\t\t\t\t(xy 130.360351 116.976574) (xy 130.259309 116.9495) (xy 130.140691 116.9495) (xy 130.070567 116.968289)\r\n\t\t\t\t(xy 130.026109 116.980202) (xy 129.923391 117.039507) (xy 129.839507 117.123391) (xy 129.780202 117.226109)\r\n\t\t\t\t(xy 129.780201 117.226114) (xy 129.7495 117.340691) (xy 129.0505 117.340691) (xy 129.019799 117.226114)\r\n\t\t\t\t(xy 129.019797 117.226111) (xy 129.019797 117.226109) (xy 128.960492 117.123391) (xy 128.96049 117.123389)\r\n\t\t\t\t(x' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'y 128.960489 117.123387) (xy 128.876613 117.039511) (xy 128.87661 117.039509) (xy 128.876608 117.039507)\r\n\t\t\t\t(xy 128.773889 116.980202) (xy 128.77389 116.980202) (xy 128.760351 116.976574) (xy 128.659309 116.9495)\r\n\t\t\t\t(xy 128.540691 116.9495) (xy 128.470567 116.968289) (xy 128.426109 116.980202) (xy 128.323391 117.039507)\r\n\t\t\t\t(xy 128.239507 117.123391) (xy 128.180202 117.226109) (xy 128.180201 117.226114) (xy 128.1495 117.340691)\r\n\t\t\t\t(xy 127.4505 117.340691) (xy 127.419799 117.226114) (xy 127.419797 117.226111) (xy 127.419797 117.226109)\r\n\t\t\t\t(xy 127.360492 117.123391) (xy 127.36049 117.123389) (xy 127.360489 117.123387) (xy 127.276613 117.039511)\r\n\t\t\t\t(xy 127.27661 117.039509) (xy 127.276608 117.039507) (xy 127.173889 116.980202) (xy 127.17389 116.980202)\r\n\t\t\t\t(xy 127.160351 116.976574) (xy 127.059309 116.9495) (xy 126.940691 116.9495) (xy 126.870567 116.968289)\r\n\t\t\t\t(xy 126.826109 116.980202) (xy 126.723391 117.039507) (xy 126.639507 117.123391) (xy 126.580202 117.226109)\r\n\t\t\t\t(xy 126.580201 117.226114) (xy 126.5495 117.340691) (xy 125.8505 117.340691) (xy 125.819799 117.226114)\r\n\t\t\t\t(xy 125.819797 117.226111) (xy 125.819797 117.226109) (xy 125.760492 117.123391) (xy 125.76049 117.123389)\r\n\t\t\t\t(xy 125.760489 117.123387) (xy 125.676613 117.039511) (xy 125.67661 117.039509) (xy 125.676608 117.039507)\r\n\t\t\t\t(xy 125.573889 116.980202) (xy 125.57389 116.980202) (xy 125.560351 116.976574) (xy 125.459309 116.9495)\r\n\t\t\t\t(xy 125.340691 116.9495) (xy 125.270567 116.968289) (xy 125.226109 116.980202) (xy 125.123391 117.039507)\r\n\t\t\t\t(xy 125.039507 117.123391) (xy 124.980202 117.226109) (xy 124.980201 117.226114) (xy 124.9495 117.340691)\r\n\t\t\t\t(xy 124.2505 117.340691) (xy 124.219799 117.226114) (xy 124.219797 117.226111) (xy 124.219797 117.226109)\r\n\t\t\t\t(xy 124.160492 117.123391) (xy 124.16049 117.123389) (xy 124.160489 117.123387) (xy 124.076613 117.039511)\r\n\t\t\t\t(xy 124.07661 117.039509) (xy 124.076608 117.039507) (xy 123.973889 116.980202) (xy 123.97389 116.980202)\r\n\t\t\t\t(xy 123.960351 116.976574) (xy 123.859309 116.9495) (xy 123.740691 116.9495) (xy 123.670567 116.968289)\r\n\t\t\t\t(xy 123.626109 116.980202) (xy 123.523391 117.039507) (xy 123.439507 117.123391) (xy 123.380202 117.226109)\r\n\t\t\t\t(xy 123.380201 117.226114) (xy 123.3495 117.340691) (xy 122.6505 117.340691) (xy 122.619799 117.226114)\r\n\t\t\t\t(xy 122.619797 117.226111) (xy 122.619797 117.226109) (xy 122.560492 117.123391) (xy 122.56049 117.123389)\r\n\t\t\t\t(xy 122.560489 117.123387) (xy 122.476613 117.039511) (xy 122.47661 117.039509) (xy 122.476608 117.039507)\r\n\t\t\t\t(xy 122.373889 116.980202) (xy 122.37389 116.980202) (xy 122.360351 116.976574) (xy 122.259309 116.9495)\r\n\t\t\t\t(xy 122.140691 116.9495) (xy 122.070567 116.968289) (xy 122.026109 116.980202) (xy 121.923391 117.039507)\r\n\t\t\t\t(xy 121.839507 117.123391) (xy 121.780202 117.226109) (xy 121.780201 117.226114) (xy 121.7495 117.340691)\r\n\t\t\t\t(xy 121.0505 117.340691) (xy 121.019799 117.226114) (xy 121.019797 117.226111) (xy 121.019797 117.226109)\r\n\t\t\t\t(xy 120.960492 117.123391) (xy 120.96049 117.123389) (xy 120.960489 117.123387) (xy 120.876613 117.039511)\r\n\t\t\t\t(xy 120.87661 117.039509) (xy 120.876608 117.039507) (xy 120.773889 116.980202) (xy 120.77389 116.980202)\r\n\t\t\t\t(xy 120.760351 116.976574) (xy 120.659309 116.9495) (xy 120.540691 116.9495) (xy 120.470567 116.968289)\r\n\t\t\t\t(xy 120.426109 116.980202) (xy 120.323391 117.039507) (xy 120.239507 117.123391) (xy 120.180202 117.226109)\r\n\t\t\t\t(xy 120.180201 117.226114) (xy 120.1495 117.340691) (xy 119.4505 117.340691) (xy 119.419799 117.226114)\r\n\t\t\t\t(xy 119.419797 117.226111) (xy 119.419797 117.226109) (xy 119.360492 117.123391) (xy 119.36049 117.123389)\r\n\t\t\t\t(xy 119.360489 117.123387) (xy 119.276613 117.039511) (xy 119.27661 117.039509) (xy 119.276608 117.039507)\r\n\t\t\t\t(xy 119.173889 116.980202) (xy 119.17389 116.980202) (xy 119.160351 116.976574) (xy 119.059309 116.9495)\r\n\t\t\t\t(xy 118.940691 116.9495) (xy 118.870567 116.968289) (xy 118.826109 116.980202) (xy 118.723391 117.039507)\r\n\t\t\t\t(xy 118.639507 117.123391) (xy 118.580202 117.226109) (xy 118.580201 117.226114) (xy 118.5495 117.340691)\r\n\t\t\t\t(xy 117.8505 117.340691) (xy 117.819799 117.226114) (xy 117.819797 117.226111) (xy 117.819797 117.226109)\r\n\t\t\t\t(xy 117.760492 117.123391) (xy 117.76049 117.123389) (xy 117.760489 117.123387) (xy 117.676613 117.039511)\r\n\t\t\t\t(xy 117.67661 117.039509) (xy 117.676608 117.039507) (xy 117.573889 116.980202) (xy 117.57389 116.980202)\r\n\t\t\t\t(xy 117.560351 116.976574) (xy 117.459309 116.9495) (xy 117.340691 116.9495) (xy 117.270567 116.968289)\r\n\t\t\t\t(xy 117.226109 116.980202) (xy 117.123391 117.039507) (xy 117.039507 117.123391) (xy 116.980202 117.226109)\r\n\t\t\t\t(xy 116.980201 117.226114) (xy 116.9495 117.340691) (xy 116.2505 117.340691) (xy 116.219799 117.226114)\r\n\t\t\t\t(xy 116.219797 117.226111) (xy 116.219797 117.226109) (xy 116.160492 117.123391) (xy 116.16049 117.123389)\r\n\t\t\t\t(xy 116.160489 117.123387) (xy 116.076613 117.039511) (xy 116.07661 117.039509) (xy 116.076608 117.039507)\r\n\t\t\t\t(xy 115.973889 116.980202) (xy 115.97389 116.980202) (xy 115.960351 116.976574) (xy 115.859309 116.9495)\r\n\t\t\t\t(xy 115.740691 116.9495) (xy 115.670567 116.968289) (xy 115.626109 116.980202) (xy 115.523391 117.039507)\r\n\t\t\t\t(xy 115.439507 117.123391) (xy 115.380202 117.226109) (xy 115.380201 117.226114) (xy 115.3495 117.340691)\r\n\t\t\t\t(xy 114.6505 117.340691) (xy 114.619799 117.226114) (xy 114.619797 117.226111) (xy 114.619797 117.226109)\r\n\t\t\t\t(xy 114.560492 117.123391) (xy 114.56049 117.123389) (xy 114.560489 117.123387) (xy 114.476613 117.039511)\r\n\t\t\t\t(xy 114.47661 117.039509) (xy 114.476608 117.039507) (xy 114.373889 116.980202) (xy 114.37389 116.980202)\r\n\t\t\t\t(xy 114.360351 116.976574) (xy 114.259309 116.9495) (xy 114.140691 116.9495) (xy 114.070567 116.968289)\r\n\t\t\t\t(xy 114.026109 116.980202) (xy 113.923391 117.039507) (xy 113.839507 117.123391) (xy 113.780202 117.226109)\r\n\t\t\t\t(xy 113.780201 117.226114) (xy 113.7495 117.340691) (xy 113.0505 117.340691) (xy 113.019799 117.226114)\r\n\t\t\t\t(xy 113.019797 117.226111) (xy 113.019797 117.226109) (xy 112.960492 117.123391) (xy 112.96049 117.123389)\r\n\t\t\t\t(xy 112.960489 117.123387) (xy 112.876613 117.039511) (xy 112.87661 117.039509) (xy 112.876608 117.039507)\r\n\t\t\t\t(xy 112.773889 116.980202) (xy 112.77389 116.980202) (xy 112.760351 116.976574) (xy 112.659309 116.9495)\r\n\t\t\t\t(xy 112.540691 116.9495) (xy 112.470567 116.968289) (xy 112.426109 116.980202) (xy 112.323391 117.039507)\r\n\t\t\t\t(xy 112.239507 117.123391) (xy 112.180202 117.226109) (xy 112.180201 117.226114) (xy 112.1495 117.340691)\r\n\t\t\t\t(xy 111.4505 117.340691) (xy 111.419799 117.226114) (xy 111.419797 117.226111) (xy 111.419797 117.226109)\r\n\t\t\t\t(xy 111.360492 117.123391) (xy 111.36049 117.123389) (xy 111.360489 117.123387) (xy 111.276613 117.039511)\r\n\t\t\t\t(xy 111.27661 117.039509) (xy 111.276608 117.039507) (xy 111.173889 116.980202) (xy 111.17389 116.980202)\r\n\t\t\t\t(xy 111.160351 116.976574) (xy 111.059309 116.9495) (xy 110.940691 116.9495) (xy 110.870567 116.968289)\r\n\t\t\t\t(xy 110.826109 116.980202) (xy 110.723391 117.039507) (xy 110.639507 117.123391) (xy 110.580202 117.226109)\r\n\t\t\t\t(xy 110.580201 117.226114) (xy 110.5495 117.340691) (xy 109.8505 117.340691) (xy 109.819799 117.226114)\r\n\t\t\t\t(xy 109.819797 117.226111) (xy 109.819797 117.226109) (xy 109.760492 117.123391) (xy 109.76049 117.123389)\r\n\t\t\t\t(xy 109.760489 117.123387) (xy 109.676613 117.039511) (xy 109.67661 117.039509) (xy 109.676608 117.039507)\r\n\t\t\t\t(xy 109.573889 116.980202) (xy 109.57389 116.980202) (xy 109.560351 116.976574) (xy 109.459309 116.9495)\r\n\t\t\t\t(xy 109.340691 116.9495) (xy 109.270567 116.968289) (xy 109.226109 116.980202) (xy 109.123391 117.039507)\r\n\t\t\t\t(xy 109.039507 117.123391) (xy 108.980202 117.226109) (xy 108.980201 117.226114) (xy 108.9495 117.340691)\r\n\t\t\t\t(xy 108.2505 117.340691) (xy 108.219799 117.226114) (xy 108.219797 117.226111) (xy 108.219797 117.226109)\r\n\t\t\t\t(xy 108.160492 117.123391) (xy 108.16049 117.123389) (xy 108.160489 117.123387) (xy 108.076613 117.039511)\r\n\t\t\t\t(xy 108.07661 117.039509) (xy 108.076608 117.039507) (xy 107.973889 116.980202) (xy 107.97389 116.980202)\r\n\t\t\t\t(xy 107.960351 116.976574) (xy 107.859309 116.9495) (xy 107.740691 116.9495) (xy 107.67056' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'7 116.968289)\r\n\t\t\t\t(xy 107.626109 116.980202) (xy 107.523391 117.039507) (xy 107.439507 117.123391) (xy 107.380202 117.226109)\r\n\t\t\t\t(xy 107.380201 117.226114) (xy 107.3495 117.340691) (xy 106.6505 117.340691) (xy 106.619799 117.226114)\r\n\t\t\t\t(xy 106.619797 117.226111) (xy 106.619797 117.226109) (xy 106.560492 117.123391) (xy 106.56049 117.123389)\r\n\t\t\t\t(xy 106.560489 117.123387) (xy 106.476613 117.039511) (xy 106.47661 117.039509) (xy 106.476608 117.039507)\r\n\t\t\t\t(xy 106.373889 116.980202) (xy 106.37389 116.980202) (xy 106.360351 116.976574) (xy 106.259309 116.9495)\r\n\t\t\t\t(xy 106.140691 116.9495) (xy 106.070567 116.968289) (xy 106.026109 116.980202) (xy 105.923391 117.039507)\r\n\t\t\t\t(xy 105.839507 117.123391) (xy 105.780202 117.226109) (xy 105.780201 117.226114) (xy 105.7495 117.340691)\r\n\t\t\t\t(xy 104.97048 117.340691) (xy 104.960492 117.323391) (xy 104.96049 117.323389) (xy 104.960489 117.323387)\r\n\t\t\t\t(xy 104.876613 117.239511) (xy 104.87661 117.239509) (xy 104.876608 117.239507) (xy 104.773889 117.180202)\r\n\t\t\t\t(xy 104.77389 117.180202) (xy 104.750318 117.173886) (xy 104.659309 117.1495) (xy 104.540691 117.1495)\r\n\t\t\t\t(xy 104.470567 117.168289) (xy 104.426109 117.180202) (xy 104.323391 117.239507) (xy 104.239507 117.323391)\r\n\t\t\t\t(xy 104.180202 117.426109) (xy 104.180201 117.426114) (xy 104.1495 117.540691) (xy 104.1495 117.659309)\r\n\t\t\t\t(xy 104.180201 117.773886) (xy 104.180202 117.773888) (xy 104.202768 117.812973) (xy 104.21549 117.872822)\r\n\t\t\t\t(xy 104.190604 117.928717) (xy 104.137616 117.95931) (xy 104.09141 117.958101) (xy 104.059309 117.9495)\r\n\t\t\t\t(xy 103.940691 117.9495) (xy 103.899669 117.960492) (xy 103.826109 117.980202) (xy 103.723391 118.039507)\r\n\t\t\t\t(xy 103.639507 118.123391) (xy 103.580202 118.226109) (xy 103.580201 118.226114) (xy 103.5495 118.340691)\r\n\t\t\t\t(xy 101.4505 118.340691) (xy 101.419799 118.226114) (xy 101.419797 118.226111) (xy 101.419797 118.226109)\r\n\t\t\t\t(xy 101.360492 118.123391) (xy 101.36049 118.123389) (xy 101.360489 118.123387) (xy 101.276613 118.039511)\r\n\t\t\t\t(xy 101.27661 118.039509) (xy 101.276608 118.039507) (xy 101.173889 117.980202) (xy 101.17389 117.980202)\r\n\t\t\t\t(xy 101.150318 117.973886) (xy 101.059309 117.9495) (xy 100.940691 117.9495) (xy 100.899669 117.960492)\r\n\t\t\t\t(xy 100.826109 117.980202) (xy 100.723391 118.039507) (xy 100.639507 118.123391) (xy 100.580202 118.226109)\r\n\t\t\t\t(xy 100.580201 118.226114) (xy 100.5495 118.340691) (xy 74.0005 118.340691) (xy 74.0005 116.940691)\r\n\t\t\t\t(xy 100.5495 116.940691) (xy 100.5495 117.059309) (xy 100.56667 117.123387) (xy 100.580202 117.17389)\r\n\t\t\t\t(xy 100.639507 117.276608) (xy 100.639509 117.27661) (xy 100.639511 117.276613) (xy 100.723387 117.360489)\r\n\t\t\t\t(xy 100.723389 117.36049) (xy 100.723391 117.360492) (xy 100.82611 117.419797) (xy 100.826111 117.419797)\r\n\t\t\t\t(xy 100.826114 117.419799) (xy 100.940691 117.4505) (xy 100.940693 117.4505) (xy 101.059307 117.4505)\r\n\t\t\t\t(xy 101.059309 117.4505) (xy 101.173886 117.419799) (xy 101.173888 117.419797) (xy 101.17389 117.419797)\r\n\t\t\t\t(xy 101.276608 117.360492) (xy 101.276608 117.360491) (xy 101.276613 117.360489) (xy 101.360489 117.276613)\r\n\t\t\t\t(xy 101.38191 117.239511) (xy 101.419797 117.17389) (xy 101.419797 117.173888) (xy 101.419799 117.173886)\r\n\t\t\t\t(xy 101.4505 117.059309) (xy 101.4505 116.940691) (xy 102.3495 116.940691) (xy 102.3495 117.059309)\r\n\t\t\t\t(xy 102.36667 117.123387) (xy 102.380202 117.17389) (xy 102.439507 117.276608) (xy 102.439509 117.27661)\r\n\t\t\t\t(xy 102.439511 117.276613) (xy 102.523387 117.360489) (xy 102.523389 117.36049) (xy 102.523391 117.360492)\r\n\t\t\t\t(xy 102.62611 117.419797) (xy 102.626111 117.419797) (xy 102.626114 117.419799) (xy 102.740691 117.4505)\r\n\t\t\t\t(xy 102.740693 117.4505) (xy 102.859307 117.4505) (xy 102.859309 117.4505) (xy 102.973886 117.419799)\r\n\t\t\t\t(xy 102.973888 117.419797) (xy 102.97389 117.419797) (xy 103.076608 117.360492) (xy 103.076608 117.360491)\r\n\t\t\t\t(xy 103.076613 117.360489) (xy 103.160489 117.276613) (xy 103.18191 117.239511) (xy 103.219797 117.17389)\r\n\t\t\t\t(xy 103.219797 117.173888) (xy 103.219799 117.173886) (xy 103.2505 117.059309) (xy 103.2505 116.940691)\r\n\t\t\t\t(xy 103.219799 116.826114) (xy 103.219797 116.826111) (xy 103.219797 116.826109) (xy 103.201795 116.794929)\r\n\t\t\t\t(xy 103.189073 116.735081) (xy 103.213959 116.679185) (xy 103.261905 116.649804) (xy 103.373886 116.619799)\r\n\t\t\t\t(xy 103.453409 116.573886) (xy 103.476608 116.560492) (xy 103.476608 116.560491) (xy 103.476613 116.560489)\r\n\t\t\t\t(xy 103.560489 116.476613) (xy 103.570481 116.459307) (xy 103.619797 116.37389) (xy 103.619798 116.373887)\r\n\t\t\t\t(xy 103.619799 116.373886) (xy 103.628694 116.340691) (xy 141.9495 116.340691) (xy 141.9495 116.459309)\r\n\t\t\t\t(xy 141.973667 116.5495) (xy 141.980202 116.57389) (xy 142.039507 116.676608) (xy 142.039509 116.67661)\r\n\t\t\t\t(xy 142.039511 116.676613) (xy 142.123387 116.760489) (xy 142.123389 116.76049) (xy 142.123391 116.760492)\r\n\t\t\t\t(xy 142.22611 116.819797) (xy 142.226111 116.819797) (xy 142.226114 116.819799) (xy 142.340691 116.8505)\r\n\t\t\t\t(xy 142.340693 116.8505) (xy 142.459307 116.8505) (xy 142.459309 116.8505) (xy 142.573886 116.819799)\r\n\t\t\t\t(xy 142.573888 116.819797) (xy 142.57389 116.819797) (xy 142.676608 116.760492) (xy 142.676608 116.760491)\r\n\t\t\t\t(xy 142.676613 116.760489) (xy 142.760489 116.676613) (xy 142.760492 116.676608) (xy 142.819797 116.57389)\r\n\t\t\t\t(xy 142.819797 116.573888) (xy 142.819799 116.573886) (xy 142.8505 116.459309) (xy 142.8505 116.340691)\r\n\t\t\t\t(xy 142.841898 116.308588) (xy 142.8451 116.247489) (xy 142.883606 116.199939) (xy 142.942706 116.184103)\r\n\t\t\t\t(xy 142.987024 116.19723) (xy 143.026114 116.219799) (xy 143.140691 116.2505) (xy 143.140693 116.2505)\r\n\t\t\t\t(xy 143.259307 116.2505) (xy 143.259309 116.2505) (xy 143.373886 116.219799) (xy 143.373888 116.219797)\r\n\t\t\t\t(xy 143.37389 116.219797) (xy 143.476608 116.160492) (xy 143.476608 116.160491) (xy 143.476613 116.160489)\r\n\t\t\t\t(xy 143.560489 116.076613) (xy 143.570481 116.059307) (xy 143.619797 115.97389) (xy 143.619797 115.973888)\r\n\t\t\t\t(xy 143.619799 115.973886) (xy 143.6505 115.859309) (xy 143.6505 115.740691) (xy 144.3495 115.740691)\r\n\t\t\t\t(xy 144.3495 115.859309) (xy 144.36667 115.923387) (xy 144.380202 115.97389) (xy 144.439507 116.076608)\r\n\t\t\t\t(xy 144.439509 116.07661) (xy 144.439511 116.076613) (xy 144.523387 116.160489) (xy 144.523389 116.16049)\r\n\t\t\t\t(xy 144.523391 116.160492) (xy 144.62611 116.219797) (xy 144.626111 116.219797) (xy 144.626114 116.219799)\r\n\t\t\t\t(xy 144.740691 116.2505) (xy 144.740693 116.2505) (xy 144.859307 116.2505) (xy 144.859309 116.2505)\r\n\t\t\t\t(xy 144.973886 116.219799) (xy 144.973888 116.219797) (xy 144.97389 116.219797) (xy 145.076608 116.160492)\r\n\t\t\t\t(xy 145.076608 116.160491) (xy 145.076613 116.160489) (xy 145.160489 116.076613) (xy 145.170481 116.059307)\r\n\t\t\t\t(xy 145.219797 115.97389) (xy 145.219797 115.973888) (xy 145.219799 115.973886) (xy 145.2505 115.859309)\r\n\t\t\t\t(xy 145.2505 115.740691) (xy 145.247107 115.72803) (xy 145.800283 115.72803) (xy 145.800283 115.846648)\r\n\t\t\t\t(xy 145.816878 115.908581) (xy 145.830985 115.961229) (xy 145.89029 116.063947) (xy 145.890292 116.063949)\r\n\t\t\t\t(xy 145.890294 116.063952) (xy 145.97417 116.147828) (xy 145.974172 116.147829) (xy 145.974174 116.147831)\r\n\t\t\t\t(xy 146.076893 116.207136) (xy 146.076894 116.207136) (xy 146.076897 116.207138) (xy 146.191474 116.237839)\r\n\t\t\t\t(xy 146.191476 116.237839) (xy 146.31009 116.237839) (xy 146.310092 116.237839) (xy 146.424669 116.207138)\r\n\t\t\t\t(xy 146.424671 116.207136) (xy 146.424673 116.207136) (xy 146.527391 116.147831) (xy 146.527391 116.14783)\r\n\t\t\t\t(xy 146.527396 116.147828) (xy 146.611272 116.063952) (xy 146.625383 116.039511) (xy 146.67058 115.961229)\r\n\t\t\t\t(xy 146.67058 115.961227) (xy 146.670582 115.961225) (xy 146.701283 115.846648) (xy 146.701283 115.740691)\r\n\t\t\t\t(xy 147.3495 115.740691) (xy 147.3495 115.859309) (xy 147.36667 115.923387) (xy 147.380202 115.97389)\r\n\t\t\t\t(xy 147.439507 116.076608) (xy 147.439509 116.07661) (xy 147.439511 116.076613) (xy 147.523387 116.160489)\r\n\t\t\t\t(xy 147.523389 116.16049) (xy 147.523391 116.160492) (xy 147.62611 116.219797) (xy 147.626111 116.219797)\r\n\t\t\t\t(xy 147.626114 116.219799) (xy 147.740691 116.2505) (xy 147.740693 116.2505) (xy 147.859307 116.2505)\r\n\t\t' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'\t\t(xy 147.859309 116.2505) (xy 147.973886 116.219799) (xy 147.973888 116.219797) (xy 147.97389 116.219797)\r\n\t\t\t\t(xy 148.076608 116.160492) (xy 148.076608 116.160491) (xy 148.076613 116.160489) (xy 148.160489 116.076613)\r\n\t\t\t\t(xy 148.175566 116.0505) (xy 148.216153 115.980201) (xy 148.219799 115.973886) (xy 148.228694 115.940691)\r\n\t\t\t\t(xy 151.5495 115.940691) (xy 151.5495 116.059309) (xy 151.554137 116.076613) (xy 151.580202 116.17389)\r\n\t\t\t\t(xy 151.639507 116.276608) (xy 151.639509 116.27661) (xy 151.639511 116.276613) (xy 151.723387 116.360489)\r\n\t\t\t\t(xy 151.723389 116.36049) (xy 151.723391 116.360492) (xy 151.82611 116.419797) (xy 151.826111 116.419797)\r\n\t\t\t\t(xy 151.826114 116.419799) (xy 151.940691 116.4505) (xy 151.940693 116.4505) (xy 152.059307 116.4505)\r\n\t\t\t\t(xy 152.059309 116.4505) (xy 152.173886 116.419799) (xy 152.173888 116.419797) (xy 152.17389 116.419797)\r\n\t\t\t\t(xy 152.276608 116.360492) (xy 152.276608 116.360491) (xy 152.276613 116.360489) (xy 152.360489 116.276613)\r\n\t\t\t\t(xy 152.370481 116.259307) (xy 152.419797 116.17389) (xy 152.419797 116.173888) (xy 152.419799 116.173886)\r\n\t\t\t\t(xy 152.4505 116.059309) (xy 152.4505 115.940691) (xy 152.419799 115.826114) (xy 152.419797 115.826111)\r\n\t\t\t\t(xy 152.419797 115.826109) (xy 152.360492 115.723391) (xy 152.36049 115.723389) (xy 152.360489 115.723387)\r\n\t\t\t\t(xy 152.276613 115.639511) (xy 152.27661 115.639509) (xy 152.276608 115.639507) (xy 152.173889 115.580202)\r\n\t\t\t\t(xy 152.17389 115.580202) (xy 152.160351 115.576574) (xy 152.059309 115.5495) (xy 151.940691 115.5495)\r\n\t\t\t\t(xy 151.870567 115.568289) (xy 151.826109 115.580202) (xy 151.723391 115.639507) (xy 151.639507 115.723391)\r\n\t\t\t\t(xy 151.580202 115.826109) (xy 151.566971 115.875488) (xy 151.5495 115.940691) (xy 148.228694 115.940691)\r\n\t\t\t\t(xy 148.237298 115.908581) (xy 148.237298 115.908579) (xy 148.2505 115.859309) (xy 148.2505 115.740691)\r\n\t\t\t\t(xy 148.219799 115.626114) (xy 148.219797 115.626111) (xy 148.219797 115.626109) (xy 148.160492 115.523391)\r\n\t\t\t\t(xy 148.16049 115.523389) (xy 148.160489 115.523387) (xy 148.076613 115.439511) (xy 148.07661 115.439509)\r\n\t\t\t\t(xy 148.076608 115.439507) (xy 147.973889 115.380202) (xy 147.97389 115.380202) (xy 147.960351 115.376574)\r\n\t\t\t\t(xy 147.859309 115.3495) (xy 147.740691 115.3495) (xy 147.670567 115.368289) (xy 147.626109 115.380202)\r\n\t\t\t\t(xy 147.523391 115.439507) (xy 147.439507 115.523391) (xy 147.380202 115.626109) (xy 147.380201 115.626114)\r\n\t\t\t\t(xy 147.3495 115.740691) (xy 146.701283 115.740691) (xy 146.701283 115.72803) (xy 146.670582 115.613453)\r\n\t\t\t\t(xy 146.67058 115.61345) (xy 146.67058 115.613448) (xy 146.611275 115.51073) (xy 146.611273 115.510728)\r\n\t\t\t\t(xy 146.611272 115.510726) (xy 146.527396 115.42685) (xy 146.527393 115.426848) (xy 146.527391 115.426846)\r\n\t\t\t\t(xy 146.424672 115.367541) (xy 146.424673 115.367541) (xy 146.411134 115.363913) (xy 146.310092 115.336839)\r\n\t\t\t\t(xy 146.191474 115.336839) (xy 146.144223 115.3495) (xy 146.076892 115.367541) (xy 145.974174 115.426846)\r\n\t\t\t\t(xy 145.89029 115.51073) (xy 145.830985 115.613448) (xy 145.830984 115.613453) (xy 145.800283 115.72803)\r\n\t\t\t\t(xy 145.247107 115.72803) (xy 145.219799 115.626114) (xy 145.219797 115.626111) (xy 145.219797 115.626109)\r\n\t\t\t\t(xy 145.160492 115.523391) (xy 145.16049 115.523389) (xy 145.160489 115.523387) (xy 145.076613 115.439511)\r\n\t\t\t\t(xy 145.07661 115.439509) (xy 145.076608 115.439507) (xy 144.973889 115.380202) (xy 144.97389 115.380202)\r\n\t\t\t\t(xy 144.960351 115.376574) (xy 144.859309 115.3495) (xy 144.740691 115.3495) (xy 144.670567 115.368289)\r\n\t\t\t\t(xy 144.626109 115.380202) (xy 144.523391 115.439507) (xy 144.439507 115.523391) (xy 144.380202 115.626109)\r\n\t\t\t\t(xy 144.380201 115.626114) (xy 144.3495 115.740691) (xy 143.6505 115.740691) (xy 143.619799 115.626114)\r\n\t\t\t\t(xy 143.619797 115.626111) (xy 143.619797 115.626109) (xy 143.560492 115.523391) (xy 143.56049 115.523389)\r\n\t\t\t\t(xy 143.560489 115.523387) (xy 143.476613 115.439511) (xy 143.47661 115.439509) (xy 143.476608 115.439507)\r\n\t\t\t\t(xy 143.373889 115.380202) (xy 143.37389 115.380202) (xy 143.360351 115.376574) (xy 143.259309 115.3495)\r\n\t\t\t\t(xy 143.140691 115.3495) (xy 143.070567 115.368289) (xy 143.026109 115.380202) (xy 142.923391 115.439507)\r\n\t\t\t\t(xy 142.839507 115.523391) (xy 142.780202 115.626109) (xy 142.780201 115.626114) (xy 142.750077 115.73854)\r\n\t\t\t\t(xy 142.7495 115.740692) (xy 142.7495 115.859309) (xy 142.758101 115.89141) (xy 142.754898 115.952512)\r\n\t\t\t\t(xy 142.716392 116.000061) (xy 142.657291 116.015896) (xy 142.612973 116.002768) (xy 142.573888 115.980202)\r\n\t\t\t\t(xy 142.573887 115.980201) (xy 142.573886 115.980201) (xy 142.459309 115.9495) (xy 142.340691 115.9495)\r\n\t\t\t\t(xy 142.270567 115.968289) (xy 142.226109 115.980202) (xy 142.123391 116.039507) (xy 142.039507 116.123391)\r\n\t\t\t\t(xy 141.980202 116.226109) (xy 141.973667 116.2505) (xy 141.9495 116.340691) (xy 103.628694 116.340691)\r\n\t\t\t\t(xy 103.6505 116.259309) (xy 103.6505 116.140691) (xy 103.619799 116.026114) (xy 103.619797 116.026111)\r\n\t\t\t\t(xy 103.619797 116.026109) (xy 103.560492 115.923391) (xy 103.56049 115.923389) (xy 103.560489 115.923387)\r\n\t\t\t\t(xy 103.476613 115.839511) (xy 103.47661 115.839509) (xy 103.476608 115.839507) (xy 103.442713 115.819938)\r\n\t\t\t\t(xy 103.442712 115.819938) (xy 103.373888 115.780202) (xy 103.373887 115.780201) (xy 103.373886 115.780201)\r\n\t\t\t\t(xy 103.259309 115.7495) (xy 103.140691 115.7495) (xy 103.070567 115.768289) (xy 103.026109 115.780202)\r\n\t\t\t\t(xy 102.923391 115.839507) (xy 102.839507 115.923391) (xy 102.780202 116.026109) (xy 102.770062 116.063952)\r\n\t\t\t\t(xy 102.7495 116.140691) (xy 102.7495 116.259309) (xy 102.754137 116.276613) (xy 102.780201 116.373887)\r\n\t\t\t\t(xy 102.798205 116.40507) (xy 102.810926 116.464919) (xy 102.786039 116.520814) (xy 102.738091 116.550196)\r\n\t\t\t\t(xy 102.69968 116.560489) (xy 102.626109 116.580202) (xy 102.523391 116.639507) (xy 102.439507 116.723391)\r\n\t\t\t\t(xy 102.380202 116.826109) (xy 102.380201 116.826114) (xy 102.3495 116.940691) (xy 101.4505 116.940691)\r\n\t\t\t\t(xy 101.419799 116.826114) (xy 101.419797 116.826111) (xy 101.419797 116.826109) (xy 101.360492 116.723391)\r\n\t\t\t\t(xy 101.36049 116.723389) (xy 101.360489 116.723387) (xy 101.276613 116.639511) (xy 101.27661 116.639509)\r\n\t\t\t\t(xy 101.276608 116.639507) (xy 101.173889 116.580202) (xy 101.17389 116.580202) (xy 101.150318 116.573886)\r\n\t\t\t\t(xy 101.059309 116.5495) (xy 100.940691 116.5495) (xy 100.899669 116.560492) (xy 100.826109 116.580202)\r\n\t\t\t\t(xy 100.723391 116.639507) (xy 100.639507 116.723391) (xy 100.580202 116.826109) (xy 100.580201 116.826114)\r\n\t\t\t\t(xy 100.5495 116.940691) (xy 74.0005 116.940691) (xy 74.0005 115.940691) (xy 75.5495 115.940691)\r\n\t\t\t\t(xy 75.5495 116.059309) (xy 75.554137 116.076613) (xy 75.580202 116.17389) (xy 75.639507 116.276608)\r\n\t\t\t\t(xy 75.639509 116.27661) (xy 75.639511 116.276613) (xy 75.723387 116.360489) (xy 75.723389 116.36049)\r\n\t\t\t\t(xy 75.723391 116.360492) (xy 75.82611 116.419797) (xy 75.826111 116.419797) (xy 75.826114 116.419799)\r\n\t\t\t\t(xy 75.940691 116.4505) (xy 75.940693 116.4505) (xy 76.059307 116.4505) (xy 76.059309 116.4505)\r\n\t\t\t\t(xy 76.173886 116.419799) (xy 76.173888 116.419797) (xy 76.17389 116.419797) (xy 76.276608 116.360492)\r\n\t\t\t\t(xy 76.276608 116.360491) (xy 76.276613 116.360489) (xy 76.360489 116.276613) (xy 76.370481 116.259307)\r\n\t\t\t\t(xy 76.419797 116.17389) (xy 76.419797 116.173888) (xy 76.419799 116.173886) (xy 76.4505 116.059309)\r\n\t\t\t\t(xy 76.4505 115.940691) (xy 79.5495 115.940691) (xy 79.5495 116.059309) (xy 79.554137 116.076613)\r\n\t\t\t\t(xy 79.580202 116.17389) (xy 79.639507 116.276608) (xy 79.639509 116.27661) (xy 79.639511 116.276613)\r\n\t\t\t\t(xy 79.723387 116.360489) (xy 79.723389 116.36049) (xy 79.723391 116.360492) (xy 79.82611 116.419797)\r\n\t\t\t\t(xy 79.826111 116.419797) (xy 79.826114 116.419799) (xy 79.940691 116.4505) (xy 79.940693 116.4505)\r\n\t\t\t\t(xy 80.059307 116.4505) (xy 80.059309 116.4505) (xy 80.173886 116.419799) (xy 80.173888 116.419797)\r\n\t\t\t\t(xy 80.17389 116.419797) (xy 80.276608 116.360492) (xy 80.276608 116.360491) (xy 80.276613 116.360489)\r\n\t\t\t\t(xy 80.360489 116.276613) (xy 80.370481 116.259307) (xy 80.419797 116.17389) (xy 80.419797 116.173888)\r\n\t\t\t\t(xy 80.419799 116.173886) (xy 80.4505 116.059309) (xy' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' 80.4505 115.940691) (xy 83.5495 115.940691)\r\n\t\t\t\t(xy 83.5495 116.059309) (xy 83.554137 116.076613) (xy 83.580202 116.17389) (xy 83.639507 116.276608)\r\n\t\t\t\t(xy 83.639509 116.27661) (xy 83.639511 116.276613) (xy 83.723387 116.360489) (xy 83.723389 116.36049)\r\n\t\t\t\t(xy 83.723391 116.360492) (xy 83.82611 116.419797) (xy 83.826111 116.419797) (xy 83.826114 116.419799)\r\n\t\t\t\t(xy 83.940691 116.4505) (xy 83.940693 116.4505) (xy 84.059307 116.4505) (xy 84.059309 116.4505)\r\n\t\t\t\t(xy 84.173886 116.419799) (xy 84.173888 116.419797) (xy 84.17389 116.419797) (xy 84.276608 116.360492)\r\n\t\t\t\t(xy 84.276608 116.360491) (xy 84.276613 116.360489) (xy 84.360489 116.276613) (xy 84.370481 116.259307)\r\n\t\t\t\t(xy 84.419797 116.17389) (xy 84.419797 116.173888) (xy 84.419799 116.173886) (xy 84.4505 116.059309)\r\n\t\t\t\t(xy 84.4505 115.940691) (xy 87.5495 115.940691) (xy 87.5495 116.059309) (xy 87.554137 116.076613)\r\n\t\t\t\t(xy 87.580202 116.17389) (xy 87.639507 116.276608) (xy 87.639509 116.27661) (xy 87.639511 116.276613)\r\n\t\t\t\t(xy 87.723387 116.360489) (xy 87.723389 116.36049) (xy 87.723391 116.360492) (xy 87.82611 116.419797)\r\n\t\t\t\t(xy 87.826111 116.419797) (xy 87.826114 116.419799) (xy 87.940691 116.4505) (xy 87.940693 116.4505)\r\n\t\t\t\t(xy 88.059307 116.4505) (xy 88.059309 116.4505) (xy 88.173886 116.419799) (xy 88.173888 116.419797)\r\n\t\t\t\t(xy 88.17389 116.419797) (xy 88.276608 116.360492) (xy 88.276608 116.360491) (xy 88.276613 116.360489)\r\n\t\t\t\t(xy 88.360489 116.276613) (xy 88.370481 116.259307) (xy 88.419797 116.17389) (xy 88.419797 116.173888)\r\n\t\t\t\t(xy 88.419799 116.173886) (xy 88.4505 116.059309) (xy 88.4505 115.940691) (xy 91.5495 115.940691)\r\n\t\t\t\t(xy 91.5495 116.059309) (xy 91.554137 116.076613) (xy 91.580202 116.17389) (xy 91.639507 116.276608)\r\n\t\t\t\t(xy 91.639509 116.27661) (xy 91.639511 116.276613) (xy 91.723387 116.360489) (xy 91.723389 116.36049)\r\n\t\t\t\t(xy 91.723391 116.360492) (xy 91.82611 116.419797) (xy 91.826111 116.419797) (xy 91.826114 116.419799)\r\n\t\t\t\t(xy 91.940691 116.4505) (xy 91.940693 116.4505) (xy 92.059307 116.4505) (xy 92.059309 116.4505)\r\n\t\t\t\t(xy 92.173886 116.419799) (xy 92.173888 116.419797) (xy 92.17389 116.419797) (xy 92.276608 116.360492)\r\n\t\t\t\t(xy 92.276608 116.360491) (xy 92.276613 116.360489) (xy 92.360489 116.276613) (xy 92.370481 116.259307)\r\n\t\t\t\t(xy 92.419797 116.17389) (xy 92.419797 116.173888) (xy 92.419799 116.173886) (xy 92.4505 116.059309)\r\n\t\t\t\t(xy 92.4505 115.940691) (xy 99.5495 115.940691) (xy 99.5495 116.059309) (xy 99.554137 116.076613)\r\n\t\t\t\t(xy 99.580202 116.17389) (xy 99.639507 116.276608) (xy 99.639509 116.27661) (xy 99.639511 116.276613)\r\n\t\t\t\t(xy 99.723387 116.360489) (xy 99.723389 116.36049) (xy 99.723391 116.360492) (xy 99.82611 116.419797)\r\n\t\t\t\t(xy 99.826111 116.419797) (xy 99.826114 116.419799) (xy 99.940691 116.4505) (xy 99.940693 116.4505)\r\n\t\t\t\t(xy 100.059307 116.4505) (xy 100.059309 116.4505) (xy 100.173886 116.419799) (xy 100.173888 116.419797)\r\n\t\t\t\t(xy 100.17389 116.419797) (xy 100.276608 116.360492) (xy 100.276608 116.360491) (xy 100.276613 116.360489)\r\n\t\t\t\t(xy 100.360489 116.276613) (xy 100.370481 116.259307) (xy 100.419797 116.17389) (xy 100.419797 116.173888)\r\n\t\t\t\t(xy 100.419799 116.173886) (xy 100.4505 116.059309) (xy 100.4505 115.940691) (xy 100.4494 115.936586)\r\n\t\t\t\t(xy 100.452598 115.875488) (xy 100.4911 115.827935) (xy 100.5502 115.812095) (xy 100.607322 115.834018)\r\n\t\t\t\t(xy 100.63076 115.861458) (xy 100.639507 115.876608) (xy 100.639509 115.87661) (xy 100.639511 115.876613)\r\n\t\t\t\t(xy 100.723387 115.960489) (xy 100.723389 115.96049) (xy 100.723391 115.960492) (xy 100.82611 116.019797)\r\n\t\t\t\t(xy 100.826111 116.019797) (xy 100.826114 116.019799) (xy 100.940691 116.0505) (xy 100.940693 116.0505)\r\n\t\t\t\t(xy 101.059307 116.0505) (xy 101.059309 116.0505) (xy 101.173886 116.019799) (xy 101.173888 116.019797)\r\n\t\t\t\t(xy 101.17389 116.019797) (xy 101.276608 115.960492) (xy 101.276608 115.960491) (xy 101.276613 115.960489)\r\n\t\t\t\t(xy 101.360489 115.876613) (xy 101.370481 115.859307) (xy 101.419797 115.77389) (xy 101.419797 115.773888)\r\n\t\t\t\t(xy 101.419799 115.773886) (xy 101.428694 115.740691) (xy 104.1495 115.740691) (xy 104.1495 115.859309)\r\n\t\t\t\t(xy 104.16667 115.923387) (xy 104.180202 115.97389) (xy 104.239507 116.076608) (xy 104.239509 116.07661)\r\n\t\t\t\t(xy 104.239511 116.076613) (xy 104.323387 116.160489) (xy 104.323389 116.16049) (xy 104.323391 116.160492)\r\n\t\t\t\t(xy 104.42611 116.219797) (xy 104.426111 116.219797) (xy 104.426114 116.219799) (xy 104.540691 116.2505)\r\n\t\t\t\t(xy 104.540693 116.2505) (xy 104.659307 116.2505) (xy 104.659309 116.2505) (xy 104.773886 116.219799)\r\n\t\t\t\t(xy 104.773888 116.219797) (xy 104.77389 116.219797) (xy 104.876608 116.160492) (xy 104.876608 116.160491)\r\n\t\t\t\t(xy 104.876613 116.160489) (xy 104.960489 116.076613) (xy 104.970481 116.059307) (xy 105.019797 115.97389)\r\n\t\t\t\t(xy 105.019797 115.973888) (xy 105.019799 115.973886) (xy 105.0505 115.859309) (xy 105.0505 115.740691)\r\n\t\t\t\t(xy 105.7495 115.740691) (xy 105.7495 115.859309) (xy 105.76667 115.923387) (xy 105.780202 115.97389)\r\n\t\t\t\t(xy 105.839507 116.076608) (xy 105.839509 116.07661) (xy 105.839511 116.076613) (xy 105.923387 116.160489)\r\n\t\t\t\t(xy 105.923389 116.16049) (xy 105.923391 116.160492) (xy 106.02611 116.219797) (xy 106.026111 116.219797)\r\n\t\t\t\t(xy 106.026114 116.219799) (xy 106.140691 116.2505) (xy 106.140693 116.2505) (xy 106.259307 116.2505)\r\n\t\t\t\t(xy 106.259309 116.2505) (xy 106.373886 116.219799) (xy 106.373888 116.219797) (xy 106.37389 116.219797)\r\n\t\t\t\t(xy 106.476608 116.160492) (xy 106.476608 116.160491) (xy 106.476613 116.160489) (xy 106.560489 116.076613)\r\n\t\t\t\t(xy 106.570481 116.059307) (xy 106.619797 115.97389) (xy 106.619797 115.973888) (xy 106.619799 115.973886)\r\n\t\t\t\t(xy 106.6505 115.859309) (xy 106.6505 115.740691) (xy 107.3495 115.740691) (xy 107.3495 115.859309)\r\n\t\t\t\t(xy 107.36667 115.923387) (xy 107.380202 115.97389) (xy 107.439507 116.076608) (xy 107.439509 116.07661)\r\n\t\t\t\t(xy 107.439511 116.076613) (xy 107.523387 116.160489) (xy 107.523389 116.16049) (xy 107.523391 116.160492)\r\n\t\t\t\t(xy 107.62611 116.219797) (xy 107.626111 116.219797) (xy 107.626114 116.219799) (xy 107.740691 116.2505)\r\n\t\t\t\t(xy 107.740693 116.2505) (xy 107.859307 116.2505) (xy 107.859309 116.2505) (xy 107.973886 116.219799)\r\n\t\t\t\t(xy 107.973888 116.219797) (xy 107.97389 116.219797) (xy 108.076608 116.160492) (xy 108.076608 116.160491)\r\n\t\t\t\t(xy 108.076613 116.160489) (xy 108.160489 116.076613) (xy 108.170481 116.059307) (xy 108.219797 115.97389)\r\n\t\t\t\t(xy 108.219797 115.973888) (xy 108.219799 115.973886) (xy 108.2505 115.859309) (xy 108.2505 115.740691)\r\n\t\t\t\t(xy 108.9495 115.740691) (xy 108.9495 115.859309) (xy 108.96667 115.923387) (xy 108.980202 115.97389)\r\n\t\t\t\t(xy 109.039507 116.076608) (xy 109.039509 116.07661) (xy 109.039511 116.076613) (xy 109.123387 116.160489)\r\n\t\t\t\t(xy 109.123389 116.16049) (xy 109.123391 116.160492) (xy 109.22611 116.219797) (xy 109.226111 116.219797)\r\n\t\t\t\t(xy 109.226114 116.219799) (xy 109.340691 116.2505) (xy 109.340693 116.2505) (xy 109.459307 116.2505)\r\n\t\t\t\t(xy 109.459309 116.2505) (xy 109.573886 116.219799) (xy 109.573888 116.219797) (xy 109.57389 116.219797)\r\n\t\t\t\t(xy 109.676608 116.160492) (xy 109.676608 116.160491) (xy 109.676613 116.160489) (xy 109.760489 116.076613)\r\n\t\t\t\t(xy 109.770481 116.059307) (xy 109.819797 115.97389) (xy 109.819797 115.973888) (xy 109.819799 115.973886)\r\n\t\t\t\t(xy 109.8505 115.859309) (xy 109.8505 115.740691) (xy 110.5495 115.740691) (xy 110.5495 115.859309)\r\n\t\t\t\t(xy 110.56667 115.923387) (xy 110.580202 115.97389) (xy 110.639507 116.076608) (xy 110.639509 116.07661)\r\n\t\t\t\t(xy 110.639511 116.076613) (xy 110.723387 116.160489) (xy 110.723389 116.16049) (xy 110.723391 116.160492)\r\n\t\t\t\t(xy 110.82611 116.219797) (xy 110.826111 116.219797) (xy 110.826114 116.219799) (xy 110.940691 116.2505)\r\n\t\t\t\t(xy 110.940693 116.2505) (xy 111.059307 116.2505) (xy 111.059309 116.2505) (xy 111.173886 116.219799)\r\n\t\t\t\t(xy 111.173888 116.219797) (xy 111.17389 116.219797) (xy 111.276608 116.160492) (xy 111.276608 116.160491)\r\n\t\t\t\t(xy 111.276613 116.160489) (xy 111.360489 116.076613) (xy 111.370481 116.059307) (xy 111.419797 115.97389)\r\n\t\t\t\t(xy 111.419797 115.973888) (xy 111.419799 115.973886) (xy 111.4505 115.859309) (xy 111.4505 115.74069' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'1)\r\n\t\t\t\t(xy 112.1495 115.740691) (xy 112.1495 115.859309) (xy 112.16667 115.923387) (xy 112.180202 115.97389)\r\n\t\t\t\t(xy 112.239507 116.076608) (xy 112.239509 116.07661) (xy 112.239511 116.076613) (xy 112.323387 116.160489)\r\n\t\t\t\t(xy 112.323389 116.16049) (xy 112.323391 116.160492) (xy 112.42611 116.219797) (xy 112.426111 116.219797)\r\n\t\t\t\t(xy 112.426114 116.219799) (xy 112.540691 116.2505) (xy 112.540693 116.2505) (xy 112.659307 116.2505)\r\n\t\t\t\t(xy 112.659309 116.2505) (xy 112.773886 116.219799) (xy 112.773888 116.219797) (xy 112.77389 116.219797)\r\n\t\t\t\t(xy 112.876608 116.160492) (xy 112.876608 116.160491) (xy 112.876613 116.160489) (xy 112.960489 116.076613)\r\n\t\t\t\t(xy 112.970481 116.059307) (xy 113.019797 115.97389) (xy 113.019797 115.973888) (xy 113.019799 115.973886)\r\n\t\t\t\t(xy 113.0505 115.859309) (xy 113.0505 115.740691) (xy 113.7495 115.740691) (xy 113.7495 115.859309)\r\n\t\t\t\t(xy 113.76667 115.923387) (xy 113.780202 115.97389) (xy 113.839507 116.076608) (xy 113.839509 116.07661)\r\n\t\t\t\t(xy 113.839511 116.076613) (xy 113.923387 116.160489) (xy 113.923389 116.16049) (xy 113.923391 116.160492)\r\n\t\t\t\t(xy 114.02611 116.219797) (xy 114.026111 116.219797) (xy 114.026114 116.219799) (xy 114.140691 116.2505)\r\n\t\t\t\t(xy 114.140693 116.2505) (xy 114.259307 116.2505) (xy 114.259309 116.2505) (xy 114.373886 116.219799)\r\n\t\t\t\t(xy 114.373888 116.219797) (xy 114.37389 116.219797) (xy 114.476608 116.160492) (xy 114.476608 116.160491)\r\n\t\t\t\t(xy 114.476613 116.160489) (xy 114.560489 116.076613) (xy 114.570481 116.059307) (xy 114.619797 115.97389)\r\n\t\t\t\t(xy 114.619797 115.973888) (xy 114.619799 115.973886) (xy 114.6505 115.859309) (xy 114.6505 115.740691)\r\n\t\t\t\t(xy 115.3495 115.740691) (xy 115.3495 115.859309) (xy 115.36667 115.923387) (xy 115.380202 115.97389)\r\n\t\t\t\t(xy 115.439507 116.076608) (xy 115.439509 116.07661) (xy 115.439511 116.076613) (xy 115.523387 116.160489)\r\n\t\t\t\t(xy 115.523389 116.16049) (xy 115.523391 116.160492) (xy 115.62611 116.219797) (xy 115.626111 116.219797)\r\n\t\t\t\t(xy 115.626114 116.219799) (xy 115.740691 116.2505) (xy 115.740693 116.2505) (xy 115.859307 116.2505)\r\n\t\t\t\t(xy 115.859309 116.2505) (xy 115.973886 116.219799) (xy 115.973888 116.219797) (xy 115.97389 116.219797)\r\n\t\t\t\t(xy 116.076608 116.160492) (xy 116.076608 116.160491) (xy 116.076613 116.160489) (xy 116.160489 116.076613)\r\n\t\t\t\t(xy 116.170481 116.059307) (xy 116.219797 115.97389) (xy 116.219797 115.973888) (xy 116.219799 115.973886)\r\n\t\t\t\t(xy 116.2505 115.859309) (xy 116.2505 115.740691) (xy 116.9495 115.740691) (xy 116.9495 115.859309)\r\n\t\t\t\t(xy 116.96667 115.923387) (xy 116.980202 115.97389) (xy 117.039507 116.076608) (xy 117.039509 116.07661)\r\n\t\t\t\t(xy 117.039511 116.076613) (xy 117.123387 116.160489) (xy 117.123389 116.16049) (xy 117.123391 116.160492)\r\n\t\t\t\t(xy 117.22611 116.219797) (xy 117.226111 116.219797) (xy 117.226114 116.219799) (xy 117.340691 116.2505)\r\n\t\t\t\t(xy 117.340693 116.2505) (xy 117.459307 116.2505) (xy 117.459309 116.2505) (xy 117.573886 116.219799)\r\n\t\t\t\t(xy 117.573888 116.219797) (xy 117.57389 116.219797) (xy 117.676608 116.160492) (xy 117.676608 116.160491)\r\n\t\t\t\t(xy 117.676613 116.160489) (xy 117.760489 116.076613) (xy 117.770481 116.059307) (xy 117.819797 115.97389)\r\n\t\t\t\t(xy 117.819797 115.973888) (xy 117.819799 115.973886) (xy 117.8505 115.859309) (xy 117.8505 115.740691)\r\n\t\t\t\t(xy 118.5495 115.740691) (xy 118.5495 115.859309) (xy 118.56667 115.923387) (xy 118.580202 115.97389)\r\n\t\t\t\t(xy 118.639507 116.076608) (xy 118.639509 116.07661) (xy 118.639511 116.076613) (xy 118.723387 116.160489)\r\n\t\t\t\t(xy 118.723389 116.16049) (xy 118.723391 116.160492) (xy 118.82611 116.219797) (xy 118.826111 116.219797)\r\n\t\t\t\t(xy 118.826114 116.219799) (xy 118.940691 116.2505) (xy 118.940693 116.2505) (xy 119.059307 116.2505)\r\n\t\t\t\t(xy 119.059309 116.2505) (xy 119.173886 116.219799) (xy 119.173888 116.219797) (xy 119.17389 116.219797)\r\n\t\t\t\t(xy 119.276608 116.160492) (xy 119.276608 116.160491) (xy 119.276613 116.160489) (xy 119.360489 116.076613)\r\n\t\t\t\t(xy 119.370481 116.059307) (xy 119.419797 115.97389) (xy 119.419797 115.973888) (xy 119.419799 115.973886)\r\n\t\t\t\t(xy 119.4505 115.859309) (xy 119.4505 115.740691) (xy 120.1495 115.740691) (xy 120.1495 115.859309)\r\n\t\t\t\t(xy 120.16667 115.923387) (xy 120.180202 115.97389) (xy 120.239507 116.076608) (xy 120.239509 116.07661)\r\n\t\t\t\t(xy 120.239511 116.076613) (xy 120.323387 116.160489) (xy 120.323389 116.16049) (xy 120.323391 116.160492)\r\n\t\t\t\t(xy 120.42611 116.219797) (xy 120.426111 116.219797) (xy 120.426114 116.219799) (xy 120.540691 116.2505)\r\n\t\t\t\t(xy 120.540693 116.2505) (xy 120.659307 116.2505) (xy 120.659309 116.2505) (xy 120.773886 116.219799)\r\n\t\t\t\t(xy 120.773888 116.219797) (xy 120.77389 116.219797) (xy 120.876608 116.160492) (xy 120.876608 116.160491)\r\n\t\t\t\t(xy 120.876613 116.160489) (xy 120.960489 116.076613) (xy 120.970481 116.059307) (xy 121.019797 115.97389)\r\n\t\t\t\t(xy 121.019797 115.973888) (xy 121.019799 115.973886) (xy 121.0505 115.859309) (xy 121.0505 115.740691)\r\n\t\t\t\t(xy 121.7495 115.740691) (xy 121.7495 115.859309) (xy 121.76667 115.923387) (xy 121.780202 115.97389)\r\n\t\t\t\t(xy 121.839507 116.076608) (xy 121.839509 116.07661) (xy 121.839511 116.076613) (xy 121.923387 116.160489)\r\n\t\t\t\t(xy 121.923389 116.16049) (xy 121.923391 116.160492) (xy 122.02611 116.219797) (xy 122.026111 116.219797)\r\n\t\t\t\t(xy 122.026114 116.219799) (xy 122.140691 116.2505) (xy 122.140693 116.2505) (xy 122.259307 116.2505)\r\n\t\t\t\t(xy 122.259309 116.2505) (xy 122.373886 116.219799) (xy 122.373888 116.219797) (xy 122.37389 116.219797)\r\n\t\t\t\t(xy 122.476608 116.160492) (xy 122.476608 116.160491) (xy 122.476613 116.160489) (xy 122.560489 116.076613)\r\n\t\t\t\t(xy 122.570481 116.059307) (xy 122.619797 115.97389) (xy 122.619797 115.973888) (xy 122.619799 115.973886)\r\n\t\t\t\t(xy 122.6505 115.859309) (xy 122.6505 115.740691) (xy 123.3495 115.740691) (xy 123.3495 115.859309)\r\n\t\t\t\t(xy 123.36667 115.923387) (xy 123.380202 115.97389) (xy 123.439507 116.076608) (xy 123.439509 116.07661)\r\n\t\t\t\t(xy 123.439511 116.076613) (xy 123.523387 116.160489) (xy 123.523389 116.16049) (xy 123.523391 116.160492)\r\n\t\t\t\t(xy 123.62611 116.219797) (xy 123.626111 116.219797) (xy 123.626114 116.219799) (xy 123.740691 116.2505)\r\n\t\t\t\t(xy 123.740693 116.2505) (xy 123.859307 116.2505) (xy 123.859309 116.2505) (xy 123.973886 116.219799)\r\n\t\t\t\t(xy 123.973888 116.219797) (xy 123.97389 116.219797) (xy 124.076608 116.160492) (xy 124.076608 116.160491)\r\n\t\t\t\t(xy 124.076613 116.160489) (xy 124.160489 116.076613) (xy 124.170481 116.059307) (xy 124.219797 115.97389)\r\n\t\t\t\t(xy 124.219797 115.973888) (xy 124.219799 115.973886) (xy 124.2505 115.859309) (xy 124.2505 115.740691)\r\n\t\t\t\t(xy 124.9495 115.740691) (xy 124.9495 115.859309) (xy 124.96667 115.923387) (xy 124.980202 115.97389)\r\n\t\t\t\t(xy 125.039507 116.076608) (xy 125.039509 116.07661) (xy 125.039511 116.076613) (xy 125.123387 116.160489)\r\n\t\t\t\t(xy 125.123389 116.16049) (xy 125.123391 116.160492) (xy 125.22611 116.219797) (xy 125.226111 116.219797)\r\n\t\t\t\t(xy 125.226114 116.219799) (xy 125.340691 116.2505) (xy 125.340693 116.2505) (xy 125.459307 116.2505)\r\n\t\t\t\t(xy 125.459309 116.2505) (xy 125.573886 116.219799) (xy 125.573888 116.219797) (xy 125.57389 116.219797)\r\n\t\t\t\t(xy 125.676608 116.160492) (xy 125.676608 116.160491) (xy 125.676613 116.160489) (xy 125.760489 116.076613)\r\n\t\t\t\t(xy 125.770481 116.059307) (xy 125.819797 115.97389) (xy 125.819797 115.973888) (xy 125.819799 115.973886)\r\n\t\t\t\t(xy 125.8505 115.859309) (xy 125.8505 115.740691) (xy 126.5495 115.740691) (xy 126.5495 115.859309)\r\n\t\t\t\t(xy 126.56667 115.923387) (xy 126.580202 115.97389) (xy 126.639507 116.076608) (xy 126.639509 116.07661)\r\n\t\t\t\t(xy 126.639511 116.076613) (xy 126.723387 116.160489) (xy 126.723389 116.16049) (xy 126.723391 116.160492)\r\n\t\t\t\t(xy 126.82611 116.219797) (xy 126.826111 116.219797) (xy 126.826114 116.219799) (xy 126.940691 116.2505)\r\n\t\t\t\t(xy 126.940693 116.2505) (xy 127.059307 116.2505) (xy 127.059309 116.2505) (xy 127.173886 116.219799)\r\n\t\t\t\t(xy 127.173888 116.219797) (xy 127.17389 116.219797) (xy 127.276608 116.160492) (xy 127.276608 116.160491)\r\n\t\t\t\t(xy 127.276613 116.160489) (xy 127.360489 116.076613) (xy 127.370481 116.059307) (xy 127.419797 115.97389)\r\n\t\t\t\t(xy 127.419797 115.973888) (xy 127.419799 115.97' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'3886) (xy 127.4505 115.859309) (xy 127.4505 115.740691)\r\n\t\t\t\t(xy 128.1495 115.740691) (xy 128.1495 115.859309) (xy 128.16667 115.923387) (xy 128.180202 115.97389)\r\n\t\t\t\t(xy 128.239507 116.076608) (xy 128.239509 116.07661) (xy 128.239511 116.076613) (xy 128.323387 116.160489)\r\n\t\t\t\t(xy 128.323389 116.16049) (xy 128.323391 116.160492) (xy 128.42611 116.219797) (xy 128.426111 116.219797)\r\n\t\t\t\t(xy 128.426114 116.219799) (xy 128.540691 116.2505) (xy 128.540693 116.2505) (xy 128.659307 116.2505)\r\n\t\t\t\t(xy 128.659309 116.2505) (xy 128.773886 116.219799) (xy 128.773888 116.219797) (xy 128.77389 116.219797)\r\n\t\t\t\t(xy 128.876608 116.160492) (xy 128.876608 116.160491) (xy 128.876613 116.160489) (xy 128.960489 116.076613)\r\n\t\t\t\t(xy 128.970481 116.059307) (xy 129.019797 115.97389) (xy 129.019797 115.973888) (xy 129.019799 115.973886)\r\n\t\t\t\t(xy 129.0505 115.859309) (xy 129.0505 115.740691) (xy 129.7495 115.740691) (xy 129.7495 115.859309)\r\n\t\t\t\t(xy 129.76667 115.923387) (xy 129.780202 115.97389) (xy 129.839507 116.076608) (xy 129.839509 116.07661)\r\n\t\t\t\t(xy 129.839511 116.076613) (xy 129.923387 116.160489) (xy 129.923389 116.16049) (xy 129.923391 116.160492)\r\n\t\t\t\t(xy 130.02611 116.219797) (xy 130.026111 116.219797) (xy 130.026114 116.219799) (xy 130.140691 116.2505)\r\n\t\t\t\t(xy 130.140693 116.2505) (xy 130.259307 116.2505) (xy 130.259309 116.2505) (xy 130.373886 116.219799)\r\n\t\t\t\t(xy 130.373888 116.219797) (xy 130.37389 116.219797) (xy 130.476608 116.160492) (xy 130.476608 116.160491)\r\n\t\t\t\t(xy 130.476613 116.160489) (xy 130.560489 116.076613) (xy 130.570481 116.059307) (xy 130.619797 115.97389)\r\n\t\t\t\t(xy 130.619797 115.973888) (xy 130.619799 115.973886) (xy 130.6505 115.859309) (xy 130.6505 115.740691)\r\n\t\t\t\t(xy 131.3495 115.740691) (xy 131.3495 115.859309) (xy 131.36667 115.923387) (xy 131.380202 115.97389)\r\n\t\t\t\t(xy 131.439507 116.076608) (xy 131.439509 116.07661) (xy 131.439511 116.076613) (xy 131.523387 116.160489)\r\n\t\t\t\t(xy 131.523389 116.16049) (xy 131.523391 116.160492) (xy 131.62611 116.219797) (xy 131.626111 116.219797)\r\n\t\t\t\t(xy 131.626114 116.219799) (xy 131.740691 116.2505) (xy 131.740693 116.2505) (xy 131.859307 116.2505)\r\n\t\t\t\t(xy 131.859309 116.2505) (xy 131.973886 116.219799) (xy 131.973888 116.219797) (xy 131.97389 116.219797)\r\n\t\t\t\t(xy 132.076608 116.160492) (xy 132.076608 116.160491) (xy 132.076613 116.160489) (xy 132.160489 116.076613)\r\n\t\t\t\t(xy 132.170481 116.059307) (xy 132.219797 115.97389) (xy 132.219797 115.973888) (xy 132.219799 115.973886)\r\n\t\t\t\t(xy 132.2505 115.859309) (xy 132.2505 115.740691) (xy 132.9495 115.740691) (xy 132.9495 115.859309)\r\n\t\t\t\t(xy 132.96667 115.923387) (xy 132.980202 115.97389) (xy 133.039507 116.076608) (xy 133.039509 116.07661)\r\n\t\t\t\t(xy 133.039511 116.076613) (xy 133.123387 116.160489) (xy 133.123389 116.16049) (xy 133.123391 116.160492)\r\n\t\t\t\t(xy 133.22611 116.219797) (xy 133.226111 116.219797) (xy 133.226114 116.219799) (xy 133.340691 116.2505)\r\n\t\t\t\t(xy 133.340693 116.2505) (xy 133.459307 116.2505) (xy 133.459309 116.2505) (xy 133.573886 116.219799)\r\n\t\t\t\t(xy 133.573888 116.219797) (xy 133.57389 116.219797) (xy 133.676608 116.160492) (xy 133.676608 116.160491)\r\n\t\t\t\t(xy 133.676613 116.160489) (xy 133.760489 116.076613) (xy 133.770481 116.059307) (xy 133.819797 115.97389)\r\n\t\t\t\t(xy 133.819797 115.973888) (xy 133.819799 115.973886) (xy 133.8505 115.859309) (xy 133.8505 115.740691)\r\n\t\t\t\t(xy 134.5495 115.740691) (xy 134.5495 115.859309) (xy 134.56667 115.923387) (xy 134.580202 115.97389)\r\n\t\t\t\t(xy 134.639507 116.076608) (xy 134.639509 116.07661) (xy 134.639511 116.076613) (xy 134.723387 116.160489)\r\n\t\t\t\t(xy 134.723389 116.16049) (xy 134.723391 116.160492) (xy 134.82611 116.219797) (xy 134.826111 116.219797)\r\n\t\t\t\t(xy 134.826114 116.219799) (xy 134.940691 116.2505) (xy 134.940693 116.2505) (xy 135.059307 116.2505)\r\n\t\t\t\t(xy 135.059309 116.2505) (xy 135.173886 116.219799) (xy 135.173888 116.219797) (xy 135.17389 116.219797)\r\n\t\t\t\t(xy 135.276608 116.160492) (xy 135.276608 116.160491) (xy 135.276613 116.160489) (xy 135.360489 116.076613)\r\n\t\t\t\t(xy 135.370481 116.059307) (xy 135.419797 115.97389) (xy 135.419797 115.973888) (xy 135.419799 115.973886)\r\n\t\t\t\t(xy 135.4505 115.859309) (xy 135.4505 115.740691) (xy 136.1495 115.740691) (xy 136.1495 115.859309)\r\n\t\t\t\t(xy 136.16667 115.923387) (xy 136.180202 115.97389) (xy 136.239507 116.076608) (xy 136.239509 116.07661)\r\n\t\t\t\t(xy 136.239511 116.076613) (xy 136.323387 116.160489) (xy 136.323389 116.16049) (xy 136.323391 116.160492)\r\n\t\t\t\t(xy 136.42611 116.219797) (xy 136.426111 116.219797) (xy 136.426114 116.219799) (xy 136.540691 116.2505)\r\n\t\t\t\t(xy 136.540693 116.2505) (xy 136.659307 116.2505) (xy 136.659309 116.2505) (xy 136.773886 116.219799)\r\n\t\t\t\t(xy 136.773888 116.219797) (xy 136.77389 116.219797) (xy 136.876608 116.160492) (xy 136.876608 116.160491)\r\n\t\t\t\t(xy 136.876613 116.160489) (xy 136.960489 116.076613) (xy 136.970481 116.059307) (xy 137.019797 115.97389)\r\n\t\t\t\t(xy 137.019797 115.973888) (xy 137.019799 115.973886) (xy 137.0505 115.859309) (xy 137.0505 115.740691)\r\n\t\t\t\t(xy 137.7495 115.740691) (xy 137.7495 115.859309) (xy 137.76667 115.923387) (xy 137.780202 115.97389)\r\n\t\t\t\t(xy 137.839507 116.076608) (xy 137.839509 116.07661) (xy 137.839511 116.076613) (xy 137.923387 116.160489)\r\n\t\t\t\t(xy 137.923389 116.16049) (xy 137.923391 116.160492) (xy 138.02611 116.219797) (xy 138.026111 116.219797)\r\n\t\t\t\t(xy 138.026114 116.219799) (xy 138.140691 116.2505) (xy 138.140693 116.2505) (xy 138.259307 116.2505)\r\n\t\t\t\t(xy 138.259309 116.2505) (xy 138.373886 116.219799) (xy 138.373888 116.219797) (xy 138.37389 116.219797)\r\n\t\t\t\t(xy 138.476608 116.160492) (xy 138.476608 116.160491) (xy 138.476613 116.160489) (xy 138.560489 116.076613)\r\n\t\t\t\t(xy 138.570481 116.059307) (xy 138.619797 115.97389) (xy 138.619797 115.973888) (xy 138.619799 115.973886)\r\n\t\t\t\t(xy 138.6505 115.859309) (xy 138.6505 115.740691) (xy 139.3495 115.740691) (xy 139.3495 115.859309)\r\n\t\t\t\t(xy 139.36667 115.923387) (xy 139.380202 115.97389) (xy 139.439507 116.076608) (xy 139.439509 116.07661)\r\n\t\t\t\t(xy 139.439511 116.076613) (xy 139.523387 116.160489) (xy 139.523389 116.16049) (xy 139.523391 116.160492)\r\n\t\t\t\t(xy 139.62611 116.219797) (xy 139.626111 116.219797) (xy 139.626114 116.219799) (xy 139.740691 116.2505)\r\n\t\t\t\t(xy 139.740693 116.2505) (xy 139.859307 116.2505) (xy 139.859309 116.2505) (xy 139.973886 116.219799)\r\n\t\t\t\t(xy 139.973888 116.219797) (xy 139.97389 116.219797) (xy 140.076608 116.160492) (xy 140.076608 116.160491)\r\n\t\t\t\t(xy 140.076613 116.160489) (xy 140.160489 116.076613) (xy 140.170481 116.059307) (xy 140.219797 115.97389)\r\n\t\t\t\t(xy 140.219797 115.973888) (xy 140.219799 115.973886) (xy 140.2505 115.859309) (xy 140.2505 115.740691)\r\n\t\t\t\t(xy 140.219799 115.626114) (xy 140.219797 115.626111) (xy 140.219797 115.626109) (xy 140.160492 115.523391)\r\n\t\t\t\t(xy 140.16049 115.523389) (xy 140.160489 115.523387) (xy 140.076613 115.439511) (xy 140.07661 115.439509)\r\n\t\t\t\t(xy 140.076608 115.439507) (xy 139.973889 115.380202) (xy 139.97389 115.380202) (xy 139.960351 115.376574)\r\n\t\t\t\t(xy 139.859309 115.3495) (xy 139.740691 115.3495) (xy 139.670567 115.368289) (xy 139.626109 115.380202)\r\n\t\t\t\t(xy 139.523391 115.439507) (xy 139.439507 115.523391) (xy 139.380202 115.626109) (xy 139.380201 115.626114)\r\n\t\t\t\t(xy 139.3495 115.740691) (xy 138.6505 115.740691) (xy 138.619799 115.626114) (xy 138.619797 115.626111)\r\n\t\t\t\t(xy 138.619797 115.626109) (xy 138.560492 115.523391) (xy 138.56049 115.523389) (xy 138.560489 115.523387)\r\n\t\t\t\t(xy 138.476613 115.439511) (xy 138.47661 115.439509) (xy 138.476608 115.439507) (xy 138.373889 115.380202)\r\n\t\t\t\t(xy 138.37389 115.380202) (xy 138.360351 115.376574) (xy 138.259309 115.3495) (xy 138.140691 115.3495)\r\n\t\t\t\t(xy 138.070567 115.368289) (xy 138.026109 115.380202) (xy 137.923391 115.439507) (xy 137.839507 115.523391)\r\n\t\t\t\t(xy 137.780202 115.626109) (xy 137.780201 115.626114) (xy 137.7495 115.740691) (xy 137.0505 115.740691)\r\n\t\t\t\t(xy 137.019799 115.626114) (xy 137.019797 115.626111) (xy 137.019797 115.626109) (xy 136.960492 115.523391)\r\n\t\t\t\t(xy 136.96049 115.523389) (xy 136.960489 115.523387) (xy 136.876613 115.439511) (xy 136.87661 115.439509)\r\n\t\t\t\t(xy 136.876608 115.439507) (xy 136.773889 115.380202) (xy 136.77389 115.380202) (xy 136.76' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'0351 115.376574)\r\n\t\t\t\t(xy 136.659309 115.3495) (xy 136.540691 115.3495) (xy 136.470567 115.368289) (xy 136.426109 115.380202)\r\n\t\t\t\t(xy 136.323391 115.439507) (xy 136.239507 115.523391) (xy 136.180202 115.626109) (xy 136.180201 115.626114)\r\n\t\t\t\t(xy 136.1495 115.740691) (xy 135.4505 115.740691) (xy 135.419799 115.626114) (xy 135.419797 115.626111)\r\n\t\t\t\t(xy 135.419797 115.626109) (xy 135.360492 115.523391) (xy 135.36049 115.523389) (xy 135.360489 115.523387)\r\n\t\t\t\t(xy 135.276613 115.439511) (xy 135.27661 115.439509) (xy 135.276608 115.439507) (xy 135.173889 115.380202)\r\n\t\t\t\t(xy 135.17389 115.380202) (xy 135.160351 115.376574) (xy 135.059309 115.3495) (xy 134.940691 115.3495)\r\n\t\t\t\t(xy 134.870567 115.368289) (xy 134.826109 115.380202) (xy 134.723391 115.439507) (xy 134.639507 115.523391)\r\n\t\t\t\t(xy 134.580202 115.626109) (xy 134.580201 115.626114) (xy 134.5495 115.740691) (xy 133.8505 115.740691)\r\n\t\t\t\t(xy 133.819799 115.626114) (xy 133.819797 115.626111) (xy 133.819797 115.626109) (xy 133.760492 115.523391)\r\n\t\t\t\t(xy 133.76049 115.523389) (xy 133.760489 115.523387) (xy 133.676613 115.439511) (xy 133.67661 115.439509)\r\n\t\t\t\t(xy 133.676608 115.439507) (xy 133.573889 115.380202) (xy 133.57389 115.380202) (xy 133.560351 115.376574)\r\n\t\t\t\t(xy 133.459309 115.3495) (xy 133.340691 115.3495) (xy 133.270567 115.368289) (xy 133.226109 115.380202)\r\n\t\t\t\t(xy 133.123391 115.439507) (xy 133.039507 115.523391) (xy 132.980202 115.626109) (xy 132.980201 115.626114)\r\n\t\t\t\t(xy 132.9495 115.740691) (xy 132.2505 115.740691) (xy 132.219799 115.626114) (xy 132.219797 115.626111)\r\n\t\t\t\t(xy 132.219797 115.626109) (xy 132.160492 115.523391) (xy 132.16049 115.523389) (xy 132.160489 115.523387)\r\n\t\t\t\t(xy 132.076613 115.439511) (xy 132.07661 115.439509) (xy 132.076608 115.439507) (xy 131.973889 115.380202)\r\n\t\t\t\t(xy 131.97389 115.380202) (xy 131.960351 115.376574) (xy 131.859309 115.3495) (xy 131.740691 115.3495)\r\n\t\t\t\t(xy 131.670567 115.368289) (xy 131.626109 115.380202) (xy 131.523391 115.439507) (xy 131.439507 115.523391)\r\n\t\t\t\t(xy 131.380202 115.626109) (xy 131.380201 115.626114) (xy 131.3495 115.740691) (xy 130.6505 115.740691)\r\n\t\t\t\t(xy 130.619799 115.626114) (xy 130.619797 115.626111) (xy 130.619797 115.626109) (xy 130.560492 115.523391)\r\n\t\t\t\t(xy 130.56049 115.523389) (xy 130.560489 115.523387) (xy 130.476613 115.439511) (xy 130.47661 115.439509)\r\n\t\t\t\t(xy 130.476608 115.439507) (xy 130.373889 115.380202) (xy 130.37389 115.380202) (xy 130.360351 115.376574)\r\n\t\t\t\t(xy 130.259309 115.3495) (xy 130.140691 115.3495) (xy 130.070567 115.368289) (xy 130.026109 115.380202)\r\n\t\t\t\t(xy 129.923391 115.439507) (xy 129.839507 115.523391) (xy 129.780202 115.626109) (xy 129.780201 115.626114)\r\n\t\t\t\t(xy 129.7495 115.740691) (xy 129.0505 115.740691) (xy 129.019799 115.626114) (xy 129.019797 115.626111)\r\n\t\t\t\t(xy 129.019797 115.626109) (xy 128.960492 115.523391) (xy 128.96049 115.523389) (xy 128.960489 115.523387)\r\n\t\t\t\t(xy 128.876613 115.439511) (xy 128.87661 115.439509) (xy 128.876608 115.439507) (xy 128.773889 115.380202)\r\n\t\t\t\t(xy 128.77389 115.380202) (xy 128.760351 115.376574) (xy 128.659309 115.3495) (xy 128.540691 115.3495)\r\n\t\t\t\t(xy 128.470567 115.368289) (xy 128.426109 115.380202) (xy 128.323391 115.439507) (xy 128.239507 115.523391)\r\n\t\t\t\t(xy 128.180202 115.626109) (xy 128.180201 115.626114) (xy 128.1495 115.740691) (xy 127.4505 115.740691)\r\n\t\t\t\t(xy 127.419799 115.626114) (xy 127.419797 115.626111) (xy 127.419797 115.626109) (xy 127.360492 115.523391)\r\n\t\t\t\t(xy 127.36049 115.523389) (xy 127.360489 115.523387) (xy 127.276613 115.439511) (xy 127.27661 115.439509)\r\n\t\t\t\t(xy 127.276608 115.439507) (xy 127.173889 115.380202) (xy 127.17389 115.380202) (xy 127.160351 115.376574)\r\n\t\t\t\t(xy 127.059309 115.3495) (xy 126.940691 115.3495) (xy 126.870567 115.368289) (xy 126.826109 115.380202)\r\n\t\t\t\t(xy 126.723391 115.439507) (xy 126.639507 115.523391) (xy 126.580202 115.626109) (xy 126.580201 115.626114)\r\n\t\t\t\t(xy 126.5495 115.740691) (xy 125.8505 115.740691) (xy 125.819799 115.626114) (xy 125.819797 115.626111)\r\n\t\t\t\t(xy 125.819797 115.626109) (xy 125.760492 115.523391) (xy 125.76049 115.523389) (xy 125.760489 115.523387)\r\n\t\t\t\t(xy 125.676613 115.439511) (xy 125.67661 115.439509) (xy 125.676608 115.439507) (xy 125.573889 115.380202)\r\n\t\t\t\t(xy 125.57389 115.380202) (xy 125.560351 115.376574) (xy 125.459309 115.3495) (xy 125.340691 115.3495)\r\n\t\t\t\t(xy 125.270567 115.368289) (xy 125.226109 115.380202) (xy 125.123391 115.439507) (xy 125.039507 115.523391)\r\n\t\t\t\t(xy 124.980202 115.626109) (xy 124.980201 115.626114) (xy 124.9495 115.740691) (xy 124.2505 115.740691)\r\n\t\t\t\t(xy 124.219799 115.626114) (xy 124.219797 115.626111) (xy 124.219797 115.626109) (xy 124.160492 115.523391)\r\n\t\t\t\t(xy 124.16049 115.523389) (xy 124.160489 115.523387) (xy 124.076613 115.439511) (xy 124.07661 115.439509)\r\n\t\t\t\t(xy 124.076608 115.439507) (xy 123.973889 115.380202) (xy 123.97389 115.380202) (xy 123.960351 115.376574)\r\n\t\t\t\t(xy 123.859309 115.3495) (xy 123.740691 115.3495) (xy 123.670567 115.368289) (xy 123.626109 115.380202)\r\n\t\t\t\t(xy 123.523391 115.439507) (xy 123.439507 115.523391) (xy 123.380202 115.626109) (xy 123.380201 115.626114)\r\n\t\t\t\t(xy 123.3495 115.740691) (xy 122.6505 115.740691) (xy 122.619799 115.626114) (xy 122.619797 115.626111)\r\n\t\t\t\t(xy 122.619797 115.626109) (xy 122.560492 115.523391) (xy 122.56049 115.523389) (xy 122.560489 115.523387)\r\n\t\t\t\t(xy 122.476613 115.439511) (xy 122.47661 115.439509) (xy 122.476608 115.439507) (xy 122.373889 115.380202)\r\n\t\t\t\t(xy 122.37389 115.380202) (xy 122.360351 115.376574) (xy 122.259309 115.3495) (xy 122.140691 115.3495)\r\n\t\t\t\t(xy 122.070567 115.368289) (xy 122.026109 115.380202) (xy 121.923391 115.439507) (xy 121.839507 115.523391)\r\n\t\t\t\t(xy 121.780202 115.626109) (xy 121.780201 115.626114) (xy 121.7495 115.740691) (xy 121.0505 115.740691)\r\n\t\t\t\t(xy 121.019799 115.626114) (xy 121.019797 115.626111) (xy 121.019797 115.626109) (xy 120.960492 115.523391)\r\n\t\t\t\t(xy 120.96049 115.523389) (xy 120.960489 115.523387) (xy 120.876613 115.439511) (xy 120.87661 115.439509)\r\n\t\t\t\t(xy 120.876608 115.439507) (xy 120.773889 115.380202) (xy 120.77389 115.380202) (xy 120.760351 115.376574)\r\n\t\t\t\t(xy 120.659309 115.3495) (xy 120.540691 115.3495) (xy 120.470567 115.368289) (xy 120.426109 115.380202)\r\n\t\t\t\t(xy 120.323391 115.439507) (xy 120.239507 115.523391) (xy 120.180202 115.626109) (xy 120.180201 115.626114)\r\n\t\t\t\t(xy 120.1495 115.740691) (xy 119.4505 115.740691) (xy 119.419799 115.626114) (xy 119.419797 115.626111)\r\n\t\t\t\t(xy 119.419797 115.626109) (xy 119.360492 115.523391) (xy 119.36049 115.523389) (xy 119.360489 115.523387)\r\n\t\t\t\t(xy 119.276613 115.439511) (xy 119.27661 115.439509) (xy 119.276608 115.439507) (xy 119.173889 115.380202)\r\n\t\t\t\t(xy 119.17389 115.380202) (xy 119.160351 115.376574) (xy 119.059309 115.3495) (xy 118.940691 115.3495)\r\n\t\t\t\t(xy 118.870567 115.368289) (xy 118.826109 115.380202) (xy 118.723391 115.439507) (xy 118.639507 115.523391)\r\n\t\t\t\t(xy 118.580202 115.626109) (xy 118.580201 115.626114) (xy 118.5495 115.740691) (xy 117.8505 115.740691)\r\n\t\t\t\t(xy 117.819799 115.626114) (xy 117.819797 115.626111) (xy 117.819797 115.626109) (xy 117.760492 115.523391)\r\n\t\t\t\t(xy 117.76049 115.523389) (xy 117.760489 115.523387) (xy 117.676613 115.439511) (xy 117.67661 115.439509)\r\n\t\t\t\t(xy 117.676608 115.439507) (xy 117.573889 115.380202) (xy 117.57389 115.380202) (xy 117.560351 115.376574)\r\n\t\t\t\t(xy 117.459309 115.3495) (xy 117.340691 115.3495) (xy 117.270567 115.368289) (xy 117.226109 115.380202)\r\n\t\t\t\t(xy 117.123391 115.439507) (xy 117.039507 115.523391) (xy 116.980202 115.626109) (xy 116.980201 115.626114)\r\n\t\t\t\t(xy 116.9495 115.740691) (xy 116.2505 115.740691) (xy 116.219799 115.626114) (xy 116.219797 115.626111)\r\n\t\t\t\t(xy 116.219797 115.626109) (xy 116.160492 115.523391) (xy 116.16049 115.523389) (xy 116.160489 115.523387)\r\n\t\t\t\t(xy 116.076613 115.439511) (xy 116.07661 115.439509) (xy 116.076608 115.439507) (xy 115.973889 115.380202)\r\n\t\t\t\t(xy 115.97389 115.380202) (xy 115.960351 115.376574) (xy 115.859309 115.3495) (xy 115.740691 115.3495)\r\n\t\t\t\t(xy 115.670567 115.368289) (xy 115.626109 115.380202) (xy 115.523391 115.439507) (xy 115.439507 115.523391)\r\n\t\t\t\t(xy 115.380202 115.626109) (xy 115.380201 115.626114) (xy 115.3495 1' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'15.740691) (xy 114.6505 115.740691)\r\n\t\t\t\t(xy 114.619799 115.626114) (xy 114.619797 115.626111) (xy 114.619797 115.626109) (xy 114.560492 115.523391)\r\n\t\t\t\t(xy 114.56049 115.523389) (xy 114.560489 115.523387) (xy 114.476613 115.439511) (xy 114.47661 115.439509)\r\n\t\t\t\t(xy 114.476608 115.439507) (xy 114.373889 115.380202) (xy 114.37389 115.380202) (xy 114.360351 115.376574)\r\n\t\t\t\t(xy 114.259309 115.3495) (xy 114.140691 115.3495) (xy 114.070567 115.368289) (xy 114.026109 115.380202)\r\n\t\t\t\t(xy 113.923391 115.439507) (xy 113.839507 115.523391) (xy 113.780202 115.626109) (xy 113.780201 115.626114)\r\n\t\t\t\t(xy 113.7495 115.740691) (xy 113.0505 115.740691) (xy 113.019799 115.626114) (xy 113.019797 115.626111)\r\n\t\t\t\t(xy 113.019797 115.626109) (xy 112.960492 115.523391) (xy 112.96049 115.523389) (xy 112.960489 115.523387)\r\n\t\t\t\t(xy 112.876613 115.439511) (xy 112.87661 115.439509) (xy 112.876608 115.439507) (xy 112.773889 115.380202)\r\n\t\t\t\t(xy 112.77389 115.380202) (xy 112.760351 115.376574) (xy 112.659309 115.3495) (xy 112.540691 115.3495)\r\n\t\t\t\t(xy 112.470567 115.368289) (xy 112.426109 115.380202) (xy 112.323391 115.439507) (xy 112.239507 115.523391)\r\n\t\t\t\t(xy 112.180202 115.626109) (xy 112.180201 115.626114) (xy 112.1495 115.740691) (xy 111.4505 115.740691)\r\n\t\t\t\t(xy 111.419799 115.626114) (xy 111.419797 115.626111) (xy 111.419797 115.626109) (xy 111.360492 115.523391)\r\n\t\t\t\t(xy 111.36049 115.523389) (xy 111.360489 115.523387) (xy 111.276613 115.439511) (xy 111.27661 115.439509)\r\n\t\t\t\t(xy 111.276608 115.439507) (xy 111.173889 115.380202) (xy 111.17389 115.380202) (xy 111.160351 115.376574)\r\n\t\t\t\t(xy 111.059309 115.3495) (xy 110.940691 115.3495) (xy 110.870567 115.368289) (xy 110.826109 115.380202)\r\n\t\t\t\t(xy 110.723391 115.439507) (xy 110.639507 115.523391) (xy 110.580202 115.626109) (xy 110.580201 115.626114)\r\n\t\t\t\t(xy 110.5495 115.740691) (xy 109.8505 115.740691) (xy 109.819799 115.626114) (xy 109.819797 115.626111)\r\n\t\t\t\t(xy 109.819797 115.626109) (xy 109.760492 115.523391) (xy 109.76049 115.523389) (xy 109.760489 115.523387)\r\n\t\t\t\t(xy 109.676613 115.439511) (xy 109.67661 115.439509) (xy 109.676608 115.439507) (xy 109.573889 115.380202)\r\n\t\t\t\t(xy 109.57389 115.380202) (xy 109.560351 115.376574) (xy 109.459309 115.3495) (xy 109.340691 115.3495)\r\n\t\t\t\t(xy 109.270567 115.368289) (xy 109.226109 115.380202) (xy 109.123391 115.439507) (xy 109.039507 115.523391)\r\n\t\t\t\t(xy 108.980202 115.626109) (xy 108.980201 115.626114) (xy 108.9495 115.740691) (xy 108.2505 115.740691)\r\n\t\t\t\t(xy 108.219799 115.626114) (xy 108.219797 115.626111) (xy 108.219797 115.626109) (xy 108.160492 115.523391)\r\n\t\t\t\t(xy 108.16049 115.523389) (xy 108.160489 115.523387) (xy 108.076613 115.439511) (xy 108.07661 115.439509)\r\n\t\t\t\t(xy 108.076608 115.439507) (xy 107.973889 115.380202) (xy 107.97389 115.380202) (xy 107.960351 115.376574)\r\n\t\t\t\t(xy 107.859309 115.3495) (xy 107.740691 115.3495) (xy 107.670567 115.368289) (xy 107.626109 115.380202)\r\n\t\t\t\t(xy 107.523391 115.439507) (xy 107.439507 115.523391) (xy 107.380202 115.626109) (xy 107.380201 115.626114)\r\n\t\t\t\t(xy 107.3495 115.740691) (xy 106.6505 115.740691) (xy 106.619799 115.626114) (xy 106.619797 115.626111)\r\n\t\t\t\t(xy 106.619797 115.626109) (xy 106.560492 115.523391) (xy 106.56049 115.523389) (xy 106.560489 115.523387)\r\n\t\t\t\t(xy 106.476613 115.439511) (xy 106.47661 115.439509) (xy 106.476608 115.439507) (xy 106.373889 115.380202)\r\n\t\t\t\t(xy 106.37389 115.380202) (xy 106.360351 115.376574) (xy 106.259309 115.3495) (xy 106.140691 115.3495)\r\n\t\t\t\t(xy 106.070567 115.368289) (xy 106.026109 115.380202) (xy 105.923391 115.439507) (xy 105.839507 115.523391)\r\n\t\t\t\t(xy 105.780202 115.626109) (xy 105.780201 115.626114) (xy 105.7495 115.740691) (xy 105.0505 115.740691)\r\n\t\t\t\t(xy 105.019799 115.626114) (xy 105.019797 115.626111) (xy 105.019797 115.626109) (xy 104.960492 115.523391)\r\n\t\t\t\t(xy 104.96049 115.523389) (xy 104.960489 115.523387) (xy 104.876613 115.439511) (xy 104.87661 115.439509)\r\n\t\t\t\t(xy 104.876608 115.439507) (xy 104.773889 115.380202) (xy 104.77389 115.380202) (xy 104.760351 115.376574)\r\n\t\t\t\t(xy 104.659309 115.3495) (xy 104.540691 115.3495) (xy 104.470567 115.368289) (xy 104.426109 115.380202)\r\n\t\t\t\t(xy 104.323391 115.439507) (xy 104.239507 115.523391) (xy 104.180202 115.626109) (xy 104.180201 115.626114)\r\n\t\t\t\t(xy 104.1495 115.740691) (xy 101.428694 115.740691) (xy 101.4505 115.659309) (xy 101.4505 115.540691)\r\n\t\t\t\t(xy 101.419799 115.426114) (xy 101.419797 115.426111) (xy 101.419797 115.426109) (xy 101.360492 115.323391)\r\n\t\t\t\t(xy 101.36049 115.323389) (xy 101.360489 115.323387) (xy 101.276613 115.239511) (xy 101.27661 115.239509)\r\n\t\t\t\t(xy 101.276608 115.239507) (xy 101.173889 115.180202) (xy 101.17389 115.180202) (xy 101.150318 115.173886)\r\n\t\t\t\t(xy 101.059309 115.1495) (xy 100.940691 115.1495) (xy 100.899669 115.160492) (xy 100.826109 115.180202)\r\n\t\t\t\t(xy 100.723391 115.239507) (xy 100.639507 115.323391) (xy 100.580202 115.426109) (xy 100.576612 115.439507)\r\n\t\t\t\t(xy 100.5495 115.540691) (xy 100.5495 115.659309) (xy 100.5506 115.663417) (xy 100.547399 115.724517)\r\n\t\t\t\t(xy 100.508893 115.772067) (xy 100.449793 115.787903) (xy 100.392671 115.765977) (xy 100.369238 115.73854)\r\n\t\t\t\t(xy 100.36049 115.723389) (xy 100.360489 115.723387) (xy 100.276613 115.639511) (xy 100.27661 115.639509)\r\n\t\t\t\t(xy 100.276608 115.639507) (xy 100.173889 115.580202) (xy 100.17389 115.580202) (xy 100.160351 115.576574)\r\n\t\t\t\t(xy 100.059309 115.5495) (xy 99.940691 115.5495) (xy 99.870567 115.568289) (xy 99.826109 115.580202)\r\n\t\t\t\t(xy 99.723391 115.639507) (xy 99.639507 115.723391) (xy 99.580202 115.826109) (xy 99.566971 115.875488)\r\n\t\t\t\t(xy 99.5495 115.940691) (xy 92.4505 115.940691) (xy 92.419799 115.826114) (xy 92.419797 115.826111)\r\n\t\t\t\t(xy 92.419797 115.826109) (xy 92.360492 115.723391) (xy 92.36049 115.723389) (xy 92.360489 115.723387)\r\n\t\t\t\t(xy 92.276613 115.639511) (xy 92.27661 115.639509) (xy 92.276608 115.639507) (xy 92.173889 115.580202)\r\n\t\t\t\t(xy 92.17389 115.580202) (xy 92.160351 115.576574) (xy 92.059309 115.5495) (xy 91.940691 115.5495)\r\n\t\t\t\t(xy 91.870567 115.568289) (xy 91.826109 115.580202) (xy 91.723391 115.639507) (xy 91.639507 115.723391)\r\n\t\t\t\t(xy 91.580202 115.826109) (xy 91.566971 115.875488) (xy 91.5495 115.940691) (xy 88.4505 115.940691)\r\n\t\t\t\t(xy 88.419799 115.826114) (xy 88.419797 115.826111) (xy 88.419797 115.826109) (xy 88.360492 115.723391)\r\n\t\t\t\t(xy 88.36049 115.723389) (xy 88.360489 115.723387) (xy 88.276613 115.639511) (xy 88.27661 115.639509)\r\n\t\t\t\t(xy 88.276608 115.639507) (xy 88.173889 115.580202) (xy 88.17389 115.580202) (xy 88.160351 115.576574)\r\n\t\t\t\t(xy 88.059309 115.5495) (xy 87.940691 115.5495) (xy 87.870567 115.568289) (xy 87.826109 115.580202)\r\n\t\t\t\t(xy 87.723391 115.639507) (xy 87.639507 115.723391) (xy 87.580202 115.826109) (xy 87.566971 115.875488)\r\n\t\t\t\t(xy 87.5495 115.940691) (xy 84.4505 115.940691) (xy 84.419799 115.826114) (xy 84.419797 115.826111)\r\n\t\t\t\t(xy 84.419797 115.826109) (xy 84.360492 115.723391) (xy 84.36049 115.723389) (xy 84.360489 115.723387)\r\n\t\t\t\t(xy 84.276613 115.639511) (xy 84.27661 115.639509) (xy 84.276608 115.639507) (xy 84.173889 115.580202)\r\n\t\t\t\t(xy 84.17389 115.580202) (xy 84.160351 115.576574) (xy 84.059309 115.5495) (xy 83.940691 115.5495)\r\n\t\t\t\t(xy 83.870567 115.568289) (xy 83.826109 115.580202) (xy 83.723391 115.639507) (xy 83.639507 115.723391)\r\n\t\t\t\t(xy 83.580202 115.826109) (xy 83.566971 115.875488) (xy 83.5495 115.940691) (xy 80.4505 115.940691)\r\n\t\t\t\t(xy 80.419799 115.826114) (xy 80.419797 115.826111) (xy 80.419797 115.826109) (xy 80.360492 115.723391)\r\n\t\t\t\t(xy 80.36049 115.723389) (xy 80.360489 115.723387) (xy 80.276613 115.639511) (xy 80.27661 115.639509)\r\n\t\t\t\t(xy 80.276608 115.639507) (xy 80.173889 115.580202) (xy 80.17389 115.580202) (xy 80.160351 115.576574)\r\n\t\t\t\t(xy 80.059309 115.5495) (xy 79.940691 115.5495) (xy 79.870567 115.568289) (xy 79.826109 115.580202)\r\n\t\t\t\t(xy 79.723391 115.639507) (xy 79.639507 115.723391) (xy 79.580202 115.826109) (xy 79.566971 115.875488)\r\n\t\t\t\t(xy 79.5495 115.940691) (xy 76.4505 115.940691) (xy 76.419799 115.826114) (xy 76.419797 115.826111)\r\n\t\t\t\t(xy 76.419797 115.826109) (xy 76.360492 115.723391) (xy 76.36049 115.723389) (xy 76.360489 115.723387)\r\n\t\t\t\t(xy 76.276613 115.639511) (xy 76.27661 11' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'5.639509) (xy 76.276608 115.639507) (xy 76.173889 115.580202)\r\n\t\t\t\t(xy 76.17389 115.580202) (xy 76.160351 115.576574) (xy 76.059309 115.5495) (xy 75.940691 115.5495)\r\n\t\t\t\t(xy 75.870567 115.568289) (xy 75.826109 115.580202) (xy 75.723391 115.639507) (xy 75.639507 115.723391)\r\n\t\t\t\t(xy 75.580202 115.826109) (xy 75.566971 115.875488) (xy 75.5495 115.940691) (xy 74.0005 115.940691)\r\n\t\t\t\t(xy 74.0005 114.740691) (xy 101.3495 114.740691) (xy 101.3495 114.859309) (xy 101.371306 114.940691)\r\n\t\t\t\t(xy 101.380202 114.97389) (xy 101.439507 115.076608) (xy 101.439509 115.07661) (xy 101.439511 115.076613)\r\n\t\t\t\t(xy 101.523387 115.160489) (xy 101.523389 115.16049) (xy 101.523391 115.160492) (xy 101.62611 115.219797)\r\n\t\t\t\t(xy 101.626111 115.219797) (xy 101.626114 115.219799) (xy 101.740691 115.2505) (xy 101.740693 115.2505)\r\n\t\t\t\t(xy 101.859307 115.2505) (xy 101.859309 115.2505) (xy 101.973886 115.219799) (xy 101.973888 115.219797)\r\n\t\t\t\t(xy 101.97389 115.219797) (xy 102.076608 115.160492) (xy 102.076608 115.160491) (xy 102.076613 115.160489)\r\n\t\t\t\t(xy 102.160489 115.076613) (xy 102.219799 114.973886) (xy 102.228694 114.940691) (xy 140.3495 114.940691)\r\n\t\t\t\t(xy 140.3495 115.059309) (xy 140.354137 115.076613) (xy 140.380202 115.17389) (xy 140.439507 115.276608)\r\n\t\t\t\t(xy 140.439509 115.27661) (xy 140.439511 115.276613) (xy 140.523387 115.360489) (xy 140.523389 115.36049)\r\n\t\t\t\t(xy 140.523391 115.360492) (xy 140.62611 115.419797) (xy 140.626111 115.419797) (xy 140.626114 115.419799)\r\n\t\t\t\t(xy 140.740691 115.4505) (xy 140.740693 115.4505) (xy 140.859307 115.4505) (xy 140.859309 115.4505)\r\n\t\t\t\t(xy 140.973886 115.419799) (xy 140.973888 115.419797) (xy 140.97389 115.419797) (xy 141.076608 115.360492)\r\n\t\t\t\t(xy 141.076608 115.360491) (xy 141.076613 115.360489) (xy 141.160489 115.276613) (xy 141.160492 115.276608)\r\n\t\t\t\t(xy 141.219797 115.17389) (xy 141.219797 115.173888) (xy 141.219799 115.173886) (xy 141.2505 115.059309)\r\n\t\t\t\t(xy 141.2505 114.940691) (xy 141.219799 114.826114) (xy 141.19723 114.787025) (xy 141.184509 114.727178)\r\n\t\t\t\t(xy 141.209395 114.671282) (xy 141.262382 114.640689) (xy 141.308587 114.641897) (xy 141.340691 114.6505)\r\n\t\t\t\t(xy 141.340693 114.6505) (xy 141.459307 114.6505) (xy 141.459309 114.6505) (xy 141.573886 114.619799)\r\n\t\t\t\t(xy 141.573888 114.619797) (xy 141.57389 114.619797) (xy 141.676608 114.560492) (xy 141.676608 114.560491)\r\n\t\t\t\t(xy 141.676613 114.560489) (xy 141.760489 114.476613) (xy 141.78191 114.439511) (xy 141.819797 114.37389)\r\n\t\t\t\t(xy 141.819797 114.373888) (xy 141.819799 114.373886) (xy 141.8505 114.259309) (xy 141.8505 114.140691)\r\n\t\t\t\t(xy 142.7495 114.140691) (xy 142.7495 114.259309) (xy 142.773667 114.3495) (xy 142.780202 114.37389)\r\n\t\t\t\t(xy 142.839507 114.476608) (xy 142.839509 114.47661) (xy 142.839511 114.476613) (xy 142.923387 114.560489)\r\n\t\t\t\t(xy 142.923389 114.56049) (xy 142.923391 114.560492) (xy 143.02611 114.619797) (xy 143.026111 114.619797)\r\n\t\t\t\t(xy 143.026114 114.619799) (xy 143.140691 114.6505) (xy 143.140693 114.6505) (xy 143.259307 114.6505)\r\n\t\t\t\t(xy 143.259309 114.6505) (xy 143.373886 114.619799) (xy 143.373888 114.619797) (xy 143.37389 114.619797)\r\n\t\t\t\t(xy 143.476608 114.560492) (xy 143.476608 114.560491) (xy 143.476613 114.560489) (xy 143.560489 114.476613)\r\n\t\t\t\t(xy 143.58191 114.439511) (xy 143.619797 114.37389) (xy 143.619797 114.373888) (xy 143.619799 114.373886)\r\n\t\t\t\t(xy 143.6505 114.259309) (xy 143.6505 114.140691) (xy 144.3495 114.140691) (xy 144.3495 114.259309)\r\n\t\t\t\t(xy 144.373667 114.3495) (xy 144.380202 114.37389) (xy 144.439507 114.476608) (xy 144.439509 114.47661)\r\n\t\t\t\t(xy 144.439511 114.476613) (xy 144.523387 114.560489) (xy 144.523389 114.56049) (xy 144.523391 114.560492)\r\n\t\t\t\t(xy 144.62611 114.619797) (xy 144.626111 114.619797) (xy 144.626114 114.619799) (xy 144.740691 114.6505)\r\n\t\t\t\t(xy 144.740693 114.6505) (xy 144.859307 114.6505) (xy 144.859309 114.6505) (xy 144.973886 114.619799)\r\n\t\t\t\t(xy 144.973888 114.619797) (xy 144.97389 114.619797) (xy 145.076608 114.560492) (xy 145.076608 114.560491)\r\n\t\t\t\t(xy 145.076613 114.560489) (xy 145.160489 114.476613) (xy 145.18191 114.439511) (xy 145.219797 114.37389)\r\n\t\t\t\t(xy 145.219797 114.373888) (xy 145.219799 114.373886) (xy 145.2505 114.259309) (xy 145.2505 114.140691)\r\n\t\t\t\t(xy 145.790069 114.140691) (xy 145.790069 114.259309) (xy 145.814236 114.3495) (xy 145.820771 114.37389)\r\n\t\t\t\t(xy 145.880076 114.476608) (xy 145.880078 114.47661) (xy 145.88008 114.476613) (xy 145.963956 114.560489)\r\n\t\t\t\t(xy 145.963958 114.56049) (xy 145.96396 114.560492) (xy 146.066679 114.619797) (xy 146.06668 114.619797)\r\n\t\t\t\t(xy 146.066683 114.619799) (xy 146.18126 114.6505) (xy 146.181262 114.6505) (xy 146.299876 114.6505)\r\n\t\t\t\t(xy 146.299878 114.6505) (xy 146.414455 114.619799) (xy 146.414457 114.619797) (xy 146.414459 114.619797)\r\n\t\t\t\t(xy 146.517177 114.560492) (xy 146.517177 114.560491) (xy 146.517182 114.560489) (xy 146.601058 114.476613)\r\n\t\t\t\t(xy 146.622479 114.439511) (xy 146.660366 114.37389) (xy 146.660366 114.373888) (xy 146.660368 114.373886)\r\n\t\t\t\t(xy 146.691069 114.259309) (xy 146.691069 114.140691) (xy 147.3495 114.140691) (xy 147.3495 114.259309)\r\n\t\t\t\t(xy 147.373667 114.3495) (xy 147.380202 114.37389) (xy 147.439507 114.476608) (xy 147.439509 114.47661)\r\n\t\t\t\t(xy 147.439511 114.476613) (xy 147.523387 114.560489) (xy 147.523389 114.56049) (xy 147.523391 114.560492)\r\n\t\t\t\t(xy 147.62611 114.619797) (xy 147.626111 114.619797) (xy 147.626114 114.619799) (xy 147.740691 114.6505)\r\n\t\t\t\t(xy 147.740693 114.6505) (xy 147.859307 114.6505) (xy 147.859309 114.6505) (xy 147.973886 114.619799)\r\n\t\t\t\t(xy 147.973888 114.619797) (xy 147.97389 114.619797) (xy 148.076608 114.560492) (xy 148.076608 114.560491)\r\n\t\t\t\t(xy 148.076613 114.560489) (xy 148.160489 114.476613) (xy 148.18191 114.439511) (xy 148.219797 114.37389)\r\n\t\t\t\t(xy 148.219797 114.373888) (xy 148.219799 114.373886) (xy 148.2505 114.259309) (xy 148.2505 114.140691)\r\n\t\t\t\t(xy 148.219799 114.026114) (xy 148.219797 114.026111) (xy 148.219797 114.026109) (xy 148.160492 113.923391)\r\n\t\t\t\t(xy 148.16049 113.923389) (xy 148.160489 113.923387) (xy 148.076613 113.839511) (xy 148.07661 113.839509)\r\n\t\t\t\t(xy 148.076608 113.839507) (xy 147.973889 113.780202) (xy 147.97389 113.780202) (xy 147.950318 113.773886)\r\n\t\t\t\t(xy 147.859309 113.7495) (xy 147.740691 113.7495) (xy 147.670567 113.768289) (xy 147.626109 113.780202)\r\n\t\t\t\t(xy 147.523391 113.839507) (xy 147.439507 113.923391) (xy 147.380202 114.026109) (xy 147.373667 114.0505)\r\n\t\t\t\t(xy 147.3495 114.140691) (xy 146.691069 114.140691) (xy 146.660368 114.026114) (xy 146.660366 114.026111)\r\n\t\t\t\t(xy 146.660366 114.026109) (xy 146.601061 113.923391) (xy 146.601059 113.923389) (xy 146.601058 113.923387)\r\n\t\t\t\t(xy 146.517182 113.839511) (xy 146.517179 113.839509) (xy 146.517177 113.839507) (xy 146.414458 113.780202)\r\n\t\t\t\t(xy 146.414459 113.780202) (xy 146.390887 113.773886) (xy 146.299878 113.7495) (xy 146.18126 113.7495)\r\n\t\t\t\t(xy 146.111136 113.768289) (xy 146.066678 113.780202) (xy 145.96396 113.839507) (xy 145.880076 113.923391)\r\n\t\t\t\t(xy 145.820771 114.026109) (xy 145.814236 114.0505) (xy 145.790069 114.140691) (xy 145.2505 114.140691)\r\n\t\t\t\t(xy 145.219799 114.026114) (xy 145.219797 114.026111) (xy 145.219797 114.026109) (xy 145.160492 113.923391)\r\n\t\t\t\t(xy 145.16049 113.923389) (xy 145.160489 113.923387) (xy 145.076613 113.839511) (xy 145.07661 113.839509)\r\n\t\t\t\t(xy 145.076608 113.839507) (xy 144.973889 113.780202) (xy 144.97389 113.780202) (xy 144.950318 113.773886)\r\n\t\t\t\t(xy 144.859309 113.7495) (xy 144.740691 113.7495) (xy 144.670567 113.768289) (xy 144.626109 113.780202)\r\n\t\t\t\t(xy 144.523391 113.839507) (xy 144.439507 113.923391) (xy 144.380202 114.026109) (xy 144.373667 114.0505)\r\n\t\t\t\t(xy 144.3495 114.140691) (xy 143.6505 114.140691) (xy 143.619799 114.026114) (xy 143.619797 114.026111)\r\n\t\t\t\t(xy 143.619797 114.026109) (xy 143.560492 113.923391) (xy 143.56049 113.923389) (xy 143.560489 113.923387)\r\n\t\t\t\t(xy 143.476613 113.839511) (xy 143.47661 113.839509) (xy 143.476608 113.839507) (xy 143.373889 113.780202)\r\n\t\t\t\t(xy 143.37389 113.780202) (xy 143.350318 113.773886) (xy 143.259309 113.7495) (xy 143.140691 113.7495)\r\n\t\t\t\t(xy 143.070567 113.768289) (xy 143.026109 113.780202) (xy 142.923391 113.839507) (xy 142.' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'839507 113.923391)\r\n\t\t\t\t(xy 142.780202 114.026109) (xy 142.773667 114.0505) (xy 142.7495 114.140691) (xy 141.8505 114.140691)\r\n\t\t\t\t(xy 141.819799 114.026114) (xy 141.819797 114.026111) (xy 141.819797 114.026109) (xy 141.760492 113.923391)\r\n\t\t\t\t(xy 141.76049 113.923389) (xy 141.760489 113.923387) (xy 141.676613 113.839511) (xy 141.67661 113.839509)\r\n\t\t\t\t(xy 141.676608 113.839507) (xy 141.573889 113.780202) (xy 141.57389 113.780202) (xy 141.550318 113.773886)\r\n\t\t\t\t(xy 141.459309 113.7495) (xy 141.340691 113.7495) (xy 141.270567 113.768289) (xy 141.226109 113.780202)\r\n\t\t\t\t(xy 141.123391 113.839507) (xy 141.039507 113.923391) (xy 140.980202 114.026109) (xy 140.973667 114.0505)\r\n\t\t\t\t(xy 140.9495 114.140691) (xy 140.9495 114.259309) (xy 140.973667 114.3495) (xy 140.980202 114.373888)\r\n\t\t\t\t(xy 141.002768 114.412973) (xy 141.01549 114.472822) (xy 140.990604 114.528717) (xy 140.937616 114.55931)\r\n\t\t\t\t(xy 140.89141 114.558101) (xy 140.859309 114.5495) (xy 140.740691 114.5495) (xy 140.699669 114.560492)\r\n\t\t\t\t(xy 140.626109 114.580202) (xy 140.523391 114.639507) (xy 140.439507 114.723391) (xy 140.380202 114.826109)\r\n\t\t\t\t(xy 140.380201 114.826114) (xy 140.3495 114.940691) (xy 102.228694 114.940691) (xy 102.2505 114.859309)\r\n\t\t\t\t(xy 102.2505 114.740691) (xy 102.219799 114.626114) (xy 102.219797 114.626111) (xy 102.219797 114.626109)\r\n\t\t\t\t(xy 102.160492 114.523391) (xy 102.16049 114.523389) (xy 102.160489 114.523387) (xy 102.076613 114.439511)\r\n\t\t\t\t(xy 102.07661 114.439509) (xy 102.076608 114.439507) (xy 101.973889 114.380202) (xy 101.97389 114.380202)\r\n\t\t\t\t(xy 101.950318 114.373886) (xy 101.859309 114.3495) (xy 101.740691 114.3495) (xy 101.670567 114.368289)\r\n\t\t\t\t(xy 101.626109 114.380202) (xy 101.523391 114.439507) (xy 101.439507 114.523391) (xy 101.380202 114.626109)\r\n\t\t\t\t(xy 101.373667 114.6505) (xy 101.3495 114.740691) (xy 74.0005 114.740691) (xy 74.0005 113.740691)\r\n\t\t\t\t(xy 89.8495 113.740691) (xy 89.8495 113.859309) (xy 89.854137 113.876613) (xy 89.880202 113.97389)\r\n\t\t\t\t(xy 89.939507 114.076608) (xy 89.939509 114.07661) (xy 89.939511 114.076613) (xy 90.023387 114.160489)\r\n\t\t\t\t(xy 90.023389 114.16049) (xy 90.023391 114.160492) (xy 90.12611 114.219797) (xy 90.126111 114.219797)\r\n\t\t\t\t(xy 90.126114 114.219799) (xy 90.240691 114.2505) (xy 90.240693 114.2505) (xy 90.359307 114.2505)\r\n\t\t\t\t(xy 90.359309 114.2505) (xy 90.473886 114.219799) (xy 90.473888 114.219797) (xy 90.47389 114.219797)\r\n\t\t\t\t(xy 90.576608 114.160492) (xy 90.576608 114.160491) (xy 90.576613 114.160489) (xy 90.596411 114.140691)\r\n\t\t\t\t(xy 102.5495 114.140691) (xy 102.5495 114.259309) (xy 102.573667 114.3495) (xy 102.580202 114.37389)\r\n\t\t\t\t(xy 102.639507 114.476608) (xy 102.639509 114.47661) (xy 102.639511 114.476613) (xy 102.723387 114.560489)\r\n\t\t\t\t(xy 102.723389 114.56049) (xy 102.723391 114.560492) (xy 102.82611 114.619797) (xy 102.826111 114.619797)\r\n\t\t\t\t(xy 102.826114 114.619799) (xy 102.940691 114.6505) (xy 102.940693 114.6505) (xy 103.059307 114.6505)\r\n\t\t\t\t(xy 103.059309 114.6505) (xy 103.173886 114.619799) (xy 103.173888 114.619797) (xy 103.17389 114.619797)\r\n\t\t\t\t(xy 103.276608 114.560492) (xy 103.276608 114.560491) (xy 103.276613 114.560489) (xy 103.360489 114.476613)\r\n\t\t\t\t(xy 103.38191 114.439511) (xy 103.419797 114.37389) (xy 103.419797 114.373888) (xy 103.419799 114.373886)\r\n\t\t\t\t(xy 103.4505 114.259309) (xy 103.4505 114.140691) (xy 104.1495 114.140691) (xy 104.1495 114.259309)\r\n\t\t\t\t(xy 104.173667 114.3495) (xy 104.180202 114.37389) (xy 104.239507 114.476608) (xy 104.239509 114.47661)\r\n\t\t\t\t(xy 104.239511 114.476613) (xy 104.323387 114.560489) (xy 104.323389 114.56049) (xy 104.323391 114.560492)\r\n\t\t\t\t(xy 104.42611 114.619797) (xy 104.426111 114.619797) (xy 104.426114 114.619799) (xy 104.540691 114.6505)\r\n\t\t\t\t(xy 104.540693 114.6505) (xy 104.659307 114.6505) (xy 104.659309 114.6505) (xy 104.773886 114.619799)\r\n\t\t\t\t(xy 104.773888 114.619797) (xy 104.77389 114.619797) (xy 104.876608 114.560492) (xy 104.876608 114.560491)\r\n\t\t\t\t(xy 104.876613 114.560489) (xy 104.960489 114.476613) (xy 104.98191 114.439511) (xy 105.019797 114.37389)\r\n\t\t\t\t(xy 105.019797 114.373888) (xy 105.019799 114.373886) (xy 105.0505 114.259309) (xy 105.0505 114.140691)\r\n\t\t\t\t(xy 105.7495 114.140691) (xy 105.7495 114.259309) (xy 105.773667 114.3495) (xy 105.780202 114.37389)\r\n\t\t\t\t(xy 105.839507 114.476608) (xy 105.839509 114.47661) (xy 105.839511 114.476613) (xy 105.923387 114.560489)\r\n\t\t\t\t(xy 105.923389 114.56049) (xy 105.923391 114.560492) (xy 106.02611 114.619797) (xy 106.026111 114.619797)\r\n\t\t\t\t(xy 106.026114 114.619799) (xy 106.140691 114.6505) (xy 106.140693 114.6505) (xy 106.259307 114.6505)\r\n\t\t\t\t(xy 106.259309 114.6505) (xy 106.373886 114.619799) (xy 106.373888 114.619797) (xy 106.37389 114.619797)\r\n\t\t\t\t(xy 106.476608 114.560492) (xy 106.476608 114.560491) (xy 106.476613 114.560489) (xy 106.560489 114.476613)\r\n\t\t\t\t(xy 106.58191 114.439511) (xy 106.619797 114.37389) (xy 106.619797 114.373888) (xy 106.619799 114.373886)\r\n\t\t\t\t(xy 106.6505 114.259309) (xy 106.6505 114.140691) (xy 107.3495 114.140691) (xy 107.3495 114.259309)\r\n\t\t\t\t(xy 107.373667 114.3495) (xy 107.380202 114.37389) (xy 107.439507 114.476608) (xy 107.439509 114.47661)\r\n\t\t\t\t(xy 107.439511 114.476613) (xy 107.523387 114.560489) (xy 107.523389 114.56049) (xy 107.523391 114.560492)\r\n\t\t\t\t(xy 107.62611 114.619797) (xy 107.626111 114.619797) (xy 107.626114 114.619799) (xy 107.740691 114.6505)\r\n\t\t\t\t(xy 107.740693 114.6505) (xy 107.859307 114.6505) (xy 107.859309 114.6505) (xy 107.973886 114.619799)\r\n\t\t\t\t(xy 107.973888 114.619797) (xy 107.97389 114.619797) (xy 108.076608 114.560492) (xy 108.076608 114.560491)\r\n\t\t\t\t(xy 108.076613 114.560489) (xy 108.160489 114.476613) (xy 108.18191 114.439511) (xy 108.219797 114.37389)\r\n\t\t\t\t(xy 108.219797 114.373888) (xy 108.219799 114.373886) (xy 108.2505 114.259309) (xy 108.2505 114.140691)\r\n\t\t\t\t(xy 108.9495 114.140691) (xy 108.9495 114.259309) (xy 108.973667 114.3495) (xy 108.980202 114.37389)\r\n\t\t\t\t(xy 109.039507 114.476608) (xy 109.039509 114.47661) (xy 109.039511 114.476613) (xy 109.123387 114.560489)\r\n\t\t\t\t(xy 109.123389 114.56049) (xy 109.123391 114.560492) (xy 109.22611 114.619797) (xy 109.226111 114.619797)\r\n\t\t\t\t(xy 109.226114 114.619799) (xy 109.340691 114.6505) (xy 109.340693 114.6505) (xy 109.459307 114.6505)\r\n\t\t\t\t(xy 109.459309 114.6505) (xy 109.573886 114.619799) (xy 109.573888 114.619797) (xy 109.57389 114.619797)\r\n\t\t\t\t(xy 109.676608 114.560492) (xy 109.676608 114.560491) (xy 109.676613 114.560489) (xy 109.760489 114.476613)\r\n\t\t\t\t(xy 109.78191 114.439511) (xy 109.819797 114.37389) (xy 109.819797 114.373888) (xy 109.819799 114.373886)\r\n\t\t\t\t(xy 109.8505 114.259309) (xy 109.8505 114.140691) (xy 110.5495 114.140691) (xy 110.5495 114.259309)\r\n\t\t\t\t(xy 110.573667 114.3495) (xy 110.580202 114.37389) (xy 110.639507 114.476608) (xy 110.639509 114.47661)\r\n\t\t\t\t(xy 110.639511 114.476613) (xy 110.723387 114.560489) (xy 110.723389 114.56049) (xy 110.723391 114.560492)\r\n\t\t\t\t(xy 110.82611 114.619797) (xy 110.826111 114.619797) (xy 110.826114 114.619799) (xy 110.940691 114.6505)\r\n\t\t\t\t(xy 110.940693 114.6505) (xy 111.059307 114.6505) (xy 111.059309 114.6505) (xy 111.173886 114.619799)\r\n\t\t\t\t(xy 111.173888 114.619797) (xy 111.17389 114.619797) (xy 111.276608 114.560492) (xy 111.276608 114.560491)\r\n\t\t\t\t(xy 111.276613 114.560489) (xy 111.360489 114.476613) (xy 111.38191 114.439511) (xy 111.419797 114.37389)\r\n\t\t\t\t(xy 111.419797 114.373888) (xy 111.419799 114.373886) (xy 111.4505 114.259309) (xy 111.4505 114.140691)\r\n\t\t\t\t(xy 112.1495 114.140691) (xy 112.1495 114.259309) (xy 112.173667 114.3495) (xy 112.180202 114.37389)\r\n\t\t\t\t(xy 112.239507 114.476608) (xy 112.239509 114.47661) (xy 112.239511 114.476613) (xy 112.323387 114.560489)\r\n\t\t\t\t(xy 112.323389 114.56049) (xy 112.323391 114.560492) (xy 112.42611 114.619797) (xy 112.426111 114.619797)\r\n\t\t\t\t(xy 112.426114 114.619799) (xy 112.540691 114.6505) (xy 112.540693 114.6505) (xy 112.659307 114.6505)\r\n\t\t\t\t(xy 112.659309 114.6505) (xy 112.773886 114.619799) (xy 112.773888 114.619797) (xy 112.77389 114.619797)\r\n\t\t\t\t(xy 112.876608 114.560492) (xy 112.876608 114.560491) (xy 112.876613 114.560489) (xy 112.960489 114.476613)\r\n\t\t\t\t(xy 112.98191 114.439511) (xy 113.019797 114.37389) (xy 113.019797 ' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'114.373888) (xy 113.019799 114.373886)\r\n\t\t\t\t(xy 113.0505 114.259309) (xy 113.0505 114.140691) (xy 113.7495 114.140691) (xy 113.7495 114.259309)\r\n\t\t\t\t(xy 113.773667 114.3495) (xy 113.780202 114.37389) (xy 113.839507 114.476608) (xy 113.839509 114.47661)\r\n\t\t\t\t(xy 113.839511 114.476613) (xy 113.923387 114.560489) (xy 113.923389 114.56049) (xy 113.923391 114.560492)\r\n\t\t\t\t(xy 114.02611 114.619797) (xy 114.026111 114.619797) (xy 114.026114 114.619799) (xy 114.140691 114.6505)\r\n\t\t\t\t(xy 114.140693 114.6505) (xy 114.259307 114.6505) (xy 114.259309 114.6505) (xy 114.373886 114.619799)\r\n\t\t\t\t(xy 114.373888 114.619797) (xy 114.37389 114.619797) (xy 114.476608 114.560492) (xy 114.476608 114.560491)\r\n\t\t\t\t(xy 114.476613 114.560489) (xy 114.560489 114.476613) (xy 114.58191 114.439511) (xy 114.619797 114.37389)\r\n\t\t\t\t(xy 114.619797 114.373888) (xy 114.619799 114.373886) (xy 114.6505 114.259309) (xy 114.6505 114.140691)\r\n\t\t\t\t(xy 115.3495 114.140691) (xy 115.3495 114.259309) (xy 115.373667 114.3495) (xy 115.380202 114.37389)\r\n\t\t\t\t(xy 115.439507 114.476608) (xy 115.439509 114.47661) (xy 115.439511 114.476613) (xy 115.523387 114.560489)\r\n\t\t\t\t(xy 115.523389 114.56049) (xy 115.523391 114.560492) (xy 115.62611 114.619797) (xy 115.626111 114.619797)\r\n\t\t\t\t(xy 115.626114 114.619799) (xy 115.740691 114.6505) (xy 115.740693 114.6505) (xy 115.859307 114.6505)\r\n\t\t\t\t(xy 115.859309 114.6505) (xy 115.973886 114.619799) (xy 115.973888 114.619797) (xy 115.97389 114.619797)\r\n\t\t\t\t(xy 116.076608 114.560492) (xy 116.076608 114.560491) (xy 116.076613 114.560489) (xy 116.160489 114.476613)\r\n\t\t\t\t(xy 116.18191 114.439511) (xy 116.219797 114.37389) (xy 116.219797 114.373888) (xy 116.219799 114.373886)\r\n\t\t\t\t(xy 116.2505 114.259309) (xy 116.2505 114.140691) (xy 116.9495 114.140691) (xy 116.9495 114.259309)\r\n\t\t\t\t(xy 116.973667 114.3495) (xy 116.980202 114.37389) (xy 117.039507 114.476608) (xy 117.039509 114.47661)\r\n\t\t\t\t(xy 117.039511 114.476613) (xy 117.123387 114.560489) (xy 117.123389 114.56049) (xy 117.123391 114.560492)\r\n\t\t\t\t(xy 117.22611 114.619797) (xy 117.226111 114.619797) (xy 117.226114 114.619799) (xy 117.340691 114.6505)\r\n\t\t\t\t(xy 117.340693 114.6505) (xy 117.459307 114.6505) (xy 117.459309 114.6505) (xy 117.573886 114.619799)\r\n\t\t\t\t(xy 117.573888 114.619797) (xy 117.57389 114.619797) (xy 117.676608 114.560492) (xy 117.676608 114.560491)\r\n\t\t\t\t(xy 117.676613 114.560489) (xy 117.760489 114.476613) (xy 117.78191 114.439511) (xy 117.819797 114.37389)\r\n\t\t\t\t(xy 117.819797 114.373888) (xy 117.819799 114.373886) (xy 117.8505 114.259309) (xy 117.8505 114.140691)\r\n\t\t\t\t(xy 118.5495 114.140691) (xy 118.5495 114.259309) (xy 118.573667 114.3495) (xy 118.580202 114.37389)\r\n\t\t\t\t(xy 118.639507 114.476608) (xy 118.639509 114.47661) (xy 118.639511 114.476613) (xy 118.723387 114.560489)\r\n\t\t\t\t(xy 118.723389 114.56049) (xy 118.723391 114.560492) (xy 118.82611 114.619797) (xy 118.826111 114.619797)\r\n\t\t\t\t(xy 118.826114 114.619799) (xy 118.940691 114.6505) (xy 118.940693 114.6505) (xy 119.059307 114.6505)\r\n\t\t\t\t(xy 119.059309 114.6505) (xy 119.173886 114.619799) (xy 119.173888 114.619797) (xy 119.17389 114.619797)\r\n\t\t\t\t(xy 119.276608 114.560492) (xy 119.276608 114.560491) (xy 119.276613 114.560489) (xy 119.360489 114.476613)\r\n\t\t\t\t(xy 119.38191 114.439511) (xy 119.419797 114.37389) (xy 119.419797 114.373888) (xy 119.419799 114.373886)\r\n\t\t\t\t(xy 119.4505 114.259309) (xy 119.4505 114.140691) (xy 120.1495 114.140691) (xy 120.1495 114.259309)\r\n\t\t\t\t(xy 120.173667 114.3495) (xy 120.180202 114.37389) (xy 120.239507 114.476608) (xy 120.239509 114.47661)\r\n\t\t\t\t(xy 120.239511 114.476613) (xy 120.323387 114.560489) (xy 120.323389 114.56049) (xy 120.323391 114.560492)\r\n\t\t\t\t(xy 120.42611 114.619797) (xy 120.426111 114.619797) (xy 120.426114 114.619799) (xy 120.540691 114.6505)\r\n\t\t\t\t(xy 120.540693 114.6505) (xy 120.659307 114.6505) (xy 120.659309 114.6505) (xy 120.773886 114.619799)\r\n\t\t\t\t(xy 120.773888 114.619797) (xy 120.77389 114.619797) (xy 120.876608 114.560492) (xy 120.876608 114.560491)\r\n\t\t\t\t(xy 120.876613 114.560489) (xy 120.960489 114.476613) (xy 120.98191 114.439511) (xy 121.019797 114.37389)\r\n\t\t\t\t(xy 121.019797 114.373888) (xy 121.019799 114.373886) (xy 121.0505 114.259309) (xy 121.0505 114.140691)\r\n\t\t\t\t(xy 121.7495 114.140691) (xy 121.7495 114.259309) (xy 121.773667 114.3495) (xy 121.780202 114.37389)\r\n\t\t\t\t(xy 121.839507 114.476608) (xy 121.839509 114.47661) (xy 121.839511 114.476613) (xy 121.923387 114.560489)\r\n\t\t\t\t(xy 121.923389 114.56049) (xy 121.923391 114.560492) (xy 122.02611 114.619797) (xy 122.026111 114.619797)\r\n\t\t\t\t(xy 122.026114 114.619799) (xy 122.140691 114.6505) (xy 122.140693 114.6505) (xy 122.259307 114.6505)\r\n\t\t\t\t(xy 122.259309 114.6505) (xy 122.373886 114.619799) (xy 122.373888 114.619797) (xy 122.37389 114.619797)\r\n\t\t\t\t(xy 122.476608 114.560492) (xy 122.476608 114.560491) (xy 122.476613 114.560489) (xy 122.560489 114.476613)\r\n\t\t\t\t(xy 122.58191 114.439511) (xy 122.619797 114.37389) (xy 122.619797 114.373888) (xy 122.619799 114.373886)\r\n\t\t\t\t(xy 122.6505 114.259309) (xy 122.6505 114.140691) (xy 123.3495 114.140691) (xy 123.3495 114.259309)\r\n\t\t\t\t(xy 123.373667 114.3495) (xy 123.380202 114.37389) (xy 123.439507 114.476608) (xy 123.439509 114.47661)\r\n\t\t\t\t(xy 123.439511 114.476613) (xy 123.523387 114.560489) (xy 123.523389 114.56049) (xy 123.523391 114.560492)\r\n\t\t\t\t(xy 123.62611 114.619797) (xy 123.626111 114.619797) (xy 123.626114 114.619799) (xy 123.740691 114.6505)\r\n\t\t\t\t(xy 123.740693 114.6505) (xy 123.859307 114.6505) (xy 123.859309 114.6505) (xy 123.973886 114.619799)\r\n\t\t\t\t(xy 123.973888 114.619797) (xy 123.97389 114.619797) (xy 124.076608 114.560492) (xy 124.076608 114.560491)\r\n\t\t\t\t(xy 124.076613 114.560489) (xy 124.160489 114.476613) (xy 124.18191 114.439511) (xy 124.219797 114.37389)\r\n\t\t\t\t(xy 124.219797 114.373888) (xy 124.219799 114.373886) (xy 124.2505 114.259309) (xy 124.2505 114.140691)\r\n\t\t\t\t(xy 124.9495 114.140691) (xy 124.9495 114.259309) (xy 124.973667 114.3495) (xy 124.980202 114.37389)\r\n\t\t\t\t(xy 125.039507 114.476608) (xy 125.039509 114.47661) (xy 125.039511 114.476613) (xy 125.123387 114.560489)\r\n\t\t\t\t(xy 125.123389 114.56049) (xy 125.123391 114.560492) (xy 125.22611 114.619797) (xy 125.226111 114.619797)\r\n\t\t\t\t(xy 125.226114 114.619799) (xy 125.340691 114.6505) (xy 125.340693 114.6505) (xy 125.459307 114.6505)\r\n\t\t\t\t(xy 125.459309 114.6505) (xy 125.573886 114.619799) (xy 125.573888 114.619797) (xy 125.57389 114.619797)\r\n\t\t\t\t(xy 125.676608 114.560492) (xy 125.676608 114.560491) (xy 125.676613 114.560489) (xy 125.760489 114.476613)\r\n\t\t\t\t(xy 125.78191 114.439511) (xy 125.819797 114.37389) (xy 125.819797 114.373888) (xy 125.819799 114.373886)\r\n\t\t\t\t(xy 125.8505 114.259309) (xy 125.8505 114.140691) (xy 126.5495 114.140691) (xy 126.5495 114.259309)\r\n\t\t\t\t(xy 126.573667 114.3495) (xy 126.580202 114.37389) (xy 126.639507 114.476608) (xy 126.639509 114.47661)\r\n\t\t\t\t(xy 126.639511 114.476613) (xy 126.723387 114.560489) (xy 126.723389 114.56049) (xy 126.723391 114.560492)\r\n\t\t\t\t(xy 126.82611 114.619797) (xy 126.826111 114.619797) (xy 126.826114 114.619799) (xy 126.940691 114.6505)\r\n\t\t\t\t(xy 126.940693 114.6505) (xy 127.059307 114.6505) (xy 127.059309 114.6505) (xy 127.173886 114.619799)\r\n\t\t\t\t(xy 127.173888 114.619797) (xy 127.17389 114.619797) (xy 127.276608 114.560492) (xy 127.276608 114.560491)\r\n\t\t\t\t(xy 127.276613 114.560489) (xy 127.360489 114.476613) (xy 127.38191 114.439511) (xy 127.419797 114.37389)\r\n\t\t\t\t(xy 127.419797 114.373888) (xy 127.419799 114.373886) (xy 127.4505 114.259309) (xy 127.4505 114.140691)\r\n\t\t\t\t(xy 128.1495 114.140691) (xy 128.1495 114.259309) (xy 128.173667 114.3495) (xy 128.180202 114.37389)\r\n\t\t\t\t(xy 128.239507 114.476608) (xy 128.239509 114.47661) (xy 128.239511 114.476613) (xy 128.323387 114.560489)\r\n\t\t\t\t(xy 128.323389 114.56049) (xy 128.323391 114.560492) (xy 128.42611 114.619797) (xy 128.426111 114.619797)\r\n\t\t\t\t(xy 128.426114 114.619799) (xy 128.540691 114.6505) (xy 128.540693 114.6505) (xy 128.659307 114.6505)\r\n\t\t\t\t(xy 128.659309 114.6505) (xy 128.773886 114.619799) (xy 128.773888 114.619797) (xy 128.77389 114.619797)\r\n\t\t\t\t(xy 128.876608 114.560492) (xy 128.876608 114.560491) (xy 128.876613 114.560489) (xy 128.960489 114.476613)\r\n\t\t\t\t(xy 128.98191 114.439511) (xy 129.' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'019797 114.37389) (xy 129.019797 114.373888) (xy 129.019799 114.373886)\r\n\t\t\t\t(xy 129.0505 114.259309) (xy 129.0505 114.140691) (xy 129.7495 114.140691) (xy 129.7495 114.259309)\r\n\t\t\t\t(xy 129.773667 114.3495) (xy 129.780202 114.37389) (xy 129.839507 114.476608) (xy 129.839509 114.47661)\r\n\t\t\t\t(xy 129.839511 114.476613) (xy 129.923387 114.560489) (xy 129.923389 114.56049) (xy 129.923391 114.560492)\r\n\t\t\t\t(xy 130.02611 114.619797) (xy 130.026111 114.619797) (xy 130.026114 114.619799) (xy 130.140691 114.6505)\r\n\t\t\t\t(xy 130.140693 114.6505) (xy 130.259307 114.6505) (xy 130.259309 114.6505) (xy 130.373886 114.619799)\r\n\t\t\t\t(xy 130.373888 114.619797) (xy 130.37389 114.619797) (xy 130.476608 114.560492) (xy 130.476608 114.560491)\r\n\t\t\t\t(xy 130.476613 114.560489) (xy 130.560489 114.476613) (xy 130.58191 114.439511) (xy 130.619797 114.37389)\r\n\t\t\t\t(xy 130.619797 114.373888) (xy 130.619799 114.373886) (xy 130.6505 114.259309) (xy 130.6505 114.140691)\r\n\t\t\t\t(xy 131.3495 114.140691) (xy 131.3495 114.259309) (xy 131.373667 114.3495) (xy 131.380202 114.37389)\r\n\t\t\t\t(xy 131.439507 114.476608) (xy 131.439509 114.47661) (xy 131.439511 114.476613) (xy 131.523387 114.560489)\r\n\t\t\t\t(xy 131.523389 114.56049) (xy 131.523391 114.560492) (xy 131.62611 114.619797) (xy 131.626111 114.619797)\r\n\t\t\t\t(xy 131.626114 114.619799) (xy 131.740691 114.6505) (xy 131.740693 114.6505) (xy 131.859307 114.6505)\r\n\t\t\t\t(xy 131.859309 114.6505) (xy 131.973886 114.619799) (xy 131.973888 114.619797) (xy 131.97389 114.619797)\r\n\t\t\t\t(xy 132.076608 114.560492) (xy 132.076608 114.560491) (xy 132.076613 114.560489) (xy 132.160489 114.476613)\r\n\t\t\t\t(xy 132.18191 114.439511) (xy 132.219797 114.37389) (xy 132.219797 114.373888) (xy 132.219799 114.373886)\r\n\t\t\t\t(xy 132.2505 114.259309) (xy 132.2505 114.140691) (xy 132.9495 114.140691) (xy 132.9495 114.259309)\r\n\t\t\t\t(xy 132.973667 114.3495) (xy 132.980202 114.37389) (xy 133.039507 114.476608) (xy 133.039509 114.47661)\r\n\t\t\t\t(xy 133.039511 114.476613) (xy 133.123387 114.560489) (xy 133.123389 114.56049) (xy 133.123391 114.560492)\r\n\t\t\t\t(xy 133.22611 114.619797) (xy 133.226111 114.619797) (xy 133.226114 114.619799) (xy 133.340691 114.6505)\r\n\t\t\t\t(xy 133.340693 114.6505) (xy 133.459307 114.6505) (xy 133.459309 114.6505) (xy 133.573886 114.619799)\r\n\t\t\t\t(xy 133.573888 114.619797) (xy 133.57389 114.619797) (xy 133.676608 114.560492) (xy 133.676608 114.560491)\r\n\t\t\t\t(xy 133.676613 114.560489) (xy 133.760489 114.476613) (xy 133.78191 114.439511) (xy 133.819797 114.37389)\r\n\t\t\t\t(xy 133.819797 114.373888) (xy 133.819799 114.373886) (xy 133.8505 114.259309) (xy 133.8505 114.140691)\r\n\t\t\t\t(xy 134.5495 114.140691) (xy 134.5495 114.259309) (xy 134.573667 114.3495) (xy 134.580202 114.37389)\r\n\t\t\t\t(xy 134.639507 114.476608) (xy 134.639509 114.47661) (xy 134.639511 114.476613) (xy 134.723387 114.560489)\r\n\t\t\t\t(xy 134.723389 114.56049) (xy 134.723391 114.560492) (xy 134.82611 114.619797) (xy 134.826111 114.619797)\r\n\t\t\t\t(xy 134.826114 114.619799) (xy 134.940691 114.6505) (xy 134.940693 114.6505) (xy 135.059307 114.6505)\r\n\t\t\t\t(xy 135.059309 114.6505) (xy 135.173886 114.619799) (xy 135.173888 114.619797) (xy 135.17389 114.619797)\r\n\t\t\t\t(xy 135.276608 114.560492) (xy 135.276608 114.560491) (xy 135.276613 114.560489) (xy 135.360489 114.476613)\r\n\t\t\t\t(xy 135.38191 114.439511) (xy 135.419797 114.37389) (xy 135.419797 114.373888) (xy 135.419799 114.373886)\r\n\t\t\t\t(xy 135.4505 114.259309) (xy 135.4505 114.140691) (xy 136.1495 114.140691) (xy 136.1495 114.259309)\r\n\t\t\t\t(xy 136.173667 114.3495) (xy 136.180202 114.37389) (xy 136.239507 114.476608) (xy 136.239509 114.47661)\r\n\t\t\t\t(xy 136.239511 114.476613) (xy 136.323387 114.560489) (xy 136.323389 114.56049) (xy 136.323391 114.560492)\r\n\t\t\t\t(xy 136.42611 114.619797) (xy 136.426111 114.619797) (xy 136.426114 114.619799) (xy 136.540691 114.6505)\r\n\t\t\t\t(xy 136.540693 114.6505) (xy 136.659307 114.6505) (xy 136.659309 114.6505) (xy 136.773886 114.619799)\r\n\t\t\t\t(xy 136.773888 114.619797) (xy 136.77389 114.619797) (xy 136.876608 114.560492) (xy 136.876608 114.560491)\r\n\t\t\t\t(xy 136.876613 114.560489) (xy 136.960489 114.476613) (xy 136.98191 114.439511) (xy 137.019797 114.37389)\r\n\t\t\t\t(xy 137.019797 114.373888) (xy 137.019799 114.373886) (xy 137.0505 114.259309) (xy 137.0505 114.140691)\r\n\t\t\t\t(xy 137.7495 114.140691) (xy 137.7495 114.259309) (xy 137.773667 114.3495) (xy 137.780202 114.37389)\r\n\t\t\t\t(xy 137.839507 114.476608) (xy 137.839509 114.47661) (xy 137.839511 114.476613) (xy 137.923387 114.560489)\r\n\t\t\t\t(xy 137.923389 114.56049) (xy 137.923391 114.560492) (xy 138.02611 114.619797) (xy 138.026111 114.619797)\r\n\t\t\t\t(xy 138.026114 114.619799) (xy 138.140691 114.6505) (xy 138.140693 114.6505) (xy 138.259307 114.6505)\r\n\t\t\t\t(xy 138.259309 114.6505) (xy 138.373886 114.619799) (xy 138.373888 114.619797) (xy 138.37389 114.619797)\r\n\t\t\t\t(xy 138.476608 114.560492) (xy 138.476608 114.560491) (xy 138.476613 114.560489) (xy 138.560489 114.476613)\r\n\t\t\t\t(xy 138.58191 114.439511) (xy 138.619797 114.37389) (xy 138.619797 114.373888) (xy 138.619799 114.373886)\r\n\t\t\t\t(xy 138.6505 114.259309) (xy 138.6505 114.140691) (xy 138.619799 114.026114) (xy 138.619797 114.026111)\r\n\t\t\t\t(xy 138.619797 114.026109) (xy 138.560492 113.923391) (xy 138.56049 113.923389) (xy 138.560489 113.923387)\r\n\t\t\t\t(xy 138.476613 113.839511) (xy 138.47661 113.839509) (xy 138.476608 113.839507) (xy 138.373889 113.780202)\r\n\t\t\t\t(xy 138.37389 113.780202) (xy 138.350318 113.773886) (xy 138.259309 113.7495) (xy 138.140691 113.7495)\r\n\t\t\t\t(xy 138.070567 113.768289) (xy 138.026109 113.780202) (xy 137.923391 113.839507) (xy 137.839507 113.923391)\r\n\t\t\t\t(xy 137.780202 114.026109) (xy 137.773667 114.0505) (xy 137.7495 114.140691) (xy 137.0505 114.140691)\r\n\t\t\t\t(xy 137.019799 114.026114) (xy 137.019797 114.026111) (xy 137.019797 114.026109) (xy 136.960492 113.923391)\r\n\t\t\t\t(xy 136.96049 113.923389) (xy 136.960489 113.923387) (xy 136.876613 113.839511) (xy 136.87661 113.839509)\r\n\t\t\t\t(xy 136.876608 113.839507) (xy 136.773889 113.780202) (xy 136.77389 113.780202) (xy 136.750318 113.773886)\r\n\t\t\t\t(xy 136.659309 113.7495) (xy 136.540691 113.7495) (xy 136.470567 113.768289) (xy 136.426109 113.780202)\r\n\t\t\t\t(xy 136.323391 113.839507) (xy 136.239507 113.923391) (xy 136.180202 114.026109) (xy 136.173667 114.0505)\r\n\t\t\t\t(xy 136.1495 114.140691) (xy 135.4505 114.140691) (xy 135.419799 114.026114) (xy 135.419797 114.026111)\r\n\t\t\t\t(xy 135.419797 114.026109) (xy 135.360492 113.923391) (xy 135.36049 113.923389) (xy 135.360489 113.923387)\r\n\t\t\t\t(xy 135.276613 113.839511) (xy 135.27661 113.839509) (xy 135.276608 113.839507) (xy 135.173889 113.780202)\r\n\t\t\t\t(xy 135.17389 113.780202) (xy 135.150318 113.773886) (xy 135.059309 113.7495) (xy 134.940691 113.7495)\r\n\t\t\t\t(xy 134.870567 113.768289) (xy 134.826109 113.780202) (xy 134.723391 113.839507) (xy 134.639507 113.923391)\r\n\t\t\t\t(xy 134.580202 114.026109) (xy 134.573667 114.0505) (xy 134.5495 114.140691) (xy 133.8505 114.140691)\r\n\t\t\t\t(xy 133.819799 114.026114) (xy 133.819797 114.026111) (xy 133.819797 114.026109) (xy 133.760492 113.923391)\r\n\t\t\t\t(xy 133.76049 113.923389) (xy 133.760489 113.923387) (xy 133.676613 113.839511) (xy 133.67661 113.839509)\r\n\t\t\t\t(xy 133.676608 113.839507) (xy 133.573889 113.780202) (xy 133.57389 113.780202) (xy 133.550318 113.773886)\r\n\t\t\t\t(xy 133.459309 113.7495) (xy 133.340691 113.7495) (xy 133.270567 113.768289) (xy 133.226109 113.780202)\r\n\t\t\t\t(xy 133.123391 113.839507) (xy 133.039507 113.923391) (xy 132.980202 114.026109) (xy 132.973667 114.0505)\r\n\t\t\t\t(xy 132.9495 114.140691) (xy 132.2505 114.140691) (xy 132.219799 114.026114) (xy 132.219797 114.026111)\r\n\t\t\t\t(xy 132.219797 114.026109) (xy 132.160492 113.923391) (xy 132.16049 113.923389) (xy 132.160489 113.923387)\r\n\t\t\t\t(xy 132.076613 113.839511) (xy 132.07661 113.839509) (xy 132.076608 113.839507) (xy 131.973889 113.780202)\r\n\t\t\t\t(xy 131.97389 113.780202) (xy 131.950318 113.773886) (xy 131.859309 113.7495) (xy 131.740691 113.7495)\r\n\t\t\t\t(xy 131.670567 113.768289) (xy 131.626109 113.780202) (xy 131.523391 113.839507) (xy 131.439507 113.923391)\r\n\t\t\t\t(xy 131.380202 114.026109) (xy 131.373667 114.0505) (xy 131.3495 114.140691) (xy 130.6505 114.140691)\r\n\t\t\t\t(xy 130.619799 114.026114) (xy 130.619797 114.026111) (xy 130.619797 114.026109) (xy ' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'130.560492 113.923391)\r\n\t\t\t\t(xy 130.56049 113.923389) (xy 130.560489 113.923387) (xy 130.476613 113.839511) (xy 130.47661 113.839509)\r\n\t\t\t\t(xy 130.476608 113.839507) (xy 130.373889 113.780202) (xy 130.37389 113.780202) (xy 130.350318 113.773886)\r\n\t\t\t\t(xy 130.259309 113.7495) (xy 130.140691 113.7495) (xy 130.070567 113.768289) (xy 130.026109 113.780202)\r\n\t\t\t\t(xy 129.923391 113.839507) (xy 129.839507 113.923391) (xy 129.780202 114.026109) (xy 129.773667 114.0505)\r\n\t\t\t\t(xy 129.7495 114.140691) (xy 129.0505 114.140691) (xy 129.019799 114.026114) (xy 129.019797 114.026111)\r\n\t\t\t\t(xy 129.019797 114.026109) (xy 128.960492 113.923391) (xy 128.96049 113.923389) (xy 128.960489 113.923387)\r\n\t\t\t\t(xy 128.876613 113.839511) (xy 128.87661 113.839509) (xy 128.876608 113.839507) (xy 128.773889 113.780202)\r\n\t\t\t\t(xy 128.77389 113.780202) (xy 128.750318 113.773886) (xy 128.659309 113.7495) (xy 128.540691 113.7495)\r\n\t\t\t\t(xy 128.470567 113.768289) (xy 128.426109 113.780202) (xy 128.323391 113.839507) (xy 128.239507 113.923391)\r\n\t\t\t\t(xy 128.180202 114.026109) (xy 128.173667 114.0505) (xy 128.1495 114.140691) (xy 127.4505 114.140691)\r\n\t\t\t\t(xy 127.419799 114.026114) (xy 127.419797 114.026111) (xy 127.419797 114.026109) (xy 127.360492 113.923391)\r\n\t\t\t\t(xy 127.36049 113.923389) (xy 127.360489 113.923387) (xy 127.276613 113.839511) (xy 127.27661 113.839509)\r\n\t\t\t\t(xy 127.276608 113.839507) (xy 127.173889 113.780202) (xy 127.17389 113.780202) (xy 127.150318 113.773886)\r\n\t\t\t\t(xy 127.059309 113.7495) (xy 126.940691 113.7495) (xy 126.870567 113.768289) (xy 126.826109 113.780202)\r\n\t\t\t\t(xy 126.723391 113.839507) (xy 126.639507 113.923391) (xy 126.580202 114.026109) (xy 126.573667 114.0505)\r\n\t\t\t\t(xy 126.5495 114.140691) (xy 125.8505 114.140691) (xy 125.819799 114.026114) (xy 125.819797 114.026111)\r\n\t\t\t\t(xy 125.819797 114.026109) (xy 125.760492 113.923391) (xy 125.76049 113.923389) (xy 125.760489 113.923387)\r\n\t\t\t\t(xy 125.676613 113.839511) (xy 125.67661 113.839509) (xy 125.676608 113.839507) (xy 125.573889 113.780202)\r\n\t\t\t\t(xy 125.57389 113.780202) (xy 125.550318 113.773886) (xy 125.459309 113.7495) (xy 125.340691 113.7495)\r\n\t\t\t\t(xy 125.270567 113.768289) (xy 125.226109 113.780202) (xy 125.123391 113.839507) (xy 125.039507 113.923391)\r\n\t\t\t\t(xy 124.980202 114.026109) (xy 124.973667 114.0505) (xy 124.9495 114.140691) (xy 124.2505 114.140691)\r\n\t\t\t\t(xy 124.219799 114.026114) (xy 124.219797 114.026111) (xy 124.219797 114.026109) (xy 124.160492 113.923391)\r\n\t\t\t\t(xy 124.16049 113.923389) (xy 124.160489 113.923387) (xy 124.076613 113.839511) (xy 124.07661 113.839509)\r\n\t\t\t\t(xy 124.076608 113.839507) (xy 123.973889 113.780202) (xy 123.97389 113.780202) (xy 123.950318 113.773886)\r\n\t\t\t\t(xy 123.859309 113.7495) (xy 123.740691 113.7495) (xy 123.670567 113.768289) (xy 123.626109 113.780202)\r\n\t\t\t\t(xy 123.523391 113.839507) (xy 123.439507 113.923391) (xy 123.380202 114.026109) (xy 123.373667 114.0505)\r\n\t\t\t\t(xy 123.3495 114.140691) (xy 122.6505 114.140691) (xy 122.619799 114.026114) (xy 122.619797 114.026111)\r\n\t\t\t\t(xy 122.619797 114.026109) (xy 122.560492 113.923391) (xy 122.56049 113.923389) (xy 122.560489 113.923387)\r\n\t\t\t\t(xy 122.476613 113.839511) (xy 122.47661 113.839509) (xy 122.476608 113.839507) (xy 122.373889 113.780202)\r\n\t\t\t\t(xy 122.37389 113.780202) (xy 122.350318 113.773886) (xy 122.259309 113.7495) (xy 122.140691 113.7495)\r\n\t\t\t\t(xy 122.070567 113.768289) (xy 122.026109 113.780202) (xy 121.923391 113.839507) (xy 121.839507 113.923391)\r\n\t\t\t\t(xy 121.780202 114.026109) (xy 121.773667 114.0505) (xy 121.7495 114.140691) (xy 121.0505 114.140691)\r\n\t\t\t\t(xy 121.019799 114.026114) (xy 121.019797 114.026111) (xy 121.019797 114.026109) (xy 120.960492 113.923391)\r\n\t\t\t\t(xy 120.96049 113.923389) (xy 120.960489 113.923387) (xy 120.876613 113.839511) (xy 120.87661 113.839509)\r\n\t\t\t\t(xy 120.876608 113.839507) (xy 120.773889 113.780202) (xy 120.77389 113.780202) (xy 120.750318 113.773886)\r\n\t\t\t\t(xy 120.659309 113.7495) (xy 120.540691 113.7495) (xy 120.470567 113.768289) (xy 120.426109 113.780202)\r\n\t\t\t\t(xy 120.323391 113.839507) (xy 120.239507 113.923391) (xy 120.180202 114.026109) (xy 120.173667 114.0505)\r\n\t\t\t\t(xy 120.1495 114.140691) (xy 119.4505 114.140691) (xy 119.419799 114.026114) (xy 119.419797 114.026111)\r\n\t\t\t\t(xy 119.419797 114.026109) (xy 119.360492 113.923391) (xy 119.36049 113.923389) (xy 119.360489 113.923387)\r\n\t\t\t\t(xy 119.276613 113.839511) (xy 119.27661 113.839509) (xy 119.276608 113.839507) (xy 119.173889 113.780202)\r\n\t\t\t\t(xy 119.17389 113.780202) (xy 119.150318 113.773886) (xy 119.059309 113.7495) (xy 118.940691 113.7495)\r\n\t\t\t\t(xy 118.870567 113.768289) (xy 118.826109 113.780202) (xy 118.723391 113.839507) (xy 118.639507 113.923391)\r\n\t\t\t\t(xy 118.580202 114.026109) (xy 118.573667 114.0505) (xy 118.5495 114.140691) (xy 117.8505 114.140691)\r\n\t\t\t\t(xy 117.819799 114.026114) (xy 117.819797 114.026111) (xy 117.819797 114.026109) (xy 117.760492 113.923391)\r\n\t\t\t\t(xy 117.76049 113.923389) (xy 117.760489 113.923387) (xy 117.676613 113.839511) (xy 117.67661 113.839509)\r\n\t\t\t\t(xy 117.676608 113.839507) (xy 117.573889 113.780202) (xy 117.57389 113.780202) (xy 117.550318 113.773886)\r\n\t\t\t\t(xy 117.459309 113.7495) (xy 117.340691 113.7495) (xy 117.270567 113.768289) (xy 117.226109 113.780202)\r\n\t\t\t\t(xy 117.123391 113.839507) (xy 117.039507 113.923391) (xy 116.980202 114.026109) (xy 116.973667 114.0505)\r\n\t\t\t\t(xy 116.9495 114.140691) (xy 116.2505 114.140691) (xy 116.219799 114.026114) (xy 116.219797 114.026111)\r\n\t\t\t\t(xy 116.219797 114.026109) (xy 116.160492 113.923391) (xy 116.16049 113.923389) (xy 116.160489 113.923387)\r\n\t\t\t\t(xy 116.076613 113.839511) (xy 116.07661 113.839509) (xy 116.076608 113.839507) (xy 115.973889 113.780202)\r\n\t\t\t\t(xy 115.97389 113.780202) (xy 115.950318 113.773886) (xy 115.859309 113.7495) (xy 115.740691 113.7495)\r\n\t\t\t\t(xy 115.670567 113.768289) (xy 115.626109 113.780202) (xy 115.523391 113.839507) (xy 115.439507 113.923391)\r\n\t\t\t\t(xy 115.380202 114.026109) (xy 115.373667 114.0505) (xy 115.3495 114.140691) (xy 114.6505 114.140691)\r\n\t\t\t\t(xy 114.619799 114.026114) (xy 114.619797 114.026111) (xy 114.619797 114.026109) (xy 114.560492 113.923391)\r\n\t\t\t\t(xy 114.56049 113.923389) (xy 114.560489 113.923387) (xy 114.476613 113.839511) (xy 114.47661 113.839509)\r\n\t\t\t\t(xy 114.476608 113.839507) (xy 114.373889 113.780202) (xy 114.37389 113.780202) (xy 114.350318 113.773886)\r\n\t\t\t\t(xy 114.259309 113.7495) (xy 114.140691 113.7495) (xy 114.070567 113.768289) (xy 114.026109 113.780202)\r\n\t\t\t\t(xy 113.923391 113.839507) (xy 113.839507 113.923391) (xy 113.780202 114.026109) (xy 113.773667 114.0505)\r\n\t\t\t\t(xy 113.7495 114.140691) (xy 113.0505 114.140691) (xy 113.019799 114.026114) (xy 113.019797 114.026111)\r\n\t\t\t\t(xy 113.019797 114.026109) (xy 112.960492 113.923391) (xy 112.96049 113.923389) (xy 112.960489 113.923387)\r\n\t\t\t\t(xy 112.876613 113.839511) (xy 112.87661 113.839509) (xy 112.876608 113.839507) (xy 112.773889 113.780202)\r\n\t\t\t\t(xy 112.77389 113.780202) (xy 112.750318 113.773886) (xy 112.659309 113.7495) (xy 112.540691 113.7495)\r\n\t\t\t\t(xy 112.470567 113.768289) (xy 112.426109 113.780202) (xy 112.323391 113.839507) (xy 112.239507 113.923391)\r\n\t\t\t\t(xy 112.180202 114.026109) (xy 112.173667 114.0505) (xy 112.1495 114.140691) (xy 111.4505 114.140691)\r\n\t\t\t\t(xy 111.419799 114.026114) (xy 111.419797 114.026111) (xy 111.419797 114.026109) (xy 111.360492 113.923391)\r\n\t\t\t\t(xy 111.36049 113.923389) (xy 111.360489 113.923387) (xy 111.276613 113.839511) (xy 111.27661 113.839509)\r\n\t\t\t\t(xy 111.276608 113.839507) (xy 111.173889 113.780202) (xy 111.17389 113.780202) (xy 111.150318 113.773886)\r\n\t\t\t\t(xy 111.059309 113.7495) (xy 110.940691 113.7495) (xy 110.870567 113.768289) (xy 110.826109 113.780202)\r\n\t\t\t\t(xy 110.723391 113.839507) (xy 110.639507 113.923391) (xy 110.580202 114.026109) (xy 110.573667 114.0505)\r\n\t\t\t\t(xy 110.5495 114.140691) (xy 109.8505 114.140691) (xy 109.819799 114.026114) (xy 109.819797 114.026111)\r\n\t\t\t\t(xy 109.819797 114.026109) (xy 109.760492 113.923391) (xy 109.76049 113.923389) (xy 109.760489 113.923387)\r\n\t\t\t\t(xy 109.676613 113.839511) (xy 109.67661 113.839509) (xy 109.676608 113.839507) (xy 109.573889 113.780202)\r\n\t\t\t\t(xy 109.57389 113.780202) (xy 109.550318 113.773886) (xy 109.459309 113.7495) (xy 109.' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'340691 113.7495)\r\n\t\t\t\t(xy 109.270567 113.768289) (xy 109.226109 113.780202) (xy 109.123391 113.839507) (xy 109.039507 113.923391)\r\n\t\t\t\t(xy 108.980202 114.026109) (xy 108.973667 114.0505) (xy 108.9495 114.140691) (xy 108.2505 114.140691)\r\n\t\t\t\t(xy 108.219799 114.026114) (xy 108.219797 114.026111) (xy 108.219797 114.026109) (xy 108.160492 113.923391)\r\n\t\t\t\t(xy 108.16049 113.923389) (xy 108.160489 113.923387) (xy 108.076613 113.839511) (xy 108.07661 113.839509)\r\n\t\t\t\t(xy 108.076608 113.839507) (xy 107.973889 113.780202) (xy 107.97389 113.780202) (xy 107.950318 113.773886)\r\n\t\t\t\t(xy 107.859309 113.7495) (xy 107.740691 113.7495) (xy 107.670567 113.768289) (xy 107.626109 113.780202)\r\n\t\t\t\t(xy 107.523391 113.839507) (xy 107.439507 113.923391) (xy 107.380202 114.026109) (xy 107.373667 114.0505)\r\n\t\t\t\t(xy 107.3495 114.140691) (xy 106.6505 114.140691) (xy 106.619799 114.026114) (xy 106.619797 114.026111)\r\n\t\t\t\t(xy 106.619797 114.026109) (xy 106.560492 113.923391) (xy 106.56049 113.923389) (xy 106.560489 113.923387)\r\n\t\t\t\t(xy 106.476613 113.839511) (xy 106.47661 113.839509) (xy 106.476608 113.839507) (xy 106.373889 113.780202)\r\n\t\t\t\t(xy 106.37389 113.780202) (xy 106.350318 113.773886) (xy 106.259309 113.7495) (xy 106.140691 113.7495)\r\n\t\t\t\t(xy 106.070567 113.768289) (xy 106.026109 113.780202) (xy 105.923391 113.839507) (xy 105.839507 113.923391)\r\n\t\t\t\t(xy 105.780202 114.026109) (xy 105.773667 114.0505) (xy 105.7495 114.140691) (xy 105.0505 114.140691)\r\n\t\t\t\t(xy 105.019799 114.026114) (xy 105.019797 114.026111) (xy 105.019797 114.026109) (xy 104.960492 113.923391)\r\n\t\t\t\t(xy 104.96049 113.923389) (xy 104.960489 113.923387) (xy 104.876613 113.839511) (xy 104.87661 113.839509)\r\n\t\t\t\t(xy 104.876608 113.839507) (xy 104.773889 113.780202) (xy 104.77389 113.780202) (xy 104.750318 113.773886)\r\n\t\t\t\t(xy 104.659309 113.7495) (xy 104.540691 113.7495) (xy 104.470567 113.768289) (xy 104.426109 113.780202)\r\n\t\t\t\t(xy 104.323391 113.839507) (xy 104.239507 113.923391) (xy 104.180202 114.026109) (xy 104.173667 114.0505)\r\n\t\t\t\t(xy 104.1495 114.140691) (xy 103.4505 114.140691) (xy 103.419799 114.026114) (xy 103.419797 114.026111)\r\n\t\t\t\t(xy 103.419797 114.026109) (xy 103.360492 113.923391) (xy 103.36049 113.923389) (xy 103.360489 113.923387)\r\n\t\t\t\t(xy 103.276613 113.839511) (xy 103.27661 113.839509) (xy 103.276608 113.839507) (xy 103.173889 113.780202)\r\n\t\t\t\t(xy 103.17389 113.780202) (xy 103.150318 113.773886) (xy 103.059309 113.7495) (xy 102.940691 113.7495)\r\n\t\t\t\t(xy 102.870567 113.768289) (xy 102.826109 113.780202) (xy 102.723391 113.839507) (xy 102.639507 113.923391)\r\n\t\t\t\t(xy 102.580202 114.026109) (xy 102.573667 114.0505) (xy 102.5495 114.140691) (xy 90.596411 114.140691)\r\n\t\t\t\t(xy 90.657607 114.079494) (xy 90.712122 114.051719) (xy 90.727609 114.0505) (xy 97.249829 114.0505)\r\n\t\t\t\t(xy 97.268568 114.042738) (xy 97.323952 114.019797) (xy 97.341897 114.012364) (xy 97.888673 113.465588)\r\n\t\t\t\t(xy 97.94319 113.437811) (xy 97.958677 113.436592) (xy 138.413741 113.436592) (xy 138.459774 113.417524)\r\n\t\t\t\t(xy 138.505809 113.398456) (xy 138.674765 113.229498) (xy 138.729282 113.201721) (xy 138.744769 113.200502)\r\n\t\t\t\t(xy 138.85931 113.200502) (xy 138.859311 113.200502) (xy 138.925558 113.182751) (xy 138.986659 113.185952)\r\n\t\t\t\t(xy 139.034209 113.224457) (xy 139.050045 113.283557) (xy 139.036918 113.327877) (xy 138.980201 113.426112)\r\n\t\t\t\t(xy 138.976612 113.439507) (xy 138.9495 113.540691) (xy 138.9495 113.659309) (xy 138.971306 113.740691)\r\n\t\t\t\t(xy 138.980202 113.77389) (xy 139.039507 113.876608) (xy 139.039509 113.87661) (xy 139.039511 113.876613)\r\n\t\t\t\t(xy 139.123387 113.960489) (xy 139.123389 113.96049) (xy 139.123391 113.960492) (xy 139.22611 114.019797)\r\n\t\t\t\t(xy 139.226111 114.019797) (xy 139.226114 114.019799) (xy 139.340691 114.0505) (xy 139.340693 114.0505)\r\n\t\t\t\t(xy 139.459307 114.0505) (xy 139.459309 114.0505) (xy 139.573886 114.019799) (xy 139.573888 114.019797)\r\n\t\t\t\t(xy 139.57389 114.019797) (xy 139.676608 113.960492) (xy 139.676608 113.960491) (xy 139.676613 113.960489)\r\n\t\t\t\t(xy 139.760489 113.876613) (xy 139.78191 113.839511) (xy 139.819797 113.77389) (xy 139.819797 113.773888)\r\n\t\t\t\t(xy 139.819799 113.773886) (xy 139.8505 113.659309) (xy 139.8505 113.540691) (xy 139.819799 113.426114)\r\n\t\t\t\t(xy 139.819797 113.426111) (xy 139.819797 113.426109) (xy 139.760492 113.323391) (xy 139.76049 113.323389)\r\n\t\t\t\t(xy 139.760489 113.323387) (xy 139.676613 113.239511) (xy 139.67661 113.239509) (xy 139.676608 113.239507)\r\n\t\t\t\t(xy 139.573889 113.180202) (xy 139.57389 113.180202) (xy 139.560351 113.176574) (xy 139.459309 113.1495)\r\n\t\t\t\t(xy 139.340691 113.1495) (xy 139.316741 113.155917) (xy 139.274442 113.167251) (xy 139.213341 113.164048)\r\n\t\t\t\t(xy 139.165791 113.125543) (xy 139.149956 113.066442) (xy 139.163084 113.022123) (xy 139.164427 113.019797)\r\n\t\t\t\t(xy 139.219801 112.923888) (xy 139.250502 112.809311) (xy 139.250502 112.690693) (xy 139.219801 112.576116)\r\n\t\t\t\t(xy 139.219799 112.576113) (xy 139.219799 112.576111) (xy 139.199349 112.540691) (xy 139.5495 112.540691)\r\n\t\t\t\t(xy 139.5495 112.659309) (xy 139.55791 112.690694) (xy 139.580202 112.77389) (xy 139.639507 112.876608)\r\n\t\t\t\t(xy 139.639509 112.87661) (xy 139.639511 112.876613) (xy 139.723387 112.960489) (xy 139.723389 112.96049)\r\n\t\t\t\t(xy 139.723391 112.960492) (xy 139.82611 113.019797) (xy 139.826111 113.019797) (xy 139.826114 113.019799)\r\n\t\t\t\t(xy 139.940691 113.0505) (xy 139.940693 113.0505) (xy 140.059307 113.0505) (xy 140.059309 113.0505)\r\n\t\t\t\t(xy 140.173886 113.019799) (xy 140.173888 113.019797) (xy 140.17389 113.019797) (xy 140.276608 112.960492)\r\n\t\t\t\t(xy 140.276608 112.960491) (xy 140.276613 112.960489) (xy 140.360489 112.876613) (xy 140.399346 112.809311)\r\n\t\t\t\t(xy 140.419797 112.77389) (xy 140.419797 112.773888) (xy 140.419799 112.773886) (xy 140.4505 112.659309)\r\n\t\t\t\t(xy 140.4505 112.540691) (xy 141.3495 112.540691) (xy 141.3495 112.659309) (xy 141.35791 112.690694)\r\n\t\t\t\t(xy 141.380202 112.77389) (xy 141.439507 112.876608) (xy 141.439509 112.87661) (xy 141.439511 112.876613)\r\n\t\t\t\t(xy 141.523387 112.960489) (xy 141.523389 112.96049) (xy 141.523391 112.960492) (xy 141.62611 113.019797)\r\n\t\t\t\t(xy 141.626111 113.019797) (xy 141.626114 113.019799) (xy 141.740691 113.0505) (xy 141.740693 113.0505)\r\n\t\t\t\t(xy 141.859307 113.0505) (xy 141.859309 113.0505) (xy 141.973886 113.019799) (xy 141.973888 113.019797)\r\n\t\t\t\t(xy 141.97389 113.019797) (xy 142.076608 112.960492) (xy 142.076608 112.960491) (xy 142.076613 112.960489)\r\n\t\t\t\t(xy 142.160489 112.876613) (xy 142.199346 112.809311) (xy 142.219797 112.77389) (xy 142.219797 112.773888)\r\n\t\t\t\t(xy 142.219799 112.773886) (xy 142.2505 112.659309) (xy 142.2505 112.540691) (xy 142.7495 112.540691)\r\n\t\t\t\t(xy 142.7495 112.659309) (xy 142.75791 112.690694) (xy 142.780202 112.77389) (xy 142.839507 112.876608)\r\n\t\t\t\t(xy 142.839509 112.87661) (xy 142.839511 112.876613) (xy 142.923387 112.960489) (xy 142.923389 112.96049)\r\n\t\t\t\t(xy 142.923391 112.960492) (xy 143.02611 113.019797) (xy 143.026111 113.019797) (xy 143.026114 113.019799)\r\n\t\t\t\t(xy 143.140691 113.0505) (xy 143.140693 113.0505) (xy 143.259307 113.0505) (xy 143.259309 113.0505)\r\n\t\t\t\t(xy 143.373886 113.019799) (xy 143.373888 113.019797) (xy 143.37389 113.019797) (xy 143.476608 112.960492)\r\n\t\t\t\t(xy 143.476608 112.960491) (xy 143.476613 112.960489) (xy 143.560489 112.876613) (xy 143.599346 112.809311)\r\n\t\t\t\t(xy 143.619797 112.77389) (xy 143.619797 112.773888) (xy 143.619799 112.773886) (xy 143.6505 112.659309)\r\n\t\t\t\t(xy 143.6505 112.540691) (xy 144.3495 112.540691) (xy 144.3495 112.659309) (xy 144.35791 112.690694)\r\n\t\t\t\t(xy 144.380202 112.77389) (xy 144.439507 112.876608) (xy 144.439509 112.87661) (xy 144.439511 112.876613)\r\n\t\t\t\t(xy 144.523387 112.960489) (xy 144.523389 112.96049) (xy 144.523391 112.960492) (xy 144.62611 113.019797)\r\n\t\t\t\t(xy 144.626111 113.019797) (xy 144.626114 113.019799) (xy 144.740691 113.0505) (xy 144.740693 113.0505)\r\n\t\t\t\t(xy 144.859307 113.0505) (xy 144.859309 113.0505) (xy 144.973886 113.019799) (xy 144.973888 113.019797)\r\n\t\t\t\t(xy 144.97389 113.019797) (xy 145.076608 112.960492) (xy 145.076608 112.960491) (xy 145.076613 112.960489)\r\n\t\t\t\t(xy 145.160489 112.876613) (xy 145.199346 112.809311) (xy 145.219797 112.77389) (xy 145.219797 112.773888)\r\n\t\t\t' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'\t(xy 145.219799 112.773886) (xy 145.2505 112.659309) (xy 145.2505 112.540691) (xy 145.7495 112.540691)\r\n\t\t\t\t(xy 145.7495 112.659309) (xy 145.75791 112.690694) (xy 145.780202 112.77389) (xy 145.839507 112.876608)\r\n\t\t\t\t(xy 145.839509 112.87661) (xy 145.839511 112.876613) (xy 145.923387 112.960489) (xy 145.923389 112.96049)\r\n\t\t\t\t(xy 145.923391 112.960492) (xy 146.02611 113.019797) (xy 146.026111 113.019797) (xy 146.026114 113.019799)\r\n\t\t\t\t(xy 146.140691 113.0505) (xy 146.140693 113.0505) (xy 146.259307 113.0505) (xy 146.259309 113.0505)\r\n\t\t\t\t(xy 146.373886 113.019799) (xy 146.373888 113.019797) (xy 146.37389 113.019797) (xy 146.476608 112.960492)\r\n\t\t\t\t(xy 146.476608 112.960491) (xy 146.476613 112.960489) (xy 146.560489 112.876613) (xy 146.599346 112.809311)\r\n\t\t\t\t(xy 146.619797 112.77389) (xy 146.619797 112.773888) (xy 146.619799 112.773886) (xy 146.6505 112.659309)\r\n\t\t\t\t(xy 146.6505 112.540691) (xy 147.3495 112.540691) (xy 147.3495 112.659309) (xy 147.35791 112.690694)\r\n\t\t\t\t(xy 147.380202 112.77389) (xy 147.439507 112.876608) (xy 147.439509 112.87661) (xy 147.439511 112.876613)\r\n\t\t\t\t(xy 147.523387 112.960489) (xy 147.523389 112.96049) (xy 147.523391 112.960492) (xy 147.62611 113.019797)\r\n\t\t\t\t(xy 147.626111 113.019797) (xy 147.626114 113.019799) (xy 147.740691 113.0505) (xy 147.740693 113.0505)\r\n\t\t\t\t(xy 147.859307 113.0505) (xy 147.859309 113.0505) (xy 147.973886 113.019799) (xy 147.973888 113.019797)\r\n\t\t\t\t(xy 147.97389 113.019797) (xy 148.076608 112.960492) (xy 148.076608 112.960491) (xy 148.076613 112.960489)\r\n\t\t\t\t(xy 148.160489 112.876613) (xy 148.199346 112.809311) (xy 148.219797 112.77389) (xy 148.219797 112.773888)\r\n\t\t\t\t(xy 148.219799 112.773886) (xy 148.2505 112.659309) (xy 148.2505 112.540691) (xy 148.219799 112.426114)\r\n\t\t\t\t(xy 148.219797 112.426111) (xy 148.219797 112.426109) (xy 148.160492 112.323391) (xy 148.16049 112.323389)\r\n\t\t\t\t(xy 148.160489 112.323387) (xy 148.076613 112.239511) (xy 148.07661 112.239509) (xy 148.076608 112.239507)\r\n\t\t\t\t(xy 147.973889 112.180202) (xy 147.97389 112.180202) (xy 147.950318 112.173886) (xy 147.859309 112.1495)\r\n\t\t\t\t(xy 147.740691 112.1495) (xy 147.670567 112.168289) (xy 147.626109 112.180202) (xy 147.523391 112.239507)\r\n\t\t\t\t(xy 147.439507 112.323391) (xy 147.380202 112.426109) (xy 147.363037 112.490169) (xy 147.3495 112.540691)\r\n\t\t\t\t(xy 146.6505 112.540691) (xy 146.619799 112.426114) (xy 146.619797 112.426111) (xy 146.619797 112.426109)\r\n\t\t\t\t(xy 146.560492 112.323391) (xy 146.56049 112.323389) (xy 146.560489 112.323387) (xy 146.476613 112.239511)\r\n\t\t\t\t(xy 146.47661 112.239509) (xy 146.476608 112.239507) (xy 146.373889 112.180202) (xy 146.37389 112.180202)\r\n\t\t\t\t(xy 146.350318 112.173886) (xy 146.259309 112.1495) (xy 146.140691 112.1495) (xy 146.070567 112.168289)\r\n\t\t\t\t(xy 146.026109 112.180202) (xy 145.923391 112.239507) (xy 145.839507 112.323391) (xy 145.780202 112.426109)\r\n\t\t\t\t(xy 145.763037 112.490169) (xy 145.7495 112.540691) (xy 145.2505 112.540691) (xy 145.219799 112.426114)\r\n\t\t\t\t(xy 145.219797 112.426111) (xy 145.219797 112.426109) (xy 145.160492 112.323391) (xy 145.16049 112.323389)\r\n\t\t\t\t(xy 145.160489 112.323387) (xy 145.076613 112.239511) (xy 145.07661 112.239509) (xy 145.076608 112.239507)\r\n\t\t\t\t(xy 144.973889 112.180202) (xy 144.97389 112.180202) (xy 144.950318 112.173886) (xy 144.859309 112.1495)\r\n\t\t\t\t(xy 144.740691 112.1495) (xy 144.670567 112.168289) (xy 144.626109 112.180202) (xy 144.523391 112.239507)\r\n\t\t\t\t(xy 144.439507 112.323391) (xy 144.380202 112.426109) (xy 144.363037 112.490169) (xy 144.3495 112.540691)\r\n\t\t\t\t(xy 143.6505 112.540691) (xy 143.619799 112.426114) (xy 143.619797 112.426111) (xy 143.619797 112.426109)\r\n\t\t\t\t(xy 143.560492 112.323391) (xy 143.56049 112.323389) (xy 143.560489 112.323387) (xy 143.476613 112.239511)\r\n\t\t\t\t(xy 143.47661 112.239509) (xy 143.476608 112.239507) (xy 143.373889 112.180202) (xy 143.37389 112.180202)\r\n\t\t\t\t(xy 143.350318 112.173886) (xy 143.259309 112.1495) (xy 143.140691 112.1495) (xy 143.070567 112.168289)\r\n\t\t\t\t(xy 143.026109 112.180202) (xy 142.923391 112.239507) (xy 142.839507 112.323391) (xy 142.780202 112.426109)\r\n\t\t\t\t(xy 142.763037 112.490169) (xy 142.7495 112.540691) (xy 142.2505 112.540691) (xy 142.219799 112.426114)\r\n\t\t\t\t(xy 142.219797 112.426111) (xy 142.219797 112.426109) (xy 142.160492 112.323391) (xy 142.16049 112.323389)\r\n\t\t\t\t(xy 142.160489 112.323387) (xy 142.076613 112.239511) (xy 142.07661 112.239509) (xy 142.076608 112.239507)\r\n\t\t\t\t(xy 141.973889 112.180202) (xy 141.97389 112.180202) (xy 141.950318 112.173886) (xy 141.859309 112.1495)\r\n\t\t\t\t(xy 141.740691 112.1495) (xy 141.670567 112.168289) (xy 141.626109 112.180202) (xy 141.523391 112.239507)\r\n\t\t\t\t(xy 141.439507 112.323391) (xy 141.380202 112.426109) (xy 141.363037 112.490169) (xy 141.3495 112.540691)\r\n\t\t\t\t(xy 140.4505 112.540691) (xy 140.419799 112.426114) (xy 140.419797 112.426111) (xy 140.419797 112.426109)\r\n\t\t\t\t(xy 140.360492 112.323391) (xy 140.36049 112.323389) (xy 140.360489 112.323387) (xy 140.276613 112.239511)\r\n\t\t\t\t(xy 140.27661 112.239509) (xy 140.276608 112.239507) (xy 140.173889 112.180202) (xy 140.17389 112.180202)\r\n\t\t\t\t(xy 140.150318 112.173886) (xy 140.059309 112.1495) (xy 139.940691 112.1495) (xy 139.870567 112.168289)\r\n\t\t\t\t(xy 139.826109 112.180202) (xy 139.723391 112.239507) (xy 139.639507 112.323391) (xy 139.580202 112.426109)\r\n\t\t\t\t(xy 139.563037 112.490169) (xy 139.5495 112.540691) (xy 139.199349 112.540691) (xy 139.160494 112.473393)\r\n\t\t\t\t(xy 139.160492 112.473391) (xy 139.160491 112.473389) (xy 139.076615 112.389513) (xy 139.076612 112.389511)\r\n\t\t\t\t(xy 139.07661 112.389509) (xy 138.973891 112.330204) (xy 138.973892 112.330204) (xy 138.94845 112.323387)\r\n\t\t\t\t(xy 138.859311 112.299502) (xy 138.742224 112.299502) (xy 138.684033 112.280595) (xy 138.648069 112.231095)\r\n\t\t\t\t(xy 138.646597 112.226126) (xy 138.619799 112.126114) (xy 138.581228 112.059307) (xy 138.560492 112.023391)\r\n\t\t\t\t(xy 138.56049 112.023389) (xy 138.560489 112.023387) (xy 138.476613 111.939511) (xy 138.47661 111.939509)\r\n\t\t\t\t(xy 138.476608 111.939507) (xy 138.373889 111.880202) (xy 138.37389 111.880202) (xy 138.360351 111.876574)\r\n\t\t\t\t(xy 138.259309 111.8495) (xy 138.140691 111.8495) (xy 138.070567 111.868289) (xy 138.026109 111.880202)\r\n\t\t\t\t(xy 137.923391 111.939507) (xy 137.895001 111.967897) (xy 137.840484 111.995673) (xy 137.780052 111.986101)\r\n\t\t\t\t(xy 137.754997 111.967898) (xy 137.712702 111.925603) (xy 137.712699 111.925601) (xy 137.712697 111.925599)\r\n\t\t\t\t(xy 137.609978 111.866294) (xy 137.609979 111.866294) (xy 137.59644 111.862666) (xy 137.495398 111.835592)\r\n\t\t\t\t(xy 137.37678 111.835592) (xy 137.324875 111.8495) (xy 137.262198 111.866294) (xy 137.15948 111.925599)\r\n\t\t\t\t(xy 137.075597 112.009482) (xy 137.074615 112.010763) (xy 137.073661 112.011418) (xy 137.071012 112.014068)\r\n\t\t\t\t(xy 137.070521 112.013577) (xy 137.024192 112.045422) (xy 136.99607 112.0495) (xy 135.91516 112.0495)\r\n\t\t\t\t(xy 135.856969 112.030593) (xy 135.821005 111.981093) (xy 135.819533 111.924877) (xy 135.831504 111.880201)\r\n\t\t\t\t(xy 135.8505 111.809309) (xy 135.8505 111.690691) (xy 135.819799 111.576114) (xy 135.819797 111.576111)\r\n\t\t\t\t(xy 135.819797 111.576109) (xy 135.760492 111.473391) (xy 135.76049 111.473389) (xy 135.760489 111.473387)\r\n\t\t\t\t(xy 135.676613 111.389511) (xy 135.67661 111.389509) (xy 135.676608 111.389507) (xy 135.573889 111.330202)\r\n\t\t\t\t(xy 135.57389 111.330202) (xy 135.535065 111.319799) (xy 135.459309 111.2995) (xy 135.340691 111.2995)\r\n\t\t\t\t(xy 135.270567 111.318289) (xy 135.226109 111.330202) (xy 135.123391 111.389507) (xy 135.039507 111.473391)\r\n\t\t\t\t(xy 134.980202 111.576109) (xy 134.963215 111.639507) (xy 134.9495 111.690691) (xy 134.9495 111.809309)\r\n\t\t\t\t(xy 134.968496 111.880201) (xy 134.980467 111.924877) (xy 134.977265 111.985978) (xy 134.938759 112.033528)\r\n\t\t\t\t(xy 134.88484 112.0495) (xy 95.844769 112.0495) (xy 95.786578 112.030593) (xy 95.774765 112.020504)\r\n\t\t\t\t(xy 94.779496 111.025235) (xy 94.751719 110.970718) (xy 94.7505 110.955231) (xy 94.7505 110.840692)\r\n\t\t\t\t(xy 94.7505 110.840691) (xy 94.719799 110.726114) (xy 94.719797 110.726111) (xy 94.719797 110.726109)\r\n\t\t\t\t(xy 94.660492 110.623391) (xy 94.66049 110.623389) (xy 94.660489 110.623387) (xy 94.576613 110.539511)\r\n\t\t\t\t(xy 9' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'4.57661 110.539509) (xy 94.576608 110.539507) (xy 94.473889 110.480202) (xy 94.47389 110.480202)\r\n\t\t\t\t(xy 94.460351 110.476574) (xy 94.359309 110.4495) (xy 94.240691 110.4495) (xy 94.170567 110.468289)\r\n\t\t\t\t(xy 94.126109 110.480202) (xy 94.023391 110.539507) (xy 93.939507 110.623391) (xy 93.880202 110.726109)\r\n\t\t\t\t(xy 93.880201 110.726114) (xy 93.8495 110.840691) (xy 93.8495 110.959309) (xy 93.857304 110.988434)\r\n\t\t\t\t(xy 93.880202 111.07389) (xy 93.939507 111.176608) (xy 93.939509 111.17661) (xy 93.939511 111.176613)\r\n\t\t\t\t(xy 94.023387 111.260489) (xy 94.023389 111.26049) (xy 94.023391 111.260492) (xy 94.12611 111.319797)\r\n\t\t\t\t(xy 94.126111 111.319797) (xy 94.126114 111.319799) (xy 94.240691 111.3505) (xy 94.240693 111.3505)\r\n\t\t\t\t(xy 94.355231 111.3505) (xy 94.413422 111.369407) (xy 94.425235 111.379496) (xy 95.487636 112.441897)\r\n\t\t\t\t(xy 95.487635 112.441897) (xy 95.546634 112.500895) (xy 95.574412 112.555411) (xy 95.564841 112.615843)\r\n\t\t\t\t(xy 95.562368 112.620399) (xy 95.530201 112.676112) (xy 95.510269 112.7505) (xy 95.4995 112.790691)\r\n\t\t\t\t(xy 95.4995 112.909309) (xy 95.516761 112.973728) (xy 95.530202 113.02389) (xy 95.589507 113.126608)\r\n\t\t\t\t(xy 95.589509 113.12661) (xy 95.589511 113.126613) (xy 95.673387 113.210489) (xy 95.673389 113.21049)\r\n\t\t\t\t(xy 95.673391 113.210492) (xy 95.77611 113.269797) (xy 95.776111 113.269797) (xy 95.776114 113.269799)\r\n\t\t\t\t(xy 95.890691 113.3005) (xy 95.890693 113.3005) (xy 96.009307 113.3005) (xy 96.009309 113.3005)\r\n\t\t\t\t(xy 96.123886 113.269799) (xy 96.123888 113.269797) (xy 96.12389 113.269797) (xy 96.226608 113.210492)\r\n\t\t\t\t(xy 96.226608 113.210491) (xy 96.226613 113.210489) (xy 96.307607 113.129494) (xy 96.362122 113.101719)\r\n\t\t\t\t(xy 96.377609 113.1005) (xy 97.048165 113.1005) (xy 97.122995 113.069504) (xy 97.140233 113.062364)\r\n\t\t\t\t(xy 97.273099 112.929496) (xy 97.280215 112.92587) (xy 97.284912 112.919407) (xy 97.306962 112.912242)\r\n\t\t\t\t(xy 97.327616 112.901719) (xy 97.343103 112.9005) (xy 97.506232 112.9005) (xy 97.564423 112.919407)\r\n\t\t\t\t(xy 97.600387 112.968907) (xy 97.600387 113.030093) (xy 97.576235 113.069504) (xy 97.125234 113.520504)\r\n\t\t\t\t(xy 97.070718 113.548281) (xy 97.055231 113.5495) (xy 90.727609 113.5495) (xy 90.669418 113.530593)\r\n\t\t\t\t(xy 90.657611 113.520509) (xy 90.576613 113.439511) (xy 90.57661 113.439509) (xy 90.576608 113.439507)\r\n\t\t\t\t(xy 90.473889 113.380202) (xy 90.47389 113.380202) (xy 90.460351 113.376574) (xy 90.359309 113.3495)\r\n\t\t\t\t(xy 90.240691 113.3495) (xy 90.170567 113.368289) (xy 90.126109 113.380202) (xy 90.023391 113.439507)\r\n\t\t\t\t(xy 89.939507 113.523391) (xy 89.880202 113.626109) (xy 89.880201 113.626114) (xy 89.8495 113.740691)\r\n\t\t\t\t(xy 74.0005 113.740691) (xy 74.0005 112.399) (xy 74.019407 112.340809) (xy 74.068907 112.304845)\r\n\t\t\t\t(xy 74.0995 112.3) (xy 82.899999 112.3) (xy 82.9 112.3) (xy 82.9 111.940691) (xy 83.5495 111.940691)\r\n\t\t\t\t(xy 83.5495 112.059309) (xy 83.573667 112.1495) (xy 83.580202 112.17389) (xy 83.639507 112.276608)\r\n\t\t\t\t(xy 83.639509 112.27661) (xy 83.639511 112.276613) (xy 83.723387 112.360489) (xy 83.723389 112.36049)\r\n\t\t\t\t(xy 83.723391 112.360492) (xy 83.82611 112.419797) (xy 83.826111 112.419797) (xy 83.826114 112.419799)\r\n\t\t\t\t(xy 83.940691 112.4505) (xy 83.940693 112.4505) (xy 84.059307 112.4505) (xy 84.059309 112.4505)\r\n\t\t\t\t(xy 84.173886 112.419799) (xy 84.173888 112.419797) (xy 84.17389 112.419797) (xy 84.276608 112.360492)\r\n\t\t\t\t(xy 84.276608 112.360491) (xy 84.276613 112.360489) (xy 84.360489 112.276613) (xy 84.38191 112.239511)\r\n\t\t\t\t(xy 84.419797 112.17389) (xy 84.419797 112.173888) (xy 84.419799 112.173886) (xy 84.4505 112.059309)\r\n\t\t\t\t(xy 84.4505 111.940691) (xy 87.5495 111.940691) (xy 87.5495 112.059309) (xy 87.573667 112.1495)\r\n\t\t\t\t(xy 87.580202 112.17389) (xy 87.639507 112.276608) (xy 87.639509 112.27661) (xy 87.639511 112.276613)\r\n\t\t\t\t(xy 87.723387 112.360489) (xy 87.723389 112.36049) (xy 87.723391 112.360492) (xy 87.82611 112.419797)\r\n\t\t\t\t(xy 87.826111 112.419797) (xy 87.826114 112.419799) (xy 87.940691 112.4505) (xy 87.940693 112.4505)\r\n\t\t\t\t(xy 88.059307 112.4505) (xy 88.059309 112.4505) (xy 88.173886 112.419799) (xy 88.173888 112.419797)\r\n\t\t\t\t(xy 88.17389 112.419797) (xy 88.276608 112.360492) (xy 88.276608 112.360491) (xy 88.276613 112.360489)\r\n\t\t\t\t(xy 88.360489 112.276613) (xy 88.38191 112.239511) (xy 88.419797 112.17389) (xy 88.419797 112.173888)\r\n\t\t\t\t(xy 88.419799 112.173886) (xy 88.4505 112.059309) (xy 88.4505 111.940691) (xy 91.5495 111.940691)\r\n\t\t\t\t(xy 91.5495 112.059309) (xy 91.573667 112.1495) (xy 91.580202 112.17389) (xy 91.639507 112.276608)\r\n\t\t\t\t(xy 91.639509 112.27661) (xy 91.639511 112.276613) (xy 91.723387 112.360489) (xy 91.723389 112.36049)\r\n\t\t\t\t(xy 91.723391 112.360492) (xy 91.82611 112.419797) (xy 91.826111 112.419797) (xy 91.826114 112.419799)\r\n\t\t\t\t(xy 91.940691 112.4505) (xy 91.940693 112.4505) (xy 92.059307 112.4505) (xy 92.059309 112.4505)\r\n\t\t\t\t(xy 92.173886 112.419799) (xy 92.173888 112.419797) (xy 92.17389 112.419797) (xy 92.276608 112.360492)\r\n\t\t\t\t(xy 92.276608 112.360491) (xy 92.276613 112.360489) (xy 92.360489 112.276613) (xy 92.38191 112.239511)\r\n\t\t\t\t(xy 92.419797 112.17389) (xy 92.419797 112.173888) (xy 92.419799 112.173886) (xy 92.4505 112.059309)\r\n\t\t\t\t(xy 92.4505 111.940691) (xy 92.419799 111.826114) (xy 92.419797 111.826111) (xy 92.419797 111.826109)\r\n\t\t\t\t(xy 92.360492 111.723391) (xy 92.36049 111.723389) (xy 92.360489 111.723387) (xy 92.276613 111.639511)\r\n\t\t\t\t(xy 92.27661 111.639509) (xy 92.276608 111.639507) (xy 92.173889 111.580202) (xy 92.17389 111.580202)\r\n\t\t\t\t(xy 92.158615 111.576109) (xy 92.059309 111.5495) (xy 91.940691 111.5495) (xy 91.870567 111.568289)\r\n\t\t\t\t(xy 91.826109 111.580202) (xy 91.723391 111.639507) (xy 91.639507 111.723391) (xy 91.580202 111.826109)\r\n\t\t\t\t(xy 91.569435 111.866293) (xy 91.5495 111.940691) (xy 88.4505 111.940691) (xy 88.419799 111.826114)\r\n\t\t\t\t(xy 88.419797 111.826111) (xy 88.419797 111.826109) (xy 88.360492 111.723391) (xy 88.36049 111.723389)\r\n\t\t\t\t(xy 88.360489 111.723387) (xy 88.276613 111.639511) (xy 88.27661 111.639509) (xy 88.276608 111.639507)\r\n\t\t\t\t(xy 88.173889 111.580202) (xy 88.17389 111.580202) (xy 88.158615 111.576109) (xy 88.059309 111.5495)\r\n\t\t\t\t(xy 87.940691 111.5495) (xy 87.870567 111.568289) (xy 87.826109 111.580202) (xy 87.723391 111.639507)\r\n\t\t\t\t(xy 87.639507 111.723391) (xy 87.580202 111.826109) (xy 87.569435 111.866293) (xy 87.5495 111.940691)\r\n\t\t\t\t(xy 84.4505 111.940691) (xy 84.419799 111.826114) (xy 84.419797 111.826111) (xy 84.419797 111.826109)\r\n\t\t\t\t(xy 84.360492 111.723391) (xy 84.36049 111.723389) (xy 84.360489 111.723387) (xy 84.276613 111.639511)\r\n\t\t\t\t(xy 84.27661 111.639509) (xy 84.276608 111.639507) (xy 84.173889 111.580202) (xy 84.17389 111.580202)\r\n\t\t\t\t(xy 84.158615 111.576109) (xy 84.059309 111.5495) (xy 83.940691 111.5495) (xy 83.870567 111.568289)\r\n\t\t\t\t(xy 83.826109 111.580202) (xy 83.723391 111.639507) (xy 83.639507 111.723391) (xy 83.580202 111.826109)\r\n\t\t\t\t(xy 83.569435 111.866293) (xy 83.5495 111.940691) (xy 82.9 111.940691) (xy 82.9 109.940691) (xy 139.7495 109.940691)\r\n\t\t\t\t(xy 139.7495 110.059309) (xy 139.776574 110.160351) (xy 139.780202 110.17389) (xy 139.839507 110.276608)\r\n\t\t\t\t(xy 139.839509 110.27661) (xy 139.839511 110.276613) (xy 139.923387 110.360489) (xy 139.923389 110.36049)\r\n\t\t\t\t(xy 139.923391 110.360492) (xy 140.02611 110.419797) (xy 140.026111 110.419797) (xy 140.026114 110.419799)\r\n\t\t\t\t(xy 140.140691 110.4505) (xy 140.140693 110.4505) (xy 140.259307 110.4505) (xy 140.259309 110.4505)\r\n\t\t\t\t(xy 140.373886 110.419799) (xy 140.373888 110.419797) (xy 140.37389 110.419797) (xy 140.476608 110.360492)\r\n\t\t\t\t(xy 140.476608 110.360491) (xy 140.476613 110.360489) (xy 140.560489 110.276613) (xy 140.619799 110.173886)\r\n\t\t\t\t(xy 140.6505 110.059309) (xy 140.6505 109.940691) (xy 141.3495 109.940691) (xy 141.3495 110.059309)\r\n\t\t\t\t(xy 141.376574 110.160351) (xy 141.380202 110.17389) (xy 141.439507 110.276608) (xy 141.439509 110.27661)\r\n\t\t\t\t(xy 141.439511 110.276613) (xy 141.523387 110.360489) (xy 141.523389 110.36049) (xy 141.523391 110.360492)\r\n\t\t\t\t(xy 141.62611 110.419797) (xy 141.626111 110.419797) (xy 141.626114 110.419799) (xy 141.740691 110.4505)\r\n\t\t\t\t(xy 141.740693 110.4505) (xy 141.859307 110.4505) (xy 141.859' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'309 110.4505) (xy 141.973886 110.419799)\r\n\t\t\t\t(xy 141.973888 110.419797) (xy 141.97389 110.419797) (xy 142.076608 110.360492) (xy 142.076608 110.360491)\r\n\t\t\t\t(xy 142.076613 110.360489) (xy 142.160489 110.276613) (xy 142.219799 110.173886) (xy 142.2505 110.059309)\r\n\t\t\t\t(xy 142.2505 109.940691) (xy 142.7495 109.940691) (xy 142.7495 110.059309) (xy 142.776574 110.160351)\r\n\t\t\t\t(xy 142.780202 110.17389) (xy 142.839507 110.276608) (xy 142.839509 110.27661) (xy 142.839511 110.276613)\r\n\t\t\t\t(xy 142.923387 110.360489) (xy 142.923389 110.36049) (xy 142.923391 110.360492) (xy 143.02611 110.419797)\r\n\t\t\t\t(xy 143.026111 110.419797) (xy 143.026114 110.419799) (xy 143.140691 110.4505) (xy 143.140693 110.4505)\r\n\t\t\t\t(xy 143.259307 110.4505) (xy 143.259309 110.4505) (xy 143.373886 110.419799) (xy 143.373888 110.419797)\r\n\t\t\t\t(xy 143.37389 110.419797) (xy 143.476608 110.360492) (xy 143.476608 110.360491) (xy 143.476613 110.360489)\r\n\t\t\t\t(xy 143.560489 110.276613) (xy 143.619799 110.173886) (xy 143.6505 110.059309) (xy 143.6505 109.940691)\r\n\t\t\t\t(xy 144.3495 109.940691) (xy 144.3495 110.059309) (xy 144.376574 110.160351) (xy 144.380202 110.17389)\r\n\t\t\t\t(xy 144.439507 110.276608) (xy 144.439509 110.27661) (xy 144.439511 110.276613) (xy 144.523387 110.360489)\r\n\t\t\t\t(xy 144.523389 110.36049) (xy 144.523391 110.360492) (xy 144.62611 110.419797) (xy 144.626111 110.419797)\r\n\t\t\t\t(xy 144.626114 110.419799) (xy 144.740691 110.4505) (xy 144.740693 110.4505) (xy 144.859307 110.4505)\r\n\t\t\t\t(xy 144.859309 110.4505) (xy 144.973886 110.419799) (xy 144.973888 110.419797) (xy 144.97389 110.419797)\r\n\t\t\t\t(xy 145.076608 110.360492) (xy 145.076608 110.360491) (xy 145.076613 110.360489) (xy 145.160489 110.276613)\r\n\t\t\t\t(xy 145.219799 110.173886) (xy 145.2505 110.059309) (xy 145.2505 109.940691) (xy 145.7495 109.940691)\r\n\t\t\t\t(xy 145.7495 110.059309) (xy 145.776574 110.160351) (xy 145.780202 110.17389) (xy 145.839507 110.276608)\r\n\t\t\t\t(xy 145.839509 110.27661) (xy 145.839511 110.276613) (xy 145.923387 110.360489) (xy 145.923389 110.36049)\r\n\t\t\t\t(xy 145.923391 110.360492) (xy 146.02611 110.419797) (xy 146.026111 110.419797) (xy 146.026114 110.419799)\r\n\t\t\t\t(xy 146.140691 110.4505) (xy 146.140693 110.4505) (xy 146.259307 110.4505) (xy 146.259309 110.4505)\r\n\t\t\t\t(xy 146.373886 110.419799) (xy 146.373888 110.419797) (xy 146.37389 110.419797) (xy 146.476608 110.360492)\r\n\t\t\t\t(xy 146.476608 110.360491) (xy 146.476613 110.360489) (xy 146.560489 110.276613) (xy 146.619799 110.173886)\r\n\t\t\t\t(xy 146.6505 110.059309) (xy 146.6505 109.940691) (xy 147.3495 109.940691) (xy 147.3495 110.059309)\r\n\t\t\t\t(xy 147.376574 110.160351) (xy 147.380202 110.17389) (xy 147.439507 110.276608) (xy 147.439509 110.27661)\r\n\t\t\t\t(xy 147.439511 110.276613) (xy 147.523387 110.360489) (xy 147.523389 110.36049) (xy 147.523391 110.360492)\r\n\t\t\t\t(xy 147.62611 110.419797) (xy 147.626111 110.419797) (xy 147.626114 110.419799) (xy 147.740691 110.4505)\r\n\t\t\t\t(xy 147.740693 110.4505) (xy 147.859307 110.4505) (xy 147.859309 110.4505) (xy 147.973886 110.419799)\r\n\t\t\t\t(xy 147.973888 110.419797) (xy 147.97389 110.419797) (xy 148.076608 110.360492) (xy 148.076608 110.360491)\r\n\t\t\t\t(xy 148.076613 110.360489) (xy 148.160489 110.276613) (xy 148.219799 110.173886) (xy 148.2505 110.059309)\r\n\t\t\t\t(xy 148.2505 109.940691) (xy 148.219799 109.826114) (xy 148.219797 109.826111) (xy 148.219797 109.826109)\r\n\t\t\t\t(xy 148.160492 109.723391) (xy 148.16049 109.723389) (xy 148.160489 109.723387) (xy 148.076613 109.639511)\r\n\t\t\t\t(xy 148.07661 109.639509) (xy 148.076608 109.639507) (xy 147.973889 109.580202) (xy 147.97389 109.580202)\r\n\t\t\t\t(xy 147.960351 109.576574) (xy 147.859309 109.5495) (xy 147.740691 109.5495) (xy 147.670567 109.568289)\r\n\t\t\t\t(xy 147.626109 109.580202) (xy 147.523391 109.639507) (xy 147.439507 109.723391) (xy 147.380202 109.826109)\r\n\t\t\t\t(xy 147.380201 109.826114) (xy 147.3495 109.940691) (xy 146.6505 109.940691) (xy 146.619799 109.826114)\r\n\t\t\t\t(xy 146.619797 109.826111) (xy 146.619797 109.826109) (xy 146.560492 109.723391) (xy 146.56049 109.723389)\r\n\t\t\t\t(xy 146.560489 109.723387) (xy 146.476613 109.639511) (xy 146.47661 109.639509) (xy 146.476608 109.639507)\r\n\t\t\t\t(xy 146.373889 109.580202) (xy 146.37389 109.580202) (xy 146.360351 109.576574) (xy 146.259309 109.5495)\r\n\t\t\t\t(xy 146.140691 109.5495) (xy 146.070567 109.568289) (xy 146.026109 109.580202) (xy 145.923391 109.639507)\r\n\t\t\t\t(xy 145.839507 109.723391) (xy 145.780202 109.826109) (xy 145.780201 109.826114) (xy 145.7495 109.940691)\r\n\t\t\t\t(xy 145.2505 109.940691) (xy 145.219799 109.826114) (xy 145.219797 109.826111) (xy 145.219797 109.826109)\r\n\t\t\t\t(xy 145.160492 109.723391) (xy 145.16049 109.723389) (xy 145.160489 109.723387) (xy 145.076613 109.639511)\r\n\t\t\t\t(xy 145.07661 109.639509) (xy 145.076608 109.639507) (xy 144.973889 109.580202) (xy 144.97389 109.580202)\r\n\t\t\t\t(xy 144.960351 109.576574) (xy 144.859309 109.5495) (xy 144.740691 109.5495) (xy 144.670567 109.568289)\r\n\t\t\t\t(xy 144.626109 109.580202) (xy 144.523391 109.639507) (xy 144.439507 109.723391) (xy 144.380202 109.826109)\r\n\t\t\t\t(xy 144.380201 109.826114) (xy 144.3495 109.940691) (xy 143.6505 109.940691) (xy 143.619799 109.826114)\r\n\t\t\t\t(xy 143.619797 109.826111) (xy 143.619797 109.826109) (xy 143.560492 109.723391) (xy 143.56049 109.723389)\r\n\t\t\t\t(xy 143.560489 109.723387) (xy 143.476613 109.639511) (xy 143.47661 109.639509) (xy 143.476608 109.639507)\r\n\t\t\t\t(xy 143.373889 109.580202) (xy 143.37389 109.580202) (xy 143.360351 109.576574) (xy 143.259309 109.5495)\r\n\t\t\t\t(xy 143.140691 109.5495) (xy 143.070567 109.568289) (xy 143.026109 109.580202) (xy 142.923391 109.639507)\r\n\t\t\t\t(xy 142.839507 109.723391) (xy 142.780202 109.826109) (xy 142.780201 109.826114) (xy 142.7495 109.940691)\r\n\t\t\t\t(xy 142.2505 109.940691) (xy 142.219799 109.826114) (xy 142.219797 109.826111) (xy 142.219797 109.826109)\r\n\t\t\t\t(xy 142.160492 109.723391) (xy 142.16049 109.723389) (xy 142.160489 109.723387) (xy 142.076613 109.639511)\r\n\t\t\t\t(xy 142.07661 109.639509) (xy 142.076608 109.639507) (xy 141.973889 109.580202) (xy 141.97389 109.580202)\r\n\t\t\t\t(xy 141.960351 109.576574) (xy 141.859309 109.5495) (xy 141.740691 109.5495) (xy 141.670567 109.568289)\r\n\t\t\t\t(xy 141.626109 109.580202) (xy 141.523391 109.639507) (xy 141.439507 109.723391) (xy 141.380202 109.826109)\r\n\t\t\t\t(xy 141.380201 109.826114) (xy 141.3495 109.940691) (xy 140.6505 109.940691) (xy 140.619799 109.826114)\r\n\t\t\t\t(xy 140.619797 109.826111) (xy 140.619797 109.826109) (xy 140.560492 109.723391) (xy 140.56049 109.723389)\r\n\t\t\t\t(xy 140.560489 109.723387) (xy 140.476613 109.639511) (xy 140.47661 109.639509) (xy 140.476608 109.639507)\r\n\t\t\t\t(xy 140.373889 109.580202) (xy 140.37389 109.580202) (xy 140.360351 109.576574) (xy 140.259309 109.5495)\r\n\t\t\t\t(xy 140.140691 109.5495) (xy 140.070567 109.568289) (xy 140.026109 109.580202) (xy 139.923391 109.639507)\r\n\t\t\t\t(xy 139.839507 109.723391) (xy 139.780202 109.826109) (xy 139.780201 109.826114) (xy 139.7495 109.940691)\r\n\t\t\t\t(xy 82.9 109.940691) (xy 82.9 107.940691) (xy 83.5495 107.940691) (xy 83.5495 108.059309) (xy 83.576574 108.160351)\r\n\t\t\t\t(xy 83.580202 108.17389) (xy 83.639507 108.276608) (xy 83.639509 108.27661) (xy 83.639511 108.276613)\r\n\t\t\t\t(xy 83.723387 108.360489) (xy 83.723389 108.36049) (xy 83.723391 108.360492) (xy 83.82611 108.419797)\r\n\t\t\t\t(xy 83.826111 108.419797) (xy 83.826114 108.419799) (xy 83.940691 108.4505) (xy 83.940693 108.4505)\r\n\t\t\t\t(xy 84.059307 108.4505) (xy 84.059309 108.4505) (xy 84.173886 108.419799) (xy 84.173888 108.419797)\r\n\t\t\t\t(xy 84.17389 108.419797) (xy 84.276608 108.360492) (xy 84.276608 108.360491) (xy 84.276613 108.360489)\r\n\t\t\t\t(xy 84.360489 108.276613) (xy 84.419799 108.173886) (xy 84.4505 108.059309) (xy 84.4505 107.940691)\r\n\t\t\t\t(xy 87.5495 107.940691) (xy 87.5495 108.059309) (xy 87.576574 108.160351) (xy 87.580202 108.17389)\r\n\t\t\t\t(xy 87.639507 108.276608) (xy 87.639509 108.27661) (xy 87.639511 108.276613) (xy 87.723387 108.360489)\r\n\t\t\t\t(xy 87.723389 108.36049) (xy 87.723391 108.360492) (xy 87.82611 108.419797) (xy 87.826111 108.419797)\r\n\t\t\t\t(xy 87.826114 108.419799) (xy 87.940691 108.4505) (xy 87.940693 108.4505) (xy 88.059307 108.4505)\r\n\t\t\t\t(xy 88.059309 108.4505) (xy 88.173886 108.419799) (xy 88.173888 108.419797) (xy 88.17389 108.419797)\r\n\t\t\t\t(xy 88.' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'276608 108.360492) (xy 88.276608 108.360491) (xy 88.276613 108.360489) (xy 88.360489 108.276613)\r\n\t\t\t\t(xy 88.419799 108.173886) (xy 88.4505 108.059309) (xy 88.4505 107.940691) (xy 91.5495 107.940691)\r\n\t\t\t\t(xy 91.5495 108.059309) (xy 91.576574 108.160351) (xy 91.580202 108.17389) (xy 91.639507 108.276608)\r\n\t\t\t\t(xy 91.639509 108.27661) (xy 91.639511 108.276613) (xy 91.723387 108.360489) (xy 91.723389 108.36049)\r\n\t\t\t\t(xy 91.723391 108.360492) (xy 91.82611 108.419797) (xy 91.826111 108.419797) (xy 91.826114 108.419799)\r\n\t\t\t\t(xy 91.940691 108.4505) (xy 91.940693 108.4505) (xy 92.059307 108.4505) (xy 92.059309 108.4505)\r\n\t\t\t\t(xy 92.173886 108.419799) (xy 92.173888 108.419797) (xy 92.17389 108.419797) (xy 92.276608 108.360492)\r\n\t\t\t\t(xy 92.276608 108.360491) (xy 92.276613 108.360489) (xy 92.360489 108.276613) (xy 92.419799 108.173886)\r\n\t\t\t\t(xy 92.4505 108.059309) (xy 92.4505 107.940691) (xy 95.5495 107.940691) (xy 95.5495 108.059309)\r\n\t\t\t\t(xy 95.576574 108.160351) (xy 95.580202 108.17389) (xy 95.639507 108.276608) (xy 95.639509 108.27661)\r\n\t\t\t\t(xy 95.639511 108.276613) (xy 95.723387 108.360489) (xy 95.723389 108.36049) (xy 95.723391 108.360492)\r\n\t\t\t\t(xy 95.82611 108.419797) (xy 95.826111 108.419797) (xy 95.826114 108.419799) (xy 95.940691 108.4505)\r\n\t\t\t\t(xy 95.940693 108.4505) (xy 96.059307 108.4505) (xy 96.059309 108.4505) (xy 96.173886 108.419799)\r\n\t\t\t\t(xy 96.173888 108.419797) (xy 96.17389 108.419797) (xy 96.276608 108.360492) (xy 96.276608 108.360491)\r\n\t\t\t\t(xy 96.276613 108.360489) (xy 96.360489 108.276613) (xy 96.419799 108.173886) (xy 96.4505 108.059309)\r\n\t\t\t\t(xy 96.4505 107.940691) (xy 99.5495 107.940691) (xy 99.5495 108.059309) (xy 99.576574 108.160351)\r\n\t\t\t\t(xy 99.580202 108.17389) (xy 99.639507 108.276608) (xy 99.639509 108.27661) (xy 99.639511 108.276613)\r\n\t\t\t\t(xy 99.723387 108.360489) (xy 99.723389 108.36049) (xy 99.723391 108.360492) (xy 99.82611 108.419797)\r\n\t\t\t\t(xy 99.826111 108.419797) (xy 99.826114 108.419799) (xy 99.940691 108.4505) (xy 99.940693 108.4505)\r\n\t\t\t\t(xy 100.059307 108.4505) (xy 100.059309 108.4505) (xy 100.173886 108.419799) (xy 100.173888 108.419797)\r\n\t\t\t\t(xy 100.17389 108.419797) (xy 100.276608 108.360492) (xy 100.276608 108.360491) (xy 100.276613 108.360489)\r\n\t\t\t\t(xy 100.360489 108.276613) (xy 100.419799 108.173886) (xy 100.4505 108.059309) (xy 100.4505 107.940691)\r\n\t\t\t\t(xy 103.5495 107.940691) (xy 103.5495 108.059309) (xy 103.576574 108.160351) (xy 103.580202 108.17389)\r\n\t\t\t\t(xy 103.639507 108.276608) (xy 103.639509 108.27661) (xy 103.639511 108.276613) (xy 103.723387 108.360489)\r\n\t\t\t\t(xy 103.723389 108.36049) (xy 103.723391 108.360492) (xy 103.82611 108.419797) (xy 103.826111 108.419797)\r\n\t\t\t\t(xy 103.826114 108.419799) (xy 103.940691 108.4505) (xy 103.940693 108.4505) (xy 104.059307 108.4505)\r\n\t\t\t\t(xy 104.059309 108.4505) (xy 104.173886 108.419799) (xy 104.173888 108.419797) (xy 104.17389 108.419797)\r\n\t\t\t\t(xy 104.276608 108.360492) (xy 104.276608 108.360491) (xy 104.276613 108.360489) (xy 104.360489 108.276613)\r\n\t\t\t\t(xy 104.419799 108.173886) (xy 104.4505 108.059309) (xy 104.4505 107.940691) (xy 107.5495 107.940691)\r\n\t\t\t\t(xy 107.5495 108.059309) (xy 107.576574 108.160351) (xy 107.580202 108.17389) (xy 107.639507 108.276608)\r\n\t\t\t\t(xy 107.639509 108.27661) (xy 107.639511 108.276613) (xy 107.723387 108.360489) (xy 107.723389 108.36049)\r\n\t\t\t\t(xy 107.723391 108.360492) (xy 107.82611 108.419797) (xy 107.826111 108.419797) (xy 107.826114 108.419799)\r\n\t\t\t\t(xy 107.940691 108.4505) (xy 107.940693 108.4505) (xy 108.059307 108.4505) (xy 108.059309 108.4505)\r\n\t\t\t\t(xy 108.173886 108.419799) (xy 108.173888 108.419797) (xy 108.17389 108.419797) (xy 108.276608 108.360492)\r\n\t\t\t\t(xy 108.276608 108.360491) (xy 108.276613 108.360489) (xy 108.360489 108.276613) (xy 108.419799 108.173886)\r\n\t\t\t\t(xy 108.4505 108.059309) (xy 108.4505 107.940691) (xy 111.5495 107.940691) (xy 111.5495 108.059309)\r\n\t\t\t\t(xy 111.576574 108.160351) (xy 111.580202 108.17389) (xy 111.639507 108.276608) (xy 111.639509 108.27661)\r\n\t\t\t\t(xy 111.639511 108.276613) (xy 111.723387 108.360489) (xy 111.723389 108.36049) (xy 111.723391 108.360492)\r\n\t\t\t\t(xy 111.82611 108.419797) (xy 111.826111 108.419797) (xy 111.826114 108.419799) (xy 111.940691 108.4505)\r\n\t\t\t\t(xy 111.940693 108.4505) (xy 112.059307 108.4505) (xy 112.059309 108.4505) (xy 112.173886 108.419799)\r\n\t\t\t\t(xy 112.173888 108.419797) (xy 112.17389 108.419797) (xy 112.276608 108.360492) (xy 112.276608 108.360491)\r\n\t\t\t\t(xy 112.276613 108.360489) (xy 112.360489 108.276613) (xy 112.419799 108.173886) (xy 112.4505 108.059309)\r\n\t\t\t\t(xy 112.4505 107.940691) (xy 115.5495 107.940691) (xy 115.5495 108.059309) (xy 115.576574 108.160351)\r\n\t\t\t\t(xy 115.580202 108.17389) (xy 115.639507 108.276608) (xy 115.639509 108.27661) (xy 115.639511 108.276613)\r\n\t\t\t\t(xy 115.723387 108.360489) (xy 115.723389 108.36049) (xy 115.723391 108.360492) (xy 115.82611 108.419797)\r\n\t\t\t\t(xy 115.826111 108.419797) (xy 115.826114 108.419799) (xy 115.940691 108.4505) (xy 115.940693 108.4505)\r\n\t\t\t\t(xy 116.059307 108.4505) (xy 116.059309 108.4505) (xy 116.173886 108.419799) (xy 116.173888 108.419797)\r\n\t\t\t\t(xy 116.17389 108.419797) (xy 116.276608 108.360492) (xy 116.276608 108.360491) (xy 116.276613 108.360489)\r\n\t\t\t\t(xy 116.360489 108.276613) (xy 116.419799 108.173886) (xy 116.4505 108.059309) (xy 116.4505 107.940691)\r\n\t\t\t\t(xy 119.5495 107.940691) (xy 119.5495 108.059309) (xy 119.576574 108.160351) (xy 119.580202 108.17389)\r\n\t\t\t\t(xy 119.639507 108.276608) (xy 119.639509 108.27661) (xy 119.639511 108.276613) (xy 119.723387 108.360489)\r\n\t\t\t\t(xy 119.723389 108.36049) (xy 119.723391 108.360492) (xy 119.82611 108.419797) (xy 119.826111 108.419797)\r\n\t\t\t\t(xy 119.826114 108.419799) (xy 119.940691 108.4505) (xy 119.940693 108.4505) (xy 120.059307 108.4505)\r\n\t\t\t\t(xy 120.059309 108.4505) (xy 120.173886 108.419799) (xy 120.173888 108.419797) (xy 120.17389 108.419797)\r\n\t\t\t\t(xy 120.276608 108.360492) (xy 120.276608 108.360491) (xy 120.276613 108.360489) (xy 120.360489 108.276613)\r\n\t\t\t\t(xy 120.419799 108.173886) (xy 120.4505 108.059309) (xy 120.4505 107.940691) (xy 123.5495 107.940691)\r\n\t\t\t\t(xy 123.5495 108.059309) (xy 123.576574 108.160351) (xy 123.580202 108.17389) (xy 123.639507 108.276608)\r\n\t\t\t\t(xy 123.639509 108.27661) (xy 123.639511 108.276613) (xy 123.723387 108.360489) (xy 123.723389 108.36049)\r\n\t\t\t\t(xy 123.723391 108.360492) (xy 123.82611 108.419797) (xy 123.826111 108.419797) (xy 123.826114 108.419799)\r\n\t\t\t\t(xy 123.940691 108.4505) (xy 123.940693 108.4505) (xy 124.059307 108.4505) (xy 124.059309 108.4505)\r\n\t\t\t\t(xy 124.173886 108.419799) (xy 124.173888 108.419797) (xy 124.17389 108.419797) (xy 124.276608 108.360492)\r\n\t\t\t\t(xy 124.276608 108.360491) (xy 124.276613 108.360489) (xy 124.360489 108.276613) (xy 124.419799 108.173886)\r\n\t\t\t\t(xy 124.4505 108.059309) (xy 124.4505 107.940691) (xy 127.5495 107.940691) (xy 127.5495 108.059309)\r\n\t\t\t\t(xy 127.576574 108.160351) (xy 127.580202 108.17389) (xy 127.639507 108.276608) (xy 127.639509 108.27661)\r\n\t\t\t\t(xy 127.639511 108.276613) (xy 127.723387 108.360489) (xy 127.723389 108.36049) (xy 127.723391 108.360492)\r\n\t\t\t\t(xy 127.82611 108.419797) (xy 127.826111 108.419797) (xy 127.826114 108.419799) (xy 127.940691 108.4505)\r\n\t\t\t\t(xy 127.940693 108.4505) (xy 128.059307 108.4505) (xy 128.059309 108.4505) (xy 128.173886 108.419799)\r\n\t\t\t\t(xy 128.173888 108.419797) (xy 128.17389 108.419797) (xy 128.276608 108.360492) (xy 128.276608 108.360491)\r\n\t\t\t\t(xy 128.276613 108.360489) (xy 128.360489 108.276613) (xy 128.419799 108.173886) (xy 128.4505 108.059309)\r\n\t\t\t\t(xy 128.4505 107.940691) (xy 131.5495 107.940691) (xy 131.5495 108.059309) (xy 131.576574 108.160351)\r\n\t\t\t\t(xy 131.580202 108.17389) (xy 131.639507 108.276608) (xy 131.639509 108.27661) (xy 131.639511 108.276613)\r\n\t\t\t\t(xy 131.723387 108.360489) (xy 131.723389 108.36049) (xy 131.723391 108.360492) (xy 131.82611 108.419797)\r\n\t\t\t\t(xy 131.826111 108.419797) (xy 131.826114 108.419799) (xy 131.940691 108.4505) (xy 131.940693 108.4505)\r\n\t\t\t\t(xy 132.059307 108.4505) (xy 132.059309 108.4505) (xy 132.173886 108.419799) (xy 132.173888 108.419797)\r\n\t\t\t\t(xy 132.17389 108.419797) (xy 132.276608 108.360492) (xy 132.276608 108.360491) (xy 132.276613 108.360489)\r\n\t\t\t\t(xy 132.360489 108.276613) (xy ' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'132.419799 108.173886) (xy 132.4505 108.059309) (xy 132.4505 107.940691)\r\n\t\t\t\t(xy 135.5495 107.940691) (xy 135.5495 108.059309) (xy 135.576574 108.160351) (xy 135.580202 108.17389)\r\n\t\t\t\t(xy 135.639507 108.276608) (xy 135.639509 108.27661) (xy 135.639511 108.276613) (xy 135.723387 108.360489)\r\n\t\t\t\t(xy 135.723389 108.36049) (xy 135.723391 108.360492) (xy 135.82611 108.419797) (xy 135.826111 108.419797)\r\n\t\t\t\t(xy 135.826114 108.419799) (xy 135.940691 108.4505) (xy 135.940693 108.4505) (xy 136.059307 108.4505)\r\n\t\t\t\t(xy 136.059309 108.4505) (xy 136.173886 108.419799) (xy 136.173888 108.419797) (xy 136.17389 108.419797)\r\n\t\t\t\t(xy 136.276608 108.360492) (xy 136.276608 108.360491) (xy 136.276613 108.360489) (xy 136.360489 108.276613)\r\n\t\t\t\t(xy 136.419799 108.173886) (xy 136.4505 108.059309) (xy 136.4505 107.940691) (xy 139.5495 107.940691)\r\n\t\t\t\t(xy 139.5495 108.059309) (xy 139.576574 108.160351) (xy 139.580202 108.17389) (xy 139.639507 108.276608)\r\n\t\t\t\t(xy 139.639509 108.27661) (xy 139.639511 108.276613) (xy 139.723387 108.360489) (xy 139.723389 108.36049)\r\n\t\t\t\t(xy 139.723391 108.360492) (xy 139.82611 108.419797) (xy 139.826111 108.419797) (xy 139.826114 108.419799)\r\n\t\t\t\t(xy 139.940691 108.4505) (xy 139.940693 108.4505) (xy 140.059307 108.4505) (xy 140.059309 108.4505)\r\n\t\t\t\t(xy 140.173886 108.419799) (xy 140.173888 108.419797) (xy 140.17389 108.419797) (xy 140.276608 108.360492)\r\n\t\t\t\t(xy 140.276608 108.360491) (xy 140.276613 108.360489) (xy 140.360489 108.276613) (xy 140.419799 108.173886)\r\n\t\t\t\t(xy 140.4505 108.059309) (xy 140.4505 107.940691) (xy 143.5495 107.940691) (xy 143.5495 108.059309)\r\n\t\t\t\t(xy 143.576574 108.160351) (xy 143.580202 108.17389) (xy 143.639507 108.276608) (xy 143.639509 108.27661)\r\n\t\t\t\t(xy 143.639511 108.276613) (xy 143.723387 108.360489) (xy 143.723389 108.36049) (xy 143.723391 108.360492)\r\n\t\t\t\t(xy 143.82611 108.419797) (xy 143.826111 108.419797) (xy 143.826114 108.419799) (xy 143.940691 108.4505)\r\n\t\t\t\t(xy 143.940693 108.4505) (xy 144.059307 108.4505) (xy 144.059309 108.4505) (xy 144.173886 108.419799)\r\n\t\t\t\t(xy 144.173888 108.419797) (xy 144.17389 108.419797) (xy 144.276608 108.360492) (xy 144.276608 108.360491)\r\n\t\t\t\t(xy 144.276613 108.360489) (xy 144.360489 108.276613) (xy 144.419799 108.173886) (xy 144.4505 108.059309)\r\n\t\t\t\t(xy 144.4505 107.940691) (xy 147.5495 107.940691) (xy 147.5495 108.059309) (xy 147.576574 108.160351)\r\n\t\t\t\t(xy 147.580202 108.17389) (xy 147.639507 108.276608) (xy 147.639509 108.27661) (xy 147.639511 108.276613)\r\n\t\t\t\t(xy 147.723387 108.360489) (xy 147.723389 108.36049) (xy 147.723391 108.360492) (xy 147.82611 108.419797)\r\n\t\t\t\t(xy 147.826111 108.419797) (xy 147.826114 108.419799) (xy 147.940691 108.4505) (xy 147.940693 108.4505)\r\n\t\t\t\t(xy 148.059307 108.4505) (xy 148.059309 108.4505) (xy 148.173886 108.419799) (xy 148.173888 108.419797)\r\n\t\t\t\t(xy 148.17389 108.419797) (xy 148.276608 108.360492) (xy 148.276608 108.360491) (xy 148.276613 108.360489)\r\n\t\t\t\t(xy 148.360489 108.276613) (xy 148.419799 108.173886) (xy 148.4505 108.059309) (xy 148.4505 107.940691)\r\n\t\t\t\t(xy 151.5495 107.940691) (xy 151.5495 108.059309) (xy 151.576574 108.160351) (xy 151.580202 108.17389)\r\n\t\t\t\t(xy 151.639507 108.276608) (xy 151.639509 108.27661) (xy 151.639511 108.276613) (xy 151.723387 108.360489)\r\n\t\t\t\t(xy 151.723389 108.36049) (xy 151.723391 108.360492) (xy 151.82611 108.419797) (xy 151.826111 108.419797)\r\n\t\t\t\t(xy 151.826114 108.419799) (xy 151.940691 108.4505) (xy 151.940693 108.4505) (xy 152.059307 108.4505)\r\n\t\t\t\t(xy 152.059309 108.4505) (xy 152.173886 108.419799) (xy 152.173888 108.419797) (xy 152.17389 108.419797)\r\n\t\t\t\t(xy 152.276608 108.360492) (xy 152.276608 108.360491) (xy 152.276613 108.360489) (xy 152.360489 108.276613)\r\n\t\t\t\t(xy 152.419799 108.173886) (xy 152.4505 108.059309) (xy 152.4505 107.940691) (xy 152.419799 107.826114)\r\n\t\t\t\t(xy 152.419797 107.826111) (xy 152.419797 107.826109) (xy 152.360492 107.723391) (xy 152.36049 107.723389)\r\n\t\t\t\t(xy 152.360489 107.723387) (xy 152.276613 107.639511) (xy 152.27661 107.639509) (xy 152.276608 107.639507)\r\n\t\t\t\t(xy 152.173889 107.580202) (xy 152.17389 107.580202) (xy 152.160351 107.576574) (xy 152.059309 107.5495)\r\n\t\t\t\t(xy 151.940691 107.5495) (xy 151.870567 107.568289) (xy 151.826109 107.580202) (xy 151.723391 107.639507)\r\n\t\t\t\t(xy 151.639507 107.723391) (xy 151.580202 107.826109) (xy 151.580201 107.826114) (xy 151.5495 107.940691)\r\n\t\t\t\t(xy 148.4505 107.940691) (xy 148.419799 107.826114) (xy 148.419797 107.826111) (xy 148.419797 107.826109)\r\n\t\t\t\t(xy 148.360492 107.723391) (xy 148.36049 107.723389) (xy 148.360489 107.723387) (xy 148.276613 107.639511)\r\n\t\t\t\t(xy 148.27661 107.639509) (xy 148.276608 107.639507) (xy 148.173889 107.580202) (xy 148.17389 107.580202)\r\n\t\t\t\t(xy 148.160351 107.576574) (xy 148.059309 107.5495) (xy 147.940691 107.5495) (xy 147.870567 107.568289)\r\n\t\t\t\t(xy 147.826109 107.580202) (xy 147.723391 107.639507) (xy 147.639507 107.723391) (xy 147.580202 107.826109)\r\n\t\t\t\t(xy 147.580201 107.826114) (xy 147.5495 107.940691) (xy 144.4505 107.940691) (xy 144.419799 107.826114)\r\n\t\t\t\t(xy 144.419797 107.826111) (xy 144.419797 107.826109) (xy 144.360492 107.723391) (xy 144.36049 107.723389)\r\n\t\t\t\t(xy 144.360489 107.723387) (xy 144.276613 107.639511) (xy 144.27661 107.639509) (xy 144.276608 107.639507)\r\n\t\t\t\t(xy 144.173889 107.580202) (xy 144.17389 107.580202) (xy 144.160351 107.576574) (xy 144.059309 107.5495)\r\n\t\t\t\t(xy 143.940691 107.5495) (xy 143.870567 107.568289) (xy 143.826109 107.580202) (xy 143.723391 107.639507)\r\n\t\t\t\t(xy 143.639507 107.723391) (xy 143.580202 107.826109) (xy 143.580201 107.826114) (xy 143.5495 107.940691)\r\n\t\t\t\t(xy 140.4505 107.940691) (xy 140.419799 107.826114) (xy 140.419797 107.826111) (xy 140.419797 107.826109)\r\n\t\t\t\t(xy 140.360492 107.723391) (xy 140.36049 107.723389) (xy 140.360489 107.723387) (xy 140.276613 107.639511)\r\n\t\t\t\t(xy 140.27661 107.639509) (xy 140.276608 107.639507) (xy 140.173889 107.580202) (xy 140.17389 107.580202)\r\n\t\t\t\t(xy 140.160351 107.576574) (xy 140.059309 107.5495) (xy 139.940691 107.5495) (xy 139.870567 107.568289)\r\n\t\t\t\t(xy 139.826109 107.580202) (xy 139.723391 107.639507) (xy 139.639507 107.723391) (xy 139.580202 107.826109)\r\n\t\t\t\t(xy 139.580201 107.826114) (xy 139.5495 107.940691) (xy 136.4505 107.940691) (xy 136.419799 107.826114)\r\n\t\t\t\t(xy 136.419797 107.826111) (xy 136.419797 107.826109) (xy 136.360492 107.723391) (xy 136.36049 107.723389)\r\n\t\t\t\t(xy 136.360489 107.723387) (xy 136.276613 107.639511) (xy 136.27661 107.639509) (xy 136.276608 107.639507)\r\n\t\t\t\t(xy 136.173889 107.580202) (xy 136.17389 107.580202) (xy 136.160351 107.576574) (xy 136.059309 107.5495)\r\n\t\t\t\t(xy 135.940691 107.5495) (xy 135.870567 107.568289) (xy 135.826109 107.580202) (xy 135.723391 107.639507)\r\n\t\t\t\t(xy 135.639507 107.723391) (xy 135.580202 107.826109) (xy 135.580201 107.826114) (xy 135.5495 107.940691)\r\n\t\t\t\t(xy 132.4505 107.940691) (xy 132.419799 107.826114) (xy 132.419797 107.826111) (xy 132.419797 107.826109)\r\n\t\t\t\t(xy 132.360492 107.723391) (xy 132.36049 107.723389) (xy 132.360489 107.723387) (xy 132.276613 107.639511)\r\n\t\t\t\t(xy 132.27661 107.639509) (xy 132.276608 107.639507) (xy 132.173889 107.580202) (xy 132.17389 107.580202)\r\n\t\t\t\t(xy 132.160351 107.576574) (xy 132.059309 107.5495) (xy 131.940691 107.5495) (xy 131.870567 107.568289)\r\n\t\t\t\t(xy 131.826109 107.580202) (xy 131.723391 107.639507) (xy 131.639507 107.723391) (xy 131.580202 107.826109)\r\n\t\t\t\t(xy 131.580201 107.826114) (xy 131.5495 107.940691) (xy 128.4505 107.940691) (xy 128.419799 107.826114)\r\n\t\t\t\t(xy 128.419797 107.826111) (xy 128.419797 107.826109) (xy 128.360492 107.723391) (xy 128.36049 107.723389)\r\n\t\t\t\t(xy 128.360489 107.723387) (xy 128.276613 107.639511) (xy 128.27661 107.639509) (xy 128.276608 107.639507)\r\n\t\t\t\t(xy 128.173889 107.580202) (xy 128.17389 107.580202) (xy 128.160351 107.576574) (xy 128.059309 107.5495)\r\n\t\t\t\t(xy 127.940691 107.5495) (xy 127.870567 107.568289) (xy 127.826109 107.580202) (xy 127.723391 107.639507)\r\n\t\t\t\t(xy 127.639507 107.723391) (xy 127.580202 107.826109) (xy 127.580201 107.826114) (xy 127.5495 107.940691)\r\n\t\t\t\t(xy 124.4505 107.940691) (xy 124.419799 107.826114) (xy 124.419797 107.826111) (xy 124.419797 107.826109)\r\n\t\t\t\t(xy 124.360492 107.723391) (xy 124.36049 107.72' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'3389) (xy 124.360489 107.723387) (xy 124.276613 107.639511)\r\n\t\t\t\t(xy 124.27661 107.639509) (xy 124.276608 107.639507) (xy 124.173889 107.580202) (xy 124.17389 107.580202)\r\n\t\t\t\t(xy 124.160351 107.576574) (xy 124.059309 107.5495) (xy 123.940691 107.5495) (xy 123.870567 107.568289)\r\n\t\t\t\t(xy 123.826109 107.580202) (xy 123.723391 107.639507) (xy 123.639507 107.723391) (xy 123.580202 107.826109)\r\n\t\t\t\t(xy 123.580201 107.826114) (xy 123.5495 107.940691) (xy 120.4505 107.940691) (xy 120.419799 107.826114)\r\n\t\t\t\t(xy 120.419797 107.826111) (xy 120.419797 107.826109) (xy 120.360492 107.723391) (xy 120.36049 107.723389)\r\n\t\t\t\t(xy 120.360489 107.723387) (xy 120.276613 107.639511) (xy 120.27661 107.639509) (xy 120.276608 107.639507)\r\n\t\t\t\t(xy 120.173889 107.580202) (xy 120.17389 107.580202) (xy 120.160351 107.576574) (xy 120.059309 107.5495)\r\n\t\t\t\t(xy 119.940691 107.5495) (xy 119.870567 107.568289) (xy 119.826109 107.580202) (xy 119.723391 107.639507)\r\n\t\t\t\t(xy 119.639507 107.723391) (xy 119.580202 107.826109) (xy 119.580201 107.826114) (xy 119.5495 107.940691)\r\n\t\t\t\t(xy 116.4505 107.940691) (xy 116.419799 107.826114) (xy 116.419797 107.826111) (xy 116.419797 107.826109)\r\n\t\t\t\t(xy 116.360492 107.723391) (xy 116.36049 107.723389) (xy 116.360489 107.723387) (xy 116.276613 107.639511)\r\n\t\t\t\t(xy 116.27661 107.639509) (xy 116.276608 107.639507) (xy 116.173889 107.580202) (xy 116.17389 107.580202)\r\n\t\t\t\t(xy 116.160351 107.576574) (xy 116.059309 107.5495) (xy 115.940691 107.5495) (xy 115.870567 107.568289)\r\n\t\t\t\t(xy 115.826109 107.580202) (xy 115.723391 107.639507) (xy 115.639507 107.723391) (xy 115.580202 107.826109)\r\n\t\t\t\t(xy 115.580201 107.826114) (xy 115.5495 107.940691) (xy 112.4505 107.940691) (xy 112.419799 107.826114)\r\n\t\t\t\t(xy 112.419797 107.826111) (xy 112.419797 107.826109) (xy 112.360492 107.723391) (xy 112.36049 107.723389)\r\n\t\t\t\t(xy 112.360489 107.723387) (xy 112.276613 107.639511) (xy 112.27661 107.639509) (xy 112.276608 107.639507)\r\n\t\t\t\t(xy 112.173889 107.580202) (xy 112.17389 107.580202) (xy 112.160351 107.576574) (xy 112.059309 107.5495)\r\n\t\t\t\t(xy 111.940691 107.5495) (xy 111.870567 107.568289) (xy 111.826109 107.580202) (xy 111.723391 107.639507)\r\n\t\t\t\t(xy 111.639507 107.723391) (xy 111.580202 107.826109) (xy 111.580201 107.826114) (xy 111.5495 107.940691)\r\n\t\t\t\t(xy 108.4505 107.940691) (xy 108.419799 107.826114) (xy 108.419797 107.826111) (xy 108.419797 107.826109)\r\n\t\t\t\t(xy 108.360492 107.723391) (xy 108.36049 107.723389) (xy 108.360489 107.723387) (xy 108.276613 107.639511)\r\n\t\t\t\t(xy 108.27661 107.639509) (xy 108.276608 107.639507) (xy 108.173889 107.580202) (xy 108.17389 107.580202)\r\n\t\t\t\t(xy 108.160351 107.576574) (xy 108.059309 107.5495) (xy 107.940691 107.5495) (xy 107.870567 107.568289)\r\n\t\t\t\t(xy 107.826109 107.580202) (xy 107.723391 107.639507) (xy 107.639507 107.723391) (xy 107.580202 107.826109)\r\n\t\t\t\t(xy 107.580201 107.826114) (xy 107.5495 107.940691) (xy 104.4505 107.940691) (xy 104.419799 107.826114)\r\n\t\t\t\t(xy 104.419797 107.826111) (xy 104.419797 107.826109) (xy 104.360492 107.723391) (xy 104.36049 107.723389)\r\n\t\t\t\t(xy 104.360489 107.723387) (xy 104.276613 107.639511) (xy 104.27661 107.639509) (xy 104.276608 107.639507)\r\n\t\t\t\t(xy 104.173889 107.580202) (xy 104.17389 107.580202) (xy 104.160351 107.576574) (xy 104.059309 107.5495)\r\n\t\t\t\t(xy 103.940691 107.5495) (xy 103.870567 107.568289) (xy 103.826109 107.580202) (xy 103.723391 107.639507)\r\n\t\t\t\t(xy 103.639507 107.723391) (xy 103.580202 107.826109) (xy 103.580201 107.826114) (xy 103.5495 107.940691)\r\n\t\t\t\t(xy 100.4505 107.940691) (xy 100.419799 107.826114) (xy 100.419797 107.826111) (xy 100.419797 107.826109)\r\n\t\t\t\t(xy 100.360492 107.723391) (xy 100.36049 107.723389) (xy 100.360489 107.723387) (xy 100.276613 107.639511)\r\n\t\t\t\t(xy 100.27661 107.639509) (xy 100.276608 107.639507) (xy 100.173889 107.580202) (xy 100.17389 107.580202)\r\n\t\t\t\t(xy 100.160351 107.576574) (xy 100.059309 107.5495) (xy 99.940691 107.5495) (xy 99.870567 107.568289)\r\n\t\t\t\t(xy 99.826109 107.580202) (xy 99.723391 107.639507) (xy 99.639507 107.723391) (xy 99.580202 107.826109)\r\n\t\t\t\t(xy 99.580201 107.826114) (xy 99.5495 107.940691) (xy 96.4505 107.940691) (xy 96.419799 107.826114)\r\n\t\t\t\t(xy 96.419797 107.826111) (xy 96.419797 107.826109) (xy 96.360492 107.723391) (xy 96.36049 107.723389)\r\n\t\t\t\t(xy 96.360489 107.723387) (xy 96.276613 107.639511) (xy 96.27661 107.639509) (xy 96.276608 107.639507)\r\n\t\t\t\t(xy 96.173889 107.580202) (xy 96.17389 107.580202) (xy 96.160351 107.576574) (xy 96.059309 107.5495)\r\n\t\t\t\t(xy 95.940691 107.5495) (xy 95.870567 107.568289) (xy 95.826109 107.580202) (xy 95.723391 107.639507)\r\n\t\t\t\t(xy 95.639507 107.723391) (xy 95.580202 107.826109) (xy 95.580201 107.826114) (xy 95.5495 107.940691)\r\n\t\t\t\t(xy 92.4505 107.940691) (xy 92.419799 107.826114) (xy 92.419797 107.826111) (xy 92.419797 107.826109)\r\n\t\t\t\t(xy 92.360492 107.723391) (xy 92.36049 107.723389) (xy 92.360489 107.723387) (xy 92.276613 107.639511)\r\n\t\t\t\t(xy 92.27661 107.639509) (xy 92.276608 107.639507) (xy 92.173889 107.580202) (xy 92.17389 107.580202)\r\n\t\t\t\t(xy 92.160351 107.576574) (xy 92.059309 107.5495) (xy 91.940691 107.5495) (xy 91.870567 107.568289)\r\n\t\t\t\t(xy 91.826109 107.580202) (xy 91.723391 107.639507) (xy 91.639507 107.723391) (xy 91.580202 107.826109)\r\n\t\t\t\t(xy 91.580201 107.826114) (xy 91.5495 107.940691) (xy 88.4505 107.940691) (xy 88.419799 107.826114)\r\n\t\t\t\t(xy 88.419797 107.826111) (xy 88.419797 107.826109) (xy 88.360492 107.723391) (xy 88.36049 107.723389)\r\n\t\t\t\t(xy 88.360489 107.723387) (xy 88.276613 107.639511) (xy 88.27661 107.639509) (xy 88.276608 107.639507)\r\n\t\t\t\t(xy 88.173889 107.580202) (xy 88.17389 107.580202) (xy 88.160351 107.576574) (xy 88.059309 107.5495)\r\n\t\t\t\t(xy 87.940691 107.5495) (xy 87.870567 107.568289) (xy 87.826109 107.580202) (xy 87.723391 107.639507)\r\n\t\t\t\t(xy 87.639507 107.723391) (xy 87.580202 107.826109) (xy 87.580201 107.826114) (xy 87.5495 107.940691)\r\n\t\t\t\t(xy 84.4505 107.940691) (xy 84.419799 107.826114) (xy 84.419797 107.826111) (xy 84.419797 107.826109)\r\n\t\t\t\t(xy 84.360492 107.723391) (xy 84.36049 107.723389) (xy 84.360489 107.723387) (xy 84.276613 107.639511)\r\n\t\t\t\t(xy 84.27661 107.639509) (xy 84.276608 107.639507) (xy 84.173889 107.580202) (xy 84.17389 107.580202)\r\n\t\t\t\t(xy 84.160351 107.576574) (xy 84.059309 107.5495) (xy 83.940691 107.5495) (xy 83.870567 107.568289)\r\n\t\t\t\t(xy 83.826109 107.580202) (xy 83.723391 107.639507) (xy 83.639507 107.723391) (xy 83.580202 107.826109)\r\n\t\t\t\t(xy 83.580201 107.826114) (xy 83.5495 107.940691) (xy 82.9 107.940691) (xy 82.9 103.940691) (xy 87.5495 103.940691)\r\n\t\t\t\t(xy 87.5495 104.059309) (xy 87.576574 104.160351) (xy 87.580202 104.17389) (xy 87.639507 104.276608)\r\n\t\t\t\t(xy 87.639509 104.27661) (xy 87.639511 104.276613) (xy 87.723387 104.360489) (xy 87.723389 104.36049)\r\n\t\t\t\t(xy 87.723391 104.360492) (xy 87.82611 104.419797) (xy 87.826111 104.419797) (xy 87.826114 104.419799)\r\n\t\t\t\t(xy 87.940691 104.4505) (xy 87.940693 104.4505) (xy 88.059307 104.4505) (xy 88.059309 104.4505)\r\n\t\t\t\t(xy 88.173886 104.419799) (xy 88.173888 104.419797) (xy 88.17389 104.419797) (xy 88.276608 104.360492)\r\n\t\t\t\t(xy 88.276608 104.360491) (xy 88.276613 104.360489) (xy 88.360489 104.276613) (xy 88.419799 104.173886)\r\n\t\t\t\t(xy 88.4505 104.059309) (xy 88.4505 103.940691) (xy 103.5495 103.940691) (xy 103.5495 104.059309)\r\n\t\t\t\t(xy 103.576574 104.160351) (xy 103.580202 104.17389) (xy 103.639507 104.276608) (xy 103.639509 104.27661)\r\n\t\t\t\t(xy 103.639511 104.276613) (xy 103.723387 104.360489) (xy 103.723389 104.36049) (xy 103.723391 104.360492)\r\n\t\t\t\t(xy 103.82611 104.419797) (xy 103.826111 104.419797) (xy 103.826114 104.419799) (xy 103.940691 104.4505)\r\n\t\t\t\t(xy 103.940693 104.4505) (xy 104.059307 104.4505) (xy 104.059309 104.4505) (xy 104.173886 104.419799)\r\n\t\t\t\t(xy 104.173888 104.419797) (xy 104.17389 104.419797) (xy 104.276608 104.360492) (xy 104.276608 104.360491)\r\n\t\t\t\t(xy 104.276613 104.360489) (xy 104.360489 104.276613) (xy 104.419799 104.173886) (xy 104.4505 104.059309)\r\n\t\t\t\t(xy 104.4505 103.940691) (xy 107.5495 103.940691) (xy 107.5495 104.059309) (xy 107.576574 104.160351)\r\n\t\t\t\t(xy 107.580202 104.17389) (xy 107.639507 104.276608) (xy 107.639509 104.27661) (xy 107.639511 104.276613)\r\n\t\t\t\t(xy 107.723387 104.360489) (xy 107.7233' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'89 104.36049) (xy 107.723391 104.360492) (xy 107.82611 104.419797)\r\n\t\t\t\t(xy 107.826111 104.419797) (xy 107.826114 104.419799) (xy 107.940691 104.4505) (xy 107.940693 104.4505)\r\n\t\t\t\t(xy 108.059307 104.4505) (xy 108.059309 104.4505) (xy 108.173886 104.419799) (xy 108.173888 104.419797)\r\n\t\t\t\t(xy 108.17389 104.419797) (xy 108.276608 104.360492) (xy 108.276608 104.360491) (xy 108.276613 104.360489)\r\n\t\t\t\t(xy 108.360489 104.276613) (xy 108.419799 104.173886) (xy 108.4505 104.059309) (xy 108.4505 103.940691)\r\n\t\t\t\t(xy 111.5495 103.940691) (xy 111.5495 104.059309) (xy 111.576574 104.160351) (xy 111.580202 104.17389)\r\n\t\t\t\t(xy 111.639507 104.276608) (xy 111.639509 104.27661) (xy 111.639511 104.276613) (xy 111.723387 104.360489)\r\n\t\t\t\t(xy 111.723389 104.36049) (xy 111.723391 104.360492) (xy 111.82611 104.419797) (xy 111.826111 104.419797)\r\n\t\t\t\t(xy 111.826114 104.419799) (xy 111.940691 104.4505) (xy 111.940693 104.4505) (xy 112.059307 104.4505)\r\n\t\t\t\t(xy 112.059309 104.4505) (xy 112.173886 104.419799) (xy 112.173888 104.419797) (xy 112.17389 104.419797)\r\n\t\t\t\t(xy 112.276608 104.360492) (xy 112.276608 104.360491) (xy 112.276613 104.360489) (xy 112.360489 104.276613)\r\n\t\t\t\t(xy 112.419799 104.173886) (xy 112.4505 104.059309) (xy 112.4505 103.940691) (xy 115.5495 103.940691)\r\n\t\t\t\t(xy 115.5495 104.059309) (xy 115.576574 104.160351) (xy 115.580202 104.17389) (xy 115.639507 104.276608)\r\n\t\t\t\t(xy 115.639509 104.27661) (xy 115.639511 104.276613) (xy 115.723387 104.360489) (xy 115.723389 104.36049)\r\n\t\t\t\t(xy 115.723391 104.360492) (xy 115.82611 104.419797) (xy 115.826111 104.419797) (xy 115.826114 104.419799)\r\n\t\t\t\t(xy 115.940691 104.4505) (xy 115.940693 104.4505) (xy 116.059307 104.4505) (xy 116.059309 104.4505)\r\n\t\t\t\t(xy 116.173886 104.419799) (xy 116.173888 104.419797) (xy 116.17389 104.419797) (xy 116.276608 104.360492)\r\n\t\t\t\t(xy 116.276608 104.360491) (xy 116.276613 104.360489) (xy 116.360489 104.276613) (xy 116.419799 104.173886)\r\n\t\t\t\t(xy 116.4505 104.059309) (xy 116.4505 103.940691) (xy 119.5495 103.940691) (xy 119.5495 104.059309)\r\n\t\t\t\t(xy 119.576574 104.160351) (xy 119.580202 104.17389) (xy 119.639507 104.276608) (xy 119.639509 104.27661)\r\n\t\t\t\t(xy 119.639511 104.276613) (xy 119.723387 104.360489) (xy 119.723389 104.36049) (xy 119.723391 104.360492)\r\n\t\t\t\t(xy 119.82611 104.419797) (xy 119.826111 104.419797) (xy 119.826114 104.419799) (xy 119.940691 104.4505)\r\n\t\t\t\t(xy 119.940693 104.4505) (xy 120.059307 104.4505) (xy 120.059309 104.4505) (xy 120.173886 104.419799)\r\n\t\t\t\t(xy 120.173888 104.419797) (xy 120.17389 104.419797) (xy 120.276608 104.360492) (xy 120.276608 104.360491)\r\n\t\t\t\t(xy 120.276613 104.360489) (xy 120.360489 104.276613) (xy 120.419799 104.173886) (xy 120.4505 104.059309)\r\n\t\t\t\t(xy 120.4505 103.940691) (xy 123.5495 103.940691) (xy 123.5495 104.059309) (xy 123.576574 104.160351)\r\n\t\t\t\t(xy 123.580202 104.17389) (xy 123.639507 104.276608) (xy 123.639509 104.27661) (xy 123.639511 104.276613)\r\n\t\t\t\t(xy 123.723387 104.360489) (xy 123.723389 104.36049) (xy 123.723391 104.360492) (xy 123.82611 104.419797)\r\n\t\t\t\t(xy 123.826111 104.419797) (xy 123.826114 104.419799) (xy 123.940691 104.4505) (xy 123.940693 104.4505)\r\n\t\t\t\t(xy 124.059307 104.4505) (xy 124.059309 104.4505) (xy 124.173886 104.419799) (xy 124.173888 104.419797)\r\n\t\t\t\t(xy 124.17389 104.419797) (xy 124.276608 104.360492) (xy 124.276608 104.360491) (xy 124.276613 104.360489)\r\n\t\t\t\t(xy 124.360489 104.276613) (xy 124.419799 104.173886) (xy 124.4505 104.059309) (xy 124.4505 103.940691)\r\n\t\t\t\t(xy 127.5495 103.940691) (xy 127.5495 104.059309) (xy 127.576574 104.160351) (xy 127.580202 104.17389)\r\n\t\t\t\t(xy 127.639507 104.276608) (xy 127.639509 104.27661) (xy 127.639511 104.276613) (xy 127.723387 104.360489)\r\n\t\t\t\t(xy 127.723389 104.36049) (xy 127.723391 104.360492) (xy 127.82611 104.419797) (xy 127.826111 104.419797)\r\n\t\t\t\t(xy 127.826114 104.419799) (xy 127.940691 104.4505) (xy 127.940693 104.4505) (xy 128.059307 104.4505)\r\n\t\t\t\t(xy 128.059309 104.4505) (xy 128.173886 104.419799) (xy 128.173888 104.419797) (xy 128.17389 104.419797)\r\n\t\t\t\t(xy 128.276608 104.360492) (xy 128.276608 104.360491) (xy 128.276613 104.360489) (xy 128.360489 104.276613)\r\n\t\t\t\t(xy 128.419799 104.173886) (xy 128.4505 104.059309) (xy 128.4505 103.940691) (xy 131.5495 103.940691)\r\n\t\t\t\t(xy 131.5495 104.059309) (xy 131.576574 104.160351) (xy 131.580202 104.17389) (xy 131.639507 104.276608)\r\n\t\t\t\t(xy 131.639509 104.27661) (xy 131.639511 104.276613) (xy 131.723387 104.360489) (xy 131.723389 104.36049)\r\n\t\t\t\t(xy 131.723391 104.360492) (xy 131.82611 104.419797) (xy 131.826111 104.419797) (xy 131.826114 104.419799)\r\n\t\t\t\t(xy 131.940691 104.4505) (xy 131.940693 104.4505) (xy 132.059307 104.4505) (xy 132.059309 104.4505)\r\n\t\t\t\t(xy 132.173886 104.419799) (xy 132.173888 104.419797) (xy 132.17389 104.419797) (xy 132.276608 104.360492)\r\n\t\t\t\t(xy 132.276608 104.360491) (xy 132.276613 104.360489) (xy 132.360489 104.276613) (xy 132.419799 104.173886)\r\n\t\t\t\t(xy 132.4505 104.059309) (xy 132.4505 103.940691) (xy 135.5495 103.940691) (xy 135.5495 104.059309)\r\n\t\t\t\t(xy 135.576574 104.160351) (xy 135.580202 104.17389) (xy 135.639507 104.276608) (xy 135.639509 104.27661)\r\n\t\t\t\t(xy 135.639511 104.276613) (xy 135.723387 104.360489) (xy 135.723389 104.36049) (xy 135.723391 104.360492)\r\n\t\t\t\t(xy 135.82611 104.419797) (xy 135.826111 104.419797) (xy 135.826114 104.419799) (xy 135.940691 104.4505)\r\n\t\t\t\t(xy 135.940693 104.4505) (xy 136.059307 104.4505) (xy 136.059309 104.4505) (xy 136.173886 104.419799)\r\n\t\t\t\t(xy 136.173888 104.419797) (xy 136.17389 104.419797) (xy 136.276608 104.360492) (xy 136.276608 104.360491)\r\n\t\t\t\t(xy 136.276613 104.360489) (xy 136.360489 104.276613) (xy 136.419799 104.173886) (xy 136.4505 104.059309)\r\n\t\t\t\t(xy 136.4505 103.940691) (xy 139.5495 103.940691) (xy 139.5495 104.059309) (xy 139.576574 104.160351)\r\n\t\t\t\t(xy 139.580202 104.17389) (xy 139.639507 104.276608) (xy 139.639509 104.27661) (xy 139.639511 104.276613)\r\n\t\t\t\t(xy 139.723387 104.360489) (xy 139.723389 104.36049) (xy 139.723391 104.360492) (xy 139.82611 104.419797)\r\n\t\t\t\t(xy 139.826111 104.419797) (xy 139.826114 104.419799) (xy 139.940691 104.4505) (xy 139.940693 104.4505)\r\n\t\t\t\t(xy 140.059307 104.4505) (xy 140.059309 104.4505) (xy 140.173886 104.419799) (xy 140.173888 104.419797)\r\n\t\t\t\t(xy 140.17389 104.419797) (xy 140.276608 104.360492) (xy 140.276608 104.360491) (xy 140.276613 104.360489)\r\n\t\t\t\t(xy 140.360489 104.276613) (xy 140.419799 104.173886) (xy 140.4505 104.059309) (xy 140.4505 103.940691)\r\n\t\t\t\t(xy 143.5495 103.940691) (xy 143.5495 104.059309) (xy 143.576574 104.160351) (xy 143.580202 104.17389)\r\n\t\t\t\t(xy 143.639507 104.276608) (xy 143.639509 104.27661) (xy 143.639511 104.276613) (xy 143.723387 104.360489)\r\n\t\t\t\t(xy 143.723389 104.36049) (xy 143.723391 104.360492) (xy 143.82611 104.419797) (xy 143.826111 104.419797)\r\n\t\t\t\t(xy 143.826114 104.419799) (xy 143.940691 104.4505) (xy 143.940693 104.4505) (xy 144.059307 104.4505)\r\n\t\t\t\t(xy 144.059309 104.4505) (xy 144.173886 104.419799) (xy 144.173888 104.419797) (xy 144.17389 104.419797)\r\n\t\t\t\t(xy 144.276608 104.360492) (xy 144.276608 104.360491) (xy 144.276613 104.360489) (xy 144.360489 104.276613)\r\n\t\t\t\t(xy 144.419799 104.173886) (xy 144.4505 104.059309) (xy 144.4505 103.940691) (xy 147.5495 103.940691)\r\n\t\t\t\t(xy 147.5495 104.059309) (xy 147.576574 104.160351) (xy 147.580202 104.17389) (xy 147.639507 104.276608)\r\n\t\t\t\t(xy 147.639509 104.27661) (xy 147.639511 104.276613) (xy 147.723387 104.360489) (xy 147.723389 104.36049)\r\n\t\t\t\t(xy 147.723391 104.360492) (xy 147.82611 104.419797) (xy 147.826111 104.419797) (xy 147.826114 104.419799)\r\n\t\t\t\t(xy 147.940691 104.4505) (xy 147.940693 104.4505) (xy 148.059307 104.4505) (xy 148.059309 104.4505)\r\n\t\t\t\t(xy 148.173886 104.419799) (xy 148.173888 104.419797) (xy 148.17389 104.419797) (xy 148.276608 104.360492)\r\n\t\t\t\t(xy 148.276608 104.360491) (xy 148.276613 104.360489) (xy 148.360489 104.276613) (xy 148.419799 104.173886)\r\n\t\t\t\t(xy 148.4505 104.059309) (xy 148.4505 103.940691) (xy 151.5495 103.940691) (xy 151.5495 104.059309)\r\n\t\t\t\t(xy 151.576574 104.160351) (xy 151.580202 104.17389) (xy 151.639507 104.276608) (xy 151.639509 104.27661)\r\n\t\t\t\t(xy 151.639511 104.276613) (xy 151.723387 104.360489) (xy 151.723389 104.36049) (xy 151.723391 104.3' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'60492)\r\n\t\t\t\t(xy 151.82611 104.419797) (xy 151.826111 104.419797) (xy 151.826114 104.419799) (xy 151.940691 104.4505)\r\n\t\t\t\t(xy 151.940693 104.4505) (xy 152.059307 104.4505) (xy 152.059309 104.4505) (xy 152.173886 104.419799)\r\n\t\t\t\t(xy 152.173888 104.419797) (xy 152.17389 104.419797) (xy 152.276608 104.360492) (xy 152.276608 104.360491)\r\n\t\t\t\t(xy 152.276613 104.360489) (xy 152.360489 104.276613) (xy 152.419799 104.173886) (xy 152.4505 104.059309)\r\n\t\t\t\t(xy 152.4505 103.940691) (xy 152.419799 103.826114) (xy 152.419797 103.826111) (xy 152.419797 103.826109)\r\n\t\t\t\t(xy 152.360492 103.723391) (xy 152.36049 103.723389) (xy 152.360489 103.723387) (xy 152.276613 103.639511)\r\n\t\t\t\t(xy 152.27661 103.639509) (xy 152.276608 103.639507) (xy 152.173889 103.580202) (xy 152.17389 103.580202)\r\n\t\t\t\t(xy 152.160351 103.576574) (xy 152.059309 103.5495) (xy 151.940691 103.5495) (xy 151.870567 103.568289)\r\n\t\t\t\t(xy 151.826109 103.580202) (xy 151.723391 103.639507) (xy 151.639507 103.723391) (xy 151.580202 103.826109)\r\n\t\t\t\t(xy 151.580201 103.826114) (xy 151.5495 103.940691) (xy 148.4505 103.940691) (xy 148.419799 103.826114)\r\n\t\t\t\t(xy 148.419797 103.826111) (xy 148.419797 103.826109) (xy 148.360492 103.723391) (xy 148.36049 103.723389)\r\n\t\t\t\t(xy 148.360489 103.723387) (xy 148.276613 103.639511) (xy 148.27661 103.639509) (xy 148.276608 103.639507)\r\n\t\t\t\t(xy 148.173889 103.580202) (xy 148.17389 103.580202) (xy 148.160351 103.576574) (xy 148.059309 103.5495)\r\n\t\t\t\t(xy 147.940691 103.5495) (xy 147.870567 103.568289) (xy 147.826109 103.580202) (xy 147.723391 103.639507)\r\n\t\t\t\t(xy 147.639507 103.723391) (xy 147.580202 103.826109) (xy 147.580201 103.826114) (xy 147.5495 103.940691)\r\n\t\t\t\t(xy 144.4505 103.940691) (xy 144.419799 103.826114) (xy 144.419797 103.826111) (xy 144.419797 103.826109)\r\n\t\t\t\t(xy 144.360492 103.723391) (xy 144.36049 103.723389) (xy 144.360489 103.723387) (xy 144.276613 103.639511)\r\n\t\t\t\t(xy 144.27661 103.639509) (xy 144.276608 103.639507) (xy 144.173889 103.580202) (xy 144.17389 103.580202)\r\n\t\t\t\t(xy 144.160351 103.576574) (xy 144.059309 103.5495) (xy 143.940691 103.5495) (xy 143.870567 103.568289)\r\n\t\t\t\t(xy 143.826109 103.580202) (xy 143.723391 103.639507) (xy 143.639507 103.723391) (xy 143.580202 103.826109)\r\n\t\t\t\t(xy 143.580201 103.826114) (xy 143.5495 103.940691) (xy 140.4505 103.940691) (xy 140.419799 103.826114)\r\n\t\t\t\t(xy 140.419797 103.826111) (xy 140.419797 103.826109) (xy 140.360492 103.723391) (xy 140.36049 103.723389)\r\n\t\t\t\t(xy 140.360489 103.723387) (xy 140.276613 103.639511) (xy 140.27661 103.639509) (xy 140.276608 103.639507)\r\n\t\t\t\t(xy 140.173889 103.580202) (xy 140.17389 103.580202) (xy 140.160351 103.576574) (xy 140.059309 103.5495)\r\n\t\t\t\t(xy 139.940691 103.5495) (xy 139.870567 103.568289) (xy 139.826109 103.580202) (xy 139.723391 103.639507)\r\n\t\t\t\t(xy 139.639507 103.723391) (xy 139.580202 103.826109) (xy 139.580201 103.826114) (xy 139.5495 103.940691)\r\n\t\t\t\t(xy 136.4505 103.940691) (xy 136.419799 103.826114) (xy 136.419797 103.826111) (xy 136.419797 103.826109)\r\n\t\t\t\t(xy 136.360492 103.723391) (xy 136.36049 103.723389) (xy 136.360489 103.723387) (xy 136.276613 103.639511)\r\n\t\t\t\t(xy 136.27661 103.639509) (xy 136.276608 103.639507) (xy 136.173889 103.580202) (xy 136.17389 103.580202)\r\n\t\t\t\t(xy 136.160351 103.576574) (xy 136.059309 103.5495) (xy 135.940691 103.5495) (xy 135.870567 103.568289)\r\n\t\t\t\t(xy 135.826109 103.580202) (xy 135.723391 103.639507) (xy 135.639507 103.723391) (xy 135.580202 103.826109)\r\n\t\t\t\t(xy 135.580201 103.826114) (xy 135.5495 103.940691) (xy 132.4505 103.940691) (xy 132.419799 103.826114)\r\n\t\t\t\t(xy 132.419797 103.826111) (xy 132.419797 103.826109) (xy 132.360492 103.723391) (xy 132.36049 103.723389)\r\n\t\t\t\t(xy 132.360489 103.723387) (xy 132.276613 103.639511) (xy 132.27661 103.639509) (xy 132.276608 103.639507)\r\n\t\t\t\t(xy 132.173889 103.580202) (xy 132.17389 103.580202) (xy 132.160351 103.576574) (xy 132.059309 103.5495)\r\n\t\t\t\t(xy 131.940691 103.5495) (xy 131.870567 103.568289) (xy 131.826109 103.580202) (xy 131.723391 103.639507)\r\n\t\t\t\t(xy 131.639507 103.723391) (xy 131.580202 103.826109) (xy 131.580201 103.826114) (xy 131.5495 103.940691)\r\n\t\t\t\t(xy 128.4505 103.940691) (xy 128.419799 103.826114) (xy 128.419797 103.826111) (xy 128.419797 103.826109)\r\n\t\t\t\t(xy 128.360492 103.723391) (xy 128.36049 103.723389) (xy 128.360489 103.723387) (xy 128.276613 103.639511)\r\n\t\t\t\t(xy 128.27661 103.639509) (xy 128.276608 103.639507) (xy 128.173889 103.580202) (xy 128.17389 103.580202)\r\n\t\t\t\t(xy 128.160351 103.576574) (xy 128.059309 103.5495) (xy 127.940691 103.5495) (xy 127.870567 103.568289)\r\n\t\t\t\t(xy 127.826109 103.580202) (xy 127.723391 103.639507) (xy 127.639507 103.723391) (xy 127.580202 103.826109)\r\n\t\t\t\t(xy 127.580201 103.826114) (xy 127.5495 103.940691) (xy 124.4505 103.940691) (xy 124.419799 103.826114)\r\n\t\t\t\t(xy 124.419797 103.826111) (xy 124.419797 103.826109) (xy 124.360492 103.723391) (xy 124.36049 103.723389)\r\n\t\t\t\t(xy 124.360489 103.723387) (xy 124.276613 103.639511) (xy 124.27661 103.639509) (xy 124.276608 103.639507)\r\n\t\t\t\t(xy 124.173889 103.580202) (xy 124.17389 103.580202) (xy 124.160351 103.576574) (xy 124.059309 103.5495)\r\n\t\t\t\t(xy 123.940691 103.5495) (xy 123.870567 103.568289) (xy 123.826109 103.580202) (xy 123.723391 103.639507)\r\n\t\t\t\t(xy 123.639507 103.723391) (xy 123.580202 103.826109) (xy 123.580201 103.826114) (xy 123.5495 103.940691)\r\n\t\t\t\t(xy 120.4505 103.940691) (xy 120.419799 103.826114) (xy 120.419797 103.826111) (xy 120.419797 103.826109)\r\n\t\t\t\t(xy 120.360492 103.723391) (xy 120.36049 103.723389) (xy 120.360489 103.723387) (xy 120.276613 103.639511)\r\n\t\t\t\t(xy 120.27661 103.639509) (xy 120.276608 103.639507) (xy 120.173889 103.580202) (xy 120.17389 103.580202)\r\n\t\t\t\t(xy 120.160351 103.576574) (xy 120.059309 103.5495) (xy 119.940691 103.5495) (xy 119.870567 103.568289)\r\n\t\t\t\t(xy 119.826109 103.580202) (xy 119.723391 103.639507) (xy 119.639507 103.723391) (xy 119.580202 103.826109)\r\n\t\t\t\t(xy 119.580201 103.826114) (xy 119.5495 103.940691) (xy 116.4505 103.940691) (xy 116.419799 103.826114)\r\n\t\t\t\t(xy 116.419797 103.826111) (xy 116.419797 103.826109) (xy 116.360492 103.723391) (xy 116.36049 103.723389)\r\n\t\t\t\t(xy 116.360489 103.723387) (xy 116.276613 103.639511) (xy 116.27661 103.639509) (xy 116.276608 103.639507)\r\n\t\t\t\t(xy 116.173889 103.580202) (xy 116.17389 103.580202) (xy 116.160351 103.576574) (xy 116.059309 103.5495)\r\n\t\t\t\t(xy 115.940691 103.5495) (xy 115.870567 103.568289) (xy 115.826109 103.580202) (xy 115.723391 103.639507)\r\n\t\t\t\t(xy 115.639507 103.723391) (xy 115.580202 103.826109) (xy 115.580201 103.826114) (xy 115.5495 103.940691)\r\n\t\t\t\t(xy 112.4505 103.940691) (xy 112.419799 103.826114) (xy 112.419797 103.826111) (xy 112.419797 103.826109)\r\n\t\t\t\t(xy 112.360492 103.723391) (xy 112.36049 103.723389) (xy 112.360489 103.723387) (xy 112.276613 103.639511)\r\n\t\t\t\t(xy 112.27661 103.639509) (xy 112.276608 103.639507) (xy 112.173889 103.580202) (xy 112.17389 103.580202)\r\n\t\t\t\t(xy 112.160351 103.576574) (xy 112.059309 103.5495) (xy 111.940691 103.5495) (xy 111.870567 103.568289)\r\n\t\t\t\t(xy 111.826109 103.580202) (xy 111.723391 103.639507) (xy 111.639507 103.723391) (xy 111.580202 103.826109)\r\n\t\t\t\t(xy 111.580201 103.826114) (xy 111.5495 103.940691) (xy 108.4505 103.940691) (xy 108.419799 103.826114)\r\n\t\t\t\t(xy 108.419797 103.826111) (xy 108.419797 103.826109) (xy 108.360492 103.723391) (xy 108.36049 103.723389)\r\n\t\t\t\t(xy 108.360489 103.723387) (xy 108.276613 103.639511) (xy 108.27661 103.639509) (xy 108.276608 103.639507)\r\n\t\t\t\t(xy 108.173889 103.580202) (xy 108.17389 103.580202) (xy 108.160351 103.576574) (xy 108.059309 103.5495)\r\n\t\t\t\t(xy 107.940691 103.5495) (xy 107.870567 103.568289) (xy 107.826109 103.580202) (xy 107.723391 103.639507)\r\n\t\t\t\t(xy 107.639507 103.723391) (xy 107.580202 103.826109) (xy 107.580201 103.826114) (xy 107.5495 103.940691)\r\n\t\t\t\t(xy 104.4505 103.940691) (xy 104.419799 103.826114) (xy 104.419797 103.826111) (xy 104.419797 103.826109)\r\n\t\t\t\t(xy 104.360492 103.723391) (xy 104.36049 103.723389) (xy 104.360489 103.723387) (xy 104.276613 103.639511)\r\n\t\t\t\t(xy 104.27661 103.639509) (xy 104.276608 103.639507) (xy 104.173889 103.580202) (xy 104.17389 103.580202)\r\n\t\t\t\t(xy 104.160351 103.576574) (xy 104.059309 103.5495) (xy 103.940691 103.5495) (xy' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' 103.870567 103.568289)\r\n\t\t\t\t(xy 103.826109 103.580202) (xy 103.723391 103.639507) (xy 103.639507 103.723391) (xy 103.580202 103.826109)\r\n\t\t\t\t(xy 103.580201 103.826114) (xy 103.5495 103.940691) (xy 88.4505 103.940691) (xy 88.419799 103.826114)\r\n\t\t\t\t(xy 88.419797 103.826111) (xy 88.419797 103.826109) (xy 88.360492 103.723391) (xy 88.36049 103.723389)\r\n\t\t\t\t(xy 88.360489 103.723387) (xy 88.276613 103.639511) (xy 88.27661 103.639509) (xy 88.276608 103.639507)\r\n\t\t\t\t(xy 88.173889 103.580202) (xy 88.17389 103.580202) (xy 88.160351 103.576574) (xy 88.059309 103.5495)\r\n\t\t\t\t(xy 87.940691 103.5495) (xy 87.870567 103.568289) (xy 87.826109 103.580202) (xy 87.723391 103.639507)\r\n\t\t\t\t(xy 87.639507 103.723391) (xy 87.580202 103.826109) (xy 87.580201 103.826114) (xy 87.5495 103.940691)\r\n\t\t\t\t(xy 82.9 103.940691) (xy 82.9 103.040691) (xy 83.8495 103.040691) (xy 83.8495 103.159309) (xy 83.853406 103.173886)\r\n\t\t\t\t(xy 83.880202 103.27389) (xy 83.939507 103.376608) (xy 83.939509 103.37661) (xy 83.939511 103.376613)\r\n\t\t\t\t(xy 84.023387 103.460489) (xy 84.023389 103.46049) (xy 84.023391 103.460492) (xy 84.12611 103.519797)\r\n\t\t\t\t(xy 84.126111 103.519797) (xy 84.126114 103.519799) (xy 84.240691 103.5505) (xy 84.240693 103.5505)\r\n\t\t\t\t(xy 84.359307 103.5505) (xy 84.359309 103.5505) (xy 84.473886 103.519799) (xy 84.473888 103.519797)\r\n\t\t\t\t(xy 84.47389 103.519797) (xy 84.576608 103.460492) (xy 84.576608 103.460491) (xy 84.576613 103.460489)\r\n\t\t\t\t(xy 84.660489 103.376613) (xy 84.718225 103.276613) (xy 84.719797 103.27389) (xy 84.719797 103.273888)\r\n\t\t\t\t(xy 84.719799 103.273886) (xy 84.7505 103.159309) (xy 84.7505 103.040691) (xy 84.723705 102.940691)\r\n\t\t\t\t(xy 129.7495 102.940691) (xy 129.7495 103.059309) (xy 129.776295 103.159307) (xy 129.780202 103.17389)\r\n\t\t\t\t(xy 129.839507 103.276608) (xy 129.839509 103.27661) (xy 129.839511 103.276613) (xy 129.923387 103.360489)\r\n\t\t\t\t(xy 129.923389 103.36049) (xy 129.923391 103.360492) (xy 130.02611 103.419797) (xy 130.026111 103.419797)\r\n\t\t\t\t(xy 130.026114 103.419799) (xy 130.140691 103.4505) (xy 130.140693 103.4505) (xy 130.259307 103.4505)\r\n\t\t\t\t(xy 130.259309 103.4505) (xy 130.373886 103.419799) (xy 130.373888 103.419797) (xy 130.37389 103.419797)\r\n\t\t\t\t(xy 130.476608 103.360492) (xy 130.476608 103.360491) (xy 130.476613 103.360489) (xy 130.560489 103.276613)\r\n\t\t\t\t(xy 130.562061 103.27389) (xy 130.619797 103.17389) (xy 130.619797 103.173888) (xy 130.619799 103.173886)\r\n\t\t\t\t(xy 130.6505 103.059309) (xy 130.6505 102.940691) (xy 130.619799 102.826114) (xy 130.619797 102.826111)\r\n\t\t\t\t(xy 130.619797 102.826109) (xy 130.560492 102.723391) (xy 130.56049 102.723389) (xy 130.560489 102.723387)\r\n\t\t\t\t(xy 130.476613 102.639511) (xy 130.47661 102.639509) (xy 130.476608 102.639507) (xy 130.373889 102.580202)\r\n\t\t\t\t(xy 130.37389 102.580202) (xy 130.360351 102.576574) (xy 130.259309 102.5495) (xy 130.140691 102.5495)\r\n\t\t\t\t(xy 130.070567 102.568289) (xy 130.026109 102.580202) (xy 129.923391 102.639507) (xy 129.839507 102.723391)\r\n\t\t\t\t(xy 129.780202 102.826109) (xy 129.780201 102.826114) (xy 129.7495 102.940691) (xy 84.723705 102.940691)\r\n\t\t\t\t(xy 84.719799 102.926114) (xy 84.719796 102.926109) (xy 84.660492 102.823391) (xy 84.66049 102.823389)\r\n\t\t\t\t(xy 84.660489 102.823387) (xy 84.576613 102.739511) (xy 84.57661 102.739509) (xy 84.576608 102.739507)\r\n\t\t\t\t(xy 84.473889 102.680202) (xy 84.47389 102.680202) (xy 84.460351 102.676574) (xy 84.359309 102.6495)\r\n\t\t\t\t(xy 84.240691 102.6495) (xy 84.170567 102.668289) (xy 84.126109 102.680202) (xy 84.023391 102.739507)\r\n\t\t\t\t(xy 83.939507 102.823391) (xy 83.880202 102.926109) (xy 83.880201 102.926114) (xy 83.8495 103.040691)\r\n\t\t\t\t(xy 82.9 103.040691) (xy 82.9 101.340691) (xy 129.7495 101.340691) (xy 129.7495 101.459309) (xy 129.776574 101.560351)\r\n\t\t\t\t(xy 129.780202 101.57389) (xy 129.839507 101.676608) (xy 129.839509 101.67661) (xy 129.839511 101.676613)\r\n\t\t\t\t(xy 129.923387 101.760489) (xy 129.923389 101.76049) (xy 129.923391 101.760492) (xy 130.02611 101.819797)\r\n\t\t\t\t(xy 130.026111 101.819797) (xy 130.026114 101.819799) (xy 130.140691 101.8505) (xy 130.140693 101.8505)\r\n\t\t\t\t(xy 130.259307 101.8505) (xy 130.259309 101.8505) (xy 130.373886 101.819799) (xy 130.373888 101.819797)\r\n\t\t\t\t(xy 130.37389 101.819797) (xy 130.476608 101.760492) (xy 130.476608 101.760491) (xy 130.476613 101.760489)\r\n\t\t\t\t(xy 130.560489 101.676613) (xy 130.619799 101.573886) (xy 130.6505 101.459309) (xy 130.6505 101.340691)\r\n\t\t\t\t(xy 130.619799 101.226114) (xy 130.619797 101.226111) (xy 130.619797 101.226109) (xy 130.560492 101.123391)\r\n\t\t\t\t(xy 130.56049 101.123389) (xy 130.560489 101.123387) (xy 130.476613 101.039511) (xy 130.47661 101.039509)\r\n\t\t\t\t(xy 130.476608 101.039507) (xy 130.373889 100.980202) (xy 130.37389 100.980202) (xy 130.360351 100.976574)\r\n\t\t\t\t(xy 130.259309 100.9495) (xy 130.140691 100.9495) (xy 130.070567 100.968289) (xy 130.026109 100.980202)\r\n\t\t\t\t(xy 129.923391 101.039507) (xy 129.839507 101.123391) (xy 129.780202 101.226109) (xy 129.780201 101.226114)\r\n\t\t\t\t(xy 129.7495 101.340691) (xy 82.9 101.340691) (xy 82.9 99.940691) (xy 87.5495 99.940691) (xy 87.5495 100.059309)\r\n\t\t\t\t(xy 87.557313 100.088467) (xy 87.580202 100.17389) (xy 87.639507 100.276608) (xy 87.639509 100.27661)\r\n\t\t\t\t(xy 87.639511 100.276613) (xy 87.723387 100.360489) (xy 87.723389 100.36049) (xy 87.723391 100.360492)\r\n\t\t\t\t(xy 87.82611 100.419797) (xy 87.826111 100.419797) (xy 87.826114 100.419799) (xy 87.940691 100.4505)\r\n\t\t\t\t(xy 87.940693 100.4505) (xy 88.059307 100.4505) (xy 88.059309 100.4505) (xy 88.173886 100.419799)\r\n\t\t\t\t(xy 88.173888 100.419797) (xy 88.17389 100.419797) (xy 88.276608 100.360492) (xy 88.276608 100.360491)\r\n\t\t\t\t(xy 88.276613 100.360489) (xy 88.360489 100.276613) (xy 88.372844 100.255214) (xy 88.419797 100.17389)\r\n\t\t\t\t(xy 88.419797 100.173888) (xy 88.419799 100.173886) (xy 88.4505 100.059309) (xy 88.4505 99.940691)\r\n\t\t\t\t(xy 99.5495 99.940691) (xy 99.5495 100.059309) (xy 99.557313 100.088467) (xy 99.580202 100.17389)\r\n\t\t\t\t(xy 99.639507 100.276608) (xy 99.639509 100.27661) (xy 99.639511 100.276613) (xy 99.723387 100.360489)\r\n\t\t\t\t(xy 99.723389 100.36049) (xy 99.723391 100.360492) (xy 99.82611 100.419797) (xy 99.826111 100.419797)\r\n\t\t\t\t(xy 99.826114 100.419799) (xy 99.940691 100.4505) (xy 99.940693 100.4505) (xy 100.059307 100.4505)\r\n\t\t\t\t(xy 100.059309 100.4505) (xy 100.173886 100.419799) (xy 100.173888 100.419797) (xy 100.17389 100.419797)\r\n\t\t\t\t(xy 100.276608 100.360492) (xy 100.276608 100.360491) (xy 100.276613 100.360489) (xy 100.360489 100.276613)\r\n\t\t\t\t(xy 100.372844 100.255214) (xy 100.419797 100.17389) (xy 100.419797 100.173888) (xy 100.419799 100.173886)\r\n\t\t\t\t(xy 100.4505 100.059309) (xy 100.4505 99.940691) (xy 103.5495 99.940691) (xy 103.5495 100.059309)\r\n\t\t\t\t(xy 103.557313 100.088467) (xy 103.580202 100.17389) (xy 103.639507 100.276608) (xy 103.639509 100.27661)\r\n\t\t\t\t(xy 103.639511 100.276613) (xy 103.723387 100.360489) (xy 103.723389 100.36049) (xy 103.723391 100.360492)\r\n\t\t\t\t(xy 103.82611 100.419797) (xy 103.826111 100.419797) (xy 103.826114 100.419799) (xy 103.940691 100.4505)\r\n\t\t\t\t(xy 103.940693 100.4505) (xy 104.059307 100.4505) (xy 104.059309 100.4505) (xy 104.173886 100.419799)\r\n\t\t\t\t(xy 104.173888 100.419797) (xy 104.17389 100.419797) (xy 104.276608 100.360492) (xy 104.276608 100.360491)\r\n\t\t\t\t(xy 104.276613 100.360489) (xy 104.360489 100.276613) (xy 104.372844 100.255214) (xy 104.419797 100.17389)\r\n\t\t\t\t(xy 104.419797 100.173888) (xy 104.419799 100.173886) (xy 104.4505 100.059309) (xy 104.4505 99.940691)\r\n\t\t\t\t(xy 107.5495 99.940691) (xy 107.5495 100.059309) (xy 107.557313 100.088467) (xy 107.580202 100.17389)\r\n\t\t\t\t(xy 107.639507 100.276608) (xy 107.639509 100.27661) (xy 107.639511 100.276613) (xy 107.723387 100.360489)\r\n\t\t\t\t(xy 107.723389 100.36049) (xy 107.723391 100.360492) (xy 107.82611 100.419797) (xy 107.826111 100.419797)\r\n\t\t\t\t(xy 107.826114 100.419799) (xy 107.940691 100.4505) (xy 107.940693 100.4505) (xy 108.059307 100.4505)\r\n\t\t\t\t(xy 108.059309 100.4505) (xy 108.173886 100.419799) (xy 108.173888 100.419797) (xy 108.17389 100.419797)\r\n\t\t\t\t(xy 108.276608 100.360492) (xy 108.276608 100.360491) (xy 108.276613 100.360489) (xy 108.360489 100.276613)\r\n\t\t\t\t(xy 108.372844 100.255214) (xy 108.419797 100.17389) (xy 108.419797 100.' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'173888) (xy 108.419799 100.173886)\r\n\t\t\t\t(xy 108.4505 100.059309) (xy 108.4505 99.940691) (xy 108.419799 99.826114) (xy 108.419797 99.826111)\r\n\t\t\t\t(xy 108.419797 99.826109) (xy 108.395313 99.783702) (xy 108.37048 99.740691) (xy 112.1495 99.740691)\r\n\t\t\t\t(xy 112.1495 99.859309) (xy 112.164073 99.913694) (xy 112.180202 99.97389) (xy 112.239507 100.076608)\r\n\t\t\t\t(xy 112.239509 100.07661) (xy 112.239511 100.076613) (xy 112.323387 100.160489) (xy 112.323389 100.16049)\r\n\t\t\t\t(xy 112.323391 100.160492) (xy 112.42611 100.219797) (xy 112.426111 100.219797) (xy 112.426114 100.219799)\r\n\t\t\t\t(xy 112.540691 100.2505) (xy 112.540693 100.2505) (xy 112.659307 100.2505) (xy 112.659309 100.2505)\r\n\t\t\t\t(xy 112.773886 100.219799) (xy 112.773888 100.219797) (xy 112.77389 100.219797) (xy 112.876608 100.160492)\r\n\t\t\t\t(xy 112.876608 100.160491) (xy 112.876613 100.160489) (xy 112.960489 100.076613) (xy 112.993167 100.020014)\r\n\t\t\t\t(xy 113.019797 99.97389) (xy 113.019797 99.973888) (xy 113.019799 99.973886) (xy 113.0505 99.859309)\r\n\t\t\t\t(xy 113.0505 99.740691) (xy 113.7495 99.740691) (xy 113.7495 99.859309) (xy 113.764073 99.913694)\r\n\t\t\t\t(xy 113.780202 99.97389) (xy 113.839507 100.076608) (xy 113.839509 100.07661) (xy 113.839511 100.076613)\r\n\t\t\t\t(xy 113.923387 100.160489) (xy 113.923389 100.16049) (xy 113.923391 100.160492) (xy 114.02611 100.219797)\r\n\t\t\t\t(xy 114.026111 100.219797) (xy 114.026114 100.219799) (xy 114.140691 100.2505) (xy 114.140693 100.2505)\r\n\t\t\t\t(xy 114.259307 100.2505) (xy 114.259309 100.2505) (xy 114.373886 100.219799) (xy 114.373888 100.219797)\r\n\t\t\t\t(xy 114.37389 100.219797) (xy 114.476608 100.160492) (xy 114.476608 100.160491) (xy 114.476613 100.160489)\r\n\t\t\t\t(xy 114.560489 100.076613) (xy 114.593167 100.020014) (xy 114.619797 99.97389) (xy 114.619797 99.973888)\r\n\t\t\t\t(xy 114.619799 99.973886) (xy 114.6505 99.859309) (xy 114.6505 99.740691) (xy 115.3495 99.740691)\r\n\t\t\t\t(xy 115.3495 99.859309) (xy 115.364073 99.913694) (xy 115.380202 99.97389) (xy 115.439507 100.076608)\r\n\t\t\t\t(xy 115.439509 100.07661) (xy 115.439511 100.076613) (xy 115.523387 100.160489) (xy 115.523389 100.16049)\r\n\t\t\t\t(xy 115.523391 100.160492) (xy 115.62611 100.219797) (xy 115.626111 100.219797) (xy 115.626114 100.219799)\r\n\t\t\t\t(xy 115.740691 100.2505) (xy 115.740693 100.2505) (xy 115.859307 100.2505) (xy 115.859309 100.2505)\r\n\t\t\t\t(xy 115.973886 100.219799) (xy 115.973888 100.219797) (xy 115.97389 100.219797) (xy 116.076608 100.160492)\r\n\t\t\t\t(xy 116.076608 100.160491) (xy 116.076613 100.160489) (xy 116.160489 100.076613) (xy 116.193167 100.020014)\r\n\t\t\t\t(xy 116.219797 99.97389) (xy 116.219797 99.973888) (xy 116.219799 99.973886) (xy 116.2505 99.859309)\r\n\t\t\t\t(xy 116.2505 99.740691) (xy 116.9495 99.740691) (xy 116.9495 99.859309) (xy 116.964073 99.913694)\r\n\t\t\t\t(xy 116.980202 99.97389) (xy 117.039507 100.076608) (xy 117.039509 100.07661) (xy 117.039511 100.076613)\r\n\t\t\t\t(xy 117.123387 100.160489) (xy 117.123389 100.16049) (xy 117.123391 100.160492) (xy 117.22611 100.219797)\r\n\t\t\t\t(xy 117.226111 100.219797) (xy 117.226114 100.219799) (xy 117.340691 100.2505) (xy 117.340693 100.2505)\r\n\t\t\t\t(xy 117.459307 100.2505) (xy 117.459309 100.2505) (xy 117.573886 100.219799) (xy 117.573888 100.219797)\r\n\t\t\t\t(xy 117.57389 100.219797) (xy 117.676608 100.160492) (xy 117.676608 100.160491) (xy 117.676613 100.160489)\r\n\t\t\t\t(xy 117.760489 100.076613) (xy 117.793167 100.020014) (xy 117.819797 99.97389) (xy 117.819797 99.973888)\r\n\t\t\t\t(xy 117.819799 99.973886) (xy 117.8505 99.859309) (xy 117.8505 99.740691) (xy 118.5495 99.740691)\r\n\t\t\t\t(xy 118.5495 99.859309) (xy 118.564073 99.913694) (xy 118.580202 99.97389) (xy 118.639507 100.076608)\r\n\t\t\t\t(xy 118.639509 100.07661) (xy 118.639511 100.076613) (xy 118.723387 100.160489) (xy 118.723389 100.16049)\r\n\t\t\t\t(xy 118.723391 100.160492) (xy 118.82611 100.219797) (xy 118.826111 100.219797) (xy 118.826114 100.219799)\r\n\t\t\t\t(xy 118.940691 100.2505) (xy 118.940693 100.2505) (xy 119.059307 100.2505) (xy 119.059309 100.2505)\r\n\t\t\t\t(xy 119.173886 100.219799) (xy 119.173888 100.219797) (xy 119.17389 100.219797) (xy 119.276608 100.160492)\r\n\t\t\t\t(xy 119.276608 100.160491) (xy 119.276613 100.160489) (xy 119.360489 100.076613) (xy 119.393167 100.020014)\r\n\t\t\t\t(xy 119.419797 99.97389) (xy 119.419797 99.973888) (xy 119.419799 99.973886) (xy 119.4505 99.859309)\r\n\t\t\t\t(xy 119.4505 99.740691) (xy 120.1495 99.740691) (xy 120.1495 99.859309) (xy 120.164073 99.913694)\r\n\t\t\t\t(xy 120.180202 99.97389) (xy 120.239507 100.076608) (xy 120.239509 100.07661) (xy 120.239511 100.076613)\r\n\t\t\t\t(xy 120.323387 100.160489) (xy 120.323389 100.16049) (xy 120.323391 100.160492) (xy 120.42611 100.219797)\r\n\t\t\t\t(xy 120.426111 100.219797) (xy 120.426114 100.219799) (xy 120.540691 100.2505) (xy 120.540693 100.2505)\r\n\t\t\t\t(xy 120.659307 100.2505) (xy 120.659309 100.2505) (xy 120.773886 100.219799) (xy 120.773888 100.219797)\r\n\t\t\t\t(xy 120.77389 100.219797) (xy 120.876608 100.160492) (xy 120.876608 100.160491) (xy 120.876613 100.160489)\r\n\t\t\t\t(xy 120.960489 100.076613) (xy 120.993167 100.020014) (xy 121.019797 99.97389) (xy 121.019797 99.973888)\r\n\t\t\t\t(xy 121.019799 99.973886) (xy 121.0505 99.859309) (xy 121.0505 99.740691) (xy 121.7495 99.740691)\r\n\t\t\t\t(xy 121.7495 99.859309) (xy 121.764073 99.913694) (xy 121.780202 99.97389) (xy 121.839507 100.076608)\r\n\t\t\t\t(xy 121.839509 100.07661) (xy 121.839511 100.076613) (xy 121.923387 100.160489) (xy 121.923389 100.16049)\r\n\t\t\t\t(xy 121.923391 100.160492) (xy 122.02611 100.219797) (xy 122.026111 100.219797) (xy 122.026114 100.219799)\r\n\t\t\t\t(xy 122.140691 100.2505) (xy 122.140693 100.2505) (xy 122.259307 100.2505) (xy 122.259309 100.2505)\r\n\t\t\t\t(xy 122.373886 100.219799) (xy 122.373888 100.219797) (xy 122.37389 100.219797) (xy 122.476608 100.160492)\r\n\t\t\t\t(xy 122.476608 100.160491) (xy 122.476613 100.160489) (xy 122.560489 100.076613) (xy 122.593167 100.020014)\r\n\t\t\t\t(xy 122.619797 99.97389) (xy 122.619797 99.973888) (xy 122.619799 99.973886) (xy 122.6505 99.859309)\r\n\t\t\t\t(xy 122.6505 99.740691) (xy 123.3495 99.740691) (xy 123.3495 99.859309) (xy 123.364073 99.913694)\r\n\t\t\t\t(xy 123.380202 99.97389) (xy 123.439507 100.076608) (xy 123.439509 100.07661) (xy 123.439511 100.076613)\r\n\t\t\t\t(xy 123.523387 100.160489) (xy 123.523389 100.16049) (xy 123.523391 100.160492) (xy 123.62611 100.219797)\r\n\t\t\t\t(xy 123.626111 100.219797) (xy 123.626114 100.219799) (xy 123.740691 100.2505) (xy 123.740693 100.2505)\r\n\t\t\t\t(xy 123.859307 100.2505) (xy 123.859309 100.2505) (xy 123.973886 100.219799) (xy 123.973888 100.219797)\r\n\t\t\t\t(xy 123.97389 100.219797) (xy 124.076608 100.160492) (xy 124.076608 100.160491) (xy 124.076613 100.160489)\r\n\t\t\t\t(xy 124.160489 100.076613) (xy 124.193167 100.020014) (xy 124.219797 99.97389) (xy 124.219797 99.973888)\r\n\t\t\t\t(xy 124.219799 99.973886) (xy 124.2505 99.859309) (xy 124.2505 99.740691) (xy 124.9495 99.740691)\r\n\t\t\t\t(xy 124.9495 99.859309) (xy 124.964073 99.913694) (xy 124.980202 99.97389) (xy 125.039507 100.076608)\r\n\t\t\t\t(xy 125.039509 100.07661) (xy 125.039511 100.076613) (xy 125.123387 100.160489) (xy 125.123389 100.16049)\r\n\t\t\t\t(xy 125.123391 100.160492) (xy 125.22611 100.219797) (xy 125.226111 100.219797) (xy 125.226114 100.219799)\r\n\t\t\t\t(xy 125.340691 100.2505) (xy 125.340693 100.2505) (xy 125.459307 100.2505) (xy 125.459309 100.2505)\r\n\t\t\t\t(xy 125.573886 100.219799) (xy 125.573888 100.219797) (xy 125.57389 100.219797) (xy 125.676608 100.160492)\r\n\t\t\t\t(xy 125.676608 100.160491) (xy 125.676613 100.160489) (xy 125.760489 100.076613) (xy 125.793167 100.020014)\r\n\t\t\t\t(xy 125.819797 99.97389) (xy 125.819797 99.973888) (xy 125.819799 99.973886) (xy 125.8505 99.859309)\r\n\t\t\t\t(xy 125.8505 99.740691) (xy 126.5495 99.740691) (xy 126.5495 99.859309) (xy 126.564073 99.913694)\r\n\t\t\t\t(xy 126.580202 99.97389) (xy 126.639507 100.076608) (xy 126.639509 100.07661) (xy 126.639511 100.076613)\r\n\t\t\t\t(xy 126.723387 100.160489) (xy 126.723389 100.16049) (xy 126.723391 100.160492) (xy 126.82611 100.219797)\r\n\t\t\t\t(xy 126.826111 100.219797) (xy 126.826114 100.219799) (xy 126.940691 100.2505) (xy 126.940693 100.2505)\r\n\t\t\t\t(xy 127.059307 100.2505) (xy 127.059309 100.2505) (xy 127.173886 100.219799) (xy 127.173888 100.219797)\r\n\t\t\t\t(xy 127.17389 100.219797) (xy 127.276608 100.160492) (xy 127.276608 100.160491) (xy 127.276613 100.1' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'60489)\r\n\t\t\t\t(xy 127.360489 100.076613) (xy 127.393167 100.020014) (xy 127.419797 99.97389) (xy 127.419797 99.973888)\r\n\t\t\t\t(xy 127.419799 99.973886) (xy 127.4505 99.859309) (xy 127.4505 99.740691) (xy 128.1495 99.740691)\r\n\t\t\t\t(xy 128.1495 99.859309) (xy 128.164073 99.913694) (xy 128.180202 99.97389) (xy 128.239507 100.076608)\r\n\t\t\t\t(xy 128.239509 100.07661) (xy 128.239511 100.076613) (xy 128.323387 100.160489) (xy 128.323389 100.16049)\r\n\t\t\t\t(xy 128.323391 100.160492) (xy 128.42611 100.219797) (xy 128.426111 100.219797) (xy 128.426114 100.219799)\r\n\t\t\t\t(xy 128.540691 100.2505) (xy 128.540693 100.2505) (xy 128.659307 100.2505) (xy 128.659309 100.2505)\r\n\t\t\t\t(xy 128.773886 100.219799) (xy 128.773888 100.219797) (xy 128.77389 100.219797) (xy 128.876608 100.160492)\r\n\t\t\t\t(xy 128.876608 100.160491) (xy 128.876613 100.160489) (xy 128.960489 100.076613) (xy 128.993167 100.020014)\r\n\t\t\t\t(xy 129.019797 99.97389) (xy 129.019797 99.973888) (xy 129.019799 99.973886) (xy 129.0505 99.859309)\r\n\t\t\t\t(xy 129.0505 99.740691) (xy 129.7495 99.740691) (xy 129.7495 99.859309) (xy 129.764073 99.913694)\r\n\t\t\t\t(xy 129.780202 99.97389) (xy 129.839507 100.076608) (xy 129.839509 100.07661) (xy 129.839511 100.076613)\r\n\t\t\t\t(xy 129.923387 100.160489) (xy 129.923389 100.16049) (xy 129.923391 100.160492) (xy 130.02611 100.219797)\r\n\t\t\t\t(xy 130.026111 100.219797) (xy 130.026114 100.219799) (xy 130.140691 100.2505) (xy 130.140693 100.2505)\r\n\t\t\t\t(xy 130.259307 100.2505) (xy 130.259309 100.2505) (xy 130.373886 100.219799) (xy 130.373888 100.219797)\r\n\t\t\t\t(xy 130.37389 100.219797) (xy 130.476608 100.160492) (xy 130.476608 100.160491) (xy 130.476613 100.160489)\r\n\t\t\t\t(xy 130.560489 100.076613) (xy 130.619799 99.973886) (xy 130.628693 99.940691) (xy 133.9495 99.940691)\r\n\t\t\t\t(xy 133.9495 100.059309) (xy 133.957313 100.088467) (xy 133.980202 100.17389) (xy 134.039507 100.276608)\r\n\t\t\t\t(xy 134.039509 100.27661) (xy 134.039511 100.276613) (xy 134.123387 100.360489) (xy 134.123389 100.36049)\r\n\t\t\t\t(xy 134.123391 100.360492) (xy 134.22611 100.419797) (xy 134.226111 100.419797) (xy 134.226114 100.419799)\r\n\t\t\t\t(xy 134.340691 100.4505) (xy 134.340693 100.4505) (xy 134.459307 100.4505) (xy 134.459309 100.4505)\r\n\t\t\t\t(xy 134.573886 100.419799) (xy 134.573888 100.419797) (xy 134.57389 100.419797) (xy 134.676608 100.360492)\r\n\t\t\t\t(xy 134.676608 100.360491) (xy 134.676613 100.360489) (xy 134.760489 100.276613) (xy 134.772844 100.255214)\r\n\t\t\t\t(xy 134.819797 100.17389) (xy 134.819797 100.173888) (xy 134.819799 100.173886) (xy 134.8505 100.059309)\r\n\t\t\t\t(xy 134.8505 99.940691) (xy 134.819799 99.826114) (xy 134.819797 99.826111) (xy 134.819797 99.826109)\r\n\t\t\t\t(xy 134.760492 99.723391) (xy 134.76049 99.723389) (xy 134.760489 99.723387) (xy 134.676613 99.639511)\r\n\t\t\t\t(xy 134.67661 99.639509) (xy 134.676608 99.639507) (xy 134.573889 99.580202) (xy 134.57389 99.580202)\r\n\t\t\t\t(xy 134.560351 99.576574) (xy 134.459309 99.5495) (xy 134.340691 99.5495) (xy 134.270567 99.568289)\r\n\t\t\t\t(xy 134.226109 99.580202) (xy 134.123391 99.639507) (xy 134.039507 99.723391) (xy 133.980202 99.826109)\r\n\t\t\t\t(xy 133.971307 99.859307) (xy 133.9495 99.940691) (xy 130.628693 99.940691) (xy 130.632863 99.92513)\r\n\t\t\t\t(xy 130.637298 99.908581) (xy 130.637298 99.908579) (xy 130.644544 99.881536) (xy 130.6505 99.859309)\r\n\t\t\t\t(xy 130.6505 99.740691) (xy 130.619799 99.626114) (xy 130.619797 99.626111) (xy 130.619797 99.626109)\r\n\t\t\t\t(xy 130.560492 99.523391) (xy 130.56049 99.523389) (xy 130.560489 99.523387) (xy 130.476613 99.439511)\r\n\t\t\t\t(xy 130.47661 99.439509) (xy 130.476608 99.439507) (xy 130.373889 99.380202) (xy 130.37389 99.380202)\r\n\t\t\t\t(xy 130.360351 99.376574) (xy 130.259309 99.3495) (xy 130.140691 99.3495) (xy 130.099669 99.360492)\r\n\t\t\t\t(xy 130.026109 99.380202) (xy 129.923391 99.439507) (xy 129.839507 99.523391) (xy 129.780202 99.626109)\r\n\t\t\t\t(xy 129.780201 99.626114) (xy 129.7495 99.740691) (xy 129.0505 99.740691) (xy 129.019799 99.626114)\r\n\t\t\t\t(xy 129.019797 99.626111) (xy 129.019797 99.626109) (xy 128.960492 99.523391) (xy 128.96049 99.523389)\r\n\t\t\t\t(xy 128.960489 99.523387) (xy 128.876613 99.439511) (xy 128.87661 99.439509) (xy 128.876608 99.439507)\r\n\t\t\t\t(xy 128.773889 99.380202) (xy 128.77389 99.380202) (xy 128.760351 99.376574) (xy 128.659309 99.3495)\r\n\t\t\t\t(xy 128.540691 99.3495) (xy 128.499669 99.360492) (xy 128.426109 99.380202) (xy 128.323391 99.439507)\r\n\t\t\t\t(xy 128.239507 99.523391) (xy 128.180202 99.626109) (xy 128.180201 99.626114) (xy 128.1495 99.740691)\r\n\t\t\t\t(xy 127.4505 99.740691) (xy 127.419799 99.626114) (xy 127.419797 99.626111) (xy 127.419797 99.626109)\r\n\t\t\t\t(xy 127.360492 99.523391) (xy 127.36049 99.523389) (xy 127.360489 99.523387) (xy 127.276613 99.439511)\r\n\t\t\t\t(xy 127.27661 99.439509) (xy 127.276608 99.439507) (xy 127.173889 99.380202) (xy 127.17389 99.380202)\r\n\t\t\t\t(xy 127.160351 99.376574) (xy 127.059309 99.3495) (xy 126.940691 99.3495) (xy 126.899669 99.360492)\r\n\t\t\t\t(xy 126.826109 99.380202) (xy 126.723391 99.439507) (xy 126.639507 99.523391) (xy 126.580202 99.626109)\r\n\t\t\t\t(xy 126.580201 99.626114) (xy 126.5495 99.740691) (xy 125.8505 99.740691) (xy 125.819799 99.626114)\r\n\t\t\t\t(xy 125.819797 99.626111) (xy 125.819797 99.626109) (xy 125.760492 99.523391) (xy 125.76049 99.523389)\r\n\t\t\t\t(xy 125.760489 99.523387) (xy 125.676613 99.439511) (xy 125.67661 99.439509) (xy 125.676608 99.439507)\r\n\t\t\t\t(xy 125.573889 99.380202) (xy 125.57389 99.380202) (xy 125.560351 99.376574) (xy 125.459309 99.3495)\r\n\t\t\t\t(xy 125.340691 99.3495) (xy 125.299669 99.360492) (xy 125.226109 99.380202) (xy 125.123391 99.439507)\r\n\t\t\t\t(xy 125.039507 99.523391) (xy 124.980202 99.626109) (xy 124.980201 99.626114) (xy 124.9495 99.740691)\r\n\t\t\t\t(xy 124.2505 99.740691) (xy 124.219799 99.626114) (xy 124.219797 99.626111) (xy 124.219797 99.626109)\r\n\t\t\t\t(xy 124.160492 99.523391) (xy 124.16049 99.523389) (xy 124.160489 99.523387) (xy 124.076613 99.439511)\r\n\t\t\t\t(xy 124.07661 99.439509) (xy 124.076608 99.439507) (xy 123.973889 99.380202) (xy 123.97389 99.380202)\r\n\t\t\t\t(xy 123.960351 99.376574) (xy 123.859309 99.3495) (xy 123.740691 99.3495) (xy 123.699669 99.360492)\r\n\t\t\t\t(xy 123.626109 99.380202) (xy 123.523391 99.439507) (xy 123.439507 99.523391) (xy 123.380202 99.626109)\r\n\t\t\t\t(xy 123.380201 99.626114) (xy 123.3495 99.740691) (xy 122.6505 99.740691) (xy 122.619799 99.626114)\r\n\t\t\t\t(xy 122.619797 99.626111) (xy 122.619797 99.626109) (xy 122.560492 99.523391) (xy 122.56049 99.523389)\r\n\t\t\t\t(xy 122.560489 99.523387) (xy 122.476613 99.439511) (xy 122.47661 99.439509) (xy 122.476608 99.439507)\r\n\t\t\t\t(xy 122.373889 99.380202) (xy 122.37389 99.380202) (xy 122.360351 99.376574) (xy 122.259309 99.3495)\r\n\t\t\t\t(xy 122.140691 99.3495) (xy 122.099669 99.360492) (xy 122.026109 99.380202) (xy 121.923391 99.439507)\r\n\t\t\t\t(xy 121.839507 99.523391) (xy 121.780202 99.626109) (xy 121.780201 99.626114) (xy 121.7495 99.740691)\r\n\t\t\t\t(xy 121.0505 99.740691) (xy 121.019799 99.626114) (xy 121.019797 99.626111) (xy 121.019797 99.626109)\r\n\t\t\t\t(xy 120.960492 99.523391) (xy 120.96049 99.523389) (xy 120.960489 99.523387) (xy 120.876613 99.439511)\r\n\t\t\t\t(xy 120.87661 99.439509) (xy 120.876608 99.439507) (xy 120.773889 99.380202) (xy 120.77389 99.380202)\r\n\t\t\t\t(xy 120.760351 99.376574) (xy 120.659309 99.3495) (xy 120.540691 99.3495) (xy 120.499669 99.360492)\r\n\t\t\t\t(xy 120.426109 99.380202) (xy 120.323391 99.439507) (xy 120.239507 99.523391) (xy 120.180202 99.626109)\r\n\t\t\t\t(xy 120.180201 99.626114) (xy 120.1495 99.740691) (xy 119.4505 99.740691) (xy 119.419799 99.626114)\r\n\t\t\t\t(xy 119.419797 99.626111) (xy 119.419797 99.626109) (xy 119.360492 99.523391) (xy 119.36049 99.523389)\r\n\t\t\t\t(xy 119.360489 99.523387) (xy 119.276613 99.439511) (xy 119.27661 99.439509) (xy 119.276608 99.439507)\r\n\t\t\t\t(xy 119.173889 99.380202) (xy 119.17389 99.380202) (xy 119.160351 99.376574) (xy 119.059309 99.3495)\r\n\t\t\t\t(xy 118.940691 99.3495) (xy 118.899669 99.360492) (xy 118.826109 99.380202) (xy 118.723391 99.439507)\r\n\t\t\t\t(xy 118.639507 99.523391) (xy 118.580202 99.626109) (xy 118.580201 99.626114) (xy 118.5495 99.740691)\r\n\t\t\t\t(xy 117.8505 99.740691) (xy 117.819799 99.626114) (xy 117.819797 99.626111) (xy 117.819797 99.626109)\r\n\t\t\t\t(xy 117.760492 99.523391) (xy 117.76049 99.523389) (xy 117.760489 99.523387) (xy 117.676613 99.439511)' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'\r\n\t\t\t\t(xy 117.67661 99.439509) (xy 117.676608 99.439507) (xy 117.573889 99.380202) (xy 117.57389 99.380202)\r\n\t\t\t\t(xy 117.560351 99.376574) (xy 117.459309 99.3495) (xy 117.340691 99.3495) (xy 117.299669 99.360492)\r\n\t\t\t\t(xy 117.226109 99.380202) (xy 117.123391 99.439507) (xy 117.039507 99.523391) (xy 116.980202 99.626109)\r\n\t\t\t\t(xy 116.980201 99.626114) (xy 116.9495 99.740691) (xy 116.2505 99.740691) (xy 116.219799 99.626114)\r\n\t\t\t\t(xy 116.219797 99.626111) (xy 116.219797 99.626109) (xy 116.160492 99.523391) (xy 116.16049 99.523389)\r\n\t\t\t\t(xy 116.160489 99.523387) (xy 116.076613 99.439511) (xy 116.07661 99.439509) (xy 116.076608 99.439507)\r\n\t\t\t\t(xy 115.973889 99.380202) (xy 115.97389 99.380202) (xy 115.960351 99.376574) (xy 115.859309 99.3495)\r\n\t\t\t\t(xy 115.740691 99.3495) (xy 115.699669 99.360492) (xy 115.626109 99.380202) (xy 115.523391 99.439507)\r\n\t\t\t\t(xy 115.439507 99.523391) (xy 115.380202 99.626109) (xy 115.380201 99.626114) (xy 115.3495 99.740691)\r\n\t\t\t\t(xy 114.6505 99.740691) (xy 114.619799 99.626114) (xy 114.619797 99.626111) (xy 114.619797 99.626109)\r\n\t\t\t\t(xy 114.560492 99.523391) (xy 114.56049 99.523389) (xy 114.560489 99.523387) (xy 114.476613 99.439511)\r\n\t\t\t\t(xy 114.47661 99.439509) (xy 114.476608 99.439507) (xy 114.373889 99.380202) (xy 114.37389 99.380202)\r\n\t\t\t\t(xy 114.360351 99.376574) (xy 114.259309 99.3495) (xy 114.140691 99.3495) (xy 114.099669 99.360492)\r\n\t\t\t\t(xy 114.026109 99.380202) (xy 113.923391 99.439507) (xy 113.839507 99.523391) (xy 113.780202 99.626109)\r\n\t\t\t\t(xy 113.780201 99.626114) (xy 113.7495 99.740691) (xy 113.0505 99.740691) (xy 113.019799 99.626114)\r\n\t\t\t\t(xy 113.019797 99.626111) (xy 113.019797 99.626109) (xy 112.960492 99.523391) (xy 112.96049 99.523389)\r\n\t\t\t\t(xy 112.960489 99.523387) (xy 112.876613 99.439511) (xy 112.87661 99.439509) (xy 112.876608 99.439507)\r\n\t\t\t\t(xy 112.773889 99.380202) (xy 112.77389 99.380202) (xy 112.760351 99.376574) (xy 112.659309 99.3495)\r\n\t\t\t\t(xy 112.540691 99.3495) (xy 112.499669 99.360492) (xy 112.426109 99.380202) (xy 112.323391 99.439507)\r\n\t\t\t\t(xy 112.239507 99.523391) (xy 112.180202 99.626109) (xy 112.180201 99.626114) (xy 112.1495 99.740691)\r\n\t\t\t\t(xy 108.37048 99.740691) (xy 108.360492 99.723391) (xy 108.36049 99.723389) (xy 108.360489 99.723387)\r\n\t\t\t\t(xy 108.276613 99.639511) (xy 108.27661 99.639509) (xy 108.276608 99.639507) (xy 108.173889 99.580202)\r\n\t\t\t\t(xy 108.17389 99.580202) (xy 108.160351 99.576574) (xy 108.059309 99.5495) (xy 107.940691 99.5495)\r\n\t\t\t\t(xy 107.870567 99.568289) (xy 107.826109 99.580202) (xy 107.723391 99.639507) (xy 107.639507 99.723391)\r\n\t\t\t\t(xy 107.580202 99.826109) (xy 107.571307 99.859307) (xy 107.5495 99.940691) (xy 104.4505 99.940691)\r\n\t\t\t\t(xy 104.419799 99.826114) (xy 104.419797 99.826111) (xy 104.419797 99.826109) (xy 104.360492 99.723391)\r\n\t\t\t\t(xy 104.36049 99.723389) (xy 104.360489 99.723387) (xy 104.276613 99.639511) (xy 104.27661 99.639509)\r\n\t\t\t\t(xy 104.276608 99.639507) (xy 104.173889 99.580202) (xy 104.17389 99.580202) (xy 104.160351 99.576574)\r\n\t\t\t\t(xy 104.059309 99.5495) (xy 103.940691 99.5495) (xy 103.870567 99.568289) (xy 103.826109 99.580202)\r\n\t\t\t\t(xy 103.723391 99.639507) (xy 103.639507 99.723391) (xy 103.580202 99.826109) (xy 103.571307 99.859307)\r\n\t\t\t\t(xy 103.5495 99.940691) (xy 100.4505 99.940691) (xy 100.419799 99.826114) (xy 100.419797 99.826111)\r\n\t\t\t\t(xy 100.419797 99.826109) (xy 100.360492 99.723391) (xy 100.36049 99.723389) (xy 100.360489 99.723387)\r\n\t\t\t\t(xy 100.276613 99.639511) (xy 100.27661 99.639509) (xy 100.276608 99.639507) (xy 100.173889 99.580202)\r\n\t\t\t\t(xy 100.17389 99.580202) (xy 100.160351 99.576574) (xy 100.059309 99.5495) (xy 99.940691 99.5495)\r\n\t\t\t\t(xy 99.870567 99.568289) (xy 99.826109 99.580202) (xy 99.723391 99.639507) (xy 99.639507 99.723391)\r\n\t\t\t\t(xy 99.580202 99.826109) (xy 99.571307 99.859307) (xy 99.5495 99.940691) (xy 88.4505 99.940691)\r\n\t\t\t\t(xy 88.419799 99.826114) (xy 88.419797 99.826111) (xy 88.419797 99.826109) (xy 88.360492 99.723391)\r\n\t\t\t\t(xy 88.36049 99.723389) (xy 88.360489 99.723387) (xy 88.276613 99.639511) (xy 88.27661 99.639509)\r\n\t\t\t\t(xy 88.276608 99.639507) (xy 88.173889 99.580202) (xy 88.17389 99.580202) (xy 88.160351 99.576574)\r\n\t\t\t\t(xy 88.059309 99.5495) (xy 87.940691 99.5495) (xy 87.870567 99.568289) (xy 87.826109 99.580202)\r\n\t\t\t\t(xy 87.723391 99.639507) (xy 87.639507 99.723391) (xy 87.580202 99.826109) (xy 87.571307 99.859307)\r\n\t\t\t\t(xy 87.5495 99.940691) (xy 82.9 99.940691) (xy 82.9 98.240691) (xy 84.8495 98.240691) (xy 84.8495 98.359309)\r\n\t\t\t\t(xy 84.873935 98.4505) (xy 84.880202 98.47389) (xy 84.939507 98.576608) (xy 84.939509 98.57661)\r\n\t\t\t\t(xy 84.939511 98.576613) (xy 85.023387 98.660489) (xy 85.023389 98.66049) (xy 85.023391 98.660492)\r\n\t\t\t\t(xy 85.12611 98.719797) (xy 85.126111 98.719797) (xy 85.126114 98.719799) (xy 85.240691 98.7505)\r\n\t\t\t\t(xy 85.240693 98.7505) (xy 85.359307 98.7505) (xy 85.359309 98.7505) (xy 85.473886 98.719799) (xy 85.473888 98.719797)\r\n\t\t\t\t(xy 85.47389 98.719797) (xy 85.576608 98.660492) (xy 85.576608 98.660491) (xy 85.576613 98.660489)\r\n\t\t\t\t(xy 85.660489 98.576613) (xy 85.676143 98.5495) (xy 85.719797 98.47389) (xy 85.719797 98.473888)\r\n\t\t\t\t(xy 85.719799 98.473886) (xy 85.7505 98.359309) (xy 85.7505 98.240691) (xy 85.723705 98.140691)\r\n\t\t\t\t(xy 109.9495 98.140691) (xy 109.9495 98.259309) (xy 109.954137 98.276613) (xy 109.980202 98.37389)\r\n\t\t\t\t(xy 110.039507 98.476608) (xy 110.039509 98.47661) (xy 110.039511 98.476613) (xy 110.123387 98.560489)\r\n\t\t\t\t(xy 110.123389 98.56049) (xy 110.123391 98.560492) (xy 110.22611 98.619797) (xy 110.226111 98.619797)\r\n\t\t\t\t(xy 110.226114 98.619799) (xy 110.340691 98.6505) (xy 110.340693 98.6505) (xy 110.459307 98.6505)\r\n\t\t\t\t(xy 110.459309 98.6505) (xy 110.573886 98.619799) (xy 110.573888 98.619797) (xy 110.57389 98.619797)\r\n\t\t\t\t(xy 110.676608 98.560492) (xy 110.676608 98.560491) (xy 110.676613 98.560489) (xy 110.760489 98.476613)\r\n\t\t\t\t(xy 110.762061 98.47389) (xy 110.819797 98.37389) (xy 110.819797 98.373888) (xy 110.819799 98.373886)\r\n\t\t\t\t(xy 110.8505 98.259309) (xy 110.8505 98.140691) (xy 110.819799 98.026114) (xy 110.819797 98.026111)\r\n\t\t\t\t(xy 110.819797 98.026109) (xy 110.760492 97.923391) (xy 110.76049 97.923389) (xy 110.760489 97.923387)\r\n\t\t\t\t(xy 110.676613 97.839511) (xy 110.67661 97.839509) (xy 110.676608 97.839507) (xy 110.573889 97.780202)\r\n\t\t\t\t(xy 110.57389 97.780202) (xy 110.550318 97.773886) (xy 110.459309 97.7495) (xy 110.340691 97.7495)\r\n\t\t\t\t(xy 110.270567 97.768289) (xy 110.226109 97.780202) (xy 110.123391 97.839507) (xy 110.039507 97.923391)\r\n\t\t\t\t(xy 109.980202 98.026109) (xy 109.971307 98.059307) (xy 109.9495 98.140691) (xy 85.723705 98.140691)\r\n\t\t\t\t(xy 85.719799 98.126114) (xy 85.704158 98.099023) (xy 85.660492 98.023391) (xy 85.66049 98.023389)\r\n\t\t\t\t(xy 85.660489 98.023387) (xy 85.576613 97.939511) (xy 85.57661 97.939509) (xy 85.576608 97.939507)\r\n\t\t\t\t(xy 85.473889 97.880202) (xy 85.47389 97.880202) (xy 85.460351 97.876574) (xy 85.359309 97.8495)\r\n\t\t\t\t(xy 85.240691 97.8495) (xy 85.184711 97.8645) (xy 85.126109 97.880202) (xy 85.023391 97.939507)\r\n\t\t\t\t(xy 84.939507 98.023391) (xy 84.880202 98.126109) (xy 84.871168 98.159824) (xy 84.8495 98.240691)\r\n\t\t\t\t(xy 82.9 98.240691) (xy 82.9 97.3) (xy 82.899999 97.3) (xy 74.0995 97.3) (xy 74.041309 97.281093)\r\n\t\t\t\t(xy 74.005345 97.231593) (xy 74.0005 97.201) (xy 74.0005 96.740691) (xy 108.5495 96.740691) (xy 108.5495 96.859309)\r\n\t\t\t\t(xy 108.571306 96.940691) (xy 108.580202 96.97389) (xy 108.639507 97.076608) (xy 108.639509 97.07661)\r\n\t\t\t\t(xy 108.639511 97.076613) (xy 108.723387 97.160489) (xy 108.723389 97.16049) (xy 108.723391 97.160492)\r\n\t\t\t\t(xy 108.82611 97.219797) (xy 108.826111 97.219797) (xy 108.826114 97.219799) (xy 108.940691 97.2505)\r\n\t\t\t\t(xy 108.940693 97.2505) (xy 109.059307 97.2505) (xy 109.059309 97.2505) (xy 109.173886 97.219799)\r\n\t\t\t\t(xy 109.173888 97.219797) (xy 109.17389 97.219797) (xy 109.276608 97.160492) (xy 109.276608 97.160491)\r\n\t\t\t\t(xy 109.276613 97.160489) (xy 109.360489 97.076613) (xy 109.363389 97.071591) (xy 109.381916 97.0395)\r\n\t\t\t\t(xy 109.419799 96.973886) (xy 109.428694 96.940691) (xy 112.1495 96.940691) (xy 112.1495 97.059309)\r\n\t\t\t\t(xy 112.154137 97.076613) (xy 112.180202 97.17389) (xy 112.239507 97.276608) (xy 112.239509 97.27661)\r\n\t\t\t\t(xy' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' 112.239511 97.276613) (xy 112.323387 97.360489) (xy 112.323389 97.36049) (xy 112.416526 97.414264)\r\n\t\t\t\t(xy 112.457466 97.459734) (xy 112.463861 97.520584) (xy 112.433268 97.573572) (xy 112.416526 97.585736)\r\n\t\t\t\t(xy 112.323389 97.639509) (xy 112.239507 97.723391) (xy 112.180202 97.826109) (xy 112.168229 97.870792)\r\n\t\t\t\t(xy 112.1495 97.940691) (xy 112.1495 98.059309) (xy 112.171306 98.140691) (xy 112.180202 98.17389)\r\n\t\t\t\t(xy 112.239507 98.276608) (xy 112.239509 98.27661) (xy 112.239511 98.276613) (xy 112.323387 98.360489)\r\n\t\t\t\t(xy 112.323389 98.36049) (xy 112.323391 98.360492) (xy 112.42611 98.419797) (xy 112.426111 98.419797)\r\n\t\t\t\t(xy 112.426114 98.419799) (xy 112.540691 98.4505) (xy 112.540693 98.4505) (xy 112.659307 98.4505)\r\n\t\t\t\t(xy 112.659309 98.4505) (xy 112.773886 98.419799) (xy 112.773888 98.419797) (xy 112.77389 98.419797)\r\n\t\t\t\t(xy 112.876608 98.360492) (xy 112.876608 98.360491) (xy 112.876613 98.360489) (xy 112.960489 98.276613)\r\n\t\t\t\t(xy 112.981229 98.240691) (xy 113.019797 98.17389) (xy 113.019797 98.173888) (xy 113.019799 98.173886)\r\n\t\t\t\t(xy 113.0505 98.059309) (xy 113.0505 97.940691) (xy 113.019799 97.826114) (xy 113.019797 97.826111)\r\n\t\t\t\t(xy 113.019797 97.826109) (xy 112.960492 97.723391) (xy 112.96049 97.723389) (xy 112.960489 97.723387)\r\n\t\t\t\t(xy 112.876613 97.639511) (xy 112.87661 97.639509) (xy 112.876608 97.639507) (xy 112.783474 97.585736)\r\n\t\t\t\t(xy 112.742533 97.540267) (xy 112.736137 97.479416) (xy 112.76673 97.426428) (xy 112.783474 97.414264)\r\n\t\t\t\t(xy 112.876608 97.360492) (xy 112.876608 97.360491) (xy 112.876613 97.360489) (xy 112.960489 97.276613)\r\n\t\t\t\t(xy 112.960492 97.276608) (xy 113.019797 97.17389) (xy 113.019797 97.173888) (xy 113.019799 97.173886)\r\n\t\t\t\t(xy 113.0505 97.059309) (xy 113.0505 96.940691) (xy 113.7495 96.940691) (xy 113.7495 97.059309)\r\n\t\t\t\t(xy 113.754137 97.076613) (xy 113.780202 97.17389) (xy 113.839507 97.276608) (xy 113.839509 97.27661)\r\n\t\t\t\t(xy 113.839511 97.276613) (xy 113.923387 97.360489) (xy 113.923389 97.36049) (xy 114.016526 97.414264)\r\n\t\t\t\t(xy 114.057466 97.459734) (xy 114.063861 97.520584) (xy 114.033268 97.573572) (xy 114.016526 97.585736)\r\n\t\t\t\t(xy 113.923389 97.639509) (xy 113.839507 97.723391) (xy 113.780202 97.826109) (xy 113.768229 97.870792)\r\n\t\t\t\t(xy 113.7495 97.940691) (xy 113.7495 98.059309) (xy 113.771306 98.140691) (xy 113.780202 98.17389)\r\n\t\t\t\t(xy 113.839507 98.276608) (xy 113.839509 98.27661) (xy 113.839511 98.276613) (xy 113.923387 98.360489)\r\n\t\t\t\t(xy 113.923389 98.36049) (xy 113.923391 98.360492) (xy 114.02611 98.419797) (xy 114.026111 98.419797)\r\n\t\t\t\t(xy 114.026114 98.419799) (xy 114.140691 98.4505) (xy 114.140693 98.4505) (xy 114.259307 98.4505)\r\n\t\t\t\t(xy 114.259309 98.4505) (xy 114.373886 98.419799) (xy 114.373888 98.419797) (xy 114.37389 98.419797)\r\n\t\t\t\t(xy 114.476608 98.360492) (xy 114.476608 98.360491) (xy 114.476613 98.360489) (xy 114.560489 98.276613)\r\n\t\t\t\t(xy 114.581229 98.240691) (xy 114.619797 98.17389) (xy 114.619797 98.173888) (xy 114.619799 98.173886)\r\n\t\t\t\t(xy 114.6505 98.059309) (xy 114.6505 97.940691) (xy 114.619799 97.826114) (xy 114.619797 97.826111)\r\n\t\t\t\t(xy 114.619797 97.826109) (xy 114.560492 97.723391) (xy 114.56049 97.723389) (xy 114.560489 97.723387)\r\n\t\t\t\t(xy 114.476613 97.639511) (xy 114.47661 97.639509) (xy 114.476608 97.639507) (xy 114.383474 97.585736)\r\n\t\t\t\t(xy 114.342533 97.540267) (xy 114.336137 97.479416) (xy 114.36673 97.426428) (xy 114.383474 97.414264)\r\n\t\t\t\t(xy 114.476608 97.360492) (xy 114.476608 97.360491) (xy 114.476613 97.360489) (xy 114.560489 97.276613)\r\n\t\t\t\t(xy 114.560492 97.276608) (xy 114.619797 97.17389) (xy 114.619797 97.173888) (xy 114.619799 97.173886)\r\n\t\t\t\t(xy 114.6505 97.059309) (xy 114.6505 96.940691) (xy 115.3495 96.940691) (xy 115.3495 97.059309)\r\n\t\t\t\t(xy 115.354137 97.076613) (xy 115.380202 97.17389) (xy 115.439507 97.276608) (xy 115.439509 97.27661)\r\n\t\t\t\t(xy 115.439511 97.276613) (xy 115.523387 97.360489) (xy 115.523389 97.36049) (xy 115.616526 97.414264)\r\n\t\t\t\t(xy 115.657466 97.459734) (xy 115.663861 97.520584) (xy 115.633268 97.573572) (xy 115.616526 97.585736)\r\n\t\t\t\t(xy 115.523389 97.639509) (xy 115.439507 97.723391) (xy 115.380202 97.826109) (xy 115.368229 97.870792)\r\n\t\t\t\t(xy 115.3495 97.940691) (xy 115.3495 98.059309) (xy 115.371306 98.140691) (xy 115.380202 98.17389)\r\n\t\t\t\t(xy 115.439507 98.276608) (xy 115.439509 98.27661) (xy 115.439511 98.276613) (xy 115.523387 98.360489)\r\n\t\t\t\t(xy 115.523389 98.36049) (xy 115.523391 98.360492) (xy 115.62611 98.419797) (xy 115.626111 98.419797)\r\n\t\t\t\t(xy 115.626114 98.419799) (xy 115.740691 98.4505) (xy 115.740693 98.4505) (xy 115.859307 98.4505)\r\n\t\t\t\t(xy 115.859309 98.4505) (xy 115.973886 98.419799) (xy 115.973888 98.419797) (xy 115.97389 98.419797)\r\n\t\t\t\t(xy 116.076608 98.360492) (xy 116.076608 98.360491) (xy 116.076613 98.360489) (xy 116.160489 98.276613)\r\n\t\t\t\t(xy 116.181229 98.240691) (xy 116.219797 98.17389) (xy 116.219797 98.173888) (xy 116.219799 98.173886)\r\n\t\t\t\t(xy 116.2505 98.059309) (xy 116.2505 97.940691) (xy 116.219799 97.826114) (xy 116.219797 97.826111)\r\n\t\t\t\t(xy 116.219797 97.826109) (xy 116.160492 97.723391) (xy 116.16049 97.723389) (xy 116.160489 97.723387)\r\n\t\t\t\t(xy 116.076613 97.639511) (xy 116.07661 97.639509) (xy 116.076608 97.639507) (xy 115.983474 97.585736)\r\n\t\t\t\t(xy 115.942533 97.540267) (xy 115.936137 97.479416) (xy 115.96673 97.426428) (xy 115.983474 97.414264)\r\n\t\t\t\t(xy 116.076608 97.360492) (xy 116.076608 97.360491) (xy 116.076613 97.360489) (xy 116.160489 97.276613)\r\n\t\t\t\t(xy 116.160492 97.276608) (xy 116.219797 97.17389) (xy 116.219797 97.173888) (xy 116.219799 97.173886)\r\n\t\t\t\t(xy 116.2505 97.059309) (xy 116.2505 96.940691) (xy 116.9495 96.940691) (xy 116.9495 97.059309)\r\n\t\t\t\t(xy 116.954137 97.076613) (xy 116.980202 97.17389) (xy 117.039507 97.276608) (xy 117.039509 97.27661)\r\n\t\t\t\t(xy 117.039511 97.276613) (xy 117.123387 97.360489) (xy 117.123389 97.36049) (xy 117.216526 97.414264)\r\n\t\t\t\t(xy 117.257466 97.459734) (xy 117.263861 97.520584) (xy 117.233268 97.573572) (xy 117.216526 97.585736)\r\n\t\t\t\t(xy 117.123389 97.639509) (xy 117.039507 97.723391) (xy 116.980202 97.826109) (xy 116.968229 97.870792)\r\n\t\t\t\t(xy 116.9495 97.940691) (xy 116.9495 98.059309) (xy 116.971306 98.140691) (xy 116.980202 98.17389)\r\n\t\t\t\t(xy 117.039507 98.276608) (xy 117.039509 98.27661) (xy 117.039511 98.276613) (xy 117.123387 98.360489)\r\n\t\t\t\t(xy 117.123389 98.36049) (xy 117.123391 98.360492) (xy 117.22611 98.419797) (xy 117.226111 98.419797)\r\n\t\t\t\t(xy 117.226114 98.419799) (xy 117.340691 98.4505) (xy 117.340693 98.4505) (xy 117.459307 98.4505)\r\n\t\t\t\t(xy 117.459309 98.4505) (xy 117.573886 98.419799) (xy 117.573888 98.419797) (xy 117.57389 98.419797)\r\n\t\t\t\t(xy 117.676608 98.360492) (xy 117.676608 98.360491) (xy 117.676613 98.360489) (xy 117.760489 98.276613)\r\n\t\t\t\t(xy 117.781229 98.240691) (xy 117.819797 98.17389) (xy 117.819797 98.173888) (xy 117.819799 98.173886)\r\n\t\t\t\t(xy 117.8505 98.059309) (xy 117.8505 97.940691) (xy 117.819799 97.826114) (xy 117.819797 97.826111)\r\n\t\t\t\t(xy 117.819797 97.826109) (xy 117.760492 97.723391) (xy 117.76049 97.723389) (xy 117.760489 97.723387)\r\n\t\t\t\t(xy 117.676613 97.639511) (xy 117.67661 97.639509) (xy 117.676608 97.639507) (xy 117.583474 97.585736)\r\n\t\t\t\t(xy 117.542533 97.540267) (xy 117.536137 97.479416) (xy 117.56673 97.426428) (xy 117.583474 97.414264)\r\n\t\t\t\t(xy 117.676608 97.360492) (xy 117.676608 97.360491) (xy 117.676613 97.360489) (xy 117.760489 97.276613)\r\n\t\t\t\t(xy 117.760492 97.276608) (xy 117.819797 97.17389) (xy 117.819797 97.173888) (xy 117.819799 97.173886)\r\n\t\t\t\t(xy 117.8505 97.059309) (xy 117.8505 96.940691) (xy 118.5495 96.940691) (xy 118.5495 97.059309)\r\n\t\t\t\t(xy 118.554137 97.076613) (xy 118.580202 97.17389) (xy 118.639507 97.276608) (xy 118.639509 97.27661)\r\n\t\t\t\t(xy 118.639511 97.276613) (xy 118.723387 97.360489) (xy 118.723389 97.36049) (xy 118.816526 97.414264)\r\n\t\t\t\t(xy 118.857466 97.459734) (xy 118.863861 97.520584) (xy 118.833268 97.573572) (xy 118.816526 97.585736)\r\n\t\t\t\t(xy 118.723389 97.639509) (xy 118.639507 97.723391) (xy 118.580202 97.826109) (xy 118.568229 97.870792)\r\n\t\t\t\t(xy 118.5495 97.940691) (xy 118.5495 98.059309) (xy 118.571306 98.140691) (xy 118.580202 98.17389)\r\n\t\t\t\t(xy 118.639507 98.276608) (xy 118.639509 98.27661) (xy 118.639511' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' 98.276613) (xy 118.723387 98.360489)\r\n\t\t\t\t(xy 118.723389 98.36049) (xy 118.723391 98.360492) (xy 118.82611 98.419797) (xy 118.826111 98.419797)\r\n\t\t\t\t(xy 118.826114 98.419799) (xy 118.940691 98.4505) (xy 118.940693 98.4505) (xy 119.059307 98.4505)\r\n\t\t\t\t(xy 119.059309 98.4505) (xy 119.173886 98.419799) (xy 119.173888 98.419797) (xy 119.17389 98.419797)\r\n\t\t\t\t(xy 119.276608 98.360492) (xy 119.276608 98.360491) (xy 119.276613 98.360489) (xy 119.360489 98.276613)\r\n\t\t\t\t(xy 119.381229 98.240691) (xy 119.419797 98.17389) (xy 119.419797 98.173888) (xy 119.419799 98.173886)\r\n\t\t\t\t(xy 119.4505 98.059309) (xy 119.4505 97.940691) (xy 119.419799 97.826114) (xy 119.419797 97.826111)\r\n\t\t\t\t(xy 119.419797 97.826109) (xy 119.360492 97.723391) (xy 119.36049 97.723389) (xy 119.360489 97.723387)\r\n\t\t\t\t(xy 119.276613 97.639511) (xy 119.27661 97.639509) (xy 119.276608 97.639507) (xy 119.183474 97.585736)\r\n\t\t\t\t(xy 119.142533 97.540267) (xy 119.136137 97.479416) (xy 119.16673 97.426428) (xy 119.183474 97.414264)\r\n\t\t\t\t(xy 119.276608 97.360492) (xy 119.276608 97.360491) (xy 119.276613 97.360489) (xy 119.360489 97.276613)\r\n\t\t\t\t(xy 119.360492 97.276608) (xy 119.419797 97.17389) (xy 119.419797 97.173888) (xy 119.419799 97.173886)\r\n\t\t\t\t(xy 119.4505 97.059309) (xy 119.4505 96.940691) (xy 120.1495 96.940691) (xy 120.1495 97.059309)\r\n\t\t\t\t(xy 120.154137 97.076613) (xy 120.180202 97.17389) (xy 120.239507 97.276608) (xy 120.239509 97.27661)\r\n\t\t\t\t(xy 120.239511 97.276613) (xy 120.323387 97.360489) (xy 120.323389 97.36049) (xy 120.323391 97.360492)\r\n\t\t\t\t(xy 120.42611 97.419797) (xy 120.426111 97.419797) (xy 120.426114 97.419799) (xy 120.540691 97.4505)\r\n\t\t\t\t(xy 120.540693 97.4505) (xy 120.659307 97.4505) (xy 120.659309 97.4505) (xy 120.773886 97.419799)\r\n\t\t\t\t(xy 120.773888 97.419797) (xy 120.77389 97.419797) (xy 120.876608 97.360492) (xy 120.876608 97.360491)\r\n\t\t\t\t(xy 120.876613 97.360489) (xy 120.960489 97.276613) (xy 120.960492 97.276608) (xy 121.019797 97.17389)\r\n\t\t\t\t(xy 121.019797 97.173888) (xy 121.019799 97.173886) (xy 121.0505 97.059309) (xy 121.0505 96.940691)\r\n\t\t\t\t(xy 121.7495 96.940691) (xy 121.7495 97.059309) (xy 121.754137 97.076613) (xy 121.780202 97.17389)\r\n\t\t\t\t(xy 121.839507 97.276608) (xy 121.839509 97.27661) (xy 121.839511 97.276613) (xy 121.923387 97.360489)\r\n\t\t\t\t(xy 121.923389 97.36049) (xy 121.923391 97.360492) (xy 122.02611 97.419797) (xy 122.026111 97.419797)\r\n\t\t\t\t(xy 122.026114 97.419799) (xy 122.140691 97.4505) (xy 122.140693 97.4505) (xy 122.259307 97.4505)\r\n\t\t\t\t(xy 122.259309 97.4505) (xy 122.373886 97.419799) (xy 122.373888 97.419797) (xy 122.37389 97.419797)\r\n\t\t\t\t(xy 122.476608 97.360492) (xy 122.476608 97.360491) (xy 122.476613 97.360489) (xy 122.560489 97.276613)\r\n\t\t\t\t(xy 122.560492 97.276608) (xy 122.619797 97.17389) (xy 122.619797 97.173888) (xy 122.619799 97.173886)\r\n\t\t\t\t(xy 122.6505 97.059309) (xy 122.6505 96.940691) (xy 123.3495 96.940691) (xy 123.3495 97.059309)\r\n\t\t\t\t(xy 123.354137 97.076613) (xy 123.380202 97.17389) (xy 123.439507 97.276608) (xy 123.439509 97.27661)\r\n\t\t\t\t(xy 123.439511 97.276613) (xy 123.523387 97.360489) (xy 123.523389 97.36049) (xy 123.616526 97.414264)\r\n\t\t\t\t(xy 123.657466 97.459734) (xy 123.663861 97.520584) (xy 123.633268 97.573572) (xy 123.616526 97.585736)\r\n\t\t\t\t(xy 123.523389 97.639509) (xy 123.439507 97.723391) (xy 123.380202 97.826109) (xy 123.368229 97.870792)\r\n\t\t\t\t(xy 123.3495 97.940691) (xy 123.3495 98.059309) (xy 123.371306 98.140691) (xy 123.380202 98.17389)\r\n\t\t\t\t(xy 123.439507 98.276608) (xy 123.439509 98.27661) (xy 123.439511 98.276613) (xy 123.523387 98.360489)\r\n\t\t\t\t(xy 123.523389 98.36049) (xy 123.523391 98.360492) (xy 123.62611 98.419797) (xy 123.626111 98.419797)\r\n\t\t\t\t(xy 123.626114 98.419799) (xy 123.740691 98.4505) (xy 123.740693 98.4505) (xy 123.859307 98.4505)\r\n\t\t\t\t(xy 123.859309 98.4505) (xy 123.973886 98.419799) (xy 123.973888 98.419797) (xy 123.97389 98.419797)\r\n\t\t\t\t(xy 124.076608 98.360492) (xy 124.076608 98.360491) (xy 124.076613 98.360489) (xy 124.160489 98.276613)\r\n\t\t\t\t(xy 124.181229 98.240691) (xy 124.219797 98.17389) (xy 124.219797 98.173888) (xy 124.219799 98.173886)\r\n\t\t\t\t(xy 124.2505 98.059309) (xy 124.2505 97.940691) (xy 124.219799 97.826114) (xy 124.219797 97.826111)\r\n\t\t\t\t(xy 124.219797 97.826109) (xy 124.160492 97.723391) (xy 124.16049 97.723389) (xy 124.160489 97.723387)\r\n\t\t\t\t(xy 124.076613 97.639511) (xy 124.07661 97.639509) (xy 124.076608 97.639507) (xy 123.983474 97.585736)\r\n\t\t\t\t(xy 123.942533 97.540267) (xy 123.936137 97.479416) (xy 123.96673 97.426428) (xy 123.983474 97.414264)\r\n\t\t\t\t(xy 124.076608 97.360492) (xy 124.076608 97.360491) (xy 124.076613 97.360489) (xy 124.160489 97.276613)\r\n\t\t\t\t(xy 124.160492 97.276608) (xy 124.219797 97.17389) (xy 124.219797 97.173888) (xy 124.219799 97.173886)\r\n\t\t\t\t(xy 124.2505 97.059309) (xy 124.2505 96.940691) (xy 124.9495 96.940691) (xy 124.9495 97.059309)\r\n\t\t\t\t(xy 124.954137 97.076613) (xy 124.980202 97.17389) (xy 125.039507 97.276608) (xy 125.039509 97.27661)\r\n\t\t\t\t(xy 125.039511 97.276613) (xy 125.123387 97.360489) (xy 125.123389 97.36049) (xy 125.216526 97.414264)\r\n\t\t\t\t(xy 125.257466 97.459734) (xy 125.263861 97.520584) (xy 125.233268 97.573572) (xy 125.216526 97.585736)\r\n\t\t\t\t(xy 125.123389 97.639509) (xy 125.039507 97.723391) (xy 124.980202 97.826109) (xy 124.968229 97.870792)\r\n\t\t\t\t(xy 124.9495 97.940691) (xy 124.9495 98.059309) (xy 124.971306 98.140691) (xy 124.980202 98.17389)\r\n\t\t\t\t(xy 125.039507 98.276608) (xy 125.039509 98.27661) (xy 125.039511 98.276613) (xy 125.123387 98.360489)\r\n\t\t\t\t(xy 125.123389 98.36049) (xy 125.123391 98.360492) (xy 125.22611 98.419797) (xy 125.226111 98.419797)\r\n\t\t\t\t(xy 125.226114 98.419799) (xy 125.340691 98.4505) (xy 125.340693 98.4505) (xy 125.459307 98.4505)\r\n\t\t\t\t(xy 125.459309 98.4505) (xy 125.573886 98.419799) (xy 125.573888 98.419797) (xy 125.57389 98.419797)\r\n\t\t\t\t(xy 125.676608 98.360492) (xy 125.676608 98.360491) (xy 125.676613 98.360489) (xy 125.760489 98.276613)\r\n\t\t\t\t(xy 125.781229 98.240691) (xy 125.819797 98.17389) (xy 125.819797 98.173888) (xy 125.819799 98.173886)\r\n\t\t\t\t(xy 125.8505 98.059309) (xy 125.8505 97.940691) (xy 125.819799 97.826114) (xy 125.819797 97.826111)\r\n\t\t\t\t(xy 125.819797 97.826109) (xy 125.760492 97.723391) (xy 125.76049 97.723389) (xy 125.760489 97.723387)\r\n\t\t\t\t(xy 125.676613 97.639511) (xy 125.67661 97.639509) (xy 125.676608 97.639507) (xy 125.583474 97.585736)\r\n\t\t\t\t(xy 125.542533 97.540267) (xy 125.536137 97.479416) (xy 125.56673 97.426428) (xy 125.583474 97.414264)\r\n\t\t\t\t(xy 125.676608 97.360492) (xy 125.676608 97.360491) (xy 125.676613 97.360489) (xy 125.760489 97.276613)\r\n\t\t\t\t(xy 125.760492 97.276608) (xy 125.819797 97.17389) (xy 125.819797 97.173888) (xy 125.819799 97.173886)\r\n\t\t\t\t(xy 125.8505 97.059309) (xy 125.8505 96.940691) (xy 126.5495 96.940691) (xy 126.5495 97.059309)\r\n\t\t\t\t(xy 126.554137 97.076613) (xy 126.580202 97.17389) (xy 126.639507 97.276608) (xy 126.639509 97.27661)\r\n\t\t\t\t(xy 126.639511 97.276613) (xy 126.723387 97.360489) (xy 126.723389 97.36049) (xy 126.816526 97.414264)\r\n\t\t\t\t(xy 126.857466 97.459734) (xy 126.863861 97.520584) (xy 126.833268 97.573572) (xy 126.816526 97.585736)\r\n\t\t\t\t(xy 126.723389 97.639509) (xy 126.639507 97.723391) (xy 126.580202 97.826109) (xy 126.568229 97.870792)\r\n\t\t\t\t(xy 126.5495 97.940691) (xy 126.5495 98.059309) (xy 126.571306 98.140691) (xy 126.580202 98.17389)\r\n\t\t\t\t(xy 126.639507 98.276608) (xy 126.639509 98.27661) (xy 126.639511 98.276613) (xy 126.723387 98.360489)\r\n\t\t\t\t(xy 126.723389 98.36049) (xy 126.723391 98.360492) (xy 126.82611 98.419797) (xy 126.826111 98.419797)\r\n\t\t\t\t(xy 126.826114 98.419799) (xy 126.940691 98.4505) (xy 126.940693 98.4505) (xy 127.059307 98.4505)\r\n\t\t\t\t(xy 127.059309 98.4505) (xy 127.173886 98.419799) (xy 127.173888 98.419797) (xy 127.17389 98.419797)\r\n\t\t\t\t(xy 127.276608 98.360492) (xy 127.276608 98.360491) (xy 127.276613 98.360489) (xy 127.360489 98.276613)\r\n\t\t\t\t(xy 127.381229 98.240691) (xy 127.419797 98.17389) (xy 127.419797 98.173888) (xy 127.419799 98.173886)\r\n\t\t\t\t(xy 127.4505 98.059309) (xy 127.4505 97.940691) (xy 127.419799 97.826114) (xy 127.419797 97.826111)\r\n\t\t\t\t(xy 127.419797 97.826109) (xy 127.360492 97.723391) (xy 127.36049 97.723389) (xy 127.360489 97.723387)\r\n\t\t\t\t(xy 127.276613 97.639511) (xy 127.276' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'61 97.639509) (xy 127.276608 97.639507) (xy 127.183474 97.585736)\r\n\t\t\t\t(xy 127.142533 97.540267) (xy 127.136137 97.479416) (xy 127.16673 97.426428) (xy 127.183474 97.414264)\r\n\t\t\t\t(xy 127.276608 97.360492) (xy 127.276608 97.360491) (xy 127.276613 97.360489) (xy 127.360489 97.276613)\r\n\t\t\t\t(xy 127.360492 97.276608) (xy 127.419797 97.17389) (xy 127.419797 97.173888) (xy 127.419799 97.173886)\r\n\t\t\t\t(xy 127.4505 97.059309) (xy 127.4505 96.940691) (xy 128.1495 96.940691) (xy 128.1495 97.059309)\r\n\t\t\t\t(xy 128.154137 97.076613) (xy 128.180202 97.17389) (xy 128.239507 97.276608) (xy 128.239509 97.27661)\r\n\t\t\t\t(xy 128.239511 97.276613) (xy 128.323387 97.360489) (xy 128.323389 97.36049) (xy 128.416526 97.414264)\r\n\t\t\t\t(xy 128.457466 97.459734) (xy 128.463861 97.520584) (xy 128.433268 97.573572) (xy 128.416526 97.585736)\r\n\t\t\t\t(xy 128.323389 97.639509) (xy 128.239507 97.723391) (xy 128.180202 97.826109) (xy 128.168229 97.870792)\r\n\t\t\t\t(xy 128.1495 97.940691) (xy 128.1495 98.059309) (xy 128.171306 98.140691) (xy 128.180202 98.17389)\r\n\t\t\t\t(xy 128.239507 98.276608) (xy 128.239509 98.27661) (xy 128.239511 98.276613) (xy 128.323387 98.360489)\r\n\t\t\t\t(xy 128.323389 98.36049) (xy 128.323391 98.360492) (xy 128.42611 98.419797) (xy 128.426111 98.419797)\r\n\t\t\t\t(xy 128.426114 98.419799) (xy 128.540691 98.4505) (xy 128.540693 98.4505) (xy 128.659307 98.4505)\r\n\t\t\t\t(xy 128.659309 98.4505) (xy 128.773886 98.419799) (xy 128.773888 98.419797) (xy 128.77389 98.419797)\r\n\t\t\t\t(xy 128.876608 98.360492) (xy 128.876608 98.360491) (xy 128.876613 98.360489) (xy 128.960489 98.276613)\r\n\t\t\t\t(xy 128.981229 98.240691) (xy 129.019797 98.17389) (xy 129.019797 98.173888) (xy 129.019799 98.173886)\r\n\t\t\t\t(xy 129.0505 98.059309) (xy 129.0505 97.940691) (xy 129.019799 97.826114) (xy 129.019797 97.826111)\r\n\t\t\t\t(xy 129.019797 97.826109) (xy 128.960492 97.723391) (xy 128.96049 97.723389) (xy 128.960489 97.723387)\r\n\t\t\t\t(xy 128.876613 97.639511) (xy 128.87661 97.639509) (xy 128.876608 97.639507) (xy 128.783474 97.585736)\r\n\t\t\t\t(xy 128.742533 97.540267) (xy 128.736137 97.479416) (xy 128.76673 97.426428) (xy 128.783474 97.414264)\r\n\t\t\t\t(xy 128.876608 97.360492) (xy 128.876608 97.360491) (xy 128.876613 97.360489) (xy 128.960489 97.276613)\r\n\t\t\t\t(xy 128.960492 97.276608) (xy 129.019797 97.17389) (xy 129.019797 97.173888) (xy 129.019799 97.173886)\r\n\t\t\t\t(xy 129.0505 97.059309) (xy 129.0505 96.940691) (xy 129.7495 96.940691) (xy 129.7495 97.059309)\r\n\t\t\t\t(xy 129.754137 97.076613) (xy 129.780202 97.17389) (xy 129.839507 97.276608) (xy 129.839509 97.27661)\r\n\t\t\t\t(xy 129.839511 97.276613) (xy 129.923387 97.360489) (xy 129.923389 97.36049) (xy 130.016526 97.414264)\r\n\t\t\t\t(xy 130.057466 97.459734) (xy 130.063861 97.520584) (xy 130.033268 97.573572) (xy 130.016526 97.585736)\r\n\t\t\t\t(xy 129.923389 97.639509) (xy 129.839507 97.723391) (xy 129.780202 97.826109) (xy 129.768229 97.870792)\r\n\t\t\t\t(xy 129.7495 97.940691) (xy 129.7495 98.059309) (xy 129.771306 98.140691) (xy 129.780202 98.17389)\r\n\t\t\t\t(xy 129.839507 98.276608) (xy 129.839509 98.27661) (xy 129.839511 98.276613) (xy 129.923387 98.360489)\r\n\t\t\t\t(xy 129.923389 98.36049) (xy 129.923391 98.360492) (xy 130.02611 98.419797) (xy 130.026111 98.419797)\r\n\t\t\t\t(xy 130.026114 98.419799) (xy 130.140691 98.4505) (xy 130.140693 98.4505) (xy 130.259307 98.4505)\r\n\t\t\t\t(xy 130.259309 98.4505) (xy 130.373886 98.419799) (xy 130.373888 98.419797) (xy 130.37389 98.419797)\r\n\t\t\t\t(xy 130.476608 98.360492) (xy 130.476608 98.360491) (xy 130.476613 98.360489) (xy 130.560489 98.276613)\r\n\t\t\t\t(xy 130.581229 98.240691) (xy 130.619797 98.17389) (xy 130.619797 98.173888) (xy 130.619799 98.173886)\r\n\t\t\t\t(xy 130.6505 98.059309) (xy 130.6505 97.940691) (xy 130.619799 97.826114) (xy 130.619797 97.826111)\r\n\t\t\t\t(xy 130.619797 97.826109) (xy 130.560492 97.723391) (xy 130.56049 97.723389) (xy 130.560489 97.723387)\r\n\t\t\t\t(xy 130.476613 97.639511) (xy 130.47661 97.639509) (xy 130.476608 97.639507) (xy 130.383474 97.585736)\r\n\t\t\t\t(xy 130.342533 97.540267) (xy 130.336137 97.479416) (xy 130.36673 97.426428) (xy 130.383474 97.414264)\r\n\t\t\t\t(xy 130.476608 97.360492) (xy 130.476608 97.360491) (xy 130.476613 97.360489) (xy 130.560489 97.276613)\r\n\t\t\t\t(xy 130.560492 97.276608) (xy 130.619797 97.17389) (xy 130.619797 97.173888) (xy 130.619799 97.173886)\r\n\t\t\t\t(xy 130.6505 97.059309) (xy 130.6505 96.940691) (xy 130.619799 96.826114) (xy 130.619797 96.826111)\r\n\t\t\t\t(xy 130.619797 96.826109) (xy 130.560492 96.723391) (xy 130.56049 96.723389) (xy 130.560489 96.723387)\r\n\t\t\t\t(xy 130.476613 96.639511) (xy 130.47661 96.639509) (xy 130.476608 96.639507) (xy 130.373889 96.580202)\r\n\t\t\t\t(xy 130.37389 96.580202) (xy 130.360351 96.576574) (xy 130.259309 96.5495) (xy 130.140691 96.5495)\r\n\t\t\t\t(xy 130.070567 96.568289) (xy 130.026109 96.580202) (xy 129.923391 96.639507) (xy 129.839507 96.723391)\r\n\t\t\t\t(xy 129.780202 96.826109) (xy 129.763037 96.890169) (xy 129.7495 96.940691) (xy 129.0505 96.940691)\r\n\t\t\t\t(xy 129.019799 96.826114) (xy 129.019797 96.826111) (xy 129.019797 96.826109) (xy 128.960492 96.723391)\r\n\t\t\t\t(xy 128.96049 96.723389) (xy 128.960489 96.723387) (xy 128.876613 96.639511) (xy 128.87661 96.639509)\r\n\t\t\t\t(xy 128.876608 96.639507) (xy 128.773889 96.580202) (xy 128.77389 96.580202) (xy 128.760351 96.576574)\r\n\t\t\t\t(xy 128.659309 96.5495) (xy 128.540691 96.5495) (xy 128.470567 96.568289) (xy 128.426109 96.580202)\r\n\t\t\t\t(xy 128.323391 96.639507) (xy 128.239507 96.723391) (xy 128.180202 96.826109) (xy 128.163037 96.890169)\r\n\t\t\t\t(xy 128.1495 96.940691) (xy 127.4505 96.940691) (xy 127.419799 96.826114) (xy 127.419797 96.826111)\r\n\t\t\t\t(xy 127.419797 96.826109) (xy 127.360492 96.723391) (xy 127.36049 96.723389) (xy 127.360489 96.723387)\r\n\t\t\t\t(xy 127.276613 96.639511) (xy 127.27661 96.639509) (xy 127.276608 96.639507) (xy 127.173889 96.580202)\r\n\t\t\t\t(xy 127.17389 96.580202) (xy 127.160351 96.576574) (xy 127.059309 96.5495) (xy 126.940691 96.5495)\r\n\t\t\t\t(xy 126.870567 96.568289) (xy 126.826109 96.580202) (xy 126.723391 96.639507) (xy 126.639507 96.723391)\r\n\t\t\t\t(xy 126.580202 96.826109) (xy 126.563037 96.890169) (xy 126.5495 96.940691) (xy 125.8505 96.940691)\r\n\t\t\t\t(xy 125.819799 96.826114) (xy 125.819797 96.826111) (xy 125.819797 96.826109) (xy 125.760492 96.723391)\r\n\t\t\t\t(xy 125.76049 96.723389) (xy 125.760489 96.723387) (xy 125.676613 96.639511) (xy 125.67661 96.639509)\r\n\t\t\t\t(xy 125.676608 96.639507) (xy 125.573889 96.580202) (xy 125.57389 96.580202) (xy 125.560351 96.576574)\r\n\t\t\t\t(xy 125.459309 96.5495) (xy 125.340691 96.5495) (xy 125.270567 96.568289) (xy 125.226109 96.580202)\r\n\t\t\t\t(xy 125.123391 96.639507) (xy 125.039507 96.723391) (xy 124.980202 96.826109) (xy 124.963037 96.890169)\r\n\t\t\t\t(xy 124.9495 96.940691) (xy 124.2505 96.940691) (xy 124.219799 96.826114) (xy 124.219797 96.826111)\r\n\t\t\t\t(xy 124.219797 96.826109) (xy 124.160492 96.723391) (xy 124.16049 96.723389) (xy 124.160489 96.723387)\r\n\t\t\t\t(xy 124.076613 96.639511) (xy 124.07661 96.639509) (xy 124.076608 96.639507) (xy 123.973889 96.580202)\r\n\t\t\t\t(xy 123.97389 96.580202) (xy 123.960351 96.576574) (xy 123.859309 96.5495) (xy 123.740691 96.5495)\r\n\t\t\t\t(xy 123.670567 96.568289) (xy 123.626109 96.580202) (xy 123.523391 96.639507) (xy 123.439507 96.723391)\r\n\t\t\t\t(xy 123.380202 96.826109) (xy 123.363037 96.890169) (xy 123.3495 96.940691) (xy 122.6505 96.940691)\r\n\t\t\t\t(xy 122.619799 96.826114) (xy 122.619797 96.826111) (xy 122.619797 96.826109) (xy 122.560492 96.723391)\r\n\t\t\t\t(xy 122.56049 96.723389) (xy 122.560489 96.723387) (xy 122.476613 96.639511) (xy 122.47661 96.639509)\r\n\t\t\t\t(xy 122.476608 96.639507) (xy 122.373889 96.580202) (xy 122.37389 96.580202) (xy 122.360351 96.576574)\r\n\t\t\t\t(xy 122.259309 96.5495) (xy 122.140691 96.5495) (xy 122.070567 96.568289) (xy 122.026109 96.580202)\r\n\t\t\t\t(xy 121.923391 96.639507) (xy 121.839507 96.723391) (xy 121.780202 96.826109) (xy 121.763037 96.890169)\r\n\t\t\t\t(xy 121.7495 96.940691) (xy 121.0505 96.940691) (xy 121.019799 96.826114) (xy 121.019797 96.826111)\r\n\t\t\t\t(xy 121.019797 96.826109) (xy 120.960492 96.723391) (xy 120.96049 96.723389) (xy 120.960489 96.723387)\r\n\t\t\t\t(xy 120.876613 96.639511) (xy 120.87661 96.639509) (xy 120.876608 96.639507) (xy 120.773889 96.580202)\r\n\t\t\t\t(xy 120.77389 96.580202) (xy 120.760351 96.576574) (xy 120.659309 96.5495) (xy 120.540691 96.5' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'495)\r\n\t\t\t\t(xy 120.470567 96.568289) (xy 120.426109 96.580202) (xy 120.323391 96.639507) (xy 120.239507 96.723391)\r\n\t\t\t\t(xy 120.180202 96.826109) (xy 120.163037 96.890169) (xy 120.1495 96.940691) (xy 119.4505 96.940691)\r\n\t\t\t\t(xy 119.419799 96.826114) (xy 119.419797 96.826111) (xy 119.419797 96.826109) (xy 119.360492 96.723391)\r\n\t\t\t\t(xy 119.36049 96.723389) (xy 119.360489 96.723387) (xy 119.276613 96.639511) (xy 119.27661 96.639509)\r\n\t\t\t\t(xy 119.276608 96.639507) (xy 119.173889 96.580202) (xy 119.17389 96.580202) (xy 119.160351 96.576574)\r\n\t\t\t\t(xy 119.059309 96.5495) (xy 118.940691 96.5495) (xy 118.870567 96.568289) (xy 118.826109 96.580202)\r\n\t\t\t\t(xy 118.723391 96.639507) (xy 118.639507 96.723391) (xy 118.580202 96.826109) (xy 118.563037 96.890169)\r\n\t\t\t\t(xy 118.5495 96.940691) (xy 117.8505 96.940691) (xy 117.819799 96.826114) (xy 117.819797 96.826111)\r\n\t\t\t\t(xy 117.819797 96.826109) (xy 117.760492 96.723391) (xy 117.76049 96.723389) (xy 117.760489 96.723387)\r\n\t\t\t\t(xy 117.676613 96.639511) (xy 117.67661 96.639509) (xy 117.676608 96.639507) (xy 117.573889 96.580202)\r\n\t\t\t\t(xy 117.57389 96.580202) (xy 117.560351 96.576574) (xy 117.459309 96.5495) (xy 117.340691 96.5495)\r\n\t\t\t\t(xy 117.270567 96.568289) (xy 117.226109 96.580202) (xy 117.123391 96.639507) (xy 117.039507 96.723391)\r\n\t\t\t\t(xy 116.980202 96.826109) (xy 116.963037 96.890169) (xy 116.9495 96.940691) (xy 116.2505 96.940691)\r\n\t\t\t\t(xy 116.219799 96.826114) (xy 116.219797 96.826111) (xy 116.219797 96.826109) (xy 116.160492 96.723391)\r\n\t\t\t\t(xy 116.16049 96.723389) (xy 116.160489 96.723387) (xy 116.076613 96.639511) (xy 116.07661 96.639509)\r\n\t\t\t\t(xy 116.076608 96.639507) (xy 115.973889 96.580202) (xy 115.97389 96.580202) (xy 115.960351 96.576574)\r\n\t\t\t\t(xy 115.859309 96.5495) (xy 115.740691 96.5495) (xy 115.670567 96.568289) (xy 115.626109 96.580202)\r\n\t\t\t\t(xy 115.523391 96.639507) (xy 115.439507 96.723391) (xy 115.380202 96.826109) (xy 115.363037 96.890169)\r\n\t\t\t\t(xy 115.3495 96.940691) (xy 114.6505 96.940691) (xy 114.619799 96.826114) (xy 114.619797 96.826111)\r\n\t\t\t\t(xy 114.619797 96.826109) (xy 114.560492 96.723391) (xy 114.56049 96.723389) (xy 114.560489 96.723387)\r\n\t\t\t\t(xy 114.476613 96.639511) (xy 114.47661 96.639509) (xy 114.476608 96.639507) (xy 114.373889 96.580202)\r\n\t\t\t\t(xy 114.37389 96.580202) (xy 114.360351 96.576574) (xy 114.259309 96.5495) (xy 114.140691 96.5495)\r\n\t\t\t\t(xy 114.070567 96.568289) (xy 114.026109 96.580202) (xy 113.923391 96.639507) (xy 113.839507 96.723391)\r\n\t\t\t\t(xy 113.780202 96.826109) (xy 113.763037 96.890169) (xy 113.7495 96.940691) (xy 113.0505 96.940691)\r\n\t\t\t\t(xy 113.019799 96.826114) (xy 113.019797 96.826111) (xy 113.019797 96.826109) (xy 112.960492 96.723391)\r\n\t\t\t\t(xy 112.96049 96.723389) (xy 112.960489 96.723387) (xy 112.876613 96.639511) (xy 112.87661 96.639509)\r\n\t\t\t\t(xy 112.876608 96.639507) (xy 112.773889 96.580202) (xy 112.77389 96.580202) (xy 112.760351 96.576574)\r\n\t\t\t\t(xy 112.659309 96.5495) (xy 112.540691 96.5495) (xy 112.470567 96.568289) (xy 112.426109 96.580202)\r\n\t\t\t\t(xy 112.323391 96.639507) (xy 112.239507 96.723391) (xy 112.180202 96.826109) (xy 112.163037 96.890169)\r\n\t\t\t\t(xy 112.1495 96.940691) (xy 109.428694 96.940691) (xy 109.4505 96.859309) (xy 109.4505 96.740691)\r\n\t\t\t\t(xy 109.419799 96.626114) (xy 109.419797 96.626111) (xy 109.419797 96.626109) (xy 109.360492 96.523391)\r\n\t\t\t\t(xy 109.36049 96.523389) (xy 109.360489 96.523387) (xy 109.276613 96.439511) (xy 109.27661 96.439509)\r\n\t\t\t\t(xy 109.276608 96.439507) (xy 109.173889 96.380202) (xy 109.17389 96.380202) (xy 109.160351 96.376574)\r\n\t\t\t\t(xy 109.059309 96.3495) (xy 108.940691 96.3495) (xy 108.899669 96.360492) (xy 108.826109 96.380202)\r\n\t\t\t\t(xy 108.723391 96.439507) (xy 108.639507 96.523391) (xy 108.580202 96.626109) (xy 108.580201 96.626114)\r\n\t\t\t\t(xy 108.5495 96.740691) (xy 74.0005 96.740691) (xy 74.0005 95.940691) (xy 83.5495 95.940691) (xy 83.5495 96.059309)\r\n\t\t\t\t(xy 83.575274 96.155499) (xy 83.580202 96.17389) (xy 83.639507 96.276608) (xy 83.639509 96.27661)\r\n\t\t\t\t(xy 83.639511 96.276613) (xy 83.723387 96.360489) (xy 83.723389 96.36049) (xy 83.723391 96.360492)\r\n\t\t\t\t(xy 83.82611 96.419797) (xy 83.826111 96.419797) (xy 83.826114 96.419799) (xy 83.940691 96.4505)\r\n\t\t\t\t(xy 83.940693 96.4505) (xy 84.059307 96.4505) (xy 84.059309 96.4505) (xy 84.173886 96.419799) (xy 84.173888 96.419797)\r\n\t\t\t\t(xy 84.17389 96.419797) (xy 84.276608 96.360492) (xy 84.276608 96.360491) (xy 84.276613 96.360489)\r\n\t\t\t\t(xy 84.360489 96.276613) (xy 84.366229 96.266671) (xy 84.419797 96.17389) (xy 84.419797 96.173888)\r\n\t\t\t\t(xy 84.419799 96.173886) (xy 84.4505 96.059309) (xy 84.4505 95.940691) (xy 87.5495 95.940691) (xy 87.5495 96.059309)\r\n\t\t\t\t(xy 87.575274 96.155499) (xy 87.580202 96.17389) (xy 87.639507 96.276608) (xy 87.639509 96.27661)\r\n\t\t\t\t(xy 87.639511 96.276613) (xy 87.723387 96.360489) (xy 87.723389 96.36049) (xy 87.723391 96.360492)\r\n\t\t\t\t(xy 87.82611 96.419797) (xy 87.826111 96.419797) (xy 87.826114 96.419799) (xy 87.940691 96.4505)\r\n\t\t\t\t(xy 87.940693 96.4505) (xy 88.059307 96.4505) (xy 88.059309 96.4505) (xy 88.173886 96.419799) (xy 88.173888 96.419797)\r\n\t\t\t\t(xy 88.17389 96.419797) (xy 88.276608 96.360492) (xy 88.276608 96.360491) (xy 88.276613 96.360489)\r\n\t\t\t\t(xy 88.360489 96.276613) (xy 88.366229 96.266671) (xy 88.419797 96.17389) (xy 88.419797 96.173888)\r\n\t\t\t\t(xy 88.419799 96.173886) (xy 88.4505 96.059309) (xy 88.4505 95.940691) (xy 99.5495 95.940691) (xy 99.5495 96.059309)\r\n\t\t\t\t(xy 99.575274 96.155499) (xy 99.580202 96.17389) (xy 99.639507 96.276608) (xy 99.639509 96.27661)\r\n\t\t\t\t(xy 99.639511 96.276613) (xy 99.723387 96.360489) (xy 99.723389 96.36049) (xy 99.723391 96.360492)\r\n\t\t\t\t(xy 99.82611 96.419797) (xy 99.826111 96.419797) (xy 99.826114 96.419799) (xy 99.940691 96.4505)\r\n\t\t\t\t(xy 99.940693 96.4505) (xy 100.059307 96.4505) (xy 100.059309 96.4505) (xy 100.173886 96.419799)\r\n\t\t\t\t(xy 100.173888 96.419797) (xy 100.17389 96.419797) (xy 100.276608 96.360492) (xy 100.276608 96.360491)\r\n\t\t\t\t(xy 100.276613 96.360489) (xy 100.360489 96.276613) (xy 100.366229 96.266671) (xy 100.419797 96.17389)\r\n\t\t\t\t(xy 100.419797 96.173888) (xy 100.419799 96.173886) (xy 100.4505 96.059309) (xy 100.4505 95.940691)\r\n\t\t\t\t(xy 100.419799 95.826114) (xy 100.419797 95.826111) (xy 100.419797 95.826109) (xy 100.360492 95.723391)\r\n\t\t\t\t(xy 100.36049 95.723389) (xy 100.360489 95.723387) (xy 100.276613 95.639511) (xy 100.27661 95.639509)\r\n\t\t\t\t(xy 100.276608 95.639507) (xy 100.173889 95.580202) (xy 100.17389 95.580202) (xy 100.150318 95.573886)\r\n\t\t\t\t(xy 100.059309 95.5495) (xy 99.940691 95.5495) (xy 99.899669 95.560492) (xy 99.826109 95.580202)\r\n\t\t\t\t(xy 99.723391 95.639507) (xy 99.639507 95.723391) (xy 99.580202 95.826109) (xy 99.580201 95.826114)\r\n\t\t\t\t(xy 99.5495 95.940691) (xy 88.4505 95.940691) (xy 88.419799 95.826114) (xy 88.419797 95.826111)\r\n\t\t\t\t(xy 88.419797 95.826109) (xy 88.360492 95.723391) (xy 88.36049 95.723389) (xy 88.360489 95.723387)\r\n\t\t\t\t(xy 88.276613 95.639511) (xy 88.27661 95.639509) (xy 88.276608 95.639507) (xy 88.173889 95.580202)\r\n\t\t\t\t(xy 88.17389 95.580202) (xy 88.150318 95.573886) (xy 88.059309 95.5495) (xy 87.940691 95.5495) (xy 87.899669 95.560492)\r\n\t\t\t\t(xy 87.826109 95.580202) (xy 87.723391 95.639507) (xy 87.639507 95.723391) (xy 87.580202 95.826109)\r\n\t\t\t\t(xy 87.580201 95.826114) (xy 87.5495 95.940691) (xy 84.4505 95.940691) (xy 84.419799 95.826114)\r\n\t\t\t\t(xy 84.419797 95.826111) (xy 84.419797 95.826109) (xy 84.360492 95.723391) (xy 84.36049 95.723389)\r\n\t\t\t\t(xy 84.360489 95.723387) (xy 84.276613 95.639511) (xy 84.27661 95.639509) (xy 84.276608 95.639507)\r\n\t\t\t\t(xy 84.173889 95.580202) (xy 84.17389 95.580202) (xy 84.150318 95.573886) (xy 84.059309 95.5495)\r\n\t\t\t\t(xy 83.940691 95.5495) (xy 83.899669 95.560492) (xy 83.826109 95.580202) (xy 83.723391 95.639507)\r\n\t\t\t\t(xy 83.639507 95.723391) (xy 83.580202 95.826109) (xy 83.580201 95.826114) (xy 83.5495 95.940691)\r\n\t\t\t\t(xy 74.0005 95.940691) (xy 74.0005 94.640691) (xy 75.1495 94.640691) (xy 75.1495 94.759309) (xy 75.170989 94.839507)\r\n\t\t\t\t(xy 75.180202 94.87389) (xy 75.239507 94.976608) (xy 75.239509 94.97661) (xy 75.239511 94.976613)\r\n\t\t\t\t(xy 75.323387 95.060489) (xy 75.323389 95.06049) (xy 75.323391 95.060492) (xy 75.42611 95.119797)\r\n\t\t\t\t(xy 75.426111 95.119797) (xy 75.426114 95' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'.119799) (xy 75.540691 95.1505) (xy 75.540693 95.1505)\r\n\t\t\t\t(xy 75.659307 95.1505) (xy 75.659309 95.1505) (xy 75.773886 95.119799) (xy 75.773888 95.119797)\r\n\t\t\t\t(xy 75.77389 95.119797) (xy 75.876608 95.060492) (xy 75.876608 95.060491) (xy 75.876613 95.060489)\r\n\t\t\t\t(xy 75.960489 94.976613) (xy 76.019799 94.873886) (xy 76.028694 94.840691) (xy 80.7495 94.840691)\r\n\t\t\t\t(xy 80.7495 94.959309) (xy 80.767533 95.026608) (xy 80.780202 95.07389) (xy 80.839507 95.176608)\r\n\t\t\t\t(xy 80.839509 95.17661) (xy 80.839511 95.176613) (xy 80.923387 95.260489) (xy 80.923389 95.26049)\r\n\t\t\t\t(xy 80.923391 95.260492) (xy 81.02611 95.319797) (xy 81.026111 95.319797) (xy 81.026114 95.319799)\r\n\t\t\t\t(xy 81.140691 95.3505) (xy 81.140693 95.3505) (xy 81.259307 95.3505) (xy 81.259309 95.3505) (xy 81.373886 95.319799)\r\n\t\t\t\t(xy 81.373888 95.319797) (xy 81.37389 95.319797) (xy 81.476608 95.260492) (xy 81.476608 95.260491)\r\n\t\t\t\t(xy 81.476613 95.260489) (xy 81.560489 95.176613) (xy 81.564424 95.169797) (xy 81.619797 95.07389)\r\n\t\t\t\t(xy 81.619797 95.073888) (xy 81.619799 95.073886) (xy 81.6505 94.959309) (xy 81.6505 94.840691)\r\n\t\t\t\t(xy 81.619799 94.726114) (xy 81.619797 94.726111) (xy 81.619797 94.726109) (xy 81.560492 94.623391)\r\n\t\t\t\t(xy 81.56049 94.623389) (xy 81.560489 94.623387) (xy 81.476613 94.539511) (xy 81.47661 94.539509)\r\n\t\t\t\t(xy 81.476608 94.539507) (xy 81.373889 94.480202) (xy 81.37389 94.480202) (xy 81.333602 94.469407)\r\n\t\t\t\t(xy 81.259309 94.4495) (xy 81.140691 94.4495) (xy 81.077351 94.466472) (xy 81.026109 94.480202)\r\n\t\t\t\t(xy 80.923391 94.539507) (xy 80.839507 94.623391) (xy 80.780202 94.726109) (xy 80.771307 94.759307)\r\n\t\t\t\t(xy 80.7495 94.840691) (xy 76.028694 94.840691) (xy 76.034292 94.819799) (xy 76.037298 94.808581)\r\n\t\t\t\t(xy 76.037298 94.808579) (xy 76.0505 94.759309) (xy 76.0505 94.640691) (xy 76.019799 94.526114)\r\n\t\t\t\t(xy 76.019797 94.526111) (xy 76.019797 94.526109) (xy 75.960492 94.423391) (xy 75.96049 94.423389)\r\n\t\t\t\t(xy 75.960489 94.423387) (xy 75.876613 94.339511) (xy 75.87661 94.339509) (xy 75.876608 94.339507)\r\n\t\t\t\t(xy 75.773889 94.280202) (xy 75.77389 94.280202) (xy 75.750318 94.273886) (xy 75.659309 94.2495)\r\n\t\t\t\t(xy 75.540691 94.2495) (xy 75.504084 94.259309) (xy 75.426109 94.280202) (xy 75.323391 94.339507)\r\n\t\t\t\t(xy 75.239507 94.423391) (xy 75.180202 94.526109) (xy 75.170989 94.560492) (xy 75.1495 94.640691)\r\n\t\t\t\t(xy 74.0005 94.640691) (xy 74.0005 94.140691) (xy 96.3495 94.140691) (xy 96.3495 94.259309) (xy 96.356963 94.287161)\r\n\t\t\t\t(xy 96.380202 94.37389) (xy 96.439507 94.476608) (xy 96.439509 94.47661) (xy 96.439511 94.476613)\r\n\t\t\t\t(xy 96.523387 94.560489) (xy 96.523389 94.56049) (xy 96.523391 94.560492) (xy 96.62611 94.619797)\r\n\t\t\t\t(xy 96.626111 94.619797) (xy 96.626114 94.619799) (xy 96.740691 94.6505) (xy 96.740693 94.6505)\r\n\t\t\t\t(xy 96.859307 94.6505) (xy 96.859309 94.6505) (xy 96.973886 94.619799) (xy 96.973888 94.619797)\r\n\t\t\t\t(xy 96.97389 94.619797) (xy 97.076608 94.560492) (xy 97.076608 94.560491) (xy 97.076613 94.560489)\r\n\t\t\t\t(xy 97.157607 94.479494) (xy 97.212122 94.451719) (xy 97.227609 94.4505) (xy 97.734837 94.4505)\r\n\t\t\t\t(xy 97.793028 94.469407) (xy 97.828992 94.518907) (xy 97.830464 94.575123) (xy 97.830198 94.576112)\r\n\t\t\t\t(xy 97.830198 94.576114) (xy 97.799497 94.690691) (xy 97.799497 94.809309) (xy 97.826571 94.910351)\r\n\t\t\t\t(xy 97.830199 94.92389) (xy 97.889504 95.026608) (xy 97.889506 95.02661) (xy 97.889508 95.026613)\r\n\t\t\t\t(xy 97.973384 95.110489) (xy 97.973386 95.11049) (xy 97.973388 95.110492) (xy 98.076107 95.169797)\r\n\t\t\t\t(xy 98.076108 95.169797) (xy 98.076111 95.169799) (xy 98.190688 95.2005) (xy 98.19069 95.2005) (xy 98.309304 95.2005)\r\n\t\t\t\t(xy 98.309306 95.2005) (xy 98.423883 95.169799) (xy 98.423885 95.169797) (xy 98.423887 95.169797)\r\n\t\t\t\t(xy 98.526605 95.110492) (xy 98.526605 95.110491) (xy 98.52661 95.110489) (xy 98.554997 95.082101)\r\n\t\t\t\t(xy 98.60951 95.054326) (xy 98.669942 95.063897) (xy 98.694998 95.0821) (xy 98.723387 95.110489)\r\n\t\t\t\t(xy 98.723389 95.11049) (xy 98.723391 95.110492) (xy 98.82611 95.169797) (xy 98.826111 95.169797)\r\n\t\t\t\t(xy 98.826114 95.169799) (xy 98.940691 95.2005) (xy 98.940693 95.2005) (xy 99.059307 95.2005) (xy 99.059309 95.2005)\r\n\t\t\t\t(xy 99.173886 95.169799) (xy 99.173888 95.169797) (xy 99.17389 95.169797) (xy 99.276608 95.110492)\r\n\t\t\t\t(xy 99.276608 95.110491) (xy 99.276613 95.110489) (xy 99.360489 95.026613) (xy 99.363846 95.020798)\r\n\t\t\t\t(xy 99.419797 94.92389) (xy 99.419797 94.923888) (xy 99.419799 94.923886) (xy 99.4505 94.809309)\r\n\t\t\t\t(xy 99.4505 94.690691) (xy 99.419799 94.576114) (xy 99.419798 94.576112) (xy 99.419533 94.575123)\r\n\t\t\t\t(xy 99.421005 94.547034) (xy 99.421005 94.518907) (xy 99.422593 94.51672) (xy 99.422735 94.514022)\r\n\t\t\t\t(xy 99.440429 94.492171) (xy 99.456969 94.469407) (xy 99.45954 94.468571) (xy 99.461241 94.466472)\r\n\t\t\t\t(xy 99.51516 94.4505) (xy 99.68484 94.4505) (xy 99.743031 94.469407) (xy 99.778995 94.518907) (xy 99.780467 94.575123)\r\n\t\t\t\t(xy 99.780201 94.576112) (xy 99.780201 94.576114) (xy 99.7495 94.690691) (xy 99.7495 94.809309)\r\n\t\t\t\t(xy 99.776574 94.910351) (xy 99.780202 94.92389) (xy 99.839507 95.026608) (xy 99.839509 95.02661)\r\n\t\t\t\t(xy 99.839511 95.026613) (xy 99.923387 95.110489) (xy 99.923389 95.11049) (xy 99.923391 95.110492)\r\n\t\t\t\t(xy 100.02611 95.169797) (xy 100.026111 95.169797) (xy 100.026114 95.169799) (xy 100.140691 95.2005)\r\n\t\t\t\t(xy 100.140693 95.2005) (xy 100.259307 95.2005) (xy 100.259309 95.2005) (xy 100.373886 95.169799)\r\n\t\t\t\t(xy 100.373888 95.169797) (xy 100.37389 95.169797) (xy 100.476608 95.110492) (xy 100.476608 95.110491)\r\n\t\t\t\t(xy 100.476613 95.110489) (xy 100.557607 95.029494) (xy 100.612122 95.001719) (xy 100.627609 95.0005)\r\n\t\t\t\t(xy 103.58484 95.0005) (xy 103.643031 95.019407) (xy 103.678995 95.068907) (xy 103.680467 95.125123)\r\n\t\t\t\t(xy 103.680201 95.126112) (xy 103.680201 95.126114) (xy 103.6495 95.240691) (xy 103.6495 95.359309)\r\n\t\t\t\t(xy 103.663463 95.41142) (xy 103.680202 95.47389) (xy 103.739507 95.576608) (xy 103.739509 95.57661)\r\n\t\t\t\t(xy 103.739511 95.576613) (xy 103.823387 95.660489) (xy 103.823389 95.66049) (xy 103.823391 95.660492)\r\n\t\t\t\t(xy 103.92611 95.719797) (xy 103.926111 95.719797) (xy 103.926114 95.719799) (xy 104.040691 95.7505)\r\n\t\t\t\t(xy 104.040693 95.7505) (xy 104.159307 95.7505) (xy 104.159309 95.7505) (xy 104.195916 95.740691)\r\n\t\t\t\t(xy 107.5495 95.740691) (xy 107.5495 95.859309) (xy 107.566024 95.920977) (xy 107.580202 95.97389)\r\n\t\t\t\t(xy 107.639507 96.076608) (xy 107.639509 96.07661) (xy 107.639511 96.076613) (xy 107.723387 96.160489)\r\n\t\t\t\t(xy 107.723389 96.16049) (xy 107.723391 96.160492) (xy 107.82611 96.219797) (xy 107.826111 96.219797)\r\n\t\t\t\t(xy 107.826114 96.219799) (xy 107.940691 96.2505) (xy 107.940693 96.2505) (xy 108.059307 96.2505)\r\n\t\t\t\t(xy 108.059309 96.2505) (xy 108.173886 96.219799) (xy 108.173888 96.219797) (xy 108.17389 96.219797)\r\n\t\t\t\t(xy 108.276608 96.160492) (xy 108.276608 96.160491) (xy 108.276613 96.160489) (xy 108.360489 96.076613)\r\n\t\t\t\t(xy 108.419799 95.973886) (xy 108.4505 95.859309) (xy 108.4505 95.740691) (xy 108.419799 95.626114)\r\n\t\t\t\t(xy 108.419797 95.62611) (xy 108.419797 95.626109) (xy 108.360492 95.523391) (xy 108.36049 95.523389)\r\n\t\t\t\t(xy 108.360489 95.523387) (xy 108.276613 95.439511) (xy 108.27661 95.439509) (xy 108.276608 95.439507)\r\n\t\t\t\t(xy 108.242713 95.419938) (xy 108.242712 95.419938) (xy 108.173888 95.380202) (xy 108.173887 95.380201)\r\n\t\t\t\t(xy 108.173886 95.380201) (xy 108.059309 95.3495) (xy 107.940691 95.3495) (xy 107.88333 95.36487)\r\n\t\t\t\t(xy 107.826109 95.380202) (xy 107.723391 95.439507) (xy 107.639507 95.523391) (xy 107.580202 95.626109)\r\n\t\t\t\t(xy 107.566671 95.676608) (xy 107.5495 95.740691) (xy 104.195916 95.740691) (xy 104.273886 95.719799)\r\n\t\t\t\t(xy 104.273888 95.719797) (xy 104.27389 95.719797) (xy 104.376608 95.660492) (xy 104.376608 95.660491)\r\n\t\t\t\t(xy 104.376613 95.660489) (xy 104.460489 95.576613) (xy 104.462061 95.57389) (xy 104.519797 95.47389)\r\n\t\t\t\t(xy 104.519797 95.473888) (xy 104.519799 95.473886) (xy 104.5505 95.359309) (xy 104.5505 95.340691)\r\n\t\t\t\t(xy 112.1495 95.340691) (xy 112.1495 95.459309) (xy 112.154137 95.476613) (xy 112.180202 95.57389)\r\n\t\t\t\t(xy 112.239507 95.676608) (xy 112.239509 95.67661) (xy 112.239511 95.676613) (xy 112.323387 95.760489)\r\n\t\t\t\t(xy 112.' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'323389 95.76049) (xy 112.323391 95.760492) (xy 112.42611 95.819797) (xy 112.426111 95.819797)\r\n\t\t\t\t(xy 112.426114 95.819799) (xy 112.540691 95.8505) (xy 112.540693 95.8505) (xy 112.659307 95.8505)\r\n\t\t\t\t(xy 112.659309 95.8505) (xy 112.773886 95.819799) (xy 112.773888 95.819797) (xy 112.77389 95.819797)\r\n\t\t\t\t(xy 112.876608 95.760492) (xy 112.876608 95.760491) (xy 112.876613 95.760489) (xy 112.960489 95.676613)\r\n\t\t\t\t(xy 112.960492 95.676608) (xy 113.019797 95.57389) (xy 113.019797 95.573888) (xy 113.019799 95.573886)\r\n\t\t\t\t(xy 113.0505 95.459309) (xy 113.0505 95.340691) (xy 113.7495 95.340691) (xy 113.7495 95.459309)\r\n\t\t\t\t(xy 113.754137 95.476613) (xy 113.780202 95.57389) (xy 113.839507 95.676608) (xy 113.839509 95.67661)\r\n\t\t\t\t(xy 113.839511 95.676613) (xy 113.923387 95.760489) (xy 113.923389 95.76049) (xy 113.923391 95.760492)\r\n\t\t\t\t(xy 114.02611 95.819797) (xy 114.026111 95.819797) (xy 114.026114 95.819799) (xy 114.140691 95.8505)\r\n\t\t\t\t(xy 114.140693 95.8505) (xy 114.259307 95.8505) (xy 114.259309 95.8505) (xy 114.373886 95.819799)\r\n\t\t\t\t(xy 114.373888 95.819797) (xy 114.37389 95.819797) (xy 114.476608 95.760492) (xy 114.476608 95.760491)\r\n\t\t\t\t(xy 114.476613 95.760489) (xy 114.560489 95.676613) (xy 114.560492 95.676608) (xy 114.619797 95.57389)\r\n\t\t\t\t(xy 114.619797 95.573888) (xy 114.619799 95.573886) (xy 114.6505 95.459309) (xy 114.6505 95.340691)\r\n\t\t\t\t(xy 115.3495 95.340691) (xy 115.3495 95.459309) (xy 115.354137 95.476613) (xy 115.380202 95.57389)\r\n\t\t\t\t(xy 115.439507 95.676608) (xy 115.439509 95.67661) (xy 115.439511 95.676613) (xy 115.523387 95.760489)\r\n\t\t\t\t(xy 115.523389 95.76049) (xy 115.523391 95.760492) (xy 115.62611 95.819797) (xy 115.626111 95.819797)\r\n\t\t\t\t(xy 115.626114 95.819799) (xy 115.740691 95.8505) (xy 115.740693 95.8505) (xy 115.859307 95.8505)\r\n\t\t\t\t(xy 115.859309 95.8505) (xy 115.973886 95.819799) (xy 115.973888 95.819797) (xy 115.97389 95.819797)\r\n\t\t\t\t(xy 116.076608 95.760492) (xy 116.076608 95.760491) (xy 116.076613 95.760489) (xy 116.160489 95.676613)\r\n\t\t\t\t(xy 116.160492 95.676608) (xy 116.219797 95.57389) (xy 116.219797 95.573888) (xy 116.219799 95.573886)\r\n\t\t\t\t(xy 116.2505 95.459309) (xy 116.2505 95.340691) (xy 116.9495 95.340691) (xy 116.9495 95.459309)\r\n\t\t\t\t(xy 116.954137 95.476613) (xy 116.980202 95.57389) (xy 117.039507 95.676608) (xy 117.039509 95.67661)\r\n\t\t\t\t(xy 117.039511 95.676613) (xy 117.123387 95.760489) (xy 117.123389 95.76049) (xy 117.123391 95.760492)\r\n\t\t\t\t(xy 117.22611 95.819797) (xy 117.226111 95.819797) (xy 117.226114 95.819799) (xy 117.340691 95.8505)\r\n\t\t\t\t(xy 117.340693 95.8505) (xy 117.459307 95.8505) (xy 117.459309 95.8505) (xy 117.573886 95.819799)\r\n\t\t\t\t(xy 117.573888 95.819797) (xy 117.57389 95.819797) (xy 117.676608 95.760492) (xy 117.676608 95.760491)\r\n\t\t\t\t(xy 117.676613 95.760489) (xy 117.760489 95.676613) (xy 117.760492 95.676608) (xy 117.819797 95.57389)\r\n\t\t\t\t(xy 117.819797 95.573888) (xy 117.819799 95.573886) (xy 117.8505 95.459309) (xy 117.8505 95.340691)\r\n\t\t\t\t(xy 121.7495 95.340691) (xy 121.7495 95.459309) (xy 121.754137 95.476613) (xy 121.780202 95.57389)\r\n\t\t\t\t(xy 121.839507 95.676608) (xy 121.839509 95.67661) (xy 121.839511 95.676613) (xy 121.923387 95.760489)\r\n\t\t\t\t(xy 121.923389 95.76049) (xy 121.923391 95.760492) (xy 122.02611 95.819797) (xy 122.026111 95.819797)\r\n\t\t\t\t(xy 122.026114 95.819799) (xy 122.140691 95.8505) (xy 122.140693 95.8505) (xy 122.259307 95.8505)\r\n\t\t\t\t(xy 122.259309 95.8505) (xy 122.373886 95.819799) (xy 122.373888 95.819797) (xy 122.37389 95.819797)\r\n\t\t\t\t(xy 122.476608 95.760492) (xy 122.476608 95.760491) (xy 122.476613 95.760489) (xy 122.560489 95.676613)\r\n\t\t\t\t(xy 122.560492 95.676608) (xy 122.619797 95.57389) (xy 122.619797 95.573888) (xy 122.619799 95.573886)\r\n\t\t\t\t(xy 122.6505 95.459309) (xy 122.6505 95.340691) (xy 123.3495 95.340691) (xy 123.3495 95.459309)\r\n\t\t\t\t(xy 123.354137 95.476613) (xy 123.380202 95.57389) (xy 123.439507 95.676608) (xy 123.439509 95.67661)\r\n\t\t\t\t(xy 123.439511 95.676613) (xy 123.523387 95.760489) (xy 123.523389 95.76049) (xy 123.523391 95.760492)\r\n\t\t\t\t(xy 123.62611 95.819797) (xy 123.626111 95.819797) (xy 123.626114 95.819799) (xy 123.740691 95.8505)\r\n\t\t\t\t(xy 123.740693 95.8505) (xy 123.859307 95.8505) (xy 123.859309 95.8505) (xy 123.973886 95.819799)\r\n\t\t\t\t(xy 123.973888 95.819797) (xy 123.97389 95.819797) (xy 124.076608 95.760492) (xy 124.076608 95.760491)\r\n\t\t\t\t(xy 124.076613 95.760489) (xy 124.160489 95.676613) (xy 124.160492 95.676608) (xy 124.219797 95.57389)\r\n\t\t\t\t(xy 124.219797 95.573888) (xy 124.219799 95.573886) (xy 124.2505 95.459309) (xy 124.2505 95.340691)\r\n\t\t\t\t(xy 124.9495 95.340691) (xy 124.9495 95.459309) (xy 124.954137 95.476613) (xy 124.980202 95.57389)\r\n\t\t\t\t(xy 125.039507 95.676608) (xy 125.039509 95.67661) (xy 125.039511 95.676613) (xy 125.123387 95.760489)\r\n\t\t\t\t(xy 125.123389 95.76049) (xy 125.123391 95.760492) (xy 125.22611 95.819797) (xy 125.226111 95.819797)\r\n\t\t\t\t(xy 125.226114 95.819799) (xy 125.340691 95.8505) (xy 125.340693 95.8505) (xy 125.459307 95.8505)\r\n\t\t\t\t(xy 125.459309 95.8505) (xy 125.573886 95.819799) (xy 125.573888 95.819797) (xy 125.57389 95.819797)\r\n\t\t\t\t(xy 125.676608 95.760492) (xy 125.676608 95.760491) (xy 125.676613 95.760489) (xy 125.760489 95.676613)\r\n\t\t\t\t(xy 125.760492 95.676608) (xy 125.819797 95.57389) (xy 125.819797 95.573888) (xy 125.819799 95.573886)\r\n\t\t\t\t(xy 125.8505 95.459309) (xy 125.8505 95.340691) (xy 126.5495 95.340691) (xy 126.5495 95.459309)\r\n\t\t\t\t(xy 126.554137 95.476613) (xy 126.580202 95.57389) (xy 126.639507 95.676608) (xy 126.639509 95.67661)\r\n\t\t\t\t(xy 126.639511 95.676613) (xy 126.723387 95.760489) (xy 126.723389 95.76049) (xy 126.723391 95.760492)\r\n\t\t\t\t(xy 126.82611 95.819797) (xy 126.826111 95.819797) (xy 126.826114 95.819799) (xy 126.940691 95.8505)\r\n\t\t\t\t(xy 126.940693 95.8505) (xy 127.059307 95.8505) (xy 127.059309 95.8505) (xy 127.173886 95.819799)\r\n\t\t\t\t(xy 127.173888 95.819797) (xy 127.17389 95.819797) (xy 127.276608 95.760492) (xy 127.276608 95.760491)\r\n\t\t\t\t(xy 127.276613 95.760489) (xy 127.360489 95.676613) (xy 127.360492 95.676608) (xy 127.419797 95.57389)\r\n\t\t\t\t(xy 127.419797 95.573888) (xy 127.419799 95.573886) (xy 127.4505 95.459309) (xy 127.4505 95.340691)\r\n\t\t\t\t(xy 128.1495 95.340691) (xy 128.1495 95.459309) (xy 128.154137 95.476613) (xy 128.180202 95.57389)\r\n\t\t\t\t(xy 128.239507 95.676608) (xy 128.239509 95.67661) (xy 128.239511 95.676613) (xy 128.323387 95.760489)\r\n\t\t\t\t(xy 128.323389 95.76049) (xy 128.323391 95.760492) (xy 128.42611 95.819797) (xy 128.426111 95.819797)\r\n\t\t\t\t(xy 128.426114 95.819799) (xy 128.540691 95.8505) (xy 128.540693 95.8505) (xy 128.659307 95.8505)\r\n\t\t\t\t(xy 128.659309 95.8505) (xy 128.773886 95.819799) (xy 128.773888 95.819797) (xy 128.77389 95.819797)\r\n\t\t\t\t(xy 128.876608 95.760492) (xy 128.876608 95.760491) (xy 128.876613 95.760489) (xy 128.960489 95.676613)\r\n\t\t\t\t(xy 128.960492 95.676608) (xy 129.019797 95.57389) (xy 129.019797 95.573888) (xy 129.019799 95.573886)\r\n\t\t\t\t(xy 129.0505 95.459309) (xy 129.0505 95.340691) (xy 129.7495 95.340691) (xy 129.7495 95.459309)\r\n\t\t\t\t(xy 129.754137 95.476613) (xy 129.780202 95.57389) (xy 129.839507 95.676608) (xy 129.839509 95.67661)\r\n\t\t\t\t(xy 129.839511 95.676613) (xy 129.923387 95.760489) (xy 129.923389 95.76049) (xy 129.923391 95.760492)\r\n\t\t\t\t(xy 130.02611 95.819797) (xy 130.026111 95.819797) (xy 130.026114 95.819799) (xy 130.140691 95.8505)\r\n\t\t\t\t(xy 130.140693 95.8505) (xy 130.259307 95.8505) (xy 130.259309 95.8505) (xy 130.373886 95.819799)\r\n\t\t\t\t(xy 130.373888 95.819797) (xy 130.37389 95.819797) (xy 130.476608 95.760492) (xy 130.476608 95.760491)\r\n\t\t\t\t(xy 130.476613 95.760489) (xy 130.560489 95.676613) (xy 130.560492 95.676608) (xy 130.619797 95.57389)\r\n\t\t\t\t(xy 130.619797 95.573888) (xy 130.619799 95.573886) (xy 130.6505 95.459309) (xy 130.6505 95.340691)\r\n\t\t\t\t(xy 130.619799 95.226114) (xy 130.619797 95.226111) (xy 130.619797 95.226109) (xy 130.595313 95.183702)\r\n\t\t\t\t(xy 130.57048 95.140691) (xy 131.3495 95.140691) (xy 131.3495 95.259309) (xy 131.370689 95.338388)\r\n\t\t\t\t(xy 131.380202 95.37389) (xy 131.439507 95.476608) (xy 131.439509 95.47661) (xy 131.439511 95.476613)\r\n\t\t\t\t(xy 131.523387 95.560489) (xy 131.523389 95.56049) (xy 131.523391 95.560492) (xy 131.62611 95.619797)\r\n\t\t\t\t(xy 131.626111 95.619797) (xy ' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'131.626114 95.619799) (xy 131.740691 95.6505) (xy 131.740693 95.6505)\r\n\t\t\t\t(xy 131.859307 95.6505) (xy 131.859309 95.6505) (xy 131.973886 95.619799) (xy 131.973888 95.619797)\r\n\t\t\t\t(xy 131.97389 95.619797) (xy 132.076608 95.560492) (xy 132.076608 95.560491) (xy 132.076613 95.560489)\r\n\t\t\t\t(xy 132.160489 95.476613) (xy 132.162061 95.47389) (xy 132.216657 95.379329) (xy 132.262126 95.338388)\r\n\t\t\t\t(xy 132.322977 95.331992) (xy 132.375965 95.362585) (xy 132.398157 95.406852) (xy 132.398457 95.406762)\r\n\t\t\t\t(xy 132.398986 95.408505) (xy 132.39949 95.409511) (xy 132.399869 95.411416) (xy 132.399869 95.411417)\r\n\t\t\t\t(xy 132.479058 95.602597) (xy 132.59402 95.774651) (xy 132.594023 95.774655) (xy 132.740345 95.920977)\r\n\t\t\t\t(xy 132.912402 96.035941) (xy 133.10358 96.11513) (xy 133.306535 96.1555) (xy 133.306536 96.1555)\r\n\t\t\t\t(xy 133.513464 96.1555) (xy 133.513465 96.1555) (xy 133.71642 96.11513) (xy 133.907598 96.035941)\r\n\t\t\t\t(xy 134.079655 95.920977) (xy 134.225977 95.774655) (xy 134.340941 95.602598) (xy 134.419226 95.413601)\r\n\t\t\t\t(xy 134.458961 95.367077) (xy 134.518456 95.352793) (xy 134.574984 95.376208) (xy 134.596425 95.401988)\r\n\t\t\t\t(xy 134.639507 95.476608) (xy 134.639509 95.47661) (xy 134.639511 95.476613) (xy 134.723387 95.560489)\r\n\t\t\t\t(xy 134.723389 95.56049) (xy 134.723391 95.560492) (xy 134.82611 95.619797) (xy 134.826111 95.619797)\r\n\t\t\t\t(xy 134.826114 95.619799) (xy 134.940691 95.6505) (xy 134.940693 95.6505) (xy 134.985454 95.6505)\r\n\t\t\t\t(xy 135.043645 95.669407) (xy 135.079609 95.718907) (xy 135.079609 95.780093) (xy 135.067769 95.804501)\r\n\t\t\t\t(xy 135.01906 95.877398) (xy 134.939869 96.068581) (xy 134.8995 96.271532) (xy 134.8995 96.478467)\r\n\t\t\t\t(xy 134.939869 96.681418) (xy 135.019058 96.872597) (xy 135.101178 96.995499) (xy 135.117786 97.054387)\r\n\t\t\t\t(xy 135.096608 97.111791) (xy 135.045734 97.145783) (xy 135.018862 97.1495) (xy 134.940691 97.1495)\r\n\t\t\t\t(xy 134.899669 97.160492) (xy 134.826109 97.180202) (xy 134.723391 97.239507) (xy 134.639509 97.323389)\r\n\t\t\t\t(xy 134.605615 97.382095) (xy 134.560145 97.423035) (xy 134.499295 97.42943) (xy 134.446307 97.398837)\r\n\t\t\t\t(xy 134.422781 97.351908) (xy 134.42013 97.338581) (xy 134.413837 97.323389) (xy 134.340941 97.147402)\r\n\t\t\t\t(xy 134.225977 96.975345) (xy 134.079655 96.829023) (xy 134.079651 96.82902) (xy 133.907597 96.714058)\r\n\t\t\t\t(xy 133.716418 96.634869) (xy 133.513467 96.5945) (xy 133.513465 96.5945) (xy 133.306535 96.5945)\r\n\t\t\t\t(xy 133.306532 96.5945) (xy 133.103581 96.634869) (xy 132.912402 96.714058) (xy 132.740348 96.82902)\r\n\t\t\t\t(xy 132.59402 96.975348) (xy 132.479058 97.147402) (xy 132.399869 97.338581) (xy 132.3595 97.541532)\r\n\t\t\t\t(xy 132.3595 97.748467) (xy 132.399869 97.951418) (xy 132.479058 98.142597) (xy 132.59402 98.314651)\r\n\t\t\t\t(xy 132.594023 98.314655) (xy 132.740345 98.460977) (xy 132.912402 98.575941) (xy 133.10358 98.65513)\r\n\t\t\t\t(xy 133.306535 98.6955) (xy 133.306536 98.6955) (xy 133.513464 98.6955) (xy 133.513465 98.6955)\r\n\t\t\t\t(xy 133.71642 98.65513) (xy 133.907598 98.575941) (xy 134.079655 98.460977) (xy 134.225977 98.314655)\r\n\t\t\t\t(xy 134.340941 98.142598) (xy 134.42013 97.95142) (xy 134.436096 97.871151) (xy 134.465991 97.81777)\r\n\t\t\t\t(xy 134.521556 97.792153) (xy 134.581566 97.804089) (xy 134.61893 97.840965) (xy 134.639511 97.876613)\r\n\t\t\t\t(xy 134.723387 97.960489) (xy 134.723389 97.96049) (xy 134.723391 97.960492) (xy 134.82611 98.019797)\r\n\t\t\t\t(xy 134.826111 98.019797) (xy 134.826114 98.019799) (xy 134.940691 98.0505) (xy 134.940693 98.0505)\r\n\t\t\t\t(xy 135.059306 98.0505) (xy 135.059309 98.0505) (xy 135.070649 98.047461) (xy 135.131748 98.050661)\r\n\t\t\t\t(xy 135.179299 98.089165) (xy 135.195138 98.148265) (xy 135.173213 98.205387) (xy 135.166278 98.21309)\r\n\t\t\t\t(xy 135.13402 98.245347) (xy 135.019058 98.417402) (xy 134.939869 98.608581) (xy 134.8995 98.811532)\r\n\t\t\t\t(xy 134.8995 99.018467) (xy 134.939869 99.221418) (xy 135.019058 99.412597) (xy 135.13402 99.584651)\r\n\t\t\t\t(xy 135.134023 99.584655) (xy 135.280345 99.730977) (xy 135.452402 99.845941) (xy 135.64358 99.92513)\r\n\t\t\t\t(xy 135.714884 99.939313) (xy 135.79071 99.954396) (xy 135.844094 99.984293) (xy 135.86971 100.039858)\r\n\t\t\t\t(xy 135.857773 100.099868) (xy 135.841405 100.121492) (xy 135.839513 100.123383) (xy 135.839507 100.123391)\r\n\t\t\t\t(xy 135.780202 100.226109) (xy 135.77078 100.261272) (xy 135.7495 100.340691) (xy 135.7495 100.459309)\r\n\t\t\t\t(xy 135.776574 100.560351) (xy 135.780202 100.57389) (xy 135.839507 100.676608) (xy 135.839509 100.67661)\r\n\t\t\t\t(xy 135.839511 100.676613) (xy 135.923387 100.760489) (xy 135.923389 100.76049) (xy 135.923391 100.760492)\r\n\t\t\t\t(xy 136.02611 100.819797) (xy 136.026111 100.819797) (xy 136.026114 100.819799) (xy 136.140691 100.8505)\r\n\t\t\t\t(xy 136.140693 100.8505) (xy 136.259307 100.8505) (xy 136.259309 100.8505) (xy 136.372766 100.820099)\r\n\t\t\t\t(xy 137.5995 100.820099) (xy 137.5995 101.0799) (xy 137.640138 101.336488) (xy 137.717274 101.573886)\r\n\t\t\t\t(xy 137.720421 101.583572) (xy 137.767828 101.676613) (xy 137.810566 101.760492) (xy 137.838366 101.815051)\r\n\t\t\t\t(xy 137.991069 102.025229) (xy 138.174771 102.208931) (xy 138.384949 102.361634) (xy 138.616428 102.479579)\r\n\t\t\t\t(xy 138.863507 102.55986) (xy 138.863508 102.55986) (xy 138.863511 102.559861) (xy 139.1201 102.6005)\r\n\t\t\t\t(xy 139.120103 102.6005) (xy 139.3799 102.6005) (xy 139.636488 102.559861) (xy 139.636489 102.55986)\r\n\t\t\t\t(xy 139.636493 102.55986) (xy 139.883572 102.479579) (xy 140.115051 102.361634) (xy 140.325229 102.208931)\r\n\t\t\t\t(xy 140.508931 102.025229) (xy 140.661634 101.815051) (xy 140.779579 101.583572) (xy 140.85986 101.336493)\r\n\t\t\t\t(xy 140.877343 101.226109) (xy 140.9005 101.0799) (xy 140.9005 100.820099) (xy 140.859861 100.563511)\r\n\t\t\t\t(xy 140.833571 100.482598) (xy 140.779579 100.316428) (xy 140.779571 100.316413) (xy 140.779488 100.31621)\r\n\t\t\t\t(xy 140.779481 100.316128) (xy 140.778377 100.312729) (xy 140.779192 100.312463) (xy 140.774679 100.255214)\r\n\t\t\t\t(xy 140.806641 100.20304) (xy 140.863166 100.179617) (xy 140.922662 100.193892) (xy 140.940946 100.208303)\r\n\t\t\t\t(xy 141.060744 100.328101) (xy 141.060747 100.328103) (xy 141.06075 100.328106) (xy 141.231737 100.459309)\r\n\t\t\t\t(xy 141.255792 100.477767) (xy 141.468708 100.600694) (xy 141.695847 100.694778) (xy 141.933323 100.758409)\r\n\t\t\t\t(xy 142.177073 100.7905) (xy 142.177074 100.7905) (xy 142.422926 100.7905) (xy 142.422927 100.7905)\r\n\t\t\t\t(xy 142.666677 100.758409) (xy 142.904153 100.694778) (xy 143.131292 100.600694) (xy 143.344208 100.477767)\r\n\t\t\t\t(xy 143.539256 100.328101) (xy 143.656773 100.210583) (xy 143.711288 100.182807) (xy 143.77172 100.192378)\r\n\t\t\t\t(xy 143.814984 100.235643) (xy 143.823872 100.261272) (xy 143.829868 100.291412) (xy 143.829869 100.291417)\r\n\t\t\t\t(xy 143.829869 100.291418) (xy 143.82987 100.29142) (xy 143.840231 100.316434) (xy 143.909058 100.482597)\r\n\t\t\t\t(xy 144.02402 100.654651) (xy 144.024023 100.654655) (xy 144.170345 100.800977) (xy 144.342402 100.915941)\r\n\t\t\t\t(xy 144.53358 100.99513) (xy 144.736535 101.0355) (xy 144.736536 101.0355) (xy 144.943464 101.0355)\r\n\t\t\t\t(xy 144.943465 101.0355) (xy 145.14642 100.99513) (xy 145.337598 100.915941) (xy 145.509655 100.800977)\r\n\t\t\t\t(xy 145.655977 100.654655) (xy 145.770941 100.482598) (xy 145.770941 100.482596) (xy 145.772684 100.479989)\r\n\t\t\t\t(xy 145.820734 100.442109) (xy 145.881872 100.439707) (xy 145.932746 100.473699) (xy 145.937316 100.479989)\r\n\t\t\t\t(xy 145.939058 100.482596) (xy 145.939059 100.482598) (xy 146.054023 100.654655) (xy 146.200345 100.800977)\r\n\t\t\t\t(xy 146.372402 100.915941) (xy 146.56358 100.99513) (xy 146.766535 101.0355) (xy 146.766536 101.0355)\r\n\t\t\t\t(xy 146.973464 101.0355) (xy 146.973465 101.0355) (xy 147.17642 100.99513) (xy 147.367598 100.915941)\r\n\t\t\t\t(xy 147.539655 100.800977) (xy 147.685977 100.654655) (xy 147.800941 100.482598) (xy 147.88013 100.29142)\r\n\t\t\t\t(xy 147.9205 100.088465) (xy 147.9205 99.940691) (xy 151.5495 99.940691) (xy 151.5495 100.059309)\r\n\t\t\t\t(xy 151.557313 100.088467) (xy 151.580202 100.17389) (xy 151.639507 100.276608) (xy 151.639509 100.27661)\r\n\t\t\t\t(xy 151.639511 100.276613) (xy 151.723387 100.360489) (xy 151.723389 100.36049) (xy 151.723391 100.360492)\r\n\t\t\t\t(xy 151.82611 100.419797) (xy 151.826111 100.419797) (xy 151.826114 100.419799) (xy 151.940691 10' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'0.4505)\r\n\t\t\t\t(xy 151.940693 100.4505) (xy 152.059307 100.4505) (xy 152.059309 100.4505) (xy 152.173886 100.419799)\r\n\t\t\t\t(xy 152.173888 100.419797) (xy 152.17389 100.419797) (xy 152.276608 100.360492) (xy 152.276608 100.360491)\r\n\t\t\t\t(xy 152.276613 100.360489) (xy 152.360489 100.276613) (xy 152.372844 100.255214) (xy 152.419797 100.17389)\r\n\t\t\t\t(xy 152.419797 100.173888) (xy 152.419799 100.173886) (xy 152.4505 100.059309) (xy 152.4505 99.940691)\r\n\t\t\t\t(xy 152.419799 99.826114) (xy 152.419797 99.826111) (xy 152.419797 99.826109) (xy 152.360492 99.723391)\r\n\t\t\t\t(xy 152.36049 99.723389) (xy 152.360489 99.723387) (xy 152.276613 99.639511) (xy 152.27661 99.639509)\r\n\t\t\t\t(xy 152.276608 99.639507) (xy 152.173889 99.580202) (xy 152.17389 99.580202) (xy 152.160351 99.576574)\r\n\t\t\t\t(xy 152.059309 99.5495) (xy 151.940691 99.5495) (xy 151.870567 99.568289) (xy 151.826109 99.580202)\r\n\t\t\t\t(xy 151.723391 99.639507) (xy 151.639507 99.723391) (xy 151.580202 99.826109) (xy 151.571307 99.859307)\r\n\t\t\t\t(xy 151.5495 99.940691) (xy 147.9205 99.940691) (xy 147.9205 99.881535) (xy 147.88013 99.67858)\r\n\t\t\t\t(xy 147.800941 99.487402) (xy 147.685977 99.315345) (xy 147.539655 99.169023) (xy 147.539651 99.16902)\r\n\t\t\t\t(xy 147.367597 99.054058) (xy 147.176418 98.974869) (xy 146.973467 98.9345) (xy 146.973465 98.9345)\r\n\t\t\t\t(xy 146.766535 98.9345) (xy 146.766532 98.9345) (xy 146.563581 98.974869) (xy 146.372402 99.054058)\r\n\t\t\t\t(xy 146.200348 99.16902) (xy 146.05402 99.315348) (xy 145.937316 99.49001) (xy 145.889266 99.52789)\r\n\t\t\t\t(xy 145.828128 99.530292) (xy 145.777254 99.496299) (xy 145.772684 99.49001) (xy 145.655979 99.315348)\r\n\t\t\t\t(xy 145.655977 99.315345) (xy 145.509655 99.169023) (xy 145.509651 99.16902) (xy 145.337597 99.054058)\r\n\t\t\t\t(xy 145.146418 98.974869) (xy 144.943467 98.9345) (xy 144.943465 98.9345) (xy 144.736535 98.9345)\r\n\t\t\t\t(xy 144.736532 98.9345) (xy 144.533581 98.974869) (xy 144.342399 99.054059) (xy 144.3295 99.062679)\r\n\t\t\t\t(xy 144.270612 99.079287) (xy 144.213209 99.058109) (xy 144.179217 99.007234) (xy 144.1755 98.980363)\r\n\t\t\t\t(xy 144.1755 98.792074) (xy 144.1755 98.792073) (xy 144.143409 98.548323) (xy 144.079778 98.310847)\r\n\t\t\t\t(xy 144.003259 98.126114) (xy 143.985697 98.083715) (xy 143.985696 98.083714) (xy 143.985694 98.083708)\r\n\t\t\t\t(xy 143.862767 97.870792) (xy 143.828484 97.826114) (xy 143.713106 97.67575) (xy 143.713104 97.675748)\r\n\t\t\t\t(xy 143.713101 97.675744) (xy 143.539256 97.501899) (xy 143.539251 97.501895) (xy 143.539249 97.501893)\r\n\t\t\t\t(xy 143.344211 97.352235) (xy 143.333334 97.345955) (xy 143.131292 97.229306) (xy 143.131288 97.229304)\r\n\t\t\t\t(xy 143.131284 97.229302) (xy 142.904154 97.135222) (xy 142.79944 97.107164) (xy 142.666677 97.071591)\r\n\t\t\t\t(xy 142.666674 97.07159) (xy 142.666672 97.07159) (xy 142.422927 97.0395) (xy 142.177073 97.0395)\r\n\t\t\t\t(xy 142.177072 97.0395) (xy 141.93333 97.07159) (xy 141.933325 97.07159) (xy 141.695845 97.135222)\r\n\t\t\t\t(xy 141.468715 97.229302) (xy 141.255788 97.352235) (xy 141.06075 97.501893) (xy 140.886893 97.67575)\r\n\t\t\t\t(xy 140.737235 97.870788) (xy 140.614302 98.083715) (xy 140.520222 98.310845) (xy 140.45659 98.548325)\r\n\t\t\t\t(xy 140.45659 98.54833) (xy 140.434016 98.719797) (xy 140.4245 98.792073) (xy 140.4245 99.037927)\r\n\t\t\t\t(xy 140.441759 99.169023) (xy 140.45659 99.281669) (xy 140.45659 99.281674) (xy 140.520222 99.519154)\r\n\t\t\t\t(xy 140.589201 99.685685) (xy 140.594002 99.746682) (xy 140.562032 99.798851) (xy 140.505504 99.822265)\r\n\t\t\t\t(xy 140.446009 99.807981) (xy 140.427737 99.793577) (xy 140.325229 99.691069) (xy 140.115051 99.538366)\r\n\t\t\t\t(xy 140.11505 99.538365) (xy 140.115048 99.538364) (xy 139.942605 99.4505) (xy 139.883572 99.420421)\r\n\t\t\t\t(xy 139.883569 99.42042) (xy 139.883567 99.420419) (xy 139.636488 99.340138) (xy 139.3799 99.2995)\r\n\t\t\t\t(xy 139.379897 99.2995) (xy 139.120103 99.2995) (xy 139.1201 99.2995) (xy 138.863511 99.340138)\r\n\t\t\t\t(xy 138.616432 99.420419) (xy 138.384951 99.538364) (xy 138.174772 99.691068) (xy 137.991068 99.874772)\r\n\t\t\t\t(xy 137.838364 100.084951) (xy 137.720419 100.316432) (xy 137.640138 100.563511) (xy 137.5995 100.820099)\r\n\t\t\t\t(xy 136.372766 100.820099) (xy 136.373886 100.819799) (xy 136.373888 100.819797) (xy 136.37389 100.819797)\r\n\t\t\t\t(xy 136.476608 100.760492) (xy 136.476608 100.760491) (xy 136.476613 100.760489) (xy 136.560489 100.676613)\r\n\t\t\t\t(xy 136.60432 100.600697) (xy 136.619797 100.57389) (xy 136.619797 100.573888) (xy 136.619799 100.573886)\r\n\t\t\t\t(xy 136.6505 100.459309) (xy 136.6505 100.340691) (xy 136.619799 100.226114) (xy 136.619797 100.226111)\r\n\t\t\t\t(xy 136.619797 100.226109) (xy 136.560492 100.123391) (xy 136.56049 100.123389) (xy 136.560489 100.123387)\r\n\t\t\t\t(xy 136.476613 100.039511) (xy 136.442844 100.020014) (xy 136.401904 99.974544) (xy 136.395509 99.913694)\r\n\t\t\t\t(xy 136.426102 99.860706) (xy 136.44568 99.846966) (xy 136.447589 99.845944) (xy 136.447598 99.845941)\r\n\t\t\t\t(xy 136.619655 99.730977) (xy 136.765977 99.584655) (xy 136.880941 99.412598) (xy 136.910514 99.341201)\r\n\t\t\t\t(xy 136.95025 99.294676) (xy 137.009745 99.280392) (xy 137.066273 99.303806) (xy 137.071968 99.30907)\r\n\t\t\t\t(xy 137.123387 99.360489) (xy 137.123389 99.36049) (xy 137.123391 99.360492) (xy 137.22611 99.419797)\r\n\t\t\t\t(xy 137.226111 99.419797) (xy 137.226114 99.419799) (xy 137.340691 99.4505) (xy 137.340693 99.4505)\r\n\t\t\t\t(xy 137.459307 99.4505) (xy 137.459309 99.4505) (xy 137.573886 99.419799) (xy 137.573888 99.419797)\r\n\t\t\t\t(xy 137.57389 99.419797) (xy 137.676608 99.360492) (xy 137.676608 99.360491) (xy 137.676613 99.360489)\r\n\t\t\t\t(xy 137.760489 99.276613) (xy 137.819799 99.173886) (xy 137.8505 99.059309) (xy 137.8505 98.940691)\r\n\t\t\t\t(xy 137.819799 98.826114) (xy 137.819797 98.826111) (xy 137.819797 98.826109) (xy 137.760492 98.723391)\r\n\t\t\t\t(xy 137.76049 98.723389) (xy 137.760489 98.723387) (xy 137.676613 98.639511) (xy 137.67661 98.639509)\r\n\t\t\t\t(xy 137.676608 98.639507) (xy 137.573889 98.580202) (xy 137.57389 98.580202) (xy 137.557988 98.575941)\r\n\t\t\t\t(xy 137.459309 98.5495) (xy 137.340691 98.5495) (xy 137.299669 98.560492) (xy 137.226109 98.580202)\r\n\t\t\t\t(xy 137.123391 98.639507) (xy 137.123383 98.639514) (xy 137.121768 98.641129) (xy 137.120312 98.64187)\r\n\t\t\t\t(xy 137.118241 98.64346) (xy 137.117946 98.643075) (xy 137.067249 98.668902) (xy 137.006818 98.659326)\r\n\t\t\t\t(xy 136.963557 98.616058) (xy 136.960306 98.609006) (xy 136.946888 98.576613) (xy 136.880941 98.417402)\r\n\t\t\t\t(xy 136.765977 98.245345) (xy 136.619655 98.099023) (xy 136.619651 98.09902) (xy 136.447597 97.984058)\r\n\t\t\t\t(xy 136.256418 97.904869) (xy 136.053467 97.8645) (xy 136.053465 97.8645) (xy 135.846535 97.8645)\r\n\t\t\t\t(xy 135.846532 97.8645) (xy 135.64358 97.90487) (xy 135.643578 97.90487) (xy 135.519512 97.95626)\r\n\t\t\t\t(xy 135.458515 97.961061) (xy 135.406347 97.929091) (xy 135.382932 97.872563) (xy 135.395891 97.815295)\r\n\t\t\t\t(xy 135.416152 97.780202) (xy 135.419799 97.773886) (xy 135.4505 97.659309) (xy 135.4505 97.540691)\r\n\t\t\t\t(xy 136.9495 97.540691) (xy 136.9495 97.659309) (xy 136.96667 97.723387) (xy 136.980202 97.77389)\r\n\t\t\t\t(xy 137.039507 97.876608) (xy 137.039509 97.87661) (xy 137.039511 97.876613) (xy 137.123387 97.960489)\r\n\t\t\t\t(xy 137.123389 97.96049) (xy 137.123391 97.960492) (xy 137.22611 98.019797) (xy 137.226111 98.019797)\r\n\t\t\t\t(xy 137.226114 98.019799) (xy 137.340691 98.0505) (xy 137.340693 98.0505) (xy 137.459307 98.0505)\r\n\t\t\t\t(xy 137.459309 98.0505) (xy 137.573886 98.019799) (xy 137.573888 98.019797) (xy 137.57389 98.019797)\r\n\t\t\t\t(xy 137.676608 97.960492) (xy 137.676608 97.960491) (xy 137.676613 97.960489) (xy 137.760489 97.876613)\r\n\t\t\t\t(xy 137.78191 97.839511) (xy 137.819797 97.77389) (xy 137.819797 97.773888) (xy 137.819799 97.773886)\r\n\t\t\t\t(xy 137.8505 97.659309) (xy 137.8505 97.540691) (xy 137.819799 97.426114) (xy 137.819797 97.426111)\r\n\t\t\t\t(xy 137.819797 97.426109) (xy 137.760492 97.323391) (xy 137.76049 97.323389) (xy 137.760489 97.323387)\r\n\t\t\t\t(xy 137.676613 97.239511) (xy 137.67661 97.239509) (xy 137.676608 97.239507) (xy 137.573889 97.180202)\r\n\t\t\t\t(xy 137.57389 97.180202) (xy 137.550318 97.173886) (xy 137.459309 97.1495) (xy 137.340691 97.1495)\r\n\t\t\t\t(xy 137.299669 97.160492) (xy 137.226109 97.180202) (xy 137.123391 97.239507) (xy 137.039507 97.323391)\r\n\t\t\t\t(xy 136.980202 97.426109) (xy 136.980' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'201 97.426114) (xy 136.9495 97.540691) (xy 135.4505 97.540691)\r\n\t\t\t\t(xy 135.431221 97.468744) (xy 135.431015 97.467912) (xy 135.433113 97.438227) (xy 135.434668 97.408558)\r\n\t\t\t\t(xy 135.435263 97.407822) (xy 135.43533 97.406879) (xy 135.454455 97.384122) (xy 135.473173 97.361008)\r\n\t\t\t\t(xy 135.474087 97.360762) (xy 135.474696 97.360039) (xy 135.503545 97.352869) (xy 135.532274 97.345172)\r\n\t\t\t\t(xy 135.53345 97.345438) (xy 135.534075 97.345283) (xy 135.535734 97.345955) (xy 135.564977 97.352571)\r\n\t\t\t\t(xy 135.64358 97.38513) (xy 135.846535 97.4255) (xy 135.846536 97.4255) (xy 136.053464 97.4255)\r\n\t\t\t\t(xy 136.053465 97.4255) (xy 136.25642 97.38513) (xy 136.447598 97.305941) (xy 136.619655 97.190977)\r\n\t\t\t\t(xy 136.765977 97.044655) (xy 136.880941 96.872598) (xy 136.96013 96.68142) (xy 137.0005 96.478465)\r\n\t\t\t\t(xy 137.0005 96.271535) (xy 137.000386 96.270378) (xy 137.0005 96.269858) (xy 137.0005 96.266671)\r\n\t\t\t\t(xy 137.001199 96.266671) (xy 137.013497 96.210614) (xy 137.059233 96.16997) (xy 137.120123 96.163972)\r\n\t\t\t\t(xy 137.148409 96.174935) (xy 137.226114 96.219799) (xy 137.340691 96.2505) (xy 137.340693 96.2505)\r\n\t\t\t\t(xy 137.459307 96.2505) (xy 137.459309 96.2505) (xy 137.573886 96.219799) (xy 137.573888 96.219797)\r\n\t\t\t\t(xy 137.57389 96.219797) (xy 137.676608 96.160492) (xy 137.676608 96.160491) (xy 137.676613 96.160489)\r\n\t\t\t\t(xy 137.760489 96.076613) (xy 137.819799 95.973886) (xy 137.828694 95.940691) (xy 139.5495 95.940691)\r\n\t\t\t\t(xy 139.5495 96.059309) (xy 139.575274 96.155499) (xy 139.580202 96.17389) (xy 139.639507 96.276608)\r\n\t\t\t\t(xy 139.639509 96.27661) (xy 139.639511 96.276613) (xy 139.723387 96.360489) (xy 139.723389 96.36049)\r\n\t\t\t\t(xy 139.723391 96.360492) (xy 139.82611 96.419797) (xy 139.826111 96.419797) (xy 139.826114 96.419799)\r\n\t\t\t\t(xy 139.940691 96.4505) (xy 139.940693 96.4505) (xy 140.059307 96.4505) (xy 140.059309 96.4505)\r\n\t\t\t\t(xy 140.173886 96.419799) (xy 140.173888 96.419797) (xy 140.17389 96.419797) (xy 140.276608 96.360492)\r\n\t\t\t\t(xy 140.276608 96.360491) (xy 140.276613 96.360489) (xy 140.360489 96.276613) (xy 140.366229 96.266671)\r\n\t\t\t\t(xy 140.419797 96.17389) (xy 140.419797 96.173888) (xy 140.419799 96.173886) (xy 140.4505 96.059309)\r\n\t\t\t\t(xy 140.4505 95.940691) (xy 143.5495 95.940691) (xy 143.5495 96.059309) (xy 143.575274 96.155499)\r\n\t\t\t\t(xy 143.580202 96.17389) (xy 143.639507 96.276608) (xy 143.639509 96.27661) (xy 143.639511 96.276613)\r\n\t\t\t\t(xy 143.723387 96.360489) (xy 143.723389 96.36049) (xy 143.723391 96.360492) (xy 143.82611 96.419797)\r\n\t\t\t\t(xy 143.826111 96.419797) (xy 143.826114 96.419799) (xy 143.940691 96.4505) (xy 143.940693 96.4505)\r\n\t\t\t\t(xy 144.059307 96.4505) (xy 144.059309 96.4505) (xy 144.173886 96.419799) (xy 144.173888 96.419797)\r\n\t\t\t\t(xy 144.17389 96.419797) (xy 144.276608 96.360492) (xy 144.276608 96.360491) (xy 144.276613 96.360489)\r\n\t\t\t\t(xy 144.360489 96.276613) (xy 144.366229 96.266671) (xy 144.419797 96.17389) (xy 144.419797 96.173888)\r\n\t\t\t\t(xy 144.419799 96.173886) (xy 144.4505 96.059309) (xy 144.4505 95.940691) (xy 151.5495 95.940691)\r\n\t\t\t\t(xy 151.5495 96.059309) (xy 151.575274 96.155499) (xy 151.580202 96.17389) (xy 151.639507 96.276608)\r\n\t\t\t\t(xy 151.639509 96.27661) (xy 151.639511 96.276613) (xy 151.723387 96.360489) (xy 151.723389 96.36049)\r\n\t\t\t\t(xy 151.723391 96.360492) (xy 151.82611 96.419797) (xy 151.826111 96.419797) (xy 151.826114 96.419799)\r\n\t\t\t\t(xy 151.940691 96.4505) (xy 151.940693 96.4505) (xy 152.059307 96.4505) (xy 152.059309 96.4505)\r\n\t\t\t\t(xy 152.173886 96.419799) (xy 152.173888 96.419797) (xy 152.17389 96.419797) (xy 152.276608 96.360492)\r\n\t\t\t\t(xy 152.276608 96.360491) (xy 152.276613 96.360489) (xy 152.360489 96.276613) (xy 152.366229 96.266671)\r\n\t\t\t\t(xy 152.419797 96.17389) (xy 152.419797 96.173888) (xy 152.419799 96.173886) (xy 152.4505 96.059309)\r\n\t\t\t\t(xy 152.4505 95.940691) (xy 152.419799 95.826114) (xy 152.419797 95.826111) (xy 152.419797 95.826109)\r\n\t\t\t\t(xy 152.360492 95.723391) (xy 152.36049 95.723389) (xy 152.360489 95.723387) (xy 152.276613 95.639511)\r\n\t\t\t\t(xy 152.27661 95.639509) (xy 152.276608 95.639507) (xy 152.173889 95.580202) (xy 152.17389 95.580202)\r\n\t\t\t\t(xy 152.150318 95.573886) (xy 152.059309 95.5495) (xy 151.940691 95.5495) (xy 151.899669 95.560492)\r\n\t\t\t\t(xy 151.826109 95.580202) (xy 151.723391 95.639507) (xy 151.639507 95.723391) (xy 151.580202 95.826109)\r\n\t\t\t\t(xy 151.580201 95.826114) (xy 151.5495 95.940691) (xy 144.4505 95.940691) (xy 144.419799 95.826114)\r\n\t\t\t\t(xy 144.419797 95.826111) (xy 144.419797 95.826109) (xy 144.360492 95.723391) (xy 144.36049 95.723389)\r\n\t\t\t\t(xy 144.360489 95.723387) (xy 144.276613 95.639511) (xy 144.27661 95.639509) (xy 144.276608 95.639507)\r\n\t\t\t\t(xy 144.173889 95.580202) (xy 144.17389 95.580202) (xy 144.150318 95.573886) (xy 144.059309 95.5495)\r\n\t\t\t\t(xy 143.940691 95.5495) (xy 143.899669 95.560492) (xy 143.826109 95.580202) (xy 143.723391 95.639507)\r\n\t\t\t\t(xy 143.639507 95.723391) (xy 143.580202 95.826109) (xy 143.580201 95.826114) (xy 143.5495 95.940691)\r\n\t\t\t\t(xy 140.4505 95.940691) (xy 140.419799 95.826114) (xy 140.419797 95.826111) (xy 140.419797 95.826109)\r\n\t\t\t\t(xy 140.360492 95.723391) (xy 140.36049 95.723389) (xy 140.360489 95.723387) (xy 140.276613 95.639511)\r\n\t\t\t\t(xy 140.27661 95.639509) (xy 140.276608 95.639507) (xy 140.173889 95.580202) (xy 140.17389 95.580202)\r\n\t\t\t\t(xy 140.150318 95.573886) (xy 140.059309 95.5495) (xy 139.940691 95.5495) (xy 139.899669 95.560492)\r\n\t\t\t\t(xy 139.826109 95.580202) (xy 139.723391 95.639507) (xy 139.639507 95.723391) (xy 139.580202 95.826109)\r\n\t\t\t\t(xy 139.580201 95.826114) (xy 139.5495 95.940691) (xy 137.828694 95.940691) (xy 137.837298 95.908581)\r\n\t\t\t\t(xy 137.837298 95.908579) (xy 137.845653 95.877398) (xy 137.8505 95.859309) (xy 137.8505 95.740691)\r\n\t\t\t\t(xy 137.819799 95.626114) (xy 137.819797 95.62611) (xy 137.819797 95.626109) (xy 137.760492 95.523391)\r\n\t\t\t\t(xy 137.76049 95.523389) (xy 137.760489 95.523387) (xy 137.676613 95.439511) (xy 137.67661 95.439509)\r\n\t\t\t\t(xy 137.676608 95.439507) (xy 137.573889 95.380202) (xy 137.57389 95.380202) (xy 137.550318 95.373886)\r\n\t\t\t\t(xy 137.459309 95.3495) (xy 137.340691 95.3495) (xy 137.28333 95.36487) (xy 137.226109 95.380202)\r\n\t\t\t\t(xy 137.123391 95.439507) (xy 137.039507 95.523391) (xy 136.980202 95.62611) (xy 136.9802 95.626114)\r\n\t\t\t\t(xy 136.96028 95.700455) (xy 136.926956 95.751769) (xy 136.869834 95.773695) (xy 136.810734 95.757859)\r\n\t\t\t\t(xy 136.782339 95.729833) (xy 136.765977 95.705345) (xy 136.619655 95.559023) (xy 136.496319 95.476613)\r\n\t\t\t\t(xy 136.447597 95.444058) (xy 136.256418 95.364869) (xy 136.053467 95.3245) (xy 136.053465 95.3245)\r\n\t\t\t\t(xy 135.846535 95.3245) (xy 135.846532 95.3245) (xy 135.64358 95.36487) (xy 135.643578 95.36487)\r\n\t\t\t\t(xy 135.580048 95.391185) (xy 135.519051 95.395985) (xy 135.466882 95.364016) (xy 135.443468 95.307487)\r\n\t\t\t\t(xy 135.446536 95.274101) (xy 135.4505 95.259309) (xy 135.4505 95.140691) (xy 135.419799 95.026114)\r\n\t\t\t\t(xy 135.360489 94.923387) (xy 135.360488 94.923386) (xy 135.357949 94.918988) (xy 135.345227 94.859139)\r\n\t\t\t\t(xy 135.370113 94.803244) (xy 135.423101 94.772651) (xy 135.48157 94.778022) (xy 135.64358 94.84513)\r\n\t\t\t\t(xy 135.846535 94.8855) (xy 135.846536 94.8855) (xy 136.053464 94.8855) (xy 136.053465 94.8855)\r\n\t\t\t\t(xy 136.25642 94.84513) (xy 136.447598 94.765941) (xy 136.619655 94.650977) (xy 136.765977 94.504655)\r\n\t\t\t\t(xy 136.880941 94.332598) (xy 136.96013 94.14142) (xy 137.0005 93.938465) (xy 137.0005 93.731535)\r\n\t\t\t\t(xy 136.96013 93.52858) (xy 136.880941 93.337402) (xy 136.765977 93.165345) (xy 136.619655 93.019023)\r\n\t\t\t\t(xy 136.619651 93.01902) (xy 136.447597 92.904058) (xy 136.299774 92.842828) (xy 136.25834 92.825665)\r\n\t\t\t\t(xy 136.25642 92.82487) (xy 136.053467 92.7845) (xy 136.053465 92.7845) (xy 135.846535 92.7845)\r\n\t\t\t\t(xy 135.846532 92.7845) (xy 135.643581 92.824869) (xy 135.452402 92.904058) (xy 135.280348 93.01902)\r\n\t\t\t\t(xy 135.13402 93.165348) (xy 135.019058 93.337402) (xy 134.943013 93.520993) (xy 134.903276 93.567518)\r\n\t\t\t\t(xy 134.843782 93.581802) (xy 134.787254 93.558387) (xy 134.765813 93.532608) (xy 134.76049 93.523389)\r\n\t\t\t\t(xy 134.760489 93.523387) (xy 134.676613 93.439511) (xy 134.67661 93.439509) (xy 134.676608 93.439507)\r\n\t\t\t\t(xy 134.573889 93.380202) (xy 134.57389 9' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'3.380202) (xy 134.550318 93.373886) (xy 134.459309 93.3495)\r\n\t\t\t\t(xy 134.340691 93.3495) (xy 134.334456 93.3495) (xy 134.276265 93.330593) (xy 134.240301 93.281093)\r\n\t\t\t\t(xy 134.240301 93.219907) (xy 134.25214 93.195499) (xy 134.282875 93.1495) (xy 134.340941 93.062598)\r\n\t\t\t\t(xy 134.42013 92.87142) (xy 134.446133 92.740691) (xy 136.9495 92.740691) (xy 136.9495 92.859309)\r\n\t\t\t\t(xy 136.96667 92.923387) (xy 136.980202 92.97389) (xy 137.039507 93.076608) (xy 137.039509 93.07661)\r\n\t\t\t\t(xy 137.039511 93.076613) (xy 137.123387 93.160489) (xy 137.123389 93.16049) (xy 137.123391 93.160492)\r\n\t\t\t\t(xy 137.22611 93.219797) (xy 137.226111 93.219797) (xy 137.226114 93.219799) (xy 137.340691 93.2505)\r\n\t\t\t\t(xy 137.340693 93.2505) (xy 137.459307 93.2505) (xy 137.459309 93.2505) (xy 137.573886 93.219799)\r\n\t\t\t\t(xy 137.573888 93.219797) (xy 137.57389 93.219797) (xy 137.676608 93.160492) (xy 137.676608 93.160491)\r\n\t\t\t\t(xy 137.676613 93.160489) (xy 137.760489 93.076613) (xy 137.763681 93.071084) (xy 137.819797 92.97389)\r\n\t\t\t\t(xy 137.819797 92.973888) (xy 137.819799 92.973886) (xy 137.8505 92.859309) (xy 137.8505 92.740691)\r\n\t\t\t\t(xy 137.819799 92.626114) (xy 137.819797 92.626111) (xy 137.819797 92.626109) (xy 137.760492 92.523391)\r\n\t\t\t\t(xy 137.76049 92.523389) (xy 137.760489 92.523387) (xy 137.676613 92.439511) (xy 137.67661 92.439509)\r\n\t\t\t\t(xy 137.676608 92.439507) (xy 137.573889 92.380202) (xy 137.57389 92.380202) (xy 137.550318 92.373886)\r\n\t\t\t\t(xy 137.459309 92.3495) (xy 137.340691 92.3495) (xy 137.270567 92.368289) (xy 137.226109 92.380202)\r\n\t\t\t\t(xy 137.123391 92.439507) (xy 137.039507 92.523391) (xy 136.980202 92.626109) (xy 136.966771 92.676235)\r\n\t\t\t\t(xy 136.9495 92.740691) (xy 134.446133 92.740691) (xy 134.4605 92.668465) (xy 134.4605 92.461535)\r\n\t\t\t\t(xy 134.42013 92.25858) (xy 134.340941 92.067402) (xy 134.225977 91.895345) (xy 134.079655 91.749023)\r\n\t\t\t\t(xy 134.067187 91.740692) (xy 133.907597 91.634058) (xy 133.716418 91.554869) (xy 133.513467 91.5145)\r\n\t\t\t\t(xy 133.513465 91.5145) (xy 133.306535 91.5145) (xy 133.306532 91.5145) (xy 133.103581 91.554869)\r\n\t\t\t\t(xy 132.912402 91.634058) (xy 132.740348 91.74902) (xy 132.59402 91.895348) (xy 132.479058 92.067402)\r\n\t\t\t\t(xy 132.399869 92.258581) (xy 132.3595 92.461532) (xy 132.3595 92.668467) (xy 132.399869 92.871418)\r\n\t\t\t\t(xy 132.479058 93.062597) (xy 132.484729 93.071084) (xy 132.570739 93.199808) (xy 132.587347 93.258695)\r\n\t\t\t\t(xy 132.566169 93.316098) (xy 132.515295 93.350091) (xy 132.462808 93.350437) (xy 132.459311 93.3495)\r\n\t\t\t\t(xy 132.459309 93.3495) (xy 132.340691 93.3495) (xy 132.304084 93.359309) (xy 132.226109 93.380202)\r\n\t\t\t\t(xy 132.123391 93.439507) (xy 132.039507 93.523391) (xy 131.980202 93.626109) (xy 131.968151 93.671084)\r\n\t\t\t\t(xy 131.9495 93.740691) (xy 131.9495 93.859309) (xy 131.971373 93.940941) (xy 131.980202 93.97389)\r\n\t\t\t\t(xy 132.039507 94.076608) (xy 132.039509 94.07661) (xy 132.039511 94.076613) (xy 132.123387 94.160489)\r\n\t\t\t\t(xy 132.123389 94.16049) (xy 132.123391 94.160492) (xy 132.22611 94.219797) (xy 132.226111 94.219797)\r\n\t\t\t\t(xy 132.226114 94.219799) (xy 132.340691 94.2505) (xy 132.340693 94.2505) (xy 132.459306 94.2505)\r\n\t\t\t\t(xy 132.459309 94.2505) (xy 132.538953 94.229159) (xy 132.600052 94.232361) (xy 132.647602 94.270866)\r\n\t\t\t\t(xy 132.663438 94.329967) (xy 132.641512 94.387088) (xy 132.634578 94.394789) (xy 132.594022 94.435345)\r\n\t\t\t\t(xy 132.479058 94.607402) (xy 132.399869 94.798581) (xy 132.371382 94.941798) (xy 132.341485 94.995182)\r\n\t\t\t\t(xy 132.28592 95.020798) (xy 132.22591 95.008861) (xy 132.188548 94.971985) (xy 132.16049 94.923389)\r\n\t\t\t\t(xy 132.160489 94.923387) (xy 132.076613 94.839511) (xy 132.07661 94.839509) (xy 132.076608 94.839507)\r\n\t\t\t\t(xy 131.973889 94.780202) (xy 131.97389 94.780202) (xy 131.93895 94.77084) (xy 131.859309 94.7495)\r\n\t\t\t\t(xy 131.740691 94.7495) (xy 131.699669 94.760492) (xy 131.626109 94.780202) (xy 131.523391 94.839507)\r\n\t\t\t\t(xy 131.439507 94.923391) (xy 131.380202 95.026109) (xy 131.3674 95.073886) (xy 131.3495 95.140691)\r\n\t\t\t\t(xy 130.57048 95.140691) (xy 130.560492 95.123391) (xy 130.56049 95.123389) (xy 130.560489 95.123387)\r\n\t\t\t\t(xy 130.476613 95.039511) (xy 130.47661 95.039509) (xy 130.476608 95.039507) (xy 130.373889 94.980202)\r\n\t\t\t\t(xy 130.37389 94.980202) (xy 130.360351 94.976574) (xy 130.259309 94.9495) (xy 130.140691 94.9495)\r\n\t\t\t\t(xy 130.090447 94.962963) (xy 130.026109 94.980202) (xy 129.923391 95.039507) (xy 129.839507 95.123391)\r\n\t\t\t\t(xy 129.780202 95.226109) (xy 129.780201 95.226114) (xy 129.7495 95.340691) (xy 129.0505 95.340691)\r\n\t\t\t\t(xy 129.019799 95.226114) (xy 129.019797 95.226111) (xy 129.019797 95.226109) (xy 128.960492 95.123391)\r\n\t\t\t\t(xy 128.96049 95.123389) (xy 128.960489 95.123387) (xy 128.876613 95.039511) (xy 128.87661 95.039509)\r\n\t\t\t\t(xy 128.876608 95.039507) (xy 128.773889 94.980202) (xy 128.77389 94.980202) (xy 128.760351 94.976574)\r\n\t\t\t\t(xy 128.659309 94.9495) (xy 128.540691 94.9495) (xy 128.490447 94.962963) (xy 128.426109 94.980202)\r\n\t\t\t\t(xy 128.323391 95.039507) (xy 128.239507 95.123391) (xy 128.180202 95.226109) (xy 128.180201 95.226114)\r\n\t\t\t\t(xy 128.1495 95.340691) (xy 127.4505 95.340691) (xy 127.419799 95.226114) (xy 127.419797 95.226111)\r\n\t\t\t\t(xy 127.419797 95.226109) (xy 127.360492 95.123391) (xy 127.36049 95.123389) (xy 127.360489 95.123387)\r\n\t\t\t\t(xy 127.276613 95.039511) (xy 127.27661 95.039509) (xy 127.276608 95.039507) (xy 127.173889 94.980202)\r\n\t\t\t\t(xy 127.17389 94.980202) (xy 127.160351 94.976574) (xy 127.059309 94.9495) (xy 126.940691 94.9495)\r\n\t\t\t\t(xy 126.890447 94.962963) (xy 126.826109 94.980202) (xy 126.723391 95.039507) (xy 126.639507 95.123391)\r\n\t\t\t\t(xy 126.580202 95.226109) (xy 126.580201 95.226114) (xy 126.5495 95.340691) (xy 125.8505 95.340691)\r\n\t\t\t\t(xy 125.819799 95.226114) (xy 125.819797 95.226111) (xy 125.819797 95.226109) (xy 125.760492 95.123391)\r\n\t\t\t\t(xy 125.76049 95.123389) (xy 125.760489 95.123387) (xy 125.676613 95.039511) (xy 125.67661 95.039509)\r\n\t\t\t\t(xy 125.676608 95.039507) (xy 125.573889 94.980202) (xy 125.57389 94.980202) (xy 125.560351 94.976574)\r\n\t\t\t\t(xy 125.459309 94.9495) (xy 125.340691 94.9495) (xy 125.290447 94.962963) (xy 125.226109 94.980202)\r\n\t\t\t\t(xy 125.123391 95.039507) (xy 125.039507 95.123391) (xy 124.980202 95.226109) (xy 124.980201 95.226114)\r\n\t\t\t\t(xy 124.9495 95.340691) (xy 124.2505 95.340691) (xy 124.219799 95.226114) (xy 124.219797 95.226111)\r\n\t\t\t\t(xy 124.219797 95.226109) (xy 124.160492 95.123391) (xy 124.16049 95.123389) (xy 124.160489 95.123387)\r\n\t\t\t\t(xy 124.076613 95.039511) (xy 124.07661 95.039509) (xy 124.076608 95.039507) (xy 123.973889 94.980202)\r\n\t\t\t\t(xy 123.97389 94.980202) (xy 123.960351 94.976574) (xy 123.859309 94.9495) (xy 123.740691 94.9495)\r\n\t\t\t\t(xy 123.690447 94.962963) (xy 123.626109 94.980202) (xy 123.523391 95.039507) (xy 123.439507 95.123391)\r\n\t\t\t\t(xy 123.380202 95.226109) (xy 123.380201 95.226114) (xy 123.3495 95.340691) (xy 122.6505 95.340691)\r\n\t\t\t\t(xy 122.619799 95.226114) (xy 122.619797 95.226111) (xy 122.619797 95.226109) (xy 122.560492 95.123391)\r\n\t\t\t\t(xy 122.56049 95.123389) (xy 122.560489 95.123387) (xy 122.476613 95.039511) (xy 122.47661 95.039509)\r\n\t\t\t\t(xy 122.476608 95.039507) (xy 122.373889 94.980202) (xy 122.37389 94.980202) (xy 122.360351 94.976574)\r\n\t\t\t\t(xy 122.259309 94.9495) (xy 122.140691 94.9495) (xy 122.090447 94.962963) (xy 122.026109 94.980202)\r\n\t\t\t\t(xy 121.923391 95.039507) (xy 121.839507 95.123391) (xy 121.780202 95.226109) (xy 121.780201 95.226114)\r\n\t\t\t\t(xy 121.7495 95.340691) (xy 117.8505 95.340691) (xy 117.819799 95.226114) (xy 117.819797 95.226111)\r\n\t\t\t\t(xy 117.819797 95.226109) (xy 117.760492 95.123391) (xy 117.76049 95.123389) (xy 117.760489 95.123387)\r\n\t\t\t\t(xy 117.676613 95.039511) (xy 117.67661 95.039509) (xy 117.676608 95.039507) (xy 117.573889 94.980202)\r\n\t\t\t\t(xy 117.57389 94.980202) (xy 117.560351 94.976574) (xy 117.459309 94.9495) (xy 117.340691 94.9495)\r\n\t\t\t\t(xy 117.290447 94.962963) (xy 117.226109 94.980202) (xy 117.123391 95.039507) (xy 117.039507 95.123391)\r\n\t\t\t\t(xy 116.980202 95.226109) (xy 116.980201 95.226114) (xy 116.9495 95.340691) (xy 116.2505 95.340691)\r\n\t\t\t\t(xy 116.219799 95.226114) (xy 116.219797 95.226111) (xy 116.219797 95.226109) (xy 116.160492 95.123391)\r\n\t\t\t\t(xy 116.16049 95.12' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'3389) (xy 116.160489 95.123387) (xy 116.076613 95.039511) (xy 116.07661 95.039509)\r\n\t\t\t\t(xy 116.076608 95.039507) (xy 115.973889 94.980202) (xy 115.97389 94.980202) (xy 115.960351 94.976574)\r\n\t\t\t\t(xy 115.859309 94.9495) (xy 115.740691 94.9495) (xy 115.690447 94.962963) (xy 115.626109 94.980202)\r\n\t\t\t\t(xy 115.523391 95.039507) (xy 115.439507 95.123391) (xy 115.380202 95.226109) (xy 115.380201 95.226114)\r\n\t\t\t\t(xy 115.3495 95.340691) (xy 114.6505 95.340691) (xy 114.619799 95.226114) (xy 114.619797 95.226111)\r\n\t\t\t\t(xy 114.619797 95.226109) (xy 114.560492 95.123391) (xy 114.56049 95.123389) (xy 114.560489 95.123387)\r\n\t\t\t\t(xy 114.476613 95.039511) (xy 114.47661 95.039509) (xy 114.476608 95.039507) (xy 114.373889 94.980202)\r\n\t\t\t\t(xy 114.37389 94.980202) (xy 114.360351 94.976574) (xy 114.259309 94.9495) (xy 114.140691 94.9495)\r\n\t\t\t\t(xy 114.090447 94.962963) (xy 114.026109 94.980202) (xy 113.923391 95.039507) (xy 113.839507 95.123391)\r\n\t\t\t\t(xy 113.780202 95.226109) (xy 113.780201 95.226114) (xy 113.7495 95.340691) (xy 113.0505 95.340691)\r\n\t\t\t\t(xy 113.019799 95.226114) (xy 113.019797 95.226111) (xy 113.019797 95.226109) (xy 112.960492 95.123391)\r\n\t\t\t\t(xy 112.96049 95.123389) (xy 112.960489 95.123387) (xy 112.876613 95.039511) (xy 112.87661 95.039509)\r\n\t\t\t\t(xy 112.876608 95.039507) (xy 112.773889 94.980202) (xy 112.77389 94.980202) (xy 112.760351 94.976574)\r\n\t\t\t\t(xy 112.659309 94.9495) (xy 112.540691 94.9495) (xy 112.490447 94.962963) (xy 112.426109 94.980202)\r\n\t\t\t\t(xy 112.323391 95.039507) (xy 112.239507 95.123391) (xy 112.180202 95.226109) (xy 112.180201 95.226114)\r\n\t\t\t\t(xy 112.1495 95.340691) (xy 104.5505 95.340691) (xy 104.5505 95.240691) (xy 104.519799 95.126114)\r\n\t\t\t\t(xy 104.519798 95.126112) (xy 104.519533 95.125123) (xy 104.522735 95.064022) (xy 104.561241 95.016472)\r\n\t\t\t\t(xy 104.61516 95.0005) (xy 111.899829 95.0005) (xy 111.96867 94.971985) (xy 111.991897 94.962364)\r\n\t\t\t\t(xy 112.61357 94.340691) (xy 118.7495 94.340691) (xy 118.7495 94.459309) (xy 118.770989 94.539507)\r\n\t\t\t\t(xy 118.780202 94.57389) (xy 118.839507 94.676608) (xy 118.839509 94.67661) (xy 118.839511 94.676613)\r\n\t\t\t\t(xy 118.923387 94.760489) (xy 118.923389 94.76049) (xy 118.923391 94.760492) (xy 119.02611 94.819797)\r\n\t\t\t\t(xy 119.026111 94.819797) (xy 119.026114 94.819799) (xy 119.140691 94.8505) (xy 119.140693 94.8505)\r\n\t\t\t\t(xy 119.259307 94.8505) (xy 119.259309 94.8505) (xy 119.373886 94.819799) (xy 119.373888 94.819797)\r\n\t\t\t\t(xy 119.37389 94.819797) (xy 119.476608 94.760492) (xy 119.476608 94.760491) (xy 119.476613 94.760489)\r\n\t\t\t\t(xy 119.560489 94.676613) (xy 119.57529 94.650977) (xy 119.619797 94.57389) (xy 119.619797 94.573888)\r\n\t\t\t\t(xy 119.619799 94.573886) (xy 119.6505 94.459309) (xy 119.6505 94.340691) (xy 120.3495 94.340691)\r\n\t\t\t\t(xy 120.3495 94.459309) (xy 120.370989 94.539507) (xy 120.380202 94.57389) (xy 120.439507 94.676608)\r\n\t\t\t\t(xy 120.439509 94.67661) (xy 120.439511 94.676613) (xy 120.523387 94.760489) (xy 120.523389 94.76049)\r\n\t\t\t\t(xy 120.523391 94.760492) (xy 120.62611 94.819797) (xy 120.626111 94.819797) (xy 120.626114 94.819799)\r\n\t\t\t\t(xy 120.740691 94.8505) (xy 120.740693 94.8505) (xy 120.859307 94.8505) (xy 120.859309 94.8505)\r\n\t\t\t\t(xy 120.973886 94.819799) (xy 120.973888 94.819797) (xy 120.97389 94.819797) (xy 121.076608 94.760492)\r\n\t\t\t\t(xy 121.076608 94.760491) (xy 121.076613 94.760489) (xy 121.160489 94.676613) (xy 121.17529 94.650977)\r\n\t\t\t\t(xy 121.219797 94.57389) (xy 121.219797 94.573888) (xy 121.219799 94.573886) (xy 121.2505 94.459309)\r\n\t\t\t\t(xy 121.2505 94.340691) (xy 121.219799 94.226114) (xy 121.219797 94.226111) (xy 121.219797 94.226109)\r\n\t\t\t\t(xy 121.160492 94.123391) (xy 121.16049 94.123389) (xy 121.160489 94.123387) (xy 121.076613 94.039511)\r\n\t\t\t\t(xy 121.07661 94.039509) (xy 121.076608 94.039507) (xy 120.973889 93.980202) (xy 120.97389 93.980202)\r\n\t\t\t\t(xy 120.950318 93.973886) (xy 120.859309 93.9495) (xy 120.740691 93.9495) (xy 120.699669 93.960492)\r\n\t\t\t\t(xy 120.626109 93.980202) (xy 120.523391 94.039507) (xy 120.439507 94.123391) (xy 120.380202 94.226109)\r\n\t\t\t\t(xy 120.373667 94.250499) (xy 120.3495 94.340691) (xy 119.6505 94.340691) (xy 119.619799 94.226114)\r\n\t\t\t\t(xy 119.619797 94.226111) (xy 119.619797 94.226109) (xy 119.560492 94.123391) (xy 119.56049 94.123389)\r\n\t\t\t\t(xy 119.560489 94.123387) (xy 119.476613 94.039511) (xy 119.47661 94.039509) (xy 119.476608 94.039507)\r\n\t\t\t\t(xy 119.373889 93.980202) (xy 119.37389 93.980202) (xy 119.350318 93.973886) (xy 119.259309 93.9495)\r\n\t\t\t\t(xy 119.140691 93.9495) (xy 119.099669 93.960492) (xy 119.026109 93.980202) (xy 118.923391 94.039507)\r\n\t\t\t\t(xy 118.839507 94.123391) (xy 118.780202 94.226109) (xy 118.773667 94.250499) (xy 118.7495 94.340691)\r\n\t\t\t\t(xy 112.61357 94.340691) (xy 112.674765 94.279496) (xy 112.729282 94.251719) (xy 112.744769 94.2505)\r\n\t\t\t\t(xy 115.249829 94.2505) (xy 115.268568 94.242738) (xy 115.323947 94.219799) (xy 115.341897 94.212364)\r\n\t\t\t\t(xy 115.874762 93.679496) (xy 115.929279 93.651719) (xy 115.944766 93.6505) (xy 116.059307 93.6505)\r\n\t\t\t\t(xy 116.059309 93.6505) (xy 116.173886 93.619799) (xy 116.173888 93.619797) (xy 116.17389 93.619797)\r\n\t\t\t\t(xy 116.276608 93.560492) (xy 116.276608 93.560491) (xy 116.276613 93.560489) (xy 116.360489 93.476613)\r\n\t\t\t\t(xy 116.362062 93.473888) (xy 116.419797 93.37389) (xy 116.419797 93.373888) (xy 116.419799 93.373886)\r\n\t\t\t\t(xy 116.4505 93.259309) (xy 116.4505 93.140691) (xy 116.423167 93.038683) (xy 116.426369 92.977585)\r\n\t\t\t\t(xy 116.464874 92.930035) (xy 116.523975 92.914199) (xy 116.581096 92.936125) (xy 116.588798 92.943059)\r\n\t\t\t\t(xy 117.187636 93.541897) (xy 117.187635 93.541897) (xy 117.258103 93.612364) (xy 117.350171 93.6505)\r\n\t\t\t\t(xy 117.350172 93.6505) (xy 124.951068 93.6505) (xy 125.009259 93.669407) (xy 125.021072 93.679496)\r\n\t\t\t\t(xy 125.55394 94.212364) (xy 125.553941 94.212364) (xy 125.553942 94.212365) (xy 125.646008 94.2505)\r\n\t\t\t\t(xy 125.646009 94.2505) (xy 128.849829 94.2505) (xy 128.923947 94.219799) (xy 128.941897 94.212364)\r\n\t\t\t\t(xy 129.374763 93.779496) (xy 129.42928 93.751719) (xy 129.444767 93.7505) (xy 129.559307 93.7505)\r\n\t\t\t\t(xy 129.559309 93.7505) (xy 129.673886 93.719799) (xy 129.673888 93.719797) (xy 129.67389 93.719797)\r\n\t\t\t\t(xy 129.776608 93.660492) (xy 129.776608 93.660491) (xy 129.776613 93.660489) (xy 129.860489 93.576613)\r\n\t\t\t\t(xy 129.862062 93.573888) (xy 129.881229 93.540691) (xy 130.3495 93.540691) (xy 130.3495 93.659309)\r\n\t\t\t\t(xy 130.373611 93.749292) (xy 130.380202 93.77389) (xy 130.439507 93.876608) (xy 130.439509 93.87661)\r\n\t\t\t\t(xy 130.439511 93.876613) (xy 130.523387 93.960489) (xy 130.523389 93.96049) (xy 130.523391 93.960492)\r\n\t\t\t\t(xy 130.62611 94.019797) (xy 130.626111 94.019797) (xy 130.626114 94.019799) (xy 130.740691 94.0505)\r\n\t\t\t\t(xy 130.740693 94.0505) (xy 130.859307 94.0505) (xy 130.859309 94.0505) (xy 130.973886 94.019799)\r\n\t\t\t\t(xy 130.973888 94.019797) (xy 130.97389 94.019797) (xy 131.076608 93.960492) (xy 131.076608 93.960491)\r\n\t\t\t\t(xy 131.076613 93.960489) (xy 131.160489 93.876613) (xy 131.170481 93.859307) (xy 131.219797 93.77389)\r\n\t\t\t\t(xy 131.219797 93.773888) (xy 131.219799 93.773886) (xy 131.2505 93.659309) (xy 131.2505 93.540691)\r\n\t\t\t\t(xy 131.219799 93.426114) (xy 131.219797 93.426111) (xy 131.219797 93.426109) (xy 131.160492 93.323391)\r\n\t\t\t\t(xy 131.16049 93.323389) (xy 131.160489 93.323387) (xy 131.076613 93.239511) (xy 131.07661 93.239509)\r\n\t\t\t\t(xy 131.076608 93.239507) (xy 130.973889 93.180202) (xy 130.97389 93.180202) (xy 130.960351 93.176574)\r\n\t\t\t\t(xy 130.859309 93.1495) (xy 130.740691 93.1495) (xy 130.699669 93.160492) (xy 130.626109 93.180202)\r\n\t\t\t\t(xy 130.523391 93.239507) (xy 130.439507 93.323391) (xy 130.380202 93.426109) (xy 130.3674 93.473886)\r\n\t\t\t\t(xy 130.3495 93.540691) (xy 129.881229 93.540691) (xy 129.913555 93.484702) (xy 129.913555 93.484701)\r\n\t\t\t\t(xy 129.91656 93.479496) (xy 129.919799 93.473886) (xy 129.9505 93.359309) (xy 129.9505 93.240691)\r\n\t\t\t\t(xy 129.919799 93.126114) (xy 129.919797 93.126111) (xy 129.919797 93.126109) (xy 129.860492 93.023391)\r\n\t\t\t\t(xy 129.86049 93.023389) (xy 129.860489 93.023387) (xy 129.776613 92.939511) (xy 129.77661 92.939509)\r\n\t\t\t\t(xy 129.776608 92.939507) (xy 129.673889 92.880202) (xy 129.67389 92.880202) (xy 129.641115 92.87142)\r\n\t\t\t\t(xy 12' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'9.559309 92.8495) (xy 129.440691 92.8495) (xy 129.399669 92.860492) (xy 129.326109 92.880202)\r\n\t\t\t\t(xy 129.223391 92.939507) (xy 129.139507 93.023391) (xy 129.080202 93.126109) (xy 129.07099 93.160489)\r\n\t\t\t\t(xy 129.049818 93.239507) (xy 129.0495 93.240692) (xy 129.0495 93.355231) (xy 129.030593 93.413422)\r\n\t\t\t\t(xy 129.020504 93.425234) (xy 128.725236 93.720503) (xy 128.670719 93.748281) (xy 128.655232 93.7495)\r\n\t\t\t\t(xy 127.432558 93.7495) (xy 127.374367 93.730593) (xy 127.338403 93.681093) (xy 127.338403 93.619907)\r\n\t\t\t\t(xy 127.374365 93.570408) (xy 127.442656 93.520793) (xy 127.620793 93.342656) (xy 127.76887 93.138845)\r\n\t\t\t\t(xy 127.883241 92.914379) (xy 127.96109 92.674785) (xy 127.961232 92.67389) (xy 128.0005 92.425965)\r\n\t\t\t\t(xy 128.0005 92.174034) (xy 127.961091 91.925219) (xy 127.958868 91.918377) (xy 127.883241 91.685621)\r\n\t\t\t\t(xy 127.836121 91.593144) (xy 127.826551 91.532713) (xy 127.854328 91.478196) (xy 127.908845 91.450419)\r\n\t\t\t\t(xy 127.93726 91.450048) (xy 127.94069 91.450499) (xy 127.940691 91.4505) (xy 127.940692 91.4505)\r\n\t\t\t\t(xy 128.059307 91.4505) (xy 128.059309 91.4505) (xy 128.173886 91.419799) (xy 128.212973 91.397231)\r\n\t\t\t\t(xy 128.27282 91.384509) (xy 128.328716 91.409394) (xy 128.35931 91.462381) (xy 128.358101 91.508588)\r\n\t\t\t\t(xy 128.3495 91.540688) (xy 128.3495 91.540691) (xy 128.3495 91.659309) (xy 128.36667 91.723387)\r\n\t\t\t\t(xy 128.380202 91.77389) (xy 128.439507 91.876608) (xy 128.439509 91.87661) (xy 128.439511 91.876613)\r\n\t\t\t\t(xy 128.523387 91.960489) (xy 128.523389 91.96049) (xy 128.523391 91.960492) (xy 128.62611 92.019797)\r\n\t\t\t\t(xy 128.626111 92.019797) (xy 128.626114 92.019799) (xy 128.740691 92.0505) (xy 128.740693 92.0505)\r\n\t\t\t\t(xy 128.859307 92.0505) (xy 128.859309 92.0505) (xy 128.973886 92.019799) (xy 128.973888 92.019797)\r\n\t\t\t\t(xy 128.97389 92.019797) (xy 129.076608 91.960492) (xy 129.076608 91.960491) (xy 129.076613 91.960489)\r\n\t\t\t\t(xy 129.096411 91.940691) (xy 130.3495 91.940691) (xy 130.3495 92.059309) (xy 130.370989 92.139507)\r\n\t\t\t\t(xy 130.380202 92.17389) (xy 130.439507 92.276608) (xy 130.439509 92.27661) (xy 130.439511 92.276613)\r\n\t\t\t\t(xy 130.523387 92.360489) (xy 130.523389 92.36049) (xy 130.523391 92.360492) (xy 130.62611 92.419797)\r\n\t\t\t\t(xy 130.626111 92.419797) (xy 130.626114 92.419799) (xy 130.740691 92.4505) (xy 130.740693 92.4505)\r\n\t\t\t\t(xy 130.859307 92.4505) (xy 130.859309 92.4505) (xy 130.973886 92.419799) (xy 130.973888 92.419797)\r\n\t\t\t\t(xy 130.97389 92.419797) (xy 131.076608 92.360492) (xy 131.076608 92.360491) (xy 131.076613 92.360489)\r\n\t\t\t\t(xy 131.160489 92.276613) (xy 131.160492 92.276608) (xy 131.219797 92.17389) (xy 131.219797 92.173888)\r\n\t\t\t\t(xy 131.219799 92.173886) (xy 131.2505 92.059309) (xy 131.2505 91.940691) (xy 131.219799 91.826114)\r\n\t\t\t\t(xy 131.219797 91.826111) (xy 131.219797 91.826109) (xy 131.160492 91.723391) (xy 131.16049 91.723389)\r\n\t\t\t\t(xy 131.160489 91.723387) (xy 131.076613 91.639511) (xy 131.07661 91.639509) (xy 131.076608 91.639507)\r\n\t\t\t\t(xy 130.973889 91.580202) (xy 130.97389 91.580202) (xy 130.933602 91.569407) (xy 130.859309 91.5495)\r\n\t\t\t\t(xy 130.740691 91.5495) (xy 130.678239 91.566234) (xy 130.626109 91.580202) (xy 130.523391 91.639507)\r\n\t\t\t\t(xy 130.439507 91.723391) (xy 130.380202 91.826109) (xy 130.376612 91.839507) (xy 130.3495 91.940691)\r\n\t\t\t\t(xy 129.096411 91.940691) (xy 129.160489 91.876613) (xy 129.170481 91.859307) (xy 129.219797 91.77389)\r\n\t\t\t\t(xy 129.219797 91.773888) (xy 129.219799 91.773886) (xy 129.2505 91.659309) (xy 129.2505 91.540691)\r\n\t\t\t\t(xy 129.219799 91.426114) (xy 129.219797 91.426111) (xy 129.219797 91.426109) (xy 129.160492 91.323391)\r\n\t\t\t\t(xy 129.16049 91.323389) (xy 129.160489 91.323387) (xy 129.076613 91.239511) (xy 129.07661 91.239509)\r\n\t\t\t\t(xy 129.076608 91.239507) (xy 128.973889 91.180202) (xy 128.97389 91.180202) (xy 128.950318 91.173886)\r\n\t\t\t\t(xy 128.859309 91.1495) (xy 128.740691 91.1495) (xy 128.704084 91.159309) (xy 128.626112 91.180201)\r\n\t\t\t\t(xy 128.587025 91.202769) (xy 128.527176 91.21549) (xy 128.471281 91.190603) (xy 128.440688 91.137615)\r\n\t\t\t\t(xy 128.441899 91.091408) (xy 128.445168 91.079207) (xy 128.4505 91.059309) (xy 128.4505 90.940691)\r\n\t\t\t\t(xy 128.419799 90.826114) (xy 128.419797 90.826111) (xy 128.419797 90.826109) (xy 128.360492 90.723391)\r\n\t\t\t\t(xy 128.36049 90.723389) (xy 128.360489 90.723387) (xy 128.276613 90.639511) (xy 128.27661 90.639509)\r\n\t\t\t\t(xy 128.276608 90.639507) (xy 128.173889 90.580202) (xy 128.17389 90.580202) (xy 128.124261 90.566904)\r\n\t\t\t\t(xy 128.059309 90.5495) (xy 127.940691 90.5495) (xy 127.899669 90.560492) (xy 127.826109 90.580202)\r\n\t\t\t\t(xy 127.723391 90.639507) (xy 127.639507 90.723391) (xy 127.580202 90.826109) (xy 127.571307 90.859307)\r\n\t\t\t\t(xy 127.549818 90.939507) (xy 127.5495 90.940692) (xy 127.5495 90.962535) (xy 127.530593 91.020726)\r\n\t\t\t\t(xy 127.481093 91.05669) (xy 127.419907 91.05669) (xy 127.392309 91.042628) (xy 127.389644 91.040692)\r\n\t\t\t\t(xy 127.31792 90.988581) (xy 127.238843 90.931128) (xy 127.014379 90.816759) (xy 126.77478 90.738908)\r\n\t\t\t\t(xy 126.525965 90.6995) (xy 126.525962 90.6995) (xy 126.274038 90.6995) (xy 126.274035 90.6995)\r\n\t\t\t\t(xy 126.025219 90.738908) (xy 125.78562 90.816759) (xy 125.561156 90.931128) (xy 125.48208 90.988581)\r\n\t\t\t\t(xy 125.410356 91.040692) (xy 125.407691 91.042628) (xy 125.3495 91.061535) (xy 125.291309 91.042628)\r\n\t\t\t\t(xy 125.255345 90.993127) (xy 125.2505 90.962535) (xy 125.2505 90.940692) (xy 125.250183 90.939508)\r\n\t\t\t\t(xy 125.219799 90.826114) (xy 125.219797 90.826111) (xy 125.219797 90.826109) (xy 125.160492 90.723391)\r\n\t\t\t\t(xy 125.16049 90.723389) (xy 125.160489 90.723387) (xy 125.076613 90.639511) (xy 125.07661 90.639509)\r\n\t\t\t\t(xy 125.076608 90.639507) (xy 124.973889 90.580202) (xy 124.97389 90.580202) (xy 124.924261 90.566904)\r\n\t\t\t\t(xy 124.859309 90.5495) (xy 124.740691 90.5495) (xy 124.699669 90.560492) (xy 124.626109 90.580202)\r\n\t\t\t\t(xy 124.523391 90.639507) (xy 124.439507 90.723391) (xy 124.380202 90.826109) (xy 124.371307 90.859307)\r\n\t\t\t\t(xy 124.3495 90.940691) (xy 124.3495 91.059309) (xy 124.370482 91.137615) (xy 124.380202 91.17389)\r\n\t\t\t\t(xy 124.439507 91.276608) (xy 124.439509 91.27661) (xy 124.439511 91.276613) (xy 124.523387 91.360489)\r\n\t\t\t\t(xy 124.523389 91.36049) (xy 124.523391 91.360492) (xy 124.62611 91.419797) (xy 124.626111 91.419797)\r\n\t\t\t\t(xy 124.626114 91.419799) (xy 124.740691 91.4505) (xy 124.740693 91.4505) (xy 124.859307 91.4505)\r\n\t\t\t\t(xy 124.859309 91.4505) (xy 124.85931 91.450499) (xy 124.862738 91.450048) (xy 124.865178 91.4505)\r\n\t\t\t\t(xy 124.865798 91.4505) (xy 124.865798 91.450614) (xy 124.922899 91.461194) (xy 124.96502 91.505573)\r\n\t\t\t\t(xy 124.973011 91.566234) (xy 124.963877 91.593144) (xy 124.91676 91.685617) (xy 124.838908 91.925219)\r\n\t\t\t\t(xy 124.7995 92.174034) (xy 124.7995 92.425965) (xy 124.838908 92.67478) (xy 124.91676 92.914383)\r\n\t\t\t\t(xy 124.916761 92.914386) (xy 124.963215 93.005555) (xy 124.972787 93.065987) (xy 124.94501 93.120503)\r\n\t\t\t\t(xy 124.890493 93.148281) (xy 124.875006 93.1495) (xy 122.51871 93.1495) (xy 122.460519 93.130593)\r\n\t\t\t\t(xy 122.424555 93.081093) (xy 122.424555 93.019907) (xy 122.460519 92.970407) (xy 122.469209 92.964764)\r\n\t\t\t\t(xy 122.471147 92.963644) (xy 122.476613 92.960489) (xy 122.560489 92.876613) (xy 122.593461 92.819504)\r\n\t\t\t\t(xy 122.619797 92.77389) (xy 122.619797 92.773888) (xy 122.619799 92.773886) (xy 122.6505 92.659309)\r\n\t\t\t\t(xy 122.6505 92.540691) (xy 122.619799 92.426114) (xy 122.619797 92.426111) (xy 122.619797 92.426109)\r\n\t\t\t\t(xy 122.560492 92.323391) (xy 122.56049 92.323389) (xy 122.560489 92.323387) (xy 122.476613 92.239511)\r\n\t\t\t\t(xy 122.47661 92.239509) (xy 122.476608 92.239507) (xy 122.373889 92.180202) (xy 122.37389 92.180202)\r\n\t\t\t\t(xy 122.351923 92.174316) (xy 122.259309 92.1495) (xy 122.140691 92.1495) (xy 122.099669 92.160492)\r\n\t\t\t\t(xy 122.026109 92.180202) (xy 121.923391 92.239507) (xy 121.839507 92.323391) (xy 121.780202 92.426109)\r\n\t\t\t\t(xy 121.768467 92.469907) (xy 121.7495 92.540691) (xy 121.7495 92.659309) (xy 121.761624 92.704555)\r\n\t\t\t\t(xy 121.780202 92.77389) (xy 121.839507 92.876608) (xy 121.839509 92.87661) (xy 121.839511 92.876613)\r\n\t\t\t\t(xy 121.923387 92.960489) (xy 121.923389 92.96049) (xy 121.930791 92.964764) (xy 121.971731 93.010234)\r\n\t' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'\t\t\t(xy 121.978126 93.071084) (xy 121.947533 93.124072) (xy 121.891637 93.148958) (xy 121.88129 93.1495)\r\n\t\t\t\t(xy 120.91871 93.1495) (xy 120.860519 93.130593) (xy 120.824555 93.081093) (xy 120.824555 93.019907)\r\n\t\t\t\t(xy 120.860519 92.970407) (xy 120.869209 92.964764) (xy 120.871147 92.963644) (xy 120.876613 92.960489)\r\n\t\t\t\t(xy 120.960489 92.876613) (xy 120.993461 92.819504) (xy 121.019797 92.77389) (xy 121.019797 92.773888)\r\n\t\t\t\t(xy 121.019799 92.773886) (xy 121.0505 92.659309) (xy 121.0505 92.540691) (xy 121.019799 92.426114)\r\n\t\t\t\t(xy 121.019797 92.426111) (xy 121.019797 92.426109) (xy 120.960492 92.323391) (xy 120.96049 92.323389)\r\n\t\t\t\t(xy 120.960489 92.323387) (xy 120.876613 92.239511) (xy 120.87661 92.239509) (xy 120.876608 92.239507)\r\n\t\t\t\t(xy 120.773889 92.180202) (xy 120.77389 92.180202) (xy 120.751923 92.174316) (xy 120.659309 92.1495)\r\n\t\t\t\t(xy 120.540691 92.1495) (xy 120.499669 92.160492) (xy 120.426109 92.180202) (xy 120.323391 92.239507)\r\n\t\t\t\t(xy 120.239507 92.323391) (xy 120.180202 92.426109) (xy 120.168467 92.469907) (xy 120.1495 92.540691)\r\n\t\t\t\t(xy 120.1495 92.659309) (xy 120.161624 92.704555) (xy 120.180202 92.77389) (xy 120.239507 92.876608)\r\n\t\t\t\t(xy 120.239509 92.87661) (xy 120.239511 92.876613) (xy 120.323387 92.960489) (xy 120.323389 92.96049)\r\n\t\t\t\t(xy 120.330791 92.964764) (xy 120.371731 93.010234) (xy 120.378126 93.071084) (xy 120.347533 93.124072)\r\n\t\t\t\t(xy 120.291637 93.148958) (xy 120.28129 93.1495) (xy 119.31871 93.1495) (xy 119.260519 93.130593)\r\n\t\t\t\t(xy 119.224555 93.081093) (xy 119.224555 93.019907) (xy 119.260519 92.970407) (xy 119.269209 92.964764)\r\n\t\t\t\t(xy 119.271147 92.963644) (xy 119.276613 92.960489) (xy 119.360489 92.876613) (xy 119.393461 92.819504)\r\n\t\t\t\t(xy 119.419797 92.77389) (xy 119.419797 92.773888) (xy 119.419799 92.773886) (xy 119.4505 92.659309)\r\n\t\t\t\t(xy 119.4505 92.540691) (xy 119.419799 92.426114) (xy 119.419797 92.426111) (xy 119.419797 92.426109)\r\n\t\t\t\t(xy 119.360492 92.323391) (xy 119.36049 92.323389) (xy 119.360489 92.323387) (xy 119.276613 92.239511)\r\n\t\t\t\t(xy 119.27661 92.239509) (xy 119.276608 92.239507) (xy 119.173889 92.180202) (xy 119.17389 92.180202)\r\n\t\t\t\t(xy 119.151923 92.174316) (xy 119.059309 92.1495) (xy 118.940691 92.1495) (xy 118.899669 92.160492)\r\n\t\t\t\t(xy 118.826109 92.180202) (xy 118.723391 92.239507) (xy 118.639507 92.323391) (xy 118.580202 92.426109)\r\n\t\t\t\t(xy 118.568467 92.469907) (xy 118.5495 92.540691) (xy 118.5495 92.659309) (xy 118.561624 92.704555)\r\n\t\t\t\t(xy 118.580202 92.77389) (xy 118.639507 92.876608) (xy 118.639509 92.87661) (xy 118.639511 92.876613)\r\n\t\t\t\t(xy 118.723387 92.960489) (xy 118.723389 92.96049) (xy 118.730791 92.964764) (xy 118.771731 93.010234)\r\n\t\t\t\t(xy 118.778126 93.071084) (xy 118.747533 93.124072) (xy 118.691637 93.148958) (xy 118.68129 93.1495)\r\n\t\t\t\t(xy 118.11871 93.1495) (xy 118.060519 93.130593) (xy 118.024555 93.081093) (xy 118.024555 93.019907)\r\n\t\t\t\t(xy 118.060519 92.970407) (xy 118.069209 92.964764) (xy 118.071147 92.963644) (xy 118.076613 92.960489)\r\n\t\t\t\t(xy 118.160489 92.876613) (xy 118.193461 92.819504) (xy 118.219797 92.77389) (xy 118.219797 92.773888)\r\n\t\t\t\t(xy 118.219799 92.773886) (xy 118.2505 92.659309) (xy 118.2505 92.540691) (xy 118.219799 92.426114)\r\n\t\t\t\t(xy 118.219797 92.426111) (xy 118.219797 92.426109) (xy 118.160492 92.323391) (xy 118.16049 92.323389)\r\n\t\t\t\t(xy 118.160489 92.323387) (xy 118.076613 92.239511) (xy 118.07661 92.239509) (xy 118.076608 92.239507)\r\n\t\t\t\t(xy 117.973889 92.180202) (xy 117.97389 92.180202) (xy 117.951923 92.174316) (xy 117.859309 92.1495)\r\n\t\t\t\t(xy 117.740691 92.1495) (xy 117.699669 92.160492) (xy 117.626109 92.180202) (xy 117.523391 92.239507)\r\n\t\t\t\t(xy 117.439507 92.323391) (xy 117.380202 92.426109) (xy 117.368467 92.469907) (xy 117.3495 92.540691)\r\n\t\t\t\t(xy 117.3495 92.659309) (xy 117.361478 92.704012) (xy 117.376832 92.761314) (xy 117.373629 92.822416)\r\n\t\t\t\t(xy 117.335124 92.869966) (xy 117.276023 92.885801) (xy 117.218902 92.863874) (xy 117.211211 92.85695)\r\n\t\t\t\t(xy 116.791897 92.437636) (xy 116.791895 92.437635) (xy 116.791894 92.437634) (xy 116.699829 92.3995)\r\n\t\t\t\t(xy 116.699828 92.3995) (xy 114.433541 92.3995) (xy 114.433533 92.399499) (xy 114.42201 92.399499)\r\n\t\t\t\t(xy 114.322355 92.399499) (xy 114.268421 92.421839) (xy 114.230285 92.437634) (xy 114.159817 92.508102)\r\n\t\t\t\t(xy 114.159818 92.508103) (xy 114.097417 92.570504) (xy 114.0429 92.598281) (xy 114.027413 92.5995)\r\n\t\t\t\t(xy 112.150171 92.5995) (xy 112.058103 92.637635) (xy 112.019503 92.676235) (xy 111.964986 92.704012)\r\n\t\t\t\t(xy 111.904554 92.69444) (xy 111.86129 92.651175) (xy 111.8505 92.606231) (xy 111.8505 92.540692)\r\n\t\t\t\t(xy 111.847928 92.531093) (xy 111.819799 92.426114) (xy 111.819797 92.426111) (xy 111.819797 92.426109)\r\n\t\t\t\t(xy 111.760492 92.323391) (xy 111.76049 92.323389) (xy 111.760489 92.323387) (xy 111.676613 92.239511)\r\n\t\t\t\t(xy 111.67661 92.239509) (xy 111.676608 92.239507) (xy 111.573889 92.180202) (xy 111.57389 92.180202)\r\n\t\t\t\t(xy 111.551923 92.174316) (xy 111.459309 92.1495) (xy 111.340691 92.1495) (xy 111.299669 92.160492)\r\n\t\t\t\t(xy 111.226109 92.180202) (xy 111.123391 92.239507) (xy 111.039507 92.323391) (xy 110.980202 92.426109)\r\n\t\t\t\t(xy 110.968467 92.469907) (xy 110.9495 92.540691) (xy 110.9495 92.659309) (xy 110.961624 92.704555)\r\n\t\t\t\t(xy 110.980202 92.77389) (xy 111.039507 92.876608) (xy 111.039509 92.87661) (xy 111.039511 92.876613)\r\n\t\t\t\t(xy 111.123387 92.960489) (xy 111.123389 92.96049) (xy 111.123391 92.960492) (xy 111.22611 93.019797)\r\n\t\t\t\t(xy 111.226111 93.019797) (xy 111.226114 93.019799) (xy 111.340691 93.0505) (xy 111.340693 93.0505)\r\n\t\t\t\t(xy 111.406231 93.0505) (xy 111.464422 93.069407) (xy 111.500386 93.118907) (xy 111.500386 93.180093)\r\n\t\t\t\t(xy 111.476235 93.219504) (xy 110.938916 93.756822) (xy 110.884399 93.784599) (xy 110.823967 93.775028)\r\n\t\t\t\t(xy 110.780702 93.731763) (xy 110.771131 93.671331) (xy 110.783174 93.63732) (xy 110.819799 93.573886)\r\n\t\t\t\t(xy 110.8505 93.459309) (xy 110.8505 93.340691) (xy 110.819799 93.226114) (xy 110.819797 93.226111)\r\n\t\t\t\t(xy 110.819797 93.226109) (xy 110.760492 93.123391) (xy 110.76049 93.123389) (xy 110.760489 93.123387)\r\n\t\t\t\t(xy 110.676613 93.039511) (xy 110.67661 93.039509) (xy 110.604719 92.998002) (xy 110.563779 92.952532)\r\n\t\t\t\t(xy 110.557384 92.891682) (xy 110.568484 92.862765) (xy 110.619799 92.773886) (xy 110.6505 92.659309)\r\n\t\t\t\t(xy 110.6505 92.540691) (xy 110.619799 92.426114) (xy 110.619797 92.426111) (xy 110.619797 92.426109)\r\n\t\t\t\t(xy 110.560492 92.323391) (xy 110.56049 92.323389) (xy 110.560489 92.323387) (xy 110.476613 92.239511)\r\n\t\t\t\t(xy 110.47661 92.239509) (xy 110.476608 92.239507) (xy 110.373889 92.180202) (xy 110.37389 92.180202)\r\n\t\t\t\t(xy 110.351923 92.174316) (xy 110.259309 92.1495) (xy 110.140691 92.1495) (xy 110.099669 92.160492)\r\n\t\t\t\t(xy 110.026109 92.180202) (xy 109.923391 92.239507) (xy 109.839507 92.323391) (xy 109.780202 92.426109)\r\n\t\t\t\t(xy 109.768467 92.469907) (xy 109.7495 92.540691) (xy 109.7495 92.659309) (xy 109.761624 92.704555)\r\n\t\t\t\t(xy 109.780202 92.77389) (xy 109.839507 92.876608) (xy 109.839509 92.87661) (xy 109.839511 92.876613)\r\n\t\t\t\t(xy 109.923387 92.960489) (xy 109.923389 92.96049) (xy 109.923391 92.960492) (xy 109.995279 93.001997)\r\n\t\t\t\t(xy 110.03622 93.047466) (xy 110.042616 93.108317) (xy 110.031516 93.137233) (xy 109.980201 93.226112)\r\n\t\t\t\t(xy 109.972399 93.255231) (xy 109.9495 93.340691) (xy 109.9495 93.459309) (xy 109.969141 93.532608)\r\n\t\t\t\t(xy 109.980202 93.57389) (xy 110.024722 93.651) (xy 110.037444 93.710848) (xy 110.012557 93.766744)\r\n\t\t\t\t(xy 109.959569 93.797337) (xy 109.938986 93.7995) (xy 108.794769 93.7995) (xy 108.736578 93.780593)\r\n\t\t\t\t(xy 108.724765 93.770504) (xy 108.267683 93.313422) (xy 107.773762 92.819501) (xy 107.745987 92.764987)\r\n\t\t\t\t(xy 107.755558 92.704555) (xy 107.798823 92.66129) (xy 107.843768 92.6505) (xy 107.859307 92.6505)\r\n\t\t\t\t(xy 107.859309 92.6505) (xy 107.973886 92.619799) (xy 107.973888 92.619797) (xy 107.97389 92.619797)\r\n\t\t\t\t(xy 108.076608 92.560492) (xy 108.076608 92.560491) (xy 108.076613 92.560489) (xy 108.160489 92.476613)\r\n\t\t\t\t(xy 108.161491 92.474877) (xy 108.219797 92.37389) (xy 108.219797 92.373888) (xy 108.219799 92.373886)\r\n\t\t\t\t(xy 108.2505 92.259309) (xy 108.2505 92.140691) (xy 108.219799 92' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'.026114) (xy 108.219797 92.026111)\r\n\t\t\t\t(xy 108.219797 92.026109) (xy 108.160492 91.923391) (xy 108.16049 91.923389) (xy 108.160489 91.923387)\r\n\t\t\t\t(xy 108.076613 91.839511) (xy 108.07661 91.839509) (xy 108.076608 91.839507) (xy 108.042713 91.819938)\r\n\t\t\t\t(xy 108.042712 91.819938) (xy 107.973888 91.780202) (xy 107.973887 91.780201) (xy 107.973886 91.780201)\r\n\t\t\t\t(xy 107.859309 91.7495) (xy 107.740691 91.7495) (xy 107.683402 91.76485) (xy 107.626112 91.780201)\r\n\t\t\t\t(xy 107.537233 91.831516) (xy 107.477384 91.844237) (xy 107.421489 91.81935) (xy 107.401997 91.795279)\r\n\t\t\t\t(xy 107.37048 91.740691) (xy 123.3495 91.740691) (xy 123.3495 91.859309) (xy 123.367161 91.925219)\r\n\t\t\t\t(xy 123.380202 91.97389) (xy 123.439507 92.076608) (xy 123.439509 92.07661) (xy 123.439511 92.076613)\r\n\t\t\t\t(xy 123.523387 92.160489) (xy 123.523389 92.16049) (xy 123.523391 92.160492) (xy 123.62611 92.219797)\r\n\t\t\t\t(xy 123.626111 92.219797) (xy 123.626114 92.219799) (xy 123.740691 92.2505) (xy 123.740693 92.2505)\r\n\t\t\t\t(xy 123.859307 92.2505) (xy 123.859309 92.2505) (xy 123.973886 92.219799) (xy 123.973888 92.219797)\r\n\t\t\t\t(xy 123.97389 92.219797) (xy 124.076608 92.160492) (xy 124.076608 92.160491) (xy 124.076613 92.160489)\r\n\t\t\t\t(xy 124.160489 92.076613) (xy 124.171637 92.057304) (xy 124.219797 91.97389) (xy 124.219797 91.973888)\r\n\t\t\t\t(xy 124.219799 91.973886) (xy 124.2505 91.859309) (xy 124.2505 91.740691) (xy 124.219799 91.626114)\r\n\t\t\t\t(xy 124.219797 91.626111) (xy 124.219797 91.626109) (xy 124.160492 91.523391) (xy 124.16049 91.523389)\r\n\t\t\t\t(xy 124.160489 91.523387) (xy 124.076613 91.439511) (xy 124.07661 91.439509) (xy 124.076608 91.439507)\r\n\t\t\t\t(xy 123.973889 91.380202) (xy 123.97389 91.380202) (xy 123.960351 91.376574) (xy 123.859309 91.3495)\r\n\t\t\t\t(xy 123.740691 91.3495) (xy 123.699669 91.360492) (xy 123.626109 91.380202) (xy 123.523391 91.439507)\r\n\t\t\t\t(xy 123.439507 91.523391) (xy 123.380202 91.626109) (xy 123.380201 91.626114) (xy 123.3495 91.740691)\r\n\t\t\t\t(xy 107.37048 91.740691) (xy 107.360492 91.723391) (xy 107.36049 91.723389) (xy 107.360489 91.723387)\r\n\t\t\t\t(xy 107.276613 91.639511) (xy 107.27661 91.639509) (xy 107.276608 91.639507) (xy 107.173889 91.580202)\r\n\t\t\t\t(xy 107.17389 91.580202) (xy 107.133602 91.569407) (xy 107.059309 91.5495) (xy 107.028558 91.5495)\r\n\t\t\t\t(xy 106.970367 91.530593) (xy 106.934403 91.481093) (xy 106.932931 91.424877) (xy 106.93708 91.409394)\r\n\t\t\t\t(xy 106.9505 91.359309) (xy 106.9505 91.240691) (xy 106.919799 91.126114) (xy 106.919797 91.126111)\r\n\t\t\t\t(xy 106.919797 91.126109) (xy 106.860492 91.023391) (xy 106.86049 91.023389) (xy 106.860489 91.023387)\r\n\t\t\t\t(xy 106.776613 90.939511) (xy 106.77661 90.939509) (xy 106.776608 90.939507) (xy 106.673889 90.880202)\r\n\t\t\t\t(xy 106.67389 90.880202) (xy 106.660351 90.876574) (xy 106.559309 90.8495) (xy 106.440691 90.8495)\r\n\t\t\t\t(xy 106.404084 90.859309) (xy 106.326109 90.880202) (xy 106.223391 90.939507) (xy 106.22339 90.939508)\r\n\t\t\t\t(xy 106.223387 90.93951) (xy 106.223387 90.939511) (xy 106.142392 91.020505) (xy 106.087878 91.048281)\r\n\t\t\t\t(xy 106.072391 91.0495) (xy 102.7495 91.0495) (xy 102.691309 91.030593) (xy 102.655345 90.981093)\r\n\t\t\t\t(xy 102.6505 90.9505) (xy 102.6505 90.940692) (xy 102.650183 90.939508) (xy 102.619799 90.826114)\r\n\t\t\t\t(xy 102.619797 90.826111) (xy 102.619797 90.826109) (xy 102.595313 90.783702) (xy 102.57048 90.740691)\r\n\t\t\t\t(xy 110.5495 90.740691) (xy 110.5495 90.859309) (xy 110.570989 90.939507) (xy 110.580202 90.97389)\r\n\t\t\t\t(xy 110.639507 91.076608) (xy 110.639509 91.07661) (xy 110.639511 91.076613) (xy 110.723387 91.160489)\r\n\t\t\t\t(xy 110.723389 91.16049) (xy 110.723391 91.160492) (xy 110.82611 91.219797) (xy 110.826111 91.219797)\r\n\t\t\t\t(xy 110.826114 91.219799) (xy 110.940691 91.2505) (xy 110.940693 91.2505) (xy 111.059307 91.2505)\r\n\t\t\t\t(xy 111.059309 91.2505) (xy 111.173886 91.219799) (xy 111.173888 91.219797) (xy 111.17389 91.219797)\r\n\t\t\t\t(xy 111.276608 91.160492) (xy 111.276608 91.160491) (xy 111.276613 91.160489) (xy 111.360489 91.076613)\r\n\t\t\t\t(xy 111.361132 91.075499) (xy 111.419797 90.97389) (xy 111.419797 90.973888) (xy 111.419799 90.973886)\r\n\t\t\t\t(xy 111.4505 90.859309) (xy 111.4505 90.740691) (xy 112.1495 90.740691) (xy 112.1495 90.859309)\r\n\t\t\t\t(xy 112.170989 90.939507) (xy 112.180202 90.97389) (xy 112.239507 91.076608) (xy 112.239509 91.07661)\r\n\t\t\t\t(xy 112.239511 91.076613) (xy 112.323387 91.160489) (xy 112.323389 91.16049) (xy 112.323391 91.160492)\r\n\t\t\t\t(xy 112.42611 91.219797) (xy 112.426111 91.219797) (xy 112.426114 91.219799) (xy 112.540691 91.2505)\r\n\t\t\t\t(xy 112.540693 91.2505) (xy 112.659307 91.2505) (xy 112.659309 91.2505) (xy 112.773886 91.219799)\r\n\t\t\t\t(xy 112.773888 91.219797) (xy 112.77389 91.219797) (xy 112.876608 91.160492) (xy 112.876608 91.160491)\r\n\t\t\t\t(xy 112.876613 91.160489) (xy 112.960489 91.076613) (xy 112.961132 91.075499) (xy 113.019797 90.97389)\r\n\t\t\t\t(xy 113.019797 90.973888) (xy 113.019799 90.973886) (xy 113.0505 90.859309) (xy 113.0505 90.740691)\r\n\t\t\t\t(xy 113.7495 90.740691) (xy 113.7495 90.859309) (xy 113.770989 90.939507) (xy 113.780202 90.97389)\r\n\t\t\t\t(xy 113.839507 91.076608) (xy 113.839509 91.07661) (xy 113.839511 91.076613) (xy 113.923387 91.160489)\r\n\t\t\t\t(xy 113.923389 91.16049) (xy 113.923391 91.160492) (xy 114.02611 91.219797) (xy 114.026111 91.219797)\r\n\t\t\t\t(xy 114.026114 91.219799) (xy 114.140691 91.2505) (xy 114.140693 91.2505) (xy 114.259307 91.2505)\r\n\t\t\t\t(xy 114.259309 91.2505) (xy 114.373886 91.219799) (xy 114.373888 91.219797) (xy 114.37389 91.219797)\r\n\t\t\t\t(xy 114.476608 91.160492) (xy 114.476608 91.160491) (xy 114.476613 91.160489) (xy 114.560489 91.076613)\r\n\t\t\t\t(xy 114.561132 91.075499) (xy 114.619797 90.97389) (xy 114.619797 90.973888) (xy 114.619799 90.973886)\r\n\t\t\t\t(xy 114.6505 90.859309) (xy 114.6505 90.740691) (xy 115.3495 90.740691) (xy 115.3495 90.859309)\r\n\t\t\t\t(xy 115.370989 90.939507) (xy 115.380202 90.97389) (xy 115.439507 91.076608) (xy 115.439509 91.07661)\r\n\t\t\t\t(xy 115.439511 91.076613) (xy 115.523387 91.160489) (xy 115.523389 91.16049) (xy 115.523391 91.160492)\r\n\t\t\t\t(xy 115.62611 91.219797) (xy 115.626111 91.219797) (xy 115.626114 91.219799) (xy 115.740691 91.2505)\r\n\t\t\t\t(xy 115.740693 91.2505) (xy 115.859307 91.2505) (xy 115.859309 91.2505) (xy 115.973886 91.219799)\r\n\t\t\t\t(xy 115.973888 91.219797) (xy 115.97389 91.219797) (xy 116.076608 91.160492) (xy 116.076608 91.160491)\r\n\t\t\t\t(xy 116.076613 91.160489) (xy 116.160489 91.076613) (xy 116.161132 91.075499) (xy 116.219797 90.97389)\r\n\t\t\t\t(xy 116.219797 90.973888) (xy 116.219799 90.973886) (xy 116.2505 90.859309) (xy 116.2505 90.740691)\r\n\t\t\t\t(xy 116.9495 90.740691) (xy 116.9495 90.859309) (xy 116.970989 90.939507) (xy 116.980202 90.97389)\r\n\t\t\t\t(xy 117.039507 91.076608) (xy 117.039509 91.07661) (xy 117.039511 91.076613) (xy 117.123387 91.160489)\r\n\t\t\t\t(xy 117.123389 91.16049) (xy 117.123391 91.160492) (xy 117.22611 91.219797) (xy 117.226111 91.219797)\r\n\t\t\t\t(xy 117.226114 91.219799) (xy 117.340691 91.2505) (xy 117.340693 91.2505) (xy 117.459307 91.2505)\r\n\t\t\t\t(xy 117.459309 91.2505) (xy 117.573886 91.219799) (xy 117.573888 91.219797) (xy 117.57389 91.219797)\r\n\t\t\t\t(xy 117.676608 91.160492) (xy 117.676608 91.160491) (xy 117.676613 91.160489) (xy 117.760489 91.076613)\r\n\t\t\t\t(xy 117.761132 91.075499) (xy 117.819797 90.97389) (xy 117.819797 90.973888) (xy 117.819799 90.973886)\r\n\t\t\t\t(xy 117.8505 90.859309) (xy 117.8505 90.740691) (xy 120.3495 90.740691) (xy 120.3495 90.859309)\r\n\t\t\t\t(xy 120.370989 90.939507) (xy 120.380202 90.97389) (xy 120.439507 91.076608) (xy 120.439509 91.07661)\r\n\t\t\t\t(xy 120.439511 91.076613) (xy 120.523387 91.160489) (xy 120.523389 91.16049) (xy 120.523391 91.160492)\r\n\t\t\t\t(xy 120.62611 91.219797) (xy 120.626111 91.219797) (xy 120.626114 91.219799) (xy 120.740691 91.2505)\r\n\t\t\t\t(xy 120.740693 91.2505) (xy 120.859307 91.2505) (xy 120.859309 91.2505) (xy 120.973886 91.219799)\r\n\t\t\t\t(xy 120.973888 91.219797) (xy 120.97389 91.219797) (xy 121.076608 91.160492) (xy 121.076608 91.160491)\r\n\t\t\t\t(xy 121.076613 91.160489) (xy 121.160489 91.076613) (xy 121.161132 91.075499) (xy 121.219797 90.97389)\r\n\t\t\t\t(xy 121.219797 90.973888) (xy 121.219799 90.973886) (xy 121.2505 90.859309) (xy 121.2505 90.740691)\r\n\t\t\t\t(xy 121.219799 90.626114) (xy 121.219797 90.626111) (xy 121.219797 90.62610' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'9) (xy 121.160492 90.523391)\r\n\t\t\t\t(xy 121.16049 90.523389) (xy 121.160489 90.523387) (xy 121.076613 90.439511) (xy 121.07661 90.439509)\r\n\t\t\t\t(xy 121.076608 90.439507) (xy 120.973889 90.380202) (xy 120.97389 90.380202) (xy 120.92029 90.36584)\r\n\t\t\t\t(xy 120.859309 90.3495) (xy 120.740691 90.3495) (xy 120.67971 90.36584) (xy 120.626109 90.380202)\r\n\t\t\t\t(xy 120.523391 90.439507) (xy 120.439507 90.523391) (xy 120.380202 90.626109) (xy 120.373667 90.6505)\r\n\t\t\t\t(xy 120.3495 90.740691) (xy 117.8505 90.740691) (xy 117.819799 90.626114) (xy 117.819797 90.626111)\r\n\t\t\t\t(xy 117.819797 90.626109) (xy 117.760492 90.523391) (xy 117.76049 90.523389) (xy 117.760489 90.523387)\r\n\t\t\t\t(xy 117.676613 90.439511) (xy 117.67661 90.439509) (xy 117.676608 90.439507) (xy 117.573889 90.380202)\r\n\t\t\t\t(xy 117.57389 90.380202) (xy 117.52029 90.36584) (xy 117.459309 90.3495) (xy 117.340691 90.3495)\r\n\t\t\t\t(xy 117.27971 90.36584) (xy 117.226109 90.380202) (xy 117.123391 90.439507) (xy 117.039507 90.523391)\r\n\t\t\t\t(xy 116.980202 90.626109) (xy 116.973667 90.6505) (xy 116.9495 90.740691) (xy 116.2505 90.740691)\r\n\t\t\t\t(xy 116.219799 90.626114) (xy 116.219797 90.626111) (xy 116.219797 90.626109) (xy 116.160492 90.523391)\r\n\t\t\t\t(xy 116.16049 90.523389) (xy 116.160489 90.523387) (xy 116.076613 90.439511) (xy 116.07661 90.439509)\r\n\t\t\t\t(xy 116.076608 90.439507) (xy 115.973889 90.380202) (xy 115.97389 90.380202) (xy 115.92029 90.36584)\r\n\t\t\t\t(xy 115.859309 90.3495) (xy 115.740691 90.3495) (xy 115.67971 90.36584) (xy 115.626109 90.380202)\r\n\t\t\t\t(xy 115.523391 90.439507) (xy 115.439507 90.523391) (xy 115.380202 90.626109) (xy 115.373667 90.6505)\r\n\t\t\t\t(xy 115.3495 90.740691) (xy 114.6505 90.740691) (xy 114.619799 90.626114) (xy 114.619797 90.626111)\r\n\t\t\t\t(xy 114.619797 90.626109) (xy 114.560492 90.523391) (xy 114.56049 90.523389) (xy 114.560489 90.523387)\r\n\t\t\t\t(xy 114.476613 90.439511) (xy 114.47661 90.439509) (xy 114.476608 90.439507) (xy 114.373889 90.380202)\r\n\t\t\t\t(xy 114.37389 90.380202) (xy 114.32029 90.36584) (xy 114.259309 90.3495) (xy 114.140691 90.3495)\r\n\t\t\t\t(xy 114.07971 90.36584) (xy 114.026109 90.380202) (xy 113.923391 90.439507) (xy 113.839507 90.523391)\r\n\t\t\t\t(xy 113.780202 90.626109) (xy 113.773667 90.6505) (xy 113.7495 90.740691) (xy 113.0505 90.740691)\r\n\t\t\t\t(xy 113.019799 90.626114) (xy 113.019797 90.626111) (xy 113.019797 90.626109) (xy 112.960492 90.523391)\r\n\t\t\t\t(xy 112.96049 90.523389) (xy 112.960489 90.523387) (xy 112.876613 90.439511) (xy 112.87661 90.439509)\r\n\t\t\t\t(xy 112.876608 90.439507) (xy 112.773889 90.380202) (xy 112.77389 90.380202) (xy 112.72029 90.36584)\r\n\t\t\t\t(xy 112.659309 90.3495) (xy 112.540691 90.3495) (xy 112.47971 90.36584) (xy 112.426109 90.380202)\r\n\t\t\t\t(xy 112.323391 90.439507) (xy 112.239507 90.523391) (xy 112.180202 90.626109) (xy 112.173667 90.6505)\r\n\t\t\t\t(xy 112.1495 90.740691) (xy 111.4505 90.740691) (xy 111.419799 90.626114) (xy 111.419797 90.626111)\r\n\t\t\t\t(xy 111.419797 90.626109) (xy 111.360492 90.523391) (xy 111.36049 90.523389) (xy 111.360489 90.523387)\r\n\t\t\t\t(xy 111.276613 90.439511) (xy 111.27661 90.439509) (xy 111.276608 90.439507) (xy 111.173889 90.380202)\r\n\t\t\t\t(xy 111.17389 90.380202) (xy 111.12029 90.36584) (xy 111.059309 90.3495) (xy 110.940691 90.3495)\r\n\t\t\t\t(xy 110.87971 90.36584) (xy 110.826109 90.380202) (xy 110.723391 90.439507) (xy 110.639507 90.523391)\r\n\t\t\t\t(xy 110.580202 90.626109) (xy 110.573667 90.6505) (xy 110.5495 90.740691) (xy 102.57048 90.740691)\r\n\t\t\t\t(xy 102.560492 90.723391) (xy 102.56049 90.723389) (xy 102.560489 90.723387) (xy 102.476613 90.639511)\r\n\t\t\t\t(xy 102.47661 90.639509) (xy 102.476608 90.639507) (xy 102.373889 90.580202) (xy 102.37389 90.580202)\r\n\t\t\t\t(xy 102.324261 90.566904) (xy 102.259309 90.5495) (xy 102.140691 90.5495) (xy 102.099669 90.560492)\r\n\t\t\t\t(xy 102.026109 90.580202) (xy 101.923391 90.639507) (xy 101.839507 90.723391) (xy 101.780202 90.826109)\r\n\t\t\t\t(xy 101.771307 90.859307) (xy 101.7495 90.940691) (xy 101.7495 91.059309) (xy 101.770482 91.137615)\r\n\t\t\t\t(xy 101.780202 91.17389) (xy 101.839507 91.276608) (xy 101.839509 91.27661) (xy 101.839511 91.276613)\r\n\t\t\t\t(xy 101.923387 91.360489) (xy 101.923389 91.36049) (xy 101.923391 91.360492) (xy 102.02611 91.419797)\r\n\t\t\t\t(xy 102.026111 91.419797) (xy 102.026114 91.419799) (xy 102.140691 91.4505) (xy 102.140693 91.4505)\r\n\t\t\t\t(xy 102.255231 91.4505) (xy 102.313422 91.469407) (xy 102.325234 91.479496) (xy 102.358103 91.512364)\r\n\t\t\t\t(xy 102.450171 91.5505) (xy 102.450172 91.5505) (xy 102.456231 91.5505) (xy 102.514422 91.569407)\r\n\t\t\t\t(xy 102.550386 91.618907) (xy 102.550386 91.680093) (xy 102.526235 91.719504) (xy 102.225235 92.020504)\r\n\t\t\t\t(xy 102.170718 92.048281) (xy 102.155231 92.0495) (xy 102.040691 92.0495) (xy 102.004084 92.059309)\r\n\t\t\t\t(xy 101.926109 92.080202) (xy 101.823391 92.139507) (xy 101.739507 92.223391) (xy 101.680202 92.326109)\r\n\t\t\t\t(xy 101.671307 92.359307) (xy 101.6495 92.440691) (xy 101.6495 92.559309) (xy 101.670488 92.637635)\r\n\t\t\t\t(xy 101.680202 92.67389) (xy 101.739507 92.776608) (xy 101.739509 92.77661) (xy 101.739511 92.776613)\r\n\t\t\t\t(xy 101.823387 92.860489) (xy 101.823389 92.86049) (xy 101.823391 92.860492) (xy 101.92611 92.919797)\r\n\t\t\t\t(xy 101.926111 92.919797) (xy 101.926114 92.919799) (xy 102.040691 92.9505) (xy 102.040693 92.9505)\r\n\t\t\t\t(xy 102.159307 92.9505) (xy 102.159309 92.9505) (xy 102.273886 92.919799) (xy 102.273888 92.919797)\r\n\t\t\t\t(xy 102.27389 92.919797) (xy 102.376608 92.860492) (xy 102.376608 92.860491) (xy 102.376613 92.860489)\r\n\t\t\t\t(xy 102.460489 92.776613) (xy 102.462062 92.773888) (xy 102.519797 92.67389) (xy 102.519797 92.673888)\r\n\t\t\t\t(xy 102.519799 92.673886) (xy 102.5505 92.559309) (xy 102.5505 92.444766) (xy 102.569407 92.386575)\r\n\t\t\t\t(xy 102.579497 92.374762) (xy 102.774058 92.180202) (xy 102.974764 91.979496) (xy 103.02928 91.951719)\r\n\t\t\t\t(xy 103.044767 91.9505) (xy 104.010119 91.9505) (xy 104.06831 91.969407) (xy 104.104274 92.018907)\r\n\t\t\t\t(xy 104.104274 92.080093) (xy 104.095855 92.099001) (xy 104.080202 92.126111) (xy 104.080201 92.126113)\r\n\t\t\t\t(xy 104.080201 92.126114) (xy 104.0495 92.240691) (xy 104.0495 92.359309) (xy 104.076543 92.460233)\r\n\t\t\t\t(xy 104.080467 92.474877) (xy 104.078995 92.502965) (xy 104.078995 92.531093) (xy 104.077406 92.533279)\r\n\t\t\t\t(xy 104.077265 92.535978) (xy 104.05957 92.557828) (xy 104.043031 92.580593) (xy 104.040459 92.581428)\r\n\t\t\t\t(xy 104.038759 92.583528) (xy 103.98484 92.5995) (xy 103.942223 92.5995) (xy 103.884032 92.580593)\r\n\t\t\t\t(xy 103.848068 92.531093) (xy 103.846596 92.526123) (xy 103.841768 92.508104) (xy 103.819799 92.426114)\r\n\t\t\t\t(xy 103.819797 92.426111) (xy 103.819797 92.426109) (xy 103.760492 92.323391) (xy 103.76049 92.323389)\r\n\t\t\t\t(xy 103.760489 92.323387) (xy 103.676613 92.239511) (xy 103.67661 92.239509) (xy 103.676608 92.239507)\r\n\t\t\t\t(xy 103.573889 92.180202) (xy 103.57389 92.180202) (xy 103.551923 92.174316) (xy 103.459309 92.1495)\r\n\t\t\t\t(xy 103.340691 92.1495) (xy 103.299669 92.160492) (xy 103.226109 92.180202) (xy 103.123391 92.239507)\r\n\t\t\t\t(xy 103.039507 92.323391) (xy 102.980202 92.426109) (xy 102.968467 92.469907) (xy 102.9495 92.540691)\r\n\t\t\t\t(xy 102.9495 92.659309) (xy 102.961624 92.704555) (xy 102.980202 92.77389) (xy 103.039507 92.876608)\r\n\t\t\t\t(xy 103.039509 92.87661) (xy 103.039511 92.876613) (xy 103.123387 92.960489) (xy 103.123389 92.96049)\r\n\t\t\t\t(xy 103.123391 92.960492) (xy 103.22611 93.019797) (xy 103.226111 93.019797) (xy 103.226114 93.019799)\r\n\t\t\t\t(xy 103.340691 93.0505) (xy 103.340693 93.0505) (xy 103.460316 93.0505) (xy 103.497757 93.061862)\r\n\t\t\t\t(xy 103.499095 93.058633) (xy 103.600171 93.1005) (xy 103.600172 93.1005) (xy 103.699827 93.1005)\r\n\t\t\t\t(xy 107.305231 93.1005) (xy 107.312828 93.102968) (xy 107.320718 93.101719) (xy 107.341373 93.112243)\r\n\t\t\t\t(xy 107.363422 93.119407) (xy 107.375235 93.129496) (xy 107.476235 93.230496) (xy 107.504012 93.285013)\r\n\t\t\t\t(xy 107.494441 93.345445) (xy 107.451176 93.38871) (xy 107.406231 93.3995) (xy 106.500171 93.3995)\r\n\t\t\t\t(xy 106.408103 93.437635) (xy 106.225234 93.620504) (xy 106.170718 93.648281) (xy 106.155231 93.6495)\r\n\t\t\t\t(xy 106.040691 93.6495) (xy 105.999669 93.660492) (xy 105.926109 93.680202) (xy 105.823391 93.739507)\r\n\t\t\t\t(xy 105.739509 93.823389) (xy 105.735736 93.829925) (xy 105.690266 93.870865) (xy ' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'105.629416 93.87726)\r\n\t\t\t\t(xy 105.576428 93.846667) (xy 105.564264 93.829925) (xy 105.56049 93.823389) (xy 105.560489 93.823387)\r\n\t\t\t\t(xy 105.476613 93.739511) (xy 105.47661 93.739509) (xy 105.476608 93.739507) (xy 105.373889 93.680202)\r\n\t\t\t\t(xy 105.37389 93.680202) (xy 105.331598 93.66887) (xy 105.259309 93.6495) (xy 105.140691 93.6495)\r\n\t\t\t\t(xy 105.099669 93.660492) (xy 105.026109 93.680202) (xy 104.923391 93.739507) (xy 104.839509 93.823389)\r\n\t\t\t\t(xy 104.795277 93.900001) (xy 104.749807 93.940941) (xy 104.709541 93.9495) (xy 97.227609 93.9495)\r\n\t\t\t\t(xy 97.169418 93.930593) (xy 97.157611 93.920509) (xy 97.076613 93.839511) (xy 97.07661 93.839509)\r\n\t\t\t\t(xy 97.076608 93.839507) (xy 96.973889 93.780202) (xy 96.97389 93.780202) (xy 96.950318 93.773886)\r\n\t\t\t\t(xy 96.859309 93.7495) (xy 96.740691 93.7495) (xy 96.676336 93.766744) (xy 96.626109 93.780202)\r\n\t\t\t\t(xy 96.523391 93.839507) (xy 96.439507 93.923391) (xy 96.380202 94.026109) (xy 96.380201 94.026114)\r\n\t\t\t\t(xy 96.3495 94.140691) (xy 74.0005 94.140691) (xy 74.0005 92.174034) (xy 76.7995 92.174034) (xy 76.7995 92.425965)\r\n\t\t\t\t(xy 76.838908 92.67478) (xy 76.916759 92.914379) (xy 77.030308 93.137233) (xy 77.03113 93.138845)\r\n\t\t\t\t(xy 77.179207 93.342656) (xy 77.357344 93.520793) (xy 77.561155 93.66887) (xy 77.785621 93.783241)\r\n\t\t\t\t(xy 78.025215 93.86109) (xy 78.025216 93.86109) (xy 78.025219 93.861091) (xy 78.274035 93.9005)\r\n\t\t\t\t(xy 78.274038 93.9005) (xy 78.525965 93.9005) (xy 78.77478 93.861091) (xy 78.774781 93.86109) (xy 78.774785 93.86109)\r\n\t\t\t\t(xy 79.014379 93.783241) (xy 79.238845 93.66887) (xy 79.442656 93.520793) (xy 79.620793 93.342656)\r\n\t\t\t\t(xy 79.76887 93.138845) (xy 79.883241 92.914379) (xy 79.96109 92.674785) (xy 79.961232 92.67389)\r\n\t\t\t\t(xy 79.987679 92.506911) (xy 93.061991 92.506911) (xy 93.061991 92.625529) (xy 93.086314 92.716304)\r\n\t\t\t\t(xy 93.092693 92.74011) (xy 93.151998 92.842828) (xy 93.152 92.84283) (xy 93.152002 92.842833) (xy 93.235878 92.926709)\r\n\t\t\t\t(xy 93.23588 92.92671) (xy 93.235882 92.926712) (xy 93.338601 92.986017) (xy 93.338602 92.986017)\r\n\t\t\t\t(xy 93.338605 92.986019) (xy 93.453182 93.01672) (xy 93.453184 93.01672) (xy 93.571798 93.01672)\r\n\t\t\t\t(xy 93.5718 93.01672) (xy 93.686377 92.986019) (xy 93.686379 92.986017) (xy 93.686381 92.986017)\r\n\t\t\t\t(xy 93.789099 92.926712) (xy 93.789099 92.926711) (xy 93.789104 92.926709) (xy 93.87298 92.842833)\r\n\t\t\t\t(xy 93.898045 92.799418) (xy 93.943513 92.758478) (xy 94.004363 92.752082) (xy 94.057352 92.782674)\r\n\t\t\t\t(xy 94.069517 92.799418) (xy 94.076445 92.811417) (xy 94.076448 92.811422) (xy 94.160324 92.895298)\r\n\t\t\t\t(xy 94.160326 92.895299) (xy 94.160328 92.895301) (xy 94.263047 92.954606) (xy 94.263048 92.954606)\r\n\t\t\t\t(xy 94.263051 92.954608) (xy 94.377628 92.985309) (xy 94.37763 92.985309) (xy 94.496244 92.985309)\r\n\t\t\t\t(xy 94.496246 92.985309) (xy 94.610823 92.954608) (xy 94.610825 92.954606) (xy 94.610827 92.954606)\r\n\t\t\t\t(xy 94.713545 92.895301) (xy 94.713545 92.8953) (xy 94.71355 92.895298) (xy 94.797426 92.811422)\r\n\t\t\t\t(xy 94.797429 92.811417) (xy 94.856734 92.708699) (xy 94.856734 92.708697) (xy 94.856736 92.708695)\r\n\t\t\t\t(xy 94.887437 92.594118) (xy 94.887437 92.540691) (xy 98.8495 92.540691) (xy 98.8495 92.659309)\r\n\t\t\t\t(xy 98.861624 92.704555) (xy 98.880202 92.77389) (xy 98.939507 92.876608) (xy 98.939509 92.87661)\r\n\t\t\t\t(xy 98.939511 92.876613) (xy 99.023387 92.960489) (xy 99.023389 92.96049) (xy 99.023391 92.960492)\r\n\t\t\t\t(xy 99.12611 93.019797) (xy 99.126111 93.019797) (xy 99.126114 93.019799) (xy 99.240691 93.0505)\r\n\t\t\t\t(xy 99.240693 93.0505) (xy 99.359307 93.0505) (xy 99.359309 93.0505) (xy 99.473886 93.019799) (xy 99.473888 93.019797)\r\n\t\t\t\t(xy 99.47389 93.019797) (xy 99.576608 92.960492) (xy 99.576608 92.960491) (xy 99.576613 92.960489)\r\n\t\t\t\t(xy 99.660489 92.876613) (xy 99.693461 92.819504) (xy 99.719797 92.77389) (xy 99.719797 92.773888)\r\n\t\t\t\t(xy 99.719799 92.773886) (xy 99.7505 92.659309) (xy 99.7505 92.540691) (xy 99.735071 92.483109)\r\n\t\t\t\t(xy 100.347985 92.483109) (xy 100.347985 92.601727) (xy 100.372828 92.69444) (xy 100.378687 92.716308)\r\n\t\t\t\t(xy 100.437992 92.819026) (xy 100.437994 92.819028) (xy 100.437996 92.819031) (xy 100.521872 92.902907)\r\n\t\t\t\t(xy 100.521874 92.902908) (xy 100.521876 92.90291) (xy 100.624595 92.962215) (xy 100.624596 92.962215)\r\n\t\t\t\t(xy 100.624599 92.962217) (xy 100.739176 92.992918) (xy 100.739178 92.992918) (xy 100.857792 92.992918)\r\n\t\t\t\t(xy 100.857794 92.992918) (xy 100.972371 92.962217) (xy 100.972373 92.962215) (xy 100.972375 92.962215)\r\n\t\t\t\t(xy 101.075093 92.90291) (xy 101.075093 92.902909) (xy 101.075098 92.902907) (xy 101.158974 92.819031)\r\n\t\t\t\t(xy 101.183467 92.776608) (xy 101.218282 92.716308) (xy 101.218282 92.716306) (xy 101.218284 92.716304)\r\n\t\t\t\t(xy 101.248985 92.601727) (xy 101.248985 92.483109) (xy 101.218284 92.368532) (xy 101.218282 92.368529)\r\n\t\t\t\t(xy 101.218282 92.368527) (xy 101.158977 92.265809) (xy 101.158975 92.265807) (xy 101.158974 92.265805)\r\n\t\t\t\t(xy 101.075098 92.181929) (xy 101.075095 92.181927) (xy 101.075093 92.181925) (xy 100.972374 92.12262)\r\n\t\t\t\t(xy 100.972375 92.12262) (xy 100.958836 92.118992) (xy 100.857794 92.091918) (xy 100.739176 92.091918)\r\n\t\t\t\t(xy 100.669052 92.110707) (xy 100.624594 92.12262) (xy 100.521876 92.181925) (xy 100.437992 92.265809)\r\n\t\t\t\t(xy 100.378687 92.368527) (xy 100.364949 92.419799) (xy 100.347985 92.483109) (xy 99.735071 92.483109)\r\n\t\t\t\t(xy 99.719799 92.426114) (xy 99.719797 92.426111) (xy 99.719797 92.426109) (xy 99.660492 92.323391)\r\n\t\t\t\t(xy 99.66049 92.323389) (xy 99.660489 92.323387) (xy 99.576613 92.239511) (xy 99.57661 92.239509)\r\n\t\t\t\t(xy 99.576608 92.239507) (xy 99.473889 92.180202) (xy 99.47389 92.180202) (xy 99.451923 92.174316)\r\n\t\t\t\t(xy 99.359309 92.1495) (xy 99.240691 92.1495) (xy 99.199669 92.160492) (xy 99.126109 92.180202)\r\n\t\t\t\t(xy 99.023391 92.239507) (xy 98.939507 92.323391) (xy 98.880202 92.426109) (xy 98.868467 92.469907)\r\n\t\t\t\t(xy 98.8495 92.540691) (xy 94.887437 92.540691) (xy 94.887437 92.4755) (xy 94.856736 92.360923)\r\n\t\t\t\t(xy 94.856734 92.36092) (xy 94.856734 92.360918) (xy 94.797429 92.2582) (xy 94.797427 92.258198)\r\n\t\t\t\t(xy 94.797426 92.258196) (xy 94.71355 92.17432) (xy 94.713547 92.174318) (xy 94.713545 92.174316)\r\n\t\t\t\t(xy 94.610826 92.115011) (xy 94.610827 92.115011) (xy 94.595772 92.110977) (xy 94.496246 92.084309)\r\n\t\t\t\t(xy 94.377628 92.084309) (xy 94.322797 92.099001) (xy 94.263046 92.115011) (xy 94.160328 92.174316)\r\n\t\t\t\t(xy 94.076446 92.258198) (xy 94.051382 92.30161) (xy 94.005912 92.34255) (xy 93.945062 92.348945)\r\n\t\t\t\t(xy 93.892074 92.318352) (xy 93.879909 92.301609) (xy 93.872982 92.289611) (xy 93.87298 92.289607)\r\n\t\t\t\t(xy 93.789104 92.205731) (xy 93.789101 92.205729) (xy 93.789099 92.205727) (xy 93.68638 92.146422)\r\n\t\t\t\t(xy 93.686381 92.146422) (xy 93.664992 92.140691) (xy 93.5718 92.11572) (xy 93.453182 92.11572)\r\n\t\t\t\t(xy 93.383058 92.134509) (xy 93.3386 92.146422) (xy 93.235882 92.205727) (xy 93.151998 92.289611)\r\n\t\t\t\t(xy 93.092693 92.392329) (xy 93.080554 92.437634) (xy 93.061991 92.506911) (xy 79.987679 92.506911)\r\n\t\t\t\t(xy 80.0005 92.425965) (xy 80.0005 92.174034) (xy 79.964967 91.949689) (xy 79.963541 91.940691)\r\n\t\t\t\t(xy 83.5495 91.940691) (xy 83.5495 92.059309) (xy 83.570989 92.139507) (xy 83.580202 92.17389) (xy 83.639507 92.276608)\r\n\t\t\t\t(xy 83.639509 92.27661) (xy 83.639511 92.276613) (xy 83.723387 92.360489) (xy 83.723389 92.36049)\r\n\t\t\t\t(xy 83.723391 92.360492) (xy 83.82611 92.419797) (xy 83.826111 92.419797) (xy 83.826114 92.419799)\r\n\t\t\t\t(xy 83.940691 92.4505) (xy 83.940693 92.4505) (xy 84.059307 92.4505) (xy 84.059309 92.4505) (xy 84.173886 92.419799)\r\n\t\t\t\t(xy 84.173888 92.419797) (xy 84.17389 92.419797) (xy 84.276608 92.360492) (xy 84.276608 92.360491)\r\n\t\t\t\t(xy 84.276613 92.360489) (xy 84.360489 92.276613) (xy 84.360492 92.276608) (xy 84.419797 92.17389)\r\n\t\t\t\t(xy 84.419797 92.173888) (xy 84.419799 92.173886) (xy 84.4505 92.059309) (xy 84.4505 91.940691)\r\n\t\t\t\t(xy 87.5495 91.940691) (xy 87.5495 92.059309) (xy 87.570989 92.139507) (xy 87.580202 92.17389) (xy 87.639507 92.276608)\r\n\t\t\t\t(xy 87.639509 92.27661) (xy 87.639511 92.276613) (xy 87.723387 92.360489) (xy 87.723389 92.36049)\r\n\t\t\t\t(xy 87.723391 92.360492) (xy 87.82611 92.419797) (xy 87.826111 92.419797) (xy 87.826114 92.4' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'19799)\r\n\t\t\t\t(xy 87.940691 92.4505) (xy 87.940693 92.4505) (xy 88.059307 92.4505) (xy 88.059309 92.4505) (xy 88.173886 92.419799)\r\n\t\t\t\t(xy 88.173888 92.419797) (xy 88.17389 92.419797) (xy 88.276608 92.360492) (xy 88.276608 92.360491)\r\n\t\t\t\t(xy 88.276613 92.360489) (xy 88.360489 92.276613) (xy 88.360492 92.276608) (xy 88.419797 92.17389)\r\n\t\t\t\t(xy 88.419797 92.173888) (xy 88.419799 92.173886) (xy 88.4505 92.059309) (xy 88.4505 91.940691)\r\n\t\t\t\t(xy 91.5495 91.940691) (xy 91.5495 92.059309) (xy 91.570989 92.139507) (xy 91.580202 92.17389) (xy 91.639507 92.276608)\r\n\t\t\t\t(xy 91.639509 92.27661) (xy 91.639511 92.276613) (xy 91.723387 92.360489) (xy 91.723389 92.36049)\r\n\t\t\t\t(xy 91.723391 92.360492) (xy 91.82611 92.419797) (xy 91.826111 92.419797) (xy 91.826114 92.419799)\r\n\t\t\t\t(xy 91.940691 92.4505) (xy 91.940693 92.4505) (xy 92.059307 92.4505) (xy 92.059309 92.4505) (xy 92.173886 92.419799)\r\n\t\t\t\t(xy 92.276613 92.360489) (xy 92.360489 92.276613) (xy 92.360492 92.276608) (xy 92.419797 92.17389)\r\n\t\t\t\t(xy 92.419797 92.173888) (xy 92.419799 92.173886) (xy 92.4505 92.059309) (xy 92.4505 91.940691)\r\n\t\t\t\t(xy 95.5495 91.940691) (xy 95.5495 92.059309) (xy 95.570989 92.139507) (xy 95.580202 92.17389) (xy 95.639507 92.276608)\r\n\t\t\t\t(xy 95.639509 92.27661) (xy 95.639511 92.276613) (xy 95.723387 92.360489) (xy 95.723389 92.36049)\r\n\t\t\t\t(xy 95.723391 92.360492) (xy 95.82611 92.419797) (xy 95.826111 92.419797) (xy 95.826114 92.419799)\r\n\t\t\t\t(xy 95.940691 92.4505) (xy 95.940693 92.4505) (xy 96.059307 92.4505) (xy 96.059309 92.4505) (xy 96.173886 92.419799)\r\n\t\t\t\t(xy 96.173888 92.419797) (xy 96.17389 92.419797) (xy 96.276608 92.360492) (xy 96.276608 92.360491)\r\n\t\t\t\t(xy 96.276613 92.360489) (xy 96.360489 92.276613) (xy 96.360492 92.276608) (xy 96.419797 92.17389)\r\n\t\t\t\t(xy 96.419797 92.173888) (xy 96.419799 92.173886) (xy 96.4505 92.059309) (xy 96.4505 91.940691)\r\n\t\t\t\t(xy 96.419799 91.826114) (xy 96.419797 91.826111) (xy 96.419797 91.826109) (xy 96.360492 91.723391)\r\n\t\t\t\t(xy 96.36049 91.723389) (xy 96.360489 91.723387) (xy 96.276613 91.639511) (xy 96.27661 91.639509)\r\n\t\t\t\t(xy 96.276608 91.639507) (xy 96.173889 91.580202) (xy 96.17389 91.580202) (xy 96.133602 91.569407)\r\n\t\t\t\t(xy 96.059309 91.5495) (xy 95.940691 91.5495) (xy 95.878239 91.566234) (xy 95.826109 91.580202)\r\n\t\t\t\t(xy 95.723391 91.639507) (xy 95.639507 91.723391) (xy 95.580202 91.826109) (xy 95.576612 91.839507)\r\n\t\t\t\t(xy 95.5495 91.940691) (xy 92.4505 91.940691) (xy 92.419799 91.826114) (xy 92.419797 91.826111)\r\n\t\t\t\t(xy 92.419797 91.826109) (xy 92.360492 91.723391) (xy 92.36049 91.723389) (xy 92.360489 91.723387)\r\n\t\t\t\t(xy 92.276613 91.639511) (xy 92.27661 91.639509) (xy 92.276608 91.639507) (xy 92.173889 91.580202)\r\n\t\t\t\t(xy 92.17389 91.580202) (xy 92.133602 91.569407) (xy 92.059309 91.5495) (xy 91.940691 91.5495) (xy 91.878239 91.566234)\r\n\t\t\t\t(xy 91.826109 91.580202) (xy 91.723391 91.639507) (xy 91.639507 91.723391) (xy 91.580202 91.826109)\r\n\t\t\t\t(xy 91.576612 91.839507) (xy 91.5495 91.940691) (xy 88.4505 91.940691) (xy 88.419799 91.826114)\r\n\t\t\t\t(xy 88.419797 91.826111) (xy 88.419797 91.826109) (xy 88.360492 91.723391) (xy 88.36049 91.723389)\r\n\t\t\t\t(xy 88.360489 91.723387) (xy 88.276613 91.639511) (xy 88.27661 91.639509) (xy 88.276608 91.639507)\r\n\t\t\t\t(xy 88.173889 91.580202) (xy 88.17389 91.580202) (xy 88.133602 91.569407) (xy 88.059309 91.5495)\r\n\t\t\t\t(xy 87.940691 91.5495) (xy 87.878239 91.566234) (xy 87.826109 91.580202) (xy 87.723391 91.639507)\r\n\t\t\t\t(xy 87.639507 91.723391) (xy 87.580202 91.826109) (xy 87.576612 91.839507) (xy 87.5495 91.940691)\r\n\t\t\t\t(xy 84.4505 91.940691) (xy 84.419799 91.826114) (xy 84.419797 91.826111) (xy 84.419797 91.826109)\r\n\t\t\t\t(xy 84.360492 91.723391) (xy 84.36049 91.723389) (xy 84.360489 91.723387) (xy 84.276613 91.639511)\r\n\t\t\t\t(xy 84.27661 91.639509) (xy 84.276608 91.639507) (xy 84.173889 91.580202) (xy 84.17389 91.580202)\r\n\t\t\t\t(xy 84.133602 91.569407) (xy 84.059309 91.5495) (xy 83.940691 91.5495) (xy 83.878239 91.566234)\r\n\t\t\t\t(xy 83.826109 91.580202) (xy 83.723391 91.639507) (xy 83.639507 91.723391) (xy 83.580202 91.826109)\r\n\t\t\t\t(xy 83.576612 91.839507) (xy 83.5495 91.940691) (xy 79.963541 91.940691) (xy 79.9627 91.935381)\r\n\t\t\t\t(xy 79.96109 91.925215) (xy 79.883241 91.685621) (xy 79.76887 91.461155) (xy 79.620793 91.257344)\r\n\t\t\t\t(xy 79.442656 91.079207) (xy 79.389643 91.040691) (xy 90.0495 91.040691) (xy 90.0495 91.159309)\r\n\t\t\t\t(xy 90.070989 91.239507) (xy 90.080202 91.27389) (xy 90.139507 91.376608) (xy 90.139509 91.37661)\r\n\t\t\t\t(xy 90.139511 91.376613) (xy 90.223387 91.460489) (xy 90.223389 91.46049) (xy 90.223391 91.460492)\r\n\t\t\t\t(xy 90.32611 91.519797) (xy 90.326111 91.519797) (xy 90.326114 91.519799) (xy 90.440691 91.5505)\r\n\t\t\t\t(xy 90.440693 91.5505) (xy 90.559307 91.5505) (xy 90.559309 91.5505) (xy 90.673886 91.519799) (xy 90.673888 91.519797)\r\n\t\t\t\t(xy 90.67389 91.519797) (xy 90.776608 91.460492) (xy 90.776608 91.460491) (xy 90.776613 91.460489)\r\n\t\t\t\t(xy 90.860489 91.376613) (xy 90.891217 91.323391) (xy 90.919797 91.27389) (xy 90.919797 91.273888)\r\n\t\t\t\t(xy 90.919799 91.273886) (xy 90.9505 91.159309) (xy 90.9505 91.040691) (xy 90.919799 90.926114)\r\n\t\t\t\t(xy 90.919797 90.926111) (xy 90.919797 90.926109) (xy 90.860492 90.823391) (xy 90.86049 90.823389)\r\n\t\t\t\t(xy 90.860489 90.823387) (xy 90.776613 90.739511) (xy 90.77661 90.739509) (xy 90.776608 90.739507)\r\n\t\t\t\t(xy 90.673889 90.680202) (xy 90.67389 90.680202) (xy 90.660351 90.676574) (xy 90.559309 90.6495)\r\n\t\t\t\t(xy 90.440691 90.6495) (xy 90.370567 90.668289) (xy 90.326109 90.680202) (xy 90.223391 90.739507)\r\n\t\t\t\t(xy 90.139507 90.823391) (xy 90.080202 90.926109) (xy 90.080201 90.926114) (xy 90.0495 91.040691)\r\n\t\t\t\t(xy 79.389643 91.040691) (xy 79.238845 90.93113) (xy 79.238844 90.931129) (xy 79.238842 90.931128)\r\n\t\t\t\t(xy 79.014379 90.816759) (xy 78.77478 90.738908) (xy 78.525965 90.6995) (xy 78.525962 90.6995) (xy 78.274038 90.6995)\r\n\t\t\t\t(xy 78.274035 90.6995) (xy 78.025219 90.738908) (xy 77.78562 90.816759) (xy 77.561157 90.931128)\r\n\t\t\t\t(xy 77.357345 91.079206) (xy 77.179206 91.257345) (xy 77.031128 91.461157) (xy 76.916759 91.68562)\r\n\t\t\t\t(xy 76.838908 91.925219) (xy 76.7995 92.174034) (xy 74.0005 92.174034) (xy 74.0005 88.840691) (xy 79.5495 88.840691)\r\n\t\t\t\t(xy 79.5495 88.959309) (xy 79.570989 89.039507) (xy 79.580202 89.07389) (xy 79.639507 89.176608)\r\n\t\t\t\t(xy 79.639509 89.17661) (xy 79.639511 89.176613) (xy 79.723387 89.260489) (xy 79.723389 89.26049)\r\n\t\t\t\t(xy 79.723391 89.260492) (xy 79.82611 89.319797) (xy 79.826111 89.319797) (xy 79.826114 89.319799)\r\n\t\t\t\t(xy 79.940691 89.3505) (xy 79.940693 89.3505) (xy 80.055231 89.3505) (xy 80.113422 89.369407) (xy 80.125235 89.379496)\r\n\t\t\t\t(xy 80.687636 89.941897) (xy 80.687635 89.941897) (xy 80.758103 90.012364) (xy 80.850171 90.0505)\r\n\t\t\t\t(xy 80.850172 90.0505) (xy 105.149829 90.0505) (xy 105.223947 90.019799) (xy 105.241897 90.012364)\r\n\t\t\t\t(xy 105.574763 89.679496) (xy 105.62928 89.651719) (xy 105.644767 89.6505) (xy 105.759307 89.6505)\r\n\t\t\t\t(xy 105.759309 89.6505) (xy 105.873886 89.619799) (xy 105.873888 89.619797) (xy 105.87389 89.619797)\r\n\t\t\t\t(xy 105.976608 89.560492) (xy 105.976608 89.560491) (xy 105.976613 89.560489) (xy 105.996411 89.540691)\r\n\t\t\t\t(xy 110.1495 89.540691) (xy 110.1495 89.659309) (xy 110.165382 89.71858) (xy 110.180202 89.77389)\r\n\t\t\t\t(xy 110.239507 89.876608) (xy 110.239509 89.87661) (xy 110.239511 89.876613) (xy 110.323387 89.960489)\r\n\t\t\t\t(xy 110.323389 89.96049) (xy 110.323391 89.960492) (xy 110.42611 90.019797) (xy 110.426111 90.019797)\r\n\t\t\t\t(xy 110.426114 90.019799) (xy 110.540691 90.0505) (xy 110.540693 90.0505) (xy 110.659307 90.0505)\r\n\t\t\t\t(xy 110.659309 90.0505) (xy 110.773886 90.019799) (xy 110.773888 90.019797) (xy 110.77389 90.019797)\r\n\t\t\t\t(xy 110.876608 89.960492) (xy 110.876608 89.960491) (xy 110.876613 89.960489) (xy 110.960489 89.876613)\r\n\t\t\t\t(xy 110.960492 89.876608) (xy 111.019797 89.77389) (xy 111.019797 89.773888) (xy 111.019799 89.773886)\r\n\t\t\t\t(xy 111.0505 89.659309) (xy 111.0505 89.540691) (xy 111.019799 89.426114) (xy 111.019797 89.426111)\r\n\t\t\t\t(xy 111.019797 89.426109) (xy 110.995313 89.383702) (xy 110.97048 89.340691) (xy 112.1495 89.340691)\r\n\t\t\t\t(xy 112.1495 89.459309) (xy 112.165897 89.520503) (xy 112.180202 89.57389) (xy 112.239507 89.676608)\r\n\t\t\t' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'\t(xy 112.239509 89.67661) (xy 112.239511 89.676613) (xy 112.323387 89.760489) (xy 112.323389 89.76049)\r\n\t\t\t\t(xy 112.323391 89.760492) (xy 112.42611 89.819797) (xy 112.426111 89.819797) (xy 112.426114 89.819799)\r\n\t\t\t\t(xy 112.540691 89.8505) (xy 112.540693 89.8505) (xy 112.659307 89.8505) (xy 112.659309 89.8505)\r\n\t\t\t\t(xy 112.773886 89.819799) (xy 112.773888 89.819797) (xy 112.77389 89.819797) (xy 112.876608 89.760492)\r\n\t\t\t\t(xy 112.876608 89.760491) (xy 112.876613 89.760489) (xy 112.960489 89.676613) (xy 112.960492 89.676608)\r\n\t\t\t\t(xy 113.019797 89.57389) (xy 113.019797 89.573888) (xy 113.019799 89.573886) (xy 113.0505 89.459309)\r\n\t\t\t\t(xy 113.0505 89.340691) (xy 113.7495 89.340691) (xy 113.7495 89.459309) (xy 113.765897 89.520503)\r\n\t\t\t\t(xy 113.780202 89.57389) (xy 113.839507 89.676608) (xy 113.839509 89.67661) (xy 113.839511 89.676613)\r\n\t\t\t\t(xy 113.923387 89.760489) (xy 113.923389 89.76049) (xy 113.923391 89.760492) (xy 114.02611 89.819797)\r\n\t\t\t\t(xy 114.026111 89.819797) (xy 114.026114 89.819799) (xy 114.140691 89.8505) (xy 114.140693 89.8505)\r\n\t\t\t\t(xy 114.259307 89.8505) (xy 114.259309 89.8505) (xy 114.373886 89.819799) (xy 114.373888 89.819797)\r\n\t\t\t\t(xy 114.37389 89.819797) (xy 114.476608 89.760492) (xy 114.476608 89.760491) (xy 114.476613 89.760489)\r\n\t\t\t\t(xy 114.560489 89.676613) (xy 114.560492 89.676608) (xy 114.619797 89.57389) (xy 114.619797 89.573888)\r\n\t\t\t\t(xy 114.619799 89.573886) (xy 114.6505 89.459309) (xy 114.6505 89.340691) (xy 115.3495 89.340691)\r\n\t\t\t\t(xy 115.3495 89.459309) (xy 115.365897 89.520503) (xy 115.380202 89.57389) (xy 115.439507 89.676608)\r\n\t\t\t\t(xy 115.439509 89.67661) (xy 115.439511 89.676613) (xy 115.523387 89.760489) (xy 115.523389 89.76049)\r\n\t\t\t\t(xy 115.523391 89.760492) (xy 115.62611 89.819797) (xy 115.626111 89.819797) (xy 115.626114 89.819799)\r\n\t\t\t\t(xy 115.740691 89.8505) (xy 115.740693 89.8505) (xy 115.859307 89.8505) (xy 115.859309 89.8505)\r\n\t\t\t\t(xy 115.973886 89.819799) (xy 115.973888 89.819797) (xy 115.97389 89.819797) (xy 116.076608 89.760492)\r\n\t\t\t\t(xy 116.076608 89.760491) (xy 116.076613 89.760489) (xy 116.160489 89.676613) (xy 116.160492 89.676608)\r\n\t\t\t\t(xy 116.219797 89.57389) (xy 116.219797 89.573888) (xy 116.219799 89.573886) (xy 116.2505 89.459309)\r\n\t\t\t\t(xy 116.2505 89.340691) (xy 116.9495 89.340691) (xy 116.9495 89.459309) (xy 116.965897 89.520503)\r\n\t\t\t\t(xy 116.980202 89.57389) (xy 117.039507 89.676608) (xy 117.039509 89.67661) (xy 117.039511 89.676613)\r\n\t\t\t\t(xy 117.123387 89.760489) (xy 117.123389 89.76049) (xy 117.123391 89.760492) (xy 117.22611 89.819797)\r\n\t\t\t\t(xy 117.226111 89.819797) (xy 117.226114 89.819799) (xy 117.340691 89.8505) (xy 117.340693 89.8505)\r\n\t\t\t\t(xy 117.459307 89.8505) (xy 117.459309 89.8505) (xy 117.573886 89.819799) (xy 117.573888 89.819797)\r\n\t\t\t\t(xy 117.57389 89.819797) (xy 117.676608 89.760492) (xy 117.676608 89.760491) (xy 117.676613 89.760489)\r\n\t\t\t\t(xy 117.760489 89.676613) (xy 117.760492 89.676608) (xy 117.819797 89.57389) (xy 117.819797 89.573888)\r\n\t\t\t\t(xy 117.819799 89.573886) (xy 117.8505 89.459309) (xy 117.8505 89.340691) (xy 118.5495 89.340691)\r\n\t\t\t\t(xy 118.5495 89.459309) (xy 118.565897 89.520503) (xy 118.580202 89.57389) (xy 118.639507 89.676608)\r\n\t\t\t\t(xy 118.639509 89.67661) (xy 118.639511 89.676613) (xy 118.723387 89.760489) (xy 118.723389 89.76049)\r\n\t\t\t\t(xy 118.723391 89.760492) (xy 118.82611 89.819797) (xy 118.826111 89.819797) (xy 118.826114 89.819799)\r\n\t\t\t\t(xy 118.940691 89.8505) (xy 118.940693 89.8505) (xy 119.059307 89.8505) (xy 119.059309 89.8505)\r\n\t\t\t\t(xy 119.173886 89.819799) (xy 119.173888 89.819797) (xy 119.17389 89.819797) (xy 119.276608 89.760492)\r\n\t\t\t\t(xy 119.276608 89.760491) (xy 119.276613 89.760489) (xy 119.360489 89.676613) (xy 119.360492 89.676608)\r\n\t\t\t\t(xy 119.419797 89.57389) (xy 119.419797 89.573888) (xy 119.419799 89.573886) (xy 119.4505 89.459309)\r\n\t\t\t\t(xy 119.4505 89.340691) (xy 120.1495 89.340691) (xy 120.1495 89.459309) (xy 120.165897 89.520503)\r\n\t\t\t\t(xy 120.180202 89.57389) (xy 120.239507 89.676608) (xy 120.239509 89.67661) (xy 120.239511 89.676613)\r\n\t\t\t\t(xy 120.323387 89.760489) (xy 120.323389 89.76049) (xy 120.323391 89.760492) (xy 120.42611 89.819797)\r\n\t\t\t\t(xy 120.426111 89.819797) (xy 120.426114 89.819799) (xy 120.540691 89.8505) (xy 120.540693 89.8505)\r\n\t\t\t\t(xy 120.659307 89.8505) (xy 120.659309 89.8505) (xy 120.773886 89.819799) (xy 120.773888 89.819797)\r\n\t\t\t\t(xy 120.77389 89.819797) (xy 120.876608 89.760492) (xy 120.876608 89.760491) (xy 120.876613 89.760489)\r\n\t\t\t\t(xy 120.960489 89.676613) (xy 120.960492 89.676608) (xy 121.019797 89.57389) (xy 121.019797 89.573888)\r\n\t\t\t\t(xy 121.019799 89.573886) (xy 121.0505 89.459309) (xy 121.0505 89.340691) (xy 121.7495 89.340691)\r\n\t\t\t\t(xy 121.7495 89.459309) (xy 121.765897 89.520503) (xy 121.780202 89.57389) (xy 121.839507 89.676608)\r\n\t\t\t\t(xy 121.839509 89.67661) (xy 121.839511 89.676613) (xy 121.923387 89.760489) (xy 121.923389 89.76049)\r\n\t\t\t\t(xy 121.923391 89.760492) (xy 122.02611 89.819797) (xy 122.026111 89.819797) (xy 122.026114 89.819799)\r\n\t\t\t\t(xy 122.140691 89.8505) (xy 122.140693 89.8505) (xy 122.259307 89.8505) (xy 122.259309 89.8505)\r\n\t\t\t\t(xy 122.373886 89.819799) (xy 122.373888 89.819797) (xy 122.37389 89.819797) (xy 122.476608 89.760492)\r\n\t\t\t\t(xy 122.476608 89.760491) (xy 122.476613 89.760489) (xy 122.560489 89.676613) (xy 122.560492 89.676608)\r\n\t\t\t\t(xy 122.619797 89.57389) (xy 122.619797 89.573888) (xy 122.619799 89.573886) (xy 122.6505 89.459309)\r\n\t\t\t\t(xy 122.6505 89.340691) (xy 129.7495 89.340691) (xy 129.7495 89.459309) (xy 129.765897 89.520503)\r\n\t\t\t\t(xy 129.780202 89.57389) (xy 129.839507 89.676608) (xy 129.839509 89.67661) (xy 129.839511 89.676613)\r\n\t\t\t\t(xy 129.923387 89.760489) (xy 129.923389 89.76049) (xy 129.923391 89.760492) (xy 130.02611 89.819797)\r\n\t\t\t\t(xy 130.026108 89.819797) (xy 130.026112 89.819798) (xy 130.026114 89.819799) (xy 130.138094 89.849804)\r\n\t\t\t\t(xy 130.189405 89.883126) (xy 130.211332 89.940247) (xy 130.198205 89.994928) (xy 130.180202 90.02611)\r\n\t\t\t\t(xy 130.180201 90.026114) (xy 130.1495 90.140691) (xy 130.1495 90.259309) (xy 130.154137 90.276613)\r\n\t\t\t\t(xy 130.180202 90.37389) (xy 130.239507 90.476608) (xy 130.239509 90.47661) (xy 130.239511 90.476613)\r\n\t\t\t\t(xy 130.323387 90.560489) (xy 130.323389 90.56049) (xy 130.323391 90.560492) (xy 130.42611 90.619797)\r\n\t\t\t\t(xy 130.426111 90.619797) (xy 130.426114 90.619799) (xy 130.540691 90.6505) (xy 130.540693 90.6505)\r\n\t\t\t\t(xy 130.659307 90.6505) (xy 130.659309 90.6505) (xy 130.773886 90.619799) (xy 130.773888 90.619797)\r\n\t\t\t\t(xy 130.77389 90.619797) (xy 130.876608 90.560492) (xy 130.876608 90.560491) (xy 130.876613 90.560489)\r\n\t\t\t\t(xy 130.960489 90.476613) (xy 130.974548 90.452262) (xy 131.019797 90.37389) (xy 131.019797 90.373888)\r\n\t\t\t\t(xy 131.019799 90.373886) (xy 131.0505 90.259309) (xy 131.0505 90.140691) (xy 131.3495 90.140691)\r\n\t\t\t\t(xy 131.3495 90.259309) (xy 131.354137 90.276613) (xy 131.380202 90.37389) (xy 131.439507 90.476608)\r\n\t\t\t\t(xy 131.439509 90.47661) (xy 131.439511 90.476613) (xy 131.523387 90.560489) (xy 131.523389 90.56049)\r\n\t\t\t\t(xy 131.523391 90.560492) (xy 131.62611 90.619797) (xy 131.626111 90.619797) (xy 131.626114 90.619799)\r\n\t\t\t\t(xy 131.740691 90.6505) (xy 131.740693 90.6505) (xy 131.859307 90.6505) (xy 131.859309 90.6505)\r\n\t\t\t\t(xy 131.973886 90.619799) (xy 131.973888 90.619797) (xy 131.97389 90.619797) (xy 132.076608 90.560492)\r\n\t\t\t\t(xy 132.076608 90.560491) (xy 132.076613 90.560489) (xy 132.160489 90.476613) (xy 132.174548 90.452262)\r\n\t\t\t\t(xy 132.219797 90.37389) (xy 132.219797 90.373888) (xy 132.219799 90.373886) (xy 132.221955 90.365837)\r\n\t\t\t\t(xy 132.255275 90.314524) (xy 132.312396 90.292594) (xy 132.371497 90.308427) (xy 132.409045 90.353571)\r\n\t\t\t\t(xy 132.41746 90.373886) (xy 132.479058 90.522597) (xy 132.584365 90.680201) (xy 132.594023 90.694655)\r\n\t\t\t\t(xy 132.740345 90.840977) (xy 132.912402 90.955941) (xy 133.10358 91.03513) (xy 133.306535 91.0755)\r\n\t\t\t\t(xy 133.306536 91.0755) (xy 133.513464 91.0755) (xy 133.513465 91.0755) (xy 133.71642 91.03513)\r\n\t\t\t\t(xy 133.907598 90.955941) (xy 134.079655 90.840977) (xy 134.225977 90.694655) (xy 134.340941 90.522598)\r\n\t\t\t\t(xy 134.42013 90.33142) (xy 134.433137 90.266027) (xy 134.463034 90.212644) (xy 134.518599 90.187028)\r\n\t\t\t\t(xy 134.578' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'608 90.198965) (xy 134.615971 90.235842) (xy 134.639507 90.276608) (xy 134.639509 90.27661)\r\n\t\t\t\t(xy 134.639511 90.276613) (xy 134.723387 90.360489) (xy 134.723389 90.36049) (xy 134.723391 90.360492)\r\n\t\t\t\t(xy 134.82611 90.419797) (xy 134.826111 90.419797) (xy 134.826114 90.419799) (xy 134.940691 90.4505)\r\n\t\t\t\t(xy 134.940693 90.4505) (xy 135.065798 90.4505) (xy 135.065798 90.452262) (xy 135.117697 90.46187)\r\n\t\t\t\t(xy 135.159824 90.506244) (xy 135.167823 90.566904) (xy 135.140484 90.618883) (xy 135.134023 90.625344)\r\n\t\t\t\t(xy 135.019058 90.797402) (xy 134.939869 90.988581) (xy 134.8995 91.191532) (xy 134.8995 91.398467)\r\n\t\t\t\t(xy 134.939869 91.601418) (xy 135.019058 91.792597) (xy 135.131239 91.960489) (xy 135.134023 91.964655)\r\n\t\t\t\t(xy 135.280345 92.110977) (xy 135.452402 92.225941) (xy 135.64358 92.30513) (xy 135.846535 92.3455)\r\n\t\t\t\t(xy 135.846536 92.3455) (xy 136.053464 92.3455) (xy 136.053465 92.3455) (xy 136.25642 92.30513)\r\n\t\t\t\t(xy 136.447598 92.225941) (xy 136.619655 92.110977) (xy 136.765977 91.964655) (xy 136.781989 91.940691)\r\n\t\t\t\t(xy 139.5495 91.940691) (xy 139.5495 92.059309) (xy 139.570989 92.139507) (xy 139.580202 92.17389)\r\n\t\t\t\t(xy 139.639507 92.276608) (xy 139.639509 92.27661) (xy 139.639511 92.276613) (xy 139.723387 92.360489)\r\n\t\t\t\t(xy 139.723389 92.36049) (xy 139.723391 92.360492) (xy 139.82611 92.419797) (xy 139.826111 92.419797)\r\n\t\t\t\t(xy 139.826114 92.419799) (xy 139.940691 92.4505) (xy 139.940693 92.4505) (xy 140.059307 92.4505)\r\n\t\t\t\t(xy 140.059309 92.4505) (xy 140.173886 92.419799) (xy 140.173888 92.419797) (xy 140.17389 92.419797)\r\n\t\t\t\t(xy 140.276608 92.360492) (xy 140.276608 92.360491) (xy 140.276613 92.360489) (xy 140.360489 92.276613)\r\n\t\t\t\t(xy 140.360492 92.276608) (xy 140.419797 92.17389) (xy 140.419797 92.173888) (xy 140.419799 92.173886)\r\n\t\t\t\t(xy 140.4505 92.059309) (xy 140.4505 91.940691) (xy 143.5495 91.940691) (xy 143.5495 92.059309)\r\n\t\t\t\t(xy 143.570989 92.139507) (xy 143.580202 92.17389) (xy 143.639507 92.276608) (xy 143.639509 92.27661)\r\n\t\t\t\t(xy 143.639511 92.276613) (xy 143.723387 92.360489) (xy 143.723389 92.36049) (xy 143.723391 92.360492)\r\n\t\t\t\t(xy 143.82611 92.419797) (xy 143.826111 92.419797) (xy 143.826114 92.419799) (xy 143.940691 92.4505)\r\n\t\t\t\t(xy 143.940693 92.4505) (xy 144.059307 92.4505) (xy 144.059309 92.4505) (xy 144.173886 92.419799)\r\n\t\t\t\t(xy 144.173888 92.419797) (xy 144.17389 92.419797) (xy 144.276608 92.360492) (xy 144.276608 92.360491)\r\n\t\t\t\t(xy 144.276613 92.360489) (xy 144.360489 92.276613) (xy 144.360492 92.276608) (xy 144.419797 92.17389)\r\n\t\t\t\t(xy 144.419797 92.173888) (xy 144.419799 92.173886) (xy 144.4505 92.059309) (xy 144.4505 91.940691)\r\n\t\t\t\t(xy 151.5495 91.940691) (xy 151.5495 92.059309) (xy 151.570989 92.139507) (xy 151.580202 92.17389)\r\n\t\t\t\t(xy 151.639507 92.276608) (xy 151.639509 92.27661) (xy 151.639511 92.276613) (xy 151.723387 92.360489)\r\n\t\t\t\t(xy 151.723389 92.36049) (xy 151.723391 92.360492) (xy 151.82611 92.419797) (xy 151.826111 92.419797)\r\n\t\t\t\t(xy 151.826114 92.419799) (xy 151.940691 92.4505) (xy 151.940693 92.4505) (xy 152.059307 92.4505)\r\n\t\t\t\t(xy 152.059309 92.4505) (xy 152.173886 92.419799) (xy 152.173888 92.419797) (xy 152.17389 92.419797)\r\n\t\t\t\t(xy 152.276608 92.360492) (xy 152.276608 92.360491) (xy 152.276613 92.360489) (xy 152.360489 92.276613)\r\n\t\t\t\t(xy 152.360492 92.276608) (xy 152.419797 92.17389) (xy 152.419797 92.173888) (xy 152.419799 92.173886)\r\n\t\t\t\t(xy 152.4505 92.059309) (xy 152.4505 91.940691) (xy 152.419799 91.826114) (xy 152.419797 91.826111)\r\n\t\t\t\t(xy 152.419797 91.826109) (xy 152.360492 91.723391) (xy 152.36049 91.723389) (xy 152.360489 91.723387)\r\n\t\t\t\t(xy 152.276613 91.639511) (xy 152.27661 91.639509) (xy 152.276608 91.639507) (xy 152.173889 91.580202)\r\n\t\t\t\t(xy 152.17389 91.580202) (xy 152.133602 91.569407) (xy 152.059309 91.5495) (xy 151.940691 91.5495)\r\n\t\t\t\t(xy 151.878239 91.566234) (xy 151.826109 91.580202) (xy 151.723391 91.639507) (xy 151.639507 91.723391)\r\n\t\t\t\t(xy 151.580202 91.826109) (xy 151.576612 91.839507) (xy 151.5495 91.940691) (xy 144.4505 91.940691)\r\n\t\t\t\t(xy 144.419799 91.826114) (xy 144.419797 91.826111) (xy 144.419797 91.826109) (xy 144.360492 91.723391)\r\n\t\t\t\t(xy 144.36049 91.723389) (xy 144.360489 91.723387) (xy 144.276613 91.639511) (xy 144.27661 91.639509)\r\n\t\t\t\t(xy 144.276608 91.639507) (xy 144.173889 91.580202) (xy 144.17389 91.580202) (xy 144.133602 91.569407)\r\n\t\t\t\t(xy 144.059309 91.5495) (xy 143.940691 91.5495) (xy 143.878239 91.566234) (xy 143.826109 91.580202)\r\n\t\t\t\t(xy 143.723391 91.639507) (xy 143.639507 91.723391) (xy 143.580202 91.826109) (xy 143.576612 91.839507)\r\n\t\t\t\t(xy 143.5495 91.940691) (xy 140.4505 91.940691) (xy 140.419799 91.826114) (xy 140.419797 91.826111)\r\n\t\t\t\t(xy 140.419797 91.826109) (xy 140.360492 91.723391) (xy 140.36049 91.723389) (xy 140.360489 91.723387)\r\n\t\t\t\t(xy 140.276613 91.639511) (xy 140.27661 91.639509) (xy 140.276608 91.639507) (xy 140.173889 91.580202)\r\n\t\t\t\t(xy 140.17389 91.580202) (xy 140.133602 91.569407) (xy 140.059309 91.5495) (xy 139.940691 91.5495)\r\n\t\t\t\t(xy 139.878239 91.566234) (xy 139.826109 91.580202) (xy 139.723391 91.639507) (xy 139.639507 91.723391)\r\n\t\t\t\t(xy 139.580202 91.826109) (xy 139.576612 91.839507) (xy 139.5495 91.940691) (xy 136.781989 91.940691)\r\n\t\t\t\t(xy 136.880941 91.792598) (xy 136.96013 91.60142) (xy 137.0005 91.398465) (xy 137.0005 91.191535)\r\n\t\t\t\t(xy 136.96013 90.98858) (xy 136.880941 90.797402) (xy 136.765977 90.625345) (xy 136.619655 90.479023)\r\n\t\t\t\t(xy 136.619651 90.47902) (xy 136.447597 90.364058) (xy 136.256418 90.284869) (xy 136.053467 90.2445)\r\n\t\t\t\t(xy 136.053465 90.2445) (xy 135.846535 90.2445) (xy 135.846532 90.2445) (xy 135.64358 90.28487)\r\n\t\t\t\t(xy 135.643578 90.28487) (xy 135.534688 90.329974) (xy 135.473691 90.334775) (xy 135.421523 90.302805)\r\n\t\t\t\t(xy 135.398108 90.246277) (xy 135.411067 90.189009) (xy 135.419799 90.173886) (xy 135.4505 90.059309)\r\n\t\t\t\t(xy 135.4505 89.940691) (xy 135.425438 89.847159) (xy 135.42864 89.786061) (xy 135.467145 89.738511)\r\n\t\t\t\t(xy 135.526246 89.722675) (xy 135.558949 89.730074) (xy 135.64358 89.76513) (xy 135.846535 89.8055)\r\n\t\t\t\t(xy 135.846536 89.8055) (xy 136.053464 89.8055) (xy 136.053465 89.8055) (xy 136.25642 89.76513)\r\n\t\t\t\t(xy 136.447598 89.685941) (xy 136.619655 89.570977) (xy 136.765977 89.424655) (xy 136.880941 89.252598)\r\n\t\t\t\t(xy 136.96013 89.06142) (xy 136.984144 88.940691) (xy 137.3495 88.940691) (xy 137.3495 89.059309)\r\n\t\t\t\t(xy 137.36667 89.123387) (xy 137.380202 89.17389) (xy 137.439507 89.276608) (xy 137.439509 89.27661)\r\n\t\t\t\t(xy 137.439511 89.276613) (xy 137.523387 89.360489) (xy 137.523389 89.36049) (xy 137.523391 89.360492)\r\n\t\t\t\t(xy 137.62611 89.419797) (xy 137.626111 89.419797) (xy 137.626114 89.419799) (xy 137.740691 89.4505)\r\n\t\t\t\t(xy 137.740693 89.4505) (xy 137.859307 89.4505) (xy 137.859309 89.4505) (xy 137.973886 89.419799)\r\n\t\t\t\t(xy 137.973888 89.419797) (xy 137.97389 89.419797) (xy 138.076608 89.360492) (xy 138.076608 89.360491)\r\n\t\t\t\t(xy 138.076613 89.360489) (xy 138.160489 89.276613) (xy 138.18191 89.239511) (xy 138.219797 89.17389)\r\n\t\t\t\t(xy 138.219797 89.173888) (xy 138.219799 89.173886) (xy 138.2505 89.059309) (xy 138.2505 88.940691)\r\n\t\t\t\t(xy 138.219799 88.826114) (xy 138.219797 88.826111) (xy 138.219797 88.826109) (xy 138.160492 88.723391)\r\n\t\t\t\t(xy 138.16049 88.723389) (xy 138.160489 88.723387) (xy 138.076613 88.639511) (xy 138.07661 88.639509)\r\n\t\t\t\t(xy 138.076608 88.639507) (xy 137.973889 88.580202) (xy 137.97389 88.580202) (xy 137.960351 88.576574)\r\n\t\t\t\t(xy 137.859309 88.5495) (xy 137.740691 88.5495) (xy 137.670567 88.568289) (xy 137.626109 88.580202)\r\n\t\t\t\t(xy 137.523391 88.639507) (xy 137.439507 88.723391) (xy 137.380202 88.826109) (xy 137.371532 88.858467)\r\n\t\t\t\t(xy 137.3495 88.940691) (xy 136.984144 88.940691) (xy 136.989277 88.914888) (xy 136.992616 88.898101)\r\n\t\t\t\t(xy 137.0005 88.858465) (xy 137.0005 88.651535) (xy 136.96013 88.44858) (xy 136.880941 88.257402)\r\n\t\t\t\t(xy 136.765977 88.085345) (xy 136.619655 87.939023) (xy 136.591046 87.919907) (xy 136.447597 87.824058)\r\n\t\t\t\t(xy 136.256418 87.744869) (xy 136.053467 87.7045) (xy 136.053465 87.7045) (xy 135.846535 87.7045)\r\n\t\t\t\t(xy 135.846532 87.7045) (xy 135.643581 87.744869) (xy 135.452402 87.824058) (xy 135.280348 87.93902)\r\n\t\t\t\t(xy 135.13402 88.085' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'348) (xy 135.019058 88.257402) (xy 134.939869 88.448581) (xy 134.8995 88.651532)\r\n\t\t\t\t(xy 134.8995 88.858467) (xy 134.939869 89.061418) (xy 135.019058 89.252597) (xy 135.027197 89.264778)\r\n\t\t\t\t(xy 135.106659 89.383702) (xy 135.114542 89.395499) (xy 135.13115 89.454387) (xy 135.109972 89.51179)\r\n\t\t\t\t(xy 135.059098 89.545783) (xy 135.032226 89.5495) (xy 134.940691 89.5495) (xy 134.899669 89.560492)\r\n\t\t\t\t(xy 134.826109 89.580202) (xy 134.723391 89.639507) (xy 134.639507 89.723391) (xy 134.608572 89.776971)\r\n\t\t\t\t(xy 134.563102 89.817911) (xy 134.502252 89.824305) (xy 134.449264 89.793711) (xy 134.425739 89.746781)\r\n\t\t\t\t(xy 134.422416 89.730075) (xy 134.42013 89.71858) (xy 134.340941 89.527402) (xy 134.225977 89.355345)\r\n\t\t\t\t(xy 134.079655 89.209023) (xy 134.052221 89.190692) (xy 133.907597 89.094058) (xy 133.716418 89.014869)\r\n\t\t\t\t(xy 133.513467 88.9745) (xy 133.513465 88.9745) (xy 133.306535 88.9745) (xy 133.306532 88.9745)\r\n\t\t\t\t(xy 133.103581 89.014869) (xy 132.912402 89.094058) (xy 132.740348 89.20902) (xy 132.59402 89.355348)\r\n\t\t\t\t(xy 132.479058 89.527402) (xy 132.399869 89.718581) (xy 132.359546 89.921299) (xy 132.329649 89.974683)\r\n\t\t\t\t(xy 132.274084 90.000299) (xy 132.214074 89.988362) (xy 132.176712 89.951486) (xy 132.160489 89.923387)\r\n\t\t\t\t(xy 132.076613 89.839511) (xy 132.07661 89.839509) (xy 132.076608 89.839507) (xy 131.973889 89.780202)\r\n\t\t\t\t(xy 131.97389 89.780202) (xy 131.950318 89.773886) (xy 131.859309 89.7495) (xy 131.740691 89.7495)\r\n\t\t\t\t(xy 131.670567 89.768289) (xy 131.626109 89.780202) (xy 131.523391 89.839507) (xy 131.439507 89.923391)\r\n\t\t\t\t(xy 131.380202 90.026109) (xy 131.380201 90.026114) (xy 131.3495 90.140691) (xy 131.0505 90.140691)\r\n\t\t\t\t(xy 131.019799 90.026114) (xy 131.019797 90.02611) (xy 131.019797 90.026109) (xy 130.960492 89.923391)\r\n\t\t\t\t(xy 130.96049 89.923389) (xy 130.960489 89.923387) (xy 130.876613 89.839511) (xy 130.87661 89.839509)\r\n\t\t\t\t(xy 130.876608 89.839507) (xy 130.773889 89.780202) (xy 130.773891 89.780202) (xy 130.733225 89.769305)\r\n\t\t\t\t(xy 130.661906 89.750195) (xy 130.610594 89.716873) (xy 130.588667 89.659751) (xy 130.601795 89.605069)\r\n\t\t\t\t(xy 130.616152 89.580202) (xy 130.619799 89.573886) (xy 130.6505 89.459309) (xy 130.6505 89.340691)\r\n\t\t\t\t(xy 130.619799 89.226114) (xy 130.619797 89.226111) (xy 130.619797 89.226109) (xy 130.560492 89.123391)\r\n\t\t\t\t(xy 130.56049 89.123389) (xy 130.560489 89.123387) (xy 130.476613 89.039511) (xy 130.47661 89.039509)\r\n\t\t\t\t(xy 130.476608 89.039507) (xy 130.373889 88.980202) (xy 130.37389 88.980202) (xy 130.338495 88.970718)\r\n\t\t\t\t(xy 130.259309 88.9495) (xy 130.140691 88.9495) (xy 130.099669 88.960492) (xy 130.026109 88.980202)\r\n\t\t\t\t(xy 129.923391 89.039507) (xy 129.839507 89.123391) (xy 129.780202 89.226109) (xy 129.772399 89.255231)\r\n\t\t\t\t(xy 129.7495 89.340691) (xy 122.6505 89.340691) (xy 122.619799 89.226114) (xy 122.619797 89.226111)\r\n\t\t\t\t(xy 122.619797 89.226109) (xy 122.560492 89.123391) (xy 122.56049 89.123389) (xy 122.560489 89.123387)\r\n\t\t\t\t(xy 122.476613 89.039511) (xy 122.47661 89.039509) (xy 122.476608 89.039507) (xy 122.373889 88.980202)\r\n\t\t\t\t(xy 122.37389 88.980202) (xy 122.338495 88.970718) (xy 122.259309 88.9495) (xy 122.140691 88.9495)\r\n\t\t\t\t(xy 122.099669 88.960492) (xy 122.026109 88.980202) (xy 121.923391 89.039507) (xy 121.839507 89.123391)\r\n\t\t\t\t(xy 121.780202 89.226109) (xy 121.772399 89.255231) (xy 121.7495 89.340691) (xy 121.0505 89.340691)\r\n\t\t\t\t(xy 121.019799 89.226114) (xy 121.019797 89.226111) (xy 121.019797 89.226109) (xy 120.960492 89.123391)\r\n\t\t\t\t(xy 120.96049 89.123389) (xy 120.960489 89.123387) (xy 120.876613 89.039511) (xy 120.87661 89.039509)\r\n\t\t\t\t(xy 120.876608 89.039507) (xy 120.773889 88.980202) (xy 120.77389 88.980202) (xy 120.738495 88.970718)\r\n\t\t\t\t(xy 120.659309 88.9495) (xy 120.540691 88.9495) (xy 120.499669 88.960492) (xy 120.426109 88.980202)\r\n\t\t\t\t(xy 120.323391 89.039507) (xy 120.239507 89.123391) (xy 120.180202 89.226109) (xy 120.172399 89.255231)\r\n\t\t\t\t(xy 120.1495 89.340691) (xy 119.4505 89.340691) (xy 119.419799 89.226114) (xy 119.419797 89.226111)\r\n\t\t\t\t(xy 119.419797 89.226109) (xy 119.360492 89.123391) (xy 119.36049 89.123389) (xy 119.360489 89.123387)\r\n\t\t\t\t(xy 119.276613 89.039511) (xy 119.27661 89.039509) (xy 119.276608 89.039507) (xy 119.173889 88.980202)\r\n\t\t\t\t(xy 119.17389 88.980202) (xy 119.138495 88.970718) (xy 119.059309 88.9495) (xy 118.940691 88.9495)\r\n\t\t\t\t(xy 118.899669 88.960492) (xy 118.826109 88.980202) (xy 118.723391 89.039507) (xy 118.639507 89.123391)\r\n\t\t\t\t(xy 118.580202 89.226109) (xy 118.572399 89.255231) (xy 118.5495 89.340691) (xy 117.8505 89.340691)\r\n\t\t\t\t(xy 117.819799 89.226114) (xy 117.819797 89.226111) (xy 117.819797 89.226109) (xy 117.760492 89.123391)\r\n\t\t\t\t(xy 117.76049 89.123389) (xy 117.760489 89.123387) (xy 117.676613 89.039511) (xy 117.67661 89.039509)\r\n\t\t\t\t(xy 117.676608 89.039507) (xy 117.573889 88.980202) (xy 117.57389 88.980202) (xy 117.538495 88.970718)\r\n\t\t\t\t(xy 117.459309 88.9495) (xy 117.340691 88.9495) (xy 117.299669 88.960492) (xy 117.226109 88.980202)\r\n\t\t\t\t(xy 117.123391 89.039507) (xy 117.039507 89.123391) (xy 116.980202 89.226109) (xy 116.972399 89.255231)\r\n\t\t\t\t(xy 116.9495 89.340691) (xy 116.2505 89.340691) (xy 116.219799 89.226114) (xy 116.219797 89.226111)\r\n\t\t\t\t(xy 116.219797 89.226109) (xy 116.160492 89.123391) (xy 116.16049 89.123389) (xy 116.160489 89.123387)\r\n\t\t\t\t(xy 116.076613 89.039511) (xy 116.07661 89.039509) (xy 116.076608 89.039507) (xy 115.973889 88.980202)\r\n\t\t\t\t(xy 115.97389 88.980202) (xy 115.938495 88.970718) (xy 115.859309 88.9495) (xy 115.740691 88.9495)\r\n\t\t\t\t(xy 115.699669 88.960492) (xy 115.626109 88.980202) (xy 115.523391 89.039507) (xy 115.439507 89.123391)\r\n\t\t\t\t(xy 115.380202 89.226109) (xy 115.372399 89.255231) (xy 115.3495 89.340691) (xy 114.6505 89.340691)\r\n\t\t\t\t(xy 114.619799 89.226114) (xy 114.619797 89.226111) (xy 114.619797 89.226109) (xy 114.560492 89.123391)\r\n\t\t\t\t(xy 114.56049 89.123389) (xy 114.560489 89.123387) (xy 114.476613 89.039511) (xy 114.47661 89.039509)\r\n\t\t\t\t(xy 114.476608 89.039507) (xy 114.373889 88.980202) (xy 114.37389 88.980202) (xy 114.338495 88.970718)\r\n\t\t\t\t(xy 114.259309 88.9495) (xy 114.140691 88.9495) (xy 114.099669 88.960492) (xy 114.026109 88.980202)\r\n\t\t\t\t(xy 113.923391 89.039507) (xy 113.839507 89.123391) (xy 113.780202 89.226109) (xy 113.772399 89.255231)\r\n\t\t\t\t(xy 113.7495 89.340691) (xy 113.0505 89.340691) (xy 113.019799 89.226114) (xy 113.019797 89.226111)\r\n\t\t\t\t(xy 113.019797 89.226109) (xy 112.960492 89.123391) (xy 112.96049 89.123389) (xy 112.960489 89.123387)\r\n\t\t\t\t(xy 112.876613 89.039511) (xy 112.87661 89.039509) (xy 112.876608 89.039507) (xy 112.773889 88.980202)\r\n\t\t\t\t(xy 112.77389 88.980202) (xy 112.738495 88.970718) (xy 112.659309 88.9495) (xy 112.540691 88.9495)\r\n\t\t\t\t(xy 112.499669 88.960492) (xy 112.426109 88.980202) (xy 112.323391 89.039507) (xy 112.239507 89.123391)\r\n\t\t\t\t(xy 112.180202 89.226109) (xy 112.172399 89.255231) (xy 112.1495 89.340691) (xy 110.97048 89.340691)\r\n\t\t\t\t(xy 110.960492 89.323391) (xy 110.96049 89.323389) (xy 110.960489 89.323387) (xy 110.876613 89.239511)\r\n\t\t\t\t(xy 110.87661 89.239509) (xy 110.876608 89.239507) (xy 110.773889 89.180202) (xy 110.77389 89.180202)\r\n\t\t\t\t(xy 110.750318 89.173886) (xy 110.659309 89.1495) (xy 110.540691 89.1495) (xy 110.470567 89.168289)\r\n\t\t\t\t(xy 110.426109 89.180202) (xy 110.323391 89.239507) (xy 110.239507 89.323391) (xy 110.180202 89.426109)\r\n\t\t\t\t(xy 110.180201 89.426114) (xy 110.1495 89.540691) (xy 105.996411 89.540691) (xy 106.060489 89.476613)\r\n\t\t\t\t(xy 106.073321 89.454387) (xy 106.119797 89.37389) (xy 106.119797 89.373888) (xy 106.119799 89.373886)\r\n\t\t\t\t(xy 106.1505 89.259309) (xy 106.1505 89.140691) (xy 106.119799 89.026114) (xy 106.119797 89.026111)\r\n\t\t\t\t(xy 106.119797 89.026109) (xy 106.060492 88.923391) (xy 106.06049 88.923389) (xy 106.060489 88.923387)\r\n\t\t\t\t(xy 105.976613 88.839511) (xy 105.97661 88.839509) (xy 105.976608 88.839507) (xy 105.873889 88.780202)\r\n\t\t\t\t(xy 105.87389 88.780202) (xy 105.850318 88.773886) (xy 105.759309 88.7495) (xy 105.640691 88.7495)\r\n\t\t\t\t(xy 105.570567 88.768289) (xy 105.526109 88.780202) (xy 105.423391 88.839507) (xy 105.339507 88.923391)\r\n\t\t\t\t(xy 105.280202 89.026109) (xy 105.2495 89.140692) (xy 105.2495 89.255231) (x' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'y 105.230593 89.313422)\r\n\t\t\t\t(xy 105.220504 89.325234) (xy 105.025236 89.520503) (xy 104.970719 89.548281) (xy 104.955232 89.5495)\r\n\t\t\t\t(xy 104.189881 89.5495) (xy 104.13169 89.530593) (xy 104.095726 89.481093) (xy 104.095726 89.419907)\r\n\t\t\t\t(xy 104.104145 89.400999) (xy 104.119799 89.373886) (xy 104.1505 89.259309) (xy 104.1505 89.140691)\r\n\t\t\t\t(xy 104.119799 89.026114) (xy 104.119797 89.026111) (xy 104.119797 89.026109) (xy 104.060492 88.923391)\r\n\t\t\t\t(xy 104.06049 88.923389) (xy 104.060489 88.923387) (xy 103.976613 88.839511) (xy 103.97661 88.839509)\r\n\t\t\t\t(xy 103.976608 88.839507) (xy 103.873889 88.780202) (xy 103.87389 88.780202) (xy 103.850318 88.773886)\r\n\t\t\t\t(xy 103.759309 88.7495) (xy 103.640691 88.7495) (xy 103.570567 88.768289) (xy 103.526109 88.780202)\r\n\t\t\t\t(xy 103.423391 88.839507) (xy 103.339507 88.923391) (xy 103.280202 89.026109) (xy 103.280201 89.026114)\r\n\t\t\t\t(xy 103.2495 89.140691) (xy 103.2495 89.259309) (xy 103.279001 89.369407) (xy 103.280202 89.373888)\r\n\t\t\t\t(xy 103.295855 89.400999) (xy 103.308577 89.460847) (xy 103.283691 89.516743) (xy 103.230704 89.547336)\r\n\t\t\t\t(xy 103.210119 89.5495) (xy 100.71516 89.5495) (xy 100.656969 89.530593) (xy 100.621005 89.481093)\r\n\t\t\t\t(xy 100.619533 89.424877) (xy 100.620894 89.419799) (xy 100.6505 89.309309) (xy 100.6505 89.190691)\r\n\t\t\t\t(xy 100.619799 89.076114) (xy 100.619797 89.076111) (xy 100.619797 89.076109) (xy 100.560492 88.973391)\r\n\t\t\t\t(xy 100.56049 88.973389) (xy 100.560489 88.973387) (xy 100.476613 88.889511) (xy 100.47661 88.889509)\r\n\t\t\t\t(xy 100.476608 88.889507) (xy 100.373889 88.830202) (xy 100.37389 88.830202) (xy 100.358615 88.826109)\r\n\t\t\t\t(xy 100.259309 88.7995) (xy 100.140691 88.7995) (xy 100.070567 88.818289) (xy 100.026109 88.830202)\r\n\t\t\t\t(xy 99.923391 88.889507) (xy 99.839507 88.973391) (xy 99.780202 89.076109) (xy 99.767534 89.123387)\r\n\t\t\t\t(xy 99.7495 89.190691) (xy 99.7495 89.309309) (xy 99.779106 89.419799) (xy 99.780467 89.424877)\r\n\t\t\t\t(xy 99.777265 89.485978) (xy 99.738759 89.533528) (xy 99.68484 89.5495) (xy 95.01516 89.5495) (xy 94.956969 89.530593)\r\n\t\t\t\t(xy 94.921005 89.481093) (xy 94.919533 89.424877) (xy 94.920894 89.419799) (xy 94.9505 89.309309)\r\n\t\t\t\t(xy 94.9505 89.190691) (xy 94.919799 89.076114) (xy 94.919797 89.076111) (xy 94.919797 89.076109)\r\n\t\t\t\t(xy 94.860492 88.973391) (xy 94.86049 88.973389) (xy 94.860489 88.973387) (xy 94.776613 88.889511)\r\n\t\t\t\t(xy 94.77661 88.889509) (xy 94.776608 88.889507) (xy 94.673889 88.830202) (xy 94.67389 88.830202)\r\n\t\t\t\t(xy 94.658615 88.826109) (xy 94.559309 88.7995) (xy 94.440691 88.7995) (xy 94.370567 88.818289)\r\n\t\t\t\t(xy 94.326109 88.830202) (xy 94.223391 88.889507) (xy 94.139507 88.973391) (xy 94.080202 89.076109)\r\n\t\t\t\t(xy 94.067534 89.123387) (xy 94.0495 89.190691) (xy 94.0495 89.309309) (xy 94.079106 89.419799)\r\n\t\t\t\t(xy 94.080467 89.424877) (xy 94.077265 89.485978) (xy 94.038759 89.533528) (xy 93.98484 89.5495)\r\n\t\t\t\t(xy 81.044769 89.5495) (xy 80.986578 89.530593) (xy 80.974765 89.520504) (xy 80.479496 89.025235)\r\n\t\t\t\t(xy 80.451719 88.970718) (xy 80.4505 88.955231) (xy 80.4505 88.840692) (xy 80.450184 88.839511)\r\n\t\t\t\t(xy 80.419799 88.726114) (xy 80.419797 88.726111) (xy 80.419797 88.726109) (xy 80.360492 88.623391)\r\n\t\t\t\t(xy 80.36049 88.623389) (xy 80.360489 88.623387) (xy 80.276613 88.539511) (xy 80.27661 88.539509)\r\n\t\t\t\t(xy 80.276608 88.539507) (xy 80.173889 88.480202) (xy 80.17389 88.480202) (xy 80.160351 88.476574)\r\n\t\t\t\t(xy 80.059309 88.4495) (xy 79.940691 88.4495) (xy 79.870567 88.468289) (xy 79.826109 88.480202)\r\n\t\t\t\t(xy 79.723391 88.539507) (xy 79.639507 88.623391) (xy 79.580202 88.726109) (xy 79.5674 88.773886)\r\n\t\t\t\t(xy 79.5495 88.840691) (xy 74.0005 88.840691) (xy 74.0005 87.940691) (xy 75.5495 87.940691) (xy 75.5495 88.059309)\r\n\t\t\t\t(xy 75.557497 88.089153) (xy 75.580202 88.17389) (xy 75.639507 88.276608) (xy 75.639509 88.27661)\r\n\t\t\t\t(xy 75.639511 88.276613) (xy 75.723387 88.360489) (xy 75.723389 88.36049) (xy 75.723391 88.360492)\r\n\t\t\t\t(xy 75.82611 88.419797) (xy 75.826111 88.419797) (xy 75.826114 88.419799) (xy 75.940691 88.4505)\r\n\t\t\t\t(xy 75.940693 88.4505) (xy 76.059307 88.4505) (xy 76.059309 88.4505) (xy 76.173886 88.419799) (xy 76.173888 88.419797)\r\n\t\t\t\t(xy 76.17389 88.419797) (xy 76.276608 88.360492) (xy 76.276608 88.360491) (xy 76.276613 88.360489)\r\n\t\t\t\t(xy 76.360489 88.276613) (xy 76.371581 88.257402) (xy 76.419797 88.17389) (xy 76.419797 88.173888)\r\n\t\t\t\t(xy 76.419799 88.173886) (xy 76.4505 88.059309) (xy 76.4505 87.940691) (xy 83.5495 87.940691) (xy 83.5495 88.059309)\r\n\t\t\t\t(xy 83.557497 88.089153) (xy 83.580202 88.17389) (xy 83.639507 88.276608) (xy 83.639509 88.27661)\r\n\t\t\t\t(xy 83.639511 88.276613) (xy 83.723387 88.360489) (xy 83.723389 88.36049) (xy 83.723391 88.360492)\r\n\t\t\t\t(xy 83.82611 88.419797) (xy 83.826111 88.419797) (xy 83.826114 88.419799) (xy 83.940691 88.4505)\r\n\t\t\t\t(xy 83.940693 88.4505) (xy 84.059307 88.4505) (xy 84.059309 88.4505) (xy 84.173886 88.419799) (xy 84.173888 88.419797)\r\n\t\t\t\t(xy 84.17389 88.419797) (xy 84.276608 88.360492) (xy 84.276608 88.360491) (xy 84.276613 88.360489)\r\n\t\t\t\t(xy 84.360489 88.276613) (xy 84.371581 88.257402) (xy 84.419797 88.17389) (xy 84.419797 88.173888)\r\n\t\t\t\t(xy 84.419799 88.173886) (xy 84.4505 88.059309) (xy 84.4505 87.940691) (xy 84.419799 87.826114)\r\n\t\t\t\t(xy 84.419797 87.826111) (xy 84.419797 87.826109) (xy 84.395313 87.783702) (xy 84.37048 87.740691)\r\n\t\t\t\t(xy 90.9495 87.740691) (xy 90.9495 87.859309) (xy 90.971306 87.940691) (xy 90.980202 87.97389) (xy 91.039507 88.076608)\r\n\t\t\t\t(xy 91.039509 88.07661) (xy 91.039511 88.076613) (xy 91.123387 88.160489) (xy 91.123389 88.16049)\r\n\t\t\t\t(xy 91.123391 88.160492) (xy 91.22611 88.219797) (xy 91.226111 88.219797) (xy 91.226114 88.219799)\r\n\t\t\t\t(xy 91.340691 88.2505) (xy 91.340693 88.2505) (xy 91.459306 88.2505) (xy 91.459309 88.2505) (xy 91.551433 88.225815)\r\n\t\t\t\t(xy 91.612532 88.229017) (xy 91.660082 88.267522) (xy 91.672679 88.295815) (xy 91.678164 88.316284)\r\n\t\t\t\t(xy 91.680202 88.32389) (xy 91.739507 88.426608) (xy 91.739509 88.42661) (xy 91.739511 88.426613)\r\n\t\t\t\t(xy 91.823387 88.510489) (xy 91.823389 88.51049) (xy 91.823391 88.510492) (xy 91.92611 88.569797)\r\n\t\t\t\t(xy 91.926111 88.569797) (xy 91.926114 88.569799) (xy 92.040691 88.6005) (xy 92.040693 88.6005)\r\n\t\t\t\t(xy 92.157777 88.6005) (xy 92.215968 88.619407) (xy 92.251932 88.668907) (xy 92.253398 88.673859)\r\n\t\t\t\t(xy 92.273667 88.7495) (xy 92.280202 88.77389) (xy 92.339507 88.876608) (xy 92.339509 88.87661)\r\n\t\t\t\t(xy 92.339511 88.876613) (xy 92.423387 88.960489) (xy 92.423389 88.96049) (xy 92.423391 88.960492)\r\n\t\t\t\t(xy 92.52611 89.019797) (xy 92.526111 89.019797) (xy 92.526114 89.019799) (xy 92.640691 89.0505)\r\n\t\t\t\t(xy 92.640693 89.0505) (xy 92.759307 89.0505) (xy 92.759309 89.0505) (xy 92.873886 89.019799) (xy 92.873888 89.019797)\r\n\t\t\t\t(xy 92.87389 89.019797) (xy 92.976608 88.960492) (xy 92.976608 88.960491) (xy 92.976613 88.960489)\r\n\t\t\t\t(xy 93.060489 88.876613) (xy 93.08191 88.839511) (xy 93.119797 88.77389) (xy 93.119797 88.773888)\r\n\t\t\t\t(xy 93.119799 88.773886) (xy 93.1505 88.659309) (xy 93.1505 88.6495) (xy 93.169407 88.591309) (xy 93.218907 88.555345)\r\n\t\t\t\t(xy 93.2495 88.5505) (xy 107.773391 88.5505) (xy 107.831582 88.569407) (xy 107.867546 88.618907)\r\n\t\t\t\t(xy 107.867546 88.680093) (xy 107.843396 88.719501) (xy 107.839511 88.723387) (xy 107.839508 88.72339)\r\n\t\t\t\t(xy 107.839507 88.723391) (xy 107.780202 88.826109) (xy 107.771532 88.858467) (xy 107.7495 88.940691)\r\n\t\t\t\t(xy 107.7495 89.059309) (xy 107.76667 89.123387) (xy 107.780202 89.17389) (xy 107.839507 89.276608)\r\n\t\t\t\t(xy 107.839509 89.27661) (xy 107.839511 89.276613) (xy 107.923387 89.360489) (xy 107.923389 89.36049)\r\n\t\t\t\t(xy 107.923391 89.360492) (xy 108.02611 89.419797) (xy 108.026111 89.419797) (xy 108.026114 89.419799)\r\n\t\t\t\t(xy 108.140691 89.4505) (xy 108.140693 89.4505) (xy 108.259307 89.4505) (xy 108.259309 89.4505)\r\n\t\t\t\t(xy 108.373886 89.419799) (xy 108.373888 89.419797) (xy 108.37389 89.419797) (xy 108.476608 89.360492)\r\n\t\t\t\t(xy 108.476608 89.360491) (xy 108.476613 89.360489) (xy 108.560489 89.276613) (xy 108.58191 89.239511)\r\n\t\t\t\t(xy 108.619797 89.17389) (xy 108.619797 89.173888) (xy 108.619799 89.173886) (xy 108.6505 89.059309)\r\n\t\t\t\t(xy 108.6505 88.940691) (xy 108.619799 88.826114) (xy 108.61979' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'7 88.826111) (xy 108.619797 88.826109)\r\n\t\t\t\t(xy 108.560492 88.723391) (xy 108.56049 88.723389) (xy 108.560489 88.723387) (xy 108.556603 88.719501)\r\n\t\t\t\t(xy 108.528828 88.664987) (xy 108.538399 88.604555) (xy 108.581664 88.56129) (xy 108.626609 88.5505)\r\n\t\t\t\t(xy 112.804005 88.5505) (xy 112.862061 88.526451) (xy 112.896073 88.512364) (xy 113.667744 87.740691)\r\n\t\t\t\t(xy 115.3495 87.740691) (xy 115.3495 87.859309) (xy 115.371306 87.940691) (xy 115.380202 87.97389)\r\n\t\t\t\t(xy 115.439507 88.076608) (xy 115.439509 88.07661) (xy 115.439511 88.076613) (xy 115.523387 88.160489)\r\n\t\t\t\t(xy 115.523389 88.16049) (xy 115.523391 88.160492) (xy 115.62611 88.219797) (xy 115.626111 88.219797)\r\n\t\t\t\t(xy 115.626114 88.219799) (xy 115.740691 88.2505) (xy 115.740693 88.2505) (xy 115.859307 88.2505)\r\n\t\t\t\t(xy 115.859309 88.2505) (xy 115.973886 88.219799) (xy 115.973888 88.219797) (xy 115.97389 88.219797)\r\n\t\t\t\t(xy 116.076608 88.160492) (xy 116.076608 88.160491) (xy 116.076613 88.160489) (xy 116.160489 88.076613)\r\n\t\t\t\t(xy 116.170481 88.059307) (xy 116.219797 87.97389) (xy 116.219797 87.973888) (xy 116.219799 87.973886)\r\n\t\t\t\t(xy 116.2505 87.859309) (xy 116.2505 87.740691) (xy 116.9495 87.740691) (xy 116.9495 87.859309)\r\n\t\t\t\t(xy 116.971306 87.940691) (xy 116.980202 87.97389) (xy 117.039507 88.076608) (xy 117.039509 88.07661)\r\n\t\t\t\t(xy 117.039511 88.076613) (xy 117.123387 88.160489) (xy 117.123389 88.16049) (xy 117.123391 88.160492)\r\n\t\t\t\t(xy 117.22611 88.219797) (xy 117.226111 88.219797) (xy 117.226114 88.219799) (xy 117.340691 88.2505)\r\n\t\t\t\t(xy 117.340693 88.2505) (xy 117.459307 88.2505) (xy 117.459309 88.2505) (xy 117.573886 88.219799)\r\n\t\t\t\t(xy 117.573888 88.219797) (xy 117.57389 88.219797) (xy 117.676608 88.160492) (xy 117.676608 88.160491)\r\n\t\t\t\t(xy 117.676613 88.160489) (xy 117.760489 88.076613) (xy 117.770481 88.059307) (xy 117.819797 87.97389)\r\n\t\t\t\t(xy 117.819797 87.973888) (xy 117.819799 87.973886) (xy 117.8505 87.859309) (xy 117.8505 87.740691)\r\n\t\t\t\t(xy 121.7495 87.740691) (xy 121.7495 87.859309) (xy 121.771306 87.940691) (xy 121.780202 87.97389)\r\n\t\t\t\t(xy 121.839507 88.076608) (xy 121.839509 88.07661) (xy 121.839511 88.076613) (xy 121.923387 88.160489)\r\n\t\t\t\t(xy 121.923389 88.16049) (xy 121.923391 88.160492) (xy 122.02611 88.219797) (xy 122.026111 88.219797)\r\n\t\t\t\t(xy 122.026114 88.219799) (xy 122.140691 88.2505) (xy 122.140693 88.2505) (xy 122.259307 88.2505)\r\n\t\t\t\t(xy 122.259309 88.2505) (xy 122.373886 88.219799) (xy 122.373888 88.219797) (xy 122.37389 88.219797)\r\n\t\t\t\t(xy 122.476608 88.160492) (xy 122.476608 88.160491) (xy 122.476613 88.160489) (xy 122.560489 88.076613)\r\n\t\t\t\t(xy 122.570481 88.059307) (xy 122.619797 87.97389) (xy 122.619797 87.973888) (xy 122.619799 87.973886)\r\n\t\t\t\t(xy 122.6505 87.859309) (xy 122.6505 87.740691) (xy 123.3495 87.740691) (xy 123.3495 87.859309)\r\n\t\t\t\t(xy 123.371306 87.940691) (xy 123.380202 87.97389) (xy 123.439507 88.076608) (xy 123.439509 88.07661)\r\n\t\t\t\t(xy 123.439511 88.076613) (xy 123.523387 88.160489) (xy 123.523389 88.16049) (xy 123.523391 88.160492)\r\n\t\t\t\t(xy 123.62611 88.219797) (xy 123.626111 88.219797) (xy 123.626114 88.219799) (xy 123.740691 88.2505)\r\n\t\t\t\t(xy 123.740693 88.2505) (xy 123.859307 88.2505) (xy 123.859309 88.2505) (xy 123.973886 88.219799)\r\n\t\t\t\t(xy 123.973888 88.219797) (xy 123.97389 88.219797) (xy 124.076608 88.160492) (xy 124.076608 88.160491)\r\n\t\t\t\t(xy 124.076613 88.160489) (xy 124.160489 88.076613) (xy 124.170481 88.059307) (xy 124.219797 87.97389)\r\n\t\t\t\t(xy 124.219797 87.973888) (xy 124.219799 87.973886) (xy 124.2505 87.859309) (xy 124.2505 87.740691)\r\n\t\t\t\t(xy 124.9495 87.740691) (xy 124.9495 87.859309) (xy 124.971306 87.940691) (xy 124.980202 87.97389)\r\n\t\t\t\t(xy 125.039507 88.076608) (xy 125.039509 88.07661) (xy 125.039511 88.076613) (xy 125.123387 88.160489)\r\n\t\t\t\t(xy 125.123389 88.16049) (xy 125.123391 88.160492) (xy 125.22611 88.219797) (xy 125.226111 88.219797)\r\n\t\t\t\t(xy 125.226114 88.219799) (xy 125.340691 88.2505) (xy 125.340693 88.2505) (xy 125.459307 88.2505)\r\n\t\t\t\t(xy 125.459309 88.2505) (xy 125.573886 88.219799) (xy 125.573888 88.219797) (xy 125.57389 88.219797)\r\n\t\t\t\t(xy 125.676608 88.160492) (xy 125.676608 88.160491) (xy 125.676613 88.160489) (xy 125.760489 88.076613)\r\n\t\t\t\t(xy 125.770481 88.059307) (xy 125.819797 87.97389) (xy 125.819797 87.973888) (xy 125.819799 87.973886)\r\n\t\t\t\t(xy 125.8505 87.859309) (xy 125.8505 87.740691) (xy 126.5495 87.740691) (xy 126.5495 87.859309)\r\n\t\t\t\t(xy 126.571306 87.940691) (xy 126.580202 87.97389) (xy 126.639507 88.076608) (xy 126.639509 88.07661)\r\n\t\t\t\t(xy 126.639511 88.076613) (xy 126.723387 88.160489) (xy 126.723389 88.16049) (xy 126.723391 88.160492)\r\n\t\t\t\t(xy 126.82611 88.219797) (xy 126.826111 88.219797) (xy 126.826114 88.219799) (xy 126.940691 88.2505)\r\n\t\t\t\t(xy 126.940693 88.2505) (xy 127.059307 88.2505) (xy 127.059309 88.2505) (xy 127.173886 88.219799)\r\n\t\t\t\t(xy 127.173888 88.219797) (xy 127.17389 88.219797) (xy 127.276608 88.160492) (xy 127.276608 88.160491)\r\n\t\t\t\t(xy 127.276613 88.160489) (xy 127.360489 88.076613) (xy 127.370481 88.059307) (xy 127.419797 87.97389)\r\n\t\t\t\t(xy 127.419797 87.973888) (xy 127.419799 87.973886) (xy 127.4505 87.859309) (xy 127.4505 87.740691)\r\n\t\t\t\t(xy 128.1495 87.740691) (xy 128.1495 87.859309) (xy 128.171306 87.940691) (xy 128.180202 87.97389)\r\n\t\t\t\t(xy 128.239507 88.076608) (xy 128.239509 88.07661) (xy 128.239511 88.076613) (xy 128.323387 88.160489)\r\n\t\t\t\t(xy 128.323389 88.16049) (xy 128.323391 88.160492) (xy 128.42611 88.219797) (xy 128.426111 88.219797)\r\n\t\t\t\t(xy 128.426114 88.219799) (xy 128.540691 88.2505) (xy 128.540693 88.2505) (xy 128.659307 88.2505)\r\n\t\t\t\t(xy 128.659309 88.2505) (xy 128.773886 88.219799) (xy 128.773888 88.219797) (xy 128.77389 88.219797)\r\n\t\t\t\t(xy 128.876608 88.160492) (xy 128.876608 88.160491) (xy 128.876613 88.160489) (xy 128.960489 88.076613)\r\n\t\t\t\t(xy 128.970481 88.059307) (xy 129.019797 87.97389) (xy 129.019797 87.973888) (xy 129.019799 87.973886)\r\n\t\t\t\t(xy 129.0505 87.859309) (xy 129.0505 87.740691) (xy 129.7495 87.740691) (xy 129.7495 87.859309)\r\n\t\t\t\t(xy 129.771306 87.940691) (xy 129.780202 87.97389) (xy 129.839507 88.076608) (xy 129.839509 88.07661)\r\n\t\t\t\t(xy 129.839511 88.076613) (xy 129.923387 88.160489) (xy 129.923389 88.16049) (xy 129.923391 88.160492)\r\n\t\t\t\t(xy 130.02611 88.219797) (xy 130.026111 88.219797) (xy 130.026114 88.219799) (xy 130.140691 88.2505)\r\n\t\t\t\t(xy 130.140693 88.2505) (xy 130.259307 88.2505) (xy 130.259309 88.2505) (xy 130.373886 88.219799)\r\n\t\t\t\t(xy 130.373888 88.219797) (xy 130.37389 88.219797) (xy 130.476608 88.160492) (xy 130.476608 88.160491)\r\n\t\t\t\t(xy 130.476613 88.160489) (xy 130.560489 88.076613) (xy 130.570481 88.059307) (xy 130.619797 87.97389)\r\n\t\t\t\t(xy 130.619797 87.973888) (xy 130.619799 87.973886) (xy 130.6505 87.859309) (xy 130.6505 87.740691)\r\n\t\t\t\t(xy 130.619799 87.626114) (xy 130.619797 87.626111) (xy 130.619797 87.626109) (xy 130.595313 87.583702)\r\n\t\t\t\t(xy 130.57048 87.540691) (xy 131.1495 87.540691) (xy 131.1495 87.659309) (xy 131.161609 87.7045)\r\n\t\t\t\t(xy 131.180202 87.77389) (xy 131.239507 87.876608) (xy 131.239509 87.87661) (xy 131.239511 87.876613)\r\n\t\t\t\t(xy 131.323387 87.960489) (xy 131.323389 87.96049) (xy 131.323391 87.960492) (xy 131.42611 88.019797)\r\n\t\t\t\t(xy 131.426111 88.019797) (xy 131.426114 88.019799) (xy 131.540691 88.0505) (xy 131.540693 88.0505)\r\n\t\t\t\t(xy 131.659307 88.0505) (xy 131.659309 88.0505) (xy 131.773886 88.019799) (xy 131.773888 88.019797)\r\n\t\t\t\t(xy 131.77389 88.019797) (xy 131.876608 87.960492) (xy 131.876608 87.960491) (xy 131.876613 87.960489)\r\n\t\t\t\t(xy 131.960489 87.876613) (xy 131.970481 87.859307) (xy 132.019797 87.77389) (xy 132.019797 87.773888)\r\n\t\t\t\t(xy 132.019799 87.773886) (xy 132.0505 87.659309) (xy 132.0505 87.540691) (xy 132.019799 87.426114)\r\n\t\t\t\t(xy 131.997978 87.38832) (xy 131.994059 87.381532) (xy 132.3595 87.381532) (xy 132.3595 87.588467)\r\n\t\t\t\t(xy 132.399869 87.791418) (xy 132.479058 87.982597) (xy 132.523761 88.0495) (xy 132.594023 88.154655)\r\n\t\t\t\t(xy 132.740345 88.300977) (xy 132.912402 88.415941) (xy 133.10358 88.49513) (xy 133.306535 88.5355)\r\n\t\t\t\t(xy 133.306536 88.5355) (xy 133.513464 88.5355) (xy 133.513465 88.5355) (xy 133.71642 88.49513)\r\n\t\t\t\t(xy 133.907598 88.415941) (xy 134.079655 88.300977) (xy 134.225977 88.154655) (xy 134.3409' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'41 87.982598)\r\n\t\t\t\t(xy 134.42013 87.79142) (xy 134.4605 87.588465) (xy 134.4605 87.534966) (xy 134.479407 87.476775)\r\n\t\t\t\t(xy 134.528907 87.440811) (xy 134.590093 87.440811) (xy 134.634647 87.472299) (xy 134.634923 87.472024)\r\n\t\t\t\t(xy 134.636526 87.473627) (xy 134.638041 87.474698) (xy 134.639505 87.476606) (xy 134.639509 87.47661)\r\n\t\t\t\t(xy 134.639511 87.476613) (xy 134.723387 87.560489) (xy 134.723389 87.56049) (xy 134.723391 87.560492)\r\n\t\t\t\t(xy 134.82611 87.619797) (xy 134.826111 87.619797) (xy 134.826114 87.619799) (xy 134.940691 87.6505)\r\n\t\t\t\t(xy 134.940693 87.6505) (xy 135.059307 87.6505) (xy 135.059309 87.6505) (xy 135.173886 87.619799)\r\n\t\t\t\t(xy 135.173888 87.619797) (xy 135.17389 87.619797) (xy 135.276608 87.560492) (xy 135.276608 87.560491)\r\n\t\t\t\t(xy 135.276613 87.560489) (xy 135.360489 87.476613) (xy 135.36298 87.472299) (xy 135.419797 87.37389)\r\n\t\t\t\t(xy 135.419797 87.373888) (xy 135.419799 87.373886) (xy 135.4505 87.259309) (xy 135.4505 87.140691)\r\n\t\t\t\t(xy 135.419799 87.026114) (xy 135.419797 87.02611) (xy 135.419797 87.026109) (xy 135.360492 86.923391)\r\n\t\t\t\t(xy 135.36049 86.923389) (xy 135.360489 86.923387) (xy 135.276613 86.839511) (xy 135.27661 86.839509)\r\n\t\t\t\t(xy 135.276608 86.839507) (xy 135.173889 86.780202) (xy 135.17389 86.780202) (xy 135.148456 86.773387)\r\n\t\t\t\t(xy 135.059309 86.7495) (xy 134.940691 86.7495) (xy 134.870567 86.768289) (xy 134.826109 86.780202)\r\n\t\t\t\t(xy 134.723391 86.839507) (xy 134.639507 86.923391) (xy 134.580202 87.02611) (xy 134.5802 87.026114)\r\n\t\t\t\t(xy 134.568002 87.071639) (xy 134.534678 87.122953) (xy 134.477557 87.144879) (xy 134.418456 87.129043)\r\n\t\t\t\t(xy 134.380912 87.0839) (xy 134.340942 86.987404) (xy 134.338468 86.983702) (xy 134.225977 86.815345)\r\n\t\t\t\t(xy 134.079655 86.669023) (xy 134.074833 86.665801) (xy 133.907597 86.554058) (xy 133.716418 86.474869)\r\n\t\t\t\t(xy 133.513467 86.4345) (xy 133.513465 86.4345) (xy 133.306535 86.4345) (xy 133.306532 86.4345)\r\n\t\t\t\t(xy 133.103581 86.474869) (xy 132.912402 86.554058) (xy 132.740348 86.66902) (xy 132.59402 86.815348)\r\n\t\t\t\t(xy 132.479058 86.987402) (xy 132.399869 87.178581) (xy 132.3595 87.381532) (xy 131.994059 87.381532)\r\n\t\t\t\t(xy 131.963738 87.329015) (xy 131.960489 87.323387) (xy 131.876613 87.239511) (xy 131.87661 87.239509)\r\n\t\t\t\t(xy 131.876608 87.239507) (xy 131.773889 87.180202) (xy 131.77389 87.180202) (xy 131.750318 87.173886)\r\n\t\t\t\t(xy 131.659309 87.1495) (xy 131.540691 87.1495) (xy 131.470567 87.168289) (xy 131.426109 87.180202)\r\n\t\t\t\t(xy 131.323391 87.239507) (xy 131.239507 87.323391) (xy 131.180202 87.426109) (xy 131.173667 87.4505)\r\n\t\t\t\t(xy 131.1495 87.540691) (xy 130.57048 87.540691) (xy 130.560492 87.523391) (xy 130.56049 87.523389)\r\n\t\t\t\t(xy 130.560489 87.523387) (xy 130.476613 87.439511) (xy 130.47661 87.439509) (xy 130.476608 87.439507)\r\n\t\t\t\t(xy 130.373889 87.380202) (xy 130.37389 87.380202) (xy 130.350318 87.373886) (xy 130.259309 87.3495)\r\n\t\t\t\t(xy 130.140691 87.3495) (xy 130.070567 87.368289) (xy 130.026109 87.380202) (xy 129.923391 87.439507)\r\n\t\t\t\t(xy 129.839507 87.523391) (xy 129.780202 87.626109) (xy 129.780201 87.626114) (xy 129.7495 87.740691)\r\n\t\t\t\t(xy 129.0505 87.740691) (xy 129.019799 87.626114) (xy 129.019797 87.626111) (xy 129.019797 87.626109)\r\n\t\t\t\t(xy 128.960492 87.523391) (xy 128.96049 87.523389) (xy 128.960489 87.523387) (xy 128.876613 87.439511)\r\n\t\t\t\t(xy 128.87661 87.439509) (xy 128.876608 87.439507) (xy 128.773889 87.380202) (xy 128.77389 87.380202)\r\n\t\t\t\t(xy 128.750318 87.373886) (xy 128.659309 87.3495) (xy 128.540691 87.3495) (xy 128.470567 87.368289)\r\n\t\t\t\t(xy 128.426109 87.380202) (xy 128.323391 87.439507) (xy 128.239507 87.523391) (xy 128.180202 87.626109)\r\n\t\t\t\t(xy 128.180201 87.626114) (xy 128.1495 87.740691) (xy 127.4505 87.740691) (xy 127.419799 87.626114)\r\n\t\t\t\t(xy 127.419797 87.626111) (xy 127.419797 87.626109) (xy 127.360492 87.523391) (xy 127.36049 87.523389)\r\n\t\t\t\t(xy 127.360489 87.523387) (xy 127.276613 87.439511) (xy 127.27661 87.439509) (xy 127.276608 87.439507)\r\n\t\t\t\t(xy 127.173889 87.380202) (xy 127.17389 87.380202) (xy 127.150318 87.373886) (xy 127.059309 87.3495)\r\n\t\t\t\t(xy 126.940691 87.3495) (xy 126.870567 87.368289) (xy 126.826109 87.380202) (xy 126.723391 87.439507)\r\n\t\t\t\t(xy 126.639507 87.523391) (xy 126.580202 87.626109) (xy 126.580201 87.626114) (xy 126.5495 87.740691)\r\n\t\t\t\t(xy 125.8505 87.740691) (xy 125.819799 87.626114) (xy 125.819797 87.626111) (xy 125.819797 87.626109)\r\n\t\t\t\t(xy 125.760492 87.523391) (xy 125.76049 87.523389) (xy 125.760489 87.523387) (xy 125.676613 87.439511)\r\n\t\t\t\t(xy 125.67661 87.439509) (xy 125.676608 87.439507) (xy 125.573889 87.380202) (xy 125.57389 87.380202)\r\n\t\t\t\t(xy 125.550318 87.373886) (xy 125.459309 87.3495) (xy 125.340691 87.3495) (xy 125.270567 87.368289)\r\n\t\t\t\t(xy 125.226109 87.380202) (xy 125.123391 87.439507) (xy 125.039507 87.523391) (xy 124.980202 87.626109)\r\n\t\t\t\t(xy 124.980201 87.626114) (xy 124.9495 87.740691) (xy 124.2505 87.740691) (xy 124.219799 87.626114)\r\n\t\t\t\t(xy 124.219797 87.626111) (xy 124.219797 87.626109) (xy 124.160492 87.523391) (xy 124.16049 87.523389)\r\n\t\t\t\t(xy 124.160489 87.523387) (xy 124.076613 87.439511) (xy 124.07661 87.439509) (xy 124.076608 87.439507)\r\n\t\t\t\t(xy 123.973889 87.380202) (xy 123.97389 87.380202) (xy 123.950318 87.373886) (xy 123.859309 87.3495)\r\n\t\t\t\t(xy 123.740691 87.3495) (xy 123.670567 87.368289) (xy 123.626109 87.380202) (xy 123.523391 87.439507)\r\n\t\t\t\t(xy 123.439507 87.523391) (xy 123.380202 87.626109) (xy 123.380201 87.626114) (xy 123.3495 87.740691)\r\n\t\t\t\t(xy 122.6505 87.740691) (xy 122.619799 87.626114) (xy 122.619797 87.626111) (xy 122.619797 87.626109)\r\n\t\t\t\t(xy 122.560492 87.523391) (xy 122.56049 87.523389) (xy 122.560489 87.523387) (xy 122.476613 87.439511)\r\n\t\t\t\t(xy 122.47661 87.439509) (xy 122.476608 87.439507) (xy 122.373889 87.380202) (xy 122.37389 87.380202)\r\n\t\t\t\t(xy 122.350318 87.373886) (xy 122.259309 87.3495) (xy 122.140691 87.3495) (xy 122.070567 87.368289)\r\n\t\t\t\t(xy 122.026109 87.380202) (xy 121.923391 87.439507) (xy 121.839507 87.523391) (xy 121.780202 87.626109)\r\n\t\t\t\t(xy 121.780201 87.626114) (xy 121.7495 87.740691) (xy 117.8505 87.740691) (xy 117.819799 87.626114)\r\n\t\t\t\t(xy 117.819797 87.626111) (xy 117.819797 87.626109) (xy 117.760492 87.523391) (xy 117.76049 87.523389)\r\n\t\t\t\t(xy 117.760489 87.523387) (xy 117.676613 87.439511) (xy 117.67661 87.439509) (xy 117.676608 87.439507)\r\n\t\t\t\t(xy 117.573889 87.380202) (xy 117.57389 87.380202) (xy 117.550318 87.373886) (xy 117.459309 87.3495)\r\n\t\t\t\t(xy 117.340691 87.3495) (xy 117.270567 87.368289) (xy 117.226109 87.380202) (xy 117.123391 87.439507)\r\n\t\t\t\t(xy 117.039507 87.523391) (xy 116.980202 87.626109) (xy 116.980201 87.626114) (xy 116.9495 87.740691)\r\n\t\t\t\t(xy 116.2505 87.740691) (xy 116.219799 87.626114) (xy 116.219797 87.626111) (xy 116.219797 87.626109)\r\n\t\t\t\t(xy 116.160492 87.523391) (xy 116.16049 87.523389) (xy 116.160489 87.523387) (xy 116.076613 87.439511)\r\n\t\t\t\t(xy 116.07661 87.439509) (xy 116.076608 87.439507) (xy 115.973889 87.380202) (xy 115.97389 87.380202)\r\n\t\t\t\t(xy 115.950318 87.373886) (xy 115.859309 87.3495) (xy 115.740691 87.3495) (xy 115.670567 87.368289)\r\n\t\t\t\t(xy 115.626109 87.380202) (xy 115.523391 87.439507) (xy 115.439507 87.523391) (xy 115.380202 87.626109)\r\n\t\t\t\t(xy 115.380201 87.626114) (xy 115.3495 87.740691) (xy 113.667744 87.740691) (xy 113.960416 87.448018)\r\n\t\t\t\t(xy 114.014933 87.420242) (xy 114.03042 87.419023) (xy 114.14496 87.419023) (xy 114.144962 87.419023)\r\n\t\t\t\t(xy 114.259539 87.388322) (xy 114.259541 87.38832) (xy 114.259543 87.38832) (xy 114.362261 87.329015)\r\n\t\t\t\t(xy 114.362261 87.329014) (xy 114.362266 87.329012) (xy 114.446142 87.245136) (xy 114.460708 87.219907)\r\n\t\t\t\t(xy 114.50545 87.142413) (xy 114.50545 87.142411) (xy 114.505452 87.142409) (xy 114.505912 87.140691)\r\n\t\t\t\t(xy 118.1495 87.140691) (xy 118.1495 87.259309) (xy 118.175297 87.355585) (xy 118.180202 87.37389)\r\n\t\t\t\t(xy 118.239507 87.476608) (xy 118.239509 87.47661) (xy 118.239511 87.476613) (xy 118.323387 87.560489)\r\n\t\t\t\t(xy 118.323389 87.56049) (xy 118.323391 87.560492) (xy 118.42611 87.619797) (xy 118.426111 87.619797)\r\n\t\t\t\t(xy 118.426114 87.619799) (xy 118.540691 87.6505) (xy 118.540693 87.6505) (xy 118.659307 87.6505)\r\n\t\t\t\t(xy 118.659309 87.6505) (xy 118.773886 87.619799) (xy 1' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'18.773888 87.619797) (xy 118.77389 87.619797)\r\n\t\t\t\t(xy 118.876608 87.560492) (xy 118.876608 87.560491) (xy 118.876613 87.560489) (xy 118.960489 87.476613)\r\n\t\t\t\t(xy 118.96298 87.472299) (xy 119.019797 87.37389) (xy 119.019797 87.373888) (xy 119.019799 87.373886)\r\n\t\t\t\t(xy 119.0505 87.259309) (xy 119.0505 87.140691) (xy 119.019799 87.026114) (xy 119.019797 87.02611)\r\n\t\t\t\t(xy 119.019797 87.026109) (xy 118.995313 86.983702) (xy 118.97048 86.940691) (xy 119.5495 86.940691)\r\n\t\t\t\t(xy 119.5495 87.059309) (xy 119.568185 87.129043) (xy 119.580202 87.17389) (xy 119.639507 87.276608)\r\n\t\t\t\t(xy 119.639509 87.27661) (xy 119.639511 87.276613) (xy 119.723387 87.360489) (xy 119.723389 87.36049)\r\n\t\t\t\t(xy 119.723391 87.360492) (xy 119.82611 87.419797) (xy 119.826111 87.419797) (xy 119.826114 87.419799)\r\n\t\t\t\t(xy 119.940691 87.4505) (xy 119.940693 87.4505) (xy 120.059307 87.4505) (xy 120.059309 87.4505)\r\n\t\t\t\t(xy 120.173886 87.419799) (xy 120.173888 87.419797) (xy 120.17389 87.419797) (xy 120.276608 87.360492)\r\n\t\t\t\t(xy 120.276608 87.360491) (xy 120.276613 87.360489) (xy 120.360489 87.276613) (xy 120.370481 87.259307)\r\n\t\t\t\t(xy 120.419797 87.17389) (xy 120.419797 87.173888) (xy 120.419799 87.173886) (xy 120.4505 87.059309)\r\n\t\t\t\t(xy 120.4505 86.940691) (xy 120.9495 86.940691) (xy 120.9495 87.059309) (xy 120.968185 87.129043)\r\n\t\t\t\t(xy 120.980202 87.17389) (xy 121.039507 87.276608) (xy 121.039509 87.27661) (xy 121.039511 87.276613)\r\n\t\t\t\t(xy 121.123387 87.360489) (xy 121.123389 87.36049) (xy 121.123391 87.360492) (xy 121.22611 87.419797)\r\n\t\t\t\t(xy 121.226111 87.419797) (xy 121.226114 87.419799) (xy 121.340691 87.4505) (xy 121.340693 87.4505)\r\n\t\t\t\t(xy 121.459307 87.4505) (xy 121.459309 87.4505) (xy 121.573886 87.419799) (xy 121.573888 87.419797)\r\n\t\t\t\t(xy 121.57389 87.419797) (xy 121.676608 87.360492) (xy 121.676608 87.360491) (xy 121.676613 87.360489)\r\n\t\t\t\t(xy 121.760489 87.276613) (xy 121.770481 87.259307) (xy 121.819797 87.17389) (xy 121.819797 87.173888)\r\n\t\t\t\t(xy 121.819799 87.173886) (xy 121.8505 87.059309) (xy 121.8505 86.940691) (xy 121.819799 86.826114)\r\n\t\t\t\t(xy 121.819797 86.826111) (xy 121.819797 86.826109) (xy 121.760492 86.723391) (xy 121.76049 86.723389)\r\n\t\t\t\t(xy 121.760489 86.723387) (xy 121.676613 86.639511) (xy 121.67661 86.639509) (xy 121.676608 86.639507)\r\n\t\t\t\t(xy 121.573889 86.580202) (xy 121.57389 86.580202) (xy 121.550322 86.573887) (xy 121.459309 86.5495)\r\n\t\t\t\t(xy 121.340691 86.5495) (xy 121.299669 86.560492) (xy 121.226109 86.580202) (xy 121.123391 86.639507)\r\n\t\t\t\t(xy 121.039507 86.723391) (xy 120.980202 86.826109) (xy 120.980201 86.826114) (xy 120.9495 86.940691)\r\n\t\t\t\t(xy 120.4505 86.940691) (xy 120.419799 86.826114) (xy 120.419797 86.826111) (xy 120.419797 86.826109)\r\n\t\t\t\t(xy 120.360492 86.723391) (xy 120.36049 86.723389) (xy 120.360489 86.723387) (xy 120.276613 86.639511)\r\n\t\t\t\t(xy 120.27661 86.639509) (xy 120.276608 86.639507) (xy 120.173889 86.580202) (xy 120.17389 86.580202)\r\n\t\t\t\t(xy 120.150322 86.573887) (xy 120.059309 86.5495) (xy 119.940691 86.5495) (xy 119.899669 86.560492)\r\n\t\t\t\t(xy 119.826109 86.580202) (xy 119.723391 86.639507) (xy 119.639507 86.723391) (xy 119.580202 86.826109)\r\n\t\t\t\t(xy 119.580201 86.826114) (xy 119.5495 86.940691) (xy 118.97048 86.940691) (xy 118.960492 86.923391)\r\n\t\t\t\t(xy 118.96049 86.923389) (xy 118.960489 86.923387) (xy 118.876613 86.839511) (xy 118.87661 86.839509)\r\n\t\t\t\t(xy 118.876608 86.839507) (xy 118.773889 86.780202) (xy 118.77389 86.780202) (xy 118.748456 86.773387)\r\n\t\t\t\t(xy 118.659309 86.7495) (xy 118.540691 86.7495) (xy 118.470567 86.768289) (xy 118.426109 86.780202)\r\n\t\t\t\t(xy 118.323391 86.839507) (xy 118.239507 86.923391) (xy 118.180202 87.026109) (xy 118.166671 87.076608)\r\n\t\t\t\t(xy 118.1495 87.140691) (xy 114.505912 87.140691) (xy 114.536153 87.027832) (xy 114.536153 86.909214)\r\n\t\t\t\t(xy 114.505452 86.794637) (xy 114.50545 86.794634) (xy 114.50545 86.794632) (xy 114.446145 86.691914)\r\n\t\t\t\t(xy 114.446143 86.691912) (xy 114.446142 86.69191) (xy 114.362266 86.608034) (xy 114.362263 86.608032)\r\n\t\t\t\t(xy 114.362261 86.60803) (xy 114.259542 86.548725) (xy 114.259543 86.548725) (xy 114.220804 86.538345)\r\n\t\t\t\t(xy 114.144962 86.518023) (xy 114.047186 86.518023) (xy 113.988995 86.499116) (xy 113.953031 86.449616)\r\n\t\t\t\t(xy 113.951559 86.444646) (xy 113.9505 86.440693) (xy 113.9505 86.440691) (xy 113.919799 86.326114)\r\n\t\t\t\t(xy 113.919797 86.326111) (xy 113.919797 86.326109) (xy 113.860492 86.223391) (xy 113.86049 86.223389)\r\n\t\t\t\t(xy 113.860489 86.223387) (xy 113.776613 86.139511) (xy 113.77661 86.139509) (xy 113.776608 86.139507)\r\n\t\t\t\t(xy 113.673889 86.080202) (xy 113.67389 86.080202) (xy 113.653595 86.074764) (xy 113.559309 86.0495)\r\n\t\t\t\t(xy 113.440691 86.0495) (xy 113.359562 86.071238) (xy 113.334447 86.077968) (xy 113.273345 86.074765)\r\n\t\t\t\t(xy 113.225795 86.03626) (xy 113.22334 86.031561) (xy 113.223044 86.031733) (xy 113.160492 85.923391)\r\n\t\t\t\t(xy 113.16049 85.923389) (xy 113.160489 85.923387) (xy 113.076613 85.839511) (xy 113.07661 85.839509)\r\n\t\t\t\t(xy 113.076608 85.839507) (xy 112.973889 85.780202) (xy 112.97389 85.780202) (xy 112.960351 85.776574)\r\n\t\t\t\t(xy 112.859309 85.7495) (xy 112.740691 85.7495) (xy 112.670567 85.768289) (xy 112.626109 85.780202)\r\n\t\t\t\t(xy 112.523391 85.839507) (xy 112.439507 85.923391) (xy 112.380202 86.026109) (xy 112.367934 86.071893)\r\n\t\t\t\t(xy 112.349818 86.139507) (xy 112.3495 86.140692) (xy 112.3495 86.25523) (xy 112.330593 86.313421)\r\n\t\t\t\t(xy 112.320504 86.325234) (xy 111.325235 87.320504) (xy 111.270718 87.348281) (xy 111.255231 87.3495)\r\n\t\t\t\t(xy 110.289881 87.3495) (xy 110.23169 87.330593) (xy 110.195726 87.281093) (xy 110.195726 87.219907)\r\n\t\t\t\t(xy 110.204145 87.200999) (xy 110.219799 87.173886) (xy 110.2505 87.059309) (xy 110.2505 86.940691)\r\n\t\t\t\t(xy 110.219799 86.826114) (xy 110.219797 86.826111) (xy 110.219797 86.826109) (xy 110.160492 86.723391)\r\n\t\t\t\t(xy 110.16049 86.723389) (xy 110.160489 86.723387) (xy 110.076613 86.639511) (xy 110.07661 86.639509)\r\n\t\t\t\t(xy 110.076608 86.639507) (xy 109.973889 86.580202) (xy 109.97389 86.580202) (xy 109.950322 86.573887)\r\n\t\t\t\t(xy 109.859309 86.5495) (xy 109.740691 86.5495) (xy 109.699669 86.560492) (xy 109.626109 86.580202)\r\n\t\t\t\t(xy 109.523391 86.639507) (xy 109.439507 86.723391) (xy 109.380202 86.826109) (xy 109.380201 86.826114)\r\n\t\t\t\t(xy 109.3495 86.940691) (xy 109.3495 87.059309) (xy 109.376612 87.16049) (xy 109.380202 87.173888)\r\n\t\t\t\t(xy 109.395855 87.200999) (xy 109.408577 87.260847) (xy 109.383691 87.316743) (xy 109.330704 87.347336)\r\n\t\t\t\t(xy 109.310119 87.3495) (xy 107.455604 87.3495) (xy 107.397413 87.330593) (xy 107.361449 87.281093)\r\n\t\t\t\t(xy 107.361449 87.219907) (xy 107.385598 87.180498) (xy 107.446362 87.119735) (xy 107.452803 87.108579)\r\n\t\t\t\t(xy 107.50567 87.017012) (xy 107.50567 87.01701) (xy 107.505672 87.017008) (xy 107.536373 86.902431)\r\n\t\t\t\t(xy 107.536373 86.78789) (xy 107.55528 86.729699) (xy 107.565369 86.717886) (xy 110.342565 83.940691)\r\n\t\t\t\t(xy 111.5495 83.940691) (xy 111.5495 84.059309) (xy 111.570989 84.139507) (xy 111.580202 84.17389)\r\n\t\t\t\t(xy 111.639507 84.276608) (xy 111.639509 84.27661) (xy 111.639511 84.276613) (xy 111.723387 84.360489)\r\n\t\t\t\t(xy 111.723389 84.36049) (xy 111.723391 84.360492) (xy 111.82611 84.419797) (xy 111.826111 84.419797)\r\n\t\t\t\t(xy 111.826114 84.419799) (xy 111.940691 84.4505) (xy 111.940693 84.4505) (xy 112.059307 84.4505)\r\n\t\t\t\t(xy 112.059309 84.4505) (xy 112.173886 84.419799) (xy 112.173888 84.419797) (xy 112.17389 84.419797)\r\n\t\t\t\t(xy 112.276608 84.360492) (xy 112.276608 84.360491) (xy 112.276613 84.360489) (xy 112.360489 84.276613)\r\n\t\t\t\t(xy 112.391217 84.223391) (xy 112.419797 84.17389) (xy 112.419797 84.173888) (xy 112.419799 84.173886)\r\n\t\t\t\t(xy 112.4505 84.059309) (xy 112.4505 83.940691) (xy 119.5495 83.940691) (xy 119.5495 84.059309)\r\n\t\t\t\t(xy 119.570989 84.139507) (xy 119.580202 84.17389) (xy 119.639507 84.276608) (xy 119.639509 84.27661)\r\n\t\t\t\t(xy 119.639511 84.276613) (xy 119.723387 84.360489) (xy 119.723389 84.36049) (xy 119.723391 84.360492)\r\n\t\t\t\t(xy 119.82611 84.419797) (xy 119.826111 84.419797) (xy 119.826114 84.419799) (xy 119.940691 84.4505)\r\n\t\t\t\t(xy 119.940693 84.4505) (xy 120.059307 84.4505) (xy 120.059309 84.4505) (xy 120.173886 84.419799)\r\n\t\t\t\t(xy 120.173888 84.419797) (xy 120.17' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'389 84.419797) (xy 120.276608 84.360492) (xy 120.276608 84.360491)\r\n\t\t\t\t(xy 120.276613 84.360489) (xy 120.360489 84.276613) (xy 120.391217 84.223391) (xy 120.419797 84.17389)\r\n\t\t\t\t(xy 120.419797 84.173888) (xy 120.419799 84.173886) (xy 120.4505 84.059309) (xy 120.4505 83.940691)\r\n\t\t\t\t(xy 123.5495 83.940691) (xy 123.5495 84.059309) (xy 123.570989 84.139507) (xy 123.580202 84.17389)\r\n\t\t\t\t(xy 123.639507 84.276608) (xy 123.639509 84.27661) (xy 123.639511 84.276613) (xy 123.723387 84.360489)\r\n\t\t\t\t(xy 123.723389 84.36049) (xy 123.723391 84.360492) (xy 123.82611 84.419797) (xy 123.826111 84.419797)\r\n\t\t\t\t(xy 123.826114 84.419799) (xy 123.940691 84.4505) (xy 123.940693 84.4505) (xy 124.059307 84.4505)\r\n\t\t\t\t(xy 124.059309 84.4505) (xy 124.173886 84.419799) (xy 124.173888 84.419797) (xy 124.17389 84.419797)\r\n\t\t\t\t(xy 124.276608 84.360492) (xy 124.276608 84.360491) (xy 124.276613 84.360489) (xy 124.360489 84.276613)\r\n\t\t\t\t(xy 124.391217 84.223391) (xy 124.419797 84.17389) (xy 124.419797 84.173888) (xy 124.419799 84.173886)\r\n\t\t\t\t(xy 124.4505 84.059309) (xy 124.4505 83.940691) (xy 127.5495 83.940691) (xy 127.5495 84.059309)\r\n\t\t\t\t(xy 127.570989 84.139507) (xy 127.580202 84.17389) (xy 127.639507 84.276608) (xy 127.639509 84.27661)\r\n\t\t\t\t(xy 127.639511 84.276613) (xy 127.723387 84.360489) (xy 127.723389 84.36049) (xy 127.723391 84.360492)\r\n\t\t\t\t(xy 127.82611 84.419797) (xy 127.826111 84.419797) (xy 127.826114 84.419799) (xy 127.940691 84.4505)\r\n\t\t\t\t(xy 127.940693 84.4505) (xy 128.059307 84.4505) (xy 128.059309 84.4505) (xy 128.173886 84.419799)\r\n\t\t\t\t(xy 128.173888 84.419797) (xy 128.17389 84.419797) (xy 128.276608 84.360492) (xy 128.276608 84.360491)\r\n\t\t\t\t(xy 128.276613 84.360489) (xy 128.360489 84.276613) (xy 128.391217 84.223391) (xy 128.419797 84.17389)\r\n\t\t\t\t(xy 128.419797 84.173888) (xy 128.419799 84.173886) (xy 128.4505 84.059309) (xy 128.4505 83.940691)\r\n\t\t\t\t(xy 131.5495 83.940691) (xy 131.5495 84.059309) (xy 131.570989 84.139507) (xy 131.580202 84.17389)\r\n\t\t\t\t(xy 131.639507 84.276608) (xy 131.639509 84.27661) (xy 131.639511 84.276613) (xy 131.723387 84.360489)\r\n\t\t\t\t(xy 131.723389 84.36049) (xy 131.723391 84.360492) (xy 131.82611 84.419797) (xy 131.826111 84.419797)\r\n\t\t\t\t(xy 131.826114 84.419799) (xy 131.940691 84.4505) (xy 131.940693 84.4505) (xy 132.059307 84.4505)\r\n\t\t\t\t(xy 132.059309 84.4505) (xy 132.173886 84.419799) (xy 132.173888 84.419797) (xy 132.17389 84.419797)\r\n\t\t\t\t(xy 132.276608 84.360492) (xy 132.276608 84.360491) (xy 132.276613 84.360489) (xy 132.360489 84.276613)\r\n\t\t\t\t(xy 132.391217 84.223391) (xy 132.419797 84.17389) (xy 132.419797 84.173888) (xy 132.419799 84.173886)\r\n\t\t\t\t(xy 132.4505 84.059309) (xy 132.4505 83.940691) (xy 135.5495 83.940691) (xy 135.5495 84.059309)\r\n\t\t\t\t(xy 135.570989 84.139507) (xy 135.580202 84.17389) (xy 135.639507 84.276608) (xy 135.639509 84.27661)\r\n\t\t\t\t(xy 135.639511 84.276613) (xy 135.723387 84.360489) (xy 135.723389 84.36049) (xy 135.723391 84.360492)\r\n\t\t\t\t(xy 135.82611 84.419797) (xy 135.826111 84.419797) (xy 135.826114 84.419799) (xy 135.940691 84.4505)\r\n\t\t\t\t(xy 135.940693 84.4505) (xy 136.059307 84.4505) (xy 136.059309 84.4505) (xy 136.173886 84.419799)\r\n\t\t\t\t(xy 136.173888 84.419797) (xy 136.17389 84.419797) (xy 136.276608 84.360492) (xy 136.276608 84.360491)\r\n\t\t\t\t(xy 136.276613 84.360489) (xy 136.360489 84.276613) (xy 136.391217 84.223391) (xy 136.419797 84.17389)\r\n\t\t\t\t(xy 136.419797 84.173888) (xy 136.419799 84.173886) (xy 136.4505 84.059309) (xy 136.4505 83.940691)\r\n\t\t\t\t(xy 136.419799 83.826114) (xy 136.419797 83.82611) (xy 136.419797 83.826109) (xy 136.360492 83.723391)\r\n\t\t\t\t(xy 136.36049 83.723389) (xy 136.360489 83.723387) (xy 136.276613 83.639511) (xy 136.27661 83.639509)\r\n\t\t\t\t(xy 136.276608 83.639507) (xy 136.173889 83.580202) (xy 136.17389 83.580202) (xy 136.160351 83.576574)\r\n\t\t\t\t(xy 136.059309 83.5495) (xy 135.940691 83.5495) (xy 135.899669 83.560492) (xy 135.826109 83.580202)\r\n\t\t\t\t(xy 135.723391 83.639507) (xy 135.639507 83.723391) (xy 135.580202 83.826109) (xy 135.576295 83.840691)\r\n\t\t\t\t(xy 135.5495 83.940691) (xy 132.4505 83.940691) (xy 132.419799 83.826114) (xy 132.419797 83.82611)\r\n\t\t\t\t(xy 132.419797 83.826109) (xy 132.360492 83.723391) (xy 132.36049 83.723389) (xy 132.360489 83.723387)\r\n\t\t\t\t(xy 132.276613 83.639511) (xy 132.27661 83.639509) (xy 132.276608 83.639507) (xy 132.173889 83.580202)\r\n\t\t\t\t(xy 132.17389 83.580202) (xy 132.160351 83.576574) (xy 132.059309 83.5495) (xy 131.940691 83.5495)\r\n\t\t\t\t(xy 131.899669 83.560492) (xy 131.826109 83.580202) (xy 131.723391 83.639507) (xy 131.639507 83.723391)\r\n\t\t\t\t(xy 131.580202 83.826109) (xy 131.576295 83.840691) (xy 131.5495 83.940691) (xy 128.4505 83.940691)\r\n\t\t\t\t(xy 128.419799 83.826114) (xy 128.419797 83.82611) (xy 128.419797 83.826109) (xy 128.360492 83.723391)\r\n\t\t\t\t(xy 128.36049 83.723389) (xy 128.360489 83.723387) (xy 128.276613 83.639511) (xy 128.27661 83.639509)\r\n\t\t\t\t(xy 128.276608 83.639507) (xy 128.173889 83.580202) (xy 128.17389 83.580202) (xy 128.160351 83.576574)\r\n\t\t\t\t(xy 128.059309 83.5495) (xy 127.940691 83.5495) (xy 127.899669 83.560492) (xy 127.826109 83.580202)\r\n\t\t\t\t(xy 127.723391 83.639507) (xy 127.639507 83.723391) (xy 127.580202 83.826109) (xy 127.576295 83.840691)\r\n\t\t\t\t(xy 127.5495 83.940691) (xy 124.4505 83.940691) (xy 124.419799 83.826114) (xy 124.419797 83.82611)\r\n\t\t\t\t(xy 124.419797 83.826109) (xy 124.360492 83.723391) (xy 124.36049 83.723389) (xy 124.360489 83.723387)\r\n\t\t\t\t(xy 124.276613 83.639511) (xy 124.27661 83.639509) (xy 124.276608 83.639507) (xy 124.173889 83.580202)\r\n\t\t\t\t(xy 124.17389 83.580202) (xy 124.160351 83.576574) (xy 124.059309 83.5495) (xy 123.940691 83.5495)\r\n\t\t\t\t(xy 123.899669 83.560492) (xy 123.826109 83.580202) (xy 123.723391 83.639507) (xy 123.639507 83.723391)\r\n\t\t\t\t(xy 123.580202 83.826109) (xy 123.576295 83.840691) (xy 123.5495 83.940691) (xy 120.4505 83.940691)\r\n\t\t\t\t(xy 120.419799 83.826114) (xy 120.419797 83.82611) (xy 120.419797 83.826109) (xy 120.360492 83.723391)\r\n\t\t\t\t(xy 120.36049 83.723389) (xy 120.360489 83.723387) (xy 120.276613 83.639511) (xy 120.27661 83.639509)\r\n\t\t\t\t(xy 120.276608 83.639507) (xy 120.173889 83.580202) (xy 120.17389 83.580202) (xy 120.160351 83.576574)\r\n\t\t\t\t(xy 120.059309 83.5495) (xy 119.940691 83.5495) (xy 119.899669 83.560492) (xy 119.826109 83.580202)\r\n\t\t\t\t(xy 119.723391 83.639507) (xy 119.639507 83.723391) (xy 119.580202 83.826109) (xy 119.576295 83.840691)\r\n\t\t\t\t(xy 119.5495 83.940691) (xy 112.4505 83.940691) (xy 112.419799 83.826114) (xy 112.419797 83.82611)\r\n\t\t\t\t(xy 112.419797 83.826109) (xy 112.360492 83.723391) (xy 112.36049 83.723389) (xy 112.360489 83.723387)\r\n\t\t\t\t(xy 112.276613 83.639511) (xy 112.27661 83.639509) (xy 112.276608 83.639507) (xy 112.173889 83.580202)\r\n\t\t\t\t(xy 112.17389 83.580202) (xy 112.160351 83.576574) (xy 112.059309 83.5495) (xy 111.940691 83.5495)\r\n\t\t\t\t(xy 111.899669 83.560492) (xy 111.826109 83.580202) (xy 111.723391 83.639507) (xy 111.639507 83.723391)\r\n\t\t\t\t(xy 111.580202 83.826109) (xy 111.576295 83.840691) (xy 111.5495 83.940691) (xy 110.342565 83.940691)\r\n\t\t\t\t(xy 110.419058 83.864198) (xy 111.35376 82.929496) (xy 111.408277 82.901719) (xy 111.423764 82.9005)\r\n\t\t\t\t(xy 141.705231 82.9005) (xy 141.763422 82.919407) (xy 141.775235 82.929496) (xy 141.920504 83.074765)\r\n\t\t\t\t(xy 141.948281 83.129282) (xy 141.9495 83.144769) (xy 141.9495 83.259309) (xy 141.976574 83.360351)\r\n\t\t\t\t(xy 141.980202 83.37389) (xy 142.039507 83.476608) (xy 142.039509 83.47661) (xy 142.039511 83.476613)\r\n\t\t\t\t(xy 142.123387 83.560489) (xy 142.123389 83.56049) (xy 142.123391 83.560492) (xy 142.22611 83.619797)\r\n\t\t\t\t(xy 142.226111 83.619797) (xy 142.226114 83.619799) (xy 142.340691 83.6505) (xy 142.340693 83.6505)\r\n\t\t\t\t(xy 142.459307 83.6505) (xy 142.459309 83.6505) (xy 142.573886 83.619799) (xy 142.573888 83.619797)\r\n\t\t\t\t(xy 142.57389 83.619797) (xy 142.676608 83.560492) (xy 142.676608 83.560491) (xy 142.676613 83.560489)\r\n\t\t\t\t(xy 142.760489 83.476613) (xy 142.819799 83.373886) (xy 142.8505 83.259309) (xy 142.8505 83.140691)\r\n\t\t\t\t(xy 142.819799 83.026114) (xy 142.776345 82.950851) (xy 142.763624 82.891003) (xy 142.78851 82.835108)\r\n\t\t\t\t(xy 142.841498 82.804515) (xy 142.902348 82.81091) (xy 142.932086 82.831347) (xy 144.291808 84.191069)\r\n\t\t\t\t(xy 145.407663 85.306923) (' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'xy 145.43544 85.36144) (xy 145.425869 85.421872) (xy 145.382604 85.465137)\r\n\t\t\t\t(xy 145.322172 85.474708) (xy 145.299774 85.468391) (xy 145.14642 85.40487) (xy 144.943467 85.3645)\r\n\t\t\t\t(xy 144.943465 85.3645) (xy 144.736535 85.3645) (xy 144.736532 85.3645) (xy 144.533581 85.404869)\r\n\t\t\t\t(xy 144.342402 85.484058) (xy 144.170348 85.59902) (xy 144.02402 85.745348) (xy 143.909058 85.917402)\r\n\t\t\t\t(xy 143.829869 86.108582) (xy 143.829868 86.108585) (xy 143.823872 86.138728) (xy 143.793974 86.192111)\r\n\t\t\t\t(xy 143.738409 86.217725) (xy 143.678399 86.205787) (xy 143.656775 86.189418) (xy 143.539256 86.071899)\r\n\t\t\t\t(xy 143.539251 86.071895) (xy 143.539249 86.071893) (xy 143.344211 85.922235) (xy 143.33584 85.917402)\r\n\t\t\t\t(xy 143.131292 85.799306) (xy 143.131288 85.799304) (xy 143.131284 85.799302) (xy 142.904154 85.705222)\r\n\t\t\t\t(xy 142.79944 85.677164) (xy 142.666677 85.641591) (xy 142.666674 85.64159) (xy 142.666672 85.64159)\r\n\t\t\t\t(xy 142.422927 85.6095) (xy 142.177073 85.6095) (xy 142.177072 85.6095) (xy 141.93333 85.64159)\r\n\t\t\t\t(xy 141.933325 85.64159) (xy 141.695845 85.705222) (xy 141.468715 85.799302) (xy 141.255788 85.922235)\r\n\t\t\t\t(xy 141.060746 86.071896) (xy 140.94095 86.191692) (xy 140.886434 86.219469) (xy 140.826002 86.209897)\r\n\t\t\t\t(xy 140.782737 86.166633) (xy 140.773166 86.106201) (xy 140.778496 86.087309) (xy 140.778377 86.087271)\r\n\t\t\t\t(xy 140.779366 86.084224) (xy 140.779492 86.083781) (xy 140.779572 86.083584) (xy 140.779579 86.083572)\r\n\t\t\t\t(xy 140.85986 85.836493) (xy 140.86575 85.799306) (xy 140.9005 85.5799) (xy 140.9005 85.320099)\r\n\t\t\t\t(xy 140.859861 85.063511) (xy 140.823142 84.9505) (xy 140.779579 84.816428) (xy 140.661634 84.584949)\r\n\t\t\t\t(xy 140.508931 84.374771) (xy 140.325229 84.191069) (xy 140.115051 84.038366) (xy 140.11505 84.038365)\r\n\t\t\t\t(xy 140.115048 84.038364) (xy 140.007964 83.983802) (xy 139.883572 83.920421) (xy 139.883569 83.92042)\r\n\t\t\t\t(xy 139.883567 83.920419) (xy 139.636488 83.840138) (xy 139.3799 83.7995) (xy 139.379897 83.7995)\r\n\t\t\t\t(xy 139.120103 83.7995) (xy 139.1201 83.7995) (xy 138.863511 83.840138) (xy 138.616432 83.920419)\r\n\t\t\t\t(xy 138.384951 84.038364) (xy 138.174772 84.191068) (xy 137.991068 84.374772) (xy 137.838364 84.584951)\r\n\t\t\t\t(xy 137.720419 84.816432) (xy 137.640138 85.063511) (xy 137.5995 85.320099) (xy 137.5995 85.5799)\r\n\t\t\t\t(xy 137.640138 85.836488) (xy 137.719326 86.080201) (xy 137.720421 86.083572) (xy 137.751602 86.144768)\r\n\t\t\t\t(xy 137.836574 86.311535) (xy 137.838366 86.315051) (xy 137.991069 86.525229) (xy 138.174771 86.708931)\r\n\t\t\t\t(xy 138.384949 86.861634) (xy 138.616428 86.979579) (xy 138.863507 87.05986) (xy 138.863508 87.05986)\r\n\t\t\t\t(xy 138.863511 87.059861) (xy 139.1201 87.1005) (xy 139.120103 87.1005) (xy 139.3799 87.1005) (xy 139.636488 87.059861)\r\n\t\t\t\t(xy 139.636489 87.05986) (xy 139.636493 87.05986) (xy 139.883572 86.979579) (xy 140.115051 86.861634)\r\n\t\t\t\t(xy 140.325229 86.708931) (xy 140.427735 86.606424) (xy 140.48225 86.578648) (xy 140.542682 86.588219)\r\n\t\t\t\t(xy 140.585946 86.631484) (xy 140.595518 86.691916) (xy 140.589201 86.714314) (xy 140.520222 86.880845)\r\n\t\t\t\t(xy 140.45659 87.118325) (xy 140.45659 87.11833) (xy 140.424709 87.360489) (xy 140.4245 87.362073)\r\n\t\t\t\t(xy 140.4245 87.607927) (xy 140.453225 87.826114) (xy 140.45659 87.851669) (xy 140.45659 87.851674)\r\n\t\t\t\t(xy 140.520222 88.089154) (xy 140.614302 88.316284) (xy 140.614304 88.316288) (xy 140.614306 88.316292)\r\n\t\t\t\t(xy 140.727508 88.512364) (xy 140.737235 88.529211) (xy 140.886893 88.724249) (xy 140.886895 88.724251)\r\n\t\t\t\t(xy 140.886899 88.724256) (xy 141.060744 88.898101) (xy 141.060748 88.898104) (xy 141.06075 88.898106)\r\n\t\t\t\t(xy 141.255788 89.047764) (xy 141.255792 89.047767) (xy 141.468708 89.170694) (xy 141.468714 89.170696)\r\n\t\t\t\t(xy 141.468715 89.170697) (xy 141.482998 89.176613) (xy 141.695847 89.264778) (xy 141.933323 89.328409)\r\n\t\t\t\t(xy 142.177073 89.3605) (xy 142.177074 89.3605) (xy 142.422926 89.3605) (xy 142.422927 89.3605)\r\n\t\t\t\t(xy 142.666677 89.328409) (xy 142.904153 89.264778) (xy 143.131292 89.170694) (xy 143.344208 89.047767)\r\n\t\t\t\t(xy 143.539256 88.898101) (xy 143.713101 88.724256) (xy 143.862767 88.529208) (xy 143.985694 88.316292)\r\n\t\t\t\t(xy 144.079778 88.089153) (xy 144.119558 87.940691) (xy 151.5495 87.940691) (xy 151.5495 88.059309)\r\n\t\t\t\t(xy 151.557497 88.089153) (xy 151.580202 88.17389) (xy 151.639507 88.276608) (xy 151.639509 88.27661)\r\n\t\t\t\t(xy 151.639511 88.276613) (xy 151.723387 88.360489) (xy 151.723389 88.36049) (xy 151.723391 88.360492)\r\n\t\t\t\t(xy 151.82611 88.419797) (xy 151.826111 88.419797) (xy 151.826114 88.419799) (xy 151.940691 88.4505)\r\n\t\t\t\t(xy 151.940693 88.4505) (xy 152.059307 88.4505) (xy 152.059309 88.4505) (xy 152.173886 88.419799)\r\n\t\t\t\t(xy 152.173888 88.419797) (xy 152.17389 88.419797) (xy 152.276608 88.360492) (xy 152.276608 88.360491)\r\n\t\t\t\t(xy 152.276613 88.360489) (xy 152.360489 88.276613) (xy 152.371581 88.257402) (xy 152.419797 88.17389)\r\n\t\t\t\t(xy 152.419797 88.173888) (xy 152.419799 88.173886) (xy 152.4505 88.059309) (xy 152.4505 87.940691)\r\n\t\t\t\t(xy 152.419799 87.826114) (xy 152.419797 87.826111) (xy 152.419797 87.826109) (xy 152.360492 87.723391)\r\n\t\t\t\t(xy 152.36049 87.723389) (xy 152.360489 87.723387) (xy 152.276613 87.639511) (xy 152.27661 87.639509)\r\n\t\t\t\t(xy 152.276608 87.639507) (xy 152.173889 87.580202) (xy 152.17389 87.580202) (xy 152.160351 87.576574)\r\n\t\t\t\t(xy 152.059309 87.5495) (xy 151.940691 87.5495) (xy 151.899669 87.560492) (xy 151.826109 87.580202)\r\n\t\t\t\t(xy 151.723391 87.639507) (xy 151.639507 87.723391) (xy 151.580202 87.826109) (xy 151.573352 87.851674)\r\n\t\t\t\t(xy 151.5495 87.940691) (xy 144.119558 87.940691) (xy 144.143409 87.851677) (xy 144.1755 87.607927)\r\n\t\t\t\t(xy 144.1755 87.419636) (xy 144.194407 87.361445) (xy 144.243907 87.325481) (xy 144.305093 87.325481)\r\n\t\t\t\t(xy 144.329499 87.337319) (xy 144.342402 87.345941) (xy 144.53358 87.42513) (xy 144.736535 87.4655)\r\n\t\t\t\t(xy 144.736536 87.4655) (xy 144.943464 87.4655) (xy 144.943465 87.4655) (xy 145.14642 87.42513)\r\n\t\t\t\t(xy 145.337598 87.345941) (xy 145.509655 87.230977) (xy 145.655977 87.084655) (xy 145.770941 86.912598)\r\n\t\t\t\t(xy 145.770941 86.912596) (xy 145.772684 86.909989) (xy 145.820734 86.872109) (xy 145.881872 86.869707)\r\n\t\t\t\t(xy 145.932746 86.903699) (xy 145.937316 86.909989) (xy 146.053518 87.0839) (xy 146.054023 87.084655)\r\n\t\t\t\t(xy 146.200345 87.230977) (xy 146.372402 87.345941) (xy 146.56358 87.42513) (xy 146.766535 87.4655)\r\n\t\t\t\t(xy 146.766536 87.4655) (xy 146.973464 87.4655) (xy 146.973465 87.4655) (xy 147.17642 87.42513)\r\n\t\t\t\t(xy 147.367598 87.345941) (xy 147.539655 87.230977) (xy 147.685977 87.084655) (xy 147.800941 86.912598)\r\n\t\t\t\t(xy 147.88013 86.72142) (xy 147.9205 86.518465) (xy 147.9205 86.311535) (xy 147.88013 86.10858)\r\n\t\t\t\t(xy 147.800941 85.917402) (xy 147.685977 85.745345) (xy 147.539655 85.599023) (xy 147.539651 85.59902)\r\n\t\t\t\t(xy 147.367597 85.484058) (xy 147.176418 85.404869) (xy 146.973467 85.3645) (xy 146.973465 85.3645)\r\n\t\t\t\t(xy 146.766535 85.3645) (xy 146.766532 85.3645) (xy 146.563581 85.404869) (xy 146.377597 85.481907)\r\n\t\t\t\t(xy 146.3166 85.486708) (xy 146.269707 85.460447) (xy 144.749951 83.940691) (xy 147.5495 83.940691)\r\n\t\t\t\t(xy 147.5495 84.059309) (xy 147.570989 84.139507) (xy 147.580202 84.17389) (xy 147.639507 84.276608)\r\n\t\t\t\t(xy 147.639509 84.27661) (xy 147.639511 84.276613) (xy 147.723387 84.360489) (xy 147.723389 84.36049)\r\n\t\t\t\t(xy 147.723391 84.360492) (xy 147.82611 84.419797) (xy 147.826111 84.419797) (xy 147.826114 84.419799)\r\n\t\t\t\t(xy 147.940691 84.4505) (xy 147.940693 84.4505) (xy 148.059307 84.4505) (xy 148.059309 84.4505)\r\n\t\t\t\t(xy 148.173886 84.419799) (xy 148.173888 84.419797) (xy 148.17389 84.419797) (xy 148.276608 84.360492)\r\n\t\t\t\t(xy 148.276608 84.360491) (xy 148.276613 84.360489) (xy 148.360489 84.276613) (xy 148.391217 84.223391)\r\n\t\t\t\t(xy 148.419797 84.17389) (xy 148.419797 84.173888) (xy 148.419799 84.173886) (xy 148.4505 84.059309)\r\n\t\t\t\t(xy 148.4505 83.940691) (xy 151.5495 83.940691) (xy 151.5495 84.059309) (xy 151.570989 84.139507)\r\n\t\t\t\t(xy 151.580202 84.17389) (xy 151.639507 84.276608) (xy 151.639509 84.27661) (xy 151.639511 84.276613)\r\n\t\t\t\t(xy 151.723387 84.360489) (xy 151.723389 84.36049) (xy 151.723391 84.360492) (xy 151.82611 84.419797)\r\n\t\t\t\t(' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'xy 151.826111 84.419797) (xy 151.826114 84.419799) (xy 151.940691 84.4505) (xy 151.940693 84.4505)\r\n\t\t\t\t(xy 152.059307 84.4505) (xy 152.059309 84.4505) (xy 152.173886 84.419799) (xy 152.173888 84.419797)\r\n\t\t\t\t(xy 152.17389 84.419797) (xy 152.276608 84.360492) (xy 152.276608 84.360491) (xy 152.276613 84.360489)\r\n\t\t\t\t(xy 152.360489 84.276613) (xy 152.391217 84.223391) (xy 152.419797 84.17389) (xy 152.419797 84.173888)\r\n\t\t\t\t(xy 152.419799 84.173886) (xy 152.4505 84.059309) (xy 152.4505 83.940691) (xy 152.419799 83.826114)\r\n\t\t\t\t(xy 152.419797 83.82611) (xy 152.419797 83.826109) (xy 152.360492 83.723391) (xy 152.36049 83.723389)\r\n\t\t\t\t(xy 152.360489 83.723387) (xy 152.276613 83.639511) (xy 152.27661 83.639509) (xy 152.276608 83.639507)\r\n\t\t\t\t(xy 152.173889 83.580202) (xy 152.17389 83.580202) (xy 152.160351 83.576574) (xy 152.059309 83.5495)\r\n\t\t\t\t(xy 151.940691 83.5495) (xy 151.899669 83.560492) (xy 151.826109 83.580202) (xy 151.723391 83.639507)\r\n\t\t\t\t(xy 151.639507 83.723391) (xy 151.580202 83.826109) (xy 151.576295 83.840691) (xy 151.5495 83.940691)\r\n\t\t\t\t(xy 148.4505 83.940691) (xy 148.419799 83.826114) (xy 148.419797 83.82611) (xy 148.419797 83.826109)\r\n\t\t\t\t(xy 148.360492 83.723391) (xy 148.36049 83.723389) (xy 148.360489 83.723387) (xy 148.276613 83.639511)\r\n\t\t\t\t(xy 148.27661 83.639509) (xy 148.276608 83.639507) (xy 148.173889 83.580202) (xy 148.17389 83.580202)\r\n\t\t\t\t(xy 148.160351 83.576574) (xy 148.059309 83.5495) (xy 147.940691 83.5495) (xy 147.899669 83.560492)\r\n\t\t\t\t(xy 147.826109 83.580202) (xy 147.723391 83.639507) (xy 147.639507 83.723391) (xy 147.580202 83.826109)\r\n\t\t\t\t(xy 147.576295 83.840691) (xy 147.5495 83.940691) (xy 144.749951 83.940691) (xy 144.635369 83.826109)\r\n\t\t\t\t(xy 142.896897 82.087636) (xy 142.896895 82.087635) (xy 142.896894 82.087634) (xy 142.804829 82.0495)\r\n\t\t\t\t(xy 142.804828 82.0495) (xy 110.550172 82.0495) (xy 110.550171 82.0495) (xy 110.458103 82.087635)\r\n\t\t\t\t(xy 110.387635 82.158102) (xy 110.387636 82.158103) (xy 110.387635 82.158104) (xy 106.825234 85.720504)\r\n\t\t\t\t(xy 106.770717 85.748281) (xy 106.75523 85.7495) (xy 106.640691 85.7495) (xy 106.570567 85.768289)\r\n\t\t\t\t(xy 106.526109 85.780202) (xy 106.423391 85.839507) (xy 106.339507 85.923391) (xy 106.280202 86.026109)\r\n\t\t\t\t(xy 106.267934 86.071893) (xy 106.2495 86.140691) (xy 106.2495 86.259309) (xy 106.272544 86.345308)\r\n\t\t\t\t(xy 106.280202 86.37389) (xy 106.339507 86.476608) (xy 106.339509 86.47661) (xy 106.339511 86.476613)\r\n\t\t\t\t(xy 106.423387 86.560489) (xy 106.423389 86.56049) (xy 106.423391 86.560492) (xy 106.52611 86.619797)\r\n\t\t\t\t(xy 106.526108 86.619797) (xy 106.526112 86.619798) (xy 106.526114 86.619799) (xy 106.573432 86.632478)\r\n\t\t\t\t(xy 106.624745 86.665801) (xy 106.646672 86.722923) (xy 106.643435 86.753724) (xy 106.635373 86.783813)\r\n\t\t\t\t(xy 106.635373 86.902431) (xy 106.656023 86.979497) (xy 106.666075 87.017012) (xy 106.72538 87.11973)\r\n\t\t\t\t(xy 106.725382 87.119732) (xy 106.725384 87.119735) (xy 106.786147 87.180498) (xy 106.813923 87.235013)\r\n\t\t\t\t(xy 106.804352 87.295445) (xy 106.761087 87.33871) (xy 106.716142 87.3495) (xy 106.172268 87.3495)\r\n\t\t\t\t(xy 106.114077 87.330593) (xy 106.078113 87.281093) (xy 106.076641 87.224877) (xy 106.080565 87.210234)\r\n\t\t\t\t(xy 106.107608 87.109309) (xy 106.107608 86.990691) (xy 106.076907 86.876114) (xy 106.076905 86.876111)\r\n\t\t\t\t(xy 106.076905 86.876109) (xy 106.0176 86.773391) (xy 106.017598 86.773389) (xy 106.017597 86.773387)\r\n\t\t\t\t(xy 105.933721 86.689511) (xy 105.933718 86.689509) (xy 105.933716 86.689507) (xy 105.830997 86.630202)\r\n\t\t\t\t(xy 105.830998 86.630202) (xy 105.792173 86.619799) (xy 105.716417 86.5995) (xy 105.597799 86.5995)\r\n\t\t\t\t(xy 105.527675 86.618289) (xy 105.483217 86.630202) (xy 105.477224 86.632685) (xy 105.476425 86.630758)\r\n\t\t\t\t(xy 105.425799 86.641512) (xy 105.369907 86.616619) (xy 105.350426 86.59256) (xy 105.310489 86.523387)\r\n\t\t\t\t(xy 105.226613 86.439511) (xy 105.22661 86.439509) (xy 105.226608 86.439507) (xy 105.123889 86.380202)\r\n\t\t\t\t(xy 105.12389 86.380202) (xy 105.100318 86.373886) (xy 105.009309 86.3495) (xy 104.890691 86.3495)\r\n\t\t\t\t(xy 104.820567 86.368289) (xy 104.776109 86.380202) (xy 104.673391 86.439507) (xy 104.589507 86.523391)\r\n\t\t\t\t(xy 104.530202 86.626109) (xy 104.515897 86.679496) (xy 104.4995 86.740691) (xy 104.4995 86.859309)\r\n\t\t\t\t(xy 104.51308 86.909989) (xy 104.530202 86.97389) (xy 104.589507 87.076608) (xy 104.589509 87.07661)\r\n\t\t\t\t(xy 104.589511 87.076613) (xy 104.673387 87.160489) (xy 104.673389 87.16049) (xy 104.680791 87.164764)\r\n\t\t\t\t(xy 104.721731 87.210234) (xy 104.728126 87.271084) (xy 104.697533 87.324072) (xy 104.641637 87.348958)\r\n\t\t\t\t(xy 104.63129 87.3495) (xy 91.64983 87.3495) (xy 91.649828 87.349499) (xy 91.550173 87.349499) (xy 91.530242 87.357754)\r\n\t\t\t\t(xy 91.513722 87.358771) (xy 91.499339 87.355056) (xy 91.484527 87.356222) (xy 91.482021 87.355585)\r\n\t\t\t\t(xy 91.459311 87.3495) (xy 91.459309 87.3495) (xy 91.340691 87.3495) (xy 91.270567 87.368289) (xy 91.226109 87.380202)\r\n\t\t\t\t(xy 91.123391 87.439507) (xy 91.039507 87.523391) (xy 90.980202 87.626109) (xy 90.980201 87.626114)\r\n\t\t\t\t(xy 90.9495 87.740691) (xy 84.37048 87.740691) (xy 84.360492 87.723391) (xy 84.36049 87.723389)\r\n\t\t\t\t(xy 84.360489 87.723387) (xy 84.276613 87.639511) (xy 84.27661 87.639509) (xy 84.276608 87.639507)\r\n\t\t\t\t(xy 84.173889 87.580202) (xy 84.17389 87.580202) (xy 84.160351 87.576574) (xy 84.059309 87.5495)\r\n\t\t\t\t(xy 83.940691 87.5495) (xy 83.899669 87.560492) (xy 83.826109 87.580202) (xy 83.723391 87.639507)\r\n\t\t\t\t(xy 83.639507 87.723391) (xy 83.580202 87.826109) (xy 83.573352 87.851674) (xy 83.5495 87.940691)\r\n\t\t\t\t(xy 76.4505 87.940691) (xy 76.419799 87.826114) (xy 76.419797 87.826111) (xy 76.419797 87.826109)\r\n\t\t\t\t(xy 76.360492 87.723391) (xy 76.36049 87.723389) (xy 76.360489 87.723387) (xy 76.276613 87.639511)\r\n\t\t\t\t(xy 76.27661 87.639509) (xy 76.276608 87.639507) (xy 76.173889 87.580202) (xy 76.17389 87.580202)\r\n\t\t\t\t(xy 76.160351 87.576574) (xy 76.059309 87.5495) (xy 75.940691 87.5495) (xy 75.899669 87.560492)\r\n\t\t\t\t(xy 75.826109 87.580202) (xy 75.723391 87.639507) (xy 75.639507 87.723391) (xy 75.580202 87.826109)\r\n\t\t\t\t(xy 75.573352 87.851674) (xy 75.5495 87.940691) (xy 74.0005 87.940691) (xy 74.0005 83.940691) (xy 83.5495 83.940691)\r\n\t\t\t\t(xy 83.5495 84.059309) (xy 83.570989 84.139507) (xy 83.580202 84.17389) (xy 83.639507 84.276608)\r\n\t\t\t\t(xy 83.639509 84.27661) (xy 83.639511 84.276613) (xy 83.723387 84.360489) (xy 83.723389 84.36049)\r\n\t\t\t\t(xy 83.723391 84.360492) (xy 83.82611 84.419797) (xy 83.826111 84.419797) (xy 83.826114 84.419799)\r\n\t\t\t\t(xy 83.940691 84.4505) (xy 83.940693 84.4505) (xy 84.059307 84.4505) (xy 84.059309 84.4505) (xy 84.173886 84.419799)\r\n\t\t\t\t(xy 84.173888 84.419797) (xy 84.17389 84.419797) (xy 84.276608 84.360492) (xy 84.276608 84.360491)\r\n\t\t\t\t(xy 84.276613 84.360489) (xy 84.360489 84.276613) (xy 84.391217 84.223391) (xy 84.419797 84.17389)\r\n\t\t\t\t(xy 84.419797 84.173888) (xy 84.419799 84.173886) (xy 84.4505 84.059309) (xy 84.4505 83.940691)\r\n\t\t\t\t(xy 87.5495 83.940691) (xy 87.5495 84.059309) (xy 87.570989 84.139507) (xy 87.580202 84.17389) (xy 87.639507 84.276608)\r\n\t\t\t\t(xy 87.639509 84.27661) (xy 87.639511 84.276613) (xy 87.723387 84.360489) (xy 87.723389 84.36049)\r\n\t\t\t\t(xy 87.723391 84.360492) (xy 87.82611 84.419797) (xy 87.826111 84.419797) (xy 87.826114 84.419799)\r\n\t\t\t\t(xy 87.940691 84.4505) (xy 87.940693 84.4505) (xy 88.059307 84.4505) (xy 88.059309 84.4505) (xy 88.173886 84.419799)\r\n\t\t\t\t(xy 88.173888 84.419797) (xy 88.17389 84.419797) (xy 88.276608 84.360492) (xy 88.276608 84.360491)\r\n\t\t\t\t(xy 88.276613 84.360489) (xy 88.360489 84.276613) (xy 88.391217 84.223391) (xy 88.419797 84.17389)\r\n\t\t\t\t(xy 88.419797 84.173888) (xy 88.419799 84.173886) (xy 88.4505 84.059309) (xy 88.4505 83.940691)\r\n\t\t\t\t(xy 88.423705 83.840691) (xy 89.5495 83.840691) (xy 89.5495 83.959309) (xy 89.573667 84.0495) (xy 89.580202 84.07389)\r\n\t\t\t\t(xy 89.639507 84.176608) (xy 89.639509 84.17661) (xy 89.639511 84.176613) (xy 89.723387 84.260489)\r\n\t\t\t\t(xy 89.723389 84.26049) (xy 89.723391 84.260492) (xy 89.82611 84.319797) (xy 89.826111 84.319797)\r\n\t\t\t\t(xy 89.826114 84.319799) (xy 89.940691 84.3505) (xy 89.940693 84.3505) (xy 90.059307 84.3505) (xy 90.059309 84.3505)\r\n\t\t\t\t(xy 90.173886 84.319799) (' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'xy 90.173888 84.319797) (xy 90.17389 84.319797) (xy 90.276608 84.260492)\r\n\t\t\t\t(xy 90.276608 84.260491) (xy 90.276613 84.260489) (xy 90.360489 84.176613) (xy 90.362061 84.17389)\r\n\t\t\t\t(xy 90.419797 84.07389) (xy 90.419797 84.073888) (xy 90.419799 84.073886) (xy 90.4505 83.959309)\r\n\t\t\t\t(xy 90.4505 83.940691) (xy 95.5495 83.940691) (xy 95.5495 84.059309) (xy 95.570989 84.139507) (xy 95.580202 84.17389)\r\n\t\t\t\t(xy 95.639507 84.276608) (xy 95.639509 84.27661) (xy 95.639511 84.276613) (xy 95.723387 84.360489)\r\n\t\t\t\t(xy 95.723389 84.36049) (xy 95.723391 84.360492) (xy 95.82611 84.419797) (xy 95.826111 84.419797)\r\n\t\t\t\t(xy 95.826114 84.419799) (xy 95.940691 84.4505) (xy 95.940693 84.4505) (xy 96.059307 84.4505) (xy 96.059309 84.4505)\r\n\t\t\t\t(xy 96.173886 84.419799) (xy 96.173888 84.419797) (xy 96.17389 84.419797) (xy 96.276608 84.360492)\r\n\t\t\t\t(xy 96.276608 84.360491) (xy 96.276613 84.360489) (xy 96.360489 84.276613) (xy 96.391217 84.223391)\r\n\t\t\t\t(xy 96.419797 84.17389) (xy 96.419797 84.173888) (xy 96.419799 84.173886) (xy 96.4505 84.059309)\r\n\t\t\t\t(xy 96.4505 83.940691) (xy 99.5495 83.940691) (xy 99.5495 84.059309) (xy 99.570989 84.139507) (xy 99.580202 84.17389)\r\n\t\t\t\t(xy 99.639507 84.276608) (xy 99.639509 84.27661) (xy 99.639511 84.276613) (xy 99.723387 84.360489)\r\n\t\t\t\t(xy 99.723389 84.36049) (xy 99.723391 84.360492) (xy 99.82611 84.419797) (xy 99.826111 84.419797)\r\n\t\t\t\t(xy 99.826114 84.419799) (xy 99.940691 84.4505) (xy 99.940693 84.4505) (xy 100.059307 84.4505) (xy 100.059309 84.4505)\r\n\t\t\t\t(xy 100.095916 84.440691) (xy 105.7495 84.440691) (xy 105.7495 84.559309) (xy 105.756371 84.584951)\r\n\t\t\t\t(xy 105.780202 84.67389) (xy 105.839507 84.776608) (xy 105.839509 84.77661) (xy 105.839511 84.776613)\r\n\t\t\t\t(xy 105.923387 84.860489) (xy 105.923389 84.86049) (xy 105.923391 84.860492) (xy 106.02611 84.919797)\r\n\t\t\t\t(xy 106.026111 84.919797) (xy 106.026114 84.919799) (xy 106.140691 84.9505) (xy 106.140693 84.9505)\r\n\t\t\t\t(xy 106.259307 84.9505) (xy 106.259309 84.9505) (xy 106.373886 84.919799) (xy 106.373888 84.919797)\r\n\t\t\t\t(xy 106.37389 84.919797) (xy 106.476608 84.860492) (xy 106.476608 84.860491) (xy 106.476613 84.860489)\r\n\t\t\t\t(xy 106.560489 84.776613) (xy 106.619799 84.673886) (xy 106.6505 84.559309) (xy 106.6505 84.440691)\r\n\t\t\t\t(xy 106.619799 84.326114) (xy 106.619797 84.326111) (xy 106.619797 84.326109) (xy 106.560492 84.223391)\r\n\t\t\t\t(xy 106.56049 84.223389) (xy 106.560489 84.223387) (xy 106.476613 84.139511) (xy 106.47661 84.139509)\r\n\t\t\t\t(xy 106.476608 84.139507) (xy 106.373889 84.080202) (xy 106.37389 84.080202) (xy 106.350318 84.073886)\r\n\t\t\t\t(xy 106.259309 84.0495) (xy 106.140691 84.0495) (xy 106.104084 84.059309) (xy 106.026109 84.080202)\r\n\t\t\t\t(xy 105.923391 84.139507) (xy 105.839507 84.223391) (xy 105.780202 84.326109) (xy 105.780201 84.326114)\r\n\t\t\t\t(xy 105.7495 84.440691) (xy 100.095916 84.440691) (xy 100.173886 84.419799) (xy 100.173888 84.419797)\r\n\t\t\t\t(xy 100.17389 84.419797) (xy 100.276608 84.360492) (xy 100.276608 84.360491) (xy 100.276613 84.360489)\r\n\t\t\t\t(xy 100.360489 84.276613) (xy 100.391217 84.223391) (xy 100.419797 84.17389) (xy 100.419797 84.173888)\r\n\t\t\t\t(xy 100.419799 84.173886) (xy 100.4505 84.059309) (xy 100.4505 83.940691) (xy 100.419799 83.826114)\r\n\t\t\t\t(xy 100.419797 83.82611) (xy 100.419797 83.826109) (xy 100.360492 83.723391) (xy 100.36049 83.723389)\r\n\t\t\t\t(xy 100.360489 83.723387) (xy 100.276613 83.639511) (xy 100.27661 83.639509) (xy 100.276608 83.639507)\r\n\t\t\t\t(xy 100.173889 83.580202) (xy 100.17389 83.580202) (xy 100.160351 83.576574) (xy 100.059309 83.5495)\r\n\t\t\t\t(xy 99.940691 83.5495) (xy 99.899669 83.560492) (xy 99.826109 83.580202) (xy 99.723391 83.639507)\r\n\t\t\t\t(xy 99.639507 83.723391) (xy 99.580202 83.826109) (xy 99.576295 83.840691) (xy 99.5495 83.940691)\r\n\t\t\t\t(xy 96.4505 83.940691) (xy 96.419799 83.826114) (xy 96.419797 83.82611) (xy 96.419797 83.826109)\r\n\t\t\t\t(xy 96.360492 83.723391) (xy 96.36049 83.723389) (xy 96.360489 83.723387) (xy 96.276613 83.639511)\r\n\t\t\t\t(xy 96.27661 83.639509) (xy 96.276608 83.639507) (xy 96.173889 83.580202) (xy 96.17389 83.580202)\r\n\t\t\t\t(xy 96.160351 83.576574) (xy 96.059309 83.5495) (xy 95.940691 83.5495) (xy 95.899669 83.560492)\r\n\t\t\t\t(xy 95.826109 83.580202) (xy 95.723391 83.639507) (xy 95.639507 83.723391) (xy 95.580202 83.826109)\r\n\t\t\t\t(xy 95.576295 83.840691) (xy 95.5495 83.940691) (xy 90.4505 83.940691) (xy 90.4505 83.840691) (xy 90.419799 83.726114)\r\n\t\t\t\t(xy 90.419797 83.726111) (xy 90.419797 83.726109) (xy 90.360492 83.623391) (xy 90.36049 83.623389)\r\n\t\t\t\t(xy 90.360489 83.623387) (xy 90.276613 83.539511) (xy 90.27661 83.539509) (xy 90.276608 83.539507)\r\n\t\t\t\t(xy 90.173889 83.480202) (xy 90.17389 83.480202) (xy 90.160351 83.476574) (xy 90.059309 83.4495)\r\n\t\t\t\t(xy 89.940691 83.4495) (xy 89.870567 83.468289) (xy 89.826109 83.480202) (xy 89.723391 83.539507)\r\n\t\t\t\t(xy 89.639507 83.623391) (xy 89.580202 83.726109) (xy 89.569308 83.766767) (xy 89.5495 83.840691)\r\n\t\t\t\t(xy 88.423705 83.840691) (xy 88.419799 83.826114) (xy 88.419796 83.826109) (xy 88.360492 83.723391)\r\n\t\t\t\t(xy 88.36049 83.723389) (xy 88.360489 83.723387) (xy 88.276613 83.639511) (xy 88.27661 83.639509)\r\n\t\t\t\t(xy 88.276608 83.639507) (xy 88.173889 83.580202) (xy 88.17389 83.580202) (xy 88.160351 83.576574)\r\n\t\t\t\t(xy 88.059309 83.5495) (xy 87.940691 83.5495) (xy 87.899669 83.560492) (xy 87.826109 83.580202)\r\n\t\t\t\t(xy 87.723391 83.639507) (xy 87.639507 83.723391) (xy 87.580202 83.826109) (xy 87.576295 83.840691)\r\n\t\t\t\t(xy 87.5495 83.940691) (xy 84.4505 83.940691) (xy 84.419799 83.826114) (xy 84.419797 83.82611) (xy 84.419797 83.826109)\r\n\t\t\t\t(xy 84.360492 83.723391) (xy 84.36049 83.723389) (xy 84.360489 83.723387) (xy 84.276613 83.639511)\r\n\t\t\t\t(xy 84.27661 83.639509) (xy 84.276608 83.639507) (xy 84.173889 83.580202) (xy 84.17389 83.580202)\r\n\t\t\t\t(xy 84.160351 83.576574) (xy 84.059309 83.5495) (xy 83.940691 83.5495) (xy 83.899669 83.560492)\r\n\t\t\t\t(xy 83.826109 83.580202) (xy 83.723391 83.639507) (xy 83.639507 83.723391) (xy 83.580202 83.826109)\r\n\t\t\t\t(xy 83.576295 83.840691) (xy 83.5495 83.940691) (xy 74.0005 83.940691) (xy 74.0005 81.910172) (xy 80.0995 81.910172)\r\n\t\t\t\t(xy 80.0995 83.639827) (xy 80.108232 83.68372) (xy 80.108233 83.683722) (xy 80.141496 83.733504)\r\n\t\t\t\t(xy 80.191278 83.766767) (xy 80.202327 83.768964) (xy 80.235172 83.775499) (xy 80.235178 83.775499)\r\n\t\t\t\t(xy 80.23518 83.7755) (xy 80.235181 83.7755) (xy 81.964819 83.7755) (xy 81.96482 83.7755) (xy 81.964821 83.775499)\r\n\t\t\t\t(xy 81.964827 83.775499) (xy 81.986623 83.771162) (xy 82.008722 83.766767) (xy 82.058504 83.733504)\r\n\t\t\t\t(xy 82.091767 83.683722) (xy 82.1005 83.63982) (xy 82.1005 82.240691) (xy 91.5495 82.240691) (xy 91.5495 82.359309)\r\n\t\t\t\t(xy 91.573935 82.4505) (xy 91.580202 82.47389) (xy 91.639507 82.576608) (xy 91.639509 82.57661)\r\n\t\t\t\t(xy 91.639511 82.576613) (xy 91.723387 82.660489) (xy 91.723389 82.66049) (xy 91.723391 82.660492)\r\n\t\t\t\t(xy 91.82611 82.719797) (xy 91.826111 82.719797) (xy 91.826114 82.719799) (xy 91.940691 82.7505)\r\n\t\t\t\t(xy 91.940693 82.7505) (xy 92.059307 82.7505) (xy 92.059309 82.7505) (xy 92.173886 82.719799) (xy 92.173888 82.719797)\r\n\t\t\t\t(xy 92.17389 82.719797) (xy 92.276608 82.660492) (xy 92.276608 82.660491) (xy 92.276613 82.660489)\r\n\t\t\t\t(xy 92.360489 82.576613) (xy 92.360492 82.576608) (xy 92.419797 82.47389) (xy 92.419797 82.473888)\r\n\t\t\t\t(xy 92.419799 82.473886) (xy 92.4505 82.359309) (xy 92.4505 82.240691) (xy 92.419799 82.126114)\r\n\t\t\t\t(xy 92.419797 82.126111) (xy 92.419797 82.126109) (xy 92.360492 82.023391) (xy 92.36049 82.023389)\r\n\t\t\t\t(xy 92.360489 82.023387) (xy 92.276613 81.939511) (xy 92.27661 81.939509) (xy 92.276608 81.939507)\r\n\t\t\t\t(xy 92.173889 81.880202) (xy 92.17389 81.880202) (xy 92.133602 81.869407) (xy 92.059309 81.8495)\r\n\t\t\t\t(xy 91.940691 81.8495) (xy 91.870567 81.868289) (xy 91.826109 81.880202) (xy 91.723391 81.939507)\r\n\t\t\t\t(xy 91.639507 82.023391) (xy 91.580202 82.126109) (xy 91.571629 82.158104) (xy 91.5495 82.240691)\r\n\t\t\t\t(xy 82.1005 82.240691) (xy 82.1005 81.91018) (xy 82.100499 81.910178) (xy 82.100499 81.910172) (xy 82.091767 81.866279)\r\n\t\t\t\t(xy 82.091765 81.866275) (xy 82.091323 81.865614) (xy 82.058504 81.816496) (xy 82.036366 81.801704)\r\n\t\t\t\t(xy 82.008724 81.783234) (xy 82.00872 81.783232) (xy 81.964827 81.7745) (xy 81.96482' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' 81.7745) (xy 80.23518 81.7745)\r\n\t\t\t\t(xy 80.235172 81.7745) (xy 80.191279 81.783232) (xy 80.191275 81.783234) (xy 80.141498 81.816494)\r\n\t\t\t\t(xy 80.141494 81.816498) (xy 80.108234 81.866275) (xy 80.108232 81.866279) (xy 80.0995 81.910172)\r\n\t\t\t\t(xy 74.0005 81.910172) (xy 74.0005 81.340691) (xy 97.6495 81.340691) (xy 97.6495 81.459309) (xy 97.676574 81.560351)\r\n\t\t\t\t(xy 97.680202 81.57389) (xy 97.739507 81.676608) (xy 97.739509 81.67661) (xy 97.739511 81.676613)\r\n\t\t\t\t(xy 97.823387 81.760489) (xy 97.823389 81.76049) (xy 97.823391 81.760492) (xy 97.92611 81.819797)\r\n\t\t\t\t(xy 97.926111 81.819797) (xy 97.926114 81.819799) (xy 98.040691 81.8505) (xy 98.040693 81.8505)\r\n\t\t\t\t(xy 98.1505 81.8505) (xy 98.208691 81.869407) (xy 98.244655 81.918907) (xy 98.2495 81.9495) (xy 98.2495 82.059309)\r\n\t\t\t\t(xy 98.275972 82.158102) (xy 98.280202 82.17389) (xy 98.339507 82.276608) (xy 98.339509 82.27661)\r\n\t\t\t\t(xy 98.339511 82.276613) (xy 98.423387 82.360489) (xy 98.423389 82.36049) (xy 98.423391 82.360492)\r\n\t\t\t\t(xy 98.52611 82.419797) (xy 98.526111 82.419797) (xy 98.526114 82.419799) (xy 98.640691 82.4505)\r\n\t\t\t\t(xy 98.640693 82.4505) (xy 98.759307 82.4505) (xy 98.759309 82.4505) (xy 98.873886 82.419799) (xy 98.873888 82.419797)\r\n\t\t\t\t(xy 98.87389 82.419797) (xy 98.976608 82.360492) (xy 98.976608 82.360491) (xy 98.976613 82.360489)\r\n\t\t\t\t(xy 99.060489 82.276613) (xy 99.061491 82.274877) (xy 99.119797 82.17389) (xy 99.119797 82.173888)\r\n\t\t\t\t(xy 99.119799 82.173886) (xy 99.146596 82.073875) (xy 99.17992 82.022562) (xy 99.237042 82.000636)\r\n\t\t\t\t(xy 99.242223 82.0005) (xy 105.205231 82.0005) (xy 105.263422 82.019407) (xy 105.275235 82.029496)\r\n\t\t\t\t(xy 106.108103 82.862364) (xy 106.108104 82.862364) (xy 106.108105 82.862365) (xy 106.200171 82.9005)\r\n\t\t\t\t(xy 106.200172 82.9005) (xy 107.477647 82.9005) (xy 107.535703 82.876451) (xy 107.569715 82.862364)\r\n\t\t\t\t(xy 109.359851 81.072228) (xy 109.397987 80.980159) (xy 109.397987 80.892255) (xy 109.416894 80.834064)\r\n\t\t\t\t(xy 109.426983 80.822251) (xy 110.308543 79.940691) (xy 123.5495 79.940691) (xy 123.5495 80.059309)\r\n\t\t\t\t(xy 123.570173 80.13646) (xy 123.580202 80.17389) (xy 123.639507 80.276608) (xy 123.639509 80.27661)\r\n\t\t\t\t(xy 123.639511 80.276613) (xy 123.723387 80.360489) (xy 123.723389 80.36049) (xy 123.723391 80.360492)\r\n\t\t\t\t(xy 123.82611 80.419797) (xy 123.826111 80.419797) (xy 123.826114 80.419799) (xy 123.940691 80.4505)\r\n\t\t\t\t(xy 123.940693 80.4505) (xy 124.059307 80.4505) (xy 124.059309 80.4505) (xy 124.173886 80.419799)\r\n\t\t\t\t(xy 124.173888 80.419797) (xy 124.17389 80.419797) (xy 124.276608 80.360492) (xy 124.276608 80.360491)\r\n\t\t\t\t(xy 124.276613 80.360489) (xy 124.360489 80.276613) (xy 124.390633 80.224403) (xy 124.419797 80.17389)\r\n\t\t\t\t(xy 124.419797 80.173888) (xy 124.419799 80.173886) (xy 124.4505 80.059309) (xy 124.4505 79.940691)\r\n\t\t\t\t(xy 127.5495 79.940691) (xy 127.5495 80.059309) (xy 127.570173 80.13646) (xy 127.580202 80.17389)\r\n\t\t\t\t(xy 127.639507 80.276608) (xy 127.639509 80.27661) (xy 127.639511 80.276613) (xy 127.723387 80.360489)\r\n\t\t\t\t(xy 127.723389 80.36049) (xy 127.723391 80.360492) (xy 127.82611 80.419797) (xy 127.826111 80.419797)\r\n\t\t\t\t(xy 127.826114 80.419799) (xy 127.940691 80.4505) (xy 127.940693 80.4505) (xy 128.059307 80.4505)\r\n\t\t\t\t(xy 128.059309 80.4505) (xy 128.173886 80.419799) (xy 128.173888 80.419797) (xy 128.17389 80.419797)\r\n\t\t\t\t(xy 128.276608 80.360492) (xy 128.276608 80.360491) (xy 128.276613 80.360489) (xy 128.360489 80.276613)\r\n\t\t\t\t(xy 128.390633 80.224403) (xy 128.419797 80.17389) (xy 128.419797 80.173888) (xy 128.419799 80.173886)\r\n\t\t\t\t(xy 128.4505 80.059309) (xy 128.4505 79.940691) (xy 131.5495 79.940691) (xy 131.5495 80.059309)\r\n\t\t\t\t(xy 131.570173 80.13646) (xy 131.580202 80.17389) (xy 131.639507 80.276608) (xy 131.639509 80.27661)\r\n\t\t\t\t(xy 131.639511 80.276613) (xy 131.723387 80.360489) (xy 131.723389 80.36049) (xy 131.723391 80.360492)\r\n\t\t\t\t(xy 131.82611 80.419797) (xy 131.826111 80.419797) (xy 131.826114 80.419799) (xy 131.940691 80.4505)\r\n\t\t\t\t(xy 131.940693 80.4505) (xy 132.059307 80.4505) (xy 132.059309 80.4505) (xy 132.173886 80.419799)\r\n\t\t\t\t(xy 132.173888 80.419797) (xy 132.17389 80.419797) (xy 132.276608 80.360492) (xy 132.276608 80.360491)\r\n\t\t\t\t(xy 132.276613 80.360489) (xy 132.360489 80.276613) (xy 132.390633 80.224403) (xy 132.419797 80.17389)\r\n\t\t\t\t(xy 132.419797 80.173888) (xy 132.419799 80.173886) (xy 132.4505 80.059309) (xy 132.4505 79.940691)\r\n\t\t\t\t(xy 135.5495 79.940691) (xy 135.5495 80.059309) (xy 135.570173 80.13646) (xy 135.580202 80.17389)\r\n\t\t\t\t(xy 135.639507 80.276608) (xy 135.639509 80.27661) (xy 135.639511 80.276613) (xy 135.723387 80.360489)\r\n\t\t\t\t(xy 135.723389 80.36049) (xy 135.723391 80.360492) (xy 135.82611 80.419797) (xy 135.826111 80.419797)\r\n\t\t\t\t(xy 135.826114 80.419799) (xy 135.940691 80.4505) (xy 135.940693 80.4505) (xy 136.059307 80.4505)\r\n\t\t\t\t(xy 136.059309 80.4505) (xy 136.173886 80.419799) (xy 136.173888 80.419797) (xy 136.17389 80.419797)\r\n\t\t\t\t(xy 136.276608 80.360492) (xy 136.276608 80.360491) (xy 136.276613 80.360489) (xy 136.360489 80.276613)\r\n\t\t\t\t(xy 136.390633 80.224403) (xy 136.419797 80.17389) (xy 136.419797 80.173888) (xy 136.419799 80.173886)\r\n\t\t\t\t(xy 136.4505 80.059309) (xy 136.4505 79.940691) (xy 139.5495 79.940691) (xy 139.5495 80.059309)\r\n\t\t\t\t(xy 139.570173 80.13646) (xy 139.580202 80.17389) (xy 139.639507 80.276608) (xy 139.639509 80.27661)\r\n\t\t\t\t(xy 139.639511 80.276613) (xy 139.723387 80.360489) (xy 139.723389 80.36049) (xy 139.723391 80.360492)\r\n\t\t\t\t(xy 139.82611 80.419797) (xy 139.826111 80.419797) (xy 139.826114 80.419799) (xy 139.940691 80.4505)\r\n\t\t\t\t(xy 139.940693 80.4505) (xy 140.059307 80.4505) (xy 140.059309 80.4505) (xy 140.173886 80.419799)\r\n\t\t\t\t(xy 140.173888 80.419797) (xy 140.17389 80.419797) (xy 140.276608 80.360492) (xy 140.276608 80.360491)\r\n\t\t\t\t(xy 140.276613 80.360489) (xy 140.360489 80.276613) (xy 140.390633 80.224403) (xy 140.419797 80.17389)\r\n\t\t\t\t(xy 140.419797 80.173888) (xy 140.419799 80.173886) (xy 140.4505 80.059309) (xy 140.4505 79.940691)\r\n\t\t\t\t(xy 143.5495 79.940691) (xy 143.5495 80.059309) (xy 143.570173 80.13646) (xy 143.580202 80.17389)\r\n\t\t\t\t(xy 143.639507 80.276608) (xy 143.639509 80.27661) (xy 143.639511 80.276613) (xy 143.723387 80.360489)\r\n\t\t\t\t(xy 143.723389 80.36049) (xy 143.723391 80.360492) (xy 143.82611 80.419797) (xy 143.826111 80.419797)\r\n\t\t\t\t(xy 143.826114 80.419799) (xy 143.940691 80.4505) (xy 143.940693 80.4505) (xy 144.059307 80.4505)\r\n\t\t\t\t(xy 144.059309 80.4505) (xy 144.173886 80.419799) (xy 144.173888 80.419797) (xy 144.17389 80.419797)\r\n\t\t\t\t(xy 144.276608 80.360492) (xy 144.276608 80.360491) (xy 144.276613 80.360489) (xy 144.360489 80.276613)\r\n\t\t\t\t(xy 144.390633 80.224403) (xy 144.419797 80.17389) (xy 144.419797 80.173888) (xy 144.419799 80.173886)\r\n\t\t\t\t(xy 144.4505 80.059309) (xy 144.4505 79.940691) (xy 147.5495 79.940691) (xy 147.5495 80.059309)\r\n\t\t\t\t(xy 147.570173 80.13646) (xy 147.580202 80.17389) (xy 147.639507 80.276608) (xy 147.639509 80.27661)\r\n\t\t\t\t(xy 147.639511 80.276613) (xy 147.723387 80.360489) (xy 147.723389 80.36049) (xy 147.723391 80.360492)\r\n\t\t\t\t(xy 147.82611 80.419797) (xy 147.826111 80.419797) (xy 147.826114 80.419799) (xy 147.940691 80.4505)\r\n\t\t\t\t(xy 147.940693 80.4505) (xy 148.059307 80.4505) (xy 148.059309 80.4505) (xy 148.173886 80.419799)\r\n\t\t\t\t(xy 148.173888 80.419797) (xy 148.17389 80.419797) (xy 148.276608 80.360492) (xy 148.276608 80.360491)\r\n\t\t\t\t(xy 148.276613 80.360489) (xy 148.360489 80.276613) (xy 148.390633 80.224403) (xy 148.419797 80.17389)\r\n\t\t\t\t(xy 148.419797 80.173888) (xy 148.419799 80.173886) (xy 148.4505 80.059309) (xy 148.4505 79.940691)\r\n\t\t\t\t(xy 151.5495 79.940691) (xy 151.5495 80.059309) (xy 151.570173 80.13646) (xy 151.580202 80.17389)\r\n\t\t\t\t(xy 151.639507 80.276608) (xy 151.639509 80.27661) (xy 151.639511 80.276613) (xy 151.723387 80.360489)\r\n\t\t\t\t(xy 151.723389 80.36049) (xy 151.723391 80.360492) (xy 151.82611 80.419797) (xy 151.826111 80.419797)\r\n\t\t\t\t(xy 151.826114 80.419799) (xy 151.940691 80.4505) (xy 151.940693 80.4505) (xy 152.059307 80.4505)\r\n\t\t\t\t(xy 152.059309 80.4505) (xy 152.173886 80.419799) (xy 152.173888 80.419797) (xy 152.17389 80.419797)\r\n\t\t\t\t(xy 152.276608 80.360492) (xy 152.276608 80.360491) (xy 152.276613 80.360489) (xy 152.3' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'60489 80.276613)\r\n\t\t\t\t(xy 152.390633 80.224403) (xy 152.419797 80.17389) (xy 152.419797 80.173888) (xy 152.419799 80.173886)\r\n\t\t\t\t(xy 152.4505 80.059309) (xy 152.4505 79.940691) (xy 152.419799 79.826114) (xy 152.419797 79.826111)\r\n\t\t\t\t(xy 152.419797 79.826109) (xy 152.360492 79.723391) (xy 152.36049 79.723389) (xy 152.360489 79.723387)\r\n\t\t\t\t(xy 152.276613 79.639511) (xy 152.27661 79.639509) (xy 152.276608 79.639507) (xy 152.173889 79.580202)\r\n\t\t\t\t(xy 152.17389 79.580202) (xy 152.150318 79.573886) (xy 152.059309 79.5495) (xy 151.940691 79.5495)\r\n\t\t\t\t(xy 151.904084 79.559309) (xy 151.826109 79.580202) (xy 151.723391 79.639507) (xy 151.639507 79.723391)\r\n\t\t\t\t(xy 151.580202 79.826109) (xy 151.565897 79.879496) (xy 151.5495 79.940691) (xy 148.4505 79.940691)\r\n\t\t\t\t(xy 148.419799 79.826114) (xy 148.419797 79.826111) (xy 148.419797 79.826109) (xy 148.360492 79.723391)\r\n\t\t\t\t(xy 148.36049 79.723389) (xy 148.360489 79.723387) (xy 148.276613 79.639511) (xy 148.27661 79.639509)\r\n\t\t\t\t(xy 148.276608 79.639507) (xy 148.173889 79.580202) (xy 148.17389 79.580202) (xy 148.150318 79.573886)\r\n\t\t\t\t(xy 148.059309 79.5495) (xy 147.940691 79.5495) (xy 147.904084 79.559309) (xy 147.826109 79.580202)\r\n\t\t\t\t(xy 147.723391 79.639507) (xy 147.639507 79.723391) (xy 147.580202 79.826109) (xy 147.565897 79.879496)\r\n\t\t\t\t(xy 147.5495 79.940691) (xy 144.4505 79.940691) (xy 144.419799 79.826114) (xy 144.419797 79.826111)\r\n\t\t\t\t(xy 144.419797 79.826109) (xy 144.360492 79.723391) (xy 144.36049 79.723389) (xy 144.360489 79.723387)\r\n\t\t\t\t(xy 144.276613 79.639511) (xy 144.27661 79.639509) (xy 144.276608 79.639507) (xy 144.173889 79.580202)\r\n\t\t\t\t(xy 144.17389 79.580202) (xy 144.150318 79.573886) (xy 144.059309 79.5495) (xy 143.940691 79.5495)\r\n\t\t\t\t(xy 143.904084 79.559309) (xy 143.826109 79.580202) (xy 143.723391 79.639507) (xy 143.639507 79.723391)\r\n\t\t\t\t(xy 143.580202 79.826109) (xy 143.565897 79.879496) (xy 143.5495 79.940691) (xy 140.4505 79.940691)\r\n\t\t\t\t(xy 140.419799 79.826114) (xy 140.419797 79.826111) (xy 140.419797 79.826109) (xy 140.360492 79.723391)\r\n\t\t\t\t(xy 140.36049 79.723389) (xy 140.360489 79.723387) (xy 140.276613 79.639511) (xy 140.27661 79.639509)\r\n\t\t\t\t(xy 140.276608 79.639507) (xy 140.173889 79.580202) (xy 140.17389 79.580202) (xy 140.150318 79.573886)\r\n\t\t\t\t(xy 140.059309 79.5495) (xy 139.940691 79.5495) (xy 139.904084 79.559309) (xy 139.826109 79.580202)\r\n\t\t\t\t(xy 139.723391 79.639507) (xy 139.639507 79.723391) (xy 139.580202 79.826109) (xy 139.565897 79.879496)\r\n\t\t\t\t(xy 139.5495 79.940691) (xy 136.4505 79.940691) (xy 136.419799 79.826114) (xy 136.419797 79.826111)\r\n\t\t\t\t(xy 136.419797 79.826109) (xy 136.360492 79.723391) (xy 136.36049 79.723389) (xy 136.360489 79.723387)\r\n\t\t\t\t(xy 136.276613 79.639511) (xy 136.27661 79.639509) (xy 136.276608 79.639507) (xy 136.173889 79.580202)\r\n\t\t\t\t(xy 136.17389 79.580202) (xy 136.150318 79.573886) (xy 136.059309 79.5495) (xy 135.940691 79.5495)\r\n\t\t\t\t(xy 135.904084 79.559309) (xy 135.826109 79.580202) (xy 135.723391 79.639507) (xy 135.639507 79.723391)\r\n\t\t\t\t(xy 135.580202 79.826109) (xy 135.565897 79.879496) (xy 135.5495 79.940691) (xy 132.4505 79.940691)\r\n\t\t\t\t(xy 132.419799 79.826114) (xy 132.419797 79.826111) (xy 132.419797 79.826109) (xy 132.360492 79.723391)\r\n\t\t\t\t(xy 132.36049 79.723389) (xy 132.360489 79.723387) (xy 132.276613 79.639511) (xy 132.27661 79.639509)\r\n\t\t\t\t(xy 132.276608 79.639507) (xy 132.173889 79.580202) (xy 132.17389 79.580202) (xy 132.150318 79.573886)\r\n\t\t\t\t(xy 132.059309 79.5495) (xy 131.940691 79.5495) (xy 131.904084 79.559309) (xy 131.826109 79.580202)\r\n\t\t\t\t(xy 131.723391 79.639507) (xy 131.639507 79.723391) (xy 131.580202 79.826109) (xy 131.565897 79.879496)\r\n\t\t\t\t(xy 131.5495 79.940691) (xy 128.4505 79.940691) (xy 128.419799 79.826114) (xy 128.419797 79.826111)\r\n\t\t\t\t(xy 128.419797 79.826109) (xy 128.360492 79.723391) (xy 128.36049 79.723389) (xy 128.360489 79.723387)\r\n\t\t\t\t(xy 128.276613 79.639511) (xy 128.27661 79.639509) (xy 128.276608 79.639507) (xy 128.173889 79.580202)\r\n\t\t\t\t(xy 128.17389 79.580202) (xy 128.150318 79.573886) (xy 128.059309 79.5495) (xy 127.940691 79.5495)\r\n\t\t\t\t(xy 127.904084 79.559309) (xy 127.826109 79.580202) (xy 127.723391 79.639507) (xy 127.639507 79.723391)\r\n\t\t\t\t(xy 127.580202 79.826109) (xy 127.565897 79.879496) (xy 127.5495 79.940691) (xy 124.4505 79.940691)\r\n\t\t\t\t(xy 124.419799 79.826114) (xy 124.419797 79.826111) (xy 124.419797 79.826109) (xy 124.360492 79.723391)\r\n\t\t\t\t(xy 124.36049 79.723389) (xy 124.360489 79.723387) (xy 124.276613 79.639511) (xy 124.27661 79.639509)\r\n\t\t\t\t(xy 124.276608 79.639507) (xy 124.173889 79.580202) (xy 124.17389 79.580202) (xy 124.150318 79.573886)\r\n\t\t\t\t(xy 124.059309 79.5495) (xy 123.940691 79.5495) (xy 123.904084 79.559309) (xy 123.826109 79.580202)\r\n\t\t\t\t(xy 123.723391 79.639507) (xy 123.639507 79.723391) (xy 123.580202 79.826109) (xy 123.565897 79.879496)\r\n\t\t\t\t(xy 123.5495 79.940691) (xy 110.308543 79.940691) (xy 110.369738 79.879496) (xy 110.424255 79.851719)\r\n\t\t\t\t(xy 110.439742 79.8505) (xy 119.944803 79.8505) (xy 119.963542 79.842738) (xy 120.018926 79.819797)\r\n\t\t\t\t(xy 120.036871 79.812364) (xy 122.219738 77.629495) (xy 122.274255 77.601719) (xy 122.289742 77.6005)\r\n\t\t\t\t(xy 141.252551 77.6005) (xy 141.298584 77.581432) (xy 141.344619 77.562364) (xy 141.736542 77.170441)\r\n\t\t\t\t(xy 142.058724 76.848259) (xy 142.312364 76.594619) (xy 142.3505 76.50255) (xy 142.3505 76.402894)\r\n\t\t\t\t(xy 142.3505 75.940691) (xy 147.5495 75.940691) (xy 147.5495 76.059309) (xy 147.571306 76.140691)\r\n\t\t\t\t(xy 147.580202 76.17389) (xy 147.639507 76.276608) (xy 147.639509 76.27661) (xy 147.639511 76.276613)\r\n\t\t\t\t(xy 147.723387 76.360489) (xy 147.723389 76.36049) (xy 147.723391 76.360492) (xy 147.82611 76.419797)\r\n\t\t\t\t(xy 147.826111 76.419797) (xy 147.826114 76.419799) (xy 147.940691 76.4505) (xy 147.940693 76.4505)\r\n\t\t\t\t(xy 148.059307 76.4505) (xy 148.059309 76.4505) (xy 148.173886 76.419799) (xy 148.173888 76.419797)\r\n\t\t\t\t(xy 148.17389 76.419797) (xy 148.276608 76.360492) (xy 148.276608 76.360491) (xy 148.276613 76.360489)\r\n\t\t\t\t(xy 148.360489 76.276613) (xy 148.361871 76.27422) (xy 148.419797 76.17389) (xy 148.419797 76.173888)\r\n\t\t\t\t(xy 148.419799 76.173886) (xy 148.4505 76.059309) (xy 148.4505 75.940691) (xy 151.5495 75.940691)\r\n\t\t\t\t(xy 151.5495 76.059309) (xy 151.571306 76.140691) (xy 151.580202 76.17389) (xy 151.639507 76.276608)\r\n\t\t\t\t(xy 151.639509 76.27661) (xy 151.639511 76.276613) (xy 151.723387 76.360489) (xy 151.723389 76.36049)\r\n\t\t\t\t(xy 151.723391 76.360492) (xy 151.82611 76.419797) (xy 151.826111 76.419797) (xy 151.826114 76.419799)\r\n\t\t\t\t(xy 151.940691 76.4505) (xy 151.940693 76.4505) (xy 152.059307 76.4505) (xy 152.059309 76.4505)\r\n\t\t\t\t(xy 152.173886 76.419799) (xy 152.173888 76.419797) (xy 152.17389 76.419797) (xy 152.276608 76.360492)\r\n\t\t\t\t(xy 152.276608 76.360491) (xy 152.276613 76.360489) (xy 152.360489 76.276613) (xy 152.361871 76.27422)\r\n\t\t\t\t(xy 152.419797 76.17389) (xy 152.419797 76.173888) (xy 152.419799 76.173886) (xy 152.4505 76.059309)\r\n\t\t\t\t(xy 152.4505 75.940691) (xy 152.419799 75.826114) (xy 152.419797 75.826111) (xy 152.419797 75.826109)\r\n\t\t\t\t(xy 152.360492 75.723391) (xy 152.36049 75.723389) (xy 152.360489 75.723387) (xy 152.276613 75.639511)\r\n\t\t\t\t(xy 152.27661 75.639509) (xy 152.276608 75.639507) (xy 152.173889 75.580202) (xy 152.17389 75.580202)\r\n\t\t\t\t(xy 152.150318 75.573886) (xy 152.059309 75.5495) (xy 151.940691 75.5495) (xy 151.870567 75.568289)\r\n\t\t\t\t(xy 151.826109 75.580202) (xy 151.723391 75.639507) (xy 151.639507 75.723391) (xy 151.580202 75.826109)\r\n\t\t\t\t(xy 151.580201 75.826114) (xy 151.5495 75.940691) (xy 148.4505 75.940691) (xy 148.419799 75.826114)\r\n\t\t\t\t(xy 148.419797 75.826111) (xy 148.419797 75.826109) (xy 148.360492 75.723391) (xy 148.36049 75.723389)\r\n\t\t\t\t(xy 148.360489 75.723387) (xy 148.276613 75.639511) (xy 148.27661 75.639509) (xy 148.276608 75.639507)\r\n\t\t\t\t(xy 148.173889 75.580202) (xy 148.17389 75.580202) (xy 148.150318 75.573886) (xy 148.059309 75.5495)\r\n\t\t\t\t(xy 147.940691 75.5495) (xy 147.870567 75.568289) (xy 147.826109 75.580202) (xy 147.723391 75.639507)\r\n\t\t\t\t(xy 147.639507 75.723391) (xy 147.580202 75.826109) (xy 147.580201 75.826114) (xy 147.5495 75.940691)\r\n\t\t\t\t(xy 142.3505 75.940691) (xy 142.3505 75.727609) (xy 142.36' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'9407 75.669418) (xy 142.37949 75.657611)\r\n\t\t\t\t(xy 142.460489 75.576613) (xy 142.462062 75.573888) (xy 142.519797 75.47389) (xy 142.519797 75.473888)\r\n\t\t\t\t(xy 142.519799 75.473886) (xy 142.5505 75.359309) (xy 142.5505 75.240691) (xy 142.519799 75.126114)\r\n\t\t\t\t(xy 142.519797 75.126111) (xy 142.519797 75.126109) (xy 142.495313 75.083702) (xy 142.47048 75.040691)\r\n\t\t\t\t(xy 143.3495 75.040691) (xy 143.3495 75.159309) (xy 143.371306 75.240691) (xy 143.380202 75.27389)\r\n\t\t\t\t(xy 143.439507 75.376608) (xy 143.439509 75.37661) (xy 143.439511 75.376613) (xy 143.523387 75.460489)\r\n\t\t\t\t(xy 143.523389 75.46049) (xy 143.523391 75.460492) (xy 143.62611 75.519797) (xy 143.626111 75.519797)\r\n\t\t\t\t(xy 143.626114 75.519799) (xy 143.740691 75.5505) (xy 143.740693 75.5505) (xy 143.859307 75.5505)\r\n\t\t\t\t(xy 143.859309 75.5505) (xy 143.973886 75.519799) (xy 143.973888 75.519797) (xy 143.97389 75.519797)\r\n\t\t\t\t(xy 144.076608 75.460492) (xy 144.076608 75.460491) (xy 144.076613 75.460489) (xy 144.160489 75.376613)\r\n\t\t\t\t(xy 144.170481 75.359307) (xy 144.219797 75.27389) (xy 144.219797 75.273888) (xy 144.219799 75.273886)\r\n\t\t\t\t(xy 144.2505 75.159309) (xy 144.2505 75.040691) (xy 144.219799 74.926114) (xy 144.219797 74.926111)\r\n\t\t\t\t(xy 144.219797 74.926109) (xy 144.160492 74.823391) (xy 144.16049 74.823389) (xy 144.160489 74.823387)\r\n\t\t\t\t(xy 144.076613 74.739511) (xy 144.07661 74.739509) (xy 144.076608 74.739507) (xy 143.973889 74.680202)\r\n\t\t\t\t(xy 143.97389 74.680202) (xy 143.960351 74.676574) (xy 143.859309 74.6495) (xy 143.740691 74.6495)\r\n\t\t\t\t(xy 143.670567 74.668289) (xy 143.626109 74.680202) (xy 143.523391 74.739507) (xy 143.439507 74.823391)\r\n\t\t\t\t(xy 143.380202 74.926109) (xy 143.365708 74.980201) (xy 143.3495 75.040691) (xy 142.47048 75.040691)\r\n\t\t\t\t(xy 142.460492 75.023391) (xy 142.46049 75.023389) (xy 142.460489 75.023387) (xy 142.376613 74.939511)\r\n\t\t\t\t(xy 142.37661 74.939509) (xy 142.376608 74.939507) (xy 142.273889 74.880202) (xy 142.27389 74.880202)\r\n\t\t\t\t(xy 142.260351 74.876574) (xy 142.159309 74.8495) (xy 142.040691 74.8495) (xy 141.970567 74.868289)\r\n\t\t\t\t(xy 141.926109 74.880202) (xy 141.823391 74.939507) (xy 141.739507 75.023391) (xy 141.680202 75.126109)\r\n\t\t\t\t(xy 141.680201 75.126114) (xy 141.6495 75.240691) (xy 141.6495 75.359309) (xy 141.65709 75.387635)\r\n\t\t\t\t(xy 141.680202 75.47389) (xy 141.739507 75.576608) (xy 141.739509 75.57661) (xy 141.739511 75.576613)\r\n\t\t\t\t(xy 141.820505 75.657607) (xy 141.848281 75.712122) (xy 141.8495 75.727609) (xy 141.8495 76.166138)\r\n\t\t\t\t(xy 141.830593 76.224329) (xy 141.781093 76.260293) (xy 141.719907 76.260293) (xy 141.670407 76.224329)\r\n\t\t\t\t(xy 141.664765 76.21564) (xy 141.656852 76.201935) (xy 141.65685 76.201933) (xy 141.656849 76.201931)\r\n\t\t\t\t(xy 141.572973 76.118055) (xy 141.57297 76.118053) (xy 141.572968 76.118051) (xy 141.470249 76.058746)\r\n\t\t\t\t(xy 141.47025 76.058746) (xy 141.456711 76.055118) (xy 141.355669 76.028044) (xy 141.237051 76.028044)\r\n\t\t\t\t(xy 141.123247 76.058538) (xy 141.062145 76.055335) (xy 141.014596 76.01683) (xy 141.011888 76.012411)\r\n\t\t\t\t(xy 140.960492 75.923391) (xy 140.96049 75.923389) (xy 140.960489 75.923387) (xy 140.876613 75.839511)\r\n\t\t\t\t(xy 140.87661 75.839509) (xy 140.876608 75.839507) (xy 140.773889 75.780202) (xy 140.77389 75.780202)\r\n\t\t\t\t(xy 140.760351 75.776574) (xy 140.659309 75.7495) (xy 140.540691 75.7495) (xy 140.499669 75.760492)\r\n\t\t\t\t(xy 140.426109 75.780202) (xy 140.323391 75.839507) (xy 140.239507 75.923391) (xy 140.180202 76.026109)\r\n\t\t\t\t(xy 140.172371 76.055335) (xy 140.155567 76.118051) (xy 140.1495 76.140692) (xy 140.1495 76.2505)\r\n\t\t\t\t(xy 140.130593 76.308691) (xy 140.081093 76.344655) (xy 140.0505 76.3495) (xy 139.352381 76.3495)\r\n\t\t\t\t(xy 139.29419 76.330593) (xy 139.258226 76.281093) (xy 139.258226 76.219907) (xy 139.266645 76.200999)\r\n\t\t\t\t(xy 139.282299 76.173886) (xy 139.313 76.059309) (xy 139.313 75.940691) (xy 139.282299 75.826114)\r\n\t\t\t\t(xy 139.282297 75.826111) (xy 139.282297 75.826109) (xy 139.222992 75.723391) (xy 139.22299 75.723389)\r\n\t\t\t\t(xy 139.222989 75.723387) (xy 139.139113 75.639511) (xy 139.13911 75.639509) (xy 139.139108 75.639507)\r\n\t\t\t\t(xy 139.036389 75.580202) (xy 139.03639 75.580202) (xy 139.012818 75.573886) (xy 138.921809 75.5495)\r\n\t\t\t\t(xy 138.803191 75.5495) (xy 138.733067 75.568289) (xy 138.688609 75.580202) (xy 138.585891 75.639507)\r\n\t\t\t\t(xy 138.58589 75.639508) (xy 138.585887 75.63951) (xy 138.585887 75.639511) (xy 138.504892 75.720505)\r\n\t\t\t\t(xy 138.450378 75.748281) (xy 138.434891 75.7495) (xy 132.404429 75.7495) (xy 132.346238 75.730593)\r\n\t\t\t\t(xy 132.310274 75.681093) (xy 132.310274 75.619907) (xy 132.334425 75.580496) (xy 132.341035 75.573886)\r\n\t\t\t\t(xy 132.377139 75.537782) (xy 132.486632 75.373914) (xy 132.562051 75.191835) (xy 132.6005 74.998541)\r\n\t\t\t\t(xy 132.6005 74.551459) (xy 132.562051 74.358165) (xy 132.486632 74.176086) (xy 132.377139 74.012218)\r\n\t\t\t\t(xy 132.237782 73.872861) (xy 132.122193 73.795627) (xy 132.073913 73.763367) (xy 131.891835 73.687949)\r\n\t\t\t\t(xy 131.698543 73.6495) (xy 131.698541 73.6495) (xy 131.501459 73.6495) (xy 131.501456 73.6495)\r\n\t\t\t\t(xy 131.308165 73.687949) (xy 131.308163 73.687949) (xy 131.126086 73.763367) (xy 130.962218 73.872861)\r\n\t\t\t\t(xy 130.962214 73.872864) (xy 130.822864 74.012214) (xy 130.822861 74.012218) (xy 130.713367 74.176086)\r\n\t\t\t\t(xy 130.637949 74.358163) (xy 130.637949 74.358165) (xy 130.5995 74.551456) (xy 130.5995 74.998543)\r\n\t\t\t\t(xy 130.637949 75.191834) (xy 130.637949 75.191836) (xy 130.713367 75.373913) (xy 130.722536 75.387635)\r\n\t\t\t\t(xy 130.822861 75.537782) (xy 130.822864 75.537785) (xy 130.865575 75.580496) (xy 130.893352 75.635013)\r\n\t\t\t\t(xy 130.883781 75.695445) (xy 130.840516 75.73871) (xy 130.795571 75.7495) (xy 129.904429 75.7495)\r\n\t\t\t\t(xy 129.846238 75.730593) (xy 129.810274 75.681093) (xy 129.810274 75.619907) (xy 129.834425 75.580496)\r\n\t\t\t\t(xy 129.841035 75.573886) (xy 129.877139 75.537782) (xy 129.986632 75.373914) (xy 130.062051 75.191835)\r\n\t\t\t\t(xy 130.1005 74.998541) (xy 130.1005 74.551459) (xy 130.062051 74.358165) (xy 129.986632 74.176086)\r\n\t\t\t\t(xy 129.877139 74.012218) (xy 129.737782 73.872861) (xy 129.622193 73.795627) (xy 129.573913 73.763367)\r\n\t\t\t\t(xy 129.391835 73.687949) (xy 129.198543 73.6495) (xy 129.198541 73.6495) (xy 129.001459 73.6495)\r\n\t\t\t\t(xy 129.001456 73.6495) (xy 128.808165 73.687949) (xy 128.808163 73.687949) (xy 128.626086 73.763367)\r\n\t\t\t\t(xy 128.462218 73.872861) (xy 128.462214 73.872864) (xy 128.322864 74.012214) (xy 128.322861 74.012218)\r\n\t\t\t\t(xy 128.213367 74.176086) (xy 128.137949 74.358163) (xy 128.137949 74.358165) (xy 128.0995 74.551456)\r\n\t\t\t\t(xy 128.0995 74.998543) (xy 128.137949 75.191834) (xy 128.137949 75.191836) (xy 128.213367 75.373913)\r\n\t\t\t\t(xy 128.222536 75.387635) (xy 128.322861 75.537782) (xy 128.322864 75.537785) (xy 128.365575 75.580496)\r\n\t\t\t\t(xy 128.393352 75.635013) (xy 128.383781 75.695445) (xy 128.340516 75.73871) (xy 128.295571 75.7495)\r\n\t\t\t\t(xy 127.404429 75.7495) (xy 127.346238 75.730593) (xy 127.310274 75.681093) (xy 127.310274 75.619907)\r\n\t\t\t\t(xy 127.334425 75.580496) (xy 127.341035 75.573886) (xy 127.377139 75.537782) (xy 127.486632 75.373914)\r\n\t\t\t\t(xy 127.562051 75.191835) (xy 127.6005 74.998541) (xy 127.6005 74.551459) (xy 127.562051 74.358165)\r\n\t\t\t\t(xy 127.486632 74.176086) (xy 127.377139 74.012218) (xy 127.237782 73.872861) (xy 127.122193 73.795627)\r\n\t\t\t\t(xy 127.073913 73.763367) (xy 126.891835 73.687949) (xy 126.698543 73.6495) (xy 126.698541 73.6495)\r\n\t\t\t\t(xy 126.501459 73.6495) (xy 126.501456 73.6495) (xy 126.308165 73.687949) (xy 126.308163 73.687949)\r\n\t\t\t\t(xy 126.126086 73.763367) (xy 125.962218 73.872861) (xy 125.962214 73.872864) (xy 125.822864 74.012214)\r\n\t\t\t\t(xy 125.822861 74.012218) (xy 125.713367 74.176086) (xy 125.637949 74.358163) (xy 125.637949 74.358165)\r\n\t\t\t\t(xy 125.5995 74.551456) (xy 125.5995 74.998543) (xy 125.637949 75.191834) (xy 125.637949 75.191836)\r\n\t\t\t\t(xy 125.713367 75.373913) (xy 125.722536 75.387635) (xy 125.822861 75.537782) (xy 125.822864 75.537785)\r\n\t\t\t\t(xy 125.865575 75.580496) (xy 125.893352 75.635013) (xy 125.883781 75.695445) (xy 125.840516 75.73871)\r\n\t\t\t\t(xy 125.795571 75.7495) (xy 124.904429 75.7495) (xy 124.846238 75.730593) (xy 124.810274 75.681093)\r\n\t\t\t\t(xy 124.810274 75.619907)' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' (xy 124.834425 75.580496) (xy 124.841035 75.573886) (xy 124.877139 75.537782)\r\n\t\t\t\t(xy 124.986632 75.373914) (xy 125.062051 75.191835) (xy 125.1005 74.998541) (xy 125.1005 74.551459)\r\n\t\t\t\t(xy 125.062051 74.358165) (xy 124.986632 74.176086) (xy 124.877139 74.012218) (xy 124.737782 73.872861)\r\n\t\t\t\t(xy 124.622193 73.795627) (xy 124.573913 73.763367) (xy 124.391835 73.687949) (xy 124.198543 73.6495)\r\n\t\t\t\t(xy 124.198541 73.6495) (xy 124.001459 73.6495) (xy 124.001456 73.6495) (xy 123.808165 73.687949)\r\n\t\t\t\t(xy 123.808163 73.687949) (xy 123.626086 73.763367) (xy 123.462218 73.872861) (xy 123.462214 73.872864)\r\n\t\t\t\t(xy 123.322864 74.012214) (xy 123.322861 74.012218) (xy 123.213367 74.176086) (xy 123.137949 74.358163)\r\n\t\t\t\t(xy 123.137949 74.358165) (xy 123.0995 74.551456) (xy 123.0995 74.998543) (xy 123.137949 75.191834)\r\n\t\t\t\t(xy 123.137949 75.191836) (xy 123.213367 75.373913) (xy 123.222536 75.387635) (xy 123.322861 75.537782)\r\n\t\t\t\t(xy 123.322864 75.537785) (xy 123.365575 75.580496) (xy 123.393352 75.635013) (xy 123.383781 75.695445)\r\n\t\t\t\t(xy 123.340516 75.73871) (xy 123.295571 75.7495) (xy 122.681554 75.7495) (xy 122.623363 75.730593)\r\n\t\t\t\t(xy 122.587399 75.681093) (xy 122.587399 75.63347) (xy 122.584427 75.633) (xy 122.586501 75.619907)\r\n\t\t\t\t(xy 122.6005 75.531519) (xy 122.600499 74.018482) (xy 122.600499 74.018481) (xy 122.600499 74.018478)\r\n\t\t\t\t(xy 122.600498 74.018476) (xy 122.585647 73.9247) (xy 122.585646 73.924698) (xy 122.585646 73.924696)\r\n\t\t\t\t(xy 122.52805 73.811658) (xy 122.438342 73.72195) (xy 122.325304 73.664354) (xy 122.325305 73.664354)\r\n\t\t\t\t(xy 122.231521 73.6495) (xy 120.968478 73.6495) (xy 120.968476 73.649501) (xy 120.8747 73.664352)\r\n\t\t\t\t(xy 120.874695 73.664354) (xy 120.761659 73.721949) (xy 120.671949 73.811659) (xy 120.614354 73.924695)\r\n\t\t\t\t(xy 120.5995 74.018478) (xy 120.5995 75.269144) (xy 120.580593 75.327335) (xy 120.531093 75.363299)\r\n\t\t\t\t(xy 120.469907 75.363299) (xy 120.462615 75.360608) (xy 120.435795 75.349499) (xy 120.435793 75.349499)\r\n\t\t\t\t(xy 115.396179 75.349499) (xy 115.296523 75.349499) (xy 115.296522 75.349499) (xy 115.204456 75.387633)\r\n\t\t\t\t(xy 114.621585 75.970504) (xy 114.567068 75.998281) (xy 114.551581 75.9995) (xy 107.632108 75.9995)\r\n\t\t\t\t(xy 107.573917 75.980593) (xy 107.537953 75.931093) (xy 107.537953 75.869907) (xy 107.573917 75.820407)\r\n\t\t\t\t(xy 107.582608 75.814764) (xy 107.676608 75.760492) (xy 107.676608 75.760491) (xy 107.676613 75.760489)\r\n\t\t\t\t(xy 107.760489 75.676613) (xy 107.769798 75.660489) (xy 107.819797 75.57389) (xy 107.819797 75.573888)\r\n\t\t\t\t(xy 107.819799 75.573886) (xy 107.8505 75.459309) (xy 107.8505 75.340691) (xy 107.819799 75.226114)\r\n\t\t\t\t(xy 107.819797 75.226111) (xy 107.819797 75.226109) (xy 107.760492 75.123391) (xy 107.76049 75.123389)\r\n\t\t\t\t(xy 107.760489 75.123387) (xy 107.676613 75.039511) (xy 107.67661 75.039509) (xy 107.676608 75.039507)\r\n\t\t\t\t(xy 107.573889 74.980202) (xy 107.57389 74.980202) (xy 107.560351 74.976574) (xy 107.459309 74.9495)\r\n\t\t\t\t(xy 107.340691 74.9495) (xy 107.270567 74.968289) (xy 107.226109 74.980202) (xy 107.123391 75.039507)\r\n\t\t\t\t(xy 107.039507 75.123391) (xy 106.980202 75.226109) (xy 106.968671 75.269144) (xy 106.9495 75.340691)\r\n\t\t\t\t(xy 106.9495 75.459309) (xy 106.968849 75.531519) (xy 106.980202 75.57389) (xy 107.039507 75.676608)\r\n\t\t\t\t(xy 107.039509 75.67661) (xy 107.039511 75.676613) (xy 107.123387 75.760489) (xy 107.123389 75.76049)\r\n\t\t\t\t(xy 107.123391 75.760492) (xy 107.217392 75.814764) (xy 107.258333 75.860233) (xy 107.264729 75.921084)\r\n\t\t\t\t(xy 107.234136 75.974072) (xy 107.17824 75.998958) (xy 107.167892 75.9995) (xy 106.016385 75.9995)\r\n\t\t\t\t(xy 106.016377 75.999499) (xy 106.004854 75.999499) (xy 105.905199 75.999499) (xy 105.854547 76.02048)\r\n\t\t\t\t(xy 105.854546 76.02048) (xy 105.813129 76.037634) (xy 105.742661 76.108102) (xy 105.742662 76.108103)\r\n\t\t\t\t(xy 104.430261 77.420504) (xy 104.375744 77.448281) (xy 104.360257 77.4495) (xy 103.327609 77.4495)\r\n\t\t\t\t(xy 103.269418 77.430593) (xy 103.257611 77.420509) (xy 103.176613 77.339511) (xy 103.17661 77.339509)\r\n\t\t\t\t(xy 103.176608 77.339507) (xy 103.073889 77.280202) (xy 103.07389 77.280202) (xy 103.031736 77.268907)\r\n\t\t\t\t(xy 102.959309 77.2495) (xy 102.840691 77.2495) (xy 102.770567 77.268289) (xy 102.726109 77.280202)\r\n\t\t\t\t(xy 102.623391 77.339507) (xy 102.539507 77.423391) (xy 102.480202 77.526109) (xy 102.480201 77.526114)\r\n\t\t\t\t(xy 102.4495 77.640691) (xy 102.4495 77.759309) (xy 102.480201 77.873886) (xy 102.480202 77.873888)\r\n\t\t\t\t(xy 102.495855 77.900999) (xy 102.508577 77.960847) (xy 102.483691 78.016743) (xy 102.430704 78.047336)\r\n\t\t\t\t(xy 102.410119 78.0495) (xy 101.627609 78.0495) (xy 101.569418 78.030593) (xy 101.557611 78.020509)\r\n\t\t\t\t(xy 101.476613 77.939511) (xy 101.47661 77.939509) (xy 101.476608 77.939507) (xy 101.373889 77.880202)\r\n\t\t\t\t(xy 101.37389 77.880202) (xy 101.350318 77.873886) (xy 101.259309 77.8495) (xy 101.140691 77.8495)\r\n\t\t\t\t(xy 101.099669 77.860492) (xy 101.026109 77.880202) (xy 100.923391 77.939507) (xy 100.839507 78.023391)\r\n\t\t\t\t(xy 100.780202 78.126109) (xy 100.765708 78.180201) (xy 100.7495 78.240691) (xy 100.7495 78.359309)\r\n\t\t\t\t(xy 100.749502 78.359315) (xy 100.776832 78.461314) (xy 100.773629 78.522416) (xy 100.735124 78.569966)\r\n\t\t\t\t(xy 100.676023 78.585801) (xy 100.618902 78.563874) (xy 100.611201 78.55694) (xy 100.379496 78.325234)\r\n\t\t\t\t(xy 100.377399 78.321118) (xy 100.373487 78.318659) (xy 100.366936 78.300584) (xy 100.351719 78.270718)\r\n\t\t\t\t(xy 100.350723 78.261866) (xy 100.3505 78.258546) (xy 100.3505 78.140691) (xy 100.339934 78.101261)\r\n\t\t\t\t(xy 100.339287 78.091617) (xy 100.344519 78.070871) (xy 100.345639 78.049506) (xy 100.35184 78.041847)\r\n\t\t\t\t(xy 100.354251 78.03229) (xy 100.37068 78.01858) (xy 100.384143 78.001955) (xy 100.397997 77.995785)\r\n\t\t\t\t(xy 100.40123 77.993089) (xy 100.404556 77.992865) (xy 100.412435 77.989357) (xy 100.459759 77.976677)\r\n\t\t\t\t(xy 100.459761 77.976675) (xy 100.459763 77.976675) (xy 100.562481 77.91737) (xy 100.562481 77.917369)\r\n\t\t\t\t(xy 100.562486 77.917367) (xy 100.646362 77.833491) (xy 100.661016 77.80811) (xy 100.70567 77.730768)\r\n\t\t\t\t(xy 100.70567 77.730766) (xy 100.705672 77.730764) (xy 100.736373 77.616187) (xy 100.736373 77.497569)\r\n\t\t\t\t(xy 100.705672 77.382992) (xy 100.70567 77.382989) (xy 100.70567 77.382987) (xy 100.646365 77.280269)\r\n\t\t\t\t(xy 100.646363 77.280267) (xy 100.646362 77.280265) (xy 100.562486 77.196389) (xy 100.562483 77.196387)\r\n\t\t\t\t(xy 100.562481 77.196385) (xy 100.459762 77.13708) (xy 100.459763 77.13708) (xy 100.433549 77.130056)\r\n\t\t\t\t(xy 100.345182 77.106378) (xy 100.226564 77.106378) (xy 100.161224 77.123886) (xy 100.111982 77.13708)\r\n\t\t\t\t(xy 100.009264 77.196385) (xy 99.92538 77.280269) (xy 99.866075 77.382987) (xy 99.835373 77.49757)\r\n\t\t\t\t(xy 99.835373 77.616189) (xy 99.843434 77.646271) (xy 99.840233 77.707373) (xy 99.801728 77.754923)\r\n\t\t\t\t(xy 99.773433 77.767521) (xy 99.726112 77.780201) (xy 99.72611 77.780202) (xy 99.623391 77.839507)\r\n\t\t\t\t(xy 99.539507 77.923391) (xy 99.480202 78.026109) (xy 99.473933 78.049506) (xy 99.4495 78.140691)\r\n\t\t\t\t(xy 99.4495 78.259309) (xy 99.455098 78.280201) (xy 99.480202 78.37389) (xy 99.539507 78.476608)\r\n\t\t\t\t(xy 99.539509 78.47661) (xy 99.539511 78.476613) (xy 99.623387 78.560489) (xy 99.623389 78.56049)\r\n\t\t\t\t(xy 99.623391 78.560492) (xy 99.688545 78.598109) (xy 99.729486 78.643578) (xy 99.735882 78.704429)\r\n\t\t\t\t(xy 99.709049 78.753848) (xy 99.639511 78.823386) (xy 99.639507 78.823391) (xy 99.580202 78.926109)\r\n\t\t\t\t(xy 99.57099 78.960489) (xy 99.5495 79.040691) (xy 99.5495 79.159309) (xy 99.576574 79.260351) (xy 99.580202 79.27389)\r\n\t\t\t\t(xy 99.639507 79.376608) (xy 99.639509 79.37661) (xy 99.639511 79.376613) (xy 99.667897 79.404999)\r\n\t\t\t\t(xy 99.695673 79.459514) (xy 99.686102 79.519946) (xy 99.667896 79.545004) (xy 99.625603 79.587296)\r\n\t\t\t\t(xy 99.625599 79.587302) (xy 99.566294 79.69002) (xy 99.551864 79.743875) (xy 99.535592 79.804602)\r\n\t\t\t\t(xy 99.535592 79.92322) (xy 99.543709 79.953513) (xy 99.566294 80.037801) (xy 99.625599 80.140519)\r\n\t\t\t\t(xy 99.625601 80.140521) (xy 99.625603 80.140524) (xy 99.709479 80.2244) (xy 99.709481 80.224401)\r\n\t\t\t\t(xy 99.709483 80.224403) (xy 99.779223 80.264668) (xy 99.820164 80.310138) (xy 99.826559 80.370988)\r\n\t' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'\t\t\t(xy 99.795967 80.423976) (xy 99.779228 80.436138) (xy 99.773389 80.439509) (xy 99.689507 80.523391)\r\n\t\t\t\t(xy 99.630202 80.626109) (xy 99.630201 80.626114) (xy 99.5995 80.740691) (xy 99.5995 80.859309)\r\n\t\t\t\t(xy 99.603111 80.872785) (xy 99.630202 80.973888) (xy 99.645855 81.000999) (xy 99.658577 81.060847)\r\n\t\t\t\t(xy 99.633691 81.116743) (xy 99.580704 81.147336) (xy 99.560119 81.1495) (xy 98.527609 81.1495)\r\n\t\t\t\t(xy 98.469418 81.130593) (xy 98.457611 81.120509) (xy 98.376613 81.039511) (xy 98.37661 81.039509)\r\n\t\t\t\t(xy 98.376608 81.039507) (xy 98.273889 80.980202) (xy 98.27389 80.980202) (xy 98.250318 80.973886)\r\n\t\t\t\t(xy 98.159309 80.9495) (xy 98.040691 80.9495) (xy 97.970567 80.968289) (xy 97.926109 80.980202)\r\n\t\t\t\t(xy 97.823391 81.039507) (xy 97.739507 81.123391) (xy 97.680202 81.226109) (xy 97.680201 81.226114)\r\n\t\t\t\t(xy 97.6495 81.340691) (xy 74.0005 81.340691) (xy 74.0005 80.136456) (xy 80.0995 80.136456) (xy 80.0995 80.333543)\r\n\t\t\t\t(xy 80.116658 80.419799) (xy 80.127417 80.47389) (xy 80.137949 80.526834) (xy 80.137949 80.526836)\r\n\t\t\t\t(xy 80.213367 80.708913) (xy 80.213368 80.708914) (xy 80.322861 80.872782) (xy 80.462218 81.012139)\r\n\t\t\t\t(xy 80.626086 81.121632) (xy 80.808165 81.197051) (xy 81.001459 81.2355) (xy 81.00146 81.2355) (xy 81.19854 81.2355)\r\n\t\t\t\t(xy 81.198541 81.2355) (xy 81.391835 81.197051) (xy 81.573914 81.121632) (xy 81.737782 81.012139)\r\n\t\t\t\t(xy 81.877139 80.872782) (xy 81.986632 80.708914) (xy 82.062051 80.526835) (xy 82.1005 80.333541)\r\n\t\t\t\t(xy 82.1005 80.136459) (xy 82.06411 79.953516) (xy 82.06411 79.953513) (xy 82.062053 79.943173)\r\n\t\t\t\t(xy 82.06205 79.943163) (xy 82.061026 79.940692) (xy 82.061026 79.940691) (xy 87.5495 79.940691)\r\n\t\t\t\t(xy 87.5495 80.059309) (xy 87.570173 80.13646) (xy 87.580202 80.17389) (xy 87.639507 80.276608)\r\n\t\t\t\t(xy 87.639509 80.27661) (xy 87.639511 80.276613) (xy 87.723387 80.360489) (xy 87.723389 80.36049)\r\n\t\t\t\t(xy 87.723391 80.360492) (xy 87.82611 80.419797) (xy 87.826111 80.419797) (xy 87.826114 80.419799)\r\n\t\t\t\t(xy 87.940691 80.4505) (xy 87.940693 80.4505) (xy 88.059307 80.4505) (xy 88.059309 80.4505) (xy 88.173886 80.419799)\r\n\t\t\t\t(xy 88.173888 80.419797) (xy 88.17389 80.419797) (xy 88.276608 80.360492) (xy 88.276608 80.360491)\r\n\t\t\t\t(xy 88.276613 80.360489) (xy 88.360489 80.276613) (xy 88.367386 80.264668) (xy 88.381229 80.240691)\r\n\t\t\t\t(xy 93.0495 80.240691) (xy 93.0495 80.359309) (xy 93.07099 80.439509) (xy 93.080202 80.47389) (xy 93.139507 80.576608)\r\n\t\t\t\t(xy 93.139509 80.57661) (xy 93.139511 80.576613) (xy 93.223387 80.660489) (xy 93.223389 80.66049)\r\n\t\t\t\t(xy 93.223391 80.660492) (xy 93.32611 80.719797) (xy 93.326111 80.719797) (xy 93.326114 80.719799)\r\n\t\t\t\t(xy 93.440691 80.7505) (xy 93.440693 80.7505) (xy 93.559307 80.7505) (xy 93.559309 80.7505) (xy 93.673886 80.719799)\r\n\t\t\t\t(xy 93.673888 80.719797) (xy 93.67389 80.719797) (xy 93.776608 80.660492) (xy 93.776608 80.660491)\r\n\t\t\t\t(xy 93.776613 80.660489) (xy 93.860489 80.576613) (xy 93.891217 80.523391) (xy 93.919797 80.47389)\r\n\t\t\t\t(xy 93.919797 80.473888) (xy 93.919799 80.473886) (xy 93.9505 80.359309) (xy 93.9505 80.240691)\r\n\t\t\t\t(xy 93.919799 80.126114) (xy 93.919797 80.126111) (xy 93.919797 80.126109) (xy 93.860492 80.023391)\r\n\t\t\t\t(xy 93.86049 80.023389) (xy 93.860489 80.023387) (xy 93.776613 79.939511) (xy 93.77661 79.939509)\r\n\t\t\t\t(xy 93.776608 79.939507) (xy 93.673889 79.880202) (xy 93.67389 79.880202) (xy 93.633602 79.869407)\r\n\t\t\t\t(xy 93.559309 79.8495) (xy 93.440691 79.8495) (xy 93.370567 79.868289) (xy 93.326109 79.880202)\r\n\t\t\t\t(xy 93.223391 79.939507) (xy 93.139507 80.023391) (xy 93.080202 80.126109) (xy 93.076341 80.140519)\r\n\t\t\t\t(xy 93.0495 80.240691) (xy 88.381229 80.240691) (xy 88.413555 80.184702) (xy 88.413555 80.184701)\r\n\t\t\t\t(xy 88.414214 80.183558) (xy 88.419799 80.173886) (xy 88.4505 80.059309) (xy 88.4505 79.940691)\r\n\t\t\t\t(xy 88.419799 79.826114) (xy 88.419797 79.826111) (xy 88.419797 79.826109) (xy 88.360492 79.723391)\r\n\t\t\t\t(xy 88.36049 79.723389) (xy 88.360489 79.723387) (xy 88.276613 79.639511) (xy 88.27661 79.639509)\r\n\t\t\t\t(xy 88.276608 79.639507) (xy 88.173889 79.580202) (xy 88.17389 79.580202) (xy 88.150318 79.573886)\r\n\t\t\t\t(xy 88.059309 79.5495) (xy 87.940691 79.5495) (xy 87.904084 79.559309) (xy 87.826109 79.580202)\r\n\t\t\t\t(xy 87.723391 79.639507) (xy 87.639507 79.723391) (xy 87.580202 79.826109) (xy 87.565897 79.879496)\r\n\t\t\t\t(xy 87.5495 79.940691) (xy 82.061026 79.940691) (xy 81.986632 79.761086) (xy 81.877139 79.597218)\r\n\t\t\t\t(xy 81.737782 79.457861) (xy 81.573914 79.348368) (xy 81.573915 79.348368) (xy 81.573913 79.348367)\r\n\t\t\t\t(xy 81.391835 79.272949) (xy 81.198543 79.2345) (xy 81.198541 79.2345) (xy 81.001459 79.2345) (xy 81.001456 79.2345)\r\n\t\t\t\t(xy 80.808165 79.272949) (xy 80.808163 79.272949) (xy 80.626086 79.348367) (xy 80.462218 79.457861)\r\n\t\t\t\t(xy 80.462214 79.457864) (xy 80.322864 79.597214) (xy 80.322861 79.597218) (xy 80.213367 79.761086)\r\n\t\t\t\t(xy 80.137949 79.943163) (xy 80.137949 79.943165) (xy 80.0995 80.136456) (xy 74.0005 80.136456)\r\n\t\t\t\t(xy 74.0005 78.540691) (xy 94.8495 78.540691) (xy 94.8495 78.659309) (xy 94.866611 78.723167) (xy 94.880202 78.77389)\r\n\t\t\t\t(xy 94.939507 78.876608) (xy 94.939509 78.87661) (xy 94.939511 78.876613) (xy 95.023387 78.960489)\r\n\t\t\t\t(xy 95.023389 78.96049) (xy 95.023391 78.960492) (xy 95.12611 79.019797) (xy 95.126111 79.019797)\r\n\t\t\t\t(xy 95.126114 79.019799) (xy 95.240691 79.0505) (xy 95.240693 79.0505) (xy 95.359307 79.0505) (xy 95.359309 79.0505)\r\n\t\t\t\t(xy 95.473886 79.019799) (xy 95.473888 79.019797) (xy 95.47389 79.019797) (xy 95.576608 78.960492)\r\n\t\t\t\t(xy 95.576608 78.960491) (xy 95.576613 78.960489) (xy 95.660489 78.876613) (xy 95.660492 78.876608)\r\n\t\t\t\t(xy 95.719797 78.77389) (xy 95.719797 78.773888) (xy 95.719799 78.773886) (xy 95.7505 78.659309)\r\n\t\t\t\t(xy 95.7505 78.540691) (xy 95.719799 78.426114) (xy 95.719797 78.426111) (xy 95.719797 78.426109)\r\n\t\t\t\t(xy 95.660492 78.323391) (xy 95.66049 78.323389) (xy 95.660489 78.323387) (xy 95.576613 78.239511)\r\n\t\t\t\t(xy 95.57661 78.239509) (xy 95.576608 78.239507) (xy 95.473889 78.180202) (xy 95.47389 78.180202)\r\n\t\t\t\t(xy 95.460351 78.176574) (xy 95.359309 78.1495) (xy 95.240691 78.1495) (xy 95.170567 78.168289)\r\n\t\t\t\t(xy 95.126109 78.180202) (xy 95.023391 78.239507) (xy 94.939507 78.323391) (xy 94.880202 78.426109)\r\n\t\t\t\t(xy 94.880201 78.426114) (xy 94.8495 78.540691) (xy 74.0005 78.540691) (xy 74.0005 77.440691) (xy 79.4495 77.440691)\r\n\t\t\t\t(xy 79.4495 77.559309) (xy 79.463837 77.612815) (xy 79.480202 77.67389) (xy 79.539507 77.776608)\r\n\t\t\t\t(xy 79.539509 77.77661) (xy 79.539511 77.776613) (xy 79.623387 77.860489) (xy 79.623389 77.86049)\r\n\t\t\t\t(xy 79.623391 77.860492) (xy 79.72611 77.919797) (xy 79.726111 77.919797) (xy 79.726114 77.919799)\r\n\t\t\t\t(xy 79.840691 77.9505) (xy 79.840693 77.9505) (xy 79.959307 77.9505) (xy 79.959309 77.9505) (xy 80.073886 77.919799)\r\n\t\t\t\t(xy 80.073888 77.919797) (xy 80.07389 77.919797) (xy 80.176608 77.860492) (xy 80.176608 77.860491)\r\n\t\t\t\t(xy 80.176613 77.860489) (xy 80.260489 77.776613) (xy 80.264352 77.769922) (xy 80.319797 77.67389)\r\n\t\t\t\t(xy 80.319797 77.673888) (xy 80.319799 77.673886) (xy 80.3505 77.559309) (xy 80.3505 77.440691)\r\n\t\t\t\t(xy 80.319799 77.326114) (xy 80.319797 77.326111) (xy 80.319797 77.326109) (xy 80.260492 77.223391)\r\n\t\t\t\t(xy 80.26049 77.223389) (xy 80.260489 77.223387) (xy 80.176613 77.139511) (xy 80.17661 77.139509)\r\n\t\t\t\t(xy 80.176608 77.139507) (xy 80.073889 77.080202) (xy 80.07389 77.080202) (xy 80.057424 77.07579)\r\n\t\t\t\t(xy 79.959309 77.0495) (xy 79.840691 77.0495) (xy 79.778295 77.066219) (xy 79.726109 77.080202)\r\n\t\t\t\t(xy 79.623391 77.139507) (xy 79.539507 77.223391) (xy 79.480202 77.326109) (xy 79.480201 77.326114)\r\n\t\t\t\t(xy 79.4495 77.440691) (xy 74.0005 77.440691) (xy 74.0005 75.940691) (xy 87.5495 75.940691) (xy 87.5495 76.059309)\r\n\t\t\t\t(xy 87.571306 76.140691) (xy 87.580202 76.17389) (xy 87.639507 76.276608) (xy 87.639509 76.27661)\r\n\t\t\t\t(xy 87.639511 76.276613) (xy 87.723387 76.360489) (xy 87.723389 76.36049) (xy 87.723391 76.360492)\r\n\t\t\t\t(xy 87.82611 76.419797) (xy 87.826111 76.419797) (xy 87.826114 76.419799) (xy 87.940691 76.4505)\r\n\t\t\t\t(xy 87.940693 76.4505) (xy 88.059307 76.4505) (xy 88.059309 76.4505) (xy 88.173886 76.419799) (xy 88.173888 76.419797)\r\n\t\t\t\t(xy 88.173' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'89 76.419797) (xy 88.276608 76.360492) (xy 88.276608 76.360491) (xy 88.276613 76.360489)\r\n\t\t\t\t(xy 88.360489 76.276613) (xy 88.361871 76.27422) (xy 88.419797 76.17389) (xy 88.419797 76.173888)\r\n\t\t\t\t(xy 88.419799 76.173886) (xy 88.4505 76.059309) (xy 88.4505 75.940691) (xy 88.419799 75.826114)\r\n\t\t\t\t(xy 88.419797 75.826111) (xy 88.419797 75.826109) (xy 88.360492 75.723391) (xy 88.36049 75.723389)\r\n\t\t\t\t(xy 88.360489 75.723387) (xy 88.276613 75.639511) (xy 88.27661 75.639509) (xy 88.276608 75.639507)\r\n\t\t\t\t(xy 88.173889 75.580202) (xy 88.17389 75.580202) (xy 88.150318 75.573886) (xy 88.059309 75.5495)\r\n\t\t\t\t(xy 87.940691 75.5495) (xy 87.870567 75.568289) (xy 87.826109 75.580202) (xy 87.723391 75.639507)\r\n\t\t\t\t(xy 87.639507 75.723391) (xy 87.580202 75.826109) (xy 87.580201 75.826114) (xy 87.5495 75.940691)\r\n\t\t\t\t(xy 74.0005 75.940691) (xy 74.0005 75.340691) (xy 96.7495 75.340691) (xy 96.7495 75.459309) (xy 96.768849 75.531519)\r\n\t\t\t\t(xy 96.780202 75.57389) (xy 96.839507 75.676608) (xy 96.839509 75.67661) (xy 96.839511 75.676613)\r\n\t\t\t\t(xy 96.923387 75.760489) (xy 96.923389 75.76049) (xy 96.923391 75.760492) (xy 97.02611 75.819797)\r\n\t\t\t\t(xy 97.026111 75.819797) (xy 97.026114 75.819799) (xy 97.140691 75.8505) (xy 97.140693 75.8505)\r\n\t\t\t\t(xy 97.259307 75.8505) (xy 97.259309 75.8505) (xy 97.373886 75.819799) (xy 97.373888 75.819797)\r\n\t\t\t\t(xy 97.37389 75.819797) (xy 97.476608 75.760492) (xy 97.476608 75.760491) (xy 97.476613 75.760489)\r\n\t\t\t\t(xy 97.560489 75.676613) (xy 97.569798 75.660489) (xy 97.581229 75.640691) (xy 104.7495 75.640691)\r\n\t\t\t\t(xy 104.7495 75.759309) (xy 104.770989 75.839507) (xy 104.780202 75.87389) (xy 104.839507 75.976608)\r\n\t\t\t\t(xy 104.839509 75.97661) (xy 104.839511 75.976613) (xy 104.923387 76.060489) (xy 104.923389 76.06049)\r\n\t\t\t\t(xy 104.923391 76.060492) (xy 105.02611 76.119797) (xy 105.026111 76.119797) (xy 105.026114 76.119799)\r\n\t\t\t\t(xy 105.140691 76.1505) (xy 105.140693 76.1505) (xy 105.259307 76.1505) (xy 105.259309 76.1505)\r\n\t\t\t\t(xy 105.373886 76.119799) (xy 105.373888 76.119797) (xy 105.37389 76.119797) (xy 105.476608 76.060492)\r\n\t\t\t\t(xy 105.476608 76.060491) (xy 105.476613 76.060489) (xy 105.560489 75.976613) (xy 105.564016 75.970504)\r\n\t\t\t\t(xy 105.619797 75.87389) (xy 105.619797 75.873888) (xy 105.619799 75.873886) (xy 105.6505 75.759309)\r\n\t\t\t\t(xy 105.6505 75.640691) (xy 105.619799 75.526114) (xy 105.619797 75.526111) (xy 105.619797 75.526109)\r\n\t\t\t\t(xy 105.560492 75.423391) (xy 105.56049 75.423389) (xy 105.560489 75.423387) (xy 105.476613 75.339511)\r\n\t\t\t\t(xy 105.47661 75.339509) (xy 105.476608 75.339507) (xy 105.373889 75.280202) (xy 105.37389 75.280202)\r\n\t\t\t\t(xy 105.350318 75.273886) (xy 105.259309 75.2495) (xy 105.140691 75.2495) (xy 105.070567 75.268289)\r\n\t\t\t\t(xy 105.026109 75.280202) (xy 104.923391 75.339507) (xy 104.839507 75.423391) (xy 104.780202 75.526109)\r\n\t\t\t\t(xy 104.773667 75.5505) (xy 104.7495 75.640691) (xy 97.581229 75.640691) (xy 97.613555 75.584702)\r\n\t\t\t\t(xy 97.613555 75.584701) (xy 97.614214 75.583558) (xy 97.619799 75.573886) (xy 97.6505 75.459309)\r\n\t\t\t\t(xy 97.6505 75.340691) (xy 97.619799 75.226114) (xy 97.619797 75.226111) (xy 97.619797 75.226109)\r\n\t\t\t\t(xy 97.560492 75.123391) (xy 97.56049 75.123389) (xy 97.560489 75.123387) (xy 97.476613 75.039511)\r\n\t\t\t\t(xy 97.47661 75.039509) (xy 97.476608 75.039507) (xy 97.373889 74.980202) (xy 97.37389 74.980202)\r\n\t\t\t\t(xy 97.360351 74.976574) (xy 97.259309 74.9495) (xy 97.140691 74.9495) (xy 97.070567 74.968289)\r\n\t\t\t\t(xy 97.026109 74.980202) (xy 96.923391 75.039507) (xy 96.839507 75.123391) (xy 96.780202 75.226109)\r\n\t\t\t\t(xy 96.768671 75.269144) (xy 96.7495 75.340691) (xy 74.0005 75.340691) (xy 74.0005 71.940691) (xy 75.5495 71.940691)\r\n\t\t\t\t(xy 75.5495 72.059309) (xy 75.555824 72.082909) (xy 75.580202 72.17389) (xy 75.639507 72.276608)\r\n\t\t\t\t(xy 75.639509 72.27661) (xy 75.639511 72.276613) (xy 75.723387 72.360489) (xy 75.723389 72.36049)\r\n\t\t\t\t(xy 75.723391 72.360492) (xy 75.82611 72.419797) (xy 75.826111 72.419797) (xy 75.826114 72.419799)\r\n\t\t\t\t(xy 75.940691 72.4505) (xy 75.940693 72.4505) (xy 76.059307 72.4505) (xy 76.059309 72.4505) (xy 76.173886 72.419799)\r\n\t\t\t\t(xy 76.173888 72.419797) (xy 76.17389 72.419797) (xy 76.276608 72.360492) (xy 76.276608 72.360491)\r\n\t\t\t\t(xy 76.276613 72.360489) (xy 76.360489 72.276613) (xy 76.413513 72.184774) (xy 76.419797 72.17389)\r\n\t\t\t\t(xy 76.419797 72.173888) (xy 76.419799 72.173886) (xy 76.4505 72.059309) (xy 76.4505 71.940691)\r\n\t\t\t\t(xy 79.5495 71.940691) (xy 79.5495 72.059309) (xy 79.555824 72.082909) (xy 79.580202 72.17389) (xy 79.639507 72.276608)\r\n\t\t\t\t(xy 79.639509 72.27661) (xy 79.639511 72.276613) (xy 79.723387 72.360489) (xy 79.723389 72.36049)\r\n\t\t\t\t(xy 79.723391 72.360492) (xy 79.82611 72.419797) (xy 79.826111 72.419797) (xy 79.826114 72.419799)\r\n\t\t\t\t(xy 79.940691 72.4505) (xy 79.940693 72.4505) (xy 80.059307 72.4505) (xy 80.059309 72.4505) (xy 80.173886 72.419799)\r\n\t\t\t\t(xy 80.173888 72.419797) (xy 80.17389 72.419797) (xy 80.276608 72.360492) (xy 80.276608 72.360491)\r\n\t\t\t\t(xy 80.276613 72.360489) (xy 80.360489 72.276613) (xy 80.413513 72.184774) (xy 80.419797 72.17389)\r\n\t\t\t\t(xy 80.419797 72.173888) (xy 80.419799 72.173886) (xy 80.4505 72.059309) (xy 80.4505 71.940691)\r\n\t\t\t\t(xy 83.5495 71.940691) (xy 83.5495 72.059309) (xy 83.555824 72.082909) (xy 83.580202 72.17389) (xy 83.639507 72.276608)\r\n\t\t\t\t(xy 83.639509 72.27661) (xy 83.639511 72.276613) (xy 83.723387 72.360489) (xy 83.723389 72.36049)\r\n\t\t\t\t(xy 83.723391 72.360492) (xy 83.82611 72.419797) (xy 83.826111 72.419797) (xy 83.826114 72.419799)\r\n\t\t\t\t(xy 83.940691 72.4505) (xy 83.940693 72.4505) (xy 84.059307 72.4505) (xy 84.059309 72.4505) (xy 84.173886 72.419799)\r\n\t\t\t\t(xy 84.173888 72.419797) (xy 84.17389 72.419797) (xy 84.276608 72.360492) (xy 84.276608 72.360491)\r\n\t\t\t\t(xy 84.276613 72.360489) (xy 84.360489 72.276613) (xy 84.413513 72.184774) (xy 84.419797 72.17389)\r\n\t\t\t\t(xy 84.419797 72.173888) (xy 84.419799 72.173886) (xy 84.4505 72.059309) (xy 84.4505 71.940691)\r\n\t\t\t\t(xy 87.5495 71.940691) (xy 87.5495 72.059309) (xy 87.555824 72.082909) (xy 87.580202 72.17389) (xy 87.639507 72.276608)\r\n\t\t\t\t(xy 87.639509 72.27661) (xy 87.639511 72.276613) (xy 87.723387 72.360489) (xy 87.723389 72.36049)\r\n\t\t\t\t(xy 87.723391 72.360492) (xy 87.82611 72.419797) (xy 87.826111 72.419797) (xy 87.826114 72.419799)\r\n\t\t\t\t(xy 87.940691 72.4505) (xy 87.940693 72.4505) (xy 88.059307 72.4505) (xy 88.059309 72.4505) (xy 88.173886 72.419799)\r\n\t\t\t\t(xy 88.173888 72.419797) (xy 88.17389 72.419797) (xy 88.276608 72.360492) (xy 88.276608 72.360491)\r\n\t\t\t\t(xy 88.276613 72.360489) (xy 88.360489 72.276613) (xy 88.413513 72.184774) (xy 88.419797 72.17389)\r\n\t\t\t\t(xy 88.419797 72.173888) (xy 88.419799 72.173886) (xy 88.4505 72.059309) (xy 88.4505 71.940691)\r\n\t\t\t\t(xy 95.5495 71.940691) (xy 95.5495 72.059309) (xy 95.555824 72.082909) (xy 95.580202 72.17389) (xy 95.639507 72.276608)\r\n\t\t\t\t(xy 95.639509 72.27661) (xy 95.639511 72.276613) (xy 95.723387 72.360489) (xy 95.723389 72.36049)\r\n\t\t\t\t(xy 95.723391 72.360492) (xy 95.82611 72.419797) (xy 95.826111 72.419797) (xy 95.826114 72.419799)\r\n\t\t\t\t(xy 95.940691 72.4505) (xy 95.940693 72.4505) (xy 96.059307 72.4505) (xy 96.059309 72.4505) (xy 96.173886 72.419799)\r\n\t\t\t\t(xy 96.173888 72.419797) (xy 96.17389 72.419797) (xy 96.276608 72.360492) (xy 96.276608 72.360491)\r\n\t\t\t\t(xy 96.276613 72.360489) (xy 96.360489 72.276613) (xy 96.413513 72.184774) (xy 96.419797 72.17389)\r\n\t\t\t\t(xy 96.419797 72.173888) (xy 96.419799 72.173886) (xy 96.4505 72.059309) (xy 96.4505 71.940691)\r\n\t\t\t\t(xy 99.5495 71.940691) (xy 99.5495 72.059309) (xy 99.555824 72.082909) (xy 99.580202 72.17389) (xy 99.639507 72.276608)\r\n\t\t\t\t(xy 99.639509 72.27661) (xy 99.639511 72.276613) (xy 99.723387 72.360489) (xy 99.723389 72.36049)\r\n\t\t\t\t(xy 99.723391 72.360492) (xy 99.82611 72.419797) (xy 99.826111 72.419797) (xy 99.826114 72.419799)\r\n\t\t\t\t(xy 99.940691 72.4505) (xy 99.940693 72.4505) (xy 100.059307 72.4505) (xy 100.059309 72.4505) (xy 100.173886 72.419799)\r\n\t\t\t\t(xy 100.173888 72.419797) (xy 100.17389 72.419797) (xy 100.276608 72.360492) (xy 100.276608 72.360491)\r\n\t\t\t\t(xy 100.276613 72.360489) (xy 100.360489 72.276613) (xy 100.413513 72.184774) (xy 100.419797 72.17389)\r\n\t\t\t\t(xy 100.419797 72.173888) (xy 100.419799 72.173886' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b') (xy 100.4505 72.059309) (xy 100.4505 71.940691)\r\n\t\t\t\t(xy 111.5495 71.940691) (xy 111.5495 72.059309) (xy 111.555824 72.082909) (xy 111.580202 72.17389)\r\n\t\t\t\t(xy 111.639507 72.276608) (xy 111.639509 72.27661) (xy 111.639511 72.276613) (xy 111.723387 72.360489)\r\n\t\t\t\t(xy 111.723389 72.36049) (xy 111.723391 72.360492) (xy 111.82611 72.419797) (xy 111.826111 72.419797)\r\n\t\t\t\t(xy 111.826114 72.419799) (xy 111.940691 72.4505) (xy 111.940693 72.4505) (xy 112.059307 72.4505)\r\n\t\t\t\t(xy 112.059309 72.4505) (xy 112.173886 72.419799) (xy 112.173888 72.419797) (xy 112.17389 72.419797)\r\n\t\t\t\t(xy 112.276608 72.360492) (xy 112.276608 72.360491) (xy 112.276613 72.360489) (xy 112.360489 72.276613)\r\n\t\t\t\t(xy 112.413513 72.184774) (xy 112.419797 72.17389) (xy 112.419797 72.173888) (xy 112.419799 72.173886)\r\n\t\t\t\t(xy 112.4505 72.059309) (xy 112.4505 71.940691) (xy 119.5495 71.940691) (xy 119.5495 72.059309)\r\n\t\t\t\t(xy 119.555824 72.082909) (xy 119.580202 72.17389) (xy 119.639507 72.276608) (xy 119.639509 72.27661)\r\n\t\t\t\t(xy 119.639511 72.276613) (xy 119.723387 72.360489) (xy 119.723389 72.36049) (xy 119.723391 72.360492)\r\n\t\t\t\t(xy 119.82611 72.419797) (xy 119.826111 72.419797) (xy 119.826114 72.419799) (xy 119.940691 72.4505)\r\n\t\t\t\t(xy 119.940693 72.4505) (xy 120.059307 72.4505) (xy 120.059309 72.4505) (xy 120.173886 72.419799)\r\n\t\t\t\t(xy 120.173888 72.419797) (xy 120.17389 72.419797) (xy 120.276608 72.360492) (xy 120.276608 72.360491)\r\n\t\t\t\t(xy 120.276613 72.360489) (xy 120.360489 72.276613) (xy 120.413513 72.184773) (xy 138.737 72.184773)\r\n\t\t\t\t(xy 138.737 72.290227) (xy 138.764293 72.392087) (xy 138.764294 72.392089) (xy 138.764294 72.39209)\r\n\t\t\t\t(xy 138.817018 72.48341) (xy 138.81702 72.483413) (xy 138.891587 72.55798) (xy 138.982913 72.610707)\r\n\t\t\t\t(xy 139.052579 72.629373) (xy 139.103892 72.662697) (xy 139.125819 72.719819) (xy 139.109984 72.778919)\r\n\t\t\t\t(xy 139.062434 72.817424) (xy 139.052586 72.820624) (xy 138.982913 72.839293) (xy 138.982912 72.839293)\r\n\t\t\t\t(xy 138.98291 72.839294) (xy 138.982909 72.839294) (xy 138.891589 72.892018) (xy 138.817018 72.966589)\r\n\t\t\t\t(xy 138.764294 73.057909) (xy 138.764294 73.05791) (xy 138.764293 73.057912) (xy 138.764293 73.057913)\r\n\t\t\t\t(xy 138.737 73.159773) (xy 138.737 73.265227) (xy 138.764293 73.367087) (xy 138.764294 73.367089)\r\n\t\t\t\t(xy 138.764294 73.36709) (xy 138.817018 73.45841) (xy 138.81702 73.458413) (xy 138.891587 73.53298)\r\n\t\t\t\t(xy 138.982913 73.585707) (xy 139.052579 73.604373) (xy 139.103892 73.637697) (xy 139.125819 73.694819)\r\n\t\t\t\t(xy 139.109984 73.753919) (xy 139.062434 73.792424) (xy 139.052586 73.795624) (xy 138.982913 73.814293)\r\n\t\t\t\t(xy 138.982912 73.814293) (xy 138.98291 73.814294) (xy 138.982909 73.814294) (xy 138.891589 73.867018)\r\n\t\t\t\t(xy 138.817018 73.941589) (xy 138.764294 74.032909) (xy 138.764294 74.03291) (xy 138.764293 74.032912)\r\n\t\t\t\t(xy 138.764293 74.032913) (xy 138.737 74.134773) (xy 138.737 74.240227) (xy 138.764293 74.342087)\r\n\t\t\t\t(xy 138.764294 74.342089) (xy 138.764294 74.34209) (xy 138.817018 74.43341) (xy 138.81702 74.433413)\r\n\t\t\t\t(xy 138.891587 74.50798) (xy 138.982913 74.560707) (xy 139.084773 74.588) (xy 139.084775 74.588)\r\n\t\t\t\t(xy 139.190225 74.588) (xy 139.190227 74.588) (xy 139.292087 74.560707) (xy 139.383413 74.50798)\r\n\t\t\t\t(xy 139.45798 74.433413) (xy 139.510707 74.342087) (xy 139.529374 74.272419) (xy 139.562697 74.221107)\r\n\t\t\t\t(xy 139.619818 74.19918) (xy 139.678919 74.215015) (xy 139.717424 74.262565) (xy 139.720622 74.272408)\r\n\t\t\t\t(xy 139.739293 74.342087) (xy 139.739294 74.342089) (xy 139.739294 74.34209) (xy 139.792018 74.43341)\r\n\t\t\t\t(xy 139.79202 74.433413) (xy 139.866587 74.50798) (xy 139.957913 74.560707) (xy 140.059773 74.588)\r\n\t\t\t\t(xy 140.059775 74.588) (xy 140.165225 74.588) (xy 140.165227 74.588) (xy 140.267087 74.560707) (xy 140.358413 74.50798)\r\n\t\t\t\t(xy 140.43298 74.433413) (xy 140.485707 74.342087) (xy 140.504374 74.272419) (xy 140.537697 74.221107)\r\n\t\t\t\t(xy 140.594818 74.19918) (xy 140.653919 74.215015) (xy 140.692424 74.262565) (xy 140.695622 74.272408)\r\n\t\t\t\t(xy 140.714293 74.342087) (xy 140.714294 74.342089) (xy 140.714294 74.34209) (xy 140.767018 74.43341)\r\n\t\t\t\t(xy 140.76702 74.433413) (xy 140.841587 74.50798) (xy 140.932913 74.560707) (xy 141.034773 74.588)\r\n\t\t\t\t(xy 141.034775 74.588) (xy 141.140225 74.588) (xy 141.140227 74.588) (xy 141.242087 74.560707) (xy 141.333413 74.50798)\r\n\t\t\t\t(xy 141.40798 74.433413) (xy 141.460707 74.342087) (xy 141.488 74.240227) (xy 141.488 74.134773)\r\n\t\t\t\t(xy 141.460707 74.032913) (xy 141.452375 74.018482) (xy 141.407981 73.941589) (xy 141.40798 73.941587)\r\n\t\t\t\t(xy 141.333413 73.86702) (xy 141.242087 73.814293) (xy 141.172419 73.795625) (xy 141.121107 73.762303)\r\n\t\t\t\t(xy 141.09918 73.705182) (xy 141.115015 73.646081) (xy 141.162565 73.607576) (xy 141.172408 73.604377)\r\n\t\t\t\t(xy 141.242087 73.585707) (xy 141.333413 73.53298) (xy 141.40798 73.458413) (xy 141.460707 73.367087)\r\n\t\t\t\t(xy 141.488 73.265227) (xy 141.488 73.159773) (xy 141.460707 73.057913) (xy 141.40798 72.966587)\r\n\t\t\t\t(xy 141.333413 72.89202) (xy 141.242087 72.839293) (xy 141.172419 72.820625) (xy 141.121107 72.787303)\r\n\t\t\t\t(xy 141.09918 72.730182) (xy 141.115015 72.671081) (xy 141.152544 72.640691) (xy 143.9495 72.640691)\r\n\t\t\t\t(xy 143.9495 72.759309) (xy 143.954755 72.778919) (xy 143.980202 72.87389) (xy 144.039507 72.976608)\r\n\t\t\t\t(xy 144.039509 72.97661) (xy 144.039511 72.976613) (xy 144.123387 73.060489) (xy 144.123389 73.06049)\r\n\t\t\t\t(xy 144.123391 73.060492) (xy 144.22611 73.119797) (xy 144.226111 73.119797) (xy 144.226114 73.119799)\r\n\t\t\t\t(xy 144.340691 73.1505) (xy 144.340693 73.1505) (xy 144.459307 73.1505) (xy 144.459309 73.1505)\r\n\t\t\t\t(xy 144.573886 73.119799) (xy 144.573888 73.119797) (xy 144.57389 73.119797) (xy 144.676608 73.060492)\r\n\t\t\t\t(xy 144.676608 73.060491) (xy 144.676613 73.060489) (xy 144.760489 72.976613) (xy 144.760492 72.976608)\r\n\t\t\t\t(xy 144.819797 72.87389) (xy 144.819797 72.873888) (xy 144.819799 72.873886) (xy 144.8505 72.759309)\r\n\t\t\t\t(xy 144.8505 72.640691) (xy 144.819799 72.526114) (xy 144.819797 72.526111) (xy 144.819797 72.526109)\r\n\t\t\t\t(xy 144.760492 72.423391) (xy 144.76049 72.423389) (xy 144.760489 72.423387) (xy 144.676613 72.339511)\r\n\t\t\t\t(xy 144.67661 72.339509) (xy 144.676608 72.339507) (xy 144.573889 72.280202) (xy 144.57389 72.280202)\r\n\t\t\t\t(xy 144.517211 72.265015) (xy 144.459309 72.2495) (xy 144.340691 72.2495) (xy 144.282789 72.265015)\r\n\t\t\t\t(xy 144.226109 72.280202) (xy 144.123391 72.339507) (xy 144.039507 72.423391) (xy 143.980202 72.526109)\r\n\t\t\t\t(xy 143.980201 72.526114) (xy 143.9495 72.640691) (xy 141.152544 72.640691) (xy 141.162565 72.632576)\r\n\t\t\t\t(xy 141.172408 72.629377) (xy 141.242087 72.610707) (xy 141.333413 72.55798) (xy 141.40798 72.483413)\r\n\t\t\t\t(xy 141.460707 72.392087) (xy 141.488 72.290227) (xy 141.488 72.184773) (xy 141.460707 72.082913)\r\n\t\t\t\t(xy 141.40798 71.991587) (xy 141.357084 71.940691) (xy 147.5495 71.940691) (xy 147.5495 72.059309)\r\n\t\t\t\t(xy 147.555824 72.082909) (xy 147.580202 72.17389) (xy 147.639507 72.276608) (xy 147.639509 72.27661)\r\n\t\t\t\t(xy 147.639511 72.276613) (xy 147.723387 72.360489) (xy 147.723389 72.36049) (xy 147.723391 72.360492)\r\n\t\t\t\t(xy 147.82611 72.419797) (xy 147.826111 72.419797) (xy 147.826114 72.419799) (xy 147.940691 72.4505)\r\n\t\t\t\t(xy 147.940693 72.4505) (xy 148.059307 72.4505) (xy 148.059309 72.4505) (xy 148.173886 72.419799)\r\n\t\t\t\t(xy 148.173888 72.419797) (xy 148.17389 72.419797) (xy 148.276608 72.360492) (xy 148.276608 72.360491)\r\n\t\t\t\t(xy 148.276613 72.360489) (xy 148.360489 72.276613) (xy 148.413513 72.184774) (xy 148.419797 72.17389)\r\n\t\t\t\t(xy 148.419797 72.173888) (xy 148.419799 72.173886) (xy 148.4505 72.059309) (xy 148.4505 71.940691)\r\n\t\t\t\t(xy 151.5495 71.940691) (xy 151.5495 72.059309) (xy 151.555824 72.082909) (xy 151.580202 72.17389)\r\n\t\t\t\t(xy 151.639507 72.276608) (xy 151.639509 72.27661) (xy 151.639511 72.276613) (xy 151.723387 72.360489)\r\n\t\t\t\t(xy 151.723389 72.36049) (xy 151.723391 72.360492) (xy 151.82611 72.419797) (xy 151.826111 72.419797)\r\n\t\t\t\t(xy 151.826114 72.419799) (xy 151.940691 72.4505) (xy 151.940693 72.4505) (xy 152.059307 72.4505)\r\n\t\t\t\t(xy 152.059309 72.4505) (xy 152.173886 72.419799) (xy 152.173888 72.419797) (xy 152.17389 72.419797)\r\n\t\t\t\t(xy 152.276608 72.360492)' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b' (xy 152.276608 72.360491) (xy 152.276613 72.360489) (xy 152.360489 72.276613)\r\n\t\t\t\t(xy 152.413513 72.184774) (xy 152.419797 72.17389) (xy 152.419797 72.173888) (xy 152.419799 72.173886)\r\n\t\t\t\t(xy 152.4505 72.059309) (xy 152.4505 71.940691) (xy 152.419799 71.826114) (xy 152.419797 71.826111)\r\n\t\t\t\t(xy 152.419797 71.826109) (xy 152.360492 71.723391) (xy 152.36049 71.723389) (xy 152.360489 71.723387)\r\n\t\t\t\t(xy 152.276613 71.639511) (xy 152.27661 71.639509) (xy 152.276608 71.639507) (xy 152.173889 71.580202)\r\n\t\t\t\t(xy 152.17389 71.580202) (xy 152.160351 71.576574) (xy 152.059309 71.5495) (xy 151.940691 71.5495)\r\n\t\t\t\t(xy 151.870567 71.568289) (xy 151.826109 71.580202) (xy 151.723391 71.639507) (xy 151.639507 71.723391)\r\n\t\t\t\t(xy 151.580202 71.826109) (xy 151.580201 71.826114) (xy 151.5495 71.940691) (xy 148.4505 71.940691)\r\n\t\t\t\t(xy 148.419799 71.826114) (xy 148.419797 71.826111) (xy 148.419797 71.826109) (xy 148.360492 71.723391)\r\n\t\t\t\t(xy 148.36049 71.723389) (xy 148.360489 71.723387) (xy 148.276613 71.639511) (xy 148.27661 71.639509)\r\n\t\t\t\t(xy 148.276608 71.639507) (xy 148.173889 71.580202) (xy 148.17389 71.580202) (xy 148.160351 71.576574)\r\n\t\t\t\t(xy 148.059309 71.5495) (xy 147.940691 71.5495) (xy 147.870567 71.568289) (xy 147.826109 71.580202)\r\n\t\t\t\t(xy 147.723391 71.639507) (xy 147.639507 71.723391) (xy 147.580202 71.826109) (xy 147.580201 71.826114)\r\n\t\t\t\t(xy 147.5495 71.940691) (xy 141.357084 71.940691) (xy 141.333413 71.91702) (xy 141.242087 71.864293)\r\n\t\t\t\t(xy 141.140227 71.837) (xy 141.034773 71.837) (xy 140.932913 71.864293) (xy 140.932912 71.864293)\r\n\t\t\t\t(xy 140.93291 71.864294) (xy 140.932909 71.864294) (xy 140.841589 71.917018) (xy 140.767018 71.991589)\r\n\t\t\t\t(xy 140.714294 72.082909) (xy 140.714294 72.08291) (xy 140.695627 72.152578) (xy 140.662303 72.203892)\r\n\t\t\t\t(xy 140.605181 72.225819) (xy 140.546081 72.209984) (xy 140.507576 72.162434) (xy 140.504373 72.152578)\r\n\t\t\t\t(xy 140.485707 72.082913) (xy 140.43298 71.991587) (xy 140.358413 71.91702) (xy 140.267087 71.864293)\r\n\t\t\t\t(xy 140.165227 71.837) (xy 140.059773 71.837) (xy 139.957913 71.864293) (xy 139.957912 71.864293)\r\n\t\t\t\t(xy 139.95791 71.864294) (xy 139.957909 71.864294) (xy 139.866589 71.917018) (xy 139.792018 71.991589)\r\n\t\t\t\t(xy 139.739294 72.082909) (xy 139.739294 72.08291) (xy 139.720627 72.152578) (xy 139.687303 72.203892)\r\n\t\t\t\t(xy 139.630181 72.225819) (xy 139.571081 72.209984) (xy 139.532576 72.162434) (xy 139.529373 72.152578)\r\n\t\t\t\t(xy 139.510707 72.082913) (xy 139.45798 71.991587) (xy 139.383413 71.91702) (xy 139.292087 71.864293)\r\n\t\t\t\t(xy 139.190227 71.837) (xy 139.084773 71.837) (xy 138.982913 71.864293) (xy 138.982912 71.864293)\r\n\t\t\t\t(xy 138.98291 71.864294) (xy 138.982909 71.864294) (xy 138.891589 71.917018) (xy 138.817018 71.991589)\r\n\t\t\t\t(xy 138.764294 72.082909) (xy 138.764294 72.08291) (xy 138.764293 72.082912) (xy 138.764293 72.082913)\r\n\t\t\t\t(xy 138.737 72.184773) (xy 120.413513 72.184773) (xy 120.419799 72.173886) (xy 120.4505 72.059309)\r\n\t\t\t\t(xy 120.4505 71.940691) (xy 120.419799 71.826114) (xy 120.419797 71.826111) (xy 120.419797 71.826109)\r\n\t\t\t\t(xy 120.360492 71.723391) (xy 120.36049 71.723389) (xy 120.360489 71.723387) (xy 120.276613 71.639511)\r\n\t\t\t\t(xy 120.27661 71.639509) (xy 120.276608 71.639507) (xy 120.173889 71.580202) (xy 120.17389 71.580202)\r\n\t\t\t\t(xy 120.160351 71.576574) (xy 120.059309 71.5495) (xy 119.940691 71.5495) (xy 119.870567 71.568289)\r\n\t\t\t\t(xy 119.826109 71.580202) (xy 119.723391 71.639507) (xy 119.639507 71.723391) (xy 119.580202 71.826109)\r\n\t\t\t\t(xy 119.580201 71.826114) (xy 119.5495 71.940691) (xy 112.4505 71.940691) (xy 112.419799 71.826114)\r\n\t\t\t\t(xy 112.419797 71.826111) (xy 112.419797 71.826109) (xy 112.360492 71.723391) (xy 112.36049 71.723389)\r\n\t\t\t\t(xy 112.360489 71.723387) (xy 112.276613 71.639511) (xy 112.27661 71.639509) (xy 112.276608 71.639507)\r\n\t\t\t\t(xy 112.173889 71.580202) (xy 112.17389 71.580202) (xy 112.160351 71.576574) (xy 112.059309 71.5495)\r\n\t\t\t\t(xy 111.940691 71.5495) (xy 111.870567 71.568289) (xy 111.826109 71.580202) (xy 111.723391 71.639507)\r\n\t\t\t\t(xy 111.639507 71.723391) (xy 111.580202 71.826109) (xy 111.580201 71.826114) (xy 111.5495 71.940691)\r\n\t\t\t\t(xy 100.4505 71.940691) (xy 100.419799 71.826114) (xy 100.419797 71.826111) (xy 100.419797 71.826109)\r\n\t\t\t\t(xy 100.360492 71.723391) (xy 100.36049 71.723389) (xy 100.360489 71.723387) (xy 100.276613 71.639511)\r\n\t\t\t\t(xy 100.27661 71.639509) (xy 100.276608 71.639507) (xy 100.173889 71.580202) (xy 100.17389 71.580202)\r\n\t\t\t\t(xy 100.160351 71.576574) (xy 100.059309 71.5495) (xy 99.940691 71.5495) (xy 99.870567 71.568289)\r\n\t\t\t\t(xy 99.826109 71.580202) (xy 99.723391 71.639507) (xy 99.639507 71.723391) (xy 99.580202 71.826109)\r\n\t\t\t\t(xy 99.580201 71.826114) (xy 99.5495 71.940691) (xy 96.4505 71.940691) (xy 96.419799 71.826114)\r\n\t\t\t\t(xy 96.419797 71.826111) (xy 96.419797 71.826109) (xy 96.360492 71.723391) (xy 96.36049 71.723389)\r\n\t\t\t\t(xy 96.360489 71.723387) (xy 96.276613 71.639511) (xy 96.27661 71.639509) (xy 96.276608 71.639507)\r\n\t\t\t\t(xy 96.173889 71.580202) (xy 96.17389 71.580202) (xy 96.160351 71.576574) (xy 96.059309 71.5495)\r\n\t\t\t\t(xy 95.940691 71.5495) (xy 95.870567 71.568289) (xy 95.826109 71.580202) (xy 95.723391 71.639507)\r\n\t\t\t\t(xy 95.639507 71.723391) (xy 95.580202 71.826109) (xy 95.580201 71.826114) (xy 95.5495 71.940691)\r\n\t\t\t\t(xy 88.4505 71.940691) (xy 88.419799 71.826114) (xy 88.419797 71.826111) (xy 88.419797 71.826109)\r\n\t\t\t\t(xy 88.360492 71.723391) (xy 88.36049 71.723389) (xy 88.360489 71.723387) (xy 88.276613 71.639511)\r\n\t\t\t\t(xy 88.27661 71.639509) (xy 88.276608 71.639507) (xy 88.173889 71.580202) (xy 88.17389 71.580202)\r\n\t\t\t\t(xy 88.160351 71.576574) (xy 88.059309 71.5495) (xy 87.940691 71.5495) (xy 87.870567 71.568289)\r\n\t\t\t\t(xy 87.826109 71.580202) (xy 87.723391 71.639507) (xy 87.639507 71.723391) (xy 87.580202 71.826109)\r\n\t\t\t\t(xy 87.580201 71.826114) (xy 87.5495 71.940691) (xy 84.4505 71.940691) (xy 84.419799 71.826114)\r\n\t\t\t\t(xy 84.419797 71.826111) (xy 84.419797 71.826109) (xy 84.360492 71.723391) (xy 84.36049 71.723389)\r\n\t\t\t\t(xy 84.360489 71.723387) (xy 84.276613 71.639511) (xy 84.27661 71.639509) (xy 84.276608 71.639507)\r\n\t\t\t\t(xy 84.173889 71.580202) (xy 84.17389 71.580202) (xy 84.160351 71.576574) (xy 84.059309 71.5495)\r\n\t\t\t\t(xy 83.940691 71.5495) (xy 83.870567 71.568289) (xy 83.826109 71.580202) (xy 83.723391 71.639507)\r\n\t\t\t\t(xy 83.639507 71.723391) (xy 83.580202 71.826109) (xy 83.580201 71.826114) (xy 83.5495 71.940691)\r\n\t\t\t\t(xy 80.4505 71.940691) (xy 80.419799 71.826114) (xy 80.419797 71.826111) (xy 80.419797 71.826109)\r\n\t\t\t\t(xy 80.360492 71.723391) (xy 80.36049 71.723389) (xy 80.360489 71.723387) (xy 80.276613 71.639511)\r\n\t\t\t\t(xy 80.27661 71.639509) (xy 80.276608 71.639507) (xy 80.173889 71.580202) (xy 80.17389 71.580202)\r\n\t\t\t\t(xy 80.160351 71.576574) (xy 80.059309 71.5495) (xy 79.940691 71.5495) (xy 79.870567 71.568289)\r\n\t\t\t\t(xy 79.826109 71.580202) (xy 79.723391 71.639507) (xy 79.639507 71.723391) (xy 79.580202 71.826109)\r\n\t\t\t\t(xy 79.580201 71.826114) (xy 79.5495 71.940691) (xy 76.4505 71.940691) (xy 76.419799 71.826114)\r\n\t\t\t\t(xy 76.419797 71.826111) (xy 76.419797 71.826109) (xy 76.360492 71.723391) (xy 76.36049 71.723389)\r\n\t\t\t\t(xy 76.360489 71.723387) (xy 76.276613 71.639511) (xy 76.27661 71.639509) (xy 76.276608 71.639507)\r\n\t\t\t\t(xy 76.173889 71.580202) (xy 76.17389 71.580202) (xy 76.160351 71.576574) (xy 76.059309 71.5495)\r\n\t\t\t\t(xy 75.940691 71.5495) (xy 75.870567 71.568289) (xy 75.826109 71.580202) (xy 75.723391 71.639507)\r\n\t\t\t\t(xy 75.639507 71.723391) (xy 75.580202 71.826109) (xy 75.580201 71.826114) (xy 75.5495 71.940691)\r\n\t\t\t\t(xy 74.0005 71.940691) (xy 74.0005 69.315691) (xy 92.8495 69.315691) (xy 92.8495 69.434309) (xy 92.85235 69.444945)\r\n\t\t\t\t(xy 92.880202 69.54889) (xy 92.939507 69.651608) (xy 92.939509 69.65161) (xy 92.939511 69.651613)\r\n\t\t\t\t(xy 93.017896 69.729998) (xy 93.045672 69.784513) (xy 93.036101 69.844945) (xy 93.017897 69.87)\r\n\t\t\t\t(xy 92.939511 69.948387) (xy 92.939508 69.94839) (xy 92.939507 69.948391) (xy 92.880202 70.051109)\r\n\t\t\t\t(xy 92.880201 70.051114) (xy 92.8495 70.165691) (xy 92.8495 70.284309) (xy 92.876574 70.385351)\r\n\t\t\t\t(xy 92.880202 70.39889) (xy 92.939507 70.501608) (xy 92.939509 70.50161) (xy 92.939511 70.501613)\r\n\t\t\t\t(' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'xy 93.023387 70.585489) (xy 93.023389 70.58549) (xy 93.023391 70.585492) (xy 93.12611 70.644797)\r\n\t\t\t\t(xy 93.126111 70.644797) (xy 93.126114 70.644799) (xy 93.240691 70.6755) (xy 93.240693 70.6755)\r\n\t\t\t\t(xy 93.359307 70.6755) (xy 93.359309 70.6755) (xy 93.473886 70.644799) (xy 93.473888 70.644797)\r\n\t\t\t\t(xy 93.47389 70.644797) (xy 93.576608 70.585492) (xy 93.576608 70.585491) (xy 93.576613 70.585489)\r\n\t\t\t\t(xy 93.660489 70.501613) (xy 93.719799 70.398886) (xy 93.7505 70.284309) (xy 93.7505 70.165691)\r\n\t\t\t\t(xy 93.719799 70.051114) (xy 93.719797 70.051111) (xy 93.719797 70.051109) (xy 93.660492 69.948391)\r\n\t\t\t\t(xy 93.66049 69.948389) (xy 93.660489 69.948387) (xy 93.582103 69.870001) (xy 93.554328 69.815487)\r\n\t\t\t\t(xy 93.563899 69.755055) (xy 93.582102 69.729999) (xy 93.660489 69.651613) (xy 93.660778 69.651113)\r\n\t\t\t\t(xy 93.719797 69.54889) (xy 93.719797 69.548888) (xy 93.719799 69.548886) (xy 93.7505 69.434309)\r\n\t\t\t\t(xy 93.7505 69.315691) (xy 93.719799 69.201114) (xy 93.719797 69.201111) (xy 93.719797 69.201109)\r\n\t\t\t\t(xy 93.660492 69.098391) (xy 93.66049 69.098389) (xy 93.660489 69.098387) (xy 93.576613 69.014511)\r\n\t\t\t\t(xy 93.57661 69.014509) (xy 93.576608 69.014507) (xy 93.542713 68.994938) (xy 93.542712 68.994938)\r\n\t\t\t\t(xy 93.473888 68.955202) (xy 93.473887 68.955201) (xy 93.473886 68.955201) (xy 93.359309 68.9245)\r\n\t\t\t\t(xy 93.240691 68.9245) (xy 93.170567 68.943289) (xy 93.126109 68.955202) (xy 93.023391 69.014507)\r\n\t\t\t\t(xy 92.939507 69.098391) (xy 92.880202 69.201109) (xy 92.880201 69.201114) (xy 92.8495 69.315691)\r\n\t\t\t\t(xy 74.0005 69.315691) (xy 74.0005 68.915691) (xy 104.0495 68.915691) (xy 104.0495 69.034309) (xy 104.06667 69.098387)\r\n\t\t\t\t(xy 104.080202 69.14889) (xy 104.139507 69.251608) (xy 104.139509 69.25161) (xy 104.139511 69.251613)\r\n\t\t\t\t(xy 104.217896 69.329998) (xy 104.245672 69.384513) (xy 104.236101 69.444945) (xy 104.217897 69.47)\r\n\t\t\t\t(xy 104.161789 69.526109) (xy 104.139508 69.54839) (xy 104.139507 69.548391) (xy 104.080202 69.651109)\r\n\t\t\t\t(xy 104.080068 69.651609) (xy 104.0495 69.765691) (xy 104.0495 69.884309) (xy 104.06667 69.948387)\r\n\t\t\t\t(xy 104.080202 69.99889) (xy 104.139507 70.101608) (xy 104.139509 70.10161) (xy 104.139511 70.101613)\r\n\t\t\t\t(xy 104.223387 70.185489) (xy 104.223389 70.18549) (xy 104.223391 70.185492) (xy 104.32611 70.244797)\r\n\t\t\t\t(xy 104.326111 70.244797) (xy 104.326114 70.244799) (xy 104.440691 70.2755) (xy 104.440693 70.2755)\r\n\t\t\t\t(xy 104.559307 70.2755) (xy 104.559309 70.2755) (xy 104.673886 70.244799) (xy 104.673888 70.244797)\r\n\t\t\t\t(xy 104.67389 70.244797) (xy 104.776608 70.185492) (xy 104.776608 70.185491) (xy 104.776613 70.185489)\r\n\t\t\t\t(xy 104.860489 70.101613) (xy 104.860492 70.101608) (xy 104.919797 69.99889) (xy 104.919797 69.998888)\r\n\t\t\t\t(xy 104.919799 69.998886) (xy 104.9505 69.884309) (xy 104.9505 69.765691) (xy 104.919799 69.651114)\r\n\t\t\t\t(xy 104.913782 69.640692) (xy 104.913781 69.640691) (xy 130.9495 69.640691) (xy 130.9495 69.759309)\r\n\t\t\t\t(xy 130.961797 69.805201) (xy 130.980202 69.87389) (xy 131.039507 69.976608) (xy 131.039509 69.97661)\r\n\t\t\t\t(xy 131.039511 69.976613) (xy 131.123387 70.060489) (xy 131.123389 70.06049) (xy 131.123391 70.060492)\r\n\t\t\t\t(xy 131.22611 70.119797) (xy 131.226111 70.119797) (xy 131.226114 70.119799) (xy 131.340691 70.1505)\r\n\t\t\t\t(xy 131.340693 70.1505) (xy 131.459307 70.1505) (xy 131.459309 70.1505) (xy 131.573886 70.119799)\r\n\t\t\t\t(xy 131.573888 70.119797) (xy 131.57389 70.119797) (xy 131.676608 70.060492) (xy 131.676608 70.060491)\r\n\t\t\t\t(xy 131.676613 70.060489) (xy 131.760489 69.976613) (xy 131.776784 69.94839) (xy 131.819797 69.87389)\r\n\t\t\t\t(xy 131.819797 69.873888) (xy 131.819799 69.873886) (xy 131.8505 69.759309) (xy 131.8505 69.640691)\r\n\t\t\t\t(xy 131.819799 69.526114) (xy 131.819797 69.526111) (xy 131.819797 69.526109) (xy 131.760492 69.423391)\r\n\t\t\t\t(xy 131.76049 69.423389) (xy 131.760489 69.423387) (xy 131.676613 69.339511) (xy 131.67661 69.339509)\r\n\t\t\t\t(xy 131.676608 69.339507) (xy 131.573889 69.280202) (xy 131.57389 69.280202) (xy 131.560351 69.276574)\r\n\t\t\t\t(xy 131.459309 69.2495) (xy 131.340691 69.2495) (xy 131.270567 69.268289) (xy 131.226109 69.280202)\r\n\t\t\t\t(xy 131.123391 69.339507) (xy 131.039507 69.423391) (xy 130.980202 69.526109) (xy 130.980201 69.526114)\r\n\t\t\t\t(xy 130.9495 69.640691) (xy 104.913781 69.640691) (xy 104.860492 69.548391) (xy 104.86049 69.548389)\r\n\t\t\t\t(xy 104.860489 69.548387) (xy 104.782103 69.470001) (xy 104.754328 69.415487) (xy 104.763899 69.355055)\r\n\t\t\t\t(xy 104.782102 69.329999) (xy 104.860489 69.251613) (xy 104.919799 69.148886) (xy 104.9505 69.034309)\r\n\t\t\t\t(xy 104.9505 68.915691) (xy 104.919799 68.801114) (xy 104.919797 68.801111) (xy 104.919797 68.801109)\r\n\t\t\t\t(xy 104.860492 68.698391) (xy 104.86049 68.698389) (xy 104.860489 68.698387) (xy 104.776613 68.614511)\r\n\t\t\t\t(xy 104.77661 68.614509) (xy 104.776608 68.614507) (xy 104.673889 68.555202) (xy 104.67389 68.555202)\r\n\t\t\t\t(xy 104.648213 68.548322) (xy 104.559309 68.5245) (xy 104.440691 68.5245) (xy 104.370567 68.543289)\r\n\t\t\t\t(xy 104.326109 68.555202) (xy 104.223391 68.614507) (xy 104.139507 68.698391) (xy 104.080202 68.801109)\r\n\t\t\t\t(xy 104.080201 68.801114) (xy 104.0495 68.915691) (xy 74.0005 68.915691) (xy 74.0005 68.548322)\r\n\t\t\t\t(xy 74.019407 68.490131) (xy 74.029496 68.478318) (xy 74.567123 67.940691) (xy 75.5495 67.940691)\r\n\t\t\t\t(xy 75.5495 68.059309) (xy 75.571255 68.140499) (xy 75.580202 68.17389) (xy 75.639507 68.276608)\r\n\t\t\t\t(xy 75.639509 68.27661) (xy 75.639511 68.276613) (xy 75.723387 68.360489) (xy 75.723389 68.36049)\r\n\t\t\t\t(xy 75.723391 68.360492) (xy 75.82611 68.419797) (xy 75.826111 68.419797) (xy 75.826114 68.419799)\r\n\t\t\t\t(xy 75.940691 68.4505) (xy 75.940693 68.4505) (xy 76.059307 68.4505) (xy 76.059309 68.4505) (xy 76.173886 68.419799)\r\n\t\t\t\t(xy 76.173888 68.419797) (xy 76.17389 68.419797) (xy 76.276608 68.360492) (xy 76.276608 68.360491)\r\n\t\t\t\t(xy 76.276613 68.360489) (xy 76.360489 68.276613) (xy 76.370481 68.259307) (xy 76.419797 68.17389)\r\n\t\t\t\t(xy 76.419797 68.173888) (xy 76.419799 68.173886) (xy 76.4505 68.059309) (xy 76.4505 67.940691)\r\n\t\t\t\t(xy 79.5495 67.940691) (xy 79.5495 68.059309) (xy 79.571255 68.140499) (xy 79.580202 68.17389) (xy 79.639507 68.276608)\r\n\t\t\t\t(xy 79.639509 68.27661) (xy 79.639511 68.276613) (xy 79.723387 68.360489) (xy 79.723389 68.36049)\r\n\t\t\t\t(xy 79.723391 68.360492) (xy 79.82611 68.419797) (xy 79.826111 68.419797) (xy 79.826114 68.419799)\r\n\t\t\t\t(xy 79.940691 68.4505) (xy 79.940693 68.4505) (xy 80.059307 68.4505) (xy 80.059309 68.4505) (xy 80.173886 68.419799)\r\n\t\t\t\t(xy 80.173888 68.419797) (xy 80.17389 68.419797) (xy 80.276608 68.360492) (xy 80.276608 68.360491)\r\n\t\t\t\t(xy 80.276613 68.360489) (xy 80.360489 68.276613) (xy 80.370481 68.259307) (xy 80.419797 68.17389)\r\n\t\t\t\t(xy 80.419797 68.173888) (xy 80.419799 68.173886) (xy 80.4505 68.059309) (xy 80.4505 67.940691)\r\n\t\t\t\t(xy 83.5495 67.940691) (xy 83.5495 68.059309) (xy 83.571255 68.140499) (xy 83.580202 68.17389) (xy 83.639507 68.276608)\r\n\t\t\t\t(xy 83.639509 68.27661) (xy 83.639511 68.276613) (xy 83.723387 68.360489) (xy 83.723389 68.36049)\r\n\t\t\t\t(xy 83.723391 68.360492) (xy 83.82611 68.419797) (xy 83.826111 68.419797) (xy 83.826114 68.419799)\r\n\t\t\t\t(xy 83.940691 68.4505) (xy 83.940693 68.4505) (xy 84.059307 68.4505) (xy 84.059309 68.4505) (xy 84.173886 68.419799)\r\n\t\t\t\t(xy 84.173888 68.419797) (xy 84.17389 68.419797) (xy 84.276608 68.360492) (xy 84.276608 68.360491)\r\n\t\t\t\t(xy 84.276613 68.360489) (xy 84.360489 68.276613) (xy 84.370481 68.259307) (xy 84.419797 68.17389)\r\n\t\t\t\t(xy 84.419797 68.173888) (xy 84.419799 68.173886) (xy 84.4505 68.059309) (xy 84.4505 67.940691)\r\n\t\t\t\t(xy 87.5495 67.940691) (xy 87.5495 68.059309) (xy 87.571255 68.140499) (xy 87.580202 68.17389) (xy 87.639507 68.276608)\r\n\t\t\t\t(xy 87.639509 68.27661) (xy 87.639511 68.276613) (xy 87.723387 68.360489) (xy 87.723389 68.36049)\r\n\t\t\t\t(xy 87.723391 68.360492) (xy 87.82611 68.419797) (xy 87.826111 68.419797) (xy 87.826114 68.419799)\r\n\t\t\t\t(xy 87.940691 68.4505) (xy 87.940693 68.4505) (xy 88.059307 68.4505) (xy 88.059309 68.4505) (xy 88.173886 68.419799)\r\n\t\t\t\t(xy 88.173888 68.419797) (xy 88.17389 68.419797) (xy 88.276608 68.360492) (xy 88.276608 68.360491)\r\n\t\t\t\t(xy 88.276613 68.360489) (xy 88.360489 68.276613) (xy 88.419799 68.173886) (xy 88' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'.428694 68.140691)\r\n\t\t\t\t(xy 105.5995 68.140691) (xy 105.5995 68.259309) (xy 105.604137 68.276613) (xy 105.630202 68.37389)\r\n\t\t\t\t(xy 105.689507 68.476608) (xy 105.689509 68.47661) (xy 105.689511 68.476613) (xy 105.773387 68.560489)\r\n\t\t\t\t(xy 105.773389 68.56049) (xy 105.773391 68.560492) (xy 105.87611 68.619797) (xy 105.876111 68.619797)\r\n\t\t\t\t(xy 105.876114 68.619799) (xy 105.990691 68.6505) (xy 105.990693 68.6505) (xy 106.109307 68.6505)\r\n\t\t\t\t(xy 106.109309 68.6505) (xy 106.223886 68.619799) (xy 106.223888 68.619797) (xy 106.22389 68.619797)\r\n\t\t\t\t(xy 106.326608 68.560492) (xy 106.326608 68.560491) (xy 106.326613 68.560489) (xy 106.410489 68.476613)\r\n\t\t\t\t(xy 106.410492 68.476608) (xy 106.469797 68.37389) (xy 106.469797 68.373888) (xy 106.469799 68.373886)\r\n\t\t\t\t(xy 106.5005 68.259309) (xy 106.5005 68.140691) (xy 106.469799 68.026114) (xy 106.469797 68.026111)\r\n\t\t\t\t(xy 106.469797 68.026109) (xy 106.410492 67.923391) (xy 106.41049 67.923389) (xy 106.410489 67.923387)\r\n\t\t\t\t(xy 106.326613 67.839511) (xy 106.32661 67.839509) (xy 106.326608 67.839507) (xy 106.223889 67.780202)\r\n\t\t\t\t(xy 106.22389 67.780202) (xy 106.210351 67.776574) (xy 106.109309 67.7495) (xy 105.990691 67.7495)\r\n\t\t\t\t(xy 105.920567 67.768289) (xy 105.876109 67.780202) (xy 105.773391 67.839507) (xy 105.689507 67.923391)\r\n\t\t\t\t(xy 105.630202 68.026109) (xy 105.630201 68.026114) (xy 105.5995 68.140691) (xy 88.428694 68.140691)\r\n\t\t\t\t(xy 88.4505 68.059309) (xy 88.4505 67.940691) (xy 88.419799 67.826114) (xy 88.419797 67.826111)\r\n\t\t\t\t(xy 88.419797 67.826109) (xy 88.360492 67.723391) (xy 88.36049 67.723389) (xy 88.360489 67.723387)\r\n\t\t\t\t(xy 88.276613 67.639511) (xy 88.27661 67.639509) (xy 88.276608 67.639507) (xy 88.173889 67.580202)\r\n\t\t\t\t(xy 88.17389 67.580202) (xy 88.160351 67.576574) (xy 88.059309 67.5495) (xy 87.940691 67.5495) (xy 87.870567 67.568289)\r\n\t\t\t\t(xy 87.826109 67.580202) (xy 87.723391 67.639507) (xy 87.639507 67.723391) (xy 87.580202 67.826109)\r\n\t\t\t\t(xy 87.580201 67.826114) (xy 87.5495 67.940691) (xy 84.4505 67.940691) (xy 84.419799 67.826114)\r\n\t\t\t\t(xy 84.419797 67.826111) (xy 84.419797 67.826109) (xy 84.360492 67.723391) (xy 84.36049 67.723389)\r\n\t\t\t\t(xy 84.360489 67.723387) (xy 84.276613 67.639511) (xy 84.27661 67.639509) (xy 84.276608 67.639507)\r\n\t\t\t\t(xy 84.173889 67.580202) (xy 84.17389 67.580202) (xy 84.160351 67.576574) (xy 84.059309 67.5495)\r\n\t\t\t\t(xy 83.940691 67.5495) (xy 83.870567 67.568289) (xy 83.826109 67.580202) (xy 83.723391 67.639507)\r\n\t\t\t\t(xy 83.639507 67.723391) (xy 83.580202 67.826109) (xy 83.580201 67.826114) (xy 83.5495 67.940691)\r\n\t\t\t\t(xy 80.4505 67.940691) (xy 80.419799 67.826114) (xy 80.419797 67.826111) (xy 80.419797 67.826109)\r\n\t\t\t\t(xy 80.360492 67.723391) (xy 80.36049 67.723389) (xy 80.360489 67.723387) (xy 80.276613 67.639511)\r\n\t\t\t\t(xy 80.27661 67.639509) (xy 80.276608 67.639507) (xy 80.173889 67.580202) (xy 80.17389 67.580202)\r\n\t\t\t\t(xy 80.160351 67.576574) (xy 80.059309 67.5495) (xy 79.940691 67.5495) (xy 79.870567 67.568289)\r\n\t\t\t\t(xy 79.826109 67.580202) (xy 79.723391 67.639507) (xy 79.639507 67.723391) (xy 79.580202 67.826109)\r\n\t\t\t\t(xy 79.580201 67.826114) (xy 79.5495 67.940691) (xy 76.4505 67.940691) (xy 76.419799 67.826114)\r\n\t\t\t\t(xy 76.419797 67.826111) (xy 76.419797 67.826109) (xy 76.360492 67.723391) (xy 76.36049 67.723389)\r\n\t\t\t\t(xy 76.360489 67.723387) (xy 76.276613 67.639511) (xy 76.27661 67.639509) (xy 76.276608 67.639507)\r\n\t\t\t\t(xy 76.173889 67.580202) (xy 76.17389 67.580202) (xy 76.160351 67.576574) (xy 76.059309 67.5495)\r\n\t\t\t\t(xy 75.940691 67.5495) (xy 75.870567 67.568289) (xy 75.826109 67.580202) (xy 75.723391 67.639507)\r\n\t\t\t\t(xy 75.639507 67.723391) (xy 75.580202 67.826109) (xy 75.580201 67.826114) (xy 75.5495 67.940691)\r\n\t\t\t\t(xy 74.567123 67.940691) (xy 75.753895 66.753919) (xy 88.8745 66.753919) (xy 88.8745 66.94608) (xy 88.911988 67.134542)\r\n\t\t\t\t(xy 88.911988 67.134544) (xy 88.985521 67.31207) (xy 88.985521 67.312071) (xy 89.092279 67.471844)\r\n\t\t\t\t(xy 89.09228 67.471845) (xy 89.228155 67.60772) (xy 89.387927 67.714477) (xy 89.565457 67.788012)\r\n\t\t\t\t(xy 89.753922 67.8255) (xy 89.753923 67.8255) (xy 89.946077 67.8255) (xy 89.946078 67.8255) (xy 90.134543 67.788012)\r\n\t\t\t\t(xy 90.312073 67.714477) (xy 90.471845 67.60772) (xy 90.60772 67.471845) (xy 90.714477 67.312073)\r\n\t\t\t\t(xy 90.788012 67.134543) (xy 90.8255 66.946078) (xy 90.8255 66.753922) (xy 90.788012 66.565457)\r\n\t\t\t\t(xy 90.725077 66.413518) (xy 105.018553 66.413518) (xy 105.018553 66.532136) (xy 105.045627 66.633178)\r\n\t\t\t\t(xy 105.049255 66.646717) (xy 105.10856 66.749435) (xy 105.108562 66.749437) (xy 105.108564 66.74944)\r\n\t\t\t\t(xy 105.19244 66.833316) (xy 105.192442 66.833317) (xy 105.192444 66.833319) (xy 105.295163 66.892624)\r\n\t\t\t\t(xy 105.295164 66.892624) (xy 105.295167 66.892626) (xy 105.409744 66.923327) (xy 105.409746 66.923327)\r\n\t\t\t\t(xy 105.52836 66.923327) (xy 105.528362 66.923327) (xy 105.642939 66.892626) (xy 105.642941 66.892624)\r\n\t\t\t\t(xy 105.642943 66.892624) (xy 105.745661 66.833319) (xy 105.745661 66.833318) (xy 105.745666 66.833316)\r\n\t\t\t\t(xy 105.825063 66.753919) (xy 107.6745 66.753919) (xy 107.6745 66.94608) (xy 107.711988 67.134542)\r\n\t\t\t\t(xy 107.711988 67.134544) (xy 107.785521 67.31207) (xy 107.785521 67.312071) (xy 107.892279 67.471844)\r\n\t\t\t\t(xy 107.89228 67.471845) (xy 108.028155 67.60772) (xy 108.187927 67.714477) (xy 108.365457 67.788012)\r\n\t\t\t\t(xy 108.553922 67.8255) (xy 108.553923 67.8255) (xy 108.746077 67.8255) (xy 108.746078 67.8255)\r\n\t\t\t\t(xy 108.934543 67.788012) (xy 109.112073 67.714477) (xy 109.271845 67.60772) (xy 109.40772 67.471845)\r\n\t\t\t\t(xy 109.514477 67.312073) (xy 109.588012 67.134543) (xy 109.606528 67.041456) (xy 112.4195 67.041456)\r\n\t\t\t\t(xy 112.4195 67.238543) (xy 112.457949 67.431834) (xy 112.457949 67.431836) (xy 112.533367 67.613913)\r\n\t\t\t\t(xy 112.533368 67.613914) (xy 112.642861 67.777782) (xy 112.782218 67.917139) (xy 112.946086 68.026632)\r\n\t\t\t\t(xy 113.128165 68.102051) (xy 113.321459 68.1405) (xy 113.32146 68.1405) (xy 113.51854 68.1405)\r\n\t\t\t\t(xy 113.518541 68.1405) (xy 113.711835 68.102051) (xy 113.893914 68.026632) (xy 114.057782 67.917139)\r\n\t\t\t\t(xy 114.197139 67.777782) (xy 114.306632 67.613914) (xy 114.382051 67.431835) (xy 114.4205 67.238541)\r\n\t\t\t\t(xy 114.4205 67.041459) (xy 114.420499 67.041456) (xy 114.9595 67.041456) (xy 114.9595 67.238543)\r\n\t\t\t\t(xy 114.997949 67.431834) (xy 114.997949 67.431836) (xy 115.073367 67.613913) (xy 115.073368 67.613914)\r\n\t\t\t\t(xy 115.182861 67.777782) (xy 115.322218 67.917139) (xy 115.486086 68.026632) (xy 115.668165 68.102051)\r\n\t\t\t\t(xy 115.861459 68.1405) (xy 115.86146 68.1405) (xy 116.05854 68.1405) (xy 116.058541 68.1405) (xy 116.251835 68.102051)\r\n\t\t\t\t(xy 116.433914 68.026632) (xy 116.597782 67.917139) (xy 116.737139 67.777782) (xy 116.846632 67.613914)\r\n\t\t\t\t(xy 116.922051 67.431835) (xy 116.9605 67.238541) (xy 116.9605 67.041459) (xy 116.960499 67.041456)\r\n\t\t\t\t(xy 117.4995 67.041456) (xy 117.4995 67.238543) (xy 117.537949 67.431834) (xy 117.537949 67.431836)\r\n\t\t\t\t(xy 117.613367 67.613913) (xy 117.613368 67.613914) (xy 117.722861 67.777782) (xy 117.862218 67.917139)\r\n\t\t\t\t(xy 118.026086 68.026632) (xy 118.208165 68.102051) (xy 118.401459 68.1405) (xy 118.40146 68.1405)\r\n\t\t\t\t(xy 118.59854 68.1405) (xy 118.598541 68.1405) (xy 118.791835 68.102051) (xy 118.973914 68.026632)\r\n\t\t\t\t(xy 119.137782 67.917139) (xy 119.277139 67.777782) (xy 119.386632 67.613914) (xy 119.462051 67.431835)\r\n\t\t\t\t(xy 119.5005 67.238541) (xy 119.5005 67.041459) (xy 119.500499 67.041456) (xy 120.0395 67.041456)\r\n\t\t\t\t(xy 120.0395 67.238543) (xy 120.077949 67.431834) (xy 120.077949 67.431836) (xy 120.153367 67.613913)\r\n\t\t\t\t(xy 120.153368 67.613914) (xy 120.262861 67.777782) (xy 120.402218 67.917139) (xy 120.566086 68.026632)\r\n\t\t\t\t(xy 120.748165 68.102051) (xy 120.941459 68.1405) (xy 120.94146 68.1405) (xy 121.13854 68.1405)\r\n\t\t\t\t(xy 121.138541 68.1405) (xy 121.331835 68.102051) (xy 121.513914 68.026632) (xy 121.642534 67.940691)\r\n\t\t\t\t(xy 123.5495 67.940691) (xy 123.5495 68.059309) (xy 123.571255 68.140499) (xy 123.580202 68.17389)\r\n\t\t\t\t(xy 123.639507 68.276608) (xy 123.639509 68.27661) (xy 123.639511 68.276613) (xy 123.723387 68.360489)\r\n\t\t\t\t(xy 123.723389 68.36049) (xy 123.723391 68.360492) (xy 123.82611 68.419797) (xy 123.826111 6' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'8.419797)\r\n\t\t\t\t(xy 123.826114 68.419799) (xy 123.940691 68.4505) (xy 123.940693 68.4505) (xy 124.059307 68.4505)\r\n\t\t\t\t(xy 124.059309 68.4505) (xy 124.173886 68.419799) (xy 124.173888 68.419797) (xy 124.17389 68.419797)\r\n\t\t\t\t(xy 124.276608 68.360492) (xy 124.276608 68.360491) (xy 124.276613 68.360489) (xy 124.360489 68.276613)\r\n\t\t\t\t(xy 124.370481 68.259307) (xy 124.419797 68.17389) (xy 124.419797 68.173888) (xy 124.419799 68.173886)\r\n\t\t\t\t(xy 124.4505 68.059309) (xy 124.4505 67.940691) (xy 127.5495 67.940691) (xy 127.5495 68.059309)\r\n\t\t\t\t(xy 127.571255 68.140499) (xy 127.580202 68.17389) (xy 127.639507 68.276608) (xy 127.639509 68.27661)\r\n\t\t\t\t(xy 127.639511 68.276613) (xy 127.723387 68.360489) (xy 127.723389 68.36049) (xy 127.723391 68.360492)\r\n\t\t\t\t(xy 127.82611 68.419797) (xy 127.826111 68.419797) (xy 127.826114 68.419799) (xy 127.940691 68.4505)\r\n\t\t\t\t(xy 127.940693 68.4505) (xy 128.059307 68.4505) (xy 128.059309 68.4505) (xy 128.173886 68.419799)\r\n\t\t\t\t(xy 128.173888 68.419797) (xy 128.17389 68.419797) (xy 128.276608 68.360492) (xy 128.276608 68.360491)\r\n\t\t\t\t(xy 128.276613 68.360489) (xy 128.360489 68.276613) (xy 128.370481 68.259307) (xy 128.419797 68.17389)\r\n\t\t\t\t(xy 128.419797 68.173888) (xy 128.419799 68.173886) (xy 128.4505 68.059309) (xy 128.4505 67.940691)\r\n\t\t\t\t(xy 131.5495 67.940691) (xy 131.5495 68.059309) (xy 131.571255 68.140499) (xy 131.580202 68.17389)\r\n\t\t\t\t(xy 131.639507 68.276608) (xy 131.639509 68.27661) (xy 131.639511 68.276613) (xy 131.723387 68.360489)\r\n\t\t\t\t(xy 131.723389 68.36049) (xy 131.723391 68.360492) (xy 131.82611 68.419797) (xy 131.826111 68.419797)\r\n\t\t\t\t(xy 131.826114 68.419799) (xy 131.940691 68.4505) (xy 131.940693 68.4505) (xy 132.059307 68.4505)\r\n\t\t\t\t(xy 132.059309 68.4505) (xy 132.173886 68.419799) (xy 132.173888 68.419797) (xy 132.17389 68.419797)\r\n\t\t\t\t(xy 132.276608 68.360492) (xy 132.276608 68.360491) (xy 132.276613 68.360489) (xy 132.360489 68.276613)\r\n\t\t\t\t(xy 132.370481 68.259307) (xy 132.419797 68.17389) (xy 132.419797 68.173888) (xy 132.419799 68.173886)\r\n\t\t\t\t(xy 132.4505 68.059309) (xy 132.4505 67.940691) (xy 139.5495 67.940691) (xy 139.5495 68.059309)\r\n\t\t\t\t(xy 139.571255 68.140499) (xy 139.580202 68.17389) (xy 139.639507 68.276608) (xy 139.639509 68.27661)\r\n\t\t\t\t(xy 139.639511 68.276613) (xy 139.723387 68.360489) (xy 139.723389 68.36049) (xy 139.723391 68.360492)\r\n\t\t\t\t(xy 139.82611 68.419797) (xy 139.826111 68.419797) (xy 139.826114 68.419799) (xy 139.940691 68.4505)\r\n\t\t\t\t(xy 139.940693 68.4505) (xy 140.059307 68.4505) (xy 140.059309 68.4505) (xy 140.173886 68.419799)\r\n\t\t\t\t(xy 140.173888 68.419797) (xy 140.17389 68.419797) (xy 140.276608 68.360492) (xy 140.276608 68.360491)\r\n\t\t\t\t(xy 140.276613 68.360489) (xy 140.360489 68.276613) (xy 140.370481 68.259307) (xy 140.419797 68.17389)\r\n\t\t\t\t(xy 140.419797 68.173888) (xy 140.419799 68.173886) (xy 140.4505 68.059309) (xy 140.4505 67.940691)\r\n\t\t\t\t(xy 143.5495 67.940691) (xy 143.5495 68.059309) (xy 143.571255 68.140499) (xy 143.580202 68.17389)\r\n\t\t\t\t(xy 143.639507 68.276608) (xy 143.639509 68.27661) (xy 143.639511 68.276613) (xy 143.723387 68.360489)\r\n\t\t\t\t(xy 143.723389 68.36049) (xy 143.723391 68.360492) (xy 143.82611 68.419797) (xy 143.826111 68.419797)\r\n\t\t\t\t(xy 143.826114 68.419799) (xy 143.940691 68.4505) (xy 143.940693 68.4505) (xy 144.059307 68.4505)\r\n\t\t\t\t(xy 144.059309 68.4505) (xy 144.173886 68.419799) (xy 144.173888 68.419797) (xy 144.17389 68.419797)\r\n\t\t\t\t(xy 144.276608 68.360492) (xy 144.276608 68.360491) (xy 144.276613 68.360489) (xy 144.360489 68.276613)\r\n\t\t\t\t(xy 144.370481 68.259307) (xy 144.419797 68.17389) (xy 144.419797 68.173888) (xy 144.419799 68.173886)\r\n\t\t\t\t(xy 144.4505 68.059309) (xy 144.4505 67.940691) (xy 147.5495 67.940691) (xy 147.5495 68.059309)\r\n\t\t\t\t(xy 147.571255 68.140499) (xy 147.580202 68.17389) (xy 147.639507 68.276608) (xy 147.639509 68.27661)\r\n\t\t\t\t(xy 147.639511 68.276613) (xy 147.723387 68.360489) (xy 147.723389 68.36049) (xy 147.723391 68.360492)\r\n\t\t\t\t(xy 147.82611 68.419797) (xy 147.826111 68.419797) (xy 147.826114 68.419799) (xy 147.940691 68.4505)\r\n\t\t\t\t(xy 147.940693 68.4505) (xy 148.059307 68.4505) (xy 148.059309 68.4505) (xy 148.173886 68.419799)\r\n\t\t\t\t(xy 148.173888 68.419797) (xy 148.17389 68.419797) (xy 148.276608 68.360492) (xy 148.276608 68.360491)\r\n\t\t\t\t(xy 148.276613 68.360489) (xy 148.360489 68.276613) (xy 148.370481 68.259307) (xy 148.419797 68.17389)\r\n\t\t\t\t(xy 148.419797 68.173888) (xy 148.419799 68.173886) (xy 148.4505 68.059309) (xy 148.4505 67.940691)\r\n\t\t\t\t(xy 148.419799 67.826114) (xy 148.419797 67.826111) (xy 148.419797 67.826109) (xy 148.360492 67.723391)\r\n\t\t\t\t(xy 148.36049 67.723389) (xy 148.360489 67.723387) (xy 148.276613 67.639511) (xy 148.27661 67.639509)\r\n\t\t\t\t(xy 148.276608 67.639507) (xy 148.173889 67.580202) (xy 148.17389 67.580202) (xy 148.160351 67.576574)\r\n\t\t\t\t(xy 148.059309 67.5495) (xy 147.940691 67.5495) (xy 147.870567 67.568289) (xy 147.826109 67.580202)\r\n\t\t\t\t(xy 147.723391 67.639507) (xy 147.639507 67.723391) (xy 147.580202 67.826109) (xy 147.580201 67.826114)\r\n\t\t\t\t(xy 147.5495 67.940691) (xy 144.4505 67.940691) (xy 144.419799 67.826114) (xy 144.419797 67.826111)\r\n\t\t\t\t(xy 144.419797 67.826109) (xy 144.360492 67.723391) (xy 144.36049 67.723389) (xy 144.360489 67.723387)\r\n\t\t\t\t(xy 144.276613 67.639511) (xy 144.27661 67.639509) (xy 144.276608 67.639507) (xy 144.173889 67.580202)\r\n\t\t\t\t(xy 144.17389 67.580202) (xy 144.160351 67.576574) (xy 144.059309 67.5495) (xy 143.940691 67.5495)\r\n\t\t\t\t(xy 143.870567 67.568289) (xy 143.826109 67.580202) (xy 143.723391 67.639507) (xy 143.639507 67.723391)\r\n\t\t\t\t(xy 143.580202 67.826109) (xy 143.580201 67.826114) (xy 143.5495 67.940691) (xy 140.4505 67.940691)\r\n\t\t\t\t(xy 140.419799 67.826114) (xy 140.419797 67.826111) (xy 140.419797 67.826109) (xy 140.360492 67.723391)\r\n\t\t\t\t(xy 140.36049 67.723389) (xy 140.360489 67.723387) (xy 140.276613 67.639511) (xy 140.27661 67.639509)\r\n\t\t\t\t(xy 140.276608 67.639507) (xy 140.173889 67.580202) (xy 140.17389 67.580202) (xy 140.160351 67.576574)\r\n\t\t\t\t(xy 140.059309 67.5495) (xy 139.940691 67.5495) (xy 139.870567 67.568289) (xy 139.826109 67.580202)\r\n\t\t\t\t(xy 139.723391 67.639507) (xy 139.639507 67.723391) (xy 139.580202 67.826109) (xy 139.580201 67.826114)\r\n\t\t\t\t(xy 139.5495 67.940691) (xy 132.4505 67.940691) (xy 132.419799 67.826114) (xy 132.419797 67.826111)\r\n\t\t\t\t(xy 132.419797 67.826109) (xy 132.360492 67.723391) (xy 132.36049 67.723389) (xy 132.360489 67.723387)\r\n\t\t\t\t(xy 132.276613 67.639511) (xy 132.27661 67.639509) (xy 132.276608 67.639507) (xy 132.173889 67.580202)\r\n\t\t\t\t(xy 132.17389 67.580202) (xy 132.160351 67.576574) (xy 132.059309 67.5495) (xy 131.940691 67.5495)\r\n\t\t\t\t(xy 131.870567 67.568289) (xy 131.826109 67.580202) (xy 131.723391 67.639507) (xy 131.639507 67.723391)\r\n\t\t\t\t(xy 131.580202 67.826109) (xy 131.580201 67.826114) (xy 131.5495 67.940691) (xy 128.4505 67.940691)\r\n\t\t\t\t(xy 128.419799 67.826114) (xy 128.419797 67.826111) (xy 128.419797 67.826109) (xy 128.360492 67.723391)\r\n\t\t\t\t(xy 128.36049 67.723389) (xy 128.360489 67.723387) (xy 128.276613 67.639511) (xy 128.27661 67.639509)\r\n\t\t\t\t(xy 128.276608 67.639507) (xy 128.173889 67.580202) (xy 128.17389 67.580202) (xy 128.160351 67.576574)\r\n\t\t\t\t(xy 128.059309 67.5495) (xy 127.940691 67.5495) (xy 127.870567 67.568289) (xy 127.826109 67.580202)\r\n\t\t\t\t(xy 127.723391 67.639507) (xy 127.639507 67.723391) (xy 127.580202 67.826109) (xy 127.580201 67.826114)\r\n\t\t\t\t(xy 127.5495 67.940691) (xy 124.4505 67.940691) (xy 124.419799 67.826114) (xy 124.419797 67.826111)\r\n\t\t\t\t(xy 124.419797 67.826109) (xy 124.360492 67.723391) (xy 124.36049 67.723389) (xy 124.360489 67.723387)\r\n\t\t\t\t(xy 124.276613 67.639511) (xy 124.27661 67.639509) (xy 124.276608 67.639507) (xy 124.173889 67.580202)\r\n\t\t\t\t(xy 124.17389 67.580202) (xy 124.160351 67.576574) (xy 124.059309 67.5495) (xy 123.940691 67.5495)\r\n\t\t\t\t(xy 123.870567 67.568289) (xy 123.826109 67.580202) (xy 123.723391 67.639507) (xy 123.639507 67.723391)\r\n\t\t\t\t(xy 123.580202 67.826109) (xy 123.580201 67.826114) (xy 123.5495 67.940691) (xy 121.642534 67.940691)\r\n\t\t\t\t(xy 121.677782 67.917139) (xy 121.817139 67.777782) (xy 121.926632 67.613914) (xy 122.002051 67.431835)\r\n\t\t\t\t(xy 122.0405 67.238541) (xy 122.0405 67.041459) (xy 122.002051 66.848165) (xy 121' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'.926632 66.666086)\r\n\t\t\t\t(xy 121.817139 66.502218) (xy 121.677782 66.362861) (xy 121.513914 66.253368) (xy 121.513915 66.253368)\r\n\t\t\t\t(xy 121.513913 66.253367) (xy 121.331835 66.177949) (xy 121.138543 66.1395) (xy 121.138541 66.1395)\r\n\t\t\t\t(xy 120.941459 66.1395) (xy 120.941456 66.1395) (xy 120.748165 66.177949) (xy 120.748163 66.177949)\r\n\t\t\t\t(xy 120.566086 66.253367) (xy 120.402218 66.362861) (xy 120.402214 66.362864) (xy 120.262864 66.502214)\r\n\t\t\t\t(xy 120.262861 66.502218) (xy 120.153367 66.666086) (xy 120.077949 66.848163) (xy 120.077949 66.848165)\r\n\t\t\t\t(xy 120.0395 67.041456) (xy 119.500499 67.041456) (xy 119.462051 66.848165) (xy 119.386632 66.666086)\r\n\t\t\t\t(xy 119.277139 66.502218) (xy 119.137782 66.362861) (xy 118.973914 66.253368) (xy 118.973915 66.253368)\r\n\t\t\t\t(xy 118.973913 66.253367) (xy 118.791835 66.177949) (xy 118.598543 66.1395) (xy 118.598541 66.1395)\r\n\t\t\t\t(xy 118.401459 66.1395) (xy 118.401456 66.1395) (xy 118.208165 66.177949) (xy 118.208163 66.177949)\r\n\t\t\t\t(xy 118.026086 66.253367) (xy 117.862218 66.362861) (xy 117.862214 66.362864) (xy 117.722864 66.502214)\r\n\t\t\t\t(xy 117.722861 66.502218) (xy 117.613367 66.666086) (xy 117.537949 66.848163) (xy 117.537949 66.848165)\r\n\t\t\t\t(xy 117.4995 67.041456) (xy 116.960499 67.041456) (xy 116.922051 66.848165) (xy 116.846632 66.666086)\r\n\t\t\t\t(xy 116.737139 66.502218) (xy 116.597782 66.362861) (xy 116.433914 66.253368) (xy 116.433915 66.253368)\r\n\t\t\t\t(xy 116.433913 66.253367) (xy 116.251835 66.177949) (xy 116.058543 66.1395) (xy 116.058541 66.1395)\r\n\t\t\t\t(xy 115.861459 66.1395) (xy 115.861456 66.1395) (xy 115.668165 66.177949) (xy 115.668163 66.177949)\r\n\t\t\t\t(xy 115.486086 66.253367) (xy 115.322218 66.362861) (xy 115.322214 66.362864) (xy 115.182864 66.502214)\r\n\t\t\t\t(xy 115.182861 66.502218) (xy 115.073367 66.666086) (xy 114.997949 66.848163) (xy 114.997949 66.848165)\r\n\t\t\t\t(xy 114.9595 67.041456) (xy 114.420499 67.041456) (xy 114.382051 66.848165) (xy 114.306632 66.666086)\r\n\t\t\t\t(xy 114.197139 66.502218) (xy 114.057782 66.362861) (xy 113.893914 66.253368) (xy 113.893915 66.253368)\r\n\t\t\t\t(xy 113.893913 66.253367) (xy 113.711835 66.177949) (xy 113.518543 66.1395) (xy 113.518541 66.1395)\r\n\t\t\t\t(xy 113.321459 66.1395) (xy 113.321456 66.1395) (xy 113.128165 66.177949) (xy 113.128163 66.177949)\r\n\t\t\t\t(xy 112.946086 66.253367) (xy 112.782218 66.362861) (xy 112.782214 66.362864) (xy 112.642864 66.502214)\r\n\t\t\t\t(xy 112.642861 66.502218) (xy 112.533367 66.666086) (xy 112.457949 66.848163) (xy 112.457949 66.848165)\r\n\t\t\t\t(xy 112.4195 67.041456) (xy 109.606528 67.041456) (xy 109.6255 66.946078) (xy 109.6255 66.753922)\r\n\t\t\t\t(xy 109.588012 66.565457) (xy 109.514478 66.387929) (xy 109.514478 66.387928) (xy 109.40772 66.228155)\r\n\t\t\t\t(xy 109.271844 66.092279) (xy 109.11207 65.985521) (xy 108.934543 65.911988) (xy 108.74608 65.8745)\r\n\t\t\t\t(xy 108.746078 65.8745) (xy 108.553922 65.8745) (xy 108.553919 65.8745) (xy 108.365457 65.911988)\r\n\t\t\t\t(xy 108.365455 65.911988) (xy 108.187929 65.985521) (xy 108.187928 65.985521) (xy 108.028155 66.092279)\r\n\t\t\t\t(xy 107.892279 66.228155) (xy 107.785521 66.387928) (xy 107.785521 66.387929) (xy 107.711988 66.565455)\r\n\t\t\t\t(xy 107.711988 66.565457) (xy 107.6745 66.753919) (xy 105.825063 66.753919) (xy 105.829542 66.74944)\r\n\t\t\t\t(xy 105.888852 66.646713) (xy 105.919553 66.532136) (xy 105.919553 66.413518) (xy 105.888852 66.298941)\r\n\t\t\t\t(xy 105.88885 66.298938) (xy 105.88885 66.298936) (xy 105.829545 66.196218) (xy 105.829543 66.196216)\r\n\t\t\t\t(xy 105.829542 66.196214) (xy 105.745666 66.112338) (xy 105.745663 66.112336) (xy 105.745661 66.112334)\r\n\t\t\t\t(xy 105.642942 66.053029) (xy 105.642943 66.053029) (xy 105.629404 66.049401) (xy 105.528362 66.022327)\r\n\t\t\t\t(xy 105.409744 66.022327) (xy 105.33962 66.041116) (xy 105.295162 66.053029) (xy 105.192444 66.112334)\r\n\t\t\t\t(xy 105.10856 66.196218) (xy 105.049255 66.298936) (xy 105.049254 66.298941) (xy 105.018553 66.413518)\r\n\t\t\t\t(xy 90.725077 66.413518) (xy 90.714478 66.387929) (xy 90.714478 66.387928) (xy 90.60772 66.228155)\r\n\t\t\t\t(xy 90.471844 66.092279) (xy 90.31207 65.985521) (xy 90.134543 65.911988) (xy 89.94608 65.8745)\r\n\t\t\t\t(xy 89.946078 65.8745) (xy 89.753922 65.8745) (xy 89.753919 65.8745) (xy 89.565457 65.911988) (xy 89.565455 65.911988)\r\n\t\t\t\t(xy 89.387929 65.985521) (xy 89.387928 65.985521) (xy 89.228155 66.092279) (xy 89.092279 66.228155)\r\n\t\t\t\t(xy 88.985521 66.387928) (xy 88.985521 66.387929) (xy 88.911988 66.565455) (xy 88.911988 66.565457)\r\n\t\t\t\t(xy 88.8745 66.753919) (xy 75.753895 66.753919) (xy 76.967123 65.540691) (xy 96.7995 65.540691)\r\n\t\t\t\t(xy 96.7995 65.659309) (xy 96.826574 65.760351) (xy 96.830202 65.77389) (xy 96.889507 65.876608)\r\n\t\t\t\t(xy 96.889509 65.87661) (xy 96.889511 65.876613) (xy 96.973387 65.960489) (xy 96.973389 65.96049)\r\n\t\t\t\t(xy 96.973391 65.960492) (xy 97.07611 66.019797) (xy 97.076111 66.019797) (xy 97.076114 66.019799)\r\n\t\t\t\t(xy 97.190691 66.0505) (xy 97.190693 66.0505) (xy 97.309307 66.0505) (xy 97.309309 66.0505) (xy 97.423886 66.019799)\r\n\t\t\t\t(xy 97.423888 66.019797) (xy 97.42389 66.019797) (xy 97.526608 65.960492) (xy 97.526608 65.960491)\r\n\t\t\t\t(xy 97.526613 65.960489) (xy 97.610489 65.876613) (xy 97.669799 65.773886) (xy 97.7005 65.659309)\r\n\t\t\t\t(xy 97.7005 65.540691) (xy 97.669799 65.426114) (xy 97.669797 65.426111) (xy 97.669797 65.426109)\r\n\t\t\t\t(xy 97.610492 65.323391) (xy 97.61049 65.323389) (xy 97.610489 65.323387) (xy 97.526613 65.239511)\r\n\t\t\t\t(xy 97.52661 65.239509) (xy 97.526608 65.239507) (xy 97.423889 65.180202) (xy 97.42389 65.180202)\r\n\t\t\t\t(xy 97.410351 65.176574) (xy 97.309309 65.1495) (xy 97.190691 65.1495) (xy 97.120567 65.168289)\r\n\t\t\t\t(xy 97.076109 65.180202) (xy 96.973391 65.239507) (xy 96.889507 65.323391) (xy 96.830202 65.426109)\r\n\t\t\t\t(xy 96.830201 65.426114) (xy 96.7995 65.540691) (xy 76.967123 65.540691) (xy 78.567123 63.940691)\r\n\t\t\t\t(xy 79.5495 63.940691) (xy 79.5495 64.059309) (xy 79.561715 64.104894) (xy 79.580202 64.17389) (xy 79.639507 64.276608)\r\n\t\t\t\t(xy 79.639509 64.27661) (xy 79.639511 64.276613) (xy 79.723387 64.360489) (xy 79.723389 64.36049)\r\n\t\t\t\t(xy 79.723391 64.360492) (xy 79.82611 64.419797) (xy 79.826111 64.419797) (xy 79.826114 64.419799)\r\n\t\t\t\t(xy 79.940691 64.4505) (xy 79.940693 64.4505) (xy 80.059307 64.4505) (xy 80.059309 64.4505) (xy 80.173886 64.419799)\r\n\t\t\t\t(xy 80.173888 64.419797) (xy 80.17389 64.419797) (xy 80.276608 64.360492) (xy 80.276608 64.360491)\r\n\t\t\t\t(xy 80.276613 64.360489) (xy 80.360489 64.276613) (xy 80.419799 64.173886) (xy 80.4505 64.059309)\r\n\t\t\t\t(xy 80.4505 63.940691) (xy 83.5495 63.940691) (xy 83.5495 64.059309) (xy 83.561715 64.104894) (xy 83.580202 64.17389)\r\n\t\t\t\t(xy 83.639507 64.276608) (xy 83.639509 64.27661) (xy 83.639511 64.276613) (xy 83.723387 64.360489)\r\n\t\t\t\t(xy 83.723389 64.36049) (xy 83.723391 64.360492) (xy 83.82611 64.419797) (xy 83.826111 64.419797)\r\n\t\t\t\t(xy 83.826114 64.419799) (xy 83.940691 64.4505) (xy 83.940693 64.4505) (xy 84.059307 64.4505) (xy 84.059309 64.4505)\r\n\t\t\t\t(xy 84.173886 64.419799) (xy 84.173888 64.419797) (xy 84.17389 64.419797) (xy 84.276608 64.360492)\r\n\t\t\t\t(xy 84.276608 64.360491) (xy 84.276613 64.360489) (xy 84.360489 64.276613) (xy 84.419799 64.173886)\r\n\t\t\t\t(xy 84.4505 64.059309) (xy 84.4505 63.940691) (xy 87.5495 63.940691) (xy 87.5495 64.059309) (xy 87.561715 64.104894)\r\n\t\t\t\t(xy 87.580202 64.17389) (xy 87.639507 64.276608) (xy 87.639509 64.27661) (xy 87.639511 64.276613)\r\n\t\t\t\t(xy 87.723387 64.360489) (xy 87.723389 64.36049) (xy 87.723391 64.360492) (xy 87.82611 64.419797)\r\n\t\t\t\t(xy 87.826111 64.419797) (xy 87.826114 64.419799) (xy 87.940691 64.4505) (xy 87.940693 64.4505)\r\n\t\t\t\t(xy 88.059307 64.4505) (xy 88.059309 64.4505) (xy 88.173886 64.419799) (xy 88.173888 64.419797)\r\n\t\t\t\t(xy 88.17389 64.419797) (xy 88.276608 64.360492) (xy 88.276608 64.360491) (xy 88.276613 64.360489)\r\n\t\t\t\t(xy 88.296411 64.340691) (xy 105.1495 64.340691) (xy 105.1495 64.459309) (xy 105.176574 64.560351)\r\n\t\t\t\t(xy 105.180202 64.57389) (xy 105.239507 64.676608) (xy 105.239509 64.67661) (xy 105.239511 64.676613)\r\n\t\t\t\t(xy 105.323387 64.760489) (xy 105.323389 64.76049) (xy 105.323391 64.760492) (xy 105.42611 64.819797)\r\n\t\t\t\t(xy 105.426111 64.819797) (xy 105.426114 64.819799) (xy 105.540691 64.8505) (xy 105.540693 64.8505)\r\n\t\t\t\t(xy 105.659307 64.8505) (xy 10' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'5.659309 64.8505) (xy 105.773886 64.819799) (xy 105.773888 64.819797)\r\n\t\t\t\t(xy 105.77389 64.819797) (xy 105.876608 64.760492) (xy 105.876608 64.760491) (xy 105.876613 64.760489)\r\n\t\t\t\t(xy 105.950679 64.686422) (xy 106.005193 64.658646) (xy 106.065625 64.668217) (xy 106.070181 64.670691)\r\n\t\t\t\t(xy 106.17055 64.728639) (xy 106.170551 64.728639) (xy 106.170554 64.728641) (xy 106.285131 64.759342)\r\n\t\t\t\t(xy 106.285133 64.759342) (xy 106.403747 64.759342) (xy 106.403749 64.759342) (xy 106.518326 64.728641)\r\n\t\t\t\t(xy 106.518328 64.728639) (xy 106.51833 64.728639) (xy 106.621048 64.669334) (xy 106.621048 64.669333)\r\n\t\t\t\t(xy 106.621053 64.669331) (xy 106.704929 64.585455) (xy 106.711606 64.57389) (xy 106.753427 64.501456)\r\n\t\t\t\t(xy 112.4195 64.501456) (xy 112.4195 64.698543) (xy 112.457949 64.891834) (xy 112.457949 64.891836)\r\n\t\t\t\t(xy 112.533367 65.073913) (xy 112.533368 65.073914) (xy 112.642861 65.237782) (xy 112.782218 65.377139)\r\n\t\t\t\t(xy 112.946086 65.486632) (xy 113.128165 65.562051) (xy 113.321459 65.6005) (xy 113.32146 65.6005)\r\n\t\t\t\t(xy 113.51854 65.6005) (xy 113.518541 65.6005) (xy 113.711835 65.562051) (xy 113.893914 65.486632)\r\n\t\t\t\t(xy 114.057782 65.377139) (xy 114.197139 65.237782) (xy 114.306632 65.073914) (xy 114.382051 64.891835)\r\n\t\t\t\t(xy 114.4205 64.698541) (xy 114.4205 64.501459) (xy 114.420499 64.501456) (xy 114.9595 64.501456)\r\n\t\t\t\t(xy 114.9595 64.698543) (xy 114.997949 64.891834) (xy 114.997949 64.891836) (xy 115.073367 65.073913)\r\n\t\t\t\t(xy 115.073368 65.073914) (xy 115.182861 65.237782) (xy 115.322218 65.377139) (xy 115.486086 65.486632)\r\n\t\t\t\t(xy 115.668165 65.562051) (xy 115.861459 65.6005) (xy 115.86146 65.6005) (xy 116.05854 65.6005)\r\n\t\t\t\t(xy 116.058541 65.6005) (xy 116.251835 65.562051) (xy 116.433914 65.486632) (xy 116.597782 65.377139)\r\n\t\t\t\t(xy 116.737139 65.237782) (xy 116.846632 65.073914) (xy 116.922051 64.891835) (xy 116.9605 64.698541)\r\n\t\t\t\t(xy 116.9605 64.501459) (xy 116.960499 64.501456) (xy 117.4995 64.501456) (xy 117.4995 64.698543)\r\n\t\t\t\t(xy 117.537949 64.891834) (xy 117.537949 64.891836) (xy 117.613367 65.073913) (xy 117.613368 65.073914)\r\n\t\t\t\t(xy 117.722861 65.237782) (xy 117.862218 65.377139) (xy 118.026086 65.486632) (xy 118.208165 65.562051)\r\n\t\t\t\t(xy 118.401459 65.6005) (xy 118.40146 65.6005) (xy 118.59854 65.6005) (xy 118.598541 65.6005) (xy 118.791835 65.562051)\r\n\t\t\t\t(xy 118.973914 65.486632) (xy 119.137782 65.377139) (xy 119.277139 65.237782) (xy 119.386632 65.073914)\r\n\t\t\t\t(xy 119.462051 64.891835) (xy 119.5005 64.698541) (xy 119.5005 64.501459) (xy 119.462051 64.308165)\r\n\t\t\t\t(xy 119.386632 64.126086) (xy 119.277139 63.962218) (xy 119.137782 63.822861) (xy 119.035081 63.754239)\r\n\t\t\t\t(xy 119.006546 63.735172) (xy 120.0395 63.735172) (xy 120.0395 65.464827) (xy 120.048232 65.50872)\r\n\t\t\t\t(xy 120.048233 65.508722) (xy 120.081496 65.558504) (xy 120.131278 65.591767) (xy 120.142327 65.593964)\r\n\t\t\t\t(xy 120.175172 65.600499) (xy 120.175178 65.600499) (xy 120.17518 65.6005) (xy 120.175181 65.6005)\r\n\t\t\t\t(xy 121.904819 65.6005) (xy 121.90482 65.6005) (xy 121.904821 65.600499) (xy 121.904827 65.600499)\r\n\t\t\t\t(xy 121.926623 65.596162) (xy 121.948722 65.591767) (xy 121.998504 65.558504) (xy 122.031767 65.508722)\r\n\t\t\t\t(xy 122.0405 65.46482) (xy 122.0405 63.940691) (xy 123.5495 63.940691) (xy 123.5495 64.059309) (xy 123.561715 64.104894)\r\n\t\t\t\t(xy 123.580202 64.17389) (xy 123.639507 64.276608) (xy 123.639509 64.27661) (xy 123.639511 64.276613)\r\n\t\t\t\t(xy 123.723387 64.360489) (xy 123.723389 64.36049) (xy 123.723391 64.360492) (xy 123.82611 64.419797)\r\n\t\t\t\t(xy 123.826111 64.419797) (xy 123.826114 64.419799) (xy 123.940691 64.4505) (xy 123.940693 64.4505)\r\n\t\t\t\t(xy 124.059307 64.4505) (xy 124.059309 64.4505) (xy 124.173886 64.419799) (xy 124.173888 64.419797)\r\n\t\t\t\t(xy 124.17389 64.419797) (xy 124.276608 64.360492) (xy 124.276608 64.360491) (xy 124.276613 64.360489)\r\n\t\t\t\t(xy 124.360489 64.276613) (xy 124.419799 64.173886) (xy 124.4505 64.059309) (xy 124.4505 63.940691)\r\n\t\t\t\t(xy 127.5495 63.940691) (xy 127.5495 64.059309) (xy 127.561715 64.104894) (xy 127.580202 64.17389)\r\n\t\t\t\t(xy 127.639507 64.276608) (xy 127.639509 64.27661) (xy 127.639511 64.276613) (xy 127.723387 64.360489)\r\n\t\t\t\t(xy 127.723389 64.36049) (xy 127.723391 64.360492) (xy 127.82611 64.419797) (xy 127.826111 64.419797)\r\n\t\t\t\t(xy 127.826114 64.419799) (xy 127.940691 64.4505) (xy 127.940693 64.4505) (xy 128.059307 64.4505)\r\n\t\t\t\t(xy 128.059309 64.4505) (xy 128.173886 64.419799) (xy 128.173888 64.419797) (xy 128.17389 64.419797)\r\n\t\t\t\t(xy 128.276608 64.360492) (xy 128.276608 64.360491) (xy 128.276613 64.360489) (xy 128.360489 64.276613)\r\n\t\t\t\t(xy 128.419799 64.173886) (xy 128.4505 64.059309) (xy 128.4505 63.940691) (xy 131.5495 63.940691)\r\n\t\t\t\t(xy 131.5495 64.059309) (xy 131.561715 64.104894) (xy 131.580202 64.17389) (xy 131.639507 64.276608)\r\n\t\t\t\t(xy 131.639509 64.27661) (xy 131.639511 64.276613) (xy 131.723387 64.360489) (xy 131.723389 64.36049)\r\n\t\t\t\t(xy 131.723391 64.360492) (xy 131.82611 64.419797) (xy 131.826111 64.419797) (xy 131.826114 64.419799)\r\n\t\t\t\t(xy 131.940691 64.4505) (xy 131.940693 64.4505) (xy 132.059307 64.4505) (xy 132.059309 64.4505)\r\n\t\t\t\t(xy 132.173886 64.419799) (xy 132.173888 64.419797) (xy 132.17389 64.419797) (xy 132.276608 64.360492)\r\n\t\t\t\t(xy 132.276608 64.360491) (xy 132.276613 64.360489) (xy 132.360489 64.276613) (xy 132.419799 64.173886)\r\n\t\t\t\t(xy 132.4505 64.059309) (xy 132.4505 63.940691) (xy 135.5495 63.940691) (xy 135.5495 64.059309)\r\n\t\t\t\t(xy 135.561715 64.104894) (xy 135.580202 64.17389) (xy 135.639507 64.276608) (xy 135.639509 64.27661)\r\n\t\t\t\t(xy 135.639511 64.276613) (xy 135.723387 64.360489) (xy 135.723389 64.36049) (xy 135.723391 64.360492)\r\n\t\t\t\t(xy 135.82611 64.419797) (xy 135.826111 64.419797) (xy 135.826114 64.419799) (xy 135.940691 64.4505)\r\n\t\t\t\t(xy 135.940693 64.4505) (xy 136.059307 64.4505) (xy 136.059309 64.4505) (xy 136.173886 64.419799)\r\n\t\t\t\t(xy 136.173888 64.419797) (xy 136.17389 64.419797) (xy 136.276608 64.360492) (xy 136.276608 64.360491)\r\n\t\t\t\t(xy 136.276613 64.360489) (xy 136.360489 64.276613) (xy 136.419799 64.173886) (xy 136.4505 64.059309)\r\n\t\t\t\t(xy 136.4505 63.940691) (xy 139.5495 63.940691) (xy 139.5495 64.059309) (xy 139.561715 64.104894)\r\n\t\t\t\t(xy 139.580202 64.17389) (xy 139.639507 64.276608) (xy 139.639509 64.27661) (xy 139.639511 64.276613)\r\n\t\t\t\t(xy 139.723387 64.360489) (xy 139.723389 64.36049) (xy 139.723391 64.360492) (xy 139.82611 64.419797)\r\n\t\t\t\t(xy 139.826111 64.419797) (xy 139.826114 64.419799) (xy 139.940691 64.4505) (xy 139.940693 64.4505)\r\n\t\t\t\t(xy 140.059307 64.4505) (xy 140.059309 64.4505) (xy 140.173886 64.419799) (xy 140.173888 64.419797)\r\n\t\t\t\t(xy 140.17389 64.419797) (xy 140.276608 64.360492) (xy 140.276608 64.360491) (xy 140.276613 64.360489)\r\n\t\t\t\t(xy 140.360489 64.276613) (xy 140.419799 64.173886) (xy 140.4505 64.059309) (xy 140.4505 63.940691)\r\n\t\t\t\t(xy 143.5495 63.940691) (xy 143.5495 64.059309) (xy 143.561715 64.104894) (xy 143.580202 64.17389)\r\n\t\t\t\t(xy 143.639507 64.276608) (xy 143.639509 64.27661) (xy 143.639511 64.276613) (xy 143.723387 64.360489)\r\n\t\t\t\t(xy 143.723389 64.36049) (xy 143.723391 64.360492) (xy 143.82611 64.419797) (xy 143.826111 64.419797)\r\n\t\t\t\t(xy 143.826114 64.419799) (xy 143.940691 64.4505) (xy 143.940693 64.4505) (xy 144.059307 64.4505)\r\n\t\t\t\t(xy 144.059309 64.4505) (xy 144.173886 64.419799) (xy 144.173888 64.419797) (xy 144.17389 64.419797)\r\n\t\t\t\t(xy 144.276608 64.360492) (xy 144.276608 64.360491) (xy 144.276613 64.360489) (xy 144.360489 64.276613)\r\n\t\t\t\t(xy 144.419799 64.173886) (xy 144.4505 64.059309) (xy 144.4505 63.940691) (xy 144.419799 63.826114)\r\n\t\t\t\t(xy 144.419797 63.826111) (xy 144.419797 63.826109) (xy 144.360492 63.723391) (xy 144.36049 63.723389)\r\n\t\t\t\t(xy 144.360489 63.723387) (xy 144.276613 63.639511) (xy 144.27661 63.639509) (xy 144.276608 63.639507)\r\n\t\t\t\t(xy 144.173889 63.580202) (xy 144.17389 63.580202) (xy 144.160351 63.576574) (xy 144.059309 63.5495)\r\n\t\t\t\t(xy 143.940691 63.5495) (xy 143.870567 63.568289) (xy 143.826109 63.580202) (xy 143.723391 63.639507)\r\n\t\t\t\t(xy 143.639507 63.723391) (xy 143.580202 63.826109) (xy 143.580201 63.826114) (xy 143.5495 63.940691)\r\n\t\t\t\t(xy 140.4505 63.940691) (xy 140.419799 63.826114) (xy 140.419797 63.826111) (xy 140.419797 63.826109)\r\n' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'\t\t\t\t(xy 140.360492 63.723391) (xy 140.36049 63.723389) (xy 140.360489 63.723387) (xy 140.276613 63.639511)\r\n\t\t\t\t(xy 140.27661 63.639509) (xy 140.276608 63.639507) (xy 140.173889 63.580202) (xy 140.17389 63.580202)\r\n\t\t\t\t(xy 140.160351 63.576574) (xy 140.059309 63.5495) (xy 139.940691 63.5495) (xy 139.870567 63.568289)\r\n\t\t\t\t(xy 139.826109 63.580202) (xy 139.723391 63.639507) (xy 139.639507 63.723391) (xy 139.580202 63.826109)\r\n\t\t\t\t(xy 139.580201 63.826114) (xy 139.5495 63.940691) (xy 136.4505 63.940691) (xy 136.419799 63.826114)\r\n\t\t\t\t(xy 136.419797 63.826111) (xy 136.419797 63.826109) (xy 136.360492 63.723391) (xy 136.36049 63.723389)\r\n\t\t\t\t(xy 136.360489 63.723387) (xy 136.276613 63.639511) (xy 136.27661 63.639509) (xy 136.276608 63.639507)\r\n\t\t\t\t(xy 136.173889 63.580202) (xy 136.17389 63.580202) (xy 136.160351 63.576574) (xy 136.059309 63.5495)\r\n\t\t\t\t(xy 135.940691 63.5495) (xy 135.870567 63.568289) (xy 135.826109 63.580202) (xy 135.723391 63.639507)\r\n\t\t\t\t(xy 135.639507 63.723391) (xy 135.580202 63.826109) (xy 135.580201 63.826114) (xy 135.5495 63.940691)\r\n\t\t\t\t(xy 132.4505 63.940691) (xy 132.419799 63.826114) (xy 132.419797 63.826111) (xy 132.419797 63.826109)\r\n\t\t\t\t(xy 132.360492 63.723391) (xy 132.36049 63.723389) (xy 132.360489 63.723387) (xy 132.276613 63.639511)\r\n\t\t\t\t(xy 132.27661 63.639509) (xy 132.276608 63.639507) (xy 132.173889 63.580202) (xy 132.17389 63.580202)\r\n\t\t\t\t(xy 132.160351 63.576574) (xy 132.059309 63.5495) (xy 131.940691 63.5495) (xy 131.870567 63.568289)\r\n\t\t\t\t(xy 131.826109 63.580202) (xy 131.723391 63.639507) (xy 131.639507 63.723391) (xy 131.580202 63.826109)\r\n\t\t\t\t(xy 131.580201 63.826114) (xy 131.5495 63.940691) (xy 128.4505 63.940691) (xy 128.419799 63.826114)\r\n\t\t\t\t(xy 128.419797 63.826111) (xy 128.419797 63.826109) (xy 128.360492 63.723391) (xy 128.36049 63.723389)\r\n\t\t\t\t(xy 128.360489 63.723387) (xy 128.276613 63.639511) (xy 128.27661 63.639509) (xy 128.276608 63.639507)\r\n\t\t\t\t(xy 128.173889 63.580202) (xy 128.17389 63.580202) (xy 128.160351 63.576574) (xy 128.059309 63.5495)\r\n\t\t\t\t(xy 127.940691 63.5495) (xy 127.870567 63.568289) (xy 127.826109 63.580202) (xy 127.723391 63.639507)\r\n\t\t\t\t(xy 127.639507 63.723391) (xy 127.580202 63.826109) (xy 127.580201 63.826114) (xy 127.5495 63.940691)\r\n\t\t\t\t(xy 124.4505 63.940691) (xy 124.419799 63.826114) (xy 124.419797 63.826111) (xy 124.419797 63.826109)\r\n\t\t\t\t(xy 124.360492 63.723391) (xy 124.36049 63.723389) (xy 124.360489 63.723387) (xy 124.276613 63.639511)\r\n\t\t\t\t(xy 124.27661 63.639509) (xy 124.276608 63.639507) (xy 124.173889 63.580202) (xy 124.17389 63.580202)\r\n\t\t\t\t(xy 124.160351 63.576574) (xy 124.059309 63.5495) (xy 123.940691 63.5495) (xy 123.870567 63.568289)\r\n\t\t\t\t(xy 123.826109 63.580202) (xy 123.723391 63.639507) (xy 123.639507 63.723391) (xy 123.580202 63.826109)\r\n\t\t\t\t(xy 123.580201 63.826114) (xy 123.5495 63.940691) (xy 122.0405 63.940691) (xy 122.0405 63.73518)\r\n\t\t\t\t(xy 122.040499 63.735178) (xy 122.040499 63.735172) (xy 122.031767 63.691279) (xy 122.031765 63.691275)\r\n\t\t\t\t(xy 121.998505 63.641498) (xy 121.998504 63.641496) (xy 121.995527 63.639507) (xy 121.948724 63.608234)\r\n\t\t\t\t(xy 121.94872 63.608232) (xy 121.904827 63.5995) (xy 121.90482 63.5995) (xy 120.17518 63.5995) (xy 120.175172 63.5995)\r\n\t\t\t\t(xy 120.131279 63.608232) (xy 120.131275 63.608234) (xy 120.081498 63.641494) (xy 120.081494 63.641498)\r\n\t\t\t\t(xy 120.048234 63.691275) (xy 120.048232 63.691279) (xy 120.0395 63.735172) (xy 119.006546 63.735172)\r\n\t\t\t\t(xy 118.973913 63.713367) (xy 118.791835 63.637949) (xy 118.598543 63.5995) (xy 118.598541 63.5995)\r\n\t\t\t\t(xy 118.401459 63.5995) (xy 118.401456 63.5995) (xy 118.208165 63.637949) (xy 118.208163 63.637949)\r\n\t\t\t\t(xy 118.026086 63.713367) (xy 117.862218 63.822861) (xy 117.862214 63.822864) (xy 117.722864 63.962214)\r\n\t\t\t\t(xy 117.722861 63.962218) (xy 117.613367 64.126086) (xy 117.537949 64.308163) (xy 117.537949 64.308165)\r\n\t\t\t\t(xy 117.4995 64.501456) (xy 116.960499 64.501456) (xy 116.922051 64.308165) (xy 116.846632 64.126086)\r\n\t\t\t\t(xy 116.737139 63.962218) (xy 116.597782 63.822861) (xy 116.488288 63.749699) (xy 116.433913 63.713367)\r\n\t\t\t\t(xy 116.251835 63.637949) (xy 116.058543 63.5995) (xy 116.058541 63.5995) (xy 115.861459 63.5995)\r\n\t\t\t\t(xy 115.861456 63.5995) (xy 115.668165 63.637949) (xy 115.668163 63.637949) (xy 115.486086 63.713367)\r\n\t\t\t\t(xy 115.322218 63.822861) (xy 115.322214 63.822864) (xy 115.182864 63.962214) (xy 115.182861 63.962218)\r\n\t\t\t\t(xy 115.073367 64.126086) (xy 114.997949 64.308163) (xy 114.997949 64.308165) (xy 114.9595 64.501456)\r\n\t\t\t\t(xy 114.420499 64.501456) (xy 114.382051 64.308165) (xy 114.306632 64.126086) (xy 114.197139 63.962218)\r\n\t\t\t\t(xy 114.057782 63.822861) (xy 113.948288 63.749699) (xy 113.893913 63.713367) (xy 113.711835 63.637949)\r\n\t\t\t\t(xy 113.518543 63.5995) (xy 113.518541 63.5995) (xy 113.321459 63.5995) (xy 113.321456 63.5995)\r\n\t\t\t\t(xy 113.128165 63.637949) (xy 113.128163 63.637949) (xy 112.946086 63.713367) (xy 112.782218 63.822861)\r\n\t\t\t\t(xy 112.782214 63.822864) (xy 112.642864 63.962214) (xy 112.642861 63.962218) (xy 112.533367 64.126086)\r\n\t\t\t\t(xy 112.457949 64.308163) (xy 112.457949 64.308165) (xy 112.4195 64.501456) (xy 106.753427 64.501456)\r\n\t\t\t\t(xy 106.764237 64.482732) (xy 106.764237 64.48273) (xy 106.764239 64.482728) (xy 106.79494 64.368151)\r\n\t\t\t\t(xy 106.79494 64.249533) (xy 106.764239 64.134956) (xy 106.764237 64.134953) (xy 106.764237 64.134951)\r\n\t\t\t\t(xy 106.704932 64.032233) (xy 106.70493 64.032231) (xy 106.704929 64.032229) (xy 106.621053 63.948353)\r\n\t\t\t\t(xy 106.62105 63.948351) (xy 106.621048 63.948349) (xy 106.607784 63.940691) (xy 107.5495 63.940691)\r\n\t\t\t\t(xy 107.5495 64.059309) (xy 107.561715 64.104894) (xy 107.580202 64.17389) (xy 107.639507 64.276608)\r\n\t\t\t\t(xy 107.639509 64.27661) (xy 107.639511 64.276613) (xy 107.723387 64.360489) (xy 107.723389 64.36049)\r\n\t\t\t\t(xy 107.723391 64.360492) (xy 107.82611 64.419797) (xy 107.826111 64.419797) (xy 107.826114 64.419799)\r\n\t\t\t\t(xy 107.940691 64.4505) (xy 107.940693 64.4505) (xy 108.059307 64.4505) (xy 108.059309 64.4505)\r\n\t\t\t\t(xy 108.173886 64.419799) (xy 108.173888 64.419797) (xy 108.17389 64.419797) (xy 108.189372 64.410859)\r\n\t\t\t\t(xy 108.276608 64.360492) (xy 108.276608 64.360491) (xy 108.276613 64.360489) (xy 108.360489 64.276613)\r\n\t\t\t\t(xy 108.419799 64.173886) (xy 108.4505 64.059309) (xy 108.4505 63.940691) (xy 108.419799 63.826114)\r\n\t\t\t\t(xy 108.419797 63.826111) (xy 108.419797 63.826109) (xy 108.360492 63.723391) (xy 108.36049 63.723389)\r\n\t\t\t\t(xy 108.360489 63.723387) (xy 108.276613 63.639511) (xy 108.27661 63.639509) (xy 108.276608 63.639507)\r\n\t\t\t\t(xy 108.173889 63.580202) (xy 108.17389 63.580202) (xy 108.160351 63.576574) (xy 108.059309 63.5495)\r\n\t\t\t\t(xy 107.940691 63.5495) (xy 107.870567 63.568289) (xy 107.826109 63.580202) (xy 107.723391 63.639507)\r\n\t\t\t\t(xy 107.639507 63.723391) (xy 107.580202 63.826109) (xy 107.580201 63.826114) (xy 107.5495 63.940691)\r\n\t\t\t\t(xy 106.607784 63.940691) (xy 106.518329 63.889044) (xy 106.51833 63.889044) (xy 106.504791 63.885416)\r\n\t\t\t\t(xy 106.403749 63.858342) (xy 106.285131 63.858342) (xy 106.215007 63.877131) (xy 106.170549 63.889044)\r\n\t\t\t\t(xy 106.067831 63.948349) (xy 106.067825 63.948354) (xy 105.99376 64.022418) (xy 105.939243 64.050195)\r\n\t\t\t\t(xy 105.878811 64.040623) (xy 105.874257 64.03815) (xy 105.773889 63.980202) (xy 105.77389 63.980202)\r\n\t\t\t\t(xy 105.760351 63.976574) (xy 105.659309 63.9495) (xy 105.540691 63.9495) (xy 105.470567 63.968289)\r\n\t\t\t\t(xy 105.426109 63.980202) (xy 105.323391 64.039507) (xy 105.239507 64.123391) (xy 105.180202 64.226109)\r\n\t\t\t\t(xy 105.166671 64.276608) (xy 105.1495 64.340691) (xy 88.296411 64.340691) (xy 88.360489 64.276613)\r\n\t\t\t\t(xy 88.419799 64.173886) (xy 88.4505 64.059309) (xy 88.4505 63.940691) (xy 88.419799 63.826114)\r\n\t\t\t\t(xy 88.419797 63.826111) (xy 88.419797 63.826109) (xy 88.360492 63.723391) (xy 88.36049 63.723389)\r\n\t\t\t\t(xy 88.360489 63.723387) (xy 88.276613 63.639511) (xy 88.27661 63.639509) (xy 88.276608 63.639507)\r\n\t\t\t\t(xy 88.173889 63.580202) (xy 88.17389 63.580202) (xy 88.160351 63.576574) (xy 88.059309 63.5495)\r\n\t\t\t\t(xy 87.940691 63.5495) (xy 87.870567 63.568289) (xy 87.826109 63.580202) (xy 87.723391 63.639507)\r\n\t\t\t\t(xy 87.639507 63.723391) (xy 87.580202 63.826109) (xy 87.' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'580201 63.826114) (xy 87.5495 63.940691)\r\n\t\t\t\t(xy 84.4505 63.940691) (xy 84.419799 63.826114) (xy 84.419797 63.826111) (xy 84.419797 63.826109)\r\n\t\t\t\t(xy 84.360492 63.723391) (xy 84.36049 63.723389) (xy 84.360489 63.723387) (xy 84.276613 63.639511)\r\n\t\t\t\t(xy 84.27661 63.639509) (xy 84.276608 63.639507) (xy 84.173889 63.580202) (xy 84.17389 63.580202)\r\n\t\t\t\t(xy 84.160351 63.576574) (xy 84.059309 63.5495) (xy 83.940691 63.5495) (xy 83.870567 63.568289)\r\n\t\t\t\t(xy 83.826109 63.580202) (xy 83.723391 63.639507) (xy 83.639507 63.723391) (xy 83.580202 63.826109)\r\n\t\t\t\t(xy 83.580201 63.826114) (xy 83.5495 63.940691) (xy 80.4505 63.940691) (xy 80.419799 63.826114)\r\n\t\t\t\t(xy 80.419797 63.826111) (xy 80.419797 63.826109) (xy 80.360492 63.723391) (xy 80.36049 63.723389)\r\n\t\t\t\t(xy 80.360489 63.723387) (xy 80.276613 63.639511) (xy 80.27661 63.639509) (xy 80.276608 63.639507)\r\n\t\t\t\t(xy 80.173889 63.580202) (xy 80.17389 63.580202) (xy 80.160351 63.576574) (xy 80.059309 63.5495)\r\n\t\t\t\t(xy 79.940691 63.5495) (xy 79.870567 63.568289) (xy 79.826109 63.580202) (xy 79.723391 63.639507)\r\n\t\t\t\t(xy 79.639507 63.723391) (xy 79.580202 63.826109) (xy 79.580201 63.826114) (xy 79.5495 63.940691)\r\n\t\t\t\t(xy 78.567123 63.940691) (xy 80.978318 61.529496) (xy 81.032835 61.501719) (xy 81.048322 61.5005)\r\n\t\t\t\t(xy 145.951678 61.5005)\r\n\t\t\t)\r\n\t\t)\r\n\t)\r\n\t(generated\r\n\t\t(uuid "2b9cadcd-7c67-4d5e-bc12-561c5da3dd30")\r\n\t\t(type tuning_pattern)\r\n\t\t(name "Tuning Pattern")\r\n\t\t(layer "F.Cu")\r\n\t\t(base_line\r\n\t\t\t(pts\r\n\t\t\t\t(xy 122.760099 98.613099) (xy 119.25985 98.613099)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(base_line_coupled\r\n\t\t\t(pts\r\n\t\t\t\t(xy 122.760099 98.915) (xy 122.738223 98.915)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(corner_radius_percent 80)\r\n\t\t(end\r\n\t\t\t(xy 119.25985 98.613099)\r\n\t\t)\r\n\t\t(initial_side "right")\r\n\t\t(is_time_domain no)\r\n\t\t(last_diff_pair_gap 0.18)\r\n\t\t(last_netname "/CM4/ETH_P0-")\r\n\t\t(last_status "tuned")\r\n\t\t(last_track_width 0.1519)\r\n\t\t(last_tuning_length 1.3e-05)\r\n\t\t(max_amplitude 1)\r\n\t\t(min_amplitude 0.2)\r\n\t\t(min_spacing 0.6)\r\n\t\t(origin\r\n\t\t\t(xy 122.760099 98.613099)\r\n\t\t)\r\n\t\t(override_custom_rules no)\r\n\t\t(rounded yes)\r\n\t\t(single_sided no)\r\n\t\t(target_delay 1000000)\r\n\t\t(target_delay_max 1000000)\r\n\t\t(target_delay_min 0)\r\n\t\t(target_length 1000000)\r\n\t\t(target_length_max 1000000)\r\n\t\t(target_length_min 0)\r\n\t\t(target_skew 0)\r\n\t\t(target_skew_max 0.1)\r\n\t\t(target_skew_min -0.1)\r\n\t\t(tuning_mode "diff_pair_skew")\r\n\t\t(members "0c5fded6-e5a7-4311-90d2-6e00c8619c1b" "1bb8bbb0-5cc7-432e-bc5e-e23fbeb84e11"\r\n\t\t\t"224c6501-208a-45f0-8051-2b4e27f966ed" "2256f235-e5a1-4a07-86a3-56007955964f"\r\n\t\t\t"2fa4393d-275d-4352-b9a9-fee182dc1bd6" "529c6777-ef1f-4f89-98f3-aa115a93196d"\r\n\t\t\t"5e2c7b93-8e36-4273-9f19-6b716c1c3cf8" "6bda119e-3c37-4ffa-b530-417c2cd765b3"\r\n\t\t\t"74aa719f-15ff-48bf-8aee-35af260145f5" "77e600a0-ecb2-4c96-9556-b538e885d879"\r\n\t\t\t"7b9c5f28-09d1-4c70-9922-3aeb8662c097" "7db22aac-41f6-4e36-b22a-f2d441fbee74"\r\n\t\t\t"82d4d10e-1f55-4573-99cd-a0cdc9137ea7" "82da4150-bc56-4984-8706-8f66ef2cbc28"\r\n\t\t\t"c5c21087-7041-47f8-a066-93b03e9f3492" "cc545d8c-e88d-491b-872e-54cb89cdd477"\r\n\t\t\t"d9f4a543-2730-464a-974a-6483780a13df"\r\n\t\t)\r\n\t)\r\n\t(generated\r\n\t\t(uuid "5de727f5-3e36-4a92-af9e-466c1833bbe3")\r\n\t\t(type tuning_pattern)\r\n\t\t(name "Tuning Pattern")\r\n\t\t(layer "F.Cu")\r\n\t\t(base_line\r\n\t\t\t(pts\r\n\t\t\t\t(xy 121.166938 96.073099) (xy 117.819825 96.073099)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(base_line_coupled\r\n\t\t\t(pts\r\n\t\t\t\t(xy 121.166938 96.375) (xy 121.145062 96.375)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(corner_radius_percent 80)\r\n\t\t(end\r\n\t\t\t(xy 117.819825 96.073099)\r\n\t\t)\r\n\t\t(initial_side "right")\r\n\t\t(is_time_domain no)\r\n\t\t(last_diff_pair_gap 0.18)\r\n\t\t(last_netname "/CM4/ETH_P1+")\r\n\t\t(last_status "tuned")\r\n\t\t(last_track_width 0.1519)\r\n\t\t(last_tuning_length 1.5e-05)\r\n\t\t(max_amplitude 1)\r\n\t\t(min_amplitude 0.2)\r\n\t\t(min_spacing 0.6)\r\n\t\t(origin\r\n\t\t\t(xy 121.166938 96.073099)\r\n\t\t)\r\n\t\t(override_custom_rules no)\r\n\t\t(rounded yes)\r\n\t\t(single_sided no)\r\n\t\t(target_delay 1000000)\r\n\t\t(target_delay_max 1000000)\r\n\t\t(target_delay_min 0)\r\n\t\t(target_length 1000000)\r\n\t\t(target_length_max 1000000)\r\n\t\t(target_length_min 0)\r\n\t\t(target_skew 0)\r\n\t\t(target_skew_max 0.1)\r\n\t\t(target_skew_min -0.1)\r\n\t\t(tuning_mode "diff_pair_skew")\r\n\t\t(members "1aa1ec1b-e663-43b0-b393-d5fb8385b897" "299a4926-0377-4967-b747-a9ba6a57c1eb"\r\n\t\t\t"2acda62b-9ec0-404e-af29-1972a775f8f0" "36122cf9-4090-4c1d-80db-5ec360d2f9a7"\r\n\t\t\t"373d32fd-60df-4ddd-9614-09d468dbae3e" "3760b36a-0328-4bf7-a18f-157e9af33663"\r\n\t\t\t"3a4d01f9-2563-449a-a7ec-c42615eed182" "43fe7528-9857-4c13-aaa2-332537a82182"\r\n\t\t\t"57623739-c133-48cc-8cfa-6d512a6ccd79" "703fefc7-19a8-4d10-8594-15a69432aa35"\r\n\t\t\t"b9c6a6ff-8606-45c7-9124-475929bec394" "bd1d74ca-cf66-469a-8104-441672350f9f"\r\n\t\t\t"c0d13dec-cb3c-48cf-8a15-c658c8720ced" "d7a98cd3-9f2f-4c85-b1e3-cf617dcf48f7"\r\n\t\t\t"da58c08d-1db4-4889-803e-7795b68aa9ca" "f85db0ba-a13a-4215-9d48-b9b4ed5d251e"\r\n\t\t\t"ff583197-d8b0-4faf-9cbb-7f0423431ae4"\r\n\t\t)\r\n\t)\r\n\t(generated\r\n\t\t(uuid "7c352d5e-8f0c-4be7-834c-fad3483badf5")\r\n\t\t(type tuning_pattern)\r\n\t\t(name "Tuning Pattern")\r\n\t\t(layer "F.Cu")\r\n\t\t(base_line\r\n\t\t\t(pts\r\n\t\t\t\t(xy 120.2 91.54905) (xy 116.507231 91.54905)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(base_line_coupled\r\n\t\t\t(pts\r\n\t\t\t\t(xy 119.657456 91.85095) (xy 119.613703 91.85095)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(corner_radius_percent 80)\r\n\t\t(end\r\n\t\t\t(xy 116.507231 91.54905)\r\n\t\t)\r\n\t\t(initial_side "right")\r\n\t\t(is_time_domain no)\r\n\t\t(last_diff_pair_gap 0.18)\r\n\t\t(last_netname "/CM4/ETH_P2-")\r\n\t\t(last_status "tuned")\r\n\t\t(last_track_width 0.1519)\r\n\t\t(last_tuning_length 1.9e-05)\r\n\t\t(max_amplitude 1)\r\n\t\t(min_amplitude 0.2)\r\n\t\t(min_spacing 0.6)\r\n\t\t(origin\r\n\t\t\t(xy 120.2 91.54905)\r\n\t\t)\r\n\t\t(override_custom_rules no)\r\n\t\t(rounded yes)\r\n\t\t(single_sided no)\r\n\t\t(target_delay 1000000)\r\n\t\t(target_delay_max 1000000)\r\n\t\t(target_delay_min 0)\r\n\t\t(target_length 1000000)\r\n\t\t(target_length_max 1000000)\r\n\t\t(target_length_min 0)\r\n\t\t(target_skew 0)\r\n\t\t(target_skew_max 0.1)\r\n\t\t(target_skew_min -0.1)\r\n\t\t(tuning_mode "diff_pair_skew")\r\n\t\t(members "0179dcd9-5778-4524-8e62-9cac9ad0fbbc" "0ae269bd-4fce-44ee-8adf-c701e4d70cbd"\r\n\t\t\t"22023b0b-19f5-4370-b2f4-f55cd5a731fb" "4ef7abb4-88bd-41fe-bf9a-7db0b239d8b4"\r\n\t\t\t"6f117b59-b8ea-4e0c-8b5a-6f058a02fa95" "7b0a5390-a070-436d-81af-f6122f7ff30e"\r\n\t\t\t"80a26a55-4605-407a-84ff-818f2e923fde" "8376418c-efc4-4663-9bf8-bab548e9db57"\r\n\t\t\t"85f8b16e-94a4-46ca-afff-56d6df1f9d1e" "a48b1b70-9861-4b1a-98ec-2a4f7ea8e625"\r\n\t\t\t"aefe0a8b-2031-46b1-be88-a7e3cef0986a" "b1be1e8d-bfd5-45e8-a005-340d4f16a94a"\r\n\t\t\t"c19ec1ab-e803-497c-9c77-99f841e15c84" "cbf80e25-46ca-4885-8b59-a3d354f3397b"\r\n\t\t\t"db85dc14-4863-4fee-a173-5c42171e42b2" "e71fb130-de7e-424b-b9c9-6ba37a39ad07"\r\n\t\t\t"ebd90e84-16d5-4605-a772-b5b25c505d4d"\r\n\t\t)\r\n\t)\r\n\t(generated\r\n\t\t(uuid "8d94db64-9f51-4931-8525-ac78a04a8f8a")\r\n\t\t(type tuning_pattern)\r\n\t\t(name "Tuning Pattern")\r\n\t\t(layer "F.Cu")\r\n\t\t(base_line\r\n\t\t\t(pts\r\n\t\t\t\t(xy 121.101309 88.453099) (xy 118.16985 88.453099)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(base_line_coupled\r\n\t\t\t(pts\r\n\t\t\t\t(xy 121.101309 88.755) (xy 121.079432 88.755)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(corner_radius_percent 80)\r\n\t\t(end\r\n\t\t\t(xy 118.16985 88.453099)\r\n\t\t)\r\n\t\t(initial_side "right")\r\n\t\t(is_time_domain no)\r\n\t\t(last_diff_pair_gap 0.18)\r\n\t\t(last_netname "/CM4/ETH_P3-")\r\n\t\t(last_status "tuned")\r\n\t\t(last_track_width 0.1519)\r\n\t\t(last_tuning_length 1.6e-05)\r\n\t\t(max_amplitude 1)\r\n\t\t(min_amplitude 0.2)\r\n\t\t(min_spacing 0.6)\r\n\t\t(origin\r\n\t\t\t(xy 121.101309 88.453099)\r\n\t\t)\r\n\t\t(override_custom_rules no)\r\n\t\t(rounded yes)\r\n\t\t(single_sided no)\r\n\t\t(target_delay 1000000)\r\n\t\t(target_delay_max 1000000)\r\n\t\t(target_delay_min 0)\r\n\t\t(target_length 1000000)\r\n\t\t(target_length_max 1000000)\r\n\t\t(target_length_min 0)\r\n\t\t(target_skew 0)\r\n\t\t(target_skew_max 0.1)\r\n\t\t(target_skew_min -0.1)\r\n\t\t(tuning_mode "diff_pair_skew")\r\n\t\t(members "0e8de808-0428-4e8d-9123-32c9af2185b4" "15f42ca1-0ce8-434c-93f0-9a8604770c29"\r\n\t\t\t"18db51b2-be60-4708-aac4-7ee8b7ff0f41" "1d766207-17c1-4e99-9045-ee89177ed8ca"\r\n\t\t\t"31b37bbe-5ee7-493a-ba03-ab329993c3dc" "33c9846c-a382-45c3-8e0e-df3339cbe346"\r\n\t\t\t"347f5d12-1dce-4de3-bbd9-fd66f5e7c4a0" "44794830-9686-476c-9ffc-cc2a27e6e15a"\r\n\t\t\t"5e79115e-f640-42dc-8239-f8568a6081e6" "72b4e1e3-d24b-4cb2-875e-c527c16b77ea"\r\n\t\t\t"75610cc7-ea4f-457e-9e99-8e1f67df2dc0" "7a2f546f-8a25-4d85-ae53-5f5de3f17701"\r\n\t\t\t"83201e62-e279-413d-bdbb-aed83fd9580f" "a76078e6-c849-4bc8-bc8a-7a159152c46f"\r\n\t\t\t"a7bd1f6c-69ab-4338-ae7' +06-08 00:27:40 STDOUT 1680:send: +06-08 00:27:40 STDOUT 1680:b'4-69eff50e278b" "cf8453da-667d-439b-95b2-0ac095a68535"\r\n\t\t\t"e4aab997-77c6-4809-8fc7-ca1db569ae3c"\r\n\t\t)\r\n\t)\r\n\t(generated\r\n\t\t(uuid "b4abeb52-b7c1-4a3a-a06a-c7b209884e1e")\r\n\t\t(type tuning_pattern)\r\n\t\t(name "Tuning Pattern")\r\n\t\t(layer "F.Cu")\r\n\t\t(base_line\r\n\t\t\t(pts\r\n\t\t\t\t(xy 116.186037 126.040383) (xy 113.828507 123.682853)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(base_line_coupled\r\n\t\t\t(pts\r\n\t\t\t\t(xy 116.440383 125.786037) (xy 116.414476 125.76013)\r\n\t\t\t)\r\n\t\t)\r\n\t\t(corner_radius_percent 80)\r\n\t\t(end\r\n\t\t\t(xy 113.828507 123.682853)\r\n\t\t)\r\n\t\t(initial_side "left")\r\n\t\t(is_time_domain no)\r\n\t\t(last_diff_pair_gap 0.18)\r\n\t\t(last_netname "/CM4/USB_D-")\r\n\t\t(last_status "tuned")\r\n\t\t(last_track_width 0.2097)\r\n\t\t(last_tuning_length 1.7e-05)\r\n\t\t(max_amplitude 1)\r\n\t\t(min_amplitude 0.2)\r\n\t\t(min_spacing 0.6)\r\n\t\t(origin\r\n\t\t\t(xy 116.186037 126.040383)\r\n\t\t)\r\n\t\t(override_custom_rules no)\r\n\t\t(rounded yes)\r\n\t\t(single_sided no)\r\n\t\t(target_delay 1000000)\r\n\t\t(target_delay_max 1000000)\r\n\t\t(target_delay_min 0)\r\n\t\t(target_length 1000000)\r\n\t\t(target_length_max 1000000)\r\n\t\t(target_length_min 0)\r\n\t\t(target_skew 0)\r\n\t\t(target_skew_max 0.1)\r\n\t\t(target_skew_min -0.1)\r\n\t\t(tuning_mode "diff_pair_skew")\r\n\t\t(members "4ddbd09c-323c-470b-8cce-c511a4b5c638" "4f16bb57-4090-4b2f-9f81-62821b2d13ff"\r\n\t\t\t"5371af7b-8bdf-498f-bad1-1669f9b2ae15" "55e5f9b3-4bf1-4db1-8e2d-16e059d4219b"\r\n\t\t\t"5cacaa6c-4bd9-40aa-9f04-b079d087358f" "7f1c15c5-1a6e-46c7-88f7-c5c6eacec451"\r\n\t\t\t"93086a7d-cf3d-431b-8ad8-6c3d20621855" "97d38395-bf3d-4c78-aa69-8067326d2da5"\r\n\t\t\t"fcb978bc-ca16-4c20-9d0e-d48cc5e1ed25"\r\n\t\t)\r\n\t)\r\n\t(embedded_fonts no)\r\n)\r\n' +06-08 00:27:47 STDOUT 1680:reply: +06-08 00:27:47 STDOUT 1680:'HTTP/1.1 200 OK\r\n' +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:Server: +06-08 00:27:47 STDOUT 1680:nginx/1.24.0 (Ubuntu) +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:Date: +06-08 00:27:47 STDOUT 1680:Mon, 08 Jun 2026 07:27:48 GMT +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:Content-Type: +06-08 00:27:47 STDOUT 1680:text/html; charset=utf-8 +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:Content-Length: +06-08 00:27:47 STDOUT 1680:5324 +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:Connection: +06-08 00:27:47 STDOUT 1680:close +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:Access-Control-Allow-Origin: +06-08 00:27:47 STDOUT 1680:* +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:Strict-Transport-Security: +06-08 00:27:47 STDOUT 1680:max-age=31536000; includeSubdomains; preload +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:X-Frame-Options: +06-08 00:27:47 STDOUT 1680:SAMEORIGIN +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:X-Content-Type-Options: +06-08 00:27:47 STDOUT 1680:nosniff +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:Referrer-Policy: +06-08 00:27:47 STDOUT 1680:no-referrer +06-08 00:27:47 STDOUT 1680:header: +06-08 00:27:47 STDOUT 1680:Content-Security-Policy: +06-08 00:27:47 STDOUT 1680:object-src +06-08 00:27:47 STDERR 1680:C:\Users\bertha\Documents\KiCad\10.0\3rdparty\\plugins\sierra_kicad_order\sierra_quote_dialog.py:72: wxPyDeprecationWarning: Call to deprecated item. Use SetSizeHints instead. +06-08 00:27:47 STDERR 1680: self.SetSizeHintsSz(sz1, sz2) diff --git a/payload/hardware/sym-lib-table b/payload/v1/hardware/sym-lib-table similarity index 100% rename from payload/hardware/sym-lib-table rename to payload/v1/hardware/sym-lib-table diff --git a/payload/hardware/symbols/522071585.kicad_sym b/payload/v1/hardware/symbols/522071585.kicad_sym similarity index 100% rename from payload/hardware/symbols/522071585.kicad_sym rename to payload/v1/hardware/symbols/522071585.kicad_sym diff --git a/payload/hardware/symbols/CM4102008.kicad_sym b/payload/v1/hardware/symbols/CM4102008.kicad_sym similarity index 100% rename from payload/hardware/symbols/CM4102008.kicad_sym rename to payload/v1/hardware/symbols/CM4102008.kicad_sym diff --git a/payload/hardware/symbols/TB6612FNG.kicad_sym b/payload/v1/hardware/symbols/TB6612FNG.kicad_sym similarity index 100% rename from payload/hardware/symbols/TB6612FNG.kicad_sym rename to payload/v1/hardware/symbols/TB6612FNG.kicad_sym diff --git a/payload/hardware/symbols/payload-syms.kicad_sym b/payload/v1/hardware/symbols/payload-syms.kicad_sym similarity index 100% rename from payload/hardware/symbols/payload-syms.kicad_sym rename to payload/v1/hardware/symbols/payload-syms.kicad_sym